From admin at opensuse.org Fri Jan 1 01:35:14 2021 From: admin at opensuse.org (OBS Notification) Date: Fri, 01 Jan 2021 01:35:14 +0000 Subject: Build failure of network:osmocom:nightly/open5gs in Debian_10/i586 In-Reply-To: References: Message-ID: <5fee7c5d813a6_59872af9dc0645f42465276@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/open5gs/Debian_10/i586 Package network:osmocom:nightly/open5gs failed to build in Debian_10/i586 Check out the package for editing: osc checkout network:osmocom:nightly open5gs Last lines of build log: [ 218s] [2534/2534] cc -o tests/handover/handover 'tests/handover/63da1a3@@handover at exe/abts-main.c.o' 'tests/handover/63da1a3@@handover at exe/epc-x2-test.c.o' 'tests/handover/63da1a3@@handover at exe/epc-s1-test.c.o' -Wl,--no-undefined -Wl,--as-needed -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z,relro -Wl,-z,now -Wl,--start-group tests/app/libtestapp.a tests/common/libtestcomon.a lib/core/libogscore.so.2.1.1 lib/app/libogsapp.so.2.1.1 lib/dbi/libogsdbi.so.2.1.1 lib/crypt/libogscrypt.so.2.1.1 lib/sctp/libogssctp.so.2.1.1 lib/gtp/libogsgtp.so.2.1.1 lib/s1ap/libogss1ap.so.2.1.1 lib/asn1c/s1ap/libogsasn1c-s1ap.so.2.1.1 lib/asn1c/common/libogsasn1c-common.so.2.1.1 lib/asn1c/util/libogsasn1c-util.so.2.1.1 lib/ngap/libogsngap.so.2.1.1 lib/asn1c/ngap/libogsasn1c-ngap.so.2.1.1 lib/nas/eps/libogsnas-eps.so.2.1.1 lib/nas/common/libogsnas-common.so.2.1.1 lib/nas/5gs/libogsnas-5gs.so.2.1.1 lib/diameter/rx/libogsdiameter-rx.so.2.1.1 lib/diameter/common/libogsdiameter-common.so.2.1.1 subprojects/freeDiameter/libfdcore/libfdcore.so.1.3.2 subprojects/freeDiameter/libfdproto/libfdproto.so.1.3.2 /usr/lib/i386-linux-gnu/libyaml.so /usr/lib/gcc/i686-linux-gnu/8/../../../i386-linux-gnu/libmongoc-1.0.so /usr/lib/gcc/i686-linux-gnu/8/../../../i386-linux-gnu/libbson-1.0.so -lsctp -lidn -ldl -lsctp -lgcrypt -lgnutls -lsctp -lidn -ldl -lsctp -lgcrypt -lgnutls -lsctp -lidn -ldl -lsctp -lgcrypt -lgnutls -Wl,--end-group -pthread '-Wl,-rpath,$ORIGIN/../app:$ORIGIN/../common:$ORIGIN/../../lib/core:$ORIGIN/../../lib/app:$ORIGIN/../../lib/dbi:$ORIGIN/../../lib/crypt:$ORIGIN/../../lib/sctp:$ORIGIN/../../lib/gtp:$ORIGIN/../../lib/s1ap:$ORIGIN/../../lib/asn1c/s1ap:$ORIGIN/../../lib/asn1c/common:$ORIGIN/../../lib/asn1c/util:$ORIGIN/../../lib/ngap:$ORIGIN/../../lib/asn1c/ngap:$ORIGIN/../../lib/nas/eps:$ORIGIN/../../lib/nas/common:$ORIGIN/../../lib/nas/5gs:$ORIGIN/../../lib/diameter/rx:$ORIGIN/../../lib/diameter/common:$ORIGIN/../../subprojects/freeDiameter/libfdcore:$ORIGIN/../../subprojects/freeDiameter/libfdproto' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-i686-linux-gnu/tests/app:/usr/src/packages/BUILD/obj-i686-linux-gnu/tests/common:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/core:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/app:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/dbi:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/crypt:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/sctp:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/gtp:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/s1ap:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/asn1c/s1ap:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/asn1c/common:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/asn1c/util:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/ngap:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/asn1c/ngap:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/nas/eps:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/nas/common:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/nas/5gs:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/diameter/rx:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/diameter/common:/usr/src/packages/BUILD/obj-i686-linux-gnu/subprojects/freeDiameter/libfdcore:/usr/src/packages/BUILD/obj-i686-linux-gnu/subprojects/freeDiameter/libfdproto [ 218s] debian/rules override_dh_auto_test [ 218s] make[1]: Entering directory '/usr/src/packages/BUILD' [ 218s] cd obj-i686-linux-gnu && meson test --suite unit [ 219s] ninja: Entering directory `/usr/src/packages/BUILD/obj-i686-linux-gnu' [ 219s] ninja: no work to do. [ 226s] 1/3 open5gs:unit / core OK 6.64 s [ 226s] 2/3 open5gs:unit / crypt OK 0.12 s [ 226s] 3/3 open5gs:unit / unit FAIL 0.03 s (exit status 1) [ 226s] [ 226s] Ok: 2 [ 226s] Expected Fail: 0 [ 226s] Fail: 1 [ 226s] Unexpected Pass: 0 [ 226s] Skipped: 0 [ 226s] Timeout: 0 [ 226s] [ 226s] Full log written to /usr/src/packages/BUILD/obj-i686-linux-gnu/meson-logs/testlog.txt [ 226s] make[1]: *** [debian/rules:17: override_dh_auto_test] Error 1 [ 226s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 226s] make: *** [debian/rules:11: binary] Error 2 [ 226s] dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 [ 226s] ### VM INTERACTION START ### [ 229s] [ 222.080440] sysrq: Power Off [ 229s] [ 222.081589] reboot: Power down [ 229s] ### VM INTERACTION END ### [ 229s] [ 229s] build75 failed "build open5gs_2.1.1.20210101.dsc" at Fri Jan 1 01:35:01 UTC 2021. [ 229s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Jan 1 01:38:23 2021 From: admin at opensuse.org (OBS Notification) Date: Fri, 01 Jan 2021 01:38:23 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <5fee7d14edd4_59872af9dc0645f42465336@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/xUbuntu_20.04/x86_64 Package network:osmocom:nightly/simtrace2 failed to build in xUbuntu_20.04/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 154s] [COMPILING libboard/qmod/source/wwan_perst.c] [ 154s] [COMPILING libboard/qmod/source/card_pres.c] [ 154s] [COMPILING libboard/qmod/source/wwan_led.c] [ 154s] [COMPILING libboard/qmod/source/i2c.c] [ 154s] [COMPILING libboard/qmod/source/board_qmod.c] [ 155s] [COMPILING apps/dfu/main.c] [ 155s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 155s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 155s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 155s] Memory region Used Size Region Size %age Used [ 155s] rom: 16588 B 16 KB 101.25% [ 155s] ram: 11672 B 48 KB 23.75/usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 155s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 204 bytes [ 155s] collect2: error: ld returned 1 exit status [ 155s] % [ 155s] make[2]: *** [Makefile:234: flash] Error 1 [ 155s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 155s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 155s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 155s] dh_auto_build: error: make -j1 returned exit code 2 [ 155s] make: *** [debian/rules:16: build] Error 25 [ 155s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 155s] ### VM INTERACTION START ### [ 159s] [ 146.187862] sysrq: Power Off [ 159s] [ 146.195636] reboot: Power down [ 159s] ### VM INTERACTION END ### [ 159s] [ 159s] cloud127 failed "build simtrace2_0.7.0.69.aadd.dsc" at Fri Jan 1 01:38:16 UTC 2021. [ 159s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Jan 1 01:38:40 2021 From: admin at opensuse.org (OBS Notification) Date: Fri, 01 Jan 2021 01:38:40 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.10/x86_64 In-Reply-To: References: Message-ID: <5fee7d2e5c12b_59872af9dc0645f42465470@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/xUbuntu_20.10/x86_64 Package network:osmocom:nightly/simtrace2 failed to build in xUbuntu_20.10/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 160s] [COMPILING apps/dfu/main.c] [ 160s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 160s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 161s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 161s] Memory region Used Size Region Size %age Used [ 161s] rom: 16580 B 16 KB 101.20% [ 161s] ram: 11672 B 48 KB 23.75/usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 161s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 161s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 161s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 161s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 161s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 161s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 196 bytes [ 161s] collect2: error: ld returned 1 exit status [ 161s] % [ 161s] make[2]: *** [Makefile:234: flash] Error 1 [ 161s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 161s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 161s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 161s] dh_auto_build: error: make -j1 returned exit code 2 [ 161s] make: *** [debian/rules:16: build] Error 25 [ 161s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 161s] ### VM INTERACTION START ### [ 164s] [ 152.417184] sysrq: Power Off [ 164s] [ 152.425542] reboot: Power down [ 164s] ### VM INTERACTION END ### [ 164s] [ 164s] lamb07 failed "build simtrace2_0.7.0.69.aadd.dsc" at Fri Jan 1 01:38:35 UTC 2021. [ 164s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Jan 1 02:19:49 2021 From: admin at opensuse.org (OBS Notification) Date: Fri, 01 Jan 2021 02:19:49 +0000 Subject: Build failure of network:osmocom:nightly/libosmo-netif in Debian_9.0/armv7l In-Reply-To: References: Message-ID: <5fee86cce47fc_59872af9dc0645f424674c6@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libosmo-netif/Debian_9.0/armv7l Package network:osmocom:nightly/libosmo-netif failed to build in Debian_9.0/armv7l Check out the package for editing: osc checkout network:osmocom:nightly libosmo-netif Last lines of build log: [ 0s] [ 0s] armbuild04 started "build libosmo-netif_1.0.0.8.bd77.dsc" at Fri Jan 1 02:19:32 UTC 2021. [ 0s] [ 0s] Building libosmo-netif for project 'network:osmocom:nightly' repository 'Debian_9.0' arch 'armv7l' srcmd5 '84a2096faba9b51720e43099caf80145' [ 0s] [ 0s] processing recipe /var/cache/obs/worker/root_2/.build-srcdir/libosmo-netif_1.0.0.8.bd77.dsc ... [ 0s] running changelog2spec --target debian --file /var/cache/obs/worker/root_2/.build-srcdir/libosmo-netif_1.0.0.8.bd77.dsc [ 0s] init_buildsystem --configdir /var/run/obs/worker/2/build/configs --cachedir /var/cache/build --prepare --clean --rpmlist /var/cache/obs/worker/root_2/.build.rpmlist /var/cache/obs/worker/root_2/.build-srcdir/libosmo-netif_1.0.0.8.bd77.dsc build ... [ 0s] unknown keyword in config: [ 0s] could not autodetect package type [ 0s] [ 0s] armbuild04 failed "build libosmo-netif_1.0.0.8.bd77.dsc" at Fri Jan 1 02:19:32 UTC 2021. [ 0s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Jan 1 07:29:48 2021 From: admin at opensuse.org (OBS Notification) Date: Fri, 01 Jan 2021 07:29:48 +0000 Subject: Build failure of network:osmocom:nightly/osmo-fl2k in Raspbian_10/armv7l In-Reply-To: References: Message-ID: <5feecf767e0f4_59872af9dc0645f42486482@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-fl2k/Raspbian_10/armv7l Package network:osmocom:nightly/osmo-fl2k failed to build in Raspbian_10/armv7l Check out the package for editing: osc checkout network:osmocom:nightly osmo-fl2k Last lines of build log: [ 1s] [ 1s] armbuild04 started "build osmo-fl2k_0.1.1.28.197f.dsc" at Fri Jan 1 07:29:40 UTC 2021. [ 1s] [ 1s] Building osmo-fl2k for project 'network:osmocom:nightly' repository 'Raspbian_10' arch 'armv7l' srcmd5 '39f0f856232a7aafd44c0c1c7ec984d1' [ 1s] [ 1s] processing recipe /var/cache/obs/worker/root_3/.build-srcdir/osmo-fl2k_0.1.1.28.197f.dsc ... [ 1s] running changelog2spec --target debian --file /var/cache/obs/worker/root_3/.build-srcdir/osmo-fl2k_0.1.1.28.197f.dsc [ 1s] init_buildsystem --configdir /var/run/obs/worker/3/build/configs --cachedir /var/cache/build --prepare --clean --rpmlist /var/cache/obs/worker/root_3/.build.rpmlist /var/cache/obs/worker/root_3/.build-srcdir/osmo-fl2k_0.1.1.28.197f.dsc build ... [ 1s] unknown keyword in config: [ 1s] could not autodetect package type [ 1s] [ 1s] armbuild04 failed "build osmo-fl2k_0.1.1.28.197f.dsc" at Fri Jan 1 07:29:40 UTC 2021. [ 1s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Jan 1 08:22:23 2021 From: admin at opensuse.org (OBS Notification) Date: Fri, 01 Jan 2021 08:22:23 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sysmon in Debian_9.0/armv7l In-Reply-To: References: Message-ID: <5feedbc2eb7fc_59872af9dc0645f4248994@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-sysmon/Debian_9.0/armv7l Package network:osmocom:nightly/osmo-sysmon failed to build in Debian_9.0/armv7l Check out the package for editing: osc checkout network:osmocom:nightly osmo-sysmon Last lines of build log: [ 1s] [ 1s] armbuild04 started "build osmo-sysmon_0.2.0.4.8984.dsc" at Fri Jan 1 08:22:11 UTC 2021. [ 1s] [ 1s] Building osmo-sysmon for project 'network:osmocom:nightly' repository 'Debian_9.0' arch 'armv7l' srcmd5 'ed1bee188c9e41fa143d3c4558b05884' [ 1s] [ 1s] processing recipe /var/cache/obs/worker/root_2/.build-srcdir/osmo-sysmon_0.2.0.4.8984.dsc ... [ 1s] running changelog2spec --target debian --file /var/cache/obs/worker/root_2/.build-srcdir/osmo-sysmon_0.2.0.4.8984.dsc [ 1s] init_buildsystem --configdir /var/run/obs/worker/2/build/configs --cachedir /var/cache/build --prepare --clean --rpmlist /var/cache/obs/worker/root_2/.build.rpmlist /var/cache/obs/worker/root_2/.build-srcdir/osmo-sysmon_0.2.0.4.8984.dsc build ... [ 1s] unknown keyword in config: [ 1s] could not autodetect package type [ 1s] [ 1s] armbuild04 failed "build osmo-sysmon_0.2.0.4.8984.dsc" at Fri Jan 1 08:22:11 UTC 2021. [ 1s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Jan 1 09:55:14 2021 From: admin at opensuse.org (OBS Notification) Date: Fri, 01 Jan 2021 09:55:14 +0000 Subject: Build failure of network:osmocom:nightly/osmo-remsim in Debian_9.0/armv7l In-Reply-To: References: Message-ID: <5feef18f64135_59872af9dc0645f42495333@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-remsim/Debian_9.0/armv7l Package network:osmocom:nightly/osmo-remsim failed to build in Debian_9.0/armv7l Check out the package for editing: osc checkout network:osmocom:nightly osmo-remsim Last lines of build log: [ 0s] [ 0s] armbuild04 started "build osmo-remsim_0.2.2.103.dc34.dsc" at Fri Jan 1 09:55:07 UTC 2021. [ 0s] [ 0s] Building osmo-remsim for project 'network:osmocom:nightly' repository 'Debian_9.0' arch 'armv7l' srcmd5 '01bfdb7a53dba9c59da97ed7d1174d06' [ 0s] [ 0s] processing recipe /var/cache/obs/worker/root_2/.build-srcdir/osmo-remsim_0.2.2.103.dc34.dsc ... [ 0s] running changelog2spec --target debian --file /var/cache/obs/worker/root_2/.build-srcdir/osmo-remsim_0.2.2.103.dc34.dsc [ 0s] init_buildsystem --configdir /var/run/obs/worker/2/build/configs --cachedir /var/cache/build --prepare --clean --rpmlist /var/cache/obs/worker/root_2/.build.rpmlist /var/cache/obs/worker/root_2/.build-srcdir/osmo-remsim_0.2.2.103.dc34.dsc build ... [ 1s] unknown keyword in config: [ 1s] could not autodetect package type [ 1s] [ 1s] armbuild04 failed "build osmo-remsim_0.2.2.103.dc34.dsc" at Fri Jan 1 09:55:08 UTC 2021. [ 1s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Fri Jan 1 15:53:22 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 1 Jan 2021 15:53:22 +0000 Subject: Change in osmo-bsc[master]: vty: join UL/DL SACCH repetition commands together In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bsc/+/21911 to look at the new patch set (#3). Change subject: vty: join UL/DL SACCH repetition commands together ...................................................................... vty: join UL/DL SACCH repetition commands together Change-Id: Ibe98718d8f4933926eed0e622109c9c82537f526 Related: SYS#5114 --- M src/osmo-bsc/bsc_vty.c 1 file changed, 20 insertions(+), 45 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/11/21911/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21911 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ibe98718d8f4933926eed0e622109c9c82537f526 Gerrit-Change-Number: 21911 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 1 15:55:59 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 1 Jan 2021 15:55:59 +0000 Subject: Change in osmo-bsc[master]: vty: join UL/DL SACCH repetition commands together In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21911 ) Change subject: vty: join UL/DL SACCH repetition commands together ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/21911/2/src/osmo-bsc/bsc_vty.c File src/osmo-bsc/bsc_vty.c: https://gerrit.osmocom.org/c/osmo-bsc/+/21911/2/src/osmo-bsc/bsc_vty.c at 2820 PS2, Line 2820: argv[0][0] == 'u') > can we please do a proper !strcmp() to the string used in the command? Done. Still not getting why people find strcmp() more readable... -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21911 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ibe98718d8f4933926eed0e622109c9c82537f526 Gerrit-Change-Number: 21911 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-Comment-Date: Fri, 01 Jan 2021 15:55:59 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: laforge Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 1 16:05:17 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Fri, 1 Jan 2021 16:05:17 +0000 Subject: Change in osmo-sgsn[master]: configure.ac: define a c standard instead of using the compilers default References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21913 ) Change subject: configure.ac: define a c standard instead of using the compilers default ...................................................................... configure.ac: define a c standard instead of using the compilers default Change-Id: I9867adbed211db0a7b42ac3557f56c3042a67936 --- M configure.ac 1 file changed, 3 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/13/21913/1 diff --git a/configure.ac b/configure.ac index 0c8a73f..f1a4ed4 100644 --- a/configure.ac +++ b/configure.ac @@ -39,6 +39,9 @@ AC_MSG_ERROR([Please install autoconf-archive; re-run 'autoreconf -fi' for it to take effect.]) ]) +dnl use a defined standard across all builds and don't depend on compiler default +CFLAGS="$CFLAGS -std=gnu11" + dnl checks for libraries AC_SEARCH_LIBS([dlopen], [dl dld], [LIBRARY_DL="$LIBS";LIBS=""]) AC_SUBST(LIBRARY_DL) -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21913 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I9867adbed211db0a7b42ac3557f56c3042a67936 Gerrit-Change-Number: 21913 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 1 16:21:00 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Fri, 1 Jan 2021 16:21:00 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: use ns2 vty2 In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21819 to look at the new patch set (#5). Change subject: gbproxy: use ns2 vty2 ...................................................................... gbproxy: use ns2 vty2 The new gprs_ns2 vty2 support ip-sns and reorganize the network service configuration Depends: I163279cf57e84198dc8c53e1c109f5a9474670e9 (libosmocore) Change-Id: I2a18dcf035f1fc7304a0c7c7c83b5e8e15429d2b --- M doc/examples/osmo-gbproxy/osmo-gbproxy-legacy.cfg M doc/examples/osmo-gbproxy/osmo-gbproxy-pool.cfg M doc/examples/osmo-gbproxy/osmo-gbproxy.cfg M src/gbproxy/gb_proxy_main.c 4 files changed, 18 insertions(+), 37 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/19/21819/5 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21819 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I2a18dcf035f1fc7304a0c7c7c83b5e8e15429d2b Gerrit-Change-Number: 21819 Gerrit-PatchSet: 5 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 1 16:25:14 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Fri, 1 Jan 2021 16:25:14 +0000 Subject: Change in libosmocore[master]: gprs_ns2: use zero initialized memory for vty_binds References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21914 ) Change subject: gprs_ns2: use zero initialized memory for vty_binds ...................................................................... gprs_ns2: use zero initialized memory for vty_binds Change-Id: I5635d98c52948fddcc375e1be9b1cd04aa32bc3c --- M src/gb/gprs_ns2_vty2.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/14/21914/1 diff --git a/src/gb/gprs_ns2_vty2.c b/src/gb/gprs_ns2_vty2.c index e8738c1..41daa74 100644 --- a/src/gb/gprs_ns2_vty2.c +++ b/src/gb/gprs_ns2_vty2.c @@ -108,7 +108,7 @@ static struct vty_bind *vty_bind_alloc(const char *name) { - struct vty_bind *vbind = talloc(vty_nsi, struct vty_bind); + struct vty_bind *vbind = talloc_zero(vty_nsi, struct vty_bind); if (!vbind) return NULL; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21914 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I5635d98c52948fddcc375e1be9b1cd04aa32bc3c Gerrit-Change-Number: 21914 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 1 16:43:31 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Fri, 1 Jan 2021 16:43:31 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: use ns2 vty2 In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21819 ) Change subject: gbproxy: use ns2 vty2 ...................................................................... Patch Set 4: The test cases might succeed after https://gerrit.osmocom.org/c/libosmocore/+/21914 On my local system the test case already succeed. -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21819 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I2a18dcf035f1fc7304a0c7c7c83b5e8e15429d2b Gerrit-Change-Number: 21819 Gerrit-PatchSet: 4 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 01 Jan 2021 16:43:31 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 1 17:04:11 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Fri, 1 Jan 2021 17:04:11 +0000 Subject: Change in libosmocore[master]: utils: add osmo-ns-dummy In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, pespin, daniel, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/21701 to look at the new patch set (#17). Change subject: utils: add osmo-ns-dummy ...................................................................... utils: add osmo-ns-dummy A dummy client to do integration tests of the ns2 layer. It drop all unit data. But allows vty tests. Change-Id: I127c178426bc1a3da8de251740eda93853030d6d --- M utils/Makefile.am A utils/osmo-ns-dummy.c 2 files changed, 292 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/01/21701/17 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21701 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I127c178426bc1a3da8de251740eda93853030d6d Gerrit-Change-Number: 21701 Gerrit-PatchSet: 17 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 1 17:55:41 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Fri, 1 Jan 2021 17:55:41 +0000 Subject: Change in libosmocore[master]: utils: add osmo-ns-dummy In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, pespin, daniel, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/21701 to look at the new patch set (#18). Change subject: utils: add osmo-ns-dummy ...................................................................... utils: add osmo-ns-dummy A dummy client to do integration tests of the ns2 layer. It drop all unit data. But allows vty tests. Change-Id: I127c178426bc1a3da8de251740eda93853030d6d --- M tests/Makefile.am A tests/gprs/gprs_ns2_vty.vty M utils/Makefile.am A utils/osmo-ns-dummy.c 4 files changed, 333 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/01/21701/18 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21701 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I127c178426bc1a3da8de251740eda93853030d6d Gerrit-Change-Number: 21701 Gerrit-PatchSet: 18 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 1 18:54:10 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Fri, 1 Jan 2021 18:54:10 +0000 Subject: Change in libosmocore[master]: gprs_ns2: call python vty tests References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21915 ) Change subject: gprs_ns2: call python vty tests ...................................................................... gprs_ns2: call python vty tests Also checks vty docs Change-Id: Ia8b77ae5bc3fed835dd1fc2cce0acbc41f199d54 --- M tests/Makefile.am A tests/gb/osmo-ns-dummy.cfg A tests/gb/osmoappdesc.py 3 files changed, 29 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/15/21915/1 diff --git a/tests/Makefile.am b/tests/Makefile.am index ea9cd1a..17dafd8 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -436,6 +436,8 @@ -p 42042 \ -r "$(top_builddir)/utils/osmo-ns-dummy -p 42042" \ $(U) $(srcdir)/gprs/gprs_ns2*.vty + cd $(abs_top_srcdir)/tests/gb/ && osmotestconfig.py -p . -w . -v + cd $(abs_top_srcdir)/tests/gb/ && osmotestvty.py -p . -w . -v vty-test-logging: osmo_verify_transcript_vty.py -v \ diff --git a/tests/gb/osmo-ns-dummy.cfg b/tests/gb/osmo-ns-dummy.cfg new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/tests/gb/osmo-ns-dummy.cfg diff --git a/tests/gb/osmoappdesc.py b/tests/gb/osmoappdesc.py new file mode 100644 index 0000000..323b94e --- /dev/null +++ b/tests/gb/osmoappdesc.py @@ -0,0 +1,27 @@ +#!/usr/bin/env python3 + +# (C) 2021 by sysmocom - s.f.m.c. GmbH +# Author: Alexander Couzens +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see + +app_configs = { + "osmo-ns-dummy": ["osmo-ns-dummy.cfg"], +} + +apps = [(45999, "../../utils/osmo-ns-dummy -p 45999", "OsmoNSdummy", "osmo-ns-dummy") + ] + +vty_command = ["../../utils/osmo-ns-dummy", "-p", "45999", "-c", "osmo-ns-dummy.cfg"] + +vty_app = apps[0] -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21915 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia8b77ae5bc3fed835dd1fc2cce0acbc41f199d54 Gerrit-Change-Number: 21915 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 1 19:02:55 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Fri, 1 Jan 2021 19:02:55 +0000 Subject: Change in libosmocore[master]: utils: add osmo-ns-dummy In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, pespin, daniel, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/21701 to look at the new patch set (#19). Change subject: utils: add osmo-ns-dummy ...................................................................... utils: add osmo-ns-dummy A dummy client to do integration tests of the ns2 layer. It drop all unit data. But allows vty tests. Change-Id: I127c178426bc1a3da8de251740eda93853030d6d --- M tests/Makefile.am A tests/gb/gprs_ns2_vty.vty M utils/Makefile.am A utils/osmo-ns-dummy.c 4 files changed, 333 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/01/21701/19 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21701 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I127c178426bc1a3da8de251740eda93853030d6d Gerrit-Change-Number: 21701 Gerrit-PatchSet: 19 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 1 19:02:55 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Fri, 1 Jan 2021 19:02:55 +0000 Subject: Change in libosmocore[master]: gprs_ns2: call python vty tests In-Reply-To: References: Message-ID: Hello Jenkins Builder, neels, laforge, daniel, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/21915 to look at the new patch set (#2). Change subject: gprs_ns2: call python vty tests ...................................................................... gprs_ns2: call python vty tests Also checks vty docs Change-Id: Ia8b77ae5bc3fed835dd1fc2cce0acbc41f199d54 --- M tests/Makefile.am A tests/gb/osmo-ns-dummy.cfg A tests/gb/osmoappdesc.py 3 files changed, 29 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/15/21915/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21915 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia8b77ae5bc3fed835dd1fc2cce0acbc41f199d54 Gerrit-Change-Number: 21915 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 1 19:13:39 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Fri, 1 Jan 2021 19:13:39 +0000 Subject: Change in libosmocore[master]: utils: add osmo-ns-dummy In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, pespin, daniel, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/21701 to look at the new patch set (#21). Change subject: utils: add osmo-ns-dummy ...................................................................... utils: add osmo-ns-dummy A dummy client to do integration tests of the ns2 layer. It drop all unit data. But allows vty tests. Change-Id: I127c178426bc1a3da8de251740eda93853030d6d --- M tests/Makefile.am A tests/gb/gprs_ns2_vty.vty M utils/Makefile.am A utils/osmo-ns-dummy.c 4 files changed, 333 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/01/21701/21 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21701 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I127c178426bc1a3da8de251740eda93853030d6d Gerrit-Change-Number: 21701 Gerrit-PatchSet: 21 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 1 19:13:39 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Fri, 1 Jan 2021 19:13:39 +0000 Subject: Change in libosmocore[master]: gprs_ns2: call python vty tests In-Reply-To: References: Message-ID: Hello Jenkins Builder, neels, laforge, daniel, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/21915 to look at the new patch set (#4). Change subject: gprs_ns2: call python vty tests ...................................................................... gprs_ns2: call python vty tests Also checks vty docs Change-Id: Ia8b77ae5bc3fed835dd1fc2cce0acbc41f199d54 --- M tests/Makefile.am A tests/gb/osmo-ns-dummy.cfg A tests/gb/osmoappdesc.py 3 files changed, 29 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/15/21915/4 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21915 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia8b77ae5bc3fed835dd1fc2cce0acbc41f199d54 Gerrit-Change-Number: 21915 Gerrit-PatchSet: 4 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 1 20:23:22 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Fri, 1 Jan 2021 20:23:22 +0000 Subject: Change in libosmocore[master]: utils: add osmo-ns-dummy In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, pespin, daniel, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/21701 to look at the new patch set (#22). Change subject: utils: add osmo-ns-dummy ...................................................................... utils: add osmo-ns-dummy A dummy client to do integration tests of the ns2 layer. It drop all unit data. But allows vty tests. Change-Id: I127c178426bc1a3da8de251740eda93853030d6d --- M tests/Makefile.am A tests/gb/gprs_ns2_vty.vty M utils/Makefile.am A utils/osmo-ns-dummy.c 4 files changed, 333 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/01/21701/22 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21701 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I127c178426bc1a3da8de251740eda93853030d6d Gerrit-Change-Number: 21701 Gerrit-PatchSet: 22 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 1 20:23:22 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Fri, 1 Jan 2021 20:23:22 +0000 Subject: Change in libosmocore[master]: gprs_ns2: call python vty tests In-Reply-To: References: Message-ID: Hello Jenkins Builder, neels, laforge, daniel, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/21915 to look at the new patch set (#5). Change subject: gprs_ns2: call python vty tests ...................................................................... gprs_ns2: call python vty tests Also checks vty docs Change-Id: Ia8b77ae5bc3fed835dd1fc2cce0acbc41f199d54 --- M tests/Makefile.am A tests/gb/osmo-ns-dummy.cfg A tests/gb/osmoappdesc.py 3 files changed, 29 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/15/21915/5 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21915 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia8b77ae5bc3fed835dd1fc2cce0acbc41f199d54 Gerrit-Change-Number: 21915 Gerrit-PatchSet: 5 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 1 21:49:36 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Fri, 1 Jan 2021 21:49:36 +0000 Subject: Change in libosmocore[master]: utils: add osmo-ns-dummy In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, pespin, daniel, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/21701 to look at the new patch set (#23). Change subject: utils: add osmo-ns-dummy ...................................................................... utils: add osmo-ns-dummy A dummy client to do integration tests of the ns2 layer. It drop all unit data. But allows vty tests. Change-Id: I127c178426bc1a3da8de251740eda93853030d6d --- M tests/Makefile.am A tests/gb/gprs_ns2_vty.vty M utils/Makefile.am A utils/osmo-ns-dummy.c 4 files changed, 334 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/01/21701/23 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21701 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I127c178426bc1a3da8de251740eda93853030d6d Gerrit-Change-Number: 21701 Gerrit-PatchSet: 23 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 1 21:49:36 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Fri, 1 Jan 2021 21:49:36 +0000 Subject: Change in libosmocore[master]: gprs_ns2: call python vty tests In-Reply-To: References: Message-ID: Hello Jenkins Builder, neels, laforge, daniel, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/21915 to look at the new patch set (#6). Change subject: gprs_ns2: call python vty tests ...................................................................... gprs_ns2: call python vty tests Also checks vty docs Change-Id: Ia8b77ae5bc3fed835dd1fc2cce0acbc41f199d54 --- M tests/Makefile.am A tests/gb/osmo-ns-dummy.cfg A tests/gb/osmoappdesc.py 3 files changed, 30 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/15/21915/6 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21915 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia8b77ae5bc3fed835dd1fc2cce0acbc41f199d54 Gerrit-Change-Number: 21915 Gerrit-PatchSet: 6 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 1 21:51:32 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Fri, 1 Jan 2021 21:51:32 +0000 Subject: Change in libosmocore[master]: utils: add osmo-ns-dummy In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21701 ) Change subject: utils: add osmo-ns-dummy ...................................................................... Patch Set 23: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/21701/14/utils/osmo-ns-dummy.c File utils/osmo-ns-dummy.c: https://gerrit.osmocom.org/c/libosmocore/+/21701/14/utils/osmo-ns-dummy.c at 221 PS14, Line 221: OSMO_VTY_PORT_PCU); > you could just use a command line argument and not have a default port number? "stealing" a port mi [?] Done -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21701 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I127c178426bc1a3da8de251740eda93853030d6d Gerrit-Change-Number: 21701 Gerrit-PatchSet: 23 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 01 Jan 2021 21:51:32 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: laforge Comment-In-Reply-To: lynxis lazus Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Fri Jan 1 23:38:14 2021 From: admin at opensuse.org (OBS Notification) Date: Fri, 01 Jan 2021 23:38:14 +0000 Subject: Build failure of network:osmocom:nightly/osmo-ggsn in Raspbian_10/armv7l In-Reply-To: References: Message-ID: <5fefb272197b7_59872af9dc0645f426195bf@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-ggsn/Raspbian_10/armv7l Package network:osmocom:nightly/osmo-ggsn failed to build in Raspbian_10/armv7l Check out the package for editing: osc checkout network:osmocom:nightly osmo-ggsn Last lines of build log: [ 0s] [ 0s] armbuild04 started "build osmo-ggsn_1.6.0.13.1230.dsc" at Fri Jan 1 23:38:03 UTC 2021. [ 0s] [ 0s] Building osmo-ggsn for project 'network:osmocom:nightly' repository 'Raspbian_10' arch 'armv7l' srcmd5 'cb9dc8de2bd4fcd3edb88e37a2b3b95a' [ 0s] [ 0s] processing recipe /var/cache/obs/worker/root_1/.build-srcdir/osmo-ggsn_1.6.0.13.1230.dsc ... [ 0s] running changelog2spec --target debian --file /var/cache/obs/worker/root_1/.build-srcdir/osmo-ggsn_1.6.0.13.1230.dsc [ 0s] init_buildsystem --configdir /var/run/obs/worker/1/build/configs --cachedir /var/cache/build --prepare --clean --rpmlist /var/cache/obs/worker/root_1/.build.rpmlist /var/cache/obs/worker/root_1/.build-srcdir/osmo-ggsn_1.6.0.13.1230.dsc build ... [ 1s] unknown keyword in config: [ 1s] could not autodetect package type [ 1s] [ 1s] armbuild04 failed "build osmo-ggsn_1.6.0.13.1230.dsc" at Fri Jan 1 23:38:04 UTC 2021. [ 1s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Jan 2 01:37:27 2021 From: admin at opensuse.org (OBS Notification) Date: Sat, 02 Jan 2021 01:37:27 +0000 Subject: Build failure of network:osmocom:nightly/open5gs in Debian_10/i586 In-Reply-To: References: Message-ID: <5fefce7223a3a_59872af9dc0645f4265054d@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/open5gs/Debian_10/i586 Package network:osmocom:nightly/open5gs failed to build in Debian_10/i586 Check out the package for editing: osc checkout network:osmocom:nightly open5gs Last lines of build log: [ 236s] [2539/2539] cc -o tests/handover/handover 'tests/handover/63da1a3@@handover at exe/abts-main.c.o' 'tests/handover/63da1a3@@handover at exe/epc-x2-test.c.o' 'tests/handover/63da1a3@@handover at exe/epc-s1-test.c.o' -Wl,--no-undefined -Wl,--as-needed -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z,relro -Wl,-z,now -Wl,--start-group tests/app/libtestapp.a tests/common/libtestcomon.a lib/core/libogscore.so.2.1.1 lib/app/libogsapp.so.2.1.1 lib/dbi/libogsdbi.so.2.1.1 lib/crypt/libogscrypt.so.2.1.1 lib/sctp/libogssctp.so.2.1.1 lib/gtp/libogsgtp.so.2.1.1 lib/s1ap/libogss1ap.so.2.1.1 lib/asn1c/s1ap/libogsasn1c-s1ap.so.2.1.1 lib/asn1c/common/libogsasn1c-common.so.2.1.1 lib/asn1c/util/libogsasn1c-util.so.2.1.1 lib/ngap/libogsngap.so.2.1.1 lib/asn1c/ngap/libogsasn1c-ngap.so.2.1.1 lib/nas/eps/libogsnas-eps.so.2.1.1 lib/nas/common/libogsnas-common.so.2.1.1 lib/nas/5gs/libogsnas-5gs.so.2.1.1 lib/diameter/rx/libogsdiameter-rx.so.2.1.1 lib/diameter/common/libogsdiameter-common.so.2.1.1 subprojects/freeDiameter/libfdcore/libfdcore.so.1.3.2 subprojects/freeDiameter/libfdproto/libfdproto.so.1.3.2 /usr/lib/i386-linux-gnu/libyaml.so /usr/lib/gcc/i686-linux-gnu/8/../../../i386-linux-gnu/libmongoc-1.0.so /usr/lib/gcc/i686-linux-gnu/8/../../../i386-linux-gnu/libbson-1.0.so -lsctp -lidn -ldl -lsctp -lgcrypt -lgnutls -lsctp -lidn -ldl -lsctp -lgcrypt -lgnutls -lsctp -lidn -ldl -lsctp -lgcrypt -lgnutls -Wl,--end-group -pthread '-Wl,-rpath,$ORIGIN/../app:$ORIGIN/../common:$ORIGIN/../../lib/core:$ORIGIN/../../lib/app:$ORIGIN/../../lib/dbi:$ORIGIN/../../lib/crypt:$ORIGIN/../../lib/sctp:$ORIGIN/../../lib/gtp:$ORIGIN/../../lib/s1ap:$ORIGIN/../../lib/asn1c/s1ap:$ORIGIN/../../lib/asn1c/common:$ORIGIN/../../lib/asn1c/util:$ORIGIN/../../lib/ngap:$ORIGIN/../../lib/asn1c/ngap:$ORIGIN/../../lib/nas/eps:$ORIGIN/../../lib/nas/common:$ORIGIN/../../lib/nas/5gs:$ORIGIN/../../lib/diameter/rx:$ORIGIN/../../lib/diameter/common:$ORIGIN/../../subprojects/freeDiameter/libfdcore:$ORIGIN/../../subprojects/freeDiameter/libfdproto' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-i686-linux-gnu/tests/app:/usr/src/packages/BUILD/obj-i686-linux-gnu/tests/common:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/core:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/app:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/dbi:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/crypt:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/sctp:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/gtp:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/s1ap:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/asn1c/s1ap:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/asn1c/common:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/asn1c/util:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/ngap:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/asn1c/ngap:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/nas/eps:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/nas/common:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/nas/5gs:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/diameter/rx:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/diameter/common:/usr/src/packages/BUILD/obj-i686-linux-gnu/subprojects/freeDiameter/libfdcore:/usr/src/packages/BUILD/obj-i686-linux-gnu/subprojects/freeDiameter/libfdproto [ 236s] debian/rules override_dh_auto_test [ 236s] make[1]: Entering directory '/usr/src/packages/BUILD' [ 236s] cd obj-i686-linux-gnu && meson test --suite unit [ 237s] ninja: Entering directory `/usr/src/packages/BUILD/obj-i686-linux-gnu' [ 237s] ninja: no work to do. [ 245s] 1/3 open5gs:unit / core OK 7.07 s [ 245s] 2/3 open5gs:unit / crypt OK 0.17 s [ 245s] 3/3 open5gs:unit / unit FAIL 0.07 s (exit status 1) [ 245s] [ 245s] Ok: 2 [ 245s] Expected Fail: 0 [ 245s] Fail: 1 [ 245s] Unexpected Pass: 0 [ 245s] Skipped: 0 [ 245s] Timeout: 0 [ 245s] [ 245s] Full log written to /usr/src/packages/BUILD/obj-i686-linux-gnu/meson-logs/testlog.txt [ 245s] make[1]: *** [debian/rules:17: override_dh_auto_test] Error 1 [ 245s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 245s] make: *** [debian/rules:11: binary] Error 2 [ 245s] dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 [ 245s] ### VM INTERACTION START ### [ 248s] [ 237.873208] sysrq: Power Off [ 248s] [ 237.883496] reboot: Power down [ 248s] ### VM INTERACTION END ### [ 248s] [ 248s] lamb69 failed "build open5gs_2.1.1.20210102.dsc" at Sat Jan 2 01:37:09 UTC 2021. [ 248s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Jan 2 01:46:53 2021 From: admin at opensuse.org (OBS Notification) Date: Sat, 02 Jan 2021 01:46:53 +0000 Subject: Build failure of network:osmocom:nightly/osmocom-nightly in Debian_10/armv7l In-Reply-To: References: Message-ID: <5fefd091878e_59872af9dc0645f42651470@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmocom-nightly/Debian_10/armv7l Package network:osmocom:nightly/osmocom-nightly failed to build in Debian_10/armv7l Check out the package for editing: osc checkout network:osmocom:nightly osmocom-nightly Last lines of build log: [ 0s] [ 0s] armbuild04 started "build osmocom-nightly_0.0.0.20210102.dsc" at Sat Jan 2 01:46:41 UTC 2021. [ 0s] [ 0s] Building osmocom-nightly for project 'network:osmocom:nightly' repository 'Debian_10' arch 'armv7l' srcmd5 '957bc167c820b1a92244d9e8f244b883' [ 0s] [ 0s] processing recipe /var/cache/obs/worker/root_2/.build-srcdir/osmocom-nightly_0.0.0.20210102.dsc ... [ 0s] running changelog2spec --target debian --file /var/cache/obs/worker/root_2/.build-srcdir/osmocom-nightly_0.0.0.20210102.dsc [ 0s] init_buildsystem --configdir /var/run/obs/worker/2/build/configs --cachedir /var/cache/build --prepare --clean --rpmlist /var/cache/obs/worker/root_2/.build.rpmlist /var/cache/obs/worker/root_2/.build-srcdir/osmocom-nightly_0.0.0.20210102.dsc build ... [ 1s] unknown keyword in config: [ 1s] could not autodetect package type [ 1s] [ 1s] armbuild04 failed "build osmocom-nightly_0.0.0.20210102.dsc" at Sat Jan 2 01:46:42 UTC 2021. [ 1s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Jan 2 01:51:27 2021 From: admin at opensuse.org (OBS Notification) Date: Sat, 02 Jan 2021 01:51:27 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <5fefd1bb8cb24_59872af9dc0645f426523d5@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/xUbuntu_20.04/x86_64 Package network:osmocom:nightly/simtrace2 failed to build in xUbuntu_20.04/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 114s] [COMPILING libboard/qmod/source/wwan_perst.c] [ 114s] [COMPILING libboard/qmod/source/card_pres.c] [ 114s] [COMPILING libboard/qmod/source/wwan_led.c] [ 114s] [COMPILING libboard/qmod/source/i2c.c] [ 114s] [COMPILING libboard/qmod/source/board_qmod.c] [ 114s] [COMPILING apps/dfu/main.c] [ 115s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 115s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 115s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 115s] Memory region Used Size Region Size %age Used [ 115s] rom: 16588 B 16 KB 101.25% [ 115s] ram: 11672 B 48 KB 23.75/usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 115s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 204 bytes [ 115s] collect2: error: ld returned 1 exit status [ 115s] % [ 115s] make[2]: *** [Makefile:234: flash] Error 1 [ 115s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 115s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 115s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 115s] dh_auto_build: error: make -j1 returned exit code 2 [ 115s] make: *** [debian/rules:16: build] Error 25 [ 115s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 115s] ### VM INTERACTION START ### [ 118s] [ 107.996782] sysrq: Power Off [ 118s] [ 108.000838] reboot: Power down [ 118s] ### VM INTERACTION END ### [ 118s] [ 118s] sheep85 failed "build simtrace2_0.7.0.69.aadd.dsc" at Sat Jan 2 01:51:19 UTC 2021. [ 118s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Jan 2 01:52:01 2021 From: admin at opensuse.org (OBS Notification) Date: Sat, 02 Jan 2021 01:52:01 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.10/x86_64 In-Reply-To: References: Message-ID: <5fefd1d7ca957_59872af9dc0645f42652534@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/xUbuntu_20.10/x86_64 Package network:osmocom:nightly/simtrace2 failed to build in xUbuntu_20.10/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 115s] [COMPILING apps/dfu/main.c] [ 115s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 115s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 116s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 116s] Memory region Used Size Region Size %age Used [ 116s] rom: 16580 B 16 KB 101.20% [ 116s] ram: 11672 B 48 KB 23.75/usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 116s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 116s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 116s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 116s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 116s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 116s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 196 bytes [ 116s] collect2: error: ld returned 1 exit status [ 116s] % [ 116s] make[2]: *** [Makefile:234: flash] Error 1 [ 116s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 116s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 116s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 116s] dh_auto_build: error: make -j1 returned exit code 2 [ 116s] make: *** [debian/rules:16: build] Error 25 [ 116s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 116s] ### VM INTERACTION START ### [ 119s] [ 109.838345] sysrq: Power Off [ 119s] [ 109.845226] reboot: Power down [ 119s] ### VM INTERACTION END ### [ 119s] [ 119s] goat09 failed "build simtrace2_0.7.0.69.aadd.dsc" at Sat Jan 2 01:51:49 UTC 2021. [ 119s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Jan 2 02:41:27 2021 From: admin at opensuse.org (OBS Notification) Date: Sat, 02 Jan 2021 02:41:27 +0000 Subject: Build failure of network:osmocom:nightly/libusrp in Raspbian_10/armv7l In-Reply-To: References: Message-ID: <5fefdd739b23d_59872af9dc0645f42661181@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libusrp/Raspbian_10/armv7l Package network:osmocom:nightly/libusrp failed to build in Raspbian_10/armv7l Check out the package for editing: osc checkout network:osmocom:nightly libusrp Last lines of build log: [ 0s] [ 0s] armbuild04 started "build libusrp_3.4.5.dsc" at Sat Jan 2 02:41:14 UTC 2021. [ 0s] [ 0s] Building libusrp for project 'network:osmocom:nightly' repository 'Raspbian_10' arch 'armv7l' srcmd5 '084fb1a888edd6aef14d24f237fa730b' [ 0s] [ 0s] processing recipe /var/cache/obs/worker/root_1/.build-srcdir/libusrp_3.4.5.dsc ... [ 0s] running changelog2spec --target debian --file /var/cache/obs/worker/root_1/.build-srcdir/libusrp_3.4.5.dsc [ 0s] init_buildsystem --configdir /var/run/obs/worker/1/build/configs --cachedir /var/cache/build --prepare --clean --rpmlist /var/cache/obs/worker/root_1/.build.rpmlist /var/cache/obs/worker/root_1/.build-srcdir/libusrp_3.4.5.dsc build ... [ 1s] unknown keyword in config: [ 1s] could not autodetect package type [ 1s] [ 1s] armbuild04 failed "build libusrp_3.4.5.dsc" at Sat Jan 2 02:41:15 UTC 2021. [ 1s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Jan 2 04:12:18 2021 From: admin at opensuse.org (OBS Notification) Date: Sat, 02 Jan 2021 04:12:18 +0000 Subject: Build failure of network:osmocom:nightly/osmo-mgw in Raspbian_10/armv7l In-Reply-To: References: Message-ID: <5feff2ab48a03_59872af9dc0645f4266854a@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-mgw/Raspbian_10/armv7l Package network:osmocom:nightly/osmo-mgw failed to build in Raspbian_10/armv7l Check out the package for editing: osc checkout network:osmocom:nightly osmo-mgw Last lines of build log: [ 0s] [ 0s] armbuild04 started "build osmo-mgw_1.7.0.133.92a7.dsc" at Sat Jan 2 04:12:10 UTC 2021. [ 0s] [ 0s] Building osmo-mgw for project 'network:osmocom:nightly' repository 'Raspbian_10' arch 'armv7l' srcmd5 '95ba51f341ac64b34429d633aaaaa116' [ 0s] [ 0s] processing recipe /var/cache/obs/worker/root_2/.build-srcdir/osmo-mgw_1.7.0.133.92a7.dsc ... [ 0s] running changelog2spec --target debian --file /var/cache/obs/worker/root_2/.build-srcdir/osmo-mgw_1.7.0.133.92a7.dsc [ 0s] init_buildsystem --configdir /var/run/obs/worker/2/build/configs --cachedir /var/cache/build --prepare --clean --rpmlist /var/cache/obs/worker/root_2/.build.rpmlist /var/cache/obs/worker/root_2/.build-srcdir/osmo-mgw_1.7.0.133.92a7.dsc build ... [ 1s] unknown keyword in config: [ 1s] could not autodetect package type [ 1s] [ 1s] armbuild04 failed "build osmo-mgw_1.7.0.133.92a7.dsc" at Sat Jan 2 04:12:11 UTC 2021. [ 1s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Jan 2 05:47:44 2021 From: admin at opensuse.org (OBS Notification) Date: Sat, 02 Jan 2021 05:47:44 +0000 Subject: Build failure of network:osmocom:nightly/libgtpnl in Raspbian_10/armv7l In-Reply-To: References: Message-ID: <5ff0091d4fe13_59872af9dc0645f42683284@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libgtpnl/Raspbian_10/armv7l Package network:osmocom:nightly/libgtpnl failed to build in Raspbian_10/armv7l Check out the package for editing: osc checkout network:osmocom:nightly libgtpnl Last lines of build log: [ 0s] [ 0s] armbuild04 started "build libgtpnl_1.2.1.3.102c.dsc" at Sat Jan 2 05:47:38 UTC 2021. [ 0s] [ 0s] Building libgtpnl for project 'network:osmocom:nightly' repository 'Raspbian_10' arch 'armv7l' srcmd5 '8392c706748da5dead47649e5190d3c9' [ 0s] [ 0s] processing recipe /var/cache/obs/worker/root_2/.build-srcdir/libgtpnl_1.2.1.3.102c.dsc ... [ 0s] running changelog2spec --target debian --file /var/cache/obs/worker/root_2/.build-srcdir/libgtpnl_1.2.1.3.102c.dsc [ 0s] init_buildsystem --configdir /var/run/obs/worker/2/build/configs --cachedir /var/cache/build --prepare --clean --rpmlist /var/cache/obs/worker/root_2/.build.rpmlist /var/cache/obs/worker/root_2/.build-srcdir/libgtpnl_1.2.1.3.102c.dsc build ... [ 1s] unknown keyword in config: [ 1s] could not autodetect package type [ 1s] [ 1s] armbuild04 failed "build libgtpnl_1.2.1.3.102c.dsc" at Sat Jan 2 05:47:39 UTC 2021. [ 1s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Jan 2 06:06:35 2021 From: admin at opensuse.org (OBS Notification) Date: Sat, 02 Jan 2021 06:06:35 +0000 Subject: Build failure of network:osmocom:nightly/osmo-fl2k in Raspbian_10/armv7l In-Reply-To: References: Message-ID: <5ff00d8199dd4_59872af9dc0645f42690378@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-fl2k/Raspbian_10/armv7l Package network:osmocom:nightly/osmo-fl2k failed to build in Raspbian_10/armv7l Check out the package for editing: osc checkout network:osmocom:nightly osmo-fl2k Last lines of build log: [ 1s] [ 1s] armbuild04 started "build osmo-fl2k_0.1.1.28.197f.dsc" at Sat Jan 2 06:06:34 UTC 2021. [ 1s] [ 1s] Building osmo-fl2k for project 'network:osmocom:nightly' repository 'Raspbian_10' arch 'armv7l' srcmd5 'a1923117a39d30c904b91d602594020d' [ 1s] [ 1s] processing recipe /var/cache/obs/worker/root_3/.build-srcdir/osmo-fl2k_0.1.1.28.197f.dsc ... [ 1s] running changelog2spec --target debian --file /var/cache/obs/worker/root_3/.build-srcdir/osmo-fl2k_0.1.1.28.197f.dsc [ 1s] init_buildsystem --configdir /var/run/obs/worker/3/build/configs --cachedir /var/cache/build --prepare --clean --rpmlist /var/cache/obs/worker/root_3/.build.rpmlist /var/cache/obs/worker/root_3/.build-srcdir/osmo-fl2k_0.1.1.28.197f.dsc build ... [ 1s] unknown keyword in config: [ 1s] could not autodetect package type [ 1s] [ 1s] armbuild04 failed "build osmo-fl2k_0.1.1.28.197f.dsc" at Sat Jan 2 06:06:34 UTC 2021. [ 1s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Jan 2 06:06:35 2021 From: admin at opensuse.org (OBS Notification) Date: Sat, 02 Jan 2021 06:06:35 +0000 Subject: Build failure of network:osmocom:nightly/osmo-e1d in Debian_10/armv7l In-Reply-To: References: Message-ID: <5ff00d82a23af_59872af9dc0645f42690439@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-e1d/Debian_10/armv7l Package network:osmocom:nightly/osmo-e1d failed to build in Debian_10/armv7l Check out the package for editing: osc checkout network:osmocom:nightly osmo-e1d Last lines of build log: [ 0s] [ 0s] armbuild04 started "build osmo-e1d_0.1.1.30.868c.dsc" at Sat Jan 2 06:06:25 UTC 2021. [ 0s] [ 0s] Building osmo-e1d for project 'network:osmocom:nightly' repository 'Debian_10' arch 'armv7l' srcmd5 '239c0b7248bc0e92cb10c750d8ed4fe6' [ 0s] [ 0s] processing recipe /var/cache/obs/worker/root_3/.build-srcdir/osmo-e1d_0.1.1.30.868c.dsc ... [ 0s] running changelog2spec --target debian --file /var/cache/obs/worker/root_3/.build-srcdir/osmo-e1d_0.1.1.30.868c.dsc [ 0s] init_buildsystem --configdir /var/run/obs/worker/3/build/configs --cachedir /var/cache/build --prepare --clean --rpmlist /var/cache/obs/worker/root_3/.build.rpmlist /var/cache/obs/worker/root_3/.build-srcdir/osmo-e1d_0.1.1.30.868c.dsc build ... [ 1s] unknown keyword in config: [ 1s] could not autodetect package type [ 1s] [ 1s] armbuild04 failed "build osmo-e1d_0.1.1.30.868c.dsc" at Sat Jan 2 06:06:26 UTC 2021. [ 1s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Jan 2 08:28:10 2021 From: admin at opensuse.org (OBS Notification) Date: Sat, 02 Jan 2021 08:28:10 +0000 Subject: Build failure of network:osmocom:nightly/osmo-uecups in Raspbian_10/armv7l In-Reply-To: References: Message-ID: <5ff02ea863ebf_59872af9dc0645f42698470@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-uecups/Raspbian_10/armv7l Package network:osmocom:nightly/osmo-uecups failed to build in Raspbian_10/armv7l Check out the package for editing: osc checkout network:osmocom:nightly osmo-uecups Last lines of build log: [ 0s] [ 0s] armbuild04 started "build osmo-uecups_0.1.3.1.8362.dsc" at Sat Jan 2 08:28:06 UTC 2021. [ 0s] [ 0s] Building osmo-uecups for project 'network:osmocom:nightly' repository 'Raspbian_10' arch 'armv7l' srcmd5 'd8317c835353c294a30957029901fb3f' [ 0s] [ 0s] processing recipe /var/cache/obs/worker/root_2/.build-srcdir/osmo-uecups_0.1.3.1.8362.dsc ... [ 0s] running changelog2spec --target debian --file /var/cache/obs/worker/root_2/.build-srcdir/osmo-uecups_0.1.3.1.8362.dsc [ 0s] init_buildsystem --configdir /var/run/obs/worker/2/build/configs --cachedir /var/cache/build --prepare --clean --rpmlist /var/cache/obs/worker/root_2/.build.rpmlist /var/cache/obs/worker/root_2/.build-srcdir/osmo-uecups_0.1.3.1.8362.dsc build ... [ 1s] unknown keyword in config: [ 1s] could not autodetect package type [ 1s] [ 1s] armbuild04 failed "build osmo-uecups_0.1.3.1.8362.dsc" at Sat Jan 2 08:28:07 UTC 2021. [ 1s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Sat Jan 2 10:32:10 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 2 Jan 2021 10:32:10 +0000 Subject: Change in osmo-mgw[master]: fixup mgcp_trunk: increase default number of virtual endpoints References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-mgw/+/21916 ) Change subject: fixup mgcp_trunk: increase default number of virtual endpoints ...................................................................... fixup mgcp_trunk: increase default number of virtual endpoints In change I55605ea083565b6950d0820e3f72c50c9dc19ffa, the default number of endpoints was increased to 512, however the configuration examples were not updated. Change-Id: I449a612065a5208c9f70ae74f594e8d45eb344cf Related: OS#4711, SYS#5262 --- M doc/examples/osmo-mgw/osmo-mgw-abis_e1.cfg M doc/examples/osmo-mgw/osmo-mgw.cfg 2 files changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/16/21916/1 diff --git a/doc/examples/osmo-mgw/osmo-mgw-abis_e1.cfg b/doc/examples/osmo-mgw/osmo-mgw-abis_e1.cfg index abdcb04..6d369ef 100644 --- a/doc/examples/osmo-mgw/osmo-mgw-abis_e1.cfg +++ b/doc/examples/osmo-mgw/osmo-mgw-abis_e1.cfg @@ -13,7 +13,7 @@ bind port 2427 sdp audio payload number 98 sdp audio payload name GSM - number endpoints 31 + number endpoints 512 loop 0 force-realloc 1 rtcp-omit diff --git a/doc/examples/osmo-mgw/osmo-mgw.cfg b/doc/examples/osmo-mgw/osmo-mgw.cfg index dca858e..ea00f6c 100644 --- a/doc/examples/osmo-mgw/osmo-mgw.cfg +++ b/doc/examples/osmo-mgw/osmo-mgw.cfg @@ -10,7 +10,7 @@ bind port 2427 sdp audio payload number 98 sdp audio payload name GSM - number endpoints 31 + number endpoints 512 loop 0 force-realloc 1 rtcp-omit -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/21916 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I449a612065a5208c9f70ae74f594e8d45eb344cf Gerrit-Change-Number: 21916 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 2 21:24:04 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 2 Jan 2021 21:24:04 +0000 Subject: Change in libosmocore[master]: cbsp: Fix encoding of "ETWS Warning Security Info" IE References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21917 ) Change subject: cbsp: Fix encoding of "ETWS Warning Security Info" IE ...................................................................... cbsp: Fix encoding of "ETWS Warning Security Info" IE This is a fixed-length Tag-Value IE. Our decoder already parsed it correctly, but the encoder encoded it as TLV, which is wrong. Change-Id: I7e1d7eab8b8e51acd9a24c38e2d3d30bbf00847a --- M src/gsm/cbsp.c 1 file changed, 5 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/17/21917/1 diff --git a/src/gsm/cbsp.c b/src/gsm/cbsp.c index b89358d..6ddef33 100644 --- a/src/gsm/cbsp.c +++ b/src/gsm/cbsp.c @@ -177,12 +177,15 @@ } } else { int wperiod = encode_wperiod(in->u.emergency.warning_period); + uint8_t *cur; if (wperiod < 0) return -EINVAL; msgb_tv_put(msg, CBSP_IEI_EMERG_IND, in->u.emergency.indicator); msgb_tv16_put(msg, CBSP_IEI_WARN_TYPE, in->u.emergency.warning_type); - msgb_tlv_put(msg, CBSP_IEI_WARN_SEC_INFO, sizeof(in->u.emergency.warning_sec_info), - in->u.emergency.warning_sec_info); + /* Tag + fixed length value! */ + msgb_put_u8(msg, CBSP_IEI_WARN_SEC_INFO); + cur = msgb_put(msg, sizeof(in->u.emergency.warning_sec_info)); + memcpy(cur, in->u.emergency.warning_sec_info, sizeof(in->u.emergency.warning_sec_info)); msgb_tv_put(msg, CBSP_IEI_WARNING_PERIOD, wperiod); } return 0; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21917 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I7e1d7eab8b8e51acd9a24c38e2d3d30bbf00847a Gerrit-Change-Number: 21917 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 2 21:24:04 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 2 Jan 2021 21:24:04 +0000 Subject: Change in libosmocore[master]: cbsp: Fix osmo_cbsp_recv_buffered() for KEEP-ALIVE-COMPLETE References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21918 ) Change subject: cbsp: Fix osmo_cbsp_recv_buffered() for KEEP-ALIVE-COMPLETE ...................................................................... cbsp: Fix osmo_cbsp_recv_buffered() for KEEP-ALIVE-COMPLETE We used to suppress/drop any "zero length" messages, but we didn't include the header when computing the length. However, in CBSP there are messages (at least KEEP-ALIVE-COMPLETE) which only consist of the header without any information elements. We cannot simply drop such messages. This also fixes the return value of osmo_cbsp_recv_buffered() to be the total number of received octets (including the header). Change-Id: Ib620128a167cb77f061ee57e8f8ad707b96b1c0d --- M src/gsm/cbsp.c 1 file changed, 1 insertion(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/18/21918/1 diff --git a/src/gsm/cbsp.c b/src/gsm/cbsp.c index 6ddef33..2037f7c 100644 --- a/src/gsm/cbsp.c +++ b/src/gsm/cbsp.c @@ -1460,12 +1460,7 @@ } } /* else: complete message received */ - rc = msgb_l2len(msg); - if (rc == 0) { - /* drop empty message */ - rc = -EAGAIN; - goto discard_msg; - } + rc = msgb_length(msg); if (tmp_msg) *tmp_msg = NULL; *rmsg = msg; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21918 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ib620128a167cb77f061ee57e8f8ad707b96b1c0d Gerrit-Change-Number: 21918 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 2 21:44:48 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 2 Jan 2021 21:44:48 +0000 Subject: Change in libosmocore[master]: cbsp: Fix parsing DCS in decode of WRITE-REPLACE References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21919 ) Change subject: cbsp: Fix parsing DCS in decode of WRITE-REPLACE ...................................................................... cbsp: Fix parsing DCS in decode of WRITE-REPLACE The encoder generates the DCS IE, but the decoder forgot to parse it :/ Change-Id: I05d489f91a2cc5df372e8e695126659eedac9485 --- M src/gsm/cbsp.c 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/19/21919/1 diff --git a/src/gsm/cbsp.c b/src/gsm/cbsp.c index 2037f7c..2c7a7b7 100644 --- a/src/gsm/cbsp.c +++ b/src/gsm/cbsp.c @@ -678,6 +678,7 @@ out->u.cbs.category = *TLVP_VAL(tp, CBSP_IEI_CATEGORY); out->u.cbs.rep_period = tlvp_val16be(tp, CBSP_IEI_REP_PERIOD); out->u.cbs.num_bcast_req = tlvp_val16be(tp, CBSP_IEI_NUM_BCAST_REQ); + out->u.cbs.dcs = *TLVP_VAL(tp, CBSP_IEI_DCS); num_of_pages = *TLVP_VAL(tp, CBSP_IEI_NUM_OF_PAGES); if (num_of_pages < 1) return -EINVAL; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21919 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I05d489f91a2cc5df372e8e695126659eedac9485 Gerrit-Change-Number: 21919 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 2 21:59:14 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 2 Jan 2021 21:59:14 +0000 Subject: Change in osmo-bsc[master]: smscb: Avoid scheduler array overflow References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21920 ) Change subject: smscb: Avoid scheduler array overflow ...................................................................... smscb: Avoid scheduler array overflow This fixes the following heap overflow in the SMSCB scheduler: ==109051==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x60d00003a9a0 at pc 0x55d77e4bedf1 bp 0x7fff8cdc4240 sp 0x7fff8cdc4238 READ of size 8 at 0x60d00003a9a0 thread T0 #0 0x55d77e4bedf0 in bts_smscb_sched_add_before /space/home/laforge/projects/git/osmo-bsc/src/osmo-bsc/cbch_scheduler.c:64 Change-Id: If529aa905336a1b9e7a36e931c165df0ba9899ad --- M src/osmo-bsc/cbch_scheduler.c 1 file changed, 4 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/20/21920/1 diff --git a/src/osmo-bsc/cbch_scheduler.c b/src/osmo-bsc/cbch_scheduler.c index 8021804..1bdf5e7 100644 --- a/src/osmo-bsc/cbch_scheduler.c +++ b/src/osmo-bsc/cbch_scheduler.c @@ -60,6 +60,9 @@ OSMO_ASSERT(smscb->num_pages <= ARRAY_SIZE(smscb->page)); OSMO_ASSERT(smscb->num_pages >= 1); + if (last_idx >= sched_arr_size) + return -ERANGE; + for (i = smscb->num_pages - 1; i >= 0; i--) { while (sched_arr[arr_idx]) { arr_idx--; @@ -132,7 +135,7 @@ } last_page = rc; - while (last_page < cstate->sched_arr_size) { + while (last_page + smscb->input.rep_period < cstate->sched_arr_size) { /* store further instances in a way that the last block of the N+1th instance * happens no later than "interval" after the last block of the Nth instance */ rc = bts_smscb_sched_add_before(arr, arr_size, -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21920 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: If529aa905336a1b9e7a36e931c165df0ba9899ad Gerrit-Change-Number: 21920 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 2 21:59:15 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 2 Jan 2021 21:59:15 +0000 Subject: Change in osmo-bsc[master]: smscb: Fix adding of SMSCB messages when no message with lower period... References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21921 ) Change subject: smscb: Fix adding of SMSCB messages when no message with lower period exists ...................................................................... smscb: Fix adding of SMSCB messages when no message with lower period exists Adding SMSCB messages to a BTS so far only worked if there were existing messages with a lower scheduling period than the new message. Before this patch, it fails for new messages if they are of equal or lower scheduling period than the existing messages. Change-Id: I69a05b22200b3a1ee406b0673553e135603d723b --- M src/osmo-bsc/smscb.c 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/21/21921/1 diff --git a/src/osmo-bsc/smscb.c b/src/osmo-bsc/smscb.c index 8ce962a..59f917b 100644 --- a/src/osmo-bsc/smscb.c +++ b/src/osmo-bsc/smscb.c @@ -110,6 +110,8 @@ return; } } + /* we didn't find any messages with longer period than us, inert us at tail */ + llist_add_tail(&new->list, &cstate->messages); } /* stringify a SMSCB for logging */ -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21921 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I69a05b22200b3a1ee406b0673553e135603d723b Gerrit-Change-Number: 21921 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 2 22:42:57 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 2 Jan 2021 22:42:57 +0000 Subject: Change in osmo-mgw[master]: fixup mgcp_trunk: increase default number of virtual endpoints In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/21916 ) Change subject: fixup mgcp_trunk: increase default number of virtual endpoints ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/21916 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I449a612065a5208c9f70ae74f594e8d45eb344cf Gerrit-Change-Number: 21916 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 02 Jan 2021 22:42:57 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 2 22:42:59 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 2 Jan 2021 22:42:59 +0000 Subject: Change in osmo-mgw[master]: fixup mgcp_trunk: increase default number of virtual endpoints In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/21916 ) Change subject: fixup mgcp_trunk: increase default number of virtual endpoints ...................................................................... fixup mgcp_trunk: increase default number of virtual endpoints In change I55605ea083565b6950d0820e3f72c50c9dc19ffa, the default number of endpoints was increased to 512, however the configuration examples were not updated. Change-Id: I449a612065a5208c9f70ae74f594e8d45eb344cf Related: OS#4711, SYS#5262 --- M doc/examples/osmo-mgw/osmo-mgw-abis_e1.cfg M doc/examples/osmo-mgw/osmo-mgw.cfg 2 files changed, 2 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/doc/examples/osmo-mgw/osmo-mgw-abis_e1.cfg b/doc/examples/osmo-mgw/osmo-mgw-abis_e1.cfg index abdcb04..6d369ef 100644 --- a/doc/examples/osmo-mgw/osmo-mgw-abis_e1.cfg +++ b/doc/examples/osmo-mgw/osmo-mgw-abis_e1.cfg @@ -13,7 +13,7 @@ bind port 2427 sdp audio payload number 98 sdp audio payload name GSM - number endpoints 31 + number endpoints 512 loop 0 force-realloc 1 rtcp-omit diff --git a/doc/examples/osmo-mgw/osmo-mgw.cfg b/doc/examples/osmo-mgw/osmo-mgw.cfg index dca858e..ea00f6c 100644 --- a/doc/examples/osmo-mgw/osmo-mgw.cfg +++ b/doc/examples/osmo-mgw/osmo-mgw.cfg @@ -10,7 +10,7 @@ bind port 2427 sdp audio payload number 98 sdp audio payload name GSM - number endpoints 31 + number endpoints 512 loop 0 force-realloc 1 rtcp-omit -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/21916 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I449a612065a5208c9f70ae74f594e8d45eb344cf Gerrit-Change-Number: 21916 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 2 22:43:13 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 2 Jan 2021 22:43:13 +0000 Subject: Change in libosmocore[master]: gprs_ns2: use zero initialized memory for vty_binds In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21914 ) Change subject: gprs_ns2: use zero initialized memory for vty_binds ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21914 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I5635d98c52948fddcc375e1be9b1cd04aa32bc3c Gerrit-Change-Number: 21914 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 02 Jan 2021 22:43:13 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 2 22:44:00 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 2 Jan 2021 22:44:00 +0000 Subject: Change in libosmocore[master]: utils: add osmo-ns-dummy In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21701 ) Change subject: utils: add osmo-ns-dummy ...................................................................... Patch Set 23: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21701 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I127c178426bc1a3da8de251740eda93853030d6d Gerrit-Change-Number: 21701 Gerrit-PatchSet: 23 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 02 Jan 2021 22:44:00 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 2 22:44:18 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 2 Jan 2021 22:44:18 +0000 Subject: Change in libosmocore[master]: gprs_ns2: call python vty tests In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21915 ) Change subject: gprs_ns2: call python vty tests ...................................................................... Patch Set 6: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21915 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia8b77ae5bc3fed835dd1fc2cce0acbc41f199d54 Gerrit-Change-Number: 21915 Gerrit-PatchSet: 6 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Comment-Date: Sat, 02 Jan 2021 22:44:18 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 2 22:44:20 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 2 Jan 2021 22:44:20 +0000 Subject: Change in libosmocore[master]: gprs_ns2: use zero initialized memory for vty_binds In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21914 ) Change subject: gprs_ns2: use zero initialized memory for vty_binds ...................................................................... gprs_ns2: use zero initialized memory for vty_binds Change-Id: I5635d98c52948fddcc375e1be9b1cd04aa32bc3c --- M src/gb/gprs_ns2_vty2.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/gb/gprs_ns2_vty2.c b/src/gb/gprs_ns2_vty2.c index e8738c1..41daa74 100644 --- a/src/gb/gprs_ns2_vty2.c +++ b/src/gb/gprs_ns2_vty2.c @@ -108,7 +108,7 @@ static struct vty_bind *vty_bind_alloc(const char *name) { - struct vty_bind *vbind = talloc(vty_nsi, struct vty_bind); + struct vty_bind *vbind = talloc_zero(vty_nsi, struct vty_bind); if (!vbind) return NULL; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21914 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I5635d98c52948fddcc375e1be9b1cd04aa32bc3c Gerrit-Change-Number: 21914 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 2 22:44:21 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 2 Jan 2021 22:44:21 +0000 Subject: Change in libosmocore[master]: utils: add osmo-ns-dummy In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21701 ) Change subject: utils: add osmo-ns-dummy ...................................................................... utils: add osmo-ns-dummy A dummy client to do integration tests of the ns2 layer. It drop all unit data. But allows vty tests. Change-Id: I127c178426bc1a3da8de251740eda93853030d6d --- M tests/Makefile.am A tests/gb/gprs_ns2_vty.vty M utils/Makefile.am A utils/osmo-ns-dummy.c 4 files changed, 334 insertions(+), 3 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/tests/Makefile.am b/tests/Makefile.am index cb683f7..33b42df 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -320,6 +320,7 @@ gsm0808/gsm0808_test.ok gb/bssgp_fc_tests.err \ gb/bssgp_fc_tests.ok gb/bssgp_fc_tests.sh \ gb/gprs_bssgp_test.ok gb/gprs_ns_test.ok gea/gea_test.ok \ + gb/gprs_ns2_vty.vty \ gprs/gprs_test.ok kasumi/kasumi_test.ok \ msgfile/msgfile_test.ok msgfile/msgconfig.cfg \ logging/logging_test.ok logging/logging_test.err \ @@ -430,6 +431,13 @@ # pass -u to osmo_verify_transcript_vty.py by doing: # make vty-test U=-u +vty-test-ns2: + $(MAKE) -C $(top_builddir)/utils osmo-ns-dummy + osmo_verify_transcript_vty.py -v \ + -p 42042 \ + -r "$(top_builddir)/utils/osmo-ns-dummy -p 42042" \ + $(U) $(srcdir)/gb/gprs_ns2*.vty + vty-test-logging: osmo_verify_transcript_vty.py -v \ -p 42042 \ @@ -461,6 +469,7 @@ $(MAKE) vty-test-logging $(MAKE) vty-test-vty $(MAKE) vty-test-tdef + $(MAKE) vty-test-ns2 ctrl-test: echo "No CTRL tests exist currently" diff --git a/tests/gb/gprs_ns2_vty.vty b/tests/gb/gprs_ns2_vty.vty new file mode 100644 index 0000000..397ec26 --- /dev/null +++ b/tests/gb/gprs_ns2_vty.vty @@ -0,0 +1,33 @@ +OsmoNSdummy> list +... + show ns binds [stats] + show ns entities [stats] + show ns persistent + show ns (nsei|nsvc) <0-65535> [stats] +... + logging filter nse nsei <0-65535> + logging filter nsvc nsvci <0-65535> +... +OsmoNSdummy> enable +OsmoNSdummy# configure terminal +OsmoNSdummy(config)# list +... + ns +... +OsmoNSdummy(config)# ns +OsmoNSdummy(config-ns)# list +... + timer (tns-block|tns-block-retries|tns-reset|tns-reset-retries|tns-test|tns-alive|tns-alive-retries|tsns-prov|tsns-size-retries|tsns-config-retries) <0-65535> + nse <0-65535> + no nse <0-65535> + bind (fr|udp) ID + no bind ID +... +OsmoNSdummy(config-ns)# bind udp abc +OsmoNSdummy(config-ns-bind)# fr eta0 frnet +fr can be only used with frame relay bind +OsmoNSdummy(config-ns-bind)# listen 127.0.0.14 42999 +OsmoNSdummy(config-ns-bind)# end +OsmoNSdummy# show ns +UDP bind: 127.0.0.14:42999 DSCP: 0 + 0 NS-VC: diff --git a/utils/Makefile.am b/utils/Makefile.am index 653b719..4fac477 100644 --- a/utils/Makefile.am +++ b/utils/Makefile.am @@ -1,11 +1,14 @@ -if ENABLE_UTILITIES + +bin_PROGRAMS = +noinst_PROGRAMS = AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_builddir)/include $(TALLOC_CFLAGS) AM_CFLAGS = -Wall $(PTHREAD_CFLAGS) LDADD = $(top_builddir)/src/libosmocore.la $(top_builddir)/src/gsm/libosmogsm.la $(PTHREAD_LIBS) +if ENABLE_UTILITIES EXTRA_DIST = conv_gen.py conv_codes_gsm.py -bin_PROGRAMS = osmo-arfcn osmo-auc-gen osmo-config-merge +bin_PROGRAMS += osmo-arfcn osmo-auc-gen osmo-config-merge osmo_arfcn_SOURCES = osmo-arfcn.c @@ -16,9 +19,21 @@ osmo_config_merge_CFLAGS = $(TALLOC_CFLAGS) if ENABLE_PCSC -noinst_PROGRAMS = osmo-sim-test +noinst_PROGRAMS += osmo-sim-test osmo_sim_test_SOURCES = osmo-sim-test.c osmo_sim_test_LDADD = $(LDADD) $(top_builddir)/src/sim/libosmosim.la $(PCSC_LIBS) osmo_sim_test_CFLAGS = $(PCSC_CFLAGS) endif endif + +if ENABLE_EXT_TESTS +if ENABLE_GB +noinst_PROGRAMS += osmo-ns-dummy +osmo_ns_dummy_SOURCES = osmo-ns-dummy.c +osmo_ns_dummy_LDADD = $(LDADD) $(TALLOC_LIBS) \ + $(top_builddir)/src/gb/libosmogb.la \ + $(top_builddir)/src/vty/libosmovty.la \ + $(top_builddir)/src/gsm/libosmogsm.la +osmo_ns_dummy_CFLAGS = $(TALLOC_CFLAGS) +endif +endif diff --git a/utils/osmo-ns-dummy.c b/utils/osmo-ns-dummy.c new file mode 100644 index 0000000..6790b4c --- /dev/null +++ b/utils/osmo-ns-dummy.c @@ -0,0 +1,274 @@ + +#include +#include +#include +#include +#include + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "config.h" + +void *tall_nsdummy_ctx = NULL; +static struct log_info log_info = {}; +static bool quit = false; +static bool config_given = false; +static bool daemonize = false; +static int vty_port = 0; +static char *config_file = NULL; + +static const char vty_copyright[] = + "Copyright (C) 2020 by by sysmocom - s.f.m.c. GmbH\r\n" + "Author: Alexander Couzens \r\n" + "License GNU GPL version 2 or later\r\n" + "This is free software: you are free to change and redistribute it.\r\n" + "There is NO WARRANTY, to the extent permitted by law.\r\n"; + +static struct vty_app_info vty_info = { + .name = "OsmoNSdummy", + .version = PACKAGE_VERSION, + .copyright = vty_copyright, +}; + +static void print_help() +{ + printf( "Some useful options:\n" + " -h --help This text\n" + " -c --config-file Specify the filename of the config file\n" + " -V --version Print version\n" + " -D --daemonize Fork the process into a background daemon\n" + " -p --vty-port PORT Set the vty port to listen on.\n" + "\nVTY reference generation:\n" + " --vty-ref-mode MODE VTY reference generation mode (e.g. 'expert').\n" + " --vty-ref-xml Generate the VTY reference XML output and exit.\n" + ); +} + +static void handle_long_options(const char *prog_name, const int long_option) +{ + static int vty_ref_mode = VTY_REF_GEN_MODE_DEFAULT; + + switch (long_option) { + case 1: + vty_ref_mode = get_string_value(vty_ref_gen_mode_names, optarg); + if (vty_ref_mode < 0) { + fprintf(stderr, "%s: Unknown VTY reference generation " + "mode '%s'\n", prog_name, optarg); + exit(2); + } + break; + case 2: + fprintf(stderr, "Generating the VTY reference in mode '%s' (%s)\n", + get_value_string(vty_ref_gen_mode_names, vty_ref_mode), + get_value_string(vty_ref_gen_mode_desc, vty_ref_mode)); + vty_dump_xml_ref_mode(stdout, (enum vty_ref_gen_mode) vty_ref_mode); + exit(0); + default: + fprintf(stderr, "%s: error parsing cmdline options\n", prog_name); + exit(2); + } +} + +static void handle_options(int argc, char **argv) +{ + while (1) { + int option_idx = 0, c; + static int long_option = 0; + static const struct option long_options[] = { + { "help", 0, 0, 'h' }, + { "config-file", 1, 0, 'c' }, + { "version", 0, 0, 'V' }, + { "daemonize", 0, 0, 'D' }, + { "vty-port", 1, 0, 'p' }, + { "vty-ref-mode", 1, &long_option, 1 }, + { "vty-ref-xml", 0, &long_option, 2 }, + { 0, 0, 0, 0 } + }; + + c = getopt_long(argc, argv, "hc:p:VD", + long_options, &option_idx); + if (c == -1) + break; + + switch (c) { + case 'h': + print_help(); + exit(0); + break; + case 0: + handle_long_options(argv[0], long_option); + break; + case 'c': + if (config_file) + free(config_file); + config_file = optarg; + config_given = true; + break; + case 'p': + vty_port = atoi(optarg); + if (vty_port < 0 || vty_port > 65535) { + fprintf(stderr, "Invalid port %d given!\n", vty_port); + exit(1); + } + break; + case 'V': + print_version(1); + exit(0); + break; + case 'D': + daemonize = true; + break; + default: + fprintf(stderr, "Unknown option '%c'\n", c); + exit(0); + break; + } + } + + if (!config_file) + config_file = "osmo-ns-dummy.cfg"; + if (!vty_port) { + fprintf(stderr, "A vty port need to be specified (-p)\n"); + exit(1); + } +} + +void sighandler(int sigset) +{ + if (sigset == SIGPIPE) + return; + + fprintf(stderr, "Signal %d received.\n", sigset); + + switch (sigset) { + case SIGINT: + case SIGTERM: + /* If another signal is received afterwards, the program + * is terminated without finishing shutdown process. + */ + signal(SIGINT, SIG_DFL); + signal(SIGTERM, SIG_DFL); + signal(SIGPIPE, SIG_DFL); + signal(SIGABRT, SIG_DFL); + signal(SIGUSR1, SIG_DFL); + signal(SIGUSR2, SIG_DFL); + + quit = 1; + break; + case SIGABRT: + /* in case of abort, we want to obtain a talloc report and + * then run default SIGABRT handler, who will generate coredump + * and abort the process. abort() should do this for us after we + * return, but program wouldn't exit if an external SIGABRT is + * received. + */ + talloc_report_full(tall_nsdummy_ctx, stderr); + signal(SIGABRT, SIG_DFL); + raise(SIGABRT); + break; + case SIGUSR1: + case SIGUSR2: + talloc_report_full(tall_nsdummy_ctx, stderr); + break; + } +} + +/* called by the ns layer */ +int gprs_ns_prim_cb(struct osmo_prim_hdr *oph, void *ctx) +{ + return 0; +} + +int bssgp_prim_cb(struct osmo_prim_hdr *oph, void *ctx) +{ + return 0; +} + + +int main (int argc, char *argv[]) +{ + void *ctx = tall_nsdummy_ctx = talloc_named_const(NULL, 0, "osmo-ns-dummy"); + struct gprs_ns2_inst *nsi; + int rc = 0; + + osmo_init_logging2(ctx, &log_info); + log_set_use_color(osmo_stderr_target, 0); + log_set_print_filename(osmo_stderr_target, 0); + log_set_print_filename(osmo_stderr_target, 0); + log_set_log_level(osmo_stderr_target, LOGL_INFO); + msgb_talloc_ctx_init(ctx, 0); + osmo_stats_init(ctx); + rate_ctr_init(ctx); + + vty_info.tall_ctx = ctx; + vty_init(&vty_info); + logging_vty_add_cmds(); + osmo_stats_vty_add_cmds(); + osmo_talloc_vty_add_cmds(); + + handle_options(argc, argv); + + nsi = gprs_ns2_instantiate(ctx, gprs_ns_prim_cb, NULL); + if (!nsi) { + LOGP(DLNS, LOGL_ERROR, "Failed to create NS instance\n"); + exit(1); + } + + gprs_ns2_vty2_init(nsi); + rc = vty_read_config_file(config_file, NULL); + if (rc < 0 && config_given) { + fprintf(stderr, "Failed to parse the config file: '%s'\n", + config_file); + exit(1); + } + if (rc < 0) + fprintf(stderr, "No config file: '%s' Using default config.\n", + config_file); + + rc = telnet_init_dynif(ctx, NULL, vty_get_bind_addr(), + vty_port); + if (rc < 0) { + fprintf(stderr, "Error initializing telnet\n"); + exit(1); + } + + signal(SIGINT, sighandler); + signal(SIGTERM, sighandler); + signal(SIGPIPE, sighandler); + signal(SIGABRT, sighandler); + signal(SIGUSR1, sighandler); + signal(SIGUSR2, sighandler); + osmo_init_ignore_signals(); + + if (daemonize) { + rc = osmo_daemonize(); + if (rc < 0) { + perror("Error during daemonize"); + exit(1); + } + } + + while (!quit) { + osmo_select_main(0); + } + + telnet_exit(); + gprs_ns2_free(nsi); + + talloc_report_full(tall_nsdummy_ctx, stderr); + talloc_free(tall_nsdummy_ctx); + + return 0; +} -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21701 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I127c178426bc1a3da8de251740eda93853030d6d Gerrit-Change-Number: 21701 Gerrit-PatchSet: 23 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 2 22:44:21 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 2 Jan 2021 22:44:21 +0000 Subject: Change in libosmocore[master]: gprs_ns2: call python vty tests In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21915 ) Change subject: gprs_ns2: call python vty tests ...................................................................... gprs_ns2: call python vty tests Also checks vty docs Change-Id: Ia8b77ae5bc3fed835dd1fc2cce0acbc41f199d54 --- M tests/Makefile.am A tests/gb/osmo-ns-dummy.cfg A tests/gb/osmoappdesc.py 3 files changed, 30 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/tests/Makefile.am b/tests/Makefile.am index 33b42df..dbca9d7 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -320,7 +320,7 @@ gsm0808/gsm0808_test.ok gb/bssgp_fc_tests.err \ gb/bssgp_fc_tests.ok gb/bssgp_fc_tests.sh \ gb/gprs_bssgp_test.ok gb/gprs_ns_test.ok gea/gea_test.ok \ - gb/gprs_ns2_vty.vty \ + gb/gprs_ns2_vty.vty gb/osmoappdesc.py gb/osmo-ns-dummy.cfg \ gprs/gprs_test.ok kasumi/kasumi_test.ok \ msgfile/msgfile_test.ok msgfile/msgconfig.cfg \ logging/logging_test.ok logging/logging_test.err \ @@ -437,6 +437,8 @@ -p 42042 \ -r "$(top_builddir)/utils/osmo-ns-dummy -p 42042" \ $(U) $(srcdir)/gb/gprs_ns2*.vty + osmotestvty.py -p $(abs_top_srcdir)/tests/gb -w $(abs_top_builddir)/tests/gb -v + osmotestconfig.py -p $(abs_top_srcdir)/tests/gb -w $(abs_top_builddir)/tests/gb -v vty-test-logging: osmo_verify_transcript_vty.py -v \ diff --git a/tests/gb/osmo-ns-dummy.cfg b/tests/gb/osmo-ns-dummy.cfg new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/tests/gb/osmo-ns-dummy.cfg diff --git a/tests/gb/osmoappdesc.py b/tests/gb/osmoappdesc.py new file mode 100644 index 0000000..323b94e --- /dev/null +++ b/tests/gb/osmoappdesc.py @@ -0,0 +1,27 @@ +#!/usr/bin/env python3 + +# (C) 2021 by sysmocom - s.f.m.c. GmbH +# Author: Alexander Couzens +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see + +app_configs = { + "osmo-ns-dummy": ["osmo-ns-dummy.cfg"], +} + +apps = [(45999, "../../utils/osmo-ns-dummy -p 45999", "OsmoNSdummy", "osmo-ns-dummy") + ] + +vty_command = ["../../utils/osmo-ns-dummy", "-p", "45999", "-c", "osmo-ns-dummy.cfg"] + +vty_app = apps[0] -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21915 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia8b77ae5bc3fed835dd1fc2cce0acbc41f199d54 Gerrit-Change-Number: 21915 Gerrit-PatchSet: 6 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 2 22:44:53 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 2 Jan 2021 22:44:53 +0000 Subject: Change in osmo-sgsn[master]: configure.ac: define a c standard instead of using the compilers default In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21913 ) Change subject: configure.ac: define a c standard instead of using the compilers default ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21913 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I9867adbed211db0a7b42ac3557f56c3042a67936 Gerrit-Change-Number: 21913 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Reviewer: zecke Gerrit-Comment-Date: Sat, 02 Jan 2021 22:44:53 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 2 22:46:27 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 2 Jan 2021 22:46:27 +0000 Subject: Change in osmo-bsc[master]: vty: join UL/DL SACCH repetition commands together In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21911 ) Change subject: vty: join UL/DL SACCH repetition commands together ...................................................................... Patch Set 3: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/21911/2/src/osmo-bsc/bsc_vty.c File src/osmo-bsc/bsc_vty.c: https://gerrit.osmocom.org/c/osmo-bsc/+/21911/2/src/osmo-bsc/bsc_vty.c at 2820 PS2, Line 2820: argv[0][0] == 'u') > Done. Still not getting why people find strcmp() more readable... because that is the condition. The condition is not "is the first character u" but "is the entire parameter "ul-sacch". What if the code is later extended? -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21911 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ibe98718d8f4933926eed0e622109c9c82537f526 Gerrit-Change-Number: 21911 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 02 Jan 2021 22:46:27 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Comment-In-Reply-To: laforge Comment-In-Reply-To: fixeria Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 2 22:47:12 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 2 Jan 2021 22:47:12 +0000 Subject: Change in osmo-bsc[master]: abis_om2000: keep OM2K FSMs around, don't terminate In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21829 ) Change subject: abis_om2000: keep OM2K FSMs around, don't terminate ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21829 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ia37cffff5c451e1d79a52ccae41ab5718b4661d4 Gerrit-Change-Number: 21829 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Sat, 02 Jan 2021 22:47:12 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 2 22:47:18 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 2 Jan 2021 22:47:18 +0000 Subject: Change in osmo-bsc[master]: abis_om2000: keep OM2K FSMs around, don't terminate In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21829 ) Change subject: abis_om2000: keep OM2K FSMs around, don't terminate ...................................................................... abis_om2000: keep OM2K FSMs around, don't terminate The existing code uses short-lived FSMs which are allocated straight before START, and which are free'd after DONE state is reached. While that works, it makes state introspection a bit hard, as one cannot show the FSM states, etc. Let's change to a different model where the per-OM2k-MO FSMs are always around (in state INIT after object creation). While at it, also introduce a RESET event that can reset each FSM instance back to INIT state, i.e. in case of OML link failure. Change-Id: Ia37cffff5c451e1d79a52ccae41ab5718b4661d4 --- M include/osmocom/bsc/abis_om2000.h M include/osmocom/bsc/bts.h M include/osmocom/bsc/bts_trx.h M src/osmo-bsc/abis_om2000.c M src/osmo-bsc/bts_ericsson_rbs2000.c 5 files changed, 241 insertions(+), 74 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmocom/bsc/abis_om2000.h b/include/osmocom/bsc/abis_om2000.h index 58c07c4..62aef9d 100644 --- a/include/osmocom/bsc/abis_om2000.h +++ b/include/osmocom/bsc/abis_om2000.h @@ -121,9 +121,26 @@ int abis_om2k_tx_tx_conf_req(struct gsm_bts_trx *trx); int abis_om2k_tx_ts_conf_req(struct gsm_bts_trx_ts *ts); -struct osmo_fsm_inst *om2k_bts_fsm_start(struct gsm_bts *bts); +enum om2k_bts_state { + OM2K_BTS_S_INIT, + OM2K_BTS_S_WAIT_CF, + OM2K_BTS_S_WAIT_IS, + OM2K_BTS_S_WAIT_CON, + OM2K_BTS_S_WAIT_TF, + OM2K_BTS_S_WAIT_MCTR, + OM2K_BTS_S_WAIT_TRX_LAPD, + OM2K_BTS_S_WAIT_TRX, + OM2K_BTS_S_DONE, + OM2K_BTS_S_ERROR, +}; + void abis_om2k_bts_init(struct gsm_bts *bts); +void om2k_bts_fsm_start(struct gsm_bts *bts); +void om2k_bts_fsm_reset(struct gsm_bts *bts); + void abis_om2k_trx_init(struct gsm_bts_trx *trx); +void om2k_trx_fsm_start(struct gsm_bts_trx *trx); +void om2k_trx_fsm_reset(struct gsm_bts_trx *trx); int abis_om2k_vty_init(void); diff --git a/include/osmocom/bsc/bts.h b/include/osmocom/bsc/bts.h index aef0e03..c79e7f7 100644 --- a/include/osmocom/bsc/bts.h +++ b/include/osmocom/bsc/bts.h @@ -316,6 +316,7 @@ struct gsm_envabtse envabtse[4]; } bs11; struct { + struct osmo_fsm_inst *bts_fi; struct { struct om2k_mo om2k_mo; struct gsm_abis_mo mo; diff --git a/include/osmocom/bsc/bts_trx.h b/include/osmocom/bsc/bts_trx.h index 5888c63..85adc9b 100644 --- a/include/osmocom/bsc/bts_trx.h +++ b/include/osmocom/bsc/bts_trx.h @@ -66,6 +66,7 @@ struct rxlev_stats rxlev_stat; } ipaccess; struct { + struct osmo_fsm_inst *trx_fi; struct { struct om2k_mo om2k_mo; } trxc; diff --git a/src/osmo-bsc/abis_om2000.c b/src/osmo-bsc/abis_om2000.c index 13d3a33..15c0431 100644 --- a/src/osmo-bsc/abis_om2000.c +++ b/src/osmo-bsc/abis_om2000.c @@ -1598,7 +1598,9 @@ #define S(x) (1 << (x)) enum om2k_event_name { + OM2K_MO_EVT_RESET, OM2K_MO_EVT_START, + OM2K_MO_EVT_CHILD_TERM, OM2K_MO_EVT_RX_CONN_COMPL, OM2K_MO_EVT_RX_RESET_COMPL, OM2K_MO_EVT_RX_START_REQ_ACCEPT, @@ -1611,7 +1613,9 @@ }; static const struct value_string om2k_event_names[] = { + { OM2K_MO_EVT_RESET, "RESET" }, { OM2K_MO_EVT_START, "START" }, + { OM2K_MO_EVT_CHILD_TERM, "CHILD-TERM" }, { OM2K_MO_EVT_RX_CONN_COMPL, "RX-CONN-COMPL" }, { OM2K_MO_EVT_RX_RESET_COMPL, "RX-RESET-COMPL" }, { OM2K_MO_EVT_RX_START_REQ_ACCEPT, "RX-RESET-REQ-ACCEPT" }, @@ -1643,6 +1647,7 @@ struct gsm_bts_trx *trx; struct om2k_mo *mo; uint8_t ts_nr; + uint32_t done_event; }; static void om2k_mo_st_init(struct osmo_fsm_inst *fi, uint32_t event, void *data) @@ -1832,8 +1837,9 @@ static void om2k_mo_s_done_onenter(struct osmo_fsm_inst *fi, uint32_t prev_state) { struct om2k_mo_fsm_priv *omfp = fi->priv; - omfp->mo->fsm = NULL; - osmo_fsm_inst_term(fi, OSMO_FSM_TERM_REGULAR, NULL); + + if (fi->proc.parent) + osmo_fsm_inst_dispatch(fi->proc.parent, omfp->done_event, NULL); } static void om2k_mo_s_error_onenter(struct osmo_fsm_inst *fi, uint32_t prev_state) @@ -1844,11 +1850,24 @@ osmo_fsm_inst_term(fi, OSMO_FSM_TERM_ERROR, NULL); } +static void om2k_mo_allstate(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + switch (event) { + case OM2K_MO_EVT_RESET: + osmo_fsm_inst_broadcast_children(fi, event, data); + osmo_fsm_inst_state_chg(fi, OM2K_ST_INIT, 0, 0); + break; + default: + OSMO_ASSERT(0); + } +} + static const struct osmo_fsm_state om2k_is_states[] = { [OM2K_ST_INIT] = { .name = "INIT", .in_event_mask = S(OM2K_MO_EVT_START), .out_state_mask = S(OM2K_ST_DONE) | + S(OM2K_ST_INIT) | S(OM2K_ST_ERROR) | S(OM2K_ST_WAIT_CONN_COMPL) | S(OM2K_ST_WAIT_START_ACCEPT) | @@ -1859,6 +1878,7 @@ .name = "WAIT-CONN-COMPL", .in_event_mask = S(OM2K_MO_EVT_RX_CONN_COMPL), .out_state_mask = S(OM2K_ST_DONE) | + S(OM2K_ST_INIT) | S(OM2K_ST_ERROR) | S(OM2K_ST_WAIT_START_ACCEPT) | S(OM2K_ST_WAIT_RES_COMPL), @@ -1868,6 +1888,7 @@ .name = "WAIT-RES-COMPL", .in_event_mask = S(OM2K_MO_EVT_RX_RESET_COMPL), .out_state_mask = S(OM2K_ST_DONE) | + S(OM2K_ST_INIT) | S(OM2K_ST_ERROR) | S(OM2K_ST_WAIT_START_ACCEPT), .action = om2k_mo_st_wait_res_compl, @@ -1876,6 +1897,7 @@ .name = "WAIT-START-ACCEPT", .in_event_mask = S(OM2K_MO_EVT_RX_START_REQ_ACCEPT), .out_state_mask = S(OM2K_ST_DONE) | + S(OM2K_ST_INIT) | S(OM2K_ST_ERROR) | S(OM2K_ST_WAIT_START_RES), .action =om2k_mo_st_wait_start_accept, @@ -1884,6 +1906,7 @@ .name = "WAIT-START-RES", .in_event_mask = S(OM2K_MO_EVT_RX_START_RES), .out_state_mask = S(OM2K_ST_DONE) | + S(OM2K_ST_INIT) | S(OM2K_ST_ERROR) | S(OM2K_ST_WAIT_CFG_ACCEPT) | S(OM2K_ST_WAIT_OPINFO_ACCEPT) | @@ -1894,6 +1917,7 @@ .name = "WAIT-CFG-ACCEPT", .in_event_mask = S(OM2K_MO_EVT_RX_CFG_REQ_ACCEPT), .out_state_mask = S(OM2K_ST_DONE) | + S(OM2K_ST_INIT) | S(OM2K_ST_ERROR) | S(OM2K_ST_WAIT_CFG_RES), .action = om2k_mo_st_wait_cfg_accept, @@ -1902,6 +1926,7 @@ .name = "WAIT-CFG-RES", .in_event_mask = S(OM2K_MO_EVT_RX_CFG_RES), .out_state_mask = S(OM2K_ST_DONE) | + S(OM2K_ST_INIT) | S(OM2K_ST_ERROR) | S(OM2K_ST_WAIT_ENABLE_ACCEPT), .action = om2k_mo_st_wait_cfg_res, @@ -1910,6 +1935,7 @@ .name = "WAIT-ENABLE-ACCEPT", .in_event_mask = S(OM2K_MO_EVT_RX_ENA_REQ_ACCEPT), .out_state_mask = S(OM2K_ST_DONE) | + S(OM2K_ST_INIT) | S(OM2K_ST_ERROR) | S(OM2K_ST_WAIT_ENABLE_RES), .action = om2k_mo_st_wait_enable_accept, @@ -1918,6 +1944,7 @@ .name = "WAIT-ENABLE-RES", .in_event_mask = S(OM2K_MO_EVT_RX_ENA_RES), .out_state_mask = S(OM2K_ST_DONE) | + S(OM2K_ST_INIT) | S(OM2K_ST_ERROR) | S(OM2K_ST_WAIT_OPINFO_ACCEPT), .action = om2k_mo_st_wait_enable_res, @@ -1926,19 +1953,20 @@ .name = "WAIT-OPINFO-ACCEPT", .in_event_mask = S(OM2K_MO_EVT_RX_OPINFO_ACC), .out_state_mask = S(OM2K_ST_DONE) | + S(OM2K_ST_INIT) | S(OM2K_ST_ERROR), .action = om2k_mo_st_wait_opinfo_accept, }, [OM2K_ST_DONE] = { .name = "DONE", .in_event_mask = 0, - .out_state_mask = 0, + .out_state_mask = S(OM2K_ST_INIT), .onenter = om2k_mo_s_done_onenter, }, [OM2K_ST_ERROR] = { .name = "ERROR", .in_event_mask = 0, - .out_state_mask = 0, + .out_state_mask = S(OM2K_ST_INIT), .onenter = om2k_mo_s_error_onenter, }, @@ -1955,11 +1983,13 @@ .states = om2k_is_states, .num_states = ARRAY_SIZE(om2k_is_states), .log_subsys = DNM, + .allstate_event_mask = S(OM2K_MO_EVT_RESET), + .allstate_action = om2k_mo_allstate, .event_names = om2k_event_names, .timer_cb = om2k_mo_timer_cb, }; -static struct osmo_fsm_inst *om2k_mo_fsm_start(struct osmo_fsm_inst *parent, uint32_t term_event, +static struct osmo_fsm_inst *om2k_mo_fsm_alloc(struct osmo_fsm_inst *parent, uint32_t done_event, struct gsm_bts_trx *trx, struct om2k_mo *mo) { struct osmo_fsm_inst *fi; @@ -1970,8 +2000,7 @@ get_value_string(om2k_mo_class_short_vals, mo->addr.class), mo->addr.bts, mo->addr.assoc_so, mo->addr.inst); - fi = osmo_fsm_inst_alloc_child_id(&om2k_mo_fsm, parent, - term_event, idbuf); + fi = osmo_fsm_inst_alloc_child_id(&om2k_mo_fsm, parent, OM2K_MO_EVT_CHILD_TERM, idbuf); if (!fi) return NULL; @@ -1979,13 +2008,17 @@ omfp = talloc_zero(fi, struct om2k_mo_fsm_priv); omfp->mo = mo; omfp->trx = trx; + omfp->done_event = done_event; fi->priv = omfp; - osmo_fsm_inst_dispatch(fi, OM2K_MO_EVT_START, NULL); - return fi; } +static void om2k_mo_fsm_start(struct om2k_mo *mo) +{ + osmo_fsm_inst_dispatch(mo->fsm, OM2K_MO_EVT_START, NULL); +} + int om2k_mo_fsm_recvmsg(struct gsm_bts *bts, struct om2k_mo *mo, struct om2k_decoded_msg *odm) { @@ -2053,7 +2086,9 @@ ***********************************************************************/ enum om2k_trx_event { - OM2K_TRX_EVT_START, + OM2K_TRX_EVT_RESET = OM2K_MO_EVT_RESET, + OM2K_TRX_EVT_START = OM2K_MO_EVT_START, + OM2K_TRX_EVT_CHILD_TERM = OM2K_MO_EVT_CHILD_TERM, OM2K_TRX_EVT_TRXC_DONE, OM2K_TRX_EVT_TX_DONE, OM2K_TRX_EVT_RX_DONE, @@ -2062,7 +2097,9 @@ }; static struct value_string om2k_trx_events[] = { + { OM2K_TRX_EVT_RESET, "RESET" }, { OM2K_TRX_EVT_START, "START" }, + { OM2K_TRX_EVT_CHILD_TERM, "CHILD-TERM" }, { OM2K_TRX_EVT_TRXC_DONE, "TRXC-DONE" }, { OM2K_TRX_EVT_TX_DONE, "TX-DONE" }, { OM2K_TRX_EVT_RX_DONE, "RX-DONE" }, @@ -2085,6 +2122,7 @@ struct om2k_trx_fsm_priv { struct gsm_bts_trx *trx; uint8_t cur_ts_nr; + uint32_t done_event; }; static void om2k_trx_s_init(struct osmo_fsm_inst *fi, uint32_t event, void *data) @@ -2093,7 +2131,7 @@ /* First initialize TRXC */ osmo_fsm_inst_state_chg(fi, OM2K_TRX_S_WAIT_TRXC, TRX_FSM_TIMEOUT, 0); - om2k_mo_fsm_start(fi, OM2K_TRX_EVT_TRXC_DONE, otfp->trx, &otfp->trx->rbs2000.trxc.om2k_mo); + om2k_mo_fsm_start(&otfp->trx->rbs2000.trxc.om2k_mo); } static void om2k_trx_s_wait_trxc(struct osmo_fsm_inst *fi, uint32_t event, void *data) @@ -2102,7 +2140,7 @@ /* Initialize TX after TRXC */ osmo_fsm_inst_state_chg(fi, OM2K_TRX_S_WAIT_TX, TRX_FSM_TIMEOUT, 0); - om2k_mo_fsm_start(fi, OM2K_TRX_EVT_TX_DONE, otfp->trx, &otfp->trx->rbs2000.tx.om2k_mo); + om2k_mo_fsm_start(&otfp->trx->rbs2000.tx.om2k_mo); } static void om2k_trx_s_wait_tx(struct osmo_fsm_inst *fi, uint32_t event, void *data) @@ -2111,7 +2149,7 @@ /* Initialize RX after TX */ osmo_fsm_inst_state_chg(fi, OM2K_TRX_S_WAIT_RX, TRX_FSM_TIMEOUT, 0); - om2k_mo_fsm_start(fi, OM2K_TRX_EVT_RX_DONE, otfp->trx, &otfp->trx->rbs2000.rx.om2k_mo); + om2k_mo_fsm_start(&otfp->trx->rbs2000.rx.om2k_mo); } static void om2k_trx_s_wait_rx(struct osmo_fsm_inst *fi, uint32_t event, void *data) @@ -2123,7 +2161,7 @@ osmo_fsm_inst_state_chg(fi, OM2K_TRX_S_WAIT_TS, TRX_FSM_TIMEOUT, 0); otfp->cur_ts_nr = 0; ts = &otfp->trx->ts[otfp->cur_ts_nr]; - om2k_mo_fsm_start(fi, OM2K_TRX_EVT_TS_DONE, otfp->trx, &ts->rbs2000.om2k_mo); + om2k_mo_fsm_start(&ts->rbs2000.om2k_mo); } static void om2k_trx_s_wait_ts(struct osmo_fsm_inst *fi, uint32_t event, void *data) @@ -2139,7 +2177,7 @@ if (++otfp->cur_ts_nr < 8) { /* iterate to the next timeslot */ ts = &otfp->trx->ts[otfp->cur_ts_nr]; - om2k_mo_fsm_start(fi, OM2K_TRX_EVT_TS_DONE, otfp->trx, &ts->rbs2000.om2k_mo); + om2k_mo_fsm_start(&ts->rbs2000.om2k_mo); } else { /* only after all 8 TS */ osmo_fsm_inst_state_chg(fi, OM2K_TRX_S_SEND_SI, 0, 0); @@ -2163,55 +2201,76 @@ /* See e1_config:bts_isdn_sign_link() / OS#4914 */ otfp->trx->mo.nm_state.administrative = NM_STATE_UNLOCKED; - osmo_fsm_inst_term(fi, OSMO_FSM_TERM_REGULAR, NULL); + if (fi->proc.parent) + osmo_fsm_inst_dispatch(fi->proc.parent, otfp->done_event, NULL); +} + +static void om2k_trx_allstate(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + switch (event) { + case OM2K_TRX_EVT_RESET: + osmo_fsm_inst_broadcast_children(fi, event, data); + osmo_fsm_inst_state_chg(fi, OM2K_TRX_S_INIT, 0, 0); + break; + default: + OSMO_ASSERT(0); + } } static const struct osmo_fsm_state om2k_trx_states[] = { [OM2K_TRX_S_INIT] = { .in_event_mask = S(OM2K_TRX_EVT_START), - .out_state_mask = S(OM2K_TRX_S_WAIT_TRXC), + .out_state_mask = S(OM2K_TRX_S_WAIT_TRXC) | + S(OM2K_TRX_S_INIT), .name = "INIT", .action = om2k_trx_s_init, }, [OM2K_TRX_S_WAIT_TRXC] = { .in_event_mask = S(OM2K_TRX_EVT_TRXC_DONE), .out_state_mask = S(OM2K_TRX_S_ERROR) | - S(OM2K_TRX_S_WAIT_TX), + S(OM2K_TRX_S_WAIT_TX) | + S(OM2K_TRX_S_INIT), .name = "WAIT-TRXC", .action = om2k_trx_s_wait_trxc, }, [OM2K_TRX_S_WAIT_TX] = { .in_event_mask = S(OM2K_TRX_EVT_TX_DONE), .out_state_mask = S(OM2K_TRX_S_ERROR) | - S(OM2K_TRX_S_WAIT_RX), + S(OM2K_TRX_S_WAIT_RX) | + S(OM2K_TRX_S_INIT), .name = "WAIT-TX", .action = om2k_trx_s_wait_tx, }, [OM2K_TRX_S_WAIT_RX] = { .in_event_mask = S(OM2K_TRX_EVT_RX_DONE), .out_state_mask = S(OM2K_TRX_S_ERROR) | - S(OM2K_TRX_S_WAIT_TS), + S(OM2K_TRX_S_WAIT_TS) | + S(OM2K_TRX_S_INIT), .name = "WAIT-RX", .action = om2k_trx_s_wait_rx, }, [OM2K_TRX_S_WAIT_TS] = { .in_event_mask = S(OM2K_TRX_EVT_TS_DONE), .out_state_mask = S(OM2K_TRX_S_ERROR) | - S(OM2K_TRX_S_SEND_SI), + S(OM2K_TRX_S_SEND_SI) | + S(OM2K_TRX_S_INIT), .name = "WAIT-TS", .action = om2k_trx_s_wait_ts, }, [OM2K_TRX_S_SEND_SI] = { .out_state_mask = S(OM2K_TRX_S_ERROR) | - S(OM2K_TRX_S_DONE), + S(OM2K_TRX_S_DONE) | + S(OM2K_TRX_S_INIT), .name = "SEND-SI", .onenter = om2k_trx_s_send_si, }, [OM2K_TRX_S_DONE] = { + .out_state_mask = S(OM2K_TRX_S_INIT), .name = "DONE", .onenter = om2k_trx_s_done_onenter, }, [OM2K_TRX_S_ERROR] = { + .out_state_mask = S(OM2K_TRX_S_INIT), .name = "ERROR", }, }; @@ -2227,41 +2286,68 @@ .states = om2k_trx_states, .num_states = ARRAY_SIZE(om2k_trx_states), .log_subsys = DNM, + .allstate_event_mask = S(OM2K_TRX_EVT_RESET), + .allstate_action = om2k_trx_allstate, .event_names = om2k_trx_events, .timer_cb = om2k_trx_timer_cb, }; -struct osmo_fsm_inst *om2k_trx_fsm_start(struct osmo_fsm_inst *parent, - struct gsm_bts_trx *trx, - uint32_t term_event) +static struct osmo_fsm_inst *om2k_trx_fsm_alloc(struct osmo_fsm_inst *parent, + struct gsm_bts_trx *trx, uint32_t done_event) { struct osmo_fsm_inst *fi; struct om2k_trx_fsm_priv *otfp; char idbuf[32]; + OSMO_ASSERT(!trx->rbs2000.trx_fi); + snprintf(idbuf, sizeof(idbuf), "%u-%u", trx->bts->nr, trx->nr); - fi = osmo_fsm_inst_alloc_child_id(&om2k_trx_fsm, parent, term_event, - idbuf); + fi = osmo_fsm_inst_alloc_child_id(&om2k_trx_fsm, parent, OM2K_MO_EVT_CHILD_TERM, idbuf); if (!fi) return NULL; otfp = talloc_zero(fi, struct om2k_trx_fsm_priv); otfp->trx = trx; + otfp->done_event = done_event; fi->priv = otfp; - osmo_fsm_inst_dispatch(fi, OM2K_TRX_EVT_START, NULL); - return fi; } +void om2k_trx_fsm_start(struct gsm_bts_trx *trx) +{ + struct osmo_fsm_inst *bts_fi = trx->bts->rbs2000.bts_fi; + OSMO_ASSERT(trx->rbs2000.trx_fi); + + /* suppress if BTS is not yet brought up */ + if (bts_fi->state == OM2K_BTS_S_DONE || bts_fi->state == OM2K_BTS_S_WAIT_TRX) + return; + + osmo_fsm_inst_dispatch(trx->rbs2000.trx_fi, OM2K_TRX_EVT_START, NULL); +} + +void om2k_trx_fsm_reset(struct gsm_bts_trx *trx) +{ + struct osmo_fsm_inst *bts_fi = trx->bts->rbs2000.bts_fi; + OSMO_ASSERT(trx->rbs2000.trx_fi); + OSMO_ASSERT(trx->rbs2000.trx_fi); + + /* suppress if BTS is not yet brought up */ + if (bts_fi->state == OM2K_BTS_S_DONE || bts_fi->state == OM2K_BTS_S_WAIT_TRX) + return; + + osmo_fsm_inst_dispatch(trx->rbs2000.trx_fi, OM2K_TRX_EVT_RESET, NULL); +} /*********************************************************************** * OM2000 BTS Finite State Machine, initializes CF and all siblings ***********************************************************************/ enum om2k_bts_event { - OM2K_BTS_EVT_START, + OM2K_BTS_EVT_RESET = OM2K_MO_EVT_RESET, + OM2K_BTS_EVT_START = OM2K_MO_EVT_START, + OM2K_BTS_EVT_CHILD_TERM = OM2K_MO_EVT_CHILD_TERM, OM2K_BTS_EVT_CF_DONE, OM2K_BTS_EVT_IS_DONE, OM2K_BTS_EVT_CON_DONE, @@ -2269,11 +2355,14 @@ OM2K_BTS_EVT_MCTR_DONE, OM2K_BTS_EVT_TRX_LAPD_UP, OM2K_BTS_EVT_TRX_DONE, + OM2K_BTS_EVT_TRX_TERM, OM2K_BTS_EVT_STOP, }; static const struct value_string om2k_bts_events[] = { + { OM2K_BTS_EVT_RESET, "RESET" }, { OM2K_BTS_EVT_START, "START" }, + { OM2K_BTS_EVT_CHILD_TERM, "CHILD-TERM" }, { OM2K_BTS_EVT_CF_DONE, "CF-DONE" }, { OM2K_BTS_EVT_IS_DONE, "IS-DONE" }, { OM2K_BTS_EVT_CON_DONE, "CON-DONE" }, @@ -2285,19 +2374,6 @@ { 0, NULL } }; -enum om2k_bts_state { - OM2K_BTS_S_INIT, - OM2K_BTS_S_WAIT_CF, - OM2K_BTS_S_WAIT_IS, - OM2K_BTS_S_WAIT_CON, - OM2K_BTS_S_WAIT_TF, - OM2K_BTS_S_WAIT_MCTR, - OM2K_BTS_S_WAIT_TRX_LAPD, - OM2K_BTS_S_WAIT_TRX, - OM2K_BTS_S_DONE, - OM2K_BTS_S_ERROR, -}; - struct om2k_bts_fsm_priv { struct gsm_bts *bts; uint8_t next_trx_nr; @@ -2310,7 +2386,7 @@ OSMO_ASSERT(event == OM2K_BTS_EVT_START); osmo_fsm_inst_state_chg(fi, OM2K_BTS_S_WAIT_CF, BTS_FSM_TIMEOUT, 0); - om2k_mo_fsm_start(fi, OM2K_BTS_EVT_CF_DONE, bts->c0, &bts->rbs2000.cf.om2k_mo); + om2k_mo_fsm_start(&bts->rbs2000.cf.om2k_mo); } static void om2k_bts_s_wait_cf(struct osmo_fsm_inst *fi, uint32_t event, void *data) @@ -2321,7 +2397,7 @@ OSMO_ASSERT(event == OM2K_BTS_EVT_CF_DONE); /* TF can take a long time to initialize, wait for 10min */ osmo_fsm_inst_state_chg(fi, OM2K_BTS_S_WAIT_TF, 600, 0); - om2k_mo_fsm_start(fi, OM2K_BTS_EVT_TF_DONE, bts->c0, &bts->rbs2000.tf.om2k_mo); + om2k_mo_fsm_start(&bts->rbs2000.tf.om2k_mo); } static void om2k_bts_s_wait_tf(struct osmo_fsm_inst *fi, uint32_t event, void *data) @@ -2334,10 +2410,10 @@ if (!llist_count(&bts->rbs2000.con.conn_groups)) { /* skip CON object if we have no configuration for it */ osmo_fsm_inst_state_chg(fi, OM2K_BTS_S_WAIT_IS, BTS_FSM_TIMEOUT, 0); - om2k_mo_fsm_start(fi, OM2K_BTS_EVT_IS_DONE, bts->c0, &bts->rbs2000.is.om2k_mo); + om2k_mo_fsm_start(&bts->rbs2000.is.om2k_mo); } else { osmo_fsm_inst_state_chg(fi, OM2K_BTS_S_WAIT_CON, BTS_FSM_TIMEOUT, 0); - om2k_mo_fsm_start(fi, OM2K_BTS_EVT_CON_DONE, bts->c0, &bts->rbs2000.con.om2k_mo); + om2k_mo_fsm_start(&bts->rbs2000.con.om2k_mo); } } @@ -2349,7 +2425,7 @@ OSMO_ASSERT(event == OM2K_BTS_EVT_CON_DONE); osmo_fsm_inst_state_chg(fi, OM2K_BTS_S_WAIT_IS, BTS_FSM_TIMEOUT, 0); - om2k_mo_fsm_start(fi, OM2K_BTS_EVT_IS_DONE, bts->c0, &bts->rbs2000.is.om2k_mo); + om2k_mo_fsm_start(&bts->rbs2000.is.om2k_mo); } static void om2k_bts_s_wait_is(struct osmo_fsm_inst *fi, uint32_t event, void *data) @@ -2362,7 +2438,7 @@ /* If we're running OML >= G12R13, start MCTR, else skip directly to TRX */ if (bts->rbs2000.om2k_version[0].active >= 0x0c0d) { osmo_fsm_inst_state_chg(fi, OM2K_BTS_S_WAIT_MCTR, BTS_FSM_TIMEOUT, 0); - om2k_mo_fsm_start(fi, OM2K_BTS_EVT_MCTR_DONE, bts->c0, &bts->rbs2000.mctr.om2k_mo); + om2k_mo_fsm_start(&bts->rbs2000.mctr.om2k_mo); } else { osmo_fsm_inst_state_chg(fi, OM2K_BTS_S_WAIT_TRX_LAPD, TRX_LAPD_TIMEOUT, 0); } @@ -2385,7 +2461,7 @@ osmo_fsm_inst_state_chg(fi, OM2K_BTS_S_WAIT_TRX, BTS_FSM_TIMEOUT, 0); obfp->next_trx_nr = 0; trx = gsm_bts_trx_num(obfp->bts, obfp->next_trx_nr++); - om2k_trx_fsm_start(fi, trx, OM2K_BTS_EVT_TRX_DONE); + om2k_trx_fsm_start(trx); } static void om2k_bts_s_wait_trx(struct osmo_fsm_inst *fi, uint32_t event, void *data) @@ -2397,7 +2473,7 @@ if (obfp->next_trx_nr < obfp->bts->num_trx) { struct gsm_bts_trx *trx; trx = gsm_bts_trx_num(obfp->bts, obfp->next_trx_nr++); - om2k_trx_fsm_start(fi, trx, OM2K_BTS_EVT_TRX_DONE); + om2k_trx_fsm_start(trx); } else { osmo_fsm_inst_state_chg(fi, OM2K_BTS_S_DONE, 0, 0); } @@ -2405,20 +2481,33 @@ static void om2k_bts_s_done_onenter(struct osmo_fsm_inst *fi, uint32_t prev_state) { - osmo_fsm_inst_term(fi, OSMO_FSM_TERM_REGULAR, NULL); +} + +static void om2k_bts_allstate(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + switch (event) { + case OM2K_BTS_EVT_RESET: + osmo_fsm_inst_broadcast_children(fi, event, data); + osmo_fsm_inst_state_chg(fi, OM2K_BTS_S_INIT, 0, 0); + break; + default: + OSMO_ASSERT(0); + } } static const struct osmo_fsm_state om2k_bts_states[] = { [OM2K_BTS_S_INIT] = { .in_event_mask = S(OM2K_BTS_EVT_START), - .out_state_mask = S(OM2K_BTS_S_WAIT_CF), + .out_state_mask = S(OM2K_BTS_S_WAIT_CF) | + S(OM2K_BTS_S_INIT), .name = "INIT", .action = om2k_bts_s_init, }, [OM2K_BTS_S_WAIT_CF] = { .in_event_mask = S(OM2K_BTS_EVT_CF_DONE), .out_state_mask = S(OM2K_BTS_S_ERROR) | - S(OM2K_BTS_S_WAIT_TF), + S(OM2K_BTS_S_WAIT_TF) | + S(OM2K_BTS_S_INIT), .name = "WAIT-CF", .action = om2k_bts_s_wait_cf, }, @@ -2426,14 +2515,16 @@ .in_event_mask = S(OM2K_BTS_EVT_TF_DONE), .out_state_mask = S(OM2K_BTS_S_ERROR) | S(OM2K_BTS_S_WAIT_CON) | - S(OM2K_BTS_S_WAIT_IS), + S(OM2K_BTS_S_WAIT_IS) | + S(OM2K_BTS_S_INIT), .name = "WAIT-TF", .action = om2k_bts_s_wait_tf, }, [OM2K_BTS_S_WAIT_CON] = { .in_event_mask = S(OM2K_BTS_EVT_CON_DONE), .out_state_mask = S(OM2K_BTS_S_ERROR) | - S(OM2K_BTS_S_WAIT_IS), + S(OM2K_BTS_S_WAIT_IS) | + S(OM2K_BTS_S_INIT), .name = "WAIT-CON", .action = om2k_bts_s_wait_con, }, @@ -2441,35 +2532,41 @@ .in_event_mask = S(OM2K_BTS_EVT_IS_DONE), .out_state_mask = S(OM2K_BTS_S_ERROR) | S(OM2K_BTS_S_WAIT_MCTR) | - S(OM2K_BTS_S_WAIT_TRX_LAPD), + S(OM2K_BTS_S_WAIT_TRX_LAPD) | + S(OM2K_BTS_S_INIT), .name = "WAIT-IS", .action = om2k_bts_s_wait_is, }, [OM2K_BTS_S_WAIT_MCTR] = { .in_event_mask = S(OM2K_BTS_EVT_MCTR_DONE), .out_state_mask = S(OM2K_BTS_S_ERROR) | - S(OM2K_BTS_S_WAIT_TRX_LAPD), + S(OM2K_BTS_S_WAIT_TRX_LAPD) | + S(OM2K_BTS_S_INIT), .name = "WAIT-MCTR", .action = om2k_bts_s_wait_mctr, }, [OM2K_BTS_S_WAIT_TRX_LAPD] = { .in_event_mask = S(OM2K_BTS_EVT_TRX_LAPD_UP), - .out_state_mask = S(OM2K_BTS_S_WAIT_TRX), + .out_state_mask = S(OM2K_BTS_S_WAIT_TRX) | + S(OM2K_BTS_S_INIT), .name = "WAIT-TRX-LAPD", .action = om2k_bts_s_wait_trx_lapd, }, [OM2K_BTS_S_WAIT_TRX] = { .in_event_mask = S(OM2K_BTS_EVT_TRX_DONE), .out_state_mask = S(OM2K_BTS_S_ERROR) | - S(OM2K_BTS_S_DONE), + S(OM2K_BTS_S_DONE) | + S(OM2K_BTS_S_INIT), .name = "WAIT-TRX", .action = om2k_bts_s_wait_trx, }, [OM2K_BTS_S_DONE] = { + .out_state_mask = S(OM2K_BTS_S_INIT), .name = "DONE", .onenter = om2k_bts_s_done_onenter, }, [OM2K_BTS_S_ERROR] = { + .out_state_mask = S(OM2K_BTS_S_INIT), .name = "ERROR", }, }; @@ -2492,30 +2589,44 @@ .states = om2k_bts_states, .num_states = ARRAY_SIZE(om2k_bts_states), .log_subsys = DNM, + .allstate_event_mask = S(OM2K_BTS_EVT_RESET), + .allstate_action = om2k_bts_allstate, .event_names = om2k_bts_events, .timer_cb = om2k_bts_timer_cb, }; -struct osmo_fsm_inst * -om2k_bts_fsm_start(struct gsm_bts *bts) +static struct osmo_fsm_inst * +om2k_bts_fsm_alloc(struct gsm_bts *bts) { struct osmo_fsm_inst *fi; struct om2k_bts_fsm_priv *obfp; char idbuf[16]; + OSMO_ASSERT(!bts->rbs2000.bts_fi); + snprintf(idbuf, sizeof(idbuf), "%u", bts->nr); fi = osmo_fsm_inst_alloc(&om2k_bts_fsm, bts, NULL, LOGL_DEBUG, idbuf); if (!fi) return NULL; + fi->priv = obfp = talloc_zero(fi, struct om2k_bts_fsm_priv); obfp->bts = bts; - osmo_fsm_inst_dispatch(fi, OM2K_BTS_EVT_START, NULL); - return fi; } +void om2k_bts_fsm_start(struct gsm_bts *bts) +{ + OSMO_ASSERT(bts->rbs2000.bts_fi); + osmo_fsm_inst_dispatch(bts->rbs2000.bts_fi, OM2K_BTS_EVT_START, NULL); +} + +void om2k_bts_fsm_reset(struct gsm_bts *bts) +{ + OSMO_ASSERT(bts->rbs2000.bts_fi); + osmo_fsm_inst_dispatch(bts->rbs2000.bts_fi, OM2K_BTS_EVT_RESET, NULL); +} /*********************************************************************** * OM2000 Negotiation @@ -2955,17 +3066,27 @@ void abis_om2k_trx_init(struct gsm_bts_trx *trx) { struct gsm_bts *bts = trx->bts; + struct osmo_fsm_inst *trx_fi; unsigned int i; OSMO_ASSERT(bts->type == GSM_BTS_TYPE_RBS2000); + trx_fi = om2k_trx_fsm_alloc(trx->bts->rbs2000.bts_fi, trx, OM2K_BTS_EVT_TRX_DONE); + trx->rbs2000.trx_fi = trx_fi; + om2k_mo_init(&trx->rbs2000.trxc.om2k_mo, OM2K_MO_CLS_TRXC, bts->nr, 255, trx->nr); + om2k_mo_fsm_alloc(trx_fi, OM2K_TRX_EVT_TRXC_DONE, trx, &trx->rbs2000.trxc.om2k_mo); + om2k_mo_init(&trx->rbs2000.tx.om2k_mo, OM2K_MO_CLS_TX, bts->nr, 255, trx->nr); + om2k_mo_fsm_alloc(trx_fi, OM2K_TRX_EVT_TX_DONE, trx, &trx->rbs2000.tx.om2k_mo); + om2k_mo_init(&trx->rbs2000.rx.om2k_mo, OM2K_MO_CLS_RX, bts->nr, 255, trx->nr); + om2k_mo_fsm_alloc(trx_fi, OM2K_TRX_EVT_RX_DONE, trx, &trx->rbs2000.rx.om2k_mo); for (i = 0; i < ARRAY_SIZE(trx->ts); i++) { struct gsm_bts_trx_ts *ts = &trx->ts[i]; om2k_mo_init(&ts->rbs2000.om2k_mo, OM2K_MO_CLS_TS, bts->nr, trx->nr, i); + om2k_mo_fsm_alloc(trx_fi, OM2K_TRX_EVT_TS_DONE, trx, &ts->rbs2000.om2k_mo); OSMO_ASSERT(ts->fi); } } @@ -2973,14 +3094,29 @@ /* initialize the OM2K_MO members of gsm_bts */ void abis_om2k_bts_init(struct gsm_bts *bts) { + struct osmo_fsm_inst *bts_fi; + OSMO_ASSERT(bts->type == GSM_BTS_TYPE_RBS2000); + bts_fi = om2k_bts_fsm_alloc(bts); + bts->rbs2000.bts_fi = bts_fi; + om2k_mo_init(&bts->rbs2000.cf.om2k_mo, OM2K_MO_CLS_CF, bts->nr, 0xFF, 0); + om2k_mo_fsm_alloc(bts_fi, OM2K_BTS_EVT_CF_DONE, bts->c0, &bts->rbs2000.cf.om2k_mo); + om2k_mo_init(&bts->rbs2000.is.om2k_mo, OM2K_MO_CLS_IS, bts->nr, 0xFF, 0); + om2k_mo_fsm_alloc(bts_fi, OM2K_BTS_EVT_IS_DONE, bts->c0, &bts->rbs2000.is.om2k_mo); + om2k_mo_init(&bts->rbs2000.con.om2k_mo, OM2K_MO_CLS_CON, bts->nr, 0xFF, 0); + om2k_mo_fsm_alloc(bts_fi, OM2K_BTS_EVT_CON_DONE, bts->c0, &bts->rbs2000.con.om2k_mo); + om2k_mo_init(&bts->rbs2000.dp.om2k_mo, OM2K_MO_CLS_DP, bts->nr, 0xFF, 0); + om2k_mo_init(&bts->rbs2000.tf.om2k_mo, OM2K_MO_CLS_TF, bts->nr, 0xFF, 0); + om2k_mo_fsm_alloc(bts_fi, OM2K_BTS_EVT_TF_DONE, bts->c0, &bts->rbs2000.tf.om2k_mo); + om2k_mo_init(&bts->rbs2000.mctr.om2k_mo, OM2K_MO_CLS_MCTR, bts->nr, 0xFF, 0); + om2k_mo_fsm_alloc(bts_fi, OM2K_BTS_EVT_MCTR_DONE, bts->c0, &bts->rbs2000.mctr.om2k_mo); // FIXME: There can be multiple MCTRs ... } diff --git a/src/osmo-bsc/bts_ericsson_rbs2000.c b/src/osmo-bsc/bts_ericsson_rbs2000.c index 1297b30..4fbf057 100644 --- a/src/osmo-bsc/bts_ericsson_rbs2000.c +++ b/src/osmo-bsc/bts_ericsson_rbs2000.c @@ -35,16 +35,8 @@ static void bootstrap_om_bts(struct gsm_bts *bts) { - struct gsm_bts_trx *trx; - LOGP(DNM, LOGL_NOTICE, "bootstrapping OML for BTS %u\n", bts->nr); - /* Global init (not bootstrapping) */ - abis_om2k_bts_init(bts); - - llist_for_each_entry(trx, &bts->trx_list, list) - abis_om2k_trx_init(trx); - /* TODO: Should we wait for a Failure report? */ om2k_bts_fsm_start(bts); } @@ -53,7 +45,8 @@ { LOGP(DNM, LOGL_NOTICE, "bootstrapping OML for TRX %u/%u\n", trx->bts->nr, trx->nr); - /* FIXME */ + + om2k_trx_fsm_start(trx); } static int shutdown_om(struct gsm_bts *bts) @@ -145,6 +138,11 @@ LOGP(DNM, LOGL_NOTICE, "Line-%u TS-%u TEI-%u SAPI-%u: Link " "Lost for Ericsson RBS2000. Re-starting DL Establishment\n", isd->line->num, isd->ts_nr, isd->tei, isd->sapi); + if (isd->tei == isd->trx->bts->oml_tei) + om2k_bts_fsm_reset(isd->trx->bts); + else + om2k_trx_fsm_reset(isd->trx); + break; /* Some datalink for a given TEI/SAPI went down, try to re-start it */ e1i_ts = &isd->line->ts[isd->ts_nr-1]; OSMO_ASSERT(e1i_ts->type == E1INP_TS_TYPE_SIGN); @@ -184,10 +182,24 @@ e1inp_line_bind_ops(line, &bts_isdn_e1inp_line_ops); } +static int bts_model_rbs2k_bts_init(struct gsm_bts *bts) +{ + abis_om2k_bts_init(bts); + return 0; +} + +static int bts_model_rbs2k_trx_init(struct gsm_bts_trx *trx) +{ + abis_om2k_trx_init(trx); + return 0; +} + static struct gsm_bts_model model_rbs2k = { .type = GSM_BTS_TYPE_RBS2000, .name = "rbs2000", .start = bts_model_rbs2k_start, + .bts_init = bts_model_rbs2k_bts_init, + .trx_init = bts_model_rbs2k_trx_init, .oml_rcvmsg = &abis_om2k_rcvmsg, .config_write_bts = &config_write_bts, .e1line_bind_ops = &bts_model_rbs2k_e1line_bind_ops, -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21829 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ia37cffff5c451e1d79a52ccae41ab5718b4661d4 Gerrit-Change-Number: 21829 Gerrit-PatchSet: 5 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 2 22:47:19 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 2 Jan 2021 22:47:19 +0000 Subject: Change in osmo-bsc[master]: om2000: Add "show bts 0 om2k-mo" command In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21830 ) Change subject: om2000: Add "show bts 0 om2k-mo" command ...................................................................... om2000: Add "show bts 0 om2k-mo" command Change-Id: Ib81c717bf29aa29c8ac634a959abd12accd1046e --- M src/osmo-bsc/abis_om2000_vty.c 1 file changed, 72 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved fixeria: Looks good to me, but someone else must approve pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/osmo-bsc/abis_om2000_vty.c b/src/osmo-bsc/abis_om2000_vty.c index 206fd6b..ef063a1 100644 --- a/src/osmo-bsc/abis_om2000_vty.c +++ b/src/osmo-bsc/abis_om2000_vty.c @@ -658,8 +658,80 @@ VTY_NEWLINE); } +static void vty_dump_om2k_mo(struct vty *vty, const struct om2k_mo *mo, const char *pfx) +{ + unsigned int pfx_len = strlen(pfx); + const char *mo_name = abis_om2k_mo_name(&mo->addr); + unsigned int pfx_mo_len = pfx_len + strlen(mo_name); + unsigned int pfx2_len; + char pfx2[23]; + int i; + + /* generate padding after MO class to align the state names in the same column */ + if (pfx_mo_len > sizeof(pfx2)-1) + pfx2_len = 0; + else + pfx2_len = sizeof(pfx2)-1 - pfx_mo_len; + for (i = 0; i < pfx2_len; i++) + pfx2[i] = ' '; + pfx2[pfx2_len] = '\0'; + + vty_out(vty, "%s%s%s %s%s", pfx, mo_name, pfx2, + mo->fsm ? osmo_fsm_inst_state_name(mo->fsm) : "[NULL]", + VTY_NEWLINE); +} + +DEFUN(show_om2k_mo, show_om2k_mo_cmd, + "show bts <0-255> om2k-mo", + SHOW_STR "Display information about a BTS\n" + "BTS number\n" "OM2000 Managed Object information\n") +{ + struct gsm_network *net = gsmnet_from_vty(vty); + int bts_nr = atoi(argv[0]); + struct gsm_bts *bts = gsm_bts_num(net, bts_nr); + struct gsm_bts_trx *trx; + + if (!bts) { + vty_out(vty, "%% can't find BTS '%s'%s", argv[0], VTY_NEWLINE); + return CMD_WARNING; + } + + if (bts->type != GSM_BTS_TYPE_RBS2000) { + vty_out(vty, "%% BTS is not using OM2000%s", VTY_NEWLINE); + return CMD_WARNING; + } + + vty_out(vty, "BTS %3u OM2K-FSM state %s%s", bts->nr, + osmo_fsm_inst_state_name(bts->rbs2000.bts_fi), VTY_NEWLINE); + vty_dump_om2k_mo(vty, &bts->rbs2000.cf.om2k_mo, " "); + vty_dump_om2k_mo(vty, &bts->rbs2000.con.om2k_mo, " "); + vty_dump_om2k_mo(vty, &bts->rbs2000.is.om2k_mo, " "); + vty_dump_om2k_mo(vty, &bts->rbs2000.dp.om2k_mo, " "); + vty_dump_om2k_mo(vty, &bts->rbs2000.tf.om2k_mo, " "); + vty_dump_om2k_mo(vty, &bts->rbs2000.mctr.om2k_mo, " "); + + + llist_for_each_entry(trx, &bts->trx_list, list) { + int tn; + + vty_out(vty, " TRX %u OM2K-FSM state %s%s", trx->nr, + osmo_fsm_inst_state_name(trx->rbs2000.trx_fi), VTY_NEWLINE); + vty_dump_om2k_mo(vty, &trx->rbs2000.trxc.om2k_mo, " "); + vty_dump_om2k_mo(vty, &trx->rbs2000.rx.om2k_mo, " "); + vty_dump_om2k_mo(vty, &trx->rbs2000.tx.om2k_mo, " "); + + for (tn = 0; tn < ARRAY_SIZE(trx->ts); tn++) { + struct gsm_bts_trx_ts *ts = &trx->ts[tn]; + vty_dump_om2k_mo(vty, &ts->rbs2000.om2k_mo, " "); + } + } + + return CMD_SUCCESS; +} + int abis_om2k_vty_init(void) { + install_element_ve(&show_om2k_mo_cmd); install_element(ENABLE_NODE, &om2k_class_inst_cmd); install_element(ENABLE_NODE, &om2k_classnum_inst_cmd); install_node(&om2k_node, dummy_config_write); -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21830 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ib81c717bf29aa29c8ac634a959abd12accd1046e Gerrit-Change-Number: 21830 Gerrit-PatchSet: 6 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 2 22:47:19 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 2 Jan 2021 22:47:19 +0000 Subject: Change in osmo-bsc[master]: abis_om2000: Handle DP object in get_om2k_mo() In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21894 ) Change subject: abis_om2000: Handle DP object in get_om2k_mo() ...................................................................... abis_om2000: Handle DP object in get_om2k_mo() This was somehow forgotten for the DP MO... Change-Id: Ie2ef736eb712e01a3c657ae30c8422c9aa32062a --- M src/osmo-bsc/abis_om2000.c 1 file changed, 3 insertions(+), 0 deletions(-) Approvals: fixeria: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/osmo-bsc/abis_om2000.c b/src/osmo-bsc/abis_om2000.c index 15c0431..90d558a 100644 --- a/src/osmo-bsc/abis_om2000.c +++ b/src/osmo-bsc/abis_om2000.c @@ -776,6 +776,9 @@ struct gsm_bts_trx *trx; switch (abis_mo->class) { + case OM2K_MO_CLS_DP: + mo = &bts->rbs2000.dp.om2k_mo; + break; case OM2K_MO_CLS_CF: mo = &bts->rbs2000.cf.om2k_mo; break; -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21894 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ie2ef736eb712e01a3c657ae30c8422c9aa32062a Gerrit-Change-Number: 21894 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 2 23:52:40 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 2 Jan 2021 23:52:40 +0000 Subject: Change in osmo-bts[master]: sysinfo.c: Fix SI4 GPRS patching which overwrote CBCH IE References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/21922 ) Change subject: sysinfo.c: Fix SI4 GPRS patching which overwrote CBCH IE ...................................................................... sysinfo.c: Fix SI4 GPRS patching which overwrote CBCH IE In Change-Id I1fd513ea03297918d15d4b28ed454f9b6dd6ebfa we introduced patching of SI4 to indicate GPRS presence in terms of PCU connection status. Unfortauntely this didn't account for optional IEs being present in SI4, and hence overwrote any CBCH related information elements, if present. This in turn meant that since the above-mentioned commit, you could have either a GPRS-capable, network, or a Cell Broadcast capable one. Change-Id: I0ee0cf736e2fb74a6759a68101f699b4ec2ef54e Related: OS#3075 --- M include/osmo-bts/bts.h M src/common/rsl.c M src/common/sysinfo.c 3 files changed, 43 insertions(+), 9 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/22/21922/1 diff --git a/include/osmo-bts/bts.h b/include/osmo-bts/bts.h index 2edc20e..6d8b570 100644 --- a/include/osmo-bts/bts.h +++ b/include/osmo-bts/bts.h @@ -377,6 +377,7 @@ uint8_t *bts_sysinfo_get(struct gsm_bts *bts, const struct gsm_time *g_time); void regenerate_si3_restoctets(struct gsm_bts *bts); void regenerate_si4_restoctets(struct gsm_bts *bts); +int get_si4_ro_offset(const uint8_t *si4_buf); uint8_t *lchan_sacch_get(struct gsm_lchan *lchan); int lchan_init_lapdm(struct gsm_lchan *lchan); diff --git a/src/common/rsl.c b/src/common/rsl.c index ef23039..8e27e77 100644 --- a/src/common/rsl.c +++ b/src/common/rsl.c @@ -380,13 +380,16 @@ regenerate_si3_restoctets(bts); } else if (SYSINFO_TYPE_4 == osmo_si) { /* decode original SI4 Rest Octets as sent by BSC */ - const uint8_t *si4_ro_buf = (uint8_t *) GSM_BTS_SI(bts, osmo_si); - si4_ro_buf += offsetof(struct gsm48_system_information_type_4, data); - osmo_gsm48_rest_octets_si4_decode(&bts->si4_ro_decoded, si4_ro_buf, - GSM_MACBLOCK_LEN - offsetof(struct gsm48_system_information_type_4, data)); - /* patch out GPRS indicator from binary if PCU is not connected; will be enabled - * after PCU connects */ - regenerate_si4_restoctets(bts); + const uint8_t *si4 = (uint8_t *) GSM_BTS_SI(bts, osmo_si); + int si4_ro_offset = get_si4_ro_offset(si4); + if (si4_ro_offset < GSM_MACBLOCK_LEN) { + osmo_gsm48_rest_octets_si4_decode(&bts->si4_ro_decoded, + si4 + si4_ro_offset, + GSM_MACBLOCK_LEN - si4_ro_offset); + /* patch out GPRS indicator from binary if PCU is not connected; will be + * enabled after PCU connects */ + regenerate_si4_restoctets(bts); + } } if (SYSINFO_TYPE_13 == osmo_si) diff --git a/src/common/sysinfo.c b/src/common/sysinfo.c index f3deb0d..9eea539 100644 --- a/src/common/sysinfo.c +++ b/src/common/sysinfo.c @@ -1,4 +1,4 @@ -/* (C) 2011-2019 by Harald Welte +/* (C) 2011-2020 by Harald Welte * * All Rights Reserved * @@ -18,6 +18,7 @@ */ #include +#include #include #include @@ -212,11 +213,34 @@ osmo_gsm48_rest_octets_si3_encode(si3_buf + si3_size, &si3ro_tmp); } +/* get the offset of the SI4 rest octets */ +int get_si4_ro_offset(const uint8_t *si4_buf) +{ + const struct gsm48_system_information_type_4 *si4 = + (const struct gsm48_system_information_type_4 *) si4_buf; + int si4_size; + + /* start with the length of the mandatory part */ + si4_size = offsetof(struct gsm48_system_information_type_4, data); + /* then add optional parts, if any */ + if (si4->data[0] == GSM48_IE_CBCH_CHAN_DESC) { + /* fixed 4-byte TV IE, see Table 9.1.36.1 of TS 44.018 */ + si4_size += 4; + if (si4->data[4] == GSM48_IE_CBCH_MOB_AL) + si4_size += TLV_GROSS_LEN(si4->data[5]); + } + + if (si4_size >= GSM_MACBLOCK_LEN) + return -EINVAL; + + return si4_size; +} + /* re-generate SI4 restoctets with GPRS indicator depending on the PCU socket connection state */ void regenerate_si4_restoctets(struct gsm_bts *bts) { uint8_t *si4_buf = GSM_BTS_SI(bts, SYSINFO_TYPE_4); - size_t si4_size = offsetof(struct gsm48_system_information_type_4, data); + size_t si4_size; struct osmo_gsm48_si_ro_info si4ro_tmp; /* If BSC has never set SI4, there's nothing to patch */ @@ -227,6 +251,12 @@ if (!bts->si4_ro_decoded.gprs_ind.present) return; + si4_size = get_si4_ro_offset(si4_buf); + if (si4_size < 0) { + LOGP(DPCU, LOGL_ERROR, "Cannot parse SI4, hence not patching GPRS indicator\n"); + return; + } + /* Create a temporary copy and patch that, if no PCU is around */ si4ro_tmp = bts->si4_ro_decoded; if (!pcu_connected()) { -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21922 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I0ee0cf736e2fb74a6759a68101f699b4ec2ef54e Gerrit-Change-Number: 21922 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Sun Jan 3 01:35:35 2021 From: admin at opensuse.org (OBS Notification) Date: Sun, 03 Jan 2021 01:35:35 +0000 Subject: Build failure of network:osmocom:nightly/open5gs in Debian_10/i586 In-Reply-To: References: Message-ID: <5ff11f7e22f58_59872af9dc0645f42812295@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/open5gs/Debian_10/i586 Package network:osmocom:nightly/open5gs failed to build in Debian_10/i586 Check out the package for editing: osc checkout network:osmocom:nightly open5gs Last lines of build log: [ 187s] [2539/2539] cc -o tests/handover/handover 'tests/handover/63da1a3@@handover at exe/abts-main.c.o' 'tests/handover/63da1a3@@handover at exe/epc-x2-test.c.o' 'tests/handover/63da1a3@@handover at exe/epc-s1-test.c.o' -Wl,--no-undefined -Wl,--as-needed -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z,relro -Wl,-z,now -Wl,--start-group tests/app/libtestapp.a tests/common/libtestcomon.a lib/core/libogscore.so.2.1.1 lib/app/libogsapp.so.2.1.1 lib/dbi/libogsdbi.so.2.1.1 lib/crypt/libogscrypt.so.2.1.1 lib/sctp/libogssctp.so.2.1.1 lib/gtp/libogsgtp.so.2.1.1 lib/s1ap/libogss1ap.so.2.1.1 lib/asn1c/s1ap/libogsasn1c-s1ap.so.2.1.1 lib/asn1c/common/libogsasn1c-common.so.2.1.1 lib/asn1c/util/libogsasn1c-util.so.2.1.1 lib/ngap/libogsngap.so.2.1.1 lib/asn1c/ngap/libogsasn1c-ngap.so.2.1.1 lib/nas/eps/libogsnas-eps.so.2.1.1 lib/nas/common/libogsnas-common.so.2.1.1 lib/nas/5gs/libogsnas-5gs.so.2.1.1 lib/diameter/rx/libogsdiameter-rx.so.2.1.1 lib/diameter/common/libogsdiameter-common.so.2.1.1 subprojects/freeDiameter/libfdcore/libfdcore.so.1.3.2 subprojects/freeDiameter/libfdproto/libfdproto.so.1.3.2 /usr/lib/i386-linux-gnu/libyaml.so /usr/lib/gcc/i686-linux-gnu/8/../../../i386-linux-gnu/libmongoc-1.0.so /usr/lib/gcc/i686-linux-gnu/8/../../../i386-linux-gnu/libbson-1.0.so -lsctp -lidn -ldl -lsctp -lgcrypt -lgnutls -lsctp -lidn -ldl -lsctp -lgcrypt -lgnutls -lsctp -lidn -ldl -lsctp -lgcrypt -lgnutls -Wl,--end-group -pthread '-Wl,-rpath,$ORIGIN/../app:$ORIGIN/../common:$ORIGIN/../../lib/core:$ORIGIN/../../lib/app:$ORIGIN/../../lib/dbi:$ORIGIN/../../lib/crypt:$ORIGIN/../../lib/sctp:$ORIGIN/../../lib/gtp:$ORIGIN/../../lib/s1ap:$ORIGIN/../../lib/asn1c/s1ap:$ORIGIN/../../lib/asn1c/common:$ORIGIN/../../lib/asn1c/util:$ORIGIN/../../lib/ngap:$ORIGIN/../../lib/asn1c/ngap:$ORIGIN/../../lib/nas/eps:$ORIGIN/../../lib/nas/common:$ORIGIN/../../lib/nas/5gs:$ORIGIN/../../lib/diameter/rx:$ORIGIN/../../lib/diameter/common:$ORIGIN/../../subprojects/freeDiameter/libfdcore:$ORIGIN/../../subprojects/freeDiameter/libfdproto' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-i686-linux-gnu/tests/app:/usr/src/packages/BUILD/obj-i686-linux-gnu/tests/common:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/core:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/app:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/dbi:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/crypt:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/sctp:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/gtp:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/s1ap:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/asn1c/s1ap:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/asn1c/common:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/asn1c/util:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/ngap:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/asn1c/ngap:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/nas/eps:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/nas/common:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/nas/5gs:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/diameter/rx:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/diameter/common:/usr/src/packages/BUILD/obj-i686-linux-gnu/subprojects/freeDiameter/libfdcore:/usr/src/packages/BUILD/obj-i686-linux-gnu/subprojects/freeDiameter/libfdproto [ 187s] debian/rules override_dh_auto_test [ 187s] make[1]: Entering directory '/usr/src/packages/BUILD' [ 187s] cd obj-i686-linux-gnu && meson test --suite unit [ 188s] ninja: Entering directory `/usr/src/packages/BUILD/obj-i686-linux-gnu' [ 188s] ninja: no work to do. [ 195s] 1/3 open5gs:unit / core OK 6.61 s [ 195s] 2/3 open5gs:unit / crypt OK 0.12 s [ 195s] 3/3 open5gs:unit / unit FAIL 0.04 s (exit status 1) [ 195s] [ 195s] Ok: 2 [ 195s] Expected Fail: 0 [ 195s] Fail: 1 [ 195s] Unexpected Pass: 0 [ 195s] Skipped: 0 [ 195s] Timeout: 0 [ 195s] [ 195s] Full log written to /usr/src/packages/BUILD/obj-i686-linux-gnu/meson-logs/testlog.txt [ 195s] make[1]: *** [debian/rules:17: override_dh_auto_test] Error 1 [ 195s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 195s] make: *** [debian/rules:11: binary] Error 2 [ 195s] dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 [ 195s] ### VM INTERACTION START ### [ 198s] [ 189.337020] sysrq: Power Off [ 198s] [ 189.341547] reboot: Power down [ 198s] ### VM INTERACTION END ### [ 198s] [ 198s] sheep87 failed "build open5gs_2.1.1.20210103.dsc" at Sun Jan 3 01:35:25 UTC 2021. [ 198s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sun Jan 3 01:39:01 2021 From: admin at opensuse.org (OBS Notification) Date: Sun, 03 Jan 2021 01:39:01 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.10/x86_64 In-Reply-To: References: Message-ID: <5ff120508543e_59872af9dc0645f42812758@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/xUbuntu_20.10/x86_64 Package network:osmocom:nightly/simtrace2 failed to build in xUbuntu_20.10/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 118s] [COMPILING apps/dfu/main.c] [ 118s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 118s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 118s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 118s] Memory region Used Size Region Size %age Used [ 118s] rom: 16580 B 16 KB 101.20% [ 118s] ram: 11672 B 48 KB 23.75/usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 118s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 118s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 118s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 118s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 118s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 118s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 196 bytes [ 118s] collect2: error: ld returned 1 exit status [ 118s] % [ 118s] make[2]: *** [Makefile:234: flash] Error 1 [ 118s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 118s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 118s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 118s] dh_auto_build: error: make -j1 returned exit code 2 [ 118s] make: *** [debian/rules:16: build] Error 25 [ 118s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 118s] ### VM INTERACTION START ### [ 121s] [ 112.299826] sysrq: Power Off [ 121s] [ 112.306862] reboot: Power down [ 122s] ### VM INTERACTION END ### [ 122s] [ 122s] goat15 failed "build simtrace2_0.7.0.69.aadd.dsc" at Sun Jan 3 01:38:43 UTC 2021. [ 122s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sun Jan 3 01:39:35 2021 From: admin at opensuse.org (OBS Notification) Date: Sun, 03 Jan 2021 01:39:35 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <5ff1206aca6c1_59872af9dc0645f4281286d@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/xUbuntu_20.04/x86_64 Package network:osmocom:nightly/simtrace2 failed to build in xUbuntu_20.04/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 177s] [COMPILING libboard/qmod/source/wwan_perst.c] [ 177s] [COMPILING libboard/qmod/source/card_pres.c] [ 177s] [COMPILING libboard/qmod/source/wwan_led.c] [ 177s] [COMPILING libboard/qmod/source/i2c.c] [ 177s] [COMPILING libboard/qmod/source/board_qmod.c] [ 177s] [COMPILING apps/dfu/main.c] [ 177s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 178s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 178s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 178s] Memory region Used Size Region Size %age Used [ 178s] rom: 16588 B 16 KB 101.25% [ 178s] ram: 11672 B 48 KB 23.75/usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 178s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 204 bytes [ 178s] collect2: error: ld returned 1 exit status [ 178s] % [ 178s] make[2]: *** [Makefile:234: flash] Error 1 [ 178s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 178s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 178s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 178s] dh_auto_build: error: make -j1 returned exit code 2 [ 178s] make: *** [debian/rules:16: build] Error 25 [ 178s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 178s] ### VM INTERACTION START ### [ 181s] [ 167.875019] sysrq: Power Off [ 181s] [ 167.883741] reboot: Power down [ 181s] ### VM INTERACTION END ### [ 181s] [ 181s] lamb10 failed "build simtrace2_0.7.0.69.aadd.dsc" at Sun Jan 3 01:39:22 UTC 2021. [ 181s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sun Jan 3 02:25:53 2021 From: admin at opensuse.org (OBS Notification) Date: Sun, 03 Jan 2021 02:25:53 +0000 Subject: Build failure of network:osmocom:nightly/osmo-ggsn in Debian_9.0/armv7l In-Reply-To: References: Message-ID: <5ff12b34a7c36_59872af9dc0645f428155a@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-ggsn/Debian_9.0/armv7l Package network:osmocom:nightly/osmo-ggsn failed to build in Debian_9.0/armv7l Check out the package for editing: osc checkout network:osmocom:nightly osmo-ggsn Last lines of build log: [ 0s] [ 0s] armbuild04 started "build osmo-ggsn_1.6.0.13.1230.dsc" at Sun Jan 3 02:25:51 UTC 2021. [ 0s] [ 0s] Building osmo-ggsn for project 'network:osmocom:nightly' repository 'Debian_9.0' arch 'armv7l' srcmd5 'd02a684c858f887ba0f4e24cd77b46a5' [ 0s] [ 0s] processing recipe /var/cache/obs/worker/root_2/.build-srcdir/osmo-ggsn_1.6.0.13.1230.dsc ... [ 0s] running changelog2spec --target debian --file /var/cache/obs/worker/root_2/.build-srcdir/osmo-ggsn_1.6.0.13.1230.dsc [ 0s] init_buildsystem --configdir /var/run/obs/worker/2/build/configs --cachedir /var/cache/build --prepare --clean --rpmlist /var/cache/obs/worker/root_2/.build.rpmlist /var/cache/obs/worker/root_2/.build-srcdir/osmo-ggsn_1.6.0.13.1230.dsc build ... [ 1s] unknown keyword in config: [ 1s] could not autodetect package type [ 1s] [ 1s] armbuild04 failed "build osmo-ggsn_1.6.0.13.1230.dsc" at Sun Jan 3 02:25:52 UTC 2021. [ 1s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sun Jan 3 02:39:35 2021 From: admin at opensuse.org (OBS Notification) Date: Sun, 03 Jan 2021 02:39:35 +0000 Subject: Build failure of network:osmocom:nightly/osmo-fl2k in Debian_9.0/armv7l In-Reply-To: References: Message-ID: <5ff12e7a779e3_59872af9dc0645f42819368@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-fl2k/Debian_9.0/armv7l Package network:osmocom:nightly/osmo-fl2k failed to build in Debian_9.0/armv7l Check out the package for editing: osc checkout network:osmocom:nightly osmo-fl2k Last lines of build log: [ 0s] [ 0s] armbuild04 started "build osmo-fl2k_0.1.1.28.197f.dsc" at Sun Jan 3 02:39:20 UTC 2021. [ 0s] [ 0s] Building osmo-fl2k for project 'network:osmocom:nightly' repository 'Debian_9.0' arch 'armv7l' srcmd5 'b802b9c373df460df0dc1bf581e5668b' [ 0s] [ 0s] processing recipe /var/cache/obs/worker/root_3/.build-srcdir/osmo-fl2k_0.1.1.28.197f.dsc ... [ 0s] running changelog2spec --target debian --file /var/cache/obs/worker/root_3/.build-srcdir/osmo-fl2k_0.1.1.28.197f.dsc [ 0s] init_buildsystem --configdir /var/run/obs/worker/3/build/configs --cachedir /var/cache/build --prepare --clean --rpmlist /var/cache/obs/worker/root_3/.build.rpmlist /var/cache/obs/worker/root_3/.build-srcdir/osmo-fl2k_0.1.1.28.197f.dsc build ... [ 0s] unknown keyword in config: [ 0s] could not autodetect package type [ 0s] [ 0s] armbuild04 failed "build osmo-fl2k_0.1.1.28.197f.dsc" at Sun Jan 3 02:39:20 UTC 2021. [ 0s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sun Jan 3 03:20:10 2021 From: admin at opensuse.org (OBS Notification) Date: Sun, 03 Jan 2021 03:20:10 +0000 Subject: Build failure of network:osmocom:nightly/osmo-e1d in Raspbian_10/armv7l In-Reply-To: References: Message-ID: <5ff137f7b5a39_59872af9dc0645f428275b8@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-e1d/Raspbian_10/armv7l Package network:osmocom:nightly/osmo-e1d failed to build in Raspbian_10/armv7l Check out the package for editing: osc checkout network:osmocom:nightly osmo-e1d Last lines of build log: [ 0s] [ 0s] armbuild04 started "build osmo-e1d_0.1.1.30.868c.dsc" at Sun Jan 3 03:19:55 UTC 2021. [ 0s] [ 0s] Building osmo-e1d for project 'network:osmocom:nightly' repository 'Raspbian_10' arch 'armv7l' srcmd5 'a3cbd0f78d534579568f94f87bd173b1' [ 0s] [ 0s] processing recipe /var/cache/obs/worker/root_1/.build-srcdir/osmo-e1d_0.1.1.30.868c.dsc ... [ 0s] running changelog2spec --target debian --file /var/cache/obs/worker/root_1/.build-srcdir/osmo-e1d_0.1.1.30.868c.dsc [ 0s] init_buildsystem --configdir /var/run/obs/worker/1/build/configs --cachedir /var/cache/build --prepare --clean --rpmlist /var/cache/obs/worker/root_1/.build.rpmlist /var/cache/obs/worker/root_1/.build-srcdir/osmo-e1d_0.1.1.30.868c.dsc build ... [ 1s] unknown keyword in config: [ 1s] could not autodetect package type [ 1s] [ 1s] armbuild04 failed "build osmo-e1d_0.1.1.30.868c.dsc" at Sun Jan 3 03:19:56 UTC 2021. [ 1s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sun Jan 3 03:21:18 2021 From: admin at opensuse.org (OBS Notification) Date: Sun, 03 Jan 2021 03:21:18 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in Debian_10/armv7l In-Reply-To: References: Message-ID: <5ff1383832a34_59872af9dc0645f428277d9@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-pcu/Debian_10/armv7l Package network:osmocom:nightly/osmo-pcu failed to build in Debian_10/armv7l Check out the package for editing: osc checkout network:osmocom:nightly osmo-pcu Last lines of build log: [ 1s] [ 1s] armbuild04 started "build osmo-pcu_0.8.0.296.86fa.dsc" at Sun Jan 3 03:21:05 UTC 2021. [ 1s] [ 1s] Building osmo-pcu for project 'network:osmocom:nightly' repository 'Debian_10' arch 'armv7l' srcmd5 '4867e6fdfe3797c8df49a6c42aa7f7af' [ 1s] [ 1s] processing recipe /var/cache/obs/worker/root_2/.build-srcdir/osmo-pcu_0.8.0.296.86fa.dsc ... [ 1s] running changelog2spec --target debian --file /var/cache/obs/worker/root_2/.build-srcdir/osmo-pcu_0.8.0.296.86fa.dsc [ 1s] init_buildsystem --configdir /var/run/obs/worker/2/build/configs --cachedir /var/cache/build --prepare --clean --rpmlist /var/cache/obs/worker/root_2/.build.rpmlist /var/cache/obs/worker/root_2/.build-srcdir/osmo-pcu_0.8.0.296.86fa.dsc build ... [ 1s] unknown keyword in config: [ 1s] could not autodetect package type [ 1s] [ 1s] armbuild04 failed "build osmo-pcu_0.8.0.296.86fa.dsc" at Sun Jan 3 03:21:05 UTC 2021. [ 1s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sun Jan 3 03:31:35 2021 From: admin at opensuse.org (OBS Notification) Date: Sun, 03 Jan 2021 03:31:35 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sip-connector in Debian_10/armv7l In-Reply-To: References: Message-ID: <5ff13aac7096e_59872af9dc0645f428291ab@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-sip-connector/Debian_10/armv7l Package network:osmocom:nightly/osmo-sip-connector failed to build in Debian_10/armv7l Check out the package for editing: osc checkout network:osmocom:nightly osmo-sip-connector Last lines of build log: [ 0s] [ 0s] armbuild04 started "build osmo-sip-connector_1.4.1.6.05ee.dsc" at Sun Jan 3 03:31:25 UTC 2021. [ 0s] [ 0s] Building osmo-sip-connector for project 'network:osmocom:nightly' repository 'Debian_10' arch 'armv7l' srcmd5 '1be1e26f12b2f8d0e5a4366de2be8ee0' [ 0s] [ 0s] processing recipe /var/cache/obs/worker/root_2/.build-srcdir/osmo-sip-connector_1.4.1.6.05ee.dsc ... [ 0s] running changelog2spec --target debian --file /var/cache/obs/worker/root_2/.build-srcdir/osmo-sip-connector_1.4.1.6.05ee.dsc [ 0s] init_buildsystem --configdir /var/run/obs/worker/2/build/configs --cachedir /var/cache/build --prepare --clean --rpmlist /var/cache/obs/worker/root_2/.build.rpmlist /var/cache/obs/worker/root_2/.build-srcdir/osmo-sip-connector_1.4.1.6.05ee.dsc build ... [ 1s] unknown keyword in config: [ 1s] could not autodetect package type [ 1s] [ 1s] armbuild04 failed "build osmo-sip-connector_1.4.1.6.05ee.dsc" at Sun Jan 3 03:31:26 UTC 2021. [ 1s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sun Jan 3 03:36:44 2021 From: admin at opensuse.org (OBS Notification) Date: Sun, 03 Jan 2021 03:36:44 +0000 Subject: Build failure of network:osmocom:nightly/osmo-bts in Debian_10/armv7l In-Reply-To: References: Message-ID: <5ff13bd8201a3_59872af9dc0645f42830498@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-bts/Debian_10/armv7l Package network:osmocom:nightly/osmo-bts failed to build in Debian_10/armv7l Check out the package for editing: osc checkout network:osmocom:nightly osmo-bts Last lines of build log: [ 1s] [ 1s] armbuild04 started "build osmo-bts_1.2.0.374.f158.dsc" at Sun Jan 3 03:36:32 UTC 2021. [ 1s] [ 1s] Building osmo-bts for project 'network:osmocom:nightly' repository 'Debian_10' arch 'armv7l' srcmd5 'e50e17edc856874410ffddc87de9a43e' [ 1s] [ 1s] processing recipe /var/cache/obs/worker/root_1/.build-srcdir/osmo-bts_1.2.0.374.f158.dsc ... [ 1s] running changelog2spec --target debian --file /var/cache/obs/worker/root_1/.build-srcdir/osmo-bts_1.2.0.374.f158.dsc [ 1s] init_buildsystem --configdir /var/run/obs/worker/1/build/configs --cachedir /var/cache/build --prepare --clean --rpmlist /var/cache/obs/worker/root_1/.build.rpmlist /var/cache/obs/worker/root_1/.build-srcdir/osmo-bts_1.2.0.374.f158.dsc build ... [ 1s] unknown keyword in config: [ 1s] could not autodetect package type [ 1s] [ 1s] armbuild04 failed "build osmo-bts_1.2.0.374.f158.dsc" at Sun Jan 3 03:36:32 UTC 2021. [ 1s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sun Jan 3 03:43:18 2021 From: admin at opensuse.org (OBS Notification) Date: Sun, 03 Jan 2021 03:43:18 +0000 Subject: Build failure of network:osmocom:nightly/osmo-trx in Raspbian_10/armv7l In-Reply-To: References: Message-ID: <5ff13d5ee3983_59872af9dc0645f4283099e@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-trx/Raspbian_10/armv7l Package network:osmocom:nightly/osmo-trx failed to build in Raspbian_10/armv7l Check out the package for editing: osc checkout network:osmocom:nightly osmo-trx Last lines of build log: [ 1s] [ 1s] armbuild04 started "build osmo-trx_1.2.0.117.4a4e.dsc" at Sun Jan 3 03:43:00 UTC 2021. [ 1s] [ 1s] Building osmo-trx for project 'network:osmocom:nightly' repository 'Raspbian_10' arch 'armv7l' srcmd5 '00ede00e3e73aaef702c923c51377dc9' [ 1s] [ 1s] processing recipe /var/cache/obs/worker/root_3/.build-srcdir/osmo-trx_1.2.0.117.4a4e.dsc ... [ 1s] running changelog2spec --target debian --file /var/cache/obs/worker/root_3/.build-srcdir/osmo-trx_1.2.0.117.4a4e.dsc [ 1s] init_buildsystem --configdir /var/run/obs/worker/3/build/configs --cachedir /var/cache/build --prepare --clean --rpmlist /var/cache/obs/worker/root_3/.build.rpmlist /var/cache/obs/worker/root_3/.build-srcdir/osmo-trx_1.2.0.117.4a4e.dsc build ... [ 1s] unknown keyword in config: [ 1s] could not autodetect package type [ 1s] [ 1s] armbuild04 failed "build osmo-trx_1.2.0.117.4a4e.dsc" at Sun Jan 3 03:43:00 UTC 2021. [ 1s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sun Jan 3 04:57:54 2021 From: admin at opensuse.org (OBS Notification) Date: Sun, 03 Jan 2021 04:57:54 +0000 Subject: Build failure of network:osmocom:nightly/osmo-msc in Debian_10/armv7l In-Reply-To: References: Message-ID: <5ff14eda48598_59872af9dc0645f4283492e@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-msc/Debian_10/armv7l Package network:osmocom:nightly/osmo-msc failed to build in Debian_10/armv7l Check out the package for editing: osc checkout network:osmocom:nightly osmo-msc Last lines of build log: [ 1s] [ 1s] armbuild04 started "build osmo-msc_1.6.1.87.e917b.dsc" at Sun Jan 3 04:57:46 UTC 2021. [ 1s] [ 1s] Building osmo-msc for project 'network:osmocom:nightly' repository 'Debian_10' arch 'armv7l' srcmd5 '8ae9aba897d5633ac42a09f8130da360' [ 1s] [ 1s] processing recipe /var/cache/obs/worker/root_3/.build-srcdir/osmo-msc_1.6.1.87.e917b.dsc ... [ 1s] running changelog2spec --target debian --file /var/cache/obs/worker/root_3/.build-srcdir/osmo-msc_1.6.1.87.e917b.dsc [ 1s] init_buildsystem --configdir /var/run/obs/worker/3/build/configs --cachedir /var/cache/build --prepare --clean --rpmlist /var/cache/obs/worker/root_3/.build.rpmlist /var/cache/obs/worker/root_3/.build-srcdir/osmo-msc_1.6.1.87.e917b.dsc build ... [ 1s] unknown keyword in config: [ 1s] could not autodetect package type [ 1s] [ 1s] armbuild04 failed "build osmo-msc_1.6.1.87.e917b.dsc" at Sun Jan 3 04:57:46 UTC 2021. [ 1s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Sun Jan 3 07:45:49 2021 From: gerrit-no-reply at lists.osmocom.org (zecke) Date: Sun, 3 Jan 2021 07:45:49 +0000 Subject: Change in osmo-sgsn[master]: configure.ac: define a c standard instead of using the compilers default In-Reply-To: References: Message-ID: zecke has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21913 ) Change subject: configure.ac: define a c standard instead of using the compilers default ...................................................................... Patch Set 1: Code-Review+1 Makes sense. Even gcc4.8 supports this version. -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21913 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I9867adbed211db0a7b42ac3557f56c3042a67936 Gerrit-Change-Number: 21913 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Reviewer: zecke Gerrit-Comment-Date: Sun, 03 Jan 2021 07:45:49 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 3 09:20:36 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 3 Jan 2021 09:20:36 +0000 Subject: Change in osmo-bts[master]: sysinfo.c: Fix SI4 GPRS patching which overwrote CBCH IE In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21922 ) Change subject: sysinfo.c: Fix SI4 GPRS patching which overwrote CBCH IE ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21922 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I0ee0cf736e2fb74a6759a68101f699b4ec2ef54e Gerrit-Change-Number: 21922 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sun, 03 Jan 2021 09:20:36 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 3 09:20:59 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 3 Jan 2021 09:20:59 +0000 Subject: Change in osmo-bts[master]: sysinfo.c: Fix SI4 GPRS patching which overwrote CBCH IE In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21922 ) Change subject: sysinfo.c: Fix SI4 GPRS patching which overwrote CBCH IE ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/21922/1/src/common/rsl.c File src/common/rsl.c: https://gerrit.osmocom.org/c/osmo-bts/+/21922/1/src/common/rsl.c at 385 PS1, Line 385: if (si4_ro_offset < GSM_MACBLOCK_LEN) { get_si4_ro_offset() itself already checks if it's less than GSM_MACBLOCK_LEN, so here you should rather check if it's not negative. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21922 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I0ee0cf736e2fb74a6759a68101f699b4ec2ef54e Gerrit-Change-Number: 21922 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sun, 03 Jan 2021 09:20:59 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 3 09:21:46 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 3 Jan 2021 09:21:46 +0000 Subject: Change in osmo-bts[master]: sysinfo.c: Fix SI4 GPRS patching which overwrote CBCH IE In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21922 ) Change subject: sysinfo.c: Fix SI4 GPRS patching which overwrote CBCH IE ...................................................................... Patch Set 1: Code-Review-1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21922 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I0ee0cf736e2fb74a6759a68101f699b4ec2ef54e Gerrit-Change-Number: 21922 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sun, 03 Jan 2021 09:21:46 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 3 09:23:22 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 3 Jan 2021 09:23:22 +0000 Subject: Change in osmo-bts[master]: sysinfo.c: Fix SI4 GPRS patching which overwrote CBCH IE In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21922 ) Change subject: sysinfo.c: Fix SI4 GPRS patching which overwrote CBCH IE ...................................................................... sysinfo.c: Fix SI4 GPRS patching which overwrote CBCH IE In Change-Id I1fd513ea03297918d15d4b28ed454f9b6dd6ebfa we introduced patching of SI4 to indicate GPRS presence in terms of PCU connection status. Unfortauntely this didn't account for optional IEs being present in SI4, and hence overwrote any CBCH related information elements, if present. This in turn meant that since the above-mentioned commit, you could have either a GPRS-capable, network, or a Cell Broadcast capable one. Change-Id: I0ee0cf736e2fb74a6759a68101f699b4ec2ef54e Related: OS#3075 --- M include/osmo-bts/bts.h M src/common/rsl.c M src/common/sysinfo.c 3 files changed, 43 insertions(+), 9 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved Objections: fixeria: I would prefer this is not merged as is diff --git a/include/osmo-bts/bts.h b/include/osmo-bts/bts.h index 2edc20e..6d8b570 100644 --- a/include/osmo-bts/bts.h +++ b/include/osmo-bts/bts.h @@ -377,6 +377,7 @@ uint8_t *bts_sysinfo_get(struct gsm_bts *bts, const struct gsm_time *g_time); void regenerate_si3_restoctets(struct gsm_bts *bts); void regenerate_si4_restoctets(struct gsm_bts *bts); +int get_si4_ro_offset(const uint8_t *si4_buf); uint8_t *lchan_sacch_get(struct gsm_lchan *lchan); int lchan_init_lapdm(struct gsm_lchan *lchan); diff --git a/src/common/rsl.c b/src/common/rsl.c index ef23039..8e27e77 100644 --- a/src/common/rsl.c +++ b/src/common/rsl.c @@ -380,13 +380,16 @@ regenerate_si3_restoctets(bts); } else if (SYSINFO_TYPE_4 == osmo_si) { /* decode original SI4 Rest Octets as sent by BSC */ - const uint8_t *si4_ro_buf = (uint8_t *) GSM_BTS_SI(bts, osmo_si); - si4_ro_buf += offsetof(struct gsm48_system_information_type_4, data); - osmo_gsm48_rest_octets_si4_decode(&bts->si4_ro_decoded, si4_ro_buf, - GSM_MACBLOCK_LEN - offsetof(struct gsm48_system_information_type_4, data)); - /* patch out GPRS indicator from binary if PCU is not connected; will be enabled - * after PCU connects */ - regenerate_si4_restoctets(bts); + const uint8_t *si4 = (uint8_t *) GSM_BTS_SI(bts, osmo_si); + int si4_ro_offset = get_si4_ro_offset(si4); + if (si4_ro_offset < GSM_MACBLOCK_LEN) { + osmo_gsm48_rest_octets_si4_decode(&bts->si4_ro_decoded, + si4 + si4_ro_offset, + GSM_MACBLOCK_LEN - si4_ro_offset); + /* patch out GPRS indicator from binary if PCU is not connected; will be + * enabled after PCU connects */ + regenerate_si4_restoctets(bts); + } } if (SYSINFO_TYPE_13 == osmo_si) diff --git a/src/common/sysinfo.c b/src/common/sysinfo.c index f3deb0d..9eea539 100644 --- a/src/common/sysinfo.c +++ b/src/common/sysinfo.c @@ -1,4 +1,4 @@ -/* (C) 2011-2019 by Harald Welte +/* (C) 2011-2020 by Harald Welte * * All Rights Reserved * @@ -18,6 +18,7 @@ */ #include +#include #include #include @@ -212,11 +213,34 @@ osmo_gsm48_rest_octets_si3_encode(si3_buf + si3_size, &si3ro_tmp); } +/* get the offset of the SI4 rest octets */ +int get_si4_ro_offset(const uint8_t *si4_buf) +{ + const struct gsm48_system_information_type_4 *si4 = + (const struct gsm48_system_information_type_4 *) si4_buf; + int si4_size; + + /* start with the length of the mandatory part */ + si4_size = offsetof(struct gsm48_system_information_type_4, data); + /* then add optional parts, if any */ + if (si4->data[0] == GSM48_IE_CBCH_CHAN_DESC) { + /* fixed 4-byte TV IE, see Table 9.1.36.1 of TS 44.018 */ + si4_size += 4; + if (si4->data[4] == GSM48_IE_CBCH_MOB_AL) + si4_size += TLV_GROSS_LEN(si4->data[5]); + } + + if (si4_size >= GSM_MACBLOCK_LEN) + return -EINVAL; + + return si4_size; +} + /* re-generate SI4 restoctets with GPRS indicator depending on the PCU socket connection state */ void regenerate_si4_restoctets(struct gsm_bts *bts) { uint8_t *si4_buf = GSM_BTS_SI(bts, SYSINFO_TYPE_4); - size_t si4_size = offsetof(struct gsm48_system_information_type_4, data); + size_t si4_size; struct osmo_gsm48_si_ro_info si4ro_tmp; /* If BSC has never set SI4, there's nothing to patch */ @@ -227,6 +251,12 @@ if (!bts->si4_ro_decoded.gprs_ind.present) return; + si4_size = get_si4_ro_offset(si4_buf); + if (si4_size < 0) { + LOGP(DPCU, LOGL_ERROR, "Cannot parse SI4, hence not patching GPRS indicator\n"); + return; + } + /* Create a temporary copy and patch that, if no PCU is around */ si4ro_tmp = bts->si4_ro_decoded; if (!pcu_connected()) { -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21922 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I0ee0cf736e2fb74a6759a68101f699b4ec2ef54e Gerrit-Change-Number: 21922 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 3 09:29:14 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 3 Jan 2021 09:29:14 +0000 Subject: Change in osmo-bts[master]: fix-up missed review comment in CBCH SI4 patching fix References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/21923 ) Change subject: fix-up missed review comment in CBCH SI4 patching fix ...................................................................... fix-up missed review comment in CBCH SI4 patching fix This is a follow-up fix for I0ee0cf736e2fb74a6759a68101f699b4ec2ef54e get_si4_ro_offset() itself already checks if it's less than GSM_MACBLOCK_LEN, so we must check if it's not negative. Change-Id: Iba99e5de625af6bed6720a38fec26c2acc6251c0 --- M src/common/rsl.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/23/21923/1 diff --git a/src/common/rsl.c b/src/common/rsl.c index 8e27e77..29b64b4 100644 --- a/src/common/rsl.c +++ b/src/common/rsl.c @@ -382,7 +382,7 @@ /* decode original SI4 Rest Octets as sent by BSC */ const uint8_t *si4 = (uint8_t *) GSM_BTS_SI(bts, osmo_si); int si4_ro_offset = get_si4_ro_offset(si4); - if (si4_ro_offset < GSM_MACBLOCK_LEN) { + if (si4_ro_offset > 0) { osmo_gsm48_rest_octets_si4_decode(&bts->si4_ro_decoded, si4 + si4_ro_offset, GSM_MACBLOCK_LEN - si4_ro_offset); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21923 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Iba99e5de625af6bed6720a38fec26c2acc6251c0 Gerrit-Change-Number: 21923 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 3 09:29:56 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 3 Jan 2021 09:29:56 +0000 Subject: Change in osmo-bts[master]: sysinfo.c: Fix SI4 GPRS patching which overwrote CBCH IE In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21922 ) Change subject: sysinfo.c: Fix SI4 GPRS patching which overwrote CBCH IE ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/21922/1/src/common/rsl.c File src/common/rsl.c: https://gerrit.osmocom.org/c/osmo-bts/+/21922/1/src/common/rsl.c at 385 PS1, Line 385: if (si4_ro_offset < GSM_MACBLOCK_LEN) { > get_si4_ro_offset() itself already checks if it's less than GSM_MACBLOCK_LEN, so here you should rat [?] see https://gerrit.osmocom.org/c/osmo-bts/+/21923 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21922 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I0ee0cf736e2fb74a6759a68101f699b4ec2ef54e Gerrit-Change-Number: 21922 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sun, 03 Jan 2021 09:29:56 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: fixeria Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 3 09:40:56 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 3 Jan 2021 09:40:56 +0000 Subject: Change in osmo-bts[master]: fix-up missed review comment in CBCH SI4 patching fix In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21923 ) Change subject: fix-up missed review comment in CBCH SI4 patching fix ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21923 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Iba99e5de625af6bed6720a38fec26c2acc6251c0 Gerrit-Change-Number: 21923 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Sun, 03 Jan 2021 09:40:56 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 3 09:43:02 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 3 Jan 2021 09:43:02 +0000 Subject: Change in osmo-bts[master]: fix-up missed review comment in CBCH SI4 patching fix In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21923 ) Change subject: fix-up missed review comment in CBCH SI4 patching fix ...................................................................... fix-up missed review comment in CBCH SI4 patching fix This is a follow-up fix for I0ee0cf736e2fb74a6759a68101f699b4ec2ef54e get_si4_ro_offset() itself already checks if it's less than GSM_MACBLOCK_LEN, so we must check if it's not negative. Change-Id: Iba99e5de625af6bed6720a38fec26c2acc6251c0 --- M src/common/rsl.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, approved diff --git a/src/common/rsl.c b/src/common/rsl.c index 8e27e77..29b64b4 100644 --- a/src/common/rsl.c +++ b/src/common/rsl.c @@ -382,7 +382,7 @@ /* decode original SI4 Rest Octets as sent by BSC */ const uint8_t *si4 = (uint8_t *) GSM_BTS_SI(bts, osmo_si); int si4_ro_offset = get_si4_ro_offset(si4); - if (si4_ro_offset < GSM_MACBLOCK_LEN) { + if (si4_ro_offset > 0) { osmo_gsm48_rest_octets_si4_decode(&bts->si4_ro_decoded, si4 + si4_ro_offset, GSM_MACBLOCK_LEN - si4_ro_offset); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21923 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Iba99e5de625af6bed6720a38fec26c2acc6251c0 Gerrit-Change-Number: 21923 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 3 12:15:39 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 3 Jan 2021 12:15:39 +0000 Subject: Change in osmo-cbc[master]: vty: Add show commands In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/21903 ) Change subject: vty: Add show commands ...................................................................... vty: Add show commands Change-Id: Ib52d1e02294c10c9f9801507aab1cd327cbdd4fe --- M src/cbc_vty.c 1 file changed, 91 insertions(+), 0 deletions(-) Objections: Jenkins Builder: Fails diff --git a/src/cbc_vty.c b/src/cbc_vty.c index b2849ae..1655e1e 100644 --- a/src/cbc_vty.c +++ b/src/cbc_vty.c @@ -31,6 +31,93 @@ #include "cbc_data.h" +static void dump_one_cbc_peer(struct vty *vty, const struct cbc_peer *peer) +{ + vty_out(vty, " %-20s | %-15s | %-5d | %s |%s", + peer->name ? peer->name : "", peer->remote_host, peer->remote_port, + get_value_string(cbc_peer_proto_name, peer->proto), VTY_NEWLINE); +} + +DEFUN(show_peers, show_peers_cmd, + "show peers", + SHOW_STR "Display Information about RAN peers connected to this CBC\n") +{ + struct cbc_peer *peer; + + vty_out(vty, " Name | IP | Port | Proto |%s", VTY_NEWLINE); + vty_out(vty, "---------------------|----------------|-------|-------|%s", VTY_NEWLINE); + llist_for_each_entry(peer, &g_cbc->peers, list) + dump_one_cbc_peer(vty, peer); + + return CMD_SUCCESS; +} + +#define MESSAGES_STR "Display information about currently active SMSCB messages\n" + +static void dump_one_cbc_msg(struct vty *vty, const struct cbc_message *cbc_msg) +{ + const struct smscb_message *smscb = &cbc_msg->msg; + + OSMO_ASSERT(!smscb->is_etws); + + vty_out(vty, " %04X| %04X|%-20s|%-13s| %-4u|%c|%02x|%s", + smscb->message_id, smscb->serial_nr, cbc_msg->cbe_name, + get_value_string(cbsp_category_names, cbc_msg->priority), cbc_msg->rep_period, + cbc_msg->extended_cbch ? 'E' : 'N', smscb->cbs.dcs, + VTY_NEWLINE); +} + +DEFUN(show_messages_cbs, show_messages_cbs_cmd, + "show messages cbs", + SHOW_STR MESSAGES_STR "Display Cell Broadcast Service (CBS) messages\n") +{ + struct cbc_message *cbc_msg; + + vty_out(vty, +"|MsgId|SerNo| CBE Name | Category |Period|E|DCS|%s", VTY_NEWLINE); + vty_out(vty, +"|-----|-----|---------------------|-------------|------|-|---|%s", VTY_NEWLINE); + + llist_for_each_entry(cbc_msg, &g_cbc->messages, list) { + if (cbc_msg->msg.is_etws) + continue; + dump_one_cbc_msg(vty, cbc_msg); + } + + return CMD_SUCCESS; +} + +static void dump_one_etws_msg(struct vty *vty, const struct cbc_message *cbc_msg) +{ + const struct smscb_message *smscb = &cbc_msg->msg; + + OSMO_ASSERT(smscb->is_etws); + + /* FIXME */ +} + +DEFUN(show_messages_etws, show_messages_etws_cmd, + "show messages etws", + SHOW_STR MESSAGES_STR "Display ETWS (CMAS, KPAS, EU-ALERT, PWS, WEA) Emergency messages\n") +{ + struct cbc_message *cbc_msg; + + /* FIXME: header */ + + llist_for_each_entry(cbc_msg, &g_cbc->messages, list) { + if (!cbc_msg->msg.is_etws) + continue; + dump_one_etws_msg(vty, cbc_msg); + } + + return CMD_SUCCESS; +} + +/* TODO: Show a single message; with details about scope + payload */ +/* TODO: Delete a single message; either from one peer or globally from all */ +/* TODO: Re-send all messages to one peer / all peers? */ +/* TODO: Completed / Load status */ + enum cbc_vty_node { CBC_NODE = _LAST_OSMOVTY_NODE + 1, PEER_NODE, @@ -176,6 +263,10 @@ void cbc_vty_init(void) { + install_lib_element_ve(&show_peers_cmd); + install_lib_element_ve(&show_messages_cbs_cmd); + install_lib_element_ve(&show_messages_etws_cmd); + install_lib_element(CONFIG_NODE, &cfg_cbc_cmd); install_node(&cbc_node, config_write_cbc); install_lib_element(CBC_NODE, &cfg_permit_unknown_peers_cmd); -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/21903 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: Ib52d1e02294c10c9f9801507aab1cd327cbdd4fe Gerrit-Change-Number: 21903 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 3 12:29:14 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 3 Jan 2021 12:29:14 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BSC_Tests: fix early mtc.stop in TC_chan_rel_rr_cause() References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21924 ) Change subject: BSC_Tests: fix early mtc.stop in TC_chan_rel_rr_cause() ...................................................................... BSC_Tests: fix early mtc.stop in TC_chan_rel_rr_cause() Calling f_shutdown_helper() in f_tc_chan_rel_rr_cause() leads to premature test case termination, so only one out of 6 cause values gets checked. Move it to TC_chan_rel_rr_cause(). Change-Id: Ic7df15b496fc0750e4f694b1ae79398216f498a7 --- M bsc/BSC_Tests.ttcn 1 file changed, 2 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/24/21924/1 diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index 175b820..87a15ea 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -1947,7 +1947,6 @@ } f_expect_chan_rel(0, dt.rsl_chan_nr, expect_rll_rel_req := false, expect_rr_cause := expect_rr_cause); - f_shutdown_helper(); } /* Test that Clear Command cause codes affect the RR Channel Release cause code */ @@ -1960,6 +1959,8 @@ f_tc_chan_rel_rr_cause(GSM0808_CAUSE_RADIO_INTERFACE_MESSAGE_FAILURE, GSM48_RR_CAUSE_PROT_ERROR_UNSPC); f_tc_chan_rel_rr_cause(GSM0808_CAUSE_RADIO_INTERFACE_FAILURE, GSM48_RR_CAUSE_ABNORMAL_UNSPEC); f_tc_chan_rel_rr_cause(GSM0808_CAUSE_EQUIPMENT_FAILURE, GSM48_RR_CAUSE_ABNORMAL_UNSPEC); + + f_shutdown_helper(); } /* Test behavior if RSL EST IND for non-active channel */ -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21924 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ic7df15b496fc0750e4f694b1ae79398216f498a7 Gerrit-Change-Number: 21924 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 3 13:11:03 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 3 Jan 2021 13:11:03 +0000 Subject: Change in osmo-cbc[master]: smscb_peer_fsm: Accept DELETE event in [almost] all states References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-cbc/+/21925 ) Change subject: smscb_peer_fsm: Accept DELETE event in [almost] all states ...................................................................... smscb_peer_fsm: Accept DELETE event in [almost] all states This is required as a DELETE may happen at any point in time, even e.g. in WAIT_WRITE_ACK. Change-Id: I39b5a243862f4477ac7b625bb77c5e24b2d54dd2 --- M src/smscb_peer_fsm.c 1 file changed, 39 insertions(+), 15 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-cbc refs/changes/25/21925/1 diff --git a/src/smscb_peer_fsm.c b/src/smscb_peer_fsm.c index 89aad61..69b4418 100644 --- a/src/smscb_peer_fsm.c +++ b/src/smscb_peer_fsm.c @@ -345,16 +345,6 @@ cbsp_cbc_client_tx(mp->peer->client.cbsp, cbsp); osmo_fsm_inst_state_chg(fi, SMSCB_S_WAIT_STATUS_ACK, 10, T_WAIT_STATUS_ACK); break; - case SMSCB_E_DELETE: /* send KILL to BSC */ - cbsp = osmo_cbsp_decoded_alloc(mp->peer, CBSP_MSGT_KILL); - OSMO_ASSERT(cbsp); - cbsp->u.kill.msg_id = mp->cbcmsg->msg.message_id; - cbsp->u.kill.old_serial_nr = mp->cbcmsg->msg.serial_nr; - /* TODO: we assume that the delete will always affect all original cells */ - cbsp_append_cell_list(&cbsp->u.kill.cell_list, cbsp, mp); - cbsp_cbc_client_tx(mp->peer->client.cbsp, cbsp); - osmo_fsm_inst_state_chg(fi, SMSCB_S_WAIT_DELETE_ACK, 10, T_WAIT_DELETE_ACK); - break; default: OSMO_ASSERT(0); } @@ -460,6 +450,36 @@ return 0; } +static void smscb_p_fsm_allstate(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct cbc_message_peer *mp = (struct cbc_message_peer *) fi->priv; + struct osmo_cbsp_decoded *cbsp; + + switch (event) { + case SMSCB_E_DELETE: /* send KILL to BSC */ + switch (fi->state) { + case SMSCB_S_DELETED: + case SMSCB_S_INIT: + LOGPFSML(fi, LOGL_ERROR, "Event %s not permitted\n", + osmo_fsm_event_name(fi->fsm, event)); + return; + default: + break; + } + cbsp = osmo_cbsp_decoded_alloc(mp->peer, CBSP_MSGT_KILL); + OSMO_ASSERT(cbsp); + cbsp->u.kill.msg_id = mp->cbcmsg->msg.message_id; + cbsp->u.kill.old_serial_nr = mp->cbcmsg->msg.serial_nr; + /* TODO: we assume that the delete will always affect all original cells */ + cbsp_append_cell_list(&cbsp->u.kill.cell_list, cbsp, mp); + cbsp_cbc_client_tx(mp->peer->client.cbsp, cbsp); + osmo_fsm_inst_state_chg(fi, SMSCB_S_WAIT_DELETE_ACK, 10, T_WAIT_DELETE_ACK); + break; + default: + OSMO_ASSERT(0); + } +} + static void smscb_p_fsm_cleanup(struct osmo_fsm_inst *fi, enum osmo_fsm_term_cause cause) { struct cbc_message_peer *mp = (struct cbc_message_peer *) fi->priv; @@ -478,14 +498,14 @@ .name = "WAIT_WRITE_ACK", .in_event_mask = S(SMSCB_E_CBSP_WRITE_ACK) | S(SMSCB_E_CBSP_WRITE_NACK), - .out_state_mask = S(SMSCB_S_ACTIVE), + .out_state_mask = S(SMSCB_S_ACTIVE) | + S(SMSCB_S_WAIT_DELETE_ACK), .action = smscb_p_fsm_wait_write_ack, }, [SMSCB_S_ACTIVE] = { .name = "ACTIVE", .in_event_mask = S(SMSCB_E_REPLACE) | - S(SMSCB_E_STATUS) | - S(SMSCB_E_DELETE), + S(SMSCB_E_STATUS), .out_state_mask = S(SMSCB_S_WAIT_REPLACE_ACK) | S(SMSCB_S_WAIT_STATUS_ACK) | S(SMSCB_S_WAIT_DELETE_ACK), @@ -495,14 +515,16 @@ .name = "WAIT_STATUS_ACK", .in_event_mask = S(SMSCB_E_CBSP_STATUS_ACK) | S(SMSCB_E_CBSP_STATUS_NACK), - .out_state_mask = S(SMSCB_S_ACTIVE), + .out_state_mask = S(SMSCB_S_ACTIVE) | + S(SMSCB_S_WAIT_DELETE_ACK), .action = smscb_p_fsm_wait_status_ack, }, [SMSCB_S_WAIT_REPLACE_ACK] = { .name = "WAIT_REPLACE_ACK", .in_event_mask = S(SMSCB_E_CBSP_REPLACE_ACK) | S(SMSCB_E_CBSP_REPLACE_NACK), - .out_state_mask = S(SMSCB_S_ACTIVE), + .out_state_mask = S(SMSCB_S_ACTIVE) | + S(SMSCB_S_WAIT_DELETE_ACK), .action = smscb_p_fsm_wait_replace_ack, }, [SMSCB_S_WAIT_DELETE_ACK] = { @@ -521,6 +543,8 @@ .name = "SMSCB-PEER", .states = smscb_p_fsm_states, .num_states = ARRAY_SIZE(smscb_p_fsm_states), + .allstate_event_mask = S(SMSCB_E_DELETE), + .allstate_action = smscb_p_fsm_allstate, .timer_cb = smscb_p_fsm_timer_cb, .log_subsys = DCBSP, .event_names = smscb_fsm_event_names, -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/21925 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: I39b5a243862f4477ac7b625bb77c5e24b2d54dd2 Gerrit-Change-Number: 21925 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 3 13:11:04 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 3 Jan 2021 13:11:04 +0000 Subject: Change in osmo-cbc[master]: message / peer FSM: fix completion detection + timeout logic References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-cbc/+/21926 ) Change subject: message / peer FSM: fix completion detection + timeout logic ...................................................................... message / peer FSM: fix completion detection + timeout logic * when the message_peer FSM times out, we msut notify the message_fsm * when waiting for DELETE_ACK, require all message_peer FSM instances to enter DELETE state before signaling completion Change-Id: Ibff5e25ebb34843c4b3165329f432892ac6a6ef5 --- M src/smscb_message_fsm.c M src/smscb_peer_fsm.c 2 files changed, 9 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-cbc refs/changes/26/21926/1 diff --git a/src/smscb_message_fsm.c b/src/smscb_message_fsm.c index 48191d1..65a749b 100644 --- a/src/smscb_message_fsm.c +++ b/src/smscb_message_fsm.c @@ -66,7 +66,7 @@ * timed out */ llist_for_each_entry(peer_fi, &fi->proc.children, proc.child) { if (peer_fi->state == SMSCB_S_WAIT_WRITE_ACK) - break; + return; } rest_it_op_set_http_result(cbcmsg->it_op, 201, "Created"); // FIXME: error cases osmo_fsm_inst_state_chg(fi, SMSCB_S_ACTIVE, 0, 0); @@ -125,7 +125,7 @@ case SMSCB_E_CBSP_REPLACE_NACK: llist_for_each_entry(peer_fi, &fi->proc.children, proc.child) { if (peer_fi->state == SMSCB_S_WAIT_REPLACE_ACK) - break; + return; } rest_it_op_set_http_result(cbcmsg->it_op, 200, "OK"); // FIXME: error cases osmo_fsm_inst_state_chg(fi, SMSCB_S_ACTIVE, 0, 0); @@ -153,7 +153,7 @@ case SMSCB_E_CBSP_STATUS_NACK: llist_for_each_entry(peer_fi, &fi->proc.children, proc.child) { if (peer_fi->state == SMSCB_S_WAIT_STATUS_ACK) - break; + return; } rest_it_op_set_http_result(cbcmsg->it_op, 200, "OK"); // FIXME: error cases osmo_fsm_inst_state_chg(fi, SMSCB_S_ACTIVE, 0, 0); @@ -180,8 +180,8 @@ case SMSCB_E_CBSP_DELETE_ACK: case SMSCB_E_CBSP_DELETE_NACK: llist_for_each_entry(peer_fi, &fi->proc.children, proc.child) { - if (peer_fi->state == SMSCB_S_WAIT_DELETE_ACK) - break; + if (peer_fi->state != SMSCB_S_DELETED) + return; } rest_it_op_set_http_result(cbcmsg->it_op, 200, "OK"); // FIXME: error cases osmo_fsm_inst_state_chg(fi, SMSCB_S_DELETED, 0, 0); diff --git a/src/smscb_peer_fsm.c b/src/smscb_peer_fsm.c index 69b4418..341c205 100644 --- a/src/smscb_peer_fsm.c +++ b/src/smscb_peer_fsm.c @@ -434,15 +434,19 @@ switch (fi->T) { case T_WAIT_WRITE_ACK: osmo_fsm_inst_state_chg(fi, SMSCB_S_ACTIVE, 0, 0); + osmo_fsm_inst_dispatch(fi->proc.parent, SMSCB_E_CBSP_WRITE_NACK, NULL); break; case T_WAIT_REPLACE_ACK: osmo_fsm_inst_state_chg(fi, SMSCB_S_ACTIVE, 0, 0); + osmo_fsm_inst_dispatch(fi->proc.parent, SMSCB_E_CBSP_REPLACE_NACK, NULL); break; case T_WAIT_STATUS_ACK: osmo_fsm_inst_state_chg(fi, SMSCB_S_ACTIVE, 0, 0); + osmo_fsm_inst_dispatch(fi->proc.parent, SMSCB_E_CBSP_STATUS_NACK, NULL); break; case T_WAIT_DELETE_ACK: osmo_fsm_inst_state_chg(fi, SMSCB_S_DELETED, 0, 0); + osmo_fsm_inst_dispatch(fi->proc.parent, SMSCB_E_CBSP_DELETE_NACK, NULL); break; default: OSMO_ASSERT(0); -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/21926 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: Ibff5e25ebb34843c4b3165329f432892ac6a6ef5 Gerrit-Change-Number: 21926 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 3 13:16:48 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 3 Jan 2021 13:16:48 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BSC_Tests: add missing f_shutdown_helper() statements References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21927 ) Change subject: BSC_Tests: add missing f_shutdown_helper() statements ...................................................................... BSC_Tests: add missing f_shutdown_helper() statements Change-Id: I1a89e3776d7705d3d54b096ef420b2bbe574ab07 --- M bsc/BSC_Tests.ttcn 1 file changed, 17 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/27/21927/1 diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index 87a15ea..fe50e06 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -1251,6 +1251,8 @@ } else { setverdict(fail, "immediate assignment not rejected"); } + + f_shutdown_helper(); } /* Test behavior if MSC never answers to CR */ @@ -3927,21 +3929,25 @@ testcase TC_assignment_codec_amr_f_start_mode_auto() runs on test_CT { f_TC_assignment_codec_amr(true, '209520882208'O, '11111111'B, '00000010'B, start_mode := "auto"); + f_shutdown_helper(); } testcase TC_assignment_codec_amr_h_start_mode_auto() runs on test_CT { f_TC_assignment_codec_amr(false, '2015208820'O, '10010101'B, '00010101'B, start_mode := "auto"); + f_shutdown_helper(); } testcase TC_assignment_codec_amr_f_start_mode_4() runs on test_CT { f_TC_assignment_codec_amr(true, '2b9520882208'O, '11111111'B, '00000010'B, start_mode := "4"); + f_shutdown_helper(); } testcase TC_assignment_codec_amr_h_start_mode_4() runs on test_CT { f_TC_assignment_codec_amr(false, '2b15208820'O, '10010101'B, '00010101'B, start_mode := "4"); + f_shutdown_helper(); } private function f_disable_all_tch_f() runs on test_CT { @@ -5090,6 +5096,7 @@ f_ctrs_bsc_and_bts_add(0, "interbsc_ho_in:attempted"); f_ctrs_bsc_and_bts_add(0, "interbsc_ho_in:completed"); f_ctrs_bsc_and_bts_verify(); + f_shutdown_helper(); } testcase TC_ho_into_this_bsc() runs on test_CT { @@ -7896,6 +7903,7 @@ f_sleep(1.0); vc_conn := f_start_handler(refers(f_tc_lcs_loc_req_for_active_ms), pars); vc_conn.done; + f_shutdown_helper(); } /* With an active lchan, start BSSMAP Perform Location Request on A interface, starting BSSMAP-LE Perform Location @@ -7911,6 +7919,7 @@ f_sleep(1.0); vc_conn := f_start_handler(refers(f_tc_lcs_loc_req_for_active_ms_ta_req), pars); vc_conn.done; + f_shutdown_helper(); } /* Clear the A-interface conn only, without doing anything on Abis. Useful for LCS, for cases where there is only an A @@ -8016,6 +8025,7 @@ vc_conn := f_start_handler(refers(f_tc_lcs_loc_req_for_idle_ms), pars); vc_conn.done; + f_shutdown_helper(); } /* With no active lchan, start BSSMAP Perform Location Request on A interface, but omit IMSI; expect failure response. @@ -8055,6 +8065,7 @@ vc_conn := f_start_handler(refers(f_tc_lcs_loc_req_no_subscriber), pars); vc_conn.done; + f_shutdown_helper(); } /* With an active lchan, start a Perform Location Request on the A-interface, but virtual SMLC does not answer with @@ -8106,6 +8117,7 @@ f_sleep(1.0); vc_conn := f_start_handler(refers(f_tc_lcs_loc_req_for_active_ms_le_timeout), pars); vc_conn.done; + f_shutdown_helper(); } /* With an active lchan, start a Perform Location Request on the A-interface, but virtual SMLC does not answer with @@ -8122,6 +8134,7 @@ f_sleep(1.0); vc_conn := f_start_handler(refers(f_tc_lcs_loc_req_for_active_ms_le_timeout2), pars); vc_conn.done; + f_shutdown_helper(); } /* With *no* active lchan, start a Perform Location Request, expecting that the MS will be Paged. */ @@ -8187,6 +8200,7 @@ vc_conn := f_start_handler(refers(f_tc_lcs_loc_req_for_idle_ms_no_pag_resp), pars); vc_conn.done; + f_shutdown_helper(); } /* During an ongoing Location Request, the MS sends a CM Service Request. Expect the same A-conn to be re-used / taken @@ -8246,6 +8260,7 @@ vc_conn := f_start_handler(refers(f_tc_cm_service_during_lcs_loc_req), pars); vc_conn.done; + f_shutdown_helper(); } /* During an ongoing Perform Location Request, do a Handover, an expect a BSSLAP Reset message from the BSC to indicate @@ -8318,6 +8333,7 @@ f_sleep(1.0); vc_conn := f_start_handler(refers(f_tc_ho_during_lcs_loc_req), pars); vc_conn.done; + f_shutdown_helper(); } /* Attempt Complete Layer 3 without any MSC available (OS#4832) */ @@ -8359,6 +8375,7 @@ f_ctrs_bsc_add("mscpool:subscr:no_msc"); f_ctrs_bsc_verify(); + f_shutdown_helper(); } /* Dyn PDCH todo: -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21927 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I1a89e3776d7705d3d54b096ef420b2bbe574ab07 Gerrit-Change-Number: 21927 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 3 13:21:57 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 3 Jan 2021 13:21:57 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BSC_Tests: fix unreachable code after f_shutdown_helper() References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21928 ) Change subject: BSC_Tests: fix unreachable code after f_shutdown_helper() ...................................................................... BSC_Tests: fix unreachable code after f_shutdown_helper() This function does 'mtc.stop', so it must be always called last. Change-Id: If2c991d6ac23e43aafd32814ca17cf2093cb1522 --- M bsc/BSC_Tests.ttcn 1 file changed, 4 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/28/21928/1 diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index fe50e06..f72ab22 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -3681,9 +3681,9 @@ vc_conn := f_start_handler(refers(f_TC_assignment_codec), pars); vc_conn.done; - f_shutdown_helper(); f_vty_amr_start_mode_restore(true); + f_shutdown_helper(); } testcase TC_assignment_codec_amr_h() runs on test_CT { @@ -3709,9 +3709,9 @@ vc_conn := f_start_handler(refers(f_TC_assignment_codec), pars); vc_conn.done; - f_shutdown_helper(); f_vty_amr_start_mode_restore(false); + f_shutdown_helper(); } /* 'amr start-mode auto' should not keep the (unused) 'smod' bits from previous configuration */ @@ -3743,11 +3743,11 @@ vc_conn := f_start_handler(refers(f_TC_assignment_codec), pars); vc_conn.done; - f_shutdown_helper(); /* Clear the startmode bits to not affect subsequent tests, in case the bits should indeed stick around. */ f_vty_amr_start_mode_set(true, "1"); f_vty_amr_start_mode_restore(true); + f_shutdown_helper(); } function f_TC_assignment_codec_amr(boolean fr, octetstring mrconf, bitstring s8_s0, bitstring exp_s8_s0, @@ -4257,9 +4257,9 @@ vc_conn := f_start_handler(refers(f_TC_assignment_codec), pars); vc_conn.done; - f_shutdown_helper(); f_vty_amr_start_mode_restore(false); + f_shutdown_helper(); } /* test the procedure of the MSC requesting a Classmark Update: -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21928 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If2c991d6ac23e43aafd32814ca17cf2093cb1522 Gerrit-Change-Number: 21928 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 3 13:21:58 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 3 Jan 2021 13:21:58 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BSC_Tests: drop redundant f_init() in f_test_si2quater() References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21929 ) Change subject: BSC_Tests: drop redundant f_init() in f_test_si2quater() ...................................................................... BSC_Tests: drop redundant f_init() in f_test_si2quater() There is a global boolean flag that would make f_init() return early if it's called twice. This is exactly the case here. Change-Id: Ic33786c4851d2682deec7c22fafb99043c1c1cf6 --- M bsc/BSC_Tests.ttcn 1 file changed, 0 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/29/21929/1 diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index f72ab22..4444579 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -2271,8 +2271,6 @@ f_init_bts_and_check_sysinfo(0, expect_si := expect_si); - f_init(1); - if (not istemplatekind(expect_cells, "omit")) { /* Also check that RR Channel Release contains these EARFCNs. * (copied code from TC_chan_rel_hard_clear_csfb) */ -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21929 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ic33786c4851d2682deec7c22fafb99043c1c1cf6 Gerrit-Change-Number: 21929 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 3 13:24:15 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 3 Jan 2021 13:24:15 +0000 Subject: Change in libosmocore[master]: make use of OTC_GLOBAL when allocating library-internal contexts In-Reply-To: References: Message-ID: Hello Jenkins Builder, fixeria, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/13338 to look at the new patch set (#21). Change subject: make use of OTC_GLOBAL when allocating library-internal contexts ...................................................................... make use of OTC_GLOBAL when allocating library-internal contexts As libosmcore is now managing the global talloc contexts, there's no point in having APIs where the user tells the library about which talloc contexts to use for a given sub-system. Change-Id: I48f475efd3ee0d5120b8fc30861e852d1a6920b1 --- M include/osmocom/core/signal.h M src/counter.c M src/ctrl/control_vty.c M src/gb/gprs_bssgp.c M src/gsm/lapd_core.c M src/gsm/lapdm.c M src/logging.c M src/signal.c M src/stats.c M src/vty/telnet_interface.c M tests/ctrl/ctrl_test.c 11 files changed, 43 insertions(+), 25 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/38/13338/21 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/13338 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I48f475efd3ee0d5120b8fc30861e852d1a6920b1 Gerrit-Change-Number: 13338 Gerrit-PatchSet: 21 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 3 13:24:16 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 3 Jan 2021 13:24:16 +0000 Subject: Change in libosmocore[master]: Add inter-thread queue References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21930 ) Change subject: Add inter-thread queue ...................................................................... Add inter-thread queue This adds an inter-thread queue "it_q" to libosmocore. With it_q, one can perform thread-safe enqueing of messages to another thread, who will receive the related messages triggered via an eventfd handled in the usual libosmocore select loop abstraction. Change-Id: Ie7d0c5fec715a2a577fae014b0b8a0e9c38418ef --- M configure.ac M include/Makefile.am A include/osmocom/core/it_q.h M src/Makefile.am A src/it_q.c M tests/Makefile.am A tests/it_q/it_q_test.c A tests/it_q/it_q_test.ok M tests/testsuite.at 9 files changed, 485 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/30/21930/1 diff --git a/configure.ac b/configure.ac index 10fb496..c062e5f 100644 --- a/configure.ac +++ b/configure.ac @@ -62,7 +62,7 @@ dnl checks for header files AC_HEADER_STDC -AC_CHECK_HEADERS(execinfo.h poll.h sys/select.h sys/socket.h sys/signalfd.h sys/timerfd.h syslog.h ctype.h netinet/tcp.h netinet/in.h) +AC_CHECK_HEADERS(execinfo.h poll.h sys/select.h sys/socket.h sys/signalfd.h sys/eventfd.h sys/timerfd.h syslog.h ctype.h netinet/tcp.h netinet/in.h) # for src/conv.c AC_FUNC_ALLOCA AC_SEARCH_LIBS([dlopen], [dl dld], [LIBRARY_DLOPEN="$LIBS";LIBS=""]) diff --git a/include/Makefile.am b/include/Makefile.am index 842b872..c1ae644 100644 --- a/include/Makefile.am +++ b/include/Makefile.am @@ -30,6 +30,7 @@ osmocom/core/hash.h \ osmocom/core/hashtable.h \ osmocom/core/isdnhdlc.h \ + osmocom/core/it_q.h \ osmocom/core/linuxlist.h \ osmocom/core/linuxrbtree.h \ osmocom/core/log2.h \ diff --git a/include/osmocom/core/it_q.h b/include/osmocom/core/it_q.h new file mode 100644 index 0000000..6297840 --- /dev/null +++ b/include/osmocom/core/it_q.h @@ -0,0 +1,65 @@ +#pragma once + +#include +#include +#include + +/*! \defgroup osmo_it_q Inter-Thread Queue + * @{ + * \file osmo_it_q.h */ + +/*! One instance of an inter-thread queue. The user can use this to queue messages + * between different threads. The enqueue operation is non-blocking (but of course + * grabs a mutex for the actual list operations to safeguard againt races). The + * receiving thread is woken up by an event_fd which can be registered in the libosmocore + * select loop handling. + * + * IMPORTANT: Callers *MUST* ensure that items enqueued using osmo_it_q contain a + * 'struct llist_head' at the very beginning. */ +struct osmo_it_q { + /* entry in global list of message queues */ + struct llist_head entry; + + /* the actual list of user structs. HEAD: first in queue; TAIL: last in queue */ + struct llist_head list; + /* A pthread mutex to safeguard accesses to the queue. No rwlock as we always write. */ + pthread_mutex_t mutex; + /* Current count of messages in the queue */ + unsigned int current_length; + /* osmo-fd wrapped eventfd */ + struct osmo_fd event_ofd; + + /* a user-defined name for this queue */ + const char *name; + /* maximum permitted length of queue */ + unsigned int max_length; + /* read call-back, called for each de-queued message */ + void (*read_cb)(struct osmo_it_q *q, void *item); + /* opaque data pointer passed through to call-back function */ + void *data; +}; + +struct osmo_it_q *osmo_it_q_by_name(const char *name); + +int _osmo_it_q_enqueue(struct osmo_it_q *queue, struct llist_head *item); +#define osmo_it_q_enqueue(queue, item, member) \ + _osmo_it_q_enqueue(queue, &(item)->member) + +struct llist_head *_osmo_it_q_dequeue(struct osmo_it_q *queue); +#define osmo_it_q_dequeue(queue, item, member) do { \ + struct llist_head *l = _osmo_it_q_dequeue(queue); \ + if (!l) \ + *item = NULL; \ + else \ + *item = llist_entry(l, typeof(**item), member); \ +} while (0) + + +struct osmo_it_q *osmo_it_q_alloc(void *ctx, const char *name, unsigned int max_length, + + void (*read_cb)(struct osmo_it_q *q, void *item), + void *data); +void osmo_it_q_destroy(struct osmo_it_q *q); +void osmo_it_q_flush(struct osmo_it_q *q); + +/*! @} */ diff --git a/src/Makefile.am b/src/Makefile.am index 5ff1a42..dd31db8 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -28,6 +28,7 @@ sockaddr_str.c \ use_count.c \ exec.c \ + it_q.c \ $(NULL) if HAVE_SSSE3 diff --git a/src/it_q.c b/src/it_q.c new file mode 100644 index 0000000..9095d85 --- /dev/null +++ b/src/it_q.c @@ -0,0 +1,275 @@ +/*! \file it_q.c + * Osmocom Inter-Thread queue implementation */ +/* (C) 2019 by Harald Welte + * All Rights Reserved. + * + * SPDX-License-Identifier: GPL-2.0+ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + */ + +/*! \addtogroup it_q + * @{ + * Inter-Thread Message Queue. + * + * This implements a general-purpose queue between threads. It uses + * user-provided data types (containing a llist_head as initial member) + * as elements in the queue and an eventfd-based notification mechanism. + * Hence, it can be used for pretty much anything, including but not + * limited to msgbs, including msgb-wrapped osmo_prim. + * + * The idea is that the sending thread simply calls osmo_it_q_enqueue(). + * The receiving thread is woken up from its osmo_select_main() loop by eventfd, + * and a general osmo_fd callback function for the eventfd will dequeue each item + * and call a queue-specific callback function. + */ + +#include "../config.h" + +#ifdef HAVE_SYS_EVENTFD_H + +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +/* "increment" the eventfd by specified 'inc' */ +static int eventfd_increment(int fd, uint64_t inc) +{ + int rc; + + rc = write(fd, &inc, sizeof(inc)); + if (rc != sizeof(inc)) + return -1; + + return 0; +} + +/* global (for all threads) list of message queues in a program + associated lock */ +static LLIST_HEAD(it_queues); +static pthread_rwlock_t it_queues_rwlock; + +/* resolve it-queue by its [globally unique] name; must be called with rwlock held */ +static struct osmo_it_q *_osmo_it_q_by_name(const char *name) +{ + struct osmo_it_q *q; + llist_for_each_entry(q, &it_queues, entry) { + if (!strcmp(q->name, name)) + return q; + } + return NULL; +} + +/*! resolve it-queue by its [globally unique] name */ +struct osmo_it_q *osmo_it_q_by_name(const char *name) +{ + struct osmo_it_q *q; + pthread_rwlock_rdlock(&it_queues_rwlock); + q = _osmo_it_q_by_name(name); + pthread_rwlock_unlock(&it_queues_rwlock); + return q; +} + +/* osmo_fd call-back when eventfd is readable */ +static int osmo_it_q_fd_cb(struct osmo_fd *ofd, unsigned int what) +{ + struct osmo_it_q *q = (struct osmo_it_q *) ofd->data; + uint64_t val; + int i, rc; + + if (!(what & OSMO_FD_READ)) + return 0; + + rc = read(ofd->fd, &val, sizeof(val)); + if (rc < sizeof(val)) + return rc; + + for (i = 0; i < val; i++) { + struct llist_head *item = _osmo_it_q_dequeue(q); + /* in case the user might have called osmo_it_q_flush() we may + * end up in the eventfd-dispatch but without any messages left in the queue, + * otherwise I'd have loved to OSMO_ASSERT(msg) here. */ + if (!item) + break; + q->read_cb(q, item); + } + + return 0; +} + +/*! Allocate a new inter-thread message queue. + * \param[in] ctx talloc context from which to allocate the queue + * \param[in] name human-readable string name of the queue; function creates a copy. + * \param[in] read_cb call-back function to be called for each de-queued message; may be + * NULL in case you don't want eventfd/osmo_select integration and + * will manually take care of noticing if and when to dequeue. + * \returns a newly-allocated inter-thread message queue; NULL in case of error */ +struct osmo_it_q *osmo_it_q_alloc(void *ctx, const char *name, unsigned int max_length, + void (*read_cb)(struct osmo_it_q *q, void *item), + void *data) +{ + struct osmo_it_q *q; + int fd; + + q = talloc_zero(ctx, struct osmo_it_q); + if (!q) + return NULL; + q->data = data; + q->name = talloc_strdup(q, name); + q->current_length = 0; + q->max_length = max_length; + q->read_cb = read_cb; + INIT_LLIST_HEAD(&q->list); + q->event_ofd.fd = -1; + + if (q->read_cb) { + /* create eventfd *if* the user has provided a read_cb function */ + fd = eventfd(0, 0); + if (fd < 0) { + talloc_free(q); + return NULL; + } + + /* initialize BUT NOT REGISTER the osmo_fd. The receiving thread must + * take are to select/poll/read/... on it */ + osmo_fd_setup(&q->event_ofd, fd, OSMO_FD_READ, osmo_it_q_fd_cb, q, 0); + } + + /* add to global list of queues, checking for duplicate names */ + pthread_rwlock_wrlock(&it_queues_rwlock); + if (_osmo_it_q_by_name(q->name)) { + pthread_rwlock_unlock(&it_queues_rwlock); + if (q->event_ofd.fd >= 0) + osmo_fd_close(&q->event_ofd); + talloc_free(q); + return NULL; + } + llist_add_tail(&q->entry, &it_queues); + pthread_rwlock_unlock(&it_queues_rwlock); + + return q; +} + +static void *item_dequeue(struct llist_head *queue) +{ + struct llist_head *lh; + + if (llist_empty(queue)) + return NULL; + + lh = queue->next; + if (lh) { + llist_del(lh); + return lh; + } else + return NULL; +} + +/*! Flush all messages currently present in queue */ +static void _osmo_it_q_flush(struct osmo_it_q *q) +{ + void *item; + while ((item = item_dequeue(&q->list))) { + talloc_free(item); + } + q->current_length = 0; +} + +/*! Flush all messages currently present in queue */ +void osmo_it_q_flush(struct osmo_it_q *q) +{ + OSMO_ASSERT(q); + + pthread_mutex_lock(&q->mutex); + _osmo_it_q_flush(q); + pthread_mutex_unlock(&q->mutex); +} + +/*! Destroy a message queue */ +void osmo_it_q_destroy(struct osmo_it_q *q) +{ + OSMO_ASSERT(q); + + /* first remove from global list of queues */ + pthread_rwlock_wrlock(&it_queues_rwlock); + llist_del(&q->entry); + pthread_rwlock_unlock(&it_queues_rwlock); + /* next, close the eventfd */ + if (q->event_ofd.fd >= 0) + osmo_fd_close(&q->event_ofd); + /* flush all messages still present */ + osmo_it_q_flush(q); + /* and finally release memory */ + talloc_free(q); +} + +/*! Thread-safe en-queue to an inter-thread message queue. + * \param[in] queue Inter-thread queue on which to enqueue + * \param[in] item Item to enqueue. Must have llist_head as first member! + * \returns 0 on success; negative on error */ +int _osmo_it_q_enqueue(struct osmo_it_q *queue, struct llist_head *item) +{ + OSMO_ASSERT(queue); + OSMO_ASSERT(item); + + pthread_mutex_lock(&queue->mutex); + if (queue->current_length+1 > queue->max_length) { + pthread_mutex_unlock(&queue->mutex); + return -ENOSPC; + } + llist_add_tail(item, &queue->list); + queue->current_length++; + pthread_mutex_unlock(&queue->mutex); + /* increment eventfd counter by one */ + if (queue->event_ofd.fd >= 0) + eventfd_increment(queue->event_ofd.fd, 1); + return 0; +} + + +/*! Thread-safe de-queue from an inter-thread message queue. + * \param[in] queue Inter-thread queue from which to dequeue + * \returns dequeued message buffer; NULL if none available + */ +struct llist_head *_osmo_it_q_dequeue(struct osmo_it_q *queue) +{ + struct llist_head *l; + OSMO_ASSERT(queue); + + pthread_mutex_lock(&queue->mutex); + + if (llist_empty(&queue->list)) + l = NULL; + l = queue->list.next; + OSMO_ASSERT(l); + llist_del(l); + queue->current_length--; + + pthread_mutex_unlock(&queue->mutex); + + return l; +} + + +#endif /* HAVE_SYS_EVENTFD_H */ + +/*! @} */ diff --git a/tests/Makefile.am b/tests/Makefile.am index dbca9d7..b3832e8 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -41,6 +41,7 @@ gad/gad_test \ bsslap/bsslap_test \ bssmap_le/bssmap_le_test \ + it_q/it_q_test \ $(NULL) if ENABLE_MSGFILE @@ -294,6 +295,9 @@ bssmap_le_bssmap_le_test_SOURCES = bssmap_le/bssmap_le_test.c bssmap_le_bssmap_le_test_LDADD = $(LDADD) $(top_builddir)/src/gsm/libosmogsm.la +it_q_it_q_test_SOURCES = it_q/it_q_test.c +it_q_it_q_test_LDADD = $(LDADD) + # The `:;' works around a Bash 3.2 bug when the output is not writeable. $(srcdir)/package.m4: $(top_srcdir)/configure.ac :;{ \ @@ -378,6 +382,7 @@ gad/gad_test.ok \ bsslap/bsslap_test.ok \ bssmap_le/bssmap_le_test.ok \ + it_q/it_q_test.ok \ $(NULL) if ENABLE_LIBSCTP diff --git a/tests/it_q/it_q_test.c b/tests/it_q/it_q_test.c new file mode 100644 index 0000000..b08c46c --- /dev/null +++ b/tests/it_q/it_q_test.c @@ -0,0 +1,117 @@ +#include +#include + +#include +#include +#include + +struct it_q_test1 { + struct llist_head list; + int foo; +}; + +struct it_q_test2 { + int foo; + struct llist_head list; +}; + +#define ENTER_TC printf("\n== Entering test case %s\n", __func__) + +static void tc_alloc(void) +{ + struct osmo_it_q *q1, *q2; + + ENTER_TC; + + printf("allocating q1\n"); + q1 = osmo_it_q_alloc(OTC_GLOBAL, "q1", 3, NULL, NULL); + OSMO_ASSERT(q1); + + /* ensure that no duplicate allocation for the */ + printf("attempting duplicate allocation of qa\n"); + q2 = osmo_it_q_alloc(OTC_GLOBAL, "q1", 3, NULL, NULL); + OSMO_ASSERT(!q2); + + /* ensure that same name can be re-created after destroying old one */ + osmo_it_q_destroy(q1); + printf("re-allocating q1\n"); + q1 = osmo_it_q_alloc(OTC_GLOBAL, "q1", 3, NULL, NULL); + OSMO_ASSERT(q1); + + osmo_it_q_destroy(q1); +} + +static void tc_queue_length(void) +{ + struct osmo_it_q *q1; + unsigned int qlen = 3; + struct it_q_test1 *item; + int i, rc; + + ENTER_TC; + + printf("allocating q1\n"); + q1 = osmo_it_q_alloc(OTC_GLOBAL, "q1", qlen, NULL, NULL); + OSMO_ASSERT(q1); + + printf("adding queue entries up to the limit\n"); + for (i = 0; i < qlen; i++) { + item = talloc_zero(OTC_GLOBAL, struct it_q_test1); + rc = osmo_it_q_enqueue(q1, item, list); + OSMO_ASSERT(rc == 0); + } + printf("attempting to add more than the limit\n"); + item = talloc_zero(OTC_GLOBAL, struct it_q_test1); + rc = osmo_it_q_enqueue(q1, item, list); + OSMO_ASSERT(rc == -ENOSPC); + + osmo_it_q_destroy(q1); +} + +static int g_read_cb_count; + +static void q_read_cb(struct osmo_it_q *q, void *item) +{ + g_read_cb_count++; + talloc_free(item); +} + +static void tc_eventfd(void) +{ + struct osmo_it_q *q1; + unsigned int qlen = 30; + struct it_q_test1 *item; + int i, rc; + + ENTER_TC; + + printf("allocating q1\n"); + q1 = osmo_it_q_alloc(OTC_GLOBAL, "q1", qlen, q_read_cb, NULL); + OSMO_ASSERT(q1); + osmo_fd_register(&q1->event_ofd); + + /* ensure read-cb isn't called unless we enqueue something */ + osmo_select_main(1); + OSMO_ASSERT(g_read_cb_count == 0); + + /* ensure read-cb is called for each enqueued msg once */ + printf("adding %u queue entries up to the limit\n", qlen); + for (i = 0; i < qlen; i++) { + item = talloc_zero(OTC_GLOBAL, struct it_q_test1); + rc = osmo_it_q_enqueue(q1, item, list); + OSMO_ASSERT(rc == 0); + } + + osmo_select_main(1); + printf("%u entries were dequeued\n", qlen); + OSMO_ASSERT(g_read_cb_count == qlen); + + osmo_it_q_destroy(q1); +} + +int main(int argc, char **argv) +{ + tc_alloc(); + tc_queue_length(); + tc_eventfd(); +} diff --git a/tests/it_q/it_q_test.ok b/tests/it_q/it_q_test.ok new file mode 100644 index 0000000..7f102c6 --- /dev/null +++ b/tests/it_q/it_q_test.ok @@ -0,0 +1,15 @@ + +== Entering test case tc_alloc +allocating q1 +attempting duplicate allocation of qa +re-allocating q1 + +== Entering test case tc_queue_length +allocating q1 +adding queue entries up to the limit +attempting to add more than the limit + +== Entering test case tc_eventfd +allocating q1 +adding 30 queue entries up to the limit +30 entries were dequeued diff --git a/tests/testsuite.at b/tests/testsuite.at index 43f515a..1a3b2fb 100644 --- a/tests/testsuite.at +++ b/tests/testsuite.at @@ -420,4 +420,9 @@ AT_KEYWORDS([bssmap_le]) cat $abs_srcdir/bssmap_le/bssmap_le_test.ok > expout AT_CHECK([$abs_top_builddir/tests/bssmap_le/bssmap_le_test], [0], [expout], [ignore]) + +AT_SETUP([it_q]) +AT_KEYWORDS([it_q]) +cat $abs_srcdir/it_q/it_q_test.ok > expout +AT_CHECK([$abs_top_builddir/tests/it_q/it_q_test], [0], [expout], [ignore]) AT_CLEANUP -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21930 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie7d0c5fec715a2a577fae014b0b8a0e9c38418ef Gerrit-Change-Number: 21930 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 3 13:24:44 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 3 Jan 2021 13:24:44 +0000 Subject: Change in libosmocore[master]: WIP: osmo_it_msgq: Osmocom Inter-thread Message Queue In-Reply-To: References: Message-ID: laforge has abandoned this change. ( https://gerrit.osmocom.org/c/libosmocore/+/13538 ) Change subject: WIP: osmo_it_msgq: Osmocom Inter-thread Message Queue ...................................................................... Abandoned superseded by https://gerrit.osmocom.org/c/libosmocore/+/21930 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/13538 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I30a7233cb0b51a883ad85c8c4165270b32c4be61 Gerrit-Change-Number: 13538 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: abandon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 3 13:25:06 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 3 Jan 2021 13:25:06 +0000 Subject: Change in libosmocore[master]: cbsp: Fix parsing DCS in decode of WRITE-REPLACE In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21919 ) Change subject: cbsp: Fix parsing DCS in decode of WRITE-REPLACE ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21919 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I05d489f91a2cc5df372e8e695126659eedac9485 Gerrit-Change-Number: 21919 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 03 Jan 2021 13:25:06 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 3 13:25:10 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 3 Jan 2021 13:25:10 +0000 Subject: Change in libosmocore[master]: cbsp: Fix osmo_cbsp_recv_buffered() for KEEP-ALIVE-COMPLETE In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21918 ) Change subject: cbsp: Fix osmo_cbsp_recv_buffered() for KEEP-ALIVE-COMPLETE ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21918 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ib620128a167cb77f061ee57e8f8ad707b96b1c0d Gerrit-Change-Number: 21918 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 03 Jan 2021 13:25:10 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 3 13:25:14 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 3 Jan 2021 13:25:14 +0000 Subject: Change in libosmocore[master]: cbsp: Fix encoding of "ETWS Warning Security Info" IE In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21917 ) Change subject: cbsp: Fix encoding of "ETWS Warning Security Info" IE ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21917 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I7e1d7eab8b8e51acd9a24c38e2d3d30bbf00847a Gerrit-Change-Number: 21917 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 03 Jan 2021 13:25:14 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 3 16:08:41 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 3 Jan 2021 16:08:41 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BSC_Tests: fix expectations in TC_assignment_codec_amr_h_start_mode_4 References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21931 ) Change subject: BSC_Tests: fix expectations in TC_assignment_codec_amr_h_start_mode_4 ...................................................................... BSC_Tests: fix expectations in TC_assignment_codec_amr_h_start_mode_4 Change-Id: I791602a0bb56e192c9263982b9f20ac0738281a2 Related: OS#4898 --- M bsc/BSC_Tests.ttcn 1 file changed, 3 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/31/21931/1 diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index 4444579..813c94e 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -3937,13 +3937,15 @@ } testcase TC_assignment_codec_amr_f_start_mode_4() runs on test_CT { + /* "amr tch-f modes 0 2 4 7" => total 4 modes and start mode 4 => '11'B on the wire */ f_TC_assignment_codec_amr(true, '2b9520882208'O, '11111111'B, '00000010'B, start_mode := "4"); f_shutdown_helper(); } testcase TC_assignment_codec_amr_h_start_mode_4() runs on test_CT { - f_TC_assignment_codec_amr(false, '2b15208820'O, '10010101'B, '00010101'B, + /* "amr tch-h modes 0 2 4" => total 3 modes and start mode 4 => '10'B on the wire */ + f_TC_assignment_codec_amr(false, '2a15208820'O, '10010101'B, '00010101'B, start_mode := "4"); f_shutdown_helper(); } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21931 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I791602a0bb56e192c9263982b9f20ac0738281a2 Gerrit-Change-Number: 21931 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 3 17:08:37 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 3 Jan 2021 17:08:37 +0000 Subject: Change in libosmocore[master]: Add inter-thread queue In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/21930 to look at the new patch set (#2). Change subject: Add inter-thread queue ...................................................................... Add inter-thread queue This adds an inter-thread queue "it_q" to libosmocore. With it_q, one can perform thread-safe enqueing of messages to another thread, who will receive the related messages triggered via an eventfd handled in the usual libosmocore select loop abstraction. Change-Id: Ie7d0c5fec715a2a577fae014b0b8a0e9c38418ef --- M configure.ac M include/Makefile.am A include/osmocom/core/it_q.h M src/Makefile.am A src/it_q.c M tests/Makefile.am A tests/it_q/it_q_test.c A tests/it_q/it_q_test.ok M tests/testsuite.at 9 files changed, 486 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/30/21930/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21930 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie7d0c5fec715a2a577fae014b0b8a0e9c38418ef Gerrit-Change-Number: 21930 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 3 17:08:58 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 3 Jan 2021 17:08:58 +0000 Subject: Change in libosmocore[master]: cbsp: Fix encoding of "ETWS Warning Security Info" IE In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21917 ) Change subject: cbsp: Fix encoding of "ETWS Warning Security Info" IE ...................................................................... cbsp: Fix encoding of "ETWS Warning Security Info" IE This is a fixed-length Tag-Value IE. Our decoder already parsed it correctly, but the encoder encoded it as TLV, which is wrong. Change-Id: I7e1d7eab8b8e51acd9a24c38e2d3d30bbf00847a --- M src/gsm/cbsp.c 1 file changed, 5 insertions(+), 2 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/gsm/cbsp.c b/src/gsm/cbsp.c index b89358d..6ddef33 100644 --- a/src/gsm/cbsp.c +++ b/src/gsm/cbsp.c @@ -177,12 +177,15 @@ } } else { int wperiod = encode_wperiod(in->u.emergency.warning_period); + uint8_t *cur; if (wperiod < 0) return -EINVAL; msgb_tv_put(msg, CBSP_IEI_EMERG_IND, in->u.emergency.indicator); msgb_tv16_put(msg, CBSP_IEI_WARN_TYPE, in->u.emergency.warning_type); - msgb_tlv_put(msg, CBSP_IEI_WARN_SEC_INFO, sizeof(in->u.emergency.warning_sec_info), - in->u.emergency.warning_sec_info); + /* Tag + fixed length value! */ + msgb_put_u8(msg, CBSP_IEI_WARN_SEC_INFO); + cur = msgb_put(msg, sizeof(in->u.emergency.warning_sec_info)); + memcpy(cur, in->u.emergency.warning_sec_info, sizeof(in->u.emergency.warning_sec_info)); msgb_tv_put(msg, CBSP_IEI_WARNING_PERIOD, wperiod); } return 0; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21917 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I7e1d7eab8b8e51acd9a24c38e2d3d30bbf00847a Gerrit-Change-Number: 21917 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 3 17:08:59 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 3 Jan 2021 17:08:59 +0000 Subject: Change in libosmocore[master]: cbsp: Fix osmo_cbsp_recv_buffered() for KEEP-ALIVE-COMPLETE In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21918 ) Change subject: cbsp: Fix osmo_cbsp_recv_buffered() for KEEP-ALIVE-COMPLETE ...................................................................... cbsp: Fix osmo_cbsp_recv_buffered() for KEEP-ALIVE-COMPLETE We used to suppress/drop any "zero length" messages, but we didn't include the header when computing the length. However, in CBSP there are messages (at least KEEP-ALIVE-COMPLETE) which only consist of the header without any information elements. We cannot simply drop such messages. This also fixes the return value of osmo_cbsp_recv_buffered() to be the total number of received octets (including the header). Change-Id: Ib620128a167cb77f061ee57e8f8ad707b96b1c0d --- M src/gsm/cbsp.c 1 file changed, 1 insertion(+), 6 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/gsm/cbsp.c b/src/gsm/cbsp.c index 6ddef33..2037f7c 100644 --- a/src/gsm/cbsp.c +++ b/src/gsm/cbsp.c @@ -1460,12 +1460,7 @@ } } /* else: complete message received */ - rc = msgb_l2len(msg); - if (rc == 0) { - /* drop empty message */ - rc = -EAGAIN; - goto discard_msg; - } + rc = msgb_length(msg); if (tmp_msg) *tmp_msg = NULL; *rmsg = msg; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21918 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ib620128a167cb77f061ee57e8f8ad707b96b1c0d Gerrit-Change-Number: 21918 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 3 17:09:00 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 3 Jan 2021 17:09:00 +0000 Subject: Change in libosmocore[master]: cbsp: Fix parsing DCS in decode of WRITE-REPLACE In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21919 ) Change subject: cbsp: Fix parsing DCS in decode of WRITE-REPLACE ...................................................................... cbsp: Fix parsing DCS in decode of WRITE-REPLACE The encoder generates the DCS IE, but the decoder forgot to parse it :/ Change-Id: I05d489f91a2cc5df372e8e695126659eedac9485 --- M src/gsm/cbsp.c 1 file changed, 1 insertion(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/gsm/cbsp.c b/src/gsm/cbsp.c index 2037f7c..2c7a7b7 100644 --- a/src/gsm/cbsp.c +++ b/src/gsm/cbsp.c @@ -678,6 +678,7 @@ out->u.cbs.category = *TLVP_VAL(tp, CBSP_IEI_CATEGORY); out->u.cbs.rep_period = tlvp_val16be(tp, CBSP_IEI_REP_PERIOD); out->u.cbs.num_bcast_req = tlvp_val16be(tp, CBSP_IEI_NUM_BCAST_REQ); + out->u.cbs.dcs = *TLVP_VAL(tp, CBSP_IEI_DCS); num_of_pages = *TLVP_VAL(tp, CBSP_IEI_NUM_OF_PAGES); if (num_of_pages < 1) return -EINVAL; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21919 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I05d489f91a2cc5df372e8e695126659eedac9485 Gerrit-Change-Number: 21919 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 3 17:21:31 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 3 Jan 2021 17:21:31 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BSC_Tests: fix early mtc.stop in TC_chan_rel_rr_cause() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21924 ) Change subject: BSC_Tests: fix early mtc.stop in TC_chan_rel_rr_cause() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21924 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ic7df15b496fc0750e4f694b1ae79398216f498a7 Gerrit-Change-Number: 21924 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 03 Jan 2021 17:21:31 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 3 17:21:42 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 3 Jan 2021 17:21:42 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BSC_Tests: add missing f_shutdown_helper() statements In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21927 ) Change subject: BSC_Tests: add missing f_shutdown_helper() statements ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21927 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I1a89e3776d7705d3d54b096ef420b2bbe574ab07 Gerrit-Change-Number: 21927 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 03 Jan 2021 17:21:42 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 3 17:21:55 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 3 Jan 2021 17:21:55 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BSC_Tests: fix unreachable code after f_shutdown_helper() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21928 ) Change subject: BSC_Tests: fix unreachable code after f_shutdown_helper() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21928 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If2c991d6ac23e43aafd32814ca17cf2093cb1522 Gerrit-Change-Number: 21928 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 03 Jan 2021 17:21:55 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 3 17:22:11 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 3 Jan 2021 17:22:11 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BSC_Tests: drop redundant f_init() in f_test_si2quater() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21929 ) Change subject: BSC_Tests: drop redundant f_init() in f_test_si2quater() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21929 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ic33786c4851d2682deec7c22fafb99043c1c1cf6 Gerrit-Change-Number: 21929 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 03 Jan 2021 17:22:11 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 3 17:22:15 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 3 Jan 2021 17:22:15 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BSC_Tests: fix early mtc.stop in TC_chan_rel_rr_cause() In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21924 ) Change subject: BSC_Tests: fix early mtc.stop in TC_chan_rel_rr_cause() ...................................................................... BSC_Tests: fix early mtc.stop in TC_chan_rel_rr_cause() Calling f_shutdown_helper() in f_tc_chan_rel_rr_cause() leads to premature test case termination, so only one out of 6 cause values gets checked. Move it to TC_chan_rel_rr_cause(). Change-Id: Ic7df15b496fc0750e4f694b1ae79398216f498a7 --- M bsc/BSC_Tests.ttcn 1 file changed, 2 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index 175b820..87a15ea 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -1947,7 +1947,6 @@ } f_expect_chan_rel(0, dt.rsl_chan_nr, expect_rll_rel_req := false, expect_rr_cause := expect_rr_cause); - f_shutdown_helper(); } /* Test that Clear Command cause codes affect the RR Channel Release cause code */ @@ -1960,6 +1959,8 @@ f_tc_chan_rel_rr_cause(GSM0808_CAUSE_RADIO_INTERFACE_MESSAGE_FAILURE, GSM48_RR_CAUSE_PROT_ERROR_UNSPC); f_tc_chan_rel_rr_cause(GSM0808_CAUSE_RADIO_INTERFACE_FAILURE, GSM48_RR_CAUSE_ABNORMAL_UNSPEC); f_tc_chan_rel_rr_cause(GSM0808_CAUSE_EQUIPMENT_FAILURE, GSM48_RR_CAUSE_ABNORMAL_UNSPEC); + + f_shutdown_helper(); } /* Test behavior if RSL EST IND for non-active channel */ -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21924 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ic7df15b496fc0750e4f694b1ae79398216f498a7 Gerrit-Change-Number: 21924 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 3 17:22:15 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 3 Jan 2021 17:22:15 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BSC_Tests: add missing f_shutdown_helper() statements In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21927 ) Change subject: BSC_Tests: add missing f_shutdown_helper() statements ...................................................................... BSC_Tests: add missing f_shutdown_helper() statements Change-Id: I1a89e3776d7705d3d54b096ef420b2bbe574ab07 --- M bsc/BSC_Tests.ttcn 1 file changed, 17 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index 87a15ea..fe50e06 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -1251,6 +1251,8 @@ } else { setverdict(fail, "immediate assignment not rejected"); } + + f_shutdown_helper(); } /* Test behavior if MSC never answers to CR */ @@ -3927,21 +3929,25 @@ testcase TC_assignment_codec_amr_f_start_mode_auto() runs on test_CT { f_TC_assignment_codec_amr(true, '209520882208'O, '11111111'B, '00000010'B, start_mode := "auto"); + f_shutdown_helper(); } testcase TC_assignment_codec_amr_h_start_mode_auto() runs on test_CT { f_TC_assignment_codec_amr(false, '2015208820'O, '10010101'B, '00010101'B, start_mode := "auto"); + f_shutdown_helper(); } testcase TC_assignment_codec_amr_f_start_mode_4() runs on test_CT { f_TC_assignment_codec_amr(true, '2b9520882208'O, '11111111'B, '00000010'B, start_mode := "4"); + f_shutdown_helper(); } testcase TC_assignment_codec_amr_h_start_mode_4() runs on test_CT { f_TC_assignment_codec_amr(false, '2b15208820'O, '10010101'B, '00010101'B, start_mode := "4"); + f_shutdown_helper(); } private function f_disable_all_tch_f() runs on test_CT { @@ -5090,6 +5096,7 @@ f_ctrs_bsc_and_bts_add(0, "interbsc_ho_in:attempted"); f_ctrs_bsc_and_bts_add(0, "interbsc_ho_in:completed"); f_ctrs_bsc_and_bts_verify(); + f_shutdown_helper(); } testcase TC_ho_into_this_bsc() runs on test_CT { @@ -7896,6 +7903,7 @@ f_sleep(1.0); vc_conn := f_start_handler(refers(f_tc_lcs_loc_req_for_active_ms), pars); vc_conn.done; + f_shutdown_helper(); } /* With an active lchan, start BSSMAP Perform Location Request on A interface, starting BSSMAP-LE Perform Location @@ -7911,6 +7919,7 @@ f_sleep(1.0); vc_conn := f_start_handler(refers(f_tc_lcs_loc_req_for_active_ms_ta_req), pars); vc_conn.done; + f_shutdown_helper(); } /* Clear the A-interface conn only, without doing anything on Abis. Useful for LCS, for cases where there is only an A @@ -8016,6 +8025,7 @@ vc_conn := f_start_handler(refers(f_tc_lcs_loc_req_for_idle_ms), pars); vc_conn.done; + f_shutdown_helper(); } /* With no active lchan, start BSSMAP Perform Location Request on A interface, but omit IMSI; expect failure response. @@ -8055,6 +8065,7 @@ vc_conn := f_start_handler(refers(f_tc_lcs_loc_req_no_subscriber), pars); vc_conn.done; + f_shutdown_helper(); } /* With an active lchan, start a Perform Location Request on the A-interface, but virtual SMLC does not answer with @@ -8106,6 +8117,7 @@ f_sleep(1.0); vc_conn := f_start_handler(refers(f_tc_lcs_loc_req_for_active_ms_le_timeout), pars); vc_conn.done; + f_shutdown_helper(); } /* With an active lchan, start a Perform Location Request on the A-interface, but virtual SMLC does not answer with @@ -8122,6 +8134,7 @@ f_sleep(1.0); vc_conn := f_start_handler(refers(f_tc_lcs_loc_req_for_active_ms_le_timeout2), pars); vc_conn.done; + f_shutdown_helper(); } /* With *no* active lchan, start a Perform Location Request, expecting that the MS will be Paged. */ @@ -8187,6 +8200,7 @@ vc_conn := f_start_handler(refers(f_tc_lcs_loc_req_for_idle_ms_no_pag_resp), pars); vc_conn.done; + f_shutdown_helper(); } /* During an ongoing Location Request, the MS sends a CM Service Request. Expect the same A-conn to be re-used / taken @@ -8246,6 +8260,7 @@ vc_conn := f_start_handler(refers(f_tc_cm_service_during_lcs_loc_req), pars); vc_conn.done; + f_shutdown_helper(); } /* During an ongoing Perform Location Request, do a Handover, an expect a BSSLAP Reset message from the BSC to indicate @@ -8318,6 +8333,7 @@ f_sleep(1.0); vc_conn := f_start_handler(refers(f_tc_ho_during_lcs_loc_req), pars); vc_conn.done; + f_shutdown_helper(); } /* Attempt Complete Layer 3 without any MSC available (OS#4832) */ @@ -8359,6 +8375,7 @@ f_ctrs_bsc_add("mscpool:subscr:no_msc"); f_ctrs_bsc_verify(); + f_shutdown_helper(); } /* Dyn PDCH todo: -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21927 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I1a89e3776d7705d3d54b096ef420b2bbe574ab07 Gerrit-Change-Number: 21927 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 3 17:22:15 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 3 Jan 2021 17:22:15 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BSC_Tests: fix unreachable code after f_shutdown_helper() In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21928 ) Change subject: BSC_Tests: fix unreachable code after f_shutdown_helper() ...................................................................... BSC_Tests: fix unreachable code after f_shutdown_helper() This function does 'mtc.stop', so it must be always called last. Change-Id: If2c991d6ac23e43aafd32814ca17cf2093cb1522 --- M bsc/BSC_Tests.ttcn 1 file changed, 4 insertions(+), 4 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index fe50e06..f72ab22 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -3681,9 +3681,9 @@ vc_conn := f_start_handler(refers(f_TC_assignment_codec), pars); vc_conn.done; - f_shutdown_helper(); f_vty_amr_start_mode_restore(true); + f_shutdown_helper(); } testcase TC_assignment_codec_amr_h() runs on test_CT { @@ -3709,9 +3709,9 @@ vc_conn := f_start_handler(refers(f_TC_assignment_codec), pars); vc_conn.done; - f_shutdown_helper(); f_vty_amr_start_mode_restore(false); + f_shutdown_helper(); } /* 'amr start-mode auto' should not keep the (unused) 'smod' bits from previous configuration */ @@ -3743,11 +3743,11 @@ vc_conn := f_start_handler(refers(f_TC_assignment_codec), pars); vc_conn.done; - f_shutdown_helper(); /* Clear the startmode bits to not affect subsequent tests, in case the bits should indeed stick around. */ f_vty_amr_start_mode_set(true, "1"); f_vty_amr_start_mode_restore(true); + f_shutdown_helper(); } function f_TC_assignment_codec_amr(boolean fr, octetstring mrconf, bitstring s8_s0, bitstring exp_s8_s0, @@ -4257,9 +4257,9 @@ vc_conn := f_start_handler(refers(f_TC_assignment_codec), pars); vc_conn.done; - f_shutdown_helper(); f_vty_amr_start_mode_restore(false); + f_shutdown_helper(); } /* test the procedure of the MSC requesting a Classmark Update: -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21928 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If2c991d6ac23e43aafd32814ca17cf2093cb1522 Gerrit-Change-Number: 21928 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 3 17:22:16 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 3 Jan 2021 17:22:16 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BSC_Tests: drop redundant f_init() in f_test_si2quater() In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21929 ) Change subject: BSC_Tests: drop redundant f_init() in f_test_si2quater() ...................................................................... BSC_Tests: drop redundant f_init() in f_test_si2quater() There is a global boolean flag that would make f_init() return early if it's called twice. This is exactly the case here. Change-Id: Ic33786c4851d2682deec7c22fafb99043c1c1cf6 --- M bsc/BSC_Tests.ttcn 1 file changed, 0 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index f72ab22..4444579 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -2271,8 +2271,6 @@ f_init_bts_and_check_sysinfo(0, expect_si := expect_si); - f_init(1); - if (not istemplatekind(expect_cells, "omit")) { /* Also check that RR Channel Release contains these EARFCNs. * (copied code from TC_chan_rel_hard_clear_csfb) */ -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21929 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ic33786c4851d2682deec7c22fafb99043c1c1cf6 Gerrit-Change-Number: 21929 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 3 17:27:36 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 3 Jan 2021 17:27:36 +0000 Subject: Change in osmo-bsc[master]: smscb: Avoid scheduler array overflow In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21920 ) Change subject: smscb: Avoid scheduler array overflow ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21920 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: If529aa905336a1b9e7a36e931c165df0ba9899ad Gerrit-Change-Number: 21920 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sun, 03 Jan 2021 17:27:36 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 3 17:28:36 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 3 Jan 2021 17:28:36 +0000 Subject: Change in osmo-bsc[master]: smscb: Fix adding of SMSCB messages when no message with lower period... In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21921 ) Change subject: smscb: Fix adding of SMSCB messages when no message with lower period exists ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/21921/1/src/osmo-bsc/smscb.c File src/osmo-bsc/smscb.c: https://gerrit.osmocom.org/c/osmo-bsc/+/21921/1/src/osmo-bsc/smscb.c at 113 PS1, Line 113: inert insert -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21921 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I69a05b22200b3a1ee406b0673553e135603d723b Gerrit-Change-Number: 21921 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sun, 03 Jan 2021 17:28:36 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 3 22:08:34 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 3 Jan 2021 22:08:34 +0000 Subject: Change in osmo-iuh[master]: hnbgw: use OSMO_STRLCPY_ARRAY() instead of open coding it In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-iuh/+/21898 ) Change subject: hnbgw: use OSMO_STRLCPY_ARRAY() instead of open coding it ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-iuh/+/21898 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: master Gerrit-Change-Id: I4c539168597187408c31b906fd57844e0f165c9b Gerrit-Change-Number: 21898 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sun, 03 Jan 2021 22:08:34 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 3 22:08:37 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 3 Jan 2021 22:08:37 +0000 Subject: Change in osmo-iuh[master]: hnbgw: use OSMO_STRLCPY_ARRAY() instead of open coding it In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-iuh/+/21898 ) Change subject: hnbgw: use OSMO_STRLCPY_ARRAY() instead of open coding it ...................................................................... hnbgw: use OSMO_STRLCPY_ARRAY() instead of open coding it Change-Id: I4c539168597187408c31b906fd57844e0f165c9b --- M src/hnbgw.c 1 file changed, 3 insertions(+), 4 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/hnbgw.c b/src/hnbgw.c index f18d2b1..dd157d7 100644 --- a/src/hnbgw.c +++ b/src/hnbgw.c @@ -195,10 +195,9 @@ return NULL; ue->hnb = hnb; - if (imsi) { - strncpy(ue->imsi, imsi, sizeof(ue->imsi)); - ue->imsi[sizeof(ue->imsi)-1] = '\0'; - } else + if (imsi) + OSMO_STRLCPY_ARRAY(ue->imsi, imsi); + else ue->imsi[0] = '\0'; ue->tmsi = tmsi; ue->context_id = get_next_ue_ctx_id(hnb->gw); -- To view, visit https://gerrit.osmocom.org/c/osmo-iuh/+/21898 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: master Gerrit-Change-Id: I4c539168597187408c31b906fd57844e0f165c9b Gerrit-Change-Number: 21898 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 3 22:08:45 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 3 Jan 2021 22:08:45 +0000 Subject: Change in osmo-bsc[master]: smscb: Avoid scheduler array overflow In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21920 ) Change subject: smscb: Avoid scheduler array overflow ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21920 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: If529aa905336a1b9e7a36e931c165df0ba9899ad Gerrit-Change-Number: 21920 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sun, 03 Jan 2021 22:08:45 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 3 22:08:47 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 3 Jan 2021 22:08:47 +0000 Subject: Change in osmo-bsc[master]: smscb: Fix adding of SMSCB messages when no message with lower period... In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21921 ) Change subject: smscb: Fix adding of SMSCB messages when no message with lower period exists ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21921 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I69a05b22200b3a1ee406b0673553e135603d723b Gerrit-Change-Number: 21921 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sun, 03 Jan 2021 22:08:47 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 3 22:09:08 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 3 Jan 2021 22:09:08 +0000 Subject: Change in osmo-bsc[master]: smscb: Fix adding of SMSCB messages when no message with lower period... In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21921 ) Change subject: smscb: Fix adding of SMSCB messages when no message with lower period exists ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/21921/1/src/osmo-bsc/smscb.c File src/osmo-bsc/smscb.c: https://gerrit.osmocom.org/c/osmo-bsc/+/21921/1/src/osmo-bsc/smscb.c at 113 PS1, Line 113: inert > insert Ack -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21921 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I69a05b22200b3a1ee406b0673553e135603d723b Gerrit-Change-Number: 21921 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sun, 03 Jan 2021 22:09:08 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: fixeria Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 3 22:09:30 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 3 Jan 2021 22:09:30 +0000 Subject: Change in osmo-bsc[master]: smscb: Fix adding of SMSCB messages when no message with lower period... In-Reply-To: References: Message-ID: Hello Jenkins Builder, fixeria, pespin, daniel, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bsc/+/21921 to look at the new patch set (#2). Change subject: smscb: Fix adding of SMSCB messages when no message with lower period exists ...................................................................... smscb: Fix adding of SMSCB messages when no message with lower period exists Adding SMSCB messages to a BTS so far only worked if there were existing messages with a lower scheduling period than the new message. Before this patch, it fails for new messages if they are of equal or lower scheduling period than the existing messages. Change-Id: I69a05b22200b3a1ee406b0673553e135603d723b --- M src/osmo-bsc/smscb.c 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/21/21921/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21921 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I69a05b22200b3a1ee406b0673553e135603d723b Gerrit-Change-Number: 21921 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 3 22:09:36 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 3 Jan 2021 22:09:36 +0000 Subject: Change in osmo-bsc[master]: smscb: Fix adding of SMSCB messages when no message with lower period... In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21921 ) Change subject: smscb: Fix adding of SMSCB messages when no message with lower period exists ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21921 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I69a05b22200b3a1ee406b0673553e135603d723b Gerrit-Change-Number: 21921 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sun, 03 Jan 2021 22:09:36 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 3 22:09:40 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 3 Jan 2021 22:09:40 +0000 Subject: Change in osmo-bsc[master]: smscb: Avoid scheduler array overflow In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21920 ) Change subject: smscb: Avoid scheduler array overflow ...................................................................... smscb: Avoid scheduler array overflow This fixes the following heap overflow in the SMSCB scheduler: ==109051==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x60d00003a9a0 at pc 0x55d77e4bedf1 bp 0x7fff8cdc4240 sp 0x7fff8cdc4238 READ of size 8 at 0x60d00003a9a0 thread T0 #0 0x55d77e4bedf0 in bts_smscb_sched_add_before /space/home/laforge/projects/git/osmo-bsc/src/osmo-bsc/cbch_scheduler.c:64 Change-Id: If529aa905336a1b9e7a36e931c165df0ba9899ad --- M src/osmo-bsc/cbch_scheduler.c 1 file changed, 4 insertions(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved fixeria: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/osmo-bsc/cbch_scheduler.c b/src/osmo-bsc/cbch_scheduler.c index 8021804..1bdf5e7 100644 --- a/src/osmo-bsc/cbch_scheduler.c +++ b/src/osmo-bsc/cbch_scheduler.c @@ -60,6 +60,9 @@ OSMO_ASSERT(smscb->num_pages <= ARRAY_SIZE(smscb->page)); OSMO_ASSERT(smscb->num_pages >= 1); + if (last_idx >= sched_arr_size) + return -ERANGE; + for (i = smscb->num_pages - 1; i >= 0; i--) { while (sched_arr[arr_idx]) { arr_idx--; @@ -132,7 +135,7 @@ } last_page = rc; - while (last_page < cstate->sched_arr_size) { + while (last_page + smscb->input.rep_period < cstate->sched_arr_size) { /* store further instances in a way that the last block of the N+1th instance * happens no later than "interval" after the last block of the Nth instance */ rc = bts_smscb_sched_add_before(arr, arr_size, -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21920 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: If529aa905336a1b9e7a36e931c165df0ba9899ad Gerrit-Change-Number: 21920 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 3 22:10:28 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 3 Jan 2021 22:10:28 +0000 Subject: Change in osmo-bts[master]: power_control: add VTY introspection commands for MS/BS params In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21905 ) Change subject: power_control: add VTY introspection commands for MS/BS params ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21905 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I34095673bf49deb390d5e8383c4ee05a6915b82f Gerrit-Change-Number: 21905 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 03 Jan 2021 22:10:28 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 3 22:10:53 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 3 Jan 2021 22:10:53 +0000 Subject: Change in osmo-bsc[master]: power_control: vty: do not print 'no (rxlev-avg|rxqual-avg)' In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21889 ) Change subject: power_control: vty: do not print 'no (rxlev-avg|rxqual-avg)' ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21889 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I585b5bf4fde93d66e47666e0fa9903f21a268b51 Gerrit-Change-Number: 21889 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 03 Jan 2021 22:10:53 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 3 22:10:56 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 3 Jan 2021 22:10:56 +0000 Subject: Change in osmo-bsc[master]: power_control: vty: do not print 'no (rxlev-avg|rxqual-avg)' In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21889 ) Change subject: power_control: vty: do not print 'no (rxlev-avg|rxqual-avg)' ...................................................................... power_control: vty: do not print 'no (rxlev-avg|rxqual-avg)' Presence of these lines in the config file does not necessarily mean that the BTS will not perform measurement pre-processing. It actually means that the BSC would not include the optional IEs related to the measurement pre-processing, so the BTS may still apply its default averaging algorythm with default parameters. In order to avoid potential confusion, let's avoid printing them. Change-Id: I585b5bf4fde93d66e47666e0fa9903f21a268b51 Related: SYS#4918 --- M src/osmo-bsc/bsc_vty.c M tests/power_ctrl.vty 2 files changed, 1 insertion(+), 13 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c index f4d2b82..7a68c3e 100644 --- a/src/osmo-bsc/bsc_vty.c +++ b/src/osmo-bsc/bsc_vty.c @@ -910,7 +910,7 @@ switch (mp->algo) { case GSM_PWR_CTRL_MEAS_AVG_ALGO_NONE: - cfg_out("no %s-avg%s", param, VTY_NEWLINE); + /* Do not print any averaging parameters */ return; /* we're done */ case GSM_PWR_CTRL_MEAS_AVG_ALGO_UNWEIGHTED: cfg_out("%s-avg algo unweighted%s", param, VTY_NEWLINE); diff --git a/tests/power_ctrl.vty b/tests/power_ctrl.vty index 6a47154..021f9df 100644 --- a/tests/power_ctrl.vty +++ b/tests/power_ctrl.vty @@ -10,10 +10,8 @@ step-size inc 4 red 2 rxlev-thresh lower 32 upper 38 rxlev-thresh-comp lower 10 12 upper 19 20 - no rxlev-avg rxqual-thresh lower 3 upper 0 rxqual-thresh-comp lower 5 7 upper 15 18 - no rxqual-avg ... OsmoBSC# ### Check that 'power-ctrl' node and its commands exist @@ -68,10 +66,8 @@ step-size inc 4 red 2 rxlev-thresh lower 32 upper 38 rxlev-thresh-comp lower 10 12 upper 19 20 - no rxlev-avg rxqual-thresh lower 3 upper 0 rxqual-thresh-comp lower 5 7 upper 15 18 - no rxqual-avg ms-power-control mode dyn-bts ... @@ -114,10 +110,8 @@ step-size inc 4 red 2 rxlev-thresh lower 32 upper 38 rxlev-thresh-comp lower 10 12 upper 19 20 - no rxlev-avg rxqual-thresh lower 3 upper 0 rxqual-thresh-comp lower 5 7 upper 15 18 - no rxqual-avg ... OsmoBSC(config-ms-power-ctrl)# bs-power static 30 @@ -188,10 +182,6 @@ ... bs-power-control ... !(rxlev-avg|rxqual-avg) - no rxlev-avg -... !(rxlev-avg|rxqual-avg) - no rxqual-avg -... ms-power-control ... !(rxlev-avg|rxqual-avg) rxlev-avg algo osmo-ewma beta 50 @@ -242,8 +232,6 @@ step-size inc 4 red 2 rxlev-thresh lower 32 upper 38 rxlev-thresh-comp lower 10 12 upper 19 20 - no rxlev-avg rxqual-thresh lower 3 upper 0 rxqual-thresh-comp lower 5 7 upper 15 18 - no rxqual-avg ... -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21889 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I585b5bf4fde93d66e47666e0fa9903f21a268b51 Gerrit-Change-Number: 21889 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 3 22:11:49 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 3 Jan 2021 22:11:49 +0000 Subject: Change in libosmocore[master]: gsm_08_58: add flexible array member to 'struct ipac_preproc_ave_cfg' In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21874 ) Change subject: gsm_08_58: add flexible array member to 'struct ipac_preproc_ave_cfg' ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/21874/1/TODO-RELEASE File TODO-RELEASE: https://gerrit.osmocom.org/c/libosmocore/+/21874/1/TODO-RELEASE at 12 PS1, Line 12: ABI it's not really an ABI change. The struct size is not getting any larger, and hence no binary change. It's a backwards-compatible API change. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21874 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I2f4ed56837dd479dbbd10c0a7df0ed7565d3946a Gerrit-Change-Number: 21874 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 03 Jan 2021 22:11:49 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 3 22:12:44 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 3 Jan 2021 22:12:44 +0000 Subject: Change in libosmocore[master]: gsm_08_58: add flexible array member to 'struct ipac_preproc_ave_cfg' In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21874 ) Change subject: gsm_08_58: add flexible array member to 'struct ipac_preproc_ave_cfg' ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21874 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I2f4ed56837dd479dbbd10c0a7df0ed7565d3946a Gerrit-Change-Number: 21874 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 03 Jan 2021 22:12:44 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 3 22:12:47 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 3 Jan 2021 22:12:47 +0000 Subject: Change in libosmocore[master]: gsm_08_58: add flexible array member to 'struct ipac_preproc_ave_cfg' In-Reply-To: References: Message-ID: laforge has uploaded a new patch set (#2) to the change originally created by fixeria. ( https://gerrit.osmocom.org/c/libosmocore/+/21874 ) Change subject: gsm_08_58: add flexible array member to 'struct ipac_preproc_ave_cfg' ...................................................................... gsm_08_58: add flexible array member to 'struct ipac_preproc_ave_cfg' Some averaging methods may have additional parameters, so let's make it easier to access them for the API user. Change-Id: I2f4ed56837dd479dbbd10c0a7df0ed7565d3946a Related: SYS#4918 --- M TODO-RELEASE M include/osmocom/gsm/protocol/gsm_08_58.h 2 files changed, 3 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/74/21874/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21874 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I2f4ed56837dd479dbbd10c0a7df0ed7565d3946a Gerrit-Change-Number: 21874 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 3 22:12:51 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 3 Jan 2021 22:12:51 +0000 Subject: Change in libosmocore[master]: gsm_08_58: add flexible array member to 'struct ipac_preproc_ave_cfg' In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21874 ) Change subject: gsm_08_58: add flexible array member to 'struct ipac_preproc_ave_cfg' ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21874 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I2f4ed56837dd479dbbd10c0a7df0ed7565d3946a Gerrit-Change-Number: 21874 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 03 Jan 2021 22:12:51 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 3 22:13:34 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 3 Jan 2021 22:13:34 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BSC_Tests: fix expectations in TC_assignment_codec_amr_h_start_mode_4 In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21931 ) Change subject: BSC_Tests: fix expectations in TC_assignment_codec_amr_h_start_mode_4 ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21931 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I791602a0bb56e192c9263982b9f20ac0738281a2 Gerrit-Change-Number: 21931 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Comment-Date: Sun, 03 Jan 2021 22:13:34 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 3 22:13:36 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 3 Jan 2021 22:13:36 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BSC_Tests: fix expectations in TC_assignment_codec_amr_h_start_mode_4 In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21931 ) Change subject: BSC_Tests: fix expectations in TC_assignment_codec_amr_h_start_mode_4 ...................................................................... BSC_Tests: fix expectations in TC_assignment_codec_amr_h_start_mode_4 Change-Id: I791602a0bb56e192c9263982b9f20ac0738281a2 Related: OS#4898 --- M bsc/BSC_Tests.ttcn 1 file changed, 3 insertions(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index 4444579..813c94e 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -3937,13 +3937,15 @@ } testcase TC_assignment_codec_amr_f_start_mode_4() runs on test_CT { + /* "amr tch-f modes 0 2 4 7" => total 4 modes and start mode 4 => '11'B on the wire */ f_TC_assignment_codec_amr(true, '2b9520882208'O, '11111111'B, '00000010'B, start_mode := "4"); f_shutdown_helper(); } testcase TC_assignment_codec_amr_h_start_mode_4() runs on test_CT { - f_TC_assignment_codec_amr(false, '2b15208820'O, '10010101'B, '00010101'B, + /* "amr tch-h modes 0 2 4" => total 3 modes and start mode 4 => '10'B on the wire */ + f_TC_assignment_codec_amr(false, '2a15208820'O, '10010101'B, '00010101'B, start_mode := "4"); f_shutdown_helper(); } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21931 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I791602a0bb56e192c9263982b9f20ac0738281a2 Gerrit-Change-Number: 21931 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 3 22:23:11 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 3 Jan 2021 22:23:11 +0000 Subject: Change in libosmocore[master]: gsm_08_58: add flexible array member to 'struct ipac_preproc_ave_cfg' In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21874 ) Change subject: gsm_08_58: add flexible array member to 'struct ipac_preproc_ave_cfg' ...................................................................... gsm_08_58: add flexible array member to 'struct ipac_preproc_ave_cfg' Some averaging methods may have additional parameters, so let's make it easier to access them for the API user. Change-Id: I2f4ed56837dd479dbbd10c0a7df0ed7565d3946a Related: SYS#4918 --- M TODO-RELEASE M include/osmocom/gsm/protocol/gsm_08_58.h 2 files changed, 3 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/TODO-RELEASE b/TODO-RELEASE index 33e27af..e8fb32b 100644 --- a/TODO-RELEASE +++ b/TODO-RELEASE @@ -9,5 +9,6 @@ #library what description / commit summary line libosmogsm new API gsm0808_create_sapi_reject_cause() with cause argument libosmogsm ABI change struct osmo_gprs_cell_options size changed (new field at the end) +libosmogsm API change struct ipac_preproc_ave_cfg: new zero-sized flexible array member at end libosmovty ABI change struct cmd_element: add a field for program specific attributes libosmovty ABI change struct vty_app_info: optional program specific attributes description diff --git a/include/osmocom/gsm/protocol/gsm_08_58.h b/include/osmocom/gsm/protocol/gsm_08_58.h index 046d358..e9c14e6 100644 --- a/include/osmocom/gsm/protocol/gsm_08_58.h +++ b/include/osmocom/gsm/protocol/gsm_08_58.h @@ -775,10 +775,12 @@ reserved:1; uint8_t h_reqt:5, ave_method:3; + uint8_t params[0]; #elif OSMO_IS_BIG_ENDIAN /* auto-generated from the little endian part above (libosmocore/contrib/struct_endianess.py) */ uint8_t reserved:1, param_id:2, h_reqave:5; uint8_t ave_method:3, h_reqt:5; + uint8_t params[0]; #endif }__attribute__ ((packed)); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21874 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I2f4ed56837dd479dbbd10c0a7df0ed7565d3946a Gerrit-Change-Number: 21874 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 3 22:24:12 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Sun, 3 Jan 2021 22:24:12 +0000 Subject: Change in osmo-pcu[master]: Convert GprsMS and helpers classes to C In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21748 ) Change subject: Convert GprsMS and helpers classes to C ...................................................................... Patch Set 6: I plan to merge this soon since it's been with +1 for 2 weeks. -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21748 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I0b50e3367aaad9dcada76da97b438e452c8b230c Gerrit-Change-Number: 21748 Gerrit-PatchSet: 6 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 03 Jan 2021 22:24:12 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 3 23:30:28 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 3 Jan 2021 23:30:28 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BSC_Tests: fix f_recv_next_si1(): skip unmatched RSL messages References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21932 ) Change subject: BSC_Tests: fix f_recv_next_si1(): skip unmatched RSL messages ...................................................................... BSC_Tests: fix f_recv_next_si1(): skip unmatched RSL messages Since Idb453fc894584ccf4f5f8b45a24421db958e9478, osmo-bsc does send ip.access specific Measurement Pre-Processing Defaults. This message currently blocks the 'alt' statement in f_recv_next_si1(), so all test cases calling it fail due to the guard timeout. What's even worse, both TC_si_acc_rotate() and TC_si_acc_ramp_rotate() dynamically configure the IUT in order to re-generate and send System Information messages periodically. If any of them fails prematurely, the related configuration parameters would remain active, so the IUT would continue sending System Information messages, causing failures in subsequent test cases. Let's simply ignore all unmatched messages in the 'alt' statement. Change-Id: I1a85a046e1a8ebcd494354dddcbcc9707fdf5ee9 --- M bsc/BSC_Tests.ttcn 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/32/21932/1 diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index 813c94e..a1fa4dd 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -2458,6 +2458,7 @@ g_system_information[rsl_idx].si1 := omit; T.stop; } + [] IPA_RSL[rsl_idx].receive { repeat; } [] T.timeout { setverdict(fail, "Timeout receiving next SI1"); } } return last_si1; -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21932 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I1a85a046e1a8ebcd494354dddcbcc9707fdf5ee9 Gerrit-Change-Number: 21932 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Mon Jan 4 01:35:14 2021 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jan 2021 01:35:14 +0000 Subject: Build failure of network:osmocom:nightly/open5gs in Debian_10/i586 In-Reply-To: References: Message-ID: <5ff270dfb4209_59872af9dc0645f43037939@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/open5gs/Debian_10/i586 Package network:osmocom:nightly/open5gs failed to build in Debian_10/i586 Check out the package for editing: osc checkout network:osmocom:nightly open5gs Last lines of build log: [ 137s] [2540/2540] cc -o tests/handover/handover 'tests/handover/63da1a3@@handover at exe/abts-main.c.o' 'tests/handover/63da1a3@@handover at exe/epc-x2-test.c.o' 'tests/handover/63da1a3@@handover at exe/epc-s1-test.c.o' 'tests/handover/63da1a3@@handover at exe/5gc-xn-test.c.o' -Wl,--no-undefined -Wl,--as-needed -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z,relro -Wl,-z,now -Wl,--start-group tests/app/libtestapp.a tests/common/libtestcomon.a lib/core/libogscore.so.2.1.1 lib/app/libogsapp.so.2.1.1 lib/dbi/libogsdbi.so.2.1.1 lib/crypt/libogscrypt.so.2.1.1 lib/sctp/libogssctp.so.2.1.1 lib/gtp/libogsgtp.so.2.1.1 lib/s1ap/libogss1ap.so.2.1.1 lib/asn1c/s1ap/libogsasn1c-s1ap.so.2.1.1 lib/asn1c/common/libogsasn1c-common.so.2.1.1 lib/asn1c/util/libogsasn1c-util.so.2.1.1 lib/ngap/libogsngap.so.2.1.1 lib/asn1c/ngap/libogsasn1c-ngap.so.2.1.1 lib/nas/eps/libogsnas-eps.so.2.1.1 lib/nas/common/libogsnas-common.so.2.1.1 lib/nas/5gs/libogsnas-5gs.so.2.1.1 lib/diameter/rx/libogsdiameter-rx.so.2.1.1 lib/diameter/common/libogsdiameter-common.so.2.1.1 subprojects/freeDiameter/libfdcore/libfdcore.so.1.3.2 subprojects/freeDiameter/libfdproto/libfdproto.so.1.3.2 /usr/lib/i386-linux-gnu/libyaml.so /usr/lib/gcc/i686-linux-gnu/8/../../../i386-linux-gnu/libmongoc-1.0.so /usr/lib/gcc/i686-linux-gnu/8/../../../i386-linux-gnu/libbson-1.0.so -lsctp -lidn -ldl -lsctp -lgcrypt -lgnutls -lsctp -lidn -ldl -lsctp -lgcrypt -lgnutls -lsctp -lidn -ldl -lsctp -lgcrypt -lgnutls -Wl,--end-group -pthread '-Wl,-rpath,$ORIGIN/../app:$ORIGIN/../common:$ORIGIN/../../lib/core:$ORIGIN/../../lib/app:$ORIGIN/../../lib/dbi:$ORIGIN/../../lib/crypt:$ORIGIN/../../lib/sctp:$ORIGIN/../../lib/gtp:$ORIGIN/../../lib/s1ap:$ORIGIN/../../lib/asn1c/s1ap:$ORIGIN/../../lib/asn1c/common:$ORIGIN/../../lib/asn1c/util:$ORIGIN/../../lib/ngap:$ORIGIN/../../lib/asn1c/ngap:$ORIGIN/../../lib/nas/eps:$ORIGIN/../../lib/nas/common:$ORIGIN/../../lib/nas/5gs:$ORIGIN/../../lib/diameter/rx:$ORIGIN/../../lib/diameter/common:$ORIGIN/../../subprojects/freeDiameter/libfdcore:$ORIGIN/../../subprojects/freeDiameter/libfdproto' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-i686-linux-gnu/tests/app:/usr/src/packages/BUILD/obj-i686-linux-gnu/tests/common:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/core:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/app:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/dbi:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/crypt:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/sctp:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/gtp:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/s1ap:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/asn1c/s1ap:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/asn1c/common:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/asn1c/util:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/ngap:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/asn1c/ngap:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/nas/eps:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/nas/common:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/nas/5gs:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/diameter/rx:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/diameter/common:/usr/src/packages/BUILD/obj-i686-linux-gnu/subprojects/freeDiameter/libfdcore:/usr/src/packages/BUILD/obj-i686-linux-gnu/subprojects/freeDiameter/libfdproto [ 137s] debian/rules override_dh_auto_test [ 137s] make[1]: Entering directory '/usr/src/packages/BUILD' [ 137s] cd obj-i686-linux-gnu && meson test --suite unit [ 138s] ninja: Entering directory `/usr/src/packages/BUILD/obj-i686-linux-gnu' [ 138s] ninja: no work to do. [ 145s] 1/3 open5gs:unit / core OK 6.75 s [ 145s] 2/3 open5gs:unit / crypt OK 0.12 s [ 145s] 3/3 open5gs:unit / unit FAIL 0.03 s (exit status 1) [ 145s] [ 145s] Ok: 2 [ 145s] Expected Fail: 0 [ 145s] Fail: 1 [ 145s] Unexpected Pass: 0 [ 145s] Skipped: 0 [ 145s] Timeout: 0 [ 145s] [ 145s] Full log written to /usr/src/packages/BUILD/obj-i686-linux-gnu/meson-logs/testlog.txt [ 145s] make[1]: *** [debian/rules:17: override_dh_auto_test] Error 1 [ 145s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 145s] make: *** [debian/rules:11: binary] Error 2 [ 145s] dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 [ 145s] ### VM INTERACTION START ### [ 149s] [ 141.296413] sysrq: Power Off [ 149s] [ 141.320396] reboot: Power down [ 149s] ### VM INTERACTION END ### [ 149s] [ 149s] goat17 failed "build open5gs_2.1.1.20210104.dsc" at Mon Jan 4 01:35:00 UTC 2021. [ 149s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jan 4 01:43:31 2021 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jan 2021 01:43:31 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <5ff272e1e03ca_59872af9dc0645f43038789@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/xUbuntu_20.04/x86_64 Package network:osmocom:nightly/simtrace2 failed to build in xUbuntu_20.04/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 119s] [COMPILING libboard/qmod/source/wwan_perst.c] [ 119s] [COMPILING libboard/qmod/source/card_pres.c] [ 120s] [COMPILING libboard/qmod/source/wwan_led.c] [ 120s] [COMPILING libboard/qmod/source/i2c.c] [ 120s] [COMPILING libboard/qmod/source/board_qmod.c] [ 120s] [COMPILING apps/dfu/main.c] [ 120s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 120s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 120s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 120s] Memory region Used Size Region Size %age Used [ 120s] rom: 16588 B 16 KB 101.25% [ 120s] ram: 11672 B 48 KB 23.75/usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 120s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 204 bytes [ 120s] collect2: error: ld returned 1 exit status [ 120s] % [ 120s] make[2]: *** [Makefile:234: flash] Error 1 [ 120s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 120s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 120s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 120s] dh_auto_build: error: make -j1 returned exit code 2 [ 120s] make: *** [debian/rules:16: build] Error 25 [ 120s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 120s] ### VM INTERACTION START ### [ 123s] [ 114.844830] sysrq: Power Off [ 123s] [ 114.853871] reboot: Power down [ 123s] ### VM INTERACTION END ### [ 123s] [ 123s] sheep81 failed "build simtrace2_0.7.0.69.aadd.dsc" at Mon Jan 4 01:43:28 UTC 2021. [ 123s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jan 4 01:44:57 2021 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jan 2021 01:44:57 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.10/x86_64 In-Reply-To: References: Message-ID: <5ff2731ca55ae_59872af9dc0645f4303888e@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/xUbuntu_20.10/x86_64 Package network:osmocom:nightly/simtrace2 failed to build in xUbuntu_20.10/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 163s] [COMPILING apps/dfu/main.c] [ 164s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 164s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 164s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 164s] Memory region Used Size Region Size %age Used [ 164s] rom: 16580 B 16 KB 101.20% [ 164s] ram: 11672 B 48 KB 23.75/usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 164s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 164s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 164s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 164s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 164s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 164s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 196 bytes [ 164s] collect2: error: ld returned 1 exit status [ 164s] % [ 164s] make[2]: *** [Makefile:234: flash] Error 1 [ 164s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 164s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 164s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 164s] dh_auto_build: error: make -j1 returned exit code 2 [ 164s] make: *** [debian/rules:16: build] Error 25 [ 164s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 164s] ### VM INTERACTION START ### [ 167s] [ 153.426328] sysrq: Power Off [ 167s] [ 153.438763] reboot: Power down [ 167s] ### VM INTERACTION END ### [ 167s] [ 167s] lamb52 failed "build simtrace2_0.7.0.69.aadd.dsc" at Mon Jan 4 01:44:40 UTC 2021. [ 167s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jan 4 02:43:44 2021 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jan 2021 02:43:44 +0000 Subject: Build failure of network:osmocom:nightly/osmocom-nightly in Debian_9.0/armv7l In-Reply-To: References: Message-ID: <5ff280f7f1c16_59872af9dc0645f43049495@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmocom-nightly/Debian_9.0/armv7l Package network:osmocom:nightly/osmocom-nightly failed to build in Debian_9.0/armv7l Check out the package for editing: osc checkout network:osmocom:nightly osmocom-nightly Last lines of build log: [ 0s] [ 0s] armbuild04 started "build osmocom-nightly_0.0.0.20210104.dsc" at Mon Jan 4 02:43:23 UTC 2021. [ 0s] [ 0s] Building osmocom-nightly for project 'network:osmocom:nightly' repository 'Debian_9.0' arch 'armv7l' srcmd5 '84c1432e6a697504b0391ff5c2651dba' [ 0s] [ 0s] processing recipe /var/cache/obs/worker/root_3/.build-srcdir/osmocom-nightly_0.0.0.20210104.dsc ... [ 0s] running changelog2spec --target debian --file /var/cache/obs/worker/root_3/.build-srcdir/osmocom-nightly_0.0.0.20210104.dsc [ 0s] init_buildsystem --configdir /var/run/obs/worker/3/build/configs --cachedir /var/cache/build --prepare --clean --rpmlist /var/cache/obs/worker/root_3/.build.rpmlist /var/cache/obs/worker/root_3/.build-srcdir/osmocom-nightly_0.0.0.20210104.dsc build ... [ 0s] unknown keyword in config: [ 0s] could not autodetect package type [ 0s] [ 0s] armbuild04 failed "build osmocom-nightly_0.0.0.20210104.dsc" at Mon Jan 4 02:43:23 UTC 2021. [ 0s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jan 4 03:11:27 2021 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jan 2021 03:11:27 +0000 Subject: Build failure of network:osmocom:nightly/libusrp in Raspbian_10/armv7l In-Reply-To: References: Message-ID: <5ff2876e72583_59872af9dc0645f430556dc@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libusrp/Raspbian_10/armv7l Package network:osmocom:nightly/libusrp failed to build in Raspbian_10/armv7l Check out the package for editing: osc checkout network:osmocom:nightly libusrp Last lines of build log: [ 0s] [ 0s] armbuild04 started "build libusrp_3.4.5.dsc" at Mon Jan 4 03:11:10 UTC 2021. [ 0s] [ 0s] Building libusrp for project 'network:osmocom:nightly' repository 'Raspbian_10' arch 'armv7l' srcmd5 '111ed211a2c2065414884c78389778fb' [ 0s] [ 0s] processing recipe /var/cache/obs/worker/root_3/.build-srcdir/libusrp_3.4.5.dsc ... [ 0s] running changelog2spec --target debian --file /var/cache/obs/worker/root_3/.build-srcdir/libusrp_3.4.5.dsc [ 0s] init_buildsystem --configdir /var/run/obs/worker/3/build/configs --cachedir /var/cache/build --prepare --clean --rpmlist /var/cache/obs/worker/root_3/.build.rpmlist /var/cache/obs/worker/root_3/.build-srcdir/libusrp_3.4.5.dsc build ... [ 1s] unknown keyword in config: [ 1s] could not autodetect package type [ 1s] [ 1s] armbuild04 failed "build libusrp_3.4.5.dsc" at Mon Jan 4 03:11:11 UTC 2021. [ 1s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jan 4 07:24:40 2021 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jan 2021 07:24:40 +0000 Subject: Build failure of network:osmocom:nightly/neocon in Raspbian_10/armv7l In-Reply-To: References: Message-ID: <5ff2c2d718557_59872af9dc0645f4309071f@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/neocon/Raspbian_10/armv7l Package network:osmocom:nightly/neocon failed to build in Raspbian_10/armv7l Check out the package for editing: osc checkout network:osmocom:nightly neocon Last lines of build log: [ 0s] [ 0s] armbuild04 started "build neocon_1.0.1.20210104.dsc" at Mon Jan 4 07:24:33 UTC 2021. [ 0s] [ 0s] Building neocon for project 'network:osmocom:nightly' repository 'Raspbian_10' arch 'armv7l' srcmd5 '742d83e45e544b28da8ded7df159e4de' [ 0s] [ 0s] processing recipe /var/cache/obs/worker/root_1/.build-srcdir/neocon_1.0.1.20210104.dsc ... [ 0s] running changelog2spec --target debian --file /var/cache/obs/worker/root_1/.build-srcdir/neocon_1.0.1.20210104.dsc [ 0s] init_buildsystem --configdir /var/run/obs/worker/1/build/configs --cachedir /var/cache/build --prepare --clean --rpmlist /var/cache/obs/worker/root_1/.build.rpmlist /var/cache/obs/worker/root_1/.build-srcdir/neocon_1.0.1.20210104.dsc build ... [ 1s] unknown keyword in config: [ 1s] could not autodetect package type [ 1s] [ 1s] armbuild04 failed "build neocon_1.0.1.20210104.dsc" at Mon Jan 4 07:24:34 UTC 2021. [ 1s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jan 4 07:40:06 2021 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jan 2021 07:40:06 +0000 Subject: Build failure of network:osmocom:nightly/neocon in Debian_10/armv7l In-Reply-To: References: Message-ID: <5ff2c65977ec6_59872af9dc0645f430947e3@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/neocon/Debian_10/armv7l Package network:osmocom:nightly/neocon failed to build in Debian_10/armv7l Check out the package for editing: osc checkout network:osmocom:nightly neocon Last lines of build log: [ 0s] [ 0s] armbuild04 started "build neocon_1.0.1.20210104.dsc" at Mon Jan 4 07:39:57 UTC 2021. [ 0s] [ 0s] Building neocon for project 'network:osmocom:nightly' repository 'Debian_10' arch 'armv7l' srcmd5 '742d83e45e544b28da8ded7df159e4de' [ 0s] [ 0s] processing recipe /var/cache/obs/worker/root_1/.build-srcdir/neocon_1.0.1.20210104.dsc ... [ 0s] running changelog2spec --target debian --file /var/cache/obs/worker/root_1/.build-srcdir/neocon_1.0.1.20210104.dsc [ 0s] init_buildsystem --configdir /var/run/obs/worker/1/build/configs --cachedir /var/cache/build --prepare --clean --rpmlist /var/cache/obs/worker/root_1/.build.rpmlist /var/cache/obs/worker/root_1/.build-srcdir/neocon_1.0.1.20210104.dsc build ... [ 0s] unknown keyword in config: [ 0s] could not autodetect package type [ 0s] [ 0s] armbuild04 failed "build neocon_1.0.1.20210104.dsc" at Mon Jan 4 07:39:57 UTC 2021. [ 0s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jan 4 07:40:23 2021 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jan 2021 07:40:23 +0000 Subject: Build failure of network:osmocom:nightly/osmo-fl2k in Debian_9.0/armv7l In-Reply-To: References: Message-ID: <5ff2c67ae1d1a_59872af9dc0645f430949b2@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-fl2k/Debian_9.0/armv7l Package network:osmocom:nightly/osmo-fl2k failed to build in Debian_9.0/armv7l Check out the package for editing: osc checkout network:osmocom:nightly osmo-fl2k Last lines of build log: [ 0s] [ 0s] armbuild04 started "build osmo-fl2k_0.1.1.28.197f.dsc" at Mon Jan 4 07:40:17 UTC 2021. [ 0s] [ 0s] Building osmo-fl2k for project 'network:osmocom:nightly' repository 'Debian_9.0' arch 'armv7l' srcmd5 '45e4eee3a62e6740a994db9fe2ca7a0d' [ 0s] [ 0s] processing recipe /var/cache/obs/worker/root_1/.build-srcdir/osmo-fl2k_0.1.1.28.197f.dsc ... [ 0s] running changelog2spec --target debian --file /var/cache/obs/worker/root_1/.build-srcdir/osmo-fl2k_0.1.1.28.197f.dsc [ 0s] init_buildsystem --configdir /var/run/obs/worker/1/build/configs --cachedir /var/cache/build --prepare --clean --rpmlist /var/cache/obs/worker/root_1/.build.rpmlist /var/cache/obs/worker/root_1/.build-srcdir/osmo-fl2k_0.1.1.28.197f.dsc build ... [ 0s] unknown keyword in config: [ 0s] could not autodetect package type [ 0s] [ 0s] armbuild04 failed "build osmo-fl2k_0.1.1.28.197f.dsc" at Mon Jan 4 07:40:17 UTC 2021. [ 0s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jan 4 07:52:23 2021 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jan 2021 07:52:23 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcap in Debian_10/armv7l In-Reply-To: References: Message-ID: <5ff2c9458ebdf_59872af9dc0645f43097047@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-pcap/Debian_10/armv7l Package network:osmocom:nightly/osmo-pcap failed to build in Debian_10/armv7l Check out the package for editing: osc checkout network:osmocom:nightly osmo-pcap Last lines of build log: [ 0s] [ 0s] armbuild04 started "build osmo-pcap_0.1.2.7.716a.dsc" at Mon Jan 4 07:52:11 UTC 2021. [ 0s] [ 0s] Building osmo-pcap for project 'network:osmocom:nightly' repository 'Debian_10' arch 'armv7l' srcmd5 '2524b89d1aa3dabb095908ccfd5fdebc' [ 0s] [ 0s] processing recipe /var/cache/obs/worker/root_1/.build-srcdir/osmo-pcap_0.1.2.7.716a.dsc ... [ 0s] running changelog2spec --target debian --file /var/cache/obs/worker/root_1/.build-srcdir/osmo-pcap_0.1.2.7.716a.dsc [ 0s] init_buildsystem --configdir /var/run/obs/worker/1/build/configs --cachedir /var/cache/build --prepare --clean --rpmlist /var/cache/obs/worker/root_1/.build.rpmlist /var/cache/obs/worker/root_1/.build-srcdir/osmo-pcap_0.1.2.7.716a.dsc build ... [ 1s] unknown keyword in config: [ 1s] could not autodetect package type [ 1s] [ 1s] armbuild04 failed "build osmo-pcap_0.1.2.7.716a.dsc" at Mon Jan 4 07:52:12 UTC 2021. [ 1s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Mon Jan 4 09:17:30 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 4 Jan 2021 09:17:30 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: add handling for BSSGP RIM primitives In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21722 ) Change subject: gprs_bssgp: add handling for BSSGP RIM primitives ...................................................................... Patch Set 6: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21722 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Idfd0a65872a2cc6089885afd8d31b0b029d85d47 Gerrit-Change-Number: 21722 Gerrit-PatchSet: 6 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 04 Jan 2021 09:17:30 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 09:18:39 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 4 Jan 2021 09:18:39 +0000 Subject: Change in libosmocore[master]: gsm_08_18: add struct to parse RIM PDU Indications In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21861 ) Change subject: gsm_08_18: add struct to parse RIM PDU Indications ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/21861/1/include/osmocom/gprs/protocol/gsm_08_18.h File include/osmocom/gprs/protocol/gsm_08_18.h: https://gerrit.osmocom.org/c/libosmocore/+/21861/1/include/osmocom/gprs/protocol/gsm_08_18.h at 355 PS1, Line 355: #define RIM_PDU_TYPE_STOP 0 enum? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21861 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I781ab838bd02ac1b13d384ce3f4259e26cedb61e Gerrit-Change-Number: 21861 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 04 Jan 2021 09:18:39 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 09:33:03 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 4 Jan 2021 09:33:03 +0000 Subject: Change in libosmocore[master]: bssgp_rim: add encoder/decoder for NACC related RIM containers In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21862 ) Change subject: bssgp_rim: add encoder/decoder for NACC related RIM containers ...................................................................... Patch Set 5: (9 comments) YOu need to resolve the merging conflicts. Some of my comments are not really hardlines, just some ideas to improve the code. https://gerrit.osmocom.org/c/libosmocore/+/21862/5/include/osmocom/gprs/gprs_bssgp_rim.h File include/osmocom/gprs/gprs_bssgp_rim.h: https://gerrit.osmocom.org/c/libosmocore/+/21862/5/include/osmocom/gprs/gprs_bssgp_rim.h at 13 PS5, Line 13: const uint8_t *app_cont; is this a pointer to struct bssgp_ran_inf_rim_cont ? https://gerrit.osmocom.org/c/libosmocore/+/21862/5/include/osmocom/gprs/gprs_bssgp_rim.h at 73 PS5, Line 73: uint8_t app_id; I see lots of structs sharing half of the fields. What about adding a HDR struct or alike? Even better, one struct with a union handling different msg types. It may also make sense to write it in primitive<->msgb alike code like we do in other protocol stacks. https://gerrit.osmocom.org/c/libosmocore/+/21862/5/src/gb/gprs_bssgp_rim.c File src/gb/gprs_bssgp_rim.c: https://gerrit.osmocom.org/c/libosmocore/+/21862/5/src/gb/gprs_bssgp_rim.c at 32 PS5, Line 32: #define DEC_RIM_CONT_COMMON \ this looks more like a function tbh. https://gerrit.osmocom.org/c/libosmocore/+/21862/5/src/gb/gprs_bssgp_rim.c at 51 PS5, Line 51: #define ENC_RIM_CONT_COMMON \ same, would be a lot clearer (to read and ebug) having a static function. Let the compiler decide whether to inline or not. https://gerrit.osmocom.org/c/libosmocore/+/21862/5/src/gb/gprs_bssgp_rim.c at 68 PS5, Line 68: memset(cont, 0, sizeof(*cont)); this memset not needed afaict. https://gerrit.osmocom.org/c/libosmocore/+/21862/5/src/gb/gprs_bssgp_rim.c at 106 PS5, Line 106: ENC_RIM_CONT_COMMON if (enc_rim_cont_common(cont) < 0) return -EINVAL; https://gerrit.osmocom.org/c/libosmocore/+/21862/5/src/gb/gprs_bssgp_rim.c at 127 PS5, Line 127: memset(cont, 0, sizeof(*cont)); memset not needed afaict https://gerrit.osmocom.org/c/libosmocore/+/21862/5/src/gb/gprs_bssgp_rim.c at 288 PS5, Line 288: } else coding sytle: else clause shoudl also have brackets if "if" clause have them. https://gerrit.osmocom.org/c/libosmocore/+/21862/5/src/gb/gprs_bssgp_rim.c at 514 PS5, Line 514: return (int)(buf_ptr - buf); You may need to cast this through intptr_t to avoid warnings. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21862 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ibbc7fd67658e3040c12abb5706fe9d1f31894352 Gerrit-Change-Number: 21862 Gerrit-PatchSet: 5 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 04 Jan 2021 09:33:03 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 09:33:48 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 4 Jan 2021 09:33:48 +0000 Subject: Change in libosmocore[master]: bssgp_rim: move bssgp_parse_rim_ri and bssgp_create_rim_ri to gprs_bs... In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21863 ) Change subject: bssgp_rim: move bssgp_parse_rim_ri and bssgp_create_rim_ri to gprs_bssgp_rim ...................................................................... Patch Set 5: Code-Review+1 Needs rebasing. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21863 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Icd667f41d5735de56cd9fb257670337c679dd258 Gerrit-Change-Number: 21863 Gerrit-PatchSet: 5 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 04 Jan 2021 09:33:48 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 09:34:34 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 4 Jan 2021 09:34:34 +0000 Subject: Change in libosmocore[master]: gprs_bssgp_rim: fix problem with uninitalized in bssgp_create_rim_ri() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21864 ) Change subject: gprs_bssgp_rim: fix problem with uninitalized in bssgp_create_rim_ri() ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21864 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Id92c3ae86016ef6000127fbef223276b250c2e97 Gerrit-Change-Number: 21864 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 04 Jan 2021 09:34:34 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 09:38:45 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 4 Jan 2021 09:38:45 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Osmocom_Gb_types: add RIM templates In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21587 ) Change subject: Osmocom_Gb_types: add RIM templates ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21587 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ic495e0bb6ceb2b65cbc7c3da7ee519a013aede55 Gerrit-Change-Number: 21587 Gerrit-PatchSet: 4 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 04 Jan 2021 09:38:45 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 09:43:00 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 4 Jan 2021 09:43:00 +0000 Subject: Change in osmo-ttcn3-hacks[master]: SGSN_Tests: test RIM message passing In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21735 ) Change subject: SGSN_Tests: test RIM message passing ...................................................................... Patch Set 2: (1 comment) I find a bit strange there's no update in osmo-sgsn.cfg. Shouldn't you be setting that new BSSGP conn somehow? https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21735/2/sgsn/SGSN_Tests.ttcn File sgsn/SGSN_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21735/2/sgsn/SGSN_Tests.ttcn at 175 PS2, Line 175: port BSSGP_PT RIM[NUM_GB]; Why not have this into BSSGP_ConnHdlr ? -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21735 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If0ab08dcdc28819740cc07fd4dc1fea47ba10843 Gerrit-Change-Number: 21735 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 04 Jan 2021 09:43:00 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 09:48:29 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 4 Jan 2021 09:48:29 +0000 Subject: Change in osmo-bsc[master]: power_control: add documentation on available configuration params In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21886 ) Change subject: power_control: add documentation on available configuration params ...................................................................... Patch Set 1: Code-Review+1 LGTM once jenkins job is fixed. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21886 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ib65d33f0f1dd24d39e3be581e4e072a310bc906a Gerrit-Change-Number: 21886 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 04 Jan 2021 09:48:29 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 09:50:40 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 4 Jan 2021 09:50:40 +0000 Subject: Change in osmo-bsc[master]: power_control: add increase / reduce step size recommendations In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21873 ) Change subject: power_control: add increase / reduce step size recommendations ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21873 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I82e762c0c2b5e0dd739850ee494ab0a798e353de Gerrit-Change-Number: 21873 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 04 Jan 2021 09:50:40 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 09:52:47 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 4 Jan 2021 09:52:47 +0000 Subject: Change in osmo-gsm-tester[master]: Introduce Android UEs as new modems In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21302 ) Change subject: Introduce Android UEs as new modems ...................................................................... Patch Set 6: Can you rebase your patch on top of current master and push it again? -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21302 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-Change-Id: I79a5d803e869a868d4dac5e0d4c2feb38038dc5c Gerrit-Change-Number: 21302 Gerrit-PatchSet: 6 Gerrit-Owner: ninjab3s Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 04 Jan 2021 09:52:47 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 10:00:32 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 4 Jan 2021 10:00:32 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Add config option to name an SGSN In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21882 ) Change subject: gbproxy: Add config option to name an SGSN ...................................................................... Patch Set 2: (4 comments) https://gerrit.osmocom.org/c/osmo-sgsn/+/21882/2/src/gbproxy/gb_proxy.c File src/gbproxy/gb_proxy.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/21882/2/src/gbproxy/gb_proxy.c at 224 PS2, Line 224: LOGPS > do we want this as NOTICE? Even the existing "INFO" might be high fro something that has the potenti [?] Does this logic of sending to first SGSN make sense anyway? Can it happen that we have no TLLI? in any case, this change seems not related to this patch. https://gerrit.osmocom.org/c/osmo-sgsn/+/21882/2/src/gbproxy/gb_proxy.c at 230 PS2, Line 230: i > is this change related to SGSN naming? Ack https://gerrit.osmocom.org/c/osmo-sgsn/+/21882/2/src/gbproxy/gb_proxy.c at 233 PS2, Line 233: sgsn = llist_first_entry(&cfg->sgsns, struct gbproxy_sgsn, list); This all looks like a separate patch imho. https://gerrit.osmocom.org/c/osmo-sgsn/+/21882/2/src/gbproxy/gb_proxy.c at 300 PS2, Line 300: DEBUGP(DGPRS, "CELL(%05u) using SGSN %s at NSE(%05u)\n", cell->bvci, sgsn->name, sgsn->nse->nsei); why not using LOGPSGSN here? -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21882 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I2a3410dd9bebb242957e13a63ed70e447204203c Gerrit-Change-Number: 21882 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 04 Jan 2021 10:00:32 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: laforge Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 10:02:24 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 4 Jan 2021 10:02:24 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Add VTY command to override the node selection function In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21883 ) Change subject: gbproxy: Add VTY command to override the node selection function ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-sgsn/+/21883/2/src/gbproxy/gb_proxy_peer.c File src/gbproxy/gb_proxy_peer.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/21883/2/src/gbproxy/gb_proxy_peer.c at 515 PS2, Line 515: LOG > ERROR level log message for something that happens with every user plane message? Yes, it's a hidden [?] agree with laforge. INFO or DEBUG. -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21883 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I2894320413dbd0b9aec9a9bc9b88ce7cdeed206b Gerrit-Change-Number: 21883 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 04 Jan 2021 10:02:24 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: laforge Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 10:05:48 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 4 Jan 2021 10:05:48 +0000 Subject: Change in osmo-iuh[master]: hnbgw: Introduce LOGHNB() macro for log context information In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-iuh/+/21899 ) Change subject: hnbgw: Introduce LOGHNB() macro for log context information ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-iuh/+/21899 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: master Gerrit-Change-Id: I6113925216c6f88add2c6d27bdf47ccbb017f293 Gerrit-Change-Number: 21899 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 04 Jan 2021 10:05:48 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 10:10:04 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 4 Jan 2021 10:10:04 +0000 Subject: Change in osmo-iuh[master]: hnbgw: Use LOGHNB() to add log context information to log lines In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-iuh/+/21900 ) Change subject: hnbgw: Use LOGHNB() to add log context information to log lines ...................................................................... Patch Set 1: (2 comments) https://gerrit.osmocom.org/c/osmo-iuh/+/21900/1/src/context_map.c File src/context_map.c: https://gerrit.osmocom.org/c/osmo-iuh/+/21900/1/src/context_map.c at 128 PS1, Line 128: LOGP(DMAIN, LOGL_NOTICE, "Unable to resolve map for CN " "connection ID %p/%u\n", cn, scu_conn_id); if you put it in the same line you don't need to split the string in 2. https://gerrit.osmocom.org/c/osmo-iuh/+/21900/1/src/hnbgw.c File src/hnbgw.c: https://gerrit.osmocom.org/c/osmo-iuh/+/21900/1/src/hnbgw.c at 277 PS1, Line 277: struct hnb_context *hnb_context_alloc(struct hnb_gw *gw, struct osmo_stream_srv_link *link, int new_fd) I see there's hnbg_context and hnb_gw, so it may make sense to call the macro LOGHNBCTX, up to you. -- To view, visit https://gerrit.osmocom.org/c/osmo-iuh/+/21900 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: master Gerrit-Change-Id: Ia16eed4ca5e9ef231259e94c65105f7586f366bc Gerrit-Change-Number: 21900 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 04 Jan 2021 10:10:04 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 10:14:52 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 4 Jan 2021 10:14:52 +0000 Subject: Change in osmo-bts[master]: power_control: check-in new parameters and default values In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21904 ) Change subject: power_control: check-in new parameters and default values ...................................................................... Patch Set 1: I'm not really understanding this commit. It's just adding some structs for new pwr ctrl algo which are not really used yet? -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21904 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I6d41eb238aa6d4f5b77596c5477c2ecbe86de2a8 Gerrit-Change-Number: 21904 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 04 Jan 2021 10:14:52 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 10:17:57 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 4 Jan 2021 10:17:57 +0000 Subject: Change in osmo-bts[master]: power_control: add VTY introspection commands for MS/BS params In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21905 ) Change subject: power_control: add VTY introspection commands for MS/BS params ...................................................................... Patch Set 2: Code-Review+1 I'd really squash all these pieces you are ading into the same commit. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21905 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I34095673bf49deb390d5e8383c4ee05a6915b82f Gerrit-Change-Number: 21905 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 04 Jan 2021 10:17:57 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 10:20:02 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 4 Jan 2021 10:20:02 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BSC_Tests: fix f_recv_next_si1(): skip unmatched RSL messages In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21932 ) Change subject: BSC_Tests: fix f_recv_next_si1(): skip unmatched RSL messages ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21932 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I1a85a046e1a8ebcd494354dddcbcc9707fdf5ee9 Gerrit-Change-Number: 21932 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 04 Jan 2021 10:20:02 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 10:20:04 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 4 Jan 2021 10:20:04 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BSC_Tests: fix f_recv_next_si1(): skip unmatched RSL messages In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21932 ) Change subject: BSC_Tests: fix f_recv_next_si1(): skip unmatched RSL messages ...................................................................... BSC_Tests: fix f_recv_next_si1(): skip unmatched RSL messages Since Idb453fc894584ccf4f5f8b45a24421db958e9478, osmo-bsc does send ip.access specific Measurement Pre-Processing Defaults. This message currently blocks the 'alt' statement in f_recv_next_si1(), so all test cases calling it fail due to the guard timeout. What's even worse, both TC_si_acc_rotate() and TC_si_acc_ramp_rotate() dynamically configure the IUT in order to re-generate and send System Information messages periodically. If any of them fails prematurely, the related configuration parameters would remain active, so the IUT would continue sending System Information messages, causing failures in subsequent test cases. Let's simply ignore all unmatched messages in the 'alt' statement. Change-Id: I1a85a046e1a8ebcd494354dddcbcc9707fdf5ee9 --- M bsc/BSC_Tests.ttcn 1 file changed, 1 insertion(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index 813c94e..a1fa4dd 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -2458,6 +2458,7 @@ g_system_information[rsl_idx].si1 := omit; T.stop; } + [] IPA_RSL[rsl_idx].receive { repeat; } [] T.timeout { setverdict(fail, "Timeout receiving next SI1"); } } return last_si1; -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21932 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I1a85a046e1a8ebcd494354dddcbcc9707fdf5ee9 Gerrit-Change-Number: 21932 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 10:25:29 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 4 Jan 2021 10:25:29 +0000 Subject: Change in osmo-bts[master]: power_control: handle MS/BS Power control params on A-bis/RSL In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21906 ) Change subject: power_control: handle MS/BS Power control params on A-bis/RSL ...................................................................... Patch Set 3: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/21906/3/src/common/rsl.c File src/common/rsl.c: https://gerrit.osmocom.org/c/osmo-bts/+/21906/3/src/common/rsl.c at 798 PS3, Line 798: break; worth printing some log message here. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21906 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I5a901eca5a78a0335a6954064e602e65cda85390 Gerrit-Change-Number: 21906 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 04 Jan 2021 10:25:29 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 10:26:17 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 4 Jan 2021 10:26:17 +0000 Subject: Change in osmo-bts[master]: power_control: check-in new parameters and default values In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21904 ) Change subject: power_control: check-in new parameters and default values ...................................................................... Patch Set 1: > Patch Set 1: > > I'm not really understanding this commit. It's just adding some structs for new pwr ctrl algo which are not really used yet? Yes, the MS/BS power control loops are still using the old structures, and this is what the commit message says. Here I am just adding the new structures, because I want to have small and atomic commits that would be easy to review. Otherwise it would be a bomb changing everything here and there, and nobody would want to review it. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21904 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I6d41eb238aa6d4f5b77596c5477c2ecbe86de2a8 Gerrit-Change-Number: 21904 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 04 Jan 2021 10:26:17 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 10:26:29 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 4 Jan 2021 10:26:29 +0000 Subject: Change in osmo-bts[master]: power_control: handle MS/BS Power control params on A-bis/RSL In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21906 ) Change subject: power_control: handle MS/BS Power control params on A-bis/RSL ...................................................................... Patch Set 3: Looks like you have some typo in your code making build failures. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21906 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I5a901eca5a78a0335a6954064e602e65cda85390 Gerrit-Change-Number: 21906 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 04 Jan 2021 10:26:29 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 10:31:28 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 4 Jan 2021 10:31:28 +0000 Subject: Change in osmo-bts[master]: power_control: handle MS/BS Power control params on A-bis/RSL In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21906 ) Change subject: power_control: handle MS/BS Power control params on A-bis/RSL ...................................................................... Patch Set 3: (2 comments) https://gerrit.osmocom.org/c/osmo-bts/+/21906/3//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-bts/+/21906/3//COMMIT_MSG at 10 PS3, Line 10: Depends: I2f4ed56837dd479dbbd10c0a7df0ed7565d3946a This is why it fails, I will submit a new patch set soon, so it would re-trigger Jenkins. https://gerrit.osmocom.org/c/osmo-bts/+/21906/3/src/common/rsl.c File src/common/rsl.c: https://gerrit.osmocom.org/c/osmo-bts/+/21906/3/src/common/rsl.c at 798 PS3, Line 798: break; > worth printing some log message here. Ack -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21906 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I5a901eca5a78a0335a6954064e602e65cda85390 Gerrit-Change-Number: 21906 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 04 Jan 2021 10:31:28 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 10:34:02 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 4 Jan 2021 10:34:02 +0000 Subject: Change in osmo-bts[master]: power_control: generalize the arguments of do_pf_ewma() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21907 ) Change subject: power_control: generalize the arguments of do_pf_ewma() ...................................................................... Patch Set 4: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/21907/4/src/common/power_control.c File src/common/power_control.c: https://gerrit.osmocom.org/c/osmo-bts/+/21907/4/src/common/power_control.c at 76 PS4, Line 76: if (*Avg100 == 0) { iiuc Avg100 can also be 0 after first run. In that case you are applying non-smoothed value (without weight)? You probably need to multiply by A? -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21907 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I439c00b394da670e314f217b3246cc85ce8213c6 Gerrit-Change-Number: 21907 Gerrit-PatchSet: 4 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 04 Jan 2021 10:34:02 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 10:34:15 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 4 Jan 2021 10:34:15 +0000 Subject: Change in osmo-iuh[master]: hnbgw: Introduce LOGHNB() macro for log context information In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-iuh/+/21899 ) Change subject: hnbgw: Introduce LOGHNB() macro for log context information ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-iuh/+/21899 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: master Gerrit-Change-Id: I6113925216c6f88add2c6d27bdf47ccbb017f293 Gerrit-Change-Number: 21899 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 04 Jan 2021 10:34:15 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 10:35:28 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 4 Jan 2021 10:35:28 +0000 Subject: Change in osmo-bsc[master]: vty: fix wrong attributes for UL/DL ACCH repeation commands In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21912 ) Change subject: vty: fix wrong attributes for UL/DL ACCH repeation commands ...................................................................... Patch Set 3: Code-Review+1 (1 comment) I see lots of lines being changed, is that because whitespace is being fixed somehow? https://gerrit.osmocom.org/c/osmo-bsc/+/21912/3//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-bsc/+/21912/3//COMMIT_MSG at 7 PS3, Line 7: vty: fix wrong attributes for UL/DL ACCH repeation commands repetition? -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21912 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I06c7851115fb31d1eb92c400d9724f4f051bd171 Gerrit-Change-Number: 21912 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 04 Jan 2021 10:35:28 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 10:36:11 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 4 Jan 2021 10:36:11 +0000 Subject: Change in osmo-bts[master]: rsl: Always enable MS Power Ctrl loop in BTS to keep compatibility wi... In-Reply-To: References: Message-ID: pespin has abandoned this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/15906 ) Change subject: rsl: Always enable MS Power Ctrl loop in BTS to keep compatibility with old osmo-bsc ...................................................................... Abandoned -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/15906 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I2b4660aa06ffb10694448697aa4b8e460e4bb206 Gerrit-Change-Number: 15906 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-MessageType: abandon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 10:37:42 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 4 Jan 2021 10:37:42 +0000 Subject: Change in osmo-sgsn[master]: configure.ac: define a c standard instead of using the compilers default In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21913 ) Change subject: configure.ac: define a c standard instead of using the compilers default ...................................................................... Patch Set 1: The question I'd raise is what do we win with using something newer than let's say C99. I'm not against it, simply asking if gnu11 was chosen for a specific reason. It would be great to know why and have that in the commit message. -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21913 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I9867adbed211db0a7b42ac3557f56c3042a67936 Gerrit-Change-Number: 21913 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Reviewer: zecke Gerrit-Comment-Date: Mon, 04 Jan 2021 10:37:42 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 10:41:04 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 4 Jan 2021 10:41:04 +0000 Subject: Change in osmo-bsc[master]: smscb: Fix adding of SMSCB messages when no message with lower period... In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21921 ) Change subject: smscb: Fix adding of SMSCB messages when no message with lower period exists ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21921 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I69a05b22200b3a1ee406b0673553e135603d723b Gerrit-Change-Number: 21921 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 04 Jan 2021 10:41:04 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 10:43:22 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 4 Jan 2021 10:43:22 +0000 Subject: Change in osmo-bts[master]: power_control: generalize the arguments of do_pf_ewma() In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21907 ) Change subject: power_control: generalize the arguments of do_pf_ewma() ...................................................................... Patch Set 4: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/21907/4/src/common/power_control.c File src/common/power_control.c: https://gerrit.osmocom.org/c/osmo-bts/+/21907/4/src/common/power_control.c at 76 PS4, Line 76: if (*Avg100 == 0) { > iiuc Avg100 can also be 0 after first run. [?] The point of weighting is that you take a part of the recent measurement value, and a part of the previous one. So their sum matters. During the first run, outputting the value as-is seems reasonable to me, otherwise if e.g. A=50 (default) and Val=-80 you would get Avg=-40, so the power will be increased or decreased for no reason. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21907 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I439c00b394da670e314f217b3246cc85ce8213c6 Gerrit-Change-Number: 21907 Gerrit-PatchSet: 4 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 04 Jan 2021 10:43:22 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 10:46:13 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 4 Jan 2021 10:46:13 +0000 Subject: Change in osmo-bsc[master]: vty: fix wrong attributes for UL/DL ACCH repeation commands In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21912 ) Change subject: vty: fix wrong attributes for UL/DL ACCH repeation commands ...................................................................... Patch Set 3: (1 comment) > Patch Set 3: Code-Review+1 > > (1 comment) > > I see lots of lines being changed, is that because whitespace is being fixed somehow? Yes, we change the macro name, so the arguments need to be aligned. https://gerrit.osmocom.org/c/osmo-bsc/+/21912/3//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-bsc/+/21912/3//COMMIT_MSG at 7 PS3, Line 7: vty: fix wrong attributes for UL/DL ACCH repeation commands > repetition? Ack -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21912 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I06c7851115fb31d1eb92c400d9724f4f051bd171 Gerrit-Change-Number: 21912 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 04 Jan 2021 10:46:13 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 10:53:28 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 4 Jan 2021 10:53:28 +0000 Subject: Change in osmo-bsc[master]: vty: join UL/DL SACCH repetition commands together In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bsc/+/21911 to look at the new patch set (#4). Change subject: vty: join UL/DL SACCH repetition commands together ...................................................................... vty: join UL/DL SACCH repetition commands together Both commands are basically doing the same thing, so we can merge them into a single command by adding a parameter to the command string. The VTY syntax remains the same: do-something foo do-something bar becomes: do-something (foo|bar) This change reduces code duplication. Change-Id: Ibe98718d8f4933926eed0e622109c9c82537f526 Related: SYS#5114 --- M src/osmo-bsc/bsc_vty.c 1 file changed, 20 insertions(+), 45 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/11/21911/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21911 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ibe98718d8f4933926eed0e622109c9c82537f526 Gerrit-Change-Number: 21911 Gerrit-PatchSet: 4 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 10:53:28 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 4 Jan 2021 10:53:28 +0000 Subject: Change in osmo-bsc[master]: vty: fix wrong attributes for UL/DL ACCH repetition commands In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bsc/+/21912 to look at the new patch set (#4). Change subject: vty: fix wrong attributes for UL/DL ACCH repetition commands ...................................................................... vty: fix wrong attributes for UL/DL ACCH repetition commands None of those commands apply immediately, they only affect newly established logical channels. The reason is that the related IEs are only getting sent on channel activation / assignment. Change-Id: I06c7851115fb31d1eb92c400d9724f4f051bd171 Related: SYS#5114 --- M src/osmo-bsc/bsc_vty.c 1 file changed, 42 insertions(+), 39 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/12/21912/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21912 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I06c7851115fb31d1eb92c400d9724f4f051bd171 Gerrit-Change-Number: 21912 Gerrit-PatchSet: 4 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 11:12:11 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 4 Jan 2021 11:12:11 +0000 Subject: Change in libosmocore[master]: Add inter-thread queue In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21930 ) Change subject: Add inter-thread queue ...................................................................... Patch Set 2: (10 comments) https://gerrit.osmocom.org/c/libosmocore/+/21930/2/include/osmocom/core/it_q.h File include/osmocom/core/it_q.h: https://gerrit.osmocom.org/c/libosmocore/+/21930/2/include/osmocom/core/it_q.h at 37 PS2, Line 37: void (*read_cb)(struct osmo_it_q *q, void *item); why not passing the pointer to the item's llist instead? This way it's up to the reader to infer item form llist using well-known container_of(). This way you avoid the limitation of requiring llit at the beggining of item's struct. (see like 17 "IMPORTANT"). https://gerrit.osmocom.org/c/libosmocore/+/21930/2/src/it_q.c File src/it_q.c: https://gerrit.osmocom.org/c/libosmocore/+/21930/2/src/it_q.c at 67 PS2, Line 67: /* global (for all threads) list of message queues in a program + associated lock */ typo: queued https://gerrit.osmocom.org/c/libosmocore/+/21930/2/src/it_q.c at 69 PS2, Line 69: static pthread_rwlock_t it_queues_rwlock; you can probably init this statically? https://gerrit.osmocom.org/c/libosmocore/+/21930/2/src/it_q.c at 113 PS2, Line 113: q->read_cb(q, item); See, simply change function signature to pass struct llist_head and let the user implementing the callback to use container_of. https://gerrit.osmocom.org/c/libosmocore/+/21930/2/src/it_q.c at 142 PS2, Line 142: q->event_ofd.fd = -1; q->mutex needs no init()? https://gerrit.osmocom.org/c/libosmocore/+/21930/2/src/it_q.c at 220 PS2, Line 220: osmo_it_q_flush(q); don't you need to somehow free q->mutex? https://gerrit.osmocom.org/c/libosmocore/+/21930/2/tests/it_q/it_q_test.c File tests/it_q/it_q_test.c: https://gerrit.osmocom.org/c/libosmocore/+/21930/2/tests/it_q/it_q_test.c at 10 PS2, Line 10: int foo; You could put a pointer to g_read_cb_count here to have better coverage on struct being correctly used instead of simply allocating and freeing it. https://gerrit.osmocom.org/c/libosmocore/+/21930/2/tests/it_q/it_q_test.c at 73 PS2, Line 73: static void q_read_cb(struct osmo_it_q *q, void *item) struct llist_head *item https://gerrit.osmocom.org/c/libosmocore/+/21930/2/tests/it_q/it_q_test.c at 75 PS2, Line 75: g_read_cb_count++; struct it_q_test1 *it = container_of(item, struct it_q_test1, list); (*it->foo)++ https://gerrit.osmocom.org/c/libosmocore/+/21930/2/tests/it_q/it_q_test.c at 100 PS2, Line 100: item = talloc_zero(OTC_GLOBAL, struct it_q_test1); item->foo = &g_read_cb_count; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21930 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie7d0c5fec715a2a577fae014b0b8a0e9c38418ef Gerrit-Change-Number: 21930 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 04 Jan 2021 11:12:11 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 11:19:47 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 4 Jan 2021 11:19:47 +0000 Subject: Change in osmo-bts[master]: power_control: generalize the arguments of do_pf_ewma() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21907 ) Change subject: power_control: generalize the arguments of do_pf_ewma() ...................................................................... Patch Set 4: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/21907/4/src/common/power_control.c File src/common/power_control.c: https://gerrit.osmocom.org/c/osmo-bts/+/21907/4/src/common/power_control.c at 76 PS4, Line 76: if (*Avg100 == 0) { > The point of weighting is that you take a part of the recent measurement value, and a part of the pr [?] Agree with the first run, but you seem to have overlooked my comment regarding this patch being hit to on other than first runs. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21907 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I439c00b394da670e314f217b3246cc85ce8213c6 Gerrit-Change-Number: 21907 Gerrit-PatchSet: 4 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 04 Jan 2021 11:19:47 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: fixeria Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 11:20:21 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 4 Jan 2021 11:20:21 +0000 Subject: Change in osmo-bsc[master]: vty: fix wrong attributes for UL/DL ACCH repetition commands In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21912 ) Change subject: vty: fix wrong attributes for UL/DL ACCH repetition commands ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21912 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I06c7851115fb31d1eb92c400d9724f4f051bd171 Gerrit-Change-Number: 21912 Gerrit-PatchSet: 4 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 04 Jan 2021 11:20:21 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 11:21:12 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 4 Jan 2021 11:21:12 +0000 Subject: Change in osmo-bsc[master]: vty: join UL/DL SACCH repetition commands together In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21911 ) Change subject: vty: join UL/DL SACCH repetition commands together ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21911 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ibe98718d8f4933926eed0e622109c9c82537f526 Gerrit-Change-Number: 21911 Gerrit-PatchSet: 4 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 04 Jan 2021 11:21:12 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 11:22:27 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 4 Jan 2021 11:22:27 +0000 Subject: Change in osmo-bts[master]: power_control: generalize the arguments of do_pf_ewma() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21907 ) Change subject: power_control: generalize the arguments of do_pf_ewma() ...................................................................... Patch Set 4: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/21907/4/src/common/power_control.c File src/common/power_control.c: https://gerrit.osmocom.org/c/osmo-bts/+/21907/4/src/common/power_control.c at 76 PS4, Line 76: if (*Avg100 == 0) { > Agree with the first run, but you seem to have overlooked my comment regarding this patch being hit [?] s/patch/path/ -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21907 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I439c00b394da670e314f217b3246cc85ce8213c6 Gerrit-Change-Number: 21907 Gerrit-PatchSet: 4 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 04 Jan 2021 11:22:27 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Comment-In-Reply-To: fixeria Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 11:24:23 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 4 Jan 2021 11:24:23 +0000 Subject: Change in osmo-bts[master]: power_control: generalize the arguments of do_pf_ewma() In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21907 ) Change subject: power_control: generalize the arguments of do_pf_ewma() ...................................................................... Patch Set 4: (1 comment) Thank you! https://gerrit.osmocom.org/c/osmo-bts/+/21907/4/src/common/power_control.c File src/common/power_control.c: https://gerrit.osmocom.org/c/osmo-bts/+/21907/4/src/common/power_control.c at 76 PS4, Line 76: if (*Avg100 == 0) { > Agree with the first run, but you seem to have overlooked my comment regarding this patch being hit [?] Oh, damn, you're right. We currently feed it with dBm values where value 0 is very unlikely. However, for RxLev (0..63) and RxQual (0..7) it will likely become a problem. We can add a boolean flag to the state to avoid this. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21907 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I439c00b394da670e314f217b3246cc85ce8213c6 Gerrit-Change-Number: 21907 Gerrit-PatchSet: 4 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 04 Jan 2021 11:24:23 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Comment-In-Reply-To: fixeria Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Mon Jan 4 11:55:23 2021 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jan 2021 11:55:23 +0000 Subject: Build failure of network:osmocom:nightly/osmo-smlc in Debian_9.0/armv7l In-Reply-To: References: Message-ID: <5ff3023f1148a_59872af9dc0645f431546e1@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-smlc/Debian_9.0/armv7l Package network:osmocom:nightly/osmo-smlc failed to build in Debian_9.0/armv7l Check out the package for editing: osc checkout network:osmocom:nightly osmo-smlc Last lines of build log: [ 0s] [ 0s] armbuild04 started "build osmo-smlc_0.1.0.5.5dad.dsc" at Mon Jan 4 11:54:56 UTC 2021. [ 0s] [ 0s] Building osmo-smlc for project 'network:osmocom:nightly' repository 'Debian_9.0' arch 'armv7l' srcmd5 '0bfcdac0403a6eb5e4648e6c6d68faff' [ 0s] [ 0s] processing recipe /var/cache/obs/worker/root_2/.build-srcdir/osmo-smlc_0.1.0.5.5dad.dsc ... [ 0s] running changelog2spec --target debian --file /var/cache/obs/worker/root_2/.build-srcdir/osmo-smlc_0.1.0.5.5dad.dsc [ 0s] init_buildsystem --configdir /var/run/obs/worker/2/build/configs --cachedir /var/cache/build --prepare --clean --rpmlist /var/cache/obs/worker/root_2/.build.rpmlist /var/cache/obs/worker/root_2/.build-srcdir/osmo-smlc_0.1.0.5.5dad.dsc build ... [ 1s] unknown keyword in config: [ 1s] could not autodetect package type [ 1s] [ 1s] armbuild04 failed "build osmo-smlc_0.1.0.5.5dad.dsc" at Mon Jan 4 11:54:57 UTC 2021. [ 1s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Mon Jan 4 12:11:26 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 4 Jan 2021 12:11:26 +0000 Subject: Change in osmo-iuh[master]: hnbgw: Use LOGHNB() to add log context information to log lines In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-iuh/+/21900 ) Change subject: hnbgw: Use LOGHNB() to add log context information to log lines ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-iuh/+/21900/1/src/context_map.c File src/context_map.c: https://gerrit.osmocom.org/c/osmo-iuh/+/21900/1/src/context_map.c at 128 PS1, Line 128: LOGP(DMAIN, LOGL_NOTICE, "Unable to resolve map for CN " "connection ID %p/%u\n", cn, scu_conn_id); > if you put it in the same line you don't need to split the string in 2. Ack -- To view, visit https://gerrit.osmocom.org/c/osmo-iuh/+/21900 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: master Gerrit-Change-Id: Ia16eed4ca5e9ef231259e94c65105f7586f366bc Gerrit-Change-Number: 21900 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 04 Jan 2021 12:11:26 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 12:40:57 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 4 Jan 2021 12:40:57 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: add handling for BSSGP RIM primitives In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21722 ) Change subject: gprs_bssgp: add handling for BSSGP RIM primitives ...................................................................... Patch Set 6: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21722 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Idfd0a65872a2cc6089885afd8d31b0b029d85d47 Gerrit-Change-Number: 21722 Gerrit-PatchSet: 6 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 04 Jan 2021 12:40:57 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 12:42:14 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 4 Jan 2021 12:42:14 +0000 Subject: Change in libosmocore[master]: gsm_08_18: add struct to parse RIM PDU Indications In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21861 ) Change subject: gsm_08_18: add struct to parse RIM PDU Indications ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/21861/1/include/osmocom/gprs/protocol/gsm_08_18.h File include/osmocom/gprs/protocol/gsm_08_18.h: https://gerrit.osmocom.org/c/libosmocore/+/21861/1/include/osmocom/gprs/protocol/gsm_08_18.h at 355 PS1, Line 355: #define RIM_PDU_TYPE_STOP 0 > enum? Ack -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21861 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I781ab838bd02ac1b13d384ce3f4259e26cedb61e Gerrit-Change-Number: 21861 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 04 Jan 2021 12:42:14 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 13:04:03 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 4 Jan 2021 13:04:03 +0000 Subject: Change in osmo-hlr[master]: auc_test.c: Add some comments on what the test cases actually do References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-hlr/+/21933 ) Change subject: auc_test.c: Add some comments on what the test cases actually do ...................................................................... auc_test.c: Add some comments on what the test cases actually do Change-Id: Id2b9cf12823e05aeadc6f15df396f8a46ae1639d --- M tests/auc/auc_test.c 1 file changed, 11 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-hlr refs/changes/33/21933/1 diff --git a/tests/auc/auc_test.c b/tests/auc/auc_test.c index db7edcb..c0620db 100644 --- a/tests/auc/auc_test.c +++ b/tests/auc/auc_test.c @@ -113,6 +113,7 @@ return len; } +/* Subscriber with 2G-only (COMP128v1) authentication data */ static void test_gen_vectors_2g_only(void) { struct osmo_sub_auth_data aud2g; @@ -174,6 +175,8 @@ comment_end(); } +/* Subscriber with separate 2G (COMP128v1) and 3G (MILENAGE) authentication data, + * reflects the default configuration of sysmoUSIM-SJS1 */ static void test_gen_vectors_2g_plus_3g(void) { struct osmo_sub_auth_data aud2g; @@ -284,6 +287,9 @@ ); } +/* Subscriber with only 3G (MILENAGE) authentication data, + * reflects the default configuration of sysmoISIM-SJA2. Resulting + * tuples are suitable for both 2G and 3G authentication */ static void test_gen_vectors_3g_only(void) { struct osmo_sub_auth_data aud2g; @@ -454,6 +460,10 @@ comment_end(); } +/* Subscriber with only 3G (XOR) authentication data, + * reflects the default configuration of sysmoTSIM-SJAx as well + * as many "Test USIM" cards. Resulting tuples are suitable for both + * 2G and 3G authentication */ static void test_gen_vectors_3g_xor(void) { struct osmo_sub_auth_data aud2g; @@ -498,6 +508,7 @@ comment_end(); } +/* Test a variety of invalid authentication data combinations */ void test_gen_vectors_bad_args() { struct osmo_auth_vector vec; -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/21933 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-Change-Id: Id2b9cf12823e05aeadc6f15df396f8a46ae1639d Gerrit-Change-Number: 21933 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 13:14:42 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 4 Jan 2021 13:14:42 +0000 Subject: Change in osmo-hlr[master]: auc_test.c: Add some comments on what the test cases actually do In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-hlr/+/21933 ) Change subject: auc_test.c: Add some comments on what the test cases actually do ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/21933 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-Change-Id: Id2b9cf12823e05aeadc6f15df396f8a46ae1639d Gerrit-Change-Number: 21933 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 04 Jan 2021 13:14:42 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 15:55:28 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 4 Jan 2021 15:55:28 +0000 Subject: Change in libosmocore[master]: gprs_ns2: set transfer cap in NS Status primitive In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, pespin, daniel, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/21753 to look at the new patch set (#8). Change subject: gprs_ns2: set transfer cap in NS Status primitive ...................................................................... gprs_ns2: set transfer cap in NS Status primitive Related: SYS#5153 OS#4835 Change-Id: Ia1046db9e0d50855bff9de670b612ffc57af9995 --- M src/gb/Makefile.am M src/gb/gprs_ns2.c M src/gb/gprs_ns2_fr.c M src/gb/gprs_ns2_frgre.c M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_udp.c M tests/Makefile.am A tests/gb/gprs_ns2_test.c A tests/gb/gprs_ns2_test.ok M tests/testsuite.at 10 files changed, 276 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/53/21753/8 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21753 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia1046db9e0d50855bff9de670b612ffc57af9995 Gerrit-Change-Number: 21753 Gerrit-PatchSet: 8 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 16:04:18 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 4 Jan 2021 16:04:18 +0000 Subject: Change in osmo-sgsn[master]: sgsn: Use the new NS2 api In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/20397 ) Change subject: sgsn: Use the new NS2 api ...................................................................... Patch Set 13: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/20397 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I92a3bcaf166b091a22d74c7c1586964d33d7cc9d Gerrit-Change-Number: 20397 Gerrit-PatchSet: 13 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 04 Jan 2021 16:04:18 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 16:06:13 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 4 Jan 2021 16:06:13 +0000 Subject: Change in osmo-sgsn[master]: sgsn: Use the new NS2 api In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/20397 ) Change subject: sgsn: Use the new NS2 api ...................................................................... sgsn: Use the new NS2 api The new NS2 api supports NSE with multiple NS-VC and contains a NS-VC fsm. FR/GRE support is not working. The configuration is compatible except for FR/GRE. Relates: OS#4629 Depends-on: Iaad7b53d44338e5dd81dc2202f23bdcb715af804 (libosmocore) Depends-on: I6cef42749555e577d5573f2ed8b8bce4cf842a98 (libosmocore) Change-Id: I92a3bcaf166b091a22d74c7c1586964d33d7cc9d --- M include/osmocom/sgsn/gprs_gb.h M include/osmocom/sgsn/sgsn.h M src/gprs/gprs_utils.c M src/sgsn/gprs_gb.c M src/sgsn/gprs_ranap.c M src/sgsn/gprs_sgsn.c M src/sgsn/sgsn_main.c M src/sgsn/sgsn_vty.c M tests/vty_test_runner.py 9 files changed, 114 insertions(+), 61 deletions(-) Approvals: daniel: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/include/osmocom/sgsn/gprs_gb.h b/include/osmocom/sgsn/gprs_gb.h index 461eee3..c98dd34 100644 --- a/include/osmocom/sgsn/gprs_gb.h +++ b/include/osmocom/sgsn/gprs_gb.h @@ -12,3 +12,9 @@ /* page a MS in its routing area */ int gprs_gb_page_ps_ra(struct sgsn_mm_ctx *mmctx); + +/* called by the bssgp layer to send NS PDUs */ +int gprs_gb_send_cb(void *ctx, struct msgb *msg); + +/* called by the ns layer */ +int gprs_ns_prim_cb(struct osmo_prim_hdr *oph, void *ctx); diff --git a/include/osmocom/sgsn/sgsn.h b/include/osmocom/sgsn/sgsn.h index f5ff524..d9ef938 100644 --- a/include/osmocom/sgsn/sgsn.h +++ b/include/osmocom/sgsn/sgsn.h @@ -3,8 +3,9 @@ #include +#include #include -#include +#include #include #include #include @@ -69,7 +70,7 @@ struct sockaddr_in gtp_listenaddr; /* misc */ - struct gprs_ns_inst *nsi; + struct gprs_ns2_inst *nsi; enum sgsn_auth_policy auth_policy; enum gprs_ciph_algo cipher; @@ -157,7 +158,7 @@ /* sgsn.c */ /* Main input function for Gb proxy */ -int sgsn_rcvmsg(struct msgb *msg, struct gprs_nsvc *nsvc, uint16_t ns_bvci); +int sgsn_rcvmsg(struct msgb *msg, struct gprs_ns2_vc *nsvc, uint16_t ns_bvci); /* sgsn_libgtp.c */ struct sgsn_pdp_ctx *sgsn_create_pdp_ctx(struct sgsn_ggsn_ctx *ggsn, diff --git a/src/gprs/gprs_utils.c b/src/gprs/gprs_utils.c index 13641c1..632718a 100644 --- a/src/gprs/gprs_utils.c +++ b/src/gprs/gprs_utils.c @@ -22,7 +22,7 @@ #include #include -#include +#include #include #include diff --git a/src/sgsn/gprs_gb.c b/src/sgsn/gprs_gb.c index d470cfa..c7d5c28 100644 --- a/src/sgsn/gprs_gb.c +++ b/src/sgsn/gprs_gb.c @@ -25,6 +25,9 @@ #include #include +#include +#include +#include #include "bscconfig.h" @@ -103,3 +106,83 @@ return rc; } + +/* called by the bssgp layer to send NS PDUs */ +int gprs_gb_send_cb(void *ctx, struct msgb *msg) +{ + struct gprs_ns2_inst *nsi = (struct gprs_ns2_inst *) ctx; + struct osmo_gprs_ns2_prim nsp = {}; + nsp.nsei = msgb_nsei(msg); + nsp.bvci = msgb_bvci(msg); + osmo_prim_init(&nsp.oph, SAP_NS, PRIM_NS_UNIT_DATA, PRIM_OP_REQUEST, msg); + return gprs_ns2_recv_prim(nsi, &nsp.oph); +} + +void gprs_ns_prim_status_cb(struct osmo_gprs_ns2_prim *nsp) +{ + switch (nsp->u.status.cause) { + case NS_AFF_CAUSE_SNS_CONFIGURED: + LOGP(DGPRS, LOGL_NOTICE, "NS-E %d SNS configured.\n", nsp->nsei); + break; + case NS_AFF_CAUSE_RECOVERY: + LOGP(DGPRS, LOGL_NOTICE, "NS-E %d became available\n", nsp->nsei); + /* workaround for broken BSS which doesn't respond correct to BSSGP status message. + * Sent a BSSGP Reset when a persistent NSVC comes up for the first time. */ + if (nsp->u.status.first && nsp->u.status.persistent) { + struct bssgp_bvc_ctx bctx = { + .nsei = nsp->nsei, + }; + bssgp_tx_bvc_reset2(&bctx, BVCI_SIGNALLING, BSSGP_CAUSE_EQUIP_FAIL, false); + } + break; + case NS_AFF_CAUSE_FAILURE: + LOGP(DGPRS, LOGL_NOTICE, "NS-E %d became unavailable\n", nsp->nsei); + break; + default: + LOGP(DGPRS, LOGL_NOTICE, "NS: %s Unknown prim %d from NS\n", + get_value_string(osmo_prim_op_names, nsp->oph.operation), nsp->oph.primitive); + break; + } +} + +/* call-back function for the NS protocol */ +int gprs_ns_prim_cb(struct osmo_prim_hdr *oph, void *ctx) +{ + struct osmo_gprs_ns2_prim *nsp; + int rc = 0; + + if (oph->sap != SAP_NS) + return 0; + + nsp = container_of(oph, struct osmo_gprs_ns2_prim, oph); + + if (oph->operation != PRIM_OP_INDICATION) { + LOGP(DGPRS, LOGL_NOTICE, "NS: %s Unknown prim %d from NS\n", + get_value_string(osmo_prim_op_names, oph->operation), + oph->operation); + return 0; + } + + switch (oph->primitive) { + case PRIM_NS_UNIT_DATA: + /* hand the message into the BSSGP implementation */ + /* add required msg fields for Gb layer */ + msgb_bssgph(oph->msg) = oph->msg->l3h; + msgb_bvci(oph->msg) = nsp->bvci; + msgb_nsei(oph->msg) = nsp->nsei; + rc = bssgp_rcvmsg(oph->msg); + break; + case PRIM_NS_STATUS: + gprs_ns_prim_status_cb(nsp); + break; + default: + LOGP(DGPRS, LOGL_NOTICE, "NS: %s Unknown prim %d from NS\n", + get_value_string(osmo_prim_op_names, oph->operation), oph->primitive); + break; + } + + if (oph->msg) + msgb_free(oph->msg); + + return rc; +} diff --git a/src/sgsn/gprs_ranap.c b/src/sgsn/gprs_ranap.c index 7a33491..1f8ed97 100644 --- a/src/sgsn/gprs_ranap.c +++ b/src/sgsn/gprs_ranap.c @@ -26,6 +26,7 @@ #include #include +#include #include diff --git a/src/sgsn/gprs_sgsn.c b/src/sgsn/gprs_sgsn.c index 0b7c21e..d4bc554 100644 --- a/src/sgsn/gprs_sgsn.c +++ b/src/sgsn/gprs_sgsn.c @@ -27,7 +27,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/src/sgsn/sgsn_main.c b/src/sgsn/sgsn_main.c index 0277f6f..19039f6 100644 --- a/src/sgsn/sgsn_main.c +++ b/src/sgsn/sgsn_main.c @@ -39,8 +39,9 @@ #include #include #include +#include -#include +#include #include #include @@ -60,6 +61,7 @@ #include #include #include +#include #include #include @@ -80,7 +82,7 @@ void *tall_sgsn_ctx; struct ctrl_handle *g_ctrlh; -struct gprs_ns_inst *sgsn_nsi; +struct gprs_ns2_inst *sgsn_nsi; static int daemonize = 0; const char *openbsc_copyright = "Copyright (C) 2010 Harald Welte and On-Waves\r\n" @@ -94,27 +96,6 @@ struct sgsn_instance *sgsn; -/* call-back function for the NS protocol */ -static int sgsn_ns_cb(enum gprs_ns_evt event, struct gprs_nsvc *nsvc, - struct msgb *msg, uint16_t bvci) -{ - int rc = 0; - - switch (event) { - case GPRS_NS_EVT_UNIT_DATA: - /* hand the message into the BSSGP implementation */ - rc = bssgp_rcvmsg(msg); - break; - default: - LOGP(DGPRS, LOGL_ERROR, "SGSN: Unknown event %u from NS\n", event); - if (msg) - msgb_free(msg); - rc = -EIO; - break; - } - return rc; -} - /* call-back function for the BSSGP protocol */ int bssgp_prim_cb(struct osmo_prim_hdr *oph, void *ctx) { @@ -181,23 +162,6 @@ /* NSI that BSSGP uses when transmitting on NS */ extern struct gprs_ns_inst *bssgp_nsi; -static void bvc_reset_persistent_nsvcs(void) -{ - /* Send BVC-RESET on all persistent NSVCs */ - struct gprs_nsvc *nsvc; - - llist_for_each_entry(nsvc, &sgsn_nsi->gprs_nsvcs, list) { - struct bssgp_bvc_ctx bctx = { - .nsei = nsvc->nsei, - }; - if (!nsvc->persistent) - continue; - /* if it is not marked ALIVE, we cannot send any data over it. */ - nsvc->state |= NSE_S_ALIVE; - bssgp_tx_bvc_reset2(&bctx, BVCI_SIGNALLING, BSSGP_CAUSE_EQUIP_FAIL, false); - } -} - static struct vty_app_info vty_info = { .name = "OsmoSGSN", .version = PACKAGE_VERSION, @@ -364,6 +328,11 @@ int main(int argc, char **argv) { int rc; + struct osmo_sockaddr_str bind_address = { + .af = AF_INET, + .ip = "0.0.0.0", + .port = 23000, + }; #if BUILD_IU struct osmo_sccp_instance *sccp; #endif @@ -418,27 +387,27 @@ rate_ctr_init(tall_sgsn_ctx); - gprs_ns_set_log_ss(DNS); logging_vty_add_deprecated_subsys(tall_sgsn_ctx, "bssgp"); - sgsn_nsi = gprs_ns_instantiate(&sgsn_ns_cb, tall_sgsn_ctx); + sgsn_nsi = gprs_ns2_instantiate(tall_sgsn_ctx, &gprs_ns_prim_cb, NULL); if (!sgsn_nsi) { LOGP(DGPRS, LOGL_ERROR, "Unable to instantiate NS\n"); exit(1); } - bssgp_nsi = sgsn->cfg.nsi = sgsn_nsi; + sgsn->cfg.nsi = sgsn_nsi; + bssgp_set_bssgp_callback(gprs_gb_send_cb, sgsn_nsi); gprs_llc_init("/usr/local/lib/osmocom/crypt/"); sgsn_rate_ctr_init(); sgsn_inst_init(sgsn); - gprs_ns_vty_init(bssgp_nsi); + + gprs_ns2_vty_init(sgsn_nsi, &bind_address); bssgp_vty_init(); gprs_llc_vty_init(); gprs_sndcp_vty_init(); sgsn_auth_init(sgsn); sgsn_cdr_init(sgsn); - /* FIXME: register signal handler for SS_L_NS */ rc = sgsn_parse_config(sgsn->config_file); if (rc < 0) { @@ -480,18 +449,13 @@ exit(2); } - rc = gprs_ns_nsip_listen(sgsn_nsi); + rc = gprs_ns2_vty_create(); if (rc < 0) { LOGP(DGPRS, LOGL_FATAL, "Cannot bind/listen on NSIP socket\n"); exit(2); } - rc = gprs_ns_frgre_listen(sgsn_nsi); - if (rc < 0) { - LOGP(DGPRS, LOGL_FATAL, "Cannot bind/listen GRE " - "socket. Do you have CAP_NET_RAW?\n"); - exit(2); - } + gprs_ns2_dynamic_create_nse(sgsn_nsi, true); if (sgsn->cfg.dynamic_lookup) { if (sgsn_ares_init(sgsn) != 0) { @@ -518,8 +482,6 @@ ranap_iu_init(tall_sgsn_ctx, DRANAP, "OsmoSGSN-IuPS", sccp, gsm0408_gprs_rcvmsg_iu, sgsn_ranap_iu_event); #endif - bvc_reset_persistent_nsvcs(); - if (daemonize) { rc = osmo_daemonize(); if (rc < 0) { diff --git a/src/sgsn/sgsn_vty.c b/src/sgsn/sgsn_vty.c index fee328e..d7584bc 100644 --- a/src/sgsn/sgsn_vty.c +++ b/src/sgsn/sgsn_vty.c @@ -34,7 +34,7 @@ #include #include -#include +#include #include #include #include diff --git a/tests/vty_test_runner.py b/tests/vty_test_runner.py index 4fb67cb..92466bb 100755 --- a/tests/vty_test_runner.py +++ b/tests/vty_test_runner.py @@ -141,7 +141,7 @@ def testVtyShow(self): res = self.vty.command("show ns") - self.assertTrue(res.find('Encapsulation NS-UDP-IP') >= 0) + self.assertTrue(res.find('0 NS-VC:') >= 0) self.assertTrue(self.vty.verify('show bssgp', [''])) self.assertTrue(self.vty.verify('show bssgp stats', [''])) self.assertTrue(self.vty.verify('show bssgp nsei 123', [''])) -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/20397 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I92a3bcaf166b091a22d74c7c1586964d33d7cc9d Gerrit-Change-Number: 20397 Gerrit-PatchSet: 14 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 16:09:34 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 4 Jan 2021 16:09:34 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: use ns2 vty2 In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21819 ) Change subject: gbproxy: use ns2 vty2 ...................................................................... Patch Set 5: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21819 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I2a18dcf035f1fc7304a0c7c7c83b5e8e15429d2b Gerrit-Change-Number: 21819 Gerrit-PatchSet: 5 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 04 Jan 2021 16:09:34 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 16:15:20 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 4 Jan 2021 16:15:20 +0000 Subject: Change in libosmocore[master]: gprs_ns2: set transfer cap in NS Status primitive In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21753 ) Change subject: gprs_ns2: set transfer cap in NS Status primitive ...................................................................... Patch Set 8: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21753 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia1046db9e0d50855bff9de670b612ffc57af9995 Gerrit-Change-Number: 21753 Gerrit-PatchSet: 8 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 04 Jan 2021 16:15:20 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 16:15:57 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 4 Jan 2021 16:15:57 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: change osmo-gbproxy.cfg to support ns2 vty2 In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21617 ) Change subject: gbproxy: change osmo-gbproxy.cfg to support ns2 vty2 ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21617 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I1c3fde35cec7fa0adf2bef7659dfc19bf301ffa9 Gerrit-Change-Number: 21617 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 04 Jan 2021 16:15:57 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 16:19:13 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 4 Jan 2021 16:19:13 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: osmo-gbproxy.cfg: support new sgsn syntax References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21934 ) Change subject: gbproxy: osmo-gbproxy.cfg: support new sgsn syntax ...................................................................... gbproxy: osmo-gbproxy.cfg: support new sgsn syntax osmo-gbproxy has a new syntax for sgsns to support pooling Change-Id: I157dbbe42db4ed03861b914e91e49764b0b1a1bb --- M gbproxy/osmo-gbproxy.cfg M gbproxy/osmo-gbproxy.fr.cfg 2 files changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/34/21934/1 diff --git a/gbproxy/osmo-gbproxy.cfg b/gbproxy/osmo-gbproxy.cfg index 52362b0..a3148e2 100644 --- a/gbproxy/osmo-gbproxy.cfg +++ b/gbproxy/osmo-gbproxy.cfg @@ -6,7 +6,7 @@ no login ! gbproxy - sgsn nsei 101 +sgsn nsei 101 ns bind udp local listen 127.0.0.1 23000 diff --git a/gbproxy/osmo-gbproxy.fr.cfg b/gbproxy/osmo-gbproxy.fr.cfg index b3d19d0..bd94c5b 100644 --- a/gbproxy/osmo-gbproxy.fr.cfg +++ b/gbproxy/osmo-gbproxy.fr.cfg @@ -47,4 +47,4 @@ nsvc fr hdlcnet7 dlci 22 nsvci 7 nsvc fr hdlcnet8 dlci 23 nsvci 8 gbproxy - sgsn nsei 101 +sgsn nsei 101 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21934 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I157dbbe42db4ed03861b914e91e49764b0b1a1bb Gerrit-Change-Number: 21934 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 16:21:30 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 4 Jan 2021 16:21:30 +0000 Subject: Change in osmo-bts[master]: l1sap: fix to_gsmtap(): include Uplink RSSI in GSMTAP packets References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/21935 ) Change subject: l1sap: fix to_gsmtap(): include Uplink RSSI in GSMTAP packets ...................................................................... l1sap: fix to_gsmtap(): include Uplink RSSI in GSMTAP packets Change-Id: Ic48283fa76b682aee151a94ef7274ac96545e087 --- M src/common/l1sap.c 1 file changed, 5 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/35/21935/1 diff --git a/src/common/l1sap.c b/src/common/l1sap.c index 33d10a5..6d0e3bf 100644 --- a/src/common/l1sap.c +++ b/src/common/l1sap.c @@ -502,6 +502,7 @@ uint8_t chan_type = 0, tn = 0, ss = 0; uint32_t fn; uint16_t uplink = GSMTAP_ARFCN_F_UPLINK; + int8_t signal_dbm; int rc; if (!gsmtap) @@ -520,10 +521,12 @@ else rc = gsmtap_ph_data(l1sap, &chan_type, &ss, fn, &data, &len, num_agch(trx, "GSMTAP")); + signal_dbm = l1sap->u.data.rssi; break; case OSMO_PRIM(PRIM_PH_RACH, PRIM_OP_INDICATION): rc = gsmtap_ph_rach(l1sap, &chan_type, &tn, &ss, &fn, &data, &len); + signal_dbm = l1sap->u.rach_ind.rssi; break; default: rc = -ENOTSUP; @@ -547,8 +550,8 @@ if (is_fill_frame(chan_type, data, len)) return 0; - gsmtap_send(gsmtap, trx->arfcn | uplink, tn, chan_type, ss, fn, 0, 0, - data, len); + gsmtap_send(gsmtap, trx->arfcn | uplink, tn, chan_type, ss, fn, + signal_dbm, 0, data, len); return 0; } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21935 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic48283fa76b682aee151a94ef7274ac96545e087 Gerrit-Change-Number: 21935 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 16:24:19 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 4 Jan 2021 16:24:19 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: use ns2 vty2 In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21819 ) Change subject: gbproxy: use ns2 vty2 ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21819 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I2a18dcf035f1fc7304a0c7c7c83b5e8e15429d2b Gerrit-Change-Number: 21819 Gerrit-PatchSet: 5 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 04 Jan 2021 16:24:19 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 16:24:40 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 4 Jan 2021 16:24:40 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: osmo-gbproxy.cfg: support new sgsn syntax In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21934 ) Change subject: gbproxy: osmo-gbproxy.cfg: support new sgsn syntax ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21934 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I157dbbe42db4ed03861b914e91e49764b0b1a1bb Gerrit-Change-Number: 21934 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Comment-Date: Mon, 04 Jan 2021 16:24:40 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 16:24:42 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 4 Jan 2021 16:24:42 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: change osmo-gbproxy.cfg to support ns2 vty2 In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21617 ) Change subject: gbproxy: change osmo-gbproxy.cfg to support ns2 vty2 ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21617 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I1c3fde35cec7fa0adf2bef7659dfc19bf301ffa9 Gerrit-Change-Number: 21617 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 04 Jan 2021 16:24:42 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 16:27:41 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 4 Jan 2021 16:27:41 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: use ns2 vty2 In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21819 ) Change subject: gbproxy: use ns2 vty2 ...................................................................... gbproxy: use ns2 vty2 The new gprs_ns2 vty2 support ip-sns and reorganize the network service configuration Depends: I163279cf57e84198dc8c53e1c109f5a9474670e9 (libosmocore) Change-Id: I2a18dcf035f1fc7304a0c7c7c83b5e8e15429d2b --- M doc/examples/osmo-gbproxy/osmo-gbproxy-legacy.cfg M doc/examples/osmo-gbproxy/osmo-gbproxy-pool.cfg M doc/examples/osmo-gbproxy/osmo-gbproxy.cfg M src/gbproxy/gb_proxy_main.c 4 files changed, 18 insertions(+), 37 deletions(-) Approvals: daniel: Looks good to me, approved Jenkins Builder: Verified diff --git a/doc/examples/osmo-gbproxy/osmo-gbproxy-legacy.cfg b/doc/examples/osmo-gbproxy/osmo-gbproxy-legacy.cfg index c1dcfe7..e30b9f7 100644 --- a/doc/examples/osmo-gbproxy/osmo-gbproxy-legacy.cfg +++ b/doc/examples/osmo-gbproxy/osmo-gbproxy-legacy.cfg @@ -22,12 +22,11 @@ no login ! ns - nse 666 nsvci 666 - nse 666 remote-role sgsn -! nse 666 encapsulation framerelay-gre - nse 666 remote-ip 127.0.0.1 - nse 666 remote-port 23001 -! nse 666 fr-dlci 666 + bind udp local + listen 127.0.0.1 23000 + accept-ipaccess + nse 666 + nsvc ipa local 127.0.0.1 23001 nsvci 666 timer tns-block 3 timer tns-block-retries 3 timer tns-reset 3 @@ -35,9 +34,6 @@ timer tns-test 30 timer tns-alive 3 timer tns-alive-retries 10 - encapsulation udp local-port 23000 - encapsulation udp local-ip 127.0.0.1 -! encapsulation framerelay-gre enabled 1 gbproxy sgsn nsei 666 core-mobile-country-code 666 diff --git a/doc/examples/osmo-gbproxy/osmo-gbproxy-pool.cfg b/doc/examples/osmo-gbproxy/osmo-gbproxy-pool.cfg index df765c0..a5e8967 100644 --- a/doc/examples/osmo-gbproxy/osmo-gbproxy-pool.cfg +++ b/doc/examples/osmo-gbproxy/osmo-gbproxy-pool.cfg @@ -15,16 +15,13 @@ nri add 2 nri add 12 ns - nse 101 nsvci 101 - nse 101 remote-role sgsn - nse 101 encapsulation udp - nse 101 remote-ip 192.168.100.239 - nse 101 remote-port 7777 - nse 102 nsvci 102 - nse 102 remote-role sgsn - nse 102 encapsulation udp - nse 102 remote-ip 192.168.100.239 - nse 102 remote-port 7778 + bind udp local + listen 127.0.0.100 23000 + accept-ipaccess + nse 101 + nsvc ipa local 192.168.100.239 7777 nsvci 101 + nse 102 + nsvc ipa local 192.168.100.239 7778 nsvci 102 timer tns-block 3 timer tns-block-retries 3 timer tns-reset 3 @@ -32,7 +29,3 @@ timer tns-test 30 timer tns-alive 3 timer tns-alive-retries 10 - encapsulation framerelay-gre enabled 0 - encapsulation framerelay-gre local-ip 0.0.0.0 - encapsulation udp local-ip 127.0.0.100 - encapsulation udp local-port 23000 diff --git a/doc/examples/osmo-gbproxy/osmo-gbproxy.cfg b/doc/examples/osmo-gbproxy/osmo-gbproxy.cfg index 5cabc6d..0a2c16e 100644 --- a/doc/examples/osmo-gbproxy/osmo-gbproxy.cfg +++ b/doc/examples/osmo-gbproxy/osmo-gbproxy.cfg @@ -8,11 +8,11 @@ gbproxy sgsn nsei 101 ns - nse 101 nsvci 101 - nse 101 remote-role sgsn - nse 101 encapsulation udp - nse 101 remote-ip 192.168.100.239 - nse 101 remote-port 7777 + bind udp local + listen 127.0.0.100 23000 + accept-ipaccess + nse 101 + nsvc ipa local 192.168.100.239 7777 nsvci 101 timer tns-block 3 timer tns-block-retries 3 timer tns-reset 3 @@ -20,7 +20,3 @@ timer tns-test 30 timer tns-alive 3 timer tns-alive-retries 10 - encapsulation framerelay-gre enabled 0 - encapsulation framerelay-gre local-ip 0.0.0.0 - encapsulation udp local-ip 127.0.0.100 - encapsulation udp local-port 23000 diff --git a/src/gbproxy/gb_proxy_main.c b/src/gbproxy/gb_proxy_main.c index c660ede..37afb5e 100644 --- a/src/gbproxy/gb_proxy_main.c +++ b/src/gbproxy/gb_proxy_main.c @@ -289,7 +289,7 @@ exit(1); } - gprs_ns2_vty_init(gbcfg->nsi, NULL); + gprs_ns2_vty2_init(gbcfg->nsi); logging_vty_add_deprecated_subsys(tall_sgsn_ctx, "bssgp"); gprs_ns2_dynamic_create_nse(gbcfg->nsi, true); @@ -301,10 +301,6 @@ exit(2); } - gprs_ns2_vty_create(); - - /* TODO: Warn if we create a gbproxy_nse for an NSEI which we don't have a bind */ - /* start telnet after reading config for vty_get_bind_addr() */ rc = telnet_init_dynif(tall_sgsn_ctx, NULL, vty_get_bind_addr(), OSMO_VTY_PORT_GBPROXY); -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21819 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I2a18dcf035f1fc7304a0c7c7c83b5e8e15429d2b Gerrit-Change-Number: 21819 Gerrit-PatchSet: 6 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 16:28:06 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 4 Jan 2021 16:28:06 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: change osmo-gbproxy.cfg to support ns2 vty2 In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21617 ) Change subject: gbproxy: change osmo-gbproxy.cfg to support ns2 vty2 ...................................................................... gbproxy: change osmo-gbproxy.cfg to support ns2 vty2 All test case (except 3 which fails on jenkins as well) succeed. Change-Id: I1c3fde35cec7fa0adf2bef7659dfc19bf301ffa9 --- M gbproxy/osmo-gbproxy.cfg M gbproxy/osmo-gbproxy.fr.cfg 2 files changed, 36 insertions(+), 26 deletions(-) Approvals: daniel: Looks good to me, approved Jenkins Builder: Verified diff --git a/gbproxy/osmo-gbproxy.cfg b/gbproxy/osmo-gbproxy.cfg index 350ddf5..52362b0 100644 --- a/gbproxy/osmo-gbproxy.cfg +++ b/gbproxy/osmo-gbproxy.cfg @@ -8,11 +8,11 @@ gbproxy sgsn nsei 101 ns - nse 101 nsvci 101 - nse 101 remote-role sgsn - nse 101 encapsulation udp - nse 101 remote-ip 127.0.0.1 - nse 101 remote-port 7777 + bind udp local + listen 127.0.0.1 23000 + accept-ipaccess + nse 101 + nsvc ipa local 127.0.0.1 7777 nsvci 101 timer tns-block 3 timer tns-block-retries 3 timer tns-reset 3 @@ -20,6 +20,3 @@ timer tns-test 30 timer tns-alive 3 timer tns-alive-retries 10 - encapsulation udp local-ip 127.0.0.1 - encapsulation udp local-port 23000 - encapsulation framerelay-gre enabled 0 diff --git a/gbproxy/osmo-gbproxy.fr.cfg b/gbproxy/osmo-gbproxy.fr.cfg index efec418..b3d19d0 100644 --- a/gbproxy/osmo-gbproxy.fr.cfg +++ b/gbproxy/osmo-gbproxy.fr.cfg @@ -8,11 +8,24 @@ no login ! ns - nse 101 nsvci 101 - nse 101 remote-role sgsn - nse 101 encapsulation udp - nse 101 remote-ip 127.0.0.1 - nse 101 remote-port 7777 + bind udp local + listen 127.0.0.1 23000 + bind fr hdlcnet1 + fr hdlcnet1 frnet + bind fr hdlcnet2 + fr hdlcnet2 frnet + bind fr hdlcnet3 + fr hdlcnet3 frnet + bind fr hdlcnet4 + fr hdlcnet4 frnet + bind fr hdlcnet5 + fr hdlcnet5 frnet + bind fr hdlcnet6 + fr hdlcnet6 frnet + bind fr hdlcnet7 + fr hdlcnet7 frnet + bind fr hdlcnet8 + fr hdlcnet8 frnet timer tns-block 3 timer tns-block-retries 3 timer tns-reset 3 @@ -20,18 +33,18 @@ timer tns-test 30 timer tns-alive 3 timer tns-alive-retries 10 - encapsulation udp local-ip 127.0.0.1 - encapsulation udp local-port 23000 - encapsulation framerelay-gre enabled 0 - - nse 2001 nsvci 1 frnet hdlcnet1 dlci 16 - nse 2001 nsvci 2 frnet hdlcnet2 dlci 17 - nse 2001 nsvci 3 frnet hdlcnet3 dlci 18 - nse 2001 nsvci 4 frnet hdlcnet4 dlci 19 - nse 2002 nsvci 5 frnet hdlcnet5 dlci 20 - nse 2002 nsvci 6 frnet hdlcnet6 dlci 21 - nse 2003 nsvci 7 frnet hdlcnet7 dlci 22 - nse 2003 nsvci 8 frnet hdlcnet8 dlci 23 - + nse 101 + nsvc ipa local 127.0.0.1 7777 nsvci 101 + nse 2001 + nsvc fr hdlcnet1 dlci 16 nsvci 1 + nsvc fr hdlcnet2 dlci 17 nsvci 2 + nsvc fr hdlcnet3 dlci 18 nsvci 3 + nsvc fr hdlcnet4 dlci 19 nsvci 4 + nse 2002 + nsvc fr hdlcnet5 dlci 20 nsvci 5 + nsvc fr hdlcnet6 dlci 21 nsvci 6 + nse 2003 + nsvc fr hdlcnet7 dlci 22 nsvci 7 + nsvc fr hdlcnet8 dlci 23 nsvci 8 gbproxy sgsn nsei 101 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21617 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I1c3fde35cec7fa0adf2bef7659dfc19bf301ffa9 Gerrit-Change-Number: 21617 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 16:28:12 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 4 Jan 2021 16:28:12 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: osmo-gbproxy.cfg: support new sgsn syntax In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21934 ) Change subject: gbproxy: osmo-gbproxy.cfg: support new sgsn syntax ...................................................................... gbproxy: osmo-gbproxy.cfg: support new sgsn syntax osmo-gbproxy has a new syntax for sgsns to support pooling Change-Id: I157dbbe42db4ed03861b914e91e49764b0b1a1bb --- M gbproxy/osmo-gbproxy.cfg M gbproxy/osmo-gbproxy.fr.cfg 2 files changed, 2 insertions(+), 2 deletions(-) Approvals: daniel: Looks good to me, approved Jenkins Builder: Verified diff --git a/gbproxy/osmo-gbproxy.cfg b/gbproxy/osmo-gbproxy.cfg index 52362b0..a3148e2 100644 --- a/gbproxy/osmo-gbproxy.cfg +++ b/gbproxy/osmo-gbproxy.cfg @@ -6,7 +6,7 @@ no login ! gbproxy - sgsn nsei 101 +sgsn nsei 101 ns bind udp local listen 127.0.0.1 23000 diff --git a/gbproxy/osmo-gbproxy.fr.cfg b/gbproxy/osmo-gbproxy.fr.cfg index b3d19d0..bd94c5b 100644 --- a/gbproxy/osmo-gbproxy.fr.cfg +++ b/gbproxy/osmo-gbproxy.fr.cfg @@ -47,4 +47,4 @@ nsvc fr hdlcnet7 dlci 22 nsvci 7 nsvc fr hdlcnet8 dlci 23 nsvci 8 gbproxy - sgsn nsei 101 +sgsn nsei 101 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21934 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I157dbbe42db4ed03861b914e91e49764b0b1a1bb Gerrit-Change-Number: 21934 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 16:30:48 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 4 Jan 2021 16:30:48 +0000 Subject: Change in osmo-bts[master]: l1sap: fix to_gsmtap(): include Uplink RSSI in GSMTAP packets In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21935 ) Change subject: l1sap: fix to_gsmtap(): include Uplink RSSI in GSMTAP packets ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21935 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic48283fa76b682aee151a94ef7274ac96545e087 Gerrit-Change-Number: 21935 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 04 Jan 2021 16:30:48 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 16:53:26 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 4 Jan 2021 16:53:26 +0000 Subject: Change in libosmocore[master]: gsmtap_util: SNR can be negative, use a signed integer References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21936 ) Change subject: gsmtap_util: SNR can be negative, use a signed integer ...................................................................... gsmtap_util: SNR can be negative, use a signed integer In 'struct gsmtap_hdr' field 'snr_db' is defined as a signed integer, however all functions that fill this structure accept an unsigned integer. This is wrong, because SNR can be negative. Let's use 'int8_t' instead of 'uint8_t'. Changing from unsigned to signed should be relatively safe compared to the opposite. Most of the callers I am aware of always do pass 0 anyway. Change-Id: I9f432be5c346d563bf518111c14ff04d4a63f592 Related: SYS#5073 --- M include/osmocom/core/gsmtap_util.h M src/gsmtap_util.c 2 files changed, 8 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/36/21936/1 diff --git a/include/osmocom/core/gsmtap_util.h b/include/osmocom/core/gsmtap_util.h index 9b215be..e564326 100644 --- a/include/osmocom/core/gsmtap_util.h +++ b/include/osmocom/core/gsmtap_util.h @@ -17,11 +17,11 @@ struct msgb *gsmtap_makemsg_ex(uint8_t type, uint16_t arfcn, uint8_t ts, uint8_t chan_type, uint8_t ss, uint32_t fn, int8_t signal_dbm, - uint8_t snr, const uint8_t *data, unsigned int len); + int8_t snr, const uint8_t *data, unsigned int len); struct msgb *gsmtap_makemsg(uint16_t arfcn, uint8_t ts, uint8_t chan_type, uint8_t ss, uint32_t fn, int8_t signal_dbm, - uint8_t snr, const uint8_t *data, unsigned int len); + int8_t snr, const uint8_t *data, unsigned int len); /*! one gsmtap instance */ struct gsmtap_inst { @@ -51,12 +51,12 @@ int gsmtap_send_ex(struct gsmtap_inst *gti, uint8_t type, uint16_t arfcn, uint8_t ts, uint8_t chan_type, uint8_t ss, uint32_t fn, - int8_t signal_dbm, uint8_t snr, const uint8_t *data, + int8_t signal_dbm, int8_t snr, const uint8_t *data, unsigned int len); int gsmtap_send(struct gsmtap_inst *gti, uint16_t arfcn, uint8_t ts, uint8_t chan_type, uint8_t ss, uint32_t fn, - int8_t signal_dbm, uint8_t snr, const uint8_t *data, + int8_t signal_dbm, int8_t snr, const uint8_t *data, unsigned int len); extern const struct value_string gsmtap_gsm_channel_names[]; diff --git a/src/gsmtap_util.c b/src/gsmtap_util.c index 9a0ac02..336e1d0 100644 --- a/src/gsmtap_util.c +++ b/src/gsmtap_util.c @@ -176,7 +176,7 @@ */ struct msgb *gsmtap_makemsg_ex(uint8_t type, uint16_t arfcn, uint8_t ts, uint8_t chan_type, uint8_t ss, uint32_t fn, int8_t signal_dbm, - uint8_t snr, const uint8_t *data, unsigned int len) + int8_t snr, const uint8_t *data, unsigned int len) { struct msgb *msg; struct gsmtap_hdr *gh; @@ -223,7 +223,7 @@ */ struct msgb *gsmtap_makemsg(uint16_t arfcn, uint8_t ts, uint8_t chan_type, uint8_t ss, uint32_t fn, int8_t signal_dbm, - uint8_t snr, const uint8_t *data, unsigned int len) + int8_t snr, const uint8_t *data, unsigned int len) { return gsmtap_makemsg_ex(GSMTAP_TYPE_UM, arfcn, ts, chan_type, ss, fn, signal_dbm, snr, data, len); @@ -326,7 +326,7 @@ */ int gsmtap_send_ex(struct gsmtap_inst *gti, uint8_t type, uint16_t arfcn, uint8_t ts, uint8_t chan_type, uint8_t ss, uint32_t fn, - int8_t signal_dbm, uint8_t snr, const uint8_t *data, + int8_t signal_dbm, int8_t snr, const uint8_t *data, unsigned int len) { struct msgb *msg; @@ -351,7 +351,7 @@ */ int gsmtap_send(struct gsmtap_inst *gti, uint16_t arfcn, uint8_t ts, uint8_t chan_type, uint8_t ss, uint32_t fn, - int8_t signal_dbm, uint8_t snr, const uint8_t *data, + int8_t signal_dbm, int8_t snr, const uint8_t *data, unsigned int len) { return gsmtap_send_ex(gti, GSMTAP_TYPE_UM, arfcn, ts, chan_type, ss, fn, -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21936 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I9f432be5c346d563bf518111c14ff04d4a63f592 Gerrit-Change-Number: 21936 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 16:54:26 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 4 Jan 2021 16:54:26 +0000 Subject: Change in libosmocore[master]: gsmtap_util: SNR can be negative, use a signed integer In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21936 ) Change subject: gsmtap_util: SNR can be negative, use a signed integer ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21936 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I9f432be5c346d563bf518111c14ff04d4a63f592 Gerrit-Change-Number: 21936 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Mon, 04 Jan 2021 16:54:26 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 16:55:31 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 4 Jan 2021 16:55:31 +0000 Subject: Change in osmo-ci[master]: Add timeout to gerrit verifications In-Reply-To: References: Message-ID: Hello laforge, pespin, lynxis lazus, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ci/+/21847 to look at the new patch set (#2). Change subject: Add timeout to gerrit verifications ...................................................................... Add timeout to gerrit verifications Gerrit verification jobs sometimes hang (usually during the VTY tests). At some point we should just time out, default is 30 minutes Change-Id: I6fc6ee976f2d88efdab1582a418d1adcd384c850 --- M jobs/gerrit-verifications.yml 1 file changed, 16 insertions(+), 15 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/47/21847/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/21847 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I6fc6ee976f2d88efdab1582a418d1adcd384c850 Gerrit-Change-Number: 21847 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 17:05:40 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 4 Jan 2021 17:05:40 +0000 Subject: Change in osmo-bts[master]: l1sap: include Uplink RSSI and C/I in GSMTAP packets In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/21935 to look at the new patch set (#2). Change subject: l1sap: include Uplink RSSI and C/I in GSMTAP packets ...................................................................... l1sap: include Uplink RSSI and C/I in GSMTAP packets Since we don't yet handle Uplink noise measurements, we don't know the actual Signal-Noise-Ratio. However, we do know C/I (Carrier- Interference-Ratio), so let's send it instead of SNR. Change-Id: Ic48283fa76b682aee151a94ef7274ac96545e087 Related: SYS#5073 --- M src/common/l1sap.c 1 file changed, 7 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/35/21935/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21935 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic48283fa76b682aee151a94ef7274ac96545e087 Gerrit-Change-Number: 21935 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 17:06:39 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 4 Jan 2021 17:06:39 +0000 Subject: Change in osmo-hlr[master]: auc_test.c: Add some comments on what the test cases actually do In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-hlr/+/21933 ) Change subject: auc_test.c: Add some comments on what the test cases actually do ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/21933 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-Change-Id: Id2b9cf12823e05aeadc6f15df396f8a46ae1639d Gerrit-Change-Number: 21933 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 04 Jan 2021 17:06:39 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 17:07:33 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 4 Jan 2021 17:07:33 +0000 Subject: Change in osmo-bts[master]: cosmetic: sysmobts-mgr: fix whitespace indentation References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/21937 ) Change subject: cosmetic: sysmobts-mgr: fix whitespace indentation ...................................................................... cosmetic: sysmobts-mgr: fix whitespace indentation Change-Id: I8449a34998808f7e13cc5d1eafb5420b1cc0a9d4 --- M src/osmo-bts-sysmo/misc/sysmobts_mgr.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/37/21937/1 diff --git a/src/osmo-bts-sysmo/misc/sysmobts_mgr.c b/src/osmo-bts-sysmo/misc/sysmobts_mgr.c index 61b08b4..6077991 100644 --- a/src/osmo-bts-sysmo/misc/sysmobts_mgr.c +++ b/src/osmo-bts-sysmo/misc/sysmobts_mgr.c @@ -326,7 +326,7 @@ LOGP(DLCTRL, LOGL_NOTICE, "CTRL connected to localhost:%u\n", OSMO_CTRL_PORT_BTS); - sysmobts_mgr_temp_init(&manager, ccon); + sysmobts_mgr_temp_init(&manager, ccon); if (sysmobts_mgr_calib_init(&manager) != 0) exit(3); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21937 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8449a34998808f7e13cc5d1eafb5420b1cc0a9d4 Gerrit-Change-Number: 21937 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 17:34:08 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 4 Jan 2021 17:34:08 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Add config option to name an SGSN In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21882 to look at the new patch set (#3). Change subject: gbproxy: Add config option to name an SGSN ...................................................................... gbproxy: Add config option to name an SGSN This is useful for logging and configuration to identify an SGSN by name Change-Id: I2a3410dd9bebb242957e13a63ed70e447204203c Related: SYS#5115, OS#4472 --- M doc/examples/osmo-gbproxy/osmo-gbproxy-pool.cfg M doc/examples/osmo-gbproxy/osmo-gbproxy.cfg M include/osmocom/sgsn/gb_proxy.h M src/gbproxy/gb_proxy.c M src/gbproxy/gb_proxy_peer.c M src/gbproxy/gb_proxy_vty.c 6 files changed, 66 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/82/21882/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21882 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I2a3410dd9bebb242957e13a63ed70e447204203c Gerrit-Change-Number: 21882 Gerrit-PatchSet: 3 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 17:34:08 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 4 Jan 2021 17:34:08 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Add VTY command to override the node selection function In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21883 to look at the new patch set (#3). Change subject: gbproxy: Add VTY command to override the node selection function ...................................................................... gbproxy: Add VTY command to override the node selection function This is mainly useful when testing SGSN pooling Change-Id: I2894320413dbd0b9aec9a9bc9b88ce7cdeed206b Related: SYS#5115, OS#4472 --- M include/osmocom/sgsn/gb_proxy.h M src/gbproxy/gb_proxy_peer.c M src/gbproxy/gb_proxy_vty.c 3 files changed, 43 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/83/21883/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21883 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I2894320413dbd0b9aec9a9bc9b88ce7cdeed206b Gerrit-Change-Number: 21883 Gerrit-PatchSet: 3 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 17:38:36 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 4 Jan 2021 17:38:36 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Add config option to name an SGSN In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21882 ) Change subject: gbproxy: Add config option to name an SGSN ...................................................................... Patch Set 3: (3 comments) https://gerrit.osmocom.org/c/osmo-sgsn/+/21882/2/src/gbproxy/gb_proxy.c File src/gbproxy/gb_proxy.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/21882/2/src/gbproxy/gb_proxy.c at 224 PS2, Line 224: LOGPS > do we want this as NOTICE? Even the existing "INFO" might be high fro something that has the potenti [?] I don't think this happens for regular user-plane traffic (not having a TLLI there should be a serious issue). In any case, I'll submit those as separate patch https://gerrit.osmocom.org/c/osmo-sgsn/+/21882/2/src/gbproxy/gb_proxy.c at 233 PS2, Line 233: sgsn = llist_first_entry(&cfg->sgsns, struct gbproxy_sgsn, list); > This all looks like a separate patch imho. Done https://gerrit.osmocom.org/c/osmo-sgsn/+/21882/2/src/gbproxy/gb_proxy.c at 300 PS2, Line 300: DEBUGP(DGPRS, "CELL(%05u) using SGSN %s at NSE(%05u)\n", cell->bvci, sgsn->name, sgsn->nse->nsei); > why not using LOGPSGSN here? Because DEBUGP can be disabled during compilation and this might be called a lot. -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21882 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I2a3410dd9bebb242957e13a63ed70e447204203c Gerrit-Change-Number: 21882 Gerrit-PatchSet: 3 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 04 Jan 2021 17:38:36 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: laforge Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 17:39:12 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 4 Jan 2021 17:39:12 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Add VTY command to override the node selection function In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21883 ) Change subject: gbproxy: Add VTY command to override the node selection function ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/osmo-sgsn/+/21883/2/src/gbproxy/gb_proxy_peer.c File src/gbproxy/gb_proxy_peer.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/21883/2/src/gbproxy/gb_proxy_peer.c at 515 PS2, Line 515: LOG > agree with laforge. INFO or DEBUG. Ack -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21883 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I2894320413dbd0b9aec9a9bc9b88ce7cdeed206b Gerrit-Change-Number: 21883 Gerrit-PatchSet: 3 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 04 Jan 2021 17:39:12 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: laforge Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 17:40:26 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 4 Jan 2021 17:40:26 +0000 Subject: Change in osmo-ci[master]: Add timeout to gerrit verifications In-Reply-To: References: Message-ID: Hello laforge, pespin, lynxis lazus, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ci/+/21847 to look at the new patch set (#3). Change subject: Add timeout to gerrit verifications ...................................................................... Add timeout to gerrit verifications Gerrit verification jobs sometimes hang (usually during the VTY tests). At some point we should just time out, default is 30 minutes Change-Id: I6fc6ee976f2d88efdab1582a418d1adcd384c850 --- M jobs/gerrit-verifications.yml 1 file changed, 16 insertions(+), 15 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/47/21847/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/21847 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I6fc6ee976f2d88efdab1582a418d1adcd384c850 Gerrit-Change-Number: 21847 Gerrit-PatchSet: 3 Gerrit-Owner: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 17:43:48 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 4 Jan 2021 17:43:48 +0000 Subject: Change in osmo-ci[master]: Add timeout to gerrit verifications In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/21847 ) Change subject: Add timeout to gerrit verifications ...................................................................... Patch Set 2: Verified+1 Tested it in gerrit-osmo-sgsn Working example: https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-sgsn/IU=--disable-iu,WITH_MANUALS=1,a3=default,a4=default,label=osmocom-gerrit-debian9/1006/console Timeout set to 1m: https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-sgsn/IU=--disable-iu,WITH_MANUALS=1,a3=default,a4=default,label=osmocom-gerrit-debian9/1007/console -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/21847 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I6fc6ee976f2d88efdab1582a418d1adcd384c850 Gerrit-Change-Number: 21847 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 04 Jan 2021 17:43:48 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 17:48:41 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 4 Jan 2021 17:48:41 +0000 Subject: Change in osmo-ci[master]: Add timeout to gerrit verifications In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/21847 ) Change subject: Add timeout to gerrit verifications ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/21847 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I6fc6ee976f2d88efdab1582a418d1adcd384c850 Gerrit-Change-Number: 21847 Gerrit-PatchSet: 3 Gerrit-Owner: daniel Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 04 Jan 2021 17:48:41 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 17:49:57 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 4 Jan 2021 17:49:57 +0000 Subject: Change in osmo-ci[master]: Add timeout to gerrit verifications In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/21847 ) Change subject: Add timeout to gerrit verifications ...................................................................... Patch Set 3: Verified+1 Tested it in gerrit-osmo-sgsn Working example: https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-sgsn/IU=--disable-iu,WITH_MANUALS=1,a3=default,a4=default,label=osmocom-gerrit-debian9/1006/console Timeout set to 1m: https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-sgsn/IU=--disable-iu,WITH_MANUALS=1,a3=default,a4=default,label=osmocom-gerrit-debian9/1007/console -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/21847 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I6fc6ee976f2d88efdab1582a418d1adcd384c850 Gerrit-Change-Number: 21847 Gerrit-PatchSet: 3 Gerrit-Owner: daniel Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 04 Jan 2021 17:49:57 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 20:51:07 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 4 Jan 2021 20:51:07 +0000 Subject: Change in osmo-bts[master]: l1sap: fix: enable UL SACCH repetition if RxQual threshold is 0 References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/21938 ) Change subject: l1sap: fix: enable UL SACCH repetition if RxQual threshold is 0 ...................................................................... l1sap: fix: enable UL SACCH repetition if RxQual threshold is 0 It is expected that setting RxQual threshold to 0 would make the L1SAP logic enable repetition for both Uplink SACCH and Downlink FACCH unconditionally. However, this was only valid for the later. Let's add the missing check and make it consistent. Change-Id: Ia44a134e7f28ea990798d1b79c87b644504c0876 Related: SYS#5114 --- M src/common/l1sap.c 1 file changed, 6 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/38/21938/1 diff --git a/src/common/l1sap.c b/src/common/l1sap.c index 33d10a5..48773f1 100644 --- a/src/common/l1sap.c +++ b/src/common/l1sap.c @@ -1408,6 +1408,12 @@ if (!lchan->repeated_acch_capability.ul_sacch) return; + /* Threshold disabled (repetition is always on) */ + if (lchan->repeated_acch_capability.rxqual == 0) { + lchan->repeated_ul_sacch_active = true; + return; + } + /* convert from RXQUAL value to ber10k vale, * see also GSM 05.08, section 8.2.4 */ static const uint16_t ber10k_by_rxqual_upper[] = -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21938 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ia44a134e7f28ea990798d1b79c87b644504c0876 Gerrit-Change-Number: 21938 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 21:33:14 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 4 Jan 2021 21:33:14 +0000 Subject: Change in osmo-hlr[master]: auc_test.c: Add some comments on what the test cases actually do In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-hlr/+/21933 ) Change subject: auc_test.c: Add some comments on what the test cases actually do ...................................................................... auc_test.c: Add some comments on what the test cases actually do Change-Id: Id2b9cf12823e05aeadc6f15df396f8a46ae1639d --- M tests/auc/auc_test.c 1 file changed, 11 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve fixeria: Looks good to me, approved diff --git a/tests/auc/auc_test.c b/tests/auc/auc_test.c index db7edcb..c0620db 100644 --- a/tests/auc/auc_test.c +++ b/tests/auc/auc_test.c @@ -113,6 +113,7 @@ return len; } +/* Subscriber with 2G-only (COMP128v1) authentication data */ static void test_gen_vectors_2g_only(void) { struct osmo_sub_auth_data aud2g; @@ -174,6 +175,8 @@ comment_end(); } +/* Subscriber with separate 2G (COMP128v1) and 3G (MILENAGE) authentication data, + * reflects the default configuration of sysmoUSIM-SJS1 */ static void test_gen_vectors_2g_plus_3g(void) { struct osmo_sub_auth_data aud2g; @@ -284,6 +287,9 @@ ); } +/* Subscriber with only 3G (MILENAGE) authentication data, + * reflects the default configuration of sysmoISIM-SJA2. Resulting + * tuples are suitable for both 2G and 3G authentication */ static void test_gen_vectors_3g_only(void) { struct osmo_sub_auth_data aud2g; @@ -454,6 +460,10 @@ comment_end(); } +/* Subscriber with only 3G (XOR) authentication data, + * reflects the default configuration of sysmoTSIM-SJAx as well + * as many "Test USIM" cards. Resulting tuples are suitable for both + * 2G and 3G authentication */ static void test_gen_vectors_3g_xor(void) { struct osmo_sub_auth_data aud2g; @@ -498,6 +508,7 @@ comment_end(); } +/* Test a variety of invalid authentication data combinations */ void test_gen_vectors_bad_args() { struct osmo_auth_vector vec; -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/21933 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-Change-Id: Id2b9cf12823e05aeadc6f15df396f8a46ae1639d Gerrit-Change-Number: 21933 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 21:34:34 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 4 Jan 2021 21:34:34 +0000 Subject: Change in libosmocore[master]: gsmtap_util: SNR can be negative, use a signed integer In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21936 ) Change subject: gsmtap_util: SNR can be negative, use a signed integer ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21936 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I9f432be5c346d563bf518111c14ff04d4a63f592 Gerrit-Change-Number: 21936 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 04 Jan 2021 21:34:34 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 21:34:36 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 4 Jan 2021 21:34:36 +0000 Subject: Change in libosmocore[master]: gsmtap_util: SNR can be negative, use a signed integer In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21936 ) Change subject: gsmtap_util: SNR can be negative, use a signed integer ...................................................................... gsmtap_util: SNR can be negative, use a signed integer In 'struct gsmtap_hdr' field 'snr_db' is defined as a signed integer, however all functions that fill this structure accept an unsigned integer. This is wrong, because SNR can be negative. Let's use 'int8_t' instead of 'uint8_t'. Changing from unsigned to signed should be relatively safe compared to the opposite. Most of the callers I am aware of always do pass 0 anyway. Change-Id: I9f432be5c346d563bf518111c14ff04d4a63f592 Related: SYS#5073 --- M include/osmocom/core/gsmtap_util.h M src/gsmtap_util.c 2 files changed, 8 insertions(+), 8 deletions(-) Approvals: pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmocom/core/gsmtap_util.h b/include/osmocom/core/gsmtap_util.h index 9b215be..e564326 100644 --- a/include/osmocom/core/gsmtap_util.h +++ b/include/osmocom/core/gsmtap_util.h @@ -17,11 +17,11 @@ struct msgb *gsmtap_makemsg_ex(uint8_t type, uint16_t arfcn, uint8_t ts, uint8_t chan_type, uint8_t ss, uint32_t fn, int8_t signal_dbm, - uint8_t snr, const uint8_t *data, unsigned int len); + int8_t snr, const uint8_t *data, unsigned int len); struct msgb *gsmtap_makemsg(uint16_t arfcn, uint8_t ts, uint8_t chan_type, uint8_t ss, uint32_t fn, int8_t signal_dbm, - uint8_t snr, const uint8_t *data, unsigned int len); + int8_t snr, const uint8_t *data, unsigned int len); /*! one gsmtap instance */ struct gsmtap_inst { @@ -51,12 +51,12 @@ int gsmtap_send_ex(struct gsmtap_inst *gti, uint8_t type, uint16_t arfcn, uint8_t ts, uint8_t chan_type, uint8_t ss, uint32_t fn, - int8_t signal_dbm, uint8_t snr, const uint8_t *data, + int8_t signal_dbm, int8_t snr, const uint8_t *data, unsigned int len); int gsmtap_send(struct gsmtap_inst *gti, uint16_t arfcn, uint8_t ts, uint8_t chan_type, uint8_t ss, uint32_t fn, - int8_t signal_dbm, uint8_t snr, const uint8_t *data, + int8_t signal_dbm, int8_t snr, const uint8_t *data, unsigned int len); extern const struct value_string gsmtap_gsm_channel_names[]; diff --git a/src/gsmtap_util.c b/src/gsmtap_util.c index 9a0ac02..336e1d0 100644 --- a/src/gsmtap_util.c +++ b/src/gsmtap_util.c @@ -176,7 +176,7 @@ */ struct msgb *gsmtap_makemsg_ex(uint8_t type, uint16_t arfcn, uint8_t ts, uint8_t chan_type, uint8_t ss, uint32_t fn, int8_t signal_dbm, - uint8_t snr, const uint8_t *data, unsigned int len) + int8_t snr, const uint8_t *data, unsigned int len) { struct msgb *msg; struct gsmtap_hdr *gh; @@ -223,7 +223,7 @@ */ struct msgb *gsmtap_makemsg(uint16_t arfcn, uint8_t ts, uint8_t chan_type, uint8_t ss, uint32_t fn, int8_t signal_dbm, - uint8_t snr, const uint8_t *data, unsigned int len) + int8_t snr, const uint8_t *data, unsigned int len) { return gsmtap_makemsg_ex(GSMTAP_TYPE_UM, arfcn, ts, chan_type, ss, fn, signal_dbm, snr, data, len); @@ -326,7 +326,7 @@ */ int gsmtap_send_ex(struct gsmtap_inst *gti, uint8_t type, uint16_t arfcn, uint8_t ts, uint8_t chan_type, uint8_t ss, uint32_t fn, - int8_t signal_dbm, uint8_t snr, const uint8_t *data, + int8_t signal_dbm, int8_t snr, const uint8_t *data, unsigned int len) { struct msgb *msg; @@ -351,7 +351,7 @@ */ int gsmtap_send(struct gsmtap_inst *gti, uint16_t arfcn, uint8_t ts, uint8_t chan_type, uint8_t ss, uint32_t fn, - int8_t signal_dbm, uint8_t snr, const uint8_t *data, + int8_t signal_dbm, int8_t snr, const uint8_t *data, unsigned int len) { return gsmtap_send_ex(gti, GSMTAP_TYPE_UM, arfcn, ts, chan_type, ss, fn, -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21936 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I9f432be5c346d563bf518111c14ff04d4a63f592 Gerrit-Change-Number: 21936 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 21:35:29 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 4 Jan 2021 21:35:29 +0000 Subject: Change in osmo-bts[master]: l1sap: include Uplink RSSI and C/I in GSMTAP packets In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21935 ) Change subject: l1sap: include Uplink RSSI and C/I in GSMTAP packets ...................................................................... Patch Set 2: it's not really the same thing. I'm not sure it it's the best idea to send a different value than what is specified in that field... -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21935 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic48283fa76b682aee151a94ef7274ac96545e087 Gerrit-Change-Number: 21935 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Mon, 04 Jan 2021 21:35:29 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 21:35:45 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 4 Jan 2021 21:35:45 +0000 Subject: Change in osmo-bts[master]: cosmetic: sysmobts-mgr: fix whitespace indentation In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21937 ) Change subject: cosmetic: sysmobts-mgr: fix whitespace indentation ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21937 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8449a34998808f7e13cc5d1eafb5420b1cc0a9d4 Gerrit-Change-Number: 21937 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 04 Jan 2021 21:35:45 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 21:35:47 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 4 Jan 2021 21:35:47 +0000 Subject: Change in osmo-bts[master]: cosmetic: sysmobts-mgr: fix whitespace indentation In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21937 ) Change subject: cosmetic: sysmobts-mgr: fix whitespace indentation ...................................................................... cosmetic: sysmobts-mgr: fix whitespace indentation Change-Id: I8449a34998808f7e13cc5d1eafb5420b1cc0a9d4 --- M src/osmo-bts-sysmo/misc/sysmobts_mgr.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/osmo-bts-sysmo/misc/sysmobts_mgr.c b/src/osmo-bts-sysmo/misc/sysmobts_mgr.c index 61b08b4..6077991 100644 --- a/src/osmo-bts-sysmo/misc/sysmobts_mgr.c +++ b/src/osmo-bts-sysmo/misc/sysmobts_mgr.c @@ -326,7 +326,7 @@ LOGP(DLCTRL, LOGL_NOTICE, "CTRL connected to localhost:%u\n", OSMO_CTRL_PORT_BTS); - sysmobts_mgr_temp_init(&manager, ccon); + sysmobts_mgr_temp_init(&manager, ccon); if (sysmobts_mgr_calib_init(&manager) != 0) exit(3); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21937 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8449a34998808f7e13cc5d1eafb5420b1cc0a9d4 Gerrit-Change-Number: 21937 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 21:36:57 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 4 Jan 2021 21:36:57 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Add config option to name an SGSN In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21882 ) Change subject: gbproxy: Add config option to name an SGSN ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21882 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I2a3410dd9bebb242957e13a63ed70e447204203c Gerrit-Change-Number: 21882 Gerrit-PatchSet: 3 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 04 Jan 2021 21:36:57 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 21:36:59 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 4 Jan 2021 21:36:59 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Add config option to name an SGSN In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21882 ) Change subject: gbproxy: Add config option to name an SGSN ...................................................................... gbproxy: Add config option to name an SGSN This is useful for logging and configuration to identify an SGSN by name Change-Id: I2a3410dd9bebb242957e13a63ed70e447204203c Related: SYS#5115, OS#4472 --- M doc/examples/osmo-gbproxy/osmo-gbproxy-pool.cfg M doc/examples/osmo-gbproxy/osmo-gbproxy.cfg M include/osmocom/sgsn/gb_proxy.h M src/gbproxy/gb_proxy.c M src/gbproxy/gb_proxy_peer.c M src/gbproxy/gb_proxy_vty.c 6 files changed, 66 insertions(+), 7 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/doc/examples/osmo-gbproxy/osmo-gbproxy-pool.cfg b/doc/examples/osmo-gbproxy/osmo-gbproxy-pool.cfg index a5e8967..bbc8a1b 100644 --- a/doc/examples/osmo-gbproxy/osmo-gbproxy-pool.cfg +++ b/doc/examples/osmo-gbproxy/osmo-gbproxy-pool.cfg @@ -9,6 +9,7 @@ nri bitlen 4 nri null add 0 4 sgsn nsei 101 + name main nri add 1 nri add 11 sgsn nsei 102 diff --git a/doc/examples/osmo-gbproxy/osmo-gbproxy.cfg b/doc/examples/osmo-gbproxy/osmo-gbproxy.cfg index 0a2c16e..777d0b0 100644 --- a/doc/examples/osmo-gbproxy/osmo-gbproxy.cfg +++ b/doc/examples/osmo-gbproxy/osmo-gbproxy.cfg @@ -7,6 +7,7 @@ ! gbproxy sgsn nsei 101 + name main ns bind udp local listen 127.0.0.100 23000 diff --git a/include/osmocom/sgsn/gb_proxy.h b/include/osmocom/sgsn/gb_proxy.h index 8654d10..dd45c2f 100644 --- a/include/osmocom/sgsn/gb_proxy.h +++ b/include/osmocom/sgsn/gb_proxy.h @@ -149,6 +149,9 @@ /* The NSE belonging to this SGSN */ struct gbproxy_nse *nse; + /* Name of the SGSN */ + char *name; + /* Pool configuration for the sgsn (only valid if sgsn_facing == true) */ struct { bool allow_attach; @@ -176,7 +179,7 @@ LOGPCELL_CAT(CELL, DGPRS, LEVEL, FMT, ## ARGS) #define LOGPSGSN_CAT(SGSN, SUBSYS, LEVEL, FMT, ARGS...) \ - LOGP(SUBSYS, LEVEL, "NSE(%05u)-SGSN " FMT, (SGSN)->nse->nsei, ## ARGS) + LOGP(SUBSYS, LEVEL, "NSE(%05u)-SGSN(%s) " FMT, (SGSN)->nse->nsei, (SGSN)->name, ## ARGS) #define LOGPSGSN(SGSN, LEVEL, FMT, ARGS...) \ LOGPSGSN_CAT(SGSN, DGPRS, LEVEL, FMT, ## ARGS) @@ -224,8 +227,9 @@ struct gbproxy_nse *gbproxy_nse_by_nsei_or_new(struct gbproxy_config *cfg, uint16_t nsei, bool sgsn_facing); /* SGSN handling */ -struct gbproxy_sgsn *gbproxy_sgsn_alloc(struct gbproxy_config *cfg, uint16_t nsei); +struct gbproxy_sgsn *gbproxy_sgsn_alloc(struct gbproxy_config *cfg, uint16_t nsei, const char *name); void gbproxy_sgsn_free(struct gbproxy_sgsn *sgsn); +struct gbproxy_sgsn *gbproxy_sgsn_by_name(struct gbproxy_config *cfg, const char *name); struct gbproxy_sgsn *gbproxy_sgsn_by_nsei(struct gbproxy_config *cfg, uint16_t nsei); struct gbproxy_sgsn *gbproxy_sgsn_by_nsei_or_new(struct gbproxy_config *cfg, uint16_t nsei); struct gbproxy_sgsn *gbproxy_sgsn_by_nri(struct gbproxy_config *cfg, uint16_t nri, bool *null_nri); diff --git a/src/gbproxy/gb_proxy.c b/src/gbproxy/gb_proxy.c index d86c6ae..34cff31 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -302,7 +302,7 @@ } /* This shouldn't happen */ - LOGPCELL(cell, LOGL_ERROR, "Could not find matching BVC for SGSN, dropping message!\n"); + LOGPCELL(cell, LOGL_ERROR, "Could not find matching BVC for SGSN %s, dropping message!\n", sgsn->name); return NULL; } diff --git a/src/gbproxy/gb_proxy_peer.c b/src/gbproxy/gb_proxy_peer.c index a966c6c..88b71be 100644 --- a/src/gbproxy/gb_proxy_peer.c +++ b/src/gbproxy/gb_proxy_peer.c @@ -350,9 +350,10 @@ /*! Allocate a new SGSN. This ensures the corresponding gbproxy_nse is allocated as well * \param[in] cfg The gbproxy configuration * \param[in] nsei The nsei where the SGSN can be reached + * \param[in] name A name to give the SGSN * \return The SGSN, NULL if it couldn't be allocated */ -struct gbproxy_sgsn *gbproxy_sgsn_alloc(struct gbproxy_config *cfg, uint16_t nsei) +struct gbproxy_sgsn *gbproxy_sgsn_alloc(struct gbproxy_config *cfg, uint16_t nsei, const char *name) { struct gbproxy_sgsn *sgsn; OSMO_ASSERT(cfg); @@ -364,16 +365,26 @@ sgsn->nse = gbproxy_nse_alloc(cfg, nsei, true); if (!sgsn->nse) { LOGPSGSN_CAT(sgsn, DOBJ, LOGL_INFO, "Could not allocate NSE(%05u) for SGSN\n", nsei); - talloc_free(sgsn); - return NULL; + goto free_sgsn; } + if (name) + sgsn->name = talloc_strdup(sgsn, name); + else + sgsn->name = talloc_asprintf(sgsn, "NSE(%05u)", sgsn->nse->nsei); + if (!sgsn->name) + goto free_sgsn; + sgsn->pool.allow_attach = true; sgsn->pool.nri_ranges = osmo_nri_ranges_alloc(sgsn); llist_add_tail(&sgsn->list, &cfg->sgsns); LOGPSGSN_CAT(sgsn, DOBJ, LOGL_INFO, "SGSN Created\n"); return sgsn; + +free_sgsn: + talloc_free(sgsn); + return NULL; } /* Only free gbproxy_sgsn, sgsn can't be NULL */ @@ -386,6 +397,7 @@ LOGPSGSN_CAT(sgsn, DOBJ, LOGL_INFO, "SGSN Destroying\n"); llist_del(&sgsn->list); + // talloc will free ->name and ->pool.nri_ranges talloc_free(sgsn); } @@ -408,6 +420,24 @@ * \param[in] nsei The nsei where the SGSN can be reached * \return Returns the matching SGSN or NULL if it couldn't be found */ +struct gbproxy_sgsn *gbproxy_sgsn_by_name(struct gbproxy_config *cfg, const char *name) +{ + struct gbproxy_sgsn *sgsn; + OSMO_ASSERT(cfg); + + llist_for_each_entry(sgsn, &cfg->sgsns, list) { + if (!strcmp(sgsn->name, name)) + return sgsn; + } + + return NULL; +} + +/*! Return the SGSN for a given NSEI + * \param[in] cfg The gbproxy configuration + * \param[in] nsei The nsei where the SGSN can be reached + * \return Returns the matching SGSN or NULL if it couldn't be found + */ struct gbproxy_sgsn *gbproxy_sgsn_by_nsei(struct gbproxy_config *cfg, uint16_t nsei) { struct gbproxy_sgsn *sgsn; @@ -433,7 +463,7 @@ sgsn = gbproxy_sgsn_by_nsei(cfg, nsei); if (!sgsn) - sgsn = gbproxy_sgsn_alloc(cfg, nsei); + sgsn = gbproxy_sgsn_alloc(cfg, nsei, NULL); return sgsn; } diff --git a/src/gbproxy/gb_proxy_vty.c b/src/gbproxy/gb_proxy_vty.c index 92915fe..4d0fa3d 100644 --- a/src/gbproxy/gb_proxy_vty.c +++ b/src/gbproxy/gb_proxy_vty.c @@ -29,6 +29,7 @@ #include #include #include +#include #include #include @@ -188,6 +189,7 @@ static void write_sgsn(struct vty *vty, struct gbproxy_sgsn *sgsn) { vty_out(vty, "sgsn nsei %u%s", sgsn->nse->nsei, VTY_NEWLINE); + vty_out(vty, " name %s%s", sgsn->name, VTY_NEWLINE); vty_out(vty, " %sallow-attach%s", sgsn->pool.allow_attach ? "" : "no ", VTY_NEWLINE); sgsn_write_nri(vty, sgsn, false); } @@ -256,6 +258,26 @@ return CMD_WARNING; } +DEFUN(cfg_sgsn_name, + cfg_sgsn_name_cmd, + "name NAME", + "Configure the SGSN\n" + "Name the SGSN\n" + "The name\n") +{ + struct gbproxy_sgsn *sgsn = vty->index; + const char *name = argv[0]; + + + osmo_talloc_replace_string(sgsn, &sgsn->name, name); + if (!sgsn->name) { + vty_out(vty, "%% Unable to set name for SGSN with nsei %05u%s", sgsn->nse->nsei, VTY_NEWLINE); + return CMD_WARNING; + } + + return CMD_SUCCESS; +} + DEFUN_ATTR(cfg_sgsn_nri_add, cfg_sgsn_nri_add_cmd, "nri add <0-32767> [<0-32767>]", NRI_STR "Add NRI value or range to the NRI mapping for this MSC\n" @@ -647,6 +669,7 @@ install_element(CONFIG_NODE, &cfg_sgsn_nsei_cmd); install_node(&sgsn_node, config_write_sgsn); + install_element(SGSN_NODE, &cfg_sgsn_name_cmd); install_element(SGSN_NODE, &cfg_sgsn_allow_attach_cmd); install_element(SGSN_NODE, &cfg_sgsn_no_allow_attach_cmd); install_element(SGSN_NODE, &cfg_sgsn_nri_add_cmd); -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21882 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I2a3410dd9bebb242957e13a63ed70e447204203c Gerrit-Change-Number: 21882 Gerrit-PatchSet: 3 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 21:37:36 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 4 Jan 2021 21:37:36 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Add VTY command to override the node selection function In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21883 ) Change subject: gbproxy: Add VTY command to override the node selection function ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21883 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I2894320413dbd0b9aec9a9bc9b88ce7cdeed206b Gerrit-Change-Number: 21883 Gerrit-PatchSet: 3 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 04 Jan 2021 21:37:36 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 21:37:38 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 4 Jan 2021 21:37:38 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Add VTY command to override the node selection function In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21883 ) Change subject: gbproxy: Add VTY command to override the node selection function ...................................................................... gbproxy: Add VTY command to override the node selection function This is mainly useful when testing SGSN pooling Change-Id: I2894320413dbd0b9aec9a9bc9b88ce7cdeed206b Related: SYS#5115, OS#4472 --- M include/osmocom/sgsn/gb_proxy.h M src/gbproxy/gb_proxy_peer.c M src/gbproxy/gb_proxy_vty.c 3 files changed, 43 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/include/osmocom/sgsn/gb_proxy.h b/include/osmocom/sgsn/gb_proxy.h index dd45c2f..ad5bb27 100644 --- a/include/osmocom/sgsn/gb_proxy.h +++ b/include/osmocom/sgsn/gb_proxy.h @@ -60,6 +60,10 @@ /* NRI bitlen and usable NULL-NRI ranges */ uint8_t nri_bitlen; struct osmo_nri_ranges *null_nri_ranges; + + /* Used for testing: If not NULL then this SGSN is returned by + * gbproxy_sgsn_by_tlli() */ + struct gbproxy_sgsn *nsf_override; } pool; /* hash table of all BSS side Gb peers */ diff --git a/src/gbproxy/gb_proxy_peer.c b/src/gbproxy/gb_proxy_peer.c index 88b71be..94f9c03 100644 --- a/src/gbproxy/gb_proxy_peer.c +++ b/src/gbproxy/gb_proxy_peer.c @@ -507,9 +507,15 @@ { uint32_t i = 0; uint32_t index, num_sgsns; - struct gbproxy_sgsn *sgsn; OSMO_ASSERT(cfg); + struct gbproxy_sgsn *sgsn = cfg->pool.nsf_override; + + if (sgsn) { + LOGPSGSN(sgsn, LOGL_DEBUG, "Node selection function is overridden by config\n"); + return sgsn; + } + // TODO: We should keep track of count in cfg num_sgsns = llist_count(&cfg->sgsns); diff --git a/src/gbproxy/gb_proxy_vty.c b/src/gbproxy/gb_proxy_vty.c index 4d0fa3d..fb9e87a 100644 --- a/src/gbproxy/gb_proxy_vty.c +++ b/src/gbproxy/gb_proxy_vty.c @@ -648,6 +648,36 @@ return CMD_SUCCESS; } +/* Only for ttcn3 testing */ +DEFUN_HIDDEN(sgsn_pool_nsf_fixed, sgsn_pool_nsf_fixed_cmd, + "sgsn-pool nsf fixed NAME", + "SGSN pooling: load balancing across multiple SGSNs.\n" + "Customize the Network Selection Function.\n" + "Set a fixed SGSN to use (for testing).\n" + "The name of the SGSN to use.\n") +{ + const char *name = argv[0]; + struct gbproxy_sgsn *sgsn = gbproxy_sgsn_by_name(g_cfg, name); + + if (!sgsn) { + vty_out(vty, "%% Could not find SGSN with name %s%s", name, VTY_NEWLINE); + return CMD_WARNING; + } + + g_cfg->pool.nsf_override = sgsn; + return CMD_SUCCESS; +} + +DEFUN_HIDDEN(sgsn_pool_nsf_normal, sgsn_pool_nsf_normal_cmd, + "sgsn-pool nsf normal", + "SGSN pooling: load balancing across multiple SGSNs.\n" + "Customize the Network Selection Function.\n" + "Reset the NSF back to regular operation (for testing).\n") +{ + g_cfg->pool.nsf_override = NULL; + return CMD_SUCCESS; +} + int gbproxy_vty_init(void) { install_element_ve(&show_gbproxy_bvc_cmd); @@ -659,6 +689,8 @@ install_element(ENABLE_NODE, &delete_gb_bvci_cmd); install_element(ENABLE_NODE, &delete_gb_nsei_cmd); + install_element(ENABLE_NODE, &sgsn_pool_nsf_fixed_cmd); + install_element(ENABLE_NODE, &sgsn_pool_nsf_normal_cmd); install_element(CONFIG_NODE, &cfg_gbproxy_cmd); install_node(&gbproxy_node, config_write_gbproxy); -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21883 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I2894320413dbd0b9aec9a9bc9b88ce7cdeed206b Gerrit-Change-Number: 21883 Gerrit-PatchSet: 3 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 21:38:17 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 4 Jan 2021 21:38:17 +0000 Subject: Change in osmo-ci[master]: Add timeout to gerrit verifications In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/21847 ) Change subject: Add timeout to gerrit verifications ...................................................................... Patch Set 3: Code-Review+2 I don't really like the "lack of elegance" but in absence of something better... -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/21847 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I6fc6ee976f2d88efdab1582a418d1adcd384c850 Gerrit-Change-Number: 21847 Gerrit-PatchSet: 3 Gerrit-Owner: daniel Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 04 Jan 2021 21:38:17 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 21:38:19 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 4 Jan 2021 21:38:19 +0000 Subject: Change in osmo-ci[master]: Add timeout to gerrit verifications In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/21847 ) Change subject: Add timeout to gerrit verifications ...................................................................... Add timeout to gerrit verifications Gerrit verification jobs sometimes hang (usually during the VTY tests). At some point we should just time out, default is 30 minutes Change-Id: I6fc6ee976f2d88efdab1582a418d1adcd384c850 --- M jobs/gerrit-verifications.yml 1 file changed, 16 insertions(+), 15 deletions(-) Approvals: lynxis lazus: Looks good to me, approved laforge: Looks good to me, approved daniel: Verified diff --git a/jobs/gerrit-verifications.yml b/jobs/gerrit-verifications.yml index 8d3e2cd..a2f75ce 100644 --- a/jobs/gerrit-verifications.yml +++ b/jobs/gerrit-verifications.yml @@ -42,7 +42,8 @@ -v "$ARTIFACT_STORE:/artifact_store" \ docker_img: '$USER/debian-stretch-jenkins' docker_img_erlang: '$USER/debian-buster-erlang' - cmd: '{docker_run} {docker_img} /build/contrib/jenkins.sh' + timeout_cmd: '/usr/bin/timeout 30m' + cmd: '{docker_run} {docker_img} {timeout_cmd} /build/contrib/jenkins.sh' gerrit_url: 'ssh://jenkins at gerrit.osmocom.org:29418' repos_url: '{gerrit_url}/{repos}' gerrit_project: '{repos}' @@ -61,7 +62,7 @@ a1_name: arch a1: !!python/tuple [arm-none-eabi, amd64] combination_filter: '!(arch=="arm-none-eabi" && label=="FreeBSD_amd64")' - cmd: '{docker_run} {docker_img} /build/contrib/jenkins_arch.sh "$arch"' + cmd: '{docker_run} {docker_img} {timeout_cmd} /build/contrib/jenkins_arch.sh "$arch"' - libsmpp34 - libtelnet @@ -79,13 +80,13 @@ -e IU="$IU" \ -e SMPP="$SMPP" \ -e MGCP="$MGCP" \ - {docker_img} /build/contrib/jenkins.sh + {docker_img} {timeout_cmd} /build/contrib/jenkins.sh - openggsn: a1_name: GTP a1: !!python/tuple [--enable-gtp-linux,--disable-gtp-linux] concurrent: false - cmd: ./contrib/jenkins.sh + cmd: '{timeout_cmd} ./contrib/jenkins.sh' - osmo-bsc @@ -110,12 +111,12 @@ (FIRMWARE_VERSION == "oc2g" && BTS_MODEL == "oc2g" && WITH_MANUALS == "0" && label == "osmocom-master-debian9") || (FIRMWARE_VERSION == "oc2g-next" && BTS_MODEL == "oc2g" && WITH_MANUALS == "0" && label == "osmocom-master-debian9") concurrent: false - cmd: 'ASCIIDOC_WARNINGS_CHECK="1" ./contrib/jenkins_bts_model.sh "$BTS_MODEL"' + cmd: 'ASCIIDOC_WARNINGS_CHECK="1" {timeout_cmd} ./contrib/jenkins_bts_model.sh "$BTS_MODEL"' - osmo_dia2gsup: repos_url: '{gerrit_url}/erlang/{repos}' gerrit_project: 'erlang/{repos}' - cmd: '{docker_run} {docker_img_erlang} /build/contrib/jenkins.sh' + cmd: '{docker_run} {docker_img_erlang} {timeout_cmd} /build/contrib/jenkins.sh' - osmo-e1-hardware: docker_run: | @@ -135,7 +136,7 @@ -v "$PWD:/build" -v "$HOME/bin:/build_bin" \ -v "$ARTIFACT_STORE:/artifact_store" \ docker_img: 'registry.osmocom.org/$USER/fpga-build' - cmd: 'docker pull {docker_img} && {docker_run} {docker_img} /build/contrib/jenkins.sh' + cmd: 'docker pull {docker_img} && {docker_run} {docker_img} {timeout_cmd} /build/contrib/jenkins.sh' - osmo-ggsn: a1_name: GTP @@ -149,14 +150,14 @@ {docker_run} \ -e GTP="$GTP" \ -e WITH_MANUALS="$WITH_MANUALS" \ - {docker_img} /build/contrib/jenkins.sh + {docker_img} {timeout_cmd} /build/contrib/jenkins.sh - osmo-gsm-manuals - osmo_gsup: repos_url: '{gerrit_url}/erlang/{repos}' gerrit_project: 'erlang/{repos}' - cmd: '{docker_run} {docker_img_erlang} /build/contrib/jenkins.sh' + cmd: '{docker_run} {docker_img_erlang} {timeout_cmd} /build/contrib/jenkins.sh' - osmo-hlr - osmo-iuh @@ -174,7 +175,7 @@ {docker_run} \ -e IU="$IU" \ -e WITH_MANUALS="$WITH_MANUALS" \ - {docker_img} /build/contrib/jenkins.sh + {docker_img} {timeout_cmd} /build/contrib/jenkins.sh - osmo-pcap @@ -202,7 +203,7 @@ -e with_vty="$with_vty" \ -e with_dsp="$with_dsp" \ -e WITH_MANUALS="$WITH_MANUALS" \ - {docker_img} /build/contrib/jenkins.sh + {docker_img} {timeout_cmd} /build/contrib/jenkins.sh - osmo-python-tests: repos_url: '{gerrit_url}/python/{repos}' @@ -220,12 +221,12 @@ {docker_run} \ -e IU="$IU" \ -e WITH_MANUALS="$WITH_MANUALS" \ - {docker_img} /build/contrib/jenkins.sh + {docker_img} {timeout_cmd} /build/contrib/jenkins.sh - osmo_ss7: repos_url: '{gerrit_url}/erlang/{repos}' gerrit_project: 'erlang/{repos}' - cmd: '{docker_run} {docker_img_erlang} /build/contrib/jenkins.sh' + cmd: '{docker_run} {docker_img_erlang} {timeout_cmd} /build/contrib/jenkins.sh' - osmo-sip-connector @@ -240,7 +241,7 @@ (INSTR == "--with-sse" && WITH_MANUALS == "0" && label == "osmocom-master-debian9") || (INSTR == "--with-neon" && WITH_MANUALS == "0" && label == "rpi4-deb9build-ansible") || (INSTR == "--with-neon-vfpv4" && WITH_MANUALS == "0" && label == "rpi4-deb9build-ansible") - cmd: 'ASCIIDOC_WARNINGS_CHECK=1 ./contrib/jenkins.sh' + cmd: 'ASCIIDOC_WARNINGS_CHECK=1 {timeout_cmd} ./contrib/jenkins.sh' - osmocom-bb - osmo-tetra @@ -260,7 +261,7 @@ - pysim: slave_axis: !!python/tuple [simtester] concurrent: false - cmd: './contrib/jenkins.sh' + cmd: '{timeout_cmd} ./contrib/jenkins.sh' - osmo-ttcn3-hacks: repos_url: 'https://gerrit.osmocom.org/{repos}' -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/21847 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I6fc6ee976f2d88efdab1582a418d1adcd384c850 Gerrit-Change-Number: 21847 Gerrit-PatchSet: 3 Gerrit-Owner: daniel Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 21:38:55 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 4 Jan 2021 21:38:55 +0000 Subject: Change in osmo-bts[master]: l1sap: fix: enable UL SACCH repetition if RxQual threshold is 0 In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21938 ) Change subject: l1sap: fix: enable UL SACCH repetition if RxQual threshold is 0 ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21938 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ia44a134e7f28ea990798d1b79c87b644504c0876 Gerrit-Change-Number: 21938 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Assignee: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 04 Jan 2021 21:38:55 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 21:40:28 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 4 Jan 2021 21:40:28 +0000 Subject: Change in osmo-bsc[master]: vty: join UL/DL SACCH repetition commands together In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21911 ) Change subject: vty: join UL/DL SACCH repetition commands together ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21911 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ibe98718d8f4933926eed0e622109c9c82537f526 Gerrit-Change-Number: 21911 Gerrit-PatchSet: 4 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 04 Jan 2021 21:40:28 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 21:40:32 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 4 Jan 2021 21:40:32 +0000 Subject: Change in osmo-bsc[master]: vty: join UL/DL SACCH repetition commands together In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21911 ) Change subject: vty: join UL/DL SACCH repetition commands together ...................................................................... vty: join UL/DL SACCH repetition commands together Both commands are basically doing the same thing, so we can merge them into a single command by adding a parameter to the command string. The VTY syntax remains the same: do-something foo do-something bar becomes: do-something (foo|bar) This change reduces code duplication. Change-Id: Ibe98718d8f4933926eed0e622109c9c82537f526 Related: SYS#5114 --- M src/osmo-bsc/bsc_vty.c 1 file changed, 20 insertions(+), 45 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c index 7a68c3e..34ea87e 100644 --- a/src/osmo-bsc/bsc_vty.c +++ b/src/osmo-bsc/bsc_vty.c @@ -2784,11 +2784,13 @@ return CMD_SUCCESS; } -DEFUN_ATTR(cfg_bts_rep_dl_sacch, - cfg_bts_rep_dl_sacch_cmd, - "repeat dl-sacch", +DEFUN_ATTR(cfg_bts_rep_ul_dl_sacch, + cfg_bts_rep_ul_dl_sacch_cmd, + "repeat (ul-sacch|dl-sacch)", REP_ACCH_STR - "Enable DL-SACCH repetition for this BTS\n", CMD_ATTR_IMMEDIATE) + "Enable UL-SACCH repetition for this BTS\n" + "Enable DL-SACCH repetition for this BTS\n", + CMD_ATTR_IMMEDIATE) { struct gsm_bts *bts = vty->index; @@ -2798,52 +2800,27 @@ return CMD_WARNING; } - bts->repeated_acch_policy.dl_sacch = true; + if (strcmp(argv[0], "ul-sacch") == 0) + bts->repeated_acch_policy.ul_sacch = true; + else + bts->repeated_acch_policy.dl_sacch = true; return CMD_SUCCESS; } -DEFUN_ATTR(cfg_bts_rep_no_dl_sacch, - cfg_bts_rep_no_dl_sacch_cmd, - "no repeat dl-sacch", +DEFUN_ATTR(cfg_bts_rep_no_ul_dl_sacch, + cfg_bts_rep_no_ul_dl_sacch_cmd, + "no repeat (ul-sacch|dl-sacch)", NO_STR REP_ACCH_STR + "Disable UL-SACCH repetition for this BTS\n" "Disable DL-SACCH repetition for this BTS\n", CMD_ATTR_IMMEDIATE) { struct gsm_bts *bts = vty->index; - bts->repeated_acch_policy.dl_sacch = false; - - return CMD_SUCCESS; -} - -DEFUN_ATTR(cfg_bts_rep_ul_sacch, - cfg_bts_rep_ul_sacch_cmd, - "repeat ul-sacch", - REP_ACCH_STR - "Enable UL-SACCH repetition for this BTS\n", CMD_ATTR_IMMEDIATE) -{ - struct gsm_bts *bts = vty->index; - - if (bts->model->type != GSM_BTS_TYPE_OSMOBTS) { - vty_out(vty, "%% repeated ACCH not supported by BTS %u%s", - bts->nr, VTY_NEWLINE); - return CMD_WARNING; - } - - bts->repeated_acch_policy.ul_sacch = true; - - return CMD_SUCCESS; -} - -DEFUN_ATTR(cfg_bts_rep_no_ul_sacch, - cfg_bts_rep_no_ul_sacch_cmd, - "no repeat ul-sacch", - NO_STR REP_ACCH_STR - "Disable UL-SACCH repetition for this BTS\n", CMD_ATTR_IMMEDIATE) -{ - struct gsm_bts *bts = vty->index; - - bts->repeated_acch_policy.ul_sacch = false; + if (strcmp(argv[0], "ul-sacch") == 0) + bts->repeated_acch_policy.ul_sacch = false; + else + bts->repeated_acch_policy.dl_sacch = false; return CMD_SUCCESS; } @@ -7705,10 +7682,8 @@ install_element(BTS_NODE, &cfg_bts_no_t3113_dynamic_cmd); install_element(BTS_NODE, &cfg_bts_rep_dl_facch_cmd); install_element(BTS_NODE, &cfg_bts_rep_no_dl_facch_cmd); - install_element(BTS_NODE, &cfg_bts_rep_dl_sacch_cmd); - install_element(BTS_NODE, &cfg_bts_rep_no_dl_sacch_cmd); - install_element(BTS_NODE, &cfg_bts_rep_ul_sacch_cmd); - install_element(BTS_NODE, &cfg_bts_rep_no_ul_sacch_cmd); + install_element(BTS_NODE, &cfg_bts_rep_ul_dl_sacch_cmd); + install_element(BTS_NODE, &cfg_bts_rep_no_ul_dl_sacch_cmd); install_element(BTS_NODE, &cfg_bts_rep_rxqual_cmd); neighbor_ident_vty_init(network, network->neighbor_bss_cells); -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21911 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ibe98718d8f4933926eed0e622109c9c82537f526 Gerrit-Change-Number: 21911 Gerrit-PatchSet: 4 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 21:40:32 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 4 Jan 2021 21:40:32 +0000 Subject: Change in osmo-bsc[master]: vty: fix wrong attributes for UL/DL ACCH repetition commands In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21912 ) Change subject: vty: fix wrong attributes for UL/DL ACCH repetition commands ...................................................................... vty: fix wrong attributes for UL/DL ACCH repetition commands None of those commands apply immediately, they only affect newly established logical channels. The reason is that the related IEs are only getting sent on channel activation / assignment. Change-Id: I06c7851115fb31d1eb92c400d9724f4f051bd171 Related: SYS#5114 --- M src/osmo-bsc/bsc_vty.c 1 file changed, 42 insertions(+), 39 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c index 34ea87e..14be3fa 100644 --- a/src/osmo-bsc/bsc_vty.c +++ b/src/osmo-bsc/bsc_vty.c @@ -2744,13 +2744,14 @@ #define REP_ACCH_STR "FACCH/SACCH repetition\n" -DEFUN_ATTR(cfg_bts_rep_dl_facch, - cfg_bts_rep_dl_facch_cmd, - "repeat dl-facch (command|all)", - REP_ACCH_STR - "Enable DL-FACCH repetition for this BTS\n" - "command LAPDm frames only\n" - "all LAPDm frames\n", CMD_ATTR_IMMEDIATE) +DEFUN_USRATTR(cfg_bts_rep_dl_facch, + cfg_bts_rep_dl_facch_cmd, + X(BSC_VTY_ATTR_NEW_LCHAN), + "repeat dl-facch (command|all)", + REP_ACCH_STR + "Enable DL-FACCH repetition for this BTS\n" + "command LAPDm frames only\n" + "all LAPDm frames\n") { struct gsm_bts *bts = vty->index; @@ -2770,11 +2771,12 @@ return CMD_SUCCESS; } -DEFUN_ATTR(cfg_bts_rep_no_dl_facch, - cfg_bts_rep_no_dl_facch_cmd, - "no repeat dl-facch", - NO_STR REP_ACCH_STR - "Disable DL-FACCH repetition for this BTS\n", CMD_ATTR_IMMEDIATE) +DEFUN_USRATTR(cfg_bts_rep_no_dl_facch, + cfg_bts_rep_no_dl_facch_cmd, + X(BSC_VTY_ATTR_NEW_LCHAN), + "no repeat dl-facch", + NO_STR REP_ACCH_STR + "Disable DL-FACCH repetition for this BTS\n") { struct gsm_bts *bts = vty->index; @@ -2784,13 +2786,13 @@ return CMD_SUCCESS; } -DEFUN_ATTR(cfg_bts_rep_ul_dl_sacch, - cfg_bts_rep_ul_dl_sacch_cmd, - "repeat (ul-sacch|dl-sacch)", - REP_ACCH_STR - "Enable UL-SACCH repetition for this BTS\n" - "Enable DL-SACCH repetition for this BTS\n", - CMD_ATTR_IMMEDIATE) +DEFUN_USRATTR(cfg_bts_rep_ul_dl_sacch, + cfg_bts_rep_ul_dl_sacch_cmd, + X(BSC_VTY_ATTR_NEW_LCHAN), + "repeat (ul-sacch|dl-sacch)", + REP_ACCH_STR + "Enable UL-SACCH repetition for this BTS\n" + "Enable DL-SACCH repetition for this BTS\n") { struct gsm_bts *bts = vty->index; @@ -2808,12 +2810,13 @@ return CMD_SUCCESS; } -DEFUN_ATTR(cfg_bts_rep_no_ul_dl_sacch, - cfg_bts_rep_no_ul_dl_sacch_cmd, - "no repeat (ul-sacch|dl-sacch)", - NO_STR REP_ACCH_STR - "Disable UL-SACCH repetition for this BTS\n" - "Disable DL-SACCH repetition for this BTS\n", CMD_ATTR_IMMEDIATE) +DEFUN_USRATTR(cfg_bts_rep_no_ul_dl_sacch, + cfg_bts_rep_no_ul_dl_sacch_cmd, + X(BSC_VTY_ATTR_NEW_LCHAN), + "no repeat (ul-sacch|dl-sacch)", + NO_STR REP_ACCH_STR + "Disable UL-SACCH repetition for this BTS\n" + "Disable DL-SACCH repetition for this BTS\n") { struct gsm_bts *bts = vty->index; @@ -2825,20 +2828,20 @@ return CMD_SUCCESS; } -DEFUN_ATTR(cfg_bts_rep_rxqual, - cfg_bts_rep_rxqual_cmd, - "repeat rxqual (0|1|2|3|4|5|6|7)", - REP_ACCH_STR - "Set UL-SACCH/DL-FACCH rxqual threshold-ber\n" - "0 disabled (always on)\n" - "1 0.26% to 0.30% BER\n" - "2 0.51% to 0.64% BER\n" - "3 1.0% to 1.3% BER\n" - "4 1.9% to 2.7% BER (default)\n" - "5 3.8% to 5.4% BER\n" - "6 7.6% to 11.0% BER\n" - "7 Greater than 15.0% BER\n", - CMD_ATTR_IMMEDIATE) +DEFUN_USRATTR(cfg_bts_rep_rxqual, + cfg_bts_rep_rxqual_cmd, + X(BSC_VTY_ATTR_NEW_LCHAN), + "repeat rxqual (0|1|2|3|4|5|6|7)", + REP_ACCH_STR + "Set UL-SACCH/DL-FACCH rxqual threshold-ber\n" + "0 disabled (always on)\n" + "1 0.26% to 0.30% BER\n" + "2 0.51% to 0.64% BER\n" + "3 1.0% to 1.3% BER\n" + "4 1.9% to 2.7% BER (default)\n" + "5 3.8% to 5.4% BER\n" + "6 7.6% to 11.0% BER\n" + "7 Greater than 15.0% BER\n") { struct gsm_bts *bts = vty->index; -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21912 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I06c7851115fb31d1eb92c400d9724f4f051bd171 Gerrit-Change-Number: 21912 Gerrit-PatchSet: 4 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 21:41:01 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 4 Jan 2021 21:41:01 +0000 Subject: Change in osmo-iuh[master]: hnbgw: Introduce LOGHNB() macro for log context information In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-iuh/+/21899 ) Change subject: hnbgw: Introduce LOGHNB() macro for log context information ...................................................................... hnbgw: Introduce LOGHNB() macro for log context information So far we don't really have any way of matching a given log message to a specific hNB. Let's introduce a new log macro, together with a configuration directive to select whether the hNB-ID or the UMTS CellID shall be used. Change-Id: I6113925216c6f88add2c6d27bdf47ccbb017f293 --- M include/osmocom/iuh/hnbgw.h M src/hnbgw.c M src/hnbgw_vty.c 3 files changed, 42 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve fixeria: Looks good to me, approved diff --git a/include/osmocom/iuh/hnbgw.h b/include/osmocom/iuh/hnbgw.h index 4848c2f..fc8298d 100644 --- a/include/osmocom/iuh/hnbgw.h +++ b/include/osmocom/iuh/hnbgw.h @@ -18,6 +18,9 @@ DRANAP, }; +#define LOGHNB(x, ss, lvl, fmt, args ...) \ + LOGP(ss, lvl, "%s " fmt, hnb_context_name(x), ## args) + enum hnb_ctrl_node { CTRL_NODE_HNB = _LAST_CTRL_NODE, _LAST_CTRL_NODE_HNB @@ -128,6 +131,8 @@ const char *iups_remote_addr_name; uint16_t rnc_id; bool hnbap_allow_tmsi; + /*! print hnb-id (true) or MCC-MNC-LAC-RAC-SAC (false) in logs */ + bool log_prefix_hnb_id; } config; /*! SCTP listen socket for incoming connections */ struct osmo_stream_srv_link *iuh; @@ -152,6 +157,7 @@ struct hnb_context *hnb_context_by_id(struct hnb_gw *gw, uint32_t cid); struct hnb_context *hnb_context_by_identity_info(struct hnb_gw *gw, const char *identity_info); +const char *hnb_context_name(struct hnb_context *ctx); unsigned hnb_contexts(const struct hnb_gw *gw); struct ue_context *ue_context_by_id(struct hnb_gw *gw, uint32_t id); diff --git a/src/hnbgw.c b/src/hnbgw.c index dd157d7..ba8a06f 100644 --- a/src/hnbgw.c +++ b/src/hnbgw.c @@ -83,6 +83,7 @@ /* strdup so we can easily talloc_free in the VTY code */ gw->config.iuh_local_ip = talloc_strdup(gw, HNBGW_LOCAL_IP_DEFAULT); gw->config.iuh_local_port = IUH_DEFAULT_SCTP_PORT; + gw->config.log_prefix_hnb_id = true; gw->next_ue_ctx_id = 23; INIT_LLIST_HEAD(&gw->hnb_list); @@ -296,6 +297,25 @@ return ctx; } +static const char *umts_cell_id_name(const struct umts_cell_id *ucid) +{ + static __thread char buf[40]; + + snprintf(buf, sizeof(buf), "%u-%u-L%u-R%u-S%u", ucid->mcc, ucid->mnc, ucid->lac, ucid->rac, ucid->sac); + return buf; +} + +const char *hnb_context_name(struct hnb_context *ctx) +{ + if (!ctx) + return "NULL"; + + if (ctx->gw->config.log_prefix_hnb_id) + return ctx->identity_info; + else + return umts_cell_id_name(&ctx->id); +} + void hnb_context_release(struct hnb_context *ctx) { struct hnbgw_context_map *map, *map2; diff --git a/src/hnbgw_vty.c b/src/hnbgw_vty.c index f2e51d4..a826246 100644 --- a/src/hnbgw_vty.c +++ b/src/hnbgw_vty.c @@ -296,6 +296,19 @@ return CMD_SUCCESS; } +DEFUN(cfg_hnbgw_log_prefix, cfg_hnbgw_log_prefix_cmd, + "log-prefix (hnb-id|umts-cell-id)", + "Configure the log message prefix\n" + "Use the hNB-ID as log message prefix\n" + "Use the UMTS Cell ID as log message prefix\n") +{ + if (!strcmp(argv[0], "hnb-id")) + g_hnb_gw->config.log_prefix_hnb_id = true; + else + g_hnb_gw->config.log_prefix_hnb_id = false; + return CMD_SUCCESS; +} + DEFUN(cfg_hnbgw_iucs_remote_addr, cfg_hnbgw_iucs_remote_addr_cmd, "remote-addr NAME", @@ -319,6 +332,8 @@ static int config_write_hnbgw(struct vty *vty) { vty_out(vty, "hnbgw%s", VTY_NEWLINE); + vty_out(vty, " log-prefix %s%s", g_hnb_gw->config.log_prefix_hnb_id ? "hnb-id" : "umts-cell-id", + VTY_NEWLINE); return CMD_SUCCESS; } @@ -376,6 +391,7 @@ install_node(&hnbgw_node, config_write_hnbgw); install_element(HNBGW_NODE, &cfg_hnbgw_rnc_id_cmd); + install_element(HNBGW_NODE, &cfg_hnbgw_log_prefix_cmd); install_element(HNBGW_NODE, &cfg_hnbgw_iuh_cmd); install_node(&iuh_node, config_write_hnbgw_iuh); -- To view, visit https://gerrit.osmocom.org/c/osmo-iuh/+/21899 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: master Gerrit-Change-Id: I6113925216c6f88add2c6d27bdf47ccbb017f293 Gerrit-Change-Number: 21899 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 21:43:06 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 4 Jan 2021 21:43:06 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: add handling for BSSGP RIM primitives In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21722 ) Change subject: gprs_bssgp: add handling for BSSGP RIM primitives ...................................................................... Patch Set 6: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21722 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Idfd0a65872a2cc6089885afd8d31b0b029d85d47 Gerrit-Change-Number: 21722 Gerrit-PatchSet: 6 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 04 Jan 2021 21:43:06 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 21:47:19 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 4 Jan 2021 21:47:19 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: add handling for BSSGP RIM primitives In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21722 ) Change subject: gprs_bssgp: add handling for BSSGP RIM primitives ...................................................................... gprs_bssgp: add handling for BSSGP RIM primitives Receive and forward RIM messages to bssgp_prim_cb() Change-Id: Idfd0a65872a2cc6089885afd8d31b0b029d85d47 Related: SYS#5103 --- M include/osmocom/gprs/gprs_bssgp.h M include/osmocom/gsm/prim.h M src/gb/gprs_bssgp.c 3 files changed, 46 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved fixeria: Looks good to me, but someone else must approve pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/include/osmocom/gprs/gprs_bssgp.h b/include/osmocom/gprs/gprs_bssgp.h index 7077044..d228c53 100644 --- a/include/osmocom/gprs/gprs_bssgp.h +++ b/include/osmocom/gprs/gprs_bssgp.h @@ -56,6 +56,8 @@ PRIM_NM_BVC_BLOCK, PRIM_NM_BVC_UNBLOCK, PRIM_NM_STATUS, + + PRIM_BSSGP_RIM_PDU_TRANSFER, }; struct osmo_bssgp_prim { diff --git a/include/osmocom/gsm/prim.h b/include/osmocom/gsm/prim.h index e7a60e3..045e353 100644 --- a/include/osmocom/gsm/prim.h +++ b/include/osmocom/gsm/prim.h @@ -16,4 +16,6 @@ SAP_BSSGP_PFM, SAP_NS, + + SAP_BSSGP_RIM, }; diff --git a/src/gb/gprs_bssgp.c b/src/gb/gprs_bssgp.c index 09f6373..fd2a48c 100644 --- a/src/gb/gprs_bssgp.c +++ b/src/gb/gprs_bssgp.c @@ -734,6 +734,39 @@ return bssgp_prim_cb(&nmp.oph, NULL); } +static int bssgp_rx_rim(struct msgb *msg, struct tlv_parsed *tp, uint16_t bvci) +{ + struct osmo_bssgp_prim nmp; + uint16_t nsei = msgb_nsei(msg); + struct bssgp_normal_hdr *bgph = (struct bssgp_normal_hdr *)msgb_bssgph(msg); + enum bssgp_prim prim; + + DEBUGP(DLBSSGP, "BSSGP BVCI=%u Rx RIM-PDU:%s\n", bvci, bssgp_pdu_str(bgph->pdu_type)); + + /* Specify PRIM type based on the RIM PDU */ + switch (bgph->pdu_type) { + case BSSGP_PDUT_RAN_INFO: + case BSSGP_PDUT_RAN_INFO_REQ: + case BSSGP_PDUT_RAN_INFO_ACK: + case BSSGP_PDUT_RAN_INFO_ERROR: + case BSSGP_PDUT_RAN_INFO_APP_ERROR: + prim = PRIM_BSSGP_RIM_PDU_TRANSFER; + break; + default: + /* Caller already makes sure that this can't happen. */ + OSMO_ASSERT(false); + } + + /* Send BSSGP RIM indication to NM */ + memset(&nmp, 0, sizeof(nmp)); + nmp.nsei = nsei; + nmp.bvci = bvci; + nmp.tp = tp; + osmo_prim_init(&nmp.oph, SAP_BSSGP_RIM, prim, PRIM_OP_INDICATION, msg); + bssgp_prim_cb(&nmp.oph, NULL); + + return 0; +} /* One element (msgb) in a BSSGP Flow Control queue */ struct bssgp_fc_queue_element { @@ -1159,6 +1192,15 @@ case BSSGP_PDUT_STATUS: /* This is already handled in bssgp_rcvmsg() */ break; + + case BSSGP_PDUT_RAN_INFO: + case BSSGP_PDUT_RAN_INFO_REQ: + case BSSGP_PDUT_RAN_INFO_ACK: + case BSSGP_PDUT_RAN_INFO_ERROR: + case BSSGP_PDUT_RAN_INFO_APP_ERROR: + bssgp_rx_rim(msg, tp, bvci); + break; + /* those only exist in the SGSN -> BSS direction */ case BSSGP_PDUT_PAGING_PS: case BSSGP_PDUT_PAGING_CS: -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21722 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Idfd0a65872a2cc6089885afd8d31b0b029d85d47 Gerrit-Change-Number: 21722 Gerrit-PatchSet: 7 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 21:48:03 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 4 Jan 2021 21:48:03 +0000 Subject: Change in osmo-bsc[master]: smscb: Fix adding of SMSCB messages when no message with lower period... In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21921 ) Change subject: smscb: Fix adding of SMSCB messages when no message with lower period exists ...................................................................... smscb: Fix adding of SMSCB messages when no message with lower period exists Adding SMSCB messages to a BTS so far only worked if there were existing messages with a lower scheduling period than the new message. Before this patch, it fails for new messages if they are of equal or lower scheduling period than the existing messages. Change-Id: I69a05b22200b3a1ee406b0673553e135603d723b --- M src/osmo-bsc/smscb.c 1 file changed, 2 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/osmo-bsc/smscb.c b/src/osmo-bsc/smscb.c index 8ce962a..542453c 100644 --- a/src/osmo-bsc/smscb.c +++ b/src/osmo-bsc/smscb.c @@ -110,6 +110,8 @@ return; } } + /* we didn't find any messages with longer period than us, insert us at tail */ + llist_add_tail(&new->list, &cstate->messages); } /* stringify a SMSCB for logging */ -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21921 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I69a05b22200b3a1ee406b0673553e135603d723b Gerrit-Change-Number: 21921 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 21:48:25 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 4 Jan 2021 21:48:25 +0000 Subject: Change in osmo-bts[master]: l1sap: include Uplink RSSI and C/I in GSMTAP packets In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21935 ) Change subject: l1sap: include Uplink RSSI and C/I in GSMTAP packets ...................................................................... Patch Set 2: > Patch Set 2: > > it's not really the same thing. I'm not sure it it's the best idea to send a different value than what is specified in that field... I am also not sure, but I believe it's better than sending 0. Also this is what we already do in osmo-pcu. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21935 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic48283fa76b682aee151a94ef7274ac96545e087 Gerrit-Change-Number: 21935 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Mon, 04 Jan 2021 21:48:25 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 21:48:57 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 4 Jan 2021 21:48:57 +0000 Subject: Change in osmo-bts[master]: power_control: check-in new parameters and default values In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21904 ) Change subject: power_control: check-in new parameters and default values ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21904 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I6d41eb238aa6d4f5b77596c5477c2ecbe86de2a8 Gerrit-Change-Number: 21904 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 04 Jan 2021 21:48:57 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 21:49:05 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 4 Jan 2021 21:49:05 +0000 Subject: Change in osmo-bts[master]: power_control: add VTY introspection commands for MS/BS params In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21905 ) Change subject: power_control: add VTY introspection commands for MS/BS params ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21905 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I34095673bf49deb390d5e8383c4ee05a6915b82f Gerrit-Change-Number: 21905 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 04 Jan 2021 21:49:05 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 21:49:22 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 4 Jan 2021 21:49:22 +0000 Subject: Change in osmo-bts[master]: power_control: check-in new parameters and default values In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21904 ) Change subject: power_control: check-in new parameters and default values ...................................................................... power_control: check-in new parameters and default values For the sake of simplicity, the old structures that are still used by MS/BS power control loops are kept in place. Migration to the new structures requires additional changes to the existing power control logic, so it will be done in the follow-up changes. The new parameters are integrated as follows: + struct gsm_bts - a BTS instance: | Hard-coded default (fall-back) parameters for all transceivers. | +-+-> struct gsm_bts_trx - a TRX instance (transceiver): | Default parameters for all logical channels inherited from | 'struct gsm_bts' at start-up. May be overwritten by the | BSC using ip.access specific 'Measurement Pre-processing | Defaults' message on the A-bis/RSL interface. | +---> struct gsm_lchan - a logical channel (e.g. TCH or SDCCH): Connection specific parameters inherited from 'struct gsm_bts_trx'. May be overwritten by parameters sent by the BSC in CHANnel ACTIVation and other messages. Change-Id: I6d41eb238aa6d4f5b77596c5477c2ecbe86de2a8 Related: SYS#4918 --- M include/osmo-bts/bts.h M include/osmo-bts/bts_trx.h M include/osmo-bts/gsm_data.h M src/common/bts.c M src/common/bts_trx.c M src/common/gsm_data.c 6 files changed, 107 insertions(+), 6 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmo-bts/bts.h b/include/osmo-bts/bts.h index 6d8b570..0b224be 100644 --- a/include/osmo-bts/bts.h +++ b/include/osmo-bts/bts.h @@ -321,10 +321,14 @@ bool vty_override; /* OML value overridden by VTY */ } radio_link_timeout; - /* Uplink/Downlink power control */ + /* Uplink/Downlink power control (legacy parameters) */ struct bts_power_ctrl_params ul_power_ctrl; struct bts_power_ctrl_params dl_power_ctrl; + /* Default (fall-back) Dynamic Power Control parameters for all transceivers */ + struct gsm_power_ctrl_params bs_dpc_params; /* BS Dynamic Power Control */ + struct gsm_power_ctrl_params ms_dpc_params; /* MS Dynamic Power Control */ + /* used by the sysmoBTS to adjust band */ uint8_t auto_band; diff --git a/include/osmo-bts/bts_trx.h b/include/osmo-bts/bts_trx.h index 08eaf65..4474903 100644 --- a/include/osmo-bts/bts_trx.h +++ b/include/osmo-bts/bts_trx.h @@ -32,6 +32,8 @@ struct trx_power_params power_params; + struct gsm_power_ctrl_params *bs_dpc_params; /* BS Dynamic Power Control */ + struct gsm_power_ctrl_params *ms_dpc_params; /* MS Dynamic Power Control */ bool ms_pwr_ctl_soft; /* is power control loop done by osmocom software? */ struct { diff --git a/include/osmo-bts/gsm_data.h b/include/osmo-bts/gsm_data.h index fdd5ba3..b9e0e88 100644 --- a/include/osmo-bts/gsm_data.h +++ b/include/osmo-bts/gsm_data.h @@ -161,10 +161,65 @@ uint32_t fn; }; -/* Depending on the context (MS or BS power control), fields 'current' and 'max' - * reflect either the MS power level (magic numbers), or BS Power reduction level - * (attenuation, in dB). Field 'avg100_rxlev_dbm' is always in dBm. */ +/* MS/BS Power related measurement averaging algo */ +enum gsm_power_ctrl_meas_avg_algo { + GSM_PWR_CTRL_MEAS_AVG_ALGO_NONE = 0x00, + GSM_PWR_CTRL_MEAS_AVG_ALGO_UNWEIGHTED = 0x01, + GSM_PWR_CTRL_MEAS_AVG_ALGO_WEIGHTED = 0x02, + GSM_PWR_CTRL_MEAS_AVG_ALGO_MOD_MEDIAN = 0x03, + /* EWMA is an Osmocom specific algo */ + GSM_PWR_CTRL_MEAS_AVG_ALGO_OSMO_EWMA = 0x04, +}; + +/* MS/BS Power related measurement parameters */ +struct gsm_power_ctrl_meas_params { + /* Thresholds (see 3GPP TS 45.008, section A.3.2.1) */ + uint8_t lower_thresh; /* lower (decreasing) direction */ + uint8_t upper_thresh; /* upper (increasing) direction */ + + /* Threshold Comparators for lower (decreasing) direction */ + uint8_t lower_cmp_p; /* P1 for RxLev, P3 for RxQual */ + uint8_t lower_cmp_n; /* N1 for RxLev, N3 for RxQual */ + /* Threshold Comparators for upper (increasing) direction */ + uint8_t upper_cmp_p; /* P2 for RxLev, P4 for RxQual */ + uint8_t upper_cmp_n; /* N2 for RxLev, N4 for RxQual */ + + /* Hreqave and Hreqt (see 3GPP TS 45.008, Annex A) */ + uint8_t h_reqave; + uint8_t h_reqt; + + /* AVG algorithm and its specific parameters */ + enum gsm_power_ctrl_meas_avg_algo algo; + union { + /* Exponentially Weighted Moving Average */ + struct { + /* Smoothing factor: higher the value - less smoothing */ + uint8_t alpha; /* 1 .. 99 (in %) */ + } ewma; + }; +}; + +/* MS/BS Power Control parameters */ +struct gsm_power_ctrl_params { + /* Power change step size (maximum) */ + uint8_t inc_step_size_db; /* increasing direction */ + uint8_t red_step_size_db; /* reducing direction */ + + /* Measurement averaging parameters for RxLev & RxQual */ + struct gsm_power_ctrl_meas_params rxqual_meas; + struct gsm_power_ctrl_meas_params rxlev_meas; +}; + +/* Default MS/BS Power Control parameters */ +extern const struct gsm_power_ctrl_params power_ctrl_params_def; + struct lchan_power_ctrl_state { + /* Dynamic Power Control parameters (NULL in static mode) */ + const struct gsm_power_ctrl_params *dpc_params; + + /* Depending on the context (MS or BS power control), fields 'current' and 'max' + * reflect either the MS power level (magic numbers), or BS Power reduction level + * (attenuation, in dB). */ uint8_t current; uint8_t max; bool fixed; @@ -319,10 +374,14 @@ /* RTP header Marker bit to indicate beginning of speech after pause */ bool rtp_tx_marker; - /* MS/BS power control */ + /* MS/BS power control state */ struct lchan_power_ctrl_state ms_power_ctrl; struct lchan_power_ctrl_state bs_power_ctrl; + /* MS/BS Dynamic Power Control parameters */ + struct gsm_power_ctrl_params ms_dpc_params; + struct gsm_power_ctrl_params bs_dpc_params; + struct msgb *pending_rel_ind_msg; /* ECU (Error Concealment Unit) state */ diff --git a/src/common/bts.c b/src/common/bts.c index ba24497..de07957 100644 --- a/src/common/bts.c +++ b/src/common/bts.c @@ -330,7 +330,7 @@ bts->rtp_port_range_next = bts->rtp_port_range_start; bts->rtp_ip_dscp = -1; - /* Default UL/DL power control parameters */ + /* Default UL/DL power control parameters (legacy) */ bts->ul_power_ctrl = bts->dl_power_ctrl = \ (struct bts_power_ctrl_params) { .target_dbm = -75, @@ -346,6 +346,10 @@ } }; + /* Default (fall-back) MS/BS Power control parameters */ + bts->bs_dpc_params = power_ctrl_params_def; + bts->ms_dpc_params = power_ctrl_params_def; + /* configurable via OML */ bts->load.ccch.load_ind_period = 112; load_timer_start(bts); diff --git a/src/common/bts_trx.c b/src/common/bts_trx.c index 38fb90a..9fc18e4 100644 --- a/src/common/bts_trx.c +++ b/src/common/bts_trx.c @@ -113,6 +113,10 @@ if (trx->nr != 0) trx->nominal_power = bts->c0->nominal_power; + /* Default (fall-back) Dynamic Power Control parameters */ + trx->bs_dpc_params = &bts->bs_dpc_params; + trx->ms_dpc_params = &bts->ms_dpc_params; + llist_add_tail(&trx->list, &bts->trx_list); return trx; diff --git a/src/common/gsm_data.c b/src/common/gsm_data.c index 978edc4..44ed7e9 100644 --- a/src/common/gsm_data.c +++ b/src/common/gsm_data.c @@ -420,3 +420,31 @@ return -1; } } + +/* Default MS/BS Power Control parameters (see 3GPP TS 45.008, table A.1) */ +const struct gsm_power_ctrl_params power_ctrl_params_def = { + /* Power increasing/reducing step size */ + .inc_step_size_db = 4, /* FIXME: PWR_RAISE_MAX_DB */ + .red_step_size_db = 8, /* FIXME: PWR_LOWER_MAX_DB */ + + /* RxLev measurement parameters */ + .rxlev_meas = { + /* Thresholds for RxLev (see 3GPP TS 45.008, A.3.2.1) */ + .lower_thresh = 32, /* L_RXLEV_XX_P (-78 dBm) */ + .upper_thresh = 38, /* U_RXLEV_XX_P (-72 dBm) */ + + /* NOTE: only Osmocom specific EWMA is supported */ + .algo = GSM_PWR_CTRL_MEAS_AVG_ALGO_OSMO_EWMA, + .ewma.alpha = 50, /* Smoothing factor 50% */ + }, + + /* RxQual measurement parameters */ + .rxqual_meas = { + /* Thresholds for RxQual (see 3GPP TS 45.008, A.3.2.1) */ + .lower_thresh = 3, /* U_RXQUAL_XX_P (0.8% <= BER < 1.6%) */ + .upper_thresh = 0, /* L_RXQUAL_XX_P (BER < 0.2%) */ + + /* FIXME: RxQual averaging is not yet implemented */ + .algo = GSM_PWR_CTRL_MEAS_AVG_ALGO_NONE, + }, +}; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21904 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I6d41eb238aa6d4f5b77596c5477c2ecbe86de2a8 Gerrit-Change-Number: 21904 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 4 21:49:22 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 4 Jan 2021 21:49:22 +0000 Subject: Change in osmo-bts[master]: power_control: add VTY introspection commands for MS/BS params In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21905 ) Change subject: power_control: add VTY introspection commands for MS/BS params ...................................................................... power_control: add VTY introspection commands for MS/BS params Change-Id: I34095673bf49deb390d5e8383c4ee05a6915b82f Related: SYS#4918 --- M src/common/vty.c 1 file changed, 103 insertions(+), 16 deletions(-) Approvals: laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/common/vty.c b/src/common/vty.c index 7284bfa..ff7ec12 100644 --- a/src/common/vty.c +++ b/src/common/vty.c @@ -1118,6 +1118,66 @@ return CMD_SUCCESS; } +/* TODO: generalize and move indention handling to libosmocore */ +#define cfg_out(vty, fmt, args...) \ + vty_out(vty, "%*s" fmt, indent, "", ##args); + +static void dump_dpc_meas_params(struct vty *vty, const unsigned int indent, + const struct gsm_power_ctrl_meas_params *mp, + const char *pname, const unsigned int pn) +{ + cfg_out(vty, "Lower threshold (L_%s_XX_P): %u%s", + pname, mp->lower_thresh, VTY_NEWLINE); + cfg_out(vty, "Upper threshold (U_%s_XX_P): %u%s", + pname, mp->upper_thresh, VTY_NEWLINE); + + cfg_out(vty, "Lower threshold comparators: P%u=%02u / N%u=%02u%s", + pn, mp->lower_cmp_p, pn, mp->lower_cmp_n, VTY_NEWLINE); + cfg_out(vty, "Upper threshold comparators: P%u=%02u / N%u=%02u%s", + pn + 1, mp->upper_cmp_p, pn + 1, mp->upper_cmp_n, VTY_NEWLINE); + + cfg_out(vty, "Pre-processing algorithm: "); + switch (mp->algo) { + case GSM_PWR_CTRL_MEAS_AVG_ALGO_UNWEIGHTED: + vty_out(vty, "unweighted average%s", VTY_NEWLINE); + break; + case GSM_PWR_CTRL_MEAS_AVG_ALGO_WEIGHTED: + vty_out(vty, "weighted average%s", VTY_NEWLINE); + break; + case GSM_PWR_CTRL_MEAS_AVG_ALGO_MOD_MEDIAN: + vty_out(vty, "modified median%s", VTY_NEWLINE); + break; + case GSM_PWR_CTRL_MEAS_AVG_ALGO_OSMO_EWMA: + vty_out(vty, "EWMA (alpha=%u)%s", + mp->ewma.alpha, VTY_NEWLINE); + break; + case GSM_PWR_CTRL_MEAS_AVG_ALGO_NONE: + vty_out(vty, "disabled (pass-through)%s", VTY_NEWLINE); + return; + default: + vty_out(vty, "unknown%s", VTY_NEWLINE); + return; + } + + cfg_out(vty, "Pre-processing parameters: Hreqave=%u / Hreqt=%u%s", + mp->h_reqave, mp->h_reqt, VTY_NEWLINE); +} + +static void dump_dpc_params(struct vty *vty, const unsigned int indent, + const struct gsm_power_ctrl_params *cp) +{ + cfg_out(vty, "Power increase step size: %u%s", + cp->inc_step_size_db, VTY_NEWLINE); + cfg_out(vty, "Power reduce step size: %u%s", + cp->red_step_size_db, VTY_NEWLINE); + + cfg_out(vty, "RxLev measurement processing:%s", VTY_NEWLINE); + dump_dpc_meas_params(vty, indent + 2, &cp->rxlev_meas, "RXLEV", 1); + + cfg_out(vty, "RxQual measurement processing:%s", VTY_NEWLINE); + dump_dpc_meas_params(vty, indent + 2, &cp->rxqual_meas, "RXQUAL", 3); +} + static void trx_dump_vty(struct vty *vty, const struct gsm_bts_trx *trx) { vty_out(vty, "TRX %u of BTS %u is on ARFCN %u%s", @@ -1128,6 +1188,19 @@ "resulting BS power: %d dBm%s", trx->nominal_power, trx->max_power_red, trx->nominal_power - trx->max_power_red, VTY_NEWLINE); + + vty_out(vty, " BS Power control parameters (%s):%s", + trx->bs_dpc_params == &trx->bts->bs_dpc_params ? + "fall-back" : "from BSC", + VTY_NEWLINE); + dump_dpc_params(vty, 4, trx->bs_dpc_params); + + vty_out(vty, " MS Power control parameters (%s):%s", + trx->ms_dpc_params == &trx->bts->ms_dpc_params ? + "fall-back" : "from BSC", + VTY_NEWLINE); + dump_dpc_params(vty, 4, trx->ms_dpc_params); + vty_out(vty, " NM State: "); net_dump_nmstate(vty, &trx->mo.nm_state); vty_out(vty, " RSL State: %s%s", trx->rsl_link? "connected" : "disconnected", VTY_NEWLINE); @@ -1307,47 +1380,61 @@ } } -static void lchan_bs_power_ctrl_state_dump(struct vty *vty, const char *prefix, +static void lchan_bs_power_ctrl_state_dump(struct vty *vty, unsigned int indent, const struct gsm_lchan *lchan) { const struct lchan_power_ctrl_state *st = &lchan->bs_power_ctrl; const struct gsm_bts_trx *trx = lchan->ts->trx; - vty_out(vty, "%sBS (Downlink) Power Control (%s):%s", - prefix, st->fixed ? "fixed" : "autonomous", + cfg_out(vty, "BS (Downlink) Power Control (%s):%s", + st->fixed ? "fixed" : "autonomous", VTY_NEWLINE); + indent += 2; - vty_out(vty, "%s Channel reduction: %u dB", prefix, st->current); + cfg_out(vty, "Channel reduction: %u dB", st->current); if (!st->fixed) vty_out(vty, " (max %u dB)", st->max); vty_out(vty, "%s", VTY_NEWLINE); - vty_out(vty, "%s TRX reduction: %u dB%s", - prefix, trx->max_power_red, VTY_NEWLINE); + cfg_out(vty, "TRX reduction: %u dB%s", + trx->max_power_red, VTY_NEWLINE); int actual = trx->nominal_power - (trx->max_power_red + st->current); - vty_out(vty, "%s Actual / Nominal power: %d dBm / %d dBm%s", - prefix, actual, trx->nominal_power, VTY_NEWLINE); + cfg_out(vty, "Actual / Nominal power: %d dBm / %d dBm%s", + actual, trx->nominal_power, VTY_NEWLINE); + + if (st->dpc_params == NULL) + return; + + cfg_out(vty, "Power Control parameters:%s", VTY_NEWLINE); + dump_dpc_params(vty, indent + 2, st->dpc_params); } -static void lchan_ms_power_ctrl_state_dump(struct vty *vty, const char *prefix, +static void lchan_ms_power_ctrl_state_dump(struct vty *vty, unsigned int indent, const struct gsm_lchan *lchan) { const struct lchan_power_ctrl_state *st = &lchan->ms_power_ctrl; const struct gsm_bts_trx *trx = lchan->ts->trx; - vty_out(vty, "%sMS (Uplink) Power Control (%s):%s", - prefix, st->fixed ? "fixed" : "autonomous", + cfg_out(vty, "MS (Uplink) Power Control (%s):%s", + st->fixed ? "fixed" : "autonomous", VTY_NEWLINE); + indent += 2; int current_dbm = ms_pwr_dbm(trx->bts->band, st->current); int max_dbm = ms_pwr_dbm(trx->bts->band, st->max); - vty_out(vty, "%s Current power level: %u, -%d dBm", - prefix, st->current, current_dbm); + cfg_out(vty, "Current power level: %u, -%d dBm", + st->current, current_dbm); if (!st->fixed) vty_out(vty, " (max %u, -%d dBm)", st->max, max_dbm); vty_out(vty, "%s", VTY_NEWLINE); + + if (st->dpc_params == NULL) + return; + + cfg_out(vty, "Power Control parameters:%s", VTY_NEWLINE); + dump_dpc_params(vty, indent + 2, st->dpc_params); } static void lchan_dump_full_vty(struct vty *vty, const struct gsm_lchan *lchan) @@ -1420,9 +1507,9 @@ vty_out(vty, " RTP/PDCH Loopback Enabled%s", VTY_NEWLINE); vty_out(vty, " Radio Link Failure Counter 'S': %d%s", lchan->s, VTY_NEWLINE); - /* BS/MS Power Control state */ - lchan_bs_power_ctrl_state_dump(vty, " ", lchan); - lchan_ms_power_ctrl_state_dump(vty, " ", lchan); + /* BS/MS Power Control state and parameters */ + lchan_bs_power_ctrl_state_dump(vty, 2, lchan); + lchan_ms_power_ctrl_state_dump(vty, 2, lchan); } static void lchan_dump_short_vty(struct vty *vty, const struct gsm_lchan *lchan) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21905 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I34095673bf49deb390d5e8383c4ee05a6915b82f Gerrit-Change-Number: 21905 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Tue Jan 5 02:14:21 2021 From: admin at opensuse.org (OBS Notification) Date: Tue, 05 Jan 2021 02:14:21 +0000 Subject: Build failure of network:osmocom:nightly/open5gs in Debian_10/i586 In-Reply-To: References: Message-ID: <5ff3cb9338478_3b912affc327a5e0206442@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/open5gs/Debian_10/i586 Package network:osmocom:nightly/open5gs failed to build in Debian_10/i586 Check out the package for editing: osc checkout network:osmocom:nightly open5gs Last lines of build log: [ 281s] [2541/2541] cc -o tests/handover/handover 'tests/handover/63da1a3@@handover at exe/abts-main.c.o' 'tests/handover/63da1a3@@handover at exe/epc-x2-test.c.o' 'tests/handover/63da1a3@@handover at exe/epc-s1-test.c.o' 'tests/handover/63da1a3@@handover at exe/5gc-xn-test.c.o' -Wl,--no-undefined -Wl,--as-needed -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z,relro -Wl,-z,now -Wl,--start-group tests/app/libtestapp.a tests/common/libtestcomon.a lib/core/libogscore.so.2.1.1 lib/app/libogsapp.so.2.1.1 lib/dbi/libogsdbi.so.2.1.1 lib/crypt/libogscrypt.so.2.1.1 lib/sctp/libogssctp.so.2.1.1 lib/gtp/libogsgtp.so.2.1.1 lib/s1ap/libogss1ap.so.2.1.1 lib/asn1c/s1ap/libogsasn1c-s1ap.so.2.1.1 lib/asn1c/common/libogsasn1c-common.so.2.1.1 lib/asn1c/util/libogsasn1c-util.so.2.1.1 lib/ngap/libogsngap.so.2.1.1 lib/asn1c/ngap/libogsasn1c-ngap.so.2.1.1 lib/nas/eps/libogsnas-eps.so.2.1.1 lib/nas/common/libogsnas-common.so.2.1.1 lib/nas/5gs/libogsnas-5gs.so.2.1.1 lib/diameter/rx/libogsdiameter-rx.so.2.1.1 lib/diameter/common/libogsdiameter-common.so.2.1.1 subprojects/freeDiameter/libfdcore/libfdcore.so.1.3.2 subprojects/freeDiameter/libfdproto/libfdproto.so.1.3.2 /usr/lib/i386-linux-gnu/libyaml.so /usr/lib/gcc/i686-linux-gnu/8/../../../i386-linux-gnu/libmongoc-1.0.so /usr/lib/gcc/i686-linux-gnu/8/../../../i386-linux-gnu/libbson-1.0.so -lsctp -lidn -ldl -lsctp -lgcrypt -lgnutls -lsctp -lidn -ldl -lsctp -lgcrypt -lgnutls -lsctp -lidn -ldl -lsctp -lgcrypt -lgnutls -Wl,--end-group -pthread '-Wl,-rpath,$ORIGIN/../app:$ORIGIN/../common:$ORIGIN/../../lib/core:$ORIGIN/../../lib/app:$ORIGIN/../../lib/dbi:$ORIGIN/../../lib/crypt:$ORIGIN/../../lib/sctp:$ORIGIN/../../lib/gtp:$ORIGIN/../../lib/s1ap:$ORIGIN/../../lib/asn1c/s1ap:$ORIGIN/../../lib/asn1c/common:$ORIGIN/../../lib/asn1c/util:$ORIGIN/../../lib/ngap:$ORIGIN/../../lib/asn1c/ngap:$ORIGIN/../../lib/nas/eps:$ORIGIN/../../lib/nas/common:$ORIGIN/../../lib/nas/5gs:$ORIGIN/../../lib/diameter/rx:$ORIGIN/../../lib/diameter/common:$ORIGIN/../../subprojects/freeDiameter/libfdcore:$ORIGIN/../../subprojects/freeDiameter/libfdproto' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-i686-linux-gnu/tests/app:/usr/src/packages/BUILD/obj-i686-linux-gnu/tests/common:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/core:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/app:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/dbi:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/crypt:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/sctp:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/gtp:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/s1ap:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/asn1c/s1ap:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/asn1c/common:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/asn1c/util:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/ngap:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/asn1c/ngap:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/nas/eps:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/nas/common:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/nas/5gs:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/diameter/rx:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/diameter/common:/usr/src/packages/BUILD/obj-i686-linux-gnu/subprojects/freeDiameter/libfdcore:/usr/src/packages/BUILD/obj-i686-linux-gnu/subprojects/freeDiameter/libfdproto [ 281s] debian/rules override_dh_auto_test [ 281s] make[1]: Entering directory '/usr/src/packages/BUILD' [ 281s] cd obj-i686-linux-gnu && meson test --suite unit [ 282s] ninja: Entering directory `/usr/src/packages/BUILD/obj-i686-linux-gnu' [ 282s] ninja: no work to do. [ 290s] 1/3 open5gs:unit / core OK 7.08 s [ 290s] 2/3 open5gs:unit / crypt OK 0.14 s [ 290s] 3/3 open5gs:unit / unit FAIL 0.07 s (exit status 1) [ 290s] [ 290s] Ok: 2 [ 290s] Expected Fail: 0 [ 290s] Fail: 1 [ 290s] Unexpected Pass: 0 [ 290s] Skipped: 0 [ 290s] Timeout: 0 [ 290s] [ 290s] Full log written to /usr/src/packages/BUILD/obj-i686-linux-gnu/meson-logs/testlog.txt [ 290s] make[1]: *** [debian/rules:17: override_dh_auto_test] Error 1 [ 290s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 290s] make: *** [debian/rules:11: binary] Error 2 [ 290s] dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 [ 290s] ### VM INTERACTION START ### [ 293s] [ 278.138150] sysrq: Power Off [ 293s] [ 278.143564] reboot: Power down [ 293s] ### VM INTERACTION END ### [ 293s] [ 293s] hci-cnode1-m0 failed "build open5gs_2.1.1.20210105.dsc" at Tue Jan 5 02:13:54 UTC 2021. [ 293s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Jan 5 02:58:05 2021 From: admin at opensuse.org (OBS Notification) Date: Tue, 05 Jan 2021 02:58:05 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <5ff3d5db98c17_3b912affc327a5e02152d3@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/xUbuntu_20.04/x86_64 Package network:osmocom:nightly/simtrace2 failed to build in xUbuntu_20.04/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 189s] [COMPILING libboard/qmod/source/wwan_perst.c] [ 189s] [COMPILING libboard/qmod/source/card_pres.c] [ 189s] [COMPILING libboard/qmod/source/wwan_led.c] [ 189s] [COMPILING libboard/qmod/source/i2c.c] [ 189s] [COMPILING libboard/qmod/source/board_qmod.c] [ 189s] [COMPILING apps/dfu/main.c] [ 189s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 190s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 190s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 190s] Memory region Used Size Region Size %age Used [ 190s] rom: 16588 B 16 KB 101.25% [ 190s] ram: 11672 B 48 KB 23.75/usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 190s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 204 bytes [ 190s] collect2: error: ld returned 1 exit status [ 190s] % [ 190s] make[2]: *** [Makefile:234: flash] Error 1 [ 190s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 190s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 190s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 190s] dh_auto_build: error: make -j1 returned exit code 2 [ 190s] make: *** [debian/rules:16: build] Error 25 [ 190s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 190s] ### VM INTERACTION START ### [ 193s] [ 180.817567] sysrq: Power Off [ 193s] [ 180.854034] reboot: Power down [ 193s] ### VM INTERACTION END ### [ 193s] [ 193s] lamb18 failed "build simtrace2_0.7.0.69.aadd.dsc" at Tue Jan 5 02:56:35 UTC 2021. [ 193s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Jan 5 03:20:38 2021 From: admin at opensuse.org (OBS Notification) Date: Tue, 05 Jan 2021 03:20:38 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.10/x86_64 In-Reply-To: References: Message-ID: <5ff3db2172629_3b912affc327a5e0217766@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/xUbuntu_20.10/x86_64 Package network:osmocom:nightly/simtrace2 failed to build in xUbuntu_20.10/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 119s] [COMPILING apps/dfu/main.c] [ 119s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 119s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 119s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 119s] Memory region Used Size Region Size %age Used [ 119s] rom: 16580 B 16 KB 101.20% [ 119s] ram: 11672 B 48 KB 23.75/usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 119s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 119s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 119s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 119s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 119s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 119s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 196 bytes [ 119s] collect2: error: ld returned 1 exit status [ 119s] % [ 119s] make[2]: *** [Makefile:234: flash] Error 1 [ 119s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 119s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 119s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 119s] dh_auto_build: error: make -j1 returned exit code 2 [ 119s] make: *** [debian/rules:16: build] Error 25 [ 119s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 119s] ### VM INTERACTION START ### [ 122s] [ 112.819219] sysrq: Power Off [ 122s] [ 112.828128] reboot: Power down [ 122s] ### VM INTERACTION END ### [ 122s] [ 122s] sheep81 failed "build simtrace2_0.7.0.69.aadd.dsc" at Tue Jan 5 03:19:59 UTC 2021. [ 122s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Tue Jan 5 08:51:04 2021 From: gerrit-no-reply at lists.osmocom.org (herlesupreeth) Date: Tue, 5 Jan 2021 08:51:04 +0000 Subject: Change in pysim[master]: sysmoISIM-SJA2: Add support for programming EF.ePDGSelection (ePDG Se... In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/pysim/+/21850 to look at the new patch set (#3). Change subject: sysmoISIM-SJA2: Add support for programming EF.ePDGSelection (ePDG Selection Information) ...................................................................... sysmoISIM-SJA2: Add support for programming EF.ePDGSelection (ePDG Selection Information) If the EF.ePDGSelection is present, it is populated with a single entry with PLMN 1 set to Home PLMN of USIM, ePDG FQDN format set to Operator Identifier FQDN and ePDG Priority value set to 1. Change-Id: I92f3f813afa41ae497ebc0dc2ca73da810f82364 --- M pySim-prog.py M pySim/cards.py M pysim-testdata/sysmoISIM-SJA2.ok 3 files changed, 37 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/50/21850/3 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/21850 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I92f3f813afa41ae497ebc0dc2ca73da810f82364 Gerrit-Change-Number: 21850 Gerrit-PatchSet: 3 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 08:51:04 2021 From: gerrit-no-reply at lists.osmocom.org (herlesupreeth) Date: Tue, 5 Jan 2021 08:51:04 +0000 Subject: Change in pysim[master]: sysmoISIM-SJA2: Enable Service 106 and 107 after successfully program... In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/pysim/+/21851 to look at the new patch set (#3). Change subject: sysmoISIM-SJA2: Enable Service 106 and 107 after successfully programming EF.ePDGId and EF.ePDGSelection ...................................................................... sysmoISIM-SJA2: Enable Service 106 and 107 after successfully programming EF.ePDGId and EF.ePDGSelection Service 106 and 107 must be set available in order to ME to consider as supported in USIM: 1. ePDG configuration Information support 2. ePDG configuration Information configured Change-Id: Ica067915b9d06ba67f53da7d628f8bacde1ab80e --- M pySim/cards.py 1 file changed, 18 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/51/21851/3 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/21851 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ica067915b9d06ba67f53da7d628f8bacde1ab80e Gerrit-Change-Number: 21851 Gerrit-PatchSet: 3 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 08:51:05 2021 From: gerrit-no-reply at lists.osmocom.org (herlesupreeth) Date: Tue, 5 Jan 2021 08:51:05 +0000 Subject: Change in pysim[master]: utils.py: Bugfix for parsing non-programmed EFePDGSelection References: Message-ID: herlesupreeth has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/21939 ) Change subject: utils.py: Bugfix for parsing non-programmed EFePDGSelection ...................................................................... utils.py: Bugfix for parsing non-programmed EFePDGSelection Change-Id: I3a16af785d8ae9ea8730771367bba2d50690b414 --- M pySim/utils.py 1 file changed, 6 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/39/21939/1 diff --git a/pySim/utils.py b/pySim/utils.py index ebc2a95..cdb2926 100644 --- a/pySim/utils.py +++ b/pySim/utils.py @@ -651,6 +651,7 @@ def format_ePDGSelection(hexstr): ePDGSelection_info_tag_chars = 2 ePDGSelection_info_tag_str = hexstr[:2] + s = "" # Minimum length len_chars = 2 # TODO: Need to determine length properly - definite length support only @@ -659,6 +660,11 @@ # But, each PLMN entry is made of PLMN (3 Bytes) + ePDG Priority (2 Bytes) + ePDG FQDN format (1 Byte) # Totalling to 6 Bytes, maybe length should be 6n len_str = hexstr[ePDGSelection_info_tag_chars:ePDGSelection_info_tag_chars+len_chars] + + # Not programmed scenario + if int(len_str, 16) == 255 or int(ePDGSelection_info_tag_str, 16) == 255: + len_chars = 0 + ePDGSelection_info_tag_chars = 0 if len_str[0] == '8': # The bits 7 to 1 denotes the number of length octets if length > 127 if int(len_str[1]) > 0: @@ -669,7 +675,6 @@ content_str = hexstr[ePDGSelection_info_tag_chars+len_chars:] # Right pad to prevent index out of range - multiple of 6 bytes content_str = rpad(content_str, len(content_str) + (12 - (len(content_str) % 12))) - s = "" for rec_data in hexstr_to_Nbytearr(content_str, 6): rec_info = dec_ePDGSelection(rec_data) if rec_info['mcc'] == 0xFFF and rec_info['mnc'] == 0xFFF: -- To view, visit https://gerrit.osmocom.org/c/pysim/+/21939 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I3a16af785d8ae9ea8730771367bba2d50690b414 Gerrit-Change-Number: 21939 Gerrit-PatchSet: 1 Gerrit-Owner: herlesupreeth Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 09:02:50 2021 From: gerrit-no-reply at lists.osmocom.org (herlesupreeth) Date: Tue, 5 Jan 2021 09:02:50 +0000 Subject: Change in pysim[master]: utils.py: Bugfix for parsing non-programmed EFePDGSelection In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/pysim/+/21939 to look at the new patch set (#2). Change subject: utils.py: Bugfix for parsing non-programmed EFePDGSelection ...................................................................... utils.py: Bugfix for parsing non-programmed EFePDGSelection Change-Id: I3a16af785d8ae9ea8730771367bba2d50690b414 --- M pySim/utils.py M pysim-testdata/sysmoISIM-SJA2.ok 2 files changed, 7 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/39/21939/2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/21939 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I3a16af785d8ae9ea8730771367bba2d50690b414 Gerrit-Change-Number: 21939 Gerrit-PatchSet: 2 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 09:02:50 2021 From: gerrit-no-reply at lists.osmocom.org (herlesupreeth) Date: Tue, 5 Jan 2021 09:02:50 +0000 Subject: Change in pysim[master]: sysmoISIM-SJA2: Add support for programming EF.ePDGSelection (ePDG Se... In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/pysim/+/21850 to look at the new patch set (#4). Change subject: sysmoISIM-SJA2: Add support for programming EF.ePDGSelection (ePDG Selection Information) ...................................................................... sysmoISIM-SJA2: Add support for programming EF.ePDGSelection (ePDG Selection Information) If the EF.ePDGSelection is present, it is populated with a single entry with PLMN 1 set to Home PLMN of USIM, ePDG FQDN format set to Operator Identifier FQDN and ePDG Priority value set to 1. Change-Id: I92f3f813afa41ae497ebc0dc2ca73da810f82364 --- M pySim-prog.py M pySim/cards.py M pysim-testdata/sysmoISIM-SJA2.ok 3 files changed, 36 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/50/21850/4 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/21850 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I92f3f813afa41ae497ebc0dc2ca73da810f82364 Gerrit-Change-Number: 21850 Gerrit-PatchSet: 4 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 09:06:36 2021 From: gerrit-no-reply at lists.osmocom.org (herlesupreeth) Date: Tue, 5 Jan 2021 09:06:36 +0000 Subject: Change in pysim[master]: utils.py: Bugfix for parsing non-programmed EFePDGSelection In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/pysim/+/21939 to look at the new patch set (#3). Change subject: utils.py: Bugfix for parsing non-programmed EFePDGSelection ...................................................................... utils.py: Bugfix for parsing non-programmed EFePDGSelection Change-Id: I3a16af785d8ae9ea8730771367bba2d50690b414 --- M pySim/utils.py M pysim-testdata/sysmoISIM-SJA2.ok 2 files changed, 9 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/39/21939/3 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/21939 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I3a16af785d8ae9ea8730771367bba2d50690b414 Gerrit-Change-Number: 21939 Gerrit-PatchSet: 3 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 09:06:36 2021 From: gerrit-no-reply at lists.osmocom.org (herlesupreeth) Date: Tue, 5 Jan 2021 09:06:36 +0000 Subject: Change in pysim[master]: sysmoISIM-SJA2: Enable Service 106 and 107 after successfully program... In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/pysim/+/21851 to look at the new patch set (#5). Change subject: sysmoISIM-SJA2: Enable Service 106 and 107 after successfully programming EF.ePDGId and EF.ePDGSelection ...................................................................... sysmoISIM-SJA2: Enable Service 106 and 107 after successfully programming EF.ePDGId and EF.ePDGSelection Service 106 and 107 must be set available in order to ME to consider as supported in USIM: 1. ePDG configuration Information support 2. ePDG configuration Information configured Change-Id: Ica067915b9d06ba67f53da7d628f8bacde1ab80e --- M pySim/cards.py 1 file changed, 18 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/51/21851/5 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/21851 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ica067915b9d06ba67f53da7d628f8bacde1ab80e Gerrit-Change-Number: 21851 Gerrit-PatchSet: 5 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 09:08:38 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Tue, 5 Jan 2021 09:08:38 +0000 Subject: Change in osmo-bts[master]: l1sap: fix: enable UL SACCH repetition if RxQual threshold is 0 In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21938 ) Change subject: l1sap: fix: enable UL SACCH repetition if RxQual threshold is 0 ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21938 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ia44a134e7f28ea990798d1b79c87b644504c0876 Gerrit-Change-Number: 21938 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Assignee: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 05 Jan 2021 09:08:38 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Tue Jan 5 09:23:59 2021 From: admin at opensuse.org (OBS Notification) Date: Tue, 05 Jan 2021 09:23:59 +0000 Subject: Build failure of network:osmocom:nightly/libosmo-dsp in Raspbian_10/armv7l In-Reply-To: References: Message-ID: <5ff4303a78e60_3b912affc327a5e027189d@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libosmo-dsp/Raspbian_10/armv7l Package network:osmocom:nightly/libosmo-dsp failed to build in Raspbian_10/armv7l Check out the package for editing: osc checkout network:osmocom:nightly libosmo-dsp Last lines of build log: syswrite: (worker was armbuild04:1) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Tue Jan 5 09:53:04 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 09:53:04 +0000 Subject: Change in pysim[master]: utils.py: Bugfix for parsing non-programmed EFePDGSelection In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/21939 ) Change subject: utils.py: Bugfix for parsing non-programmed EFePDGSelection ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/21939 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I3a16af785d8ae9ea8730771367bba2d50690b414 Gerrit-Change-Number: 21939 Gerrit-PatchSet: 3 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 05 Jan 2021 09:53:04 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 09:53:45 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 09:53:45 +0000 Subject: Change in pysim[master]: sysmoISIM-SJA2: Add support for programming EF.ePDGSelection (ePDG Se... In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/21850 ) Change subject: sysmoISIM-SJA2: Add support for programming EF.ePDGSelection (ePDG Selection Information) ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/21850 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I92f3f813afa41ae497ebc0dc2ca73da810f82364 Gerrit-Change-Number: 21850 Gerrit-PatchSet: 5 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 05 Jan 2021 09:53:45 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 09:53:49 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 09:53:49 +0000 Subject: Change in pysim[master]: utils.py: Bugfix for parsing non-programmed EFePDGSelection In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/21939 ) Change subject: utils.py: Bugfix for parsing non-programmed EFePDGSelection ...................................................................... utils.py: Bugfix for parsing non-programmed EFePDGSelection Change-Id: I3a16af785d8ae9ea8730771367bba2d50690b414 --- M pySim/utils.py M pysim-testdata/sysmoISIM-SJA2.ok 2 files changed, 9 insertions(+), 3 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/pySim/utils.py b/pySim/utils.py index ebc2a95..cdb2926 100644 --- a/pySim/utils.py +++ b/pySim/utils.py @@ -651,6 +651,7 @@ def format_ePDGSelection(hexstr): ePDGSelection_info_tag_chars = 2 ePDGSelection_info_tag_str = hexstr[:2] + s = "" # Minimum length len_chars = 2 # TODO: Need to determine length properly - definite length support only @@ -659,6 +660,11 @@ # But, each PLMN entry is made of PLMN (3 Bytes) + ePDG Priority (2 Bytes) + ePDG FQDN format (1 Byte) # Totalling to 6 Bytes, maybe length should be 6n len_str = hexstr[ePDGSelection_info_tag_chars:ePDGSelection_info_tag_chars+len_chars] + + # Not programmed scenario + if int(len_str, 16) == 255 or int(ePDGSelection_info_tag_str, 16) == 255: + len_chars = 0 + ePDGSelection_info_tag_chars = 0 if len_str[0] == '8': # The bits 7 to 1 denotes the number of length octets if length > 127 if int(len_str[1]) > 0: @@ -669,7 +675,6 @@ content_str = hexstr[ePDGSelection_info_tag_chars+len_chars:] # Right pad to prevent index out of range - multiple of 6 bytes content_str = rpad(content_str, len(content_str) + (12 - (len(content_str) % 12))) - s = "" for rec_data in hexstr_to_Nbytearr(content_str, 6): rec_info = dec_ePDGSelection(rec_data) if rec_info['mcc'] == 0xFFF and rec_info['mnc'] == 0xFFF: diff --git a/pysim-testdata/sysmoISIM-SJA2.ok b/pysim-testdata/sysmoISIM-SJA2.ok index b6836e7..94c4328 100644 --- a/pysim-testdata/sysmoISIM-SJA2.ok +++ b/pysim-testdata/sysmoISIM-SJA2.ok @@ -108,7 +108,7 @@ ffffff # unused ffffff # unused -USIM Service Table: beff9f9de73e0408400170730000002e00000000 +USIM Service Table: beff9f9de73e0408400170330006002e00000000 Service 2 - Fixed Dialling Numbers (FDN) Service 3 - Extension 2 Service 4 - Service Dialling Numbers (SDN) @@ -156,7 +156,8 @@ Service 90 - Operator CSG Lists and corresponding indications Service 93 - Communication Control for IMS by USIM Service 94 - Extended Terminal Applications - Service 95 - Support of UICC access to IMS + Service 106 - ePDG configuration Information support + Service 107 - ePDG configuration Information configured Service 122 - 5GS Mobility Management Information Service 123 - 5G Security Parameters Service 124 - Subscription identifier privacy support -- To view, visit https://gerrit.osmocom.org/c/pysim/+/21939 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I3a16af785d8ae9ea8730771367bba2d50690b414 Gerrit-Change-Number: 21939 Gerrit-PatchSet: 3 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 09:53:49 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 09:53:49 +0000 Subject: Change in pysim[master]: sysmoISIM-SJA2: Add support for programming EF.ePDGSelection (ePDG Se... In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/21850 ) Change subject: sysmoISIM-SJA2: Add support for programming EF.ePDGSelection (ePDG Selection Information) ...................................................................... sysmoISIM-SJA2: Add support for programming EF.ePDGSelection (ePDG Selection Information) If the EF.ePDGSelection is present, it is populated with a single entry with PLMN 1 set to Home PLMN of USIM, ePDG FQDN format set to Operator Identifier FQDN and ePDG Priority value set to 1. Change-Id: I92f3f813afa41ae497ebc0dc2ca73da810f82364 --- M pySim-prog.py M pySim/cards.py 2 files changed, 34 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/pySim-prog.py b/pySim-prog.py index e172d80..93ae924 100755 --- a/pySim-prog.py +++ b/pySim-prog.py @@ -150,6 +150,9 @@ parser.add_option("--epdgid", dest="epdgid", help="Set Home Evolved Packet Data Gateway (ePDG) Identifier. (Only FQDN format supported)", ) + parser.add_option("--epdgSelection", dest="epdgSelection", + help="Set PLMN for ePDG Selection Information. (Only Operator Identifier FQDN format supported)", + ) parser.add_option("--read-imsi", dest="read_imsi", action="store_true", help="Read the IMSI from the CARD", default=False ) @@ -433,6 +436,15 @@ pin_adm = sanitize_pin_adm(opts) + # ePDG Selection Information + if opts.epdgSelection: + if len(opts.epdgSelection) < 5 or len(opts.epdgSelection) > 6: + raise ValueError('ePDG Selection Information is not valid') + epdg_mcc = opts.epdgSelection[:3] + epdg_mnc = opts.epdgSelection[3:] + if not epdg_mcc.isdigit() or not epdg_mnc.isdigit(): + raise ValueError('PLMN for ePDG Selection must only contain decimal digits') + # Return that return { 'name' : opts.name, @@ -447,6 +459,7 @@ 'pin_adm' : pin_adm, 'msisdn' : opts.msisdn, 'epdgid' : opts.epdgid, + 'epdgSelection' : opts.epdgSelection, } diff --git a/pySim/cards.py b/pySim/cards.py index 6243d4a..dc612df 100644 --- a/pySim/cards.py +++ b/pySim/cards.py @@ -284,6 +284,16 @@ else: return (None, sw) + def update_ePDGSelection(self, mcc, mnc): + (res, sw) = self._scc.read_binary(EF_USIM_ADF_map['ePDGSelection'], length=None, offset=0) + if sw == '9000' and (len(mcc) == 0 or len(mnc) == 0): + # Reset contents + # 80 - Tag value + (res, sw) = self._scc.update_binary(EF_USIM_ADF_map['ePDGSelection'], rpad('', len(res))) + elif sw == '9000': + (res, sw) = self._scc.update_binary(EF_USIM_ADF_map['ePDGSelection'], enc_ePDGSelection(res, mcc, mnc)) + return sw + def read_ust(self): (res, sw) = self._scc.read_binary(EF_USIM_ADF_map['UST']) if sw == '9000': @@ -1195,6 +1205,17 @@ if sw != '9000': print("Programming ePDGId failed with code %s"%sw) + # update EF.ePDGSelection in ADF.USIM + if self.file_exists(EF_USIM_ADF_map['ePDGSelection']): + if p.get('epdgSelection'): + epdg_plmn = p['epdgSelection'] + sw = self.update_ePDGSelection(epdg_plmn[:3], epdg_plmn[3:]) + else: + sw = self.update_ePDGSelection("", "") + if sw != '9000': + print("Programming ePDGSelection failed with code %s"%sw) + + return -- To view, visit https://gerrit.osmocom.org/c/pysim/+/21850 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I92f3f813afa41ae497ebc0dc2ca73da810f82364 Gerrit-Change-Number: 21850 Gerrit-PatchSet: 5 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 10:21:33 2021 From: gerrit-no-reply at lists.osmocom.org (herlesupreeth) Date: Tue, 5 Jan 2021 10:21:33 +0000 Subject: Change in pysim[master]: sysmoISIM-SJA2: Enable Service 106 and 107 after successfully program... In-Reply-To: References: Message-ID: herlesupreeth has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/21851 ) Change subject: sysmoISIM-SJA2: Enable Service 106 and 107 after successfully programming EF.ePDGId and EF.ePDGSelection ...................................................................... Patch Set 5: > Patch Set 2: > > I would think there are two logical operations: > a) configure PDG entries (and enable the service) > b) disable the service (possibly/optionally also clearing the files?) > > I don't think both should happen automatically / implicitly when programming the basic paramters of a card. I have now put in a condition and it enables service 106 and 107 only if epdg id and epdg selection information are provided by the user -- To view, visit https://gerrit.osmocom.org/c/pysim/+/21851 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ica067915b9d06ba67f53da7d628f8bacde1ab80e Gerrit-Change-Number: 21851 Gerrit-PatchSet: 5 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-Comment-Date: Tue, 05 Jan 2021 10:21:33 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 10:24:00 2021 From: gerrit-no-reply at lists.osmocom.org (herlesupreeth) Date: Tue, 5 Jan 2021 10:24:00 +0000 Subject: Change in pysim[master]: sysmoISIM-SJA2: Add support for programming Proxy Call Session Contro... In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/pysim/+/21857 to look at the new patch set (#2). Change subject: sysmoISIM-SJA2: Add support for programming Proxy Call Session Control Function address ...................................................................... sysmoISIM-SJA2: Add support for programming Proxy Call Session Control Function address Example: ./pySim-prog.py -p 0 -x 001 -y 01 -s 8988211900000000004 -i 001011234567895 -k 8baf473f2f8fd09487cccbd7097c6862 --op 11111111111111111111111111111111 -o 8E27B6AF0E692E750F32667A3B14605D -a 85524953 -n isim.test --msisdn 0598765432100 --epdgid epdg.epc.mnc001.mcc001.pub.3gppnetwork.org --pcscf pcscf.testims.org Change-Id: Ic654baa93e2ecb91ced596b49dde4c1f208ecda2 --- M pySim-prog.py M pySim/cards.py 2 files changed, 24 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/57/21857/2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/21857 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ic654baa93e2ecb91ced596b49dde4c1f208ecda2 Gerrit-Change-Number: 21857 Gerrit-PatchSet: 2 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 10:24:00 2021 From: gerrit-no-reply at lists.osmocom.org (herlesupreeth) Date: Tue, 5 Jan 2021 10:24:00 +0000 Subject: Change in pysim[master]: sysmoISIM-SJA2: Disable Service 95, 99, 115 in EF.UST in case ISIM is... In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/pysim/+/21859 to look at the new patch set (#3). Change subject: sysmoISIM-SJA2: Disable Service 95, 99, 115 in EF.UST in case ISIM is present ...................................................................... sysmoISIM-SJA2: Disable Service 95, 99, 115 in EF.UST in case ISIM is present As per TS 31.102 version 15.2.0 Release 15, section 4.2.8, EFUST (USIM Service Table), Service n?95, n?99 and n?115 shall not be declared available if an ISIM application is present on the UICC. Change-Id: Id9709746de99585ad31c4e9659323484fda87b14 --- M pySim/cards.py 1 file changed, 11 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/59/21859/3 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/21859 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Id9709746de99585ad31c4e9659323484fda87b14 Gerrit-Change-Number: 21859 Gerrit-PatchSet: 3 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 10:24:00 2021 From: gerrit-no-reply at lists.osmocom.org (herlesupreeth) Date: Tue, 5 Jan 2021 10:24:00 +0000 Subject: Change in pysim[master]: sysmoISIM-SJA2: Add support for programming IMS Home Network Domain Name In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/pysim/+/21866 to look at the new patch set (#4). Change subject: sysmoISIM-SJA2: Add support for programming IMS Home Network Domain Name ...................................................................... sysmoISIM-SJA2: Add support for programming IMS Home Network Domain Name As per 3GPP TS 31.103, this EF (DOMAIN) can found under ADF.ISIM at File Id 6f03. The Home Network Domain Name, i.e. FQDN shall be encoded to an octet string according to UTF-8 encoding rules as specified in IETF RFC 3629 [27]. The tag value of the Home Network Domain Name TLV data object shall be '80'. Example: ./pySim-prog.py -p 0 -x 001 -y 01 -s 8988211900000000004 -i 001011234567895 -k 8baf473f2f8fd09487cccbd7097c6862 --op 11111111111111111111111111111111 -o 8E27B6AF0E692E750F32667A3B14605D -a 85524953 -n isim.test --msisdn 0598765432100 --epdgid epdg.epc.mnc001.mcc001.pub.3gppnetwork.org --pcscf pcscf.testims.org --ims-hdomain testims.org Change-Id: I3c823203aee88734ae423e4ad73da1027a4eaeed --- M pySim-prog.py M pySim/cards.py 2 files changed, 32 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/66/21866/4 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/21866 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I3c823203aee88734ae423e4ad73da1027a4eaeed Gerrit-Change-Number: 21866 Gerrit-PatchSet: 4 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 10:24:00 2021 From: gerrit-no-reply at lists.osmocom.org (herlesupreeth) Date: Tue, 5 Jan 2021 10:24:00 +0000 Subject: Change in pysim[master]: sysmoISIM-SJA2: Fill unused bytes of Home ePDGId with 'f' In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/pysim/+/21867 to look at the new patch set (#4). Change subject: sysmoISIM-SJA2: Fill unused bytes of Home ePDGId with 'f' ...................................................................... sysmoISIM-SJA2: Fill unused bytes of Home ePDGId with 'f' Change-Id: Ia0464f230afcb0f37465d3ed0dfd8f417b53b0c3 --- M pySim/cards.py 1 file changed, 9 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/67/21867/4 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/21867 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ia0464f230afcb0f37465d3ed0dfd8f417b53b0c3 Gerrit-Change-Number: 21867 Gerrit-PatchSet: 4 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 10:24:00 2021 From: gerrit-no-reply at lists.osmocom.org (herlesupreeth) Date: Tue, 5 Jan 2021 10:24:00 +0000 Subject: Change in pysim[master]: sysmoISIM-SJA2: Add support for programming IPv4 address for Home ePD... In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/pysim/+/21870 to look at the new patch set (#2). Change subject: sysmoISIM-SJA2: Add support for programming IPv4 address for Home ePDG Identifier ...................................................................... sysmoISIM-SJA2: Add support for programming IPv4 address for Home ePDG Identifier This commit allows programming of IPv4 or FQDN in EF.ePDGId Example: ./pySim-prog.py -p 0 -x 001 -y 01 -s 8988211900000000004 -i 001011234567895 -k 8baf473f2f8fd09487cccbd7097c6862 --op 11111111111111111111111111111111 -o 8E27B6AF0E692E750F32667A3B14605D -a 85524953 -n isim.test --msisdn 0598765432100 --epdgid 172.24.15.20 --pcscf pcscf.testims.org --ims-hdomain testims.org Change-Id: I10a708d3e0c3ae398c942e3529e364dfe4bb23e7 --- M pySim/cards.py 1 file changed, 4 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/70/21870/2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/21870 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I10a708d3e0c3ae398c942e3529e364dfe4bb23e7 Gerrit-Change-Number: 21870 Gerrit-PatchSet: 2 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 10:24:00 2021 From: gerrit-no-reply at lists.osmocom.org (herlesupreeth) Date: Tue, 5 Jan 2021 10:24:00 +0000 Subject: Change in pysim[master]: sysmoISIM-SJA2: Add support for programming IPv4 address for PCSCF In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/pysim/+/21871 to look at the new patch set (#2). Change subject: sysmoISIM-SJA2: Add support for programming IPv4 address for PCSCF ...................................................................... sysmoISIM-SJA2: Add support for programming IPv4 address for PCSCF This commit allows programming of IPv4 or FQDN in EF.PCSCF Example: ./pySim-prog.py -p 0 -x 001 -y 01 -s 8988211900000000004 -i 001011234567895 -k 8baf473f2f8fd09487cccbd7097c6862 --op 11111111111111111111111111111111 -o 8E27B6AF0E692E750F32667A3B14605D -a 85524953 -n isim.test --msisdn 0598765432100 --epdgid 172.24.15.20 --pcscf 99.100.80.102 --ims-hdomain testims.org Change-Id: I247a5413e9e5fef6b9d7b6cb8442313e72f9156a --- M pySim/cards.py 1 file changed, 6 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/71/21871/2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/21871 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I247a5413e9e5fef6b9d7b6cb8442313e72f9156a Gerrit-Change-Number: 21871 Gerrit-PatchSet: 2 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 10:24:00 2021 From: gerrit-no-reply at lists.osmocom.org (herlesupreeth) Date: Tue, 5 Jan 2021 10:24:00 +0000 Subject: Change in pysim[master]: Update ISIM IST table as per the 3GPP TS 31.103 specification V15.6.0 In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/pysim/+/21872 to look at the new patch set (#2). Change subject: Update ISIM IST table as per the 3GPP TS 31.103 specification V15.6.0 ...................................................................... Update ISIM IST table as per the 3GPP TS 31.103 specification V15.6.0 Change-Id: I8f6a96721beb9621ac453715cf2d0303989cfe85 --- M pySim/ts_31_103.py 1 file changed, 2 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/72/21872/2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/21872 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I8f6a96721beb9621ac453715cf2d0303989cfe85 Gerrit-Change-Number: 21872 Gerrit-PatchSet: 2 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 10:33:40 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 5 Jan 2021 10:33:40 +0000 Subject: Change in osmo-pcu[master]: Convert GprsMS and helpers classes to C In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21748 ) Change subject: Convert GprsMS and helpers classes to C ...................................................................... Patch Set 6: Code-Review+2 Merging this now since it has been with a +1 and no negative comments for a few weeks and I requested my desire to merge it sooner than later due to probable merge conflicts appearing. -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21748 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I0b50e3367aaad9dcada76da97b438e452c8b230c Gerrit-Change-Number: 21748 Gerrit-PatchSet: 6 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 05 Jan 2021 10:33:40 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 10:34:21 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 5 Jan 2021 10:34:21 +0000 Subject: Change in osmo-pcu[master]: tbf: Fix wrong verb used in log message In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21790 ) Change subject: tbf: Fix wrong verb used in log message ...................................................................... Patch Set 1: Code-Review+2 Merging this straightforward one liner fix which has been waiting here for a while with no feedback. -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21790 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Id9f8df9a5c0e0f88a811c5d7f06821cb4f30ab93 Gerrit-Change-Number: 21790 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 05 Jan 2021 10:34:21 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 10:34:25 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 5 Jan 2021 10:34:25 +0000 Subject: Change in osmo-pcu[master]: Convert GprsMS and helpers classes to C In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21748 ) Change subject: Convert GprsMS and helpers classes to C ...................................................................... Convert GprsMS and helpers classes to C As we integrate osmo-pcu more and more with libosmocore features, it becomes really hard to use them since libosmocore relies heavily on C specific compilation features, which are not available in old C++ compilers (such as designated initializers for complex types in FSMs). GprsMs is right now a quite simple object since initial design of osmo-pcu made it optional and most of the logic was placed and stored duplicated in TBF objects. However, that's changing as we introduce more features, with the GprsMS class getting more weight. Hence, let's move it now to be a C struct in order to be able to easily use libosmocore features there, such as FSMs. Some helper classes which GprsMs uses are also mostly move to C since they are mostly structs with methods, so there's no point in having duplicated APIs for C++ and C for such simple cases. For some more complex classes, like (ul_,dl_)tbf, C API bindings are added where needed so that GprsMs can use functionalitites from that class. Most of those APIs can be kept afterwards and drop the C++ ones since they provide no benefit in general. Change-Id: I0b50e3367aaad9dcada76da97b438e452c8b230c --- M src/Makefile.am M src/bts.cpp M src/bts.h M src/encoding.cpp A src/gprs_ms.c D src/gprs_ms.cpp M src/gprs_ms.h M src/gprs_ms_storage.cpp M src/gprs_ms_storage.h M src/gprs_rlcmac_sched.cpp M src/gprs_rlcmac_ts_alloc.cpp M src/llc.cpp M src/llc.h M src/pcu_l1_if.cpp M src/pcu_l1_if.h M src/pcu_utils.h M src/pcu_vty_functions.cpp M src/pdch.cpp M src/tbf.cpp M src/tbf.h M src/tbf_dl.cpp M src/tbf_dl.h M src/tbf_ul.cpp M src/tbf_ul.h M tests/alloc/AllocTest.cpp M tests/app_info/AppInfoTest.cpp M tests/app_info/AppInfoTest.err M tests/edge/EdgeTest.cpp M tests/llc/LlcTest.cpp M tests/ms/MsTest.cpp M tests/tbf/TbfTest.cpp M tests/types/TypesTest.cpp 32 files changed, 1,977 insertions(+), 1,920 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/Makefile.am b/src/Makefile.am index ece372d..386a1f6 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -47,7 +47,7 @@ gprs_rlcmac_sched.cpp \ gprs_rlcmac_meas.cpp \ gprs_rlcmac_ts_alloc.cpp \ - gprs_ms.cpp \ + gprs_ms.c \ gprs_ms_storage.cpp \ gsm_timer.cpp \ pcu_l1_if.cpp \ diff --git a/src/bts.cpp b/src/bts.cpp index b4f902a..bd0a1d2 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -712,7 +712,7 @@ ms = ms_by_tlli(tlli); if (ms) - dl_tbf = ms->dl_tbf(); + dl_tbf = ms_dl_tbf(ms); if (!dl_tbf) { LOGP(DRLCMAC, LOGL_ERROR, "Got IMM.ASS confirm, but TLLI=%08x " "does not exit\n", tlli); @@ -1140,9 +1140,9 @@ GprsMs *ms; ms = ms_store().create_ms(); - ms->set_timeout(osmo_tdef_get(m_bts.T_defs_pcu, -2030, OSMO_TDEF_S, -1)); - ms->set_ms_class(ms_class); - ms->set_egprs_ms_class(egprs_ms_class); + ms_set_timeout(ms, osmo_tdef_get(m_bts.T_defs_pcu, -2030, OSMO_TDEF_S, -1)); + ms_set_ms_class(ms, ms_class); + ms_set_egprs_ms_class(ms, egprs_ms_class); return ms; } @@ -1206,22 +1206,22 @@ } } -void gprs_rlcmac_trx::reserve_slots(enum gprs_rlcmac_tbf_direction dir, +void bts_trx_reserve_slots(struct gprs_rlcmac_trx *trx, enum gprs_rlcmac_tbf_direction dir, uint8_t slots) { unsigned i; - for (i = 0; i < ARRAY_SIZE(pdch); i += 1) + for (i = 0; i < ARRAY_SIZE(trx->pdch); i += 1) if (slots & (1 << i)) - pdch[i].reserve(dir); + trx->pdch[i].reserve(dir); } -void gprs_rlcmac_trx::unreserve_slots(enum gprs_rlcmac_tbf_direction dir, +void bts_trx_unreserve_slots(struct gprs_rlcmac_trx *trx, enum gprs_rlcmac_tbf_direction dir, uint8_t slots) { unsigned i; - for (i = 0; i < ARRAY_SIZE(pdch); i += 1) + for (i = 0; i < ARRAY_SIZE(trx->pdch); i += 1) if (slots & (1 << i)) - pdch[i].unreserve(dir); + trx->pdch[i].unreserve(dir); } void bts_set_max_cs(struct gprs_rlcmac_bts *bts, uint8_t cs_dl, uint8_t cs_ul) @@ -1277,3 +1277,34 @@ bts->bts->set_max_mcs_dl(mcs_dl); bts->bts->set_max_mcs_ul(mcs_ul); } + + +struct gprs_rlcmac_bts *bts_data(struct BTS *bts) +{ + return &bts->m_bts; +} + +struct GprsMs *bts_ms_by_imsi(struct BTS *bts, const char *imsi) +{ + return bts->ms_by_imsi(imsi); +} + +uint8_t bts_max_cs_dl(const struct BTS *bts) +{ + return bts->max_cs_dl(); +} + +uint8_t bts_max_cs_ul(const struct BTS *bts) +{ + return bts->max_cs_ul(); +} + +uint8_t bts_max_mcs_dl(const struct BTS *bts) +{ + return bts->max_mcs_dl(); +} + +uint8_t bts_max_mcs_ul(const struct BTS *bts) +{ + return bts->max_mcs_ul(); +} diff --git a/src/bts.h b/src/bts.h index 055b131..f10542f 100644 --- a/src/bts.h +++ b/src/bts.h @@ -90,15 +90,14 @@ struct BTS *bts; uint8_t trx_no; -#ifdef __cplusplus - void reserve_slots(enum gprs_rlcmac_tbf_direction dir, uint8_t slots); - void unreserve_slots(enum gprs_rlcmac_tbf_direction dir, uint8_t slots); -#endif }; #ifdef __cplusplus extern "C" { #endif +void bts_trx_reserve_slots(struct gprs_rlcmac_trx *trx, enum gprs_rlcmac_tbf_direction dir, uint8_t slots); +void bts_trx_unreserve_slots(struct gprs_rlcmac_trx *trx, enum gprs_rlcmac_tbf_direction dir, uint8_t slots); + void bts_update_tbf_ta(const char *p, uint32_t fn, uint8_t trx_no, uint8_t ts, int8_t ta, bool is_rach); #ifdef __cplusplus } @@ -372,10 +371,11 @@ LListHead& ul_tbfs(); LListHead& dl_tbfs(); + + struct gprs_rlcmac_bts m_bts; private: int m_cur_fn; int m_cur_blk_fn; - struct gprs_rlcmac_bts m_bts; uint8_t m_max_cs_dl, m_max_cs_ul; uint8_t m_max_mcs_dl, m_max_mcs_ul; PollController m_pollController; @@ -459,11 +459,17 @@ extern "C" { #endif void bts_cleanup(); + struct gprs_rlcmac_bts *bts_data(struct BTS *bts); struct gprs_rlcmac_bts *bts_main_data(); struct rate_ctr_group *bts_main_data_stats(); struct osmo_stat_item_group *bts_main_data_stat_items(); void bts_set_max_cs(struct gprs_rlcmac_bts *bts, uint8_t cs_dl, uint8_t cs_ul); void bts_set_max_mcs(struct gprs_rlcmac_bts *bts, uint8_t mcs_dl, uint8_t mcs_ul); + struct GprsMs *bts_ms_by_imsi(struct BTS *bts, const char *imsi); + uint8_t bts_max_cs_dl(const struct BTS *bts); + uint8_t bts_max_cs_ul(const struct BTS *bts); + uint8_t bts_max_mcs_dl(const struct BTS *bts); + uint8_t bts_max_mcs_ul(const struct BTS *bts); #ifdef __cplusplus } diff --git a/src/encoding.cpp b/src/encoding.cpp index a16962a..e7b1fb4 100644 --- a/src/encoding.cpp +++ b/src/encoding.cpp @@ -1388,7 +1388,7 @@ delimiter = data_block + *num_chunks; e_pointer = (*num_chunks ? delimiter - 1 : NULL); - chunk = llc->chunk_size(); + chunk = llc_chunk_size(llc); space = rdbi->data_len - *offset; /* if chunk will exceed block limit */ @@ -1402,7 +1402,7 @@ *e_pointer |= 0x02; /* set previous M bit = 1 */ } /* fill only space */ - llc->consume(data, space); + llc_consume_data(llc, data, space); if (count_payload) *count_payload = space; /* return data block as message */ @@ -1421,7 +1421,7 @@ if (e_pointer) *e_pointer |= 0x01; /* fill space */ - llc->consume(data, space); + llc_consume_data(llc, data, space); if (count_payload) *count_payload = space; *offset = rdbi->data_len; @@ -1454,7 +1454,7 @@ rdbi->e = 0; /* 0: extensions present */ // no need to set e_pointer nor increase delimiter /* fill only space, which is 1 octet less than chunk */ - llc->consume(data, space); + llc_consume_data(llc, data, space); if (count_payload) *count_payload = space; /* return data block as message */ @@ -1485,7 +1485,7 @@ rdbi->e = 0; /* 0: extensions present */ (*num_chunks)++; /* copy (rest of) LLC frame to space and reset later */ - llc->consume(data, chunk); + llc_consume_data(llc, data, chunk); if (count_payload) *count_payload = chunk; data += chunk; @@ -1536,7 +1536,7 @@ prev_li = (struct rlc_li_field_egprs *) (*num_chunks ? delimiter - 1 : NULL); - chunk = llc->chunk_size(); + chunk = llc_chunk_size(llc); space = rdbi->data_len - *offset; /* if chunk will exceed block limit */ @@ -1546,7 +1546,7 @@ "only remaining space, and we are done\n", chunk, space); /* fill only space */ - llc->consume(data, space); + llc_consume_data(llc, data, space); if (count_payload) *count_payload = space; /* return data block as message */ @@ -1562,7 +1562,7 @@ "this is a final block, we don't add length " "header, and we are done\n", chunk, space); /* fill space */ - llc->consume(data, space); + llc_consume_data(llc, data, space); if (count_payload) *count_payload = space; *offset = rdbi->data_len; @@ -1578,7 +1578,7 @@ "to start with an empty chunk\n", chunk, space); /* fill space */ - llc->consume(data, space); + llc_consume_data(llc, data, space); if (count_payload) *count_payload = space; *offset = rdbi->data_len; @@ -1610,7 +1610,7 @@ prev_li = li; (*num_chunks)++; /* copy (rest of) LLC frame to space and reset later */ - llc->consume(data, chunk); + llc_consume_data(llc, data, chunk); if (count_payload) *count_payload = chunk; data += chunk; diff --git a/src/gprs_ms.c b/src/gprs_ms.c new file mode 100644 index 0000000..94f69cd --- /dev/null +++ b/src/gprs_ms.c @@ -0,0 +1,885 @@ +/* gprs_ms.c + * + * Copyright (C) 2015-2020 by Sysmocom s.f.m.c. GmbH + * Author: Jacob Erlbeck + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + + +#include "gprs_ms.h" +#include "bts.h" +#include "tbf.h" +#include "tbf_ul.h" +#include "gprs_debug.h" +#include "gprs_codel.h" +#include "pcu_utils.h" + +#include + +#include +#include +#include +#include +#include +#include +#include "coding_scheme.h" + +#define GPRS_CODEL_SLOW_INTERVAL_MS 4000 + +extern void *tall_pcu_ctx; + +static int64_t now_msec() +{ + struct timespec ts; + osmo_clock_gettime(CLOCK_MONOTONIC, &ts); + + return (int64_t)(ts.tv_sec) * 1000 + ts.tv_nsec / 1000000; +} + +void gprs_default_cb_ms_idle(struct GprsMs *ms) +{ + talloc_free(ms); +} + +void gprs_default_cb_ms_active(struct GprsMs *ms) +{ + /* do nothing */ +} + +static struct gpr_ms_callback gprs_default_cb = { + .ms_idle = gprs_default_cb_ms_idle, + .ms_active = gprs_default_cb_ms_active, +}; + +void ms_timeout(void *data) +{ + struct GprsMs *ms = (struct GprsMs *) data; + LOGP(DRLCMAC, LOGL_INFO, "Timeout for MS object, TLLI = 0x%08x\n", + ms_tlli(ms)); + + if (ms->timer.data) { + ms->timer.data = NULL; + ms_unref(ms); + } +} + +static int ms_talloc_destructor(struct GprsMs *ms); +struct GprsMs *ms_alloc(struct BTS *bts, uint32_t tlli) +{ + struct GprsMs *ms = talloc_zero(tall_pcu_ctx, struct GprsMs); + + talloc_set_destructor(ms, ms_talloc_destructor); + + ms->bts = bts; + ms->cb = gprs_default_cb; + ms->tlli = tlli; + ms->new_ul_tlli = GSM_RESERVED_TMSI; + ms->new_dl_tlli = GSM_RESERVED_TMSI; + ms->ta = GSM48_TA_INVALID; + ms->current_cs_ul = UNKNOWN; + ms->current_cs_dl = UNKNOWN; + ms->is_idle = true; + INIT_LLIST_HEAD(&ms->list); + INIT_LLIST_HEAD(&ms->old_tbfs); + + int codel_interval = LLC_CODEL_USE_DEFAULT; + + LOGP(DRLCMAC, LOGL_INFO, "Creating MS object, TLLI = 0x%08x\n", tlli); + + ms->imsi[0] = '\0'; + memset(&ms->timer, 0, sizeof(ms->timer)); + ms->timer.cb = ms_timeout; + llc_queue_init(&ms->llc_queue); + + ms_set_mode(ms, GPRS); + + if (ms->bts) + codel_interval = bts_data(ms->bts)->llc_codel_interval_msec; + + if (codel_interval) { + if (codel_interval == LLC_CODEL_USE_DEFAULT) + codel_interval = GPRS_CODEL_SLOW_INTERVAL_MS; + ms->codel_state = talloc(ms, struct gprs_codel); + gprs_codel_init(ms->codel_state); + gprs_codel_set_interval(ms->codel_state, codel_interval); + } + ms->last_cs_not_low = now_msec(); + ms->app_info_pending = false; + return ms; +} + +static int ms_talloc_destructor(struct GprsMs *ms) +{ + struct llist_item *pos, *tmp; + + LOGP(DRLCMAC, LOGL_INFO, "Destroying MS object, TLLI = 0x%08x\n", ms_tlli(ms)); + + ms_set_reserved_slots(ms, NULL, 0, 0); + + if (osmo_timer_pending(&ms->timer)) + osmo_timer_del(&ms->timer); + + if (ms->ul_tbf) { + tbf_set_ms((struct gprs_rlcmac_tbf *)ms->ul_tbf, NULL); + ms->ul_tbf = NULL; + } + + if (ms->dl_tbf) { + tbf_set_ms((struct gprs_rlcmac_tbf *)ms->dl_tbf, NULL); + ms->dl_tbf = NULL; + } + + llist_for_each_entry_safe(pos, tmp, &ms->old_tbfs, list) { + struct gprs_rlcmac_tbf *tbf = (struct gprs_rlcmac_tbf *)pos->entry; + tbf_set_ms(tbf, NULL); + } + + llc_queue_clear(&ms->llc_queue, ms->bts); + return 0; +} + + +void ms_set_callback(struct GprsMs *ms, struct gpr_ms_callback *cb) +{ + if (cb) + ms->cb = *cb; + else + ms->cb = gprs_default_cb; +} + +static void ms_update_status(struct GprsMs *ms) +{ + if (ms->ref > 0) + return; + + if (ms_is_idle(ms) && !ms->is_idle) { + ms->is_idle = true; + ms->cb.ms_idle(ms); + /* this can be deleted by now, do not access it */ + return; + } + + if (!ms_is_idle(ms) && ms->is_idle) { + ms->is_idle = false; + ms->cb.ms_active(ms); + } +} + +struct GprsMs *ms_ref(struct GprsMs *ms) +{ + ms->ref += 1; + return ms; +} + +void ms_unref(struct GprsMs *ms) +{ + OSMO_ASSERT(ms->ref >= 0); + ms->ref -= 1; + if (ms->ref == 0) + ms_update_status(ms); +} + +void ms_start_timer(struct GprsMs *ms) +{ + if (ms->delay == 0) + return; + + if (!ms->timer.data) + ms->timer.data = ms_ref(ms); + + osmo_timer_schedule(&ms->timer, ms->delay, 0); +} + +void ms_stop_timer(struct GprsMs *ms) +{ + if (!ms->timer.data) + return; + + osmo_timer_del(&ms->timer); + ms->timer.data = NULL; + ms_unref(ms); +} + +void ms_set_mode(struct GprsMs *ms, enum mcs_kind mode) +{ + ms->mode = mode; + + if (!ms->bts) + return; + + switch (ms->mode) { + case GPRS: + if (!mcs_is_gprs(ms->current_cs_ul)) { + ms->current_cs_ul = mcs_get_gprs_by_num( + bts_data(ms->bts)->initial_cs_ul); + if (!mcs_is_valid(ms->current_cs_ul)) + ms->current_cs_ul = CS1; + } + if (!mcs_is_gprs(ms->current_cs_dl)) { + ms->current_cs_dl = mcs_get_gprs_by_num( + bts_data(ms->bts)->initial_cs_dl); + if (!mcs_is_valid(ms->current_cs_dl)) + ms->current_cs_dl = CS1; + } + break; + + case EGPRS_GMSK: + case EGPRS: + if (!mcs_is_edge(ms->current_cs_ul)) { + ms->current_cs_ul = mcs_get_egprs_by_num( + bts_data(ms->bts)->initial_mcs_ul); + if (!mcs_is_valid(ms->current_cs_ul)) + ms->current_cs_ul = MCS1; + } + if (!mcs_is_edge(ms->current_cs_dl)) { + ms->current_cs_dl = mcs_get_egprs_by_num( + bts_data(ms->bts)->initial_mcs_dl); + if (!mcs_is_valid(ms->current_cs_dl)) + ms->current_cs_dl = MCS1; + } + break; + } +} + +static void ms_attach_ul_tbf(struct GprsMs *ms, struct gprs_rlcmac_ul_tbf *tbf) +{ + if (ms->ul_tbf == tbf) + return; + + LOGP(DRLCMAC, LOGL_INFO, "Attaching TBF to MS object, TLLI = 0x%08x, TBF = %s\n", + ms_tlli(ms), tbf_name((struct gprs_rlcmac_tbf *)tbf)); + + ms_ref(ms); + + if (ms->ul_tbf) + llist_add_tail(tbf_ms_list((struct gprs_rlcmac_tbf *)ms->ul_tbf), &ms->old_tbfs); + + ms->ul_tbf = tbf; + + if (tbf) + ms_stop_timer(ms); + + ms_unref(ms); +} + +static void ms_attach_dl_tbf(struct GprsMs *ms, struct gprs_rlcmac_dl_tbf *tbf) +{ + if (ms->dl_tbf == tbf) + return; + + LOGP(DRLCMAC, LOGL_INFO, "Attaching TBF to MS object, TLLI = 0x%08x, TBF = %s\n", + ms_tlli(ms), tbf_name((struct gprs_rlcmac_tbf *)tbf)); + + ms_ref(ms); + + if (ms->dl_tbf) + llist_add_tail(tbf_ms_list((struct gprs_rlcmac_tbf *)ms->dl_tbf), &ms->old_tbfs); + + ms->dl_tbf = tbf; + + if (tbf) + ms_stop_timer(ms); + + ms_unref(ms); +} + +void ms_attach_tbf(struct GprsMs *ms, struct gprs_rlcmac_tbf *tbf) +{ + if (tbf_direction(tbf) == GPRS_RLCMAC_DL_TBF) + ms_attach_dl_tbf(ms, as_dl_tbf(tbf)); + else + ms_attach_ul_tbf(ms, as_ul_tbf(tbf)); +} + +void ms_detach_tbf(struct GprsMs *ms, struct gprs_rlcmac_tbf *tbf) +{ + if (tbf == (struct gprs_rlcmac_tbf *)(ms->ul_tbf)) { + ms->ul_tbf = NULL; + } else if (tbf == (struct gprs_rlcmac_tbf *)(ms->dl_tbf)) { + ms->dl_tbf = NULL; + } else { + bool found = false; + + struct llist_item *pos, *tmp; + llist_for_each_entry_safe(pos, tmp, &ms->old_tbfs, list) { + struct gprs_rlcmac_tbf *tmp_tbf = (struct gprs_rlcmac_tbf *)pos->entry; + if (tmp_tbf == tbf) { + llist_del(&pos->list); + found = true; + break; + } + } + + /* Protect against recursive calls via set_ms() */ + if (!found) + return; + } + + LOGP(DRLCMAC, LOGL_INFO, "Detaching TBF from MS object, TLLI = 0x%08x, TBF = %s\n", + ms_tlli(ms), tbf_name(tbf)); + + if (tbf_ms(tbf) == ms) + tbf_set_ms(tbf, NULL); + + if (!ms->dl_tbf && !ms->ul_tbf) { + ms_set_reserved_slots(ms, NULL, 0, 0); + + if (ms_tlli(ms) != 0) + ms_start_timer(ms); + } + + ms_update_status(ms); +} + +void ms_reset(struct GprsMs *ms) +{ + LOGP(DRLCMAC, LOGL_INFO, + "Clearing MS object, TLLI: 0x%08x, IMSI: '%s'\n", + ms_tlli(ms), ms_imsi(ms)); + + ms_stop_timer(ms); + + ms->tlli = GSM_RESERVED_TMSI; + ms->new_dl_tlli = ms->tlli; + ms->new_ul_tlli = ms->tlli; + ms->imsi[0] = '\0'; +} + +static void ms_merge_old_ms(struct GprsMs *ms, struct GprsMs *old_ms) +{ + OSMO_ASSERT(old_ms != ms); + + if (strlen(ms_imsi(ms)) == 0 && strlen(ms_imsi(old_ms)) != 0) + osmo_strlcpy(ms->imsi, ms_imsi(old_ms), sizeof(ms->imsi)); + + if (!ms_ms_class(ms) && ms_ms_class(old_ms)) + ms_set_ms_class(ms, ms_ms_class(old_ms)); + + if (!ms_egprs_ms_class(ms) && ms_egprs_ms_class(old_ms)) + ms_set_egprs_ms_class(ms, ms_egprs_ms_class(old_ms)); + + llc_queue_move_and_merge(&ms->llc_queue, &old_ms->llc_queue); + + ms_reset(old_ms); +} + +void ms_merge_and_clear_ms(struct GprsMs *ms, struct GprsMs *old_ms) +{ + OSMO_ASSERT(old_ms != ms); + + ms_ref(old_ms); + + /* Clean up the old MS object */ + /* TODO: Use timer? */ + if (ms_ul_tbf(old_ms) && !tbf_timers_pending((struct gprs_rlcmac_tbf *)ms_ul_tbf(old_ms), T_MAX)) + tbf_free((struct gprs_rlcmac_tbf *)ms_ul_tbf(old_ms)); + if (ms_dl_tbf(old_ms) && !tbf_timers_pending((struct gprs_rlcmac_tbf *)ms_dl_tbf(old_ms), T_MAX)) + tbf_free((struct gprs_rlcmac_tbf *)ms_dl_tbf(old_ms)); + + ms_merge_old_ms(ms, old_ms); + + ms_unref(old_ms); +} + +void ms_set_tlli(struct GprsMs *ms, uint32_t tlli) +{ + if (tlli == ms->tlli || tlli == ms->new_ul_tlli) + return; + + if (tlli != ms->new_dl_tlli) { + LOGP(DRLCMAC, LOGL_INFO, + "Modifying MS object, UL TLLI: 0x%08x -> 0x%08x, " + "not yet confirmed\n", + ms_tlli(ms), tlli); + ms->new_ul_tlli = tlli; + return; + } + + LOGP(DRLCMAC, LOGL_INFO, + "Modifying MS object, TLLI: 0x%08x -> 0x%08x, " + "already confirmed partly\n", + ms->tlli, tlli); + + ms->tlli = tlli; + ms->new_dl_tlli = GSM_RESERVED_TMSI; + ms->new_ul_tlli = GSM_RESERVED_TMSI; +} + +bool ms_confirm_tlli(struct GprsMs *ms, uint32_t tlli) +{ + if (tlli == ms->tlli || tlli == ms->new_dl_tlli) + return false; + + if (tlli != ms->new_ul_tlli) { + /* The MS has not sent a message with the new TLLI, which may + * happen according to the spec [TODO: add reference]. */ + + LOGP(DRLCMAC, LOGL_INFO, + "The MS object cannot fully confirm an unexpected TLLI: 0x%08x, " + "partly confirmed\n", tlli); + /* Use the network's idea of TLLI as candidate, this does not + * change the result value of tlli() */ + ms->new_dl_tlli = tlli; + return false; + } + + LOGP(DRLCMAC, LOGL_INFO, + "Modifying MS object, TLLI: 0x%08x confirmed\n", tlli); + + ms->tlli = tlli; + ms->new_dl_tlli = GSM_RESERVED_TMSI; + ms->new_ul_tlli = GSM_RESERVED_TMSI; + + return true; +} + +void ms_set_imsi(struct GprsMs *ms, const char *imsi) +{ + if (!imsi) { + LOGP(DRLCMAC, LOGL_ERROR, "Expected IMSI!\n"); + return; + } + + if (imsi[0] && strlen(imsi) < 3) { + LOGP(DRLCMAC, LOGL_ERROR, "No valid IMSI '%s'!\n", + imsi); + return; + } + + if (strcmp(imsi, ms->imsi) == 0) + return; + + LOGP(DRLCMAC, LOGL_INFO, + "Modifying MS object, TLLI = 0x%08x, IMSI '%s' -> '%s'\n", + ms_tlli(ms), ms->imsi, imsi); + + struct GprsMs *old_ms = bts_ms_by_imsi(ms->bts, imsi); + /* Check if we are going to store a different MS object with already + existing IMSI. This is probably a bug in code calling this function, + since it should take care of this explicitly */ + if (old_ms) { + /* We cannot find ms->ms by IMSI since we know that it has a + * different IMSI */ + OSMO_ASSERT(old_ms != ms); + + LOGPMS(ms, DRLCMAC, LOGL_NOTICE, + "IMSI '%s' was already assigned to another " + "MS object: TLLI = 0x%08x, that IMSI will be removed\n", + imsi, ms_tlli(old_ms)); + + ms_merge_and_clear_ms(ms, old_ms); + } + + + osmo_strlcpy(ms->imsi, imsi, sizeof(ms->imsi)); +} + +void ms_set_ta(struct GprsMs *ms, uint8_t ta_) +{ + if (ta_ == ms->ta) + return; + + if (gsm48_ta_is_valid(ta_)) { + LOGP(DRLCMAC, LOGL_INFO, + "Modifying MS object, TLLI = 0x%08x, TA %d -> %d\n", + ms_tlli(ms), ms->ta, ta_); + ms->ta = ta_; + } else + LOGP(DRLCMAC, LOGL_NOTICE, + "MS object, TLLI = 0x%08x, invalid TA %d rejected (old " + "value %d kept)\n", ms_tlli(ms), ta_, ms->ta); +} + +void ms_set_ms_class(struct GprsMs *ms, uint8_t ms_class_) +{ + if (ms_class_ == ms->ms_class) + return; + + LOGP(DRLCMAC, LOGL_INFO, + "Modifying MS object, TLLI = 0x%08x, MS class %d -> %d\n", + ms_tlli(ms), ms->ms_class, ms_class_); + + ms->ms_class = ms_class_; +} + +void ms_set_egprs_ms_class(struct GprsMs *ms, uint8_t ms_class_) +{ + if (ms_class_ == ms->egprs_ms_class) + return; + + LOGP(DRLCMAC, LOGL_INFO, + "Modifying MS object, TLLI = 0x%08x, EGPRS MS class %d -> %d\n", + ms_tlli(ms), ms->egprs_ms_class, ms_class_); + + ms->egprs_ms_class = ms_class_; + + if (!bts_max_mcs_ul(ms->bts) || !bts_max_mcs_dl(ms->bts)) { + LOGPMS(ms, DRLCMAC, LOGL_DEBUG, + "Avoid enabling EGPRS because use of MCS is disabled: ul=%u dl=%u\n", + bts_max_mcs_ul(ms->bts), bts_max_mcs_dl(ms->bts)); + return; + } + + if (mcs_is_edge_gmsk(mcs_get_egprs_by_num(bts_max_mcs_ul(ms->bts))) && + mcs_is_edge_gmsk(mcs_get_egprs_by_num(bts_max_mcs_dl(ms->bts))) && + ms_mode(ms) != EGPRS) + { + ms_set_mode(ms, EGPRS_GMSK); + } else { + ms_set_mode(ms, EGPRS); + } + LOGPMS(ms, DRLCMAC, LOGL_INFO, "Enabled EGPRS, mode %s\n", mode_name(ms_mode(ms))); +} + +void ms_update_error_rate(struct GprsMs *ms, struct gprs_rlcmac_tbf *tbf, int error_rate) +{ + struct gprs_rlcmac_bts *bts_; + int64_t now; + enum CodingScheme max_cs_dl = ms_max_cs_dl(ms); + + OSMO_ASSERT(max_cs_dl); + bts_ = bts_data(ms->bts); + + if (error_rate < 0) + return; + + now = now_msec(); + + /* TODO: Check for TBF direction */ + /* TODO: Support different CS values for UL and DL */ + + ms->nack_rate_dl = error_rate; + + if (error_rate > bts_->cs_adj_upper_limit) { + if (mcs_chan_code(ms->current_cs_dl) > 0) { + mcs_dec_kind(&ms->current_cs_dl, ms_mode(ms)); + LOGP(DRLCMACDL, LOGL_INFO, + "MS (IMSI %s): High error rate %d%%, " + "reducing CS level to %s\n", + ms_imsi(ms), error_rate, mcs_name(ms->current_cs_dl)); + ms->last_cs_not_low = now; + } + } else if (error_rate < bts_->cs_adj_lower_limit) { + if (ms->current_cs_dl < max_cs_dl) { + if (now - ms->last_cs_not_low > 1000) { + mcs_inc_kind(&ms->current_cs_dl, ms_mode(ms)); + + LOGP(DRLCMACDL, LOGL_INFO, + "MS (IMSI %s): Low error rate %d%%, " + "increasing DL CS level to %s\n", + ms_imsi(ms), error_rate, + mcs_name(ms->current_cs_dl)); + ms->last_cs_not_low = now; + } else { + LOGP(DRLCMACDL, LOGL_DEBUG, + "MS (IMSI %s): Low error rate %d%%, " + "ignored (within blocking period)\n", + ms_imsi(ms), error_rate); + } + } + } else { + LOGP(DRLCMACDL, LOGL_DEBUG, + "MS (IMSI %s): Medium error rate %d%%, ignored\n", + ms_imsi(ms), error_rate); + ms->last_cs_not_low = now; + } +} + +enum CodingScheme ms_max_cs_ul(const struct GprsMs *ms) +{ + OSMO_ASSERT(ms->bts != NULL); + + if (mcs_is_gprs(ms->current_cs_ul)) { + if (!bts_max_cs_ul(ms->bts)) { + return CS4; + } + + return mcs_get_gprs_by_num(bts_max_cs_ul(ms->bts)); + } + + if (!mcs_is_edge(ms->current_cs_ul)) + return UNKNOWN; + + if (bts_max_mcs_ul(ms->bts)) + return mcs_get_egprs_by_num(bts_max_mcs_ul(ms->bts)); + else if (bts_max_cs_ul(ms->bts)) + return mcs_get_gprs_by_num(bts_max_cs_ul(ms->bts)); + + return MCS4; +} + +void ms_set_current_cs_dl(struct GprsMs *ms, enum CodingScheme scheme) +{ + ms->current_cs_dl = scheme; +} + +enum CodingScheme ms_max_cs_dl(const struct GprsMs *ms) +{ + OSMO_ASSERT(ms->bts != NULL); + + if (mcs_is_gprs(ms->current_cs_dl)) { + if (!bts_max_cs_dl(ms->bts)) { + return CS4; + } + + return mcs_get_gprs_by_num(bts_max_cs_dl(ms->bts)); + } + + if (!mcs_is_edge(ms->current_cs_dl)) + return UNKNOWN; + + if (bts_max_mcs_dl(ms->bts)) + return mcs_get_egprs_by_num(bts_max_mcs_dl(ms->bts)); + else if (bts_max_cs_dl(ms->bts)) + return mcs_get_gprs_by_num(bts_max_cs_dl(ms->bts)); + + return MCS4; +} + +void ms_update_cs_ul(struct GprsMs *ms, const struct pcu_l1_meas *meas) +{ + struct gprs_rlcmac_bts *bts_; + enum CodingScheme max_cs_ul = ms_max_cs_ul(ms); + + int old_link_qual; + int low; + int high; + enum CodingScheme new_cs_ul = ms->current_cs_ul; + uint8_t current_cs = mcs_chan_code(ms->current_cs_ul); + + bts_ = bts_data(ms->bts); + + if (!max_cs_ul) { + LOGP(DRLCMACMEAS, LOGL_ERROR, + "max_cs_ul cannot be derived (current UL CS: %s)\n", + mcs_name(ms->current_cs_ul)); + return; + } + + if (!ms->current_cs_ul) { + LOGP(DRLCMACMEAS, LOGL_ERROR, + "Unable to update UL (M)CS because it's not set: %s\n", + mcs_name(ms->current_cs_ul)); + return; + } + + if (!meas->have_link_qual) { + LOGP(DRLCMACMEAS, LOGL_ERROR, + "Unable to update UL (M)CS %s because we don't have link quality measurements.\n", + mcs_name(ms->current_cs_ul)); + return; + } + + if (mcs_is_gprs(ms->current_cs_ul)) { + if (current_cs >= MAX_GPRS_CS) + current_cs = MAX_GPRS_CS - 1; + low = bts_->cs_lqual_ranges[current_cs].low; + high = bts_->cs_lqual_ranges[current_cs].high; + } else if (mcs_is_edge(ms->current_cs_ul)) { + if (current_cs >= MAX_EDGE_MCS) + current_cs = MAX_EDGE_MCS - 1; + low = bts_->mcs_lqual_ranges[current_cs].low; + high = bts_->mcs_lqual_ranges[current_cs].high; + } else { + LOGP(DRLCMACMEAS, LOGL_ERROR, + "Unable to update UL (M)CS because it's neither GPRS nor EDGE: %s\n", + mcs_name(ms->current_cs_ul)); + return; + } + + /* To avoid rapid changes of the coding scheme, we also take + * the old link quality value into account (if present). */ + if (ms->l1_meas.have_link_qual) + old_link_qual = ms->l1_meas.link_qual; + else + old_link_qual = meas->link_qual; + + if (meas->link_qual < low && old_link_qual < low) + mcs_dec_kind(&new_cs_ul, ms_mode(ms)); + else if (meas->link_qual > high && old_link_qual > high && + ms->current_cs_ul < max_cs_ul) + mcs_inc_kind(&new_cs_ul, ms_mode(ms)); + + if (ms->current_cs_ul != new_cs_ul) { + LOGPMS(ms, DRLCMACMEAS, LOGL_INFO, + "Link quality %ddB (old %ddB) left window [%d, %d], " + "modifying uplink CS level: %s -> %s\n", + meas->link_qual, old_link_qual, + low, high, + mcs_name(ms->current_cs_ul), mcs_name(new_cs_ul)); + + ms->current_cs_ul = new_cs_ul; + } +} + +void ms_update_l1_meas(struct GprsMs *ms, const struct pcu_l1_meas *meas) +{ + unsigned i; + + ms_update_cs_ul(ms, meas); + + if (meas->have_rssi) + pcu_l1_meas_set_rssi(&ms->l1_meas, meas->rssi); + if (meas->have_bto) + pcu_l1_meas_set_bto(&ms->l1_meas, meas->bto); + if (meas->have_ber) + pcu_l1_meas_set_ber(&ms->l1_meas, meas->ber); + if (meas->have_link_qual) + pcu_l1_meas_set_link_qual(&ms->l1_meas, meas->link_qual); + + if (meas->have_ms_rx_qual) + pcu_l1_meas_set_ms_rx_qual(&ms->l1_meas, meas->ms_rx_qual); + if (meas->have_ms_c_value) + pcu_l1_meas_set_ms_c_value(&ms->l1_meas, meas->ms_c_value); + if (meas->have_ms_sign_var) + pcu_l1_meas_set_ms_sign_var(&ms->l1_meas, meas->ms_sign_var); + + if (meas->have_ms_i_level) { + for (i = 0; i < ARRAY_SIZE(meas->ts); ++i) { + if (meas->ts[i].have_ms_i_level) + pcu_l1_meas_set_ms_i_level(&ms->l1_meas, i, meas->ts[i].ms_i_level); + else + ms->l1_meas.ts[i].have_ms_i_level = 0; + } + } +} + +enum CodingScheme ms_current_cs_dl(const struct GprsMs *ms) +{ + enum CodingScheme cs = ms->current_cs_dl; + size_t unencoded_octets; + + if (!ms->bts) + return cs; + + unencoded_octets = llc_queue_octets(&ms->llc_queue); + + /* If the DL TBF is active, add number of unencoded chunk octets */ + if (ms->dl_tbf) + unencoded_octets += llc_chunk_size(tbf_llc((struct gprs_rlcmac_tbf *)ms->dl_tbf)); + + /* There are many unencoded octets, don't reduce */ + if (unencoded_octets >= bts_data(ms->bts)->cs_downgrade_threshold) + return cs; + + /* RF conditions are good, don't reduce */ + if (ms->nack_rate_dl < bts_data(ms->bts)->cs_adj_lower_limit) + return cs; + + /* The throughput would probably be better if the CS level was reduced */ + mcs_dec_kind(&cs, ms_mode(ms)); + + /* CS-2 doesn't gain throughput with small packets, further reduce to CS-1 */ + if (cs == CS2) + mcs_dec_kind(&cs, ms_mode(ms)); + + return cs; +} + +int ms_first_common_ts(const struct GprsMs *ms) +{ + if (ms->dl_tbf) + return tbf_first_common_ts((struct gprs_rlcmac_tbf *)ms->dl_tbf); + + if (ms->ul_tbf) + return tbf_first_common_ts((struct gprs_rlcmac_tbf *)ms->ul_tbf); + + return -1; +} + +uint8_t ms_dl_slots(const struct GprsMs *ms) +{ + uint8_t slots = 0; + + if (ms->dl_tbf) + slots |= tbf_dl_slots((struct gprs_rlcmac_tbf *)ms->dl_tbf); + + if (ms->ul_tbf) + slots |= tbf_dl_slots((struct gprs_rlcmac_tbf *)ms->ul_tbf); + + return slots; +} + +uint8_t ms_ul_slots(const struct GprsMs *ms) +{ + uint8_t slots = 0; + + if (ms->dl_tbf) + slots |= tbf_ul_slots((struct gprs_rlcmac_tbf *)ms->dl_tbf); + + if (ms->ul_tbf) + slots |= tbf_ul_slots((struct gprs_rlcmac_tbf *)ms->ul_tbf); + + return slots; +} + +uint8_t ms_current_pacch_slots(const struct GprsMs *ms) +{ + uint8_t slots = 0; + + bool is_dl_active = ms->dl_tbf && tbf_is_tfi_assigned((struct gprs_rlcmac_tbf *)ms->dl_tbf); + bool is_ul_active = ms->ul_tbf && tbf_is_tfi_assigned((struct gprs_rlcmac_tbf *)ms->ul_tbf); + + if (!is_dl_active && !is_ul_active) + return 0; + + /* see TS 44.060, 8.1.1.2.2 */ + if (is_dl_active && !is_ul_active) + slots = tbf_dl_slots((struct gprs_rlcmac_tbf *)ms->dl_tbf); + else if (!is_dl_active && is_ul_active) + slots = tbf_ul_slots((struct gprs_rlcmac_tbf *)ms->ul_tbf); + else + slots = tbf_ul_slots((struct gprs_rlcmac_tbf *)ms->ul_tbf) & + tbf_dl_slots((struct gprs_rlcmac_tbf *)ms->dl_tbf); + + /* Assume a multislot class 1 device */ + /* TODO: For class 2 devices, this could be removed */ + slots = pcu_lsb(slots); + + return slots; +} + +void ms_set_reserved_slots(struct GprsMs *ms, struct gprs_rlcmac_trx *trx, + uint8_t ul_slots, uint8_t dl_slots) +{ + if (ms->current_trx) { + bts_trx_unreserve_slots(ms->current_trx, GPRS_RLCMAC_DL_TBF, + ms->reserved_dl_slots); + bts_trx_unreserve_slots(ms->current_trx, GPRS_RLCMAC_UL_TBF, + ms->reserved_ul_slots); + ms->reserved_dl_slots = 0; + ms->reserved_ul_slots = 0; + } + ms->current_trx = trx; + if (trx) { + ms->reserved_dl_slots = dl_slots; + ms->reserved_ul_slots = ul_slots; + bts_trx_reserve_slots(ms->current_trx, GPRS_RLCMAC_DL_TBF, + ms->reserved_dl_slots); + bts_trx_reserve_slots(ms->current_trx, GPRS_RLCMAC_UL_TBF, + ms->reserved_ul_slots); + } +} + +struct gprs_rlcmac_tbf *ms_tbf(const struct GprsMs *ms, enum gprs_rlcmac_tbf_direction dir) +{ + switch (dir) { + case GPRS_RLCMAC_DL_TBF: return (struct gprs_rlcmac_tbf *)ms->dl_tbf; + case GPRS_RLCMAC_UL_TBF: return (struct gprs_rlcmac_tbf *)ms->ul_tbf; + } + + return NULL; +} diff --git a/src/gprs_ms.cpp b/src/gprs_ms.cpp deleted file mode 100644 index c891cdf..0000000 --- a/src/gprs_ms.cpp +++ /dev/null @@ -1,900 +0,0 @@ -/* gprs_ms.cpp - * - * Copyright (C) 2015 by Sysmocom s.f.m.c. GmbH - * Author: Jacob Erlbeck - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - */ - - -#include "gprs_ms.h" -#include "bts.h" -#include "tbf.h" -#include "tbf_ul.h" -#include "gprs_debug.h" -#include "gprs_codel.h" -#include "pcu_utils.h" - -#include - -extern "C" { - #include - #include - #include - #include - #include - #include - #include "coding_scheme.h" -} - -#define GPRS_CODEL_SLOW_INTERVAL_MS 4000 - -extern void *tall_pcu_ctx; - -static int64_t now_msec() -{ - struct timespec ts; - osmo_clock_gettime(CLOCK_MONOTONIC, &ts); - - return int64_t(ts.tv_sec) * 1000 + ts.tv_nsec / 1000000; -} - -struct GprsMsDefaultCallback: public GprsMs::Callback { - virtual void ms_idle(class GprsMs *ms) { - delete ms; - } - virtual void ms_active(class GprsMs *) {} -}; - -static GprsMsDefaultCallback gprs_default_cb; - -GprsMs::Guard::Guard(GprsMs *ms) : - m_ms(ms ? ms->ref() : NULL) -{ -} - -GprsMs::Guard::~Guard() -{ - if (m_ms) - m_ms->unref(); -} - -bool GprsMs::Guard::is_idle() const -{ - if (!m_ms) - return true; - - return !m_ms->m_ul_tbf && !m_ms->m_dl_tbf && m_ms->m_ref == 1; -} - -void GprsMs::timeout(void *priv_) -{ - GprsMs *ms = static_cast(priv_); - - LOGP(DRLCMAC, LOGL_INFO, "Timeout for MS object, TLLI = 0x%08x\n", - ms->tlli()); - - if (ms->m_timer.data) { - ms->m_timer.data = NULL; - ms->unref(); - } -} - -GprsMs::GprsMs(BTS *bts, uint32_t tlli) : - m_bts(bts), - m_cb(&gprs_default_cb), - m_ul_tbf(NULL), - m_dl_tbf(NULL), - m_tlli(tlli), - m_new_ul_tlli(GSM_RESERVED_TMSI), - m_new_dl_tlli(GSM_RESERVED_TMSI), - m_ta(GSM48_TA_INVALID), - m_ms_class(0), - m_egprs_ms_class(0), - m_current_cs_ul(UNKNOWN), - m_current_cs_dl(UNKNOWN), - m_is_idle(true), - m_ref(0), - m_list(this), - m_delay(0), - m_nack_rate_dl(0), - m_reserved_dl_slots(0), - m_reserved_ul_slots(0), - m_current_trx(NULL), - m_codel_state(NULL), - m_mode(GPRS), - m_dl_ctrl_msg(0) -{ - int codel_interval = LLC_CODEL_USE_DEFAULT; - - LOGP(DRLCMAC, LOGL_INFO, "Creating MS object, TLLI = 0x%08x\n", tlli); - - m_imsi[0] = '\0'; - memset(&m_timer, 0, sizeof(m_timer)); - m_timer.cb = GprsMs::timeout; - m_llc_queue.init(); - - set_mode(m_mode); - - if (m_bts) - codel_interval = m_bts->bts_data()->llc_codel_interval_msec; - - if (codel_interval) { - if (codel_interval == LLC_CODEL_USE_DEFAULT) - codel_interval = GPRS_CODEL_SLOW_INTERVAL_MS; - m_codel_state = talloc(this, struct gprs_codel); - gprs_codel_init(m_codel_state); - gprs_codel_set_interval(m_codel_state, codel_interval); - } - m_last_cs_not_low = now_msec(); - app_info_pending = false; -} - -GprsMs::~GprsMs() -{ - LListHead *pos, *tmp; - - LOGP(DRLCMAC, LOGL_INFO, "Destroying MS object, TLLI = 0x%08x\n", tlli()); - - set_reserved_slots(NULL, 0, 0); - - if (osmo_timer_pending(&m_timer)) - osmo_timer_del(&m_timer); - - if (m_ul_tbf) { - m_ul_tbf->set_ms(NULL); - m_ul_tbf = NULL; - } - - if (m_dl_tbf) { - m_dl_tbf->set_ms(NULL); - m_dl_tbf = NULL; - } - - llist_for_each_safe(pos, tmp, &m_old_tbfs) - pos->entry()->set_ms(NULL); - - m_llc_queue.clear(m_bts); -} - -void* GprsMs::operator new(size_t size) -{ - static void *tall_ms_ctx = NULL; - if (!tall_ms_ctx) - tall_ms_ctx = talloc_named_const(tall_pcu_ctx, 0, __PRETTY_FUNCTION__); - - return talloc_size(tall_ms_ctx, size); -} - -void GprsMs::operator delete(void* p) -{ - talloc_free(p); -} - -GprsMs *GprsMs::ref() -{ - m_ref += 1; - return this; -} - -void GprsMs::unref() -{ - OSMO_ASSERT(m_ref >= 0); - m_ref -= 1; - if (m_ref == 0) - update_status(); -} - -void GprsMs::start_timer() -{ - if (m_delay == 0) - return; - - if (!m_timer.data) - m_timer.data = ref(); - - osmo_timer_schedule(&m_timer, m_delay, 0); -} - -void GprsMs::stop_timer() -{ - if (!m_timer.data) - return; - - osmo_timer_del(&m_timer); - m_timer.data = NULL; - unref(); -} - -void GprsMs::set_mode(enum mcs_kind mode) -{ - m_mode = mode; - - if (!m_bts) - return; - - switch (m_mode) { - case GPRS: - if (!mcs_is_gprs(m_current_cs_ul)) { - m_current_cs_ul = mcs_get_gprs_by_num( - m_bts->bts_data()->initial_cs_ul); - if (!mcs_is_valid(m_current_cs_ul)) - m_current_cs_ul = CS1; - } - if (!mcs_is_gprs(m_current_cs_dl)) { - m_current_cs_dl = mcs_get_gprs_by_num( - m_bts->bts_data()->initial_cs_dl); - if (!mcs_is_valid(m_current_cs_dl)) - m_current_cs_dl = CS1; - } - break; - - case EGPRS_GMSK: - case EGPRS: - if (!mcs_is_edge(m_current_cs_ul)) { - m_current_cs_ul = mcs_get_egprs_by_num( - m_bts->bts_data()->initial_mcs_ul); - if (!mcs_is_valid(m_current_cs_ul)) - m_current_cs_ul = MCS1; - } - if (!mcs_is_edge(m_current_cs_dl)) { - m_current_cs_dl = mcs_get_egprs_by_num( - m_bts->bts_data()->initial_mcs_dl); - if (!mcs_is_valid(m_current_cs_dl)) - m_current_cs_dl = MCS1; - } - break; - } -} - -void GprsMs::attach_tbf(struct gprs_rlcmac_tbf *tbf) -{ - if (tbf->direction == GPRS_RLCMAC_DL_TBF) - attach_dl_tbf(as_dl_tbf(tbf)); - else - attach_ul_tbf(as_ul_tbf(tbf)); -} - -void GprsMs::attach_ul_tbf(struct gprs_rlcmac_ul_tbf *tbf) -{ - if (m_ul_tbf == tbf) - return; - - LOGP(DRLCMAC, LOGL_INFO, "Attaching TBF to MS object, TLLI = 0x%08x, TBF = %s\n", - tlli(), tbf->name()); - - Guard guard(this); - - if (m_ul_tbf) - llist_add_tail(&m_ul_tbf->ms_list(), &m_old_tbfs); - - m_ul_tbf = tbf; - - if (tbf) - stop_timer(); -} - -void GprsMs::attach_dl_tbf(struct gprs_rlcmac_dl_tbf *tbf) -{ - if (m_dl_tbf == tbf) - return; - - LOGP(DRLCMAC, LOGL_INFO, "Attaching TBF to MS object, TLLI = 0x%08x, TBF = %s\n", - tlli(), tbf->name()); - - Guard guard(this); - - if (m_dl_tbf) - llist_add_tail(&m_dl_tbf->ms_list(), &m_old_tbfs); - - m_dl_tbf = tbf; - - if (tbf) - stop_timer(); -} - -void GprsMs::detach_tbf(gprs_rlcmac_tbf *tbf) -{ - if (tbf == static_cast(m_ul_tbf)) { - m_ul_tbf = NULL; - } else if (tbf == static_cast(m_dl_tbf)) { - m_dl_tbf = NULL; - } else { - bool found = false; - - LListHead *pos, *tmp; - llist_for_each_safe(pos, tmp, &m_old_tbfs) { - if (pos->entry() == tbf) { - llist_del(pos); - found = true; - break; - } - } - - /* Protect against recursive calls via set_ms() */ - if (!found) - return; - } - - LOGP(DRLCMAC, LOGL_INFO, "Detaching TBF from MS object, TLLI = 0x%08x, TBF = %s\n", - tlli(), tbf->name()); - - if (tbf->ms() == this) - tbf->set_ms(NULL); - - if (!m_dl_tbf && !m_ul_tbf) { - set_reserved_slots(NULL, 0, 0); - - if (tlli() != 0) - start_timer(); - } - - update_status(); -} - -void GprsMs::update_status() -{ - if (m_ref > 0) - return; - - if (is_idle() && !m_is_idle) { - m_is_idle = true; - m_cb->ms_idle(this); - /* this can be deleted by now, do not access it */ - return; - } - - if (!is_idle() && m_is_idle) { - m_is_idle = false; - m_cb->ms_active(this); - } -} - -void GprsMs::reset() -{ - LOGP(DRLCMAC, LOGL_INFO, - "Clearing MS object, TLLI: 0x%08x, IMSI: '%s'\n", - tlli(), imsi()); - - stop_timer(); - - m_tlli = GSM_RESERVED_TMSI; - m_new_dl_tlli = m_tlli; - m_new_ul_tlli = m_tlli; - m_imsi[0] = '\0'; -} - -void GprsMs::merge_old_ms(GprsMs *old_ms) -{ - OSMO_ASSERT(old_ms != this); - - if (strlen(imsi()) == 0 && strlen(old_ms->imsi()) != 0) - osmo_strlcpy(m_imsi, old_ms->imsi(), sizeof(m_imsi)); - - if (!ms_class() && old_ms->ms_class()) - set_ms_class(old_ms->ms_class()); - - if (!egprs_ms_class() && old_ms->egprs_ms_class()) - set_egprs_ms_class(old_ms->egprs_ms_class()); - - m_llc_queue.move_and_merge(&old_ms->m_llc_queue); - - old_ms->reset(); -} - -void GprsMs::merge_and_clear_ms(GprsMs *old_ms) -{ - OSMO_ASSERT(old_ms != this); - - GprsMs::Guard guard_old(old_ms); - - /* Clean up the old MS object */ - /* TODO: Use timer? */ - if (old_ms->ul_tbf() && !old_ms->ul_tbf()->timers_pending(T_MAX)) - tbf_free(old_ms->ul_tbf()); - if (old_ms->dl_tbf() && !old_ms->dl_tbf()->timers_pending(T_MAX)) - tbf_free(old_ms->dl_tbf()); - - merge_old_ms(old_ms); -} - -void GprsMs::set_tlli(uint32_t tlli) -{ - if (tlli == m_tlli || tlli == m_new_ul_tlli) - return; - - if (tlli != m_new_dl_tlli) { - LOGP(DRLCMAC, LOGL_INFO, - "Modifying MS object, UL TLLI: 0x%08x -> 0x%08x, " - "not yet confirmed\n", - this->tlli(), tlli); - m_new_ul_tlli = tlli; - return; - } - - LOGP(DRLCMAC, LOGL_INFO, - "Modifying MS object, TLLI: 0x%08x -> 0x%08x, " - "already confirmed partly\n", - m_tlli, tlli); - - m_tlli = tlli; - m_new_dl_tlli = GSM_RESERVED_TMSI; - m_new_ul_tlli = GSM_RESERVED_TMSI; -} - -bool GprsMs::confirm_tlli(uint32_t tlli) -{ - if (tlli == m_tlli || tlli == m_new_dl_tlli) - return false; - - if (tlli != m_new_ul_tlli) { - /* The MS has not sent a message with the new TLLI, which may - * happen according to the spec [TODO: add reference]. */ - - LOGP(DRLCMAC, LOGL_INFO, - "The MS object cannot fully confirm an unexpected TLLI: 0x%08x, " - "partly confirmed\n", tlli); - /* Use the network's idea of TLLI as candidate, this does not - * change the result value of tlli() */ - m_new_dl_tlli = tlli; - return false; - } - - LOGP(DRLCMAC, LOGL_INFO, - "Modifying MS object, TLLI: 0x%08x confirmed\n", tlli); - - m_tlli = tlli; - m_new_dl_tlli = GSM_RESERVED_TMSI; - m_new_ul_tlli = GSM_RESERVED_TMSI; - - return true; -} - -void GprsMs::set_imsi(const char *imsi) -{ - if (!imsi) { - LOGP(DRLCMAC, LOGL_ERROR, "Expected IMSI!\n"); - return; - } - - if (imsi[0] && strlen(imsi) < 3) { - LOGP(DRLCMAC, LOGL_ERROR, "No valid IMSI '%s'!\n", - imsi); - return; - } - - if (strcmp(imsi, m_imsi) == 0) - return; - - LOGP(DRLCMAC, LOGL_INFO, - "Modifying MS object, TLLI = 0x%08x, IMSI '%s' -> '%s'\n", - tlli(), m_imsi, imsi); - - GprsMs *old_ms = m_bts->ms_store().get_ms(0, 0, imsi); - /* Check if we are going to store a different MS object with already - existing IMSI. This is probably a bug in code calling this function, - since it should take care of this explicitly */ - if (old_ms) { - /* We cannot find m_ms by IMSI since we know that it has a - * different IMSI */ - OSMO_ASSERT(old_ms != this); - - LOGPMS(this, DRLCMAC, LOGL_NOTICE, - "IMSI '%s' was already assigned to another " - "MS object: TLLI = 0x%08x, that IMSI will be removed\n", - imsi, old_ms->tlli()); - - merge_and_clear_ms(old_ms); - } - - - osmo_strlcpy(m_imsi, imsi, sizeof(m_imsi)); -} - -void GprsMs::set_ta(uint8_t ta_) -{ - if (ta_ == m_ta) - return; - - if (gsm48_ta_is_valid(ta_)) { - LOGP(DRLCMAC, LOGL_INFO, - "Modifying MS object, TLLI = 0x%08x, TA %d -> %d\n", - tlli(), m_ta, ta_); - m_ta = ta_; - } else - LOGP(DRLCMAC, LOGL_NOTICE, - "MS object, TLLI = 0x%08x, invalid TA %d rejected (old " - "value %d kept)\n", tlli(), ta_, m_ta); -} - -void GprsMs::set_ms_class(uint8_t ms_class_) -{ - if (ms_class_ == m_ms_class) - return; - - LOGP(DRLCMAC, LOGL_INFO, - "Modifying MS object, TLLI = 0x%08x, MS class %d -> %d\n", - tlli(), m_ms_class, ms_class_); - - m_ms_class = ms_class_; -} - -void GprsMs::set_egprs_ms_class(uint8_t ms_class_) -{ - if (ms_class_ == m_egprs_ms_class) - return; - - LOGP(DRLCMAC, LOGL_INFO, - "Modifying MS object, TLLI = 0x%08x, EGPRS MS class %d -> %d\n", - tlli(), m_egprs_ms_class, ms_class_); - - m_egprs_ms_class = ms_class_; - - if (!m_bts->max_mcs_ul() || !m_bts->max_mcs_dl()) { - LOGPMS(this, DRLCMAC, LOGL_DEBUG, - "Avoid enabling EGPRS because use of MCS is disabled: ul=%u dl=%u\n", - m_bts->max_mcs_ul(), m_bts->max_mcs_dl()); - return; - } - - if (mcs_is_edge_gmsk(mcs_get_egprs_by_num(m_bts->max_mcs_ul())) && - mcs_is_edge_gmsk(mcs_get_egprs_by_num(m_bts->max_mcs_dl())) && - mode() != EGPRS) - { - set_mode(EGPRS_GMSK); - } else { - set_mode(EGPRS); - } - LOGPMS(this, DRLCMAC, LOGL_INFO, "Enabled EGPRS, mode %s\n", mode_name(mode())); -} - -void GprsMs::update_error_rate(gprs_rlcmac_tbf *tbf, int error_rate) -{ - struct gprs_rlcmac_bts *bts_data; - int64_t now; - enum CodingScheme max_cs_dl = this->max_cs_dl(); - - OSMO_ASSERT(max_cs_dl); - bts_data = m_bts->bts_data(); - - if (error_rate < 0) - return; - - now = now_msec(); - - /* TODO: Check for TBF direction */ - /* TODO: Support different CS values for UL and DL */ - - m_nack_rate_dl = error_rate; - - if (error_rate > bts_data->cs_adj_upper_limit) { - if (mcs_chan_code(m_current_cs_dl) > 0) { - mcs_dec_kind(&m_current_cs_dl, mode()); - LOGP(DRLCMACDL, LOGL_INFO, - "MS (IMSI %s): High error rate %d%%, " - "reducing CS level to %s\n", - imsi(), error_rate, mcs_name(m_current_cs_dl)); - m_last_cs_not_low = now; - } - } else if (error_rate < bts_data->cs_adj_lower_limit) { - if (m_current_cs_dl < max_cs_dl) { - if (now - m_last_cs_not_low > 1000) { - mcs_inc_kind(&m_current_cs_dl, mode()); - - LOGP(DRLCMACDL, LOGL_INFO, - "MS (IMSI %s): Low error rate %d%%, " - "increasing DL CS level to %s\n", - imsi(), error_rate, - mcs_name(m_current_cs_dl)); - m_last_cs_not_low = now; - } else { - LOGP(DRLCMACDL, LOGL_DEBUG, - "MS (IMSI %s): Low error rate %d%%, " - "ignored (within blocking period)\n", - imsi(), error_rate); - } - } - } else { - LOGP(DRLCMACDL, LOGL_DEBUG, - "MS (IMSI %s): Medium error rate %d%%, ignored\n", - imsi(), error_rate); - m_last_cs_not_low = now; - } -} - -enum CodingScheme GprsMs::max_cs_ul() const -{ - OSMO_ASSERT(m_bts != NULL); - - if (mcs_is_gprs(m_current_cs_ul)) { - if (!m_bts->max_cs_ul()) { - return CS4; - } - - return mcs_get_gprs_by_num(m_bts->max_cs_ul()); - } - - if (!mcs_is_edge(m_current_cs_ul)) - return UNKNOWN; - - if (m_bts->max_mcs_ul()) - return mcs_get_egprs_by_num(m_bts->max_mcs_ul()); - else if (m_bts->max_cs_ul()) - return mcs_get_gprs_by_num(m_bts->max_cs_ul()); - - return MCS4; -} - -void GprsMs::set_current_cs_dl(enum CodingScheme scheme) -{ - m_current_cs_dl = scheme; -} - -enum CodingScheme GprsMs::max_cs_dl() const -{ - OSMO_ASSERT(m_bts != NULL); - - if (mcs_is_gprs(m_current_cs_dl)) { - if (!m_bts->max_cs_dl()) { - return CS4; - } - - return mcs_get_gprs_by_num(m_bts->max_cs_dl()); - } - - if (!mcs_is_edge(m_current_cs_dl)) - return UNKNOWN; - - if (m_bts->max_mcs_dl()) - return mcs_get_egprs_by_num(m_bts->max_mcs_dl()); - else if (m_bts->max_cs_dl()) - return mcs_get_gprs_by_num(m_bts->max_cs_dl()); - - return MCS4; -} - -void GprsMs::update_cs_ul(const pcu_l1_meas *meas) -{ - struct gprs_rlcmac_bts *bts_data; - enum CodingScheme max_cs_ul = this->max_cs_ul(); - - int old_link_qual; - int low; - int high; - enum CodingScheme new_cs_ul = m_current_cs_ul; - uint8_t current_cs = mcs_chan_code(m_current_cs_ul); - - bts_data = m_bts->bts_data(); - - if (!max_cs_ul) { - LOGP(DRLCMACMEAS, LOGL_ERROR, - "max_cs_ul cannot be derived (current UL CS: %s)\n", - mcs_name(m_current_cs_ul)); - return; - } - - if (!m_current_cs_ul) { - LOGP(DRLCMACMEAS, LOGL_ERROR, - "Unable to update UL (M)CS because it's not set: %s\n", - mcs_name(m_current_cs_ul)); - return; - } - - if (!meas->have_link_qual) { - LOGP(DRLCMACMEAS, LOGL_ERROR, - "Unable to update UL (M)CS %s because we don't have link quality measurements.\n", - mcs_name(m_current_cs_ul)); - return; - } - - if (mcs_is_gprs(m_current_cs_ul)) { - if (current_cs >= MAX_GPRS_CS) - current_cs = MAX_GPRS_CS - 1; - low = bts_data->cs_lqual_ranges[current_cs].low; - high = bts_data->cs_lqual_ranges[current_cs].high; - } else if (mcs_is_edge(m_current_cs_ul)) { - if (current_cs >= MAX_EDGE_MCS) - current_cs = MAX_EDGE_MCS - 1; - low = bts_data->mcs_lqual_ranges[current_cs].low; - high = bts_data->mcs_lqual_ranges[current_cs].high; - } else { - LOGP(DRLCMACMEAS, LOGL_ERROR, - "Unable to update UL (M)CS because it's neither GPRS nor EDGE: %s\n", - mcs_name(m_current_cs_ul)); - return; - } - - /* To avoid rapid changes of the coding scheme, we also take - * the old link quality value into account (if present). */ - if (m_l1_meas.have_link_qual) - old_link_qual = m_l1_meas.link_qual; - else - old_link_qual = meas->link_qual; - - if (meas->link_qual < low && old_link_qual < low) - mcs_dec_kind(&new_cs_ul, mode()); - else if (meas->link_qual > high && old_link_qual > high && - m_current_cs_ul < max_cs_ul) - mcs_inc_kind(&new_cs_ul, mode()); - - if (m_current_cs_ul != new_cs_ul) { - LOGPMS(this, DRLCMACMEAS, LOGL_INFO, - "Link quality %ddB (old %ddB) left window [%d, %d], " - "modifying uplink CS level: %s -> %s\n", - meas->link_qual, old_link_qual, - low, high, - mcs_name(m_current_cs_ul), mcs_name(new_cs_ul)); - - m_current_cs_ul = new_cs_ul; - } -} - -void GprsMs::update_l1_meas(const pcu_l1_meas *meas) -{ - unsigned i; - - update_cs_ul(meas); - - if (meas->have_rssi) - m_l1_meas.set_rssi(meas->rssi); - if (meas->have_bto) - m_l1_meas.set_bto(meas->bto); - if (meas->have_ber) - m_l1_meas.set_ber(meas->ber); - if (meas->have_link_qual) - m_l1_meas.set_link_qual(meas->link_qual); - - if (meas->have_ms_rx_qual) - m_l1_meas.set_ms_rx_qual(meas->ms_rx_qual); - if (meas->have_ms_c_value) - m_l1_meas.set_ms_c_value(meas->ms_c_value); - if (meas->have_ms_sign_var) - m_l1_meas.set_ms_sign_var(meas->ms_sign_var); - - if (meas->have_ms_i_level) { - for (i = 0; i < ARRAY_SIZE(meas->ts); ++i) { - if (meas->ts[i].have_ms_i_level) - m_l1_meas.set_ms_i_level(i, meas->ts[i].ms_i_level); - else - m_l1_meas.ts[i].have_ms_i_level = 0; - } - } -} - -enum CodingScheme GprsMs::current_cs_dl() const -{ - enum CodingScheme cs = m_current_cs_dl; - size_t unencoded_octets; - - if (!m_bts) - return cs; - - unencoded_octets = m_llc_queue.octets(); - - /* If the DL TBF is active, add number of unencoded chunk octets */ - if (m_dl_tbf) - unencoded_octets += m_dl_tbf->m_llc.chunk_size(); - - /* There are many unencoded octets, don't reduce */ - if (unencoded_octets >= m_bts->bts_data()->cs_downgrade_threshold) - return cs; - - /* RF conditions are good, don't reduce */ - if (m_nack_rate_dl < m_bts->bts_data()->cs_adj_lower_limit) - return cs; - - /* The throughput would probably be better if the CS level was reduced */ - mcs_dec_kind(&cs, mode()); - - /* CS-2 doesn't gain throughput with small packets, further reduce to CS-1 */ - if (cs == CS2) - mcs_dec_kind(&cs, mode()); - - return cs; -} - -int GprsMs::first_common_ts() const -{ - if (m_dl_tbf) - return m_dl_tbf->first_common_ts; - - if (m_ul_tbf) - return m_ul_tbf->first_common_ts; - - return -1; -} - -uint8_t GprsMs::dl_slots() const -{ - uint8_t slots = 0; - - if (m_dl_tbf) - slots |= m_dl_tbf->dl_slots(); - - if (m_ul_tbf) - slots |= m_ul_tbf->dl_slots(); - - return slots; -} - -uint8_t GprsMs::ul_slots() const -{ - uint8_t slots = 0; - - if (m_dl_tbf) - slots |= m_dl_tbf->ul_slots(); - - if (m_ul_tbf) - slots |= m_ul_tbf->ul_slots(); - - return slots; -} - -uint8_t GprsMs::current_pacch_slots() const -{ - uint8_t slots = 0; - - bool is_dl_active = m_dl_tbf && m_dl_tbf->is_tfi_assigned(); - bool is_ul_active = m_ul_tbf && m_ul_tbf->is_tfi_assigned(); - - if (!is_dl_active && !is_ul_active) - return 0; - - /* see TS 44.060, 8.1.1.2.2 */ - if (is_dl_active && !is_ul_active) - slots = m_dl_tbf->dl_slots(); - else if (!is_dl_active && is_ul_active) - slots = m_ul_tbf->ul_slots(); - else - slots = m_ul_tbf->ul_slots() & m_dl_tbf->dl_slots(); - - /* Assume a multislot class 1 device */ - /* TODO: For class 2 devices, this could be removed */ - slots = pcu_lsb(slots); - - return slots; -} - -void GprsMs::set_reserved_slots(gprs_rlcmac_trx *trx, - uint8_t ul_slots, uint8_t dl_slots) -{ - if (m_current_trx) { - m_current_trx->unreserve_slots(GPRS_RLCMAC_DL_TBF, - m_reserved_dl_slots); - m_current_trx->unreserve_slots(GPRS_RLCMAC_UL_TBF, - m_reserved_ul_slots); - m_reserved_dl_slots = 0; - m_reserved_ul_slots = 0; - } - m_current_trx = trx; - if (trx) { - m_reserved_dl_slots = dl_slots; - m_reserved_ul_slots = ul_slots; - m_current_trx->reserve_slots(GPRS_RLCMAC_DL_TBF, - m_reserved_dl_slots); - m_current_trx->reserve_slots(GPRS_RLCMAC_UL_TBF, - m_reserved_ul_slots); - } -} - -gprs_rlcmac_tbf *GprsMs::tbf(enum gprs_rlcmac_tbf_direction dir) const -{ - switch (dir) { - case GPRS_RLCMAC_DL_TBF: return m_dl_tbf; - case GPRS_RLCMAC_UL_TBF: return m_ul_tbf; - } - - return NULL; -} diff --git a/src/gprs_ms.h b/src/gprs_ms.h index 8b8940b..ade3f3b 100644 --- a/src/gprs_ms.h +++ b/src/gprs_ms.h @@ -1,6 +1,6 @@ /* gprs_ms.h * - * Copyright (C) 2015 by Sysmocom s.f.m.c. GmbH + * Copyright (C) 2015-2020 by Sysmocom s.f.m.c. GmbH * Author: Jacob Erlbeck * * This program is free software; you can redistribute it and/or @@ -22,22 +22,23 @@ struct gprs_codel; -#include "cxx_linuxlist.h" #include "llc.h" #include "tbf.h" #include "tbf_ul.h" #include "tbf_dl.h" #include "pcu_l1_if.h" +#ifdef __cplusplus extern "C" { - #include - #include +#endif - #include - #include +#include +#include - #include "coding_scheme.h" -} +#include +#include + +#include "coding_scheme.h" #include #include @@ -45,268 +46,207 @@ struct BTS; struct gprs_rlcmac_trx; +struct GprsMs; -class GprsMs { -public: - struct Callback { - virtual void ms_idle(class GprsMs *) = 0; - virtual void ms_active(class GprsMs *) = 0; - }; - - class Guard { - public: - Guard(GprsMs *ms); - ~Guard(); - - bool is_idle() const; - - private: - GprsMs * const m_ms; - }; - - GprsMs(BTS *bts, uint32_t tlli); - ~GprsMs(); - - void set_callback(Callback *cb) {m_cb = cb;} - - void merge_and_clear_ms(GprsMs *old_ms); - - gprs_rlcmac_ul_tbf *ul_tbf() const {return m_ul_tbf;} - gprs_rlcmac_dl_tbf *dl_tbf() const {return m_dl_tbf;} - gprs_rlcmac_tbf *tbf(enum gprs_rlcmac_tbf_direction dir) const; - uint32_t tlli() const; - void set_tlli(uint32_t tlli); - bool confirm_tlli(uint32_t tlli); - bool check_tlli(uint32_t tlli); - - void reset(); - enum mcs_kind mode() const; - void set_mode(enum mcs_kind mode); - - const char *imsi() const; - void set_imsi(const char *imsi); - - uint8_t ta() const; - void set_ta(uint8_t ta); - uint8_t ms_class() const; - uint8_t egprs_ms_class() const; - void set_ms_class(uint8_t ms_class); - void set_egprs_ms_class(uint8_t ms_class); - void set_current_cs_dl(enum CodingScheme scheme); - - enum CodingScheme current_cs_ul() const; - enum CodingScheme current_cs_dl() const; - enum CodingScheme max_cs_ul() const; - enum CodingScheme max_cs_dl() const; - - int first_common_ts() const; - uint8_t dl_slots() const; - uint8_t ul_slots() const; - uint8_t reserved_dl_slots() const; - uint8_t reserved_ul_slots() const; - uint8_t current_pacch_slots() const; - gprs_rlcmac_trx *current_trx() const; - void set_reserved_slots(gprs_rlcmac_trx *trx, - uint8_t ul_slots, uint8_t dl_slots); - - gprs_llc_queue *llc_queue(); - const gprs_llc_queue *llc_queue() const; - gprs_codel *codel_state() const; - - void set_timeout(unsigned secs); - - void attach_tbf(gprs_rlcmac_tbf *tbf); - void attach_ul_tbf(gprs_rlcmac_ul_tbf *tbf); - void attach_dl_tbf(gprs_rlcmac_dl_tbf *tbf); - - void detach_tbf(gprs_rlcmac_tbf *tbf); - - void update_error_rate(gprs_rlcmac_tbf *tbf, int percent); - - bool is_idle() const; - bool need_dl_tbf() const; - - void* operator new(size_t num); - void operator delete(void* p); - - LListHead& list() {return this->m_list;} - const LListHead& list() const {return this->m_list;} - const LListHead& old_tbfs() const {return m_old_tbfs;} - - void update_l1_meas(const pcu_l1_meas *meas); - const pcu_l1_meas* l1_meas() const {return &m_l1_meas;}; - unsigned nack_rate_dl() const; - unsigned dl_ctrl_msg() const; - void update_dl_ctrl_msg(); - - /* internal use */ - static void timeout(void *priv_); - - bool app_info_pending; - -protected: - void merge_old_ms(GprsMs *old_ms); - void update_status(); - GprsMs *ref(); - void unref(); - void start_timer(); - void stop_timer(); - void update_cs_ul(const pcu_l1_meas*); - -private: - BTS *m_bts; - Callback * m_cb; - gprs_rlcmac_ul_tbf *m_ul_tbf; - gprs_rlcmac_dl_tbf *m_dl_tbf; - LListHead m_old_tbfs; - - uint32_t m_tlli; - uint32_t m_new_ul_tlli; - uint32_t m_new_dl_tlli; - - /* store IMSI for look-up and PCH retransmission */ - char m_imsi[OSMO_IMSI_BUF_SIZE]; - uint8_t m_ta; - uint8_t m_ms_class; - uint8_t m_egprs_ms_class; - /* current coding scheme */ - enum CodingScheme m_current_cs_ul; - enum CodingScheme m_current_cs_dl; - - gprs_llc_queue m_llc_queue; - - bool m_is_idle; - int m_ref; - LListHead m_list; - struct osmo_timer_list m_timer; - unsigned m_delay; - - int64_t m_last_cs_not_low; - - pcu_l1_meas m_l1_meas; - unsigned m_nack_rate_dl; - uint8_t m_reserved_dl_slots; - uint8_t m_reserved_ul_slots; - gprs_rlcmac_trx *m_current_trx; - - struct gprs_codel *m_codel_state; - enum mcs_kind m_mode; - - unsigned m_dl_ctrl_msg; +struct gpr_ms_callback { + void (*ms_idle)(struct GprsMs *); + void (*ms_active)(struct GprsMs *); }; -inline bool GprsMs::is_idle() const +struct GprsMs { + struct llist_head list; /* list of all GprsMs */ + struct gpr_ms_callback cb; + bool app_info_pending; + + struct BTS *bts; + struct gprs_rlcmac_ul_tbf *ul_tbf; + struct gprs_rlcmac_dl_tbf *dl_tbf; + struct llist_head old_tbfs; /* list of gprs_rlcmac_tbf */ + + uint32_t tlli; + uint32_t new_ul_tlli; + uint32_t new_dl_tlli; + + /* store IMSI for look-up and PCH retransmission */ + char imsi[OSMO_IMSI_BUF_SIZE]; + uint8_t ta; + uint8_t ms_class; + uint8_t egprs_ms_class; + /* current coding scheme */ + enum CodingScheme current_cs_ul; + enum CodingScheme current_cs_dl; + + struct gprs_llc_queue llc_queue; + + bool is_idle; + int ref; + struct osmo_timer_list timer; + unsigned delay; + + int64_t last_cs_not_low; + + struct pcu_l1_meas l1_meas; + unsigned nack_rate_dl; + uint8_t reserved_dl_slots; + uint8_t reserved_ul_slots; + struct gprs_rlcmac_trx *current_trx; + + struct gprs_codel *codel_state; + enum mcs_kind mode; + + unsigned dl_ctrl_msg; +}; + +struct GprsMs *ms_alloc(struct BTS *bts, uint32_t tlli); + +int ms_first_common_ts(const struct GprsMs *ms); +void ms_set_reserved_slots(struct GprsMs *ms, struct gprs_rlcmac_trx *trx, + uint8_t ul_slots, uint8_t dl_slots); +struct GprsMs *ms_ref(struct GprsMs *ms); +void ms_unref(struct GprsMs *ms); +void ms_set_mode(struct GprsMs *ms, enum mcs_kind mode); +void ms_set_ms_class(struct GprsMs *ms, uint8_t ms_class_); +void ms_set_egprs_ms_class(struct GprsMs *ms, uint8_t ms_class_); +void ms_set_ta(struct GprsMs *ms, uint8_t ta_); + +enum CodingScheme ms_current_cs_dl(const struct GprsMs *ms); +enum CodingScheme ms_max_cs_ul(const struct GprsMs *ms); +enum CodingScheme ms_max_cs_dl(const struct GprsMs *ms); +void ms_set_current_cs_dl(struct GprsMs *ms, enum CodingScheme scheme); + +void ms_update_error_rate(struct GprsMs *ms, struct gprs_rlcmac_tbf *tbf, int error_rate); +uint8_t ms_current_pacch_slots(const struct GprsMs *ms); + +void ms_merge_and_clear_ms(struct GprsMs *ms, struct GprsMs *old_ms); + +void ms_attach_tbf(struct GprsMs *ms, struct gprs_rlcmac_tbf *tbf); +void ms_detach_tbf(struct GprsMs *ms, struct gprs_rlcmac_tbf *tbf); + +void ms_set_tlli(struct GprsMs *ms, uint32_t tlli); +bool ms_confirm_tlli(struct GprsMs *ms, uint32_t tlli); +void ms_set_imsi(struct GprsMs *ms, const char *imsi); + +void ms_update_l1_meas(struct GprsMs *ms, const struct pcu_l1_meas *meas); + +struct gprs_rlcmac_tbf *ms_tbf(const struct GprsMs *ms, enum gprs_rlcmac_tbf_direction dir); +static inline struct gprs_rlcmac_ul_tbf *ms_ul_tbf(const struct GprsMs *ms) {return ms->ul_tbf;} +static inline struct gprs_rlcmac_dl_tbf *ms_dl_tbf(const struct GprsMs *ms) {return ms->dl_tbf;} + + +void ms_set_callback(struct GprsMs *ms, struct gpr_ms_callback *cb); + +static inline bool ms_is_idle(const struct GprsMs *ms) { - return !m_ul_tbf && !m_dl_tbf && !m_ref && llist_empty(&m_old_tbfs); + return !ms->ul_tbf && !ms->dl_tbf && !ms->ref && llist_empty(&ms->old_tbfs); } -inline bool GprsMs::need_dl_tbf() const +static inline struct gprs_llc_queue *ms_llc_queue(struct GprsMs *ms) { - if (dl_tbf() != NULL && dl_tbf()->state_is_not(GPRS_RLCMAC_WAIT_RELEASE)) + return &ms->llc_queue; +} + +static inline bool ms_need_dl_tbf(struct GprsMs *ms) +{ + if (ms_dl_tbf(ms) != NULL && + tbf_state((const struct gprs_rlcmac_tbf *)ms_dl_tbf(ms)) != GPRS_RLCMAC_WAIT_RELEASE) return false; - return llc_queue()->size() > 0; + return llc_queue_size(ms_llc_queue(ms)) > 0; } -inline uint32_t GprsMs::tlli() const +static inline uint32_t ms_tlli(const struct GprsMs *ms) { - if (m_new_ul_tlli != GSM_RESERVED_TMSI) - return m_new_ul_tlli; - if (m_tlli != GSM_RESERVED_TMSI) - return m_tlli; + if (ms->new_ul_tlli != GSM_RESERVED_TMSI) + return ms->new_ul_tlli; + if (ms->tlli != GSM_RESERVED_TMSI) + return ms->tlli; - return m_new_dl_tlli; + return ms->new_dl_tlli; } -inline bool GprsMs::check_tlli(uint32_t tlli) +static inline bool ms_check_tlli(struct GprsMs *ms, uint32_t tlli) { return tlli != GSM_RESERVED_TMSI && - (tlli == m_tlli || tlli == m_new_ul_tlli || tlli == m_new_dl_tlli); + (tlli == ms->tlli || tlli == ms->new_ul_tlli || tlli == ms->new_dl_tlli); } -inline const char *GprsMs::imsi() const +static inline const char *ms_imsi(const struct GprsMs *ms) { - return m_imsi; + return ms->imsi; } -inline uint8_t GprsMs::ta() const +static inline uint8_t ms_ta(const struct GprsMs *ms) { - return m_ta; + return ms->ta; } -inline uint8_t GprsMs::ms_class() const +static inline uint8_t ms_ms_class(const struct GprsMs *ms) { - return m_ms_class; + return ms->ms_class; } -inline uint8_t GprsMs::egprs_ms_class() const +static inline uint8_t ms_egprs_ms_class(const struct GprsMs *ms) { - return m_egprs_ms_class; + return ms->egprs_ms_class; } -inline enum CodingScheme GprsMs::current_cs_ul() const +static inline enum CodingScheme ms_current_cs_ul(const struct GprsMs *ms) { - return m_current_cs_ul; + return ms->current_cs_ul; } -inline enum mcs_kind GprsMs::mode() const +static inline enum mcs_kind ms_mode(const struct GprsMs *ms) { - return m_mode; + return ms->mode; } -inline void GprsMs::set_timeout(unsigned secs) +static inline void ms_set_timeout(struct GprsMs *ms, unsigned secs) { - m_delay = secs; + ms->delay = secs; } -inline gprs_llc_queue *GprsMs::llc_queue() +static inline struct gprs_codel *ms_codel_state(const struct GprsMs *ms) { - return &m_llc_queue; + return ms->codel_state; } -inline const gprs_llc_queue *GprsMs::llc_queue() const +static inline unsigned ms_nack_rate_dl(const struct GprsMs *ms) { - return &m_llc_queue; + return ms->nack_rate_dl; } -inline gprs_codel *GprsMs::codel_state() const +static inline unsigned ms_dl_ctrl_msg(const struct GprsMs *ms) { - return m_codel_state; + return ms->dl_ctrl_msg; } -inline unsigned GprsMs::nack_rate_dl() const +static inline void ms_update_dl_ctrl_msg(struct GprsMs *ms) { - return m_nack_rate_dl; + ms->dl_ctrl_msg++; } -inline unsigned GprsMs::dl_ctrl_msg() const +static inline uint8_t ms_reserved_dl_slots(const struct GprsMs *ms) { - return m_dl_ctrl_msg; + return ms->reserved_dl_slots; } -inline void GprsMs::update_dl_ctrl_msg() +static inline uint8_t ms_reserved_ul_slots(const struct GprsMs *ms) { - m_dl_ctrl_msg++; + return ms->reserved_ul_slots; } -inline uint8_t GprsMs::reserved_dl_slots() const +static inline struct gprs_rlcmac_trx *ms_current_trx(const struct GprsMs *ms) { - return m_reserved_dl_slots; -} - -inline uint8_t GprsMs::reserved_ul_slots() const -{ - return m_reserved_ul_slots; -} - -inline gprs_rlcmac_trx *GprsMs::current_trx() const -{ - return m_current_trx; + return ms->current_trx; } #define LOGPMS(ms, category, level, fmt, args...) \ LOGP(category, level, "MS(TLLI=0x%08x, IMSI=%s, TA=%" PRIu8 ", %" PRIu8 "/%" PRIu8 ",%s%s) " fmt, \ - (ms)->tlli(), (ms)->imsi(), (ms)->ta(), (ms)->ms_class(), (ms)->egprs_ms_class(), \ - (ms)->ul_tbf() ? " UL": "", \ - (ms)->dl_tbf() ? " DL": "", \ + ms_tlli(ms), ms_imsi(ms), ms_ta(ms), ms_ms_class(ms), ms_egprs_ms_class(ms), \ + ms_ul_tbf(ms) ? " UL": "", \ + ms_dl_tbf(ms) ? " DL": "", \ ## args) + +#ifdef __cplusplus +} +#endif diff --git a/src/gprs_ms_storage.cpp b/src/gprs_ms_storage.cpp index 73570b3..6d5b09e 100644 --- a/src/gprs_ms_storage.cpp +++ b/src/gprs_ms_storage.cpp @@ -31,9 +31,29 @@ #define GPRS_UNDEFINED_IMSI "000" +static void ms_storage_ms_idle_cb(struct GprsMs *ms) +{ + llist_del(&ms->list); + if (ms->bts) + ms->bts->stat_item_add(STAT_MS_PRESENT, -1); + if (ms_is_idle(ms)) + talloc_free(ms); +} + +static void ms_storage_ms_active_cb(struct GprsMs *ms) +{ + /* Nothing to do */ +} + +static struct gpr_ms_callback ms_storage_ms_cb = { + .ms_idle = ms_storage_ms_idle_cb, + .ms_active = ms_storage_ms_active_cb, +}; + GprsMsStorage::GprsMsStorage(BTS *bts) : m_bts(bts) { + INIT_LLIST_HEAD(&m_list); } GprsMsStorage::~GprsMsStorage() @@ -43,40 +63,26 @@ void GprsMsStorage::cleanup() { - LListHead *pos, *tmp; + struct llist_head *pos, *tmp; llist_for_each_safe(pos, tmp, &m_list) { - GprsMs *ms = pos->entry(); - ms->set_callback(NULL); - ms_idle(ms); + struct GprsMs *ms = llist_entry(pos, typeof(*ms), list); + ms_set_callback(ms, NULL); + ms_storage_ms_idle_cb(ms); } } -void GprsMsStorage::ms_idle(class GprsMs *ms) -{ - llist_del(&ms->list()); - if (m_bts) - m_bts->stat_item_add(STAT_MS_PRESENT, -1); - if (ms->is_idle()) - delete ms; -} - -void GprsMsStorage::ms_active(class GprsMs *ms) -{ - /* Nothing to do */ -} - GprsMs *GprsMsStorage::get_ms(uint32_t tlli, uint32_t old_tlli, const char *imsi) const { + struct llist_head *tmp; GprsMs *ms; - LListHead *pos; if (tlli != GSM_RESERVED_TMSI || old_tlli != GSM_RESERVED_TMSI) { - llist_for_each(pos, &m_list) { - ms = pos->entry(); - if (ms->check_tlli(tlli)) + llist_for_each(tmp, &m_list) { + ms = llist_entry(tmp, typeof(*ms), list); + if (ms_check_tlli(ms, tlli)) return ms; - if (ms->check_tlli(old_tlli)) + if (ms_check_tlli(ms, old_tlli)) return ms; } } @@ -84,9 +90,9 @@ /* not found by TLLI */ if (imsi && imsi[0] && strcmp(imsi, GPRS_UNDEFINED_IMSI) != 0) { - llist_for_each(pos, &m_list) { - ms = pos->entry(); - if (strcmp(imsi, ms->imsi()) == 0) + llist_for_each(tmp, &m_list) { + ms = llist_entry(tmp, typeof(*ms), list); + if (strcmp(imsi, ms_imsi(ms)) == 0) return ms; } } @@ -98,10 +104,10 @@ { GprsMs *ms; - ms = new GprsMs(m_bts, GSM_RESERVED_TMSI); + ms = ms_alloc(m_bts, GSM_RESERVED_TMSI); - ms->set_callback(this); - llist_add(&ms->list(), &m_list); + ms_set_callback(ms, &ms_storage_ms_cb); + llist_add(&ms->list, &m_list); if (m_bts) m_bts->stat_item_add(STAT_MS_PRESENT, 1); diff --git a/src/gprs_ms_storage.h b/src/gprs_ms_storage.h index 35062f3..af49688 100644 --- a/src/gprs_ms_storage.h +++ b/src/gprs_ms_storage.h @@ -21,28 +21,24 @@ #pragma once #include "gprs_ms.h" -#include "cxx_linuxlist.h" #include "tbf.h" #include #include struct BTS; -class GprsMsStorage : public GprsMs::Callback { +class GprsMsStorage { public: GprsMsStorage(BTS *bts); ~GprsMsStorage(); void cleanup(); - virtual void ms_idle(class GprsMs *); - virtual void ms_active(class GprsMs *); - GprsMs *get_ms(uint32_t tlli, uint32_t old_tlli = GSM_RESERVED_TMSI, const char *imsi = NULL) const; GprsMs *create_ms(); - const LListHead& ms_list() const {return m_list;} + const struct llist_head* ms_list() const {return &m_list;} private: BTS *m_bts; - LListHead m_list; + struct llist_head m_list; /* list of struct GprsMs */ }; diff --git a/src/gprs_rlcmac_sched.cpp b/src/gprs_rlcmac_sched.cpp index 70d8237..caf121f 100644 --- a/src/gprs_rlcmac_sched.cpp +++ b/src/gprs_rlcmac_sched.cpp @@ -234,7 +234,7 @@ "message at RTS for %s (TRX=%d, TS=%d)\n", tbf_name(tbf), trx, ts); /* Updates the dl ctrl msg counter for ms */ - tbf->ms()->update_dl_ctrl_msg(); + ms_update_dl_ctrl_msg(tbf->ms()); return msg; } @@ -342,7 +342,7 @@ pdch->next_dl_tfi = (prio_tfi + 1) & 31; /* generate DL data block */ msg = prio_tbf->create_dl_acked_block(fn, ts, req_mcs_kind); - *is_egprs = prio_tbf->ms()->mode() != GPRS; + *is_egprs = ms_mode(prio_tbf->ms()) != GPRS; } return msg; @@ -463,7 +463,7 @@ * only be able to read USF if dl block uses GMSK * (CS1-4, MCS1-4) */ - if (req_mcs_kind == EGPRS && usf_tbf->ms()->mode() != EGPRS) + if (req_mcs_kind == EGPRS && ms_mode(usf_tbf->ms()) != EGPRS) req_mcs_kind = EGPRS_GMSK; } else { usf = USF_UNUSED; diff --git a/src/gprs_rlcmac_ts_alloc.cpp b/src/gprs_rlcmac_ts_alloc.cpp index 9551c59..1ef32f2 100644 --- a/src/gprs_rlcmac_ts_alloc.cpp +++ b/src/gprs_rlcmac_ts_alloc.cpp @@ -245,8 +245,8 @@ unsigned ts; /* We must use the TRX currently actively used by an MS */ - if (ms && ms->current_trx()) - return ms->current_trx()->trx_no; + if (ms && ms_current_trx(ms)) + return ms_current_trx(ms)->trx_no; if (use_trx >= 0 && use_trx < 8) return use_trx; @@ -320,8 +320,8 @@ use_trx = trx->trx_no; } - if (use_trx == -1 && ms->current_trx()) - use_trx = ms->current_trx()->trx_no; + if (use_trx == -1 && ms_current_trx(ms)) + use_trx = ms_current_trx(ms)->trx_no; tfi = bts->tfi_find_free(dir, &trx_no, use_trx); if (tfi < 0) @@ -357,7 +357,7 @@ const char *mask_reason = NULL; const GprsMs *ms = ms_; const gprs_rlcmac_tbf *tbf = tbf_; - gprs_rlcmac_trx *trx = ms->current_trx(); + gprs_rlcmac_trx *trx = ms_current_trx(ms); LOGPAL(tbf, "A", single, use_trx, LOGL_DEBUG, "Alloc start\n"); @@ -370,10 +370,10 @@ if (!trx) trx = &bts->trx[trx_no]; - dl_slots = ms->reserved_dl_slots(); - ul_slots = ms->reserved_ul_slots(); + dl_slots = ms_reserved_dl_slots(ms); + ul_slots = ms_reserved_ul_slots(ms); - ts = ms->first_common_ts(); + ts = ms_first_common_ts(ms); if (ts >= 0) { mask_reason = "need to reuse TS"; @@ -420,7 +420,7 @@ tbf_->trx = trx; /* the only one TS is the common TS */ tbf_->first_ts = tbf_->first_common_ts = ts; - ms_->set_reserved_slots(trx, 1 << ts, 1 << ts); + ms_set_reserved_slots(ms_, trx, 1 << ts, 1 << ts); tbf_->upgrade_to_multislot = 0; bts->bts->do_rate_ctr_inc(CTR_TBF_ALLOC_ALGO_A); @@ -774,11 +774,11 @@ { char slot_info[9] = { 0 }; - if (res_ul_slots == ms->reserved_ul_slots() && res_dl_slots == ms->reserved_dl_slots()) + if (res_ul_slots == ms_reserved_ul_slots(ms) && res_dl_slots == ms_reserved_dl_slots(ms)) return; /* The reserved slots have changed, update the MS */ - ms->set_reserved_slots(trx, res_ul_slots, res_dl_slots); + ms_set_reserved_slots(ms, trx, res_ul_slots, res_dl_slots); ts_format(slot_info, dl_slots, ul_slots); LOGP(DRLCMAC, LOGL_DEBUG, "- Reserved DL/UL slots: (TS=0)\"%s\"(TS=7)\n", slot_info); @@ -867,10 +867,10 @@ return -EINVAL; } - dl_slots = ms->reserved_dl_slots(); - ul_slots = ms->reserved_ul_slots(); - first_common_ts = ms->first_common_ts(); - trx = ms->current_trx(); + dl_slots = ms_reserved_dl_slots(ms); + ul_slots = ms_reserved_ul_slots(ms); + first_common_ts = ms_first_common_ts(ms); + trx = ms_current_trx(ms); /* Step 2a: Find usable TRX and TFI */ tfi = tfi_find_free(bts->bts, trx, ms, tbf->direction, use_trx, &trx_no); @@ -884,7 +884,7 @@ trx = &bts->trx[trx_no]; if (!dl_slots || !ul_slots) { - rc = find_multi_slots(trx, ms->ms_class(), &ul_slots, &dl_slots); + rc = find_multi_slots(trx, ms_ms_class(ms), &ul_slots, &dl_slots); if (rc < 0) return rc; } diff --git a/src/llc.cpp b/src/llc.cpp index e2d01c2..d1122f5 100644 --- a/src/llc.cpp +++ b/src/llc.cpp @@ -97,12 +97,12 @@ return true; } -void gprs_llc_queue::init() +void llc_queue_init(struct gprs_llc_queue *q) { - INIT_LLIST_HEAD(&m_queue); - m_queue_size = 0; - m_queue_octets = 0; - m_avg_queue_delay = 0; + INIT_LLIST_HEAD(&q->m_queue); + q->m_queue_size = 0; + q->m_queue_octets = 0; + q->m_avg_queue_delay = 0; } @@ -122,21 +122,21 @@ msgb_enqueue(&m_queue, llc_msg); } -void gprs_llc_queue::clear(BTS *bts) +void llc_queue_clear(struct gprs_llc_queue *q, struct BTS *bts) { struct msgb *msg; - while ((msg = msgb_dequeue(&m_queue))) { + while ((msg = msgb_dequeue(&q->m_queue))) { if (bts) bts->do_rate_ctr_inc(CTR_LLC_FRAME_DROPPED); msgb_free(msg); } - m_queue_size = 0; - m_queue_octets = 0; + q->m_queue_size = 0; + q->m_queue_octets = 0; } -void gprs_llc_queue::move_and_merge(gprs_llc_queue *o) +void llc_queue_move_and_merge(struct gprs_llc_queue *q, struct gprs_llc_queue *o) { struct msgb *msg, *msg1 = NULL, *msg2 = NULL; struct llist_head new_queue; @@ -146,7 +146,7 @@ while (1) { if (msg1 == NULL) - msg1 = msgb_dequeue(&m_queue); + msg1 = msgb_dequeue(&q->m_queue); if (msg2 == NULL) msg2 = msgb_dequeue(&o->m_queue); @@ -178,15 +178,15 @@ queue_octets += msgb_length(msg); } - OSMO_ASSERT(llist_empty(&m_queue)); + OSMO_ASSERT(llist_empty(&q->m_queue)); OSMO_ASSERT(llist_empty(&o->m_queue)); o->m_queue_size = 0; o->m_queue_octets = 0; - llist_splice_init(&new_queue, &m_queue); - m_queue_size = queue_size; - m_queue_octets = queue_octets; + llist_splice_init(&new_queue, &q->m_queue); + q->m_queue_size = queue_size; + q->m_queue_octets = queue_octets; } #define ALPHA 0.5f diff --git a/src/llc.h b/src/llc.h index 3c2e57a..72fa62e 100644 --- a/src/llc.h +++ b/src/llc.h @@ -18,9 +18,13 @@ #pragma once +#ifdef __cplusplus extern "C" { +#endif #include +#ifdef __cplusplus } +#endif #include #include @@ -34,6 +38,8 @@ * I represent the LLC data to a MS */ struct gprs_llc { + +#ifdef __cplusplus static bool is_user_data_frame(uint8_t *data, size_t len); void init(); @@ -43,92 +49,86 @@ void put_frame(const uint8_t *data, size_t len); void put_dummy_frame(size_t req_len); void append_frame(const uint8_t *data, size_t len); - - void consume(size_t len); - void consume(uint8_t *data, size_t len); - - uint16_t chunk_size() const; - uint16_t remaining_space() const; - uint16_t frame_length() const; - - bool fits_in_current_frame(uint8_t size) const; +#endif uint8_t frame[LLC_MAX_LEN]; /* current DL or UL frame */ uint16_t m_index; /* current write/read position of frame */ uint16_t m_length; /* len of current DL LLC_frame, 0 == no frame */ }; +struct MetaInfo { + struct timespec recv_time; + struct timespec expire_time; +}; /** * I store the LLC frames that come from the SGSN. */ struct gprs_llc_queue { - struct MetaInfo { - struct timespec recv_time; - struct timespec expire_time; - }; - +#ifdef __cplusplus static void calc_pdu_lifetime(BTS *bts, const uint16_t pdu_delay_csec, struct timespec *tv); static bool is_frame_expired(const struct timespec *now, const struct timespec *tv); static bool is_user_data_frame(uint8_t *data, size_t len); - void init(); - void enqueue(struct msgb *llc_msg, const struct timespec *expire_time); struct msgb *dequeue(const MetaInfo **info = 0); - void clear(BTS *bts); - void move_and_merge(gprs_llc_queue *o); - size_t size() const; - size_t octets() const; - -private: +#endif uint32_t m_avg_queue_delay; /* Average delay of data going through the queue */ size_t m_queue_size; size_t m_queue_octets; struct llist_head m_queue; /* queued LLC DL data */ - }; +#ifdef __cplusplus +extern "C" { +#endif +void llc_queue_init(struct gprs_llc_queue *q); +void llc_queue_clear(struct gprs_llc_queue *q, struct BTS *bts); +void llc_queue_move_and_merge(struct gprs_llc_queue *q, struct gprs_llc_queue *o); -inline uint16_t gprs_llc::chunk_size() const +static inline uint16_t llc_chunk_size(const struct gprs_llc *llc) { - return m_length - m_index; + return llc->m_length - llc->m_index; } -inline uint16_t gprs_llc::remaining_space() const +static inline uint16_t llc_remaining_space(const struct gprs_llc *llc) { - return LLC_MAX_LEN - m_length; + return LLC_MAX_LEN - llc->m_length; } -inline uint16_t gprs_llc::frame_length() const +static inline uint16_t llc_frame_length(const struct gprs_llc *llc) { - return m_length; + return llc->m_length; } -inline void gprs_llc::consume(size_t len) +static inline void llc_consume(struct gprs_llc *llc, size_t len) { - m_index += len; + llc->m_index += len; } -inline void gprs_llc::consume(uint8_t *data, size_t len) +static inline void llc_consume_data(struct gprs_llc *llc, uint8_t *data, size_t len) { /* copy and increment index */ - memcpy(data, frame + m_index, len); - consume(len); + memcpy(data, llc->frame + llc->m_index, len); + llc_consume(llc, len); } -inline bool gprs_llc::fits_in_current_frame(uint8_t chunk_size) const +static inline bool llc_fits_in_current_frame(const struct gprs_llc *llc, uint8_t chunk_size) { - return m_length + chunk_size <= LLC_MAX_LEN; + return llc->m_length + chunk_size <= LLC_MAX_LEN; } -inline size_t gprs_llc_queue::size() const +static inline size_t llc_queue_size(const struct gprs_llc_queue *q) { - return m_queue_size; + return q->m_queue_size; } -inline size_t gprs_llc_queue::octets() const +static inline size_t llc_queue_octets(const struct gprs_llc_queue *q) { - return m_queue_octets; + return q->m_queue_octets; } + +#ifdef __cplusplus +} +#endif diff --git a/src/pcu_l1_if.cpp b/src/pcu_l1_if.cpp index a984591..9cc6270 100644 --- a/src/pcu_l1_if.cpp +++ b/src/pcu_l1_if.cpp @@ -318,7 +318,7 @@ struct gprs_rlcmac_bts *bts = bts_main_data(); int rc; int current_fn = get_current_fn(); - pcu_l1_meas meas; + struct pcu_l1_meas meas = {0}; uint8_t gsmtap_chantype; LOGP(DL1IF, LOGL_DEBUG, "Data indication received: sapi=%d arfcn=%d " @@ -328,11 +328,11 @@ switch (data_ind->sapi) { case PCU_IF_SAPI_PDTCH: - meas.set_rssi(data_ind->rssi); + pcu_l1_meas_set_rssi(&meas, data_ind->rssi); /* convert BER to % value */ - meas.set_ber(data_ind->ber10k / 100); - meas.set_bto(data_ind->ta_offs_qbits); - meas.set_link_qual(data_ind->lqual_cb / 10); + pcu_l1_meas_set_ber(&meas, data_ind->ber10k / 100); + pcu_l1_meas_set_bto(&meas, data_ind->ta_offs_qbits); + pcu_l1_meas_set_link_qual(&meas, data_ind->lqual_cb / 10); LOGP(DL1IF, LOGL_DEBUG, "Data indication with raw measurements received: BER10k = %d, BTO = %d, Q = %d\n", data_ind->ber10k, data_ind->ta_offs_qbits, data_ind->lqual_cb); @@ -824,8 +824,8 @@ if ((ms = bts->ms_store().get_ms(susp_req->tlli))) { /* We need to catch both pointers here since MS may become freed after first tbf_free(dl_tbf) if only DL TBF was available */ - dl_tbf = ms->dl_tbf(); - ul_tbf = ms->ul_tbf(); + dl_tbf = ms_dl_tbf(ms); + ul_tbf = ms_ul_tbf(ms); if (dl_tbf) tbf_free(dl_tbf); if (ul_tbf) @@ -840,7 +840,7 @@ static int pcu_rx_app_info_req(struct gsm_pcu_if_app_info_req *app_info_req) { - LListHead *ms_iter; + GprsMs *ms; BTS *bts = BTS::main_bts(); struct gprs_rlcmac_bts *bts_data = bts->bts_data(); @@ -848,9 +848,8 @@ app_info_req->application_type, app_info_req->len); bts_data->app_info_pending = 0; - llist_for_each(ms_iter, &bts->ms_store().ms_list()) { - GprsMs *ms = ms_iter->entry(); - if (!ms->dl_tbf()) + llist_for_each_entry(ms, bts->ms_store().ms_list(), list) { + if (!ms_dl_tbf(ms)) continue; bts_data->app_info_pending++; ms->app_info_pending = true; diff --git a/src/pcu_l1_if.h b/src/pcu_l1_if.h index f86e708..65fea9c 100644 --- a/src/pcu_l1_if.h +++ b/src/pcu_l1_if.h @@ -79,19 +79,13 @@ unsigned have_ms_i_level:1; int16_t ms_i_level; /* I_LEVEL in dB */ - -#ifdef __cplusplus - pcu_l1_meas_ts& set_ms_i_level(int16_t v) { - ms_i_level = v; have_ms_i_level = 1; return *this; - } - - pcu_l1_meas_ts() : - have_ms_i_level(0), - ms_i_level(0) - {} -#endif }; +static inline void pcu_l1_meas_ts_set_ms_i_level(struct pcu_l1_meas_ts* ts, int16_t v) { + ts->ms_i_level = v; + ts->have_ms_i_level = 1; +} + struct pcu_l1_meas { unsigned have_rssi:1; unsigned have_ber:1; @@ -111,48 +105,43 @@ int16_t ms_sign_var; /* SIGN_VAR in dB */ struct pcu_l1_meas_ts ts[8]; - -#ifdef __cplusplus - pcu_l1_meas& set_rssi(int8_t v) { rssi = v; have_rssi = 1; return *this;} - pcu_l1_meas& set_ber(uint8_t v) { ber = v; have_ber = 1; return *this;} - pcu_l1_meas& set_bto(int16_t v) { bto = v; have_bto = 1; return *this;} - pcu_l1_meas& set_link_qual(int16_t v) { - link_qual = v; have_link_qual = 1; return *this; - } - pcu_l1_meas& set_ms_rx_qual(int16_t v) { - ms_rx_qual = v; have_ms_rx_qual = 1; return *this; - } - pcu_l1_meas& set_ms_c_value(int16_t v) { - ms_c_value = v; have_ms_c_value = 1; return *this; - } - pcu_l1_meas& set_ms_sign_var(int16_t v) { - ms_sign_var = v; have_ms_sign_var = 1; return *this; - } - pcu_l1_meas& set_ms_i_level(size_t idx, int16_t v) { - ts[idx].set_ms_i_level(v); have_ms_i_level = 1; return *this; - } - pcu_l1_meas() : - have_rssi(0), - have_ber(0), - have_bto(0), - have_link_qual(0), - have_ms_rx_qual(0), - have_ms_c_value(0), - have_ms_sign_var(0), - have_ms_i_level(0), - rssi(0), - ber(0), - bto(0), - link_qual(0), - ms_rx_qual(0), - ms_c_value(0), - ms_sign_var(0) - {} -#endif }; +static inline void pcu_l1_meas_set_rssi(struct pcu_l1_meas *m, int8_t v) { + m->rssi = v; + m->have_rssi = 1; +} +static inline void pcu_l1_meas_set_ber(struct pcu_l1_meas *m, uint8_t v) { + m->ber = v; + m->have_ber = 1; +} +static inline void pcu_l1_meas_set_bto(struct pcu_l1_meas *m, int16_t v) { + m->bto = v; + m->have_bto = 1; +} +static inline void pcu_l1_meas_set_link_qual(struct pcu_l1_meas *m, int16_t v) { + m->link_qual = v; + m->have_link_qual = 1; +} +static inline void pcu_l1_meas_set_ms_rx_qual(struct pcu_l1_meas *m, int16_t v) { + m->ms_rx_qual = v; + m->have_ms_rx_qual = 1; +} +static inline void pcu_l1_meas_set_ms_c_value(struct pcu_l1_meas *m, int16_t v) { + m->ms_c_value = v; + m->have_ms_c_value = 1; +} +static inline void pcu_l1_meas_set_ms_sign_var(struct pcu_l1_meas *m, int16_t v) { + m->ms_sign_var = v; + m->have_ms_sign_var = 1; +} +static inline void pcu_l1_meas_set_ms_i_level(struct pcu_l1_meas *m, size_t idx, int16_t v) { + pcu_l1_meas_ts_set_ms_i_level(&m->ts[idx], v); + m->have_ms_i_level = 1; +} + #ifdef __cplusplus -void pcu_l1if_tx_pdtch(msgb *msg, uint8_t trx, uint8_t ts, uint16_t arfcn, +void pcu_l1if_tx_pdtch(msgb *msg, uint8_t trx, uint8_t ts, uint16_t arfcn, uint32_t fn, uint8_t block_nr); void pcu_l1if_tx_ptcch(uint8_t trx, uint8_t ts, uint16_t arfcn, uint32_t fn, uint8_t block_nr, diff --git a/src/pcu_utils.h b/src/pcu_utils.h index 8196a93..cb2fd91 100644 --- a/src/pcu_utils.h +++ b/src/pcu_utils.h @@ -15,26 +15,32 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - +#pragma once +#ifdef __cplusplus extern "C" { +#endif #include +#ifdef __cplusplus } +#endif + #include -inline int msecs_to_frames(int msecs) { +static inline int msecs_to_frames(int msecs) { return (msecs * (1024 * 1000 / 4615)) / 1024; } -inline uint32_t next_fn(uint32_t fn, uint32_t offset) +static inline uint32_t next_fn(uint32_t fn, uint32_t offset) { return (fn + offset) % GSM_MAX_FN; } -inline void csecs_to_timespec(unsigned csecs, struct timespec *ts) { +static inline void csecs_to_timespec(unsigned csecs, struct timespec *ts) { ts->tv_sec = csecs / 100; ts->tv_nsec = (csecs % 100) * 10000000; } +#ifdef __cplusplus template inline unsigned int pcu_bitcount(T x) { @@ -44,8 +50,15 @@ return count; } +#endif -inline uint8_t pcu_lsb(uint8_t x) +static inline uint8_t pcu_lsb(uint8_t x) { return x & -x; } + +/* Used to store a C++ class in a llist used by C code */ +struct llist_item { + struct llist_head list; /* item used by llist */ + void *entry; +}; diff --git a/src/pcu_vty_functions.cpp b/src/pcu_vty_functions.cpp index 416c006..6100b13 100644 --- a/src/pcu_vty_functions.cpp +++ b/src/pcu_vty_functions.cpp @@ -61,7 +61,7 @@ tbf->first_ts, tbf->first_common_ts, tbf->control_ts, tbf->ms_class(), - tbf->ms() ? tbf->ms()->egprs_ms_class() : -1, + tbf->ms() ? ms_egprs_ms_class(tbf->ms()) : -1, VTY_NEWLINE); vty_out(vty, " TS_alloc="); for (int i = 0; i < 8; i++) { @@ -79,7 +79,7 @@ ul_tbf->window_size(), win->v_q(), win->v_r()); vty_out(vty, "%s", VTY_NEWLINE); vty_out(vty, " TBF Statistics:%s", VTY_NEWLINE); - if (GPRS == tbf->ms()->mode()) { + if (GPRS == ms_mode(tbf->ms())) { vty_out_rate_ctr_group(vty, " ", ul_tbf->m_ul_gprs_ctrs); } else { vty_out_rate_ctr_group(vty, " ", ul_tbf->m_ul_egprs_ctrs); @@ -92,7 +92,7 @@ win->window_stalled() ? " STALLED" : ""); vty_out(vty, "%s", VTY_NEWLINE); vty_out_rate_ctr_group(vty, " ", tbf->m_ctrs); - if (GPRS == tbf->ms()->mode()) { + if (GPRS == ms_mode(tbf->ms())) { vty_out_rate_ctr_group(vty, " ", dl_tbf->m_dl_gprs_ctrs); } else { vty_out_rate_ctr_group(vty, " ", dl_tbf->m_dl_egprs_ctrs); @@ -124,81 +124,83 @@ static int show_ms(struct vty *vty, GprsMs *ms) { unsigned i; - LListHead *i_tbf; + struct llist_item *i_tbf; uint8_t slots; - vty_out(vty, "MS TLLI=%08x, IMSI=%s%s", ms->tlli(), ms->imsi(), VTY_NEWLINE); - vty_out(vty, " Timing advance (TA): %d%s", ms->ta(), VTY_NEWLINE); - vty_out(vty, " Coding scheme uplink: %s%s", mcs_name(ms->current_cs_ul()), + vty_out(vty, "MS TLLI=%08x, IMSI=%s%s", ms_tlli(ms), ms_imsi(ms), VTY_NEWLINE); + vty_out(vty, " Timing advance (TA): %d%s", ms_ta(ms), VTY_NEWLINE); + vty_out(vty, " Coding scheme uplink: %s%s", mcs_name(ms_current_cs_ul(ms)), VTY_NEWLINE); - vty_out(vty, " Coding scheme downlink: %s%s", mcs_name(ms->current_cs_dl()), + vty_out(vty, " Coding scheme downlink: %s%s", mcs_name(ms_current_cs_dl(ms)), VTY_NEWLINE); - vty_out(vty, " Mode: %s%s", mode_name(ms->mode()), VTY_NEWLINE); - vty_out(vty, " MS class: %d%s", ms->ms_class(), VTY_NEWLINE); - vty_out(vty, " EGPRS MS class: %d%s", ms->egprs_ms_class(), VTY_NEWLINE); + vty_out(vty, " Mode: %s%s", mode_name(ms_mode(ms)), VTY_NEWLINE); + vty_out(vty, " MS class: %d%s", ms_ms_class(ms), VTY_NEWLINE); + vty_out(vty, " EGPRS MS class: %d%s", ms_egprs_ms_class(ms), VTY_NEWLINE); vty_out(vty, " PACCH: "); - slots = ms->current_pacch_slots(); + slots = ms_current_pacch_slots(ms); for (int i = 0; i < 8; i++) if (slots & (1 << i)) vty_out(vty, "%d ", i); vty_out(vty, "%s", VTY_NEWLINE); - vty_out(vty, " LLC queue length: %zd%s", ms->llc_queue()->size(), + vty_out(vty, " LLC queue length: %zd%s", llc_queue_size(ms_llc_queue(ms)), VTY_NEWLINE); - vty_out(vty, " LLC queue octets: %zd%s", ms->llc_queue()->octets(), + vty_out(vty, " LLC queue octets: %zd%s", llc_queue_octets(ms_llc_queue(ms)), VTY_NEWLINE); - if (ms->l1_meas()->have_rssi) + if (ms->l1_meas.have_rssi) vty_out(vty, " RSSI: %d dBm%s", - ms->l1_meas()->rssi, VTY_NEWLINE); - if (ms->l1_meas()->have_ber) + ms->l1_meas.rssi, VTY_NEWLINE); + if (ms->l1_meas.have_ber) vty_out(vty, " Bit error rate: %d %%%s", - ms->l1_meas()->ber, VTY_NEWLINE); - if (ms->l1_meas()->have_link_qual) + ms->l1_meas.ber, VTY_NEWLINE); + if (ms->l1_meas.have_link_qual) vty_out(vty, " Link quality: %d dB%s", - ms->l1_meas()->link_qual, VTY_NEWLINE); - if (ms->l1_meas()->have_bto) + ms->l1_meas.link_qual, VTY_NEWLINE); + if (ms->l1_meas.have_bto) vty_out(vty, " Burst timing offset: %d/4 bit%s", - ms->l1_meas()->bto, VTY_NEWLINE); - if (ms->l1_meas()->have_ms_rx_qual) + ms->l1_meas.bto, VTY_NEWLINE); + if (ms->l1_meas.have_ms_rx_qual) vty_out(vty, " Downlink NACK rate: %d %%%s", - ms->nack_rate_dl(), VTY_NEWLINE); - if (ms->l1_meas()->have_ms_rx_qual) + ms_nack_rate_dl(ms), VTY_NEWLINE); + if (ms->l1_meas.have_ms_rx_qual) vty_out(vty, " MS RX quality: %d %%%s", - ms->l1_meas()->ms_rx_qual, VTY_NEWLINE); - if (ms->l1_meas()->have_ms_c_value) + ms->l1_meas.ms_rx_qual, VTY_NEWLINE); + if (ms->l1_meas.have_ms_c_value) vty_out(vty, " MS C value: %d dB%s", - ms->l1_meas()->ms_c_value, VTY_NEWLINE); - if (ms->l1_meas()->have_ms_sign_var) + ms->l1_meas.ms_c_value, VTY_NEWLINE); + if (ms->l1_meas.have_ms_sign_var) vty_out(vty, " MS SIGN variance: %d dB%s", - ms->l1_meas()->ms_sign_var, VTY_NEWLINE); - for (i = 0; i < ARRAY_SIZE(ms->l1_meas()->ts); ++i) { - if (ms->l1_meas()->ts[i].have_ms_i_level) + ms->l1_meas.ms_sign_var, VTY_NEWLINE); + for (i = 0; i < ARRAY_SIZE(ms->l1_meas.ts); ++i) { + if (ms->l1_meas.ts[i].have_ms_i_level) vty_out(vty, " MS I level (slot %d): %d dB%s", - i, ms->l1_meas()->ts[i].ms_i_level, VTY_NEWLINE); + i, ms->l1_meas.ts[i].ms_i_level, VTY_NEWLINE); } - vty_out(vty, " RLC/MAC DL Control Msg: %d%s", ms->dl_ctrl_msg(), + vty_out(vty, " RLC/MAC DL Control Msg: %d%s", ms_dl_ctrl_msg(ms), VTY_NEWLINE); - if (ms->ul_tbf()) + if (ms_ul_tbf(ms)) vty_out(vty, " Uplink TBF: TFI=%d, state=%s%s", - ms->ul_tbf()->tfi(), - ms->ul_tbf()->state_name(), + ms_ul_tbf(ms)->tfi(), + ms_ul_tbf(ms)->state_name(), VTY_NEWLINE); - if (ms->dl_tbf()) { + if (ms_dl_tbf(ms)) { vty_out(vty, " Downlink TBF: TFI=%d, state=%s%s", - ms->dl_tbf()->tfi(), - ms->dl_tbf()->state_name(), + ms_dl_tbf(ms)->tfi(), + ms_dl_tbf(ms)->state_name(), VTY_NEWLINE); vty_out(vty, " Current DL Throughput: %d Kbps %s", - ms->dl_tbf()->m_bw.dl_throughput, + ms_dl_tbf(ms)->m_bw.dl_throughput, VTY_NEWLINE); } - llist_for_each(i_tbf, &ms->old_tbfs()) + llist_for_each_entry(i_tbf, &ms->old_tbfs, list) { + struct gprs_rlcmac_tbf *tbf = (struct gprs_rlcmac_tbf *)i_tbf->entry; vty_out(vty, " Old %-19s TFI=%d, state=%s%s", - i_tbf->entry()->direction == GPRS_RLCMAC_UL_TBF ? + tbf_direction(tbf) == GPRS_RLCMAC_UL_TBF ? "Uplink TBF:" : "Downlink TBF:", - i_tbf->entry()->tfi(), - i_tbf->entry()->state_name(), + tbf->tfi(), + tbf->state_name(), VTY_NEWLINE); + } return CMD_SUCCESS; } @@ -206,10 +208,10 @@ int pcu_vty_show_ms_all(struct vty *vty, struct gprs_rlcmac_bts *bts_data) { BTS *bts = bts_data->bts; - LListHead *ms_iter; + GprsMs *ms_iter; - llist_for_each(ms_iter, &bts->ms_store().ms_list()) - show_ms(vty, ms_iter->entry()); + llist_for_each_entry(ms_iter, bts->ms_store().ms_list(), list) + show_ms(vty, ms_iter); return CMD_SUCCESS; } diff --git a/src/pdch.cpp b/src/pdch.cpp index 4a0ff06..49cce8d 100644 --- a/src/pdch.cpp +++ b/src/pdch.cpp @@ -68,9 +68,9 @@ 18, /* 18,10 % */ }; - meas->set_ms_rx_qual(rx_qual_map[ - OSMO_MIN(rx_qual_enc, ARRAY_SIZE(rx_qual_map)-1) - ]); + pcu_l1_meas_set_ms_rx_qual(meas, rx_qual_map[ + OSMO_MIN(rx_qual_enc, ARRAY_SIZE(rx_qual_map)-1) + ]); } static void get_meas(struct pcu_l1_meas *meas, @@ -78,9 +78,9 @@ { unsigned i; - meas->set_ms_c_value(qr->C_VALUE); + pcu_l1_meas_set_ms_c_value(meas, qr->C_VALUE); if (qr->Exist_SIGN_VAR) - meas->set_ms_sign_var((qr->SIGN_VAR + 2) / 4); /* SIGN_VAR * 0.25 dB */ + pcu_l1_meas_set_ms_sign_var(meas, (qr->SIGN_VAR + 2) / 4); /* SIGN_VAR * 0.25 dB */ for (i = 0; i < OSMO_MIN(ARRAY_SIZE(qr->I_LEVEL_TN), ARRAY_SIZE(meas->ts)); i++) { @@ -88,7 +88,7 @@ LOGP(DRLCMAC, LOGL_INFO, "Packet resource request: i_level[%d] = %d\n", i, qr->I_LEVEL_TN[i].I_LEVEL); - meas->set_ms_i_level(i, -2 * qr->I_LEVEL_TN[i].I_LEVEL); + pcu_l1_meas_set_ms_i_level(meas, i, -2 * qr->I_LEVEL_TN[i].I_LEVEL); } } } @@ -99,8 +99,8 @@ unsigned i; get_rx_qual_meas(meas, qr->RXQUAL); - meas->set_ms_c_value(qr->C_VALUE); - meas->set_ms_sign_var((qr->SIGN_VAR + 2) / 4); /* SIGN_VAR * 0.25 dB */ + pcu_l1_meas_set_ms_c_value(meas, qr->C_VALUE); + pcu_l1_meas_set_ms_sign_var(meas, (qr->SIGN_VAR + 2) / 4); /* SIGN_VAR * 0.25 dB */ for (i = 0; i < OSMO_MIN(ARRAY_SIZE(qr->Slot), ARRAY_SIZE(meas->ts)); i++) { @@ -108,7 +108,7 @@ LOGP(DRLCMAC, LOGL_DEBUG, "Channel quality report: i_level[%d] = %d\n", i, qr->Slot[i].I_LEVEL_TN); - meas->set_ms_i_level(i, -2 * qr->Slot[i].I_LEVEL_TN); + pcu_l1_meas_set_ms_i_level(meas, i, -2 * qr->Slot[i].I_LEVEL_TN); } } } @@ -307,11 +307,11 @@ LOGP(DRLCMAC, LOGL_NOTICE, "PACKET CONTROL ACK with " "unknown TBF corresponds to MS with IMSI %s, TA %d, " "uTBF (TFI=%d, state=%s), dTBF (TFI=%d, state=%s)\n", - ms->imsi(), ms->ta(), - ms->ul_tbf() ? ms->ul_tbf()->tfi() : 0, - ms->ul_tbf() ? ms->ul_tbf()->state_name() : "None", - ms->dl_tbf() ? ms->dl_tbf()->tfi() : 0, - ms->dl_tbf() ? ms->dl_tbf()->state_name() : "None"); + ms_imsi(ms), ms_ta(ms), + ms_ul_tbf(ms) ? ms_ul_tbf(ms)->tfi() : 0, + ms_ul_tbf(ms) ? ms_ul_tbf(ms)->state_name() : "None", + ms_dl_tbf(ms) ? ms_dl_tbf(ms)->tfi() : 0, + ms_dl_tbf(ms) ? ms_dl_tbf(ms)->state_name() : "None"); return; } @@ -339,7 +339,7 @@ tbf->n_reset(N3105); TBF_SET_ASS_STATE_DL(tbf, GPRS_RLCMAC_DL_ASS_NONE); - new_tbf = tbf->ms() ? tbf->ms()->dl_tbf() : NULL; + new_tbf = tbf->ms() ? ms_dl_tbf(tbf->ms()) : NULL; if (!new_tbf) { LOGP(DRLCMAC, LOGL_ERROR, "Got ACK, but DL " "TBF is gone TLLI=0x%08x\n", tlli); @@ -371,7 +371,7 @@ tbf->n_reset(N3105); TBF_SET_ASS_STATE_UL(tbf, GPRS_RLCMAC_UL_ASS_NONE); - new_tbf = tbf->ms() ? tbf->ms()->ul_tbf() : NULL; + new_tbf = tbf->ms() ? ms_ul_tbf(tbf->ms()) : NULL; if (!new_tbf) { LOGP(DRLCMAC, LOGL_ERROR, "Got ACK, but UL " "TBF is gone TLLI=0x%08x\n", tlli); @@ -389,7 +389,7 @@ /* there might be LLC packets waiting in the queue, but the DL * TBF might have been released while the UL TBF has been * established */ - if (new_tbf->ms()->need_dl_tbf()) + if (ms_need_dl_tbf(new_tbf->ms())) new_tbf->establish_dl_tbf_on_pacch(); return; @@ -460,7 +460,7 @@ /* get measurements */ if (tbf->ms()) { get_meas(meas, &ack_nack->Channel_Quality_Report); - tbf->ms()->update_l1_meas(meas); + ms_update_l1_meas(tbf->ms(), meas); } } @@ -570,19 +570,19 @@ if (!ms) { ms_found = false; ms = bts()->ms_alloc(0, 0); /* ms class updated later */ - ms->set_tlli(tlli); + ms_set_tlli(ms, tlli); } - ul_tbf = ms->ul_tbf(); /* hence ul_tbf may be NULL */ + ul_tbf = ms_ul_tbf(ms); /* hence ul_tbf may be NULL */ /* Keep the ms, even if it gets idle temporarily */ - GprsMs::Guard guard(ms); + ms_ref(ms); LOGP(DRLCMAC, LOGL_DEBUG, "MS requests UL TBF " "in packet resource request of single " "block, so we provide one:\n"); sba = bts()->sba()->find(this, fn); if (sba) { - ms->set_ta(sba->ta); + ms_set_ta(ms, sba->ta); bts()->sba()->free_sba(sba); } else if (!ul_tbf || !ul_tbf->state_is(GPRS_RLCMAC_FINISHED)) { LOGPTBFUL(ul_tbf, LOGL_NOTICE, @@ -599,9 +599,9 @@ ms_class = Decoding::get_ms_class_by_capability(&request->MS_Radio_Access_capability2); egprs_ms_class = Decoding::get_egprs_ms_class_by_capability(&request->MS_Radio_Access_capability2); if (ms_class) - ms->set_ms_class(ms_class); + ms_set_ms_class(ms, ms_class); if (egprs_ms_class) - ms->set_egprs_ms_class(egprs_ms_class); + ms_set_egprs_ms_class(ms, egprs_ms_class); } /* Get rid of previous finished UL TBF before providing a new one */ @@ -616,7 +616,7 @@ if (!ul_tbf) { handle_tbf_reject(bts_data(), ms, tlli, trx_no(), ts_no); - return; + goto return_unref; } /* set control ts to current MS's TS, until assignment complete */ @@ -630,8 +630,10 @@ /* get measurements */ if (ul_tbf->ms()) { get_meas(meas, request); - ul_tbf->ms()->update_l1_meas(meas); + ms_update_l1_meas(ul_tbf->ms(), meas); } +return_unref: + ms_unref(ms); return; } @@ -674,10 +676,10 @@ LOGP(DRLCMAC, LOGL_NOTICE, "MS send measurement " "but TLLI 0x%08x is unknown\n", report->TLLI); ms = bts()->ms_alloc(0, 0); - ms->set_tlli(report->TLLI); + ms_set_tlli(ms, report->TLLI); } if ((sba = bts()->sba()->find(this, fn))) { - ms->set_ta(sba->ta); + ms_set_ta(ms, sba->ta); bts()->sba()->free_sba(sba); } gprs_rlcmac_meas_rep(ms, report); diff --git a/src/tbf.cpp b/src/tbf.cpp index e92dfb6..fde44ba 100644 --- a/src/tbf.cpp +++ b/src/tbf.cpp @@ -141,14 +141,13 @@ m_tfi(0), m_created_ts(0), m_ctrs(NULL), - m_ms(ms), state(GPRS_RLCMAC_NULL), + m_ms(ms), dl_ass_state(GPRS_RLCMAC_DL_ASS_NONE), ul_ass_state(GPRS_RLCMAC_UL_ASS_NONE), ul_ack_state(GPRS_RLCMAC_UL_ACK_NONE), poll_state(GPRS_RLCMAC_POLL_NONE), m_list(this), - m_ms_list(this), m_egprs_enabled(false) { /* The classes of these members do not have proper constructors yet. @@ -158,6 +157,9 @@ memset(&Narr, 0, sizeof(Narr)); memset(&gsm_timer, 0, sizeof(gsm_timer)); + memset(&m_ms_list, 0, sizeof(m_ms_list)); + m_ms_list.entry = this; + m_rlc.init(); m_llc.init(); @@ -171,27 +173,27 @@ uint32_t gprs_rlcmac_tbf::tlli() const { - return m_ms ? m_ms->tlli() : GSM_RESERVED_TMSI; + return m_ms ? ms_tlli(m_ms) : GSM_RESERVED_TMSI; } const char *gprs_rlcmac_tbf::imsi() const { - return m_ms->imsi(); + return ms_imsi(m_ms); } uint8_t gprs_rlcmac_tbf::ta() const { - return m_ms->ta(); + return ms_ta(m_ms); } void gprs_rlcmac_tbf::set_ta(uint8_t ta) { - ms()->set_ta(ta); + ms_set_ta(m_ms, ta); } uint8_t gprs_rlcmac_tbf::ms_class() const { - return m_ms->ms_class(); + return ms_ms_class(m_ms); } enum CodingScheme gprs_rlcmac_tbf::current_cs() const @@ -199,28 +201,21 @@ enum CodingScheme cs; if (direction == GPRS_RLCMAC_UL_TBF) - cs = m_ms ? m_ms->current_cs_ul() : UNKNOWN; + cs = m_ms ? ms_current_cs_ul(m_ms) : UNKNOWN; else - cs = m_ms ? m_ms->current_cs_dl() : UNKNOWN; + cs = m_ms ? ms_current_cs_dl(m_ms) : UNKNOWN; return cs; } gprs_llc_queue *gprs_rlcmac_tbf::llc_queue() { - return m_ms ? m_ms->llc_queue() : NULL; + return m_ms ? ms_llc_queue(m_ms) : NULL; } const gprs_llc_queue *gprs_rlcmac_tbf::llc_queue() const { - return m_ms ? m_ms->llc_queue() : NULL; -} - -size_t gprs_rlcmac_tbf::llc_queue_size() const -{ - /* m_ms->llc_queue() never returns NULL: GprsMs::m_llc_queue is a - * member instance. */ - return m_ms ? m_ms->llc_queue()->size() : 0; + return ms_llc_queue(m_ms); } void gprs_rlcmac_tbf::set_ms(GprsMs *ms) @@ -229,13 +224,13 @@ return; if (m_ms) { - m_ms->detach_tbf(this); + ms_detach_tbf(m_ms, this); } m_ms = ms; if (m_ms) - m_ms->attach_tbf(this); + ms_attach_tbf(m_ms, this); } void gprs_rlcmac_tbf::update_ms(uint32_t tlli, enum gprs_rlcmac_tbf_direction dir) @@ -247,18 +242,18 @@ * MS object that belongs to that TLLI and if yes make sure one of them * gets deleted. This is the same problem that can arise with * IMSI in gprs_rlcmac_dl_tbf::handle() so there should be a unified solution */ - if (!ms()->check_tlli(tlli)) { + if (!ms_check_tlli(ms(), tlli)) { GprsMs *old_ms; old_ms = bts->ms_store().get_ms(tlli, 0, NULL); if (old_ms) - ms()->merge_and_clear_ms(old_ms); + ms_merge_and_clear_ms(ms(), old_ms); } if (dir == GPRS_RLCMAC_UL_TBF) - ms()->set_tlli(tlli); + ms_set_tlli(ms(), tlli); else - ms()->confirm_tlli(tlli); + ms_confirm_tlli(ms(), tlli); } static void tbf_unlink_pdch(struct gprs_rlcmac_tbf *tbf) @@ -745,7 +740,7 @@ struct gprs_rlcmac_bts *bts_data = bts->bts_data(); int rc; - if (m_ms->mode() != GPRS) + if (ms_mode(m_ms) != GPRS) enable_egprs(); m_created_ts = time(NULL); @@ -775,7 +770,7 @@ return -1; } - m_ms->attach_tbf(this); + ms_attach_tbf(m_ms, this); return 0; } @@ -895,7 +890,7 @@ } if (ms()) - new_dl_tbf = ms()->dl_tbf(); + new_dl_tbf = ms_dl_tbf(ms()); if (!new_dl_tbf) { LOGPTBFDL(this, LOGL_ERROR, @@ -1012,7 +1007,7 @@ return NULL; if (ms()) - new_tbf = ms()->ul_tbf(); + new_tbf = ms_ul_tbf(ms()); if (!new_tbf) { LOGPTBFUL(this, LOGL_ERROR, "We have a schedule for uplink assignment, but there is no uplink TBF\n"); @@ -1170,3 +1165,58 @@ { return ts == control_ts; } + +/* C API */ +enum gprs_rlcmac_tbf_state tbf_state(const struct gprs_rlcmac_tbf *tbf) +{ + return tbf->state; +} + +enum gprs_rlcmac_tbf_direction tbf_direction(const struct gprs_rlcmac_tbf *tbf) +{ + return tbf->direction; +} + +void tbf_set_ms(struct gprs_rlcmac_tbf *tbf, GprsMs *ms) +{ + tbf->set_ms(ms); +} + +struct llist_head *tbf_ms_list(struct gprs_rlcmac_tbf *tbf) +{ + return &tbf->m_ms_list.list; +} + +struct GprsMs *tbf_ms(struct gprs_rlcmac_tbf *tbf) +{ + return tbf->ms(); +} + +bool tbf_timers_pending(struct gprs_rlcmac_tbf *tbf, enum tbf_timers t) +{ + return tbf->timers_pending(t); +} + +struct gprs_llc *tbf_llc(struct gprs_rlcmac_tbf *tbf) +{ + return &tbf->m_llc; +} + +uint8_t tbf_first_common_ts(const struct gprs_rlcmac_tbf *tbf) +{ + return tbf->first_common_ts; +} + +uint8_t tbf_dl_slots(const struct gprs_rlcmac_tbf *tbf) +{ + return tbf->dl_slots(); +} +uint8_t tbf_ul_slots(const struct gprs_rlcmac_tbf *tbf) +{ + return tbf->ul_slots(); +} + +bool tbf_is_tfi_assigned(const struct gprs_rlcmac_tbf *tbf) +{ + return tbf->is_tfi_assigned(); +} diff --git a/src/tbf.h b/src/tbf.h index c97477b..4bbfea2 100644 --- a/src/tbf.h +++ b/src/tbf.h @@ -25,11 +25,21 @@ #include "llc.h" #include "rlc.h" #include "cxx_linuxlist.h" +#include "pcu_utils.h" #include #include #include +struct bssgp_bvc_ctx; +struct gprs_rlcmac_bts; + +#endif + +struct GprsMs; + +#ifdef __cplusplus extern "C" { +#endif #include #include #include @@ -37,12 +47,8 @@ #include #include "coding_scheme.h" +#ifdef __cplusplus } - -struct bssgp_bvc_ctx; -class GprsMs; -struct gprs_rlcmac_bts; - #endif /* @@ -182,6 +188,28 @@ #define TBF_ASS_TYPE_UNSET(t, kind) do { t->ass_type_mod(kind, true, __FILE__, __LINE__); } while(0) #ifdef __cplusplus +extern "C" { +#endif +struct gprs_rlcmac_tbf; +const char *tbf_name(struct gprs_rlcmac_tbf *tbf); +enum gprs_rlcmac_tbf_state tbf_state(const struct gprs_rlcmac_tbf *tbf); +enum gprs_rlcmac_tbf_direction tbf_direction(const struct gprs_rlcmac_tbf *tbf); +void tbf_set_ms(struct gprs_rlcmac_tbf *tbf, struct GprsMs *ms); +struct llist_head *tbf_ms_list(struct gprs_rlcmac_tbf *tbf); +struct GprsMs *tbf_ms(struct gprs_rlcmac_tbf *tbf); +bool tbf_timers_pending(struct gprs_rlcmac_tbf *tbf, enum tbf_timers t); +void tbf_free(struct gprs_rlcmac_tbf *tbf); +struct gprs_llc *tbf_llc(struct gprs_rlcmac_tbf *tbf); +uint8_t tbf_first_common_ts(const struct gprs_rlcmac_tbf *tbf); +uint8_t tbf_dl_slots(const struct gprs_rlcmac_tbf *tbf); +uint8_t tbf_ul_slots(const struct gprs_rlcmac_tbf *tbf); +bool tbf_is_tfi_assigned(const struct gprs_rlcmac_tbf *tbf); +int tbf_assign_control_ts(struct gprs_rlcmac_tbf *tbf); +#ifdef __cplusplus +} +#endif + +#ifdef __cplusplus struct gprs_rlcmac_tbf { gprs_rlcmac_tbf(BTS *bts_, GprsMs *ms, gprs_rlcmac_tbf_direction dir); @@ -255,7 +283,6 @@ void set_ta(uint8_t); uint8_t ms_class() const; enum CodingScheme current_cs() const; - size_t llc_queue_size() const; time_t created_ts() const; uint8_t dl_slots() const; @@ -269,9 +296,6 @@ /* attempt to make things a bit more fair */ void rotate_in_list(); - LListHead& ms_list() {return this->m_ms_list;} - const LListHead& ms_list() const {return this->m_ms_list;} - LListHead& list(); const LListHead& list() const; @@ -321,6 +345,8 @@ time_t m_created_ts; struct rate_ctr_group *m_ctrs; + enum gprs_rlcmac_tbf_state state; + struct llist_item m_ms_list; protected: gprs_rlcmac_bts *bts_data() const; @@ -331,26 +357,20 @@ static const char *tbf_state_name[6]; - class GprsMs *m_ms; + struct GprsMs *m_ms; private: void enable_egprs(); - enum gprs_rlcmac_tbf_state state; enum gprs_rlcmac_tbf_dl_ass_state dl_ass_state; enum gprs_rlcmac_tbf_ul_ass_state ul_ass_state; enum gprs_rlcmac_tbf_ul_ack_state ul_ack_state; enum gprs_rlcmac_tbf_poll_state poll_state; LListHead m_list; - LListHead m_ms_list; bool m_egprs_enabled; struct osmo_timer_list Tarr[T_MAX]; uint8_t Narr[N_MAX]; mutable char m_name_buf[60]; }; -void tbf_free(struct gprs_rlcmac_tbf *tbf); - -int tbf_assign_control_ts(struct gprs_rlcmac_tbf *tbf); - inline bool gprs_rlcmac_tbf::state_is(enum gprs_rlcmac_tbf_state rhs) const { return state == rhs; @@ -381,8 +401,6 @@ return state != rhs; } -const char *tbf_name(gprs_rlcmac_tbf *tbf); - inline const char *gprs_rlcmac_tbf::state_name() const { return tbf_state_name[state]; diff --git a/src/tbf_dl.cpp b/src/tbf_dl.cpp index bb89e81..613f7b8 100644 --- a/src/tbf_dl.cpp +++ b/src/tbf_dl.cpp @@ -131,7 +131,7 @@ LOGP(DTBF, LOGL_DEBUG, "********** DL-TBF starts here **********\n"); LOGP(DTBF, LOGL_INFO, "Allocating DL TBF: MS_CLASS=%d/%d\n", - ms->ms_class(), ms->egprs_ms_class()); + ms_ms_class(ms), ms_egprs_ms_class(ms)); tbf = talloc(tall_pcu_ctx, struct gprs_rlcmac_dl_tbf); @@ -241,7 +241,7 @@ struct gprs_rlcmac_ul_tbf *ul_tbf = NULL, *old_ul_tbf; struct gprs_rlcmac_dl_tbf *dl_tbf = NULL; - ul_tbf = ms->ul_tbf(); + ul_tbf = ms_ul_tbf(ms); if (ul_tbf && ul_tbf->m_contention_resolution_done && !ul_tbf->m_final_ack_sent) { @@ -291,41 +291,43 @@ /* check for existing TBF */ ms = bts->bts->ms_store().get_ms(tlli, tlli_old, imsi); - if (ms && strlen(ms->imsi()) == 0) { + if (ms && strlen(ms_imsi(ms)) == 0) { ms_old = bts->bts->ms_store().get_ms(0, 0, imsi); if (ms_old && ms_old != ms) { /* The TLLI has changed (RAU), so there are two MS * objects for the same MS */ LOGP(DTBF, LOGL_NOTICE, "There is a new MS object for the same MS: (0x%08x, '%s') -> (0x%08x, '%s')\n", - ms_old->tlli(), ms_old->imsi(), ms->tlli(), ms->imsi()); + ms_tlli(ms_old), ms_imsi(ms_old), ms_tlli(ms), ms_imsi(ms)); - GprsMs::Guard guard_old(ms_old); + ms_ref(ms_old); - if (!ms->dl_tbf() && ms_old->dl_tbf()) { + if (!ms_dl_tbf(ms) && ms_dl_tbf(ms_old)) { LOGP(DTBF, LOGL_NOTICE, "IMSI %s, old TBF %s: moving DL TBF to new MS object\n", - imsi, ms_old->dl_tbf()->name()); - dl_tbf = ms_old->dl_tbf(); + imsi, ms_dl_tbf(ms_old)->name()); + dl_tbf = ms_dl_tbf(ms_old); /* Move the DL TBF to the new MS */ dl_tbf->set_ms(ms); } - ms->merge_and_clear_ms(ms_old); + ms_merge_and_clear_ms(ms, ms_old); + + ms_unref(ms_old); } } if (!ms) ms = bts->bts->ms_alloc(ms_class, egprs_ms_class); - ms->set_imsi(imsi); - ms->confirm_tlli(tlli); - if (!ms->ms_class() && ms_class) { - ms->set_ms_class(ms_class); + ms_set_imsi(ms, imsi); + ms_confirm_tlli(ms, tlli); + if (!ms_ms_class(ms) && ms_class) { + ms_set_ms_class(ms, ms_class); } - if (!ms->egprs_ms_class() && egprs_ms_class) { - ms->set_egprs_ms_class(egprs_ms_class); + if (!ms_egprs_ms_class(ms) && egprs_ms_class) { + ms_set_egprs_ms_class(ms, egprs_ms_class); } - dl_tbf = ms->dl_tbf(); + dl_tbf = ms_dl_tbf(ms); if (!dl_tbf) { rc = tbf_new_dl_assignment(bts, ms, &dl_tbf); if (rc < 0) @@ -344,7 +346,7 @@ uint32_t octets = 0, frames = 0; struct timespec hyst_delta = {0, 0}; const unsigned keep_small_thresh = 60; - const gprs_llc_queue::MetaInfo *info; + const MetaInfo *info; if (bts_data()->llc_discard_csec) csecs_to_timespec(bts_data()->llc_discard_csec, &hyst_delta); @@ -358,9 +360,9 @@ gprs_bssgp_update_queue_delay(tv_recv, &tv_now); - if (ms() && ms()->codel_state()) { - int bytes = llc_queue()->octets(); - if (gprs_codel_control(ms()->codel_state(), + if (ms() && ms_codel_state(ms())) { + int bytes = llc_queue_octets(llc_queue()); + if (gprs_codel_control(ms_codel_state(ms()), tv_recv, &tv_now, bytes)) goto drop_frame; } @@ -402,7 +404,7 @@ LOGPTBFDL(this, LOGL_NOTICE, "Discarding LLC PDU " "because lifetime limit reached, " "count=%u new_queue_size=%zu\n", - frames, llc_queue_size()); + frames, llc_queue_size(llc_queue())); if (frames > 0xff) frames = 0xff; if (octets > 0xffffff) @@ -459,7 +461,7 @@ } else if (bsn < 0 && is_egprs_enabled() && req_mcs_kind == EGPRS_GMSK) { /* New data to be sent for EGPRS TBF but we are required to downgrade to * MCS1-4, because USF for GPRS-only MS will be sent */ - force_cs = m_ms->current_cs_dl(); + force_cs = ms_current_cs_dl(m_ms); if (force_cs > MCS4) { force_cs = bts->cs_dl_is_supported(MCS4) ? MCS4 : bts->cs_dl_is_supported(MCS3) ? MCS3 : @@ -467,7 +469,7 @@ MCS1; LOGPTBFDL(this, LOGL_DEBUG, "Force downgrading DL %s -> %s due to USF for GPRS-only MS\n", - mcs_name(m_ms->current_cs_dl()), mcs_name(force_cs)); + mcs_name(ms_current_cs_dl(m_ms)), mcs_name(force_cs)); } } @@ -483,14 +485,14 @@ if (is_egprs_enabled()) { /* Table 8.1.1.2 and Table 8.1.1.1 of 44.060 */ m_rlc.block(bsn)->cs_current_trans = get_retx_mcs(m_rlc.block(bsn)->cs_init, - ms()->current_cs_dl(), + ms_current_cs_dl(ms()), !bts->bts_data()->dl_arq_type); LOGPTBFDL(this, LOGL_DEBUG, "initial_cs_dl(%s) last_mcs(%s) demanded_mcs(%s) cs_trans(%s) arq_type(%d) bsn(%d)\n", mcs_name(m_rlc.block(bsn)->cs_init), mcs_name(m_rlc.block(bsn)->cs_last), - mcs_name(ms()->current_cs_dl()), + mcs_name(ms_current_cs_dl(ms())), mcs_name(m_rlc.block(bsn)->cs_current_trans), bts->bts_data()->dl_arq_type, bsn); @@ -635,7 +637,7 @@ { struct msgb *msg; - if (m_llc.frame_length() != 0) + if (llc_frame_length(&m_llc) != 0) return; /* dequeue next LLC frame, if any */ @@ -661,7 +663,7 @@ int write_offset = 0; Encoding::AppendResult ar; - if (m_llc.frame_length() == 0) + if (llc_frame_length(&m_llc) == 0) schedule_next_frame(); OSMO_ASSERT(mcs_is_valid(cs)); @@ -693,7 +695,7 @@ bool is_final; int payload_written = 0; - if (m_llc.frame_length() == 0) { + if (llc_frame_length(&m_llc) == 0) { /* It is not clear, when the next real data will * arrive, so request a DL ack/nack now */ request_dl_ack(); @@ -731,10 +733,10 @@ LOGPTBFDL(this, LOGL_DEBUG, "Empty chunk, added LLC dummy command of size %d, drained_since=%d\n", - m_llc.frame_length(), frames_since_last_drain(fn)); + llc_frame_length(&m_llc), frames_since_last_drain(fn)); } - is_final = llc_queue_size() == 0 && !keep_open(fn); + is_final = llc_queue_size(llc_queue()) == 0 && !keep_open(fn); ar = Encoding::rlc_data_to_dl_append(rdbi, cs, &m_llc, &write_offset, &num_chunks, data, is_final, &payload_written); @@ -745,9 +747,9 @@ if (ar == Encoding::AR_NEED_MORE_BLOCKS) break; - LOGPTBFDL(this, LOGL_DEBUG, "Complete DL frame, len=%d\n", m_llc.frame_length()); - gprs_rlcmac_dl_bw(this, m_llc.frame_length()); - bts->do_rate_ctr_add(CTR_LLC_DL_BYTES, m_llc.frame_length()); + LOGPTBFDL(this, LOGL_DEBUG, "Complete DL frame, len=%d\n", llc_frame_length(&m_llc)); + gprs_rlcmac_dl_bw(this, llc_frame_length(&m_llc)); + bts->do_rate_ctr_add(CTR_LLC_DL_BYTES, llc_frame_length(&m_llc)); m_llc.reset(); if (is_final) { @@ -1131,7 +1133,7 @@ error_rate = analyse_errors(show_rbb, behind_last_bsn, &ana_res); if (bts_data()->cs_adj_enabled && ms()) - ms()->update_error_rate(this, error_rate); + ms_update_error_rate(ms(), this, error_rate); m_window.update(bts, rbb, first_bsn, &lost, &received); rate_ctr_add(&m_ctrs->ctr[TBF_CTR_RLC_NACKED], lost); @@ -1186,7 +1188,7 @@ error_rate = analyse_errors(show_rbb, ssn, &ana_res); if (bts_data()->cs_adj_enabled && ms()) - ms()->update_error_rate(this, error_rate); + ms_update_error_rate(ms(), this, error_rate); m_window.update(bts, show_rbb, ssn, &lost, &received); @@ -1221,7 +1223,7 @@ release(); /* check for LLC PDU in the LLC Queue */ - if (llc_queue_size() > 0) + if (llc_queue_size(llc_queue()) > 0) /* we have more data so we will re-use this tbf */ establish_dl_tbf_on_pacch(); @@ -1331,8 +1333,8 @@ bool gprs_rlcmac_dl_tbf::have_data() const { - return m_llc.chunk_size() > 0 || - (llc_queue_size() > 0); + return llc_chunk_size(&m_llc) > 0 || + (llc_queue_size(llc_queue()) > 0); } static inline int frames_since_last(int32_t last, unsigned fn) @@ -1556,3 +1558,11 @@ mcs_name(cs)); } } + +struct gprs_rlcmac_dl_tbf *as_dl_tbf(struct gprs_rlcmac_tbf *tbf) +{ + if (tbf && tbf->direction == GPRS_RLCMAC_DL_TBF) + return static_cast(tbf); + else + return NULL; +} diff --git a/src/tbf_dl.h b/src/tbf_dl.h index ffb370c..3cd88c9 100644 --- a/src/tbf_dl.h +++ b/src/tbf_dl.h @@ -141,15 +141,17 @@ return m_window.ws(); } -inline gprs_rlcmac_dl_tbf *as_dl_tbf(gprs_rlcmac_tbf *tbf) -{ - if (tbf && tbf->direction == GPRS_RLCMAC_DL_TBF) - return static_cast(tbf); - else - return NULL; -} - struct gprs_rlcmac_dl_tbf *tbf_alloc_dl_tbf(struct gprs_rlcmac_bts *bts, GprsMs *ms, int8_t use_trx, bool single_slot); +#else /* ifdef __cplusplus */ +struct gprs_rlcmac_dl_tbf; +#endif + +#ifdef __cplusplus +extern "C" { +#endif +struct gprs_rlcmac_dl_tbf *as_dl_tbf(struct gprs_rlcmac_tbf *tbf); +#ifdef __cplusplus +} #endif diff --git a/src/tbf_ul.cpp b/src/tbf_ul.cpp index 80a8eaa..f8c860c 100644 --- a/src/tbf_ul.cpp +++ b/src/tbf_ul.cpp @@ -105,7 +105,7 @@ LOGP(DTBF, LOGL_DEBUG, "********** UL-TBF starts here **********\n"); LOGP(DTBF, LOGL_INFO, "Allocating UL TBF: MS_CLASS=%d/%d\n", - ms->ms_class(), ms->egprs_ms_class()); + ms_ms_class(ms), ms_egprs_ms_class(ms)); tbf = talloc(tall_pcu_ctx, struct gprs_rlcmac_ul_tbf); if (!tbf) @@ -172,7 +172,7 @@ if (!ms) ms = bts->bts->ms_alloc(0, 0); - ms->set_tlli(tlli); + ms_set_tlli(ms, tlli); ul_tbf = talloc(tall_pcu_ctx, struct gprs_rlcmac_ul_tbf); if (!ul_tbf) @@ -185,7 +185,7 @@ ul_tbf->bts->do_rate_ctr_inc(CTR_TBF_UL_ALLOCATED); TBF_SET_ASS_ON(ul_tbf, GPRS_RLCMAC_FLAG_PACCH, false); - ms->attach_tbf(ul_tbf); + ms_attach_tbf(ms, ul_tbf); ul_tbf->update_ms(tlli, GPRS_RLCMAC_UL_TBF); TBF_SET_ASS_STATE_UL(ul_tbf, GPRS_RLCMAC_UL_ASS_SEND_ASS_REJ); ul_tbf->control_ts = ts; @@ -252,14 +252,14 @@ frame->is_complete); m_llc.append_frame(data + frame->offset, frame->length); - m_llc.consume(frame->length); + llc_consume(&m_llc, frame->length); } if (frame->is_complete) { /* send frame to SGSN */ - LOGPTBFUL(this, LOGL_DEBUG, "complete UL frame len=%d\n", m_llc.frame_length()); + LOGPTBFUL(this, LOGL_DEBUG, "complete UL frame len=%d\n", llc_frame_length(&m_llc)); snd_ul_ud(); - bts->do_rate_ctr_add(CTR_LLC_UL_BYTES, m_llc.frame_length()); + bts->do_rate_ctr_add(CTR_LLC_UL_BYTES, llc_frame_length(&m_llc)); m_llc.reset(); } } @@ -357,7 +357,7 @@ /* store measurement values */ if (ms()) - ms()->update_l1_meas(meas); + ms_update_l1_meas(ms(), meas); uint32_t new_tlli = GSM_RESERVED_TMSI; unsigned int block_idx; @@ -559,10 +559,10 @@ { uint8_t qos_profile[3]; struct msgb *llc_pdu; - unsigned msg_len = NS_HDR_LEN + BSSGP_HDR_LEN + m_llc.frame_length(); + unsigned msg_len = NS_HDR_LEN + BSSGP_HDR_LEN + llc_frame_length(&m_llc); struct bssgp_bvc_ctx *bctx = gprs_bssgp_pcu_current_bctx(); - LOGP(DBSSGP, LOGL_INFO, "LLC [PCU -> SGSN] %s len=%d\n", tbf_name(this), m_llc.frame_length()); + LOGP(DBSSGP, LOGL_INFO, "LLC [PCU -> SGSN] %s len=%d\n", tbf_name(this), llc_frame_length(&m_llc)); if (!bctx) { LOGP(DBSSGP, LOGL_ERROR, "No bctx\n"); m_llc.reset_frame_space(); @@ -570,8 +570,8 @@ } llc_pdu = msgb_alloc_headroom(msg_len, msg_len,"llc_pdu"); - uint8_t *buf = msgb_push(llc_pdu, TL16V_GROSS_LEN(sizeof(uint8_t)*m_llc.frame_length())); - tl16v_put(buf, BSSGP_IE_LLC_PDU, sizeof(uint8_t)*m_llc.frame_length(), m_llc.frame); + uint8_t *buf = msgb_push(llc_pdu, TL16V_GROSS_LEN(sizeof(uint8_t)*llc_frame_length(&m_llc))); + tl16v_put(buf, BSSGP_IE_LLC_PDU, sizeof(uint8_t)*llc_frame_length(&m_llc), m_llc.frame); qos_profile[0] = QOS_PROFILE >> 16; qos_profile[1] = QOS_PROFILE >> 8; qos_profile[2] = QOS_PROFILE; @@ -772,3 +772,11 @@ { return &m_window; } + +struct gprs_rlcmac_ul_tbf *as_ul_tbf(struct gprs_rlcmac_tbf *tbf) +{ + if (tbf && tbf->direction == GPRS_RLCMAC_UL_TBF) + return static_cast(tbf); + else + return NULL; +} diff --git a/src/tbf_ul.h b/src/tbf_ul.h index 9ccdf62..1d9cf50 100644 --- a/src/tbf_ul.h +++ b/src/tbf_ul.h @@ -108,32 +108,28 @@ gprs_rlc_ul_window m_window; }; -#ifdef __cplusplus -extern "C" { -#endif -void update_tbf_ta(struct gprs_rlcmac_ul_tbf *tbf, int8_t ta_delta); -void set_tbf_ta(struct gprs_rlcmac_ul_tbf *tbf, uint8_t ta); -#ifdef __cplusplus -} -#endif - inline uint16_t gprs_rlcmac_ul_tbf::window_size() const { return m_window.ws(); } -inline gprs_rlcmac_ul_tbf *as_ul_tbf(gprs_rlcmac_tbf *tbf) -{ - if (tbf && tbf->direction == GPRS_RLCMAC_UL_TBF) - return static_cast(tbf); - else - return NULL; -} - struct gprs_rlcmac_ul_tbf *tbf_alloc_ul_tbf(struct gprs_rlcmac_bts *bts, GprsMs *ms, int8_t use_trx, bool single_slot); struct gprs_rlcmac_ul_tbf *tbf_alloc_ul(struct gprs_rlcmac_bts *bts, GprsMs *ms, int8_t use_trx, uint32_t tlli); struct gprs_rlcmac_ul_tbf *handle_tbf_reject(struct gprs_rlcmac_bts *bts, GprsMs *ms, uint32_t tlli, uint8_t trx_no, uint8_t ts_no); +#else /* ifdef __cplusplus */ +struct gprs_rlcmac_ul_tbf; +#endif + + +#ifdef __cplusplus +extern "C" { +#endif +void update_tbf_ta(struct gprs_rlcmac_ul_tbf *tbf, int8_t ta_delta); +void set_tbf_ta(struct gprs_rlcmac_ul_tbf *tbf, uint8_t ta); +struct gprs_rlcmac_ul_tbf *as_ul_tbf(struct gprs_rlcmac_tbf *tbf); +#ifdef __cplusplus +} #endif diff --git a/tests/alloc/AllocTest.cpp b/tests/alloc/AllocTest.cpp index 8ebf159..17cee46 100644 --- a/tests/alloc/AllocTest.cpp +++ b/tests/alloc/AllocTest.cpp @@ -224,12 +224,12 @@ return false; OSMO_ASSERT(ul_tbf->ms()); - OSMO_ASSERT(ul_tbf->ms()->current_trx()); + OSMO_ASSERT(ms_current_trx(ul_tbf->ms())); dump_assignment(ul_tbf, "UL", verbose); /* assume final ack has not been sent */ - dl_tbf = tbf_alloc_dl_tbf(bts, ms, ms->current_trx()->trx_no, false); + dl_tbf = tbf_alloc_dl_tbf(bts, ms, ms_current_trx(ms)->trx_no, false); if (!dl_tbf) return false; @@ -268,11 +268,11 @@ dl_tbf->update_ms(0x23, GPRS_RLCMAC_DL_TBF); OSMO_ASSERT(dl_tbf->ms() == ms); - OSMO_ASSERT(dl_tbf->ms()->current_trx()); + OSMO_ASSERT(ms_current_trx(dl_tbf->ms())); dump_assignment(dl_tbf, "DL", verbose); - ul_tbf = tbf_alloc_ul_tbf(bts, ms, ms->current_trx()->trx_no, false); + ul_tbf = tbf_alloc_ul_tbf(bts, ms, ms_current_trx(ms)->trx_no, false); if (!ul_tbf) return false; @@ -319,8 +319,8 @@ return false; OSMO_ASSERT(ul_tbf->ms() == ms); - OSMO_ASSERT(ul_tbf->ms()->current_trx()); - trx_no = ms->current_trx()->trx_no; + OSMO_ASSERT(ms_current_trx(ul_tbf->ms())); + trx_no = ms_current_trx(ms)->trx_no; dump_assignment(ul_tbf, "UL", true); /* assume final ack has not been sent */ @@ -453,50 +453,55 @@ } } -static GprsMs *alloc_tbfs(BTS *the_bts, GprsMs *ms, enum test_mode mode) +static GprsMs *alloc_tbfs(BTS *the_bts, struct GprsMs *old_ms, enum test_mode mode) { struct gprs_rlcmac_bts *bts; + struct GprsMs *ms, *new_ms; uint8_t trx_no = -1; - OSMO_ASSERT(ms != NULL); + OSMO_ASSERT(old_ms != NULL); bts = the_bts->bts_data(); gprs_rlcmac_tbf *tbf = NULL; - if (ms && ms->current_trx()) - trx_no = ms->current_trx()->trx_no; + if (ms_current_trx(old_ms)) + trx_no = ms_current_trx(old_ms)->trx_no; - GprsMs::Guard guard1(ms); + ms_ref(old_ms); /* Allocate what is needed first */ switch (mode) { case TEST_MODE_UL_ONLY: case TEST_MODE_DL_AFTER_UL: case TEST_MODE_UL_AND_DL: - if (ms->ul_tbf()) - tbf_free(ms->ul_tbf()); - tbf = tbf_alloc_ul_tbf(bts, ms, trx_no, false); - if (tbf == NULL) + if (ms_ul_tbf(old_ms)) + tbf_free(ms_ul_tbf(old_ms)); + tbf = tbf_alloc_ul_tbf(bts, old_ms, trx_no, false); + if (tbf == NULL) { + ms_unref(old_ms); return NULL; + } break; case TEST_MODE_DL_ONLY: case TEST_MODE_UL_AFTER_DL: case TEST_MODE_DL_AND_UL: - if (ms->dl_tbf()) - tbf_free(ms->dl_tbf()); - tbf = tbf_alloc_dl_tbf(bts, ms, trx_no, false); - if (tbf == NULL) + if (ms_dl_tbf(old_ms)) + tbf_free(ms_dl_tbf(old_ms)); + tbf = tbf_alloc_dl_tbf(bts, old_ms, trx_no, false); + if (tbf == NULL) { + ms_unref(old_ms); return NULL; + } } OSMO_ASSERT(tbf); OSMO_ASSERT(tbf->ms()); - OSMO_ASSERT(ms == NULL || ms == tbf->ms()); + OSMO_ASSERT(old_ms == tbf->ms()); ms = tbf->ms(); - GprsMs::Guard guard2(ms); - + ms_ref(ms); + new_ms = ms; /* Continue with what is needed next */ switch (mode) { case TEST_MODE_UL_ONLY: @@ -506,12 +511,12 @@ case TEST_MODE_DL_AFTER_UL: case TEST_MODE_UL_AND_DL: - ms = alloc_tbfs(the_bts, ms, TEST_MODE_DL_ONLY); + new_ms = alloc_tbfs(the_bts, ms, TEST_MODE_DL_ONLY); break; case TEST_MODE_UL_AFTER_DL: case TEST_MODE_DL_AND_UL: - ms = alloc_tbfs(the_bts, ms, TEST_MODE_UL_ONLY); + new_ms = alloc_tbfs(the_bts, ms, TEST_MODE_UL_ONLY); break; } @@ -527,10 +532,12 @@ break; } - if (!ms && tbf) + if (!new_ms && tbf) tbf_free(tbf); - return guard2.is_idle() ? NULL : ms; + ms_unref(old_ms); + ms_unref(ms); + return new_ms; } static unsigned alloc_many_tbfs(BTS *the_bts, unsigned min_class, @@ -556,16 +563,16 @@ ms = the_bts->ms_by_tlli(tlli); if (!ms) ms = the_bts->ms_alloc(0, 0); - ms->set_ms_class(ms_class); + ms_set_ms_class(ms, ms_class); ms = alloc_tbfs(the_bts, ms, mode); if (!ms) break; - ms->set_tlli(tlli); + ms_set_tlli(ms, tlli); - ul_tbf = ms->ul_tbf(); - dl_tbf = ms->dl_tbf(); - trx = ms->current_trx(); + ul_tbf = ms_ul_tbf(ms); + dl_tbf = ms_dl_tbf(ms); + trx = ms_current_trx(ms); OSMO_ASSERT(ul_tbf || dl_tbf); @@ -616,12 +623,12 @@ get_dir_char(0x80, ul_slots, dl_slots, busy_slots)); if (tfi >= 0) { - OSMO_ASSERT(ms->current_trx()); + OSMO_ASSERT(ms_current_trx(ms)); tfi2 = the_bts->tfi_find_free(dir, &trx_no2, - ms->current_trx()->trx_no); + ms_current_trx(ms)->trx_no); OSMO_ASSERT(tfi != tfi2); OSMO_ASSERT(tfi2 < 0 || - trx_no2 == ms->current_trx()->trx_no); + trx_no2 == ms_current_trx(ms)->trx_no); } ms_class += 1; diff --git a/tests/app_info/AppInfoTest.cpp b/tests/app_info/AppInfoTest.cpp index cd4454d..6e33538 100644 --- a/tests/app_info/AppInfoTest.cpp +++ b/tests/app_info/AppInfoTest.cpp @@ -152,9 +152,9 @@ { fprintf(stderr, "--- %s ---\n", __func__); + tbf_free(tbf1); + tbf_free(tbf2); BTS::main_bts()->cleanup(); - talloc_free(tbf1); - talloc_free(tbf2); /* FIXME: talloc report disabled, because bts->ms_alloc() in prepare_bts_with_two_dl_tbf_subscr() causes leak */ /* talloc_report_full(tall_pcu_ctx, stderr); */ talloc_free(tall_pcu_ctx); diff --git a/tests/app_info/AppInfoTest.err b/tests/app_info/AppInfoTest.err index ae20ea3..9b0910f 100644 --- a/tests/app_info/AppInfoTest.err +++ b/tests/app_info/AppInfoTest.err @@ -52,3 +52,14 @@ Sending Packet Application Information to 2 subscribers with active TBF --- cleanup --- +PDCH(TS 4, TRX 0): Detaching TBF(TFI=0 TLLI=0xffffffff DIR=DL STATE=RELEASING EGPRS), 1 TBFs, USFs = 00, TFIs = 00000002. +PDCH(TS 5, TRX 0): Detaching TBF(TFI=0 TLLI=0xffffffff DIR=DL STATE=RELEASING EGPRS), 1 TBFs, USFs = 00, TFIs = 00000002. +PDCH(TS 6, TRX 0): Detaching TBF(TFI=0 TLLI=0xffffffff DIR=DL STATE=RELEASING EGPRS), 1 TBFs, USFs = 00, TFIs = 00000002. +PDCH(TS 7, TRX 0): Detaching TBF(TFI=0 TLLI=0xffffffff DIR=DL STATE=RELEASING EGPRS), 0 TBFs, USFs = 00, TFIs = 00000000. +Detaching TBF from MS object, TLLI = 0xffffffff, TBF = TBF(TFI=0 TLLI=0xffffffff DIR=DL STATE=RELEASING EGPRS) +PDCH(TS 4, TRX 0): Detaching TBF(TFI=1 TLLI=0xffffffff DIR=DL STATE=RELEASING EGPRS), 0 TBFs, USFs = 00, TFIs = 00000000. +PDCH(TS 5, TRX 0): Detaching TBF(TFI=1 TLLI=0xffffffff DIR=DL STATE=RELEASING EGPRS), 0 TBFs, USFs = 00, TFIs = 00000000. +PDCH(TS 6, TRX 0): Detaching TBF(TFI=1 TLLI=0xffffffff DIR=DL STATE=RELEASING EGPRS), 0 TBFs, USFs = 00, TFIs = 00000000. +Detaching TBF from MS object, TLLI = 0xffffffff, TBF = TBF(TFI=1 TLLI=0xffffffff DIR=DL STATE=RELEASING EGPRS) +Destroying MS object, TLLI = 0xffffffff +Destroying MS object, TLLI = 0xffffffff diff --git a/tests/edge/EdgeTest.cpp b/tests/edge/EdgeTest.cpp index 67ed2a7..8fa76dd 100644 --- a/tests/edge/EdgeTest.cpp +++ b/tests/edge/EdgeTest.cpp @@ -619,7 +619,7 @@ write_offset = 0; memset(data, 0, sizeof(data)); - OSMO_ASSERT(llc.chunk_size() == 1); + OSMO_ASSERT(llc_chunk_size(&llc) == 1); count_payload = -1; @@ -767,7 +767,7 @@ write_offset = 0; memset(data, 0, sizeof(data)); - OSMO_ASSERT(llc.chunk_size() == 10); + OSMO_ASSERT(llc_chunk_size(&llc) == 10); count_payload = -1; ar = Encoding::rlc_data_to_dl_append(&rdbi, cs, @@ -899,7 +899,7 @@ write_offset = 0; memset(data, 0, sizeof(data)); - OSMO_ASSERT(llc.chunk_size() == 0); + OSMO_ASSERT(llc_chunk_size(&llc) == 0); count_payload = -1; ar = Encoding::rlc_data_to_dl_append(&rdbi, cs, @@ -1167,7 +1167,6 @@ uint8_t ts_no, uint32_t tlli, uint32_t *fn, uint16_t qta, uint8_t ms_class) { - struct pcu_l1_meas meas; int tfi = 0; uint8_t data[79] = {0}; struct gprs_rlc_ul_header_egprs_2 *egprs2 = NULL; diff --git a/tests/llc/LlcTest.cpp b/tests/llc/LlcTest.cpp index 10cd96b..bfcac77 100644 --- a/tests/llc/LlcTest.cpp +++ b/tests/llc/LlcTest.cpp @@ -60,10 +60,10 @@ } static void dequeue_and_check(gprs_llc_queue *queue, const uint8_t *exp_data, - size_t len, const gprs_llc_queue::MetaInfo *exp_info) + size_t len, const MetaInfo *exp_info) { struct msgb *llc_msg; - const gprs_llc_queue::MetaInfo *info_res; + const MetaInfo *info_res; llc_msg = queue->dequeue(&info_res); OSMO_ASSERT(llc_msg != NULL); @@ -88,7 +88,7 @@ } static void dequeue_and_check(gprs_llc_queue *queue, const char *exp_message, - const gprs_llc_queue::MetaInfo *exp_info = 0) + const MetaInfo *exp_info = 0) { dequeue_and_check(queue, (uint8_t *)(exp_message), strlen(exp_message), exp_info); @@ -101,33 +101,33 @@ printf("=== start %s ===\n", __func__); - queue.init(); - OSMO_ASSERT(queue.size() == 0); - OSMO_ASSERT(queue.octets() == 0); + llc_queue_init(&queue); + OSMO_ASSERT(llc_queue_size(&queue) == 0); + OSMO_ASSERT(llc_queue_octets(&queue) == 0); enqueue_data(&queue, "LLC message", &expire_time); - OSMO_ASSERT(queue.size() == 1); - OSMO_ASSERT(queue.octets() == 11); + OSMO_ASSERT(llc_queue_size(&queue) == 1); + OSMO_ASSERT(llc_queue_octets(&queue) == 11); enqueue_data(&queue, "other LLC message", &expire_time); - OSMO_ASSERT(queue.size() == 2); - OSMO_ASSERT(queue.octets() == 28); + OSMO_ASSERT(llc_queue_size(&queue) == 2); + OSMO_ASSERT(llc_queue_octets(&queue) == 28); dequeue_and_check(&queue, "LLC message"); - OSMO_ASSERT(queue.size() == 1); - OSMO_ASSERT(queue.octets() == 17); + OSMO_ASSERT(llc_queue_size(&queue) == 1); + OSMO_ASSERT(llc_queue_octets(&queue) == 17); dequeue_and_check(&queue, "other LLC message"); - OSMO_ASSERT(queue.size() == 0); - OSMO_ASSERT(queue.octets() == 0); + OSMO_ASSERT(llc_queue_size(&queue) == 0); + OSMO_ASSERT(llc_queue_octets(&queue) == 0); enqueue_data(&queue, "LLC", &expire_time); - OSMO_ASSERT(queue.size() == 1); - OSMO_ASSERT(queue.octets() == 3); + OSMO_ASSERT(llc_queue_size(&queue) == 1); + OSMO_ASSERT(llc_queue_octets(&queue) == 3); - queue.clear(NULL); - OSMO_ASSERT(queue.size() == 0); - OSMO_ASSERT(queue.octets() == 0); + llc_queue_clear(&queue, NULL); + OSMO_ASSERT(llc_queue_size(&queue) == 0); + OSMO_ASSERT(llc_queue_octets(&queue) == 0); printf("=== end %s ===\n", __func__); } @@ -135,14 +135,14 @@ static void test_llc_meta() { gprs_llc_queue queue; - gprs_llc_queue::MetaInfo info1 = {0}; - gprs_llc_queue::MetaInfo info2 = {0}; + MetaInfo info1 = {0}; + MetaInfo info2 = {0}; printf("=== start %s ===\n", __func__); - queue.init(); - OSMO_ASSERT(queue.size() == 0); - OSMO_ASSERT(queue.octets() == 0); + llc_queue_init(&queue); + OSMO_ASSERT(llc_queue_size(&queue) == 0); + OSMO_ASSERT(llc_queue_octets(&queue) == 0); info1.recv_time.tv_sec = 123456777; info1.recv_time.tv_nsec = 123456000; @@ -161,9 +161,9 @@ dequeue_and_check(&queue, "LLC message 1", &info1); dequeue_and_check(&queue, "LLC message 2", &info2); - queue.clear(NULL); - OSMO_ASSERT(queue.size() == 0); - OSMO_ASSERT(queue.octets() == 0); + llc_queue_clear(&queue, NULL); + OSMO_ASSERT(llc_queue_size(&queue) == 0); + OSMO_ASSERT(llc_queue_octets(&queue) == 0); printf("=== end %s ===\n", __func__); } @@ -176,8 +176,8 @@ printf("=== start %s ===\n", __func__); - queue1.init(); - queue2.init(); + llc_queue_init(&queue1); + llc_queue_init(&queue2); clk_mono_override_time->tv_sec += 1; enqueue_data(&queue1, "*A*", &expire_time); @@ -194,17 +194,17 @@ clk_mono_override_time->tv_sec += 1; enqueue_data(&queue2, "*E*", &expire_time); - OSMO_ASSERT(queue1.size() == 3); - OSMO_ASSERT(queue1.octets() == 9); - OSMO_ASSERT(queue2.size() == 2); - OSMO_ASSERT(queue2.octets() == 6); + OSMO_ASSERT(llc_queue_size(&queue1) == 3); + OSMO_ASSERT(llc_queue_octets(&queue1) == 9); + OSMO_ASSERT(llc_queue_size(&queue2) == 2); + OSMO_ASSERT(llc_queue_octets(&queue2) == 6); - queue2.move_and_merge(&queue1); + llc_queue_move_and_merge(&queue2, &queue1); - OSMO_ASSERT(queue1.size() == 0); - OSMO_ASSERT(queue1.octets() == 0); - OSMO_ASSERT(queue2.size() == 5); - OSMO_ASSERT(queue2.octets() == 15); + OSMO_ASSERT(llc_queue_size(&queue1) == 0); + OSMO_ASSERT(llc_queue_octets(&queue1) == 0); + OSMO_ASSERT(llc_queue_size(&queue2) == 5); + OSMO_ASSERT(llc_queue_octets(&queue2) == 15); dequeue_and_check(&queue2, "*A*"); dequeue_and_check(&queue2, "*B*"); @@ -212,8 +212,8 @@ dequeue_and_check(&queue2, "*D*"); dequeue_and_check(&queue2, "*E*"); - OSMO_ASSERT(queue2.size() == 0); - OSMO_ASSERT(queue2.octets() == 0); + OSMO_ASSERT(llc_queue_size(&queue2) == 0); + OSMO_ASSERT(llc_queue_octets(&queue2) == 0); printf("=== end %s ===\n", __func__); } diff --git a/tests/ms/MsTest.cpp b/tests/ms/MsTest.cpp index 4f47bc9..c164409 100644 --- a/tests/ms/MsTest.cpp +++ b/tests/ms/MsTest.cpp @@ -56,33 +56,33 @@ printf("=== start %s ===\n", __func__); - ms = new GprsMs(&the_bts, tlli); - OSMO_ASSERT(ms->is_idle()); + ms = ms_alloc(&the_bts, tlli); + OSMO_ASSERT(ms_is_idle(ms)); dl_tbf = talloc_zero(tall_pcu_ctx, struct gprs_rlcmac_dl_tbf); new (dl_tbf) gprs_rlcmac_dl_tbf(&the_bts, ms); ul_tbf = talloc_zero(tall_pcu_ctx, struct gprs_rlcmac_ul_tbf); new (ul_tbf) gprs_rlcmac_ul_tbf(&the_bts, ms); - ms->attach_tbf(ul_tbf); - OSMO_ASSERT(!ms->is_idle()); - OSMO_ASSERT(ms->ul_tbf() == ul_tbf); - OSMO_ASSERT(ms->dl_tbf() == NULL); + ms_attach_tbf(ms, ul_tbf); + OSMO_ASSERT(!ms_is_idle(ms)); + OSMO_ASSERT(ms_ul_tbf(ms) == ul_tbf); + OSMO_ASSERT(ms_dl_tbf(ms) == NULL); - ms->attach_tbf(dl_tbf); - OSMO_ASSERT(!ms->is_idle()); - OSMO_ASSERT(ms->ul_tbf() == ul_tbf); - OSMO_ASSERT(ms->dl_tbf() == dl_tbf); + ms_attach_tbf(ms, dl_tbf); + OSMO_ASSERT(!ms_is_idle(ms)); + OSMO_ASSERT(ms_ul_tbf(ms) == ul_tbf); + OSMO_ASSERT(ms_dl_tbf(ms) == dl_tbf); - OSMO_ASSERT(ms->tbf(GPRS_RLCMAC_UL_TBF) == ul_tbf); - OSMO_ASSERT(ms->tbf(GPRS_RLCMAC_DL_TBF) == dl_tbf); + OSMO_ASSERT(ms_tbf(ms, GPRS_RLCMAC_UL_TBF) == ul_tbf); + OSMO_ASSERT(ms_tbf(ms, GPRS_RLCMAC_DL_TBF) == dl_tbf); - ms->detach_tbf(ul_tbf); - OSMO_ASSERT(!ms->is_idle()); - OSMO_ASSERT(ms->ul_tbf() == NULL); - OSMO_ASSERT(ms->dl_tbf() == dl_tbf); + ms_detach_tbf(ms, ul_tbf); + OSMO_ASSERT(!ms_is_idle(ms)); + OSMO_ASSERT(ms_ul_tbf(ms) == NULL); + OSMO_ASSERT(ms_dl_tbf(ms) == dl_tbf); - ms->detach_tbf(dl_tbf); + ms_detach_tbf(ms, dl_tbf); /* The ms object is freed now */ ms = NULL; @@ -92,6 +92,23 @@ printf("=== end %s ===\n", __func__); } +static enum {CB_UNKNOWN, CB_IS_IDLE, CB_IS_ACTIVE} last_cb = CB_UNKNOWN; +static void ms_idle_cb(struct GprsMs *ms) +{ + OSMO_ASSERT(ms_is_idle(ms)); + printf(" ms_idle() was called\n"); + last_cb = CB_IS_IDLE; +} +static void ms_active_cb(struct GprsMs *ms) +{ + OSMO_ASSERT(!ms_is_idle(ms)); + printf(" ms_active() was called\n"); + last_cb = CB_IS_ACTIVE; +} +static struct gpr_ms_callback ms_cb = { + .ms_idle = ms_idle_cb, + .ms_active = ms_active_cb +}; static void test_ms_callback() { uint32_t tlli = 0xffeeddbb; @@ -99,63 +116,50 @@ gprs_rlcmac_ul_tbf *ul_tbf; BTS the_bts; GprsMs *ms; - static enum {UNKNOWN, IS_IDLE, IS_ACTIVE} last_cb = UNKNOWN; - - struct MyCallback: public GprsMs::Callback { - virtual void ms_idle(class GprsMs *ms) { - OSMO_ASSERT(ms->is_idle()); - printf(" ms_idle() was called\n"); - last_cb = IS_IDLE; - } - virtual void ms_active(class GprsMs *ms) { - OSMO_ASSERT(!ms->is_idle()); - printf(" ms_active() was called\n"); - last_cb = IS_ACTIVE; - } - } cb; + last_cb = CB_UNKNOWN; printf("=== start %s ===\n", __func__); - ms = new GprsMs(&the_bts, tlli); - ms->set_callback(&cb); + ms = ms_alloc(&the_bts, tlli); + ms_set_callback(ms, &ms_cb); - OSMO_ASSERT(ms->is_idle()); + OSMO_ASSERT(ms_is_idle(ms)); dl_tbf = talloc_zero(tall_pcu_ctx, struct gprs_rlcmac_dl_tbf); new (dl_tbf) gprs_rlcmac_dl_tbf(&the_bts, ms); ul_tbf = talloc_zero(tall_pcu_ctx, struct gprs_rlcmac_ul_tbf); new (ul_tbf) gprs_rlcmac_ul_tbf(&the_bts, ms); - OSMO_ASSERT(last_cb == UNKNOWN); + OSMO_ASSERT(last_cb == CB_UNKNOWN); - ms->attach_tbf(ul_tbf); - OSMO_ASSERT(!ms->is_idle()); - OSMO_ASSERT(ms->ul_tbf() == ul_tbf); - OSMO_ASSERT(ms->dl_tbf() == NULL); - OSMO_ASSERT(last_cb == IS_ACTIVE); + ms_attach_tbf(ms, ul_tbf); + OSMO_ASSERT(!ms_is_idle(ms)); + OSMO_ASSERT(ms_ul_tbf(ms) == ul_tbf); + OSMO_ASSERT(ms_dl_tbf(ms) == NULL); + OSMO_ASSERT(last_cb == CB_IS_ACTIVE); - last_cb = UNKNOWN; + last_cb = CB_UNKNOWN; - ms->attach_tbf(dl_tbf); - OSMO_ASSERT(!ms->is_idle()); - OSMO_ASSERT(ms->ul_tbf() == ul_tbf); - OSMO_ASSERT(ms->dl_tbf() == dl_tbf); - OSMO_ASSERT(last_cb == UNKNOWN); + ms_attach_tbf(ms, dl_tbf); + OSMO_ASSERT(!ms_is_idle(ms)); + OSMO_ASSERT(ms_ul_tbf(ms) == ul_tbf); + OSMO_ASSERT(ms_dl_tbf(ms) == dl_tbf); + OSMO_ASSERT(last_cb == CB_UNKNOWN); - ms->detach_tbf(ul_tbf); - OSMO_ASSERT(!ms->is_idle()); - OSMO_ASSERT(ms->ul_tbf() == NULL); - OSMO_ASSERT(ms->dl_tbf() == dl_tbf); - OSMO_ASSERT(last_cb == UNKNOWN); + ms_detach_tbf(ms, ul_tbf); + OSMO_ASSERT(!ms_is_idle(ms)); + OSMO_ASSERT(ms_ul_tbf(ms) == NULL); + OSMO_ASSERT(ms_dl_tbf(ms) == dl_tbf); + OSMO_ASSERT(last_cb == CB_UNKNOWN); - ms->detach_tbf(dl_tbf); - OSMO_ASSERT(ms->is_idle()); - OSMO_ASSERT(ms->ul_tbf() == NULL); - OSMO_ASSERT(ms->dl_tbf() == NULL); - OSMO_ASSERT(last_cb == IS_IDLE); + ms_detach_tbf(ms, dl_tbf); + OSMO_ASSERT(ms_is_idle(ms)); + OSMO_ASSERT(ms_ul_tbf(ms) == NULL); + OSMO_ASSERT(ms_dl_tbf(ms) == NULL); + OSMO_ASSERT(last_cb == CB_IS_IDLE); - last_cb = UNKNOWN; - delete ms; + last_cb = CB_UNKNOWN; + talloc_free(ms); talloc_free(dl_tbf); talloc_free(ul_tbf); @@ -163,6 +167,22 @@ printf("=== end %s ===\n", __func__); } +static bool was_idle; +static void ms_replace_tbf_idle_cb(struct GprsMs *ms) +{ + OSMO_ASSERT(ms_is_idle(ms)); + printf(" ms_idle() was called\n"); + was_idle = true; +} +static void ms_replace_tbf_active_cb(struct GprsMs *ms) +{ + OSMO_ASSERT(!ms_is_idle(ms)); + printf(" ms_active() was called\n"); +} +static struct gpr_ms_callback ms_replace_tbf_cb = { + .ms_idle = ms_replace_tbf_idle_cb, + .ms_active = ms_replace_tbf_active_cb +}; static void test_ms_replace_tbf() { uint32_t tlli = 0xffeeddbb; @@ -170,26 +190,13 @@ gprs_rlcmac_ul_tbf *ul_tbf; BTS the_bts; GprsMs *ms; - static bool was_idle; - - struct MyCallback: public GprsMs::Callback { - virtual void ms_idle(class GprsMs *ms) { - OSMO_ASSERT(ms->is_idle()); - printf(" ms_idle() was called\n"); - was_idle = true; - } - virtual void ms_active(class GprsMs *ms) { - OSMO_ASSERT(!ms->is_idle()); - printf(" ms_active() was called\n"); - } - } cb; printf("=== start %s ===\n", __func__); - ms = new GprsMs(&the_bts, tlli); - ms->set_callback(&cb); + ms = ms_alloc(&the_bts, tlli); + ms_set_callback(ms, &ms_replace_tbf_cb); - OSMO_ASSERT(ms->is_idle()); + OSMO_ASSERT(ms_is_idle(ms)); was_idle = false; dl_tbf[0] = talloc_zero(tall_pcu_ctx, struct gprs_rlcmac_dl_tbf); @@ -199,49 +206,49 @@ ul_tbf = talloc_zero(tall_pcu_ctx, struct gprs_rlcmac_ul_tbf); new (ul_tbf) gprs_rlcmac_ul_tbf(&the_bts, ms); - ms->attach_tbf(dl_tbf[0]); - OSMO_ASSERT(!ms->is_idle()); - OSMO_ASSERT(ms->ul_tbf() == NULL); - OSMO_ASSERT(ms->dl_tbf() == dl_tbf[0]); - OSMO_ASSERT(llist_empty(&ms->old_tbfs())); + ms_attach_tbf(ms, dl_tbf[0]); + OSMO_ASSERT(!ms_is_idle(ms)); + OSMO_ASSERT(ms_ul_tbf(ms) == NULL); + OSMO_ASSERT(ms_dl_tbf(ms) == dl_tbf[0]); + OSMO_ASSERT(llist_empty(&ms->old_tbfs)); OSMO_ASSERT(!was_idle); - ms->attach_tbf(dl_tbf[1]); - OSMO_ASSERT(!ms->is_idle()); - OSMO_ASSERT(ms->ul_tbf() == NULL); - OSMO_ASSERT(ms->dl_tbf() == dl_tbf[1]); - OSMO_ASSERT(!llist_empty(&ms->old_tbfs())); + ms_attach_tbf(ms, dl_tbf[1]); + OSMO_ASSERT(!ms_is_idle(ms)); + OSMO_ASSERT(ms_ul_tbf(ms) == NULL); + OSMO_ASSERT(ms_dl_tbf(ms) == dl_tbf[1]); + OSMO_ASSERT(!llist_empty(&ms->old_tbfs)); OSMO_ASSERT(!was_idle); - ms->attach_tbf(ul_tbf); - OSMO_ASSERT(!ms->is_idle()); - OSMO_ASSERT(ms->ul_tbf() == ul_tbf); - OSMO_ASSERT(ms->dl_tbf() == dl_tbf[1]); - OSMO_ASSERT(!llist_empty(&ms->old_tbfs())); + ms_attach_tbf(ms, ul_tbf); + OSMO_ASSERT(!ms_is_idle(ms)); + OSMO_ASSERT(ms_ul_tbf(ms) == ul_tbf); + OSMO_ASSERT(ms_dl_tbf(ms) == dl_tbf[1]); + OSMO_ASSERT(!llist_empty(&ms->old_tbfs)); OSMO_ASSERT(!was_idle); - ms->detach_tbf(ul_tbf); - OSMO_ASSERT(!ms->is_idle()); - OSMO_ASSERT(ms->ul_tbf() == NULL); - OSMO_ASSERT(ms->dl_tbf() == dl_tbf[1]); - OSMO_ASSERT(!llist_empty(&ms->old_tbfs())); + ms_detach_tbf(ms, ul_tbf); + OSMO_ASSERT(!ms_is_idle(ms)); + OSMO_ASSERT(ms_ul_tbf(ms) == NULL); + OSMO_ASSERT(ms_dl_tbf(ms) == dl_tbf[1]); + OSMO_ASSERT(!llist_empty(&ms->old_tbfs)); OSMO_ASSERT(!was_idle); - ms->detach_tbf(dl_tbf[0]); - OSMO_ASSERT(!ms->is_idle()); - OSMO_ASSERT(ms->ul_tbf() == NULL); - OSMO_ASSERT(ms->dl_tbf() == dl_tbf[1]); - OSMO_ASSERT(llist_empty(&ms->old_tbfs())); + ms_detach_tbf(ms, dl_tbf[0]); + OSMO_ASSERT(!ms_is_idle(ms)); + OSMO_ASSERT(ms_ul_tbf(ms) == NULL); + OSMO_ASSERT(ms_dl_tbf(ms) == dl_tbf[1]); + OSMO_ASSERT(llist_empty(&ms->old_tbfs)); OSMO_ASSERT(!was_idle); - ms->detach_tbf(dl_tbf[1]); - OSMO_ASSERT(ms->is_idle()); - OSMO_ASSERT(ms->ul_tbf() == NULL); - OSMO_ASSERT(ms->dl_tbf() == NULL); - OSMO_ASSERT(llist_empty(&ms->old_tbfs())); + ms_detach_tbf(ms, dl_tbf[1]); + OSMO_ASSERT(ms_is_idle(ms)); + OSMO_ASSERT(ms_ul_tbf(ms) == NULL); + OSMO_ASSERT(ms_dl_tbf(ms) == NULL); + OSMO_ASSERT(llist_empty(&ms->old_tbfs)); OSMO_ASSERT(was_idle); - delete ms; + talloc_free(ms); talloc_free(dl_tbf[0]); talloc_free(dl_tbf[1]); @@ -260,86 +267,86 @@ printf("=== start %s ===\n", __func__); - ms = new GprsMs(&the_bts, start_tlli); + ms = ms_alloc(&the_bts, start_tlli); - OSMO_ASSERT(ms->is_idle()); + OSMO_ASSERT(ms_is_idle(ms)); /* MS announces TLLI, SGSN uses it immediately */ - ms->set_tlli(new_ms_tlli); - OSMO_ASSERT(ms->tlli() == new_ms_tlli); - OSMO_ASSERT(ms->check_tlli(new_ms_tlli)); - OSMO_ASSERT(ms->check_tlli(start_tlli)); + ms_set_tlli(ms, new_ms_tlli); + OSMO_ASSERT(ms_tlli(ms) == new_ms_tlli); + OSMO_ASSERT(ms_check_tlli(ms, new_ms_tlli)); + OSMO_ASSERT(ms_check_tlli(ms, start_tlli)); - ms->confirm_tlli(new_ms_tlli); - OSMO_ASSERT(ms->tlli() == new_ms_tlli); - OSMO_ASSERT(ms->check_tlli(new_ms_tlli)); - OSMO_ASSERT(!ms->check_tlli(start_tlli)); + ms_confirm_tlli(ms, new_ms_tlli); + OSMO_ASSERT(ms_tlli(ms) == new_ms_tlli); + OSMO_ASSERT(ms_check_tlli(ms, new_ms_tlli)); + OSMO_ASSERT(!ms_check_tlli(ms, start_tlli)); /* MS announces TLLI, SGSN uses it later */ - ms->set_tlli(start_tlli); - ms->confirm_tlli(start_tlli); + ms_set_tlli(ms, start_tlli); + ms_confirm_tlli(ms, start_tlli); - ms->set_tlli(new_ms_tlli); - OSMO_ASSERT(ms->tlli() == new_ms_tlli); - OSMO_ASSERT(ms->check_tlli(new_ms_tlli)); - OSMO_ASSERT(ms->check_tlli(start_tlli)); + ms_set_tlli(ms, new_ms_tlli); + OSMO_ASSERT(ms_tlli(ms) == new_ms_tlli); + OSMO_ASSERT(ms_check_tlli(ms, new_ms_tlli)); + OSMO_ASSERT(ms_check_tlli(ms, start_tlli)); - ms->confirm_tlli(start_tlli); - OSMO_ASSERT(ms->tlli() == new_ms_tlli); - OSMO_ASSERT(ms->check_tlli(new_ms_tlli)); - OSMO_ASSERT(ms->check_tlli(start_tlli)); + ms_confirm_tlli(ms, start_tlli); + OSMO_ASSERT(ms_tlli(ms) == new_ms_tlli); + OSMO_ASSERT(ms_check_tlli(ms, new_ms_tlli)); + OSMO_ASSERT(ms_check_tlli(ms, start_tlli)); - ms->set_tlli(new_ms_tlli); - OSMO_ASSERT(ms->tlli() == new_ms_tlli); - OSMO_ASSERT(ms->check_tlli(new_ms_tlli)); - OSMO_ASSERT(ms->check_tlli(start_tlli)); + ms_set_tlli(ms, new_ms_tlli); + OSMO_ASSERT(ms_tlli(ms) == new_ms_tlli); + OSMO_ASSERT(ms_check_tlli(ms, new_ms_tlli)); + OSMO_ASSERT(ms_check_tlli(ms, start_tlli)); - ms->confirm_tlli(new_ms_tlli); - OSMO_ASSERT(ms->tlli() == new_ms_tlli); - OSMO_ASSERT(ms->check_tlli(new_ms_tlli)); - OSMO_ASSERT(!ms->check_tlli(start_tlli)); + ms_confirm_tlli(ms, new_ms_tlli); + OSMO_ASSERT(ms_tlli(ms) == new_ms_tlli); + OSMO_ASSERT(ms_check_tlli(ms, new_ms_tlli)); + OSMO_ASSERT(!ms_check_tlli(ms, start_tlli)); /* MS announces TLLI, SGSN uses it later after another new TLLI */ - ms->set_tlli(start_tlli); - ms->confirm_tlli(start_tlli); + ms_set_tlli(ms, start_tlli); + ms_confirm_tlli(ms, start_tlli); - ms->set_tlli(new_ms_tlli); - OSMO_ASSERT(ms->tlli() == new_ms_tlli); - OSMO_ASSERT(ms->check_tlli(new_ms_tlli)); - OSMO_ASSERT(ms->check_tlli(start_tlli)); + ms_set_tlli(ms, new_ms_tlli); + OSMO_ASSERT(ms_tlli(ms) == new_ms_tlli); + OSMO_ASSERT(ms_check_tlli(ms, new_ms_tlli)); + OSMO_ASSERT(ms_check_tlli(ms, start_tlli)); - ms->confirm_tlli(other_sgsn_tlli); - OSMO_ASSERT(ms->tlli() == new_ms_tlli); - OSMO_ASSERT(ms->check_tlli(new_ms_tlli)); - OSMO_ASSERT(ms->check_tlli(other_sgsn_tlli)); + ms_confirm_tlli(ms, other_sgsn_tlli); + OSMO_ASSERT(ms_tlli(ms) == new_ms_tlli); + OSMO_ASSERT(ms_check_tlli(ms, new_ms_tlli)); + OSMO_ASSERT(ms_check_tlli(ms, other_sgsn_tlli)); - ms->set_tlli(new_ms_tlli); - OSMO_ASSERT(ms->tlli() == new_ms_tlli); - OSMO_ASSERT(ms->check_tlli(new_ms_tlli)); - OSMO_ASSERT(ms->check_tlli(other_sgsn_tlli)); + ms_set_tlli(ms, new_ms_tlli); + OSMO_ASSERT(ms_tlli(ms) == new_ms_tlli); + OSMO_ASSERT(ms_check_tlli(ms, new_ms_tlli)); + OSMO_ASSERT(ms_check_tlli(ms, other_sgsn_tlli)); - ms->confirm_tlli(new_ms_tlli); - OSMO_ASSERT(ms->tlli() == new_ms_tlli); - OSMO_ASSERT(ms->check_tlli(new_ms_tlli)); - OSMO_ASSERT(!ms->check_tlli(start_tlli)); - OSMO_ASSERT(!ms->check_tlli(other_sgsn_tlli)); + ms_confirm_tlli(ms, new_ms_tlli); + OSMO_ASSERT(ms_tlli(ms) == new_ms_tlli); + OSMO_ASSERT(ms_check_tlli(ms, new_ms_tlli)); + OSMO_ASSERT(!ms_check_tlli(ms, start_tlli)); + OSMO_ASSERT(!ms_check_tlli(ms, other_sgsn_tlli)); /* SGSN uses the new TLLI before it is announced by the MS (shouldn't * happen in normal use) */ - ms->set_tlli(start_tlli); - ms->confirm_tlli(start_tlli); + ms_set_tlli(ms, start_tlli); + ms_confirm_tlli(ms, start_tlli); - ms->confirm_tlli(new_ms_tlli); - OSMO_ASSERT(ms->tlli() == start_tlli); - OSMO_ASSERT(ms->check_tlli(new_ms_tlli)); - OSMO_ASSERT(ms->check_tlli(start_tlli)); + ms_confirm_tlli(ms, new_ms_tlli); + OSMO_ASSERT(ms_tlli(ms) == start_tlli); + OSMO_ASSERT(ms_check_tlli(ms, new_ms_tlli)); + OSMO_ASSERT(ms_check_tlli(ms, start_tlli)); - ms->set_tlli(new_ms_tlli); - OSMO_ASSERT(ms->tlli() == new_ms_tlli); - OSMO_ASSERT(ms->check_tlli(new_ms_tlli)); - OSMO_ASSERT(!ms->check_tlli(start_tlli)); + ms_set_tlli(ms, new_ms_tlli); + OSMO_ASSERT(ms_tlli(ms) == new_ms_tlli); + OSMO_ASSERT(ms_check_tlli(ms, new_ms_tlli)); + OSMO_ASSERT(!ms_check_tlli(ms, start_tlli)); - delete ms; + talloc_free(ms); printf("=== end %s ===\n", __func__); } @@ -353,9 +360,9 @@ ms = st->create_ms(); if (dir == GPRS_RLCMAC_UL_TBF) - ms->set_tlli(tlli); + ms_set_tlli(ms, tlli); else - ms->confirm_tlli(tlli); + ms_confirm_tlli(ms, tlli); return ms; } @@ -378,44 +385,44 @@ ms = prepare_ms(&store, tlli + 0, GPRS_RLCMAC_UL_TBF); OSMO_ASSERT(ms != NULL); - OSMO_ASSERT(ms->tlli() == tlli + 0); - ms->set_imsi(imsi1); - OSMO_ASSERT(strcmp(ms->imsi(), imsi1) == 0); + OSMO_ASSERT(ms_tlli(ms) == tlli + 0); + ms_set_imsi(ms, imsi1); + OSMO_ASSERT(strcmp(ms_imsi(ms), imsi1) == 0); ms_tmp = store.get_ms(tlli + 0); OSMO_ASSERT(ms == ms_tmp); - OSMO_ASSERT(ms->tlli() == tlli + 0); + OSMO_ASSERT(ms_tlli(ms) == tlli + 0); ms_tmp = store.get_ms(0, 0, imsi1); OSMO_ASSERT(ms == ms_tmp); - OSMO_ASSERT(strcmp(ms->imsi(), imsi1) == 0); + OSMO_ASSERT(strcmp(ms_imsi(ms), imsi1) == 0); ms_tmp = store.get_ms(0, 0, imsi2); OSMO_ASSERT(ms_tmp == NULL); ms = prepare_ms(&store, tlli + 1, GPRS_RLCMAC_UL_TBF); OSMO_ASSERT(ms != NULL); - OSMO_ASSERT(ms->tlli() == tlli + 1); - ms->set_imsi(imsi2); - OSMO_ASSERT(strcmp(ms->imsi(), imsi2) == 0); + OSMO_ASSERT(ms_tlli(ms) == tlli + 1); + ms_set_imsi(ms, imsi2); + OSMO_ASSERT(strcmp(ms_imsi(ms), imsi2) == 0); ms_tmp = store.get_ms(tlli + 1); OSMO_ASSERT(ms == ms_tmp); - OSMO_ASSERT(ms->tlli() == tlli + 1); + OSMO_ASSERT(ms_tlli(ms) == tlli + 1); ms_tmp = store.get_ms(0, 0, imsi1); OSMO_ASSERT(ms_tmp != NULL); OSMO_ASSERT(ms_tmp != ms); ms_tmp = store.get_ms(0, 0, imsi2); OSMO_ASSERT(ms == ms_tmp); - OSMO_ASSERT(strcmp(ms->imsi(), imsi2) == 0); + OSMO_ASSERT(strcmp(ms_imsi(ms), imsi2) == 0); /* delete ms */ ms = store.get_ms(tlli + 0); OSMO_ASSERT(ms != NULL); ul_tbf = talloc_zero(tall_pcu_ctx, struct gprs_rlcmac_ul_tbf); new (ul_tbf) gprs_rlcmac_ul_tbf(&the_bts, ms); - ms->attach_tbf(ul_tbf); - ms->detach_tbf(ul_tbf); + ms_attach_tbf(ms, ul_tbf); + ms_detach_tbf(ms, ul_tbf); ms = store.get_ms(tlli + 0); OSMO_ASSERT(ms == NULL); ms = store.get_ms(tlli + 1); @@ -424,8 +431,8 @@ /* delete ms */ ms = store.get_ms(tlli + 1); OSMO_ASSERT(ms != NULL); - ms->attach_tbf(ul_tbf); - ms->detach_tbf(ul_tbf); + ms_attach_tbf(ms, ul_tbf); + ms_detach_tbf(ms, ul_tbf); ms = store.get_ms(tlli + 1); OSMO_ASSERT(ms == NULL); @@ -441,62 +448,49 @@ gprs_rlcmac_ul_tbf *ul_tbf; BTS the_bts; GprsMs *ms; - static enum {UNKNOWN, IS_IDLE, IS_ACTIVE} last_cb = UNKNOWN; - - struct MyCallback: public GprsMs::Callback { - virtual void ms_idle(class GprsMs *ms) { - OSMO_ASSERT(ms->is_idle()); - printf(" ms_idle() was called\n"); - last_cb = IS_IDLE; - } - virtual void ms_active(class GprsMs *ms) { - OSMO_ASSERT(!ms->is_idle()); - printf(" ms_active() was called\n"); - last_cb = IS_ACTIVE; - } - } cb; + last_cb = CB_UNKNOWN; printf("=== start %s ===\n", __func__); - ms = new GprsMs(&the_bts, tlli); - ms->set_callback(&cb); - ms->set_timeout(1); + ms = ms_alloc(&the_bts, tlli); + ms_set_callback(ms, &ms_cb); + ms_set_timeout(ms, 1); - OSMO_ASSERT(ms->is_idle()); + OSMO_ASSERT(ms_is_idle(ms)); dl_tbf = talloc_zero(tall_pcu_ctx, struct gprs_rlcmac_dl_tbf); new (dl_tbf) gprs_rlcmac_dl_tbf(&the_bts, ms); ul_tbf = talloc_zero(tall_pcu_ctx, struct gprs_rlcmac_ul_tbf); new (ul_tbf) gprs_rlcmac_ul_tbf(&the_bts, ms); - OSMO_ASSERT(last_cb == UNKNOWN); + OSMO_ASSERT(last_cb == CB_UNKNOWN); - ms->attach_tbf(ul_tbf); - OSMO_ASSERT(!ms->is_idle()); - OSMO_ASSERT(last_cb == IS_ACTIVE); + ms_attach_tbf(ms, ul_tbf); + OSMO_ASSERT(!ms_is_idle(ms)); + OSMO_ASSERT(last_cb == CB_IS_ACTIVE); - last_cb = UNKNOWN; + last_cb = CB_UNKNOWN; - ms->attach_tbf(dl_tbf); - OSMO_ASSERT(!ms->is_idle()); - OSMO_ASSERT(last_cb == UNKNOWN); + ms_attach_tbf(ms, dl_tbf); + OSMO_ASSERT(!ms_is_idle(ms)); + OSMO_ASSERT(last_cb == CB_UNKNOWN); - ms->detach_tbf(ul_tbf); - OSMO_ASSERT(!ms->is_idle()); - OSMO_ASSERT(last_cb == UNKNOWN); + ms_detach_tbf(ms, ul_tbf); + OSMO_ASSERT(!ms_is_idle(ms)); + OSMO_ASSERT(last_cb == CB_UNKNOWN); - ms->detach_tbf(dl_tbf); - OSMO_ASSERT(!ms->is_idle()); - OSMO_ASSERT(last_cb == UNKNOWN); + ms_detach_tbf(ms, dl_tbf); + OSMO_ASSERT(!ms_is_idle(ms)); + OSMO_ASSERT(last_cb == CB_UNKNOWN); usleep(1100000); osmo_timers_update(); - OSMO_ASSERT(ms->is_idle()); - OSMO_ASSERT(last_cb == IS_IDLE); + OSMO_ASSERT(ms_is_idle(ms)); + OSMO_ASSERT(last_cb == CB_IS_IDLE); - last_cb = UNKNOWN; - delete ms; + last_cb = CB_UNKNOWN; + talloc_free(ms); talloc_free(dl_tbf); talloc_free(ul_tbf); @@ -519,21 +513,21 @@ bts->cs_downgrade_threshold = 0; bts->cs_adj_lower_limit = 0; - ms = new GprsMs(&the_bts, tlli); + ms = ms_alloc(&the_bts, tlli); - OSMO_ASSERT(ms->is_idle()); + OSMO_ASSERT(ms_is_idle(ms)); dl_tbf = talloc_zero(tall_pcu_ctx, struct gprs_rlcmac_dl_tbf); new (dl_tbf) gprs_rlcmac_dl_tbf(&the_bts, ms); - ms->attach_tbf(dl_tbf); + ms_attach_tbf(ms, dl_tbf); - OSMO_ASSERT(!ms->is_idle()); + OSMO_ASSERT(!ms_is_idle(ms)); - OSMO_ASSERT(mcs_chan_code(ms->current_cs_dl()) == 3); + OSMO_ASSERT(mcs_chan_code(ms_current_cs_dl(ms)) == 3); bts->cs_downgrade_threshold = 200; - OSMO_ASSERT(mcs_chan_code(ms->current_cs_dl()) == 2); + OSMO_ASSERT(mcs_chan_code(ms_current_cs_dl(ms)) == 2); talloc_free(dl_tbf); @@ -543,10 +537,10 @@ static void dump_ms(const GprsMs *ms, const char *pref) { printf("%s MS DL %s/%s, UL %s/%s, mode %s, <%s>\n", pref, - mcs_name(ms->current_cs_dl()), mcs_name(ms->max_cs_dl()), - mcs_name(ms->current_cs_ul()), mcs_name(ms->max_cs_ul()), - mode_name(ms->mode()), - ms->is_idle() ? "IDLE" : "ACTIVE"); + mcs_name(ms_current_cs_dl(ms)), mcs_name(ms_max_cs_dl(ms)), + mcs_name(ms_current_cs_ul(ms)), mcs_name(ms_max_cs_ul(ms)), + mode_name(ms_mode(ms)), + ms_is_idle(ms) ? "IDLE" : "ACTIVE"); } static void test_ms_mcs_mode() @@ -560,48 +554,48 @@ printf("=== start %s ===\n", __func__); - ms1 = new GprsMs(&the_bts, tlli); + ms1 = ms_alloc(&the_bts, tlli); dump_ms(ms1, "1: no BTS defaults "); bts->initial_cs_dl = 4; bts->initial_cs_ul = 1; bts->cs_downgrade_threshold = 0; - ms2 = new GprsMs(&the_bts, tlli + 1); + ms2 = ms_alloc(&the_bts, tlli + 1); dump_ms(ms2, "2: with BTS defaults"); dl_tbf = talloc_zero(tall_pcu_ctx, struct gprs_rlcmac_dl_tbf); new (dl_tbf) gprs_rlcmac_dl_tbf(&the_bts, ms2); - ms2->attach_tbf(dl_tbf); + ms_attach_tbf(ms2, dl_tbf); dump_ms(ms2, "2: after TBF attach "); - ms1->set_mode(EGPRS); + ms_set_mode(ms1, EGPRS); dump_ms(ms1, "1: after mode set "); - ms2->set_mode(EGPRS); + ms_set_mode(ms2, EGPRS); dump_ms(ms2, "2: after mode set "); - ms1->set_current_cs_dl(MCS7); + ms_set_current_cs_dl(ms1, MCS7); dump_ms(ms1, "1: after MCS set "); - ms2->set_current_cs_dl(MCS8); + ms_set_current_cs_dl(ms2, MCS8); dump_ms(ms2, "2: after MCS set "); - ms1->set_mode(EGPRS_GMSK); + ms_set_mode(ms1, EGPRS_GMSK); dump_ms(ms1, "1: after mode set "); - ms2->set_mode(EGPRS_GMSK); + ms_set_mode(ms2, EGPRS_GMSK); dump_ms(ms2, "2: after mode set "); // FIXME: following code triggers ASAN failure: // ms2->detach_tbf(dl_tbf); // dump_ms(ms2, "2: after TBF detach "); - ms1->set_mode(GPRS); + ms_set_mode(ms1, GPRS); dump_ms(ms1, "1: after mode set "); - ms2->set_mode(GPRS); + ms_set_mode(ms2, GPRS); dump_ms(ms2, "2: after mode set "); talloc_free(dl_tbf); diff --git a/tests/tbf/TbfTest.cpp b/tests/tbf/TbfTest.cpp index 1a1dc6f..e6041a3 100644 --- a/tests/tbf/TbfTest.cpp +++ b/tests/tbf/TbfTest.cpp @@ -109,14 +109,14 @@ OSMO_ASSERT(dl_tbf != NULL); dl_tbf->update_ms(0x2342, GPRS_RLCMAC_DL_TBF); dl_tbf->set_ta(4); - OSMO_ASSERT(ms->dl_tbf() == dl_tbf); + OSMO_ASSERT(ms_dl_tbf(ms) == dl_tbf); OSMO_ASSERT(dl_tbf->ms() == ms); gprs_rlcmac_tbf *ul_tbf = tbf_alloc_ul_tbf(the_bts.bts_data(), ms, 0, false); OSMO_ASSERT(ul_tbf != NULL); ul_tbf->update_ms(0x2342, GPRS_RLCMAC_UL_TBF); - OSMO_ASSERT(ms->ul_tbf() == ul_tbf); + OSMO_ASSERT(ms_ul_tbf(ms) == ul_tbf); OSMO_ASSERT(ul_tbf->ms() == ms); OSMO_ASSERT(the_bts.ms_by_tlli(0x2342) == ms); @@ -133,8 +133,8 @@ ms_new = the_bts.ms_by_tlli(0x4232); OSMO_ASSERT(ms == ms_new); - OSMO_ASSERT(ms->dl_tbf() == dl_tbf); - OSMO_ASSERT(ms->ul_tbf() == ul_tbf); + OSMO_ASSERT(ms_dl_tbf(ms) == dl_tbf); + OSMO_ASSERT(ms_ul_tbf(ms) == ul_tbf); /* Now use the new TLLI for UL */ ul_tbf->update_ms(0x4232, GPRS_RLCMAC_UL_TBF); @@ -143,7 +143,7 @@ ms_new = the_bts.ms_by_tlli(0x4232); OSMO_ASSERT(ms_new != NULL); - OSMO_ASSERT(ms_new->ta() == 4); + OSMO_ASSERT(ms_ta(ms_new) == 4); OSMO_ASSERT(ul_tbf->ta() == 4); OSMO_ASSERT(dl_tbf->ta() == 4); @@ -298,25 +298,27 @@ /* Clean up and ensure tbfs are in the correct state */ OSMO_ASSERT(dl_tbf->state_is(GPRS_RLCMAC_WAIT_RELEASE)); - new_tbf = ms->dl_tbf(); + new_tbf = ms_dl_tbf(ms); check_tbf(new_tbf); OSMO_ASSERT(new_tbf != dl_tbf); OSMO_ASSERT(new_tbf->tfi() == 1); check_tbf(dl_tbf); TBF_SET_ASS_STATE_DL(dl_tbf, GPRS_RLCMAC_DL_ASS_NONE); if (test_mode == TEST_MODE_REVERSE_FREE) { - GprsMs::Guard guard(ms); + ms_ref(ms); tbf_free(new_tbf); - OSMO_ASSERT(ms->dl_tbf() == NULL); + OSMO_ASSERT(ms_dl_tbf(ms) == NULL); check_tbf(dl_tbf); tbf_free(dl_tbf); + ms_unref(ms); } else { - GprsMs::Guard guard(ms); + ms_ref(ms); tbf_free(dl_tbf); - OSMO_ASSERT(ms->dl_tbf() == new_tbf); + OSMO_ASSERT(ms_dl_tbf(ms) == new_tbf); check_tbf(new_tbf); tbf_free(new_tbf); - OSMO_ASSERT(ms->dl_tbf() == NULL); + OSMO_ASSERT(ms_dl_tbf(ms) == NULL); + ms_unref(ms); } fprintf(stderr, "=== end %s ===\n", __func__); @@ -421,32 +423,33 @@ dl_tbf[0]->update_ms(0xf1000001, GPRS_RLCMAC_DL_TBF); dl_tbf[1]->update_ms(0xf1000002, GPRS_RLCMAC_DL_TBF); - dl_tbf[0]->ms()->set_imsi("001001000000001"); + ms_set_imsi(dl_tbf[0]->ms(), "001001000000001"); ms1 = the_bts.ms_store().get_ms(0, 0, "001001000000001"); OSMO_ASSERT(ms1 != NULL); ms2 = the_bts.ms_store().get_ms(0xf1000001); OSMO_ASSERT(ms2 != NULL); - OSMO_ASSERT(strcmp(ms2->imsi(), "001001000000001") == 0); + OSMO_ASSERT(strcmp(ms_imsi(ms2), "001001000000001") == 0); OSMO_ASSERT(ms1 == ms2); /* change the IMSI on TBF 0 */ - dl_tbf[0]->ms()->set_imsi("001001000000002"); + ms_set_imsi(dl_tbf[0]->ms(), "001001000000002"); ms1 = the_bts.ms_store().get_ms(0, 0, "001001000000001"); OSMO_ASSERT(ms1 == NULL); ms1 = the_bts.ms_store().get_ms(0, 0, "001001000000002"); OSMO_ASSERT(ms1 != NULL); - OSMO_ASSERT(strcmp(ms2->imsi(), "001001000000002") == 0); + OSMO_ASSERT(strcmp(ms_imsi(ms2), "001001000000002") == 0); OSMO_ASSERT(ms1 == ms2); /* use the same IMSI on TBF 1 */ { - GprsMs::Guard guard(ms2); - dl_tbf[1]->ms()->set_imsi("001001000000002"); + ms_ref(ms2); + ms_set_imsi(dl_tbf[1]->ms(), "001001000000002"); ms1 = the_bts.ms_store().get_ms(0, 0, "001001000000002"); OSMO_ASSERT(ms1 != NULL); OSMO_ASSERT(ms1 != ms2); - OSMO_ASSERT(strcmp(ms1->imsi(), "001001000000002") == 0); - OSMO_ASSERT(strcmp(ms2->imsi(), "") == 0); + OSMO_ASSERT(strcmp(ms_imsi(ms1), "001001000000002") == 0); + OSMO_ASSERT(strcmp(ms_imsi(ms2), "") == 0); + ms_unref(ms2); } ms2 = the_bts.ms_store().get_ms(0xf1000001); @@ -539,8 +542,8 @@ ms = the_bts.ms_store().get_ms(0, 0, imsi); OSMO_ASSERT(ms != NULL); - OSMO_ASSERT(ms->dl_tbf() != NULL); - ms->dl_tbf()->set_ta(0); + OSMO_ASSERT(ms_dl_tbf(ms) != NULL); + ms_dl_tbf(ms)->set_ta(0); /* Handle LLC frame 2 */ memset(buf, 2, sizeof(buf)); @@ -549,7 +552,7 @@ OSMO_ASSERT(rc >= 0); /* TBF establishment fails (timeout) */ - tbf_free(ms->dl_tbf()); + tbf_free(ms_dl_tbf(ms)); /* Handle LLC frame 3 */ memset(buf, 3, sizeof(buf)); @@ -557,7 +560,7 @@ delay_csec, buf, sizeof(buf)); OSMO_ASSERT(rc >= 0); - OSMO_ASSERT(ms->dl_tbf() != NULL); + OSMO_ASSERT(ms_dl_tbf(ms) != NULL); /* Get first BSN */ struct msgb *msg; @@ -572,8 +575,8 @@ 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03 }, }; - while (ms->dl_tbf()->have_data()) { - msg = ms->dl_tbf()->create_dl_acked_block(fn += 4, 7); + while (ms_dl_tbf(ms)->have_data()) { + msg = ms_dl_tbf(ms)->create_dl_acked_block(fn += 4, 7); fprintf(stderr, "MSG = %s\n", msgb_hexdump(msg)); if (!msgb_eq_data_print(msg, exp[expected_data - 1], GSM_MACBLOCK_LEN)) fprintf(stderr, "%s failed at %u\n", __func__, expected_data); @@ -742,8 +745,8 @@ ms = the_bts->ms_by_tlli(tlli); OSMO_ASSERT(ms != NULL); - OSMO_ASSERT(ms->ta() == qta/4); - OSMO_ASSERT(ms->ul_tbf() == ul_tbf); + OSMO_ASSERT(ms_ta(ms) == qta/4); + OSMO_ASSERT(ms_ul_tbf(ms) == ul_tbf); /* * TS 44.060, B.8.1 @@ -890,8 +893,8 @@ ms = the_bts->ms_by_tlli(tlli); OSMO_ASSERT(ms != NULL); - OSMO_ASSERT(ms->ta() == qta/4); - OSMO_ASSERT(ms->ul_tbf() == ul_tbf); + OSMO_ASSERT(ms_ta(ms) == qta/4); + OSMO_ASSERT(ms_ul_tbf(ms) == ul_tbf); /* * TS 44.060, B.8.1 @@ -1386,8 +1389,8 @@ ms = the_bts->ms_by_tlli(tlli); OSMO_ASSERT(ms != NULL); - OSMO_ASSERT(ms->ta() == qta/4); - OSMO_ASSERT(ms->ul_tbf() == ul_tbf); + OSMO_ASSERT(ms_ta(ms) == qta/4); + OSMO_ASSERT(ms_ul_tbf(ms) == ul_tbf); return ul_tbf; } @@ -1469,8 +1472,8 @@ ms = the_bts->ms_by_tlli(tlli); OSMO_ASSERT(ms != NULL); - OSMO_ASSERT(ms->ta() == qta/4); - OSMO_ASSERT(ms->ul_tbf() == ul_tbf); + OSMO_ASSERT(ms_ta(ms) == qta/4); + OSMO_ASSERT(ms_ul_tbf(ms) == ul_tbf); return ul_tbf; } @@ -1554,8 +1557,8 @@ ms = the_bts->ms_by_tlli(tlli); OSMO_ASSERT(ms != NULL); - OSMO_ASSERT(ms->ta() == qta/4); - OSMO_ASSERT(ms->ul_tbf() == ul_tbf); + OSMO_ASSERT(ms_ta(ms) == qta/4); + OSMO_ASSERT(ms_ul_tbf(ms) == ul_tbf); return ul_tbf; } @@ -1637,8 +1640,8 @@ ms = the_bts->ms_by_tlli(tlli); OSMO_ASSERT(ms != NULL); - OSMO_ASSERT(ms->ta() == qta/4); - OSMO_ASSERT(ms->ul_tbf() == ul_tbf); + OSMO_ASSERT(ms_ta(ms) == qta/4); + OSMO_ASSERT(ms_ul_tbf(ms) == ul_tbf); return ul_tbf; } @@ -1655,7 +1658,7 @@ ms = the_bts->ms_by_imsi(imsi); OSMO_ASSERT(ms != NULL); - OSMO_ASSERT(ms->dl_tbf() != NULL); + OSMO_ASSERT(ms_dl_tbf(ms) != NULL); if (imsi[0] && strcmp(imsi, "000") != 0) { ms2 = the_bts->ms_by_tlli(tlli); @@ -1672,7 +1675,7 @@ ms = the_bts->ms_by_tlli(tlli); OSMO_ASSERT(ms); - dl_tbf = ms->dl_tbf(); + dl_tbf = ms_dl_tbf(ms); OSMO_ASSERT(dl_tbf); while (dl_tbf->have_data()) { @@ -1692,7 +1695,7 @@ { fprintf(stderr, "Got '%s', TA=%d\n", ul_tbf->name(), ul_tbf->ta()); if (print_ms) - fprintf(stderr, "Got MS: TLLI = 0x%08x, TA = %d\n", ul_tbf->ms()->tlli(), ul_tbf->ms()->ta()); + fprintf(stderr, "Got MS: TLLI = 0x%08x, TA = %d\n", ms_tlli(ul_tbf->ms()), ms_ta(ul_tbf->ms())); } static void test_tbf_single_phase() @@ -1866,10 +1869,10 @@ fprintf(stderr, "=== end %s ===\n", __func__); } -static inline void print_ms(const GprsMs *ms, bool old) +static inline void print_ms(GprsMs *ms, bool old) { fprintf(stderr, "%s MS: TLLI = 0x%08x, TA = %d, IMSI = %s, LLC = %zu\n", - old ? "Old" : "New", ms->tlli(), ms->ta(), ms->imsi(), ms->llc_queue()->size()); + old ? "Old" : "New", ms_tlli(ms), ms_ta(ms), ms_imsi(ms), llc_queue_size(ms_llc_queue(ms))); } static void test_tbf_ra_update_rach() @@ -1905,9 +1908,9 @@ send_control_ack(ul_tbf); /* Make sure the RAU Accept gets sent to the MS */ - OSMO_ASSERT(ms1->llc_queue()->size() == 1); + OSMO_ASSERT(llc_queue_size(ms_llc_queue(ms1)) == 1); transmit_dl_data(&the_bts, tlli1, &fn); - OSMO_ASSERT(ms1->llc_queue()->size() == 0); + OSMO_ASSERT(llc_queue_size(ms_llc_queue(ms1)) == 0); /* Now establish a new TBF for the RA UPDATE COMPLETE (new TLLI) */ ul_tbf = establish_ul_tbf_two_phase(&the_bts, ts_no, tlli2, &fn, qta, @@ -1963,8 +1966,8 @@ send_dl_data(&the_bts, tlli1, imsi, (const uint8_t *)"DATA 2 *************", 20); print_ms(ms1, true); - OSMO_ASSERT(ms1->llc_queue()->size() == 2); - dl_tbf = ms1->dl_tbf(); + OSMO_ASSERT(llc_queue_size(ms_llc_queue(ms1)) == 2); + dl_tbf = ms_dl_tbf(ms1); OSMO_ASSERT(dl_tbf != NULL); /* Get rid of old UL TBF */ @@ -1986,10 +1989,10 @@ OSMO_ASSERT(ms2 == ms); /* A DL TBF should still exist */ - OSMO_ASSERT(ms->dl_tbf()); + OSMO_ASSERT(ms_dl_tbf(ms)); /* No queued packets should be lost */ - OSMO_ASSERT(ms->llc_queue()->size() == 2); + OSMO_ASSERT(llc_queue_size(ms_llc_queue(ms)) == 2); fprintf(stderr, "=== end %s ===\n", __func__); } @@ -2022,8 +2025,8 @@ send_dl_data(&the_bts, tlli1, imsi, (const uint8_t *)"DATA 2 *************", 20); print_ms(ms1, true); - OSMO_ASSERT(ms1->llc_queue()->size() == 2); - dl_tbf = ms1->dl_tbf(); + OSMO_ASSERT(llc_queue_size(ms_llc_queue(ms1)) == 2); + dl_tbf = ms_dl_tbf(ms1); OSMO_ASSERT(dl_tbf != NULL); /* Get rid of old UL TBF */ @@ -2045,10 +2048,10 @@ OSMO_ASSERT(ms1 != ms); /* DL TBF should be removed */ - OSMO_ASSERT(!ms->dl_tbf()); + OSMO_ASSERT(!ms_dl_tbf(ms)); /* No queued packets should be lost */ - OSMO_ASSERT(ms->llc_queue()->size() == 2); + OSMO_ASSERT(llc_queue_size(ms_llc_queue(ms)) == 2); fprintf(stderr, "=== end %s ===\n", __func__); } @@ -2099,11 +2102,11 @@ /* Transmit all data */ transmit_dl_data(&the_bts, tlli1, &fn); - OSMO_ASSERT(ms1->llc_queue()->size() == 0); - OSMO_ASSERT(ms1->dl_tbf()); - OSMO_ASSERT(ms1->dl_tbf()->state_is(GPRS_RLCMAC_FINISHED)); + OSMO_ASSERT(llc_queue_size(ms_llc_queue(ms1)) == 0); + OSMO_ASSERT(ms_dl_tbf(ms1)); + OSMO_ASSERT(ms_dl_tbf(ms1)->state_is(GPRS_RLCMAC_FINISHED)); - dl_tbf1 = ms1->dl_tbf(); + dl_tbf1 = ms_dl_tbf(ms1); /* Send some LLC frames */ for (i = 0; i < 10; i++) { @@ -2132,10 +2135,10 @@ ms2 = the_bts.ms_by_tlli(tlli1); OSMO_ASSERT(ms2 == ms1); - OSMO_ASSERT(ms2->dl_tbf()); - OSMO_ASSERT(ms2->dl_tbf()->state_is(GPRS_RLCMAC_ASSIGN)); + OSMO_ASSERT(ms_dl_tbf(ms2)); + OSMO_ASSERT(ms_dl_tbf(ms2)->state_is(GPRS_RLCMAC_ASSIGN)); - dl_tbf2 = ms2->dl_tbf(); + dl_tbf2 = ms_dl_tbf(ms2); OSMO_ASSERT(dl_tbf1 != dl_tbf2); @@ -2144,9 +2147,9 @@ /* Transmit all data */ transmit_dl_data(&the_bts, tlli1, &fn); - OSMO_ASSERT(ms2->llc_queue()->size() == 0); - OSMO_ASSERT(ms2->dl_tbf()); - OSMO_ASSERT(ms2->dl_tbf()->state_is(GPRS_RLCMAC_FINISHED)); + OSMO_ASSERT(llc_queue_size(ms_llc_queue(ms2)) == 0); + OSMO_ASSERT(ms_dl_tbf(ms2)); + OSMO_ASSERT(ms_dl_tbf(ms2)->state_is(GPRS_RLCMAC_FINISHED)); fprintf(stderr, "=== end %s ===\n", __func__); } @@ -2411,8 +2414,8 @@ ms = the_bts->ms_by_tlli(tlli); OSMO_ASSERT(ms != NULL); - OSMO_ASSERT(ms->ta() == qta/4); - OSMO_ASSERT(ms->ul_tbf() == ul_tbf); + OSMO_ASSERT(ms_ta(ms) == qta/4); + OSMO_ASSERT(ms_ul_tbf(ms) == ul_tbf); egprs3 = (struct gprs_rlc_ul_header_egprs_3 *) data_msg; egprs3->si = 0; @@ -2799,9 +2802,7 @@ OSMO_ASSERT(bsn1 == 0); - dl_tbf->ms()->set_current_cs_dl - (static_cast < enum CodingScheme > - (CS4 + demanded_mcs)); + ms_set_current_cs_dl(dl_tbf->ms(), static_cast < enum CodingScheme > (CS4 + demanded_mcs)); fn = fn_add_blocks(fn, 1); @@ -2831,9 +2832,7 @@ OSMO_ASSERT(egprs3->cps == 3); /* Handle (MCS3, MCS3) -> MCS6 case */ - dl_tbf->ms()->set_current_cs_dl - (static_cast < enum CodingScheme > - (CS4 + mcs)); + ms_set_current_cs_dl(dl_tbf->ms(), static_cast < enum CodingScheme > (CS4 + mcs)); NACK(dl_tbf, 0); @@ -2880,9 +2879,7 @@ NACK(dl_tbf, 0); - dl_tbf->ms()->set_current_cs_dl - (static_cast < enum CodingScheme > - (CS4 + demanded_mcs)); + ms_set_current_cs_dl(dl_tbf->ms(), static_cast < enum CodingScheme > (CS4 + demanded_mcs)); fn = fn_add_blocks(fn, 1); @@ -2967,9 +2964,7 @@ NACK(dl_tbf, 1); /* Set the demanded MCS to demanded_mcs */ - dl_tbf->ms()->set_current_cs_dl - (static_cast < enum CodingScheme > - (CS4 + demanded_mcs)); + ms_set_current_cs_dl(dl_tbf->ms(), static_cast < enum CodingScheme > (CS4 + demanded_mcs)); fn = fn_add_blocks(fn, 1); /* Retransmit the first RLC data block with demanded_mcs */ @@ -2994,9 +2989,7 @@ NACK(dl_tbf, 0); NACK(dl_tbf, 1); - dl_tbf->ms()->set_current_cs_dl - (static_cast < enum CodingScheme > - (CS4 + demanded_mcs)); + ms_set_current_cs_dl(dl_tbf->ms(), static_cast < enum CodingScheme > (CS4 + demanded_mcs)); fn = fn_add_blocks(fn, 1); /* Send first, second RLC data blocks with demanded_mcs */ @@ -3264,8 +3257,8 @@ pcu_vty_init(); /* Initialize shared UL measurements */ - meas.set_link_qual(12); - meas.set_rssi(31); + pcu_l1_meas_set_link_qual(&meas, 12); + pcu_l1_meas_set_rssi(&meas, 31); test_tbf_base(); test_tbf_tlli_update(); diff --git a/tests/types/TypesTest.cpp b/tests/types/TypesTest.cpp index f224146..bc24b30 100644 --- a/tests/types/TypesTest.cpp +++ b/tests/types/TypesTest.cpp @@ -58,27 +58,27 @@ gprs_llc llc; llc.init(); - OSMO_ASSERT(llc.chunk_size() == 0); - OSMO_ASSERT(llc.remaining_space() == LLC_MAX_LEN); - OSMO_ASSERT(llc.frame_length() == 0); + OSMO_ASSERT(llc_chunk_size(&llc) == 0); + OSMO_ASSERT(llc_remaining_space(&llc) == LLC_MAX_LEN); + OSMO_ASSERT(llc_frame_length(&llc) == 0); llc.put_frame(data, 2); - OSMO_ASSERT(llc.remaining_space() == LLC_MAX_LEN - 2); - OSMO_ASSERT(llc.frame_length() == 2); - OSMO_ASSERT(llc.chunk_size() == 2); + OSMO_ASSERT(llc_remaining_space(&llc) == LLC_MAX_LEN - 2); + OSMO_ASSERT(llc_frame_length(&llc) == 2); + OSMO_ASSERT(llc_chunk_size(&llc) == 2); OSMO_ASSERT(llc.frame[0] == 1); OSMO_ASSERT(llc.frame[1] == 2); llc.append_frame(&data[3], 1); - OSMO_ASSERT(llc.remaining_space() == LLC_MAX_LEN - 3); - OSMO_ASSERT(llc.frame_length() == 3); - OSMO_ASSERT(llc.chunk_size() == 3); + OSMO_ASSERT(llc_remaining_space(&llc) == LLC_MAX_LEN - 3); + OSMO_ASSERT(llc_frame_length(&llc) == 3); + OSMO_ASSERT(llc_chunk_size(&llc) == 3); /* consume two bytes */ - llc.consume(&out, 1); - OSMO_ASSERT(llc.remaining_space() == LLC_MAX_LEN - 3); - OSMO_ASSERT(llc.frame_length() == 3); - OSMO_ASSERT(llc.chunk_size() == 2); + llc_consume_data(&llc, &out, 1); + OSMO_ASSERT(llc_remaining_space(&llc) == LLC_MAX_LEN - 3); + OSMO_ASSERT(llc_frame_length(&llc) == 3); + OSMO_ASSERT(llc_chunk_size(&llc) == 2); /* check that the bytes are as we expected */ OSMO_ASSERT(llc.frame[0] == 1); @@ -86,9 +86,9 @@ OSMO_ASSERT(llc.frame[2] == 4); /* now fill the frame */ - llc.append_frame(data, llc.remaining_space() - 1); - OSMO_ASSERT(llc.fits_in_current_frame(1)); - OSMO_ASSERT(!llc.fits_in_current_frame(2)); + llc.append_frame(data, llc_remaining_space(&llc) - 1); + OSMO_ASSERT(llc_fits_in_current_frame(&llc, 1)); + OSMO_ASSERT(!llc_fits_in_current_frame(&llc, 2)); } } -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21748 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I0b50e3367aaad9dcada76da97b438e452c8b230c Gerrit-Change-Number: 21748 Gerrit-PatchSet: 7 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 10:34:25 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 5 Jan 2021 10:34:25 +0000 Subject: Change in osmo-pcu[master]: tbf: Fix wrong verb used in log message In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21790 ) Change subject: tbf: Fix wrong verb used in log message ...................................................................... tbf: Fix wrong verb used in log message Change-Id: Id9f8df9a5c0e0f88a811c5d7f06821cb4f30ab93 --- M src/tbf.cpp 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/tbf.cpp b/src/tbf.cpp index fde44ba..28e24b8 100644 --- a/src/tbf.cpp +++ b/src/tbf.cpp @@ -932,7 +932,7 @@ LOGP(DTBF, LOGL_DEBUG, "+++++++++++++++++++++++++ TX : Packet Downlink Assignment +++++++++++++++++++++++++\n"); rc = encode_gsm_rlcmac_downlink(&bv, mac_control_block); if (rc < 0) { - LOGP(DTBF, LOGL_ERROR, "Decoding of Packet Downlink Ass failed (%d)\n", rc); + LOGP(DTBF, LOGL_ERROR, "Encoding of Packet Downlink Ass failed (%d)\n", rc); goto free_ret; } LOGP(DTBF, LOGL_DEBUG, "------------------------- TX : Packet Downlink Assignment -------------------------\n"); -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21790 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Id9f8df9a5c0e0f88a811c5d7f06821cb4f30ab93 Gerrit-Change-Number: 21790 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 10:34:56 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 5 Jan 2021 10:34:56 +0000 Subject: Change in osmo-pcu[master]: .gitignore: ignore files ending with ~ References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21940 ) Change subject: .gitignore: ignore files ending with ~ ...................................................................... .gitignore: ignore files ending with ~ I'm lately getting this kind of files in git after building: config.guess~ config.sub~ configure~ install-sh~ Let's ignore them. Change-Id: I976e3a33f638f4cd19650b9c799e61713d73bf8a --- M .gitignore 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/40/21940/1 diff --git a/.gitignore b/.gitignore index 01f4f47..c8b1d06 100644 --- a/.gitignore +++ b/.gitignore @@ -20,6 +20,7 @@ missing *libtool ltmain.sh +*~ core core.* -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21940 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I976e3a33f638f4cd19650b9c799e61713d73bf8a Gerrit-Change-Number: 21940 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 10:37:53 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 5 Jan 2021 10:37:53 +0000 Subject: Change in libosmocore[master]: gprs_ns2: set transfer cap in NS Status primitive In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21753 ) Change subject: gprs_ns2: set transfer cap in NS Status primitive ...................................................................... Patch Set 8: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21753 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia1046db9e0d50855bff9de670b612ffc57af9995 Gerrit-Change-Number: 21753 Gerrit-PatchSet: 8 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 05 Jan 2021 10:37:53 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 10:47:23 2021 From: gerrit-no-reply at lists.osmocom.org (herlesupreeth) Date: Tue, 5 Jan 2021 10:47:23 +0000 Subject: Change in pysim[master]: pySim-read.py: Enable reading of Home Network Domain Name from ISIM In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/pysim/+/21858 to look at the new patch set (#3). Change subject: pySim-read.py: Enable reading of Home Network Domain Name from ISIM ...................................................................... pySim-read.py: Enable reading of Home Network Domain Name from ISIM As per TS1.103 version 14.2.0, this EF contains the home operator's network domain name. The Home Network Domain Name, i.e. FQDN shall be encoded to an octet string according to UTF-8 encoding rules as specified in IETF RFC 3629 Change-Id: Ia3c68c717d105e10d52a8e9d170480da2ad7d65a --- M pySim-read.py M pySim/cards.py M pysim-testdata/sysmoISIM-SJA2.ok 3 files changed, 22 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/58/21858/3 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/21858 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ia3c68c717d105e10d52a8e9d170480da2ad7d65a Gerrit-Change-Number: 21858 Gerrit-PatchSet: 3 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 11:20:36 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 5 Jan 2021 11:20:36 +0000 Subject: Change in osmo-bsc[master]: ericsson_rbs2000: fix unreachable code in inp_sig_cb() References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21941 ) Change subject: ericsson_rbs2000: fix unreachable code in inp_sig_cb() ...................................................................... ericsson_rbs2000: fix unreachable code in inp_sig_cb() Change-Id: I20674945ddb80ceb1a1917e1be8572595764b370 Fixes: CID#215885 --- M src/osmo-bsc/bts_ericsson_rbs2000.c 1 file changed, 0 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/41/21941/1 diff --git a/src/osmo-bsc/bts_ericsson_rbs2000.c b/src/osmo-bsc/bts_ericsson_rbs2000.c index 4fbf057..fa0dab8 100644 --- a/src/osmo-bsc/bts_ericsson_rbs2000.c +++ b/src/osmo-bsc/bts_ericsson_rbs2000.c @@ -142,7 +142,6 @@ om2k_bts_fsm_reset(isd->trx->bts); else om2k_trx_fsm_reset(isd->trx); - break; /* Some datalink for a given TEI/SAPI went down, try to re-start it */ e1i_ts = &isd->line->ts[isd->ts_nr-1]; OSMO_ASSERT(e1i_ts->type == E1INP_TS_TYPE_SIGN); -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21941 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I20674945ddb80ceb1a1917e1be8572595764b370 Gerrit-Change-Number: 21941 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 12:17:45 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 5 Jan 2021 12:17:45 +0000 Subject: Change in osmo-bts[master]: sysinfo: fix less-than-zero comparison of an unsigned value References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/21942 ) Change subject: sysinfo: fix less-than-zero comparison of an unsigned value ...................................................................... sysinfo: fix less-than-zero comparison of an unsigned value size_t is an unsigned type, while get_si4_ro_offset() returns int. Change-Id: I3b216b70fbcc653ced734835ccb2c7f1932d9f0a Fixes: CID#215888 --- M src/common/sysinfo.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/42/21942/1 diff --git a/src/common/sysinfo.c b/src/common/sysinfo.c index 9eea539..d1f6f36 100644 --- a/src/common/sysinfo.c +++ b/src/common/sysinfo.c @@ -240,8 +240,8 @@ void regenerate_si4_restoctets(struct gsm_bts *bts) { uint8_t *si4_buf = GSM_BTS_SI(bts, SYSINFO_TYPE_4); - size_t si4_size; struct osmo_gsm48_si_ro_info si4ro_tmp; + int si4_size; /* If BSC has never set SI4, there's nothing to patch */ if (!GSM_BTS_HAS_SI(bts, SYSINFO_TYPE_4)) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21942 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I3b216b70fbcc653ced734835ccb2c7f1932d9f0a Gerrit-Change-Number: 21942 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 12:21:29 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 5 Jan 2021 12:21:29 +0000 Subject: Change in osmo-pcu[master]: .gitignore: ignore files ending with ~ In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21940 ) Change subject: .gitignore: ignore files ending with ~ ...................................................................... Patch Set 1: Code-Review+2 New automake/autoconf? ;) -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21940 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I976e3a33f638f4cd19650b9c799e61713d73bf8a Gerrit-Change-Number: 21940 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Tue, 05 Jan 2021 12:21:29 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 12:27:33 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 5 Jan 2021 12:27:33 +0000 Subject: Change in osmo-pcu[master]: doc: Improve CS/MCS GPRS/EGPRS considerations in User Manual References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21943 ) Change subject: doc: Improve CS/MCS GPRS/EGPRS considerations in User Manual ...................................................................... doc: Improve CS/MCS GPRS/EGPRS considerations in User Manual Related: OS#4544 Related: SYS#4869 Change-Id: I7b205f5cab5862058a408f628925beb9f0f60a92 --- M doc/manuals/chapters/configuration.adoc 1 file changed, 128 insertions(+), 10 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/43/21943/1 diff --git a/doc/manuals/chapters/configuration.adoc b/doc/manuals/chapters/configuration.adoc index 6fc61c7..3e76879 100644 --- a/doc/manuals/chapters/configuration.adoc +++ b/doc/manuals/chapters/configuration.adoc @@ -29,11 +29,22 @@ === Configuring the Coding Schemes and Rate Adaption -The BSC includes a bit-mask of permitted [E]GPRS coding schemes as part -of the A-bis OML configuration. This is passed from the BTS via the PCU -socket into OsmoPCU. +As a reminder: -Some additional parameters can be set as described below. +- GPRS supports Coding Schemes 1-4 (CS1-4), all of them use GMSK modulation + (same as GSM). +- EGPRS supports MCS1-9, where MCS1-4 is GMSK, and MCS5-9 use 8-PSK modulation. + +The range of Coding Schemes above only apply to RLCMAC data blocks; RLCMAC +control blocks are always transmitted with CS1 (GMSK). Hence, CS1 is always +supported and must be always permitted. + +The BSC includes a bit-mask of permitted [E]GPRS coding schemes as part of the +A-bis OML configuration, controlled by VTY `gprs mode (none|gprs|egprs)`. This +is passed from the BTS via the PCU socket into OsmoPCU, and the resulting set +can be further constrained by OsmoPCU VTY configuration. + +Some additional OsmoPCU parameters can be set as described below. ==== Initial Coding Scheme @@ -41,11 +52,28 @@ to set the initial GPRS coding scheme to be used. The optional second value allows to specify a different initial coding scheme for uplink. +Similarly, `mcs <1-9> [<1-9>]` can be used to set up the initial EGPRS coding +scheme. + +[[max_cs_mcs]] ==== Maximum Coding Scheme You can use the `cs max <1-4> [<1-4>]` command at the `pcu` VTY config -node to set the maximum coding scheme that should be used as part of the -rate adaption. +node to set the maximum GPRS coding scheme that should be used as part of the +rate adaption. The optional second value allows to specify a different maximum +coding scheme for uplink. + +Similarly, `mcs max <1-9> [<1-9>]` can be used to set up the maximum EGPRS +coding scheme. + +The actual Maximum Coding Scheme for each direction used at runtime is actually +the result of taking the maximum value from the permitted GPRS coding schemes +received by the BSC (or BTS) over PCUIF which is equal or lower tho the +configured value. + +Example: PCUIF announces permitted MCS bit-mask (`MCS1 MCS2 MCS3 MCS4`) and +OsmoPCU is configured `mcs max 6`, then the actual maximum MCS used at runtime +will be `MCS4`. ==== Rate Adaption Error Thresholds @@ -192,11 +220,101 @@ Set the gamma parameter for MS power control in units of dB. -=== Enabling EGPRS +=== GPRS vs EGPRS considerations -If you would like to test the currently (experimental) EGPRS support of -OsmoPCU, you can enable it using the `egprs` command at the `pcu` VTY -config node. +==== Configuration + +OsmoPCU can be configured to either: + +- Allocate only GPRS TBFs to all MS (no EGPRS) +- Allocate EGPRS TBFs to EGPRS capable phones while still falling back to + allocating GPRS TBFs on GPRS-only capable MS. + +These two different modes of operation are selected by properly configuring the +Coding Schemes (see <>). + +The first mode of operation (GPRS-only for all MS) can be accomplished +configuring OsmoPCU so that the resulting MCS set is empty. This can be done in +two ways: + +- Announcing an empty MCS bit-mask over PCUIF to OsmoPCU: + That's actually done automatically by OsmoBSC on BTS with VTY config set to + `gprs mode gprs`. +- Configuring OsmoPCU to force an empty set by using VTY command `mcs max 0`. + +Hence, if the resulting MCS bit-mask is not empty, (BSC configuring the BTS with +`gprs mode egprs` and OsmoPCU VTY conftaining something other than 'mcs max 0'), +EGPRS TBFs will be allocated for all MS announcing EGPRS capabilities. + +It is important to remark that in order to use MCS5-9, the BTS must support +encoding and decoding of 8-PSK modulation. Nevertheless, in the event 8-PSK is not +supported on the BTS, one can still enable EGPRS and simply make sure 8-PSK MCS +are never used by configuring OsmoPCU with `mcs max 4 4`. + +Similarly, a BTS may support 8-PSK modulation only on downlink, since it is +easier to implement than the uplink, together with the fact that higher downlink +throughput is usually more interesting from user point of view. In this +scenario, OsmoPCU can be configured to allow for full MCS range in downlink +while still preventing use of 8-PSK on the uplink: `mcs max 9 4`. + +Some other interesting configurations to control use of EGPRS in the network +which lay outside OsmoPCU include: + +- If `osmo-bts-trx` together with `osmo-trx` is used, remember to enable EGPRS + support (OsmoTRX VTY `egprs enable`). + +- It is possible to improve EGPRS performance (in particular, the TBF + establishment timing) a bit by enabling 11-bit Access Burst support. This + allows EGPRS capable phones to indicate their EGPRS capability, establishment + cause, and multi-slot class directly in the Access Burst (OsmoTRX VTY + `ext-rach enable`, OsmoBSC VTY `gprs egprs-packet-channel-request`). + +NOTE: If you enable MCS5-9 you will also need an 8-PSK capable OsmoBTS+PHY, +which means `osmo-bts-sysmo` or `osmo-bts-litecell15` with their associated PHY, +or `osmo-bts-trx` with `osmo-trx` properly configured. + +==== GPRS+EGPRS multiplexing + +Both EGPRS and GPRS-only capable MS can be driven concurrently in the same PDCH +timeslot by the PCU, hence no special configuration is required per timeslot +regarding this topic; OsmoPCU scheduler takes care of the specific requirements +when driving MS with different capabilities. + +These specific requirements translate to some restrictions regarding which +Coding Schemes can be used at given frame numbers, and hence which kind of +RLCMAC blocks can be sent, which means serving a GPRS-only MS in a PDCH may end +up affecting slightly the downlink throughput of EGPRS capable MS. + +Throughput loss based on MS capabilities with TBF attached to a certain PDCH +timeslot: + +All UEs are EGPRS capable:: + No throughput loss, since all data is sent using EGPRS, and EGPRS control + messages are used when appropriate. + +All UEs are GPRS-only (doesn't support EGPRS):: + No throughput loss, since all data and control blocks use GPRS. + +Some UEs are GPRS-only, some EGPRS:: +In general EGPRS capable UEs will use EGPRS, and GPRS-only UEs will use GPRS, +with some restrictions affecting throughput of EGPRS capable UEs: +- Whenever a GPRS-only MS is to be polled to send uplink data to PCU, then a +downlink RLCMAC block encoded in GMSK must be sent, which means that if the +scheduler selects a EGPRS MS for downlink on that block it will force sending of +data with MCS1-4 (if it's new data, if it's a retransmission it cannot be +selected since MCS from original message cannot be changed). In the worst case +if no control block needs to be sent or no new data in MCS1-4 is available to +send, then an RLCMAC Dummy Block is sent. +- For synchronization purposes, each MS needs to receive an RLCMAC block which +it can fully decode at least every 360ms, which means the scheduler must enforce +a downlink block in CS1-4 every 360ms, that is, every 18th RLCMAC block. In +general this is not a big issue since anyway all control RLCMAC blocks are +encoded in CS1, so in case any control block is sent from time to time it's +accomplised and there's no penalty. However, if only EGPRS Downlink Data is sent +over that time frame, then the scheduler will force sending a Rlcmac Dummy +Block. + + WARNING: EPGRS functionality is highly experimental at the time of this writing. Please only use if you actively would like to participate in -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21943 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I7b205f5cab5862058a408f628925beb9f0f60a92 Gerrit-Change-Number: 21943 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 12:39:15 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 5 Jan 2021 12:39:15 +0000 Subject: Change in osmo-bsc[master]: ericsson_rbs2000: fix unreachable code in inp_sig_cb() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21941 ) Change subject: ericsson_rbs2000: fix unreachable code in inp_sig_cb() ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21941 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I20674945ddb80ceb1a1917e1be8572595764b370 Gerrit-Change-Number: 21941 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 05 Jan 2021 12:39:15 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 12:40:03 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 5 Jan 2021 12:40:03 +0000 Subject: Change in osmo-bts[master]: sysinfo: fix less-than-zero comparison of an unsigned value In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21942 ) Change subject: sysinfo: fix less-than-zero comparison of an unsigned value ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21942 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I3b216b70fbcc653ced734835ccb2c7f1932d9f0a Gerrit-Change-Number: 21942 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 05 Jan 2021 12:40:03 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 12:40:44 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 5 Jan 2021 12:40:44 +0000 Subject: Change in osmo-pcu[master]: .gitignore: ignore files ending with ~ In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21940 ) Change subject: .gitignore: ignore files ending with ~ ...................................................................... Patch Set 1: No idea tbh, probably yes. Feel free to update your Archlinux and tell me if you get the same ;) -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21940 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I976e3a33f638f4cd19650b9c799e61713d73bf8a Gerrit-Change-Number: 21940 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Tue, 05 Jan 2021 12:40:44 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 12:47:21 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 5 Jan 2021 12:47:21 +0000 Subject: Change in osmo-bts[master]: l1sap: fix: enable UL SACCH repetition if RxQual threshold is 0 In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21938 ) Change subject: l1sap: fix: enable UL SACCH repetition if RxQual threshold is 0 ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21938 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ia44a134e7f28ea990798d1b79c87b644504c0876 Gerrit-Change-Number: 21938 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Assignee: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 05 Jan 2021 12:47:21 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 12:47:37 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 5 Jan 2021 12:47:37 +0000 Subject: Change in osmo-bts[master]: l1sap: fix: enable UL SACCH repetition if RxQual threshold is 0 In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21938 ) Change subject: l1sap: fix: enable UL SACCH repetition if RxQual threshold is 0 ...................................................................... l1sap: fix: enable UL SACCH repetition if RxQual threshold is 0 It is expected that setting RxQual threshold to 0 would make the L1SAP logic enable repetition for both Uplink SACCH and Downlink FACCH unconditionally. However, this was only valid for the later. Let's add the missing check and make it consistent. Change-Id: Ia44a134e7f28ea990798d1b79c87b644504c0876 Related: SYS#5114 --- M src/common/l1sap.c 1 file changed, 6 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, approved laforge: Looks good to me, but someone else must approve dexter: Looks good to me, but someone else must approve diff --git a/src/common/l1sap.c b/src/common/l1sap.c index 33d10a5..48773f1 100644 --- a/src/common/l1sap.c +++ b/src/common/l1sap.c @@ -1408,6 +1408,12 @@ if (!lchan->repeated_acch_capability.ul_sacch) return; + /* Threshold disabled (repetition is always on) */ + if (lchan->repeated_acch_capability.rxqual == 0) { + lchan->repeated_ul_sacch_active = true; + return; + } + /* convert from RXQUAL value to ber10k vale, * see also GSM 05.08, section 8.2.4 */ static const uint16_t ber10k_by_rxqual_upper[] = -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21938 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ia44a134e7f28ea990798d1b79c87b644504c0876 Gerrit-Change-Number: 21938 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Assignee: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 13:06:54 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 5 Jan 2021 13:06:54 +0000 Subject: Change in osmo-pcu[master]: doc: Improve CS/MCS GPRS/EGPRS considerations in User Manual In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21943 ) Change subject: doc: Improve CS/MCS GPRS/EGPRS considerations in User Manual ...................................................................... Patch Set 1: (5 comments) https://gerrit.osmocom.org/c/osmo-pcu/+/21943/1/doc/manuals/chapters/configuration.adoc File doc/manuals/chapters/configuration.adoc: https://gerrit.osmocom.org/c/osmo-pcu/+/21943/1/doc/manuals/chapters/configuration.adoc at 246 PS1, Line 246: f typo https://gerrit.osmocom.org/c/osmo-pcu/+/21943/1/doc/manuals/chapters/configuration.adoc at 250 PS1, Line 250: encoding and decoding of 8-PSK modulation This looks confusing, modulation is not something you encode and decode. I would say: "... the BTS must support 8-PSK modulation" https://gerrit.osmocom.org/c/osmo-pcu/+/21943/1/doc/manuals/chapters/configuration.adoc at 250 PS1, Line 250: in the event 8-PSK I may be wrong, but using "in the event" looks inappropriate in this context. It's not something that happens sporadically or unexpectedly, so it's not an event. Maybe "in case if 8-PSK is not supported"? https://gerrit.osmocom.org/c/osmo-pcu/+/21943/1/doc/manuals/chapters/configuration.adoc at 266 PS1, Line 266: - It is possible to improve EGPRS performance (in particular, the TBF Copyright! :D https://gerrit.osmocom.org/c/osmo-pcu/+/21943/1/doc/manuals/chapters/configuration.adoc at 302 PS1, Line 302: encoded in GMSK "modulated with GMSK" or "GMSK modulated" -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21943 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I7b205f5cab5862058a408f628925beb9f0f60a92 Gerrit-Change-Number: 21943 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-Comment-Date: Tue, 05 Jan 2021 13:06:54 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 13:27:30 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 5 Jan 2021 13:27:30 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: always check rc of osmo_sockaddr_str_from_sockaddr() References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21944 ) Change subject: gprs_ns2_sns: always check rc of osmo_sockaddr_str_from_sockaddr() ...................................................................... gprs_ns2_sns: always check rc of osmo_sockaddr_str_from_sockaddr() Writing a configuration that will be rejected by the VTY parser is not the best solution, but still better than printing values from previous iterations or the stack garbage. In any case, this is unlikely to happen, just making Coverity happy. Change-Id: I26644fe544c82c90767ec1a9709918474bd1be53 Fixes: CID#215852 --- M src/gb/gprs_ns2_sns.c 1 file changed, 3 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/44/21944/1 diff --git a/src/gb/gprs_ns2_sns.c b/src/gb/gprs_ns2_sns.c index 027d1da..2cb4293 100644 --- a/src/gb/gprs_ns2_sns.c +++ b/src/gb/gprs_ns2_sns.c @@ -1556,7 +1556,9 @@ gss = (struct ns2_sns_state *) nse->bss_sns_fi->priv; llist_for_each_entry(endpoint, &gss->sns_endpoints, list) { - osmo_sockaddr_str_from_sockaddr(&addr_str, &endpoint->saddr.u.sas); + /* It's unlikely that an error happens, but let's better be safe. */ + if (osmo_sockaddr_str_from_sockaddr(&addr_str, &endpoint->saddr.u.sas) != 0) + addr_str = (struct osmo_sockaddr_str) { .ip = "" }; vty_out(vty, " ip-sns %s %u%s", addr_str.ip, addr_str.port, VTY_NEWLINE); } } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21944 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I26644fe544c82c90767ec1a9709918474bd1be53 Gerrit-Change-Number: 21944 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 13:34:12 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 5 Jan 2021 13:34:12 +0000 Subject: Change in libosmocore[master]: gprs_ns2_fr: fix resource leaks due to early return in set_ifupdown() References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21945 ) Change subject: gprs_ns2_fr: fix resource leaks due to early return in set_ifupdown() ...................................................................... gprs_ns2_fr: fix resource leaks due to early return in set_ifupdown() Change-Id: Ie52bf8ac6d62e7f2d760294bf2fe90119cc96b4b Related: CID#215869 --- M src/gb/gprs_ns2_fr.c 1 file changed, 6 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/45/21945/1 diff --git a/src/gb/gprs_ns2_fr.c b/src/gb/gprs_ns2_fr.c index e972a34..ab12884 100644 --- a/src/gb/gprs_ns2_fr.c +++ b/src/gb/gprs_ns2_fr.c @@ -448,11 +448,15 @@ OSMO_STRLCPY_ARRAY(req.ifr_name, netif); rc = ioctl(sock, SIOCGIFFLAGS, &req); - if (rc < 0) + if (rc < 0) { + close(sock); return rc; + } - if ((req.ifr_flags & IFF_UP) == up) + if ((req.ifr_flags & IFF_UP) == up) { + close(sock); return 0; + } if (up) req.ifr_flags |= IFF_UP; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21945 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie52bf8ac6d62e7f2d760294bf2fe90119cc96b4b Gerrit-Change-Number: 21945 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 13:38:44 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 5 Jan 2021 13:38:44 +0000 Subject: Change in osmo-sgsn[master]: gb_proxy_peer: sgsn can never be NULL in gbproxy_sgsn_by_nri() References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21946 ) Change subject: gb_proxy_peer: sgsn can never be NULL in gbproxy_sgsn_by_nri() ...................................................................... gb_proxy_peer: sgsn can never be NULL in gbproxy_sgsn_by_nri() Redundant check makes Coverity think that sgsn can be NULL... Change-Id: Iffdeb18e0a5575a2a09129eed9b8a41c3340dcbf Fixes: CID#215870 --- M src/gbproxy/gb_proxy_peer.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/46/21946/1 diff --git a/src/gbproxy/gb_proxy_peer.c b/src/gbproxy/gb_proxy_peer.c index 94f9c03..863bcce 100644 --- a/src/gbproxy/gb_proxy_peer.c +++ b/src/gbproxy/gb_proxy_peer.c @@ -482,7 +482,7 @@ llist_for_each_entry(sgsn, &cfg->sgsns, list) { if (osmo_nri_v_matches_ranges(nri, sgsn->pool.nri_ranges)) { /* Also check if the NRI we're looking for is a NULL NRI */ - if (sgsn && null_nri) { + if (null_nri) { if (osmo_nri_v_matches_ranges(nri, cfg->pool.null_nri_ranges)) *null_nri = true; else -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21946 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Iffdeb18e0a5575a2a09129eed9b8a41c3340dcbf Gerrit-Change-Number: 21946 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 13:43:02 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 5 Jan 2021 13:43:02 +0000 Subject: Change in osmo-sgsn[master]: gb_proxy_peer: fix NULL pointer dereference in gbproxy_sgsn_alloc() References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21947 ) Change subject: gb_proxy_peer: fix NULL pointer dereference in gbproxy_sgsn_alloc() ...................................................................... gb_proxy_peer: fix NULL pointer dereference in gbproxy_sgsn_alloc() Change-Id: I1c592dd6f0da5f167290f38de3b30a1a04c4313d Fixes: CID#215868 --- M src/gbproxy/gb_proxy_peer.c 1 file changed, 2 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/47/21947/1 diff --git a/src/gbproxy/gb_proxy_peer.c b/src/gbproxy/gb_proxy_peer.c index 863bcce..8549a58 100644 --- a/src/gbproxy/gb_proxy_peer.c +++ b/src/gbproxy/gb_proxy_peer.c @@ -364,7 +364,8 @@ sgsn->nse = gbproxy_nse_alloc(cfg, nsei, true); if (!sgsn->nse) { - LOGPSGSN_CAT(sgsn, DOBJ, LOGL_INFO, "Could not allocate NSE(%05u) for SGSN\n", nsei); + LOGP(sgsn, DOBJ, LOGL_ERROR, "Could not allocate NSE(%05u) for SGSN(%s)\n", + nsei, sgsn->name); goto free_sgsn; } -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21947 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I1c592dd6f0da5f167290f38de3b30a1a04c4313d Gerrit-Change-Number: 21947 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 13:55:51 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 5 Jan 2021 13:55:51 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: fix uninitialized struct fields in bssgp_create_rim_ri() References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21948 ) Change subject: gprs_bssgp: fix uninitialized struct fields in bssgp_create_rim_ri() ...................................................................... gprs_bssgp: fix uninitialized struct fields in bssgp_create_rim_ri() Change-Id: Ifc3dda1fe5e9743072751dbb14c2d973388cb3b2 Fixes: CID#215836 --- M src/gb/gprs_bssgp.c 1 file changed, 6 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/48/21948/1 diff --git a/src/gb/gprs_bssgp.c b/src/gb/gprs_bssgp.c index fd2a48c..bf0e821 100644 --- a/src/gb/gprs_bssgp.c +++ b/src/gb/gprs_bssgp.c @@ -398,9 +398,12 @@ /* Note: 3GPP TS 24.301 Figure 9.9.3.32.1 and 3GPP TS 24.008 * Figure 10.5.130 specify MCC/MNC encoding in the same way, * so we can re-use gsm48_encode_ra() for that. */ - raid_temp.mcc = ri->eutran.tai.mcc; - raid_temp.mnc = ri->eutran.tai.mnc; - raid_temp.mnc_3_digits = ri->eutran.tai.mnc_3_digits; + raid_temp = (struct gprs_ra_id) { + .mcc = ri->eutran.tai.mcc, + .mnc = ri->eutran.tai.mnc, + .mnc_3_digits = ri->eutran.tai.mnc_3_digits, + }; + gsm48_encode_ra((struct gsm48_ra_id *)buf, &raid_temp); osmo_store16be(ri->eutran.tai.tac, buf + 3); OSMO_ASSERT(ri->eutran.global_enb_id_len <= -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21948 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ifc3dda1fe5e9743072751dbb14c2d973388cb3b2 Gerrit-Change-Number: 21948 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 13:55:52 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 5 Jan 2021 13:55:52 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: abuse gsm48_encode_ra() to encode TAC References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21949 ) Change subject: gprs_bssgp: abuse gsm48_encode_ra() to encode TAC ...................................................................... gprs_bssgp: abuse gsm48_encode_ra() to encode TAC Change-Id: I986552aa52cf38b1c5290d2e5cd3ff2d1c36a4e5 --- M src/gb/gprs_bssgp.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/49/21949/1 diff --git a/src/gb/gprs_bssgp.c b/src/gb/gprs_bssgp.c index bf0e821..ba4b7c8 100644 --- a/src/gb/gprs_bssgp.c +++ b/src/gb/gprs_bssgp.c @@ -402,10 +402,10 @@ .mcc = ri->eutran.tai.mcc, .mnc = ri->eutran.tai.mnc, .mnc_3_digits = ri->eutran.tai.mnc_3_digits, + .lac = ri->eutran.tai.tac, /* intentional */ }; gsm48_encode_ra((struct gsm48_ra_id *)buf, &raid_temp); - osmo_store16be(ri->eutran.tai.tac, buf + 3); OSMO_ASSERT(ri->eutran.global_enb_id_len <= sizeof(ri->eutran.global_enb_id)); memcpy(buf + 5, ri->eutran.global_enb_id, -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21949 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I986552aa52cf38b1c5290d2e5cd3ff2d1c36a4e5 Gerrit-Change-Number: 21949 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 13:57:35 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 5 Jan 2021 13:57:35 +0000 Subject: Change in osmo-sgsn[master]: gb_proxy_peer: fix NULL pointer dereference in gbproxy_sgsn_alloc() In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21947 to look at the new patch set (#2). Change subject: gb_proxy_peer: fix NULL pointer dereference in gbproxy_sgsn_alloc() ...................................................................... gb_proxy_peer: fix NULL pointer dereference in gbproxy_sgsn_alloc() Change-Id: I1c592dd6f0da5f167290f38de3b30a1a04c4313d Fixes: CID#215868 --- M src/gbproxy/gb_proxy_peer.c 1 file changed, 2 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/47/21947/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21947 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I1c592dd6f0da5f167290f38de3b30a1a04c4313d Gerrit-Change-Number: 21947 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 14:12:05 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 14:12:05 +0000 Subject: Change in osmo-bts[master]: sysinfo: fix less-than-zero comparison of an unsigned value In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21942 ) Change subject: sysinfo: fix less-than-zero comparison of an unsigned value ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21942 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I3b216b70fbcc653ced734835ccb2c7f1932d9f0a Gerrit-Change-Number: 21942 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 05 Jan 2021 14:12:05 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 14:12:06 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 14:12:06 +0000 Subject: Change in osmo-bts[master]: sysinfo: fix less-than-zero comparison of an unsigned value In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21942 ) Change subject: sysinfo: fix less-than-zero comparison of an unsigned value ...................................................................... sysinfo: fix less-than-zero comparison of an unsigned value size_t is an unsigned type, while get_si4_ro_offset() returns int. Change-Id: I3b216b70fbcc653ced734835ccb2c7f1932d9f0a Fixes: CID#215888 --- M src/common/sysinfo.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/common/sysinfo.c b/src/common/sysinfo.c index 9eea539..d1f6f36 100644 --- a/src/common/sysinfo.c +++ b/src/common/sysinfo.c @@ -240,8 +240,8 @@ void regenerate_si4_restoctets(struct gsm_bts *bts) { uint8_t *si4_buf = GSM_BTS_SI(bts, SYSINFO_TYPE_4); - size_t si4_size; struct osmo_gsm48_si_ro_info si4ro_tmp; + int si4_size; /* If BSC has never set SI4, there's nothing to patch */ if (!GSM_BTS_HAS_SI(bts, SYSINFO_TYPE_4)) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21942 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I3b216b70fbcc653ced734835ccb2c7f1932d9f0a Gerrit-Change-Number: 21942 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 14:12:59 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 14:12:59 +0000 Subject: Change in osmo-sgsn[master]: gb_proxy_peer: sgsn can never be NULL in gbproxy_sgsn_by_nri() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21946 ) Change subject: gb_proxy_peer: sgsn can never be NULL in gbproxy_sgsn_by_nri() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21946 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Iffdeb18e0a5575a2a09129eed9b8a41c3340dcbf Gerrit-Change-Number: 21946 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 05 Jan 2021 14:12:59 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 14:14:01 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 14:14:01 +0000 Subject: Change in osmo-sgsn[master]: gb_proxy_peer: fix NULL pointer dereference in gbproxy_sgsn_alloc() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21947 ) Change subject: gb_proxy_peer: fix NULL pointer dereference in gbproxy_sgsn_alloc() ...................................................................... Patch Set 2: I don't understand what this changes? Both before and after this patch, it will fail if sgsn or sgsn->name are NULL? -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21947 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I1c592dd6f0da5f167290f38de3b30a1a04c4313d Gerrit-Change-Number: 21947 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-Comment-Date: Tue, 05 Jan 2021 14:14:01 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 14:15:13 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 14:15:13 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: always check rc of osmo_sockaddr_str_from_sockaddr() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21944 ) Change subject: gprs_ns2_sns: always check rc of osmo_sockaddr_str_from_sockaddr() ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21944 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I26644fe544c82c90767ec1a9709918474bd1be53 Gerrit-Change-Number: 21944 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Assignee: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 05 Jan 2021 14:15:13 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 14:15:32 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 14:15:32 +0000 Subject: Change in libosmocore[master]: gprs_ns2_fr: fix resource leaks due to early return in set_ifupdown() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21945 ) Change subject: gprs_ns2_fr: fix resource leaks due to early return in set_ifupdown() ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21945 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie52bf8ac6d62e7f2d760294bf2fe90119cc96b4b Gerrit-Change-Number: 21945 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Tue, 05 Jan 2021 14:15:32 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 14:16:04 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 14:16:04 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: abuse gsm48_encode_ra() to encode TAC In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21949 ) Change subject: gprs_bssgp: abuse gsm48_encode_ra() to encode TAC ...................................................................... Patch Set 1: why? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21949 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I986552aa52cf38b1c5290d2e5cd3ff2d1c36a4e5 Gerrit-Change-Number: 21949 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-Comment-Date: Tue, 05 Jan 2021 14:16:04 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 14:16:23 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 14:16:23 +0000 Subject: Change in osmo-sgsn[master]: gb_proxy_peer: sgsn can never be NULL in gbproxy_sgsn_by_nri() In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21946 ) Change subject: gb_proxy_peer: sgsn can never be NULL in gbproxy_sgsn_by_nri() ...................................................................... gb_proxy_peer: sgsn can never be NULL in gbproxy_sgsn_by_nri() Redundant check makes Coverity think that sgsn can be NULL... Change-Id: Iffdeb18e0a5575a2a09129eed9b8a41c3340dcbf Fixes: CID#215870 --- M src/gbproxy/gb_proxy_peer.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/gbproxy/gb_proxy_peer.c b/src/gbproxy/gb_proxy_peer.c index 94f9c03..863bcce 100644 --- a/src/gbproxy/gb_proxy_peer.c +++ b/src/gbproxy/gb_proxy_peer.c @@ -482,7 +482,7 @@ llist_for_each_entry(sgsn, &cfg->sgsns, list) { if (osmo_nri_v_matches_ranges(nri, sgsn->pool.nri_ranges)) { /* Also check if the NRI we're looking for is a NULL NRI */ - if (sgsn && null_nri) { + if (null_nri) { if (osmo_nri_v_matches_ranges(nri, cfg->pool.null_nri_ranges)) *null_nri = true; else -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21946 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Iffdeb18e0a5575a2a09129eed9b8a41c3340dcbf Gerrit-Change-Number: 21946 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 14:16:48 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 14:16:48 +0000 Subject: Change in osmo-pcu[master]: .gitignore: ignore files ending with ~ In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21940 ) Change subject: .gitignore: ignore files ending with ~ ...................................................................... .gitignore: ignore files ending with ~ I'm lately getting this kind of files in git after building: config.guess~ config.sub~ configure~ install-sh~ Let's ignore them. Change-Id: I976e3a33f638f4cd19650b9c799e61713d73bf8a --- M .gitignore 1 file changed, 1 insertion(+), 0 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, approved diff --git a/.gitignore b/.gitignore index 01f4f47..c8b1d06 100644 --- a/.gitignore +++ b/.gitignore @@ -20,6 +20,7 @@ missing *libtool ltmain.sh +*~ core core.* -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21940 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I976e3a33f638f4cd19650b9c799e61713d73bf8a Gerrit-Change-Number: 21940 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 14:16:59 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 5 Jan 2021 14:16:59 +0000 Subject: Change in osmo-sgsn[master]: gb_proxy_peer: fix NULL pointer dereference in gbproxy_sgsn_alloc() In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21947 ) Change subject: gb_proxy_peer: fix NULL pointer dereference in gbproxy_sgsn_alloc() ...................................................................... Patch Set 2: > Patch Set 2: > > I don't understand what this changes? Both before and after this patch, it will fail if sgsn or sgsn->name are NULL? LOGPSGSN_CAT() dereferences sgsn->nse in order to get NSEI. -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21947 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I1c592dd6f0da5f167290f38de3b30a1a04c4313d Gerrit-Change-Number: 21947 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-Comment-Date: Tue, 05 Jan 2021 14:16:59 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 14:17:12 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 14:17:12 +0000 Subject: Change in osmo-bsc[master]: ericsson_rbs2000: fix unreachable code in inp_sig_cb() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21941 ) Change subject: ericsson_rbs2000: fix unreachable code in inp_sig_cb() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21941 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I20674945ddb80ceb1a1917e1be8572595764b370 Gerrit-Change-Number: 21941 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 05 Jan 2021 14:17:12 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 14:17:14 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 14:17:14 +0000 Subject: Change in osmo-bsc[master]: ericsson_rbs2000: fix unreachable code in inp_sig_cb() In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21941 ) Change subject: ericsson_rbs2000: fix unreachable code in inp_sig_cb() ...................................................................... ericsson_rbs2000: fix unreachable code in inp_sig_cb() Change-Id: I20674945ddb80ceb1a1917e1be8572595764b370 Fixes: CID#215885 --- M src/osmo-bsc/bts_ericsson_rbs2000.c 1 file changed, 0 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/src/osmo-bsc/bts_ericsson_rbs2000.c b/src/osmo-bsc/bts_ericsson_rbs2000.c index 4fbf057..fa0dab8 100644 --- a/src/osmo-bsc/bts_ericsson_rbs2000.c +++ b/src/osmo-bsc/bts_ericsson_rbs2000.c @@ -142,7 +142,6 @@ om2k_bts_fsm_reset(isd->trx->bts); else om2k_trx_fsm_reset(isd->trx); - break; /* Some datalink for a given TEI/SAPI went down, try to re-start it */ e1i_ts = &isd->line->ts[isd->ts_nr-1]; OSMO_ASSERT(e1i_ts->type == E1INP_TS_TYPE_SIGN); -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21941 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I20674945ddb80ceb1a1917e1be8572595764b370 Gerrit-Change-Number: 21941 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 14:18:45 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 14:18:45 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: fix uninitialized struct fields in bssgp_create_rim_ri() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21948 ) Change subject: gprs_bssgp: fix uninitialized struct fields in bssgp_create_rim_ri() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21948 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ifc3dda1fe5e9743072751dbb14c2d973388cb3b2 Gerrit-Change-Number: 21948 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 05 Jan 2021 14:18:45 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 14:19:17 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 14:19:17 +0000 Subject: Change in pysim[master]: sysmoISIM-SJA2: Enable Service 106 and 107 after successfully program... In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/21851 ) Change subject: sysmoISIM-SJA2: Enable Service 106 and 107 after successfully programming EF.ePDGId and EF.ePDGSelection ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/21851 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ica067915b9d06ba67f53da7d628f8bacde1ab80e Gerrit-Change-Number: 21851 Gerrit-PatchSet: 5 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 05 Jan 2021 14:19:17 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 14:19:26 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 14:19:26 +0000 Subject: Change in pysim[master]: Re-purpose helper method to be used for parsing Address TLV Object in... In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/21852 ) Change subject: Re-purpose helper method to be used for parsing Address TLV Object in general ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/21852 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ifd8a240f6b5c7736e58a8151295c30ec5b32ed5f Gerrit-Change-Number: 21852 Gerrit-PatchSet: 2 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 05 Jan 2021 14:19:26 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 14:19:32 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 14:19:32 +0000 Subject: Change in pysim[master]: sysmoISIM-SJA2: Enable Service 106 and 107 after successfully program... In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/21851 ) Change subject: sysmoISIM-SJA2: Enable Service 106 and 107 after successfully programming EF.ePDGId and EF.ePDGSelection ...................................................................... sysmoISIM-SJA2: Enable Service 106 and 107 after successfully programming EF.ePDGId and EF.ePDGSelection Service 106 and 107 must be set available in order to ME to consider as supported in USIM: 1. ePDG configuration Information support 2. ePDG configuration Information configured Change-Id: Ica067915b9d06ba67f53da7d628f8bacde1ab80e --- M pySim/cards.py 1 file changed, 18 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/pySim/cards.py b/pySim/cards.py index dc612df..1036717 100644 --- a/pySim/cards.py +++ b/pySim/cards.py @@ -302,6 +302,13 @@ else: return ([None, None], sw) + def update_ust(self, service, bit=1): + (res, sw) = self._scc.read_binary(EF_USIM_ADF_map['UST']) + if sw == '9000': + content = enc_st(res, service, bit) + (res, sw) = self._scc.update_binary(EF_USIM_ADF_map['UST'], content) + return sw + class _MagicSimBase(Card): """ @@ -1216,6 +1223,17 @@ print("Programming ePDGSelection failed with code %s"%sw) + # After successfully programming EF.ePDGId and EF.ePDGSelection, + # Set service 106 and 107 as available in EF.UST + if self.file_exists(EF_USIM_ADF_map['UST']): + if p.get('epdgSelection') and p.get('epdgid'): + sw = self.update_ust(106, 1) + if sw != '9000': + print("Programming UST failed with code %s"%sw) + sw = self.update_ust(107, 1) + if sw != '9000': + print("Programming UST failed with code %s"%sw) + return -- To view, visit https://gerrit.osmocom.org/c/pysim/+/21851 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ica067915b9d06ba67f53da7d628f8bacde1ab80e Gerrit-Change-Number: 21851 Gerrit-PatchSet: 5 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 14:19:32 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 14:19:32 +0000 Subject: Change in pysim[master]: Re-purpose helper method to be used for parsing Address TLV Object in... In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/21852 ) Change subject: Re-purpose helper method to be used for parsing Address TLV Object in general ...................................................................... Re-purpose helper method to be used for parsing Address TLV Object in general The Address TLV object is used in EF.P-CSCF Address, EF.ePDGId and EF.ePDGIdEm. See 3GPP TS 31.102 version 13.4.0 Release 13, section 4.2.8, 4.2.102 and 4.2.104. Address TLV Object format Tag (1 Byte) - '80' Length (1 Byte) Address Type (1 Byte) - '00' (FQDN), '01' (IPv4), '02' (IPv6) Address (Address Length Bytes) Change-Id: Ifd8a240f6b5c7736e58a8151295c30ec5b32ed5f --- M pySim-read.py M pySim/cards.py M pySim/utils.py 3 files changed, 14 insertions(+), 13 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/pySim-read.py b/pySim-read.py index 2be34bd..c8b1a5d 100755 --- a/pySim-read.py +++ b/pySim-read.py @@ -35,7 +35,7 @@ from pySim.commands import SimCardCommands from pySim.cards import card_detect, Card from pySim.utils import h2b, swap_nibbles, rpad, dec_imsi, dec_iccid, dec_msisdn -from pySim.utils import format_xplmn_w_act, dec_spn, dec_st, init_reader, dec_epdgid +from pySim.utils import format_xplmn_w_act, dec_spn, dec_st, init_reader, dec_addr_tlv from pySim.utils import h2s, format_ePDGSelection def parse_options(): diff --git a/pySim/cards.py b/pySim/cards.py index 1036717..1662fc5 100644 --- a/pySim/cards.py +++ b/pySim/cards.py @@ -267,12 +267,12 @@ def read_epdgid(self): (res, sw) = self._scc.read_binary(EF_USIM_ADF_map['ePDGId']) if sw == '9000': - return (dec_epdgid(res), sw) + return (dec_addr_tlv(res), sw) else: return (None, sw) def update_epdgid(self, epdgid): - epdgid_tlv = enc_epdgid(epdgid) + epdgid_tlv = enc_addr_tlv(epdgid) data, sw = self._scc.update_binary( EF_USIM_ADF_map['ePDGId'], epdgid_tlv) return sw diff --git a/pySim/utils.py b/pySim/utils.py index cdb2926..38cc580 100644 --- a/pySim/utils.py +++ b/pySim/utils.py @@ -500,19 +500,19 @@ return s -def dec_epdgid(hexstr): +def dec_addr_tlv(hexstr): """ - Decode ePDG Id to get EF.ePDGId or EF.ePDGIdEm. - See 3GPP TS 31.102 version 13.4.0 Release 13, section 4.2.102 and 4.2.104. + Decode hex string to get EF.P-CSCF Address or EF.ePDGId or EF.ePDGIdEm. + See 3GPP TS 31.102 version 13.4.0 Release 13, section 4.2.8, 4.2.102 and 4.2.104. """ # Convert from hex str to int bytes list - epdgid_bytes = h2i(hexstr) + addr_tlv_bytes = h2i(hexstr) s = "" # Get list of tuples containing parsed TLVs - tlvs = TLV_parser(epdgid_bytes) + tlvs = TLV_parser(addr_tlv_bytes) for tlv in tlvs: # tlv = (T, L, [V]) @@ -531,6 +531,7 @@ # First byte in the value has the address type addr_type = tlv[2][0] # TODO: Support parsing of IPv4 and IPv6 + # Address Type: 0x00 (FQDN), 0x01 (IPv4), 0x02 (IPv6), other (Reserved) if addr_type == 0x00: #FQDN # Skip address tye byte i.e. first byte in value list content = tlv[2][1:] @@ -538,20 +539,20 @@ return s -def enc_epdgid(epdg_addr, addr_type='00'): +def enc_addr_tlv(addr, addr_type='00'): """ - Encode ePDG Id so it can be stored to EF.ePDGId or EF.ePDGIdEm. - See 3GPP TS 31.102 version 13.4.0 Release 13, section 4.2.102 and 4.2.104. + Encode address TLV object used in EF.P-CSCF Address, EF.ePDGId and EF.ePDGIdEm. + See 3GPP TS 31.102 version 13.4.0 Release 13, section 4.2.8, 4.2.102 and 4.2.104. Default values: - - addr_type: 00 - FQDN format of ePDG Address + - addr_type: 00 - FQDN format of Address """ s = "" # TODO: Encoding of IPv4 and IPv6 address if addr_type == '00': - hex_str = s2h(epdg_addr) + hex_str = s2h(addr) s += '80' + ('%02x' % ((len(hex_str)//2)+1)) + '00' + hex_str return s -- To view, visit https://gerrit.osmocom.org/c/pysim/+/21852 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ifd8a240f6b5c7736e58a8151295c30ec5b32ed5f Gerrit-Change-Number: 21852 Gerrit-PatchSet: 2 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 14:19:33 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 14:19:33 +0000 Subject: Change in pysim[master]: cards: Define ISIM Card class In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/21853 ) Change subject: cards: Define ISIM Card class ...................................................................... cards: Define ISIM Card class This commit introduces a ISIM generic Card class which can hold parameters/functions specific to ISIM application on UICC Change-Id: I242e679ff2f8831175e76d2fcc5fb285d28bd890 --- M pySim/cards.py 1 file changed, 4 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/pySim/cards.py b/pySim/cards.py index 1662fc5..308d262 100644 --- a/pySim/cards.py +++ b/pySim/cards.py @@ -309,6 +309,10 @@ (res, sw) = self._scc.update_binary(EF_USIM_ADF_map['UST'], content) return sw +class IsimCard(Card): + def __init__(self, ssc): + super(IsimCard, self).__init__(ssc) + class _MagicSimBase(Card): """ -- To view, visit https://gerrit.osmocom.org/c/pysim/+/21853 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I242e679ff2f8831175e76d2fcc5fb285d28bd890 Gerrit-Change-Number: 21853 Gerrit-PatchSet: 2 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 14:19:53 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 14:19:53 +0000 Subject: Change in pysim[master]: sysmoISIM-SJA2: Inherit ISIM Card class as SysmoISIMSJA2 UICC contain... In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/21854 ) Change subject: sysmoISIM-SJA2: Inherit ISIM Card class as SysmoISIMSJA2 UICC contains an ISIM ...................................................................... sysmoISIM-SJA2: Inherit ISIM Card class as SysmoISIMSJA2 UICC contains an ISIM Change-Id: I87b318d2df491b9d3c90aad0c38be9bd41e6cf56 --- M pySim/cards.py 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/pySim/cards.py b/pySim/cards.py index 308d262..498c34e 100644 --- a/pySim/cards.py +++ b/pySim/cards.py @@ -1088,7 +1088,7 @@ return None -class SysmoISIMSJA2(UsimCard): +class SysmoISIMSJA2(UsimCard, IsimCard): """ sysmocom sysmoISIM-SJA2 """ -- To view, visit https://gerrit.osmocom.org/c/pysim/+/21854 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I87b318d2df491b9d3c90aad0c38be9bd41e6cf56 Gerrit-Change-Number: 21854 Gerrit-PatchSet: 2 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 14:19:54 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 14:19:54 +0000 Subject: Change in pysim[master]: ts_31_103.py: Add ADF map for files at ISIM ADF In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/21855 ) Change subject: ts_31_103.py: Add ADF map for files at ISIM ADF ...................................................................... ts_31_103.py: Add ADF map for files at ISIM ADF EF_ISIM_ADF_map introduced in this commit maps EF file names in ISIM ADF to its repective Identifier and serves as a lookup table Change-Id: I95c8691d9112541c2c0e01857b19681c00f322f2 --- M pySim/ts_31_103.py 1 file changed, 22 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/pySim/ts_31_103.py b/pySim/ts_31_103.py index 7fb984d..0d08fe6 100644 --- a/pySim/ts_31_103.py +++ b/pySim/ts_31_103.py @@ -44,3 +44,25 @@ 18: 'IMS configuration data', 19: 'XCAP Configuration Data' } + +EF_ISIM_ADF_map = { + 'IST': '6F07', + 'IMPI': '6F02', + 'DOMAIN': '6F03', + 'IMPU': '6F04', + 'AD': '6FAD', + 'ARR': '6F06', + 'PCSCF': '6F09', + 'GBAP': '6FD5', + 'GBANL': '6FD7', + 'NAFKCA': '6FDD', + 'UICCIARI': '6FE7', + 'SMS': '6F3C', + 'SMSS': '6F43', + 'SMSR': '6F47', + 'SMSP': '6F42', + 'FromPreferred': '6FF7', + 'IMSConfigData': '6FF8', + 'XCAPConfigData': '6FFC', + 'WebRTCURI': '6FFA' +} -- To view, visit https://gerrit.osmocom.org/c/pysim/+/21855 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I95c8691d9112541c2c0e01857b19681c00f322f2 Gerrit-Change-Number: 21855 Gerrit-PatchSet: 2 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 14:19:54 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 14:19:54 +0000 Subject: Change in pysim[master]: pySim-read.py: Enabled reading P-CSCF address from ISIM In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/21856 ) Change subject: pySim-read.py: Enabled reading P-CSCF address from ISIM ...................................................................... pySim-read.py: Enabled reading P-CSCF address from ISIM As per 3GPP TS 31.103 version 14.2.0 Release 14, this EF can found under ADF.ISIM at File Id 6f09. This EF contains one or more Proxy Call Session Control Function addresses. The first record in the EF shall be considered to be of the highest priority If ISIM service n?1 and/or service n?5 is available, this file shall be present. Change-Id: I7a701212c84d3dc5d4c8ccbcf638c97ceda33654 --- M pySim-read.py M pySim/cards.py M pysim-testdata/sysmoISIM-SJA2.ok 3 files changed, 34 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/pySim-read.py b/pySim-read.py index c8b1a5d..b6eeab7 100755 --- a/pySim-read.py +++ b/pySim-read.py @@ -30,7 +30,7 @@ import sys from pySim.ts_51_011 import EF, DF, EF_SST_map, EF_AD_mode_map from pySim.ts_31_102 import EF_UST_map, EF_USIM_ADF_map -from pySim.ts_31_103 import EF_IST_map +from pySim.ts_31_103 import EF_IST_map, EF_ISIM_ADF_map from pySim.commands import SimCardCommands from pySim.cards import card_detect, Card @@ -294,6 +294,16 @@ except Exception as e: print("ePDGSelection: Can't read file -- " + str(e)) + # Select ISIM application by its AID + if '9000' == card.select_adf_by_aid(adf="isim"): + #EF.P-CSCF - P-CSCF Address + try: + if card.file_exists(EF_ISIM_ADF_map['PCSCF']): + res = card.read_pcscf() + print("P-CSCF:\n%s" % (len(res) and res or '\tNot available\n',)) + except Exception as e: + print("P-CSCF: Can't read file -- " + str(e)) + # Check whether we have th AID of ISIM, if so select it by its AID # EF.IST - File Id in ADF ISIM : 6f07 if '9000' == card.select_adf_by_aid(adf="isim"): diff --git a/pySim/cards.py b/pySim/cards.py index 498c34e..b9bd699 100644 --- a/pySim/cards.py +++ b/pySim/cards.py @@ -25,6 +25,7 @@ from pySim.ts_51_011 import EF, DF from pySim.ts_31_102 import EF_USIM_ADF_map +from pySim.ts_31_103 import EF_ISIM_ADF_map from pySim.utils import * from smartcard.util import toBytes @@ -313,6 +314,18 @@ def __init__(self, ssc): super(IsimCard, self).__init__(ssc) + def read_pcscf(self): + rec_cnt = self._scc.record_count(EF_ISIM_ADF_map['PCSCF']) + pcscf_recs = "" + for i in range(0, rec_cnt): + (res, sw) = self._scc.read_record(EF_ISIM_ADF_map['PCSCF'], i + 1) + if sw == '9000': + content = dec_addr_tlv(res) + pcscf_recs += "%s" % (len(content) and content or '\tNot available\n') + else: + pcscf_recs += "\tP-CSCF: Can't read, response code = %s\n" % (sw) + return pcscf_recs + class _MagicSimBase(Card): """ diff --git a/pysim-testdata/sysmoISIM-SJA2.ok b/pysim-testdata/sysmoISIM-SJA2.ok index 94c4328..03de57f 100644 --- a/pysim-testdata/sysmoISIM-SJA2.ok +++ b/pysim-testdata/sysmoISIM-SJA2.ok @@ -172,6 +172,16 @@ ffffffffffff # unused ffffffffffff # unused +P-CSCF: + Not available + Not available + Not available + Not available + Not available + Not available + Not available + Not available + ISIM Service Table: 190200 Service 1 - P-CSCF address Service 4 - GBA-based Local Key Establishment Mechanism -- To view, visit https://gerrit.osmocom.org/c/pysim/+/21856 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I7a701212c84d3dc5d4c8ccbcf638c97ceda33654 Gerrit-Change-Number: 21856 Gerrit-PatchSet: 2 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 14:20:34 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 14:20:34 +0000 Subject: Change in pysim[master]: sysmoISIM-SJA2: Add support for programming Proxy Call Session Contro... In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/21857 ) Change subject: sysmoISIM-SJA2: Add support for programming Proxy Call Session Control Function address ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/21857 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ic654baa93e2ecb91ced596b49dde4c1f208ecda2 Gerrit-Change-Number: 21857 Gerrit-PatchSet: 2 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 05 Jan 2021 14:20:34 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 14:21:17 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 14:21:17 +0000 Subject: Change in pysim[master]: pySim-read.py: Enable reading of Home Network Domain Name from ISIM In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/21858 ) Change subject: pySim-read.py: Enable reading of Home Network Domain Name from ISIM ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/21858 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ia3c68c717d105e10d52a8e9d170480da2ad7d65a Gerrit-Change-Number: 21858 Gerrit-PatchSet: 3 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 05 Jan 2021 14:21:17 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 14:21:38 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 14:21:38 +0000 Subject: Change in pysim[master]: sysmoISIM-SJA2: Disable Service 95, 99, 115 in EF.UST in case ISIM is... In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/21859 ) Change subject: sysmoISIM-SJA2: Disable Service 95, 99, 115 in EF.UST in case ISIM is present ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/21859 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Id9709746de99585ad31c4e9659323484fda87b14 Gerrit-Change-Number: 21859 Gerrit-PatchSet: 4 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 05 Jan 2021 14:21:38 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 14:21:54 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 14:21:54 +0000 Subject: Change in pysim[master]: utils.py: Add helper method to get type of address (FQDN, IPv4, IPv6) In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/21860 ) Change subject: utils.py: Add helper method to get type of address (FQDN, IPv4, IPv6) ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/21860 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I0fabd4f17bbb11f6bb191c1a9e6276427f9d001f Gerrit-Change-Number: 21860 Gerrit-PatchSet: 5 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 05 Jan 2021 14:21:54 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 14:22:15 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 5 Jan 2021 14:22:15 +0000 Subject: Change in osmo-pcu[master]: gprs_rlcmac_sched: fix incorrect SBA frame number assignment References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21950 ) Change subject: gprs_rlcmac_sched: fix incorrect SBA frame number assignment ...................................................................... gprs_rlcmac_sched: fix incorrect SBA frame number assignment There is a big difference between: if ((a = foo() != 0xffffffff)) { ... } and if ((a = foo()) != 0xffffffff) { ... } In the first case, 'a' is the result of '!=' operation, i.e. either 0 (false) or 1 (true). In the second case, 'a' will hold the value returned by foo(), and this is exactly what must have been used in gprs_rlcmac_rcv_rts_block(). Change-Id: Ifd607ae8a33382e48f9d9e50a28a4bdf4eaf73a2 Related: CID#215835 --- M src/gprs_rlcmac_sched.cpp 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/50/21950/1 diff --git a/src/gprs_rlcmac_sched.cpp b/src/gprs_rlcmac_sched.cpp index caf121f..d7958c4 100644 --- a/src/gprs_rlcmac_sched.cpp +++ b/src/gprs_rlcmac_sched.cpp @@ -448,7 +448,7 @@ block_nr, poll_fn, tbf_name(tbf_cand.poll)); usf = USF_UNUSED; /* else. check for sba */ - } else if ((sba_fn = bts->bts->sba()->sched(trx, ts, fn, block_nr) != 0xffffffff)) { + } else if ((sba_fn = bts->bts->sba()->sched(trx, ts, fn, block_nr)) != 0xffffffff) { LOGP(DRLCMACSCHED, LOGL_DEBUG, "Received RTS for PDCH: TRX=%d " "TS=%d FN=%d block_nr=%d scheduling free USF for " "single block allocation at FN=%d\n", trx, ts, fn, -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21950 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ifd607ae8a33382e48f9d9e50a28a4bdf4eaf73a2 Gerrit-Change-Number: 21950 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 14:22:19 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 14:22:19 +0000 Subject: Change in pysim[master]: sysmoISIM-SJA2: Add support for programming IMS Home Network Domain Name In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/21866 ) Change subject: sysmoISIM-SJA2: Add support for programming IMS Home Network Domain Name ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/21866 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I3c823203aee88734ae423e4ad73da1027a4eaeed Gerrit-Change-Number: 21866 Gerrit-PatchSet: 5 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 05 Jan 2021 14:22:19 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 14:22:31 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 14:22:31 +0000 Subject: Change in pysim[master]: sysmoISIM-SJA2: Fill unused bytes of Home ePDGId with 'f' In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/21867 ) Change subject: sysmoISIM-SJA2: Fill unused bytes of Home ePDGId with 'f' ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/21867 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ia0464f230afcb0f37465d3ed0dfd8f417b53b0c3 Gerrit-Change-Number: 21867 Gerrit-PatchSet: 5 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 05 Jan 2021 14:22:31 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 14:22:41 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 14:22:41 +0000 Subject: Change in pysim[master]: sysmoISIM-SJA2: Add support for programming Proxy Call Session Contro... In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/21857 ) Change subject: sysmoISIM-SJA2: Add support for programming Proxy Call Session Control Function address ...................................................................... sysmoISIM-SJA2: Add support for programming Proxy Call Session Control Function address Example: ./pySim-prog.py -p 0 -x 001 -y 01 -s 8988211900000000004 -i 001011234567895 -k 8baf473f2f8fd09487cccbd7097c6862 --op 11111111111111111111111111111111 -o 8E27B6AF0E692E750F32667A3B14605D -a 85524953 -n isim.test --msisdn 0598765432100 --epdgid epdg.epc.mnc001.mcc001.pub.3gppnetwork.org --pcscf pcscf.testims.org Change-Id: Ic654baa93e2ecb91ced596b49dde4c1f208ecda2 --- M pySim-prog.py M pySim/cards.py 2 files changed, 24 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/pySim-prog.py b/pySim-prog.py index 93ae924..7ad57e6 100755 --- a/pySim-prog.py +++ b/pySim-prog.py @@ -153,6 +153,9 @@ parser.add_option("--epdgSelection", dest="epdgSelection", help="Set PLMN for ePDG Selection Information. (Only Operator Identifier FQDN format supported)", ) + parser.add_option("--pcscf", dest="pcscf", + help="Set Proxy Call Session Control Function (P-CSCF) Address. (Only FQDN format supported)", + ) parser.add_option("--read-imsi", dest="read_imsi", action="store_true", help="Read the IMSI from the CARD", default=False ) @@ -460,6 +463,7 @@ 'msisdn' : opts.msisdn, 'epdgid' : opts.epdgid, 'epdgSelection' : opts.epdgSelection, + 'pcscf' : opts.pcscf, } diff --git a/pySim/cards.py b/pySim/cards.py index b9bd699..0b2d2a6 100644 --- a/pySim/cards.py +++ b/pySim/cards.py @@ -326,6 +326,16 @@ pcscf_recs += "\tP-CSCF: Can't read, response code = %s\n" % (sw) return pcscf_recs + def update_pcscf(self, pcscf): + if len(pcscf) > 0: + content = enc_addr_tlv(pcscf) + else: + # Just the tag value + content = '80' + rec_size_bytes = self._scc.record_size(EF_ISIM_ADF_map['PCSCF']) + data, sw = self._scc.update_record(EF_ISIM_ADF_map['PCSCF'], 1, rpad(content, rec_size_bytes*2)) + return sw + class _MagicSimBase(Card): """ @@ -1208,6 +1218,16 @@ if p.get('opc'): self._scc.update_binary('af20', p['opc'], 17) + # update EF.P-CSCF in ADF.ISIM + if self.file_exists(EF_ISIM_ADF_map['PCSCF']): + if p.get('pcscf'): + sw = self.update_pcscf(p['pcscf']) + else: + sw = self.update_pcscf("") + if sw != '9000': + print("Programming P-CSCF failed with code %s"%sw) + + if '9000' == self.select_adf_by_aid(): # update EF-USIM_AUTH_KEY in ADF.USIM if p.get('ki'): -- To view, visit https://gerrit.osmocom.org/c/pysim/+/21857 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ic654baa93e2ecb91ced596b49dde4c1f208ecda2 Gerrit-Change-Number: 21857 Gerrit-PatchSet: 2 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 14:22:41 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 14:22:41 +0000 Subject: Change in pysim[master]: pySim-read.py: Enable reading of Home Network Domain Name from ISIM In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/21858 ) Change subject: pySim-read.py: Enable reading of Home Network Domain Name from ISIM ...................................................................... pySim-read.py: Enable reading of Home Network Domain Name from ISIM As per TS1.103 version 14.2.0, this EF contains the home operator's network domain name. The Home Network Domain Name, i.e. FQDN shall be encoded to an octet string according to UTF-8 encoding rules as specified in IETF RFC 3629 Change-Id: Ia3c68c717d105e10d52a8e9d170480da2ad7d65a --- M pySim-read.py M pySim/cards.py M pysim-testdata/sysmoISIM-SJA2.ok 3 files changed, 22 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/pySim-read.py b/pySim-read.py index b6eeab7..f63205a 100755 --- a/pySim-read.py +++ b/pySim-read.py @@ -304,6 +304,17 @@ except Exception as e: print("P-CSCF: Can't read file -- " + str(e)) + # EF.DOMAIN - Home Network Domain Name e.g. ims.mncXXX.mccXXX.3gppnetwork.org + try: + if card.file_exists(EF_ISIM_ADF_map['DOMAIN']): + (res, sw) = card.read_domain() + if sw == '9000': + print("Home Network Domain Name: %s" % (len(res) and res or 'Not available',)) + else: + print("Home Network Domain Name: Can't read, response code = %s" % (sw,)) + except Exception as e: + print("Home Network Domain Name: Can't read file -- " + str(e)) + # Check whether we have th AID of ISIM, if so select it by its AID # EF.IST - File Id in ADF ISIM : 6f07 if '9000' == card.select_adf_by_aid(adf="isim"): diff --git a/pySim/cards.py b/pySim/cards.py index 0b2d2a6..277b831 100644 --- a/pySim/cards.py +++ b/pySim/cards.py @@ -336,6 +336,16 @@ data, sw = self._scc.update_record(EF_ISIM_ADF_map['PCSCF'], 1, rpad(content, rec_size_bytes*2)) return sw + def read_domain(self): + (res, sw) = self._scc.read_binary(EF_ISIM_ADF_map['DOMAIN']) + if sw == '9000': + # Skip the inital tag value ('80') byte and get length of contents + length = int(res[2:4], 16) + content = h2s(res[4:4+(length*2)]) + return (content, sw) + else: + return (None, sw) + class _MagicSimBase(Card): """ diff --git a/pysim-testdata/sysmoISIM-SJA2.ok b/pysim-testdata/sysmoISIM-SJA2.ok index 03de57f..4cdd9d5 100644 --- a/pysim-testdata/sysmoISIM-SJA2.ok +++ b/pysim-testdata/sysmoISIM-SJA2.ok @@ -182,6 +182,7 @@ Not available Not available +Home Network Domain Name: Not available ISIM Service Table: 190200 Service 1 - P-CSCF address Service 4 - GBA-based Local Key Establishment Mechanism -- To view, visit https://gerrit.osmocom.org/c/pysim/+/21858 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ia3c68c717d105e10d52a8e9d170480da2ad7d65a Gerrit-Change-Number: 21858 Gerrit-PatchSet: 3 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 14:22:41 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 14:22:41 +0000 Subject: Change in pysim[master]: sysmoISIM-SJA2: Disable Service 95, 99, 115 in EF.UST in case ISIM is... In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/21859 ) Change subject: sysmoISIM-SJA2: Disable Service 95, 99, 115 in EF.UST in case ISIM is present ...................................................................... sysmoISIM-SJA2: Disable Service 95, 99, 115 in EF.UST in case ISIM is present As per TS 31.102 version 15.2.0 Release 15, section 4.2.8, EFUST (USIM Service Table), Service n?95, n?99 and n?115 shall not be declared available if an ISIM application is present on the UICC. Change-Id: Id9709746de99585ad31c4e9659323484fda87b14 --- M pySim/cards.py 1 file changed, 11 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/pySim/cards.py b/pySim/cards.py index 277b831..42460fe 100644 --- a/pySim/cards.py +++ b/pySim/cards.py @@ -1272,6 +1272,7 @@ # After successfully programming EF.ePDGId and EF.ePDGSelection, # Set service 106 and 107 as available in EF.UST + # Disable service 95, 99, 115 if ISIM application is present if self.file_exists(EF_USIM_ADF_map['UST']): if p.get('epdgSelection') and p.get('epdgid'): sw = self.update_ust(106, 1) @@ -1281,6 +1282,16 @@ if sw != '9000': print("Programming UST failed with code %s"%sw) + sw = self.update_ust(95, 0) + if sw != '9000': + print("Programming UST failed with code %s"%sw) + sw = self.update_ust(99, 0) + if sw != '9000': + print("Programming UST failed with code %s"%sw) + sw = self.update_ust(115, 0) + if sw != '9000': + print("Programming UST failed with code %s"%sw) + return -- To view, visit https://gerrit.osmocom.org/c/pysim/+/21859 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Id9709746de99585ad31c4e9659323484fda87b14 Gerrit-Change-Number: 21859 Gerrit-PatchSet: 4 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 14:22:42 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 14:22:42 +0000 Subject: Change in pysim[master]: utils.py: Add helper method to get type of address (FQDN, IPv4, IPv6) In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/21860 ) Change subject: utils.py: Add helper method to get type of address (FQDN, IPv4, IPv6) ...................................................................... utils.py: Add helper method to get type of address (FQDN, IPv4, IPv6) The function takes address string as input, then validates it and returns the type. Return: 0x00 (FQDN), 0x01 (IPv4), 0x02 (IPv6), None (Bad address format) Change-Id: I0fabd4f17bbb11f6bb191c1a9e6276427f9d001f --- M pySim/utils.py 1 file changed, 58 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/pySim/utils.py b/pySim/utils.py index 38cc580..c5a38d8 100644 --- a/pySim/utils.py +++ b/pySim/utils.py @@ -685,3 +685,61 @@ (rec_info['mcc'], rec_info['mnc'], rec_info['epdg_priority'], rec_info['epdg_fqdn_format']) s += "\t%s # %s\n" % (rec_data, rec_str) return s + +def get_addr_type(addr): + """ + Validates the given address and returns it's type (FQDN or IPv4 or IPv6) + Return: 0x00 (FQDN), 0x01 (IPv4), 0x02 (IPv6), None (Bad address argument given) + + TODO: Handle IPv6 + """ + + # Empty address string + if not len(addr): + return None + + import sys + # Handle python3 and python2 - unicode + if sys.version_info[0] < 3: + addr_str = unicode(addr) + else: + addr_str = addr + + addr_list = addr.split('.') + + # Check for IPv4/IPv6 + try: + import ipaddress + # Throws ValueError if addr is not correct + ipa = ipaddress.ip_address(addr_str) + + if ipa.version == 4: + return 0x01 + elif ipa.version == 6: + return 0x02 + except Exception as e: + invalid_ipv4 = True + for i in addr_list: + # Invalid IPv4 may qualify for a valid FQDN, so make check here + # e.g. 172.24.15.300 + import re + if not re.match('^[0-9_]+$', i): + invalid_ipv4 = False + break + + if invalid_ipv4: + return None + + fqdn_flag = True + for i in addr_list: + # Only Alpha-numeric characters and hyphen - RFC 1035 + import re + if not re.match("^[a-zA-Z0-9]+(?:-[a-zA-Z0-9]+)?$", i): + fqdn_flag = False + break + + # FQDN + if fqdn_flag: + return 0x00 + + return None -- To view, visit https://gerrit.osmocom.org/c/pysim/+/21860 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I0fabd4f17bbb11f6bb191c1a9e6276427f9d001f Gerrit-Change-Number: 21860 Gerrit-PatchSet: 5 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 14:22:42 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 14:22:42 +0000 Subject: Change in pysim[master]: sysmoISIM-SJA2: Add support for programming IMS Home Network Domain Name In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/21866 ) Change subject: sysmoISIM-SJA2: Add support for programming IMS Home Network Domain Name ...................................................................... sysmoISIM-SJA2: Add support for programming IMS Home Network Domain Name As per 3GPP TS 31.103, this EF (DOMAIN) can found under ADF.ISIM at File Id 6f03. The Home Network Domain Name, i.e. FQDN shall be encoded to an octet string according to UTF-8 encoding rules as specified in IETF RFC 3629 [27]. The tag value of the Home Network Domain Name TLV data object shall be '80'. Example: ./pySim-prog.py -p 0 -x 001 -y 01 -s 8988211900000000004 -i 001011234567895 -k 8baf473f2f8fd09487cccbd7097c6862 --op 11111111111111111111111111111111 -o 8E27B6AF0E692E750F32667A3B14605D -a 85524953 -n isim.test --msisdn 0598765432100 --epdgid epdg.epc.mnc001.mcc001.pub.3gppnetwork.org --pcscf pcscf.testims.org --ims-hdomain testims.org Change-Id: I3c823203aee88734ae423e4ad73da1027a4eaeed --- M pySim-prog.py M pySim/cards.py 2 files changed, 32 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/pySim-prog.py b/pySim-prog.py index 7ad57e6..f278015 100755 --- a/pySim-prog.py +++ b/pySim-prog.py @@ -156,6 +156,9 @@ parser.add_option("--pcscf", dest="pcscf", help="Set Proxy Call Session Control Function (P-CSCF) Address. (Only FQDN format supported)", ) + parser.add_option("--ims-hdomain", dest="ims_hdomain", + help="Set IMS Home Network Domain Name in FQDN format", + ) parser.add_option("--read-imsi", dest="read_imsi", action="store_true", help="Read the IMSI from the CARD", default=False ) @@ -464,6 +467,7 @@ 'epdgid' : opts.epdgid, 'epdgSelection' : opts.epdgSelection, 'pcscf' : opts.pcscf, + 'ims_hdomain': opts.ims_hdomain, } diff --git a/pySim/cards.py b/pySim/cards.py index 42460fe..7e47916 100644 --- a/pySim/cards.py +++ b/pySim/cards.py @@ -28,6 +28,7 @@ from pySim.ts_31_103 import EF_ISIM_ADF_map from pySim.utils import * from smartcard.util import toBytes +from pytlv.TLV import * class Card(object): @@ -346,6 +347,23 @@ else: return (None, sw) + def update_domain(self, domain=None, mcc=None, mnc=None): + hex_str = "" + if domain: + hex_str = s2h(domain) + elif mcc and mnc: + # MCC and MNC always has 3 digits in domain form + plmn_str = 'mnc' + lpad(mnc, 3, "0") + '.mcc' + lpad(mcc, 3, "0") + hex_str = s2h('ims.' + plmn_str + '.3gppnetwork.org') + + # Build TLV + tlv = TLV(['80']) + content = tlv.build({'80': hex_str}) + + bin_size_bytes = self._scc.binary_size(EF_ISIM_ADF_map['DOMAIN']) + data, sw = self._scc.update_binary(EF_ISIM_ADF_map['DOMAIN'], rpad(content, bin_size_bytes*2)) + return sw + class _MagicSimBase(Card): """ @@ -1238,6 +1256,16 @@ print("Programming P-CSCF failed with code %s"%sw) + # update EF.DOMAIN in ADF.ISIM + if self.file_exists(EF_ISIM_ADF_map['DOMAIN']): + if p.get('ims_hdomain'): + sw = self.update_domain(domain=p['ims_hdomain']) + else: + sw = self.update_domain() + + if sw != '9000': + print("Programming Home Network Domain Name failed with code %s"%sw) + if '9000' == self.select_adf_by_aid(): # update EF-USIM_AUTH_KEY in ADF.USIM if p.get('ki'): -- To view, visit https://gerrit.osmocom.org/c/pysim/+/21866 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I3c823203aee88734ae423e4ad73da1027a4eaeed Gerrit-Change-Number: 21866 Gerrit-PatchSet: 5 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 14:22:42 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 14:22:42 +0000 Subject: Change in pysim[master]: sysmoISIM-SJA2: Fill unused bytes of Home ePDGId with 'f' In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/21867 ) Change subject: sysmoISIM-SJA2: Fill unused bytes of Home ePDGId with 'f' ...................................................................... sysmoISIM-SJA2: Fill unused bytes of Home ePDGId with 'f' Change-Id: Ia0464f230afcb0f37465d3ed0dfd8f417b53b0c3 --- M pySim/cards.py 1 file changed, 9 insertions(+), 3 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/pySim/cards.py b/pySim/cards.py index 7e47916..d60b27a 100644 --- a/pySim/cards.py +++ b/pySim/cards.py @@ -274,7 +274,11 @@ return (None, sw) def update_epdgid(self, epdgid): - epdgid_tlv = enc_addr_tlv(epdgid) + size = self._scc.binary_size(EF_USIM_ADF_map['ePDGId']) * 2 + if len(epdgid) > 0: + epdgid_tlv = rpad(enc_addr_tlv(epdgid), size) + else: + epdgid_tlv = rpad('ff', size) data, sw = self._scc.update_binary( EF_USIM_ADF_map['ePDGId'], epdgid_tlv) return sw @@ -1284,8 +1288,10 @@ if self.file_exists(EF_USIM_ADF_map['ePDGId']): if p.get('epdgid'): sw = self.update_epdgid(p['epdgid']) - if sw != '9000': - print("Programming ePDGId failed with code %s"%sw) + else: + sw = self.update_epdgid("") + if sw != '9000': + print("Programming ePDGId failed with code %s"%sw) # update EF.ePDGSelection in ADF.USIM if self.file_exists(EF_USIM_ADF_map['ePDGSelection']): -- To view, visit https://gerrit.osmocom.org/c/pysim/+/21867 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ia0464f230afcb0f37465d3ed0dfd8f417b53b0c3 Gerrit-Change-Number: 21867 Gerrit-PatchSet: 5 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 14:22:42 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 14:22:42 +0000 Subject: Change in pysim[master]: utils.py: Support IPv4 encoding for Address TLV object present in EF.... In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/21868 ) Change subject: utils.py: Support IPv4 encoding for Address TLV object present in EF.ePDGId and EF.ePDGIdEm ...................................................................... utils.py: Support IPv4 encoding for Address TLV object present in EF.ePDGId and EF.ePDGIdEm Change-Id: Id46a44257d09c98ad5e0b7558e25e2bc52b23978 --- M pySim/utils.py 1 file changed, 11 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/pySim/utils.py b/pySim/utils.py index c5a38d8..782cb8b 100644 --- a/pySim/utils.py +++ b/pySim/utils.py @@ -550,10 +550,19 @@ s = "" - # TODO: Encoding of IPv4 and IPv6 address - if addr_type == '00': + # TODO: Encoding of IPv6 address + if addr_type == '00': #FQDN hex_str = s2h(addr) s += '80' + ('%02x' % ((len(hex_str)//2)+1)) + '00' + hex_str + elif addr_type == '01': #IPv4 + ipv4_list = addr.split('.') + ipv4_str = "" + for i in ipv4_list: + ipv4_str += ('%02x' % (int(i))) + + # Unused bytes shall be set to 'ff'. i.e 4th Octet after Address Type is not used + # IPv4 Address is in octet 5 to octet 8 of the TLV data object + s += '80' + ('%02x' % ((len(ipv4_str)//2)+2)) + '01' + 'ff' + ipv4_str return s -- To view, visit https://gerrit.osmocom.org/c/pysim/+/21868 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Id46a44257d09c98ad5e0b7558e25e2bc52b23978 Gerrit-Change-Number: 21868 Gerrit-PatchSet: 5 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 14:22:43 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 14:22:43 +0000 Subject: Change in pysim[master]: utils.py: Support IPv4 decoding for Address TLV object present in EF.... In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/21869 ) Change subject: utils.py: Support IPv4 decoding for Address TLV object present in EF.ePDGId and EF.ePDGIdEm ...................................................................... utils.py: Support IPv4 decoding for Address TLV object present in EF.ePDGId and EF.ePDGIdEm Change-Id: I96c30c1fcc03e50c55e9db7e6a18297a3b1d889d --- M pySim/utils.py 1 file changed, 7 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/pySim/utils.py b/pySim/utils.py index 782cb8b..3838eff 100644 --- a/pySim/utils.py +++ b/pySim/utils.py @@ -530,12 +530,18 @@ # First byte in the value has the address type addr_type = tlv[2][0] - # TODO: Support parsing of IPv4 and IPv6 + # TODO: Support parsing of IPv6 # Address Type: 0x00 (FQDN), 0x01 (IPv4), 0x02 (IPv6), other (Reserved) if addr_type == 0x00: #FQDN # Skip address tye byte i.e. first byte in value list content = tlv[2][1:] s += "\t%s # %s\n" % (i2h(content), i2s(content)) + elif addr_type == 0x01: #IPv4 + # Skip address tye byte i.e. first byte in value list + # Skip the unused byte in Octect 4 after address type byte as per 3GPP TS 31.102 + ipv4 = tlv[2][2:] + content = '.'.join(str(x) for x in ipv4) + s += "\t%s # %s\n" % (i2h(ipv4), content) return s -- To view, visit https://gerrit.osmocom.org/c/pysim/+/21869 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I96c30c1fcc03e50c55e9db7e6a18297a3b1d889d Gerrit-Change-Number: 21869 Gerrit-PatchSet: 5 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 14:23:09 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 14:23:09 +0000 Subject: Change in pysim[master]: sysmoISIM-SJA2: Add support for programming IPv4 address for Home ePD... In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/21870 ) Change subject: sysmoISIM-SJA2: Add support for programming IPv4 address for Home ePDG Identifier ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/21870 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I10a708d3e0c3ae398c942e3529e364dfe4bb23e7 Gerrit-Change-Number: 21870 Gerrit-PatchSet: 3 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 05 Jan 2021 14:23:09 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 14:23:20 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 14:23:20 +0000 Subject: Change in pysim[master]: sysmoISIM-SJA2: Add support for programming IPv4 address for PCSCF In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/21871 ) Change subject: sysmoISIM-SJA2: Add support for programming IPv4 address for PCSCF ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/21871 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I247a5413e9e5fef6b9d7b6cb8442313e72f9156a Gerrit-Change-Number: 21871 Gerrit-PatchSet: 3 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 05 Jan 2021 14:23:20 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 14:23:30 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 14:23:30 +0000 Subject: Change in pysim[master]: Update ISIM IST table as per the 3GPP TS 31.103 specification V15.6.0 In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/21872 ) Change subject: Update ISIM IST table as per the 3GPP TS 31.103 specification V15.6.0 ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/21872 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I8f6a96721beb9621ac453715cf2d0303989cfe85 Gerrit-Change-Number: 21872 Gerrit-PatchSet: 3 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 05 Jan 2021 14:23:30 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 14:23:33 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 14:23:33 +0000 Subject: Change in pysim[master]: sysmoISIM-SJA2: Add support for programming IPv4 address for Home ePD... In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/21870 ) Change subject: sysmoISIM-SJA2: Add support for programming IPv4 address for Home ePDG Identifier ...................................................................... sysmoISIM-SJA2: Add support for programming IPv4 address for Home ePDG Identifier This commit allows programming of IPv4 or FQDN in EF.ePDGId Example: ./pySim-prog.py -p 0 -x 001 -y 01 -s 8988211900000000004 -i 001011234567895 -k 8baf473f2f8fd09487cccbd7097c6862 --op 11111111111111111111111111111111 -o 8E27B6AF0E692E750F32667A3B14605D -a 85524953 -n isim.test --msisdn 0598765432100 --epdgid 172.24.15.20 --pcscf pcscf.testims.org --ims-hdomain testims.org Change-Id: I10a708d3e0c3ae398c942e3529e364dfe4bb23e7 --- M pySim/cards.py 1 file changed, 4 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/pySim/cards.py b/pySim/cards.py index d60b27a..b7be6e8 100644 --- a/pySim/cards.py +++ b/pySim/cards.py @@ -276,7 +276,10 @@ def update_epdgid(self, epdgid): size = self._scc.binary_size(EF_USIM_ADF_map['ePDGId']) * 2 if len(epdgid) > 0: - epdgid_tlv = rpad(enc_addr_tlv(epdgid), size) + addr_type = get_addr_type(epdgid) + if addr_type == None: + raise ValueError("Unknown ePDG Id address type or invalid address provided") + epdgid_tlv = rpad(enc_addr_tlv(epdgid, ('%02x' % addr_type)), size) else: epdgid_tlv = rpad('ff', size) data, sw = self._scc.update_binary( -- To view, visit https://gerrit.osmocom.org/c/pysim/+/21870 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I10a708d3e0c3ae398c942e3529e364dfe4bb23e7 Gerrit-Change-Number: 21870 Gerrit-PatchSet: 3 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 14:23:33 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 14:23:33 +0000 Subject: Change in pysim[master]: sysmoISIM-SJA2: Add support for programming IPv4 address for PCSCF In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/21871 ) Change subject: sysmoISIM-SJA2: Add support for programming IPv4 address for PCSCF ...................................................................... sysmoISIM-SJA2: Add support for programming IPv4 address for PCSCF This commit allows programming of IPv4 or FQDN in EF.PCSCF Example: ./pySim-prog.py -p 0 -x 001 -y 01 -s 8988211900000000004 -i 001011234567895 -k 8baf473f2f8fd09487cccbd7097c6862 --op 11111111111111111111111111111111 -o 8E27B6AF0E692E750F32667A3B14605D -a 85524953 -n isim.test --msisdn 0598765432100 --epdgid 172.24.15.20 --pcscf 99.100.80.102 --ims-hdomain testims.org Change-Id: I247a5413e9e5fef6b9d7b6cb8442313e72f9156a --- M pySim/cards.py 1 file changed, 6 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/pySim/cards.py b/pySim/cards.py index b7be6e8..17da506 100644 --- a/pySim/cards.py +++ b/pySim/cards.py @@ -336,12 +336,16 @@ def update_pcscf(self, pcscf): if len(pcscf) > 0: - content = enc_addr_tlv(pcscf) + addr_type = get_addr_type(pcscf) + if addr_type == None: + raise ValueError("Unknown PCSCF address type or invalid address provided") + content = enc_addr_tlv(pcscf, ('%02x' % addr_type)) else: # Just the tag value content = '80' rec_size_bytes = self._scc.record_size(EF_ISIM_ADF_map['PCSCF']) - data, sw = self._scc.update_record(EF_ISIM_ADF_map['PCSCF'], 1, rpad(content, rec_size_bytes*2)) + pcscf_tlv = rpad(content, rec_size_bytes*2) + data, sw = self._scc.update_record(EF_ISIM_ADF_map['PCSCF'], 1, pcscf_tlv) return sw def read_domain(self): -- To view, visit https://gerrit.osmocom.org/c/pysim/+/21871 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I247a5413e9e5fef6b9d7b6cb8442313e72f9156a Gerrit-Change-Number: 21871 Gerrit-PatchSet: 3 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 14:23:33 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 14:23:33 +0000 Subject: Change in pysim[master]: Update ISIM IST table as per the 3GPP TS 31.103 specification V15.6.0 In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/21872 ) Change subject: Update ISIM IST table as per the 3GPP TS 31.103 specification V15.6.0 ...................................................................... Update ISIM IST table as per the 3GPP TS 31.103 specification V15.6.0 Change-Id: I8f6a96721beb9621ac453715cf2d0303989cfe85 --- M pySim/ts_31_103.py 1 file changed, 2 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/pySim/ts_31_103.py b/pySim/ts_31_103.py index 0d08fe6..d48ff97 100644 --- a/pySim/ts_31_103.py +++ b/pySim/ts_31_103.py @@ -42,7 +42,8 @@ 16: 'URI support for SMS-PP DOWNLOAD as defined in 3GPP TS 31.111 [31]', 17: 'From Preferred', 18: 'IMS configuration data', - 19: 'XCAP Configuration Data' + 19: 'XCAP Configuration Data', + 20: 'WebRTC URI', } EF_ISIM_ADF_map = { -- To view, visit https://gerrit.osmocom.org/c/pysim/+/21872 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I8f6a96721beb9621ac453715cf2d0303989cfe85 Gerrit-Change-Number: 21872 Gerrit-PatchSet: 3 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 14:24:03 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 14:24:03 +0000 Subject: Change in libosmocore[master]: gprs_ns2: set transfer cap in NS Status primitive In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21753 ) Change subject: gprs_ns2: set transfer cap in NS Status primitive ...................................................................... gprs_ns2: set transfer cap in NS Status primitive Related: SYS#5153 OS#4835 Change-Id: Ia1046db9e0d50855bff9de670b612ffc57af9995 --- M src/gb/Makefile.am M src/gb/gprs_ns2.c M src/gb/gprs_ns2_fr.c M src/gb/gprs_ns2_frgre.c M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_udp.c M tests/Makefile.am A tests/gb/gprs_ns2_test.c A tests/gb/gprs_ns2_test.ok M tests/testsuite.at 10 files changed, 276 insertions(+), 2 deletions(-) Approvals: daniel: Looks good to me, but someone else must approve pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/gb/Makefile.am b/src/gb/Makefile.am index c829c29..cbee333 100644 --- a/src/gb/Makefile.am +++ b/src/gb/Makefile.am @@ -28,6 +28,12 @@ gprs_ns2_message.c gprs_ns2_vty.c gprs_ns2_vty2.c \ gprs_bssgp2.c bssgp_bvc_fsm.c \ common_vty.c frame_relay.c + +# convenience library for testing with access to all non-static symbols +noinst_LTLIBRARIES = libosmogb-test.la +libosmogb_test_la_LIBADD = $(libosmogb_la_LIBADD) +libosmogb_test_la_SOURCES= $(libosmogb_la_SOURCES) + endif EXTRA_DIST = libosmogb.map diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c index 1098f22..e43b636 100644 --- a/src/gb/gprs_ns2.c +++ b/src/gb/gprs_ns2.c @@ -471,7 +471,7 @@ nsp.nsei = nse->nsei; nsp.bvci = bvci; nsp.u.status.cause = cause; - nsp.u.status.transfer = -1; + nsp.u.status.transfer = ns2_count_transfer_cap(nse, bvci); nsp.u.status.first = nse->first; nsp.u.status.persistent = nse->persistent; if (nsvc) @@ -1263,4 +1263,68 @@ } } +static void add_bind_array(struct gprs_ns2_vc_bind **array, + struct gprs_ns2_vc_bind *bind, int size) +{ + int i; + for (i=0; i < size; i++) { + if (array[i] == bind) + return; + if (!array[i]) + break; + } + + if (i == size) + return; + + array[i] = bind; +} + +/*! calculate the transfer capabilities for a nse + * \param nse the nse to count the transfer capability + * \param bvci a bvci - unused + * \return the transfer capability in mbit. On error < 0. + */ +int ns2_count_transfer_cap(struct gprs_ns2_nse *nse, + uint16_t bvci) +{ + struct gprs_ns2_vc *nsvc; + struct gprs_ns2_vc_bind **active_binds; + int i, active_nsvcs = 0, transfer_cap = 0; + + /* calculate the transfer capabilities based on the binds. + * A bind has a transfer capability which is shared across all NSVCs. + * Take care the bind cap is not counted twice within a NSE. + * This should be accurate for FR and UDP but not for FR/GRE. */ + + if (!nse->alive) + return 0; + + llist_for_each_entry(nsvc, &nse->nsvc, list) { + if (gprs_ns2_vc_is_unblocked(nsvc)) + active_nsvcs++; + } + /* an alive nse should always have active_nsvcs */ + OSMO_ASSERT(active_nsvcs); + + active_binds = talloc_zero_array(nse, struct gprs_ns2_vc_bind*, active_nsvcs); + if (!active_binds) + return -ENOMEM; + + llist_for_each_entry(nsvc, &nse->nsvc, list) { + if (!gprs_ns2_vc_is_unblocked(nsvc)) + continue; + add_bind_array(active_binds, nsvc->bind, active_nsvcs); + } + + /* TODO: change calcuation for FR/GRE */ + for (i = 0; i < active_nsvcs; i++) { + if (active_binds[i]) + transfer_cap += active_binds[i]->transfer_capability; + } + + talloc_free(active_binds); + return transfer_cap; +} + /*! @} */ diff --git a/src/gb/gprs_ns2_fr.c b/src/gb/gprs_ns2_fr.c index e972a34..ca2d38c 100644 --- a/src/gb/gprs_ns2_fr.c +++ b/src/gb/gprs_ns2_fr.c @@ -579,6 +579,8 @@ bind->driver = &vc_driver_fr; bind->ll = GPRS_NS2_LL_FR; + /* 2 mbit */ + bind->transfer_capability = 2; bind->send_vc = fr_vc_sendmsg; bind->free_vc = free_vc; bind->dump_vty = dump_vty; diff --git a/src/gb/gprs_ns2_frgre.c b/src/gb/gprs_ns2_frgre.c index 014517a..625d05c 100644 --- a/src/gb/gprs_ns2_frgre.c +++ b/src/gb/gprs_ns2_frgre.c @@ -569,6 +569,8 @@ bind->driver = &vc_driver_frgre; bind->ll = GPRS_NS2_LL_FR_GRE; + /* 2 mbit transfer capability. Counting should be done different for this. */ + bind->transfer_capability = 2; bind->send_vc = frgre_vc_sendmsg; bind->free_vc = free_vc; bind->nsi = nsi; diff --git a/src/gb/gprs_ns2_internal.h b/src/gb/gprs_ns2_internal.h index 4c0cdd0..c33f7f8 100644 --- a/src/gb/gprs_ns2_internal.h +++ b/src/gb/gprs_ns2_internal.h @@ -198,6 +198,9 @@ bool accept_ipaccess; bool accept_sns; + /*! transfer capability in mbit */ + int transfer_capability; + /*! which link-layer are we based on? */ enum gprs_ns2_ll ll; @@ -312,3 +315,5 @@ /* nse */ void ns2_nse_notify_unblocked(struct gprs_ns2_vc *nsvc, bool unblocked); enum gprs_ns2_vc_mode gprs_ns2_dialect_to_vc_mode(enum gprs_ns2_dialect dialect); +int ns2_count_transfer_cap(struct gprs_ns2_nse *nse, + uint16_t bvci); diff --git a/src/gb/gprs_ns2_udp.c b/src/gb/gprs_ns2_udp.c index 9058279..370937f 100644 --- a/src/gb/gprs_ns2_udp.c +++ b/src/gb/gprs_ns2_udp.c @@ -336,6 +336,10 @@ bind->driver = &vc_driver_ip; bind->ll = GPRS_NS2_LL_UDP; + /* expect 100 mbit at least. + * TODO: ask the network layer about the speed. But would require + * notification on change. */ + bind->transfer_capability = 100; bind->send_vc = nsip_vc_sendmsg; bind->free_vc = free_vc; bind->dump_vty = dump_vty; diff --git a/tests/Makefile.am b/tests/Makefile.am index dbca9d7..f769603 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -74,7 +74,7 @@ endif if ENABLE_GB -check_PROGRAMS += gb/bssgp_fc_test gb/gprs_bssgp_test gb/gprs_ns_test fr/fr_test +check_PROGRAMS += gb/bssgp_fc_test gb/gprs_bssgp_test gb/gprs_ns_test gb/gprs_ns2_test fr/fr_test endif utils_utils_test_SOURCES = utils/utils_test.c @@ -180,6 +180,16 @@ $(top_builddir)/src/vty/libosmovty.la \ $(top_builddir)/src/gsm/libosmogsm.la +gb_gprs_ns2_test_SOURCES = gb/gprs_ns2_test.c +gb_gprs_ns2_test_LDADD = $(LDADD) $(LIBRARY_DLSYM) \ + $(top_builddir)/src/vty/libosmovty.la \ + $(top_builddir)/src/gsm/libosmogsm.la \ + $(top_builddir)/src/libosmocore.la \ + $(top_builddir)/src/gb/libosmogb-test.la +if ENABLE_LIBMNL +gb_gprs_ns2_test_LDADD += $(LIBMNL_LIBS) +endif + logging_logging_test_SOURCES = logging/logging_test.c logging_logging_vty_test_SOURCES = logging/logging_vty_test.c @@ -321,6 +331,7 @@ gb/bssgp_fc_tests.ok gb/bssgp_fc_tests.sh \ gb/gprs_bssgp_test.ok gb/gprs_ns_test.ok gea/gea_test.ok \ gb/gprs_ns2_vty.vty gb/osmoappdesc.py gb/osmo-ns-dummy.cfg \ + gb/gprs_ns2_test.ok \ gprs/gprs_test.ok kasumi/kasumi_test.ok \ msgfile/msgfile_test.ok msgfile/msgconfig.cfg \ logging/logging_test.ok logging/logging_test.err \ diff --git a/tests/gb/gprs_ns2_test.c b/tests/gb/gprs_ns2_test.c new file mode 100644 index 0000000..86a0190 --- /dev/null +++ b/tests/gb/gprs_ns2_test.c @@ -0,0 +1,164 @@ +/* test routines for NS connection handling + * (C) 2020 sysmocom - s.f.m.c. GmbH + * Author: Alexander Couzens + * + * SPDX-License-Identifier: GPL-2.0+ + */ + +#undef _GNU_SOURCE +#define _GNU_SOURCE + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "../../src/gb/gprs_ns2_internal.h" + +int bssgp_prim_cb(struct osmo_prim_hdr *oph, void *ctx) +{ + return -1; +} + +static struct log_info info = {}; + +static int ns_prim_cb(struct osmo_prim_hdr *oph, void *ctx) +{ + return 0; +} + +void free_bind(struct gprs_ns2_vc_bind *bind) +{ + OSMO_ASSERT(bind); + talloc_free(bind); +} + +struct gprs_ns2_vc_driver vc_driver_dummy = { + .name = "GB UDP dummy", + .free_bind = free_bind, +}; + +static int vc_sendmsg(struct gprs_ns2_vc *nsvc, struct msgb *msg) +{ + struct gprs_ns2_vc_bind *bind = nsvc->bind; + struct osmo_wqueue *queue = bind->priv; + + osmo_wqueue_enqueue(queue, msg); + return 0; +} + +static struct gprs_ns2_vc_bind *dummy_bind(struct gprs_ns2_inst *nsi, const char *name) +{ + struct gprs_ns2_vc_bind *bind = talloc_zero(nsi, struct gprs_ns2_vc_bind); + OSMO_ASSERT(bind); + + bind->name = talloc_strdup(bind, name); + bind->driver = &vc_driver_dummy; + bind->ll = GPRS_NS2_LL_UDP; + bind->transfer_capability = 42; + bind->nsi = nsi; + bind->send_vc = vc_sendmsg; + bind->priv = talloc_zero(bind, struct osmo_wqueue); + struct osmo_wqueue *queue = bind->priv; + + INIT_LLIST_HEAD(&bind->nsvc); + llist_add(&bind->list, &nsi->binding); + osmo_wqueue_init(queue, 100); + + return bind; +} + +void test_nse_transfer_cap(void *ctx) +{ + struct gprs_ns2_inst *nsi; + struct gprs_ns2_vc_bind *bind[2]; + struct gprs_ns2_nse *nse; + struct gprs_ns2_vc *nsvc[3]; + + /* create a UDP dummy bind[0] with transfer cap 42. + * create nse (nsei 1001) + * create 2x nsvc with the same bind. + * nsvc[0] or nsvc[1] is alive (or both) cap == 42 + * + * create a second bind with transfer cap == 23 + * create 3rd nsvc with bind[1] + * transfer cap should be 42 + 23 + */ + + printf("--- Testing NSE transfer cap\n"); + + printf("---- Create NSE + Binds\n"); + nsi = gprs_ns2_instantiate(ctx, ns_prim_cb, NULL); + bind[0] = dummy_bind(nsi, "transfercap1"); + bind[1] = dummy_bind(nsi, "transfercap2"); + bind[1]->transfer_capability = 23; + nse = gprs_ns2_create_nse(nsi, 1001, GPRS_NS2_LL_UDP, NS2_DIALECT_STATIC_ALIVE); + OSMO_ASSERT(nse); + + printf("---- Test with NSVC[0]\n"); + nsvc[0] = ns2_vc_alloc(bind[0], nse, false, NS2_VC_MODE_ALIVE); + OSMO_ASSERT(nsvc[0]); + OSMO_ASSERT(ns2_count_transfer_cap(nse, 0) == 0); + nsvc[0]->fi->state = 3; /* HACK: 3 = GPRS_NS2_ST_UNBLOCKED */ + ns2_nse_notify_unblocked(nsvc[0], true); + OSMO_ASSERT(ns2_count_transfer_cap(nse, 0) == 42); + + printf("---- Test with NSVC[1]\n"); + nsvc[1] = ns2_vc_alloc(bind[0], nse, false, NS2_VC_MODE_ALIVE); + OSMO_ASSERT(nsvc[1]); + OSMO_ASSERT(ns2_count_transfer_cap(nse, 0) == 42); + nsvc[1]->fi->state = 3; /* HACK: 3 = GPRS_NS2_ST_UNBLOCKED */ + ns2_nse_notify_unblocked(nsvc[1], true); + OSMO_ASSERT(ns2_count_transfer_cap(nse, 0) == 42); + + printf("---- Test with NSVC[2]\n"); + nsvc[2] = ns2_vc_alloc(bind[1], nse, false, NS2_VC_MODE_ALIVE); + OSMO_ASSERT(nsvc[2]); + OSMO_ASSERT(ns2_count_transfer_cap(nse, 0) == 42); + nsvc[2]->fi->state = 3; /* HACK: 3 = GPRS_NS2_ST_UNBLOCKED */ + ns2_nse_notify_unblocked(nsvc[2], true); + OSMO_ASSERT(ns2_count_transfer_cap(nse, 0) == 42 + 23); + + printf("---- Test with NSVC[1] removed\n"); + /* reset nsvc[1] to be unconfigured - shouldn't change anything */ + nsvc[1]->fi->state = 0; /* HACK: 0 = GPRS_NS2_ST_UNCONFIGURED */ + ns2_nse_notify_unblocked(nsvc[1], false); + OSMO_ASSERT(ns2_count_transfer_cap(nse, 0) == 42 + 23); + + printf("--- Finish NSE transfer cap\n"); + +} + +int main(int argc, char **argv) +{ + void *ctx = talloc_named_const(NULL, 0, "gprs_ns2_test"); + osmo_init_logging2(ctx, &info); + log_set_use_color(osmo_stderr_target, 0); + log_set_print_filename(osmo_stderr_target, 0); + log_set_print_filename(osmo_stderr_target, 0); + log_set_log_level(osmo_stderr_target, LOGL_INFO); + setlinebuf(stdout); + + printf("===== NS2 protocol test START\n"); + test_nse_transfer_cap(ctx); + printf("===== NS2 protocol test END\n\n"); + + exit(EXIT_SUCCESS); +} diff --git a/tests/gb/gprs_ns2_test.ok b/tests/gb/gprs_ns2_test.ok new file mode 100644 index 0000000..62bbbfe --- /dev/null +++ b/tests/gb/gprs_ns2_test.ok @@ -0,0 +1,10 @@ +===== NS2 protocol test START +--- Testing NSE transfer cap +---- Create NSE + Binds +---- Test with NSVC[0] +---- Test with NSVC[1] +---- Test with NSVC[2] +---- Test with NSVC[1] removed +--- Finish NSE transfer cap +===== NS2 protocol test END + diff --git a/tests/testsuite.at b/tests/testsuite.at index 43f515a..ad93e16 100644 --- a/tests/testsuite.at +++ b/tests/testsuite.at @@ -221,6 +221,12 @@ AT_CHECK([$abs_top_builddir/tests/gb/gprs_ns_test], [0], [expout], [ignore]) AT_CLEANUP +AT_SETUP([gprs-ns2]) +AT_KEYWORDS([gprs-ns2]) +cat $abs_srcdir/gb/gprs_ns2_test.ok > expout +AT_CHECK([$abs_top_builddir/tests/gb/gprs_ns2_test], [0], [expout], [ignore]) +AT_CLEANUP + AT_SETUP([utils]) AT_KEYWORDS([utils]) cat $abs_srcdir/utils/utils_test.ok > expout -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21753 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia1046db9e0d50855bff9de670b612ffc57af9995 Gerrit-Change-Number: 21753 Gerrit-PatchSet: 9 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 14:26:41 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 5 Jan 2021 14:26:41 +0000 Subject: Change in osmo-sgsn[master]: gb_proxy_peer: fix NULL pointer dereference in gbproxy_sgsn_alloc() In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21947 to look at the new patch set (#3). Change subject: gb_proxy_peer: fix NULL pointer dereference in gbproxy_sgsn_alloc() ...................................................................... gb_proxy_peer: fix NULL pointer dereference in gbproxy_sgsn_alloc() LOGPSGSN_CAT() dereferences sgsn->nse in order to get NSEI. Change-Id: I1c592dd6f0da5f167290f38de3b30a1a04c4313d Fixes: CID#215868 --- M src/gbproxy/gb_proxy_peer.c 1 file changed, 2 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/47/21947/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21947 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I1c592dd6f0da5f167290f38de3b30a1a04c4313d Gerrit-Change-Number: 21947 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 14:27:58 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 5 Jan 2021 14:27:58 +0000 Subject: Change in libosmocore[master]: bssgp: Add SUSPEND_NACK to osmo_pdef_bssgp References: Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21951 ) Change subject: bssgp: Add SUSPEND_NACK to osmo_pdef_bssgp ...................................................................... bssgp: Add SUSPEND_NACK to osmo_pdef_bssgp Change-Id: Ic996a343215ad32e3f301712411006e5d41f9084 Related: SYS#4865 --- M src/gb/gprs_bssgp_util.c 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/51/21951/1 diff --git a/src/gb/gprs_bssgp_util.c b/src/gb/gprs_bssgp_util.c index 5245c5f..92896c1 100644 --- a/src/gb/gprs_bssgp_util.c +++ b/src/gb/gprs_bssgp_util.c @@ -190,6 +190,7 @@ static const uint8_t rad_sts_ies[] = { BSSGP_IE_RADIO_CAUSE }; static const uint8_t suspend_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_ROUTEING_AREA }; static const uint8_t suspend_ack_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_ROUTEING_AREA, BSSGP_IE_SUSPEND_REF_NR }; +static const uint8_t suspend_nack_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_ROUTEING_AREA }; static const uint8_t resume_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_ROUTEING_AREA, BSSGP_IE_SUSPEND_REF_NR }; static const uint8_t resume_ack_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_ROUTEING_AREA }; static const uint8_t resume_nack_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_ROUTEING_AREA }; @@ -273,6 +274,7 @@ [BSSGP_PDUT_RADIO_STATUS] = MSG_DEF("RADIO-STATUS", rad_sts_ies, UL|PTP), [BSSGP_PDUT_SUSPEND] = MSG_DEF("SUSPEND", suspend_ies, UL|SIG), [BSSGP_PDUT_SUSPEND_ACK] = MSG_DEF("SUSPEND-ACK", suspend_ack_ies, DL|SIG), + [BSSGP_PDUT_SUSPEND_NACK] = MSG_DEF("SUSPEND-NACK", suspend_nack_ies, DL|SIG), [BSSGP_PDUT_RESUME] = MSG_DEF("RESUME", resume_ies, UL|SIG), [BSSGP_PDUT_RESUME_ACK] = MSG_DEF("RESUME-ACK", resume_ack_ies, DL|SIG), [BSSGP_PDUT_RESUME_NACK] = MSG_DEF("RESUME-NACK", resume_nack_ies, DL|SIG), -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21951 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic996a343215ad32e3f301712411006e5d41f9084 Gerrit-Change-Number: 21951 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 14:37:55 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 14:37:55 +0000 Subject: Change in osmo-sgsn[master]: gb_proxy_peer: fix NULL pointer dereference in gbproxy_sgsn_alloc() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21947 ) Change subject: gb_proxy_peer: fix NULL pointer dereference in gbproxy_sgsn_alloc() ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21947 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I1c592dd6f0da5f167290f38de3b30a1a04c4313d Gerrit-Change-Number: 21947 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 05 Jan 2021 14:37:55 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 14:40:44 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 14:40:44 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Osmocom_Gb_types: add RIM templates In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21587 ) Change subject: Osmocom_Gb_types: add RIM templates ...................................................................... Patch Set 5: > When I try building it with current master it works fine for me locally. I do not know exactly, but jenkins does not use nightly or current master? I did a clean checkout + build locally here, and it also works. strange. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21587 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ic495e0bb6ceb2b65cbc7c3da7ee519a013aede55 Gerrit-Change-Number: 21587 Gerrit-PatchSet: 5 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 05 Jan 2021 14:40:44 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 14:45:48 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 14:45:48 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Osmocom_Gb_types: add RIM templates In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21587 ) Change subject: Osmocom_Gb_types: add RIM templates ...................................................................... Patch Set 5: I think I'm getting to the bottom of this: >From the log file: ==== cd titan.ProtocolModules.BSSGP_v13.0.0 && git remote set-url origin https://github.com/osmocom/titan.ProtocolModules.BSSGP_v13.0.0 && git fetch >From https://github.com/osmocom/titan.ProtocolModules.BSSGP_v13.0.0 c447f28..e97d92a master -> origin/master cd titan.ProtocolModules.BSSGP_v13.0.0 && git fetch && git checkout -q -f "master" ==== so yes, it does set the correct 'remote' URL (our github fork), and then does a "git checkout" of master. However, it simply checks out the local "master", which can be something completely different from origin/master. What we need here is "git checkout -q -f -B master origin/master" -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21587 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ic495e0bb6ceb2b65cbc7c3da7ee519a013aede55 Gerrit-Change-Number: 21587 Gerrit-PatchSet: 5 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 05 Jan 2021 14:45:48 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 14:46:26 2021 From: gerrit-no-reply at lists.osmocom.org (herlesupreeth) Date: Tue, 5 Jan 2021 14:46:26 +0000 Subject: Change in pysim[master]: pySim-read.py: Enable reading of EF.IMPI from ISIM References: Message-ID: herlesupreeth has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/21952 ) Change subject: pySim-read.py: Enable reading of EF.IMPI from ISIM ...................................................................... pySim-read.py: Enable reading of EF.IMPI from ISIM IMS private user identity (IMPI) As per TS1.103 version 14.2.0, this EF contains the private user identity of the user. EF.IMPI consist of NAI TLV Data object.The NAI shall be encoded to an octet string according to UTF-8 encoding rules as specified in IETF RFC 3629. Reading of EF.IMPI is achieved by first selecting the ISIM application using its AID. This is followed by selecting EF.IMPI with File ID - 6f02 in ADF.ISIM Change-Id: I8d8e76e3f6b9ca7a0be262fee99cd5a397edbefa --- M pySim-read.py M pySim/cards.py M pysim-testdata/sysmoISIM-SJA2.ok 3 files changed, 22 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/52/21952/1 diff --git a/pySim-read.py b/pySim-read.py index f63205a..a7d9063 100755 --- a/pySim-read.py +++ b/pySim-read.py @@ -315,6 +315,17 @@ except Exception as e: print("Home Network Domain Name: Can't read file -- " + str(e)) + # EF.IMPI - IMS private user identity + try: + if card.file_exists(EF_ISIM_ADF_map['IMPI']): + (res, sw) = card.read_impi() + if sw == '9000': + print("IMS private user identity: %s" % (len(res) and res or 'Not available',)) + else: + print("IMS private user identity: Can't read, response code = %s" % (sw,)) + except Exception as e: + print("IMS private user identity: Can't read file -- " + str(e)) + # Check whether we have th AID of ISIM, if so select it by its AID # EF.IST - File Id in ADF ISIM : 6f07 if '9000' == card.select_adf_by_aid(adf="isim"): diff --git a/pySim/cards.py b/pySim/cards.py index 17da506..17b7bce 100644 --- a/pySim/cards.py +++ b/pySim/cards.py @@ -375,6 +375,16 @@ data, sw = self._scc.update_binary(EF_ISIM_ADF_map['DOMAIN'], rpad(content, bin_size_bytes*2)) return sw + def read_impi(self): + (res, sw) = self._scc.read_binary(EF_ISIM_ADF_map['IMPI']) + if sw == '9000': + # Skip the inital tag value ('80') byte and get length of contents + length = int(res[2:4], 16) + content = h2s(res[4:4+(length*2)]) + return (content, sw) + else: + return (None, sw) + class _MagicSimBase(Card): """ diff --git a/pysim-testdata/sysmoISIM-SJA2.ok b/pysim-testdata/sysmoISIM-SJA2.ok index 4cdd9d5..335c886 100644 --- a/pysim-testdata/sysmoISIM-SJA2.ok +++ b/pysim-testdata/sysmoISIM-SJA2.ok @@ -183,6 +183,7 @@ Not available Home Network Domain Name: Not available +IMS private user identity: Not available ISIM Service Table: 190200 Service 1 - P-CSCF address Service 4 - GBA-based Local Key Establishment Mechanism -- To view, visit https://gerrit.osmocom.org/c/pysim/+/21952 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I8d8e76e3f6b9ca7a0be262fee99cd5a397edbefa Gerrit-Change-Number: 21952 Gerrit-PatchSet: 1 Gerrit-Owner: herlesupreeth Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 14:46:27 2021 From: gerrit-no-reply at lists.osmocom.org (herlesupreeth) Date: Tue, 5 Jan 2021 14:46:27 +0000 Subject: Change in pysim[master]: pySim-read.py: Enable reading of EF.IMPU from ISIM References: Message-ID: herlesupreeth has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/21953 ) Change subject: pySim-read.py: Enable reading of EF.IMPU from ISIM ...................................................................... pySim-read.py: Enable reading of EF.IMPU from ISIM IMS public user identity (IMPU) As per TS1.103, this EF contains one or more records, with each record able to hold a public SIP Identity (SIP URI) of the user. EF.IMPI consist of URI TLV data object values see IETF RFC 3261. The URI shall be encoded to an octet string according to UTF-8 encoding rules as specified in IETF RFC 3629 Reading of EF.IMPU is achieved by first selecting the ISIM application using its AID. This is followed by selecting EF.IMPU with File ID - 6f04 in ADF.ISIM Change-Id: Icf78a564aeaf4254658d3b018ff57dfc4b987e6f --- M pySim-read.py M pySim/cards.py M pysim-testdata/sysmoISIM-SJA2.ok 3 files changed, 32 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/53/21953/1 diff --git a/pySim-read.py b/pySim-read.py index a7d9063..4047598 100755 --- a/pySim-read.py +++ b/pySim-read.py @@ -326,6 +326,14 @@ except Exception as e: print("IMS private user identity: Can't read file -- " + str(e)) + # EF.IMPU - IMS public user identity + try: + if card.file_exists(EF_ISIM_ADF_map['IMPU']): + res = card.read_impu() + print("IMS public user identity:\n%s" % (len(res) and res or '\tNot available\n',)) + except Exception as e: + print("IMS public user identity: Can't read file -- " + str(e)) + # Check whether we have th AID of ISIM, if so select it by its AID # EF.IST - File Id in ADF ISIM : 6f07 if '9000' == card.select_adf_by_aid(adf="isim"): diff --git a/pySim/cards.py b/pySim/cards.py index 17b7bce..56597b0 100644 --- a/pySim/cards.py +++ b/pySim/cards.py @@ -385,6 +385,20 @@ else: return (None, sw) + def read_impu(self): + rec_cnt = self._scc.record_count(EF_ISIM_ADF_map['IMPU']) + impu_recs = "" + for i in range(0, rec_cnt): + (res, sw) = self._scc.read_record(EF_ISIM_ADF_map['IMPU'], i + 1) + if sw == '9000': + # Skip the inital tag value ('80') byte and get length of contents + length = int(res[2:4], 16) + content = h2s(res[4:4+(length*2)]) + impu_recs += "\t%s\n" % (len(content) and content or 'Not available') + else: + impu_recs += "IMS public user identity: Can't read, response code = %s\n" % (sw) + return impu_recs + class _MagicSimBase(Card): """ diff --git a/pysim-testdata/sysmoISIM-SJA2.ok b/pysim-testdata/sysmoISIM-SJA2.ok index 335c886..26e20b0 100644 --- a/pysim-testdata/sysmoISIM-SJA2.ok +++ b/pysim-testdata/sysmoISIM-SJA2.ok @@ -184,6 +184,16 @@ Home Network Domain Name: Not available IMS private user identity: Not available +IMS public user identity: + Not available + Not available + Not available + Not available + Not available + Not available + Not available + Not available + ISIM Service Table: 190200 Service 1 - P-CSCF address Service 4 - GBA-based Local Key Establishment Mechanism -- To view, visit https://gerrit.osmocom.org/c/pysim/+/21953 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Icf78a564aeaf4254658d3b018ff57dfc4b987e6f Gerrit-Change-Number: 21953 Gerrit-PatchSet: 1 Gerrit-Owner: herlesupreeth Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 14:46:27 2021 From: gerrit-no-reply at lists.osmocom.org (herlesupreeth) Date: Tue, 5 Jan 2021 14:46:27 +0000 Subject: Change in pysim[master]: sysmoISIM-SJA2: Add support for programming IMS private user identity References: Message-ID: herlesupreeth has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/21954 ) Change subject: sysmoISIM-SJA2: Add support for programming IMS private user identity ...................................................................... sysmoISIM-SJA2: Add support for programming IMS private user identity This EF contains the private user identity of the user. EF.IMPI consist of NAI TLV data object values see IETF RFC 2486. The NAI shall be encoded to an octet string according to UTF-8 encoding rules as specified in IETF RFC 3629 ./pySim-prog.py -p 0 -x 001 -y 01 -s 8988211900000000004 -i 001011234567895 -k 8baf473f2f8fd09487cccbd7097c6862 --op 11111111111111111111111111111111 -o 8E27B6AF0E692E750F32667A3B14605D -a 85524953 -n isim.test --msisdn 0598765432100 --epdgid epdg.epc.mnc001.mcc001.pub.3gppnetwork.org --pcscf pcscf.ims.testop.org --ims-hdomain ims.testop.org --impi 1234567895 at ims.testop.org Change-Id: Ic1ccf99b5aa45297ef1e43a43373df603f756379 --- M pySim-prog.py M pySim/cards.py 2 files changed, 26 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/54/21954/1 diff --git a/pySim-prog.py b/pySim-prog.py index f278015..3abd0bd 100755 --- a/pySim-prog.py +++ b/pySim-prog.py @@ -159,6 +159,9 @@ parser.add_option("--ims-hdomain", dest="ims_hdomain", help="Set IMS Home Network Domain Name in FQDN format", ) + parser.add_option("--impi", dest="impi", + help="Set IMS private user identity", + ) parser.add_option("--read-imsi", dest="read_imsi", action="store_true", help="Read the IMSI from the CARD", default=False ) @@ -468,6 +471,7 @@ 'epdgSelection' : opts.epdgSelection, 'pcscf' : opts.pcscf, 'ims_hdomain': opts.ims_hdomain, + 'impi' : opts.impi } diff --git a/pySim/cards.py b/pySim/cards.py index 56597b0..62163a1 100644 --- a/pySim/cards.py +++ b/pySim/cards.py @@ -385,6 +385,18 @@ else: return (None, sw) + def update_impi(self, impi=None): + hex_str = "" + if impi: + hex_str = s2h(impi) + # Build TLV + tlv = TLV(['80']) + content = tlv.build({'80': hex_str}) + + bin_size_bytes = self._scc.binary_size(EF_ISIM_ADF_map['IMPI']) + data, sw = self._scc.update_binary(EF_ISIM_ADF_map['IMPI'], rpad(content, bin_size_bytes*2)) + return sw + def read_impu(self): rec_cnt = self._scc.record_count(EF_ISIM_ADF_map['IMPU']) impu_recs = "" @@ -1301,6 +1313,16 @@ if sw != '9000': print("Programming Home Network Domain Name failed with code %s"%sw) + # update EF.IMPI in ADF.ISIM + # TODO: Validate IMPI input + if self.file_exists(EF_ISIM_ADF_map['IMPI']): + if p.get('impi'): + sw = self.update_impi(p['impi']) + else: + sw = self.update_impi() + if sw != '9000': + print("Programming IMPI failed with code %s"%sw) + if '9000' == self.select_adf_by_aid(): # update EF-USIM_AUTH_KEY in ADF.USIM if p.get('ki'): -- To view, visit https://gerrit.osmocom.org/c/pysim/+/21954 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ic1ccf99b5aa45297ef1e43a43373df603f756379 Gerrit-Change-Number: 21954 Gerrit-PatchSet: 1 Gerrit-Owner: herlesupreeth Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 14:46:28 2021 From: gerrit-no-reply at lists.osmocom.org (herlesupreeth) Date: Tue, 5 Jan 2021 14:46:28 +0000 Subject: Change in pysim[master]: sysmoISIM-SJA2: Add support for programming IMS public user identity References: Message-ID: herlesupreeth has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/21955 ) Change subject: sysmoISIM-SJA2: Add support for programming IMS public user identity ...................................................................... sysmoISIM-SJA2: Add support for programming IMS public user identity This EF contains one or more records, with each record able to hold a public SIP Identity (SIP URI) of the user. EF.IMPU consist of URI TLV data object values see IETF RFC 3261. The URI shall be encoded to an octet string according to UTF-8 encoding rules as specified in IETF RFC 3629 ./pySim-prog.py -p 0 -x 001 -y 01 -s 8988211900000000004 -i 001011234567895 -k 8baf473f2f8fd09487cccbd7097c6862 --op 11111111111111111111111111111111 -o 8E27B6AF0E692E750F32667A3B14605D -a 85524953 -n isim.test --msisdn 0598765432100 --epdgid epdg.epc.mnc001.mcc001.pub.3gppnetwork.org --pcscf pcscf.ims.testop.org --ims-hdomain ims.testop.org --impi 1234567895 at ims.testop.org --impu sip:5987654321 at ims.testop.org Change-Id: If10bc2e50eca390b81755b5cc7211e695233612d --- M pySim-prog.py M pySim/cards.py 2 files changed, 29 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/55/21955/1 diff --git a/pySim-prog.py b/pySim-prog.py index 3abd0bd..cf503d0 100755 --- a/pySim-prog.py +++ b/pySim-prog.py @@ -162,6 +162,9 @@ parser.add_option("--impi", dest="impi", help="Set IMS private user identity", ) + parser.add_option("--impu", dest="impu", + help="Set IMS public user identity", + ) parser.add_option("--read-imsi", dest="read_imsi", action="store_true", help="Read the IMSI from the CARD", default=False ) @@ -471,7 +474,8 @@ 'epdgSelection' : opts.epdgSelection, 'pcscf' : opts.pcscf, 'ims_hdomain': opts.ims_hdomain, - 'impi' : opts.impi + 'impi' : opts.impi, + 'impu' : opts.impu, } diff --git a/pySim/cards.py b/pySim/cards.py index 62163a1..ac6d223 100644 --- a/pySim/cards.py +++ b/pySim/cards.py @@ -411,6 +411,19 @@ impu_recs += "IMS public user identity: Can't read, response code = %s\n" % (sw) return impu_recs + def update_impu(self, impu=None): + hex_str = "" + if impu: + hex_str = s2h(impu) + # Build TLV + tlv = TLV(['80']) + content = tlv.build({'80': hex_str}) + + rec_size_bytes = self._scc.record_size(EF_ISIM_ADF_map['IMPU']) + impu_tlv = rpad(content, rec_size_bytes*2) + data, sw = self._scc.update_record(EF_ISIM_ADF_map['IMPU'], 1, impu_tlv) + return sw + class _MagicSimBase(Card): """ @@ -1323,6 +1336,17 @@ if sw != '9000': print("Programming IMPI failed with code %s"%sw) + # update EF.IMPU in ADF.ISIM + # TODO: Validate IMPU input + # Support multiple IMPU if there is enough space + if self.file_exists(EF_ISIM_ADF_map['IMPU']): + if p.get('impu'): + sw = self.update_impu(p['impu']) + else: + sw = self.update_impu() + if sw != '9000': + print("Programming IMPU failed with code %s"%sw) + if '9000' == self.select_adf_by_aid(): # update EF-USIM_AUTH_KEY in ADF.USIM if p.get('ki'): -- To view, visit https://gerrit.osmocom.org/c/pysim/+/21955 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: If10bc2e50eca390b81755b5cc7211e695233612d Gerrit-Change-Number: 21955 Gerrit-PatchSet: 1 Gerrit-Owner: herlesupreeth Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 14:49:22 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 5 Jan 2021 14:49:22 +0000 Subject: Change in osmo-pcu[master]: doc: Improve CS/MCS GPRS/EGPRS considerations in User Manual In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-pcu/+/21943 to look at the new patch set (#2). Change subject: doc: Improve CS/MCS GPRS/EGPRS considerations in User Manual ...................................................................... doc: Improve CS/MCS GPRS/EGPRS considerations in User Manual Related: OS#4544 Related: SYS#4869 Change-Id: I7b205f5cab5862058a408f628925beb9f0f60a92 --- M doc/manuals/chapters/configuration.adoc 1 file changed, 128 insertions(+), 10 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/43/21943/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21943 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I7b205f5cab5862058a408f628925beb9f0f60a92 Gerrit-Change-Number: 21943 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 14:49:51 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 5 Jan 2021 14:49:51 +0000 Subject: Change in osmo-pcu[master]: doc: Improve CS/MCS GPRS/EGPRS considerations in User Manual In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-pcu/+/21943 to look at the new patch set (#3). Change subject: doc: Improve CS/MCS GPRS/EGPRS considerations in User Manual ...................................................................... doc: Improve CS/MCS GPRS/EGPRS considerations in User Manual Related: OS#4544 Related: SYS#4869 Change-Id: I7b205f5cab5862058a408f628925beb9f0f60a92 --- M doc/manuals/chapters/configuration.adoc 1 file changed, 125 insertions(+), 15 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/43/21943/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21943 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I7b205f5cab5862058a408f628925beb9f0f60a92 Gerrit-Change-Number: 21943 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 14:53:17 2021 From: gerrit-no-reply at lists.osmocom.org (herlesupreeth) Date: Tue, 5 Jan 2021 14:53:17 +0000 Subject: Change in pysim[master]: sysmoISIM-SJA2: Enable programming of EF.MSISDN References: Message-ID: herlesupreeth has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/21956 ) Change subject: sysmoISIM-SJA2: Enable programming of EF.MSISDN ...................................................................... sysmoISIM-SJA2: Enable programming of EF.MSISDN Change-Id: I8ed27142009a50a1cc31a9f2e0e854a53add6e89 --- M pySim/cards.py 1 file changed, 11 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/56/21956/1 diff --git a/pySim/cards.py b/pySim/cards.py index ac6d223..a8dcf10 100644 --- a/pySim/cards.py +++ b/pySim/cards.py @@ -1287,6 +1287,17 @@ r = self._scc.select_file(['3f00', '7f10']) data, sw = self._scc.update_record('6f42', 1, lpad(p['smsp'], 104), force_len=True) + # EF.MSISDN + # TODO: Alpha Identifier (currently 'ff'O * 20) + # TODO: Capability/Configuration1 Record Identifier + # TODO: Extension1 Record Identifier + if p.get('msisdn') is not None: + msisdn = enc_msisdn(p['msisdn']) + content = 'ff' * 20 + msisdn + 'ff' * 2 + + r = self._scc.select_file(['3f00', '7f10']) + data, sw = self._scc.update_record('6F40', 1, content, force_len=True) + # Populate AIDs self.read_aids() -- To view, visit https://gerrit.osmocom.org/c/pysim/+/21956 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I8ed27142009a50a1cc31a9f2e0e854a53add6e89 Gerrit-Change-Number: 21956 Gerrit-PatchSet: 1 Gerrit-Owner: herlesupreeth Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 14:53:18 2021 From: gerrit-no-reply at lists.osmocom.org (herlesupreeth) Date: Tue, 5 Jan 2021 14:53:18 +0000 Subject: Change in pysim[master]: sysmoISIM-SJA2: Enable programming of EF.ACC References: Message-ID: herlesupreeth has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/21957 ) Change subject: sysmoISIM-SJA2: Enable programming of EF.ACC ...................................................................... sysmoISIM-SJA2: Enable programming of EF.ACC Change-Id: If318117a2339399191dfc3fcec856d9247a034fb --- M pySim/cards.py 1 file changed, 6 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/57/21957/1 diff --git a/pySim/cards.py b/pySim/cards.py index a8dcf10..7a61b68 100644 --- a/pySim/cards.py +++ b/pySim/cards.py @@ -1298,6 +1298,12 @@ r = self._scc.select_file(['3f00', '7f10']) data, sw = self._scc.update_record('6F40', 1, content, force_len=True) + # EF.ACC + if p.get('acc'): + sw = self.update_acc(p['acc']) + if sw != '9000': + print("Programming ACC failed with code %s"%sw) + # Populate AIDs self.read_aids() -- To view, visit https://gerrit.osmocom.org/c/pysim/+/21957 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: If318117a2339399191dfc3fcec856d9247a034fb Gerrit-Change-Number: 21957 Gerrit-PatchSet: 1 Gerrit-Owner: herlesupreeth Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 14:53:18 2021 From: gerrit-no-reply at lists.osmocom.org (herlesupreeth) Date: Tue, 5 Jan 2021 14:53:18 +0000 Subject: Change in pysim[master]: pySim-read.py: Enable reading of UICC IARI from ISIM References: Message-ID: herlesupreeth has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/21958 ) Change subject: pySim-read.py: Enable reading of UICC IARI from ISIM ...................................................................... pySim-read.py: Enable reading of UICC IARI from ISIM Change-Id: Iba222421f2fcc2b9b12605608bf640f7627904d0 --- M pySim-read.py M pySim/cards.py M pysim-testdata/sysmoISIM-SJA2.ok 3 files changed, 31 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/58/21958/1 diff --git a/pySim-read.py b/pySim-read.py index 4047598..b94e709 100755 --- a/pySim-read.py +++ b/pySim-read.py @@ -334,6 +334,14 @@ except Exception as e: print("IMS public user identity: Can't read file -- " + str(e)) + # EF.UICCIARI - UICC IARI + try: + if card.file_exists(EF_ISIM_ADF_map['UICCIARI']): + res = card.read_iari() + print("UICC IARI:\n%s" % (len(res) and res or '\tNot available\n',)) + except Exception as e: + print("UICC IARI: Can't read file -- " + str(e)) + # Check whether we have th AID of ISIM, if so select it by its AID # EF.IST - File Id in ADF ISIM : 6f07 if '9000' == card.select_adf_by_aid(adf="isim"): diff --git a/pySim/cards.py b/pySim/cards.py index 7a61b68..850d084 100644 --- a/pySim/cards.py +++ b/pySim/cards.py @@ -424,6 +424,19 @@ data, sw = self._scc.update_record(EF_ISIM_ADF_map['IMPU'], 1, impu_tlv) return sw + def read_iari(self): + rec_cnt = self._scc.record_count(EF_ISIM_ADF_map['UICCIARI']) + uiari_recs = "" + for i in range(0, rec_cnt): + (res, sw) = self._scc.read_record(EF_ISIM_ADF_map['UICCIARI'], i + 1) + if sw == '9000': + # Skip the inital tag value ('80') byte and get length of contents + length = int(res[2:4], 16) + content = h2s(res[4:4+(length*2)]) + uiari_recs += "\t%s\n" % (len(content) and content or 'Not available') + else: + uiari_recs += "UICC IARI: Can't read, response code = %s\n" % (sw) + return uiari_recs class _MagicSimBase(Card): """ diff --git a/pysim-testdata/sysmoISIM-SJA2.ok b/pysim-testdata/sysmoISIM-SJA2.ok index 26e20b0..e50db8b 100644 --- a/pysim-testdata/sysmoISIM-SJA2.ok +++ b/pysim-testdata/sysmoISIM-SJA2.ok @@ -194,6 +194,16 @@ Not available Not available +UICC IARI: + Not available + Not available + Not available + Not available + Not available + Not available + Not available + Not available + ISIM Service Table: 190200 Service 1 - P-CSCF address Service 4 - GBA-based Local Key Establishment Mechanism -- To view, visit https://gerrit.osmocom.org/c/pysim/+/21958 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Iba222421f2fcc2b9b12605608bf640f7627904d0 Gerrit-Change-Number: 21958 Gerrit-PatchSet: 1 Gerrit-Owner: herlesupreeth Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 14:53:55 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 5 Jan 2021 14:53:55 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: always check rc of osmo_sockaddr_str_from_sockaddr() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21944 ) Change subject: gprs_ns2_sns: always check rc of osmo_sockaddr_str_from_sockaddr() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21944 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I26644fe544c82c90767ec1a9709918474bd1be53 Gerrit-Change-Number: 21944 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Assignee: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 05 Jan 2021 14:53:55 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 14:58:07 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 5 Jan 2021 14:58:07 +0000 Subject: Change in osmo-sgsn[master]: Fix gbproxy_sgsn_by_tlli wraparound References: Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21959 ) Change subject: Fix gbproxy_sgsn_by_tlli wraparound ...................................................................... Fix gbproxy_sgsn_by_tlli wraparound Change-Id: I74ecb655f4d433f7ac14d00d934d237325aab606 Related: SYS#4865, OS#4472 --- M src/gbproxy/gb_proxy_peer.c 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/59/21959/1 diff --git a/src/gbproxy/gb_proxy_peer.c b/src/gbproxy/gb_proxy_peer.c index 863bcce..7c00fc7 100644 --- a/src/gbproxy/gb_proxy_peer.c +++ b/src/gbproxy/gb_proxy_peer.c @@ -533,6 +533,7 @@ i++; } // Start again from the beginning + i = 0; llist_for_each_entry(sgsn, &cfg->sgsns, list) { if (i > index) { break; -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21959 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I74ecb655f4d433f7ac14d00d934d237325aab606 Gerrit-Change-Number: 21959 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 14:58:08 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 5 Jan 2021 14:58:08 +0000 Subject: Change in osmo-sgsn[master]: WIP gbproxy: Implment TLLI cache and use it for SUSPEND/RESUME References: Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21960 ) Change subject: WIP gbproxy: Implment TLLI cache and use it for SUSPEND/RESUME ...................................................................... WIP gbproxy: Implment TLLI cache and use it for SUSPEND/RESUME Deleting cache entries by timer or reception of NACK/ACK is missing Related: SYS#4865, OS#4472 Change-Id: I42adf70f560d2bb358a9e1c7614281e8d2967568 --- M include/osmocom/sgsn/gb_proxy.h M src/gbproxy/gb_proxy.c M src/gbproxy/gb_proxy_peer.c 3 files changed, 90 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/60/21960/1 diff --git a/include/osmocom/sgsn/gb_proxy.h b/include/osmocom/sgsn/gb_proxy.h index ad5bb27..ea9e649 100644 --- a/include/osmocom/sgsn/gb_proxy.h +++ b/include/osmocom/sgsn/gb_proxy.h @@ -75,6 +75,9 @@ /* hash table of all gbproxy_cell */ DECLARE_HASHTABLE(cells, 8); + /* tlli<->sgsn cache */ + DECLARE_HASHTABLE(tlli_cache, 10); + /* List of all SGSNs */ struct llist_head sgsns; @@ -163,6 +166,19 @@ } pool; }; +/* TLLI cache */ +struct gbproxy_tlli_cache { + /* linked to gbproxy_config.tlli_cache */ + struct hlist_node list; + + /* TLLI of the entry */ + uint32_t tlli; + /* When was this entry last seen */ + struct timespec tstamp; + /* The Cell this TLLI was last seen */ + struct gbproxy_nse *nse; +}; + /* Convenience logging macros for NSE/BVC */ #define LOGPNSE_CAT(NSE, SUBSYS, LEVEL, FMT, ARGS...) \ LOGP(SUBSYS, LEVEL, "NSE(%05u/%s) " FMT, (NSE)->nsei, \ @@ -229,6 +245,8 @@ void gbproxy_nse_free(struct gbproxy_nse *nse); struct gbproxy_nse *gbproxy_nse_by_nsei(struct gbproxy_config *cfg, uint16_t nsei, uint32_t flags); struct gbproxy_nse *gbproxy_nse_by_nsei_or_new(struct gbproxy_config *cfg, uint16_t nsei, bool sgsn_facing); +void gbproxy_nse_cache_tlli(struct gbproxy_nse *nse, uint32_t tlli); +struct gbproxy_nse *gbproxy_nse_by_tlli(struct gbproxy_config *cfg, uint32_t tlli); /* SGSN handling */ struct gbproxy_sgsn *gbproxy_sgsn_alloc(struct gbproxy_config *cfg, uint16_t nsei, const char *name); diff --git a/src/gbproxy/gb_proxy.c b/src/gbproxy/gb_proxy.c index 34cff31..a260ec9 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -890,11 +890,26 @@ return osmo_fsm_inst_dispatch(from_bvc->fi, BSSGP_BVCFSM_E_RX_UNBLOCK, msg); case BSSGP_PDUT_SUSPEND: case BSSGP_PDUT_RESUME: + { + struct gbproxy_sgsn *sgsn; + /* FIXME: Implement TLLI Cache. Every SUSPEND/RESUME we must * take record of the TLLI->BVC mapping so we can map * back from TLLI->BVC when the SUSPEND/RESUME-ACK * arrives. Cache should have a timeout of 1-3 seconds * and the ACK should explicitly delete entries. */ + tlli = osmo_load32be(TLVP_VAL(&tp, BSSGP_IE_TLLI)); + + sgsn = gbproxy_select_sgsn(nse->cfg, &tlli); + if (!sgsn) { + LOGP(DGPRS, LOGL_ERROR, "Could not find any SGSN for TLLI, dropping message!\n"); + rc = -EINVAL; + break; + } + + gbproxy_nse_cache_tlli(nse, tlli); + + rc = gbprox_relay2nse(msg, sgsn->nse, 0); #if 0 /* TODO: Validate the RAI for consistency with the RAI * we expect for any of the BVC within this BSS side NSE */ @@ -902,6 +917,7 @@ gsm48_parse_ra(&raid, from_bvc->ra); #endif break; + } case BSSGP_PDUT_STATUS: /* FIXME: inspect the erroneous PDU IE (if any) and check * if we can extract a TLLI/RNI to route it to the correct SGSN */ @@ -1149,11 +1165,26 @@ case BSSGP_PDUT_SUSPEND_NACK: case BSSGP_PDUT_RESUME_ACK: case BSSGP_PDUT_RESUME_NACK: + { + struct gbproxy_nse *nse_peer; + uint32_t tlli = osmo_load32be(TLVP_VAL(&tp, BSSGP_IE_TLLI)); + /* FIXME: handle based on TLLI cache. The RA-ID is not a unique * criterion, so we have to rely on the TLLI->BVC state created * while processing the SUSPEND/RESUME in uplink */ /* FIXME: route to SGSN baed on NRI derived from TLLI */ + nse_peer = gbproxy_nse_by_tlli(cfg, tlli); + if (!nse_peer) { + LOGPNSE(nse, LOGL_ERROR, "Rx %s: Cannot find NSE\n", pdut_name); + //rate_ctr_inc(&cfg->ctrg-> ctr[GBPROX_GLOB_CTR_INV_RAI]); + // FIXME + return bssgp_tx_status(BSSGP_CAUSE_INV_MAND_INF, NULL, msg); + } + + LOGPNSE(nse_peer, LOGL_DEBUG, "Rx %s: forwarding\n", pdut_name); + gbprox_relay2nse(msg, nse_peer, ns_bvci); break; + } case BSSGP_PDUT_SGSN_INVOKE_TRACE: case BSSGP_PDUT_OVERLOAD: LOGPNSE(nse, LOGL_DEBUG, "Rx %s: broadcasting\n", pdut_name); @@ -1386,6 +1417,7 @@ hash_init(cfg->bss_nses); hash_init(cfg->sgsn_nses); hash_init(cfg->cells); + hash_init(cfg->tlli_cache); INIT_LLIST_HEAD(&cfg->sgsns); cfg->ctrg = rate_ctr_group_alloc(tall_sgsn_ctx, &global_ctrg_desc, 0); diff --git a/src/gbproxy/gb_proxy_peer.c b/src/gbproxy/gb_proxy_peer.c index 7c00fc7..95ec68a 100644 --- a/src/gbproxy/gb_proxy_peer.c +++ b/src/gbproxy/gb_proxy_peer.c @@ -192,6 +192,46 @@ return NULL; } +static inline struct gbproxy_tlli_cache *_get_tlli_entry(struct gbproxy_config *cfg, uint32_t tlli) +{ + struct gbproxy_tlli_cache *cache_entry; + + hash_for_each_possible(cfg->tlli_cache, cache_entry, list, tlli) { + if (cache_entry->tlli == tlli) + return cache_entry; + } + return NULL; +} + +void gbproxy_nse_cache_tlli(struct gbproxy_nse *nse, uint32_t tlli) +{ + struct gbproxy_config *cfg = nse->cfg; + struct gbproxy_tlli_cache *cache_entry = _get_tlli_entry(cfg, tlli); + + if (cache_entry) { + // Update the entry if it already exists + cache_entry->nse = nse; + osmo_clock_gettime(CLOCK_MONOTONIC, &cache_entry->tstamp); + } + + cache_entry = talloc_zero(cfg, struct gbproxy_tlli_cache); + cache_entry->tlli = tlli; + cache_entry->nse = nse; + osmo_clock_gettime(CLOCK_MONOTONIC, &cache_entry->tstamp); + hash_add(cfg->tlli_cache, &cache_entry->list, cache_entry->tlli); +} + +struct gbproxy_nse *gbproxy_nse_by_tlli(struct gbproxy_config *cfg, uint32_t tlli) +{ + struct gbproxy_tlli_cache *tlli_cache; + + hash_for_each_possible(cfg->tlli_cache, tlli_cache, list, tlli) { + if (tlli_cache->tlli == tlli) + return tlli_cache->nse; + } + return NULL; +} + struct gbproxy_cell *gbproxy_cell_by_bvci_or_new(struct gbproxy_config *cfg, uint16_t bvci) { struct gbproxy_cell *cell; -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21960 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I42adf70f560d2bb358a9e1c7614281e8d2967568 Gerrit-Change-Number: 21960 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 15:00:05 2021 From: gerrit-no-reply at lists.osmocom.org (herlesupreeth) Date: Tue, 5 Jan 2021 15:00:05 +0000 Subject: Change in pysim[master]: sysmoISIM-SJA2: Enable programming of EF.MSISDN In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/pysim/+/21956 to look at the new patch set (#2). Change subject: sysmoISIM-SJA2: Enable programming of EF.MSISDN ...................................................................... sysmoISIM-SJA2: Enable programming of EF.MSISDN Change-Id: I8ed27142009a50a1cc31a9f2e0e854a53add6e89 --- M pySim/cards.py M pysim-testdata/sysmoISIM-SJA2.ok 2 files changed, 12 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/56/21956/2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/21956 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I8ed27142009a50a1cc31a9f2e0e854a53add6e89 Gerrit-Change-Number: 21956 Gerrit-PatchSet: 2 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 15:03:24 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 5 Jan 2021 15:03:24 +0000 Subject: Change in osmo-pcu[master]: gprs_rlcmac_sched: fix incorrect SBA frame number assignment In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21950 ) Change subject: gprs_rlcmac_sched: fix incorrect SBA frame number assignment ...................................................................... Patch Set 1: Add "Fixes: 07e97cf8a551b05d7f5f3f9583b68b2eff0f1c23" bug present since initial code in 2012 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21950 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ifd607ae8a33382e48f9d9e50a28a4bdf4eaf73a2 Gerrit-Change-Number: 21950 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 05 Jan 2021 15:03:24 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 15:07:57 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 5 Jan 2021 15:07:57 +0000 Subject: Change in osmo-pcu[master]: gprs_rlcmac_sched: fix incorrect SBA frame number assignment In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-pcu/+/21950 to look at the new patch set (#2). Change subject: gprs_rlcmac_sched: fix incorrect SBA frame number assignment ...................................................................... gprs_rlcmac_sched: fix incorrect SBA frame number assignment There is a big difference between: if ((a = foo() != 0xffffffff)) { ... } and if ((a = foo()) != 0xffffffff) { ... } In the first case, 'a' is the result of '!=' operation, i.e. either 0 (false) or 1 (true). In the second case, 'a' will hold the value returned by foo(), and this is exactly what must have been used in gprs_rlcmac_rcv_rts_block(). The bug was there since SBA allocation feature was added in 2012. Change-Id: Ifd607ae8a33382e48f9d9e50a28a4bdf4eaf73a2 Fixes: 07e97cf8a551b05d7f5f3f9583b68b2eff0f1c23 Related: CID#215835 --- M src/gprs_rlcmac_sched.cpp 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/50/21950/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21950 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ifd607ae8a33382e48f9d9e50a28a4bdf4eaf73a2 Gerrit-Change-Number: 21950 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 15:15:46 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 5 Jan 2021 15:15:46 +0000 Subject: Change in osmo-pcu[master]: gprs_rlcmac_sched: fix incorrect SBA frame number assignment In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21950 ) Change subject: gprs_rlcmac_sched: fix incorrect SBA frame number assignment ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21950 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ifd607ae8a33382e48f9d9e50a28a4bdf4eaf73a2 Gerrit-Change-Number: 21950 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 05 Jan 2021 15:15:46 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 15:17:06 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 5 Jan 2021 15:17:06 +0000 Subject: Change in libosmocore[master]: gprs_ns2_fr: fix resource leaks due to early return in set_ifupdown() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21945 ) Change subject: gprs_ns2_fr: fix resource leaks due to early return in set_ifupdown() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21945 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie52bf8ac6d62e7f2d760294bf2fe90119cc96b4b Gerrit-Change-Number: 21945 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 05 Jan 2021 15:17:06 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 15:19:41 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 5 Jan 2021 15:19:41 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: fix uninitialized struct fields in bssgp_create_rim_ri() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21948 ) Change subject: gprs_bssgp: fix uninitialized struct fields in bssgp_create_rim_ri() ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21948 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ifc3dda1fe5e9743072751dbb14c2d973388cb3b2 Gerrit-Change-Number: 21948 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 05 Jan 2021 15:19:41 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 15:20:48 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 5 Jan 2021 15:20:48 +0000 Subject: Change in libosmocore[master]: bssgp: Add SUSPEND_NACK to osmo_pdef_bssgp In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21951 ) Change subject: bssgp: Add SUSPEND_NACK to osmo_pdef_bssgp ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21951 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic996a343215ad32e3f301712411006e5d41f9084 Gerrit-Change-Number: 21951 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 05 Jan 2021 15:20:48 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 15:21:33 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 5 Jan 2021 15:21:33 +0000 Subject: Change in osmo-sgsn[master]: gb_proxy_peer: fix NULL pointer dereference in gbproxy_sgsn_alloc() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21947 ) Change subject: gb_proxy_peer: fix NULL pointer dereference in gbproxy_sgsn_alloc() ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21947 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I1c592dd6f0da5f167290f38de3b30a1a04c4313d Gerrit-Change-Number: 21947 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 05 Jan 2021 15:21:33 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 15:21:39 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 5 Jan 2021 15:21:39 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: always check rc of osmo_sockaddr_str_from_sockaddr() In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21944 ) Change subject: gprs_ns2_sns: always check rc of osmo_sockaddr_str_from_sockaddr() ...................................................................... gprs_ns2_sns: always check rc of osmo_sockaddr_str_from_sockaddr() Writing a configuration that will be rejected by the VTY parser is not the best solution, but still better than printing values from previous iterations or the stack garbage. In any case, this is unlikely to happen, just making Coverity happy. Change-Id: I26644fe544c82c90767ec1a9709918474bd1be53 Fixes: CID#215852 --- M src/gb/gprs_ns2_sns.c 1 file changed, 3 insertions(+), 1 deletion(-) Approvals: laforge: Looks good to me, but someone else must approve pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/gb/gprs_ns2_sns.c b/src/gb/gprs_ns2_sns.c index 027d1da..2cb4293 100644 --- a/src/gb/gprs_ns2_sns.c +++ b/src/gb/gprs_ns2_sns.c @@ -1556,7 +1556,9 @@ gss = (struct ns2_sns_state *) nse->bss_sns_fi->priv; llist_for_each_entry(endpoint, &gss->sns_endpoints, list) { - osmo_sockaddr_str_from_sockaddr(&addr_str, &endpoint->saddr.u.sas); + /* It's unlikely that an error happens, but let's better be safe. */ + if (osmo_sockaddr_str_from_sockaddr(&addr_str, &endpoint->saddr.u.sas) != 0) + addr_str = (struct osmo_sockaddr_str) { .ip = "" }; vty_out(vty, " ip-sns %s %u%s", addr_str.ip, addr_str.port, VTY_NEWLINE); } } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21944 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I26644fe544c82c90767ec1a9709918474bd1be53 Gerrit-Change-Number: 21944 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Assignee: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 15:21:40 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 5 Jan 2021 15:21:40 +0000 Subject: Change in libosmocore[master]: gprs_ns2_fr: fix resource leaks due to early return in set_ifupdown() In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21945 ) Change subject: gprs_ns2_fr: fix resource leaks due to early return in set_ifupdown() ...................................................................... gprs_ns2_fr: fix resource leaks due to early return in set_ifupdown() Change-Id: Ie52bf8ac6d62e7f2d760294bf2fe90119cc96b4b Related: CID#215869 --- M src/gb/gprs_ns2_fr.c 1 file changed, 6 insertions(+), 2 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/gb/gprs_ns2_fr.c b/src/gb/gprs_ns2_fr.c index ca2d38c..2c797f3 100644 --- a/src/gb/gprs_ns2_fr.c +++ b/src/gb/gprs_ns2_fr.c @@ -448,11 +448,15 @@ OSMO_STRLCPY_ARRAY(req.ifr_name, netif); rc = ioctl(sock, SIOCGIFFLAGS, &req); - if (rc < 0) + if (rc < 0) { + close(sock); return rc; + } - if ((req.ifr_flags & IFF_UP) == up) + if ((req.ifr_flags & IFF_UP) == up) { + close(sock); return 0; + } if (up) req.ifr_flags |= IFF_UP; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21945 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie52bf8ac6d62e7f2d760294bf2fe90119cc96b4b Gerrit-Change-Number: 21945 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 15:21:40 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 5 Jan 2021 15:21:40 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: fix uninitialized struct fields in bssgp_create_rim_ri() In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21948 ) Change subject: gprs_bssgp: fix uninitialized struct fields in bssgp_create_rim_ri() ...................................................................... gprs_bssgp: fix uninitialized struct fields in bssgp_create_rim_ri() Change-Id: Ifc3dda1fe5e9743072751dbb14c2d973388cb3b2 Fixes: CID#215836 --- M src/gb/gprs_bssgp.c 1 file changed, 6 insertions(+), 3 deletions(-) Approvals: laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/gb/gprs_bssgp.c b/src/gb/gprs_bssgp.c index fd2a48c..bf0e821 100644 --- a/src/gb/gprs_bssgp.c +++ b/src/gb/gprs_bssgp.c @@ -398,9 +398,12 @@ /* Note: 3GPP TS 24.301 Figure 9.9.3.32.1 and 3GPP TS 24.008 * Figure 10.5.130 specify MCC/MNC encoding in the same way, * so we can re-use gsm48_encode_ra() for that. */ - raid_temp.mcc = ri->eutran.tai.mcc; - raid_temp.mnc = ri->eutran.tai.mnc; - raid_temp.mnc_3_digits = ri->eutran.tai.mnc_3_digits; + raid_temp = (struct gprs_ra_id) { + .mcc = ri->eutran.tai.mcc, + .mnc = ri->eutran.tai.mnc, + .mnc_3_digits = ri->eutran.tai.mnc_3_digits, + }; + gsm48_encode_ra((struct gsm48_ra_id *)buf, &raid_temp); osmo_store16be(ri->eutran.tai.tac, buf + 3); OSMO_ASSERT(ri->eutran.global_enb_id_len <= -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21948 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ifc3dda1fe5e9743072751dbb14c2d973388cb3b2 Gerrit-Change-Number: 21948 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 15:22:39 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 5 Jan 2021 15:22:39 +0000 Subject: Change in osmo-sgsn[master]: gb_proxy_peer: fix NULL pointer dereference in gbproxy_sgsn_alloc() In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21947 ) Change subject: gb_proxy_peer: fix NULL pointer dereference in gbproxy_sgsn_alloc() ...................................................................... gb_proxy_peer: fix NULL pointer dereference in gbproxy_sgsn_alloc() LOGPSGSN_CAT() dereferences sgsn->nse in order to get NSEI. Change-Id: I1c592dd6f0da5f167290f38de3b30a1a04c4313d Fixes: CID#215868 --- M src/gbproxy/gb_proxy_peer.c 1 file changed, 2 insertions(+), 1 deletion(-) Approvals: laforge: Looks good to me, but someone else must approve pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/gbproxy/gb_proxy_peer.c b/src/gbproxy/gb_proxy_peer.c index 863bcce..544eb5f 100644 --- a/src/gbproxy/gb_proxy_peer.c +++ b/src/gbproxy/gb_proxy_peer.c @@ -364,7 +364,8 @@ sgsn->nse = gbproxy_nse_alloc(cfg, nsei, true); if (!sgsn->nse) { - LOGPSGSN_CAT(sgsn, DOBJ, LOGL_INFO, "Could not allocate NSE(%05u) for SGSN\n", nsei); + LOGP(DOBJ, LOGL_ERROR, "Could not allocate NSE(%05u) for SGSN(%s)\n", + nsei, sgsn->name); goto free_sgsn; } -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21947 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I1c592dd6f0da5f167290f38de3b30a1a04c4313d Gerrit-Change-Number: 21947 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 15:26:20 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 15:26:20 +0000 Subject: Change in osmo-ttcn3-hacks[master]: deps/BSSGP: Use specific commit hash References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21961 ) Change subject: deps/BSSGP: Use specific commit hash ...................................................................... deps/BSSGP: Use specific commit hash Using "master" doesn't really work as the local master branch already exists even if we change the 'remote' to a different URL, see https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21587 Change-Id: Id5f5ba52dbc9cd51dda2e91391c901b56756e2db --- M deps/Makefile 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/61/21961/1 diff --git a/deps/Makefile b/deps/Makefile index 73b3283..1f2560b 100644 --- a/deps/Makefile +++ b/deps/Makefile @@ -82,7 +82,7 @@ titan.ProtocolEmulations.M3UA_commit= f086e78d74defa044d864f17adaad9433fedc961 titan.ProtocolEmulations.SCCP_commit= R.7.A-9-g9e70fba titan.ProtocolModules.BSSAPP_v7.3.0_commit= R.2.A-4-g20cfaf8 -titan.ProtocolModules.BSSGP_v13.0.0_commit= master +titan.ProtocolModules.BSSGP_v13.0.0_commit= e97d92a8b66bec399babea52f593771b76cb175a titan.ProtocolModules.BSSMAP_commit= master titan.ProtocolModules.DNS_commit= R.7.B titan.ProtocolModules.GRE_commit= R.2.A-5-g654c446 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21961 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Id5f5ba52dbc9cd51dda2e91391c901b56756e2db Gerrit-Change-Number: 21961 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 15:26:46 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 15:26:46 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Osmocom_Gb_types: add RIM templates In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21587 ) Change subject: Osmocom_Gb_types: add RIM templates ...................................................................... Patch Set 5: see https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21961 for a work-around -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21587 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ic495e0bb6ceb2b65cbc7c3da7ee519a013aede55 Gerrit-Change-Number: 21587 Gerrit-PatchSet: 5 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 05 Jan 2021 15:26:46 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 15:26:54 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 5 Jan 2021 15:26:54 +0000 Subject: Change in osmo-sgsn[master]: Fix gbproxy_sgsn_by_tlli wraparound In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21959 ) Change subject: Fix gbproxy_sgsn_by_tlli wraparound ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-sgsn/+/21959/1/src/gbproxy/gb_proxy_peer.c File src/gbproxy/gb_proxy_peer.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/21959/1/src/gbproxy/gb_proxy_peer.c at 538 PS1, Line 538: if (i > index) { sholdn't this be i >= index? last step i = index is already checked in previous loop right? -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21959 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I74ecb655f4d433f7ac14d00d934d237325aab606 Gerrit-Change-Number: 21959 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 05 Jan 2021 15:26:54 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 15:27:06 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 5 Jan 2021 15:27:06 +0000 Subject: Change in osmo-sgsn[master]: Fix gbproxy_sgsn_by_tlli wraparound In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21959 ) Change subject: Fix gbproxy_sgsn_by_tlli wraparound ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21959 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I74ecb655f4d433f7ac14d00d934d237325aab606 Gerrit-Change-Number: 21959 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 05 Jan 2021 15:27:06 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 15:27:09 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 15:27:09 +0000 Subject: Change in osmo-ttcn3-hacks[master]: deps/BSSGP: Use specific commit hash In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21961 ) Change subject: deps/BSSGP: Use specific commit hash ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21961 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Id5f5ba52dbc9cd51dda2e91391c901b56756e2db Gerrit-Change-Number: 21961 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 05 Jan 2021 15:27:09 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 15:27:13 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 15:27:13 +0000 Subject: Change in osmo-ttcn3-hacks[master]: deps/BSSGP: Use specific commit hash In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21961 ) Change subject: deps/BSSGP: Use specific commit hash ...................................................................... deps/BSSGP: Use specific commit hash Using "master" doesn't really work as the local master branch already exists even if we change the 'remote' to a different URL, see https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21587 Change-Id: Id5f5ba52dbc9cd51dda2e91391c901b56756e2db --- M deps/Makefile 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/deps/Makefile b/deps/Makefile index 73b3283..1f2560b 100644 --- a/deps/Makefile +++ b/deps/Makefile @@ -82,7 +82,7 @@ titan.ProtocolEmulations.M3UA_commit= f086e78d74defa044d864f17adaad9433fedc961 titan.ProtocolEmulations.SCCP_commit= R.7.A-9-g9e70fba titan.ProtocolModules.BSSAPP_v7.3.0_commit= R.2.A-4-g20cfaf8 -titan.ProtocolModules.BSSGP_v13.0.0_commit= master +titan.ProtocolModules.BSSGP_v13.0.0_commit= e97d92a8b66bec399babea52f593771b76cb175a titan.ProtocolModules.BSSMAP_commit= master titan.ProtocolModules.DNS_commit= R.7.B titan.ProtocolModules.GRE_commit= R.2.A-5-g654c446 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21961 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Id5f5ba52dbc9cd51dda2e91391c901b56756e2db Gerrit-Change-Number: 21961 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 15:29:55 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 15:29:55 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Osmocom_Gb_types: add RIM templates In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21587 ) Change subject: Osmocom_Gb_types: add RIM templates ...................................................................... Patch Set 6: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21587 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ic495e0bb6ceb2b65cbc7c3da7ee519a013aede55 Gerrit-Change-Number: 21587 Gerrit-PatchSet: 6 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 05 Jan 2021 15:29:55 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 15:30:01 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 15:30:01 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Osmocom_Gb_types: add RIM templates In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21587 ) Change subject: Osmocom_Gb_types: add RIM templates ...................................................................... Osmocom_Gb_types: add RIM templates The template set we use for testing the GB (BSSGB) interface on osmo-sgsn and osmo-pcu lacks templates to generate RIM (ran information management) messages. The records and unions are already specified in BSSGP_Types.ttcn, we just need to form templates in order to be able to use them. Change-Id: Ic495e0bb6ceb2b65cbc7c3da7ee519a013aede55 Related: SYS#5103 --- M library/Osmocom_Gb_Types.ttcn 1 file changed, 806 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve diff --git a/library/Osmocom_Gb_Types.ttcn b/library/Osmocom_Gb_Types.ttcn index c532772..b83131d 100644 --- a/library/Osmocom_Gb_Types.ttcn +++ b/library/Osmocom_Gb_Types.ttcn @@ -2211,6 +2211,812 @@ } } + /* 3GPP TS 48.018 11.3.61 */ + const OCT1 RIM_APP_ID_NACC := '01'O; + const OCT1 RIM_APP_ID_SI3 := '02'O; + const OCT1 RIM_APP_ID_MBMS_DATA_CH := '03'O; + const OCT1 RIM_APP_ID_SON_TRANSF := '04'O; + const OCT1 RIM_APP_ID_UTRA_SI := '05'O; + template (value) RIM_Application_Identity ts_RIM_Application_Identity(OCT1 app_id) := { + iEI := '4B'O, + ext := '1'B, + lengthIndicator := { + length1 := 1 + }, + rIMApplicationIdentity := app_id + } + + + /* 3GPP TS 48.018 11.3.62 */ + template (value) RIM_Sequence_Number ts_RIM_Sequence_Number(integer seq) := { + iEI := '4C'O, + ext := '1'B, + lengthIndicator := { + length1 := 4 + }, + rIMSequenceNumber := int2oct(seq, 4) + } + + /* 3GPP TS 48.018 11.3.62a.1 */ + template (value) RAN_Information_Request_RIM_Container + ts_RAN_Information_Request_RIM_Container(template (value) RIM_Application_Identity app_id, + template (value) RIM_Sequence_Number seq, + template (value) RIM_PDU_Indications ind, + template (omit) RIM_Protocol_Version_Number ver := omit, + template (omit) RAN_Information_Request_Application_Container app_cont := omit, + template (omit) SON_Transfer_Application_Identity_TLV son_app_id := omit) := { + iEI := '57'O, + ext := '1'B, + lengthIndicator := { + length1 := 0 /* overwritten */ + }, + rIM_Application_Identity := app_id, + rIM_Sequence_Number := seq, + rIM_PDU_Indications := ind, + rIM_Protocol_Version_Number := ver, + application_Container := app_cont, + sON_Transfer_Application_Identity_TLV := son_app_id + } + template RAN_Information_Request_RIM_Container + tr_RAN_Information_Request_RIM_Container(template RIM_Application_Identity app_id := ?, + template RIM_Sequence_Number seq := ?, + template RIM_PDU_Indications ind := ?, + template RIM_Protocol_Version_Number ver := *, + template RAN_Information_Request_Application_Container app_cont := *, + template SON_Transfer_Application_Identity_TLV son_app_id := *) := { + iEI := '57'O, + ext := '1'B, + lengthIndicator := { + length1 := ? + }, + rIM_Application_Identity := app_id, + rIM_Sequence_Number := seq, + rIM_PDU_Indications := ind, + rIM_Protocol_Version_Number := ver, + application_Container := app_cont, + sON_Transfer_Application_Identity_TLV := son_app_id + } + + + /* 3GPP TS 48.018 11.3.62a.2 */ + template (value) RAN_Information_RIM_Container + ts_RAN_Information_RIM_Container(template (value) RIM_Application_Identity app_id, + template (value) RIM_Sequence_Number seq, + template (value) RIM_PDU_Indications ind, + template (omit) RIM_Protocol_Version_Number ver := omit, + template (omit) ApplContainer_or_ApplErrContainer app_cont_or_app_err := omit, + template (omit) SON_Transfer_Application_Identity_TLV son_app_id := omit) := { + + iEI := '58'O, + ext := '1'B, + lengthIndicator := { + length1 := 0 /* overwritten */ + }, + rIM_Application_Identity := app_id, + rIM_Sequence_Number := seq, + rIM_PDU_Indications := ind, + rIM_Protocol_Version_Number := ver, + applContainer_or_ApplErrContainer := app_cont_or_app_err, + sON_Transfer_Application_Identity := son_app_id + } + template (value) ApplContainer_or_ApplErrContainer + tsu_ApplContainer_or_ApplErrContainer_NACC(template (value) ApplContainer_or_ApplErrContainer_NACC cont) := { + nacc := cont + } + template (value) ApplContainer_or_ApplErrContainer + tsu_ApplContainer_or_ApplErrContainer_SI3(template (value) ApplContainer_or_ApplErrContainer_SI3 cont) := { + si3 := cont + } + template (value) ApplContainer_or_ApplErrContainer + tsu_ApplContainer_or_ApplErrContainer_MBMS_data_channel(template (value) ApplContainer_or_ApplErrContainer_MBMS_data_channel cont) := { + mBMS_data_channel := cont + } + template (value) ApplContainer_or_ApplErrContainer_NACC + tsu_ApplContainer_NACC(template (value) BssgpCellId cid, boolean psi_type, integer si_psi_num, octetstring si_psi) := { + application_Container := ts_RAN_Information_Application_Container_NACC(cid, psi_type, si_psi_num, si_psi) + } + template (value) ApplContainer_or_ApplErrContainer_NACC + tsu_ApplErrContainer_NACC(template (value) BssgpCellId cid, + integer cause, + template (value) Application_Container_IE_NACC app_cont) := { + application_Error_Container := ts_Application_Error_Container_NACC(cid, cause, app_cont) + } + template (value) ApplContainer_or_ApplErrContainer_SI3 + tsu_ApplContainer_SI3(template (value) BssgpCellId cid, template (value) SI3 si3) := { + application_Container := ts_RAN_Information_Application_Container_SI3(cid, si3) + } + template (value) ApplContainer_or_ApplErrContainer_SI3 + tsu_ApplErrContainer_SI3(template (value) BssgpCellId cid, + integer cause, + template (value) Application_Container_IE_SI3 app_cont) := { + application_Error_Container := ts_Application_Error_Container_SI3(cid, cause, app_cont) + } + template (value) ApplContainer_or_ApplErrContainer_MBMS_data_channel + tsu_ApplContainer_MBMS_data_channel(template (value) BssgpCellId cid, octetstring data_ch_report) := { + application_Container := ts_RAN_Information_Application_Container_MBMS_data_channel(cid, data_ch_report) + } + template (value) ApplContainer_or_ApplErrContainer_MBMS_data_channel + tsu_ApplErrContainer_MBMS_data_channel(template (value) BssgpCellId cid, + integer cause, + template (value) Application_Container_IE_MBMS_data_channel app_cont) := { + application_Error_Container := ts_Application_Error_Container_MBMS_data_channel(cid, cause, app_cont) + } + + /* 3GPP TS 48.018 11.3.62a.3 */ + template (value) RAN_Information_Ack_RIM_Container + ts_RAN_Information_Ack_RIM_Container(template (value) RIM_Application_Identity app_id, + template (value) RIM_Sequence_Number seq, + template (omit) RIM_Protocol_Version_Number ver := omit, + template (omit) SON_Transfer_Application_Identity_TLV son_app_id := omit) := { + iEI := '5A'O, + ext := '1'B, + lengthIndicator := { + length1 := 0 /* overwritten */ + }, + rIM_Application_Identity := app_id, + rIM_Sequence_Number := seq, + rIM_Protocol_Version_Number := ver, + sON_Transfer_Application_Identity := son_app_id + } + + /* 3GPP TS 48.018 11.3.62a.4 */ + template (value) RAN_Information_Error_RIM_Container + ts_RAN_Information_Error_RIM_Container(template (value) RIM_Application_Identity app_id, + template (value) Cause_BSSGP cause, + template (omit) RIM_Protocol_Version_Number ver := omit, + PDU_BSSGP pdu, + template (omit) SON_Transfer_Application_Identity_TLV son_app_id := omit) := { + iEI := '5B'O, + ext := '1'B, + lengthIndicator := { + length1 := 0 /* overwritten */ + }, + rIM_Application_Identity := app_id, + rIM_cause := cause, + rIM_Protocol_Version_Number := ver, + pDU_in_Error:= { + iEI := '15'O, + ext := '1'B, + lengthIndicator := { + length1 := 0 /* overwritten */ + }, + erroneous_BSSGP_PDU := enc_PDU_BSSGP(pdu) + }, + sON_Transfer_Application_Identity := son_app_id + } + + /* 3GPP TS 48.018 11.3.62a.5 */ + template (value) RAN_Information_Application_Error_RIM_Container + ts_RAN_Information_Application_Error_RIM_Container(template (value) RIM_Application_Identity app_id, + template (value) RIM_Sequence_Number seq, + template (value) RIM_PDU_Indications ind, + template (omit) RIM_Protocol_Version_Number ver := omit, + template (value) Application_Error_Container cont, + template (omit) SON_Transfer_Application_Identity_TLV son_app_id := omit) := { + iEI := '59'O, + ext := '1'B, + lengthIndicator := { + length1 := 0 /* overwritten */ + }, + rIM_Application_Identity := app_id, + rIM_Sequence_Number := seq, + rIM_PDU_Indications := ind, + rIM_Protocol_Version_Number := ver, + application_Error_Container := cont, + sON_Transfer_Application_Identity := son_app_id + } + + + /* 3GPP TS 48.018 11.3.63.1 */ + template (value) RAN_Information_Request_Application_Container + tsu_RAN_Information_Request_Application_Container_NACC(template (value) BssgpCellId cid) := { + nacc := ts_RAN_Information_Request_Application_Container_NACC(cid) + } + template (value) RAN_Information_Request_Application_Container + tsu_RAN_Information_Request_Application_Container_SI3(template (value) BssgpCellId cid) := { + si3 := ts_RAN_Information_Request_Application_Container_SI3(cid) + } + template (value) RAN_Information_Request_Application_Container + tsu_RAN_Information_Request_Application_Container_MBMS_data_channel(template (value) BssgpCellId cid) := { + mBMS_data_channel := ts_RAN_Information_Request_Application_Container_MBMS_data_channel(cid) + } + + /* NOTE: The type description of reporting_Cell_Identifier in chapter 11.3.63.1, version V10.6.0 (2012-07) of + * 3GPP TS 48.018 clearly states: "Reporting Cell Identifier: This field is encoded as the Cell Identifier + * defined in sub-clause 11.3.9". However this seems to be an error in the specification, because the + * specifiction in Table 11.3.63.1.1 already has a length field an an IEI defined. Keeping the IEI and lenght + * of the BSSGP cell identifier in addition would no make sense. Also in the chapters below the specifiction + * of the IEs are similar and there it says "Reporting Cell Identifier: This field is encoded as the value + * part of the Cell Identifier IE defined in sub-clause 11.3.9, not including IEI and Length Indicator.", + * which actually makes sense. */ + + /* 3GPP TS 48.018 11.3.63.1.1 */ + template (value) RAN_Information_Request_Application_Container_NACC + ts_RAN_Information_Request_Application_Container_NACC(template (value) BssgpCellId cid) := { + iEI := '4D'O, + ext := '1'B, + lengthIndicator := { + length1 := 0 /* overwritten */ + }, + reporting_Cell_Identifier := t_Cell_Identifier_V(cid) + } + + /* 3GPP TS 48.018 11.3.63.1.2 */ + template (value) RAN_Information_Request_Application_Container_SI3 + ts_RAN_Information_Request_Application_Container_SI3(template (value) BssgpCellId cid) := { + iEI := '4D'O, + ext := '1'B, + lengthIndicator := { + length1 := 0 /* overwritten */ + }, + reporting_Cell_Identifier := t_Cell_Identifier_V(cid) + } + + /* 3GPP TS 48.018 11.3.63.1.3 */ + template (value) RAN_Information_Request_Application_Container_MBMS_data_channel + ts_RAN_Information_Request_Application_Container_MBMS_data_channel(template (value) BssgpCellId cid) := { + iEI := '4D'O, + ext := '1'B, + lengthIndicator := { + length1 := 0 /* overwritten */ + }, + reporting_Cell_Identifier := t_Cell_Identifier_V(cid) + } + + /* 3GPP TS 48.018 11.3.63.2.1 */ + template (value) RAN_Information_Application_Container_NACC + ts_RAN_Information_Application_Container_NACC(template (value) BssgpCellId cid, boolean psi_type, integer si_psi_num, octetstring si_psi) := { + iEI := '4E'O, + ext := '1'B, + lengthIndicator := { + length1 := 0 /* overwritten */ + }, + reporting_Cell_Identifier := t_Cell_Identifier_V(cid), + typeBit := bool2bit(psi_type), + number_of_SI_PSI := int2bit(si_psi_num, 7), + sI_PSI := si_psi + } + + /* 3GPP TS 48.018 11.3.63.2.2 */ + template (value) RAN_Information_Application_Container_SI3 + ts_RAN_Information_Application_Container_SI3(template (value) BssgpCellId cid, template (value) SI3 si3) := { + iEI := '4E'O, + ext := '1'B, + lengthIndicator := { + length1 := 0 /* overwritten */ + }, + reporting_Cell_Identifier := t_Cell_Identifier_V(cid), + sI3 := si3 + } + + /* 3GPP TS 48.018 11.3.63.2.3 */ + template (value) RAN_Information_Application_Container_MBMS_data_channel + ts_RAN_Information_Application_Container_MBMS_data_channel(template (value) BssgpCellId cid, octetstring data_ch_report) := { + iEI := '4E'O, + ext := '1'B, + lengthIndicator := { + length1 := 0 /* overwritten */ + }, + reporting_Cell_Identifier := t_Cell_Identifier_V(cid), + mBMS_data_channel_report := data_ch_report + } + + + /* 3GPP TS 48.018 11.3.64 */ + template (value) Application_Error_Container + tsu_Application_Error_Container_NACC(template (value) BssgpCellId cid, + integer cause, + template (value) Application_Container_IE_NACC app_cont) := { + nacc := ts_Application_Error_Container_NACC(cid, cause, app_cont) + } + template (value) Application_Error_Container + tsu_Application_Error_Container_SI3(template (value) BssgpCellId cid, + integer cause, + template (value) Application_Container_IE_SI3 app_cont) := { + si3 := ts_Application_Error_Container_SI3(cid, cause, app_cont) + } + template (value) Application_Error_Container + tsu_Application_Error_Container_MBMS_data_channel(template (value) BssgpCellId cid, + integer cause, + template (value) Application_Container_IE_MBMS_data_channel app_cont) := { + mBMS_data_channel := ts_Application_Error_Container_MBMS_data_channel(cid, cause, app_cont) + } + + /* 3GPP TS 48.018 11.3.64.1 */ + template (value) Application_Error_Container_NACC + ts_Application_Error_Container_NACC(template (value) BssgpCellId cid, + integer cause, + template (value) Application_Container_IE_NACC app_cont) := { + iEI := '56'O, + ext := '1'B, + lengthIndicator := { + length1 := 0 /* overwritten */ + }, + nACC_cause := int2oct(cause, 1), + erroneousApplicationContainer := app_cont + } + template (value) Application_Container_IE_NACC + tsu_Application_Container_IE_NACC_req(template (value) BssgpCellId cid) := { + rAN_Information_Request_Application_Container := ts_RAN_Information_Request_Application_Container_NACC(cid) + } + template (value) Application_Container_IE_NACC + tsu_Application_Container_IE_NACC(template (value) BssgpCellId cid, boolean psi_type, integer si_psi_num, octetstring si_psi) := { + rAN_Information_Application_Container := ts_RAN_Information_Application_Container_NACC(cid, psi_type, si_psi_num, si_psi) + } + + /* 3GPP TS 48.018 11.3.64.2 */ + template (value) Application_Error_Container_SI3 + ts_Application_Error_Container_SI3(template (value) BssgpCellId cid, + integer cause, + template (value) Application_Container_IE_SI3 app_cont) := { + iEI := '56'O, + ext := '1'B, + lengthIndicator := { + length1 := 0 /* overwritten */ + }, + sI3_cause := int2oct(cause, 1), + erroneousApplicationContainer := app_cont + } + template (value) Application_Container_IE_SI3 + tsu_Application_Container_IE_SI3_req(template (value) BssgpCellId cid) := { + rAN_Information_Request_Application_Container := ts_RAN_Information_Request_Application_Container_SI3(cid) + } + template (value) Application_Container_IE_SI3 + tsu_Application_Container_IE_SI3(template (value) BssgpCellId cid, template (value) SI3 si3) := { + rAN_Information_Application_Container := ts_RAN_Information_Application_Container_SI3(cid, si3) + } + + /* 3GPP TS 48.018 11.3.64.3 */ + template (value) Application_Error_Container_MBMS_data_channel + ts_Application_Error_Container_MBMS_data_channel(template (value) BssgpCellId cid, + integer cause, + template (value) Application_Container_IE_MBMS_data_channel app_cont) := { + iEI := '56'O, + ext := '1'B, + lengthIndicator := { + length1 := 0 /* overwritten */ + }, + mBMS_data_channel_cause := int2oct(cause, 1), + erroneousApplicationContainer := app_cont + } + template (value) Application_Container_IE_MBMS_data_channel + tsu_Application_Container_IE_MBMS_data_channel_req(template (value) BssgpCellId cid) := { + rAN_Information_Request_Application_Container := ts_RAN_Information_Request_Application_Container_MBMS_data_channel(cid) + } + template (value) Application_Container_IE_MBMS_data_channel + tsu_Application_Container_IE_MBMS_data_channel(template (value) BssgpCellId cid, octetstring data_ch_report) := { + rAN_Information_Application_Container := ts_RAN_Information_Application_Container_MBMS_data_channel(cid, data_ch_report) + } + + + /* 3GPP TS 44.018 10.5.1.3 -> 3GPP TS 24.008 10.5.1.3 */ + function t_LocationAreaIdentification(template BssgpCellId cid) return template BSSGP_Types.LocationAreaIdentification { + var template BSSGP_Types.LocationAreaIdentification ret := { + mccDigit1 := ?, + mccDigit2 := ?, + mccDigit3 := ?, + mncDigit3 := ?, + mncDigit1 := ?, + mncDigit2 := ?, + lac := ? + } + if (istemplatekind(cid, "omit")) { + return omit; + } else if (istemplatekind(cid, "*")) { + return *; + } else if (istemplatekind(cid, "?")) { + return ?; + } + if (isvalue(cid) and isvalue(cid.ra_id) and isvalue(cid.ra_id.lai)) { + if (isvalue(cid.ra_id.lai.mcc_mnc)) { + ret.mccDigit1 := cid.ra_id.lai.mcc_mnc[0]; + ret.mccDigit2 := cid.ra_id.lai.mcc_mnc[1]; + ret.mccDigit3 := cid.ra_id.lai.mcc_mnc[2]; + ret.mncDigit3 := cid.ra_id.lai.mcc_mnc[3]; + ret.mncDigit1 := cid.ra_id.lai.mcc_mnc[4]; + ret.mncDigit2 := cid.ra_id.lai.mcc_mnc[5]; + } + if (isvalue(cid.ra_id.lai.lac)) { + ret.lac := f_oct_or_wc(cid.ra_id.lai.lac, 2); + } + } + return ret; + } + + /* 3GPP TS 44.018 10.5.2.11 */ + template (value) ControlChannelDescription ts_ControlChannelDescription(integer ccch_conf, + integer bs_ag_blks_res, + boolean att, + boolean mscr, + integer bs_pa_mfrms, + BIT2 cbq3, + integer t3212) := { + cCCH_Conf := int2bit(ccch_conf, 3), + bS_AG_BLKS_RES := int2bit(bs_ag_blks_res, 3), + aTT := bool2bit(att), + mSCR := bool2bit(mscr), + bS_PA_MFRMS := int2bit(bs_pa_mfrms, 3), + spare1 := '00'B, + cBQ3 := cbq3, + spare2 := '0'B, + t3212 := int2oct(t3212, 1) + } + + /* 3GPP TS 44.018 10.5.2.3 */ + template (value) CellOptions ts_CellOptions(integer radio_link_timeout, + BIT3 dtx, + boolean pwrc) := { + radioLinkTimeout := int2bit(radio_link_timeout, 4), + dTX1 := dtx[0] & dtx[1], + pWRC := bool2bit(pwrc), + dtx2 := dtx[2] + } + + /* 3GPP TS 44.018 10.5.2.4 */ + template (value) CellSelectionParameters ts_CellSelectionParameters(integer ms_txpwr_max_cch, + integer cell_reselection_hysteresis, + integer rxlev_access_min, + boolean neci, + boolean acs) := { + mS_TXPWR_MAX_CCH := int2bit(ms_txpwr_max_cch, 5), + cellReselectHysterisis := int2bit(cell_reselection_hysteresis, 3), + rXLEV_Access_Min := int2bit(rxlev_access_min, 6), + nECI := bool2bit(neci), + aCS := bool2bit(acs) + } + + /* 3GPP TS 44.018 10.5.2.29 */ + template (value) RACHControlParameters ts_RACHControlParameters(boolean re, + boolean cell_barr_access, + integer tx_integer, + integer max_retrans, + integer ac_15_to_8, + integer ac_7_to_0) := { + rE := bool2bit(re), + cellBarrAccess := bool2bit(cell_barr_access), + tX_Integer := int2bit(tx_integer, 4), + maxRetrans := int2bit(max_retrans, 2), + aC_15_to_8 := int2oct(ac_15_to_8, 1), + aC_7_to_0 := int2oct(ac_7_to_0, 1) + } + + /* 3GPP TS 44.018 9.1.35 */ + template (value) SI3 ts_SI3(integer cell_id, + template (value) BSSGP_Types.LocationAreaIdentification lai, + template (value) ControlChannelDescription cch_descr, + template (value) CellOptions cell_opt, + template (value) CellSelectionParameters cell_sel_par, + template (value) RACHControlParameters rach_ctrl_par, + OCT4 rest_octets) := { + sI3MessageType := '1B'O, + cellIdentity := int2oct(cell_id, 2), + locationAreaIdentification := lai, + controlChannelDescription := cch_descr, + cellOptions := cell_opt, + cellSelectionParameters := cell_sel_par, + rACHControlParameters := rach_ctrl_par, + sI3RestOctets := rest_octets + } + + + /* 3GPP TS 48.018 11.3.65 */ + const BIT3 RIM_PDU_TYPE_STOP := '000'B; + const BIT3 RIM_PDU_TYPE_SING_REP := '001'B; + const BIT3 RIM_PDU_TYPE_MULT_REP := '010'B; + template (value) RIM_PDU_Indications ts_RIM_PDU_Indications(boolean ack, BIT3 type_ext) := { + iEI := '4F'O, + ext := '1'B, + lengthIndicator := { + length1 := 1 + }, + ack := bool2bit(ack), + pDU_Type_Extension := type_ext, + reserved := '0000'B + } + + /* 3GPP TS 48.018 11.3.67 */ + template (value) RIM_Protocol_Version_Number ts_RIM_Protocol_Version_Number(integer ver) := { + iEI := '55'O, + ext := '1'B, + lengthIndicator := { + length1 := 1 + }, + rIMProtocolVersionNumber := int2oct(ver, 1) + } + + /* 3GPP TS 48.018 11.3.70 */ + const HEX1 RIM_ADDR_GERAN_CELL_ID := '0'H; + const HEX1 RIM_ADDR_UTRAN_RNC_ID := '1'H; + const HEX1 RIM_ADDR_EUTRAN_NODEB_ID := '2'H; + const HEX1 RIM_ADDR_EHRPD_SECTOR_ID := '3'H; + template (value) RIM_Routing_Information ts_RIM_Routing_Information(HEX1 addr_discr, template (value) RIM_Routing_Address addr) := { + iEI := '54'O, + ext := '1'B, + lengthIndicator := { + length1 := 0 /* overwritten */ + }, + rIMRoutingAddressDiscriminator := addr_discr, + spare := '0'H, + rIM_Routing_Address := addr + } + template RIM_Routing_Information tr_RIM_Routing_Information(template HEX1 addr_discr := ?, template RIM_Routing_Address addr := ?) := { + iEI := '54'O, + ext := '1'B, + lengthIndicator := { + length1 := ? + }, + rIMRoutingAddressDiscriminator := addr_discr, + spare := '0'H, + rIM_Routing_Address := addr + } + + template RIM_Routing_Address t_RIM_Routing_Address_cid(template BssgpCellId cid := ?) := { + cell_Identifier := t_Cell_Identifier_V(cid) + } + template RIM_Routing_Address t_RIM_Routing_Address_rncid(template BssgpCellId cid := ?, template integer rnc_id := ?) := { + globalRNCID := t_GlobalRNC_ID_BSSGP(cid, rnc_id) + } + template RIM_Routing_Address t_RIM_Routing_Address_enbid(template BssgpCellId cid := ?, template integer tac := ?, template octetstring gnbid := ?) := { + eNB_Identifier := t_ENB_Identifier_V(cid, tac, gnbid) + } + template RIM_Routing_Address t_RIM_Routing_Address_sector(template octetstring sector := ?) := { + eHRPD_SectorID := sector + } + + function t_Cell_Identifier_V(template BssgpCellId cid) return template Cell_Identifier_V { + var template Cell_Identifier_V ret := { + mccDigit1 := ?, + mccDigit2 := ?, + mccDigit3 := ?, + mncDigit3 := ?, + mncDigit1 := ?, + mncDigit2 := ?, + lac := ?, + rac := ?, + cI_value := ? + } + if (istemplatekind(cid, "omit")) { + return omit; + } else if (istemplatekind(cid, "*")) { + return *; + } else if (istemplatekind(cid, "?")) { + return ?; + } + if (isvalue(cid) and isvalue(cid.ra_id) and isvalue(cid.ra_id.lai)) { + if (isvalue(cid.ra_id.lai.mcc_mnc)) { + ret.mccDigit1 := cid.ra_id.lai.mcc_mnc[0]; + ret.mccDigit2 := cid.ra_id.lai.mcc_mnc[1]; + ret.mccDigit3 := cid.ra_id.lai.mcc_mnc[2]; + ret.mncDigit3 := cid.ra_id.lai.mcc_mnc[3]; + ret.mncDigit1 := cid.ra_id.lai.mcc_mnc[4]; + ret.mncDigit2 := cid.ra_id.lai.mcc_mnc[5]; + } + if (isvalue(cid.ra_id.lai.lac)) { + ret.lac := f_oct_or_wc(cid.ra_id.lai.lac, 2); + } + } + if (isvalue(cid) and isvalue(cid.ra_id)) { + ret.rac := f_oct_or_wc(cid.ra_id.rac, 1); + } + if (isvalue(cid)) { + ret.cI_value := f_oct_or_wc(cid.cell_id, 2); + } + return ret; + } + + function t_GlobalRNC_ID_BSSGP(template BssgpCellId cid, template integer rnc_id) return template GlobalRNC_ID_BSSGP { + var template GlobalRNC_ID_BSSGP ret := { + mccDigit1 := ?, + mccDigit2 := ?, + mccDigit3 := ?, + mncDigit3 := ?, + mncDigit1 := ?, + mncDigit2 := ?, + lac := ?, + rac := ?, + spare := ?, + rNC_ID := ? + } + if (istemplatekind(cid, "omit") and istemplatekind(rnc_id, "omit")) { + return omit; + } else if (istemplatekind(cid, "*") and istemplatekind(rnc_id, "*")) { + return *; + } else if (istemplatekind(cid, "?") and istemplatekind(rnc_id, "?")) { + return ?; + } + if (isvalue(cid) and isvalue(cid.ra_id) and isvalue(cid.ra_id.lai)) { + if (isvalue(cid.ra_id.lai.mcc_mnc)) { + ret.mccDigit1 := cid.ra_id.lai.mcc_mnc[0]; + ret.mccDigit2 := cid.ra_id.lai.mcc_mnc[1]; + ret.mccDigit3 := cid.ra_id.lai.mcc_mnc[2]; + ret.mncDigit3 := cid.ra_id.lai.mcc_mnc[3]; + ret.mncDigit1 := cid.ra_id.lai.mcc_mnc[4]; + ret.mncDigit2 := cid.ra_id.lai.mcc_mnc[5]; + } + if (isvalue(cid.ra_id.lai.lac)) { + ret.lac := f_oct_or_wc(cid.ra_id.lai.lac, 2); + } + } + if (isvalue(cid) and isvalue(cid.ra_id)) { + ret.rac := f_oct_or_wc(cid.ra_id.rac, 1); + } + if (isvalue(rnc_id)) { + ret.spare := '0'H; + ret.rNC_ID := rnc_id; + } + + return ret; + } + + function t_ENB_Identifier_V(template BssgpCellId cid, template integer tac, template octetstring gnbid) return template ENB_Identifier_V { + var template ENB_Identifier_V ret := { + mccDigit1 := ?, + mccDigit2 := ?, + mccDigit3 := ?, + mncDigit3 := ?, + mncDigit1 := ?, + mncDigit2 := ?, + tac := ?, + globaleNBID := ? + } + if (istemplatekind(cid, "omit") and istemplatekind(tac, "omit") and istemplatekind(gnbid, "omit")) { + return omit; + } else if (istemplatekind(cid, "*") and istemplatekind(tac, "*") and istemplatekind(gnbid, "*")) { + return *; + } else if (istemplatekind(cid, "?") and istemplatekind(tac, "?") and istemplatekind(gnbid, "?")) { + return ?; + } + if (isvalue(cid) and isvalue(cid.ra_id) and isvalue(cid.ra_id.lai)) { + if (isvalue(cid.ra_id.lai.mcc_mnc)) { + ret.mccDigit1 := cid.ra_id.lai.mcc_mnc[0]; + ret.mccDigit2 := cid.ra_id.lai.mcc_mnc[1]; + ret.mccDigit3 := cid.ra_id.lai.mcc_mnc[2]; + ret.mncDigit3 := cid.ra_id.lai.mcc_mnc[3]; + ret.mncDigit1 := cid.ra_id.lai.mcc_mnc[4]; + ret.mncDigit2 := cid.ra_id.lai.mcc_mnc[5]; + } + } + if (isvalue(tac)) { + ret.tac := int2oct(valueof(tac), 2); + } + if (isvalue(gnbid)) { + ret.globaleNBID := gnbid; + } + + return ret; + } + + /* 3GPP TS 48.018 11.3.108 */ + template (value) SON_Transfer_Application_Identity_TLV ts_SON_Transfer_Application_Identity_TLV(template (value) octetstring app_id) := { + iEI := '84'O, + ext := '1'B, + lengthIndicator := { + length1 := 0 /* overwritten */ + }, + sON_Transfer_Application_Identity := app_id + } + + + /* 3GPP TS 48.018 10.6.1 */ + template (value) PDU_BSSGP + ts_RAN_INFORMATION_REQUEST(template (value) RIM_Routing_Information dst, + template (value) RIM_Routing_Information src, + template (value) RAN_Information_Request_RIM_Container cont) := { + pDU_BSSGP_RAN_INFORMATION_REQUEST := { + bssgpPduType := '71'O, + destination_Cell_Identifier := dst, + source_Cell_Identifier := src, + rIM_Container := cont + } + } + template PDU_BSSGP + tr_RAN_INFORMATION_REQUEST(template RIM_Routing_Information dst := ?, + template RIM_Routing_Information src := ?, + template RAN_Information_Request_RIM_Container cont := ?) := { + pDU_BSSGP_RAN_INFORMATION_REQUEST := { + bssgpPduType := '71'O, + destination_Cell_Identifier := dst, + source_Cell_Identifier := src, + rIM_Container := cont + } + } + + /* 3GPP TS 48.018 10.6.2 */ + template (value) PDU_BSSGP + ts_PDU_BSSGP_RAN_INFORMATION(template (value) RIM_Routing_Information dst, + template (value) RIM_Routing_Information src, + template (value) RAN_Information_RIM_Container cont) := { + pDU_BSSGP_RAN_INFORMATION := { + bssgpPduType := '70'O, + destination_Cell_Identifier := dst, + source_Cell_Identifier := src, + rIM_Container := cont + } + } + template PDU_BSSGP + tr_PDU_BSSGP_RAN_INFORMATION(template RIM_Routing_Information dst := ?, + template RIM_Routing_Information src := ?, + template RAN_Information_RIM_Container cont := ?) := { + pDU_BSSGP_RAN_INFORMATION := { + bssgpPduType := '70'O, + destination_Cell_Identifier := dst, + source_Cell_Identifier := src, + rIM_Container := cont + } + } + + /* 3GPP TS 48.018 10.6.3 */ + template (value) PDU_BSSGP + ts_PDU_BSSGP_RAN_INFORMATION_ACK(template (value) RIM_Routing_Information dst, + template (value) RIM_Routing_Information src, + template (value) RAN_Information_Ack_RIM_Container cont) := { + pDU_BSSGP_RAN_INFORMATION_ACK := { + bssgpPduType := '72'O, + destination_Cell_Identifier := dst, + source_Cell_Identifier := src, + rIM_Container := cont + } + } + template PDU_BSSGP + tr_PDU_BSSGP_RAN_INFORMATION_ACK(template RIM_Routing_Information dst := ?, + template RIM_Routing_Information src := ?, + template RAN_Information_Ack_RIM_Container cont := ?) := { + pDU_BSSGP_RAN_INFORMATION_ACK := { + bssgpPduType := '72'O, + destination_Cell_Identifier := dst, + source_Cell_Identifier := src, + rIM_Container := cont + } + } + + /* 3GPP TS 48.018 10.6.4 */ + template (value) PDU_BSSGP + ts_PDU_BSSGP_RAN_INFORMATION_ERROR(template (value) RIM_Routing_Information dst, + template (value) RIM_Routing_Information src, + template (value) RAN_Information_Error_RIM_Container cont) := { + pDU_BSSGP_RAN_INFORMATION_ERROR := { + bssgpPduType := '73'O, + destination_Cell_Identifier := dst, + source_Cell_Identifier := src, + rIM_Container := cont + } + } + template PDU_BSSGP + tr_PDU_BSSGP_RAN_INFORMATION_ERROR(template RIM_Routing_Information dst := ?, + template RIM_Routing_Information src := ?, + template RAN_Information_Error_RIM_Container cont := ?) := { + pDU_BSSGP_RAN_INFORMATION_ERROR := { + bssgpPduType := '73'O, + destination_Cell_Identifier := dst, + source_Cell_Identifier := src, + rIM_Container := cont + } + } + + /* 3GPP TS 48.018 10.6.5 */ + template (value) PDU_BSSGP + ts_PDU_BSSGP_RAN_INFORMATION_APPLICATION_ERROR(template (value) RIM_Routing_Information dst, + template (value) RIM_Routing_Information src, + template (value) RAN_Information_Application_Error_RIM_Container cont) := { + pDU_BSSGP_RAN_INFORMATION_APPLICATION_ERROR := { + bssgpPduType := '74'O, + destination_Cell_Identifier := dst, + source_Cell_Identifier := src, + rIM_Container := cont + } + } + template PDU_BSSGP + tr_PDU_BSSGP_RAN_INFORMATION_APPLICATION_ERROR(template RIM_Routing_Information dst := ?, + template RIM_Routing_Information src := ?, + template RAN_Information_Application_Error_RIM_Container cont := ?) := { + pDU_BSSGP_RAN_INFORMATION_APPLICATION_ERROR := { + bssgpPduType := '74'O, + destination_Cell_Identifier := dst, + source_Cell_Identifier := src, + rIM_Container := cont + } + } + /* PDU permitted on PTP BVC only (TS 48.018 Section 5.4.1) */ template (present) PDU_BSSGP tr_BSSGP_PERMITTED_PTP_ONLY := ( {pDU_BSSGP_DL_UNITDATA := ?}, -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21587 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ic495e0bb6ceb2b65cbc7c3da7ee519a013aede55 Gerrit-Change-Number: 21587 Gerrit-PatchSet: 6 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 15:31:06 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 15:31:06 +0000 Subject: Change in libosmocore[master]: bssgp: Add SUSPEND_NACK to osmo_pdef_bssgp In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21951 ) Change subject: bssgp: Add SUSPEND_NACK to osmo_pdef_bssgp ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21951 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic996a343215ad32e3f301712411006e5d41f9084 Gerrit-Change-Number: 21951 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 05 Jan 2021 15:31:06 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 15:31:08 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 15:31:08 +0000 Subject: Change in libosmocore[master]: bssgp: Add SUSPEND_NACK to osmo_pdef_bssgp In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21951 ) Change subject: bssgp: Add SUSPEND_NACK to osmo_pdef_bssgp ...................................................................... bssgp: Add SUSPEND_NACK to osmo_pdef_bssgp Change-Id: Ic996a343215ad32e3f301712411006e5d41f9084 Related: SYS#4865 --- M src/gb/gprs_bssgp_util.c 1 file changed, 2 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/gb/gprs_bssgp_util.c b/src/gb/gprs_bssgp_util.c index 5245c5f..92896c1 100644 --- a/src/gb/gprs_bssgp_util.c +++ b/src/gb/gprs_bssgp_util.c @@ -190,6 +190,7 @@ static const uint8_t rad_sts_ies[] = { BSSGP_IE_RADIO_CAUSE }; static const uint8_t suspend_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_ROUTEING_AREA }; static const uint8_t suspend_ack_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_ROUTEING_AREA, BSSGP_IE_SUSPEND_REF_NR }; +static const uint8_t suspend_nack_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_ROUTEING_AREA }; static const uint8_t resume_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_ROUTEING_AREA, BSSGP_IE_SUSPEND_REF_NR }; static const uint8_t resume_ack_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_ROUTEING_AREA }; static const uint8_t resume_nack_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_ROUTEING_AREA }; @@ -273,6 +274,7 @@ [BSSGP_PDUT_RADIO_STATUS] = MSG_DEF("RADIO-STATUS", rad_sts_ies, UL|PTP), [BSSGP_PDUT_SUSPEND] = MSG_DEF("SUSPEND", suspend_ies, UL|SIG), [BSSGP_PDUT_SUSPEND_ACK] = MSG_DEF("SUSPEND-ACK", suspend_ack_ies, DL|SIG), + [BSSGP_PDUT_SUSPEND_NACK] = MSG_DEF("SUSPEND-NACK", suspend_nack_ies, DL|SIG), [BSSGP_PDUT_RESUME] = MSG_DEF("RESUME", resume_ies, UL|SIG), [BSSGP_PDUT_RESUME_ACK] = MSG_DEF("RESUME-ACK", resume_ack_ies, DL|SIG), [BSSGP_PDUT_RESUME_NACK] = MSG_DEF("RESUME-NACK", resume_nack_ies, DL|SIG), -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21951 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic996a343215ad32e3f301712411006e5d41f9084 Gerrit-Change-Number: 21951 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 15:31:10 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 5 Jan 2021 15:31:10 +0000 Subject: Change in osmo-pcu[master]: doc: Improve CS/MCS GPRS/EGPRS considerations in User Manual In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21943 ) Change subject: doc: Improve CS/MCS GPRS/EGPRS considerations in User Manual ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21943 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I7b205f5cab5862058a408f628925beb9f0f60a92 Gerrit-Change-Number: 21943 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Tue, 05 Jan 2021 15:31:10 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 15:34:19 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 15:34:19 +0000 Subject: Change in osmo-pcu[master]: doc: Improve CS/MCS GPRS/EGPRS considerations in User Manual In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21943 ) Change subject: doc: Improve CS/MCS GPRS/EGPRS considerations in User Manual ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21943 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I7b205f5cab5862058a408f628925beb9f0f60a92 Gerrit-Change-Number: 21943 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 05 Jan 2021 15:34:19 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 15:35:12 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 15:35:12 +0000 Subject: Change in pysim[master]: pySim-read.py: Enable reading of EF.IMPI from ISIM In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/21952 ) Change subject: pySim-read.py: Enable reading of EF.IMPI from ISIM ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/21952 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I8d8e76e3f6b9ca7a0be262fee99cd5a397edbefa Gerrit-Change-Number: 21952 Gerrit-PatchSet: 1 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 05 Jan 2021 15:35:12 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 15:35:29 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 15:35:29 +0000 Subject: Change in pysim[master]: pySim-read.py: Enable reading of EF.IMPU from ISIM In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/21953 ) Change subject: pySim-read.py: Enable reading of EF.IMPU from ISIM ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/21953 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Icf78a564aeaf4254658d3b018ff57dfc4b987e6f Gerrit-Change-Number: 21953 Gerrit-PatchSet: 1 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 05 Jan 2021 15:35:29 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 15:35:49 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 15:35:49 +0000 Subject: Change in pysim[master]: sysmoISIM-SJA2: Add support for programming IMS private user identity In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/21954 ) Change subject: sysmoISIM-SJA2: Add support for programming IMS private user identity ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/21954 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ic1ccf99b5aa45297ef1e43a43373df603f756379 Gerrit-Change-Number: 21954 Gerrit-PatchSet: 1 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 05 Jan 2021 15:35:49 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 15:36:06 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 15:36:06 +0000 Subject: Change in pysim[master]: sysmoISIM-SJA2: Add support for programming IMS public user identity In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/21955 ) Change subject: sysmoISIM-SJA2: Add support for programming IMS public user identity ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/21955 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: If10bc2e50eca390b81755b5cc7211e695233612d Gerrit-Change-Number: 21955 Gerrit-PatchSet: 1 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 05 Jan 2021 15:36:06 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 15:36:43 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 15:36:43 +0000 Subject: Change in pysim[master]: sysmoISIM-SJA2: Enable programming of EF.MSISDN In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/21956 ) Change subject: sysmoISIM-SJA2: Enable programming of EF.MSISDN ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/21956 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I8ed27142009a50a1cc31a9f2e0e854a53add6e89 Gerrit-Change-Number: 21956 Gerrit-PatchSet: 2 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 05 Jan 2021 15:36:43 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 15:36:53 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 15:36:53 +0000 Subject: Change in pysim[master]: sysmoISIM-SJA2: Enable programming of EF.ACC In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/21957 ) Change subject: sysmoISIM-SJA2: Enable programming of EF.ACC ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/21957 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: If318117a2339399191dfc3fcec856d9247a034fb Gerrit-Change-Number: 21957 Gerrit-PatchSet: 2 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 05 Jan 2021 15:36:53 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 15:37:06 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 15:37:06 +0000 Subject: Change in pysim[master]: pySim-read.py: Enable reading of UICC IARI from ISIM In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/21958 ) Change subject: pySim-read.py: Enable reading of UICC IARI from ISIM ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/21958 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Iba222421f2fcc2b9b12605608bf640f7627904d0 Gerrit-Change-Number: 21958 Gerrit-PatchSet: 2 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 05 Jan 2021 15:37:06 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 15:37:08 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 15:37:08 +0000 Subject: Change in pysim[master]: pySim-read.py: Enable reading of EF.IMPI from ISIM In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/21952 ) Change subject: pySim-read.py: Enable reading of EF.IMPI from ISIM ...................................................................... pySim-read.py: Enable reading of EF.IMPI from ISIM IMS private user identity (IMPI) As per TS1.103 version 14.2.0, this EF contains the private user identity of the user. EF.IMPI consist of NAI TLV Data object.The NAI shall be encoded to an octet string according to UTF-8 encoding rules as specified in IETF RFC 3629. Reading of EF.IMPI is achieved by first selecting the ISIM application using its AID. This is followed by selecting EF.IMPI with File ID - 6f02 in ADF.ISIM Change-Id: I8d8e76e3f6b9ca7a0be262fee99cd5a397edbefa --- M pySim-read.py M pySim/cards.py M pysim-testdata/sysmoISIM-SJA2.ok 3 files changed, 22 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/pySim-read.py b/pySim-read.py index f63205a..a7d9063 100755 --- a/pySim-read.py +++ b/pySim-read.py @@ -315,6 +315,17 @@ except Exception as e: print("Home Network Domain Name: Can't read file -- " + str(e)) + # EF.IMPI - IMS private user identity + try: + if card.file_exists(EF_ISIM_ADF_map['IMPI']): + (res, sw) = card.read_impi() + if sw == '9000': + print("IMS private user identity: %s" % (len(res) and res or 'Not available',)) + else: + print("IMS private user identity: Can't read, response code = %s" % (sw,)) + except Exception as e: + print("IMS private user identity: Can't read file -- " + str(e)) + # Check whether we have th AID of ISIM, if so select it by its AID # EF.IST - File Id in ADF ISIM : 6f07 if '9000' == card.select_adf_by_aid(adf="isim"): diff --git a/pySim/cards.py b/pySim/cards.py index 17da506..17b7bce 100644 --- a/pySim/cards.py +++ b/pySim/cards.py @@ -375,6 +375,16 @@ data, sw = self._scc.update_binary(EF_ISIM_ADF_map['DOMAIN'], rpad(content, bin_size_bytes*2)) return sw + def read_impi(self): + (res, sw) = self._scc.read_binary(EF_ISIM_ADF_map['IMPI']) + if sw == '9000': + # Skip the inital tag value ('80') byte and get length of contents + length = int(res[2:4], 16) + content = h2s(res[4:4+(length*2)]) + return (content, sw) + else: + return (None, sw) + class _MagicSimBase(Card): """ diff --git a/pysim-testdata/sysmoISIM-SJA2.ok b/pysim-testdata/sysmoISIM-SJA2.ok index 4cdd9d5..335c886 100644 --- a/pysim-testdata/sysmoISIM-SJA2.ok +++ b/pysim-testdata/sysmoISIM-SJA2.ok @@ -183,6 +183,7 @@ Not available Home Network Domain Name: Not available +IMS private user identity: Not available ISIM Service Table: 190200 Service 1 - P-CSCF address Service 4 - GBA-based Local Key Establishment Mechanism -- To view, visit https://gerrit.osmocom.org/c/pysim/+/21952 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I8d8e76e3f6b9ca7a0be262fee99cd5a397edbefa Gerrit-Change-Number: 21952 Gerrit-PatchSet: 1 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 15:37:08 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 15:37:08 +0000 Subject: Change in pysim[master]: pySim-read.py: Enable reading of EF.IMPU from ISIM In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/21953 ) Change subject: pySim-read.py: Enable reading of EF.IMPU from ISIM ...................................................................... pySim-read.py: Enable reading of EF.IMPU from ISIM IMS public user identity (IMPU) As per TS1.103, this EF contains one or more records, with each record able to hold a public SIP Identity (SIP URI) of the user. EF.IMPI consist of URI TLV data object values see IETF RFC 3261. The URI shall be encoded to an octet string according to UTF-8 encoding rules as specified in IETF RFC 3629 Reading of EF.IMPU is achieved by first selecting the ISIM application using its AID. This is followed by selecting EF.IMPU with File ID - 6f04 in ADF.ISIM Change-Id: Icf78a564aeaf4254658d3b018ff57dfc4b987e6f --- M pySim-read.py M pySim/cards.py M pysim-testdata/sysmoISIM-SJA2.ok 3 files changed, 32 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/pySim-read.py b/pySim-read.py index a7d9063..4047598 100755 --- a/pySim-read.py +++ b/pySim-read.py @@ -326,6 +326,14 @@ except Exception as e: print("IMS private user identity: Can't read file -- " + str(e)) + # EF.IMPU - IMS public user identity + try: + if card.file_exists(EF_ISIM_ADF_map['IMPU']): + res = card.read_impu() + print("IMS public user identity:\n%s" % (len(res) and res or '\tNot available\n',)) + except Exception as e: + print("IMS public user identity: Can't read file -- " + str(e)) + # Check whether we have th AID of ISIM, if so select it by its AID # EF.IST - File Id in ADF ISIM : 6f07 if '9000' == card.select_adf_by_aid(adf="isim"): diff --git a/pySim/cards.py b/pySim/cards.py index 17b7bce..56597b0 100644 --- a/pySim/cards.py +++ b/pySim/cards.py @@ -385,6 +385,20 @@ else: return (None, sw) + def read_impu(self): + rec_cnt = self._scc.record_count(EF_ISIM_ADF_map['IMPU']) + impu_recs = "" + for i in range(0, rec_cnt): + (res, sw) = self._scc.read_record(EF_ISIM_ADF_map['IMPU'], i + 1) + if sw == '9000': + # Skip the inital tag value ('80') byte and get length of contents + length = int(res[2:4], 16) + content = h2s(res[4:4+(length*2)]) + impu_recs += "\t%s\n" % (len(content) and content or 'Not available') + else: + impu_recs += "IMS public user identity: Can't read, response code = %s\n" % (sw) + return impu_recs + class _MagicSimBase(Card): """ diff --git a/pysim-testdata/sysmoISIM-SJA2.ok b/pysim-testdata/sysmoISIM-SJA2.ok index 335c886..26e20b0 100644 --- a/pysim-testdata/sysmoISIM-SJA2.ok +++ b/pysim-testdata/sysmoISIM-SJA2.ok @@ -184,6 +184,16 @@ Home Network Domain Name: Not available IMS private user identity: Not available +IMS public user identity: + Not available + Not available + Not available + Not available + Not available + Not available + Not available + Not available + ISIM Service Table: 190200 Service 1 - P-CSCF address Service 4 - GBA-based Local Key Establishment Mechanism -- To view, visit https://gerrit.osmocom.org/c/pysim/+/21953 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Icf78a564aeaf4254658d3b018ff57dfc4b987e6f Gerrit-Change-Number: 21953 Gerrit-PatchSet: 1 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 15:37:08 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 15:37:08 +0000 Subject: Change in pysim[master]: sysmoISIM-SJA2: Add support for programming IMS private user identity In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/21954 ) Change subject: sysmoISIM-SJA2: Add support for programming IMS private user identity ...................................................................... sysmoISIM-SJA2: Add support for programming IMS private user identity This EF contains the private user identity of the user. EF.IMPI consist of NAI TLV data object values see IETF RFC 2486. The NAI shall be encoded to an octet string according to UTF-8 encoding rules as specified in IETF RFC 3629 ./pySim-prog.py -p 0 -x 001 -y 01 -s 8988211900000000004 -i 001011234567895 -k 8baf473f2f8fd09487cccbd7097c6862 --op 11111111111111111111111111111111 -o 8E27B6AF0E692E750F32667A3B14605D -a 85524953 -n isim.test --msisdn 0598765432100 --epdgid epdg.epc.mnc001.mcc001.pub.3gppnetwork.org --pcscf pcscf.ims.testop.org --ims-hdomain ims.testop.org --impi 1234567895 at ims.testop.org Change-Id: Ic1ccf99b5aa45297ef1e43a43373df603f756379 --- M pySim-prog.py M pySim/cards.py 2 files changed, 26 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/pySim-prog.py b/pySim-prog.py index f278015..3abd0bd 100755 --- a/pySim-prog.py +++ b/pySim-prog.py @@ -159,6 +159,9 @@ parser.add_option("--ims-hdomain", dest="ims_hdomain", help="Set IMS Home Network Domain Name in FQDN format", ) + parser.add_option("--impi", dest="impi", + help="Set IMS private user identity", + ) parser.add_option("--read-imsi", dest="read_imsi", action="store_true", help="Read the IMSI from the CARD", default=False ) @@ -468,6 +471,7 @@ 'epdgSelection' : opts.epdgSelection, 'pcscf' : opts.pcscf, 'ims_hdomain': opts.ims_hdomain, + 'impi' : opts.impi } diff --git a/pySim/cards.py b/pySim/cards.py index 56597b0..62163a1 100644 --- a/pySim/cards.py +++ b/pySim/cards.py @@ -385,6 +385,18 @@ else: return (None, sw) + def update_impi(self, impi=None): + hex_str = "" + if impi: + hex_str = s2h(impi) + # Build TLV + tlv = TLV(['80']) + content = tlv.build({'80': hex_str}) + + bin_size_bytes = self._scc.binary_size(EF_ISIM_ADF_map['IMPI']) + data, sw = self._scc.update_binary(EF_ISIM_ADF_map['IMPI'], rpad(content, bin_size_bytes*2)) + return sw + def read_impu(self): rec_cnt = self._scc.record_count(EF_ISIM_ADF_map['IMPU']) impu_recs = "" @@ -1301,6 +1313,16 @@ if sw != '9000': print("Programming Home Network Domain Name failed with code %s"%sw) + # update EF.IMPI in ADF.ISIM + # TODO: Validate IMPI input + if self.file_exists(EF_ISIM_ADF_map['IMPI']): + if p.get('impi'): + sw = self.update_impi(p['impi']) + else: + sw = self.update_impi() + if sw != '9000': + print("Programming IMPI failed with code %s"%sw) + if '9000' == self.select_adf_by_aid(): # update EF-USIM_AUTH_KEY in ADF.USIM if p.get('ki'): -- To view, visit https://gerrit.osmocom.org/c/pysim/+/21954 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ic1ccf99b5aa45297ef1e43a43373df603f756379 Gerrit-Change-Number: 21954 Gerrit-PatchSet: 1 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 15:37:09 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 15:37:09 +0000 Subject: Change in pysim[master]: sysmoISIM-SJA2: Add support for programming IMS public user identity In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/21955 ) Change subject: sysmoISIM-SJA2: Add support for programming IMS public user identity ...................................................................... sysmoISIM-SJA2: Add support for programming IMS public user identity This EF contains one or more records, with each record able to hold a public SIP Identity (SIP URI) of the user. EF.IMPU consist of URI TLV data object values see IETF RFC 3261. The URI shall be encoded to an octet string according to UTF-8 encoding rules as specified in IETF RFC 3629 ./pySim-prog.py -p 0 -x 001 -y 01 -s 8988211900000000004 -i 001011234567895 -k 8baf473f2f8fd09487cccbd7097c6862 --op 11111111111111111111111111111111 -o 8E27B6AF0E692E750F32667A3B14605D -a 85524953 -n isim.test --msisdn 0598765432100 --epdgid epdg.epc.mnc001.mcc001.pub.3gppnetwork.org --pcscf pcscf.ims.testop.org --ims-hdomain ims.testop.org --impi 1234567895 at ims.testop.org --impu sip:5987654321 at ims.testop.org Change-Id: If10bc2e50eca390b81755b5cc7211e695233612d --- M pySim-prog.py M pySim/cards.py 2 files changed, 29 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/pySim-prog.py b/pySim-prog.py index 3abd0bd..cf503d0 100755 --- a/pySim-prog.py +++ b/pySim-prog.py @@ -162,6 +162,9 @@ parser.add_option("--impi", dest="impi", help="Set IMS private user identity", ) + parser.add_option("--impu", dest="impu", + help="Set IMS public user identity", + ) parser.add_option("--read-imsi", dest="read_imsi", action="store_true", help="Read the IMSI from the CARD", default=False ) @@ -471,7 +474,8 @@ 'epdgSelection' : opts.epdgSelection, 'pcscf' : opts.pcscf, 'ims_hdomain': opts.ims_hdomain, - 'impi' : opts.impi + 'impi' : opts.impi, + 'impu' : opts.impu, } diff --git a/pySim/cards.py b/pySim/cards.py index 62163a1..ac6d223 100644 --- a/pySim/cards.py +++ b/pySim/cards.py @@ -411,6 +411,19 @@ impu_recs += "IMS public user identity: Can't read, response code = %s\n" % (sw) return impu_recs + def update_impu(self, impu=None): + hex_str = "" + if impu: + hex_str = s2h(impu) + # Build TLV + tlv = TLV(['80']) + content = tlv.build({'80': hex_str}) + + rec_size_bytes = self._scc.record_size(EF_ISIM_ADF_map['IMPU']) + impu_tlv = rpad(content, rec_size_bytes*2) + data, sw = self._scc.update_record(EF_ISIM_ADF_map['IMPU'], 1, impu_tlv) + return sw + class _MagicSimBase(Card): """ @@ -1323,6 +1336,17 @@ if sw != '9000': print("Programming IMPI failed with code %s"%sw) + # update EF.IMPU in ADF.ISIM + # TODO: Validate IMPU input + # Support multiple IMPU if there is enough space + if self.file_exists(EF_ISIM_ADF_map['IMPU']): + if p.get('impu'): + sw = self.update_impu(p['impu']) + else: + sw = self.update_impu() + if sw != '9000': + print("Programming IMPU failed with code %s"%sw) + if '9000' == self.select_adf_by_aid(): # update EF-USIM_AUTH_KEY in ADF.USIM if p.get('ki'): -- To view, visit https://gerrit.osmocom.org/c/pysim/+/21955 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: If10bc2e50eca390b81755b5cc7211e695233612d Gerrit-Change-Number: 21955 Gerrit-PatchSet: 1 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 15:37:09 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 15:37:09 +0000 Subject: Change in pysim[master]: sysmoISIM-SJA2: Enable programming of EF.MSISDN In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/21956 ) Change subject: sysmoISIM-SJA2: Enable programming of EF.MSISDN ...................................................................... sysmoISIM-SJA2: Enable programming of EF.MSISDN Change-Id: I8ed27142009a50a1cc31a9f2e0e854a53add6e89 --- M pySim/cards.py M pysim-testdata/sysmoISIM-SJA2.ok 2 files changed, 12 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/pySim/cards.py b/pySim/cards.py index ac6d223..a8dcf10 100644 --- a/pySim/cards.py +++ b/pySim/cards.py @@ -1287,6 +1287,17 @@ r = self._scc.select_file(['3f00', '7f10']) data, sw = self._scc.update_record('6f42', 1, lpad(p['smsp'], 104), force_len=True) + # EF.MSISDN + # TODO: Alpha Identifier (currently 'ff'O * 20) + # TODO: Capability/Configuration1 Record Identifier + # TODO: Extension1 Record Identifier + if p.get('msisdn') is not None: + msisdn = enc_msisdn(p['msisdn']) + content = 'ff' * 20 + msisdn + 'ff' * 2 + + r = self._scc.select_file(['3f00', '7f10']) + data, sw = self._scc.update_record('6F40', 1, content, force_len=True) + # Populate AIDs self.read_aids() diff --git a/pysim-testdata/sysmoISIM-SJA2.ok b/pysim-testdata/sysmoISIM-SJA2.ok index 26e20b0..b521c6d 100644 --- a/pysim-testdata/sysmoISIM-SJA2.ok +++ b/pysim-testdata/sysmoISIM-SJA2.ok @@ -53,7 +53,7 @@ ffffff0000 # unused ACC: 0200 -MSISDN: Not available +MSISDN (NPI=1 ToN=3): 6766266 Administrative data: 00000002 MS operation mode: normal operation Ciphering Indicator: disabled -- To view, visit https://gerrit.osmocom.org/c/pysim/+/21956 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I8ed27142009a50a1cc31a9f2e0e854a53add6e89 Gerrit-Change-Number: 21956 Gerrit-PatchSet: 2 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 15:37:09 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 15:37:09 +0000 Subject: Change in pysim[master]: sysmoISIM-SJA2: Enable programming of EF.ACC In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/21957 ) Change subject: sysmoISIM-SJA2: Enable programming of EF.ACC ...................................................................... sysmoISIM-SJA2: Enable programming of EF.ACC Change-Id: If318117a2339399191dfc3fcec856d9247a034fb --- M pySim/cards.py 1 file changed, 6 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/pySim/cards.py b/pySim/cards.py index a8dcf10..7a61b68 100644 --- a/pySim/cards.py +++ b/pySim/cards.py @@ -1298,6 +1298,12 @@ r = self._scc.select_file(['3f00', '7f10']) data, sw = self._scc.update_record('6F40', 1, content, force_len=True) + # EF.ACC + if p.get('acc'): + sw = self.update_acc(p['acc']) + if sw != '9000': + print("Programming ACC failed with code %s"%sw) + # Populate AIDs self.read_aids() -- To view, visit https://gerrit.osmocom.org/c/pysim/+/21957 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: If318117a2339399191dfc3fcec856d9247a034fb Gerrit-Change-Number: 21957 Gerrit-PatchSet: 2 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 15:37:10 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 15:37:10 +0000 Subject: Change in pysim[master]: pySim-read.py: Enable reading of UICC IARI from ISIM In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/21958 ) Change subject: pySim-read.py: Enable reading of UICC IARI from ISIM ...................................................................... pySim-read.py: Enable reading of UICC IARI from ISIM Change-Id: Iba222421f2fcc2b9b12605608bf640f7627904d0 --- M pySim-read.py M pySim/cards.py M pysim-testdata/sysmoISIM-SJA2.ok 3 files changed, 31 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/pySim-read.py b/pySim-read.py index 4047598..b94e709 100755 --- a/pySim-read.py +++ b/pySim-read.py @@ -334,6 +334,14 @@ except Exception as e: print("IMS public user identity: Can't read file -- " + str(e)) + # EF.UICCIARI - UICC IARI + try: + if card.file_exists(EF_ISIM_ADF_map['UICCIARI']): + res = card.read_iari() + print("UICC IARI:\n%s" % (len(res) and res or '\tNot available\n',)) + except Exception as e: + print("UICC IARI: Can't read file -- " + str(e)) + # Check whether we have th AID of ISIM, if so select it by its AID # EF.IST - File Id in ADF ISIM : 6f07 if '9000' == card.select_adf_by_aid(adf="isim"): diff --git a/pySim/cards.py b/pySim/cards.py index 7a61b68..850d084 100644 --- a/pySim/cards.py +++ b/pySim/cards.py @@ -424,6 +424,19 @@ data, sw = self._scc.update_record(EF_ISIM_ADF_map['IMPU'], 1, impu_tlv) return sw + def read_iari(self): + rec_cnt = self._scc.record_count(EF_ISIM_ADF_map['UICCIARI']) + uiari_recs = "" + for i in range(0, rec_cnt): + (res, sw) = self._scc.read_record(EF_ISIM_ADF_map['UICCIARI'], i + 1) + if sw == '9000': + # Skip the inital tag value ('80') byte and get length of contents + length = int(res[2:4], 16) + content = h2s(res[4:4+(length*2)]) + uiari_recs += "\t%s\n" % (len(content) and content or 'Not available') + else: + uiari_recs += "UICC IARI: Can't read, response code = %s\n" % (sw) + return uiari_recs class _MagicSimBase(Card): """ diff --git a/pysim-testdata/sysmoISIM-SJA2.ok b/pysim-testdata/sysmoISIM-SJA2.ok index b521c6d..b2de818 100644 --- a/pysim-testdata/sysmoISIM-SJA2.ok +++ b/pysim-testdata/sysmoISIM-SJA2.ok @@ -194,6 +194,16 @@ Not available Not available +UICC IARI: + Not available + Not available + Not available + Not available + Not available + Not available + Not available + Not available + ISIM Service Table: 190200 Service 1 - P-CSCF address Service 4 - GBA-based Local Key Establishment Mechanism -- To view, visit https://gerrit.osmocom.org/c/pysim/+/21958 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Iba222421f2fcc2b9b12605608bf640f7627904d0 Gerrit-Change-Number: 21958 Gerrit-PatchSet: 2 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 15:38:49 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 15:38:49 +0000 Subject: Change in osmo-ttcn3-hacks[master]: SGSN_Tests: test RIM message passing In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21735 ) Change subject: SGSN_Tests: test RIM message passing ...................................................................... Patch Set 3: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21735/2/sgsn/SGSN_Tests.ttcn File sgsn/SGSN_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21735/2/sgsn/SGSN_Tests.ttcn at 175 PS2, Line 175: port BSSGP_PT RIM[NUM_GB]; > Why not have this into BSSGP_ConnHdlr ? The connHdlr is per TLLI. (of which there can be N:1 per PTP BVC, of which there can be N:1 per NSE). The RIM port exists once per-NSE. So it's really two layers of abstraction away. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21735 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If0ab08dcdc28819740cc07fd4dc1fea47ba10843 Gerrit-Change-Number: 21735 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 05 Jan 2021 15:38:49 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 15:48:55 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 5 Jan 2021 15:48:55 +0000 Subject: Change in osmo-pcu[master]: doc: Improve CS/MCS GPRS/EGPRS considerations in User Manual In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21943 ) Change subject: doc: Improve CS/MCS GPRS/EGPRS considerations in User Manual ...................................................................... Patch Set 3: Code-Review+2 (1 comment) https://gerrit.osmocom.org/c/osmo-pcu/+/21943/1/doc/manuals/chapters/configuration.adoc File doc/manuals/chapters/configuration.adoc: https://gerrit.osmocom.org/c/osmo-pcu/+/21943/1/doc/manuals/chapters/configuration.adoc at 266 PS1, Line 266: - It is possible to improve EGPRS performance (in particular, the TBF > Copyright! :D Indeed :) -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21943 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I7b205f5cab5862058a408f628925beb9f0f60a92 Gerrit-Change-Number: 21943 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 05 Jan 2021 15:48:55 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Comment-In-Reply-To: fixeria Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 15:48:58 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 5 Jan 2021 15:48:58 +0000 Subject: Change in osmo-pcu[master]: doc: Improve CS/MCS GPRS/EGPRS considerations in User Manual In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21943 ) Change subject: doc: Improve CS/MCS GPRS/EGPRS considerations in User Manual ...................................................................... doc: Improve CS/MCS GPRS/EGPRS considerations in User Manual Related: OS#4544 Related: SYS#4869 Change-Id: I7b205f5cab5862058a408f628925beb9f0f60a92 --- M doc/manuals/chapters/configuration.adoc 1 file changed, 125 insertions(+), 15 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve fixeria: Looks good to me, but someone else must approve pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/doc/manuals/chapters/configuration.adoc b/doc/manuals/chapters/configuration.adoc index 6fc61c7..f3323d7 100644 --- a/doc/manuals/chapters/configuration.adoc +++ b/doc/manuals/chapters/configuration.adoc @@ -29,11 +29,22 @@ === Configuring the Coding Schemes and Rate Adaption -The BSC includes a bit-mask of permitted [E]GPRS coding schemes as part -of the A-bis OML configuration. This is passed from the BTS via the PCU -socket into OsmoPCU. +As a reminder: -Some additional parameters can be set as described below. +- GPRS supports Coding Schemes 1-4 (CS1-4), all of them use GMSK modulation + (same as GSM). +- EGPRS supports MCS1-9, where MCS1-4 is GMSK, and MCS5-9 use 8-PSK modulation. + +The range of Coding Schemes above only apply to RLCMAC data blocks; RLCMAC +control blocks are always transmitted with CS1 (GMSK). Hence, CS1 is always +supported and must be always permitted. + +The BSC includes a bit-mask of permitted [E]GPRS coding schemes as part of the +A-bis OML configuration, controlled by VTY `gprs mode (none|gprs|egprs)`. This +is passed from the BTS via the PCU socket into OsmoPCU, and the resulting set +can be further constrained by OsmoPCU VTY configuration. + +Some additional OsmoPCU parameters can be set as described below. ==== Initial Coding Scheme @@ -41,11 +52,28 @@ to set the initial GPRS coding scheme to be used. The optional second value allows to specify a different initial coding scheme for uplink. +Similarly, `mcs <1-9> [<1-9>]` can be used to set up the initial EGPRS coding +scheme. + +[[max_cs_mcs]] ==== Maximum Coding Scheme You can use the `cs max <1-4> [<1-4>]` command at the `pcu` VTY config -node to set the maximum coding scheme that should be used as part of the -rate adaption. +node to set the maximum GPRS coding scheme that should be used as part of the +rate adaption. The optional second value allows to specify a different maximum +coding scheme for uplink. + +Similarly, `mcs max <1-9> [<1-9>]` can be used to set up the maximum EGPRS +coding scheme. + +The actual Maximum Coding Scheme for each direction used at runtime is actually +the result of taking the maximum value from the permitted GPRS coding schemes +received by the BSC (or BTS) over PCUIF which is equal or lower tho the +configured value. + +Example: PCUIF announces permitted MCS bit-mask (`MCS1 MCS2 MCS3 MCS4`) and +OsmoPCU is configured `mcs max 6`, then the actual maximum MCS used at runtime +will be `MCS4`. ==== Rate Adaption Error Thresholds @@ -192,14 +220,96 @@ Set the gamma parameter for MS power control in units of dB. -=== Enabling EGPRS +=== GPRS vs EGPRS considerations -If you would like to test the currently (experimental) EGPRS support of -OsmoPCU, you can enable it using the `egprs` command at the `pcu` VTY -config node. +==== Configuration -WARNING: EPGRS functionality is highly experimental at the time of this -writing. Please only use if you actively would like to participate in -the OsmoPCU EGPRS development and/or testing. You will also need an -EGPRS capable OsmoBTS+PHY, which means `osmo-bts-sysmo` or -`osmo-bts-litecell15` with their associated PHY. +OsmoPCU can be configured to either: + +- Allocate only GPRS TBFs to all MS (no EGPRS) +- Allocate EGPRS TBFs to EGPRS capable phones while still falling back to + allocating GPRS TBFs on GPRS-only capable MS. + +These two different modes of operation are selected by properly configuring the +Coding Schemes (see <>). + +The first mode of operation (GPRS-only for all MS) can be accomplished +configuring OsmoPCU so that the resulting MCS set is empty. This can be done in +two ways: + +- Announcing an empty MCS bit-mask over PCUIF to OsmoPCU: + That's actually done automatically by OsmoBSC on BTS with VTY config set to + `gprs mode gprs`. +- Configuring OsmoPCU to force an empty set by using VTY command `mcs max 0`. + +Hence, if the resulting MCS bit-mask is not empty, (BSC configuring the BTS with +`gprs mode egprs` and OsmoPCU VTY containing something other than 'mcs max 0'), +EGPRS TBFs will be allocated for all MS announcing EGPRS capabilities. + +It is important to remark that in order to use MCS5-9, the BTS must support +8-PSK modulation. Nevertheless, in case 8-PSK is not supported by the BTS, one +can still enable EGPRS and simply make sure 8-PSK MCS are never used by +configuring OsmoPCU with `mcs max 4 4`. + +Similarly, a BTS may support 8-PSK modulation only on downlink, since it is +easier to implement than the uplink, together with the fact that higher downlink +throughput is usually more interesting from user point of view. In this +scenario, OsmoPCU can be configured to allow for full MCS range in downlink +while still preventing use of 8-PSK on the uplink: `mcs max 9 4`. + +Some other interesting configurations to control use of EGPRS in the network +which lay outside OsmoPCU include: + +- If `osmo-bts-trx` together with `osmo-trx` is used, remember to enable EGPRS + support (OsmoTRX VTY `egprs enable`). + +- It is possible to improve EGPRS performance (in particular, the TBF + establishment timing) a bit by enabling 11-bit Access Burst support. This + allows EGPRS capable phones to indicate their EGPRS capability, establishment + cause, and multi-slot class directly in the Access Burst (OsmoTRX VTY + `ext-rach enable`, OsmoBSC VTY `gprs egprs-packet-channel-request`). + +NOTE: If you enable MCS5-9 you will also need an 8-PSK capable OsmoBTS+PHY, +which means `osmo-bts-sysmo` or `osmo-bts-litecell15` with their associated PHY, +or `osmo-bts-trx` with `osmo-trx` properly configured. + +==== GPRS+EGPRS multiplexing + +Both EGPRS and GPRS-only capable MS can be driven concurrently in the same PDCH +timeslot by the PCU, hence no special configuration is required per timeslot +regarding this topic; OsmoPCU scheduler takes care of the specific requirements +when driving MS with different capabilities. + +These specific requirements translate to some restrictions regarding which +Coding Schemes can be used at given frame numbers, and hence which kind of +RLCMAC blocks can be sent, which means serving a GPRS-only MS in a PDCH may end +up affecting slightly the downlink throughput of EGPRS capable MS. + +Throughput loss based on MS capabilities with TBF attached to a certain PDCH +timeslot: + +All UEs are EGPRS capable:: + No throughput loss, since all data is sent using EGPRS, and EGPRS control + messages are used when appropriate. + +All UEs are GPRS-only (doesn't support EGPRS):: + No throughput loss, since all data and control blocks use GPRS. + +Some UEs are GPRS-only, some EGPRS:: +In general EGPRS capable UEs will use EGPRS, and GPRS-only UEs will use GPRS, +with some restrictions affecting throughput of EGPRS capable UEs: +- Whenever a GPRS-only MS is to be polled to send uplink data to PCU, then a +downlink RLCMAC block modulated using GMSK must be sent, which means that if the +scheduler selects a EGPRS MS for downlink on that block it will force sending of +data with MCS1-4 (if it's new data, if it's a retransmission it cannot be +selected since MCS from original message cannot be changed). In the worst case +if no control block needs to be sent or no new data in MCS1-4 is available to +send, then an RLCMAC Dummy Block is sent. +- For synchronization purposes, each MS needs to receive an RLCMAC block which +it can fully decode at least every 360ms, which means the scheduler must enforce +a downlink block in CS1-4 every 360ms, that is, every 18th RLCMAC block. In +general this is not a big issue since anyway all control RLCMAC blocks are +encoded in CS1, so in case any control block is sent from time to time it's +accomplished and there's no penalty. However, if only EGPRS downlink data is sent +over that time frame, then the scheduler will force sending a RLCMAC Dummy +Block. -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21943 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I7b205f5cab5862058a408f628925beb9f0f60a92 Gerrit-Change-Number: 21943 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 15:49:48 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 5 Jan 2021 15:49:48 +0000 Subject: Change in osmo-ttcn3-hacks[master]: SGSN_Tests: test RIM message passing In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21735 ) Change subject: SGSN_Tests: test RIM message passing ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21735 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If0ab08dcdc28819740cc07fd4dc1fea47ba10843 Gerrit-Change-Number: 21735 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 05 Jan 2021 15:49:48 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 17:30:03 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 5 Jan 2021 17:30:03 +0000 Subject: Change in osmo-sgsn[master]: Fix gbproxy_sgsn_by_tlli wraparound In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, daniel, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21959 to look at the new patch set (#2). Change subject: Fix gbproxy_sgsn_by_tlli wraparound ...................................................................... Fix gbproxy_sgsn_by_tlli wraparound Change-Id: I74ecb655f4d433f7ac14d00d934d237325aab606 Related: SYS#4865, OS#4472 --- M src/gbproxy/gb_proxy_peer.c 1 file changed, 2 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/59/21959/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21959 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I74ecb655f4d433f7ac14d00d934d237325aab606 Gerrit-Change-Number: 21959 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 17:30:27 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 5 Jan 2021 17:30:27 +0000 Subject: Change in osmo-sgsn[master]: Fix gbproxy_sgsn_by_tlli wraparound In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21959 ) Change subject: Fix gbproxy_sgsn_by_tlli wraparound ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-sgsn/+/21959/1/src/gbproxy/gb_proxy_peer.c File src/gbproxy/gb_proxy_peer.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/21959/1/src/gbproxy/gb_proxy_peer.c at 538 PS1, Line 538: if (i > index) { > sholdn't this be i >= index? last step i = index is already checked in previous loop right? Yeah, I'll change it. -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21959 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I74ecb655f4d433f7ac14d00d934d237325aab606 Gerrit-Change-Number: 21959 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 05 Jan 2021 17:30:27 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 17:35:06 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 5 Jan 2021 17:35:06 +0000 Subject: Change in osmo-sgsn[master]: Fix gbproxy_sgsn_by_tlli wraparound In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21959 ) Change subject: Fix gbproxy_sgsn_by_tlli wraparound ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21959 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I74ecb655f4d433f7ac14d00d934d237325aab606 Gerrit-Change-Number: 21959 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 05 Jan 2021 17:35:06 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 17:49:44 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 5 Jan 2021 17:49:44 +0000 Subject: Change in docker-playground[master]: ttcn3-gbproxy-test: Fix osmo-gbproxy config References: Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/21962 ) Change subject: ttcn3-gbproxy-test: Fix osmo-gbproxy config ...................................................................... ttcn3-gbproxy-test: Fix osmo-gbproxy config Change-Id: If6fd41d0cecb807f002d87e18d4b0d80f41977ef --- M ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg M ttcn3-gbproxy-test/osmo-gbproxy.cfg 2 files changed, 40 insertions(+), 26 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/62/21962/1 diff --git a/ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg b/ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg index e321af6..2cb5b80 100644 --- a/ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg +++ b/ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg @@ -19,14 +19,25 @@ no login bind 0.0.0.0 ! -gbproxy -sgsn nsei 101 ns - nse 101 nsvci 101 - nse 101 remote-role sgsn - nse 101 encapsulation udp - nse 101 remote-ip 172.18.25.103 - nse 101 remote-port 23000 + bind udp local + listen 172.18.25.10 23000 + bind fr hdlcnet1 + fr hdlcnet1 frnet + bind fr hdlcnet2 + fr hdlcnet2 frnet + bind fr hdlcnet3 + fr hdlcnet3 frnet + bind fr hdlcnet4 + fr hdlcnet4 frnet + bind fr hdlcnet5 + fr hdlcnet5 frnet + bind fr hdlcnet6 + fr hdlcnet6 frnet + bind fr hdlcnet7 + fr hdlcnet7 frnet + bind fr hdlcnet8 + fr hdlcnet8 frnet timer tns-block 3 timer tns-block-retries 3 timer tns-reset 3 @@ -34,14 +45,19 @@ timer tns-test 30 timer tns-alive 3 timer tns-alive-retries 10 - encapsulation udp local-ip 172.18.25.10 - encapsulation udp local-port 23000 - encapsulation framerelay-gre enabled 0 - nse 2001 nsvci 1 frnet hdlcnet1 dlci 16 - nse 2001 nsvci 2 frnet hdlcnet2 dlci 17 - nse 2001 nsvci 3 frnet hdlcnet3 dlci 18 - nse 2001 nsvci 4 frnet hdlcnet4 dlci 19 - nse 2002 nsvci 5 frnet hdlcnet5 dlci 20 - nse 2002 nsvci 6 frnet hdlcnet6 dlci 21 - nse 2003 nsvci 7 frnet hdlcnet7 dlci 22 - nse 2003 nsvci 8 frnet hdlcnet8 dlci 23 + nse 101 + nsvc ipa local 172.18.25.103 23000 nsvci 101 + nse 2001 + nsvc fr hdlcnet1 dlci 16 nsvci 1 + nsvc fr hdlcnet2 dlci 17 nsvci 2 + nsvc fr hdlcnet3 dlci 18 nsvci 3 + nsvc fr hdlcnet4 dlci 19 nsvci 4 + nse 2002 + nsvc fr hdlcnet5 dlci 20 nsvci 5 + nsvc fr hdlcnet6 dlci 21 nsvci 6 + nse 2003 + nsvc fr hdlcnet7 dlci 22 nsvci 7 + nsvc fr hdlcnet8 dlci 23 nsvci 8 +gbproxy +sgsn nsei 101 + name main diff --git a/ttcn3-gbproxy-test/osmo-gbproxy.cfg b/ttcn3-gbproxy-test/osmo-gbproxy.cfg index ad5ad8e..d437620 100644 --- a/ttcn3-gbproxy-test/osmo-gbproxy.cfg +++ b/ttcn3-gbproxy-test/osmo-gbproxy.cfg @@ -21,12 +21,13 @@ ! gbproxy sgsn nsei 101 + name main ns - nse 101 nsvci 101 - nse 101 remote-role sgsn - nse 101 encapsulation udp - nse 101 remote-ip 172.18.24.103 - nse 101 remote-port 23000 + bind udp local + listen 172.18.24.10 23000 + accept-ipaccess + nse 101 + nsvc ipa local 172.18.24.103 23000 nsvci 101 timer tns-block 3 timer tns-block-retries 3 timer tns-reset 3 @@ -34,6 +35,3 @@ timer tns-test 30 timer tns-alive 3 timer tns-alive-retries 10 - encapsulation udp local-ip 172.18.24.10 - encapsulation udp local-port 23000 - encapsulation framerelay-gre enabled 0 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21962 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: If6fd41d0cecb807f002d87e18d4b0d80f41977ef Gerrit-Change-Number: 21962 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 17:55:43 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 5 Jan 2021 17:55:43 +0000 Subject: Change in docker-playground[master]: ttcn3-gbproxy-test: Fix osmo-gbproxy config In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21962 ) Change subject: ttcn3-gbproxy-test: Fix osmo-gbproxy config ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21962 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: If6fd41d0cecb807f002d87e18d4b0d80f41977ef Gerrit-Change-Number: 21962 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Tue, 05 Jan 2021 17:55:43 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 17:55:56 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 5 Jan 2021 17:55:56 +0000 Subject: Change in docker-playground[master]: ttcn3-gbproxy-test: Fix osmo-gbproxy config In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21962 ) Change subject: ttcn3-gbproxy-test: Fix osmo-gbproxy config ...................................................................... Patch Set 1: you could write why it needed the change (ns2 patch) -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21962 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: If6fd41d0cecb807f002d87e18d4b0d80f41977ef Gerrit-Change-Number: 21962 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Tue, 05 Jan 2021 17:55:56 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 17:57:18 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 5 Jan 2021 17:57:18 +0000 Subject: Change in docker-playground[master]: ttcn3-gbproxy-test: Fix osmo-gbproxy config In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21962 ) Change subject: ttcn3-gbproxy-test: Fix osmo-gbproxy config ...................................................................... Patch Set 1: That's because you are switching to ns2 vty? a bit of extra explanation in commit message would be welcome. -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21962 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: If6fd41d0cecb807f002d87e18d4b0d80f41977ef Gerrit-Change-Number: 21962 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 05 Jan 2021 17:57:18 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 17:58:15 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 5 Jan 2021 17:58:15 +0000 Subject: Change in docker-playground[master]: ttcn3-gbproxy-test: Fix osmo-gbproxy config In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21962 ) Change subject: ttcn3-gbproxy-test: Fix osmo-gbproxy config ...................................................................... Patch Set 1: Verified+1 Running docker locally works -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21962 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: If6fd41d0cecb807f002d87e18d4b0d80f41977ef Gerrit-Change-Number: 21962 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 05 Jan 2021 17:58:15 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 17:58:18 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 5 Jan 2021 17:58:18 +0000 Subject: Change in docker-playground[master]: ttcn3-gbproxy-test: Fix osmo-gbproxy config In-Reply-To: References: Message-ID: daniel has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21962 ) Change subject: ttcn3-gbproxy-test: Fix osmo-gbproxy config ...................................................................... ttcn3-gbproxy-test: Fix osmo-gbproxy config Change-Id: If6fd41d0cecb807f002d87e18d4b0d80f41977ef --- M ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg M ttcn3-gbproxy-test/osmo-gbproxy.cfg 2 files changed, 40 insertions(+), 26 deletions(-) Approvals: lynxis lazus: Looks good to me, approved daniel: Verified diff --git a/ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg b/ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg index e321af6..2cb5b80 100644 --- a/ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg +++ b/ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg @@ -19,14 +19,25 @@ no login bind 0.0.0.0 ! -gbproxy -sgsn nsei 101 ns - nse 101 nsvci 101 - nse 101 remote-role sgsn - nse 101 encapsulation udp - nse 101 remote-ip 172.18.25.103 - nse 101 remote-port 23000 + bind udp local + listen 172.18.25.10 23000 + bind fr hdlcnet1 + fr hdlcnet1 frnet + bind fr hdlcnet2 + fr hdlcnet2 frnet + bind fr hdlcnet3 + fr hdlcnet3 frnet + bind fr hdlcnet4 + fr hdlcnet4 frnet + bind fr hdlcnet5 + fr hdlcnet5 frnet + bind fr hdlcnet6 + fr hdlcnet6 frnet + bind fr hdlcnet7 + fr hdlcnet7 frnet + bind fr hdlcnet8 + fr hdlcnet8 frnet timer tns-block 3 timer tns-block-retries 3 timer tns-reset 3 @@ -34,14 +45,19 @@ timer tns-test 30 timer tns-alive 3 timer tns-alive-retries 10 - encapsulation udp local-ip 172.18.25.10 - encapsulation udp local-port 23000 - encapsulation framerelay-gre enabled 0 - nse 2001 nsvci 1 frnet hdlcnet1 dlci 16 - nse 2001 nsvci 2 frnet hdlcnet2 dlci 17 - nse 2001 nsvci 3 frnet hdlcnet3 dlci 18 - nse 2001 nsvci 4 frnet hdlcnet4 dlci 19 - nse 2002 nsvci 5 frnet hdlcnet5 dlci 20 - nse 2002 nsvci 6 frnet hdlcnet6 dlci 21 - nse 2003 nsvci 7 frnet hdlcnet7 dlci 22 - nse 2003 nsvci 8 frnet hdlcnet8 dlci 23 + nse 101 + nsvc ipa local 172.18.25.103 23000 nsvci 101 + nse 2001 + nsvc fr hdlcnet1 dlci 16 nsvci 1 + nsvc fr hdlcnet2 dlci 17 nsvci 2 + nsvc fr hdlcnet3 dlci 18 nsvci 3 + nsvc fr hdlcnet4 dlci 19 nsvci 4 + nse 2002 + nsvc fr hdlcnet5 dlci 20 nsvci 5 + nsvc fr hdlcnet6 dlci 21 nsvci 6 + nse 2003 + nsvc fr hdlcnet7 dlci 22 nsvci 7 + nsvc fr hdlcnet8 dlci 23 nsvci 8 +gbproxy +sgsn nsei 101 + name main diff --git a/ttcn3-gbproxy-test/osmo-gbproxy.cfg b/ttcn3-gbproxy-test/osmo-gbproxy.cfg index ad5ad8e..d437620 100644 --- a/ttcn3-gbproxy-test/osmo-gbproxy.cfg +++ b/ttcn3-gbproxy-test/osmo-gbproxy.cfg @@ -21,12 +21,13 @@ ! gbproxy sgsn nsei 101 + name main ns - nse 101 nsvci 101 - nse 101 remote-role sgsn - nse 101 encapsulation udp - nse 101 remote-ip 172.18.24.103 - nse 101 remote-port 23000 + bind udp local + listen 172.18.24.10 23000 + accept-ipaccess + nse 101 + nsvc ipa local 172.18.24.103 23000 nsvci 101 timer tns-block 3 timer tns-block-retries 3 timer tns-reset 3 @@ -34,6 +35,3 @@ timer tns-test 30 timer tns-alive 3 timer tns-alive-retries 10 - encapsulation udp local-ip 172.18.24.10 - encapsulation udp local-port 23000 - encapsulation framerelay-gre enabled 0 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21962 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: If6fd41d0cecb807f002d87e18d4b0d80f41977ef Gerrit-Change-Number: 21962 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-CC: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 17:59:03 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 5 Jan 2021 17:59:03 +0000 Subject: Change in libosmocore[master]: gitignore: Ignore *~ References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21963 ) Change subject: gitignore: Ignore *~ ...................................................................... gitignore: Ignore *~ They seem to be generated by newer versions of autofoo. Change-Id: Ia4514da3c3dcbc383487a3d98b322a5ecb918568 --- M .gitignore 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/63/21963/1 diff --git a/.gitignore b/.gitignore index a9dd303..f5e794a 100644 --- a/.gitignore +++ b/.gitignore @@ -29,6 +29,7 @@ stamp-h1 libtool libosmocore-*.tar.* +*~ # libtool for different platforms like arm-poky-linux-gnueabi-libtool *-libtool -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21963 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia4514da3c3dcbc383487a3d98b322a5ecb918568 Gerrit-Change-Number: 21963 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 17:59:07 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 5 Jan 2021 17:59:07 +0000 Subject: Change in libosmocore[master]: ctrl: Allow handling CTRL get/set replies in user defined code References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/21964 ) Change subject: ctrl: Allow handling CTRL get/set replies in user defined code ...................................................................... ctrl: Allow handling CTRL get/set replies in user defined code Prior to this patch, it was not possible to gather SET/GET reply information when implementing a CTRL client using libosmocontrol. This is specially important when using teh GET command, since one wants to receive the queried value. CTRL traps can also be handled this way by extending this patch in the future if needed. Change-Id: Id3c4631cd32c13e78e11b6e8194b8c16307ec4f1 --- M TODO-RELEASE M include/osmocom/ctrl/control_if.h M src/ctrl/control_if.c 3 files changed, 11 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/64/21964/1 diff --git a/TODO-RELEASE b/TODO-RELEASE index e8fb32b..501f25b 100644 --- a/TODO-RELEASE +++ b/TODO-RELEASE @@ -12,3 +12,4 @@ libosmogsm API change struct ipac_preproc_ave_cfg: new zero-sized flexible array member at end libosmovty ABI change struct cmd_element: add a field for program specific attributes libosmovty ABI change struct vty_app_info: optional program specific attributes description +libosmoctrl ABI change struct ctrl_handle changed size (new field "reply_cb" at the end) diff --git a/include/osmocom/ctrl/control_if.h b/include/osmocom/ctrl/control_if.h index 5fa9588..77d1567 100644 --- a/include/osmocom/ctrl/control_if.h +++ b/include/osmocom/ctrl/control_if.h @@ -9,6 +9,7 @@ typedef int (*ctrl_cmd_lookup)(void *data, vector vline, int *node_type, void **node_data, int *i); +typedef void (*ctrl_cmd_reply_cb)(struct ctrl_handle *ctrl, struct ctrl_cmd *cmd); struct ctrl_handle { struct osmo_fd listen_fd; @@ -18,6 +19,11 @@ /* List of control connections */ struct llist_head ccon_list; + + /* User defined GET/SET REPLY handler. User can set cmd->defer to 1 in + order to own and keep the cmd pointer and free it after the function + returns. */ + ctrl_cmd_reply_cb reply_cb; }; diff --git a/src/ctrl/control_if.c b/src/ctrl/control_if.c index ce2e367..0ba93e3 100644 --- a/src/ctrl/control_if.c +++ b/src/ctrl/control_if.c @@ -221,6 +221,10 @@ if (cmd->type == CTRL_TYPE_SET_REPLY || cmd->type == CTRL_TYPE_GET_REPLY) { + if (ctrl->reply_cb) { + ctrl->reply_cb(ctrl, cmd); + return CTRL_CMD_HANDLED; + } if (strncmp(cmd->reply, "OK", 2) == 0) { LOGP(DLCTRL, LOGL_DEBUG, "%s <%s> for %s is OK\n", get_value_string(ctrl_type_vals, cmd->type), -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21964 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Id3c4631cd32c13e78e11b6e8194b8c16307ec4f1 Gerrit-Change-Number: 21964 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 18:00:34 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 5 Jan 2021 18:00:34 +0000 Subject: Change in docker-playground[master]: ttcn3-gbproxy-test: Fix osmo-gbproxy config In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21962 ) Change subject: ttcn3-gbproxy-test: Fix osmo-gbproxy config ...................................................................... Patch Set 1: Sorry, just saw the +2 and merged -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21962 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: If6fd41d0cecb807f002d87e18d4b0d80f41977ef Gerrit-Change-Number: 21962 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 05 Jan 2021 18:00:34 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 18:01:03 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 5 Jan 2021 18:01:03 +0000 Subject: Change in docker-playground[master]: ttcn3-gbproxy-test: Fix osmo-gbproxy config In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/21962 ) Change subject: ttcn3-gbproxy-test: Fix osmo-gbproxy config ...................................................................... Patch Set 1: > Patch Set 1: > > Sorry, just saw the +2 and merged no problem :P. my fault. -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21962 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: If6fd41d0cecb807f002d87e18d4b0d80f41977ef Gerrit-Change-Number: 21962 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 05 Jan 2021 18:01:03 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 18:37:21 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 5 Jan 2021 18:37:21 +0000 Subject: Change in libosmocore[master]: ctrl: Allow handling CTRL get/set replies in user defined code In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/21964 to look at the new patch set (#2). Change subject: ctrl: Allow handling CTRL get/set replies in user defined code ...................................................................... ctrl: Allow handling CTRL get/set replies in user defined code Prior to this patch, it was not possible to gather SET/GET reply information when implementing a CTRL client using libosmocontrol. This is specially important when using teh GET command, since one wants to receive the queried value. CTRL traps can also be handled this way by extending this patch in the future if needed. Change-Id: Id3c4631cd32c13e78e11b6e8194b8c16307ec4f1 --- M TODO-RELEASE M include/osmocom/ctrl/control_if.h M src/ctrl/control_if.c 3 files changed, 12 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/64/21964/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21964 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Id3c4631cd32c13e78e11b6e8194b8c16307ec4f1 Gerrit-Change-Number: 21964 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 18:49:06 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 18:49:06 +0000 Subject: Change in libosmocore[master]: gitignore: Ignore *~ In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21963 ) Change subject: gitignore: Ignore *~ ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21963 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia4514da3c3dcbc383487a3d98b322a5ecb918568 Gerrit-Change-Number: 21963 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 05 Jan 2021 18:49:06 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 18:49:08 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 18:49:08 +0000 Subject: Change in libosmocore[master]: gitignore: Ignore *~ In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21963 ) Change subject: gitignore: Ignore *~ ...................................................................... gitignore: Ignore *~ They seem to be generated by newer versions of autofoo. Change-Id: Ia4514da3c3dcbc383487a3d98b322a5ecb918568 --- M .gitignore 1 file changed, 1 insertion(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/.gitignore b/.gitignore index a9dd303..f5e794a 100644 --- a/.gitignore +++ b/.gitignore @@ -29,6 +29,7 @@ stamp-h1 libtool libosmocore-*.tar.* +*~ # libtool for different platforms like arm-poky-linux-gnueabi-libtool *-libtool -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21963 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia4514da3c3dcbc383487a3d98b322a5ecb918568 Gerrit-Change-Number: 21963 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 18:50:02 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 18:50:02 +0000 Subject: Change in libosmocore[master]: ctrl: Allow handling CTRL get/set replies in user defined code In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21964 ) Change subject: ctrl: Allow handling CTRL get/set replies in user defined code ...................................................................... Patch Set 2: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/21964/2//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/libosmocore/+/21964/2//COMMIT_MSG at 11 PS2, Line 11: teh spelling -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21964 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Id3c4631cd32c13e78e11b6e8194b8c16307ec4f1 Gerrit-Change-Number: 21964 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 05 Jan 2021 18:50:02 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 18:50:33 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 18:50:33 +0000 Subject: Change in osmo-ttcn3-hacks[master]: SGSN_Tests: test RIM message passing In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21735 ) Change subject: SGSN_Tests: test RIM message passing ...................................................................... SGSN_Tests: test RIM message passing Add a testcase to test if RIM messages can be passed on the SGSN back and forth. Related: SYS#5103 Change-Id: If0ab08dcdc28819740cc07fd4dc1fea47ba10843 Related: SYS#5103 --- M sgsn/SGSN_Tests.ttcn 1 file changed, 90 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, but someone else must approve pespin: Looks good to me, approved diff --git a/sgsn/SGSN_Tests.ttcn b/sgsn/SGSN_Tests.ttcn index 8e7d6e4..fe31ffc 100644 --- a/sgsn/SGSN_Tests.ttcn +++ b/sgsn/SGSN_Tests.ttcn @@ -171,6 +171,9 @@ /* only needed at start to get the per-BVC references */ port BSSGP_CT_PROC_PT PROC; + /* used by RIM related test */ + port BSSGP_PT RIM[NUM_GB]; + var GTP_Emulation_CT vc_GTP; port TELNETasp_PT SGSNVTY; @@ -247,6 +250,8 @@ gb.vc_BSSGP_BVC[i] := f_bssgp_get_bvci_ct(gb.cfg.bvc[i].bvci, PROC); disconnect(self:PROC, gb.vc_BSSGP:PROC); } + /* connect RIM related port */ + connect(gb.vc_BSSGP:RIM, self:RIM[offset]); } private function f_init_gsup(charstring id) runs on test_CT { @@ -3130,9 +3135,92 @@ f_cleanup(); } +private function f_TC_bssgp_rim_dummy(charstring id) runs on BSSGP_ConnHdlr { +} + +/* Run a RIM single report procedure over the sgsn. Since the SGSN will only do a transparent routing of the + * RIM messages this basically tests if the message is correctly transfered from one GB interface to the + * other and vice versa. */ +testcase TC_bssgp_rim_single_report() runs on test_CT { + var BSSGP_ConnHdlr vc_conn; + f_init(); + vc_conn := f_start_handler(refers(f_TC_bssgp_rim_dummy), testcasename(), g_gb, 17); + vc_conn.done; + + timer T := 2.0; + + var template RIM_Routing_Address dst_addr; + var template RIM_Routing_Address src_addr; + var template RAN_Information_Request_RIM_Container req_cont; + var template RAN_Information_RIM_Container res_cont; + var template PDU_BSSGP bssgp_rim_pdu; + var template PDU_BSSGP bssgp_rim_pdu_expect; + + dst_addr := t_RIM_Routing_Address_cid(g_gb[1].cfg.bvc[0].cell_id); + src_addr := t_RIM_Routing_Address_cid(g_gb[0].cfg.bvc[0].cell_id); + /* Send NACC Ran information request to SGSN at GB interface #0. We epect the SGSN to forward this request + * based on the cell id in dst_addr to GB interface #1. */ + req_cont := ts_RAN_Information_Request_RIM_Container(ts_RIM_Application_Identity(RIM_APP_ID_NACC), + ts_RIM_Sequence_Number(1), + ts_RIM_PDU_Indications(false, RIM_PDU_TYPE_SING_REP), + ts_RIM_Protocol_Version_Number(1), + tsu_RAN_Information_Request_Application_Container_NACC(g_gb[1].cfg.bvc[0].cell_id), + omit); + bssgp_rim_pdu := ts_RAN_INFORMATION_REQUEST(ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, dst_addr), + ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, src_addr), + req_cont); + bssgp_rim_pdu_expect := tr_RAN_INFORMATION_REQUEST(tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, dst_addr), + tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, src_addr), + tr_RAN_Information_Request_RIM_Container); + RIM[0].send(bssgp_rim_pdu); + T.start; + alt { + [] RIM[1].receive(bssgp_rim_pdu_expect) { } + [] RIM[1].receive { + setverdict(fail, "Unexpected BSSGP RIM PDU received"); + } + [] T.timeout { + setverdict(fail, "No BSSGP RIM PDU received"); + mtc.stop; + } + } + /* Now also emulate also the response as well and send it back on GB interface #1. Expect the result on + * GB interface #0 */ + var octetstring si1 := '198fb100000000000000000000000000007900002b'O; + var octetstring si3 := '1b753000f110236ec9033c2747407900003c0b2b2b'O; + var octetstring si13 := '009000185a6fc9e08410ab2b2b2b2b2b2b2b2b2b2b'O; + var octetstring si := si1 & si3 & si13; + + res_cont := ts_RAN_Information_RIM_Container(ts_RIM_Application_Identity(RIM_APP_ID_NACC), + ts_RIM_Sequence_Number(2), + ts_RIM_PDU_Indications(false, RIM_PDU_TYPE_SING_REP), + ts_RIM_Protocol_Version_Number(1), + tsu_ApplContainer_or_ApplErrContainer_NACC(tsu_ApplContainer_NACC(g_gb[0].cfg.bvc[0].cell_id, false, 3, si)), + omit); + bssgp_rim_pdu := ts_PDU_BSSGP_RAN_INFORMATION(ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, src_addr), + ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, dst_addr), + res_cont); + bssgp_rim_pdu_expect := tr_PDU_BSSGP_RAN_INFORMATION(tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, src_addr), + tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, dst_addr), + ?); + RIM[1].send(bssgp_rim_pdu); + T.start; + alt { + [] RIM[0].receive(bssgp_rim_pdu_expect) { } + [] RIM[0].receive { + setverdict(fail, "Unexpected BSSGP RIM PDU received"); + } + [] T.timeout { + setverdict(fail, "No BSSGP RIM PDU received"); + mtc.stop; + } + } + + f_cleanup(); +} control { execute( TC_attach() ); @@ -3196,6 +3284,8 @@ execute( TC_suspend_rau() ); execute( TC_paging_ps() ); + execute( TC_bssgp_rim_single_report() ); + /* At the end, may crash osmo-sgsn, see OS#3957, OS#4245 */ execute( TC_attach_req_id_req_ra_update() ); } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21735 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If0ab08dcdc28819740cc07fd4dc1fea47ba10843 Gerrit-Change-Number: 21735 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 19:06:30 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 5 Jan 2021 19:06:30 +0000 Subject: Change in osmo-bts[master]: vty: add commands for Downlink power control In-Reply-To: References: Message-ID: fixeria has abandoned this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21438 ) Change subject: vty: add commands for Downlink power control ...................................................................... Abandoned The existing commands will be deprecated, all parameters must be set in the BSC. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21438 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I61efbe177aa06584cd7412640b888913de6e8f9d Gerrit-Change-Number: 21438 Gerrit-PatchSet: 5 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-CC: pespin Gerrit-MessageType: abandon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 19:15:23 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 5 Jan 2021 19:15:23 +0000 Subject: Change in libosmocore[master]: ctrl: Allow handling CTRL get/set replies in user defined code In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/21964 to look at the new patch set (#3). Change subject: ctrl: Allow handling CTRL get/set replies in user defined code ...................................................................... ctrl: Allow handling CTRL get/set replies in user defined code Prior to this patch, it was not possible to gather SET/GET reply information when implementing a CTRL client using libosmocontrol. This is specially important when using the GET command, since one wants to receive the queried value. CTRL traps can also be handled this way by extending this patch in the future if needed. Change-Id: Id3c4631cd32c13e78e11b6e8194b8c16307ec4f1 --- M TODO-RELEASE M include/osmocom/ctrl/control_if.h M src/ctrl/control_if.c 3 files changed, 12 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/64/21964/3 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21964 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Id3c4631cd32c13e78e11b6e8194b8c16307ec4f1 Gerrit-Change-Number: 21964 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 22:19:41 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 22:19:41 +0000 Subject: Change in osmo-e1-hardware[master]: icE1usb fw: Put E1 IP core register related #defines in e1_hw.h In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21773 ) Change subject: icE1usb fw: Put E1 IP core register related #defines in e1_hw.h ...................................................................... icE1usb fw: Put E1 IP core register related #defines in e1_hw.h Related: OS#4675 Change-Id: I6783f473e6bb7dd08a5b5714bdd9b5aac0f28f0d --- M firmware/ice40-riscv/icE1usb/e1.c A firmware/ice40-riscv/icE1usb/e1_hw.h 2 files changed, 69 insertions(+), 60 deletions(-) Approvals: Jenkins Builder: Verified tnt: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/firmware/ice40-riscv/icE1usb/e1.c b/firmware/ice40-riscv/icE1usb/e1.c index ad12fe2..7682ce0 100644 --- a/firmware/ice40-riscv/icE1usb/e1.c +++ b/firmware/ice40-riscv/icE1usb/e1.c @@ -12,71 +12,12 @@ #include "config.h" #include "console.h" #include "e1.h" +#include "e1_hw.h" #include "dma.h" #include "led.h" // FIXME -// Hardware -// -------- - -struct e1_chan { - uint32_t csr; - uint32_t bd; -} __attribute__((packed,aligned(4))); - -struct e1_core { - struct e1_chan rx; - struct e1_chan tx; -} __attribute__((packed,aligned(4))); - -/* E1 receiver control register */ -#define E1_RX_CR_ENABLE (1 << 0) /* Enable receiver */ -#define E1_RX_CR_MODE_TRSP (0 << 1) /* Request no alignment at all */ -#define E1_RX_CR_MODE_BYTE (1 << 1) /* Request byte-level alignment */ -#define E1_RX_CR_MODE_BFA (2 << 1) /* Request Basic Frame Alignment */ -#define E1_RX_CR_MODE_MFA (3 << 1) /* Request Multi-Frame Alignment */ -#define E1_RX_CR_OVFL_CLR (1 << 12) /* Clear Rx overflow condition */ - -/* E1 receiver status register */ -#define E1_RX_SR_ENABLED (1 << 0) /* Indicate Rx is enabled */ -#define E1_RX_SR_ALIGNED (1 << 1) /* Indicate Alignment achieved */ -#define E1_RX_SR_BD_IN_EMPTY (1 << 8) -#define E1_RX_SR_BD_IN_FULL (1 << 9) -#define E1_RX_SR_BD_OUT_EMPTY (1 << 10) -#define E1_RX_SR_BD_OUT_FULL (1 << 11) -#define E1_RX_SR_OVFL (1 << 12) /* Indicate Rx overflow */ - -/* E1 transmitter control register */ -#define E1_TX_CR_ENABLE (1 << 0) /* Enable transmitter */ -#define E1_TX_CR_MODE_TRSP (0 << 1) /* Transparent bit-stream mode */ -#define E1_TX_CR_MODE_TS0 (1 << 1) /* Generate TS0 in framer */ -#define E1_TX_CR_MODE_TS0_CRC (2 << 1) /* Generate TS0 + CRC4 in framer */ -#define E1_TX_CR_MODE_TS0_CRC_E (3 << 1) /* Generate TS0 + CRC4 + E-bits (based on Rx) in framer */ -#define E1_TX_CR_TICK_LOCAL (0 << 3) /* use local clock for Tx */ -#define E1_TX_CR_TICK_REMOTE (1 << 3) /* use recovered remote clock for Tx */ -#define E1_TX_CR_ALARM (1 << 4) /* indicate ALARM to remote */ -#define E1_TX_CR_LOOPBACK (1 << 5) /* external loopback enable/diasble */ -#define E1_TX_CR_LOOPBACK_CROSS (1 << 6) /* source of loopback: local (0) or other (1) port */ -#define E1_TX_CR_UNFL_CLR (1 << 12) /* Clear Tx underflow condition */ - -/* E1 transmitter status register */ -#define E1_TX_SR_ENABLED (1 << 0) /* Indicate Tx is enabled */ -#define E1_TX_SR_BD_IN_EMPTY (1 << 8) -#define E1_TX_SR_BD_IN_FULL (1 << 9) -#define E1_TX_SR_BD_OUT_EMPTY (1 << 10) -#define E1_TX_SR_BD_OUT_FULL (1 << 11) -#define E1_TX_SR_UNFL (1 << 12) /* Indicate Tx underflow */ - -/* E1 buffer descriptor flags */ -#define E1_BD_VALID (1 << 15) -#define E1_BD_CRC1 (1 << 14) -#define E1_BD_CRC0 (1 << 13) -#define E1_BD_ADDR(x) ((x) & 0x7f) -#define E1_BD_ADDR_MSK 0x7f -#define E1_BD_ADDR_SHFT 0 - - static volatile struct e1_core * const e1_regs = (void *)(E1_CORE_BASE); static volatile uint8_t * const e1_data = (void *)(E1_DATA_BASE); diff --git a/firmware/ice40-riscv/icE1usb/e1_hw.h b/firmware/ice40-riscv/icE1usb/e1_hw.h new file mode 100644 index 0000000..9227cc7 --- /dev/null +++ b/firmware/ice40-riscv/icE1usb/e1_hw.h @@ -0,0 +1,68 @@ +/* + * e1_hw.h + * + * Copyright (C) 2019-2020 Sylvain Munaut + * SPDX-License-Identifier: GPL-3.0-or-later + */ + +#pragma once + +#include + +//TODO: Should latre go into the no2e1 git repo + +struct e1_chan { + uint32_t csr; + uint32_t bd; +} __attribute__((packed,aligned(4))); + +struct e1_core { + struct e1_chan rx; + struct e1_chan tx; +} __attribute__((packed,aligned(4))); + +/* E1 receiver control register */ +#define E1_RX_CR_ENABLE (1 << 0) /* Enable receiver */ +#define E1_RX_CR_MODE_TRSP (0 << 1) /* Request no alignment at all */ +#define E1_RX_CR_MODE_BYTE (1 << 1) /* Request byte-level alignment */ +#define E1_RX_CR_MODE_BFA (2 << 1) /* Request Basic Frame Alignment */ +#define E1_RX_CR_MODE_MFA (3 << 1) /* Request Multi-Frame Alignment */ +#define E1_RX_CR_OVFL_CLR (1 << 12) /* Clear Rx overflow condition */ + +/* E1 receiver status register */ +#define E1_RX_SR_ENABLED (1 << 0) /* Indicate Rx is enabled */ +#define E1_RX_SR_ALIGNED (1 << 1) /* Indicate Alignment achieved */ +#define E1_RX_SR_BD_IN_EMPTY (1 << 8) +#define E1_RX_SR_BD_IN_FULL (1 << 9) +#define E1_RX_SR_BD_OUT_EMPTY (1 << 10) +#define E1_RX_SR_BD_OUT_FULL (1 << 11) +#define E1_RX_SR_OVFL (1 << 12) /* Indicate Rx overflow */ + +/* E1 transmitter control register */ +#define E1_TX_CR_ENABLE (1 << 0) /* Enable transmitter */ +#define E1_TX_CR_MODE_TRSP (0 << 1) /* Transparent bit-stream mode */ +#define E1_TX_CR_MODE_TS0 (1 << 1) /* Generate TS0 in framer */ +#define E1_TX_CR_MODE_TS0_CRC (2 << 1) /* Generate TS0 + CRC4 in framer */ +#define E1_TX_CR_MODE_TS0_CRC_E (3 << 1) /* Generate TS0 + CRC4 + E-bits (based on Rx) in framer */ +#define E1_TX_CR_TICK_LOCAL (0 << 3) /* use local clock for Tx */ +#define E1_TX_CR_TICK_REMOTE (1 << 3) /* use recovered remote clock for Tx */ +#define E1_TX_CR_ALARM (1 << 4) /* indicate ALARM to remote */ +#define E1_TX_CR_LOOPBACK (1 << 5) /* external loopback enable/diasble */ +#define E1_TX_CR_LOOPBACK_CROSS (1 << 6) /* source of loopback: local (0) or other (1) port */ +#define E1_TX_CR_UNFL_CLR (1 << 12) /* Clear Tx underflow condition */ + +/* E1 transmitter status register */ +#define E1_TX_SR_ENABLED (1 << 0) /* Indicate Tx is enabled */ +#define E1_TX_SR_BD_IN_EMPTY (1 << 8) +#define E1_TX_SR_BD_IN_FULL (1 << 9) +#define E1_TX_SR_BD_OUT_EMPTY (1 << 10) +#define E1_TX_SR_BD_OUT_FULL (1 << 11) +#define E1_TX_SR_UNFL (1 << 12) /* Indicate Tx underflow */ + +/* E1 buffer descriptor flags */ +#define E1_BD_VALID (1 << 15) +#define E1_BD_CRC1 (1 << 14) +#define E1_BD_CRC0 (1 << 13) +#define E1_BD_ADDR(x) ((x) & 0x7f) +#define E1_BD_ADDR_MSK 0x7f +#define E1_BD_ADDR_SHFT 0 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21773 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1-hardware Gerrit-Branch: master Gerrit-Change-Id: I6783f473e6bb7dd08a5b5714bdd9b5aac0f28f0d Gerrit-Change-Number: 21773 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tnt Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 22:19:43 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 22:19:43 +0000 Subject: Change in osmo-e1-hardware[master]: icE1usb fw: Don't store E1_*_CR_*_CLR in variables In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21878 ) Change subject: icE1usb fw: Don't store E1_*_CR_*_CLR in variables ...................................................................... icE1usb fw: Don't store E1_*_CR_*_CLR in variables Those clear bits are only set once at start-up and then later explicitly. They shouldn't be stored with the user configuration in state variables. Change-Id: If38e86aefea7f1be4e1ff5a88860f8be593eeedc --- M firmware/ice40-riscv/icE1usb/e1.c 1 file changed, 4 insertions(+), 6 deletions(-) Approvals: Jenkins Builder: Verified tnt: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/firmware/ice40-riscv/icE1usb/e1.c b/firmware/ice40-riscv/icE1usb/e1.c index 7682ce0..b1771f5 100644 --- a/firmware/ice40-riscv/icE1usb/e1.c +++ b/firmware/ice40-riscv/icE1usb/e1.c @@ -248,17 +248,15 @@ e1f_reset(&g_e1.tx.fifo, 128, 128); /* Enable Rx */ - g_e1.rx.cr = E1_RX_CR_OVFL_CLR | - E1_RX_CR_MODE_MFA | + g_e1.rx.cr = E1_RX_CR_MODE_MFA | E1_RX_CR_ENABLE; - e1_regs->rx.csr = g_e1.rx.cr; + e1_regs->rx.csr = E1_RX_CR_OVFL_CLR | g_e1.rx.cr; /* Enable Tx */ - g_e1.tx.cr = E1_TX_CR_UNFL_CLR | - (clk_mode ? E1_TX_CR_TICK_REMOTE : E1_TX_CR_TICK_LOCAL) | + g_e1.tx.cr = (clk_mode ? E1_TX_CR_TICK_REMOTE : E1_TX_CR_TICK_LOCAL) | E1_TX_CR_MODE_TS0_CRC_E | E1_TX_CR_ENABLE; - e1_regs->tx.csr = g_e1.tx.cr; + e1_regs->tx.csr = E1_TX_CR_UNFL_CLR | g_e1.tx.cr; /* State */ g_e1.rx.state = BOOT; -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21878 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1-hardware Gerrit-Branch: master Gerrit-Change-Id: If38e86aefea7f1be4e1ff5a88860f8be593eeedc Gerrit-Change-Number: 21878 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tnt Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 22:24:47 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 22:24:47 +0000 Subject: Change in osmo-e1-hardware[master]: icE1usb fw: Internal API for configuring E1 rx/tx config register In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21774 ) Change subject: icE1usb fw: Internal API for configuring E1 rx/tx config register ...................................................................... Patch Set 3: (2 comments) https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21774/3/firmware/ice40-riscv/icE1usb/e1.c File firmware/ice40-riscv/icE1usb/e1.c: https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21774/3/firmware/ice40-riscv/icE1usb/e1.c at 277 PS3, Line 277: e1_regs->tx.csr = (e1_regs->tx.csr & ~TXCR_PERMITTED) | g_e1.tx.cr; > No that's not correct, the overflow bit (read only) is the same as the overflow clear (write only) f [?] Ack https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21774/3/firmware/ice40-riscv/icE1usb/e1.c at 288 PS3, Line 288: } > Same as TX Ack -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21774 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1-hardware Gerrit-Branch: master Gerrit-Change-Id: Ib23f9b99f169ab18d730bcf67b97a7b6bf863e98 Gerrit-Change-Number: 21774 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: tnt Gerrit-Comment-Date: Tue, 05 Jan 2021 22:24:47 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: tnt Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 22:25:57 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 22:25:57 +0000 Subject: Change in osmo-e1-hardware[master]: icE1usb fw: Expose error conditions from E1 driver In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21715 ) Change subject: icE1usb fw: Expose error conditions from E1 driver ...................................................................... Patch Set 7: (1 comment) > Patch Set 7: Code-Review+1 > > (1 comment) > > Minor typo ? > But otherwise looks good. https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21715/7/firmware/ice40-riscv/icE1usb/ice1usb_proto.h File firmware/ice40-riscv/icE1usb/ice1usb_proto.h: https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21715/7/firmware/ice40-riscv/icE1usb/ice1usb_proto.h at 85 PS7, Line 85: ICE1USB_IRQQ_T_ERRCNT = 1, > IRQQ ? Ack -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21715 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1-hardware Gerrit-Branch: master Gerrit-Change-Id: Iba3e00a2b28a2fef6dbd986bfc706c1619c3a3ed Gerrit-Change-Number: 21715 Gerrit-PatchSet: 7 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-Comment-Date: Tue, 05 Jan 2021 22:25:57 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: tnt Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 22:26:18 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 22:26:18 +0000 Subject: Change in osmo-e1-hardware[master]: icE1usb fw: Internal API for configuring E1 rx/tx config register In-Reply-To: References: Message-ID: Hello Jenkins Builder, tnt, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21774 to look at the new patch set (#4). Change subject: icE1usb fw: Internal API for configuring E1 rx/tx config register ...................................................................... icE1usb fw: Internal API for configuring E1 rx/tx config register Related: OS#4675 Change-Id: Ib23f9b99f169ab18d730bcf67b97a7b6bf863e98 --- M firmware/ice40-riscv/icE1usb/e1.c M firmware/ice40-riscv/icE1usb/e1.h 2 files changed, 26 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1-hardware refs/changes/74/21774/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21774 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1-hardware Gerrit-Branch: master Gerrit-Change-Id: Ib23f9b99f169ab18d730bcf67b97a7b6bf863e98 Gerrit-Change-Number: 21774 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: tnt Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 22:26:18 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 22:26:18 +0000 Subject: Change in osmo-e1-hardware[master]: icE1usb fw: Expose error conditions from E1 driver In-Reply-To: References: Message-ID: Hello Jenkins Builder, tnt, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21715 to look at the new patch set (#8). Change subject: icE1usb fw: Expose error conditions from E1 driver ...................................................................... icE1usb fw: Expose error conditions from E1 driver This will allow the USB interface code to report the errors to the host PC. Related: OS#4674 Change-Id: Iba3e00a2b28a2fef6dbd986bfc706c1619c3a3ed --- M firmware/ice40-riscv/icE1usb/e1.c M firmware/ice40-riscv/icE1usb/e1.h M firmware/ice40-riscv/icE1usb/ice1usb_proto.h M firmware/ice40-riscv/icE1usb/usb_desc_app.c M firmware/ice40-riscv/icE1usb/usb_e1.c 5 files changed, 108 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1-hardware refs/changes/15/21715/8 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21715 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1-hardware Gerrit-Branch: master Gerrit-Change-Id: Iba3e00a2b28a2fef6dbd986bfc706c1619c3a3ed Gerrit-Change-Number: 21715 Gerrit-PatchSet: 8 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 22:28:43 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 5 Jan 2021 22:28:43 +0000 Subject: Change in osmo-bsc[master]: handover_test: gitignore References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21965 ) Change subject: handover_test: gitignore ...................................................................... handover_test: gitignore We decided not to keep the handover_test script expected outputs (osmo-bsc's logging output) in the source tree. For manual comparison, they are still produced by 'handover_tests.sh -u', ignore them. Change-Id: I5dda03f21b568e07cf26501ba2e0683108d408b6 --- M .gitignore 1 file changed, 3 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/65/21965/1 diff --git a/.gitignore b/.gitignore index c7b14bf..6a8d2c1 100644 --- a/.gitignore +++ b/.gitignore @@ -71,6 +71,9 @@ tests/testsuite tests/testsuite.log +tests/handover/test*.ok +tests/handover/test*.err + writtenconfig/ # manuals -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21965 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I5dda03f21b568e07cf26501ba2e0683108d408b6 Gerrit-Change-Number: 21965 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 22:28:44 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 5 Jan 2021 22:28:44 +0000 Subject: Change in osmo-bsc[master]: tweak handover_tests.sh References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21966 ) Change subject: tweak handover_tests.sh ...................................................................... tweak handover_tests.sh We decided not to keep the handover_test script expected outputs (osmo-bsc's logging output) in the source tree. Hence do not fail the handover_tests when the output differs, just show a diff (if at all). Change-Id: I3e9e123b41be71d1fcd9576b0bd38d2fd32353b4 --- M tests/handover/handover_tests.sh 1 file changed, 11 insertions(+), 18 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/66/21966/1 diff --git a/tests/handover/handover_tests.sh b/tests/handover/handover_tests.sh index 68a8e2d..240b789 100755 --- a/tests/handover/handover_tests.sh +++ b/tests/handover/handover_tests.sh @@ -19,24 +19,17 @@ set +e "$build_dir"/handover_test "$test_path" > "$got_out" 2> "$got_err" rc=$? - if [ "x$rc" = "x0" ]; then - expect_out="$test_path.ok" - expect_err="$test_path.err" - if [ "x$update" = "x-u" ]; then - cp "$got_out" "$expect_out" - cp "$got_err" "$expect_err" - else - if [ -f "$expect_out" ]; then - diff -u "$expect_out" "$got_out" - rc=$? - fi - if [ -f "$expect_err" ]; then - diff -u "$expect_err" "$got_err" - rc2=$? - fi - if [ "x$rc" = "x0" ]; then - rc=$rc2 - fi + expect_out="$test_path.ok" + expect_err="$test_path.err" + if [ "x$rc" = "x0" -a "x$update" = "x-u" ]; then + cp "$got_out" "$expect_out" + cp "$got_err" "$expect_err" + else + if [ -f "$expect_out" ]; then + diff -u "$expect_out" "$got_out" >&2 + fi + if [ -f "$expect_err" ]; then + diff -u "$expect_err" "$got_err" >&2 fi fi rm "$got_out" -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21966 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I3e9e123b41be71d1fcd9576b0bd38d2fd32353b4 Gerrit-Change-Number: 21966 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 22:28:44 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 5 Jan 2021 22:28:44 +0000 Subject: Change in osmo-bsc[master]: handover_test: cosmetic cfg simplifications in 5 tests References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21967 ) Change subject: handover_test: cosmetic cfg simplifications in 5 tests ...................................................................... handover_test: cosmetic cfg simplifications in 5 tests Change-Id: Iecc77bfde12ed7d788dd2bad626971efb0327fe7 --- M tests/handover/test_amr_tch_f_to_h_balance_congestion.ho_vty M tests/handover/test_balance_congestion.ho_vty M tests/handover/test_balance_congestion_2.ho_vty M tests/handover/test_congestion.ho_vty M tests/handover/test_no_congestion.ho_vty 5 files changed, 9 insertions(+), 34 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/67/21967/1 diff --git a/tests/handover/test_amr_tch_f_to_h_balance_congestion.ho_vty b/tests/handover/test_amr_tch_f_to_h_balance_congestion.ho_vty index 79a3084..1b8969e 100644 --- a/tests/handover/test_amr_tch_f_to_h_balance_congestion.ho_vty +++ b/tests/handover/test_amr_tch_f_to_h_balance_congestion.ho_vty @@ -4,12 +4,8 @@ create-n-bts 2 network - bts 0 - handover2 min-free-slots tch/f 4 - handover2 min-free-slots tch/h 4 - bts 1 - handover2 min-free-slots tch/f 4 - handover2 min-free-slots tch/h 4 + handover2 min-free-slots tch/f 4 + handover2 min-free-slots tch/h 4 set-ts-use trx 0 0 states * TCH/F TCH/F - - TCH/H- - - meas-rep lchan 0 0 1 0 rxlev 30 rxqual 0 ta 0 neighbors 30 expect-no-chan diff --git a/tests/handover/test_balance_congestion.ho_vty b/tests/handover/test_balance_congestion.ho_vty index e8304a1..0988f3b 100644 --- a/tests/handover/test_balance_congestion.ho_vty +++ b/tests/handover/test_balance_congestion.ho_vty @@ -8,12 +8,8 @@ create-ms bts 0 TCH/F AMR expect-ts-use trx 0 0 states * TCH/F - - - - - - network - bts 0 - handover2 min-free-slots tch/f 4 - handover2 min-free-slots tch/h 4 - bts 1 - handover2 min-free-slots tch/f 4 - handover2 min-free-slots tch/h 4 + handover2 min-free-slots tch/f 4 + handover2 min-free-slots tch/h 4 meas-rep lchan 0 0 1 0 rxlev 20 rxqual 0 ta 0 neighbors 30 expect-no-chan set-ts-use trx 0 0 states * TCH/F TCH/F - - - - - diff --git a/tests/handover/test_balance_congestion_2.ho_vty b/tests/handover/test_balance_congestion_2.ho_vty index 2e7fa5a..9c8b7f9 100644 --- a/tests/handover/test_balance_congestion_2.ho_vty +++ b/tests/handover/test_balance_congestion_2.ho_vty @@ -4,10 +4,7 @@ create-n-bts 2 network - bts 0 - handover2 min-free-slots tch/f 4 - bts 1 - handover2 min-free-slots tch/f 4 + handover2 min-free-slots tch/f 4 codec tch/f FR set-ts-use trx 0 0 states * TCH/F TCH/F TCH/F - - - - set-ts-use trx 1 0 states * TCH/F - - - - - - diff --git a/tests/handover/test_congestion.ho_vty b/tests/handover/test_congestion.ho_vty index 4919d20..13599ee 100644 --- a/tests/handover/test_congestion.ho_vty +++ b/tests/handover/test_congestion.ho_vty @@ -5,15 +5,8 @@ create-n-bts 3 network - bts 0 - handover2 min-free-slots tch/f 2 - handover2 min-free-slots tch/h 2 - bts 1 - handover2 min-free-slots tch/f 2 - handover2 min-free-slots tch/h 2 - bts 2 - handover2 min-free-slots tch/f 2 - handover2 min-free-slots tch/h 2 + handover2 min-free-slots tch/f 2 + handover2 min-free-slots tch/h 2 set-ts-use trx 0 0 states * TCH/F TCH/F TCH/F - TCH/HH - - set-ts-use trx 1 0 states * TCH/F - - - TCH/H- - - meas-rep lchan 0 0 1 0 rxlev 30 rxqual 0 ta 0 neighbors 20 1 20 diff --git a/tests/handover/test_no_congestion.ho_vty b/tests/handover/test_no_congestion.ho_vty index 824d1d3..651d648 100644 --- a/tests/handover/test_no_congestion.ho_vty +++ b/tests/handover/test_no_congestion.ho_vty @@ -4,15 +4,8 @@ create-n-bts 3 network - bts 0 - handover2 min-free-slots tch/f 2 - handover2 min-free-slots tch/h 2 - bts 1 - handover2 min-free-slots tch/f 2 - handover2 min-free-slots tch/h 2 - bts 2 - handover2 min-free-slots tch/f 2 - handover2 min-free-slots tch/h 2 + handover2 min-free-slots tch/f 2 + handover2 min-free-slots tch/h 2 set-ts-use trx 0 0 states * TCH/F TCH/F - - TCH/HH - - set-ts-use trx 1 0 states * TCH/F - - - TCH/H- - - meas-rep lchan 0 0 1 0 rxlev 30 rxqual 0 ta 0 neighbors 20 1 20 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21967 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Iecc77bfde12ed7d788dd2bad626971efb0327fe7 Gerrit-Change-Number: 21967 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 22:28:44 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 5 Jan 2021 22:28:44 +0000 Subject: Change in osmo-bsc[master]: handover_test: fix test_congestion.ho_vty meas-rep References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21968 ) Change subject: handover_test: fix test_congestion.ho_vty meas-rep ...................................................................... handover_test: fix test_congestion.ho_vty meas-rep Three BTS means two neighbors -- the '1' is a leftover from legacy. Change-Id: Ie823c0f371d180b961af38fbea8b01cb3922d038 --- M tests/handover/test_congestion.ho_vty 1 file changed, 7 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/68/21968/1 diff --git a/tests/handover/test_congestion.ho_vty b/tests/handover/test_congestion.ho_vty index 13599ee..09815e3 100644 --- a/tests/handover/test_congestion.ho_vty +++ b/tests/handover/test_congestion.ho_vty @@ -9,19 +9,19 @@ handover2 min-free-slots tch/h 2 set-ts-use trx 0 0 states * TCH/F TCH/F TCH/F - TCH/HH - - set-ts-use trx 1 0 states * TCH/F - - - TCH/H- - - -meas-rep lchan 0 0 1 0 rxlev 30 rxqual 0 ta 0 neighbors 20 1 20 +meas-rep lchan 0 0 1 0 rxlev 30 rxqual 0 ta 0 neighbors 20 20 expect-no-chan -meas-rep lchan 0 0 2 0 rxlev 30 rxqual 0 ta 0 neighbors 20 1 20 +meas-rep lchan 0 0 2 0 rxlev 30 rxqual 0 ta 0 neighbors 20 20 expect-no-chan -meas-rep lchan 0 0 3 0 rxlev 30 rxqual 0 ta 0 neighbors 21 1 20 +meas-rep lchan 0 0 3 0 rxlev 30 rxqual 0 ta 0 neighbors 21 20 expect-no-chan -meas-rep lchan 0 0 5 0 rxlev 30 rxqual 0 ta 0 neighbors 20 1 20 +meas-rep lchan 0 0 5 0 rxlev 30 rxqual 0 ta 0 neighbors 20 20 expect-no-chan -meas-rep lchan 0 0 5 1 rxlev 30 rxqual 0 ta 0 neighbors 20 1 20 +meas-rep lchan 0 0 5 1 rxlev 30 rxqual 0 ta 0 neighbors 20 20 expect-no-chan -meas-rep lchan 1 0 1 0 rxlev 30 rxqual 0 ta 0 neighbors 20 1 20 +meas-rep lchan 1 0 1 0 rxlev 30 rxqual 0 ta 0 neighbors 20 20 expect-no-chan -meas-rep lchan 1 0 5 0 rxlev 30 rxqual 0 ta 0 neighbors 20 1 20 +meas-rep lchan 1 0 5 0 rxlev 30 rxqual 0 ta 0 neighbors 20 20 expect-no-chan expect-ts-use trx 0 0 states * TCH/F TCH/F TCH/F - TCH/HH - - expect-ts-use trx 1 0 states * TCH/F - - - TCH/H- - - -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21968 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ie823c0f371d180b961af38fbea8b01cb3922d038 Gerrit-Change-Number: 21968 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 22:28:45 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 5 Jan 2021 22:28:45 +0000 Subject: Change in osmo-bsc[master]: handover_test.c: properly release lchans in set-ts-use References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21969 ) Change subject: handover_test.c: properly release lchans in set-ts-use ...................................................................... handover_test.c: properly release lchans in set-ts-use An upcoming test that uses set-ts-use to release used lchans uncovered an incomplete release, keeping the lchans occupied due to a missing release ack. Always ack the release. Change-Id: Ia22906bfbfcc48b7bd08473a2b17f6b0554687d3 --- M tests/handover/handover_test.c 1 file changed, 11 insertions(+), 10 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/69/21969/1 diff --git a/tests/handover/handover_test.c b/tests/handover/handover_test.c index cbe0cf3..c0c5bb9 100644 --- a/tests/handover/handover_test.c +++ b/tests/handover/handover_test.c @@ -435,9 +435,20 @@ return lchan_act(lchan, full_rate, codec); } +static void lchan_release_ack(struct gsm_lchan *lchan) +{ + if (lchan->fi && lchan->fi->state == LCHAN_ST_WAIT_BEFORE_RF_RELEASE) { + /* don't wait before release */ + osmo_fsm_inst_state_chg(lchan->fi, LCHAN_ST_WAIT_RF_RELEASE_ACK, 0, 0); + /* ack the release */ + osmo_fsm_inst_dispatch(lchan->fi, LCHAN_EV_RSL_RF_CHAN_REL_ACK, 0); + } +} + static void lchan_clear(struct gsm_lchan *lchan) { lchan_release(lchan, true, false, 0); + lchan_release_ack(lchan); } static void ts_clear(struct gsm_bts_trx_ts *ts) @@ -674,16 +685,6 @@ abis_rsl_rcvmsg(msg); } -static void lchan_release_ack(struct gsm_lchan *lchan) -{ - if (lchan->fi && lchan->fi->state == LCHAN_ST_WAIT_BEFORE_RF_RELEASE) { - /* don't wait before release */ - osmo_fsm_inst_state_chg(lchan->fi, LCHAN_ST_WAIT_RF_RELEASE_ACK, 0, 0); - /* ack the release */ - osmo_fsm_inst_dispatch(lchan->fi, LCHAN_EV_RSL_RF_CHAN_REL_ACK, 0); - } -} - /* override, requires '-Wl,--wrap=abis_rsl_sendmsg'. * Catch RSL messages sent towards the BTS. */ int __real_abis_rsl_sendmsg(struct msgb *msg); -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21969 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ia22906bfbfcc48b7bd08473a2b17f6b0554687d3 Gerrit-Change-Number: 21969 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 22:28:45 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 5 Jan 2021 22:28:45 +0000 Subject: Change in osmo-bsc[master]: hodec2: cosmetic: add dBm unit to rxval logging References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21970 ) Change subject: hodec2: cosmetic: add dBm unit to rxval logging ...................................................................... hodec2: cosmetic: add dBm unit to rxval logging Change-Id: I58a5ae721b674576339360b1f03e91b015a1bf46 --- M src/osmo-bsc/handover_decision_2.c 1 file changed, 7 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/70/21970/1 diff --git a/src/osmo-bsc/handover_decision_2.c b/src/osmo-bsc/handover_decision_2.c index 9fab1fc..477f1eb 100644 --- a/src/osmo-bsc/handover_decision_2.c +++ b/src/osmo-bsc/handover_decision_2.c @@ -829,18 +829,18 @@ if (candidate->cil) LOGPHOLCHANTOREMOTE(lchan, candidate->cil, LOGL_DEBUG, - "RX level %d -> %d\n", + "RX level %d dBm -> %d dBm\n", rxlev2dbm(rxlev), rxlev2dbm(candidate->avg)); if (candidate->bts == lchan->ts->trx->bts) LOGPHOLCHANTOBTS(lchan, candidate->bts, LOGL_DEBUG, - "RX level %d; " + "RX level %d dBm; " HO_CANDIDATE_FMT(f, F) "; " HO_CANDIDATE_FMT(h, H) "\n", rxlev2dbm(candidate->avg), HO_CANDIDATE_ARGS(f, F), HO_CANDIDATE_ARGS(h, H)); else if (candidate->bts) LOGPHOLCHANTOBTS(lchan, candidate->bts, LOGL_DEBUG, - "RX level %d -> %d; " + "RX level %d dBm -> %d dBm; " HO_CANDIDATE_FMT(f, F) "; " HO_CANDIDATE_FMT(h, H) "\n", rxlev2dbm(rxlev), rxlev2dbm(candidate->avg), HO_CANDIDATE_ARGS(f, F), HO_CANDIDATE_ARGS(h, H)); @@ -946,8 +946,8 @@ unsigned int pwr_hyst = ho_get_hodec2_pwr_hysteresis(bts->ho); if (avg <= (av_rxlev + pwr_hyst)) { LOGPHOCAND(&c, LOGL_DEBUG, - "Not a candidate, because RX level (%d) is lower" - " or equal than current RX level (%d) + hysteresis (%d)\n", + "Not a candidate, because RX level (%d dBm) is lower" + " or equal than current RX level (%d dBm) + hysteresis (%d)\n", rxlev2dbm(avg), rxlev2dbm(av_rxlev), pwr_hyst); return; } @@ -958,8 +958,8 @@ min_rxlev = ho_get_hodec2_min_rxlev(neigh_cfg); if (rxlev2dbm(avg) < min_rxlev) { LOGPHOCAND(&c, LOGL_DEBUG, - "Not a candidate, because RX level (%d) is lower" - " than the minimum required RX level (%d)\n", + "Not a candidate, because RX level (%d dBm) is lower" + " than the minimum required RX level (%d dBm)\n", rxlev2dbm(avg), min_rxlev); return; } -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21970 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I58a5ae721b674576339360b1f03e91b015a1bf46 Gerrit-Change-Number: 21970 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 22:28:45 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 5 Jan 2021 22:28:45 +0000 Subject: Change in osmo-bsc[master]: hodec2: code dup / cosmetics References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21971 ) Change subject: hodec2: code dup / cosmetics ...................................................................... hodec2: code dup / cosmetics In handover_decision_2.c, instead of repeating a similar loop four times, put that loop in a function and parameterize it. Prepare for a fix of two problems in handover decision 2, see I2704899c85c35dfd4eba43468452483f40016ca2. Change-Id: I7c32d08e490a88a7f044b0a71dc4b07d748dd572 --- M src/osmo-bsc/handover_decision_2.c 1 file changed, 133 insertions(+), 194 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/71/21971/1 diff --git a/src/osmo-bsc/handover_decision_2.c b/src/osmo-bsc/handover_decision_2.c index 477f1eb..7854f09 100644 --- a/src/osmo-bsc/handover_decision_2.c +++ b/src/osmo-bsc/handover_decision_2.c @@ -24,6 +24,7 @@ #include #include +#include #include #include @@ -1379,10 +1380,22 @@ return count; } +static bool is_intra_cell(const struct ho_candidate *c) +{ + return c->bts && (c->lchan->ts->trx->bts == c->bts); +} + +static bool is_upgrade_to_tchf(const struct ho_candidate *c, uint8_t for_requirement) +{ + return c->lchan + && (c->lchan->type == GSM_LCHAN_TCH_H) + && ((c->requirements & for_requirement) & (REQUIREMENT_B_TCHF | REQUIREMENT_C_TCHF)); +} + /* Given two candidates, pick the one that should rather be moved during handover. * Return the better candidate in out-parameters best_cand and best_avg_db. */ -static void pick_better_lchan_to_move(bool want_highest_db, +static bool pick_better_lchan_to_move(bool want_highest_db, struct ho_candidate **best_cand_p, unsigned int *best_avg_db_p, struct ho_candidate *other_cand, unsigned int other_avg_db) { @@ -1400,7 +1413,7 @@ /* If both are dynamic, prefer one that completely (or to a higher degree) frees its timeslot. */ if (lchan_is_on_dynamic_ts((*best_cand_p)->lchan) && ts_usage_count((*best_cand_p)->lchan->ts) < ts_usage_count(other_cand->lchan->ts)) - return; + return false; /* If both equally satisfy these preferences, it does not matter which one is picked. * Give slight preference to moving later dyn TS, so that a free dyn TS may group with following static * PDCH, though this depends on how the user configured the TS -- not harmful to do so anyway. */ @@ -1408,11 +1421,76 @@ } /* keep the same candidate. */ - return; + return false; return_other: *best_cand_p = other_cand; *best_avg_db_p = other_avg_db; + return true; +} + +static struct ho_candidate *pick_best_candidate(int *applied_afs_bias, + struct ho_candidate *clist, int clist_len, + bool want_highest_db, + bool omit_intra_cell_upgrade_to_tchf, + bool only_intra_cell_upgrade_to_tchf, + uint8_t for_requirement) +{ + struct ho_candidate *result = NULL; + unsigned int result_avg_rxlev; + int result_afs_bias = 0; + int i; + + if (applied_afs_bias) + *applied_afs_bias = 0; + + result_avg_rxlev = want_highest_db ? 0 : INT_MAX; + + for (i = 0; i < clist_len; i++) { + struct ho_candidate *c = &clist[i]; + bool intra_cell; + bool upgrade_to_tch_f; + int avg_rxlev; + int afs_bias; + + /* For multiple passes of congestion resolution, already handovered candidates are marked by lchan = + * NULL. (though at the time of writing, multiple passes of congestion resolution are DISABLED.) */ + if (!c->lchan) + continue; + + /* Omit remote BSS */ + if (!c->bts) + continue; + + if (!(c->requirements & for_requirement)) + continue; + + intra_cell = is_intra_cell(c); + upgrade_to_tch_f = is_upgrade_to_tchf(c, for_requirement); + + if (only_intra_cell_upgrade_to_tchf + && !(intra_cell && upgrade_to_tch_f)) + continue; + if (omit_intra_cell_upgrade_to_tchf + && (intra_cell && upgrade_to_tch_f)) + continue; + + avg_rxlev = c->avg; + + /* improve AHS */ + if (upgrade_to_tch_f) + afs_bias = ho_get_hodec2_afs_bias_rxlev(c->bts->ho); + else + afs_bias = 0; + avg_rxlev += afs_bias; + + if (pick_better_lchan_to_move(want_highest_db, &result, &result_avg_rxlev, c, avg_rxlev)) + result_afs_bias = afs_bias; + } + + if (applied_afs_bias) + *applied_afs_bias = result_afs_bias; + return result; } /* @@ -1472,10 +1550,7 @@ int i, j; struct ho_candidate *clist; unsigned int candidates; - struct ho_candidate *best_cand = NULL, *worst_cand = NULL; - struct gsm_lchan *delete_lchan = NULL; - unsigned int best_avg_db, worst_avg_db; - int avg; + struct ho_candidate *best_cand = NULL; int rc = 0; int any_ho = 0; int is_improved = 0; @@ -1571,55 +1646,19 @@ #if 0 next_b1: #endif - /* select best candidate that fulfills requirement B, - * omit change from AHS to AFS */ - best_avg_db = 0; - for (i = 0; i < candidates; i++) { - /* delete subscriber that just have handovered */ - if (clist[i].lchan == delete_lchan) - clist[i].lchan = NULL; - /* omit all subscribers that are handovered */ - if (!clist[i].lchan) - continue; - - /* Do not resolve congestion towards remote BSS, which would cause oscillation if the - * remote BSS is also congested. */ - /* TODO: attempt inter-BSC HO if no local cells qualify, and rely on the remote BSS to - * deny receiving the handover if it also considers itself congested. Maybe do that only - * when the cell is absolutely full, i.e. not only min-free-slots. (x) */ - if (!clist[i].bts) - continue; - - if (!(clist[i].requirements & REQUIREMENT_B_MASK)) - continue; - /* omit assignment from AHS to AFS */ - if (clist[i].lchan->ts->trx->bts == clist[i].bts - && clist[i].lchan->type == GSM_LCHAN_TCH_H - && (clist[i].requirements & REQUIREMENT_B_TCHF)) - continue; - /* omit candidates that will not solve/reduce congestion */ - if (clist[i].lchan->type == GSM_LCHAN_TCH_F - && tchf_congestion <= 0) - continue; - if (clist[i].lchan->type == GSM_LCHAN_TCH_H - && tchh_congestion <= 0) - continue; - - avg = clist[i].avg; - /* improve AHS */ - if (clist[i].lchan->tch_mode == GSM48_CMODE_SPEECH_AMR - && clist[i].lchan->type == GSM_LCHAN_TCH_H - && (clist[i].requirements & REQUIREMENT_B_TCHF)) { - avg += ho_get_hodec2_afs_bias_rxlev(clist[i].bts->ho); - is_improved = 1; - } else - is_improved = 0; - LOGPHOCAND(&clist[i], LOGL_DEBUG, "candidate %d: avg=%d best_avg_db=%d\n", - i, avg, best_avg_db); - pick_better_lchan_to_move(true, &best_cand, &best_avg_db, &clist[i], avg); - } - - /* perform handover, if there is a candidate */ + /* select best candidate that does not cause congestion in the target. + * Do not resolve congestion towards remote BSS, which would cause oscillation if the remote BSS is also + * congested. + * Treating specially below: upgrading TCH/H to TCH/F within the same cell, so omit here. + */ + /* TODO: attempt inter-BSC HO if no local cells qualify, and rely on the remote BSS to + * deny receiving the handover if it also considers itself congested. Maybe do that only + * when the cell is absolutely full, i.e. not only min-free-slots. (x) */ + best_cand = pick_best_candidate(&is_improved, clist, candidates, + /* want_highest_db */ true, + /* omit_intra_cell_upgrade_to_tchf */ true, + /* only_intra_cell_upgrade_to_tchf */ false, + REQUIREMENT_B_MASK); if (best_cand) { any_ho = 1; LOGPHOCAND(best_cand, LOGL_DEBUG, "Best candidate: RX level %d%s\n", @@ -1650,59 +1689,29 @@ #if 0 next_b2: #endif - /* select worst candidate that fulfills requirement B, - * select candidates that change from AHS to AFS only */ - if (tchh_congestion > 0) { - /* since this will only check half rate channels, it will - * only need to be checked, if tchh is congested */ - worst_avg_db = 999; - for (i = 0; i < candidates; i++) { - /* delete subscriber that just have handovered */ - if (clist[i].lchan == delete_lchan) - clist[i].lchan = NULL; - /* omit all subscribers that are handovered */ - if (!clist[i].lchan) - continue; - - /* Do not resolve congestion towards remote BSS, which would cause oscillation if - * the remote BSS is also congested. */ - /* TODO: see (x) above */ - if (!clist[i].bts) - continue; - - if (!(clist[i].requirements & REQUIREMENT_B_MASK)) - continue; - /* omit all but assignment from AHS to AFS */ - if (clist[i].lchan->ts->trx->bts != clist[i].bts - || clist[i].lchan->type != GSM_LCHAN_TCH_H - || !(clist[i].requirements & REQUIREMENT_B_TCHF)) - continue; - - avg = clist[i].avg; - /* improve AHS */ - if (clist[i].lchan->tch_mode == GSM48_CMODE_SPEECH_AMR - && clist[i].lchan->type == GSM_LCHAN_TCH_H) { - avg += ho_get_hodec2_afs_bias_rxlev(clist[i].bts->ho); - is_improved = 1; - } else - is_improved = 0; - pick_better_lchan_to_move(false, &worst_cand, &worst_avg_db, &clist[i], avg); - } - } - - /* perform handover, if there is a candidate */ - if (worst_cand) { + /* For upgrading TCH/H to TCH/F within the same cell, we want to pick the *lowest* average rxlev: for staying + * within the same cell, give the MS with the worst service more bandwidth. When staying within the same cell, + * the target avg rxlev is identical to the source lchan rxlev, so it is fine to use the same avg rxlev value, + * but simply pick the lowest one. + * Upgrading TCH/H channels obviously only applies when TCH/H is actually congested. */ + if (tchh_congestion > 0) + best_cand = pick_best_candidate(&is_improved, clist, candidates, + /* want_highest_db */ false, + /* omit_intra_cell_upgrade_to_tchf */ false, + /* only_intra_cell_upgrade_to_tchf */ true, + REQUIREMENT_B_MASK); + if (best_cand) { any_ho = 1; - LOGPHOCAND(worst_cand, LOGL_INFO, "Worst candidate: RX level %d from TCH/H -> TCH/F%s\n", - rxlev2dbm(worst_cand->avg), + LOGPHOCAND(best_cand, LOGL_INFO, "Worst candidate: RX level %d from TCH/H -> TCH/F%s\n", + rxlev2dbm(best_cand->avg), is_improved ? " (applied AHS -> AFS rxlev bias)" : ""); - trigger_ho(worst_cand, worst_cand->requirements & REQUIREMENT_B_MASK); + trigger_ho(best_cand, best_cand->requirements & REQUIREMENT_B_MASK); #if 0 /* if there is still congestion, mark lchan as deleted * and redo this process */ tchh_congestion--; if (tchh_congestion > 0) { - delete_lchan = worst_cand->lchan; + delete_lchan = best_cand->lchan; best_cand = NULL; goto next_b2; } @@ -1718,51 +1727,14 @@ #if 0 next_c1: #endif - /* select best candidate that fulfills requirement C, - * omit change from AHS to AFS */ - best_avg_db = 0; - for (i = 0; i < candidates; i++) { - /* delete subscriber that just have handovered */ - if (clist[i].lchan == delete_lchan) - clist[i].lchan = NULL; - /* omit all subscribers that are handovered */ - if (!clist[i].lchan) - continue; - - /* Do not resolve congestion towards remote BSS, which would cause oscillation if - * the remote BSS is also congested. */ - /* TODO: see (x) above */ - if (!clist[i].bts) - continue; - - if (!(clist[i].requirements & REQUIREMENT_C_MASK)) - continue; - /* omit assignment from AHS to AFS */ - if (clist[i].lchan->ts->trx->bts == clist[i].bts - && clist[i].lchan->type == GSM_LCHAN_TCH_H - && (clist[i].requirements & REQUIREMENT_C_TCHF)) - continue; - /* omit candidates that will not solve/reduce congestion */ - if (clist[i].lchan->type == GSM_LCHAN_TCH_F - && tchf_congestion <= 0) - continue; - if (clist[i].lchan->type == GSM_LCHAN_TCH_H - && tchh_congestion <= 0) - continue; - - avg = clist[i].avg; - /* improve AHS */ - if (clist[i].lchan->tch_mode == GSM48_CMODE_SPEECH_AMR - && clist[i].lchan->type == GSM_LCHAN_TCH_H - && (clist[i].requirements & REQUIREMENT_C_TCHF)) { - avg += ho_get_hodec2_afs_bias_rxlev(clist[i].bts->ho); - is_improved = 1; - } else - is_improved = 0; - pick_better_lchan_to_move(true, &best_cand, &best_avg_db, &clist[i], avg); - } - - /* perform handover, if there is a candidate */ + /* Select best candidate that balances congestion. + * Again no remote BSS. + * Again no TCH/H -> F upgrades within the same cell. */ + best_cand = pick_best_candidate(&is_improved, clist, candidates, + /* want_highest_db */ true, + /* omit_intra_cell_upgrade_to_tchf */ true, + /* only_intra_cell_upgrade_to_tchf */ false, + REQUIREMENT_C_MASK); if (best_cand) { any_ho = 1; LOGPHOCAND(best_cand, LOGL_INFO, "Best candidate: RX level %d%s\n", @@ -1796,62 +1768,29 @@ #if 0 next_c2: #endif - /* select worst candidate that fulfills requirement C, - * select candidates that change from AHS to AFS only */ - if (tchh_congestion > 0) { - /* since this will only check half rate channels, it will - * only need to be checked, if tchh is congested */ - worst_avg_db = 999; - for (i = 0; i < candidates; i++) { - /* delete subscriber that just have handovered */ - if (clist[i].lchan == delete_lchan) - clist[i].lchan = NULL; - /* omit all subscribers that are handovered */ - if (!clist[i].lchan) - continue; - - /* Do not resolve congestion towards remote BSS, which would cause oscillation if - * the remote BSS is also congested. */ - /* TODO: see (x) above */ - if (!clist[i].bts) - continue; - - if (!(clist[i].requirements & REQUIREMENT_C_MASK)) - continue; - /* omit all but assignment from AHS to AFS */ - if (clist[i].lchan->ts->trx->bts != clist[i].bts - || clist[i].lchan->type != GSM_LCHAN_TCH_H - || !(clist[i].requirements & REQUIREMENT_C_TCHF)) - continue; - - avg = clist[i].avg; - /* improve AHS */ - if (clist[i].lchan->tch_mode == GSM48_CMODE_SPEECH_AMR - && clist[i].lchan->type == GSM_LCHAN_TCH_H) { - avg += ho_get_hodec2_afs_bias_rxlev(clist[i].bts->ho); - is_improved = 1; - } else - is_improved = 0; - LOGP(DHODEC, LOGL_DEBUG, "candidate %d: avg=%d worst_avg_db=%d\n", i, avg, - worst_avg_db); - pick_better_lchan_to_move(false, &worst_cand, &worst_avg_db, &clist[i], avg); - } - } + /* Look for upgrading TCH/H to TCH/F within the same cell, which balances congestion, again upgrade the TCH/H + * lchan that has the worst reception: */ + if (tchh_congestion > 0) + best_cand = pick_best_candidate(&is_improved, clist, candidates, + /* want_highest_db */ false, + /* omit_intra_cell_upgrade_to_tchf */ false, + /* only_intra_cell_upgrade_to_tchf */ true, + REQUIREMENT_C_MASK); /* perform handover, if there is a candidate */ - if (worst_cand) { + if (best_cand) { any_ho = 1; - LOGPHOCAND(worst_cand, LOGL_INFO, "Worst candidate: RX level %d from TCH/H -> TCH/F%s\n", - rxlev2dbm(worst_cand->avg), + LOGPHOCAND(best_cand, LOGL_INFO, "Worst candidate: RX level %d from TCH/H -> TCH/F%s\n", + rxlev2dbm(best_cand->avg), is_improved ? " (applied AHS -> AFS rxlev bias)" : ""); - trigger_ho(worst_cand, worst_cand->requirements & REQUIREMENT_C_MASK); + trigger_ho(best_cand, best_cand->requirements & REQUIREMENT_C_MASK); #if 0 /* if there is still congestion, mark lchan as deleted * and redo this process */ tchh_congestion--; if (tchh_congestion > 0) { - delete_lchan = worst_cand->lchan; - worst_cand = NULL; + delete_lchan = best_cand->lchan; + best_cand = NULL; goto next_c2; } #else -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21971 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I7c32d08e490a88a7f044b0a71dc4b07d748dd572 Gerrit-Change-Number: 21971 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 22:28:45 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 5 Jan 2021 22:28:45 +0000 Subject: Change in osmo-bsc[master]: handover_test: add 'meas-rep repeat N' References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21972 ) Change subject: handover_test: add 'meas-rep repeat N' ...................................................................... handover_test: add 'meas-rep repeat N' Some tests want to repeat the same measurement report, typically 10 times to fill the averaging window. Instead of 10 lines saying 'meas-rep ...', allow 'meas-rep repeat 10 ...'. Change-Id: Ib2fa81a449fb73ec7c458b0e6877d6561c79a846 --- M tests/handover/handover_test.c M tests/handover/test_rxqual.ho_vty M tests/handover/test_rxqual_vs_congestion.ho_vty 3 files changed, 42 insertions(+), 50 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/72/21972/1 diff --git a/tests/handover/handover_test.c b/tests/handover/handover_test.c index c0c5bb9..3c9b4ff 100644 --- a/tests/handover/handover_test.c +++ b/tests/handover/handover_test.c @@ -841,22 +841,7 @@ return CMD_SUCCESS; } -DEFUN(meas_rep, meas_rep_cmd, - "meas-rep " LCHAN_ARGS " rxlev <0-255> rxqual <0-7> ta <0-255>" - " [neighbors] [<0-255>] [<0-255>] [<0-255>] [<0-255>] [<0-255>] [<0-255>]", - "Send measurement report\n" - LCHAN_ARGS_DOC - "rxlev\nrxlev\n" - "rxqual\nrxqual\n" - "timing advance\ntiming advance\n" - "neighbors list of rxlev reported by each neighbor cell\n" - "neighbor 0 rxlev\n" - "neighbor 1 rxlev\n" - "neighbor 2 rxlev\n" - "neighbor 3 rxlev\n" - "neighbor 4 rxlev\n" - "neighbor 5 rxlev\n" - ) +static int _meas_rep(struct vty *vty, int argc, const char **argv) { struct gsm_lchan *lc; uint8_t rxlev; @@ -909,6 +894,44 @@ return CMD_SUCCESS; } +#define MEAS_REP_ARGS LCHAN_ARGS " rxlev <0-255> rxqual <0-7> ta <0-255>" \ + " [neighbors] [<0-255>] [<0-255>] [<0-255>] [<0-255>] [<0-255>] [<0-255>]" +#define MEAS_REP_DOC "Send measurement report\n" +#define MEAS_REP_ARGS_DOC \ + LCHAN_ARGS_DOC \ + "rxlev\nrxlev\n" \ + "rxqual\nrxqual\n" \ + "timing advance\ntiming advance\n" \ + "neighbors list of rxlev reported by each neighbor cell\n" \ + "neighbor 0 rxlev\n" \ + "neighbor 1 rxlev\n" \ + "neighbor 2 rxlev\n" \ + "neighbor 3 rxlev\n" \ + "neighbor 4 rxlev\n" \ + "neighbor 5 rxlev\n" + +DEFUN(meas_rep, meas_rep_cmd, + "meas-rep " MEAS_REP_ARGS, + MEAS_REP_DOC MEAS_REP_ARGS_DOC) +{ + return _meas_rep(vty, argc, argv); +} + +DEFUN(meas_rep_repeat, meas_rep_repeat_cmd, + "meas-rep repeat <0-999> " MEAS_REP_ARGS, + MEAS_REP_DOC + "Resend the same measurement report N times\nN\n" + MEAS_REP_ARGS_DOC) +{ + int count = atoi(argv[0]); + argv += 1; + argc -= 1; + + while (count--) + _meas_rep(vty, argc, argv); + return CMD_SUCCESS; +} + DEFUN(congestion_check, congestion_check_cmd, "congestion-check", "Trigger a congestion check\n") @@ -1125,6 +1148,7 @@ install_element(CONFIG_NODE, &create_bts_cmd); install_element(CONFIG_NODE, &create_ms_cmd); install_element(CONFIG_NODE, &meas_rep_cmd); + install_element(CONFIG_NODE, &meas_rep_repeat_cmd); install_element(CONFIG_NODE, &congestion_check_cmd); install_element(CONFIG_NODE, &expect_no_chan_cmd); install_element(CONFIG_NODE, &expect_chan_cmd); diff --git a/tests/handover/test_rxqual.ho_vty b/tests/handover/test_rxqual.ho_vty index 2b80d01..4dc5c24 100644 --- a/tests/handover/test_rxqual.ho_vty +++ b/tests/handover/test_rxqual.ho_vty @@ -12,23 +12,7 @@ create-n-bts 2 set-ts-use trx 0 0 states * TCH/F - - - - - - -meas-rep lchan 0 0 1 0 rxlev 40 rxqual 6 ta 0 neighbors 30 -expect-no-chan -meas-rep lchan 0 0 1 0 rxlev 40 rxqual 6 ta 0 neighbors 30 -expect-no-chan -meas-rep lchan 0 0 1 0 rxlev 40 rxqual 6 ta 0 neighbors 30 -expect-no-chan -meas-rep lchan 0 0 1 0 rxlev 40 rxqual 6 ta 0 neighbors 30 -expect-no-chan -meas-rep lchan 0 0 1 0 rxlev 40 rxqual 6 ta 0 neighbors 30 -expect-no-chan -meas-rep lchan 0 0 1 0 rxlev 40 rxqual 6 ta 0 neighbors 30 -expect-no-chan -meas-rep lchan 0 0 1 0 rxlev 40 rxqual 6 ta 0 neighbors 30 -expect-no-chan -meas-rep lchan 0 0 1 0 rxlev 40 rxqual 6 ta 0 neighbors 30 -expect-no-chan -meas-rep lchan 0 0 1 0 rxlev 40 rxqual 6 ta 0 neighbors 30 +meas-rep repeat 9 lchan 0 0 1 0 rxlev 40 rxqual 6 ta 0 neighbors 30 expect-no-chan meas-rep lchan 0 0 1 0 rxlev 40 rxqual 6 ta 0 neighbors 30 expect-ho from lchan 0 0 1 0 to lchan 1 0 1 0 diff --git a/tests/handover/test_rxqual_vs_congestion.ho_vty b/tests/handover/test_rxqual_vs_congestion.ho_vty index 1e81293..21c4e7e 100644 --- a/tests/handover/test_rxqual_vs_congestion.ho_vty +++ b/tests/handover/test_rxqual_vs_congestion.ho_vty @@ -10,23 +10,7 @@ bts 1 handover2 min-free-slots tch/f 4 handover2 min-free-slots tch/h 4 -meas-rep lchan 0 0 1 0 rxlev 30 rxqual 6 ta 0 neighbors 40 -expect-no-chan -meas-rep lchan 0 0 1 0 rxlev 30 rxqual 6 ta 0 neighbors 40 -expect-no-chan -meas-rep lchan 0 0 1 0 rxlev 30 rxqual 6 ta 0 neighbors 40 -expect-no-chan -meas-rep lchan 0 0 1 0 rxlev 30 rxqual 6 ta 0 neighbors 40 -expect-no-chan -meas-rep lchan 0 0 1 0 rxlev 30 rxqual 6 ta 0 neighbors 40 -expect-no-chan -meas-rep lchan 0 0 1 0 rxlev 30 rxqual 6 ta 0 neighbors 40 -expect-no-chan -meas-rep lchan 0 0 1 0 rxlev 30 rxqual 6 ta 0 neighbors 40 -expect-no-chan -meas-rep lchan 0 0 1 0 rxlev 30 rxqual 6 ta 0 neighbors 40 -expect-no-chan -meas-rep lchan 0 0 1 0 rxlev 30 rxqual 6 ta 0 neighbors 40 +meas-rep repeat 9 lchan 0 0 1 0 rxlev 30 rxqual 6 ta 0 neighbors 40 expect-no-chan meas-rep lchan 0 0 1 0 rxlev 30 rxqual 6 ta 0 neighbors 40 expect-ho from lchan 0 0 1 0 to lchan 1 0 1 0 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21972 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ib2fa81a449fb73ec7c458b0e6877d6561c79a846 Gerrit-Change-Number: 21972 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 22:28:46 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 5 Jan 2021 22:28:46 +0000 Subject: Change in osmo-bsc[master]: handover_test: add test_congestion_favor_best_target_rxlev.ho_vty References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21973 ) Change subject: handover_test: add test_congestion_favor_best_target_rxlev.ho_vty ...................................................................... handover_test: add test_congestion_favor_best_target_rxlev.ho_vty The aim is to pin the current basic behavior of handover decision 2, before modifying the algorithm conditions to fix some bugs in upcoming patches -- so far no test ensures this particular detail. Change-Id: I68cdda21ef59c464f0af3c2eee356623e58ea1cd --- M tests/handover/handover_tests.ok A tests/handover/test_congestion_favor_best_target_rxlev.ho_vty 2 files changed, 34 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/73/21973/1 diff --git a/tests/handover/handover_tests.ok b/tests/handover/handover_tests.ok index 1a9a18f..71f6255 100644 --- a/tests/handover/handover_tests.ok +++ b/tests/handover/handover_tests.ok @@ -7,6 +7,7 @@ pass test_balance_congestion.ho_vty pass test_balance_congestion_2.ho_vty pass test_congestion.ho_vty +pass test_congestion_favor_best_target_rxlev.ho_vty pass test_disabled_ho_and_as.ho_vty pass test_dyn_ts_amr_tch_f_to_h_congestion_assignment.ho_vty pass test_dyn_ts_favor_half_used_tch_h_as_target.ho_vty diff --git a/tests/handover/test_congestion_favor_best_target_rxlev.ho_vty b/tests/handover/test_congestion_favor_best_target_rxlev.ho_vty new file mode 100644 index 0000000..e31d98d --- /dev/null +++ b/tests/handover/test_congestion_favor_best_target_rxlev.ho_vty @@ -0,0 +1,33 @@ +# A handover should mostly favor the best target rxlev: +# Two candidates for congestion resolution both reduce the RXLEV for the MS, +# candidate A results in 10 RXLEV loss, candidate B only in 5 RXLEV loss. +# But candidate A still results in a better RXLEV at the target than candidate B. +# So tolerate more RXLEV reduction if the resulting RXLEV still remains better. +create-bts trx-count 1 timeslots c+s4 TCH/F TCH/F TCH/F TCH/F TCH/F TCH/F TCH/F +create-bts trx-count 1 timeslots c+s4 TCH/F TCH/F TCH/F TCH/F TCH/F TCH/F TCH/F + +network + bts 0 + handover2 min-free-slots tch/f 6 + +set-ts-use trx 0 0 states * TCH/F TCH/F - - - - - +meas-rep lchan 0 0 1 0 rxlev 40 rxqual 0 ta 0 neighbors 30 +meas-rep lchan 0 0 2 0 rxlev 30 rxqual 0 ta 0 neighbors 25 + +congestion-check +expect-ho from lchan 0 0 1 0 to lchan 1 0 1 0 +expect-ts-use trx 0 0 states * - TCH/F - - - - - +expect-ts-use trx 1 0 states * TCH/F - - - - - - + +# clear measurements for next run +set-ts-use trx 0 0 states * - - - - - - - +set-ts-use trx 1 0 states * - - - - - - - + +set-ts-use trx 0 0 states * TCH/F TCH/F - - - - - +meas-rep lchan 0 0 1 0 rxlev 30 rxqual 0 ta 0 neighbors 25 +meas-rep lchan 0 0 2 0 rxlev 40 rxqual 0 ta 0 neighbors 30 + +congestion-check +expect-ho from lchan 0 0 2 0 to lchan 1 0 1 0 +expect-ts-use trx 0 0 states * TCH/F - - - - - - +expect-ts-use trx 1 0 states * TCH/F - - - - - - -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21973 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I68cdda21ef59c464f0af3c2eee356623e58ea1cd Gerrit-Change-Number: 21973 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 22:28:46 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 5 Jan 2021 22:28:46 +0000 Subject: Change in osmo-bsc[master]: handover_test: add AMR TCH/H->/F tests, showing a bug References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21974 ) Change subject: handover_test: add AMR TCH/H->/F tests, showing a bug ...................................................................... handover_test: add AMR TCH/H->/F tests, showing a bug Related: SYS#5032 Change-Id: Ib785ce8990beede603ba57171a60a531f0f396c9 --- M tests/handover/handover_tests.ok A tests/handover/test_amr_tch_h_to_f_congestion.ho_vty A tests/handover/test_amr_tch_h_to_f_congestion_two_cells.ho_vty 3 files changed, 39 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/74/21974/1 diff --git a/tests/handover/handover_tests.ok b/tests/handover/handover_tests.ok index 71f6255..8f53471 100644 --- a/tests/handover/handover_tests.ok +++ b/tests/handover/handover_tests.ok @@ -4,6 +4,8 @@ pass test_amr_tch_f_to_h_congestion_assignment.ho_vty pass test_amr_tch_f_to_h_congestion_assignment_2.ho_vty pass test_amr_tch_f_to_h_congestion_assignment_3.ho_vty +pass test_amr_tch_h_to_f_congestion.ho_vty +pass test_amr_tch_h_to_f_congestion_two_cells.ho_vty pass test_balance_congestion.ho_vty pass test_balance_congestion_2.ho_vty pass test_congestion.ho_vty diff --git a/tests/handover/test_amr_tch_h_to_f_congestion.ho_vty b/tests/handover/test_amr_tch_h_to_f_congestion.ho_vty new file mode 100644 index 0000000..4d1194c --- /dev/null +++ b/tests/handover/test_amr_tch_h_to_f_congestion.ho_vty @@ -0,0 +1,14 @@ +# Congestion check: Balancing congestion by handover TCH/H -> TCH/F +# One BTS, TCH/H are congested and should move to TCH/F. + +network + handover2 min-free-slots tch/f 0 + handover2 min-free-slots tch/h 6 + +create-bts trx-count 1 timeslots c+s4 TCH/F TCH/F TCH/F TCH/H TCH/H TCH/H PDCH +set-ts-use trx 0 0 states * - - - TCH/H- - - * +meas-rep lchan 0 0 4 0 rxlev 30 rxqual 0 ta 0 +expect-no-chan +congestion-check +expect-ho from lchan 0 0 4 0 to lchan 0 0 1 0 +expect-ts-use trx 0 0 states * TCH/F - - - - - * diff --git a/tests/handover/test_amr_tch_h_to_f_congestion_two_cells.ho_vty b/tests/handover/test_amr_tch_h_to_f_congestion_two_cells.ho_vty new file mode 100644 index 0000000..eaaeabd --- /dev/null +++ b/tests/handover/test_amr_tch_h_to_f_congestion_two_cells.ho_vty @@ -0,0 +1,23 @@ +# Congestion check: Balancing congestion by handover TCH/H -> TCH/F +# TCH/H are congested and should move to TCH/F +# There are two cells, and the neighbor has weaker rxlev, so stay in the same cell. + +network + handover2 min-free-slots tch/f 0 + handover2 min-free-slots tch/h 6 + +create-bts trx-count 1 timeslots c+s4 TCH/F TCH/F TCH/F TCH/H TCH/H TCH/H PDCH +create-bts trx-count 1 timeslots c+s4 TCH/F TCH/F TCH/F TCH/H TCH/H TCH/H PDCH +set-ts-use trx 1 0 states * - - - TCH/H- - - * +meas-rep repeat 10 lchan 1 0 4 0 rxlev 30 rxqual 0 ta 0 neighbors 20 +expect-no-chan +congestion-check +# FAIL: bts 1 has better rxlev, so the call should stay in bts 1. Instead, a handover to bts 0 happens. +expect-ho from lchan 1 0 4 0 to lchan 0 0 1 0 +expect-ts-use trx 0 0 states * TCH/F - - - - - * +expect-ts-use trx 1 0 states * - - - - - - * +# the fail continues: later the better rxqual does *another* ho back to the original cell +meas-rep lchan 0 0 1 0 rxlev 20 rxqual 0 ta 0 neighbors 30 +expect-ho from lchan 0 0 1 0 to lchan 1 0 1 0 +expect-ts-use trx 0 0 states * - - - - - - * +expect-ts-use trx 1 0 states * TCH/F - - - - - * -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21974 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ib785ce8990beede603ba57171a60a531f0f396c9 Gerrit-Change-Number: 21974 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 22:28:46 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 5 Jan 2021 22:28:46 +0000 Subject: Change in osmo-bsc[master]: handover_test: show ineffective intra-cell choice References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21975 ) Change subject: handover_test: show ineffective intra-cell choice ...................................................................... handover_test: show ineffective intra-cell choice In handover decision 2, choosing an lchan to move so far takes into account only the absolute current rxlev, and it fails to look at the *difference* in rxlev between source and target cell. My recent feature to favor freeing half-used TCH/H does in fact not work well. The main reason why the test for that feature passes is that all lchans in the test get identical measurements -- which is unrealistic. A test with differing ratings uncovers the flaw in comparing intra-cell candidates. Related: SYS#5032 Change-Id: Iabce1ab44b496833c19d999fc3f2903d835c357f --- M tests/handover/test_dyn_ts_favor_moving_half_used_tch_h.ho_vty 1 file changed, 36 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/75/21975/1 diff --git a/tests/handover/test_dyn_ts_favor_moving_half_used_tch_h.ho_vty b/tests/handover/test_dyn_ts_favor_moving_half_used_tch_h.ho_vty index b90236d..9d88c86 100644 --- a/tests/handover/test_dyn_ts_favor_moving_half_used_tch_h.ho_vty +++ b/tests/handover/test_dyn_ts_favor_moving_half_used_tch_h.ho_vty @@ -1,15 +1,46 @@ -# Congestion check: favor moving a TCH/H that frees a half-used dyn TS completely +# Congestion check: favor moving a TCH/H that frees a half-used dyn TS completely. +# The algorithm should notice that this is about moving an lchan within the same cell, so all candidates will remain +# with unchanged rxlev after a re-assignment; hence the current rxlev for each candidate should not make a difference. create-bts trx-count 1 timeslots c+s4 dyn dyn dyn dyn dyn - - +network + handover2 min-free-slots tch/h 6 + +# Test with identical rxlev across lchans (trivial and unrealistic) set-ts-use trx 0 0 states * pdch TCH/HH TCH/H- TCH/HH pdch - - meas-rep lchan 0 0 2 1 rxlev 30 rxqual 0 ta 0 meas-rep lchan 0 0 3 0 rxlev 30 rxqual 0 ta 0 meas-rep lchan 0 0 4 0 rxlev 30 rxqual 0 ta 0 meas-rep lchan 0 0 4 1 rxlev 30 rxqual 0 ta 0 -# pick one to move: -network - bts 0 - handover2 min-free-slots tch/h 6 congestion-check expect-ho from lchan 0 0 3 0 to lchan 0 0 1 0 expect-ts-use trx 0 0 states * TCH/F TCH/HH pdch TCH/HH pdch - - + +# clear measurements for the next run +set-ts-use trx 0 0 states * pdch pdch pdch pdch pdch - - + +# Check that a weaker rxlev coming up earlier in the congestion checking loop does not override the favored half-used +# TCH/H +set-ts-use trx 0 0 states * pdch TCH/HH TCH/H- TCH/HH pdch - - +meas-rep lchan 0 0 2 1 rxlev 30 rxqual 0 ta 0 +meas-rep lchan 0 0 3 0 rxlev 31 rxqual 0 ta 0 +meas-rep lchan 0 0 4 0 rxlev 32 rxqual 0 ta 0 +meas-rep lchan 0 0 4 1 rxlev 33 rxqual 0 ta 0 +congestion-check +expect-ho from lchan 0 0 3 0 to lchan 0 0 1 0 +expect-ts-use trx 0 0 states * TCH/F TCH/HH pdch TCH/HH pdch - - + +# clear measurements for the next run +set-ts-use trx 0 0 states * pdch pdch pdch pdch pdch - - + +# Check that a weaker rxlev coming up later in the congestion checking loop does not override the favored half-used +# TCH/H +set-ts-use trx 0 0 states * pdch TCH/HH TCH/H- TCH/HH pdch - - +meas-rep lchan 0 0 2 1 rxlev 34 rxqual 0 ta 0 +meas-rep lchan 0 0 3 0 rxlev 33 rxqual 0 ta 0 +meas-rep lchan 0 0 4 0 rxlev 32 rxqual 0 ta 0 +meas-rep lchan 0 0 4 1 rxlev 31 rxqual 0 ta 0 +congestion-check +# FAIL: should still pick lchan 0 0 3 0! +expect-ho from lchan 0 0 4 1 to lchan 0 0 1 0 +expect-ts-use trx 0 0 states * TCH/F TCH/HH TCH/H- TCH/H- pdch - - -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21975 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Iabce1ab44b496833c19d999fc3f2903d835c357f Gerrit-Change-Number: 21975 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 22:28:47 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 5 Jan 2021 22:28:47 +0000 Subject: Change in osmo-bsc[master]: handover_test: add test_congestion_intra_vs_inter_cell.ho_vty References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21976 ) Change subject: handover_test: add test_congestion_intra_vs_inter_cell.ho_vty ...................................................................... handover_test: add test_congestion_intra_vs_inter_cell.ho_vty Related: SYS#5032 Change-Id: Ib5d7047328e1dadeae42b604a2f71771f0ac3152 --- M tests/handover/handover_tests.ok A tests/handover/test_congestion_intra_vs_inter_cell.ho_vty 2 files changed, 133 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/76/21976/1 diff --git a/tests/handover/handover_tests.ok b/tests/handover/handover_tests.ok index 8f53471..eab405d 100644 --- a/tests/handover/handover_tests.ok +++ b/tests/handover/handover_tests.ok @@ -10,6 +10,7 @@ pass test_balance_congestion_2.ho_vty pass test_congestion.ho_vty pass test_congestion_favor_best_target_rxlev.ho_vty +pass test_congestion_intra_vs_inter_cell.ho_vty pass test_disabled_ho_and_as.ho_vty pass test_dyn_ts_amr_tch_f_to_h_congestion_assignment.ho_vty pass test_dyn_ts_favor_half_used_tch_h_as_target.ho_vty diff --git a/tests/handover/test_congestion_intra_vs_inter_cell.ho_vty b/tests/handover/test_congestion_intra_vs_inter_cell.ho_vty new file mode 100644 index 0000000..f0f8e2a --- /dev/null +++ b/tests/handover/test_congestion_intra_vs_inter_cell.ho_vty @@ -0,0 +1,132 @@ +create-bts trx-count 1 timeslots c+s4 TCH/F TCH/F TCH/F TCH/F TCH/H TCH/H PDCH +create-bts trx-count 1 timeslots c+s4 TCH/F TCH/F TCH/F TCH/F TCH/H TCH/H PDCH + +network + handover2 min-free-slots tch/h 4 + +set-ts-use trx 0 0 states * - - - - TCH/H- TCH/H- * + +meas-rep lchan 0 0 5 0 rxlev 31 rxqual 0 ta 0 neighbors 20 +expect-no-chan +meas-rep lchan 0 0 6 0 rxlev 30 rxqual 0 ta 0 neighbors 20 +expect-no-chan + +congestion-check +# FAIL! moving to a weaker neighbor, should move to TCH/F in current cell instead. +# FAIL! should favor upgrading the weaker TS 6. +expect-ho from lchan 0 0 5 0 to lchan 1 0 1 0 +expect-ts-use trx 0 0 states * - - - - - TCH/H- * +expect-ts-use trx 1 0 states * TCH/F - - - - - * + +# clear measurements for next run +set-ts-use trx 0 0 states * - - - - - - * +set-ts-use trx 1 0 states * - - - - - - * + +set-ts-use trx 0 0 states * - - - - TCH/H- TCH/H- * +meas-rep lchan 0 0 5 0 rxlev 30 rxqual 0 ta 0 neighbors 20 +expect-no-chan +meas-rep lchan 0 0 6 0 rxlev 31 rxqual 0 ta 0 neighbors 20 +expect-no-chan + +congestion-check +# FAIL! moving to a weaker neighbor, should move to TCH/F in current cell instead. +expect-ho from lchan 0 0 5 0 to lchan 1 0 1 0 +expect-ts-use trx 0 0 states * - - - - - TCH/H- * +expect-ts-use trx 1 0 states * TCH/F - - - - - * + +# clear measurements for next run +set-ts-use trx 0 0 states * - - - - - - * +set-ts-use trx 1 0 states * - - - - - - * + +set-ts-use trx 0 0 states * - - - - TCH/H- TCH/H- * +meas-rep lchan 0 0 5 0 rxlev 30 rxqual 0 ta 0 neighbors 20 +expect-no-chan +meas-rep lchan 0 0 6 0 rxlev 31 rxqual 0 ta 0 neighbors 21 +expect-no-chan + +congestion-check +# FAIL! moving to a weaker neighbor, should move to TCH/F in current cell instead. +# FAIL! should favor upgrading the weaker TS 5. +expect-ho from lchan 0 0 6 0 to lchan 1 0 1 0 +expect-ts-use trx 0 0 states * - - - - TCH/H- - * +expect-ts-use trx 1 0 states * TCH/F - - - - - * + +# clear measurements for next run +set-ts-use trx 0 0 states * - - - - - - * +set-ts-use trx 1 0 states * - - - - - - * + +set-ts-use trx 0 0 states * - - - - TCH/H- TCH/H- * +meas-rep lchan 0 0 5 0 rxlev 30 rxqual 0 ta 0 neighbors 21 +expect-no-chan +meas-rep lchan 0 0 6 0 rxlev 31 rxqual 0 ta 0 neighbors 20 +expect-no-chan + +congestion-check +# FAIL! moving to a weaker neighbor, should move to TCH/F in current cell instead. +expect-ho from lchan 0 0 5 0 to lchan 1 0 1 0 +expect-ts-use trx 0 0 states * - - - - - TCH/H- * +expect-ts-use trx 1 0 states * TCH/F - - - - - * + +# clear measurements for next run +set-ts-use trx 0 0 states * - - - - - - * +set-ts-use trx 1 0 states * - - - - - - * + +set-ts-use trx 0 0 states * - - - - TCH/H- TCH/H- * +meas-rep lchan 0 0 5 0 rxlev 30 rxqual 0 ta 0 neighbors 30 +expect-no-chan +meas-rep lchan 0 0 6 0 rxlev 31 rxqual 0 ta 0 neighbors 31 +expect-no-chan + +congestion-check +# FAIL! moving to a weaker neighbor, should move to TCH/F in current cell instead. +# FAIL! should favor upgrading the weaker TS 5. +expect-ho from lchan 0 0 6 0 to lchan 1 0 1 0 +expect-ts-use trx 0 0 states * - - - - TCH/H- - * +expect-ts-use trx 1 0 states * TCH/F - - - - - * + +# clear measurements for next run +set-ts-use trx 0 0 states * - - - - - - * +set-ts-use trx 1 0 states * - - - - - - * + +set-ts-use trx 0 0 states * - - - - TCH/H- TCH/H- * +meas-rep lchan 0 0 5 0 rxlev 31 rxqual 0 ta 0 neighbors 31 +expect-no-chan +meas-rep lchan 0 0 6 0 rxlev 30 rxqual 0 ta 0 neighbors 30 +expect-no-chan + +congestion-check +# FAIL! moving to a weaker neighbor, should move to TCH/F in current cell instead. +# FAIL! should favor upgrading the weaker TS 6. +expect-ho from lchan 0 0 5 0 to lchan 1 0 1 0 +expect-ts-use trx 0 0 states * - - - - - TCH/H- * +expect-ts-use trx 1 0 states * TCH/F - - - - - * + +# clear measurements for next run +set-ts-use trx 0 0 states * - - - - - - * +set-ts-use trx 1 0 states * - - - - - - * + +set-ts-use trx 0 0 states * - - - - TCH/H- TCH/H- * +meas-rep lchan 0 0 5 0 rxlev 30 rxqual 0 ta 0 neighbors 31 +expect-no-chan +meas-rep lchan 0 0 6 0 rxlev 31 rxqual 0 ta 0 neighbors 30 +expect-no-chan + +congestion-check +expect-ho from lchan 0 0 5 0 to lchan 1 0 1 0 +expect-ts-use trx 0 0 states * - - - - - TCH/H- * +expect-ts-use trx 1 0 states * TCH/F - - - - - * + +# clear measurements for next run +set-ts-use trx 0 0 states * - - - - - - * +set-ts-use trx 1 0 states * - - - - - - * + +set-ts-use trx 0 0 states * - - - - TCH/H- TCH/H- * +meas-rep lchan 0 0 5 0 rxlev 31 rxqual 0 ta 0 neighbors 30 +expect-no-chan +meas-rep lchan 0 0 6 0 rxlev 30 rxqual 0 ta 0 neighbors 31 +expect-no-chan + +congestion-check +expect-ho from lchan 0 0 6 0 to lchan 1 0 1 0 +expect-ts-use trx 0 0 states * - - - - TCH/H- - * +expect-ts-use trx 1 0 states * TCH/F - - - - - * -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21976 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ib5d7047328e1dadeae42b604a2f71771f0ac3152 Gerrit-Change-Number: 21976 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 22:28:47 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 5 Jan 2021 22:28:47 +0000 Subject: Change in osmo-bsc[master]: hodec2: clarify current and target rxlev per candidate References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21977 ) Change subject: hodec2: clarify current and target rxlev per candidate ...................................................................... hodec2: clarify current and target rxlev per candidate Store the rxlev of the current lchan and the target BTS in the ho_candidate, to clarify the code. No functional change, cosmetically prepare for I2704899c85c35dfd4eba43468452483f40016ca2. Change-Id: Ie6c165e17bb3c99eebc967a6bb02529db8bdfc98 --- M src/osmo-bsc/handover_decision_2.c 1 file changed, 51 insertions(+), 48 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/77/21977/1 diff --git a/src/osmo-bsc/handover_decision_2.c b/src/osmo-bsc/handover_decision_2.c index 7854f09..ae9435f 100644 --- a/src/osmo-bsc/handover_decision_2.c +++ b/src/osmo-bsc/handover_decision_2.c @@ -104,7 +104,8 @@ struct gsm_bts *bts; /* target BTS in local BSS */ const struct gsm0808_cell_id_list2 *cil; /* target cells in remote BSS */ uint8_t requirements; /* what is fulfilled */ - int avg; /* average RX level */ + int rxlev_current; + int rxlev_target; }; enum ho_reason { @@ -236,6 +237,15 @@ return NULL; } +static int current_rxlev(struct gsm_lchan *lchan) +{ + struct gsm_bts *bts = lchan->ts->trx->bts; + return get_meas_rep_avg(lchan, + ho_get_hodec2_full_tdma(bts->ho) ? + MEAS_REP_DL_RXLEV_FULL : MEAS_REP_DL_RXLEV_SUB, + ho_get_hodec2_rxlev_avg_win(bts->ho)); +} + /* obtain averaged rxlev for given neighbor */ static int neigh_meas_avg(struct neigh_meas_proc *nmp, int window) { @@ -814,7 +824,7 @@ /* verbosely log about a handover candidate */ static inline void debug_candidate(struct ho_candidate *candidate, - int8_t rxlev, int tchf_count, int tchh_count) + int tchf_count, int tchh_count) { struct gsm_lchan *lchan = candidate->lchan; @@ -831,25 +841,25 @@ if (candidate->cil) LOGPHOLCHANTOREMOTE(lchan, candidate->cil, LOGL_DEBUG, "RX level %d dBm -> %d dBm\n", - rxlev2dbm(rxlev), rxlev2dbm(candidate->avg)); + rxlev2dbm(candidate->rxlev_current), rxlev2dbm(candidate->rxlev_target)); if (candidate->bts == lchan->ts->trx->bts) LOGPHOLCHANTOBTS(lchan, candidate->bts, LOGL_DEBUG, "RX level %d dBm; " HO_CANDIDATE_FMT(f, F) "; " HO_CANDIDATE_FMT(h, H) "\n", - rxlev2dbm(candidate->avg), + rxlev2dbm(candidate->rxlev_current), HO_CANDIDATE_ARGS(f, F), HO_CANDIDATE_ARGS(h, H)); else if (candidate->bts) LOGPHOLCHANTOBTS(lchan, candidate->bts, LOGL_DEBUG, "RX level %d dBm -> %d dBm; " HO_CANDIDATE_FMT(f, F) "; " HO_CANDIDATE_FMT(h, H) "\n", - rxlev2dbm(rxlev), rxlev2dbm(candidate->avg), + rxlev2dbm(candidate->rxlev_current), rxlev2dbm(candidate->rxlev_target), HO_CANDIDATE_ARGS(f, F), HO_CANDIDATE_ARGS(h, H)); } /* add candidate for re-assignment within the current cell */ static void collect_assignment_candidate(struct gsm_lchan *lchan, struct ho_candidate *clist, - unsigned int *candidates, int av_rxlev) + unsigned int *candidates, int rxlev_current) { struct gsm_bts *bts = lchan->ts->trx->bts; int tchf_count, tchh_count; @@ -862,10 +872,11 @@ .lchan = lchan, .bts = bts, .requirements = check_requirements(lchan, bts, tchf_count, tchh_count), - .avg = av_rxlev, + .rxlev_current = rxlev_current, + .rxlev_target = rxlev_current, /* same cell, same rxlev */ }; - debug_candidate(&c, 0, tchf_count, tchh_count); + debug_candidate(&c, tchf_count, tchh_count); if (!c.requirements) return; @@ -877,7 +888,7 @@ /* add candidates for handover to all neighbor cells */ static void collect_handover_candidate(struct gsm_lchan *lchan, struct neigh_meas_proc *nmp, struct ho_candidate *clist, unsigned int *candidates, - bool include_weaker_rxlev, int av_rxlev, + bool include_weaker_rxlev, int rxlev_current, int *neighbors_count) { struct gsm_bts *bts = lchan->ts->trx->bts; @@ -890,7 +901,6 @@ .arfcn = nmp->arfcn, .bsic = nmp->bsic, }; - int avg; struct ho_candidate c; int min_rxlev; struct handover_cfg *neigh_cfg; @@ -929,27 +939,25 @@ * instead assume the local BTS' config to apply. */ neigh_cfg = (neighbor_bts ? : bts)->ho; - /* calculate average rxlev for this cell over the window */ - avg = neigh_meas_avg(nmp, ho_get_hodec2_rxlev_neigh_avg_win(bts->ho)); - c = (struct ho_candidate){ .lchan = lchan, - .avg = avg, .nik = ni, .bts = neighbor_bts, .cil = neighbor_cil, + .rxlev_current = rxlev_current, + .rxlev_target = neigh_meas_avg(nmp, ho_get_hodec2_rxlev_neigh_avg_win(bts->ho)), }; /* Heed rxlev hysteresis only if the RXLEV/RXQUAL/TA levels of the MS aren't critically bad and * we're just looking for an improvement. If levels are critical, we desperately need a handover * and thus skip the hysteresis check. */ if (!include_weaker_rxlev) { - unsigned int pwr_hyst = ho_get_hodec2_pwr_hysteresis(bts->ho); - if (avg <= (av_rxlev + pwr_hyst)) { + int pwr_hyst = ho_get_hodec2_pwr_hysteresis(bts->ho); + if ((c.rxlev_target - c.rxlev_current) <= pwr_hyst) { LOGPHOCAND(&c, LOGL_DEBUG, "Not a candidate, because RX level (%d dBm) is lower" " or equal than current RX level (%d dBm) + hysteresis (%d)\n", - rxlev2dbm(avg), rxlev2dbm(av_rxlev), pwr_hyst); + rxlev2dbm(c.rxlev_target), rxlev2dbm(c.rxlev_current), pwr_hyst); return; } } @@ -957,11 +965,11 @@ /* if the minimum level is not reached. * In case of a remote-BSS, use the current BTS' configuration. */ min_rxlev = ho_get_hodec2_min_rxlev(neigh_cfg); - if (rxlev2dbm(avg) < min_rxlev) { + if (rxlev2dbm(c.rxlev_target) < min_rxlev) { LOGPHOCAND(&c, LOGL_DEBUG, "Not a candidate, because RX level (%d dBm) is lower" " than the minimum required RX level (%d dBm)\n", - rxlev2dbm(avg), min_rxlev); + rxlev2dbm(c.rxlev_target), min_rxlev); return; } @@ -973,7 +981,7 @@ } else c.requirements = check_requirements_remote_bss(lchan, neighbor_cil); - debug_candidate(&c, av_rxlev, tchf_count, tchh_count); + debug_candidate(&c, tchf_count, tchh_count); if (!c.requirements) return; @@ -984,30 +992,25 @@ static void collect_candidates_for_lchan(struct gsm_lchan *lchan, struct ho_candidate *clist, unsigned int *candidates, - int *_av_rxlev, bool include_weaker_rxlev) + int *_rxlev_current, bool include_weaker_rxlev) { struct gsm_bts *bts = lchan->ts->trx->bts; - int av_rxlev; + int rxlev_current; bool assignment; bool handover; int neighbors_count = 0; - unsigned int rxlev_avg_win = ho_get_hodec2_rxlev_avg_win(bts->ho); OSMO_ASSERT(candidates); - /* calculate average rxlev for this cell over the window */ - av_rxlev = get_meas_rep_avg(lchan, - ho_get_hodec2_full_tdma(bts->ho) ? - MEAS_REP_DL_RXLEV_FULL : MEAS_REP_DL_RXLEV_SUB, - rxlev_avg_win); - if (_av_rxlev) - *_av_rxlev = av_rxlev; + rxlev_current = current_rxlev(lchan); + if (_rxlev_current) + *_rxlev_current = rxlev_current; /* in case there is no measurement report (yet) */ - if (av_rxlev < 0) { + if (rxlev_current < 0) { LOGPHOLCHAN(lchan, LOGL_DEBUG, "Not collecting candidates, not enough measurements" " (got %d, want %u)\n", - lchan->meas_rep_count, rxlev_avg_win); + lchan->meas_rep_count, ho_get_hodec2_rxlev_avg_win(bts->ho)); return; } @@ -1015,14 +1018,14 @@ handover = ho_get_ho_active(bts->ho); if (assignment) - collect_assignment_candidate(lchan, clist, candidates, av_rxlev); + collect_assignment_candidate(lchan, clist, candidates, rxlev_current); if (handover) { int i; for (i = 0; i < ARRAY_SIZE(lchan->neigh_meas); i++) { collect_handover_candidate(lchan, &lchan->neigh_meas[i], clist, candidates, - include_weaker_rxlev, av_rxlev, &neighbors_count); + include_weaker_rxlev, rxlev_current, &neighbors_count); } } } @@ -1083,7 +1086,7 @@ struct gsm_bts *bts = lchan->ts->trx->bts; int ahs = (lchan->tch_mode == GSM48_CMODE_SPEECH_AMR && lchan->type == GSM_LCHAN_TCH_H); - int av_rxlev; + int rxlev_current; struct ho_candidate clist[1 + ARRAY_SIZE(lchan->neigh_meas)]; unsigned int candidates = 0; int i; @@ -1099,7 +1102,7 @@ return 0; } - collect_candidates_for_lchan(lchan, clist, &candidates, &av_rxlev, include_weaker_rxlev); + collect_candidates_for_lchan(lchan, clist, &candidates, &rxlev_current, include_weaker_rxlev); /* If assignment is disabled and no neighbor cell report exists, or no neighbor cell qualifies, * we may not even have any candidates. */ @@ -1121,7 +1124,7 @@ if (!clist[i].bts) continue; - better = clist[i].avg - av_rxlev; + better = clist[i].rxlev_target - clist[i].rxlev_current; /* Apply AFS bias? */ afs_bias = 0; if (ahs && (clist[i].requirements & REQUIREMENT_B_TCHF)) @@ -1137,7 +1140,7 @@ /* perform handover, if there is a candidate */ if (best_cand) { LOGPHOCAND(best_cand, LOGL_INFO, "Best candidate, RX level %d%s\n", - rxlev2dbm(best_cand->avg), + rxlev2dbm(best_cand->rxlev_target), best_applied_afs_bias ? " (applied AHS -> AFS rxlev bias)" : ""); return trigger_ho(best_cand, best_cand->requirements & REQUIREMENT_B_MASK); } @@ -1154,7 +1157,7 @@ if (!clist[i].bts) continue; - better = clist[i].avg - av_rxlev; + better = clist[i].rxlev_target - clist[i].rxlev_current; /* Apply AFS bias? */ afs_bias = 0; if (ahs && (clist[i].requirements & REQUIREMENT_C_TCHF)) @@ -1170,7 +1173,7 @@ /* perform handover, if there is a candidate */ if (best_cand) { LOGPHOCAND(best_cand, LOGL_INFO, "Best candidate, RX level %d%s\n", - rxlev2dbm(best_cand->avg), + rxlev2dbm(best_cand->rxlev_target), best_applied_afs_bias? " (applied AHS -> AFS rxlev bias)" : ""); return trigger_ho(best_cand, best_cand->requirements & REQUIREMENT_C_MASK); } @@ -1191,7 +1194,7 @@ if (!(clist[i].requirements & REQUIREMENT_A_MASK)) continue; - better = clist[i].avg - av_rxlev; + better = clist[i].rxlev_target - clist[i].rxlev_current; /* Apply AFS bias? * (never to remote-BSS neighbors, since we will not change the lchan type for those.) */ afs_bias = 0; @@ -1209,7 +1212,7 @@ /* perform handover, if there is a candidate */ if (best_cand) { LOGPHOCAND(best_cand, LOGL_INFO, "Best candidate: RX level %d%s\n", - rxlev2dbm(best_cand->avg), + rxlev2dbm(best_cand->rxlev_target), best_applied_afs_bias ? " (applied AHS -> AFS rxlev bias)" : ""); return trigger_ho(best_cand, best_cand->requirements & REQUIREMENT_A_MASK); } @@ -1475,7 +1478,7 @@ && (intra_cell && upgrade_to_tch_f)) continue; - avg_rxlev = c->avg; + avg_rxlev = c->rxlev_target; /* improve AHS */ if (upgrade_to_tch_f) @@ -1639,7 +1642,7 @@ LOGPHOCAND(&clist[i], LOGL_DEBUG, "#%d: req={TCH/F:" REQUIREMENTS_FMT ", TCH/H:" REQUIREMENTS_FMT "} avg-rxlev=%d dBm\n", i, REQUIREMENTS_ARGS(clist[i].requirements, F), REQUIREMENTS_ARGS(clist[i].requirements, H), - rxlev2dbm(clist[i].avg)); + rxlev2dbm(clist[i].rxlev_target)); } } @@ -1662,7 +1665,7 @@ if (best_cand) { any_ho = 1; LOGPHOCAND(best_cand, LOGL_DEBUG, "Best candidate: RX level %d%s\n", - rxlev2dbm(best_cand->avg), + rxlev2dbm(best_cand->rxlev_target), is_improved ? " (applied AHS->AFS bias)" : ""); trigger_ho(best_cand, best_cand->requirements & REQUIREMENT_B_MASK); #if 0 @@ -1703,7 +1706,7 @@ if (best_cand) { any_ho = 1; LOGPHOCAND(best_cand, LOGL_INFO, "Worst candidate: RX level %d from TCH/H -> TCH/F%s\n", - rxlev2dbm(best_cand->avg), + rxlev2dbm(best_cand->rxlev_target), is_improved ? " (applied AHS -> AFS rxlev bias)" : ""); trigger_ho(best_cand, best_cand->requirements & REQUIREMENT_B_MASK); #if 0 @@ -1738,7 +1741,7 @@ if (best_cand) { any_ho = 1; LOGPHOCAND(best_cand, LOGL_INFO, "Best candidate: RX level %d%s\n", - rxlev2dbm(best_cand->avg), + rxlev2dbm(best_cand->rxlev_target), is_improved ? " (applied AHS -> AFS rxlev bias)" : ""); trigger_ho(best_cand, best_cand->requirements & REQUIREMENT_C_MASK); #if 0 @@ -1781,7 +1784,7 @@ if (best_cand) { any_ho = 1; LOGPHOCAND(best_cand, LOGL_INFO, "Worst candidate: RX level %d from TCH/H -> TCH/F%s\n", - rxlev2dbm(best_cand->avg), + rxlev2dbm(best_cand->rxlev_target), is_improved ? " (applied AHS -> AFS rxlev bias)" : ""); trigger_ho(best_cand, best_cand->requirements & REQUIREMENT_C_MASK); #if 0 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21977 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ie6c165e17bb3c99eebc967a6bb02529db8bdfc98 Gerrit-Change-Number: 21977 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 22:28:48 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 5 Jan 2021 22:28:48 +0000 Subject: Change in osmo-bsc[master]: hodec2: cosmetic: clarify afs_bias, simplify pick_better_lchan_to_move() References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21978 ) Change subject: hodec2: cosmetic: clarify afs_bias, simplify pick_better_lchan_to_move() ...................................................................... hodec2: cosmetic: clarify afs_bias, simplify pick_better_lchan_to_move() Instead of passing the TCH/H -> TCH/F bias (AFS bias) in local variables, rather store it in the ho_candidate struct next to the other rxlev related values. Add the AFS bias to the compared rxlev in pick_better_lchan_to_move(). Modify pick_better_lchan_to_move() to simpler semantics of returning either a or b. No functional change. Change-Id: I73860abdf2a77270ca4851ad58c09767d1bb08f1 --- M src/osmo-bsc/handover_decision_2.c 1 file changed, 36 insertions(+), 50 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/78/21978/1 diff --git a/src/osmo-bsc/handover_decision_2.c b/src/osmo-bsc/handover_decision_2.c index ae9435f..eb72e11 100644 --- a/src/osmo-bsc/handover_decision_2.c +++ b/src/osmo-bsc/handover_decision_2.c @@ -106,6 +106,7 @@ uint8_t requirements; /* what is fulfilled */ int rxlev_current; int rxlev_target; + int rxlev_afs_bias; }; enum ho_reason { @@ -1398,63 +1399,55 @@ /* Given two candidates, pick the one that should rather be moved during handover. * Return the better candidate in out-parameters best_cand and best_avg_db. */ -static bool pick_better_lchan_to_move(bool want_highest_db, - struct ho_candidate **best_cand_p, unsigned int *best_avg_db_p, - struct ho_candidate *other_cand, unsigned int other_avg_db) +static struct ho_candidate *pick_better_lchan_to_move(bool want_highest_db, + struct ho_candidate *a, + struct ho_candidate *b) { - if (!*best_cand_p) - goto return_other; + int a_rxlev; + int b_rxlev; - if (want_highest_db && (*best_avg_db_p < other_avg_db)) - goto return_other; - if (!want_highest_db && (*best_avg_db_p > other_avg_db)) - goto return_other; + if (!a) + return b; + if (!b) + return a; + + a_rxlev = a->rxlev_target + a->rxlev_afs_bias; + b_rxlev = b->rxlev_target + b->rxlev_afs_bias; + + if (want_highest_db && a_rxlev < b_rxlev) + return b; + if (!want_highest_db && a_rxlev > b_rxlev) + return b; /* The two lchans have identical ratings, prefer picking a dynamic timeslot: free PDCH and allow more timeslot * type flexibility for further congestion resolution. */ - if (lchan_is_on_dynamic_ts(other_cand->lchan)) { + if (lchan_is_on_dynamic_ts(b->lchan)) { /* If both are dynamic, prefer one that completely (or to a higher degree) frees its timeslot. */ - if (lchan_is_on_dynamic_ts((*best_cand_p)->lchan) - && ts_usage_count((*best_cand_p)->lchan->ts) < ts_usage_count(other_cand->lchan->ts)) - return false; + if (lchan_is_on_dynamic_ts(a->lchan) + && ts_usage_count(a->lchan->ts) < ts_usage_count(b->lchan->ts)) + return a; /* If both equally satisfy these preferences, it does not matter which one is picked. * Give slight preference to moving later dyn TS, so that a free dyn TS may group with following static * PDCH, though this depends on how the user configured the TS -- not harmful to do so anyway. */ - goto return_other; + return b; } - /* keep the same candidate. */ - return false; - -return_other: - *best_cand_p = other_cand; - *best_avg_db_p = other_avg_db; - return true; + return a; } -static struct ho_candidate *pick_best_candidate(int *applied_afs_bias, - struct ho_candidate *clist, int clist_len, +static struct ho_candidate *pick_best_candidate(struct ho_candidate *clist, int clist_len, bool want_highest_db, bool omit_intra_cell_upgrade_to_tchf, bool only_intra_cell_upgrade_to_tchf, uint8_t for_requirement) { struct ho_candidate *result = NULL; - unsigned int result_avg_rxlev; - int result_afs_bias = 0; int i; - if (applied_afs_bias) - *applied_afs_bias = 0; - - result_avg_rxlev = want_highest_db ? 0 : INT_MAX; - for (i = 0; i < clist_len; i++) { struct ho_candidate *c = &clist[i]; bool intra_cell; bool upgrade_to_tch_f; - int avg_rxlev; - int afs_bias; /* For multiple passes of congestion resolution, already handovered candidates are marked by lchan = * NULL. (though at the time of writing, multiple passes of congestion resolution are DISABLED.) */ @@ -1478,21 +1471,15 @@ && (intra_cell && upgrade_to_tch_f)) continue; - avg_rxlev = c->rxlev_target; - /* improve AHS */ if (upgrade_to_tch_f) - afs_bias = ho_get_hodec2_afs_bias_rxlev(c->bts->ho); + c->rxlev_afs_bias = ho_get_hodec2_afs_bias_rxlev(c->bts->ho); else - afs_bias = 0; - avg_rxlev += afs_bias; + c->rxlev_afs_bias = 0; - if (pick_better_lchan_to_move(want_highest_db, &result, &result_avg_rxlev, c, avg_rxlev)) - result_afs_bias = afs_bias; + result = pick_better_lchan_to_move(want_highest_db, result, c); } - if (applied_afs_bias) - *applied_afs_bias = result_afs_bias; return result; } @@ -1556,7 +1543,6 @@ struct ho_candidate *best_cand = NULL; int rc = 0; int any_ho = 0; - int is_improved = 0; if (tchf_congestion < 0) tchf_congestion = 0; @@ -1657,7 +1643,7 @@ /* TODO: attempt inter-BSC HO if no local cells qualify, and rely on the remote BSS to * deny receiving the handover if it also considers itself congested. Maybe do that only * when the cell is absolutely full, i.e. not only min-free-slots. (x) */ - best_cand = pick_best_candidate(&is_improved, clist, candidates, + best_cand = pick_best_candidate(clist, candidates, /* want_highest_db */ true, /* omit_intra_cell_upgrade_to_tchf */ true, /* only_intra_cell_upgrade_to_tchf */ false, @@ -1666,7 +1652,7 @@ any_ho = 1; LOGPHOCAND(best_cand, LOGL_DEBUG, "Best candidate: RX level %d%s\n", rxlev2dbm(best_cand->rxlev_target), - is_improved ? " (applied AHS->AFS bias)" : ""); + best_cand->rxlev_afs_bias ? " (applied AHS->AFS bias)" : ""); trigger_ho(best_cand, best_cand->requirements & REQUIREMENT_B_MASK); #if 0 /* if there is still congestion, mark lchan as deleted @@ -1698,7 +1684,7 @@ * but simply pick the lowest one. * Upgrading TCH/H channels obviously only applies when TCH/H is actually congested. */ if (tchh_congestion > 0) - best_cand = pick_best_candidate(&is_improved, clist, candidates, + best_cand = pick_best_candidate(clist, candidates, /* want_highest_db */ false, /* omit_intra_cell_upgrade_to_tchf */ false, /* only_intra_cell_upgrade_to_tchf */ true, @@ -1707,7 +1693,7 @@ any_ho = 1; LOGPHOCAND(best_cand, LOGL_INFO, "Worst candidate: RX level %d from TCH/H -> TCH/F%s\n", rxlev2dbm(best_cand->rxlev_target), - is_improved ? " (applied AHS -> AFS rxlev bias)" : ""); + best_cand->rxlev_afs_bias ? " (applied AHS -> AFS rxlev bias)" : ""); trigger_ho(best_cand, best_cand->requirements & REQUIREMENT_B_MASK); #if 0 /* if there is still congestion, mark lchan as deleted @@ -1733,7 +1719,7 @@ /* Select best candidate that balances congestion. * Again no remote BSS. * Again no TCH/H -> F upgrades within the same cell. */ - best_cand = pick_best_candidate(&is_improved, clist, candidates, + best_cand = pick_best_candidate(clist, candidates, /* want_highest_db */ true, /* omit_intra_cell_upgrade_to_tchf */ true, /* only_intra_cell_upgrade_to_tchf */ false, @@ -1742,7 +1728,7 @@ any_ho = 1; LOGPHOCAND(best_cand, LOGL_INFO, "Best candidate: RX level %d%s\n", rxlev2dbm(best_cand->rxlev_target), - is_improved ? " (applied AHS -> AFS rxlev bias)" : ""); + best_cand->rxlev_afs_bias ? " (applied AHS -> AFS rxlev bias)" : ""); trigger_ho(best_cand, best_cand->requirements & REQUIREMENT_C_MASK); #if 0 /* if there is still congestion, mark lchan as deleted @@ -1774,7 +1760,7 @@ /* Look for upgrading TCH/H to TCH/F within the same cell, which balances congestion, again upgrade the TCH/H * lchan that has the worst reception: */ if (tchh_congestion > 0) - best_cand = pick_best_candidate(&is_improved, clist, candidates, + best_cand = pick_best_candidate(clist, candidates, /* want_highest_db */ false, /* omit_intra_cell_upgrade_to_tchf */ false, /* only_intra_cell_upgrade_to_tchf */ true, @@ -1785,7 +1771,7 @@ any_ho = 1; LOGPHOCAND(best_cand, LOGL_INFO, "Worst candidate: RX level %d from TCH/H -> TCH/F%s\n", rxlev2dbm(best_cand->rxlev_target), - is_improved ? " (applied AHS -> AFS rxlev bias)" : ""); + best_cand->rxlev_afs_bias ? " (applied AHS -> AFS rxlev bias)" : ""); trigger_ho(best_cand, best_cand->requirements & REQUIREMENT_C_MASK); #if 0 /* if there is still congestion, mark lchan as deleted -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21978 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I73860abdf2a77270ca4851ad58c09767d1bb08f1 Gerrit-Change-Number: 21978 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 22:28:49 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 5 Jan 2021 22:28:49 +0000 Subject: Change in osmo-bsc[master]: hodec2: fix candidate choices in congestion check References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21979 ) Change subject: hodec2: fix candidate choices in congestion check ...................................................................... hodec2: fix candidate choices in congestion check Fix flaws in picking a candidate for congestion resolution, shown in recently added tests. - For TCH/H->TCH/F upgrading, do not favor moving to a weaker neighbor cell. - When comparing dynamic timeslots on the same cell, favor a dynamic timeslot that frees an entire dyn TS even though the target rxlev differs. Do not separate the passes for inter-cell and intra-cell candidates: before, the inter-cell pass would already pick a candidate and start handover, even though the subsequent intra-cell pass would have revealed a better candidate. Join the intra-cell considerations into pick_better_lchan_to_move(). The intra-cell pass was separate, because it would find the *weakest* current rxlev, to give a TCH/H to TCH/F upgrade to the currently weakest lchan. Instead of the separate pass for weakest rxlev, in addition to the target cell's rxlev, also consider the rxlev *change* in pick_better_lchan_to_move(): For candidates that do not change the rxlev (usually those that stay in the same cell) and that upgrade to TCH/F, favor a candidate with weaker current rxlev. Completely revisit the conditions in pick_better_lchan_to_move() to yield the desired prioritization of candidate preferences. In three handover tests, remove the "FAIL" comments and adjust to now expect the actually desired behavior. Related: SYS#5032 Change-Id: I2704899c85c35dfd4eba43468452483f40016ca2 --- M src/osmo-bsc/handover_decision_2.c M tests/handover/test_amr_tch_h_to_f_congestion_two_cells.ho_vty M tests/handover/test_congestion_intra_vs_inter_cell.ho_vty M tests/handover/test_dyn_ts_favor_moving_half_used_tch_h.ho_vty 4 files changed, 81 insertions(+), 169 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/79/21979/1 diff --git a/src/osmo-bsc/handover_decision_2.c b/src/osmo-bsc/handover_decision_2.c index eb72e11..1ab92f5 100644 --- a/src/osmo-bsc/handover_decision_2.c +++ b/src/osmo-bsc/handover_decision_2.c @@ -1384,11 +1384,6 @@ return count; } -static bool is_intra_cell(const struct ho_candidate *c) -{ - return c->bts && (c->lchan->ts->trx->bts == c->bts); -} - static bool is_upgrade_to_tchf(const struct ho_candidate *c, uint8_t for_requirement) { return c->lchan @@ -1399,46 +1394,78 @@ /* Given two candidates, pick the one that should rather be moved during handover. * Return the better candidate in out-parameters best_cand and best_avg_db. */ -static struct ho_candidate *pick_better_lchan_to_move(bool want_highest_db, - struct ho_candidate *a, - struct ho_candidate *b) +static struct ho_candidate *pick_better_lchan_to_move(struct ho_candidate *a, + struct ho_candidate *b, + uint8_t for_requirement) { - int a_rxlev; - int b_rxlev; + int a_rxlev_change; + int b_rxlev_change; + struct ho_candidate *ret = a; if (!a) return b; if (!b) return a; - a_rxlev = a->rxlev_target + a->rxlev_afs_bias; - b_rxlev = b->rxlev_target + b->rxlev_afs_bias; + a_rxlev_change = a->rxlev_target - a->rxlev_current; + b_rxlev_change = b->rxlev_target - b->rxlev_current; - if (want_highest_db && a_rxlev < b_rxlev) - return b; - if (!want_highest_db && a_rxlev > b_rxlev) + /* Typically, a congestion related handover reduces RXLEV. If there is a candidate that actually improves RXLEV, + * prefer that, because it pre-empts a likely handover due to measurement results later. Also favor unchanged + * RXLEV over a loss of RXLEV (favor staying within the same cell over moving to a worse cell). */ + if (a_rxlev_change >= 0 && a_rxlev_change > b_rxlev_change) + return a; + if (b_rxlev_change >= 0 && b_rxlev_change > a_rxlev_change) return b; - /* The two lchans have identical ratings, prefer picking a dynamic timeslot: free PDCH and allow more timeslot - * type flexibility for further congestion resolution. */ - if (lchan_is_on_dynamic_ts(b->lchan)) { - /* If both are dynamic, prefer one that completely (or to a higher degree) frees its timeslot. */ - if (lchan_is_on_dynamic_ts(a->lchan) - && ts_usage_count(a->lchan->ts) < ts_usage_count(b->lchan->ts)) + if (a_rxlev_change < 0 && b_rxlev_change < 0) { + /* For handover that reduces RXLEV, favor the highest resulting RXLEV, AFS bias applied. */ + int a_rxlev = a->rxlev_target + a->rxlev_afs_bias; + int b_rxlev = b->rxlev_target + b->rxlev_afs_bias; + + if (a_rxlev > b_rxlev) return a; - /* If both equally satisfy these preferences, it does not matter which one is picked. - * Give slight preference to moving later dyn TS, so that a free dyn TS may group with following static - * PDCH, though this depends on how the user configured the TS -- not harmful to do so anyway. */ - return b; + if (b_rxlev > a_rxlev) + return b; + /* There is no target RXLEV difference between the two candidates. Let other factors influence the + * choice. */ } - return a; + /* Prefer picking a dynamic timeslot: free PDCH and allow more timeslot type flexibility for further + * congestion resolution. */ + if (lchan_is_on_dynamic_ts(b->lchan)) { + unsigned int ac, bc; + + if (!lchan_is_on_dynamic_ts(a->lchan)) + return b; + + /* Both are dynamic timeslots. Prefer one that completely (or to a higher degree) frees its + * timeslot. */ + ac = ts_usage_count(a->lchan->ts); + bc = ts_usage_count(b->lchan->ts); + if (bc < ac) + return b; + if (ac < bc) + return a; + /* (If both are dynamic timeslots, favor moving the later dynamic timeslot. That is a vague preference + * for later dynamic TS to become PDCH and join up with plain PDCH that follow it -- not actually clear + * whether that helps, and depends on user's TS config. No harm done either way.) */ + ret = b; + } + + /* When upgrading TCH/H to TCH/F, favor moving a TCH/H with lower current rxlev, because presumably that + * one benefits more from a higher bandwidth. */ + if (is_upgrade_to_tchf(a, for_requirement) && is_upgrade_to_tchf(b, for_requirement)) { + if (b->rxlev_current < a->rxlev_current) + return b; + if (a->rxlev_current < b->rxlev_current) + return a; + } + + return ret; } static struct ho_candidate *pick_best_candidate(struct ho_candidate *clist, int clist_len, - bool want_highest_db, - bool omit_intra_cell_upgrade_to_tchf, - bool only_intra_cell_upgrade_to_tchf, uint8_t for_requirement) { struct ho_candidate *result = NULL; @@ -1446,8 +1473,6 @@ for (i = 0; i < clist_len; i++) { struct ho_candidate *c = &clist[i]; - bool intra_cell; - bool upgrade_to_tch_f; /* For multiple passes of congestion resolution, already handovered candidates are marked by lchan = * NULL. (though at the time of writing, multiple passes of congestion resolution are DISABLED.) */ @@ -1461,23 +1486,13 @@ if (!(c->requirements & for_requirement)) continue; - intra_cell = is_intra_cell(c); - upgrade_to_tch_f = is_upgrade_to_tchf(c, for_requirement); - - if (only_intra_cell_upgrade_to_tchf - && !(intra_cell && upgrade_to_tch_f)) - continue; - if (omit_intra_cell_upgrade_to_tchf - && (intra_cell && upgrade_to_tch_f)) - continue; - /* improve AHS */ - if (upgrade_to_tch_f) + if (is_upgrade_to_tchf(c, for_requirement)) c->rxlev_afs_bias = ho_get_hodec2_afs_bias_rxlev(c->bts->ho); else c->rxlev_afs_bias = 0; - result = pick_better_lchan_to_move(want_highest_db, result, c); + result = pick_better_lchan_to_move(result, c, for_requirement); } return result; @@ -1643,11 +1658,7 @@ /* TODO: attempt inter-BSC HO if no local cells qualify, and rely on the remote BSS to * deny receiving the handover if it also considers itself congested. Maybe do that only * when the cell is absolutely full, i.e. not only min-free-slots. (x) */ - best_cand = pick_best_candidate(clist, candidates, - /* want_highest_db */ true, - /* omit_intra_cell_upgrade_to_tchf */ true, - /* only_intra_cell_upgrade_to_tchf */ false, - REQUIREMENT_B_MASK); + best_cand = pick_best_candidate(clist, candidates, REQUIREMENT_B_MASK); if (best_cand) { any_ho = 1; LOGPHOCAND(best_cand, LOGL_DEBUG, "Best candidate: RX level %d%s\n", @@ -1676,54 +1687,12 @@ } #if 0 -next_b2: -#endif - /* For upgrading TCH/H to TCH/F within the same cell, we want to pick the *lowest* average rxlev: for staying - * within the same cell, give the MS with the worst service more bandwidth. When staying within the same cell, - * the target avg rxlev is identical to the source lchan rxlev, so it is fine to use the same avg rxlev value, - * but simply pick the lowest one. - * Upgrading TCH/H channels obviously only applies when TCH/H is actually congested. */ - if (tchh_congestion > 0) - best_cand = pick_best_candidate(clist, candidates, - /* want_highest_db */ false, - /* omit_intra_cell_upgrade_to_tchf */ false, - /* only_intra_cell_upgrade_to_tchf */ true, - REQUIREMENT_B_MASK); - if (best_cand) { - any_ho = 1; - LOGPHOCAND(best_cand, LOGL_INFO, "Worst candidate: RX level %d from TCH/H -> TCH/F%s\n", - rxlev2dbm(best_cand->rxlev_target), - best_cand->rxlev_afs_bias ? " (applied AHS -> AFS rxlev bias)" : ""); - trigger_ho(best_cand, best_cand->requirements & REQUIREMENT_B_MASK); -#if 0 - /* if there is still congestion, mark lchan as deleted - * and redo this process */ - tchh_congestion--; - if (tchh_congestion > 0) { - delete_lchan = best_cand->lchan; - best_cand = NULL; - goto next_b2; - } -#else - /* must exit here, because triggering handover/assignment - * will cause change in requirements. more check for this - * bts is performed in the next iteration. - */ -#endif - goto exit; - } - -#if 0 next_c1: #endif /* Select best candidate that balances congestion. * Again no remote BSS. * Again no TCH/H -> F upgrades within the same cell. */ - best_cand = pick_best_candidate(clist, candidates, - /* want_highest_db */ true, - /* omit_intra_cell_upgrade_to_tchf */ true, - /* only_intra_cell_upgrade_to_tchf */ false, - REQUIREMENT_C_MASK); + best_cand = pick_best_candidate(clist, candidates, REQUIREMENT_C_MASK); if (best_cand) { any_ho = 1; LOGPHOCAND(best_cand, LOGL_INFO, "Best candidate: RX level %d%s\n", @@ -1754,46 +1723,6 @@ LOGPHOBTS(bts, LOGL_DEBUG, "Did not find a best candidate that fulfills requirement C" " (omitting change from AHS to AFS)\n"); -#if 0 -next_c2: -#endif - /* Look for upgrading TCH/H to TCH/F within the same cell, which balances congestion, again upgrade the TCH/H - * lchan that has the worst reception: */ - if (tchh_congestion > 0) - best_cand = pick_best_candidate(clist, candidates, - /* want_highest_db */ false, - /* omit_intra_cell_upgrade_to_tchf */ false, - /* only_intra_cell_upgrade_to_tchf */ true, - REQUIREMENT_C_MASK); - - /* perform handover, if there is a candidate */ - if (best_cand) { - any_ho = 1; - LOGPHOCAND(best_cand, LOGL_INFO, "Worst candidate: RX level %d from TCH/H -> TCH/F%s\n", - rxlev2dbm(best_cand->rxlev_target), - best_cand->rxlev_afs_bias ? " (applied AHS -> AFS rxlev bias)" : ""); - trigger_ho(best_cand, best_cand->requirements & REQUIREMENT_C_MASK); -#if 0 - /* if there is still congestion, mark lchan as deleted - * and redo this process */ - tchh_congestion--; - if (tchh_congestion > 0) { - delete_lchan = best_cand->lchan; - best_cand = NULL; - goto next_c2; - } -#else - /* must exit here, because triggering handover/assignment - * will cause change in requirements. more check for this - * bts is performed in the next iteration. - */ -#endif - goto exit; - } - LOGPHOBTS(bts, LOGL_DEBUG, "Did not find a worst candidate that fulfills requirement C," - " selecting candidates that change from AHS to AFS only\n"); - - exit: /* free array */ talloc_free(clist); diff --git a/tests/handover/test_amr_tch_h_to_f_congestion_two_cells.ho_vty b/tests/handover/test_amr_tch_h_to_f_congestion_two_cells.ho_vty index eaaeabd..7cbcd4b 100644 --- a/tests/handover/test_amr_tch_h_to_f_congestion_two_cells.ho_vty +++ b/tests/handover/test_amr_tch_h_to_f_congestion_two_cells.ho_vty @@ -12,12 +12,6 @@ meas-rep repeat 10 lchan 1 0 4 0 rxlev 30 rxqual 0 ta 0 neighbors 20 expect-no-chan congestion-check -# FAIL: bts 1 has better rxlev, so the call should stay in bts 1. Instead, a handover to bts 0 happens. -expect-ho from lchan 1 0 4 0 to lchan 0 0 1 0 -expect-ts-use trx 0 0 states * TCH/F - - - - - * -expect-ts-use trx 1 0 states * - - - - - - * -# the fail continues: later the better rxqual does *another* ho back to the original cell -meas-rep lchan 0 0 1 0 rxlev 20 rxqual 0 ta 0 neighbors 30 -expect-ho from lchan 0 0 1 0 to lchan 1 0 1 0 +expect-ho from lchan 1 0 4 0 to lchan 1 0 1 0 expect-ts-use trx 0 0 states * - - - - - - * expect-ts-use trx 1 0 states * TCH/F - - - - - * diff --git a/tests/handover/test_congestion_intra_vs_inter_cell.ho_vty b/tests/handover/test_congestion_intra_vs_inter_cell.ho_vty index f0f8e2a..d93f56c 100644 --- a/tests/handover/test_congestion_intra_vs_inter_cell.ho_vty +++ b/tests/handover/test_congestion_intra_vs_inter_cell.ho_vty @@ -12,11 +12,9 @@ expect-no-chan congestion-check -# FAIL! moving to a weaker neighbor, should move to TCH/F in current cell instead. -# FAIL! should favor upgrading the weaker TS 6. -expect-ho from lchan 0 0 5 0 to lchan 1 0 1 0 -expect-ts-use trx 0 0 states * - - - - - TCH/H- * -expect-ts-use trx 1 0 states * TCH/F - - - - - * +expect-ho from lchan 0 0 6 0 to lchan 0 0 1 0 +expect-ts-use trx 0 0 states * TCH/F - - - TCH/H- - * +expect-ts-use trx 1 0 states * - - - - - - * # clear measurements for next run set-ts-use trx 0 0 states * - - - - - - * @@ -29,10 +27,9 @@ expect-no-chan congestion-check -# FAIL! moving to a weaker neighbor, should move to TCH/F in current cell instead. -expect-ho from lchan 0 0 5 0 to lchan 1 0 1 0 -expect-ts-use trx 0 0 states * - - - - - TCH/H- * -expect-ts-use trx 1 0 states * TCH/F - - - - - * +expect-ho from lchan 0 0 5 0 to lchan 0 0 1 0 +expect-ts-use trx 0 0 states * TCH/F - - - - TCH/H- * +expect-ts-use trx 1 0 states * - - - - - - * # clear measurements for next run set-ts-use trx 0 0 states * - - - - - - * @@ -45,11 +42,9 @@ expect-no-chan congestion-check -# FAIL! moving to a weaker neighbor, should move to TCH/F in current cell instead. -# FAIL! should favor upgrading the weaker TS 5. -expect-ho from lchan 0 0 6 0 to lchan 1 0 1 0 -expect-ts-use trx 0 0 states * - - - - TCH/H- - * -expect-ts-use trx 1 0 states * TCH/F - - - - - * +expect-ho from lchan 0 0 5 0 to lchan 0 0 1 0 +expect-ts-use trx 0 0 states * TCH/F - - - - TCH/H- * +expect-ts-use trx 1 0 states * - - - - - - * # clear measurements for next run set-ts-use trx 0 0 states * - - - - - - * @@ -62,10 +57,9 @@ expect-no-chan congestion-check -# FAIL! moving to a weaker neighbor, should move to TCH/F in current cell instead. -expect-ho from lchan 0 0 5 0 to lchan 1 0 1 0 -expect-ts-use trx 0 0 states * - - - - - TCH/H- * -expect-ts-use trx 1 0 states * TCH/F - - - - - * +expect-ho from lchan 0 0 5 0 to lchan 0 0 1 0 +expect-ts-use trx 0 0 states * TCH/F - - - - TCH/H- * +expect-ts-use trx 1 0 states * - - - - - - * # clear measurements for next run set-ts-use trx 0 0 states * - - - - - - * @@ -78,11 +72,9 @@ expect-no-chan congestion-check -# FAIL! moving to a weaker neighbor, should move to TCH/F in current cell instead. -# FAIL! should favor upgrading the weaker TS 5. -expect-ho from lchan 0 0 6 0 to lchan 1 0 1 0 -expect-ts-use trx 0 0 states * - - - - TCH/H- - * -expect-ts-use trx 1 0 states * TCH/F - - - - - * +expect-ho from lchan 0 0 5 0 to lchan 0 0 1 0 +expect-ts-use trx 0 0 states * TCH/F - - - - TCH/H- * +expect-ts-use trx 1 0 states * - - - - - - * # clear measurements for next run set-ts-use trx 0 0 states * - - - - - - * @@ -95,11 +87,9 @@ expect-no-chan congestion-check -# FAIL! moving to a weaker neighbor, should move to TCH/F in current cell instead. -# FAIL! should favor upgrading the weaker TS 6. -expect-ho from lchan 0 0 5 0 to lchan 1 0 1 0 -expect-ts-use trx 0 0 states * - - - - - TCH/H- * -expect-ts-use trx 1 0 states * TCH/F - - - - - * +expect-ho from lchan 0 0 6 0 to lchan 0 0 1 0 +expect-ts-use trx 0 0 states * TCH/F - - - TCH/H- - * +expect-ts-use trx 1 0 states * - - - - - - * # clear measurements for next run set-ts-use trx 0 0 states * - - - - - - * diff --git a/tests/handover/test_dyn_ts_favor_moving_half_used_tch_h.ho_vty b/tests/handover/test_dyn_ts_favor_moving_half_used_tch_h.ho_vty index 9d88c86..794bbef 100644 --- a/tests/handover/test_dyn_ts_favor_moving_half_used_tch_h.ho_vty +++ b/tests/handover/test_dyn_ts_favor_moving_half_used_tch_h.ho_vty @@ -41,6 +41,5 @@ meas-rep lchan 0 0 4 0 rxlev 32 rxqual 0 ta 0 meas-rep lchan 0 0 4 1 rxlev 31 rxqual 0 ta 0 congestion-check -# FAIL: should still pick lchan 0 0 3 0! -expect-ho from lchan 0 0 4 1 to lchan 0 0 1 0 -expect-ts-use trx 0 0 states * TCH/F TCH/HH TCH/H- TCH/H- pdch - - +expect-ho from lchan 0 0 3 0 to lchan 0 0 1 0 +expect-ts-use trx 0 0 states * TCH/F TCH/HH pdch TCH/HH pdch - - -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21979 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I2704899c85c35dfd4eba43468452483f40016ca2 Gerrit-Change-Number: 21979 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 22:28:49 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 5 Jan 2021 22:28:49 +0000 Subject: Change in osmo-bsc[master]: handover_test: include ack-chan in expect-chan References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21980 ) Change subject: handover_test: include ack-chan in expect-chan ...................................................................... handover_test: include ack-chan in expect-chan Change-Id: Ic9f1e94b12334fed6bdce35beef94d8e2968f3ad --- M tests/handover/handover_test.c M tests/handover/test_penalty_timer.ho_vty 2 files changed, 0 insertions(+), 17 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/80/21980/1 diff --git a/tests/handover/handover_test.c b/tests/handover/handover_test.c index 3c9b4ff..e3ccb64 100644 --- a/tests/handover/handover_test.c +++ b/tests/handover/handover_test.c @@ -971,11 +971,6 @@ gsm_lchan_name(lchan), gsm_lchan_name(chan_req_lchan)); exit(1); } -} - -static void _ack_chan_activ(struct gsm_lchan *lchan) -{ - fprintf(stderr, "- Acknowledging channel request on %s\n", gsm_lchan_name(lchan)); got_ho_req = 0; send_chan_act_ack(lchan, 1); } @@ -1005,15 +1000,6 @@ return CMD_SUCCESS; } -DEFUN(ack_chan, ack_chan_cmd, - "ack-chan", - "ACK a previous Channel Request\n") -{ - OSMO_ASSERT(got_chan_req); - _ack_chan_activ(chan_req_lchan); - return CMD_SUCCESS; -} - DEFUN(expect_ho_req, expect_ho_req_cmd, "expect-ho-req " LCHAN_ARGS, "Expect a handover of a given lchan\n" @@ -1067,7 +1053,6 @@ struct gsm_lchan *to = parse_lchan_args(argv+4); _expect_chan_activ(to); - _ack_chan_activ(to); _expect_ho_req(from); send_ho_detect(to); send_ho_complete(to, true); @@ -1152,7 +1137,6 @@ install_element(CONFIG_NODE, &congestion_check_cmd); install_element(CONFIG_NODE, &expect_no_chan_cmd); install_element(CONFIG_NODE, &expect_chan_cmd); - install_element(CONFIG_NODE, &ack_chan_cmd); install_element(CONFIG_NODE, &expect_ho_req_cmd); install_element(CONFIG_NODE, &ho_detection_cmd); install_element(CONFIG_NODE, &ho_complete_cmd); diff --git a/tests/handover/test_penalty_timer.ho_vty b/tests/handover/test_penalty_timer.ho_vty index be25c20..7b0d266 100644 --- a/tests/handover/test_penalty_timer.ho_vty +++ b/tests/handover/test_penalty_timer.ho_vty @@ -7,7 +7,6 @@ set-ts-use trx 0 0 states * TCH/F - - - - - - meas-rep lchan 0 0 1 0 rxlev 20 rxqual 0 ta 0 neighbors 30 expect-chan lchan 1 0 1 0 -ack-chan expect-ho-req lchan 0 0 1 0 ho-failed expect-ts-use trx 0 0 states * TCH/F - - - - - - -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21980 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ic9f1e94b12334fed6bdce35beef94d8e2968f3ad Gerrit-Change-Number: 21980 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 22:28:49 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 5 Jan 2021 22:28:49 +0000 Subject: Change in osmo-bsc[master]: handover_test: safeguard against unhandled chan req References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21981 ) Change subject: handover_test: safeguard against unhandled chan req ...................................................................... handover_test: safeguard against unhandled chan req Change-Id: Ib0d5c4647af23e6729cc19e98b1870cdde2fe994 --- M tests/handover/handover_test.c 1 file changed, 7 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/81/21981/1 diff --git a/tests/handover/handover_test.c b/tests/handover/handover_test.c index e3ccb64..3747bd8 100644 --- a/tests/handover/handover_test.c +++ b/tests/handover/handover_test.c @@ -704,8 +704,14 @@ switch (dh->c.msg_type) { case RSL_MT_CHAN_ACTIV: rc = parse_chan_act(lchan, dh->data); - if (rc == 0) + if (rc == 0) { + if (got_chan_req) { + fprintf(stderr, "Test script is erratic: a channel is requested" + " while a previous channel request is still unhandled\n"); + exit(1); + } got_chan_req = 1; + } break; case RSL_MT_RF_CHAN_REL: rc = parse_chan_rel(lchan, dh->data); -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21981 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ib0d5c4647af23e6729cc19e98b1870cdde2fe994 Gerrit-Change-Number: 21981 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 22:28:50 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 5 Jan 2021 22:28:50 +0000 Subject: Change in osmo-bsc[master]: handover_test: saner chan act handling References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21982 ) Change subject: handover_test: saner chan act handling ...................................................................... handover_test: saner chan act handling Do not clear pending chan act requests when sending a measurement report or starting congestion check. This potentially left channel activations unnoticed and dangling, e.g. for repeated meas-rep. A typical test should indeed handle pending channel activation requests before potentially triggering more, safeguard against this by asserting that only one channel activation is pending. Place unhandled channel activations in new_chan_req pointer, moving to last_chan_req upon handling it. Instead of the got_chan_req flag and additional chan_req_lchan pointer, just keep a last_chan_req pointer. Change-Id: If06587058798d96afca86358030dc0c1c3c6df39 --- M tests/handover/handover_test.c 1 file changed, 27 insertions(+), 46 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/82/21982/1 diff --git a/tests/handover/handover_test.c b/tests/handover/handover_test.c index 3747bd8..eddf753 100644 --- a/tests/handover/handover_test.c +++ b/tests/handover/handover_test.c @@ -525,20 +525,8 @@ /* parse channel request */ -static int got_chan_req = 0; -static struct gsm_lchan *chan_req_lchan = NULL; - -static int parse_chan_act(struct gsm_lchan *lchan, uint8_t *data) -{ - chan_req_lchan = lchan; - return 0; -} - -static int parse_chan_rel(struct gsm_lchan *lchan, uint8_t *data) -{ - chan_req_lchan = lchan; - return 0; -} +static struct gsm_lchan *new_chan_req = NULL; +static struct gsm_lchan *last_chan_req = NULL; /* parse handover request */ @@ -703,35 +691,30 @@ switch (dh->c.msg_type) { case RSL_MT_CHAN_ACTIV: - rc = parse_chan_act(lchan, dh->data); - if (rc == 0) { - if (got_chan_req) { - fprintf(stderr, "Test script is erratic: a channel is requested" - " while a previous channel request is still unhandled\n"); - exit(1); - } - got_chan_req = 1; + if (new_chan_req) { + fprintf(stderr, "Test script is erratic: a channel is requested" + " while a previous channel request is still unhandled\n"); + exit(1); } + new_chan_req = lchan; break; case RSL_MT_RF_CHAN_REL: - rc = parse_chan_rel(lchan, dh->data); - if (rc == 0) - send_chan_act_ack(chan_req_lchan, 0); + send_chan_act_ack(lchan, 0); /* send dyn TS back to PDCH if unused */ - switch (chan_req_lchan->ts->pchan_on_init) { + switch (lchan->ts->pchan_on_init) { case GSM_PCHAN_TCH_F_TCH_H_PDCH: case GSM_PCHAN_TCH_F_PDCH: - switch (chan_req_lchan->ts->pchan_is) { + switch (lchan->ts->pchan_is) { case GSM_PCHAN_TCH_H: - other_lchan = &chan_req_lchan->ts->lchan[ - (chan_req_lchan == &chan_req_lchan->ts->lchan[0])? + other_lchan = &lchan->ts->lchan[ + (lchan == &lchan->ts->lchan[0])? 1 : 0]; if (lchan_state_is(other_lchan, LCHAN_ST_ESTABLISHED)) break; /* else fall thru */ case GSM_PCHAN_TCH_F: - chan_req_lchan->ts->pchan_is = GSM_PCHAN_PDCH; + lchan->ts->pchan_is = GSM_PCHAN_PDCH; break; default: break; @@ -895,7 +878,6 @@ fprintf(stderr, " * Neighbor cell #%d, actual BTS %d: rxlev=%d\n", i, neighbor_bts_nr, nm[i].rxlev); } - got_chan_req = 0; gen_meas_rep(lc, rxlev, rxqual, ta, argc, nm); return CMD_SUCCESS; } @@ -943,7 +925,6 @@ "Trigger a congestion check\n") { fprintf(stderr, "- Triggering congestion check\n"); - got_chan_req = 0; hodec2_congestion_check(bsc_gsmnet); return CMD_SUCCESS; } @@ -953,8 +934,8 @@ "Expect that no channel request was sent from BSC to any cell\n") { fprintf(stderr, "- Expecting no channel request\n"); - if (got_chan_req) { - fprintf(stderr, " * Got channel request at %s\n", gsm_lchan_name(chan_req_lchan)); + if (new_chan_req) { + fprintf(stderr, " * Got channel request at %s\n", gsm_lchan_name(new_chan_req)); fprintf(stderr, "Test failed, because channel was requested\n"); exit(1); } @@ -966,18 +947,19 @@ { fprintf(stderr, "- Expecting channel request at %s\n", gsm_lchan_name(lchan)); - if (!got_chan_req) { + if (!new_chan_req) { fprintf(stderr, "Test failed, because no channel was requested\n"); exit(1); } - fprintf(stderr, " * Got channel request at %s\n", gsm_lchan_name(chan_req_lchan)); - if (lchan != chan_req_lchan) { + last_chan_req = new_chan_req; + new_chan_req = NULL; + fprintf(stderr, " * Got channel request at %s\n", gsm_lchan_name(last_chan_req)); + if (lchan != last_chan_req) { fprintf(stderr, "Test failed, because channel was requested on a different lchan than expected\n" "expected: %s got: %s\n", - gsm_lchan_name(lchan), gsm_lchan_name(chan_req_lchan)); + gsm_lchan_name(lchan), gsm_lchan_name(last_chan_req)); exit(1); } - got_ho_req = 0; send_chan_act_ack(lchan, 1); } @@ -1019,7 +1001,7 @@ "ho-detect", "Send Handover Detection to the most recent HO target lchan\n") { - if (!got_chan_req) { + if (!last_chan_req) { fprintf(stderr, "Cannot ack handover/assignment, because no chan request\n"); exit(1); } @@ -1027,7 +1009,7 @@ fprintf(stderr, "Cannot ack handover/assignment, because no ho request\n"); exit(1); } - send_ho_detect(chan_req_lchan); + send_ho_detect(last_chan_req); return CMD_SUCCESS; } @@ -1035,7 +1017,7 @@ "ho-complete", "Send Handover Complete for the most recent HO target lchan\n") { - if (!got_chan_req) { + if (!last_chan_req) { fprintf(stderr, "Cannot ack handover/assignment, because no chan request\n"); exit(1); } @@ -1043,7 +1025,7 @@ fprintf(stderr, "Cannot ack handover/assignment, because no ho request\n"); exit(1); } - send_ho_complete(chan_req_lchan, true); + send_ho_complete(last_chan_req, true); lchan_release_ack(ho_req_lchan); return CMD_SUCCESS; } @@ -1070,14 +1052,13 @@ "ho-failed", "Fail the most recent handover request\n") { - if (!got_chan_req) { + if (!last_chan_req) { fprintf(stderr, "Cannot fail handover, because no chan request\n"); exit(1); } - got_chan_req = 0; got_ho_req = 0; send_ho_complete(ho_req_lchan, false); - lchan_release_ack(chan_req_lchan); + lchan_release_ack(last_chan_req); return CMD_SUCCESS; } -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21982 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: If06587058798d96afca86358030dc0c1c3c6df39 Gerrit-Change-Number: 21982 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 22:28:50 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 5 Jan 2021 22:28:50 +0000 Subject: Change in osmo-bsc[master]: handover_test: saner ho request handling References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21983 ) Change subject: handover_test: saner ho request handling ...................................................................... handover_test: saner ho request handling Similar to chan act handling, clarify and safeguard HO Request handling. Ensure that each HO Request is handled by the test script. Place unhandled HO Requests in new_ho_req pointer, moving to last_ho_req upon handling it. Instead of the got_ho_req flag and additional ho_req_lchan pointer, just keep a last_ho_req pointer. Drop a bunch of utterly useless RSL message parsing code. Fix unhandled HO Request in test_max_handovers.ho_vty. Change-Id: I0a664f24d7dd3d7b254b29675fdc49cd70a1a480 --- M tests/handover/handover_test.c M tests/handover/test_max_handovers.ho_vty 2 files changed, 29 insertions(+), 50 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/83/21983/1 diff --git a/tests/handover/handover_test.c b/tests/handover/handover_test.c index eddf753..167f1ce 100644 --- a/tests/handover/handover_test.c +++ b/tests/handover/handover_test.c @@ -528,42 +528,8 @@ static struct gsm_lchan *new_chan_req = NULL; static struct gsm_lchan *last_chan_req = NULL; -/* parse handover request */ - -static int got_ho_req = 0; -static struct gsm_lchan *ho_req_lchan = NULL; - -static int parse_ho_command(struct gsm_lchan *lchan, uint8_t *data, int len) -{ - struct gsm48_hdr *gh = (struct gsm48_hdr *) data; - struct gsm48_ho_cmd *ho = (struct gsm48_ho_cmd *) gh->data; - int arfcn; - struct gsm_bts *neigh; - - switch (gh->msg_type) { - case GSM48_MT_RR_HANDO_CMD: - arfcn = (ho->cell_desc.arfcn_hi << 8) | ho->cell_desc.arfcn_lo; - - /* look up trx. since every dummy bts uses different arfcn and - * only one trx, it is simple */ - llist_for_each_entry(neigh, &bsc_gsmnet->bts_list, list) { - if (neigh->c0->arfcn != arfcn) - continue; - ho_req_lchan = lchan; - return 0; - } - break; - case GSM48_MT_RR_ASS_CMD: - ho_req_lchan = lchan; - return 0; - break; - default: - fprintf(stderr, "Error, expecting HO or AS command\n"); - return -EINVAL; - } - - return -1; -} +static struct gsm_lchan *new_ho_req = NULL; +static struct gsm_lchan *last_ho_req = NULL; /* send channel activation ack */ static void send_chan_act_ack(struct gsm_lchan *lchan, int act) @@ -683,6 +649,7 @@ int rc; struct gsm_lchan *lchan = rsl_lchan_lookup(sign_link->trx, dh->chan_nr, &rc); struct gsm_lchan *other_lchan; + struct gsm48_hdr *gh; if (rc) { fprintf(stderr, "rsl_lchan_lookup() failed\n"); @@ -726,9 +693,18 @@ break; case RSL_MT_DATA_REQ: - rc = parse_ho_command(lchan, msg->l3h, msgb_l3len(msg)); - if (rc == 0) - got_ho_req = 1; + gh = (struct gsm48_hdr*)msg->l3h; + switch (gh->msg_type) { + case GSM48_MT_RR_HANDO_CMD: + case GSM48_MT_RR_ASS_CMD: + if (new_ho_req) { + fprintf(stderr, "Test script is erratic: a handover is requested" + " while a previous handover request is still unhandled\n"); + exit(1); + } + new_ho_req = lchan; + break; + } break; case RSL_MT_IPAC_CRCX: break; @@ -968,15 +944,17 @@ fprintf(stderr, "- Expecting handover/assignment request at %s\n", gsm_lchan_name(lchan)); - if (!got_ho_req) { + if (!new_ho_req) { fprintf(stderr, "Test failed, because no handover was requested\n"); exit(1); } - fprintf(stderr, " * Got handover/assignment request at %s\n", gsm_lchan_name(ho_req_lchan)); - if (ho_req_lchan != lchan) { + fprintf(stderr, " * Got handover/assignment request at %s\n", gsm_lchan_name(new_ho_req)); + if (new_ho_req != lchan) { fprintf(stderr, "Test failed, because handover/assignment was not commanded on the expected lchan\n"); exit(1); } + last_ho_req = new_ho_req; + new_ho_req = NULL; } DEFUN(expect_chan, expect_chan_cmd, @@ -1005,10 +983,6 @@ fprintf(stderr, "Cannot ack handover/assignment, because no chan request\n"); exit(1); } - if (!got_ho_req) { - fprintf(stderr, "Cannot ack handover/assignment, because no ho request\n"); - exit(1); - } send_ho_detect(last_chan_req); return CMD_SUCCESS; } @@ -1021,12 +995,12 @@ fprintf(stderr, "Cannot ack handover/assignment, because no chan request\n"); exit(1); } - if (!got_ho_req) { + if (!last_ho_req) { fprintf(stderr, "Cannot ack handover/assignment, because no ho request\n"); exit(1); } send_ho_complete(last_chan_req, true); - lchan_release_ack(ho_req_lchan); + lchan_release_ack(last_ho_req); return CMD_SUCCESS; } @@ -1056,8 +1030,11 @@ fprintf(stderr, "Cannot fail handover, because no chan request\n"); exit(1); } - got_ho_req = 0; - send_ho_complete(ho_req_lchan, false); + if (!last_ho_req) { + fprintf(stderr, "Cannot fail handover, because no handover request\n"); + exit(1); + } + send_ho_complete(last_ho_req, false); lchan_release_ack(last_chan_req); return CMD_SUCCESS; } diff --git a/tests/handover/test_max_handovers.ho_vty b/tests/handover/test_max_handovers.ho_vty index 31482d2..e5d9ef5 100644 --- a/tests/handover/test_max_handovers.ho_vty +++ b/tests/handover/test_max_handovers.ho_vty @@ -9,8 +9,10 @@ set-ts-use trx 0 0 states * TCH/F TCH/F TCH/F - - - - meas-rep lchan 0 0 1 0 rxlev 0 rxqual 0 ta 0 neighbors 30 expect-chan lchan 1 0 1 0 +expect-ho-req lchan 0 0 1 0 meas-rep lchan 0 0 2 0 rxlev 0 rxqual 0 ta 0 neighbors 30 expect-chan lchan 1 0 2 0 +expect-ho-req lchan 0 0 2 0 meas-rep lchan 0 0 3 0 rxlev 0 rxqual 0 ta 0 neighbors 30 expect-no-chan -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21983 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I0a664f24d7dd3d7b254b29675fdc49cd70a1a480 Gerrit-Change-Number: 21983 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 22:28:50 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 5 Jan 2021 22:28:50 +0000 Subject: Change in osmo-bsc[master]: handover_test: vty echo References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21984 ) Change subject: handover_test: vty echo ...................................................................... handover_test: vty echo Echo each handover_test command on the test output, to help with understanding the exact point of a test failure. Even nicer would be a general echo of all VTY commands, but the VTY currently does not support that feature. Refraining from a libosmocore patch just for these test scripts... Change-Id: Ifc307a7d0b7e3caa355f8cee88778762b529ad71 --- M tests/handover/handover_test.c 1 file changed, 22 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/84/21984/1 diff --git a/tests/handover/handover_test.c b/tests/handover/handover_test.c index 167f1ce..d422a9d 100644 --- a/tests/handover/handover_test.c +++ b/tests/handover/handover_test.c @@ -741,6 +741,11 @@ return &ts->lchan[atoi(argv[3])]; } +static int vty_step = 1; + +#define VTY_ECHO() \ + fprintf(stderr, "\n%d: %s\n", vty_step++, vty->buf) + #define TS_USE " (TCH/F|TCH/H-|TCH/-H|TCH/HH|PDCH" \ "|tch/f|tch/h-|tch/-h|tch/hh|pdch" \ "|-|*)" @@ -764,6 +769,7 @@ { int i; int n = atoi(argv[0]); + VTY_ECHO(); for (i = 0; i < n; i++) _create_bts(1, NULL, 0); return CMD_SUCCESS; @@ -779,6 +785,7 @@ " shorthands: cs+4 = CCCH+SDCCH4; dyn = TCH/F_TCH/H_PDCH\n") { int num_trx = atoi(argv[0]); + VTY_ECHO(); _create_bts(num_trx, argv + 1, argc - 1); return CMD_SUCCESS; } @@ -794,6 +801,7 @@ const char *tch_type = argv[1]; const char *codec = argv[2]; struct gsm_lchan *lchan; + VTY_ECHO(); fprintf(stderr, "- Creating mobile at BTS %s on " "%s with %s codec\n", bts_nr_str, tch_type, codec); lchan = create_lchan(bts_by_num_str(bts_nr_str), @@ -878,6 +886,7 @@ "meas-rep " MEAS_REP_ARGS, MEAS_REP_DOC MEAS_REP_ARGS_DOC) { + VTY_ECHO(); return _meas_rep(vty, argc, argv); } @@ -888,6 +897,7 @@ MEAS_REP_ARGS_DOC) { int count = atoi(argv[0]); + VTY_ECHO(); argv += 1; argc -= 1; @@ -900,6 +910,7 @@ "congestion-check", "Trigger a congestion check\n") { + VTY_ECHO(); fprintf(stderr, "- Triggering congestion check\n"); hodec2_congestion_check(bsc_gsmnet); return CMD_SUCCESS; @@ -909,6 +920,7 @@ "expect-no-chan", "Expect that no channel request was sent from BSC to any cell\n") { + VTY_ECHO(); fprintf(stderr, "- Expecting no channel request\n"); if (new_chan_req) { fprintf(stderr, " * Got channel request at %s\n", gsm_lchan_name(new_chan_req)); @@ -962,6 +974,7 @@ "Expect a channel request from BSC to a cell for a specific lchan\n" LCHAN_ARGS_DOC) { + VTY_ECHO(); _expect_chan_activ(parse_lchan_args(argv)); return CMD_SUCCESS; } @@ -971,6 +984,7 @@ "Expect a handover of a given lchan\n" LCHAN_ARGS_DOC) { + VTY_ECHO(); _expect_ho_req(parse_lchan_args(argv)); return CMD_SUCCESS; } @@ -979,6 +993,7 @@ "ho-detect", "Send Handover Detection to the most recent HO target lchan\n") { + VTY_ECHO(); if (!last_chan_req) { fprintf(stderr, "Cannot ack handover/assignment, because no chan request\n"); exit(1); @@ -991,6 +1006,7 @@ "ho-complete", "Send Handover Complete for the most recent HO target lchan\n") { + VTY_ECHO(); if (!last_chan_req) { fprintf(stderr, "Cannot ack handover/assignment, because no chan request\n"); exit(1); @@ -1013,6 +1029,7 @@ { struct gsm_lchan *from = parse_lchan_args(argv); struct gsm_lchan *to = parse_lchan_args(argv+4); + VTY_ECHO(); _expect_chan_activ(to); _expect_ho_req(from); @@ -1026,6 +1043,7 @@ "ho-failed", "Fail the most recent handover request\n") { + VTY_ECHO(); if (!last_chan_req) { fprintf(stderr, "Cannot fail handover, because no chan request\n"); exit(1); @@ -1048,6 +1066,7 @@ { struct gsm_bts *bts = bts_by_num_str(argv[0]); struct gsm_bts_trx *trx = trx_by_num_str(bts, argv[1]); + VTY_ECHO(); argv += 2; argc -= 2; if (!_expect_ts_use(bts, trx, argv)) @@ -1060,6 +1079,7 @@ "Define which codec should be used for new TCH/F lchans (for set-ts-use)\n" "Configure the TCH/F codec to use\nAMR\nEFR\nFR\n") { + VTY_ECHO(); osmo_talloc_replace_string(ctx, &codec_tch_f, argv[0]); return CMD_SUCCESS; } @@ -1069,6 +1089,7 @@ "Define which codec should be used for new TCH/H lchans (for set-ts-use)\n" "Configure the TCH/H codec to use\nAMR\nHR\n") { + VTY_ECHO(); osmo_talloc_replace_string(ctx, &codec_tch_h, argv[0]); return CMD_SUCCESS; } @@ -1082,6 +1103,7 @@ { struct gsm_bts *bts = bts_by_num_str(argv[0]); struct gsm_bts_trx *trx = trx_by_num_str(bts, argv[1]); + VTY_ECHO(); argv += 2; argc -= 2; if (!_set_ts_use(bts, trx, argv)) -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21984 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ifc307a7d0b7e3caa355f8cee88778762b529ad71 Gerrit-Change-Number: 21984 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 22:28:50 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 5 Jan 2021 22:28:50 +0000 Subject: Change in osmo-bsc[master]: handover_test: show a bug: add test_congestion_no_oscillation.ho_vty References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21985 ) Change subject: handover_test: show a bug: add test_congestion_no_oscillation.ho_vty ...................................................................... handover_test: show a bug: add test_congestion_no_oscillation.ho_vty Also add test_congestion_no_oscillation2.ho_vty which is an almost identical scenario that does not show the bug -- because it has two more TCH/H available in BTS 1, showing the strange behavior of the algorithm. Related: SYS#5259 Change-Id: Idf88b4cf3d2f92f5560d73dae9e59af39d0494c0 --- M tests/handover/handover_tests.ok A tests/handover/test_congestion_no_oscillation.ho_vty A tests/handover/test_congestion_no_oscillation2.ho_vty 3 files changed, 81 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/85/21985/1 diff --git a/tests/handover/handover_tests.ok b/tests/handover/handover_tests.ok index eab405d..521a0fe 100644 --- a/tests/handover/handover_tests.ok +++ b/tests/handover/handover_tests.ok @@ -11,6 +11,8 @@ pass test_congestion.ho_vty pass test_congestion_favor_best_target_rxlev.ho_vty pass test_congestion_intra_vs_inter_cell.ho_vty +pass test_congestion_no_oscillation.ho_vty +pass test_congestion_no_oscillation2.ho_vty pass test_disabled_ho_and_as.ho_vty pass test_dyn_ts_amr_tch_f_to_h_congestion_assignment.ho_vty pass test_dyn_ts_favor_half_used_tch_h_as_target.ho_vty diff --git a/tests/handover/test_congestion_no_oscillation.ho_vty b/tests/handover/test_congestion_no_oscillation.ho_vty new file mode 100644 index 0000000..abfaef7 --- /dev/null +++ b/tests/handover/test_congestion_no_oscillation.ho_vty @@ -0,0 +1,48 @@ +# Do not oscillate handover from TCH/F to TCH/H on a neighbor due to congestion, +# and then back to the original cell due to RXLEV. +# Currently this test script shows the undesired oscillation. + +create-bts trx-count 1 timeslots c+s4 TCH/F TCH/F TCH/F TCH/F TCH/F TCH/F PDCH +network + bts 0 + handover2 min-free-slots tch/f 5 + +create-bts trx-count 1 timeslots c+s4 TCH/F TCH/F TCH/F TCH/F TCH/H TCH/H PDCH + +set-ts-use trx 0 0 states * TCH/F TCH/F - - - - * +set-ts-use trx 1 0 states * TCH/F TCH/F TCH/F TCH/F - - * + +meas-rep repeat 10 lchan 0 0 2 0 rxlev 40 rxqual 0 ta 0 neighbors 20 +expect-no-chan + +# bts 0 wants to lose one TCH/F. The neighbor's TCH/F are full, but TCH/H are available there. +congestion-check +expect-ho from lchan 0 0 2 0 to lchan 1 0 5 0 + +expect-ts-use trx 0 0 states * TCH/F - - - - - * +expect-ts-use trx 1 0 states * TCH/F TCH/F TCH/F TCH/F TCH/H- - * + +# measurements continue to be the same +meas-rep lchan 1 0 5 0 rxlev 20 rxqual 0 ta 0 neighbors 40 + +# FAIL: RXLEV oscillation back to bts 0 +expect-ho from lchan 1 0 5 0 to lchan 0 0 2 0 +expect-ts-use trx 0 0 states * TCH/F TCH/F - - - - * +expect-ts-use trx 1 0 states * TCH/F TCH/F TCH/F TCH/F - - * +meas-rep lchan 0 0 2 0 rxlev 40 rxqual 0 ta 0 neighbors 20 +expect-no-chan + +# FAIL: congestion oscillation again to bts 1 +congestion-check +expect-ho from lchan 0 0 2 0 to lchan 1 0 5 0 +expect-ts-use trx 0 0 states * TCH/F - - - - - * +expect-ts-use trx 1 0 states * TCH/F TCH/F TCH/F TCH/F TCH/H- - * + +# FAIL: RXLEV oscillation back to bts 0 +meas-rep lchan 1 0 5 0 rxlev 20 rxqual 0 ta 0 neighbors 40 +expect-ho from lchan 1 0 5 0 to lchan 0 0 2 0 +meas-rep lchan 0 0 2 0 rxlev 40 rxqual 0 ta 0 neighbors 20 + +# FAIL: congestion oscillation again to bts 1 +congestion-check +expect-ho from lchan 0 0 2 0 to lchan 1 0 5 0 diff --git a/tests/handover/test_congestion_no_oscillation2.ho_vty b/tests/handover/test_congestion_no_oscillation2.ho_vty new file mode 100644 index 0000000..aee731d --- /dev/null +++ b/tests/handover/test_congestion_no_oscillation2.ho_vty @@ -0,0 +1,31 @@ +# Almost identical to test_amr_oscillation.ho_vty, this has just two more TCH/H slots in BTS 1, and does not trigger the +# oscillation bug. The number of free TCH/H in BTS 1 should be unrelated to the congestion status of BTS 0, which +# illustrates that the even distribution of congestion is fundamentally flawed. +# This test script shows the desired behavior, though by common sense there should be no reason why we see the bug in +# test_amr_oscillation.ho_vty and not here. + +create-bts trx-count 1 timeslots c+s4 TCH/F TCH/F TCH/F TCH/F TCH/F TCH/F PDCH +network + bts 0 + handover2 min-free-slots tch/f 5 + +create-bts trx-count 1 timeslots c+s4 TCH/F TCH/F TCH/F TCH/F TCH/H TCH/H TCH/H + +set-ts-use trx 0 0 states * TCH/F TCH/F - - - - * +set-ts-use trx 1 0 states * TCH/F TCH/F TCH/F TCH/F - - - + +meas-rep repeat 10 lchan 0 0 2 0 rxlev 40 rxqual 0 ta 0 neighbors 20 +expect-no-chan + +# bts 0 wants to lose one TCH/F. The neighbor's TCH/F are full, but TCH/H are available there. +congestion-check +expect-ho from lchan 0 0 2 0 to lchan 1 0 5 0 + +expect-ts-use trx 0 0 states * TCH/F - - - - - * +expect-ts-use trx 1 0 states * TCH/F TCH/F TCH/F TCH/F TCH/H- - - + +# measurements continue to be the same +meas-rep lchan 1 0 5 0 rxlev 20 rxqual 0 ta 0 neighbors 40 + +# despite the better RXLEV, congestion prevents oscillation back to bts 0 +expect-no-chan -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21985 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Idf88b4cf3d2f92f5560d73dae9e59af39d0494c0 Gerrit-Change-Number: 21985 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 22:28:51 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 5 Jan 2021 22:28:51 +0000 Subject: Change in osmo-bsc[master]: hodec2: cosmetic: clarify ho_candidate.{current, target} References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21986 ) Change subject: hodec2: cosmetic: clarify ho_candidate.{current,target} ...................................................................... hodec2: cosmetic: clarify ho_candidate.{current,target} So far it is often confusing which cell a specific member refers to. Clarify lchan, bts, ... to current.lchan, target.bts, ... Also move the rxlev_{current,target} to {current,target}.rxlev. Eliminate numerous local variables to make it easier to read which side is being used (e.g. "c->target.bts" instead of just "bts"). No functional change. Change-Id: I06898eb745a5be548df0b76fa760ce790cfab3ed --- M src/osmo-bsc/handover_decision_2.c 1 file changed, 107 insertions(+), 97 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/86/21986/1 diff --git a/src/osmo-bsc/handover_decision_2.c b/src/osmo-bsc/handover_decision_2.c index 1ab92f5..77b6e6b 100644 --- a/src/osmo-bsc/handover_decision_2.c +++ b/src/osmo-bsc/handover_decision_2.c @@ -79,10 +79,10 @@ ## args) #define LOGPHOCAND(candidate, level, fmt, args...) do {\ - if ((candidate)->bts) \ - LOGPHOLCHANTOBTS((candidate)->lchan, (candidate)->bts, level, fmt, ## args); \ - else if ((candidate)->cil) \ - LOGPHOLCHANTOREMOTE((candidate)->lchan, (candidate)->cil, level, fmt, ## args); \ + if ((candidate)->target.bts) \ + LOGPHOLCHANTOBTS((candidate)->current.lchan, (candidate)->target.bts, level, fmt, ## args); \ + else if ((candidate)->target.cil) \ + LOGPHOLCHANTOREMOTE((candidate)->current.lchan, (candidate)->target.cil, level, fmt, ## args); \ } while(0) @@ -99,14 +99,19 @@ #define REQUIREMENT_C_MASK (REQUIREMENT_C_TCHF | REQUIREMENT_C_TCHH) struct ho_candidate { - struct gsm_lchan *lchan; /* candidate for whom */ - struct neighbor_ident_key nik; /* neighbor ARFCN+BSIC */ - struct gsm_bts *bts; /* target BTS in local BSS */ - const struct gsm0808_cell_id_list2 *cil; /* target cells in remote BSS */ uint8_t requirements; /* what is fulfilled */ - int rxlev_current; - int rxlev_target; - int rxlev_afs_bias; + struct { + struct gsm_lchan *lchan; + struct gsm_bts *bts; + int rxlev; + } current; + struct { + struct neighbor_ident_key nik; /* neighbor ARFCN+BSIC */ + const struct gsm0808_cell_id_list2 *cil; /* target cells in remote BSS */ + struct gsm_bts *bts; + int rxlev; + int rxlev_afs_bias; + } target; }; enum ho_reason { @@ -705,24 +710,21 @@ /* Trigger handover or assignment depending on the target BTS */ static int trigger_local_ho_or_as(struct ho_candidate *c, uint8_t requirements) { - struct gsm_lchan *lchan = c->lchan; - struct gsm_bts *new_bts = c->bts; struct handover_out_req req; - struct gsm_bts *current_bts = lchan->ts->trx->bts; int afs_bias = 0; bool full_rate = false; /* afs_bias becomes > 0, if AFS is used and is improved */ - if (lchan->tch_mode == GSM48_CMODE_SPEECH_AMR) - afs_bias = ho_get_hodec2_afs_bias_rxlev(new_bts->ho); + if (c->current.lchan->tch_mode == GSM48_CMODE_SPEECH_AMR) + afs_bias = ho_get_hodec2_afs_bias_rxlev(c->target.bts->ho); /* select TCH rate, prefer TCH/F if AFS is improved */ - switch (lchan->type) { + switch (c->current.lchan->type) { case GSM_LCHAN_TCH_F: /* keep on full rate, if TCH/F is a candidate */ if ((requirements & REQUIREMENT_TCHF_MASK)) { - if (current_bts == new_bts) { - LOGPHOLCHAN(lchan, LOGL_INFO, "Not performing assignment: Already on target type\n"); + if (c->current.bts == c->target.bts) { + LOGPHOLCHAN(c->current.lchan, LOGL_INFO, "Not performing assignment: Already on target type\n"); return 0; } full_rate = true; @@ -730,7 +732,7 @@ } /* change to half rate */ if (!(requirements & REQUIREMENT_TCHH_MASK)) { - LOGPHOLCHANTOBTS(lchan, new_bts, LOGL_ERROR, + LOGPHOLCHANTOBTS(c->current.lchan, c->target.bts, LOGL_ERROR, "neither TCH/F nor TCH/H requested, aborting ho/as\n"); return -EINVAL; } @@ -749,35 +751,35 @@ } /* keep on half rate */ if (!(requirements & REQUIREMENT_TCHH_MASK)) { - LOGPHOLCHANTOBTS(lchan, new_bts, LOGL_ERROR, + LOGPHOLCHANTOBTS(c->current.lchan, c->target.bts, LOGL_ERROR, "neither TCH/F nor TCH/H requested, aborting ho/as\n"); return -EINVAL; } - if (current_bts == new_bts) { - LOGPHOLCHAN(lchan, LOGL_INFO, "Not performing assignment: Already on target type\n"); + if (c->current.bts == c->target.bts) { + LOGPHOLCHAN(c->current.lchan, LOGL_INFO, "Not performing assignment: Already on target type\n"); return 0; } break; default: - LOGPHOLCHANTOBTS(lchan, new_bts, LOGL_ERROR, "lchan is neither TCH/F nor TCH/H, aborting ho/as\n"); + LOGPHOLCHANTOBTS(c->current.lchan, c->target.bts, LOGL_ERROR, "c->current.lchan is neither TCH/F nor TCH/H, aborting ho/as\n"); return -EINVAL; } /* trigger handover or assignment */ - if (current_bts == new_bts) - LOGPHOLCHAN(lchan, LOGL_NOTICE, "Triggering assignment to %s, due to %s\n", + if (c->current.bts == c->target.bts) + LOGPHOLCHAN(c->current.lchan, LOGL_NOTICE, "Triggering assignment to %s, due to %s\n", full_rate ? "TCH/F" : "TCH/H", ho_reason_name(global_ho_reason)); else - LOGPHOLCHANTOBTS(lchan, new_bts, LOGL_INFO, + LOGPHOLCHANTOBTS(c->current.lchan, c->target.bts, LOGL_INFO, "Triggering handover to %s, due to %s\n", full_rate ? "TCH/F" : "TCH/H", ho_reason_name(global_ho_reason)); req = (struct handover_out_req){ .from_hodec_id = HODEC2, - .old_lchan = lchan, - .target_nik = *bts_ident_key(new_bts), + .old_lchan = c->current.lchan, + .target_nik = *bts_ident_key(c->target.bts), .new_lchan_type = full_rate? GSM_LCHAN_TCH_F : GSM_LCHAN_TCH_H, }; handover_request(&req); @@ -788,14 +790,14 @@ { struct handover_out_req req; - LOGPHOLCHANTOREMOTE(c->lchan, c->cil, LOGL_INFO, + LOGPHOLCHANTOREMOTE(c->current.lchan, c->target.cil, LOGL_INFO, "Triggering inter-BSC handover, due to %s\n", ho_reason_name(global_ho_reason)); req = (struct handover_out_req){ .from_hodec_id = HODEC2, - .old_lchan = c->lchan, - .target_nik = c->nik, + .old_lchan = c->current.lchan, + .target_nik = c->target.nik, }; handover_request(&req); return 0; @@ -803,7 +805,7 @@ static int trigger_ho(struct ho_candidate *c, uint8_t requirements) { - if (c->bts) + if (c->target.bts) return trigger_local_ho_or_as(c, requirements); else return trigger_remote_bss_ho(c, requirements); @@ -827,34 +829,32 @@ static inline void debug_candidate(struct ho_candidate *candidate, int tchf_count, int tchh_count) { - struct gsm_lchan *lchan = candidate->lchan; - #define HO_CANDIDATE_FMT(tchx, TCHX) "TCH/" #TCHX "={free %d (want %d), " REQUIREMENTS_FMT "}" #define HO_CANDIDATE_ARGS(tchx, TCHX) \ - tch##tchx##_count, ho_get_hodec2_tch##tchx##_min_slots(candidate->bts->ho), \ + tch##tchx##_count, ho_get_hodec2_tch##tchx##_min_slots(candidate->target.bts->ho), \ REQUIREMENTS_ARGS(candidate->requirements, TCHX) - if (!candidate->bts && !candidate->cil) - LOGPHOLCHAN(lchan, LOGL_DEBUG, "Empty candidate\n"); - if (candidate->bts && candidate->cil) - LOGPHOLCHAN(lchan, LOGL_ERROR, "Invalid candidate: both local- and remote-BSS target\n"); + if (!candidate->target.bts && !candidate->target.cil) + LOGPHOLCHAN(candidate->current.lchan, LOGL_DEBUG, "Empty candidate\n"); + if (candidate->target.bts && candidate->target.cil) + LOGPHOLCHAN(candidate->current.lchan, LOGL_ERROR, "Invalid candidate: both local- and remote-BSS target\n"); - if (candidate->cil) - LOGPHOLCHANTOREMOTE(lchan, candidate->cil, LOGL_DEBUG, + if (candidate->target.cil) + LOGPHOLCHANTOREMOTE(candidate->current.lchan, candidate->target.cil, LOGL_DEBUG, "RX level %d dBm -> %d dBm\n", - rxlev2dbm(candidate->rxlev_current), rxlev2dbm(candidate->rxlev_target)); + rxlev2dbm(candidate->current.rxlev), rxlev2dbm(candidate->target.rxlev)); - if (candidate->bts == lchan->ts->trx->bts) - LOGPHOLCHANTOBTS(lchan, candidate->bts, LOGL_DEBUG, + if (candidate->target.bts == candidate->current.bts) + LOGPHOLCHANTOBTS(candidate->current.lchan, candidate->target.bts, LOGL_DEBUG, "RX level %d dBm; " HO_CANDIDATE_FMT(f, F) "; " HO_CANDIDATE_FMT(h, H) "\n", - rxlev2dbm(candidate->rxlev_current), + rxlev2dbm(candidate->current.rxlev), HO_CANDIDATE_ARGS(f, F), HO_CANDIDATE_ARGS(h, H)); - else if (candidate->bts) - LOGPHOLCHANTOBTS(lchan, candidate->bts, LOGL_DEBUG, + else if (candidate->target.bts) + LOGPHOLCHANTOBTS(candidate->current.lchan, candidate->target.bts, LOGL_DEBUG, "RX level %d dBm -> %d dBm; " HO_CANDIDATE_FMT(f, F) "; " HO_CANDIDATE_FMT(h, H) "\n", - rxlev2dbm(candidate->rxlev_current), rxlev2dbm(candidate->rxlev_target), + rxlev2dbm(candidate->current.rxlev), rxlev2dbm(candidate->target.rxlev), HO_CANDIDATE_ARGS(f, F), HO_CANDIDATE_ARGS(h, H)); } @@ -870,12 +870,17 @@ tchh_count = bts_count_free_ts(bts, GSM_PCHAN_TCH_H); c = (struct ho_candidate){ - .lchan = lchan, - .bts = bts, - .requirements = check_requirements(lchan, bts, tchf_count, tchh_count), - .rxlev_current = rxlev_current, - .rxlev_target = rxlev_current, /* same cell, same rxlev */ + .current = { + .lchan = lchan, + .bts = bts, + .rxlev = rxlev_current, + }, + .target = { + .bts = bts, + .rxlev = rxlev_current, /* same cell, same rxlev */ + }, }; + c.requirements = check_requirements(c.current.lchan, c.target.bts, tchf_count, tchh_count), debug_candidate(&c, tchf_count, tchh_count); @@ -941,12 +946,17 @@ neigh_cfg = (neighbor_bts ? : bts)->ho; c = (struct ho_candidate){ - .lchan = lchan, - .nik = ni, - .bts = neighbor_bts, - .cil = neighbor_cil, - .rxlev_current = rxlev_current, - .rxlev_target = neigh_meas_avg(nmp, ho_get_hodec2_rxlev_neigh_avg_win(bts->ho)), + .current = { + .lchan = lchan, + .bts = bts, + .rxlev = rxlev_current, + }, + .target = { + .nik = ni, + .bts = neighbor_bts, + .cil = neighbor_cil, + .rxlev = neigh_meas_avg(nmp, ho_get_hodec2_rxlev_neigh_avg_win(bts->ho)), + }, }; /* Heed rxlev hysteresis only if the RXLEV/RXQUAL/TA levels of the MS aren't critically bad and @@ -954,11 +964,11 @@ * and thus skip the hysteresis check. */ if (!include_weaker_rxlev) { int pwr_hyst = ho_get_hodec2_pwr_hysteresis(bts->ho); - if ((c.rxlev_target - c.rxlev_current) <= pwr_hyst) { + if ((c.target.rxlev - c.current.rxlev) <= pwr_hyst) { LOGPHOCAND(&c, LOGL_DEBUG, "Not a candidate, because RX level (%d dBm) is lower" " or equal than current RX level (%d dBm) + hysteresis (%d)\n", - rxlev2dbm(c.rxlev_target), rxlev2dbm(c.rxlev_current), pwr_hyst); + rxlev2dbm(c.target.rxlev), rxlev2dbm(c.current.rxlev), pwr_hyst); return; } } @@ -966,11 +976,11 @@ /* if the minimum level is not reached. * In case of a remote-BSS, use the current BTS' configuration. */ min_rxlev = ho_get_hodec2_min_rxlev(neigh_cfg); - if (rxlev2dbm(c.rxlev_target) < min_rxlev) { + if (rxlev2dbm(c.target.rxlev) < min_rxlev) { LOGPHOCAND(&c, LOGL_DEBUG, "Not a candidate, because RX level (%d dBm) is lower" " than the minimum required RX level (%d dBm)\n", - rxlev2dbm(c.rxlev_target), min_rxlev); + rxlev2dbm(c.target.rxlev), min_rxlev); return; } @@ -1122,14 +1132,14 @@ continue; /* Only consider Local-BSS cells */ - if (!clist[i].bts) + if (!clist[i].target.bts) continue; - better = clist[i].rxlev_target - clist[i].rxlev_current; + better = clist[i].target.rxlev - clist[i].current.rxlev; /* Apply AFS bias? */ afs_bias = 0; if (ahs && (clist[i].requirements & REQUIREMENT_B_TCHF)) - afs_bias = ho_get_hodec2_afs_bias_rxlev(clist[i].bts->ho); + afs_bias = ho_get_hodec2_afs_bias_rxlev(clist[i].target.bts->ho); better += afs_bias; if (better > best_better_db) { best_cand = &clist[i]; @@ -1141,7 +1151,7 @@ /* perform handover, if there is a candidate */ if (best_cand) { LOGPHOCAND(best_cand, LOGL_INFO, "Best candidate, RX level %d%s\n", - rxlev2dbm(best_cand->rxlev_target), + rxlev2dbm(best_cand->target.rxlev), best_applied_afs_bias ? " (applied AHS -> AFS rxlev bias)" : ""); return trigger_ho(best_cand, best_cand->requirements & REQUIREMENT_B_MASK); } @@ -1155,14 +1165,14 @@ continue; /* Only consider Local-BSS cells */ - if (!clist[i].bts) + if (!clist[i].target.bts) continue; - better = clist[i].rxlev_target - clist[i].rxlev_current; + better = clist[i].target.rxlev - clist[i].current.rxlev; /* Apply AFS bias? */ afs_bias = 0; if (ahs && (clist[i].requirements & REQUIREMENT_C_TCHF)) - afs_bias = ho_get_hodec2_afs_bias_rxlev(clist[i].bts->ho); + afs_bias = ho_get_hodec2_afs_bias_rxlev(clist[i].target.bts->ho); better += afs_bias; if (better > best_better_db) { best_cand = &clist[i]; @@ -1174,7 +1184,7 @@ /* perform handover, if there is a candidate */ if (best_cand) { LOGPHOCAND(best_cand, LOGL_INFO, "Best candidate, RX level %d%s\n", - rxlev2dbm(best_cand->rxlev_target), + rxlev2dbm(best_cand->target.rxlev), best_applied_afs_bias? " (applied AHS -> AFS rxlev bias)" : ""); return trigger_ho(best_cand, best_cand->requirements & REQUIREMENT_C_MASK); } @@ -1195,13 +1205,13 @@ if (!(clist[i].requirements & REQUIREMENT_A_MASK)) continue; - better = clist[i].rxlev_target - clist[i].rxlev_current; + better = clist[i].target.rxlev - clist[i].current.rxlev; /* Apply AFS bias? * (never to remote-BSS neighbors, since we will not change the lchan type for those.) */ afs_bias = 0; if (ahs && (clist[i].requirements & REQUIREMENT_A_TCHF) - && clist[i].bts) - afs_bias = ho_get_hodec2_afs_bias_rxlev(clist[i].bts->ho); + && clist[i].target.bts) + afs_bias = ho_get_hodec2_afs_bias_rxlev(clist[i].target.bts->ho); better += afs_bias; if (better > best_better_db) { best_cand = &clist[i]; @@ -1213,7 +1223,7 @@ /* perform handover, if there is a candidate */ if (best_cand) { LOGPHOCAND(best_cand, LOGL_INFO, "Best candidate: RX level %d%s\n", - rxlev2dbm(best_cand->rxlev_target), + rxlev2dbm(best_cand->target.rxlev), best_applied_afs_bias ? " (applied AHS -> AFS rxlev bias)" : ""); return trigger_ho(best_cand, best_cand->requirements & REQUIREMENT_A_MASK); } @@ -1386,8 +1396,8 @@ static bool is_upgrade_to_tchf(const struct ho_candidate *c, uint8_t for_requirement) { - return c->lchan - && (c->lchan->type == GSM_LCHAN_TCH_H) + return c->current.lchan + && (c->current.lchan->type == GSM_LCHAN_TCH_H) && ((c->requirements & for_requirement) & (REQUIREMENT_B_TCHF | REQUIREMENT_C_TCHF)); } @@ -1407,8 +1417,8 @@ if (!b) return a; - a_rxlev_change = a->rxlev_target - a->rxlev_current; - b_rxlev_change = b->rxlev_target - b->rxlev_current; + a_rxlev_change = a->target.rxlev - a->current.rxlev; + b_rxlev_change = b->target.rxlev - b->current.rxlev; /* Typically, a congestion related handover reduces RXLEV. If there is a candidate that actually improves RXLEV, * prefer that, because it pre-empts a likely handover due to measurement results later. Also favor unchanged @@ -1420,8 +1430,8 @@ if (a_rxlev_change < 0 && b_rxlev_change < 0) { /* For handover that reduces RXLEV, favor the highest resulting RXLEV, AFS bias applied. */ - int a_rxlev = a->rxlev_target + a->rxlev_afs_bias; - int b_rxlev = b->rxlev_target + b->rxlev_afs_bias; + int a_rxlev = a->target.rxlev + a->target.rxlev_afs_bias; + int b_rxlev = b->target.rxlev + b->target.rxlev_afs_bias; if (a_rxlev > b_rxlev) return a; @@ -1433,16 +1443,16 @@ /* Prefer picking a dynamic timeslot: free PDCH and allow more timeslot type flexibility for further * congestion resolution. */ - if (lchan_is_on_dynamic_ts(b->lchan)) { + if (lchan_is_on_dynamic_ts(b->current.lchan)) { unsigned int ac, bc; - if (!lchan_is_on_dynamic_ts(a->lchan)) + if (!lchan_is_on_dynamic_ts(a->current.lchan)) return b; /* Both are dynamic timeslots. Prefer one that completely (or to a higher degree) frees its * timeslot. */ - ac = ts_usage_count(a->lchan->ts); - bc = ts_usage_count(b->lchan->ts); + ac = ts_usage_count(a->current.lchan->ts); + bc = ts_usage_count(b->current.lchan->ts); if (bc < ac) return b; if (ac < bc) @@ -1456,9 +1466,9 @@ /* When upgrading TCH/H to TCH/F, favor moving a TCH/H with lower current rxlev, because presumably that * one benefits more from a higher bandwidth. */ if (is_upgrade_to_tchf(a, for_requirement) && is_upgrade_to_tchf(b, for_requirement)) { - if (b->rxlev_current < a->rxlev_current) + if (b->current.rxlev < a->current.rxlev) return b; - if (a->rxlev_current < b->rxlev_current) + if (a->current.rxlev < b->current.rxlev) return a; } @@ -1476,11 +1486,11 @@ /* For multiple passes of congestion resolution, already handovered candidates are marked by lchan = * NULL. (though at the time of writing, multiple passes of congestion resolution are DISABLED.) */ - if (!c->lchan) + if (!c->current.lchan) continue; /* Omit remote BSS */ - if (!c->bts) + if (!c->target.bts) continue; if (!(c->requirements & for_requirement)) @@ -1488,9 +1498,9 @@ /* improve AHS */ if (is_upgrade_to_tchf(c, for_requirement)) - c->rxlev_afs_bias = ho_get_hodec2_afs_bias_rxlev(c->bts->ho); + c->target.rxlev_afs_bias = ho_get_hodec2_afs_bias_rxlev(c->target.bts->ho); else - c->rxlev_afs_bias = 0; + c->target.rxlev_afs_bias = 0; result = pick_better_lchan_to_move(result, c, for_requirement); } @@ -1643,7 +1653,7 @@ LOGPHOCAND(&clist[i], LOGL_DEBUG, "#%d: req={TCH/F:" REQUIREMENTS_FMT ", TCH/H:" REQUIREMENTS_FMT "} avg-rxlev=%d dBm\n", i, REQUIREMENTS_ARGS(clist[i].requirements, F), REQUIREMENTS_ARGS(clist[i].requirements, H), - rxlev2dbm(clist[i].rxlev_target)); + rxlev2dbm(clist[i].target.rxlev)); } } @@ -1662,8 +1672,8 @@ if (best_cand) { any_ho = 1; LOGPHOCAND(best_cand, LOGL_DEBUG, "Best candidate: RX level %d%s\n", - rxlev2dbm(best_cand->rxlev_target), - best_cand->rxlev_afs_bias ? " (applied AHS->AFS bias)" : ""); + rxlev2dbm(best_cand->target.rxlev), + best_cand->target.rxlev_afs_bias ? " (applied AHS->AFS bias)" : ""); trigger_ho(best_cand, best_cand->requirements & REQUIREMENT_B_MASK); #if 0 /* if there is still congestion, mark lchan as deleted @@ -1696,8 +1706,8 @@ if (best_cand) { any_ho = 1; LOGPHOCAND(best_cand, LOGL_INFO, "Best candidate: RX level %d%s\n", - rxlev2dbm(best_cand->rxlev_target), - best_cand->rxlev_afs_bias ? " (applied AHS -> AFS rxlev bias)" : ""); + rxlev2dbm(best_cand->target.rxlev), + best_cand->target.rxlev_afs_bias ? " (applied AHS -> AFS rxlev bias)" : ""); trigger_ho(best_cand, best_cand->requirements & REQUIREMENT_C_MASK); #if 0 /* if there is still congestion, mark lchan as deleted -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21986 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I06898eb745a5be548df0b76fa760ce790cfab3ed Gerrit-Change-Number: 21986 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 22:28:51 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 5 Jan 2021 22:28:51 +0000 Subject: Change in osmo-bsc[master]: hodec2: reduce check_requirements() args References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21987 ) Change subject: hodec2: reduce check_requirements() args ...................................................................... hodec2: reduce check_requirements() args Instead of passing single args, pass the ho_candidate struct. No functional change. Change-Id: I086aef9cc47ad8a5376f18179024c486f6f8b779 --- M src/osmo-bsc/handover_decision_2.c 1 file changed, 83 insertions(+), 84 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/87/21987/1 diff --git a/src/osmo-bsc/handover_decision_2.c b/src/osmo-bsc/handover_decision_2.c index 77b6e6b..7fd6941 100644 --- a/src/osmo-bsc/handover_decision_2.c +++ b/src/osmo-bsc/handover_decision_2.c @@ -433,113 +433,113 @@ * * The number of free slots are checked for TCH/F and TCH/H slot types * individually. */ -static uint8_t check_requirements(struct gsm_lchan *lchan, struct gsm_bts *bts, int tchf_count, int tchh_count) +static void check_requirements(struct ho_candidate *c, int tchf_count, int tchh_count) { int count; uint8_t requirement = 0; unsigned int penalty_time; - struct gsm_bts *current_bts = lchan->ts->trx->bts; + c->requirements = 0; /* Requirement A */ /* the handover/assignment must not be disabled */ - if (current_bts == bts) { - if (!ho_get_hodec2_as_active(bts->ho)) { - LOGPHOLCHAN(lchan, LOGL_DEBUG, "Assignment disabled\n"); - return 0; + if (c->current.bts == c->target.bts) { + if (!ho_get_hodec2_as_active(c->target.bts->ho)) { + LOGPHOLCHAN(c->current.lchan, LOGL_DEBUG, "Assignment disabled\n"); + return; } } else { - if (!ho_get_ho_active(bts->ho)) { - LOGPHOLCHANTOBTS(lchan, bts, LOGL_DEBUG, + if (!ho_get_ho_active(c->target.bts->ho)) { + LOGPHOLCHANTOBTS(c->current.lchan, c->target.bts, LOGL_DEBUG, "not a candidate, handover is disabled in target BTS\n"); - return 0; + return; } } /* the handover penalty timer must not run for this bts */ - penalty_time = conn_penalty_time_remaining(lchan->conn, bts); + penalty_time = conn_penalty_time_remaining(c->current.lchan->conn, c->target.bts); if (penalty_time) { - LOGPHOLCHANTOBTS(lchan, bts, LOGL_DEBUG, "not a candidate, target BTS still in penalty time" + LOGPHOLCHANTOBTS(c->current.lchan, c->target.bts, LOGL_DEBUG, "not a candidate, target BTS still in penalty time" " (%u seconds left)\n", penalty_time); - return 0; + return; } /* compatibility check for codecs. * if so, the candidates for full rate and half rate are selected */ - switch (lchan->tch_mode) { + switch (c->current.lchan->tch_mode) { case GSM48_CMODE_SPEECH_V1: - switch (lchan->type) { + switch (c->current.lchan->type) { case GSM_LCHAN_TCH_F: /* mandatory */ requirement |= REQUIREMENT_A_TCHF; break; case GSM_LCHAN_TCH_H: - if (!bts->codec.hr) { - LOGPHOLCHANTOBTS(lchan, bts, LOGL_DEBUG, + if (!c->target.bts->codec.hr) { + LOGPHOLCHANTOBTS(c->current.lchan, c->target.bts, LOGL_DEBUG, "tch_mode='%s' type='%s' not supported\n", get_value_string(gsm48_chan_mode_names, - lchan->tch_mode), - gsm_lchant_name(lchan->type)); + c->current.lchan->tch_mode), + gsm_lchant_name(c->current.lchan->type)); break; } - if (codec_type_is_supported(lchan->conn, GSM0808_SCT_HR1)) + if (codec_type_is_supported(c->current.lchan->conn, GSM0808_SCT_HR1)) requirement |= REQUIREMENT_A_TCHH; break; default: - LOGPHOLCHAN(lchan, LOGL_ERROR, "Unexpected channel type: neither TCH/F nor TCH/H for %s\n", - get_value_string(gsm48_chan_mode_names, lchan->tch_mode)); - return 0; + LOGPHOLCHAN(c->current.lchan, LOGL_ERROR, "Unexpected channel type: neither TCH/F nor TCH/H for %s\n", + get_value_string(gsm48_chan_mode_names, c->current.lchan->tch_mode)); + return; } break; case GSM48_CMODE_SPEECH_EFR: - if (!bts->codec.efr) { - LOGPHOBTS(bts, LOGL_DEBUG, "EFR not supported\n"); + if (!c->target.bts->codec.efr) { + LOGPHOBTS(c->target.bts, LOGL_DEBUG, "EFR not supported\n"); break; } - if (codec_type_is_supported(lchan->conn, GSM0808_SCT_FR2)) + if (codec_type_is_supported(c->current.lchan->conn, GSM0808_SCT_FR2)) requirement |= REQUIREMENT_A_TCHF; break; case GSM48_CMODE_SPEECH_AMR: - if (!bts->codec.amr) { - LOGPHOBTS(bts, LOGL_DEBUG, "AMR not supported\n"); + if (!c->target.bts->codec.amr) { + LOGPHOBTS(c->target.bts, LOGL_DEBUG, "AMR not supported\n"); break; } - if (codec_type_is_supported(lchan->conn, GSM0808_SCT_FR3)) + if (codec_type_is_supported(c->current.lchan->conn, GSM0808_SCT_FR3)) requirement |= REQUIREMENT_A_TCHF; - if (codec_type_is_supported(lchan->conn, GSM0808_SCT_HR3)) + if (codec_type_is_supported(c->current.lchan->conn, GSM0808_SCT_HR3)) requirement |= REQUIREMENT_A_TCHH; break; default: - LOGPHOLCHANTOBTS(lchan, bts, LOGL_DEBUG, "Not even considering: src is not a SPEECH mode lchan\n"); + LOGPHOLCHANTOBTS(c->current.lchan, c->target.bts, LOGL_DEBUG, "Not even considering: src is not a SPEECH mode lchan\n"); /* FIXME: should allow handover of non-speech lchans */ - return 0; + return; } /* no candidate, because new cell is incompatible */ if (!requirement) { - LOGPHOLCHANTOBTS(lchan, bts, LOGL_DEBUG, "not a candidate, because codec of MS and BTS are incompatible\n"); - return 0; + LOGPHOLCHANTOBTS(c->current.lchan, c->target.bts, LOGL_DEBUG, "not a candidate, because codec of MS and BTS are incompatible\n"); + return; } /* remove slot types that are not available */ if (!tchf_count && requirement & REQUIREMENT_A_TCHF) { - LOGPHOLCHANTOBTS(lchan, bts, LOGL_DEBUG, + LOGPHOLCHANTOBTS(c->current.lchan, c->target.bts, LOGL_DEBUG, "removing TCH/F, since all TCH/F lchans are in use\n"); requirement &= ~(REQUIREMENT_A_TCHF); } if (!tchh_count && requirement & REQUIREMENT_A_TCHH) { - LOGPHOLCHANTOBTS(lchan, bts, LOGL_DEBUG, + LOGPHOLCHANTOBTS(c->current.lchan, c->target.bts, LOGL_DEBUG, "removing TCH/H, since all TCH/H lchans are in use\n"); requirement &= ~(REQUIREMENT_A_TCHH); } if (!requirement) { - LOGPHOLCHANTOBTS(lchan, bts, LOGL_DEBUG, "not a candidate, because no suitable slots available\n"); - return 0; + LOGPHOLCHANTOBTS(c->current.lchan, c->target.bts, LOGL_DEBUG, "not a candidate, because no suitable slots available\n"); + return; } /* omit same channel type on same BTS (will not change anything) */ - if (bts == current_bts) { - switch (lchan->type) { + if (c->target.bts == c->current.bts) { + switch (c->current.lchan->type) { case GSM_LCHAN_TCH_F: requirement &= ~(REQUIREMENT_A_TCHF); break; @@ -551,9 +551,9 @@ } if (!requirement) { - LOGPHOLCHAN(lchan, LOGL_DEBUG, + LOGPHOLCHAN(c->current.lchan, LOGL_DEBUG, "Reassignment within cell not an option, no differing channel types available\n"); - return 0; + return; } } @@ -561,26 +561,26 @@ // This was useful in osmo-nitb. We're in osmo-bsc now and have no idea whether the osmo-msc does // internal or external call control. Maybe a future config switch wants to add this behavior? /* Built-in call control requires equal codec rates. Remove rates that are not equal. */ - if (lchan->tch_mode == GSM48_CMODE_SPEECH_AMR - && current_bts->network->mncc_recv != mncc_sock_from_cc) { - switch (lchan->type) { + if (c->current.lchan->tch_mode == GSM48_CMODE_SPEECH_AMR + && c->current.bts->network->mncc_recv != mncc_sock_from_cc) { + switch (c->current.lchan->type) { case GSM_LCHAN_TCH_F: if ((requirement & REQUIREMENT_A_TCHF) - && !!memcmp(¤t_bts->mr_full, &bts->mr_full, + && !!memcmp(&c->current.bts->mr_full, &c->target.bts->mr_full, sizeof(struct amr_multirate_conf))) requirement &= ~(REQUIREMENT_A_TCHF); if ((requirement & REQUIREMENT_A_TCHH) - && !!memcmp(¤t_bts->mr_full, &bts->mr_half, + && !!memcmp(&c->current.bts->mr_full, &c->target.bts->mr_half, sizeof(struct amr_multirate_conf))) requirement &= ~(REQUIREMENT_A_TCHH); break; case GSM_LCHAN_TCH_H: if ((requirement & REQUIREMENT_A_TCHF) - && !!memcmp(¤t_bts->mr_half, &bts->mr_full, + && !!memcmp(&c->current.bts->mr_half, &c->target.bts->mr_full, sizeof(struct amr_multirate_conf))) requirement &= ~(REQUIREMENT_A_TCHF); if ((requirement & REQUIREMENT_A_TCHH) - && !!memcmp(¤t_bts->mr_half, &bts->mr_half, + && !!memcmp(&c->current.bts->mr_half, &c->target.bts->mr_half, sizeof(struct amr_multirate_conf))) requirement &= ~(REQUIREMENT_A_TCHH); break; @@ -589,20 +589,20 @@ } if (!requirement) { - LOGPHOLCHANTOBTS(lchan, bts, LOGL_DEBUG, + LOGPHOLCHANTOBTS(c->current.lchan, c->target.bts, LOGL_DEBUG, "not a candidate, cannot provide identical codec rate\n"); - return 0; + return; } } #endif /* the maximum number of unsynchronized handovers must no be exceeded */ - if (current_bts != bts - && bts_handover_count(bts, HO_SCOPE_ALL) >= ho_get_hodec2_ho_max(bts->ho)) { - LOGPHOLCHANTOBTS(lchan, bts, LOGL_DEBUG, + if (c->current.bts != c->target.bts + && bts_handover_count(c->target.bts, HO_SCOPE_ALL) >= ho_get_hodec2_ho_max(c->target.bts->ho)) { + LOGPHOLCHANTOBTS(c->current.lchan, c->target.bts, LOGL_DEBUG, "not a candidate, number of allowed handovers (%d) would be exceeded\n", - ho_get_hodec2_ho_max(bts->ho)); - return 0; + ho_get_hodec2_ho_max(c->target.bts->ho)); + return; } /* Requirement B */ @@ -610,11 +610,11 @@ /* the minimum free timeslots that are defined for this cell must * be maintained _after_ handover/assignment */ if (requirement & REQUIREMENT_A_TCHF) { - if (tchf_count - 1 >= ho_get_hodec2_tchf_min_slots(bts->ho)) + if (tchf_count - 1 >= ho_get_hodec2_tchf_min_slots(c->target.bts->ho)) requirement |= REQUIREMENT_B_TCHF; } if (requirement & REQUIREMENT_A_TCHH) { - if (tchh_count - 1 >= ho_get_hodec2_tchh_min_slots(bts->ho)) + if (tchh_count - 1 >= ho_get_hodec2_tchh_min_slots(c->target.bts->ho)) requirement |= REQUIREMENT_B_TCHH; } @@ -622,8 +622,8 @@ /* the nr of free timeslots of the target cell must be >= the * free slots of the current cell _after_ handover/assignment */ - count = bts_count_free_ts(current_bts, - (lchan->type == GSM_LCHAN_TCH_H) ? + count = bts_count_free_ts(c->current.bts, + (c->current.lchan->type == GSM_LCHAN_TCH_H) ? GSM_PCHAN_TCH_H : GSM_PCHAN_TCH_F); if (requirement & REQUIREMENT_A_TCHF) { if (tchf_count - 1 >= count + 1) @@ -635,63 +635,63 @@ } /* return mask of fulfilled requirements */ - return requirement; + c->requirements = requirement; } -static uint8_t check_requirements_remote_bss(struct gsm_lchan *lchan, - const struct gsm0808_cell_id_list2 *cil) +static void check_requirements_remote_bss(struct ho_candidate *c) { uint8_t requirement = 0; unsigned int penalty_time; + c->requirements = 0; /* Requirement A */ /* the handover penalty timer must not run for this bts */ - penalty_time = conn_penalty_time_remaining(lchan->conn, cil); + penalty_time = conn_penalty_time_remaining(c->current.lchan->conn, c->target.cil); if (penalty_time) { - LOGPHOLCHANTOREMOTE(lchan, cil, LOGL_DEBUG, + LOGPHOLCHANTOREMOTE(c->current.lchan, c->target.cil, LOGL_DEBUG, "not a candidate, target BSS still in penalty time" " (%u seconds left)\n", penalty_time); - return 0; + return; } /* compatibility check for codecs -- we have no notion of what the remote BSS supports. We can * only assume that a handover would work, and use only the local requirements. */ - switch (lchan->tch_mode) { + switch (c->current.lchan->tch_mode) { case GSM48_CMODE_SPEECH_V1: - switch (lchan->type) { + switch (c->current.lchan->type) { case GSM_LCHAN_TCH_F: /* mandatory */ requirement |= REQUIREMENT_A_TCHF; break; case GSM_LCHAN_TCH_H: - if (codec_type_is_supported(lchan->conn, GSM0808_SCT_HR1)) + if (codec_type_is_supported(c->current.lchan->conn, GSM0808_SCT_HR1)) requirement |= REQUIREMENT_A_TCHH; break; default: - LOGPHOLCHAN(lchan, LOGL_ERROR, "Unexpected channel type: neither TCH/F nor TCH/H for %s\n", - get_value_string(gsm48_chan_mode_names, lchan->tch_mode)); - return 0; + LOGPHOLCHAN(c->current.lchan, LOGL_ERROR, "Unexpected channel type: neither TCH/F nor TCH/H for %s\n", + get_value_string(gsm48_chan_mode_names, c->current.lchan->tch_mode)); + return; } break; case GSM48_CMODE_SPEECH_EFR: - if (codec_type_is_supported(lchan->conn, GSM0808_SCT_FR2)) + if (codec_type_is_supported(c->current.lchan->conn, GSM0808_SCT_FR2)) requirement |= REQUIREMENT_A_TCHF; break; case GSM48_CMODE_SPEECH_AMR: - if (codec_type_is_supported(lchan->conn, GSM0808_SCT_FR3)) + if (codec_type_is_supported(c->current.lchan->conn, GSM0808_SCT_FR3)) requirement |= REQUIREMENT_A_TCHF; - if (codec_type_is_supported(lchan->conn, GSM0808_SCT_HR3)) + if (codec_type_is_supported(c->current.lchan->conn, GSM0808_SCT_HR3)) requirement |= REQUIREMENT_A_TCHH; break; default: - LOGPHOLCHAN(lchan, LOGL_DEBUG, "Not even considering: src is not a SPEECH mode lchan\n"); + LOGPHOLCHAN(c->current.lchan, LOGL_DEBUG, "Not even considering: src is not a SPEECH mode lchan\n"); /* FIXME: should allow handover of non-speech lchans */ - return 0; + return; } if (!requirement) { - LOGPHOLCHAN(lchan, LOGL_ERROR, "lchan doesn't fit its own requirements??\n"); - return 0; + LOGPHOLCHAN(c->current.lchan, LOGL_ERROR, "lchan doesn't fit its own requirements??\n"); + return; } /* Requirement B and C */ @@ -704,7 +704,7 @@ requirement |= REQUIREMENT_B_TCHH | REQUIREMENT_C_TCHH; /* return mask of fulfilled requirements */ - return requirement; + c->requirements = requirement; } /* Trigger handover or assignment depending on the target BTS */ @@ -831,7 +831,7 @@ { #define HO_CANDIDATE_FMT(tchx, TCHX) "TCH/" #TCHX "={free %d (want %d), " REQUIREMENTS_FMT "}" #define HO_CANDIDATE_ARGS(tchx, TCHX) \ - tch##tchx##_count, ho_get_hodec2_tch##tchx##_min_slots(candidate->target.bts->ho), \ + free_tch##tchx, ho_get_hodec2_tch##tchx##_min_slots(candidate->target.bts->ho), \ REQUIREMENTS_ARGS(candidate->requirements, TCHX) if (!candidate->target.bts && !candidate->target.cil) @@ -880,7 +880,7 @@ .rxlev = rxlev_current, /* same cell, same rxlev */ }, }; - c.requirements = check_requirements(c.current.lchan, c.target.bts, tchf_count, tchh_count), + check_requirements(&c, tchf_count, tchh_count); debug_candidate(&c, tchf_count, tchh_count); @@ -987,10 +987,9 @@ if (neighbor_bts) { tchf_count = bts_count_free_ts(neighbor_bts, GSM_PCHAN_TCH_F); tchh_count = bts_count_free_ts(neighbor_bts, GSM_PCHAN_TCH_H); - c.requirements = check_requirements(lchan, neighbor_bts, tchf_count, - tchh_count); + check_requirements(&c, tchf_count, tchh_count); } else - c.requirements = check_requirements_remote_bss(lchan, neighbor_cil); + check_requirements_remote_bss(&c); debug_candidate(&c, tchf_count, tchh_count); -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21987 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I086aef9cc47ad8a5376f18179024c486f6f8b779 Gerrit-Change-Number: 21987 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 22:28:51 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 5 Jan 2021 22:28:51 +0000 Subject: Change in osmo-bsc[master]: hodec2: add ho_candidate.{current, target}.free_tch References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21988 ) Change subject: hodec2: add ho_candidate.{current,target}.free_tch ...................................................................... hodec2: add ho_candidate.{current,target}.free_tch Store the number of free lchans and the min-free-slots settings in ho_candidate, instead of figuring those out in various places, to make it easier to read. Prepare for upcoming patch which also requires these values to fix a bug. Change-Id: Ie6ca5af5e8d0ebb8deaaaa637e2728008ecba517 --- M src/osmo-bsc/handover_decision_2.c 1 file changed, 46 insertions(+), 32 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/88/21988/1 diff --git a/src/osmo-bsc/handover_decision_2.c b/src/osmo-bsc/handover_decision_2.c index 7fd6941..b296bd1 100644 --- a/src/osmo-bsc/handover_decision_2.c +++ b/src/osmo-bsc/handover_decision_2.c @@ -104,6 +104,8 @@ struct gsm_lchan *lchan; struct gsm_bts *bts; int rxlev; + int free_tch; + int min_free_tch; } current; struct { struct neighbor_ident_key nik; /* neighbor ARFCN+BSIC */ @@ -111,6 +113,10 @@ struct gsm_bts *bts; int rxlev; int rxlev_afs_bias; + int free_tchf; + int min_free_tchf; + int free_tchh; + int min_free_tchh; } target; }; @@ -433,9 +439,8 @@ * * The number of free slots are checked for TCH/F and TCH/H slot types * individually. */ -static void check_requirements(struct ho_candidate *c, int tchf_count, int tchh_count) +static void check_requirements(struct ho_candidate *c) { - int count; uint8_t requirement = 0; unsigned int penalty_time; c->requirements = 0; @@ -521,12 +526,12 @@ } /* remove slot types that are not available */ - if (!tchf_count && requirement & REQUIREMENT_A_TCHF) { + if (!c->target.free_tchf && (requirement & REQUIREMENT_A_TCHF)) { LOGPHOLCHANTOBTS(c->current.lchan, c->target.bts, LOGL_DEBUG, "removing TCH/F, since all TCH/F lchans are in use\n"); requirement &= ~(REQUIREMENT_A_TCHF); } - if (!tchh_count && requirement & REQUIREMENT_A_TCHH) { + if (!c->target.free_tchh && (requirement & REQUIREMENT_A_TCHH)) { LOGPHOLCHANTOBTS(c->current.lchan, c->target.bts, LOGL_DEBUG, "removing TCH/H, since all TCH/H lchans are in use\n"); requirement &= ~(REQUIREMENT_A_TCHH); @@ -610,11 +615,11 @@ /* the minimum free timeslots that are defined for this cell must * be maintained _after_ handover/assignment */ if (requirement & REQUIREMENT_A_TCHF) { - if (tchf_count - 1 >= ho_get_hodec2_tchf_min_slots(c->target.bts->ho)) + if (c->target.free_tchf - 1 >= c->target.min_free_tchf) requirement |= REQUIREMENT_B_TCHF; } if (requirement & REQUIREMENT_A_TCHH) { - if (tchh_count - 1 >= ho_get_hodec2_tchh_min_slots(c->target.bts->ho)) + if (c->target.free_tchh - 1 >= c->target.min_free_tchh) requirement |= REQUIREMENT_B_TCHH; } @@ -622,15 +627,12 @@ /* the nr of free timeslots of the target cell must be >= the * free slots of the current cell _after_ handover/assignment */ - count = bts_count_free_ts(c->current.bts, - (c->current.lchan->type == GSM_LCHAN_TCH_H) ? - GSM_PCHAN_TCH_H : GSM_PCHAN_TCH_F); if (requirement & REQUIREMENT_A_TCHF) { - if (tchf_count - 1 >= count + 1) + if (c->target.free_tchf - 1 >= c->current.free_tch + 1) requirement |= REQUIREMENT_C_TCHF; } if (requirement & REQUIREMENT_A_TCHH) { - if (tchh_count - 1 >= count + 1) + if (c->target.free_tchh - 1 >= c->current.free_tch + 1) requirement |= REQUIREMENT_C_TCHH; } @@ -826,12 +828,11 @@ " less-or-equal congestion")) /* verbosely log about a handover candidate */ -static inline void debug_candidate(struct ho_candidate *candidate, - int tchf_count, int tchh_count) +static inline void debug_candidate(struct ho_candidate *candidate) { #define HO_CANDIDATE_FMT(tchx, TCHX) "TCH/" #TCHX "={free %d (want %d), " REQUIREMENTS_FMT "}" #define HO_CANDIDATE_ARGS(tchx, TCHX) \ - free_tch##tchx, ho_get_hodec2_tch##tchx##_min_slots(candidate->target.bts->ho), \ + candidate->target.free_tch##tchx, candidate->target.min_free_tch##tchx, \ REQUIREMENTS_ARGS(candidate->requirements, TCHX) if (!candidate->target.bts && !candidate->target.cil) @@ -858,17 +859,32 @@ HO_CANDIDATE_ARGS(f, F), HO_CANDIDATE_ARGS(h, H)); } +static void candidate_set_free_tch(struct ho_candidate *c) +{ + c->current.free_tch = bts_count_free_ts(c->current.bts, c->current.lchan->ts->pchan_is); + switch (c->current.lchan->ts->pchan_is) { + case GSM_PCHAN_TCH_F: + c->current.min_free_tch = ho_get_hodec2_tchf_min_slots(c->current.bts->ho); + break; + case GSM_PCHAN_TCH_H: + c->current.min_free_tch = ho_get_hodec2_tchh_min_slots(c->current.bts->ho); + break; + default: + break; + } + c->target.free_tchf = bts_count_free_ts(c->target.bts, GSM_PCHAN_TCH_F); + c->target.min_free_tchf = ho_get_hodec2_tchf_min_slots(c->target.bts->ho); + c->target.free_tchh = bts_count_free_ts(c->target.bts, GSM_PCHAN_TCH_H); + c->target.min_free_tchh = ho_get_hodec2_tchh_min_slots(c->target.bts->ho); +} + /* add candidate for re-assignment within the current cell */ static void collect_assignment_candidate(struct gsm_lchan *lchan, struct ho_candidate *clist, unsigned int *candidates, int rxlev_current) { struct gsm_bts *bts = lchan->ts->trx->bts; - int tchf_count, tchh_count; struct ho_candidate c; - tchf_count = bts_count_free_ts(bts, GSM_PCHAN_TCH_F); - tchh_count = bts_count_free_ts(bts, GSM_PCHAN_TCH_H); - c = (struct ho_candidate){ .current = { .lchan = lchan, @@ -880,9 +896,10 @@ .rxlev = rxlev_current, /* same cell, same rxlev */ }, }; - check_requirements(&c, tchf_count, tchh_count); + candidate_set_free_tch(&c); + check_requirements(&c); - debug_candidate(&c, tchf_count, tchh_count); + debug_candidate(&c); if (!c.requirements) return; @@ -898,8 +915,6 @@ int *neighbors_count) { struct gsm_bts *bts = lchan->ts->trx->bts; - int tchf_count = 0; - int tchh_count = 0; struct gsm_bts *neighbor_bts; const struct gsm0808_cell_id_list2 *neighbor_cil; struct neighbor_ident_key ni = { @@ -958,6 +973,7 @@ .rxlev = neigh_meas_avg(nmp, ho_get_hodec2_rxlev_neigh_avg_win(bts->ho)), }, }; + candidate_set_free_tch(&c); /* Heed rxlev hysteresis only if the RXLEV/RXQUAL/TA levels of the MS aren't critically bad and * we're just looking for an improvement. If levels are critical, we desperately need a handover @@ -985,13 +1001,11 @@ } if (neighbor_bts) { - tchf_count = bts_count_free_ts(neighbor_bts, GSM_PCHAN_TCH_F); - tchh_count = bts_count_free_ts(neighbor_bts, GSM_PCHAN_TCH_H); - check_requirements(&c, tchf_count, tchh_count); + check_requirements(&c); } else check_requirements_remote_bss(&c); - debug_candidate(&c, tchf_count, tchh_count); + debug_candidate(&c); if (!c.requirements) return; @@ -1751,7 +1765,7 @@ static void bts_congestion_check(struct gsm_bts *bts) { int min_free_tchf, min_free_tchh; - int tchf_count, tchh_count; + int free_tchf, free_tchh; global_ho_reason = HO_REASON_CONGESTION; @@ -1777,19 +1791,19 @@ return; } - tchf_count = bts_count_free_ts(bts, GSM_PCHAN_TCH_F); - tchh_count = bts_count_free_ts(bts, GSM_PCHAN_TCH_H); + free_tchf = bts_count_free_ts(bts, GSM_PCHAN_TCH_F); + free_tchh = bts_count_free_ts(bts, GSM_PCHAN_TCH_H); LOGPHOBTS(bts, LOGL_INFO, "Congestion check: (free/want-free) TCH/F=%d/%d TCH/H=%d/%d\n", - tchf_count, min_free_tchf, tchh_count, min_free_tchh); + free_tchf, min_free_tchf, free_tchh, min_free_tchh); /* only check BTS if congested */ - if (tchf_count >= min_free_tchf && tchh_count >= min_free_tchh) { + if (free_tchf >= min_free_tchf && free_tchh >= min_free_tchh) { LOGPHOBTS(bts, LOGL_DEBUG, "Not congested\n"); return; } LOGPHOBTS(bts, LOGL_DEBUG, "Attempting to resolve congestion...\n"); - bts_resolve_congestion(bts, min_free_tchf - tchf_count, min_free_tchh - tchh_count); + bts_resolve_congestion(bts, min_free_tchf - free_tchf, min_free_tchh - free_tchh); } void hodec2_congestion_check(struct gsm_network *net) -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21988 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ie6ca5af5e8d0ebb8deaaaa637e2728008ecba517 Gerrit-Change-Number: 21988 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-CC: Jenkins Builder Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 22:28:52 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 5 Jan 2021 22:28:52 +0000 Subject: Change in osmo-bsc[master]: hodec2: fix congestion oscillation bug References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21989 ) Change subject: hodec2: fix congestion oscillation bug ...................................................................... hodec2: fix congestion oscillation bug When evenly distributing congestion across cells, count the number of occupied lchans surpassing congestion, and not the overall number of free lchans -- which disregards congestion thresholds. Fix the bug shown by test_congestion_no_oscillation.ho_vty added in Idf88b4cf3d2f92f5560d73dae9e59af39d0494c0. An example to illustrate what this is about: Cell A has min-free-slots 2, and has 1 slot remaining free. Cell B has min-free-slots 4, and has 2 slots remaining free. If we decide where to place another lchan by counting congested lchans, as implemented in this patch: - Another lchan added, cell A ends up with a congestion count of 2: two more lchans in use than "allowed". - Cell B ends up with a congestion count of 3, which is worse than 2. We decide that cell A should receive the additional lchan, because it will then have a lower congestion count. However, that makes cell A completely occupied, while cell B has two lchans remaining free. There are two alternative fix variants in consideration: - count the number of free lchans, but only after reaching congestion. - calculate the percentage of load surpassing congestion. When using percentage of remaining lchans, we would see that if cell A receives another lchan, it would be 100% loaded above its congestion threshold (2 of 2 remaining lchans in use), but cell B would only be 75% loaded above its treshold (3 of 4 remaining lchans in use). So a percentage comparison would place the next lchan in cell B, leaving the last lchan of cell A free. Another option would be to count the number of remaining free lchans (after the congestion threshold is surpassed), instead of the used ones above the congestion threshold. But then, as soon as all cells are congested, configuring different thresholds would no longer have an effect. I would no longer be able to configure a particular cell to remain more free than others: once congested, only that cell would fill up until it reaches the same load as the other cells. In the field, where all cells likely have the same min-free-slots settings, this entire consideration is moot, because congestion counts correspond 1:1 to percentage between all cells and also 1:1 to remaining free slots. However, when looking at distribution across TCH/F and TCH/H, it is quite likely that min-free-slots settings differ for TCH/F and TCH/H, so this is in fact a thing to consider even for identically configured cells. Related: SYS#5259 Change-Id: Icb373dc6bfc9819446db5e96f71921781fe2026d --- M src/osmo-bsc/handover_decision_2.c M tests/handover/test_congestion_no_oscillation.ho_vty M tests/handover/test_congestion_no_oscillation2.ho_vty 3 files changed, 11 insertions(+), 30 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/89/21989/1 diff --git a/src/osmo-bsc/handover_decision_2.c b/src/osmo-bsc/handover_decision_2.c index b296bd1..64ee298 100644 --- a/src/osmo-bsc/handover_decision_2.c +++ b/src/osmo-bsc/handover_decision_2.c @@ -443,6 +443,7 @@ { uint8_t requirement = 0; unsigned int penalty_time; + int current_overbooked; c->requirements = 0; /* Requirement A */ @@ -625,14 +626,17 @@ /* Requirement C */ - /* the nr of free timeslots of the target cell must be >= the - * free slots of the current cell _after_ handover/assignment */ + /* the nr of lchans surpassing congestion on the target cell must be <= the lchans surpassing congestion on the + * current cell _after_ handover/assignment */ + current_overbooked = c->current.min_free_tch - c->current.free_tch; if (requirement & REQUIREMENT_A_TCHF) { - if (c->target.free_tchf - 1 >= c->current.free_tch + 1) + int target_overbooked = c->target.min_free_tchf - c->target.free_tchf; + if (target_overbooked + 1 <= current_overbooked - 1) requirement |= REQUIREMENT_C_TCHF; } if (requirement & REQUIREMENT_A_TCHH) { - if (c->target.free_tchh - 1 >= c->current.free_tch + 1) + int target_overbooked = c->target.min_free_tchh - c->target.free_tchh; + if (target_overbooked + 1 <= current_overbooked - 1) requirement |= REQUIREMENT_C_TCHH; } diff --git a/tests/handover/test_congestion_no_oscillation.ho_vty b/tests/handover/test_congestion_no_oscillation.ho_vty index abfaef7..a830cbe 100644 --- a/tests/handover/test_congestion_no_oscillation.ho_vty +++ b/tests/handover/test_congestion_no_oscillation.ho_vty @@ -1,6 +1,5 @@ # Do not oscillate handover from TCH/F to TCH/H on a neighbor due to congestion, # and then back to the original cell due to RXLEV. -# Currently this test script shows the undesired oscillation. create-bts trx-count 1 timeslots c+s4 TCH/F TCH/F TCH/F TCH/F TCH/F TCH/F PDCH network @@ -25,24 +24,5 @@ # measurements continue to be the same meas-rep lchan 1 0 5 0 rxlev 20 rxqual 0 ta 0 neighbors 40 -# FAIL: RXLEV oscillation back to bts 0 -expect-ho from lchan 1 0 5 0 to lchan 0 0 2 0 -expect-ts-use trx 0 0 states * TCH/F TCH/F - - - - * -expect-ts-use trx 1 0 states * TCH/F TCH/F TCH/F TCH/F - - * -meas-rep lchan 0 0 2 0 rxlev 40 rxqual 0 ta 0 neighbors 20 +# despite the better RXLEV, congestion prevents oscillation back to bts 0 expect-no-chan - -# FAIL: congestion oscillation again to bts 1 -congestion-check -expect-ho from lchan 0 0 2 0 to lchan 1 0 5 0 -expect-ts-use trx 0 0 states * TCH/F - - - - - * -expect-ts-use trx 1 0 states * TCH/F TCH/F TCH/F TCH/F TCH/H- - * - -# FAIL: RXLEV oscillation back to bts 0 -meas-rep lchan 1 0 5 0 rxlev 20 rxqual 0 ta 0 neighbors 40 -expect-ho from lchan 1 0 5 0 to lchan 0 0 2 0 -meas-rep lchan 0 0 2 0 rxlev 40 rxqual 0 ta 0 neighbors 20 - -# FAIL: congestion oscillation again to bts 1 -congestion-check -expect-ho from lchan 0 0 2 0 to lchan 1 0 5 0 diff --git a/tests/handover/test_congestion_no_oscillation2.ho_vty b/tests/handover/test_congestion_no_oscillation2.ho_vty index aee731d..44c4176 100644 --- a/tests/handover/test_congestion_no_oscillation2.ho_vty +++ b/tests/handover/test_congestion_no_oscillation2.ho_vty @@ -1,8 +1,5 @@ -# Almost identical to test_amr_oscillation.ho_vty, this has just two more TCH/H slots in BTS 1, and does not trigger the -# oscillation bug. The number of free TCH/H in BTS 1 should be unrelated to the congestion status of BTS 0, which -# illustrates that the even distribution of congestion is fundamentally flawed. -# This test script shows the desired behavior, though by common sense there should be no reason why we see the bug in -# test_amr_oscillation.ho_vty and not here. +# Almost identical to test_amr_oscillation.ho_vty, this has just two more TCH/H slots in BTS 1, and did not trigger the +# oscillation bug (which has since been fixed, so that both tests behave identically now). create-bts trx-count 1 timeslots c+s4 TCH/F TCH/F TCH/F TCH/F TCH/F TCH/F PDCH network -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21989 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Icb373dc6bfc9819446db5e96f71921781fe2026d Gerrit-Change-Number: 21989 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-CC: Jenkins Builder Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 22:33:38 2021 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Tue, 5 Jan 2021 22:33:38 +0000 Subject: Change in osmo-e1-hardware[master]: icE1usb fw: Internal API for configuring E1 rx/tx config register In-Reply-To: References: Message-ID: tnt has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21774 ) Change subject: icE1usb fw: Internal API for configuring E1 rx/tx config register ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21774 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1-hardware Gerrit-Branch: master Gerrit-Change-Id: Ib23f9b99f169ab18d730bcf67b97a7b6bf863e98 Gerrit-Change-Number: 21774 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: tnt Gerrit-Comment-Date: Tue, 05 Jan 2021 22:33:38 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 22:34:05 2021 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Tue, 5 Jan 2021 22:34:05 +0000 Subject: Change in osmo-e1-hardware[master]: icE1usb fw: Expose error conditions from E1 driver In-Reply-To: References: Message-ID: tnt has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21715 ) Change subject: icE1usb fw: Expose error conditions from E1 driver ...................................................................... Patch Set 8: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21715 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1-hardware Gerrit-Branch: master Gerrit-Change-Id: Iba3e00a2b28a2fef6dbd986bfc706c1619c3a3ed Gerrit-Change-Number: 21715 Gerrit-PatchSet: 8 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-Comment-Date: Tue, 05 Jan 2021 22:34:05 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 22:38:54 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 22:38:54 +0000 Subject: Change in osmo-e1-hardware[master]: icE1usb fw: Expose error conditions from E1 driver In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21715 ) Change subject: icE1usb fw: Expose error conditions from E1 driver ...................................................................... Patch Set 8: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21715 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1-hardware Gerrit-Branch: master Gerrit-Change-Id: Iba3e00a2b28a2fef6dbd986bfc706c1619c3a3ed Gerrit-Change-Number: 21715 Gerrit-PatchSet: 8 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-Comment-Date: Tue, 05 Jan 2021 22:38:54 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 22:39:09 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 22:39:09 +0000 Subject: Change in osmo-e1-hardware[master]: icE1usb fw: Internal API for configuring E1 rx/tx config register In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21774 ) Change subject: icE1usb fw: Internal API for configuring E1 rx/tx config register ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21774 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1-hardware Gerrit-Branch: master Gerrit-Change-Id: Ib23f9b99f169ab18d730bcf67b97a7b6bf863e98 Gerrit-Change-Number: 21774 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tnt Gerrit-Comment-Date: Tue, 05 Jan 2021 22:39:09 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 22:39:16 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 22:39:16 +0000 Subject: Change in osmo-e1-hardware[master]: osmo_e1f: Allow to transmit AIS In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21879 ) Change subject: osmo_e1f: Allow to transmit AIS ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21879 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1-hardware Gerrit-Branch: master Gerrit-Change-Id: Icc5a16ee44ecebe802c4cca0b6cc763a88b6cc05 Gerrit-Change-Number: 21879 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tnt Gerrit-Comment-Date: Tue, 05 Jan 2021 22:39:16 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 22:39:20 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 22:39:20 +0000 Subject: Change in osmo-e1-hardware[master]: icE1usb fw: Internal API for configuring E1 rx/tx config register In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21774 ) Change subject: icE1usb fw: Internal API for configuring E1 rx/tx config register ...................................................................... icE1usb fw: Internal API for configuring E1 rx/tx config register Related: OS#4675 Change-Id: Ib23f9b99f169ab18d730bcf67b97a7b6bf863e98 --- M firmware/ice40-riscv/icE1usb/e1.c M firmware/ice40-riscv/icE1usb/e1.h 2 files changed, 26 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified tnt: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/firmware/ice40-riscv/icE1usb/e1.c b/firmware/ice40-riscv/icE1usb/e1.c index b1771f5..1d8fd30 100644 --- a/firmware/ice40-riscv/icE1usb/e1.c +++ b/firmware/ice40-riscv/icE1usb/e1.c @@ -263,6 +263,29 @@ g_e1.tx.state = BOOT; } +#define TXCR_PERMITTED ( \ + E1_TX_CR_MODE_TS0_CRC_E | \ + E1_TX_CR_TICK_REMOTE | \ + E1_TX_CR_ALARM | \ + E1_TX_CR_LOOPBACK | \ + E1_TX_CR_LOOPBACK_CROSS ) + +void +e1_tx_config(uint16_t cr) +{ + g_e1.tx.cr = (g_e1.tx.cr & ~TXCR_PERMITTED) | (cr & TXCR_PERMITTED); + e1_regs->tx.csr = g_e1.tx.cr; +} + +#define RXCR_PERMITTED ( \ + E1_RX_CR_MODE_MFA ) + +void +e1_rx_config(uint16_t cr) +{ + g_e1.rx.cr = (g_e1.rx.cr & ~RXCR_PERMITTED) | (cr & RXCR_PERMITTED); + e1_regs->rx.csr = g_e1.rx.cr; +} #include "dma.h" diff --git a/firmware/ice40-riscv/icE1usb/e1.h b/firmware/ice40-riscv/icE1usb/e1.h index c438cb9..05ce19a 100644 --- a/firmware/ice40-riscv/icE1usb/e1.h +++ b/firmware/ice40-riscv/icE1usb/e1.h @@ -11,6 +11,9 @@ void e1_poll(void); void e1_debug_print(bool data); +void e1_tx_config(uint16_t cr); +void e1_rx_config(uint16_t cr); + volatile uint8_t *e1_data_ptr(int mf, int frame, int ts); unsigned int e1_data_ofs(int mf, int frame, int ts); -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21774 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1-hardware Gerrit-Branch: master Gerrit-Change-Id: Ib23f9b99f169ab18d730bcf67b97a7b6bf863e98 Gerrit-Change-Number: 21774 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tnt Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 22:39:20 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 22:39:20 +0000 Subject: Change in osmo-e1-hardware[master]: icE1usb fw: USB control request handling In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21775 ) Change subject: icE1usb fw: USB control request handling ...................................................................... icE1usb fw: USB control request handling This introduces a number of vendor-specific control requests for configuration of the icE1usb from the host software. Closes: OS#4675 Change-Id: I9d28566ba21a2a78def5e4a0ba07ecbc4a583aa9 --- M firmware/ice40-riscv/icE1usb/e1.c M firmware/ice40-riscv/icE1usb/e1.h M firmware/ice40-riscv/icE1usb/fw_app.c A firmware/ice40-riscv/icE1usb/ice1usb_proto.h M firmware/ice40-riscv/icE1usb/usb_e1.c 5 files changed, 224 insertions(+), 18 deletions(-) Approvals: Jenkins Builder: Verified tnt: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/firmware/ice40-riscv/icE1usb/e1.c b/firmware/ice40-riscv/icE1usb/e1.c index 1d8fd30..16c8c80 100644 --- a/firmware/ice40-riscv/icE1usb/e1.c +++ b/firmware/ice40-riscv/icE1usb/e1.c @@ -238,7 +238,7 @@ void -e1_init(bool clk_mode) +e1_init(uint16_t rx_cr, uint16_t tx_cr) { /* Global state init */ memset(&g_e1, 0x00, sizeof(g_e1)); @@ -248,14 +248,11 @@ e1f_reset(&g_e1.tx.fifo, 128, 128); /* Enable Rx */ - g_e1.rx.cr = E1_RX_CR_MODE_MFA | - E1_RX_CR_ENABLE; + g_e1.rx.cr = E1_RX_CR_ENABLE | rx_cr; e1_regs->rx.csr = E1_RX_CR_OVFL_CLR | g_e1.rx.cr; /* Enable Tx */ - g_e1.tx.cr = (clk_mode ? E1_TX_CR_TICK_REMOTE : E1_TX_CR_TICK_LOCAL) | - E1_TX_CR_MODE_TS0_CRC_E | - E1_TX_CR_ENABLE; + g_e1.tx.cr = E1_TX_CR_ENABLE | tx_cr; e1_regs->tx.csr = E1_TX_CR_UNFL_CLR | g_e1.tx.cr; /* State */ diff --git a/firmware/ice40-riscv/icE1usb/e1.h b/firmware/ice40-riscv/icE1usb/e1.h index 05ce19a..fcd4284 100644 --- a/firmware/ice40-riscv/icE1usb/e1.h +++ b/firmware/ice40-riscv/icE1usb/e1.h @@ -7,7 +7,7 @@ #pragma once -void e1_init(bool clk_mode); +void e1_init(uint16_t rx_cr, uint16_t tx_cr); void e1_poll(void); void e1_debug_print(bool data); diff --git a/firmware/ice40-riscv/icE1usb/fw_app.c b/firmware/ice40-riscv/icE1usb/fw_app.c index 62f4b0e..eebc21f 100644 --- a/firmware/ice40-riscv/icE1usb/fw_app.c +++ b/firmware/ice40-riscv/icE1usb/fw_app.c @@ -102,7 +102,7 @@ usb_e1_init(); /* Start */ - e1_init(false); // local tick + e1_init(0, 0); e1_active = true; led_state(true); usb_connect(); @@ -138,16 +138,6 @@ case 'O': e1_debug_print(true); break; - case 'e': - e1_init(true); - e1_active = true; - led_state(true); - break; - case 'E': - e1_init(false); - e1_active = true; - led_state(true); - break; case 'c': usb_connect(); break; diff --git a/firmware/ice40-riscv/icE1usb/ice1usb_proto.h b/firmware/ice40-riscv/icE1usb/ice1usb_proto.h new file mode 100644 index 0000000..61e12ad --- /dev/null +++ b/firmware/ice40-riscv/icE1usb/ice1usb_proto.h @@ -0,0 +1,77 @@ +/* + * ice1usb_proto.h + * + * Copyright (C) 2020 Harald Welte + * SPDX-License-Identifier: MIT + * + * Header file describing the USB protocol between the icE1usb firmware and the host + * software (currently really only osmo-e1d) + */ + +#pragma once + +/*********************************************************************** + * Control Endpoint / Device Requests + ***********************************************************************/ + +/*! returns a bit-mask of optional device capabilities (see enum e1usb_dev_capability) */ +#define ICE1USB_DEV_GET_CAPABILITIES 0x01 +#define ICE1USB_DEV_GET_FW_BUILD 0x02 + +enum e1usb_dev_capability { + /*! Does this board have a GPS-DO */ + ICE1USB_DEV_CAP_GPSDO, +}; + + +/* Interface Requests */ + +/*! returns a bit-mask of optional device capabilities (see enum e1usb_intf_capability) */ +#define ICE1USB_INTF_GET_CAPABILITIES 0x01 +#define ICE1USB_INTF_SET_TX_CFG 0x02 /*!< struct ice1usb_tx_config */ +#define ICE1USB_INTF_GET_TX_CFG 0x03 /*!< struct ice1usb_tx_config */ +#define ICE1USB_INTF_SET_RX_CFG 0x04 /*!< struct ice1usb_rx_config */ +#define ICE1USB_INTF_GET_RX_CFG 0x05 /*!< struct ice1usb_rx_config */ + +//enum e1usb_intf_capability { }; + +enum ice1usb_tx_mode { + ICE1USB_TX_MODE_TRANSP = 0, + ICE1USB_TX_MODE_TS0 = 1, + ICE1USB_TX_MODE_TS0_CRC4 = 2, + ICE1USB_TX_MODE_TS0_CRC4_E = 3, +}; + +enum ice1usb_tx_timing { + ICE1USB_TX_TIME_SRC_LOCAL = 0, + ICE1USB_TX_TIME_SRC_REMOTE = 1, +}; + +enum ice1usb_tx_ext_loopback { + ICE1USB_TX_EXT_LOOPBACK_OFF = 0, + ICE1USB_TX_EXT_LOOPBACK_SAME = 1, + ICE1USB_TX_EXT_LOOPBACK_CROSS = 2, +}; + +/* ICE1USB_INTF_{GET,SET}_TX_CFG */ +struct ice1usb_tx_config { + uint8_t mode; /*!< enum ice1usb_tx_mode */ + uint8_t timing; /*!< enum ice1usb_tx_timing */ + uint8_t ext_loopback; /*!< enum ice1usb_tx_ext_loopback */ + uint8_t alarm; /*!< 1 = transmit alarm; 0 = don't */ +} __attribute__((packed)); + + +enum ice1usb_rx_mode { + /*! transparent, unaligned bitstream */ + ICE1USB_RX_MODE_TRANSP = 0, + /*! alignment to E1 frame */ + ICE1USB_RX_MODE_FRAME = 2, + /*! alignment to E1 multiframe */ + ICE1USB_RX_MODE_MULTIFRAME = 3, +}; + +/* ICE1USB_INTF_{GET,SET}_RX_CFG */ +struct ice1usb_rx_config { + uint8_t mode; /*!< enum ice1usb_rx_mode */ +} __attribute__((packed)); diff --git a/firmware/ice40-riscv/icE1usb/usb_e1.c b/firmware/ice40-riscv/icE1usb/usb_e1.c index e37edc3..0698de5 100644 --- a/firmware/ice40-riscv/icE1usb/usb_e1.c +++ b/firmware/ice40-riscv/icE1usb/usb_e1.c @@ -15,13 +15,30 @@ #include "console.h" #include "misc.h" #include "e1.h" +#include "e1_hw.h" + +#include "ice1usb_proto.h" struct { bool running; /* are we running (transceiving USB data)? */ int out_bdi; /* buffer descriptor index for OUT EP */ int in_bdi; /* buffer descriptor index for IN EP */ + struct ice1usb_tx_config tx_cfg; + struct ice1usb_rx_config rx_cfg; } g_usb_e1; +/* default configuration at power-up */ +static const struct ice1usb_tx_config tx_cfg_default = { + .mode = ICE1USB_TX_MODE_TS0_CRC4_E, + .timing = ICE1USB_TX_TIME_SRC_LOCAL, + .ext_loopback = ICE1USB_TX_EXT_LOOPBACK_OFF, + .alarm = 0, +}; + +static const struct ice1usb_rx_config rx_cfg_default = { + .mode = ICE1USB_RX_MODE_MULTIFRAME, +}; + /* Hack */ unsigned int e1_rx_need_data(unsigned int usb_addr, unsigned int max_len, unsigned int *pos); @@ -200,6 +217,21 @@ return USB_FND_SUCCESS; } +static void _perform_tx_config(void) +{ + const struct ice1usb_tx_config *cfg = &g_usb_e1.tx_cfg; + e1_tx_config( ((cfg->mode & 3) << 1) | + ((cfg->timing & 1) << 3) | + ((cfg->alarm & 1) << 4) | + ((cfg->ext_loopback & 3) << 5) ); +} + +static void _perform_rx_config(void) +{ + const struct ice1usb_rx_config *cfg = &g_usb_e1.rx_cfg; + e1_rx_config((cfg->mode << 1)); +} + static enum usb_fnd_resp _e1_set_intf(const struct usb_intf_desc *base, const struct usb_intf_desc *sel) { @@ -213,6 +245,9 @@ if (g_usb_e1.running) return USB_FND_SUCCESS; + _perform_rx_config(); + _perform_tx_config(); + g_usb_e1.running = true; /* Configure EP1 OUT / EP2 IN */ @@ -253,15 +288,122 @@ return USB_FND_SUCCESS; } +static bool +_set_tx_mode_done(struct usb_xfer *xfer) +{ + const struct ice1usb_tx_config *cfg = (const struct ice1usb_tx_config *) xfer->data; + printf("set_tx_mode %02x%02x%02x%02x\r\n", + xfer->data[0], xfer->data[1], xfer->data[2], xfer->data[3]); + g_usb_e1.tx_cfg = *cfg; + _perform_tx_config(); + return true; +} + +static bool +_set_rx_mode_done(struct usb_xfer *xfer) +{ + const struct ice1usb_rx_config *cfg = (const struct ice1usb_rx_config *) xfer->data; + printf("set_rx_mode %02x\r\n", xfer->data[0]); + g_usb_e1.rx_cfg = *cfg; + _perform_rx_config(); + return true; +} + +/* per-interface requests */ +static enum usb_fnd_resp +_e1_ctrl_req_intf(struct usb_ctrl_req *req, struct usb_xfer *xfer) +{ + unsigned int i; + + switch (req->bRequest) { + case ICE1USB_INTF_GET_CAPABILITIES: + /* no optional capabilities yet */ + xfer->len = 0; + break; + case ICE1USB_INTF_SET_TX_CFG: + if (req->wLength < sizeof(struct ice1usb_tx_config)) + return USB_FND_ERROR; + xfer->cb_done = _set_tx_mode_done; + xfer->cb_ctx = req; + xfer->len = sizeof(struct ice1usb_tx_config); + break; + case ICE1USB_INTF_GET_TX_CFG: + if (req->wLength < sizeof(struct ice1usb_tx_config)) + return USB_FND_ERROR; + memcpy(xfer->data, &g_usb_e1.tx_cfg, sizeof(struct ice1usb_tx_config)); + xfer->len = sizeof(struct ice1usb_tx_config); + break; + case ICE1USB_INTF_SET_RX_CFG: + if (req->wLength < sizeof(struct ice1usb_rx_config)) + return USB_FND_ERROR; + xfer->cb_done = _set_rx_mode_done; + xfer->cb_ctx = req; + xfer->len = sizeof(struct ice1usb_rx_config); + break; + case ICE1USB_INTF_GET_RX_CFG: + if (req->wLength < sizeof(struct ice1usb_rx_config)) + return USB_FND_ERROR; + memcpy(xfer->data, &g_usb_e1.rx_cfg, sizeof(struct ice1usb_rx_config)); + xfer->len = sizeof(struct ice1usb_rx_config); + break; + default: + return USB_FND_ERROR; + } + + return USB_FND_SUCCESS; +} + +/* device-global requests */ +static enum usb_fnd_resp +_e1_ctrl_req_dev(struct usb_ctrl_req *req, struct usb_xfer *xfer) +{ + switch (req->bRequest) { + case ICE1USB_DEV_GET_CAPABILITIES: + xfer->data[0] = (1 << ICE1USB_DEV_CAP_GPSDO); + xfer->len = 1; + break; + default: + return USB_FND_ERROR; + } + + return USB_FND_SUCCESS; +} + + +/* USB host issues a control request to us */ +static enum usb_fnd_resp +_e1_ctrl_req(struct usb_ctrl_req *req, struct usb_xfer *xfer) +{ + if (USB_REQ_TYPE(req) != USB_REQ_TYPE_VENDOR) + return USB_FND_CONTINUE; + + switch (USB_REQ_RCPT(req)) { + case USB_REQ_RCPT_DEV: + return _e1_ctrl_req_dev(req, xfer); + case USB_REQ_RCPT_INTF: + if (req->wIndex != 0) + return USB_FND_ERROR; + return _e1_ctrl_req_intf(req, xfer); + case USB_REQ_RCPT_EP: + case USB_REQ_RCPT_OTHER: + default: + return USB_FND_ERROR; + } +} + + static struct usb_fn_drv _e1_drv = { .set_conf = _e1_set_conf, .set_intf = _e1_set_intf, .get_intf = _e1_get_intf, + .ctrl_req = _e1_ctrl_req, }; void usb_e1_init(void) { memset(&g_usb_e1, 0x00, sizeof(g_usb_e1)); + g_usb_e1.tx_cfg = tx_cfg_default; + g_usb_e1.rx_cfg = rx_cfg_default; usb_register_function_driver(&_e1_drv); } -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21775 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1-hardware Gerrit-Branch: master Gerrit-Change-Id: I9d28566ba21a2a78def5e4a0ba07ecbc4a583aa9 Gerrit-Change-Number: 21775 Gerrit-PatchSet: 6 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tnt Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 22:39:20 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 22:39:20 +0000 Subject: Change in osmo-e1-hardware[master]: icE1usb fw: Expose error conditions from E1 driver In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21715 ) Change subject: icE1usb fw: Expose error conditions from E1 driver ...................................................................... icE1usb fw: Expose error conditions from E1 driver This will allow the USB interface code to report the errors to the host PC. Related: OS#4674 Change-Id: Iba3e00a2b28a2fef6dbd986bfc706c1619c3a3ed --- M firmware/ice40-riscv/icE1usb/e1.c M firmware/ice40-riscv/icE1usb/e1.h M firmware/ice40-riscv/icE1usb/ice1usb_proto.h M firmware/ice40-riscv/icE1usb/usb_desc_app.c M firmware/ice40-riscv/icE1usb/usb_e1.c 5 files changed, 108 insertions(+), 4 deletions(-) Approvals: Jenkins Builder: Verified tnt: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/firmware/ice40-riscv/icE1usb/e1.c b/firmware/ice40-riscv/icE1usb/e1.c index 16c8c80..5e57480 100644 --- a/firmware/ice40-riscv/icE1usb/e1.c +++ b/firmware/ice40-riscv/icE1usb/e1.c @@ -232,6 +232,7 @@ int in_flight; enum e1_pipe_state state; } tx; + struct e1_error_count errors; } g_e1; @@ -360,6 +361,12 @@ return e1f_valid_frames(&g_e1.rx.fifo); } +const struct e1_error_count * +e1_get_error_count(void) +{ + return &g_e1.errors; +} + void e1_poll(void) { @@ -374,10 +381,12 @@ if (e1_regs->rx.csr & E1_RX_SR_ALIGNED) { e1_platform_led_set(0, E1P_LED_GREEN, E1P_LED_ST_ON); led_color(0, 48, 0); + g_e1.errors.flags &= ~(E1_ERR_F_LOS|E1_ERR_F_ALIGN_ERR); } else { e1_platform_led_set(0, E1P_LED_GREEN, E1P_LED_ST_BLINK); - /* TODO: completely off if rx tick counter not incrementing */ led_color(48, 0, 0); + g_e1.errors.flags |= E1_ERR_F_ALIGN_ERR; + /* TODO: completely off if rx tick counter not incrementing */ } /* Recover any done TX BD */ @@ -390,8 +399,10 @@ while ( (bd = e1_regs->rx.bd) & E1_BD_VALID ) { /* FIXME: CRC status ? */ e1f_multiframe_write_commit(&g_e1.rx.fifo); - if ((bd & (E1_BD_CRC0 | E1_BD_CRC1)) != (E1_BD_CRC0 | E1_BD_CRC1)) + if ((bd & (E1_BD_CRC0 | E1_BD_CRC1)) != (E1_BD_CRC0 | E1_BD_CRC1)) { printf("b: %03x\n", bd); + g_e1.errors.crc++; + } g_e1.rx.in_flight--; } @@ -410,6 +421,7 @@ if (!(e1_regs->rx.csr & E1_RX_SR_ALIGNED)) { printf("[!] E1 rx misalign\n"); g_e1.rx.state = RECOVER; + g_e1.errors.align++; } } @@ -418,6 +430,7 @@ if (e1_regs->rx.csr & E1_RX_SR_OVFL) { printf("[!] E1 overflow %d\n", g_e1.rx.in_flight); g_e1.rx.state = RECOVER; + g_e1.errors.ovfl++; } } @@ -449,6 +462,7 @@ if (e1_regs->tx.csr & E1_TX_SR_UNFL) { printf("[!] E1 underflow %d\n", g_e1.tx.in_flight); g_e1.tx.state = RECOVER; + g_e1.errors.unfl++; } } diff --git a/firmware/ice40-riscv/icE1usb/e1.h b/firmware/ice40-riscv/icE1usb/e1.h index fcd4284..8ba9838 100644 --- a/firmware/ice40-riscv/icE1usb/e1.h +++ b/firmware/ice40-riscv/icE1usb/e1.h @@ -14,6 +14,19 @@ void e1_tx_config(uint16_t cr); void e1_rx_config(uint16_t cr); +#define E1_ERR_F_ALIGN_ERR 0x01 +#define E1_ERR_F_LOS 0x02 + +struct e1_error_count { + uint16_t crc; + uint16_t align; + uint16_t ovfl; + uint16_t unfl; + uint8_t flags; +}; + +const struct e1_error_count *e1_get_error_count(void); + volatile uint8_t *e1_data_ptr(int mf, int frame, int ts); unsigned int e1_data_ofs(int mf, int frame, int ts); diff --git a/firmware/ice40-riscv/icE1usb/ice1usb_proto.h b/firmware/ice40-riscv/icE1usb/ice1usb_proto.h index 61e12ad..71f7236 100644 --- a/firmware/ice40-riscv/icE1usb/ice1usb_proto.h +++ b/firmware/ice40-riscv/icE1usb/ice1usb_proto.h @@ -75,3 +75,32 @@ struct ice1usb_rx_config { uint8_t mode; /*!< enum ice1usb_rx_mode */ } __attribute__((packed)); + + +/*********************************************************************** + * Interrupt Endpoint + ***********************************************************************/ + +enum ice1usb_irq_type { + ICE1USB_IRQ_T_ERRCNT = 1, +}; + +/* Ensue ro keep those in sync with e1.h */ +#define ICE1USB_ERR_F_ALIGN_ERR 0x01 +#define ICE1USB_ERR_F_LOS 0x02 + +struct ice1usb_irq_err { + /* 16-bit little-endian counters */ + uint16_t crc; + uint16_t align; + uint16_t ovfl; + uint16_t unfl; + uint8_t flags; +} __attribute__((packed)); + +struct ice1usb_irq { + uint8_t type; /*!< enum ice1usb_irq_type */ + union { + struct ice1usb_irq_err errors; + } u; +} __attribute__((packed)); diff --git a/firmware/ice40-riscv/icE1usb/usb_desc_app.c b/firmware/ice40-riscv/icE1usb/usb_desc_app.c index 9fe3968..153d70e 100644 --- a/firmware/ice40-riscv/icE1usb/usb_desc_app.c +++ b/firmware/ice40-riscv/icE1usb/usb_desc_app.c @@ -28,12 +28,14 @@ struct usb_ep_desc ep_data_in; struct usb_ep_desc ep_data_out; struct usb_ep_desc ep_fb; + struct usb_ep_desc ep_interrupt; } __attribute__ ((packed)) off; struct { struct usb_intf_desc intf; struct usb_ep_desc ep_data_in; struct usb_ep_desc ep_data_out; struct usb_ep_desc ep_fb; + struct usb_ep_desc ep_interrupt; } __attribute__ ((packed)) on; } __attribute__ ((packed)) e1; @@ -79,7 +81,7 @@ .bDescriptorType = USB_DT_INTF, .bInterfaceNumber = 0, .bAlternateSetting = 0, - .bNumEndpoints = 3, + .bNumEndpoints = 4, .bInterfaceClass = 0xff, .bInterfaceSubClass = 0xe1, .bInterfaceProtocol = 0x00, @@ -109,6 +111,14 @@ .wMaxPacketSize = 0, .bInterval = 3, }, + .ep_interrupt = { + .bLength = sizeof(struct usb_ep_desc), + .bDescriptorType = USB_DT_EP, + .bEndpointAddress = 0x83, + .bmAttributes = 0x03, + .wMaxPacketSize = 10, + .bInterval = 3, + }, }, .on = { .intf = { @@ -116,7 +126,7 @@ .bDescriptorType = USB_DT_INTF, .bInterfaceNumber = 0, .bAlternateSetting = 1, - .bNumEndpoints = 3, + .bNumEndpoints = 4, .bInterfaceClass = 0xff, .bInterfaceSubClass = 0xe1, .bInterfaceProtocol = 0x00, @@ -146,6 +156,14 @@ .wMaxPacketSize = 8, .bInterval = 3, }, + .ep_interrupt = { + .bLength = sizeof(struct usb_ep_desc), + .bDescriptorType = USB_DT_EP, + .bEndpointAddress = 0x83, + .bmAttributes = 0x03, + .wMaxPacketSize = 10, + .bInterval = 3, + }, }, }, #if 0 diff --git a/firmware/ice40-riscv/icE1usb/usb_e1.c b/firmware/ice40-riscv/icE1usb/usb_e1.c index 0698de5..bbbb24e 100644 --- a/firmware/ice40-riscv/icE1usb/usb_e1.c +++ b/firmware/ice40-riscv/icE1usb/usb_e1.c @@ -25,6 +25,7 @@ int in_bdi; /* buffer descriptor index for IN EP */ struct ice1usb_tx_config tx_cfg; struct ice1usb_rx_config rx_cfg; + struct e1_error_count last_err; } g_usb_e1; /* default configuration at power-up */ @@ -87,6 +88,29 @@ if (!g_usb_e1.running) return; + /* EP3 IRQ */ + if ((usb_ep_regs[3].in.bd[0].csr & USB_BD_STATE_MSK) != USB_BD_STATE_RDY_DATA) { + const struct e1_error_count *cur_err = e1_get_error_count(); + if (memcmp(cur_err, &g_usb_e1.last_err, sizeof(*cur_err))) { + struct ice1usb_irq errmsg = { + .type = ICE1USB_IRQ_T_ERRCNT, + .u = { + .errors = { + .crc = cur_err->crc, + .align = cur_err->align, + .ovfl = cur_err->ovfl, + .unfl = cur_err->unfl, + .flags = cur_err->flags, + } + } + }; + printf("E"); + usb_data_write(usb_ep_regs[3].in.bd[0].ptr, &errmsg, sizeof(errmsg)); + usb_ep_regs[3].in.bd[0].csr = USB_BD_STATE_RDY_DATA | USB_BD_LEN(sizeof(errmsg)); + g_usb_e1.last_err = *cur_err; + } + } + /* EP2 IN */ bdi = g_usb_e1.in_bdi; @@ -213,6 +237,7 @@ usb_ep_boot(intf, 0x01, true); usb_ep_boot(intf, 0x81, true); usb_ep_boot(intf, 0x82, true); + usb_ep_boot(intf, 0x83, true); return USB_FND_SUCCESS; } @@ -274,6 +299,11 @@ /* EP1 IN: Queue buffer */ _usb_fill_feedback_ep(); + /* EP3 IN: Interrupt */ + usb_ep_regs[3].in.status = USB_EP_TYPE_INT; + usb_ep_regs[3].in.bd[0].ptr = 68; + usb_ep_regs[3].in.bd[0].csr = 0; + return USB_FND_SUCCESS; } -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21715 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1-hardware Gerrit-Branch: master Gerrit-Change-Id: Iba3e00a2b28a2fef6dbd986bfc706c1619c3a3ed Gerrit-Change-Number: 21715 Gerrit-PatchSet: 8 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 22:39:21 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 22:39:21 +0000 Subject: Change in osmo-e1-hardware[master]: icE1usb fw: un-configure E1 when altsetting 0 is selected. In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21784 ) Change subject: icE1usb fw: un-configure E1 when altsetting 0 is selected. ...................................................................... icE1usb fw: un-configure E1 when altsetting 0 is selected. So far we started on altsetting 0->1 transition, but we didn't stop on the inverse 1->0 which typically happens when the host software (osmo-e1d) stops. Closes: OS#4676 Change-Id: I8e4817f68d8893ab2dc98fe93ce9a673e209ca63 --- M firmware/ice40-riscv/icE1usb/usb_e1.c 1 file changed, 57 insertions(+), 29 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved tnt: Looks good to me, but someone else must approve diff --git a/firmware/ice40-riscv/icE1usb/usb_e1.c b/firmware/ice40-riscv/icE1usb/usb_e1.c index bbbb24e..11402c6 100644 --- a/firmware/ice40-riscv/icE1usb/usb_e1.c +++ b/firmware/ice40-riscv/icE1usb/usb_e1.c @@ -263,46 +263,74 @@ if (base->bInterfaceNumber != 0) return USB_FND_CONTINUE; - if (sel->bAlternateSetting != 1) - return USB_FND_SUCCESS; + switch (sel->bAlternateSetting) { + case 0: + if (!g_usb_e1.running) + return USB_FND_SUCCESS; - /* Hack to avoid re-setting while running ... avoid BD desync */ - if (g_usb_e1.running) - return USB_FND_SUCCESS; + /* disable E1 rx/tx */ + e1_init(0, 0); - _perform_rx_config(); - _perform_tx_config(); + /* EP1 OUT */ + usb_ep_regs[1].out.bd[0].csr = 0; + usb_ep_regs[1].out.bd[1].csr = 0; - g_usb_e1.running = true; + /* EP1 IN (feedback) */ + usb_ep_regs[1].in.bd[0].csr = 0; - /* Configure EP1 OUT / EP2 IN */ - usb_ep_regs[1].out.status = USB_EP_TYPE_ISOC | USB_EP_BD_DUAL; /* Type=Isochronous, dual buffered */ - usb_ep_regs[2].in.status = USB_EP_TYPE_ISOC | USB_EP_BD_DUAL; /* Type=Isochronous, dual buffered */ + /* EP2 IN (data) */ + usb_ep_regs[2].in.bd[0].csr = 0; + usb_ep_regs[2].in.bd[1].csr = 0; - /* Configure EP1 IN (feedback) */ - usb_ep_regs[1].in.status = USB_EP_TYPE_ISOC; /* Type=Isochronous, single buffered */ + /* EP3 IN: Interrupt */ + usb_ep_regs[3].in.bd[0].csr = 0; - /* EP2 IN: Prepare two buffers */ - usb_ep_regs[2].in.bd[0].ptr = 1024; - usb_ep_regs[2].in.bd[0].csr = 0; + g_usb_e1.running = false; + break; + case 1: + /* Hack to avoid re-setting while running ... avoid BD desync */ + if (g_usb_e1.running) + return USB_FND_SUCCESS; - usb_ep_regs[2].in.bd[1].ptr = 1536; - usb_ep_regs[2].in.bd[1].csr = 0; + _perform_rx_config(); + _perform_tx_config(); - /* EP1 OUT: Queue two buffers */ - usb_ep_regs[1].out.bd[0].ptr = 1024; - usb_ep_regs[1].out.bd[0].csr = USB_BD_STATE_RDY_DATA | USB_BD_LEN(388); + g_usb_e1.running = true; - usb_ep_regs[1].out.bd[1].ptr = 1536; - usb_ep_regs[1].out.bd[1].csr = USB_BD_STATE_RDY_DATA | USB_BD_LEN(388); + /* Configure EP1 OUT / EP2 IN */ + usb_ep_regs[1].out.status = USB_EP_TYPE_ISOC | USB_EP_BD_DUAL; /* Type=Isochronous, dual buffered */ + usb_ep_regs[2].in.status = USB_EP_TYPE_ISOC | USB_EP_BD_DUAL; /* Type=Isochronous, dual buffered */ - /* EP1 IN: Queue buffer */ - _usb_fill_feedback_ep(); + /* Configure EP1 IN (feedback) */ + usb_ep_regs[1].in.status = USB_EP_TYPE_ISOC; /* Type=Isochronous, single buffered */ - /* EP3 IN: Interrupt */ - usb_ep_regs[3].in.status = USB_EP_TYPE_INT; - usb_ep_regs[3].in.bd[0].ptr = 68; - usb_ep_regs[3].in.bd[0].csr = 0; + /* EP2 IN: Prepare two buffers */ + g_usb_e1.in_bdi = 0; + usb_ep_regs[2].in.bd[0].ptr = 1024; + usb_ep_regs[2].in.bd[0].csr = 0; + + usb_ep_regs[2].in.bd[1].ptr = 1536; + usb_ep_regs[2].in.bd[1].csr = 0; + + /* EP1 OUT: Queue two buffers */ + g_usb_e1.out_bdi = 0; + usb_ep_regs[1].out.bd[0].ptr = 1024; + usb_ep_regs[1].out.bd[0].csr = USB_BD_STATE_RDY_DATA | USB_BD_LEN(388); + + usb_ep_regs[1].out.bd[1].ptr = 1536; + usb_ep_regs[1].out.bd[1].csr = USB_BD_STATE_RDY_DATA | USB_BD_LEN(388); + + /* EP1 IN: Queue buffer */ + _usb_fill_feedback_ep(); + + /* EP3 IN: Interrupt */ + usb_ep_regs[3].in.status = USB_EP_TYPE_INT; + usb_ep_regs[3].in.bd[0].ptr = 68; + usb_ep_regs[3].in.bd[0].csr = 0; + break; + default: + return USB_FND_ERROR; + } return USB_FND_SUCCESS; } -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21784 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1-hardware Gerrit-Branch: master Gerrit-Change-Id: I8e4817f68d8893ab2dc98fe93ce9a673e209ca63 Gerrit-Change-Number: 21784 Gerrit-PatchSet: 7 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tnt Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 22:39:21 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 22:39:21 +0000 Subject: Change in osmo-e1-hardware[master]: osmo_e1f: Allow to transmit AIS In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21879 ) Change subject: osmo_e1f: Allow to transmit AIS ...................................................................... osmo_e1f: Allow to transmit AIS AIS is an all-1 bit-pattern which is used by intermediate equipment to indicate that the link somewhere upstream is lost. Change-Id: Icc5a16ee44ecebe802c4cca0b6cc763a88b6cc05 --- M software/obsolete/osmo_e1f.c M software/obsolete/osmo_e1f.h 2 files changed, 6 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved tnt: Looks good to me, but someone else must approve diff --git a/software/obsolete/osmo_e1f.c b/software/obsolete/osmo_e1f.c index 2c3fcfb..fa64e17 100644 --- a/software/obsolete/osmo_e1f.c +++ b/software/obsolete/osmo_e1f.c @@ -292,6 +292,11 @@ { int i; + if (e1i->tx.ais) { + memset(out_frame, 0xff, 32); + return 0; + } + /* generate TS0 */ out_frame[0] = e1_pull_ts0(e1i); diff --git a/software/obsolete/osmo_e1f.h b/software/obsolete/osmo_e1f.h index c9d4778..0b423d9 100644 --- a/software/obsolete/osmo_e1f.h +++ b/software/obsolete/osmo_e1f.h @@ -10,6 +10,7 @@ struct osmo_e1f_tx_state { bool remote_alarm; bool crc4_error; + bool ais; /* lower 5 bits: Sa4..Sa8 */ uint8_t sa4_sa8; /* frame number 0..15 */ -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21879 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1-hardware Gerrit-Branch: master Gerrit-Change-Id: Icc5a16ee44ecebe802c4cca0b6cc763a88b6cc05 Gerrit-Change-Number: 21879 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tnt Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 22:46:10 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 22:46:10 +0000 Subject: Change in osmo-e1d[master]: Evaluate received E and A bits in TS0 In-Reply-To: References: Message-ID: Hello Jenkins Builder, tnt, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-e1d/+/21808 to look at the new patch set (#4). Change subject: Evaluate received E and A bits in TS0 ...................................................................... Evaluate received E and A bits in TS0 Related: OS#4917 Change-Id: I7e1c919518b3418e973b7ae5bedd5a6dd1c2adec --- M src/e1d.h M src/intf_line.c M src/mux_demux.c M src/usb.c M src/vpair.c M src/vty.c 6 files changed, 85 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1d refs/changes/08/21808/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/21808 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I7e1c919518b3418e973b7ae5bedd5a6dd1c2adec Gerrit-Change-Number: 21808 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: tnt Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 22:46:33 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 22:46:33 +0000 Subject: Change in osmo-e1d[master]: Evaluate received E and A bits in TS0 In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/21808 ) Change subject: Evaluate received E and A bits in TS0 ...................................................................... Patch Set 4: (1 comment) https://gerrit.osmocom.org/c/osmo-e1d/+/21808/3/src/mux_demux.c File src/mux_demux.c: https://gerrit.osmocom.org/c/osmo-e1d/+/21808/3/src/mux_demux.c at 358 PS3, Line 358: uint8_t frame_nr = frame_base + i; > As noted at the end of the previous patch set comment, I think the masking would need to be done her [?] Ack -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/21808 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I7e1c919518b3418e973b7ae5bedd5a6dd1c2adec Gerrit-Change-Number: 21808 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: tnt Gerrit-Comment-Date: Tue, 05 Jan 2021 22:46:33 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: tnt Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 5 23:22:28 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 5 Jan 2021 23:22:28 +0000 Subject: Change in libosmocore[master]: Add inter-thread queue In-Reply-To: References: Message-ID: Hello Jenkins Builder, neels, pespin, fixeria, daniel, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/21930 to look at the new patch set (#3). Change subject: Add inter-thread queue ...................................................................... Add inter-thread queue This adds an inter-thread queue "it_q" to libosmocore. With it_q, one can perform thread-safe enqueing of messages to another thread, who will receive the related messages triggered via an eventfd handled in the usual libosmocore select loop abstraction. Change-Id: Ie7d0c5fec715a2a577fae014b0b8a0e9c38418ef --- M configure.ac M include/Makefile.am A include/osmocom/core/it_q.h M src/Makefile.am A src/it_q.c M tests/Makefile.am A tests/it_q/it_q_test.c A tests/it_q/it_q_test.ok M tests/testsuite.at 9 files changed, 487 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/30/21930/3 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21930 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie7d0c5fec715a2a577fae014b0b8a0e9c38418ef Gerrit-Change-Number: 21930 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 01:09:26 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 6 Jan 2021 01:09:26 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: vty: clarify and improve some deprecation messages References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/21990 ) Change subject: osmo-bts-trx: vty: clarify and improve some deprecation messages ...................................................................... osmo-bts-trx: vty: clarify and improve some deprecation messages Change-Id: I22b69eccfa50d178bd36bf770f7158ec441c9923 Related: SYS#4918 --- M src/osmo-bts-trx/trx_vty.c 1 file changed, 8 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/90/21990/1 diff --git a/src/osmo-bts-trx/trx_vty.c b/src/osmo-bts-trx/trx_vty.c index 55a7ee7..49403d4 100644 --- a/src/osmo-bts-trx/trx_vty.c +++ b/src/osmo-bts-trx/trx_vty.c @@ -196,7 +196,8 @@ "Enable MS power control loop\nTarget RSSI value (transceiver specific, " "should be 6dB or more above noise floor)\n") { - vty_out (vty, "'osmotrx ms-power-loop' is deprecated, use 'uplink-power-target' instead%s", VTY_NEWLINE); + vty_out(vty, "'%s' is deprecated, MS Power Control is now managed by BSC%s", + self->string, VTY_NEWLINE); g_bts->ul_power_ctrl.target_dbm = atoi(argv[0]); @@ -207,7 +208,8 @@ "no osmotrx ms-power-loop", NO_STR OSMOTRX_STR "Disable MS power control loop\n") { - vty_out (vty, "'no osmotrx ms-power-loop' is deprecated, use of BTS control loop is managed by BSC%s", VTY_NEWLINE); + vty_out(vty, "'%s' is deprecated, MS Power Control is now managed by BSC%s", + self->string, VTY_NEWLINE); return CMD_SUCCESS; } @@ -216,7 +218,8 @@ "osmotrx timing-advance-loop", OSMOTRX_STR "Enable timing advance control loop\n") { - vty_out (vty, "'osmotrx timing-advance-loop' is deprecated, ta control is now active by default%s", VTY_NEWLINE); + vty_out(vty, "'%s' is deprecated, Timing Advance loop is now active by default%s", + self->string, VTY_NEWLINE); return CMD_SUCCESS; } @@ -224,7 +227,8 @@ "no osmotrx timing-advance-loop", NO_STR OSMOTRX_STR "Disable timing advance control loop\n") { - vty_out (vty, "'no osmotrx timing-advance-loop' is deprecated, ta control is now active by default%s", VTY_NEWLINE); + vty_out(vty, "'%s' is deprecated, Timing Advance loop is now active by default%s", + self->string, VTY_NEWLINE); return CMD_SUCCESS; } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21990 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I22b69eccfa50d178bd36bf770f7158ec441c9923 Gerrit-Change-Number: 21990 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 01:09:27 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 6 Jan 2021 01:09:27 +0000 Subject: Change in osmo-bts[master]: power_control: vty: re-use cfg_bts_ul_power_target() References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/21991 ) Change subject: power_control: vty: re-use cfg_bts_ul_power_target() ...................................................................... power_control: vty: re-use cfg_bts_ul_power_target() This reduces code duplication by defining an alias. Change-Id: I37f51d426fcf008c9d9e933827de70ab7b072a94 Related: SYS#4918 --- M src/common/vty.c 1 file changed, 14 insertions(+), 17 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/91/21991/1 diff --git a/src/common/vty.c b/src/common/vty.c index ff7ec12..52478b8 100644 --- a/src/common/vty.c +++ b/src/common/vty.c @@ -632,29 +632,26 @@ CMD_ATTR_IMMEDIATE) { struct gsm_bts *bts = vty->index; + int rxlev_dbm = atoi(argv[0]); + int hyst = 0; - bts->ul_power_ctrl.target_dbm = atoi(argv[0]); - bts->ul_power_ctrl.hysteresis_db = 0; + if (argc > 1) /* optional argument */ + hyst = atoi(argv[1]); + + bts->ul_power_ctrl.target_dbm = rxlev_dbm; + bts->ul_power_ctrl.hysteresis_db = hyst; return CMD_SUCCESS; } /* FIXME: libosmovty is unable to handle 'foo <-110-0> [bar <1-25>]' */ -DEFUN_ATTR(cfg_bts_ul_power_target_hysteresis, - cfg_bts_ul_power_target_hysteresis_cmd, - UL_POWER_TARGET_CMD " hysteresis <1-25>", - UL_POWER_TARGET_CMD_DESC - "Target Rx Level hysteresis\n" - "Tolerable deviation in dBm\n", - CMD_ATTR_IMMEDIATE) -{ - struct gsm_bts *bts = vty->index; - - bts->ul_power_ctrl.target_dbm = atoi(argv[0]); - bts->ul_power_ctrl.hysteresis_db = atoi(argv[1]); - - return CMD_SUCCESS; -} +DEFUN_CMD_ELEMENT(cfg_bts_ul_power_target, + cfg_bts_ul_power_target_hysteresis_cmd, + UL_POWER_TARGET_CMD " hysteresis <1-25>", + UL_POWER_TARGET_CMD_DESC + "Target Rx Level hysteresis\n" + "Tolerable deviation in dBm\n", + CMD_ATTR_IMMEDIATE, 0); DEFUN_ATTR(cfg_no_bts_ul_power_filter, cfg_bts_no_ul_power_filter_cmd, -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21991 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I37f51d426fcf008c9d9e933827de70ab7b072a94 Gerrit-Change-Number: 21991 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 01:09:27 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 6 Jan 2021 01:09:27 +0000 Subject: Change in osmo-bts[master]: power_control: vty: deprecate 'uplink-power-control' commands References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/21992 ) Change subject: power_control: vty: deprecate 'uplink-power-control' commands ...................................................................... power_control: vty: deprecate 'uplink-power-control' commands MS/BS Power Control parameters have been recently moved to the BSC and now signaled to the BTS over the A-bis/RSL link. Let's make sure that the existing VTY commands for Uplink Power Control do: - trigger deprecation warnings if present in the config file, - not show up in the online VTY help nor VTY reference, - affect the fall-back parameters in 'struct gsm_bts', - still get printed by 'show running-config' command. Change-Id: Icbd9a7d31ce6723294130a31a179a002fccb4612 Related: SYS#4918 --- M src/common/vty.c 1 file changed, 62 insertions(+), 24 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/92/21992/1 diff --git a/src/common/vty.c b/src/common/vty.c index 52478b8..326e332 100644 --- a/src/common/vty.c +++ b/src/common/vty.c @@ -228,6 +228,37 @@ return CMD_SUCCESS; } +static void config_write_dpc_params(struct vty *vty, const char *prefix, + const struct gsm_power_ctrl_params *params) +{ + const struct gsm_power_ctrl_meas_params *mp = ¶ms->rxlev_meas; + + if (mp->lower_thresh != power_ctrl_params_def.rxlev_meas.lower_thresh || + mp->upper_thresh != power_ctrl_params_def.rxlev_meas.upper_thresh) { + int target = (mp->lower_thresh + mp->upper_thresh) / 2; + int hyst = (mp->upper_thresh - mp->lower_thresh) / 2; + + vty_out(vty, " %s-power-target %d", prefix, rxlev2dbm(target)); + if (hyst > 0) + vty_out(vty, " hysteresis %d", hyst); + vty_out(vty, "%s", VTY_NEWLINE); + } + + /* MS Tx power filtering algorithm and parameters */ + switch (mp->algo) { + case GSM_PWR_CTRL_MEAS_AVG_ALGO_OSMO_EWMA: /* EWMA is the default */ + if (mp->ewma.alpha != power_ctrl_params_def.rxlev_meas.ewma.alpha) + vty_out(vty, " %s-power-filtering algo ewma beta %u%s", + prefix, 100 - mp->ewma.alpha, VTY_NEWLINE); + break; + /* Other algorithm cannot be set via the VTY */ + case BTS_PF_ALGO_NONE: + default: + vty_out(vty, " no %s-power-filtering%s", prefix, VTY_NEWLINE); + break; + } +} + static void config_write_bts_single(struct vty *vty, const struct gsm_bts *bts) { const struct gsm_bts_trx *trx; @@ -255,22 +286,9 @@ VTY_NEWLINE); vty_out(vty, " paging lifetime %u%s", paging_get_lifetime(bts->paging_state), VTY_NEWLINE); - vty_out(vty, " uplink-power-target %d", bts->ul_power_ctrl.target_dbm); - if (bts->ul_power_ctrl.hysteresis_db > 0) - vty_out(vty, " hysteresis %d", bts->ul_power_ctrl.hysteresis_db); - vty_out(vty, "%s", VTY_NEWLINE); - /* MS Tx power filtering algorithm and parameters */ - switch (bts->ul_power_ctrl.pf_algo) { - case BTS_PF_ALGO_EWMA: - vty_out(vty, " uplink-power-filtering algo ewma beta %u%s", - 100 - bts->ul_power_ctrl.pf.ewma.alpha, VTY_NEWLINE); - break; - case BTS_PF_ALGO_NONE: - default: - vty_out(vty, " no uplink-power-filtering%s", VTY_NEWLINE); - break; - } + /* Fall-back MS Power Control parameters may be changed by the user */ + config_write_dpc_params(vty, "uplink", &bts->ms_dpc_params); if (bts->agch_queue.thresh_level != GSM_BTS_AGCH_QUEUE_THRESH_LEVEL_DEFAULT || bts->agch_queue.low_level != GSM_BTS_AGCH_QUEUE_LOW_LEVEL_DEFAULT @@ -627,10 +645,16 @@ "Set the nominal target Rx Level for uplink power control loop\n" \ "Target uplink Rx level in dBm\n" +#define UL_POWER_DEPR_MSG(fmt, args...) \ + vty_out(vty, "%% Command '%s' has been deprecated.%s" \ + "%% MS/BS Power control parameters should be configured in osmo-bsc: " \ + fmt, self->string, VTY_NEWLINE, ##args) + DEFUN_ATTR(cfg_bts_ul_power_target, cfg_bts_ul_power_target_cmd, UL_POWER_TARGET_CMD, UL_POWER_TARGET_CMD_DESC, - CMD_ATTR_IMMEDIATE) + CMD_ATTR_DEPRECATED) { + struct gsm_power_ctrl_meas_params *mp; struct gsm_bts *bts = vty->index; int rxlev_dbm = atoi(argv[0]); int hyst = 0; @@ -638,8 +662,13 @@ if (argc > 1) /* optional argument */ hyst = atoi(argv[1]); - bts->ul_power_ctrl.target_dbm = rxlev_dbm; - bts->ul_power_ctrl.hysteresis_db = hyst; + mp = &bts->ms_dpc_params.rxlev_meas; + mp->lower_thresh = dbm2rxlev(rxlev_dbm - hyst); + mp->upper_thresh = dbm2rxlev(rxlev_dbm + hyst); + + UL_POWER_DEPR_MSG("use 'rxlev-thresh lower %u upper %u'.%s", + mp->lower_thresh, mp->upper_thresh, + VTY_NEWLINE); return CMD_SUCCESS; } @@ -651,17 +680,21 @@ UL_POWER_TARGET_CMD_DESC "Target Rx Level hysteresis\n" "Tolerable deviation in dBm\n", - CMD_ATTR_IMMEDIATE, 0); + CMD_ATTR_DEPRECATED, 0); DEFUN_ATTR(cfg_no_bts_ul_power_filter, cfg_bts_no_ul_power_filter_cmd, "no uplink-power-filtering", NO_STR "Disable filtering for uplink power control loop\n", - CMD_ATTR_IMMEDIATE) + CMD_ATTR_DEPRECATED) { + struct gsm_power_ctrl_meas_params *mp; struct gsm_bts *bts = vty->index; - bts->ul_power_ctrl.pf_algo = BTS_PF_ALGO_NONE; + mp = &bts->ms_dpc_params.rxlev_meas; + mp->algo = GSM_PWR_CTRL_MEAS_AVG_ALGO_NONE; + + UL_POWER_DEPR_MSG("use 'no rxlev-avg'.%s", VTY_NEWLINE); return CMD_SUCCESS; } @@ -674,12 +707,17 @@ "Exponentially Weighted Moving Average (EWMA)\n" "Smoothing factor (in %): beta = (100 - alpha)\n" "1% - lowest smoothing, 99% - highest smoothing\n", - CMD_ATTR_IMMEDIATE) + CMD_ATTR_DEPRECATED) { + struct gsm_power_ctrl_meas_params *mp; struct gsm_bts *bts = vty->index; - bts->ul_power_ctrl.pf_algo = BTS_PF_ALGO_EWMA; - bts->ul_power_ctrl.pf.ewma.alpha = 100 - atoi(argv[0]); + mp = &bts->ms_dpc_params.rxlev_meas; + mp->algo = GSM_PWR_CTRL_MEAS_AVG_ALGO_OSMO_EWMA; + mp->ewma.alpha = 100 - atoi(argv[0]); + + UL_POWER_DEPR_MSG("use 'rxlev-avg algo osmo-ewma beta %s'.%s", + argv[0], VTY_NEWLINE); return CMD_SUCCESS; } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21992 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Icbd9a7d31ce6723294130a31a179a002fccb4612 Gerrit-Change-Number: 21992 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 01:09:27 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 6 Jan 2021 01:09:27 +0000 Subject: Change in osmo-bts[master]: power_control: migrate MS/BS control loops to the new params References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/21993 ) Change subject: power_control: migrate MS/BS control loops to the new params ...................................................................... power_control: migrate MS/BS control loops to the new params In change [1] the new power control structures and default params were introduced. In change [2], the existing VTY commands for MS power control in the BTS were deprecated and changed to use the new structures as storage. Finally, in change [3], handling of the power control parameters on the A-bis/RSL was implemented. This change is the final logical step in the mentioned chain: it makes both MS/BS power control loops use the new parameters, and removes the old structures. The actual implementation of both power control loops remains the same, however the expected output of some unit tests for the Downlink loop needs to be changed: - TC_fixed_mode: disabling dynamic power control becomes a separate step of the test script since the field 'fixed' is removed; - TC_rxlev_target: RxLev thresholds are printed 'as-is'. Not all of the new parameters are used by the power control loops yet. Further improvements to be done in the follow up commits. [1] I6d41eb238aa6d4f5b77596c5477c2ecbe86de2a8 [2] Icbd9a7d31ce6723294130a31a179a002fccb4612 [3] I5a901eca5a78a0335a6954064e602e65cda85390 Change-Id: Ib18f84c40227841d95a36063a6789bf63054fc2e Related: SYS#4918 --- M include/osmo-bts/bts.h M include/osmo-bts/gsm_data.h M src/common/bts.c M src/common/power_control.c M src/common/rsl.c M src/common/vty.c M src/osmo-bts-trx/trx_vty.c M tests/power/bs_power_loop_test.c M tests/power/bs_power_loop_test.ok M tests/power/ms_power_loop_test.c 10 files changed, 140 insertions(+), 144 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/93/21993/1 diff --git a/include/osmo-bts/bts.h b/include/osmo-bts/bts.h index 0b224be..f6389ad 100644 --- a/include/osmo-bts/bts.h +++ b/include/osmo-bts/bts.h @@ -321,10 +321,6 @@ bool vty_override; /* OML value overridden by VTY */ } radio_link_timeout; - /* Uplink/Downlink power control (legacy parameters) */ - struct bts_power_ctrl_params ul_power_ctrl; - struct bts_power_ctrl_params dl_power_ctrl; - /* Default (fall-back) Dynamic Power Control parameters for all transceivers */ struct gsm_power_ctrl_params bs_dpc_params; /* BS Dynamic Power Control */ struct gsm_power_ctrl_params ms_dpc_params; /* MS Dynamic Power Control */ diff --git a/include/osmo-bts/gsm_data.h b/include/osmo-bts/gsm_data.h index b9e0e88..6efc717 100644 --- a/include/osmo-bts/gsm_data.h +++ b/include/osmo-bts/gsm_data.h @@ -222,7 +222,6 @@ * (attenuation, in dB). */ uint8_t current; uint8_t max; - bool fixed; /* Scaled up (100 times) average UL/DL RxLev (in dBm) */ int avg100_rxlev_dbm; diff --git a/src/common/bts.c b/src/common/bts.c index de07957..06a5ccb 100644 --- a/src/common/bts.c +++ b/src/common/bts.c @@ -330,22 +330,6 @@ bts->rtp_port_range_next = bts->rtp_port_range_start; bts->rtp_ip_dscp = -1; - /* Default UL/DL power control parameters (legacy) */ - bts->ul_power_ctrl = bts->dl_power_ctrl = \ - (struct bts_power_ctrl_params) { - .target_dbm = -75, - .hysteresis_db = 3, /* -78 .. -72 dBm */ - .raise_step_max_db = PWR_RAISE_MAX_DB, - .lower_step_max_db = PWR_LOWER_MAX_DB, - .pf_algo = BTS_PF_ALGO_EWMA, - .pf = { - .ewma = { - /* 50% smoothing */ - .alpha = 50 - } - } - }; - /* Default (fall-back) MS/BS Power control parameters */ bts->bs_dpc_params = power_ctrl_params_def; bts->ms_dpc_params = power_ctrl_params_def; diff --git a/src/common/power_control.c b/src/common/power_control.c index 44a8046..45d06cc 100644 --- a/src/common/power_control.c +++ b/src/common/power_control.c @@ -82,42 +82,52 @@ return *Avg100 / EWMA_SCALE_FACTOR; } +/* Calculate target RxLev value from lower/upper thresholds */ +#define CALC_TARGET(mp) \ + (mp.lower_thresh + mp.upper_thresh) / 2 + /* Calculate a 'delta' value (for the given MS/BS power control state and parameters) * to be applied to the current Tx power level to approach the target level. */ -static int calc_delta(const struct bts_power_ctrl_params *params, +static int calc_delta(const struct gsm_power_ctrl_params *params, struct lchan_power_ctrl_state *state, const int rxlev_dbm) { int rxlev_dbm_avg; + uint8_t rxlev_avg; int delta; - /* Filter input value(s) to reduce unnecessary Tx power oscillations */ - switch (params->pf_algo) { - case BTS_PF_ALGO_EWMA: + /* Filter RxLev value to reduce unnecessary Tx power oscillations */ + switch (params->rxlev_meas.algo) { + case GSM_PWR_CTRL_MEAS_AVG_ALGO_OSMO_EWMA: rxlev_dbm_avg = do_pf_ewma(&state->avg100_rxlev_dbm, rxlev_dbm, - params->pf.ewma.alpha); + params->rxlev_meas.ewma.alpha); break; - case BTS_PF_ALGO_NONE: + /* TODO: implement other pre-processing methods */ + case GSM_PWR_CTRL_MEAS_AVG_ALGO_NONE: default: /* No filtering (pass through) */ rxlev_dbm_avg = rxlev_dbm; } + /* FIXME: avoid this conversion, accept RxLev as-is */ + rxlev_avg = dbm2rxlev(rxlev_dbm_avg); + + /* Check if RxLev is within the threshold window */ + if (rxlev_avg >= params->rxlev_meas.lower_thresh && + rxlev_avg <= params->rxlev_meas.upper_thresh) + return 0; + /* How many dBs measured power should be increased (+) or decreased (-) * to reach expected power. */ - delta = params->target_dbm - rxlev_dbm_avg; - - /* Tolerate small deviations from 'rx-target' */ - if (abs(delta) <= params->hysteresis_db) - return 0; + delta = CALC_TARGET(params->rxlev_meas) - rxlev_avg; /* Don't ever change more than PWR_{LOWER,RAISE}_MAX_DBM during one loop * iteration, i.e. reduce the speed at which the MS transmit power can * change. A higher value means a lower level (and vice versa) */ - if (delta > params->raise_step_max_db) - delta = params->raise_step_max_db; - else if (delta < -params->lower_step_max_db) - delta = -params->lower_step_max_db; + if (delta > params->inc_step_size_db) + delta = params->inc_step_size_db; + else if (delta < -params->red_step_size_db) + delta = -params->red_step_size_db; return delta; } @@ -131,18 +141,17 @@ const uint8_t ms_power_lvl, const int8_t ul_rssi_dbm) { + struct lchan_power_ctrl_state *state = &lchan->ms_power_ctrl; + const struct gsm_power_ctrl_params *params = state->dpc_params; struct gsm_bts_trx *trx = lchan->ts->trx; struct gsm_bts *bts = trx->bts; enum gsm_band band = bts->band; int8_t new_power_lvl; /* TS 05.05 power level */ int8_t ms_dbm, new_dbm, current_dbm, bsc_max_dbm; - const struct bts_power_ctrl_params *params = &bts->ul_power_ctrl; - struct lchan_power_ctrl_state *state = &lchan->ms_power_ctrl; - if (!trx_ms_pwr_ctrl_is_osmo(trx)) return 0; - if (state->fixed) + if (params == NULL) return 0; ms_dbm = ms_pwr_dbm(band, ms_power_lvl); @@ -180,11 +189,14 @@ return 0; } + /* FIXME: this is only needed for logging, print thresholds instead */ + int target_dbm = rxlev2dbm(CALC_TARGET(params->rxlev_meas)); + if (state->current == new_power_lvl) { LOGPLCHAN(lchan, DLOOP, LOGL_INFO, "Keeping MS power at control level %d, %d dBm " "(rx-ms-pwr-lvl %" PRIu8 ", max-ms-pwr-lvl %" PRIu8 ", rx-current %d dBm, rx-target %d dBm)\n", new_power_lvl, new_dbm, ms_power_lvl, state->max, - ul_rssi_dbm, params->target_dbm); + ul_rssi_dbm, target_dbm); return 0; } @@ -193,7 +205,7 @@ "(rx-ms-pwr-lvl %" PRIu8 ", max-ms-pwr-lvl %" PRIu8 ", rx-current %d dBm, rx-target %d dBm)\n", (new_dbm > current_dbm) ? "Raising" : "Lowering", state->current, current_dbm, new_power_lvl, new_dbm, - ms_power_lvl, state->max, ul_rssi_dbm, params->target_dbm); + ms_power_lvl, state->max, ul_rssi_dbm, target_dbm); /* store the resulting new MS power level in the lchan */ state->current = new_power_lvl; @@ -209,18 +221,15 @@ int lchan_bs_pwr_ctrl(struct gsm_lchan *lchan, const struct gsm48_hdr *gh) { - struct gsm_bts_trx *trx = lchan->ts->trx; - struct gsm_bts *bts = trx->bts; + struct lchan_power_ctrl_state *state = &lchan->bs_power_ctrl; + const struct gsm_power_ctrl_params *params = state->dpc_params; uint8_t rxqual_full, rxqual_sub; uint8_t rxlev_full, rxlev_sub; uint8_t rxqual, rxlev; int delta, new; - const struct bts_power_ctrl_params *params = &bts->dl_power_ctrl; - struct lchan_power_ctrl_state *state = &lchan->bs_power_ctrl; - - /* Check if BS Power Control is enabled */ - if (state->fixed) + /* Check if dynamic BS Power Control is enabled */ + if (params == NULL) return 0; /* Check if this is a Measurement Report */ if (gh->proto_discr != GSM48_PDISC_RR) @@ -260,7 +269,7 @@ } /* Bit Error Rate > 0 => reduce by 2 */ - if (rxqual > 0) { + if (rxqual > 0) { /* FIXME: take RxQual threshold into account */ LOGPLCHAN(lchan, DLOOP, LOGL_INFO, "Reducing Downlink attenuation " "by half: %u -> %u dB due to RXQUAL %u > 0\n", state->current, state->current / 2, rxqual); @@ -290,16 +299,19 @@ if (new < 0) new = 0; + /* FIXME: this is only needed for logging, print thresholds instead */ + int target_dbm = rxlev2dbm(CALC_TARGET(params->rxlev_meas)); + if (state->current != new) { LOGPLCHAN(lchan, DLOOP, LOGL_INFO, "Changing Downlink attenuation: " "%u -> %u dB (maximum %u dB, target %d dBm, delta %d dB)\n", - state->current, new, state->max, params->target_dbm, delta); + state->current, new, state->max, target_dbm, delta); state->current = new; return 1; } else { LOGPLCHAN(lchan, DLOOP, LOGL_INFO, "Keeping Downlink attenuation " "at %u dB (maximum %u dB, target %d dBm, delta %d dB)\n", - state->current, state->max, params->target_dbm, delta); + state->current, state->max, target_dbm, delta); return 0; } } diff --git a/src/common/rsl.c b/src/common/rsl.c index bca365e..b4df22c 100644 --- a/src/common/rsl.c +++ b/src/common/rsl.c @@ -1322,14 +1322,12 @@ lchan->ms_power_ctrl = (struct lchan_power_ctrl_state) { .max = ms_pwr_ctl_lvl(lchan->ts->trx->bts->band, 0), .current = lchan->ms_power_ctrl.max, - .fixed = true, }; /* Initialize BS Power Control defaults */ lchan->bs_power_ctrl = (struct lchan_power_ctrl_state) { .max = 2 * 15, /* maximum defined in 9.3.4 */ .current = 0, - .fixed = true, }; rsl_tlv_parse(&tp, msgb_l3(msg), msgb_l3len(msg)); @@ -1414,7 +1412,6 @@ /* Spec explicitly states BTS should only perform * autonomous MS power control loop in BTS if 'MS Power * Parameters' IE is present! */ - lchan->ms_power_ctrl.fixed = false; lchan->ms_power_ctrl.dpc_params = params; } @@ -1433,7 +1430,6 @@ /* NOTE: it's safer to start from 0 */ lchan->bs_power_ctrl.current = 0; - lchan->bs_power_ctrl.fixed = false; lchan->bs_power_ctrl.dpc_params = params; } @@ -1925,7 +1921,6 @@ /* Spec explicitly states BTS should only perform autonomous MS Power * control loop in BTS if 'MS Power Parameters' IE is present! */ - lchan->ms_power_ctrl.fixed = !TLVP_PRESENT(&tp, RSL_IE_MS_POWER_PARAM); lchan->ms_power_ctrl.dpc_params = NULL; /* 9.3.31 (TLV) MS Power Parameters IE (vendor specific) */ @@ -1946,7 +1941,7 @@ /* Only set current to max if actual value of current in dBm > value in dBm from max, or if fixed. */ - if (lchan->ms_power_ctrl.fixed) { + if (lchan->ms_power_ctrl.dpc_params == NULL) { lchan->ms_power_ctrl.current = lchan->ms_power_ctrl.max; } else { max_pwr = ms_pwr_dbm(bts->band, lchan->ms_power_ctrl.max); @@ -2005,12 +2000,10 @@ /* NOTE: it's safer to start from 0 */ lchan->bs_power_ctrl.current = 0; lchan->bs_power_ctrl.max = new; - lchan->bs_power_ctrl.fixed = false; lchan->bs_power_ctrl.dpc_params = params; } else { lchan->bs_power_ctrl.dpc_params = NULL; lchan->bs_power_ctrl.current = new; - lchan->bs_power_ctrl.fixed = true; } if (lchan->bs_power_ctrl.current != old) { diff --git a/src/common/vty.c b/src/common/vty.c index 326e332..4dff5cb 100644 --- a/src/common/vty.c +++ b/src/common/vty.c @@ -1421,13 +1421,12 @@ const struct lchan_power_ctrl_state *st = &lchan->bs_power_ctrl; const struct gsm_bts_trx *trx = lchan->ts->trx; - cfg_out(vty, "BS (Downlink) Power Control (%s):%s", - st->fixed ? "fixed" : "autonomous", - VTY_NEWLINE); + cfg_out(vty, "BS (Downlink) Power Control (%s mode):%s", + st->dpc_params ? "dynamic" : "static", VTY_NEWLINE); indent += 2; cfg_out(vty, "Channel reduction: %u dB", st->current); - if (!st->fixed) + if (st->dpc_params != NULL) vty_out(vty, " (max %u dB)", st->max); vty_out(vty, "%s", VTY_NEWLINE); @@ -1452,8 +1451,7 @@ const struct gsm_bts_trx *trx = lchan->ts->trx; cfg_out(vty, "MS (Uplink) Power Control (%s):%s", - st->fixed ? "fixed" : "autonomous", - VTY_NEWLINE); + st->dpc_params ? "dynamic" : "static", VTY_NEWLINE); indent += 2; int current_dbm = ms_pwr_dbm(trx->bts->band, st->current); @@ -1461,7 +1459,7 @@ cfg_out(vty, "Current power level: %u, -%d dBm", st->current, current_dbm); - if (!st->fixed) + if (st->dpc_params != NULL) vty_out(vty, " (max %u, -%d dBm)", st->max, max_dbm); vty_out(vty, "%s", VTY_NEWLINE); diff --git a/src/osmo-bts-trx/trx_vty.c b/src/osmo-bts-trx/trx_vty.c index 49403d4..8e701ea 100644 --- a/src/osmo-bts-trx/trx_vty.c +++ b/src/osmo-bts-trx/trx_vty.c @@ -199,7 +199,9 @@ vty_out(vty, "'%s' is deprecated, MS Power Control is now managed by BSC%s", self->string, VTY_NEWLINE); - g_bts->ul_power_ctrl.target_dbm = atoi(argv[0]); + uint8_t rxlev = dbm2rxlev(atoi(argv[0])); + g_bts->ms_dpc_params.rxlev_meas.lower_thresh = rxlev; + g_bts->ms_dpc_params.rxlev_meas.upper_thresh = rxlev; return CMD_SUCCESS; } diff --git a/tests/power/bs_power_loop_test.c b/tests/power/bs_power_loop_test.c index fd93183..ecd83e7 100644 --- a/tests/power/bs_power_loop_test.c +++ b/tests/power/bs_power_loop_test.c @@ -31,14 +31,9 @@ #define PWR_TEST_RXLEV_TARGET 30 -#define PWR_TEST_CFG_RXLEV_TARGET \ - .target_dbm = -110 + PWR_TEST_RXLEV_TARGET - -/* NOTE: raise/lower values are intentionally swapped here, - * as it makes more sense in the context of BS Power Control. */ -#define PWR_TEST_CFG_RAISE_LOWER_MAX \ - .raise_step_max_db = PWR_LOWER_MAX_DB, \ - .lower_step_max_db = PWR_RAISE_MAX_DB +#define PWR_TEST_CFG_RXLEV_THRESH(hyst) \ + .lower_thresh = PWR_TEST_RXLEV_TARGET - hyst, \ + .upper_thresh = PWR_TEST_RXLEV_TARGET + hyst #define DL_MEAS_FULL(rxqual, rxlev) \ .rxqual_full = rxqual, \ @@ -61,8 +56,9 @@ PWR_TEST_ST_IND_MEAS = 0, PWR_TEST_ST_IND_DUMMY, PWR_TEST_ST_SET_STATE, - PWR_TEST_ST_SET_PARAMS, + PWR_TEST_ST_SET_RXLEV_PARAMS, PWR_TEST_ST_ENABLE_DTXD, + PWR_TEST_ST_DISABLE_DPC, }; struct power_test_step { @@ -72,8 +68,8 @@ union { /* Power Control state */ struct lchan_power_ctrl_state state; - /* Power Control parameters */ - struct bts_power_ctrl_params params; + /* Measurement pre-processing parameters */ + struct gsm_power_ctrl_meas_params mp; /* Indicated DL measurements */ struct { uint8_t rxqual_full; @@ -107,12 +103,6 @@ g_bts->band = GSM_BAND_900; g_bts->c0 = g_trx; - g_bts->dl_power_ctrl = g_bts->ul_power_ctrl = \ - (struct bts_power_ctrl_params) { - PWR_TEST_CFG_RXLEV_TARGET, - PWR_TEST_CFG_RAISE_LOWER_MAX, - }; - printf("\nStarting test case '%s'\n", name); } @@ -157,13 +147,18 @@ printf("#%02u %s() <- State (re)set (current %u dB, max %u dB)\n", n, __func__, step->state.current, step->state.max); lchan->bs_power_ctrl = step->state; + lchan->bs_power_ctrl.dpc_params = &lchan->bs_dpc_params; return 0; /* we're done */ - case PWR_TEST_ST_SET_PARAMS: - printf("#%02u %s() <- Param (re)set (target %d dBm, hysteresis %u dB, " - "filtering is %sabled)\n", - n, __func__, step->params.target_dbm, step->params.hysteresis_db, - step->params.pf_algo != BTS_PF_ALGO_NONE ? "en" : "dis"); - g_bts->dl_power_ctrl = step->params; + case PWR_TEST_ST_DISABLE_DPC: + printf("#%02u %s() <- Dynamic power control is disabled\n", n, __func__); + lchan->bs_power_ctrl.dpc_params = NULL; + return 0; /* we're done */ + case PWR_TEST_ST_SET_RXLEV_PARAMS: + printf("#%02u %s() <- (Re)set RxLev params (thresh %u .. %u, " + "averaging is %sabled)\n", + n, __func__, step->mp.lower_thresh, step->mp.upper_thresh, + step->mp.algo != GSM_PWR_CTRL_MEAS_AVG_ALGO_NONE ? "en" : "dis"); + lchan->bs_dpc_params.rxlev_meas = step->mp; return 0; /* we're done */ case PWR_TEST_ST_ENABLE_DTXD: printf("#%02u %s() <- Enable DTXd\n", n, __func__); @@ -202,6 +197,17 @@ init_test(name); struct gsm_lchan *lchan = &g_trx->ts[0].lchan[0]; + + lchan->bs_dpc_params = (struct gsm_power_ctrl_params) { + /* NOTE: raise/lower values are intentionally swapped here, + * as it makes more sense in the context of BS Power Control. */ + .inc_step_size_db = PWR_LOWER_MAX_DB, + .red_step_size_db = PWR_RAISE_MAX_DB, + + /* RxLev pre-processing parameters */ + .rxlev_meas = { PWR_TEST_CFG_RXLEV_THRESH(0) }, + }; + for (n = 0; n < num_steps; n++) rc |= exec_power_step(lchan, n, &steps[n]); @@ -212,7 +218,8 @@ static const struct power_test_step TC_fixed_mode[] = { /* Initial state: 10 dB, up to 20 dB */ { .type = PWR_TEST_ST_SET_STATE, - .state = { .current = 10, .max = 2 * 10, .fixed = true } }, + .state = { .current = 10, .max = 2 * 10 } }, + { .type = PWR_TEST_ST_DISABLE_DPC }, /* MS indicates random RxQual/RxLev values, which must be ignored */ { .meas = DL_MEAS_FULL_SUB(0, 63), .exp_txred = 10 }, @@ -338,12 +345,8 @@ { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET - 2), .exp_txred = 12 }, /* Enable hysteresis */ - { .type = PWR_TEST_ST_SET_PARAMS, - .params = { - PWR_TEST_CFG_RXLEV_TARGET, - PWR_TEST_CFG_RAISE_LOWER_MAX, - .hysteresis_db = 3, - } + { .type = PWR_TEST_ST_SET_RXLEV_PARAMS, + .mp = { PWR_TEST_CFG_RXLEV_THRESH(3) } }, /* Hysteresis is enabled, so small deviations do not trigger any changes */ @@ -359,13 +362,12 @@ { .type = PWR_TEST_ST_SET_STATE, .state = { .current = 16, .max = 2 * 15 } }, - /* Enable EWMA based power filtering */ - { .type = PWR_TEST_ST_SET_PARAMS, - .params = { - PWR_TEST_CFG_RXLEV_TARGET, - PWR_TEST_CFG_RAISE_LOWER_MAX, - .pf_algo = BTS_PF_ALGO_EWMA, - .pf.ewma.alpha = 50, + /* Enable EWMA based pre-processing for RxLev */ + { .type = PWR_TEST_ST_SET_RXLEV_PARAMS, + .mp = { + PWR_TEST_CFG_RXLEV_THRESH(0), + .algo = GSM_PWR_CTRL_MEAS_AVG_ALGO_OSMO_EWMA, + .ewma.alpha = 50, } }, diff --git a/tests/power/bs_power_loop_test.ok b/tests/power/bs_power_loop_test.ok index acaad82..814f7e2 100644 --- a/tests/power/bs_power_loop_test.ok +++ b/tests/power/bs_power_loop_test.ok @@ -2,21 +2,22 @@ Starting test case 'TC_fixed_mode' #00 exec_power_step() <- State (re)set (current 10 dB, max 20 dB) -#01 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(63), RXQUAL-FULL(0), RXLEV-SUB(63), RXQUAL-SUB(0) -#01 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 3f 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -#01 lchan_bs_pwr_ctrl() -> BS power reduction: 10 -> 10 (expected 10) -#02 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(00), RXQUAL-FULL(7), RXLEV-SUB(00), RXQUAL-SUB(7) -#02 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 00 00 7e 00 00 00 00 00 00 00 00 00 00 00 00 00 +#01 exec_power_step() <- Dynamic power control is disabled +#02 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(63), RXQUAL-FULL(0), RXLEV-SUB(63), RXQUAL-SUB(0) +#02 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 3f 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 #02 lchan_bs_pwr_ctrl() -> BS power reduction: 10 -> 10 (expected 10) -#03 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0) -#03 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 1e 1e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +#03 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(00), RXQUAL-FULL(7), RXLEV-SUB(00), RXQUAL-SUB(7) +#03 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 00 00 7e 00 00 00 00 00 00 00 00 00 00 00 00 00 #03 lchan_bs_pwr_ctrl() -> BS power reduction: 10 -> 10 (expected 10) -#04 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(30), RXQUAL-FULL(1), RXLEV-SUB(30), RXQUAL-SUB(1) -#04 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 1e 1e 12 00 00 00 00 00 00 00 00 00 00 00 00 00 +#04 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0) +#04 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 1e 1e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 #04 lchan_bs_pwr_ctrl() -> BS power reduction: 10 -> 10 (expected 10) -#05 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(50), RXQUAL-FULL(1), RXLEV-SUB(50), RXQUAL-SUB(1) -#05 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 32 32 12 00 00 00 00 00 00 00 00 00 00 00 00 00 +#05 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(30), RXQUAL-FULL(1), RXLEV-SUB(30), RXQUAL-SUB(1) +#05 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 1e 1e 12 00 00 00 00 00 00 00 00 00 00 00 00 00 #05 lchan_bs_pwr_ctrl() -> BS power reduction: 10 -> 10 (expected 10) +#06 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(50), RXQUAL-FULL(1), RXLEV-SUB(50), RXQUAL-SUB(1) +#06 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 32 32 12 00 00 00 00 00 00 00 00 00 00 00 00 00 +#06 lchan_bs_pwr_ctrl() -> BS power reduction: 10 -> 10 (expected 10) Test case verdict: SUCCESS Starting test case 'TC_rxlev_target' @@ -175,7 +176,7 @@ #04 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(28), RXQUAL-FULL(0), RXLEV-SUB(28), RXQUAL-SUB(0) #04 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 1c 1c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 #04 lchan_bs_pwr_ctrl() -> BS power reduction: 14 -> 12 (expected 12) -#05 exec_power_step() <- Param (re)set (target -80 dBm, hysteresis 3 dB, filtering is disabled) +#05 exec_power_step() <- (Re)set RxLev params (thresh 27 .. 33, averaging is disabled) #06 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(31), RXQUAL-FULL(0), RXLEV-SUB(31), RXQUAL-SUB(0) #06 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 1f 1f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 #06 lchan_bs_pwr_ctrl() -> BS power reduction: 12 -> 12 (expected 12) @@ -192,7 +193,7 @@ Starting test case 'TC_rxlev_pf_ewma' #00 exec_power_step() <- State (re)set (current 16 dB, max 30 dB) -#01 exec_power_step() <- Param (re)set (target -80 dBm, hysteresis 0 dB, filtering is enabled) +#01 exec_power_step() <- (Re)set RxLev params (thresh 30 .. 30, averaging is enabled) #02 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0) #02 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 1e 1e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 #02 lchan_bs_pwr_ctrl() -> BS power reduction: 16 -> 16 (expected 16) diff --git a/tests/power/ms_power_loop_test.c b/tests/power/ms_power_loop_test.c index ea3c249..e93a2ef 100644 --- a/tests/power/ms_power_loop_test.c +++ b/tests/power/ms_power_loop_test.c @@ -28,6 +28,10 @@ #include +#define PWR_TEST_RXLEV_TARGET_DBM -75 +#define PWR_TEST_RXLEV_TARGET \ + dbm2rxlev(PWR_TEST_RXLEV_TARGET_DBM) + static struct gsm_bts *g_bts = NULL; static struct gsm_bts_trx *g_trx = NULL; @@ -50,12 +54,15 @@ g_bts->band = GSM_BAND_1800; g_bts->c0 = g_trx; - g_bts->ul_power_ctrl = g_bts->dl_power_ctrl = \ - (struct bts_power_ctrl_params) { - .target_dbm = -75, - .raise_step_max_db = PWR_RAISE_MAX_DB, - .lower_step_max_db = PWR_LOWER_MAX_DB, - }; + /* Init default MS power control parameters, enable dynamic power control */ + struct gsm_power_ctrl_params *params = &g_trx->ts[0].lchan[0].ms_dpc_params; + g_trx->ts[0].lchan[0].ms_power_ctrl.dpc_params = params; + *params = power_ctrl_params_def; + + /* Disable RxLev pre-processing and hysteresis by default */ + struct gsm_power_ctrl_meas_params *mp = ¶ms->rxlev_meas; + mp->lower_thresh = mp->upper_thresh = PWR_TEST_RXLEV_TARGET; + mp->algo = GSM_PWR_CTRL_MEAS_AVG_ALGO_NONE; printf("\nStarting test case '%s'\n", name); } @@ -104,7 +111,7 @@ apply_power_test(lchan, -90, 1, 5); /* Check good RSSI value keeps it at same power level: */ - apply_power_test(lchan, g_bts->ul_power_ctrl.target_dbm, 0, 5); + apply_power_test(lchan, PWR_TEST_RXLEV_TARGET_DBM, 0, 5); apply_power_test(lchan, -90, 1, 3); apply_power_test(lchan, -90, 1, 2); /* .max is pwr lvl 2 */ @@ -122,7 +129,7 @@ apply_power_test(lchan, -90, 0, 29); /* Check good RSSI value keeps it at same power level: */ - apply_power_test(lchan, g_bts->ul_power_ctrl.target_dbm, 0, 29); + apply_power_test(lchan, PWR_TEST_RXLEV_TARGET_DBM, 0, 29); /* Now go down, steps are double size in this direction: */ apply_power_test(lchan, -45, 1, 1); @@ -130,23 +137,23 @@ apply_power_test(lchan, -45, 1, 9); /* Go down only one level down and up: */ - apply_power_test(lchan, g_bts->ul_power_ctrl.target_dbm + 2, 1, 10); - apply_power_test(lchan, g_bts->ul_power_ctrl.target_dbm - 2, 1, 9); + apply_power_test(lchan, PWR_TEST_RXLEV_TARGET_DBM + 2, 1, 10); + apply_power_test(lchan, PWR_TEST_RXLEV_TARGET_DBM - 2, 1, 9); /* Check if BSC requesting a low max power is applied after loop calculation: */ lchan->ms_power_ctrl.max = ms_pwr_ctl_lvl(GSM_BAND_1800, 2); OSMO_ASSERT(lchan->ms_power_ctrl.max == 14); - apply_power_test(lchan, g_bts->ul_power_ctrl.target_dbm + 2, 1, 14); + apply_power_test(lchan, PWR_TEST_RXLEV_TARGET_DBM + 2, 1, 14); /* Set back a more normal max: */ lchan->ms_power_ctrl.max = ms_pwr_ctl_lvl(GSM_BAND_1800, 30); OSMO_ASSERT(lchan->ms_power_ctrl.max == 0); - /* Fix it and jump down */ - lchan->ms_power_ctrl.fixed = true; + /* Disable dynamic power control and jump down */ + lchan->ms_power_ctrl.dpc_params = NULL; apply_power_test(lchan, -60, 0, 14); - /* And leave it again */ - lchan->ms_power_ctrl.fixed = false; + /* Enable and leave it again */ + lchan->ms_power_ctrl.dpc_params = &lchan->ms_dpc_params; apply_power_test(lchan, -40, 1, 15); } @@ -159,8 +166,9 @@ lchan = &g_trx->ts[0].lchan[0]; avg100 = &lchan->ms_power_ctrl.avg100_rxlev_dbm; - g_bts->ul_power_ctrl.pf_algo = BTS_PF_ALGO_EWMA; - g_bts->ul_power_ctrl.pf.ewma.alpha = 20; /* 80% smoothing */ + struct gsm_power_ctrl_meas_params *mp = &lchan->ms_dpc_params.rxlev_meas; + mp->algo = GSM_PWR_CTRL_MEAS_AVG_ALGO_OSMO_EWMA; + mp->ewma.alpha = 20; /* 80% smoothing */ lchan->ms_power_ctrl.current = ms_pwr_ctl_lvl(GSM_BAND_1800, 0); OSMO_ASSERT(lchan->ms_power_ctrl.current == 15); @@ -194,7 +202,7 @@ apply_power_test(lchan, -70, 1, 9); CHECK_UL_RSSI_AVG100(-78.40); - g_bts->ul_power_ctrl.pf.ewma.alpha = 70; /* 30% smoothing */ + mp->ewma.alpha = 70; /* 30% smoothing */ lchan->ms_power_ctrl.current = 15; lchan->ms_power_ctrl.avg100_rxlev_dbm = 0; @@ -220,22 +228,23 @@ lchan = &g_trx->ts[0].lchan[0]; /* Tolerate power deviations in range -80 .. -70 */ - g_bts->ul_power_ctrl.hysteresis_db = 5; + lchan->ms_dpc_params.rxlev_meas.lower_thresh = 30; + lchan->ms_dpc_params.rxlev_meas.upper_thresh = 40; lchan->ms_power_ctrl.current = ms_pwr_ctl_lvl(GSM_BAND_1800, 0); OSMO_ASSERT(lchan->ms_power_ctrl.current == 15); lchan->ms_power_ctrl.max = ms_pwr_ctl_lvl(GSM_BAND_1800, 26); OSMO_ASSERT(lchan->ms_power_ctrl.max == 2); - apply_power_test(lchan, g_bts->ul_power_ctrl.target_dbm, 0, 15); - apply_power_test(lchan, g_bts->ul_power_ctrl.target_dbm + 3, 0, 15); - apply_power_test(lchan, g_bts->ul_power_ctrl.target_dbm - 3, 0, 15); + apply_power_test(lchan, PWR_TEST_RXLEV_TARGET_DBM, 0, 15); + apply_power_test(lchan, PWR_TEST_RXLEV_TARGET_DBM + 3, 0, 15); + apply_power_test(lchan, PWR_TEST_RXLEV_TARGET_DBM - 3, 0, 15); - apply_power_test(lchan, g_bts->ul_power_ctrl.target_dbm, 0, 15); - apply_power_test(lchan, g_bts->ul_power_ctrl.target_dbm + 5, 0, 15); - apply_power_test(lchan, g_bts->ul_power_ctrl.target_dbm - 5, 0, 15); + apply_power_test(lchan, PWR_TEST_RXLEV_TARGET_DBM, 0, 15); + apply_power_test(lchan, PWR_TEST_RXLEV_TARGET_DBM + 5, 0, 15); + apply_power_test(lchan, PWR_TEST_RXLEV_TARGET_DBM - 5, 0, 15); - apply_power_test(lchan, g_bts->ul_power_ctrl.target_dbm - 10, 1, 13); + apply_power_test(lchan, PWR_TEST_RXLEV_TARGET_DBM - 10, 1, 13); } int main(int argc, char **argv) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21993 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib18f84c40227841d95a36063a6789bf63054fc2e Gerrit-Change-Number: 21993 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Wed Jan 6 01:36:09 2021 From: admin at opensuse.org (OBS Notification) Date: Wed, 06 Jan 2021 01:36:09 +0000 Subject: Build failure of network:osmocom:nightly/open5gs in Debian_10/i586 In-Reply-To: References: Message-ID: <5ff5140c9d094_707c2acc32a365f02469b5@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/open5gs/Debian_10/i586 Package network:osmocom:nightly/open5gs failed to build in Debian_10/i586 Check out the package for editing: osc checkout network:osmocom:nightly open5gs Last lines of build log: [ 293s] [2541/2541] cc -o tests/handover/handover 'tests/handover/63da1a3@@handover at exe/abts-main.c.o' 'tests/handover/63da1a3@@handover at exe/epc-x2-test.c.o' 'tests/handover/63da1a3@@handover at exe/epc-s1-test.c.o' 'tests/handover/63da1a3@@handover at exe/5gc-xn-test.c.o' -Wl,--no-undefined -Wl,--as-needed -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z,relro -Wl,-z,now -Wl,--start-group tests/app/libtestapp.a tests/common/libtestcomon.a lib/core/libogscore.so.2.1.1 lib/app/libogsapp.so.2.1.1 lib/dbi/libogsdbi.so.2.1.1 lib/crypt/libogscrypt.so.2.1.1 lib/sctp/libogssctp.so.2.1.1 lib/gtp/libogsgtp.so.2.1.1 lib/s1ap/libogss1ap.so.2.1.1 lib/asn1c/s1ap/libogsasn1c-s1ap.so.2.1.1 lib/asn1c/common/libogsasn1c-common.so.2.1.1 lib/asn1c/util/libogsasn1c-util.so.2.1.1 lib/ngap/libogsngap.so.2.1.1 lib/asn1c/ngap/libogsasn1c-ngap.so.2.1.1 lib/nas/eps/libogsnas-eps.so.2.1.1 lib/nas/common/libogsnas-common.so.2.1.1 lib/nas/5gs/libogsnas-5gs.so.2.1.1 lib/diameter/rx/libogsdiameter-rx.so.2.1.1 lib/diameter/common/libogsdiameter-common.so.2.1.1 subprojects/freeDiameter/libfdcore/libfdcore.so.1.3.2 subprojects/freeDiameter/libfdproto/libfdproto.so.1.3.2 /usr/lib/i386-linux-gnu/libyaml.so /usr/lib/gcc/i686-linux-gnu/8/../../../i386-linux-gnu/libmongoc-1.0.so /usr/lib/gcc/i686-linux-gnu/8/../../../i386-linux-gnu/libbson-1.0.so -lsctp -lidn -ldl -lsctp -lgcrypt -lgnutls -lsctp -lidn -ldl -lsctp -lgcrypt -lgnutls -lsctp -lidn -ldl -lsctp -lgcrypt -lgnutls -Wl,--end-group -pthread '-Wl,-rpath,$ORIGIN/../app:$ORIGIN/../common:$ORIGIN/../../lib/core:$ORIGIN/../../lib/app:$ORIGIN/../../lib/dbi:$ORIGIN/../../lib/crypt:$ORIGIN/../../lib/sctp:$ORIGIN/../../lib/gtp:$ORIGIN/../../lib/s1ap:$ORIGIN/../../lib/asn1c/s1ap:$ORIGIN/../../lib/asn1c/common:$ORIGIN/../../lib/asn1c/util:$ORIGIN/../../lib/ngap:$ORIGIN/../../lib/asn1c/ngap:$ORIGIN/../../lib/nas/eps:$ORIGIN/../../lib/nas/common:$ORIGIN/../../lib/nas/5gs:$ORIGIN/../../lib/diameter/rx:$ORIGIN/../../lib/diameter/common:$ORIGIN/../../subprojects/freeDiameter/libfdcore:$ORIGIN/../../subprojects/freeDiameter/libfdproto' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-i686-linux-gnu/tests/app:/usr/src/packages/BUILD/obj-i686-linux-gnu/tests/common:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/core:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/app:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/dbi:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/crypt:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/sctp:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/gtp:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/s1ap:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/asn1c/s1ap:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/asn1c/common:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/asn1c/util:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/ngap:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/asn1c/ngap:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/nas/eps:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/nas/common:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/nas/5gs:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/diameter/rx:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/diameter/common:/usr/src/packages/BUILD/obj-i686-linux-gnu/subprojects/freeDiameter/libfdcore:/usr/src/packages/BUILD/obj-i686-linux-gnu/subprojects/freeDiameter/libfdproto [ 293s] debian/rules override_dh_auto_test [ 293s] make[1]: Entering directory '/usr/src/packages/BUILD' [ 293s] cd obj-i686-linux-gnu && meson test --suite unit [ 293s] ninja: Entering directory `/usr/src/packages/BUILD/obj-i686-linux-gnu' [ 293s] ninja: no work to do. [ 300s] 1/3 open5gs:unit / core OK 6.69 s [ 300s] 2/3 open5gs:unit / crypt OK 0.12 s [ 300s] 3/3 open5gs:unit / unit FAIL 0.04 s (exit status 1) [ 300s] [ 300s] Ok: 2 [ 300s] Expected Fail: 0 [ 300s] Fail: 1 [ 300s] Unexpected Pass: 0 [ 300s] Skipped: 0 [ 300s] Timeout: 0 [ 300s] [ 300s] Full log written to /usr/src/packages/BUILD/obj-i686-linux-gnu/meson-logs/testlog.txt [ 300s] make[1]: *** [debian/rules:17: override_dh_auto_test] Error 1 [ 300s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 300s] make: *** [debian/rules:11: binary] Error 2 [ 300s] dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 [ 300s] ### VM INTERACTION START ### [ 303s] [ 296.098749] sysrq: Power Off [ 303s] [ 296.100629] reboot: Power down [ 303s] ### VM INTERACTION END ### [ 303s] [ 303s] build79 failed "build open5gs_2.1.1.20210106.dsc" at Wed Jan 6 01:36:04 UTC 2021. [ 303s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Jan 6 01:36:43 2021 From: admin at opensuse.org (OBS Notification) Date: Wed, 06 Jan 2021 01:36:43 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.10/x86_64 In-Reply-To: References: Message-ID: <5ff51449c8c11_707c2acc32a365f0247027@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/xUbuntu_20.10/x86_64 Package network:osmocom:nightly/simtrace2 failed to build in xUbuntu_20.10/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 90s] [COMPILING apps/dfu/main.c] [ 90s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 90s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 90s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 90s] Memory region Used Size Region Size %age Used [ 90s] rom: 16580 B 16 KB 101.20% [ 90s] ram: 11672 B 48 KB 23.75/usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 90s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 90s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 90s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 90s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 90s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 90s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 196 bytes [ 90s] collect2: error: ld returned 1 exit status [ 90s] % [ 90s] make[2]: *** [Makefile:234: flash] Error 1 [ 90s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 90s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 90s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 90s] dh_auto_build: error: make -j1 returned exit code 2 [ 90s] make: *** [debian/rules:16: build] Error 25 [ 90s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 90s] ### VM INTERACTION START ### [ 93s] [ 85.689968] sysrq: Power Off [ 93s] [ 85.691370] reboot: Power down [ 93s] ### VM INTERACTION END ### [ 93s] [ 93s] build76 failed "build simtrace2_0.7.0.69.aadd.dsc" at Wed Jan 6 01:36:26 UTC 2021. [ 93s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Jan 6 01:38:43 2021 From: admin at opensuse.org (OBS Notification) Date: Wed, 06 Jan 2021 01:38:43 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <5ff514c058812_707c2acc32a365f02480e6@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/xUbuntu_20.04/x86_64 Package network:osmocom:nightly/simtrace2 failed to build in xUbuntu_20.04/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 110s] [COMPILING libboard/qmod/source/wwan_perst.c] [ 110s] [COMPILING libboard/qmod/source/card_pres.c] [ 110s] [COMPILING libboard/qmod/source/wwan_led.c] [ 110s] [COMPILING libboard/qmod/source/i2c.c] [ 110s] [COMPILING libboard/qmod/source/board_qmod.c] [ 110s] [COMPILING apps/dfu/main.c] [ 110s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 111s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 111s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 111s] Memory region Used Size Region Size %age Used [ 111s] rom: 16588 B 16 KB 101.25% [ 111s] ram: 11672 B 48 KB 23.75/usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 111s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 204 bytes [ 111s] collect2: error: ld returned 1 exit status [ 111s] % [ 111s] make[2]: *** [Makefile:234: flash] Error 1 [ 111s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 111s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 111s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 111s] dh_auto_build: error: make -j1 returned exit code 2 [ 111s] make: *** [debian/rules:16: build] Error 25 [ 111s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 111s] ### VM INTERACTION START ### [ 114s] [ 105.345450] sysrq: Power Off [ 114s] [ 105.350165] reboot: Power down [ 114s] ### VM INTERACTION END ### [ 114s] [ 114s] sheep87 failed "build simtrace2_0.7.0.69.aadd.dsc" at Wed Jan 6 01:38:37 UTC 2021. [ 114s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Wed Jan 6 07:44:08 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 6 Jan 2021 07:44:08 +0000 Subject: Change in osmo-bsc[master]: hodec2: reduce check_requirements() args In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bsc/+/21987 to look at the new patch set (#2). Change subject: hodec2: reduce check_requirements() args ...................................................................... hodec2: reduce check_requirements() args Instead of passing single args, pass the ho_candidate struct. No functional change. Change-Id: I086aef9cc47ad8a5376f18179024c486f6f8b779 --- M src/osmo-bsc/handover_decision_2.c 1 file changed, 82 insertions(+), 83 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/87/21987/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21987 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I086aef9cc47ad8a5376f18179024c486f6f8b779 Gerrit-Change-Number: 21987 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 07:44:08 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 6 Jan 2021 07:44:08 +0000 Subject: Change in osmo-bsc[master]: hodec2: add ho_candidate.{current, target}.free_tch In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bsc/+/21988 to look at the new patch set (#2). Change subject: hodec2: add ho_candidate.{current,target}.free_tch ...................................................................... hodec2: add ho_candidate.{current,target}.free_tch Store the number of free lchans and the min-free-slots settings in ho_candidate, instead of figuring those out in various places, to make it easier to read. Prepare for upcoming patch which also requires these values to fix a bug. Change-Id: Ie6ca5af5e8d0ebb8deaaaa637e2728008ecba517 --- M src/osmo-bsc/handover_decision_2.c 1 file changed, 46 insertions(+), 32 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/88/21988/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21988 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ie6ca5af5e8d0ebb8deaaaa637e2728008ecba517 Gerrit-Change-Number: 21988 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 07:44:08 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 6 Jan 2021 07:44:08 +0000 Subject: Change in osmo-bsc[master]: hodec2: fix congestion oscillation bug In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bsc/+/21989 to look at the new patch set (#2). Change subject: hodec2: fix congestion oscillation bug ...................................................................... hodec2: fix congestion oscillation bug When evenly distributing congestion across cells, count the number of occupied lchans surpassing congestion, and not the overall number of free lchans -- which disregards congestion thresholds. Fix the bug shown by test_congestion_no_oscillation.ho_vty added in Idf88b4cf3d2f92f5560d73dae9e59af39d0494c0. An example to illustrate what this is about: Cell A has min-free-slots 2, and has 1 slot remaining free. Cell B has min-free-slots 4, and has 2 slots remaining free. If we decide where to place another lchan by counting congested lchans, as implemented in this patch: - Another lchan added, cell A ends up with a congestion count of 2: two more lchans in use than "allowed". - Cell B ends up with a congestion count of 3, which is worse than 2. We decide that cell A should receive the additional lchan, because it will then have a lower congestion count. However, that makes cell A completely occupied, while cell B has two lchans remaining free. There are two alternative fix variants in consideration: - count the number of free lchans, but only after reaching congestion. - calculate the percentage of load surpassing congestion. When using percentage of remaining lchans, we would see that if cell A receives another lchan, it would be 100% loaded above its congestion threshold (2 of 2 remaining lchans in use), but cell B would only be 75% loaded above its treshold (3 of 4 remaining lchans in use). So a percentage comparison would place the next lchan in cell B, leaving the last lchan of cell A free. Another option would be to count the number of remaining free lchans (after the congestion threshold is surpassed), instead of the used ones above the congestion threshold. But then, as soon as all cells are congested, configuring different thresholds would no longer have an effect. I would no longer be able to configure a particular cell to remain more free than others: once congested, only that cell would fill up until it reaches the same load as the other cells. In the field, where all cells likely have the same min-free-slots settings, this entire consideration is moot, because congestion counts correspond 1:1 to percentage between all cells and also 1:1 to remaining free slots. However, when looking at distribution across TCH/F and TCH/H, it is quite likely that min-free-slots settings differ for TCH/F and TCH/H, so this is in fact a thing to consider even for identically configured cells. Related: SYS#5259 Change-Id: Icb373dc6bfc9819446db5e96f71921781fe2026d --- M src/osmo-bsc/handover_decision_2.c M tests/handover/test_congestion_no_oscillation.ho_vty M tests/handover/test_congestion_no_oscillation2.ho_vty 3 files changed, 11 insertions(+), 30 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/89/21989/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21989 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Icb373dc6bfc9819446db5e96f71921781fe2026d Gerrit-Change-Number: 21989 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 09:53:43 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 6 Jan 2021 09:53:43 +0000 Subject: Change in libosmocore[master]: bssgp_rim: add encoder/decoder for NACC related RIM containers In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21862 ) Change subject: bssgp_rim: add encoder/decoder for NACC related RIM containers ...................................................................... Patch Set 5: (9 comments) I did have done the API changes (unions, full parse) now. However, I did not update the patch yet since I am not entirely done yet. There are basically two problems left: The encoder functions currently write to an uint8_t buffer but depending on how the API will be used an msg buffer might be better. I started working on osmo-pcu, there I will use the API, I first want to see how things turn out there. One big adavantage of msg buffers would also be that they have array bounds checking. https://gerrit.osmocom.org/c/libosmocore/+/21862/5/include/osmocom/gprs/gprs_bssgp_rim.h File include/osmocom/gprs/gprs_bssgp_rim.h: https://gerrit.osmocom.org/c/libosmocore/+/21862/5/include/osmocom/gprs/gprs_bssgp_rim.h at 13 PS5, Line 13: const uint8_t *app_cont; > is this a pointer to struct bssgp_ran_inf_rim_cont ? yes, but to its unparsed binary version. The memory location is inside *buf, which is given as parameter to the decoder function. So, when buf is freed there will be a problem, but I do not see any alternative. The strings can be up to 65535 (or 32767?, I am not sure), so reserving this statically memory is not a good option. Dynamic allocation is also not very attractive here... https://gerrit.osmocom.org/c/libosmocore/+/21862/5/include/osmocom/gprs/gprs_bssgp_rim.h at 73 PS5, Line 73: uint8_t app_id; > I see lots of structs sharing half of the fields. What about adding a HDR struct or alike? [?] I thought about having a header shared over all message types. However, when looking closely its always a bit different. We would have to put a header that satisfies every message / container type (bool xyz_present members) but then the structs do not match up with the spec anymore. I would like to keep it like this. I have now put unions into the application container structs, so things become easier at least at that level. We could also add a "master" struct that unifies all possible rim container types, then we could have a single function that decodes/encodes everything. However I think this would be overkill since in the actual application we would still need If or switch depending on a discriminator. Then it is probably better to go by the TLV IEI on that level. https://gerrit.osmocom.org/c/libosmocore/+/21862/5/src/gb/gprs_bssgp_rim.c File src/gb/gprs_bssgp_rim.c: https://gerrit.osmocom.org/c/libosmocore/+/21862/5/src/gb/gprs_bssgp_rim.c at 32 PS5, Line 32: #define DEC_RIM_CONT_COMMON \ > this looks more like a function tbh. It was a function... https://gerrit.osmocom.org/c/libosmocore/+/21862/5/src/gb/gprs_bssgp_rim.c at 51 PS5, Line 51: #define ENC_RIM_CONT_COMMON \ > same, would be a lot clearer (to read and ebug) having a static function. [?] If I do it that way I can only call the function with one struct type, so it does not work for me. Its probably not that effective anyway. I think its only used in 3 locations anyway. https://gerrit.osmocom.org/c/libosmocore/+/21862/5/src/gb/gprs_bssgp_rim.c at 68 PS5, Line 68: memset(cont, 0, sizeof(*cont)); > this memset not needed afaict. Its not needed because I set the struct members to NULL / 0 in the else branches below. I think its better to remove the else branches and keep the memset. https://gerrit.osmocom.org/c/libosmocore/+/21862/5/src/gb/gprs_bssgp_rim.c at 106 PS5, Line 106: ENC_RIM_CONT_COMMON > if (enc_rim_cont_common(cont) < 0) [?] This is all in the macro. https://gerrit.osmocom.org/c/libosmocore/+/21862/5/src/gb/gprs_bssgp_rim.c at 127 PS5, Line 127: memset(cont, 0, sizeof(*cont)); > memset not needed afaict see above https://gerrit.osmocom.org/c/libosmocore/+/21862/5/src/gb/gprs_bssgp_rim.c at 288 PS5, Line 288: } else > coding sytle: else clause shoudl also have brackets if "if" clause have them. Done https://gerrit.osmocom.org/c/libosmocore/+/21862/5/src/gb/gprs_bssgp_rim.c at 514 PS5, Line 514: return (int)(buf_ptr - buf); > You may need to cast this through intptr_t to avoid warnings. like this: return (int)((intptr_t)buf_ptr - (intptr_t)buf) ? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21862 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ibbc7fd67658e3040c12abb5706fe9d1f31894352 Gerrit-Change-Number: 21862 Gerrit-PatchSet: 5 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 06 Jan 2021 09:53:43 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 10:11:02 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 6 Jan 2021 10:11:02 +0000 Subject: Change in libosmocore[master]: Add inter-thread queue In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21930 ) Change subject: Add inter-thread queue ...................................................................... Patch Set 3: Code-Review+2 (8 comments) https://gerrit.osmocom.org/c/libosmocore/+/21930/2/include/osmocom/core/it_q.h File include/osmocom/core/it_q.h: https://gerrit.osmocom.org/c/libosmocore/+/21930/2/include/osmocom/core/it_q.h at 37 PS2, Line 37: void (*read_cb)(struct osmo_it_q *q, void *item); > why not passing the pointer to the item's llist instead? This way it's up to the reader to infer ite [?] good idea. Will try to rework accordingly. https://gerrit.osmocom.org/c/libosmocore/+/21930/2/src/it_q.c File src/it_q.c: https://gerrit.osmocom.org/c/libosmocore/+/21930/2/src/it_q.c at 67 PS2, Line 67: /* global (for all threads) list of message queues in a program + associated lock */ > typo: queued no, it is a global list of "message queues". Not of "messages queued" https://gerrit.osmocom.org/c/libosmocore/+/21930/2/src/it_q.c at 69 PS2, Line 69: static pthread_rwlock_t it_queues_rwlock; > you can probably init this statically? Ack https://gerrit.osmocom.org/c/libosmocore/+/21930/2/src/it_q.c at 142 PS2, Line 142: q->event_ofd.fd = -1; > q->mutex needs no init()? Ack https://gerrit.osmocom.org/c/libosmocore/+/21930/2/src/it_q.c at 220 PS2, Line 220: osmo_it_q_flush(q); > don't you need to somehow free q->mutex? Ack https://gerrit.osmocom.org/c/libosmocore/+/21930/2/tests/it_q/it_q_test.c File tests/it_q/it_q_test.c: https://gerrit.osmocom.org/c/libosmocore/+/21930/2/tests/it_q/it_q_test.c at 73 PS2, Line 73: static void q_read_cb(struct osmo_it_q *q, void *item) > struct llist_head *item Done https://gerrit.osmocom.org/c/libosmocore/+/21930/2/tests/it_q/it_q_test.c at 75 PS2, Line 75: g_read_cb_count++; > struct it_q_test1 *it = container_of(item, struct it_q_test1, list); [?] Done https://gerrit.osmocom.org/c/libosmocore/+/21930/2/tests/it_q/it_q_test.c at 100 PS2, Line 100: item = talloc_zero(OTC_GLOBAL, struct it_q_test1); > item->foo = &g_read_cb_count; Done -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21930 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie7d0c5fec715a2a577fae014b0b8a0e9c38418ef Gerrit-Change-Number: 21930 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 06 Jan 2021 10:11:02 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 10:11:06 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 6 Jan 2021 10:11:06 +0000 Subject: Change in libosmocore[master]: Add inter-thread queue In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21930 ) Change subject: Add inter-thread queue ...................................................................... Add inter-thread queue This adds an inter-thread queue "it_q" to libosmocore. With it_q, one can perform thread-safe enqueing of messages to another thread, who will receive the related messages triggered via an eventfd handled in the usual libosmocore select loop abstraction. Change-Id: Ie7d0c5fec715a2a577fae014b0b8a0e9c38418ef --- M configure.ac M include/Makefile.am A include/osmocom/core/it_q.h M src/Makefile.am A src/it_q.c M tests/Makefile.am A tests/it_q/it_q_test.c A tests/it_q/it_q_test.ok M tests/testsuite.at 9 files changed, 487 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/configure.ac b/configure.ac index 10fb496..c062e5f 100644 --- a/configure.ac +++ b/configure.ac @@ -62,7 +62,7 @@ dnl checks for header files AC_HEADER_STDC -AC_CHECK_HEADERS(execinfo.h poll.h sys/select.h sys/socket.h sys/signalfd.h sys/timerfd.h syslog.h ctype.h netinet/tcp.h netinet/in.h) +AC_CHECK_HEADERS(execinfo.h poll.h sys/select.h sys/socket.h sys/signalfd.h sys/eventfd.h sys/timerfd.h syslog.h ctype.h netinet/tcp.h netinet/in.h) # for src/conv.c AC_FUNC_ALLOCA AC_SEARCH_LIBS([dlopen], [dl dld], [LIBRARY_DLOPEN="$LIBS";LIBS=""]) diff --git a/include/Makefile.am b/include/Makefile.am index 842b872..c1ae644 100644 --- a/include/Makefile.am +++ b/include/Makefile.am @@ -30,6 +30,7 @@ osmocom/core/hash.h \ osmocom/core/hashtable.h \ osmocom/core/isdnhdlc.h \ + osmocom/core/it_q.h \ osmocom/core/linuxlist.h \ osmocom/core/linuxrbtree.h \ osmocom/core/log2.h \ diff --git a/include/osmocom/core/it_q.h b/include/osmocom/core/it_q.h new file mode 100644 index 0000000..a28f524 --- /dev/null +++ b/include/osmocom/core/it_q.h @@ -0,0 +1,62 @@ +#pragma once + +#include +#include +#include + +/*! \defgroup osmo_it_q Inter-Thread Queue + * @{ + * \file osmo_it_q.h */ + +/*! One instance of an inter-thread queue. The user can use this to queue messages + * between different threads. The enqueue operation is non-blocking (but of course + * grabs a mutex for the actual list operations to safeguard against races). The + * receiving thread is woken up by an event_fd which can be registered in the libosmocore + * select loop handling. */ +struct osmo_it_q { + /* entry in global list of message queues */ + struct llist_head entry; + + /* the actual list of user structs. HEAD: first in queue; TAIL: last in queue */ + struct llist_head list; + /* A pthread mutex to safeguard accesses to the queue. No rwlock as we always write. */ + pthread_mutex_t mutex; + /* Current count of messages in the queue */ + unsigned int current_length; + /* osmo-fd wrapped eventfd */ + struct osmo_fd event_ofd; + + /* a user-defined name for this queue */ + const char *name; + /* maximum permitted length of queue */ + unsigned int max_length; + /* read call-back, called for each de-queued message */ + void (*read_cb)(struct osmo_it_q *q, struct llist_head *item); + /* opaque data pointer passed through to call-back function */ + void *data; +}; + +struct osmo_it_q *osmo_it_q_by_name(const char *name); + +int _osmo_it_q_enqueue(struct osmo_it_q *queue, struct llist_head *item); +#define osmo_it_q_enqueue(queue, item, member) \ + _osmo_it_q_enqueue(queue, &(item)->member) + +struct llist_head *_osmo_it_q_dequeue(struct osmo_it_q *queue); +#define osmo_it_q_dequeue(queue, item, member) do { \ + struct llist_head *l = _osmo_it_q_dequeue(queue); \ + if (!l) \ + *item = NULL; \ + else \ + *item = llist_entry(l, typeof(**item), member); \ +} while (0) + + +struct osmo_it_q *osmo_it_q_alloc(void *ctx, const char *name, unsigned int max_length, + + void (*read_cb)(struct osmo_it_q *q, struct llist_head *item), + void *data); +void osmo_it_q_destroy(struct osmo_it_q *q); +void osmo_it_q_flush(struct osmo_it_q *q); + +/*! @} */ diff --git a/src/Makefile.am b/src/Makefile.am index 5ff1a42..dd31db8 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -28,6 +28,7 @@ sockaddr_str.c \ use_count.c \ exec.c \ + it_q.c \ $(NULL) if HAVE_SSSE3 diff --git a/src/it_q.c b/src/it_q.c new file mode 100644 index 0000000..1bb0e15 --- /dev/null +++ b/src/it_q.c @@ -0,0 +1,277 @@ +/*! \file it_q.c + * Osmocom Inter-Thread queue implementation */ +/* (C) 2019 by Harald Welte + * All Rights Reserved. + * + * SPDX-License-Identifier: GPL-2.0+ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + */ + +/*! \addtogroup it_q + * @{ + * Inter-Thread Message Queue. + * + * This implements a general-purpose queue between threads. It uses + * user-provided data types (containing a llist_head as initial member) + * as elements in the queue and an eventfd-based notification mechanism. + * Hence, it can be used for pretty much anything, including but not + * limited to msgbs, including msgb-wrapped osmo_prim. + * + * The idea is that the sending thread simply calls osmo_it_q_enqueue(). + * The receiving thread is woken up from its osmo_select_main() loop by eventfd, + * and a general osmo_fd callback function for the eventfd will dequeue each item + * and call a queue-specific callback function. + */ + +#include "../config.h" + +#ifdef HAVE_SYS_EVENTFD_H + +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +/* "increment" the eventfd by specified 'inc' */ +static int eventfd_increment(int fd, uint64_t inc) +{ + int rc; + + rc = write(fd, &inc, sizeof(inc)); + if (rc != sizeof(inc)) + return -1; + + return 0; +} + +/* global (for all threads) list of message queues in a program + associated lock */ +static LLIST_HEAD(it_queues); +static pthread_rwlock_t it_queues_rwlock = PTHREAD_RWLOCK_INITIALIZER; + +/* resolve it-queue by its [globally unique] name; must be called with rwlock held */ +static struct osmo_it_q *_osmo_it_q_by_name(const char *name) +{ + struct osmo_it_q *q; + llist_for_each_entry(q, &it_queues, entry) { + if (!strcmp(q->name, name)) + return q; + } + return NULL; +} + +/*! resolve it-queue by its [globally unique] name */ +struct osmo_it_q *osmo_it_q_by_name(const char *name) +{ + struct osmo_it_q *q; + pthread_rwlock_rdlock(&it_queues_rwlock); + q = _osmo_it_q_by_name(name); + pthread_rwlock_unlock(&it_queues_rwlock); + return q; +} + +/* osmo_fd call-back when eventfd is readable */ +static int osmo_it_q_fd_cb(struct osmo_fd *ofd, unsigned int what) +{ + struct osmo_it_q *q = (struct osmo_it_q *) ofd->data; + uint64_t val; + int i, rc; + + if (!(what & OSMO_FD_READ)) + return 0; + + rc = read(ofd->fd, &val, sizeof(val)); + if (rc < sizeof(val)) + return rc; + + for (i = 0; i < val; i++) { + struct llist_head *item = _osmo_it_q_dequeue(q); + /* in case the user might have called osmo_it_q_flush() we may + * end up in the eventfd-dispatch but without any messages left in the queue, + * otherwise I'd have loved to OSMO_ASSERT(msg) here. */ + if (!item) + break; + q->read_cb(q, item); + } + + return 0; +} + +/*! Allocate a new inter-thread message queue. + * \param[in] ctx talloc context from which to allocate the queue + * \param[in] name human-readable string name of the queue; function creates a copy. + * \param[in] read_cb call-back function to be called for each de-queued message; may be + * NULL in case you don't want eventfd/osmo_select integration and + * will manually take care of noticing if and when to dequeue. + * \returns a newly-allocated inter-thread message queue; NULL in case of error */ +struct osmo_it_q *osmo_it_q_alloc(void *ctx, const char *name, unsigned int max_length, + void (*read_cb)(struct osmo_it_q *q, struct llist_head *item), + void *data) +{ + struct osmo_it_q *q; + int fd; + + q = talloc_zero(ctx, struct osmo_it_q); + if (!q) + return NULL; + q->data = data; + q->name = talloc_strdup(q, name); + q->current_length = 0; + q->max_length = max_length; + q->read_cb = read_cb; + INIT_LLIST_HEAD(&q->list); + pthread_mutex_init(&q->mutex, NULL); + q->event_ofd.fd = -1; + + if (q->read_cb) { + /* create eventfd *if* the user has provided a read_cb function */ + fd = eventfd(0, 0); + if (fd < 0) { + talloc_free(q); + return NULL; + } + + /* initialize BUT NOT REGISTER the osmo_fd. The receiving thread must + * take are to select/poll/read/... on it */ + osmo_fd_setup(&q->event_ofd, fd, OSMO_FD_READ, osmo_it_q_fd_cb, q, 0); + } + + /* add to global list of queues, checking for duplicate names */ + pthread_rwlock_wrlock(&it_queues_rwlock); + if (_osmo_it_q_by_name(q->name)) { + pthread_rwlock_unlock(&it_queues_rwlock); + if (q->event_ofd.fd >= 0) + osmo_fd_close(&q->event_ofd); + talloc_free(q); + return NULL; + } + llist_add_tail(&q->entry, &it_queues); + pthread_rwlock_unlock(&it_queues_rwlock); + + return q; +} + +static void *item_dequeue(struct llist_head *queue) +{ + struct llist_head *lh; + + if (llist_empty(queue)) + return NULL; + + lh = queue->next; + if (lh) { + llist_del(lh); + return lh; + } else + return NULL; +} + +/*! Flush all messages currently present in queue */ +static void _osmo_it_q_flush(struct osmo_it_q *q) +{ + void *item; + while ((item = item_dequeue(&q->list))) { + talloc_free(item); + } + q->current_length = 0; +} + +/*! Flush all messages currently present in queue */ +void osmo_it_q_flush(struct osmo_it_q *q) +{ + OSMO_ASSERT(q); + + pthread_mutex_lock(&q->mutex); + _osmo_it_q_flush(q); + pthread_mutex_unlock(&q->mutex); +} + +/*! Destroy a message queue */ +void osmo_it_q_destroy(struct osmo_it_q *q) +{ + OSMO_ASSERT(q); + + /* first remove from global list of queues */ + pthread_rwlock_wrlock(&it_queues_rwlock); + llist_del(&q->entry); + pthread_rwlock_unlock(&it_queues_rwlock); + /* next, close the eventfd */ + if (q->event_ofd.fd >= 0) + osmo_fd_close(&q->event_ofd); + /* flush all messages still present */ + osmo_it_q_flush(q); + pthread_mutex_destroy(&q->mutex); + /* and finally release memory */ + talloc_free(q); +} + +/*! Thread-safe en-queue to an inter-thread message queue. + * \param[in] queue Inter-thread queue on which to enqueue + * \param[in] item Item to enqueue. Must have llist_head as first member! + * \returns 0 on success; negative on error */ +int _osmo_it_q_enqueue(struct osmo_it_q *queue, struct llist_head *item) +{ + OSMO_ASSERT(queue); + OSMO_ASSERT(item); + + pthread_mutex_lock(&queue->mutex); + if (queue->current_length+1 > queue->max_length) { + pthread_mutex_unlock(&queue->mutex); + return -ENOSPC; + } + llist_add_tail(item, &queue->list); + queue->current_length++; + pthread_mutex_unlock(&queue->mutex); + /* increment eventfd counter by one */ + if (queue->event_ofd.fd >= 0) + eventfd_increment(queue->event_ofd.fd, 1); + return 0; +} + + +/*! Thread-safe de-queue from an inter-thread message queue. + * \param[in] queue Inter-thread queue from which to dequeue + * \returns dequeued message buffer; NULL if none available + */ +struct llist_head *_osmo_it_q_dequeue(struct osmo_it_q *queue) +{ + struct llist_head *l; + OSMO_ASSERT(queue); + + pthread_mutex_lock(&queue->mutex); + + if (llist_empty(&queue->list)) + l = NULL; + l = queue->list.next; + OSMO_ASSERT(l); + llist_del(l); + queue->current_length--; + + pthread_mutex_unlock(&queue->mutex); + + return l; +} + + +#endif /* HAVE_SYS_EVENTFD_H */ + +/*! @} */ diff --git a/tests/Makefile.am b/tests/Makefile.am index f769603..e0220bd 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -41,6 +41,7 @@ gad/gad_test \ bsslap/bsslap_test \ bssmap_le/bssmap_le_test \ + it_q/it_q_test \ $(NULL) if ENABLE_MSGFILE @@ -304,6 +305,9 @@ bssmap_le_bssmap_le_test_SOURCES = bssmap_le/bssmap_le_test.c bssmap_le_bssmap_le_test_LDADD = $(LDADD) $(top_builddir)/src/gsm/libosmogsm.la +it_q_it_q_test_SOURCES = it_q/it_q_test.c +it_q_it_q_test_LDADD = $(LDADD) + # The `:;' works around a Bash 3.2 bug when the output is not writeable. $(srcdir)/package.m4: $(top_srcdir)/configure.ac :;{ \ @@ -389,6 +393,7 @@ gad/gad_test.ok \ bsslap/bsslap_test.ok \ bssmap_le/bssmap_le_test.ok \ + it_q/it_q_test.ok \ $(NULL) if ENABLE_LIBSCTP diff --git a/tests/it_q/it_q_test.c b/tests/it_q/it_q_test.c new file mode 100644 index 0000000..0d75452 --- /dev/null +++ b/tests/it_q/it_q_test.c @@ -0,0 +1,119 @@ +#include +#include + +#include +#include +#include + +struct it_q_test1 { + struct llist_head list; + int *foo; +}; + +struct it_q_test2 { + int foo; + struct llist_head list; +}; + +#define ENTER_TC printf("\n== Entering test case %s\n", __func__) + +static void tc_alloc(void) +{ + struct osmo_it_q *q1, *q2; + + ENTER_TC; + + printf("allocating q1\n"); + q1 = osmo_it_q_alloc(OTC_GLOBAL, "q1", 3, NULL, NULL); + OSMO_ASSERT(q1); + + /* ensure that no duplicate allocation for the */ + printf("attempting duplicate allocation of qa\n"); + q2 = osmo_it_q_alloc(OTC_GLOBAL, "q1", 3, NULL, NULL); + OSMO_ASSERT(!q2); + + /* ensure that same name can be re-created after destroying old one */ + osmo_it_q_destroy(q1); + printf("re-allocating q1\n"); + q1 = osmo_it_q_alloc(OTC_GLOBAL, "q1", 3, NULL, NULL); + OSMO_ASSERT(q1); + + osmo_it_q_destroy(q1); +} + +static void tc_queue_length(void) +{ + struct osmo_it_q *q1; + unsigned int qlen = 3; + struct it_q_test1 *item; + int i, rc; + + ENTER_TC; + + printf("allocating q1\n"); + q1 = osmo_it_q_alloc(OTC_GLOBAL, "q1", qlen, NULL, NULL); + OSMO_ASSERT(q1); + + printf("adding queue entries up to the limit\n"); + for (i = 0; i < qlen; i++) { + item = talloc_zero(OTC_GLOBAL, struct it_q_test1); + rc = osmo_it_q_enqueue(q1, item, list); + OSMO_ASSERT(rc == 0); + } + printf("attempting to add more than the limit\n"); + item = talloc_zero(OTC_GLOBAL, struct it_q_test1); + rc = osmo_it_q_enqueue(q1, item, list); + OSMO_ASSERT(rc == -ENOSPC); + + osmo_it_q_destroy(q1); +} + +static int g_read_cb_count; + +static void q_read_cb(struct osmo_it_q *q, struct llist_head *item) +{ + struct it_q_test1 *it = container_of(item, struct it_q_test1, list); + *it->foo += 1; + talloc_free(item); +} + +static void tc_eventfd(void) +{ + struct osmo_it_q *q1; + unsigned int qlen = 30; + struct it_q_test1 *item; + int i, rc; + + ENTER_TC; + + printf("allocating q1\n"); + q1 = osmo_it_q_alloc(OTC_GLOBAL, "q1", qlen, q_read_cb, NULL); + OSMO_ASSERT(q1); + osmo_fd_register(&q1->event_ofd); + + /* ensure read-cb isn't called unless we enqueue something */ + osmo_select_main(1); + OSMO_ASSERT(g_read_cb_count == 0); + + /* ensure read-cb is called for each enqueued msg once */ + printf("adding %u queue entries up to the limit\n", qlen); + for (i = 0; i < qlen; i++) { + item = talloc_zero(OTC_GLOBAL, struct it_q_test1); + item->foo = &g_read_cb_count; + rc = osmo_it_q_enqueue(q1, item, list); + OSMO_ASSERT(rc == 0); + } + + osmo_select_main(1); + printf("%u entries were dequeued\n", qlen); + OSMO_ASSERT(g_read_cb_count == qlen); + + osmo_it_q_destroy(q1); +} + +int main(int argc, char **argv) +{ + tc_alloc(); + tc_queue_length(); + tc_eventfd(); +} diff --git a/tests/it_q/it_q_test.ok b/tests/it_q/it_q_test.ok new file mode 100644 index 0000000..7f102c6 --- /dev/null +++ b/tests/it_q/it_q_test.ok @@ -0,0 +1,15 @@ + +== Entering test case tc_alloc +allocating q1 +attempting duplicate allocation of qa +re-allocating q1 + +== Entering test case tc_queue_length +allocating q1 +adding queue entries up to the limit +attempting to add more than the limit + +== Entering test case tc_eventfd +allocating q1 +adding 30 queue entries up to the limit +30 entries were dequeued diff --git a/tests/testsuite.at b/tests/testsuite.at index ad93e16..75ce039 100644 --- a/tests/testsuite.at +++ b/tests/testsuite.at @@ -427,3 +427,9 @@ cat $abs_srcdir/bssmap_le/bssmap_le_test.ok > expout AT_CHECK([$abs_top_builddir/tests/bssmap_le/bssmap_le_test], [0], [expout], [ignore]) AT_CLEANUP + +AT_SETUP([it_q]) +AT_KEYWORDS([it_q]) +cat $abs_srcdir/it_q/it_q_test.ok > expout +AT_CHECK([$abs_top_builddir/tests/it_q/it_q_test], [0], [expout], [ignore]) +AT_CLEANUP -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21930 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie7d0c5fec715a2a577fae014b0b8a0e9c38418ef Gerrit-Change-Number: 21930 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 10:17:08 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 6 Jan 2021 10:17:08 +0000 Subject: Change in osmo-cbc[master]: Adjust use of inter-thread-queue with libosmocore API change References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-cbc/+/21994 ) Change subject: Adjust use of inter-thread-queue with libosmocore API change ...................................................................... Adjust use of inter-thread-queue with libosmocore API change during the libosmocore it_q patch review there was some small API change. Change-Id: I6a42000057f2efb4554b508debe4312e8f19a745 --- M src/internal.h M src/rest_it_op.c 2 files changed, 4 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-cbc refs/changes/94/21994/1 diff --git a/src/internal.h b/src/internal.h index 49344a1..e493c86 100644 --- a/src/internal.h +++ b/src/internal.h @@ -39,7 +39,7 @@ int peer_new_cbc_message(struct cbc_peer *peer, struct cbc_message *cbcmsg); /* rest_it_op.c */ -void rest2main_read_cb(struct osmo_it_q *q, void *item); +void rest2main_read_cb(struct osmo_it_q *q, struct llist_head *item); /* smscb_*fsm.c */ diff --git a/src/rest_it_op.c b/src/rest_it_op.c index d928c21..dd8ccb8 100644 --- a/src/rest_it_op.c +++ b/src/rest_it_op.c @@ -27,6 +27,7 @@ #include #include +#include #include #include "rest_it_op.h" @@ -86,9 +87,9 @@ ***********************************************************************/ -void rest2main_read_cb(struct osmo_it_q *q, void *item) +void rest2main_read_cb(struct osmo_it_q *q, struct llist_head *item) { - struct rest_it_op *op = item; + struct rest_it_op *op = container_of(item, struct rest_it_op, list); struct cbc_message *cbc_msg; LOGP(DREST, LOGL_DEBUG, "%s(op=%p) from %u\n", __func__, op, gettid()); -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/21994 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: I6a42000057f2efb4554b508debe4312e8f19a745 Gerrit-Change-Number: 21994 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 10:17:09 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 6 Jan 2021 10:17:09 +0000 Subject: Change in osmo-cbc[master]: don't immediately delete all state about deleted messages References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-cbc/+/21995 ) Change subject: don't immediately delete all state about deleted messages ...................................................................... don't immediately delete all state about deleted messages keep them around so we can still check statistics later on Change-Id: I59f733dcbd5f9ea2617ceccf652c35fdd23a444b --- M src/cbc_data.h M src/cbc_main.c M src/cbc_vty.c M src/smscb_message_fsm.c 4 files changed, 19 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-cbc refs/changes/95/21995/1 diff --git a/src/cbc_data.h b/src/cbc_data.h index 9ad7c70..7900fbc 100644 --- a/src/cbc_data.h +++ b/src/cbc_data.h @@ -154,6 +154,7 @@ struct { time_t created; /* when was this message created? */ + time_t expired; /* when has this message expired? */ } time; }; @@ -167,6 +168,7 @@ } config; struct llist_head messages; /* cbc_message.list */ + struct llist_head expired_messages; /* cbc_message.list */ struct llist_head peers; /* cbc_peer.list */ struct { struct osmo_it_q *rest2main; diff --git a/src/cbc_main.c b/src/cbc_main.c index 84d6e16..c7dc643 100644 --- a/src/cbc_main.c +++ b/src/cbc_main.c @@ -181,6 +181,7 @@ g_cbc = talloc_zero(tall_cbc_ctx, struct cbc); INIT_LLIST_HEAD(&g_cbc->peers); INIT_LLIST_HEAD(&g_cbc->messages); + INIT_LLIST_HEAD(&g_cbc->expired_messages); cbc_vty_init(); diff --git a/src/cbc_vty.c b/src/cbc_vty.c index 8e2e022..323497c 100644 --- a/src/cbc_vty.c +++ b/src/cbc_vty.c @@ -101,6 +101,12 @@ dump_one_cbc_msg(vty, cbc_msg); } + llist_for_each_entry(cbc_msg, &g_cbc->expired_messages, list) { + if (cbc_msg->msg.is_etws) + continue; + dump_one_cbc_msg(vty, cbc_msg); + } + return CMD_SUCCESS; } @@ -238,14 +244,18 @@ vty_out(vty, "|-----|-----|--------------------|-------------|------|-|------------|%s", VTY_NEWLINE); - - llist_for_each_entry(cbc_msg, &g_cbc->messages, list) { if (!cbc_msg->msg.is_etws) continue; dump_one_etws_msg(vty, cbc_msg); } + llist_for_each_entry(cbc_msg, &g_cbc->expired_messages, list) { + if (!cbc_msg->msg.is_etws) + continue; + dump_one_etws_msg(vty, cbc_msg); + } + return CMD_SUCCESS; } diff --git a/src/smscb_message_fsm.c b/src/smscb_message_fsm.c index 65a749b..0dd1f13 100644 --- a/src/smscb_message_fsm.c +++ b/src/smscb_message_fsm.c @@ -209,7 +209,10 @@ rest_it_op_complete(cbcmsg->it_op); cbcmsg->it_op = NULL; } - osmo_fsm_inst_term(fi, OSMO_FSM_TERM_REGULAR, NULL); + /* move from active to expired messages */ + llist_del(&cbcmsg->list); + llist_add_tail(&cbcmsg->list, &g_cbc->expired_messages); + cbcmsg->time.expired = time(NULL); } static struct osmo_fsm_state smscb_fsm_states[] = { -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/21995 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: I59f733dcbd5f9ea2617ceccf652c35fdd23a444b Gerrit-Change-Number: 21995 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 10:35:44 2021 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Wed, 6 Jan 2021 10:35:44 +0000 Subject: Change in osmo-e1d[master]: Evaluate received E and A bits in TS0 In-Reply-To: References: Message-ID: tnt has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/21808 ) Change subject: Evaluate received E and A bits in TS0 ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/21808 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I7e1c919518b3418e973b7ae5bedd5a6dd1c2adec Gerrit-Change-Number: 21808 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: tnt Gerrit-Comment-Date: Wed, 06 Jan 2021 10:35:44 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 10:51:32 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 6 Jan 2021 10:51:32 +0000 Subject: Change in osmo-e1d[master]: Evaluate received E and A bits in TS0 In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/21808 ) Change subject: Evaluate received E and A bits in TS0 ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/21808 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I7e1c919518b3418e973b7ae5bedd5a6dd1c2adec Gerrit-Change-Number: 21808 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tnt Gerrit-Comment-Date: Wed, 06 Jan 2021 10:51:32 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 10:51:45 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 6 Jan 2021 10:51:45 +0000 Subject: Change in osmo-e1d[master]: Evaluate received E and A bits in TS0 In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/21808 ) Change subject: Evaluate received E and A bits in TS0 ...................................................................... Evaluate received E and A bits in TS0 Related: OS#4917 Change-Id: I7e1c919518b3418e973b7ae5bedd5a6dd1c2adec --- M src/e1d.h M src/intf_line.c M src/mux_demux.c M src/usb.c M src/vpair.c M src/vty.c 6 files changed, 85 insertions(+), 7 deletions(-) Approvals: Jenkins Builder: Verified tnt: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/src/e1d.h b/src/e1d.h index 9848df4..7cb5335 100644 --- a/src/e1d.h +++ b/src/e1d.h @@ -27,6 +27,7 @@ #include #include #include +#include #include enum e1d_vty_node { @@ -42,6 +43,8 @@ LINE_CTR_CRC_ERR, LINE_CTR_RX_OVFL, LINE_CTR_TX_UNFL, + LINE_CTR_RX_REMOTE_E, + LINE_CTR_RX_REMOTE_A, }; enum e1_ts_mode { @@ -88,6 +91,9 @@ E1_LINE_MODE_SUPERCHANNEL, }; +#define E1L_TS0_RX_CRC4_ERR 0x01 +#define E1L_TS0_RX_ALARM 0x02 + struct e1_line { struct llist_head list; @@ -103,6 +109,17 @@ struct e1_ts ts[32]; /* superchannel */ struct e1_ts superchan; + + struct { + /*! buffer where we aggregate the E bits each multi-frame */ + uint8_t e_bits; + /*! did we receive CRC4 / ALARM error reports this second (timer tick) */ + uint8_t cur_errmask; + /*! did we receive CRC4 / ALARM error reports previous second (timer tick) */ + uint8_t prev_errmask; + /*! timer to re-set the rx_crc4_err and rx_alarm above */ + struct osmo_timer_list timer; + } ts0; }; enum e1_driver { @@ -160,7 +177,7 @@ e1_line_mux_out(struct e1_line *line, uint8_t *buf, int fts); int -e1_line_demux_in(struct e1_line *line, const uint8_t *buf, int size); +e1_line_demux_in(struct e1_line *line, const uint8_t *buf, int size, int frame_base); void e1_ts_stop(struct e1_ts *ts); diff --git a/src/intf_line.c b/src/intf_line.c index ccd7645..5143e45 100644 --- a/src/intf_line.c +++ b/src/intf_line.c @@ -52,6 +52,8 @@ [LINE_CTR_CRC_ERR] = { "rx:crc_errors", "E1 Rx CRC Errors" }, [LINE_CTR_RX_OVFL] = { "rx:overflow", "E1 Rx Overflow" }, [LINE_CTR_TX_UNFL] = { "tx:underflow", "E1 Tx Underflow" }, + [LINE_CTR_RX_REMOTE_E] ={ "rx:remote_crc_errors", "Rx Frames Reporting Remote CRC Error"}, + [LINE_CTR_RX_REMOTE_A] ={ "rx:remote_alarm", "Rx Frames Reporting Remote Alarm"}, }; static const struct rate_ctr_group_desc line_ctrg_desc = { @@ -134,6 +136,28 @@ } static void +_ts0_tmr_cb(void *_line) +{ + struct e1_line *line = (struct e1_line *) _line; + + if ((line->ts0.cur_errmask & E1L_TS0_RX_CRC4_ERR) != + (line->ts0.prev_errmask & E1L_TS0_RX_CRC4_ERR)) { + LOGPLI(line, DE1D, LOGL_NOTICE, "Remote CRC4 Error report %s\n", + line->ts0.cur_errmask & E1L_TS0_RX_CRC4_ERR ? "STARTED" : "CEASED"); + } + + if ((line->ts0.cur_errmask & E1L_TS0_RX_ALARM) != + (line->ts0.prev_errmask & E1L_TS0_RX_ALARM)) { + LOGPLI(line, DE1D, LOGL_NOTICE, "Remote ALARM condition %s\n", + line->ts0.cur_errmask & E1L_TS0_RX_ALARM ? "STARTED" : "CEASED"); + } + + line->ts0.prev_errmask = line->ts0.cur_errmask; + line->ts0.cur_errmask = 0; + osmo_timer_schedule(&line->ts0.timer, 1, 0); +} + +static void _ts_init(struct e1_ts *ts, struct e1_line *line, int id) { ts->line = line; @@ -167,6 +191,9 @@ line->ctrs = rate_ctr_group_alloc(line, &line_ctrg_desc, line->id); OSMO_ASSERT(line->ctrs); + osmo_timer_setup(&line->ts0.timer, _ts0_tmr_cb, line); + osmo_timer_schedule(&line->ts0.timer, 1, 0); + llist_add_tail(&line->list, &intf->lines); LOGPLI(line, DE1D, LOGL_NOTICE, "Created\n"); diff --git a/src/mux_demux.c b/src/mux_demux.c index ed7bf3b..dffc798 100644 --- a/src/mux_demux.c +++ b/src/mux_demux.c @@ -348,13 +348,41 @@ return 0; } +static void +_e1_line_demux_in_ts0(struct e1_line *line, const uint8_t *buf, int ftr, uint8_t frame_base) +{ + int i; + + for (i = 0; i < ftr; i++) { + const uint8_t *frame = buf + i*32; + uint8_t frame_nr = (frame_base + i) & 0xf; + + /* A bit is present in each odd frame */ + if (frame_nr % 2) { + if (frame[0] & 0x20) + line->ts0.cur_errmask |= E1L_TS0_RX_ALARM; + } + + /* E bits are present in frame 13 + 15 */ + if (frame_nr == 13) + line->ts0.e_bits = frame[0] & 0x80 ? 2 : 0; + if (frame_nr == 15) { + line->ts0.e_bits |= frame[0] & 0x80 ? 1 : 0; + if (line->ts0.e_bits != 3) + line->ts0.cur_errmask |= E1L_TS0_RX_CRC4_ERR; + } + /* cur_errmask is being cleared once per second via line->ts0.timer */ + } +} + /*! de-multiplex E1 line data to the individual timeslots. * \param[in] line E1 line on which we operate. * \param[in] buf buffer containing multiplexed frame-aligned E1 data. * \param[in] size size of 'buf' in octets; assumed to be multiple of E1 frame size (32). + * \param[in] frame_base frame number (in multiframe) of first frame in 'buf'. -1 to disable TS0. * \returns 0 on success; negative on error */ int -e1_line_demux_in(struct e1_line *line, const uint8_t *buf, int size) +e1_line_demux_in(struct e1_line *line, const uint8_t *buf, int size, int frame_base) { int ftr; @@ -366,6 +394,9 @@ ftr = size / 32; OSMO_ASSERT(size % 32 == 0); + if (frame_base >= 0) + _e1_line_demux_in_ts0(line, buf, ftr, frame_base); + switch (line->mode) { case E1_LINE_MODE_CHANNELIZED: return _e1_line_demux_in_channelized(line, buf, ftr); diff --git a/src/usb.c b/src/usb.c index 326a2b2..3ec793f 100644 --- a/src/usb.c +++ b/src/usb.c @@ -118,7 +118,7 @@ { if (size == 0) return 0; - return e1_line_demux_in(flow->line, buf + 4, size - 4); + return e1_line_demux_in(flow->line, buf + 4, size - 4, buf[3] & 0xf); } static int diff --git a/src/vpair.c b/src/vpair.c index df14026..8484be0 100644 --- a/src/vpair.c +++ b/src/vpair.c @@ -132,14 +132,14 @@ rc = e1_line_mux_out(line, buf, frames_expired); OSMO_ASSERT(rc >= 0); /* write data to peer */ - rc = e1_line_demux_in(peer, buf, rc); + rc = e1_line_demux_in(peer, buf, rc, 0); OSMO_ASSERT(rc >= 0); /* generate data on peer line */ rc = e1_line_mux_out(peer, buf, frames_expired); OSMO_ASSERT(rc >= 0); /* write data to current line */ - rc = e1_line_demux_in(line, buf, rc); + rc = e1_line_demux_in(line, buf, rc, 0); OSMO_ASSERT(rc >= 0); } diff --git a/src/vty.c b/src/vty.c index da3d005..0d8ab2b 100644 --- a/src/vty.c +++ b/src/vty.c @@ -109,8 +109,11 @@ { int tn; - vty_out(vty, "Interface #%u, Line #%u, Mode %s:%s", line->intf->id, line->id, - get_value_string(e1_line_mode_names, line->mode), VTY_NEWLINE); + vty_out(vty, "Interface #%u, Line #%u, Mode %s%s%s:%s", line->intf->id, line->id, + get_value_string(e1_line_mode_names, line->mode), + line->ts0.cur_errmask & E1L_TS0_RX_ALARM ? " [REMOTE-ALARM]" : "", + line->ts0.cur_errmask & E1L_TS0_RX_CRC4_ERR ? " [REMOTE-CRC-ERROR]" : "", + VTY_NEWLINE); for (tn = 0; tn < ARRAY_SIZE(line->ts); tn++) { const struct e1_ts *ts = &line->ts[tn]; -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/21808 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I7e1c919518b3418e973b7ae5bedd5a6dd1c2adec Gerrit-Change-Number: 21808 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tnt Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 10:51:51 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 6 Jan 2021 10:51:51 +0000 Subject: Change in osmo-e1d[master]: Add new "osmo-e1gen" program. In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/21805 ) Change subject: Add new "osmo-e1gen" program. ...................................................................... Patch Set 6: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/21805 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I53a86d6730eb76a9cff9eb3f4786139015c91230 Gerrit-Change-Number: 21805 Gerrit-PatchSet: 6 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tnt Gerrit-Comment-Date: Wed, 06 Jan 2021 10:51:51 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 10:51:53 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 6 Jan 2021 10:51:53 +0000 Subject: Change in osmo-e1d[master]: Add new "osmo-e1gen" program. In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/21805 ) Change subject: Add new "osmo-e1gen" program. ...................................................................... Add new "osmo-e1gen" program. osmo-e1gen is a program that re-uses large parts of osmo-e1d, but whose main purpose is to generate a variety of error conditions in order to test a remote E1 implementation. Instead of using the automatisms of the icE1usb transmit IP core, it switches it to transparent mode and uses a host-software based E1 framer "osmo_e1f", over which we have more control than the firmware. Change-Id: I53a86d6730eb76a9cff9eb3f4786139015c91230 --- M src/Makefile.am M src/e1d.h A src/e1gen/crc4itu.c A src/e1gen/crc4itu.h A src/e1gen/osmo_e1f.c A src/e1gen/osmo_e1f.h A src/osmo-e1gen.c 7 files changed, 1,449 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved tnt: Looks good to me, but someone else must approve diff --git a/src/Makefile.am b/src/Makefile.am index fd61f5a..d245bc6 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -24,6 +24,8 @@ ice1usb_proto.h \ log.h \ usb.h \ + e1gen/crc4itu.h \ + e1gen/osmo_e1f.h \ $(NULL) @@ -32,6 +34,10 @@ osmo-e1d-pipe \ $(NULL) +noinst_PROGRAMS = \ + osmo-e1gen \ + $(NULL) + osmo_e1d_SOURCES = \ ctl.c \ intf_line.c \ @@ -51,3 +57,17 @@ $(NULL) osmo_e1d_pipe_LDADD = $(LIBOSMOCORE_LIBS) libosmo-e1d.la + + +osmo_e1gen_LDADD = $(LIBOSMOCORE_LIBS) $(LIBOSMOVTY_LIBS) \ + $(LIBOSMOUSB_LIBS) $(LIBUSB_LIBS) + +osmo_e1gen_SOURCES = \ + intf_line.c \ + log.c \ + e1gen/crc4itu.c \ + e1gen/osmo_e1f.c \ + osmo-e1gen.c \ + usb.c \ + vty.c \ + $(NULL) diff --git a/src/e1d.h b/src/e1d.h index 7cb5335..70bca38 100644 --- a/src/e1d.h +++ b/src/e1d.h @@ -120,6 +120,8 @@ /*! timer to re-set the rx_crc4_err and rx_alarm above */ struct osmo_timer_list timer; } ts0; + + void *e1gen_priv; }; enum e1_driver { diff --git a/src/e1gen/crc4itu.c b/src/e1gen/crc4itu.c new file mode 100644 index 0000000..f13895a --- /dev/null +++ b/src/e1gen/crc4itu.c @@ -0,0 +1,56 @@ +/** + * \file + * Functions and types for CRC checks. + * + * Generated on Sat May 12 09:39:22 2018 + * by pycrc v0.9.1, https://pycrc.org + * using the configuration: + * - Width = 4 + * - Poly = 0x3 + * - XorIn = 0x0 + * - ReflectIn = False + * - XorOut = 0x0 + * - ReflectOut = False + * - Algorithm = table-driven + */ +#include "crc4itu.h" /* include the header file generated with pycrc */ +#include +#include + + + +/** + * Static table used for the table_driven implementation. + */ +static const crc_t crc_table[256] = { + 0x00, 0x03, 0x06, 0x05, 0x0c, 0x0f, 0x0a, 0x09, 0x0b, 0x08, 0x0d, 0x0e, 0x07, 0x04, 0x01, 0x02, + 0x05, 0x06, 0x03, 0x00, 0x09, 0x0a, 0x0f, 0x0c, 0x0e, 0x0d, 0x08, 0x0b, 0x02, 0x01, 0x04, 0x07, + 0x0a, 0x09, 0x0c, 0x0f, 0x06, 0x05, 0x00, 0x03, 0x01, 0x02, 0x07, 0x04, 0x0d, 0x0e, 0x0b, 0x08, + 0x0f, 0x0c, 0x09, 0x0a, 0x03, 0x00, 0x05, 0x06, 0x04, 0x07, 0x02, 0x01, 0x08, 0x0b, 0x0e, 0x0d, + 0x07, 0x04, 0x01, 0x02, 0x0b, 0x08, 0x0d, 0x0e, 0x0c, 0x0f, 0x0a, 0x09, 0x00, 0x03, 0x06, 0x05, + 0x02, 0x01, 0x04, 0x07, 0x0e, 0x0d, 0x08, 0x0b, 0x09, 0x0a, 0x0f, 0x0c, 0x05, 0x06, 0x03, 0x00, + 0x0d, 0x0e, 0x0b, 0x08, 0x01, 0x02, 0x07, 0x04, 0x06, 0x05, 0x00, 0x03, 0x0a, 0x09, 0x0c, 0x0f, + 0x08, 0x0b, 0x0e, 0x0d, 0x04, 0x07, 0x02, 0x01, 0x03, 0x00, 0x05, 0x06, 0x0f, 0x0c, 0x09, 0x0a, + 0x0e, 0x0d, 0x08, 0x0b, 0x02, 0x01, 0x04, 0x07, 0x05, 0x06, 0x03, 0x00, 0x09, 0x0a, 0x0f, 0x0c, + 0x0b, 0x08, 0x0d, 0x0e, 0x07, 0x04, 0x01, 0x02, 0x00, 0x03, 0x06, 0x05, 0x0c, 0x0f, 0x0a, 0x09, + 0x04, 0x07, 0x02, 0x01, 0x08, 0x0b, 0x0e, 0x0d, 0x0f, 0x0c, 0x09, 0x0a, 0x03, 0x00, 0x05, 0x06, + 0x01, 0x02, 0x07, 0x04, 0x0d, 0x0e, 0x0b, 0x08, 0x0a, 0x09, 0x0c, 0x0f, 0x06, 0x05, 0x00, 0x03, + 0x09, 0x0a, 0x0f, 0x0c, 0x05, 0x06, 0x03, 0x00, 0x02, 0x01, 0x04, 0x07, 0x0e, 0x0d, 0x08, 0x0b, + 0x0c, 0x0f, 0x0a, 0x09, 0x00, 0x03, 0x06, 0x05, 0x07, 0x04, 0x01, 0x02, 0x0b, 0x08, 0x0d, 0x0e, + 0x03, 0x00, 0x05, 0x06, 0x0f, 0x0c, 0x09, 0x0a, 0x08, 0x0b, 0x0e, 0x0d, 0x04, 0x07, 0x02, 0x01, + 0x06, 0x05, 0x00, 0x03, 0x0a, 0x09, 0x0c, 0x0f, 0x0d, 0x0e, 0x0b, 0x08, 0x01, 0x02, 0x07, 0x04 +}; + + +crc_t crc4itu_update(crc_t crc, const void *data, size_t data_len) +{ + const unsigned char *d = (const unsigned char *)data; + unsigned int tbl_idx; + + while (data_len--) { + tbl_idx = (crc << 4) ^ *d; + crc = crc_table[tbl_idx] & 0xf; + d++; + } + return crc & 0xf; +} diff --git a/src/e1gen/crc4itu.h b/src/e1gen/crc4itu.h new file mode 100644 index 0000000..220b50f --- /dev/null +++ b/src/e1gen/crc4itu.h @@ -0,0 +1,106 @@ +/** + * \file + * Functions and types for CRC checks. + * + * Generated on Sat May 12 09:41:12 2018 + * by pycrc v0.9.1, https://pycrc.org + * using the configuration: + * - Width = 4 + * - Poly = 0x3 + * - XorIn = 0x0 + * - ReflectIn = False + * - XorOut = 0x0 + * - ReflectOut = False + * - Algorithm = table-driven + * + * This file defines the functions crc4itu_init(), crc4itu_update() and crc_finalize(). + * + * The crc4itu_init() function returns the inital \c crc value and must be called + * before the first call to crc4itu_update(). + * Similarly, the crc_finalize() function must be called after the last call + * to crc4itu_update(), before the \c crc is being used. + * is being used. + * + * The crc4itu_update() function can be called any number of times (including zero + * times) in between the crc4itu_init() and crc_finalize() calls. + * + * This pseudo-code shows an example usage of the API: + * \code{.c} + * crc_t crc; + * unsigned char data[MAX_DATA_LEN]; + * size_t data_len; + * + * crc = crc4itu_init(); + * while ((data_len = read_data(data, MAX_DATA_LEN)) > 0) { + * crc = crc4itu_update(crc, data, data_len); + * } + * crc = crc_finalize(crc); + * \endcode + */ +#ifndef CRC4ITU_H +#define CRC4ITU_H + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + + +/** + * The definition of the used algorithm. + * + * This is not used anywhere in the generated code, but it may be used by the + * application code to call algorithm-specific code, if desired. + */ +#define CRC_ALGO_TABLE_DRIVEN 1 + + +/** + * The type of the CRC values. + * + * This type must be big enough to contain at least 4 bits. + */ +typedef uint_fast8_t crc_t; + + +/** + * Calculate the initial crc value. + * + * \return The initial crc value. + */ +static inline crc_t crc4itu_init(void) +{ + return 0x0; +} + + +/** + * Update the crc value with new data. + * + * \param[in] crc The current crc value. + * \param[in] data Pointer to a buffer of \a data_len bytes. + * \param[in] data_len Number of bytes in the \a data buffer. + * \return The updated crc value. + */ +crc_t crc4itu_update(crc_t crc, const void *data, size_t data_len); + + +/** + * Calculate the final crc value. + * + * \param[in] crc The current crc value. + * \return The final crc value. + */ +static inline crc_t crc_finalize(crc_t crc) +{ + return crc; +} + + +#ifdef __cplusplus +} /* closing brace for extern "C" */ +#endif + +#endif /* CRC4ITU_H */ diff --git a/src/e1gen/osmo_e1f.c b/src/e1gen/osmo_e1f.c new file mode 100644 index 0000000..fa64e17 --- /dev/null +++ b/src/e1gen/osmo_e1f.c @@ -0,0 +1,704 @@ +/* Osmocom Software Defined E1 + * + * (C) 2018 by Harald Welte + * + * Implements ITU-T Rec. G.704 Section 2.3 + */ + +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +#include "crc4itu.h" +#include "osmo_e1f.h" + +#define S(x) (1 << (x)) + +/* Frame Alignment Signal (BIT1 may be overwritten with CRC-4) */ +#define G704_E1_FAS 0x1B + +static inline bool is_correct_fas(uint8_t bt) { + if ((bt & 0x7F) == G704_E1_FAS) + return true; + else + return false; +} + +/* are we in SMF II (true) or I (false) */ +static inline bool is_smf_II(const struct osmo_e1f_tx_state *tx) { + if (tx->frame_nr >= 8) + return true; + return false; +} + +static struct osmo_fsm e1_align_fsm; +static void align_fsm_reset(struct osmo_e1f_instance *e1i); + +static void notify_user(struct osmo_e1f_instance *e1i, enum osmo_e1f_notify_event evt, + bool present, void *priv) +{ + if (!e1i->notify_cb) + return; + e1i->notify_cb(e1i, evt, present, priv); +} + +/*! Initialize a (caller-allocated) Osmocom E1 Instance + * \param[inout] e1i E1 Instance to be initialized + * \returns 0 on success, negative on error */ +int osmo_e1f_instance_init(struct osmo_e1f_instance *e1i, const char *name, e1_notify_cb cb, + bool crc4_enabled, void *priv) +{ + int i; + + e1i->crc4_enabled = crc4_enabled; + e1i->notify_cb = cb; + e1i->tx.sa4_sa8 = 0x1f; + + e1i->priv = priv; + + for (i = 1; i < ARRAY_SIZE(e1i->ts); i++) { + struct osmo_e1f_instance_ts *e1t = &e1i->ts[i]; + e1t->ts_nr = i; + e1t->inst = e1i; + INIT_LLIST_HEAD(&e1t->tx.queue); + + e1t->rx.granularity = 256; + } + + e1i->rx.fi = osmo_fsm_inst_alloc(&e1_align_fsm, NULL, e1i, LOGL_DEBUG, name); + if (!e1i->rx.fi) + return -1; + + osmo_e1f_instance_reset(e1i); + + return 0; +} + +/*! stop E1 timeslot; release any pending rx/tx buffers + * \param[in] e1t Timeslot which we are to stop, disable and release buffers */ +void osmo_e1f_ts_reset(struct osmo_e1f_instance_ts *e1t) +{ + e1t->tx.underruns = 0; + msgb_queue_free(&e1t->tx.queue); + + e1t->rx.enabled = false; + msgb_free(e1t->rx.msg); + e1t->rx.msg = NULL; + + osmo_isdnhdlc_rcv_init(&e1t->rx.hdlc, OSMO_HDLC_F_BITREVERSE); + //osmo_isdnhdlc_rcv_init(&e1t->rx.hdlc, 0); + osmo_isdnhdlc_out_init(&e1t->tx.hdlc, 0); +} + +/*! stop E1 instance; stops all timeslots and releases any pending rx/tx buffers + * \param[in] e1t E1 instance which we are to stop */ +void osmo_e1f_instance_reset(struct osmo_e1f_instance *e1i) +{ + int i; + + align_fsm_reset(e1i); + + e1i->tx.remote_alarm = false; + e1i->tx.crc4_error = false; + e1i->tx.frame_nr = 0; + e1i->tx.crc4_last_smf = 0; + e1i->tx.crc4 = crc4itu_init(); + + e1i->rx.frame_nr = 0; + memset(&e1i->rx.ts0_history, 0, sizeof(e1i->rx.ts0_history)); + e1i->rx.ts0_hist_len = 0; + e1i->rx.remote_alarm = false; + e1i->rx.remote_crc4_error = false; + e1i->rx.num_ts0_in_mframe_search = 0; + + for (i = 1; i < ARRAY_SIZE(e1i->ts); i++) { + struct osmo_e1f_instance_ts *e1t = &e1i->ts[i]; + osmo_e1f_ts_reset(e1t); + } +} + +/*! obtain pointer to TS given by instance + timeslot number + * \param[in] e1i E1 intance on which we work + * \param[in] ts_nr E1 timeslot number (1..31) + * \returns pointer to timeslot; NULL on error */ +struct osmo_e1f_instance_ts *osmo_e1f_instance_ts(struct osmo_e1f_instance *e1i, uint8_t ts_nr) +{ + if (ts_nr == 0 || ts_nr >= ARRAY_SIZE(e1i->ts)) + return NULL; + + return &e1i->ts[ts_nr]; +} + +/*! configure an E1 timeslot + * \param[in] e1t Timeslot which we are to configure + * \param[in] granularity granularity (buffer size) to use on Rx + * \param[in] enable enable (true) or disalble (false) receiving on this TS + * \param[in] mode the mode for this timeslot (raw or hdlc) + * \return 0 on success; negative on error */ +int osmo_e1f_ts_config(struct osmo_e1f_instance_ts *e1t, e1_data_cb cb, unsigned int granularity, + bool enable, enum osmo_e1f_ts_mode mode) +{ + e1t->rx.data_cb = cb; + e1t->rx.enabled = enable; + e1t->rx.granularity = granularity; + e1t->mode = mode; + + return 0; +} + +const struct value_string osmo_e1f_notifv_evt_names[] = { + { E1_NTFY_EVT_ALIGN_FRAME, "Aligned to Frame" }, + { E1_NTFY_EVT_ALIGN_CRC_MFRAME, "Aligned to CRC4-Multiframe" }, + { E1_NTFY_EVT_CRC_ERROR, "CRC Error detected (local)" }, + { E1_NTFY_EVT_REMOTE_CRC_ERROR, "CRC Error reported (remote)" }, + { E1_NTFY_EVT_REMOTE_ALARM, "Remote Alarm condition repoorted" }, + { 0, NULL } +}; + +/*********************************************************************** + * Transmit Side + ***********************************************************************/ + +/*! Enqueue a message buffer of to-be-transmitted data for a timeslot + * \param[in] e1i E1 instance for which to enqueue + * \param[in] ts_nr Timeslot number on which data is to be transmitted + * \param[in] msg Message buffer storing the to-be-transmitted data + * \returns 0 on success; negative in case of error. + * + * Ownership of \a msg is transferred from caller into this function, but only + * in case of successful execution (return 0)! + */ +void osmo_e1f_ts_enqueue(struct osmo_e1f_instance_ts *e1t, struct msgb *msg) +{ + msgb_enqueue(&e1t->tx.queue, msg); +} + +/* obtain a CRC4 bit for the current frame number */ +static uint8_t e1_pull_crc4_bit(struct osmo_e1f_instance *e1i) +{ + /* If CRC-4 is disabled, all CRC bits shall be '1' */ + if (e1i->crc4_enabled == 0) { + return 0x01; + } else { + /* CRC is transmitted MSB first */ + switch (e1i->tx.frame_nr % 8) { + case 0: + return (e1i->tx.crc4_last_smf >> 3) & 1; + case 2: + return (e1i->tx.crc4_last_smf >> 2) & 1; + case 4: + return (e1i->tx.crc4_last_smf >> 1) & 1; + case 6: + return (e1i->tx.crc4_last_smf >> 0) & 1; + default: + OSMO_ASSERT(0); + } + } +} + +/* pull a single to-be-transmitted byte for TS0 */ +static uint8_t e1_pull_ts0(struct osmo_e1f_instance *e1i) +{ + uint8_t ret = 0; + + /* re-set CRC4 at start of sub-multiframe */ + if (e1i->tx.frame_nr == 0 || e1i->tx.frame_nr == 8) { + e1i->tx.crc4_last_smf = e1i->tx.crc4; + e1i->tx.crc4 = 0; + } + + /* according to Table 5B/G.704 - CRC-4 multiframe structure */ + if ((e1i->tx.frame_nr % 2) == 0) { + /* FAS */ + ret = G704_E1_FAS | (e1_pull_crc4_bit(e1i) << 7); + } else { + switch (e1i->tx.frame_nr) { + case 1: + case 3: + case 7: + ret = 0x40; + break; + case 5: + case 9: + case 11: + ret = 0xC0; + break; + case 13: + case 15: + ret = 0x40; + if (!e1i->tx.crc4_error) + ret |= 0x80; + break; + } + ret |= e1i->tx.sa4_sa8; + if (e1i->tx.remote_alarm) + ret |= 0x20; + } + + /* increment frame number modulo 16 */ + e1i->tx.frame_nr = (e1i->tx.frame_nr + 1) % 16; + + return ret; +} + +/* pull a single to-be-transmitted byte for TS1..31 */ +static uint8_t e1_pull_tsN(struct osmo_e1f_instance_ts *e1t) +{ + struct msgb *msg = llist_first_entry_or_null(&e1t->tx.queue, struct msgb, list); + uint8_t *cur; + +retry: + /* if there's no message to transmit */ + if (!msg) { + e1t->tx.underruns++; + return 0xFF; + } + if (msgb_length(msg) <= 0) { + llist_del(&msg->list); + msgb_free(msg); + msg = llist_first_entry_or_null(&e1t->tx.queue, struct msgb, list); + goto retry; + } + cur = msgb_pull(msg, 1); + return *cur; +} + +/* update the current in-progress CRC4 value with data from \a out_frame */ +static void e1_tx_update_crc4(struct osmo_e1f_instance *e1i, const uint8_t *out_frame) +{ + uint8_t ts0; + + ts0 = out_frame[0]; + /* mask off the C bits */ + if (is_correct_fas(ts0)) + ts0 &= 0x7F; + e1i->tx.crc4 = crc4itu_update(e1i->tx.crc4, &ts0, 1); + /* add the remaining bytes/bits */ + e1i->tx.crc4 = crc4itu_update(e1i->tx.crc4, out_frame+1, ARRAY_SIZE(e1i->ts)-1); +} + +/*! Pull one to-be-transmitted E1 frame (256bits) from the E1 instance + * \param e1i E1 instance for which the frame shall be generated + * \param[out] out_frame callee-allocated buffer to which function stores 32 bytes + * \returns 0 on success, negative on error */ +int osmo_e1f_pull_tx_frame(struct osmo_e1f_instance *e1i, uint8_t *out_frame) +{ + int i; + + if (e1i->tx.ais) { + memset(out_frame, 0xff, 32); + return 0; + } + + /* generate TS0 */ + out_frame[0] = e1_pull_ts0(e1i); + + /* generate TS1..31 */ + for (i = 1; i < ARRAY_SIZE(e1i->ts); i++) { + struct osmo_e1f_instance_ts *e1t = &e1i->ts[i]; + /* get next to-be-transmitted byte from the TS */ + out_frame[i] = e1_pull_tsN(e1t); + } + /* update our CRC4 computation */ + e1_tx_update_crc4(e1i, out_frame); + + return 0; +} + +/*********************************************************************** + * Receiver Side + ***********************************************************************/ + +/* According to Figure 2 / ITU-T G.706 */ +enum e1_align_state { + /* Frame Alignment Search */ + E1_AS_SEARCH_FRAME, + /* CRC multiframe alignment search */ + E1_AS_SEARCH_CRC_MFRAME, + /* monitoring for incorrect frame alignment and error performance using CRC */ + E1_AS_ALIGNED_CRC_MFRAME, + /* no CRC: just frame alignment loss check */ + E1_AS_ALIGNED_BASIC, +}; + +enum e1_align_event { + /* received a TS0 octet */ + E1_AE_RX_TS0, + E1_AE_RESET +}; + +static const struct value_string e1_align_evt_names[] = { + { E1_AE_RX_TS0, "E1_AE_RX_TS0" }, + { E1_AE_RESET, "E1_AE_RESET" }, + { 0, NULL } +}; + +/* get a TS0 byte from the history. delta 0 == current, delte 1 == previous, ... */ +static uint8_t get_ts0_hist(struct osmo_e1f_instance *e1i, uint8_t delta) +{ + return e1i->rx.ts0_history[((e1i->rx.frame_nr + 16)-delta) % 16]; +} + +/* ITU-T G.706 Section 4.1.1 */ +static bool frame_alignment_lost(struct osmo_e1f_instance *e1i) +{ + if (e1i->rx.frame_nr % 2) + return false; + + /* Frame alignment will be assumed to have been lost when three consecutive incorrect + * frame alignment signals have been received. */ + if (!is_correct_fas(get_ts0_hist(e1i, 0)) && + !is_correct_fas(get_ts0_hist(e1i, 2)) && + !is_correct_fas(get_ts0_hist(e1i, 4))) + return true; + else + return false; +} + +/* ITU-T G.706 Section 4.1.2 */ +static bool frame_alignment_recovered(struct osmo_e1f_instance *e1i) +{ + /* two consecutive FAS with one non-FAS interspersed */ + if (is_correct_fas(get_ts0_hist(e1i, 0)) && + !is_correct_fas(get_ts0_hist(e1i, 1)) && + is_correct_fas(get_ts0_hist(e1i, 2))) + return true; + else + return false; +} + +/* ITU-T G.706 Section 4.2 */ +static bool crc_mframe_alignment_achieved(struct osmo_e1f_instance *e1i) +{ + /* if current TS0 byte is FAS, we cannot detect alignment */ + if (is_correct_fas(get_ts0_hist(e1i, 0))) + return false; + if ((get_ts0_hist(e1i, 0) >> 7) == 1 && + (get_ts0_hist(e1i, 2) >> 7) == 1 && + (get_ts0_hist(e1i, 4) >> 7) == 0 && + (get_ts0_hist(e1i, 6) >> 7) == 1 && + (get_ts0_hist(e1i, 8) >> 7) == 0 && + (get_ts0_hist(e1i, 10) >> 7) == 0) + return true; + else + return false; +} + +/* Get the CRC4 that was received from our Rx TS0 history */ +static uint8_t crc4_from_ts0_hist(struct osmo_e1f_instance *e1i, bool smf2) +{ + uint8_t crc = 0; + uint8_t offset = 0; + + if (smf2) + offset = 8; + + crc |= (e1i->rx.ts0_history[0+offset] >> 7) << 3; + crc |= (e1i->rx.ts0_history[2+offset] >> 7) << 2; + crc |= (e1i->rx.ts0_history[4+offset] >> 7) << 1; + crc |= (e1i->rx.ts0_history[6+offset] >> 7) << 0; + + return crc; +} + +/* update the current in-progress CRC4 value with data from \a rx_frame */ +static void e1_rx_update_crc4(struct osmo_e1f_instance *e1i, const uint8_t *rx_frame) +{ + uint8_t ts0; + + ts0 = rx_frame[0]; + /* mask off the C bits */ + if (is_correct_fas(ts0)) + ts0 &= 0x7F; + e1i->rx.crc4 = crc4itu_update(e1i->rx.crc4, &ts0, 1); + /* add the remaining bytes/bits */ + e1i->rx.crc4 = crc4itu_update(e1i->rx.crc4, rx_frame+1, ARRAY_SIZE(e1i->ts)-1); +} + +/* FSM State handler */ +static void e1_align_search_frame(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct osmo_e1f_instance *e1i = (struct osmo_e1f_instance *) fi->priv; + + if (frame_alignment_recovered(e1i)) { + /* if we detected the 2nd FAS, we must be in FN 2 (or at least FN%2=0 */ + e1i->rx.frame_nr = 2; + notify_user(e1i, E1_NTFY_EVT_ALIGN_FRAME, true, NULL); + osmo_fsm_inst_state_chg(fi, E1_AS_SEARCH_CRC_MFRAME, 0, 0); + } +} + +/* FSM State handler */ +static void e1_align_search_crc_mframe(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct osmo_e1f_instance *e1i = (struct osmo_e1f_instance *) fi->priv; + + if (crc_mframe_alignment_achieved(e1i)) { + /* if we detected the 6-bit CRC multiframe signal, we must be in FN 11 */ + e1i->rx.frame_nr = 11; + /* FIXME: "at least two valid CRC multiframe alignment signals can be located within + * 8 ms, the time separating two CRC multiframe alignment signals being 2 ms or a + * multiple of 2 ms" */ + notify_user(e1i, E1_NTFY_EVT_ALIGN_CRC_MFRAME, true, NULL); + osmo_fsm_inst_state_chg(fi, E1_AS_ALIGNED_CRC_MFRAME, 0, 0); + } else { + /* if no mframe alignment is established within 8ms (64 frames), fall back */ + if (e1i->rx.num_ts0_in_mframe_search >= 64) { + e1i->rx.num_ts0_in_mframe_search = 0; + osmo_fsm_inst_state_chg(fi, E1_AS_SEARCH_FRAME, 0, 0); + } + e1i->rx.num_ts0_in_mframe_search++; + } +} + +static void e1_aligned_common(struct osmo_e1f_instance *e1i) +{ + uint8_t inb = get_ts0_hist(e1i, 0); + + /* All non-FAS frames contain "A" bit in TS0 */ + if (!is_correct_fas(inb & 0x7F)) { + bool old_alarm = e1i->rx.remote_alarm; + /* frame not containing the frame alignment signal */ + if (inb & 0x20) + e1i->rx.remote_alarm = true; + else + e1i->rx.remote_alarm = false; + if (old_alarm != e1i->rx.remote_alarm) + notify_user(e1i, E1_NTFY_EVT_REMOTE_ALARM, e1i->rx.remote_alarm, NULL); + } +} + +/* FSM State handler */ +static void e1_aligned_crc_mframe(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct osmo_e1f_instance *e1i = (struct osmo_e1f_instance *) fi->priv; + + if (frame_alignment_lost(e1i)) { + osmo_fsm_inst_state_chg(fi, E1_AS_SEARCH_FRAME, 0, 0); + return; + } + + if (e1i->crc4_enabled) { + uint8_t crc_rx; + bool crc4_error; + + /* check if we just received a complete CRC4 */ + switch (e1i->rx.frame_nr) { + case 7: + case 15: + crc_rx = crc4_from_ts0_hist(e1i, e1i->rx.frame_nr == 15 ? true : false); + if (crc_rx != e1i->rx.crc4_last_smf) + crc4_error = true; + else + crc4_error = false; + if (crc4_error != e1i->tx.crc4_error) { + notify_user(e1i, E1_NTFY_EVT_CRC_ERROR, crc4_error, NULL); + e1i->tx.crc4_error = crc4_error; + } + /* rotate computed CRC4 one further */ + e1i->rx.crc4_last_smf = e1i->rx.crc4; + e1i->rx.crc4 = crc4itu_init(); + break; + default: + break; + } + + /* check if the remote side reports any CRC errors */ + switch (e1i->rx.frame_nr) { + case 13: + case 15: + crc4_error = false; + if ((get_ts0_hist(e1i, 0) >> 7) == 0) + crc4_error = true; + if (crc4_error != e1i->rx.remote_crc4_error) { + notify_user(e1i, E1_NTFY_EVT_REMOTE_CRC_ERROR, crc4_error, NULL); + e1i->rx.remote_crc4_error = crc4_error; + } + break; + } + } + + e1_aligned_common(e1i); +} + +/* FSM State handler */ +static void e1_aligned_basic(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct osmo_e1f_instance *e1i = (struct osmo_e1f_instance *) fi->priv; + + if (frame_alignment_lost(e1i)) { + osmo_fsm_inst_state_chg(fi, E1_AS_SEARCH_FRAME, 0, 0); + return; + } + + e1_aligned_common(e1i); +} + +static const struct osmo_fsm_state e1_align_states[] = { + [E1_AS_SEARCH_FRAME] = { + .name = "SEARCH_FRAME", + .in_event_mask = S(E1_AE_RX_TS0), + .out_state_mask = S(E1_AS_SEARCH_FRAME) | + S(E1_AS_SEARCH_CRC_MFRAME) | + S(E1_AS_ALIGNED_BASIC), + .action = e1_align_search_frame, + }, + [E1_AS_SEARCH_CRC_MFRAME] = { + .name = "SEARCH_CRC_MFRAME", + .in_event_mask = S(E1_AE_RX_TS0), + .out_state_mask = S(E1_AS_SEARCH_FRAME) | + S(E1_AS_SEARCH_CRC_MFRAME) | + S(E1_AS_ALIGNED_CRC_MFRAME), + .action = e1_align_search_crc_mframe, + }, + [E1_AS_ALIGNED_CRC_MFRAME] = { + .name = "ALIGNED_CRC_MFRAME", + .in_event_mask = S(E1_AE_RX_TS0), + .out_state_mask = S(E1_AS_SEARCH_FRAME) | + S(E1_AS_SEARCH_CRC_MFRAME) | + S(E1_AS_ALIGNED_CRC_MFRAME), + .action = e1_aligned_crc_mframe, + }, + [E1_AS_ALIGNED_BASIC] = { + .name = "ALIGNED_BASIC", + .in_event_mask = S(E1_AE_RX_TS0), + .out_state_mask = S(E1_AS_SEARCH_FRAME), + .action = e1_aligned_basic, + }, +}; + +static void e1_allstate(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct osmo_e1f_instance *e1i = (struct osmo_e1f_instance *) fi->priv; + + switch (event) { + case E1_AE_RESET: + e1i->rx.num_ts0_in_mframe_search = 0; + osmo_fsm_inst_state_chg(fi, E1_AS_SEARCH_FRAME, 0, 0); + break; + } +} + +static struct osmo_fsm e1_align_fsm = { + .name = "e1-align", + .states = e1_align_states, + .num_states = ARRAY_SIZE(e1_align_states), + .allstate_event_mask = S(E1_AE_RESET), + .allstate_action = e1_allstate, + .log_subsys = DLGLOBAL, + .event_names = e1_align_evt_names, +}; + +static void align_fsm_reset(struct osmo_e1f_instance *e1i) +{ + osmo_fsm_inst_dispatch(e1i->rx.fi, E1_AE_RESET, NULL); +} + +static void e1_rx_hist_add(struct osmo_e1f_instance *e1i, uint8_t inb) +{ + e1i->rx.ts0_history[e1i->rx.frame_nr] = inb; + if (e1i->rx.ts0_hist_len < 16) + e1i->rx.ts0_hist_len++; +} + +static void e1_rx_ts0(struct osmo_e1f_instance *e1i, uint8_t inb) +{ + /* append just-received byte to the TS0 receive history buffer */ + e1_rx_hist_add(e1i, inb); + + /* notify the FSM that a new TS0 byte was received */ + osmo_fsm_inst_dispatch(e1i->rx.fi, E1_AE_RX_TS0, NULL); + + e1i->rx.frame_nr = (e1i->rx.frame_nr + 1) % 16; +} + +static void e1_rx_tsN(struct osmo_e1f_instance_ts *e1t, uint8_t inb) +{ + struct msgb *msg; + int count, rc; + + if (!e1t->rx.enabled) + return; + + if (!e1t->rx.msg) + e1t->rx.msg = msgb_alloc(e1t->rx.granularity, "E1 Rx"); + msg = e1t->rx.msg; + OSMO_ASSERT(msg); + + switch (e1t->mode) { + case OSMO_E1F_TS_RAW: + /* append byte at end of msgb */ + msgb_put_u8(msg, inb); + /* flush msgb, if full */ + if (msgb_tailroom(msg) <= 0) { + goto flush; + } + break; + case OSMO_E1F_TS_HDLC_CRC: + rc = osmo_isdnhdlc_decode(&e1t->rx.hdlc, &inb, 1, &count, + msgb_data(msg), msgb_tailroom(msg)); + switch (rc) { + case -OSMO_HDLC_FRAMING_ERROR: + fprintf(stdout, "Framing Error\n"); + break; + case -OSMO_HDLC_CRC_ERROR: + fprintf(stdout, "CRC Error\n"); + break; + case -OSMO_HDLC_LENGTH_ERROR: + fprintf(stdout, "Length Error\n"); + break; + case 0: + /* no output yet */ + break; + default: + msgb_put(msg, rc); + goto flush; + } + break; + } + + return; +flush: + + if (!e1t->rx.data_cb) + msgb_free(msg); + else + e1t->rx.data_cb(e1t, msg); + e1t->rx.msg = NULL; +} + +/*! Receive a single E1 frame of 32x8 (=256) bits + * \param e1i E1 instance for which the frame was received + * \param[in] in_frame caller-provided buffer of 32 octets + * + * The idea is that whoever calls us will already have done the bit-alignment, + * i.e. the first bit of TS0 of the frame will be octet-aligned and hence the + * entire 256bit buffer is provided as octet-aligned 32bytes in \a in_frame. + */ +int osmo_e1f_rx_frame(struct osmo_e1f_instance *e1i, const uint8_t *in_frame) +{ + int i; + + e1_rx_update_crc4(e1i, in_frame); + + e1_rx_ts0(e1i, in_frame[0]); + + for (i = 1; i < ARRAY_SIZE(e1i->ts); i++) { + struct osmo_e1f_instance_ts *e1t = &e1i->ts[i]; + e1_rx_tsN(e1t, in_frame[i]); + } + + return 0; +} + +int osmo_e1f_init(void) +{ + return osmo_fsm_register(&e1_align_fsm); +} diff --git a/src/e1gen/osmo_e1f.h b/src/e1gen/osmo_e1f.h new file mode 100644 index 0000000..0b423d9 --- /dev/null +++ b/src/e1gen/osmo_e1f.h @@ -0,0 +1,123 @@ +#pragma once + +#include +#include +#include +#include +#include +#include + +struct osmo_e1f_tx_state { + bool remote_alarm; + bool crc4_error; + bool ais; + /* lower 5 bits: Sa4..Sa8 */ + uint8_t sa4_sa8; + /* frame number 0..15 */ + uint8_t frame_nr; + uint8_t crc4_last_smf; + uint8_t crc4; +}; + +struct osmo_e1f_rx_state { + uint8_t frame_nr; + /* history of rceived TS0 octets */ + uint8_t ts0_history[16]; + uint8_t ts0_hist_len; + /* was a remote alarm received? */ + bool remote_alarm; + bool remote_crc4_error; + /* number of TS0 bytes received since entering CRC mframe search */ + uint8_t num_ts0_in_mframe_search; + struct osmo_fsm_inst *fi; + /* computed CRC4 */ + uint8_t crc4_last_smf; + uint8_t crc4; +}; + +enum osmo_e1f_notify_event { + E1_NTFY_EVT_ALIGN_FRAME, + E1_NTFY_EVT_ALIGN_CRC_MFRAME, + E1_NTFY_EVT_CRC_ERROR, + E1_NTFY_EVT_REMOTE_CRC_ERROR, + E1_NTFY_EVT_REMOTE_ALARM, +}; + +enum osmo_e1f_ts_mode { + OSMO_E1F_TS_RAW, + OSMO_E1F_TS_HDLC_CRC, +}; + +struct osmo_e1f_instance_ts; +struct osmo_e1f_instance; +typedef void (*e1_data_cb)(struct osmo_e1f_instance_ts *ts, struct msgb *msg); +typedef void (*e1_notify_cb)(struct osmo_e1f_instance *e1i, enum osmo_e1f_notify_event evt, + bool present, void *data); + +struct osmo_e1f_instance_ts { + /* timeslot number */ + uint8_t ts_nr; + /* mode in which we operate (RAW/HDLC) */ + enum osmo_e1f_ts_mode mode; + /* back-pointer to e1 instance */ + struct osmo_e1f_instance *inst; + struct { + /* optional HDLC encoder state */ + struct osmo_isdnhdlc_vars hdlc; + /* queue of pending to-be-transmitted messages */ + struct llist_head queue; + unsigned long underruns; + } tx; + struct { + /* optional HDLC decoder state */ + struct osmo_isdnhdlc_vars hdlc; + bool enabled; + /* how many bytes to buffer before calling call-back */ + unsigned int granularity; + /* current receive buffer */ + struct msgb *msg; + e1_data_cb data_cb; + /* private data, relevant to user */ + void *priv; + } rx; +}; + +struct osmo_e1f_instance { + /* list; currently not used yet */ + struct llist_head list; + + /* is CRC4 generation + parsing enabled? */ + bool crc4_enabled; + /* notification call-back function */ + e1_notify_cb notify_cb; + + /* Rx + Tx related state */ + struct osmo_e1f_tx_state tx; + struct osmo_e1f_rx_state rx; + + /* our 32 timeslots (only 1..32 are used) */ + struct osmo_e1f_instance_ts ts[32]; + + /* private data, relevant to user */ + void *priv; +}; + +extern const struct value_string osmo_e1f_notifv_evt_names[]; + +static inline const char *osmo_e1f_notify_event_name(enum osmo_e1f_notify_event evt) { + return get_value_string(osmo_e1f_notifv_evt_names, evt); +} + +int osmo_e1f_init(void); +struct osmo_e1f_instance_ts *osmo_e1f_instance_ts(struct osmo_e1f_instance *e1i, uint8_t ts_nr); +int osmo_e1f_instance_init(struct osmo_e1f_instance *e1i, const char *name, e1_notify_cb cb, + bool crc4_enabled, void *priv); +void osmo_e1f_instance_reset(struct osmo_e1f_instance *e1i); +int osmo_e1f_ts_config(struct osmo_e1f_instance_ts *e1t, e1_data_cb cb, unsigned int granularity, + bool enable, enum osmo_e1f_ts_mode mode); +void osmo_e1f_ts_reset(struct osmo_e1f_instance_ts *e1t); + + +void osmo_e1f_ts_enqueue(struct osmo_e1f_instance_ts *e1t, struct msgb *msg); +int osmo_e1f_pull_tx_frame(struct osmo_e1f_instance *e1i, uint8_t *out_frame); +int osmo_e1f_rx_frame(struct osmo_e1f_instance *e1i, const uint8_t *in_frame); diff --git a/src/osmo-e1gen.c b/src/osmo-e1gen.c new file mode 100644 index 0000000..15d677a --- /dev/null +++ b/src/osmo-e1gen.c @@ -0,0 +1,438 @@ +/* + * osmo-e1gen.c + * + * (C) 2020 by Harald Welte + * + * All Rights Reserved + * + * SPDX-License-Identifier: GPL-2.0+ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#include +#include +#include +#include +#include + +#define _GNU_SOURCE +#include + +#include + +#include +#include +#include +#include +#include +#include +#include + +#include "e1d.h" +#include "usb.h" +#include "log.h" + +#include "e1gen/osmo_e1f.h" + +#ifndef OSMO_VTY_PORT_E1D +#define OSMO_VTY_PORT_E1D 4269 +#endif + +/*********************************************************************** + * global variables + ***********************************************************************/ + +extern struct e1_daemon *vty_e1d; +static const char *g_config_file = "osmo-e1d.cfg"; +static void *g_e1d_ctx = NULL; +static int g_shutdown = 0; + +/*********************************************************************** + * stubs for external linkage of normal osmo-e1d + ***********************************************************************/ + +void e1_ts_stop(struct e1_ts *ts) {} +int e1d_vpair_create(struct e1_daemon *e1d, unsigned int num_lines) { return -1; } +struct e1_intf *e1d_vpair_intf_peer(struct e1_intf *intf) { return NULL; } + + + +struct e1gen_line_data { + struct ice1usb_tx_config tx_config; + struct ice1usb_rx_config rx_config; + struct osmo_e1f_instance e1f; +}; + +static void e1f_notify_cb(struct osmo_e1f_instance *e1f, enum osmo_e1f_notify_event evt, + bool present, void *data) +{ + struct e1_line *line = e1f->priv; + LOGPLI(line, DE1D, LOGL_NOTICE, "NOTIFY: %s %s\n", + osmo_e1f_notify_event_name(evt), present ? "PRESENT" : "ABSENT"); +} + +static const struct e1gen_line_data default_ld = { + .tx_config = { + .mode = ICE1USB_TX_MODE_TRANSP, + .timing = ICE1USB_TX_TIME_SRC_LOCAL, + .ext_loopback = ICE1USB_TX_EXT_LOOPBACK_OFF, + .alarm = 0, + }, + .rx_config = { + .mode = ICE1USB_RX_MODE_MULTIFRAME, + //.mode = ICE1USB_RX_MODE_TRANSP, + }, +}; + +struct e1gen_line_data *ensure_gld(struct e1_line *line) +{ + struct e1gen_line_data *gld = (struct e1gen_line_data *) line->e1gen_priv; + + if (gld) + return gld; + + LOGPLI(line, DE1D, LOGL_INFO, "Creating e1gen structures\n"); + + line->e1gen_priv = gld = talloc_zero(line, struct e1gen_line_data); + gld->tx_config = default_ld.tx_config; + gld->rx_config = default_ld.rx_config; + osmo_e1f_instance_init(&gld->e1f, "LINE", e1f_notify_cb, true, line); + + /* set the default configuration */ + e1_usb_ctrl_set_tx_cfg(line, gld->tx_config.mode, gld->tx_config.timing, + gld->tx_config.ext_loopback, gld->tx_config.alarm); + e1_usb_ctrl_set_rx_cfg(line, gld->rx_config.mode); + + return gld; +} + +/*! process (demultiplex) input data for the specified e1_line. + * \param[in] line E1 line for which to genrate output data + * \param[in] buf input buffer of multiplexed data received on line + * \param[in] size size of buf in octets */ +int e1_line_demux_in(struct e1_line *line, const uint8_t *buf, int size, int frame_base) +{ + struct e1gen_line_data *gld = ensure_gld(line); + int offs; + + for (offs = 0; offs + 32 <= size; offs += 32) { + //printf("Rx "OSMO_BIT_SPEC"\n", OSMO_BIT_PRINT(buf[offs])); + //printf("Rx %s\n", osmo_hexdump(buf + offs, 32)); + osmo_e1f_rx_frame(&gld->e1f, buf + offs); + } + return 0; +} + +/*! generate (multiplex) output data for the specified e1_line + * \param[in] line E1 line for which to genrate output data + * \param[in] buf caller-allocated output buffer for multiplexed data + * \param[in] fts number of E1 frames (32 bytes each) to generate + * \return number of bytes written to buf */ +int e1_line_mux_out(struct e1_line *line, uint8_t *buf, int fts) +{ + struct e1gen_line_data *gld = ensure_gld(line); + int f; + + //printf("FRAME:\n"); + for (f = 0; f < fts; f++) { + osmo_e1f_pull_tx_frame(&gld->e1f, buf + f*32); + //printf("Tx "OSMO_BIT_SPEC"\n", OSMO_BIT_PRINT(buf[f*32])); + //printf("Tx %s\n", osmo_hexdump(buf + f*32, 32)); + } + + return 32*fts; +} + +static struct cmd_node line_node = { + (enum node_type) LINE_NODE, + "%s(line)# ", + 1, +}; + +#define TX_STR "Transmitter\n" +#define OFF_ON_STR "Off\n" "On\n" + +DEFUN(line_tx_alarm, line_tx_alarm_cmd, + "tx report-alarm (0|1)", + TX_STR "Report Alarm (A-Bits)\n" OFF_ON_STR) +{ + struct e1_line *line = vty->index; + struct e1gen_line_data *gld = ensure_gld(line); + int on = atoi(argv[0]); + + gld->e1f.tx.remote_alarm = on ? true : false; + + return CMD_SUCCESS; +} + +DEFUN(line_tx_crc4, line_tx_crc4_cmd, + "tx generate-crc4 (0|1)", + TX_STR "Generate CRC4\n" OFF_ON_STR) +{ + struct e1_line *line = vty->index; + struct e1gen_line_data *gld = ensure_gld(line); + int on = atoi(argv[0]); + + gld->e1f.crc4_enabled = on ? true : false; + + return CMD_SUCCESS; +} + +DEFUN(line_tx_report_crc4, line_tx_report_crc4_cmd, + "tx report-crc4-error (0|1)", + TX_STR "Report a CRC4 Error\n" OFF_ON_STR) +{ + struct e1_line *line = vty->index; + struct e1gen_line_data *gld = ensure_gld(line); + int on = atoi(argv[0]); + + gld->e1f.tx.crc4_error = on ? true : false; + + return CMD_SUCCESS; +} + +DEFUN(line_tx_sa48, line_tx_sa48_cmd, + "tx sa4 <0-31>", + TX_STR "Set the SA4..SA8 bit content\n") +{ + struct e1_line *line = vty->index; + struct e1gen_line_data *gld = ensure_gld(line); + + gld->e1f.tx.sa4_sa8 = atoi(argv[0]); + + return CMD_SUCCESS; +} + +DEFUN(line_tx_ais, line_tx_ais_cmd, + "tx ais (0|1)", + TX_STR "Transmit AIS (All-1)\n" OFF_ON_STR) +{ + struct e1_line *line = vty->index; + struct e1gen_line_data *gld = ensure_gld(line); + int on = atoi(argv[0]); + + gld->e1f.tx.ais = on ? true : false; + + return CMD_SUCCESS; +} + +DEFUN(line_show, line_show_cmd, + "show", "Show Line status\n") +{ + struct e1_line *line = vty->index; + struct e1gen_line_data *gld = ensure_gld(line); + struct osmo_e1f_instance *e1f = &gld->e1f; + + vty_out(vty, "Rx RemoteAlarm=%u, RemoteCrcErr=%u%s", + e1f->rx.remote_alarm, e1f->rx.remote_crc4_error, VTY_NEWLINE); + vty_out(vty, "Tx RemoteAlarm=%u, CrcErr=%u%s", + e1f->tx.remote_alarm, e1f->tx.crc4_error, VTY_NEWLINE); + + return CMD_SUCCESS; +} + +DEFUN(line, line_cmd, + "interface <0-255> line <0-225>", + "E1 Interface\n" "E1 Interface\n" + "E1 Line number\n" "E1 Line number\n") +{ + struct e1_intf *intf; + struct e1_line *line; + + intf = e1d_find_intf(vty_e1d, atoi(argv[0])); + if (!intf) { + vty_out(vty, "No such interface %s%s", argv[0], VTY_NEWLINE); + return CMD_WARNING; + } + + line = e1_intf_find_line(intf, atoi(argv[1])); + if (!line) { + vty_out(vty, "No such line %s in interface %s%s", argv[1], argv[0], VTY_NEWLINE); + return CMD_WARNING; + } + + vty->node = LINE_NODE; + vty->index = line; + + return CMD_SUCCESS; +} + +static void e1gen_init(void) +{ + install_element(ENABLE_NODE, &line_cmd); + install_node(&line_node, NULL); + install_element(LINE_NODE, &line_tx_alarm_cmd); + install_element(LINE_NODE, &line_tx_crc4_cmd); + install_element(LINE_NODE, &line_tx_report_crc4_cmd); + install_element(LINE_NODE, &line_tx_sa48_cmd); + install_element(LINE_NODE, &line_tx_ais_cmd); + install_element(LINE_NODE, &line_show_cmd); +} + +/*********************************************************************** + * initialization (mostly shared with osmo-e1d.c + ***********************************************************************/ + +static struct vty_app_info vty_info = { + .name = "osmo-e1gen", + .version = PACKAGE_VERSION, + .copyright = + "(C) 2019-2020 by Sylvain Munaut and Harald Welte\r\n", + "License GPLv2+: GNU GPL version 2 or later \r\n" + "This is free software: you are free to change and redistribute it.\r\n" + "There is NO WARRANTY, to the extent permitted by law.\r\n", +}; + +static void sig_handler(int signo) +{ + fprintf(stdout, "signal %d received\n", signo); + switch (signo) { + case SIGINT: + case SIGTERM: + fprintf(stdout, "shutting down\n"); + g_shutdown = 1; + break; + case SIGABRT: + case SIGUSR1: + talloc_report(g_e1d_ctx, stderr); + talloc_report_full(g_e1d_ctx, stderr); + break; + case SIGUSR2: + talloc_report_full(g_e1d_ctx, stderr); + break; + default: + break; + } +} + +static void print_help(void) +{ + printf(" Some useful help...\n"); + printf(" -h --help This text.\n"); + printf(" -d --debug option --debug=DE1D:DXFR enable debugging.\n"); + printf(" -c --config-file filename The config file to use.\n"); +} + +static void handle_options(int argc, char **argv) +{ + while (1) { + int option_index = 0, c; + static const struct option long_options[] = { + {"help", 0, 0, 'h'}, + {"debug", 1, 0, 'd'}, + {"config-file", 1, 0, 'c'}, + {0, 0, 0, 0} + }; + + c = getopt_long(argc, argv, "hd:c:", long_options, &option_index); + if (c == -1) + break; + + switch (c) { + case 'h': + print_help(); + exit(0); + break; + case 'd': + log_parse_category_mask(osmo_stderr_target, optarg); + break; + case 'c': + g_config_file = optarg; + break; + default: + fprintf(stderr, "Error in command line options. Exiting.\n"); + exit(-1); + } + } + + if (argc > optind) { + fprintf(stderr, "Unsupported positional arguments on command line\n"); + exit(2); + } +} + +int main(int argc, char **argv) +{ + struct e1_daemon *e1d = NULL; + struct sched_param sp; + int rv; + + /* talloc init */ + g_e1d_ctx = talloc_named_const(NULL, 0, "osmo-e1d"); + msgb_talloc_ctx_init(g_e1d_ctx, 0); + + /* logging init */ + osmo_init_logging2(g_e1d_ctx, &log_info); + + /* signals init */ + signal(SIGINT, &sig_handler); + signal(SIGTERM, &sig_handler); + signal(SIGABRT, &sig_handler); + signal(SIGUSR1, &sig_handler); + signal(SIGUSR2, &sig_handler); + osmo_init_ignore_signals(); + + /* rt prio */ + memset(&sp, 0x00, sizeof(sp)); + sp.sched_priority = 50; + rv = sched_setscheduler(0, SCHED_RR, &sp); + if (rv != 0) { + LOGP(DE1D, LOGL_ERROR, "Failed to set Real-Time priority. USB comms might be unstable.\n"); + perror("sched_setscheduler"); + } + + /* main state */ + e1d = talloc_zero(g_e1d_ctx, struct e1_daemon); + OSMO_ASSERT(e1d); + + INIT_LLIST_HEAD(&e1d->interfaces); + vty_init(&vty_info); + logging_vty_add_cmds(); + e1d_vty_init(e1d); + + handle_options(argc, argv); + + rv = vty_read_config_file(g_config_file, NULL); + if (rv < 0) { + LOGP(DE1D, LOGL_FATAL, "Failed to parse the config file '%s'\n", g_config_file); + exit(2); + } + + rv = telnet_init_dynif(g_e1d_ctx, e1d, vty_get_bind_addr(), OSMO_VTY_PORT_E1D); + if (rv != 0) { + LOGP(DE1D, LOGL_FATAL, "Failed to bind VTY interface to %s:%u\n", + vty_get_bind_addr(), OSMO_VTY_PORT_E1D); + exit(1); + } + + osmo_e1f_init(); + e1gen_init(); + + /* probe devices */ + rv = e1_usb_probe(e1d); + if (rv != 0) { + LOGP(DE1D, LOGL_ERROR, "Failed to prove usb devices\n"); + } + + /* main loop */ + while (!g_shutdown) { + osmo_select_main(0); + } + + talloc_free(e1d); + + return 0; +} -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/21805 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: I53a86d6730eb76a9cff9eb3f4786139015c91230 Gerrit-Change-Number: 21805 Gerrit-PatchSet: 6 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tnt Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 11:04:12 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 6 Jan 2021 11:04:12 +0000 Subject: Change in osmo-cbc[master]: move from gettid() to pthread_self() References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-cbc/+/21996 ) Change subject: move from gettid() to pthread_self() ...................................................................... move from gettid() to pthread_self() Whatever you do sucks: * gettid() doens't have a glibc wrapper function in Debian <= 9 * pthrad_self() returns an opaque pthread_t where we shouldn't really make the assumption it's an unsigned long Change-Id: Ida200de75333e0d35997158000def3cac89759b1 --- M src/cbc_main.c M src/rest_it_op.c 2 files changed, 3 insertions(+), 9 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-cbc refs/changes/96/21996/1 diff --git a/src/cbc_main.c b/src/cbc_main.c index 84d6e16..f664afb 100644 --- a/src/cbc_main.c +++ b/src/cbc_main.c @@ -20,14 +20,12 @@ * */ -#define _GNU_SOURCE #include #include #include #include #include #include -#include #include #include @@ -206,7 +204,7 @@ rest_api_init(tall_rest_ctx, 12345); - LOGP(DREST, LOGL_INFO, "Main thread tid: %d\n", gettid()); + LOGP(DREST, LOGL_INFO, "Main thread tid: %lu\n", pthread_self()); g_cbc->it_q.rest2main = osmo_it_q_alloc(g_cbc, "rest2main", 10, rest2main_read_cb, NULL); OSMO_ASSERT(g_cbc->it_q.rest2main); osmo_fd_register(&g_cbc->it_q.rest2main->event_ofd); diff --git a/src/rest_it_op.c b/src/rest_it_op.c index d928c21..b01f8ba 100644 --- a/src/rest_it_op.c +++ b/src/rest_it_op.c @@ -20,10 +20,6 @@ * */ -#define _GNU_SOURCE -#include -#include - #include #include @@ -55,7 +51,7 @@ { int rc = 0; - LOGP(DREST, LOGL_DEBUG, "rest_it_op enqueue from %u\n", gettid()); + LOGP(DREST, LOGL_DEBUG, "rest_it_op enqueue from %lu\n", pthread_self()); rc = osmo_it_q_enqueue(g_cbc->it_q.rest2main, op, list); if (rc < 0) @@ -91,7 +87,7 @@ struct rest_it_op *op = item; struct cbc_message *cbc_msg; - LOGP(DREST, LOGL_DEBUG, "%s(op=%p) from %u\n", __func__, op, gettid()); + LOGP(DREST, LOGL_DEBUG, "%s(op=%p) from %lu\n", __func__, op, pthread_self()); /* FIXME: look up related message and dispatch to message FSM, * which will eventually call pthread_cond_signal(&op->cond) */ -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/21996 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: Ida200de75333e0d35997158000def3cac89759b1 Gerrit-Change-Number: 21996 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 11:07:24 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 6 Jan 2021 11:07:24 +0000 Subject: Change in osmo-cbc[master]: move from gettid() to pthread_self() In-Reply-To: References: Message-ID: laforge has removed a vote from this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/21996 ) Change subject: move from gettid() to pthread_self() ...................................................................... Removed Verified-1 by Jenkins Builder (1000002) -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/21996 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: Ida200de75333e0d35997158000def3cac89759b1 Gerrit-Change-Number: 21996 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: deleteVote -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 11:07:28 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 6 Jan 2021 11:07:28 +0000 Subject: Change in osmo-cbc[master]: move from gettid() to pthread_self() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/21996 ) Change subject: move from gettid() to pthread_self() ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/21996 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: Ida200de75333e0d35997158000def3cac89759b1 Gerrit-Change-Number: 21996 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 06 Jan 2021 11:07:28 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 11:07:33 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 6 Jan 2021 11:07:33 +0000 Subject: Change in osmo-cbc[master]: Adjust use of inter-thread-queue with libosmocore API change In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/21994 ) Change subject: Adjust use of inter-thread-queue with libosmocore API change ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/21994 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: I6a42000057f2efb4554b508debe4312e8f19a745 Gerrit-Change-Number: 21994 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 06 Jan 2021 11:07:33 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 11:07:35 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 6 Jan 2021 11:07:35 +0000 Subject: Change in osmo-cbc[master]: move from gettid() to pthread_self() In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/21996 ) Change subject: move from gettid() to pthread_self() ...................................................................... move from gettid() to pthread_self() Whatever you do sucks: * gettid() doens't have a glibc wrapper function in Debian <= 9 * pthrad_self() returns an opaque pthread_t where we shouldn't really make the assumption it's an unsigned long Change-Id: Ida200de75333e0d35997158000def3cac89759b1 --- M src/cbc_main.c M src/rest_it_op.c 2 files changed, 3 insertions(+), 9 deletions(-) Approvals: laforge: Looks good to me, approved; Verified diff --git a/src/cbc_main.c b/src/cbc_main.c index 84d6e16..f664afb 100644 --- a/src/cbc_main.c +++ b/src/cbc_main.c @@ -20,14 +20,12 @@ * */ -#define _GNU_SOURCE #include #include #include #include #include #include -#include #include #include @@ -206,7 +204,7 @@ rest_api_init(tall_rest_ctx, 12345); - LOGP(DREST, LOGL_INFO, "Main thread tid: %d\n", gettid()); + LOGP(DREST, LOGL_INFO, "Main thread tid: %lu\n", pthread_self()); g_cbc->it_q.rest2main = osmo_it_q_alloc(g_cbc, "rest2main", 10, rest2main_read_cb, NULL); OSMO_ASSERT(g_cbc->it_q.rest2main); osmo_fd_register(&g_cbc->it_q.rest2main->event_ofd); diff --git a/src/rest_it_op.c b/src/rest_it_op.c index d928c21..b01f8ba 100644 --- a/src/rest_it_op.c +++ b/src/rest_it_op.c @@ -20,10 +20,6 @@ * */ -#define _GNU_SOURCE -#include -#include - #include #include @@ -55,7 +51,7 @@ { int rc = 0; - LOGP(DREST, LOGL_DEBUG, "rest_it_op enqueue from %u\n", gettid()); + LOGP(DREST, LOGL_DEBUG, "rest_it_op enqueue from %lu\n", pthread_self()); rc = osmo_it_q_enqueue(g_cbc->it_q.rest2main, op, list); if (rc < 0) @@ -91,7 +87,7 @@ struct rest_it_op *op = item; struct cbc_message *cbc_msg; - LOGP(DREST, LOGL_DEBUG, "%s(op=%p) from %u\n", __func__, op, gettid()); + LOGP(DREST, LOGL_DEBUG, "%s(op=%p) from %lu\n", __func__, op, pthread_self()); /* FIXME: look up related message and dispatch to message FSM, * which will eventually call pthread_cond_signal(&op->cond) */ -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/21996 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: Ida200de75333e0d35997158000def3cac89759b1 Gerrit-Change-Number: 21996 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 11:07:36 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 6 Jan 2021 11:07:36 +0000 Subject: Change in osmo-cbc[master]: Adjust use of inter-thread-queue with libosmocore API change In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/21994 ) Change subject: Adjust use of inter-thread-queue with libosmocore API change ...................................................................... Adjust use of inter-thread-queue with libosmocore API change during the libosmocore it_q patch review there was some small API change. Change-Id: I6a42000057f2efb4554b508debe4312e8f19a745 --- M src/internal.h M src/rest_it_op.c 2 files changed, 4 insertions(+), 3 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/internal.h b/src/internal.h index 49344a1..e493c86 100644 --- a/src/internal.h +++ b/src/internal.h @@ -39,7 +39,7 @@ int peer_new_cbc_message(struct cbc_peer *peer, struct cbc_message *cbcmsg); /* rest_it_op.c */ -void rest2main_read_cb(struct osmo_it_q *q, void *item); +void rest2main_read_cb(struct osmo_it_q *q, struct llist_head *item); /* smscb_*fsm.c */ diff --git a/src/rest_it_op.c b/src/rest_it_op.c index b01f8ba..a91c758 100644 --- a/src/rest_it_op.c +++ b/src/rest_it_op.c @@ -23,6 +23,7 @@ #include #include +#include #include #include "rest_it_op.h" @@ -82,9 +83,9 @@ ***********************************************************************/ -void rest2main_read_cb(struct osmo_it_q *q, void *item) +void rest2main_read_cb(struct osmo_it_q *q, struct llist_head *item) { - struct rest_it_op *op = item; + struct rest_it_op *op = container_of(item, struct rest_it_op, list); struct cbc_message *cbc_msg; LOGP(DREST, LOGL_DEBUG, "%s(op=%p) from %lu\n", __func__, op, pthread_self()); -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/21994 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: I6a42000057f2efb4554b508debe4312e8f19a745 Gerrit-Change-Number: 21994 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 12:13:54 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 6 Jan 2021 12:13:54 +0000 Subject: Change in osmo-msc[master]: README update. Explain more what it is than just the history References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-msc/+/21997 ) Change subject: README update. Explain more what it is than just the history ...................................................................... README update. Explain more what it is than just the history Change-Id: I7368a8a0927fa301dfbbe550b8090e783ab7be2e --- M README 1 file changed, 19 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/97/21997/1 diff --git a/README b/README index a45ef95..0f1b3cf 100644 --- a/README +++ b/README @@ -1,15 +1,26 @@ About OsmoMSC ============= -OsmoMSC originated from the OpenBSC project, which started as a minimalistic -all-in-one implementation of the GSM Network. In 2017, OpenBSC had reached -maturity and diversity (including M3UA SIGTRAN and 3G support in the form of -IuCS and IuPS interfaces) that naturally lead to a separation of the all-in-one -approach to fully independent separate programs as in typical GSM networks. +OsmoMSC is an implementation of the 3GPP MSC (Mobile Switching Centre) +network element. It implements the following core functionality within +the 2G (GSM) and 3G (UMTS) networks: -OsmoMSC was one of the parts split off from the old openbsc.git. Before, it was -the libmsc part of the old OsmoNITB. Since a true A interface and IuCS for 3G -support is available, OsmoMSC exists only as a separate standalone entity. +* mobility management +* call control (either via built-in MNCC handler or external osmo-sip-connector) +* USSD (exposed via GSUP) +* SMS (either via built-in SMSC or external via GSUP) + +Historically, OsmoMSC originated from the OpenBSC project, which started +as a minimalistic all-in-one implementation of the GSM Network. In 2017, +OpenBSC had reached maturity and diversity (including M3UA SIGTRAN and +3G support in the form of IuCS and IuPS interfaces) that naturally lead +to a separation of the all-in-one approach to fully independent separate +programs as in typical GSM networks. + +OsmoMSC was one of the parts split off from the old openbsc.git. Before, +it was the libmsc part of the old OsmoNITB. Since a true A interface and +IuCS for 3G support is available, OsmoMSC exists only as a separate +standalone entity. OsmoMSC exposes - GSUP towards OsmoHLR (or a MAP proxy); -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/21997 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: I7368a8a0927fa301dfbbe550b8090e783ab7be2e Gerrit-Change-Number: 21997 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 12:24:31 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 6 Jan 2021 12:24:31 +0000 Subject: Change in osmo-bts[master]: major README uppdate References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/21998 ) Change subject: major README uppdate ...................................................................... major README uppdate * use https for hyperlinks * update known limitations * VTY manuals are now per backend Change-Id: Ib897e0248299b9a105140090528b790f53c16e40 --- M README.md 1 file changed, 17 insertions(+), 11 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/98/21998/1 diff --git a/README.md b/README.md index 965744f..5527ef1 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,7 @@ * sysmocom sysmoBTS * Octasic octphy * Nutaq litecell 1.5 + * OpenCellular 2G (OC-2G) * software-defined radio based osmo-bts-trx (e.g. USRP B210, UmTRX, LimeSDR) Homepage @@ -35,17 +36,25 @@ git clone git://git.osmocom.org/osmo-bts.git -There is a cgit interface at http://git.osmocom.org/osmo-bts/ +There is a cgit interface at https://git.osmocom.org/osmo-bts/ Documentation ------------- -We provide a -[User Manual](http://ftp.osmocom.org/docs/latest/osmobts-usermanual.pdf) -as well as a -[VTY Reference Manual](http://ftp.osmocom.org/docs/latest/osmobsc-vty-reference.pdf) -and a -[Abis reference MAnual](http://ftp.osmocom.org/docs/latest/osmobts-abis.pdf) +User Manuals and VTY reference manuals are [optionally] built in PDF form +as part of the build process. + +Pre-rendered PDF version of the current "master" can be found at +[User Manual](https://ftp.osmocom.org/docs/latest/osmobts-usermanual.pdf) +as well as the VTY reference manuals +* [VTY Reference Manual for osmo-bts-sysmo](https://ftp.osmocom.org/docs/latest/osmobts-sysmo-vty-reference.pdf) +* [VTY Reference Manual for osmo-bts-trx](https://ftp.osmocom.org/docs/latest/osmobts-trx-vty-reference.pdf) +* [VTY Reference Manual for osmo-bts-lc15](https://ftp.osmocom.org/docs/latest/osmobts-lc15-vty-reference.pdf) +* [VTY Reference Manual for osmo-bts-oc2g](https://ftp.osmocom.org/docs/latest/osmobts-oc2g-vty-reference.pdf) +* [VTY Reference Manual for osmo-bts-octphy](https://ftp.osmocom.org/docs/latest/osmobts-octphy-vty-reference.pdf) + +There also is an +[Abis reference Manual](https://ftp.osmocom.org/docs/latest/osmobts-abis.pdf) describing the OsmoBTS specific A-bis dialect. Mailing List @@ -77,7 +86,7 @@ Known Limitations ================= -As of March 17, 2017, the following known limitations exist in this +As of January 2021, the following known limitations exist in this implementation: Common Core @@ -87,10 +96,7 @@ * System Information limited to 1,2,2bis,2ter,2quater,3,4,5,6,9,13 * No RATSCCH in AMR * Will reject TS 12.21 STARTING TIME in SET BTS ATTR / SET CHAN ATTR - * No support for frequency hopping * No reporting of interference levels as part of TS 08.58 RF RES IND - * No error reporting in case PAGING COMMAND fails due to queue overflow - * No use of TS 08.58 BS Power and MS Power parameters * No support of TS 08.58 MultiRate Control * No support of TS 08.58 Supported Codec Types * No support of Bter frame / ENHANCED MEASUREMENT REPORT -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21998 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib897e0248299b9a105140090528b790f53c16e40 Gerrit-Change-Number: 21998 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 12:28:00 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 6 Jan 2021 12:28:00 +0000 Subject: Change in osmo-trx[master]: README update References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-trx/+/21999 ) Change subject: README update ...................................................................... README update * use https for hyperlinks * explicitly mention the primary use case with OsmoBTS * fix spelling in title Change-Id: I4f20ad8666dcc6bbc23d78b40b7c73ddd7e6eacc --- M README.md 1 file changed, 8 insertions(+), 10 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/99/21999/1 diff --git a/README.md b/README.md index dc026e0..a54d2e7 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ -About OsmTRX -============ +About OsmoTRX +============= OsmoTRX is a software-defined radio transceiver that implements the Layer 1 physical layer of a BTS comprising the following 3GPP specifications: @@ -9,14 +9,12 @@ * TS 05.04 "Modulation" * TS 05.10 "Radio subsystem synchronization" -OsmoTRX is based on the transceiver code from the +OsmoTRX is originally based on the transceiver code from the [OpenBTS](https://osmocom.org/projects/osmobts/wiki/OpenBTS) project, but setup to operate independently with the purpose of using with non-OpenBTS software and -projects, while still maintaining backwards compatibility with OpenBTS when -possible. Currently there are numerous features contained in OsmoTRX that extend -the functionality of the OpenBTS transceiver. These features include enhanced -support for various embedded platforms - notably ARM - and dual channel -diversity support for the Fairwaves umtrx. +projects, specifically within the Osmocom stack. Used together with +[OsmoBTS](https://osmocom.org/projects/osmobts/wiki) you can get a pretty +standard GSM BTS with Abis interface as per the relevant 3GPP specifications. Homepage -------- @@ -31,7 +29,7 @@ git clone git://git.osmocom.org/osmo-trx.git -There is a cgit interface at +There is a cgit interface at Documentation ------------- @@ -39,7 +37,7 @@ Doxygen-generated API documentation is generated during the build process, but also available online for each of the sub-libraries at User Manual for OsmoTRX can be generated during the build process, and is also available online at -. +. Mailing List ------------ -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/21999 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I4f20ad8666dcc6bbc23d78b40b7c73ddd7e6eacc Gerrit-Change-Number: 21999 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 12:28:37 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 6 Jan 2021 12:28:37 +0000 Subject: Change in osmo-cbc[master]: smscb_peer_fsm: Accept DELETE event in [almost] all states In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/21925 ) Change subject: smscb_peer_fsm: Accept DELETE event in [almost] all states ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/21925 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: I39b5a243862f4477ac7b625bb77c5e24b2d54dd2 Gerrit-Change-Number: 21925 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 06 Jan 2021 12:28:37 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 12:28:41 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 6 Jan 2021 12:28:41 +0000 Subject: Change in osmo-cbc[master]: message / peer FSM: fix completion detection + timeout logic In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/21926 ) Change subject: message / peer FSM: fix completion detection + timeout logic ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/21926 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: Ibff5e25ebb34843c4b3165329f432892ac6a6ef5 Gerrit-Change-Number: 21926 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 06 Jan 2021 12:28:41 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 12:28:45 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 6 Jan 2021 12:28:45 +0000 Subject: Change in osmo-cbc[master]: don't immediately delete all state about deleted messages In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/21995 ) Change subject: don't immediately delete all state about deleted messages ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/21995 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: I59f733dcbd5f9ea2617ceccf652c35fdd23a444b Gerrit-Change-Number: 21995 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 06 Jan 2021 12:28:45 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 12:28:47 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 6 Jan 2021 12:28:47 +0000 Subject: Change in osmo-cbc[master]: smscb_peer_fsm: Accept DELETE event in [almost] all states In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/21925 ) Change subject: smscb_peer_fsm: Accept DELETE event in [almost] all states ...................................................................... smscb_peer_fsm: Accept DELETE event in [almost] all states This is required as a DELETE may happen at any point in time, even e.g. in WAIT_WRITE_ACK. Change-Id: I39b5a243862f4477ac7b625bb77c5e24b2d54dd2 --- M src/smscb_peer_fsm.c 1 file changed, 39 insertions(+), 15 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/smscb_peer_fsm.c b/src/smscb_peer_fsm.c index 89aad61..69b4418 100644 --- a/src/smscb_peer_fsm.c +++ b/src/smscb_peer_fsm.c @@ -345,16 +345,6 @@ cbsp_cbc_client_tx(mp->peer->client.cbsp, cbsp); osmo_fsm_inst_state_chg(fi, SMSCB_S_WAIT_STATUS_ACK, 10, T_WAIT_STATUS_ACK); break; - case SMSCB_E_DELETE: /* send KILL to BSC */ - cbsp = osmo_cbsp_decoded_alloc(mp->peer, CBSP_MSGT_KILL); - OSMO_ASSERT(cbsp); - cbsp->u.kill.msg_id = mp->cbcmsg->msg.message_id; - cbsp->u.kill.old_serial_nr = mp->cbcmsg->msg.serial_nr; - /* TODO: we assume that the delete will always affect all original cells */ - cbsp_append_cell_list(&cbsp->u.kill.cell_list, cbsp, mp); - cbsp_cbc_client_tx(mp->peer->client.cbsp, cbsp); - osmo_fsm_inst_state_chg(fi, SMSCB_S_WAIT_DELETE_ACK, 10, T_WAIT_DELETE_ACK); - break; default: OSMO_ASSERT(0); } @@ -460,6 +450,36 @@ return 0; } +static void smscb_p_fsm_allstate(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct cbc_message_peer *mp = (struct cbc_message_peer *) fi->priv; + struct osmo_cbsp_decoded *cbsp; + + switch (event) { + case SMSCB_E_DELETE: /* send KILL to BSC */ + switch (fi->state) { + case SMSCB_S_DELETED: + case SMSCB_S_INIT: + LOGPFSML(fi, LOGL_ERROR, "Event %s not permitted\n", + osmo_fsm_event_name(fi->fsm, event)); + return; + default: + break; + } + cbsp = osmo_cbsp_decoded_alloc(mp->peer, CBSP_MSGT_KILL); + OSMO_ASSERT(cbsp); + cbsp->u.kill.msg_id = mp->cbcmsg->msg.message_id; + cbsp->u.kill.old_serial_nr = mp->cbcmsg->msg.serial_nr; + /* TODO: we assume that the delete will always affect all original cells */ + cbsp_append_cell_list(&cbsp->u.kill.cell_list, cbsp, mp); + cbsp_cbc_client_tx(mp->peer->client.cbsp, cbsp); + osmo_fsm_inst_state_chg(fi, SMSCB_S_WAIT_DELETE_ACK, 10, T_WAIT_DELETE_ACK); + break; + default: + OSMO_ASSERT(0); + } +} + static void smscb_p_fsm_cleanup(struct osmo_fsm_inst *fi, enum osmo_fsm_term_cause cause) { struct cbc_message_peer *mp = (struct cbc_message_peer *) fi->priv; @@ -478,14 +498,14 @@ .name = "WAIT_WRITE_ACK", .in_event_mask = S(SMSCB_E_CBSP_WRITE_ACK) | S(SMSCB_E_CBSP_WRITE_NACK), - .out_state_mask = S(SMSCB_S_ACTIVE), + .out_state_mask = S(SMSCB_S_ACTIVE) | + S(SMSCB_S_WAIT_DELETE_ACK), .action = smscb_p_fsm_wait_write_ack, }, [SMSCB_S_ACTIVE] = { .name = "ACTIVE", .in_event_mask = S(SMSCB_E_REPLACE) | - S(SMSCB_E_STATUS) | - S(SMSCB_E_DELETE), + S(SMSCB_E_STATUS), .out_state_mask = S(SMSCB_S_WAIT_REPLACE_ACK) | S(SMSCB_S_WAIT_STATUS_ACK) | S(SMSCB_S_WAIT_DELETE_ACK), @@ -495,14 +515,16 @@ .name = "WAIT_STATUS_ACK", .in_event_mask = S(SMSCB_E_CBSP_STATUS_ACK) | S(SMSCB_E_CBSP_STATUS_NACK), - .out_state_mask = S(SMSCB_S_ACTIVE), + .out_state_mask = S(SMSCB_S_ACTIVE) | + S(SMSCB_S_WAIT_DELETE_ACK), .action = smscb_p_fsm_wait_status_ack, }, [SMSCB_S_WAIT_REPLACE_ACK] = { .name = "WAIT_REPLACE_ACK", .in_event_mask = S(SMSCB_E_CBSP_REPLACE_ACK) | S(SMSCB_E_CBSP_REPLACE_NACK), - .out_state_mask = S(SMSCB_S_ACTIVE), + .out_state_mask = S(SMSCB_S_ACTIVE) | + S(SMSCB_S_WAIT_DELETE_ACK), .action = smscb_p_fsm_wait_replace_ack, }, [SMSCB_S_WAIT_DELETE_ACK] = { @@ -521,6 +543,8 @@ .name = "SMSCB-PEER", .states = smscb_p_fsm_states, .num_states = ARRAY_SIZE(smscb_p_fsm_states), + .allstate_event_mask = S(SMSCB_E_DELETE), + .allstate_action = smscb_p_fsm_allstate, .timer_cb = smscb_p_fsm_timer_cb, .log_subsys = DCBSP, .event_names = smscb_fsm_event_names, -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/21925 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: I39b5a243862f4477ac7b625bb77c5e24b2d54dd2 Gerrit-Change-Number: 21925 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 12:28:47 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 6 Jan 2021 12:28:47 +0000 Subject: Change in osmo-cbc[master]: message / peer FSM: fix completion detection + timeout logic In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/21926 ) Change subject: message / peer FSM: fix completion detection + timeout logic ...................................................................... message / peer FSM: fix completion detection + timeout logic * when the message_peer FSM times out, we msut notify the message_fsm * when waiting for DELETE_ACK, require all message_peer FSM instances to enter DELETE state before signaling completion Change-Id: Ibff5e25ebb34843c4b3165329f432892ac6a6ef5 --- M src/smscb_message_fsm.c M src/smscb_peer_fsm.c 2 files changed, 9 insertions(+), 5 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/smscb_message_fsm.c b/src/smscb_message_fsm.c index 48191d1..65a749b 100644 --- a/src/smscb_message_fsm.c +++ b/src/smscb_message_fsm.c @@ -66,7 +66,7 @@ * timed out */ llist_for_each_entry(peer_fi, &fi->proc.children, proc.child) { if (peer_fi->state == SMSCB_S_WAIT_WRITE_ACK) - break; + return; } rest_it_op_set_http_result(cbcmsg->it_op, 201, "Created"); // FIXME: error cases osmo_fsm_inst_state_chg(fi, SMSCB_S_ACTIVE, 0, 0); @@ -125,7 +125,7 @@ case SMSCB_E_CBSP_REPLACE_NACK: llist_for_each_entry(peer_fi, &fi->proc.children, proc.child) { if (peer_fi->state == SMSCB_S_WAIT_REPLACE_ACK) - break; + return; } rest_it_op_set_http_result(cbcmsg->it_op, 200, "OK"); // FIXME: error cases osmo_fsm_inst_state_chg(fi, SMSCB_S_ACTIVE, 0, 0); @@ -153,7 +153,7 @@ case SMSCB_E_CBSP_STATUS_NACK: llist_for_each_entry(peer_fi, &fi->proc.children, proc.child) { if (peer_fi->state == SMSCB_S_WAIT_STATUS_ACK) - break; + return; } rest_it_op_set_http_result(cbcmsg->it_op, 200, "OK"); // FIXME: error cases osmo_fsm_inst_state_chg(fi, SMSCB_S_ACTIVE, 0, 0); @@ -180,8 +180,8 @@ case SMSCB_E_CBSP_DELETE_ACK: case SMSCB_E_CBSP_DELETE_NACK: llist_for_each_entry(peer_fi, &fi->proc.children, proc.child) { - if (peer_fi->state == SMSCB_S_WAIT_DELETE_ACK) - break; + if (peer_fi->state != SMSCB_S_DELETED) + return; } rest_it_op_set_http_result(cbcmsg->it_op, 200, "OK"); // FIXME: error cases osmo_fsm_inst_state_chg(fi, SMSCB_S_DELETED, 0, 0); diff --git a/src/smscb_peer_fsm.c b/src/smscb_peer_fsm.c index 69b4418..341c205 100644 --- a/src/smscb_peer_fsm.c +++ b/src/smscb_peer_fsm.c @@ -434,15 +434,19 @@ switch (fi->T) { case T_WAIT_WRITE_ACK: osmo_fsm_inst_state_chg(fi, SMSCB_S_ACTIVE, 0, 0); + osmo_fsm_inst_dispatch(fi->proc.parent, SMSCB_E_CBSP_WRITE_NACK, NULL); break; case T_WAIT_REPLACE_ACK: osmo_fsm_inst_state_chg(fi, SMSCB_S_ACTIVE, 0, 0); + osmo_fsm_inst_dispatch(fi->proc.parent, SMSCB_E_CBSP_REPLACE_NACK, NULL); break; case T_WAIT_STATUS_ACK: osmo_fsm_inst_state_chg(fi, SMSCB_S_ACTIVE, 0, 0); + osmo_fsm_inst_dispatch(fi->proc.parent, SMSCB_E_CBSP_STATUS_NACK, NULL); break; case T_WAIT_DELETE_ACK: osmo_fsm_inst_state_chg(fi, SMSCB_S_DELETED, 0, 0); + osmo_fsm_inst_dispatch(fi->proc.parent, SMSCB_E_CBSP_DELETE_NACK, NULL); break; default: OSMO_ASSERT(0); -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/21926 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: Ibff5e25ebb34843c4b3165329f432892ac6a6ef5 Gerrit-Change-Number: 21926 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 12:28:48 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 6 Jan 2021 12:28:48 +0000 Subject: Change in osmo-cbc[master]: don't immediately delete all state about deleted messages In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/21995 ) Change subject: don't immediately delete all state about deleted messages ...................................................................... don't immediately delete all state about deleted messages keep them around so we can still check statistics later on Change-Id: I59f733dcbd5f9ea2617ceccf652c35fdd23a444b --- M src/cbc_data.h M src/cbc_main.c M src/cbc_vty.c M src/smscb_message_fsm.c 4 files changed, 19 insertions(+), 3 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/cbc_data.h b/src/cbc_data.h index 9ad7c70..7900fbc 100644 --- a/src/cbc_data.h +++ b/src/cbc_data.h @@ -154,6 +154,7 @@ struct { time_t created; /* when was this message created? */ + time_t expired; /* when has this message expired? */ } time; }; @@ -167,6 +168,7 @@ } config; struct llist_head messages; /* cbc_message.list */ + struct llist_head expired_messages; /* cbc_message.list */ struct llist_head peers; /* cbc_peer.list */ struct { struct osmo_it_q *rest2main; diff --git a/src/cbc_main.c b/src/cbc_main.c index f664afb..77020db 100644 --- a/src/cbc_main.c +++ b/src/cbc_main.c @@ -179,6 +179,7 @@ g_cbc = talloc_zero(tall_cbc_ctx, struct cbc); INIT_LLIST_HEAD(&g_cbc->peers); INIT_LLIST_HEAD(&g_cbc->messages); + INIT_LLIST_HEAD(&g_cbc->expired_messages); cbc_vty_init(); diff --git a/src/cbc_vty.c b/src/cbc_vty.c index 8e2e022..323497c 100644 --- a/src/cbc_vty.c +++ b/src/cbc_vty.c @@ -101,6 +101,12 @@ dump_one_cbc_msg(vty, cbc_msg); } + llist_for_each_entry(cbc_msg, &g_cbc->expired_messages, list) { + if (cbc_msg->msg.is_etws) + continue; + dump_one_cbc_msg(vty, cbc_msg); + } + return CMD_SUCCESS; } @@ -238,14 +244,18 @@ vty_out(vty, "|-----|-----|--------------------|-------------|------|-|------------|%s", VTY_NEWLINE); - - llist_for_each_entry(cbc_msg, &g_cbc->messages, list) { if (!cbc_msg->msg.is_etws) continue; dump_one_etws_msg(vty, cbc_msg); } + llist_for_each_entry(cbc_msg, &g_cbc->expired_messages, list) { + if (!cbc_msg->msg.is_etws) + continue; + dump_one_etws_msg(vty, cbc_msg); + } + return CMD_SUCCESS; } diff --git a/src/smscb_message_fsm.c b/src/smscb_message_fsm.c index 65a749b..0dd1f13 100644 --- a/src/smscb_message_fsm.c +++ b/src/smscb_message_fsm.c @@ -209,7 +209,10 @@ rest_it_op_complete(cbcmsg->it_op); cbcmsg->it_op = NULL; } - osmo_fsm_inst_term(fi, OSMO_FSM_TERM_REGULAR, NULL); + /* move from active to expired messages */ + llist_del(&cbcmsg->list); + llist_add_tail(&cbcmsg->list, &g_cbc->expired_messages); + cbcmsg->time.expired = time(NULL); } static struct osmo_fsm_state smscb_fsm_states[] = { -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/21995 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: I59f733dcbd5f9ea2617ceccf652c35fdd23a444b Gerrit-Change-Number: 21995 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 12:29:23 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 6 Jan 2021 12:29:23 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: vty: clarify and improve some deprecation messages In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21990 ) Change subject: osmo-bts-trx: vty: clarify and improve some deprecation messages ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21990 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I22b69eccfa50d178bd36bf770f7158ec441c9923 Gerrit-Change-Number: 21990 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 06 Jan 2021 12:29:23 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 12:29:46 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 6 Jan 2021 12:29:46 +0000 Subject: Change in osmo-bts[master]: power_control: vty: re-use cfg_bts_ul_power_target() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21991 ) Change subject: power_control: vty: re-use cfg_bts_ul_power_target() ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21991 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I37f51d426fcf008c9d9e933827de70ab7b072a94 Gerrit-Change-Number: 21991 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 06 Jan 2021 12:29:46 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 12:30:15 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 6 Jan 2021 12:30:15 +0000 Subject: Change in osmo-bts[master]: power_control: vty: deprecate 'uplink-power-control' commands In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21992 ) Change subject: power_control: vty: deprecate 'uplink-power-control' commands ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21992 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Icbd9a7d31ce6723294130a31a179a002fccb4612 Gerrit-Change-Number: 21992 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 06 Jan 2021 12:30:15 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 12:30:39 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 6 Jan 2021 12:30:39 +0000 Subject: Change in osmo-bts[master]: power_control: handle MS/BS Power control params on A-bis/RSL In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21906 ) Change subject: power_control: handle MS/BS Power control params on A-bis/RSL ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21906 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I5a901eca5a78a0335a6954064e602e65cda85390 Gerrit-Change-Number: 21906 Gerrit-PatchSet: 4 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 06 Jan 2021 12:30:39 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 12:31:31 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 6 Jan 2021 12:31:31 +0000 Subject: Change in osmo-bts[master]: power_control: generalize the arguments of do_pf_ewma() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21907 ) Change subject: power_control: generalize the arguments of do_pf_ewma() ...................................................................... Patch Set 5: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21907 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I439c00b394da670e314f217b3246cc85ce8213c6 Gerrit-Change-Number: 21907 Gerrit-PatchSet: 5 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 06 Jan 2021 12:31:31 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 12:31:48 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 6 Jan 2021 12:31:48 +0000 Subject: Change in osmo-bts[master]: power_control: migrate MS/BS control loops to the new params In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21993 ) Change subject: power_control: migrate MS/BS control loops to the new params ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21993 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib18f84c40227841d95a36063a6789bf63054fc2e Gerrit-Change-Number: 21993 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 06 Jan 2021 12:31:48 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 12:32:32 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 6 Jan 2021 12:32:32 +0000 Subject: Change in libosmocore[master]: ctrl: Allow handling CTRL get/set replies in user defined code In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21964 ) Change subject: ctrl: Allow handling CTRL get/set replies in user defined code ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21964 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Id3c4631cd32c13e78e11b6e8194b8c16307ec4f1 Gerrit-Change-Number: 21964 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 06 Jan 2021 12:32:32 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 12:32:36 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 6 Jan 2021 12:32:36 +0000 Subject: Change in libosmocore[master]: ctrl: Allow handling CTRL get/set replies in user defined code In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21964 ) Change subject: ctrl: Allow handling CTRL get/set replies in user defined code ...................................................................... ctrl: Allow handling CTRL get/set replies in user defined code Prior to this patch, it was not possible to gather SET/GET reply information when implementing a CTRL client using libosmocontrol. This is specially important when using the GET command, since one wants to receive the queried value. CTRL traps can also be handled this way by extending this patch in the future if needed. Change-Id: Id3c4631cd32c13e78e11b6e8194b8c16307ec4f1 --- M TODO-RELEASE M include/osmocom/ctrl/control_if.h M src/ctrl/control_if.c 3 files changed, 12 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/TODO-RELEASE b/TODO-RELEASE index e8fb32b..501f25b 100644 --- a/TODO-RELEASE +++ b/TODO-RELEASE @@ -12,3 +12,4 @@ libosmogsm API change struct ipac_preproc_ave_cfg: new zero-sized flexible array member at end libosmovty ABI change struct cmd_element: add a field for program specific attributes libosmovty ABI change struct vty_app_info: optional program specific attributes description +libosmoctrl ABI change struct ctrl_handle changed size (new field "reply_cb" at the end) diff --git a/include/osmocom/ctrl/control_if.h b/include/osmocom/ctrl/control_if.h index 5fa9588..b73296f 100644 --- a/include/osmocom/ctrl/control_if.h +++ b/include/osmocom/ctrl/control_if.h @@ -9,6 +9,7 @@ typedef int (*ctrl_cmd_lookup)(void *data, vector vline, int *node_type, void **node_data, int *i); +typedef void (*ctrl_cmd_reply_cb)(struct ctrl_handle *ctrl, struct ctrl_cmd *cmd, void *data); struct ctrl_handle { struct osmo_fd listen_fd; @@ -18,6 +19,12 @@ /* List of control connections */ struct llist_head ccon_list; + + /* User defined GET/SET REPLY handler. User can set cmd->defer to 1 in + order to own and keep the cmd pointer and free it after the function + returns. "data" param is the user data pointer supplied during + ctrl_handle allocation */ + ctrl_cmd_reply_cb reply_cb; }; diff --git a/src/ctrl/control_if.c b/src/ctrl/control_if.c index ce2e367..9e3e3a9 100644 --- a/src/ctrl/control_if.c +++ b/src/ctrl/control_if.c @@ -221,6 +221,10 @@ if (cmd->type == CTRL_TYPE_SET_REPLY || cmd->type == CTRL_TYPE_GET_REPLY) { + if (ctrl->reply_cb) { + ctrl->reply_cb(ctrl, cmd, data); + return CTRL_CMD_HANDLED; + } if (strncmp(cmd->reply, "OK", 2) == 0) { LOGP(DLCTRL, LOGL_DEBUG, "%s <%s> for %s is OK\n", get_value_string(ctrl_type_vals, cmd->type), -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21964 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Id3c4631cd32c13e78e11b6e8194b8c16307ec4f1 Gerrit-Change-Number: 21964 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 12:32:54 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 6 Jan 2021 12:32:54 +0000 Subject: Change in osmo-sgsn[master]: Fix gbproxy_sgsn_by_tlli wraparound In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21959 ) Change subject: Fix gbproxy_sgsn_by_tlli wraparound ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21959 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I74ecb655f4d433f7ac14d00d934d237325aab606 Gerrit-Change-Number: 21959 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 06 Jan 2021 12:32:54 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 12:32:59 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 6 Jan 2021 12:32:59 +0000 Subject: Change in osmo-sgsn[master]: Fix gbproxy_sgsn_by_tlli wraparound In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21959 ) Change subject: Fix gbproxy_sgsn_by_tlli wraparound ...................................................................... Fix gbproxy_sgsn_by_tlli wraparound Change-Id: I74ecb655f4d433f7ac14d00d934d237325aab606 Related: SYS#4865, OS#4472 --- M src/gbproxy/gb_proxy_peer.c 1 file changed, 2 insertions(+), 1 deletion(-) Approvals: pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/gbproxy/gb_proxy_peer.c b/src/gbproxy/gb_proxy_peer.c index 544eb5f..d2ddfc1 100644 --- a/src/gbproxy/gb_proxy_peer.c +++ b/src/gbproxy/gb_proxy_peer.c @@ -534,8 +534,9 @@ i++; } // Start again from the beginning + i = 0; llist_for_each_entry(sgsn, &cfg->sgsns, list) { - if (i > index) { + if (i >= index) { break; } else if (sgsn->pool.allow_attach) { return sgsn; -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21959 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I74ecb655f4d433f7ac14d00d934d237325aab606 Gerrit-Change-Number: 21959 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 12:34:05 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 6 Jan 2021 12:34:05 +0000 Subject: Change in osmo-pcu[master]: gprs_rlcmac_sched: fix incorrect SBA frame number assignment In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21950 ) Change subject: gprs_rlcmac_sched: fix incorrect SBA frame number assignment ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21950 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ifd607ae8a33382e48f9d9e50a28a4bdf4eaf73a2 Gerrit-Change-Number: 21950 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 06 Jan 2021 12:34:05 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 12:34:08 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 6 Jan 2021 12:34:08 +0000 Subject: Change in osmo-pcu[master]: gprs_rlcmac_sched: fix incorrect SBA frame number assignment In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21950 ) Change subject: gprs_rlcmac_sched: fix incorrect SBA frame number assignment ...................................................................... gprs_rlcmac_sched: fix incorrect SBA frame number assignment There is a big difference between: if ((a = foo() != 0xffffffff)) { ... } and if ((a = foo()) != 0xffffffff) { ... } In the first case, 'a' is the result of '!=' operation, i.e. either 0 (false) or 1 (true). In the second case, 'a' will hold the value returned by foo(), and this is exactly what must have been used in gprs_rlcmac_rcv_rts_block(). The bug was there since SBA allocation feature was added in 2012. Change-Id: Ifd607ae8a33382e48f9d9e50a28a4bdf4eaf73a2 Fixes: 07e97cf8a551b05d7f5f3f9583b68b2eff0f1c23 Related: CID#215835 --- M src/gprs_rlcmac_sched.cpp 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/gprs_rlcmac_sched.cpp b/src/gprs_rlcmac_sched.cpp index caf121f..d7958c4 100644 --- a/src/gprs_rlcmac_sched.cpp +++ b/src/gprs_rlcmac_sched.cpp @@ -448,7 +448,7 @@ block_nr, poll_fn, tbf_name(tbf_cand.poll)); usf = USF_UNUSED; /* else. check for sba */ - } else if ((sba_fn = bts->bts->sba()->sched(trx, ts, fn, block_nr) != 0xffffffff)) { + } else if ((sba_fn = bts->bts->sba()->sched(trx, ts, fn, block_nr)) != 0xffffffff) { LOGP(DRLCMACSCHED, LOGL_DEBUG, "Received RTS for PDCH: TRX=%d " "TS=%d FN=%d block_nr=%d scheduling free USF for " "single block allocation at FN=%d\n", trx, ts, fn, -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21950 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ifd607ae8a33382e48f9d9e50a28a4bdf4eaf73a2 Gerrit-Change-Number: 21950 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 12:34:57 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 6 Jan 2021 12:34:57 +0000 Subject: Change in osmo-bsc[master]: handover_test: gitignore In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21965 ) Change subject: handover_test: gitignore ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21965 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I5dda03f21b568e07cf26501ba2e0683108d408b6 Gerrit-Change-Number: 21965 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 06 Jan 2021 12:34:57 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 12:35:15 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 6 Jan 2021 12:35:15 +0000 Subject: Change in osmo-bsc[master]: tweak handover_tests.sh In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21966 ) Change subject: tweak handover_tests.sh ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21966 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I3e9e123b41be71d1fcd9576b0bd38d2fd32353b4 Gerrit-Change-Number: 21966 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 06 Jan 2021 12:35:15 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 12:35:29 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 6 Jan 2021 12:35:29 +0000 Subject: Change in osmo-bsc[master]: handover_test: cosmetic cfg simplifications in 5 tests In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21967 ) Change subject: handover_test: cosmetic cfg simplifications in 5 tests ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21967 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Iecc77bfde12ed7d788dd2bad626971efb0327fe7 Gerrit-Change-Number: 21967 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 06 Jan 2021 12:35:29 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 12:35:43 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 6 Jan 2021 12:35:43 +0000 Subject: Change in osmo-bsc[master]: handover_test: fix test_congestion.ho_vty meas-rep In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21968 ) Change subject: handover_test: fix test_congestion.ho_vty meas-rep ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21968 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ie823c0f371d180b961af38fbea8b01cb3922d038 Gerrit-Change-Number: 21968 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 06 Jan 2021 12:35:43 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 12:35:45 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 6 Jan 2021 12:35:45 +0000 Subject: Change in osmo-bsc[master]: handover_test: gitignore In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21965 ) Change subject: handover_test: gitignore ...................................................................... handover_test: gitignore We decided not to keep the handover_test script expected outputs (osmo-bsc's logging output) in the source tree. For manual comparison, they are still produced by 'handover_tests.sh -u', ignore them. Change-Id: I5dda03f21b568e07cf26501ba2e0683108d408b6 --- M .gitignore 1 file changed, 3 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/.gitignore b/.gitignore index c7b14bf..6a8d2c1 100644 --- a/.gitignore +++ b/.gitignore @@ -71,6 +71,9 @@ tests/testsuite tests/testsuite.log +tests/handover/test*.ok +tests/handover/test*.err + writtenconfig/ # manuals -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21965 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I5dda03f21b568e07cf26501ba2e0683108d408b6 Gerrit-Change-Number: 21965 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 12:35:46 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 6 Jan 2021 12:35:46 +0000 Subject: Change in osmo-bsc[master]: tweak handover_tests.sh In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21966 ) Change subject: tweak handover_tests.sh ...................................................................... tweak handover_tests.sh We decided not to keep the handover_test script expected outputs (osmo-bsc's logging output) in the source tree. Hence do not fail the handover_tests when the output differs, just show a diff (if at all). Change-Id: I3e9e123b41be71d1fcd9576b0bd38d2fd32353b4 --- M tests/handover/handover_tests.sh 1 file changed, 11 insertions(+), 18 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/tests/handover/handover_tests.sh b/tests/handover/handover_tests.sh index 68a8e2d..240b789 100755 --- a/tests/handover/handover_tests.sh +++ b/tests/handover/handover_tests.sh @@ -19,24 +19,17 @@ set +e "$build_dir"/handover_test "$test_path" > "$got_out" 2> "$got_err" rc=$? - if [ "x$rc" = "x0" ]; then - expect_out="$test_path.ok" - expect_err="$test_path.err" - if [ "x$update" = "x-u" ]; then - cp "$got_out" "$expect_out" - cp "$got_err" "$expect_err" - else - if [ -f "$expect_out" ]; then - diff -u "$expect_out" "$got_out" - rc=$? - fi - if [ -f "$expect_err" ]; then - diff -u "$expect_err" "$got_err" - rc2=$? - fi - if [ "x$rc" = "x0" ]; then - rc=$rc2 - fi + expect_out="$test_path.ok" + expect_err="$test_path.err" + if [ "x$rc" = "x0" -a "x$update" = "x-u" ]; then + cp "$got_out" "$expect_out" + cp "$got_err" "$expect_err" + else + if [ -f "$expect_out" ]; then + diff -u "$expect_out" "$got_out" >&2 + fi + if [ -f "$expect_err" ]; then + diff -u "$expect_err" "$got_err" >&2 fi fi rm "$got_out" -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21966 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I3e9e123b41be71d1fcd9576b0bd38d2fd32353b4 Gerrit-Change-Number: 21966 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 12:35:47 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 6 Jan 2021 12:35:47 +0000 Subject: Change in osmo-bsc[master]: handover_test: cosmetic cfg simplifications in 5 tests In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21967 ) Change subject: handover_test: cosmetic cfg simplifications in 5 tests ...................................................................... handover_test: cosmetic cfg simplifications in 5 tests Change-Id: Iecc77bfde12ed7d788dd2bad626971efb0327fe7 --- M tests/handover/test_amr_tch_f_to_h_balance_congestion.ho_vty M tests/handover/test_balance_congestion.ho_vty M tests/handover/test_balance_congestion_2.ho_vty M tests/handover/test_congestion.ho_vty M tests/handover/test_no_congestion.ho_vty 5 files changed, 9 insertions(+), 34 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/tests/handover/test_amr_tch_f_to_h_balance_congestion.ho_vty b/tests/handover/test_amr_tch_f_to_h_balance_congestion.ho_vty index 79a3084..1b8969e 100644 --- a/tests/handover/test_amr_tch_f_to_h_balance_congestion.ho_vty +++ b/tests/handover/test_amr_tch_f_to_h_balance_congestion.ho_vty @@ -4,12 +4,8 @@ create-n-bts 2 network - bts 0 - handover2 min-free-slots tch/f 4 - handover2 min-free-slots tch/h 4 - bts 1 - handover2 min-free-slots tch/f 4 - handover2 min-free-slots tch/h 4 + handover2 min-free-slots tch/f 4 + handover2 min-free-slots tch/h 4 set-ts-use trx 0 0 states * TCH/F TCH/F - - TCH/H- - - meas-rep lchan 0 0 1 0 rxlev 30 rxqual 0 ta 0 neighbors 30 expect-no-chan diff --git a/tests/handover/test_balance_congestion.ho_vty b/tests/handover/test_balance_congestion.ho_vty index e8304a1..0988f3b 100644 --- a/tests/handover/test_balance_congestion.ho_vty +++ b/tests/handover/test_balance_congestion.ho_vty @@ -8,12 +8,8 @@ create-ms bts 0 TCH/F AMR expect-ts-use trx 0 0 states * TCH/F - - - - - - network - bts 0 - handover2 min-free-slots tch/f 4 - handover2 min-free-slots tch/h 4 - bts 1 - handover2 min-free-slots tch/f 4 - handover2 min-free-slots tch/h 4 + handover2 min-free-slots tch/f 4 + handover2 min-free-slots tch/h 4 meas-rep lchan 0 0 1 0 rxlev 20 rxqual 0 ta 0 neighbors 30 expect-no-chan set-ts-use trx 0 0 states * TCH/F TCH/F - - - - - diff --git a/tests/handover/test_balance_congestion_2.ho_vty b/tests/handover/test_balance_congestion_2.ho_vty index 2e7fa5a..9c8b7f9 100644 --- a/tests/handover/test_balance_congestion_2.ho_vty +++ b/tests/handover/test_balance_congestion_2.ho_vty @@ -4,10 +4,7 @@ create-n-bts 2 network - bts 0 - handover2 min-free-slots tch/f 4 - bts 1 - handover2 min-free-slots tch/f 4 + handover2 min-free-slots tch/f 4 codec tch/f FR set-ts-use trx 0 0 states * TCH/F TCH/F TCH/F - - - - set-ts-use trx 1 0 states * TCH/F - - - - - - diff --git a/tests/handover/test_congestion.ho_vty b/tests/handover/test_congestion.ho_vty index 4919d20..13599ee 100644 --- a/tests/handover/test_congestion.ho_vty +++ b/tests/handover/test_congestion.ho_vty @@ -5,15 +5,8 @@ create-n-bts 3 network - bts 0 - handover2 min-free-slots tch/f 2 - handover2 min-free-slots tch/h 2 - bts 1 - handover2 min-free-slots tch/f 2 - handover2 min-free-slots tch/h 2 - bts 2 - handover2 min-free-slots tch/f 2 - handover2 min-free-slots tch/h 2 + handover2 min-free-slots tch/f 2 + handover2 min-free-slots tch/h 2 set-ts-use trx 0 0 states * TCH/F TCH/F TCH/F - TCH/HH - - set-ts-use trx 1 0 states * TCH/F - - - TCH/H- - - meas-rep lchan 0 0 1 0 rxlev 30 rxqual 0 ta 0 neighbors 20 1 20 diff --git a/tests/handover/test_no_congestion.ho_vty b/tests/handover/test_no_congestion.ho_vty index 824d1d3..651d648 100644 --- a/tests/handover/test_no_congestion.ho_vty +++ b/tests/handover/test_no_congestion.ho_vty @@ -4,15 +4,8 @@ create-n-bts 3 network - bts 0 - handover2 min-free-slots tch/f 2 - handover2 min-free-slots tch/h 2 - bts 1 - handover2 min-free-slots tch/f 2 - handover2 min-free-slots tch/h 2 - bts 2 - handover2 min-free-slots tch/f 2 - handover2 min-free-slots tch/h 2 + handover2 min-free-slots tch/f 2 + handover2 min-free-slots tch/h 2 set-ts-use trx 0 0 states * TCH/F TCH/F - - TCH/HH - - set-ts-use trx 1 0 states * TCH/F - - - TCH/H- - - meas-rep lchan 0 0 1 0 rxlev 30 rxqual 0 ta 0 neighbors 20 1 20 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21967 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Iecc77bfde12ed7d788dd2bad626971efb0327fe7 Gerrit-Change-Number: 21967 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 12:35:48 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 6 Jan 2021 12:35:48 +0000 Subject: Change in osmo-bsc[master]: handover_test: fix test_congestion.ho_vty meas-rep In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21968 ) Change subject: handover_test: fix test_congestion.ho_vty meas-rep ...................................................................... handover_test: fix test_congestion.ho_vty meas-rep Three BTS means two neighbors -- the '1' is a leftover from legacy. Change-Id: Ie823c0f371d180b961af38fbea8b01cb3922d038 --- M tests/handover/test_congestion.ho_vty 1 file changed, 7 insertions(+), 7 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/tests/handover/test_congestion.ho_vty b/tests/handover/test_congestion.ho_vty index 13599ee..09815e3 100644 --- a/tests/handover/test_congestion.ho_vty +++ b/tests/handover/test_congestion.ho_vty @@ -9,19 +9,19 @@ handover2 min-free-slots tch/h 2 set-ts-use trx 0 0 states * TCH/F TCH/F TCH/F - TCH/HH - - set-ts-use trx 1 0 states * TCH/F - - - TCH/H- - - -meas-rep lchan 0 0 1 0 rxlev 30 rxqual 0 ta 0 neighbors 20 1 20 +meas-rep lchan 0 0 1 0 rxlev 30 rxqual 0 ta 0 neighbors 20 20 expect-no-chan -meas-rep lchan 0 0 2 0 rxlev 30 rxqual 0 ta 0 neighbors 20 1 20 +meas-rep lchan 0 0 2 0 rxlev 30 rxqual 0 ta 0 neighbors 20 20 expect-no-chan -meas-rep lchan 0 0 3 0 rxlev 30 rxqual 0 ta 0 neighbors 21 1 20 +meas-rep lchan 0 0 3 0 rxlev 30 rxqual 0 ta 0 neighbors 21 20 expect-no-chan -meas-rep lchan 0 0 5 0 rxlev 30 rxqual 0 ta 0 neighbors 20 1 20 +meas-rep lchan 0 0 5 0 rxlev 30 rxqual 0 ta 0 neighbors 20 20 expect-no-chan -meas-rep lchan 0 0 5 1 rxlev 30 rxqual 0 ta 0 neighbors 20 1 20 +meas-rep lchan 0 0 5 1 rxlev 30 rxqual 0 ta 0 neighbors 20 20 expect-no-chan -meas-rep lchan 1 0 1 0 rxlev 30 rxqual 0 ta 0 neighbors 20 1 20 +meas-rep lchan 1 0 1 0 rxlev 30 rxqual 0 ta 0 neighbors 20 20 expect-no-chan -meas-rep lchan 1 0 5 0 rxlev 30 rxqual 0 ta 0 neighbors 20 1 20 +meas-rep lchan 1 0 5 0 rxlev 30 rxqual 0 ta 0 neighbors 20 20 expect-no-chan expect-ts-use trx 0 0 states * TCH/F TCH/F TCH/F - TCH/HH - - expect-ts-use trx 1 0 states * TCH/F - - - TCH/H- - - -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21968 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ie823c0f371d180b961af38fbea8b01cb3922d038 Gerrit-Change-Number: 21968 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 12:36:06 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 6 Jan 2021 12:36:06 +0000 Subject: Change in osmo-bsc[master]: handover_test.c: properly release lchans in set-ts-use In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21969 ) Change subject: handover_test.c: properly release lchans in set-ts-use ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21969 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ia22906bfbfcc48b7bd08473a2b17f6b0554687d3 Gerrit-Change-Number: 21969 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 06 Jan 2021 12:36:06 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 12:36:17 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 6 Jan 2021 12:36:17 +0000 Subject: Change in osmo-bsc[master]: hodec2: cosmetic: add dBm unit to rxval logging In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21970 ) Change subject: hodec2: cosmetic: add dBm unit to rxval logging ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21970 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I58a5ae721b674576339360b1f03e91b015a1bf46 Gerrit-Change-Number: 21970 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 06 Jan 2021 12:36:17 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 12:36:54 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 6 Jan 2021 12:36:54 +0000 Subject: Change in osmo-bsc[master]: hodec2: code dup / cosmetics In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21971 ) Change subject: hodec2: code dup / cosmetics ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21971 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I7c32d08e490a88a7f044b0a71dc4b07d748dd572 Gerrit-Change-Number: 21971 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 06 Jan 2021 12:36:54 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 12:36:58 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 6 Jan 2021 12:36:58 +0000 Subject: Change in osmo-bsc[master]: handover_test.c: properly release lchans in set-ts-use In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21969 ) Change subject: handover_test.c: properly release lchans in set-ts-use ...................................................................... handover_test.c: properly release lchans in set-ts-use An upcoming test that uses set-ts-use to release used lchans uncovered an incomplete release, keeping the lchans occupied due to a missing release ack. Always ack the release. Change-Id: Ia22906bfbfcc48b7bd08473a2b17f6b0554687d3 --- M tests/handover/handover_test.c 1 file changed, 11 insertions(+), 10 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/tests/handover/handover_test.c b/tests/handover/handover_test.c index cbe0cf3..c0c5bb9 100644 --- a/tests/handover/handover_test.c +++ b/tests/handover/handover_test.c @@ -435,9 +435,20 @@ return lchan_act(lchan, full_rate, codec); } +static void lchan_release_ack(struct gsm_lchan *lchan) +{ + if (lchan->fi && lchan->fi->state == LCHAN_ST_WAIT_BEFORE_RF_RELEASE) { + /* don't wait before release */ + osmo_fsm_inst_state_chg(lchan->fi, LCHAN_ST_WAIT_RF_RELEASE_ACK, 0, 0); + /* ack the release */ + osmo_fsm_inst_dispatch(lchan->fi, LCHAN_EV_RSL_RF_CHAN_REL_ACK, 0); + } +} + static void lchan_clear(struct gsm_lchan *lchan) { lchan_release(lchan, true, false, 0); + lchan_release_ack(lchan); } static void ts_clear(struct gsm_bts_trx_ts *ts) @@ -674,16 +685,6 @@ abis_rsl_rcvmsg(msg); } -static void lchan_release_ack(struct gsm_lchan *lchan) -{ - if (lchan->fi && lchan->fi->state == LCHAN_ST_WAIT_BEFORE_RF_RELEASE) { - /* don't wait before release */ - osmo_fsm_inst_state_chg(lchan->fi, LCHAN_ST_WAIT_RF_RELEASE_ACK, 0, 0); - /* ack the release */ - osmo_fsm_inst_dispatch(lchan->fi, LCHAN_EV_RSL_RF_CHAN_REL_ACK, 0); - } -} - /* override, requires '-Wl,--wrap=abis_rsl_sendmsg'. * Catch RSL messages sent towards the BTS. */ int __real_abis_rsl_sendmsg(struct msgb *msg); -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21969 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ia22906bfbfcc48b7bd08473a2b17f6b0554687d3 Gerrit-Change-Number: 21969 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 12:36:59 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 6 Jan 2021 12:36:59 +0000 Subject: Change in osmo-bsc[master]: hodec2: cosmetic: add dBm unit to rxval logging In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21970 ) Change subject: hodec2: cosmetic: add dBm unit to rxval logging ...................................................................... hodec2: cosmetic: add dBm unit to rxval logging Change-Id: I58a5ae721b674576339360b1f03e91b015a1bf46 --- M src/osmo-bsc/handover_decision_2.c 1 file changed, 7 insertions(+), 7 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/osmo-bsc/handover_decision_2.c b/src/osmo-bsc/handover_decision_2.c index 9fab1fc..477f1eb 100644 --- a/src/osmo-bsc/handover_decision_2.c +++ b/src/osmo-bsc/handover_decision_2.c @@ -829,18 +829,18 @@ if (candidate->cil) LOGPHOLCHANTOREMOTE(lchan, candidate->cil, LOGL_DEBUG, - "RX level %d -> %d\n", + "RX level %d dBm -> %d dBm\n", rxlev2dbm(rxlev), rxlev2dbm(candidate->avg)); if (candidate->bts == lchan->ts->trx->bts) LOGPHOLCHANTOBTS(lchan, candidate->bts, LOGL_DEBUG, - "RX level %d; " + "RX level %d dBm; " HO_CANDIDATE_FMT(f, F) "; " HO_CANDIDATE_FMT(h, H) "\n", rxlev2dbm(candidate->avg), HO_CANDIDATE_ARGS(f, F), HO_CANDIDATE_ARGS(h, H)); else if (candidate->bts) LOGPHOLCHANTOBTS(lchan, candidate->bts, LOGL_DEBUG, - "RX level %d -> %d; " + "RX level %d dBm -> %d dBm; " HO_CANDIDATE_FMT(f, F) "; " HO_CANDIDATE_FMT(h, H) "\n", rxlev2dbm(rxlev), rxlev2dbm(candidate->avg), HO_CANDIDATE_ARGS(f, F), HO_CANDIDATE_ARGS(h, H)); @@ -946,8 +946,8 @@ unsigned int pwr_hyst = ho_get_hodec2_pwr_hysteresis(bts->ho); if (avg <= (av_rxlev + pwr_hyst)) { LOGPHOCAND(&c, LOGL_DEBUG, - "Not a candidate, because RX level (%d) is lower" - " or equal than current RX level (%d) + hysteresis (%d)\n", + "Not a candidate, because RX level (%d dBm) is lower" + " or equal than current RX level (%d dBm) + hysteresis (%d)\n", rxlev2dbm(avg), rxlev2dbm(av_rxlev), pwr_hyst); return; } @@ -958,8 +958,8 @@ min_rxlev = ho_get_hodec2_min_rxlev(neigh_cfg); if (rxlev2dbm(avg) < min_rxlev) { LOGPHOCAND(&c, LOGL_DEBUG, - "Not a candidate, because RX level (%d) is lower" - " than the minimum required RX level (%d)\n", + "Not a candidate, because RX level (%d dBm) is lower" + " than the minimum required RX level (%d dBm)\n", rxlev2dbm(avg), min_rxlev); return; } -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21970 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I58a5ae721b674576339360b1f03e91b015a1bf46 Gerrit-Change-Number: 21970 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 12:37:22 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 6 Jan 2021 12:37:22 +0000 Subject: Change in osmo-bsc[master]: handover_test: add 'meas-rep repeat N' In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21972 ) Change subject: handover_test: add 'meas-rep repeat N' ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21972 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ib2fa81a449fb73ec7c458b0e6877d6561c79a846 Gerrit-Change-Number: 21972 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 06 Jan 2021 12:37:22 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 12:37:39 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 6 Jan 2021 12:37:39 +0000 Subject: Change in osmo-bsc[master]: handover_test: add test_congestion_favor_best_target_rxlev.ho_vty In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21973 ) Change subject: handover_test: add test_congestion_favor_best_target_rxlev.ho_vty ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21973 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I68cdda21ef59c464f0af3c2eee356623e58ea1cd Gerrit-Change-Number: 21973 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 06 Jan 2021 12:37:39 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 12:37:55 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 6 Jan 2021 12:37:55 +0000 Subject: Change in osmo-bsc[master]: handover_test: add AMR TCH/H->/F tests, showing a bug In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21974 ) Change subject: handover_test: add AMR TCH/H->/F tests, showing a bug ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21974 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ib785ce8990beede603ba57171a60a531f0f396c9 Gerrit-Change-Number: 21974 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 06 Jan 2021 12:37:55 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 12:38:15 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 6 Jan 2021 12:38:15 +0000 Subject: Change in osmo-bsc[master]: handover_test: show ineffective intra-cell choice In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21975 ) Change subject: handover_test: show ineffective intra-cell choice ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21975 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Iabce1ab44b496833c19d999fc3f2903d835c357f Gerrit-Change-Number: 21975 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 06 Jan 2021 12:38:15 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 12:38:27 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 6 Jan 2021 12:38:27 +0000 Subject: Change in osmo-bsc[master]: handover_test: add test_congestion_intra_vs_inter_cell.ho_vty In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21976 ) Change subject: handover_test: add test_congestion_intra_vs_inter_cell.ho_vty ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21976 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ib5d7047328e1dadeae42b604a2f71771f0ac3152 Gerrit-Change-Number: 21976 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 06 Jan 2021 12:38:27 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 12:38:32 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 6 Jan 2021 12:38:32 +0000 Subject: Change in osmo-bsc[master]: handover_test: show ineffective intra-cell choice In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21975 ) Change subject: handover_test: show ineffective intra-cell choice ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21975 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Iabce1ab44b496833c19d999fc3f2903d835c357f Gerrit-Change-Number: 21975 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 06 Jan 2021 12:38:32 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 12:39:06 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 6 Jan 2021 12:39:06 +0000 Subject: Change in osmo-bsc[master]: hodec2: clarify current and target rxlev per candidate In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21977 ) Change subject: hodec2: clarify current and target rxlev per candidate ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21977 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ie6c165e17bb3c99eebc967a6bb02529db8bdfc98 Gerrit-Change-Number: 21977 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 06 Jan 2021 12:39:06 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 12:39:26 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 6 Jan 2021 12:39:26 +0000 Subject: Change in osmo-bsc[master]: hodec2: cosmetic: clarify afs_bias, simplify pick_better_lchan_to_move() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21978 ) Change subject: hodec2: cosmetic: clarify afs_bias, simplify pick_better_lchan_to_move() ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21978 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I73860abdf2a77270ca4851ad58c09767d1bb08f1 Gerrit-Change-Number: 21978 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 06 Jan 2021 12:39:26 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 14:35:34 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 6 Jan 2021 14:35:34 +0000 Subject: Change in osmo-trx[master]: README update In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/21999 ) Change subject: README update ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-trx/+/21999/1/README.md File README.md: https://gerrit.osmocom.org/c/osmo-trx/+/21999/1/README.md at a15 PS1, Line 15: while still maintaining backwards compatibility with OpenBTS Isn't this the case anymore? -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/21999 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I4f20ad8666dcc6bbc23d78b40b7c73ddd7e6eacc Gerrit-Change-Number: 21999 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-Comment-Date: Wed, 06 Jan 2021 14:35:34 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 14:49:53 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 6 Jan 2021 14:49:53 +0000 Subject: Change in osmo-bts[master]: major README uppdate In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21998 ) Change subject: major README uppdate ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21998 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib897e0248299b9a105140090528b790f53c16e40 Gerrit-Change-Number: 21998 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Wed, 06 Jan 2021 14:49:53 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 14:51:03 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 6 Jan 2021 14:51:03 +0000 Subject: Change in osmo-msc[master]: README update. Explain more what it is than just the history In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/21997 ) Change subject: README update. Explain more what it is than just the history ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/21997 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: I7368a8a0927fa301dfbbe550b8090e783ab7be2e Gerrit-Change-Number: 21997 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Wed, 06 Jan 2021 14:51:03 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 15:56:25 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 6 Jan 2021 15:56:25 +0000 Subject: Change in osmo-sysmon[master]: configure.ac: Make configure.ac and debian/control agree on versions References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sysmon/+/22000 ) Change subject: configure.ac: Make configure.ac and debian/control agree on versions ...................................................................... configure.ac: Make configure.ac and debian/control agree on versions Change-Id: I9ec8176618585ff74e36fa6f2458fbe8e0c89ca6 --- M configure.ac 1 file changed, 4 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sysmon refs/changes/00/22000/1 diff --git a/configure.ac b/configure.ac index 5242b6a..4682931 100644 --- a/configure.ac +++ b/configure.ac @@ -38,10 +38,10 @@ AC_SUBST(LIBRARY_DL) -PKG_CHECK_MODULES(LIBOSMOCORE, libosmocore >= 0.11.0) -PKG_CHECK_MODULES(LIBOSMOVTY, libosmovty >= 0.11.0) -PKG_CHECK_MODULES(LIBOSMOCTRL, libosmoctrl >= 0.11.0) -PKG_CHECK_MODULES(LIBOSMOGSM, libosmogsm >= 0.11.0) +PKG_CHECK_MODULES(LIBOSMOCORE, libosmocore >= 1.0.1) +PKG_CHECK_MODULES(LIBOSMOVTY, libosmovty >= 1.0.1) +PKG_CHECK_MODULES(LIBOSMOCTRL, libosmoctrl >= 1.0.1) +PKG_CHECK_MODULES(LIBOSMOGSM, libosmogsm >= 1.0.1) PKG_CHECK_MODULES(LIBOSMONETIF, libosmo-netif >= 0.4.0) PKG_CHECK_MODULES(LIBMNL, libmnl) dnl FIXME: bump to 1.10.0 once it's available on build slaves and remove workaround from osysmon_ping.c -- To view, visit https://gerrit.osmocom.org/c/osmo-sysmon/+/22000 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sysmon Gerrit-Branch: master Gerrit-Change-Id: I9ec8176618585ff74e36fa6f2458fbe8e0c89ca6 Gerrit-Change-Number: 22000 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 15:56:26 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 6 Jan 2021 15:56:26 +0000 Subject: =?UTF-8?Q?Change_in_osmo-sysmon=5Bmaster=5D=3A_Bump_version=3A_0=2E2=2E0=2E5-efd1_=E2=86=92_0=2E3=2E0?= References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sysmon/+/22001 ) Change subject: Bump version: 0.2.0.5-efd1 ? 0.3.0 ...................................................................... Bump version: 0.2.0.5-efd1 ? 0.3.0 Change-Id: I4b5c06efd20e98e9c1e77d4b3f3df62ef50708ac --- M debian/changelog 1 file changed, 13 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sysmon refs/changes/01/22001/1 diff --git a/debian/changelog b/debian/changelog index 2d78a68..2024e88 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,16 @@ +osmo-sysmon (0.3.0) unstable; urgency=medium + + [ Daniel Willmann ] + * simple_ctrl: Don't cause an error if GET response is empty + * Cleaner output if sections are empty + * Add oneshot mode that exits after one iteration + + [ Harald Welte ] + * exit(2) on unsupported positional arguments on command line + * configure.ac: Make configure.ac and debian/control agree on versions + + -- Harald Welte Wed, 06 Jan 2021 16:56:14 +0100 + osmo-sysmon (0.2.0) unstable; urgency=medium [ Harald Welte ] -- To view, visit https://gerrit.osmocom.org/c/osmo-sysmon/+/22001 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sysmon Gerrit-Branch: master Gerrit-Change-Id: I4b5c06efd20e98e9c1e77d4b3f3df62ef50708ac Gerrit-Change-Number: 22001 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 15:57:45 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 6 Jan 2021 15:57:45 +0000 Subject: Change in osmo-sysmon[master]: configure.ac: Make configure.ac and debian/control agree on versions In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sysmon/+/22000 ) Change subject: configure.ac: Make configure.ac and debian/control agree on versions ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sysmon/+/22000 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sysmon Gerrit-Branch: master Gerrit-Change-Id: I9ec8176618585ff74e36fa6f2458fbe8e0c89ca6 Gerrit-Change-Number: 22000 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 06 Jan 2021 15:57:45 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 15:57:47 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 6 Jan 2021 15:57:47 +0000 Subject: =?UTF-8?Q?Change_in_osmo-sysmon=5Bmaster=5D=3A_Bump_version=3A_0=2E2=2E0=2E5-efd1_=E2=86=92_0=2E3=2E0?= In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sysmon/+/22001 ) Change subject: Bump version: 0.2.0.5-efd1 ? 0.3.0 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sysmon/+/22001 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sysmon Gerrit-Branch: master Gerrit-Change-Id: I4b5c06efd20e98e9c1e77d4b3f3df62ef50708ac Gerrit-Change-Number: 22001 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 06 Jan 2021 15:57:47 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 15:57:54 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 6 Jan 2021 15:57:54 +0000 Subject: Change in osmo-sysmon[master]: configure.ac: Make configure.ac and debian/control agree on versions In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sysmon/+/22000 ) Change subject: configure.ac: Make configure.ac and debian/control agree on versions ...................................................................... configure.ac: Make configure.ac and debian/control agree on versions Change-Id: I9ec8176618585ff74e36fa6f2458fbe8e0c89ca6 --- M configure.ac 1 file changed, 4 insertions(+), 4 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/configure.ac b/configure.ac index 5242b6a..4682931 100644 --- a/configure.ac +++ b/configure.ac @@ -38,10 +38,10 @@ AC_SUBST(LIBRARY_DL) -PKG_CHECK_MODULES(LIBOSMOCORE, libosmocore >= 0.11.0) -PKG_CHECK_MODULES(LIBOSMOVTY, libosmovty >= 0.11.0) -PKG_CHECK_MODULES(LIBOSMOCTRL, libosmoctrl >= 0.11.0) -PKG_CHECK_MODULES(LIBOSMOGSM, libosmogsm >= 0.11.0) +PKG_CHECK_MODULES(LIBOSMOCORE, libosmocore >= 1.0.1) +PKG_CHECK_MODULES(LIBOSMOVTY, libosmovty >= 1.0.1) +PKG_CHECK_MODULES(LIBOSMOCTRL, libosmoctrl >= 1.0.1) +PKG_CHECK_MODULES(LIBOSMOGSM, libosmogsm >= 1.0.1) PKG_CHECK_MODULES(LIBOSMONETIF, libosmo-netif >= 0.4.0) PKG_CHECK_MODULES(LIBMNL, libmnl) dnl FIXME: bump to 1.10.0 once it's available on build slaves and remove workaround from osysmon_ping.c -- To view, visit https://gerrit.osmocom.org/c/osmo-sysmon/+/22000 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sysmon Gerrit-Branch: master Gerrit-Change-Id: I9ec8176618585ff74e36fa6f2458fbe8e0c89ca6 Gerrit-Change-Number: 22000 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 15:57:54 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 6 Jan 2021 15:57:54 +0000 Subject: =?UTF-8?Q?Change_in_osmo-sysmon=5Bmaster=5D=3A_Bump_version=3A_0=2E2=2E0=2E5-efd1_=E2=86=92_0=2E3=2E0?= In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sysmon/+/22001 ) Change subject: Bump version: 0.2.0.5-efd1 ? 0.3.0 ...................................................................... Bump version: 0.2.0.5-efd1 ? 0.3.0 Change-Id: I4b5c06efd20e98e9c1e77d4b3f3df62ef50708ac --- M debian/changelog 1 file changed, 13 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/debian/changelog b/debian/changelog index 2d78a68..2024e88 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,16 @@ +osmo-sysmon (0.3.0) unstable; urgency=medium + + [ Daniel Willmann ] + * simple_ctrl: Don't cause an error if GET response is empty + * Cleaner output if sections are empty + * Add oneshot mode that exits after one iteration + + [ Harald Welte ] + * exit(2) on unsupported positional arguments on command line + * configure.ac: Make configure.ac and debian/control agree on versions + + -- Harald Welte Wed, 06 Jan 2021 16:56:14 +0100 + osmo-sysmon (0.2.0) unstable; urgency=medium [ Harald Welte ] -- To view, visit https://gerrit.osmocom.org/c/osmo-sysmon/+/22001 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sysmon Gerrit-Branch: master Gerrit-Change-Id: I4b5c06efd20e98e9c1e77d4b3f3df62ef50708ac Gerrit-Change-Number: 22001 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 16:10:15 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 6 Jan 2021 16:10:15 +0000 Subject: =?UTF-8?Q?Change_in_osmo-iuh=5Bfor-1=2E0=5D=3A_Bump_version=3A_0=2E6=2E0=2E24-2946-dirty_=E2=86=92_1=2E0=2E0?= References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-iuh/+/22002 ) Change subject: Bump version: 0.6.0.24-2946-dirty ? 1.0.0 ...................................................................... Bump version: 0.6.0.24-2946-dirty ? 1.0.0 Change-Id: I67bc51a94f34c91da0f7f0638b66ed4ccea3d09b --- M TODO-RELEASE M debian/changelog 2 files changed, 44 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-iuh refs/changes/02/22002/1 diff --git a/TODO-RELEASE b/TODO-RELEASE index dde4b72..d0852fc 100644 --- a/TODO-RELEASE +++ b/TODO-RELEASE @@ -7,4 +7,3 @@ # If any interfaces have been added since the last public release: c:r:a + 1. # If any interfaces have been removed or changed since the last public release: c:r:0. #library what description / commit summary line -manual needs common chapter cs7-config.adoc from osmo-gsm-manuals > 0.3.0 diff --git a/debian/changelog b/debian/changelog index f59c49e..669b2dd 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,47 @@ +osmo-iuh (1.0.0) unstable; urgency=medium + + [ Martin Hauke ] + * tests: Missing return statement + + [ Pau Espin Pedrol ] + * tests/hnb-test-ranap.c: Fix wrong printf format + * tests/test-ranap.c: Fix wrong printf format + * Fix compiler warning on signedness of char ptr using OCTET_STRING_fromBuf() + * hnbgw_vty.c: Drop unusued variables + * tests: Fix trailing whitespace + * Fix OneDefinitionRule Asan violation in tests and osmo-hnbgw + * Change default SCTP conn NULL->127.0.0.1 to localhost->localhost + * hnbgw: Mark SCTP conn as NODELAY + * contrib/jenkins: Enable parallel make in make distcheck + + [ Neels Hofmeyr ] + * manual: add "Configuring Primary Links" and "Multiple instances" + * manual: link to new common cs7-config.adoc + + [ Vadim Yanitskiy ] + * tests/test-helpers: fix some -Wpointer-sign warnings reported by GCC + * tests/test-helpers: fix endianness: do not print uint32_t as raw bytes + * tests/test-ranap: cosmetic: remove unused variable 'rc' + * debian/control: change maintainer to the Osmocom team / mailing list + * vty: use install_lib_element() and install_lib_element_ve() + + [ Eric ] + * configure.ac: fix libtool issue with clang and sanitizer + + [ Philipp Maier ] + * hnbgw: do not use LOGL_DEBUG as default loglevel + + [ Harald Welte ] + * Fix compilation with gcc-10 + * Provide more context when logging "Error in ANY_fromType_aper" + + [ Oliver Smith ] + * contrib: import RPM spec + * contrib: integrate RPM spec + * Makefile.am: EXTRA_DIST: debian, contrib/*.spec.in + + -- Harald Welte Wed, 06 Jan 2021 17:09:20 +0100 + osmo-iuh (0.6.0) unstable; urgency=medium [ Vadim Yanitskiy ] -- To view, visit https://gerrit.osmocom.org/c/osmo-iuh/+/22002 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: for-1.0 Gerrit-Change-Id: I67bc51a94f34c91da0f7f0638b66ed4ccea3d09b Gerrit-Change-Number: 22002 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 16:10:44 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 6 Jan 2021 16:10:44 +0000 Subject: Change in osmo-msc[master]: README update. Explain more what it is than just the history In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/21997 ) Change subject: README update. Explain more what it is than just the history ...................................................................... README update. Explain more what it is than just the history Change-Id: I7368a8a0927fa301dfbbe550b8090e783ab7be2e --- M README 1 file changed, 19 insertions(+), 8 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, approved diff --git a/README b/README index a45ef95..0f1b3cf 100644 --- a/README +++ b/README @@ -1,15 +1,26 @@ About OsmoMSC ============= -OsmoMSC originated from the OpenBSC project, which started as a minimalistic -all-in-one implementation of the GSM Network. In 2017, OpenBSC had reached -maturity and diversity (including M3UA SIGTRAN and 3G support in the form of -IuCS and IuPS interfaces) that naturally lead to a separation of the all-in-one -approach to fully independent separate programs as in typical GSM networks. +OsmoMSC is an implementation of the 3GPP MSC (Mobile Switching Centre) +network element. It implements the following core functionality within +the 2G (GSM) and 3G (UMTS) networks: -OsmoMSC was one of the parts split off from the old openbsc.git. Before, it was -the libmsc part of the old OsmoNITB. Since a true A interface and IuCS for 3G -support is available, OsmoMSC exists only as a separate standalone entity. +* mobility management +* call control (either via built-in MNCC handler or external osmo-sip-connector) +* USSD (exposed via GSUP) +* SMS (either via built-in SMSC or external via GSUP) + +Historically, OsmoMSC originated from the OpenBSC project, which started +as a minimalistic all-in-one implementation of the GSM Network. In 2017, +OpenBSC had reached maturity and diversity (including M3UA SIGTRAN and +3G support in the form of IuCS and IuPS interfaces) that naturally lead +to a separation of the all-in-one approach to fully independent separate +programs as in typical GSM networks. + +OsmoMSC was one of the parts split off from the old openbsc.git. Before, +it was the libmsc part of the old OsmoNITB. Since a true A interface and +IuCS for 3G support is available, OsmoMSC exists only as a separate +standalone entity. OsmoMSC exposes - GSUP towards OsmoHLR (or a MAP proxy); -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/21997 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: I7368a8a0927fa301dfbbe550b8090e783ab7be2e Gerrit-Change-Number: 21997 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 16:10:53 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 6 Jan 2021 16:10:53 +0000 Subject: Change in osmo-bts[master]: major README uppdate In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21998 ) Change subject: major README uppdate ...................................................................... major README uppdate * use https for hyperlinks * update known limitations * VTY manuals are now per backend Change-Id: Ib897e0248299b9a105140090528b790f53c16e40 --- M README.md 1 file changed, 17 insertions(+), 11 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, approved diff --git a/README.md b/README.md index 965744f..5527ef1 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,7 @@ * sysmocom sysmoBTS * Octasic octphy * Nutaq litecell 1.5 + * OpenCellular 2G (OC-2G) * software-defined radio based osmo-bts-trx (e.g. USRP B210, UmTRX, LimeSDR) Homepage @@ -35,17 +36,25 @@ git clone git://git.osmocom.org/osmo-bts.git -There is a cgit interface at http://git.osmocom.org/osmo-bts/ +There is a cgit interface at https://git.osmocom.org/osmo-bts/ Documentation ------------- -We provide a -[User Manual](http://ftp.osmocom.org/docs/latest/osmobts-usermanual.pdf) -as well as a -[VTY Reference Manual](http://ftp.osmocom.org/docs/latest/osmobsc-vty-reference.pdf) -and a -[Abis reference MAnual](http://ftp.osmocom.org/docs/latest/osmobts-abis.pdf) +User Manuals and VTY reference manuals are [optionally] built in PDF form +as part of the build process. + +Pre-rendered PDF version of the current "master" can be found at +[User Manual](https://ftp.osmocom.org/docs/latest/osmobts-usermanual.pdf) +as well as the VTY reference manuals +* [VTY Reference Manual for osmo-bts-sysmo](https://ftp.osmocom.org/docs/latest/osmobts-sysmo-vty-reference.pdf) +* [VTY Reference Manual for osmo-bts-trx](https://ftp.osmocom.org/docs/latest/osmobts-trx-vty-reference.pdf) +* [VTY Reference Manual for osmo-bts-lc15](https://ftp.osmocom.org/docs/latest/osmobts-lc15-vty-reference.pdf) +* [VTY Reference Manual for osmo-bts-oc2g](https://ftp.osmocom.org/docs/latest/osmobts-oc2g-vty-reference.pdf) +* [VTY Reference Manual for osmo-bts-octphy](https://ftp.osmocom.org/docs/latest/osmobts-octphy-vty-reference.pdf) + +There also is an +[Abis reference Manual](https://ftp.osmocom.org/docs/latest/osmobts-abis.pdf) describing the OsmoBTS specific A-bis dialect. Mailing List @@ -77,7 +86,7 @@ Known Limitations ================= -As of March 17, 2017, the following known limitations exist in this +As of January 2021, the following known limitations exist in this implementation: Common Core @@ -87,10 +96,7 @@ * System Information limited to 1,2,2bis,2ter,2quater,3,4,5,6,9,13 * No RATSCCH in AMR * Will reject TS 12.21 STARTING TIME in SET BTS ATTR / SET CHAN ATTR - * No support for frequency hopping * No reporting of interference levels as part of TS 08.58 RF RES IND - * No error reporting in case PAGING COMMAND fails due to queue overflow - * No use of TS 08.58 BS Power and MS Power parameters * No support of TS 08.58 MultiRate Control * No support of TS 08.58 Supported Codec Types * No support of Bter frame / ENHANCED MEASUREMENT REPORT -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21998 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib897e0248299b9a105140090528b790f53c16e40 Gerrit-Change-Number: 21998 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 16:14:44 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 6 Jan 2021 16:14:44 +0000 Subject: Change in osmo-pcap[master]: reformat debian/control for osmo-release.sh compatibility References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcap/+/22003 ) Change subject: reformat debian/control for osmo-release.sh compatibility ...................................................................... reformat debian/control for osmo-release.sh compatibility If we have more than one dependency in the line, osmo-release.sh fails with ERROR: configure.ac does NOT match debian/control ! Change-Id: I8ab9a24af6ac0e4610ecc0eca1d5f5b9e03ad445 --- M debian/control 1 file changed, 8 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcap refs/changes/03/22003/1 diff --git a/debian/control b/debian/control index 7a97aad..4e2fc7c 100644 --- a/debian/control +++ b/debian/control @@ -2,7 +2,14 @@ Section: unknown Priority: extra Maintainer: Holger Hans Peter Freyther -Build-Depends: debhelper (>= 7.0.50~), dh-autoreconf, autotools-dev, libpcap0.8-dev, pkg-config, libosmocore-dev, libgnutls28-dev, libzmq3-dev +Build-Depends: debhelper (>= 7.0.50~), + dh-autoreconf, + autotools-dev, + libpcap0.8-dev, + pkg-config, + libosmocore-dev, + libgnutls28-dev, + libzmq3-dev Standards-Version: 3.9.1 Homepage: https://osmocom.org/projects/osmo-pcap Vcs-Git: git://git.osmocom.org/osmo-pcap.git -- To view, visit https://gerrit.osmocom.org/c/osmo-pcap/+/22003 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcap Gerrit-Branch: master Gerrit-Change-Id: I8ab9a24af6ac0e4610ecc0eca1d5f5b9e03ad445 Gerrit-Change-Number: 22003 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 16:17:11 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 6 Jan 2021 16:17:11 +0000 Subject: =?UTF-8?Q?Change_in_osmo-iuh=5Bfor-1=2E0=5D=3A_Bump_version=3A_0=2E6=2E0=2E24-2946-dirty_=E2=86=92_1=2E0=2E0?= In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-iuh/+/22002 ) Change subject: Bump version: 0.6.0.24-2946-dirty ? 1.0.0 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-iuh/+/22002 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: for-1.0 Gerrit-Change-Id: I67bc51a94f34c91da0f7f0638b66ed4ccea3d09b Gerrit-Change-Number: 22002 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 06 Jan 2021 16:17:11 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 16:17:13 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 6 Jan 2021 16:17:13 +0000 Subject: =?UTF-8?Q?Change_in_osmo-iuh=5Bfor-1=2E0=5D=3A_Bump_version=3A_0=2E6=2E0=2E24-2946-dirty_=E2=86=92_1=2E0=2E0?= In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-iuh/+/22002 ) Change subject: Bump version: 0.6.0.24-2946-dirty ? 1.0.0 ...................................................................... Bump version: 0.6.0.24-2946-dirty ? 1.0.0 Change-Id: I67bc51a94f34c91da0f7f0638b66ed4ccea3d09b --- M TODO-RELEASE M debian/changelog 2 files changed, 44 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/TODO-RELEASE b/TODO-RELEASE index dde4b72..d0852fc 100644 --- a/TODO-RELEASE +++ b/TODO-RELEASE @@ -7,4 +7,3 @@ # If any interfaces have been added since the last public release: c:r:a + 1. # If any interfaces have been removed or changed since the last public release: c:r:0. #library what description / commit summary line -manual needs common chapter cs7-config.adoc from osmo-gsm-manuals > 0.3.0 diff --git a/debian/changelog b/debian/changelog index f59c49e..669b2dd 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,47 @@ +osmo-iuh (1.0.0) unstable; urgency=medium + + [ Martin Hauke ] + * tests: Missing return statement + + [ Pau Espin Pedrol ] + * tests/hnb-test-ranap.c: Fix wrong printf format + * tests/test-ranap.c: Fix wrong printf format + * Fix compiler warning on signedness of char ptr using OCTET_STRING_fromBuf() + * hnbgw_vty.c: Drop unusued variables + * tests: Fix trailing whitespace + * Fix OneDefinitionRule Asan violation in tests and osmo-hnbgw + * Change default SCTP conn NULL->127.0.0.1 to localhost->localhost + * hnbgw: Mark SCTP conn as NODELAY + * contrib/jenkins: Enable parallel make in make distcheck + + [ Neels Hofmeyr ] + * manual: add "Configuring Primary Links" and "Multiple instances" + * manual: link to new common cs7-config.adoc + + [ Vadim Yanitskiy ] + * tests/test-helpers: fix some -Wpointer-sign warnings reported by GCC + * tests/test-helpers: fix endianness: do not print uint32_t as raw bytes + * tests/test-ranap: cosmetic: remove unused variable 'rc' + * debian/control: change maintainer to the Osmocom team / mailing list + * vty: use install_lib_element() and install_lib_element_ve() + + [ Eric ] + * configure.ac: fix libtool issue with clang and sanitizer + + [ Philipp Maier ] + * hnbgw: do not use LOGL_DEBUG as default loglevel + + [ Harald Welte ] + * Fix compilation with gcc-10 + * Provide more context when logging "Error in ANY_fromType_aper" + + [ Oliver Smith ] + * contrib: import RPM spec + * contrib: integrate RPM spec + * Makefile.am: EXTRA_DIST: debian, contrib/*.spec.in + + -- Harald Welte Wed, 06 Jan 2021 17:09:20 +0100 + osmo-iuh (0.6.0) unstable; urgency=medium [ Vadim Yanitskiy ] -- To view, visit https://gerrit.osmocom.org/c/osmo-iuh/+/22002 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: for-1.0 Gerrit-Change-Id: I67bc51a94f34c91da0f7f0638b66ed4ccea3d09b Gerrit-Change-Number: 22002 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 16:22:17 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 6 Jan 2021 16:22:17 +0000 Subject: =?UTF-8?Q?Change_in_osmo-gsm-manuals=5Bmaster=5D=3A_Bump_version=3A_0=2E3=2E0=2E6-f29a_=E2=86=92_1=2E0=2E0?= References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/22004 ) Change subject: Bump version: 0.3.0.6-f29a ? 1.0.0 ...................................................................... Bump version: 0.3.0.6-f29a ? 1.0.0 Change-Id: Idcf75e78cac8aed49aefa871f1fc34f2c44f87e9 --- M debian/changelog 1 file changed, 54 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-manuals refs/changes/04/22004/1 diff --git a/debian/changelog b/debian/changelog index 852d8e2..d999a89 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,57 @@ +osmo-gsm-manuals-dev (1.0.0) unstable; urgency=medium + + [ Daniel Willmann ] + * bts: Document access control classes and acc ramping + * bts.adoc: Add information about RACH tuning parameters + + [ Neels Hofmeyr ] + * fix srcdir to reflect $abs_srcdir + * fixup: ensure existence of $(abs_srcdir) + * add common/chapters/cs7-config + * vty reference: allow reference XML generated at build time + * bibliography, glossary: add MSC pooling related bits + + [ Harald Welte ] + * port_numbers: Add osmo-mgw CTRL port + * port_numbers: Add missing mDNS port for D-GSM / osmo-hlr + * synchronize port_numbers.adoc with wiki + * port_numbers: Add port numbers for upcoming OsmoSMLC + * biblio: Add 3GPP TS 31.103 (ISIM) + * sigtran: Mention that M3UA was chosen by 3GPP + * sigtran: Describe sctp/m3ua role, multi-homing, traffic-modes + * cs7-config: Mention OsmoSMLC + * cs7-config: Explain that A/Iu/Lb interfaces are reouted via STP + * cs7-config: Reference the OsmoSTP user manual for more info on SS7 + * Add common chapters on GB interface variants and SGSN pool + + [ Vadim Yanitskiy ] + * logging: fix section 6.5.3: logging level s/all/force-all/ fatal + * port_numbers: fix: GSMTAP has noting to do with port 2427/udp + * GSUP: fix E-Routing-Error: both session state / ID IEs are optional + * vty_reference.xsl: handle application specific attributes + * vty_reference.xsl: also handle 'global' and 'library' attributes + * chapters/vty: add IPv4/mask and IPv6/mask examples + * chapters/vty: add documentation for the expert mode + * chapters/vty: add in-place comments to the attribute examples + * Makefile.docbook.inc: fix incorrect variable name in documentation + * Makefile.vty-reference.inc: create 'generated' in this file + * Makefile.docbook.inc: allow to re-define the include directory + * vty_reference_combine.sh: print the final result to stdout + * Makefile.docbook.inc: generate *.pdf in the given directory + * Makefile.common.inc: make 'publish' target use $(UPLOAD_FILES) + + [ Pau Espin Pedrol ] + * trx_if: Clarify {SET;ADJ}POWER TRXC commands + * trx_if.adoc: Document cmd NOMTXPOWER + * Drop common/chapters/{bts,bsc}.adoc + * chapters: Introduce vty_cpu_sched.adoc chapter + * trx_if.adoc: Document RFMUTE TRXC command + + [ Philipp Maier ] + * vty: explain how command attributes are used + + -- Harald Welte Wed, 06 Jan 2021 17:21:50 +0100 + osmo-gsm-manuals-dev (0.3.0) unstable; urgency=medium [ Oliver Smith ] -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/22004 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-manuals Gerrit-Branch: master Gerrit-Change-Id: Idcf75e78cac8aed49aefa871f1fc34f2c44f87e9 Gerrit-Change-Number: 22004 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 16:26:09 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 6 Jan 2021 16:26:09 +0000 Subject: =?UTF-8?Q?Change_in_osmo-gsm-manuals=5Bmaster=5D=3A_Bump_version=3A_0=2E3=2E0=2E6-f29a_=E2=86=92_1=2E0=2E0?= In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/22004 ) Change subject: Bump version: 0.3.0.6-f29a ? 1.0.0 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/22004 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-manuals Gerrit-Branch: master Gerrit-Change-Id: Idcf75e78cac8aed49aefa871f1fc34f2c44f87e9 Gerrit-Change-Number: 22004 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 06 Jan 2021 16:26:09 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 16:26:11 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 6 Jan 2021 16:26:11 +0000 Subject: =?UTF-8?Q?Change_in_osmo-gsm-manuals=5Bmaster=5D=3A_Bump_version=3A_0=2E3=2E0=2E6-f29a_=E2=86=92_1=2E0=2E0?= In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/22004 ) Change subject: Bump version: 0.3.0.6-f29a ? 1.0.0 ...................................................................... Bump version: 0.3.0.6-f29a ? 1.0.0 Change-Id: Idcf75e78cac8aed49aefa871f1fc34f2c44f87e9 --- M debian/changelog 1 file changed, 54 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/debian/changelog b/debian/changelog index 852d8e2..d999a89 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,57 @@ +osmo-gsm-manuals-dev (1.0.0) unstable; urgency=medium + + [ Daniel Willmann ] + * bts: Document access control classes and acc ramping + * bts.adoc: Add information about RACH tuning parameters + + [ Neels Hofmeyr ] + * fix srcdir to reflect $abs_srcdir + * fixup: ensure existence of $(abs_srcdir) + * add common/chapters/cs7-config + * vty reference: allow reference XML generated at build time + * bibliography, glossary: add MSC pooling related bits + + [ Harald Welte ] + * port_numbers: Add osmo-mgw CTRL port + * port_numbers: Add missing mDNS port for D-GSM / osmo-hlr + * synchronize port_numbers.adoc with wiki + * port_numbers: Add port numbers for upcoming OsmoSMLC + * biblio: Add 3GPP TS 31.103 (ISIM) + * sigtran: Mention that M3UA was chosen by 3GPP + * sigtran: Describe sctp/m3ua role, multi-homing, traffic-modes + * cs7-config: Mention OsmoSMLC + * cs7-config: Explain that A/Iu/Lb interfaces are reouted via STP + * cs7-config: Reference the OsmoSTP user manual for more info on SS7 + * Add common chapters on GB interface variants and SGSN pool + + [ Vadim Yanitskiy ] + * logging: fix section 6.5.3: logging level s/all/force-all/ fatal + * port_numbers: fix: GSMTAP has noting to do with port 2427/udp + * GSUP: fix E-Routing-Error: both session state / ID IEs are optional + * vty_reference.xsl: handle application specific attributes + * vty_reference.xsl: also handle 'global' and 'library' attributes + * chapters/vty: add IPv4/mask and IPv6/mask examples + * chapters/vty: add documentation for the expert mode + * chapters/vty: add in-place comments to the attribute examples + * Makefile.docbook.inc: fix incorrect variable name in documentation + * Makefile.vty-reference.inc: create 'generated' in this file + * Makefile.docbook.inc: allow to re-define the include directory + * vty_reference_combine.sh: print the final result to stdout + * Makefile.docbook.inc: generate *.pdf in the given directory + * Makefile.common.inc: make 'publish' target use $(UPLOAD_FILES) + + [ Pau Espin Pedrol ] + * trx_if: Clarify {SET;ADJ}POWER TRXC commands + * trx_if.adoc: Document cmd NOMTXPOWER + * Drop common/chapters/{bts,bsc}.adoc + * chapters: Introduce vty_cpu_sched.adoc chapter + * trx_if.adoc: Document RFMUTE TRXC command + + [ Philipp Maier ] + * vty: explain how command attributes are used + + -- Harald Welte Wed, 06 Jan 2021 17:21:50 +0100 + osmo-gsm-manuals-dev (0.3.0) unstable; urgency=medium [ Oliver Smith ] -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/22004 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-manuals Gerrit-Branch: master Gerrit-Change-Id: Idcf75e78cac8aed49aefa871f1fc34f2c44f87e9 Gerrit-Change-Number: 22004 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 17:14:15 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 6 Jan 2021 17:14:15 +0000 Subject: Change in libosmocore[master]: gprs_bssgp_rim: fix problem with uninitalized in bssgp_create_rim_ri() In-Reply-To: References: Message-ID: dexter has abandoned this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21864 ) Change subject: gprs_bssgp_rim: fix problem with uninitalized in bssgp_create_rim_ri() ...................................................................... Abandoned redundant with Ifc3dda1fe5e9743072751dbb14c2d973388cb3b2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21864 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Id92c3ae86016ef6000127fbef223276b250c2e97 Gerrit-Change-Number: 21864 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: abandon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 17:33:55 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 6 Jan 2021 17:33:55 +0000 Subject: Change in libosmocore[master]: gsm_08_18: add struct to parse RIM PDU Indications In-Reply-To: References: Message-ID: Hello Jenkins Builder, fixeria, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/21861 to look at the new patch set (#2). Change subject: gsm_08_18: add struct to parse RIM PDU Indications ...................................................................... gsm_08_18: add struct to parse RIM PDU Indications 3GPP TS 48.018, section 11.3.65 describes an IE to transfer some control flags via a RIM container. The IE is essentially just a bitfield, so it can be parsed by overlaying it with a C-struct. Lets add an appropiate struct to protocol/gsm_08_18.h Change-Id: I781ab838bd02ac1b13d384ce3f4259e26cedb61e Related: SYS#5103 --- M include/osmocom/gprs/protocol/gsm_08_18.h 1 file changed, 22 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/61/21861/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21861 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I781ab838bd02ac1b13d384ce3f4259e26cedb61e Gerrit-Change-Number: 21861 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 17:34:52 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 6 Jan 2021 17:34:52 +0000 Subject: Change in libosmocore[master]: gsm_08_18: add struct to parse RIM PDU Indications In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21861 ) Change subject: gsm_08_18: add struct to parse RIM PDU Indications ...................................................................... Patch Set 2: (1 comment) (converted now to enum) https://gerrit.osmocom.org/c/libosmocore/+/21861/1/include/osmocom/gprs/protocol/gsm_08_18.h File include/osmocom/gprs/protocol/gsm_08_18.h: https://gerrit.osmocom.org/c/libosmocore/+/21861/1/include/osmocom/gprs/protocol/gsm_08_18.h at 355 PS1, Line 355: #define RIM_PDU_TYPE_STOP 0 > enum? Done -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21861 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I781ab838bd02ac1b13d384ce3f4259e26cedb61e Gerrit-Change-Number: 21861 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 06 Jan 2021 17:34:52 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 17:46:46 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 6 Jan 2021 17:46:46 +0000 Subject: Change in osmo-cbc[master]: Major Documentation update References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22005 ) Change subject: Major Documentation update ...................................................................... Major Documentation update * add command line help * add basic user manual * add vty reference manual * install example configuration Change-Id: Idf49d7fcee2b11638945baa25064273a7e5e5e61 --- M .gitignore M Makefile.am M configure.ac M contrib/jenkins.sh A doc/Makefile.am A doc/examples/Makefile.am R doc/examples/osmo-cbc/osmo-cbc.cfg A doc/manuals/Makefile.am A doc/manuals/chapters/counters.adoc A doc/manuals/chapters/overview.adoc A doc/manuals/chapters/running.adoc A doc/manuals/osmocbc-usermanual-docinfo.xml A doc/manuals/osmocbc-usermanual.adoc A doc/manuals/osmocbc-vty-reference.xml A doc/manuals/regen_doc.sh A doc/manuals/vty/cbc_vty_additions.xml M src/cbc_main.c 17 files changed, 355 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-cbc refs/changes/05/22005/1 diff --git a/.gitignore b/.gitignore index e01642c..925f48d 100644 --- a/.gitignore +++ b/.gitignore @@ -54,6 +54,7 @@ doc/manuals/*__*.png doc/manuals/*.check doc/manuals/generated/ -doc/manuals/osmomsc-usermanual.xml +doc/manuals/osmobsc-usermanual.xml doc/manuals/common doc/manuals/build +doc/manuals/vty/cbc_vty_reference.xml diff --git a/Makefile.am b/Makefile.am index 6e0fa11..b7e2e99 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,7 +1,7 @@ AUTOMAKE_OPTIONS = foreign dist-bzip2 1.6 AM_CPPFLAGS = $(all_includes) -I$(top_srcdir)/include -SUBDIRS = src tests contrib +SUBDIRS = src doc contrib tests EXTRA_DIST = .version git-version-gen doc/examples/osmo-cbc.cfg diff --git a/configure.ac b/configure.ac index 566f8c4..342eb84 100644 --- a/configure.ac +++ b/configure.ac @@ -169,5 +169,8 @@ src/Makefile contrib/Makefile tests/Makefile + doc/Makefile + doc/examples/Makefile + doc/manuals/Makefile contrib/systemd/Makefile Makefile) diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index ed73b09..9ab81dc 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -55,8 +55,8 @@ $MAKE distcheck \ || cat-testlogs.sh -#if [ "$WITH_MANUALS" = "1" ] && [ "$PUBLISH" = "1" ]; then -# make -C "$base/doc/manuals" publish -#fi +if [ "$WITH_MANUALS" = "1" ] && [ "$PUBLISH" = "1" ]; then + make -C "$base/doc/manuals" publish +if osmo-clean-workspace.sh diff --git a/doc/Makefile.am b/doc/Makefile.am new file mode 100644 index 0000000..3cb405e --- /dev/null +++ b/doc/Makefile.am @@ -0,0 +1,4 @@ +SUBDIRS = \ + examples \ + manuals \ + $(NULL) diff --git a/doc/examples/Makefile.am b/doc/examples/Makefile.am new file mode 100644 index 0000000..7237c1d --- /dev/null +++ b/doc/examples/Makefile.am @@ -0,0 +1,30 @@ +OSMOCONF_FILES = \ + osmo-cbc/osmo-cbc.cfg + +osmoconfdir = $(sysconfdir)/osmocom +osmoconf_DATA = $(OSMOCONF_FILES) + +EXTRA_DIST = $(OSMOCONF_FILES) + +CFG_FILES = find $(srcdir) -name '*.cfg*' | sed -e 's,^$(srcdir),,' + +dist-hook: + for f in $$($(CFG_FILES)); do \ + j="$(distdir)/$$f" && \ + mkdir -p "$$(dirname $$j)" && \ + $(INSTALL_DATA) $(srcdir)/$$f $$j; \ + done + +install-data-hook: + for f in $$($(CFG_FILES)); do \ + j="$(DESTDIR)$(docdir)/examples/$$f" && \ + mkdir -p "$$(dirname $$j)" && \ + $(INSTALL_DATA) $(srcdir)/$$f $$j; \ + done + +uninstall-hook: + @$(PRE_UNINSTALL) + for f in $$($(CFG_FILES)); do \ + j="$(DESTDIR)$(docdir)/examples/$$f" && \ + $(RM) $$j; \ + done diff --git a/doc/examples/osmo-cbc.cfg b/doc/examples/osmo-cbc/osmo-cbc.cfg similarity index 100% rename from doc/examples/osmo-cbc.cfg rename to doc/examples/osmo-cbc/osmo-cbc.cfg diff --git a/doc/manuals/Makefile.am b/doc/manuals/Makefile.am new file mode 100644 index 0000000..9de94bb --- /dev/null +++ b/doc/manuals/Makefile.am @@ -0,0 +1,24 @@ +EXTRA_DIST = osmocbc-usermanual.adoc \ + osmocbc-usermanual-docinfo.xml \ + osmocbc-vty-reference.xml \ + regen_doc.sh \ + chapters \ + images \ + vty + +if BUILD_MANUALS + ASCIIDOC = osmocbc-usermanual.adoc + ASCIIDOC_DEPS = $(srcdir)/chapters/*.adoc + include $(OSMO_GSM_MANUALS_DIR)/build/Makefile.asciidoc.inc + + VTY_REFERENCE = osmocbc-vty-reference.xml + include $(OSMO_GSM_MANUALS_DIR)/build/Makefile.vty-reference.inc + + BUILT_REFERENCE_XML = $(builddir)/vty/cbc_vty_reference.xml + $(builddir)/vty/cbc_vty_reference.xml: $(top_builddir)/src/osmo-cbc + mkdir -p $(builddir)/vty + $(top_builddir)/src/osmo-cbc --vty-ref-xml > $@ + + OSMO_REPOSITORY = osmo-cbc + include $(OSMO_GSM_MANUALS_DIR)/build/Makefile.common.inc +endif diff --git a/doc/manuals/chapters/counters.adoc b/doc/manuals/chapters/counters.adoc new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/doc/manuals/chapters/counters.adoc diff --git a/doc/manuals/chapters/overview.adoc b/doc/manuals/chapters/overview.adoc new file mode 100644 index 0000000..2077878 --- /dev/null +++ b/doc/manuals/chapters/overview.adoc @@ -0,0 +1,77 @@ +[[overview]] +== OsmoCBC Overview + +=== The 3GPP Cell Broadcast Centre + +Within the 3GPP cellular network, the Cell Broadcast Centre is the central +instance for managing all Cell Broadcast and Emergency Warning functions. + +It acts as a gateway between external applications / users, such as government +authorities for civil protection, and the various components within the 3GPP +network to actually deliver those broadcast and/or emergency messages. + +[[about]] +=== About OsmoCBC + +OsmoCBC is the Osmocom implementation of a Cellular Broadcast Centre (CBC). It +implements: + +- the BSC-CBC interface using the CBSP protocol +- a HTTP/JSON/RESTful interface for external applications +- a telnet-based command line interface for configuration and introspection called VTY + +OsmoCBC provides mainly the following functionality: + +- establishing communication with the various Radio Access Network elements such as BSCs within the network +- receiving requests to start or remove CBS and ETWS messages from external applications +- distributing the CBS and/or ETWS messages +has connection with the various RANs of the 3GPP cellular network + +Future versions of OsmoCBC are expected to contain the RNC-CBC interface +with the SABP protocol, as well as the MME-CBC interface using the SBcAP +protocol. Should you be interested in contributing to this effort, +please contact the author of this document. + +=== CBSP implementation + +CBSP is a Layer 5 protocol operating on top of TCP/IP, established +between the CBC and the various BSCs of a cellular network. + +According to 3GPP, the CBSP is typically established from the CBC to the +BSC. This means that the CBSP operates as TCP client and the BSCs +operate as TCP servers. The disadvantage of this is that it requires +the CBC to have out-of-band, prior knowledge about all the BSCs in the +network, as well as their IP addresses. + +OsmoCBC also supports a slightly modified mode of operation, where the +CBC operates as TCP server, and the BSCs as TCP clients. This means +that all BSCs need to know the IP address of the CBC. In this situation, +the CBC doesn't need to know each and every BSC in the network. It +simply only accepts incoming CBSP connections. + + +=== REST interface + +The REST interface is specified in the JSON schema files +`cbc.schema.json` and `smscb.schema.json`, which are part of the OsmoCBC +distribution. + +The REST interface currently binds to TCP port 12345 (on INADRR_ANY) and +can be reached at http://localhost:1234/api/ecbe/v1" + +NOTE:: It is your responsibility to properly secure access to the REST +interface endpoint to ensure only legitimate users can access it. This +may be achieved via packet filtering and a reverse HTTP proxy. + +==== POST /api/ecbe/v1/message + +This command is used to create a new SMSCB or ETWS message inside the CBC. +The `cbc_messsage` type as specified in the JSON schema. + +==== DELETE /api/ecbe/v1/message/:message_id + +This command is used to delete an existing SMSCB or ETWS message from the CBC. + +The `:message_id` parameter is the decimal integer representation of the +cbc_message.smscb.message_id that was specified when creating the +message via the POST command stated above. diff --git a/doc/manuals/chapters/running.adoc b/doc/manuals/chapters/running.adoc new file mode 100644 index 0000000..5cbe873 --- /dev/null +++ b/doc/manuals/chapters/running.adoc @@ -0,0 +1,21 @@ +== Running OsmoCBC + +The OsmoCBC executable (`osmo-cbc`) offers the following command-line +arguments: + +=== SYNOPSIS + +*osmo-cbc* [-h|-V] [-D] [-c 'CONFIGFILE'] + +=== OPTIONS + +*-h, --help*:: + Print a short help message about the supported options. +*-V, --version*:: + Print the compile-time version number of the program. +*-D, --daemonize*:: + Fork the process as a daemon into background. +*-c, --config-file 'CONFIGFILE'*:: + Specify the file and path name of the configuration file to be + used. If none is specified, use `osmo-bsc.cfg` in the current + working directory. diff --git a/doc/manuals/osmocbc-usermanual-docinfo.xml b/doc/manuals/osmocbc-usermanual-docinfo.xml new file mode 100644 index 0000000..528635c --- /dev/null +++ b/doc/manuals/osmocbc-usermanual-docinfo.xml @@ -0,0 +1,47 @@ + + + 1 + January 4th, 2021 + HW + + Initial version + + + + + + + Harald + Welte + hwelte at sysmocom.de + HW + + sysmocom + sysmocom - s.f.m.c. GmbH + Managing Director + + + + + + 2021 + sysmocom - s.f.m.c. GmbH + + + + + Permission is granted to copy, distribute and/or modify this + document under the terms of the GNU Free Documentation License, + Version 1.3 or any later version published by the Free Software + Foundation; with the Invariant Sections being just 'Foreword', + 'Acknowledgements' and 'Preface', with no Front-Cover Texts, + and no Back-Cover Texts. A copy of the license is included in + the section entitled "GNU Free Documentation License". + + + The Asciidoc source code of this manual can be found at + + http://git.osmocom.org/osmo-gsm-manuals/ + + + diff --git a/doc/manuals/osmocbc-usermanual.adoc b/doc/manuals/osmocbc-usermanual.adoc new file mode 100644 index 0000000..391a9f1 --- /dev/null +++ b/doc/manuals/osmocbc-usermanual.adoc @@ -0,0 +1,29 @@ +:gfdl-enabled: +:program-name: OsmoCBC + +OsmoCBC User Manual +==================== +Harald Welte + + +include::./common/chapters/preface.adoc[] + +include::{srcdir}/chapters/overview.adoc[] + +include::{srcdir}/chapters/running.adoc[] + +include::./common/chapters/counters-overview.adoc[] + +include::{srcdir}/chapters/counters.adoc[] + +include::./common/chapters/vty.adoc[] + +include::./common/chapters/logging.adoc[] + +include::./common/chapters/port_numbers.adoc[] + +include::./common/chapters/bibliography.adoc[] + +include::./common/chapters/glossary.adoc[] + +include::./common/chapters/gfdl.adoc[] diff --git a/doc/manuals/osmocbc-vty-reference.xml b/doc/manuals/osmocbc-vty-reference.xml new file mode 100644 index 0000000..8e05aee --- /dev/null +++ b/doc/manuals/osmocbc-vty-reference.xml @@ -0,0 +1,38 @@ + + + + +]> + + + + + + v1 + 6th January 2021 + hw + Initial + + + + OsmoCBC VTY Reference + + + 2021 + + + + This work is copyright by sysmocom - s.f.m.c. GmbH. All rights reserved. + + + + + + &chapter-vty; + + diff --git a/doc/manuals/regen_doc.sh b/doc/manuals/regen_doc.sh new file mode 100755 index 0000000..c2a5d4c --- /dev/null +++ b/doc/manuals/regen_doc.sh @@ -0,0 +1,17 @@ +#!/bin/sh -x + +if [ -z "$DOCKER_PLAYGROUND" ]; then + echo "You need to set DOCKER_PLAYGROUND" + exit 1 +fi + +SCRIPT=$(realpath "$0") +MANUAL_DIR=$(dirname "$SCRIPT") + +COMMIT=${COMMIT:-$(git log -1 --format=format:%H)} + +cd "$DOCKER_PLAYGROUND/scripts" || exit 1 + +OSMO_CBC_BRANCH=$COMMIT ./regen_doc.sh osmo-cbc 4264 \ + "$MANUAL_DIR/chapters/counters_generated.adoc" \ + "$MANUAL_DIR/vty/cbc_vty_reference.xml" diff --git a/doc/manuals/vty/cbc_vty_additions.xml b/doc/manuals/vty/cbc_vty_additions.xml new file mode 100644 index 0000000..b27bb7d --- /dev/null +++ b/doc/manuals/vty/cbc_vty_additions.xml @@ -0,0 +1,18 @@ + + + This node allows to configure the CBC. Will enter the CBC specific VTY configuration node. + + + Configure a CBC RAN peer (BSC, ...). Will enter a sub-node where parameters about that peer can be configured. The NAME has local significance only (for VTY and logging). + + + + + Whether or not the CBC should accept incoming CBSP/TCP connections from unknown peers, i.e. such peers that don't have an explicit 'peer' configuration. + + + + + This node allows to configure one CBC RAN peer (BSC, ...) + + diff --git a/src/cbc_main.c b/src/cbc_main.c index 77020db..06969e7 100644 --- a/src/cbc_main.c +++ b/src/cbc_main.c @@ -74,7 +74,7 @@ }; static const char cbc_copyright[] = - "Copyright (C) 2019 by Harald Welte \r\n" + "Copyright (C) 2019-2021 by Harald Welte \r\n" "License AGPLv3+: GNU Affero GPL Version 3 or later \r\n" "This is free software: you are free ot change and redistribute it.\r\n" "There is NO WARRANTY, to the extent permitted by law.\r\n\r\n" @@ -98,18 +98,54 @@ static void print_help(void) { - /* FIXME */ + printf("Supported options:\n"); + printf(" -h --help This text.\n"); + printf(" -D --daemonize Fork the process into a background daemon.\n"); + printf(" -c --config-file filename The config file to use.\n"); + printf(" -V --version Print the version of OsmoMSC.\n"); + + printf("\nVTY reference generation:\n"); + printf(" --vty-ref-mode MODE VTY reference generation mode (e.g. 'expert').\n"); + printf(" --vty-ref-xml Generate the VTY reference XML output and exit.\n"); +} + +static void handle_long_options(const char *prog_name, const int long_option) +{ + static int vty_ref_mode = VTY_REF_GEN_MODE_DEFAULT; + + switch (long_option) { + case 1: + vty_ref_mode = get_string_value(vty_ref_gen_mode_names, optarg); + if (vty_ref_mode < 0) { + fprintf(stderr, "%s: Unknown VTY reference generation " + "mode '%s'\n", prog_name, optarg); + exit(2); + } + break; + case 2: + fprintf(stderr, "Generating the VTY reference in mode '%s' (%s)\n", + get_value_string(vty_ref_gen_mode_names, vty_ref_mode), + get_value_string(vty_ref_gen_mode_desc, vty_ref_mode)); + vty_dump_xml_ref_mode(stdout, (enum vty_ref_gen_mode) vty_ref_mode); + exit(0); + default: + fprintf(stderr, "%s: error parsing cmdline options\n", prog_name); + exit(2); + } } static void handle_options(int argc, char **argv) { while (1) { int option_index = 0, c; + static int long_option = 0; static const struct option long_options[] = { { "help", 0, 0, 'h' }, { "daemonize", 0, 0, 'D' }, { "config-file", 1, 0, 'c' }, { "version", 0, 0, 'V' }, + { "vty-ref-mode", 1, &long_option, 1}, + { "vty-ref-xml", 0, &long_option, 2}, { NULL, 0, 0, 0 } }; @@ -122,6 +158,9 @@ print_help(); exit(0); break; + case 0: + handle_long_options(argv[0], long_option); + break; case 'D': cmdline_config.daemonize = true; break; -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22005 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: Idf49d7fcee2b11638945baa25064273a7e5e5e61 Gerrit-Change-Number: 22005 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 17:52:13 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 6 Jan 2021 17:52:13 +0000 Subject: Change in osmo-cbc[master]: Major Documentation update In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-cbc/+/22005 to look at the new patch set (#2). Change subject: Major Documentation update ...................................................................... Major Documentation update * add command line help * add basic user manual * add vty reference manual * install example configuration Change-Id: Idf49d7fcee2b11638945baa25064273a7e5e5e61 --- M .gitignore M Makefile.am M configure.ac M contrib/jenkins.sh A doc/Makefile.am A doc/examples/Makefile.am R doc/examples/osmo-cbc/osmo-cbc.cfg A doc/manuals/Makefile.am A doc/manuals/chapters/counters.adoc A doc/manuals/chapters/overview.adoc A doc/manuals/chapters/running.adoc A doc/manuals/osmocbc-usermanual-docinfo.xml A doc/manuals/osmocbc-usermanual.adoc A doc/manuals/osmocbc-vty-reference.xml A doc/manuals/regen_doc.sh A doc/manuals/vty/cbc_vty_additions.xml M src/cbc_main.c 17 files changed, 356 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-cbc refs/changes/05/22005/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22005 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: Idf49d7fcee2b11638945baa25064273a7e5e5e61 Gerrit-Change-Number: 22005 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 17:52:14 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 6 Jan 2021 17:52:14 +0000 Subject: Change in osmo-cbc[master]: Debian packaging for osmo-cbc References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22006 ) Change subject: Debian packaging for osmo-cbc ...................................................................... Debian packaging for osmo-cbc Change-Id: Ieaee1537fca0942cd8e8f8da6620a1b8451a8889 --- A debian/changelog A debian/compat A debian/control A debian/osmo-cbc-doc.install A debian/osmo-cbc.install A debian/rules 6 files changed, 121 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-cbc refs/changes/06/22006/1 diff --git a/debian/changelog b/debian/changelog new file mode 100644 index 0000000..4ccda63 --- /dev/null +++ b/debian/changelog @@ -0,0 +1,5 @@ +osmo-cbc (0.1) UNRELEASED; urgency=medium + + * Initial release. + + -- Harald Welte Wed, 06 Jan 2021 12:13:12 +0100 diff --git a/debian/compat b/debian/compat new file mode 100644 index 0000000..ec63514 --- /dev/null +++ b/debian/compat @@ -0,0 +1 @@ +9 diff --git a/debian/control b/debian/control new file mode 100644 index 0000000..f2c7c7f --- /dev/null +++ b/debian/control @@ -0,0 +1,44 @@ +Source: osmo-cbc +Section: net +Priority: extra +Maintainer: Osmocom team +Build-Depends: debhelper (>=9), + dh-autoreconf, + autotools-dev, + autoconf, + automake, + libtool, + pkg-config, + python3-minimal, + libtalloc-dev, + libosmocore-dev, + libosmo-netif-dev, + libulfius-dev, + libjansson-dev, + osmo-gsm-manuals-dev +Standards-Version: 3.9.8 +Vcs-Git: git://git.osmocom.org/osmo-cbc.git +Vcs-Browser: https://git.osmocom.org/osmo-cbc/ +Homepage: https://projects.osmocom.org/projects/osmo-cbc + +Package: osmo-cbc +Architecture: any +Multi-Arch: foreign +Depends: ${misc:Depends}, ${shlibs:Depends} +Description: OsmoCBC: Osmocom's Cell Broadcast Center + +Package: osmo-cbc-dbg +Section: debug +Architecture: any +Multi-Arch: same +Depends: osmo-cbc (= ${binary:Version}), ${misc:Depends} +Description: OsmoCBC: Osmocom's Cell Broadcast Center + +Package: osmo-cbc-doc +Architecture: all +Section: doc +Priority: optional +Depends: ${misc:Depends} +Description: ${misc:Package} PDF documentation + Various manuals: user manual, VTY reference manual and/or + protocol/interface manuals. diff --git a/debian/osmo-cbc-doc.install b/debian/osmo-cbc-doc.install new file mode 100644 index 0000000..4e0a796 --- /dev/null +++ b/debian/osmo-cbc-doc.install @@ -0,0 +1 @@ +usr/share/doc/osmo-cbc-doc/*.pdf diff --git a/debian/osmo-cbc.install b/debian/osmo-cbc.install new file mode 100644 index 0000000..cbe4f22 --- /dev/null +++ b/debian/osmo-cbc.install @@ -0,0 +1,4 @@ +/etc/osmocom/osmo-cbc.cfg +lib/systemd/system/osmo-cbc.service +usr/bin/osmo-cbc +usr/share/doc/osmo-cbc/examples/osmo-cbc/*.cfg usr/share/doc/osmo-bsc/examples` diff --git a/debian/rules b/debian/rules new file mode 100755 index 0000000..c57fa05 --- /dev/null +++ b/debian/rules @@ -0,0 +1,66 @@ +#!/usr/bin/make -f +# You must remove unused comment lines for the released package. +# See debhelper(7) (uncomment to enable) +# This is an autogenerated template for debian/rules. +# +# Output every command that modifies files on the build system. +#export DH_VERBOSE = 1 +# +# Copy some variable definitions from pkg-info.mk and vendor.mk +# under /usr/share/dpkg/ to here if they are useful. +# +# See FEATURE AREAS/ENVIRONMENT in dpkg-buildflags(1) +# Apply all hardening options +#export DEB_BUILD_MAINT_OPTIONS = hardening=+all +# Package maintainers to append CFLAGS +#export DEB_CFLAGS_MAINT_APPEND = -Wall -pedantic +# Package maintainers to append LDFLAGS +#export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed +# +# With debhelper version 9 or newer, the dh command exports +# all buildflags. So there is no need to include the +# /usr/share/dpkg/buildflags.mk file here if compat is 9 or newer. +# +# These are rarely used code. (START) +# +# The following include for *.mk magically sets miscellaneous +# variables while honoring existing values of pertinent +# environment variables: +# +# Architecture-related variables such as DEB_TARGET_MULTIARCH: +#include /usr/share/dpkg/architecture.mk +# Vendor-related variables such as DEB_VENDOR: +#include /usr/share/dpkg/vendor.mk +# Package-related variables such as DEB_DISTRIBUTION +#include /usr/share/dpkg/pkg-info.mk +# +# You may alternatively set them susing a simple script such as: +# DEB_VENDOR ?= $(shell dpkg-vendor --query Vendor) +# +# These are rarely used code. (END) +# + +# main packaging script based on dh7 syntax +%: + dh $@ --with autoreconf + +# debmake generated override targets +CONFIGURE_FLAGS += --with-systemdsystemunitdir=/lib/systemd/system --enable-manuals +override_dh_auto_configure: + dh_auto_configure -- $(CONFIGURE_FLAGS) +# +# Do not install libtool archive, python .pyc .pyo +#override_dh_install: +# dh_install --list-missing -X.la -X.pyc -X.pyo + +# See https://www.debian.org/doc/manuals/developers-reference/best-pkging-practices.html#bpp-dbg +override_dh_strip: + dh_strip -posmo-cbc --dbg-package=osmo-cbc-dbg + +# Print test results in case of a failure +override_dh_auto_test: + dh_auto_test || (find . -name testsuite.log -exec cat {} \; ; false) + +# Don't create .pdf.gz files (barely saves space and they can't be opened directly by most pdf readers) +override_dh_compress: + dh_compress -X.pdf -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22006 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: Ieaee1537fca0942cd8e8f8da6620a1b8451a8889 Gerrit-Change-Number: 22006 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 17:55:46 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 6 Jan 2021 17:55:46 +0000 Subject: Change in osmo-cbc[master]: Major Documentation update In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-cbc/+/22005 to look at the new patch set (#3). Change subject: Major Documentation update ...................................................................... Major Documentation update * add command line help * add basic user manual * add vty reference manual * install example configuration Change-Id: Idf49d7fcee2b11638945baa25064273a7e5e5e61 --- M .gitignore M Makefile.am M configure.ac M contrib/jenkins.sh A doc/Makefile.am A doc/examples/Makefile.am R doc/examples/osmo-cbc/osmo-cbc.cfg A doc/manuals/Makefile.am A doc/manuals/chapters/counters.adoc A doc/manuals/chapters/overview.adoc A doc/manuals/chapters/running.adoc A doc/manuals/osmocbc-usermanual-docinfo.xml A doc/manuals/osmocbc-usermanual.adoc A doc/manuals/osmocbc-vty-reference.xml A doc/manuals/regen_doc.sh A doc/manuals/vty/cbc_vty_additions.xml M src/cbc_main.c 17 files changed, 355 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-cbc refs/changes/05/22005/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22005 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: Idf49d7fcee2b11638945baa25064273a7e5e5e61 Gerrit-Change-Number: 22005 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 17:56:43 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 6 Jan 2021 17:56:43 +0000 Subject: Change in libosmocore[master]: gsm_08_18: add struct to parse RIM PDU Indications In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21861 ) Change subject: gsm_08_18: add struct to parse RIM PDU Indications ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21861 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I781ab838bd02ac1b13d384ce3f4259e26cedb61e Gerrit-Change-Number: 21861 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 06 Jan 2021 17:56:43 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 17:56:45 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 6 Jan 2021 17:56:45 +0000 Subject: Change in libosmocore[master]: gsm_08_18: add struct to parse RIM PDU Indications In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21861 ) Change subject: gsm_08_18: add struct to parse RIM PDU Indications ...................................................................... gsm_08_18: add struct to parse RIM PDU Indications 3GPP TS 48.018, section 11.3.65 describes an IE to transfer some control flags via a RIM container. The IE is essentially just a bitfield, so it can be parsed by overlaying it with a C-struct. Lets add an appropiate struct to protocol/gsm_08_18.h Change-Id: I781ab838bd02ac1b13d384ce3f4259e26cedb61e Related: SYS#5103 --- M include/osmocom/gprs/protocol/gsm_08_18.h 1 file changed, 22 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/include/osmocom/gprs/protocol/gsm_08_18.h b/include/osmocom/gprs/protocol/gsm_08_18.h index 466b0c5..c10c244 100644 --- a/include/osmocom/gprs/protocol/gsm_08_18.h +++ b/include/osmocom/gprs/protocol/gsm_08_18.h @@ -349,3 +349,25 @@ BSSGP_FC_GRAN_10000 = 2, BSSGP_FC_GRAN_100000 = 3, }; + +/* RAN-INFORMATION-REQUEST PDU Type Extension + * 3GPP TS 48.018, table 11.3.65.1 */ +enum bssgp_rim_pdu_type { + RIM_PDU_TYPE_STOP = 0, + RIM_PDU_TYPE_SING_REP = 1, + RIM_PDU_TYPE_MULT_REP = 2, +}; + +/* RIM PDU Indications + * 3GPP TS 48.018, section 11.3.65.0 */ +struct bssgp_rim_pdu_ind { +#if OSMO_IS_BIG_ENDIAN + uint8_t reserved:4, + pdu_type_ext:3, + ack_requested:1; +#elif OSMO_IS_LITTLE_ENDIAN + uint8_t ack_requested:1, + pdu_type_ext:3, + reserved:4; +#endif +} __attribute__ ((packed)); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21861 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I781ab838bd02ac1b13d384ce3f4259e26cedb61e Gerrit-Change-Number: 21861 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 17:59:21 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 6 Jan 2021 17:59:21 +0000 Subject: Change in osmo-cbc[master]: Major Documentation update In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-cbc/+/22005 to look at the new patch set (#4). Change subject: Major Documentation update ...................................................................... Major Documentation update * add command line help * add basic user manual * add vty reference manual * install example configuration Change-Id: Idf49d7fcee2b11638945baa25064273a7e5e5e61 --- M .gitignore M Makefile.am M configure.ac M contrib/jenkins.sh A doc/Makefile.am A doc/examples/Makefile.am R doc/examples/osmo-cbc/osmo-cbc.cfg A doc/manuals/Makefile.am A doc/manuals/chapters/counters.adoc A doc/manuals/chapters/overview.adoc A doc/manuals/chapters/running.adoc A doc/manuals/osmocbc-usermanual-docinfo.xml A doc/manuals/osmocbc-usermanual.adoc A doc/manuals/osmocbc-vty-reference.xml A doc/manuals/regen_doc.sh A doc/manuals/vty/cbc_vty_additions.xml M src/cbc_main.c 17 files changed, 355 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-cbc refs/changes/05/22005/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22005 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: Idf49d7fcee2b11638945baa25064273a7e5e5e61 Gerrit-Change-Number: 22005 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 18:02:05 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 6 Jan 2021 18:02:05 +0000 Subject: Change in osmo-cbc[master]: Major Documentation update In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22005 ) Change subject: Major Documentation update ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22005 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: Idf49d7fcee2b11638945baa25064273a7e5e5e61 Gerrit-Change-Number: 22005 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 06 Jan 2021 18:02:05 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 18:02:07 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 6 Jan 2021 18:02:07 +0000 Subject: Change in osmo-cbc[master]: Debian packaging for osmo-cbc In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22006 ) Change subject: Debian packaging for osmo-cbc ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22006 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: Ieaee1537fca0942cd8e8f8da6620a1b8451a8889 Gerrit-Change-Number: 22006 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 06 Jan 2021 18:02:07 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 18:02:10 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 6 Jan 2021 18:02:10 +0000 Subject: Change in osmo-cbc[master]: Major Documentation update In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22005 ) Change subject: Major Documentation update ...................................................................... Major Documentation update * add command line help * add basic user manual * add vty reference manual * install example configuration Change-Id: Idf49d7fcee2b11638945baa25064273a7e5e5e61 --- M .gitignore M Makefile.am M configure.ac M contrib/jenkins.sh A doc/Makefile.am A doc/examples/Makefile.am R doc/examples/osmo-cbc/osmo-cbc.cfg A doc/manuals/Makefile.am A doc/manuals/chapters/counters.adoc A doc/manuals/chapters/overview.adoc A doc/manuals/chapters/running.adoc A doc/manuals/osmocbc-usermanual-docinfo.xml A doc/manuals/osmocbc-usermanual.adoc A doc/manuals/osmocbc-vty-reference.xml A doc/manuals/regen_doc.sh A doc/manuals/vty/cbc_vty_additions.xml M src/cbc_main.c 17 files changed, 355 insertions(+), 8 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/.gitignore b/.gitignore index e01642c..925f48d 100644 --- a/.gitignore +++ b/.gitignore @@ -54,6 +54,7 @@ doc/manuals/*__*.png doc/manuals/*.check doc/manuals/generated/ -doc/manuals/osmomsc-usermanual.xml +doc/manuals/osmobsc-usermanual.xml doc/manuals/common doc/manuals/build +doc/manuals/vty/cbc_vty_reference.xml diff --git a/Makefile.am b/Makefile.am index 6e0fa11..d292296 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,9 +1,9 @@ AUTOMAKE_OPTIONS = foreign dist-bzip2 1.6 AM_CPPFLAGS = $(all_includes) -I$(top_srcdir)/include -SUBDIRS = src tests contrib +SUBDIRS = src doc contrib tests -EXTRA_DIST = .version git-version-gen doc/examples/osmo-cbc.cfg +EXTRA_DIST = .version git-version-gen AM_DISTCHECK_CONFIGURE_FLAGS = \ --with-systemdsystemunitdir=$$dc_install_base/$(systemdsystemunitdir) diff --git a/configure.ac b/configure.ac index 566f8c4..342eb84 100644 --- a/configure.ac +++ b/configure.ac @@ -169,5 +169,8 @@ src/Makefile contrib/Makefile tests/Makefile + doc/Makefile + doc/examples/Makefile + doc/manuals/Makefile contrib/systemd/Makefile Makefile) diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index ed73b09..e9b976b 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -55,8 +55,8 @@ $MAKE distcheck \ || cat-testlogs.sh -#if [ "$WITH_MANUALS" = "1" ] && [ "$PUBLISH" = "1" ]; then -# make -C "$base/doc/manuals" publish -#fi +if [ "$WITH_MANUALS" = "1" ] && [ "$PUBLISH" = "1" ]; then + make -C "$base/doc/manuals" publish +fi osmo-clean-workspace.sh diff --git a/doc/Makefile.am b/doc/Makefile.am new file mode 100644 index 0000000..3cb405e --- /dev/null +++ b/doc/Makefile.am @@ -0,0 +1,4 @@ +SUBDIRS = \ + examples \ + manuals \ + $(NULL) diff --git a/doc/examples/Makefile.am b/doc/examples/Makefile.am new file mode 100644 index 0000000..7237c1d --- /dev/null +++ b/doc/examples/Makefile.am @@ -0,0 +1,30 @@ +OSMOCONF_FILES = \ + osmo-cbc/osmo-cbc.cfg + +osmoconfdir = $(sysconfdir)/osmocom +osmoconf_DATA = $(OSMOCONF_FILES) + +EXTRA_DIST = $(OSMOCONF_FILES) + +CFG_FILES = find $(srcdir) -name '*.cfg*' | sed -e 's,^$(srcdir),,' + +dist-hook: + for f in $$($(CFG_FILES)); do \ + j="$(distdir)/$$f" && \ + mkdir -p "$$(dirname $$j)" && \ + $(INSTALL_DATA) $(srcdir)/$$f $$j; \ + done + +install-data-hook: + for f in $$($(CFG_FILES)); do \ + j="$(DESTDIR)$(docdir)/examples/$$f" && \ + mkdir -p "$$(dirname $$j)" && \ + $(INSTALL_DATA) $(srcdir)/$$f $$j; \ + done + +uninstall-hook: + @$(PRE_UNINSTALL) + for f in $$($(CFG_FILES)); do \ + j="$(DESTDIR)$(docdir)/examples/$$f" && \ + $(RM) $$j; \ + done diff --git a/doc/examples/osmo-cbc.cfg b/doc/examples/osmo-cbc/osmo-cbc.cfg similarity index 100% rename from doc/examples/osmo-cbc.cfg rename to doc/examples/osmo-cbc/osmo-cbc.cfg diff --git a/doc/manuals/Makefile.am b/doc/manuals/Makefile.am new file mode 100644 index 0000000..ef90e2b --- /dev/null +++ b/doc/manuals/Makefile.am @@ -0,0 +1,23 @@ +EXTRA_DIST = osmocbc-usermanual.adoc \ + osmocbc-usermanual-docinfo.xml \ + osmocbc-vty-reference.xml \ + regen_doc.sh \ + chapters \ + vty + +if BUILD_MANUALS + ASCIIDOC = osmocbc-usermanual.adoc + ASCIIDOC_DEPS = $(srcdir)/chapters/*.adoc + include $(OSMO_GSM_MANUALS_DIR)/build/Makefile.asciidoc.inc + + VTY_REFERENCE = osmocbc-vty-reference.xml + include $(OSMO_GSM_MANUALS_DIR)/build/Makefile.vty-reference.inc + + BUILT_REFERENCE_XML = $(builddir)/vty/cbc_vty_reference.xml + $(builddir)/vty/cbc_vty_reference.xml: $(top_builddir)/src/osmo-cbc + mkdir -p $(builddir)/vty + $(top_builddir)/src/osmo-cbc --vty-ref-xml > $@ + + OSMO_REPOSITORY = osmo-cbc + include $(OSMO_GSM_MANUALS_DIR)/build/Makefile.common.inc +endif diff --git a/doc/manuals/chapters/counters.adoc b/doc/manuals/chapters/counters.adoc new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/doc/manuals/chapters/counters.adoc diff --git a/doc/manuals/chapters/overview.adoc b/doc/manuals/chapters/overview.adoc new file mode 100644 index 0000000..2077878 --- /dev/null +++ b/doc/manuals/chapters/overview.adoc @@ -0,0 +1,77 @@ +[[overview]] +== OsmoCBC Overview + +=== The 3GPP Cell Broadcast Centre + +Within the 3GPP cellular network, the Cell Broadcast Centre is the central +instance for managing all Cell Broadcast and Emergency Warning functions. + +It acts as a gateway between external applications / users, such as government +authorities for civil protection, and the various components within the 3GPP +network to actually deliver those broadcast and/or emergency messages. + +[[about]] +=== About OsmoCBC + +OsmoCBC is the Osmocom implementation of a Cellular Broadcast Centre (CBC). It +implements: + +- the BSC-CBC interface using the CBSP protocol +- a HTTP/JSON/RESTful interface for external applications +- a telnet-based command line interface for configuration and introspection called VTY + +OsmoCBC provides mainly the following functionality: + +- establishing communication with the various Radio Access Network elements such as BSCs within the network +- receiving requests to start or remove CBS and ETWS messages from external applications +- distributing the CBS and/or ETWS messages +has connection with the various RANs of the 3GPP cellular network + +Future versions of OsmoCBC are expected to contain the RNC-CBC interface +with the SABP protocol, as well as the MME-CBC interface using the SBcAP +protocol. Should you be interested in contributing to this effort, +please contact the author of this document. + +=== CBSP implementation + +CBSP is a Layer 5 protocol operating on top of TCP/IP, established +between the CBC and the various BSCs of a cellular network. + +According to 3GPP, the CBSP is typically established from the CBC to the +BSC. This means that the CBSP operates as TCP client and the BSCs +operate as TCP servers. The disadvantage of this is that it requires +the CBC to have out-of-band, prior knowledge about all the BSCs in the +network, as well as their IP addresses. + +OsmoCBC also supports a slightly modified mode of operation, where the +CBC operates as TCP server, and the BSCs as TCP clients. This means +that all BSCs need to know the IP address of the CBC. In this situation, +the CBC doesn't need to know each and every BSC in the network. It +simply only accepts incoming CBSP connections. + + +=== REST interface + +The REST interface is specified in the JSON schema files +`cbc.schema.json` and `smscb.schema.json`, which are part of the OsmoCBC +distribution. + +The REST interface currently binds to TCP port 12345 (on INADRR_ANY) and +can be reached at http://localhost:1234/api/ecbe/v1" + +NOTE:: It is your responsibility to properly secure access to the REST +interface endpoint to ensure only legitimate users can access it. This +may be achieved via packet filtering and a reverse HTTP proxy. + +==== POST /api/ecbe/v1/message + +This command is used to create a new SMSCB or ETWS message inside the CBC. +The `cbc_messsage` type as specified in the JSON schema. + +==== DELETE /api/ecbe/v1/message/:message_id + +This command is used to delete an existing SMSCB or ETWS message from the CBC. + +The `:message_id` parameter is the decimal integer representation of the +cbc_message.smscb.message_id that was specified when creating the +message via the POST command stated above. diff --git a/doc/manuals/chapters/running.adoc b/doc/manuals/chapters/running.adoc new file mode 100644 index 0000000..5cbe873 --- /dev/null +++ b/doc/manuals/chapters/running.adoc @@ -0,0 +1,21 @@ +== Running OsmoCBC + +The OsmoCBC executable (`osmo-cbc`) offers the following command-line +arguments: + +=== SYNOPSIS + +*osmo-cbc* [-h|-V] [-D] [-c 'CONFIGFILE'] + +=== OPTIONS + +*-h, --help*:: + Print a short help message about the supported options. +*-V, --version*:: + Print the compile-time version number of the program. +*-D, --daemonize*:: + Fork the process as a daemon into background. +*-c, --config-file 'CONFIGFILE'*:: + Specify the file and path name of the configuration file to be + used. If none is specified, use `osmo-bsc.cfg` in the current + working directory. diff --git a/doc/manuals/osmocbc-usermanual-docinfo.xml b/doc/manuals/osmocbc-usermanual-docinfo.xml new file mode 100644 index 0000000..528635c --- /dev/null +++ b/doc/manuals/osmocbc-usermanual-docinfo.xml @@ -0,0 +1,47 @@ + + + 1 + January 4th, 2021 + HW + + Initial version + + + + + + + Harald + Welte + hwelte at sysmocom.de + HW + + sysmocom + sysmocom - s.f.m.c. GmbH + Managing Director + + + + + + 2021 + sysmocom - s.f.m.c. GmbH + + + + + Permission is granted to copy, distribute and/or modify this + document under the terms of the GNU Free Documentation License, + Version 1.3 or any later version published by the Free Software + Foundation; with the Invariant Sections being just 'Foreword', + 'Acknowledgements' and 'Preface', with no Front-Cover Texts, + and no Back-Cover Texts. A copy of the license is included in + the section entitled "GNU Free Documentation License". + + + The Asciidoc source code of this manual can be found at + + http://git.osmocom.org/osmo-gsm-manuals/ + + + diff --git a/doc/manuals/osmocbc-usermanual.adoc b/doc/manuals/osmocbc-usermanual.adoc new file mode 100644 index 0000000..391a9f1 --- /dev/null +++ b/doc/manuals/osmocbc-usermanual.adoc @@ -0,0 +1,29 @@ +:gfdl-enabled: +:program-name: OsmoCBC + +OsmoCBC User Manual +==================== +Harald Welte + + +include::./common/chapters/preface.adoc[] + +include::{srcdir}/chapters/overview.adoc[] + +include::{srcdir}/chapters/running.adoc[] + +include::./common/chapters/counters-overview.adoc[] + +include::{srcdir}/chapters/counters.adoc[] + +include::./common/chapters/vty.adoc[] + +include::./common/chapters/logging.adoc[] + +include::./common/chapters/port_numbers.adoc[] + +include::./common/chapters/bibliography.adoc[] + +include::./common/chapters/glossary.adoc[] + +include::./common/chapters/gfdl.adoc[] diff --git a/doc/manuals/osmocbc-vty-reference.xml b/doc/manuals/osmocbc-vty-reference.xml new file mode 100644 index 0000000..8e05aee --- /dev/null +++ b/doc/manuals/osmocbc-vty-reference.xml @@ -0,0 +1,38 @@ + + + + +]> + + + + + + v1 + 6th January 2021 + hw + Initial + + + + OsmoCBC VTY Reference + + + 2021 + + + + This work is copyright by sysmocom - s.f.m.c. GmbH. All rights reserved. + + + + + + &chapter-vty; + + diff --git a/doc/manuals/regen_doc.sh b/doc/manuals/regen_doc.sh new file mode 100755 index 0000000..c2a5d4c --- /dev/null +++ b/doc/manuals/regen_doc.sh @@ -0,0 +1,17 @@ +#!/bin/sh -x + +if [ -z "$DOCKER_PLAYGROUND" ]; then + echo "You need to set DOCKER_PLAYGROUND" + exit 1 +fi + +SCRIPT=$(realpath "$0") +MANUAL_DIR=$(dirname "$SCRIPT") + +COMMIT=${COMMIT:-$(git log -1 --format=format:%H)} + +cd "$DOCKER_PLAYGROUND/scripts" || exit 1 + +OSMO_CBC_BRANCH=$COMMIT ./regen_doc.sh osmo-cbc 4264 \ + "$MANUAL_DIR/chapters/counters_generated.adoc" \ + "$MANUAL_DIR/vty/cbc_vty_reference.xml" diff --git a/doc/manuals/vty/cbc_vty_additions.xml b/doc/manuals/vty/cbc_vty_additions.xml new file mode 100644 index 0000000..b27bb7d --- /dev/null +++ b/doc/manuals/vty/cbc_vty_additions.xml @@ -0,0 +1,18 @@ + + + This node allows to configure the CBC. Will enter the CBC specific VTY configuration node. + + + Configure a CBC RAN peer (BSC, ...). Will enter a sub-node where parameters about that peer can be configured. The NAME has local significance only (for VTY and logging). + + + + + Whether or not the CBC should accept incoming CBSP/TCP connections from unknown peers, i.e. such peers that don't have an explicit 'peer' configuration. + + + + + This node allows to configure one CBC RAN peer (BSC, ...) + + diff --git a/src/cbc_main.c b/src/cbc_main.c index 77020db..06969e7 100644 --- a/src/cbc_main.c +++ b/src/cbc_main.c @@ -74,7 +74,7 @@ }; static const char cbc_copyright[] = - "Copyright (C) 2019 by Harald Welte \r\n" + "Copyright (C) 2019-2021 by Harald Welte \r\n" "License AGPLv3+: GNU Affero GPL Version 3 or later \r\n" "This is free software: you are free ot change and redistribute it.\r\n" "There is NO WARRANTY, to the extent permitted by law.\r\n\r\n" @@ -98,18 +98,54 @@ static void print_help(void) { - /* FIXME */ + printf("Supported options:\n"); + printf(" -h --help This text.\n"); + printf(" -D --daemonize Fork the process into a background daemon.\n"); + printf(" -c --config-file filename The config file to use.\n"); + printf(" -V --version Print the version of OsmoMSC.\n"); + + printf("\nVTY reference generation:\n"); + printf(" --vty-ref-mode MODE VTY reference generation mode (e.g. 'expert').\n"); + printf(" --vty-ref-xml Generate the VTY reference XML output and exit.\n"); +} + +static void handle_long_options(const char *prog_name, const int long_option) +{ + static int vty_ref_mode = VTY_REF_GEN_MODE_DEFAULT; + + switch (long_option) { + case 1: + vty_ref_mode = get_string_value(vty_ref_gen_mode_names, optarg); + if (vty_ref_mode < 0) { + fprintf(stderr, "%s: Unknown VTY reference generation " + "mode '%s'\n", prog_name, optarg); + exit(2); + } + break; + case 2: + fprintf(stderr, "Generating the VTY reference in mode '%s' (%s)\n", + get_value_string(vty_ref_gen_mode_names, vty_ref_mode), + get_value_string(vty_ref_gen_mode_desc, vty_ref_mode)); + vty_dump_xml_ref_mode(stdout, (enum vty_ref_gen_mode) vty_ref_mode); + exit(0); + default: + fprintf(stderr, "%s: error parsing cmdline options\n", prog_name); + exit(2); + } } static void handle_options(int argc, char **argv) { while (1) { int option_index = 0, c; + static int long_option = 0; static const struct option long_options[] = { { "help", 0, 0, 'h' }, { "daemonize", 0, 0, 'D' }, { "config-file", 1, 0, 'c' }, { "version", 0, 0, 'V' }, + { "vty-ref-mode", 1, &long_option, 1}, + { "vty-ref-xml", 0, &long_option, 2}, { NULL, 0, 0, 0 } }; @@ -122,6 +158,9 @@ print_help(); exit(0); break; + case 0: + handle_long_options(argv[0], long_option); + break; case 'D': cmdline_config.daemonize = true; break; -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22005 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: Idf49d7fcee2b11638945baa25064273a7e5e5e61 Gerrit-Change-Number: 22005 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 18:02:10 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 6 Jan 2021 18:02:10 +0000 Subject: Change in osmo-cbc[master]: Debian packaging for osmo-cbc In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22006 ) Change subject: Debian packaging for osmo-cbc ...................................................................... Debian packaging for osmo-cbc Change-Id: Ieaee1537fca0942cd8e8f8da6620a1b8451a8889 --- A debian/changelog A debian/compat A debian/control A debian/osmo-cbc-doc.install A debian/osmo-cbc.install A debian/rules 6 files changed, 121 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/debian/changelog b/debian/changelog new file mode 100644 index 0000000..4ccda63 --- /dev/null +++ b/debian/changelog @@ -0,0 +1,5 @@ +osmo-cbc (0.1) UNRELEASED; urgency=medium + + * Initial release. + + -- Harald Welte Wed, 06 Jan 2021 12:13:12 +0100 diff --git a/debian/compat b/debian/compat new file mode 100644 index 0000000..ec63514 --- /dev/null +++ b/debian/compat @@ -0,0 +1 @@ +9 diff --git a/debian/control b/debian/control new file mode 100644 index 0000000..f2c7c7f --- /dev/null +++ b/debian/control @@ -0,0 +1,44 @@ +Source: osmo-cbc +Section: net +Priority: extra +Maintainer: Osmocom team +Build-Depends: debhelper (>=9), + dh-autoreconf, + autotools-dev, + autoconf, + automake, + libtool, + pkg-config, + python3-minimal, + libtalloc-dev, + libosmocore-dev, + libosmo-netif-dev, + libulfius-dev, + libjansson-dev, + osmo-gsm-manuals-dev +Standards-Version: 3.9.8 +Vcs-Git: git://git.osmocom.org/osmo-cbc.git +Vcs-Browser: https://git.osmocom.org/osmo-cbc/ +Homepage: https://projects.osmocom.org/projects/osmo-cbc + +Package: osmo-cbc +Architecture: any +Multi-Arch: foreign +Depends: ${misc:Depends}, ${shlibs:Depends} +Description: OsmoCBC: Osmocom's Cell Broadcast Center + +Package: osmo-cbc-dbg +Section: debug +Architecture: any +Multi-Arch: same +Depends: osmo-cbc (= ${binary:Version}), ${misc:Depends} +Description: OsmoCBC: Osmocom's Cell Broadcast Center + +Package: osmo-cbc-doc +Architecture: all +Section: doc +Priority: optional +Depends: ${misc:Depends} +Description: ${misc:Package} PDF documentation + Various manuals: user manual, VTY reference manual and/or + protocol/interface manuals. diff --git a/debian/osmo-cbc-doc.install b/debian/osmo-cbc-doc.install new file mode 100644 index 0000000..4e0a796 --- /dev/null +++ b/debian/osmo-cbc-doc.install @@ -0,0 +1 @@ +usr/share/doc/osmo-cbc-doc/*.pdf diff --git a/debian/osmo-cbc.install b/debian/osmo-cbc.install new file mode 100644 index 0000000..cbe4f22 --- /dev/null +++ b/debian/osmo-cbc.install @@ -0,0 +1,4 @@ +/etc/osmocom/osmo-cbc.cfg +lib/systemd/system/osmo-cbc.service +usr/bin/osmo-cbc +usr/share/doc/osmo-cbc/examples/osmo-cbc/*.cfg usr/share/doc/osmo-bsc/examples` diff --git a/debian/rules b/debian/rules new file mode 100755 index 0000000..c57fa05 --- /dev/null +++ b/debian/rules @@ -0,0 +1,66 @@ +#!/usr/bin/make -f +# You must remove unused comment lines for the released package. +# See debhelper(7) (uncomment to enable) +# This is an autogenerated template for debian/rules. +# +# Output every command that modifies files on the build system. +#export DH_VERBOSE = 1 +# +# Copy some variable definitions from pkg-info.mk and vendor.mk +# under /usr/share/dpkg/ to here if they are useful. +# +# See FEATURE AREAS/ENVIRONMENT in dpkg-buildflags(1) +# Apply all hardening options +#export DEB_BUILD_MAINT_OPTIONS = hardening=+all +# Package maintainers to append CFLAGS +#export DEB_CFLAGS_MAINT_APPEND = -Wall -pedantic +# Package maintainers to append LDFLAGS +#export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed +# +# With debhelper version 9 or newer, the dh command exports +# all buildflags. So there is no need to include the +# /usr/share/dpkg/buildflags.mk file here if compat is 9 or newer. +# +# These are rarely used code. (START) +# +# The following include for *.mk magically sets miscellaneous +# variables while honoring existing values of pertinent +# environment variables: +# +# Architecture-related variables such as DEB_TARGET_MULTIARCH: +#include /usr/share/dpkg/architecture.mk +# Vendor-related variables such as DEB_VENDOR: +#include /usr/share/dpkg/vendor.mk +# Package-related variables such as DEB_DISTRIBUTION +#include /usr/share/dpkg/pkg-info.mk +# +# You may alternatively set them susing a simple script such as: +# DEB_VENDOR ?= $(shell dpkg-vendor --query Vendor) +# +# These are rarely used code. (END) +# + +# main packaging script based on dh7 syntax +%: + dh $@ --with autoreconf + +# debmake generated override targets +CONFIGURE_FLAGS += --with-systemdsystemunitdir=/lib/systemd/system --enable-manuals +override_dh_auto_configure: + dh_auto_configure -- $(CONFIGURE_FLAGS) +# +# Do not install libtool archive, python .pyc .pyo +#override_dh_install: +# dh_install --list-missing -X.la -X.pyc -X.pyo + +# See https://www.debian.org/doc/manuals/developers-reference/best-pkging-practices.html#bpp-dbg +override_dh_strip: + dh_strip -posmo-cbc --dbg-package=osmo-cbc-dbg + +# Print test results in case of a failure +override_dh_auto_test: + dh_auto_test || (find . -name testsuite.log -exec cat {} \; ; false) + +# Don't create .pdf.gz files (barely saves space and they can't be opened directly by most pdf readers) +override_dh_compress: + dh_compress -X.pdf -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22006 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: Ieaee1537fca0942cd8e8f8da6620a1b8451a8889 Gerrit-Change-Number: 22006 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 18:02:32 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 6 Jan 2021 18:02:32 +0000 Subject: Change in osmo-ci[master]: nightly-packages: Add osmo-cbc References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/22007 ) Change subject: nightly-packages: Add osmo-cbc ...................................................................... nightly-packages: Add osmo-cbc Change-Id: I73b04f46e7634d8e9bfbc58fcbf3f421db810145 --- M scripts/osmocom-nightly-packages.sh 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/07/22007/1 diff --git a/scripts/osmocom-nightly-packages.sh b/scripts/osmocom-nightly-packages.sh index f24b51e..1d09299 100755 --- a/scripts/osmocom-nightly-packages.sh +++ b/scripts/osmocom-nightly-packages.sh @@ -238,6 +238,7 @@ checkout osmo-uecups checkout osmo-e1d checkout osmo-smlc + checkout osmo-cbc cd "$REPO" osmo_obs_checkout_copy debian8 osmo-gsm-manuals @@ -280,6 +281,7 @@ build osmo-uecups build osmo-e1d build osmo-smlc + build osmo-cbc download_bumpversion -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22007 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I73b04f46e7634d8e9bfbc58fcbf3f421db810145 Gerrit-Change-Number: 22007 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 18:03:03 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 6 Jan 2021 18:03:03 +0000 Subject: Change in osmo-ci[master]: nightly-packages: Add osmo-cbc In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22007 ) Change subject: nightly-packages: Add osmo-cbc ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22007 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I73b04f46e7634d8e9bfbc58fcbf3f421db810145 Gerrit-Change-Number: 22007 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 06 Jan 2021 18:03:03 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 18:07:41 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 6 Jan 2021 18:07:41 +0000 Subject: Change in osmo-ci[master]: nightly-packages: Add osmo-cbc In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22007 ) Change subject: nightly-packages: Add osmo-cbc ...................................................................... nightly-packages: Add osmo-cbc Change-Id: I73b04f46e7634d8e9bfbc58fcbf3f421db810145 --- M scripts/osmocom-nightly-packages.sh 1 file changed, 2 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved; Verified diff --git a/scripts/osmocom-nightly-packages.sh b/scripts/osmocom-nightly-packages.sh index f24b51e..1d09299 100755 --- a/scripts/osmocom-nightly-packages.sh +++ b/scripts/osmocom-nightly-packages.sh @@ -238,6 +238,7 @@ checkout osmo-uecups checkout osmo-e1d checkout osmo-smlc + checkout osmo-cbc cd "$REPO" osmo_obs_checkout_copy debian8 osmo-gsm-manuals @@ -280,6 +281,7 @@ build osmo-uecups build osmo-e1d build osmo-smlc + build osmo-cbc download_bumpversion -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22007 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I73b04f46e7634d8e9bfbc58fcbf3f421db810145 Gerrit-Change-Number: 22007 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 21:14:01 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 6 Jan 2021 21:14:01 +0000 Subject: Change in libosmocore[master]: bssgp_rim: move bssgp_parse_rim_ri and bssgp_create_rim_ri to gprs_bs... In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/21863 to look at the new patch set (#6). Change subject: bssgp_rim: move bssgp_parse_rim_ri and bssgp_create_rim_ri to gprs_bssgp_rim ...................................................................... bssgp_rim: move bssgp_parse_rim_ri and bssgp_create_rim_ri to gprs_bssgp_rim The function bssgp_parse_rim_ri() and bssgp_create_rim_ri() are located in gprs_bssgp.c, since there is now a gprs_bssgp_rim.c module it makes more sense to put them there. Change-Id: Icd667f41d5735de56cd9fb257670337c679dd258 Related: SYS#5103 --- M include/osmocom/gprs/gprs_bssgp.h M include/osmocom/gprs/gprs_bssgp_rim.h M src/gb/gprs_bssgp.c M src/gb/gprs_bssgp_rim.c M tests/gb/gprs_bssgp_rim_test.c M tests/gb/gprs_bssgp_rim_test.ok M tests/gb/gprs_bssgp_test.c M tests/gb/gprs_bssgp_test.ok 8 files changed, 311 insertions(+), 310 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/63/21863/6 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21863 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Icd667f41d5735de56cd9fb257670337c679dd258 Gerrit-Change-Number: 21863 Gerrit-PatchSet: 6 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 21:21:56 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 6 Jan 2021 21:21:56 +0000 Subject: Change in libosmocore[master]: bssgp_rim: add encoder/decoder for NACC related RIM containers In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21862 ) Change subject: bssgp_rim: add encoder/decoder for NACC related RIM containers ...................................................................... Patch Set 6: This change is ready for review. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21862 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ibbc7fd67658e3040c12abb5706fe9d1f31894352 Gerrit-Change-Number: 21862 Gerrit-PatchSet: 6 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 06 Jan 2021 21:21:56 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 21:47:16 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 6 Jan 2021 21:47:16 +0000 Subject: Change in osmo-pcu[master]: bts: fix uninitialized memaccess in BTS::send_gsmtap_rach() References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22008 ) Change subject: bts: fix uninitialized memaccess in BTS::send_gsmtap_rach() ...................................................................... bts: fix uninitialized memaccess in BTS::send_gsmtap_rach() Unfortunately, RACH.ind on the PCU interface contains no Uplink measurements: neiter RSSI nor C/I. In order to avoid sending garbage, let's zero-initialize 'struct pcu_l1_meas'. Change-Id: I8c3210c428da17d23d798f3ef9df941ded6e162a Fixes: CID#216511, CID#216512 --- M src/bts.cpp 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/08/22008/1 diff --git a/src/bts.cpp b/src/bts.cpp index bd0a1d2..87afc9f 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -506,7 +506,7 @@ void BTS::send_gsmtap_rach(enum pcu_gsmtap_category categ, uint8_t channel, const struct rach_ind_params *rip) { - struct pcu_l1_meas meas; + struct pcu_l1_meas meas = { 0 }; uint8_t ra_buf[2]; /* 3GPP TS 44.004 defines 11 bit RA as follows: xxxx xxxx .... .yyy -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22008 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I8c3210c428da17d23d798f3ef9df941ded6e162a Gerrit-Change-Number: 22008 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 21:51:50 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 6 Jan 2021 21:51:50 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: vty: clarify and improve some deprecation messages In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21990 ) Change subject: osmo-bts-trx: vty: clarify and improve some deprecation messages ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21990 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I22b69eccfa50d178bd36bf770f7158ec441c9923 Gerrit-Change-Number: 21990 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 06 Jan 2021 21:51:50 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 21:54:28 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 6 Jan 2021 21:54:28 +0000 Subject: Change in osmo-bts[master]: power_control: vty: deprecate 'uplink-power-control' commands In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21992 ) Change subject: power_control: vty: deprecate 'uplink-power-control' commands ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21992 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Icbd9a7d31ce6723294130a31a179a002fccb4612 Gerrit-Change-Number: 21992 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 06 Jan 2021 21:54:28 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 21:56:41 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 6 Jan 2021 21:56:41 +0000 Subject: Change in osmo-cbc[master]: move from gettid() to pthread_self() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/21996 ) Change subject: move from gettid() to pthread_self() ...................................................................... Patch Set 1: Check osmo-trx.git, grep for "gettid", we have some gettid implementations there, it may be useful to use it here or move that to libosmocore under some "compat" header. -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/21996 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: Ida200de75333e0d35997158000def3cac89759b1 Gerrit-Change-Number: 21996 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 06 Jan 2021 21:56:41 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 21:59:20 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 6 Jan 2021 21:59:20 +0000 Subject: Change in osmo-bts[master]: power_control: vty: re-use cfg_bts_ul_power_target() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21991 ) Change subject: power_control: vty: re-use cfg_bts_ul_power_target() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21991 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I37f51d426fcf008c9d9e933827de70ab7b072a94 Gerrit-Change-Number: 21991 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 06 Jan 2021 21:59:20 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 22:00:45 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 6 Jan 2021 22:00:45 +0000 Subject: Change in osmo-bts[master]: power_control: generalize the arguments of do_pf_ewma() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21907 ) Change subject: power_control: generalize the arguments of do_pf_ewma() ...................................................................... Patch Set 5: iiuc the issue was still not fixed in latest version? -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21907 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I439c00b394da670e314f217b3246cc85ce8213c6 Gerrit-Change-Number: 21907 Gerrit-PatchSet: 5 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 06 Jan 2021 22:00:45 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 22:03:04 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 6 Jan 2021 22:03:04 +0000 Subject: Change in osmo-trx[master]: README update In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/21999 ) Change subject: README update ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/21999 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I4f20ad8666dcc6bbc23d78b40b7c73ddd7e6eacc Gerrit-Change-Number: 21999 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: fixeria Gerrit-Comment-Date: Wed, 06 Jan 2021 22:03:04 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 22:05:48 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 6 Jan 2021 22:05:48 +0000 Subject: Change in osmo-pcap[master]: reformat debian/control for osmo-release.sh compatibility In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcap/+/22003 ) Change subject: reformat debian/control for osmo-release.sh compatibility ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcap/+/22003 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcap Gerrit-Branch: master Gerrit-Change-Id: I8ab9a24af6ac0e4610ecc0eca1d5f5b9e03ad445 Gerrit-Change-Number: 22003 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 06 Jan 2021 22:05:48 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 22:08:06 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 6 Jan 2021 22:08:06 +0000 Subject: Change in libosmocore[master]: bssgp_rim: move bssgp_parse_rim_ri and bssgp_create_rim_ri to gprs_bs... In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21863 ) Change subject: bssgp_rim: move bssgp_parse_rim_ri and bssgp_create_rim_ri to gprs_bssgp_rim ...................................................................... Patch Set 6: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21863 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Icd667f41d5735de56cd9fb257670337c679dd258 Gerrit-Change-Number: 21863 Gerrit-PatchSet: 6 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 06 Jan 2021 22:08:06 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 22:10:23 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 6 Jan 2021 22:10:23 +0000 Subject: Change in osmo-pcu[master]: bts: fix uninitialized memaccess in BTS::send_gsmtap_rach() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22008 ) Change subject: bts: fix uninitialized memaccess in BTS::send_gsmtap_rach() ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-pcu/+/22008/1/src/bts.cpp File src/bts.cpp: https://gerrit.osmocom.org/c/osmo-pcu/+/22008/1/src/bts.cpp at 532 PS1, Line 532: struct pcu_l1_meas meas; This one also probably needs zeroing? Strange, I remember having taken special care trying to find structs which used to be implicitly initialized by c++ struct when I moved it to C. -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22008 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I8c3210c428da17d23d798f3ef9df941ded6e162a Gerrit-Change-Number: 22008 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 06 Jan 2021 22:10:23 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 22:12:31 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 6 Jan 2021 22:12:31 +0000 Subject: Change in osmo-bsc[master]: hodec2: code dup / cosmetics In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21971 ) Change subject: hodec2: code dup / cosmetics ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21971 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I7c32d08e490a88a7f044b0a71dc4b07d748dd572 Gerrit-Change-Number: 21971 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 06 Jan 2021 22:12:31 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 22:14:44 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 6 Jan 2021 22:14:44 +0000 Subject: Change in osmo-bsc[master]: hodec2: clarify current and target rxlev per candidate In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21977 ) Change subject: hodec2: clarify current and target rxlev per candidate ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21977 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ie6c165e17bb3c99eebc967a6bb02529db8bdfc98 Gerrit-Change-Number: 21977 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 06 Jan 2021 22:14:44 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 6 22:15:31 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 6 Jan 2021 22:15:31 +0000 Subject: Change in osmo-bsc[master]: hodec2: cosmetic: clarify afs_bias, simplify pick_better_lchan_to_move() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21978 ) Change subject: hodec2: cosmetic: clarify afs_bias, simplify pick_better_lchan_to_move() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21978 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I73860abdf2a77270ca4851ad58c09767d1bb08f1 Gerrit-Change-Number: 21978 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 06 Jan 2021 22:15:31 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 00:33:28 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 7 Jan 2021 00:33:28 +0000 Subject: Change in osmo-bts[master]: power_control: generalize the arguments of do_pf_ewma() In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21907 ) Change subject: power_control: generalize the arguments of do_pf_ewma() ...................................................................... Patch Set 5: > Patch Set 5: > > iiuc the issue was still not fixed in latest version? No, it wasn't fixed yet. I don't see how this problem is related to this patch though... -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21907 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I439c00b394da670e314f217b3246cc85ce8213c6 Gerrit-Change-Number: 21907 Gerrit-PatchSet: 5 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 07 Jan 2021 00:33:28 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 00:38:55 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 7 Jan 2021 00:38:55 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: vty: clarify and improve some deprecation messages In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21990 ) Change subject: osmo-bts-trx: vty: clarify and improve some deprecation messages ...................................................................... osmo-bts-trx: vty: clarify and improve some deprecation messages Change-Id: I22b69eccfa50d178bd36bf770f7158ec441c9923 Related: SYS#4918 --- M src/osmo-bts-trx/trx_vty.c 1 file changed, 8 insertions(+), 4 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/osmo-bts-trx/trx_vty.c b/src/osmo-bts-trx/trx_vty.c index 55a7ee7..49403d4 100644 --- a/src/osmo-bts-trx/trx_vty.c +++ b/src/osmo-bts-trx/trx_vty.c @@ -196,7 +196,8 @@ "Enable MS power control loop\nTarget RSSI value (transceiver specific, " "should be 6dB or more above noise floor)\n") { - vty_out (vty, "'osmotrx ms-power-loop' is deprecated, use 'uplink-power-target' instead%s", VTY_NEWLINE); + vty_out(vty, "'%s' is deprecated, MS Power Control is now managed by BSC%s", + self->string, VTY_NEWLINE); g_bts->ul_power_ctrl.target_dbm = atoi(argv[0]); @@ -207,7 +208,8 @@ "no osmotrx ms-power-loop", NO_STR OSMOTRX_STR "Disable MS power control loop\n") { - vty_out (vty, "'no osmotrx ms-power-loop' is deprecated, use of BTS control loop is managed by BSC%s", VTY_NEWLINE); + vty_out(vty, "'%s' is deprecated, MS Power Control is now managed by BSC%s", + self->string, VTY_NEWLINE); return CMD_SUCCESS; } @@ -216,7 +218,8 @@ "osmotrx timing-advance-loop", OSMOTRX_STR "Enable timing advance control loop\n") { - vty_out (vty, "'osmotrx timing-advance-loop' is deprecated, ta control is now active by default%s", VTY_NEWLINE); + vty_out(vty, "'%s' is deprecated, Timing Advance loop is now active by default%s", + self->string, VTY_NEWLINE); return CMD_SUCCESS; } @@ -224,7 +227,8 @@ "no osmotrx timing-advance-loop", NO_STR OSMOTRX_STR "Disable timing advance control loop\n") { - vty_out (vty, "'no osmotrx timing-advance-loop' is deprecated, ta control is now active by default%s", VTY_NEWLINE); + vty_out(vty, "'%s' is deprecated, Timing Advance loop is now active by default%s", + self->string, VTY_NEWLINE); return CMD_SUCCESS; } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21990 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I22b69eccfa50d178bd36bf770f7158ec441c9923 Gerrit-Change-Number: 21990 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 00:38:56 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 7 Jan 2021 00:38:56 +0000 Subject: Change in osmo-bts[master]: power_control: vty: re-use cfg_bts_ul_power_target() In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21991 ) Change subject: power_control: vty: re-use cfg_bts_ul_power_target() ...................................................................... power_control: vty: re-use cfg_bts_ul_power_target() This reduces code duplication by defining an alias. Change-Id: I37f51d426fcf008c9d9e933827de70ab7b072a94 Related: SYS#4918 --- M src/common/vty.c 1 file changed, 14 insertions(+), 17 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/common/vty.c b/src/common/vty.c index ff7ec12..52478b8 100644 --- a/src/common/vty.c +++ b/src/common/vty.c @@ -632,29 +632,26 @@ CMD_ATTR_IMMEDIATE) { struct gsm_bts *bts = vty->index; + int rxlev_dbm = atoi(argv[0]); + int hyst = 0; - bts->ul_power_ctrl.target_dbm = atoi(argv[0]); - bts->ul_power_ctrl.hysteresis_db = 0; + if (argc > 1) /* optional argument */ + hyst = atoi(argv[1]); + + bts->ul_power_ctrl.target_dbm = rxlev_dbm; + bts->ul_power_ctrl.hysteresis_db = hyst; return CMD_SUCCESS; } /* FIXME: libosmovty is unable to handle 'foo <-110-0> [bar <1-25>]' */ -DEFUN_ATTR(cfg_bts_ul_power_target_hysteresis, - cfg_bts_ul_power_target_hysteresis_cmd, - UL_POWER_TARGET_CMD " hysteresis <1-25>", - UL_POWER_TARGET_CMD_DESC - "Target Rx Level hysteresis\n" - "Tolerable deviation in dBm\n", - CMD_ATTR_IMMEDIATE) -{ - struct gsm_bts *bts = vty->index; - - bts->ul_power_ctrl.target_dbm = atoi(argv[0]); - bts->ul_power_ctrl.hysteresis_db = atoi(argv[1]); - - return CMD_SUCCESS; -} +DEFUN_CMD_ELEMENT(cfg_bts_ul_power_target, + cfg_bts_ul_power_target_hysteresis_cmd, + UL_POWER_TARGET_CMD " hysteresis <1-25>", + UL_POWER_TARGET_CMD_DESC + "Target Rx Level hysteresis\n" + "Tolerable deviation in dBm\n", + CMD_ATTR_IMMEDIATE, 0); DEFUN_ATTR(cfg_no_bts_ul_power_filter, cfg_bts_no_ul_power_filter_cmd, -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21991 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I37f51d426fcf008c9d9e933827de70ab7b072a94 Gerrit-Change-Number: 21991 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 00:38:57 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 7 Jan 2021 00:38:57 +0000 Subject: Change in osmo-bts[master]: power_control: vty: deprecate 'uplink-power-control' commands In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21992 ) Change subject: power_control: vty: deprecate 'uplink-power-control' commands ...................................................................... power_control: vty: deprecate 'uplink-power-control' commands MS/BS Power Control parameters have been recently moved to the BSC and now signaled to the BTS over the A-bis/RSL link. Let's make sure that the existing VTY commands for Uplink Power Control do: - trigger deprecation warnings if present in the config file, - not show up in the online VTY help nor VTY reference, - affect the fall-back parameters in 'struct gsm_bts', - still get printed by 'show running-config' command. Change-Id: Icbd9a7d31ce6723294130a31a179a002fccb4612 Related: SYS#4918 --- M src/common/vty.c 1 file changed, 62 insertions(+), 24 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/common/vty.c b/src/common/vty.c index 52478b8..326e332 100644 --- a/src/common/vty.c +++ b/src/common/vty.c @@ -228,6 +228,37 @@ return CMD_SUCCESS; } +static void config_write_dpc_params(struct vty *vty, const char *prefix, + const struct gsm_power_ctrl_params *params) +{ + const struct gsm_power_ctrl_meas_params *mp = ¶ms->rxlev_meas; + + if (mp->lower_thresh != power_ctrl_params_def.rxlev_meas.lower_thresh || + mp->upper_thresh != power_ctrl_params_def.rxlev_meas.upper_thresh) { + int target = (mp->lower_thresh + mp->upper_thresh) / 2; + int hyst = (mp->upper_thresh - mp->lower_thresh) / 2; + + vty_out(vty, " %s-power-target %d", prefix, rxlev2dbm(target)); + if (hyst > 0) + vty_out(vty, " hysteresis %d", hyst); + vty_out(vty, "%s", VTY_NEWLINE); + } + + /* MS Tx power filtering algorithm and parameters */ + switch (mp->algo) { + case GSM_PWR_CTRL_MEAS_AVG_ALGO_OSMO_EWMA: /* EWMA is the default */ + if (mp->ewma.alpha != power_ctrl_params_def.rxlev_meas.ewma.alpha) + vty_out(vty, " %s-power-filtering algo ewma beta %u%s", + prefix, 100 - mp->ewma.alpha, VTY_NEWLINE); + break; + /* Other algorithm cannot be set via the VTY */ + case BTS_PF_ALGO_NONE: + default: + vty_out(vty, " no %s-power-filtering%s", prefix, VTY_NEWLINE); + break; + } +} + static void config_write_bts_single(struct vty *vty, const struct gsm_bts *bts) { const struct gsm_bts_trx *trx; @@ -255,22 +286,9 @@ VTY_NEWLINE); vty_out(vty, " paging lifetime %u%s", paging_get_lifetime(bts->paging_state), VTY_NEWLINE); - vty_out(vty, " uplink-power-target %d", bts->ul_power_ctrl.target_dbm); - if (bts->ul_power_ctrl.hysteresis_db > 0) - vty_out(vty, " hysteresis %d", bts->ul_power_ctrl.hysteresis_db); - vty_out(vty, "%s", VTY_NEWLINE); - /* MS Tx power filtering algorithm and parameters */ - switch (bts->ul_power_ctrl.pf_algo) { - case BTS_PF_ALGO_EWMA: - vty_out(vty, " uplink-power-filtering algo ewma beta %u%s", - 100 - bts->ul_power_ctrl.pf.ewma.alpha, VTY_NEWLINE); - break; - case BTS_PF_ALGO_NONE: - default: - vty_out(vty, " no uplink-power-filtering%s", VTY_NEWLINE); - break; - } + /* Fall-back MS Power Control parameters may be changed by the user */ + config_write_dpc_params(vty, "uplink", &bts->ms_dpc_params); if (bts->agch_queue.thresh_level != GSM_BTS_AGCH_QUEUE_THRESH_LEVEL_DEFAULT || bts->agch_queue.low_level != GSM_BTS_AGCH_QUEUE_LOW_LEVEL_DEFAULT @@ -627,10 +645,16 @@ "Set the nominal target Rx Level for uplink power control loop\n" \ "Target uplink Rx level in dBm\n" +#define UL_POWER_DEPR_MSG(fmt, args...) \ + vty_out(vty, "%% Command '%s' has been deprecated.%s" \ + "%% MS/BS Power control parameters should be configured in osmo-bsc: " \ + fmt, self->string, VTY_NEWLINE, ##args) + DEFUN_ATTR(cfg_bts_ul_power_target, cfg_bts_ul_power_target_cmd, UL_POWER_TARGET_CMD, UL_POWER_TARGET_CMD_DESC, - CMD_ATTR_IMMEDIATE) + CMD_ATTR_DEPRECATED) { + struct gsm_power_ctrl_meas_params *mp; struct gsm_bts *bts = vty->index; int rxlev_dbm = atoi(argv[0]); int hyst = 0; @@ -638,8 +662,13 @@ if (argc > 1) /* optional argument */ hyst = atoi(argv[1]); - bts->ul_power_ctrl.target_dbm = rxlev_dbm; - bts->ul_power_ctrl.hysteresis_db = hyst; + mp = &bts->ms_dpc_params.rxlev_meas; + mp->lower_thresh = dbm2rxlev(rxlev_dbm - hyst); + mp->upper_thresh = dbm2rxlev(rxlev_dbm + hyst); + + UL_POWER_DEPR_MSG("use 'rxlev-thresh lower %u upper %u'.%s", + mp->lower_thresh, mp->upper_thresh, + VTY_NEWLINE); return CMD_SUCCESS; } @@ -651,17 +680,21 @@ UL_POWER_TARGET_CMD_DESC "Target Rx Level hysteresis\n" "Tolerable deviation in dBm\n", - CMD_ATTR_IMMEDIATE, 0); + CMD_ATTR_DEPRECATED, 0); DEFUN_ATTR(cfg_no_bts_ul_power_filter, cfg_bts_no_ul_power_filter_cmd, "no uplink-power-filtering", NO_STR "Disable filtering for uplink power control loop\n", - CMD_ATTR_IMMEDIATE) + CMD_ATTR_DEPRECATED) { + struct gsm_power_ctrl_meas_params *mp; struct gsm_bts *bts = vty->index; - bts->ul_power_ctrl.pf_algo = BTS_PF_ALGO_NONE; + mp = &bts->ms_dpc_params.rxlev_meas; + mp->algo = GSM_PWR_CTRL_MEAS_AVG_ALGO_NONE; + + UL_POWER_DEPR_MSG("use 'no rxlev-avg'.%s", VTY_NEWLINE); return CMD_SUCCESS; } @@ -674,12 +707,17 @@ "Exponentially Weighted Moving Average (EWMA)\n" "Smoothing factor (in %): beta = (100 - alpha)\n" "1% - lowest smoothing, 99% - highest smoothing\n", - CMD_ATTR_IMMEDIATE) + CMD_ATTR_DEPRECATED) { + struct gsm_power_ctrl_meas_params *mp; struct gsm_bts *bts = vty->index; - bts->ul_power_ctrl.pf_algo = BTS_PF_ALGO_EWMA; - bts->ul_power_ctrl.pf.ewma.alpha = 100 - atoi(argv[0]); + mp = &bts->ms_dpc_params.rxlev_meas; + mp->algo = GSM_PWR_CTRL_MEAS_AVG_ALGO_OSMO_EWMA; + mp->ewma.alpha = 100 - atoi(argv[0]); + + UL_POWER_DEPR_MSG("use 'rxlev-avg algo osmo-ewma beta %s'.%s", + argv[0], VTY_NEWLINE); return CMD_SUCCESS; } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21992 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Icbd9a7d31ce6723294130a31a179a002fccb4612 Gerrit-Change-Number: 21992 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 00:38:58 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 7 Jan 2021 00:38:58 +0000 Subject: Change in osmo-bts[master]: power_control: handle MS/BS Power control params on A-bis/RSL In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21906 ) Change subject: power_control: handle MS/BS Power control params on A-bis/RSL ...................................................................... power_control: handle MS/BS Power control params on A-bis/RSL Change-Id: I5a901eca5a78a0335a6954064e602e65cda85390 Depends: I2f4ed56837dd479dbbd10c0a7df0ed7565d3946a Related: SYS#4918 --- M src/common/rsl.c 1 file changed, 229 insertions(+), 14 deletions(-) Approvals: laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/common/rsl.c b/src/common/rsl.c index 29b64b4..bca365e 100644 --- a/src/common/rsl.c +++ b/src/common/rsl.c @@ -2,6 +2,7 @@ /* (C) 2011 by Andreas Eversberg * (C) 2011-2019 by Harald Welte + * (C) 2020 by sysmocom - s.m.f.c. GmbH * * All Rights Reserved * @@ -698,6 +699,167 @@ } +/* Parser for ip.access specific MS/BS Power parameters */ +static int parse_power_ctrl_params(struct gsm_power_ctrl_params *params, + const uint8_t *data, size_t data_len) +{ + const struct tlv_p_entry *ie; + struct tlv_parsed tp[2]; + unsigned int i; + int rc; + + /* There can be multiple RSL_IPAC_EIE_MEAS_AVG_CFG, so we use tlv_parse2() */ + rc = tlv_parse2(&tp[0], ARRAY_SIZE(tp), &rsl_ipac_eie_tlvdef, + data, data_len, 0, 0); + if (rc < 0) + return rc; + + /* Either of RSL_IPAC_EIE_{BS,MS}_PWR_CTL must be present */ + if (TLVP_PRESENT(&tp[0], RSL_IPAC_EIE_BS_PWR_CTL) && + TLVP_PRESENT(&tp[0], RSL_IPAC_EIE_MS_PWR_CTL)) + return -EINVAL; + + /* (TV) Thresholds: {L,U}_RXLEV_XX_P and {L,U}_RXQUAL_XX_P */ + if ((ie = TLVP_GET(&tp[0], RSL_IPAC_EIE_BS_PWR_CTL)) != NULL || + (ie = TLVP_GET(&tp[0], RSL_IPAC_EIE_MS_PWR_CTL)) != NULL) { + const struct ipac_preproc_pc_thresh *thresh; + + thresh = (const struct ipac_preproc_pc_thresh *) ie->val; + + params->rxlev_meas.lower_thresh = thresh->l_rxlev; + params->rxlev_meas.upper_thresh = thresh->u_rxlev; + + params->rxqual_meas.lower_thresh = thresh->l_rxqual; + params->rxqual_meas.upper_thresh = thresh->u_rxqual; + } + + /* (TV) PC Threshold Comparators */ + if ((ie = TLVP_GET(&tp[0], RSL_IPAC_EIE_PC_THRESH_COMP)) != NULL) { + const struct ipac_preproc_pc_comp *thresh_comp; + + thresh_comp = (const struct ipac_preproc_pc_comp *) ie->val; + + /* RxLev: P1, N1, P2, N2 (see 3GPP TS 45.008, A.3.2.1, a & b) */ + params->rxlev_meas.lower_cmp_p = thresh_comp->p1; + params->rxlev_meas.lower_cmp_n = thresh_comp->n1; + params->rxlev_meas.upper_cmp_p = thresh_comp->p2; + params->rxlev_meas.upper_cmp_n = thresh_comp->n2; + + /* RxQual: P3, N3, P4, N4 (see 3GPP TS 45.008, A.3.2.1, c & d) */ + params->rxqual_meas.lower_cmp_p = thresh_comp->p3; + params->rxqual_meas.lower_cmp_n = thresh_comp->n3; + params->rxqual_meas.upper_cmp_p = thresh_comp->p4; + params->rxqual_meas.upper_cmp_n = thresh_comp->n4; + + /* FIXME: TIMER_PWR_CON_INTERVAL (P_Con_INTERVAL) */ + + /* Power increase / reduce step size: POWER_{INC,RED}_STEP_SIZE */ + params->inc_step_size_db = thresh_comp->inc_step_size; + params->red_step_size_db = thresh_comp->red_step_size; + } + + /* (TLV) Measurement Averaging parameters for RxLev/RxQual */ + for (i = 0; i < ARRAY_SIZE(tp); i++) { + const struct ipac_preproc_ave_cfg *ave_cfg; + struct gsm_power_ctrl_meas_params *mp; + + ie = TLVP_GET(&tp[0], RSL_IPAC_EIE_MEAS_AVG_CFG); + if (ie == NULL) + break; + + if (ie->len < sizeof(*ave_cfg)) + return -EINVAL; + + ave_cfg = (const struct ipac_preproc_ave_cfg *) ie->val; + + switch (ave_cfg->param_id) { + case IPAC_RXQUAL_AVE: + mp = ¶ms->rxqual_meas; + break; + case IPAC_RXLEV_AVE: + mp = ¶ms->rxlev_meas; + break; + default: + /* Skip unknown parameters */ + continue; + } + + mp->h_reqave = ave_cfg->h_reqave; + mp->h_reqt = ave_cfg->h_reqt; + + mp->algo = ave_cfg->ave_method + 1; + switch (ave_cfg->ave_method) { + case IPAC_OSMO_EWMA_AVE: + if (ie->len > sizeof(*ave_cfg)) + mp->ewma.alpha = ave_cfg->params[0]; + break; + + /* FIXME: not implemented */ + case IPAC_UNWEIGHTED_AVE: + case IPAC_WEIGHTED_AVE: + case IPAC_MEDIAN_AVE: + break; + } + } + + return 0; +} + +/* ip.access specific Measurement Pre-processing Defaults for MS/BS Power control */ +static int rsl_rx_meas_preproc_dft(struct gsm_bts_trx *trx, struct msgb *msg) +{ + const struct gsm_bts *bts = trx->bts; + struct gsm_power_ctrl_params *params; + const struct tlv_p_entry *ie; + struct tlv_parsed tp; + int rc; + + LOGPTRX(trx, DRSL, LOGL_INFO, "Rx Measurement Pre-processing Defaults\n"); + + rc = rsl_tlv_parse(&tp, msgb_l3(msg), msgb_l3len(msg)); + if (rc < 0) { + LOGPTRX(trx, DRSL, LOGL_ERROR, "Failed to parse ip.access specific " + "Measurement Pre-processing Defaults for MS/BS Power control\n"); + return rsl_tx_error_report(trx, RSL_ERR_PROTO, NULL, NULL, msg); + } + + /* TLV (O) BS Power Parameters IE */ + if ((ie = TLVP_GET(&tp, RSL_IE_BS_POWER_PARAM)) != NULL) { + /* Allocate a new chunk and initialize with default values */ + params = talloc_memdup(trx, &power_ctrl_params_def, sizeof(*params)); + + if (ie->len && parse_power_ctrl_params(params, ie->val, ie->len) == 0) { + /* Initially it points to the global defaults */ + if (trx->bs_dpc_params != &bts->bs_dpc_params) + talloc_free(trx->bs_dpc_params); + trx->bs_dpc_params = params; + } else { + LOGPTRX(trx, DRSL, LOGL_ERROR, "Failed to parse BS Power Parameters IE\n"); + rsl_tx_error_report(trx, RSL_ERR_IE_CONTENT, NULL, NULL, msg); + talloc_free(params); + } + } + + /* TLV (O) MS Power Parameters IE */ + if ((ie = TLVP_GET(&tp, RSL_IE_MS_POWER_PARAM)) != NULL) { + /* Allocate a new chunk and initialize with default values */ + params = talloc_memdup(trx, &power_ctrl_params_def, sizeof(*params)); + + if (ie->len && parse_power_ctrl_params(params, ie->val, ie->len) == 0) { + /* Initially it points to the global defaults */ + if (trx->ms_dpc_params != &bts->ms_dpc_params) + talloc_free(trx->ms_dpc_params); + trx->ms_dpc_params = params; + } else { + LOGPTRX(trx, DRSL, LOGL_ERROR, "Failed to parse MS Power Parameters IE\n"); + rsl_tx_error_report(trx, RSL_ERR_IE_CONTENT, NULL, NULL, msg); + talloc_free(params); + } + } + + return 0; +} + /* 8.5.6 IMMEDIATE ASSIGN COMMAND is received */ static int rsl_rx_imm_ass(struct gsm_bts_trx *trx, struct msgb *msg) { @@ -1125,6 +1287,7 @@ struct gsm_bts_trx_ts *ts = lchan->ts; struct rsl_ie_chan_mode *cm; struct tlv_parsed tp; + const struct tlv_p_entry *ie; uint8_t type; int rc; @@ -1236,19 +1399,42 @@ if (TLVP_PRES_LEN(&tp, RSL_IE_TIMING_ADVANCE, 1)) lchan->rqd_ta = *TLVP_VAL(&tp, RSL_IE_TIMING_ADVANCE); - /* 9.3.31 MS Power Parameters */ - if (TLVP_PRESENT(&tp, RSL_IE_MS_POWER_PARAM)) { + /* 9.3.31 (TLV) MS Power Parameters IE (vendor specific) */ + if ((ie = TLVP_GET(&tp, RSL_IE_MS_POWER_PARAM)) != NULL) { + struct gsm_power_ctrl_params *params = &lchan->ms_dpc_params; + + /* Parsed parameters will override per-TRX defaults */ + memcpy(params, ts->trx->ms_dpc_params, sizeof(*params)); + + if (ie->len && parse_power_ctrl_params(params, ie->val, ie->len) != 0) { + LOGPLCHAN(lchan, DRSL, LOGL_ERROR, "Failed to parse MS Power Parameters IE\n"); + return rsl_tx_chan_act_nack(lchan, RSL_ERR_IE_CONTENT); + } + /* Spec explicitly states BTS should only perform * autonomous MS power control loop in BTS if 'MS Power * Parameters' IE is present! */ lchan->ms_power_ctrl.fixed = false; + lchan->ms_power_ctrl.dpc_params = params; } - /* 9.3.32 BS Power Parameters */ - if (TLVP_PRESENT(&tp, RSL_IE_BS_POWER_PARAM)) { + /* 9.3.32 (TLV) BS Power Parameters IE (vendor specific) */ + if ((ie = TLVP_GET(&tp, RSL_IE_BS_POWER_PARAM)) != NULL) { + struct gsm_power_ctrl_params *params = &lchan->bs_dpc_params; + + /* Parsed parameters will override per-TRX defaults */ + memcpy(params, ts->trx->bs_dpc_params, sizeof(*params)); + + /* Parsed parameters will override per-TRX defaults */ + if (ie->len && parse_power_ctrl_params(params, ie->val, ie->len) != 0) { + LOGPLCHAN(lchan, DRSL, LOGL_ERROR, "Failed to parse BS Power Parameters IE\n"); + return rsl_tx_chan_act_nack(lchan, RSL_ERR_IE_CONTENT); + } + /* NOTE: it's safer to start from 0 */ lchan->bs_power_ctrl.current = 0; lchan->bs_power_ctrl.fixed = false; + lchan->bs_power_ctrl.dpc_params = params; } /* 9.3.16 Physical Context */ @@ -1721,6 +1907,7 @@ struct abis_rsl_dchan_hdr *dch = msgb_l2(msg); struct gsm_lchan *lchan = msg->lchan; struct gsm_bts *bts = lchan->ts->trx->bts; + const struct tlv_p_entry *ie; struct tlv_parsed tp; uint8_t pwr; int max_pwr, curr_pwr; @@ -1736,14 +1923,25 @@ LOGPLCHAN(lchan, DRSL, LOGL_INFO, "Rx MS POWER CONTROL %" PRIu8 "\n", pwr); - /* 9.3.31 MS Power Parameters (O) */ - if (TLVP_PRESENT(&tp, RSL_IE_MS_POWER_PARAM)) { - /* Spec explicitly states BTS should only perform - * autonomous MS power control loop in BTS if 'MS Power - * Parameters' IE is present! */ - lchan->ms_power_ctrl.fixed = false; - } else { - lchan->ms_power_ctrl.fixed = true; + /* Spec explicitly states BTS should only perform autonomous MS Power + * control loop in BTS if 'MS Power Parameters' IE is present! */ + lchan->ms_power_ctrl.fixed = !TLVP_PRESENT(&tp, RSL_IE_MS_POWER_PARAM); + lchan->ms_power_ctrl.dpc_params = NULL; + + /* 9.3.31 (TLV) MS Power Parameters IE (vendor specific) */ + if ((ie = TLVP_GET(&tp, RSL_IE_MS_POWER_PARAM)) != NULL) { + struct gsm_power_ctrl_params *params = &lchan->ms_dpc_params; + + /* Parsed parameters will override per-TRX defaults */ + memcpy(params, msg->trx->ms_dpc_params, sizeof(*params)); + + /* Parsed parameters will override per-TRX defaults */ + if (ie->len && parse_power_ctrl_params(params, ie->val, ie->len) != 0) { + LOGPLCHAN(lchan, DRSL, LOGL_ERROR, "Failed to parse MS Power Parameters IE\n"); + return rsl_tx_chan_act_nack(lchan, RSL_ERR_IE_CONTENT); + } + + lchan->ms_power_ctrl.dpc_params = params; } /* Only set current to max if actual value of current @@ -1773,6 +1971,7 @@ { struct abis_rsl_dchan_hdr *dch = msgb_l2(msg); struct gsm_lchan *lchan = msg->lchan; + const struct tlv_p_entry *ie; struct tlv_parsed tp; uint8_t old, new; @@ -1790,13 +1989,26 @@ new = BS_POWER2DB(*TLVP_VAL(&tp, RSL_IE_BS_POWER)); old = lchan->bs_power_ctrl.current; - /* 9.3.31 MS Power Parameters (O) */ - if (TLVP_PRESENT(&tp, RSL_IE_BS_POWER_PARAM)) { + /* 9.3.32 (TLV) BS Power Parameters IE (vendor specific) */ + if ((ie = TLVP_GET(&tp, RSL_IE_BS_POWER_PARAM)) != NULL) { + struct gsm_power_ctrl_params *params = &lchan->bs_dpc_params; + + /* Parsed parameters will override per-TRX defaults */ + memcpy(params, msg->trx->bs_dpc_params, sizeof(*params)); + + /* Parsed parameters will override per-TRX defaults */ + if (ie->len && parse_power_ctrl_params(params, ie->val, ie->len) != 0) { + LOGPLCHAN(lchan, DRSL, LOGL_ERROR, "Failed to parse BS Power Parameters IE\n"); + return rsl_tx_chan_act_nack(lchan, RSL_ERR_IE_CONTENT); + } + /* NOTE: it's safer to start from 0 */ lchan->bs_power_ctrl.current = 0; lchan->bs_power_ctrl.max = new; lchan->bs_power_ctrl.fixed = false; + lchan->bs_power_ctrl.dpc_params = params; } else { + lchan->bs_power_ctrl.dpc_params = NULL; lchan->bs_power_ctrl.current = new; lchan->bs_power_ctrl.fixed = true; } @@ -3242,6 +3454,9 @@ case RSL_MT_SACCH_FILL: ret = rsl_rx_sacch_fill(trx, msg); break; + case RSL_MT_IPAC_MEAS_PREPROC_DFT: + ret = rsl_rx_meas_preproc_dft(trx, msg); + break; default: LOGP(DRSL, LOGL_NOTICE, "undefined RSL TRX msg_type 0x%02x\n", th->msg_type); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21906 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I5a901eca5a78a0335a6954064e602e65cda85390 Gerrit-Change-Number: 21906 Gerrit-PatchSet: 5 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Thu Jan 7 01:41:05 2021 From: admin at opensuse.org (OBS Notification) Date: Thu, 07 Jan 2021 01:41:05 +0000 Subject: Build failure of network:osmocom:nightly/open5gs in Debian_10/i586 In-Reply-To: References: Message-ID: <5ff666bb44b79_707c2acc32a365f054192@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/open5gs/Debian_10/i586 Package network:osmocom:nightly/open5gs failed to build in Debian_10/i586 Check out the package for editing: osc checkout network:osmocom:nightly open5gs Last lines of build log: [ 476s] [2541/2541] cc -o tests/handover/handover 'tests/handover/63da1a3@@handover at exe/abts-main.c.o' 'tests/handover/63da1a3@@handover at exe/epc-x2-test.c.o' 'tests/handover/63da1a3@@handover at exe/epc-s1-test.c.o' 'tests/handover/63da1a3@@handover at exe/5gc-xn-test.c.o' -Wl,--no-undefined -Wl,--as-needed -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z,relro -Wl,-z,now -Wl,--start-group tests/app/libtestapp.a tests/common/libtestcomon.a lib/core/libogscore.so.2.1.1 lib/app/libogsapp.so.2.1.1 lib/dbi/libogsdbi.so.2.1.1 lib/crypt/libogscrypt.so.2.1.1 lib/sctp/libogssctp.so.2.1.1 lib/gtp/libogsgtp.so.2.1.1 lib/s1ap/libogss1ap.so.2.1.1 lib/asn1c/s1ap/libogsasn1c-s1ap.so.2.1.1 lib/asn1c/common/libogsasn1c-common.so.2.1.1 lib/asn1c/util/libogsasn1c-util.so.2.1.1 lib/ngap/libogsngap.so.2.1.1 lib/asn1c/ngap/libogsasn1c-ngap.so.2.1.1 lib/nas/eps/libogsnas-eps.so.2.1.1 lib/nas/common/libogsnas-common.so.2.1.1 lib/nas/5gs/libogsnas-5gs.so.2.1.1 lib/diameter/rx/libogsdiameter-rx.so.2.1.1 lib/diameter/common/libogsdiameter-common.so.2.1.1 subprojects/freeDiameter/libfdcore/libfdcore.so.1.3.2 subprojects/freeDiameter/libfdproto/libfdproto.so.1.3.2 /usr/lib/i386-linux-gnu/libyaml.so /usr/lib/gcc/i686-linux-gnu/8/../../../i386-linux-gnu/libmongoc-1.0.so /usr/lib/gcc/i686-linux-gnu/8/../../../i386-linux-gnu/libbson-1.0.so -lsctp -lidn -ldl -lsctp -lgcrypt -lgnutls -lsctp -lidn -ldl -lsctp -lgcrypt -lgnutls -lsctp -lidn -ldl -lsctp -lgcrypt -lgnutls -Wl,--end-group -pthread '-Wl,-rpath,$ORIGIN/../app:$ORIGIN/../common:$ORIGIN/../../lib/core:$ORIGIN/../../lib/app:$ORIGIN/../../lib/dbi:$ORIGIN/../../lib/crypt:$ORIGIN/../../lib/sctp:$ORIGIN/../../lib/gtp:$ORIGIN/../../lib/s1ap:$ORIGIN/../../lib/asn1c/s1ap:$ORIGIN/../../lib/asn1c/common:$ORIGIN/../../lib/asn1c/util:$ORIGIN/../../lib/ngap:$ORIGIN/../../lib/asn1c/ngap:$ORIGIN/../../lib/nas/eps:$ORIGIN/../../lib/nas/common:$ORIGIN/../../lib/nas/5gs:$ORIGIN/../../lib/diameter/rx:$ORIGIN/../../lib/diameter/common:$ORIGIN/../../subprojects/freeDiameter/libfdcore:$ORIGIN/../../subprojects/freeDiameter/libfdproto' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-i686-linux-gnu/tests/app:/usr/src/packages/BUILD/obj-i686-linux-gnu/tests/common:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/core:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/app:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/dbi:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/crypt:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/sctp:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/gtp:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/s1ap:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/asn1c/s1ap:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/asn1c/common:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/asn1c/util:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/ngap:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/asn1c/ngap:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/nas/eps:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/nas/common:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/nas/5gs:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/diameter/rx:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/diameter/common:/usr/src/packages/BUILD/obj-i686-linux-gnu/subprojects/freeDiameter/libfdcore:/usr/src/packages/BUILD/obj-i686-linux-gnu/subprojects/freeDiameter/libfdproto [ 476s] debian/rules override_dh_auto_test [ 476s] make[1]: Entering directory '/usr/src/packages/BUILD' [ 476s] cd obj-i686-linux-gnu && meson test --suite unit [ 477s] ninja: Entering directory `/usr/src/packages/BUILD/obj-i686-linux-gnu' [ 477s] ninja: no work to do. [ 485s] 1/3 open5gs:unit / core OK 7.16 s [ 485s] 2/3 open5gs:unit / crypt OK 0.17 s [ 485s] 3/3 open5gs:unit / unit FAIL 0.07 s (exit status 1) [ 485s] [ 485s] Ok: 2 [ 485s] Expected Fail: 0 [ 485s] Fail: 1 [ 485s] Unexpected Pass: 0 [ 485s] Skipped: 0 [ 485s] Timeout: 0 [ 485s] [ 485s] Full log written to /usr/src/packages/BUILD/obj-i686-linux-gnu/meson-logs/testlog.txt [ 485s] make[1]: *** [debian/rules:17: override_dh_auto_test] Error 1 [ 485s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 485s] make: *** [debian/rules:11: binary] Error 2 [ 485s] dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 [ 485s] ### VM INTERACTION START ### [ 488s] [ 415.742617] sysrq: Power Off [ 488s] [ 415.749663] reboot: Power down [ 488s] ### VM INTERACTION END ### [ 488s] [ 488s] cloud124 failed "build open5gs_2.1.1.20210107.dsc" at Thu Jan 7 01:40:51 UTC 2021. [ 488s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Jan 7 01:46:14 2021 From: admin at opensuse.org (OBS Notification) Date: Thu, 07 Jan 2021 01:46:14 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <5ff668035c726_707c2acc32a365f05437f8@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/xUbuntu_20.04/x86_64 Package network:osmocom:nightly/simtrace2 failed to build in xUbuntu_20.04/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 152s] [COMPILING libboard/qmod/source/wwan_perst.c] [ 152s] [COMPILING libboard/qmod/source/card_pres.c] [ 152s] [COMPILING libboard/qmod/source/wwan_led.c] [ 152s] [COMPILING libboard/qmod/source/i2c.c] [ 153s] [COMPILING libboard/qmod/source/board_qmod.c] [ 153s] [COMPILING apps/dfu/main.c] [ 153s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 153s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 153s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 154s] Memory region Used Size Region Size %age Used [ 154s] rom: 16588 B 16 KB 101.25% [ 154s] ram: 11672 B 48 KB 23.75/usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 154s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 204 bytes [ 154s] collect2: error: ld returned 1 exit status [ 154s] % [ 154s] make[2]: *** [Makefile:234: flash] Error 1 [ 154s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 154s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 154s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 154s] dh_auto_build: error: make -j1 returned exit code 2 [ 154s] make: *** [debian/rules:16: build] Error 25 [ 154s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 154s] ### VM INTERACTION START ### [ 157s] [ 144.679776] sysrq: Power Off [ 157s] [ 144.686171] reboot: Power down [ 157s] ### VM INTERACTION END ### [ 157s] [ 157s] old-atreju2 failed "build simtrace2_0.7.0.69.aadd.dsc" at Thu Jan 7 01:46:09 UTC 2021. [ 157s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Jan 7 01:47:40 2021 From: admin at opensuse.org (OBS Notification) Date: Thu, 07 Jan 2021 01:47:40 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.10/x86_64 In-Reply-To: References: Message-ID: <5ff66841e7897_707c2acc32a365f05445cf@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/xUbuntu_20.10/x86_64 Package network:osmocom:nightly/simtrace2 failed to build in xUbuntu_20.10/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 159s] [COMPILING apps/dfu/main.c] [ 159s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 159s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 159s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 159s] Memory region Used Size Region Size %age Used [ 159s] rom: 16580 B 16 KB 101.20% [ 159s] ram: 11672 B 48 KB 23.75/usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 159s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 159s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 159s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 159s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 159s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 159s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 196 bytes [ 159s] collect2: error: ld returned 1 exit status [ 159s] % [ 159s] make[2]: *** [Makefile:234: flash] Error 1 [ 159s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 159s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 159s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 159s] dh_auto_build: error: make -j1 returned exit code 2 [ 159s] make: *** [debian/rules:16: build] Error 25 [ 159s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 159s] ### VM INTERACTION START ### [ 162s] [ 145.891805] sysrq: Power Off [ 162s] [ 145.897032] reboot: Power down [ 163s] ### VM INTERACTION END ### [ 163s] [ 163s] cloud116 failed "build simtrace2_0.7.0.69.aadd.dsc" at Thu Jan 7 01:47:23 UTC 2021. [ 163s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Jan 7 02:19:05 2021 From: admin at opensuse.org (OBS Notification) Date: Thu, 07 Jan 2021 02:19:05 +0000 Subject: Build failure of network:osmocom:latest/osmo-iuh in Debian_8.0/i586 In-Reply-To: References: Message-ID: <5ff66fa08f206_707c2acc32a365f05527a0@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-iuh/Debian_8.0/i586 Package network:osmocom:latest/osmo-iuh failed to build in Debian_8.0/i586 Check out the package for editing: osc checkout network:osmocom:latest osmo-iuh Last lines of build log: [ 274s] CCLD osmo-hnbgw [ 275s] ./.libs/libosmo-ranap.so: undefined reference to `install_lib_element' [ 275s] collect2: error: ld returned 1 exit status [ 275s] Makefile:591: recipe for target 'osmo-hnbgw' failed [ 275s] make[5]: *** [osmo-hnbgw] Error 1 [ 275s] make[5]: Leaving directory '/usr/src/packages/BUILD/src' [ 275s] Makefile:660: recipe for target 'all-recursive' failed [ 275s] make[4]: *** [all-recursive] Error 1 [ 275s] make[4]: Leaving directory '/usr/src/packages/BUILD/src' [ 275s] Makefile:465: recipe for target 'all' failed [ 275s] make[3]: *** [all] Error 2 [ 275s] make[3]: Leaving directory '/usr/src/packages/BUILD/src' [ 275s] Makefile:457: recipe for target 'all-recursive' failed [ 275s] make[2]: *** [all-recursive] Error 1 [ 275s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 275s] Makefile:378: recipe for target 'all' failed [ 275s] make[1]: *** [all] Error 2 [ 275s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 275s] dh_auto_build: make -j1 returned exit code 2 [ 275s] debian/rules:9: recipe for target 'build' failed [ 275s] make: *** [build] Error 2 [ 275s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 275s] ### VM INTERACTION START ### [ 276s] Powering off. [ 276s] [ 267.220659] reboot: Power down [ 276s] ### VM INTERACTION END ### [ 276s] [ 276s] lamb72 failed "build osmo-iuh_1.0.0.dsc" at Thu Jan 7 02:18:50 UTC 2021. [ 276s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Jan 7 02:21:22 2021 From: admin at opensuse.org (OBS Notification) Date: Thu, 07 Jan 2021 02:21:22 +0000 Subject: Build failure of network:osmocom:latest/osmo-iuh in Debian_8.0/x86_64 In-Reply-To: References: Message-ID: <5ff67035d61ef_707c2acc32a365f05529b7@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-iuh/Debian_8.0/x86_64 Package network:osmocom:latest/osmo-iuh failed to build in Debian_8.0/x86_64 Check out the package for editing: osc checkout network:osmocom:latest osmo-iuh Last lines of build log: [ 325s] CCLD osmo-hnbgw [ 326s] ./.libs/libosmo-ranap.so: undefined reference to `install_lib_element' [ 326s] collect2: error: ld returned 1 exit status [ 326s] Makefile:591: recipe for target 'osmo-hnbgw' failed [ 326s] make[5]: *** [osmo-hnbgw] Error 1 [ 326s] make[5]: Leaving directory '/usr/src/packages/BUILD/src' [ 326s] Makefile:660: recipe for target 'all-recursive' failed [ 326s] make[4]: *** [all-recursive] Error 1 [ 326s] make[4]: Leaving directory '/usr/src/packages/BUILD/src' [ 326s] Makefile:465: recipe for target 'all' failed [ 326s] make[3]: *** [all] Error 2 [ 326s] make[3]: Leaving directory '/usr/src/packages/BUILD/src' [ 326s] Makefile:457: recipe for target 'all-recursive' failed [ 326s] make[2]: *** [all-recursive] Error 1 [ 326s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 326s] Makefile:378: recipe for target 'all' failed [ 326s] make[1]: *** [all] Error 2 [ 326s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 326s] dh_auto_build: make -j1 returned exit code 2 [ 326s] debian/rules:9: recipe for target 'build' failed [ 326s] make: *** [build] Error 2 [ 326s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 326s] ### VM INTERACTION START ### [ 327s] Powering off. [ 327s] [ 317.642955] reboot: Power down [ 327s] ### VM INTERACTION END ### [ 327s] [ 327s] cumulus2 failed "build osmo-iuh_1.0.0.dsc" at Thu Jan 7 02:21:17 UTC 2021. [ 327s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Jan 7 02:22:14 2021 From: admin at opensuse.org (OBS Notification) Date: Thu, 07 Jan 2021 02:22:14 +0000 Subject: Build failure of network:osmocom:latest/osmo-iuh in Debian_9.0/x86_64 In-Reply-To: References: Message-ID: <5ff67075a1897_707c2acc32a365f0553276@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-iuh/Debian_9.0/x86_64 Package network:osmocom:latest/osmo-iuh failed to build in Debian_9.0/x86_64 Check out the package for editing: osc checkout network:osmocom:latest osmo-iuh Last lines of build log: [ 466s] libtool: link: gcc -Wall -I../include -I../include -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wl,-z -Wl,relro -o .libs/osmo-hnbgw hnbap_encoder.o hnbap_decoder.o hnbap_common.o rua_encoder.o rua_decoder.o rua_common.o rua_msg_factory.o hnbgw.o hnbgw_hnbap.o hnbgw_rua.o hnbgw_ranap.o hnbgw_vty.o context_map.o hnbgw_cn.o /usr/lib/x86_64-linux-gnu/libosmovty.so /usr/lib/x86_64-linux-gnu/libosmoctrl.so /usr/lib/x86_64-linux-gnu/libosmogsm.so /usr/lib/x86_64-linux-gnu/libosmocore.so -ltalloc -lasn1c /usr/lib/x86_64-linux-gnu/libosmo-sigtran.so /usr/lib/x86_64-linux-gnu/libosmonetif.so hnbap/libosmo-asn1-hnbap.a rua/libosmo-asn1-rua.a ./.libs/libosmo-ranap.so -pthread [ 466s] ./.libs/libosmo-ranap.so: undefined reference to `install_lib_element' [ 466s] collect2: error: ld returned 1 exit status [ 466s] Makefile:602: recipe for target 'osmo-hnbgw' failed [ 466s] make[5]: *** [osmo-hnbgw] Error 1 [ 466s] make[5]: Leaving directory '/usr/src/packages/BUILD/src' [ 466s] Makefile:671: recipe for target 'all-recursive' failed [ 466s] make[4]: *** [all-recursive] Error 1 [ 466s] make[4]: Leaving directory '/usr/src/packages/BUILD/src' [ 466s] Makefile:477: recipe for target 'all' failed [ 466s] make[3]: *** [all] Error 2 [ 466s] make[3]: Leaving directory '/usr/src/packages/BUILD/src' [ 466s] Makefile:468: recipe for target 'all-recursive' failed [ 466s] make[2]: *** [all-recursive] Error 1 [ 466s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 466s] Makefile:390: recipe for target 'all' failed [ 466s] make[1]: *** [all] Error 2 [ 466s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 466s] dh_auto_build: make -j1 returned exit code 2 [ 466s] debian/rules:9: recipe for target 'build' failed [ 466s] make: *** [build] Error 2 [ 466s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 466s] ### VM INTERACTION START ### [ 469s] [ 461.426990] sysrq: Power Off [ 469s] [ 461.432336] reboot: Power down [ 469s] ### VM INTERACTION END ### [ 469s] [ 469s] sheep87 failed "build osmo-iuh_1.0.0.dsc" at Thu Jan 7 02:22:12 UTC 2021. [ 469s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Jan 7 02:25:22 2021 From: admin at opensuse.org (OBS Notification) Date: Thu, 07 Jan 2021 02:25:22 +0000 Subject: Build failure of network:osmocom:latest/osmo-iuh in Debian_9.0/i586 In-Reply-To: References: Message-ID: <5ff671288d6de_707c2acc32a365f05538d4@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-iuh/Debian_9.0/i586 Package network:osmocom:latest/osmo-iuh failed to build in Debian_9.0/i586 Check out the package for editing: osc checkout network:osmocom:latest osmo-iuh Last lines of build log: [ 702s] libtool: link: gcc -Wall -I../include -I../include -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wl,-z -Wl,relro -o .libs/osmo-hnbgw hnbap_encoder.o hnbap_decoder.o hnbap_common.o rua_encoder.o rua_decoder.o rua_common.o rua_msg_factory.o hnbgw.o hnbgw_hnbap.o hnbgw_rua.o hnbgw_ranap.o hnbgw_vty.o context_map.o hnbgw_cn.o /usr/lib/i386-linux-gnu/libosmovty.so /usr/lib/i386-linux-gnu/libosmoctrl.so /usr/lib/i386-linux-gnu/libosmogsm.so /usr/lib/i386-linux-gnu/libosmocore.so -ltalloc -lasn1c /usr/lib/i386-linux-gnu/libosmo-sigtran.so /usr/lib/i386-linux-gnu/libosmonetif.so hnbap/libosmo-asn1-hnbap.a rua/libosmo-asn1-rua.a ./.libs/libosmo-ranap.so -pthread [ 702s] ./.libs/libosmo-ranap.so: undefined reference to `install_lib_element' [ 702s] collect2: error: ld returned 1 exit status [ 702s] Makefile:602: recipe for target 'osmo-hnbgw' failed [ 702s] make[5]: *** [osmo-hnbgw] Error 1 [ 702s] make[5]: Leaving directory '/usr/src/packages/BUILD/src' [ 702s] Makefile:671: recipe for target 'all-recursive' failed [ 702s] make[4]: *** [all-recursive] Error 1 [ 702s] make[4]: Leaving directory '/usr/src/packages/BUILD/src' [ 702s] Makefile:477: recipe for target 'all' failed [ 702s] make[3]: *** [all] Error 2 [ 702s] make[3]: Leaving directory '/usr/src/packages/BUILD/src' [ 702s] Makefile:468: recipe for target 'all-recursive' failed [ 702s] make[2]: *** [all-recursive] Error 1 [ 702s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 702s] Makefile:390: recipe for target 'all' failed [ 702s] make[1]: *** [all] Error 2 [ 702s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 702s] dh_auto_build: make -j1 returned exit code 2 [ 702s] debian/rules:9: recipe for target 'build' failed [ 702s] make: *** [build] Error 2 [ 702s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 702s] ### VM INTERACTION START ### [ 705s] [ 695.016686] sysrq: Power Off [ 705s] [ 695.029361] reboot: Power down [ 705s] ### VM INTERACTION END ### [ 705s] [ 705s] lamb14 failed "build osmo-iuh_1.0.0.dsc" at Thu Jan 7 02:25:10 UTC 2021. [ 705s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Jan 7 02:28:48 2021 From: admin at opensuse.org (OBS Notification) Date: Thu, 07 Jan 2021 02:28:48 +0000 Subject: Build failure of network:osmocom:latest/osmo-iuh in xUbuntu_19.04/x86_64 In-Reply-To: References: Message-ID: <5ff671fac5e00_707c2acc32a365f0554239@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-iuh/xUbuntu_19.04/x86_64 Package network:osmocom:latest/osmo-iuh failed to build in xUbuntu_19.04/x86_64 Check out the package for editing: osc checkout network:osmocom:latest osmo-iuh Last lines of build log: ck.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-EnhRelocInfoReq.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-EnhRelocInfoRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-EnhancedRelocCompleteReq.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-EnhancedRelocCompleteRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-RelocReq.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-RelocReqAck.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifiedItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifiedList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifyItemFirst.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifyItemSecond.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifyList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SubflowCombinationBitRate.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-ToBeReleasedItem-EnhancedRelocCompleteRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-ToBeReleasedList-EnhancedRelocCompleteRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-TrCH-Mapping.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-TrCH-MappingItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABDataVolumeReport.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABParametersList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABased.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABs-ContextFailedtoTransferItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABs-ContextFailedtoTransferList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABs-failed-to-reportItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABs-failed-to-reportList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAC.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAI-List.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAListofIdleModeUEs.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAListwithNoIdleModeUEsAnyMore.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RANAP-EnhancedRelocationInformationRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RANAP-EnhancedRelocationInformationResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RANAP-PDU.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RANAP-RelocationInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAT-Type.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAofIdleModeUEs.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RIM-Transfer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RIMInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RIMRoutingAddress.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RNC-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RNCTraceInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RNSAPRelocationParameters.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RRC-Container.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRQ-Extension.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRQ-Type.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRVCC-HO-Indication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRVCC-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRVCC-Operation-Possible.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RTLoadValue.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RateControlAllowed.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RedirectAttemptFlag.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RedirectionCompleted.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RedirectionIndication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RejectCauseValue.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationCancel.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationCancelAcknowledge.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationCommand.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationComplete.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationDetect.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationFailure.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationPreparationFailure.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationRequestAcknowledge.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationRequired.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationRequirement.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationType.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RepetitionNumber0.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RepetitionNumber1.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ReportAmount.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ReportArea.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ReportChangeOfSAI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ReportInterval.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestType.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-ExtendedGuaranteedBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-ExtendedMaxBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-GuaranteedBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-MaxBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-Values.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedGANSSAssistanceData.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedGPSAssistanceData.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedLocationRelatedDataType.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedMBMSIPMulticastAddressandAPNRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedMulticastServiceList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Reset.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetAcknowledge.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResource.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceAckItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceAckList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceAcknowledge.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResidualBitErrorRatio.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResponseTime.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SAC.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SAI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SAPI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-ErrorRatio.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-FormatInformationParameterItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-FormatInformationParameters.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-ParameterItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-Parameters.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SNA-Access-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SNAC.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRB-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRB-TrCH-Mapping.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRB-TrCH-MappingItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRNS-ContextRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRNS-ContextResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRNS-DataForwardCommand.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-CSKeysRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-CSKeysResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-HO-Indication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-Operation-Possible.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SecurityModeCommand.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SecurityModeComplete.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SecurityModeReject.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Service-Handover.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Session-Re-establishment-Indicator.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SessionUpdateID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Shared-Network-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SignallingIndication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Source-ToTarget-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceBSS-ToTargetBSS-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceCellID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceRNC-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceRNC-ToTargetRNC-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceStatisticsDescriptor.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceUTRANCellID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceeNodeB-ToTargeteNodeB-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SubflowSDU-Size.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SubscriberProfileIDforRFP.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SuccessfulOutcome.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SupportedBitrate.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SupportedRAB-ParameterBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TAC.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TAI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TBCD-STRING.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TMGI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TMSI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TNLInformationEnhRelInfoReq.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TNLInformationEnhRelInfoRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Target-ToSource-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetBSS-ToSourceBSS-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetCellId.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetENB-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetRNC-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetRNC-ToSourceRNC-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargeteNodeB-ToSourceeNodeB-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TemporaryUE-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Time-UE-StayedInCell-EnhancedGranularity.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Time-UE-StayedInCell.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TimeToMBMSDataTransfer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TimingDifferenceULDL.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TrCH-ID-List.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TrCH-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceDepth.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TracePropagationParameters.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceRecordingSessionInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceRecordingSessionReference.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceReference.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceType.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TrafficClass.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TrafficHandlingPriority.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TransferDelay.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TransportLayerAddress.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TransportLayerInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TriggerID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TriggeringMessage.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TunnelInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TypeOfError.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-AggregateMaximumBitRate.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-AggregateMaximumBitRateDownlink.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-AggregateMaximumBitRateUplink.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-History-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UESBI-Iu.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UESBI-IuA.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UESBI-IuB.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UESpecificInformationIndication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UL-GTP-PDU-SequenceNumber.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UL-N-PDU-SequenceNumber.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UP-ModeVersions.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UPInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UPInitialisationFrame.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_USCH-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UTRAN-CellID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UeRadioCapabilityMatchRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UeRadioCapabilityMatchResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UnsuccessfulLinking-IEs.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UnsuccessfulOutcome.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UnsuccessfullyTransmittedDataVolume.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UplinkInformationExchangeFailure.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UplinkInformationExchangeRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UplinkInformationExchangeResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UserPlaneInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UserPlaneMode.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VelocityEstimate.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VerticalAccuracyCode.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VerticalSpeedDirection.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VerticalVelocity.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VoiceSupportMatchIndicator.o [ 545s] ar: `u' modifier ignored since `D' is the default (see `U') [ 545s] libtool: link: ranlib .libs/libosmo-ranap.a [ 545s] libtool: link: rm -fr .libs/libosmo-ranap.lax [ 545s] libtool: link: ( cd ".libs" && rm -f "libosmo-ranap.la" && ln -s "../libosmo-ranap.la" "libosmo-ranap.la" ) [ 545s] /bin/bash ../libtool --tag=CC --mode=link gcc -Wall -I../include -I../include -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wl,-Bsymbolic-functions -Wl,-z,relro -o osmo-hnbgw hnbap_encoder.o hnbap_decoder.o hnbap_common.o rua_encoder.o rua_decoder.o rua_common.o rua_msg_factory.o hnbgw.o hnbgw_hnbap.o hnbgw_rua.o hnbgw_ranap.o hnbgw_vty.o context_map.o hnbgw_cn.o -ltalloc -losmocore -ltalloc -losmogsm -losmocore -ltalloc -losmovty -losmocore -ltalloc -losmoctrl -losmogsm -losmocore -ltalloc -lasn1c -losmo-sigtran -losmonetif hnbap/libosmo-asn1-hnbap.a rua/libosmo-asn1-rua.a libosmo-ranap.la [ 546s] libtool: link: gcc -Wall -I../include -I../include -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wl,-Bsymbolic-functions -Wl,-z -Wl,relro -o .libs/osmo-hnbgw hnbap_encoder.o hnbap_decoder.o hnbap_common.o rua_encoder.o rua_decoder.o rua_common.o rua_msg_factory.o hnbgw.o hnbgw_hnbap.o hnbgw_rua.o hnbgw_ranap.o hnbgw_vty.o context_map.o hnbgw_cn.o /usr/lib/x86_64-linux-gnu/libosmovty.so /usr/lib/x86_64-linux-gnu/libosmoctrl.so /usr/lib/x86_64-linux-gnu/libosmogsm.so /usr/lib/x86_64-linux-gnu/libosmocore.so -ltalloc -lasn1c /usr/lib/x86_64-linux-gnu/libosmo-sigtran.so /usr/lib/x86_64-linux-gnu/libosmonetif.so hnbap/libosmo-asn1-hnbap.a rua/libosmo-asn1-rua.a ./.libs/libosmo-ranap.so -pthread [ 546s] /usr/bin/ld: ./.libs/libosmo-ranap.so: undefined reference to `install_lib_element' [ 546s] collect2: error: ld returned 1 exit status [ 546s] make[5]: *** [Makefile:616: osmo-hnbgw] Error 1 [ 546s] make[5]: Leaving directory '/usr/src/packages/BUILD/src' [ 546s] make[4]: *** [Makefile:690: all-recursive] Error 1 [ 546s] make[4]: Leaving directory '/usr/src/packages/BUILD/src' [ 546s] make[3]: *** [Makefile:490: all] Error 2 [ 546s] make[3]: Leaving directory '/usr/src/packages/BUILD/src' [ 546s] make[2]: *** [Makefile:468: all-recursive] Error 1 [ 546s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 546s] make[1]: *** [Makefile:390: all] Error 2 [ 546s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 546s] dh_auto_build: make -j1 returned exit code 2 [ 546s] make: *** [debian/rules:9: build] Error 2 [ 546s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 546s] ### VM INTERACTION START ### [ 549s] [ 537.281177] sysrq: Power Off [ 549s] [ 537.308949] reboot: Power down [ 549s] ### VM INTERACTION END ### [ 549s] [ 549s] cloud113 failed "build osmo-iuh_1.0.0.dsc" at Thu Jan 7 02:28:43 UTC 2021. [ 549s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Jan 7 02:30:14 2021 From: admin at opensuse.org (OBS Notification) Date: Thu, 07 Jan 2021 02:30:14 +0000 Subject: Build failure of network:osmocom:latest/osmo-iuh in Debian_10/aarch64 In-Reply-To: References: Message-ID: <5ff672526ffda_707c2acc32a365f0554331@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-iuh/Debian_10/aarch64 Package network:osmocom:latest/osmo-iuh failed to build in Debian_10/aarch64 Check out the package for editing: osc checkout network:osmocom:latest osmo-iuh Last lines of build log: -asn1-ranap.a/RANAP_RAB-SetupItem-RelocReqAck.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-EnhRelocInfoReq.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-EnhRelocInfoRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-EnhancedRelocCompleteReq.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-EnhancedRelocCompleteRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-RelocReq.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-RelocReqAck.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifiedItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifiedList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifyItemFirst.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifyItemSecond.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifyList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SubflowCombinationBitRate.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-ToBeReleasedItem-EnhancedRelocCompleteRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-ToBeReleasedList-EnhancedRelocCompleteRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-TrCH-Mapping.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-TrCH-MappingItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABDataVolumeReport.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABParametersList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABased.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABs-ContextFailedtoTransferItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABs-ContextFailedtoTransferList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABs-failed-to-reportItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABs-failed-to-reportList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAC.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAI-List.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAListofIdleModeUEs.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAListwithNoIdleModeUEsAnyMore.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RANAP-EnhancedRelocationInformationRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RANAP-EnhancedRelocationInformationResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RANAP-PDU.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RANAP-RelocationInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAT-Type.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAofIdleModeUEs.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RIM-Transfer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RIMInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RIMRoutingAddress.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RNC-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RNCTraceInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RNSAPRelocationParameters.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RRC-Container.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRQ-Extension.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRQ-Type.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRVCC-HO-Indication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRVCC-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRVCC-Operation-Possible.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RTLoadValue.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RateControlAllowed.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RedirectAttemptFlag.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RedirectionCompleted.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RedirectionIndication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RejectCauseValue.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationCancel.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationCancelAcknowledge.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationCommand.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationComplete.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationDetect.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationFailure.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationPreparationFailure.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationRequestAcknowledge.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationRequired.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationRequirement.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationType.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RepetitionNumber0.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RepetitionNumber1.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ReportAmount.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ReportArea.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ReportChangeOfSAI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ReportInterval.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestType.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-ExtendedGuaranteedBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-ExtendedMaxBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-GuaranteedBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-MaxBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-Values.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedGANSSAssistanceData.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedGPSAssistanceData.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedLocationRelatedDataType.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedMBMSIPMulticastAddressandAPNRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedMulticastServiceList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Reset.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetAcknowledge.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResource.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceAckItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceAckList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceAcknowledge.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResidualBitErrorRatio.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResponseTime.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SAC.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SAI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SAPI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-ErrorRatio.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-FormatInformationParameterItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-FormatInformationParameters.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-ParameterItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-Parameters.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SNA-Access-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SNAC.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRB-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRB-TrCH-Mapping.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRB-TrCH-MappingItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRNS-ContextRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRNS-ContextResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRNS-DataForwardCommand.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-CSKeysRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-CSKeysResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-HO-Indication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-Operation-Possible.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SecurityModeCommand.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SecurityModeComplete.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SecurityModeReject.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Service-Handover.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Session-Re-establishment-Indicator.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SessionUpdateID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Shared-Network-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SignallingIndication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Source-ToTarget-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceBSS-ToTargetBSS-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceCellID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceRNC-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceRNC-ToTargetRNC-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceStatisticsDescriptor.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceUTRANCellID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceeNodeB-ToTargeteNodeB-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SubflowSDU-Size.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SubscriberProfileIDforRFP.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SuccessfulOutcome.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SupportedBitrate.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SupportedRAB-ParameterBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TAC.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TAI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TBCD-STRING.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TMGI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TMSI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TNLInformationEnhRelInfoReq.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TNLInformationEnhRelInfoRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Target-ToSource-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetBSS-ToSourceBSS-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetCellId.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetENB-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetRNC-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetRNC-ToSourceRNC-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargeteNodeB-ToSourceeNodeB-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TemporaryUE-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Time-UE-StayedInCell-EnhancedGranularity.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Time-UE-StayedInCell.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TimeToMBMSDataTransfer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TimingDifferenceULDL.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TrCH-ID-List.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TrCH-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceDepth.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TracePropagationParameters.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceRecordingSessionInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceRecordingSessionReference.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceReference.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceType.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TrafficClass.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TrafficHandlingPriority.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TransferDelay.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TransportLayerAddress.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TransportLayerInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TriggerID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TriggeringMessage.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TunnelInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TypeOfError.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-AggregateMaximumBitRate.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-AggregateMaximumBitRateDownlink.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-AggregateMaximumBitRateUplink.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-History-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UESBI-Iu.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UESBI-IuA.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UESBI-IuB.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UESpecificInformationIndication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UL-GTP-PDU-SequenceNumber.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UL-N-PDU-SequenceNumber.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UP-ModeVersions.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UPInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UPInitialisationFrame.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_USCH-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UTRAN-CellID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UeRadioCapabilityMatchRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UeRadioCapabilityMatchResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UnsuccessfulLinking-IEs.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UnsuccessfulOutcome.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UnsuccessfullyTransmittedDataVolume.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UplinkInformationExchangeFailure.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UplinkInformationExchangeRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UplinkInformationExchangeResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UserPlaneInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UserPlaneMode.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VelocityEstimate.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VerticalAccuracyCode.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VerticalSpeedDirection.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VerticalVelocity.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VoiceSupportMatchIndicator.o [ 677s] ar: `u' modifier ignored since `D' is the default (see `U') [ 677s] libtool: link: ranlib .libs/libosmo-ranap.a [ 677s] libtool: link: rm -fr .libs/libosmo-ranap.lax [ 677s] libtool: link: ( cd ".libs" && rm -f "libosmo-ranap.la" && ln -s "../libosmo-ranap.la" "libosmo-ranap.la" ) [ 677s] /bin/bash ../libtool --tag=CC --mode=link gcc -Wall -I../include -I../include -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wl,-z,relro -o osmo-hnbgw hnbap_encoder.o hnbap_decoder.o hnbap_common.o rua_encoder.o rua_decoder.o rua_common.o rua_msg_factory.o hnbgw.o hnbgw_hnbap.o hnbgw_rua.o hnbgw_ranap.o hnbgw_vty.o context_map.o hnbgw_cn.o -ltalloc -losmocore -ltalloc -losmogsm -losmocore -ltalloc -losmovty -losmocore -ltalloc -losmoctrl -losmogsm -losmocore -ltalloc -lasn1c -losmo-sigtran -losmonetif hnbap/libosmo-asn1-hnbap.a rua/libosmo-asn1-rua.a libosmo-ranap.la [ 677s] libtool: link: gcc -Wall -I../include -I../include -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wl,-z -Wl,relro -o .libs/osmo-hnbgw hnbap_encoder.o hnbap_decoder.o hnbap_common.o rua_encoder.o rua_decoder.o rua_common.o rua_msg_factory.o hnbgw.o hnbgw_hnbap.o hnbgw_rua.o hnbgw_ranap.o hnbgw_vty.o context_map.o hnbgw_cn.o /usr/lib/aarch64-linux-gnu/libosmovty.so /usr/lib/aarch64-linux-gnu/libosmoctrl.so /usr/lib/aarch64-linux-gnu/libosmogsm.so /usr/lib/aarch64-linux-gnu/libosmocore.so -ltalloc -lasn1c /usr/lib/aarch64-linux-gnu/libosmo-sigtran.so /usr/lib/aarch64-linux-gnu/libosmonetif.so hnbap/libosmo-asn1-hnbap.a rua/libosmo-asn1-rua.a ./.libs/libosmo-ranap.so -pthread [ 678s] /usr/bin/ld: ./.libs/libosmo-ranap.so: undefined reference to `install_lib_element' [ 678s] collect2: error: ld returned 1 exit status [ 678s] make[5]: *** [Makefile:616: osmo-hnbgw] Error 1 [ 678s] make[5]: Leaving directory '/usr/src/packages/BUILD/src' [ 678s] make[4]: *** [Makefile:690: all-recursive] Error 1 [ 678s] make[4]: Leaving directory '/usr/src/packages/BUILD/src' [ 678s] make[3]: *** [Makefile:490: all] Error 2 [ 678s] make[3]: Leaving directory '/usr/src/packages/BUILD/src' [ 678s] make[2]: *** [Makefile:468: all-recursive] Error 1 [ 678s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 678s] make[1]: *** [Makefile:390: all] Error 2 [ 678s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 678s] dh_auto_build: make -j1 returned exit code 2 [ 678s] make: *** [debian/rules:9: build] Error 2 [ 678s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 678s] ### VM INTERACTION START ### [ 681s] [ 659.390276] sysrq: Power Off [ 681s] [ 659.423686] reboot: Power down [ 681s] ### VM INTERACTION END ### [ 681s] [ 681s] obs-arm-8 failed "build osmo-iuh_1.0.0.dsc" at Thu Jan 7 02:30:12 UTC 2021. [ 681s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Jan 7 02:34:31 2021 From: admin at opensuse.org (OBS Notification) Date: Thu, 07 Jan 2021 02:34:31 +0000 Subject: Build failure of network:osmocom:latest/osmo-iuh in xUbuntu_18.04/x86_64 In-Reply-To: References: Message-ID: <5ff673442262e_707c2acc32a365f05550f6@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-iuh/xUbuntu_18.04/x86_64 Package network:osmocom:latest/osmo-iuh failed to build in xUbuntu_18.04/x86_64 Check out the package for editing: osc checkout network:osmocom:latest osmo-iuh Last lines of build log: [ 765s] libtool: link: gcc -Wall -I../include -I../include -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wl,-Bsymbolic-functions -Wl,-z -Wl,relro -o .libs/osmo-hnbgw hnbap_encoder.o hnbap_decoder.o hnbap_common.o rua_encoder.o rua_decoder.o rua_common.o rua_msg_factory.o hnbgw.o hnbgw_hnbap.o hnbgw_rua.o hnbgw_ranap.o hnbgw_vty.o context_map.o hnbgw_cn.o /usr/lib/x86_64-linux-gnu/libosmovty.so /usr/lib/x86_64-linux-gnu/libosmoctrl.so /usr/lib/x86_64-linux-gnu/libosmogsm.so /usr/lib/x86_64-linux-gnu/libosmocore.so -ltalloc -lasn1c /usr/lib/x86_64-linux-gnu/libosmo-sigtran.so /usr/lib/x86_64-linux-gnu/libosmonetif.so hnbap/libosmo-asn1-hnbap.a rua/libosmo-asn1-rua.a ./.libs/libosmo-ranap.so -pthread [ 765s] ./.libs/libosmo-ranap.so: undefined reference to `install_lib_element' [ 765s] collect2: error: ld returned 1 exit status [ 765s] Makefile:602: recipe for target 'osmo-hnbgw' failed [ 765s] make[5]: *** [osmo-hnbgw] Error 1 [ 765s] make[5]: Leaving directory '/usr/src/packages/BUILD/src' [ 765s] Makefile:671: recipe for target 'all-recursive' failed [ 765s] make[4]: *** [all-recursive] Error 1 [ 765s] make[4]: Leaving directory '/usr/src/packages/BUILD/src' [ 765s] Makefile:477: recipe for target 'all' failed [ 765s] make[3]: *** [all] Error 2 [ 765s] make[3]: Leaving directory '/usr/src/packages/BUILD/src' [ 765s] Makefile:468: recipe for target 'all-recursive' failed [ 765s] make[2]: *** [all-recursive] Error 1 [ 765s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 765s] Makefile:390: recipe for target 'all' failed [ 765s] make[1]: *** [all] Error 2 [ 765s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 765s] dh_auto_build: make -j1 returned exit code 2 [ 765s] debian/rules:9: recipe for target 'build' failed [ 765s] make: *** [build] Error 2 [ 765s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 765s] ### VM INTERACTION START ### [ 768s] [ 756.558956] sysrq: Power Off [ 768s] [ 756.564477] reboot: Power down [ 768s] ### VM INTERACTION END ### [ 768s] [ 768s] lamb19 failed "build osmo-iuh_1.0.0.dsc" at Thu Jan 7 02:34:20 UTC 2021. [ 768s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Jan 7 02:34:31 2021 From: admin at opensuse.org (OBS Notification) Date: Thu, 07 Jan 2021 02:34:31 +0000 Subject: Build failure of network:osmocom:latest/osmo-iuh in xUbuntu_19.04/i586 In-Reply-To: References: Message-ID: <5ff67343974b7_707c2acc32a365f055493b@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-iuh/xUbuntu_19.04/i586 Package network:osmocom:latest/osmo-iuh failed to build in xUbuntu_19.04/i586 Check out the package for editing: osc checkout network:osmocom:latest osmo-iuh Last lines of build log: em-RelocReqAck.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-EnhRelocInfoReq.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-EnhRelocInfoRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-EnhancedRelocCompleteReq.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-EnhancedRelocCompleteRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-RelocReq.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-RelocReqAck.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifiedItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifiedList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifyItemFirst.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifyItemSecond.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifyList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SubflowCombinationBitRate.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-ToBeReleasedItem-EnhancedRelocCompleteRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-ToBeReleasedList-EnhancedRelocCompleteRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-TrCH-Mapping.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-TrCH-MappingItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABDataVolumeReport.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABParametersList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABased.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABs-ContextFailedtoTransferItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABs-ContextFailedtoTransferList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABs-failed-to-reportItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABs-failed-to-reportList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAC.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAI-List.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAListofIdleModeUEs.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAListwithNoIdleModeUEsAnyMore.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RANAP-EnhancedRelocationInformationRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RANAP-EnhancedRelocationInformationResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RANAP-PDU.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RANAP-RelocationInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAT-Type.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAofIdleModeUEs.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RIM-Transfer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RIMInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RIMRoutingAddress.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RNC-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RNCTraceInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RNSAPRelocationParameters.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RRC-Container.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRQ-Extension.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRQ-Type.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRVCC-HO-Indication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRVCC-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRVCC-Operation-Possible.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RTLoadValue.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RateControlAllowed.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RedirectAttemptFlag.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RedirectionCompleted.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RedirectionIndication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RejectCauseValue.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationCancel.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationCancelAcknowledge.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationCommand.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationComplete.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationDetect.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationFailure.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationPreparationFailure.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationRequestAcknowledge.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationRequired.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationRequirement.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationType.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RepetitionNumber0.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RepetitionNumber1.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ReportAmount.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ReportArea.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ReportChangeOfSAI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ReportInterval.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestType.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-ExtendedGuaranteedBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-ExtendedMaxBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-GuaranteedBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-MaxBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-Values.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedGANSSAssistanceData.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedGPSAssistanceData.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedLocationRelatedDataType.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedMBMSIPMulticastAddressandAPNRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedMulticastServiceList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Reset.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetAcknowledge.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResource.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceAckItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceAckList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceAcknowledge.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResidualBitErrorRatio.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResponseTime.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SAC.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SAI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SAPI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-ErrorRatio.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-FormatInformationParameterItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-FormatInformationParameters.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-ParameterItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-Parameters.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SNA-Access-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SNAC.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRB-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRB-TrCH-Mapping.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRB-TrCH-MappingItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRNS-ContextRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRNS-ContextResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRNS-DataForwardCommand.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-CSKeysRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-CSKeysResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-HO-Indication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-Operation-Possible.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SecurityModeCommand.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SecurityModeComplete.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SecurityModeReject.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Service-Handover.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Session-Re-establishment-Indicator.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SessionUpdateID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Shared-Network-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SignallingIndication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Source-ToTarget-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceBSS-ToTargetBSS-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceCellID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceRNC-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceRNC-ToTargetRNC-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceStatisticsDescriptor.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceUTRANCellID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceeNodeB-ToTargeteNodeB-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SubflowSDU-Size.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SubscriberProfileIDforRFP.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SuccessfulOutcome.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SupportedBitrate.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SupportedRAB-ParameterBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TAC.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TAI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TBCD-STRING.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TMGI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TMSI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TNLInformationEnhRelInfoReq.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TNLInformationEnhRelInfoRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Target-ToSource-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetBSS-ToSourceBSS-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetCellId.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetENB-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetRNC-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetRNC-ToSourceRNC-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargeteNodeB-ToSourceeNodeB-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TemporaryUE-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Time-UE-StayedInCell-EnhancedGranularity.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Time-UE-StayedInCell.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TimeToMBMSDataTransfer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TimingDifferenceULDL.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TrCH-ID-List.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TrCH-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceDepth.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TracePropagationParameters.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceRecordingSessionInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceRecordingSessionReference.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceReference.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceType.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TrafficClass.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TrafficHandlingPriority.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TransferDelay.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TransportLayerAddress.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TransportLayerInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TriggerID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TriggeringMessage.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TunnelInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TypeOfError.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-AggregateMaximumBitRate.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-AggregateMaximumBitRateDownlink.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-AggregateMaximumBitRateUplink.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-History-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UESBI-Iu.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UESBI-IuA.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UESBI-IuB.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UESpecificInformationIndication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UL-GTP-PDU-SequenceNumber.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UL-N-PDU-SequenceNumber.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UP-ModeVersions.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UPInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UPInitialisationFrame.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_USCH-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UTRAN-CellID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UeRadioCapabilityMatchRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UeRadioCapabilityMatchResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UnsuccessfulLinking-IEs.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UnsuccessfulOutcome.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UnsuccessfullyTransmittedDataVolume.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UplinkInformationExchangeFailure.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UplinkInformationExchangeRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UplinkInformationExchangeResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UserPlaneInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UserPlaneMode.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VelocityEstimate.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VerticalAccuracyCode.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VerticalSpeedDirection.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VerticalVelocity.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VoiceSupportMatchIndicator.o [ 497s] ar: `u' modifier ignored since `D' is the default (see `U') [ 497s] libtool: link: ranlib .libs/libosmo-ranap.a [ 497s] libtool: link: rm -fr .libs/libosmo-ranap.lax [ 497s] libtool: link: ( cd ".libs" && rm -f "libosmo-ranap.la" && ln -s "../libosmo-ranap.la" "libosmo-ranap.la" ) [ 497s] /bin/bash ../libtool --tag=CC --mode=link gcc -Wall -I../include -I../include -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wl,-Bsymbolic-functions -Wl,-z,relro -o osmo-hnbgw hnbap_encoder.o hnbap_decoder.o hnbap_common.o rua_encoder.o rua_decoder.o rua_common.o rua_msg_factory.o hnbgw.o hnbgw_hnbap.o hnbgw_rua.o hnbgw_ranap.o hnbgw_vty.o context_map.o hnbgw_cn.o -ltalloc -losmocore -ltalloc -losmogsm -losmocore -ltalloc -losmovty -losmocore -ltalloc -losmoctrl -losmogsm -losmocore -ltalloc -lasn1c -losmo-sigtran -losmonetif hnbap/libosmo-asn1-hnbap.a rua/libosmo-asn1-rua.a libosmo-ranap.la [ 497s] libtool: link: gcc -Wall -I../include -I../include -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wl,-Bsymbolic-functions -Wl,-z -Wl,relro -o .libs/osmo-hnbgw hnbap_encoder.o hnbap_decoder.o hnbap_common.o rua_encoder.o rua_decoder.o rua_common.o rua_msg_factory.o hnbgw.o hnbgw_hnbap.o hnbgw_rua.o hnbgw_ranap.o hnbgw_vty.o context_map.o hnbgw_cn.o /usr/lib/i386-linux-gnu/libosmovty.so /usr/lib/i386-linux-gnu/libosmoctrl.so /usr/lib/i386-linux-gnu/libosmogsm.so /usr/lib/i386-linux-gnu/libosmocore.so -ltalloc -lasn1c /usr/lib/i386-linux-gnu/libosmo-sigtran.so /usr/lib/i386-linux-gnu/libosmonetif.so hnbap/libosmo-asn1-hnbap.a rua/libosmo-asn1-rua.a ./.libs/libosmo-ranap.so -pthread [ 497s] /usr/bin/ld: ./.libs/libosmo-ranap.so: undefined reference to `install_lib_element' [ 497s] collect2: error: ld returned 1 exit status [ 497s] make[5]: *** [Makefile:616: osmo-hnbgw] Error 1 [ 497s] make[5]: Leaving directory '/usr/src/packages/BUILD/src' [ 497s] make[4]: *** [Makefile:690: all-recursive] Error 1 [ 497s] make[4]: Leaving directory '/usr/src/packages/BUILD/src' [ 497s] make[3]: *** [Makefile:490: all] Error 2 [ 497s] make[3]: Leaving directory '/usr/src/packages/BUILD/src' [ 497s] make[2]: *** [Makefile:468: all-recursive] Error 1 [ 497s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 497s] make[1]: *** [Makefile:390: all] Error 2 [ 497s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 497s] dh_auto_build: make -j1 returned exit code 2 [ 497s] make: *** [debian/rules:9: build] Error 2 [ 497s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 497s] ### VM INTERACTION START ### [ 500s] [ 485.874891] sysrq: Power Off [ 500s] [ 485.879039] reboot: Power down [ 500s] ### VM INTERACTION END ### [ 500s] [ 500s] cloud114 failed "build osmo-iuh_1.0.0.dsc" at Thu Jan 7 02:34:17 UTC 2021. [ 500s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Jan 7 02:35:05 2021 From: admin at opensuse.org (OBS Notification) Date: Thu, 07 Jan 2021 02:35:05 +0000 Subject: Build failure of network:osmocom:latest/osmo-iuh in Debian_9.0/aarch64 In-Reply-To: References: Message-ID: <5ff6735f7a9f6_707c2acc32a365f0555196@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-iuh/Debian_9.0/aarch64 Package network:osmocom:latest/osmo-iuh failed to build in Debian_9.0/aarch64 Check out the package for editing: osc checkout network:osmocom:latest osmo-iuh Last lines of build log: [ 953s] libtool: link: gcc -Wall -I../include -I../include -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wl,-z -Wl,relro -o .libs/osmo-hnbgw hnbap_encoder.o hnbap_decoder.o hnbap_common.o rua_encoder.o rua_decoder.o rua_common.o rua_msg_factory.o hnbgw.o hnbgw_hnbap.o hnbgw_rua.o hnbgw_ranap.o hnbgw_vty.o context_map.o hnbgw_cn.o /usr/lib/aarch64-linux-gnu/libosmovty.so /usr/lib/aarch64-linux-gnu/libosmoctrl.so /usr/lib/aarch64-linux-gnu/libosmogsm.so /usr/lib/aarch64-linux-gnu/libosmocore.so -ltalloc -lasn1c /usr/lib/aarch64-linux-gnu/libosmo-sigtran.so /usr/lib/aarch64-linux-gnu/libosmonetif.so hnbap/libosmo-asn1-hnbap.a rua/libosmo-asn1-rua.a ./.libs/libosmo-ranap.so -pthread [ 953s] ./.libs/libosmo-ranap.so: undefined reference to `install_lib_element' [ 953s] collect2: error: ld returned 1 exit status [ 953s] Makefile:602: recipe for target 'osmo-hnbgw' failed [ 953s] make[5]: *** [osmo-hnbgw] Error 1 [ 953s] make[5]: Leaving directory '/usr/src/packages/BUILD/src' [ 953s] Makefile:671: recipe for target 'all-recursive' failed [ 953s] make[4]: *** [all-recursive] Error 1 [ 953s] make[4]: Leaving directory '/usr/src/packages/BUILD/src' [ 953s] Makefile:477: recipe for target 'all' failed [ 953s] make[3]: *** [all] Error 2 [ 953s] make[3]: Leaving directory '/usr/src/packages/BUILD/src' [ 953s] Makefile:468: recipe for target 'all-recursive' failed [ 953s] make[2]: *** [all-recursive] Error 1 [ 953s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 953s] Makefile:390: recipe for target 'all' failed [ 953s] make[1]: *** [all] Error 2 [ 953s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 953s] dh_auto_build: make -j1 returned exit code 2 [ 953s] debian/rules:9: recipe for target 'build' failed [ 953s] make: *** [build] Error 2 [ 953s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 953s] ### VM INTERACTION START ### [ 956s] [ 936.056063] sysrq: Power Off [ 956s] [ 936.058601] reboot: Power down [ 956s] ### VM INTERACTION END ### [ 956s] [ 956s] obs-arm-8 failed "build osmo-iuh_1.0.0.dsc" at Thu Jan 7 02:34:59 UTC 2021. [ 956s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Jan 7 02:35:22 2021 From: admin at opensuse.org (OBS Notification) Date: Thu, 07 Jan 2021 02:35:22 +0000 Subject: Build failure of network:osmocom:latest/osmo-iuh in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <5ff6737e9c49b_707c2acc32a365f05552a1@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-iuh/xUbuntu_20.04/x86_64 Package network:osmocom:latest/osmo-iuh failed to build in xUbuntu_20.04/x86_64 Check out the package for editing: osc checkout network:osmocom:latest osmo-iuh Last lines of build log: nap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupItem-RelocReqAck.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-EnhRelocInfoReq.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-EnhRelocInfoRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-EnhancedRelocCompleteReq.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-EnhancedRelocCompleteRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-RelocReq.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-RelocReqAck.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifiedItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifiedList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifyItemFirst.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifyItemSecond.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifyList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SubflowCombinationBitRate.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-ToBeReleasedItem-EnhancedRelocCompleteRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-ToBeReleasedList-EnhancedRelocCompleteRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-TrCH-Mapping.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-TrCH-MappingItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABDataVolumeReport.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABParametersList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABased.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABs-ContextFailedtoTransferItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABs-ContextFailedtoTransferList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABs-failed-to-reportItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABs-failed-to-reportList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAC.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAI-List.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAListofIdleModeUEs.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAListwithNoIdleModeUEsAnyMore.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RANAP-EnhancedRelocationInformationRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RANAP-EnhancedRelocationInformationResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RANAP-PDU.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RANAP-RelocationInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAT-Type.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAofIdleModeUEs.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RIM-Transfer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RIMInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RIMRoutingAddress.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RNC-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RNCTraceInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RNSAPRelocationParameters.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RRC-Container.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRQ-Extension.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRQ-Type.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRVCC-HO-Indication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRVCC-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRVCC-Operation-Possible.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RTLoadValue.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RateControlAllowed.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RedirectAttemptFlag.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RedirectionCompleted.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RedirectionIndication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RejectCauseValue.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationCancel.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationCancelAcknowledge.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationCommand.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationComplete.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationDetect.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationFailure.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationPreparationFailure.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationRequestAcknowledge.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationRequired.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationRequirement.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationType.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RepetitionNumber0.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RepetitionNumber1.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ReportAmount.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ReportArea.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ReportChangeOfSAI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ReportInterval.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestType.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-ExtendedGuaranteedBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-ExtendedMaxBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-GuaranteedBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-MaxBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-Values.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedGANSSAssistanceData.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedGPSAssistanceData.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedLocationRelatedDataType.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedMBMSIPMulticastAddressandAPNRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedMulticastServiceList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Reset.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetAcknowledge.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResource.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceAckItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceAckList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceAcknowledge.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResidualBitErrorRatio.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResponseTime.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SAC.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SAI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SAPI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-ErrorRatio.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-FormatInformationParameterItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-FormatInformationParameters.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-ParameterItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-Parameters.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SNA-Access-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SNAC.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRB-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRB-TrCH-Mapping.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRB-TrCH-MappingItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRNS-ContextRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRNS-ContextResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRNS-DataForwardCommand.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-CSKeysRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-CSKeysResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-HO-Indication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-Operation-Possible.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SecurityModeCommand.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SecurityModeComplete.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SecurityModeReject.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Service-Handover.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Session-Re-establishment-Indicator.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SessionUpdateID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Shared-Network-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SignallingIndication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Source-ToTarget-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceBSS-ToTargetBSS-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceCellID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceRNC-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceRNC-ToTargetRNC-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceStatisticsDescriptor.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceUTRANCellID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceeNodeB-ToTargeteNodeB-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SubflowSDU-Size.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SubscriberProfileIDforRFP.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SuccessfulOutcome.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SupportedBitrate.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SupportedRAB-ParameterBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TAC.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TAI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TBCD-STRING.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TMGI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TMSI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TNLInformationEnhRelInfoReq.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TNLInformationEnhRelInfoRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Target-ToSource-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetBSS-ToSourceBSS-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetCellId.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetENB-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetRNC-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetRNC-ToSourceRNC-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargeteNodeB-ToSourceeNodeB-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TemporaryUE-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Time-UE-StayedInCell-EnhancedGranularity.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Time-UE-StayedInCell.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TimeToMBMSDataTransfer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TimingDifferenceULDL.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TrCH-ID-List.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TrCH-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceDepth.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TracePropagationParameters.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceRecordingSessionInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceRecordingSessionReference.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceReference.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceType.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TrafficClass.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TrafficHandlingPriority.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TransferDelay.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TransportLayerAddress.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TransportLayerInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TriggerID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TriggeringMessage.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TunnelInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TypeOfError.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-AggregateMaximumBitRate.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-AggregateMaximumBitRateDownlink.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-AggregateMaximumBitRateUplink.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-History-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UESBI-Iu.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UESBI-IuA.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UESBI-IuB.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UESpecificInformationIndication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UL-GTP-PDU-SequenceNumber.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UL-N-PDU-SequenceNumber.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UP-ModeVersions.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UPInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UPInitialisationFrame.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_USCH-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UTRAN-CellID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UeRadioCapabilityMatchRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UeRadioCapabilityMatchResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UnsuccessfulLinking-IEs.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UnsuccessfulOutcome.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UnsuccessfullyTransmittedDataVolume.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UplinkInformationExchangeFailure.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UplinkInformationExchangeRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UplinkInformationExchangeResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UserPlaneInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UserPlaneMode.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VelocityEstimate.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VerticalAccuracyCode.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VerticalSpeedDirection.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VerticalVelocity.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VoiceSupportMatchIndicator.o [ 690s] libtool: link: ranlib .libs/libosmo-ranap.a [ 690s] libtool: link: rm -fr .libs/libosmo-ranap.lax [ 690s] libtool: link: ( cd ".libs" && rm -f "libosmo-ranap.la" && ln -s "../libosmo-ranap.la" "libosmo-ranap.la" ) [ 690s] /bin/bash ../libtool --tag=CC --mode=link gcc -Wall -I../include -I../include -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wl,-Bsymbolic-functions -Wl,-z,relro -o osmo-hnbgw hnbap_encoder.o hnbap_decoder.o hnbap_common.o rua_encoder.o rua_decoder.o rua_common.o rua_msg_factory.o hnbgw.o hnbgw_hnbap.o hnbgw_rua.o hnbgw_ranap.o hnbgw_vty.o context_map.o hnbgw_cn.o -ltalloc -losmocore -ltalloc -losmogsm -losmocore -ltalloc -losmovty -losmocore -ltalloc -losmoctrl -losmogsm -losmocore -ltalloc -lasn1c -losmo-sigtran -losmonetif hnbap/libosmo-asn1-hnbap.a rua/libosmo-asn1-rua.a libosmo-ranap.la [ 691s] libtool: link: gcc -Wall -I../include -I../include -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wl,-Bsymbolic-functions -Wl,-z -Wl,relro -o .libs/osmo-hnbgw hnbap_encoder.o hnbap_decoder.o hnbap_common.o rua_encoder.o rua_decoder.o rua_common.o rua_msg_factory.o hnbgw.o hnbgw_hnbap.o hnbgw_rua.o hnbgw_ranap.o hnbgw_vty.o context_map.o hnbgw_cn.o /usr/lib/x86_64-linux-gnu/libosmovty.so /usr/lib/x86_64-linux-gnu/libosmoctrl.so /usr/lib/x86_64-linux-gnu/libosmogsm.so /usr/lib/x86_64-linux-gnu/libosmocore.so -ltalloc -lasn1c /usr/lib/x86_64-linux-gnu/libosmo-sigtran.so /usr/lib/x86_64-linux-gnu/libosmonetif.so hnbap/libosmo-asn1-hnbap.a rua/libosmo-asn1-rua.a ./.libs/libosmo-ranap.so -pthread [ 692s] /usr/bin/ld: ./.libs/libosmo-ranap.so: undefined reference to `install_lib_element' [ 692s] collect2: error: ld returned 1 exit status [ 692s] make[5]: *** [Makefile:616: osmo-hnbgw] Error 1 [ 692s] make[5]: Leaving directory '/usr/src/packages/BUILD/src' [ 692s] make[4]: *** [Makefile:690: all-recursive] Error 1 [ 692s] make[4]: Leaving directory '/usr/src/packages/BUILD/src' [ 692s] make[3]: *** [Makefile:490: all] Error 2 [ 692s] make[3]: Leaving directory '/usr/src/packages/BUILD/src' [ 692s] make[2]: *** [Makefile:468: all-recursive] Error 1 [ 692s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 692s] make[1]: *** [Makefile:390: all] Error 2 [ 692s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 692s] dh_auto_build: error: make -j1 returned exit code 2 [ 692s] make: *** [debian/rules:9: build] Error 25 [ 692s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 692s] ### VM INTERACTION START ### [ 695s] [ 680.981355] sysrq: Power Off [ 695s] [ 680.997849] reboot: Power down [ 695s] ### VM INTERACTION END ### [ 695s] [ 695s] old-atreju4 failed "build osmo-iuh_1.0.0.dsc" at Thu Jan 7 02:35:16 UTC 2021. [ 695s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Jan 7 02:35:40 2021 From: admin at opensuse.org (OBS Notification) Date: Thu, 07 Jan 2021 02:35:40 +0000 Subject: Build failure of network:osmocom:latest/osmo-iuh in xUbuntu_18.04/i586 In-Reply-To: References: Message-ID: <5ff6737fbe5c2_707c2acc32a365f055539a@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-iuh/xUbuntu_18.04/i586 Package network:osmocom:latest/osmo-iuh failed to build in xUbuntu_18.04/i586 Check out the package for editing: osc checkout network:osmocom:latest osmo-iuh Last lines of build log: [ 850s] libtool: link: gcc -Wall -I../include -I../include -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wl,-Bsymbolic-functions -Wl,-z -Wl,relro -o .libs/osmo-hnbgw hnbap_encoder.o hnbap_decoder.o hnbap_common.o rua_encoder.o rua_decoder.o rua_common.o rua_msg_factory.o hnbgw.o hnbgw_hnbap.o hnbgw_rua.o hnbgw_ranap.o hnbgw_vty.o context_map.o hnbgw_cn.o /usr/lib/i386-linux-gnu/libosmovty.so /usr/lib/i386-linux-gnu/libosmoctrl.so /usr/lib/i386-linux-gnu/libosmogsm.so /usr/lib/i386-linux-gnu/libosmocore.so -ltalloc -lasn1c /usr/lib/i386-linux-gnu/libosmo-sigtran.so /usr/lib/i386-linux-gnu/libosmonetif.so hnbap/libosmo-asn1-hnbap.a rua/libosmo-asn1-rua.a ./.libs/libosmo-ranap.so -pthread [ 850s] ./.libs/libosmo-ranap.so: undefined reference to `install_lib_element' [ 850s] collect2: error: ld returned 1 exit status [ 850s] Makefile:602: recipe for target 'osmo-hnbgw' failed [ 850s] make[5]: *** [osmo-hnbgw] Error 1 [ 850s] make[5]: Leaving directory '/usr/src/packages/BUILD/src' [ 850s] Makefile:671: recipe for target 'all-recursive' failed [ 850s] make[4]: *** [all-recursive] Error 1 [ 850s] make[4]: Leaving directory '/usr/src/packages/BUILD/src' [ 850s] Makefile:477: recipe for target 'all' failed [ 850s] make[3]: *** [all] Error 2 [ 850s] make[3]: Leaving directory '/usr/src/packages/BUILD/src' [ 850s] Makefile:468: recipe for target 'all-recursive' failed [ 850s] make[2]: *** [all-recursive] Error 1 [ 850s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 850s] Makefile:390: recipe for target 'all' failed [ 850s] make[1]: *** [all] Error 2 [ 850s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 850s] dh_auto_build: make -j1 returned exit code 2 [ 850s] debian/rules:9: recipe for target 'build' failed [ 850s] make: *** [build] Error 2 [ 850s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 850s] ### VM INTERACTION START ### [ 854s] [ 841.863825] sysrq: Power Off [ 854s] [ 841.868526] reboot: Power down [ 854s] ### VM INTERACTION END ### [ 854s] [ 854s] cloud102 failed "build osmo-iuh_1.0.0.dsc" at Thu Jan 7 02:35:34 UTC 2021. [ 854s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Jan 7 02:36:48 2021 From: admin at opensuse.org (OBS Notification) Date: Thu, 07 Jan 2021 02:36:48 +0000 Subject: Build failure of network:osmocom:latest/osmo-iuh in Debian_10/i586 In-Reply-To: References: Message-ID: <5ff673da53b1d_707c2acc32a365f05555ac@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-iuh/Debian_10/i586 Package network:osmocom:latest/osmo-iuh failed to build in Debian_10/i586 Check out the package for editing: osc checkout network:osmocom:latest osmo-iuh Last lines of build log: o-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupItem-RelocReqAck.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-EnhRelocInfoReq.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-EnhRelocInfoRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-EnhancedRelocCompleteReq.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-EnhancedRelocCompleteRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-RelocReq.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-RelocReqAck.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifiedItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifiedList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifyItemFirst.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifyItemSecond.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifyList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SubflowCombinationBitRate.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-ToBeReleasedItem-EnhancedRelocCompleteRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-ToBeReleasedList-EnhancedRelocCompleteRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-TrCH-Mapping.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-TrCH-MappingItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABDataVolumeReport.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABParametersList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABased.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABs-ContextFailedtoTransferItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABs-ContextFailedtoTransferList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABs-failed-to-reportItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABs-failed-to-reportList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAC.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAI-List.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAListofIdleModeUEs.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAListwithNoIdleModeUEsAnyMore.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RANAP-EnhancedRelocationInformationRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RANAP-EnhancedRelocationInformationResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RANAP-PDU.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RANAP-RelocationInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAT-Type.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAofIdleModeUEs.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RIM-Transfer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RIMInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RIMRoutingAddress.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RNC-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RNCTraceInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RNSAPRelocationParameters.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RRC-Container.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRQ-Extension.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRQ-Type.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRVCC-HO-Indication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRVCC-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRVCC-Operation-Possible.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RTLoadValue.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RateControlAllowed.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RedirectAttemptFlag.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RedirectionCompleted.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RedirectionIndication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RejectCauseValue.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationCancel.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationCancelAcknowledge.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationCommand.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationComplete.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationDetect.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationFailure.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationPreparationFailure.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationRequestAcknowledge.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationRequired.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationRequirement.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationType.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RepetitionNumber0.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RepetitionNumber1.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ReportAmount.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ReportArea.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ReportChangeOfSAI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ReportInterval.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestType.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-ExtendedGuaranteedBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-ExtendedMaxBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-GuaranteedBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-MaxBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-Values.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedGANSSAssistanceData.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedGPSAssistanceData.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedLocationRelatedDataType.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedMBMSIPMulticastAddressandAPNRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedMulticastServiceList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Reset.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetAcknowledge.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResource.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceAckItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceAckList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceAcknowledge.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResidualBitErrorRatio.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResponseTime.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SAC.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SAI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SAPI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-ErrorRatio.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-FormatInformationParameterItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-FormatInformationParameters.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-ParameterItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-Parameters.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SNA-Access-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SNAC.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRB-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRB-TrCH-Mapping.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRB-TrCH-MappingItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRNS-ContextRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRNS-ContextResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRNS-DataForwardCommand.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-CSKeysRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-CSKeysResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-HO-Indication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-Operation-Possible.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SecurityModeCommand.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SecurityModeComplete.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SecurityModeReject.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Service-Handover.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Session-Re-establishment-Indicator.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SessionUpdateID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Shared-Network-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SignallingIndication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Source-ToTarget-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceBSS-ToTargetBSS-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceCellID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceRNC-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceRNC-ToTargetRNC-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceStatisticsDescriptor.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceUTRANCellID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceeNodeB-ToTargeteNodeB-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SubflowSDU-Size.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SubscriberProfileIDforRFP.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SuccessfulOutcome.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SupportedBitrate.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SupportedRAB-ParameterBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TAC.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TAI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TBCD-STRING.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TMGI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TMSI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TNLInformationEnhRelInfoReq.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TNLInformationEnhRelInfoRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Target-ToSource-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetBSS-ToSourceBSS-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetCellId.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetENB-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetRNC-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetRNC-ToSourceRNC-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargeteNodeB-ToSourceeNodeB-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TemporaryUE-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Time-UE-StayedInCell-EnhancedGranularity.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Time-UE-StayedInCell.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TimeToMBMSDataTransfer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TimingDifferenceULDL.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TrCH-ID-List.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TrCH-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceDepth.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TracePropagationParameters.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceRecordingSessionInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceRecordingSessionReference.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceReference.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceType.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TrafficClass.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TrafficHandlingPriority.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TransferDelay.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TransportLayerAddress.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TransportLayerInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TriggerID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TriggeringMessage.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TunnelInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TypeOfError.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-AggregateMaximumBitRate.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-AggregateMaximumBitRateDownlink.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-AggregateMaximumBitRateUplink.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-History-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UESBI-Iu.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UESBI-IuA.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UESBI-IuB.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UESpecificInformationIndication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UL-GTP-PDU-SequenceNumber.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UL-N-PDU-SequenceNumber.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UP-ModeVersions.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UPInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UPInitialisationFrame.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_USCH-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UTRAN-CellID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UeRadioCapabilityMatchRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UeRadioCapabilityMatchResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UnsuccessfulLinking-IEs.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UnsuccessfulOutcome.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UnsuccessfullyTransmittedDataVolume.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UplinkInformationExchangeFailure.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UplinkInformationExchangeRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UplinkInformationExchangeResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UserPlaneInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UserPlaneMode.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VelocityEstimate.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VerticalAccuracyCode.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VerticalSpeedDirection.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VerticalVelocity.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VoiceSupportMatchIndicator.o [ 1070s] ar: `u' modifier ignored since `D' is the default (see `U') [ 1070s] libtool: link: ranlib .libs/libosmo-ranap.a [ 1070s] libtool: link: rm -fr .libs/libosmo-ranap.lax [ 1070s] libtool: link: ( cd ".libs" && rm -f "libosmo-ranap.la" && ln -s "../libosmo-ranap.la" "libosmo-ranap.la" ) [ 1070s] /bin/bash ../libtool --tag=CC --mode=link gcc -Wall -I../include -I../include -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wl,-z,relro -o osmo-hnbgw hnbap_encoder.o hnbap_decoder.o hnbap_common.o rua_encoder.o rua_decoder.o rua_common.o rua_msg_factory.o hnbgw.o hnbgw_hnbap.o hnbgw_rua.o hnbgw_ranap.o hnbgw_vty.o context_map.o hnbgw_cn.o -ltalloc -losmocore -ltalloc -losmogsm -losmocore -ltalloc -losmovty -losmocore -ltalloc -losmoctrl -losmogsm -losmocore -ltalloc -lasn1c -losmo-sigtran -losmonetif hnbap/libosmo-asn1-hnbap.a rua/libosmo-asn1-rua.a libosmo-ranap.la [ 1070s] libtool: link: gcc -Wall -I../include -I../include -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wl,-z -Wl,relro -o .libs/osmo-hnbgw hnbap_encoder.o hnbap_decoder.o hnbap_common.o rua_encoder.o rua_decoder.o rua_common.o rua_msg_factory.o hnbgw.o hnbgw_hnbap.o hnbgw_rua.o hnbgw_ranap.o hnbgw_vty.o context_map.o hnbgw_cn.o /usr/lib/i386-linux-gnu/libosmovty.so /usr/lib/i386-linux-gnu/libosmoctrl.so /usr/lib/i386-linux-gnu/libosmogsm.so /usr/lib/i386-linux-gnu/libosmocore.so -ltalloc -lasn1c /usr/lib/i386-linux-gnu/libosmo-sigtran.so /usr/lib/i386-linux-gnu/libosmonetif.so hnbap/libosmo-asn1-hnbap.a rua/libosmo-asn1-rua.a ./.libs/libosmo-ranap.so -pthread [ 1071s] /usr/bin/ld: ./.libs/libosmo-ranap.so: undefined reference to `install_lib_element' [ 1071s] collect2: error: ld returned 1 exit status [ 1071s] make[5]: *** [Makefile:616: osmo-hnbgw] Error 1 [ 1071s] make[5]: Leaving directory '/usr/src/packages/BUILD/src' [ 1071s] make[4]: *** [Makefile:690: all-recursive] Error 1 [ 1071s] make[4]: Leaving directory '/usr/src/packages/BUILD/src' [ 1071s] make[3]: *** [Makefile:490: all] Error 2 [ 1071s] make[3]: Leaving directory '/usr/src/packages/BUILD/src' [ 1071s] make[2]: *** [Makefile:468: all-recursive] Error 1 [ 1071s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 1071s] make[1]: *** [Makefile:390: all] Error 2 [ 1071s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 1071s] dh_auto_build: make -j1 returned exit code 2 [ 1071s] make: *** [debian/rules:9: build] Error 2 [ 1071s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 1071s] ### VM INTERACTION START ### [ 1074s] [ 1033.890246] sysrq: Power Off [ 1074s] [ 1033.918974] reboot: Power down [ 1074s] ### VM INTERACTION END ### [ 1074s] [ 1074s] cloud132 failed "build osmo-iuh_1.0.0.dsc" at Thu Jan 7 02:36:32 UTC 2021. [ 1074s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Jan 7 02:37:57 2021 From: admin at opensuse.org (OBS Notification) Date: Thu, 07 Jan 2021 02:37:57 +0000 Subject: Build failure of network:osmocom:latest/osmo-iuh in Debian_10/x86_64 In-Reply-To: References: Message-ID: <5ff6741276e92_707c2acc32a365f05559e8@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-iuh/Debian_10/x86_64 Package network:osmocom:latest/osmo-iuh failed to build in Debian_10/x86_64 Check out the package for editing: osc checkout network:osmocom:latest osmo-iuh Last lines of build log: libosmo-asn1-ranap.a/RANAP_RAB-SetupItem-RelocReqAck.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-EnhRelocInfoReq.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-EnhRelocInfoRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-EnhancedRelocCompleteReq.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-EnhancedRelocCompleteRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-RelocReq.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-RelocReqAck.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifiedItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifiedList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifyItemFirst.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifyItemSecond.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifyList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SubflowCombinationBitRate.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-ToBeReleasedItem-EnhancedRelocCompleteRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-ToBeReleasedList-EnhancedRelocCompleteRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-TrCH-Mapping.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-TrCH-MappingItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABDataVolumeReport.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABParametersList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABased.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABs-ContextFailedtoTransferItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABs-ContextFailedtoTransferList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABs-failed-to-reportItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABs-failed-to-reportList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAC.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAI-List.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAListofIdleModeUEs.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAListwithNoIdleModeUEsAnyMore.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RANAP-EnhancedRelocationInformationRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RANAP-EnhancedRelocationInformationResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RANAP-PDU.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RANAP-RelocationInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAT-Type.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAofIdleModeUEs.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RIM-Transfer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RIMInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RIMRoutingAddress.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RNC-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RNCTraceInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RNSAPRelocationParameters.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RRC-Container.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRQ-Extension.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRQ-Type.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRVCC-HO-Indication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRVCC-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRVCC-Operation-Possible.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RTLoadValue.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RateControlAllowed.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RedirectAttemptFlag.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RedirectionCompleted.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RedirectionIndication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RejectCauseValue.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationCancel.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationCancelAcknowledge.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationCommand.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationComplete.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationDetect.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationFailure.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationPreparationFailure.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationRequestAcknowledge.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationRequired.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationRequirement.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationType.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RepetitionNumber0.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RepetitionNumber1.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ReportAmount.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ReportArea.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ReportChangeOfSAI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ReportInterval.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestType.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-ExtendedGuaranteedBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-ExtendedMaxBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-GuaranteedBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-MaxBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-Values.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedGANSSAssistanceData.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedGPSAssistanceData.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedLocationRelatedDataType.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedMBMSIPMulticastAddressandAPNRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedMulticastServiceList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Reset.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetAcknowledge.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResource.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceAckItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceAckList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceAcknowledge.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResidualBitErrorRatio.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResponseTime.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SAC.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SAI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SAPI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-ErrorRatio.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-FormatInformationParameterItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-FormatInformationParameters.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-ParameterItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-Parameters.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SNA-Access-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SNAC.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRB-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRB-TrCH-Mapping.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRB-TrCH-MappingItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRNS-ContextRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRNS-ContextResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRNS-DataForwardCommand.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-CSKeysRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-CSKeysResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-HO-Indication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-Operation-Possible.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SecurityModeCommand.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SecurityModeComplete.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SecurityModeReject.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Service-Handover.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Session-Re-establishment-Indicator.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SessionUpdateID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Shared-Network-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SignallingIndication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Source-ToTarget-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceBSS-ToTargetBSS-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceCellID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceRNC-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceRNC-ToTargetRNC-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceStatisticsDescriptor.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceUTRANCellID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceeNodeB-ToTargeteNodeB-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SubflowSDU-Size.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SubscriberProfileIDforRFP.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SuccessfulOutcome.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SupportedBitrate.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SupportedRAB-ParameterBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TAC.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TAI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TBCD-STRING.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TMGI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TMSI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TNLInformationEnhRelInfoReq.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TNLInformationEnhRelInfoRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Target-ToSource-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetBSS-ToSourceBSS-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetCellId.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetENB-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetRNC-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetRNC-ToSourceRNC-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargeteNodeB-ToSourceeNodeB-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TemporaryUE-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Time-UE-StayedInCell-EnhancedGranularity.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Time-UE-StayedInCell.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TimeToMBMSDataTransfer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TimingDifferenceULDL.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TrCH-ID-List.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TrCH-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceDepth.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TracePropagationParameters.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceRecordingSessionInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceRecordingSessionReference.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceReference.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceType.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TrafficClass.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TrafficHandlingPriority.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TransferDelay.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TransportLayerAddress.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TransportLayerInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TriggerID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TriggeringMessage.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TunnelInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TypeOfError.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-AggregateMaximumBitRate.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-AggregateMaximumBitRateDownlink.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-AggregateMaximumBitRateUplink.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-History-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UESBI-Iu.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UESBI-IuA.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UESBI-IuB.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UESpecificInformationIndication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UL-GTP-PDU-SequenceNumber.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UL-N-PDU-SequenceNumber.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UP-ModeVersions.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UPInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UPInitialisationFrame.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_USCH-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UTRAN-CellID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UeRadioCapabilityMatchRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UeRadioCapabilityMatchResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UnsuccessfulLinking-IEs.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UnsuccessfulOutcome.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UnsuccessfullyTransmittedDataVolume.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UplinkInformationExchangeFailure.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UplinkInformationExchangeRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UplinkInformationExchangeResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UserPlaneInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UserPlaneMode.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VelocityEstimate.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VerticalAccuracyCode.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VerticalSpeedDirection.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VerticalVelocity.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VoiceSupportMatchIndicator.o [ 953s] ar: `u' modifier ignored since `D' is the default (see `U') [ 953s] libtool: link: ranlib .libs/libosmo-ranap.a [ 953s] libtool: link: rm -fr .libs/libosmo-ranap.lax [ 953s] libtool: link: ( cd ".libs" && rm -f "libosmo-ranap.la" && ln -s "../libosmo-ranap.la" "libosmo-ranap.la" ) [ 953s] /bin/bash ../libtool --tag=CC --mode=link gcc -Wall -I../include -I../include -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wl,-z,relro -o osmo-hnbgw hnbap_encoder.o hnbap_decoder.o hnbap_common.o rua_encoder.o rua_decoder.o rua_common.o rua_msg_factory.o hnbgw.o hnbgw_hnbap.o hnbgw_rua.o hnbgw_ranap.o hnbgw_vty.o context_map.o hnbgw_cn.o -ltalloc -losmocore -ltalloc -losmogsm -losmocore -ltalloc -losmovty -losmocore -ltalloc -losmoctrl -losmogsm -losmocore -ltalloc -lasn1c -losmo-sigtran -losmonetif hnbap/libosmo-asn1-hnbap.a rua/libosmo-asn1-rua.a libosmo-ranap.la [ 953s] libtool: link: gcc -Wall -I../include -I../include -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wl,-z -Wl,relro -o .libs/osmo-hnbgw hnbap_encoder.o hnbap_decoder.o hnbap_common.o rua_encoder.o rua_decoder.o rua_common.o rua_msg_factory.o hnbgw.o hnbgw_hnbap.o hnbgw_rua.o hnbgw_ranap.o hnbgw_vty.o context_map.o hnbgw_cn.o /usr/lib/x86_64-linux-gnu/libosmovty.so /usr/lib/x86_64-linux-gnu/libosmoctrl.so /usr/lib/x86_64-linux-gnu/libosmogsm.so /usr/lib/x86_64-linux-gnu/libosmocore.so -ltalloc -lasn1c /usr/lib/x86_64-linux-gnu/libosmo-sigtran.so /usr/lib/x86_64-linux-gnu/libosmonetif.so hnbap/libosmo-asn1-hnbap.a rua/libosmo-asn1-rua.a ./.libs/libosmo-ranap.so -pthread [ 954s] /usr/bin/ld: ./.libs/libosmo-ranap.so: undefined reference to `install_lib_element' [ 954s] collect2: error: ld returned 1 exit status [ 954s] make[5]: *** [Makefile:616: osmo-hnbgw] Error 1 [ 954s] make[5]: Leaving directory '/usr/src/packages/BUILD/src' [ 954s] make[4]: *** [Makefile:690: all-recursive] Error 1 [ 954s] make[4]: Leaving directory '/usr/src/packages/BUILD/src' [ 954s] make[3]: *** [Makefile:490: all] Error 2 [ 954s] make[3]: Leaving directory '/usr/src/packages/BUILD/src' [ 954s] make[2]: *** [Makefile:468: all-recursive] Error 1 [ 954s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 954s] make[1]: *** [Makefile:390: all] Error 2 [ 954s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 954s] dh_auto_build: make -j1 returned exit code 2 [ 954s] make: *** [debian/rules:9: build] Error 2 [ 954s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 954s] ### VM INTERACTION START ### [ 957s] [ 928.473030] sysrq: Power Off [ 957s] [ 928.506550] reboot: Power down [ 957s] ### VM INTERACTION END ### [ 957s] [ 957s] cloud108 failed "build osmo-iuh_1.0.0.dsc" at Thu Jan 7 02:37:41 UTC 2021. [ 957s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Jan 7 02:40:14 2021 From: admin at opensuse.org (OBS Notification) Date: Thu, 07 Jan 2021 02:40:14 +0000 Subject: Build failure of network:osmocom:latest/osmo-iuh in xUbuntu_19.10/x86_64 In-Reply-To: References: Message-ID: <5ff674ac35b3_707c2acc32a365f0556699@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-iuh/xUbuntu_19.10/x86_64 Package network:osmocom:latest/osmo-iuh failed to build in xUbuntu_19.10/x86_64 Check out the package for editing: osc checkout network:osmocom:latest osmo-iuh Last lines of build log: ck.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-EnhRelocInfoReq.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-EnhRelocInfoRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-EnhancedRelocCompleteReq.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-EnhancedRelocCompleteRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-RelocReq.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-RelocReqAck.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifiedItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifiedList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifyItemFirst.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifyItemSecond.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifyList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SubflowCombinationBitRate.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-ToBeReleasedItem-EnhancedRelocCompleteRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-ToBeReleasedList-EnhancedRelocCompleteRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-TrCH-Mapping.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-TrCH-MappingItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABDataVolumeReport.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABParametersList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABased.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABs-ContextFailedtoTransferItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABs-ContextFailedtoTransferList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABs-failed-to-reportItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABs-failed-to-reportList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAC.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAI-List.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAListofIdleModeUEs.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAListwithNoIdleModeUEsAnyMore.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RANAP-EnhancedRelocationInformationRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RANAP-EnhancedRelocationInformationResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RANAP-PDU.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RANAP-RelocationInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAT-Type.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAofIdleModeUEs.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RIM-Transfer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RIMInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RIMRoutingAddress.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RNC-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RNCTraceInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RNSAPRelocationParameters.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RRC-Container.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRQ-Extension.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRQ-Type.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRVCC-HO-Indication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRVCC-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRVCC-Operation-Possible.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RTLoadValue.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RateControlAllowed.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RedirectAttemptFlag.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RedirectionCompleted.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RedirectionIndication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RejectCauseValue.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationCancel.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationCancelAcknowledge.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationCommand.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationComplete.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationDetect.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationFailure.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationPreparationFailure.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationRequestAcknowledge.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationRequired.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationRequirement.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationType.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RepetitionNumber0.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RepetitionNumber1.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ReportAmount.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ReportArea.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ReportChangeOfSAI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ReportInterval.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestType.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-ExtendedGuaranteedBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-ExtendedMaxBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-GuaranteedBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-MaxBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-Values.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedGANSSAssistanceData.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedGPSAssistanceData.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedLocationRelatedDataType.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedMBMSIPMulticastAddressandAPNRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedMulticastServiceList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Reset.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetAcknowledge.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResource.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceAckItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceAckList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceAcknowledge.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResidualBitErrorRatio.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResponseTime.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SAC.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SAI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SAPI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-ErrorRatio.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-FormatInformationParameterItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-FormatInformationParameters.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-ParameterItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-Parameters.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SNA-Access-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SNAC.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRB-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRB-TrCH-Mapping.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRB-TrCH-MappingItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRNS-ContextRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRNS-ContextResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRNS-DataForwardCommand.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-CSKeysRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-CSKeysResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-HO-Indication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-Operation-Possible.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SecurityModeCommand.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SecurityModeComplete.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SecurityModeReject.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Service-Handover.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Session-Re-establishment-Indicator.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SessionUpdateID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Shared-Network-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SignallingIndication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Source-ToTarget-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceBSS-ToTargetBSS-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceCellID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceRNC-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceRNC-ToTargetRNC-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceStatisticsDescriptor.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceUTRANCellID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceeNodeB-ToTargeteNodeB-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SubflowSDU-Size.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SubscriberProfileIDforRFP.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SuccessfulOutcome.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SupportedBitrate.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SupportedRAB-ParameterBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TAC.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TAI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TBCD-STRING.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TMGI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TMSI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TNLInformationEnhRelInfoReq.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TNLInformationEnhRelInfoRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Target-ToSource-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetBSS-ToSourceBSS-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetCellId.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetENB-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetRNC-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetRNC-ToSourceRNC-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargeteNodeB-ToSourceeNodeB-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TemporaryUE-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Time-UE-StayedInCell-EnhancedGranularity.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Time-UE-StayedInCell.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TimeToMBMSDataTransfer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TimingDifferenceULDL.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TrCH-ID-List.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TrCH-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceDepth.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TracePropagationParameters.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceRecordingSessionInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceRecordingSessionReference.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceReference.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceType.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TrafficClass.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TrafficHandlingPriority.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TransferDelay.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TransportLayerAddress.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TransportLayerInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TriggerID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TriggeringMessage.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TunnelInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TypeOfError.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-AggregateMaximumBitRate.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-AggregateMaximumBitRateDownlink.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-AggregateMaximumBitRateUplink.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-History-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UESBI-Iu.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UESBI-IuA.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UESBI-IuB.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UESpecificInformationIndication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UL-GTP-PDU-SequenceNumber.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UL-N-PDU-SequenceNumber.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UP-ModeVersions.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UPInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UPInitialisationFrame.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_USCH-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UTRAN-CellID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UeRadioCapabilityMatchRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UeRadioCapabilityMatchResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UnsuccessfulLinking-IEs.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UnsuccessfulOutcome.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UnsuccessfullyTransmittedDataVolume.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UplinkInformationExchangeFailure.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UplinkInformationExchangeRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UplinkInformationExchangeResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UserPlaneInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UserPlaneMode.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VelocityEstimate.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VerticalAccuracyCode.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VerticalSpeedDirection.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VerticalVelocity.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VoiceSupportMatchIndicator.o [ 446s] ar: `u' modifier ignored since `D' is the default (see `U') [ 446s] libtool: link: ranlib .libs/libosmo-ranap.a [ 446s] libtool: link: rm -fr .libs/libosmo-ranap.lax [ 446s] libtool: link: ( cd ".libs" && rm -f "libosmo-ranap.la" && ln -s "../libosmo-ranap.la" "libosmo-ranap.la" ) [ 446s] /bin/bash ../libtool --tag=CC --mode=link gcc -Wall -I../include -I../include -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wl,-Bsymbolic-functions -Wl,-z,relro -o osmo-hnbgw hnbap_encoder.o hnbap_decoder.o hnbap_common.o rua_encoder.o rua_decoder.o rua_common.o rua_msg_factory.o hnbgw.o hnbgw_hnbap.o hnbgw_rua.o hnbgw_ranap.o hnbgw_vty.o context_map.o hnbgw_cn.o -ltalloc -losmocore -ltalloc -losmogsm -losmocore -ltalloc -losmovty -losmocore -ltalloc -losmoctrl -losmogsm -losmocore -ltalloc -lasn1c -losmo-sigtran -losmonetif hnbap/libosmo-asn1-hnbap.a rua/libosmo-asn1-rua.a libosmo-ranap.la [ 446s] libtool: link: gcc -Wall -I../include -I../include -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wl,-Bsymbolic-functions -Wl,-z -Wl,relro -o .libs/osmo-hnbgw hnbap_encoder.o hnbap_decoder.o hnbap_common.o rua_encoder.o rua_decoder.o rua_common.o rua_msg_factory.o hnbgw.o hnbgw_hnbap.o hnbgw_rua.o hnbgw_ranap.o hnbgw_vty.o context_map.o hnbgw_cn.o /usr/lib/x86_64-linux-gnu/libosmovty.so /usr/lib/x86_64-linux-gnu/libosmoctrl.so /usr/lib/x86_64-linux-gnu/libosmogsm.so /usr/lib/x86_64-linux-gnu/libosmocore.so -ltalloc -lasn1c /usr/lib/x86_64-linux-gnu/libosmo-sigtran.so /usr/lib/x86_64-linux-gnu/libosmonetif.so hnbap/libosmo-asn1-hnbap.a rua/libosmo-asn1-rua.a ./.libs/libosmo-ranap.so -pthread [ 446s] /usr/bin/ld: ./.libs/libosmo-ranap.so: undefined reference to `install_lib_element' [ 446s] collect2: error: ld returned 1 exit status [ 446s] make[5]: *** [Makefile:616: osmo-hnbgw] Error 1 [ 446s] make[5]: Leaving directory '/usr/src/packages/BUILD/src' [ 446s] make[4]: *** [Makefile:690: all-recursive] Error 1 [ 446s] make[4]: Leaving directory '/usr/src/packages/BUILD/src' [ 446s] make[3]: *** [Makefile:490: all] Error 2 [ 446s] make[3]: Leaving directory '/usr/src/packages/BUILD/src' [ 446s] make[2]: *** [Makefile:468: all-recursive] Error 1 [ 446s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 446s] make[1]: *** [Makefile:390: all] Error 2 [ 446s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 446s] dh_auto_build: make -j1 returned exit code 2 [ 446s] make: *** [debian/rules:9: build] Error 255 [ 446s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 446s] ### VM INTERACTION START ### [ 449s] [ 439.338576] sysrq: Power Off [ 449s] [ 439.343989] reboot: Power down [ 449s] ### VM INTERACTION END ### [ 449s] [ 449s] lamb11 failed "build osmo-iuh_1.0.0.dsc" at Thu Jan 7 02:40:07 UTC 2021. [ 449s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Jan 7 02:41:05 2021 From: admin at opensuse.org (OBS Notification) Date: Thu, 07 Jan 2021 02:41:05 +0000 Subject: Build failure of network:osmocom:latest/osmo-iuh in xUbuntu_20.10/x86_64 In-Reply-To: References: Message-ID: <5ff674c8b125f_707c2acc32a365f05568be@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-iuh/xUbuntu_20.10/x86_64 Package network:osmocom:latest/osmo-iuh failed to build in xUbuntu_20.10/x86_64 Check out the package for editing: osc checkout network:osmocom:latest osmo-iuh Last lines of build log: mo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupItem-RelocReqAck.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-EnhRelocInfoReq.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-EnhRelocInfoRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-EnhancedRelocCompleteReq.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-EnhancedRelocCompleteRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-RelocReq.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-RelocReqAck.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifiedItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifiedList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifyItemFirst.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifyItemSecond.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifyList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SubflowCombinationBitRate.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-ToBeReleasedItem-EnhancedRelocCompleteRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-ToBeReleasedList-EnhancedRelocCompleteRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-TrCH-Mapping.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-TrCH-MappingItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABDataVolumeReport.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABParametersList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABased.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABs-ContextFailedtoTransferItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABs-ContextFailedtoTransferList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABs-failed-to-reportItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABs-failed-to-reportList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAC.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAI-List.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAListofIdleModeUEs.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAListwithNoIdleModeUEsAnyMore.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RANAP-EnhancedRelocationInformationRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RANAP-EnhancedRelocationInformationResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RANAP-PDU.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RANAP-RelocationInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAT-Type.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAofIdleModeUEs.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RIM-Transfer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RIMInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RIMRoutingAddress.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RNC-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RNCTraceInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RNSAPRelocationParameters.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RRC-Container.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRQ-Extension.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRQ-Type.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRVCC-HO-Indication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRVCC-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRVCC-Operation-Possible.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RTLoadValue.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RateControlAllowed.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RedirectAttemptFlag.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RedirectionCompleted.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RedirectionIndication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RejectCauseValue.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationCancel.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationCancelAcknowledge.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationCommand.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationComplete.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationDetect.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationFailure.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationPreparationFailure.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationRequestAcknowledge.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationRequired.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationRequirement.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationType.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RepetitionNumber0.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RepetitionNumber1.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ReportAmount.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ReportArea.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ReportChangeOfSAI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ReportInterval.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestType.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-ExtendedGuaranteedBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-ExtendedMaxBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-GuaranteedBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-MaxBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-Values.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedGANSSAssistanceData.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedGPSAssistanceData.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedLocationRelatedDataType.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedMBMSIPMulticastAddressandAPNRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedMulticastServiceList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Reset.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetAcknowledge.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResource.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceAckItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceAckList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceAcknowledge.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResidualBitErrorRatio.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResponseTime.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SAC.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SAI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SAPI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-ErrorRatio.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-FormatInformationParameterItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-FormatInformationParameters.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-ParameterItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-Parameters.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SNA-Access-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SNAC.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRB-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRB-TrCH-Mapping.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRB-TrCH-MappingItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRNS-ContextRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRNS-ContextResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRNS-DataForwardCommand.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-CSKeysRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-CSKeysResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-HO-Indication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-Operation-Possible.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SecurityModeCommand.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SecurityModeComplete.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SecurityModeReject.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Service-Handover.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Session-Re-establishment-Indicator.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SessionUpdateID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Shared-Network-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SignallingIndication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Source-ToTarget-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceBSS-ToTargetBSS-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceCellID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceRNC-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceRNC-ToTargetRNC-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceStatisticsDescriptor.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceUTRANCellID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceeNodeB-ToTargeteNodeB-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SubflowSDU-Size.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SubscriberProfileIDforRFP.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SuccessfulOutcome.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SupportedBitrate.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SupportedRAB-ParameterBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TAC.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TAI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TBCD-STRING.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TMGI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TMSI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TNLInformationEnhRelInfoReq.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TNLInformationEnhRelInfoRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Target-ToSource-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetBSS-ToSourceBSS-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetCellId.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetENB-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetRNC-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetRNC-ToSourceRNC-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargeteNodeB-ToSourceeNodeB-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TemporaryUE-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Time-UE-StayedInCell-EnhancedGranularity.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Time-UE-StayedInCell.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TimeToMBMSDataTransfer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TimingDifferenceULDL.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TrCH-ID-List.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TrCH-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceDepth.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TracePropagationParameters.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceRecordingSessionInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceRecordingSessionReference.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceReference.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceType.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TrafficClass.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TrafficHandlingPriority.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TransferDelay.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TransportLayerAddress.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TransportLayerInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TriggerID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TriggeringMessage.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TunnelInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TypeOfError.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-AggregateMaximumBitRate.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-AggregateMaximumBitRateDownlink.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-AggregateMaximumBitRateUplink.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-History-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UESBI-Iu.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UESBI-IuA.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UESBI-IuB.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UESpecificInformationIndication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UL-GTP-PDU-SequenceNumber.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UL-N-PDU-SequenceNumber.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UP-ModeVersions.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UPInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UPInitialisationFrame.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_USCH-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UTRAN-CellID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UeRadioCapabilityMatchRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UeRadioCapabilityMatchResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UnsuccessfulLinking-IEs.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UnsuccessfulOutcome.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UnsuccessfullyTransmittedDataVolume.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UplinkInformationExchangeFailure.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UplinkInformationExchangeRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UplinkInformationExchangeResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UserPlaneInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UserPlaneMode.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VelocityEstimate.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VerticalAccuracyCode.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VerticalSpeedDirection.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VerticalVelocity.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VoiceSupportMatchIndicator.o [ 849s] libtool: link: ranlib .libs/libosmo-ranap.a [ 849s] libtool: link: rm -fr .libs/libosmo-ranap.lax [ 849s] libtool: link: ( cd ".libs" && rm -f "libosmo-ranap.la" && ln -s "../libosmo-ranap.la" "libosmo-ranap.la" ) [ 849s] /bin/bash ../libtool --tag=CC --mode=link gcc -Wall -I../include -I../include -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wl,-Bsymbolic-functions -Wl,-z,relro -o osmo-hnbgw hnbap_encoder.o hnbap_decoder.o hnbap_common.o rua_encoder.o rua_decoder.o rua_common.o rua_msg_factory.o hnbgw.o hnbgw_hnbap.o hnbgw_rua.o hnbgw_ranap.o hnbgw_vty.o context_map.o hnbgw_cn.o -ltalloc -losmocore -ltalloc -losmogsm -losmocore -ltalloc -losmovty -losmocore -ltalloc -losmoctrl -losmogsm -losmocore -ltalloc -lasn1c -losmo-sigtran -losmonetif hnbap/libosmo-asn1-hnbap.a rua/libosmo-asn1-rua.a libosmo-ranap.la [ 850s] libtool: link: gcc -Wall -I../include -I../include -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wl,-Bsymbolic-functions -Wl,-z -Wl,relro -o .libs/osmo-hnbgw hnbap_encoder.o hnbap_decoder.o hnbap_common.o rua_encoder.o rua_decoder.o rua_common.o rua_msg_factory.o hnbgw.o hnbgw_hnbap.o hnbgw_rua.o hnbgw_ranap.o hnbgw_vty.o context_map.o hnbgw_cn.o /usr/lib/x86_64-linux-gnu/libosmovty.so /usr/lib/x86_64-linux-gnu/libosmoctrl.so /usr/lib/x86_64-linux-gnu/libosmogsm.so /usr/lib/x86_64-linux-gnu/libosmocore.so -ltalloc -lasn1c /usr/lib/x86_64-linux-gnu/libosmo-sigtran.so /usr/lib/x86_64-linux-gnu/libosmonetif.so hnbap/libosmo-asn1-hnbap.a rua/libosmo-asn1-rua.a ./.libs/libosmo-ranap.so -pthread [ 850s] /usr/bin/ld: ./.libs/libosmo-ranap.so: undefined reference to `install_lib_element' [ 850s] collect2: error: ld returned 1 exit status [ 850s] make[5]: *** [Makefile:616: osmo-hnbgw] Error 1 [ 850s] make[5]: Leaving directory '/usr/src/packages/BUILD/src' [ 850s] make[4]: *** [Makefile:690: all-recursive] Error 1 [ 850s] make[4]: Leaving directory '/usr/src/packages/BUILD/src' [ 850s] make[3]: *** [Makefile:490: all] Error 2 [ 850s] make[3]: Leaving directory '/usr/src/packages/BUILD/src' [ 850s] make[2]: *** [Makefile:468: all-recursive] Error 1 [ 850s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 850s] make[1]: *** [Makefile:390: all] Error 2 [ 850s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 850s] dh_auto_build: error: make -j1 returned exit code 2 [ 850s] make: *** [debian/rules:9: build] Error 25 [ 850s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 850s] ### VM INTERACTION START ### [ 853s] [ 811.639166] sysrq: Power Off [ 853s] [ 811.702547] reboot: Power down [ 853s] ### VM INTERACTION END ### [ 853s] [ 853s] lamb60 failed "build osmo-iuh_1.0.0.dsc" at Thu Jan 7 02:40:52 UTC 2021. [ 853s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Jan 7 03:17:05 2021 From: admin at opensuse.org (OBS Notification) Date: Thu, 07 Jan 2021 03:17:05 +0000 Subject: Build failure of network:osmocom:latest/osmo-iuh in Debian_10/armv7l In-Reply-To: References: Message-ID: <5ff67d39da6b6_707c2acc32a365f0560983@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-iuh/Debian_10/armv7l Package network:osmocom:latest/osmo-iuh failed to build in Debian_10/armv7l Check out the package for editing: osc checkout network:osmocom:latest osmo-iuh Last lines of build log: AB-SetupItem-RelocReqAck.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-EnhRelocInfoReq.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-EnhRelocInfoRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-EnhancedRelocCompleteReq.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-EnhancedRelocCompleteRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-RelocReq.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-RelocReqAck.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifiedItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifiedList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifyItemFirst.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifyItemSecond.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifyList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SubflowCombinationBitRate.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-ToBeReleasedItem-EnhancedRelocCompleteRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-ToBeReleasedList-EnhancedRelocCompleteRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-TrCH-Mapping.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-TrCH-MappingItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABDataVolumeReport.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABParametersList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABased.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABs-ContextFailedtoTransferItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABs-ContextFailedtoTransferList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABs-failed-to-reportItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABs-failed-to-reportList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAC.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAI-List.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAListofIdleModeUEs.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAListwithNoIdleModeUEsAnyMore.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RANAP-EnhancedRelocationInformationRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RANAP-EnhancedRelocationInformationResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RANAP-PDU.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RANAP-RelocationInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAT-Type.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAofIdleModeUEs.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RIM-Transfer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RIMInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RIMRoutingAddress.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RNC-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RNCTraceInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RNSAPRelocationParameters.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RRC-Container.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRQ-Extension.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRQ-Type.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRVCC-HO-Indication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRVCC-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRVCC-Operation-Possible.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RTLoadValue.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RateControlAllowed.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RedirectAttemptFlag.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RedirectionCompleted.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RedirectionIndication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RejectCauseValue.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationCancel.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationCancelAcknowledge.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationCommand.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationComplete.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationDetect.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationFailure.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationPreparationFailure.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationRequestAcknowledge.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationRequired.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationRequirement.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationType.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RepetitionNumber0.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RepetitionNumber1.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ReportAmount.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ReportArea.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ReportChangeOfSAI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ReportInterval.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestType.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-ExtendedGuaranteedBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-ExtendedMaxBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-GuaranteedBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-MaxBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-Values.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedGANSSAssistanceData.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedGPSAssistanceData.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedLocationRelatedDataType.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedMBMSIPMulticastAddressandAPNRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedMulticastServiceList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Reset.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetAcknowledge.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResource.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceAckItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceAckList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceAcknowledge.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResidualBitErrorRatio.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResponseTime.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SAC.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SAI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SAPI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-ErrorRatio.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-FormatInformationParameterItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-FormatInformationParameters.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-ParameterItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-Parameters.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SNA-Access-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SNAC.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRB-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRB-TrCH-Mapping.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRB-TrCH-MappingItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRNS-ContextRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRNS-ContextResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRNS-DataForwardCommand.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-CSKeysRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-CSKeysResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-HO-Indication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-Operation-Possible.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SecurityModeCommand.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SecurityModeComplete.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SecurityModeReject.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Service-Handover.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Session-Re-establishment-Indicator.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SessionUpdateID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Shared-Network-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SignallingIndication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Source-ToTarget-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceBSS-ToTargetBSS-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceCellID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceRNC-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceRNC-ToTargetRNC-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceStatisticsDescriptor.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceUTRANCellID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceeNodeB-ToTargeteNodeB-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SubflowSDU-Size.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SubscriberProfileIDforRFP.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SuccessfulOutcome.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SupportedBitrate.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SupportedRAB-ParameterBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TAC.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TAI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TBCD-STRING.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TMGI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TMSI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TNLInformationEnhRelInfoReq.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TNLInformationEnhRelInfoRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Target-ToSource-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetBSS-ToSourceBSS-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetCellId.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetENB-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetRNC-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetRNC-ToSourceRNC-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargeteNodeB-ToSourceeNodeB-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TemporaryUE-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Time-UE-StayedInCell-EnhancedGranularity.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Time-UE-StayedInCell.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TimeToMBMSDataTransfer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TimingDifferenceULDL.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TrCH-ID-List.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TrCH-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceDepth.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TracePropagationParameters.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceRecordingSessionInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceRecordingSessionReference.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceReference.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceType.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TrafficClass.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TrafficHandlingPriority.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TransferDelay.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TransportLayerAddress.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TransportLayerInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TriggerID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TriggeringMessage.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TunnelInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TypeOfError.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-AggregateMaximumBitRate.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-AggregateMaximumBitRateDownlink.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-AggregateMaximumBitRateUplink.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-History-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UESBI-Iu.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UESBI-IuA.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UESBI-IuB.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UESpecificInformationIndication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UL-GTP-PDU-SequenceNumber.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UL-N-PDU-SequenceNumber.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UP-ModeVersions.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UPInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UPInitialisationFrame.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_USCH-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UTRAN-CellID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UeRadioCapabilityMatchRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UeRadioCapabilityMatchResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UnsuccessfulLinking-IEs.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UnsuccessfulOutcome.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UnsuccessfullyTransmittedDataVolume.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UplinkInformationExchangeFailure.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UplinkInformationExchangeRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UplinkInformationExchangeResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UserPlaneInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UserPlaneMode.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VelocityEstimate.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VerticalAccuracyCode.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VerticalSpeedDirection.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VerticalVelocity.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VoiceSupportMatchIndicator.o [ 1265s] ar: `u' modifier ignored since `D' is the default (see `U') [ 1265s] libtool: link: ranlib .libs/libosmo-ranap.a [ 1265s] libtool: link: rm -fr .libs/libosmo-ranap.lax [ 1265s] libtool: link: ( cd ".libs" && rm -f "libosmo-ranap.la" && ln -s "../libosmo-ranap.la" "libosmo-ranap.la" ) [ 1265s] /bin/bash ../libtool --tag=CC --mode=link gcc -Wall -I../include -I../include -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wl,-z,relro -o osmo-hnbgw hnbap_encoder.o hnbap_decoder.o hnbap_common.o rua_encoder.o rua_decoder.o rua_common.o rua_msg_factory.o hnbgw.o hnbgw_hnbap.o hnbgw_rua.o hnbgw_ranap.o hnbgw_vty.o context_map.o hnbgw_cn.o -ltalloc -losmocore -ltalloc -losmogsm -losmocore -ltalloc -losmovty -losmocore -ltalloc -losmoctrl -losmogsm -losmocore -ltalloc -lasn1c -losmo-sigtran -losmonetif hnbap/libosmo-asn1-hnbap.a rua/libosmo-asn1-rua.a libosmo-ranap.la [ 1265s] libtool: link: gcc -Wall -I../include -I../include -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wl,-z -Wl,relro -o .libs/osmo-hnbgw hnbap_encoder.o hnbap_decoder.o hnbap_common.o rua_encoder.o rua_decoder.o rua_common.o rua_msg_factory.o hnbgw.o hnbgw_hnbap.o hnbgw_rua.o hnbgw_ranap.o hnbgw_vty.o context_map.o hnbgw_cn.o /usr/lib/arm-linux-gnueabihf/libosmovty.so /usr/lib/arm-linux-gnueabihf/libosmoctrl.so /usr/lib/arm-linux-gnueabihf/libosmogsm.so /usr/lib/arm-linux-gnueabihf/libosmocore.so -ltalloc -lasn1c /usr/lib/arm-linux-gnueabihf/libosmo-sigtran.so /usr/lib/arm-linux-gnueabihf/libosmonetif.so hnbap/libosmo-asn1-hnbap.a rua/libosmo-asn1-rua.a ./.libs/libosmo-ranap.so -pthread [ 1265s] /usr/bin/ld: ./.libs/libosmo-ranap.so: undefined reference to `install_lib_element' [ 1265s] collect2: error: ld returned 1 exit status [ 1265s] make[5]: *** [Makefile:616: osmo-hnbgw] Error 1 [ 1265s] make[5]: Leaving directory '/usr/src/packages/BUILD/src' [ 1265s] make[4]: *** [Makefile:690: all-recursive] Error 1 [ 1265s] make[4]: Leaving directory '/usr/src/packages/BUILD/src' [ 1265s] make[3]: *** [Makefile:490: all] Error 2 [ 1265s] make[3]: Leaving directory '/usr/src/packages/BUILD/src' [ 1265s] make[2]: *** [Makefile:468: all-recursive] Error 1 [ 1265s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 1265s] make[1]: *** [Makefile:390: all] Error 2 [ 1265s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 1265s] dh_auto_build: make -j1 returned exit code 2 [ 1265s] make: *** [debian/rules:9: build] Error 2 [ 1265s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 1265s] ### VM INTERACTION START ### [ 1269s] [ 1218.689166] sysrq: SysRq : Power Off [ 1269s] [ 1218.702092] reboot: Power down [ 1269s] ### VM INTERACTION END ### [ 1269s] [ 1269s] armbuild02 failed "build osmo-iuh_1.0.0.dsc" at Thu Jan 7 03:16:59 UTC 2021. [ 1269s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Jan 7 03:22:48 2021 From: admin at opensuse.org (OBS Notification) Date: Thu, 07 Jan 2021 03:22:48 +0000 Subject: Build failure of network:osmocom:latest/osmo-iuh in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5ff67e8ccd30a_707c2acc32a365f0561459@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-iuh/Debian_Unstable/x86_64 Package network:osmocom:latest/osmo-iuh failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:latest osmo-iuh Last lines of build log: ranap.a/RANAP_RAB-SetupItem-RelocReq.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupItem-RelocReqAck.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-EnhRelocInfoReq.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-EnhRelocInfoRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-EnhancedRelocCompleteReq.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-EnhancedRelocCompleteRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-RelocReq.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-RelocReqAck.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifiedItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifiedList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifyItemFirst.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifyItemSecond.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifyList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SubflowCombinationBitRate.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-ToBeReleasedItem-EnhancedRelocCompleteRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-ToBeReleasedList-EnhancedRelocCompleteRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-TrCH-Mapping.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-TrCH-MappingItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABDataVolumeReport.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABParametersList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABased.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABs-ContextFailedtoTransferItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABs-ContextFailedtoTransferList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABs-failed-to-reportItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABs-failed-to-reportList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAC.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAI-List.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAListofIdleModeUEs.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAListwithNoIdleModeUEsAnyMore.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RANAP-EnhancedRelocationInformationRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RANAP-EnhancedRelocationInformationResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RANAP-PDU.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RANAP-RelocationInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAT-Type.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAofIdleModeUEs.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RIM-Transfer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RIMInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RIMRoutingAddress.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RNC-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RNCTraceInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RNSAPRelocationParameters.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RRC-Container.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRQ-Extension.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRQ-Type.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRVCC-HO-Indication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRVCC-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRVCC-Operation-Possible.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RTLoadValue.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RateControlAllowed.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RedirectAttemptFlag.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RedirectionCompleted.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RedirectionIndication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RejectCauseValue.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationCancel.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationCancelAcknowledge.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationCommand.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationComplete.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationDetect.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationFailure.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationPreparationFailure.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationRequestAcknowledge.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationRequired.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationRequirement.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationType.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RepetitionNumber0.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RepetitionNumber1.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ReportAmount.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ReportArea.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ReportChangeOfSAI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ReportInterval.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestType.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-ExtendedGuaranteedBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-ExtendedMaxBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-GuaranteedBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-MaxBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-Values.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedGANSSAssistanceData.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedGPSAssistanceData.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedLocationRelatedDataType.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedMBMSIPMulticastAddressandAPNRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedMulticastServiceList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Reset.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetAcknowledge.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResource.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceAckItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceAckList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceAcknowledge.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResidualBitErrorRatio.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResponseTime.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SAC.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SAI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SAPI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-ErrorRatio.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-FormatInformationParameterItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-FormatInformationParameters.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-ParameterItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-Parameters.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SNA-Access-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SNAC.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRB-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRB-TrCH-Mapping.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRB-TrCH-MappingItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRNS-ContextRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRNS-ContextResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRNS-DataForwardCommand.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-CSKeysRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-CSKeysResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-HO-Indication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-Operation-Possible.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SecurityModeCommand.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SecurityModeComplete.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SecurityModeReject.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Service-Handover.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Session-Re-establishment-Indicator.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SessionUpdateID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Shared-Network-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SignallingIndication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Source-ToTarget-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceBSS-ToTargetBSS-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceCellID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceRNC-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceRNC-ToTargetRNC-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceStatisticsDescriptor.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceUTRANCellID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceeNodeB-ToTargeteNodeB-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SubflowSDU-Size.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SubscriberProfileIDforRFP.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SuccessfulOutcome.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SupportedBitrate.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SupportedRAB-ParameterBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TAC.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TAI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TBCD-STRING.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TMGI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TMSI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TNLInformationEnhRelInfoReq.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TNLInformationEnhRelInfoRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Target-ToSource-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetBSS-ToSourceBSS-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetCellId.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetENB-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetRNC-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetRNC-ToSourceRNC-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargeteNodeB-ToSourceeNodeB-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TemporaryUE-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Time-UE-StayedInCell-EnhancedGranularity.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Time-UE-StayedInCell.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TimeToMBMSDataTransfer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TimingDifferenceULDL.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TrCH-ID-List.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TrCH-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceDepth.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TracePropagationParameters.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceRecordingSessionInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceRecordingSessionReference.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceReference.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceType.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TrafficClass.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TrafficHandlingPriority.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TransferDelay.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TransportLayerAddress.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TransportLayerInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TriggerID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TriggeringMessage.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TunnelInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TypeOfError.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-AggregateMaximumBitRate.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-AggregateMaximumBitRateDownlink.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-AggregateMaximumBitRateUplink.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-History-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UESBI-Iu.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UESBI-IuA.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UESBI-IuB.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UESpecificInformationIndication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UL-GTP-PDU-SequenceNumber.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UL-N-PDU-SequenceNumber.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UP-ModeVersions.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UPInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UPInitialisationFrame.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_USCH-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UTRAN-CellID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UeRadioCapabilityMatchRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UeRadioCapabilityMatchResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UnsuccessfulLinking-IEs.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UnsuccessfulOutcome.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UnsuccessfullyTransmittedDataVolume.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UplinkInformationExchangeFailure.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UplinkInformationExchangeRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UplinkInformationExchangeResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UserPlaneInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UserPlaneMode.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VelocityEstimate.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VerticalAccuracyCode.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VerticalSpeedDirection.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VerticalVelocity.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VoiceSupportMatchIndicator.o [ 695s] libtool: link: ranlib .libs/libosmo-ranap.a [ 695s] libtool: link: rm -fr .libs/libosmo-ranap.lax [ 695s] libtool: link: ( cd ".libs" && rm -f "libosmo-ranap.la" && ln -s "../libosmo-ranap.la" "libosmo-ranap.la" ) [ 695s] /bin/bash ../libtool --tag=CC --mode=link gcc -Wall -I../include -I../include -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wl,-z,relro -o osmo-hnbgw hnbap_encoder.o hnbap_decoder.o hnbap_common.o rua_encoder.o rua_decoder.o rua_common.o rua_msg_factory.o hnbgw.o hnbgw_hnbap.o hnbgw_rua.o hnbgw_ranap.o hnbgw_vty.o context_map.o hnbgw_cn.o -ltalloc -losmocore -ltalloc -losmogsm -losmocore -ltalloc -losmovty -losmocore -ltalloc -losmoctrl -losmogsm -losmocore -ltalloc -lasn1c -losmo-sigtran -losmonetif hnbap/libosmo-asn1-hnbap.a rua/libosmo-asn1-rua.a libosmo-ranap.la [ 695s] libtool: link: gcc -Wall -I../include -I../include -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wl,-z -Wl,relro -o .libs/osmo-hnbgw hnbap_encoder.o hnbap_decoder.o hnbap_common.o rua_encoder.o rua_decoder.o rua_common.o rua_msg_factory.o hnbgw.o hnbgw_hnbap.o hnbgw_rua.o hnbgw_ranap.o hnbgw_vty.o context_map.o hnbgw_cn.o /usr/lib/x86_64-linux-gnu/libosmovty.so /usr/lib/x86_64-linux-gnu/libosmoctrl.so /usr/lib/x86_64-linux-gnu/libosmogsm.so /usr/lib/x86_64-linux-gnu/libosmocore.so -ltalloc -lasn1c /usr/lib/x86_64-linux-gnu/libosmo-sigtran.so /usr/lib/x86_64-linux-gnu/libosmonetif.so hnbap/libosmo-asn1-hnbap.a rua/libosmo-asn1-rua.a ./.libs/libosmo-ranap.so -pthread [ 695s] /usr/bin/ld: ./.libs/libosmo-ranap.so: undefined reference to `install_lib_element' [ 695s] collect2: error: ld returned 1 exit status [ 695s] make[5]: *** [Makefile:616: osmo-hnbgw] Error 1 [ 695s] make[5]: Leaving directory '/usr/src/packages/BUILD/src' [ 695s] make[4]: *** [Makefile:690: all-recursive] Error 1 [ 695s] make[4]: Leaving directory '/usr/src/packages/BUILD/src' [ 695s] make[3]: *** [Makefile:490: all] Error 2 [ 695s] make[3]: Leaving directory '/usr/src/packages/BUILD/src' [ 695s] make[2]: *** [Makefile:470: all-recursive] Error 1 [ 695s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 695s] make[1]: *** [Makefile:392: all] Error 2 [ 695s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 695s] dh_auto_build: error: make -j1 returned exit code 2 [ 695s] make: *** [debian/rules:9: build] Error 25 [ 695s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 695s] ### VM INTERACTION START ### [ 698s] [ 658.423496] sysrq: Power Off [ 698s] [ 658.429688] reboot: Power down [ 698s] ### VM INTERACTION END ### [ 698s] [ 698s] lamb09 failed "build osmo-iuh_1.0.0.dsc" at Thu Jan 7 03:22:36 UTC 2021. [ 698s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Jan 7 03:27:22 2021 From: admin at opensuse.org (OBS Notification) Date: Thu, 07 Jan 2021 03:27:22 +0000 Subject: Build failure of network:osmocom:latest/osmo-iuh in Debian_Testing/x86_64 In-Reply-To: References: Message-ID: <5ff67fb0da91a_707c2acc32a365f0561837@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-iuh/Debian_Testing/x86_64 Package network:osmocom:latest/osmo-iuh failed to build in Debian_Testing/x86_64 Check out the package for editing: osc checkout network:osmocom:latest osmo-iuh Last lines of build log: ranap.a/RANAP_RAB-SetupItem-RelocReq.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupItem-RelocReqAck.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-EnhRelocInfoReq.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-EnhRelocInfoRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-EnhancedRelocCompleteReq.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-EnhancedRelocCompleteRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-RelocReq.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-RelocReqAck.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifiedItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifiedList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifyItemFirst.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifyItemSecond.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifyList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SubflowCombinationBitRate.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-ToBeReleasedItem-EnhancedRelocCompleteRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-ToBeReleasedList-EnhancedRelocCompleteRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-TrCH-Mapping.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-TrCH-MappingItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABDataVolumeReport.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABParametersList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABased.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABs-ContextFailedtoTransferItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABs-ContextFailedtoTransferList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABs-failed-to-reportItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABs-failed-to-reportList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAC.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAI-List.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAListofIdleModeUEs.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAListwithNoIdleModeUEsAnyMore.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RANAP-EnhancedRelocationInformationRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RANAP-EnhancedRelocationInformationResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RANAP-PDU.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RANAP-RelocationInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAT-Type.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAofIdleModeUEs.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RIM-Transfer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RIMInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RIMRoutingAddress.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RNC-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RNCTraceInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RNSAPRelocationParameters.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RRC-Container.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRQ-Extension.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRQ-Type.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRVCC-HO-Indication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRVCC-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRVCC-Operation-Possible.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RTLoadValue.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RateControlAllowed.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RedirectAttemptFlag.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RedirectionCompleted.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RedirectionIndication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RejectCauseValue.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationCancel.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationCancelAcknowledge.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationCommand.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationComplete.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationDetect.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationFailure.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationPreparationFailure.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationRequestAcknowledge.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationRequired.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationRequirement.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationType.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RepetitionNumber0.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RepetitionNumber1.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ReportAmount.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ReportArea.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ReportChangeOfSAI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ReportInterval.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestType.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-ExtendedGuaranteedBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-ExtendedMaxBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-GuaranteedBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-MaxBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-Values.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedGANSSAssistanceData.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedGPSAssistanceData.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedLocationRelatedDataType.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedMBMSIPMulticastAddressandAPNRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedMulticastServiceList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Reset.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetAcknowledge.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResource.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceAckItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceAckList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceAcknowledge.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResidualBitErrorRatio.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResponseTime.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SAC.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SAI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SAPI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-ErrorRatio.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-FormatInformationParameterItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-FormatInformationParameters.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-ParameterItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-Parameters.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SNA-Access-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SNAC.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRB-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRB-TrCH-Mapping.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRB-TrCH-MappingItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRNS-ContextRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRNS-ContextResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRNS-DataForwardCommand.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-CSKeysRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-CSKeysResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-HO-Indication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-Operation-Possible.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SecurityModeCommand.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SecurityModeComplete.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SecurityModeReject.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Service-Handover.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Session-Re-establishment-Indicator.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SessionUpdateID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Shared-Network-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SignallingIndication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Source-ToTarget-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceBSS-ToTargetBSS-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceCellID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceRNC-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceRNC-ToTargetRNC-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceStatisticsDescriptor.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceUTRANCellID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceeNodeB-ToTargeteNodeB-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SubflowSDU-Size.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SubscriberProfileIDforRFP.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SuccessfulOutcome.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SupportedBitrate.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SupportedRAB-ParameterBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TAC.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TAI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TBCD-STRING.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TMGI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TMSI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TNLInformationEnhRelInfoReq.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TNLInformationEnhRelInfoRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Target-ToSource-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetBSS-ToSourceBSS-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetCellId.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetENB-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetRNC-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetRNC-ToSourceRNC-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargeteNodeB-ToSourceeNodeB-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TemporaryUE-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Time-UE-StayedInCell-EnhancedGranularity.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Time-UE-StayedInCell.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TimeToMBMSDataTransfer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TimingDifferenceULDL.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TrCH-ID-List.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TrCH-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceDepth.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TracePropagationParameters.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceRecordingSessionInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceRecordingSessionReference.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceReference.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceType.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TrafficClass.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TrafficHandlingPriority.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TransferDelay.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TransportLayerAddress.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TransportLayerInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TriggerID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TriggeringMessage.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TunnelInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TypeOfError.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-AggregateMaximumBitRate.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-AggregateMaximumBitRateDownlink.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-AggregateMaximumBitRateUplink.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-History-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UESBI-Iu.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UESBI-IuA.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UESBI-IuB.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UESpecificInformationIndication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UL-GTP-PDU-SequenceNumber.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UL-N-PDU-SequenceNumber.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UP-ModeVersions.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UPInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UPInitialisationFrame.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_USCH-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UTRAN-CellID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UeRadioCapabilityMatchRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UeRadioCapabilityMatchResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UnsuccessfulLinking-IEs.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UnsuccessfulOutcome.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UnsuccessfullyTransmittedDataVolume.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UplinkInformationExchangeFailure.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UplinkInformationExchangeRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UplinkInformationExchangeResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UserPlaneInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UserPlaneMode.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VelocityEstimate.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VerticalAccuracyCode.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VerticalSpeedDirection.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VerticalVelocity.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VoiceSupportMatchIndicator.o [ 467s] libtool: link: ranlib .libs/libosmo-ranap.a [ 467s] libtool: link: rm -fr .libs/libosmo-ranap.lax [ 467s] libtool: link: ( cd ".libs" && rm -f "libosmo-ranap.la" && ln -s "../libosmo-ranap.la" "libosmo-ranap.la" ) [ 467s] /bin/bash ../libtool --tag=CC --mode=link gcc -Wall -I../include -I../include -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wl,-z,relro -o osmo-hnbgw hnbap_encoder.o hnbap_decoder.o hnbap_common.o rua_encoder.o rua_decoder.o rua_common.o rua_msg_factory.o hnbgw.o hnbgw_hnbap.o hnbgw_rua.o hnbgw_ranap.o hnbgw_vty.o context_map.o hnbgw_cn.o -ltalloc -losmocore -ltalloc -losmogsm -losmocore -ltalloc -losmovty -losmocore -ltalloc -losmoctrl -losmogsm -losmocore -ltalloc -lasn1c -losmo-sigtran -losmonetif hnbap/libosmo-asn1-hnbap.a rua/libosmo-asn1-rua.a libosmo-ranap.la [ 467s] libtool: link: gcc -Wall -I../include -I../include -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wl,-z -Wl,relro -o .libs/osmo-hnbgw hnbap_encoder.o hnbap_decoder.o hnbap_common.o rua_encoder.o rua_decoder.o rua_common.o rua_msg_factory.o hnbgw.o hnbgw_hnbap.o hnbgw_rua.o hnbgw_ranap.o hnbgw_vty.o context_map.o hnbgw_cn.o /usr/lib/x86_64-linux-gnu/libosmovty.so /usr/lib/x86_64-linux-gnu/libosmoctrl.so /usr/lib/x86_64-linux-gnu/libosmogsm.so /usr/lib/x86_64-linux-gnu/libosmocore.so -ltalloc -lasn1c /usr/lib/x86_64-linux-gnu/libosmo-sigtran.so /usr/lib/x86_64-linux-gnu/libosmonetif.so hnbap/libosmo-asn1-hnbap.a rua/libosmo-asn1-rua.a ./.libs/libosmo-ranap.so -pthread [ 468s] /usr/bin/ld: ./.libs/libosmo-ranap.so: undefined reference to `install_lib_element' [ 468s] collect2: error: ld returned 1 exit status [ 468s] make[5]: *** [Makefile:616: osmo-hnbgw] Error 1 [ 468s] make[5]: Leaving directory '/usr/src/packages/BUILD/src' [ 468s] make[4]: *** [Makefile:690: all-recursive] Error 1 [ 468s] make[4]: Leaving directory '/usr/src/packages/BUILD/src' [ 468s] make[3]: *** [Makefile:490: all] Error 2 [ 468s] make[3]: Leaving directory '/usr/src/packages/BUILD/src' [ 468s] make[2]: *** [Makefile:470: all-recursive] Error 1 [ 468s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 468s] make[1]: *** [Makefile:392: all] Error 2 [ 468s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 468s] dh_auto_build: error: make -j1 returned exit code 2 [ 468s] make: *** [debian/rules:9: build] Error 25 [ 468s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 468s] ### VM INTERACTION START ### [ 471s] [ 457.522322] sysrq: Power Off [ 471s] [ 457.529722] reboot: Power down [ 471s] ### VM INTERACTION END ### [ 471s] [ 471s] lamb73 failed "build osmo-iuh_1.0.0.dsc" at Thu Jan 7 03:27:07 UTC 2021. [ 471s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Jan 7 03:45:57 2021 From: admin at opensuse.org (OBS Notification) Date: Thu, 07 Jan 2021 03:45:57 +0000 Subject: Build failure of network:osmocom:latest/osmo-iuh in Debian_9.0/armv7l In-Reply-To: References: Message-ID: <5ff684029f0ec_707c2acc32a365f05624f7@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-iuh/Debian_9.0/armv7l Package network:osmocom:latest/osmo-iuh failed to build in Debian_9.0/armv7l Check out the package for editing: osc checkout network:osmocom:latest osmo-iuh Last lines of build log: [ 1702s] libtool: link: gcc -Wall -I../include -I../include -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wl,-z -Wl,relro -o .libs/osmo-hnbgw hnbap_encoder.o hnbap_decoder.o hnbap_common.o rua_encoder.o rua_decoder.o rua_common.o rua_msg_factory.o hnbgw.o hnbgw_hnbap.o hnbgw_rua.o hnbgw_ranap.o hnbgw_vty.o context_map.o hnbgw_cn.o /usr/lib/arm-linux-gnueabihf/libosmovty.so /usr/lib/arm-linux-gnueabihf/libosmoctrl.so /usr/lib/arm-linux-gnueabihf/libosmogsm.so /usr/lib/arm-linux-gnueabihf/libosmocore.so -ltalloc -lasn1c /usr/lib/arm-linux-gnueabihf/libosmo-sigtran.so /usr/lib/arm-linux-gnueabihf/libosmonetif.so hnbap/libosmo-asn1-hnbap.a rua/libosmo-asn1-rua.a ./.libs/libosmo-ranap.so -pthread [ 1702s] ./.libs/libosmo-ranap.so: undefined reference to `install_lib_element' [ 1702s] collect2: error: ld returned 1 exit status [ 1702s] Makefile:602: recipe for target 'osmo-hnbgw' failed [ 1702s] make[5]: *** [osmo-hnbgw] Error 1 [ 1702s] make[5]: Leaving directory '/usr/src/packages/BUILD/src' [ 1702s] Makefile:671: recipe for target 'all-recursive' failed [ 1702s] make[4]: *** [all-recursive] Error 1 [ 1702s] make[4]: Leaving directory '/usr/src/packages/BUILD/src' [ 1702s] Makefile:477: recipe for target 'all' failed [ 1702s] make[3]: *** [all] Error 2 [ 1702s] make[3]: Leaving directory '/usr/src/packages/BUILD/src' [ 1702s] Makefile:468: recipe for target 'all-recursive' failed [ 1702s] make[2]: *** [all-recursive] Error 1 [ 1702s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 1702s] Makefile:390: recipe for target 'all' failed [ 1702s] make[1]: *** [all] Error 2 [ 1702s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 1702s] dh_auto_build: make -j1 returned exit code 2 [ 1702s] debian/rules:9: recipe for target 'build' failed [ 1702s] make: *** [build] Error 2 [ 1702s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 1702s] ### VM INTERACTION START ### [ 1705s] [ 1674.609609] sysrq: SysRq : Power Off [ 1705s] [ 1674.650216] reboot: Power down [ 1705s] ### VM INTERACTION END ### [ 1706s] [ 1706s] armbuild02 failed "build osmo-iuh_1.0.0.dsc" at Thu Jan 7 03:45:55 UTC 2021. [ 1706s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Jan 7 05:01:05 2021 From: admin at opensuse.org (OBS Notification) Date: Thu, 07 Jan 2021 05:01:05 +0000 Subject: Build failure of network:osmocom:latest/osmo-iuh in Raspbian_10/armv7l In-Reply-To: References: Message-ID: <5ff69598ae7df_707c2acc32a365f056974c@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-iuh/Raspbian_10/armv7l Package network:osmocom:latest/osmo-iuh failed to build in Raspbian_10/armv7l Check out the package for editing: osc checkout network:osmocom:latest osmo-iuh Last lines of build log: RAB-SetupItem-RelocReqAck.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-EnhRelocInfoReq.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-EnhRelocInfoRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-EnhancedRelocCompleteReq.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-EnhancedRelocCompleteRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-RelocReq.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-RelocReqAck.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifiedItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifiedList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifyItemFirst.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifyItemSecond.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifyList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SubflowCombinationBitRate.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-ToBeReleasedItem-EnhancedRelocCompleteRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-ToBeReleasedList-EnhancedRelocCompleteRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-TrCH-Mapping.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-TrCH-MappingItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABDataVolumeReport.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABParametersList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABased.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABs-ContextFailedtoTransferItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABs-ContextFailedtoTransferList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABs-failed-to-reportItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABs-failed-to-reportList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAC.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAI-List.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAListofIdleModeUEs.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAListwithNoIdleModeUEsAnyMore.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RANAP-EnhancedRelocationInformationRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RANAP-EnhancedRelocationInformationResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RANAP-PDU.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RANAP-RelocationInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAT-Type.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAofIdleModeUEs.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RIM-Transfer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RIMInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RIMRoutingAddress.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RNC-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RNCTraceInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RNSAPRelocationParameters.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RRC-Container.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRQ-Extension.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRQ-Type.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRVCC-HO-Indication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRVCC-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRVCC-Operation-Possible.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RTLoadValue.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RateControlAllowed.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RedirectAttemptFlag.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RedirectionCompleted.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RedirectionIndication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RejectCauseValue.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationCancel.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationCancelAcknowledge.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationCommand.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationComplete.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationDetect.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationFailure.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationPreparationFailure.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationRequestAcknowledge.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationRequired.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationRequirement.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationType.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RepetitionNumber0.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RepetitionNumber1.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ReportAmount.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ReportArea.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ReportChangeOfSAI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ReportInterval.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestType.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-ExtendedGuaranteedBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-ExtendedMaxBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-GuaranteedBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-MaxBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-Values.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedGANSSAssistanceData.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedGPSAssistanceData.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedLocationRelatedDataType.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedMBMSIPMulticastAddressandAPNRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedMulticastServiceList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Reset.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetAcknowledge.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResource.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceAckItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceAckList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceAcknowledge.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResidualBitErrorRatio.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResponseTime.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SAC.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SAI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SAPI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-ErrorRatio.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-FormatInformationParameterItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-FormatInformationParameters.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-ParameterItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-Parameters.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SNA-Access-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SNAC.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRB-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRB-TrCH-Mapping.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRB-TrCH-MappingItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRNS-ContextRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRNS-ContextResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRNS-DataForwardCommand.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-CSKeysRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-CSKeysResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-HO-Indication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-Operation-Possible.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SecurityModeCommand.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SecurityModeComplete.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SecurityModeReject.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Service-Handover.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Session-Re-establishment-Indicator.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SessionUpdateID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Shared-Network-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SignallingIndication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Source-ToTarget-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceBSS-ToTargetBSS-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceCellID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceRNC-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceRNC-ToTargetRNC-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceStatisticsDescriptor.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceUTRANCellID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceeNodeB-ToTargeteNodeB-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SubflowSDU-Size.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SubscriberProfileIDforRFP.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SuccessfulOutcome.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SupportedBitrate.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SupportedRAB-ParameterBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TAC.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TAI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TBCD-STRING.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TMGI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TMSI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TNLInformationEnhRelInfoReq.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TNLInformationEnhRelInfoRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Target-ToSource-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetBSS-ToSourceBSS-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetCellId.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetENB-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetRNC-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetRNC-ToSourceRNC-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargeteNodeB-ToSourceeNodeB-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TemporaryUE-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Time-UE-StayedInCell-EnhancedGranularity.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Time-UE-StayedInCell.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TimeToMBMSDataTransfer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TimingDifferenceULDL.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TrCH-ID-List.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TrCH-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceDepth.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TracePropagationParameters.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceRecordingSessionInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceRecordingSessionReference.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceReference.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceType.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TrafficClass.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TrafficHandlingPriority.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TransferDelay.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TransportLayerAddress.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TransportLayerInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TriggerID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TriggeringMessage.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TunnelInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TypeOfError.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-AggregateMaximumBitRate.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-AggregateMaximumBitRateDownlink.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-AggregateMaximumBitRateUplink.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-History-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UESBI-Iu.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UESBI-IuA.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UESBI-IuB.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UESpecificInformationIndication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UL-GTP-PDU-SequenceNumber.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UL-N-PDU-SequenceNumber.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UP-ModeVersions.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UPInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UPInitialisationFrame.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_USCH-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UTRAN-CellID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UeRadioCapabilityMatchRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UeRadioCapabilityMatchResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UnsuccessfulLinking-IEs.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UnsuccessfulOutcome.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UnsuccessfullyTransmittedDataVolume.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UplinkInformationExchangeFailure.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UplinkInformationExchangeRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UplinkInformationExchangeResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UserPlaneInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UserPlaneMode.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VelocityEstimate.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VerticalAccuracyCode.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VerticalSpeedDirection.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VerticalVelocity.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VoiceSupportMatchIndicator.o [ 2504s] ar: `u' modifier ignored since `D' is the default (see `U') [ 2504s] libtool: link: ranlib .libs/libosmo-ranap.a [ 2504s] libtool: link: rm -fr .libs/libosmo-ranap.lax [ 2504s] libtool: link: ( cd ".libs" && rm -f "libosmo-ranap.la" && ln -s "../libosmo-ranap.la" "libosmo-ranap.la" ) [ 2504s] /bin/bash ../libtool --tag=CC --mode=link gcc -Wall -I../include -I../include -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wl,-z,relro -o osmo-hnbgw hnbap_encoder.o hnbap_decoder.o hnbap_common.o rua_encoder.o rua_decoder.o rua_common.o rua_msg_factory.o hnbgw.o hnbgw_hnbap.o hnbgw_rua.o hnbgw_ranap.o hnbgw_vty.o context_map.o hnbgw_cn.o -ltalloc -losmocore -ltalloc -losmogsm -losmocore -ltalloc -losmovty -losmocore -ltalloc -losmoctrl -losmogsm -losmocore -ltalloc -lasn1c -losmo-sigtran -losmonetif hnbap/libosmo-asn1-hnbap.a rua/libosmo-asn1-rua.a libosmo-ranap.la [ 2506s] libtool: link: gcc -Wall -I../include -I../include -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wl,-z -Wl,relro -o .libs/osmo-hnbgw hnbap_encoder.o hnbap_decoder.o hnbap_common.o rua_encoder.o rua_decoder.o rua_common.o rua_msg_factory.o hnbgw.o hnbgw_hnbap.o hnbgw_rua.o hnbgw_ranap.o hnbgw_vty.o context_map.o hnbgw_cn.o /usr/lib/arm-linux-gnueabihf/libosmovty.so /usr/lib/arm-linux-gnueabihf/libosmoctrl.so /usr/lib/arm-linux-gnueabihf/libosmogsm.so /usr/lib/arm-linux-gnueabihf/libosmocore.so -ltalloc -lasn1c /usr/lib/arm-linux-gnueabihf/libosmo-sigtran.so /usr/lib/arm-linux-gnueabihf/libosmonetif.so hnbap/libosmo-asn1-hnbap.a rua/libosmo-asn1-rua.a ./.libs/libosmo-ranap.so -pthread [ 2506s] /usr/bin/ld: ./.libs/libosmo-ranap.so: undefined reference to `install_lib_element' [ 2506s] collect2: error: ld returned 1 exit status [ 2506s] make[5]: *** [Makefile:616: osmo-hnbgw] Error 1 [ 2506s] make[5]: Leaving directory '/usr/src/packages/BUILD/src' [ 2506s] make[4]: *** [Makefile:690: all-recursive] Error 1 [ 2506s] make[4]: Leaving directory '/usr/src/packages/BUILD/src' [ 2506s] make[3]: *** [Makefile:490: all] Error 2 [ 2506s] make[3]: Leaving directory '/usr/src/packages/BUILD/src' [ 2506s] make[2]: *** [Makefile:468: all-recursive] Error 1 [ 2506s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 2506s] make[1]: *** [Makefile:390: all] Error 2 [ 2506s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 2506s] dh_auto_build: make -j1 returned exit code 2 [ 2506s] make: *** [debian/rules:9: build] Error 2 [ 2506s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 2506s] ### VM INTERACTION START ### [ 2510s] [ 2464.590226] sysrq: SysRq : Power Off [ 2510s] [ 2464.609872] reboot: Power down [ 2510s] ### VM INTERACTION END ### [ 2510s] [ 2510s] obs-arm-6 failed "build osmo-iuh_1.0.0.dsc" at Thu Jan 7 05:00:47 UTC 2021. [ 2510s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Jan 7 06:40:14 2021 From: admin at opensuse.org (OBS Notification) Date: Thu, 07 Jan 2021 06:40:14 +0000 Subject: Build failure of network:osmocom:latest/osmo-iuh in Raspbian_9.0/armv7l In-Reply-To: References: Message-ID: <5ff6aced73840_707c2acc32a365f05856cc@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-iuh/Raspbian_9.0/armv7l Package network:osmocom:latest/osmo-iuh failed to build in Raspbian_9.0/armv7l Check out the package for editing: osc checkout network:osmocom:latest osmo-iuh Last lines of build log: [ 3455s] libtool: link: gcc -Wall -I../include -I../include -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wl,-z -Wl,relro -o .libs/osmo-hnbgw hnbap_encoder.o hnbap_decoder.o hnbap_common.o rua_encoder.o rua_decoder.o rua_common.o rua_msg_factory.o hnbgw.o hnbgw_hnbap.o hnbgw_rua.o hnbgw_ranap.o hnbgw_vty.o context_map.o hnbgw_cn.o /usr/lib/arm-linux-gnueabihf/libosmovty.so /usr/lib/arm-linux-gnueabihf/libosmoctrl.so /usr/lib/arm-linux-gnueabihf/libosmogsm.so /usr/lib/arm-linux-gnueabihf/libosmocore.so -ltalloc -lasn1c /usr/lib/arm-linux-gnueabihf/libosmo-sigtran.so /usr/lib/arm-linux-gnueabihf/libosmonetif.so hnbap/libosmo-asn1-hnbap.a rua/libosmo-asn1-rua.a ./.libs/libosmo-ranap.so -pthread [ 3455s] ./.libs/libosmo-ranap.so: undefined reference to `install_lib_element' [ 3455s] collect2: error: ld returned 1 exit status [ 3455s] Makefile:602: recipe for target 'osmo-hnbgw' failed [ 3455s] make[5]: *** [osmo-hnbgw] Error 1 [ 3455s] make[5]: Leaving directory '/usr/src/packages/BUILD/src' [ 3455s] Makefile:671: recipe for target 'all-recursive' failed [ 3455s] make[4]: *** [all-recursive] Error 1 [ 3455s] make[4]: Leaving directory '/usr/src/packages/BUILD/src' [ 3455s] Makefile:477: recipe for target 'all' failed [ 3455s] make[3]: *** [all] Error 2 [ 3455s] make[3]: Leaving directory '/usr/src/packages/BUILD/src' [ 3455s] Makefile:468: recipe for target 'all-recursive' failed [ 3455s] make[2]: *** [all-recursive] Error 1 [ 3455s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 3455s] Makefile:390: recipe for target 'all' failed [ 3455s] make[1]: *** [all] Error 2 [ 3455s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 3455s] dh_auto_build: make -j1 returned exit code 2 [ 3456s] debian/rules:9: recipe for target 'build' failed [ 3456s] make: *** [build] Error 2 [ 3456s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 3456s] ### VM INTERACTION START ### [ 3459s] [ 3411.534322] sysrq: SysRq : Power Off [ 3459s] [ 3411.545606] reboot: Power down [ 3459s] ### VM INTERACTION END ### [ 3459s] [ 3459s] obs-arm-6 failed "build osmo-iuh_1.0.0.dsc" at Thu Jan 7 06:40:08 UTC 2021. [ 3459s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Thu Jan 7 09:00:43 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 7 Jan 2021 09:00:43 +0000 Subject: Change in osmo-iuh[for-1.0]: hnbgw: Mark SCTP conn as NODELAY References: Message-ID: Hello pespin, I'd like you to do a code review. Please visit https://gerrit.osmocom.org/c/osmo-iuh/+/22009 to review the following change. Change subject: hnbgw: Mark SCTP conn as NODELAY ...................................................................... hnbgw: Mark SCTP conn as NODELAY We don't want messages to be sent being delayed. Related: OS#4499 Change-Id: I333e7f868e426f7d7ebb328ea2a441d769ea8ebd --- M src/hnbgw.c 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-iuh refs/changes/09/22009/1 diff --git a/src/hnbgw.c b/src/hnbgw.c index 9e0b33b..f18d2b1 100644 --- a/src/hnbgw.c +++ b/src/hnbgw.c @@ -617,6 +617,7 @@ } osmo_stream_srv_link_set_data(srv, g_hnb_gw); osmo_stream_srv_link_set_proto(srv, IPPROTO_SCTP); + osmo_stream_srv_link_set_nodelay(srv, true); osmo_stream_srv_link_set_addr(srv, g_hnb_gw->config.iuh_local_ip); osmo_stream_srv_link_set_port(srv, g_hnb_gw->config.iuh_local_port); osmo_stream_srv_link_set_accept_cb(srv, accept_cb); -- To view, visit https://gerrit.osmocom.org/c/osmo-iuh/+/22009 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: for-1.0 Gerrit-Change-Id: I333e7f868e426f7d7ebb328ea2a441d769ea8ebd Gerrit-Change-Number: 22009 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 10:01:25 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 7 Jan 2021 10:01:25 +0000 Subject: Change in libosmocore[master]: bssgp_rim: add encoder/decoder for NACC related RIM containers In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21862 ) Change subject: bssgp_rim: add encoder/decoder for NACC related RIM containers ...................................................................... Patch Set 6: (18 comments) https://gerrit.osmocom.org/c/libosmocore/+/21862/6/include/osmocom/gprs/gprs_bssgp_rim.h File include/osmocom/gprs/gprs_bssgp_rim.h: https://gerrit.osmocom.org/c/libosmocore/+/21862/6/include/osmocom/gprs/gprs_bssgp_rim.h at 2 PS6, Line 2: license/copyright statement? https://gerrit.osmocom.org/c/libosmocore/+/21862/6/include/osmocom/gprs/gprs_bssgp_rim.h at 73 PS6, Line 73: Si3 I don't recall the details: But won't we need SI3 as part of the NACC feature? We have been waiting for months for NS2 API to stabilize to finally release a new libosmocore, and we cannot merge an API/ABI now that we expect to break soon after the merge because parts are missing. https://gerrit.osmocom.org/c/libosmocore/+/21862/5/include/osmocom/gprs/gprs_bssgp_rim.h File include/osmocom/gprs/gprs_bssgp_rim.h: https://gerrit.osmocom.org/c/libosmocore/+/21862/5/include/osmocom/gprs/gprs_bssgp_rim.h at 13 PS5, Line 13: const uint8_t *app_cont; > is this a pointer to struct bssgp_ran_inf_rim_cont ? I don't think so, it's opaque user data (of length app_cont_len) https://gerrit.osmocom.org/c/libosmocore/+/21862/6/src/gb/gprs_bssgp_rim.c File src/gb/gprs_bssgp_rim.c: https://gerrit.osmocom.org/c/libosmocore/+/21862/6/src/gb/gprs_bssgp_rim.c at 4 PS6, Line 4: * (C) 2020 by sysmocom - s.f.m.c. GmbH -2021 now I guess? https://gerrit.osmocom.org/c/libosmocore/+/21862/6/src/gb/gprs_bssgp_rim.c at 144 PS6, Line 144: buf++; so now buf point s to index '1' but the length check above passed with len == 1, i.e. we are pointing one beind the end of the buffer https://gerrit.osmocom.org/c/libosmocore/+/21862/6/src/gb/gprs_bssgp_rim.c at 145 PS6, Line 145: c I think we should set cont->err_app_cont to NULL if the length was only '1'? https://gerrit.osmocom.org/c/libosmocore/+/21862/6/src/gb/gprs_bssgp_rim.c at 159 PS6, Line 159: 1) shouldnt' this be +1, i.e. the cause byte plus the container content? https://gerrit.osmocom.org/c/libosmocore/+/21862/6/src/gb/gprs_bssgp_rim.c at 217 PS6, Line 217: DE I think somebody else already meantioned that those macros don't really look all that great and should be - if possible replaced by functions. But what I don't understand is why the entire macro and the 'if' statement would need to go into a single line? IS there some logic I'm missing? tis loos like perl syntax "ACTION if CONDITION" whcih obviously is not supported in C. https://gerrit.osmocom.org/c/libosmocore/+/21862/6/src/gb/gprs_bssgp_rim.c at 256 PS6, Line 256: if (len < please try to use less magic numbers but instead sizeof() or offsetof() macros to gt to those 15 / 3 / 3. Alternatively, put a comment in the line above exlpaining what those lengths are. Otherwise the reader/reviewer has a hard time knowing if those are correct. https://gerrit.osmocom.org/c/libosmocore/+/21862/6/src/gb/gprs_bssgp_rim.c at 259 PS6, Line 259: EN same here regarding one line https://gerrit.osmocom.org/c/libosmocore/+/21862/6/src/gb/gprs_bssgp_rim.c at 300 PS6, Line 300: DE why on one line? https://gerrit.osmocom.org/c/libosmocore/+/21862/6/src/gb/gprs_bssgp_rim.c at 355 PS6, Line 355: uint putting 32kBytes on the stack didn't look very good to me. But then I read up and determined it should work on most systems today (linux apparently now has a default stack size of 2MB per thread, often 8MB). If the encoder functions were using msgb, it might have been easier to first put the inner TLV and then later wrap (push) the outer TLV around it. Without msgb it's probably a bit harder, but it looks like the outer heaer is of fixed length, so you could call bssgp_enc_app_err_cont_nacc() with the exact location after where later the tag/length fields will be? In any case, not really worth spending time on, given that the 32k on the stack apparently won't hurt. https://gerrit.osmocom.org/c/libosmocore/+/21862/6/src/gb/gprs_bssgp_rim.c at 359 PS6, Line 359: if (le magic numbers https://gerrit.osmocom.org/c/libosmocore/+/21862/6/src/gb/gprs_bssgp_rim.c at 362 PS6, Line 362: ENC_RIM magic numbers https://gerrit.osmocom.org/c/libosmocore/+/21862/6/src/gb/gprs_bssgp_rim.c at 461 PS6, Line 461: if (le magic numbers https://gerrit.osmocom.org/c/libosmocore/+/21862/6/src/gb/gprs_bssgp_rim.c at 466 PS6, Line 466: & s no space, this looks like a logical "and" otherwise. https://gerrit.osmocom.org/c/libosmocore/+/21862/6/src/gb/gprs_bssgp_rim.c at 532 PS6, Line 532: if (len magic numbers https://gerrit.osmocom.org/c/libosmocore/+/21862/6/src/gb/gprs_bssgp_rim.c at 601 PS6, Line 601: 3 ? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21862 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ibbc7fd67658e3040c12abb5706fe9d1f31894352 Gerrit-Change-Number: 21862 Gerrit-PatchSet: 6 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 07 Jan 2021 10:01:25 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 10:23:04 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 7 Jan 2021 10:23:04 +0000 Subject: Change in osmo-iuh[for-1.0]: hnbgw: Mark SCTP conn as NODELAY In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-iuh/+/22009 ) Change subject: hnbgw: Mark SCTP conn as NODELAY ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-iuh/+/22009 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: for-1.0 Gerrit-Change-Id: I333e7f868e426f7d7ebb328ea2a441d769ea8ebd Gerrit-Change-Number: 22009 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 07 Jan 2021 10:23:04 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 10:23:06 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 7 Jan 2021 10:23:06 +0000 Subject: Change in osmo-iuh[for-1.0]: hnbgw: Mark SCTP conn as NODELAY In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-iuh/+/22009 ) Change subject: hnbgw: Mark SCTP conn as NODELAY ...................................................................... hnbgw: Mark SCTP conn as NODELAY We don't want messages to be sent being delayed. Related: OS#4499 Change-Id: I333e7f868e426f7d7ebb328ea2a441d769ea8ebd --- M src/hnbgw.c 1 file changed, 1 insertion(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/hnbgw.c b/src/hnbgw.c index 9e0b33b..f18d2b1 100644 --- a/src/hnbgw.c +++ b/src/hnbgw.c @@ -617,6 +617,7 @@ } osmo_stream_srv_link_set_data(srv, g_hnb_gw); osmo_stream_srv_link_set_proto(srv, IPPROTO_SCTP); + osmo_stream_srv_link_set_nodelay(srv, true); osmo_stream_srv_link_set_addr(srv, g_hnb_gw->config.iuh_local_ip); osmo_stream_srv_link_set_port(srv, g_hnb_gw->config.iuh_local_port); osmo_stream_srv_link_set_accept_cb(srv, accept_cb); -- To view, visit https://gerrit.osmocom.org/c/osmo-iuh/+/22009 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: for-1.0 Gerrit-Change-Id: I333e7f868e426f7d7ebb328ea2a441d769ea8ebd Gerrit-Change-Number: 22009 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 10:29:41 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 7 Jan 2021 10:29:41 +0000 Subject: Change in osmo-bsc[master]: hodec2: code dup / cosmetics In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21971 ) Change subject: hodec2: code dup / cosmetics ...................................................................... hodec2: code dup / cosmetics In handover_decision_2.c, instead of repeating a similar loop four times, put that loop in a function and parameterize it. Prepare for a fix of two problems in handover decision 2, see I2704899c85c35dfd4eba43468452483f40016ca2. Change-Id: I7c32d08e490a88a7f044b0a71dc4b07d748dd572 --- M src/osmo-bsc/handover_decision_2.c 1 file changed, 133 insertions(+), 194 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, but someone else must approve pespin: Looks good to me, approved diff --git a/src/osmo-bsc/handover_decision_2.c b/src/osmo-bsc/handover_decision_2.c index 477f1eb..7854f09 100644 --- a/src/osmo-bsc/handover_decision_2.c +++ b/src/osmo-bsc/handover_decision_2.c @@ -24,6 +24,7 @@ #include #include +#include #include #include @@ -1379,10 +1380,22 @@ return count; } +static bool is_intra_cell(const struct ho_candidate *c) +{ + return c->bts && (c->lchan->ts->trx->bts == c->bts); +} + +static bool is_upgrade_to_tchf(const struct ho_candidate *c, uint8_t for_requirement) +{ + return c->lchan + && (c->lchan->type == GSM_LCHAN_TCH_H) + && ((c->requirements & for_requirement) & (REQUIREMENT_B_TCHF | REQUIREMENT_C_TCHF)); +} + /* Given two candidates, pick the one that should rather be moved during handover. * Return the better candidate in out-parameters best_cand and best_avg_db. */ -static void pick_better_lchan_to_move(bool want_highest_db, +static bool pick_better_lchan_to_move(bool want_highest_db, struct ho_candidate **best_cand_p, unsigned int *best_avg_db_p, struct ho_candidate *other_cand, unsigned int other_avg_db) { @@ -1400,7 +1413,7 @@ /* If both are dynamic, prefer one that completely (or to a higher degree) frees its timeslot. */ if (lchan_is_on_dynamic_ts((*best_cand_p)->lchan) && ts_usage_count((*best_cand_p)->lchan->ts) < ts_usage_count(other_cand->lchan->ts)) - return; + return false; /* If both equally satisfy these preferences, it does not matter which one is picked. * Give slight preference to moving later dyn TS, so that a free dyn TS may group with following static * PDCH, though this depends on how the user configured the TS -- not harmful to do so anyway. */ @@ -1408,11 +1421,76 @@ } /* keep the same candidate. */ - return; + return false; return_other: *best_cand_p = other_cand; *best_avg_db_p = other_avg_db; + return true; +} + +static struct ho_candidate *pick_best_candidate(int *applied_afs_bias, + struct ho_candidate *clist, int clist_len, + bool want_highest_db, + bool omit_intra_cell_upgrade_to_tchf, + bool only_intra_cell_upgrade_to_tchf, + uint8_t for_requirement) +{ + struct ho_candidate *result = NULL; + unsigned int result_avg_rxlev; + int result_afs_bias = 0; + int i; + + if (applied_afs_bias) + *applied_afs_bias = 0; + + result_avg_rxlev = want_highest_db ? 0 : INT_MAX; + + for (i = 0; i < clist_len; i++) { + struct ho_candidate *c = &clist[i]; + bool intra_cell; + bool upgrade_to_tch_f; + int avg_rxlev; + int afs_bias; + + /* For multiple passes of congestion resolution, already handovered candidates are marked by lchan = + * NULL. (though at the time of writing, multiple passes of congestion resolution are DISABLED.) */ + if (!c->lchan) + continue; + + /* Omit remote BSS */ + if (!c->bts) + continue; + + if (!(c->requirements & for_requirement)) + continue; + + intra_cell = is_intra_cell(c); + upgrade_to_tch_f = is_upgrade_to_tchf(c, for_requirement); + + if (only_intra_cell_upgrade_to_tchf + && !(intra_cell && upgrade_to_tch_f)) + continue; + if (omit_intra_cell_upgrade_to_tchf + && (intra_cell && upgrade_to_tch_f)) + continue; + + avg_rxlev = c->avg; + + /* improve AHS */ + if (upgrade_to_tch_f) + afs_bias = ho_get_hodec2_afs_bias_rxlev(c->bts->ho); + else + afs_bias = 0; + avg_rxlev += afs_bias; + + if (pick_better_lchan_to_move(want_highest_db, &result, &result_avg_rxlev, c, avg_rxlev)) + result_afs_bias = afs_bias; + } + + if (applied_afs_bias) + *applied_afs_bias = result_afs_bias; + return result; } /* @@ -1472,10 +1550,7 @@ int i, j; struct ho_candidate *clist; unsigned int candidates; - struct ho_candidate *best_cand = NULL, *worst_cand = NULL; - struct gsm_lchan *delete_lchan = NULL; - unsigned int best_avg_db, worst_avg_db; - int avg; + struct ho_candidate *best_cand = NULL; int rc = 0; int any_ho = 0; int is_improved = 0; @@ -1571,55 +1646,19 @@ #if 0 next_b1: #endif - /* select best candidate that fulfills requirement B, - * omit change from AHS to AFS */ - best_avg_db = 0; - for (i = 0; i < candidates; i++) { - /* delete subscriber that just have handovered */ - if (clist[i].lchan == delete_lchan) - clist[i].lchan = NULL; - /* omit all subscribers that are handovered */ - if (!clist[i].lchan) - continue; - - /* Do not resolve congestion towards remote BSS, which would cause oscillation if the - * remote BSS is also congested. */ - /* TODO: attempt inter-BSC HO if no local cells qualify, and rely on the remote BSS to - * deny receiving the handover if it also considers itself congested. Maybe do that only - * when the cell is absolutely full, i.e. not only min-free-slots. (x) */ - if (!clist[i].bts) - continue; - - if (!(clist[i].requirements & REQUIREMENT_B_MASK)) - continue; - /* omit assignment from AHS to AFS */ - if (clist[i].lchan->ts->trx->bts == clist[i].bts - && clist[i].lchan->type == GSM_LCHAN_TCH_H - && (clist[i].requirements & REQUIREMENT_B_TCHF)) - continue; - /* omit candidates that will not solve/reduce congestion */ - if (clist[i].lchan->type == GSM_LCHAN_TCH_F - && tchf_congestion <= 0) - continue; - if (clist[i].lchan->type == GSM_LCHAN_TCH_H - && tchh_congestion <= 0) - continue; - - avg = clist[i].avg; - /* improve AHS */ - if (clist[i].lchan->tch_mode == GSM48_CMODE_SPEECH_AMR - && clist[i].lchan->type == GSM_LCHAN_TCH_H - && (clist[i].requirements & REQUIREMENT_B_TCHF)) { - avg += ho_get_hodec2_afs_bias_rxlev(clist[i].bts->ho); - is_improved = 1; - } else - is_improved = 0; - LOGPHOCAND(&clist[i], LOGL_DEBUG, "candidate %d: avg=%d best_avg_db=%d\n", - i, avg, best_avg_db); - pick_better_lchan_to_move(true, &best_cand, &best_avg_db, &clist[i], avg); - } - - /* perform handover, if there is a candidate */ + /* select best candidate that does not cause congestion in the target. + * Do not resolve congestion towards remote BSS, which would cause oscillation if the remote BSS is also + * congested. + * Treating specially below: upgrading TCH/H to TCH/F within the same cell, so omit here. + */ + /* TODO: attempt inter-BSC HO if no local cells qualify, and rely on the remote BSS to + * deny receiving the handover if it also considers itself congested. Maybe do that only + * when the cell is absolutely full, i.e. not only min-free-slots. (x) */ + best_cand = pick_best_candidate(&is_improved, clist, candidates, + /* want_highest_db */ true, + /* omit_intra_cell_upgrade_to_tchf */ true, + /* only_intra_cell_upgrade_to_tchf */ false, + REQUIREMENT_B_MASK); if (best_cand) { any_ho = 1; LOGPHOCAND(best_cand, LOGL_DEBUG, "Best candidate: RX level %d%s\n", @@ -1650,59 +1689,29 @@ #if 0 next_b2: #endif - /* select worst candidate that fulfills requirement B, - * select candidates that change from AHS to AFS only */ - if (tchh_congestion > 0) { - /* since this will only check half rate channels, it will - * only need to be checked, if tchh is congested */ - worst_avg_db = 999; - for (i = 0; i < candidates; i++) { - /* delete subscriber that just have handovered */ - if (clist[i].lchan == delete_lchan) - clist[i].lchan = NULL; - /* omit all subscribers that are handovered */ - if (!clist[i].lchan) - continue; - - /* Do not resolve congestion towards remote BSS, which would cause oscillation if - * the remote BSS is also congested. */ - /* TODO: see (x) above */ - if (!clist[i].bts) - continue; - - if (!(clist[i].requirements & REQUIREMENT_B_MASK)) - continue; - /* omit all but assignment from AHS to AFS */ - if (clist[i].lchan->ts->trx->bts != clist[i].bts - || clist[i].lchan->type != GSM_LCHAN_TCH_H - || !(clist[i].requirements & REQUIREMENT_B_TCHF)) - continue; - - avg = clist[i].avg; - /* improve AHS */ - if (clist[i].lchan->tch_mode == GSM48_CMODE_SPEECH_AMR - && clist[i].lchan->type == GSM_LCHAN_TCH_H) { - avg += ho_get_hodec2_afs_bias_rxlev(clist[i].bts->ho); - is_improved = 1; - } else - is_improved = 0; - pick_better_lchan_to_move(false, &worst_cand, &worst_avg_db, &clist[i], avg); - } - } - - /* perform handover, if there is a candidate */ - if (worst_cand) { + /* For upgrading TCH/H to TCH/F within the same cell, we want to pick the *lowest* average rxlev: for staying + * within the same cell, give the MS with the worst service more bandwidth. When staying within the same cell, + * the target avg rxlev is identical to the source lchan rxlev, so it is fine to use the same avg rxlev value, + * but simply pick the lowest one. + * Upgrading TCH/H channels obviously only applies when TCH/H is actually congested. */ + if (tchh_congestion > 0) + best_cand = pick_best_candidate(&is_improved, clist, candidates, + /* want_highest_db */ false, + /* omit_intra_cell_upgrade_to_tchf */ false, + /* only_intra_cell_upgrade_to_tchf */ true, + REQUIREMENT_B_MASK); + if (best_cand) { any_ho = 1; - LOGPHOCAND(worst_cand, LOGL_INFO, "Worst candidate: RX level %d from TCH/H -> TCH/F%s\n", - rxlev2dbm(worst_cand->avg), + LOGPHOCAND(best_cand, LOGL_INFO, "Worst candidate: RX level %d from TCH/H -> TCH/F%s\n", + rxlev2dbm(best_cand->avg), is_improved ? " (applied AHS -> AFS rxlev bias)" : ""); - trigger_ho(worst_cand, worst_cand->requirements & REQUIREMENT_B_MASK); + trigger_ho(best_cand, best_cand->requirements & REQUIREMENT_B_MASK); #if 0 /* if there is still congestion, mark lchan as deleted * and redo this process */ tchh_congestion--; if (tchh_congestion > 0) { - delete_lchan = worst_cand->lchan; + delete_lchan = best_cand->lchan; best_cand = NULL; goto next_b2; } @@ -1718,51 +1727,14 @@ #if 0 next_c1: #endif - /* select best candidate that fulfills requirement C, - * omit change from AHS to AFS */ - best_avg_db = 0; - for (i = 0; i < candidates; i++) { - /* delete subscriber that just have handovered */ - if (clist[i].lchan == delete_lchan) - clist[i].lchan = NULL; - /* omit all subscribers that are handovered */ - if (!clist[i].lchan) - continue; - - /* Do not resolve congestion towards remote BSS, which would cause oscillation if - * the remote BSS is also congested. */ - /* TODO: see (x) above */ - if (!clist[i].bts) - continue; - - if (!(clist[i].requirements & REQUIREMENT_C_MASK)) - continue; - /* omit assignment from AHS to AFS */ - if (clist[i].lchan->ts->trx->bts == clist[i].bts - && clist[i].lchan->type == GSM_LCHAN_TCH_H - && (clist[i].requirements & REQUIREMENT_C_TCHF)) - continue; - /* omit candidates that will not solve/reduce congestion */ - if (clist[i].lchan->type == GSM_LCHAN_TCH_F - && tchf_congestion <= 0) - continue; - if (clist[i].lchan->type == GSM_LCHAN_TCH_H - && tchh_congestion <= 0) - continue; - - avg = clist[i].avg; - /* improve AHS */ - if (clist[i].lchan->tch_mode == GSM48_CMODE_SPEECH_AMR - && clist[i].lchan->type == GSM_LCHAN_TCH_H - && (clist[i].requirements & REQUIREMENT_C_TCHF)) { - avg += ho_get_hodec2_afs_bias_rxlev(clist[i].bts->ho); - is_improved = 1; - } else - is_improved = 0; - pick_better_lchan_to_move(true, &best_cand, &best_avg_db, &clist[i], avg); - } - - /* perform handover, if there is a candidate */ + /* Select best candidate that balances congestion. + * Again no remote BSS. + * Again no TCH/H -> F upgrades within the same cell. */ + best_cand = pick_best_candidate(&is_improved, clist, candidates, + /* want_highest_db */ true, + /* omit_intra_cell_upgrade_to_tchf */ true, + /* only_intra_cell_upgrade_to_tchf */ false, + REQUIREMENT_C_MASK); if (best_cand) { any_ho = 1; LOGPHOCAND(best_cand, LOGL_INFO, "Best candidate: RX level %d%s\n", @@ -1796,62 +1768,29 @@ #if 0 next_c2: #endif - /* select worst candidate that fulfills requirement C, - * select candidates that change from AHS to AFS only */ - if (tchh_congestion > 0) { - /* since this will only check half rate channels, it will - * only need to be checked, if tchh is congested */ - worst_avg_db = 999; - for (i = 0; i < candidates; i++) { - /* delete subscriber that just have handovered */ - if (clist[i].lchan == delete_lchan) - clist[i].lchan = NULL; - /* omit all subscribers that are handovered */ - if (!clist[i].lchan) - continue; - - /* Do not resolve congestion towards remote BSS, which would cause oscillation if - * the remote BSS is also congested. */ - /* TODO: see (x) above */ - if (!clist[i].bts) - continue; - - if (!(clist[i].requirements & REQUIREMENT_C_MASK)) - continue; - /* omit all but assignment from AHS to AFS */ - if (clist[i].lchan->ts->trx->bts != clist[i].bts - || clist[i].lchan->type != GSM_LCHAN_TCH_H - || !(clist[i].requirements & REQUIREMENT_C_TCHF)) - continue; - - avg = clist[i].avg; - /* improve AHS */ - if (clist[i].lchan->tch_mode == GSM48_CMODE_SPEECH_AMR - && clist[i].lchan->type == GSM_LCHAN_TCH_H) { - avg += ho_get_hodec2_afs_bias_rxlev(clist[i].bts->ho); - is_improved = 1; - } else - is_improved = 0; - LOGP(DHODEC, LOGL_DEBUG, "candidate %d: avg=%d worst_avg_db=%d\n", i, avg, - worst_avg_db); - pick_better_lchan_to_move(false, &worst_cand, &worst_avg_db, &clist[i], avg); - } - } + /* Look for upgrading TCH/H to TCH/F within the same cell, which balances congestion, again upgrade the TCH/H + * lchan that has the worst reception: */ + if (tchh_congestion > 0) + best_cand = pick_best_candidate(&is_improved, clist, candidates, + /* want_highest_db */ false, + /* omit_intra_cell_upgrade_to_tchf */ false, + /* only_intra_cell_upgrade_to_tchf */ true, + REQUIREMENT_C_MASK); /* perform handover, if there is a candidate */ - if (worst_cand) { + if (best_cand) { any_ho = 1; - LOGPHOCAND(worst_cand, LOGL_INFO, "Worst candidate: RX level %d from TCH/H -> TCH/F%s\n", - rxlev2dbm(worst_cand->avg), + LOGPHOCAND(best_cand, LOGL_INFO, "Worst candidate: RX level %d from TCH/H -> TCH/F%s\n", + rxlev2dbm(best_cand->avg), is_improved ? " (applied AHS -> AFS rxlev bias)" : ""); - trigger_ho(worst_cand, worst_cand->requirements & REQUIREMENT_C_MASK); + trigger_ho(best_cand, best_cand->requirements & REQUIREMENT_C_MASK); #if 0 /* if there is still congestion, mark lchan as deleted * and redo this process */ tchh_congestion--; if (tchh_congestion > 0) { - delete_lchan = worst_cand->lchan; - worst_cand = NULL; + delete_lchan = best_cand->lchan; + best_cand = NULL; goto next_c2; } #else -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21971 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I7c32d08e490a88a7f044b0a71dc4b07d748dd572 Gerrit-Change-Number: 21971 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 10:29:41 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 7 Jan 2021 10:29:41 +0000 Subject: Change in osmo-bsc[master]: handover_test: add 'meas-rep repeat N' In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21972 ) Change subject: handover_test: add 'meas-rep repeat N' ...................................................................... handover_test: add 'meas-rep repeat N' Some tests want to repeat the same measurement report, typically 10 times to fill the averaging window. Instead of 10 lines saying 'meas-rep ...', allow 'meas-rep repeat 10 ...'. Change-Id: Ib2fa81a449fb73ec7c458b0e6877d6561c79a846 --- M tests/handover/handover_test.c M tests/handover/test_rxqual.ho_vty M tests/handover/test_rxqual_vs_congestion.ho_vty 3 files changed, 42 insertions(+), 50 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/tests/handover/handover_test.c b/tests/handover/handover_test.c index c0c5bb9..3c9b4ff 100644 --- a/tests/handover/handover_test.c +++ b/tests/handover/handover_test.c @@ -841,22 +841,7 @@ return CMD_SUCCESS; } -DEFUN(meas_rep, meas_rep_cmd, - "meas-rep " LCHAN_ARGS " rxlev <0-255> rxqual <0-7> ta <0-255>" - " [neighbors] [<0-255>] [<0-255>] [<0-255>] [<0-255>] [<0-255>] [<0-255>]", - "Send measurement report\n" - LCHAN_ARGS_DOC - "rxlev\nrxlev\n" - "rxqual\nrxqual\n" - "timing advance\ntiming advance\n" - "neighbors list of rxlev reported by each neighbor cell\n" - "neighbor 0 rxlev\n" - "neighbor 1 rxlev\n" - "neighbor 2 rxlev\n" - "neighbor 3 rxlev\n" - "neighbor 4 rxlev\n" - "neighbor 5 rxlev\n" - ) +static int _meas_rep(struct vty *vty, int argc, const char **argv) { struct gsm_lchan *lc; uint8_t rxlev; @@ -909,6 +894,44 @@ return CMD_SUCCESS; } +#define MEAS_REP_ARGS LCHAN_ARGS " rxlev <0-255> rxqual <0-7> ta <0-255>" \ + " [neighbors] [<0-255>] [<0-255>] [<0-255>] [<0-255>] [<0-255>] [<0-255>]" +#define MEAS_REP_DOC "Send measurement report\n" +#define MEAS_REP_ARGS_DOC \ + LCHAN_ARGS_DOC \ + "rxlev\nrxlev\n" \ + "rxqual\nrxqual\n" \ + "timing advance\ntiming advance\n" \ + "neighbors list of rxlev reported by each neighbor cell\n" \ + "neighbor 0 rxlev\n" \ + "neighbor 1 rxlev\n" \ + "neighbor 2 rxlev\n" \ + "neighbor 3 rxlev\n" \ + "neighbor 4 rxlev\n" \ + "neighbor 5 rxlev\n" + +DEFUN(meas_rep, meas_rep_cmd, + "meas-rep " MEAS_REP_ARGS, + MEAS_REP_DOC MEAS_REP_ARGS_DOC) +{ + return _meas_rep(vty, argc, argv); +} + +DEFUN(meas_rep_repeat, meas_rep_repeat_cmd, + "meas-rep repeat <0-999> " MEAS_REP_ARGS, + MEAS_REP_DOC + "Resend the same measurement report N times\nN\n" + MEAS_REP_ARGS_DOC) +{ + int count = atoi(argv[0]); + argv += 1; + argc -= 1; + + while (count--) + _meas_rep(vty, argc, argv); + return CMD_SUCCESS; +} + DEFUN(congestion_check, congestion_check_cmd, "congestion-check", "Trigger a congestion check\n") @@ -1125,6 +1148,7 @@ install_element(CONFIG_NODE, &create_bts_cmd); install_element(CONFIG_NODE, &create_ms_cmd); install_element(CONFIG_NODE, &meas_rep_cmd); + install_element(CONFIG_NODE, &meas_rep_repeat_cmd); install_element(CONFIG_NODE, &congestion_check_cmd); install_element(CONFIG_NODE, &expect_no_chan_cmd); install_element(CONFIG_NODE, &expect_chan_cmd); diff --git a/tests/handover/test_rxqual.ho_vty b/tests/handover/test_rxqual.ho_vty index 2b80d01..4dc5c24 100644 --- a/tests/handover/test_rxqual.ho_vty +++ b/tests/handover/test_rxqual.ho_vty @@ -12,23 +12,7 @@ create-n-bts 2 set-ts-use trx 0 0 states * TCH/F - - - - - - -meas-rep lchan 0 0 1 0 rxlev 40 rxqual 6 ta 0 neighbors 30 -expect-no-chan -meas-rep lchan 0 0 1 0 rxlev 40 rxqual 6 ta 0 neighbors 30 -expect-no-chan -meas-rep lchan 0 0 1 0 rxlev 40 rxqual 6 ta 0 neighbors 30 -expect-no-chan -meas-rep lchan 0 0 1 0 rxlev 40 rxqual 6 ta 0 neighbors 30 -expect-no-chan -meas-rep lchan 0 0 1 0 rxlev 40 rxqual 6 ta 0 neighbors 30 -expect-no-chan -meas-rep lchan 0 0 1 0 rxlev 40 rxqual 6 ta 0 neighbors 30 -expect-no-chan -meas-rep lchan 0 0 1 0 rxlev 40 rxqual 6 ta 0 neighbors 30 -expect-no-chan -meas-rep lchan 0 0 1 0 rxlev 40 rxqual 6 ta 0 neighbors 30 -expect-no-chan -meas-rep lchan 0 0 1 0 rxlev 40 rxqual 6 ta 0 neighbors 30 +meas-rep repeat 9 lchan 0 0 1 0 rxlev 40 rxqual 6 ta 0 neighbors 30 expect-no-chan meas-rep lchan 0 0 1 0 rxlev 40 rxqual 6 ta 0 neighbors 30 expect-ho from lchan 0 0 1 0 to lchan 1 0 1 0 diff --git a/tests/handover/test_rxqual_vs_congestion.ho_vty b/tests/handover/test_rxqual_vs_congestion.ho_vty index 1e81293..21c4e7e 100644 --- a/tests/handover/test_rxqual_vs_congestion.ho_vty +++ b/tests/handover/test_rxqual_vs_congestion.ho_vty @@ -10,23 +10,7 @@ bts 1 handover2 min-free-slots tch/f 4 handover2 min-free-slots tch/h 4 -meas-rep lchan 0 0 1 0 rxlev 30 rxqual 6 ta 0 neighbors 40 -expect-no-chan -meas-rep lchan 0 0 1 0 rxlev 30 rxqual 6 ta 0 neighbors 40 -expect-no-chan -meas-rep lchan 0 0 1 0 rxlev 30 rxqual 6 ta 0 neighbors 40 -expect-no-chan -meas-rep lchan 0 0 1 0 rxlev 30 rxqual 6 ta 0 neighbors 40 -expect-no-chan -meas-rep lchan 0 0 1 0 rxlev 30 rxqual 6 ta 0 neighbors 40 -expect-no-chan -meas-rep lchan 0 0 1 0 rxlev 30 rxqual 6 ta 0 neighbors 40 -expect-no-chan -meas-rep lchan 0 0 1 0 rxlev 30 rxqual 6 ta 0 neighbors 40 -expect-no-chan -meas-rep lchan 0 0 1 0 rxlev 30 rxqual 6 ta 0 neighbors 40 -expect-no-chan -meas-rep lchan 0 0 1 0 rxlev 30 rxqual 6 ta 0 neighbors 40 +meas-rep repeat 9 lchan 0 0 1 0 rxlev 30 rxqual 6 ta 0 neighbors 40 expect-no-chan meas-rep lchan 0 0 1 0 rxlev 30 rxqual 6 ta 0 neighbors 40 expect-ho from lchan 0 0 1 0 to lchan 1 0 1 0 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21972 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ib2fa81a449fb73ec7c458b0e6877d6561c79a846 Gerrit-Change-Number: 21972 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 10:29:41 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 7 Jan 2021 10:29:41 +0000 Subject: Change in osmo-bsc[master]: handover_test: add test_congestion_favor_best_target_rxlev.ho_vty In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21973 ) Change subject: handover_test: add test_congestion_favor_best_target_rxlev.ho_vty ...................................................................... handover_test: add test_congestion_favor_best_target_rxlev.ho_vty The aim is to pin the current basic behavior of handover decision 2, before modifying the algorithm conditions to fix some bugs in upcoming patches -- so far no test ensures this particular detail. Change-Id: I68cdda21ef59c464f0af3c2eee356623e58ea1cd --- M tests/handover/handover_tests.ok A tests/handover/test_congestion_favor_best_target_rxlev.ho_vty 2 files changed, 34 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/tests/handover/handover_tests.ok b/tests/handover/handover_tests.ok index 1a9a18f..71f6255 100644 --- a/tests/handover/handover_tests.ok +++ b/tests/handover/handover_tests.ok @@ -7,6 +7,7 @@ pass test_balance_congestion.ho_vty pass test_balance_congestion_2.ho_vty pass test_congestion.ho_vty +pass test_congestion_favor_best_target_rxlev.ho_vty pass test_disabled_ho_and_as.ho_vty pass test_dyn_ts_amr_tch_f_to_h_congestion_assignment.ho_vty pass test_dyn_ts_favor_half_used_tch_h_as_target.ho_vty diff --git a/tests/handover/test_congestion_favor_best_target_rxlev.ho_vty b/tests/handover/test_congestion_favor_best_target_rxlev.ho_vty new file mode 100644 index 0000000..e31d98d --- /dev/null +++ b/tests/handover/test_congestion_favor_best_target_rxlev.ho_vty @@ -0,0 +1,33 @@ +# A handover should mostly favor the best target rxlev: +# Two candidates for congestion resolution both reduce the RXLEV for the MS, +# candidate A results in 10 RXLEV loss, candidate B only in 5 RXLEV loss. +# But candidate A still results in a better RXLEV at the target than candidate B. +# So tolerate more RXLEV reduction if the resulting RXLEV still remains better. +create-bts trx-count 1 timeslots c+s4 TCH/F TCH/F TCH/F TCH/F TCH/F TCH/F TCH/F +create-bts trx-count 1 timeslots c+s4 TCH/F TCH/F TCH/F TCH/F TCH/F TCH/F TCH/F + +network + bts 0 + handover2 min-free-slots tch/f 6 + +set-ts-use trx 0 0 states * TCH/F TCH/F - - - - - +meas-rep lchan 0 0 1 0 rxlev 40 rxqual 0 ta 0 neighbors 30 +meas-rep lchan 0 0 2 0 rxlev 30 rxqual 0 ta 0 neighbors 25 + +congestion-check +expect-ho from lchan 0 0 1 0 to lchan 1 0 1 0 +expect-ts-use trx 0 0 states * - TCH/F - - - - - +expect-ts-use trx 1 0 states * TCH/F - - - - - - + +# clear measurements for next run +set-ts-use trx 0 0 states * - - - - - - - +set-ts-use trx 1 0 states * - - - - - - - + +set-ts-use trx 0 0 states * TCH/F TCH/F - - - - - +meas-rep lchan 0 0 1 0 rxlev 30 rxqual 0 ta 0 neighbors 25 +meas-rep lchan 0 0 2 0 rxlev 40 rxqual 0 ta 0 neighbors 30 + +congestion-check +expect-ho from lchan 0 0 2 0 to lchan 1 0 1 0 +expect-ts-use trx 0 0 states * TCH/F - - - - - - +expect-ts-use trx 1 0 states * TCH/F - - - - - - -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21973 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I68cdda21ef59c464f0af3c2eee356623e58ea1cd Gerrit-Change-Number: 21973 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 10:29:42 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 7 Jan 2021 10:29:42 +0000 Subject: Change in osmo-bsc[master]: handover_test: add AMR TCH/H->/F tests, showing a bug In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21974 ) Change subject: handover_test: add AMR TCH/H->/F tests, showing a bug ...................................................................... handover_test: add AMR TCH/H->/F tests, showing a bug Related: SYS#5032 Change-Id: Ib785ce8990beede603ba57171a60a531f0f396c9 --- M tests/handover/handover_tests.ok A tests/handover/test_amr_tch_h_to_f_congestion.ho_vty A tests/handover/test_amr_tch_h_to_f_congestion_two_cells.ho_vty 3 files changed, 39 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/tests/handover/handover_tests.ok b/tests/handover/handover_tests.ok index 71f6255..8f53471 100644 --- a/tests/handover/handover_tests.ok +++ b/tests/handover/handover_tests.ok @@ -4,6 +4,8 @@ pass test_amr_tch_f_to_h_congestion_assignment.ho_vty pass test_amr_tch_f_to_h_congestion_assignment_2.ho_vty pass test_amr_tch_f_to_h_congestion_assignment_3.ho_vty +pass test_amr_tch_h_to_f_congestion.ho_vty +pass test_amr_tch_h_to_f_congestion_two_cells.ho_vty pass test_balance_congestion.ho_vty pass test_balance_congestion_2.ho_vty pass test_congestion.ho_vty diff --git a/tests/handover/test_amr_tch_h_to_f_congestion.ho_vty b/tests/handover/test_amr_tch_h_to_f_congestion.ho_vty new file mode 100644 index 0000000..4d1194c --- /dev/null +++ b/tests/handover/test_amr_tch_h_to_f_congestion.ho_vty @@ -0,0 +1,14 @@ +# Congestion check: Balancing congestion by handover TCH/H -> TCH/F +# One BTS, TCH/H are congested and should move to TCH/F. + +network + handover2 min-free-slots tch/f 0 + handover2 min-free-slots tch/h 6 + +create-bts trx-count 1 timeslots c+s4 TCH/F TCH/F TCH/F TCH/H TCH/H TCH/H PDCH +set-ts-use trx 0 0 states * - - - TCH/H- - - * +meas-rep lchan 0 0 4 0 rxlev 30 rxqual 0 ta 0 +expect-no-chan +congestion-check +expect-ho from lchan 0 0 4 0 to lchan 0 0 1 0 +expect-ts-use trx 0 0 states * TCH/F - - - - - * diff --git a/tests/handover/test_amr_tch_h_to_f_congestion_two_cells.ho_vty b/tests/handover/test_amr_tch_h_to_f_congestion_two_cells.ho_vty new file mode 100644 index 0000000..eaaeabd --- /dev/null +++ b/tests/handover/test_amr_tch_h_to_f_congestion_two_cells.ho_vty @@ -0,0 +1,23 @@ +# Congestion check: Balancing congestion by handover TCH/H -> TCH/F +# TCH/H are congested and should move to TCH/F +# There are two cells, and the neighbor has weaker rxlev, so stay in the same cell. + +network + handover2 min-free-slots tch/f 0 + handover2 min-free-slots tch/h 6 + +create-bts trx-count 1 timeslots c+s4 TCH/F TCH/F TCH/F TCH/H TCH/H TCH/H PDCH +create-bts trx-count 1 timeslots c+s4 TCH/F TCH/F TCH/F TCH/H TCH/H TCH/H PDCH +set-ts-use trx 1 0 states * - - - TCH/H- - - * +meas-rep repeat 10 lchan 1 0 4 0 rxlev 30 rxqual 0 ta 0 neighbors 20 +expect-no-chan +congestion-check +# FAIL: bts 1 has better rxlev, so the call should stay in bts 1. Instead, a handover to bts 0 happens. +expect-ho from lchan 1 0 4 0 to lchan 0 0 1 0 +expect-ts-use trx 0 0 states * TCH/F - - - - - * +expect-ts-use trx 1 0 states * - - - - - - * +# the fail continues: later the better rxqual does *another* ho back to the original cell +meas-rep lchan 0 0 1 0 rxlev 20 rxqual 0 ta 0 neighbors 30 +expect-ho from lchan 0 0 1 0 to lchan 1 0 1 0 +expect-ts-use trx 0 0 states * - - - - - - * +expect-ts-use trx 1 0 states * TCH/F - - - - - * -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21974 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ib785ce8990beede603ba57171a60a531f0f396c9 Gerrit-Change-Number: 21974 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 10:29:42 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 7 Jan 2021 10:29:42 +0000 Subject: Change in osmo-bsc[master]: handover_test: show ineffective intra-cell choice In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21975 ) Change subject: handover_test: show ineffective intra-cell choice ...................................................................... handover_test: show ineffective intra-cell choice In handover decision 2, choosing an lchan to move so far takes into account only the absolute current rxlev, and it fails to look at the *difference* in rxlev between source and target cell. My recent feature to favor freeing half-used TCH/H does in fact not work well. The main reason why the test for that feature passes is that all lchans in the test get identical measurements -- which is unrealistic. A test with differing ratings uncovers the flaw in comparing intra-cell candidates. Related: SYS#5032 Change-Id: Iabce1ab44b496833c19d999fc3f2903d835c357f --- M tests/handover/test_dyn_ts_favor_moving_half_used_tch_h.ho_vty 1 file changed, 36 insertions(+), 5 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/tests/handover/test_dyn_ts_favor_moving_half_used_tch_h.ho_vty b/tests/handover/test_dyn_ts_favor_moving_half_used_tch_h.ho_vty index b90236d..9d88c86 100644 --- a/tests/handover/test_dyn_ts_favor_moving_half_used_tch_h.ho_vty +++ b/tests/handover/test_dyn_ts_favor_moving_half_used_tch_h.ho_vty @@ -1,15 +1,46 @@ -# Congestion check: favor moving a TCH/H that frees a half-used dyn TS completely +# Congestion check: favor moving a TCH/H that frees a half-used dyn TS completely. +# The algorithm should notice that this is about moving an lchan within the same cell, so all candidates will remain +# with unchanged rxlev after a re-assignment; hence the current rxlev for each candidate should not make a difference. create-bts trx-count 1 timeslots c+s4 dyn dyn dyn dyn dyn - - +network + handover2 min-free-slots tch/h 6 + +# Test with identical rxlev across lchans (trivial and unrealistic) set-ts-use trx 0 0 states * pdch TCH/HH TCH/H- TCH/HH pdch - - meas-rep lchan 0 0 2 1 rxlev 30 rxqual 0 ta 0 meas-rep lchan 0 0 3 0 rxlev 30 rxqual 0 ta 0 meas-rep lchan 0 0 4 0 rxlev 30 rxqual 0 ta 0 meas-rep lchan 0 0 4 1 rxlev 30 rxqual 0 ta 0 -# pick one to move: -network - bts 0 - handover2 min-free-slots tch/h 6 congestion-check expect-ho from lchan 0 0 3 0 to lchan 0 0 1 0 expect-ts-use trx 0 0 states * TCH/F TCH/HH pdch TCH/HH pdch - - + +# clear measurements for the next run +set-ts-use trx 0 0 states * pdch pdch pdch pdch pdch - - + +# Check that a weaker rxlev coming up earlier in the congestion checking loop does not override the favored half-used +# TCH/H +set-ts-use trx 0 0 states * pdch TCH/HH TCH/H- TCH/HH pdch - - +meas-rep lchan 0 0 2 1 rxlev 30 rxqual 0 ta 0 +meas-rep lchan 0 0 3 0 rxlev 31 rxqual 0 ta 0 +meas-rep lchan 0 0 4 0 rxlev 32 rxqual 0 ta 0 +meas-rep lchan 0 0 4 1 rxlev 33 rxqual 0 ta 0 +congestion-check +expect-ho from lchan 0 0 3 0 to lchan 0 0 1 0 +expect-ts-use trx 0 0 states * TCH/F TCH/HH pdch TCH/HH pdch - - + +# clear measurements for the next run +set-ts-use trx 0 0 states * pdch pdch pdch pdch pdch - - + +# Check that a weaker rxlev coming up later in the congestion checking loop does not override the favored half-used +# TCH/H +set-ts-use trx 0 0 states * pdch TCH/HH TCH/H- TCH/HH pdch - - +meas-rep lchan 0 0 2 1 rxlev 34 rxqual 0 ta 0 +meas-rep lchan 0 0 3 0 rxlev 33 rxqual 0 ta 0 +meas-rep lchan 0 0 4 0 rxlev 32 rxqual 0 ta 0 +meas-rep lchan 0 0 4 1 rxlev 31 rxqual 0 ta 0 +congestion-check +# FAIL: should still pick lchan 0 0 3 0! +expect-ho from lchan 0 0 4 1 to lchan 0 0 1 0 +expect-ts-use trx 0 0 states * TCH/F TCH/HH TCH/H- TCH/H- pdch - - -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21975 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Iabce1ab44b496833c19d999fc3f2903d835c357f Gerrit-Change-Number: 21975 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 10:29:42 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 7 Jan 2021 10:29:42 +0000 Subject: Change in osmo-bsc[master]: handover_test: add test_congestion_intra_vs_inter_cell.ho_vty In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21976 ) Change subject: handover_test: add test_congestion_intra_vs_inter_cell.ho_vty ...................................................................... handover_test: add test_congestion_intra_vs_inter_cell.ho_vty Related: SYS#5032 Change-Id: Ib5d7047328e1dadeae42b604a2f71771f0ac3152 --- M tests/handover/handover_tests.ok A tests/handover/test_congestion_intra_vs_inter_cell.ho_vty 2 files changed, 133 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/tests/handover/handover_tests.ok b/tests/handover/handover_tests.ok index 8f53471..eab405d 100644 --- a/tests/handover/handover_tests.ok +++ b/tests/handover/handover_tests.ok @@ -10,6 +10,7 @@ pass test_balance_congestion_2.ho_vty pass test_congestion.ho_vty pass test_congestion_favor_best_target_rxlev.ho_vty +pass test_congestion_intra_vs_inter_cell.ho_vty pass test_disabled_ho_and_as.ho_vty pass test_dyn_ts_amr_tch_f_to_h_congestion_assignment.ho_vty pass test_dyn_ts_favor_half_used_tch_h_as_target.ho_vty diff --git a/tests/handover/test_congestion_intra_vs_inter_cell.ho_vty b/tests/handover/test_congestion_intra_vs_inter_cell.ho_vty new file mode 100644 index 0000000..f0f8e2a --- /dev/null +++ b/tests/handover/test_congestion_intra_vs_inter_cell.ho_vty @@ -0,0 +1,132 @@ +create-bts trx-count 1 timeslots c+s4 TCH/F TCH/F TCH/F TCH/F TCH/H TCH/H PDCH +create-bts trx-count 1 timeslots c+s4 TCH/F TCH/F TCH/F TCH/F TCH/H TCH/H PDCH + +network + handover2 min-free-slots tch/h 4 + +set-ts-use trx 0 0 states * - - - - TCH/H- TCH/H- * + +meas-rep lchan 0 0 5 0 rxlev 31 rxqual 0 ta 0 neighbors 20 +expect-no-chan +meas-rep lchan 0 0 6 0 rxlev 30 rxqual 0 ta 0 neighbors 20 +expect-no-chan + +congestion-check +# FAIL! moving to a weaker neighbor, should move to TCH/F in current cell instead. +# FAIL! should favor upgrading the weaker TS 6. +expect-ho from lchan 0 0 5 0 to lchan 1 0 1 0 +expect-ts-use trx 0 0 states * - - - - - TCH/H- * +expect-ts-use trx 1 0 states * TCH/F - - - - - * + +# clear measurements for next run +set-ts-use trx 0 0 states * - - - - - - * +set-ts-use trx 1 0 states * - - - - - - * + +set-ts-use trx 0 0 states * - - - - TCH/H- TCH/H- * +meas-rep lchan 0 0 5 0 rxlev 30 rxqual 0 ta 0 neighbors 20 +expect-no-chan +meas-rep lchan 0 0 6 0 rxlev 31 rxqual 0 ta 0 neighbors 20 +expect-no-chan + +congestion-check +# FAIL! moving to a weaker neighbor, should move to TCH/F in current cell instead. +expect-ho from lchan 0 0 5 0 to lchan 1 0 1 0 +expect-ts-use trx 0 0 states * - - - - - TCH/H- * +expect-ts-use trx 1 0 states * TCH/F - - - - - * + +# clear measurements for next run +set-ts-use trx 0 0 states * - - - - - - * +set-ts-use trx 1 0 states * - - - - - - * + +set-ts-use trx 0 0 states * - - - - TCH/H- TCH/H- * +meas-rep lchan 0 0 5 0 rxlev 30 rxqual 0 ta 0 neighbors 20 +expect-no-chan +meas-rep lchan 0 0 6 0 rxlev 31 rxqual 0 ta 0 neighbors 21 +expect-no-chan + +congestion-check +# FAIL! moving to a weaker neighbor, should move to TCH/F in current cell instead. +# FAIL! should favor upgrading the weaker TS 5. +expect-ho from lchan 0 0 6 0 to lchan 1 0 1 0 +expect-ts-use trx 0 0 states * - - - - TCH/H- - * +expect-ts-use trx 1 0 states * TCH/F - - - - - * + +# clear measurements for next run +set-ts-use trx 0 0 states * - - - - - - * +set-ts-use trx 1 0 states * - - - - - - * + +set-ts-use trx 0 0 states * - - - - TCH/H- TCH/H- * +meas-rep lchan 0 0 5 0 rxlev 30 rxqual 0 ta 0 neighbors 21 +expect-no-chan +meas-rep lchan 0 0 6 0 rxlev 31 rxqual 0 ta 0 neighbors 20 +expect-no-chan + +congestion-check +# FAIL! moving to a weaker neighbor, should move to TCH/F in current cell instead. +expect-ho from lchan 0 0 5 0 to lchan 1 0 1 0 +expect-ts-use trx 0 0 states * - - - - - TCH/H- * +expect-ts-use trx 1 0 states * TCH/F - - - - - * + +# clear measurements for next run +set-ts-use trx 0 0 states * - - - - - - * +set-ts-use trx 1 0 states * - - - - - - * + +set-ts-use trx 0 0 states * - - - - TCH/H- TCH/H- * +meas-rep lchan 0 0 5 0 rxlev 30 rxqual 0 ta 0 neighbors 30 +expect-no-chan +meas-rep lchan 0 0 6 0 rxlev 31 rxqual 0 ta 0 neighbors 31 +expect-no-chan + +congestion-check +# FAIL! moving to a weaker neighbor, should move to TCH/F in current cell instead. +# FAIL! should favor upgrading the weaker TS 5. +expect-ho from lchan 0 0 6 0 to lchan 1 0 1 0 +expect-ts-use trx 0 0 states * - - - - TCH/H- - * +expect-ts-use trx 1 0 states * TCH/F - - - - - * + +# clear measurements for next run +set-ts-use trx 0 0 states * - - - - - - * +set-ts-use trx 1 0 states * - - - - - - * + +set-ts-use trx 0 0 states * - - - - TCH/H- TCH/H- * +meas-rep lchan 0 0 5 0 rxlev 31 rxqual 0 ta 0 neighbors 31 +expect-no-chan +meas-rep lchan 0 0 6 0 rxlev 30 rxqual 0 ta 0 neighbors 30 +expect-no-chan + +congestion-check +# FAIL! moving to a weaker neighbor, should move to TCH/F in current cell instead. +# FAIL! should favor upgrading the weaker TS 6. +expect-ho from lchan 0 0 5 0 to lchan 1 0 1 0 +expect-ts-use trx 0 0 states * - - - - - TCH/H- * +expect-ts-use trx 1 0 states * TCH/F - - - - - * + +# clear measurements for next run +set-ts-use trx 0 0 states * - - - - - - * +set-ts-use trx 1 0 states * - - - - - - * + +set-ts-use trx 0 0 states * - - - - TCH/H- TCH/H- * +meas-rep lchan 0 0 5 0 rxlev 30 rxqual 0 ta 0 neighbors 31 +expect-no-chan +meas-rep lchan 0 0 6 0 rxlev 31 rxqual 0 ta 0 neighbors 30 +expect-no-chan + +congestion-check +expect-ho from lchan 0 0 5 0 to lchan 1 0 1 0 +expect-ts-use trx 0 0 states * - - - - - TCH/H- * +expect-ts-use trx 1 0 states * TCH/F - - - - - * + +# clear measurements for next run +set-ts-use trx 0 0 states * - - - - - - * +set-ts-use trx 1 0 states * - - - - - - * + +set-ts-use trx 0 0 states * - - - - TCH/H- TCH/H- * +meas-rep lchan 0 0 5 0 rxlev 31 rxqual 0 ta 0 neighbors 30 +expect-no-chan +meas-rep lchan 0 0 6 0 rxlev 30 rxqual 0 ta 0 neighbors 31 +expect-no-chan + +congestion-check +expect-ho from lchan 0 0 6 0 to lchan 1 0 1 0 +expect-ts-use trx 0 0 states * - - - - TCH/H- - * +expect-ts-use trx 1 0 states * TCH/F - - - - - * -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21976 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ib5d7047328e1dadeae42b604a2f71771f0ac3152 Gerrit-Change-Number: 21976 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 10:29:43 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 7 Jan 2021 10:29:43 +0000 Subject: Change in osmo-bsc[master]: hodec2: clarify current and target rxlev per candidate In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21977 ) Change subject: hodec2: clarify current and target rxlev per candidate ...................................................................... hodec2: clarify current and target rxlev per candidate Store the rxlev of the current lchan and the target BTS in the ho_candidate, to clarify the code. No functional change, cosmetically prepare for I2704899c85c35dfd4eba43468452483f40016ca2. Change-Id: Ie6c165e17bb3c99eebc967a6bb02529db8bdfc98 --- M src/osmo-bsc/handover_decision_2.c 1 file changed, 51 insertions(+), 48 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, but someone else must approve pespin: Looks good to me, approved diff --git a/src/osmo-bsc/handover_decision_2.c b/src/osmo-bsc/handover_decision_2.c index 7854f09..ae9435f 100644 --- a/src/osmo-bsc/handover_decision_2.c +++ b/src/osmo-bsc/handover_decision_2.c @@ -104,7 +104,8 @@ struct gsm_bts *bts; /* target BTS in local BSS */ const struct gsm0808_cell_id_list2 *cil; /* target cells in remote BSS */ uint8_t requirements; /* what is fulfilled */ - int avg; /* average RX level */ + int rxlev_current; + int rxlev_target; }; enum ho_reason { @@ -236,6 +237,15 @@ return NULL; } +static int current_rxlev(struct gsm_lchan *lchan) +{ + struct gsm_bts *bts = lchan->ts->trx->bts; + return get_meas_rep_avg(lchan, + ho_get_hodec2_full_tdma(bts->ho) ? + MEAS_REP_DL_RXLEV_FULL : MEAS_REP_DL_RXLEV_SUB, + ho_get_hodec2_rxlev_avg_win(bts->ho)); +} + /* obtain averaged rxlev for given neighbor */ static int neigh_meas_avg(struct neigh_meas_proc *nmp, int window) { @@ -814,7 +824,7 @@ /* verbosely log about a handover candidate */ static inline void debug_candidate(struct ho_candidate *candidate, - int8_t rxlev, int tchf_count, int tchh_count) + int tchf_count, int tchh_count) { struct gsm_lchan *lchan = candidate->lchan; @@ -831,25 +841,25 @@ if (candidate->cil) LOGPHOLCHANTOREMOTE(lchan, candidate->cil, LOGL_DEBUG, "RX level %d dBm -> %d dBm\n", - rxlev2dbm(rxlev), rxlev2dbm(candidate->avg)); + rxlev2dbm(candidate->rxlev_current), rxlev2dbm(candidate->rxlev_target)); if (candidate->bts == lchan->ts->trx->bts) LOGPHOLCHANTOBTS(lchan, candidate->bts, LOGL_DEBUG, "RX level %d dBm; " HO_CANDIDATE_FMT(f, F) "; " HO_CANDIDATE_FMT(h, H) "\n", - rxlev2dbm(candidate->avg), + rxlev2dbm(candidate->rxlev_current), HO_CANDIDATE_ARGS(f, F), HO_CANDIDATE_ARGS(h, H)); else if (candidate->bts) LOGPHOLCHANTOBTS(lchan, candidate->bts, LOGL_DEBUG, "RX level %d dBm -> %d dBm; " HO_CANDIDATE_FMT(f, F) "; " HO_CANDIDATE_FMT(h, H) "\n", - rxlev2dbm(rxlev), rxlev2dbm(candidate->avg), + rxlev2dbm(candidate->rxlev_current), rxlev2dbm(candidate->rxlev_target), HO_CANDIDATE_ARGS(f, F), HO_CANDIDATE_ARGS(h, H)); } /* add candidate for re-assignment within the current cell */ static void collect_assignment_candidate(struct gsm_lchan *lchan, struct ho_candidate *clist, - unsigned int *candidates, int av_rxlev) + unsigned int *candidates, int rxlev_current) { struct gsm_bts *bts = lchan->ts->trx->bts; int tchf_count, tchh_count; @@ -862,10 +872,11 @@ .lchan = lchan, .bts = bts, .requirements = check_requirements(lchan, bts, tchf_count, tchh_count), - .avg = av_rxlev, + .rxlev_current = rxlev_current, + .rxlev_target = rxlev_current, /* same cell, same rxlev */ }; - debug_candidate(&c, 0, tchf_count, tchh_count); + debug_candidate(&c, tchf_count, tchh_count); if (!c.requirements) return; @@ -877,7 +888,7 @@ /* add candidates for handover to all neighbor cells */ static void collect_handover_candidate(struct gsm_lchan *lchan, struct neigh_meas_proc *nmp, struct ho_candidate *clist, unsigned int *candidates, - bool include_weaker_rxlev, int av_rxlev, + bool include_weaker_rxlev, int rxlev_current, int *neighbors_count) { struct gsm_bts *bts = lchan->ts->trx->bts; @@ -890,7 +901,6 @@ .arfcn = nmp->arfcn, .bsic = nmp->bsic, }; - int avg; struct ho_candidate c; int min_rxlev; struct handover_cfg *neigh_cfg; @@ -929,27 +939,25 @@ * instead assume the local BTS' config to apply. */ neigh_cfg = (neighbor_bts ? : bts)->ho; - /* calculate average rxlev for this cell over the window */ - avg = neigh_meas_avg(nmp, ho_get_hodec2_rxlev_neigh_avg_win(bts->ho)); - c = (struct ho_candidate){ .lchan = lchan, - .avg = avg, .nik = ni, .bts = neighbor_bts, .cil = neighbor_cil, + .rxlev_current = rxlev_current, + .rxlev_target = neigh_meas_avg(nmp, ho_get_hodec2_rxlev_neigh_avg_win(bts->ho)), }; /* Heed rxlev hysteresis only if the RXLEV/RXQUAL/TA levels of the MS aren't critically bad and * we're just looking for an improvement. If levels are critical, we desperately need a handover * and thus skip the hysteresis check. */ if (!include_weaker_rxlev) { - unsigned int pwr_hyst = ho_get_hodec2_pwr_hysteresis(bts->ho); - if (avg <= (av_rxlev + pwr_hyst)) { + int pwr_hyst = ho_get_hodec2_pwr_hysteresis(bts->ho); + if ((c.rxlev_target - c.rxlev_current) <= pwr_hyst) { LOGPHOCAND(&c, LOGL_DEBUG, "Not a candidate, because RX level (%d dBm) is lower" " or equal than current RX level (%d dBm) + hysteresis (%d)\n", - rxlev2dbm(avg), rxlev2dbm(av_rxlev), pwr_hyst); + rxlev2dbm(c.rxlev_target), rxlev2dbm(c.rxlev_current), pwr_hyst); return; } } @@ -957,11 +965,11 @@ /* if the minimum level is not reached. * In case of a remote-BSS, use the current BTS' configuration. */ min_rxlev = ho_get_hodec2_min_rxlev(neigh_cfg); - if (rxlev2dbm(avg) < min_rxlev) { + if (rxlev2dbm(c.rxlev_target) < min_rxlev) { LOGPHOCAND(&c, LOGL_DEBUG, "Not a candidate, because RX level (%d dBm) is lower" " than the minimum required RX level (%d dBm)\n", - rxlev2dbm(avg), min_rxlev); + rxlev2dbm(c.rxlev_target), min_rxlev); return; } @@ -973,7 +981,7 @@ } else c.requirements = check_requirements_remote_bss(lchan, neighbor_cil); - debug_candidate(&c, av_rxlev, tchf_count, tchh_count); + debug_candidate(&c, tchf_count, tchh_count); if (!c.requirements) return; @@ -984,30 +992,25 @@ static void collect_candidates_for_lchan(struct gsm_lchan *lchan, struct ho_candidate *clist, unsigned int *candidates, - int *_av_rxlev, bool include_weaker_rxlev) + int *_rxlev_current, bool include_weaker_rxlev) { struct gsm_bts *bts = lchan->ts->trx->bts; - int av_rxlev; + int rxlev_current; bool assignment; bool handover; int neighbors_count = 0; - unsigned int rxlev_avg_win = ho_get_hodec2_rxlev_avg_win(bts->ho); OSMO_ASSERT(candidates); - /* calculate average rxlev for this cell over the window */ - av_rxlev = get_meas_rep_avg(lchan, - ho_get_hodec2_full_tdma(bts->ho) ? - MEAS_REP_DL_RXLEV_FULL : MEAS_REP_DL_RXLEV_SUB, - rxlev_avg_win); - if (_av_rxlev) - *_av_rxlev = av_rxlev; + rxlev_current = current_rxlev(lchan); + if (_rxlev_current) + *_rxlev_current = rxlev_current; /* in case there is no measurement report (yet) */ - if (av_rxlev < 0) { + if (rxlev_current < 0) { LOGPHOLCHAN(lchan, LOGL_DEBUG, "Not collecting candidates, not enough measurements" " (got %d, want %u)\n", - lchan->meas_rep_count, rxlev_avg_win); + lchan->meas_rep_count, ho_get_hodec2_rxlev_avg_win(bts->ho)); return; } @@ -1015,14 +1018,14 @@ handover = ho_get_ho_active(bts->ho); if (assignment) - collect_assignment_candidate(lchan, clist, candidates, av_rxlev); + collect_assignment_candidate(lchan, clist, candidates, rxlev_current); if (handover) { int i; for (i = 0; i < ARRAY_SIZE(lchan->neigh_meas); i++) { collect_handover_candidate(lchan, &lchan->neigh_meas[i], clist, candidates, - include_weaker_rxlev, av_rxlev, &neighbors_count); + include_weaker_rxlev, rxlev_current, &neighbors_count); } } } @@ -1083,7 +1086,7 @@ struct gsm_bts *bts = lchan->ts->trx->bts; int ahs = (lchan->tch_mode == GSM48_CMODE_SPEECH_AMR && lchan->type == GSM_LCHAN_TCH_H); - int av_rxlev; + int rxlev_current; struct ho_candidate clist[1 + ARRAY_SIZE(lchan->neigh_meas)]; unsigned int candidates = 0; int i; @@ -1099,7 +1102,7 @@ return 0; } - collect_candidates_for_lchan(lchan, clist, &candidates, &av_rxlev, include_weaker_rxlev); + collect_candidates_for_lchan(lchan, clist, &candidates, &rxlev_current, include_weaker_rxlev); /* If assignment is disabled and no neighbor cell report exists, or no neighbor cell qualifies, * we may not even have any candidates. */ @@ -1121,7 +1124,7 @@ if (!clist[i].bts) continue; - better = clist[i].avg - av_rxlev; + better = clist[i].rxlev_target - clist[i].rxlev_current; /* Apply AFS bias? */ afs_bias = 0; if (ahs && (clist[i].requirements & REQUIREMENT_B_TCHF)) @@ -1137,7 +1140,7 @@ /* perform handover, if there is a candidate */ if (best_cand) { LOGPHOCAND(best_cand, LOGL_INFO, "Best candidate, RX level %d%s\n", - rxlev2dbm(best_cand->avg), + rxlev2dbm(best_cand->rxlev_target), best_applied_afs_bias ? " (applied AHS -> AFS rxlev bias)" : ""); return trigger_ho(best_cand, best_cand->requirements & REQUIREMENT_B_MASK); } @@ -1154,7 +1157,7 @@ if (!clist[i].bts) continue; - better = clist[i].avg - av_rxlev; + better = clist[i].rxlev_target - clist[i].rxlev_current; /* Apply AFS bias? */ afs_bias = 0; if (ahs && (clist[i].requirements & REQUIREMENT_C_TCHF)) @@ -1170,7 +1173,7 @@ /* perform handover, if there is a candidate */ if (best_cand) { LOGPHOCAND(best_cand, LOGL_INFO, "Best candidate, RX level %d%s\n", - rxlev2dbm(best_cand->avg), + rxlev2dbm(best_cand->rxlev_target), best_applied_afs_bias? " (applied AHS -> AFS rxlev bias)" : ""); return trigger_ho(best_cand, best_cand->requirements & REQUIREMENT_C_MASK); } @@ -1191,7 +1194,7 @@ if (!(clist[i].requirements & REQUIREMENT_A_MASK)) continue; - better = clist[i].avg - av_rxlev; + better = clist[i].rxlev_target - clist[i].rxlev_current; /* Apply AFS bias? * (never to remote-BSS neighbors, since we will not change the lchan type for those.) */ afs_bias = 0; @@ -1209,7 +1212,7 @@ /* perform handover, if there is a candidate */ if (best_cand) { LOGPHOCAND(best_cand, LOGL_INFO, "Best candidate: RX level %d%s\n", - rxlev2dbm(best_cand->avg), + rxlev2dbm(best_cand->rxlev_target), best_applied_afs_bias ? " (applied AHS -> AFS rxlev bias)" : ""); return trigger_ho(best_cand, best_cand->requirements & REQUIREMENT_A_MASK); } @@ -1475,7 +1478,7 @@ && (intra_cell && upgrade_to_tch_f)) continue; - avg_rxlev = c->avg; + avg_rxlev = c->rxlev_target; /* improve AHS */ if (upgrade_to_tch_f) @@ -1639,7 +1642,7 @@ LOGPHOCAND(&clist[i], LOGL_DEBUG, "#%d: req={TCH/F:" REQUIREMENTS_FMT ", TCH/H:" REQUIREMENTS_FMT "} avg-rxlev=%d dBm\n", i, REQUIREMENTS_ARGS(clist[i].requirements, F), REQUIREMENTS_ARGS(clist[i].requirements, H), - rxlev2dbm(clist[i].avg)); + rxlev2dbm(clist[i].rxlev_target)); } } @@ -1662,7 +1665,7 @@ if (best_cand) { any_ho = 1; LOGPHOCAND(best_cand, LOGL_DEBUG, "Best candidate: RX level %d%s\n", - rxlev2dbm(best_cand->avg), + rxlev2dbm(best_cand->rxlev_target), is_improved ? " (applied AHS->AFS bias)" : ""); trigger_ho(best_cand, best_cand->requirements & REQUIREMENT_B_MASK); #if 0 @@ -1703,7 +1706,7 @@ if (best_cand) { any_ho = 1; LOGPHOCAND(best_cand, LOGL_INFO, "Worst candidate: RX level %d from TCH/H -> TCH/F%s\n", - rxlev2dbm(best_cand->avg), + rxlev2dbm(best_cand->rxlev_target), is_improved ? " (applied AHS -> AFS rxlev bias)" : ""); trigger_ho(best_cand, best_cand->requirements & REQUIREMENT_B_MASK); #if 0 @@ -1738,7 +1741,7 @@ if (best_cand) { any_ho = 1; LOGPHOCAND(best_cand, LOGL_INFO, "Best candidate: RX level %d%s\n", - rxlev2dbm(best_cand->avg), + rxlev2dbm(best_cand->rxlev_target), is_improved ? " (applied AHS -> AFS rxlev bias)" : ""); trigger_ho(best_cand, best_cand->requirements & REQUIREMENT_C_MASK); #if 0 @@ -1781,7 +1784,7 @@ if (best_cand) { any_ho = 1; LOGPHOCAND(best_cand, LOGL_INFO, "Worst candidate: RX level %d from TCH/H -> TCH/F%s\n", - rxlev2dbm(best_cand->avg), + rxlev2dbm(best_cand->rxlev_target), is_improved ? " (applied AHS -> AFS rxlev bias)" : ""); trigger_ho(best_cand, best_cand->requirements & REQUIREMENT_C_MASK); #if 0 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21977 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ie6c165e17bb3c99eebc967a6bb02529db8bdfc98 Gerrit-Change-Number: 21977 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 10:29:43 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 7 Jan 2021 10:29:43 +0000 Subject: Change in osmo-bsc[master]: hodec2: cosmetic: clarify afs_bias, simplify pick_better_lchan_to_move() In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21978 ) Change subject: hodec2: cosmetic: clarify afs_bias, simplify pick_better_lchan_to_move() ...................................................................... hodec2: cosmetic: clarify afs_bias, simplify pick_better_lchan_to_move() Instead of passing the TCH/H -> TCH/F bias (AFS bias) in local variables, rather store it in the ho_candidate struct next to the other rxlev related values. Add the AFS bias to the compared rxlev in pick_better_lchan_to_move(). Modify pick_better_lchan_to_move() to simpler semantics of returning either a or b. No functional change. Change-Id: I73860abdf2a77270ca4851ad58c09767d1bb08f1 --- M src/osmo-bsc/handover_decision_2.c 1 file changed, 36 insertions(+), 50 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, but someone else must approve pespin: Looks good to me, approved diff --git a/src/osmo-bsc/handover_decision_2.c b/src/osmo-bsc/handover_decision_2.c index ae9435f..eb72e11 100644 --- a/src/osmo-bsc/handover_decision_2.c +++ b/src/osmo-bsc/handover_decision_2.c @@ -106,6 +106,7 @@ uint8_t requirements; /* what is fulfilled */ int rxlev_current; int rxlev_target; + int rxlev_afs_bias; }; enum ho_reason { @@ -1398,63 +1399,55 @@ /* Given two candidates, pick the one that should rather be moved during handover. * Return the better candidate in out-parameters best_cand and best_avg_db. */ -static bool pick_better_lchan_to_move(bool want_highest_db, - struct ho_candidate **best_cand_p, unsigned int *best_avg_db_p, - struct ho_candidate *other_cand, unsigned int other_avg_db) +static struct ho_candidate *pick_better_lchan_to_move(bool want_highest_db, + struct ho_candidate *a, + struct ho_candidate *b) { - if (!*best_cand_p) - goto return_other; + int a_rxlev; + int b_rxlev; - if (want_highest_db && (*best_avg_db_p < other_avg_db)) - goto return_other; - if (!want_highest_db && (*best_avg_db_p > other_avg_db)) - goto return_other; + if (!a) + return b; + if (!b) + return a; + + a_rxlev = a->rxlev_target + a->rxlev_afs_bias; + b_rxlev = b->rxlev_target + b->rxlev_afs_bias; + + if (want_highest_db && a_rxlev < b_rxlev) + return b; + if (!want_highest_db && a_rxlev > b_rxlev) + return b; /* The two lchans have identical ratings, prefer picking a dynamic timeslot: free PDCH and allow more timeslot * type flexibility for further congestion resolution. */ - if (lchan_is_on_dynamic_ts(other_cand->lchan)) { + if (lchan_is_on_dynamic_ts(b->lchan)) { /* If both are dynamic, prefer one that completely (or to a higher degree) frees its timeslot. */ - if (lchan_is_on_dynamic_ts((*best_cand_p)->lchan) - && ts_usage_count((*best_cand_p)->lchan->ts) < ts_usage_count(other_cand->lchan->ts)) - return false; + if (lchan_is_on_dynamic_ts(a->lchan) + && ts_usage_count(a->lchan->ts) < ts_usage_count(b->lchan->ts)) + return a; /* If both equally satisfy these preferences, it does not matter which one is picked. * Give slight preference to moving later dyn TS, so that a free dyn TS may group with following static * PDCH, though this depends on how the user configured the TS -- not harmful to do so anyway. */ - goto return_other; + return b; } - /* keep the same candidate. */ - return false; - -return_other: - *best_cand_p = other_cand; - *best_avg_db_p = other_avg_db; - return true; + return a; } -static struct ho_candidate *pick_best_candidate(int *applied_afs_bias, - struct ho_candidate *clist, int clist_len, +static struct ho_candidate *pick_best_candidate(struct ho_candidate *clist, int clist_len, bool want_highest_db, bool omit_intra_cell_upgrade_to_tchf, bool only_intra_cell_upgrade_to_tchf, uint8_t for_requirement) { struct ho_candidate *result = NULL; - unsigned int result_avg_rxlev; - int result_afs_bias = 0; int i; - if (applied_afs_bias) - *applied_afs_bias = 0; - - result_avg_rxlev = want_highest_db ? 0 : INT_MAX; - for (i = 0; i < clist_len; i++) { struct ho_candidate *c = &clist[i]; bool intra_cell; bool upgrade_to_tch_f; - int avg_rxlev; - int afs_bias; /* For multiple passes of congestion resolution, already handovered candidates are marked by lchan = * NULL. (though at the time of writing, multiple passes of congestion resolution are DISABLED.) */ @@ -1478,21 +1471,15 @@ && (intra_cell && upgrade_to_tch_f)) continue; - avg_rxlev = c->rxlev_target; - /* improve AHS */ if (upgrade_to_tch_f) - afs_bias = ho_get_hodec2_afs_bias_rxlev(c->bts->ho); + c->rxlev_afs_bias = ho_get_hodec2_afs_bias_rxlev(c->bts->ho); else - afs_bias = 0; - avg_rxlev += afs_bias; + c->rxlev_afs_bias = 0; - if (pick_better_lchan_to_move(want_highest_db, &result, &result_avg_rxlev, c, avg_rxlev)) - result_afs_bias = afs_bias; + result = pick_better_lchan_to_move(want_highest_db, result, c); } - if (applied_afs_bias) - *applied_afs_bias = result_afs_bias; return result; } @@ -1556,7 +1543,6 @@ struct ho_candidate *best_cand = NULL; int rc = 0; int any_ho = 0; - int is_improved = 0; if (tchf_congestion < 0) tchf_congestion = 0; @@ -1657,7 +1643,7 @@ /* TODO: attempt inter-BSC HO if no local cells qualify, and rely on the remote BSS to * deny receiving the handover if it also considers itself congested. Maybe do that only * when the cell is absolutely full, i.e. not only min-free-slots. (x) */ - best_cand = pick_best_candidate(&is_improved, clist, candidates, + best_cand = pick_best_candidate(clist, candidates, /* want_highest_db */ true, /* omit_intra_cell_upgrade_to_tchf */ true, /* only_intra_cell_upgrade_to_tchf */ false, @@ -1666,7 +1652,7 @@ any_ho = 1; LOGPHOCAND(best_cand, LOGL_DEBUG, "Best candidate: RX level %d%s\n", rxlev2dbm(best_cand->rxlev_target), - is_improved ? " (applied AHS->AFS bias)" : ""); + best_cand->rxlev_afs_bias ? " (applied AHS->AFS bias)" : ""); trigger_ho(best_cand, best_cand->requirements & REQUIREMENT_B_MASK); #if 0 /* if there is still congestion, mark lchan as deleted @@ -1698,7 +1684,7 @@ * but simply pick the lowest one. * Upgrading TCH/H channels obviously only applies when TCH/H is actually congested. */ if (tchh_congestion > 0) - best_cand = pick_best_candidate(&is_improved, clist, candidates, + best_cand = pick_best_candidate(clist, candidates, /* want_highest_db */ false, /* omit_intra_cell_upgrade_to_tchf */ false, /* only_intra_cell_upgrade_to_tchf */ true, @@ -1707,7 +1693,7 @@ any_ho = 1; LOGPHOCAND(best_cand, LOGL_INFO, "Worst candidate: RX level %d from TCH/H -> TCH/F%s\n", rxlev2dbm(best_cand->rxlev_target), - is_improved ? " (applied AHS -> AFS rxlev bias)" : ""); + best_cand->rxlev_afs_bias ? " (applied AHS -> AFS rxlev bias)" : ""); trigger_ho(best_cand, best_cand->requirements & REQUIREMENT_B_MASK); #if 0 /* if there is still congestion, mark lchan as deleted @@ -1733,7 +1719,7 @@ /* Select best candidate that balances congestion. * Again no remote BSS. * Again no TCH/H -> F upgrades within the same cell. */ - best_cand = pick_best_candidate(&is_improved, clist, candidates, + best_cand = pick_best_candidate(clist, candidates, /* want_highest_db */ true, /* omit_intra_cell_upgrade_to_tchf */ true, /* only_intra_cell_upgrade_to_tchf */ false, @@ -1742,7 +1728,7 @@ any_ho = 1; LOGPHOCAND(best_cand, LOGL_INFO, "Best candidate: RX level %d%s\n", rxlev2dbm(best_cand->rxlev_target), - is_improved ? " (applied AHS -> AFS rxlev bias)" : ""); + best_cand->rxlev_afs_bias ? " (applied AHS -> AFS rxlev bias)" : ""); trigger_ho(best_cand, best_cand->requirements & REQUIREMENT_C_MASK); #if 0 /* if there is still congestion, mark lchan as deleted @@ -1774,7 +1760,7 @@ /* Look for upgrading TCH/H to TCH/F within the same cell, which balances congestion, again upgrade the TCH/H * lchan that has the worst reception: */ if (tchh_congestion > 0) - best_cand = pick_best_candidate(&is_improved, clist, candidates, + best_cand = pick_best_candidate(clist, candidates, /* want_highest_db */ false, /* omit_intra_cell_upgrade_to_tchf */ false, /* only_intra_cell_upgrade_to_tchf */ true, @@ -1785,7 +1771,7 @@ any_ho = 1; LOGPHOCAND(best_cand, LOGL_INFO, "Worst candidate: RX level %d from TCH/H -> TCH/F%s\n", rxlev2dbm(best_cand->rxlev_target), - is_improved ? " (applied AHS -> AFS rxlev bias)" : ""); + best_cand->rxlev_afs_bias ? " (applied AHS -> AFS rxlev bias)" : ""); trigger_ho(best_cand, best_cand->requirements & REQUIREMENT_C_MASK); #if 0 /* if there is still congestion, mark lchan as deleted -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21978 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I73860abdf2a77270ca4851ad58c09767d1bb08f1 Gerrit-Change-Number: 21978 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 10:30:16 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 7 Jan 2021 10:30:16 +0000 Subject: Change in osmo-pcap[master]: reformat debian/control for osmo-release.sh compatibility In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcap/+/22003 ) Change subject: reformat debian/control for osmo-release.sh compatibility ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcap/+/22003 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcap Gerrit-Branch: master Gerrit-Change-Id: I8ab9a24af6ac0e4610ecc0eca1d5f5b9e03ad445 Gerrit-Change-Number: 22003 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 07 Jan 2021 10:30:16 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 10:30:19 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 7 Jan 2021 10:30:19 +0000 Subject: Change in osmo-pcap[master]: reformat debian/control for osmo-release.sh compatibility In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcap/+/22003 ) Change subject: reformat debian/control for osmo-release.sh compatibility ...................................................................... reformat debian/control for osmo-release.sh compatibility If we have more than one dependency in the line, osmo-release.sh fails with ERROR: configure.ac does NOT match debian/control ! Change-Id: I8ab9a24af6ac0e4610ecc0eca1d5f5b9e03ad445 --- M debian/control 1 file changed, 8 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/debian/control b/debian/control index 7a97aad..4e2fc7c 100644 --- a/debian/control +++ b/debian/control @@ -2,7 +2,14 @@ Section: unknown Priority: extra Maintainer: Holger Hans Peter Freyther -Build-Depends: debhelper (>= 7.0.50~), dh-autoreconf, autotools-dev, libpcap0.8-dev, pkg-config, libosmocore-dev, libgnutls28-dev, libzmq3-dev +Build-Depends: debhelper (>= 7.0.50~), + dh-autoreconf, + autotools-dev, + libpcap0.8-dev, + pkg-config, + libosmocore-dev, + libgnutls28-dev, + libzmq3-dev Standards-Version: 3.9.1 Homepage: https://osmocom.org/projects/osmo-pcap Vcs-Git: git://git.osmocom.org/osmo-pcap.git -- To view, visit https://gerrit.osmocom.org/c/osmo-pcap/+/22003 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcap Gerrit-Branch: master Gerrit-Change-Id: I8ab9a24af6ac0e4610ecc0eca1d5f5b9e03ad445 Gerrit-Change-Number: 22003 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 10:31:13 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 7 Jan 2021 10:31:13 +0000 Subject: Change in osmo-trx[master]: README update In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/21999 ) Change subject: README update ...................................................................... Patch Set 1: Code-Review+2 (1 comment) https://gerrit.osmocom.org/c/osmo-trx/+/21999/1/README.md File README.md: https://gerrit.osmocom.org/c/osmo-trx/+/21999/1/README.md at a15 PS1, Line 15: while still maintaining backwards compatibility with OpenBTS > Isn't this the case anymore? Is anyone testing this? Has anyone tried? Are we aware it works? I'd rather not want to make any such claims if we cannot back them up. -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/21999 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I4f20ad8666dcc6bbc23d78b40b7c73ddd7e6eacc Gerrit-Change-Number: 21999 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: fixeria Gerrit-Comment-Date: Thu, 07 Jan 2021 10:31:13 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Comment-In-Reply-To: fixeria Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 10:31:15 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 7 Jan 2021 10:31:15 +0000 Subject: Change in osmo-trx[master]: README update In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/21999 ) Change subject: README update ...................................................................... README update * use https for hyperlinks * explicitly mention the primary use case with OsmoBTS * fix spelling in title Change-Id: I4f20ad8666dcc6bbc23d78b40b7c73ddd7e6eacc --- M README.md 1 file changed, 8 insertions(+), 10 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/README.md b/README.md index dc026e0..a54d2e7 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ -About OsmTRX -============ +About OsmoTRX +============= OsmoTRX is a software-defined radio transceiver that implements the Layer 1 physical layer of a BTS comprising the following 3GPP specifications: @@ -9,14 +9,12 @@ * TS 05.04 "Modulation" * TS 05.10 "Radio subsystem synchronization" -OsmoTRX is based on the transceiver code from the +OsmoTRX is originally based on the transceiver code from the [OpenBTS](https://osmocom.org/projects/osmobts/wiki/OpenBTS) project, but setup to operate independently with the purpose of using with non-OpenBTS software and -projects, while still maintaining backwards compatibility with OpenBTS when -possible. Currently there are numerous features contained in OsmoTRX that extend -the functionality of the OpenBTS transceiver. These features include enhanced -support for various embedded platforms - notably ARM - and dual channel -diversity support for the Fairwaves umtrx. +projects, specifically within the Osmocom stack. Used together with +[OsmoBTS](https://osmocom.org/projects/osmobts/wiki) you can get a pretty +standard GSM BTS with Abis interface as per the relevant 3GPP specifications. Homepage -------- @@ -31,7 +29,7 @@ git clone git://git.osmocom.org/osmo-trx.git -There is a cgit interface at +There is a cgit interface at Documentation ------------- @@ -39,7 +37,7 @@ Doxygen-generated API documentation is generated during the build process, but also available online for each of the sub-libraries at User Manual for OsmoTRX can be generated during the build process, and is also available online at -. +. Mailing List ------------ -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/21999 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I4f20ad8666dcc6bbc23d78b40b7c73ddd7e6eacc Gerrit-Change-Number: 21999 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: fixeria Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 10:37:57 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 7 Jan 2021 10:37:57 +0000 Subject: Change in osmo-trx[master]: README update In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/21999 ) Change subject: README update ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-trx/+/21999/1/README.md File README.md: https://gerrit.osmocom.org/c/osmo-trx/+/21999/1/README.md at a15 PS1, Line 15: while still maintaining backwards compatibility with OpenBTS > Is anyone testing this? Has anyone tried? Are we aware it works? I'd rather not want to make any su [?] Yes, it still works. Somebody in the IRC has confirmed that after enabling dummy burst filling. -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/21999 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I4f20ad8666dcc6bbc23d78b40b7c73ddd7e6eacc Gerrit-Change-Number: 21999 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: fixeria Gerrit-Comment-Date: Thu, 07 Jan 2021 10:37:57 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: laforge Comment-In-Reply-To: fixeria Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 11:15:13 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 7 Jan 2021 11:15:13 +0000 Subject: Change in osmo-iuh[for-1.0]: debian: Actually build manuals; add osmo-hnbgw-doc package References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-iuh/+/22010 ) Change subject: debian: Actually build manuals; add osmo-hnbgw-doc package ...................................................................... debian: Actually build manuals; add osmo-hnbgw-doc package for some strange reason we didn't yet build the manual in the debian package build. Change-Id: Id53956494144b46e78fc25a176a9b8917788d86e --- M TODO-RELEASE M debian/control M debian/rules 3 files changed, 16 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-iuh refs/changes/10/22010/1 diff --git a/TODO-RELEASE b/TODO-RELEASE index dde4b72..d0852fc 100644 --- a/TODO-RELEASE +++ b/TODO-RELEASE @@ -7,4 +7,3 @@ # If any interfaces have been added since the last public release: c:r:a + 1. # If any interfaces have been removed or changed since the last public release: c:r:0. #library what description / commit summary line -manual needs common chapter cs7-config.adoc from osmo-gsm-manuals > 0.3.0 diff --git a/debian/control b/debian/control index 416b9d7..d1805de 100644 --- a/debian/control +++ b/debian/control @@ -14,6 +14,7 @@ libosmocore-dev (>= 0.12.0), libosmo-netif-dev (>= 0.3.0), libosmo-sigtran-dev (>= 0.10.0), + osmo-gsm-manuals-dev (>= 1.0.0), python3 Standards-Version: 3.9.8 Vcs-Git: git://git.osmocom.org/osmo-iuh.git @@ -36,6 +37,14 @@ Depends: osmo-hnbgw (= ${binary:Version}), ${misc:Depends} Description: osmocom Home Node B Gateway +Package: osmo-hnbgw-doc +Section: doc +Architecture: all +Depends: ${misc:Depends} +Description: ${misc:Package} PDF documentation + Various manuals: user manual, VTY reference manual and/or + protocol/interface manuals. + Package: libosmo-ranap3 Section: libs Architecture: any diff --git a/debian/rules b/debian/rules index c3bdf50..e1f6124 100755 --- a/debian/rules +++ b/debian/rules @@ -8,6 +8,10 @@ %: dh $@ --with autoreconf +CONFIGURE_FLAGS += --with-systemdsystemunitdir=/lib/systemd/system --enable-manuals +override_dh_auto_configure: + dh_auto_configure -- $(CONFIGURE_FLAGS) + # See https://www.debian.org/doc/manuals/developers-reference/best-pkging-practices.html#bpp-dbg override_dh_strip: dh_strip -plibosmo-ranap3 --dbg-package=libosmo-ranap-dbg @@ -18,5 +22,6 @@ override_dh_auto_test: dh_auto_test || (find . -name testsuite.log -exec cat {} \; ; false) -override_dh_auto_configure: - dh_auto_configure -- --with-systemdsystemunitdir=/lib/systemd/system +# Don't create .pdf.gz files (barely saves space and they can't be opened directly by most pdf readers) +override_dh_compress: + dh_compress -X.pdf -- To view, visit https://gerrit.osmocom.org/c/osmo-iuh/+/22010 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: for-1.0 Gerrit-Change-Id: Id53956494144b46e78fc25a176a9b8917788d86e Gerrit-Change-Number: 22010 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 11:30:48 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 7 Jan 2021 11:30:48 +0000 Subject: Change in osmo-bsc[master]: hodec2: fix candidate choices in congestion check In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21979 ) Change subject: hodec2: fix candidate choices in congestion check ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21979 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I2704899c85c35dfd4eba43468452483f40016ca2 Gerrit-Change-Number: 21979 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 07 Jan 2021 11:30:48 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 11:31:31 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 7 Jan 2021 11:31:31 +0000 Subject: Change in osmo-bsc[master]: handover_test: safeguard against unhandled chan req In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21981 ) Change subject: handover_test: safeguard against unhandled chan req ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/21981/1/tests/handover/handover_test.c File tests/handover/handover_test.c: https://gerrit.osmocom.org/c/osmo-bsc/+/21981/1/tests/handover/handover_test.c at 709 PS1, Line 709: fprintf(stderr, "Test script is erratic: a channel is requested" osmo_panic could be used here. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21981 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ib0d5c4647af23e6729cc19e98b1870cdde2fe994 Gerrit-Change-Number: 21981 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 07 Jan 2021 11:31:31 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 11:33:38 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 7 Jan 2021 11:33:38 +0000 Subject: Change in osmo-bsc[master]: handover_test: saner chan act handling In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21982 ) Change subject: handover_test: saner chan act handling ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21982 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: If06587058798d96afca86358030dc0c1c3c6df39 Gerrit-Change-Number: 21982 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 07 Jan 2021 11:33:38 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 11:34:31 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 7 Jan 2021 11:34:31 +0000 Subject: Change in osmo-bsc[master]: handover_test: saner ho request handling In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21983 ) Change subject: handover_test: saner ho request handling ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21983 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I0a664f24d7dd3d7b254b29675fdc49cd70a1a480 Gerrit-Change-Number: 21983 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 07 Jan 2021 11:34:31 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 11:35:32 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 7 Jan 2021 11:35:32 +0000 Subject: Change in osmo-bsc[master]: handover_test: vty echo In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21984 ) Change subject: handover_test: vty echo ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21984 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ifc307a7d0b7e3caa355f8cee88778762b529ad71 Gerrit-Change-Number: 21984 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 07 Jan 2021 11:35:32 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 11:36:28 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 7 Jan 2021 11:36:28 +0000 Subject: Change in osmo-bsc[master]: handover_test: show a bug: add test_congestion_no_oscillation.ho_vty In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21985 ) Change subject: handover_test: show a bug: add test_congestion_no_oscillation.ho_vty ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21985 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Idf88b4cf3d2f92f5560d73dae9e59af39d0494c0 Gerrit-Change-Number: 21985 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 07 Jan 2021 11:36:28 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 11:37:19 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 7 Jan 2021 11:37:19 +0000 Subject: Change in osmo-bsc[master]: hodec2: cosmetic: clarify ho_candidate.{current, target} In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21986 ) Change subject: hodec2: cosmetic: clarify ho_candidate.{current,target} ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21986 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I06898eb745a5be548df0b76fa760ce790cfab3ed Gerrit-Change-Number: 21986 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 07 Jan 2021 11:37:19 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 11:38:06 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 7 Jan 2021 11:38:06 +0000 Subject: Change in osmo-bsc[master]: hodec2: reduce check_requirements() args In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21987 ) Change subject: hodec2: reduce check_requirements() args ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21987 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I086aef9cc47ad8a5376f18179024c486f6f8b779 Gerrit-Change-Number: 21987 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 07 Jan 2021 11:38:06 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 11:39:39 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 7 Jan 2021 11:39:39 +0000 Subject: Change in osmo-bsc[master]: hodec2: add ho_candidate.{current, target}.free_tch In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21988 ) Change subject: hodec2: add ho_candidate.{current,target}.free_tch ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21988 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ie6ca5af5e8d0ebb8deaaaa637e2728008ecba517 Gerrit-Change-Number: 21988 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 07 Jan 2021 11:39:39 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 11:45:43 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 7 Jan 2021 11:45:43 +0000 Subject: Change in osmo-bsc[master]: hodec2: fix congestion oscillation bug In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21989 ) Change subject: hodec2: fix congestion oscillation bug ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21989 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Icb373dc6bfc9819446db5e96f71921781fe2026d Gerrit-Change-Number: 21989 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 07 Jan 2021 11:45:43 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 11:47:01 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 7 Jan 2021 11:47:01 +0000 Subject: Change in osmo-bts[master]: power_control: generalize the arguments of do_pf_ewma() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21907 ) Change subject: power_control: generalize the arguments of do_pf_ewma() ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21907 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I439c00b394da670e314f217b3246cc85ce8213c6 Gerrit-Change-Number: 21907 Gerrit-PatchSet: 5 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 07 Jan 2021 11:47:01 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 12:14:31 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 7 Jan 2021 12:14:31 +0000 Subject: Change in osmo-iuh[for-1.0]: debian: Actually build manuals; add osmo-hnbgw-doc package In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-iuh/+/22010 ) Change subject: debian: Actually build manuals; add osmo-hnbgw-doc package ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-iuh/+/22010 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: for-1.0 Gerrit-Change-Id: Id53956494144b46e78fc25a176a9b8917788d86e Gerrit-Change-Number: 22010 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 07 Jan 2021 12:14:31 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 12:28:19 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 7 Jan 2021 12:28:19 +0000 Subject: Change in osmo-bts[master]: vty: add a command to show GPRS related info In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/20484 to look at the new patch set (#3). Change subject: vty: add a command to show GPRS related info ...................................................................... vty: add a command to show GPRS related info Here is a sample output: OsmoBTS# show bts 0 gprs BTS 0, RAC 0, NSEI 101, BVCI 2 Cell NM state: Oper 'Enabled', Admin 'Unlocked', Avail 'OK' NSE NM state: Oper 'Enabled', Admin 'Unlocked', Avail 'OK' NSVC0 (NSVCI 101) NM state: Oper 'Enabled', Admin 'Unlocked', Avail 'OK' Address: r=127.0.0.1:23010<->l=0.0.0.0:55385 NSVC1 (NSVCI 0) NM state: Oper 'Disabled', Admin 'Locked', Avail 'Off line' This command is useful for debugging NS connection problems. Change-Id: I149eea0b1c109020406eb67c9082c335a77aab06 --- M src/common/vty.c 1 file changed, 59 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/84/20484/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/20484 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I149eea0b1c109020406eb67c9082c335a77aab06 Gerrit-Change-Number: 20484 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 12:35:48 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 7 Jan 2021 12:35:48 +0000 Subject: Change in osmo-ttcn3-hacks[master]: CTRL: Fix tr_CtrlMsgGet containing invalid value in val field References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22011 ) Change subject: CTRL: Fix tr_CtrlMsgGet containing invalid value in val field ...................................................................... CTRL: Fix tr_CtrlMsgGet containing invalid value in val field "val" field is not used in GET commands and is hence set to omit by TTCN3 decoder. Change-Id: If1a273a2be71040eaea2189a0aeaf737adf848e5 --- M library/Osmocom_CTRL_Types.ttcn 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/11/22011/1 diff --git a/library/Osmocom_CTRL_Types.ttcn b/library/Osmocom_CTRL_Types.ttcn index 52be956..36e6762 100644 --- a/library/Osmocom_CTRL_Types.ttcn +++ b/library/Osmocom_CTRL_Types.ttcn @@ -124,7 +124,7 @@ verb := "GET", id := id, variable := variable, - val := ? + val := omit } } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22011 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If1a273a2be71040eaea2189a0aeaf737adf848e5 Gerrit-Change-Number: 22011 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 12:35:48 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 7 Jan 2021 12:35:48 +0000 Subject: Change in osmo-ttcn3-hacks[master]: CTRL: Introduce support to run osmocom CTRL server References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22012 ) Change subject: CTRL: Introduce support to run osmocom CTRL server ...................................................................... CTRL: Introduce support to run osmocom CTRL server Change-Id: I37db9962f51baf2c63bd58ec47ec89f773d7a255 --- M bsc-nat/BSCNAT_Tests.ttcn M bsc/BSC_Tests.ttcn M bts/BTS_Tests.ttcn M hlr/HLR_Tests.ttcn M library/Osmocom_CTRL_Adapter.ttcn M library/Osmocom_CTRL_Functions.ttcn M msc/BSC_ConnectionHandler.ttcn M msc/MSC_Tests.ttcn M sip/SIP_Tests.ttcn 9 files changed, 59 insertions(+), 21 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/12/22012/1 diff --git a/bsc-nat/BSCNAT_Tests.ttcn b/bsc-nat/BSCNAT_Tests.ttcn index 41d58d7..1b24855 100644 --- a/bsc-nat/BSCNAT_Tests.ttcn +++ b/bsc-nat/BSCNAT_Tests.ttcn @@ -151,7 +151,7 @@ f_init_vty("VirtBSCNAT"); f_vty_allow_osmux(use_osmux); - f_ipa_ctrl_start(mp_nat_ip, mp_nat_ctrl_port); + f_ipa_ctrl_start_client(mp_nat_ip, mp_nat_ctrl_port); for (i := 0; i < NUM_MSC; i := i+1) { f_init_MscState(msc[i], mp_msc_pc +i, mp_bsc_pc, mp_msc_ssn, mp_bsc_ssn); diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index a1fa4dd..2c02e36 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -1103,7 +1103,7 @@ /* start the test with exactly all enabled MSCs allowed to attach */ f_vty_msc_allow_attach(BSCVTY, allow_attach); - f_ipa_ctrl_start(mp_bsc_ip, mp_bsc_ctrl_port); + f_ipa_ctrl_start_client(mp_bsc_ip, mp_bsc_ctrl_port); f_init_mgcp("VirtMSC"); @@ -3080,7 +3080,7 @@ bts[0].rsl.ccm_pars.name := "Osmocom TTCN-3 BTS Simulator"; bts[0].rsl.ccm_pars.unit_id := "99/0/0"; /* value which is unknown at BTS */ - f_ipa_ctrl_start(mp_bsc_ip, mp_bsc_ctrl_port); + f_ipa_ctrl_start_client(mp_bsc_ip, mp_bsc_ctrl_port); f_init_mgcp("VirtMSC"); diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn index 16e3d71..c843032 100644 --- a/bts/BTS_Tests.ttcn +++ b/bts/BTS_Tests.ttcn @@ -547,7 +547,7 @@ f_init_rsl(id); f_sleep(0.5); /* workaround for OS#3000 */ f_init_vty(id); - f_ipa_ctrl_start(mp_ctrl_ip, mp_ctrl_port); + f_ipa_ctrl_start_client(mp_ctrl_ip, mp_ctrl_port); /* Send SI3 to the BTS, it is needed for various computations */ f_rsl_bcch_fill(RSL_SYSTEM_INFO_3, ts_SI3_default); @@ -5376,7 +5376,7 @@ /* re-connect CTRL port from BTS to BSC */ f_ipa_ctrl_stop(); - f_ipa_ctrl_start(mp_bsc_ctrl_ip, mp_bsc_ctrl_port); + f_ipa_ctrl_start_client(mp_bsc_ctrl_ip, mp_bsc_ctrl_port); /* Send that OML Alert */ PCU.send(t_SD_PCUIF(g_pcu_conn_id, ts_PCUIF_TXT_IND(0, PCU_OML_ALERT, testcasename()))); diff --git a/hlr/HLR_Tests.ttcn b/hlr/HLR_Tests.ttcn index 36e28b8..ea450b3 100644 --- a/hlr/HLR_Tests.ttcn +++ b/hlr/HLR_Tests.ttcn @@ -245,7 +245,7 @@ f_init_gsup_server("HLR_Test"); } - f_ipa_ctrl_start(mp_hlr_ip, mp_hlr_ctrl_port); + f_ipa_ctrl_start_client(mp_hlr_ip, mp_hlr_ctrl_port); } /*! Start HLR_ConnHdlr from testCT in a separate thread. diff --git a/library/Osmocom_CTRL_Adapter.ttcn b/library/Osmocom_CTRL_Adapter.ttcn index 0be3ebb..6e0d1c6 100644 --- a/library/Osmocom_CTRL_Adapter.ttcn +++ b/library/Osmocom_CTRL_Adapter.ttcn @@ -26,12 +26,24 @@ port IPA_CTRL_PT IPA_CTRL; } +/* wait for IPA CTRL link to connect and send UP */ +function f_ipa_ctrl_wait_link_up() +runs on CTRL_Adapter_CT { + timer T := 10.0; + T.start; + alt { + [] IPA_CTRL.receive(tr_ASP_IPA_EV(ASP_IPA_EVENT_UP)) { } + [] T.timeout { + setverdict(fail, "Timeout CTRL waiting for ASP_IPA_EVENT_UP"); + mtc.stop; + } + } +} -/*! Start the CTRL connection to the specified BSC IP+Port */ -function f_ipa_ctrl_start(charstring bsc_host, PortNumber bsc_port) +/*! Start the CTRL client connection to the specified CTRL IP+Port server*/ +function f_ipa_ctrl_start_client(charstring bsc_host, PortNumber bsc_port) runs on CTRL_Adapter_CT { var charstring id := "IPA-CTRL" - timer T := 10.0; vc_CTRL_IPA := IPA_Emulation_CT.create(id & "-IPA"); @@ -41,15 +53,21 @@ vc_CTRL_IPA.start(IPA_Emulation.main_client(bsc_host, bsc_port, "", 0, c_IPA_default_ccm_pars, false)); - /* wait for IPA CTRL link to connect and send UP */ - T.start; - alt { - [] IPA_CTRL.receive(tr_ASP_IPA_EV(ASP_IPA_EVENT_UP)) { } - [] T.timeout { - setverdict(fail, "Timeout CTRL waiting for ASP_IPA_EVENT_UP"); - mtc.stop; - } - } + f_ipa_ctrl_wait_link_up(); +} + +/*! Start the CTRL server on the specified CTRL IP+Port */ +function f_ipa_ctrl_start_server(charstring listen_host, PortNumber listen_port) +runs on CTRL_Adapter_CT { + var charstring id := "IPA-CTRL" + timer T := 10.0; + + vc_CTRL_IPA := IPA_Emulation_CT.create(id & "-IPA"); + + map(vc_CTRL_IPA:IPA_PORT, system:IPA_CODEC_PT); + connect(vc_CTRL_IPA:IPA_CTRL_PORT, self:IPA_CTRL); + + vc_CTRL_IPA.start(IPA_Emulation.main_server(listen_host, listen_port, false)); } function f_ipa_ctrl_stop() runs on CTRL_Adapter_CT { diff --git a/library/Osmocom_CTRL_Functions.ttcn b/library/Osmocom_CTRL_Functions.ttcn index d26dc89..294fe33 100644 --- a/library/Osmocom_CTRL_Functions.ttcn +++ b/library/Osmocom_CTRL_Functions.ttcn @@ -117,6 +117,26 @@ return rx.cmd.val; } + /* Expect a matching SET, optionally answer */ + function f_ctrl_exp_get(IPA_CTRL_PT pt, template CtrlVariable variable, + template (omit) CtrlValue rsp := omit, + float timeout_val := 2.0) { + timer T := timeout_val; + var CtrlMessage rx; + T.start; + alt { + [] pt.receive(tr_CtrlMsgGet(?, variable)) -> value rx { + if (ispresent(rsp)) { + pt.send(ts_CtrlMsgGetRepl(rx.cmd.id, valueof(variable), valueof(rsp))); + } + } + [] T.timeout { + setverdict(fail, "Timeout waiting for GET ", variable); + mtc.stop; + } + } + } + /* Expect a matching GET result */ function f_ctrl_get_exp(IPA_CTRL_PT pt, CtrlVariable variable, template CtrlValue exp) { var charstring ctrl_resp; diff --git a/msc/BSC_ConnectionHandler.ttcn b/msc/BSC_ConnectionHandler.ttcn index 6ea4f86..3996a87 100644 --- a/msc/BSC_ConnectionHandler.ttcn +++ b/msc/BSC_ConnectionHandler.ttcn @@ -182,7 +182,7 @@ } if (g_pars.ipa_ctrl_enable == true) { - f_ipa_ctrl_start(g_pars.ipa_ctrl_ip, g_pars.ipa_ctrl_port); + f_ipa_ctrl_start_client(g_pars.ipa_ctrl_ip, g_pars.ipa_ctrl_port); } map(self:MSCVTY, system:MSCVTY); diff --git a/msc/MSC_Tests.ttcn b/msc/MSC_Tests.ttcn index 5129c5b..e6681bb 100644 --- a/msc/MSC_Tests.ttcn +++ b/msc/MSC_Tests.ttcn @@ -318,7 +318,7 @@ } } - f_ipa_ctrl_start(mp_msc_ip, mp_msc_ctrl_port); + f_ipa_ctrl_start_client(mp_msc_ip, mp_msc_ctrl_port); f_init_mncc("MSC_Test"); f_init_mgcp("MSC_Test"); diff --git a/sip/SIP_Tests.ttcn b/sip/SIP_Tests.ttcn index 053395e..37c158e 100644 --- a/sip/SIP_Tests.ttcn +++ b/sip/SIP_Tests.ttcn @@ -134,7 +134,7 @@ } function f_init() runs on test_CT { - //f_ipa_ctrl_start(mp_osmosip_host, mp_osmosip_port_ctrl); + //f_ipa_ctrl_start_client(mp_osmosip_host, mp_osmosip_port_ctrl); f_init_mncc("SIP_Test"); log("end of f_init_mncc"); f_init_sip(vc_SIP, "SIP_Test"); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22012 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I37db9962f51baf2c63bd58ec47ec89f773d7a255 Gerrit-Change-Number: 22012 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 12:52:18 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 7 Jan 2021 12:52:18 +0000 Subject: Change in osmo-iuh[for-1.0]: configure.ac: Ensure netinet/sctp.h is present References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-iuh/+/22014 ) Change subject: configure.ac: Ensure netinet/sctp.h is present ...................................................................... configure.ac: Ensure netinet/sctp.h is present we unconditionally depend on this header file, yet nothing in configure.ac ensures its presence. Building on a clean Debian 10 with all existing dependencies installed passes configure but fails at compilation time. Change-Id: I0a4407ef6ee512ad5ea8775d90acfe1c4fa67cd0 --- M configure.ac 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-iuh refs/changes/14/22014/1 diff --git a/configure.ac b/configure.ac index 692db57..c186855 100644 --- a/configure.ac +++ b/configure.ac @@ -31,6 +31,8 @@ [AS_CASE(["${host_os}"], [*linux*],[archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'])]) +AC_CHECK_HEADERS(netinet/sctp.h,,AC_MSG_ERROR(netinet/sctp.h not found)) + dnl check for pkg-config (explained in detail in libosmocore/configure.ac) AC_PATH_PROG(PKG_CONFIG_INSTALLED, pkg-config, no) if test "x$PKG_CONFIG_INSTALLED" = "xno"; then -- To view, visit https://gerrit.osmocom.org/c/osmo-iuh/+/22014 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: for-1.0 Gerrit-Change-Id: I0a4407ef6ee512ad5ea8775d90acfe1c4fa67cd0 Gerrit-Change-Number: 22014 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 12:53:42 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 7 Jan 2021 12:53:42 +0000 Subject: Change in osmo-iuh[for-1.0]: debian: Actually build manuals; add osmo-hnbgw-doc package In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-iuh/+/22010 ) Change subject: debian: Actually build manuals; add osmo-hnbgw-doc package ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-iuh/+/22010 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: for-1.0 Gerrit-Change-Id: Id53956494144b46e78fc25a176a9b8917788d86e Gerrit-Change-Number: 22010 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 07 Jan 2021 12:53:42 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 12:54:27 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 7 Jan 2021 12:54:27 +0000 Subject: =?UTF-8?Q?Change_in_osmo-iuh=5Bfor-1=2E0=5D=3A_Bump_version=3A_0=2E6=2E0=2E24-da79_=E2=86=92_0=2E6=2E1?= References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-iuh/+/22015 ) Change subject: Bump version: 0.6.0.24-da79 ? 0.6.1 ...................................................................... Bump version: 0.6.0.24-da79 ? 0.6.1 Change-Id: I2ad347a9b8a1d7e9447977d439ff89556ede7582 --- M debian/changelog 1 file changed, 44 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-iuh refs/changes/15/22015/1 diff --git a/debian/changelog b/debian/changelog index f59c49e..69c7870 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,47 @@ +osmo-iuh (0.6.1) unstable; urgency=medium + + [ Martin Hauke ] + * tests: Missing return statement + + [ Pau Espin Pedrol ] + * tests/hnb-test-ranap.c: Fix wrong printf format + * tests/test-ranap.c: Fix wrong printf format + * Fix compiler warning on signedness of char ptr using OCTET_STRING_fromBuf() + * hnbgw_vty.c: Drop unusued variables + * tests: Fix trailing whitespace + * Fix OneDefinitionRule Asan violation in tests and osmo-hnbgw + * Change default SCTP conn NULL->127.0.0.1 to localhost->localhost + * hnbgw: Mark SCTP conn as NODELAY + + [ Neels Hofmeyr ] + * manual: add "Configuring Primary Links" and "Multiple instances" + * manual: link to new common cs7-config.adoc + + [ Vadim Yanitskiy ] + * tests/test-helpers: fix some -Wpointer-sign warnings reported by GCC + * tests/test-helpers: fix endianness: do not print uint32_t as raw bytes + * tests/test-ranap: cosmetic: remove unused variable 'rc' + * debian/control: change maintainer to the Osmocom team / mailing list + + [ Eric ] + * configure.ac: fix libtool issue with clang and sanitizer + + [ Philipp Maier ] + * hnbgw: do not use LOGL_DEBUG as default loglevel + + [ Harald Welte ] + * Fix compilation with gcc-10 + * Provide more context when logging "Error in ANY_fromType_aper" + * debian: Actually build manuals; add osmo-hnbgw-doc package + * configure.ac: Ensure netinet/sctp.h is present + + [ Oliver Smith ] + * contrib: import RPM spec + * contrib: integrate RPM spec + * Makefile.am: EXTRA_DIST: debian, contrib/*.spec.in + + -- Harald Welte Thu, 07 Jan 2021 13:53:29 +0100 + osmo-iuh (0.6.0) unstable; urgency=medium [ Vadim Yanitskiy ] -- To view, visit https://gerrit.osmocom.org/c/osmo-iuh/+/22015 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: for-1.0 Gerrit-Change-Id: I2ad347a9b8a1d7e9447977d439ff89556ede7582 Gerrit-Change-Number: 22015 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 12:54:27 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 7 Jan 2021 12:54:27 +0000 Subject: =?UTF-8?Q?Change_in_osmo-iuh=5Bfor-1=2E0=5D=3A_Bump_version=3A_0=2E6=2E0=2E24-da79_=E2=86=92_1=2E0=2E0?= References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-iuh/+/22016 ) Change subject: Bump version: 0.6.0.24-da79 ? 1.0.0 ...................................................................... Bump version: 0.6.0.24-da79 ? 1.0.0 Change-Id: I17cb89a085689e15840f4c5812eb5ff75f961d33 --- M debian/changelog 1 file changed, 45 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-iuh refs/changes/16/22016/1 diff --git a/debian/changelog b/debian/changelog index 69c7870..10b64b4 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,48 @@ +osmo-iuh (1.0.0) unstable; urgency=medium + + [ Martin Hauke ] + * tests: Missing return statement + + [ Pau Espin Pedrol ] + * tests/hnb-test-ranap.c: Fix wrong printf format + * tests/test-ranap.c: Fix wrong printf format + * Fix compiler warning on signedness of char ptr using OCTET_STRING_fromBuf() + * hnbgw_vty.c: Drop unusued variables + * tests: Fix trailing whitespace + * Fix OneDefinitionRule Asan violation in tests and osmo-hnbgw + * Change default SCTP conn NULL->127.0.0.1 to localhost->localhost + * hnbgw: Mark SCTP conn as NODELAY + + [ Neels Hofmeyr ] + * manual: add "Configuring Primary Links" and "Multiple instances" + * manual: link to new common cs7-config.adoc + + [ Vadim Yanitskiy ] + * tests/test-helpers: fix some -Wpointer-sign warnings reported by GCC + * tests/test-helpers: fix endianness: do not print uint32_t as raw bytes + * tests/test-ranap: cosmetic: remove unused variable 'rc' + * debian/control: change maintainer to the Osmocom team / mailing list + + [ Eric ] + * configure.ac: fix libtool issue with clang and sanitizer + + [ Philipp Maier ] + * hnbgw: do not use LOGL_DEBUG as default loglevel + + [ Harald Welte ] + * Fix compilation with gcc-10 + * Provide more context when logging "Error in ANY_fromType_aper" + * debian: Actually build manuals; add osmo-hnbgw-doc package + * configure.ac: Ensure netinet/sctp.h is present + * Bump version: 0.6.0.24-da79 ? 0.6.1 + + [ Oliver Smith ] + * contrib: import RPM spec + * contrib: integrate RPM spec + * Makefile.am: EXTRA_DIST: debian, contrib/*.spec.in + + -- Harald Welte Thu, 07 Jan 2021 13:54:13 +0100 + osmo-iuh (0.6.1) unstable; urgency=medium [ Martin Hauke ] -- To view, visit https://gerrit.osmocom.org/c/osmo-iuh/+/22016 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: for-1.0 Gerrit-Change-Id: I17cb89a085689e15840f4c5812eb5ff75f961d33 Gerrit-Change-Number: 22016 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 12:54:52 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 7 Jan 2021 12:54:52 +0000 Subject: =?UTF-8?Q?Change_in_osmo-iuh=5Bfor-1=2E0=5D=3A_Bump_version=3A_0=2E6=2E0=2E24-da79_=E2=86=92_0=2E6=2E1?= In-Reply-To: References: Message-ID: laforge has abandoned this change. ( https://gerrit.osmocom.org/c/osmo-iuh/+/22015 ) Change subject: Bump version: 0.6.0.24-da79 ? 0.6.1 ...................................................................... Abandoned -- To view, visit https://gerrit.osmocom.org/c/osmo-iuh/+/22015 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: for-1.0 Gerrit-Change-Id: I2ad347a9b8a1d7e9447977d439ff89556ede7582 Gerrit-Change-Number: 22015 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-CC: Jenkins Builder Gerrit-MessageType: abandon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 12:55:02 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 7 Jan 2021 12:55:02 +0000 Subject: Change in osmo-iuh[for-1.0]: configure.ac: Ensure netinet/sctp.h is present In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-iuh/+/22014 ) Change subject: configure.ac: Ensure netinet/sctp.h is present ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-iuh/+/22014 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: for-1.0 Gerrit-Change-Id: I0a4407ef6ee512ad5ea8775d90acfe1c4fa67cd0 Gerrit-Change-Number: 22014 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Thu, 07 Jan 2021 12:55:02 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 12:55:26 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 7 Jan 2021 12:55:26 +0000 Subject: =?UTF-8?Q?Change_in_osmo-iuh=5Bfor-1=2E0=5D=3A_Bump_version=3A_0=2E6=2E0=2E24-da79_=E2=86=92_1=2E0=2E0?= In-Reply-To: References: Message-ID: laforge has abandoned this change. ( https://gerrit.osmocom.org/c/osmo-iuh/+/22016 ) Change subject: Bump version: 0.6.0.24-da79 ? 1.0.0 ...................................................................... Abandoned -- To view, visit https://gerrit.osmocom.org/c/osmo-iuh/+/22016 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: for-1.0 Gerrit-Change-Id: I17cb89a085689e15840f4c5812eb5ff75f961d33 Gerrit-Change-Number: 22016 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-CC: Jenkins Builder Gerrit-MessageType: abandon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 12:55:32 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 7 Jan 2021 12:55:32 +0000 Subject: =?UTF-8?Q?Change_in_osmo-iuh=5Bfor-1=2E0=5D=3A_Bump_version=3A_0=2E6=2E0=2E24-da79_=E2=86=92_1=2E0=2E0?= References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-iuh/+/22017 ) Change subject: Bump version: 0.6.0.24-da79 ? 1.0.0 ...................................................................... Bump version: 0.6.0.24-da79 ? 1.0.0 Change-Id: I4c26bf6c129d15833c4fc5f395465efe88826c44 --- M debian/changelog 1 file changed, 44 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-iuh refs/changes/17/22017/1 diff --git a/debian/changelog b/debian/changelog index f59c49e..aae3463 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,47 @@ +osmo-iuh (1.0.0) unstable; urgency=medium + + [ Martin Hauke ] + * tests: Missing return statement + + [ Pau Espin Pedrol ] + * tests/hnb-test-ranap.c: Fix wrong printf format + * tests/test-ranap.c: Fix wrong printf format + * Fix compiler warning on signedness of char ptr using OCTET_STRING_fromBuf() + * hnbgw_vty.c: Drop unusued variables + * tests: Fix trailing whitespace + * Fix OneDefinitionRule Asan violation in tests and osmo-hnbgw + * Change default SCTP conn NULL->127.0.0.1 to localhost->localhost + * hnbgw: Mark SCTP conn as NODELAY + + [ Neels Hofmeyr ] + * manual: add "Configuring Primary Links" and "Multiple instances" + * manual: link to new common cs7-config.adoc + + [ Vadim Yanitskiy ] + * tests/test-helpers: fix some -Wpointer-sign warnings reported by GCC + * tests/test-helpers: fix endianness: do not print uint32_t as raw bytes + * tests/test-ranap: cosmetic: remove unused variable 'rc' + * debian/control: change maintainer to the Osmocom team / mailing list + + [ Eric ] + * configure.ac: fix libtool issue with clang and sanitizer + + [ Philipp Maier ] + * hnbgw: do not use LOGL_DEBUG as default loglevel + + [ Harald Welte ] + * Fix compilation with gcc-10 + * Provide more context when logging "Error in ANY_fromType_aper" + * debian: Actually build manuals; add osmo-hnbgw-doc package + * configure.ac: Ensure netinet/sctp.h is present + + [ Oliver Smith ] + * contrib: import RPM spec + * contrib: integrate RPM spec + * Makefile.am: EXTRA_DIST: debian, contrib/*.spec.in + + -- Harald Welte Thu, 07 Jan 2021 13:55:19 +0100 + osmo-iuh (0.6.0) unstable; urgency=medium [ Vadim Yanitskiy ] -- To view, visit https://gerrit.osmocom.org/c/osmo-iuh/+/22017 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: for-1.0 Gerrit-Change-Id: I4c26bf6c129d15833c4fc5f395465efe88826c44 Gerrit-Change-Number: 22017 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 12:55:46 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 7 Jan 2021 12:55:46 +0000 Subject: Change in osmo-iuh[for-1.0]: configure.ac: Ensure netinet/sctp.h is present In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-iuh/+/22014 ) Change subject: configure.ac: Ensure netinet/sctp.h is present ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-iuh/+/22014 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: for-1.0 Gerrit-Change-Id: I0a4407ef6ee512ad5ea8775d90acfe1c4fa67cd0 Gerrit-Change-Number: 22014 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Thu, 07 Jan 2021 12:55:46 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 12:56:37 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 7 Jan 2021 12:56:37 +0000 Subject: Change in osmo-iuh[master]: debian: Actually build manuals; add osmo-hnbgw-doc package References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-iuh/+/22018 ) Change subject: debian: Actually build manuals; add osmo-hnbgw-doc package ...................................................................... debian: Actually build manuals; add osmo-hnbgw-doc package for some strange reason we didn't yet build the manual in the debian package build. Change-Id: Id53956494144b46e78fc25a176a9b8917788d86e --- M TODO-RELEASE M debian/control M debian/rules 3 files changed, 16 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-iuh refs/changes/18/22018/1 diff --git a/TODO-RELEASE b/TODO-RELEASE index dde4b72..d0852fc 100644 --- a/TODO-RELEASE +++ b/TODO-RELEASE @@ -7,4 +7,3 @@ # If any interfaces have been added since the last public release: c:r:a + 1. # If any interfaces have been removed or changed since the last public release: c:r:0. #library what description / commit summary line -manual needs common chapter cs7-config.adoc from osmo-gsm-manuals > 0.3.0 diff --git a/debian/control b/debian/control index 416b9d7..d1805de 100644 --- a/debian/control +++ b/debian/control @@ -14,6 +14,7 @@ libosmocore-dev (>= 0.12.0), libosmo-netif-dev (>= 0.3.0), libosmo-sigtran-dev (>= 0.10.0), + osmo-gsm-manuals-dev (>= 1.0.0), python3 Standards-Version: 3.9.8 Vcs-Git: git://git.osmocom.org/osmo-iuh.git @@ -36,6 +37,14 @@ Depends: osmo-hnbgw (= ${binary:Version}), ${misc:Depends} Description: osmocom Home Node B Gateway +Package: osmo-hnbgw-doc +Section: doc +Architecture: all +Depends: ${misc:Depends} +Description: ${misc:Package} PDF documentation + Various manuals: user manual, VTY reference manual and/or + protocol/interface manuals. + Package: libosmo-ranap3 Section: libs Architecture: any diff --git a/debian/rules b/debian/rules index c3bdf50..e1f6124 100755 --- a/debian/rules +++ b/debian/rules @@ -8,6 +8,10 @@ %: dh $@ --with autoreconf +CONFIGURE_FLAGS += --with-systemdsystemunitdir=/lib/systemd/system --enable-manuals +override_dh_auto_configure: + dh_auto_configure -- $(CONFIGURE_FLAGS) + # See https://www.debian.org/doc/manuals/developers-reference/best-pkging-practices.html#bpp-dbg override_dh_strip: dh_strip -plibosmo-ranap3 --dbg-package=libosmo-ranap-dbg @@ -18,5 +22,6 @@ override_dh_auto_test: dh_auto_test || (find . -name testsuite.log -exec cat {} \; ; false) -override_dh_auto_configure: - dh_auto_configure -- --with-systemdsystemunitdir=/lib/systemd/system +# Don't create .pdf.gz files (barely saves space and they can't be opened directly by most pdf readers) +override_dh_compress: + dh_compress -X.pdf -- To view, visit https://gerrit.osmocom.org/c/osmo-iuh/+/22018 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: master Gerrit-Change-Id: Id53956494144b46e78fc25a176a9b8917788d86e Gerrit-Change-Number: 22018 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 12:56:37 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 7 Jan 2021 12:56:37 +0000 Subject: Change in osmo-iuh[master]: configure.ac: Ensure netinet/sctp.h is present References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-iuh/+/22019 ) Change subject: configure.ac: Ensure netinet/sctp.h is present ...................................................................... configure.ac: Ensure netinet/sctp.h is present we unconditionally depend on this header file, yet nothing in configure.ac ensures its presence. Building on a clean Debian 10 with all existing dependencies installed passes configure but fails at compilation time. Change-Id: I0a4407ef6ee512ad5ea8775d90acfe1c4fa67cd0 --- M configure.ac 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-iuh refs/changes/19/22019/1 diff --git a/configure.ac b/configure.ac index 692db57..c186855 100644 --- a/configure.ac +++ b/configure.ac @@ -31,6 +31,8 @@ [AS_CASE(["${host_os}"], [*linux*],[archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'])]) +AC_CHECK_HEADERS(netinet/sctp.h,,AC_MSG_ERROR(netinet/sctp.h not found)) + dnl check for pkg-config (explained in detail in libosmocore/configure.ac) AC_PATH_PROG(PKG_CONFIG_INSTALLED, pkg-config, no) if test "x$PKG_CONFIG_INSTALLED" = "xno"; then -- To view, visit https://gerrit.osmocom.org/c/osmo-iuh/+/22019 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: master Gerrit-Change-Id: I0a4407ef6ee512ad5ea8775d90acfe1c4fa67cd0 Gerrit-Change-Number: 22019 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 12:57:58 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 7 Jan 2021 12:57:58 +0000 Subject: =?UTF-8?Q?Change_in_osmo-iuh=5Bfor-1=2E0=5D=3A_Bump_version=3A_0=2E6=2E0=2E24-da79_=E2=86=92_1=2E0=2E0?= In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-iuh/+/22017 ) Change subject: Bump version: 0.6.0.24-da79 ? 1.0.0 ...................................................................... Patch Set 1: I've teste that this acutally builds against a current "latest" feed in a clean debian 10 container. -- To view, visit https://gerrit.osmocom.org/c/osmo-iuh/+/22017 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: for-1.0 Gerrit-Change-Id: I4c26bf6c129d15833c4fc5f395465efe88826c44 Gerrit-Change-Number: 22017 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Thu, 07 Jan 2021 12:57:58 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 12:58:26 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 7 Jan 2021 12:58:26 +0000 Subject: Change in osmo-ttcn3-hacks[master]: CTRL: Fix tr_CtrlMsgGet containing invalid value in val field In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22011 ) Change subject: CTRL: Fix tr_CtrlMsgGet containing invalid value in val field ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22011 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If1a273a2be71040eaea2189a0aeaf737adf848e5 Gerrit-Change-Number: 22011 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 07 Jan 2021 12:58:26 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 12:59:42 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 7 Jan 2021 12:59:42 +0000 Subject: Change in osmo-ttcn3-hacks[master]: CTRL: Introduce support to run osmocom CTRL server In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22012 ) Change subject: CTRL: Introduce support to run osmocom CTRL server ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22012/1/library/Osmocom_CTRL_Adapter.ttcn File library/Osmocom_CTRL_Adapter.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22012/1/library/Osmocom_CTRL_Adapter.ttcn at 62 PS1, Line 62: v it might make sense to differentiate based on server/client in the ID. Othertwise you start both client and server "adapter" and their components have identical names. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22012 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I37db9962f51baf2c63bd58ec47ec89f773d7a255 Gerrit-Change-Number: 22012 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 07 Jan 2021 12:59:42 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 12:59:53 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 7 Jan 2021 12:59:53 +0000 Subject: Change in osmo-iuh[master]: debian: Actually build manuals; add osmo-hnbgw-doc package In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-iuh/+/22018 ) Change subject: debian: Actually build manuals; add osmo-hnbgw-doc package ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-iuh/+/22018 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: master Gerrit-Change-Id: Id53956494144b46e78fc25a176a9b8917788d86e Gerrit-Change-Number: 22018 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Thu, 07 Jan 2021 12:59:53 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 13:00:20 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 7 Jan 2021 13:00:20 +0000 Subject: Change in osmo-iuh[master]: configure.ac: Ensure netinet/sctp.h is present In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-iuh/+/22019 ) Change subject: configure.ac: Ensure netinet/sctp.h is present ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-iuh/+/22019 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: master Gerrit-Change-Id: I0a4407ef6ee512ad5ea8775d90acfe1c4fa67cd0 Gerrit-Change-Number: 22019 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Thu, 07 Jan 2021 13:00:20 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 13:00:50 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 7 Jan 2021 13:00:50 +0000 Subject: =?UTF-8?Q?Change_in_osmo-iuh=5Bfor-1=2E0=5D=3A_Bump_version=3A_0=2E6=2E0=2E24-da79_=E2=86=92_1=2E0=2E0?= In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-iuh/+/22017 ) Change subject: Bump version: 0.6.0.24-da79 ? 1.0.0 ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-iuh/+/22017 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: for-1.0 Gerrit-Change-Id: I4c26bf6c129d15833c4fc5f395465efe88826c44 Gerrit-Change-Number: 22017 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Thu, 07 Jan 2021 13:00:50 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 13:02:12 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 7 Jan 2021 13:02:12 +0000 Subject: Change in osmo-bts[master]: vty: add a command to show GPRS related info In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/20484 to look at the new patch set (#4). Change subject: vty: add a command to show GPRS related info ...................................................................... vty: add a command to show GPRS related info Here is a sample output: OsmoBTS# show bts 0 gprs BTS 0, RAC 0, NSEI 101, BVCI 2 Cell NM state: Oper 'Enabled', Admin 'Unlocked', Avail 'OK' NSE NM state: Oper 'Enabled', Admin 'Unlocked', Avail 'OK' NSVC0 (NSVCI 101) NM state: Oper 'Enabled', Admin 'Unlocked', Avail 'OK' Address: r=127.0.0.1:23010<->l=0.0.0.0:55385 NSVC1 (NSVCI 0) NM state: Oper 'Disabled', Admin 'Locked', Avail 'Off line' This command is useful for debugging NS connection problems. Change-Id: I149eea0b1c109020406eb67c9082c335a77aab06 --- M src/common/vty.c 1 file changed, 70 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/84/20484/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/20484 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I149eea0b1c109020406eb67c9082c335a77aab06 Gerrit-Change-Number: 20484 Gerrit-PatchSet: 4 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 13:03:28 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 7 Jan 2021 13:03:28 +0000 Subject: =?UTF-8?Q?Change_in_osmo-iuh=5Bfor-1=2E0=5D=3A_Bump_version=3A_0=2E6=2E0=2E24-da79_=E2=86=92_1=2E0=2E0?= In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-iuh/+/22017 ) Change subject: Bump version: 0.6.0.24-da79 ? 1.0.0 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-iuh/+/22017 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: for-1.0 Gerrit-Change-Id: I4c26bf6c129d15833c4fc5f395465efe88826c44 Gerrit-Change-Number: 22017 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Thu, 07 Jan 2021 13:03:28 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 13:03:52 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 7 Jan 2021 13:03:52 +0000 Subject: Change in osmo-iuh[master]: debian: Actually build manuals; add osmo-hnbgw-doc package In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-iuh/+/22018 ) Change subject: debian: Actually build manuals; add osmo-hnbgw-doc package ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-iuh/+/22018 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: master Gerrit-Change-Id: Id53956494144b46e78fc25a176a9b8917788d86e Gerrit-Change-Number: 22018 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Thu, 07 Jan 2021 13:03:52 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 13:03:56 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 7 Jan 2021 13:03:56 +0000 Subject: Change in osmo-iuh[master]: configure.ac: Ensure netinet/sctp.h is present In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-iuh/+/22019 ) Change subject: configure.ac: Ensure netinet/sctp.h is present ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-iuh/+/22019 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: master Gerrit-Change-Id: I0a4407ef6ee512ad5ea8775d90acfe1c4fa67cd0 Gerrit-Change-Number: 22019 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 07 Jan 2021 13:03:56 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 13:06:28 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 7 Jan 2021 13:06:28 +0000 Subject: Change in osmo-iuh[for-1.0]: debian: Actually build manuals; add osmo-hnbgw-doc package In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-iuh/+/22010 ) Change subject: debian: Actually build manuals; add osmo-hnbgw-doc package ...................................................................... debian: Actually build manuals; add osmo-hnbgw-doc package for some strange reason we didn't yet build the manual in the debian package build. Change-Id: Id53956494144b46e78fc25a176a9b8917788d86e --- M TODO-RELEASE M debian/control M debian/rules 3 files changed, 16 insertions(+), 3 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/TODO-RELEASE b/TODO-RELEASE index dde4b72..d0852fc 100644 --- a/TODO-RELEASE +++ b/TODO-RELEASE @@ -7,4 +7,3 @@ # If any interfaces have been added since the last public release: c:r:a + 1. # If any interfaces have been removed or changed since the last public release: c:r:0. #library what description / commit summary line -manual needs common chapter cs7-config.adoc from osmo-gsm-manuals > 0.3.0 diff --git a/debian/control b/debian/control index 416b9d7..d1805de 100644 --- a/debian/control +++ b/debian/control @@ -14,6 +14,7 @@ libosmocore-dev (>= 0.12.0), libosmo-netif-dev (>= 0.3.0), libosmo-sigtran-dev (>= 0.10.0), + osmo-gsm-manuals-dev (>= 1.0.0), python3 Standards-Version: 3.9.8 Vcs-Git: git://git.osmocom.org/osmo-iuh.git @@ -36,6 +37,14 @@ Depends: osmo-hnbgw (= ${binary:Version}), ${misc:Depends} Description: osmocom Home Node B Gateway +Package: osmo-hnbgw-doc +Section: doc +Architecture: all +Depends: ${misc:Depends} +Description: ${misc:Package} PDF documentation + Various manuals: user manual, VTY reference manual and/or + protocol/interface manuals. + Package: libosmo-ranap3 Section: libs Architecture: any diff --git a/debian/rules b/debian/rules index c3bdf50..e1f6124 100755 --- a/debian/rules +++ b/debian/rules @@ -8,6 +8,10 @@ %: dh $@ --with autoreconf +CONFIGURE_FLAGS += --with-systemdsystemunitdir=/lib/systemd/system --enable-manuals +override_dh_auto_configure: + dh_auto_configure -- $(CONFIGURE_FLAGS) + # See https://www.debian.org/doc/manuals/developers-reference/best-pkging-practices.html#bpp-dbg override_dh_strip: dh_strip -plibosmo-ranap3 --dbg-package=libosmo-ranap-dbg @@ -18,5 +22,6 @@ override_dh_auto_test: dh_auto_test || (find . -name testsuite.log -exec cat {} \; ; false) -override_dh_auto_configure: - dh_auto_configure -- --with-systemdsystemunitdir=/lib/systemd/system +# Don't create .pdf.gz files (barely saves space and they can't be opened directly by most pdf readers) +override_dh_compress: + dh_compress -X.pdf -- To view, visit https://gerrit.osmocom.org/c/osmo-iuh/+/22010 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: for-1.0 Gerrit-Change-Id: Id53956494144b46e78fc25a176a9b8917788d86e Gerrit-Change-Number: 22010 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 13:06:28 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 7 Jan 2021 13:06:28 +0000 Subject: Change in osmo-iuh[for-1.0]: configure.ac: Ensure netinet/sctp.h is present In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-iuh/+/22014 ) Change subject: configure.ac: Ensure netinet/sctp.h is present ...................................................................... configure.ac: Ensure netinet/sctp.h is present we unconditionally depend on this header file, yet nothing in configure.ac ensures its presence. Building on a clean Debian 10 with all existing dependencies installed passes configure but fails at compilation time. Change-Id: I0a4407ef6ee512ad5ea8775d90acfe1c4fa67cd0 --- M configure.ac 1 file changed, 2 insertions(+), 0 deletions(-) Approvals: pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/configure.ac b/configure.ac index 692db57..c186855 100644 --- a/configure.ac +++ b/configure.ac @@ -31,6 +31,8 @@ [AS_CASE(["${host_os}"], [*linux*],[archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'])]) +AC_CHECK_HEADERS(netinet/sctp.h,,AC_MSG_ERROR(netinet/sctp.h not found)) + dnl check for pkg-config (explained in detail in libosmocore/configure.ac) AC_PATH_PROG(PKG_CONFIG_INSTALLED, pkg-config, no) if test "x$PKG_CONFIG_INSTALLED" = "xno"; then -- To view, visit https://gerrit.osmocom.org/c/osmo-iuh/+/22014 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: for-1.0 Gerrit-Change-Id: I0a4407ef6ee512ad5ea8775d90acfe1c4fa67cd0 Gerrit-Change-Number: 22014 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 13:06:34 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 7 Jan 2021 13:06:34 +0000 Subject: Change in osmo-iuh[master]: debian: Actually build manuals; add osmo-hnbgw-doc package In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-iuh/+/22018 ) Change subject: debian: Actually build manuals; add osmo-hnbgw-doc package ...................................................................... debian: Actually build manuals; add osmo-hnbgw-doc package for some strange reason we didn't yet build the manual in the debian package build. Change-Id: Id53956494144b46e78fc25a176a9b8917788d86e --- M TODO-RELEASE M debian/control M debian/rules 3 files changed, 16 insertions(+), 3 deletions(-) Approvals: pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/TODO-RELEASE b/TODO-RELEASE index dde4b72..d0852fc 100644 --- a/TODO-RELEASE +++ b/TODO-RELEASE @@ -7,4 +7,3 @@ # If any interfaces have been added since the last public release: c:r:a + 1. # If any interfaces have been removed or changed since the last public release: c:r:0. #library what description / commit summary line -manual needs common chapter cs7-config.adoc from osmo-gsm-manuals > 0.3.0 diff --git a/debian/control b/debian/control index 416b9d7..d1805de 100644 --- a/debian/control +++ b/debian/control @@ -14,6 +14,7 @@ libosmocore-dev (>= 0.12.0), libosmo-netif-dev (>= 0.3.0), libosmo-sigtran-dev (>= 0.10.0), + osmo-gsm-manuals-dev (>= 1.0.0), python3 Standards-Version: 3.9.8 Vcs-Git: git://git.osmocom.org/osmo-iuh.git @@ -36,6 +37,14 @@ Depends: osmo-hnbgw (= ${binary:Version}), ${misc:Depends} Description: osmocom Home Node B Gateway +Package: osmo-hnbgw-doc +Section: doc +Architecture: all +Depends: ${misc:Depends} +Description: ${misc:Package} PDF documentation + Various manuals: user manual, VTY reference manual and/or + protocol/interface manuals. + Package: libosmo-ranap3 Section: libs Architecture: any diff --git a/debian/rules b/debian/rules index c3bdf50..e1f6124 100755 --- a/debian/rules +++ b/debian/rules @@ -8,6 +8,10 @@ %: dh $@ --with autoreconf +CONFIGURE_FLAGS += --with-systemdsystemunitdir=/lib/systemd/system --enable-manuals +override_dh_auto_configure: + dh_auto_configure -- $(CONFIGURE_FLAGS) + # See https://www.debian.org/doc/manuals/developers-reference/best-pkging-practices.html#bpp-dbg override_dh_strip: dh_strip -plibosmo-ranap3 --dbg-package=libosmo-ranap-dbg @@ -18,5 +22,6 @@ override_dh_auto_test: dh_auto_test || (find . -name testsuite.log -exec cat {} \; ; false) -override_dh_auto_configure: - dh_auto_configure -- --with-systemdsystemunitdir=/lib/systemd/system +# Don't create .pdf.gz files (barely saves space and they can't be opened directly by most pdf readers) +override_dh_compress: + dh_compress -X.pdf -- To view, visit https://gerrit.osmocom.org/c/osmo-iuh/+/22018 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: master Gerrit-Change-Id: Id53956494144b46e78fc25a176a9b8917788d86e Gerrit-Change-Number: 22018 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 13:06:35 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 7 Jan 2021 13:06:35 +0000 Subject: Change in osmo-iuh[master]: configure.ac: Ensure netinet/sctp.h is present In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-iuh/+/22019 ) Change subject: configure.ac: Ensure netinet/sctp.h is present ...................................................................... configure.ac: Ensure netinet/sctp.h is present we unconditionally depend on this header file, yet nothing in configure.ac ensures its presence. Building on a clean Debian 10 with all existing dependencies installed passes configure but fails at compilation time. Change-Id: I0a4407ef6ee512ad5ea8775d90acfe1c4fa67cd0 --- M configure.ac 1 file changed, 2 insertions(+), 0 deletions(-) Approvals: pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/configure.ac b/configure.ac index 692db57..c186855 100644 --- a/configure.ac +++ b/configure.ac @@ -31,6 +31,8 @@ [AS_CASE(["${host_os}"], [*linux*],[archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'])]) +AC_CHECK_HEADERS(netinet/sctp.h,,AC_MSG_ERROR(netinet/sctp.h not found)) + dnl check for pkg-config (explained in detail in libosmocore/configure.ac) AC_PATH_PROG(PKG_CONFIG_INSTALLED, pkg-config, no) if test "x$PKG_CONFIG_INSTALLED" = "xno"; then -- To view, visit https://gerrit.osmocom.org/c/osmo-iuh/+/22019 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: master Gerrit-Change-Id: I0a4407ef6ee512ad5ea8775d90acfe1c4fa67cd0 Gerrit-Change-Number: 22019 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 13:07:38 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 7 Jan 2021 13:07:38 +0000 Subject: Change in osmo-trx[master]: manual: Fix typo OsmTRX -> OsmoTRX References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-trx/+/22020 ) Change subject: manual: Fix typo OsmTRX -> OsmoTRX ...................................................................... manual: Fix typo OsmTRX -> OsmoTRX Change-Id: I4b3a76e41d4abbb08046a241ae9b7c079ce990ae --- M doc/manuals/chapters/configuration.adoc 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/20/22020/1 diff --git a/doc/manuals/chapters/configuration.adoc b/doc/manuals/chapters/configuration.adoc index a194537..e1323ef 100644 --- a/doc/manuals/chapters/configuration.adoc +++ b/doc/manuals/chapters/configuration.adoc @@ -1,4 +1,4 @@ -== Configuring OsmTRX +== Configuring OsmoTRX OsmoTRX will read the configuration at startup time and configure the transceiver accordingly after validating the configuration. -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/22020 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I4b3a76e41d4abbb08046a241ae9b7c079ce990ae Gerrit-Change-Number: 22020 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 13:09:34 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 7 Jan 2021 13:09:34 +0000 Subject: Change in osmo-trx[master]: manual: Fix typo OsmTRX -> OsmoTRX In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/22020 ) Change subject: manual: Fix typo OsmTRX -> OsmoTRX ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/22020 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I4b3a76e41d4abbb08046a241ae9b7c079ce990ae Gerrit-Change-Number: 22020 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Thu, 07 Jan 2021 13:09:34 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 13:13:13 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 7 Jan 2021 13:13:13 +0000 Subject: =?UTF-8?Q?Change_in_osmo-iuh=5Bfor-1=2E0=5D=3A_Bump_version=3A_0=2E6=2E0=2E24-da79_=E2=86=92_1=2E0=2E0?= In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-iuh/+/22017 ) Change subject: Bump version: 0.6.0.24-da79 ? 1.0.0 ...................................................................... Bump version: 0.6.0.24-da79 ? 1.0.0 Change-Id: I4c26bf6c129d15833c4fc5f395465efe88826c44 --- M debian/changelog 1 file changed, 44 insertions(+), 0 deletions(-) Approvals: pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/debian/changelog b/debian/changelog index f59c49e..aae3463 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,47 @@ +osmo-iuh (1.0.0) unstable; urgency=medium + + [ Martin Hauke ] + * tests: Missing return statement + + [ Pau Espin Pedrol ] + * tests/hnb-test-ranap.c: Fix wrong printf format + * tests/test-ranap.c: Fix wrong printf format + * Fix compiler warning on signedness of char ptr using OCTET_STRING_fromBuf() + * hnbgw_vty.c: Drop unusued variables + * tests: Fix trailing whitespace + * Fix OneDefinitionRule Asan violation in tests and osmo-hnbgw + * Change default SCTP conn NULL->127.0.0.1 to localhost->localhost + * hnbgw: Mark SCTP conn as NODELAY + + [ Neels Hofmeyr ] + * manual: add "Configuring Primary Links" and "Multiple instances" + * manual: link to new common cs7-config.adoc + + [ Vadim Yanitskiy ] + * tests/test-helpers: fix some -Wpointer-sign warnings reported by GCC + * tests/test-helpers: fix endianness: do not print uint32_t as raw bytes + * tests/test-ranap: cosmetic: remove unused variable 'rc' + * debian/control: change maintainer to the Osmocom team / mailing list + + [ Eric ] + * configure.ac: fix libtool issue with clang and sanitizer + + [ Philipp Maier ] + * hnbgw: do not use LOGL_DEBUG as default loglevel + + [ Harald Welte ] + * Fix compilation with gcc-10 + * Provide more context when logging "Error in ANY_fromType_aper" + * debian: Actually build manuals; add osmo-hnbgw-doc package + * configure.ac: Ensure netinet/sctp.h is present + + [ Oliver Smith ] + * contrib: import RPM spec + * contrib: integrate RPM spec + * Makefile.am: EXTRA_DIST: debian, contrib/*.spec.in + + -- Harald Welte Thu, 07 Jan 2021 13:55:19 +0100 + osmo-iuh (0.6.0) unstable; urgency=medium [ Vadim Yanitskiy ] -- To view, visit https://gerrit.osmocom.org/c/osmo-iuh/+/22017 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: for-1.0 Gerrit-Change-Id: I4c26bf6c129d15833c4fc5f395465efe88826c44 Gerrit-Change-Number: 22017 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 13:13:41 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 7 Jan 2021 13:13:41 +0000 Subject: Change in osmo-trx[master]: manual: Fix typo OsmTRX -> OsmoTRX In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/22020 ) Change subject: manual: Fix typo OsmTRX -> OsmoTRX ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/22020 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I4b3a76e41d4abbb08046a241ae9b7c079ce990ae Gerrit-Change-Number: 22020 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Thu, 07 Jan 2021 13:13:41 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 13:13:43 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 7 Jan 2021 13:13:43 +0000 Subject: Change in osmo-trx[master]: manual: Fix typo OsmTRX -> OsmoTRX In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/22020 ) Change subject: manual: Fix typo OsmTRX -> OsmoTRX ...................................................................... manual: Fix typo OsmTRX -> OsmoTRX Change-Id: I4b3a76e41d4abbb08046a241ae9b7c079ce990ae --- M doc/manuals/chapters/configuration.adoc 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: pespin: Looks good to me, approved laforge: Looks good to me, approved; Verified diff --git a/doc/manuals/chapters/configuration.adoc b/doc/manuals/chapters/configuration.adoc index a194537..e1323ef 100644 --- a/doc/manuals/chapters/configuration.adoc +++ b/doc/manuals/chapters/configuration.adoc @@ -1,4 +1,4 @@ -== Configuring OsmTRX +== Configuring OsmoTRX OsmoTRX will read the configuration at startup time and configure the transceiver accordingly after validating the configuration. -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/22020 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I4b3a76e41d4abbb08046a241ae9b7c079ce990ae Gerrit-Change-Number: 22020 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 13:14:52 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 7 Jan 2021 13:14:52 +0000 Subject: Change in osmo-bts[master]: vty: add a command to show GPRS related info In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/20484 ) Change subject: vty: add a command to show GPRS related info ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/20484 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I149eea0b1c109020406eb67c9082c335a77aab06 Gerrit-Change-Number: 20484 Gerrit-PatchSet: 4 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 07 Jan 2021 13:14:52 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 13:17:22 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 7 Jan 2021 13:17:22 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: abuse gsm48_encode_ra() to encode TAC In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/21949 to look at the new patch set (#2). Change subject: gprs_bssgp: abuse gsm48_encode_ra() to encode TAC ...................................................................... gprs_bssgp: abuse gsm48_encode_ra() to encode TAC Both LAC and TAC take 2 octets and follow MCC/MNC fields on the wire. We abuse gsm48_encode_ra() for encoding of MCC/MNC, but it can also be abused to encode TAC in bssgp_create_rim_ri(). There is no need to encode '0000'O and then override it with osmo_store16be(). Change-Id: I986552aa52cf38b1c5290d2e5cd3ff2d1c36a4e5 --- M src/gb/gprs_bssgp.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/49/21949/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21949 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I986552aa52cf38b1c5290d2e5cd3ff2d1c36a4e5 Gerrit-Change-Number: 21949 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 13:17:48 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 7 Jan 2021 13:17:48 +0000 Subject: Change in osmo-ttcn3-hacks[master]: CTRL: Fix tr_CtrlMsgGet containing invalid value in val field In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22011 ) Change subject: CTRL: Fix tr_CtrlMsgGet containing invalid value in val field ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22011 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If1a273a2be71040eaea2189a0aeaf737adf848e5 Gerrit-Change-Number: 22011 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 07 Jan 2021 13:17:48 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 13:21:17 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 7 Jan 2021 13:21:17 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: abuse gsm48_encode_ra() to encode TAC In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21949 ) Change subject: gprs_bssgp: abuse gsm48_encode_ra() to encode TAC ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/21949/2/src/gb/gprs_bssgp.c File src/gb/gprs_bssgp.c: https://gerrit.osmocom.org/c/libosmocore/+/21949/2/src/gb/gprs_bssgp.c at 405 PS2, Line 405: .lac = ri->eutran.tai.tac, /* intentional */ so probably worth it adding "intentional, TAI uses same format as RAI" -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21949 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I986552aa52cf38b1c5290d2e5cd3ff2d1c36a4e5 Gerrit-Change-Number: 21949 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 07 Jan 2021 13:21:17 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 13:22:22 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 7 Jan 2021 13:22:22 +0000 Subject: Change in osmo-bts[master]: vty: add a command to show GPRS related info In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/20484 ) Change subject: vty: add a command to show GPRS related info ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/20484 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I149eea0b1c109020406eb67c9082c335a77aab06 Gerrit-Change-Number: 20484 Gerrit-PatchSet: 4 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 07 Jan 2021 13:22:22 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 13:25:46 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 7 Jan 2021 13:25:46 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: abuse gsm48_encode_ra() to encode TAC In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/21949 to look at the new patch set (#3). Change subject: gprs_bssgp: abuse gsm48_encode_ra() to encode TAC ...................................................................... gprs_bssgp: abuse gsm48_encode_ra() to encode TAC Both LAC and TAC take 2 octets and follow MCC/MNC fields on the wire. We abuse gsm48_encode_ra() for encoding of MCC/MNC, but it can also be abused to encode TAC in bssgp_create_rim_ri(). There is no need to encode '0000'O and then override it with osmo_store16be(). Change-Id: I986552aa52cf38b1c5290d2e5cd3ff2d1c36a4e5 --- M src/gb/gprs_bssgp.c 1 file changed, 2 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/49/21949/3 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21949 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I986552aa52cf38b1c5290d2e5cd3ff2d1c36a4e5 Gerrit-Change-Number: 21949 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 13:25:47 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 7 Jan 2021 13:25:47 +0000 Subject: Change in libosmocore[master]: bts_features: s/Repeation/Repetition/ in osmo_bts_features_descs[] References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22021 ) Change subject: bts_features: s/Repeation/Repetition/ in osmo_bts_features_descs[] ...................................................................... bts_features: s/Repeation/Repetition/ in osmo_bts_features_descs[] Change-Id: Ia8c77766842ce80eae969774959cbf46e86f97b9 --- M src/gsm/bts_features.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/21/22021/1 diff --git a/src/gsm/bts_features.c b/src/gsm/bts_features.c index 93703aa..d8c27d8 100644 --- a/src/gsm/bts_features.c +++ b/src/gsm/bts_features.c @@ -41,7 +41,7 @@ { BTS_FEAT_ETWS_PN, "ETWS Primary Notification via PCH" }, { BTS_FEAT_PAGING_COORDINATION, "BSS Paging Coordination" }, { BTS_FEAT_IPV6_NSVC, "NSVC IPv6" }, - { BTS_FEAT_ACCH_REP, "FACCH/SACCH Repeation" }, + { BTS_FEAT_ACCH_REP, "FACCH/SACCH Repetition" }, { 0, NULL } }; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22021 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia8c77766842ce80eae969774959cbf46e86f97b9 Gerrit-Change-Number: 22021 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 13:26:16 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 7 Jan 2021 13:26:16 +0000 Subject: Change in osmo-bts[master]: vty: add a command to show GPRS related info In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/20484 ) Change subject: vty: add a command to show GPRS related info ...................................................................... vty: add a command to show GPRS related info Here is a sample output: OsmoBTS# show bts 0 gprs BTS 0, RAC 0, NSEI 101, BVCI 2 Cell NM state: Oper 'Enabled', Admin 'Unlocked', Avail 'OK' NSE NM state: Oper 'Enabled', Admin 'Unlocked', Avail 'OK' NSVC0 (NSVCI 101) NM state: Oper 'Enabled', Admin 'Unlocked', Avail 'OK' Address: r=127.0.0.1:23010<->l=0.0.0.0:55385 NSVC1 (NSVCI 0) NM state: Oper 'Disabled', Admin 'Locked', Avail 'Off line' This command is useful for debugging NS connection problems. Change-Id: I149eea0b1c109020406eb67c9082c335a77aab06 --- M src/common/vty.c 1 file changed, 70 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, but someone else must approve pespin: Looks good to me, approved diff --git a/src/common/vty.c b/src/common/vty.c index 326e332..1c3b496 100644 --- a/src/common/vty.c +++ b/src/common/vty.c @@ -39,6 +39,7 @@ #include #include #include +#include #include @@ -1104,6 +1105,73 @@ return CMD_SUCCESS; } +static void gprs_dump_vty(struct vty *vty, const struct gsm_bts *bts) +{ + unsigned int i; + + /* GPRS parameters received from the BSC */ + vty_out(vty, "BTS %u, RAC %u, NSEI %u, BVCI %u%s", + bts->nr, bts->gprs.rac, + bts->gprs.nse.nsei, + bts->gprs.cell.bvci, + VTY_NEWLINE); + + vty_out(vty, " Cell NM state: "); + net_dump_nmstate(vty, &bts->gprs.cell.mo.nm_state); + vty_out(vty, " NSE NM state: "); + net_dump_nmstate(vty, &bts->gprs.nse.mo.nm_state); + + for (i = 0; i < ARRAY_SIZE(bts->gprs.nsvc); i++) { + const struct gsm_bts_gprs_nsvc *nsvc = &bts->gprs.nsvc[i]; + + vty_out(vty, " NSVC%u (NSVCI %u) NM state: ", i, nsvc->nsvci); + net_dump_nmstate(vty, &nsvc->mo.nm_state); + + if (nsvc->mo.nm_state.operational == NM_OPSTATE_ENABLED) { + struct osmo_sockaddr_str remote; + struct osmo_sockaddr_str local; + + if (osmo_sockaddr_str_from_sockaddr(&remote, &nsvc->remote.u.sas) != 0) + remote = (struct osmo_sockaddr_str) { .ip = "" }; + if (osmo_sockaddr_str_from_sockaddr(&local, &nsvc->local.u.sas) != 0) + local = (struct osmo_sockaddr_str) { .ip = "" }; + + /* Work around for over-defensiveness of OSMO_SOCKADDR_STR_FMT_ARGS(): + * error: the address of ?remote? will always evaluate as ?true? + * error: the address of ?local? will always evaluate as ?true? */ + const struct osmo_sockaddr_str *r = &remote; + const struct osmo_sockaddr_str *l = &local; + + /* Getting remote/local address info has never been so easy, right? */ + vty_out(vty, " Address: r=" OSMO_SOCKADDR_STR_FMT + "<->l=" OSMO_SOCKADDR_STR_FMT "%s", + OSMO_SOCKADDR_STR_FMT_ARGS(r), + OSMO_SOCKADDR_STR_FMT_ARGS(l), + VTY_NEWLINE); + } + } +} + +DEFUN(show_bts_gprs, show_bts_gprs_cmd, + "show bts <0-255> gprs", + SHOW_STR "Display information about a BTS\n" + BTS_NR_STR "GPRS/EGPRS configuration\n") +{ + const struct gsm_network *net = gsmnet_from_vty(vty); + const struct gsm_bts *bts; + + bts = gsm_bts_num(net, atoi(argv[0])); + if (bts == NULL) { + vty_out(vty, "%% can't find BTS '%s'%s", + argv[0], VTY_NEWLINE); + return CMD_WARNING; + } + + /* TODO: also print info about PCUIF connection */ + gprs_dump_vty(vty, bts); + return CMD_SUCCESS; +} + DEFUN(test_send_failure_event_report, test_send_failure_event_report_cmd, "test send-failure-event-report <0-255>", "Various testing commands\n" "Send a test OML failure event report to the BSC\n" BTS_NR_STR) @@ -2032,6 +2100,8 @@ install_element_ve(&show_ts_cmd); install_element_ve(&show_lchan_cmd); install_element_ve(&show_lchan_summary_cmd); + install_element_ve(&show_bts_gprs_cmd); + install_element_ve(&logging_fltr_l1_sapi_cmd); install_element_ve(&no_logging_fltr_l1_sapi_cmd); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/20484 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I149eea0b1c109020406eb67c9082c335a77aab06 Gerrit-Change-Number: 20484 Gerrit-PatchSet: 4 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 13:30:20 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 7 Jan 2021 13:30:20 +0000 Subject: Change in osmo-ttcn3-hacks[master]: CTRL: Introduce support to run osmocom CTRL server In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22012 ) Change subject: CTRL: Introduce support to run osmocom CTRL server ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22012/1/library/Osmocom_CTRL_Adapter.ttcn File library/Osmocom_CTRL_Adapter.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22012/1/library/Osmocom_CTRL_Adapter.ttcn at 62 PS1, Line 62: v > it might make sense to differentiate based on server/client in the ID. [?] Ack. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22012 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I37db9962f51baf2c63bd58ec47ec89f773d7a255 Gerrit-Change-Number: 22012 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 07 Jan 2021 13:30:20 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Comment-In-Reply-To: laforge Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 13:37:33 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 7 Jan 2021 13:37:33 +0000 Subject: Change in meta-telephony[201705]: libosmo-netif: Add explicit dependency lksctp-tools References: Message-ID: Hello pespin, I'd like you to do a code review. Please visit https://gerrit.osmocom.org/c/meta-telephony/+/22022 to review the following change. Change subject: libosmo-netif: Add explicit dependency lksctp-tools ...................................................................... libosmo-netif: Add explicit dependency lksctp-tools Since libosmo-netif.git d1b1ff77a6bc2f70366c5d2f5079c70f5eae52a0, use of libsctp is enabled by default and explicitly required. Change-Id: Ib53557f21cad86300738f43b247df1e17166c46f --- M recipes-osmocom/libosmo-netif/libosmo-netif.inc 1 file changed, 9 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/meta-telephony refs/changes/22/22022/1 diff --git a/recipes-osmocom/libosmo-netif/libosmo-netif.inc b/recipes-osmocom/libosmo-netif/libosmo-netif.inc index a353be6..0a51dfc 100644 --- a/recipes-osmocom/libosmo-netif/libosmo-netif.inc +++ b/recipes-osmocom/libosmo-netif/libosmo-netif.inc @@ -1,10 +1,15 @@ DESCRIPTION = "Osmocom network interface library" -DEPENDS = "libosmo-abis libtalloc lksctp-tools" HOMEPAGE = "http://git.osmocom.org" LICENSE = "GPLv2+" - -INC_PR="r0.${META_TELEPHONY_OSMO_INC}" - LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" +INC_PR="r1.${META_TELEPHONY_OSMO_INC}" + +DEPENDS = "libosmo-abis libtalloc" + +PACKAGECONFIG ??= "\ + libsctp \ + " +PACKAGECONFIG[libsctp] = "--enable-libsctp,--disable-libsctp,lksctp-tools," + inherit autotools pkgconfig -- To view, visit https://gerrit.osmocom.org/c/meta-telephony/+/22022 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: meta-telephony Gerrit-Branch: 201705 Gerrit-Change-Id: Ib53557f21cad86300738f43b247df1e17166c46f Gerrit-Change-Number: 22022 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 13:37:34 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 7 Jan 2021 13:37:34 +0000 Subject: Change in meta-telephony[201705]: libosmo-netif: workaround oe-core forcing fail of sctp.h autoconf check References: Message-ID: Hello pespin, I'd like you to do a code review. Please visit https://gerrit.osmocom.org/c/meta-telephony/+/22023 to review the following change. Change subject: libosmo-netif: workaround oe-core forcing fail of sctp.h autoconf check ...................................................................... libosmo-netif: workaround oe-core forcing fail of sctp.h autoconf check oe-core is currently (pyro and current master) forcing non-availability of netinet/sctp.h header file through autoconf's export CONFIG_SITE pointing to files in meta/site/, which contain: ac_cv_header_netinet_sctp_h=${ac_cv_header_netinet_sctp_h=no} As a result, netinet/sctp.h is not found despite DEPENDS="lksctp-tools" and the file being available correctly under recipe-sysroot/ and finally configure fails with AC_MSG_ERROR(). It was confirmed by OE devs that those lines should not be there, and a patch has been submitted: https://patchwork.openembedded.org/patch/168892/ Since it's not available in pyro nor latest release, let's workaround it in our recipe to make sure it works with older versions of OE. Change-Id: Ide91e96648881a0c6d415d727a14c2ef913fb180 --- M recipes-osmocom/libosmo-netif/libosmo-netif.inc 1 file changed, 4 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/meta-telephony refs/changes/23/22023/1 diff --git a/recipes-osmocom/libosmo-netif/libosmo-netif.inc b/recipes-osmocom/libosmo-netif/libosmo-netif.inc index 0a51dfc..7098c42 100644 --- a/recipes-osmocom/libosmo-netif/libosmo-netif.inc +++ b/recipes-osmocom/libosmo-netif/libosmo-netif.inc @@ -12,4 +12,8 @@ " PACKAGECONFIG[libsctp] = "--enable-libsctp,--disable-libsctp,lksctp-tools," +# Workaround to oe-core meta/site/* CONFIG_SITE files passed to autoconf forcing unavailability of netinet/sctp.h. +# Patch fixing issue upstream: https://patchwork.openembedded.org/patch/168892/ +CACHED_CONFIGUREVARS += "${@bb.utils.contains('PACKAGECONFIG', 'libsctp', 'ac_cv_header_netinet_sctp_h=yes', '',d)}" + inherit autotools pkgconfig -- To view, visit https://gerrit.osmocom.org/c/meta-telephony/+/22023 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: meta-telephony Gerrit-Branch: 201705 Gerrit-Change-Id: Ide91e96648881a0c6d415d727a14c2ef913fb180 Gerrit-Change-Number: 22023 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 13:37:35 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 7 Jan 2021 13:37:35 +0000 Subject: Change in meta-telephony[201705]: osmo-iuh: workaround oe-core forcing fail of sctp.h autoconf check References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/meta-telephony/+/22024 ) Change subject: osmo-iuh: workaround oe-core forcing fail of sctp.h autoconf check ...................................................................... osmo-iuh: workaround oe-core forcing fail of sctp.h autoconf check oe-core is currently (pyro and current master) forcing non-availability of netinet/sctp.h header file through autoconf's export CONFIG_SITE pointing to files in meta/site/, which contain: ac_cv_header_netinet_sctp_h=${ac_cv_header_netinet_sctp_h=no} As a result, netinet/sctp.h is not found despite DEPENDS="lksctp-tools" and the file being available correctly under recipe-sysroot/ and finally configure fails with AC_MSG_ERROR(). It was confirmed by OE devs that those lines should not be there, and a patch has been submitted: https://patchwork.openembedded.org/patch/168892/ Since it's not available in pyro nor latest release, let's workaround it in our recipe to make sure it works with older versions of OE. Change-Id: Ic54c50300bcf2cd278db95550d14eef044caea05 --- M recipes-osmocom/osmo-iuh/osmo-iuh.inc 1 file changed, 6 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/meta-telephony refs/changes/24/22024/1 diff --git a/recipes-osmocom/osmo-iuh/osmo-iuh.inc b/recipes-osmocom/osmo-iuh/osmo-iuh.inc index ab412ad..92b4633 100644 --- a/recipes-osmocom/osmo-iuh/osmo-iuh.inc +++ b/recipes-osmocom/osmo-iuh/osmo-iuh.inc @@ -3,9 +3,13 @@ LICENSE = "AGPLv3" LIC_FILES_CHKSUM = "file://COPYING;md5=73f1eb20517c55bf9493b7dd6e480788" -DEPENDS = "libosmocore libosmo-netif libosmo-sccp libasn1c" +DEPENDS = "libosmocore libosmo-netif libosmo-sccp libasn1c lksctp-tools" -INC_PR="r1.${META_TELEPHONY_OSMO_INC}" +INC_PR="r2.${META_TELEPHONY_OSMO_INC}" + +# Workaround to oe-core meta/site/* CONFIG_SITE files passed to autoconf forcing unavailability of netinet/sctp.h. +# Patch fixing issue upstream: https://patchwork.openembedded.org/patch/168892/ +CACHED_CONFIGUREVARS += "ac_cv_header_netinet_sctp_h=yes" inherit autotools pkgconfig systemd -- To view, visit https://gerrit.osmocom.org/c/meta-telephony/+/22024 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: meta-telephony Gerrit-Branch: 201705 Gerrit-Change-Id: Ic54c50300bcf2cd278db95550d14eef044caea05 Gerrit-Change-Number: 22024 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 13:37:35 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 7 Jan 2021 13:37:35 +0000 Subject: Change in meta-telephony[201705]: update all of osmocom to "latest" tags References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/meta-telephony/+/22025 ) Change subject: update all of osmocom to "latest" tags ...................................................................... update all of osmocom to "latest" tags We have to use some arcane construct to make the bitbake fetcher actualyl fetch tags that are not on any branch (like those patch releases that themselves branch off master, but which aren't on master). Otherwise we get errors like: WARNING: osmo-sgsn-1.6.2+gitrAUTOINC+065500a347-r1.18.0 do_fetch: Failed to fetch URL git://git.osmocom.org/osmo-sgsn.git;protocol=git, attempting MIRRORS if available ERROR: osmo-sgsn-1.6.2+gitrAUTOINC+065500a347-r1.18.0 do_fetch: Fetcher failure: Unable to find revision 065500a3471dd43b65dc87b95854c3015c551f0f in branch master even from upstream Change-Id: I743173f8a3385686ffb11550aabc0fbc665cf043 --- M recipes-osmocom/libosmo-abis/libosmo-abis_git.bb M recipes-osmocom/libosmo-netif/libosmo-netif_git.bb M recipes-osmocom/libosmo-sccp/libosmo-sccp_git.bb M recipes-osmocom/libosmocore/libosmocore_git.bb M recipes-osmocom/osmo-bsc/osmo-bsc_git.bb M recipes-osmocom/osmo-ggsn/osmo-ggsn_git.bb M recipes-osmocom/osmo-hlr/osmo-hlr_git.bb M recipes-osmocom/osmo-iuh/osmo-iuh_git.bb M recipes-osmocom/osmo-msc/osmo-msc_git.bb M recipes-osmocom/osmo-sgsn/osmo-sgsn_git.bb M recipes-osmocom/osmo-sip-connector/osmo-sip-connector_git.bb M recipes-osmocom/osmo-sysmon/osmo-sysmon_git.bb 12 files changed, 30 insertions(+), 30 deletions(-) git pull ssh://gerrit.osmocom.org:29418/meta-telephony refs/changes/25/22025/1 diff --git a/recipes-osmocom/libosmo-abis/libosmo-abis_git.bb b/recipes-osmocom/libosmo-abis/libosmo-abis_git.bb index 0582599..446a590 100644 --- a/recipes-osmocom/libosmo-abis/libosmo-abis_git.bb +++ b/recipes-osmocom/libosmo-abis/libosmo-abis_git.bb @@ -1,7 +1,7 @@ require ${PN}.inc S = "${WORKDIR}/git" -SRCREV = "c313d44272f04b24dad38f4caea17180f9cbc509" -SRC_URI = "git://git.osmocom.org/libosmo-abis.git;protocol=git" -PV = "0.8.0+gitr${SRCPV}" +SRCREV = "1.0.1" +SRC_URI = "git://git.osmocom.org/libosmo-abis.git;protocol=git;tag=${SRCREV};nobranch=1" +PV = "1.0.1+gitr${SRCPV}" PR = "${INC_PR}.0" diff --git a/recipes-osmocom/libosmo-netif/libosmo-netif_git.bb b/recipes-osmocom/libosmo-netif/libosmo-netif_git.bb index c52c7e9..0f2856e 100644 --- a/recipes-osmocom/libosmo-netif/libosmo-netif_git.bb +++ b/recipes-osmocom/libosmo-netif/libosmo-netif_git.bb @@ -1,7 +1,7 @@ require ${PN}.inc S = "${WORKDIR}/git" -SRCREV = "b8121e79ef53b30df535fb38987b3a48853ebbe9" +SRCREV = "f3ccbecb6f802ccd98d154dc7ba7d552e298b2ea" SRC_URI = "git://git.osmocom.org/libosmo-netif.git;protocol=git" -PV = "0.7.0+gitr${SRCPV}" +PV = "1.0.0+gitr${SRCPV}" PR = "${INC_PR}.0" diff --git a/recipes-osmocom/libosmo-sccp/libosmo-sccp_git.bb b/recipes-osmocom/libosmo-sccp/libosmo-sccp_git.bb index 31fa234..c78477c 100644 --- a/recipes-osmocom/libosmo-sccp/libosmo-sccp_git.bb +++ b/recipes-osmocom/libosmo-sccp/libosmo-sccp_git.bb @@ -1,7 +1,7 @@ require ${PN}.inc S = "${WORKDIR}/git" -SRCREV = "5e4643f4bc76a1437621348550b5b2a603e2179b" +SRCREV = "37880b696ee90dead7e3b1292b109cc041a44e52" SRC_URI = "git://git.osmocom.org/libosmo-sccp.git;protocol=git" -PV = "1.2.0+gitr${SRCPV}" +PV = "1.3.0+gitr${SRCPV}" PR = "${INC_PR}.0" diff --git a/recipes-osmocom/libosmocore/libosmocore_git.bb b/recipes-osmocom/libosmocore/libosmocore_git.bb index d5eab3a..1acf6ac 100644 --- a/recipes-osmocom/libosmocore/libosmocore_git.bb +++ b/recipes-osmocom/libosmocore/libosmocore_git.bb @@ -1,9 +1,9 @@ require ${PN}.inc S = "${WORKDIR}/git" -SRCREV = "2862f9082ed4f16383a134e1112610d76ad91bf0" +SRCREV = "5681a3254c1727d4926ac6d36800fd63d87ad7a2" SRC_URI = "git://git.osmocom.org/libosmocore.git;protocol=git;nobranch=1" -PV = "1.3.0+gitr${SRCPV}" +PV = "1.4.1+gitr${SRCPV}" PR = "${INC_PR}.0" PACKAGES =+ "libosmoctrl libosmocodec libosmogb libosmogsm libosmovty osmo-arfcn osmo-auc-gen osmo-config-merge" diff --git a/recipes-osmocom/osmo-bsc/osmo-bsc_git.bb b/recipes-osmocom/osmo-bsc/osmo-bsc_git.bb index fdb389b..dce2ef1 100644 --- a/recipes-osmocom/osmo-bsc/osmo-bsc_git.bb +++ b/recipes-osmocom/osmo-bsc/osmo-bsc_git.bb @@ -1,7 +1,7 @@ require ${PN}.inc S = "${WORKDIR}/git" -SRCREV = "a1362ce8c20b2fa60e3da67936ea69d406e23aff" -SRC_URI = "git://git.osmocom.org/osmo-bsc.git;protocol=git" -PV = "1.6.0+gitr${SRCPV}" +SRCREV = "1.6.1" +SRC_URI = "git://git.osmocom.org/osmo-bsc.git;protocol=git;tag=${SRCREV};nobranch=1" +PV = "1.6.1+gitr${SRCPV}" PR = "${INC_PR}.0" diff --git a/recipes-osmocom/osmo-ggsn/osmo-ggsn_git.bb b/recipes-osmocom/osmo-ggsn/osmo-ggsn_git.bb index b1b2298..a854384 100644 --- a/recipes-osmocom/osmo-ggsn/osmo-ggsn_git.bb +++ b/recipes-osmocom/osmo-ggsn/osmo-ggsn_git.bb @@ -1,9 +1,9 @@ require ${PN}.inc S = "${WORKDIR}/git" -SRCREV = "e71e0f2af84d8b26f4c09a8c859f86cf701b3357" +SRCREV = "2154607fb06c9e4d1a286f40c756cdb4f792efdf" SRC_URI = "git://git.osmocom.org/osmo-ggsn \ file://libgtp-queue_depth_32.patch \ " -PV = "1.5.0+gitr${SRCPV}" +PV = "1.6.0+gitr${SRCPV}" PR = "${INC_PR}.0" diff --git a/recipes-osmocom/osmo-hlr/osmo-hlr_git.bb b/recipes-osmocom/osmo-hlr/osmo-hlr_git.bb index 90bb611..0676f09 100644 --- a/recipes-osmocom/osmo-hlr/osmo-hlr_git.bb +++ b/recipes-osmocom/osmo-hlr/osmo-hlr_git.bb @@ -1,7 +1,7 @@ require ${PN}.inc S = "${WORKDIR}/git" -SRCREV = "3a66698d87b29e0bf8eb53ca29db7e0f02871abc" -SRC_URI = "git://git.osmocom.org/osmo-hlr.git;protocol=git" -PV = "1.2.0+gitr${SRCPV}" +SRCREV = "1.2.1" +SRC_URI = "git://git.osmocom.org/osmo-hlr.git;protocol=git;tag=${SRCREV};nobranch=1" +PV = "1.2.1+gitr${SRCPV}" PR = "${INC_PR}.0" diff --git a/recipes-osmocom/osmo-iuh/osmo-iuh_git.bb b/recipes-osmocom/osmo-iuh/osmo-iuh_git.bb index 66efd8c..5cd2d3f 100644 --- a/recipes-osmocom/osmo-iuh/osmo-iuh_git.bb +++ b/recipes-osmocom/osmo-iuh/osmo-iuh_git.bb @@ -1,7 +1,7 @@ require ${PN}.inc S = "${WORKDIR}/git" -SRCREV = "67d32a0386b1c0bfb7a12f63b5bb475a08010e80" -SRC_URI = "git://git.osmocom.org/osmo-iuh.git;protocol=git" -PV = "0.6.0+gitr${SRCPV}" +SRCREV = "1.0.0" +SRC_URI = "git://git.osmocom.org/osmo-iuh.git;protocol=git;tag=${SRCREV};nobranch=1" +PV = "1.0.0+gitr${SRCPV}" PR = "${INC_PR}.0" diff --git a/recipes-osmocom/osmo-msc/osmo-msc_git.bb b/recipes-osmocom/osmo-msc/osmo-msc_git.bb index 81bc071..79aa0c3 100644 --- a/recipes-osmocom/osmo-msc/osmo-msc_git.bb +++ b/recipes-osmocom/osmo-msc/osmo-msc_git.bb @@ -1,7 +1,7 @@ require ${PN}.inc S = "${WORKDIR}/git" -SRCREV = "4a5ba81f7d057373ed44ab66169faa1f9d7b46ea" -SRC_URI = "git://git.osmocom.org/osmo-msc.git;protocol=git" -PV = "1.6.1+gitr${SRCPV}" +SRCREV = "1.6.3" +SRC_URI = "git://git.osmocom.org/osmo-msc.git;protocol=git;tag=${SRCREV};nobranch=1" +PV = "1.6.3+gitr${SRCPV}" PR = "${INC_PR}.0" diff --git a/recipes-osmocom/osmo-sgsn/osmo-sgsn_git.bb b/recipes-osmocom/osmo-sgsn/osmo-sgsn_git.bb index f0aa365..d65c5f3 100644 --- a/recipes-osmocom/osmo-sgsn/osmo-sgsn_git.bb +++ b/recipes-osmocom/osmo-sgsn/osmo-sgsn_git.bb @@ -1,7 +1,7 @@ require ${PN}.inc S = "${WORKDIR}/git" -SRCREV = "394aa533e9e3a744dfe10c2cf01898dabb8d6812" -SRC_URI = "git://git.osmocom.org/osmo-sgsn.git;protocol=git" -PV = "1.6.0+gitr${SRCPV}" +SRCREV = "1.6.2" +SRC_URI = "git://git.osmocom.org/osmo-sgsn.git;protocol=git;tag=${SRCREV};nobranch=1" +PV = "1.6.2+gitr${SRCPV}" PR = "${INC_PR}.0" diff --git a/recipes-osmocom/osmo-sip-connector/osmo-sip-connector_git.bb b/recipes-osmocom/osmo-sip-connector/osmo-sip-connector_git.bb index 5d525ae..e847489 100644 --- a/recipes-osmocom/osmo-sip-connector/osmo-sip-connector_git.bb +++ b/recipes-osmocom/osmo-sip-connector/osmo-sip-connector_git.bb @@ -1,7 +1,7 @@ require ${PN}.inc S = "${WORKDIR}/git" -SRCREV = "e58ead7ac4c0e97f82ceef828b8da30f7cb84927" +SRCREV = "79d76480ac0187993c05b2c682e120f6e0e8bbb8" SRC_URI = "git://git.osmocom.org/osmo-sip-connector.git;protocol=git" -PV = "1.4.0+gitr${SRCPV}" +PV = "1.4.1+gitr${SRCPV}" PR = "${INC_PR}.0" diff --git a/recipes-osmocom/osmo-sysmon/osmo-sysmon_git.bb b/recipes-osmocom/osmo-sysmon/osmo-sysmon_git.bb index 32796b3..97122ba 100644 --- a/recipes-osmocom/osmo-sysmon/osmo-sysmon_git.bb +++ b/recipes-osmocom/osmo-sysmon/osmo-sysmon_git.bb @@ -1,7 +1,7 @@ require ${PN}.inc S = "${WORKDIR}/git" -SRCREV = "7648a0eb1824e432075353cde10dffdac1cd295e" +SRCREV = "faea029a466fec48236403aa10d0b1a00f144763" SRC_URI = "git://git.osmocom.org/osmo-sysmon.git;protocol=git" -PV = "0.2.0+gitr${SRCPV}" +PV = "0.3.0+gitr${SRCPV}" PR = "${INC_PR}.0" -- To view, visit https://gerrit.osmocom.org/c/meta-telephony/+/22025 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: meta-telephony Gerrit-Branch: 201705 Gerrit-Change-Id: I743173f8a3385686ffb11550aabc0fbc665cf043 Gerrit-Change-Number: 22025 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 13:39:02 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 7 Jan 2021 13:39:02 +0000 Subject: Change in meta-telephony[201705]: osmo-iuh: workaround oe-core forcing fail of sctp.h autoconf check In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/meta-telephony/+/22024 ) Change subject: osmo-iuh: workaround oe-core forcing fail of sctp.h autoconf check ...................................................................... Patch Set 1: Basically every user of netinet/sctp.h will need that workaround, that's why it would be better to actually fix the poky we use, or if we can somehow add CACHED_CONFIGUREVARS to all our recipes via some config? -- To view, visit https://gerrit.osmocom.org/c/meta-telephony/+/22024 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: meta-telephony Gerrit-Branch: 201705 Gerrit-Change-Id: Ic54c50300bcf2cd278db95550d14eef044caea05 Gerrit-Change-Number: 22024 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 07 Jan 2021 13:39:02 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 13:40:09 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 7 Jan 2021 13:40:09 +0000 Subject: Change in meta-telephony[201705]: libosmo-netif: Add explicit dependency lksctp-tools In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/meta-telephony/+/22022 ) Change subject: libosmo-netif: Add explicit dependency lksctp-tools ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/meta-telephony/+/22022 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: meta-telephony Gerrit-Branch: 201705 Gerrit-Change-Id: Ib53557f21cad86300738f43b247df1e17166c46f Gerrit-Change-Number: 22022 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 07 Jan 2021 13:40:09 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 13:40:13 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 7 Jan 2021 13:40:13 +0000 Subject: Change in meta-telephony[201705]: libosmo-netif: workaround oe-core forcing fail of sctp.h autoconf check In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/meta-telephony/+/22023 ) Change subject: libosmo-netif: workaround oe-core forcing fail of sctp.h autoconf check ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/meta-telephony/+/22023 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: meta-telephony Gerrit-Branch: 201705 Gerrit-Change-Id: Ide91e96648881a0c6d415d727a14c2ef913fb180 Gerrit-Change-Number: 22023 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 07 Jan 2021 13:40:13 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Thu Jan 7 13:40:15 2021 From: admin at opensuse.org (OBS Notification) Date: Thu, 07 Jan 2021 13:40:15 +0000 Subject: Build failure of network:osmocom:nightly/open5gs in Debian_10/i586 In-Reply-To: References: Message-ID: <5ff70f5a733ed_35dd2aba60cf45f01805f3@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/open5gs/Debian_10/i586 Package network:osmocom:nightly/open5gs failed to build in Debian_10/i586 Check out the package for editing: osc checkout network:osmocom:nightly open5gs Last lines of build log: [ 346s] [2541/2541] cc -o tests/handover/handover 'tests/handover/63da1a3@@handover at exe/abts-main.c.o' 'tests/handover/63da1a3@@handover at exe/epc-x2-test.c.o' 'tests/handover/63da1a3@@handover at exe/epc-s1-test.c.o' 'tests/handover/63da1a3@@handover at exe/5gc-xn-test.c.o' -Wl,--no-undefined -Wl,--as-needed -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z,relro -Wl,-z,now -Wl,--start-group tests/app/libtestapp.a tests/common/libtestcomon.a lib/core/libogscore.so.2.1.1 lib/app/libogsapp.so.2.1.1 lib/dbi/libogsdbi.so.2.1.1 lib/crypt/libogscrypt.so.2.1.1 lib/sctp/libogssctp.so.2.1.1 lib/gtp/libogsgtp.so.2.1.1 lib/s1ap/libogss1ap.so.2.1.1 lib/asn1c/s1ap/libogsasn1c-s1ap.so.2.1.1 lib/asn1c/common/libogsasn1c-common.so.2.1.1 lib/asn1c/util/libogsasn1c-util.so.2.1.1 lib/ngap/libogsngap.so.2.1.1 lib/asn1c/ngap/libogsasn1c-ngap.so.2.1.1 lib/nas/eps/libogsnas-eps.so.2.1.1 lib/nas/common/libogsnas-common.so.2.1.1 lib/nas/5gs/libogsnas-5gs.so.2.1.1 lib/diameter/rx/libogsdiameter-rx.so.2.1.1 lib/diameter/common/libogsdiameter-common.so.2.1.1 subprojects/freeDiameter/libfdcore/libfdcore.so.1.3.2 subprojects/freeDiameter/libfdproto/libfdproto.so.1.3.2 /usr/lib/i386-linux-gnu/libyaml.so /usr/lib/gcc/i686-linux-gnu/8/../../../i386-linux-gnu/libmongoc-1.0.so /usr/lib/gcc/i686-linux-gnu/8/../../../i386-linux-gnu/libbson-1.0.so -lsctp -lidn -ldl -lsctp -lgcrypt -lgnutls -lsctp -lidn -ldl -lsctp -lgcrypt -lgnutls -lsctp -lidn -ldl -lsctp -lgcrypt -lgnutls -Wl,--end-group -pthread '-Wl,-rpath,$ORIGIN/../app:$ORIGIN/../common:$ORIGIN/../../lib/core:$ORIGIN/../../lib/app:$ORIGIN/../../lib/dbi:$ORIGIN/../../lib/crypt:$ORIGIN/../../lib/sctp:$ORIGIN/../../lib/gtp:$ORIGIN/../../lib/s1ap:$ORIGIN/../../lib/asn1c/s1ap:$ORIGIN/../../lib/asn1c/common:$ORIGIN/../../lib/asn1c/util:$ORIGIN/../../lib/ngap:$ORIGIN/../../lib/asn1c/ngap:$ORIGIN/../../lib/nas/eps:$ORIGIN/../../lib/nas/common:$ORIGIN/../../lib/nas/5gs:$ORIGIN/../../lib/diameter/rx:$ORIGIN/../../lib/diameter/common:$ORIGIN/../../subprojects/freeDiameter/libfdcore:$ORIGIN/../../subprojects/freeDiameter/libfdproto' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-i686-linux-gnu/tests/app:/usr/src/packages/BUILD/obj-i686-linux-gnu/tests/common:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/core:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/app:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/dbi:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/crypt:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/sctp:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/gtp:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/s1ap:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/asn1c/s1ap:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/asn1c/common:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/asn1c/util:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/ngap:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/asn1c/ngap:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/nas/eps:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/nas/common:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/nas/5gs:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/diameter/rx:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/diameter/common:/usr/src/packages/BUILD/obj-i686-linux-gnu/subprojects/freeDiameter/libfdcore:/usr/src/packages/BUILD/obj-i686-linux-gnu/subprojects/freeDiameter/libfdproto [ 346s] debian/rules override_dh_auto_test [ 346s] make[1]: Entering directory '/usr/src/packages/BUILD' [ 346s] cd obj-i686-linux-gnu && meson test --suite unit [ 348s] ninja: Entering directory `/usr/src/packages/BUILD/obj-i686-linux-gnu' [ 348s] ninja: no work to do. [ 355s] 1/3 open5gs:unit / core OK 7.17 s [ 355s] 2/3 open5gs:unit / crypt OK 0.15 s [ 355s] 3/3 open5gs:unit / unit FAIL 0.07 s (exit status 1) [ 355s] [ 355s] Ok: 2 [ 355s] Expected Fail: 0 [ 355s] Fail: 1 [ 355s] Unexpected Pass: 0 [ 355s] Skipped: 0 [ 355s] Timeout: 0 [ 355s] [ 355s] Full log written to /usr/src/packages/BUILD/obj-i686-linux-gnu/meson-logs/testlog.txt [ 355s] make[1]: *** [debian/rules:17: override_dh_auto_test] Error 1 [ 355s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 355s] make: *** [debian/rules:11: binary] Error 2 [ 355s] dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 [ 355s] ### VM INTERACTION START ### [ 358s] [ 341.883899] sysrq: Power Off [ 358s] [ 341.902447] reboot: Power down [ 358s] ### VM INTERACTION END ### [ 358s] [ 358s] cloud111 failed "build open5gs_2.1.1.20210107.dsc" at Thu Jan 7 13:40:07 UTC 2021. [ 358s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Thu Jan 7 13:42:15 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 7 Jan 2021 13:42:15 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: abuse gsm48_encode_ra() to encode TAC In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21949 ) Change subject: gprs_bssgp: abuse gsm48_encode_ra() to encode TAC ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21949 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I986552aa52cf38b1c5290d2e5cd3ff2d1c36a4e5 Gerrit-Change-Number: 21949 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Thu, 07 Jan 2021 13:42:15 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 13:42:31 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 7 Jan 2021 13:42:31 +0000 Subject: Change in libosmocore[master]: bts_features: s/Repeation/Repetition/ in osmo_bts_features_descs[] In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22021 ) Change subject: bts_features: s/Repeation/Repetition/ in osmo_bts_features_descs[] ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22021 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia8c77766842ce80eae969774959cbf46e86f97b9 Gerrit-Change-Number: 22021 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 07 Jan 2021 13:42:31 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 13:45:50 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 7 Jan 2021 13:45:50 +0000 Subject: Change in meta-telephony[201705]: libosmo-netif: Add explicit dependency lksctp-tools In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/meta-telephony/+/22022 ) Change subject: libosmo-netif: Add explicit dependency lksctp-tools ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/meta-telephony/+/22022 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: meta-telephony Gerrit-Branch: 201705 Gerrit-Change-Id: Ib53557f21cad86300738f43b247df1e17166c46f Gerrit-Change-Number: 22022 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 07 Jan 2021 13:45:50 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 13:45:53 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 7 Jan 2021 13:45:53 +0000 Subject: Change in meta-telephony[201705]: libosmo-netif: workaround oe-core forcing fail of sctp.h autoconf check In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/meta-telephony/+/22023 ) Change subject: libosmo-netif: workaround oe-core forcing fail of sctp.h autoconf check ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/meta-telephony/+/22023 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: meta-telephony Gerrit-Branch: 201705 Gerrit-Change-Id: Ide91e96648881a0c6d415d727a14c2ef913fb180 Gerrit-Change-Number: 22023 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 07 Jan 2021 13:45:53 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 13:45:59 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 7 Jan 2021 13:45:59 +0000 Subject: Change in meta-telephony[201705]: osmo-iuh: workaround oe-core forcing fail of sctp.h autoconf check In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/meta-telephony/+/22024 ) Change subject: osmo-iuh: workaround oe-core forcing fail of sctp.h autoconf check ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/meta-telephony/+/22024 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: meta-telephony Gerrit-Branch: 201705 Gerrit-Change-Id: Ic54c50300bcf2cd278db95550d14eef044caea05 Gerrit-Change-Number: 22024 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 07 Jan 2021 13:45:59 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 13:46:04 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 7 Jan 2021 13:46:04 +0000 Subject: Change in meta-telephony[201705]: update all of osmocom to "latest" tags In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/meta-telephony/+/22025 ) Change subject: update all of osmocom to "latest" tags ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/meta-telephony/+/22025 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: meta-telephony Gerrit-Branch: 201705 Gerrit-Change-Id: I743173f8a3385686ffb11550aabc0fbc665cf043 Gerrit-Change-Number: 22025 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 07 Jan 2021 13:46:04 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 13:46:07 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 7 Jan 2021 13:46:07 +0000 Subject: Change in meta-telephony[201705]: libosmo-netif: Add explicit dependency lksctp-tools In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/meta-telephony/+/22022 ) Change subject: libosmo-netif: Add explicit dependency lksctp-tools ...................................................................... libosmo-netif: Add explicit dependency lksctp-tools Since libosmo-netif.git d1b1ff77a6bc2f70366c5d2f5079c70f5eae52a0, use of libsctp is enabled by default and explicitly required. Change-Id: Ib53557f21cad86300738f43b247df1e17166c46f --- M recipes-osmocom/libosmo-netif/libosmo-netif.inc 1 file changed, 9 insertions(+), 4 deletions(-) Approvals: laforge: Looks good to me, approved; Verified diff --git a/recipes-osmocom/libosmo-netif/libosmo-netif.inc b/recipes-osmocom/libosmo-netif/libosmo-netif.inc index a353be6..0a51dfc 100644 --- a/recipes-osmocom/libosmo-netif/libosmo-netif.inc +++ b/recipes-osmocom/libosmo-netif/libosmo-netif.inc @@ -1,10 +1,15 @@ DESCRIPTION = "Osmocom network interface library" -DEPENDS = "libosmo-abis libtalloc lksctp-tools" HOMEPAGE = "http://git.osmocom.org" LICENSE = "GPLv2+" - -INC_PR="r0.${META_TELEPHONY_OSMO_INC}" - LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" +INC_PR="r1.${META_TELEPHONY_OSMO_INC}" + +DEPENDS = "libosmo-abis libtalloc" + +PACKAGECONFIG ??= "\ + libsctp \ + " +PACKAGECONFIG[libsctp] = "--enable-libsctp,--disable-libsctp,lksctp-tools," + inherit autotools pkgconfig -- To view, visit https://gerrit.osmocom.org/c/meta-telephony/+/22022 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: meta-telephony Gerrit-Branch: 201705 Gerrit-Change-Id: Ib53557f21cad86300738f43b247df1e17166c46f Gerrit-Change-Number: 22022 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 13:46:07 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 7 Jan 2021 13:46:07 +0000 Subject: Change in meta-telephony[201705]: libosmo-netif: workaround oe-core forcing fail of sctp.h autoconf check In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/meta-telephony/+/22023 ) Change subject: libosmo-netif: workaround oe-core forcing fail of sctp.h autoconf check ...................................................................... libosmo-netif: workaround oe-core forcing fail of sctp.h autoconf check oe-core is currently (pyro and current master) forcing non-availability of netinet/sctp.h header file through autoconf's export CONFIG_SITE pointing to files in meta/site/, which contain: ac_cv_header_netinet_sctp_h=${ac_cv_header_netinet_sctp_h=no} As a result, netinet/sctp.h is not found despite DEPENDS="lksctp-tools" and the file being available correctly under recipe-sysroot/ and finally configure fails with AC_MSG_ERROR(). It was confirmed by OE devs that those lines should not be there, and a patch has been submitted: https://patchwork.openembedded.org/patch/168892/ Since it's not available in pyro nor latest release, let's workaround it in our recipe to make sure it works with older versions of OE. Change-Id: Ide91e96648881a0c6d415d727a14c2ef913fb180 --- M recipes-osmocom/libosmo-netif/libosmo-netif.inc 1 file changed, 4 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved; Verified diff --git a/recipes-osmocom/libosmo-netif/libosmo-netif.inc b/recipes-osmocom/libosmo-netif/libosmo-netif.inc index 0a51dfc..7098c42 100644 --- a/recipes-osmocom/libosmo-netif/libosmo-netif.inc +++ b/recipes-osmocom/libosmo-netif/libosmo-netif.inc @@ -12,4 +12,8 @@ " PACKAGECONFIG[libsctp] = "--enable-libsctp,--disable-libsctp,lksctp-tools," +# Workaround to oe-core meta/site/* CONFIG_SITE files passed to autoconf forcing unavailability of netinet/sctp.h. +# Patch fixing issue upstream: https://patchwork.openembedded.org/patch/168892/ +CACHED_CONFIGUREVARS += "${@bb.utils.contains('PACKAGECONFIG', 'libsctp', 'ac_cv_header_netinet_sctp_h=yes', '',d)}" + inherit autotools pkgconfig -- To view, visit https://gerrit.osmocom.org/c/meta-telephony/+/22023 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: meta-telephony Gerrit-Branch: 201705 Gerrit-Change-Id: Ide91e96648881a0c6d415d727a14c2ef913fb180 Gerrit-Change-Number: 22023 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 13:46:08 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 7 Jan 2021 13:46:08 +0000 Subject: Change in meta-telephony[201705]: osmo-iuh: workaround oe-core forcing fail of sctp.h autoconf check In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/meta-telephony/+/22024 ) Change subject: osmo-iuh: workaround oe-core forcing fail of sctp.h autoconf check ...................................................................... osmo-iuh: workaround oe-core forcing fail of sctp.h autoconf check oe-core is currently (pyro and current master) forcing non-availability of netinet/sctp.h header file through autoconf's export CONFIG_SITE pointing to files in meta/site/, which contain: ac_cv_header_netinet_sctp_h=${ac_cv_header_netinet_sctp_h=no} As a result, netinet/sctp.h is not found despite DEPENDS="lksctp-tools" and the file being available correctly under recipe-sysroot/ and finally configure fails with AC_MSG_ERROR(). It was confirmed by OE devs that those lines should not be there, and a patch has been submitted: https://patchwork.openembedded.org/patch/168892/ Since it's not available in pyro nor latest release, let's workaround it in our recipe to make sure it works with older versions of OE. Change-Id: Ic54c50300bcf2cd278db95550d14eef044caea05 --- M recipes-osmocom/osmo-iuh/osmo-iuh.inc 1 file changed, 6 insertions(+), 2 deletions(-) Approvals: laforge: Looks good to me, approved; Verified diff --git a/recipes-osmocom/osmo-iuh/osmo-iuh.inc b/recipes-osmocom/osmo-iuh/osmo-iuh.inc index ab412ad..92b4633 100644 --- a/recipes-osmocom/osmo-iuh/osmo-iuh.inc +++ b/recipes-osmocom/osmo-iuh/osmo-iuh.inc @@ -3,9 +3,13 @@ LICENSE = "AGPLv3" LIC_FILES_CHKSUM = "file://COPYING;md5=73f1eb20517c55bf9493b7dd6e480788" -DEPENDS = "libosmocore libosmo-netif libosmo-sccp libasn1c" +DEPENDS = "libosmocore libosmo-netif libosmo-sccp libasn1c lksctp-tools" -INC_PR="r1.${META_TELEPHONY_OSMO_INC}" +INC_PR="r2.${META_TELEPHONY_OSMO_INC}" + +# Workaround to oe-core meta/site/* CONFIG_SITE files passed to autoconf forcing unavailability of netinet/sctp.h. +# Patch fixing issue upstream: https://patchwork.openembedded.org/patch/168892/ +CACHED_CONFIGUREVARS += "ac_cv_header_netinet_sctp_h=yes" inherit autotools pkgconfig systemd -- To view, visit https://gerrit.osmocom.org/c/meta-telephony/+/22024 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: meta-telephony Gerrit-Branch: 201705 Gerrit-Change-Id: Ic54c50300bcf2cd278db95550d14eef044caea05 Gerrit-Change-Number: 22024 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 13:46:08 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 7 Jan 2021 13:46:08 +0000 Subject: Change in meta-telephony[201705]: update all of osmocom to "latest" tags In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/meta-telephony/+/22025 ) Change subject: update all of osmocom to "latest" tags ...................................................................... update all of osmocom to "latest" tags We have to use some arcane construct to make the bitbake fetcher actualyl fetch tags that are not on any branch (like those patch releases that themselves branch off master, but which aren't on master). Otherwise we get errors like: WARNING: osmo-sgsn-1.6.2+gitrAUTOINC+065500a347-r1.18.0 do_fetch: Failed to fetch URL git://git.osmocom.org/osmo-sgsn.git;protocol=git, attempting MIRRORS if available ERROR: osmo-sgsn-1.6.2+gitrAUTOINC+065500a347-r1.18.0 do_fetch: Fetcher failure: Unable to find revision 065500a3471dd43b65dc87b95854c3015c551f0f in branch master even from upstream Change-Id: I743173f8a3385686ffb11550aabc0fbc665cf043 --- M recipes-osmocom/libosmo-abis/libosmo-abis_git.bb M recipes-osmocom/libosmo-netif/libosmo-netif_git.bb M recipes-osmocom/libosmo-sccp/libosmo-sccp_git.bb M recipes-osmocom/libosmocore/libosmocore_git.bb M recipes-osmocom/osmo-bsc/osmo-bsc_git.bb M recipes-osmocom/osmo-ggsn/osmo-ggsn_git.bb M recipes-osmocom/osmo-hlr/osmo-hlr_git.bb M recipes-osmocom/osmo-iuh/osmo-iuh_git.bb M recipes-osmocom/osmo-msc/osmo-msc_git.bb M recipes-osmocom/osmo-sgsn/osmo-sgsn_git.bb M recipes-osmocom/osmo-sip-connector/osmo-sip-connector_git.bb M recipes-osmocom/osmo-sysmon/osmo-sysmon_git.bb 12 files changed, 30 insertions(+), 30 deletions(-) Approvals: laforge: Looks good to me, approved; Verified diff --git a/recipes-osmocom/libosmo-abis/libosmo-abis_git.bb b/recipes-osmocom/libosmo-abis/libosmo-abis_git.bb index 0582599..446a590 100644 --- a/recipes-osmocom/libosmo-abis/libosmo-abis_git.bb +++ b/recipes-osmocom/libosmo-abis/libosmo-abis_git.bb @@ -1,7 +1,7 @@ require ${PN}.inc S = "${WORKDIR}/git" -SRCREV = "c313d44272f04b24dad38f4caea17180f9cbc509" -SRC_URI = "git://git.osmocom.org/libosmo-abis.git;protocol=git" -PV = "0.8.0+gitr${SRCPV}" +SRCREV = "1.0.1" +SRC_URI = "git://git.osmocom.org/libosmo-abis.git;protocol=git;tag=${SRCREV};nobranch=1" +PV = "1.0.1+gitr${SRCPV}" PR = "${INC_PR}.0" diff --git a/recipes-osmocom/libosmo-netif/libosmo-netif_git.bb b/recipes-osmocom/libosmo-netif/libosmo-netif_git.bb index c52c7e9..0f2856e 100644 --- a/recipes-osmocom/libosmo-netif/libosmo-netif_git.bb +++ b/recipes-osmocom/libosmo-netif/libosmo-netif_git.bb @@ -1,7 +1,7 @@ require ${PN}.inc S = "${WORKDIR}/git" -SRCREV = "b8121e79ef53b30df535fb38987b3a48853ebbe9" +SRCREV = "f3ccbecb6f802ccd98d154dc7ba7d552e298b2ea" SRC_URI = "git://git.osmocom.org/libosmo-netif.git;protocol=git" -PV = "0.7.0+gitr${SRCPV}" +PV = "1.0.0+gitr${SRCPV}" PR = "${INC_PR}.0" diff --git a/recipes-osmocom/libosmo-sccp/libosmo-sccp_git.bb b/recipes-osmocom/libosmo-sccp/libosmo-sccp_git.bb index 31fa234..c78477c 100644 --- a/recipes-osmocom/libosmo-sccp/libosmo-sccp_git.bb +++ b/recipes-osmocom/libosmo-sccp/libosmo-sccp_git.bb @@ -1,7 +1,7 @@ require ${PN}.inc S = "${WORKDIR}/git" -SRCREV = "5e4643f4bc76a1437621348550b5b2a603e2179b" +SRCREV = "37880b696ee90dead7e3b1292b109cc041a44e52" SRC_URI = "git://git.osmocom.org/libosmo-sccp.git;protocol=git" -PV = "1.2.0+gitr${SRCPV}" +PV = "1.3.0+gitr${SRCPV}" PR = "${INC_PR}.0" diff --git a/recipes-osmocom/libosmocore/libosmocore_git.bb b/recipes-osmocom/libosmocore/libosmocore_git.bb index d5eab3a..1acf6ac 100644 --- a/recipes-osmocom/libosmocore/libosmocore_git.bb +++ b/recipes-osmocom/libosmocore/libosmocore_git.bb @@ -1,9 +1,9 @@ require ${PN}.inc S = "${WORKDIR}/git" -SRCREV = "2862f9082ed4f16383a134e1112610d76ad91bf0" +SRCREV = "5681a3254c1727d4926ac6d36800fd63d87ad7a2" SRC_URI = "git://git.osmocom.org/libosmocore.git;protocol=git;nobranch=1" -PV = "1.3.0+gitr${SRCPV}" +PV = "1.4.1+gitr${SRCPV}" PR = "${INC_PR}.0" PACKAGES =+ "libosmoctrl libosmocodec libosmogb libosmogsm libosmovty osmo-arfcn osmo-auc-gen osmo-config-merge" diff --git a/recipes-osmocom/osmo-bsc/osmo-bsc_git.bb b/recipes-osmocom/osmo-bsc/osmo-bsc_git.bb index fdb389b..dce2ef1 100644 --- a/recipes-osmocom/osmo-bsc/osmo-bsc_git.bb +++ b/recipes-osmocom/osmo-bsc/osmo-bsc_git.bb @@ -1,7 +1,7 @@ require ${PN}.inc S = "${WORKDIR}/git" -SRCREV = "a1362ce8c20b2fa60e3da67936ea69d406e23aff" -SRC_URI = "git://git.osmocom.org/osmo-bsc.git;protocol=git" -PV = "1.6.0+gitr${SRCPV}" +SRCREV = "1.6.1" +SRC_URI = "git://git.osmocom.org/osmo-bsc.git;protocol=git;tag=${SRCREV};nobranch=1" +PV = "1.6.1+gitr${SRCPV}" PR = "${INC_PR}.0" diff --git a/recipes-osmocom/osmo-ggsn/osmo-ggsn_git.bb b/recipes-osmocom/osmo-ggsn/osmo-ggsn_git.bb index b1b2298..a854384 100644 --- a/recipes-osmocom/osmo-ggsn/osmo-ggsn_git.bb +++ b/recipes-osmocom/osmo-ggsn/osmo-ggsn_git.bb @@ -1,9 +1,9 @@ require ${PN}.inc S = "${WORKDIR}/git" -SRCREV = "e71e0f2af84d8b26f4c09a8c859f86cf701b3357" +SRCREV = "2154607fb06c9e4d1a286f40c756cdb4f792efdf" SRC_URI = "git://git.osmocom.org/osmo-ggsn \ file://libgtp-queue_depth_32.patch \ " -PV = "1.5.0+gitr${SRCPV}" +PV = "1.6.0+gitr${SRCPV}" PR = "${INC_PR}.0" diff --git a/recipes-osmocom/osmo-hlr/osmo-hlr_git.bb b/recipes-osmocom/osmo-hlr/osmo-hlr_git.bb index 90bb611..0676f09 100644 --- a/recipes-osmocom/osmo-hlr/osmo-hlr_git.bb +++ b/recipes-osmocom/osmo-hlr/osmo-hlr_git.bb @@ -1,7 +1,7 @@ require ${PN}.inc S = "${WORKDIR}/git" -SRCREV = "3a66698d87b29e0bf8eb53ca29db7e0f02871abc" -SRC_URI = "git://git.osmocom.org/osmo-hlr.git;protocol=git" -PV = "1.2.0+gitr${SRCPV}" +SRCREV = "1.2.1" +SRC_URI = "git://git.osmocom.org/osmo-hlr.git;protocol=git;tag=${SRCREV};nobranch=1" +PV = "1.2.1+gitr${SRCPV}" PR = "${INC_PR}.0" diff --git a/recipes-osmocom/osmo-iuh/osmo-iuh_git.bb b/recipes-osmocom/osmo-iuh/osmo-iuh_git.bb index 66efd8c..5cd2d3f 100644 --- a/recipes-osmocom/osmo-iuh/osmo-iuh_git.bb +++ b/recipes-osmocom/osmo-iuh/osmo-iuh_git.bb @@ -1,7 +1,7 @@ require ${PN}.inc S = "${WORKDIR}/git" -SRCREV = "67d32a0386b1c0bfb7a12f63b5bb475a08010e80" -SRC_URI = "git://git.osmocom.org/osmo-iuh.git;protocol=git" -PV = "0.6.0+gitr${SRCPV}" +SRCREV = "1.0.0" +SRC_URI = "git://git.osmocom.org/osmo-iuh.git;protocol=git;tag=${SRCREV};nobranch=1" +PV = "1.0.0+gitr${SRCPV}" PR = "${INC_PR}.0" diff --git a/recipes-osmocom/osmo-msc/osmo-msc_git.bb b/recipes-osmocom/osmo-msc/osmo-msc_git.bb index 81bc071..79aa0c3 100644 --- a/recipes-osmocom/osmo-msc/osmo-msc_git.bb +++ b/recipes-osmocom/osmo-msc/osmo-msc_git.bb @@ -1,7 +1,7 @@ require ${PN}.inc S = "${WORKDIR}/git" -SRCREV = "4a5ba81f7d057373ed44ab66169faa1f9d7b46ea" -SRC_URI = "git://git.osmocom.org/osmo-msc.git;protocol=git" -PV = "1.6.1+gitr${SRCPV}" +SRCREV = "1.6.3" +SRC_URI = "git://git.osmocom.org/osmo-msc.git;protocol=git;tag=${SRCREV};nobranch=1" +PV = "1.6.3+gitr${SRCPV}" PR = "${INC_PR}.0" diff --git a/recipes-osmocom/osmo-sgsn/osmo-sgsn_git.bb b/recipes-osmocom/osmo-sgsn/osmo-sgsn_git.bb index f0aa365..d65c5f3 100644 --- a/recipes-osmocom/osmo-sgsn/osmo-sgsn_git.bb +++ b/recipes-osmocom/osmo-sgsn/osmo-sgsn_git.bb @@ -1,7 +1,7 @@ require ${PN}.inc S = "${WORKDIR}/git" -SRCREV = "394aa533e9e3a744dfe10c2cf01898dabb8d6812" -SRC_URI = "git://git.osmocom.org/osmo-sgsn.git;protocol=git" -PV = "1.6.0+gitr${SRCPV}" +SRCREV = "1.6.2" +SRC_URI = "git://git.osmocom.org/osmo-sgsn.git;protocol=git;tag=${SRCREV};nobranch=1" +PV = "1.6.2+gitr${SRCPV}" PR = "${INC_PR}.0" diff --git a/recipes-osmocom/osmo-sip-connector/osmo-sip-connector_git.bb b/recipes-osmocom/osmo-sip-connector/osmo-sip-connector_git.bb index 5d525ae..e847489 100644 --- a/recipes-osmocom/osmo-sip-connector/osmo-sip-connector_git.bb +++ b/recipes-osmocom/osmo-sip-connector/osmo-sip-connector_git.bb @@ -1,7 +1,7 @@ require ${PN}.inc S = "${WORKDIR}/git" -SRCREV = "e58ead7ac4c0e97f82ceef828b8da30f7cb84927" +SRCREV = "79d76480ac0187993c05b2c682e120f6e0e8bbb8" SRC_URI = "git://git.osmocom.org/osmo-sip-connector.git;protocol=git" -PV = "1.4.0+gitr${SRCPV}" +PV = "1.4.1+gitr${SRCPV}" PR = "${INC_PR}.0" diff --git a/recipes-osmocom/osmo-sysmon/osmo-sysmon_git.bb b/recipes-osmocom/osmo-sysmon/osmo-sysmon_git.bb index 32796b3..97122ba 100644 --- a/recipes-osmocom/osmo-sysmon/osmo-sysmon_git.bb +++ b/recipes-osmocom/osmo-sysmon/osmo-sysmon_git.bb @@ -1,7 +1,7 @@ require ${PN}.inc S = "${WORKDIR}/git" -SRCREV = "7648a0eb1824e432075353cde10dffdac1cd295e" +SRCREV = "faea029a466fec48236403aa10d0b1a00f144763" SRC_URI = "git://git.osmocom.org/osmo-sysmon.git;protocol=git" -PV = "0.2.0+gitr${SRCPV}" +PV = "0.3.0+gitr${SRCPV}" PR = "${INC_PR}.0" -- To view, visit https://gerrit.osmocom.org/c/meta-telephony/+/22025 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: meta-telephony Gerrit-Branch: 201705 Gerrit-Change-Id: I743173f8a3385686ffb11550aabc0fbc665cf043 Gerrit-Change-Number: 22025 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 13:46:54 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 7 Jan 2021 13:46:54 +0000 Subject: Change in libosmocore[master]: bts_features: s/Repeation/Repetition/ in osmo_bts_features_descs[] In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22021 ) Change subject: bts_features: s/Repeation/Repetition/ in osmo_bts_features_descs[] ...................................................................... bts_features: s/Repeation/Repetition/ in osmo_bts_features_descs[] Change-Id: Ia8c77766842ce80eae969774959cbf46e86f97b9 --- M src/gsm/bts_features.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/src/gsm/bts_features.c b/src/gsm/bts_features.c index 93703aa..d8c27d8 100644 --- a/src/gsm/bts_features.c +++ b/src/gsm/bts_features.c @@ -41,7 +41,7 @@ { BTS_FEAT_ETWS_PN, "ETWS Primary Notification via PCH" }, { BTS_FEAT_PAGING_COORDINATION, "BSS Paging Coordination" }, { BTS_FEAT_IPV6_NSVC, "NSVC IPv6" }, - { BTS_FEAT_ACCH_REP, "FACCH/SACCH Repeation" }, + { BTS_FEAT_ACCH_REP, "FACCH/SACCH Repetition" }, { 0, NULL } }; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22021 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia8c77766842ce80eae969774959cbf46e86f97b9 Gerrit-Change-Number: 22021 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 13:49:06 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 7 Jan 2021 13:49:06 +0000 Subject: Change in meta-telephony[201705]: osmo-iuh: workaround oe-core forcing fail of sctp.h autoconf check In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/meta-telephony/+/22024 ) Change subject: osmo-iuh: workaround oe-core forcing fail of sctp.h autoconf check ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/meta-telephony/+/22024 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: meta-telephony Gerrit-Branch: 201705 Gerrit-Change-Id: Ic54c50300bcf2cd278db95550d14eef044caea05 Gerrit-Change-Number: 22024 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 07 Jan 2021 13:49:06 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 13:58:14 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Thu, 7 Jan 2021 13:58:14 +0000 Subject: Change in libosmocore[master]: pkgconfig: link to mnl if available References: Message-ID: Hoernchen has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22026 ) Change subject: pkgconfig: link to mnl if available ...................................................................... pkgconfig: link to mnl if available The dependency on mnl breaks builds of osmo-pcu et al if mnl is used for libosmogb, but not linked in for lib users Change-Id: Ib4df95d5c922f8edfa33e68645652fd30d321ff8 --- M libosmogb.pc.in 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/26/22026/1 diff --git a/libosmogb.pc.in b/libosmogb.pc.in index a163cc4..4eebe42 100644 --- a/libosmogb.pc.in +++ b/libosmogb.pc.in @@ -6,6 +6,6 @@ Name: Osmocom GPRS Gb Library Description: Osmocom GPRS Gb Interface (NS/BSSGP) Library Version: @VERSION@ -Libs: -L${libdir} @TALLOC_LIBS@ -losmogb -losmovty -losmocore +Libs: -L${libdir} @TALLOC_LIBS@ -losmogb -losmovty -losmocore @LIBMNL_LIBS@ Cflags: -I${includedir}/ -fno-strict-aliasing -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22026 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ib4df95d5c922f8edfa33e68645652fd30d321ff8 Gerrit-Change-Number: 22026 Gerrit-PatchSet: 1 Gerrit-Owner: Hoernchen Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 13:58:49 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 7 Jan 2021 13:58:49 +0000 Subject: Change in libosmocore[master]: logging: Remove duplicate color for DLSMS References: Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22027 ) Change subject: logging: Remove duplicate color for DLSMS ...................................................................... logging: Remove duplicate color for DLSMS Change-Id: Ia797efce36e0afff74de54374d568521ecedf486 --- M src/logging.c 1 file changed, 0 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/27/22027/1 diff --git a/src/logging.c b/src/logging.c index 01a00da..60dba64 100644 --- a/src/logging.c +++ b/src/logging.c @@ -177,7 +177,6 @@ .name = "DLSMS", .description = "Layer3 Short Message Service (SMS)", .enabled = 1, .loglevel = LOGL_NOTICE, - .color = OSMO_LOGCOLOR_BRIGHTWHITE, .color = "\033[38;5;31m", }, [INT2IDX(DLCTRL)] = { -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22027 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia797efce36e0afff74de54374d568521ecedf486 Gerrit-Change-Number: 22027 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 13:58:50 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 7 Jan 2021 13:58:50 +0000 Subject: Change in libosmocore[master]: ns2_frgre: Fix missing break statement for recv from IPV6 References: Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22028 ) Change subject: ns2_frgre: Fix missing break statement for recv from IPV6 ...................................................................... ns2_frgre: Fix missing break statement for recv from IPV6 Change-Id: I549277483fee55f390e0b5ae1dafec6f2d68eae7 Fixes: CID#215836 --- M src/gb/gprs_ns2_frgre.c 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/28/22028/1 diff --git a/src/gb/gprs_ns2_frgre.c b/src/gb/gprs_ns2_frgre.c index 625d05c..86f0921 100644 --- a/src/gb/gprs_ns2_frgre.c +++ b/src/gb/gprs_ns2_frgre.c @@ -314,6 +314,7 @@ break; case AF_INET6: ip46hdr = sizeof(struct ip6_hdr); + break; default: *error = -EIO; goto out_err; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22028 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I549277483fee55f390e0b5ae1dafec6f2d68eae7 Gerrit-Change-Number: 22028 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 13:58:51 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 7 Jan 2021 13:58:51 +0000 Subject: Change in libosmocore[master]: bssgp_bvc_fsm: Handle block request from application correctly References: Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22029 ) Change subject: bssgp_bvc_fsm: Handle block request from application correctly ...................................................................... bssgp_bvc_fsm: Handle block request from application correctly This is no event from an incoming message so rx is NULL, and we can't send a status PDU. Also blocking the signalling BVC is not allowed (unblocking it is already forbidden). Change-Id: I3e384b71d57e939efc1596ac1d92380ed5eb916d Fixes: CID#215716 --- M src/gb/bssgp_bvc_fsm.c 1 file changed, 4 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/29/22029/1 diff --git a/src/gb/bssgp_bvc_fsm.c b/src/gb/bssgp_bvc_fsm.c index cc634a5..6de0028 100644 --- a/src/gb/bssgp_bvc_fsm.c +++ b/src/gb/bssgp_bvc_fsm.c @@ -456,7 +456,10 @@ case BSSGP_BVCFSM_E_REQ_BLOCK: if (bfp->role_sgsn) { LOGPFSML(fi, LOGL_ERROR, "SGSN may not initiate BVC-BLOCK\n"); - _tx_status(fi, BSSGP_CAUSE_SEM_INCORR_PDU, rx); + break; + } + if (bfp->bvci == 0) { + LOGPFSML(fi, LOGL_ERROR, "BVCI 0 cannot be blocked\n"); break; } bfp->locally_blocked = true; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22029 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I3e384b71d57e939efc1596ac1d92380ed5eb916d Gerrit-Change-Number: 22029 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 13:59:32 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 7 Jan 2021 13:59:32 +0000 Subject: Change in libosmocore[master]: ns2_frgre: Fix missing break statement for recv from IPV6 In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22028 ) Change subject: ns2_frgre: Fix missing break statement for recv from IPV6 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22028 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I549277483fee55f390e0b5ae1dafec6f2d68eae7 Gerrit-Change-Number: 22028 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Thu, 07 Jan 2021 13:59:32 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 14:00:38 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 7 Jan 2021 14:00:38 +0000 Subject: Change in libosmocore[master]: pkgconfig: link to mnl if available In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22026 ) Change subject: pkgconfig: link to mnl if available ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22026 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ib4df95d5c922f8edfa33e68645652fd30d321ff8 Gerrit-Change-Number: 22026 Gerrit-PatchSet: 1 Gerrit-Owner: Hoernchen Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Thu, 07 Jan 2021 14:00:38 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 14:01:17 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 7 Jan 2021 14:01:17 +0000 Subject: Change in libosmocore[master]: logging: Remove duplicate color for DLSMS In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22027 ) Change subject: logging: Remove duplicate color for DLSMS ...................................................................... Patch Set 1: Code-Review+1 Would maybe make sense remove the non-defined string. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22027 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia797efce36e0afff74de54374d568521ecedf486 Gerrit-Change-Number: 22027 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Thu, 07 Jan 2021 14:01:17 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 14:02:18 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 7 Jan 2021 14:02:18 +0000 Subject: Change in libosmocore[master]: bssgp_bvc_fsm: Handle block request from application correctly In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22029 ) Change subject: bssgp_bvc_fsm: Handle block request from application correctly ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22029 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I3e384b71d57e939efc1596ac1d92380ed5eb916d Gerrit-Change-Number: 22029 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Thu, 07 Jan 2021 14:02:18 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 14:05:41 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 7 Jan 2021 14:05:41 +0000 Subject: Change in osmo-ttcn3-hacks[master]: CTRL: Fix tr_CtrlMsgGet containing invalid value in val field In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22011 ) Change subject: CTRL: Fix tr_CtrlMsgGet containing invalid value in val field ...................................................................... CTRL: Fix tr_CtrlMsgGet containing invalid value in val field "val" field is not used in GET commands and is hence set to omit by TTCN3 decoder. Change-Id: If1a273a2be71040eaea2189a0aeaf737adf848e5 --- M library/Osmocom_CTRL_Types.ttcn 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved fixeria: Looks good to me, approved diff --git a/library/Osmocom_CTRL_Types.ttcn b/library/Osmocom_CTRL_Types.ttcn index 52be956..36e6762 100644 --- a/library/Osmocom_CTRL_Types.ttcn +++ b/library/Osmocom_CTRL_Types.ttcn @@ -124,7 +124,7 @@ verb := "GET", id := id, variable := variable, - val := ? + val := omit } } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22011 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If1a273a2be71040eaea2189a0aeaf737adf848e5 Gerrit-Change-Number: 22011 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 14:07:58 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 7 Jan 2021 14:07:58 +0000 Subject: Change in osmo-ttcn3-hacks[master]: CTRL: Introduce support to run osmocom CTRL server In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, fixeria, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22012 to look at the new patch set (#2). Change subject: CTRL: Introduce support to run osmocom CTRL server ...................................................................... CTRL: Introduce support to run osmocom CTRL server Change-Id: I37db9962f51baf2c63bd58ec47ec89f773d7a255 --- M bsc-nat/BSCNAT_Tests.ttcn M bsc/BSC_Tests.ttcn M bts/BTS_Tests.ttcn M hlr/HLR_Tests.ttcn M library/Osmocom_CTRL_Adapter.ttcn M library/Osmocom_CTRL_Functions.ttcn M msc/BSC_ConnectionHandler.ttcn M msc/MSC_Tests.ttcn M sip/SIP_Tests.ttcn 9 files changed, 60 insertions(+), 22 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/12/22012/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22012 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I37db9962f51baf2c63bd58ec47ec89f773d7a255 Gerrit-Change-Number: 22012 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 14:18:05 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 7 Jan 2021 14:18:05 +0000 Subject: Change in libosmocore[master]: Intoduce Packet Switch CGI In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22013 ) Change subject: Intoduce Packet Switch CGI ...................................................................... Patch Set 2: This change is ready for review. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22013 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If48f412c32e8e5a3e604a78d12b74787a4786374 Gerrit-Change-Number: 22013 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Thu, 07 Jan 2021 14:18:05 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 14:19:46 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 7 Jan 2021 14:19:46 +0000 Subject: Change in libosmocore[master]: bssgp_rim: add encoder/decoder for NACC related RIM containers In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21862 ) Change subject: bssgp_rim: add encoder/decoder for NACC related RIM containers ...................................................................... Patch Set 6: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/21862/6/include/osmocom/gprs/gprs_bssgp_rim.h File include/osmocom/gprs/gprs_bssgp_rim.h: https://gerrit.osmocom.org/c/libosmocore/+/21862/6/include/osmocom/gprs/gprs_bssgp_rim.h at 7 PS6, Line 7: struct { You could reuse "struct osmo_cell_global_id_ps" from https://gerrit.osmocom.org/c/libosmocore/+/22013 here. In any case, you ruse this struct in at least 2 places, so better move its definition outside and reuse it. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21862 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ibbc7fd67658e3040c12abb5706fe9d1f31894352 Gerrit-Change-Number: 21862 Gerrit-PatchSet: 6 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 07 Jan 2021 14:19:46 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 14:20:05 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 7 Jan 2021 14:20:05 +0000 Subject: Change in libosmocore[master]: pkgconfig: link to mnl if available In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22026 ) Change subject: pkgconfig: link to mnl if available ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22026 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ib4df95d5c922f8edfa33e68645652fd30d321ff8 Gerrit-Change-Number: 22026 Gerrit-PatchSet: 1 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 07 Jan 2021 14:20:05 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 14:28:40 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Thu, 7 Jan 2021 14:28:40 +0000 Subject: Change in libosmocore[master]: pkgconfig: link to mnl if available In-Reply-To: References: Message-ID: Hoernchen has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22026 ) Change subject: pkgconfig: link to mnl if available ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22026 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ib4df95d5c922f8edfa33e68645652fd30d321ff8 Gerrit-Change-Number: 22026 Gerrit-PatchSet: 1 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 07 Jan 2021 14:28:40 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 14:28:42 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Thu, 7 Jan 2021 14:28:42 +0000 Subject: Change in libosmocore[master]: pkgconfig: link to mnl if available In-Reply-To: References: Message-ID: Hoernchen has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22026 ) Change subject: pkgconfig: link to mnl if available ...................................................................... pkgconfig: link to mnl if available The dependency on mnl breaks builds of osmo-pcu et al if mnl is used for libosmogb, but not linked in for lib users Change-Id: Ib4df95d5c922f8edfa33e68645652fd30d321ff8 --- M libosmogb.pc.in 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: fixeria: Looks good to me, but someone else must approve pespin: Looks good to me, but someone else must approve Hoernchen: Looks good to me, approved Jenkins Builder: Verified diff --git a/libosmogb.pc.in b/libosmogb.pc.in index a163cc4..4eebe42 100644 --- a/libosmogb.pc.in +++ b/libosmogb.pc.in @@ -6,6 +6,6 @@ Name: Osmocom GPRS Gb Library Description: Osmocom GPRS Gb Interface (NS/BSSGP) Library Version: @VERSION@ -Libs: -L${libdir} @TALLOC_LIBS@ -losmogb -losmovty -losmocore +Libs: -L${libdir} @TALLOC_LIBS@ -losmogb -losmovty -losmocore @LIBMNL_LIBS@ Cflags: -I${includedir}/ -fno-strict-aliasing -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22026 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ib4df95d5c922f8edfa33e68645652fd30d321ff8 Gerrit-Change-Number: 22026 Gerrit-PatchSet: 2 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 14:29:05 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 7 Jan 2021 14:29:05 +0000 Subject: Change in meta-telephony[laforge/nightly]: osmo-iuh: workaround oe-core forcing fail of sctp.h autoconf check References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/meta-telephony/+/22030 ) Change subject: osmo-iuh: workaround oe-core forcing fail of sctp.h autoconf check ...................................................................... osmo-iuh: workaround oe-core forcing fail of sctp.h autoconf check oe-core is currently (pyro and current master) forcing non-availability of netinet/sctp.h header file through autoconf's export CONFIG_SITE pointing to files in meta/site/, which contain: ac_cv_header_netinet_sctp_h=${ac_cv_header_netinet_sctp_h=no} As a result, netinet/sctp.h is not found despite DEPENDS="lksctp-tools" and the file being available correctly under recipe-sysroot/ and finally configure fails with AC_MSG_ERROR(). It was confirmed by OE devs that those lines should not be there, and a patch has been submitted: https://patchwork.openembedded.org/patch/168892/ Since it's not available in pyro nor latest release, let's workaround it in our recipe to make sure it works with older versions of OE. Change-Id: Ic54c50300bcf2cd278db95550d14eef044caea05 --- M recipes-osmocom/osmo-iuh/osmo-iuh.inc 1 file changed, 6 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/meta-telephony refs/changes/30/22030/1 diff --git a/recipes-osmocom/osmo-iuh/osmo-iuh.inc b/recipes-osmocom/osmo-iuh/osmo-iuh.inc index ab412ad..92b4633 100644 --- a/recipes-osmocom/osmo-iuh/osmo-iuh.inc +++ b/recipes-osmocom/osmo-iuh/osmo-iuh.inc @@ -3,9 +3,13 @@ LICENSE = "AGPLv3" LIC_FILES_CHKSUM = "file://COPYING;md5=73f1eb20517c55bf9493b7dd6e480788" -DEPENDS = "libosmocore libosmo-netif libosmo-sccp libasn1c" +DEPENDS = "libosmocore libosmo-netif libosmo-sccp libasn1c lksctp-tools" -INC_PR="r1.${META_TELEPHONY_OSMO_INC}" +INC_PR="r2.${META_TELEPHONY_OSMO_INC}" + +# Workaround to oe-core meta/site/* CONFIG_SITE files passed to autoconf forcing unavailability of netinet/sctp.h. +# Patch fixing issue upstream: https://patchwork.openembedded.org/patch/168892/ +CACHED_CONFIGUREVARS += "ac_cv_header_netinet_sctp_h=yes" inherit autotools pkgconfig systemd -- To view, visit https://gerrit.osmocom.org/c/meta-telephony/+/22030 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: meta-telephony Gerrit-Branch: laforge/nightly Gerrit-Change-Id: Ic54c50300bcf2cd278db95550d14eef044caea05 Gerrit-Change-Number: 22030 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 14:32:39 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 7 Jan 2021 14:32:39 +0000 Subject: Change in meta-telephony[laforge/nightly]: osmo-iuh: workaround oe-core forcing fail of sctp.h autoconf check In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/meta-telephony/+/22030 ) Change subject: osmo-iuh: workaround oe-core forcing fail of sctp.h autoconf check ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/meta-telephony/+/22030 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: meta-telephony Gerrit-Branch: laforge/nightly Gerrit-Change-Id: Ic54c50300bcf2cd278db95550d14eef044caea05 Gerrit-Change-Number: 22030 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 07 Jan 2021 14:32:39 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 14:32:41 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 7 Jan 2021 14:32:41 +0000 Subject: Change in meta-telephony[laforge/nightly]: osmo-iuh: workaround oe-core forcing fail of sctp.h autoconf check In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/meta-telephony/+/22030 ) Change subject: osmo-iuh: workaround oe-core forcing fail of sctp.h autoconf check ...................................................................... osmo-iuh: workaround oe-core forcing fail of sctp.h autoconf check oe-core is currently (pyro and current master) forcing non-availability of netinet/sctp.h header file through autoconf's export CONFIG_SITE pointing to files in meta/site/, which contain: ac_cv_header_netinet_sctp_h=${ac_cv_header_netinet_sctp_h=no} As a result, netinet/sctp.h is not found despite DEPENDS="lksctp-tools" and the file being available correctly under recipe-sysroot/ and finally configure fails with AC_MSG_ERROR(). It was confirmed by OE devs that those lines should not be there, and a patch has been submitted: https://patchwork.openembedded.org/patch/168892/ Since it's not available in pyro nor latest release, let's workaround it in our recipe to make sure it works with older versions of OE. Change-Id: Ic54c50300bcf2cd278db95550d14eef044caea05 --- M recipes-osmocom/osmo-iuh/osmo-iuh.inc 1 file changed, 6 insertions(+), 2 deletions(-) Approvals: laforge: Looks good to me, approved; Verified diff --git a/recipes-osmocom/osmo-iuh/osmo-iuh.inc b/recipes-osmocom/osmo-iuh/osmo-iuh.inc index ab412ad..92b4633 100644 --- a/recipes-osmocom/osmo-iuh/osmo-iuh.inc +++ b/recipes-osmocom/osmo-iuh/osmo-iuh.inc @@ -3,9 +3,13 @@ LICENSE = "AGPLv3" LIC_FILES_CHKSUM = "file://COPYING;md5=73f1eb20517c55bf9493b7dd6e480788" -DEPENDS = "libosmocore libosmo-netif libosmo-sccp libasn1c" +DEPENDS = "libosmocore libosmo-netif libosmo-sccp libasn1c lksctp-tools" -INC_PR="r1.${META_TELEPHONY_OSMO_INC}" +INC_PR="r2.${META_TELEPHONY_OSMO_INC}" + +# Workaround to oe-core meta/site/* CONFIG_SITE files passed to autoconf forcing unavailability of netinet/sctp.h. +# Patch fixing issue upstream: https://patchwork.openembedded.org/patch/168892/ +CACHED_CONFIGUREVARS += "ac_cv_header_netinet_sctp_h=yes" inherit autotools pkgconfig systemd -- To view, visit https://gerrit.osmocom.org/c/meta-telephony/+/22030 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: meta-telephony Gerrit-Branch: laforge/nightly Gerrit-Change-Id: Ic54c50300bcf2cd278db95550d14eef044caea05 Gerrit-Change-Number: 22030 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 15:07:35 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 7 Jan 2021 15:07:35 +0000 Subject: Change in libosmocore[master]: WIP: Intoduce Packet Switch CGI In-Reply-To: References: Message-ID: pespin has abandoned this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21849 ) Change subject: WIP: Intoduce Packet Switch CGI ...................................................................... Abandoned -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21849 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I87016d1c23f893cbb7dad2e6ff74566ad8a06b5c Gerrit-Change-Number: 21849 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: abandon -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Thu Jan 7 15:33:58 2021 From: admin at opensuse.org (OBS Notification) Date: Thu, 07 Jan 2021 15:33:58 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <5ff729f0e7c96_35dd2aba60cf45f03086a4@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/xUbuntu_20.04/x86_64 Package network:osmocom:nightly/simtrace2 failed to build in xUbuntu_20.04/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 118s] [COMPILING libboard/qmod/source/wwan_perst.c] [ 119s] [COMPILING libboard/qmod/source/card_pres.c] [ 119s] [COMPILING libboard/qmod/source/wwan_led.c] [ 119s] [COMPILING libboard/qmod/source/i2c.c] [ 119s] [COMPILING libboard/qmod/source/board_qmod.c] [ 119s] [COMPILING apps/dfu/main.c] [ 119s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 119s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 119s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 120s] Memory region Used Size Region Size %age Used [ 120s] rom: 16588 B 16 KB 101.25% [ 120s] ram: 11672 B 48 KB 23.75/usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 120s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 204 bytes [ 120s] collect2: error: ld returned 1 exit status [ 120s] % [ 120s] make[2]: *** [Makefile:234: flash] Error 1 [ 120s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 120s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 120s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 120s] dh_auto_build: error: make -j1 returned exit code 2 [ 120s] make: *** [debian/rules:16: build] Error 25 [ 120s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 120s] ### VM INTERACTION START ### [ 123s] [ 114.582452] sysrq: Power Off [ 123s] [ 114.589445] reboot: Power down [ 123s] ### VM INTERACTION END ### [ 123s] [ 123s] goat01 failed "build simtrace2_0.7.0.69.aadd.dsc" at Thu Jan 7 15:33:53 UTC 2021. [ 123s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Jan 7 15:43:41 2021 From: admin at opensuse.org (OBS Notification) Date: Thu, 07 Jan 2021 15:43:41 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.10/x86_64 In-Reply-To: References: Message-ID: <5ff72c4ba6634_35dd2aba60cf45f031392b@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/xUbuntu_20.10/x86_64 Package network:osmocom:nightly/simtrace2 failed to build in xUbuntu_20.10/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 184s] [COMPILING apps/dfu/main.c] [ 185s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 185s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 185s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 185s] Memory region Used Size Region Size %age Used [ 185s] rom: 16580 B 16 KB 101.20% [ 185s] ram: 11672 B 48 KB 23.75/usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 185s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 185s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 185s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 185s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 185s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 185s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 196 bytes [ 185s] collect2: error: ld returned 1 exit status [ 185s] % [ 185s] make[2]: *** [Makefile:234: flash] Error 1 [ 185s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 185s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 185s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 185s] dh_auto_build: error: make -j1 returned exit code 2 [ 185s] make: *** [debian/rules:16: build] Error 25 [ 185s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 185s] ### VM INTERACTION START ### [ 188s] [ 175.687654] sysrq: Power Off [ 188s] [ 175.698840] reboot: Power down [ 188s] ### VM INTERACTION END ### [ 188s] [ 188s] lamb24 failed "build simtrace2_0.7.0.69.aadd.dsc" at Thu Jan 7 15:43:25 UTC 2021. [ 188s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Thu Jan 7 16:38:09 2021 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Thu, 7 Jan 2021 16:38:09 +0000 Subject: Change in osmo-gsm-tester[master]: jenkins-build-srslte.sh: allow custom binaries References: Message-ID: srs_andre has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22031 ) Change subject: jenkins-build-srslte.sh: allow custom binaries ...................................................................... jenkins-build-srslte.sh: allow custom binaries this allows to specify the environmental var wanted_binaries_bin that will be included in the trial package. if the variable isn't set, all three main srsLTE binaries are included Change-Id: I63f5799328435ce32b5bfd6dae6fd0b37e1e5397 --- M contrib/jenkins-build-srslte.sh 1 file changed, 5 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/31/22031/1 diff --git a/contrib/jenkins-build-srslte.sh b/contrib/jenkins-build-srslte.sh index 80e4ffc..365c3e4 100755 --- a/contrib/jenkins-build-srslte.sh +++ b/contrib/jenkins-build-srslte.sh @@ -1,6 +1,10 @@ #!/bin/sh set -e -x +if [ -z "$trial_binaries" ]; then + trial_binaries="srsue srsenb srsepc" +fi + base="$PWD" name="srslte" git_url="${git_url:-https://github.com/srsLTE}" @@ -10,4 +14,4 @@ #TODO: make sure libconfig, zeroMQ is installed build_repo $project_name $configure_opts -create_bin_tgz "srsue srsenb srsepc" +create_bin_tgz "$trial_binaries" -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22031 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-Change-Id: I63f5799328435ce32b5bfd6dae6fd0b37e1e5397 Gerrit-Change-Number: 22031 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 16:38:10 2021 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Thu, 7 Jan 2021 16:38:10 +0000 Subject: Change in osmo-gsm-tester[master]: srsenb_drb.conf.tmpl: add QCI1 DRB config References: Message-ID: srs_andre has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22032 ) Change subject: srsenb_drb.conf.tmpl: add QCI1 DRB config ...................................................................... srsenb_drb.conf.tmpl: add QCI1 DRB config use default QCI1 config for real-time voice traffic Change-Id: I43f408b1a3c172a5eb8327f03df49801e063e5cd --- M src/osmo_gsm_tester/templates/srsenb_drb.conf.tmpl 1 file changed, 23 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/32/22032/1 diff --git a/src/osmo_gsm_tester/templates/srsenb_drb.conf.tmpl b/src/osmo_gsm_tester/templates/srsenb_drb.conf.tmpl index 5167dab..b10ef31 100644 --- a/src/osmo_gsm_tester/templates/srsenb_drb.conf.tmpl +++ b/src/osmo_gsm_tester/templates/srsenb_drb.conf.tmpl @@ -1,7 +1,29 @@ // All times are in ms. Use -1 for infinity, where available qci_config = ( - +// UM - real time (RTP for VOIP) +{ + qci=1; + pdcp_config = { + discard_timer = 100; + pdcp_sn_size = 12; + } + rlc_config = { + ul_um = { + sn_field_length = 5; + }; + dl_um = { + sn_field_length = 5; + t_reordering = 45; + }; + }; + logical_channel_config = { + priority = 4; + prioritized_bit_rate = 256; + bucket_size_duration = 1000; + log_chan_group = 1; + }; +}, { qci=7; pdcp_config = { -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22032 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-Change-Id: I43f408b1a3c172a5eb8327f03df49801e063e5cd Gerrit-Change-Number: 22032 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 16:38:10 2021 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Thu, 7 Jan 2021 16:38:10 +0000 Subject: Change in osmo-gsm-tester[master]: enb: include name label and run_addr in enb remote path References: Message-ID: srs_andre has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22033 ) Change subject: enb: include name label and run_addr in enb remote path ...................................................................... enb: include name label and run_addr in enb remote path this allows to quickly identify the enb host in the logs Change-Id: I9c979de852a23041e43692e97ebcbfb389b52fdb --- M src/osmo_gsm_tester/obj/enb.py 1 file changed, 4 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/33/22033/1 diff --git a/src/osmo_gsm_tester/obj/enb.py b/src/osmo_gsm_tester/obj/enb.py index cdf9505..3944459 100644 --- a/src/osmo_gsm_tester/obj/enb.py +++ b/src/osmo_gsm_tester/obj/enb.py @@ -89,7 +89,10 @@ if self._gtp_bind_addr is None: self._gtp_bind_addr = self._run_node.run_addr() label = conf.get('label', None) - self.set_name('%s_%s' % (name, label if label is not None else self._run_node.run_addr())) + if label is not None: + self.set_name('%s_%s_%s' % (name, label, self._run_node.run_addr())) + else: + self.set_name('%s_%s' % (name, self._run_node.run_addr())) self._txmode = 0 self._id = None self._duplex = None -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22033 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-Change-Id: I9c979de852a23041e43692e97ebcbfb389b52fdb Gerrit-Change-Number: 22033 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 16:38:10 2021 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Thu, 7 Jan 2021 16:38:10 +0000 Subject: Change in osmo-gsm-tester[master]: srsue.conf.tmpl: reorder conditions for setting RRC release References: Message-ID: srs_andre has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22034 ) Change subject: srsue.conf.tmpl: reorder conditions for setting RRC release ...................................................................... srsue.conf.tmpl: reorder conditions for setting RRC release the order of checks needs to go from high to low, i.e. the higher release feature (e.g. qam256) needs to be checked and set first. in theory it should also be possible to have a CA-capable UE that does not support QAM256, but for srsUE we announce both anyway. Change-Id: I2fa49f0cb5d80db412a811ceeb380359c8ad67a7 --- M src/osmo_gsm_tester/templates/srsue.conf.tmpl 1 file changed, 4 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/34/22034/1 diff --git a/src/osmo_gsm_tester/templates/srsue.conf.tmpl b/src/osmo_gsm_tester/templates/srsue.conf.tmpl index 120b938..a57857b 100644 --- a/src/osmo_gsm_tester/templates/srsue.conf.tmpl +++ b/src/osmo_gsm_tester/templates/srsue.conf.tmpl @@ -147,14 +147,14 @@ # mbms_service_port: Port of the MBMS service ##################################################################### [rrc] -% if int(ue.num_carriers) > 1: -ue_category = 7 -release = 10 -% elif "dl_qam256" in ue.features or "ul_qam64" in ue.features: +% if "dl_qam256" in ue.features or "ul_qam64" in ue.features: ue_category = 8 release = 13 ue_category_dl = 14 ue_category_ul = 5 +% elif int(ue.num_carriers) > 1: +ue_category = 7 +release = 10 % else: #ue_category = 4 #release = 8 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22034 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-Change-Id: I2fa49f0cb5d80db412a811ceeb380359c8ad67a7 Gerrit-Change-Number: 22034 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 16:38:11 2021 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Thu, 7 Jan 2021 16:38:11 +0000 Subject: Change in osmo-gsm-tester[master]: intraenb-intrafreq-ho.conf: add eNB to cell config References: Message-ID: srs_andre has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22035 ) Change subject: intraenb-intrafreq-ho.conf: add eNB to cell config ...................................................................... intraenb-intrafreq-ho.conf: add eNB to cell config make sure to have the right eNB that matches the cells neighbor ECIDs, otherwise the eNB may trigger a S1 HO if the eNB ID is set elsewhere Change-Id: Id494ac1984846e78a6456bb6a17e72d63c9dacf5 --- M sysmocom/scenarios/mod-enb-cells-intraenb-intrafreq-ho.conf 1 file changed, 3 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/35/22035/1 diff --git a/sysmocom/scenarios/mod-enb-cells-intraenb-intrafreq-ho.conf b/sysmocom/scenarios/mod-enb-cells-intraenb-intrafreq-ho.conf index 8b6f569..f4223a5 100644 --- a/sysmocom/scenarios/mod-enb-cells-intraenb-intrafreq-ho.conf +++ b/sysmocom/scenarios/mod-enb-cells-intraenb-intrafreq-ho.conf @@ -1,7 +1,9 @@ # Cell config for Intra eNB HO, two cells on same frequencey (same EARFCN) on different RF ports (srsENB) modifiers: enb: - - cell_list: + - id: 0x19B + enable_measurements: true + cell_list: - cell_id: 0x01 pci: 0x01 tac: 0x0007 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22035 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-Change-Id: Id494ac1984846e78a6456bb6a17e72d63c9dacf5 Gerrit-Change-Number: 22035 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 16:38:12 2021 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Thu, 7 Jan 2021 16:38:12 +0000 Subject: Change in osmo-gsm-tester[master]: srsue.conf.tmpl: disable TTI stats for ZMQ References: Message-ID: srs_andre has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22036 ) Change subject: srsue.conf.tmpl: disable TTI stats for ZMQ ...................................................................... srsue.conf.tmpl: disable TTI stats for ZMQ since ZMQ runs are not using wall clock anyway, measuring TTI execution isn't useful, disable it therefore to avoid misleading warnings. Change-Id: I5c2cb0abcfce0ee67806f6611356f4d5d180541d --- M src/osmo_gsm_tester/templates/srsue.conf.tmpl 1 file changed, 5 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/36/22036/1 diff --git a/src/osmo_gsm_tester/templates/srsue.conf.tmpl b/src/osmo_gsm_tester/templates/srsue.conf.tmpl index a57857b..a50f91e 100644 --- a/src/osmo_gsm_tester/templates/srsue.conf.tmpl +++ b/src/osmo_gsm_tester/templates/srsue.conf.tmpl @@ -381,3 +381,8 @@ metrics_csv_enable = true #metrics_period_secs = 1 metrics_csv_filename = ${ue.metrics_filename} + +% if ue.rf_dev_type == 'zmq': +[stack] +have_tti_time_stats = false +% endif -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22036 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-Change-Id: I5c2cb0abcfce0ee67806f6611356f4d5d180541d Gerrit-Change-Number: 22036 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 16:38:13 2021 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Thu, 7 Jan 2021 16:38:13 +0000 Subject: Change in osmo-gsm-tester[master]: iperf3: return 0 if iperf results can't be read back References: Message-ID: srs_andre has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22037 ) Change subject: iperf3: return 0 if iperf results can't be read back ...................................................................... iperf3: return 0 if iperf results can't be read back usually the calling code, i.e. the test, will use the result of the iperf run to check against a threshold. for that to work the return value can't be None. Change-Id: I5a8fe32f0a2bb676dbb80dad500bc6c63c176485 --- M src/osmo_gsm_tester/obj/iperf3.py 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/37/22037/1 diff --git a/src/osmo_gsm_tester/obj/iperf3.py b/src/osmo_gsm_tester/obj/iperf3.py index 4785f78..6571491 100644 --- a/src/osmo_gsm_tester/obj/iperf3.py +++ b/src/osmo_gsm_tester/obj/iperf3.py @@ -76,7 +76,7 @@ return recv['bits_per_second']/1e6 except Exception as e: print("Exception while using iperf3 results: %r" % (repr(result))) - pass + return 0 class IPerf3Server(log.Origin): -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22037 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-Change-Id: I5a8fe32f0a2bb676dbb80dad500bc6c63c176485 Gerrit-Change-Number: 22037 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 16:38:13 2021 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Thu, 7 Jan 2021 16:38:13 +0000 Subject: Change in osmo-gsm-tester[master]: enb_srs: only use QAM64 tables if both UE and eNB are configured for ... References: Message-ID: srs_andre has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22038 ) Change subject: enb_srs: only use QAM64 tables if both UE and eNB are configured for QAM64 ...................................................................... enb_srs: only use QAM64 tables if both UE and eNB are configured for QAM64 this was causing failed tests because to achieve QAM64 rates both eNB and UE need to support it and have it activated. Change-Id: I599df92d69eeb56a5d44327de08f004222cff073 --- M src/osmo_gsm_tester/obj/enb_srs.py 1 file changed, 5 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/38/22038/1 diff --git a/src/osmo_gsm_tester/obj/enb_srs.py b/src/osmo_gsm_tester/obj/enb_srs.py index 7fde719..1b17c3c 100644 --- a/src/osmo_gsm_tester/obj/enb_srs.py +++ b/src/osmo_gsm_tester/obj/enb_srs.py @@ -72,6 +72,7 @@ self.remote_log_file = None self.remote_pcap_file = None self.enable_pcap = False + self.enable_ul_qam64 = False self.metrics_file = None self.stop_sleep_time = 6 # We require at most 5s to stop self.testenv = testenv @@ -192,7 +193,9 @@ self.enable_pcap = util.str2bool(values['enb'].get('enable_pcap', 'false')) config.overlay(values, dict(enb={'enable_pcap': self.enable_pcap})) - config.overlay(values, dict(enb={'enable_ul_qam64': util.str2bool(values['enb'].get('enable_ul_qam64', 'false'))})) + self.enable_ul_qam64 = util.str2bool(values['enb'].get('enable_ul_qam64', 'false')) + config.overlay(values, dict(enb={'enable_ul_qam64': self.enable_ul_qam64})) + config.overlay(values, dict(enb={'enable_dl_awgn': util.str2bool(values['enb'].get('enable_dl_awgn', 'false'))})) config.overlay(values, dict(enb={'rf_dev_sync': values['enb'].get('rf_dev_sync', None)})) @@ -287,7 +290,7 @@ 75: 55e6, 100: 75e6} - if 'ul_qam64' in self.ue.features(): + if self.enable_ul_qam64 and 'ul_qam64' in self.ue.features(): max_phy_rate_tm1_ul = { 6 : 2.7e6, 15 : 6.5e6, 25 : 14e6, -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22038 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-Change-Id: I599df92d69eeb56a5d44327de08f004222cff073 Gerrit-Change-Number: 22038 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 16:38:13 2021 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Thu, 7 Jan 2021 16:38:13 +0000 Subject: Change in osmo-gsm-tester[master]: enb_srs: adopt throughput thresholds for QAM256 References: Message-ID: srs_andre has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22039 ) Change subject: enb_srs: adopt throughput thresholds for QAM256 ...................................................................... enb_srs: adopt throughput thresholds for QAM256 it turned out that we have to reduce the MCS when using QAM256, especially for 6 PRB as subframe 0 and 5 contains PBCH and PSS signals, so the available REs are reduced. The eNB scheduler now has this limitation in mind and lowers the MCS. Change-Id: I0e38fe28002fd68c768cc8dcffcf74f4f190df02 --- M src/osmo_gsm_tester/obj/enb_srs.py 1 file changed, 8 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/39/22039/1 diff --git a/src/osmo_gsm_tester/obj/enb_srs.py b/src/osmo_gsm_tester/obj/enb_srs.py index 1b17c3c..6afc873 100644 --- a/src/osmo_gsm_tester/obj/enb_srs.py +++ b/src/osmo_gsm_tester/obj/enb_srs.py @@ -276,14 +276,14 @@ def ue_max_rate(self, downlink=True, num_carriers=1): # The max rate for a single UE per PRB configuration in TM1 with MCS 28 if 'dl_qam256' in self.ue.features(): - max_phy_rate_tm1_dl = {6: 5.9e6, - 15: 14.6e6, - 25: 24.5e6, - 50: 48.9e6, - 75: 75.3e6, - 100: 97.8e6} + max_phy_rate_tm1_dl = {6: 4.4e6, + 15: 14e6, + 25: 24e6, + 50: 49e6, + 75: 75e6, + 100: 98e6} else: - max_phy_rate_tm1_dl = {6: 3.5e6, + max_phy_rate_tm1_dl = {6: 3.3e6, 15: 11e6, 25: 18e6, 50: 36e6, @@ -296,7 +296,7 @@ 25 : 14e6, 50 : 32e6, 75 : 34e6, - 100 : 70e6 } + 100 : 71e6 } else: max_phy_rate_tm1_ul = { 6 : 1.7e6, 15 : 4.7e6, -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22039 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-Change-Id: I0e38fe28002fd68c768cc8dcffcf74f4f190df02 Gerrit-Change-Number: 22039 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 16:38:14 2021 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Thu, 7 Jan 2021 16:38:14 +0000 Subject: Change in osmo-gsm-tester[master]: srsepc.conf.tmpl: increase default value of T3413 (paging timer) References: Message-ID: srs_andre has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22040 ) Change subject: srsepc.conf.tmpl: increase default value of T3413 (paging timer) ...................................................................... srsepc.conf.tmpl: increase default value of T3413 (paging timer) we've seen that the default value of 2s might be a bit tight. the value is network dependent so no real default value exists. however, 6s seems to be a good compromise. Change-Id: Icc75ee048c2cc605ab26c4c87a039519998f7e57 --- M src/osmo_gsm_tester/templates/srsepc.conf.tmpl 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/40/22040/1 diff --git a/src/osmo_gsm_tester/templates/srsepc.conf.tmpl b/src/osmo_gsm_tester/templates/srsepc.conf.tmpl index 830cd32..62f9977 100644 --- a/src/osmo_gsm_tester/templates/srsepc.conf.tmpl +++ b/src/osmo_gsm_tester/templates/srsepc.conf.tmpl @@ -31,7 +31,7 @@ dns_addr = 8.8.8.8 encryption_algo = EEA0 integrity_algo = EIA1 -paging_timer = 2 +paging_timer = 6 ##################################################################### # HSS configuration -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22040 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-Change-Id: Icc75ee048c2cc605ab26c4c87a039519998f7e57 Gerrit-Change-Number: 22040 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 16:38:14 2021 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Thu, 7 Jan 2021 16:38:14 +0000 Subject: Change in osmo-gsm-tester[master]: srsenb.conf.tmpl: set nof_of_prach_threds to 0 for ZMQ References: Message-ID: srs_andre has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22041 ) Change subject: srsenb.conf.tmpl: set nof_of_prach_threds to 0 for ZMQ ...................................................................... srsenb.conf.tmpl: set nof_of_prach_threds to 0 for ZMQ this executed the PRACH search in the main thread so PHY workers and PRACH processing don't diverge in loaded scenarios Change-Id: I97eddb5f9ca682251ded1f73093c2d0a49462bd6 --- M src/osmo_gsm_tester/templates/srsenb.conf.tmpl 1 file changed, 3 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/41/22041/1 diff --git a/src/osmo_gsm_tester/templates/srsenb.conf.tmpl b/src/osmo_gsm_tester/templates/srsenb.conf.tmpl index 5df432b..7ac75bb 100644 --- a/src/osmo_gsm_tester/templates/srsenb.conf.tmpl +++ b/src/osmo_gsm_tester/templates/srsenb.conf.tmpl @@ -271,6 +271,9 @@ # ##################################################################### [expert] +% if enb.rf_dev_type == 'zmq': +nof_prach_threads = 0 +% endif #pusch_max_its = 8 # These are half iterations #pusch_8bit_decoder = false #nof_phy_threads = 3 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22041 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-Change-Id: I97eddb5f9ca682251ded1f73093c2d0a49462bd6 Gerrit-Change-Number: 22041 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 16:38:14 2021 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Thu, 7 Jan 2021 16:38:14 +0000 Subject: Change in osmo-gsm-tester[master]: enb: add stdout counter helper to eNB objects References: Message-ID: srs_andre has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22042 ) Change subject: enb: add stdout counter helper to eNB objects ...................................................................... enb: add stdout counter helper to eNB objects this patch adds the stdout counter to count events happening on the stdout (known from the UE already) to the common srslte class so they can also be used from the eNB. In addition, we add a PRACH counter to be used for tests. Change-Id: I434f072b8aa6f4dce9f90889c6b40832f6798ff8 --- M src/osmo_gsm_tester/obj/enb.py M src/osmo_gsm_tester/obj/enb_amarisoft.py M src/osmo_gsm_tester/obj/enb_srs.py M src/osmo_gsm_tester/obj/ms_srs.py M src/osmo_gsm_tester/obj/srslte_common.py 5 files changed, 33 insertions(+), 11 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/42/22042/1 diff --git a/src/osmo_gsm_tester/obj/enb.py b/src/osmo_gsm_tester/obj/enb.py index 3944459..2eac0fe 100644 --- a/src/osmo_gsm_tester/obj/enb.py +++ b/src/osmo_gsm_tester/obj/enb.py @@ -346,4 +346,7 @@ def addr(self): return self._run_node.run_addr() + def get_counter(self, counter_name): + raise log.Error('get_counter() not implemented!') + # vim: expandtab tabstop=4 shiftwidth=4 diff --git a/src/osmo_gsm_tester/obj/enb_amarisoft.py b/src/osmo_gsm_tester/obj/enb_amarisoft.py index ef28100..62c5b8a 100644 --- a/src/osmo_gsm_tester/obj/enb_amarisoft.py +++ b/src/osmo_gsm_tester/obj/enb_amarisoft.py @@ -247,6 +247,20 @@ def running(self): return not self.process.terminated() + def get_counter(self, counter_name): + if counter_name == 'prach_received': + return self._get_counter_stdout('PRACH:') + raise log.Error('counter %s not implemented!' % counter_name) + + def _get_counter_stdout(self, keyword): + # Match stdout against keyword + n = 0 + stdout_lines = (self.process.get_stdout() or '').splitlines() + for l in stdout_lines: + if keyword in l: + n += 1 + return n + def get_rfemu(self, cell=0, dl=True): cell_list = self.gen_conf['enb'].get('cell_list', None) if cell_list is None or len(cell_list) < cell + 1: diff --git a/src/osmo_gsm_tester/obj/enb_srs.py b/src/osmo_gsm_tester/obj/enb_srs.py index 6afc873..221259a 100644 --- a/src/osmo_gsm_tester/obj/enb_srs.py +++ b/src/osmo_gsm_tester/obj/enb_srs.py @@ -86,7 +86,7 @@ if self._run_node.is_local(): return - # Make sure we give the UE time to tear down + # Make sure we give time to tear down self.sleep_after_stop() # copy back files (may not exist, for instance if there was an early error of process): @@ -258,6 +258,11 @@ def running(self): return not self.process.terminated() + def get_counter(self, counter_name): + if counter_name == 'prach_received': + return self._get_counter_stdout('RACH:') + raise log.Error('counter %s not implemented!' % counter_name) + def get_rfemu(self, cell=0, dl=True): cell_list = self.gen_conf['enb'].get('cell_list', None) if cell_list is None or len(cell_list) < cell + 1: diff --git a/src/osmo_gsm_tester/obj/ms_srs.py b/src/osmo_gsm_tester/obj/ms_srs.py index 610d3e6..a89ba1b 100644 --- a/src/osmo_gsm_tester/obj/ms_srs.py +++ b/src/osmo_gsm_tester/obj/ms_srs.py @@ -382,15 +382,6 @@ proc.launch_sync() return proc - def _get_counter_stdout(self, keyword): - # Match stdout against keyword - n = 0 - stdout_lines = (self.process.get_stdout() or '').splitlines() - for l in stdout_lines: - if keyword in l: - n += 1 - return n - def get_counter(self, counter_name): if counter_name == 'handover_success': return self._get_counter_stdout('HO successful') diff --git a/src/osmo_gsm_tester/obj/srslte_common.py b/src/osmo_gsm_tester/obj/srslte_common.py index e221940..3acad9e 100644 --- a/src/osmo_gsm_tester/obj/srslte_common.py +++ b/src/osmo_gsm_tester/obj/srslte_common.py @@ -97,4 +97,13 @@ return analyzer.get_num_phy_errors(kpi) except ImportError: self.log("Can't load KPI analyzer module.") - return 0 \ No newline at end of file + return 0 + + def _get_counter_stdout(self, keyword): + # Match stdout against keyword + n = 0 + stdout_lines = (self.process.get_stdout() or '').splitlines() + for l in stdout_lines: + if keyword in l: + n += 1 + return n -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22042 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-Change-Id: I434f072b8aa6f4dce9f90889c6b40832f6798ff8 Gerrit-Change-Number: 22042 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 16:38:14 2021 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Thu, 7 Jan 2021 16:38:14 +0000 Subject: Change in osmo-gsm-tester[master]: 4g: add checks for received PRACHs for ping tests References: Message-ID: srs_andre has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22043 ) Change subject: 4g: add checks for received PRACHs for ping tests ...................................................................... 4g: add checks for received PRACHs for ping tests the tests already check for sent PRACHs, this will also check for received PRACHs on the eNB to make sure we don't detect any fake PRACHs during the tests. Change-Id: Ib23056b1ad4b18a7dde6cd0c997f5114ac2acb61 --- M sysmocom/suites/4g/rrc_idle_mo_ping.py M sysmocom/suites/4g/rrc_idle_mt_ping.py 2 files changed, 19 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/43/22043/1 diff --git a/sysmocom/suites/4g/rrc_idle_mo_ping.py b/sysmocom/suites/4g/rrc_idle_mo_ping.py index ced798d..389e5a2 100755 --- a/sysmocom/suites/4g/rrc_idle_mo_ping.py +++ b/sysmocom/suites/4g/rrc_idle_mo_ping.py @@ -31,9 +31,16 @@ output = proc.get_stdout() # Check PRACH transmissions +num_prachs = 2 num_prach_sent = ue.get_counter('prach_sent') -if num_prach_sent != 2: - raise Exception("Expected to have sent exactly 2 PRACHs, but in fact sent {}".format(num_prach_sent)) +if num_prach_sent != num_prachs: + raise Exception("Expected to have sent exactly {} PRACHs, but in fact sent {}".format(num_prachs, num_prach_sent)) +# Check PRACH receptions +num_prach_received = enb.get_counter('prach_received') +if num_prach_sent != num_prachs: + raise Exception("Expected to have received exactly {} PRACHs, but in fact received {}".format(num_prachs, num_prach_received)) + +output += "\nnum_prach_sent={}\nnum_prach_received={}\n".format(num_prach_sent, num_prach_received) print(output) test.set_report_stdout(output) diff --git a/sysmocom/suites/4g/rrc_idle_mt_ping.py b/sysmocom/suites/4g/rrc_idle_mt_ping.py index dcabe21..bdebb26 100755 --- a/sysmocom/suites/4g/rrc_idle_mt_ping.py +++ b/sysmocom/suites/4g/rrc_idle_mt_ping.py @@ -26,7 +26,7 @@ # Wait a bit sleep(5) -# Generate MO traffic, send single ping +# Generate MT traffic, send single ping proc = epc.prepare_process('ping', ('ping', '-c', '1', ue.get_assigned_addr())) proc.launch_sync() output = proc.get_stdout() @@ -37,9 +37,16 @@ raise Exception("Expected to receive exactly 1 paging message, but in fact received {}".format(num_paging_received)) # Check PRACH transmissions +num_prachs = 2 num_prach_sent = ue.get_counter('prach_sent') -if num_prach_sent != 2: - raise Exception("Expected to have sent exactly 2 PRACHs, but in fact sent {}".format(num_prach_sent)) +if num_prach_sent != num_prachs: + raise Exception("Expected to have sent exactly {} PRACHs, but in fact sent {}".format(num_prachs, num_prach_sent)) +# Check PRACH receptions +num_prach_received = enb.get_counter('prach_received') +if num_prach_sent != num_prachs: + raise Exception("Expected to have received exactly {} PRACHs, but in fact received {}".format(num_prachs, num_prach_received)) + +output += "\nnum_prach_sent={}\nnum_prach_received={}\n".format(num_prach_sent, num_prach_received) print(output) test.set_report_stdout(output) -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22043 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-Change-Id: Ib23056b1ad4b18a7dde6cd0c997f5114ac2acb61 Gerrit-Change-Number: 22043 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 17:07:08 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 7 Jan 2021 17:07:08 +0000 Subject: Change in osmo-gsm-tester[master]: jenkins-build-srslte.sh: allow custom binaries In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22031 ) Change subject: jenkins-build-srslte.sh: allow custom binaries ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22031 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-Change-Id: I63f5799328435ce32b5bfd6dae6fd0b37e1e5397 Gerrit-Change-Number: 22031 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 07 Jan 2021 17:07:08 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 17:07:19 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 7 Jan 2021 17:07:19 +0000 Subject: Change in osmo-gsm-tester[master]: srsenb_drb.conf.tmpl: add QCI1 DRB config In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22032 ) Change subject: srsenb_drb.conf.tmpl: add QCI1 DRB config ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22032 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-Change-Id: I43f408b1a3c172a5eb8327f03df49801e063e5cd Gerrit-Change-Number: 22032 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 07 Jan 2021 17:07:19 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 17:07:36 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 7 Jan 2021 17:07:36 +0000 Subject: Change in osmo-gsm-tester[master]: enb: include name label and run_addr in enb remote path In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22033 ) Change subject: enb: include name label and run_addr in enb remote path ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22033 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-Change-Id: I9c979de852a23041e43692e97ebcbfb389b52fdb Gerrit-Change-Number: 22033 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 07 Jan 2021 17:07:36 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 17:09:01 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 7 Jan 2021 17:09:01 +0000 Subject: Change in osmo-gsm-tester[master]: srsue.conf.tmpl: reorder conditions for setting RRC release In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22034 ) Change subject: srsue.conf.tmpl: reorder conditions for setting RRC release ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22034 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-Change-Id: I2fa49f0cb5d80db412a811ceeb380359c8ad67a7 Gerrit-Change-Number: 22034 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 07 Jan 2021 17:09:01 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 17:09:47 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 7 Jan 2021 17:09:47 +0000 Subject: Change in osmo-gsm-tester[master]: intraenb-intrafreq-ho.conf: add eNB to cell config In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22035 ) Change subject: intraenb-intrafreq-ho.conf: add eNB to cell config ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22035 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-Change-Id: Id494ac1984846e78a6456bb6a17e72d63c9dacf5 Gerrit-Change-Number: 22035 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 07 Jan 2021 17:09:47 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 17:10:08 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 7 Jan 2021 17:10:08 +0000 Subject: Change in osmo-gsm-tester[master]: srsue.conf.tmpl: disable TTI stats for ZMQ In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22036 ) Change subject: srsue.conf.tmpl: disable TTI stats for ZMQ ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22036 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-Change-Id: I5c2cb0abcfce0ee67806f6611356f4d5d180541d Gerrit-Change-Number: 22036 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 07 Jan 2021 17:10:08 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 17:11:00 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 7 Jan 2021 17:11:00 +0000 Subject: Change in osmo-gsm-tester[master]: iperf3: return 0 if iperf results can't be read back In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22037 ) Change subject: iperf3: return 0 if iperf results can't be read back ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22037 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-Change-Id: I5a8fe32f0a2bb676dbb80dad500bc6c63c176485 Gerrit-Change-Number: 22037 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 07 Jan 2021 17:11:00 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 17:13:24 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 7 Jan 2021 17:13:24 +0000 Subject: Change in osmo-gsm-tester[master]: enb_srs: only use QAM64 tables if both UE and eNB are configured for ... In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22038 ) Change subject: enb_srs: only use QAM64 tables if both UE and eNB are configured for QAM64 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22038 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-Change-Id: I599df92d69eeb56a5d44327de08f004222cff073 Gerrit-Change-Number: 22038 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 07 Jan 2021 17:13:24 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 17:14:08 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 7 Jan 2021 17:14:08 +0000 Subject: Change in osmo-gsm-tester[master]: enb_srs: adopt throughput thresholds for QAM256 In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22039 ) Change subject: enb_srs: adopt throughput thresholds for QAM256 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22039 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-Change-Id: I0e38fe28002fd68c768cc8dcffcf74f4f190df02 Gerrit-Change-Number: 22039 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 07 Jan 2021 17:14:08 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 17:14:25 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 7 Jan 2021 17:14:25 +0000 Subject: Change in osmo-gsm-tester[master]: srsepc.conf.tmpl: increase default value of T3413 (paging timer) In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22040 ) Change subject: srsepc.conf.tmpl: increase default value of T3413 (paging timer) ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22040 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-Change-Id: Icc75ee048c2cc605ab26c4c87a039519998f7e57 Gerrit-Change-Number: 22040 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 07 Jan 2021 17:14:25 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 17:15:09 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 7 Jan 2021 17:15:09 +0000 Subject: Change in osmo-gsm-tester[master]: srsenb.conf.tmpl: set nof_of_prach_threds to 0 for ZMQ In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22041 ) Change subject: srsenb.conf.tmpl: set nof_of_prach_threds to 0 for ZMQ ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22041 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-Change-Id: I97eddb5f9ca682251ded1f73093c2d0a49462bd6 Gerrit-Change-Number: 22041 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 07 Jan 2021 17:15:09 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 17:21:03 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 7 Jan 2021 17:21:03 +0000 Subject: Change in osmo-gsm-tester[master]: enb: add stdout counter helper to eNB objects In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22042 ) Change subject: enb: add stdout counter helper to eNB objects ...................................................................... Patch Set 1: Code-Review-1 (3 comments) https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22042/1/src/osmo_gsm_tester/obj/enb.py File src/osmo_gsm_tester/obj/enb.py: https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22042/1/src/osmo_gsm_tester/obj/enb.py at 349 PS1, Line 349: def get_counter(self, counter_name): I'd rather leave it as @abstractmethod here and make sure all implementations either implement it correctly or simply implement them by raising an exception like yo did here. This way it's easier to find out when implementing a subclass what's missing before running into it (thanks to ABCMeta) https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22042/1/src/osmo_gsm_tester/obj/enb_srs.py File src/osmo_gsm_tester/obj/enb_srs.py: https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22042/1/src/osmo_gsm_tester/obj/enb_srs.py at 89 PS1, Line 89: # Make sure we give time to tear down Not related to this commit, submit in a separate commit please. https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22042/1/src/osmo_gsm_tester/obj/srslte_common.py File src/osmo_gsm_tester/obj/srslte_common.py: https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22042/1/src/osmo_gsm_tester/obj/srslte_common.py at 102 PS1, Line 102: def _get_counter_stdout(self, keyword): What about moving this function to Process class? as in process.count_lines(match=keyword, stream=stdout) or something alike. -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22042 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-Change-Id: I434f072b8aa6f4dce9f90889c6b40832f6798ff8 Gerrit-Change-Number: 22042 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 07 Jan 2021 17:21:03 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 17:22:31 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 7 Jan 2021 17:22:31 +0000 Subject: Change in osmo-gsm-tester[master]: 4g: add checks for received PRACHs for ping tests In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22043 ) Change subject: 4g: add checks for received PRACHs for ping tests ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22043 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-Change-Id: Ib23056b1ad4b18a7dde6cd0c997f5114ac2acb61 Gerrit-Change-Number: 22043 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 07 Jan 2021 17:22:31 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 17:28:46 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 7 Jan 2021 17:28:46 +0000 Subject: Change in libosmocore[master]: Intoduce Packet Switch CGI In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22013 ) Change subject: Intoduce Packet Switch CGI ...................................................................... Patch Set 2: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/22013/2//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/libosmocore/+/22013/2//COMMIT_MSG at 1 PS2, Line 1: Parent: cea0c305 (gsm_08_18: add struct to parse RIM PDU Indications) I'm sure it doesn't identify a SGSN, right? A Cell within the BSS/RAN/PCU? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22013 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If48f412c32e8e5a3e604a78d12b74787a4786374 Gerrit-Change-Number: 22013 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 07 Jan 2021 17:28:46 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 17:38:50 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 7 Jan 2021 17:38:50 +0000 Subject: Change in osmo-bsc[master]: Introduce Neigbhour resolution service In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bsc/+/21848 to look at the new patch set (#3). Change subject: Introduce Neigbhour resolution service ...................................................................... Introduce Neigbhour resolution service This new CTRL interface allows users of this BSC (such as attached PCU) to gather neighbor information. This interface is needed for PCU to translate ARFCN+BSIC keys provided by MS in the Um side into CGI + RAC keys used to identify target cells in RIM procedures against SGSNs on the Gb interface. This patch extends the already existing neighbor information storage in the VTY by allowing storage of CGI + RAC (RAC couldn't be stored beforehand). Related: SYS#4909 Depends: libosmocore.git Change-Id If48f412c32e8e5a3e604a78d12b74787a4786374 Change-Id: Ib07c9d23026332a207d4b7a0f7b4e76c0094e379 --- M include/osmocom/bsc/gsm_data.h M include/osmocom/bsc/neighbor_ident.h M src/osmo-bsc/bsc_vty.c M src/osmo-bsc/bts.c M src/osmo-bsc/neighbor_ident.c M src/osmo-bsc/neighbor_ident_vty.c M src/osmo-bsc/osmo_bsc_main.c M tests/bsc/Makefile.am A tests/ctrl/osmo-bsc-neigh-test.cfg M tests/ctrl_test_runner.py M tests/gsm0408/Makefile.am M tests/neighbor_ident.vty 12 files changed, 371 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/48/21848/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21848 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ib07c9d23026332a207d4b7a0f7b4e76c0094e379 Gerrit-Change-Number: 21848 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 17:38:51 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 7 Jan 2021 17:38:51 +0000 Subject: Change in osmo-bsc[master]: gitignore: Ignore *~ References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22044 ) Change subject: gitignore: Ignore *~ ...................................................................... gitignore: Ignore *~ They seem to be generated by newer versions of autofoo. Change-Id: I739d072c2ef443404e58a49c96d148ed545baedb --- M .gitignore 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/44/22044/1 diff --git a/.gitignore b/.gitignore index 6a8d2c1..c4d8984 100644 --- a/.gitignore +++ b/.gitignore @@ -8,6 +8,7 @@ bscconfig.h bscconfig.h.in *.pc +*~ *.*~ *.sw? -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22044 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I739d072c2ef443404e58a49c96d148ed545baedb Gerrit-Change-Number: 22044 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 17:48:38 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 7 Jan 2021 17:48:38 +0000 Subject: Change in libosmocore[master]: Intoduce Packet Switch CGI In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22013 to look at the new patch set (#3). Change subject: Intoduce Packet Switch CGI ...................................................................... Intoduce Packet Switch CGI This structure is needed in order to identify a given cell within the BSS during RIM transactions. The naming was made up by myself since I couldn't find any naming reference for this kind of data (RAI + CI). Since LAI + CI = CGI, then RAI + CI = CGI-PS Change-Id: If48f412c32e8e5a3e604a78d12b74787a4786374 --- M include/osmocom/gsm/gsm0808_utils.h M include/osmocom/gsm/gsm23003.h M include/osmocom/gsm/protocol/gsm_08_08.h M src/gsm/gsm0808_utils.c 4 files changed, 15 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/13/22013/3 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22013 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If48f412c32e8e5a3e604a78d12b74787a4786374 Gerrit-Change-Number: 22013 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 18:31:22 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 7 Jan 2021 18:31:22 +0000 Subject: Change in osmo-bsc[master]: Introduce Neighbor resolution service In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bsc/+/21848 to look at the new patch set (#4). Change subject: Introduce Neighbor resolution service ...................................................................... Introduce Neighbor resolution service This new CTRL interface allows users of this BSC (such as attached PCU) to gather neighbor information. This interface is needed for PCU to translate ARFCN+BSIC keys provided by MS in the Um side into CGI + RAC keys used to identify target cells in RIM procedures against SGSNs on the Gb interface. This patch extends the already existing neighbor information storage in the VTY by allowing storage of CGI + RAC (RAC couldn't be stored beforehand). Related: SYS#4909 Depends: libosmocore.git Change-Id If48f412c32e8e5a3e604a78d12b74787a4786374 Change-Id: Ib07c9d23026332a207d4b7a0f7b4e76c0094e379 --- M include/osmocom/bsc/gsm_data.h M include/osmocom/bsc/neighbor_ident.h M src/osmo-bsc/bsc_vty.c M src/osmo-bsc/bts.c M src/osmo-bsc/neighbor_ident.c M src/osmo-bsc/neighbor_ident_vty.c M src/osmo-bsc/osmo_bsc_main.c M tests/bsc/Makefile.am A tests/ctrl/osmo-bsc-neigh-test.cfg M tests/ctrl_test_runner.py M tests/gsm0408/Makefile.am M tests/neighbor_ident.vty 12 files changed, 371 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/48/21848/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21848 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ib07c9d23026332a207d4b7a0f7b4e76c0094e379 Gerrit-Change-Number: 21848 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 18:52:07 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 7 Jan 2021 18:52:07 +0000 Subject: Change in libosmocore[master]: Intoduce Packet Switch CGI In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22013 ) Change subject: Intoduce Packet Switch CGI ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22013 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If48f412c32e8e5a3e604a78d12b74787a4786374 Gerrit-Change-Number: 22013 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 07 Jan 2021 18:52:07 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 18:52:35 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 7 Jan 2021 18:52:35 +0000 Subject: Change in osmo-bsc[master]: gitignore: Ignore *~ In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22044 ) Change subject: gitignore: Ignore *~ ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22044 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I739d072c2ef443404e58a49c96d148ed545baedb Gerrit-Change-Number: 22044 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 07 Jan 2021 18:52:35 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 18:52:41 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 7 Jan 2021 18:52:41 +0000 Subject: Change in osmo-bsc[master]: gitignore: Ignore *~ In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22044 ) Change subject: gitignore: Ignore *~ ...................................................................... gitignore: Ignore *~ They seem to be generated by newer versions of autofoo. Change-Id: I739d072c2ef443404e58a49c96d148ed545baedb --- M .gitignore 1 file changed, 1 insertion(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/.gitignore b/.gitignore index 6a8d2c1..c4d8984 100644 --- a/.gitignore +++ b/.gitignore @@ -8,6 +8,7 @@ bscconfig.h bscconfig.h.in *.pc +*~ *.*~ *.sw? -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22044 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I739d072c2ef443404e58a49c96d148ed545baedb Gerrit-Change-Number: 22044 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 18:55:21 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 7 Jan 2021 18:55:21 +0000 Subject: Change in osmo-bsc[master]: Introduce Neighbor resolution service In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21848 ) Change subject: Introduce Neighbor resolution service ...................................................................... Patch Set 4: (1 comment) user manual also must be updated https://gerrit.osmocom.org/c/osmo-bsc/+/21848/4/include/osmocom/bsc/gsm_data.h File include/osmocom/bsc/gsm_data.h: https://gerrit.osmocom.org/c/osmo-bsc/+/21848/4/include/osmocom/bsc/gsm_data.h at 1216 PS4, Line 1216: /* Remote BSS resolution sevice (CTRL iface) */ : char *neigh_ctrl_addr; : uint16_t neigh_ctrl_port; : struct ctrl_handle *neigh_ctrl; Not cricitcal, but I would generally suggest a more grouped/hierarchical approach: struct { addr; port; handle; } neigh_ctrl -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21848 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ib07c9d23026332a207d4b7a0f7b4e76c0094e379 Gerrit-Change-Number: 21848 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-Comment-Date: Thu, 07 Jan 2021 18:55:21 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 18:56:56 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 7 Jan 2021 18:56:56 +0000 Subject: Change in osmo-ttcn3-hacks[master]: CTRL: Introduce support to run osmocom CTRL server In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22012 ) Change subject: CTRL: Introduce support to run osmocom CTRL server ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22012 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I37db9962f51baf2c63bd58ec47ec89f773d7a255 Gerrit-Change-Number: 22012 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 07 Jan 2021 18:56:56 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 18:57:16 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 7 Jan 2021 18:57:16 +0000 Subject: Change in libosmocore[master]: logging: Remove duplicate color for DLSMS In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22027 ) Change subject: logging: Remove duplicate color for DLSMS ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22027 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia797efce36e0afff74de54374d568521ecedf486 Gerrit-Change-Number: 22027 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 07 Jan 2021 18:57:16 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 18:57:18 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 7 Jan 2021 18:57:18 +0000 Subject: Change in libosmocore[master]: logging: Remove duplicate color for DLSMS In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22027 ) Change subject: logging: Remove duplicate color for DLSMS ...................................................................... logging: Remove duplicate color for DLSMS Change-Id: Ia797efce36e0afff74de54374d568521ecedf486 --- M src/logging.c 1 file changed, 0 insertions(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/logging.c b/src/logging.c index 01a00da..60dba64 100644 --- a/src/logging.c +++ b/src/logging.c @@ -177,7 +177,6 @@ .name = "DLSMS", .description = "Layer3 Short Message Service (SMS)", .enabled = 1, .loglevel = LOGL_NOTICE, - .color = OSMO_LOGCOLOR_BRIGHTWHITE, .color = "\033[38;5;31m", }, [INT2IDX(DLCTRL)] = { -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22027 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia797efce36e0afff74de54374d568521ecedf486 Gerrit-Change-Number: 22027 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 18:57:29 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 7 Jan 2021 18:57:29 +0000 Subject: Change in libosmocore[master]: ns2_frgre: Fix missing break statement for recv from IPV6 In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22028 ) Change subject: ns2_frgre: Fix missing break statement for recv from IPV6 ...................................................................... ns2_frgre: Fix missing break statement for recv from IPV6 Change-Id: I549277483fee55f390e0b5ae1dafec6f2d68eae7 Fixes: CID#215836 --- M src/gb/gprs_ns2_frgre.c 1 file changed, 1 insertion(+), 0 deletions(-) Approvals: pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/gb/gprs_ns2_frgre.c b/src/gb/gprs_ns2_frgre.c index 625d05c..86f0921 100644 --- a/src/gb/gprs_ns2_frgre.c +++ b/src/gb/gprs_ns2_frgre.c @@ -314,6 +314,7 @@ break; case AF_INET6: ip46hdr = sizeof(struct ip6_hdr); + break; default: *error = -EIO; goto out_err; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22028 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I549277483fee55f390e0b5ae1dafec6f2d68eae7 Gerrit-Change-Number: 22028 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 18:57:54 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 7 Jan 2021 18:57:54 +0000 Subject: Change in libosmocore[master]: bssgp_bvc_fsm: Handle block request from application correctly In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22029 ) Change subject: bssgp_bvc_fsm: Handle block request from application correctly ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22029 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I3e384b71d57e939efc1596ac1d92380ed5eb916d Gerrit-Change-Number: 22029 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 07 Jan 2021 18:57:54 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 18:57:57 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 7 Jan 2021 18:57:57 +0000 Subject: Change in libosmocore[master]: bssgp_bvc_fsm: Handle block request from application correctly In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22029 ) Change subject: bssgp_bvc_fsm: Handle block request from application correctly ...................................................................... bssgp_bvc_fsm: Handle block request from application correctly This is no event from an incoming message so rx is NULL, and we can't send a status PDU. Also blocking the signalling BVC is not allowed (unblocking it is already forbidden). Change-Id: I3e384b71d57e939efc1596ac1d92380ed5eb916d Fixes: CID#215716 --- M src/gb/bssgp_bvc_fsm.c 1 file changed, 4 insertions(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/gb/bssgp_bvc_fsm.c b/src/gb/bssgp_bvc_fsm.c index cc634a5..6de0028 100644 --- a/src/gb/bssgp_bvc_fsm.c +++ b/src/gb/bssgp_bvc_fsm.c @@ -456,7 +456,10 @@ case BSSGP_BVCFSM_E_REQ_BLOCK: if (bfp->role_sgsn) { LOGPFSML(fi, LOGL_ERROR, "SGSN may not initiate BVC-BLOCK\n"); - _tx_status(fi, BSSGP_CAUSE_SEM_INCORR_PDU, rx); + break; + } + if (bfp->bvci == 0) { + LOGPFSML(fi, LOGL_ERROR, "BVCI 0 cannot be blocked\n"); break; } bfp->locally_blocked = true; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22029 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I3e384b71d57e939efc1596ac1d92380ed5eb916d Gerrit-Change-Number: 22029 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 19:44:10 2021 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Thu, 7 Jan 2021 19:44:10 +0000 Subject: Change in osmo-gsm-tester[master]: enb, ue, process: move stdout counter helper to process objects In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22042 to look at the new patch set (#2). Change subject: enb,ue,process: move stdout counter helper to process objects ...................................................................... enb,ue,process: move stdout counter helper to process objects this patch adds the stdout counter to count events happening on the stdout (known from the UE already) to the common process class so they can also be used from the eNB (and other objects) In addition, we add a PRACH counter to be used for tests. Change-Id: I434f072b8aa6f4dce9f90889c6b40832f6798ff8 --- M src/osmo_gsm_tester/core/process.py M src/osmo_gsm_tester/obj/enb.py M src/osmo_gsm_tester/obj/enb_amarisoft.py M src/osmo_gsm_tester/obj/enb_srs.py M src/osmo_gsm_tester/obj/ms_srs.py M src/osmo_gsm_tester/obj/srslte_common.py 6 files changed, 30 insertions(+), 17 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/42/22042/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22042 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-Change-Id: I434f072b8aa6f4dce9f90889c6b40832f6798ff8 Gerrit-Change-Number: 22042 Gerrit-PatchSet: 2 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 19:44:10 2021 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Thu, 7 Jan 2021 19:44:10 +0000 Subject: Change in osmo-gsm-tester[master]: enb: Set cipher and integrity via scenario file In-Reply-To: References: Message-ID: srs_andre has uploaded a new patch set (#2) to the change originally created by ninjab3s. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21582 ) Change subject: enb: Set cipher and integrity via scenario file ...................................................................... enb: Set cipher and integrity via scenario file This patch enables setting cipher and integrity algorithms in Amarisoft eNB and srsENB via scenario files. If no settings are defined following defaults are applied: - Cipher algorithm: EEA0, EEA2, EEA1 - Integrity algorithm: EIA2, EIA1, EIA0 Example of setting cipher algorithms: - 4g:srsue-rftype at uhd+srsenb-rftype@uhd+mod-enb-cipher at eea1+mod-enb-cipher@eea0+mod-enb-nprb at 6 Change-Id: I595206b7d49016fb6d0aec175c828d9537c53886 --- M src/osmo_gsm_tester/core/schema.py M src/osmo_gsm_tester/obj/bts.py M src/osmo_gsm_tester/obj/enb.py M src/osmo_gsm_tester/obj/ms.py M src/osmo_gsm_tester/templates/amarisoft_enb.cfg.tmpl M src/osmo_gsm_tester/templates/srsenb.conf.tmpl M sysmocom/defaults.conf A sysmocom/scenarios/mod-enb-cipher at .conf A sysmocom/scenarios/mod-enb-integrity at .conf 9 files changed, 41 insertions(+), 9 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/82/21582/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21582 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-Change-Id: I595206b7d49016fb6d0aec175c828d9537c53886 Gerrit-Change-Number: 21582 Gerrit-PatchSet: 2 Gerrit-Owner: ninjab3s Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Reviewer: srs_andre Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 19:44:11 2021 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Thu, 7 Jan 2021 19:44:11 +0000 Subject: Change in osmo-gsm-tester[master]: srslte_common: on stop(), send q+Enter to stdin of process References: Message-ID: srs_andre has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22045 ) Change subject: srslte_common: on stop(), send q+Enter to stdin of process ...................................................................... srslte_common: on stop(), send q+Enter to stdin of process this allows application to self-terminate so at least a few more lines are stored available in the captures stdout of the process before the SSH connection is killed Change-Id: Ibfd778494bf689f647e87de4ee281a468456fed0 --- M src/osmo_gsm_tester/obj/srslte_common.py 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/45/22045/1 diff --git a/src/osmo_gsm_tester/obj/srslte_common.py b/src/osmo_gsm_tester/obj/srslte_common.py index 1d03a58..21001b7 100644 --- a/src/osmo_gsm_tester/obj/srslte_common.py +++ b/src/osmo_gsm_tester/obj/srslte_common.py @@ -36,6 +36,8 @@ self.stop_sleep_time = 0 def stop(self): + # Send q+Enter to stdin to self-terminate application + self.process.stdin_write('q\n') self.testenv.stop_process(self.process) self.sleep_after_stop() -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22045 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-Change-Id: Ibfd778494bf689f647e87de4ee281a468456fed0 Gerrit-Change-Number: 22045 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 19:48:12 2021 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Thu, 7 Jan 2021 19:48:12 +0000 Subject: Change in osmo-gsm-tester[master]: enb, ue, process: move stdout counter helper to process objects In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22042 to look at the new patch set (#3). Change subject: enb,ue,process: move stdout counter helper to process objects ...................................................................... enb,ue,process: move stdout counter helper to process objects this patch adds the stdout counter to count events happening on the stdout (known from the UE already) to the common process class so they can also be used from the eNB (and other objects) In addition, we add a PRACH counter to be used for tests. Change-Id: I434f072b8aa6f4dce9f90889c6b40832f6798ff8 --- M src/osmo_gsm_tester/core/process.py M src/osmo_gsm_tester/obj/enb.py M src/osmo_gsm_tester/obj/enb_amarisoft.py M src/osmo_gsm_tester/obj/enb_srs.py M src/osmo_gsm_tester/obj/ms_srs.py M src/osmo_gsm_tester/obj/srslte_common.py 6 files changed, 30 insertions(+), 17 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/42/22042/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22042 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-Change-Id: I434f072b8aa6f4dce9f90889c6b40832f6798ff8 Gerrit-Change-Number: 22042 Gerrit-PatchSet: 3 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 21:03:11 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 7 Jan 2021 21:03:11 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: add utilities to send and parse BSSGP rim PDUs References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22046 ) Change subject: gprs_bssgp: add utilities to send and parse BSSGP rim PDUs ...................................................................... gprs_bssgp: add utilities to send and parse BSSGP rim PDUs At the moment libosmogb offers no convinient way to send RIM PDUs. Also parsing an incoming RIM messages into destination, source routing info and RIM container is not available. Change-Id: I18134fd9938040d2facb6beee3732628b167ce8c Related: SYS#5103 --- M include/osmocom/gprs/gprs_bssgp.h M src/gb/gprs_bssgp_util.c M src/gb/libosmogb.map 3 files changed, 130 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/46/22046/1 diff --git a/include/osmocom/gprs/gprs_bssgp.h b/include/osmocom/gprs/gprs_bssgp.h index d228c53..3caf91b 100644 --- a/include/osmocom/gprs/gprs_bssgp.h +++ b/include/osmocom/gprs/gprs_bssgp.h @@ -41,6 +41,19 @@ /* Chapter 10.4.14: Status */ int bssgp_tx_status(uint8_t cause, uint16_t *bvci, struct msgb *orig_msg); +/* Chapter 10.6.1: RAN-INFORMATION-REQUEST */ +struct bssgp_ran_information_pdu { + const uint8_t *routing_info_dest; + unsigned int routing_info_dest_len; + const uint8_t *routing_info_src; + unsigned int routing_info_src_len; + uint8_t rim_cont_iei; + const uint8_t *rim_cont; + unsigned int rim_cont_len; +}; +int bssgp_tx_rim(struct bssgp_ran_information_pdu *pdu, uint16_t nsei); +int bssgp_parse_rim_pdu(struct bssgp_ran_information_pdu *pdu, struct msgb *msg); + enum bssgp_prim { PRIM_BSSGP_DL_UD, PRIM_BSSGP_UL_UD, diff --git a/src/gb/gprs_bssgp_util.c b/src/gb/gprs_bssgp_util.c index 92896c1..0cd59f0 100644 --- a/src/gb/gprs_bssgp_util.c +++ b/src/gb/gprs_bssgp_util.c @@ -588,3 +588,118 @@ return bssgp_ns_send(bssgp_ns_send_data, msg); } + +/* Chapter 10.6.1: RAN-INFORMATION-REQUEST */ +int bssgp_tx_rim(struct bssgp_ran_information_pdu *pdu, uint16_t nsei) +{ + struct msgb *msg = bssgp_msgb_alloc(); + struct bssgp_normal_hdr *bgph = + (struct bssgp_normal_hdr *)msgb_put(msg, sizeof(*bgph)); + + /* Find a suitable PDU based on the RIM container type (IEI) */ + switch (pdu->rim_cont_iei) { + case BSSGP_IE_RI_REQ_RIM_CONTAINER: + bgph->pdu_type = BSSGP_PDUT_RAN_INFO_REQ; + break; + case BSSGP_IE_RI_RIM_CONTAINER: + bgph->pdu_type = BSSGP_PDUT_RAN_INFO; + break; + case BSSGP_IE_RI_APP_ERROR_RIM_CONT: + bgph->pdu_type = BSSGP_PDUT_RAN_INFO_APP_ERROR; + break; + case BSSGP_IE_RI_ACK_RIM_CONTAINER: + bgph->pdu_type = BSSGP_PDUT_RAN_INFO_ACK; + break; + case BSSGP_IE_RI_ERROR_RIM_COINTAINER: + bgph->pdu_type = BSSGP_PDUT_RAN_INFO_ERROR; + break; + default: + /* The caller must correctly specify the container type! */ + OSMO_ASSERT(false); + } + + LOGP(DLBSSGP, LOGL_NOTICE, "BSSGP BVCI=0 Tx RIM-PDU:%s\n", + bssgp_pdu_str(bgph->pdu_type)); + + /* Check if anything is missing, all those fields are mandatory. The + * caller must make sure that the fields are present. */ + OSMO_ASSERT(pdu->routing_info_dest_len > 0 && pdu->routing_info_dest); + OSMO_ASSERT(pdu->routing_info_src_len > 0 && pdu->routing_info_src); + OSMO_ASSERT(pdu->rim_cont_iei != 0 && pdu->rim_cont_len > 0 + && pdu->rim_cont); + + /* Encode BSSGP PDU */ + msgb_nsei(msg) = nsei; + msgb_bvci(msg) = 0; /* Signalling */ + msgb_tvlv_put(msg, BSSGP_IE_RIM_ROUTING_INFO, + pdu->routing_info_dest_len, pdu->routing_info_dest); + msgb_tvlv_put(msg, BSSGP_IE_RIM_ROUTING_INFO, pdu->routing_info_src_len, + pdu->routing_info_src); + msgb_tvlv_put(msg, pdu->rim_cont_iei, pdu->rim_cont_len, pdu->rim_cont); + + return bssgp_ns_send(bssgp_ns_send_data, msg); +} + +/* Parse a given message buffer into a rim-pdu struct */ +int bssgp_parse_rim_pdu(struct bssgp_ran_information_pdu *pdu, struct msgb *msg) +{ + struct tlv_parsed tp[2]; + struct bssgp_normal_hdr *bgph = + (struct bssgp_normal_hdr *)msgb_bssgph(msg); + int data_len; + int rc; + uint16_t nsei = msgb_nsei(msg); + + data_len = msgb_bssgp_len(msg) - sizeof(*bgph); + + rc = tlv_parse2(tp, ARRAY_SIZE(tp), &tvlv_att_def, bgph->data, data_len, + 0, 0); + if (rc < 0) + return -EINVAL; + + if (TLVP_PRESENT(&tp[0], BSSGP_IE_RIM_ROUTING_INFO)) { + pdu->routing_info_dest = + TLVP_VAL(&tp[0], BSSGP_IE_RIM_ROUTING_INFO); + pdu->routing_info_dest_len = + TLVP_LEN(&tp[0], BSSGP_IE_RIM_ROUTING_INFO); + } else { + LOGP(DLBSSGP, LOGL_ERROR, + "BSSGP RIM (NSEI=%u) missing Destination Cell Identifier IE\n", + nsei); + return -EINVAL; + } + + if (TLVP_PRESENT(&tp[0], BSSGP_IE_RIM_ROUTING_INFO)) { + pdu->routing_info_src = + TLVP_VAL(&tp[1], BSSGP_IE_RIM_ROUTING_INFO); + pdu->routing_info_src_len = + TLVP_LEN(&tp[1], BSSGP_IE_RIM_ROUTING_INFO); + } else { + LOGP(DLBSSGP, LOGL_ERROR, + "BSSGP RIM (NSEI=%u) missing Source Cell Identifier IE\n", + nsei); + return -EINVAL; + } + + if (TLVP_PRESENT(&tp[0], BSSGP_IE_RI_REQ_RIM_CONTAINER)) + pdu->rim_cont_iei = BSSGP_IE_RI_REQ_RIM_CONTAINER; + else if (TLVP_PRESENT(&tp[0], BSSGP_IE_RI_RIM_CONTAINER)) + pdu->rim_cont_iei = BSSGP_IE_RI_RIM_CONTAINER; + else if (TLVP_PRESENT(&tp[0], BSSGP_IE_RI_APP_ERROR_RIM_CONT)) + pdu->rim_cont_iei = BSSGP_IE_RI_APP_ERROR_RIM_CONT; + else if (TLVP_PRESENT(&tp[0], BSSGP_IE_RI_ACK_RIM_CONTAINER)) + pdu->rim_cont_iei = BSSGP_IE_RI_ACK_RIM_CONTAINER; + else if (TLVP_PRESENT(&tp[0], BSSGP_IE_RI_ERROR_RIM_COINTAINER)) + pdu->rim_cont_iei = BSSGP_IE_RI_ERROR_RIM_COINTAINER; + else { + LOGP(DLBSSGP, LOGL_ERROR, + "BSSGP RIM (NSEI=%u) missing or wrong RIM Container IE -- rejected\n", + nsei); + return -EINVAL; + } + + pdu->rim_cont = TLVP_VAL(&tp[0], pdu->rim_cont_iei); + pdu->rim_cont_len = TLVP_LEN(&tp[0], pdu->rim_cont_iei); + + return 0; +} diff --git a/src/gb/libosmogb.map b/src/gb/libosmogb.map index 5c029b0..f49f9bd 100644 --- a/src/gb/libosmogb.map +++ b/src/gb/libosmogb.map @@ -14,6 +14,7 @@ bssgp_msgb_tlli_put; bssgp_msgb_ra_put; bssgp_parse_cell_id; +bssgp_parse_rim_pdu; bssgp_parse_rim_ri; bssgp_set_bssgp_callback; bssgp_tx_bvc_block; @@ -32,6 +33,7 @@ bssgp_tx_resume; bssgp_tx_resume_ack; bssgp_tx_resume_nack; +bssgp_tx_rim; bssgp_tx_simple_bvci; bssgp_tx_status; bssgp_tx_suspend; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22046 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I18134fd9938040d2facb6beee3732628b167ce8c Gerrit-Change-Number: 22046 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 22:52:45 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 7 Jan 2021 22:52:45 +0000 Subject: Change in osmo-gsm-tester[master]: enb: Set cipher and integrity via scenario file In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21582 ) Change subject: enb: Set cipher and integrity via scenario file ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21582 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-Change-Id: I595206b7d49016fb6d0aec175c828d9537c53886 Gerrit-Change-Number: 21582 Gerrit-PatchSet: 3 Gerrit-Owner: ninjab3s Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Reviewer: srs_andre Gerrit-Comment-Date: Thu, 07 Jan 2021 22:52:45 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 22:54:51 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 7 Jan 2021 22:54:51 +0000 Subject: Change in osmo-gsm-tester[master]: srslte_common: on stop(), send q+Enter to stdin of process In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22045 ) Change subject: srslte_common: on stop(), send q+Enter to stdin of process ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22045 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-Change-Id: Ibfd778494bf689f647e87de4ee281a468456fed0 Gerrit-Change-Number: 22045 Gerrit-PatchSet: 2 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 07 Jan 2021 22:54:51 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 22:56:29 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 7 Jan 2021 22:56:29 +0000 Subject: Change in osmo-gsm-tester[master]: enb, ue, process: move stdout counter helper to process objects In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22042 ) Change subject: enb,ue,process: move stdout counter helper to process objects ...................................................................... Patch Set 3: Code-Review-1 Some of my comments were still not addressed. -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22042 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-Change-Id: I434f072b8aa6f4dce9f90889c6b40832f6798ff8 Gerrit-Change-Number: 22042 Gerrit-PatchSet: 3 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 07 Jan 2021 22:56:29 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 23:08:50 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 7 Jan 2021 23:08:50 +0000 Subject: Change in osmo-bsc[master]: power_control: add documentation on available configuration params In-Reply-To: References: Message-ID: Hello Jenkins Builder, neels, laforge, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bsc/+/21886 to look at the new patch set (#2). Change subject: power_control: add documentation on available configuration params ...................................................................... power_control: add documentation on available configuration params Change-Id: Ib65d33f0f1dd24d39e3be581e4e072a310bc906a Related: SYS#4918 --- A doc/manuals/chapters/power_control.adoc M doc/manuals/osmobsc-usermanual.adoc 2 files changed, 303 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/86/21886/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21886 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ib65d33f0f1dd24d39e3be581e4e072a310bc906a Gerrit-Change-Number: 21886 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 23:08:50 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 7 Jan 2021 23:08:50 +0000 Subject: Change in osmo-bsc[master]: power_control: add increase / reduce step size recommendations In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bsc/+/21873 to look at the new patch set (#3). Change subject: power_control: add increase / reduce step size recommendations ...................................................................... power_control: add increase / reduce step size recommendations Change-Id: I82e762c0c2b5e0dd739850ee494ab0a798e353de Related: SYS#4918 --- M doc/manuals/chapters/power_control.adoc M src/osmo-bsc/bsc_vty.c M tests/power_ctrl.vty 3 files changed, 30 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/73/21873/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21873 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I82e762c0c2b5e0dd739850ee494ab0a798e353de Gerrit-Change-Number: 21873 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 23:11:07 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 7 Jan 2021 23:11:07 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: add utilities to send and parse BSSGP rim PDUs In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22046 ) Change subject: gprs_bssgp: add utilities to send and parse BSSGP rim PDUs ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/22046/1/include/osmocom/gprs/gprs_bssgp.h File include/osmocom/gprs/gprs_bssgp.h: https://gerrit.osmocom.org/c/libosmocore/+/22046/1/include/osmocom/gprs/gprs_bssgp.h at 45 PS1, Line 45: struct bssgp_ran_information_pdu { shouldn't this be incorporated into struct osmo_bssgp_prim somehow? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22046 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I18134fd9938040d2facb6beee3732628b167ce8c Gerrit-Change-Number: 22046 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 07 Jan 2021 23:11:07 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 23:12:42 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 7 Jan 2021 23:12:42 +0000 Subject: Change in osmo-bsc[master]: power_control: add increase / reduce step size recommendations In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21873 ) Change subject: power_control: add increase / reduce step size recommendations ...................................................................... Patch Set 3: Code-Review-1 (2 comments) https://gerrit.osmocom.org/c/osmo-bsc/+/21873/3/doc/manuals/chapters/power_control.adoc File doc/manuals/chapters/power_control.adoc: https://gerrit.osmocom.org/c/osmo-bsc/+/21873/3/doc/manuals/chapters/power_control.adoc at 209 PS3, Line 209: In 3GPP TS 45.008, lower and upper RxLev thresholds are refered as `L_RXLEV_XX_P` referred https://gerrit.osmocom.org/c/osmo-bsc/+/21873/3/doc/manuals/chapters/power_control.adoc at 210 PS3, Line 210: and `U_RXLEV_XX_P`, while the RxQual thresholds are refered as `L_RXQUAL_XX_P` and referred -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21873 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I82e762c0c2b5e0dd739850ee494ab0a798e353de Gerrit-Change-Number: 21873 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 07 Jan 2021 23:12:42 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 23:22:43 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 7 Jan 2021 23:22:43 +0000 Subject: Change in osmo-bsc[master]: power_control: add documentation on available configuration params In-Reply-To: References: Message-ID: Hello Jenkins Builder, neels, laforge, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bsc/+/21886 to look at the new patch set (#3). Change subject: power_control: add documentation on available configuration params ...................................................................... power_control: add documentation on available configuration params Change-Id: Ib65d33f0f1dd24d39e3be581e4e072a310bc906a Related: SYS#4918 --- A doc/manuals/chapters/power_control.adoc M doc/manuals/osmobsc-usermanual.adoc 2 files changed, 303 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/86/21886/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21886 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ib65d33f0f1dd24d39e3be581e4e072a310bc906a Gerrit-Change-Number: 21886 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 7 23:22:43 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 7 Jan 2021 23:22:43 +0000 Subject: Change in osmo-bsc[master]: power_control: add increase / reduce step size recommendations In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bsc/+/21873 to look at the new patch set (#4). Change subject: power_control: add increase / reduce step size recommendations ...................................................................... power_control: add increase / reduce step size recommendations Change-Id: I82e762c0c2b5e0dd739850ee494ab0a798e353de Related: SYS#4918 --- M doc/manuals/chapters/power_control.adoc M src/osmo-bsc/bsc_vty.c M tests/power_ctrl.vty 3 files changed, 30 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/73/21873/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21873 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I82e762c0c2b5e0dd739850ee494ab0a798e353de Gerrit-Change-Number: 21873 Gerrit-PatchSet: 4 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 8 00:06:15 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 8 Jan 2021 00:06:15 +0000 Subject: Change in osmo-bsc[master]: Introduce Neighbor resolution service In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21848 ) Change subject: Introduce Neighbor resolution service ...................................................................... Patch Set 4: Code-Review-1 (4 comments) CR-1 due to a memleak. https://gerrit.osmocom.org/c/osmo-bsc/+/21848/4/include/osmocom/bsc/neighbor_ident.h File include/osmocom/bsc/neighbor_ident.h: https://gerrit.osmocom.org/c/osmo-bsc/+/21848/4/include/osmocom/bsc/neighbor_ident.h at 64 PS4, Line 64: #include Let's rather add a forward declaration for 'struct ctrl_handle' above, rather than including a header in the middle of this file. https://gerrit.osmocom.org/c/osmo-bsc/+/21848/4/src/osmo-bsc/neighbor_ident.c File src/osmo-bsc/neighbor_ident.c: https://gerrit.osmocom.org/c/osmo-bsc/+/21848/4/src/osmo-bsc/neighbor_ident.c at 337 PS4, Line 337: return CTRL_CMD_REPLY; So if we reach this part, we leak the 'tmp'? Let's finally make use of OTC_SELECT! https://gerrit.osmocom.org/c/osmo-bsc/+/21848/4/src/osmo-bsc/neighbor_ident_vty.c File src/osmo-bsc/neighbor_ident_vty.c: https://gerrit.osmocom.org/c/osmo-bsc/+/21848/4/src/osmo-bsc/neighbor_ident_vty.c at 164 PS4, Line 164: cell_id = (struct gsm0808_cell_id){ This definition could be even shorter: static struct gsm0808_cell_id cell_id = { .id_discr = CELL_IDENT_WHOLE_GLOBAL_PS }; https://gerrit.osmocom.org/c/osmo-bsc/+/21848/4/src/osmo-bsc/osmo_bsc_main.c File src/osmo-bsc/osmo_bsc_main.c: https://gerrit.osmocom.org/c/osmo-bsc/+/21848/4/src/osmo-bsc/osmo_bsc_main.c at 966 PS4, Line 966: Failed to install neighbor control commands Something seems to be wrong here. "Failed to bind Neighbor Resolution Service"? -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21848 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ib07c9d23026332a207d4b7a0f7b4e76c0094e379 Gerrit-Change-Number: 21848 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-CC: laforge Gerrit-Comment-Date: Fri, 08 Jan 2021 00:06:15 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 8 00:17:00 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 8 Jan 2021 00:17:00 +0000 Subject: Change in docker-playground[master]: ttcn3-gbproxy-test: Fix pcap capture with dumpcap References: Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/22047 ) Change subject: ttcn3-gbproxy-test: Fix pcap capture with dumpcap ...................................................................... ttcn3-gbproxy-test: Fix pcap capture with dumpcap In commit 2279aac6 dumpcap is used to capture pcaps, but dumpcap fails if the directory isn't writable for everyone. Commit 62ac27779 only fixed this issue for frame relay, this simply mirrors the change for ttcn3-gbproxy-test Change-Id: I11dcf9efd0b06544a82e31dec03fe76e182fd0d3 Related: OS#4518 SYS#5115 --- M ttcn3-gbproxy-test/jenkins.sh 1 file changed, 3 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/47/22047/1 diff --git a/ttcn3-gbproxy-test/jenkins.sh b/ttcn3-gbproxy-test/jenkins.sh index acc7350..d047e56 100755 --- a/ttcn3-gbproxy-test/jenkins.sh +++ b/ttcn3-gbproxy-test/jenkins.sh @@ -10,6 +10,9 @@ network_create $SUBNET mkdir $VOL_BASE_DIR/gbproxy-tester +# if we don't change permissiosn, dumpcap fails to write (despite starting it as root!) +chmod a+w $VOL_BASE_DIR/gbproxy-tester + cp GBProxy_Tests.cfg $VOL_BASE_DIR/gbproxy-tester/ mkdir $VOL_BASE_DIR/sgsn -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22047 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I11dcf9efd0b06544a82e31dec03fe76e182fd0d3 Gerrit-Change-Number: 22047 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 8 00:20:14 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 8 Jan 2021 00:20:14 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Fix suspend/resume tests References: Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22048 ) Change subject: Fix suspend/resume tests ...................................................................... Fix suspend/resume tests Ensure that a suspend/resume was sent before sending the *_(N)ACK. In reality these can only happen together and our TLLI cache removes the entries after it sees the corresponding (N)ACK so it will not forward the second message. Change-Id: Ie0fd81edb748d3c638e42c4418ca514095c55861 Related: SYS#4865, OS#4472 --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 12 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/48/22048/1 diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index 59154e8..475b647 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -1024,6 +1024,12 @@ f_global_sgsn2pcu(pdu_tx, pdu_rx); + pdu_tx := ts_BSSGP_SUSPEND(tlli, ra_id); + /* we cannot use pdu_tx as there are some subtle differences in the length field :/ */ + pdu_rx := tr_BSSGP_SUSPEND(tlli, ra_id); + + f_global_pcu2sgsn(pdu_tx, pdu_rx); + /* These messages are simple passed through so just also test sending NACK */ pdu_tx := ts_BSSGP_SUSPEND_NACK(tlli, ra_id, BSSGP_CAUSE_UNKNOWN_MS); /* we cannot use pdu_tx as there are some subtle differences in the length field :/ */ @@ -1060,6 +1066,12 @@ f_global_sgsn2pcu(pdu_tx, pdu_rx); + pdu_tx := ts_BSSGP_RESUME(tlli, ra_id, int2oct(i, 1)); + /* we cannot use pdu_tx as there are some subtle differences in the length field :/ */ + pdu_rx := tr_BSSGP_RESUME(tlli, ra_id, int2oct(i, 1)); + + f_global_pcu2sgsn(pdu_tx, pdu_rx); + /* These messages are simple passed through so just also test sending NACK */ pdu_tx := ts_BSSGP_RESUME_NACK(tlli, ra_id, BSSGP_CAUSE_UNKNOWN_MS); /* we cannot use pdu_tx as there are some subtle differences in the length field :/ */ -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22048 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ie0fd81edb748d3c638e42c4418ca514095c55861 Gerrit-Change-Number: 22048 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 8 00:20:15 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 8 Jan 2021 00:20:15 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Fix TC_bvc_reset_sig_from_sgsn References: Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22049 ) Change subject: gbproxy: Fix TC_bvc_reset_sig_from_sgsn ...................................................................... gbproxy: Fix TC_bvc_reset_sig_from_sgsn The port receive operation only considers the first message in the queue. We need to drain unrelated status/reset messages, such as those from PTP BVCs, otherwise the test never completes and times out. Change-Id: I1f2c76ae9bdc0267bfca60536e321fe88530803c Related: SYS#5115 OS#4518 --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 15 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/49/22049/1 diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index 475b647..00f6e2e 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -2305,24 +2305,38 @@ f_cleanup(); } +private altstep as_ignore_mgmt(BSSGP_BVC_MGMT_PT pt) { + [] pt.receive {repeat; } +} + private altstep as_count_bvc0_block(integer pcu_idx, Nsei nsei, inout ro_integer roi) runs on test_CT { var BSSGP_CT pcu_ct := g_pcu[pcu_idx].vc_BSSGP; [] PCU_MGMT.receive(BssgpResetIndication:{0}) from pcu_ct { roi := roi & { nsei }; + repeat; } } + /* reset the signaling BVC from the SGSN; expect all signaling BVC on all BSS to be reset */ testcase TC_bvc_reset_sig_from_sgsn() runs on test_CT { f_init(); f_sleep(3.0); + SGSN_MGMT.clear; + PCU_MGMT.clear; + /* Start BVC-RESET procedure for BVCI=0 */ SGSN_MGMT.send(BssgpResetRequest:{cause:=BSSGP_CAUSE_OM_INTERVENTION}) to g_sgsn[0].vc_BSSGP; + /* Defaults match in reverse activation order, this one is a catch-all for Status indications + * and reset indications sent from other components (like the ptp_bvcs). If we don't drain + * the port and a different message sits at the front we wait forever and fail the test. + */ + var ro_default defaults := { activate(as_ignore_mgmt(PCU_MGMT)) }; + /* Activate altsteps: One for each PCU NSE */ - var ro_default defaults := {}; for (var integer i := 0; i < lengthof(g_pcu); i := i+1) { var NSConfiguration nscfg := mp_nsconfig_pcu[i]; var default d := activate(as_count_bvc0_block(i, nscfg.nsei, g_roi)); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22049 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I1f2c76ae9bdc0267bfca60536e321fe88530803c Gerrit-Change-Number: 22049 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 8 00:25:35 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 8 Jan 2021 00:25:35 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: add utilities to send and parse BSSGP rim PDUs In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22046 ) Change subject: gprs_bssgp: add utilities to send and parse BSSGP rim PDUs ...................................................................... Patch Set 1: Code-Review-1 (7 comments) CR-1 due to wrong array index. https://gerrit.osmocom.org/c/libosmocore/+/22046/1/src/gb/gprs_bssgp_util.c File src/gb/gprs_bssgp_util.c: https://gerrit.osmocom.org/c/libosmocore/+/22046/1/src/gb/gprs_bssgp_util.c at 593 PS1, Line 593: struct bssgp_ran_information_pdu *pdu const https://gerrit.osmocom.org/c/libosmocore/+/22046/1/src/gb/gprs_bssgp_util.c at 621 PS1, Line 621: LOGL_NOTICE DEBUG? https://gerrit.osmocom.org/c/libosmocore/+/22046/1/src/gb/gprs_bssgp_util.c at 644 PS1, Line 644: struct msgb *msg const https://gerrit.osmocom.org/c/libosmocore/+/22046/1/src/gb/gprs_bssgp_util.c at 653 PS1, Line 653: data_len I would better check if the resulting length is not negative. https://gerrit.osmocom.org/c/libosmocore/+/22046/1/src/gb/gprs_bssgp_util.c at 661 PS1, Line 661: pdu->routing_info_dest = Cosmetic: no need for line breaks here. https://gerrit.osmocom.org/c/libosmocore/+/22046/1/src/gb/gprs_bssgp_util.c at 672 PS1, Line 672: 0 Wrong index, it should be 1! https://gerrit.osmocom.org/c/libosmocore/+/22046/1/src/gb/gprs_bssgp_util.c at 704 PS1, Line 704: return 0; Makes sense to check if the IEs are not empty. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22046 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I18134fd9938040d2facb6beee3732628b167ce8c Gerrit-Change-Number: 22046 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 08 Jan 2021 00:25:35 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 8 00:37:57 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 8 Jan 2021 00:37:57 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Fix race during shutdown References: Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22050 ) Change subject: Fix race during shutdown ...................................................................... Fix race during shutdown To avoid a dynamic test case error we need to prevent messages arriving on unconnected ports. Waiting some time before stopping components ensures that any messages "in flight" will be delivered to the port before the component is shutdown and disconnected. It would be far nicer to mark a testresult "final" and ignore such errors on shutdown, but I don't think it's possible in TTCN3. This fixes TC_fc_bvc on my laptop which consistently failed with a DTE before. Change-Id: I98928f24745125642225681d13bf2e78691e9747 Related: SYS#5115, OS#4518 --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 5 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/50/22050/1 diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index 00f6e2e..62daaf4 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -526,6 +526,11 @@ function f_cleanup() runs on test_CT { var integer i; + /* To avoid a dynamic test case error we need to prevent messages arriving on unconnected + * ports. Waiting here ensures that any messages "in flight" will be delivered to the port + * before the component is shutdown and disconnected. */ + f_sleep(0.2); + for (i := 0; i < lengthof(mp_nsconfig_sgsn); i := i+1) { f_destroy_gb(g_sgsn[i]); } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22050 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I98928f24745125642225681d13bf2e78691e9747 Gerrit-Change-Number: 22050 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 8 01:07:45 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 8 Jan 2021 01:07:45 +0000 Subject: Change in docker-playground[master]: ttcn3-gbproxy-test: Fix pcap capture with dumpcap In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22047 ) Change subject: ttcn3-gbproxy-test: Fix pcap capture with dumpcap ...................................................................... Patch Set 1: Verified+1 Works locally (captures pcaps) -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22047 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I11dcf9efd0b06544a82e31dec03fe76e182fd0d3 Gerrit-Change-Number: 22047 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Fri, 08 Jan 2021 01:07:45 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 8 01:23:24 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 8 Jan 2021 01:23:24 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Implment TLLI cache and use it for SUSPEND/RESUME In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21960 ) Change subject: gbproxy: Implment TLLI cache and use it for SUSPEND/RESUME ...................................................................... Patch Set 1: (2 comments) This change is ready for review. https://gerrit.osmocom.org/c/osmo-sgsn/+/21960/1/include/osmocom/sgsn/gb_proxy.h File include/osmocom/sgsn/gb_proxy.h: https://gerrit.osmocom.org/c/osmo-sgsn/+/21960/1/include/osmocom/sgsn/gb_proxy.h at 177 PS1, Line 177: struct > a per-second granularity counter would probably be sufficient, but then I'm likely over-optimizing. I'm only considering the second anyway. Changed https://gerrit.osmocom.org/c/osmo-sgsn/+/21960/1/src/gbproxy/gb_proxy_peer.c File src/gbproxy/gb_proxy_peer.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/21960/1/src/gbproxy/gb_proxy_peer.c at 215 PS1, Line 215: } > missing return before the end of the block? Ack -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21960 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I42adf70f560d2bb358a9e1c7614281e8d2967568 Gerrit-Change-Number: 21960 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-Comment-Date: Fri, 08 Jan 2021 01:23:24 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: laforge Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 8 01:24:25 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 8 Jan 2021 01:24:25 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Implement TLLI cache and use it for SUSPEND/RESUME In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21960 to look at the new patch set (#3). Change subject: gbproxy: Implement TLLI cache and use it for SUSPEND/RESUME ...................................................................... gbproxy: Implement TLLI cache and use it for SUSPEND/RESUME When routing a SUSPEND/RESUME we need to keep track of where it came from so we can send the (N)ACK back to the correct BSS. Use the TLLI which is present in both messages to cache and retrieve the correct BSS. A timer runs every two seconds and expires entries that are older than the timeout (hardcoded to 5 seconds for now). Related: SYS#4865, OS#4472 Change-Id: I42adf70f560d2bb358a9e1c7614281e8d2967568 --- M include/osmocom/sgsn/gb_proxy.h M src/gbproxy/gb_proxy.c M src/gbproxy/gb_proxy_peer.c 3 files changed, 172 insertions(+), 10 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/60/21960/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21960 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I42adf70f560d2bb358a9e1c7614281e8d2967568 Gerrit-Change-Number: 21960 Gerrit-PatchSet: 3 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 8 01:24:42 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 8 Jan 2021 01:24:42 +0000 Subject: Change in osmo-bts[master]: power_control: migrate MS/BS control loops to the new params In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/21993 to look at the new patch set (#2). Change subject: power_control: migrate MS/BS control loops to the new params ...................................................................... power_control: migrate MS/BS control loops to the new params In change [1] the new power control structures and default params were introduced. In change [2], the existing VTY commands for MS power control in the BTS were deprecated and changed to use the new structures as storage. Finally, in change [3], handling of the power control parameters on the A-bis/RSL was implemented. This change is the final logical step in the mentioned chain: it makes both MS/BS power control loops use the new parameters, and removes the old structures. The actual implementation of both power control loops remains the same, however the expected output of some unit tests for the Downlink loop needs to be changed: - TC_fixed_mode: disabling dynamic power control becomes a separate step of the test script since the field 'fixed' is removed; - TC_rxlev_target: RxLev thresholds are printed 'as-is'. Not all of the new parameters are used by the power control loops yet. Further improvements to be done in the follow up commits. [1] I6d41eb238aa6d4f5b77596c5477c2ecbe86de2a8 [2] Icbd9a7d31ce6723294130a31a179a002fccb4612 [3] I5a901eca5a78a0335a6954064e602e65cda85390 Change-Id: Ib18f84c40227841d95a36063a6789bf63054fc2e Related: SYS#4918 --- M include/osmo-bts/bts.h M include/osmo-bts/gsm_data.h M src/common/bts.c M src/common/power_control.c M src/common/rsl.c M src/common/vty.c M src/osmo-bts-lc15/oml.c M src/osmo-bts-oc2g/oml.c M src/osmo-bts-sysmo/oml.c M src/osmo-bts-sysmo/sysmobts_vty.c M src/osmo-bts-trx/trx_vty.c M tests/power/bs_power_loop_test.c M tests/power/bs_power_loop_test.ok M tests/power/ms_power_loop_test.c 14 files changed, 181 insertions(+), 153 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/93/21993/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21993 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib18f84c40227841d95a36063a6789bf63054fc2e Gerrit-Change-Number: 21993 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 8 01:24:42 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 8 Jan 2021 01:24:42 +0000 Subject: Change in osmo-bts[master]: power_control: generalize measurement pre-processing state In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/21907 to look at the new patch set (#6). Change subject: power_control: generalize measurement pre-processing state ...................................................................... power_control: generalize measurement pre-processing state This way EWMA based filtering can also be applied to RxQual. Change-Id: I439c00b394da670e314f217b3246cc85ce8213c6 Related: SYS#4918, SYS#4917 --- M include/osmo-bts/gsm_data.h M src/common/power_control.c M tests/power/ms_power_loop_test.c 3 files changed, 35 insertions(+), 22 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/07/21907/6 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21907 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I439c00b394da670e314f217b3246cc85ce8213c6 Gerrit-Change-Number: 21907 Gerrit-PatchSet: 6 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 8 01:33:58 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 8 Jan 2021 01:33:58 +0000 Subject: Change in osmo-bts[master]: power_control: properly track the first initial state References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/22051 ) Change subject: power_control: properly track the first initial state ...................................................................... power_control: properly track the first initial state Change-Id: I16e7474b5affbd90855a2e407b305e9dec581dfa Related: SYS#4918, SYS#4917 --- M include/osmo-bts/gsm_data.h M src/common/power_control.c 2 files changed, 3 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/51/22051/1 diff --git a/include/osmo-bts/gsm_data.h b/include/osmo-bts/gsm_data.h index 253b115..8071a28 100644 --- a/include/osmo-bts/gsm_data.h +++ b/include/osmo-bts/gsm_data.h @@ -215,6 +215,8 @@ /* Measurement pre-processing state */ struct gsm_power_ctrl_meas_proc_state { + /* Number of measurements processed */ + unsigned int meas_num; /* Algorithm specific data */ union { struct { diff --git a/src/common/power_control.c b/src/common/power_control.c index 0629630..5e2e85e 100644 --- a/src/common/power_control.c +++ b/src/common/power_control.c @@ -78,7 +78,7 @@ int *Avg100 = &mps->ewma.Avg100; /* We don't have 'Avg[n - 1]' if this is the first run */ - if (*Avg100 == 0) { + if (mps->meas_num++ == 0) { *Avg100 = Val * EWMA_SCALE_FACTOR; return Val; } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22051 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I16e7474b5affbd90855a2e407b305e9dec581dfa Gerrit-Change-Number: 22051 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Fri Jan 8 01:39:43 2021 From: admin at opensuse.org (OBS Notification) Date: Fri, 08 Jan 2021 01:39:43 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in openSUSE_Tumbleweed/i586 In-Reply-To: References: Message-ID: <5ff7b7ff2181b_35dd2aba60cf45f045867a@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-pcu/openSUSE_Tumbleweed/i586 Package network:osmocom:nightly/osmo-pcu failed to build in openSUSE_Tumbleweed/i586 Check out the package for editing: osc checkout network:osmocom:nightly osmo-pcu Last lines of build log: [ 52s] CXX encoding.lo [ 52s] CXX sba.lo [ 53s] CXX decoding.lo [ 53s] CXX llc.lo [ 53s] CXX rlc.lo [ 53s] CXX osmobts_sock.lo [ 53s] CC gprs_codel.lo [ 53s] CXX egprs_rlc_compression.lo [ 53s] CC coding_scheme.lo [ 54s] CXXLD libgprs.la [ 55s] copying selected object files to avoid basename conflicts... [ 55s] CXXLD osmo-pcu [ 55s] /usr/lib/gcc/i586-suse-linux/10/../../../../i586-suse-linux/bin/ld: cannot find -lmnl [ 55s] collect2: error: ld returned 1 exit status [ 55s] make[1]: *** [Makefile:723: osmo-pcu] Error 1 [ 55s] make[1]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-pcu-0.8.0.301.480c/src' [ 55s] make: *** [Makefile:416: all-recursive] Error 1 [ 55s] error: Bad exit status from /var/tmp/rpm-tmp.T1J2Er (%build) [ 55s] [ 55s] [ 55s] RPM build errors: [ 55s] Bad exit status from /var/tmp/rpm-tmp.T1J2Er (%build) [ 55s] ### VM INTERACTION START ### [ 58s] [ 49.873153] sysrq: Power Off [ 58s] [ 49.880188] reboot: Power down [ 58s] ### VM INTERACTION END ### [ 58s] [ 58s] lamb05 failed "build osmo-pcu.spec" at Fri Jan 8 01:39:26 UTC 2021. [ 58s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Jan 8 01:42:51 2021 From: admin at opensuse.org (OBS Notification) Date: Fri, 08 Jan 2021 01:42:51 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in openSUSE_Leap_15.1_ARM/aarch64 In-Reply-To: References: Message-ID: <5ff7b8b054d31_35dd2aba60cf45f0459091@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-pcu/openSUSE_Leap_15.1_ARM/aarch64 Package network:osmocom:nightly/osmo-pcu failed to build in openSUSE_Leap_15.1_ARM/aarch64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-pcu Last lines of build log: [ 107s] CXX sba.lo [ 107s] CXX decoding.lo [ 108s] CXX llc.lo [ 109s] CXX rlc.lo [ 109s] CXX osmobts_sock.lo [ 109s] CC gprs_codel.lo [ 110s] CC coding_scheme.lo [ 110s] CXX egprs_rlc_compression.lo [ 111s] CXX pcu_main.o [ 112s] CXXLD libgprs.la [ 112s] copying selected object files to avoid basename conflicts... [ 112s] CXXLD osmo-pcu [ 113s] /usr/lib64/gcc/aarch64-suse-linux/7/../../../../aarch64-suse-linux/bin/ld: cannot find -lmnl [ 113s] collect2: error: ld returned 1 exit status [ 113s] make[1]: *** [Makefile:696: osmo-pcu] Error 1 [ 113s] make[1]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-pcu-0.8.0.301.480c/src' [ 113s] make: *** [Makefile:416: all-recursive] Error 1 [ 113s] error: Bad exit status from /var/tmp/rpm-tmp.KQVC8w (%build) [ 113s] [ 113s] [ 113s] RPM build errors: [ 113s] Bad exit status from /var/tmp/rpm-tmp.KQVC8w (%build) [ 113s] ### VM INTERACTION START ### [ 116s] [ 88.142181] sysrq: SysRq : Power Off [ 116s] [ 88.171046] reboot: Power down [ 116s] ### VM INTERACTION END ### [ 116s] [ 116s] obs-arm-9 failed "build osmo-pcu.spec" at Fri Jan 8 01:42:41 UTC 2021. [ 116s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Jan 8 01:44:34 2021 From: admin at opensuse.org (OBS Notification) Date: Fri, 08 Jan 2021 01:44:34 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in Debian_8.0/i586 In-Reply-To: References: Message-ID: <5ff7b90853b8d_35dd2aba60cf45f04593d3@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-pcu/Debian_8.0/i586 Package network:osmocom:nightly/osmo-pcu failed to build in Debian_8.0/i586 Check out the package for editing: osc checkout network:osmocom:nightly osmo-pcu Last lines of build log: [ 139s] CXX llc.lo [ 140s] CXX rlc.lo [ 141s] CXX osmobts_sock.lo [ 141s] CC gprs_codel.lo [ 142s] CC coding_scheme.lo [ 142s] CXX egprs_rlc_compression.lo [ 142s] CXXLD libgprs.la [ 142s] copying selected object files to avoid basename conflicts... [ 142s] CXX pcu_main.o [ 143s] CXXLD osmo-pcu [ 143s] /usr/bin/ld: cannot find -lmnl [ 143s] collect2: error: ld returned 1 exit status [ 143s] Makefile:684: recipe for target 'osmo-pcu' failed [ 143s] make[2]: *** [osmo-pcu] Error 1 [ 143s] make[2]: Leaving directory '/usr/src/packages/BUILD/src' [ 143s] Makefile:405: recipe for target 'all-recursive' failed [ 143s] make[1]: *** [all-recursive] Error 1 [ 143s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 143s] dh_auto_build: make -j1 returned exit code 2 [ 143s] debian/rules:12: recipe for target 'build' failed [ 143s] make: *** [build] Error 2 [ 143s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 143s] ### VM INTERACTION START ### [ 144s] Powering off. [ 144s] [ 136.958265] reboot: Power down [ 144s] ### VM INTERACTION END ### [ 144s] [ 144s] goat03 failed "build osmo-pcu_0.8.0.301.480c.dsc" at Fri Jan 8 01:43:59 UTC 2021. [ 144s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Jan 8 01:44:51 2021 From: admin at opensuse.org (OBS Notification) Date: Fri, 08 Jan 2021 01:44:51 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.10/x86_64 In-Reply-To: References: Message-ID: <5ff7b928a3c3a_35dd2aba60cf45f04595ea@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/xUbuntu_20.10/x86_64 Package network:osmocom:nightly/simtrace2 failed to build in xUbuntu_20.10/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 124s] [COMPILING apps/dfu/main.c] [ 124s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 124s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 125s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 125s] Memory region Used Size Region Size %age Used [ 125s] rom: 16580 B 16 KB 101.20% [ 125s] ram: 11672 B 48 KB 23.75/usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 125s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 125s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 125s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 125s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 125s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 125s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 196 bytes [ 125s] collect2: error: ld returned 1 exit status [ 125s] % [ 125s] make[2]: *** [Makefile:234: flash] Error 1 [ 125s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 125s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 125s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 125s] dh_auto_build: error: make -j1 returned exit code 2 [ 125s] make: *** [debian/rules:16: build] Error 25 [ 125s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 125s] ### VM INTERACTION START ### [ 128s] [ 116.584285] sysrq: Power Off [ 128s] [ 116.590353] reboot: Power down [ 128s] ### VM INTERACTION END ### [ 128s] [ 128s] sheep88 failed "build simtrace2_0.7.0.69.aadd.dsc" at Fri Jan 8 01:44:43 UTC 2021. [ 128s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Jan 8 01:45:09 2021 From: admin at opensuse.org (OBS Notification) Date: Fri, 08 Jan 2021 01:45:09 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in CentOS_8/aarch64 In-Reply-To: References: Message-ID: <5ff7b92b3b2f0_35dd2aba60cf45f045979a@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-pcu/CentOS_8/aarch64 Package network:osmocom:nightly/osmo-pcu failed to build in CentOS_8/aarch64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-pcu Last lines of build log: [ 127s] CXX encoding.lo [ 127s] CXX sba.lo [ 128s] CXX decoding.lo [ 129s] CXX llc.lo [ 129s] CXX rlc.lo [ 130s] CXX osmobts_sock.lo [ 130s] CC gprs_codel.lo [ 131s] CC coding_scheme.lo [ 131s] CXX egprs_rlc_compression.lo [ 133s] CXXLD libgprs.la [ 133s] copying selected object files to avoid basename conflicts... [ 133s] CXXLD osmo-pcu [ 134s] /usr/bin/ld: cannot find -lmnl [ 134s] collect2: error: ld returned 1 exit status [ 134s] make[1]: *** [Makefile:723: osmo-pcu] Error 1 [ 134s] make[1]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-pcu-0.8.0.301.480c/src' [ 134s] make: *** [Makefile:416: all-recursive] Error 1 [ 134s] error: Bad exit status from /var/tmp/rpm-tmp.5HrKdc (%build) [ 134s] [ 134s] [ 134s] RPM build errors: [ 134s] Bad exit status from /var/tmp/rpm-tmp.5HrKdc (%build) [ 134s] ### VM INTERACTION START ### [ 135s] Powering off. [ 135s] [ 114.447390] reboot: Power down [ 135s] ### VM INTERACTION END ### [ 135s] [ 135s] obs-arm-8 failed "build osmo-pcu.spec" at Fri Jan 8 01:44:56 UTC 2021. [ 135s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Jan 8 01:45:43 2021 From: admin at opensuse.org (OBS Notification) Date: Fri, 08 Jan 2021 01:45:43 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in Debian_9.0/i586 In-Reply-To: References: Message-ID: <5ff7b9664b48a_35dd2aba60cf45f045981a@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-pcu/Debian_9.0/i586 Package network:osmocom:nightly/osmo-pcu failed to build in Debian_9.0/i586 Check out the package for editing: osc checkout network:osmocom:nightly osmo-pcu Last lines of build log: [ 369s] copying selected object files to avoid basename conflicts... [ 369s] libtool: link: ln .libs/gprs_rlcmac_sched.o .libs/libgprs.lax/lt1-gprs_rlcmac_sched.o || cp .libs/gprs_rlcmac_sched.o .libs/libgprs.lax/lt1-gprs_rlcmac_sched.o [ 369s] libtool: link: ar cru .libs/libgprs.a .libs/gprs_debug.o .libs/csn1.o .libs/gsm_rlcmac.o .libs/gprs_bssgp_pcu.o .libs/gprs_rlcmac.o .libs/gprs_rlcmac_sched.o .libs/gprs_rlcmac_meas.o .libs/gprs_rlcmac_ts_alloc.o .libs/gprs_ms.o .libs/gprs_ms_storage.o .libs/gsm_timer.o .libs/pcu_l1_if.o .libs/pcu_vty.o .libs/pcu_vty_functions.o .libs/mslot_class.o .libs/tbf.o .libs/tbf_ul.o .libs/tbf_dl.o .libs/bts.o .libs/pdch.o .libs/poll_controller.o .libs/encoding.o .libs/sba.o .libs/decoding.o .libs/llc.o .libs/rlc.o .libs/osmobts_sock.o .libs/gprs_codel.o .libs/coding_scheme.o .libs/egprs_rlc_compression.o .libs/libgprs.lax/lt1-gprs_rlcmac_sched.o [ 369s] ar: `u' modifier ignored since `D' is the default (see `U') [ 369s] libtool: link: ranlib .libs/libgprs.a [ 369s] libtool: link: rm -fr .libs/libgprs.lax [ 369s] libtool: link: ( cd ".libs" && rm -f "libgprs.la" && ln -s "../libgprs.la" "libgprs.la" ) [ 369s] g++ -DPACKAGE_NAME=\"osmo-pcu\" -DPACKAGE_TARNAME=\"osmo-pcu\" -DPACKAGE_VERSION=\"0.8.0.301-480c\" -DPACKAGE_STRING=\"osmo-pcu\ 0.8.0.301-480c\" -DPACKAGE_BUGREPORT=\"osmocom-net-gprs at lists.osmocom.org\" -DPACKAGE_URL=\"\" -DPACKAGE=\"osmo-pcu\" -DVERSION=\"0.8.0.301-480c\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DSTDC_HEADERS=1 -I. -I../include -Wall -pthread -I/usr/include/ -fno-strict-aliasing -I/usr/include/ -I/usr/include/ -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -ldl -pthread -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu++03 -c -o pcu_main.o pcu_main.cpp [ 369s] /bin/bash ../libtool --tag=CXX --mode=link g++ -Wall -ldl -pthread -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu++03 -lrt -Wl,-z,relro -Wl,-z,now -o osmo-pcu pcu_main.o libgprs.la -ltalloc -losmogb -losmovty -losmocore -lmnl -ltalloc -losmocore -ltalloc -losmogsm -losmocore [ 370s] libtool: link: g++ -Wall -pthread -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu++03 -Wl,-z -Wl,relro -Wl,-z -Wl,now -o osmo-pcu pcu_main.o ./.libs/libgprs.a -ldl -lrt /usr/lib/i386-linux-gnu/libosmogb.so /usr/lib/i386-linux-gnu/libosmovty.so -lmnl -ltalloc /usr/lib/i386-linux-gnu/libosmogsm.so /usr/lib/i386-linux-gnu/libosmocore.so -pthread [ 370s] /usr/bin/ld: cannot find -lmnl [ 370s] collect2: error: ld returned 1 exit status [ 370s] Makefile:696: recipe for target 'osmo-pcu' failed [ 370s] make[2]: *** [osmo-pcu] Error 1 [ 370s] make[2]: Leaving directory '/usr/src/packages/BUILD/src' [ 370s] Makefile:417: recipe for target 'all-recursive' failed [ 370s] make[1]: *** [all-recursive] Error 1 [ 370s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 370s] dh_auto_build: make -j1 returned exit code 2 [ 370s] debian/rules:12: recipe for target 'build' failed [ 370s] make: *** [build] Error 2 [ 370s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 370s] ### VM INTERACTION START ### [ 373s] [ 358.940082] sysrq: Power Off [ 373s] [ 358.945726] reboot: Power down [ 373s] ### VM INTERACTION END ### [ 373s] [ 373s] lamb25 failed "build osmo-pcu_0.8.0.301.480c.dsc" at Fri Jan 8 01:45:25 UTC 2021. [ 373s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Jan 8 01:47:09 2021 From: admin at opensuse.org (OBS Notification) Date: Fri, 08 Jan 2021 01:47:09 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in openSUSE_Factory_ARM/aarch64 In-Reply-To: References: Message-ID: <5ff7b9a28021b_35dd2aba60cf45f04604b2@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-pcu/openSUSE_Factory_ARM/aarch64 Package network:osmocom:nightly/osmo-pcu failed to build in openSUSE_Factory_ARM/aarch64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-pcu Last lines of build log: [ 276s] CXX encoding.lo [ 277s] CXX sba.lo [ 278s] CXX decoding.lo [ 278s] CXX llc.lo [ 281s] CXX rlc.lo [ 282s] CXX osmobts_sock.lo [ 285s] CC gprs_codel.lo [ 287s] CC coding_scheme.lo [ 287s] CXX egprs_rlc_compression.lo [ 293s] CXXLD libgprs.la [ 295s] copying selected object files to avoid basename conflicts... [ 296s] CXXLD osmo-pcu [ 298s] /usr/lib64/gcc/aarch64-suse-linux/10/../../../../aarch64-suse-linux/bin/ld: cannot find -lmnl [ 298s] collect2: error: ld returned 1 exit status [ 298s] make[1]: *** [Makefile:723: osmo-pcu] Error 1 [ 298s] make[1]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-pcu-0.8.0.301.480c/src' [ 298s] make: *** [Makefile:416: all-recursive] Error 1 [ 298s] error: Bad exit status from /var/tmp/rpm-tmp.1lZcqV (%build) [ 298s] [ 298s] [ 298s] RPM build errors: [ 298s] Bad exit status from /var/tmp/rpm-tmp.1lZcqV (%build) [ 298s] ### VM INTERACTION START ### [ 301s] [ 218.156366] sysrq: Power Off [ 301s] [ 218.173758] reboot: Power down [ 301s] ### VM INTERACTION END ### [ 301s] [ 301s] obs-arm-2 failed "build osmo-pcu.spec" at Fri Jan 8 01:46:52 UTC 2021. [ 301s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Jan 8 01:47:43 2021 From: admin at opensuse.org (OBS Notification) Date: Fri, 08 Jan 2021 01:47:43 +0000 Subject: Build failure of network:osmocom:nightly/open5gs in Debian_10/i586 In-Reply-To: References: Message-ID: <5ff7b9da4fe77_35dd2aba60cf45f04606c2@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/open5gs/Debian_10/i586 Package network:osmocom:nightly/open5gs failed to build in Debian_10/i586 Check out the package for editing: osc checkout network:osmocom:nightly open5gs Last lines of build log: [ 858s] [2541/2541] cc -o tests/handover/handover 'tests/handover/63da1a3@@handover at exe/abts-main.c.o' 'tests/handover/63da1a3@@handover at exe/epc-x2-test.c.o' 'tests/handover/63da1a3@@handover at exe/epc-s1-test.c.o' 'tests/handover/63da1a3@@handover at exe/5gc-xn-test.c.o' -Wl,--no-undefined -Wl,--as-needed -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z,relro -Wl,-z,now -Wl,--start-group tests/app/libtestapp.a tests/common/libtestcomon.a lib/core/libogscore.so.2.1.1 lib/app/libogsapp.so.2.1.1 lib/dbi/libogsdbi.so.2.1.1 lib/crypt/libogscrypt.so.2.1.1 lib/sctp/libogssctp.so.2.1.1 lib/gtp/libogsgtp.so.2.1.1 lib/s1ap/libogss1ap.so.2.1.1 lib/asn1c/s1ap/libogsasn1c-s1ap.so.2.1.1 lib/asn1c/common/libogsasn1c-common.so.2.1.1 lib/asn1c/util/libogsasn1c-util.so.2.1.1 lib/ngap/libogsngap.so.2.1.1 lib/asn1c/ngap/libogsasn1c-ngap.so.2.1.1 lib/nas/eps/libogsnas-eps.so.2.1.1 lib/nas/common/libogsnas-common.so.2.1.1 lib/nas/5gs/libogsnas-5gs.so.2.1.1 lib/diameter/rx/libogsdiameter-rx.so.2.1.1 lib/diameter/common/libogsdiameter-common.so.2.1.1 subprojects/freeDiameter/libfdcore/libfdcore.so.1.3.2 subprojects/freeDiameter/libfdproto/libfdproto.so.1.3.2 /usr/lib/i386-linux-gnu/libyaml.so /usr/lib/gcc/i686-linux-gnu/8/../../../i386-linux-gnu/libmongoc-1.0.so /usr/lib/gcc/i686-linux-gnu/8/../../../i386-linux-gnu/libbson-1.0.so -lsctp -lidn -ldl -lsctp -lgcrypt -lgnutls -lsctp -lidn -ldl -lsctp -lgcrypt -lgnutls -lsctp -lidn -ldl -lsctp -lgcrypt -lgnutls -Wl,--end-group -pthread '-Wl,-rpath,$ORIGIN/../app:$ORIGIN/../common:$ORIGIN/../../lib/core:$ORIGIN/../../lib/app:$ORIGIN/../../lib/dbi:$ORIGIN/../../lib/crypt:$ORIGIN/../../lib/sctp:$ORIGIN/../../lib/gtp:$ORIGIN/../../lib/s1ap:$ORIGIN/../../lib/asn1c/s1ap:$ORIGIN/../../lib/asn1c/common:$ORIGIN/../../lib/asn1c/util:$ORIGIN/../../lib/ngap:$ORIGIN/../../lib/asn1c/ngap:$ORIGIN/../../lib/nas/eps:$ORIGIN/../../lib/nas/common:$ORIGIN/../../lib/nas/5gs:$ORIGIN/../../lib/diameter/rx:$ORIGIN/../../lib/diameter/common:$ORIGIN/../../subprojects/freeDiameter/libfdcore:$ORIGIN/../../subprojects/freeDiameter/libfdproto' -Wl,-rpath-link,/usr/src/packages/BUILD/obj-i686-linux-gnu/tests/app:/usr/src/packages/BUILD/obj-i686-linux-gnu/tests/common:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/core:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/app:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/dbi:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/crypt:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/sctp:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/gtp:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/s1ap:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/asn1c/s1ap:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/asn1c/common:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/asn1c/util:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/ngap:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/asn1c/ngap:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/nas/eps:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/nas/common:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/nas/5gs:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/diameter/rx:/usr/src/packages/BUILD/obj-i686-linux-gnu/lib/diameter/common:/usr/src/packages/BUILD/obj-i686-linux-gnu/subprojects/freeDiameter/libfdcore:/usr/src/packages/BUILD/obj-i686-linux-gnu/subprojects/freeDiameter/libfdproto [ 858s] debian/rules override_dh_auto_test [ 858s] make[1]: Entering directory '/usr/src/packages/BUILD' [ 858s] cd obj-i686-linux-gnu && meson test --suite unit [ 859s] ninja: Entering directory `/usr/src/packages/BUILD/obj-i686-linux-gnu' [ 860s] ninja: no work to do. [ 867s] 1/3 open5gs:unit / core OK 7.29 s [ 867s] 2/3 open5gs:unit / crypt OK 0.18 s [ 867s] 3/3 open5gs:unit / unit FAIL 0.07 s (exit status 1) [ 867s] [ 867s] Ok: 2 [ 867s] Expected Fail: 0 [ 867s] Fail: 1 [ 867s] Unexpected Pass: 0 [ 867s] Skipped: 0 [ 867s] Timeout: 0 [ 867s] [ 867s] Full log written to /usr/src/packages/BUILD/obj-i686-linux-gnu/meson-logs/testlog.txt [ 867s] make[1]: *** [debian/rules:17: override_dh_auto_test] Error 1 [ 867s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 867s] make: *** [debian/rules:11: binary] Error 2 [ 867s] dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 [ 867s] ### VM INTERACTION START ### [ 871s] [ 821.735051] sysrq: Power Off [ 871s] [ 821.817217] reboot: Power down [ 871s] ### VM INTERACTION END ### [ 871s] [ 871s] lamb21 failed "build open5gs_2.1.1.20210108.dsc" at Fri Jan 8 01:47:23 UTC 2021. [ 871s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Jan 8 01:49:26 2021 From: admin at opensuse.org (OBS Notification) Date: Fri, 08 Jan 2021 01:49:26 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in openSUSE_Tumbleweed/x86_64 In-Reply-To: References: Message-ID: <5ff7ba38d56c9_35dd2aba60cf45f0460762@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-pcu/openSUSE_Tumbleweed/x86_64 Package network:osmocom:nightly/osmo-pcu failed to build in openSUSE_Tumbleweed/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-pcu Last lines of build log: [ 29s] CXX encoding.lo [ 29s] CXX sba.lo [ 29s] CXX decoding.lo [ 29s] CXX llc.lo [ 29s] CXX rlc.lo [ 29s] CXX osmobts_sock.lo [ 29s] CC gprs_codel.lo [ 29s] CC coding_scheme.lo [ 29s] CXX egprs_rlc_compression.lo [ 30s] CXXLD libgprs.la [ 30s] copying selected object files to avoid basename conflicts... [ 30s] CXXLD osmo-pcu [ 30s] /usr/lib64/gcc/x86_64-suse-linux/10/../../../../x86_64-suse-linux/bin/ld: cannot find -lmnl [ 30s] collect2: error: ld returned 1 exit status [ 30s] make[1]: *** [Makefile:723: osmo-pcu] Error 1 [ 30s] make[1]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-pcu-0.8.0.301.480c/src' [ 30s] make: *** [Makefile:416: all-recursive] Error 1 [ 30s] error: Bad exit status from /var/tmp/rpm-tmp.eoXCHN (%build) [ 30s] [ 30s] [ 30s] RPM build errors: [ 30s] Bad exit status from /var/tmp/rpm-tmp.eoXCHN (%build) [ 30s] ### VM INTERACTION START ### [ 33s] [ 28.600531] sysrq: Power Off [ 34s] [ 28.606885] reboot: Power down [ 34s] ### VM INTERACTION END ### [ 34s] [ 34s] goat15 failed "build osmo-pcu.spec" at Fri Jan 8 01:49:10 UTC 2021. [ 34s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Jan 8 01:50:00 2021 From: admin at opensuse.org (OBS Notification) Date: Fri, 08 Jan 2021 01:50:00 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in openSUSE_Leap_15.2/x86_64 In-Reply-To: References: Message-ID: <5ff7ba548d1cf_35dd2aba60cf45f04608d4@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-pcu/openSUSE_Leap_15.2/x86_64 Package network:osmocom:nightly/osmo-pcu failed to build in openSUSE_Leap_15.2/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-pcu Last lines of build log: [ 63s] CXX sba.lo [ 64s] CXX decoding.lo [ 64s] CXX llc.lo [ 65s] CXX rlc.lo [ 65s] CXX osmobts_sock.lo [ 65s] CC gprs_codel.lo [ 65s] CC coding_scheme.lo [ 66s] CXX egprs_rlc_compression.lo [ 66s] CXX pcu_main.o [ 67s] CXXLD libgprs.la [ 67s] copying selected object files to avoid basename conflicts... [ 67s] CXXLD osmo-pcu [ 68s] /usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: cannot find -lmnl [ 68s] collect2: error: ld returned 1 exit status [ 68s] make[1]: *** [Makefile:696: osmo-pcu] Error 1 [ 68s] make[1]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-pcu-0.8.0.301.480c/src' [ 68s] make: *** [Makefile:416: all-recursive] Error 1 [ 68s] error: Bad exit status from /var/tmp/rpm-tmp.NrI1No (%build) [ 68s] [ 68s] [ 68s] RPM build errors: [ 68s] Bad exit status from /var/tmp/rpm-tmp.NrI1No (%build) [ 68s] ### VM INTERACTION START ### [ 71s] [ 62.156872] sysrq: Power Off [ 71s] [ 62.160454] reboot: Power down [ 71s] ### VM INTERACTION END ### [ 71s] [ 71s] old-atreju2 failed "build osmo-pcu.spec" at Fri Jan 8 01:49:32 UTC 2021. [ 71s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Jan 8 01:50:00 2021 From: admin at opensuse.org (OBS Notification) Date: Fri, 08 Jan 2021 01:50:00 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in openSUSE_Leap_15.1/x86_64 In-Reply-To: References: Message-ID: <5ff7ba5525f85_35dd2aba60cf45f046095f@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-pcu/openSUSE_Leap_15.1/x86_64 Package network:osmocom:nightly/osmo-pcu failed to build in openSUSE_Leap_15.1/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-pcu Last lines of build log: [ 63s] CXX sba.lo [ 63s] CXX decoding.lo [ 64s] CXX llc.lo [ 64s] CXX rlc.lo [ 65s] CXX osmobts_sock.lo [ 65s] CC gprs_codel.lo [ 65s] CC coding_scheme.lo [ 66s] CXX egprs_rlc_compression.lo [ 66s] CXX pcu_main.o [ 67s] CXXLD libgprs.la [ 67s] copying selected object files to avoid basename conflicts... [ 67s] CXXLD osmo-pcu [ 67s] /usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: cannot find -lmnl [ 67s] collect2: error: ld returned 1 exit status [ 67s] make[1]: *** [Makefile:696: osmo-pcu] Error 1 [ 67s] make[1]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-pcu-0.8.0.301.480c/src' [ 67s] make: *** [Makefile:416: all-recursive] Error 1 [ 68s] error: Bad exit status from /var/tmp/rpm-tmp.aotELu (%build) [ 68s] [ 68s] [ 68s] RPM build errors: [ 68s] Bad exit status from /var/tmp/rpm-tmp.aotELu (%build) [ 68s] ### VM INTERACTION START ### [ 71s] [ 61.824081] sysrq: SysRq : Power Off [ 71s] [ 61.826751] reboot: Power down [ 71s] ### VM INTERACTION END ### [ 71s] [ 71s] old-atreju3 failed "build osmo-pcu.spec" at Fri Jan 8 01:49:34 UTC 2021. [ 71s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Jan 8 01:50:34 2021 From: admin at opensuse.org (OBS Notification) Date: Fri, 08 Jan 2021 01:50:34 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in Debian_9.0/x86_64 In-Reply-To: References: Message-ID: <5ff7ba736b863_35dd2aba60cf45f0461220@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-pcu/Debian_9.0/x86_64 Package network:osmocom:nightly/osmo-pcu failed to build in Debian_9.0/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-pcu Last lines of build log: [ 179s] copying selected object files to avoid basename conflicts... [ 179s] libtool: link: ln .libs/gprs_rlcmac_sched.o .libs/libgprs.lax/lt1-gprs_rlcmac_sched.o || cp .libs/gprs_rlcmac_sched.o .libs/libgprs.lax/lt1-gprs_rlcmac_sched.o [ 179s] libtool: link: ar cru .libs/libgprs.a .libs/gprs_debug.o .libs/csn1.o .libs/gsm_rlcmac.o .libs/gprs_bssgp_pcu.o .libs/gprs_rlcmac.o .libs/gprs_rlcmac_sched.o .libs/gprs_rlcmac_meas.o .libs/gprs_rlcmac_ts_alloc.o .libs/gprs_ms.o .libs/gprs_ms_storage.o .libs/gsm_timer.o .libs/pcu_l1_if.o .libs/pcu_vty.o .libs/pcu_vty_functions.o .libs/mslot_class.o .libs/tbf.o .libs/tbf_ul.o .libs/tbf_dl.o .libs/bts.o .libs/pdch.o .libs/poll_controller.o .libs/encoding.o .libs/sba.o .libs/decoding.o .libs/llc.o .libs/rlc.o .libs/osmobts_sock.o .libs/gprs_codel.o .libs/coding_scheme.o .libs/egprs_rlc_compression.o .libs/libgprs.lax/lt1-gprs_rlcmac_sched.o [ 179s] ar: `u' modifier ignored since `D' is the default (see `U') [ 179s] libtool: link: ranlib .libs/libgprs.a [ 179s] libtool: link: rm -fr .libs/libgprs.lax [ 179s] libtool: link: ( cd ".libs" && rm -f "libgprs.la" && ln -s "../libgprs.la" "libgprs.la" ) [ 179s] g++ -DPACKAGE_NAME=\"osmo-pcu\" -DPACKAGE_TARNAME=\"osmo-pcu\" -DPACKAGE_VERSION=\"0.8.0.301-480c\" -DPACKAGE_STRING=\"osmo-pcu\ 0.8.0.301-480c\" -DPACKAGE_BUGREPORT=\"osmocom-net-gprs at lists.osmocom.org\" -DPACKAGE_URL=\"\" -DPACKAGE=\"osmo-pcu\" -DVERSION=\"0.8.0.301-480c\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DSTDC_HEADERS=1 -I. -I../include -Wall -pthread -I/usr/include/ -fno-strict-aliasing -I/usr/include/ -I/usr/include/ -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -ldl -pthread -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu++03 -c -o pcu_main.o pcu_main.cpp [ 179s] /bin/bash ../libtool --tag=CXX --mode=link g++ -Wall -ldl -pthread -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu++03 -lrt -Wl,-z,relro -Wl,-z,now -o osmo-pcu pcu_main.o libgprs.la -ltalloc -losmogb -losmovty -losmocore -lmnl -ltalloc -losmocore -ltalloc -losmogsm -losmocore [ 180s] libtool: link: g++ -Wall -pthread -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu++03 -Wl,-z -Wl,relro -Wl,-z -Wl,now -o osmo-pcu pcu_main.o ./.libs/libgprs.a -ldl -lrt /usr/lib/x86_64-linux-gnu/libosmogb.so /usr/lib/x86_64-linux-gnu/libosmovty.so -lmnl -ltalloc /usr/lib/x86_64-linux-gnu/libosmogsm.so /usr/lib/x86_64-linux-gnu/libosmocore.so -pthread [ 180s] /usr/bin/ld: cannot find -lmnl [ 180s] collect2: error: ld returned 1 exit status [ 180s] Makefile:696: recipe for target 'osmo-pcu' failed [ 180s] make[2]: *** [osmo-pcu] Error 1 [ 180s] make[2]: Leaving directory '/usr/src/packages/BUILD/src' [ 180s] Makefile:417: recipe for target 'all-recursive' failed [ 180s] make[1]: *** [all-recursive] Error 1 [ 180s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 180s] dh_auto_build: make -j1 returned exit code 2 [ 180s] debian/rules:12: recipe for target 'build' failed [ 180s] make: *** [build] Error 2 [ 180s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 180s] ### VM INTERACTION START ### [ 183s] [ 173.611922] sysrq: Power Off [ 183s] [ 173.616044] reboot: Power down [ 183s] ### VM INTERACTION END ### [ 183s] [ 183s] sheep86 failed "build osmo-pcu_0.8.0.301.480c.dsc" at Fri Jan 8 01:50:15 UTC 2021. [ 183s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Jan 8 01:51:43 2021 From: admin at opensuse.org (OBS Notification) Date: Fri, 08 Jan 2021 01:51:43 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <5ff7baca7c7da_35dd2aba60cf45f04614bf@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/xUbuntu_20.04/x86_64 Package network:osmocom:nightly/simtrace2 failed to build in xUbuntu_20.04/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 227s] [COMPILING libboard/qmod/source/wwan_perst.c] [ 227s] [COMPILING libboard/qmod/source/card_pres.c] [ 228s] [COMPILING libboard/qmod/source/wwan_led.c] [ 228s] [COMPILING libboard/qmod/source/i2c.c] [ 228s] [COMPILING libboard/qmod/source/board_qmod.c] [ 228s] [COMPILING apps/dfu/main.c] [ 228s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 228s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 228s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 229s] Memory region Used Size Region Size %age Used [ 229s] rom: 16588 B 16 KB 101.25% [ 229s] ram: 11672 B 48 KB 23.75/usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 229s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 204 bytes [ 229s] collect2: error: ld returned 1 exit status [ 229s] % [ 229s] make[2]: *** [Makefile:234: flash] Error 1 [ 229s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 229s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 229s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 229s] dh_auto_build: error: make -j1 returned exit code 2 [ 229s] make: *** [debian/rules:16: build] Error 25 [ 229s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 229s] ### VM INTERACTION START ### [ 232s] [ 196.413806] sysrq: Power Off [ 232s] [ 196.420853] reboot: Power down [ 232s] ### VM INTERACTION END ### [ 232s] [ 232s] lamb54 failed "build simtrace2_0.7.0.69.aadd.dsc" at Fri Jan 8 01:51:25 UTC 2021. [ 232s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Jan 8 01:51:43 2021 From: admin at opensuse.org (OBS Notification) Date: Fri, 08 Jan 2021 01:51:43 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in xUbuntu_20.10/x86_64 In-Reply-To: References: Message-ID: <5ff7bacb71bcc_35dd2aba60cf45f0461593@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-pcu/xUbuntu_20.10/x86_64 Package network:osmocom:nightly/osmo-pcu failed to build in xUbuntu_20.10/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-pcu Last lines of build log: [ 518s] libtool: compile: gcc -DPACKAGE_NAME=\"osmo-pcu\" -DPACKAGE_TARNAME=\"osmo-pcu\" -DPACKAGE_VERSION=\"0.8.0.301-480c\" "-DPACKAGE_STRING=\"osmo-pcu 0.8.0.301-480c\"" -DPACKAGE_BUGREPORT=\"osmocom-net-gprs at lists.osmocom.org\" -DPACKAGE_URL=\"\" -DPACKAGE=\"osmo-pcu\" -DVERSION=\"0.8.0.301-480c\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DSTDC_HEADERS=1 -I. -I../include -Wall -pthread -I/usr/include/ -fno-strict-aliasing -I/usr/include/ -I/usr/include/ -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu89 -c coding_scheme.c -o coding_scheme.o >/dev/null 2>&1 [ 519s] /bin/bash ../libtool --tag=CXX --mode=compile g++ -DPACKAGE_NAME=\"osmo-pcu\" -DPACKAGE_TARNAME=\"osmo-pcu\" -DPACKAGE_VERSION=\"0.8.0.301-480c\" -DPACKAGE_STRING=\"osmo-pcu\ 0.8.0.301-480c\" -DPACKAGE_BUGREPORT=\"osmocom-net-gprs at lists.osmocom.org\" -DPACKAGE_URL=\"\" -DPACKAGE=\"osmo-pcu\" -DVERSION=\"0.8.0.301-480c\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DSTDC_HEADERS=1 -I. -I../include -Wall -pthread -I/usr/include/ -fno-strict-aliasing -I/usr/include/ -I/usr/include/ -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -ldl -pthread -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu++03 -c -o egprs_rlc_compression.lo egprs_rlc_compression.cpp [ 519s] libtool: compile: g++ -DPACKAGE_NAME=\"osmo-pcu\" -DPACKAGE_TARNAME=\"osmo-pcu\" -DPACKAGE_VERSION=\"0.8.0.301-480c\" "-DPACKAGE_STRING=\"osmo-pcu 0.8.0.301-480c\"" -DPACKAGE_BUGREPORT=\"osmocom-net-gprs at lists.osmocom.org\" -DPACKAGE_URL=\"\" -DPACKAGE=\"osmo-pcu\" -DVERSION=\"0.8.0.301-480c\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DSTDC_HEADERS=1 -I. -I../include -Wall -pthread -I/usr/include/ -fno-strict-aliasing -I/usr/include/ -I/usr/include/ -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -ldl -pthread -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu++03 -c egprs_rlc_compression.cpp -fPIC -DPIC -o .libs/egprs_rlc_compression.o [ 519s] libtool: compile: g++ -DPACKAGE_NAME=\"osmo-pcu\" -DPACKAGE_TARNAME=\"osmo-pcu\" -DPACKAGE_VERSION=\"0.8.0.301-480c\" "-DPACKAGE_STRING=\"osmo-pcu 0.8.0.301-480c\"" -DPACKAGE_BUGREPORT=\"osmocom-net-gprs at lists.osmocom.org\" -DPACKAGE_URL=\"\" -DPACKAGE=\"osmo-pcu\" -DVERSION=\"0.8.0.301-480c\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DSTDC_HEADERS=1 -I. -I../include -Wall -pthread -I/usr/include/ -fno-strict-aliasing -I/usr/include/ -I/usr/include/ -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -ldl -pthread -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu++03 -c egprs_rlc_compression.cpp -o egprs_rlc_compression.o >/dev/null 2>&1 [ 520s] /bin/bash ../libtool --tag=CXX --mode=link g++ -Wall -ldl -pthread -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu++03 -lrt -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -o libgprs.la gprs_debug.lo csn1.lo gsm_rlcmac.lo gprs_bssgp_pcu.lo gprs_rlcmac.lo gprs_rlcmac_sched.lo gprs_rlcmac_meas.lo gprs_rlcmac_ts_alloc.lo gprs_ms.lo gprs_ms_storage.lo gsm_timer.lo pcu_l1_if.lo pcu_vty.lo pcu_vty_functions.lo mslot_class.lo tbf.lo tbf_ul.lo tbf_dl.lo bts.lo pdch.lo poll_controller.lo encoding.lo sba.lo decoding.lo llc.lo rlc.lo osmobts_sock.lo gprs_codel.lo coding_scheme.lo egprs_rlc_compression.lo gprs_rlcmac_sched.lo [ 520s] copying selected object files to avoid basename conflicts... [ 520s] libtool: link: ln .libs/gprs_rlcmac_sched.o .libs/libgprs.lax/lt1-gprs_rlcmac_sched.o || cp .libs/gprs_rlcmac_sched.o .libs/libgprs.lax/lt1-gprs_rlcmac_sched.o [ 520s] libtool: link: ar cr .libs/libgprs.a .libs/gprs_debug.o .libs/csn1.o .libs/gsm_rlcmac.o .libs/gprs_bssgp_pcu.o .libs/gprs_rlcmac.o .libs/gprs_rlcmac_sched.o .libs/gprs_rlcmac_meas.o .libs/gprs_rlcmac_ts_alloc.o .libs/gprs_ms.o .libs/gprs_ms_storage.o .libs/gsm_timer.o .libs/pcu_l1_if.o .libs/pcu_vty.o .libs/pcu_vty_functions.o .libs/mslot_class.o .libs/tbf.o .libs/tbf_ul.o .libs/tbf_dl.o .libs/bts.o .libs/pdch.o .libs/poll_controller.o .libs/encoding.o .libs/sba.o .libs/decoding.o .libs/llc.o .libs/rlc.o .libs/osmobts_sock.o .libs/gprs_codel.o .libs/coding_scheme.o .libs/egprs_rlc_compression.o .libs/libgprs.lax/lt1-gprs_rlcmac_sched.o [ 520s] libtool: link: ranlib .libs/libgprs.a [ 520s] libtool: link: rm -fr .libs/libgprs.lax [ 520s] libtool: link: ( cd ".libs" && rm -f "libgprs.la" && ln -s "../libgprs.la" "libgprs.la" ) [ 520s] /bin/bash ../libtool --tag=CXX --mode=link g++ -Wall -ldl -pthread -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu++03 -lrt -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -o osmo-pcu pcu_main.o libgprs.la -ltalloc -losmogb -losmovty -losmocore -lmnl -ltalloc -losmocore -ltalloc -losmogsm -losmocore [ 521s] libtool: link: g++ -Wall -pthread -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu++03 -Wl,-Bsymbolic-functions -Wl,-z -Wl,relro -Wl,-z -Wl,now -o osmo-pcu pcu_main.o ./.libs/libgprs.a -ldl -lrt /usr/lib/x86_64-linux-gnu/libosmogb.so /usr/lib/x86_64-linux-gnu/libosmovty.so -lmnl -ltalloc /usr/lib/x86_64-linux-gnu/libosmogsm.so /usr/lib/x86_64-linux-gnu/libosmocore.so -pthread [ 521s] /usr/bin/ld: cannot find -lmnl [ 521s] collect2: error: ld returned 1 exit status [ 521s] make[2]: *** [Makefile:724: osmo-pcu] Error 1 [ 521s] make[2]: Leaving directory '/usr/src/packages/BUILD/src' [ 521s] make[1]: *** [Makefile:417: all-recursive] Error 1 [ 521s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 521s] dh_auto_build: error: make -j1 returned exit code 2 [ 521s] make: *** [debian/rules:12: build] Error 25 [ 521s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 521s] ### VM INTERACTION START ### [ 522s] Powering off. [ 522s] [ 481.958883] reboot: Power down [ 522s] ### VM INTERACTION END ### [ 522s] [ 522s] cloud125 failed "build osmo-pcu_0.8.0.301.480c.dsc" at Fri Jan 8 01:51:29 UTC 2021. [ 522s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Jan 8 01:52:51 2021 From: admin at opensuse.org (OBS Notification) Date: Fri, 08 Jan 2021 01:52:51 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in CentOS_8/x86_64 In-Reply-To: References: Message-ID: <5ff7bb09dd17a_35dd2aba60cf45f0461750@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-pcu/CentOS_8/x86_64 Package network:osmocom:nightly/osmo-pcu failed to build in CentOS_8/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-pcu Last lines of build log: [ 318s] CXX encoding.lo [ 318s] CXX sba.lo [ 321s] CXX decoding.lo [ 322s] CXX llc.lo [ 322s] CXX rlc.lo [ 322s] CXX osmobts_sock.lo [ 323s] CC gprs_codel.lo [ 323s] CC coding_scheme.lo [ 324s] CXX egprs_rlc_compression.lo [ 327s] CXXLD libgprs.la [ 327s] copying selected object files to avoid basename conflicts... [ 327s] CXXLD osmo-pcu [ 328s] /usr/bin/ld: cannot find -lmnl [ 328s] collect2: error: ld returned 1 exit status [ 328s] make[1]: *** [Makefile:723: osmo-pcu] Error 1 [ 328s] make[1]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-pcu-0.8.0.301.480c/src' [ 328s] make: *** [Makefile:416: all-recursive] Error 1 [ 328s] error: Bad exit status from /var/tmp/rpm-tmp.0n1qwM (%build) [ 328s] [ 328s] [ 328s] RPM build errors: [ 328s] Bad exit status from /var/tmp/rpm-tmp.0n1qwM (%build) [ 328s] ### VM INTERACTION START ### [ 329s] Powering off. [ 329s] [ 255.012117] reboot: Power down [ 330s] ### VM INTERACTION END ### [ 330s] [ 330s] lamb23 failed "build osmo-pcu.spec" at Fri Jan 8 01:52:30 UTC 2021. [ 330s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Jan 8 01:54:00 2021 From: admin at opensuse.org (OBS Notification) Date: Fri, 08 Jan 2021 01:54:00 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in Debian_10/i586 In-Reply-To: References: Message-ID: <5ff7bb46cacc9_35dd2aba60cf45f04620e@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-pcu/Debian_10/i586 Package network:osmocom:nightly/osmo-pcu failed to build in Debian_10/i586 Check out the package for editing: osc checkout network:osmocom:nightly osmo-pcu Last lines of build log: [ 354s] /bin/bash ../libtool --tag=CXX --mode=compile g++ -DPACKAGE_NAME=\"osmo-pcu\" -DPACKAGE_TARNAME=\"osmo-pcu\" -DPACKAGE_VERSION=\"0.8.0.301-480c\" -DPACKAGE_STRING=\"osmo-pcu\ 0.8.0.301-480c\" -DPACKAGE_BUGREPORT=\"osmocom-net-gprs at lists.osmocom.org\" -DPACKAGE_URL=\"\" -DPACKAGE=\"osmo-pcu\" -DVERSION=\"0.8.0.301-480c\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DSTDC_HEADERS=1 -I. -I../include -Wall -pthread -I/usr/include/ -fno-strict-aliasing -I/usr/include/ -I/usr/include/ -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -ldl -pthread -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu++03 -c -o egprs_rlc_compression.lo egprs_rlc_compression.cpp [ 355s] libtool: compile: g++ -DPACKAGE_NAME=\"osmo-pcu\" -DPACKAGE_TARNAME=\"osmo-pcu\" -DPACKAGE_VERSION=\"0.8.0.301-480c\" "-DPACKAGE_STRING=\"osmo-pcu 0.8.0.301-480c\"" -DPACKAGE_BUGREPORT=\"osmocom-net-gprs at lists.osmocom.org\" -DPACKAGE_URL=\"\" -DPACKAGE=\"osmo-pcu\" -DVERSION=\"0.8.0.301-480c\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DSTDC_HEADERS=1 -I. -I../include -Wall -pthread -I/usr/include/ -fno-strict-aliasing -I/usr/include/ -I/usr/include/ -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -ldl -pthread -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu++03 -c egprs_rlc_compression.cpp -fPIC -DPIC -o .libs/egprs_rlc_compression.o [ 355s] libtool: compile: g++ -DPACKAGE_NAME=\"osmo-pcu\" -DPACKAGE_TARNAME=\"osmo-pcu\" -DPACKAGE_VERSION=\"0.8.0.301-480c\" "-DPACKAGE_STRING=\"osmo-pcu 0.8.0.301-480c\"" -DPACKAGE_BUGREPORT=\"osmocom-net-gprs at lists.osmocom.org\" -DPACKAGE_URL=\"\" -DPACKAGE=\"osmo-pcu\" -DVERSION=\"0.8.0.301-480c\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DSTDC_HEADERS=1 -I. -I../include -Wall -pthread -I/usr/include/ -fno-strict-aliasing -I/usr/include/ -I/usr/include/ -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -ldl -pthread -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu++03 -c egprs_rlc_compression.cpp -o egprs_rlc_compression.o >/dev/null 2>&1 [ 356s] /bin/bash ../libtool --tag=CXX --mode=link g++ -Wall -ldl -pthread -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu++03 -lrt -Wl,-z,relro -Wl,-z,now -o libgprs.la gprs_debug.lo csn1.lo gsm_rlcmac.lo gprs_bssgp_pcu.lo gprs_rlcmac.lo gprs_rlcmac_sched.lo gprs_rlcmac_meas.lo gprs_rlcmac_ts_alloc.lo gprs_ms.lo gprs_ms_storage.lo gsm_timer.lo pcu_l1_if.lo pcu_vty.lo pcu_vty_functions.lo mslot_class.lo tbf.lo tbf_ul.lo tbf_dl.lo bts.lo pdch.lo poll_controller.lo encoding.lo sba.lo decoding.lo llc.lo rlc.lo osmobts_sock.lo gprs_codel.lo coding_scheme.lo egprs_rlc_compression.lo gprs_rlcmac_sched.lo [ 356s] copying selected object files to avoid basename conflicts... [ 356s] libtool: link: ln .libs/gprs_rlcmac_sched.o .libs/libgprs.lax/lt1-gprs_rlcmac_sched.o || cp .libs/gprs_rlcmac_sched.o .libs/libgprs.lax/lt1-gprs_rlcmac_sched.o [ 356s] libtool: link: ar cru .libs/libgprs.a .libs/gprs_debug.o .libs/csn1.o .libs/gsm_rlcmac.o .libs/gprs_bssgp_pcu.o .libs/gprs_rlcmac.o .libs/gprs_rlcmac_sched.o .libs/gprs_rlcmac_meas.o .libs/gprs_rlcmac_ts_alloc.o .libs/gprs_ms.o .libs/gprs_ms_storage.o .libs/gsm_timer.o .libs/pcu_l1_if.o .libs/pcu_vty.o .libs/pcu_vty_functions.o .libs/mslot_class.o .libs/tbf.o .libs/tbf_ul.o .libs/tbf_dl.o .libs/bts.o .libs/pdch.o .libs/poll_controller.o .libs/encoding.o .libs/sba.o .libs/decoding.o .libs/llc.o .libs/rlc.o .libs/osmobts_sock.o .libs/gprs_codel.o .libs/coding_scheme.o .libs/egprs_rlc_compression.o .libs/libgprs.lax/lt1-gprs_rlcmac_sched.o [ 356s] ar: `u' modifier ignored since `D' is the default (see `U') [ 356s] libtool: link: ranlib .libs/libgprs.a [ 356s] libtool: link: rm -fr .libs/libgprs.lax [ 356s] libtool: link: ( cd ".libs" && rm -f "libgprs.la" && ln -s "../libgprs.la" "libgprs.la" ) [ 356s] /bin/bash ../libtool --tag=CXX --mode=link g++ -Wall -ldl -pthread -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu++03 -lrt -Wl,-z,relro -Wl,-z,now -o osmo-pcu pcu_main.o libgprs.la -ltalloc -losmogb -losmovty -losmocore -lmnl -ltalloc -losmocore -ltalloc -losmogsm -losmocore [ 356s] libtool: link: g++ -Wall -pthread -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu++03 -Wl,-z -Wl,relro -Wl,-z -Wl,now -o osmo-pcu pcu_main.o ./.libs/libgprs.a -ldl -lrt /usr/lib/i386-linux-gnu/libosmogb.so /usr/lib/i386-linux-gnu/libosmovty.so -lmnl -ltalloc /usr/lib/i386-linux-gnu/libosmogsm.so /usr/lib/i386-linux-gnu/libosmocore.so -pthread [ 356s] /usr/bin/ld: cannot find -lmnl [ 356s] collect2: error: ld returned 1 exit status [ 356s] make[2]: *** [Makefile:724: osmo-pcu] Error 1 [ 356s] make[2]: Leaving directory '/usr/src/packages/BUILD/src' [ 356s] make[1]: *** [Makefile:417: all-recursive] Error 1 [ 356s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 356s] dh_auto_build: make -j1 returned exit code 2 [ 356s] make: *** [debian/rules:12: build] Error 2 [ 356s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 356s] ### VM INTERACTION START ### [ 359s] [ 344.293828] sysrq: Power Off [ 359s] [ 344.298302] reboot: Power down [ 359s] ### VM INTERACTION END ### [ 359s] [ 359s] lamb05 failed "build osmo-pcu_0.8.0.301.480c.dsc" at Fri Jan 8 01:53:39 UTC 2021. [ 359s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Jan 8 01:54:17 2021 From: admin at opensuse.org (OBS Notification) Date: Fri, 08 Jan 2021 01:54:17 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <5ff7bb61d16c9_35dd2aba60cf45f0462255@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-pcu/xUbuntu_20.04/x86_64 Package network:osmocom:nightly/osmo-pcu failed to build in xUbuntu_20.04/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-pcu Last lines of build log: [ 365s] libtool: compile: gcc -DPACKAGE_NAME=\"osmo-pcu\" -DPACKAGE_TARNAME=\"osmo-pcu\" -DPACKAGE_VERSION=\"0.8.0.301-480c\" "-DPACKAGE_STRING=\"osmo-pcu 0.8.0.301-480c\"" -DPACKAGE_BUGREPORT=\"osmocom-net-gprs at lists.osmocom.org\" -DPACKAGE_URL=\"\" -DPACKAGE=\"osmo-pcu\" -DVERSION=\"0.8.0.301-480c\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DSTDC_HEADERS=1 -I. -I../include -Wall -pthread -I/usr/include/ -fno-strict-aliasing -I/usr/include/ -I/usr/include/ -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu89 -c coding_scheme.c -o coding_scheme.o >/dev/null 2>&1 [ 365s] /bin/bash ../libtool --tag=CXX --mode=compile g++ -DPACKAGE_NAME=\"osmo-pcu\" -DPACKAGE_TARNAME=\"osmo-pcu\" -DPACKAGE_VERSION=\"0.8.0.301-480c\" -DPACKAGE_STRING=\"osmo-pcu\ 0.8.0.301-480c\" -DPACKAGE_BUGREPORT=\"osmocom-net-gprs at lists.osmocom.org\" -DPACKAGE_URL=\"\" -DPACKAGE=\"osmo-pcu\" -DVERSION=\"0.8.0.301-480c\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DSTDC_HEADERS=1 -I. -I../include -Wall -pthread -I/usr/include/ -fno-strict-aliasing -I/usr/include/ -I/usr/include/ -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -ldl -pthread -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu++03 -c -o egprs_rlc_compression.lo egprs_rlc_compression.cpp [ 365s] libtool: compile: g++ -DPACKAGE_NAME=\"osmo-pcu\" -DPACKAGE_TARNAME=\"osmo-pcu\" -DPACKAGE_VERSION=\"0.8.0.301-480c\" "-DPACKAGE_STRING=\"osmo-pcu 0.8.0.301-480c\"" -DPACKAGE_BUGREPORT=\"osmocom-net-gprs at lists.osmocom.org\" -DPACKAGE_URL=\"\" -DPACKAGE=\"osmo-pcu\" -DVERSION=\"0.8.0.301-480c\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DSTDC_HEADERS=1 -I. -I../include -Wall -pthread -I/usr/include/ -fno-strict-aliasing -I/usr/include/ -I/usr/include/ -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -ldl -pthread -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu++03 -c egprs_rlc_compression.cpp -fPIC -DPIC -o .libs/egprs_rlc_compression.o [ 365s] libtool: compile: g++ -DPACKAGE_NAME=\"osmo-pcu\" -DPACKAGE_TARNAME=\"osmo-pcu\" -DPACKAGE_VERSION=\"0.8.0.301-480c\" "-DPACKAGE_STRING=\"osmo-pcu 0.8.0.301-480c\"" -DPACKAGE_BUGREPORT=\"osmocom-net-gprs at lists.osmocom.org\" -DPACKAGE_URL=\"\" -DPACKAGE=\"osmo-pcu\" -DVERSION=\"0.8.0.301-480c\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DSTDC_HEADERS=1 -I. -I../include -Wall -pthread -I/usr/include/ -fno-strict-aliasing -I/usr/include/ -I/usr/include/ -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -ldl -pthread -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu++03 -c egprs_rlc_compression.cpp -o egprs_rlc_compression.o >/dev/null 2>&1 [ 366s] /bin/bash ../libtool --tag=CXX --mode=link g++ -Wall -ldl -pthread -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu++03 -lrt -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -o libgprs.la gprs_debug.lo csn1.lo gsm_rlcmac.lo gprs_bssgp_pcu.lo gprs_rlcmac.lo gprs_rlcmac_sched.lo gprs_rlcmac_meas.lo gprs_rlcmac_ts_alloc.lo gprs_ms.lo gprs_ms_storage.lo gsm_timer.lo pcu_l1_if.lo pcu_vty.lo pcu_vty_functions.lo mslot_class.lo tbf.lo tbf_ul.lo tbf_dl.lo bts.lo pdch.lo poll_controller.lo encoding.lo sba.lo decoding.lo llc.lo rlc.lo osmobts_sock.lo gprs_codel.lo coding_scheme.lo egprs_rlc_compression.lo gprs_rlcmac_sched.lo [ 366s] copying selected object files to avoid basename conflicts... [ 366s] libtool: link: ln .libs/gprs_rlcmac_sched.o .libs/libgprs.lax/lt1-gprs_rlcmac_sched.o || cp .libs/gprs_rlcmac_sched.o .libs/libgprs.lax/lt1-gprs_rlcmac_sched.o [ 366s] libtool: link: ar cr .libs/libgprs.a .libs/gprs_debug.o .libs/csn1.o .libs/gsm_rlcmac.o .libs/gprs_bssgp_pcu.o .libs/gprs_rlcmac.o .libs/gprs_rlcmac_sched.o .libs/gprs_rlcmac_meas.o .libs/gprs_rlcmac_ts_alloc.o .libs/gprs_ms.o .libs/gprs_ms_storage.o .libs/gsm_timer.o .libs/pcu_l1_if.o .libs/pcu_vty.o .libs/pcu_vty_functions.o .libs/mslot_class.o .libs/tbf.o .libs/tbf_ul.o .libs/tbf_dl.o .libs/bts.o .libs/pdch.o .libs/poll_controller.o .libs/encoding.o .libs/sba.o .libs/decoding.o .libs/llc.o .libs/rlc.o .libs/osmobts_sock.o .libs/gprs_codel.o .libs/coding_scheme.o .libs/egprs_rlc_compression.o .libs/libgprs.lax/lt1-gprs_rlcmac_sched.o [ 366s] libtool: link: ranlib .libs/libgprs.a [ 366s] libtool: link: rm -fr .libs/libgprs.lax [ 366s] libtool: link: ( cd ".libs" && rm -f "libgprs.la" && ln -s "../libgprs.la" "libgprs.la" ) [ 366s] /bin/bash ../libtool --tag=CXX --mode=link g++ -Wall -ldl -pthread -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu++03 -lrt -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -o osmo-pcu pcu_main.o libgprs.la -ltalloc -losmogb -losmovty -losmocore -lmnl -ltalloc -losmocore -ltalloc -losmogsm -losmocore [ 366s] libtool: link: g++ -Wall -pthread -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu++03 -Wl,-Bsymbolic-functions -Wl,-z -Wl,relro -Wl,-z -Wl,now -o osmo-pcu pcu_main.o ./.libs/libgprs.a -ldl -lrt /usr/lib/x86_64-linux-gnu/libosmogb.so /usr/lib/x86_64-linux-gnu/libosmovty.so -lmnl -ltalloc /usr/lib/x86_64-linux-gnu/libosmogsm.so /usr/lib/x86_64-linux-gnu/libosmocore.so -pthread [ 366s] /usr/bin/ld: cannot find -lmnl [ 366s] collect2: error: ld returned 1 exit status [ 366s] make[2]: *** [Makefile:724: osmo-pcu] Error 1 [ 366s] make[2]: Leaving directory '/usr/src/packages/BUILD/src' [ 366s] make[1]: *** [Makefile:417: all-recursive] Error 1 [ 366s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 366s] dh_auto_build: error: make -j1 returned exit code 2 [ 366s] make: *** [debian/rules:12: build] Error 25 [ 366s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 366s] ### VM INTERACTION START ### [ 369s] [ 357.026432] sysrq: Power Off [ 369s] [ 357.034906] reboot: Power down [ 369s] ### VM INTERACTION END ### [ 369s] [ 369s] lamb65 failed "build osmo-pcu_0.8.0.301.480c.dsc" at Fri Jan 8 01:53:50 UTC 2021. [ 369s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Jan 8 01:54:17 2021 From: admin at opensuse.org (OBS Notification) Date: Fri, 08 Jan 2021 01:54:17 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in Debian_9.0/aarch64 In-Reply-To: References: Message-ID: <5ff7bb62579af_35dd2aba60cf45f0462335@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-pcu/Debian_9.0/aarch64 Package network:osmocom:nightly/osmo-pcu failed to build in Debian_9.0/aarch64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-pcu Last lines of build log: [ 361s] copying selected object files to avoid basename conflicts... [ 361s] libtool: link: ln .libs/gprs_rlcmac_sched.o .libs/libgprs.lax/lt1-gprs_rlcmac_sched.o || cp .libs/gprs_rlcmac_sched.o .libs/libgprs.lax/lt1-gprs_rlcmac_sched.o [ 361s] libtool: link: ar cru .libs/libgprs.a .libs/gprs_debug.o .libs/csn1.o .libs/gsm_rlcmac.o .libs/gprs_bssgp_pcu.o .libs/gprs_rlcmac.o .libs/gprs_rlcmac_sched.o .libs/gprs_rlcmac_meas.o .libs/gprs_rlcmac_ts_alloc.o .libs/gprs_ms.o .libs/gprs_ms_storage.o .libs/gsm_timer.o .libs/pcu_l1_if.o .libs/pcu_vty.o .libs/pcu_vty_functions.o .libs/mslot_class.o .libs/tbf.o .libs/tbf_ul.o .libs/tbf_dl.o .libs/bts.o .libs/pdch.o .libs/poll_controller.o .libs/encoding.o .libs/sba.o .libs/decoding.o .libs/llc.o .libs/rlc.o .libs/osmobts_sock.o .libs/gprs_codel.o .libs/coding_scheme.o .libs/egprs_rlc_compression.o .libs/libgprs.lax/lt1-gprs_rlcmac_sched.o [ 361s] ar: `u' modifier ignored since `D' is the default (see `U') [ 361s] libtool: link: ranlib .libs/libgprs.a [ 362s] libtool: link: rm -fr .libs/libgprs.lax [ 362s] libtool: link: ( cd ".libs" && rm -f "libgprs.la" && ln -s "../libgprs.la" "libgprs.la" ) [ 362s] g++ -DPACKAGE_NAME=\"osmo-pcu\" -DPACKAGE_TARNAME=\"osmo-pcu\" -DPACKAGE_VERSION=\"0.8.0.301-480c\" -DPACKAGE_STRING=\"osmo-pcu\ 0.8.0.301-480c\" -DPACKAGE_BUGREPORT=\"osmocom-net-gprs at lists.osmocom.org\" -DPACKAGE_URL=\"\" -DPACKAGE=\"osmo-pcu\" -DVERSION=\"0.8.0.301-480c\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DSTDC_HEADERS=1 -I. -I../include -Wall -pthread -I/usr/include/ -fno-strict-aliasing -I/usr/include/ -I/usr/include/ -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -ldl -pthread -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu++03 -c -o pcu_main.o pcu_main.cpp [ 362s] /bin/bash ../libtool --tag=CXX --mode=link g++ -Wall -ldl -pthread -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu++03 -lrt -Wl,-z,relro -Wl,-z,now -o osmo-pcu pcu_main.o libgprs.la -ltalloc -losmogb -losmovty -losmocore -lmnl -ltalloc -losmocore -ltalloc -losmogsm -losmocore [ 363s] libtool: link: g++ -Wall -pthread -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu++03 -Wl,-z -Wl,relro -Wl,-z -Wl,now -o osmo-pcu pcu_main.o ./.libs/libgprs.a -ldl -lrt /usr/lib/aarch64-linux-gnu/libosmogb.so /usr/lib/aarch64-linux-gnu/libosmovty.so -lmnl -ltalloc /usr/lib/aarch64-linux-gnu/libosmogsm.so /usr/lib/aarch64-linux-gnu/libosmocore.so -pthread [ 363s] /usr/bin/ld: cannot find -lmnl [ 363s] collect2: error: ld returned 1 exit status [ 363s] Makefile:696: recipe for target 'osmo-pcu' failed [ 363s] make[2]: *** [osmo-pcu] Error 1 [ 363s] make[2]: Leaving directory '/usr/src/packages/BUILD/src' [ 363s] Makefile:417: recipe for target 'all-recursive' failed [ 363s] make[1]: *** [all-recursive] Error 1 [ 363s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 363s] dh_auto_build: make -j1 returned exit code 2 [ 363s] debian/rules:12: recipe for target 'build' failed [ 363s] make: *** [build] Error 2 [ 363s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 363s] ### VM INTERACTION START ### [ 366s] [ 347.582027] sysrq: Power Off [ 366s] [ 347.583097] reboot: Power down [ 366s] ### VM INTERACTION END ### [ 366s] [ 366s] obs-arm-8 failed "build osmo-pcu_0.8.0.301.480c.dsc" at Fri Jan 8 01:53:51 UTC 2021. [ 366s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Jan 8 01:54:34 2021 From: admin at opensuse.org (OBS Notification) Date: Fri, 08 Jan 2021 01:54:34 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5ff7bb63afb42_35dd2aba60cf45f04624c8@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-pcu/Debian_Unstable/x86_64 Package network:osmocom:nightly/osmo-pcu failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-pcu Last lines of build log: [ 340s] libtool: compile: gcc -DPACKAGE_NAME=\"osmo-pcu\" -DPACKAGE_TARNAME=\"osmo-pcu\" -DPACKAGE_VERSION=\"0.8.0.301-480c\" "-DPACKAGE_STRING=\"osmo-pcu 0.8.0.301-480c\"" -DPACKAGE_BUGREPORT=\"osmocom-net-gprs at lists.osmocom.org\" -DPACKAGE_URL=\"\" -DPACKAGE=\"osmo-pcu\" -DVERSION=\"0.8.0.301-480c\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DSTDC_HEADERS=1 -I. -I../include -Wall -pthread -I/usr/include/ -fno-strict-aliasing -I/usr/include/ -I/usr/include/ -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu89 -c coding_scheme.c -o coding_scheme.o >/dev/null 2>&1 [ 340s] /bin/bash ../libtool --tag=CXX --mode=compile g++ -DPACKAGE_NAME=\"osmo-pcu\" -DPACKAGE_TARNAME=\"osmo-pcu\" -DPACKAGE_VERSION=\"0.8.0.301-480c\" -DPACKAGE_STRING=\"osmo-pcu\ 0.8.0.301-480c\" -DPACKAGE_BUGREPORT=\"osmocom-net-gprs at lists.osmocom.org\" -DPACKAGE_URL=\"\" -DPACKAGE=\"osmo-pcu\" -DVERSION=\"0.8.0.301-480c\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DSTDC_HEADERS=1 -I. -I../include -Wall -pthread -I/usr/include/ -fno-strict-aliasing -I/usr/include/ -I/usr/include/ -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -ldl -pthread -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu++03 -c -o egprs_rlc_compression.lo egprs_rlc_compression.cpp [ 340s] libtool: compile: g++ -DPACKAGE_NAME=\"osmo-pcu\" -DPACKAGE_TARNAME=\"osmo-pcu\" -DPACKAGE_VERSION=\"0.8.0.301-480c\" "-DPACKAGE_STRING=\"osmo-pcu 0.8.0.301-480c\"" -DPACKAGE_BUGREPORT=\"osmocom-net-gprs at lists.osmocom.org\" -DPACKAGE_URL=\"\" -DPACKAGE=\"osmo-pcu\" -DVERSION=\"0.8.0.301-480c\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DSTDC_HEADERS=1 -I. -I../include -Wall -pthread -I/usr/include/ -fno-strict-aliasing -I/usr/include/ -I/usr/include/ -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -ldl -pthread -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu++03 -c egprs_rlc_compression.cpp -fPIC -DPIC -o .libs/egprs_rlc_compression.o [ 341s] libtool: compile: g++ -DPACKAGE_NAME=\"osmo-pcu\" -DPACKAGE_TARNAME=\"osmo-pcu\" -DPACKAGE_VERSION=\"0.8.0.301-480c\" "-DPACKAGE_STRING=\"osmo-pcu 0.8.0.301-480c\"" -DPACKAGE_BUGREPORT=\"osmocom-net-gprs at lists.osmocom.org\" -DPACKAGE_URL=\"\" -DPACKAGE=\"osmo-pcu\" -DVERSION=\"0.8.0.301-480c\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DSTDC_HEADERS=1 -I. -I../include -Wall -pthread -I/usr/include/ -fno-strict-aliasing -I/usr/include/ -I/usr/include/ -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -ldl -pthread -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu++03 -c egprs_rlc_compression.cpp -o egprs_rlc_compression.o >/dev/null 2>&1 [ 341s] /bin/bash ../libtool --tag=CXX --mode=link g++ -Wall -ldl -pthread -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu++03 -lrt -Wl,-z,relro -Wl,-z,now -o libgprs.la gprs_debug.lo csn1.lo gsm_rlcmac.lo gprs_bssgp_pcu.lo gprs_rlcmac.lo gprs_rlcmac_sched.lo gprs_rlcmac_meas.lo gprs_rlcmac_ts_alloc.lo gprs_ms.lo gprs_ms_storage.lo gsm_timer.lo pcu_l1_if.lo pcu_vty.lo pcu_vty_functions.lo mslot_class.lo tbf.lo tbf_ul.lo tbf_dl.lo bts.lo pdch.lo poll_controller.lo encoding.lo sba.lo decoding.lo llc.lo rlc.lo osmobts_sock.lo gprs_codel.lo coding_scheme.lo egprs_rlc_compression.lo gprs_rlcmac_sched.lo [ 341s] copying selected object files to avoid basename conflicts... [ 341s] libtool: link: ln .libs/gprs_rlcmac_sched.o .libs/libgprs.lax/lt1-gprs_rlcmac_sched.o || cp .libs/gprs_rlcmac_sched.o .libs/libgprs.lax/lt1-gprs_rlcmac_sched.o [ 341s] libtool: link: ar cr .libs/libgprs.a .libs/gprs_debug.o .libs/csn1.o .libs/gsm_rlcmac.o .libs/gprs_bssgp_pcu.o .libs/gprs_rlcmac.o .libs/gprs_rlcmac_sched.o .libs/gprs_rlcmac_meas.o .libs/gprs_rlcmac_ts_alloc.o .libs/gprs_ms.o .libs/gprs_ms_storage.o .libs/gsm_timer.o .libs/pcu_l1_if.o .libs/pcu_vty.o .libs/pcu_vty_functions.o .libs/mslot_class.o .libs/tbf.o .libs/tbf_ul.o .libs/tbf_dl.o .libs/bts.o .libs/pdch.o .libs/poll_controller.o .libs/encoding.o .libs/sba.o .libs/decoding.o .libs/llc.o .libs/rlc.o .libs/osmobts_sock.o .libs/gprs_codel.o .libs/coding_scheme.o .libs/egprs_rlc_compression.o .libs/libgprs.lax/lt1-gprs_rlcmac_sched.o [ 341s] libtool: link: ranlib .libs/libgprs.a [ 341s] libtool: link: rm -fr .libs/libgprs.lax [ 341s] libtool: link: ( cd ".libs" && rm -f "libgprs.la" && ln -s "../libgprs.la" "libgprs.la" ) [ 341s] /bin/bash ../libtool --tag=CXX --mode=link g++ -Wall -ldl -pthread -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu++03 -lrt -Wl,-z,relro -Wl,-z,now -o osmo-pcu pcu_main.o libgprs.la -ltalloc -losmogb -losmovty -losmocore -lmnl -ltalloc -losmocore -ltalloc -losmogsm -losmocore [ 341s] libtool: link: g++ -Wall -pthread -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu++03 -Wl,-z -Wl,relro -Wl,-z -Wl,now -o osmo-pcu pcu_main.o ./.libs/libgprs.a -ldl -lrt /usr/lib/x86_64-linux-gnu/libosmogb.so /usr/lib/x86_64-linux-gnu/libosmovty.so -lmnl -ltalloc /usr/lib/x86_64-linux-gnu/libosmogsm.so /usr/lib/x86_64-linux-gnu/libosmocore.so -pthread [ 341s] /usr/bin/ld: cannot find -lmnl [ 341s] collect2: error: ld returned 1 exit status [ 341s] make[2]: *** [Makefile:724: osmo-pcu] Error 1 [ 341s] make[2]: Leaving directory '/usr/src/packages/BUILD/src' [ 341s] make[1]: *** [Makefile:419: all-recursive] Error 1 [ 341s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 341s] dh_auto_build: error: make -j1 returned exit code 2 [ 341s] make: *** [debian/rules:12: build] Error 25 [ 341s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 341s] ### VM INTERACTION START ### [ 342s] Powering off. [ 342s] [ 326.170036] reboot: Power down [ 342s] ### VM INTERACTION END ### [ 342s] [ 342s] hci-cnode1-m0 failed "build osmo-pcu_0.8.0.301.480c.dsc" at Fri Jan 8 01:54:08 UTC 2021. [ 342s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Jan 8 01:55:26 2021 From: admin at opensuse.org (OBS Notification) Date: Fri, 08 Jan 2021 01:55:26 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sgsn in openSUSE_Leap_15.1_ARM/aarch64 In-Reply-To: References: Message-ID: <5ff7bb9fecbf1_35dd2aba60cf45f0462545@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-sgsn/openSUSE_Leap_15.1_ARM/aarch64 Package network:osmocom:nightly/osmo-sgsn failed to build in openSUSE_Leap_15.1_ARM/aarch64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-sgsn Last lines of build log: [ 71s] CC v42bis.o [ 71s] CC gprs_mm_state_iu_fsm.o [ 71s] CC gprs_ranap.o [ 71s] gprs_ranap.c: In function 'gsm0408_gprs_rcvmsg_iu': [ 71s] gprs_ranap.c:245:9: note: #pragma message: set drop_cipherable arg for gsm0408_rcv_gmm() from IuPS? [ 71s] #pragma message "set drop_cipherable arg for gsm0408_rcv_gmm() from IuPS?" [ 71s] ^~~~~~~ [ 72s] CCLD osmo-sgsn [ 72s] /usr/lib64/gcc/aarch64-suse-linux/7/../../../../aarch64-suse-linux/bin/ld: cannot find -lmnl [ 72s] collect2: error: ld returned 1 exit status [ 72s] make[3]: *** [Makefile:498: osmo-sgsn] Error 1 [ 72s] make[3]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-sgsn-1.6.0.122.ddb3f/src/sgsn' [ 72s] make[2]: *** [Makefile:394: all-recursive] Error 1 [ 72s] make[2]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-sgsn-1.6.0.122.ddb3f/src' [ 72s] make[1]: *** [Makefile:460: all-recursive] Error 1 [ 72s] make[1]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-sgsn-1.6.0.122.ddb3f' [ 72s] make: *** [Makefile:392: all] Error 2 [ 72s] error: Bad exit status from /var/tmp/rpm-tmp.MhpoEv (%build) [ 72s] [ 72s] [ 72s] RPM build errors: [ 72s] Bad exit status from /var/tmp/rpm-tmp.MhpoEv (%build) [ 72s] ### VM INTERACTION START ### [ 75s] [ 60.774425] sysrq: SysRq : Power Off [ 75s] [ 60.775836] reboot: Power down [ 76s] ### VM INTERACTION END ### [ 76s] [ 76s] obs-arm-9 failed "build osmo-sgsn.spec" at Fri Jan 8 01:55:07 UTC 2021. [ 76s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Jan 8 01:55:26 2021 From: admin at opensuse.org (OBS Notification) Date: Fri, 08 Jan 2021 01:55:26 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in Debian_8.0/x86_64 In-Reply-To: References: Message-ID: <5ff7bba083fa2_35dd2aba60cf45f0462628@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-pcu/Debian_8.0/x86_64 Package network:osmocom:nightly/osmo-pcu failed to build in Debian_8.0/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-pcu Last lines of build log: [ 224s] CXX llc.lo [ 225s] CXX rlc.lo [ 227s] CXX osmobts_sock.lo [ 228s] CC gprs_codel.lo [ 228s] CC coding_scheme.lo [ 229s] CXX egprs_rlc_compression.lo [ 230s] CXXLD libgprs.la [ 230s] copying selected object files to avoid basename conflicts... [ 230s] CXX pcu_main.o [ 231s] CXXLD osmo-pcu [ 231s] /usr/bin/ld: cannot find -lmnl [ 231s] collect2: error: ld returned 1 exit status [ 231s] Makefile:684: recipe for target 'osmo-pcu' failed [ 231s] make[2]: *** [osmo-pcu] Error 1 [ 231s] make[2]: Leaving directory '/usr/src/packages/BUILD/src' [ 231s] Makefile:405: recipe for target 'all-recursive' failed [ 231s] make[1]: *** [all-recursive] Error 1 [ 231s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 231s] dh_auto_build: make -j1 returned exit code 2 [ 231s] debian/rules:12: recipe for target 'build' failed [ 231s] make: *** [build] Error 2 [ 231s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 231s] ### VM INTERACTION START ### [ 233s] Powering off. [ 233s] [ 221.636345] reboot: Power down [ 233s] ### VM INTERACTION END ### [ 233s] [ 233s] lamb04 failed "build osmo-pcu_0.8.0.301.480c.dsc" at Fri Jan 8 01:55:12 UTC 2021. [ 233s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Jan 8 01:55:26 2021 From: admin at opensuse.org (OBS Notification) Date: Fri, 08 Jan 2021 01:55:26 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in xUbuntu_19.04/x86_64 In-Reply-To: References: Message-ID: <5ff7bba1879a_35dd2aba60cf45f04627b2@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-pcu/xUbuntu_19.04/x86_64 Package network:osmocom:nightly/osmo-pcu failed to build in xUbuntu_19.04/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-pcu Last lines of build log: [ 222s] /bin/bash ../libtool --tag=CXX --mode=compile g++ -DPACKAGE_NAME=\"osmo-pcu\" -DPACKAGE_TARNAME=\"osmo-pcu\" -DPACKAGE_VERSION=\"0.8.0.301-480c\" -DPACKAGE_STRING=\"osmo-pcu\ 0.8.0.301-480c\" -DPACKAGE_BUGREPORT=\"osmocom-net-gprs at lists.osmocom.org\" -DPACKAGE_URL=\"\" -DPACKAGE=\"osmo-pcu\" -DVERSION=\"0.8.0.301-480c\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DSTDC_HEADERS=1 -I. -I../include -Wall -pthread -I/usr/include/ -fno-strict-aliasing -I/usr/include/ -I/usr/include/ -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -ldl -pthread -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu++03 -c -o egprs_rlc_compression.lo egprs_rlc_compression.cpp [ 223s] libtool: compile: g++ -DPACKAGE_NAME=\"osmo-pcu\" -DPACKAGE_TARNAME=\"osmo-pcu\" -DPACKAGE_VERSION=\"0.8.0.301-480c\" "-DPACKAGE_STRING=\"osmo-pcu 0.8.0.301-480c\"" -DPACKAGE_BUGREPORT=\"osmocom-net-gprs at lists.osmocom.org\" -DPACKAGE_URL=\"\" -DPACKAGE=\"osmo-pcu\" -DVERSION=\"0.8.0.301-480c\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DSTDC_HEADERS=1 -I. -I../include -Wall -pthread -I/usr/include/ -fno-strict-aliasing -I/usr/include/ -I/usr/include/ -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -ldl -pthread -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu++03 -c egprs_rlc_compression.cpp -fPIC -DPIC -o .libs/egprs_rlc_compression.o [ 223s] libtool: compile: g++ -DPACKAGE_NAME=\"osmo-pcu\" -DPACKAGE_TARNAME=\"osmo-pcu\" -DPACKAGE_VERSION=\"0.8.0.301-480c\" "-DPACKAGE_STRING=\"osmo-pcu 0.8.0.301-480c\"" -DPACKAGE_BUGREPORT=\"osmocom-net-gprs at lists.osmocom.org\" -DPACKAGE_URL=\"\" -DPACKAGE=\"osmo-pcu\" -DVERSION=\"0.8.0.301-480c\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DSTDC_HEADERS=1 -I. -I../include -Wall -pthread -I/usr/include/ -fno-strict-aliasing -I/usr/include/ -I/usr/include/ -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -ldl -pthread -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu++03 -c egprs_rlc_compression.cpp -o egprs_rlc_compression.o >/dev/null 2>&1 [ 223s] /bin/bash ../libtool --tag=CXX --mode=link g++ -Wall -ldl -pthread -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu++03 -lrt -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -o libgprs.la gprs_debug.lo csn1.lo gsm_rlcmac.lo gprs_bssgp_pcu.lo gprs_rlcmac.lo gprs_rlcmac_sched.lo gprs_rlcmac_meas.lo gprs_rlcmac_ts_alloc.lo gprs_ms.lo gprs_ms_storage.lo gsm_timer.lo pcu_l1_if.lo pcu_vty.lo pcu_vty_functions.lo mslot_class.lo tbf.lo tbf_ul.lo tbf_dl.lo bts.lo pdch.lo poll_controller.lo encoding.lo sba.lo decoding.lo llc.lo rlc.lo osmobts_sock.lo gprs_codel.lo coding_scheme.lo egprs_rlc_compression.lo gprs_rlcmac_sched.lo [ 223s] copying selected object files to avoid basename conflicts... [ 223s] libtool: link: ln .libs/gprs_rlcmac_sched.o .libs/libgprs.lax/lt1-gprs_rlcmac_sched.o || cp .libs/gprs_rlcmac_sched.o .libs/libgprs.lax/lt1-gprs_rlcmac_sched.o [ 223s] libtool: link: ar cru .libs/libgprs.a .libs/gprs_debug.o .libs/csn1.o .libs/gsm_rlcmac.o .libs/gprs_bssgp_pcu.o .libs/gprs_rlcmac.o .libs/gprs_rlcmac_sched.o .libs/gprs_rlcmac_meas.o .libs/gprs_rlcmac_ts_alloc.o .libs/gprs_ms.o .libs/gprs_ms_storage.o .libs/gsm_timer.o .libs/pcu_l1_if.o .libs/pcu_vty.o .libs/pcu_vty_functions.o .libs/mslot_class.o .libs/tbf.o .libs/tbf_ul.o .libs/tbf_dl.o .libs/bts.o .libs/pdch.o .libs/poll_controller.o .libs/encoding.o .libs/sba.o .libs/decoding.o .libs/llc.o .libs/rlc.o .libs/osmobts_sock.o .libs/gprs_codel.o .libs/coding_scheme.o .libs/egprs_rlc_compression.o .libs/libgprs.lax/lt1-gprs_rlcmac_sched.o [ 223s] ar: `u' modifier ignored since `D' is the default (see `U') [ 223s] libtool: link: ranlib .libs/libgprs.a [ 223s] libtool: link: rm -fr .libs/libgprs.lax [ 223s] libtool: link: ( cd ".libs" && rm -f "libgprs.la" && ln -s "../libgprs.la" "libgprs.la" ) [ 223s] /bin/bash ../libtool --tag=CXX --mode=link g++ -Wall -ldl -pthread -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu++03 -lrt -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -o osmo-pcu pcu_main.o libgprs.la -ltalloc -losmogb -losmovty -losmocore -lmnl -ltalloc -losmocore -ltalloc -losmogsm -losmocore [ 223s] libtool: link: g++ -Wall -pthread -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu++03 -Wl,-Bsymbolic-functions -Wl,-z -Wl,relro -Wl,-z -Wl,now -o osmo-pcu pcu_main.o ./.libs/libgprs.a -ldl -lrt /usr/lib/x86_64-linux-gnu/libosmogb.so /usr/lib/x86_64-linux-gnu/libosmovty.so -lmnl -ltalloc /usr/lib/x86_64-linux-gnu/libosmogsm.so /usr/lib/x86_64-linux-gnu/libosmocore.so -pthread [ 223s] /usr/bin/ld: cannot find -lmnl [ 223s] collect2: error: ld returned 1 exit status [ 223s] make[2]: *** [Makefile:724: osmo-pcu] Error 1 [ 223s] make[2]: Leaving directory '/usr/src/packages/BUILD/src' [ 224s] make[1]: *** [Makefile:417: all-recursive] Error 1 [ 224s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 224s] dh_auto_build: make -j1 returned exit code 2 [ 224s] make: *** [debian/rules:12: build] Error 2 [ 224s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 224s] ### VM INTERACTION START ### [ 227s] [ 215.340039] sysrq: Power Off [ 227s] [ 215.344832] reboot: Power down [ 227s] ### VM INTERACTION END ### [ 227s] [ 227s] sheep85 failed "build osmo-pcu_0.8.0.301.480c.dsc" at Fri Jan 8 01:55:14 UTC 2021. [ 227s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Jan 8 01:55:43 2021 From: admin at opensuse.org (OBS Notification) Date: Fri, 08 Jan 2021 01:55:43 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in Debian_10/aarch64 In-Reply-To: References: Message-ID: <5ff7bbbbc01ca_35dd2aba60cf45f04628f@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-pcu/Debian_10/aarch64 Package network:osmocom:nightly/osmo-pcu failed to build in Debian_10/aarch64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-pcu Last lines of build log: [ 372s] /bin/bash ../libtool --tag=CXX --mode=compile g++ -DPACKAGE_NAME=\"osmo-pcu\" -DPACKAGE_TARNAME=\"osmo-pcu\" -DPACKAGE_VERSION=\"0.8.0.301-480c\" -DPACKAGE_STRING=\"osmo-pcu\ 0.8.0.301-480c\" -DPACKAGE_BUGREPORT=\"osmocom-net-gprs at lists.osmocom.org\" -DPACKAGE_URL=\"\" -DPACKAGE=\"osmo-pcu\" -DVERSION=\"0.8.0.301-480c\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DSTDC_HEADERS=1 -I. -I../include -Wall -pthread -I/usr/include/ -fno-strict-aliasing -I/usr/include/ -I/usr/include/ -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -ldl -pthread -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu++03 -c -o egprs_rlc_compression.lo egprs_rlc_compression.cpp [ 372s] libtool: compile: g++ -DPACKAGE_NAME=\"osmo-pcu\" -DPACKAGE_TARNAME=\"osmo-pcu\" -DPACKAGE_VERSION=\"0.8.0.301-480c\" "-DPACKAGE_STRING=\"osmo-pcu 0.8.0.301-480c\"" -DPACKAGE_BUGREPORT=\"osmocom-net-gprs at lists.osmocom.org\" -DPACKAGE_URL=\"\" -DPACKAGE=\"osmo-pcu\" -DVERSION=\"0.8.0.301-480c\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DSTDC_HEADERS=1 -I. -I../include -Wall -pthread -I/usr/include/ -fno-strict-aliasing -I/usr/include/ -I/usr/include/ -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -ldl -pthread -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu++03 -c egprs_rlc_compression.cpp -fPIC -DPIC -o .libs/egprs_rlc_compression.o [ 373s] libtool: compile: g++ -DPACKAGE_NAME=\"osmo-pcu\" -DPACKAGE_TARNAME=\"osmo-pcu\" -DPACKAGE_VERSION=\"0.8.0.301-480c\" "-DPACKAGE_STRING=\"osmo-pcu 0.8.0.301-480c\"" -DPACKAGE_BUGREPORT=\"osmocom-net-gprs at lists.osmocom.org\" -DPACKAGE_URL=\"\" -DPACKAGE=\"osmo-pcu\" -DVERSION=\"0.8.0.301-480c\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DSTDC_HEADERS=1 -I. -I../include -Wall -pthread -I/usr/include/ -fno-strict-aliasing -I/usr/include/ -I/usr/include/ -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -ldl -pthread -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu++03 -c egprs_rlc_compression.cpp -o egprs_rlc_compression.o >/dev/null 2>&1 [ 373s] /bin/bash ../libtool --tag=CXX --mode=link g++ -Wall -ldl -pthread -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu++03 -lrt -Wl,-z,relro -Wl,-z,now -o libgprs.la gprs_debug.lo csn1.lo gsm_rlcmac.lo gprs_bssgp_pcu.lo gprs_rlcmac.lo gprs_rlcmac_sched.lo gprs_rlcmac_meas.lo gprs_rlcmac_ts_alloc.lo gprs_ms.lo gprs_ms_storage.lo gsm_timer.lo pcu_l1_if.lo pcu_vty.lo pcu_vty_functions.lo mslot_class.lo tbf.lo tbf_ul.lo tbf_dl.lo bts.lo pdch.lo poll_controller.lo encoding.lo sba.lo decoding.lo llc.lo rlc.lo osmobts_sock.lo gprs_codel.lo coding_scheme.lo egprs_rlc_compression.lo gprs_rlcmac_sched.lo [ 374s] copying selected object files to avoid basename conflicts... [ 374s] libtool: link: ln .libs/gprs_rlcmac_sched.o .libs/libgprs.lax/lt1-gprs_rlcmac_sched.o || cp .libs/gprs_rlcmac_sched.o .libs/libgprs.lax/lt1-gprs_rlcmac_sched.o [ 374s] libtool: link: ar cru .libs/libgprs.a .libs/gprs_debug.o .libs/csn1.o .libs/gsm_rlcmac.o .libs/gprs_bssgp_pcu.o .libs/gprs_rlcmac.o .libs/gprs_rlcmac_sched.o .libs/gprs_rlcmac_meas.o .libs/gprs_rlcmac_ts_alloc.o .libs/gprs_ms.o .libs/gprs_ms_storage.o .libs/gsm_timer.o .libs/pcu_l1_if.o .libs/pcu_vty.o .libs/pcu_vty_functions.o .libs/mslot_class.o .libs/tbf.o .libs/tbf_ul.o .libs/tbf_dl.o .libs/bts.o .libs/pdch.o .libs/poll_controller.o .libs/encoding.o .libs/sba.o .libs/decoding.o .libs/llc.o .libs/rlc.o .libs/osmobts_sock.o .libs/gprs_codel.o .libs/coding_scheme.o .libs/egprs_rlc_compression.o .libs/libgprs.lax/lt1-gprs_rlcmac_sched.o [ 374s] ar: `u' modifier ignored since `D' is the default (see `U') [ 374s] libtool: link: ranlib .libs/libgprs.a [ 374s] libtool: link: rm -fr .libs/libgprs.lax [ 374s] libtool: link: ( cd ".libs" && rm -f "libgprs.la" && ln -s "../libgprs.la" "libgprs.la" ) [ 374s] /bin/bash ../libtool --tag=CXX --mode=link g++ -Wall -ldl -pthread -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu++03 -lrt -Wl,-z,relro -Wl,-z,now -o osmo-pcu pcu_main.o libgprs.la -ltalloc -losmogb -losmovty -losmocore -lmnl -ltalloc -losmocore -ltalloc -losmogsm -losmocore [ 374s] libtool: link: g++ -Wall -pthread -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu++03 -Wl,-z -Wl,relro -Wl,-z -Wl,now -o osmo-pcu pcu_main.o ./.libs/libgprs.a -ldl -lrt /usr/lib/aarch64-linux-gnu/libosmogb.so /usr/lib/aarch64-linux-gnu/libosmovty.so -lmnl -ltalloc /usr/lib/aarch64-linux-gnu/libosmogsm.so /usr/lib/aarch64-linux-gnu/libosmocore.so -pthread [ 374s] /usr/bin/ld: cannot find -lmnl [ 374s] collect2: error: ld returned 1 exit status [ 374s] make[2]: *** [Makefile:724: osmo-pcu] Error 1 [ 374s] make[2]: Leaving directory '/usr/src/packages/BUILD/src' [ 374s] make[1]: *** [Makefile:417: all-recursive] Error 1 [ 374s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 374s] dh_auto_build: make -j1 returned exit code 2 [ 374s] make: *** [debian/rules:12: build] Error 2 [ 374s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 374s] ### VM INTERACTION START ### [ 377s] [ 354.050255] sysrq: Power Off [ 377s] [ 354.097754] reboot: Power down [ 378s] ### VM INTERACTION END ### [ 378s] [ 378s] obs-arm-9 failed "build osmo-pcu_0.8.0.301.480c.dsc" at Fri Jan 8 01:55:31 UTC 2021. [ 378s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Jan 8 01:56:00 2021 From: admin at opensuse.org (OBS Notification) Date: Fri, 08 Jan 2021 01:56:00 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sgsn in openSUSE_Tumbleweed/i586 In-Reply-To: References: Message-ID: <5ff7bbbd33675_35dd2aba60cf45f04629a8@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-sgsn/openSUSE_Tumbleweed/i586 Package network:osmocom:nightly/osmo-sgsn failed to build in openSUSE_Tumbleweed/i586 Check out the package for editing: osc checkout network:osmocom:nightly osmo-sgsn Last lines of build log: [ 44s] CC v42bis.o [ 44s] CC gprs_mm_state_iu_fsm.o [ 44s] CC gprs_ranap.o [ 45s] gprs_ranap.c: In function 'gsm0408_gprs_rcvmsg_iu': [ 45s] gprs_ranap.c:245:9: note: '#pragma message: set drop_cipherable arg for gsm0408_rcv_gmm() from IuPS?' [ 45s] 245 | #pragma message "set drop_cipherable arg for gsm0408_rcv_gmm() from IuPS?" [ 45s] | ^~~~~~~ [ 45s] CCLD osmo-sgsn [ 45s] /usr/lib/gcc/i586-suse-linux/10/../../../../i586-suse-linux/bin/ld: cannot find -lmnl [ 45s] collect2: error: ld returned 1 exit status [ 45s] make[3]: *** [Makefile:513: osmo-sgsn] Error 1 [ 45s] make[3]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-sgsn-1.6.0.122.ddb3f/src/sgsn' [ 45s] make[2]: *** [Makefile:394: all-recursive] Error 1 [ 45s] make[2]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-sgsn-1.6.0.122.ddb3f/src' [ 45s] make[1]: *** [Makefile:460: all-recursive] Error 1 [ 45s] make[1]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-sgsn-1.6.0.122.ddb3f' [ 45s] make: *** [Makefile:392: all] Error 2 [ 45s] error: Bad exit status from /var/tmp/rpm-tmp.22OcWi (%build) [ 45s] [ 45s] [ 45s] RPM build errors: [ 45s] Bad exit status from /var/tmp/rpm-tmp.22OcWi (%build) [ 45s] ### VM INTERACTION START ### [ 48s] [ 41.321458] sysrq: Power Off [ 48s] [ 41.324233] reboot: Power down [ 48s] ### VM INTERACTION END ### [ 48s] [ 48s] build82 failed "build osmo-sgsn.spec" at Fri Jan 8 01:55:46 UTC 2021. [ 48s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Jan 8 01:56:17 2021 From: admin at opensuse.org (OBS Notification) Date: Fri, 08 Jan 2021 01:56:17 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sgsn in openSUSE_Factory_ARM/aarch64 In-Reply-To: References: Message-ID: <5ff7bbd816f36_35dd2aba60cf45f04630c7@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-sgsn/openSUSE_Factory_ARM/aarch64 Package network:osmocom:nightly/osmo-sgsn failed to build in openSUSE_Factory_ARM/aarch64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-sgsn Last lines of build log: [ 56s] CC v42bis.o [ 57s] CC gprs_mm_state_iu_fsm.o [ 57s] CC gprs_ranap.o [ 57s] gprs_ranap.c: In function 'gsm0408_gprs_rcvmsg_iu': [ 57s] gprs_ranap.c:245:9: note: '#pragma message: set drop_cipherable arg for gsm0408_rcv_gmm() from IuPS?' [ 57s] 245 | #pragma message "set drop_cipherable arg for gsm0408_rcv_gmm() from IuPS?" [ 57s] | ^~~~~~~ [ 57s] CCLD osmo-sgsn [ 58s] /usr/lib64/gcc/aarch64-suse-linux/10/../../../../aarch64-suse-linux/bin/ld: cannot find -lmnl [ 58s] collect2: error: ld returned 1 exit status [ 58s] make[3]: *** [Makefile:513: osmo-sgsn] Error 1 [ 58s] make[3]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-sgsn-1.6.0.122.ddb3f/src/sgsn' [ 58s] make[2]: *** [Makefile:394: all-recursive] Error 1 [ 58s] make[2]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-sgsn-1.6.0.122.ddb3f/src' [ 58s] make[1]: *** [Makefile:460: all-recursive] Error 1 [ 58s] make[1]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-sgsn-1.6.0.122.ddb3f' [ 58s] make: *** [Makefile:392: all] Error 2 [ 58s] error: Bad exit status from /var/tmp/rpm-tmp.6CcpLP (%build) [ 58s] [ 58s] [ 58s] RPM build errors: [ 58s] Bad exit status from /var/tmp/rpm-tmp.6CcpLP (%build) [ 58s] ### VM INTERACTION START ### [ 61s] [ 49.354368] sysrq: Power Off [ 61s] [ 49.355626] reboot: Power down [ 61s] ### VM INTERACTION END ### [ 61s] [ 61s] obs-arm-8 failed "build osmo-sgsn.spec" at Fri Jan 8 01:56:04 UTC 2021. [ 61s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Jan 8 01:57:09 2021 From: admin at opensuse.org (OBS Notification) Date: Fri, 08 Jan 2021 01:57:09 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in xUbuntu_18.04/x86_64 In-Reply-To: References: Message-ID: <5ff7bbfb30713_35dd2aba60cf45f0463380@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-pcu/xUbuntu_18.04/x86_64 Package network:osmocom:nightly/osmo-pcu failed to build in xUbuntu_18.04/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-pcu Last lines of build log: [ 436s] copying selected object files to avoid basename conflicts... [ 436s] libtool: link: ln .libs/gprs_rlcmac_sched.o .libs/libgprs.lax/lt1-gprs_rlcmac_sched.o || cp .libs/gprs_rlcmac_sched.o .libs/libgprs.lax/lt1-gprs_rlcmac_sched.o [ 436s] libtool: link: ar cru .libs/libgprs.a .libs/gprs_debug.o .libs/csn1.o .libs/gsm_rlcmac.o .libs/gprs_bssgp_pcu.o .libs/gprs_rlcmac.o .libs/gprs_rlcmac_sched.o .libs/gprs_rlcmac_meas.o .libs/gprs_rlcmac_ts_alloc.o .libs/gprs_ms.o .libs/gprs_ms_storage.o .libs/gsm_timer.o .libs/pcu_l1_if.o .libs/pcu_vty.o .libs/pcu_vty_functions.o .libs/mslot_class.o .libs/tbf.o .libs/tbf_ul.o .libs/tbf_dl.o .libs/bts.o .libs/pdch.o .libs/poll_controller.o .libs/encoding.o .libs/sba.o .libs/decoding.o .libs/llc.o .libs/rlc.o .libs/osmobts_sock.o .libs/gprs_codel.o .libs/coding_scheme.o .libs/egprs_rlc_compression.o .libs/libgprs.lax/lt1-gprs_rlcmac_sched.o [ 436s] ar: `u' modifier ignored since `D' is the default (see `U') [ 436s] libtool: link: ranlib .libs/libgprs.a [ 436s] libtool: link: rm -fr .libs/libgprs.lax [ 436s] libtool: link: ( cd ".libs" && rm -f "libgprs.la" && ln -s "../libgprs.la" "libgprs.la" ) [ 436s] g++ -DPACKAGE_NAME=\"osmo-pcu\" -DPACKAGE_TARNAME=\"osmo-pcu\" -DPACKAGE_VERSION=\"0.8.0.301-480c\" -DPACKAGE_STRING=\"osmo-pcu\ 0.8.0.301-480c\" -DPACKAGE_BUGREPORT=\"osmocom-net-gprs at lists.osmocom.org\" -DPACKAGE_URL=\"\" -DPACKAGE=\"osmo-pcu\" -DVERSION=\"0.8.0.301-480c\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DSTDC_HEADERS=1 -I. -I../include -Wall -pthread -I/usr/include/ -fno-strict-aliasing -I/usr/include/ -I/usr/include/ -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -ldl -pthread -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu++03 -c -o pcu_main.o pcu_main.cpp [ 436s] /bin/bash ../libtool --tag=CXX --mode=link g++ -Wall -ldl -pthread -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu++03 -lrt -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -o osmo-pcu pcu_main.o libgprs.la -ltalloc -losmogb -losmovty -losmocore -lmnl -ltalloc -losmocore -ltalloc -losmogsm -losmocore [ 437s] libtool: link: g++ -Wall -pthread -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu++03 -Wl,-Bsymbolic-functions -Wl,-z -Wl,relro -Wl,-z -Wl,now -o osmo-pcu pcu_main.o ./.libs/libgprs.a -ldl -lrt /usr/lib/x86_64-linux-gnu/libosmogb.so /usr/lib/x86_64-linux-gnu/libosmovty.so -lmnl -ltalloc /usr/lib/x86_64-linux-gnu/libosmogsm.so /usr/lib/x86_64-linux-gnu/libosmocore.so -pthread [ 437s] /usr/bin/x86_64-linux-gnu-ld: cannot find -lmnl [ 437s] collect2: error: ld returned 1 exit status [ 437s] Makefile:696: recipe for target 'osmo-pcu' failed [ 437s] make[2]: *** [osmo-pcu] Error 1 [ 437s] make[2]: Leaving directory '/usr/src/packages/BUILD/src' [ 437s] Makefile:417: recipe for target 'all-recursive' failed [ 437s] make[1]: *** [all-recursive] Error 1 [ 437s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 437s] dh_auto_build: make -j1 returned exit code 2 [ 437s] debian/rules:12: recipe for target 'build' failed [ 437s] make: *** [build] Error 2 [ 437s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 437s] ### VM INTERACTION START ### [ 440s] [ 427.276225] sysrq: Power Off [ 440s] [ 427.283293] reboot: Power down [ 440s] ### VM INTERACTION END ### [ 440s] [ 440s] lamb15 failed "build osmo-pcu_0.8.0.301.480c.dsc" at Fri Jan 8 01:56:48 UTC 2021. [ 440s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Jan 8 02:02:51 2021 From: admin at opensuse.org (OBS Notification) Date: Fri, 08 Jan 2021 02:02:51 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in Debian_10/x86_64 In-Reply-To: References: Message-ID: <5ff7bd5ee374e_35dd2aba60cf45f04645e5@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-pcu/Debian_10/x86_64 Package network:osmocom:nightly/osmo-pcu failed to build in Debian_10/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-pcu Last lines of build log: [ 313s] /bin/bash ../libtool --tag=CXX --mode=compile g++ -DPACKAGE_NAME=\"osmo-pcu\" -DPACKAGE_TARNAME=\"osmo-pcu\" -DPACKAGE_VERSION=\"0.8.0.301-480c\" -DPACKAGE_STRING=\"osmo-pcu\ 0.8.0.301-480c\" -DPACKAGE_BUGREPORT=\"osmocom-net-gprs at lists.osmocom.org\" -DPACKAGE_URL=\"\" -DPACKAGE=\"osmo-pcu\" -DVERSION=\"0.8.0.301-480c\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DSTDC_HEADERS=1 -I. -I../include -Wall -pthread -I/usr/include/ -fno-strict-aliasing -I/usr/include/ -I/usr/include/ -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -ldl -pthread -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu++03 -c -o egprs_rlc_compression.lo egprs_rlc_compression.cpp [ 313s] libtool: compile: g++ -DPACKAGE_NAME=\"osmo-pcu\" -DPACKAGE_TARNAME=\"osmo-pcu\" -DPACKAGE_VERSION=\"0.8.0.301-480c\" "-DPACKAGE_STRING=\"osmo-pcu 0.8.0.301-480c\"" -DPACKAGE_BUGREPORT=\"osmocom-net-gprs at lists.osmocom.org\" -DPACKAGE_URL=\"\" -DPACKAGE=\"osmo-pcu\" -DVERSION=\"0.8.0.301-480c\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DSTDC_HEADERS=1 -I. -I../include -Wall -pthread -I/usr/include/ -fno-strict-aliasing -I/usr/include/ -I/usr/include/ -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -ldl -pthread -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu++03 -c egprs_rlc_compression.cpp -fPIC -DPIC -o .libs/egprs_rlc_compression.o [ 314s] libtool: compile: g++ -DPACKAGE_NAME=\"osmo-pcu\" -DPACKAGE_TARNAME=\"osmo-pcu\" -DPACKAGE_VERSION=\"0.8.0.301-480c\" "-DPACKAGE_STRING=\"osmo-pcu 0.8.0.301-480c\"" -DPACKAGE_BUGREPORT=\"osmocom-net-gprs at lists.osmocom.org\" -DPACKAGE_URL=\"\" -DPACKAGE=\"osmo-pcu\" -DVERSION=\"0.8.0.301-480c\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DSTDC_HEADERS=1 -I. -I../include -Wall -pthread -I/usr/include/ -fno-strict-aliasing -I/usr/include/ -I/usr/include/ -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -ldl -pthread -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu++03 -c egprs_rlc_compression.cpp -o egprs_rlc_compression.o >/dev/null 2>&1 [ 314s] /bin/bash ../libtool --tag=CXX --mode=link g++ -Wall -ldl -pthread -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu++03 -lrt -Wl,-z,relro -Wl,-z,now -o libgprs.la gprs_debug.lo csn1.lo gsm_rlcmac.lo gprs_bssgp_pcu.lo gprs_rlcmac.lo gprs_rlcmac_sched.lo gprs_rlcmac_meas.lo gprs_rlcmac_ts_alloc.lo gprs_ms.lo gprs_ms_storage.lo gsm_timer.lo pcu_l1_if.lo pcu_vty.lo pcu_vty_functions.lo mslot_class.lo tbf.lo tbf_ul.lo tbf_dl.lo bts.lo pdch.lo poll_controller.lo encoding.lo sba.lo decoding.lo llc.lo rlc.lo osmobts_sock.lo gprs_codel.lo coding_scheme.lo egprs_rlc_compression.lo gprs_rlcmac_sched.lo [ 314s] copying selected object files to avoid basename conflicts... [ 314s] libtool: link: ln .libs/gprs_rlcmac_sched.o .libs/libgprs.lax/lt1-gprs_rlcmac_sched.o || cp .libs/gprs_rlcmac_sched.o .libs/libgprs.lax/lt1-gprs_rlcmac_sched.o [ 314s] libtool: link: ar cru .libs/libgprs.a .libs/gprs_debug.o .libs/csn1.o .libs/gsm_rlcmac.o .libs/gprs_bssgp_pcu.o .libs/gprs_rlcmac.o .libs/gprs_rlcmac_sched.o .libs/gprs_rlcmac_meas.o .libs/gprs_rlcmac_ts_alloc.o .libs/gprs_ms.o .libs/gprs_ms_storage.o .libs/gsm_timer.o .libs/pcu_l1_if.o .libs/pcu_vty.o .libs/pcu_vty_functions.o .libs/mslot_class.o .libs/tbf.o .libs/tbf_ul.o .libs/tbf_dl.o .libs/bts.o .libs/pdch.o .libs/poll_controller.o .libs/encoding.o .libs/sba.o .libs/decoding.o .libs/llc.o .libs/rlc.o .libs/osmobts_sock.o .libs/gprs_codel.o .libs/coding_scheme.o .libs/egprs_rlc_compression.o .libs/libgprs.lax/lt1-gprs_rlcmac_sched.o [ 314s] ar: `u' modifier ignored since `D' is the default (see `U') [ 314s] libtool: link: ranlib .libs/libgprs.a [ 314s] libtool: link: rm -fr .libs/libgprs.lax [ 314s] libtool: link: ( cd ".libs" && rm -f "libgprs.la" && ln -s "../libgprs.la" "libgprs.la" ) [ 314s] /bin/bash ../libtool --tag=CXX --mode=link g++ -Wall -ldl -pthread -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu++03 -lrt -Wl,-z,relro -Wl,-z,now -o osmo-pcu pcu_main.o libgprs.la -ltalloc -losmogb -losmovty -losmocore -lmnl -ltalloc -losmocore -ltalloc -losmogsm -losmocore [ 315s] libtool: link: g++ -Wall -pthread -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu++03 -Wl,-z -Wl,relro -Wl,-z -Wl,now -o osmo-pcu pcu_main.o ./.libs/libgprs.a -ldl -lrt /usr/lib/x86_64-linux-gnu/libosmogb.so /usr/lib/x86_64-linux-gnu/libosmovty.so -lmnl -ltalloc /usr/lib/x86_64-linux-gnu/libosmogsm.so /usr/lib/x86_64-linux-gnu/libosmocore.so -pthread [ 315s] /usr/bin/ld: cannot find -lmnl [ 315s] collect2: error: ld returned 1 exit status [ 315s] make[2]: *** [Makefile:724: osmo-pcu] Error 1 [ 315s] make[2]: Leaving directory '/usr/src/packages/BUILD/src' [ 315s] make[1]: *** [Makefile:417: all-recursive] Error 1 [ 315s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 315s] dh_auto_build: make -j1 returned exit code 2 [ 315s] make: *** [debian/rules:12: build] Error 2 [ 315s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 315s] ### VM INTERACTION START ### [ 318s] [ 303.954767] sysrq: Power Off [ 318s] [ 303.960793] reboot: Power down [ 318s] ### VM INTERACTION END ### [ 318s] [ 318s] lamb17 failed "build osmo-pcu_0.8.0.301.480c.dsc" at Fri Jan 8 02:02:23 UTC 2021. [ 318s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Jan 8 02:03:09 2021 From: admin at opensuse.org (OBS Notification) Date: Fri, 08 Jan 2021 02:03:09 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sgsn in Debian_8.0/i586 In-Reply-To: References: Message-ID: <5ff7bd62ed00f_35dd2aba60cf45f0464880@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-sgsn/Debian_8.0/i586 Package network:osmocom:nightly/osmo-sgsn failed to build in Debian_8.0/i586 Check out the package for editing: osc checkout network:osmocom:nightly osmo-sgsn Last lines of build log: [ 329s] gprs_ranap.c:245:9: note: #pragma message: set drop_cipherable arg for gsm0408_rcv_gmm() from IuPS? [ 329s] #pragma message "set drop_cipherable arg for gsm0408_rcv_gmm() from IuPS?" [ 329s] ^ [ 329s] CCLD osmo-sgsn [ 330s] /usr/bin/ld: cannot find -lmnl [ 330s] collect2: error: ld returned 1 exit status [ 330s] Makefile:487: recipe for target 'osmo-sgsn' failed [ 330s] make[4]: *** [osmo-sgsn] Error 1 [ 330s] make[4]: Leaving directory '/usr/src/packages/BUILD/src/sgsn' [ 330s] Makefile:383: recipe for target 'all-recursive' failed [ 330s] make[3]: *** [all-recursive] Error 1 [ 330s] make[3]: Leaving directory '/usr/src/packages/BUILD/src' [ 330s] Makefile:449: recipe for target 'all-recursive' failed [ 330s] make[2]: *** [all-recursive] Error 1 [ 330s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 330s] Makefile:380: recipe for target 'all' failed [ 330s] make[1]: *** [all] Error 2 [ 330s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 330s] dh_auto_build: make -j1 returned exit code 2 [ 330s] debian/rules:45: recipe for target 'build' failed [ 330s] make: *** [build] Error 2 [ 330s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 330s] ### VM INTERACTION START ### [ 331s] Powering off. [ 331s] [ 319.811802] reboot: Power down [ 331s] ### VM INTERACTION END ### [ 331s] [ 331s] lamb58 failed "build osmo-sgsn_1.6.0.122.ddb3f.dsc" at Fri Jan 8 02:02:53 UTC 2021. [ 331s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Jan 8 02:05:43 2021 From: admin at opensuse.org (OBS Notification) Date: Fri, 08 Jan 2021 02:05:43 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sgsn in CentOS_8/aarch64 In-Reply-To: References: Message-ID: <5ff7be152273a_35dd2aba60cf45f046601@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-sgsn/CentOS_8/aarch64 Package network:osmocom:nightly/osmo-sgsn failed to build in CentOS_8/aarch64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-sgsn Last lines of build log: [ 122s] CC v42bis.o [ 122s] CC gprs_mm_state_iu_fsm.o [ 122s] CC gprs_ranap.o [ 123s] gprs_ranap.c: In function 'gsm0408_gprs_rcvmsg_iu': [ 123s] gprs_ranap.c:245:9: note: #pragma message: set drop_cipherable arg for gsm0408_rcv_gmm() from IuPS? [ 123s] #pragma message "set drop_cipherable arg for gsm0408_rcv_gmm() from IuPS?" [ 123s] ^~~~~~~ [ 123s] CCLD osmo-sgsn [ 123s] /usr/bin/ld: cannot find -lmnl [ 123s] collect2: error: ld returned 1 exit status [ 123s] make[3]: *** [Makefile:513: osmo-sgsn] Error 1 [ 123s] make[3]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-sgsn-1.6.0.122.ddb3f/src/sgsn' [ 123s] make[2]: *** [Makefile:394: all-recursive] Error 1 [ 123s] make[2]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-sgsn-1.6.0.122.ddb3f/src' [ 123s] make[1]: *** [Makefile:460: all-recursive] Error 1 [ 123s] make[1]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-sgsn-1.6.0.122.ddb3f' [ 123s] make: *** [Makefile:392: all] Error 2 [ 123s] error: Bad exit status from /var/tmp/rpm-tmp.yl0CR6 (%build) [ 123s] [ 123s] [ 123s] RPM build errors: [ 123s] Bad exit status from /var/tmp/rpm-tmp.yl0CR6 (%build) [ 124s] ### VM INTERACTION START ### [ 125s] Powering off. [ 125s] [ 103.095912] reboot: Power down [ 125s] ### VM INTERACTION END ### [ 125s] [ 125s] obs-arm-9 failed "build osmo-sgsn.spec" at Fri Jan 8 02:05:08 UTC 2021. [ 125s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Jan 8 02:12:34 2021 From: admin at opensuse.org (OBS Notification) Date: Fri, 08 Jan 2021 02:12:34 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in xUbuntu_19.10/x86_64 In-Reply-To: References: Message-ID: <5ff7bf9da50a7_35dd2aba60cf45f04664e6@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-pcu/xUbuntu_19.10/x86_64 Package network:osmocom:nightly/osmo-pcu failed to build in xUbuntu_19.10/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-pcu Last lines of build log: [ 824s] /bin/bash ../libtool --tag=CXX --mode=compile g++ -DPACKAGE_NAME=\"osmo-pcu\" -DPACKAGE_TARNAME=\"osmo-pcu\" -DPACKAGE_VERSION=\"0.8.0.301-480c\" -DPACKAGE_STRING=\"osmo-pcu\ 0.8.0.301-480c\" -DPACKAGE_BUGREPORT=\"osmocom-net-gprs at lists.osmocom.org\" -DPACKAGE_URL=\"\" -DPACKAGE=\"osmo-pcu\" -DVERSION=\"0.8.0.301-480c\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DSTDC_HEADERS=1 -I. -I../include -Wall -pthread -I/usr/include/ -fno-strict-aliasing -I/usr/include/ -I/usr/include/ -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -ldl -pthread -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu++03 -c -o egprs_rlc_compression.lo egprs_rlc_compression.cpp [ 824s] libtool: compile: g++ -DPACKAGE_NAME=\"osmo-pcu\" -DPACKAGE_TARNAME=\"osmo-pcu\" -DPACKAGE_VERSION=\"0.8.0.301-480c\" "-DPACKAGE_STRING=\"osmo-pcu 0.8.0.301-480c\"" -DPACKAGE_BUGREPORT=\"osmocom-net-gprs at lists.osmocom.org\" -DPACKAGE_URL=\"\" -DPACKAGE=\"osmo-pcu\" -DVERSION=\"0.8.0.301-480c\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DSTDC_HEADERS=1 -I. -I../include -Wall -pthread -I/usr/include/ -fno-strict-aliasing -I/usr/include/ -I/usr/include/ -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -ldl -pthread -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu++03 -c egprs_rlc_compression.cpp -fPIC -DPIC -o .libs/egprs_rlc_compression.o [ 825s] libtool: compile: g++ -DPACKAGE_NAME=\"osmo-pcu\" -DPACKAGE_TARNAME=\"osmo-pcu\" -DPACKAGE_VERSION=\"0.8.0.301-480c\" "-DPACKAGE_STRING=\"osmo-pcu 0.8.0.301-480c\"" -DPACKAGE_BUGREPORT=\"osmocom-net-gprs at lists.osmocom.org\" -DPACKAGE_URL=\"\" -DPACKAGE=\"osmo-pcu\" -DVERSION=\"0.8.0.301-480c\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DSTDC_HEADERS=1 -I. -I../include -Wall -pthread -I/usr/include/ -fno-strict-aliasing -I/usr/include/ -I/usr/include/ -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -ldl -pthread -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu++03 -c egprs_rlc_compression.cpp -o egprs_rlc_compression.o >/dev/null 2>&1 [ 825s] /bin/bash ../libtool --tag=CXX --mode=link g++ -Wall -ldl -pthread -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu++03 -lrt -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -o libgprs.la gprs_debug.lo csn1.lo gsm_rlcmac.lo gprs_bssgp_pcu.lo gprs_rlcmac.lo gprs_rlcmac_sched.lo gprs_rlcmac_meas.lo gprs_rlcmac_ts_alloc.lo gprs_ms.lo gprs_ms_storage.lo gsm_timer.lo pcu_l1_if.lo pcu_vty.lo pcu_vty_functions.lo mslot_class.lo tbf.lo tbf_ul.lo tbf_dl.lo bts.lo pdch.lo poll_controller.lo encoding.lo sba.lo decoding.lo llc.lo rlc.lo osmobts_sock.lo gprs_codel.lo coding_scheme.lo egprs_rlc_compression.lo gprs_rlcmac_sched.lo [ 825s] copying selected object files to avoid basename conflicts... [ 825s] libtool: link: ln .libs/gprs_rlcmac_sched.o .libs/libgprs.lax/lt1-gprs_rlcmac_sched.o || cp .libs/gprs_rlcmac_sched.o .libs/libgprs.lax/lt1-gprs_rlcmac_sched.o [ 825s] libtool: link: ar cru .libs/libgprs.a .libs/gprs_debug.o .libs/csn1.o .libs/gsm_rlcmac.o .libs/gprs_bssgp_pcu.o .libs/gprs_rlcmac.o .libs/gprs_rlcmac_sched.o .libs/gprs_rlcmac_meas.o .libs/gprs_rlcmac_ts_alloc.o .libs/gprs_ms.o .libs/gprs_ms_storage.o .libs/gsm_timer.o .libs/pcu_l1_if.o .libs/pcu_vty.o .libs/pcu_vty_functions.o .libs/mslot_class.o .libs/tbf.o .libs/tbf_ul.o .libs/tbf_dl.o .libs/bts.o .libs/pdch.o .libs/poll_controller.o .libs/encoding.o .libs/sba.o .libs/decoding.o .libs/llc.o .libs/rlc.o .libs/osmobts_sock.o .libs/gprs_codel.o .libs/coding_scheme.o .libs/egprs_rlc_compression.o .libs/libgprs.lax/lt1-gprs_rlcmac_sched.o [ 825s] ar: `u' modifier ignored since `D' is the default (see `U') [ 825s] libtool: link: ranlib .libs/libgprs.a [ 825s] libtool: link: rm -fr .libs/libgprs.lax [ 826s] libtool: link: ( cd ".libs" && rm -f "libgprs.la" && ln -s "../libgprs.la" "libgprs.la" ) [ 826s] /bin/bash ../libtool --tag=CXX --mode=link g++ -Wall -ldl -pthread -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu++03 -lrt -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -o osmo-pcu pcu_main.o libgprs.la -ltalloc -losmogb -losmovty -losmocore -lmnl -ltalloc -losmocore -ltalloc -losmogsm -losmocore [ 826s] libtool: link: g++ -Wall -pthread -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu++03 -Wl,-Bsymbolic-functions -Wl,-z -Wl,relro -Wl,-z -Wl,now -o osmo-pcu pcu_main.o ./.libs/libgprs.a -ldl -lrt /usr/lib/x86_64-linux-gnu/libosmogb.so /usr/lib/x86_64-linux-gnu/libosmovty.so -lmnl -ltalloc /usr/lib/x86_64-linux-gnu/libosmogsm.so /usr/lib/x86_64-linux-gnu/libosmocore.so -pthread [ 826s] /usr/bin/ld: cannot find -lmnl [ 826s] collect2: error: ld returned 1 exit status [ 826s] make[2]: *** [Makefile:724: osmo-pcu] Error 1 [ 826s] make[2]: Leaving directory '/usr/src/packages/BUILD/src' [ 826s] make[1]: *** [Makefile:417: all-recursive] Error 1 [ 826s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 826s] dh_auto_build: make -j1 returned exit code 2 [ 826s] make: *** [debian/rules:12: build] Error 255 [ 826s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 826s] ### VM INTERACTION START ### [ 829s] [ 765.735775] sysrq: Power Off [ 829s] [ 765.761737] reboot: Power down [ 829s] ### VM INTERACTION END ### [ 829s] [ 829s] lamb24 failed "build osmo-pcu_0.8.0.301.480c.dsc" at Fri Jan 8 02:12:22 UTC 2021. [ 829s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Jan 8 02:14:51 2021 From: admin at opensuse.org (OBS Notification) Date: Fri, 08 Jan 2021 02:14:51 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sgsn in Debian_9.0/i586 In-Reply-To: References: Message-ID: <5ff7c02f9c2fc_35dd2aba60cf45f04667ce@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-sgsn/Debian_9.0/i586 Package network:osmocom:nightly/osmo-sgsn failed to build in Debian_9.0/i586 Check out the package for editing: osc checkout network:osmocom:nightly osmo-sgsn Last lines of build log: [ 319s] #pragma message "set drop_cipherable arg for gsm0408_rcv_gmm() from IuPS?" [ 319s] ^~~~~~~ [ 319s] /bin/bash ../../libtool --tag=CC --mode=link gcc -Wall -fno-strict-aliasing -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -fno-strict-aliasing -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-trigraphs -Werror=implicit -Werror=maybe-uninitialized -Werror=memset-transposed-args -Wnull-dereference -Werror=sizeof-array-argument -Werror=sizeof-pointer-memaccess -Wl,-z,relro -o osmo-sgsn gprs_gb.o gprs_gmm_attach.o gprs_gmm.o gprs_gmm_fsm.o gprs_mm_state_gb_fsm.o gprs_sgsn.o gprs_sm.o gprs_sndcp.o gprs_sndcp_comp.o gprs_sndcp_dcomp.o gprs_sndcp_pcomp.o gprs_sndcp_vty.o gprs_sndcp_xid.o sgsn_main.o sgsn_vty.o sgsn_libgtp.o gprs_llc.o gprs_llc_vty.o sgsn_ctrl.o sgsn_auth.o gprs_subscriber.o sgsn_cdr.o slhc.o gprs_llc_xid.o v42bis.o gprs_mm_state_iu_fsm.o gprs_ranap.o ../../src/gprs/gprs_llc_parse.o ../../src/gprs/crc24.o ../../src/gprs/gprs_utils.o ../../src/gprs/sgsn_ares.o -ltalloc -losmocore -ltalloc -losmogsm -losmocore -ltalloc -losmovty -losmocore -ltalloc -losmoctrl -losmogsm -losmocore -ltalloc -losmogb -losmovty -losmocore -lmnl -lgtp -losmoabis -losmo-gsup-client -lcares -lgtp -lrt -lm -losmo-sigtran -losmo-ranap -ltalloc -lasn1c [ 320s] libtool: link: gcc -Wall -fno-strict-aliasing -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -fno-strict-aliasing -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-trigraphs -Werror=implicit -Werror=maybe-uninitialized -Werror=memset-transposed-args -Wnull-dereference -Werror=sizeof-array-argument -Werror=sizeof-pointer-memaccess -Wl,-z -Wl,relro -o osmo-sgsn gprs_gb.o gprs_gmm_attach.o gprs_gmm.o gprs_gmm_fsm.o gprs_mm_state_gb_fsm.o gprs_sgsn.o gprs_sm.o gprs_sndcp.o gprs_sndcp_comp.o gprs_sndcp_dcomp.o gprs_sndcp_pcomp.o gprs_sndcp_vty.o gprs_sndcp_xid.o sgsn_main.o sgsn_vty.o sgsn_libgtp.o gprs_llc.o gprs_llc_vty.o sgsn_ctrl.o sgsn_auth.o gprs_subscriber.o sgsn_cdr.o slhc.o gprs_llc_xid.o v42bis.o gprs_mm_state_iu_fsm.o gprs_ranap.o ../../src/gprs/gprs_llc_parse.o ../../src/gprs/crc24.o ../../src/gprs/gprs_utils.o ../../src/gprs/sgsn_ares.o /usr/lib/i386-linux-gnu/libosmoctrl.so /usr/lib/i386-linux-gnu/libosmogsm.so /usr/lib/i386-linux-gnu/libosmogb.so /usr/lib/i386-linux-gnu/libosmovty.so /usr/lib/i386-linux-gnu/libosmocore.so -lmnl /usr/lib/i386-linux-gnu/libosmoabis.so /usr/lib/i386-linux-gnu/libosmo-gsup-client.so -lcares /usr/lib/i386-linux-gnu/libgtp.so -lrt -lm /usr/lib/i386-linux-gnu/libosmo-sigtran.so -losmo-ranap -ltalloc -lasn1c -pthread [ 320s] /usr/bin/ld: cannot find -lmnl [ 320s] collect2: error: ld returned 1 exit status [ 320s] Makefile:498: recipe for target 'osmo-sgsn' failed [ 320s] make[4]: *** [osmo-sgsn] Error 1 [ 320s] make[4]: Leaving directory '/usr/src/packages/BUILD/src/sgsn' [ 320s] Makefile:395: recipe for target 'all-recursive' failed [ 320s] make[3]: *** [all-recursive] Error 1 [ 320s] make[3]: Leaving directory '/usr/src/packages/BUILD/src' [ 320s] Makefile:461: recipe for target 'all-recursive' failed [ 320s] make[2]: *** [all-recursive] Error 1 [ 320s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 320s] Makefile:393: recipe for target 'all' failed [ 320s] make[1]: *** [all] Error 2 [ 320s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 320s] dh_auto_build: make -j1 returned exit code 2 [ 320s] debian/rules:45: recipe for target 'build' failed [ 320s] make: *** [build] Error 2 [ 320s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 320s] ### VM INTERACTION START ### [ 323s] [ 307.283103] sysrq: Power Off [ 323s] [ 307.293402] reboot: Power down [ 323s] ### VM INTERACTION END ### [ 323s] [ 323s] cloud121 failed "build osmo-sgsn_1.6.0.122.ddb3f.dsc" at Fri Jan 8 02:14:46 UTC 2021. [ 323s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Jan 8 02:16:34 2021 From: admin at opensuse.org (OBS Notification) Date: Fri, 08 Jan 2021 02:16:34 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sgsn in Debian_8.0/x86_64 In-Reply-To: References: Message-ID: <5ff7c08c6de2b_35dd2aba60cf45f046713b@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-sgsn/Debian_8.0/x86_64 Package network:osmocom:nightly/osmo-sgsn failed to build in Debian_8.0/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-sgsn Last lines of build log: [ 282s] gprs_ranap.c:245:9: note: #pragma message: set drop_cipherable arg for gsm0408_rcv_gmm() from IuPS? [ 282s] #pragma message "set drop_cipherable arg for gsm0408_rcv_gmm() from IuPS?" [ 282s] ^ [ 283s] CCLD osmo-sgsn [ 283s] /usr/bin/ld: cannot find -lmnl [ 283s] collect2: error: ld returned 1 exit status [ 283s] Makefile:487: recipe for target 'osmo-sgsn' failed [ 283s] make[4]: *** [osmo-sgsn] Error 1 [ 283s] make[4]: Leaving directory '/usr/src/packages/BUILD/src/sgsn' [ 283s] Makefile:383: recipe for target 'all-recursive' failed [ 283s] make[3]: *** [all-recursive] Error 1 [ 283s] make[3]: Leaving directory '/usr/src/packages/BUILD/src' [ 283s] Makefile:449: recipe for target 'all-recursive' failed [ 283s] make[2]: *** [all-recursive] Error 1 [ 283s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 283s] Makefile:380: recipe for target 'all' failed [ 283s] make[1]: *** [all] Error 2 [ 283s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 283s] dh_auto_build: make -j1 returned exit code 2 [ 283s] debian/rules:45: recipe for target 'build' failed [ 283s] make: *** [build] Error 2 [ 283s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 283s] ### VM INTERACTION START ### [ 284s] Powering off. [ 284s] [ 266.869071] reboot: Power down [ 284s] ### VM INTERACTION END ### [ 284s] [ 284s] lamb20 failed "build osmo-sgsn_1.6.0.122.ddb3f.dsc" at Fri Jan 8 02:16:30 UTC 2021. [ 284s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Jan 8 02:17:09 2021 From: admin at opensuse.org (OBS Notification) Date: Fri, 08 Jan 2021 02:17:09 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sgsn in Debian_10/aarch64 In-Reply-To: References: Message-ID: <5ff7c0a7aef35_35dd2aba60cf45f04672eb@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-sgsn/Debian_10/aarch64 Package network:osmocom:nightly/osmo-sgsn failed to build in Debian_10/aarch64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-sgsn Last lines of build log: [ 338s] gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../.. -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -Wno-trigraphs -Wall -fno-strict-aliasing -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -fno-strict-aliasing -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-trigraphs -Werror=implicit -Werror=maybe-uninitialized -Werror=memset-transposed-args -Wnull-dereference -Werror=sizeof-array-argument -Werror=sizeof-pointer-memaccess -c -o v42bis.o v42bis.c [ 338s] gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../.. -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -Wno-trigraphs -Wall -fno-strict-aliasing -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -fno-strict-aliasing -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-trigraphs -Werror=implicit -Werror=maybe-uninitialized -Werror=memset-transposed-args -Wnull-dereference -Werror=sizeof-array-argument -Werror=sizeof-pointer-memaccess -c -o gprs_mm_state_iu_fsm.o gprs_mm_state_iu_fsm.c [ 339s] gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../.. -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -Wno-trigraphs -Wall -fno-strict-aliasing -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -fno-strict-aliasing -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-trigraphs -Werror=implicit -Werror=maybe-uninitialized -Werror=memset-transposed-args -Wnull-dereference -Werror=sizeof-array-argument -Werror=sizeof-pointer-memaccess -c -o gprs_ranap.o gprs_ranap.c [ 339s] gprs_ranap.c: In function 'gsm0408_gprs_rcvmsg_iu': [ 339s] gprs_ranap.c:245:9: note: #pragma message: set drop_cipherable arg for gsm0408_rcv_gmm() from IuPS? [ 339s] #pragma message "set drop_cipherable arg for gsm0408_rcv_gmm() from IuPS?" [ 339s] ^~~~~~~ [ 339s] /bin/bash ../../libtool --tag=CC --mode=link gcc -Wall -fno-strict-aliasing -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -fno-strict-aliasing -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-trigraphs -Werror=implicit -Werror=maybe-uninitialized -Werror=memset-transposed-args -Wnull-dereference -Werror=sizeof-array-argument -Werror=sizeof-pointer-memaccess -Wl,-z,relro -o osmo-sgsn gprs_gb.o gprs_gmm_attach.o gprs_gmm.o gprs_gmm_fsm.o gprs_mm_state_gb_fsm.o gprs_sgsn.o gprs_sm.o gprs_sndcp.o gprs_sndcp_comp.o gprs_sndcp_dcomp.o gprs_sndcp_pcomp.o gprs_sndcp_vty.o gprs_sndcp_xid.o sgsn_main.o sgsn_vty.o sgsn_libgtp.o gprs_llc.o gprs_llc_vty.o sgsn_ctrl.o sgsn_auth.o gprs_subscriber.o sgsn_cdr.o slhc.o gprs_llc_xid.o v42bis.o gprs_mm_state_iu_fsm.o gprs_ranap.o ../../src/gprs/gprs_llc_parse.o ../../src/gprs/crc24.o ../../src/gprs/gprs_utils.o ../../src/gprs/sgsn_ares.o -ltalloc -losmocore -ltalloc -losmogsm -losmocore -ltalloc -losmovty -losmocore -ltalloc -losmoctrl -losmogsm -losmocore -ltalloc -losmogb -losmovty -losmocore -lmnl -lgtp -losmoabis -losmo-gsup-client -lcares -lgtp -lrt -lm -losmo-sigtran -losmo-ranap -ltalloc -lasn1c [ 340s] libtool: link: gcc -Wall -fno-strict-aliasing -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -fno-strict-aliasing -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-trigraphs -Werror=implicit -Werror=maybe-uninitialized -Werror=memset-transposed-args -Wnull-dereference -Werror=sizeof-array-argument -Werror=sizeof-pointer-memaccess -Wl,-z -Wl,relro -o osmo-sgsn gprs_gb.o gprs_gmm_attach.o gprs_gmm.o gprs_gmm_fsm.o gprs_mm_state_gb_fsm.o gprs_sgsn.o gprs_sm.o gprs_sndcp.o gprs_sndcp_comp.o gprs_sndcp_dcomp.o gprs_sndcp_pcomp.o gprs_sndcp_vty.o gprs_sndcp_xid.o sgsn_main.o sgsn_vty.o sgsn_libgtp.o gprs_llc.o gprs_llc_vty.o sgsn_ctrl.o sgsn_auth.o gprs_subscriber.o sgsn_cdr.o slhc.o gprs_llc_xid.o v42bis.o gprs_mm_state_iu_fsm.o gprs_ranap.o ../../src/gprs/gprs_llc_parse.o ../../src/gprs/crc24.o ../../src/gprs/gprs_utils.o ../../src/gprs/sgsn_ares.o /usr/lib/aarch64-linux-gnu/libosmoctrl.so /usr/lib/aarch64-linux-gnu/libosmogsm.so /usr/lib/aarch64-linux-gnu/libosmogb.so /usr/lib/aarch64-linux-gnu/libosmovty.so /usr/lib/aarch64-linux-gnu/libosmocore.so -lmnl /usr/lib/aarch64-linux-gnu/libosmoabis.so /usr/lib/aarch64-linux-gnu/libosmo-gsup-client.so -lcares /usr/lib/aarch64-linux-gnu/libgtp.so -lrt -lm /usr/lib/aarch64-linux-gnu/libosmo-sigtran.so -losmo-ranap -ltalloc -lasn1c -pthread [ 340s] /usr/bin/ld: cannot find -lmnl [ 340s] collect2: error: ld returned 1 exit status [ 340s] make[4]: *** [Makefile:514: osmo-sgsn] Error 1 [ 340s] make[4]: Leaving directory '/usr/src/packages/BUILD/src/sgsn' [ 340s] make[3]: *** [Makefile:395: all-recursive] Error 1 [ 340s] make[3]: Leaving directory '/usr/src/packages/BUILD/src' [ 340s] make[2]: *** [Makefile:461: all-recursive] Error 1 [ 340s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 340s] make[1]: *** [Makefile:393: all] Error 2 [ 340s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 340s] dh_auto_build: make -j1 returned exit code 2 [ 340s] make: *** [debian/rules:45: build] Error 2 [ 340s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 340s] ### VM INTERACTION START ### [ 343s] [ 322.598683] sysrq: Power Off [ 343s] [ 322.617645] reboot: Power down [ 344s] ### VM INTERACTION END ### [ 344s] [ 344s] obs-arm-9 failed "build osmo-sgsn_1.6.0.122.ddb3f.dsc" at Fri Jan 8 02:17:05 UTC 2021. [ 344s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Jan 8 02:20:34 2021 From: admin at opensuse.org (OBS Notification) Date: Fri, 08 Jan 2021 02:20:34 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sgsn in Debian_10/i586 In-Reply-To: References: Message-ID: <5ff7c179d3655_35dd2aba60cf45f0467653@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-sgsn/Debian_10/i586 Package network:osmocom:nightly/osmo-sgsn failed to build in Debian_10/i586 Check out the package for editing: osc checkout network:osmocom:nightly osmo-sgsn Last lines of build log: [ 431s] gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../.. -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -Wno-trigraphs -Wall -fno-strict-aliasing -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -fno-strict-aliasing -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-trigraphs -Werror=implicit -Werror=maybe-uninitialized -Werror=memset-transposed-args -Wnull-dereference -Werror=sizeof-array-argument -Werror=sizeof-pointer-memaccess -c -o v42bis.o v42bis.c [ 431s] gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../.. -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -Wno-trigraphs -Wall -fno-strict-aliasing -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -fno-strict-aliasing -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-trigraphs -Werror=implicit -Werror=maybe-uninitialized -Werror=memset-transposed-args -Wnull-dereference -Werror=sizeof-array-argument -Werror=sizeof-pointer-memaccess -c -o gprs_mm_state_iu_fsm.o gprs_mm_state_iu_fsm.c [ 432s] gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../.. -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -Wno-trigraphs -Wall -fno-strict-aliasing -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -fno-strict-aliasing -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-trigraphs -Werror=implicit -Werror=maybe-uninitialized -Werror=memset-transposed-args -Wnull-dereference -Werror=sizeof-array-argument -Werror=sizeof-pointer-memaccess -c -o gprs_ranap.o gprs_ranap.c [ 432s] gprs_ranap.c: In function 'gsm0408_gprs_rcvmsg_iu': [ 432s] gprs_ranap.c:245:9: note: #pragma message: set drop_cipherable arg for gsm0408_rcv_gmm() from IuPS? [ 432s] #pragma message "set drop_cipherable arg for gsm0408_rcv_gmm() from IuPS?" [ 432s] ^~~~~~~ [ 432s] /bin/bash ../../libtool --tag=CC --mode=link gcc -Wall -fno-strict-aliasing -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -fno-strict-aliasing -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-trigraphs -Werror=implicit -Werror=maybe-uninitialized -Werror=memset-transposed-args -Wnull-dereference -Werror=sizeof-array-argument -Werror=sizeof-pointer-memaccess -Wl,-z,relro -o osmo-sgsn gprs_gb.o gprs_gmm_attach.o gprs_gmm.o gprs_gmm_fsm.o gprs_mm_state_gb_fsm.o gprs_sgsn.o gprs_sm.o gprs_sndcp.o gprs_sndcp_comp.o gprs_sndcp_dcomp.o gprs_sndcp_pcomp.o gprs_sndcp_vty.o gprs_sndcp_xid.o sgsn_main.o sgsn_vty.o sgsn_libgtp.o gprs_llc.o gprs_llc_vty.o sgsn_ctrl.o sgsn_auth.o gprs_subscriber.o sgsn_cdr.o slhc.o gprs_llc_xid.o v42bis.o gprs_mm_state_iu_fsm.o gprs_ranap.o ../../src/gprs/gprs_llc_parse.o ../../src/gprs/crc24.o ../../src/gprs/gprs_utils.o ../../src/gprs/sgsn_ares.o -ltalloc -losmocore -ltalloc -losmogsm -losmocore -ltalloc -losmovty -losmocore -ltalloc -losmoctrl -losmogsm -losmocore -ltalloc -losmogb -losmovty -losmocore -lmnl -lgtp -losmoabis -losmo-gsup-client -lcares -lgtp -lrt -lm -losmo-sigtran -losmo-ranap -ltalloc -lasn1c [ 433s] libtool: link: gcc -Wall -fno-strict-aliasing -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -fno-strict-aliasing -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-trigraphs -Werror=implicit -Werror=maybe-uninitialized -Werror=memset-transposed-args -Wnull-dereference -Werror=sizeof-array-argument -Werror=sizeof-pointer-memaccess -Wl,-z -Wl,relro -o osmo-sgsn gprs_gb.o gprs_gmm_attach.o gprs_gmm.o gprs_gmm_fsm.o gprs_mm_state_gb_fsm.o gprs_sgsn.o gprs_sm.o gprs_sndcp.o gprs_sndcp_comp.o gprs_sndcp_dcomp.o gprs_sndcp_pcomp.o gprs_sndcp_vty.o gprs_sndcp_xid.o sgsn_main.o sgsn_vty.o sgsn_libgtp.o gprs_llc.o gprs_llc_vty.o sgsn_ctrl.o sgsn_auth.o gprs_subscriber.o sgsn_cdr.o slhc.o gprs_llc_xid.o v42bis.o gprs_mm_state_iu_fsm.o gprs_ranap.o ../../src/gprs/gprs_llc_parse.o ../../src/gprs/crc24.o ../../src/gprs/gprs_utils.o ../../src/gprs/sgsn_ares.o /usr/lib/i386-linux-gnu/libosmoctrl.so /usr/lib/i386-linux-gnu/libosmogsm.so /usr/lib/i386-linux-gnu/libosmogb.so /usr/lib/i386-linux-gnu/libosmovty.so /usr/lib/i386-linux-gnu/libosmocore.so -lmnl /usr/lib/i386-linux-gnu/libosmoabis.so /usr/lib/i386-linux-gnu/libosmo-gsup-client.so -lcares /usr/lib/i386-linux-gnu/libgtp.so -lrt -lm /usr/lib/i386-linux-gnu/libosmo-sigtran.so -losmo-ranap -ltalloc -lasn1c -pthread [ 433s] /usr/bin/ld: cannot find -lmnl [ 433s] collect2: error: ld returned 1 exit status [ 433s] make[4]: *** [Makefile:514: osmo-sgsn] Error 1 [ 433s] make[4]: Leaving directory '/usr/src/packages/BUILD/src/sgsn' [ 433s] make[3]: *** [Makefile:395: all-recursive] Error 1 [ 433s] make[3]: Leaving directory '/usr/src/packages/BUILD/src' [ 433s] make[2]: *** [Makefile:461: all-recursive] Error 1 [ 433s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 433s] make[1]: *** [Makefile:393: all] Error 2 [ 433s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 433s] dh_auto_build: make -j1 returned exit code 2 [ 433s] make: *** [debian/rules:45: build] Error 2 [ 433s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 433s] ### VM INTERACTION START ### [ 437s] [ 402.380776] sysrq: Power Off [ 437s] [ 402.445933] reboot: Power down [ 437s] ### VM INTERACTION END ### [ 437s] [ 437s] cloud126 failed "build osmo-sgsn_1.6.0.122.ddb3f.dsc" at Fri Jan 8 02:20:21 UTC 2021. [ 437s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Jan 8 02:22:00 2021 From: admin at opensuse.org (OBS Notification) Date: Fri, 08 Jan 2021 02:22:00 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sgsn in openSUSE_Leap_15.2/x86_64 In-Reply-To: References: Message-ID: <5ff7c1d6c62d2_35dd2aba60cf45f04678e8@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-sgsn/openSUSE_Leap_15.2/x86_64 Package network:osmocom:nightly/osmo-sgsn failed to build in openSUSE_Leap_15.2/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-sgsn Last lines of build log: [ 43s] CC v42bis.o [ 43s] CC gprs_mm_state_iu_fsm.o [ 43s] CC gprs_ranap.o [ 44s] gprs_ranap.c: In function 'gsm0408_gprs_rcvmsg_iu': [ 44s] gprs_ranap.c:245:9: note: #pragma message: set drop_cipherable arg for gsm0408_rcv_gmm() from IuPS? [ 44s] #pragma message "set drop_cipherable arg for gsm0408_rcv_gmm() from IuPS?" [ 44s] ^~~~~~~ [ 44s] CCLD osmo-sgsn [ 44s] /usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: cannot find -lmnl [ 44s] collect2: error: ld returned 1 exit status [ 44s] make[3]: *** [Makefile:498: osmo-sgsn] Error 1 [ 44s] make[3]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-sgsn-1.6.0.122.ddb3f/src/sgsn' [ 44s] make[2]: *** [Makefile:394: all-recursive] Error 1 [ 44s] make[2]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-sgsn-1.6.0.122.ddb3f/src' [ 44s] make[1]: *** [Makefile:460: all-recursive] Error 1 [ 44s] make[1]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-sgsn-1.6.0.122.ddb3f' [ 44s] make: *** [Makefile:392: all] Error 2 [ 44s] error: Bad exit status from /var/tmp/rpm-tmp.bt9FVw (%build) [ 44s] [ 44s] [ 44s] RPM build errors: [ 44s] Bad exit status from /var/tmp/rpm-tmp.bt9FVw (%build) [ 44s] ### VM INTERACTION START ### [ 47s] [ 40.279797] sysrq: Power Off [ 47s] [ 40.283624] reboot: Power down [ 48s] ### VM INTERACTION END ### [ 48s] [ 48s] sheep85 failed "build osmo-sgsn.spec" at Fri Jan 8 02:21:37 UTC 2021. [ 48s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Jan 8 02:23:43 2021 From: admin at opensuse.org (OBS Notification) Date: Fri, 08 Jan 2021 02:23:43 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sgsn in CentOS_8/x86_64 In-Reply-To: References: Message-ID: <5ff7c24c3995e_35dd2aba60cf45f046801e@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-sgsn/CentOS_8/x86_64 Package network:osmocom:nightly/osmo-sgsn failed to build in CentOS_8/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-sgsn Last lines of build log: [ 108s] CC v42bis.o [ 108s] CC gprs_mm_state_iu_fsm.o [ 108s] CC gprs_ranap.o [ 108s] gprs_ranap.c: In function 'gsm0408_gprs_rcvmsg_iu': [ 108s] gprs_ranap.c:245:9: note: #pragma message: set drop_cipherable arg for gsm0408_rcv_gmm() from IuPS? [ 108s] #pragma message "set drop_cipherable arg for gsm0408_rcv_gmm() from IuPS?" [ 108s] ^~~~~~~ [ 108s] CCLD osmo-sgsn [ 109s] /usr/bin/ld: cannot find -lmnl [ 109s] collect2: error: ld returned 1 exit status [ 109s] make[3]: *** [Makefile:513: osmo-sgsn] Error 1 [ 109s] make[3]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-sgsn-1.6.0.122.ddb3f/src/sgsn' [ 109s] make[2]: *** [Makefile:394: all-recursive] Error 1 [ 109s] make[2]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-sgsn-1.6.0.122.ddb3f/src' [ 109s] make[1]: *** [Makefile:460: all-recursive] Error 1 [ 109s] make[1]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-sgsn-1.6.0.122.ddb3f' [ 109s] make: *** [Makefile:392: all] Error 2 [ 109s] error: Bad exit status from /var/tmp/rpm-tmp.clYY4M (%build) [ 109s] [ 109s] [ 109s] RPM build errors: [ 109s] Bad exit status from /var/tmp/rpm-tmp.clYY4M (%build) [ 109s] ### VM INTERACTION START ### [ 110s] Powering off. [ 110s] [ 96.188858] reboot: Power down [ 110s] ### VM INTERACTION END ### [ 110s] [ 110s] lamb70 failed "build osmo-sgsn.spec" at Fri Jan 8 02:23:20 UTC 2021. [ 110s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Jan 8 02:24:51 2021 From: admin at opensuse.org (OBS Notification) Date: Fri, 08 Jan 2021 02:24:51 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sgsn in openSUSE_Leap_15.1/x86_64 In-Reply-To: References: Message-ID: <5ff7c28675_35dd2aba60cf45f04681af@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-sgsn/openSUSE_Leap_15.1/x86_64 Package network:osmocom:nightly/osmo-sgsn failed to build in openSUSE_Leap_15.1/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-sgsn Last lines of build log: [ 69s] CC v42bis.o [ 69s] CC gprs_mm_state_iu_fsm.o [ 69s] CC gprs_ranap.o [ 69s] gprs_ranap.c: In function 'gsm0408_gprs_rcvmsg_iu': [ 69s] gprs_ranap.c:245:9: note: #pragma message: set drop_cipherable arg for gsm0408_rcv_gmm() from IuPS? [ 69s] #pragma message "set drop_cipherable arg for gsm0408_rcv_gmm() from IuPS?" [ 69s] ^~~~~~~ [ 70s] CCLD osmo-sgsn [ 70s] /usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: cannot find -lmnl [ 70s] collect2: error: ld returned 1 exit status [ 70s] make[3]: *** [Makefile:498: osmo-sgsn] Error 1 [ 70s] make[3]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-sgsn-1.6.0.122.ddb3f/src/sgsn' [ 70s] make[2]: *** [Makefile:394: all-recursive] Error 1 [ 70s] make[2]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-sgsn-1.6.0.122.ddb3f/src' [ 70s] make[1]: *** [Makefile:460: all-recursive] Error 1 [ 70s] make[1]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-sgsn-1.6.0.122.ddb3f' [ 70s] make: *** [Makefile:392: all] Error 2 [ 70s] error: Bad exit status from /var/tmp/rpm-tmp.EXPP1r (%build) [ 70s] [ 70s] [ 70s] RPM build errors: [ 70s] Bad exit status from /var/tmp/rpm-tmp.EXPP1r (%build) [ 70s] ### VM INTERACTION START ### [ 74s] [ 63.169383] sysrq: SysRq : Power Off [ 74s] [ 63.187924] reboot: Power down [ 74s] ### VM INTERACTION END ### [ 74s] [ 74s] lamb06 failed "build osmo-sgsn.spec" at Fri Jan 8 02:24:39 UTC 2021. [ 74s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Jan 8 02:25:26 2021 From: admin at opensuse.org (OBS Notification) Date: Fri, 08 Jan 2021 02:25:26 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sgsn in openSUSE_Tumbleweed/x86_64 In-Reply-To: References: Message-ID: <5ff7c2a8d6348_35dd2aba60cf45f0468375@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-sgsn/openSUSE_Tumbleweed/x86_64 Package network:osmocom:nightly/osmo-sgsn failed to build in openSUSE_Tumbleweed/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-sgsn Last lines of build log: [ 49s] CC gprs_mm_state_iu_fsm.o [ 49s] CC v42bis.o [ 49s] CC gprs_ranap.o [ 49s] gprs_ranap.c: In function 'gsm0408_gprs_rcvmsg_iu': [ 49s] gprs_ranap.c:245:9: note: '#pragma message: set drop_cipherable arg for gsm0408_rcv_gmm() from IuPS?' [ 49s] 245 | #pragma message "set drop_cipherable arg for gsm0408_rcv_gmm() from IuPS?" [ 49s] | ^~~~~~~ [ 49s] CCLD osmo-sgsn [ 50s] /usr/lib64/gcc/x86_64-suse-linux/10/../../../../x86_64-suse-linux/bin/ld: cannot find -lmnl [ 50s] collect2: error: ld returned 1 exit status [ 50s] make[3]: *** [Makefile:513: osmo-sgsn] Error 1 [ 50s] make[3]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-sgsn-1.6.0.122.ddb3f/src/sgsn' [ 50s] make[2]: *** [Makefile:394: all-recursive] Error 1 [ 50s] make[2]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-sgsn-1.6.0.122.ddb3f/src' [ 50s] make[1]: *** [Makefile:460: all-recursive] Error 1 [ 50s] make[1]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-sgsn-1.6.0.122.ddb3f' [ 50s] make: *** [Makefile:392: all] Error 2 [ 50s] error: Bad exit status from /var/tmp/rpm-tmp.tDUxjj (%build) [ 50s] [ 50s] [ 50s] RPM build errors: [ 50s] Bad exit status from /var/tmp/rpm-tmp.tDUxjj (%build) [ 50s] ### VM INTERACTION START ### [ 53s] [ 45.721716] sysrq: Power Off [ 53s] [ 45.729843] reboot: Power down [ 53s] ### VM INTERACTION END ### [ 53s] [ 53s] lamb63 failed "build osmo-sgsn.spec" at Fri Jan 8 02:25:11 UTC 2021. [ 53s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Fri Jan 8 02:32:21 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 8 Jan 2021 02:32:21 +0000 Subject: Change in osmo-sgsn[master]: configure.ac: define a c standard instead of using the compilers default In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21913 ) Change subject: configure.ac: define a c standard instead of using the compilers default ...................................................................... Patch Set 1: > Patch Set 1: > > The question I'd raise is what do we win with using something newer than let's say C99. I'm not against it, simply asking if gnu11 was chosen for a specific reason. It would be great to know why and have that in the commit message. I don't think there was a specific reason for that version other than "It is well enough supported". It seems that gnu vs c actually brings more benefits than 99 vs 11. The clang default when no -std is specified is gnu11 (gnu17 since version 11). For gcc as well since around version 5.4. So gnu11 is already the default for many and as Holger mentioned it is supported even before that https://releases.llvm.org/11.0.0/tools/clang/docs/ReleaseNotes.html https://gcc.gnu.org/onlinedocs/gcc-5.4.0/gcc/Standards.html#Standards https://gcc.gnu.org/onlinedocs/gcc/C-Extensions.html https://en.wikipedia.org/wiki/C11_%28C_standard_revision%29 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21913 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I9867adbed211db0a7b42ac3557f56c3042a67936 Gerrit-Change-Number: 21913 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Reviewer: zecke Gerrit-Comment-Date: Fri, 08 Jan 2021 02:32:21 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 8 02:32:29 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 8 Jan 2021 02:32:29 +0000 Subject: Change in osmo-sgsn[master]: configure.ac: define a c standard instead of using the compilers default In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21913 ) Change subject: configure.ac: define a c standard instead of using the compilers default ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21913 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I9867adbed211db0a7b42ac3557f56c3042a67936 Gerrit-Change-Number: 21913 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Reviewer: zecke Gerrit-Comment-Date: Fri, 08 Jan 2021 02:32:29 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 8 02:32:33 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 8 Jan 2021 02:32:33 +0000 Subject: Change in osmo-sgsn[master]: configure.ac: define a c standard instead of using the compilers default In-Reply-To: References: Message-ID: daniel has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21913 ) Change subject: configure.ac: define a c standard instead of using the compilers default ...................................................................... configure.ac: define a c standard instead of using the compilers default Change-Id: I9867adbed211db0a7b42ac3557f56c3042a67936 --- M configure.ac 1 file changed, 3 insertions(+), 0 deletions(-) Approvals: zecke: Looks good to me, but someone else must approve laforge: Looks good to me, but someone else must approve daniel: Looks good to me, approved Jenkins Builder: Verified diff --git a/configure.ac b/configure.ac index 0c8a73f..f1a4ed4 100644 --- a/configure.ac +++ b/configure.ac @@ -39,6 +39,9 @@ AC_MSG_ERROR([Please install autoconf-archive; re-run 'autoreconf -fi' for it to take effect.]) ]) +dnl use a defined standard across all builds and don't depend on compiler default +CFLAGS="$CFLAGS -std=gnu11" + dnl checks for libraries AC_SEARCH_LIBS([dlopen], [dl dld], [LIBRARY_DL="$LIBS";LIBS=""]) AC_SUBST(LIBRARY_DL) -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21913 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I9867adbed211db0a7b42ac3557f56c3042a67936 Gerrit-Change-Number: 21913 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Reviewer: zecke Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Fri Jan 8 02:37:26 2021 From: admin at opensuse.org (OBS Notification) Date: Fri, 08 Jan 2021 02:37:26 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sgsn in Debian_9.0/aarch64 In-Reply-To: References: Message-ID: <5ff7c574d72dd_35dd2aba60cf45f0470752@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-sgsn/Debian_9.0/aarch64 Package network:osmocom:nightly/osmo-sgsn failed to build in Debian_9.0/aarch64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-sgsn Last lines of build log: [ 1147s] #pragma message "set drop_cipherable arg for gsm0408_rcv_gmm() from IuPS?" [ 1147s] ^~~~~~~ [ 1148s] /bin/bash ../../libtool --tag=CC --mode=link gcc -Wall -fno-strict-aliasing -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -fno-strict-aliasing -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-trigraphs -Werror=implicit -Werror=maybe-uninitialized -Werror=memset-transposed-args -Wnull-dereference -Werror=sizeof-array-argument -Werror=sizeof-pointer-memaccess -Wl,-z,relro -o osmo-sgsn gprs_gb.o gprs_gmm_attach.o gprs_gmm.o gprs_gmm_fsm.o gprs_mm_state_gb_fsm.o gprs_sgsn.o gprs_sm.o gprs_sndcp.o gprs_sndcp_comp.o gprs_sndcp_dcomp.o gprs_sndcp_pcomp.o gprs_sndcp_vty.o gprs_sndcp_xid.o sgsn_main.o sgsn_vty.o sgsn_libgtp.o gprs_llc.o gprs_llc_vty.o sgsn_ctrl.o sgsn_auth.o gprs_subscriber.o sgsn_cdr.o slhc.o gprs_llc_xid.o v42bis.o gprs_mm_state_iu_fsm.o gprs_ranap.o ../../src/gprs/gprs_llc_parse.o ../../src/gprs/crc24.o ../../src/gprs/gprs_utils.o ../../src/gprs/sgsn_ares.o -ltalloc -losmocore -ltalloc -losmogsm -losmocore -ltalloc -losmovty -losmocore -ltalloc -losmoctrl -losmogsm -losmocore -ltalloc -losmogb -losmovty -losmocore -lmnl -lgtp -losmoabis -losmo-gsup-client -lcares -lgtp -lrt -lm -losmo-sigtran -losmo-ranap -ltalloc -lasn1c [ 1150s] libtool: link: gcc -Wall -fno-strict-aliasing -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -fno-strict-aliasing -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-trigraphs -Werror=implicit -Werror=maybe-uninitialized -Werror=memset-transposed-args -Wnull-dereference -Werror=sizeof-array-argument -Werror=sizeof-pointer-memaccess -Wl,-z -Wl,relro -o osmo-sgsn gprs_gb.o gprs_gmm_attach.o gprs_gmm.o gprs_gmm_fsm.o gprs_mm_state_gb_fsm.o gprs_sgsn.o gprs_sm.o gprs_sndcp.o gprs_sndcp_comp.o gprs_sndcp_dcomp.o gprs_sndcp_pcomp.o gprs_sndcp_vty.o gprs_sndcp_xid.o sgsn_main.o sgsn_vty.o sgsn_libgtp.o gprs_llc.o gprs_llc_vty.o sgsn_ctrl.o sgsn_auth.o gprs_subscriber.o sgsn_cdr.o slhc.o gprs_llc_xid.o v42bis.o gprs_mm_state_iu_fsm.o gprs_ranap.o ../../src/gprs/gprs_llc_parse.o ../../src/gprs/crc24.o ../../src/gprs/gprs_utils.o ../../src/gprs/sgsn_ares.o /usr/lib/aarch64-linux-gnu/libosmoctrl.so /usr/lib/aarch64-linux-gnu/libosmogsm.so /usr/lib/aarch64-linux-gnu/libosmogb.so /usr/lib/aarch64-linux-gnu/libosmovty.so /usr/lib/aarch64-linux-gnu/libosmocore.so -lmnl /usr/lib/aarch64-linux-gnu/libosmoabis.so /usr/lib/aarch64-linux-gnu/libosmo-gsup-client.so -lcares /usr/lib/aarch64-linux-gnu/libgtp.so -lrt -lm /usr/lib/aarch64-linux-gnu/libosmo-sigtran.so -losmo-ranap -ltalloc -lasn1c -pthread [ 1150s] /usr/bin/ld: cannot find -lmnl [ 1150s] collect2: error: ld returned 1 exit status [ 1150s] Makefile:498: recipe for target 'osmo-sgsn' failed [ 1150s] make[4]: *** [osmo-sgsn] Error 1 [ 1150s] make[4]: Leaving directory '/usr/src/packages/BUILD/src/sgsn' [ 1150s] Makefile:395: recipe for target 'all-recursive' failed [ 1150s] make[3]: *** [all-recursive] Error 1 [ 1150s] make[3]: Leaving directory '/usr/src/packages/BUILD/src' [ 1150s] Makefile:461: recipe for target 'all-recursive' failed [ 1150s] make[2]: *** [all-recursive] Error 1 [ 1150s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 1150s] Makefile:393: recipe for target 'all' failed [ 1150s] make[1]: *** [all] Error 2 [ 1150s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 1150s] dh_auto_build: make -j1 returned exit code 2 [ 1150s] debian/rules:45: recipe for target 'build' failed [ 1150s] make: *** [build] Error 2 [ 1150s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 1150s] ### VM INTERACTION START ### [ 1153s] [ 1092.546624] sysrq: Power Off [ 1153s] [ 1092.569849] reboot: Power down [ 1153s] ### VM INTERACTION END ### [ 1153s] [ 1153s] obs-arm-3 failed "build osmo-sgsn_1.6.0.122.ddb3f.dsc" at Fri Jan 8 02:37:09 UTC 2021. [ 1153s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Jan 8 02:38:17 2021 From: admin at opensuse.org (OBS Notification) Date: Fri, 08 Jan 2021 02:38:17 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sgsn in Debian_9.0/x86_64 In-Reply-To: References: Message-ID: <5ff7c5b24eda_35dd2aba60cf45f04711aa@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-sgsn/Debian_9.0/x86_64 Package network:osmocom:nightly/osmo-sgsn failed to build in Debian_9.0/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-sgsn Last lines of build log: [ 271s] #pragma message "set drop_cipherable arg for gsm0408_rcv_gmm() from IuPS?" [ 271s] ^~~~~~~ [ 271s] /bin/bash ../../libtool --tag=CC --mode=link gcc -Wall -fno-strict-aliasing -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -fno-strict-aliasing -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-trigraphs -Werror=implicit -Werror=maybe-uninitialized -Werror=memset-transposed-args -Wnull-dereference -Werror=sizeof-array-argument -Werror=sizeof-pointer-memaccess -Wl,-z,relro -o osmo-sgsn gprs_gb.o gprs_gmm_attach.o gprs_gmm.o gprs_gmm_fsm.o gprs_mm_state_gb_fsm.o gprs_sgsn.o gprs_sm.o gprs_sndcp.o gprs_sndcp_comp.o gprs_sndcp_dcomp.o gprs_sndcp_pcomp.o gprs_sndcp_vty.o gprs_sndcp_xid.o sgsn_main.o sgsn_vty.o sgsn_libgtp.o gprs_llc.o gprs_llc_vty.o sgsn_ctrl.o sgsn_auth.o gprs_subscriber.o sgsn_cdr.o slhc.o gprs_llc_xid.o v42bis.o gprs_mm_state_iu_fsm.o gprs_ranap.o ../../src/gprs/gprs_llc_parse.o ../../src/gprs/crc24.o ../../src/gprs/gprs_utils.o ../../src/gprs/sgsn_ares.o -ltalloc -losmocore -ltalloc -losmogsm -losmocore -ltalloc -losmovty -losmocore -ltalloc -losmoctrl -losmogsm -losmocore -ltalloc -losmogb -losmovty -losmocore -lmnl -lgtp -losmoabis -losmo-gsup-client -lcares -lgtp -lrt -lm -losmo-sigtran -losmo-ranap -ltalloc -lasn1c [ 272s] libtool: link: gcc -Wall -fno-strict-aliasing -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -fno-strict-aliasing -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-trigraphs -Werror=implicit -Werror=maybe-uninitialized -Werror=memset-transposed-args -Wnull-dereference -Werror=sizeof-array-argument -Werror=sizeof-pointer-memaccess -Wl,-z -Wl,relro -o osmo-sgsn gprs_gb.o gprs_gmm_attach.o gprs_gmm.o gprs_gmm_fsm.o gprs_mm_state_gb_fsm.o gprs_sgsn.o gprs_sm.o gprs_sndcp.o gprs_sndcp_comp.o gprs_sndcp_dcomp.o gprs_sndcp_pcomp.o gprs_sndcp_vty.o gprs_sndcp_xid.o sgsn_main.o sgsn_vty.o sgsn_libgtp.o gprs_llc.o gprs_llc_vty.o sgsn_ctrl.o sgsn_auth.o gprs_subscriber.o sgsn_cdr.o slhc.o gprs_llc_xid.o v42bis.o gprs_mm_state_iu_fsm.o gprs_ranap.o ../../src/gprs/gprs_llc_parse.o ../../src/gprs/crc24.o ../../src/gprs/gprs_utils.o ../../src/gprs/sgsn_ares.o /usr/lib/x86_64-linux-gnu/libosmoctrl.so /usr/lib/x86_64-linux-gnu/libosmogsm.so /usr/lib/x86_64-linux-gnu/libosmogb.so /usr/lib/x86_64-linux-gnu/libosmovty.so /usr/lib/x86_64-linux-gnu/libosmocore.so -lmnl /usr/lib/x86_64-linux-gnu/libosmoabis.so /usr/lib/x86_64-linux-gnu/libosmo-gsup-client.so -lcares /usr/lib/x86_64-linux-gnu/libgtp.so -lrt -lm /usr/lib/x86_64-linux-gnu/libosmo-sigtran.so -losmo-ranap -ltalloc -lasn1c -pthread [ 272s] /usr/bin/ld: cannot find -lmnl [ 272s] collect2: error: ld returned 1 exit status [ 272s] Makefile:498: recipe for target 'osmo-sgsn' failed [ 272s] make[4]: *** [osmo-sgsn] Error 1 [ 272s] make[4]: Leaving directory '/usr/src/packages/BUILD/src/sgsn' [ 272s] Makefile:395: recipe for target 'all-recursive' failed [ 272s] make[3]: *** [all-recursive] Error 1 [ 272s] make[3]: Leaving directory '/usr/src/packages/BUILD/src' [ 272s] Makefile:461: recipe for target 'all-recursive' failed [ 272s] make[2]: *** [all-recursive] Error 1 [ 272s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 272s] Makefile:393: recipe for target 'all' failed [ 272s] make[1]: *** [all] Error 2 [ 272s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 272s] dh_auto_build: make -j1 returned exit code 2 [ 272s] debian/rules:45: recipe for target 'build' failed [ 272s] make: *** [build] Error 2 [ 272s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 272s] ### VM INTERACTION START ### [ 275s] [ 264.512704] sysrq: Power Off [ 275s] [ 264.519886] reboot: Power down [ 275s] ### VM INTERACTION END ### [ 275s] [ 275s] lamb11 failed "build osmo-sgsn_1.6.0.122.ddb3f.dsc" at Fri Jan 8 02:37:56 UTC 2021. [ 275s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Jan 8 02:40:00 2021 From: admin at opensuse.org (OBS Notification) Date: Fri, 08 Jan 2021 02:40:00 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sgsn in xUbuntu_19.04/x86_64 In-Reply-To: References: Message-ID: <5ff7c60db4d6b_35dd2aba60cf45f047135e@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-sgsn/xUbuntu_19.04/x86_64 Package network:osmocom:nightly/osmo-sgsn failed to build in xUbuntu_19.04/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-sgsn Last lines of build log: [ 241s] gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../.. -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -Wno-trigraphs -Wall -fno-strict-aliasing -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -fno-strict-aliasing -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-trigraphs -Werror=implicit -Werror=maybe-uninitialized -Werror=memset-transposed-args -Wnull-dereference -Werror=sizeof-array-argument -Werror=sizeof-pointer-memaccess -c -o v42bis.o v42bis.c [ 242s] gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../.. -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -Wno-trigraphs -Wall -fno-strict-aliasing -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -fno-strict-aliasing -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-trigraphs -Werror=implicit -Werror=maybe-uninitialized -Werror=memset-transposed-args -Wnull-dereference -Werror=sizeof-array-argument -Werror=sizeof-pointer-memaccess -c -o gprs_mm_state_iu_fsm.o gprs_mm_state_iu_fsm.c [ 242s] gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../.. -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -Wno-trigraphs -Wall -fno-strict-aliasing -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -fno-strict-aliasing -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-trigraphs -Werror=implicit -Werror=maybe-uninitialized -Werror=memset-transposed-args -Wnull-dereference -Werror=sizeof-array-argument -Werror=sizeof-pointer-memaccess -c -o gprs_ranap.o gprs_ranap.c [ 242s] gprs_ranap.c: In function 'gsm0408_gprs_rcvmsg_iu': [ 242s] gprs_ranap.c:245:9: note: #pragma message: set drop_cipherable arg for gsm0408_rcv_gmm() from IuPS? [ 242s] #pragma message "set drop_cipherable arg for gsm0408_rcv_gmm() from IuPS?" [ 242s] ^~~~~~~ [ 242s] /bin/bash ../../libtool --tag=CC --mode=link gcc -Wall -fno-strict-aliasing -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -fno-strict-aliasing -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-trigraphs -Werror=implicit -Werror=maybe-uninitialized -Werror=memset-transposed-args -Wnull-dereference -Werror=sizeof-array-argument -Werror=sizeof-pointer-memaccess -Wl,-Bsymbolic-functions -Wl,-z,relro -o osmo-sgsn gprs_gb.o gprs_gmm_attach.o gprs_gmm.o gprs_gmm_fsm.o gprs_mm_state_gb_fsm.o gprs_sgsn.o gprs_sm.o gprs_sndcp.o gprs_sndcp_comp.o gprs_sndcp_dcomp.o gprs_sndcp_pcomp.o gprs_sndcp_vty.o gprs_sndcp_xid.o sgsn_main.o sgsn_vty.o sgsn_libgtp.o gprs_llc.o gprs_llc_vty.o sgsn_ctrl.o sgsn_auth.o gprs_subscriber.o sgsn_cdr.o slhc.o gprs_llc_xid.o v42bis.o gprs_mm_state_iu_fsm.o gprs_ranap.o ../../src/gprs/gprs_llc_parse.o ../../src/gprs/crc24.o ../../src/gprs/gprs_utils.o ../../src/gprs/sgsn_ares.o -ltalloc -losmocore -ltalloc -losmogsm -losmocore -ltalloc -losmovty -losmocore -ltalloc -losmoctrl -losmogsm -losmocore -ltalloc -losmogb -losmovty -losmocore -lmnl -lgtp -losmoabis -losmo-gsup-client -lcares -lgtp -lrt -lm -losmo-sigtran -losmo-ranap -ltalloc -lasn1c [ 242s] libtool: link: gcc -Wall -fno-strict-aliasing -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -fno-strict-aliasing -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-trigraphs -Werror=implicit -Werror=maybe-uninitialized -Werror=memset-transposed-args -Wnull-dereference -Werror=sizeof-array-argument -Werror=sizeof-pointer-memaccess -Wl,-Bsymbolic-functions -Wl,-z -Wl,relro -o osmo-sgsn gprs_gb.o gprs_gmm_attach.o gprs_gmm.o gprs_gmm_fsm.o gprs_mm_state_gb_fsm.o gprs_sgsn.o gprs_sm.o gprs_sndcp.o gprs_sndcp_comp.o gprs_sndcp_dcomp.o gprs_sndcp_pcomp.o gprs_sndcp_vty.o gprs_sndcp_xid.o sgsn_main.o sgsn_vty.o sgsn_libgtp.o gprs_llc.o gprs_llc_vty.o sgsn_ctrl.o sgsn_auth.o gprs_subscriber.o sgsn_cdr.o slhc.o gprs_llc_xid.o v42bis.o gprs_mm_state_iu_fsm.o gprs_ranap.o ../../src/gprs/gprs_llc_parse.o ../../src/gprs/crc24.o ../../src/gprs/gprs_utils.o ../../src/gprs/sgsn_ares.o /usr/lib/x86_64-linux-gnu/libosmoctrl.so /usr/lib/x86_64-linux-gnu/libosmogsm.so /usr/lib/x86_64-linux-gnu/libosmogb.so /usr/lib/x86_64-linux-gnu/libosmovty.so /usr/lib/x86_64-linux-gnu/libosmocore.so -lmnl /usr/lib/x86_64-linux-gnu/libosmoabis.so /usr/lib/x86_64-linux-gnu/libosmo-gsup-client.so -lcares /usr/lib/x86_64-linux-gnu/libgtp.so -lrt -lm /usr/lib/x86_64-linux-gnu/libosmo-sigtran.so -losmo-ranap -ltalloc -lasn1c -pthread [ 242s] /usr/bin/ld: cannot find -lmnl [ 242s] collect2: error: ld returned 1 exit status [ 242s] make[4]: *** [Makefile:514: osmo-sgsn] Error 1 [ 242s] make[4]: Leaving directory '/usr/src/packages/BUILD/src/sgsn' [ 242s] make[3]: *** [Makefile:395: all-recursive] Error 1 [ 242s] make[3]: Leaving directory '/usr/src/packages/BUILD/src' [ 242s] make[2]: *** [Makefile:461: all-recursive] Error 1 [ 242s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 242s] make[1]: *** [Makefile:393: all] Error 2 [ 242s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 242s] dh_auto_build: make -j1 returned exit code 2 [ 242s] make: *** [debian/rules:45: build] Error 2 [ 242s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 242s] ### VM INTERACTION START ### [ 245s] [ 235.209023] sysrq: Power Off [ 245s] [ 235.211591] reboot: Power down [ 245s] ### VM INTERACTION END ### [ 245s] [ 245s] sheep86 failed "build osmo-sgsn_1.6.0.122.ddb3f.dsc" at Fri Jan 8 02:39:51 UTC 2021. [ 245s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Jan 8 02:41:09 2021 From: admin at opensuse.org (OBS Notification) Date: Fri, 08 Jan 2021 02:41:09 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sgsn in xUbuntu_20.10/x86_64 In-Reply-To: References: Message-ID: <5ff7c64ad2045_35dd2aba60cf45f04714ca@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-sgsn/xUbuntu_20.10/x86_64 Package network:osmocom:nightly/osmo-sgsn failed to build in xUbuntu_20.10/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-sgsn Last lines of build log: [ 305s] gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../.. -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -Wno-trigraphs -Wall -fno-strict-aliasing -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -fno-strict-aliasing -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-trigraphs -Werror=implicit -Werror=maybe-uninitialized -Werror=memset-transposed-args -Wnull-dereference -Werror=sizeof-array-argument -Werror=sizeof-pointer-memaccess -c -o v42bis.o v42bis.c [ 306s] gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../.. -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -Wno-trigraphs -Wall -fno-strict-aliasing -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -fno-strict-aliasing -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-trigraphs -Werror=implicit -Werror=maybe-uninitialized -Werror=memset-transposed-args -Wnull-dereference -Werror=sizeof-array-argument -Werror=sizeof-pointer-memaccess -c -o gprs_mm_state_iu_fsm.o gprs_mm_state_iu_fsm.c [ 306s] gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../.. -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -Wno-trigraphs -Wall -fno-strict-aliasing -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -fno-strict-aliasing -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-trigraphs -Werror=implicit -Werror=maybe-uninitialized -Werror=memset-transposed-args -Wnull-dereference -Werror=sizeof-array-argument -Werror=sizeof-pointer-memaccess -c -o gprs_ranap.o gprs_ranap.c [ 306s] gprs_ranap.c: In function 'gsm0408_gprs_rcvmsg_iu': [ 306s] gprs_ranap.c:245:9: note: '#pragma message: set drop_cipherable arg for gsm0408_rcv_gmm() from IuPS?' [ 306s] 245 | #pragma message "set drop_cipherable arg for gsm0408_rcv_gmm() from IuPS?" [ 306s] | ^~~~~~~ [ 306s] /bin/bash ../../libtool --tag=CC --mode=link gcc -Wall -fno-strict-aliasing -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -fno-strict-aliasing -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-trigraphs -Werror=implicit -Werror=maybe-uninitialized -Werror=memset-transposed-args -Wnull-dereference -Werror=sizeof-array-argument -Werror=sizeof-pointer-memaccess -Wl,-Bsymbolic-functions -Wl,-z,relro -o osmo-sgsn gprs_gb.o gprs_gmm_attach.o gprs_gmm.o gprs_gmm_fsm.o gprs_mm_state_gb_fsm.o gprs_sgsn.o gprs_sm.o gprs_sndcp.o gprs_sndcp_comp.o gprs_sndcp_dcomp.o gprs_sndcp_pcomp.o gprs_sndcp_vty.o gprs_sndcp_xid.o sgsn_main.o sgsn_vty.o sgsn_libgtp.o gprs_llc.o gprs_llc_vty.o sgsn_ctrl.o sgsn_auth.o gprs_subscriber.o sgsn_cdr.o slhc.o gprs_llc_xid.o v42bis.o gprs_mm_state_iu_fsm.o gprs_ranap.o ../../src/gprs/gprs_llc_parse.o ../../src/gprs/crc24.o ../../src/gprs/gprs_utils.o ../../src/gprs/sgsn_ares.o -ltalloc -losmocore -ltalloc -losmogsm -losmocore -ltalloc -losmovty -losmocore -ltalloc -losmoctrl -losmogsm -losmocore -ltalloc -losmogb -losmovty -losmocore -lmnl -lgtp -losmoabis -losmo-gsup-client -lcares -lgtp -lrt -lm -losmo-sigtran -losmo-ranap -ltalloc -lasn1c [ 306s] libtool: link: gcc -Wall -fno-strict-aliasing -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -fno-strict-aliasing -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-trigraphs -Werror=implicit -Werror=maybe-uninitialized -Werror=memset-transposed-args -Wnull-dereference -Werror=sizeof-array-argument -Werror=sizeof-pointer-memaccess -Wl,-Bsymbolic-functions -Wl,-z -Wl,relro -o osmo-sgsn gprs_gb.o gprs_gmm_attach.o gprs_gmm.o gprs_gmm_fsm.o gprs_mm_state_gb_fsm.o gprs_sgsn.o gprs_sm.o gprs_sndcp.o gprs_sndcp_comp.o gprs_sndcp_dcomp.o gprs_sndcp_pcomp.o gprs_sndcp_vty.o gprs_sndcp_xid.o sgsn_main.o sgsn_vty.o sgsn_libgtp.o gprs_llc.o gprs_llc_vty.o sgsn_ctrl.o sgsn_auth.o gprs_subscriber.o sgsn_cdr.o slhc.o gprs_llc_xid.o v42bis.o gprs_mm_state_iu_fsm.o gprs_ranap.o ../../src/gprs/gprs_llc_parse.o ../../src/gprs/crc24.o ../../src/gprs/gprs_utils.o ../../src/gprs/sgsn_ares.o /usr/lib/x86_64-linux-gnu/libosmoctrl.so /usr/lib/x86_64-linux-gnu/libosmogsm.so /usr/lib/x86_64-linux-gnu/libosmogb.so /usr/lib/x86_64-linux-gnu/libosmovty.so /usr/lib/x86_64-linux-gnu/libosmocore.so -lmnl /usr/lib/x86_64-linux-gnu/libosmoabis.so /usr/lib/x86_64-linux-gnu/libosmo-gsup-client.so -lcares /usr/lib/x86_64-linux-gnu/libgtp.so -lrt -lm /usr/lib/x86_64-linux-gnu/libosmo-sigtran.so -losmo-ranap -ltalloc -lasn1c -pthread [ 306s] /usr/bin/ld: cannot find -lmnl [ 306s] collect2: error: ld returned 1 exit status [ 306s] make[4]: *** [Makefile:514: osmo-sgsn] Error 1 [ 306s] make[4]: Leaving directory '/usr/src/packages/BUILD/src/sgsn' [ 306s] make[3]: *** [Makefile:395: all-recursive] Error 1 [ 306s] make[3]: Leaving directory '/usr/src/packages/BUILD/src' [ 306s] make[2]: *** [Makefile:461: all-recursive] Error 1 [ 306s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 306s] make[1]: *** [Makefile:393: all] Error 2 [ 306s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 306s] dh_auto_build: error: make -j1 returned exit code 2 [ 306s] make: *** [debian/rules:45: build] Error 25 [ 306s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 306s] ### VM INTERACTION START ### [ 307s] Powering off. [ 307s] [ 296.164487] reboot: Power down [ 308s] ### VM INTERACTION END ### [ 308s] [ 308s] goat11 failed "build osmo-sgsn_1.6.0.122.ddb3f.dsc" at Fri Jan 8 02:41:00 UTC 2021. [ 308s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Jan 8 02:42:34 2021 From: admin at opensuse.org (OBS Notification) Date: Fri, 08 Jan 2021 02:42:34 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sgsn in Debian_10/x86_64 In-Reply-To: References: Message-ID: <5ff7c6a4b3ba3_35dd2aba60cf45f0471681@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-sgsn/Debian_10/x86_64 Package network:osmocom:nightly/osmo-sgsn failed to build in Debian_10/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-sgsn Last lines of build log: [ 394s] gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../.. -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -Wno-trigraphs -Wall -fno-strict-aliasing -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -fno-strict-aliasing -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-trigraphs -Werror=implicit -Werror=maybe-uninitialized -Werror=memset-transposed-args -Wnull-dereference -Werror=sizeof-array-argument -Werror=sizeof-pointer-memaccess -c -o v42bis.o v42bis.c [ 395s] gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../.. -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -Wno-trigraphs -Wall -fno-strict-aliasing -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -fno-strict-aliasing -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-trigraphs -Werror=implicit -Werror=maybe-uninitialized -Werror=memset-transposed-args -Wnull-dereference -Werror=sizeof-array-argument -Werror=sizeof-pointer-memaccess -c -o gprs_mm_state_iu_fsm.o gprs_mm_state_iu_fsm.c [ 395s] gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../.. -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -Wno-trigraphs -Wall -fno-strict-aliasing -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -fno-strict-aliasing -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-trigraphs -Werror=implicit -Werror=maybe-uninitialized -Werror=memset-transposed-args -Wnull-dereference -Werror=sizeof-array-argument -Werror=sizeof-pointer-memaccess -c -o gprs_ranap.o gprs_ranap.c [ 396s] gprs_ranap.c: In function 'gsm0408_gprs_rcvmsg_iu': [ 396s] gprs_ranap.c:245:9: note: #pragma message: set drop_cipherable arg for gsm0408_rcv_gmm() from IuPS? [ 396s] #pragma message "set drop_cipherable arg for gsm0408_rcv_gmm() from IuPS?" [ 396s] ^~~~~~~ [ 396s] /bin/bash ../../libtool --tag=CC --mode=link gcc -Wall -fno-strict-aliasing -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -fno-strict-aliasing -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-trigraphs -Werror=implicit -Werror=maybe-uninitialized -Werror=memset-transposed-args -Wnull-dereference -Werror=sizeof-array-argument -Werror=sizeof-pointer-memaccess -Wl,-z,relro -o osmo-sgsn gprs_gb.o gprs_gmm_attach.o gprs_gmm.o gprs_gmm_fsm.o gprs_mm_state_gb_fsm.o gprs_sgsn.o gprs_sm.o gprs_sndcp.o gprs_sndcp_comp.o gprs_sndcp_dcomp.o gprs_sndcp_pcomp.o gprs_sndcp_vty.o gprs_sndcp_xid.o sgsn_main.o sgsn_vty.o sgsn_libgtp.o gprs_llc.o gprs_llc_vty.o sgsn_ctrl.o sgsn_auth.o gprs_subscriber.o sgsn_cdr.o slhc.o gprs_llc_xid.o v42bis.o gprs_mm_state_iu_fsm.o gprs_ranap.o ../../src/gprs/gprs_llc_parse.o ../../src/gprs/crc24.o ../../src/gprs/gprs_utils.o ../../src/gprs/sgsn_ares.o -ltalloc -losmocore -ltalloc -losmogsm -losmocore -ltalloc -losmovty -losmocore -ltalloc -losmoctrl -losmogsm -losmocore -ltalloc -losmogb -losmovty -losmocore -lmnl -lgtp -losmoabis -losmo-gsup-client -lcares -lgtp -lrt -lm -losmo-sigtran -losmo-ranap -ltalloc -lasn1c [ 397s] libtool: link: gcc -Wall -fno-strict-aliasing -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -fno-strict-aliasing -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-trigraphs -Werror=implicit -Werror=maybe-uninitialized -Werror=memset-transposed-args -Wnull-dereference -Werror=sizeof-array-argument -Werror=sizeof-pointer-memaccess -Wl,-z -Wl,relro -o osmo-sgsn gprs_gb.o gprs_gmm_attach.o gprs_gmm.o gprs_gmm_fsm.o gprs_mm_state_gb_fsm.o gprs_sgsn.o gprs_sm.o gprs_sndcp.o gprs_sndcp_comp.o gprs_sndcp_dcomp.o gprs_sndcp_pcomp.o gprs_sndcp_vty.o gprs_sndcp_xid.o sgsn_main.o sgsn_vty.o sgsn_libgtp.o gprs_llc.o gprs_llc_vty.o sgsn_ctrl.o sgsn_auth.o gprs_subscriber.o sgsn_cdr.o slhc.o gprs_llc_xid.o v42bis.o gprs_mm_state_iu_fsm.o gprs_ranap.o ../../src/gprs/gprs_llc_parse.o ../../src/gprs/crc24.o ../../src/gprs/gprs_utils.o ../../src/gprs/sgsn_ares.o /usr/lib/x86_64-linux-gnu/libosmoctrl.so /usr/lib/x86_64-linux-gnu/libosmogsm.so /usr/lib/x86_64-linux-gnu/libosmogb.so /usr/lib/x86_64-linux-gnu/libosmovty.so /usr/lib/x86_64-linux-gnu/libosmocore.so -lmnl /usr/lib/x86_64-linux-gnu/libosmoabis.so /usr/lib/x86_64-linux-gnu/libosmo-gsup-client.so -lcares /usr/lib/x86_64-linux-gnu/libgtp.so -lrt -lm /usr/lib/x86_64-linux-gnu/libosmo-sigtran.so -losmo-ranap -ltalloc -lasn1c -pthread [ 397s] /usr/bin/ld: cannot find -lmnl [ 397s] collect2: error: ld returned 1 exit status [ 397s] make[4]: *** [Makefile:514: osmo-sgsn] Error 1 [ 397s] make[4]: Leaving directory '/usr/src/packages/BUILD/src/sgsn' [ 397s] make[3]: *** [Makefile:395: all-recursive] Error 1 [ 397s] make[3]: Leaving directory '/usr/src/packages/BUILD/src' [ 397s] make[2]: *** [Makefile:461: all-recursive] Error 1 [ 397s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 397s] make[1]: *** [Makefile:393: all] Error 2 [ 397s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 397s] dh_auto_build: make -j1 returned exit code 2 [ 397s] make: *** [debian/rules:45: build] Error 2 [ 397s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 397s] ### VM INTERACTION START ### [ 400s] [ 385.120494] sysrq: Power Off [ 400s] [ 385.169725] reboot: Power down [ 400s] ### VM INTERACTION END ### [ 400s] [ 400s] lamb57 failed "build osmo-sgsn_1.6.0.122.ddb3f.dsc" at Fri Jan 8 02:42:23 UTC 2021. [ 400s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Jan 8 02:44:00 2021 From: admin at opensuse.org (OBS Notification) Date: Fri, 08 Jan 2021 02:44:00 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sgsn in xUbuntu_18.04/x86_64 In-Reply-To: References: Message-ID: <5ff7c6fd78288_35dd2aba60cf45f04718b8@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-sgsn/xUbuntu_18.04/x86_64 Package network:osmocom:nightly/osmo-sgsn failed to build in xUbuntu_18.04/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-sgsn Last lines of build log: [ 475s] #pragma message "set drop_cipherable arg for gsm0408_rcv_gmm() from IuPS?" [ 475s] ^~~~~~~ [ 475s] /bin/bash ../../libtool --tag=CC --mode=link gcc -Wall -fno-strict-aliasing -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -fno-strict-aliasing -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-trigraphs -Werror=implicit -Werror=maybe-uninitialized -Werror=memset-transposed-args -Wnull-dereference -Werror=sizeof-array-argument -Werror=sizeof-pointer-memaccess -Wl,-Bsymbolic-functions -Wl,-z,relro -o osmo-sgsn gprs_gb.o gprs_gmm_attach.o gprs_gmm.o gprs_gmm_fsm.o gprs_mm_state_gb_fsm.o gprs_sgsn.o gprs_sm.o gprs_sndcp.o gprs_sndcp_comp.o gprs_sndcp_dcomp.o gprs_sndcp_pcomp.o gprs_sndcp_vty.o gprs_sndcp_xid.o sgsn_main.o sgsn_vty.o sgsn_libgtp.o gprs_llc.o gprs_llc_vty.o sgsn_ctrl.o sgsn_auth.o gprs_subscriber.o sgsn_cdr.o slhc.o gprs_llc_xid.o v42bis.o gprs_mm_state_iu_fsm.o gprs_ranap.o ../../src/gprs/gprs_llc_parse.o ../../src/gprs/crc24.o ../../src/gprs/gprs_utils.o ../../src/gprs/sgsn_ares.o -ltalloc -losmocore -ltalloc -losmogsm -losmocore -ltalloc -losmovty -losmocore -ltalloc -losmoctrl -losmogsm -losmocore -ltalloc -losmogb -losmovty -losmocore -lmnl -lgtp -losmoabis -losmo-gsup-client -lcares -lgtp -lrt -lm -losmo-sigtran -losmo-ranap -ltalloc -lasn1c [ 476s] libtool: link: gcc -Wall -fno-strict-aliasing -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -fno-strict-aliasing -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-trigraphs -Werror=implicit -Werror=maybe-uninitialized -Werror=memset-transposed-args -Wnull-dereference -Werror=sizeof-array-argument -Werror=sizeof-pointer-memaccess -Wl,-Bsymbolic-functions -Wl,-z -Wl,relro -o osmo-sgsn gprs_gb.o gprs_gmm_attach.o gprs_gmm.o gprs_gmm_fsm.o gprs_mm_state_gb_fsm.o gprs_sgsn.o gprs_sm.o gprs_sndcp.o gprs_sndcp_comp.o gprs_sndcp_dcomp.o gprs_sndcp_pcomp.o gprs_sndcp_vty.o gprs_sndcp_xid.o sgsn_main.o sgsn_vty.o sgsn_libgtp.o gprs_llc.o gprs_llc_vty.o sgsn_ctrl.o sgsn_auth.o gprs_subscriber.o sgsn_cdr.o slhc.o gprs_llc_xid.o v42bis.o gprs_mm_state_iu_fsm.o gprs_ranap.o ../../src/gprs/gprs_llc_parse.o ../../src/gprs/crc24.o ../../src/gprs/gprs_utils.o ../../src/gprs/sgsn_ares.o /usr/lib/x86_64-linux-gnu/libosmoctrl.so /usr/lib/x86_64-linux-gnu/libosmogsm.so /usr/lib/x86_64-linux-gnu/libosmogb.so /usr/lib/x86_64-linux-gnu/libosmovty.so /usr/lib/x86_64-linux-gnu/libosmocore.so -lmnl /usr/lib/x86_64-linux-gnu/libosmoabis.so /usr/lib/x86_64-linux-gnu/libosmo-gsup-client.so -lcares /usr/lib/x86_64-linux-gnu/libgtp.so -lrt -lm /usr/lib/x86_64-linux-gnu/libosmo-sigtran.so -losmo-ranap -ltalloc -lasn1c -pthread [ 476s] /usr/bin/x86_64-linux-gnu-ld: cannot find -lmnl [ 476s] collect2: error: ld returned 1 exit status [ 476s] Makefile:498: recipe for target 'osmo-sgsn' failed [ 476s] make[4]: *** [osmo-sgsn] Error 1 [ 476s] make[4]: Leaving directory '/usr/src/packages/BUILD/src/sgsn' [ 476s] Makefile:395: recipe for target 'all-recursive' failed [ 476s] make[3]: *** [all-recursive] Error 1 [ 476s] make[3]: Leaving directory '/usr/src/packages/BUILD/src' [ 476s] Makefile:461: recipe for target 'all-recursive' failed [ 476s] make[2]: *** [all-recursive] Error 1 [ 476s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 476s] Makefile:393: recipe for target 'all' failed [ 476s] make[1]: *** [all] Error 2 [ 476s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 476s] dh_auto_build: make -j1 returned exit code 2 [ 476s] debian/rules:45: recipe for target 'build' failed [ 476s] make: *** [build] Error 2 [ 476s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 476s] ### VM INTERACTION START ### [ 479s] [ 463.043628] sysrq: Power Off [ 479s] [ 463.087138] reboot: Power down [ 479s] ### VM INTERACTION END ### [ 479s] [ 479s] lamb25 failed "build osmo-sgsn_1.6.0.122.ddb3f.dsc" at Fri Jan 8 02:43:41 UTC 2021. [ 479s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Jan 8 03:22:34 2021 From: admin at opensuse.org (OBS Notification) Date: Fri, 08 Jan 2021 03:22:34 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sgsn in xUbuntu_19.10/x86_64 In-Reply-To: References: Message-ID: <5ff7d004186f3_35dd2aba60cf45f04753af@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-sgsn/xUbuntu_19.10/x86_64 Package network:osmocom:nightly/osmo-sgsn failed to build in xUbuntu_19.10/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-sgsn Last lines of build log: [ 436s] gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../.. -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -Wno-trigraphs -Wall -fno-strict-aliasing -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -fno-strict-aliasing -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-trigraphs -Werror=implicit -Werror=maybe-uninitialized -Werror=memset-transposed-args -Wnull-dereference -Werror=sizeof-array-argument -Werror=sizeof-pointer-memaccess -c -o v42bis.o v42bis.c [ 437s] gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../.. -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -Wno-trigraphs -Wall -fno-strict-aliasing -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -fno-strict-aliasing -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-trigraphs -Werror=implicit -Werror=maybe-uninitialized -Werror=memset-transposed-args -Wnull-dereference -Werror=sizeof-array-argument -Werror=sizeof-pointer-memaccess -c -o gprs_mm_state_iu_fsm.o gprs_mm_state_iu_fsm.c [ 437s] gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../.. -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -Wno-trigraphs -Wall -fno-strict-aliasing -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -fno-strict-aliasing -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-trigraphs -Werror=implicit -Werror=maybe-uninitialized -Werror=memset-transposed-args -Wnull-dereference -Werror=sizeof-array-argument -Werror=sizeof-pointer-memaccess -c -o gprs_ranap.o gprs_ranap.c [ 438s] gprs_ranap.c: In function 'gsm0408_gprs_rcvmsg_iu': [ 438s] gprs_ranap.c:245:9: note: #pragma message: set drop_cipherable arg for gsm0408_rcv_gmm() from IuPS? [ 438s] 245 | #pragma message "set drop_cipherable arg for gsm0408_rcv_gmm() from IuPS?" [ 438s] | ^~~~~~~ [ 438s] /bin/bash ../../libtool --tag=CC --mode=link gcc -Wall -fno-strict-aliasing -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -fno-strict-aliasing -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-trigraphs -Werror=implicit -Werror=maybe-uninitialized -Werror=memset-transposed-args -Wnull-dereference -Werror=sizeof-array-argument -Werror=sizeof-pointer-memaccess -Wl,-Bsymbolic-functions -Wl,-z,relro -o osmo-sgsn gprs_gb.o gprs_gmm_attach.o gprs_gmm.o gprs_gmm_fsm.o gprs_mm_state_gb_fsm.o gprs_sgsn.o gprs_sm.o gprs_sndcp.o gprs_sndcp_comp.o gprs_sndcp_dcomp.o gprs_sndcp_pcomp.o gprs_sndcp_vty.o gprs_sndcp_xid.o sgsn_main.o sgsn_vty.o sgsn_libgtp.o gprs_llc.o gprs_llc_vty.o sgsn_ctrl.o sgsn_auth.o gprs_subscriber.o sgsn_cdr.o slhc.o gprs_llc_xid.o v42bis.o gprs_mm_state_iu_fsm.o gprs_ranap.o ../../src/gprs/gprs_llc_parse.o ../../src/gprs/crc24.o ../../src/gprs/gprs_utils.o ../../src/gprs/sgsn_ares.o -ltalloc -losmocore -ltalloc -losmogsm -losmocore -ltalloc -losmovty -losmocore -ltalloc -losmoctrl -losmogsm -losmocore -ltalloc -losmogb -losmovty -losmocore -lmnl -lgtp -losmoabis -losmo-gsup-client -lcares -lgtp -lrt -lm -losmo-sigtran -losmo-ranap -ltalloc -lasn1c [ 439s] libtool: link: gcc -Wall -fno-strict-aliasing -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -fno-strict-aliasing -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-trigraphs -Werror=implicit -Werror=maybe-uninitialized -Werror=memset-transposed-args -Wnull-dereference -Werror=sizeof-array-argument -Werror=sizeof-pointer-memaccess -Wl,-Bsymbolic-functions -Wl,-z -Wl,relro -o osmo-sgsn gprs_gb.o gprs_gmm_attach.o gprs_gmm.o gprs_gmm_fsm.o gprs_mm_state_gb_fsm.o gprs_sgsn.o gprs_sm.o gprs_sndcp.o gprs_sndcp_comp.o gprs_sndcp_dcomp.o gprs_sndcp_pcomp.o gprs_sndcp_vty.o gprs_sndcp_xid.o sgsn_main.o sgsn_vty.o sgsn_libgtp.o gprs_llc.o gprs_llc_vty.o sgsn_ctrl.o sgsn_auth.o gprs_subscriber.o sgsn_cdr.o slhc.o gprs_llc_xid.o v42bis.o gprs_mm_state_iu_fsm.o gprs_ranap.o ../../src/gprs/gprs_llc_parse.o ../../src/gprs/crc24.o ../../src/gprs/gprs_utils.o ../../src/gprs/sgsn_ares.o /usr/lib/x86_64-linux-gnu/libosmoctrl.so /usr/lib/x86_64-linux-gnu/libosmogsm.so /usr/lib/x86_64-linux-gnu/libosmogb.so /usr/lib/x86_64-linux-gnu/libosmovty.so /usr/lib/x86_64-linux-gnu/libosmocore.so -lmnl /usr/lib/x86_64-linux-gnu/libosmoabis.so /usr/lib/x86_64-linux-gnu/libosmo-gsup-client.so -lcares /usr/lib/x86_64-linux-gnu/libgtp.so -lrt -lm /usr/lib/x86_64-linux-gnu/libosmo-sigtran.so -losmo-ranap -ltalloc -lasn1c -pthread [ 439s] /usr/bin/ld: cannot find -lmnl [ 439s] collect2: error: ld returned 1 exit status [ 439s] make[4]: *** [Makefile:514: osmo-sgsn] Error 1 [ 439s] make[4]: Leaving directory '/usr/src/packages/BUILD/src/sgsn' [ 439s] make[3]: *** [Makefile:395: all-recursive] Error 1 [ 439s] make[3]: Leaving directory '/usr/src/packages/BUILD/src' [ 439s] make[2]: *** [Makefile:461: all-recursive] Error 1 [ 439s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 439s] make[1]: *** [Makefile:393: all] Error 2 [ 439s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 439s] dh_auto_build: make -j1 returned exit code 2 [ 439s] make: *** [debian/rules:45: build] Error 255 [ 439s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 439s] ### VM INTERACTION START ### [ 442s] [ 420.665244] sysrq: Power Off [ 442s] [ 420.693805] reboot: Power down [ 442s] ### VM INTERACTION END ### [ 442s] [ 442s] cloud132 failed "build osmo-sgsn_1.6.0.122.ddb3f.dsc" at Fri Jan 8 03:22:24 UTC 2021. [ 442s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Jan 8 03:33:09 2021 From: admin at opensuse.org (OBS Notification) Date: Fri, 08 Jan 2021 03:33:09 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sgsn in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <5ff7d29491973_35dd2aba60cf45f0476867@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-sgsn/xUbuntu_20.04/x86_64 Package network:osmocom:nightly/osmo-sgsn failed to build in xUbuntu_20.04/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-sgsn Last lines of build log: [ 577s] gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../.. -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -Wno-trigraphs -Wall -fno-strict-aliasing -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -fno-strict-aliasing -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-trigraphs -Werror=implicit -Werror=maybe-uninitialized -Werror=memset-transposed-args -Wnull-dereference -Werror=sizeof-array-argument -Werror=sizeof-pointer-memaccess -c -o v42bis.o v42bis.c [ 578s] gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../.. -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -Wno-trigraphs -Wall -fno-strict-aliasing -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -fno-strict-aliasing -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-trigraphs -Werror=implicit -Werror=maybe-uninitialized -Werror=memset-transposed-args -Wnull-dereference -Werror=sizeof-array-argument -Werror=sizeof-pointer-memaccess -c -o gprs_mm_state_iu_fsm.o gprs_mm_state_iu_fsm.c [ 578s] gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../.. -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -Wno-trigraphs -Wall -fno-strict-aliasing -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -fno-strict-aliasing -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-trigraphs -Werror=implicit -Werror=maybe-uninitialized -Werror=memset-transposed-args -Wnull-dereference -Werror=sizeof-array-argument -Werror=sizeof-pointer-memaccess -c -o gprs_ranap.o gprs_ranap.c [ 578s] gprs_ranap.c: In function 'gsm0408_gprs_rcvmsg_iu': [ 578s] gprs_ranap.c:245:9: note: #pragma message: set drop_cipherable arg for gsm0408_rcv_gmm() from IuPS? [ 578s] 245 | #pragma message "set drop_cipherable arg for gsm0408_rcv_gmm() from IuPS?" [ 578s] | ^~~~~~~ [ 579s] /bin/bash ../../libtool --tag=CC --mode=link gcc -Wall -fno-strict-aliasing -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -fno-strict-aliasing -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-trigraphs -Werror=implicit -Werror=maybe-uninitialized -Werror=memset-transposed-args -Wnull-dereference -Werror=sizeof-array-argument -Werror=sizeof-pointer-memaccess -Wl,-Bsymbolic-functions -Wl,-z,relro -o osmo-sgsn gprs_gb.o gprs_gmm_attach.o gprs_gmm.o gprs_gmm_fsm.o gprs_mm_state_gb_fsm.o gprs_sgsn.o gprs_sm.o gprs_sndcp.o gprs_sndcp_comp.o gprs_sndcp_dcomp.o gprs_sndcp_pcomp.o gprs_sndcp_vty.o gprs_sndcp_xid.o sgsn_main.o sgsn_vty.o sgsn_libgtp.o gprs_llc.o gprs_llc_vty.o sgsn_ctrl.o sgsn_auth.o gprs_subscriber.o sgsn_cdr.o slhc.o gprs_llc_xid.o v42bis.o gprs_mm_state_iu_fsm.o gprs_ranap.o ../../src/gprs/gprs_llc_parse.o ../../src/gprs/crc24.o ../../src/gprs/gprs_utils.o ../../src/gprs/sgsn_ares.o -ltalloc -losmocore -ltalloc -losmogsm -losmocore -ltalloc -losmovty -losmocore -ltalloc -losmoctrl -losmogsm -losmocore -ltalloc -losmogb -losmovty -losmocore -lmnl -lgtp -losmoabis -losmo-gsup-client -lcares -lgtp -lrt -lm -losmo-sigtran -losmo-ranap -ltalloc -lasn1c [ 579s] libtool: link: gcc -Wall -fno-strict-aliasing -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -fno-strict-aliasing -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-trigraphs -Werror=implicit -Werror=maybe-uninitialized -Werror=memset-transposed-args -Wnull-dereference -Werror=sizeof-array-argument -Werror=sizeof-pointer-memaccess -Wl,-Bsymbolic-functions -Wl,-z -Wl,relro -o osmo-sgsn gprs_gb.o gprs_gmm_attach.o gprs_gmm.o gprs_gmm_fsm.o gprs_mm_state_gb_fsm.o gprs_sgsn.o gprs_sm.o gprs_sndcp.o gprs_sndcp_comp.o gprs_sndcp_dcomp.o gprs_sndcp_pcomp.o gprs_sndcp_vty.o gprs_sndcp_xid.o sgsn_main.o sgsn_vty.o sgsn_libgtp.o gprs_llc.o gprs_llc_vty.o sgsn_ctrl.o sgsn_auth.o gprs_subscriber.o sgsn_cdr.o slhc.o gprs_llc_xid.o v42bis.o gprs_mm_state_iu_fsm.o gprs_ranap.o ../../src/gprs/gprs_llc_parse.o ../../src/gprs/crc24.o ../../src/gprs/gprs_utils.o ../../src/gprs/sgsn_ares.o /usr/lib/x86_64-linux-gnu/libosmoctrl.so /usr/lib/x86_64-linux-gnu/libosmogsm.so /usr/lib/x86_64-linux-gnu/libosmogb.so /usr/lib/x86_64-linux-gnu/libosmovty.so /usr/lib/x86_64-linux-gnu/libosmocore.so -lmnl /usr/lib/x86_64-linux-gnu/libosmoabis.so /usr/lib/x86_64-linux-gnu/libosmo-gsup-client.so -lcares /usr/lib/x86_64-linux-gnu/libgtp.so -lrt -lm /usr/lib/x86_64-linux-gnu/libosmo-sigtran.so -losmo-ranap -ltalloc -lasn1c -pthread [ 579s] /usr/bin/ld: cannot find -lmnl [ 579s] collect2: error: ld returned 1 exit status [ 579s] make[4]: *** [Makefile:514: osmo-sgsn] Error 1 [ 579s] make[4]: Leaving directory '/usr/src/packages/BUILD/src/sgsn' [ 579s] make[3]: *** [Makefile:395: all-recursive] Error 1 [ 579s] make[3]: Leaving directory '/usr/src/packages/BUILD/src' [ 579s] make[2]: *** [Makefile:461: all-recursive] Error 1 [ 579s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 579s] make[1]: *** [Makefile:393: all] Error 2 [ 579s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 579s] dh_auto_build: error: make -j1 returned exit code 2 [ 579s] make: *** [debian/rules:45: build] Error 25 [ 579s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 579s] ### VM INTERACTION START ### [ 582s] [ 566.415706] sysrq: Power Off [ 582s] [ 566.423334] reboot: Power down [ 582s] ### VM INTERACTION END ### [ 582s] [ 582s] lamb59 failed "build osmo-sgsn_1.6.0.122.ddb3f.dsc" at Fri Jan 8 03:32:42 UTC 2021. [ 582s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Jan 8 03:49:26 2021 From: admin at opensuse.org (OBS Notification) Date: Fri, 08 Jan 2021 03:49:26 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5ff7d6542b38a_35dd2aba60cf45f04777bc@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-pcu/Debian_Unstable/x86_64 Package network:osmocom:nightly/osmo-pcu failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-pcu Last lines of build log: [ 482s] libtool: compile: gcc -DPACKAGE_NAME=\"osmo-pcu\" -DPACKAGE_TARNAME=\"osmo-pcu\" -DPACKAGE_VERSION=\"0.8.0.301-480c\" "-DPACKAGE_STRING=\"osmo-pcu 0.8.0.301-480c\"" -DPACKAGE_BUGREPORT=\"osmocom-net-gprs at lists.osmocom.org\" -DPACKAGE_URL=\"\" -DPACKAGE=\"osmo-pcu\" -DVERSION=\"0.8.0.301-480c\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DSTDC_HEADERS=1 -I. -I../include -Wall -pthread -I/usr/include/ -fno-strict-aliasing -I/usr/include/ -I/usr/include/ -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu89 -c coding_scheme.c -o coding_scheme.o >/dev/null 2>&1 [ 482s] /bin/bash ../libtool --tag=CXX --mode=compile g++ -DPACKAGE_NAME=\"osmo-pcu\" -DPACKAGE_TARNAME=\"osmo-pcu\" -DPACKAGE_VERSION=\"0.8.0.301-480c\" -DPACKAGE_STRING=\"osmo-pcu\ 0.8.0.301-480c\" -DPACKAGE_BUGREPORT=\"osmocom-net-gprs at lists.osmocom.org\" -DPACKAGE_URL=\"\" -DPACKAGE=\"osmo-pcu\" -DVERSION=\"0.8.0.301-480c\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DSTDC_HEADERS=1 -I. -I../include -Wall -pthread -I/usr/include/ -fno-strict-aliasing -I/usr/include/ -I/usr/include/ -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -ldl -pthread -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu++03 -c -o egprs_rlc_compression.lo egprs_rlc_compression.cpp [ 482s] libtool: compile: g++ -DPACKAGE_NAME=\"osmo-pcu\" -DPACKAGE_TARNAME=\"osmo-pcu\" -DPACKAGE_VERSION=\"0.8.0.301-480c\" "-DPACKAGE_STRING=\"osmo-pcu 0.8.0.301-480c\"" -DPACKAGE_BUGREPORT=\"osmocom-net-gprs at lists.osmocom.org\" -DPACKAGE_URL=\"\" -DPACKAGE=\"osmo-pcu\" -DVERSION=\"0.8.0.301-480c\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DSTDC_HEADERS=1 -I. -I../include -Wall -pthread -I/usr/include/ -fno-strict-aliasing -I/usr/include/ -I/usr/include/ -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -ldl -pthread -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu++03 -c egprs_rlc_compression.cpp -fPIC -DPIC -o .libs/egprs_rlc_compression.o [ 482s] libtool: compile: g++ -DPACKAGE_NAME=\"osmo-pcu\" -DPACKAGE_TARNAME=\"osmo-pcu\" -DPACKAGE_VERSION=\"0.8.0.301-480c\" "-DPACKAGE_STRING=\"osmo-pcu 0.8.0.301-480c\"" -DPACKAGE_BUGREPORT=\"osmocom-net-gprs at lists.osmocom.org\" -DPACKAGE_URL=\"\" -DPACKAGE=\"osmo-pcu\" -DVERSION=\"0.8.0.301-480c\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DSTDC_HEADERS=1 -I. -I../include -Wall -pthread -I/usr/include/ -fno-strict-aliasing -I/usr/include/ -I/usr/include/ -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -ldl -pthread -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu++03 -c egprs_rlc_compression.cpp -o egprs_rlc_compression.o >/dev/null 2>&1 [ 483s] /bin/bash ../libtool --tag=CXX --mode=link g++ -Wall -ldl -pthread -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu++03 -lrt -Wl,-z,relro -Wl,-z,now -o libgprs.la gprs_debug.lo csn1.lo gsm_rlcmac.lo gprs_bssgp_pcu.lo gprs_rlcmac.lo gprs_rlcmac_sched.lo gprs_rlcmac_meas.lo gprs_rlcmac_ts_alloc.lo gprs_ms.lo gprs_ms_storage.lo gsm_timer.lo pcu_l1_if.lo pcu_vty.lo pcu_vty_functions.lo mslot_class.lo tbf.lo tbf_ul.lo tbf_dl.lo bts.lo pdch.lo poll_controller.lo encoding.lo sba.lo decoding.lo llc.lo rlc.lo osmobts_sock.lo gprs_codel.lo coding_scheme.lo egprs_rlc_compression.lo gprs_rlcmac_sched.lo [ 483s] copying selected object files to avoid basename conflicts... [ 483s] libtool: link: ln .libs/gprs_rlcmac_sched.o .libs/libgprs.lax/lt1-gprs_rlcmac_sched.o || cp .libs/gprs_rlcmac_sched.o .libs/libgprs.lax/lt1-gprs_rlcmac_sched.o [ 483s] libtool: link: ar cr .libs/libgprs.a .libs/gprs_debug.o .libs/csn1.o .libs/gsm_rlcmac.o .libs/gprs_bssgp_pcu.o .libs/gprs_rlcmac.o .libs/gprs_rlcmac_sched.o .libs/gprs_rlcmac_meas.o .libs/gprs_rlcmac_ts_alloc.o .libs/gprs_ms.o .libs/gprs_ms_storage.o .libs/gsm_timer.o .libs/pcu_l1_if.o .libs/pcu_vty.o .libs/pcu_vty_functions.o .libs/mslot_class.o .libs/tbf.o .libs/tbf_ul.o .libs/tbf_dl.o .libs/bts.o .libs/pdch.o .libs/poll_controller.o .libs/encoding.o .libs/sba.o .libs/decoding.o .libs/llc.o .libs/rlc.o .libs/osmobts_sock.o .libs/gprs_codel.o .libs/coding_scheme.o .libs/egprs_rlc_compression.o .libs/libgprs.lax/lt1-gprs_rlcmac_sched.o [ 483s] libtool: link: ranlib .libs/libgprs.a [ 483s] libtool: link: rm -fr .libs/libgprs.lax [ 483s] libtool: link: ( cd ".libs" && rm -f "libgprs.la" && ln -s "../libgprs.la" "libgprs.la" ) [ 483s] /bin/bash ../libtool --tag=CXX --mode=link g++ -Wall -ldl -pthread -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu++03 -lrt -Wl,-z,relro -Wl,-z,now -o osmo-pcu pcu_main.o libgprs.la -ltalloc -losmogb -losmovty -losmocore -lmnl -ltalloc -losmocore -ltalloc -losmogsm -losmocore [ 483s] libtool: link: g++ -Wall -pthread -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu++03 -Wl,-z -Wl,relro -Wl,-z -Wl,now -o osmo-pcu pcu_main.o ./.libs/libgprs.a -ldl -lrt /usr/lib/x86_64-linux-gnu/libosmogb.so /usr/lib/x86_64-linux-gnu/libosmovty.so -lmnl -ltalloc /usr/lib/x86_64-linux-gnu/libosmogsm.so /usr/lib/x86_64-linux-gnu/libosmocore.so -pthread [ 483s] /usr/bin/ld: cannot find -lmnl [ 483s] collect2: error: ld returned 1 exit status [ 483s] make[2]: *** [Makefile:724: osmo-pcu] Error 1 [ 483s] make[2]: Leaving directory '/usr/src/packages/BUILD/src' [ 483s] make[1]: *** [Makefile:419: all-recursive] Error 1 [ 483s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 483s] dh_auto_build: error: make -j1 returned exit code 2 [ 483s] make: *** [debian/rules:12: build] Error 25 [ 483s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 483s] ### VM INTERACTION START ### [ 484s] Powering off. [ 484s] [ 464.372949] reboot: Power down [ 484s] ### VM INTERACTION END ### [ 484s] [ 484s] lamb06 failed "build osmo-pcu_0.8.0.301.480c.dsc" at Fri Jan 8 03:49:24 UTC 2021. [ 484s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Jan 8 04:07:43 2021 From: admin at opensuse.org (OBS Notification) Date: Fri, 08 Jan 2021 04:07:43 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sgsn in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5ff7daabc930b_35dd2aba60cf45f04791a9@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-sgsn/Debian_Unstable/x86_64 Package network:osmocom:nightly/osmo-sgsn failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-sgsn Last lines of build log: [ 453s] gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../.. -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -Wno-trigraphs -Wall -fno-strict-aliasing -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -fno-strict-aliasing -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-trigraphs -Werror=implicit -Werror=maybe-uninitialized -Werror=memset-transposed-args -Wnull-dereference -Werror=sizeof-array-argument -Werror=sizeof-pointer-memaccess -c -o v42bis.o v42bis.c [ 453s] gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../.. -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -Wno-trigraphs -Wall -fno-strict-aliasing -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -fno-strict-aliasing -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-trigraphs -Werror=implicit -Werror=maybe-uninitialized -Werror=memset-transposed-args -Wnull-dereference -Werror=sizeof-array-argument -Werror=sizeof-pointer-memaccess -c -o gprs_mm_state_iu_fsm.o gprs_mm_state_iu_fsm.c [ 453s] gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../.. -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -Wno-trigraphs -Wall -fno-strict-aliasing -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -fno-strict-aliasing -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-trigraphs -Werror=implicit -Werror=maybe-uninitialized -Werror=memset-transposed-args -Wnull-dereference -Werror=sizeof-array-argument -Werror=sizeof-pointer-memaccess -c -o gprs_ranap.o gprs_ranap.c [ 453s] gprs_ranap.c: In function 'gsm0408_gprs_rcvmsg_iu': [ 453s] gprs_ranap.c:245:9: note: '#pragma message: set drop_cipherable arg for gsm0408_rcv_gmm() from IuPS?' [ 453s] 245 | #pragma message "set drop_cipherable arg for gsm0408_rcv_gmm() from IuPS?" [ 453s] | ^~~~~~~ [ 454s] /bin/bash ../../libtool --tag=CC --mode=link gcc -Wall -fno-strict-aliasing -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -fno-strict-aliasing -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-trigraphs -Werror=implicit -Werror=maybe-uninitialized -Werror=memset-transposed-args -Wnull-dereference -Werror=sizeof-array-argument -Werror=sizeof-pointer-memaccess -Wl,-z,relro -o osmo-sgsn gprs_gb.o gprs_gmm_attach.o gprs_gmm.o gprs_gmm_fsm.o gprs_mm_state_gb_fsm.o gprs_sgsn.o gprs_sm.o gprs_sndcp.o gprs_sndcp_comp.o gprs_sndcp_dcomp.o gprs_sndcp_pcomp.o gprs_sndcp_vty.o gprs_sndcp_xid.o sgsn_main.o sgsn_vty.o sgsn_libgtp.o gprs_llc.o gprs_llc_vty.o sgsn_ctrl.o sgsn_auth.o gprs_subscriber.o sgsn_cdr.o slhc.o gprs_llc_xid.o v42bis.o gprs_mm_state_iu_fsm.o gprs_ranap.o ../../src/gprs/gprs_llc_parse.o ../../src/gprs/crc24.o ../../src/gprs/gprs_utils.o ../../src/gprs/sgsn_ares.o -ltalloc -losmocore -ltalloc -losmogsm -losmocore -ltalloc -losmovty -losmocore -ltalloc -losmoctrl -losmogsm -losmocore -ltalloc -losmogb -losmovty -losmocore -lmnl -lgtp -losmoabis -losmo-gsup-client -lcares -lgtp -lrt -lm -losmo-sigtran -losmo-ranap -ltalloc -lasn1c [ 454s] libtool: link: gcc -Wall -fno-strict-aliasing -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -fno-strict-aliasing -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-trigraphs -Werror=implicit -Werror=maybe-uninitialized -Werror=memset-transposed-args -Wnull-dereference -Werror=sizeof-array-argument -Werror=sizeof-pointer-memaccess -Wl,-z -Wl,relro -o osmo-sgsn gprs_gb.o gprs_gmm_attach.o gprs_gmm.o gprs_gmm_fsm.o gprs_mm_state_gb_fsm.o gprs_sgsn.o gprs_sm.o gprs_sndcp.o gprs_sndcp_comp.o gprs_sndcp_dcomp.o gprs_sndcp_pcomp.o gprs_sndcp_vty.o gprs_sndcp_xid.o sgsn_main.o sgsn_vty.o sgsn_libgtp.o gprs_llc.o gprs_llc_vty.o sgsn_ctrl.o sgsn_auth.o gprs_subscriber.o sgsn_cdr.o slhc.o gprs_llc_xid.o v42bis.o gprs_mm_state_iu_fsm.o gprs_ranap.o ../../src/gprs/gprs_llc_parse.o ../../src/gprs/crc24.o ../../src/gprs/gprs_utils.o ../../src/gprs/sgsn_ares.o /usr/lib/x86_64-linux-gnu/libosmoctrl.so /usr/lib/x86_64-linux-gnu/libosmogsm.so /usr/lib/x86_64-linux-gnu/libosmogb.so /usr/lib/x86_64-linux-gnu/libosmovty.so /usr/lib/x86_64-linux-gnu/libosmocore.so -lmnl /usr/lib/x86_64-linux-gnu/libosmoabis.so /usr/lib/x86_64-linux-gnu/libosmo-gsup-client.so -lcares /usr/lib/x86_64-linux-gnu/libgtp.so -lrt -lm /usr/lib/x86_64-linux-gnu/libosmo-sigtran.so -losmo-ranap -ltalloc -lasn1c -pthread [ 454s] /usr/bin/ld: cannot find -lmnl [ 454s] collect2: error: ld returned 1 exit status [ 454s] make[4]: *** [Makefile:514: osmo-sgsn] Error 1 [ 454s] make[4]: Leaving directory '/usr/src/packages/BUILD/src/sgsn' [ 454s] make[3]: *** [Makefile:395: all-recursive] Error 1 [ 454s] make[3]: Leaving directory '/usr/src/packages/BUILD/src' [ 454s] make[2]: *** [Makefile:463: all-recursive] Error 1 [ 454s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 454s] make[1]: *** [Makefile:395: all] Error 2 [ 454s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 454s] dh_auto_build: error: make -j1 returned exit code 2 [ 454s] make: *** [debian/rules:45: build] Error 25 [ 454s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 454s] ### VM INTERACTION START ### [ 455s] Powering off. [ 455s] [ 437.468395] reboot: Power down [ 455s] ### VM INTERACTION END ### [ 455s] [ 455s] lamb74 failed "build osmo-sgsn_1.6.0.122.ddb3f.dsc" at Fri Jan 8 04:07:31 UTC 2021. [ 455s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Jan 8 04:55:43 2021 From: admin at opensuse.org (OBS Notification) Date: Fri, 08 Jan 2021 04:55:43 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in openSUSE_Leap_15.1_ARM/armv7l In-Reply-To: References: Message-ID: <5ff7e5eacd5e5_35dd2aba60cf45f048221d@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-pcu/openSUSE_Leap_15.1_ARM/armv7l Package network:osmocom:nightly/osmo-pcu failed to build in openSUSE_Leap_15.1_ARM/armv7l Check out the package for editing: osc checkout network:osmocom:nightly osmo-pcu Last lines of build log: [ 160s] CXX sba.lo [ 163s] CXX decoding.lo [ 165s] CXX llc.lo [ 166s] CXX rlc.lo [ 166s] CXX osmobts_sock.lo [ 170s] CC gprs_codel.lo [ 170s] CC coding_scheme.lo [ 173s] CXX egprs_rlc_compression.lo [ 177s] CXX pcu_main.o [ 180s] CXXLD libgprs.la [ 181s] copying selected object files to avoid basename conflicts... [ 181s] CXXLD osmo-pcu [ 182s] /usr/lib/gcc/armv7hl-suse-linux-gnueabi/7/../../../../armv7hl-suse-linux-gnueabi/bin/ld: cannot find -lmnl [ 182s] collect2: error: ld returned 1 exit status [ 182s] make[1]: *** [Makefile:696: osmo-pcu] Error 1 [ 182s] make[1]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-pcu-0.8.0.301.480c/src' [ 182s] make: *** [Makefile:416: all-recursive] Error 1 [ 182s] error: Bad exit status from /var/tmp/rpm-tmp.ntuCuu (%build) [ 182s] [ 182s] [ 182s] RPM build errors: [ 182s] Bad exit status from /var/tmp/rpm-tmp.ntuCuu (%build) [ 182s] ### VM INTERACTION START ### [ 185s] [ 160.791587] sysrq: SysRq : Power Off [ 185s] [ 160.801222] reboot: Power down [ 186s] ### VM INTERACTION END ### [ 186s] [ 186s] obs-arm-5 failed "build osmo-pcu.spec" at Fri Jan 8 04:55:37 UTC 2021. [ 186s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Jan 8 05:30:17 2021 From: admin at opensuse.org (OBS Notification) Date: Fri, 08 Jan 2021 05:30:17 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in openSUSE_Factory_ARM/armv7l In-Reply-To: References: Message-ID: <5ff7ee01a037c_35dd2aba60cf45f0485930@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-pcu/openSUSE_Factory_ARM/armv7l Package network:osmocom:nightly/osmo-pcu failed to build in openSUSE_Factory_ARM/armv7l Check out the package for editing: osc checkout network:osmocom:nightly osmo-pcu Last lines of build log: [ 182s] CXX encoding.lo [ 183s] CXX sba.lo [ 183s] CXX decoding.lo [ 187s] CXX llc.lo [ 187s] CXX rlc.lo [ 188s] CXX osmobts_sock.lo [ 189s] CC gprs_codel.lo [ 190s] CC coding_scheme.lo [ 190s] CXX egprs_rlc_compression.lo [ 197s] CXXLD libgprs.la [ 197s] copying selected object files to avoid basename conflicts... [ 198s] CXXLD osmo-pcu [ 199s] /usr/lib/gcc/armv7hl-suse-linux-gnueabi/10/../../../../armv7hl-suse-linux-gnueabi/bin/ld: cannot find -lmnl [ 199s] collect2: error: ld returned 1 exit status [ 199s] make[1]: *** [Makefile:723: osmo-pcu] Error 1 [ 199s] make[1]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-pcu-0.8.0.301.480c/src' [ 199s] make: *** [Makefile:416: all-recursive] Error 1 [ 199s] error: Bad exit status from /var/tmp/rpm-tmp.aBLPZc (%build) [ 199s] [ 199s] [ 199s] RPM build errors: [ 199s] Bad exit status from /var/tmp/rpm-tmp.aBLPZc (%build) [ 199s] ### VM INTERACTION START ### [ 202s] [ 165.286833] sysrq: Power Off [ 202s] [ 165.317383] reboot: Power down [ 202s] ### VM INTERACTION END ### [ 202s] [ 202s] obs-arm-5 failed "build osmo-pcu.spec" at Fri Jan 8 05:30:06 UTC 2021. [ 202s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Fri Jan 8 05:32:02 2021 From: gerrit-no-reply at lists.osmocom.org (keith) Date: Fri, 8 Jan 2021 05:32:02 +0000 Subject: Change in osmo-msc[master]: Add vty option to globally enable LCLS In-Reply-To: References: Message-ID: keith has uploaded a new patch set (#11) to the change originally created by Max. ( https://gerrit.osmocom.org/c/osmo-msc/+/13421 ) Change subject: Add vty option to globally enable LCLS ...................................................................... Add vty option to globally enable LCLS It's disabled by default. Change-Id: Ibb587e6ae47cff71f5bf2e2d22c1da86cd7e1762 --- M include/osmocom/msc/gsm_data.h M include/osmocom/msc/vlr.h M src/libmsc/msc_vty.c M src/libmsc/transaction.c M src/libvlr/vlr.c M src/osmo-msc/msc_main.c M tests/test_nodes.vty 7 files changed, 18 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/21/13421/11 -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/13421 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: Ibb587e6ae47cff71f5bf2e2d22c1da86cd7e1762 Gerrit-Change-Number: 13421 Gerrit-PatchSet: 11 Gerrit-Owner: Max Gerrit-Assignee: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Max Gerrit-Reviewer: fixeria Gerrit-Reviewer: keith Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: osmith Gerrit-CC: Hoernchen Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 8 05:46:49 2021 From: gerrit-no-reply at lists.osmocom.org (keith) Date: Fri, 8 Jan 2021 05:46:49 +0000 Subject: Change in osmo-msc[master]: Add vty option to globally enable LCLS In-Reply-To: References: Message-ID: keith has uploaded a new patch set (#14) to the change originally created by Max. ( https://gerrit.osmocom.org/c/osmo-msc/+/13421 ) Change subject: Add vty option to globally enable LCLS ...................................................................... Add vty option to globally enable LCLS It's disabled by default. Change-Id: Ibb587e6ae47cff71f5bf2e2d22c1da86cd7e1762 --- M include/osmocom/msc/gsm_data.h M src/libmsc/msc_vty.c M src/libmsc/transaction.c M src/osmo-msc/msc_main.c M tests/test_nodes.vty 5 files changed, 22 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/21/13421/14 -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/13421 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: Ibb587e6ae47cff71f5bf2e2d22c1da86cd7e1762 Gerrit-Change-Number: 13421 Gerrit-PatchSet: 14 Gerrit-Owner: Max Gerrit-Assignee: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Max Gerrit-Reviewer: fixeria Gerrit-Reviewer: keith Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: osmith Gerrit-CC: Hoernchen Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Fri Jan 8 06:13:09 2021 From: admin at opensuse.org (OBS Notification) Date: Fri, 08 Jan 2021 06:13:09 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sgsn in openSUSE_Leap_15.1_ARM/armv7l In-Reply-To: References: Message-ID: <5ff7f7fa9d12e_35dd2aba60cf45f04953ca@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-sgsn/openSUSE_Leap_15.1_ARM/armv7l Package network:osmocom:nightly/osmo-sgsn failed to build in openSUSE_Leap_15.1_ARM/armv7l Check out the package for editing: osc checkout network:osmocom:nightly osmo-sgsn Last lines of build log: [ 128s] CC v42bis.o [ 128s] CC gprs_mm_state_iu_fsm.o [ 128s] CC gprs_ranap.o [ 128s] gprs_ranap.c: In function 'gsm0408_gprs_rcvmsg_iu': [ 128s] gprs_ranap.c:245:9: note: #pragma message: set drop_cipherable arg for gsm0408_rcv_gmm() from IuPS? [ 128s] #pragma message "set drop_cipherable arg for gsm0408_rcv_gmm() from IuPS?" [ 128s] ^~~~~~~ [ 129s] CCLD osmo-sgsn [ 130s] /usr/lib/gcc/armv7hl-suse-linux-gnueabi/7/../../../../armv7hl-suse-linux-gnueabi/bin/ld: cannot find -lmnl [ 130s] collect2: error: ld returned 1 exit status [ 130s] make[3]: *** [Makefile:498: osmo-sgsn] Error 1 [ 130s] make[3]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-sgsn-1.6.0.122.ddb3f/src/sgsn' [ 130s] make[2]: *** [Makefile:394: all-recursive] Error 1 [ 130s] make[2]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-sgsn-1.6.0.122.ddb3f/src' [ 130s] make[1]: *** [Makefile:460: all-recursive] Error 1 [ 130s] make[1]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-sgsn-1.6.0.122.ddb3f' [ 130s] make: *** [Makefile:392: all] Error 2 [ 130s] error: Bad exit status from /var/tmp/rpm-tmp.sc01FU (%build) [ 130s] [ 130s] [ 130s] RPM build errors: [ 130s] Bad exit status from /var/tmp/rpm-tmp.sc01FU (%build) [ 130s] ### VM INTERACTION START ### [ 133s] [ 109.494568] sysrq: SysRq : Power Off [ 133s] [ 109.497818] reboot: Power down [ 133s] ### VM INTERACTION END ### [ 134s] [ 134s] obs-arm-6 failed "build osmo-sgsn.spec" at Fri Jan 8 06:12:59 UTC 2021. [ 134s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Jan 8 06:57:43 2021 From: admin at opensuse.org (OBS Notification) Date: Fri, 08 Jan 2021 06:57:43 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sgsn in openSUSE_Factory_ARM/armv7l In-Reply-To: References: Message-ID: <5ff80281d3f67_35dd2aba60cf45f04988e2@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-sgsn/openSUSE_Factory_ARM/armv7l Package network:osmocom:nightly/osmo-sgsn failed to build in openSUSE_Factory_ARM/armv7l Check out the package for editing: osc checkout network:osmocom:nightly osmo-sgsn Last lines of build log: [ 168s] CC v42bis.o [ 168s] CC gprs_mm_state_iu_fsm.o [ 169s] CC gprs_ranap.o [ 170s] gprs_ranap.c: In function 'gsm0408_gprs_rcvmsg_iu': [ 170s] gprs_ranap.c:245:9: note: '#pragma message: set drop_cipherable arg for gsm0408_rcv_gmm() from IuPS?' [ 170s] 245 | #pragma message "set drop_cipherable arg for gsm0408_rcv_gmm() from IuPS?" [ 170s] | ^~~~~~~ [ 170s] CCLD osmo-sgsn [ 171s] /usr/lib/gcc/armv7hl-suse-linux-gnueabi/10/../../../../armv7hl-suse-linux-gnueabi/bin/ld: cannot find -lmnl [ 171s] collect2: error: ld returned 1 exit status [ 171s] make[3]: *** [Makefile:513: osmo-sgsn] Error 1 [ 171s] make[3]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-sgsn-1.6.0.122.ddb3f/src/sgsn' [ 171s] make[2]: *** [Makefile:394: all-recursive] Error 1 [ 171s] make[2]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-sgsn-1.6.0.122.ddb3f/src' [ 171s] make[1]: *** [Makefile:460: all-recursive] Error 1 [ 171s] make[1]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-sgsn-1.6.0.122.ddb3f' [ 171s] make: *** [Makefile:392: all] Error 2 [ 171s] error: Bad exit status from /var/tmp/rpm-tmp.ovftO4 (%build) [ 171s] [ 171s] [ 171s] RPM build errors: [ 171s] Bad exit status from /var/tmp/rpm-tmp.ovftO4 (%build) [ 171s] ### VM INTERACTION START ### [ 174s] [ 140.138426] sysrq: Power Off [ 174s] [ 140.143124] reboot: Power down [ 174s] ### VM INTERACTION END ### [ 174s] [ 174s] obs-arm-6 failed "build osmo-sgsn.spec" at Fri Jan 8 06:57:30 UTC 2021. [ 174s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Jan 8 07:41:43 2021 From: admin at opensuse.org (OBS Notification) Date: Fri, 08 Jan 2021 07:41:43 +0000 Subject: Build failure of network:osmocom:latest/osmo-iuh in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5ff80cd5772c3_35dd2aba60cf45f05034b4@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-iuh/Debian_Unstable/x86_64 Package network:osmocom:latest/osmo-iuh failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:latest osmo-iuh Last lines of build log: ranap.a/RANAP_RAB-SetupItem-RelocReq.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupItem-RelocReqAck.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-EnhRelocInfoReq.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-EnhRelocInfoRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-EnhancedRelocCompleteReq.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-EnhancedRelocCompleteRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-RelocReq.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-RelocReqAck.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifiedItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifiedList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifyItemFirst.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifyItemSecond.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifyList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SubflowCombinationBitRate.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-ToBeReleasedItem-EnhancedRelocCompleteRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-ToBeReleasedList-EnhancedRelocCompleteRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-TrCH-Mapping.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-TrCH-MappingItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABDataVolumeReport.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABParametersList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABased.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABs-ContextFailedtoTransferItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABs-ContextFailedtoTransferList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABs-failed-to-reportItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABs-failed-to-reportList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAC.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAI-List.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAListofIdleModeUEs.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAListwithNoIdleModeUEsAnyMore.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RANAP-EnhancedRelocationInformationRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RANAP-EnhancedRelocationInformationResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RANAP-PDU.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RANAP-RelocationInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAT-Type.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAofIdleModeUEs.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RIM-Transfer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RIMInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RIMRoutingAddress.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RNC-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RNCTraceInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RNSAPRelocationParameters.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RRC-Container.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRQ-Extension.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRQ-Type.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRVCC-HO-Indication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRVCC-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRVCC-Operation-Possible.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RTLoadValue.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RateControlAllowed.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RedirectAttemptFlag.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RedirectionCompleted.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RedirectionIndication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RejectCauseValue.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationCancel.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationCancelAcknowledge.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationCommand.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationComplete.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationDetect.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationFailure.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationPreparationFailure.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationRequestAcknowledge.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationRequired.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationRequirement.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationType.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RepetitionNumber0.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RepetitionNumber1.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ReportAmount.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ReportArea.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ReportChangeOfSAI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ReportInterval.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestType.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-ExtendedGuaranteedBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-ExtendedMaxBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-GuaranteedBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-MaxBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-Values.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedGANSSAssistanceData.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedGPSAssistanceData.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedLocationRelatedDataType.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedMBMSIPMulticastAddressandAPNRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedMulticastServiceList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Reset.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetAcknowledge.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResource.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceAckItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceAckList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceAcknowledge.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResidualBitErrorRatio.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResponseTime.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SAC.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SAI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SAPI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-ErrorRatio.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-FormatInformationParameterItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-FormatInformationParameters.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-ParameterItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-Parameters.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SNA-Access-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SNAC.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRB-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRB-TrCH-Mapping.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRB-TrCH-MappingItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRNS-ContextRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRNS-ContextResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRNS-DataForwardCommand.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-CSKeysRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-CSKeysResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-HO-Indication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-Operation-Possible.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SecurityModeCommand.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SecurityModeComplete.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SecurityModeReject.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Service-Handover.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Session-Re-establishment-Indicator.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SessionUpdateID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Shared-Network-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SignallingIndication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Source-ToTarget-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceBSS-ToTargetBSS-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceCellID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceRNC-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceRNC-ToTargetRNC-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceStatisticsDescriptor.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceUTRANCellID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceeNodeB-ToTargeteNodeB-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SubflowSDU-Size.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SubscriberProfileIDforRFP.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SuccessfulOutcome.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SupportedBitrate.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SupportedRAB-ParameterBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TAC.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TAI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TBCD-STRING.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TMGI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TMSI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TNLInformationEnhRelInfoReq.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TNLInformationEnhRelInfoRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Target-ToSource-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetBSS-ToSourceBSS-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetCellId.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetENB-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetRNC-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetRNC-ToSourceRNC-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargeteNodeB-ToSourceeNodeB-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TemporaryUE-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Time-UE-StayedInCell-EnhancedGranularity.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Time-UE-StayedInCell.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TimeToMBMSDataTransfer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TimingDifferenceULDL.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TrCH-ID-List.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TrCH-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceDepth.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TracePropagationParameters.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceRecordingSessionInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceRecordingSessionReference.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceReference.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceType.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TrafficClass.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TrafficHandlingPriority.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TransferDelay.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TransportLayerAddress.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TransportLayerInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TriggerID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TriggeringMessage.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TunnelInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TypeOfError.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-AggregateMaximumBitRate.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-AggregateMaximumBitRateDownlink.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-AggregateMaximumBitRateUplink.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-History-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UESBI-Iu.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UESBI-IuA.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UESBI-IuB.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UESpecificInformationIndication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UL-GTP-PDU-SequenceNumber.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UL-N-PDU-SequenceNumber.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UP-ModeVersions.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UPInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UPInitialisationFrame.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_USCH-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UTRAN-CellID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UeRadioCapabilityMatchRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UeRadioCapabilityMatchResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UnsuccessfulLinking-IEs.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UnsuccessfulOutcome.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UnsuccessfullyTransmittedDataVolume.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UplinkInformationExchangeFailure.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UplinkInformationExchangeRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UplinkInformationExchangeResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UserPlaneInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UserPlaneMode.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VelocityEstimate.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VerticalAccuracyCode.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VerticalSpeedDirection.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VerticalVelocity.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VoiceSupportMatchIndicator.o [ 448s] libtool: link: ranlib .libs/libosmo-ranap.a [ 448s] libtool: link: rm -fr .libs/libosmo-ranap.lax [ 448s] libtool: link: ( cd ".libs" && rm -f "libosmo-ranap.la" && ln -s "../libosmo-ranap.la" "libosmo-ranap.la" ) [ 448s] /bin/bash ../libtool --tag=CC --mode=link gcc -Wall -I../include -I../include -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wl,-z,relro -o osmo-hnbgw hnbap_encoder.o hnbap_decoder.o hnbap_common.o rua_encoder.o rua_decoder.o rua_common.o rua_msg_factory.o hnbgw.o hnbgw_hnbap.o hnbgw_rua.o hnbgw_ranap.o hnbgw_vty.o context_map.o hnbgw_cn.o -ltalloc -losmocore -ltalloc -losmogsm -losmocore -ltalloc -losmovty -losmocore -ltalloc -losmoctrl -losmogsm -losmocore -ltalloc -lasn1c -losmo-sigtran -losmonetif hnbap/libosmo-asn1-hnbap.a rua/libosmo-asn1-rua.a libosmo-ranap.la [ 448s] libtool: link: gcc -Wall -I../include -I../include -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wl,-z -Wl,relro -o .libs/osmo-hnbgw hnbap_encoder.o hnbap_decoder.o hnbap_common.o rua_encoder.o rua_decoder.o rua_common.o rua_msg_factory.o hnbgw.o hnbgw_hnbap.o hnbgw_rua.o hnbgw_ranap.o hnbgw_vty.o context_map.o hnbgw_cn.o /usr/lib/x86_64-linux-gnu/libosmovty.so /usr/lib/x86_64-linux-gnu/libosmoctrl.so /usr/lib/x86_64-linux-gnu/libosmogsm.so /usr/lib/x86_64-linux-gnu/libosmocore.so -ltalloc -lasn1c /usr/lib/x86_64-linux-gnu/libosmo-sigtran.so /usr/lib/x86_64-linux-gnu/libosmonetif.so hnbap/libosmo-asn1-hnbap.a rua/libosmo-asn1-rua.a ./.libs/libosmo-ranap.so -pthread [ 449s] /usr/bin/ld: ./.libs/libosmo-ranap.so: undefined reference to `install_lib_element' [ 449s] collect2: error: ld returned 1 exit status [ 449s] make[5]: *** [Makefile:616: osmo-hnbgw] Error 1 [ 449s] make[5]: Leaving directory '/usr/src/packages/BUILD/src' [ 449s] make[4]: *** [Makefile:690: all-recursive] Error 1 [ 449s] make[4]: Leaving directory '/usr/src/packages/BUILD/src' [ 449s] make[3]: *** [Makefile:490: all] Error 2 [ 449s] make[3]: Leaving directory '/usr/src/packages/BUILD/src' [ 449s] make[2]: *** [Makefile:470: all-recursive] Error 1 [ 449s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 449s] make[1]: *** [Makefile:392: all] Error 2 [ 449s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 449s] dh_auto_build: error: make -j1 returned exit code 2 [ 449s] make: *** [debian/rules:9: build] Error 25 [ 449s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 449s] ### VM INTERACTION START ### [ 452s] [ 436.797662] sysrq: Power Off [ 452s] [ 436.804730] reboot: Power down [ 452s] ### VM INTERACTION END ### [ 452s] [ 452s] lamb01 failed "build osmo-iuh_1.0.0.dsc" at Fri Jan 8 07:41:34 UTC 2021. [ 452s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Jan 8 07:46:34 2021 From: admin at opensuse.org (OBS Notification) Date: Fri, 08 Jan 2021 07:46:34 +0000 Subject: Build failure of network:osmocom:latest/osmo-iuh in Debian_Testing/x86_64 In-Reply-To: References: Message-ID: <5ff80de62e8ec_35dd2aba60cf45f0503633@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-iuh/Debian_Testing/x86_64 Package network:osmocom:latest/osmo-iuh failed to build in Debian_Testing/x86_64 Check out the package for editing: osc checkout network:osmocom:latest osmo-iuh Last lines of build log: ranap.a/RANAP_RAB-SetupItem-RelocReq.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupItem-RelocReqAck.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-EnhRelocInfoReq.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-EnhRelocInfoRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-EnhancedRelocCompleteReq.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-EnhancedRelocCompleteRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-RelocReq.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-RelocReqAck.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifiedItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifiedList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifyItemFirst.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifyItemSecond.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifyList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SubflowCombinationBitRate.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-ToBeReleasedItem-EnhancedRelocCompleteRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-ToBeReleasedList-EnhancedRelocCompleteRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-TrCH-Mapping.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-TrCH-MappingItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABDataVolumeReport.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABParametersList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABased.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABs-ContextFailedtoTransferItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABs-ContextFailedtoTransferList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABs-failed-to-reportItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABs-failed-to-reportList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAC.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAI-List.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAListofIdleModeUEs.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAListwithNoIdleModeUEsAnyMore.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RANAP-EnhancedRelocationInformationRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RANAP-EnhancedRelocationInformationResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RANAP-PDU.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RANAP-RelocationInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAT-Type.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAofIdleModeUEs.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RIM-Transfer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RIMInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RIMRoutingAddress.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RNC-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RNCTraceInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RNSAPRelocationParameters.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RRC-Container.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRQ-Extension.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRQ-Type.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRVCC-HO-Indication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRVCC-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRVCC-Operation-Possible.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RTLoadValue.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RateControlAllowed.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RedirectAttemptFlag.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RedirectionCompleted.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RedirectionIndication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RejectCauseValue.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationCancel.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationCancelAcknowledge.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationCommand.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationComplete.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationDetect.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationFailure.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationPreparationFailure.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationRequestAcknowledge.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationRequired.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationRequirement.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationType.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RepetitionNumber0.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RepetitionNumber1.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ReportAmount.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ReportArea.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ReportChangeOfSAI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ReportInterval.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestType.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-ExtendedGuaranteedBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-ExtendedMaxBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-GuaranteedBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-MaxBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-Values.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedGANSSAssistanceData.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedGPSAssistanceData.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedLocationRelatedDataType.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedMBMSIPMulticastAddressandAPNRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedMulticastServiceList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Reset.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetAcknowledge.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResource.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceAckItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceAckList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceAcknowledge.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResidualBitErrorRatio.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResponseTime.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SAC.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SAI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SAPI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-ErrorRatio.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-FormatInformationParameterItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-FormatInformationParameters.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-ParameterItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-Parameters.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SNA-Access-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SNAC.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRB-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRB-TrCH-Mapping.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRB-TrCH-MappingItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRNS-ContextRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRNS-ContextResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRNS-DataForwardCommand.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-CSKeysRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-CSKeysResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-HO-Indication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-Operation-Possible.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SecurityModeCommand.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SecurityModeComplete.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SecurityModeReject.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Service-Handover.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Session-Re-establishment-Indicator.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SessionUpdateID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Shared-Network-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SignallingIndication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Source-ToTarget-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceBSS-ToTargetBSS-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceCellID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceRNC-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceRNC-ToTargetRNC-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceStatisticsDescriptor.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceUTRANCellID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceeNodeB-ToTargeteNodeB-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SubflowSDU-Size.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SubscriberProfileIDforRFP.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SuccessfulOutcome.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SupportedBitrate.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SupportedRAB-ParameterBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TAC.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TAI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TBCD-STRING.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TMGI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TMSI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TNLInformationEnhRelInfoReq.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TNLInformationEnhRelInfoRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Target-ToSource-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetBSS-ToSourceBSS-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetCellId.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetENB-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetRNC-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetRNC-ToSourceRNC-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargeteNodeB-ToSourceeNodeB-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TemporaryUE-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Time-UE-StayedInCell-EnhancedGranularity.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Time-UE-StayedInCell.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TimeToMBMSDataTransfer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TimingDifferenceULDL.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TrCH-ID-List.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TrCH-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceDepth.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TracePropagationParameters.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceRecordingSessionInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceRecordingSessionReference.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceReference.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceType.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TrafficClass.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TrafficHandlingPriority.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TransferDelay.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TransportLayerAddress.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TransportLayerInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TriggerID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TriggeringMessage.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TunnelInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TypeOfError.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-AggregateMaximumBitRate.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-AggregateMaximumBitRateDownlink.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-AggregateMaximumBitRateUplink.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-History-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UESBI-Iu.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UESBI-IuA.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UESBI-IuB.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UESpecificInformationIndication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UL-GTP-PDU-SequenceNumber.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UL-N-PDU-SequenceNumber.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UP-ModeVersions.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UPInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UPInitialisationFrame.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_USCH-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UTRAN-CellID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UeRadioCapabilityMatchRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UeRadioCapabilityMatchResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UnsuccessfulLinking-IEs.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UnsuccessfulOutcome.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UnsuccessfullyTransmittedDataVolume.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UplinkInformationExchangeFailure.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UplinkInformationExchangeRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UplinkInformationExchangeResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UserPlaneInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UserPlaneMode.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VelocityEstimate.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VerticalAccuracyCode.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VerticalSpeedDirection.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VerticalVelocity.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VoiceSupportMatchIndicator.o [ 438s] libtool: link: ranlib .libs/libosmo-ranap.a [ 438s] libtool: link: rm -fr .libs/libosmo-ranap.lax [ 438s] libtool: link: ( cd ".libs" && rm -f "libosmo-ranap.la" && ln -s "../libosmo-ranap.la" "libosmo-ranap.la" ) [ 438s] /bin/bash ../libtool --tag=CC --mode=link gcc -Wall -I../include -I../include -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wl,-z,relro -o osmo-hnbgw hnbap_encoder.o hnbap_decoder.o hnbap_common.o rua_encoder.o rua_decoder.o rua_common.o rua_msg_factory.o hnbgw.o hnbgw_hnbap.o hnbgw_rua.o hnbgw_ranap.o hnbgw_vty.o context_map.o hnbgw_cn.o -ltalloc -losmocore -ltalloc -losmogsm -losmocore -ltalloc -losmovty -losmocore -ltalloc -losmoctrl -losmogsm -losmocore -ltalloc -lasn1c -losmo-sigtran -losmonetif hnbap/libosmo-asn1-hnbap.a rua/libosmo-asn1-rua.a libosmo-ranap.la [ 438s] libtool: link: gcc -Wall -I../include -I../include -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wl,-z -Wl,relro -o .libs/osmo-hnbgw hnbap_encoder.o hnbap_decoder.o hnbap_common.o rua_encoder.o rua_decoder.o rua_common.o rua_msg_factory.o hnbgw.o hnbgw_hnbap.o hnbgw_rua.o hnbgw_ranap.o hnbgw_vty.o context_map.o hnbgw_cn.o /usr/lib/x86_64-linux-gnu/libosmovty.so /usr/lib/x86_64-linux-gnu/libosmoctrl.so /usr/lib/x86_64-linux-gnu/libosmogsm.so /usr/lib/x86_64-linux-gnu/libosmocore.so -ltalloc -lasn1c /usr/lib/x86_64-linux-gnu/libosmo-sigtran.so /usr/lib/x86_64-linux-gnu/libosmonetif.so hnbap/libosmo-asn1-hnbap.a rua/libosmo-asn1-rua.a ./.libs/libosmo-ranap.so -pthread [ 438s] /usr/bin/ld: ./.libs/libosmo-ranap.so: undefined reference to `install_lib_element' [ 438s] collect2: error: ld returned 1 exit status [ 438s] make[5]: *** [Makefile:616: osmo-hnbgw] Error 1 [ 438s] make[5]: Leaving directory '/usr/src/packages/BUILD/src' [ 438s] make[4]: *** [Makefile:690: all-recursive] Error 1 [ 438s] make[4]: Leaving directory '/usr/src/packages/BUILD/src' [ 438s] make[3]: *** [Makefile:490: all] Error 2 [ 438s] make[3]: Leaving directory '/usr/src/packages/BUILD/src' [ 438s] make[2]: *** [Makefile:470: all-recursive] Error 1 [ 438s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 438s] make[1]: *** [Makefile:392: all] Error 2 [ 438s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 438s] dh_auto_build: error: make -j1 returned exit code 2 [ 438s] make: *** [debian/rules:9: build] Error 25 [ 438s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 438s] ### VM INTERACTION START ### [ 441s] [ 428.360780] sysrq: Power Off [ 441s] [ 428.367829] reboot: Power down [ 441s] ### VM INTERACTION END ### [ 441s] [ 441s] lamb18 failed "build osmo-iuh_1.0.0.dsc" at Fri Jan 8 07:46:31 UTC 2021. [ 441s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Fri Jan 8 08:18:48 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Fri, 8 Jan 2021 08:18:48 +0000 Subject: Change in osmo-ci[master]: scripts: repo-install-test: fix missing version of centos8 example References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/22052 ) Change subject: scripts: repo-install-test: fix missing version of centos8 example ...................................................................... scripts: repo-install-test: fix missing version of centos8 example Change-Id: I5eee27a9ba1cca43e056ef0ac4ae4bbb4cd827d7 --- M scripts/repo-install-test.sh 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/52/22052/1 diff --git a/scripts/repo-install-test.sh b/scripts/repo-install-test.sh index ac8242d..0c08e15 100755 --- a/scripts/repo-install-test.sh +++ b/scripts/repo-install-test.sh @@ -8,7 +8,7 @@ # Show usage if [ "$#" -ne 1 ]; then echo "usage: repo-install-test.sh DISTRO" - echo "DISTRO: debian or centos" + echo "DISTRO: debian or centos8" exit 1 fi -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22052 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I5eee27a9ba1cca43e056ef0ac4ae4bbb4cd827d7 Gerrit-Change-Number: 22052 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 8 08:32:35 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Fri, 8 Jan 2021 08:32:35 +0000 Subject: Change in osmo-trx[master]: osmo-trx.spec: move ipc-driver-test into package ipc-test References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-trx/+/22053 ) Change subject: osmo-trx.spec: move ipc-driver-test into package ipc-test ...................................................................... osmo-trx.spec: move ipc-driver-test into package ipc-test Allow to drop the uhd runtime dependency of osmo-trx-ipc. uhd is only required for the driver-test utility. Related: SYS#5266 Change-Id: Iff91e09684167247c9c7de0141451a5b9344aa0d --- M contrib/osmo-trx.spec.in 1 file changed, 13 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/53/22053/1 diff --git a/contrib/osmo-trx.spec.in b/contrib/osmo-trx.spec.in index ace7212..8f4bb48 100644 --- a/contrib/osmo-trx.spec.in +++ b/contrib/osmo-trx.spec.in @@ -149,6 +149,16 @@ between different telecommunication associations for developing new generations of mobile phone networks. (post-2G/GSM) +%package ipc-test +Summary: SDR transceiver that implements Layer 1 of a GSM BTS (IPC) driver test utility +Group: Productivity/Telephony/Servers + +%description ipc-test +OsmoTRX is a software-defined radio transceiver that implements the Layer 1 +physical layer of a BTS comprising the following 3GPP specifications: + +This package include the test tools for osmo-trx-ipc + %prep %setup -q @@ -234,9 +244,11 @@ %files ipc %{_bindir}/osmo-trx-ipc -%{_bindir}/ipc-driver-test %dir %{_sysconfdir}/osmocom %config(noreplace) %{_sysconfdir}/osmocom/osmo-trx-ipc.cfg %{_unitdir}/osmo-trx-ipc.service +%files ipc-test +%{_bindir}/ipc-driver-test + %changelog -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/22053 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: Iff91e09684167247c9c7de0141451a5b9344aa0d Gerrit-Change-Number: 22053 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 8 08:35:31 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Fri, 8 Jan 2021 08:35:31 +0000 Subject: Change in osmo-trx[master]: osmo-trx.spec: move ipc-driver-test into package ipc-test In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/22053 ) Change subject: osmo-trx.spec: move ipc-driver-test into package ipc-test ...................................................................... Patch Set 1: Tested with the repo-install script. -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/22053 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: Iff91e09684167247c9c7de0141451a5b9344aa0d Gerrit-Change-Number: 22053 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Fri, 08 Jan 2021 08:35:31 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Fri Jan 8 09:42:39 2021 From: admin at opensuse.org (OBS Notification) Date: Fri, 08 Jan 2021 09:42:39 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in Debian_9.0/armv7l In-Reply-To: References: Message-ID: <5ff8292f473ef_35dd2aba60cf45f0533123@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-pcu/Debian_9.0/armv7l Package network:osmocom:nightly/osmo-pcu failed to build in Debian_9.0/armv7l Check out the package for editing: osc checkout network:osmocom:nightly osmo-pcu Last lines of build log: [ 589s] copying selected object files to avoid basename conflicts... [ 589s] libtool: link: ln .libs/gprs_rlcmac_sched.o .libs/libgprs.lax/lt1-gprs_rlcmac_sched.o || cp .libs/gprs_rlcmac_sched.o .libs/libgprs.lax/lt1-gprs_rlcmac_sched.o [ 589s] libtool: link: ar cru .libs/libgprs.a .libs/gprs_debug.o .libs/csn1.o .libs/gsm_rlcmac.o .libs/gprs_bssgp_pcu.o .libs/gprs_rlcmac.o .libs/gprs_rlcmac_sched.o .libs/gprs_rlcmac_meas.o .libs/gprs_rlcmac_ts_alloc.o .libs/gprs_ms.o .libs/gprs_ms_storage.o .libs/gsm_timer.o .libs/pcu_l1_if.o .libs/pcu_vty.o .libs/pcu_vty_functions.o .libs/mslot_class.o .libs/tbf.o .libs/tbf_ul.o .libs/tbf_dl.o .libs/bts.o .libs/pdch.o .libs/poll_controller.o .libs/encoding.o .libs/sba.o .libs/decoding.o .libs/llc.o .libs/rlc.o .libs/osmobts_sock.o .libs/gprs_codel.o .libs/coding_scheme.o .libs/egprs_rlc_compression.o .libs/libgprs.lax/lt1-gprs_rlcmac_sched.o [ 589s] ar: `u' modifier ignored since `D' is the default (see `U') [ 589s] libtool: link: ranlib .libs/libgprs.a [ 589s] libtool: link: rm -fr .libs/libgprs.lax [ 589s] libtool: link: ( cd ".libs" && rm -f "libgprs.la" && ln -s "../libgprs.la" "libgprs.la" ) [ 589s] g++ -DPACKAGE_NAME=\"osmo-pcu\" -DPACKAGE_TARNAME=\"osmo-pcu\" -DPACKAGE_VERSION=\"0.8.0.301-480c\" -DPACKAGE_STRING=\"osmo-pcu\ 0.8.0.301-480c\" -DPACKAGE_BUGREPORT=\"osmocom-net-gprs at lists.osmocom.org\" -DPACKAGE_URL=\"\" -DPACKAGE=\"osmo-pcu\" -DVERSION=\"0.8.0.301-480c\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DSTDC_HEADERS=1 -I. -I../include -Wall -pthread -I/usr/include/ -fno-strict-aliasing -I/usr/include/ -I/usr/include/ -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -ldl -pthread -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu++03 -c -o pcu_main.o pcu_main.cpp [ 590s] /bin/bash ../libtool --tag=CXX --mode=link g++ -Wall -ldl -pthread -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu++03 -lrt -Wl,-z,relro -Wl,-z,now -o osmo-pcu pcu_main.o libgprs.la -ltalloc -losmogb -losmovty -losmocore -lmnl -ltalloc -losmocore -ltalloc -losmogsm -losmocore [ 591s] libtool: link: g++ -Wall -pthread -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu++03 -Wl,-z -Wl,relro -Wl,-z -Wl,now -o osmo-pcu pcu_main.o ./.libs/libgprs.a -ldl -lrt /usr/lib/arm-linux-gnueabihf/libosmogb.so /usr/lib/arm-linux-gnueabihf/libosmovty.so -lmnl -ltalloc /usr/lib/arm-linux-gnueabihf/libosmogsm.so /usr/lib/arm-linux-gnueabihf/libosmocore.so -pthread [ 591s] /usr/bin/ld: cannot find -lmnl [ 591s] collect2: error: ld returned 1 exit status [ 591s] Makefile:696: recipe for target 'osmo-pcu' failed [ 591s] make[2]: *** [osmo-pcu] Error 1 [ 591s] make[2]: Leaving directory '/usr/src/packages/BUILD/src' [ 591s] Makefile:417: recipe for target 'all-recursive' failed [ 591s] make[1]: *** [all-recursive] Error 1 [ 591s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 591s] dh_auto_build: make -j1 returned exit code 2 [ 591s] debian/rules:12: recipe for target 'build' failed [ 591s] make: *** [build] Error 2 [ 591s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 591s] ### VM INTERACTION START ### [ 594s] [ 554.125995] sysrq: SysRq : Power Off [ 594s] [ 554.128020] reboot: Power down [ 594s] ### VM INTERACTION END ### [ 594s] [ 594s] armbuild02 failed "build osmo-pcu_0.8.0.301.480c.dsc" at Fri Jan 8 09:42:31 UTC 2021. [ 594s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Jan 8 09:45:31 2021 From: admin at opensuse.org (OBS Notification) Date: Fri, 08 Jan 2021 09:45:31 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in Debian_10/armv7l In-Reply-To: References: Message-ID: <5ff829c477a26_35dd2aba60cf45f0534194@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-pcu/Debian_10/armv7l Package network:osmocom:nightly/osmo-pcu failed to build in Debian_10/armv7l Check out the package for editing: osc checkout network:osmocom:nightly osmo-pcu Last lines of build log: [ 750s] /bin/bash ../libtool --tag=CXX --mode=compile g++ -DPACKAGE_NAME=\"osmo-pcu\" -DPACKAGE_TARNAME=\"osmo-pcu\" -DPACKAGE_VERSION=\"0.8.0.301-480c\" -DPACKAGE_STRING=\"osmo-pcu\ 0.8.0.301-480c\" -DPACKAGE_BUGREPORT=\"osmocom-net-gprs at lists.osmocom.org\" -DPACKAGE_URL=\"\" -DPACKAGE=\"osmo-pcu\" -DVERSION=\"0.8.0.301-480c\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DSTDC_HEADERS=1 -I. -I../include -Wall -pthread -I/usr/include/ -fno-strict-aliasing -I/usr/include/ -I/usr/include/ -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -ldl -pthread -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu++03 -c -o egprs_rlc_compression.lo egprs_rlc_compression.cpp [ 751s] libtool: compile: g++ -DPACKAGE_NAME=\"osmo-pcu\" -DPACKAGE_TARNAME=\"osmo-pcu\" -DPACKAGE_VERSION=\"0.8.0.301-480c\" "-DPACKAGE_STRING=\"osmo-pcu 0.8.0.301-480c\"" -DPACKAGE_BUGREPORT=\"osmocom-net-gprs at lists.osmocom.org\" -DPACKAGE_URL=\"\" -DPACKAGE=\"osmo-pcu\" -DVERSION=\"0.8.0.301-480c\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DSTDC_HEADERS=1 -I. -I../include -Wall -pthread -I/usr/include/ -fno-strict-aliasing -I/usr/include/ -I/usr/include/ -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -ldl -pthread -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu++03 -c egprs_rlc_compression.cpp -fPIC -DPIC -o .libs/egprs_rlc_compression.o [ 752s] libtool: compile: g++ -DPACKAGE_NAME=\"osmo-pcu\" -DPACKAGE_TARNAME=\"osmo-pcu\" -DPACKAGE_VERSION=\"0.8.0.301-480c\" "-DPACKAGE_STRING=\"osmo-pcu 0.8.0.301-480c\"" -DPACKAGE_BUGREPORT=\"osmocom-net-gprs at lists.osmocom.org\" -DPACKAGE_URL=\"\" -DPACKAGE=\"osmo-pcu\" -DVERSION=\"0.8.0.301-480c\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DSTDC_HEADERS=1 -I. -I../include -Wall -pthread -I/usr/include/ -fno-strict-aliasing -I/usr/include/ -I/usr/include/ -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -ldl -pthread -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu++03 -c egprs_rlc_compression.cpp -o egprs_rlc_compression.o >/dev/null 2>&1 [ 752s] /bin/bash ../libtool --tag=CXX --mode=link g++ -Wall -ldl -pthread -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu++03 -lrt -Wl,-z,relro -Wl,-z,now -o libgprs.la gprs_debug.lo csn1.lo gsm_rlcmac.lo gprs_bssgp_pcu.lo gprs_rlcmac.lo gprs_rlcmac_sched.lo gprs_rlcmac_meas.lo gprs_rlcmac_ts_alloc.lo gprs_ms.lo gprs_ms_storage.lo gsm_timer.lo pcu_l1_if.lo pcu_vty.lo pcu_vty_functions.lo mslot_class.lo tbf.lo tbf_ul.lo tbf_dl.lo bts.lo pdch.lo poll_controller.lo encoding.lo sba.lo decoding.lo llc.lo rlc.lo osmobts_sock.lo gprs_codel.lo coding_scheme.lo egprs_rlc_compression.lo gprs_rlcmac_sched.lo [ 753s] copying selected object files to avoid basename conflicts... [ 753s] libtool: link: ln .libs/gprs_rlcmac_sched.o .libs/libgprs.lax/lt1-gprs_rlcmac_sched.o || cp .libs/gprs_rlcmac_sched.o .libs/libgprs.lax/lt1-gprs_rlcmac_sched.o [ 753s] libtool: link: ar cru .libs/libgprs.a .libs/gprs_debug.o .libs/csn1.o .libs/gsm_rlcmac.o .libs/gprs_bssgp_pcu.o .libs/gprs_rlcmac.o .libs/gprs_rlcmac_sched.o .libs/gprs_rlcmac_meas.o .libs/gprs_rlcmac_ts_alloc.o .libs/gprs_ms.o .libs/gprs_ms_storage.o .libs/gsm_timer.o .libs/pcu_l1_if.o .libs/pcu_vty.o .libs/pcu_vty_functions.o .libs/mslot_class.o .libs/tbf.o .libs/tbf_ul.o .libs/tbf_dl.o .libs/bts.o .libs/pdch.o .libs/poll_controller.o .libs/encoding.o .libs/sba.o .libs/decoding.o .libs/llc.o .libs/rlc.o .libs/osmobts_sock.o .libs/gprs_codel.o .libs/coding_scheme.o .libs/egprs_rlc_compression.o .libs/libgprs.lax/lt1-gprs_rlcmac_sched.o [ 753s] ar: `u' modifier ignored since `D' is the default (see `U') [ 753s] libtool: link: ranlib .libs/libgprs.a [ 753s] libtool: link: rm -fr .libs/libgprs.lax [ 753s] libtool: link: ( cd ".libs" && rm -f "libgprs.la" && ln -s "../libgprs.la" "libgprs.la" ) [ 753s] /bin/bash ../libtool --tag=CXX --mode=link g++ -Wall -ldl -pthread -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu++03 -lrt -Wl,-z,relro -Wl,-z,now -o osmo-pcu pcu_main.o libgprs.la -ltalloc -losmogb -losmovty -losmocore -lmnl -ltalloc -losmocore -ltalloc -losmogsm -losmocore [ 754s] libtool: link: g++ -Wall -pthread -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu++03 -Wl,-z -Wl,relro -Wl,-z -Wl,now -o osmo-pcu pcu_main.o ./.libs/libgprs.a -ldl -lrt /usr/lib/arm-linux-gnueabihf/libosmogb.so /usr/lib/arm-linux-gnueabihf/libosmovty.so -lmnl -ltalloc /usr/lib/arm-linux-gnueabihf/libosmogsm.so /usr/lib/arm-linux-gnueabihf/libosmocore.so -pthread [ 754s] /usr/bin/ld: cannot find -lmnl [ 754s] collect2: error: ld returned 1 exit status [ 754s] make[2]: *** [Makefile:724: osmo-pcu] Error 1 [ 754s] make[2]: Leaving directory '/usr/src/packages/BUILD/src' [ 754s] make[1]: *** [Makefile:417: all-recursive] Error 1 [ 754s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 754s] dh_auto_build: make -j1 returned exit code 2 [ 754s] make: *** [debian/rules:12: build] Error 2 [ 754s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 754s] ### VM INTERACTION START ### [ 757s] [ 699.324890] sysrq: Power Off [ 757s] [ 699.326422] reboot: Power down [ 757s] ### VM INTERACTION END ### [ 757s] [ 757s] armbuild13 failed "build osmo-pcu_0.8.0.301.480c.dsc" at Fri Jan 8 09:45:17 UTC 2021. [ 757s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Fri Jan 8 10:07:32 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 8 Jan 2021 10:07:32 +0000 Subject: Change in libosmocore[master]: pkgconfig: link to mnl if available In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22026 ) Change subject: pkgconfig: link to mnl if available ...................................................................... Patch Set 2: See https://osmocom.org/issues/4936 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22026 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ib4df95d5c922f8edfa33e68645652fd30d321ff8 Gerrit-Change-Number: 22026 Gerrit-PatchSet: 2 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Fri, 08 Jan 2021 10:07:32 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 8 10:08:19 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 8 Jan 2021 10:08:19 +0000 Subject: Change in libosmocore[master]: Revert "pkgconfig: link to mnl if available" References: Message-ID: Hello Jenkins Builder, Hoernchen, fixeria, pespin, I'd like you to do a code review. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22059 to review the following change. Change subject: Revert "pkgconfig: link to mnl if available" ...................................................................... Revert "pkgconfig: link to mnl if available" This reverts commit 2253224b33ae9f54f14dc54f0098c4d5ee27fdbf. Reason for revert: Causes massive build failure for osmo-pcu and osmo-sgsn on all the distributions/architectures we build for Change-Id: I6dbe4507701bee013b29dcc26f32c4e1a3c23613 Closes: OS#4936 --- M libosmogb.pc.in 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/59/22059/1 diff --git a/libosmogb.pc.in b/libosmogb.pc.in index 4eebe42..a163cc4 100644 --- a/libosmogb.pc.in +++ b/libosmogb.pc.in @@ -6,6 +6,6 @@ Name: Osmocom GPRS Gb Library Description: Osmocom GPRS Gb Interface (NS/BSSGP) Library Version: @VERSION@ -Libs: -L${libdir} @TALLOC_LIBS@ -losmogb -losmovty -losmocore @LIBMNL_LIBS@ +Libs: -L${libdir} @TALLOC_LIBS@ -losmogb -losmovty -losmocore Cflags: -I${includedir}/ -fno-strict-aliasing -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22059 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I6dbe4507701bee013b29dcc26f32c4e1a3c23613 Gerrit-Change-Number: 22059 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 8 10:08:19 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 8 Jan 2021 10:08:19 +0000 Subject: Change in libosmocore[master]: pkgconfig: link to mnl if available In-Reply-To: References: Message-ID: laforge has created a revert of this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22026 ) Change subject: pkgconfig: link to mnl if available ...................................................................... -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22026 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ib4df95d5c922f8edfa33e68645652fd30d321ff8 Gerrit-Change-Number: 22026 Gerrit-PatchSet: 2 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-MessageType: revert -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 8 10:14:00 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 8 Jan 2021 10:14:00 +0000 Subject: Change in libosmocore[master]: Revert "pkgconfig: link to mnl if available" In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22059 ) Change subject: Revert "pkgconfig: link to mnl if available" ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22059 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I6dbe4507701bee013b29dcc26f32c4e1a3c23613 Gerrit-Change-Number: 22059 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 08 Jan 2021 10:14:00 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 8 10:14:02 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 8 Jan 2021 10:14:02 +0000 Subject: Change in libosmocore[master]: Revert "pkgconfig: link to mnl if available" In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22059 ) Change subject: Revert "pkgconfig: link to mnl if available" ...................................................................... Revert "pkgconfig: link to mnl if available" This reverts commit 2253224b33ae9f54f14dc54f0098c4d5ee27fdbf. Reason for revert: Causes massive build failure for osmo-pcu and osmo-sgsn on all the distributions/architectures we build for Change-Id: I6dbe4507701bee013b29dcc26f32c4e1a3c23613 Closes: OS#4936 --- M libosmogb.pc.in 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/libosmogb.pc.in b/libosmogb.pc.in index 4eebe42..a163cc4 100644 --- a/libosmogb.pc.in +++ b/libosmogb.pc.in @@ -6,6 +6,6 @@ Name: Osmocom GPRS Gb Library Description: Osmocom GPRS Gb Interface (NS/BSSGP) Library Version: @VERSION@ -Libs: -L${libdir} @TALLOC_LIBS@ -losmogb -losmovty -losmocore @LIBMNL_LIBS@ +Libs: -L${libdir} @TALLOC_LIBS@ -losmogb -losmovty -losmocore Cflags: -I${includedir}/ -fno-strict-aliasing -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22059 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I6dbe4507701bee013b29dcc26f32c4e1a3c23613 Gerrit-Change-Number: 22059 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Fri Jan 8 10:46:56 2021 From: admin at opensuse.org (OBS Notification) Date: Fri, 08 Jan 2021 10:46:56 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.10/x86_64 In-Reply-To: References: Message-ID: <5ff83832b8a64_35dd2aba60cf45f05441cb@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/xUbuntu_20.10/x86_64 Package network:osmocom:nightly/simtrace2 failed to build in xUbuntu_20.10/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 113s] [COMPILING apps/dfu/main.c] [ 113s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 113s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 113s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 114s] Memory region Used Size Region Size %age Used [ 114s] rom: 16580 B 16 KB 101.20% [ 114s] ram: 11672 B 48 KB 23.75/usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 114s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 114s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 114s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 114s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 114s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 114s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 196 bytes [ 114s] collect2: error: ld returned 1 exit status [ 114s] % [ 114s] make[2]: *** [Makefile:234: flash] Error 1 [ 114s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 114s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 114s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 114s] dh_auto_build: error: make -j1 returned exit code 2 [ 114s] make: *** [debian/rules:16: build] Error 25 [ 114s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 114s] ### VM INTERACTION START ### [ 117s] [ 107.112444] sysrq: Power Off [ 117s] [ 107.116936] reboot: Power down [ 117s] ### VM INTERACTION END ### [ 117s] [ 117s] sheep85 failed "build simtrace2_0.7.0.69.aadd.dsc" at Fri Jan 8 10:46:51 UTC 2021. [ 117s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Jan 8 10:49:30 2021 From: admin at opensuse.org (OBS Notification) Date: Fri, 08 Jan 2021 10:49:30 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <5ff838c8ef1ac_35dd2aba60cf45f0545290@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/xUbuntu_20.04/x86_64 Package network:osmocom:nightly/simtrace2 failed to build in xUbuntu_20.04/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 201s] [COMPILING libboard/qmod/source/wwan_perst.c] [ 201s] [COMPILING libboard/qmod/source/card_pres.c] [ 201s] [COMPILING libboard/qmod/source/wwan_led.c] [ 201s] [COMPILING libboard/qmod/source/i2c.c] [ 201s] [COMPILING libboard/qmod/source/board_qmod.c] [ 201s] [COMPILING apps/dfu/main.c] [ 202s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 202s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 202s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 202s] Memory region Used Size Region Size %age Used [ 202s] rom: 16588 B 16 KB 101.25% [ 202s] ram: 11672 B 48 KB 23.75/usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 202s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 204 bytes [ 202s] collect2: error: ld returned 1 exit status [ 202s] % [ 202s] make[2]: *** [Makefile:234: flash] Error 1 [ 202s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 202s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 202s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 202s] dh_auto_build: error: make -j1 returned exit code 2 [ 202s] make: *** [debian/rules:16: build] Error 25 [ 202s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 202s] ### VM INTERACTION START ### [ 205s] [ 192.654665] sysrq: Power Off [ 205s] [ 192.663043] reboot: Power down [ 205s] ### VM INTERACTION END ### [ 205s] [ 205s] lamb22 failed "build simtrace2_0.7.0.69.aadd.dsc" at Fri Jan 8 10:49:19 UTC 2021. [ 205s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Fri Jan 8 12:49:11 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 8 Jan 2021 12:49:11 +0000 Subject: Change in osmo-trx[master]: osmo-trx.spec: move ipc-driver-test into package ipc-test In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/22053 ) Change subject: osmo-trx.spec: move ipc-driver-test into package ipc-test ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/22053 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: Iff91e09684167247c9c7de0141451a5b9344aa0d Gerrit-Change-Number: 22053 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 08 Jan 2021 12:49:11 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 8 12:57:04 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 8 Jan 2021 12:57:04 +0000 Subject: Change in osmo-bsc[master]: power_control: add documentation on available configuration params In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21886 ) Change subject: power_control: add documentation on available configuration params ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21886 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ib65d33f0f1dd24d39e3be581e4e072a310bc906a Gerrit-Change-Number: 21886 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 08 Jan 2021 12:57:04 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 8 12:57:32 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 8 Jan 2021 12:57:32 +0000 Subject: Change in osmo-bsc[master]: power_control: add increase / reduce step size recommendations In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21873 ) Change subject: power_control: add increase / reduce step size recommendations ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21873 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I82e762c0c2b5e0dd739850ee494ab0a798e353de Gerrit-Change-Number: 21873 Gerrit-PatchSet: 4 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 08 Jan 2021 12:57:32 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 8 12:59:36 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 8 Jan 2021 12:59:36 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Fix suspend/resume tests In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22048 ) Change subject: Fix suspend/resume tests ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22048 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ie0fd81edb748d3c638e42c4418ca514095c55861 Gerrit-Change-Number: 22048 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 08 Jan 2021 12:59:36 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 8 13:08:57 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 8 Jan 2021 13:08:57 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Fix TC_bvc_reset_sig_from_sgsn In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22049 ) Change subject: gbproxy: Fix TC_bvc_reset_sig_from_sgsn ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22049 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I1f2c76ae9bdc0267bfca60536e321fe88530803c Gerrit-Change-Number: 22049 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 08 Jan 2021 13:08:57 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 8 13:12:05 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 8 Jan 2021 13:12:05 +0000 Subject: Change in docker-playground[master]: ttcn3-gbproxy-test: Fix pcap capture with dumpcap In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22047 ) Change subject: ttcn3-gbproxy-test: Fix pcap capture with dumpcap ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/docker-playground/+/22047/1/ttcn3-gbproxy-test/jenkins.sh File ttcn3-gbproxy-test/jenkins.sh: https://gerrit.osmocom.org/c/docker-playground/+/22047/1/ttcn3-gbproxy-test/jenkins.sh at 13 PS1, Line 13: # if we don't change permissiosn, dumpcap fails to write (despite starting it as root!) permissions -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22047 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I11dcf9efd0b06544a82e31dec03fe76e182fd0d3 Gerrit-Change-Number: 22047 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-CC: pespin Gerrit-Comment-Date: Fri, 08 Jan 2021 13:12:05 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 8 13:23:17 2021 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Fri, 8 Jan 2021 13:23:17 +0000 Subject: Change in osmo-gsm-tester[master]: enb: Set cipher and integrity via scenario file In-Reply-To: References: Message-ID: srs_andre has uploaded a new patch set (#4) to the change originally created by ninjab3s. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21582 ) Change subject: enb: Set cipher and integrity via scenario file ...................................................................... enb: Set cipher and integrity via scenario file This patch enables setting cipher and integrity algorithms in Amarisoft eNB and srsENB via scenario files. If no settings are defined following defaults are applied: - Cipher algorithm: EEA0, EEA2, EEA1 - Integrity algorithm: EIA2, EIA1, EIA0 Example of setting cipher algorithms: - 4g:srsue-rftype at uhd+srsenb-rftype@uhd+mod-enb-cipher at eea1+mod-enb-cipher@eea0+mod-enb-nprb at 6 Change-Id: I595206b7d49016fb6d0aec175c828d9537c53886 --- M src/osmo_gsm_tester/core/schema.py M src/osmo_gsm_tester/obj/bts.py M src/osmo_gsm_tester/obj/enb.py M src/osmo_gsm_tester/obj/enb_amarisoft.py M src/osmo_gsm_tester/obj/ms.py M src/osmo_gsm_tester/templates/amarisoft_enb.cfg.tmpl M src/osmo_gsm_tester/templates/srsenb.conf.tmpl M sysmocom/defaults.conf A sysmocom/scenarios/mod-enb-cipher at .conf A sysmocom/scenarios/mod-enb-integrity at .conf 10 files changed, 45 insertions(+), 9 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/82/21582/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/21582 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-Change-Id: I595206b7d49016fb6d0aec175c828d9537c53886 Gerrit-Change-Number: 21582 Gerrit-PatchSet: 4 Gerrit-Owner: ninjab3s Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Reviewer: srs_andre Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 8 13:23:18 2021 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Fri, 8 Jan 2021 13:23:18 +0000 Subject: Change in osmo-gsm-tester[master]: enb: add abstract method stop() References: Message-ID: srs_andre has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22054 ) Change subject: enb: add abstract method stop() ...................................................................... enb: add abstract method stop() implement as noop for Amarisoft eNB, srsENB will send q+Enter to stdin Change-Id: Ide606e1a6b523997215aa2fa39d4d56ae1f49181 --- M src/osmo_gsm_tester/obj/enb.py M src/osmo_gsm_tester/obj/enb_amarisoft.py 2 files changed, 9 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/54/22054/1 diff --git a/src/osmo_gsm_tester/obj/enb.py b/src/osmo_gsm_tester/obj/enb.py index 2eac0fe..1a5658d 100644 --- a/src/osmo_gsm_tester/obj/enb.py +++ b/src/osmo_gsm_tester/obj/enb.py @@ -327,6 +327,11 @@ pass @abstractmethod + def stop(self): + 'Stop ENB' + pass + + @abstractmethod def ue_add(self, ue): pass diff --git a/src/osmo_gsm_tester/obj/enb_amarisoft.py b/src/osmo_gsm_tester/obj/enb_amarisoft.py index 60985f4..b7ede3b 100644 --- a/src/osmo_gsm_tester/obj/enb_amarisoft.py +++ b/src/osmo_gsm_tester/obj/enb_amarisoft.py @@ -130,6 +130,10 @@ self.testenv.remember_to_stop(self.process) self.process.launch() + def stop(self): + # Not implemented + pass + def gen_conf_file(self, path, filename, values): self.dbg('AmarisoftENB ' + filename + ':\n' + pprint.pformat(values)) with open(path, 'w') as f: -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22054 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-Change-Id: Ide606e1a6b523997215aa2fa39d4d56ae1f49181 Gerrit-Change-Number: 22054 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 8 13:23:19 2021 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Fri, 8 Jan 2021 13:23:19 +0000 Subject: Change in osmo-gsm-tester[master]: scenarios: remove ncells@ scenario and define number of cells explicitly References: Message-ID: srs_andre has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22055 ) Change subject: scenarios: remove ncells@ scenario and define number of cells explicitly ...................................................................... scenarios: remove ncells@ scenario and define number of cells explicitly the specific cell scenarios files already contain cell-related information so having a extra ncells scenario seems too much overhead. furthermore, in more complex tests its helps to reduce the filename/path lenght to avoid hitting the 255 character limit Change-Id: If022d9e8d239805ee1280fb52660e68dda7484a0 --- M sysmocom/scenarios/mod-enb-cells-2ca.conf M sysmocom/scenarios/mod-enb-cells-intra-freq-ho-sameport.conf M sysmocom/scenarios/mod-enb-cells-intraenb-intrafreq-ho.conf D sysmocom/scenarios/mod-enb-ncells at .conf 4 files changed, 3 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/55/22055/1 diff --git a/sysmocom/scenarios/mod-enb-cells-2ca.conf b/sysmocom/scenarios/mod-enb-cells-2ca.conf index c9468c6..916d0eb 100644 --- a/sysmocom/scenarios/mod-enb-cells-2ca.conf +++ b/sysmocom/scenarios/mod-enb-cells-2ca.conf @@ -2,6 +2,7 @@ modifiers: enb: - id: 0x19B + num_cells: 2 cell_list: - cell_id: 0x00 pci: 0x01 diff --git a/sysmocom/scenarios/mod-enb-cells-intra-freq-ho-sameport.conf b/sysmocom/scenarios/mod-enb-cells-intra-freq-ho-sameport.conf index 899ec4b..2d629f9 100644 --- a/sysmocom/scenarios/mod-enb-cells-intra-freq-ho-sameport.conf +++ b/sysmocom/scenarios/mod-enb-cells-intra-freq-ho-sameport.conf @@ -2,6 +2,7 @@ modifiers: enb: - id: 0x19B + num_cells: 2 cell_list: - cell_id: 0x01 pci: 0x01 diff --git a/sysmocom/scenarios/mod-enb-cells-intraenb-intrafreq-ho.conf b/sysmocom/scenarios/mod-enb-cells-intraenb-intrafreq-ho.conf index f4223a5..720b75b 100644 --- a/sysmocom/scenarios/mod-enb-cells-intraenb-intrafreq-ho.conf +++ b/sysmocom/scenarios/mod-enb-cells-intraenb-intrafreq-ho.conf @@ -3,6 +3,7 @@ enb: - id: 0x19B enable_measurements: true + num_cells: 2 cell_list: - cell_id: 0x01 pci: 0x01 diff --git a/sysmocom/scenarios/mod-enb-ncells at .conf b/sysmocom/scenarios/mod-enb-ncells at .conf deleted file mode 100644 index b57b94a..0000000 --- a/sysmocom/scenarios/mod-enb-ncells at .conf +++ /dev/null @@ -1,3 +0,0 @@ -modifiers: - enb: - - num_cells: ${param1} -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22055 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-Change-Id: If022d9e8d239805ee1280fb52660e68dda7484a0 Gerrit-Change-Number: 22055 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 8 13:26:42 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 8 Jan 2021 13:26:42 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Implement TLLI cache and use it for SUSPEND/RESUME In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21960 ) Change subject: gbproxy: Implement TLLI cache and use it for SUSPEND/RESUME ...................................................................... Patch Set 3: Code-Review-1 (9 comments) https://gerrit.osmocom.org/c/osmo-sgsn/+/21960/3/include/osmocom/sgsn/gb_proxy.h File include/osmocom/sgsn/gb_proxy.h: https://gerrit.osmocom.org/c/osmo-sgsn/+/21960/3/include/osmocom/sgsn/gb_proxy.h at 175 PS3, Line 175: struct gbproxy_tlli_cache { cache_entry or cache_item would be more descriptive imho https://gerrit.osmocom.org/c/osmo-sgsn/+/21960/3/src/gbproxy/gb_proxy.c File src/gbproxy/gb_proxy.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/21960/3/src/gbproxy/gb_proxy.c at 896 PS3, Line 896: tlli = osmo_load32be(TLVP_VAL(&tp, BSSGP_IE_TLLI)); would be great checking if TLLI is really there instead of directly de-referencing it. https://gerrit.osmocom.org/c/osmo-sgsn/+/21960/3/src/gbproxy/gb_proxy.c at 1164 PS3, Line 1164: uint32_t tlli = osmo_load32be(TLVP_VAL(&tp, BSSGP_IE_TLLI)); same https://gerrit.osmocom.org/c/osmo-sgsn/+/21960/3/src/gbproxy/gb_proxy.c at 1170 PS3, Line 1170: // FIXME FIX what? https://gerrit.osmocom.org/c/osmo-sgsn/+/21960/3/src/gbproxy/gb_proxy.c at 1400 PS3, Line 1400: void tlli_cache_cleanup(void *data) static https://gerrit.osmocom.org/c/osmo-sgsn/+/21960/3/src/gbproxy/gb_proxy.c at 1405 PS3, Line 1405: osmo_timer_schedule(&cfg->tlli_cache.timer, 2, 0); Probably worth avoid reescheduling it if the tlli cache is empty, and reenabling it when first item is added. https://gerrit.osmocom.org/c/osmo-sgsn/+/21960/3/src/gbproxy/gb_proxy_peer.c File src/gbproxy/gb_proxy_peer.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/21960/3/src/gbproxy/gb_proxy_peer.c at 270 PS3, Line 270: // Update the entry if it already exists /* */ https://gerrit.osmocom.org/c/osmo-sgsn/+/21960/3/src/gbproxy/gb_proxy_peer.c at 320 PS3, Line 320: expiry = now.tv_sec - cfg->tlli_cache.timeout; I'd go or using timespec completely. include and you have there all the timespeccmp, timespecsub, etc. available. https://gerrit.osmocom.org/c/osmo-sgsn/+/21960/3/src/gbproxy/gb_proxy_peer.c at 323 PS3, Line 323: if (tlli_cache->tstamp.tv_sec < expiry) { timespeccmp -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21960 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I42adf70f560d2bb358a9e1c7614281e8d2967568 Gerrit-Change-Number: 21960 Gerrit-PatchSet: 3 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Fri, 08 Jan 2021 13:26:42 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 8 13:28:04 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 8 Jan 2021 13:28:04 +0000 Subject: Change in osmo-bts[master]: power_control: generalize measurement pre-processing state In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21907 ) Change subject: power_control: generalize measurement pre-processing state ...................................................................... Patch Set 6: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21907 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I439c00b394da670e314f217b3246cc85ce8213c6 Gerrit-Change-Number: 21907 Gerrit-PatchSet: 6 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 08 Jan 2021 13:28:04 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 8 13:29:42 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 8 Jan 2021 13:29:42 +0000 Subject: Change in osmo-bts[master]: power_control: migrate MS/BS control loops to the new params In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21993 ) Change subject: power_control: migrate MS/BS control loops to the new params ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21993 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib18f84c40227841d95a36063a6789bf63054fc2e Gerrit-Change-Number: 21993 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 08 Jan 2021 13:29:42 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 8 13:31:53 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 8 Jan 2021 13:31:53 +0000 Subject: Change in osmo-bts[master]: power_control: properly track the first initial state In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/22051 ) Change subject: power_control: properly track the first initial state ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/22051/1/src/common/power_control.c File src/common/power_control.c: https://gerrit.osmocom.org/c/osmo-bts/+/22051/1/src/common/power_control.c at 81 PS1, Line 81: if (mps->meas_num++ == 0) { a boolean would be better, otherwise you are applying wrong value when it overflows (not critical though since it would take a long time, but still it's easy to fix as mentioned). -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22051 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I16e7474b5affbd90855a2e407b305e9dec581dfa Gerrit-Change-Number: 22051 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 08 Jan 2021 13:31:53 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 8 13:33:34 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 8 Jan 2021 13:33:34 +0000 Subject: Change in osmo-ci[master]: scripts: repo-install-test: fix missing version of centos8 example In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22052 ) Change subject: scripts: repo-install-test: fix missing version of centos8 example ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22052 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I5eee27a9ba1cca43e056ef0ac4ae4bbb4cd827d7 Gerrit-Change-Number: 22052 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 08 Jan 2021 13:33:34 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 8 13:34:50 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 8 Jan 2021 13:34:50 +0000 Subject: Change in osmo-gsm-tester[master]: jenkins-build-srslte.sh: allow custom binaries In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22031 ) Change subject: jenkins-build-srslte.sh: allow custom binaries ...................................................................... jenkins-build-srslte.sh: allow custom binaries this allows to specify the environmental var wanted_binaries_bin that will be included in the trial package. if the variable isn't set, all three main srsLTE binaries are included Change-Id: I63f5799328435ce32b5bfd6dae6fd0b37e1e5397 --- M contrib/jenkins-build-srslte.sh 1 file changed, 5 insertions(+), 1 deletion(-) Approvals: pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/contrib/jenkins-build-srslte.sh b/contrib/jenkins-build-srslte.sh index 80e4ffc..365c3e4 100755 --- a/contrib/jenkins-build-srslte.sh +++ b/contrib/jenkins-build-srslte.sh @@ -1,6 +1,10 @@ #!/bin/sh set -e -x +if [ -z "$trial_binaries" ]; then + trial_binaries="srsue srsenb srsepc" +fi + base="$PWD" name="srslte" git_url="${git_url:-https://github.com/srsLTE}" @@ -10,4 +14,4 @@ #TODO: make sure libconfig, zeroMQ is installed build_repo $project_name $configure_opts -create_bin_tgz "srsue srsenb srsepc" +create_bin_tgz "$trial_binaries" -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22031 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-Change-Id: I63f5799328435ce32b5bfd6dae6fd0b37e1e5397 Gerrit-Change-Number: 22031 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 8 13:34:50 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 8 Jan 2021 13:34:50 +0000 Subject: Change in osmo-gsm-tester[master]: srsenb_drb.conf.tmpl: add QCI1 DRB config In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22032 ) Change subject: srsenb_drb.conf.tmpl: add QCI1 DRB config ...................................................................... srsenb_drb.conf.tmpl: add QCI1 DRB config use default QCI1 config for real-time voice traffic Change-Id: I43f408b1a3c172a5eb8327f03df49801e063e5cd --- M src/osmo_gsm_tester/templates/srsenb_drb.conf.tmpl 1 file changed, 23 insertions(+), 1 deletion(-) Approvals: pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/osmo_gsm_tester/templates/srsenb_drb.conf.tmpl b/src/osmo_gsm_tester/templates/srsenb_drb.conf.tmpl index 5167dab..b10ef31 100644 --- a/src/osmo_gsm_tester/templates/srsenb_drb.conf.tmpl +++ b/src/osmo_gsm_tester/templates/srsenb_drb.conf.tmpl @@ -1,7 +1,29 @@ // All times are in ms. Use -1 for infinity, where available qci_config = ( - +// UM - real time (RTP for VOIP) +{ + qci=1; + pdcp_config = { + discard_timer = 100; + pdcp_sn_size = 12; + } + rlc_config = { + ul_um = { + sn_field_length = 5; + }; + dl_um = { + sn_field_length = 5; + t_reordering = 45; + }; + }; + logical_channel_config = { + priority = 4; + prioritized_bit_rate = 256; + bucket_size_duration = 1000; + log_chan_group = 1; + }; +}, { qci=7; pdcp_config = { -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22032 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-Change-Id: I43f408b1a3c172a5eb8327f03df49801e063e5cd Gerrit-Change-Number: 22032 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 8 13:34:51 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 8 Jan 2021 13:34:51 +0000 Subject: Change in osmo-gsm-tester[master]: enb: include name label and run_addr in enb remote path In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22033 ) Change subject: enb: include name label and run_addr in enb remote path ...................................................................... enb: include name label and run_addr in enb remote path this allows to quickly identify the enb host in the logs Change-Id: I9c979de852a23041e43692e97ebcbfb389b52fdb --- M src/osmo_gsm_tester/obj/enb.py 1 file changed, 4 insertions(+), 1 deletion(-) Approvals: pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/osmo_gsm_tester/obj/enb.py b/src/osmo_gsm_tester/obj/enb.py index cdf9505..3944459 100644 --- a/src/osmo_gsm_tester/obj/enb.py +++ b/src/osmo_gsm_tester/obj/enb.py @@ -89,7 +89,10 @@ if self._gtp_bind_addr is None: self._gtp_bind_addr = self._run_node.run_addr() label = conf.get('label', None) - self.set_name('%s_%s' % (name, label if label is not None else self._run_node.run_addr())) + if label is not None: + self.set_name('%s_%s_%s' % (name, label, self._run_node.run_addr())) + else: + self.set_name('%s_%s' % (name, self._run_node.run_addr())) self._txmode = 0 self._id = None self._duplex = None -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22033 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-Change-Id: I9c979de852a23041e43692e97ebcbfb389b52fdb Gerrit-Change-Number: 22033 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 8 13:34:51 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 8 Jan 2021 13:34:51 +0000 Subject: Change in osmo-gsm-tester[master]: srsue.conf.tmpl: reorder conditions for setting RRC release In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22034 ) Change subject: srsue.conf.tmpl: reorder conditions for setting RRC release ...................................................................... srsue.conf.tmpl: reorder conditions for setting RRC release the order of checks needs to go from high to low, i.e. the higher release feature (e.g. qam256) needs to be checked and set first. in theory it should also be possible to have a CA-capable UE that does not support QAM256, but for srsUE we announce both anyway. Change-Id: I2fa49f0cb5d80db412a811ceeb380359c8ad67a7 --- M src/osmo_gsm_tester/templates/srsue.conf.tmpl 1 file changed, 4 insertions(+), 4 deletions(-) Approvals: pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/osmo_gsm_tester/templates/srsue.conf.tmpl b/src/osmo_gsm_tester/templates/srsue.conf.tmpl index 120b938..a57857b 100644 --- a/src/osmo_gsm_tester/templates/srsue.conf.tmpl +++ b/src/osmo_gsm_tester/templates/srsue.conf.tmpl @@ -147,14 +147,14 @@ # mbms_service_port: Port of the MBMS service ##################################################################### [rrc] -% if int(ue.num_carriers) > 1: -ue_category = 7 -release = 10 -% elif "dl_qam256" in ue.features or "ul_qam64" in ue.features: +% if "dl_qam256" in ue.features or "ul_qam64" in ue.features: ue_category = 8 release = 13 ue_category_dl = 14 ue_category_ul = 5 +% elif int(ue.num_carriers) > 1: +ue_category = 7 +release = 10 % else: #ue_category = 4 #release = 8 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22034 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-Change-Id: I2fa49f0cb5d80db412a811ceeb380359c8ad67a7 Gerrit-Change-Number: 22034 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 8 13:34:52 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 8 Jan 2021 13:34:52 +0000 Subject: Change in osmo-gsm-tester[master]: intraenb-intrafreq-ho.conf: add eNB to cell config In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22035 ) Change subject: intraenb-intrafreq-ho.conf: add eNB to cell config ...................................................................... intraenb-intrafreq-ho.conf: add eNB to cell config make sure to have the right eNB that matches the cells neighbor ECIDs, otherwise the eNB may trigger a S1 HO if the eNB ID is set elsewhere Change-Id: Id494ac1984846e78a6456bb6a17e72d63c9dacf5 --- M sysmocom/scenarios/mod-enb-cells-intraenb-intrafreq-ho.conf 1 file changed, 3 insertions(+), 1 deletion(-) Approvals: pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/sysmocom/scenarios/mod-enb-cells-intraenb-intrafreq-ho.conf b/sysmocom/scenarios/mod-enb-cells-intraenb-intrafreq-ho.conf index 8b6f569..f4223a5 100644 --- a/sysmocom/scenarios/mod-enb-cells-intraenb-intrafreq-ho.conf +++ b/sysmocom/scenarios/mod-enb-cells-intraenb-intrafreq-ho.conf @@ -1,7 +1,9 @@ # Cell config for Intra eNB HO, two cells on same frequencey (same EARFCN) on different RF ports (srsENB) modifiers: enb: - - cell_list: + - id: 0x19B + enable_measurements: true + cell_list: - cell_id: 0x01 pci: 0x01 tac: 0x0007 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22035 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-Change-Id: Id494ac1984846e78a6456bb6a17e72d63c9dacf5 Gerrit-Change-Number: 22035 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 8 13:34:52 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 8 Jan 2021 13:34:52 +0000 Subject: Change in osmo-gsm-tester[master]: srsue.conf.tmpl: disable TTI stats for ZMQ In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22036 ) Change subject: srsue.conf.tmpl: disable TTI stats for ZMQ ...................................................................... srsue.conf.tmpl: disable TTI stats for ZMQ since ZMQ runs are not using wall clock anyway, measuring TTI execution isn't useful, disable it therefore to avoid misleading warnings. Change-Id: I5c2cb0abcfce0ee67806f6611356f4d5d180541d --- M src/osmo_gsm_tester/templates/srsue.conf.tmpl 1 file changed, 5 insertions(+), 0 deletions(-) Approvals: pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/osmo_gsm_tester/templates/srsue.conf.tmpl b/src/osmo_gsm_tester/templates/srsue.conf.tmpl index a57857b..a50f91e 100644 --- a/src/osmo_gsm_tester/templates/srsue.conf.tmpl +++ b/src/osmo_gsm_tester/templates/srsue.conf.tmpl @@ -381,3 +381,8 @@ metrics_csv_enable = true #metrics_period_secs = 1 metrics_csv_filename = ${ue.metrics_filename} + +% if ue.rf_dev_type == 'zmq': +[stack] +have_tti_time_stats = false +% endif -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22036 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-Change-Id: I5c2cb0abcfce0ee67806f6611356f4d5d180541d Gerrit-Change-Number: 22036 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 8 13:34:53 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 8 Jan 2021 13:34:53 +0000 Subject: Change in osmo-gsm-tester[master]: enb_srs: only use QAM64 tables if both UE and eNB are configured for ... In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22038 ) Change subject: enb_srs: only use QAM64 tables if both UE and eNB are configured for QAM64 ...................................................................... enb_srs: only use QAM64 tables if both UE and eNB are configured for QAM64 this was causing failed tests because to achieve QAM64 rates both eNB and UE need to support it and have it activated. Change-Id: I599df92d69eeb56a5d44327de08f004222cff073 --- M src/osmo_gsm_tester/obj/enb_srs.py 1 file changed, 5 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/src/osmo_gsm_tester/obj/enb_srs.py b/src/osmo_gsm_tester/obj/enb_srs.py index 7fde719..1b17c3c 100644 --- a/src/osmo_gsm_tester/obj/enb_srs.py +++ b/src/osmo_gsm_tester/obj/enb_srs.py @@ -72,6 +72,7 @@ self.remote_log_file = None self.remote_pcap_file = None self.enable_pcap = False + self.enable_ul_qam64 = False self.metrics_file = None self.stop_sleep_time = 6 # We require at most 5s to stop self.testenv = testenv @@ -192,7 +193,9 @@ self.enable_pcap = util.str2bool(values['enb'].get('enable_pcap', 'false')) config.overlay(values, dict(enb={'enable_pcap': self.enable_pcap})) - config.overlay(values, dict(enb={'enable_ul_qam64': util.str2bool(values['enb'].get('enable_ul_qam64', 'false'))})) + self.enable_ul_qam64 = util.str2bool(values['enb'].get('enable_ul_qam64', 'false')) + config.overlay(values, dict(enb={'enable_ul_qam64': self.enable_ul_qam64})) + config.overlay(values, dict(enb={'enable_dl_awgn': util.str2bool(values['enb'].get('enable_dl_awgn', 'false'))})) config.overlay(values, dict(enb={'rf_dev_sync': values['enb'].get('rf_dev_sync', None)})) @@ -287,7 +290,7 @@ 75: 55e6, 100: 75e6} - if 'ul_qam64' in self.ue.features(): + if self.enable_ul_qam64 and 'ul_qam64' in self.ue.features(): max_phy_rate_tm1_ul = { 6 : 2.7e6, 15 : 6.5e6, 25 : 14e6, -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22038 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-Change-Id: I599df92d69eeb56a5d44327de08f004222cff073 Gerrit-Change-Number: 22038 Gerrit-PatchSet: 2 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 8 13:34:54 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 8 Jan 2021 13:34:54 +0000 Subject: Change in osmo-gsm-tester[master]: enb_srs: adopt throughput thresholds for QAM256 In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22039 ) Change subject: enb_srs: adopt throughput thresholds for QAM256 ...................................................................... enb_srs: adopt throughput thresholds for QAM256 it turned out that we have to reduce the MCS when using QAM256, especially for 6 PRB as subframe 0 and 5 contains PBCH and PSS signals, so the available REs are reduced. The eNB scheduler now has this limitation in mind and lowers the MCS. Change-Id: I0e38fe28002fd68c768cc8dcffcf74f4f190df02 --- M src/osmo_gsm_tester/obj/enb_srs.py 1 file changed, 8 insertions(+), 8 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/src/osmo_gsm_tester/obj/enb_srs.py b/src/osmo_gsm_tester/obj/enb_srs.py index 1b17c3c..6afc873 100644 --- a/src/osmo_gsm_tester/obj/enb_srs.py +++ b/src/osmo_gsm_tester/obj/enb_srs.py @@ -276,14 +276,14 @@ def ue_max_rate(self, downlink=True, num_carriers=1): # The max rate for a single UE per PRB configuration in TM1 with MCS 28 if 'dl_qam256' in self.ue.features(): - max_phy_rate_tm1_dl = {6: 5.9e6, - 15: 14.6e6, - 25: 24.5e6, - 50: 48.9e6, - 75: 75.3e6, - 100: 97.8e6} + max_phy_rate_tm1_dl = {6: 4.4e6, + 15: 14e6, + 25: 24e6, + 50: 49e6, + 75: 75e6, + 100: 98e6} else: - max_phy_rate_tm1_dl = {6: 3.5e6, + max_phy_rate_tm1_dl = {6: 3.3e6, 15: 11e6, 25: 18e6, 50: 36e6, @@ -296,7 +296,7 @@ 25 : 14e6, 50 : 32e6, 75 : 34e6, - 100 : 70e6 } + 100 : 71e6 } else: max_phy_rate_tm1_ul = { 6 : 1.7e6, 15 : 4.7e6, -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22039 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-Change-Id: I0e38fe28002fd68c768cc8dcffcf74f4f190df02 Gerrit-Change-Number: 22039 Gerrit-PatchSet: 2 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 8 13:34:54 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 8 Jan 2021 13:34:54 +0000 Subject: Change in osmo-gsm-tester[master]: srsepc.conf.tmpl: increase default value of T3413 (paging timer) In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22040 ) Change subject: srsepc.conf.tmpl: increase default value of T3413 (paging timer) ...................................................................... srsepc.conf.tmpl: increase default value of T3413 (paging timer) we've seen that the default value of 2s might be a bit tight. the value is network dependent so no real default value exists. however, 6s seems to be a good compromise. Change-Id: Icc75ee048c2cc605ab26c4c87a039519998f7e57 --- M src/osmo_gsm_tester/templates/srsepc.conf.tmpl 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/src/osmo_gsm_tester/templates/srsepc.conf.tmpl b/src/osmo_gsm_tester/templates/srsepc.conf.tmpl index 830cd32..62f9977 100644 --- a/src/osmo_gsm_tester/templates/srsepc.conf.tmpl +++ b/src/osmo_gsm_tester/templates/srsepc.conf.tmpl @@ -31,7 +31,7 @@ dns_addr = 8.8.8.8 encryption_algo = EEA0 integrity_algo = EIA1 -paging_timer = 2 +paging_timer = 6 ##################################################################### # HSS configuration -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22040 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-Change-Id: Icc75ee048c2cc605ab26c4c87a039519998f7e57 Gerrit-Change-Number: 22040 Gerrit-PatchSet: 2 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 8 13:34:54 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 8 Jan 2021 13:34:54 +0000 Subject: Change in osmo-gsm-tester[master]: srsenb.conf.tmpl: set nof_of_prach_threds to 0 for ZMQ In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22041 ) Change subject: srsenb.conf.tmpl: set nof_of_prach_threds to 0 for ZMQ ...................................................................... srsenb.conf.tmpl: set nof_of_prach_threds to 0 for ZMQ this executed the PRACH search in the main thread so PHY workers and PRACH processing don't diverge in loaded scenarios Change-Id: I97eddb5f9ca682251ded1f73093c2d0a49462bd6 --- M src/osmo_gsm_tester/templates/srsenb.conf.tmpl 1 file changed, 3 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/src/osmo_gsm_tester/templates/srsenb.conf.tmpl b/src/osmo_gsm_tester/templates/srsenb.conf.tmpl index 5df432b..7ac75bb 100644 --- a/src/osmo_gsm_tester/templates/srsenb.conf.tmpl +++ b/src/osmo_gsm_tester/templates/srsenb.conf.tmpl @@ -271,6 +271,9 @@ # ##################################################################### [expert] +% if enb.rf_dev_type == 'zmq': +nof_prach_threads = 0 +% endif #pusch_max_its = 8 # These are half iterations #pusch_8bit_decoder = false #nof_phy_threads = 3 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22041 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-Change-Id: I97eddb5f9ca682251ded1f73093c2d0a49462bd6 Gerrit-Change-Number: 22041 Gerrit-PatchSet: 2 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 8 13:36:34 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 8 Jan 2021 13:36:34 +0000 Subject: Change in osmo-gsm-tester[master]: enb: add abstract method stop() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22054 ) Change subject: enb: add abstract method stop() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22054 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-Change-Id: Ide606e1a6b523997215aa2fa39d4d56ae1f49181 Gerrit-Change-Number: 22054 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 08 Jan 2021 13:36:34 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 8 13:38:02 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 8 Jan 2021 13:38:02 +0000 Subject: Change in osmo-gsm-tester[master]: scenarios: remove ncells@ scenario and define number of cells explicitly In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22055 ) Change subject: scenarios: remove ncells@ scenario and define number of cells explicitly ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22055 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-Change-Id: If022d9e8d239805ee1280fb52660e68dda7484a0 Gerrit-Change-Number: 22055 Gerrit-PatchSet: 1 Gerrit-Owner: srs_andre Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 08 Jan 2021 13:38:02 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 8 13:43:14 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 8 Jan 2021 13:43:14 +0000 Subject: Change in osmo-bsc[master]: Introduce Neighbor resolution service In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21848 ) Change subject: Introduce Neighbor resolution service ...................................................................... Patch Set 4: (5 comments) https://gerrit.osmocom.org/c/osmo-bsc/+/21848/4/include/osmocom/bsc/neighbor_ident.h File include/osmocom/bsc/neighbor_ident.h: https://gerrit.osmocom.org/c/osmo-bsc/+/21848/4/include/osmocom/bsc/neighbor_ident.h at 64 PS4, Line 64: #include > Let's rather add a forward declaration for 'struct ctrl_handle' above, rather than including a heade [?] Ack https://gerrit.osmocom.org/c/osmo-bsc/+/21848/4/include/osmocom/bsc/neighbor_ident.h at 70 PS4, Line 70: _LAST_CTRL_NIDE_NEIGHBOR typo: NODE https://gerrit.osmocom.org/c/osmo-bsc/+/21848/4/src/osmo-bsc/neighbor_ident.c File src/osmo-bsc/neighbor_ident.c: https://gerrit.osmocom.org/c/osmo-bsc/+/21848/4/src/osmo-bsc/neighbor_ident.c at 337 PS4, Line 337: return CTRL_CMD_REPLY; > So if we reach this part, we leak the 'tmp'? Let's finally make use of OTC_SELECT! Ack https://gerrit.osmocom.org/c/osmo-bsc/+/21848/4/src/osmo-bsc/neighbor_ident_vty.c File src/osmo-bsc/neighbor_ident_vty.c: https://gerrit.osmocom.org/c/osmo-bsc/+/21848/4/src/osmo-bsc/neighbor_ident_vty.c at 164 PS4, Line 164: cell_id = (struct gsm0808_cell_id){ > This definition could be even shorter: [?] Ack https://gerrit.osmocom.org/c/osmo-bsc/+/21848/4/src/osmo-bsc/osmo_bsc_main.c File src/osmo-bsc/osmo_bsc_main.c: https://gerrit.osmocom.org/c/osmo-bsc/+/21848/4/src/osmo-bsc/osmo_bsc_main.c at 966 PS4, Line 966: Failed to install neighbor control commands > Something seems to be wrong here. [?] Ack -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21848 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ib07c9d23026332a207d4b7a0f7b4e76c0094e379 Gerrit-Change-Number: 21848 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-CC: laforge Gerrit-Comment-Date: Fri, 08 Jan 2021 13:43:14 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: fixeria Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 8 13:46:43 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 8 Jan 2021 13:46:43 +0000 Subject: Change in osmo-ttcn3-hacks[master]: CTRL: Introduce support to run osmocom CTRL server In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22012 ) Change subject: CTRL: Introduce support to run osmocom CTRL server ...................................................................... Patch Set 2: Code-Review+2 Merging since I applied the only comment which showed up. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22012 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I37db9962f51baf2c63bd58ec47ec89f773d7a255 Gerrit-Change-Number: 22012 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 08 Jan 2021 13:46:43 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 8 13:46:45 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 8 Jan 2021 13:46:45 +0000 Subject: Change in osmo-ttcn3-hacks[master]: CTRL: Introduce support to run osmocom CTRL server In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22012 ) Change subject: CTRL: Introduce support to run osmocom CTRL server ...................................................................... CTRL: Introduce support to run osmocom CTRL server Change-Id: I37db9962f51baf2c63bd58ec47ec89f773d7a255 --- M bsc-nat/BSCNAT_Tests.ttcn M bsc/BSC_Tests.ttcn M bts/BTS_Tests.ttcn M hlr/HLR_Tests.ttcn M library/Osmocom_CTRL_Adapter.ttcn M library/Osmocom_CTRL_Functions.ttcn M msc/BSC_ConnectionHandler.ttcn M msc/MSC_Tests.ttcn M sip/SIP_Tests.ttcn 9 files changed, 60 insertions(+), 22 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, but someone else must approve pespin: Looks good to me, approved diff --git a/bsc-nat/BSCNAT_Tests.ttcn b/bsc-nat/BSCNAT_Tests.ttcn index 41d58d7..1b24855 100644 --- a/bsc-nat/BSCNAT_Tests.ttcn +++ b/bsc-nat/BSCNAT_Tests.ttcn @@ -151,7 +151,7 @@ f_init_vty("VirtBSCNAT"); f_vty_allow_osmux(use_osmux); - f_ipa_ctrl_start(mp_nat_ip, mp_nat_ctrl_port); + f_ipa_ctrl_start_client(mp_nat_ip, mp_nat_ctrl_port); for (i := 0; i < NUM_MSC; i := i+1) { f_init_MscState(msc[i], mp_msc_pc +i, mp_bsc_pc, mp_msc_ssn, mp_bsc_ssn); diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index a1fa4dd..2c02e36 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -1103,7 +1103,7 @@ /* start the test with exactly all enabled MSCs allowed to attach */ f_vty_msc_allow_attach(BSCVTY, allow_attach); - f_ipa_ctrl_start(mp_bsc_ip, mp_bsc_ctrl_port); + f_ipa_ctrl_start_client(mp_bsc_ip, mp_bsc_ctrl_port); f_init_mgcp("VirtMSC"); @@ -3080,7 +3080,7 @@ bts[0].rsl.ccm_pars.name := "Osmocom TTCN-3 BTS Simulator"; bts[0].rsl.ccm_pars.unit_id := "99/0/0"; /* value which is unknown at BTS */ - f_ipa_ctrl_start(mp_bsc_ip, mp_bsc_ctrl_port); + f_ipa_ctrl_start_client(mp_bsc_ip, mp_bsc_ctrl_port); f_init_mgcp("VirtMSC"); diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn index 16e3d71..c843032 100644 --- a/bts/BTS_Tests.ttcn +++ b/bts/BTS_Tests.ttcn @@ -547,7 +547,7 @@ f_init_rsl(id); f_sleep(0.5); /* workaround for OS#3000 */ f_init_vty(id); - f_ipa_ctrl_start(mp_ctrl_ip, mp_ctrl_port); + f_ipa_ctrl_start_client(mp_ctrl_ip, mp_ctrl_port); /* Send SI3 to the BTS, it is needed for various computations */ f_rsl_bcch_fill(RSL_SYSTEM_INFO_3, ts_SI3_default); @@ -5376,7 +5376,7 @@ /* re-connect CTRL port from BTS to BSC */ f_ipa_ctrl_stop(); - f_ipa_ctrl_start(mp_bsc_ctrl_ip, mp_bsc_ctrl_port); + f_ipa_ctrl_start_client(mp_bsc_ctrl_ip, mp_bsc_ctrl_port); /* Send that OML Alert */ PCU.send(t_SD_PCUIF(g_pcu_conn_id, ts_PCUIF_TXT_IND(0, PCU_OML_ALERT, testcasename()))); diff --git a/hlr/HLR_Tests.ttcn b/hlr/HLR_Tests.ttcn index 36e28b8..ea450b3 100644 --- a/hlr/HLR_Tests.ttcn +++ b/hlr/HLR_Tests.ttcn @@ -245,7 +245,7 @@ f_init_gsup_server("HLR_Test"); } - f_ipa_ctrl_start(mp_hlr_ip, mp_hlr_ctrl_port); + f_ipa_ctrl_start_client(mp_hlr_ip, mp_hlr_ctrl_port); } /*! Start HLR_ConnHdlr from testCT in a separate thread. diff --git a/library/Osmocom_CTRL_Adapter.ttcn b/library/Osmocom_CTRL_Adapter.ttcn index 0be3ebb..fefff8b 100644 --- a/library/Osmocom_CTRL_Adapter.ttcn +++ b/library/Osmocom_CTRL_Adapter.ttcn @@ -26,12 +26,24 @@ port IPA_CTRL_PT IPA_CTRL; } - -/*! Start the CTRL connection to the specified BSC IP+Port */ -function f_ipa_ctrl_start(charstring bsc_host, PortNumber bsc_port) +/* wait for IPA CTRL link to connect and send UP */ +function f_ipa_ctrl_wait_link_up() runs on CTRL_Adapter_CT { - var charstring id := "IPA-CTRL" timer T := 10.0; + T.start; + alt { + [] IPA_CTRL.receive(tr_ASP_IPA_EV(ASP_IPA_EVENT_UP)) { } + [] T.timeout { + setverdict(fail, "Timeout CTRL waiting for ASP_IPA_EVENT_UP"); + mtc.stop; + } + } +} + +/*! Start the CTRL client connection to the specified CTRL IP+Port server*/ +function f_ipa_ctrl_start_client(charstring bsc_host, PortNumber bsc_port) +runs on CTRL_Adapter_CT { + var charstring id := "IPA-CTRL-CLI" vc_CTRL_IPA := IPA_Emulation_CT.create(id & "-IPA"); @@ -41,15 +53,21 @@ vc_CTRL_IPA.start(IPA_Emulation.main_client(bsc_host, bsc_port, "", 0, c_IPA_default_ccm_pars, false)); - /* wait for IPA CTRL link to connect and send UP */ - T.start; - alt { - [] IPA_CTRL.receive(tr_ASP_IPA_EV(ASP_IPA_EVENT_UP)) { } - [] T.timeout { - setverdict(fail, "Timeout CTRL waiting for ASP_IPA_EVENT_UP"); - mtc.stop; - } - } + f_ipa_ctrl_wait_link_up(); +} + +/*! Start the CTRL server on the specified CTRL IP+Port */ +function f_ipa_ctrl_start_server(charstring listen_host, PortNumber listen_port) +runs on CTRL_Adapter_CT { + var charstring id := "IPA-CTRL-SRV" + timer T := 10.0; + + vc_CTRL_IPA := IPA_Emulation_CT.create(id & "-IPA"); + + map(vc_CTRL_IPA:IPA_PORT, system:IPA_CODEC_PT); + connect(vc_CTRL_IPA:IPA_CTRL_PORT, self:IPA_CTRL); + + vc_CTRL_IPA.start(IPA_Emulation.main_server(listen_host, listen_port, false)); } function f_ipa_ctrl_stop() runs on CTRL_Adapter_CT { diff --git a/library/Osmocom_CTRL_Functions.ttcn b/library/Osmocom_CTRL_Functions.ttcn index d26dc89..294fe33 100644 --- a/library/Osmocom_CTRL_Functions.ttcn +++ b/library/Osmocom_CTRL_Functions.ttcn @@ -117,6 +117,26 @@ return rx.cmd.val; } + /* Expect a matching SET, optionally answer */ + function f_ctrl_exp_get(IPA_CTRL_PT pt, template CtrlVariable variable, + template (omit) CtrlValue rsp := omit, + float timeout_val := 2.0) { + timer T := timeout_val; + var CtrlMessage rx; + T.start; + alt { + [] pt.receive(tr_CtrlMsgGet(?, variable)) -> value rx { + if (ispresent(rsp)) { + pt.send(ts_CtrlMsgGetRepl(rx.cmd.id, valueof(variable), valueof(rsp))); + } + } + [] T.timeout { + setverdict(fail, "Timeout waiting for GET ", variable); + mtc.stop; + } + } + } + /* Expect a matching GET result */ function f_ctrl_get_exp(IPA_CTRL_PT pt, CtrlVariable variable, template CtrlValue exp) { var charstring ctrl_resp; diff --git a/msc/BSC_ConnectionHandler.ttcn b/msc/BSC_ConnectionHandler.ttcn index 6ea4f86..3996a87 100644 --- a/msc/BSC_ConnectionHandler.ttcn +++ b/msc/BSC_ConnectionHandler.ttcn @@ -182,7 +182,7 @@ } if (g_pars.ipa_ctrl_enable == true) { - f_ipa_ctrl_start(g_pars.ipa_ctrl_ip, g_pars.ipa_ctrl_port); + f_ipa_ctrl_start_client(g_pars.ipa_ctrl_ip, g_pars.ipa_ctrl_port); } map(self:MSCVTY, system:MSCVTY); diff --git a/msc/MSC_Tests.ttcn b/msc/MSC_Tests.ttcn index 5129c5b..e6681bb 100644 --- a/msc/MSC_Tests.ttcn +++ b/msc/MSC_Tests.ttcn @@ -318,7 +318,7 @@ } } - f_ipa_ctrl_start(mp_msc_ip, mp_msc_ctrl_port); + f_ipa_ctrl_start_client(mp_msc_ip, mp_msc_ctrl_port); f_init_mncc("MSC_Test"); f_init_mgcp("MSC_Test"); diff --git a/sip/SIP_Tests.ttcn b/sip/SIP_Tests.ttcn index 053395e..37c158e 100644 --- a/sip/SIP_Tests.ttcn +++ b/sip/SIP_Tests.ttcn @@ -134,7 +134,7 @@ } function f_init() runs on test_CT { - //f_ipa_ctrl_start(mp_osmosip_host, mp_osmosip_port_ctrl); + //f_ipa_ctrl_start_client(mp_osmosip_host, mp_osmosip_port_ctrl); f_init_mncc("SIP_Test"); log("end of f_init_mncc"); f_init_sip(vc_SIP, "SIP_Test"); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22012 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I37db9962f51baf2c63bd58ec47ec89f773d7a255 Gerrit-Change-Number: 22012 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 8 13:55:13 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 8 Jan 2021 13:55:13 +0000 Subject: Change in osmo-bsc[master]: Introduce Neighbor resolution service In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21848 ) Change subject: Introduce Neighbor resolution service ...................................................................... Patch Set 4: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/21848/4/include/osmocom/bsc/neighbor_ident.h File include/osmocom/bsc/neighbor_ident.h: https://gerrit.osmocom.org/c/osmo-bsc/+/21848/4/include/osmocom/bsc/neighbor_ident.h at 64 PS4, Line 64: #include > Ack the header is needed due to use of _LAST_CTRL_NODE too. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21848 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ib07c9d23026332a207d4b7a0f7b4e76c0094e379 Gerrit-Change-Number: 21848 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-CC: laforge Gerrit-Comment-Date: Fri, 08 Jan 2021 13:55:13 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Comment-In-Reply-To: fixeria Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 8 14:07:30 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 8 Jan 2021 14:07:30 +0000 Subject: Change in osmo-bsc[master]: Introduce Neighbor Resolution Service In-Reply-To: References: Message-ID: Hello Jenkins Builder, fixeria, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bsc/+/21848 to look at the new patch set (#5). Change subject: Introduce Neighbor Resolution Service ...................................................................... Introduce Neighbor Resolution Service This new CTRL interface allows users of this BSC (such as attached PCU) to gather neighbor information. This interface is needed for PCU to translate ARFCN+BSIC keys provided by MS in the Um side into CGI + RAC keys used to identify target cells in RIM procedures against SGSNs on the Gb interface. This patch extends the already existing neighbor information storage in the VTY by allowing storage of CGI + RAC (RAC couldn't be stored beforehand). Related: SYS#4909 Depends: libosmocore.git Change-Id If48f412c32e8e5a3e604a78d12b74787a4786374 Change-Id: Ib07c9d23026332a207d4b7a0f7b4e76c0094e379 --- M include/osmocom/bsc/gsm_data.h M include/osmocom/bsc/neighbor_ident.h M src/osmo-bsc/bsc_vty.c M src/osmo-bsc/bts.c M src/osmo-bsc/neighbor_ident.c M src/osmo-bsc/neighbor_ident_vty.c M src/osmo-bsc/osmo_bsc_main.c M tests/bsc/Makefile.am A tests/ctrl/osmo-bsc-neigh-test.cfg M tests/ctrl_test_runner.py M tests/gsm0408/Makefile.am M tests/neighbor_ident.vty 12 files changed, 369 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/48/21848/5 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21848 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ib07c9d23026332a207d4b7a0f7b4e76c0094e379 Gerrit-Change-Number: 21848 Gerrit-PatchSet: 5 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-CC: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 8 14:37:19 2021 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Fri, 8 Jan 2021 14:37:19 +0000 Subject: Change in osmo-gsm-tester[master]: enb, ue, process: move stdout counter helper to process objects In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22042 to look at the new patch set (#4). Change subject: enb,ue,process: move stdout counter helper to process objects ...................................................................... enb,ue,process: move stdout counter helper to process objects this patch adds the stdout counter to count events happening on the stdout (known from the UE already) to the common process class so they can also be used from the eNB (and other objects) In addition, we add a PRACH counter to be used for tests. Change-Id: I434f072b8aa6f4dce9f90889c6b40832f6798ff8 --- M src/osmo_gsm_tester/core/process.py M src/osmo_gsm_tester/obj/enb.py M src/osmo_gsm_tester/obj/enb_amarisoft.py M src/osmo_gsm_tester/obj/enb_srs.py M src/osmo_gsm_tester/obj/ms_srs.py M src/osmo_gsm_tester/obj/srslte_common.py 6 files changed, 31 insertions(+), 17 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/42/22042/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22042 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-Change-Id: I434f072b8aa6f4dce9f90889c6b40832f6798ff8 Gerrit-Change-Number: 22042 Gerrit-PatchSet: 4 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 8 14:37:19 2021 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Fri, 8 Jan 2021 14:37:19 +0000 Subject: Change in osmo-gsm-tester[master]: enb: add abstract method stop() In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22054 to look at the new patch set (#2). Change subject: enb: add abstract method stop() ...................................................................... enb: add abstract method stop() implement as noop for Amarisoft eNB, srsENB will send q+Enter to stdin Change-Id: Ide606e1a6b523997215aa2fa39d4d56ae1f49181 --- M src/osmo_gsm_tester/obj/enb.py M src/osmo_gsm_tester/obj/enb_amarisoft.py M src/osmo_gsm_tester/obj/enb_srs.py 3 files changed, 13 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/54/22054/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22054 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-Change-Id: Ide606e1a6b523997215aa2fa39d4d56ae1f49181 Gerrit-Change-Number: 22054 Gerrit-PatchSet: 2 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 8 14:58:38 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 8 Jan 2021 14:58:38 +0000 Subject: Change in osmo-bsc[master]: Introduce Neighbor Resolution Service In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21848 ) Change subject: Introduce Neighbor Resolution Service ...................................................................... Patch Set 5: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/21848/5/src/osmo-bsc/neighbor_ident.c File src/osmo-bsc/neighbor_ident.c: https://gerrit.osmocom.org/c/osmo-bsc/+/21848/5/src/osmo-bsc/neighbor_ident.c at 332 PS5, Line 332: ctrl_cmd_reply_printf(cmd, "%u,%u,%u,%u,%u", cgi_ps->rai.lac.plmn.mcc, I just thought it may make sense to return them using format "%u-%u-%u..." instead, that's a more common formatting. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21848 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ib07c9d23026332a207d4b7a0f7b4e76c0094e379 Gerrit-Change-Number: 21848 Gerrit-PatchSet: 5 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-CC: laforge Gerrit-Comment-Date: Fri, 08 Jan 2021 14:58:38 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 8 15:07:54 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 8 Jan 2021 15:07:54 +0000 Subject: Change in libosmocore[master]: Intoduce Packet Switch CGI In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22013 ) Change subject: Intoduce Packet Switch CGI ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22013 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If48f412c32e8e5a3e604a78d12b74787a4786374 Gerrit-Change-Number: 22013 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 08 Jan 2021 15:07:54 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 8 15:14:22 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 8 Jan 2021 15:14:22 +0000 Subject: Change in libosmocore[master]: Intoduce Packet Switch CGI In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22013 to look at the new patch set (#4). Change subject: Intoduce Packet Switch CGI ...................................................................... Intoduce Packet Switch CGI This structure is needed in order to identify a given cell within the BSS during RIM transactions. The naming was made up by myself since I couldn't find any naming reference for this kind of data (RAI + CI). Since LAI + CI = CGI, then RAI + CI = CGI-PS osmo_rai_name2 family of functions get a "2" suffix due to already existing functions handling struct struct gprs_ra_id in gsm48.h Change-Id: If48f412c32e8e5a3e604a78d12b74787a4786374 --- M include/osmocom/gsm/gsm0808_utils.h M include/osmocom/gsm/gsm23003.h M include/osmocom/gsm/protocol/gsm_08_08.h M src/gsm/gsm0808_utils.c M src/gsm/gsm23003.c 5 files changed, 129 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/13/22013/4 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22013 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If48f412c32e8e5a3e604a78d12b74787a4786374 Gerrit-Change-Number: 22013 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 8 15:16:04 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 8 Jan 2021 15:16:04 +0000 Subject: Change in osmo-gsm-tester[master]: enb, ue, process: move stdout counter helper to process objects In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22042 ) Change subject: enb,ue,process: move stdout counter helper to process objects ...................................................................... Patch Set 4: Code-Review-1 (1 comment) https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22042/4/src/osmo_gsm_tester/obj/enb.py File src/osmo_gsm_tester/obj/enb.py: https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22042/4/src/osmo_gsm_tester/obj/enb.py at 351 PS4, Line 351: raise log.Error('get_counter() not implemented!') this should simply be "pass". Then in all subclasses which don't have a proper implementation (amarisoft enb?) add the method with the raise line. -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22042 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-Change-Id: I434f072b8aa6f4dce9f90889c6b40832f6798ff8 Gerrit-Change-Number: 22042 Gerrit-PatchSet: 4 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 08 Jan 2021 15:16:04 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 8 15:18:26 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 8 Jan 2021 15:18:26 +0000 Subject: Change in osmo-gsm-tester[master]: enb: add abstract method stop() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22054 ) Change subject: enb: add abstract method stop() ...................................................................... Patch Set 2: Code-Review-1 (1 comment) https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22054/2/src/osmo_gsm_tester/obj/enb_srs.py File src/osmo_gsm_tester/obj/enb_srs.py: https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22054/2/src/osmo_gsm_tester/obj/enb_srs.py at 122 PS2, Line 122: def stop(self): This is wrong, you are overwritting the srslte_common code. You need to drop the method here in that case. -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22054 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-Change-Id: Ide606e1a6b523997215aa2fa39d4d56ae1f49181 Gerrit-Change-Number: 22054 Gerrit-PatchSet: 2 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 08 Jan 2021 15:18:26 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 8 15:26:36 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 8 Jan 2021 15:26:36 +0000 Subject: Change in libosmocore[master]: Intoduce Packet Switch CGI In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22013 ) Change subject: Intoduce Packet Switch CGI ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22013 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If48f412c32e8e5a3e604a78d12b74787a4786374 Gerrit-Change-Number: 22013 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 08 Jan 2021 15:26:36 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 8 15:27:19 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 8 Jan 2021 15:27:19 +0000 Subject: Change in libosmocore[master]: Intoduce Packet Switch CGI In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22013 to look at the new patch set (#5). Change subject: Intoduce Packet Switch CGI ...................................................................... Intoduce Packet Switch CGI This structure is needed in order to identify a given cell within the BSS during RIM transactions. The naming was made up by myself since I couldn't find any naming reference for this kind of data (RAI + CI). Since LAI + CI = CGI, then RAI + CI = CGI-PS osmo_rai_name2 family of functions get a "2" suffix due to already existing functions handling struct struct gprs_ra_id in gsm48.h Change-Id: If48f412c32e8e5a3e604a78d12b74787a4786374 --- M include/osmocom/gsm/gsm0808_utils.h M include/osmocom/gsm/gsm23003.h M include/osmocom/gsm/protocol/gsm_08_08.h M src/gsm/gsm0808_utils.c M src/gsm/gsm23003.c M src/gsm/libosmogsm.map 6 files changed, 136 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/13/22013/5 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22013 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If48f412c32e8e5a3e604a78d12b74787a4786374 Gerrit-Change-Number: 22013 Gerrit-PatchSet: 5 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 8 15:37:17 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 8 Jan 2021 15:37:17 +0000 Subject: Change in osmo-bsc[master]: Introduce Neighbor Resolution Service In-Reply-To: References: Message-ID: Hello Jenkins Builder, fixeria, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bsc/+/21848 to look at the new patch set (#6). Change subject: Introduce Neighbor Resolution Service ...................................................................... Introduce Neighbor Resolution Service This new CTRL interface allows users of this BSC (such as attached PCU) to gather neighbor information. This interface is needed for PCU to translate ARFCN+BSIC keys provided by MS in the Um side into CGI + RAC keys used to identify target cells in RIM procedures against SGSNs on the Gb interface. This patch extends the already existing neighbor information storage in the VTY by allowing storage of CGI + RAC (RAC couldn't be stored beforehand). Related: SYS#4909 Depends: libosmocore.git Change-Id If48f412c32e8e5a3e604a78d12b74787a4786374 Change-Id: Ib07c9d23026332a207d4b7a0f7b4e76c0094e379 --- M include/osmocom/bsc/gsm_data.h M include/osmocom/bsc/neighbor_ident.h M src/osmo-bsc/bsc_vty.c M src/osmo-bsc/bts.c M src/osmo-bsc/neighbor_ident.c M src/osmo-bsc/neighbor_ident_vty.c M src/osmo-bsc/osmo_bsc_main.c M tests/bsc/Makefile.am A tests/ctrl/osmo-bsc-neigh-test.cfg M tests/ctrl_test_runner.py M tests/gsm0408/Makefile.am M tests/neighbor_ident.vty 12 files changed, 366 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/48/21848/6 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21848 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ib07c9d23026332a207d4b7a0f7b4e76c0094e379 Gerrit-Change-Number: 21848 Gerrit-PatchSet: 6 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-CC: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 8 15:52:17 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 8 Jan 2021 15:52:17 +0000 Subject: Change in docker-playground[master]: ttcn3-gbproxy-test: Fix pcap capture with dumpcap In-Reply-To: References: Message-ID: Hello laforge, lynxis lazus, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/docker-playground/+/22047 to look at the new patch set (#2). Change subject: ttcn3-gbproxy-test: Fix pcap capture with dumpcap ...................................................................... ttcn3-gbproxy-test: Fix pcap capture with dumpcap In commit 2279aac6 dumpcap is used to capture pcaps, but dumpcap fails if the directory isn't writable for everyone. Commit 62ac27779 only fixed this issue for frame relay, this simply mirrors the change for ttcn3-gbproxy-test Change-Id: I11dcf9efd0b06544a82e31dec03fe76e182fd0d3 Related: OS#4518 SYS#5115 --- M ttcn3-gbproxy-test-fr/jenkins.sh M ttcn3-gbproxy-test/jenkins.sh 2 files changed, 4 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/47/22047/2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22047 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I11dcf9efd0b06544a82e31dec03fe76e182fd0d3 Gerrit-Change-Number: 22047 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 8 15:52:30 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 8 Jan 2021 15:52:30 +0000 Subject: Change in docker-playground[master]: ttcn3-gbproxy-test: Fix pcap capture with dumpcap In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22047 ) Change subject: ttcn3-gbproxy-test: Fix pcap capture with dumpcap ...................................................................... Patch Set 2: Verified+1 (1 comment) https://gerrit.osmocom.org/c/docker-playground/+/22047/1/ttcn3-gbproxy-test/jenkins.sh File ttcn3-gbproxy-test/jenkins.sh: https://gerrit.osmocom.org/c/docker-playground/+/22047/1/ttcn3-gbproxy-test/jenkins.sh at 13 PS1, Line 13: # if we don't change permissiosn, dumpcap fails to write (despite starting it as root!) > permissions Fine -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22047 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I11dcf9efd0b06544a82e31dec03fe76e182fd0d3 Gerrit-Change-Number: 22047 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-CC: pespin Gerrit-Comment-Date: Fri, 08 Jan 2021 15:52:30 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 8 15:57:16 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 8 Jan 2021 15:57:16 +0000 Subject: Change in docker-playground[master]: ttcn3-gbproxy-test: Fix pcap capture with dumpcap In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22047 ) Change subject: ttcn3-gbproxy-test: Fix pcap capture with dumpcap ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22047 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I11dcf9efd0b06544a82e31dec03fe76e182fd0d3 Gerrit-Change-Number: 22047 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 08 Jan 2021 15:57:16 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 8 15:57:57 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 8 Jan 2021 15:57:57 +0000 Subject: Change in osmo-bts[master]: power_control: properly track the first initial state In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/22051 ) Change subject: power_control: properly track the first initial state ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/22051/1/src/common/power_control.c File src/common/power_control.c: https://gerrit.osmocom.org/c/osmo-bts/+/22051/1/src/common/power_control.c at 81 PS1, Line 81: if (mps->meas_num++ == 0) { > a boolean would be better, otherwise you are applying wrong value when it overflows (not critical th [?] For other pre-processing methods (like unweighted average) it makes more sense to have a counter, so you know how many measurements you have in the buffer. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22051 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I16e7474b5affbd90855a2e407b305e9dec581dfa Gerrit-Change-Number: 22051 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 08 Jan 2021 15:57:57 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 8 16:02:41 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 8 Jan 2021 16:02:41 +0000 Subject: Change in osmo-bsc[master]: Introduce Neighbor Resolution Service In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21848 ) Change subject: Introduce Neighbor Resolution Service ...................................................................... Patch Set 6: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21848 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ib07c9d23026332a207d4b7a0f7b4e76c0094e379 Gerrit-Change-Number: 21848 Gerrit-PatchSet: 6 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-CC: laforge Gerrit-Comment-Date: Fri, 08 Jan 2021 16:02:41 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 8 16:18:19 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 8 Jan 2021 16:18:19 +0000 Subject: Change in osmo-ttcn3-hacks[master]: library: Add templates to initialize CellId, RAI, LAI References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22056 ) Change subject: library: Add templates to initialize CellId, RAI, LAI ...................................................................... library: Add templates to initialize CellId, RAI, LAI Change-Id: Ie9d86e1b651dff279e7d50a4282bf14fbed5bb76 --- M library/GSM_Types.ttcn M library/Osmocom_Gb_Types.ttcn 2 files changed, 13 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/56/22056/1 diff --git a/library/GSM_Types.ttcn b/library/GSM_Types.ttcn index 34b6517..6cc3c08 100644 --- a/library/GSM_Types.ttcn +++ b/library/GSM_Types.ttcn @@ -420,12 +420,20 @@ BcdMccMnc mcc_mnc, uint16_t lac } with { variant "" }; +template (value) LocationAreaIdentification ts_LAI(BcdMccMnc mcc_mnc, uint16_t lac) := { + mcc_mnc := mcc_mnc, + lac := lac +}; /* 24.008 10.5.5.15 */ type record RoutingAreaIdentification { LocationAreaIdentification lai, uint8_t rac } with { variant "" }; +template (value) RoutingAreaIdentification ts_RAI(template (value) LocationAreaIdentification lai, uint8_t rac) := { + lai := lai, + rac := rac +}; external function enc_RoutingAreaIdentification(RoutingAreaIdentification rai) return octetstring with { extension "prototype(convert)" extension "encode(RAW)" } diff --git a/library/Osmocom_Gb_Types.ttcn b/library/Osmocom_Gb_Types.ttcn index b83131d..518d619 100644 --- a/library/Osmocom_Gb_Types.ttcn +++ b/library/Osmocom_Gb_Types.ttcn @@ -733,6 +733,11 @@ CellIdentity cell_id } with { variant "" }; + template (value) BssgpCellId ts_BssgpCellId(template (value) RoutingAreaIdentification rai, CellIdentity cell_id) := { + ra_id := rai, + cell_id := cell_id + }; + type enumerated BssgpCause { BSSGP_CAUSE_PROC_OVERLOAD ('00'H), BSSGP_CAUSE_EQUIMENT_FAILURE ('01'H), -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22056 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ie9d86e1b651dff279e7d50a4282bf14fbed5bb76 Gerrit-Change-Number: 22056 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 8 16:18:20 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 8 Jan 2021 16:18:20 +0000 Subject: Change in osmo-ttcn3-hacks[master]: rlcmac: Add template to match receival of Dl Ctrl message References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22057 ) Change subject: rlcmac: Add template to match receival of Dl Ctrl message ...................................................................... rlcmac: Add template to match receival of Dl Ctrl message Change-Id: Ifd16e8129b4440542b82a47749df1547a061ae88 --- M library/RLCMAC_Templates.ttcn 1 file changed, 13 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/57/22057/1 diff --git a/library/RLCMAC_Templates.ttcn b/library/RLCMAC_Templates.ttcn index d59c74e..981061c 100644 --- a/library/RLCMAC_Templates.ttcn +++ b/library/RLCMAC_Templates.ttcn @@ -505,6 +505,19 @@ usf := usf } + template RlcmacDlBlock tr_RLCMAC_DL_CTRL(template uint3_t usf := ?, template RlcmacDlCtrlMsg dl_ctrl := ?) := { + ctrl := { + mac_hdr := { + payload_type := (MAC_PT_RLCMAC_NO_OPT, MAC_PT_RLCMAC_OPT), + rrbp:= ?, + rrbp_valid := ?, + usf := usf + }, + opt := *, + payload := dl_ctrl + } + } + template RlcmacDlBlock tr_RLCMAC_DUMMY_CTRL(template uint3_t usf := ?, template PageMode page_mode := ?) := { ctrl := { mac_hdr := { -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22057 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ifd16e8129b4440542b82a47749df1547a061ae88 Gerrit-Change-Number: 22057 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 8 16:18:20 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 8 Jan 2021 16:18:20 +0000 Subject: Change in osmo-ttcn3-hacks[master]: rlcmac: introduce initial support for NACC related messages References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22058 ) Change subject: rlcmac: introduce initial support for NACC related messages ...................................................................... rlcmac: introduce initial support for NACC related messages Change-Id: I4d2f123479c34e6afffe0bc8d91409e6b0529a62 --- M library/RLCMAC_CSN1_Templates.ttcn M library/RLCMAC_CSN1_Types.ttcn 2 files changed, 169 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/58/22058/1 diff --git a/library/RLCMAC_CSN1_Templates.ttcn b/library/RLCMAC_CSN1_Templates.ttcn index 64c709a..673a5e5 100644 --- a/library/RLCMAC_CSN1_Templates.ttcn +++ b/library/RLCMAC_CSN1_Templates.ttcn @@ -108,6 +108,84 @@ } }; + const CCNMesurementReport ccn_meas_rep_def := { + rxlev_servig_cell := 0, + zero := '0'B, + num_meas := 1, + meas := { + { + freq := 0, + bsic_presence := '1'B, + bsic := 43, + rxlev := 23 + } + } + } + + /* TS 44.060 sec 11.2.3a */ + template (value) RlcmacUlCtrlMsg ts_RlcMacUlCtrl_PKT_CELL_CHG_NOTIF(uint5_t tfi, + GsmArfcn arfcn, + uint6_t bsic, + template (value) CCNMesurementReport ccn_meas_rep := ccn_meas_rep_def) + := { + msg_type := PACKET_CELL_CHANGE_NOTIFICATION, + u := { + cell_chg_notif := { + gtfi := { + is_dl_tfi := false, + tfi := tfi + }, + arfcn_bsic_presence := '0'B, + arfcn := arfcn, + bsic := bsic, + ba_psi3_presence := '0'B, + ba_used := '0'B, + psi3_change_mark := omit, + pmo_used := '0'B, + pccn_sending := '0'B, + ccn_meas_rep := ccn_meas_rep + //ccn_meas_rep := omit + } + } + }; + + /* TS 44.060 sec 11.2.2a */ + template RlcmacDlCtrlMsg tr_RlcMacDlCtrl_PKT_CELL_CHG_CONTINUE(template GlobalTfi tfi := ?) + := { + msg_type := PACKET_CELL_CHANGE_CONTINUE, + u := { + cell_chg_continue := { + page_mode := ?, + zero := '0'B, + gtfi := tfi, + arfcn_bsic_presence := ?, + arfcn := *, + bsic := *, + container_id := * + } + } + }; + + /* TS 44.060 sec 11.2.9e */ + template RlcmacDlCtrlMsg tr_RlcMacDlCtrl_PKT_NEIGH_CELL_DATA(template GlobalTfi tfi := ?) + := { + msg_type := PACKET_NEIGHBOUR_CELL_DATA, + u := { + neighbour_cell_data := { + page_mode := ?, + zero := '0'B, + gtfi := tfi, + container_id := ?, + spare := '0'B, + container_index := ?, + arfcn_bsic_presence := ?, + arfcn := *, + bsic := *, + contaner_list := ? + } + } + }; + private function f_presence_bit_tfi(template uint5_t tfi) return BIT1 { if (istemplatekind(tfi, "omit")) { return '0'B; diff --git a/library/RLCMAC_CSN1_Types.ttcn b/library/RLCMAC_CSN1_Types.ttcn index 14570bf..b0e8c66 100644 --- a/library/RLCMAC_CSN1_Types.ttcn +++ b/library/RLCMAC_CSN1_Types.ttcn @@ -32,6 +32,8 @@ PACKET_TBF_RELEASE ('001000'B), PACKET_UL_ACK_NACK ('001001'B), PACKET_UL_ASSIGNMENT ('001010'B), + PACKET_CELL_CHANGE_CONTINUE ('001011'B), + PACKET_NEIGHBOUR_CELL_DATA ('001100'B), PACKET_DL_DUMMY_CTRL ('100101'B) } with { variant "FIELDLENGTH(6)" }; @@ -49,7 +51,7 @@ PACKET_EGPRS_DL_ACK_NACK ('001000'B), PACKET_PAUSE ('001001'B), ADDITIONAL_MS_RA_CAPABILITIES ('001011'B), - PACKET_CELL_CANGE_NOTIFICATION ('001100'B), + PACKET_CELL_CHANGE_NOTIFICATION ('001100'B), PACKET_SI_STATUS ('001101'B), PACKET_CS_REQUEST ('001110'B), MBMS_SERVICE_REQUEST ('001111'B), @@ -586,6 +588,46 @@ variant (msg) "PRESENCE(msg_escape = '0'B)" }; + /* 11.2.2a Packet Cell Change Continue */ + type record PacketCellChangeContinue { + PageMode page_mode, + BIT1 zero ('0'B), + GlobalTfi gtfi, + BIT1 arfcn_bsic_presence, + uint10_t arfcn optional, + uint6_t bsic optional, + uint2_t container_id optional + } with { + variant (arfcn) "PRESENCE(arfcn_bsic_presence = '1'B)" + variant (bsic) "PRESENCE(arfcn_bsic_presence = '1'B)" + variant (container_id) "PRESENCE(arfcn_bsic_presence = '1'B)" + }; + + /* 11.2.9e Packet Neighbour Cell Data */ + type record PacketNeighbourCellDataContainer { + BIT3 pd, + uint5_t cd_length, + octetstring container_data + } with { + variant (cd_length) "LENGTHTO (container_data)" + }; + type record of PacketNeighbourCellDataContainer PacketNeighbourCellDataContainerList + type record PacketNeighbourCellData { + PageMode page_mode, + BIT1 zero ('0'B), + GlobalTfi gtfi, + uint2_t container_id, + BIT1 spare ('0'B), + uint5_t container_index, + BIT1 arfcn_bsic_presence, + uint10_t arfcn optional, + uint6_t bsic optional, + PacketNeighbourCellDataContainerList contaner_list + } with { + variant (arfcn) "PRESENCE(arfcn_bsic_presence = '1'B)" + variant (bsic) "PRESENCE(arfcn_bsic_presence = '1'B)" + }; + /* 11.2.0.1 */ type union RlcmacDlCtrlUnion { PacketDlAssignment dl_assignment, @@ -594,6 +636,8 @@ PacketUlAckNack ul_ack_nack, PacketDlDummy dl_dummy, PacketPwrControlTA pwr_ta, + PacketCellChangeContinue cell_chg_continue, + PacketNeighbourCellData neighbour_cell_data, octetstring other } with { variant "" }; @@ -607,6 +651,8 @@ ul_ack_nack, msg_type = PACKET_UL_ACK_NACK; dl_dummy, msg_type = PACKET_DL_DUMMY_CTRL; pwr_ta, msg_type = PACKET_PWR_CONTROL_TA; + cell_chg_continue,msg_type = PACKET_CELL_CHANGE_CONTINUE; + neighbour_cell_data,msg_type = PACKET_NEIGHBOUR_CELL_DATA; other, OTHERWISE )" }; @@ -755,14 +801,51 @@ variant (sign_var) "PRESENCE(sign_var_presence = '1'B)" }; + /* 11.2.3a Packet Cell Change Notification */ + type record NCMeasurementItem { + uint6_t freq, + BIT1 bsic_presence, + uint6_t bsic optional, + uint6_t rxlev + } with { + variant (bsic) "PRESENCE(bsic_presence = '1'B)" + }; + type record of NCMeasurementItem NCMeasurements; + type record CCNMesurementReport { + uint6_t rxlev_servig_cell, + BIT1 zero ('0'B), + uint3_t num_meas, + NCMeasurements meas + } with { variant "" }; + type record PacketCellChangeNotification { + GlobalTfi gtfi, + /* TODO: support 3g/4g in these bits */ + BIT1 arfcn_bsic_presence, + uint10_t arfcn optional, + uint6_t bsic optional, + BIT1 ba_psi3_presence, + BIT1 ba_used optional, + BIT2 psi3_change_mark optional, + BIT1 pmo_used, + BIT1 pccn_sending, + CCNMesurementReport ccn_meas_rep + /* TODO: Rel6 additions for 3G support */ + } with { + variant (arfcn) "PRESENCE(arfcn_bsic_presence = '0'B)" + variant (bsic) "PRESENCE(arfcn_bsic_presence = '0'B)" + variant (ba_used) "PRESENCE(ba_psi3_presence = '0'B)" + variant (psi3_change_mark) "PRESENCE(ba_psi3_presence = '1'B)" + }; + /* 11.2.0.2 */ type union RlcmacUlCtrlUnion { - PacketCtrlAck ctrl_ack, - PacketDlAckNack dl_ack_nack, - EgprsPacketDlAckNack dl_ack_nack_egprs, - PacketUlDummy ul_dummy, - PacketResourceReq resource_req, - octetstring other + PacketCtrlAck ctrl_ack, + PacketDlAckNack dl_ack_nack, + EgprsPacketDlAckNack dl_ack_nack_egprs, + PacketUlDummy ul_dummy, + PacketResourceReq resource_req, + PacketCellChangeNotification cell_chg_notif, + octetstring other } with { variant "" }; type record RlcmacUlCtrlMsg { @@ -774,6 +857,7 @@ dl_ack_nack_egprs, msg_type = PACKET_EGPRS_DL_ACK_NACK; ul_dummy, msg_type = PACKET_UL_DUMMY_CTRL; resource_req, msg_type = PACKET_RESOURCE_REQUEST; + cell_chg_notif, msg_type = PACKET_CELL_CHANGE_NOTIFICATION; other, OTHERWISE )" }; -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22058 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I4d2f123479c34e6afffe0bc8d91409e6b0529a62 Gerrit-Change-Number: 22058 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 8 16:25:28 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Fri, 8 Jan 2021 16:25:28 +0000 Subject: Change in osmo-bts[master]: l1sap: include Uplink RSSI and C/I in GSMTAP packets In-Reply-To: References: Message-ID: Hoernchen has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21935 ) Change subject: l1sap: include Uplink RSSI and C/I in GSMTAP packets ...................................................................... Patch Set 2: I don't know what to do here, osmo-trx can't really measure the rssi because even though uhd exposes it as a sensor and reading it takes multiple timeslots so it's useless, while snr was never really properly specified, is it rssi of used ts vs rssi of unused ts? is it supposed to be c/i? -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21935 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic48283fa76b682aee151a94ef7274ac96545e087 Gerrit-Change-Number: 21935 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Fri, 08 Jan 2021 16:25:28 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 8 16:26:20 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 8 Jan 2021 16:26:20 +0000 Subject: Change in libosmocore[master]: Intoduce Packet Switch CGI In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22013 to look at the new patch set (#6). Change subject: Intoduce Packet Switch CGI ...................................................................... Intoduce Packet Switch CGI This structure is needed in order to identify a given cell within the BSS during RIM transactions. The naming was made up by myself since I couldn't find any naming reference for this kind of data (RAI + CI). Since LAI + CI = CGI, then RAI + CI = CGI-PS osmo_rai_name2 family of functions get a "2" suffix due to already existing functions handling struct struct gprs_ra_id in gsm48.h Change-Id: If48f412c32e8e5a3e604a78d12b74787a4786374 --- M include/osmocom/gsm/gsm0808_utils.h M include/osmocom/gsm/gsm23003.h M include/osmocom/gsm/protocol/gsm_08_08.h M src/gsm/gsm0808_utils.c M src/gsm/gsm23003.c M src/gsm/libosmogsm.map 6 files changed, 136 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/13/22013/6 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22013 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If48f412c32e8e5a3e604a78d12b74787a4786374 Gerrit-Change-Number: 22013 Gerrit-PatchSet: 6 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 8 16:29:15 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 8 Jan 2021 16:29:15 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: add utilities to send and parse BSSGP rim PDUs In-Reply-To: References: Message-ID: Hello Jenkins Builder, fixeria, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22046 to look at the new patch set (#2). Change subject: gprs_bssgp: add utilities to send and parse BSSGP rim PDUs ...................................................................... gprs_bssgp: add utilities to send and parse BSSGP rim PDUs At the moment libosmogb offers no convinient way to send RIM PDUs. Also parsing an incoming RIM messages into destination, source routing info and RIM container is not available. Change-Id: I18134fd9938040d2facb6beee3732628b167ce8c Related: SYS#5103 --- M include/osmocom/gprs/gprs_bssgp.h M src/gb/gprs_bssgp.c M src/gb/gprs_bssgp_util.c M src/gb/libosmogb.map 4 files changed, 144 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/46/22046/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22046 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I18134fd9938040d2facb6beee3732628b167ce8c Gerrit-Change-Number: 22046 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 8 16:30:42 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 8 Jan 2021 16:30:42 +0000 Subject: Change in libosmocore[master]: Intoduce Packet Switch CGI In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22013 ) Change subject: Intoduce Packet Switch CGI ...................................................................... Patch Set 6: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22013 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If48f412c32e8e5a3e604a78d12b74787a4786374 Gerrit-Change-Number: 22013 Gerrit-PatchSet: 6 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 08 Jan 2021 16:30:42 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 8 16:31:55 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 8 Jan 2021 16:31:55 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: add utilities to send and parse BSSGP rim PDUs In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22046 ) Change subject: gprs_bssgp: add utilities to send and parse BSSGP rim PDUs ...................................................................... Patch Set 2: (8 comments) (make sure all comments are sent) https://gerrit.osmocom.org/c/libosmocore/+/22046/1/include/osmocom/gprs/gprs_bssgp.h File include/osmocom/gprs/gprs_bssgp.h: https://gerrit.osmocom.org/c/libosmocore/+/22046/1/include/osmocom/gprs/gprs_bssgp.h at 45 PS1, Line 45: struct bssgp_ran_information_pdu { > shouldn't this be incorporated into struct osmo_bssgp_prim somehow? Done https://gerrit.osmocom.org/c/libosmocore/+/22046/1/src/gb/gprs_bssgp_util.c File src/gb/gprs_bssgp_util.c: https://gerrit.osmocom.org/c/libosmocore/+/22046/1/src/gb/gprs_bssgp_util.c at 593 PS1, Line 593: struct bssgp_ran_information_pdu *pdu > const Done https://gerrit.osmocom.org/c/libosmocore/+/22046/1/src/gb/gprs_bssgp_util.c at 621 PS1, Line 621: LOGL_NOTICE > DEBUG? Done https://gerrit.osmocom.org/c/libosmocore/+/22046/1/src/gb/gprs_bssgp_util.c at 644 PS1, Line 644: struct msgb *msg > const Done https://gerrit.osmocom.org/c/libosmocore/+/22046/1/src/gb/gprs_bssgp_util.c at 653 PS1, Line 653: data_len > I would better check if the resulting length is not negative. Done https://gerrit.osmocom.org/c/libosmocore/+/22046/1/src/gb/gprs_bssgp_util.c at 661 PS1, Line 661: pdu->routing_info_dest = > Cosmetic: no need for line breaks here. Done https://gerrit.osmocom.org/c/libosmocore/+/22046/1/src/gb/gprs_bssgp_util.c at 672 PS1, Line 672: 0 > Wrong index, it should be 1! Done https://gerrit.osmocom.org/c/libosmocore/+/22046/1/src/gb/gprs_bssgp_util.c at 704 PS1, Line 704: return 0; > Makes sense to check if the IEs are not empty. Done -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22046 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I18134fd9938040d2facb6beee3732628b167ce8c Gerrit-Change-Number: 22046 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 08 Jan 2021 16:31:55 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Comment-In-Reply-To: fixeria Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 8 17:06:22 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 8 Jan 2021 17:06:22 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: add utilities to send and parse BSSGP rim PDUs In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22046 ) Change subject: gprs_bssgp: add utilities to send and parse BSSGP rim PDUs ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/22046/2/include/osmocom/gprs/gprs_bssgp.h File include/osmocom/gprs/gprs_bssgp.h: https://gerrit.osmocom.org/c/libosmocore/+/22046/2/include/osmocom/gprs/gprs_bssgp.h at 45 PS2, Line 45: struct bssgp_ran_information_pdu { I'm not really liking the current approach with one struct having pointers to already encoded IEs, it's kind of cumbersome because you have to iteratively encode stuff and store it in temporary buffers in code using it. See for instance the draft I wrote for osmo-pcu: """ static void fill_rim_ri(struct bssgp_rim_routing_info *info, const struct osmo_cell_global_id_ps *cgi_ps) { *info = { .discr = BSSGP_RIM_ROUTING_INFO_GERAN, .geran = { .raid = { .mcc = cgi_ps->rai.lac.plmn.mcc, .mnc = cgi_ps->rai.lac.plmn.mnc, .mnc_3_digits = cgi_ps->rai.lac.plmn.mnc_3_digits, .lac = cgi_ps->rai.lac.lac, .rac = cgi_ps->rai.rac, }, .cid = cgi_ps->cell_identity, }, }; } static struct ran_information_pdu *gen_rim_ran_info_req(struct nacc_fsm_ctx *ctx) { struct ran_information_pdu *req = talloc_zero(ctx, struct ran_information_pdu); struct gprs_rlcmac_bts *bts = bts_data(ctx->ms->bts); struct bssgp_rim_routing_info src, dst; uint8_t *src_buf = talloc_size(ctx, 64); uint8_t *dst_buf = talloc_size(ctx, 64); uint8_t *cont_buf = talloc_size(ctx, 64); int rc, src_len, dst_len, cont_len; fill_rim_ri(&dst, ctx->cgi_ps); dst_len = bssgp_create_rim_ri(dst_buf, &dst); if (dst_len <= 0) goto err_ret; memset(&src, 0, sizeof(src)); //TODO: fill correctly from BTS data src->discr = BSSGP_RIM_ROUTING_INFO_GERAN; src_len = bssgp_create_rim_ri(src_buf, &src); if (src_len <= 0) goto err_ret; struct bssgp_ran_inf_req_rim_cont cont = { .app_id = BSSGP_RAN_INF_APP_ID_NACC; .seq_num = 1; .pdu_ind.ack_requested = 0; .pdu_ind.pdu_type_ext = 1; .prot_ver = 1; .son_trans_app_id = NULL; .son_trans_app_id_len = 0; .u = { .app_cont_nacc = { .reprt_cell = { .raid = { .mcc = ctx->cgi_ps.rai.lac.plmn.mcc, .mnc = ctx->cgi_ps.rai.lac.plmn.mnc, .mnc_3_digits = false, //FIXME, how to say true/false here? .lac = ctx->cgi_ps.rai.lac.lac, .rac= ctx->cgi_ps.rai.rac, }, .cid = bts->cell_id, }, }, }, }; cont_len = bssgp_enc_ran_inf_req_rim_cont(cont_buf, 64, &cont); if (cont_len <= 0) goto err_ret; struct ran_information_pdu rim = { .bssgp_pdu_type = BSSGP_PDUT_RAN_INFO_REQ, .d_cid = dst_buf, .d_cid_len = dst_len, .s_cid = src_buf, .s_cid_len = src_len, .rim_cont = cont, .rim_cont_len = cont_len, .rim_cont_iei = 0x57, } return req; err_ret: talloc_free(req); return NULL; } """ So why not having the relevant decoded structs (such as struct bssgp_rim_routing_info) into the struct and do the encoding in 1 pass insterad of having several passes? Same as per decoding. I would expect the decode function to already provide me with 1 full struct with all protocol related parts decoded. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22046 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I18134fd9938040d2facb6beee3732628b167ce8c Gerrit-Change-Number: 22046 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 08 Jan 2021 17:06:22 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 8 17:09:20 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 8 Jan 2021 17:09:20 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: add utilities to send and parse BSSGP rim PDUs In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22046 ) Change subject: gprs_bssgp: add utilities to send and parse BSSGP rim PDUs ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/22046/2/include/osmocom/gprs/gprs_bssgp.h File include/osmocom/gprs/gprs_bssgp.h: https://gerrit.osmocom.org/c/libosmocore/+/22046/2/include/osmocom/gprs/gprs_bssgp.h at 45 PS2, Line 45: struct bssgp_ran_information_pdu { > I'm not really liking the current approach with one struct having pointers to already encoded IEs, i [?] struct bssgp_ran_information_pdu { struct bssgp_rim_routing_info dst; struct bssgp_rim_routing_info src; enum rim_container_type cont_type; union { struct struct bssgp_ran_inf_req_rim_cont ran_info_req; }; } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22046 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I18134fd9938040d2facb6beee3732628b167ce8c Gerrit-Change-Number: 22046 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 08 Jan 2021 17:09:20 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 8 19:21:13 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 8 Jan 2021 19:21:13 +0000 Subject: Change in osmo-bts[master]: power_control: use more reasonable reduce step size References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/22079 ) Change subject: power_control: use more reasonable reduce step size ...................................................................... power_control: use more reasonable reduce step size It makes more sense to use a reduce step size that is smaller than the increase step size. This way both MS/BS power control loops would be able to react quickly of the signal gets weaker, while the good signal would not trigger radical power reduction. Change-Id: Ie358fd828a68bfa1d23559197e8df8478fb4535e Related: SYS#4918 --- M include/osmo-bts/power_control.h M src/common/gsm_data.c M tests/power/bs_power_loop_test.c M tests/power/bs_power_loop_test.err M tests/power/bs_power_loop_test.ok M tests/power/ms_power_loop_test.err M tests/power/ms_power_loop_test.ok 7 files changed, 124 insertions(+), 85 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/79/22079/1 diff --git a/include/osmo-bts/power_control.h b/include/osmo-bts/power_control.h index ab107b8..f2e14cf 100644 --- a/include/osmo-bts/power_control.h +++ b/include/osmo-bts/power_control.h @@ -3,10 +3,6 @@ #include #include -/* How many dB do we raise/lower power as maximum */ -#define PWR_RAISE_MAX_DB 4 -#define PWR_LOWER_MAX_DB 8 - int lchan_ms_pwr_ctrl(struct gsm_lchan *lchan, const uint8_t ms_power_lvl, const int8_t ul_rssi_dbm); diff --git a/src/common/gsm_data.c b/src/common/gsm_data.c index 44ed7e9..b3f9f2d 100644 --- a/src/common/gsm_data.c +++ b/src/common/gsm_data.c @@ -423,9 +423,9 @@ /* Default MS/BS Power Control parameters (see 3GPP TS 45.008, table A.1) */ const struct gsm_power_ctrl_params power_ctrl_params_def = { - /* Power increasing/reducing step size */ - .inc_step_size_db = 4, /* FIXME: PWR_RAISE_MAX_DB */ - .red_step_size_db = 8, /* FIXME: PWR_LOWER_MAX_DB */ + /* Power increasing/reducing step size (optimal defaults) */ + .inc_step_size_db = 4, /* quickly increase MS/BS power */ + .red_step_size_db = 2, /* slowly decrease MS/BS power */ /* RxLev measurement parameters */ .rxlev_meas = { diff --git a/tests/power/bs_power_loop_test.c b/tests/power/bs_power_loop_test.c index ecd83e7..06b53da 100644 --- a/tests/power/bs_power_loop_test.c +++ b/tests/power/bs_power_loop_test.c @@ -197,16 +197,17 @@ init_test(name); struct gsm_lchan *lchan = &g_trx->ts[0].lchan[0]; + struct gsm_power_ctrl_params *params = &lchan->bs_dpc_params; - lchan->bs_dpc_params = (struct gsm_power_ctrl_params) { - /* NOTE: raise/lower values are intentionally swapped here, - * as it makes more sense in the context of BS Power Control. */ - .inc_step_size_db = PWR_LOWER_MAX_DB, - .red_step_size_db = PWR_RAISE_MAX_DB, + /* Default BS power control parameters */ + memcpy(params, &power_ctrl_params_def, sizeof(*params)); - /* RxLev pre-processing parameters */ - .rxlev_meas = { PWR_TEST_CFG_RXLEV_THRESH(0) }, - }; + /* No RxLev hysteresis: lower == upper */ + params->rxlev_meas.lower_thresh = PWR_TEST_RXLEV_TARGET; + params->rxlev_meas.upper_thresh = PWR_TEST_RXLEV_TARGET; + + /* No RxLev pre-processing by default */ + params->rxlev_meas.algo = GSM_PWR_CTRL_MEAS_AVG_ALGO_NONE; for (n = 0; n < num_steps; n++) rc |= exec_power_step(lchan, n, &steps[n]); @@ -249,17 +250,24 @@ { .type = PWR_TEST_ST_SET_STATE, .state = { .current = 0, .max = 2 * 10 } }, - /* MS indicates high RxLev values (-50 dBm) */ + /* MS indicates high RxLev values (-50 dBm), inc step is 2 dB */ + { .meas = DL_MEAS_FULL_SUB(0, 60), .exp_txred = 2 }, { .meas = DL_MEAS_FULL_SUB(0, 60), .exp_txred = 4 }, + { .meas = DL_MEAS_FULL_SUB(0, 60), .exp_txred = 6 }, { .meas = DL_MEAS_FULL_SUB(0, 60), .exp_txred = 8 }, + { .meas = DL_MEAS_FULL_SUB(0, 60), .exp_txred = 10 }, { .meas = DL_MEAS_FULL_SUB(0, 60), .exp_txred = 12 }, + { .meas = DL_MEAS_FULL_SUB(0, 60), .exp_txred = 14 }, { .meas = DL_MEAS_FULL_SUB(0, 60), .exp_txred = 16 }, + { .meas = DL_MEAS_FULL_SUB(0, 60), .exp_txred = 18 }, { .meas = DL_MEAS_FULL_SUB(0, 60), .exp_txred = 20 }, /* max */ { .meas = DL_MEAS_FULL_SUB(0, 60), .exp_txred = 20 }, /* max */ { .meas = DL_MEAS_FULL_SUB(0, 60), .exp_txred = 20 }, /* max */ - /* MS indicates low RxLev values (-100 dBm) */ + /* MS indicates low RxLev values (-100 dBm), red step is 4 dB */ + { .meas = DL_MEAS_FULL_SUB(0, 10), .exp_txred = 16 }, { .meas = DL_MEAS_FULL_SUB(0, 10), .exp_txred = 12 }, + { .meas = DL_MEAS_FULL_SUB(0, 10), .exp_txred = 8 }, { .meas = DL_MEAS_FULL_SUB(0, 10), .exp_txred = 4 }, { .meas = DL_MEAS_FULL_SUB(0, 10), .exp_txred = 0 }, /* min */ { .meas = DL_MEAS_FULL_SUB(0, 10), .exp_txred = 0 }, /* min */ @@ -341,8 +349,8 @@ /* Hysteresis is not enabled, so small deviations trigger oscillations */ { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET + 1), .exp_txred = 13 }, { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET - 2), .exp_txred = 11 }, - { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET + 3), .exp_txred = 14 }, - { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET - 2), .exp_txred = 12 }, + { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET + 3), .exp_txred = 13 }, + { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET - 2), .exp_txred = 11 }, /* Enable hysteresis */ { .type = PWR_TEST_ST_SET_RXLEV_PARAMS, @@ -350,10 +358,10 @@ }, /* Hysteresis is enabled, so small deviations do not trigger any changes */ - { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET + 1), .exp_txred = 12 }, - { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET - 2), .exp_txred = 12 }, - { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET + 3), .exp_txred = 12 }, - { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET - 2), .exp_txred = 12 }, + { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET + 1), .exp_txred = 11 }, + { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET - 2), .exp_txred = 11 }, + { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET + 3), .exp_txred = 11 }, + { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET - 2), .exp_txred = 11 }, }; /* Verify EWMA based power filtering. */ @@ -381,8 +389,8 @@ { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET - 4), .exp_txred = 11 }, /* Avg[t] = (0.5 * 35) + (0.5 * 27) = 31, so delta is 1 */ { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET + 5), .exp_txred = 12 }, - /* Avg[t] = (0.5 * 35) + (0.5 * 31) = 33, so delta is 3 */ - { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET + 5), .exp_txred = 15 }, + /* Avg[t] = (0.5 * 35) + (0.5 * 31) = 33, so delta is 3, but red step size is 2 dB */ + { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET + 5), .exp_txred = 14 }, }; int main(int argc, char **argv) diff --git a/tests/power/bs_power_loop_test.err b/tests/power/bs_power_loop_test.err index 43063c0..20d2133 100644 --- a/tests/power/bs_power_loop_test.err +++ b/tests/power/bs_power_loop_test.err @@ -7,29 +7,43 @@ (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL (bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, target -80 dBm, delta 0 dB) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 0 -> 4 dB (maximum 20 dB, target -80 dBm, delta -4 dB) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 0 -> 2 dB (maximum 20 dB, target -80 dBm, delta -2 dB) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 4 -> 8 dB (maximum 20 dB, target -80 dBm, delta -4 dB) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 2 -> 4 dB (maximum 20 dB, target -80 dBm, delta -2 dB) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 8 -> 12 dB (maximum 20 dB, target -80 dBm, delta -4 dB) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 4 -> 6 dB (maximum 20 dB, target -80 dBm, delta -2 dB) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 12 -> 16 dB (maximum 20 dB, target -80 dBm, delta -4 dB) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 6 -> 8 dB (maximum 20 dB, target -80 dBm, delta -2 dB) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 16 -> 20 dB (maximum 20 dB, target -80 dBm, delta -4 dB) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 8 -> 10 dB (maximum 20 dB, target -80 dBm, delta -2 dB) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 20 dB (maximum 20 dB, target -80 dBm, delta -4 dB) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 10 -> 12 dB (maximum 20 dB, target -80 dBm, delta -2 dB) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 20 dB (maximum 20 dB, target -80 dBm, delta -4 dB) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 12 -> 14 dB (maximum 20 dB, target -80 dBm, delta -2 dB) +(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 14 -> 16 dB (maximum 20 dB, target -80 dBm, delta -2 dB) +(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 16 -> 18 dB (maximum 20 dB, target -80 dBm, delta -2 dB) +(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 18 -> 20 dB (maximum 20 dB, target -80 dBm, delta -2 dB) +(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 20 dB (maximum 20 dB, target -80 dBm, delta -2 dB) +(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 20 dB (maximum 20 dB, target -80 dBm, delta -2 dB) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 20 -> 12 dB (maximum 20 dB, target -80 dBm, delta 8 dB) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 20 -> 16 dB (maximum 20 dB, target -80 dBm, delta 4 dB) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 12 -> 4 dB (maximum 20 dB, target -80 dBm, delta 8 dB) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 16 -> 12 dB (maximum 20 dB, target -80 dBm, delta 4 dB) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 4 -> 0 dB (maximum 20 dB, target -80 dBm, delta 8 dB) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 12 -> 8 dB (maximum 20 dB, target -80 dBm, delta 4 dB) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, target -80 dBm, delta 8 dB) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 8 -> 4 dB (maximum 20 dB, target -80 dBm, delta 4 dB) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, target -80 dBm, delta 8 dB) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 4 -> 0 dB (maximum 20 dB, target -80 dBm, delta 4 dB) +(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, target -80 dBm, delta 4 dB) +(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, target -80 dBm, delta 4 dB) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL (bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, target -80 dBm, delta 0 dB) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL @@ -77,17 +91,17 @@ (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(28), RXQUAL-FULL(0), RXLEV-SUB(28), RXQUAL-SUB(0), DTx is disabled => using FULL (bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 13 -> 11 dB (maximum 16 dB, target -80 dBm, delta 2 dB) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(33), RXQUAL-FULL(0), RXLEV-SUB(33), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 11 -> 14 dB (maximum 16 dB, target -80 dBm, delta -3 dB) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 11 -> 13 dB (maximum 16 dB, target -80 dBm, delta -2 dB) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(28), RXQUAL-FULL(0), RXLEV-SUB(28), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 14 -> 12 dB (maximum 16 dB, target -80 dBm, delta 2 dB) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 13 -> 11 dB (maximum 16 dB, target -80 dBm, delta 2 dB) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(31), RXQUAL-FULL(0), RXLEV-SUB(31), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 12 dB (maximum 16 dB, target -80 dBm, delta 0 dB) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 11 dB (maximum 16 dB, target -80 dBm, delta 0 dB) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(28), RXQUAL-FULL(0), RXLEV-SUB(28), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 12 dB (maximum 16 dB, target -80 dBm, delta 0 dB) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 11 dB (maximum 16 dB, target -80 dBm, delta 0 dB) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(33), RXQUAL-FULL(0), RXLEV-SUB(33), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 12 dB (maximum 16 dB, target -80 dBm, delta 0 dB) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 11 dB (maximum 16 dB, target -80 dBm, delta 0 dB) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(28), RXQUAL-FULL(0), RXLEV-SUB(28), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 12 dB (maximum 16 dB, target -80 dBm, delta 0 dB) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 11 dB (maximum 16 dB, target -80 dBm, delta 0 dB) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL (bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 30 dB, target -80 dBm, delta 0 dB) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL @@ -99,4 +113,4 @@ (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(35), RXQUAL-FULL(0), RXLEV-SUB(35), RXQUAL-SUB(0), DTx is disabled => using FULL (bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 11 -> 12 dB (maximum 30 dB, target -80 dBm, delta -1 dB) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(35), RXQUAL-FULL(0), RXLEV-SUB(35), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 12 -> 15 dB (maximum 30 dB, target -80 dBm, delta -3 dB) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 12 -> 14 dB (maximum 30 dB, target -80 dBm, delta -2 dB) diff --git a/tests/power/bs_power_loop_test.ok b/tests/power/bs_power_loop_test.ok index 814f7e2..804f5c6 100644 --- a/tests/power/bs_power_loop_test.ok +++ b/tests/power/bs_power_loop_test.ok @@ -40,40 +40,61 @@ #00 exec_power_step() <- State (re)set (current 0 dB, max 20 dB) #01 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0) #01 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 3c 3c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -#01 lchan_bs_pwr_ctrl() -> BS power reduction: 0 -> 4 (expected 4) +#01 lchan_bs_pwr_ctrl() -> BS power reduction: 0 -> 2 (expected 2) #02 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0) #02 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 3c 3c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -#02 lchan_bs_pwr_ctrl() -> BS power reduction: 4 -> 8 (expected 8) +#02 lchan_bs_pwr_ctrl() -> BS power reduction: 2 -> 4 (expected 4) #03 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0) #03 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 3c 3c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -#03 lchan_bs_pwr_ctrl() -> BS power reduction: 8 -> 12 (expected 12) +#03 lchan_bs_pwr_ctrl() -> BS power reduction: 4 -> 6 (expected 6) #04 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0) #04 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 3c 3c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -#04 lchan_bs_pwr_ctrl() -> BS power reduction: 12 -> 16 (expected 16) +#04 lchan_bs_pwr_ctrl() -> BS power reduction: 6 -> 8 (expected 8) #05 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0) #05 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 3c 3c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -#05 lchan_bs_pwr_ctrl() -> BS power reduction: 16 -> 20 (expected 20) +#05 lchan_bs_pwr_ctrl() -> BS power reduction: 8 -> 10 (expected 10) #06 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0) #06 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 3c 3c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -#06 lchan_bs_pwr_ctrl() -> BS power reduction: 20 -> 20 (expected 20) +#06 lchan_bs_pwr_ctrl() -> BS power reduction: 10 -> 12 (expected 12) #07 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0) #07 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 3c 3c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -#07 lchan_bs_pwr_ctrl() -> BS power reduction: 20 -> 20 (expected 20) -#08 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0) -#08 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 0a 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -#08 lchan_bs_pwr_ctrl() -> BS power reduction: 20 -> 12 (expected 12) -#09 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0) -#09 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 0a 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -#09 lchan_bs_pwr_ctrl() -> BS power reduction: 12 -> 4 (expected 4) -#10 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0) -#10 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 0a 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -#10 lchan_bs_pwr_ctrl() -> BS power reduction: 4 -> 0 (expected 0) -#11 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0) -#11 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 0a 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -#11 lchan_bs_pwr_ctrl() -> BS power reduction: 0 -> 0 (expected 0) -#12 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0) -#12 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 0a 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -#12 lchan_bs_pwr_ctrl() -> BS power reduction: 0 -> 0 (expected 0) +#07 lchan_bs_pwr_ctrl() -> BS power reduction: 12 -> 14 (expected 14) +#08 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0) +#08 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 3c 3c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +#08 lchan_bs_pwr_ctrl() -> BS power reduction: 14 -> 16 (expected 16) +#09 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0) +#09 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 3c 3c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +#09 lchan_bs_pwr_ctrl() -> BS power reduction: 16 -> 18 (expected 18) +#10 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0) +#10 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 3c 3c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +#10 lchan_bs_pwr_ctrl() -> BS power reduction: 18 -> 20 (expected 20) +#11 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0) +#11 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 3c 3c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +#11 lchan_bs_pwr_ctrl() -> BS power reduction: 20 -> 20 (expected 20) +#12 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0) +#12 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 3c 3c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +#12 lchan_bs_pwr_ctrl() -> BS power reduction: 20 -> 20 (expected 20) +#13 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0) +#13 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 0a 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +#13 lchan_bs_pwr_ctrl() -> BS power reduction: 20 -> 16 (expected 16) +#14 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0) +#14 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 0a 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +#14 lchan_bs_pwr_ctrl() -> BS power reduction: 16 -> 12 (expected 12) +#15 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0) +#15 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 0a 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +#15 lchan_bs_pwr_ctrl() -> BS power reduction: 12 -> 8 (expected 8) +#16 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0) +#16 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 0a 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +#16 lchan_bs_pwr_ctrl() -> BS power reduction: 8 -> 4 (expected 4) +#17 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0) +#17 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 0a 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +#17 lchan_bs_pwr_ctrl() -> BS power reduction: 4 -> 0 (expected 0) +#18 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0) +#18 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 0a 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +#18 lchan_bs_pwr_ctrl() -> BS power reduction: 0 -> 0 (expected 0) +#19 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0) +#19 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 0a 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +#19 lchan_bs_pwr_ctrl() -> BS power reduction: 0 -> 0 (expected 0) Test case verdict: SUCCESS Starting test case 'TC_dtxd_mode' @@ -172,23 +193,23 @@ #02 lchan_bs_pwr_ctrl() -> BS power reduction: 13 -> 11 (expected 11) #03 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(33), RXQUAL-FULL(0), RXLEV-SUB(33), RXQUAL-SUB(0) #03 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 21 21 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -#03 lchan_bs_pwr_ctrl() -> BS power reduction: 11 -> 14 (expected 14) +#03 lchan_bs_pwr_ctrl() -> BS power reduction: 11 -> 13 (expected 13) #04 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(28), RXQUAL-FULL(0), RXLEV-SUB(28), RXQUAL-SUB(0) #04 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 1c 1c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -#04 lchan_bs_pwr_ctrl() -> BS power reduction: 14 -> 12 (expected 12) +#04 lchan_bs_pwr_ctrl() -> BS power reduction: 13 -> 11 (expected 11) #05 exec_power_step() <- (Re)set RxLev params (thresh 27 .. 33, averaging is disabled) #06 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(31), RXQUAL-FULL(0), RXLEV-SUB(31), RXQUAL-SUB(0) #06 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 1f 1f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -#06 lchan_bs_pwr_ctrl() -> BS power reduction: 12 -> 12 (expected 12) +#06 lchan_bs_pwr_ctrl() -> BS power reduction: 11 -> 11 (expected 11) #07 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(28), RXQUAL-FULL(0), RXLEV-SUB(28), RXQUAL-SUB(0) #07 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 1c 1c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -#07 lchan_bs_pwr_ctrl() -> BS power reduction: 12 -> 12 (expected 12) +#07 lchan_bs_pwr_ctrl() -> BS power reduction: 11 -> 11 (expected 11) #08 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(33), RXQUAL-FULL(0), RXLEV-SUB(33), RXQUAL-SUB(0) #08 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 21 21 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -#08 lchan_bs_pwr_ctrl() -> BS power reduction: 12 -> 12 (expected 12) +#08 lchan_bs_pwr_ctrl() -> BS power reduction: 11 -> 11 (expected 11) #09 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(28), RXQUAL-FULL(0), RXLEV-SUB(28), RXQUAL-SUB(0) #09 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 1c 1c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -#09 lchan_bs_pwr_ctrl() -> BS power reduction: 12 -> 12 (expected 12) +#09 lchan_bs_pwr_ctrl() -> BS power reduction: 11 -> 11 (expected 11) Test case verdict: SUCCESS Starting test case 'TC_rxlev_pf_ewma' @@ -211,5 +232,5 @@ #06 lchan_bs_pwr_ctrl() -> BS power reduction: 11 -> 12 (expected 12) #07 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(35), RXQUAL-FULL(0), RXLEV-SUB(35), RXQUAL-SUB(0) #07 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 23 23 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -#07 lchan_bs_pwr_ctrl() -> BS power reduction: 12 -> 15 (expected 15) +#07 lchan_bs_pwr_ctrl() -> BS power reduction: 12 -> 14 (expected 14) Test case verdict: SUCCESS diff --git a/tests/power/ms_power_loop_test.err b/tests/power/ms_power_loop_test.err index cf43081..7f8779c 100644 --- a/tests/power/ms_power_loop_test.err +++ b/tests/power/ms_power_loop_test.err @@ -14,12 +14,12 @@ (bts=0,trx=0,ts=0,ss=0) Raising MS power from control level 30 (34 dBm) to 29, 36 dBm (rx-ms-pwr-lvl 30, max-ms-pwr-lvl 29, rx-current -90 dBm, rx-target -75 dBm) (bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 29, 36 dBm (rx-ms-pwr-lvl 29, max-ms-pwr-lvl 29, rx-current -90 dBm, rx-target -75 dBm) (bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 29, 36 dBm (rx-ms-pwr-lvl 29, max-ms-pwr-lvl 29, rx-current -75 dBm, rx-target -75 dBm) -(bts=0,trx=0,ts=0,ss=0) Lowering MS power from control level 29 (36 dBm) to 1, 28 dBm (rx-ms-pwr-lvl 29, max-ms-pwr-lvl 29, rx-current -45 dBm, rx-target -75 dBm) -(bts=0,trx=0,ts=0,ss=0) Lowering MS power from control level 1 (28 dBm) to 5, 20 dBm (rx-ms-pwr-lvl 1, max-ms-pwr-lvl 29, rx-current -45 dBm, rx-target -75 dBm) -(bts=0,trx=0,ts=0,ss=0) Lowering MS power from control level 5 (20 dBm) to 9, 12 dBm (rx-ms-pwr-lvl 5, max-ms-pwr-lvl 29, rx-current -45 dBm, rx-target -75 dBm) -(bts=0,trx=0,ts=0,ss=0) Lowering MS power from control level 9 (12 dBm) to 10, 10 dBm (rx-ms-pwr-lvl 9, max-ms-pwr-lvl 29, rx-current -73 dBm, rx-target -75 dBm) -(bts=0,trx=0,ts=0,ss=0) Raising MS power from control level 10 (10 dBm) to 9, 12 dBm (rx-ms-pwr-lvl 10, max-ms-pwr-lvl 29, rx-current -77 dBm, rx-target -75 dBm) -(bts=0,trx=0,ts=0,ss=0) Lowering MS power from control level 9 (12 dBm) to 14, 2 dBm (rx-ms-pwr-lvl 9, max-ms-pwr-lvl 14, rx-current -73 dBm, rx-target -75 dBm) +(bts=0,trx=0,ts=0,ss=0) Lowering MS power from control level 29 (36 dBm) to 30, 34 dBm (rx-ms-pwr-lvl 29, max-ms-pwr-lvl 29, rx-current -45 dBm, rx-target -75 dBm) +(bts=0,trx=0,ts=0,ss=0) Lowering MS power from control level 30 (34 dBm) to 31, 32 dBm (rx-ms-pwr-lvl 30, max-ms-pwr-lvl 29, rx-current -45 dBm, rx-target -75 dBm) +(bts=0,trx=0,ts=0,ss=0) Lowering MS power from control level 31 (32 dBm) to 0, 30 dBm (rx-ms-pwr-lvl 31, max-ms-pwr-lvl 29, rx-current -45 dBm, rx-target -75 dBm) +(bts=0,trx=0,ts=0,ss=0) Lowering MS power from control level 0 (30 dBm) to 1, 28 dBm (rx-ms-pwr-lvl 0, max-ms-pwr-lvl 29, rx-current -73 dBm, rx-target -75 dBm) +(bts=0,trx=0,ts=0,ss=0) Raising MS power from control level 1 (28 dBm) to 0, 30 dBm (rx-ms-pwr-lvl 1, max-ms-pwr-lvl 29, rx-current -77 dBm, rx-target -75 dBm) +(bts=0,trx=0,ts=0,ss=0) Lowering MS power from control level 0 (30 dBm) to 14, 2 dBm (rx-ms-pwr-lvl 0, max-ms-pwr-lvl 14, rx-current -73 dBm, rx-target -75 dBm) (bts=0,trx=0,ts=0,ss=0) Lowering MS power from control level 14 (2 dBm) to 15, 0 dBm (rx-ms-pwr-lvl 14, max-ms-pwr-lvl 0, rx-current -40 dBm, rx-target -75 dBm) (bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15, 0 dBm (rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, rx-current -75 dBm, rx-target -75 dBm) (bts=0,trx=0,ts=0,ss=0) Raising MS power from control level 15 (0 dBm) to 13, 3 dBm (rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, rx-current -90 dBm, rx-target -75 dBm) diff --git a/tests/power/ms_power_loop_test.ok b/tests/power/ms_power_loop_test.ok index d463d87..4293d28 100644 --- a/tests/power/ms_power_loop_test.ok +++ b/tests/power/ms_power_loop_test.ok @@ -34,17 +34,17 @@ lchan_ms_pwr_ctrl(RxLvl=-75 dBm) returns 0 (expected 0) MS current power 29 -> 29 (expected 29) lchan_ms_pwr_ctrl(RxLvl=-45 dBm) returns 1 (expected 1) - MS current power 29 -> 1 (expected 1) + MS current power 29 -> 30 (expected 1) lchan_ms_pwr_ctrl(RxLvl=-45 dBm) returns 1 (expected 1) - MS current power 1 -> 5 (expected 5) + MS current power 30 -> 31 (expected 5) lchan_ms_pwr_ctrl(RxLvl=-45 dBm) returns 1 (expected 1) - MS current power 5 -> 9 (expected 9) + MS current power 31 -> 0 (expected 9) lchan_ms_pwr_ctrl(RxLvl=-73 dBm) returns 1 (expected 1) - MS current power 9 -> 10 (expected 10) + MS current power 0 -> 1 (expected 10) lchan_ms_pwr_ctrl(RxLvl=-77 dBm) returns 1 (expected 1) - MS current power 10 -> 9 (expected 9) + MS current power 1 -> 0 (expected 9) lchan_ms_pwr_ctrl(RxLvl=-73 dBm) returns 1 (expected 1) - MS current power 9 -> 14 (expected 14) + MS current power 0 -> 14 (expected 14) lchan_ms_pwr_ctrl(RxLvl=-60 dBm) returns 0 (expected 0) MS current power 14 -> 14 (expected 14) lchan_ms_pwr_ctrl(RxLvl=-40 dBm) returns 1 (expected 1) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22079 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ie358fd828a68bfa1d23559197e8df8478fb4535e Gerrit-Change-Number: 22079 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 8 19:21:14 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 8 Jan 2021 19:21:14 +0000 Subject: Change in osmo-bts[master]: power_control: rework handling of DL RxQual measurements References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/22080 ) Change subject: power_control: rework handling of DL RxQual measurements ...................................................................... power_control: rework handling of DL RxQual measurements This change makes BS power control loop: - take the lower RxQual threshold (L_RXQUAL_XX_P) into account, so the BS power is increased only if RxQual exceeds this threshold; - apply the configured increase step size instead of reducing the current attenuation by half. MS power loop is not affected, it does not even handle RxQual yet. Change-Id: Ib3c740b9a0f3ba5dfb027e144dc13f456cb26ae2 Related: SYS#4918 --- M src/common/power_control.c M tests/power/bs_power_loop_test.c M tests/power/bs_power_loop_test.err M tests/power/bs_power_loop_test.ok 4 files changed, 98 insertions(+), 70 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/80/22080/1 diff --git a/src/common/power_control.c b/src/common/power_control.c index 5e2e85e..6620add 100644 --- a/src/common/power_control.c +++ b/src/common/power_control.c @@ -274,12 +274,23 @@ rxlev = rxlev_full; } - /* Bit Error Rate > 0 => reduce by 2 */ - if (rxqual > 0) { /* FIXME: take RxQual threshold into account */ - LOGPLCHAN(lchan, DLOOP, LOGL_INFO, "Reducing Downlink attenuation " - "by half: %u -> %u dB due to RXQUAL %u > 0\n", - state->current, state->current / 2, rxqual); - state->current /= 2; + /* If RxQual > L_RXQUAL_XX_P, try to increase Tx power */ + if (rxqual > params->rxqual_meas.lower_thresh) { + uint8_t old = state->current; + + /* Tx power has reached the maximum, nothing to do */ + if (state->current == 0) + return 0; + + /* Increase Tx power by reducing Tx attenuation */ + if (state->current >= params->inc_step_size_db) + state->current -= params->inc_step_size_db; + else + state->current = 0; + + LOGPLCHAN(lchan, DLOOP, LOGL_INFO, "Reducing Downlink attenuation: " + "%u -> %d dB due to RxQual %u worse than L_RXQUAL_XX_P %u\n", + old, state->current, rxqual, params->rxqual_meas.lower_thresh); return 1; } diff --git a/tests/power/bs_power_loop_test.c b/tests/power/bs_power_loop_test.c index 06b53da..7301b7f 100644 --- a/tests/power/bs_power_loop_test.c +++ b/tests/power/bs_power_loop_test.c @@ -291,7 +291,7 @@ { .meas = { DL_MEAS_FULL(0, 63), DL_MEAS_SUB(0, PWR_TEST_RXLEV_TARGET) } }, }; -/* Verify that RxQual > 0 reduces the current attenuation value. */ +/* Verify that high RxQual reduces the current attenuation value. */ static const struct power_test_step TC_rxqual_ber[] = { /* Initial state: 16 dB, up to 20 dB */ { .type = PWR_TEST_ST_SET_STATE, @@ -301,25 +301,30 @@ { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET), .exp_txred = 16 }, { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET), .exp_txred = 16 }, - /* MS indicates target RxLev, but RxQual values > 0 */ - { .meas = DL_MEAS_FULL_SUB(7, PWR_TEST_RXLEV_TARGET), .exp_txred = 16 / 2 }, - { .meas = DL_MEAS_FULL_SUB(4, PWR_TEST_RXLEV_TARGET), .exp_txred = 16 / 4 }, - { .meas = DL_MEAS_FULL_SUB(1, PWR_TEST_RXLEV_TARGET), .exp_txred = 16 / 8 }, + /* MS indicates target RxLev, but RxQual values better than L_RXQUAL_XX_P=3 */ + { .meas = DL_MEAS_FULL_SUB(1, PWR_TEST_RXLEV_TARGET), .exp_txred = 16 }, + { .meas = DL_MEAS_FULL_SUB(2, PWR_TEST_RXLEV_TARGET), .exp_txred = 16 }, + { .meas = DL_MEAS_FULL_SUB(3, PWR_TEST_RXLEV_TARGET), .exp_txred = 16 }, - /* MS indicates target RxLev, and no bit errors anymore */ - { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET), .exp_txred = 16 / 8 }, - { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET), .exp_txred = 16 / 8 }, + /* MS indicates target RxLev, but RxQual values worse than L_RXQUAL_XX_P=3 */ + { .meas = DL_MEAS_FULL_SUB(4, PWR_TEST_RXLEV_TARGET + 0), .exp_txred = 16 - 4 }, + { .meas = DL_MEAS_FULL_SUB(5, PWR_TEST_RXLEV_TARGET + 4), .exp_txred = 16 - 8 }, + { .meas = DL_MEAS_FULL_SUB(6, PWR_TEST_RXLEV_TARGET + 8), .exp_txred = 16 - 12 }, + { .meas = DL_MEAS_FULL_SUB(7, PWR_TEST_RXLEV_TARGET + 12), .exp_txred = 16 - 16 }, /* max */ + { .meas = DL_MEAS_FULL_SUB(7, PWR_TEST_RXLEV_TARGET + 16), .exp_txred = 16 - 16 }, /* max */ - /* Reset state: 16 dB, up to 20 dB */ + /* MS indicates target RxLev, but no bit errors anymore => reducing Tx power */ + { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET + 16), .exp_txred = 2 }, + { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET + 14), .exp_txred = 4 }, + { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET + 12), .exp_txred = 6 }, + + /* Reset state: 0 dB, up to 20 dB */ { .type = PWR_TEST_ST_SET_STATE, - .state = { .current = 16, .max = 2 * 10 } }, + .state = { .current = 0, .max = 2 * 10 } }, - /* MS indicates target RxLev, but RxQual values > 0 again */ - { .meas = DL_MEAS_FULL_SUB(7, PWR_TEST_RXLEV_TARGET), .exp_txred = 16 / 2 }, - { .meas = DL_MEAS_FULL_SUB(7, PWR_TEST_RXLEV_TARGET), .exp_txred = 16 / 4 }, - { .meas = DL_MEAS_FULL_SUB(7, PWR_TEST_RXLEV_TARGET), .exp_txred = 16 / 8 }, - { .meas = DL_MEAS_FULL_SUB(7, PWR_TEST_RXLEV_TARGET), .exp_txred = 16 / 16 }, - { .meas = DL_MEAS_FULL_SUB(7, PWR_TEST_RXLEV_TARGET), .exp_txred = 16 / 32 }, + /* MS indicates target RxLev, but RxQual values worse than L_RXQUAL_XX_P=3 */ + { .meas = DL_MEAS_FULL_SUB(7, PWR_TEST_RXLEV_TARGET) }, /* max */ + { .meas = DL_MEAS_FULL_SUB(7, PWR_TEST_RXLEV_TARGET) }, /* max */ }; /* Verify that invalid and dummy SACCH blocks are ignored. */ diff --git a/tests/power/bs_power_loop_test.err b/tests/power/bs_power_loop_test.err index 20d2133..e7ba310 100644 --- a/tests/power/bs_power_loop_test.err +++ b/tests/power/bs_power_loop_test.err @@ -58,26 +58,29 @@ (bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, target -80 dBm, delta 0 dB) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL (bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, target -80 dBm, delta 0 dB) -(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(7), RXLEV-SUB(30), RXQUAL-SUB(7), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Reducing Downlink attenuation by half: 16 -> 8 dB due to RXQUAL 7 > 0 -(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(4), RXLEV-SUB(30), RXQUAL-SUB(4), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Reducing Downlink attenuation by half: 8 -> 4 dB due to RXQUAL 4 > 0 (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(1), RXLEV-SUB(30), RXQUAL-SUB(1), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Reducing Downlink attenuation by half: 4 -> 2 dB due to RXQUAL 1 > 0 -(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 2 dB (maximum 20 dB, target -80 dBm, delta 0 dB) -(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 2 dB (maximum 20 dB, target -80 dBm, delta 0 dB) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, target -80 dBm, delta 0 dB) +(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(2), RXLEV-SUB(30), RXQUAL-SUB(2), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, target -80 dBm, delta 0 dB) +(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(3), RXLEV-SUB(30), RXQUAL-SUB(3), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, target -80 dBm, delta 0 dB) +(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(4), RXLEV-SUB(30), RXQUAL-SUB(4), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Reducing Downlink attenuation: 16 -> 12 dB due to RxQual 4 worse than L_RXQUAL_XX_P 3 +(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(34), RXQUAL-FULL(5), RXLEV-SUB(34), RXQUAL-SUB(5), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Reducing Downlink attenuation: 12 -> 8 dB due to RxQual 5 worse than L_RXQUAL_XX_P 3 +(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(38), RXQUAL-FULL(6), RXLEV-SUB(38), RXQUAL-SUB(6), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Reducing Downlink attenuation: 8 -> 4 dB due to RxQual 6 worse than L_RXQUAL_XX_P 3 +(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(42), RXQUAL-FULL(7), RXLEV-SUB(42), RXQUAL-SUB(7), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Reducing Downlink attenuation: 4 -> 0 dB due to RxQual 7 worse than L_RXQUAL_XX_P 3 +(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(46), RXQUAL-FULL(7), RXLEV-SUB(46), RXQUAL-SUB(7), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(46), RXQUAL-FULL(0), RXLEV-SUB(46), RXQUAL-SUB(0), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 0 -> 2 dB (maximum 20 dB, target -80 dBm, delta -2 dB) +(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(44), RXQUAL-FULL(0), RXLEV-SUB(44), RXQUAL-SUB(0), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 2 -> 4 dB (maximum 20 dB, target -80 dBm, delta -2 dB) +(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(42), RXQUAL-FULL(0), RXLEV-SUB(42), RXQUAL-SUB(0), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 4 -> 6 dB (maximum 20 dB, target -80 dBm, delta -2 dB) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(7), RXLEV-SUB(30), RXQUAL-SUB(7), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Reducing Downlink attenuation by half: 16 -> 8 dB due to RXQUAL 7 > 0 (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(7), RXLEV-SUB(30), RXQUAL-SUB(7), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Reducing Downlink attenuation by half: 8 -> 4 dB due to RXQUAL 7 > 0 -(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(7), RXLEV-SUB(30), RXQUAL-SUB(7), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Reducing Downlink attenuation by half: 4 -> 2 dB due to RXQUAL 7 > 0 -(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(7), RXLEV-SUB(30), RXQUAL-SUB(7), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Reducing Downlink attenuation by half: 2 -> 1 dB due to RXQUAL 7 > 0 -(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(7), RXLEV-SUB(30), RXQUAL-SUB(7), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Reducing Downlink attenuation by half: 1 -> 0 dB due to RXQUAL 7 > 0 (bts=0,trx=0,ts=0,ss=0) The measurement results are not valid (bts=0,trx=0,ts=0,ss=0) The measurement results are not valid (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL diff --git a/tests/power/bs_power_loop_test.ok b/tests/power/bs_power_loop_test.ok index 804f5c6..19ec249 100644 --- a/tests/power/bs_power_loop_test.ok +++ b/tests/power/bs_power_loop_test.ok @@ -125,37 +125,46 @@ #02 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0) #02 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 1e 1e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 #02 lchan_bs_pwr_ctrl() -> BS power reduction: 16 -> 16 (expected 16) -#03 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(30), RXQUAL-FULL(7), RXLEV-SUB(30), RXQUAL-SUB(7) -#03 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 1e 1e 7e 00 00 00 00 00 00 00 00 00 00 00 00 00 -#03 lchan_bs_pwr_ctrl() -> BS power reduction: 16 -> 8 (expected 8) -#04 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(30), RXQUAL-FULL(4), RXLEV-SUB(30), RXQUAL-SUB(4) -#04 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 1e 1e 48 00 00 00 00 00 00 00 00 00 00 00 00 00 -#04 lchan_bs_pwr_ctrl() -> BS power reduction: 8 -> 4 (expected 4) -#05 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(30), RXQUAL-FULL(1), RXLEV-SUB(30), RXQUAL-SUB(1) -#05 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 1e 1e 12 00 00 00 00 00 00 00 00 00 00 00 00 00 -#05 lchan_bs_pwr_ctrl() -> BS power reduction: 4 -> 2 (expected 2) -#06 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0) -#06 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 1e 1e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -#06 lchan_bs_pwr_ctrl() -> BS power reduction: 2 -> 2 (expected 2) -#07 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0) -#07 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 1e 1e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -#07 lchan_bs_pwr_ctrl() -> BS power reduction: 2 -> 2 (expected 2) -#08 exec_power_step() <- State (re)set (current 16 dB, max 20 dB) -#09 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(30), RXQUAL-FULL(7), RXLEV-SUB(30), RXQUAL-SUB(7) -#09 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 1e 1e 7e 00 00 00 00 00 00 00 00 00 00 00 00 00 -#09 lchan_bs_pwr_ctrl() -> BS power reduction: 16 -> 8 (expected 8) -#10 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(30), RXQUAL-FULL(7), RXLEV-SUB(30), RXQUAL-SUB(7) -#10 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 1e 1e 7e 00 00 00 00 00 00 00 00 00 00 00 00 00 -#10 lchan_bs_pwr_ctrl() -> BS power reduction: 8 -> 4 (expected 4) -#11 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(30), RXQUAL-FULL(7), RXLEV-SUB(30), RXQUAL-SUB(7) -#11 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 1e 1e 7e 00 00 00 00 00 00 00 00 00 00 00 00 00 -#11 lchan_bs_pwr_ctrl() -> BS power reduction: 4 -> 2 (expected 2) -#12 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(30), RXQUAL-FULL(7), RXLEV-SUB(30), RXQUAL-SUB(7) -#12 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 1e 1e 7e 00 00 00 00 00 00 00 00 00 00 00 00 00 -#12 lchan_bs_pwr_ctrl() -> BS power reduction: 2 -> 1 (expected 1) -#13 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(30), RXQUAL-FULL(7), RXLEV-SUB(30), RXQUAL-SUB(7) -#13 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 1e 1e 7e 00 00 00 00 00 00 00 00 00 00 00 00 00 -#13 lchan_bs_pwr_ctrl() -> BS power reduction: 1 -> 0 (expected 0) +#03 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(30), RXQUAL-FULL(1), RXLEV-SUB(30), RXQUAL-SUB(1) +#03 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 1e 1e 12 00 00 00 00 00 00 00 00 00 00 00 00 00 +#03 lchan_bs_pwr_ctrl() -> BS power reduction: 16 -> 16 (expected 16) +#04 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(30), RXQUAL-FULL(2), RXLEV-SUB(30), RXQUAL-SUB(2) +#04 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 1e 1e 24 00 00 00 00 00 00 00 00 00 00 00 00 00 +#04 lchan_bs_pwr_ctrl() -> BS power reduction: 16 -> 16 (expected 16) +#05 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(30), RXQUAL-FULL(3), RXLEV-SUB(30), RXQUAL-SUB(3) +#05 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 1e 1e 36 00 00 00 00 00 00 00 00 00 00 00 00 00 +#05 lchan_bs_pwr_ctrl() -> BS power reduction: 16 -> 16 (expected 16) +#06 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(30), RXQUAL-FULL(4), RXLEV-SUB(30), RXQUAL-SUB(4) +#06 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 1e 1e 48 00 00 00 00 00 00 00 00 00 00 00 00 00 +#06 lchan_bs_pwr_ctrl() -> BS power reduction: 16 -> 12 (expected 12) +#07 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(34), RXQUAL-FULL(5), RXLEV-SUB(34), RXQUAL-SUB(5) +#07 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 22 22 5a 00 00 00 00 00 00 00 00 00 00 00 00 00 +#07 lchan_bs_pwr_ctrl() -> BS power reduction: 12 -> 8 (expected 8) +#08 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(38), RXQUAL-FULL(6), RXLEV-SUB(38), RXQUAL-SUB(6) +#08 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 26 26 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 +#08 lchan_bs_pwr_ctrl() -> BS power reduction: 8 -> 4 (expected 4) +#09 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(42), RXQUAL-FULL(7), RXLEV-SUB(42), RXQUAL-SUB(7) +#09 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 2a 2a 7e 00 00 00 00 00 00 00 00 00 00 00 00 00 +#09 lchan_bs_pwr_ctrl() -> BS power reduction: 4 -> 0 (expected 0) +#10 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(46), RXQUAL-FULL(7), RXLEV-SUB(46), RXQUAL-SUB(7) +#10 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 2e 2e 7e 00 00 00 00 00 00 00 00 00 00 00 00 00 +#10 lchan_bs_pwr_ctrl() -> BS power reduction: 0 -> 0 (expected 0) +#11 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(46), RXQUAL-FULL(0), RXLEV-SUB(46), RXQUAL-SUB(0) +#11 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 2e 2e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +#11 lchan_bs_pwr_ctrl() -> BS power reduction: 0 -> 2 (expected 2) +#12 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(44), RXQUAL-FULL(0), RXLEV-SUB(44), RXQUAL-SUB(0) +#12 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 2c 2c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +#12 lchan_bs_pwr_ctrl() -> BS power reduction: 2 -> 4 (expected 4) +#13 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(42), RXQUAL-FULL(0), RXLEV-SUB(42), RXQUAL-SUB(0) +#13 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 2a 2a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +#13 lchan_bs_pwr_ctrl() -> BS power reduction: 4 -> 6 (expected 6) +#14 exec_power_step() <- State (re)set (current 0 dB, max 20 dB) +#15 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(30), RXQUAL-FULL(7), RXLEV-SUB(30), RXQUAL-SUB(7) +#15 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 1e 1e 7e 00 00 00 00 00 00 00 00 00 00 00 00 00 +#15 lchan_bs_pwr_ctrl() -> BS power reduction: 0 -> 0 (expected 0) +#16 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(30), RXQUAL-FULL(7), RXLEV-SUB(30), RXQUAL-SUB(7) +#16 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 1e 1e 7e 00 00 00 00 00 00 00 00 00 00 00 00 00 +#16 lchan_bs_pwr_ctrl() -> BS power reduction: 0 -> 0 (expected 0) Test case verdict: SUCCESS Starting test case 'TC_inval_dummy' -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22080 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib3c740b9a0f3ba5dfb027e144dc13f456cb26ae2 Gerrit-Change-Number: 22080 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 8 19:28:25 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 8 Jan 2021 19:28:25 +0000 Subject: Change in osmo-bts[master]: power_control: use more reasonable reduce step size In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/22079 ) Change subject: power_control: use more reasonable reduce step size ...................................................................... Patch Set 1: Code-Review+1 Fine about the rationale, but you also basically divided by 2 the step size on both. is that also expected? is there any reasoning behind it, specially regarding to timings? it may take too long for changes to take effect. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22079 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ie358fd828a68bfa1d23559197e8df8478fb4535e Gerrit-Change-Number: 22079 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 08 Jan 2021 19:28:25 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 8 19:30:37 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 8 Jan 2021 19:30:37 +0000 Subject: Change in osmo-bts[master]: power_control: rework handling of DL RxQual measurements In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/22080 ) Change subject: power_control: rework handling of DL RxQual measurements ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22080 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib3c740b9a0f3ba5dfb027e144dc13f456cb26ae2 Gerrit-Change-Number: 22080 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 08 Jan 2021 19:30:37 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 8 19:45:19 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 8 Jan 2021 19:45:19 +0000 Subject: Change in osmo-bts[master]: power_control: use more reasonable reduce step size In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/22079 ) Change subject: power_control: use more reasonable reduce step size ...................................................................... Patch Set 1: > Patch Set 1: Code-Review+1 > > Fine about the rationale, but you also basically divided by 2 the step size on both. is that also expected? is there any reasoning behind it, specially regarding to timings? it may take too long for changes to take effect. The increase step size remains unchanged (4 dB), so no timing change here. The decrease step (was 8 dB, now becomes 2 dB) is the minimum premitted by 3GPP TS 45.008, it could also be 4 dB. The less this step is, the more time it would take to reach the maximum attenuation, yes. But I think the service quality here, i.e. the minimal risk to attenuate MS or BS power too much, is more important than the time needed to reach the optimal power levels... I am trying to make it consistent with the default values in osmo-bsc and with the recommendations we give in documentation (not yet merged patches for osmo-bsc). -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22079 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ie358fd828a68bfa1d23559197e8df8478fb4535e Gerrit-Change-Number: 22079 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 08 Jan 2021 19:45:19 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 8 19:54:21 2021 From: gerrit-no-reply at lists.osmocom.org (srs_andre) Date: Fri, 8 Jan 2021 19:54:21 +0000 Subject: Change in osmo-gsm-tester[master]: enb: add abstract method stop() In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22054 to look at the new patch set (#3). Change subject: enb: add abstract method stop() ...................................................................... enb: add abstract method stop() implement as noop for Amarisoft eNB, srsENB will send q+Enter to stdin, which is implemented in class srslte_common() Change-Id: Ide606e1a6b523997215aa2fa39d4d56ae1f49181 --- M src/osmo_gsm_tester/obj/enb.py M src/osmo_gsm_tester/obj/enb_amarisoft.py M src/osmo_gsm_tester/obj/enb_srs.py M src/osmo_gsm_tester/obj/srslte_common.py 4 files changed, 14 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/54/22054/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22054 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-Change-Id: Ide606e1a6b523997215aa2fa39d4d56ae1f49181 Gerrit-Change-Number: 22054 Gerrit-PatchSet: 3 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Fri Jan 8 21:07:30 2021 From: admin at opensuse.org (OBS Notification) Date: Fri, 08 Jan 2021 21:07:30 +0000 Subject: Build failure of network:osmocom:nightly/orcania in openSUSE_Factory_ARM/armv7l In-Reply-To: References: Message-ID: <5ff8c9a37b7fb_4d52b06e3fb85f02788f2@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/orcania/openSUSE_Factory_ARM/armv7l Package network:osmocom:nightly/orcania failed to build in openSUSE_Factory_ARM/armv7l Check out the package for editing: osc checkout network:osmocom:nightly orcania Last lines of build log: getbinaries: missing packages: libisl22 (worker was armbuild13:1) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Jan 8 21:09:30 2021 From: admin at opensuse.org (OBS Notification) Date: Fri, 08 Jan 2021 21:09:30 +0000 Subject: Build failure of network:osmocom:nightly/libsmpp34 in openSUSE_Factory_ARM/armv7l In-Reply-To: References: Message-ID: <5ff8ca1c7c5d5_4d52b06e3fb85f0279514@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libsmpp34/openSUSE_Factory_ARM/armv7l Package network:osmocom:nightly/libsmpp34 failed to build in openSUSE_Factory_ARM/armv7l Check out the package for editing: osc checkout network:osmocom:nightly libsmpp34 Last lines of build log: getbinaries: missing packages: libisl22 (worker was obs-arm-6:17) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Jan 8 21:14:21 2021 From: admin at opensuse.org (OBS Notification) Date: Fri, 08 Jan 2021 21:14:21 +0000 Subject: Build failure of network:osmocom:nightly/libgtpnl in openSUSE_Factory_ARM/armv7l In-Reply-To: References: Message-ID: <5ff8cb44cff32_4d52b06e3fb85f02818ac@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libgtpnl/openSUSE_Factory_ARM/armv7l Package network:osmocom:nightly/libgtpnl failed to build in openSUSE_Factory_ARM/armv7l Check out the package for editing: osc checkout network:osmocom:nightly libgtpnl Last lines of build log: getbinaries: missing packages: libisl22 (worker was obs-arm-6:10) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Fri Jan 8 22:56:46 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 8 Jan 2021 22:56:46 +0000 Subject: Change in libosmocore[master]: bssgp_rim: move bssgp_parse_rim_ri and bssgp_create_rim_ri to gprs_bs... In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/21863 to look at the new patch set (#7). Change subject: bssgp_rim: move bssgp_parse_rim_ri and bssgp_create_rim_ri to gprs_bssgp_rim ...................................................................... bssgp_rim: move bssgp_parse_rim_ri and bssgp_create_rim_ri to gprs_bssgp_rim The function bssgp_parse_rim_ri() and bssgp_create_rim_ri() are located in gprs_bssgp.c, since there is now a gprs_bssgp_rim.c module it makes more sense to put them there. Change-Id: Icd667f41d5735de56cd9fb257670337c679dd258 Related: SYS#5103 --- M include/osmocom/gprs/gprs_bssgp.h M include/osmocom/gprs/gprs_bssgp_rim.h M src/gb/gprs_bssgp.c M src/gb/gprs_bssgp_rim.c M tests/gb/gprs_bssgp_rim_test.c M tests/gb/gprs_bssgp_rim_test.ok M tests/gb/gprs_bssgp_test.c M tests/gb/gprs_bssgp_test.ok 8 files changed, 311 insertions(+), 310 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/63/21863/7 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21863 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Icd667f41d5735de56cd9fb257670337c679dd258 Gerrit-Change-Number: 21863 Gerrit-PatchSet: 7 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 8 22:58:14 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 8 Jan 2021 22:58:14 +0000 Subject: Change in libosmocore[master]: bssgp_rim: add encoder/decoder for NACC related RIM containers In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21862 ) Change subject: bssgp_rim: add encoder/decoder for NACC related RIM containers ...................................................................... Patch Set 7: (18 comments) Thanks for reviewing! https://gerrit.osmocom.org/c/libosmocore/+/21862/6/include/osmocom/gprs/gprs_bssgp_rim.h File include/osmocom/gprs/gprs_bssgp_rim.h: https://gerrit.osmocom.org/c/libosmocore/+/21862/6/include/osmocom/gprs/gprs_bssgp_rim.h at 2 PS6, Line 2: > license/copyright statement? Done https://gerrit.osmocom.org/c/libosmocore/+/21862/6/include/osmocom/gprs/gprs_bssgp_rim.h at 7 PS6, Line 7: struct { > You could reuse "struct osmo_cell_global_id_ps" from https://gerrit.osmocom. [?] Makes sense, but I could not find a parsing function for the struct. I re-used the existing ones now. https://gerrit.osmocom.org/c/libosmocore/+/21862/6/include/osmocom/gprs/gprs_bssgp_rim.h at 73 PS6, Line 73: Si3 > I don't recall the details: But won't we need SI3 as part of the NACC feature? We have been waiting [?] The SI3 application container is not used by the NACC application, since the NACC application will only use NACC application containers. To me the SI3 application seems a bit redundant. The SI3 can also be requested within an NACC application container. Maybe it is for some other purpose when only SI3 is required. (8c.6.2 SI3 application) If we add new application containers at some later point we will make the ABI incompatible, but the API will still work. From what I can see SI3 is not needed for NACC and we do not need it now. I have placed the TODOs as a hint where new application containers would go. https://gerrit.osmocom.org/c/libosmocore/+/21862/6/src/gb/gprs_bssgp_rim.c File src/gb/gprs_bssgp_rim.c: https://gerrit.osmocom.org/c/libosmocore/+/21862/6/src/gb/gprs_bssgp_rim.c at 4 PS6, Line 4: * (C) 2020 by sysmocom - s.f.m.c. GmbH > -2021 now I guess? Done https://gerrit.osmocom.org/c/libosmocore/+/21862/6/src/gb/gprs_bssgp_rim.c at 144 PS6, Line 144: buf++; > so now buf point s to index '1' but the length check above passed with len == 1, i.e. [?] Done https://gerrit.osmocom.org/c/libosmocore/+/21862/6/src/gb/gprs_bssgp_rim.c at 145 PS6, Line 145: c > I think we should set cont->err_app_cont to NULL if the length was only '1'? Done https://gerrit.osmocom.org/c/libosmocore/+/21862/6/src/gb/gprs_bssgp_rim.c at 159 PS6, Line 159: 1) > shouldnt' this be +1, i.e. [?] Done https://gerrit.osmocom.org/c/libosmocore/+/21862/6/src/gb/gprs_bssgp_rim.c at 217 PS6, Line 217: DE > I think somebody else already meantioned that those macros don't really look all that great and shou [?] I have replaced the macros now - I used macros because I was afraid that I couldn't use different struct types as parameters, but I found a way now to cast the structs. https://gerrit.osmocom.org/c/libosmocore/+/21862/6/src/gb/gprs_bssgp_rim.c at 256 PS6, Line 256: if (len < > please try to use less magic numbers but instead sizeof() or offsetof() macros to gt to those 15 / 3 [?] Done https://gerrit.osmocom.org/c/libosmocore/+/21862/6/src/gb/gprs_bssgp_rim.c at 259 PS6, Line 259: EN > same here regarding one line Done https://gerrit.osmocom.org/c/libosmocore/+/21862/6/src/gb/gprs_bssgp_rim.c at 300 PS6, Line 300: DE > why on one line? Done https://gerrit.osmocom.org/c/libosmocore/+/21862/6/src/gb/gprs_bssgp_rim.c at 355 PS6, Line 355: uint > putting 32kBytes on the stack didn't look very good to me. [?] Done https://gerrit.osmocom.org/c/libosmocore/+/21862/6/src/gb/gprs_bssgp_rim.c at 359 PS6, Line 359: if (le > magic numbers Done https://gerrit.osmocom.org/c/libosmocore/+/21862/6/src/gb/gprs_bssgp_rim.c at 362 PS6, Line 362: ENC_RIM > magic numbers Done https://gerrit.osmocom.org/c/libosmocore/+/21862/6/src/gb/gprs_bssgp_rim.c at 461 PS6, Line 461: if (le > magic numbers Done https://gerrit.osmocom.org/c/libosmocore/+/21862/6/src/gb/gprs_bssgp_rim.c at 466 PS6, Line 466: & s > no space, this looks like a logical "and" otherwise. Done https://gerrit.osmocom.org/c/libosmocore/+/21862/6/src/gb/gprs_bssgp_rim.c at 532 PS6, Line 532: if (len > magic numbers Done https://gerrit.osmocom.org/c/libosmocore/+/21862/6/src/gb/gprs_bssgp_rim.c at 601 PS6, Line 601: 3 > ? Done -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21862 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ibbc7fd67658e3040c12abb5706fe9d1f31894352 Gerrit-Change-Number: 21862 Gerrit-PatchSet: 7 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Fri, 08 Jan 2021 22:58:14 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: laforge Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 8 23:00:50 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 8 Jan 2021 23:00:50 +0000 Subject: Change in libosmocore[master]: bssgp_rim: add encoder/decoder for NACC related RIM containers In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/21862 to look at the new patch set (#8). Change subject: bssgp_rim: add encoder/decoder for NACC related RIM containers ...................................................................... bssgp_rim: add encoder/decoder for NACC related RIM containers BSSGP RIM uses a number of nested containers to signal RIM application specific payload information in a generic way. Lets add the container structurs required for NACC. Depends: libosmocore If48f412c32e8e5a3e604a78d12b74787a4786374 Change-Id: Ibbc7fd67658e3040c12abb5706fe9d1f31894352 Related: SYS#5103 --- M include/Makefile.am A include/osmocom/gprs/gprs_bssgp_rim.h M src/gb/Makefile.am A src/gb/gprs_bssgp_rim.c M src/gb/libosmogb.map M tests/Makefile.am A tests/gb/gprs_bssgp_rim_test.c A tests/gb/gprs_bssgp_rim_test.ok M tests/testsuite.at 9 files changed, 1,853 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/62/21862/8 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21862 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ibbc7fd67658e3040c12abb5706fe9d1f31894352 Gerrit-Change-Number: 21862 Gerrit-PatchSet: 8 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 8 23:00:50 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 8 Jan 2021 23:00:50 +0000 Subject: Change in libosmocore[master]: bssgp_rim: move bssgp_parse_rim_ri and bssgp_create_rim_ri to gprs_bs... In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/21863 to look at the new patch set (#8). Change subject: bssgp_rim: move bssgp_parse_rim_ri and bssgp_create_rim_ri to gprs_bssgp_rim ...................................................................... bssgp_rim: move bssgp_parse_rim_ri and bssgp_create_rim_ri to gprs_bssgp_rim The function bssgp_parse_rim_ri() and bssgp_create_rim_ri() are located in gprs_bssgp.c, since there is now a gprs_bssgp_rim.c module it makes more sense to put them there. Change-Id: Icd667f41d5735de56cd9fb257670337c679dd258 Related: SYS#5103 --- M include/osmocom/gprs/gprs_bssgp.h M include/osmocom/gprs/gprs_bssgp_rim.h M src/gb/gprs_bssgp.c M src/gb/gprs_bssgp_rim.c M tests/gb/gprs_bssgp_rim_test.c M tests/gb/gprs_bssgp_rim_test.ok M tests/gb/gprs_bssgp_test.c M tests/gb/gprs_bssgp_test.ok 8 files changed, 311 insertions(+), 310 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/63/21863/8 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21863 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Icd667f41d5735de56cd9fb257670337c679dd258 Gerrit-Change-Number: 21863 Gerrit-PatchSet: 8 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Sat Jan 9 01:42:56 2021 From: admin at opensuse.org (OBS Notification) Date: Sat, 09 Jan 2021 01:42:56 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <5ff90a3754535_4d52b06e3fb85f03361ef@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/xUbuntu_20.04/x86_64 Package network:osmocom:nightly/simtrace2 failed to build in xUbuntu_20.04/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 165s] [COMPILING libboard/qmod/source/wwan_perst.c] [ 165s] [COMPILING libboard/qmod/source/card_pres.c] [ 165s] [COMPILING libboard/qmod/source/wwan_led.c] [ 165s] [COMPILING libboard/qmod/source/i2c.c] [ 165s] [COMPILING libboard/qmod/source/board_qmod.c] [ 165s] [COMPILING apps/dfu/main.c] [ 165s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 165s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 166s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 166s] Memory region Used Size Region Size %age Used [ 166s] rom: 16588 B 16 KB 101.25% [ 166s] ram: 11672 B 48 KB 23.75/usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 166s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 204 bytes [ 166s] collect2: error: ld returned 1 exit status [ 166s] % [ 166s] make[2]: *** [Makefile:234: flash] Error 1 [ 166s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 166s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 166s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 166s] dh_auto_build: error: make -j1 returned exit code 2 [ 166s] make: *** [debian/rules:16: build] Error 25 [ 166s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 166s] ### VM INTERACTION START ### [ 169s] [ 156.478272] sysrq: Power Off [ 169s] [ 156.485495] reboot: Power down [ 169s] ### VM INTERACTION END ### [ 169s] [ 169s] lamb28 failed "build simtrace2_0.7.0.69.aadd.dsc" at Sat Jan 9 01:42:40 UTC 2021. [ 169s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Jan 9 01:43:14 2021 From: admin at opensuse.org (OBS Notification) Date: Sat, 09 Jan 2021 01:43:14 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.10/x86_64 In-Reply-To: References: Message-ID: <5ff90a3a189dc_4d52b06e3fb85f0336256@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/xUbuntu_20.10/x86_64 Package network:osmocom:nightly/simtrace2 failed to build in xUbuntu_20.10/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 157s] [COMPILING apps/dfu/main.c] [ 157s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 157s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 157s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 158s] Memory region Used Size Region Size %age Used [ 158s] rom: 16580 B 16 KB 101.20% [ 158s] ram: 11672 B 48 KB 23.75/usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 158s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 158s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 158s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 158s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 158s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 158s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 196 bytes [ 158s] collect2: error: ld returned 1 exit status [ 158s] % [ 158s] make[2]: *** [Makefile:234: flash] Error 1 [ 158s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 158s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 158s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 158s] dh_auto_build: error: make -j1 returned exit code 2 [ 158s] make: *** [debian/rules:16: build] Error 25 [ 158s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 158s] ### VM INTERACTION START ### [ 161s] [ 148.409319] sysrq: Power Off [ 161s] [ 148.415319] reboot: Power down [ 161s] ### VM INTERACTION END ### [ 161s] [ 161s] lamb16 failed "build simtrace2_0.7.0.69.aadd.dsc" at Sat Jan 9 01:43:01 UTC 2021. [ 161s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Jan 9 02:37:44 2021 From: admin at opensuse.org (OBS Notification) Date: Sat, 09 Jan 2021 02:37:44 +0000 Subject: Build failure of network:osmocom:latest/osmo-iuh in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5ff916fd5a99a_4d52b06e3fb85f0351034@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-iuh/Debian_Unstable/x86_64 Package network:osmocom:latest/osmo-iuh failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:latest osmo-iuh Last lines of build log: 1-ranap.a/RANAP_RAB-SetupItem-RelocReq.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupItem-RelocReqAck.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-EnhRelocInfoReq.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-EnhRelocInfoRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-EnhancedRelocCompleteReq.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-EnhancedRelocCompleteRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-RelocReq.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-RelocReqAck.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifiedItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifiedList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifyItemFirst.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifyItemSecond.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifyList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SubflowCombinationBitRate.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-ToBeReleasedItem-EnhancedRelocCompleteRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-ToBeReleasedList-EnhancedRelocCompleteRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-TrCH-Mapping.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-TrCH-MappingItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABDataVolumeReport.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABParametersList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABased.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABs-ContextFailedtoTransferItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABs-ContextFailedtoTransferList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABs-failed-to-reportItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABs-failed-to-reportList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAC.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAI-List.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAListofIdleModeUEs.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAListwithNoIdleModeUEsAnyMore.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RANAP-EnhancedRelocationInformationRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RANAP-EnhancedRelocationInformationResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RANAP-PDU.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RANAP-RelocationInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAT-Type.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAofIdleModeUEs.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RIM-Transfer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RIMInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RIMRoutingAddress.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RNC-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RNCTraceInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RNSAPRelocationParameters.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RRC-Container.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRQ-Extension.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRQ-Type.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRVCC-HO-Indication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRVCC-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRVCC-Operation-Possible.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RTLoadValue.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RateControlAllowed.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RedirectAttemptFlag.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RedirectionCompleted.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RedirectionIndication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RejectCauseValue.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationCancel.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationCancelAcknowledge.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationCommand.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationComplete.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationDetect.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationFailure.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationPreparationFailure.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationRequestAcknowledge.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationRequired.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationRequirement.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationType.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RepetitionNumber0.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RepetitionNumber1.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ReportAmount.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ReportArea.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ReportChangeOfSAI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ReportInterval.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestType.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-ExtendedGuaranteedBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-ExtendedMaxBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-GuaranteedBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-MaxBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-Values.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedGANSSAssistanceData.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedGPSAssistanceData.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedLocationRelatedDataType.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedMBMSIPMulticastAddressandAPNRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedMulticastServiceList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Reset.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetAcknowledge.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResource.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceAckItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceAckList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceAcknowledge.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResidualBitErrorRatio.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResponseTime.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SAC.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SAI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SAPI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-ErrorRatio.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-FormatInformationParameterItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-FormatInformationParameters.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-ParameterItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-Parameters.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SNA-Access-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SNAC.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRB-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRB-TrCH-Mapping.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRB-TrCH-MappingItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRNS-ContextRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRNS-ContextResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRNS-DataForwardCommand.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-CSKeysRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-CSKeysResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-HO-Indication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-Operation-Possible.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SecurityModeCommand.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SecurityModeComplete.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SecurityModeReject.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Service-Handover.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Session-Re-establishment-Indicator.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SessionUpdateID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Shared-Network-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SignallingIndication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Source-ToTarget-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceBSS-ToTargetBSS-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceCellID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceRNC-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceRNC-ToTargetRNC-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceStatisticsDescriptor.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceUTRANCellID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceeNodeB-ToTargeteNodeB-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SubflowSDU-Size.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SubscriberProfileIDforRFP.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SuccessfulOutcome.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SupportedBitrate.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SupportedRAB-ParameterBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TAC.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TAI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TBCD-STRING.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TMGI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TMSI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TNLInformationEnhRelInfoReq.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TNLInformationEnhRelInfoRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Target-ToSource-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetBSS-ToSourceBSS-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetCellId.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetENB-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetRNC-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetRNC-ToSourceRNC-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargeteNodeB-ToSourceeNodeB-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TemporaryUE-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Time-UE-StayedInCell-EnhancedGranularity.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Time-UE-StayedInCell.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TimeToMBMSDataTransfer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TimingDifferenceULDL.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TrCH-ID-List.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TrCH-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceDepth.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TracePropagationParameters.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceRecordingSessionInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceRecordingSessionReference.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceReference.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceType.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TrafficClass.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TrafficHandlingPriority.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TransferDelay.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TransportLayerAddress.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TransportLayerInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TriggerID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TriggeringMessage.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TunnelInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TypeOfError.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-AggregateMaximumBitRate.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-AggregateMaximumBitRateDownlink.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-AggregateMaximumBitRateUplink.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-History-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UESBI-Iu.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UESBI-IuA.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UESBI-IuB.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UESpecificInformationIndication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UL-GTP-PDU-SequenceNumber.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UL-N-PDU-SequenceNumber.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UP-ModeVersions.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UPInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UPInitialisationFrame.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_USCH-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UTRAN-CellID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UeRadioCapabilityMatchRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UeRadioCapabilityMatchResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UnsuccessfulLinking-IEs.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UnsuccessfulOutcome.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UnsuccessfullyTransmittedDataVolume.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UplinkInformationExchangeFailure.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UplinkInformationExchangeRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UplinkInformationExchangeResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UserPlaneInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UserPlaneMode.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VelocityEstimate.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VerticalAccuracyCode.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VerticalSpeedDirection.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VerticalVelocity.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VoiceSupportMatchIndicator.o [ 505s] libtool: link: ranlib .libs/libosmo-ranap.a [ 505s] libtool: link: rm -fr .libs/libosmo-ranap.lax [ 505s] libtool: link: ( cd ".libs" && rm -f "libosmo-ranap.la" && ln -s "../libosmo-ranap.la" "libosmo-ranap.la" ) [ 505s] /bin/bash ../libtool --tag=CC --mode=link gcc -Wall -I../include -I../include -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -g -O2 -ffile-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wl,-z,relro -o osmo-hnbgw hnbap_encoder.o hnbap_decoder.o hnbap_common.o rua_encoder.o rua_decoder.o rua_common.o rua_msg_factory.o hnbgw.o hnbgw_hnbap.o hnbgw_rua.o hnbgw_ranap.o hnbgw_vty.o context_map.o hnbgw_cn.o -ltalloc -losmocore -ltalloc -losmogsm -losmocore -ltalloc -losmovty -losmocore -ltalloc -losmoctrl -losmogsm -losmocore -ltalloc -lasn1c -losmo-sigtran -losmonetif hnbap/libosmo-asn1-hnbap.a rua/libosmo-asn1-rua.a libosmo-ranap.la [ 505s] libtool: link: gcc -Wall -I../include -I../include -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -g -O2 -ffile-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wl,-z -Wl,relro -o .libs/osmo-hnbgw hnbap_encoder.o hnbap_decoder.o hnbap_common.o rua_encoder.o rua_decoder.o rua_common.o rua_msg_factory.o hnbgw.o hnbgw_hnbap.o hnbgw_rua.o hnbgw_ranap.o hnbgw_vty.o context_map.o hnbgw_cn.o /usr/lib/x86_64-linux-gnu/libosmovty.so /usr/lib/x86_64-linux-gnu/libosmoctrl.so /usr/lib/x86_64-linux-gnu/libosmogsm.so /usr/lib/x86_64-linux-gnu/libosmocore.so -ltalloc -lasn1c /usr/lib/x86_64-linux-gnu/libosmo-sigtran.so /usr/lib/x86_64-linux-gnu/libosmonetif.so hnbap/libosmo-asn1-hnbap.a rua/libosmo-asn1-rua.a ./.libs/libosmo-ranap.so -pthread [ 506s] /usr/bin/ld: ./.libs/libosmo-ranap.so: undefined reference to `install_lib_element' [ 506s] collect2: error: ld returned 1 exit status [ 506s] make[5]: *** [Makefile:616: osmo-hnbgw] Error 1 [ 506s] make[5]: Leaving directory '/usr/src/packages/BUILD/src' [ 506s] make[4]: *** [Makefile:690: all-recursive] Error 1 [ 506s] make[4]: Leaving directory '/usr/src/packages/BUILD/src' [ 506s] make[3]: *** [Makefile:490: all] Error 2 [ 506s] make[3]: Leaving directory '/usr/src/packages/BUILD/src' [ 506s] make[2]: *** [Makefile:470: all-recursive] Error 1 [ 506s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 506s] make[1]: *** [Makefile:392: all] Error 2 [ 506s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 506s] dh_auto_build: error: make -j1 returned exit code 2 [ 506s] make: *** [debian/rules:9: build] Error 25 [ 506s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 506s] ### VM INTERACTION START ### [ 509s] [ 476.056926] sysrq: Power Off [ 509s] [ 476.061479] reboot: Power down [ 509s] ### VM INTERACTION END ### [ 509s] [ 509s] lamb01 failed "build osmo-iuh_1.0.0.dsc" at Sat Jan 9 02:37:31 UTC 2021. [ 509s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Jan 9 02:43:26 2021 From: admin at opensuse.org (OBS Notification) Date: Sat, 09 Jan 2021 02:43:26 +0000 Subject: Build failure of network:osmocom:latest/osmo-iuh in Debian_Testing/x86_64 In-Reply-To: References: Message-ID: <5ff9186421b46_4d52b06e3fb85f0353554@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-iuh/Debian_Testing/x86_64 Package network:osmocom:latest/osmo-iuh failed to build in Debian_Testing/x86_64 Check out the package for editing: osc checkout network:osmocom:latest osmo-iuh Last lines of build log: /RANAP_RAB-SetupItem-RelocReq.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupItem-RelocReqAck.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-EnhRelocInfoReq.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-EnhRelocInfoRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-EnhancedRelocCompleteReq.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-EnhancedRelocCompleteRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-RelocReq.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-RelocReqAck.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifiedItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifiedList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifyItemFirst.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifyItemSecond.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifyList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SubflowCombinationBitRate.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-ToBeReleasedItem-EnhancedRelocCompleteRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-ToBeReleasedList-EnhancedRelocCompleteRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-TrCH-Mapping.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-TrCH-MappingItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABDataVolumeReport.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABParametersList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABased.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABs-ContextFailedtoTransferItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABs-ContextFailedtoTransferList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABs-failed-to-reportItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABs-failed-to-reportList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAC.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAI-List.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAListofIdleModeUEs.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAListwithNoIdleModeUEsAnyMore.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RANAP-EnhancedRelocationInformationRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RANAP-EnhancedRelocationInformationResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RANAP-PDU.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RANAP-RelocationInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAT-Type.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAofIdleModeUEs.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RIM-Transfer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RIMInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RIMRoutingAddress.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RNC-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RNCTraceInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RNSAPRelocationParameters.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RRC-Container.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRQ-Extension.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRQ-Type.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRVCC-HO-Indication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRVCC-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRVCC-Operation-Possible.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RTLoadValue.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RateControlAllowed.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RedirectAttemptFlag.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RedirectionCompleted.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RedirectionIndication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RejectCauseValue.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationCancel.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationCancelAcknowledge.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationCommand.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationComplete.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationDetect.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationFailure.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationPreparationFailure.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationRequestAcknowledge.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationRequired.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationRequirement.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationType.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RepetitionNumber0.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RepetitionNumber1.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ReportAmount.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ReportArea.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ReportChangeOfSAI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ReportInterval.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestType.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-ExtendedGuaranteedBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-ExtendedMaxBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-GuaranteedBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-MaxBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-Values.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedGANSSAssistanceData.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedGPSAssistanceData.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedLocationRelatedDataType.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedMBMSIPMulticastAddressandAPNRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedMulticastServiceList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Reset.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetAcknowledge.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResource.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceAckItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceAckList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceAcknowledge.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResidualBitErrorRatio.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResponseTime.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SAC.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SAI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SAPI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-ErrorRatio.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-FormatInformationParameterItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-FormatInformationParameters.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-ParameterItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-Parameters.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SNA-Access-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SNAC.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRB-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRB-TrCH-Mapping.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRB-TrCH-MappingItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRNS-ContextRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRNS-ContextResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRNS-DataForwardCommand.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-CSKeysRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-CSKeysResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-HO-Indication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-Operation-Possible.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SecurityModeCommand.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SecurityModeComplete.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SecurityModeReject.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Service-Handover.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Session-Re-establishment-Indicator.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SessionUpdateID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Shared-Network-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SignallingIndication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Source-ToTarget-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceBSS-ToTargetBSS-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceCellID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceRNC-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceRNC-ToTargetRNC-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceStatisticsDescriptor.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceUTRANCellID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceeNodeB-ToTargeteNodeB-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SubflowSDU-Size.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SubscriberProfileIDforRFP.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SuccessfulOutcome.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SupportedBitrate.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SupportedRAB-ParameterBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TAC.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TAI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TBCD-STRING.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TMGI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TMSI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TNLInformationEnhRelInfoReq.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TNLInformationEnhRelInfoRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Target-ToSource-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetBSS-ToSourceBSS-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetCellId.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetENB-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetRNC-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetRNC-ToSourceRNC-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargeteNodeB-ToSourceeNodeB-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TemporaryUE-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Time-UE-StayedInCell-EnhancedGranularity.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Time-UE-StayedInCell.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TimeToMBMSDataTransfer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TimingDifferenceULDL.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TrCH-ID-List.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TrCH-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceDepth.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TracePropagationParameters.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceRecordingSessionInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceRecordingSessionReference.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceReference.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceType.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TrafficClass.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TrafficHandlingPriority.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TransferDelay.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TransportLayerAddress.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TransportLayerInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TriggerID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TriggeringMessage.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TunnelInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TypeOfError.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-AggregateMaximumBitRate.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-AggregateMaximumBitRateDownlink.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-AggregateMaximumBitRateUplink.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-History-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UESBI-Iu.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UESBI-IuA.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UESBI-IuB.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UESpecificInformationIndication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UL-GTP-PDU-SequenceNumber.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UL-N-PDU-SequenceNumber.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UP-ModeVersions.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UPInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UPInitialisationFrame.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_USCH-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UTRAN-CellID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UeRadioCapabilityMatchRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UeRadioCapabilityMatchResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UnsuccessfulLinking-IEs.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UnsuccessfulOutcome.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UnsuccessfullyTransmittedDataVolume.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UplinkInformationExchangeFailure.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UplinkInformationExchangeRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UplinkInformationExchangeResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UserPlaneInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UserPlaneMode.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VelocityEstimate.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VerticalAccuracyCode.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VerticalSpeedDirection.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VerticalVelocity.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VoiceSupportMatchIndicator.o [ 393s] libtool: link: ranlib .libs/libosmo-ranap.a [ 393s] libtool: link: rm -fr .libs/libosmo-ranap.lax [ 393s] libtool: link: ( cd ".libs" && rm -f "libosmo-ranap.la" && ln -s "../libosmo-ranap.la" "libosmo-ranap.la" ) [ 393s] /bin/bash ../libtool --tag=CC --mode=link gcc -Wall -I../include -I../include -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wl,-z,relro -o osmo-hnbgw hnbap_encoder.o hnbap_decoder.o hnbap_common.o rua_encoder.o rua_decoder.o rua_common.o rua_msg_factory.o hnbgw.o hnbgw_hnbap.o hnbgw_rua.o hnbgw_ranap.o hnbgw_vty.o context_map.o hnbgw_cn.o -ltalloc -losmocore -ltalloc -losmogsm -losmocore -ltalloc -losmovty -losmocore -ltalloc -losmoctrl -losmogsm -losmocore -ltalloc -lasn1c -losmo-sigtran -losmonetif hnbap/libosmo-asn1-hnbap.a rua/libosmo-asn1-rua.a libosmo-ranap.la [ 393s] libtool: link: gcc -Wall -I../include -I../include -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wl,-z -Wl,relro -o .libs/osmo-hnbgw hnbap_encoder.o hnbap_decoder.o hnbap_common.o rua_encoder.o rua_decoder.o rua_common.o rua_msg_factory.o hnbgw.o hnbgw_hnbap.o hnbgw_rua.o hnbgw_ranap.o hnbgw_vty.o context_map.o hnbgw_cn.o /usr/lib/x86_64-linux-gnu/libosmovty.so /usr/lib/x86_64-linux-gnu/libosmoctrl.so /usr/lib/x86_64-linux-gnu/libosmogsm.so /usr/lib/x86_64-linux-gnu/libosmocore.so -ltalloc -lasn1c /usr/lib/x86_64-linux-gnu/libosmo-sigtran.so /usr/lib/x86_64-linux-gnu/libosmonetif.so hnbap/libosmo-asn1-hnbap.a rua/libosmo-asn1-rua.a ./.libs/libosmo-ranap.so -pthread [ 393s] /usr/bin/ld: ./.libs/libosmo-ranap.so: undefined reference to `install_lib_element' [ 393s] collect2: error: ld returned 1 exit status [ 393s] make[5]: *** [Makefile:616: osmo-hnbgw] Error 1 [ 393s] make[5]: Leaving directory '/usr/src/packages/BUILD/src' [ 393s] make[4]: *** [Makefile:690: all-recursive] Error 1 [ 393s] make[4]: Leaving directory '/usr/src/packages/BUILD/src' [ 393s] make[3]: *** [Makefile:490: all] Error 2 [ 393s] make[3]: Leaving directory '/usr/src/packages/BUILD/src' [ 393s] make[2]: *** [Makefile:470: all-recursive] Error 1 [ 393s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 393s] make[1]: *** [Makefile:392: all] Error 2 [ 393s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 393s] dh_auto_build: error: make -j1 returned exit code 2 [ 393s] make: *** [debian/rules:9: build] Error 25 [ 393s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 393s] ### VM INTERACTION START ### [ 396s] [ 384.448425] sysrq: Power Off [ 396s] [ 384.452061] reboot: Power down [ 396s] ### VM INTERACTION END ### [ 396s] [ 396s] hci-cnode2-m1 failed "build osmo-iuh_1.0.0.dsc" at Sat Jan 9 02:43:15 UTC 2021. [ 396s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Jan 9 03:32:18 2021 From: admin at opensuse.org (OBS Notification) Date: Sat, 09 Jan 2021 03:32:18 +0000 Subject: Build failure of network:osmocom:latest/osmo-iuh in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5ff923df92f77_4d52b06e3fb85f03644e3@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-iuh/Debian_Unstable/x86_64 Package network:osmocom:latest/osmo-iuh failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:latest osmo-iuh Last lines of build log: 1-ranap.a/RANAP_RAB-SetupItem-RelocReq.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupItem-RelocReqAck.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-EnhRelocInfoReq.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-EnhRelocInfoRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-EnhancedRelocCompleteReq.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-EnhancedRelocCompleteRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-RelocReq.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-RelocReqAck.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifiedItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifiedList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifyItemFirst.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifyItemSecond.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifyList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SubflowCombinationBitRate.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-ToBeReleasedItem-EnhancedRelocCompleteRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-ToBeReleasedList-EnhancedRelocCompleteRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-TrCH-Mapping.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-TrCH-MappingItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABDataVolumeReport.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABParametersList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABased.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABs-ContextFailedtoTransferItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABs-ContextFailedtoTransferList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABs-failed-to-reportItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABs-failed-to-reportList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAC.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAI-List.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAListofIdleModeUEs.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAListwithNoIdleModeUEsAnyMore.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RANAP-EnhancedRelocationInformationRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RANAP-EnhancedRelocationInformationResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RANAP-PDU.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RANAP-RelocationInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAT-Type.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAofIdleModeUEs.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RIM-Transfer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RIMInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RIMRoutingAddress.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RNC-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RNCTraceInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RNSAPRelocationParameters.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RRC-Container.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRQ-Extension.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRQ-Type.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRVCC-HO-Indication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRVCC-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRVCC-Operation-Possible.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RTLoadValue.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RateControlAllowed.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RedirectAttemptFlag.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RedirectionCompleted.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RedirectionIndication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RejectCauseValue.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationCancel.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationCancelAcknowledge.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationCommand.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationComplete.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationDetect.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationFailure.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationPreparationFailure.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationRequestAcknowledge.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationRequired.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationRequirement.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationType.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RepetitionNumber0.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RepetitionNumber1.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ReportAmount.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ReportArea.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ReportChangeOfSAI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ReportInterval.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestType.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-ExtendedGuaranteedBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-ExtendedMaxBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-GuaranteedBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-MaxBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-Values.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedGANSSAssistanceData.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedGPSAssistanceData.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedLocationRelatedDataType.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedMBMSIPMulticastAddressandAPNRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedMulticastServiceList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Reset.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetAcknowledge.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResource.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceAckItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceAckList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceAcknowledge.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResidualBitErrorRatio.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResponseTime.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SAC.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SAI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SAPI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-ErrorRatio.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-FormatInformationParameterItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-FormatInformationParameters.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-ParameterItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-Parameters.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SNA-Access-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SNAC.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRB-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRB-TrCH-Mapping.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRB-TrCH-MappingItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRNS-ContextRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRNS-ContextResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRNS-DataForwardCommand.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-CSKeysRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-CSKeysResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-HO-Indication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-Operation-Possible.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SecurityModeCommand.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SecurityModeComplete.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SecurityModeReject.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Service-Handover.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Session-Re-establishment-Indicator.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SessionUpdateID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Shared-Network-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SignallingIndication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Source-ToTarget-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceBSS-ToTargetBSS-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceCellID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceRNC-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceRNC-ToTargetRNC-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceStatisticsDescriptor.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceUTRANCellID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceeNodeB-ToTargeteNodeB-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SubflowSDU-Size.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SubscriberProfileIDforRFP.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SuccessfulOutcome.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SupportedBitrate.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SupportedRAB-ParameterBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TAC.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TAI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TBCD-STRING.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TMGI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TMSI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TNLInformationEnhRelInfoReq.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TNLInformationEnhRelInfoRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Target-ToSource-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetBSS-ToSourceBSS-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetCellId.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetENB-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetRNC-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetRNC-ToSourceRNC-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargeteNodeB-ToSourceeNodeB-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TemporaryUE-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Time-UE-StayedInCell-EnhancedGranularity.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Time-UE-StayedInCell.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TimeToMBMSDataTransfer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TimingDifferenceULDL.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TrCH-ID-List.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TrCH-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceDepth.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TracePropagationParameters.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceRecordingSessionInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceRecordingSessionReference.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceReference.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceType.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TrafficClass.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TrafficHandlingPriority.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TransferDelay.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TransportLayerAddress.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TransportLayerInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TriggerID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TriggeringMessage.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TunnelInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TypeOfError.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-AggregateMaximumBitRate.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-AggregateMaximumBitRateDownlink.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-AggregateMaximumBitRateUplink.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-History-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UESBI-Iu.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UESBI-IuA.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UESBI-IuB.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UESpecificInformationIndication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UL-GTP-PDU-SequenceNumber.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UL-N-PDU-SequenceNumber.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UP-ModeVersions.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UPInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UPInitialisationFrame.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_USCH-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UTRAN-CellID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UeRadioCapabilityMatchRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UeRadioCapabilityMatchResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UnsuccessfulLinking-IEs.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UnsuccessfulOutcome.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UnsuccessfullyTransmittedDataVolume.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UplinkInformationExchangeFailure.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UplinkInformationExchangeRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UplinkInformationExchangeResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UserPlaneInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UserPlaneMode.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VelocityEstimate.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VerticalAccuracyCode.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VerticalSpeedDirection.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VerticalVelocity.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VoiceSupportMatchIndicator.o [ 614s] libtool: link: ranlib .libs/libosmo-ranap.a [ 614s] libtool: link: rm -fr .libs/libosmo-ranap.lax [ 614s] libtool: link: ( cd ".libs" && rm -f "libosmo-ranap.la" && ln -s "../libosmo-ranap.la" "libosmo-ranap.la" ) [ 614s] /bin/bash ../libtool --tag=CC --mode=link gcc -Wall -I../include -I../include -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -g -O2 -ffile-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wl,-z,relro -o osmo-hnbgw hnbap_encoder.o hnbap_decoder.o hnbap_common.o rua_encoder.o rua_decoder.o rua_common.o rua_msg_factory.o hnbgw.o hnbgw_hnbap.o hnbgw_rua.o hnbgw_ranap.o hnbgw_vty.o context_map.o hnbgw_cn.o -ltalloc -losmocore -ltalloc -losmogsm -losmocore -ltalloc -losmovty -losmocore -ltalloc -losmoctrl -losmogsm -losmocore -ltalloc -lasn1c -losmo-sigtran -losmonetif hnbap/libosmo-asn1-hnbap.a rua/libosmo-asn1-rua.a libosmo-ranap.la [ 614s] libtool: link: gcc -Wall -I../include -I../include -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -g -O2 -ffile-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wl,-z -Wl,relro -o .libs/osmo-hnbgw hnbap_encoder.o hnbap_decoder.o hnbap_common.o rua_encoder.o rua_decoder.o rua_common.o rua_msg_factory.o hnbgw.o hnbgw_hnbap.o hnbgw_rua.o hnbgw_ranap.o hnbgw_vty.o context_map.o hnbgw_cn.o /usr/lib/x86_64-linux-gnu/libosmovty.so /usr/lib/x86_64-linux-gnu/libosmoctrl.so /usr/lib/x86_64-linux-gnu/libosmogsm.so /usr/lib/x86_64-linux-gnu/libosmocore.so -ltalloc -lasn1c /usr/lib/x86_64-linux-gnu/libosmo-sigtran.so /usr/lib/x86_64-linux-gnu/libosmonetif.so hnbap/libosmo-asn1-hnbap.a rua/libosmo-asn1-rua.a ./.libs/libosmo-ranap.so -pthread [ 615s] /usr/bin/ld: ./.libs/libosmo-ranap.so: undefined reference to `install_lib_element' [ 615s] collect2: error: ld returned 1 exit status [ 615s] make[5]: *** [Makefile:616: osmo-hnbgw] Error 1 [ 615s] make[5]: Leaving directory '/usr/src/packages/BUILD/src' [ 615s] make[4]: *** [Makefile:690: all-recursive] Error 1 [ 615s] make[4]: Leaving directory '/usr/src/packages/BUILD/src' [ 615s] make[3]: *** [Makefile:490: all] Error 2 [ 615s] make[3]: Leaving directory '/usr/src/packages/BUILD/src' [ 615s] make[2]: *** [Makefile:470: all-recursive] Error 1 [ 615s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 615s] make[1]: *** [Makefile:392: all] Error 2 [ 615s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 615s] dh_auto_build: error: make -j1 returned exit code 2 [ 615s] make: *** [debian/rules:9: build] Error 25 [ 615s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 615s] ### VM INTERACTION START ### [ 618s] [ 602.338241] sysrq: Power Off [ 618s] [ 602.361100] reboot: Power down [ 618s] ### VM INTERACTION END ### [ 618s] [ 618s] lamb05 failed "build osmo-iuh_1.0.0.dsc" at Sat Jan 9 03:32:02 UTC 2021. [ 618s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Jan 9 11:29:44 2021 From: admin at opensuse.org (OBS Notification) Date: Sat, 09 Jan 2021 11:29:44 +0000 Subject: Build failure of network:osmocom:latest/osmo-iuh in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <5ff993af8caac_4d52b06e3fb85f0508815@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-iuh/Debian_Unstable/x86_64 Package network:osmocom:latest/osmo-iuh failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:latest osmo-iuh Last lines of build log: 1-ranap.a/RANAP_RAB-SetupItem-RelocReq.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupItem-RelocReqAck.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-EnhRelocInfoReq.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-EnhRelocInfoRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-EnhancedRelocCompleteReq.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-EnhancedRelocCompleteRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-RelocReq.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupList-RelocReqAck.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifiedItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifiedList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifyItemFirst.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifyItemSecond.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SetupOrModifyList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-SubflowCombinationBitRate.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-ToBeReleasedItem-EnhancedRelocCompleteRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-ToBeReleasedList-EnhancedRelocCompleteRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-TrCH-Mapping.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAB-TrCH-MappingItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABDataVolumeReport.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABParametersList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABased.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABs-ContextFailedtoTransferItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABs-ContextFailedtoTransferList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABs-failed-to-reportItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RABs-failed-to-reportList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAC.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAI-List.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAListofIdleModeUEs.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAListwithNoIdleModeUEsAnyMore.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RANAP-EnhancedRelocationInformationRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RANAP-EnhancedRelocationInformationResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RANAP-PDU.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RANAP-RelocationInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAT-Type.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RAofIdleModeUEs.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RIM-Transfer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RIMInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RIMRoutingAddress.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RNC-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RNCTraceInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RNSAPRelocationParameters.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RRC-Container.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRQ-Extension.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRQ-Type.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRVCC-HO-Indication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRVCC-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RSRVCC-Operation-Possible.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RTLoadValue.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RateControlAllowed.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RedirectAttemptFlag.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RedirectionCompleted.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RedirectionIndication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RejectCauseValue.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationCancel.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationCancelAcknowledge.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationCommand.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationComplete.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationDetect.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationFailure.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationPreparationFailure.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationRequestAcknowledge.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationRequired.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationRequirement.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RelocationType.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RepetitionNumber0.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RepetitionNumber1.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ReportAmount.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ReportArea.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ReportChangeOfSAI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ReportInterval.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestType.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-ExtendedGuaranteedBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-ExtendedMaxBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-GuaranteedBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-MaxBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Requested-RAB-Parameter-Values.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedGANSSAssistanceData.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedGPSAssistanceData.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedLocationRelatedDataType.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedMBMSIPMulticastAddressandAPNRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_RequestedMulticastServiceList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Reset.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetAcknowledge.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResource.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceAckItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceAckList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceAcknowledge.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResetResourceList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResidualBitErrorRatio.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_ResponseTime.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SAC.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SAI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SAPI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-ErrorRatio.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-FormatInformationParameterItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-FormatInformationParameters.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-ParameterItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SDU-Parameters.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SNA-Access-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SNAC.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRB-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRB-TrCH-Mapping.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRB-TrCH-MappingItem.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRNS-ContextRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRNS-ContextResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRNS-DataForwardCommand.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-CSKeysRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-CSKeysResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-HO-Indication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SRVCC-Operation-Possible.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SecurityModeCommand.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SecurityModeComplete.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SecurityModeReject.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Service-Handover.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Session-Re-establishment-Indicator.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SessionUpdateID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Shared-Network-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SignallingIndication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Source-ToTarget-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceBSS-ToTargetBSS-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceCellID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceRNC-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceRNC-ToTargetRNC-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceStatisticsDescriptor.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceUTRANCellID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SourceeNodeB-ToTargeteNodeB-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SubflowSDU-Size.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SubscriberProfileIDforRFP.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SuccessfulOutcome.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SupportedBitrate.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_SupportedRAB-ParameterBitrateList.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TAC.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TAI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TBCD-STRING.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TMGI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TMSI.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TNLInformationEnhRelInfoReq.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TNLInformationEnhRelInfoRes.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Target-ToSource-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetBSS-ToSourceBSS-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetCellId.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetENB-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetRNC-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargetRNC-ToSourceRNC-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TargeteNodeB-ToSourceeNodeB-TransparentContainer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TemporaryUE-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Time-UE-StayedInCell-EnhancedGranularity.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_Time-UE-StayedInCell.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TimeToMBMSDataTransfer.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TimingDifferenceULDL.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TrCH-ID-List.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TrCH-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceDepth.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TracePropagationParameters.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceRecordingSessionInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceRecordingSessionReference.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceReference.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TraceType.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TrafficClass.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TrafficHandlingPriority.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TransferDelay.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TransportLayerAddress.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TransportLayerInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TriggerID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TriggeringMessage.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TunnelInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_TypeOfError.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-AggregateMaximumBitRate.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-AggregateMaximumBitRateDownlink.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-AggregateMaximumBitRateUplink.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-History-Information.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UE-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UESBI-Iu.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UESBI-IuA.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UESBI-IuB.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UESpecificInformationIndication.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UL-GTP-PDU-SequenceNumber.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UL-N-PDU-SequenceNumber.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UP-ModeVersions.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UPInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UPInitialisationFrame.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_USCH-ID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UTRAN-CellID.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UeRadioCapabilityMatchRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UeRadioCapabilityMatchResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UnsuccessfulLinking-IEs.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UnsuccessfulOutcome.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UnsuccessfullyTransmittedDataVolume.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UplinkInformationExchangeFailure.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UplinkInformationExchangeRequest.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UplinkInformationExchangeResponse.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UserPlaneInformation.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_UserPlaneMode.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VelocityEstimate.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VerticalAccuracyCode.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VerticalSpeedDirection.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VerticalVelocity.o .libs/libosmo-ranap.lax/libosmo-asn1-ranap.a/RANAP_VoiceSupportMatchIndicator.o [ 426s] libtool: link: ranlib .libs/libosmo-ranap.a [ 426s] libtool: link: rm -fr .libs/libosmo-ranap.lax [ 426s] libtool: link: ( cd ".libs" && rm -f "libosmo-ranap.la" && ln -s "../libosmo-ranap.la" "libosmo-ranap.la" ) [ 426s] /bin/bash ../libtool --tag=CC --mode=link gcc -Wall -I../include -I../include -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -g -O2 -ffile-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wl,-z,relro -o osmo-hnbgw hnbap_encoder.o hnbap_decoder.o hnbap_common.o rua_encoder.o rua_decoder.o rua_common.o rua_msg_factory.o hnbgw.o hnbgw_hnbap.o hnbgw_rua.o hnbgw_ranap.o hnbgw_vty.o context_map.o hnbgw_cn.o -ltalloc -losmocore -ltalloc -losmogsm -losmocore -ltalloc -losmovty -losmocore -ltalloc -losmoctrl -losmogsm -losmocore -ltalloc -lasn1c -losmo-sigtran -losmonetif hnbap/libosmo-asn1-hnbap.a rua/libosmo-asn1-rua.a libosmo-ranap.la [ 426s] libtool: link: gcc -Wall -I../include -I../include -pthread -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -g -O2 -ffile-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wl,-z -Wl,relro -o .libs/osmo-hnbgw hnbap_encoder.o hnbap_decoder.o hnbap_common.o rua_encoder.o rua_decoder.o rua_common.o rua_msg_factory.o hnbgw.o hnbgw_hnbap.o hnbgw_rua.o hnbgw_ranap.o hnbgw_vty.o context_map.o hnbgw_cn.o /usr/lib/x86_64-linux-gnu/libosmovty.so /usr/lib/x86_64-linux-gnu/libosmoctrl.so /usr/lib/x86_64-linux-gnu/libosmogsm.so /usr/lib/x86_64-linux-gnu/libosmocore.so -ltalloc -lasn1c /usr/lib/x86_64-linux-gnu/libosmo-sigtran.so /usr/lib/x86_64-linux-gnu/libosmonetif.so hnbap/libosmo-asn1-hnbap.a rua/libosmo-asn1-rua.a ./.libs/libosmo-ranap.so -pthread [ 426s] /usr/bin/ld: ./.libs/libosmo-ranap.so: undefined reference to `install_lib_element' [ 426s] collect2: error: ld returned 1 exit status [ 426s] make[5]: *** [Makefile:616: osmo-hnbgw] Error 1 [ 426s] make[5]: Leaving directory '/usr/src/packages/BUILD/src' [ 426s] make[4]: *** [Makefile:690: all-recursive] Error 1 [ 426s] make[4]: Leaving directory '/usr/src/packages/BUILD/src' [ 426s] make[3]: *** [Makefile:490: all] Error 2 [ 426s] make[3]: Leaving directory '/usr/src/packages/BUILD/src' [ 426s] make[2]: *** [Makefile:470: all-recursive] Error 1 [ 426s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 426s] make[1]: *** [Makefile:392: all] Error 2 [ 426s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 426s] dh_auto_build: error: make -j1 returned exit code 2 [ 426s] make: *** [debian/rules:9: build] Error 25 [ 426s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 426s] ### VM INTERACTION START ### [ 429s] [ 414.878132] sysrq: Power Off [ 429s] [ 414.885982] reboot: Power down [ 429s] ### VM INTERACTION END ### [ 429s] [ 429s] lamb53 failed "build osmo-iuh_1.0.0.dsc" at Sat Jan 9 11:29:33 UTC 2021. [ 429s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Sat Jan 9 11:48:54 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sat, 9 Jan 2021 11:48:54 +0000 Subject: Change in osmo-bsc[master]: manual: Location Services: clarify BSC side address References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22081 ) Change subject: manual: Location Services: clarify BSC side address ...................................................................... manual: Location Services: clarify BSC side address A clarification that I promised a while back but forgot to submit. Related: SYS#4876 Change-Id: I9b06ac7a2f2cb34cabfcec10af761322b8e962fb --- M doc/manuals/chapters/smlc.adoc 1 file changed, 18 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/81/22081/1 diff --git a/doc/manuals/chapters/smlc.adoc b/doc/manuals/chapters/smlc.adoc index 7fd3e12..3bd4f84 100644 --- a/doc/manuals/chapters/smlc.adoc +++ b/doc/manuals/chapters/smlc.adoc @@ -46,6 +46,9 @@ The point-codes are configurable, and default to OsmoBSC's local point-code 0.23.3 (187), and remote SMLC point-code 0.23.6 (190). +Typically, multiple BSCs connect to the same SMLC, so that each BSC needs to +have a distinct point-code, while the SMLC has a single, fixed point-code. + To configure a different remote SMLC point-code, first configure an arbitrarily named SCCP address in the `cs7` address book, and then apply that to the `smlc-addr` configuration: @@ -55,11 +58,24 @@ sccp-address my-smlc point-code 0.42.6 smlc + enable smlc-addr my-smlc ---- -Similarly, OsmoBSC's local point-code on the Lb-interface is configured by the -`bsc-addr` configuration: +For the BSC side, it suffices to configure a point-code in the `cs7` section, +so that the BSC typically uses the same point-code on A and Lb interfaces. In +this example, the BSC has point-code `1.2.3` on the Lb interface: + +---- +cs7 instance 0 + point-code 1.2.3 +smlc + enable +---- + +It is also possible to configure a distinct BSC's point-code on Lb, using the +`bsc-addr` configuration. In the following example, the BSC uses point-code +`0.42.3` only on the Lb interface, while the A interface remains unchanged: ---- cs7 instance 0 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22081 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I9b06ac7a2f2cb34cabfcec10af761322b8e962fb Gerrit-Change-Number: 22081 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 9 11:53:16 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sat, 9 Jan 2021 11:53:16 +0000 Subject: Change in osmo-bsc[master]: handover_test: safeguard against unhandled chan req In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21981 ) Change subject: handover_test: safeguard against unhandled chan req ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/21981/1/tests/handover/handover_test.c File tests/handover/handover_test.c: https://gerrit.osmocom.org/c/osmo-bsc/+/21981/1/tests/handover/handover_test.c at 709 PS1, Line 709: fprintf(stderr, "Test script is erratic: a channel is requested" > osmo_panic could be used here. throughout the handover_test.c, this is how failures are reported. (wasn't my idea, taken from legacy code) reading osmo_panic doc -- since this is a regression test, we don't need panic handlers or a backtrace... -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21981 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ib0d5c4647af23e6729cc19e98b1870cdde2fe994 Gerrit-Change-Number: 21981 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 09 Jan 2021 11:53:16 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 9 11:53:46 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sat, 9 Jan 2021 11:53:46 +0000 Subject: Change in osmo-bsc[master]: hodec2: fix congestion oscillation bug In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bsc/+/21989 to look at the new patch set (#3). Change subject: hodec2: fix congestion oscillation bug ...................................................................... hodec2: fix congestion oscillation bug When evenly distributing congestion across cells, count the number of occupied lchans surpassing congestion, and not the overall number of free lchans -- which disregards congestion thresholds. Fix the bugs shown by test_congestion_no_oscillation.ho_vty test_balance_congestion_tchf_tchh.ho_vty An example to illustrate what this is about: Cell A has min-free-slots 2, and has 1 slot remaining free. Cell B has min-free-slots 4, and has 2 slots remaining free. If we decide where to place another lchan by counting congested lchans, as implemented in this patch: - Another lchan added, cell A ends up with a congestion count of 2: two more lchans in use than "allowed". - Cell B ends up with a congestion count of 3, which is worse than 2. We decide that cell A should receive the additional lchan, because it will then have a lower congestion count. However, that makes cell A completely occupied, while cell B has two lchans remaining free. There are two alternative fix variants in consideration: - count the number of free lchans, but only after reaching congestion. - calculate the percentage of load surpassing congestion. When using percentage of remaining lchans, we would see that if cell A receives another lchan, it would be 100% loaded above its congestion threshold (2 of 2 remaining lchans in use), but cell B would only be 75% loaded above its treshold (3 of 4 remaining lchans in use). So a percentage comparison would place the next lchan in cell B, leaving the last lchan of cell A free. Another option would be to count the number of remaining free lchans (after the congestion threshold is surpassed), instead of the used ones above the congestion threshold. But then, as soon as all cells are congested, configuring different thresholds would no longer have an effect. I would no longer be able to configure a particular cell to remain more free than others: once congested, only that cell would fill up until it reaches the same load as the other cells. In the field, where all cells likely have the same min-free-slots settings, this entire consideration is moot, because congestion counts correspond 1:1 to percentage between all cells and also 1:1 to remaining free slots. However, when looking at distribution across TCH/F and TCH/H, it is quite likely that min-free-slots settings differ for TCH/F and TCH/H, so this is in fact a thing to consider even for identically configured cells. Related: SYS#5259 Change-Id: Icb373dc6bfc9819446db5e96f71921781fe2026d --- M src/osmo-bsc/handover_decision_2.c M tests/handover/test_balance_congestion_tchf_tchh.ho_vty M tests/handover/test_congestion_no_oscillation.ho_vty M tests/handover/test_congestion_no_oscillation2.ho_vty 4 files changed, 13 insertions(+), 34 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/89/21989/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21989 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Icb373dc6bfc9819446db5e96f71921781fe2026d Gerrit-Change-Number: 21989 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 9 11:53:47 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sat, 9 Jan 2021 11:53:47 +0000 Subject: Change in osmo-bsc[master]: handover_test: add lchan wildcards to meas-rep cmd References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22082 ) Change subject: handover_test: add lchan wildcards to meas-rep cmd ...................................................................... handover_test: add lchan wildcards to meas-rep cmd With 'set-ts-use', it is convenient to build a scenario of lchan usage, but still inconvenient to send measurement reports to all lchans. I need this for testing congestion-check, because each lchan needs to have at least one measurement report, or congestion check is skipped. Example: set-ts-use trx 0 0 states * TCH/F TCH/F - - TCH/HH TCH/HH TCH/H- meas-rep lchan * * * * rxlev 10 rxqual 0 ta 0 This patch adds the '*' for the lchan arguments, usually being bts idx, trx idx, timeslot idx and subslot idx. Use lchan wildcards at the appropriate places to shorten some tests. Change-Id: I441f92348508d45e1069a3dfa1ff3842dbba97d6 --- M tests/handover/handover_test.c M tests/handover/test_balance_congestion_2.ho_vty M tests/handover/test_congestion.ho_vty M tests/handover/test_dyn_ts_amr_tch_f_to_h_congestion_assignment.ho_vty M tests/handover/test_dyn_ts_favor_moving_half_used_tch_h.ho_vty M tests/handover/test_no_congestion.ho_vty 6 files changed, 72 insertions(+), 44 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/82/22082/1 diff --git a/tests/handover/handover_test.c b/tests/handover/handover_test.c index d422a9d..dff1390 100644 --- a/tests/handover/handover_test.c +++ b/tests/handover/handover_test.c @@ -741,6 +741,50 @@ return &ts->lchan[atoi(argv[3])]; } +#define LCHAN_WILDCARD_ARGS "lchan (<0-255>|*) (<0-255>|*) (<0-7>|*) (<0-7>|*)" +#define LCHAN_WILDCARD_ARGS_DOC "identify an lchan\nBTS nr\nall BTS\nTRX nr\nall BTS\nTimeslot nr\nall TS\nSubslot nr\nall subslots\n" + +static void parse_lchan_wildcard_args(const char **argv, void (*cb)(struct gsm_lchan*, void*), void *cb_data) +{ + const char *bts_str = argv[0]; + const char *trx_str = argv[1]; + const char *ts_str = argv[2]; + const char *ss_str = argv[3]; + int bts_num = (strcmp(bts_str, "*") == 0)? -1 : atoi(bts_str); + int trx_num = (strcmp(trx_str, "*") == 0)? -1 : atoi(trx_str); + int ts_num = (strcmp(ts_str, "*") == 0)? -1 : atoi(ts_str); + int ss_num = (strcmp(ss_str, "*") == 0)? -1 : atoi(ss_str); + + int bts_i; + int trx_i; + int ts_i; + int ss_i; + + for (bts_i = ((bts_num == -1) ? 0 : bts_num); + bts_i < ((bts_num == -1) ? bsc_gsmnet->num_bts : bts_num + 1); + bts_i++) { + struct gsm_bts *bts = gsm_bts_num(bsc_gsmnet, bts_i); + + for (trx_i = ((trx_num == -1) ? 0 : trx_num); + trx_i < ((trx_num == -1) ? bts->num_trx : trx_num + 1); + trx_i++) { + struct gsm_bts_trx *trx = gsm_bts_trx_num(bts, trx_i); + + for (ts_i = ((ts_num == -1) ? 0 : ts_num); + ts_i < ((ts_num == -1) ? 8 : ts_num + 1); + ts_i++) { + struct gsm_bts_trx_ts *ts = &trx->ts[ts_i]; + + for (ss_i = ((ss_num == -1) ? 0 : ss_num); + ss_i < ((ss_num == -1) ? pchan_subslots(ts->pchan_is) : ss_num + 1); + ss_i++) { + cb(&ts->lchan[ss_i], cb_data); + } + } + } + } +} + static int vty_step = 1; #define VTY_ECHO() \ @@ -814,18 +858,24 @@ return CMD_SUCCESS; } -static int _meas_rep(struct vty *vty, int argc, const char **argv) +struct meas_rep_data { + int argc; + const char **argv; +}; + +static void _meas_rep_cb(struct gsm_lchan *lc, void *data) { - struct gsm_lchan *lc; + struct meas_rep_data *d = data; + int argc = d->argc; + const char **argv = d->argv; uint8_t rxlev; uint8_t rxqual; uint8_t ta; int i; struct neighbor_meas nm[6] = {}; - lc = parse_lchan_args(argv); - argv += 4; - argc -= 4; + if (!lchan_state_is(lc, LCHAN_ST_ESTABLISHED)) + return; rxlev = atoi(argv[0]); rxqual = atoi(argv[1]); @@ -863,14 +913,24 @@ nm[i].rxlev); } gen_meas_rep(lc, rxlev, rxqual, ta, argc, nm); +} + +static int _meas_rep(struct vty *vty, int argc, const char **argv) +{ + struct meas_rep_data d = { + .argc = argc - 4, + .argv = argv + 4, + }; + parse_lchan_wildcard_args(argv, _meas_rep_cb, &d); return CMD_SUCCESS; } -#define MEAS_REP_ARGS LCHAN_ARGS " rxlev <0-255> rxqual <0-7> ta <0-255>" \ + +#define MEAS_REP_ARGS LCHAN_WILDCARD_ARGS " rxlev <0-255> rxqual <0-7> ta <0-255>" \ " [neighbors] [<0-255>] [<0-255>] [<0-255>] [<0-255>] [<0-255>] [<0-255>]" #define MEAS_REP_DOC "Send measurement report\n" #define MEAS_REP_ARGS_DOC \ - LCHAN_ARGS_DOC \ + LCHAN_WILDCARD_ARGS_DOC \ "rxlev\nrxlev\n" \ "rxqual\nrxqual\n" \ "timing advance\ntiming advance\n" \ diff --git a/tests/handover/test_balance_congestion_2.ho_vty b/tests/handover/test_balance_congestion_2.ho_vty index 9c8b7f9..b157478 100644 --- a/tests/handover/test_balance_congestion_2.ho_vty +++ b/tests/handover/test_balance_congestion_2.ho_vty @@ -8,14 +8,9 @@ codec tch/f FR set-ts-use trx 0 0 states * TCH/F TCH/F TCH/F - - - - set-ts-use trx 1 0 states * TCH/F - - - - - - -meas-rep lchan 0 0 1 0 rxlev 30 rxqual 0 ta 0 neighbors 20 -expect-no-chan +meas-rep lchan * * * * rxlev 30 rxqual 0 ta 0 neighbors 20 meas-rep lchan 0 0 2 0 rxlev 30 rxqual 0 ta 0 neighbors 21 expect-no-chan -meas-rep lchan 0 0 3 0 rxlev 30 rxqual 0 ta 0 neighbors 20 -expect-no-chan -meas-rep lchan 1 0 1 0 rxlev 30 rxqual 0 ta 0 neighbors 20 -expect-no-chan congestion-check expect-ho from lchan 0 0 2 0 to lchan 1 0 2 0 expect-ts-use trx 0 0 states * TCH/F - TCH/F - - - - diff --git a/tests/handover/test_congestion.ho_vty b/tests/handover/test_congestion.ho_vty index 09815e3..529b8de 100644 --- a/tests/handover/test_congestion.ho_vty +++ b/tests/handover/test_congestion.ho_vty @@ -9,20 +9,9 @@ handover2 min-free-slots tch/h 2 set-ts-use trx 0 0 states * TCH/F TCH/F TCH/F - TCH/HH - - set-ts-use trx 1 0 states * TCH/F - - - TCH/H- - - -meas-rep lchan 0 0 1 0 rxlev 30 rxqual 0 ta 0 neighbors 20 20 -expect-no-chan -meas-rep lchan 0 0 2 0 rxlev 30 rxqual 0 ta 0 neighbors 20 20 -expect-no-chan +meas-rep lchan * * * * rxlev 30 rxqual 0 ta 0 neighbors 20 20 meas-rep lchan 0 0 3 0 rxlev 30 rxqual 0 ta 0 neighbors 21 20 expect-no-chan -meas-rep lchan 0 0 5 0 rxlev 30 rxqual 0 ta 0 neighbors 20 20 -expect-no-chan -meas-rep lchan 0 0 5 1 rxlev 30 rxqual 0 ta 0 neighbors 20 20 -expect-no-chan -meas-rep lchan 1 0 1 0 rxlev 30 rxqual 0 ta 0 neighbors 20 20 -expect-no-chan -meas-rep lchan 1 0 5 0 rxlev 30 rxqual 0 ta 0 neighbors 20 20 -expect-no-chan expect-ts-use trx 0 0 states * TCH/F TCH/F TCH/F - TCH/HH - - expect-ts-use trx 1 0 states * TCH/F - - - TCH/H- - - congestion-check diff --git a/tests/handover/test_dyn_ts_amr_tch_f_to_h_congestion_assignment.ho_vty b/tests/handover/test_dyn_ts_amr_tch_f_to_h_congestion_assignment.ho_vty index 3ae5997..f94ad0e 100644 --- a/tests/handover/test_dyn_ts_amr_tch_f_to_h_congestion_assignment.ho_vty +++ b/tests/handover/test_dyn_ts_amr_tch_f_to_h_congestion_assignment.ho_vty @@ -12,10 +12,7 @@ set-ts-use trx 0 0 states * TCH/F TCH/F TCH/F TCH/F pdch pdch pdch # (there must be at leas one measurement report on each lchan for congestion check to work) -meas-rep lchan 0 0 1 0 rxlev 40 rxqual 0 ta 0 neighbors 30 -meas-rep lchan 0 0 2 0 rxlev 40 rxqual 0 ta 0 neighbors 30 -meas-rep lchan 0 0 3 0 rxlev 40 rxqual 0 ta 0 neighbors 30 -meas-rep lchan 0 0 4 0 rxlev 40 rxqual 0 ta 0 neighbors 30 +meas-rep lchan * * * * rxlev 40 rxqual 0 ta 0 neighbors 30 congestion-check expect-no-chan diff --git a/tests/handover/test_dyn_ts_favor_moving_half_used_tch_h.ho_vty b/tests/handover/test_dyn_ts_favor_moving_half_used_tch_h.ho_vty index 794bbef..3d1b009 100644 --- a/tests/handover/test_dyn_ts_favor_moving_half_used_tch_h.ho_vty +++ b/tests/handover/test_dyn_ts_favor_moving_half_used_tch_h.ho_vty @@ -8,10 +8,7 @@ # Test with identical rxlev across lchans (trivial and unrealistic) set-ts-use trx 0 0 states * pdch TCH/HH TCH/H- TCH/HH pdch - - -meas-rep lchan 0 0 2 1 rxlev 30 rxqual 0 ta 0 -meas-rep lchan 0 0 3 0 rxlev 30 rxqual 0 ta 0 -meas-rep lchan 0 0 4 0 rxlev 30 rxqual 0 ta 0 -meas-rep lchan 0 0 4 1 rxlev 30 rxqual 0 ta 0 +meas-rep lchan * * * * rxlev 30 rxqual 0 ta 0 congestion-check expect-ho from lchan 0 0 3 0 to lchan 0 0 1 0 expect-ts-use trx 0 0 states * TCH/F TCH/HH pdch TCH/HH pdch - - diff --git a/tests/handover/test_no_congestion.ho_vty b/tests/handover/test_no_congestion.ho_vty index 651d648..c8328c6 100644 --- a/tests/handover/test_no_congestion.ho_vty +++ b/tests/handover/test_no_congestion.ho_vty @@ -8,17 +8,7 @@ handover2 min-free-slots tch/h 2 set-ts-use trx 0 0 states * TCH/F TCH/F - - TCH/HH - - set-ts-use trx 1 0 states * TCH/F - - - TCH/H- - - -meas-rep lchan 0 0 1 0 rxlev 30 rxqual 0 ta 0 neighbors 20 1 20 -expect-no-chan -meas-rep lchan 0 0 2 0 rxlev 30 rxqual 0 ta 0 neighbors 20 1 20 -expect-no-chan -meas-rep lchan 0 0 5 0 rxlev 30 rxqual 0 ta 0 neighbors 20 1 20 -expect-no-chan -meas-rep lchan 0 0 5 1 rxlev 30 rxqual 0 ta 0 neighbors 20 1 20 -expect-no-chan -meas-rep lchan 1 0 1 0 rxlev 30 rxqual 0 ta 0 neighbors 20 1 20 -expect-no-chan -meas-rep lchan 1 0 5 0 rxlev 30 rxqual 0 ta 0 neighbors 20 1 20 +meas-rep lchan * * * * rxlev 30 rxqual 0 ta 0 neighbors 20 1 20 expect-no-chan congestion-check expect-no-chan -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22082 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I441f92348508d45e1069a3dfa1ff3842dbba97d6 Gerrit-Change-Number: 22082 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 9 11:53:47 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sat, 9 Jan 2021 11:53:47 +0000 Subject: Change in osmo-bsc[master]: handover_test: show bug: add test_balance_congestion_tchf_tchh.ho_vty References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22083 ) Change subject: handover_test: show bug: add test_balance_congestion_tchf_tchh.ho_vty ...................................................................... handover_test: show bug: add test_balance_congestion_tchf_tchh.ho_vty Change-Id: I78fd146fb9b9f9e5d61234065abecbedb9f30a3a --- M tests/handover/handover_tests.ok A tests/handover/test_balance_congestion_tchf_tchh.ho_vty 2 files changed, 54 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/83/22083/1 diff --git a/tests/handover/handover_tests.ok b/tests/handover/handover_tests.ok index 521a0fe..95442a3 100644 --- a/tests/handover/handover_tests.ok +++ b/tests/handover/handover_tests.ok @@ -8,6 +8,7 @@ pass test_amr_tch_h_to_f_congestion_two_cells.ho_vty pass test_balance_congestion.ho_vty pass test_balance_congestion_2.ho_vty +pass test_balance_congestion_tchf_tchh.ho_vty pass test_congestion.ho_vty pass test_congestion_favor_best_target_rxlev.ho_vty pass test_congestion_intra_vs_inter_cell.ho_vty diff --git a/tests/handover/test_balance_congestion_tchf_tchh.ho_vty b/tests/handover/test_balance_congestion_tchf_tchh.ho_vty new file mode 100644 index 0000000..d7b3cf5 --- /dev/null +++ b/tests/handover/test_balance_congestion_tchf_tchh.ho_vty @@ -0,0 +1,53 @@ +# Balance congestion across cells and across TCH/F and TCH/H. + +network + handover2 min-free-slots tch/f 3 + handover2 min-free-slots tch/h 3 + +create-bts trx-count 1 timeslots c+s4 TCH/F TCH/F TCH/F TCH/F TCH/H TCH/H TCH/H + +# both TCH/H and TCH/F have one lchan above congestion, nothing happens +set-ts-use trx 0 0 states * TCH/F TCH/F - - TCH/HH TCH/HH - +meas-rep lchan * * * * rxlev 10 rxqual 0 ta 0 +congestion-check +expect-no-chan + +# TCH/F = +1, TCH/H = +2 above congestion. Moving a TCH/H to TCH/F would just reverse the situation to F=+2 H=+1. Nothing happens. +set-ts-use trx 0 0 states * TCH/F TCH/F - - TCH/HH TCH/HH TCH/H- +meas-rep lchan * * * * rxlev 10 rxqual 0 ta 0 +congestion-check +expect-no-chan + +# F=+1 H=+3. Balance to F=+2 H=+2 +set-ts-use trx 0 0 states * TCH/F TCH/F - - TCH/HH TCH/HH TCH/HH +meas-rep lchan * * * * rxlev 10 rxqual 0 ta 0 +congestion-check +expect-ho from lchan 0 0 5 0 to lchan 0 0 3 0 + +# Now the exact same thing, just with different min-free-slots settings for +# tch/f vs tch/h + +network + handover2 min-free-slots tch/f 3 + handover2 min-free-slots tch/h 5 + +# both TCH/H and TCH/F have one lchan above congestion, nothing happens +set-ts-use trx 0 0 states * TCH/F TCH/F - - TCH/HH - - +meas-rep lchan * * * * rxlev 20 rxqual 0 ta 0 +congestion-check +# FAIL: should be the same as above, but seeing a handover from F to H +expect-ho from lchan 0 0 1 0 to lchan 0 0 6 0 + +# TCH/F = +1, TCH/H = +2 above congestion. Moving a TCH/H to TCH/F would just +# reverse the situation to F=+2 H=+1. Nothing happens. +set-ts-use trx 0 0 states * TCH/F TCH/F - - TCH/HH TCH/H- - +meas-rep lchan * * * * rxlev 20 rxqual 0 ta 0 +congestion-check +expect-no-chan + +# F=+1 H=+3. Balance to F=+2 H=+2 +set-ts-use trx 0 0 states * TCH/F TCH/F - - TCH/HH TCH/HH - +meas-rep lchan * * * * rxlev 20 rxqual 0 ta 0 +congestion-check +# FAIL: should be the same as above, from lchan 0 0 5 0 to lchan 0 0 3 0, but no handover happens +expect-no-chan -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22083 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I78fd146fb9b9f9e5d61234065abecbedb9f30a3a Gerrit-Change-Number: 22083 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Sat Jan 9 12:23:48 2021 From: admin at opensuse.org (OBS Notification) Date: Sat, 09 Jan 2021 12:23:48 +0000 Subject: Build failure of network:osmocom:latest/osmo-msc in xUbuntu_20.10/x86_64 In-Reply-To: References: Message-ID: <5ff9a06dd008c_4d52b06e3fb85f05253b9@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-msc/xUbuntu_20.10/x86_64 Package network:osmocom:latest/osmo-msc failed to build in xUbuntu_20.10/x86_64 Check out the package for editing: osc checkout network:osmocom:latest osmo-msc Last lines of build log: [ 36s] Processing triggers for libc-bin (2.32-0ubuntu3) ... [ 36s] [185/499] installing libzzip-0-13-0.13.62-3.2ubuntu1 [ 36s] Processing triggers for libc-bin (2.32-0ubuntu3) ... [ 36s] [186/499] installing m4-1.4.18-4 [ 36s] [187/499] installing osmo-libasn1c1-0.9.32-1 [ 36s] Processing triggers for libc-bin (2.32-0ubuntu3) ... [ 36s] [188/499] installing unzip-6.0-25ubuntu1 [ 36s] Processing triggers for mime-support (3.64ubuntu1) ... [ 36s] [189/499] installing xz-utils-5.2.4-1ubuntu1 [ 36s] update-alternatives: using /usr/bin/xz to provide /usr/bin/lzma (lzma) in auto mode [ 36s] [190/499] installing bsdextrautils-2.36-3ubuntu1 [ 36s] update-alternatives: using /usr/bin/write.ul to provide /usr/bin/write (write) in auto mode [ 36s] [191/499] installing libasan6-10.2.0-13ubuntu1 [ 36s] Processing triggers for libc-bin (2.32-0ubuntu3) ... [ 36s] [192/499] installing libasn1c1-0.9.32 [ 36s] dpkg: error processing archive .init_b_cache/libasn1c1.deb (--install): [ 36s] trying to overwrite '/usr/lib/x86_64-linux-gnu/libasn1c.so.1.0.1', which is also in package osmo-libasn1c1:amd64 0.9.32-1 [ 36s] dpkg-deb: error: paste subprocess was killed by signal (Broken pipe) [ 36s] Processing triggers for libc-bin (2.32-0ubuntu3) ... [ 36s] Errors were encountered while processing: [ 36s] .init_b_cache/libasn1c1.deb [ 36s] exit ... [ 36s] ### VM INTERACTION START ### [ 39s] [ 27.649689] sysrq: Power Off [ 39s] [ 27.656591] reboot: Power down [ 40s] ### VM INTERACTION END ### [ 40s] [ 40s] goat17 failed "build osmo-msc_1.6.3.dsc" at Sat Jan 9 12:23:35 UTC 2021. [ 40s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Jan 9 12:23:48 2021 From: admin at opensuse.org (OBS Notification) Date: Sat, 09 Jan 2021 12:23:48 +0000 Subject: Build failure of network:osmocom:latest/osmo-msc in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <5ff9a06e423e6_4d52b06e3fb85f0525491@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-msc/xUbuntu_20.04/x86_64 Package network:osmocom:latest/osmo-msc failed to build in xUbuntu_20.04/x86_64 Check out the package for editing: osc checkout network:osmocom:latest osmo-msc Last lines of build log: [ 38s] Processing triggers for libc-bin (2.31-0ubuntu9) ... [ 38s] [163/450] installing libxdmcp6-1:1.1.3-0ubuntu1 [ 38s] Processing triggers for libc-bin (2.31-0ubuntu9) ... [ 38s] [164/450] installing libzzip-0-13-0.13.62-3.2ubuntu1 [ 38s] Processing triggers for libc-bin (2.31-0ubuntu9) ... [ 38s] [165/450] installing m4-1.4.18-4 [ 38s] [166/450] installing osmo-libasn1c1-0.9.32-1 [ 38s] Processing triggers for libc-bin (2.31-0ubuntu9) ... [ 38s] [167/450] installing unzip-6.0-25ubuntu1 [ 38s] Processing triggers for mime-support (3.64ubuntu1) ... [ 38s] [168/450] installing xz-utils-5.2.4-1 [ 38s] update-alternatives: using /usr/bin/xz to provide /usr/bin/lzma (lzma) in auto mode [ 38s] [169/450] installing libasan5-9.3.0-10ubuntu2 [ 38s] Processing triggers for libc-bin (2.31-0ubuntu9) ... [ 38s] [170/450] installing libasn1c1-0.9.32 [ 38s] dpkg: error processing archive .init_b_cache/libasn1c1.deb (--install): [ 38s] trying to overwrite '/usr/lib/x86_64-linux-gnu/libasn1c.so.1.0.1', which is also in package osmo-libasn1c1:amd64 0.9.32-1 [ 38s] dpkg-deb: error: paste subprocess was killed by signal (Broken pipe) [ 38s] Processing triggers for libc-bin (2.31-0ubuntu9) ... [ 38s] Errors were encountered while processing: [ 38s] .init_b_cache/libasn1c1.deb [ 38s] exit ... [ 38s] ### VM INTERACTION START ### [ 41s] [ 27.487887] sysrq: Power Off [ 41s] [ 27.491402] reboot: Power down [ 41s] ### VM INTERACTION END ### [ 41s] [ 41s] old-atreju3 failed "build osmo-msc_1.6.3.dsc" at Sat Jan 9 12:23:35 UTC 2021. [ 41s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Sat Jan 9 15:38:46 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Sat, 9 Jan 2021 15:38:46 +0000 Subject: Change in osmo-gsm-tester[master]: enb: add abstract method stop() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22054 ) Change subject: enb: add abstract method stop() ...................................................................... Patch Set 3: Code-Review-1 (1 comment) https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22054/3/src/osmo_gsm_tester/obj/enb.py File src/osmo_gsm_tester/obj/enb.py: https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22054/3/src/osmo_gsm_tester/obj/enb.py at 331 PS3, Line 331: raise log.Error('stop() not implemented!') This should stay as "pass", since it's abstract and code in it is never going to be executed, because python will fail when allocating the child class or this parent class. -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/22054 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-Change-Id: Ide606e1a6b523997215aa2fa39d4d56ae1f49181 Gerrit-Change-Number: 22054 Gerrit-PatchSet: 3 Gerrit-Owner: srs_andre Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 09 Jan 2021 15:38:46 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 9 15:40:56 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Sat, 9 Jan 2021 15:40:56 +0000 Subject: Change in libosmocore[master]: bssgp_rim: add encoder/decoder for NACC related RIM containers In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21862 ) Change subject: bssgp_rim: add encoder/decoder for NACC related RIM containers ...................................................................... Patch Set 8: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/21862/6/include/osmocom/gprs/gprs_bssgp_rim.h File include/osmocom/gprs/gprs_bssgp_rim.h: https://gerrit.osmocom.org/c/libosmocore/+/21862/6/include/osmocom/gprs/gprs_bssgp_rim.h at 7 PS6, Line 7: struct { > Makes sense, but I could not find a parsing function for the struct. [?] see gsm0808_decode_cell_id_u() -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21862 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ibbc7fd67658e3040c12abb5706fe9d1f31894352 Gerrit-Change-Number: 21862 Gerrit-PatchSet: 8 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Sat, 09 Jan 2021 15:40:56 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Comment-In-Reply-To: dexter Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 9 15:44:27 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Sat, 9 Jan 2021 15:44:27 +0000 Subject: Change in osmo-bsc[master]: manual: Location Services: clarify BSC side address In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22081 ) Change subject: manual: Location Services: clarify BSC side address ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/22081/1/doc/manuals/chapters/smlc.adoc File doc/manuals/chapters/smlc.adoc: https://gerrit.osmocom.org/c/osmo-bsc/+/22081/1/doc/manuals/chapters/smlc.adoc at 85 PS1, Line 85: bsc-addr my-bsc-on-lb You also probably miss an "enable" line here -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22081 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I9b06ac7a2f2cb34cabfcec10af761322b8e962fb Gerrit-Change-Number: 22081 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Sat, 09 Jan 2021 15:44:27 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 9 15:48:40 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Sat, 9 Jan 2021 15:48:40 +0000 Subject: Change in osmo-bsc[master]: hodec2: fix congestion oscillation bug In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21989 ) Change subject: hodec2: fix congestion oscillation bug ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21989 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Icb373dc6bfc9819446db5e96f71921781fe2026d Gerrit-Change-Number: 21989 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 09 Jan 2021 15:48:40 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 9 15:50:15 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Sat, 9 Jan 2021 15:50:15 +0000 Subject: Change in osmo-bsc[master]: handover_test: add lchan wildcards to meas-rep cmd In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22082 ) Change subject: handover_test: add lchan wildcards to meas-rep cmd ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22082 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I441f92348508d45e1069a3dfa1ff3842dbba97d6 Gerrit-Change-Number: 22082 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 09 Jan 2021 15:50:15 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 9 15:51:04 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Sat, 9 Jan 2021 15:51:04 +0000 Subject: Change in osmo-bsc[master]: handover_test: show bug: add test_balance_congestion_tchf_tchh.ho_vty In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22083 ) Change subject: handover_test: show bug: add test_balance_congestion_tchf_tchh.ho_vty ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22083 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I78fd146fb9b9f9e5d61234065abecbedb9f30a3a Gerrit-Change-Number: 22083 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 09 Jan 2021 15:51:04 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 9 23:10:25 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sat, 9 Jan 2021 23:10:25 +0000 Subject: Change in osmo-bsc[master]: hodec2: fix congestion oscillation bug In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bsc/+/21989 to look at the new patch set (#4). Change subject: hodec2: fix congestion oscillation bug ...................................................................... hodec2: fix congestion oscillation bug When evenly distributing congestion across cells, count the number of occupied lchans surpassing congestion, and not the overall number of free lchans -- which disregards congestion thresholds. Fix the bugs shown by test_congestion_no_oscillation.ho_vty test_balance_congestion_tchf_tchh.ho_vty An example to illustrate what this is about: Cell A has min-free-slots 2, and has 1 slot remaining free. Cell B has min-free-slots 4, and has 2 slots remaining free. If we decide where to place another lchan by counting congested lchans, as implemented in this patch: - Another lchan added, cell A ends up with a congestion count of 2: two more lchans in use than "allowed". - Cell B ends up with a congestion count of 3, which is worse than 2. We decide that cell A should receive the additional lchan, because it will then have a lower congestion count. However, that makes cell A completely occupied, while cell B has two lchans remaining free. There are two alternative fix variants in consideration: - count the number of free lchans, but only after reaching congestion. - calculate the percentage of load surpassing congestion. When using percentage of remaining lchans, we would see that if cell A receives another lchan, it would be 100% loaded above its congestion threshold (2 of 2 remaining lchans in use), but cell B would only be 75% loaded above its treshold (3 of 4 remaining lchans in use). So a percentage comparison would place the next lchan in cell B, leaving the last lchan of cell A free. Another option would be to count the number of remaining free lchans (after the congestion threshold is surpassed), instead of the used ones above the congestion threshold. But then, as soon as all cells are congested, configuring different thresholds would no longer have an effect. I would no longer be able to configure a particular cell to remain more free than others: once congested, only that cell would fill up until it reaches the same load as the other cells. In the field, where all cells likely have the same min-free-slots settings, this entire consideration is moot, because congestion counts correspond 1:1 to percentage between all cells and also 1:1 to remaining free slots. However, when looking at distribution across TCH/F and TCH/H, it is quite likely that min-free-slots settings differ for TCH/F and TCH/H, so this is in fact a thing to consider even for identically configured cells. Related: SYS#5259 Change-Id: Icb373dc6bfc9819446db5e96f71921781fe2026d --- M src/osmo-bsc/handover_decision_2.c M tests/handover/test_balance_congestion_tchf_tchh.ho_vty M tests/handover/test_congestion_no_oscillation.ho_vty M tests/handover/test_congestion_no_oscillation2.ho_vty 4 files changed, 14 insertions(+), 36 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/89/21989/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21989 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Icb373dc6bfc9819446db5e96f71921781fe2026d Gerrit-Change-Number: 21989 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 9 23:10:26 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sat, 9 Jan 2021 23:10:26 +0000 Subject: Change in osmo-bsc[master]: handover_test: add test_balance_congestion_by_percentage.ho_vty References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22084 ) Change subject: handover_test: add test_balance_congestion_by_percentage.ho_vty ...................................................................... handover_test: add test_balance_congestion_by_percentage.ho_vty Considering feedback by a customer, we prefer congestion balancing by using percentage of overload instead of number of lchans of overload. This test is intended to illustrate the change in behavior. Change-Id: I314915718f66aec50e8dcf94569b0a52ca34b96f --- A tests/handover/test_balance_congestion_by_percentage.ho_vty 1 file changed, 34 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/84/22084/1 diff --git a/tests/handover/test_balance_congestion_by_percentage.ho_vty b/tests/handover/test_balance_congestion_by_percentage.ho_vty new file mode 100644 index 0000000..e00636e --- /dev/null +++ b/tests/handover/test_balance_congestion_by_percentage.ho_vty @@ -0,0 +1,34 @@ +# To balance congestion, use the remaining free percentage instead of free lchan counts. +# +# Cell A has min-free-slots 2, and has all slots occupied. +# Cell B has min-free-slots 4, and has 2 slots remaining free. +# +# If we count congested lchans: cell A has a congestion count of 2: two more lchans in use than "allowed". +# If we move one lchan over to cell B, it ends up with a congestion count of 3, which is worse than 2. +# So when counting lchans, we decide that cell A should remain full. +# +# Instead, when comparing percentage of remaining lchans, we would see that cell A is loaded 100% above congestion (2 of +# 2 remaining lchans in use), but when moving one lchan to cell B, it would only be 75% loaded above its treshold (3 of +# 4 remaining lchans in use). So a percentage comparison would cause a handover to cell B. +# +# This test currently expects the behavior of counting lchans; a patch will change to use percentage, which should +# reflect in this test. + +create-bts trx-count 1 timeslots c+s4 TCH/F TCH/F TCH/F TCH/F TCH/F TCH/F PDCH +create-bts trx-count 1 timeslots c+s4 TCH/F TCH/F TCH/F TCH/F TCH/F TCH/F PDCH + +network + bts 0 + handover2 min-free-slots tch/f 2 + bts 1 + handover2 min-free-slots tch/f 4 + +set-ts-use trx 0 0 states * TCH/F TCH/F TCH/F TCH/F TCH/F TCH/F * +set-ts-use trx 1 0 states * TCH/F TCH/F TCH/F TCH/F - - * + +meas-rep lchan * * * * rxlev 40 rxqual 0 ta 0 neighbors 30 +expect-no-chan + +# bts 0 is full, but by counting lchans above congestion, it should remain full. +congestion-check +expect-no-chan -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22084 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I314915718f66aec50e8dcf94569b0a52ca34b96f Gerrit-Change-Number: 22084 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 9 23:10:26 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sat, 9 Jan 2021 23:10:26 +0000 Subject: Change in osmo-bsc[master]: hodec2: to balance congestion, use overload percent References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22085 ) Change subject: hodec2: to balance congestion, use overload percent ...................................................................... hodec2: to balance congestion, use overload percent For balancing load across congested cells and across congested TCH/* kinds, instead of comparing the number of lchans above the configured congestion threshold, compare the percent of lchans of overload. In short, using a percentage prevents cells with less min-free-slots to fill up 100% while neighbor cells still may have several free lchans available. An obvious example of why this is desirable is illustrated by test_balance_congestion_by_percentage.ho_vty: Cell A has min-free-slots 2, and has all slots occupied. Cell B has min-free-slots 4, and has 2 slots remaining free. If we count congested lchans as in current master: cell A has a congestion count of 2: two more lchans in use than "allowed". If we move one lchan over to cell B, it ends up with a congestion count of 3, which is worse than 2. So when counting lchans, we decide that cell A should remain full. Instead, when comparing percentage of remaining lchans, we would see that cell A is loaded 100% above congestion (2 of 2 remaining lchans in use), but when moving one lchan to cell B, that would only be 75% loaded above its treshold (3 of 4 remaining lchans in use). So a percentage comparison would cause a handover to cell B. Change-Id: I55234c6c99eb02ceee52be0d7388bea14304930f --- M src/osmo-bsc/handover_decision_2.c M tests/handover/handover_tests.ok M tests/handover/test_balance_congestion_by_percentage.ho_vty M tests/handover/test_balance_congestion_tchf_tchh.ho_vty 4 files changed, 52 insertions(+), 19 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/85/22085/1 diff --git a/src/osmo-bsc/handover_decision_2.c b/src/osmo-bsc/handover_decision_2.c index c265f5f..d29f762 100644 --- a/src/osmo-bsc/handover_decision_2.c +++ b/src/osmo-bsc/handover_decision_2.c @@ -25,6 +25,7 @@ #include #include #include +#include #include #include @@ -387,6 +388,27 @@ return false; } +#define LOAD_PRECISION 6 + +/* Return a number representing overload, i.e. the fraction of lchans used above the congestion threshold. + * Think of it as a percentage of used lchans above congestion, just represented in a fixed-point fraction with N + * decimal digits of fractional part. If there is no congestion (free_tch > min_free_tch), return 0. + */ +static int32_t load_above_congestion(int free_tch, int min_free_tch) +{ + int32_t v; + /* Avoid division by zero, and return zero overload when there is no congestion threshold. */ + if (!min_free_tch + || free_tch >= min_free_tch) + return 0; + /* There can be no negative amount of free TCH/x, clamp to a minimum of zero available slots. This could + * theoretically happen when a caller subtracts one from free_tch to regard the slots after a handover. */ + v = min_free_tch - OSMO_MAX(0, free_tch); + v *= pow(10, LOAD_PRECISION); + v /= min_free_tch; + return v; +} + /* * Check what requirements the given cell fulfills. * A bit mask of fulfilled requirements is returned. @@ -443,7 +465,7 @@ { uint8_t requirement = 0; unsigned int penalty_time; - int current_overbooked; + int32_t current_overbooked; c->requirements = 0; /* Requirement A */ @@ -626,17 +648,25 @@ /* Requirement C */ - /* the nr of lchans surpassing congestion on the target cell must be <= the lchans surpassing congestion on the - * current cell _after_ handover/assignment */ - current_overbooked = c->current.min_free_tch - c->current.free_tch; + /* the load percentage above congestion on the target cell *after* HO must be < the load percentage above + * congestion on the current cell, hence the - 1 on the target. */ + current_overbooked = load_above_congestion(c->current.free_tch, c->current.min_free_tch); if (requirement & REQUIREMENT_A_TCHF) { - int target_overbooked = c->target.min_free_tchf - c->target.free_tchf; - if (target_overbooked + 1 <= current_overbooked - 1) + int32_t target_overbooked = load_above_congestion(c->target.free_tchf - 1, c->target.min_free_tchf); + LOGPHOLCHANTOBTS(c->current.lchan, c->target.bts, LOGL_DEBUG, + "current overbooked = %s%%, TCH/F target overbooked after HO = %s%%\n", + osmo_int_to_float_str_c(OTC_SELECT, current_overbooked, LOAD_PRECISION - 2), + osmo_int_to_float_str_c(OTC_SELECT, target_overbooked, LOAD_PRECISION - 2)); + if (target_overbooked < current_overbooked) requirement |= REQUIREMENT_C_TCHF; } if (requirement & REQUIREMENT_A_TCHH) { - int target_overbooked = c->target.min_free_tchh - c->target.free_tchh; - if (target_overbooked + 1 <= current_overbooked - 1) + int32_t target_overbooked = load_above_congestion(c->target.free_tchh - 1, c->target.min_free_tchh); + LOGPHOLCHANTOBTS(c->current.lchan, c->target.bts, LOGL_DEBUG, + "current overbooked = %s%%, TCH/H target overbooked after HO = %s%%\n", + osmo_int_to_float_str_c(OTC_SELECT, current_overbooked, LOAD_PRECISION - 2), + osmo_int_to_float_str_c(OTC_SELECT, target_overbooked, LOAD_PRECISION - 2)); + if (target_overbooked < current_overbooked) requirement |= REQUIREMENT_C_TCHH; } diff --git a/tests/handover/handover_tests.ok b/tests/handover/handover_tests.ok index 95442a3..d0c1c00 100644 --- a/tests/handover/handover_tests.ok +++ b/tests/handover/handover_tests.ok @@ -8,6 +8,7 @@ pass test_amr_tch_h_to_f_congestion_two_cells.ho_vty pass test_balance_congestion.ho_vty pass test_balance_congestion_2.ho_vty +pass test_balance_congestion_by_percentage.ho_vty pass test_balance_congestion_tchf_tchh.ho_vty pass test_congestion.ho_vty pass test_congestion_favor_best_target_rxlev.ho_vty diff --git a/tests/handover/test_balance_congestion_by_percentage.ho_vty b/tests/handover/test_balance_congestion_by_percentage.ho_vty index e00636e..0d8071d 100644 --- a/tests/handover/test_balance_congestion_by_percentage.ho_vty +++ b/tests/handover/test_balance_congestion_by_percentage.ho_vty @@ -31,4 +31,4 @@ # bts 0 is full, but by counting lchans above congestion, it should remain full. congestion-check -expect-no-chan +expect-ho from lchan 0 0 1 0 to lchan 1 0 5 0 diff --git a/tests/handover/test_balance_congestion_tchf_tchh.ho_vty b/tests/handover/test_balance_congestion_tchf_tchh.ho_vty index 7f9039f..62f07bf 100644 --- a/tests/handover/test_balance_congestion_tchf_tchh.ho_vty +++ b/tests/handover/test_balance_congestion_tchf_tchh.ho_vty @@ -6,46 +6,48 @@ create-bts trx-count 1 timeslots c+s4 TCH/F TCH/F TCH/F TCH/F TCH/H TCH/H TCH/H -# both TCH/H and TCH/F have one lchan above congestion, nothing happens +# both TCH/H and TCH/F have one lchan = 33% above congestion, nothing happens set-ts-use trx 0 0 states * TCH/F TCH/F - - TCH/HH TCH/HH - meas-rep lchan * * * * rxlev 10 rxqual 0 ta 0 congestion-check expect-no-chan -# TCH/F = +1, TCH/H = +2 above congestion. Moving a TCH/H to TCH/F would just reverse the situation to F=+2 H=+1. Nothing happens. +# TCH/F = +1 = 33%, TCH/H = +2 = 66% above congestion. +# Moving a TCH/H to TCH/F would just reverse the situation to F=+2=66%. Nothing happens. set-ts-use trx 0 0 states * TCH/F TCH/F - - TCH/HH TCH/HH TCH/H- meas-rep lchan * * * * rxlev 10 rxqual 0 ta 0 congestion-check expect-no-chan -# F=+1 H=+3. Balance to F=+2 H=+2 +# F=+1=33% H=+3=100%. Balance to F=+2=66% (which is < 100%) and H=+2=66% set-ts-use trx 0 0 states * TCH/F TCH/F - - TCH/HH TCH/HH TCH/HH meas-rep lchan * * * * rxlev 10 rxqual 0 ta 0 congestion-check expect-ho from lchan 0 0 5 0 to lchan 0 0 3 0 -# Now the exact same thing, just with different min-free-slots settings for -# tch/f vs tch/h +# Now similar load percentages, just with different min-free-slots settings for tch/f vs tch/h. network handover2 min-free-slots tch/f 3 handover2 min-free-slots tch/h 5 -# both TCH/H and TCH/F have one lchan above congestion, nothing happens +# TCH/F has 1/3 = 33%, TCH/H has 1/5 = 20% overload. +# Moving one to TCH/H would mean 40% overload on TCH/H, which is above the current TCH/F of 33%. +# Nothing happens. set-ts-use trx 0 0 states * TCH/F TCH/F - - TCH/HH - - meas-rep lchan * * * * rxlev 20 rxqual 0 ta 0 congestion-check expect-no-chan -# TCH/F = +1, TCH/H = +2 above congestion. Moving a TCH/H to TCH/F would just -# reverse the situation to F=+2 H=+1. Nothing happens. +# TCH/F = +1 = 33%, TCH/H = +2 = 40% above congestion. Moving a TCH/H to TCH/F would result +# in F=+2=66%>40%. Nothing happens. set-ts-use trx 0 0 states * TCH/F TCH/F - - TCH/HH TCH/H- - meas-rep lchan * * * * rxlev 20 rxqual 0 ta 0 congestion-check expect-no-chan -# F=+1 H=+3. Balance to F=+2 H=+2 -set-ts-use trx 0 0 states * TCH/F TCH/F - - TCH/HH TCH/HH - +# F=+1=33% H=+4=80%. Balance to F=+2=66%<80% and H=+3=60% +set-ts-use trx 0 0 states * TCH/F TCH/F - - TCH/HH TCH/HH TCH/H- meas-rep lchan * * * * rxlev 20 rxqual 0 ta 0 congestion-check expect-ho from lchan 0 0 5 0 to lchan 0 0 3 0 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22085 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I55234c6c99eb02ceee52be0d7388bea14304930f Gerrit-Change-Number: 22085 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Sun Jan 10 01:48:41 2021 From: admin at opensuse.org (OBS Notification) Date: Sun, 10 Jan 2021 01:48:41 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.10/x86_64 In-Reply-To: References: Message-ID: <5ffa5cff646fc_4d52b06e3fb85f069422@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/xUbuntu_20.10/x86_64 Package network:osmocom:nightly/simtrace2 failed to build in xUbuntu_20.10/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 155s] [COMPILING apps/dfu/main.c] [ 155s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 155s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 155s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 155s] Memory region Used Size Region Size %age Used [ 155s] rom: 16580 B 16 KB 101.20% [ 155s] ram: 11672 B 48 KB 23.75/usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 155s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 155s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 155s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 155s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 155s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 155s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 196 bytes [ 155s] collect2: error: ld returned 1 exit status [ 155s] % [ 155s] make[2]: *** [Makefile:234: flash] Error 1 [ 155s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 155s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 155s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 155s] dh_auto_build: error: make -j1 returned exit code 2 [ 155s] make: *** [debian/rules:16: build] Error 25 [ 155s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 155s] ### VM INTERACTION START ### [ 158s] [ 146.982912] sysrq: Power Off [ 158s] [ 146.990039] reboot: Power down [ 158s] ### VM INTERACTION END ### [ 158s] [ 158s] lamb24 failed "build simtrace2_0.7.0.69.aadd.dsc" at Sun Jan 10 01:46:54 UTC 2021. [ 158s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sun Jan 10 01:48:41 2021 From: admin at opensuse.org (OBS Notification) Date: Sun, 10 Jan 2021 01:48:41 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <5ffa5d003e07e_4d52b06e3fb85f0694335@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/xUbuntu_20.04/x86_64 Package network:osmocom:nightly/simtrace2 failed to build in xUbuntu_20.04/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 156s] [COMPILING libboard/qmod/source/wwan_perst.c] [ 156s] [COMPILING libboard/qmod/source/card_pres.c] [ 156s] [COMPILING libboard/qmod/source/wwan_led.c] [ 156s] [COMPILING libboard/qmod/source/i2c.c] [ 156s] [COMPILING libboard/qmod/source/board_qmod.c] [ 156s] [COMPILING apps/dfu/main.c] [ 157s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 157s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 157s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 157s] Memory region Used Size Region Size %age Used [ 157s] rom: 16588 B 16 KB 101.25% [ 157s] ram: 11672 B 48 KB 23.75/usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 157s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 204 bytes [ 157s] collect2: error: ld returned 1 exit status [ 157s] % [ 157s] make[2]: *** [Makefile:234: flash] Error 1 [ 157s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 157s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 157s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 157s] dh_auto_build: error: make -j1 returned exit code 2 [ 157s] make: *** [debian/rules:16: build] Error 25 [ 157s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 157s] ### VM INTERACTION START ### [ 160s] [ 149.246296] sysrq: Power Off [ 160s] [ 149.253627] reboot: Power down [ 160s] ### VM INTERACTION END ### [ 160s] [ 160s] lamb02 failed "build simtrace2_0.7.0.69.aadd.dsc" at Sun Jan 10 01:47:05 UTC 2021. [ 160s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Sun Jan 10 18:32:10 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 10 Jan 2021 18:32:10 +0000 Subject: Change in osmo-bsc[master]: handover_test: add test_balance_congestion_by_percentage.ho_vty In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bsc/+/22084 to look at the new patch set (#2). Change subject: handover_test: add test_balance_congestion_by_percentage.ho_vty ...................................................................... handover_test: add test_balance_congestion_by_percentage.ho_vty Considering feedback by a customer, we prefer congestion balancing by using percentage of overload instead of number of lchans of overload. This test is intended to illustrate the change in behavior. Change-Id: I314915718f66aec50e8dcf94569b0a52ca34b96f --- M tests/handover/handover_tests.ok A tests/handover/test_balance_congestion_by_percentage.ho_vty 2 files changed, 35 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/84/22084/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22084 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I314915718f66aec50e8dcf94569b0a52ca34b96f Gerrit-Change-Number: 22084 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 10 20:22:11 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 10 Jan 2021 20:22:11 +0000 Subject: Change in osmo-bsc[master]: hodec2: fix congestion oscillation bug In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bsc/+/21989 to look at the new patch set (#5). Change subject: hodec2: fix congestion oscillation bug ...................................................................... hodec2: fix congestion oscillation bug When evenly distributing congestion across cells, count the number of occupied lchans surpassing congestion, and not the overall number of free lchans -- which disregards congestion thresholds. Fix the bugs shown by test_congestion_no_oscillation.ho_vty test_balance_congestion_tchf_tchh.ho_vty This implements a simple calculation for congestion load by counting lchans in use above congestion. An improvement of this calculation using percent follows in I55234c6c99eb02ceee52be0d7388bea14304930f. Related: SYS#5259 Change-Id: Icb373dc6bfc9819446db5e96f71921781fe2026d --- M src/osmo-bsc/handover_decision_2.c M tests/handover/test_balance_congestion_tchf_tchh.ho_vty M tests/handover/test_congestion_no_oscillation.ho_vty M tests/handover/test_congestion_no_oscillation2.ho_vty 4 files changed, 14 insertions(+), 36 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/89/21989/5 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21989 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Icb373dc6bfc9819446db5e96f71921781fe2026d Gerrit-Change-Number: 21989 Gerrit-PatchSet: 5 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 10 20:22:11 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 10 Jan 2021 20:22:11 +0000 Subject: Change in osmo-bsc[master]: handover_test: add test_balance_congestion_by_percentage.ho_vty In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bsc/+/22084 to look at the new patch set (#3). Change subject: handover_test: add test_balance_congestion_by_percentage.ho_vty ...................................................................... handover_test: add test_balance_congestion_by_percentage.ho_vty Considering feedback by a customer, we prefer congestion balancing by using percentage of overload instead of number of lchans of overload. This test is intended to illustrate the change in behavior. Change-Id: I314915718f66aec50e8dcf94569b0a52ca34b96f --- M tests/handover/handover_tests.ok A tests/handover/test_balance_congestion_by_percentage.ho_vty 2 files changed, 35 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/84/22084/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22084 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I314915718f66aec50e8dcf94569b0a52ca34b96f Gerrit-Change-Number: 22084 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 10 20:22:11 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 10 Jan 2021 20:22:11 +0000 Subject: Change in osmo-bsc[master]: hodec2: to balance congestion, use overload percent In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bsc/+/22085 to look at the new patch set (#3). Change subject: hodec2: to balance congestion, use overload percent ...................................................................... hodec2: to balance congestion, use overload percent For balancing load across congested cells and across congested TCH/* kinds, instead of comparing the number of lchans above the configured congestion threshold, compare the percent of lchans of overload. In short, using a percentage prevents cells with less min-free-slots to fill up 100% while neighbor cells still may have several free lchans available. An obvious example of why this is desirable is illustrated by test_balance_congestion_by_percentage.ho_vty: Cell A has min-free-slots 2, and has all slots occupied. Cell B has min-free-slots 4, and has 2 slots remaining free. If we count congested lchans as in current master: cell A has a congestion count of 2: two more lchans in use than "allowed". If we move one lchan over to cell B, it ends up with a congestion count of 3, which is worse than 2. So when counting lchans, we decide that cell A should remain full. Instead, when comparing percentage of remaining lchans, we would see that cell A is loaded 100% above congestion (2 of 2 remaining lchans in use), but when moving one lchan to cell B, that would only be 75% loaded above its treshold (3 of 4 remaining lchans in use). So a percentage comparison would cause a handover to cell B. Related: SYS#5259 Change-Id: I55234c6c99eb02ceee52be0d7388bea14304930f --- M src/osmo-bsc/handover_decision_2.c M tests/handover/test_balance_congestion_by_percentage.ho_vty M tests/handover/test_balance_congestion_tchf_tchh.ho_vty 3 files changed, 51 insertions(+), 19 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/85/22085/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22085 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I55234c6c99eb02ceee52be0d7388bea14304930f Gerrit-Change-Number: 22085 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 10 21:17:11 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Sun, 10 Jan 2021 21:17:11 +0000 Subject: Change in osmo-bsc[master]: hodec2: fix congestion oscillation bug In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21989 ) Change subject: hodec2: fix congestion oscillation bug ...................................................................... Patch Set 5: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21989 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Icb373dc6bfc9819446db5e96f71921781fe2026d Gerrit-Change-Number: 21989 Gerrit-PatchSet: 5 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sun, 10 Jan 2021 21:17:11 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 10 21:18:00 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Sun, 10 Jan 2021 21:18:00 +0000 Subject: Change in osmo-bsc[master]: handover_test: add test_balance_congestion_by_percentage.ho_vty In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22084 ) Change subject: handover_test: add test_balance_congestion_by_percentage.ho_vty ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22084 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I314915718f66aec50e8dcf94569b0a52ca34b96f Gerrit-Change-Number: 22084 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sun, 10 Jan 2021 21:18:00 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 00:28:27 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 11 Jan 2021 00:28:27 +0000 Subject: Change in docker-playground[master]: ttcn3-gbproxy-test: Fix pcap capture with dumpcap In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22047 ) Change subject: ttcn3-gbproxy-test: Fix pcap capture with dumpcap ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22047 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I11dcf9efd0b06544a82e31dec03fe76e182fd0d3 Gerrit-Change-Number: 22047 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 11 Jan 2021 00:28:27 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 00:29:32 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 11 Jan 2021 00:29:32 +0000 Subject: Change in osmo-trx[master]: osmo-trx.spec: move ipc-driver-test into package ipc-test In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/22053 ) Change subject: osmo-trx.spec: move ipc-driver-test into package ipc-test ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/22053 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: Iff91e09684167247c9c7de0141451a5b9344aa0d Gerrit-Change-Number: 22053 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 11 Jan 2021 00:29:32 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 00:30:17 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 11 Jan 2021 00:30:17 +0000 Subject: Change in osmo-trx[master]: osmo-trx.spec: move ipc-driver-test into package ipc-test In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/22053 ) Change subject: osmo-trx.spec: move ipc-driver-test into package ipc-test ...................................................................... osmo-trx.spec: move ipc-driver-test into package ipc-test Allow to drop the uhd runtime dependency of osmo-trx-ipc. uhd is only required for the driver-test utility. Related: SYS#5266 Change-Id: Iff91e09684167247c9c7de0141451a5b9344aa0d --- M contrib/osmo-trx.spec.in 1 file changed, 13 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve daniel: Looks good to me, approved diff --git a/contrib/osmo-trx.spec.in b/contrib/osmo-trx.spec.in index ace7212..8f4bb48 100644 --- a/contrib/osmo-trx.spec.in +++ b/contrib/osmo-trx.spec.in @@ -149,6 +149,16 @@ between different telecommunication associations for developing new generations of mobile phone networks. (post-2G/GSM) +%package ipc-test +Summary: SDR transceiver that implements Layer 1 of a GSM BTS (IPC) driver test utility +Group: Productivity/Telephony/Servers + +%description ipc-test +OsmoTRX is a software-defined radio transceiver that implements the Layer 1 +physical layer of a BTS comprising the following 3GPP specifications: + +This package include the test tools for osmo-trx-ipc + %prep %setup -q @@ -234,9 +244,11 @@ %files ipc %{_bindir}/osmo-trx-ipc -%{_bindir}/ipc-driver-test %dir %{_sysconfdir}/osmocom %config(noreplace) %{_sysconfdir}/osmocom/osmo-trx-ipc.cfg %{_unitdir}/osmo-trx-ipc.service +%files ipc-test +%{_bindir}/ipc-driver-test + %changelog -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/22053 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: Iff91e09684167247c9c7de0141451a5b9344aa0d Gerrit-Change-Number: 22053 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 00:43:02 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 11 Jan 2021 00:43:02 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Enable IP-SNS towards SGSN References: Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22086 ) Change subject: gbproxy: Enable IP-SNS towards SGSN ...................................................................... gbproxy: Enable IP-SNS towards SGSN Change-Id: Ia9cb646d57cd3bf77aebf60318e5f76599d516a5 --- M gbproxy/GBProxy_Tests.cfg M gbproxy/GBProxy_Tests.fr.cfg M gbproxy/osmo-gbproxy.cfg M gbproxy/osmo-gbproxy.fr.cfg 4 files changed, 9 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/86/22086/1 diff --git a/gbproxy/GBProxy_Tests.cfg b/gbproxy/GBProxy_Tests.cfg index 638946c..0e442d1 100644 --- a/gbproxy/GBProxy_Tests.cfg +++ b/gbproxy/GBProxy_Tests.cfg @@ -14,7 +14,7 @@ [MODULE_PARAMETERS] GBProxy_Tests.mp_nsconfig_sgsn := { { - handle_sns := false + handle_sns := true } } diff --git a/gbproxy/GBProxy_Tests.fr.cfg b/gbproxy/GBProxy_Tests.fr.cfg index d316fe5..234b2f4 100644 --- a/gbproxy/GBProxy_Tests.fr.cfg +++ b/gbproxy/GBProxy_Tests.fr.cfg @@ -14,6 +14,12 @@ [MODULE_PARAMETERS] GBProxy_Tests.mp_enable_bss_load_sharing := true; +GBProxy_Tests.mp_nsconfig_sgsn := { + { + handle_sns := true + } +} + GBProxy_Tests.mp_nsconfig_pcu := { { nsei := 2001, diff --git a/gbproxy/osmo-gbproxy.cfg b/gbproxy/osmo-gbproxy.cfg index a3148e2..5ce0dfc 100644 --- a/gbproxy/osmo-gbproxy.cfg +++ b/gbproxy/osmo-gbproxy.cfg @@ -12,7 +12,7 @@ listen 127.0.0.1 23000 accept-ipaccess nse 101 - nsvc ipa local 127.0.0.1 7777 nsvci 101 + ip-sns 127.0.0.1 7777 timer tns-block 3 timer tns-block-retries 3 timer tns-reset 3 diff --git a/gbproxy/osmo-gbproxy.fr.cfg b/gbproxy/osmo-gbproxy.fr.cfg index bd94c5b..0898acc 100644 --- a/gbproxy/osmo-gbproxy.fr.cfg +++ b/gbproxy/osmo-gbproxy.fr.cfg @@ -34,7 +34,7 @@ timer tns-alive 3 timer tns-alive-retries 10 nse 101 - nsvc ipa local 127.0.0.1 7777 nsvci 101 + ip-sns 127.0.0.1 7777 nse 2001 nsvc fr hdlcnet1 dlci 16 nsvci 1 nsvc fr hdlcnet2 dlci 17 nsvci 2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22086 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ia9cb646d57cd3bf77aebf60318e5f76599d516a5 Gerrit-Change-Number: 22086 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 00:45:21 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 11 Jan 2021 00:45:21 +0000 Subject: Change in docker-playground[master]: gbproxy: Enable IP-SNS towards SGSN References: Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/22087 ) Change subject: gbproxy: Enable IP-SNS towards SGSN ...................................................................... gbproxy: Enable IP-SNS towards SGSN Change-Id: Iebbad7131d73c15ef7ded5eadce882c653b8bf2c Depends: Ia9cb646d57cd3bf77aebf60318e5f76599d516a5 (osmo-ttcn3-hacks) --- M ttcn3-gbproxy-test/GBProxy_Tests.cfg M ttcn3-gbproxy-test/osmo-gbproxy.cfg 2 files changed, 2 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/87/22087/1 diff --git a/ttcn3-gbproxy-test/GBProxy_Tests.cfg b/ttcn3-gbproxy-test/GBProxy_Tests.cfg index 6b097a3..7bc38d6 100644 --- a/ttcn3-gbproxy-test/GBProxy_Tests.cfg +++ b/ttcn3-gbproxy-test/GBProxy_Tests.cfg @@ -14,6 +14,7 @@ [MODULE_PARAMETERS] GBProxy_Tests.mp_nsconfig_sgsn := { { + handle_sns := true, nsvc := { { provider := { diff --git a/ttcn3-gbproxy-test/osmo-gbproxy.cfg b/ttcn3-gbproxy-test/osmo-gbproxy.cfg index d437620..dd32ea7 100644 --- a/ttcn3-gbproxy-test/osmo-gbproxy.cfg +++ b/ttcn3-gbproxy-test/osmo-gbproxy.cfg @@ -27,7 +27,7 @@ listen 172.18.24.10 23000 accept-ipaccess nse 101 - nsvc ipa local 172.18.24.103 23000 nsvci 101 + ip-sns 172.18.24.103 23000 timer tns-block 3 timer tns-block-retries 3 timer tns-reset 3 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22087 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Iebbad7131d73c15ef7ded5eadce882c653b8bf2c Gerrit-Change-Number: 22087 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 00:47:27 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 11 Jan 2021 00:47:27 +0000 Subject: Change in docker-playground[master]: gbproxy: Enable IP-SNS towards SGSN In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22087 ) Change subject: gbproxy: Enable IP-SNS towards SGSN ...................................................................... Patch Set 1: The config changes for frame relay are missing. ttcn3-gbproxy-test-fr -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22087 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Iebbad7131d73c15ef7ded5eadce882c653b8bf2c Gerrit-Change-Number: 22087 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-CC: lynxis lazus Gerrit-Comment-Date: Mon, 11 Jan 2021 00:47:27 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 00:51:36 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 11 Jan 2021 00:51:36 +0000 Subject: Change in docker-playground[master]: gbproxy: Enable IP-SNS towards SGSN In-Reply-To: References: Message-ID: daniel has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/docker-playground/+/22087 ) Change subject: gbproxy: Enable IP-SNS towards SGSN ...................................................................... gbproxy: Enable IP-SNS towards SGSN Change-Id: Iebbad7131d73c15ef7ded5eadce882c653b8bf2c --- M ttcn3-gbproxy-test/GBProxy_Tests.cfg M ttcn3-gbproxy-test/osmo-gbproxy.cfg 2 files changed, 2 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/87/22087/2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22087 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Iebbad7131d73c15ef7ded5eadce882c653b8bf2c Gerrit-Change-Number: 22087 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-CC: lynxis lazus Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Mon Jan 11 01:42:13 2021 From: admin at opensuse.org (OBS Notification) Date: Mon, 11 Jan 2021 01:42:13 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.10/x86_64 In-Reply-To: References: Message-ID: <5ffbad035bc7f_4d52b06e3fb85f092955c@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/xUbuntu_20.10/x86_64 Package network:osmocom:nightly/simtrace2 failed to build in xUbuntu_20.10/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 182s] [COMPILING apps/dfu/main.c] [ 182s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 183s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 183s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 183s] Memory region Used Size Region Size %age Used [ 183s] rom: 16580 B 16 KB 101.20% [ 183s] ram: 11672 B 48 KB 23.75/usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 183s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 183s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 183s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 183s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 183s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 183s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 196 bytes [ 183s] collect2: error: ld returned 1 exit status [ 183s] % [ 183s] make[2]: *** [Makefile:234: flash] Error 1 [ 183s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 183s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 183s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 183s] dh_auto_build: error: make -j1 returned exit code 2 [ 183s] make: *** [debian/rules:16: build] Error 25 [ 183s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 183s] ### VM INTERACTION START ### [ 186s] [ 174.047016] sysrq: Power Off [ 187s] [ 174.083708] reboot: Power down [ 187s] ### VM INTERACTION END ### [ 187s] [ 187s] lamb20 failed "build simtrace2_0.7.0.69.aadd.dsc" at Mon Jan 11 01:42:09 UTC 2021. [ 187s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jan 11 01:46:29 2021 From: admin at opensuse.org (OBS Notification) Date: Mon, 11 Jan 2021 01:46:29 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <5ffbae0e14955_4d52b06e3fb85f09304e5@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/xUbuntu_20.04/x86_64 Package network:osmocom:nightly/simtrace2 failed to build in xUbuntu_20.04/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 330s] [COMPILING libboard/qmod/source/wwan_perst.c] [ 331s] [COMPILING libboard/qmod/source/card_pres.c] [ 331s] [COMPILING libboard/qmod/source/wwan_led.c] [ 331s] [COMPILING libboard/qmod/source/i2c.c] [ 331s] [COMPILING libboard/qmod/source/board_qmod.c] [ 331s] [COMPILING apps/dfu/main.c] [ 332s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 332s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 332s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 332s] Memory region Used Size Region Size %age Used [ 332s] rom: 16588 B 16 KB 101.25% [ 332s] ram: 11672 B 48 KB 23.75/usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 332s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 204 bytes [ 332s] collect2: error: ld returned 1 exit status [ 332s] % [ 332s] make[2]: *** [Makefile:234: flash] Error 1 [ 332s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 332s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 332s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 332s] dh_auto_build: error: make -j1 returned exit code 2 [ 332s] make: *** [debian/rules:16: build] Error 25 [ 332s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 332s] ### VM INTERACTION START ### [ 335s] [ 309.806332] sysrq: Power Off [ 335s] [ 309.831217] reboot: Power down [ 336s] ### VM INTERACTION END ### [ 336s] [ 336s] lamb59 failed "build simtrace2_0.7.0.69.aadd.dsc" at Mon Jan 11 01:46:13 UTC 2021. [ 336s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Mon Jan 11 02:05:26 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 11 Jan 2021 02:05:26 +0000 Subject: Change in osmo-ttcn3-hacks[master]: NS_Provider_IPL4: fix typo in comment References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22088 ) Change subject: NS_Provider_IPL4: fix typo in comment ...................................................................... NS_Provider_IPL4: fix typo in comment Change-Id: Ieed010a15675b105807bc8c55bb0977fcb6aa7f3 --- M library/NS_Provider_IPL4.ttcn 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/88/22088/1 diff --git a/library/NS_Provider_IPL4.ttcn b/library/NS_Provider_IPL4.ttcn index 6d45fd0..9d72075 100644 --- a/library/NS_Provider_IPL4.ttcn +++ b/library/NS_Provider_IPL4.ttcn @@ -38,7 +38,7 @@ g_conn_id := res.connId; NSE.send(NS_Provider_Evt:{link_status := NS_PROV_LINK_STATUS_UP}); - /* transceive beteween user-facing port and UDP socket */ + /* transceive between user-facing port and UDP socket */ while (true) { var ASP_RecvFrom rx_rf; var PDU_NS rx_pdu; -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22088 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ieed010a15675b105807bc8c55bb0977fcb6aa7f3 Gerrit-Change-Number: 22088 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 02:05:26 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 11 Jan 2021 02:05:26 +0000 Subject: Change in osmo-ttcn3-hacks[master]: NS_Emulation: remove unused variable res References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22089 ) Change subject: NS_Emulation: remove unused variable res ...................................................................... NS_Emulation: remove unused variable res Change-Id: I5cc25ccb8e0d169b6f85e597fda47fdd2130aa70 --- M library/NS_Emulation.ttcnpp 1 file changed, 0 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/89/22089/1 diff --git a/library/NS_Emulation.ttcnpp b/library/NS_Emulation.ttcnpp index ba859b0..d6c7f61 100644 --- a/library/NS_Emulation.ttcnpp +++ b/library/NS_Emulation.ttcnpp @@ -372,8 +372,6 @@ } private function f_init(charstring id) runs on NSVC_CT { - var Result res; - if (ischosen(g_nsvc_config.provider.ip)) { /* Connect the UDP socket */ vc_NSP_IP := NS_Provider_IPL4_CT.create(id & "-provIP"); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22089 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I5cc25ccb8e0d169b6f85e597fda47fdd2130aa70 Gerrit-Change-Number: 22089 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 02:05:27 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 11 Jan 2021 02:05:27 +0000 Subject: Change in osmo-ttcn3-hacks[master]: RAW_NS: rework NS connection to use NS_Provider References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22090 ) Change subject: RAW_NS: rework NS connection to use NS_Provider ...................................................................... RAW_NS: rework NS connection to use NS_Provider Previous RAW_NS only supported NS over UDP because it handled the UDP connection on it's own. Because of this there was no cleanup function for the tests because no virtual component were started. Using the new NS_Provider allows to use the same tests over UDP and FR with no changes. Change-Id: I8a3b6c72798a75f434f54229fdbfc802cd13967e --- D library/RAW_NS.ttcn A library/RAW_NS.ttcnpp M pcu/PCU_Tests.cfg M pcu/PCU_Tests_NS.ttcn M pcu/PCU_Tests_SNS.cfg M pcu/PCU_Tests_SNS.ttcn M pcu/SGSN_Components.ttcn M pcu/gen_links.sh M sgsn/SGSN_Tests_NS.ttcn M sgsn/gen_links.sh 10 files changed, 431 insertions(+), 311 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/90/22090/1 diff --git a/library/RAW_NS.ttcn b/library/RAW_NS.ttcn deleted file mode 100644 index 7f7b6c4..0000000 --- a/library/RAW_NS.ttcn +++ /dev/null @@ -1,238 +0,0 @@ -module RAW_NS { - -/* Osmocom NS test suite for NS in TTCN-3 - * (C) 2018-2019 Harald Welte - * All rights reserved. - * - * Released under the terms of GNU General Public License, Version 2 or - * (at your option) any later version. - * - * SPDX-License-Identifier: GPL-2.0-or-later - */ - -import from General_Types all; -import from Osmocom_Types all; -import from Osmocom_Gb_Types all; -import from NS_CodecPort all; -import from NS_Types all; -import from BSSGP_Types all; -import from NS_CodecPort all; -import from NS_CodecPort_CtrlFunct all; -import from NS_Emulation all; -import from Native_Functions all; -import from IPL4asp_Types all; - -public type component RAW_NS_CT { - /* UDP port towards the bottom (IUT) */ - port NS_CODEC_PT NSCP[4]; - var ConnectionId g_ns_conn_id[4] := {-1, -1, -1, -1}; - var NSConfiguration g_nsconfig[4]; - timer g_T_guard; -} - -public altstep as_Tguard() runs on RAW_NS_CT { - [] g_T_guard.timeout { - setverdict(fail, "Timeout of T_guard"); - mtc.stop; - } -} - -function f_init_ns_codec(NSConfiguration ns_config, integer idx := 0, float guard_secs := 60.0, integer tc_offset := 0) runs on RAW_NS_CT { - var Result res; - - if (not g_T_guard.running) { - g_T_guard.start(guard_secs); - activate(as_Tguard()); - } - - if (not isbound(g_nsconfig) or not isbound(g_nsconfig[idx])) { - /* copy most parts from mp_nsconfig */ - g_nsconfig[idx] := ns_config; - /* adjust those parts different for each NS-VC */ - g_nsconfig[idx].nsvc[0].nsvci := ns_config.nsvc[0].nsvci + idx; - g_nsconfig[idx].nsvc[0].provider.ip.local_udp_port := ns_config.nsvc[0].provider.ip.local_udp_port + idx + tc_offset; - } - - map(self:NSCP[idx], system:NSCP); - /* Connect the UDP socket */ - var NSConfiguration nscfg := g_nsconfig[idx]; - var NSVCConfiguration nsvc_cfg := nscfg.nsvc[0]; - log("connecting NSCP[", idx, "] to ", nscfg); - res := f_IPL4_connect(NSCP[idx], nsvc_cfg.provider.ip.remote_ip, nsvc_cfg.provider.ip.remote_udp_port, - nsvc_cfg.provider.ip.local_ip, nsvc_cfg.provider.ip.local_udp_port, 0, { udp := {}}); - if (not ispresent(res.connId)) { - setverdict(fail, "Could not connect NS UDP socket, check your configuration ", g_nsconfig[idx]); - mtc.stop; - } - g_ns_conn_id[idx] := res.connId; - -} - -public altstep ax_rx_fail_on_any_ns(integer idx := 0) runs on RAW_NS_CT { - var NS_RecvFrom nrf; - [] NSCP[idx].receive(t_NS_RecvFrom(?)) -> value nrf { - setverdict(fail, "Received unexpected NS: ", nrf); - mtc.stop; - } -} - -function f_ns_exp(template PDU_NS exp_rx, integer idx := 0) runs on RAW_NS_CT return PDU_NS { - var NS_RecvFrom nrf; - log("f_ns_exp() expecting ", exp_rx); - /* last activated altstep has the lowest priority */ - var default d := activate(ax_rx_fail_on_any_ns()); - alt { - [] NSCP[idx].receive(t_NS_RecvFrom(exp_rx)) -> value nrf { } - } - deactivate(d); - return nrf.msg; -} - -/* perform outbound NS-ALIVE procedure */ -function f_outgoing_ns_alive(integer idx := 0) runs on RAW_NS_CT { - NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], t_NS_ALIVE)); - alt { - [] NSCP[idx].receive(t_NS_RecvFrom(t_NS_ALIVE_ACK)); - [] NSCP[idx].receive { repeat; } - } -} - -/* perform outbound NS-ALIVE procedure */ -function f_outgoing_ns_alive_no_ack(integer idx := 0, float tout := 10.0) runs on RAW_NS_CT { - timer T := tout; - NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], t_NS_ALIVE)); - T.start; - alt { - [] NSCP[idx].receive(t_NS_RecvFrom(t_NS_ALIVE_ACK)) { - setverdict(fail, "Received unexpected NS-ALIVE ACK"); - } - [] NSCP[idx].receive { repeat; } - [] T.timeout { - setverdict(pass); - } - } -} - -function f_outgoing_ns_reset(integer idx := 0, float tout := 10.0) runs on RAW_NS_CT { - timer T := tout; - var template PDU_NS reset := ts_NS_RESET(NS_CAUSE_EQUIPMENT_FAILURE, g_nsconfig[idx].nsvc[0].nsvci, g_nsconfig[idx].nsei) - NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], reset)); - T.start; - alt { - [] NSCP[idx].receive(t_NS_RecvFrom(ts_NS_RESET_ACK(g_nsconfig[idx].nsvc[0].nsvci, g_nsconfig[idx].nsei))) { - setverdict(pass); - } - [] NSCP[idx].receive { repeat; } - [] T.timeout { - setverdict(fail, "Failed to receive a RESET ACK"); - } - } -} - -/* perform outbound NS-BLOCK procedure */ -function f_outgoing_ns_block(NsCause cause, integer idx := 0) runs on RAW_NS_CT { - NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_NS_BLOCK(cause, g_nsconfig[idx].nsvc[0].nsvci))); - alt { - [] NSCP[idx].receive(t_NS_RecvFrom(tr_NS_BLOCK_ACK(g_nsconfig[idx].nsvc[0].nsvci))); - [] NSCP[idx].receive { repeat; } - } -} - -/* receive NS-ALIVE and ACK it */ -altstep as_rx_alive_tx_ack(boolean oneshot := false, integer idx := 0) runs on RAW_NS_CT { - [] NSCP[idx].receive(t_NS_RecvFrom(t_NS_ALIVE)) { - NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], t_NS_ALIVE_ACK)); - if (not oneshot) { repeat; } - } -} - -/* Transmit BSSGP RESET for given BVCI and expect ACK */ -function f_tx_bvc_reset_rx_ack(BssgpBvci bvci, template (omit) BssgpCellId tx_cell_id, template BssgpCellId rx_cell_id, - integer idx := 0, boolean exp_ack := true) -runs on RAW_NS_CT { - var PDU_BSSGP bssgp_tx := valueof(ts_BVC_RESET(BSSGP_CAUSE_NET_SV_CAP_MOD_GT_ZERO_KBPS, bvci, - tx_cell_id)); - timer T := 5.0; - NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_NS_UNITDATA(t_SduCtrlB, 0, enc_PDU_BSSGP(bssgp_tx)))); - T.start; - alt { - [exp_ack] NSCP[idx].receive(t_NS_RecvFrom(tr_NS_UNITDATA(t_SduCtrlB, 0, - decmatch tr_BVC_RESET_ACK(bvci, rx_cell_id)))) { - setverdict(pass); - } - [exp_ack] T.timeout { - setverdict(fail, "No response to BVC-RESET"); - } - [not exp_ack] T.timeout { - setverdict(pass); - } - [] NSCP[idx].receive { repeat; } - } -} - -/* Receive a BSSGP RESET for given BVCI and ACK it */ -altstep as_rx_bvc_reset_tx_ack(BssgpBvci bvci, template BssgpCellId rx_cell_id, template (omit) BssgpCellId tx_cell_id, - boolean oneshot := false, integer idx := 0) runs on RAW_NS_CT { - var NS_RecvFrom ns_rf; - [] NSCP[idx].receive(t_NS_RecvFrom(tr_NS_UNITDATA(t_SduCtrlB, 0, - decmatch tr_BVC_RESET(?, bvci, rx_cell_id)))) - -> value ns_rf { - var PDU_BSSGP bssgp_rx := dec_PDU_BSSGP(ns_rf.msg.pDU_NS_Unitdata.nS_SDU); - var PDU_BSSGP bssgp_tx := valueof(ts_BVC_RESET_ACK(bvci, tx_cell_id)); - NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_NS_UNITDATA(t_SduCtrlB, 0, enc_PDU_BSSGP(bssgp_tx)))); - if (not oneshot) { repeat; } - } -} - - -/* Receive a BSSGP UNBLOCK for given BVCI and ACK it */ -altstep as_rx_bvc_unblock_tx_ack(BssgpBvci bvci, boolean oneshot := false, integer idx := 0) runs on RAW_NS_CT { - var NS_RecvFrom ns_rf; - [] NSCP[idx].receive(t_NS_RecvFrom(tr_NS_UNITDATA(t_SduCtrlB, 0, - decmatch t_BVC_UNBLOCK(bvci)))) - -> value ns_rf { - var PDU_BSSGP bssgp_rx := dec_PDU_BSSGP(ns_rf.msg.pDU_NS_Unitdata.nS_SDU); - var PDU_BSSGP bssgp_tx := valueof(t_BVC_UNBLOCK_ACK(bvci)); - NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_NS_UNITDATA(t_SduCtrlB, 0, enc_PDU_BSSGP(bssgp_tx)))); - if (not oneshot) { repeat; } - } -} - -/* Receive a BSSGP FLOW-CONTROL-BVC and ACK it */ -altstep as_rx_bvc_fc_tx_ack(BssgpBvci bvci, boolean oneshot := false, integer idx := 0) runs on RAW_NS_CT { - var NS_RecvFrom ns_rf; - [] NSCP[idx].receive(t_NS_RecvFrom(tr_NS_UNITDATA(t_SduCtrlB, bvci, - decmatch tr_BVC_FC_BVC))) - -> value ns_rf { - var PDU_BSSGP bssgp_rx := dec_PDU_BSSGP(ns_rf.msg.pDU_NS_Unitdata.nS_SDU); - var OCT1 tag := bssgp_rx.pDU_BSSGP_FLOW_CONTROL_BVC.tag.unstructured_Value; - var PDU_BSSGP bssgp_tx := valueof(t_BVC_FC_BVC_ACK(tag)); - NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_NS_UNITDATA(t_SduCtrlB, bvci, enc_PDU_BSSGP(bssgp_tx)))); - if (not oneshot) { repeat; } - } -} - -/********************************************************************************** - * Classic Gb/IP bring-up test cases using NS-{RESET,BLOCK,UNBLOCK} and no IP-SNS * - **********************************************************************************/ - -/* Receive a NS-RESET and ACK it */ -public altstep as_rx_ns_reset_ack(boolean oneshot := false, integer idx := 0) runs on RAW_NS_CT { - var NS_RecvFrom ns_rf; - [] NSCP[idx].receive(t_NS_RecvFrom(tr_NS_RESET(NS_CAUSE_OM_INTERVENTION, g_nsconfig[idx].nsvc[0].nsvci, - g_nsconfig[idx].nsei))) -> value ns_rf { - NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_NS_RESET_ACK(g_nsconfig[idx].nsvc[0].nsvci, - g_nsconfig[idx].nsei))); - if (not oneshot) { repeat; } - } -} -/* Receive a NS-UNBLOCK and ACK it */ -public altstep as_rx_ns_unblock_ack(boolean oneshot := false, integer idx := 0) runs on RAW_NS_CT { - var NS_RecvFrom ns_rf; - [] NSCP[idx].receive(t_NS_RecvFrom(t_NS_UNBLOCK)) -> value ns_rf { - NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], t_NS_UNBLOCK_ACK)); - if (not oneshot) { repeat; } - } -} - -} diff --git a/library/RAW_NS.ttcnpp b/library/RAW_NS.ttcnpp new file mode 100644 index 0000000..1d07086 --- /dev/null +++ b/library/RAW_NS.ttcnpp @@ -0,0 +1,263 @@ +module RAW_NS { + +/* Osmocom NS test suite for NS in TTCN-3 + * (C) 2018-2019 Harald Welte + * All rights reserved. + * + * Released under the terms of GNU General Public License, Version 2 or + * (at your option) any later version. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +import from Misc_Helpers all; +import from General_Types all; +import from Osmocom_Types all; +import from Osmocom_Gb_Types all; +import from NS_CodecPort all; +import from NS_Emulation all; +import from NS_Types all; +import from BSSGP_Types all; +import from NS_CodecPort all; +import from NS_CodecPort_CtrlFunct all; +import from NS_Emulation all; +import from Native_Functions all; +import from IPL4asp_Types all; +import from NS_Provider_IPL4 all; +#ifdef NS_EMULATION_FR +import from NS_Provider_FR all; +#endif + +public type component RAW_NS_CT { + /* UDP port towards the bottom (IUT) */ + port NS_PROVIDER_PT NSCP[4]; + var NS_Provider_IPL4_CT vc_NSP_IP[4]; +#ifdef NS_EMULATION_FR + var NS_Provider_FR_CT vc_NSP_FR[4]; +#endif + var NSConfiguration g_nsconfig; + timer g_T_guard; +} + +public altstep as_Tguard() runs on RAW_NS_CT { + [] g_T_guard.timeout { + setverdict(fail, "Timeout of T_guard"); + mtc.stop; + } +} + +function f_init_ns_codec(NSConfiguration ns_config, integer idx := 0, float guard_secs := 60.0, charstring id := testcasename()) runs on RAW_NS_CT { + var Result res; + + if (not g_T_guard.running) { + g_T_guard.start(guard_secs); + activate(as_Tguard()); + } + + if (not isbound(g_nsconfig)) { + g_nsconfig := ns_config; + } + + if (ischosen(ns_config.nsvc[idx].provider.ip)) { + /* Connect the UDP socket */ + vc_NSP_IP[idx] := NS_Provider_IPL4_CT.create(id & "-provIP"); + connect(self:NSCP[idx], vc_NSP_IP[idx]:NSE); + vc_NSP_IP[idx].start(NS_Provider_IPL4.main(ns_config.nsvc[idx], ns_config, id)); +#ifdef NS_EMULATION_FR + } else if (ischosen(ns_config.nsvc[idx].provider.fr)) { + vc_NSP_FR[idx] := NS_Provider_FR_CT.create(id & "-provFR"); + connect(self:NSCP[idx], vc_NSP_FR[idx]:NSE); + vc_NSP_FR[idx].start(NS_Provider_FR.main(ns_config.nsvc[idx], ns_config, id)); +#endif + } else { + Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, "Unsupported NS provider"); + } + + NSCP[idx].receive(NS_Provider_Evt:{link_status:=NS_PROV_LINK_STATUS_UP}); +} + +function f_clean_ns_codec() runs on RAW_NS_CT { + for (var integer i := 0; i < lengthof(vc_NSP_IP); i := i + 1) { + vc_NSP_IP[i].stop; + } +#ifdef NS_EMULATION_FR + for (var integer i := 0; i < lengthof(vc_NSP_FR); i := i + 1) { + vc_NSP_FR[i].stop; + } +#endif NS_EMULATION_FR +} + +public altstep ax_rx_fail_on_any_ns(integer idx := 0) runs on RAW_NS_CT { + var PDU_NS nrf; + [] NSCP[idx].receive(PDU_NS: ?) -> value nrf { + setverdict(fail, "Received unexpected NS: ", nrf); + mtc.stop; + } +} + +function f_ns_exp(template PDU_NS exp_rx, integer idx := 0) runs on RAW_NS_CT return PDU_NS { + var PDU_NS nrf; + log("f_ns_exp() expecting ", exp_rx); + /* last activated altstep has the lowest priority */ + var default d := activate(ax_rx_fail_on_any_ns()); + alt { + [] NSCP[idx].receive(PDU_NS: exp_rx) -> value nrf { } + } + deactivate(d); + return nrf; +} + +/* perform outbound NS-ALIVE procedure */ +function f_outgoing_ns_alive(integer idx := 0) runs on RAW_NS_CT { + NSCP[idx].send(t_NS_ALIVE); + alt { + [] NSCP[idx].receive(t_NS_ALIVE_ACK); + [] NSCP[idx].receive { repeat; } + } +} + +/* perform outbound NS-ALIVE procedure */ +function f_outgoing_ns_alive_no_ack(integer idx := 0, float tout := 10.0) runs on RAW_NS_CT { + timer T := tout; + NSCP[idx].send(t_NS_ALIVE); + T.start; + alt { + [] NSCP[idx].receive(t_NS_ALIVE_ACK) { + setverdict(fail, "Received unexpected NS-ALIVE ACK"); + } + [] NSCP[idx].receive { repeat; } + [] T.timeout { + setverdict(pass); + } + } +} + +function f_outgoing_ns_reset(integer idx := 0, float tout := 10.0) runs on RAW_NS_CT { + timer T := tout; + var template PDU_NS reset := ts_NS_RESET(NS_CAUSE_EQUIPMENT_FAILURE, g_nsconfig.nsvc[idx].nsvci, g_nsconfig.nsei) + NSCP[idx].send(reset); + T.start; + alt { + [] NSCP[idx].receive(ts_NS_RESET_ACK(g_nsconfig.nsvc[idx].nsvci, g_nsconfig.nsei)) { + setverdict(pass); + } + [] NSCP[idx].receive { repeat; } + [] T.timeout { + setverdict(fail, "Failed to receive a RESET ACK"); + } + } +} + +/* perform outbound NS-BLOCK procedure */ +function f_outgoing_ns_block(NsCause cause, integer idx := 0) runs on RAW_NS_CT { + NSCP[idx].send(ts_NS_BLOCK(cause, g_nsconfig.nsvc[idx].nsvci)); + alt { + [] NSCP[idx].receive(tr_NS_BLOCK_ACK(g_nsconfig.nsvc[idx].nsvci)); + [] NSCP[idx].receive { repeat; } + } +} + +/* perform outbound NS-UNBLOCK procedure */ +function f_outgoing_ns_unblock(integer idx := 0) runs on RAW_NS_CT { + NSCP[idx].send(t_NS_UNBLOCK); + alt { + [] NSCP[idx].receive(t_NS_UNBLOCK_ACK); + [] NSCP[idx].receive { repeat; } + } +} + +/* receive NS-ALIVE and ACK it */ +altstep as_rx_alive_tx_ack(boolean oneshot := false, integer idx := 0) runs on RAW_NS_CT { + [] NSCP[idx].receive(t_NS_ALIVE) { + NSCP[idx].send(t_NS_ALIVE_ACK); + if (not oneshot) { repeat; } + } +} + +/* Transmit BSSGP RESET for given BVCI and expect ACK */ +function f_tx_bvc_reset_rx_ack(BssgpBvci bvci, template (omit) BssgpCellId tx_cell_id, template BssgpCellId rx_cell_id, + integer idx := 0, boolean exp_ack := true) +runs on RAW_NS_CT { + var PDU_BSSGP bssgp_tx := valueof(ts_BVC_RESET(BSSGP_CAUSE_NET_SV_CAP_MOD_GT_ZERO_KBPS, bvci, + tx_cell_id)); + timer T := 5.0; + NSCP[idx].send(ts_NS_UNITDATA(t_SduCtrlB, 0, enc_PDU_BSSGP(bssgp_tx))); + T.start; + alt { + [exp_ack] NSCP[idx].receive(tr_NS_UNITDATA(t_SduCtrlB, 0, + decmatch tr_BVC_RESET_ACK(bvci, rx_cell_id))) { + setverdict(pass); + } + [exp_ack] T.timeout { + setverdict(fail, "No response to BVC-RESET"); + } + [not exp_ack] T.timeout { + setverdict(pass); + } + [] NSCP[idx].receive { repeat; } + } +} + +/* Receive a BSSGP RESET for given BVCI and ACK it */ +altstep as_rx_bvc_reset_tx_ack(BssgpBvci bvci, template BssgpCellId rx_cell_id, template (omit) BssgpCellId tx_cell_id, + boolean oneshot := false, integer idx := 0) runs on RAW_NS_CT { + var PDU_NS ns_rf; + [] NSCP[idx].receive(tr_NS_UNITDATA(t_SduCtrlB, 0, + decmatch tr_BVC_RESET(?, bvci, rx_cell_id))) + -> value ns_rf { + var PDU_BSSGP bssgp_rx := dec_PDU_BSSGP(ns_rf.pDU_NS_Unitdata.nS_SDU); + var PDU_BSSGP bssgp_tx := valueof(ts_BVC_RESET_ACK(bvci, tx_cell_id)); + NSCP[idx].send(ts_NS_UNITDATA(t_SduCtrlB, 0, enc_PDU_BSSGP(bssgp_tx))); + if (not oneshot) { repeat; } + } +} + + +/* Receive a BSSGP UNBLOCK for given BVCI and ACK it */ +altstep as_rx_bvc_unblock_tx_ack(BssgpBvci bvci, boolean oneshot := false, integer idx := 0) runs on RAW_NS_CT { + var PDU_NS ns_rf; + [] NSCP[idx].receive(tr_NS_UNITDATA(t_SduCtrlB, 0, decmatch t_BVC_UNBLOCK(bvci))) -> value ns_rf { + var PDU_BSSGP bssgp_rx := dec_PDU_BSSGP(ns_rf.pDU_NS_Unitdata.nS_SDU); + var PDU_BSSGP bssgp_tx := valueof(t_BVC_UNBLOCK_ACK(bvci)); + NSCP[idx].send(ts_NS_UNITDATA(t_SduCtrlB, 0, enc_PDU_BSSGP(bssgp_tx))); + if (not oneshot) { repeat; } + } +} + +/* Receive a BSSGP FLOW-CONTROL-BVC and ACK it */ +altstep as_rx_bvc_fc_tx_ack(BssgpBvci bvci, boolean oneshot := false, integer idx := 0) runs on RAW_NS_CT { + var PDU_NS ns_rf; + [] NSCP[idx].receive(tr_NS_UNITDATA(t_SduCtrlB, bvci, + decmatch tr_BVC_FC_BVC)) + -> value ns_rf { + var PDU_BSSGP bssgp_rx := dec_PDU_BSSGP(ns_rf.pDU_NS_Unitdata.nS_SDU); + var OCT1 tag := bssgp_rx.pDU_BSSGP_FLOW_CONTROL_BVC.tag.unstructured_Value; + var PDU_BSSGP bssgp_tx := valueof(t_BVC_FC_BVC_ACK(tag)); + NSCP[idx].send(ts_NS_UNITDATA(t_SduCtrlB, bvci, enc_PDU_BSSGP(bssgp_tx))); + if (not oneshot) { repeat; } + } +} + +/********************************************************************************** + * Classic Gb/IP bring-up test cases using NS-{RESET,BLOCK,UNBLOCK} and no IP-SNS * + **********************************************************************************/ + +/* Receive a NS-RESET and ACK it */ +public altstep as_rx_ns_reset_ack(boolean oneshot := false, integer idx := 0) runs on RAW_NS_CT { + var PDU_NS ns_rf; + [] NSCP[idx].receive(tr_NS_RESET(NS_CAUSE_OM_INTERVENTION, g_nsconfig.nsvc[idx].nsvci, + g_nsconfig.nsei)) -> value ns_rf { + NSCP[idx].send(ts_NS_RESET_ACK(g_nsconfig.nsvc[idx].nsvci, g_nsconfig.nsei)); + if (not oneshot) { repeat; } + } +} +/* Receive a NS-UNBLOCK and ACK it */ +public altstep as_rx_ns_unblock_ack(boolean oneshot := false, integer idx := 0) runs on RAW_NS_CT { + var PDU_NS ns_rf; + [] NSCP[idx].receive(t_NS_UNBLOCK) -> value ns_rf { + NSCP[idx].send(t_NS_UNBLOCK_ACK); + if (not oneshot) { repeat; } + } +} + +} diff --git a/pcu/PCU_Tests.cfg b/pcu/PCU_Tests.cfg index dd6b111..13bedec 100644 --- a/pcu/PCU_Tests.cfg +++ b/pcu/PCU_Tests.cfg @@ -22,6 +22,30 @@ } }, nsvci := 1234 + }, + { + provider := { + ip := { + address_family := AF_INET, + local_ip := "127.0.0.1", + local_udp_port := 23001, + remote_ip := "127.0.0.1", + remote_udp_port := 22000 + } + }, + nsvci := 1234 + }, + { + provider := { + ip := { + address_family := AF_INET, + local_ip := "127.0.0.1", + local_udp_port := 23002, + remote_ip := "127.0.0.1", + remote_udp_port := 22000 + } + }, + nsvci := 1234 } } } diff --git a/pcu/PCU_Tests_NS.ttcn b/pcu/PCU_Tests_NS.ttcn index e782b6e..c4d46d1 100644 --- a/pcu/PCU_Tests_NS.ttcn +++ b/pcu/PCU_Tests_NS.ttcn @@ -70,7 +70,7 @@ timer T := tout; T.start; alt { - [] NSCP[idx].receive(t_NS_RecvFrom(ns)) { + [] NSCP[idx].receive(ns) { setverdict(fail, "NS-ALIVE from unconfigured (possibly initial) endpoint"); } [] T.timeout { @@ -88,6 +88,7 @@ /* Expect inbound NS-RESET procedure */ as_rx_ns_reset_ack(oneshot := true); setverdict(pass); + f_clean_ns_codec(); } /* ensure NS-RESET are re-transmitted */ @@ -97,13 +98,14 @@ var integer i; for (i := 0; i < 3; i := i+1) { - NSCP[0].receive(t_NS_RecvFrom(tr_NS_RESET(NS_CAUSE_OM_INTERVENTION, - g_nsconfig[0].nsvc[0].nsvci, g_nsconfig[0].nsei))); + NSCP[0].receive(tr_NS_RESET(NS_CAUSE_OM_INTERVENTION, + g_nsconfig.nsvc[0].nsvci, g_nsconfig.nsei)); } /* Expect inbound NS-RESET procedure */ as_rx_ns_reset_ack(oneshot := true); setverdict(pass); + f_clean_ns_codec(); } /* test the inbound NS-ALIVE procedure after NS-RESET */ @@ -116,9 +118,10 @@ alt { /* wait for one ALIVE cycle, then ACK any further ALIVE in the background */ - [] NSCP[0].receive(t_NS_RecvFrom(t_NS_ALIVE)) { setverdict(pass); }; - [] NSCP[0].receive(t_NS_RecvFrom(t_NS_UNBLOCK)) { repeat; } + [] NSCP[0].receive(t_NS_ALIVE) { setverdict(pass); }; + [] NSCP[0].receive(t_NS_UNBLOCK) { repeat; } } + f_clean_ns_codec(); } /* Test for NS-RESET after NS-ALIVE timeout */ @@ -132,15 +135,17 @@ /* wait for at least one NS-ALIVE */ alt { [] as_rx_alive_tx_ack(oneshot := true) { }; - [] NSCP[0].receive(t_NS_RecvFrom(t_NS_UNBLOCK)) { repeat; } + [] NSCP[0].receive(t_NS_UNBLOCK) { repeat; } } /* wait for NS-RESET to re-appear, ignoring any NS-ALIVE until then */ alt { [] as_rx_ns_reset_ack(oneshot := true) { setverdict(pass); } - [] NSCP[0].receive(t_NS_RecvFrom(t_NS_ALIVE)) { repeat; } - [] NSCP[0].receive(t_NS_RecvFrom(t_NS_UNBLOCK)) { repeat; } + [] NSCP[0].receive(t_NS_ALIVE) { repeat; } + [] NSCP[0].receive(t_NS_UNBLOCK) { repeat; } } + + f_clean_ns_codec(); } /* test for NS-RESET/NS-ALIVE/NS-UNBLOCK */ @@ -156,6 +161,7 @@ as_rx_ns_unblock_ack(oneshot := true); setverdict(pass); + f_clean_ns_codec(); } /* test for NS-UNBLOCK re-transmissions */ @@ -170,11 +176,12 @@ activate(as_rx_alive_tx_ack()); /* wait for first NS-UNBLOCK, don't respond */ - NSCP[0].receive(t_NS_RecvFrom(t_NS_UNBLOCK)); + NSCP[0].receive(t_NS_UNBLOCK); /* wait for re-transmission of NS-UNBLOCK */ as_rx_ns_unblock_ack(oneshot := true); setverdict(pass); + f_clean_ns_codec(); } /* full bring-up of the Gb link for NS and BSSGP layer up to BVC-FC */ @@ -205,6 +212,7 @@ as_rx_bvc_fc_tx_ack(mp_gb_cfg.bvc[0].bvci, oneshot := true); activate(as_rx_bvc_fc_tx_ack(mp_gb_cfg.bvc[0].bvci)); setverdict(pass); + f_clean_ns_codec(); } /* test outbound (SGSN-originated) NS-BLOCK procedure */ @@ -224,6 +232,7 @@ f_outgoing_ns_block(NS_CAUSE_EQUIPMENT_FAILURE); setverdict(pass); + f_clean_ns_codec(); } diff --git a/pcu/PCU_Tests_SNS.cfg b/pcu/PCU_Tests_SNS.cfg index e5a08fe..ab589c5 100644 --- a/pcu/PCU_Tests_SNS.cfg +++ b/pcu/PCU_Tests_SNS.cfg @@ -21,6 +21,30 @@ } }, nsvci := 1234 + }, + { + provider := { + ip := { + address_family := AF_INET, + local_ip := "127.0.0.1", + local_udp_port := 23001, + remote_ip := "127.0.0.1", + remote_udp_port := 22000 + } + }, + nsvci := 1234 + }, + { + provider := { + ip := { + address_family := AF_INET, + local_ip := "127.0.0.1", + local_udp_port := 23002, + remote_ip := "127.0.0.1", + remote_udp_port := 22000 + } + }, + nsvci := 1234 } } } diff --git a/pcu/PCU_Tests_SNS.ttcn b/pcu/PCU_Tests_SNS.ttcn index ea78761..ad1858b 100644 --- a/pcu/PCU_Tests_SNS.ttcn +++ b/pcu/PCU_Tests_SNS.ttcn @@ -28,18 +28,18 @@ runs on RAW_NS_CT { log("f_incoming_sns_size(idx=", idx, ")"); var PDU_NS rx; - var NSVCConfiguration nsvc_cfg := g_nsconfig[idx].nsvc[0]; + var NSVCConfiguration nsvc_cfg := g_nsconfig.nsvc[idx]; if (nsvc_cfg.provider.ip.address_family == AF_INET) { /* expect one single SNS-SIZE with RESET flag; 4x v4 EP; no v6 EP */ - rx := f_ns_exp(tr_SNS_SIZE(g_nsconfig[idx].nsei, rst_flag := true, max_nsvcs := 8, + rx := f_ns_exp(tr_SNS_SIZE(g_nsconfig.nsei, rst_flag := true, max_nsvcs := 8, num_v4 := 4, num_v6 := omit), idx); } else { /* expect one single SNS-SIZE with RESET flag; no v4 EP; 4x v6 EP */ - rx := f_ns_exp(tr_SNS_SIZE(g_nsconfig[idx].nsei, rst_flag := true, max_nsvcs := 8, + rx := f_ns_exp(tr_SNS_SIZE(g_nsconfig.nsei, rst_flag := true, max_nsvcs := 8, num_v4 := omit, num_v6 := 4), idx); } - NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_SNS_SIZE_ACK(g_nsconfig[idx].nsei, cause))); + NSCP[idx].send(ts_SNS_SIZE_ACK(g_nsconfig.nsei, cause)); } /* perform outbound SNS-SIZE procedure */ @@ -47,19 +47,19 @@ runs on RAW_NS_CT { log("f_outgoing_sns_size(idx=", idx, ")"); var PDU_NS rx; - var NSVCConfiguration nsvc_cfg := g_nsconfig[idx].nsvc[0]; + var NSVCConfiguration nsvc_cfg := g_nsconfig.nsvc[idx]; if (nsvc_cfg.provider.ip.address_family == AF_INET) { - NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_SNS_SIZE(g_nsconfig[idx].nsei, rst_flag := true, max_nsvcs := 1, + NSCP[idx].send(ts_SNS_SIZE(g_nsconfig.nsei, rst_flag := true, max_nsvcs := 1, num_v4 := 1, num_v6 := omit) - )); + ); } else { - NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_SNS_SIZE(g_nsconfig[idx].nsei, rst_flag := true, max_nsvcs := 1, + NSCP[idx].send(ts_SNS_SIZE(g_nsconfig.nsei, rst_flag := true, max_nsvcs := 1, num_v4 := omit, num_v6 := 1) - )); + ); } /* expect one single SNS-SIZE with RESET flag; 4x v4 EP; no v6 EP */ - rx := f_ns_exp(tr_SNS_SIZE_ACK(g_nsconfig[idx].nsei, cause), idx); + rx := f_ns_exp(tr_SNS_SIZE_ACK(g_nsconfig.nsei, cause), idx); } /* perform inbound SNS-CONFIG procedure */ @@ -67,18 +67,18 @@ runs on RAW_NS_CT { log("f_incoming_sns_config(idx=", idx, ")"); var PDU_NS rx; - var NSVCConfiguration nsvc_cfg := g_nsconfig[idx].nsvc[0]; + var NSVCConfiguration nsvc_cfg := g_nsconfig.nsvc[idx]; if (nsvc_cfg.provider.ip.address_family == AF_INET) { var template IP4_Elements v4_elem := { tr_SNS_IPv4(nsvc_cfg.provider.ip.remote_ip, nsvc_cfg.provider.ip.remote_udp_port) }; - rx := f_ns_exp(tr_SNS_CONFIG(g_nsconfig[idx].nsei, end_flag := true, v4 := v4_elem), idx); + rx := f_ns_exp(tr_SNS_CONFIG(g_nsconfig.nsei, end_flag := true, v4 := v4_elem), idx); } else { var template IP6_Elements v6_elem := { tr_SNS_IPv6(nsvc_cfg.provider.ip.remote_ip, nsvc_cfg.provider.ip.remote_udp_port) }; - rx := f_ns_exp(tr_SNS_CONFIG(g_nsconfig[idx].nsei, end_flag := true, v6 := v6_elem), idx); + rx := f_ns_exp(tr_SNS_CONFIG(g_nsconfig.nsei, end_flag := true, v6 := v6_elem), idx); } - NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_SNS_CONFIG_ACK(g_nsconfig[idx].nsei, cause))); + NSCP[idx].send(ts_SNS_CONFIG_ACK(g_nsconfig.nsei, cause)); } /* perform outbound SNS-CONFIG procedure */ @@ -86,18 +86,18 @@ runs on RAW_NS_CT { log("f_outgoing_sns_config(idx=", idx, ")"); var PDU_NS rx; - var NSVCConfiguration nsvc_cfg := g_nsconfig[idx].nsvc[0]; + var NSVCConfiguration nsvc_cfg := g_nsconfig.nsvc[idx]; if (nsvc_cfg.provider.ip.address_family == AF_INET) { var template (omit) IP4_Elements v4 := { ts_SNS_IPv4(nsvc_cfg.provider.ip.local_ip, nsvc_cfg.provider.ip.local_udp_port) } - NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_SNS_CONFIG(g_nsconfig[idx].nsei, true, v4))); + NSCP[idx].send(ts_SNS_CONFIG(g_nsconfig.nsei, true, v4)); } else { var template (omit) IP6_Elements v6 := { ts_SNS_IPv6(nsvc_cfg.provider.ip.local_ip, nsvc_cfg.provider.ip.local_udp_port) } - NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_SNS_CONFIG(g_nsconfig[idx].nsei, true, omit, v6))); + NSCP[idx].send(ts_SNS_CONFIG(g_nsconfig.nsei, true, omit, v6)); } - rx := f_ns_exp(tr_SNS_CONFIG_ACK(g_nsconfig[idx].nsei, cause), idx); + rx := f_ns_exp(tr_SNS_CONFIG_ACK(g_nsconfig.nsei, cause), idx); } /* perform outbound SNS-CONFIG procedure (separate endpoints: 1 for control, 1 for user */ @@ -107,19 +107,19 @@ var PDU_NS rx; if (mp_nsconfig.nsvc[0].provider.ip.address_family == AF_INET) { - var template (omit) IP4_Elements v4 := { ts_SNS_IPv4(g_nsconfig[0].nsvc[0].provider.ip.local_ip, - g_nsconfig[0].nsvc[0].provider.ip.local_udp_port, 1, 0), - ts_SNS_IPv4(g_nsconfig[1].nsvc[0].provider.ip.local_ip, - g_nsconfig[1].nsvc[0].provider.ip.local_udp_port, 0, 1) }; - NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_SNS_CONFIG(g_nsconfig[idx].nsei, true, v4))); + var template (omit) IP4_Elements v4 := { ts_SNS_IPv4(g_nsconfig.nsvc[0].provider.ip.local_ip, + g_nsconfig.nsvc[0].provider.ip.local_udp_port, 1, 0), + ts_SNS_IPv4(g_nsconfig.nsvc[1].provider.ip.local_ip, + g_nsconfig.nsvc[1].provider.ip.local_udp_port, 0, 1) }; + NSCP[idx].send(ts_SNS_CONFIG(g_nsconfig.nsei, true, v4)); } else { - var template (omit) IP6_Elements v6 := { ts_SNS_IPv6(g_nsconfig[0].nsvc[0].provider.ip.local_ip, - g_nsconfig[0].nsvc[0].provider.ip.local_udp_port, 1, 0), - ts_SNS_IPv6(g_nsconfig[1].nsvc[0].provider.ip.local_ip, - g_nsconfig[1].nsvc[0].provider.ip.local_udp_port, 0, 1) }; - NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_SNS_CONFIG(g_nsconfig[idx].nsei, true, omit, v6))); + var template (omit) IP6_Elements v6 := { ts_SNS_IPv6(g_nsconfig.nsvc[0].provider.ip.local_ip, + g_nsconfig.nsvc[0].provider.ip.local_udp_port, 1, 0), + ts_SNS_IPv6(g_nsconfig.nsvc[1].provider.ip.local_ip, + g_nsconfig.nsvc[1].provider.ip.local_udp_port, 0, 1) }; + NSCP[idx].send(ts_SNS_CONFIG(g_nsconfig.nsei, true, omit, v6)); } - rx := f_ns_exp(tr_SNS_CONFIG_ACK(g_nsconfig[idx].nsei, cause), idx); + rx := f_ns_exp(tr_SNS_CONFIG_ACK(g_nsconfig.nsei, cause), idx); } /* perform outbound SNS-CONFIG procedure (separate endpoints: 1 for control, 1 for user */ @@ -128,38 +128,38 @@ log("f_outgoing_sns_config_1c1u_separate(idx=", idx, ")"); var PDU_NS rx; if (mp_nsconfig.nsvc[0].provider.ip.address_family == AF_INET) { - var template (omit) IP4_Elements v4 := { ts_SNS_IPv4(g_nsconfig[1].nsvc[0].provider.ip.local_ip, - g_nsconfig[1].nsvc[0].provider.ip.local_udp_port, 1, 0), - ts_SNS_IPv4(g_nsconfig[2].nsvc[0].provider.ip.local_ip, - g_nsconfig[2].nsvc[0].provider.ip.local_udp_port, 0, 1) }; - NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_SNS_CONFIG(g_nsconfig[idx].nsei, true, v4))); + var template (omit) IP4_Elements v4 := { ts_SNS_IPv4(g_nsconfig.nsvc[1].provider.ip.local_ip, + g_nsconfig.nsvc[1].provider.ip.local_udp_port, 1, 0), + ts_SNS_IPv4(g_nsconfig.nsvc[2].provider.ip.local_ip, + g_nsconfig.nsvc[2].provider.ip.local_udp_port, 0, 1) }; + NSCP[idx].send(ts_SNS_CONFIG(g_nsconfig.nsei, true, v4)); } else { - var template (omit) IP6_Elements v6 := { ts_SNS_IPv6(g_nsconfig[1].nsvc[0].provider.ip.local_ip, - g_nsconfig[1].nsvc[0].provider.ip.local_udp_port, 1, 0), - ts_SNS_IPv6(g_nsconfig[2].nsvc[0].provider.ip.local_ip, - g_nsconfig[2].nsvc[0].provider.ip.local_udp_port, 0, 1) }; - NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_SNS_CONFIG(g_nsconfig[idx].nsei, true, omit, v6))); + var template (omit) IP6_Elements v6 := { ts_SNS_IPv6(g_nsconfig.nsvc[1].provider.ip.local_ip, + g_nsconfig.nsvc[1].provider.ip.local_udp_port, 1, 0), + ts_SNS_IPv6(g_nsconfig.nsvc[2].provider.ip.local_ip, + g_nsconfig.nsvc[2].provider.ip.local_udp_port, 0, 1) }; + NSCP[idx].send(ts_SNS_CONFIG(g_nsconfig.nsei, true, omit, v6)); } - rx := f_ns_exp(tr_SNS_CONFIG_ACK(g_nsconfig[idx].nsei, cause), idx); + rx := f_ns_exp(tr_SNS_CONFIG_ACK(g_nsconfig.nsei, cause), idx); } function f_outgoing_sns_add(integer idx_add, uint8_t w_sig := 1, uint8_t w_user := 1, integer idx := 0, template (omit) NsCause cause := omit) runs on RAW_NS_CT { log("f_outgoing_sns_add(idx_add=", idx_add, ")"); var PDU_NS rx; - var NSVCConfiguration nsvc_cfg := g_nsconfig[idx_add].nsvc[0]; + var NSVCConfiguration nsvc_cfg := g_nsconfig.nsvc[idx_add]; if (nsvc_cfg.provider.ip.address_family == AF_INET) { var template (omit) IP4_Elements v4 := { ts_SNS_IPv4(nsvc_cfg.provider.ip.local_ip, nsvc_cfg.provider.ip.local_udp_port, w_sig, w_user) }; - NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_SNS_ADD(g_nsconfig[idx].nsei, 23, v4))); - rx := f_ns_exp(tr_SNS_ACK(g_nsconfig[idx].nsei, 23, cause, v4)); + NSCP[idx].send(ts_SNS_ADD(g_nsconfig.nsei, 23, v4)); + rx := f_ns_exp(tr_SNS_ACK(g_nsconfig.nsei, 23, cause, v4)); } else { var template (omit) IP6_Elements v6 := { ts_SNS_IPv6(nsvc_cfg.provider.ip.local_ip, nsvc_cfg.provider.ip.local_udp_port, w_sig, w_user) }; - NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_SNS_ADD(g_nsconfig[idx].nsei, 23, omit, v6))); - rx := f_ns_exp(tr_SNS_ACK(g_nsconfig[idx].nsei, 23, cause, omit, v6)); + NSCP[idx].send(ts_SNS_ADD(g_nsconfig.nsei, 23, omit, v6)); + rx := f_ns_exp(tr_SNS_ACK(g_nsconfig.nsei, 23, cause, omit, v6)); } } @@ -167,19 +167,19 @@ runs on RAW_NS_CT { log("f_outgoing_sns_del(idx_del=", idx_del, ")"); var PDU_NS rx; - var NSVCConfiguration nsvc_cfg := g_nsconfig[idx_del].nsvc[0]; + var NSVCConfiguration nsvc_cfg := g_nsconfig.nsvc[idx_del]; if (nsvc_cfg.provider.ip.address_family == AF_INET) { var template (omit) IP4_Elements v4 := { ts_SNS_IPv4(nsvc_cfg.provider.ip.local_ip, nsvc_cfg.provider.ip.local_udp_port, w_sig, w_user) }; - NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_SNS_DEL(g_nsconfig[idx].nsei, 24, omit, v4))); - rx := f_ns_exp(tr_SNS_ACK(g_nsconfig[idx].nsei, 24, omit, v4)); + NSCP[idx].send(ts_SNS_DEL(g_nsconfig.nsei, 24, omit, v4)); + rx := f_ns_exp(tr_SNS_ACK(g_nsconfig.nsei, 24, omit, v4)); } else { var template (omit) IP6_Elements v6 := { ts_SNS_IPv6(nsvc_cfg.provider.ip.local_ip, nsvc_cfg.provider.ip.local_udp_port, w_sig, w_user) }; - NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_SNS_DEL(g_nsconfig[idx].nsei, 24, omit, omit, v6))); - rx := f_ns_exp(tr_SNS_ACK(g_nsconfig[idx].nsei, 24, omit, omit, v6)); + NSCP[idx].send(ts_SNS_DEL(g_nsconfig.nsei, 24, omit, omit, v6)); + rx := f_ns_exp(tr_SNS_ACK(g_nsconfig.nsei, 24, omit, omit, v6)); } } @@ -187,19 +187,19 @@ runs on RAW_NS_CT { log("f_outgoing_sns_chg_weight(idx_chg=", idx_chg, ")"); var PDU_NS rx; - var NSVCConfiguration nsvc_cfg := g_nsconfig[idx_chg].nsvc[0]; + var NSVCConfiguration nsvc_cfg := g_nsconfig.nsvc[idx_chg]; if (nsvc_cfg.provider.ip.address_family == AF_INET) { var template (omit) IP4_Elements v4 := { ts_SNS_IPv4(nsvc_cfg.provider.ip.local_ip, nsvc_cfg.provider.ip.local_udp_port, w_sig, w_user) }; - NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_SNS_CHG_WEIGHT(g_nsconfig[idx].nsei, 25, v4))); - rx := f_ns_exp(tr_SNS_ACK(g_nsconfig[idx].nsei, 25, omit, v4)); + NSCP[idx].send(ts_SNS_CHG_WEIGHT(g_nsconfig.nsei, 25, v4)); + rx := f_ns_exp(tr_SNS_ACK(g_nsconfig.nsei, 25, omit, v4)); } else { var template (omit) IP6_Elements v6 := { ts_SNS_IPv6(nsvc_cfg.provider.ip.local_ip, nsvc_cfg.provider.ip.local_udp_port, w_sig, w_user) }; - NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_SNS_CHG_WEIGHT(g_nsconfig[idx].nsei, 25, omit, v6))); - rx := f_ns_exp(tr_SNS_ACK(g_nsconfig[idx].nsei, 25, omit, omit, v6)); + NSCP[idx].send(ts_SNS_CHG_WEIGHT(g_nsconfig.nsei, 25, omit, v6)); + rx := f_ns_exp(tr_SNS_ACK(g_nsconfig.nsei, 25, omit, omit, v6)); } } @@ -214,6 +214,7 @@ f_incoming_sns_size(); f_sleep(1.0); setverdict(pass); + f_clean_ns_codec(); } /* PCU-originated SNS-SIZE: NACK from our side */ @@ -225,6 +226,7 @@ /* FIXME: ensure we get re-transmitted SNS-SIZE attempts */ f_sleep(10.0); setverdict(pass); + f_clean_ns_codec(); } /* PCU-originated SNS-CONFIG: successful case */ @@ -235,6 +237,7 @@ f_incoming_sns_config(); f_sleep(1.0); setverdict(pass); + f_clean_ns_codec(); } /* PCU-originated SNS-CONFIG: successful case */ @@ -246,6 +249,7 @@ /* FIXME: ensure we get re-transmitted SNS-CONFIG attempts */ f_sleep(10.0); setverdict(pass); + f_clean_ns_codec(); } @@ -272,6 +276,7 @@ as_rx_bvc_fc_tx_ack(mp_gb_cfg.bvc[0].bvci, oneshot := true); activate(as_rx_bvc_fc_tx_ack(mp_gb_cfg.bvc[0].bvci)); setverdict(pass); + f_clean_ns_codec(); } private function f_sns_bringup_1c1u(boolean sgsn_originated_reset := false) runs on RAW_Test_CT { @@ -327,6 +332,7 @@ testcase TC_sns_1c1u() runs on RAW_Test_CT { f_sns_bringup_1c1u(); setverdict(pass); + f_clean_ns_codec(); } private function f_sns_bringup_1c1u_separate(boolean sgsn_originated_reset := false) runs on RAW_Test_CT { @@ -387,6 +393,7 @@ testcase TC_sns_1c1u_separate() runs on RAW_Test_CT { f_sns_bringup_1c1u_separate(); setverdict(pass); + f_clean_ns_codec(); } /* Test full IP-SNS bring-up with two NS-VCs, one sig-only and one user-only and use @@ -394,6 +401,7 @@ testcase TC_sns_1c1u_so_bvc_reset() runs on RAW_Test_CT { f_sns_bringup_1c1u_separate(sgsn_originated_reset := true); setverdict(pass); + f_clean_ns_codec(); } /* Transmit BVC-RESET before NS-ALIVE of PCU was ACKed: expect no response */ @@ -420,6 +428,7 @@ /* Transmit BVC-RESET and expect no ACK*/ f_tx_bvc_reset_rx_ack(0, omit, omit, idx := 1, exp_ack := false); f_tx_bvc_reset_rx_ack(mp_gb_cfg.bvc[0].bvci, omit, mp_gb_cfg.bvc[0].cell_id, idx := 1, exp_ack := false); + f_clean_ns_codec(); } /* Test adding new IP endpoints at runtime */ @@ -437,6 +446,7 @@ f_outgoing_ns_alive(2); setverdict(pass); + f_clean_ns_codec(); } /* Test adding an already present IP endpoint at runtime */ @@ -445,6 +455,7 @@ f_outgoing_sns_add(idx_add := 0, w_sig := 0, w_user := 1, idx := 0, cause := NS_CAUSE_PROTOCOL_ERROR_UNSPEIFIED); setverdict(pass); + f_clean_ns_codec(); } /* Test deleting IP endpoints at runtime */ @@ -454,6 +465,7 @@ f_outgoing_sns_del(idx_del := 1, w_sig := 0, w_user := 1, idx := 0); /* FIXME: ensure we don't receive anything on just-deleted NS-VC anymore */ setverdict(pass); + f_clean_ns_codec(); } /* Test changing weights at runtime */ @@ -463,6 +475,7 @@ /* change w_user from 1 to 200 */ f_outgoing_sns_chg_weight(idx_chg := 1, w_sig := 0, w_user := 200, idx := 0); setverdict(pass); + f_clean_ns_codec(); } import from PCUIF_Types all; @@ -485,6 +498,7 @@ tr_PCUIF_DATA_REQ(bts_nr:=0, trx_nr:=0, ts_nr:=0, block_nr:=?, fn:=?, sapi:=PCU_IF_SAPI_AGCH, data:=?))); setverdict(pass); + f_clean_ns_codec(); } diff --git a/pcu/SGSN_Components.ttcn b/pcu/SGSN_Components.ttcn index 18f3992..08d9231 100644 --- a/pcu/SGSN_Components.ttcn +++ b/pcu/SGSN_Components.ttcn @@ -55,6 +55,30 @@ } }, nsvci := 0 + }, + { + provider := { + ip := { + address_family := AF_INET, + local_udp_port := 23001, + local_ip := "127.0.0.1", + remote_udp_port := 21000, + remote_ip := "127.0.0.1" + } + }, + nsvci := 0 + }, + { + provider := { + ip := { + address_family := AF_INET, + local_udp_port := 23002, + local_ip := "127.0.0.1", + remote_udp_port := 21000, + remote_ip := "127.0.0.1" + } + }, + nsvci := 0 } } }; diff --git a/pcu/gen_links.sh b/pcu/gen_links.sh index a33cb27..c2a8189 100755 --- a/pcu/gen_links.sh +++ b/pcu/gen_links.sh @@ -54,7 +54,7 @@ FILES+="NS_Provider_IPL4.ttcn NS_Emulation.ttcnpp NS_CodecPort.ttcn NS_CodecPort_CtrlFunct.ttcn NS_CodecPort_CtrlFunctDef.cc " FILES+="BSSGP_Emulation.ttcnpp Osmocom_Gb_Types.ttcn " FILES+="LLC_Templates.ttcn L3_Templates.ttcn L3_Common.ttcn " -FILES+="PCUIF_Types.ttcn PCUIF_CodecPort.ttcn RAW_NS.ttcn " +FILES+="PCUIF_Types.ttcn PCUIF_CodecPort.ttcn RAW_NS.ttcnpp " gen_links $DIR $FILES ignore_pp_results diff --git a/sgsn/SGSN_Tests_NS.ttcn b/sgsn/SGSN_Tests_NS.ttcn index cce32cc..1715404 100644 --- a/sgsn/SGSN_Tests_NS.ttcn +++ b/sgsn/SGSN_Tests_NS.ttcn @@ -23,31 +23,31 @@ testcase TC_NS_connect_reset() runs on RAW_Test_CT { f_init_vty(); - f_init_ns_codec(mp_nsconfig[0], guard_secs := 10.0, tc_offset := 10); + f_init_ns_codec(mp_nsconfig[0], guard_secs := 10.0); f_vty_config(SGSNVTY, "ns", "encapsulation udp use-reset-block-unblock enabled"); /* Send a NS-ALIVE */ f_outgoing_ns_reset(); f_sleep(1.0); - f_cleanup(); + f_clean_ns_codec(); } testcase TC_NS_connect_alive() runs on RAW_Test_CT { f_init_vty(); - f_init_ns_codec(mp_nsconfig[0], guard_secs := 10.0, tc_offset := 20); + f_init_ns_codec(mp_nsconfig[0], guard_secs := 10.0); f_vty_config(SGSNVTY, "ns", "encapsulation udp use-reset-block-unblock disabled"); /* Send a NS-ALIVE */ - NSCP[0].send(t_NS_Send(g_ns_conn_id[0], t_NS_ALIVE)); + NSCP[0].send(t_NS_ALIVE); alt { - [] NSCP[0].receive(t_NS_RecvFrom(t_NS_ALIVE_ACK)); - [] NSCP[0].receive(t_NS_RecvFrom(tr_NS_STATUS(*))) { setverdict(fail); } + [] NSCP[0].receive(t_NS_ALIVE_ACK); + [] NSCP[0].receive(tr_NS_STATUS(*)) { setverdict(fail); } [] NSCP[0].receive { repeat; } } f_sleep(1.0); - f_cleanup(); + f_clean_ns_codec(); } control { diff --git a/sgsn/gen_links.sh b/sgsn/gen_links.sh index 47baa54..78cda26 100755 --- a/sgsn/gen_links.sh +++ b/sgsn/gen_links.sh @@ -92,7 +92,7 @@ FILES+="RAN_Emulation.ttcnpp RAN_Adapter.ttcnpp SCCP_Templates.ttcn " # IPA_Emulation + dependencies FILES+="IPA_Types.ttcn IPA_Emulation.ttcnpp IPA_CodecPort.ttcn IPA_CodecPort_CtrlFunct.ttcn IPA_CodecPort_CtrlFunctDef.cc Native_Functions.ttcn Native_FunctionDefs.cc GSUP_Types.ttcn GSUP_Emulation.ttcn " -FILES+="GTP_CodecPort.ttcn GTP_CodecPort_CtrlFunct.ttcn GTP_CodecPort_CtrlFunctDef.cc GTP_Emulation.ttcn GTP_Templates.ttcn IPCP_Types.ttcn RAW_NS.ttcn " +FILES+="GTP_CodecPort.ttcn GTP_CodecPort_CtrlFunct.ttcn GTP_CodecPort_CtrlFunctDef.cc GTP_Emulation.ttcn GTP_Templates.ttcn IPCP_Types.ttcn RAW_NS.ttcnpp " gen_links $DIR $FILES ignore_pp_results -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22090 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I8a3b6c72798a75f434f54229fdbfc802cd13967e Gerrit-Change-Number: 22090 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 02:05:27 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 11 Jan 2021 02:05:27 +0000 Subject: Change in osmo-ttcn3-hacks[master]: WIP: Introduce NS test cases References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22091 ) Change subject: WIP: Introduce NS test cases ...................................................................... WIP: Introduce NS test cases Change-Id: Ic619a374b88879d3116f8f28afb14401c3e3192b --- M library/Osmocom_Gb_Types.ttcn A ns/NS_Tests.default A ns/NS_Tests.fr.cfg A ns/NS_Tests.ttcn A ns/NS_Tests.udp.cfg A ns/expected-results.xml A ns/gen_links.sh A ns/osmo-ns.fr.cfg A ns/osmo-ns.udp.cfg A ns/regen_makefile.sh 10 files changed, 683 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/91/22091/1 diff --git a/library/Osmocom_Gb_Types.ttcn b/library/Osmocom_Gb_Types.ttcn index c532772..c02e61e 100644 --- a/library/Osmocom_Gb_Types.ttcn +++ b/library/Osmocom_Gb_Types.ttcn @@ -14,6 +14,14 @@ type uint16_t Nsei; type uint16_t BssgpBvci; + type enumerated OsmoNsDialect { + NS2_DIALECT_UNDEF ('00'H), + NS2_DIALECT_STATIC_ALIVE ('01'H), + NS2_DIALECT_STATIC_RESETBLOCK ('02'H), + NS2_DIALECT_IPACCESS ('03'H), + NS2_DIALECT_SNS ('04'H) + }; + /* TS 48.016 10.3.7 */ type enumerated NsPduType { NS_PDUT_NS_UNITDATA ('00000000'B), diff --git a/ns/NS_Tests.default b/ns/NS_Tests.default new file mode 100644 index 0000000..951c1c2 --- /dev/null +++ b/ns/NS_Tests.default @@ -0,0 +1,27 @@ +[ORDERED_INCLUDE] +# Common configuration, shared between test suites +"../Common.cfg" + +[LOGGING] +#*.FileMask := LOG_ALL +ConsoleMask := ERROR | WARNING | TESTCASE | TIMEROP_START | USER + +[MODULE_PARAMETERS] +Osmocom_VTY_Functions.mp_prompt_prefix := "OsmoNSdummy"; +StatsD_Checker.mp_enable_stats := true; + +[TESTPORT_PARAMETERS] +*.NSVTY.CTRL_MODE := "client" +*.NSVTY.CTRL_HOSTNAME := "127.0.0.1" +*.NSVTY.CTRL_PORTNUM := "4240" +*.NSVTY.CTRL_LOGIN_SKIPPED := "yes" +*.NSVTY.CTRL_DETECT_SERVER_DISCONNECTED := "yes" +*.NSVTY.CTRL_READMODE := "buffered" +*.NSVTY.CTRL_CLIENT_CLEANUP_LINEFEED := "yes" +*.NSVTY.CTRL_DETECT_CONNECTION_ESTABLISHMENT_RESULT := "yes" +*.NSVTY.PROMPT1 := "OsmoNSdummy> " +*.STATSVTY.PROMPT1 := "OsmoNSdummy> " + +[MAIN_CONTROLLER] + +[EXECUTE] diff --git a/ns/NS_Tests.fr.cfg b/ns/NS_Tests.fr.cfg new file mode 100644 index 0000000..91fb5c5 --- /dev/null +++ b/ns/NS_Tests.fr.cfg @@ -0,0 +1,57 @@ +[ORDERED_INCLUDE] +# Common configuration, shared between test suites +"../Common.cfg" +# testsuite specific configuration, not expected to change +"./NS_Tests.default" + +[LOGGING] + +[MODULE_PARAMETERS] +NS_Tests.mp_dialect := NS2_DIALECT_IPACCESS +NS_Tests.mp_nsconfig := { + nsei := 2001, + role_sgsn := false, + handle_sns := false, + nsvc := { + { + provider := { + fr := { + netdev := "hdlc1", + dlci := 16 + } + }, + nsvci := 1 + }, { + provider := { + fr := { + netdev := "hdlc2", + dlci := 17 + } + }, + nsvci := 2 + }, { + provider := { + fr := { + netdev := "hdlc3", + dlci := 18 + } + }, + nsvci := 3 + }, { + provider := { + fr := { + netdev := "hdlc4", + dlci := 19 + } + }, + nsvci := 4 + } + } +} + +[TESTPORT_PARAMETERS] + +[MAIN_CONTROLLER] + +[EXECUTE] +NS_Tests.control diff --git a/ns/NS_Tests.ttcn b/ns/NS_Tests.ttcn new file mode 100644 index 0000000..26bef20 --- /dev/null +++ b/ns/NS_Tests.ttcn @@ -0,0 +1,338 @@ +module NS_Tests { + +/* Osmocom NS test suite for NS over framerelay or udp ip.access style in TTCN-3 + * (C) 2021 sysmocom s.f.m.c. GmbH + * All rights reserved. + * + * Released under the terms of GNU General Public License, Version 2 or + * (at your option) any later version. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +import from General_Types all; +import from Osmocom_Types all; +import from Osmocom_Gb_Types all; +import from NS_CodecPort all; +import from NS_Types all; +import from BSSGP_Types all; +import from UD_Types all; +import from NS_CodecPort_CtrlFunct all; +import from NS_Emulation all; +import from Native_Functions all; +import from IPL4asp_Types all; +import from RAW_NS all; +import from Osmocom_VTY_Functions all; +import from TELNETasp_PortType all; + +modulepar { + OsmoNsDialect mp_dialect := NS2_DIALECT_IPACCESS; + NSConfiguration mp_nsconfig := { + nsei := 96, + role_sgsn := false, + handle_sns := false, + nsvc := { + { + provider := { + ip := { + address_family := AF_INET, + local_udp_port := 21000, + local_ip := "127.0.0.1", + remote_udp_port := 23000, + remote_ip := "127.0.0.1" + } + }, + nsvci := 97 + } + } + }; +} + +type component RAW_Test_CT extends RAW_NS_CT { + port TELNETasp_PT NSVTY; +} + +private function f_init_vty() runs on RAW_Test_CT { + map(self:NSVTY, system:NSVTY); + f_vty_set_prompts(NSVTY); + f_vty_transceive(NSVTY, "enable"); + f_vty_transceive(NSVTY, "nsvc nsei " & int2str(mp_nsconfig.nsei) & " force-unconfigured"); +} + +/* ensure no matching message is received within 'tout' */ +function f_ensure_no_ns(integer idx := 0, boolean answer_alive := false, float tout := 3.0) +runs on RAW_Test_CT { + var PDU_NS nrf; + + timer T := tout; + var default d := activate(ax_rx_fail_on_any_ns(idx)); + T.start; + alt { + [answer_alive] as_rx_alive_tx_ack(); + [] T.timeout { + setverdict(pass); + } + } + deactivate(d); +} + +function f_fails_except_reset(integer idx := 0, float tout := 15.0) +runs on RAW_Test_CT { + var PDU_NS nrf; + timer T := 15.0; + T.start; + alt { + [] NSCP[idx].receive(tr_NS_RESET(*, *, *)) { + repeat; + } + [] NSCP[idx].receive(PDU_NS: ?) -> value nrf { + setverdict(fail, "Received unexpected NS: ", nrf); + mtc.stop; + } + [] T.timeout { + setverdict(pass); + } + } +} + +testcase TC_tx_reset() runs on RAW_Test_CT { + f_init_vty(); + f_init_ns_codec(mp_nsconfig, guard_secs := 10.0); + + /* do a NS Reset procedure */ + f_outgoing_ns_reset(); + + f_sleep(1.0); +} + +testcase TC_tx_reset_tx_alive() runs on RAW_Test_CT { + f_init_vty(); + f_init_ns_codec(mp_nsconfig, guard_secs := 10.0); + + /* do a NS Reset procedure */ + f_outgoing_ns_reset(); + + /* check outgoing NS procedure */ + f_outgoing_ns_alive(); + + f_sleep(1.0); +} + +testcase TC_tx_reset_rx_alive() runs on RAW_Test_CT { + f_init_vty(); + f_init_ns_codec(mp_nsconfig, guard_secs := 10.0); + + /* do a NS Reset procedure */ + f_outgoing_ns_reset(); + + /* check outgoing NS procedure */ + as_rx_alive_tx_ack(oneshot := true); + + f_sleep(1.0); +} + +/* 48.016 7.2 unblock procedure + * + * TTCN -> NS: reset + * TTCN <- NS: reset ack + * TTCN -> NS: unblock + * TTCN <- NS: unblock ack + */ +testcase TC_tx_unblock() runs on RAW_Test_CT { + f_init_vty(); + f_init_ns_codec(mp_nsconfig, guard_secs := 30.0); + + /* do a NS Reset procedure */ + f_outgoing_ns_reset(); + /* send alive acks */ + activate(as_rx_alive_tx_ack()); + + f_outgoing_ns_unblock(); + f_sleep(1.0); +} + +/* 48.016 7.2 tx unblock retries + * + * TTCN -> NS: reset + * TTCN <- NS: reset ack + * TTCN -> NS: unblock + * TTCN <- NS: unblock ack + * TTCN -> NS: unblock + * TTCN <- NS: unblock ack + * TTCN -> NS: unblock + * TTCN <- NS: unblock ack + */ +testcase TC_tx_unblock_retries() runs on RAW_Test_CT { + f_init_vty(); + f_init_ns_codec(mp_nsconfig, guard_secs := 30.0); + + /* do a NS Reset procedure */ + f_outgoing_ns_reset(); + /* send alive acks */ + activate(as_rx_alive_tx_ack()); + + f_outgoing_ns_unblock(); + f_outgoing_ns_unblock(); + f_outgoing_ns_unblock(); + f_sleep(1.0); +} + +/* 48.016 7.2 block procedure + * + * TTCN -> NS: reset + * TTCN <- NS: reset ack + * TTCN -> NS: unblock + * TTCN <- NS: unblock ack + * TTCN -> NS: block + * TTCN <- NS: block ack + */ +testcase TC_tx_block() runs on RAW_Test_CT { + f_init_vty(); + f_init_ns_codec(mp_nsconfig, guard_secs := 30.0); + + /* do a NS Reset procedure */ + f_outgoing_ns_reset(); + activate(as_rx_alive_tx_ack()); + + f_outgoing_ns_unblock(); + f_sleep(1.0); + + f_outgoing_ns_block(NS_CAUSE_EQUIPMENT_FAILURE); + f_sleep(1.0); +} + +/* 48.016 7.4.1 ignore unexpected NS_ALIVE ACK */ +testcase TC_no_reset_alive_ack() runs on RAW_Test_CT { + f_init_vty(); + f_init_ns_codec(mp_nsconfig, guard_secs := 30.0); + + NSCP[0].send(t_NS_ALIVE_ACK); + f_fails_except_reset(); + f_sleep(1.0); +} + +/* 48.016 7.3.1 NS_RESET ack with wrong nsei */ +testcase TC_reset_ack_wrong_nsei() runs on RAW_Test_CT { + f_init_vty(); + f_init_ns_codec(mp_nsconfig, guard_secs := 30.0); + + NSCP[0].receive(tr_NS_RESET(*, g_nsconfig[0].nsvc[0].nsvci, g_nsconfig[0].nsei)); + NSCP[0].send(ts_NS_RESET_ACK(g_nsconfig[0].nsvc[0].nsvci, g_nsconfig[0].nsei + 20)); + f_fails_except_reset(); + f_sleep(1.0); +} + +/* 48.016 7.3.1 NS_RESET ack with wrong nsvci */ +testcase TC_reset_ack_wrong_nsvci() runs on RAW_Test_CT { + f_init_vty(); + f_init_ns_codec(mp_nsconfig, guard_secs := 30.0); + + NSCP[0].receive(tr_NS_RESET(*, g_nsconfig[0].nsvc[0].nsvci, g_nsconfig[0].nsei)); + NSCP[0].send(ts_NS_RESET_ACK(g_nsconfig[0].nsvc[0].nsvci + 20, g_nsconfig[0].nsei)); + f_fails_except_reset(); + f_sleep(1.0); +} + +/* 48.016 7.3.1 NS_RESET ack with wrong nsvci + nsei */ +testcase TC_reset_ack_wrong_nsei_nsvci() runs on RAW_Test_CT { + f_init_vty(); + f_init_ns_codec(mp_nsconfig, guard_secs := 30.0); + + NSCP[0].receive(tr_NS_RESET(*, g_nsconfig[0].nsvc[0].nsvci, g_nsconfig[0].nsei)); + NSCP[0].send(ts_NS_RESET_ACK(g_nsconfig[0].nsvc[0].nsvci + 20, g_nsconfig[0].nsei + 20)); + f_fails_except_reset(); + f_sleep(1.0); +} + +/* 48.016 7.3.1 ignore unexpected NS_RESET_ACK after NS_RESET+ALIVE */ +testcase TC_ignore_reset_ack() runs on RAW_Test_CT { + f_init_vty(); + f_init_ns_codec(mp_nsconfig, guard_secs := 30.0); + + /* do a NS Reset procedure */ + f_outgoing_ns_reset(); + + /* check outgoing NS procedure */ + as_rx_alive_tx_ack(oneshot := true); + activate(as_rx_alive_tx_ack()); + + NSCP[0].send(ts_NS_RESET_ACK(g_nsconfig[0].nsvc[0].nsvci, g_nsconfig[0].nsei)); + f_ensure_no_ns(answer_alive := true, tout := 15.0); + f_sleep(1.0); +} + + +/* 48.016 7.4 test procedure for frame relay with a single nsvci */ +function f_alive_retries_single(boolean reset := false) runs on RAW_Test_CT { + f_init_vty(); + f_init_ns_codec(mp_nsconfig, guard_secs := 60.0); + + /* do a NS Reset procedure */ + f_outgoing_ns_reset(); + + /* wait for one alive and answer it */ + as_rx_alive_tx_ack(oneshot := true); + NSCP[0].receive(t_NS_ALIVE); + NSCP[0].receive(t_NS_ALIVE); + NSCP[0].receive(t_NS_ALIVE); + NSCP[0].receive(t_NS_ALIVE); + if (reset) { + NSCP[0].receive(tr_NS_RESET(*, g_nsconfig[0].nsvc[0].nsvci, g_nsconfig[0].nsei)); + } else { + f_ensure_no_ns(tout := 10.0); + } + + setverdict(pass); + f_sleep(1.0); +} + +testcase TC_alive_retries_single_reset() runs on RAW_Test_CT { + f_alive_retries_single(reset := true); +} + +testcase TC_alive_retries_single_no_resp() runs on RAW_Test_CT { + f_alive_retries_single(reset := false); +} + +control { + execute( TC_tx_reset() ); + + /* 48.016 7.2 Block procedure */ + execute( TC_tx_block() ); + // execute( TC_block_other_nsvc() ); // reset, unblock, sleep(1), block over another nsvci + /* 48.016 7.2 Unblock procedure */ + execute( TC_tx_unblock() ); + execute( TC_tx_unblock_retries() ); + // execute( TC_rx_unblock_tx_unblock() ); // wait for an rx unblock pdu, send an unblock pdu, expect unblock ack pdu + // execute( TC_unblockable() ); // block a NS-VCI via vty, try block procedure + + /* 48.016 7.2.1 Block Abnormal Condition */ + /* 48.016 7.2.1 Unblock Abnormal Condition */ + + /* 48.016 7.3.1 Abnormal Condition */ + if (mp_dialect == NS2_DIALECT_STATIC_RESETBLOCK) { + execute( TC_reset_ack_wrong_nsei() ); + execute( TC_reset_ack_wrong_nsvci() ); + execute( TC_reset_ack_wrong_nsei_nsvci() ); + // execute( TC_reset_retries() ); + // execute( TC_reset_wrong_nsvci() ); + // execute( TC_reset_wrong_nsei() ); + } + execute( TC_ignore_reset_ack() ); + + /* 48.016 7.4 Test procedure on frame relay */ + execute( TC_tx_reset_tx_alive() ); + execute( TC_tx_reset_rx_alive() ); + + /* 48.016 7.4.1 Abnormal Condition */ + if (mp_dialect == NS2_DIALECT_STATIC_RESETBLOCK) { + // execute( TC_alive_retries_multi() ); // check if alive retries works and block over an alive nsvc + execute( TC_alive_retries_single_reset() ); + } else if (mp_dialect == NS2_DIALECT_IPACCESS) { + execute( TC_alive_retries_single_no_resp() ); + } + execute( TC_no_reset_alive_ack() ); +} + +} diff --git a/ns/NS_Tests.udp.cfg b/ns/NS_Tests.udp.cfg new file mode 100644 index 0000000..ad87c2e --- /dev/null +++ b/ns/NS_Tests.udp.cfg @@ -0,0 +1,33 @@ +[ORDERED_INCLUDE] +# Common configuration, shared between test suites +"../Common.cfg" +# testsuite specific configuration, not expected to change +"./NS_Tests.default" + +[LOGGING] + +[MODULE_PARAMETERS] +NS_Tests.mp_nsconfig := { + nsei := 1234, + nsvc := { + { + provider := { + ip := { + address_family := AF_INET, + local_ip := "127.0.0.1", + local_udp_port := 22000, + remote_ip := "127.0.0.1", + remote_udp_port := 23000 + } + }, + nsvci := 1234 + } + } +} + +[TESTPORT_PARAMETERS] + +[MAIN_CONTROLLER] + +[EXECUTE] +NS_Tests.control diff --git a/ns/expected-results.xml b/ns/expected-results.xml new file mode 100644 index 0000000..459744d --- /dev/null +++ b/ns/expected-results.xml @@ -0,0 +1,4 @@ + + + + diff --git a/ns/gen_links.sh b/ns/gen_links.sh new file mode 100755 index 0000000..0b38d99 --- /dev/null +++ b/ns/gen_links.sh @@ -0,0 +1,61 @@ +#!/bin/bash + +BASEDIR=../deps + +. ../gen_links.sh.inc + +DIR=$BASEDIR/titan.TestPorts.UNIX_DOMAIN_SOCKETasp/src +FILES="UD_PT.cc UD_PT.hh UD_PortType.ttcn UD_Types.ttcn" +gen_links $DIR $FILES + +DIR=$BASEDIR/titan.Libraries.TCCUsefulFunctions/src +FILES="TCCInterface_Functions.ttcn TCCConversion_Functions.ttcn TCCConversion.cc TCCInterface.cc TCCInterface_ip.h" +gen_links $DIR $FILES + +DIR=$BASEDIR/titan.TestPorts.Common_Components.Socket-API/src +FILES="Socket_API_Definitions.ttcn" +gen_links $DIR $FILES + +DIR=$BASEDIR/titan.TestPorts.IPL4asp/src +FILES="IPL4asp_Functions.ttcn IPL4asp_PT.cc IPL4asp_PT.hh IPL4asp_PortType.ttcn IPL4asp_Types.ttcn IPL4asp_discovery.cc IPL4asp_protocol_L234.hh" +gen_links $DIR $FILES + +DIR=$BASEDIR/titan.ProtocolModules.NS_v7.3.0/src +FILES="NS_Types.ttcn" +gen_links $DIR $FILES + +DIR=$BASEDIR/titan.ProtocolModules.BSSGP_v13.0.0/src +FILES="BSSGP_EncDec.cc BSSGP_Types.ttcn" +gen_links $DIR $FILES + +DIR=$BASEDIR/titan.ProtocolModules.MobileL3_v13.4.0/src +FILES="MobileL3_CC_Types.ttcn MobileL3_CommonIE_Types.ttcn MobileL3_GMM_SM_Types.ttcn MobileL3_MM_Types.ttcn MobileL3_RRM_Types.ttcn MobileL3_SMS_Types.ttcn MobileL3_SS_Types.ttcn MobileL3_Types.ttcn" +gen_links $DIR $FILES + +DIR=$BASEDIR/titan.ProtocolModules.LLC_v7.1.0/src +FILES="LLC_EncDec.cc LLC_Types.ttcn" +gen_links $DIR $FILES + +DIR=$BASEDIR/titan.ProtocolModules.SNDCP_v7.0.0/src +FILES="SNDCP_Types.ttcn" +gen_links $DIR $FILES + +DIR=$BASEDIR/titan.TestPorts.AF_PACKET/src +FILES="AF_PACKET_PT.cc AF_PACKET_PT.hh AF_PACKET_PortType.ttcn AF_PACKET_PortTypes.ttcn " +FILES+="FrameRelay_Types.ttcn FrameRelay_CodecPort.ttcn FrameRelay_Emulation.ttcn Q931_Types.ttcn Q933_Types.ttcn " +gen_links $DIR $FILES + +DIR=$BASEDIR/titan.TestPorts.TELNETasp/src +FILES="TELNETasp_PT.cc TELNETasp_PT.hh TELNETasp_PortType.ttcn" +gen_links $DIR $FILES + +DIR=../library +FILES="Misc_Helpers.ttcn General_Types.ttcn Osmocom_VTY_Functions.ttcn Native_Functions.ttcn Native_FunctionDefs.cc GSM_Types.ttcn GSM_RR_Types.ttcn Osmocom_Types.ttcn RLCMAC_Templates.ttcn RLCMAC_Types.ttcn RLCMAC_CSN1_Templates.ttcn RLCMAC_CSN1_Types.ttcn RLCMAC_EncDec.cc " +FILES+="StatsD_Types.ttcn StatsD_CodecPort.ttcn StatsD_CodecPort_CtrlFunct.ttcn StatsD_CodecPort_CtrlFunctdef.cc StatsD_Checker.ttcn " +FILES+="NS_Provider_IPL4.ttcn NS_Provider_FR.ttcn NS_Emulation.ttcnpp NS_CodecPort.ttcn NS_CodecPort_CtrlFunct.ttcn NS_CodecPort_CtrlFunctDef.cc " +FILES+="BSSGP_Emulation.ttcnpp Osmocom_Gb_Types.ttcn " +FILES+="LLC_Templates.ttcn L3_Templates.ttcn L3_Common.ttcn " +FILES+="PCUIF_Types.ttcn PCUIF_CodecPort.ttcn RAW_NS.ttcnpp " +gen_links $DIR $FILES + +ignore_pp_results diff --git a/ns/osmo-ns.fr.cfg b/ns/osmo-ns.fr.cfg new file mode 100644 index 0000000..d1109ab --- /dev/null +++ b/ns/osmo-ns.fr.cfg @@ -0,0 +1,55 @@ +log gsmtap 127.0.0.1 + logging level set-all debug + +log stderr + logging filter all 1 + logging print level 1 + logging print category 1 + logging print category-hex 0 + logging print file basename last + logging print extended-timestamp 1 + logging level set-all debug +! +stats interval 0 +stats reporter statsd + prefix TTCN3 + level subscriber + remote-ip 127.0.0.1 + remote-port 8125 + flush-period 1 + mtu 1024 + enable + +line vty + no login + bind 127.0.0.1 + +ns + bind fr hdlcnet1 + fr hdlcnet1 frnet + bind fr hdlcnet2 + fr hdlcnet2 frnet + bind fr hdlcnet3 + fr hdlcnet3 frnet + bind fr hdlcnet4 + fr hdlcnet4 frnet + bind fr hdlcnet5 + fr hdlcnet5 frnet + bind fr hdlcnet6 + fr hdlcnet6 frnet + bind fr hdlcnet7 + fr hdlcnet7 frnet + bind fr hdlcnet8 + fr hdlcnet8 frnet + nse 2001 + nsvc fr hdlcnet1 dlci 16 nsvci 1 + nsvc fr hdlcnet2 dlci 17 nsvci 2 + nsvc fr hdlcnet3 dlci 18 nsvci 3 + nsvc fr hdlcnet4 dlci 19 nsvci 4 + nse 2002 + nsvc fr hdlcnet5 dlci 20 nsvci 5 + nsvc fr hdlcnet6 dlci 21 nsvci 6 + nse 2003 + nsvc fr hdlcnet7 dlci 22 nsvci 7 + nsvc fr hdlcnet8 dlci 23 nsvci 8 + diff --git a/ns/osmo-ns.udp.cfg b/ns/osmo-ns.udp.cfg new file mode 100644 index 0000000..d7c70b4 --- /dev/null +++ b/ns/osmo-ns.udp.cfg @@ -0,0 +1,91 @@ +! +! OsmoNSdummy (1.4.0.326-f57c-dirty) configuration saved from vty +!! +! +log stderr + logging filter all 1 + logging color 0 + logging print category-hex 0 + logging print category 1 + logging print extended-timestamp 1 + logging print level 1 + logging print file basename + logging level force-all info + logging level lglobal debug + logging level llapd debug + logging level linp debug + logging level lmux debug + logging level lmi debug + logging level lmib debug + logging level lsms debug + logging level lctrl debug + logging level lgtp debug + logging level lstats debug + logging level lgsup debug + logging level loap debug + logging level lss7 debug + logging level lsccp debug + logging level lsua debug + logging level lm3ua debug + logging level lmgcp debug + logging level ljibuf debug + logging level lrspro debug + logging level lns debug + logging level lbssgp debug +log gsmtap 127.0.0.1 + logging filter all 0 + logging color 1 + logging print category-hex 1 + logging print category 0 + logging timestamp 0 + logging print file 1 + logging level lglobal debug + logging level llapd debug + logging level linp debug + logging level lmux debug + logging level lmi debug + logging level lmib debug + logging level lsms debug + logging level lctrl debug + logging level lgtp debug + logging level lstats debug + logging level lgsup debug + logging level loap debug + logging level lss7 debug + logging level lsccp debug + logging level lsua debug + logging level lm3ua debug + logging level lmgcp debug + logging level ljibuf debug + logging level lrspro debug + logging level lns debug + logging level lbssgp debug +! +stats reporter statsd + disable + remote-ip 127.0.0.1 + remote-port 8125 + mtu 1024 + level subscriber + prefix TTCN3 + flush-period 1 + enable +stats interval 0 +! +line vty + no login +! +ns + timer tns-block 3 + timer tns-block-retries 3 + timer tns-reset 3 + timer tns-reset-retries 3 + timer tns-test 12 + timer tns-alive 3 + timer tns-alive-retries 3 + timer tsns-prov 3 + timer tsns-size-retries 3 + timer tsns-config-retries 3 + bind udp local + listen 127.0.0.1 23000 + accept-ipaccess diff --git a/ns/regen_makefile.sh b/ns/regen_makefile.sh new file mode 100755 index 0000000..dc96587 --- /dev/null +++ b/ns/regen_makefile.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +FILES="*.ttcn *.ttcnpp BSSGP_EncDec.cc IPL4asp_PT.cc IPL4asp_discovery.cc TCCConversion.cc TCCInterface.cc NS_CodecPort_CtrlFunctDef.cc UD_PT.cc RLCMAC_EncDec.cc LLC_EncDec.cc TELNETasp_PT.cc Native_FunctionDefs.cc StatsD_CodecPort_CtrlFunctdef.cc " + +FILES+="AF_PACKET_PT.cc AF_PACKET_PT.hh " + +export CPPFLAGS_TTCN3="-DBSSGP_EM_L3 -DNS_EMULATION_FR" + +../regen-makefile.sh NS_Tests.ttcn $FILES -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22091 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ic619a374b88879d3116f8f28afb14401c3e3192b Gerrit-Change-Number: 22091 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 02:31:05 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 11 Jan 2021 02:31:05 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Fix suspend/resume tests In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22048 ) Change subject: Fix suspend/resume tests ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22048 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ie0fd81edb748d3c638e42c4418ca514095c55861 Gerrit-Change-Number: 22048 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 11 Jan 2021 02:31:05 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 02:33:03 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 11 Jan 2021 02:33:03 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Fix suspend/resume tests In-Reply-To: References: Message-ID: daniel has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22048 ) Change subject: Fix suspend/resume tests ...................................................................... Fix suspend/resume tests Ensure that a suspend/resume was sent before sending the *_(N)ACK. In reality these can only happen together and our TLLI cache removes the entries after it sees the corresponding (N)ACK so it will not forward the second message. Change-Id: Ie0fd81edb748d3c638e42c4418ca514095c55861 Related: SYS#4865, OS#4472 --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 12 insertions(+), 0 deletions(-) Approvals: lynxis lazus: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index 59154e8..475b647 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -1024,6 +1024,12 @@ f_global_sgsn2pcu(pdu_tx, pdu_rx); + pdu_tx := ts_BSSGP_SUSPEND(tlli, ra_id); + /* we cannot use pdu_tx as there are some subtle differences in the length field :/ */ + pdu_rx := tr_BSSGP_SUSPEND(tlli, ra_id); + + f_global_pcu2sgsn(pdu_tx, pdu_rx); + /* These messages are simple passed through so just also test sending NACK */ pdu_tx := ts_BSSGP_SUSPEND_NACK(tlli, ra_id, BSSGP_CAUSE_UNKNOWN_MS); /* we cannot use pdu_tx as there are some subtle differences in the length field :/ */ @@ -1060,6 +1066,12 @@ f_global_sgsn2pcu(pdu_tx, pdu_rx); + pdu_tx := ts_BSSGP_RESUME(tlli, ra_id, int2oct(i, 1)); + /* we cannot use pdu_tx as there are some subtle differences in the length field :/ */ + pdu_rx := tr_BSSGP_RESUME(tlli, ra_id, int2oct(i, 1)); + + f_global_pcu2sgsn(pdu_tx, pdu_rx); + /* These messages are simple passed through so just also test sending NACK */ pdu_tx := ts_BSSGP_RESUME_NACK(tlli, ra_id, BSSGP_CAUSE_UNKNOWN_MS); /* we cannot use pdu_tx as there are some subtle differences in the length field :/ */ -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22048 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ie0fd81edb748d3c638e42c4418ca514095c55861 Gerrit-Change-Number: 22048 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 02:41:13 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 11 Jan 2021 02:41:13 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Fix TC_bvc_reset_sig_from_sgsn In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22049 ) Change subject: gbproxy: Fix TC_bvc_reset_sig_from_sgsn ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22049 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I1f2c76ae9bdc0267bfca60536e321fe88530803c Gerrit-Change-Number: 22049 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 11 Jan 2021 02:41:13 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 02:41:20 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 11 Jan 2021 02:41:20 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Fix TC_bvc_reset_sig_from_sgsn In-Reply-To: References: Message-ID: daniel has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22049 ) Change subject: gbproxy: Fix TC_bvc_reset_sig_from_sgsn ...................................................................... gbproxy: Fix TC_bvc_reset_sig_from_sgsn The port receive operation only considers the first message in the queue. We need to drain unrelated status/reset messages, such as those from PTP BVCs, otherwise the test never completes and times out. Change-Id: I1f2c76ae9bdc0267bfca60536e321fe88530803c Related: SYS#5115 OS#4518 --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 15 insertions(+), 1 deletion(-) Approvals: lynxis lazus: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index 475b647..00f6e2e 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -2305,24 +2305,38 @@ f_cleanup(); } +private altstep as_ignore_mgmt(BSSGP_BVC_MGMT_PT pt) { + [] pt.receive {repeat; } +} + private altstep as_count_bvc0_block(integer pcu_idx, Nsei nsei, inout ro_integer roi) runs on test_CT { var BSSGP_CT pcu_ct := g_pcu[pcu_idx].vc_BSSGP; [] PCU_MGMT.receive(BssgpResetIndication:{0}) from pcu_ct { roi := roi & { nsei }; + repeat; } } + /* reset the signaling BVC from the SGSN; expect all signaling BVC on all BSS to be reset */ testcase TC_bvc_reset_sig_from_sgsn() runs on test_CT { f_init(); f_sleep(3.0); + SGSN_MGMT.clear; + PCU_MGMT.clear; + /* Start BVC-RESET procedure for BVCI=0 */ SGSN_MGMT.send(BssgpResetRequest:{cause:=BSSGP_CAUSE_OM_INTERVENTION}) to g_sgsn[0].vc_BSSGP; + /* Defaults match in reverse activation order, this one is a catch-all for Status indications + * and reset indications sent from other components (like the ptp_bvcs). If we don't drain + * the port and a different message sits at the front we wait forever and fail the test. + */ + var ro_default defaults := { activate(as_ignore_mgmt(PCU_MGMT)) }; + /* Activate altsteps: One for each PCU NSE */ - var ro_default defaults := {}; for (var integer i := 0; i < lengthof(g_pcu); i := i+1) { var NSConfiguration nscfg := mp_nsconfig_pcu[i]; var default d := activate(as_count_bvc0_block(i, nscfg.nsei, g_roi)); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22049 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I1f2c76ae9bdc0267bfca60536e321fe88530803c Gerrit-Change-Number: 22049 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 02:48:54 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 11 Jan 2021 02:48:54 +0000 Subject: Change in docker-playground[master]: gbproxy: Enable IP-SNS towards SGSN In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22087 ) Change subject: gbproxy: Enable IP-SNS towards SGSN ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22087 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Iebbad7131d73c15ef7ded5eadce882c653b8bf2c Gerrit-Change-Number: 22087 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Mon, 11 Jan 2021 02:48:54 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 02:49:42 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 11 Jan 2021 02:49:42 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Enable IP-SNS towards SGSN In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22086 ) Change subject: gbproxy: Enable IP-SNS towards SGSN ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22086 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ia9cb646d57cd3bf77aebf60318e5f76599d516a5 Gerrit-Change-Number: 22086 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Mon, 11 Jan 2021 02:49:42 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 03:32:28 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 11 Jan 2021 03:32:28 +0000 Subject: Change in docker-playground[master]: ttcn3-gbproxy-test: Fix pcap capture with dumpcap In-Reply-To: References: Message-ID: daniel has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22047 ) Change subject: ttcn3-gbproxy-test: Fix pcap capture with dumpcap ...................................................................... ttcn3-gbproxy-test: Fix pcap capture with dumpcap In commit 2279aac6 dumpcap is used to capture pcaps, but dumpcap fails if the directory isn't writable for everyone. Commit 62ac27779 only fixed this issue for frame relay, this simply mirrors the change for ttcn3-gbproxy-test Change-Id: I11dcf9efd0b06544a82e31dec03fe76e182fd0d3 Related: OS#4518 SYS#5115 --- M ttcn3-gbproxy-test-fr/jenkins.sh M ttcn3-gbproxy-test/jenkins.sh 2 files changed, 4 insertions(+), 1 deletion(-) Approvals: daniel: Verified pespin: Looks good to me, but someone else must approve lynxis lazus: Looks good to me, approved diff --git a/ttcn3-gbproxy-test-fr/jenkins.sh b/ttcn3-gbproxy-test-fr/jenkins.sh index 7038810..78d98e2 100755 --- a/ttcn3-gbproxy-test-fr/jenkins.sh +++ b/ttcn3-gbproxy-test-fr/jenkins.sh @@ -24,7 +24,7 @@ network_create $SUBNET mkdir $VOL_BASE_DIR/gbproxy-tester -# if we don't change permissiosn, dumpcap fails to write (despite starting it as root!) +# if we don't change permissions, dumpcap fails to write (despite starting it as root!) chmod a+w $VOL_BASE_DIR/gbproxy-tester cp GBProxy_Tests.cfg $VOL_BASE_DIR/gbproxy-tester/ diff --git a/ttcn3-gbproxy-test/jenkins.sh b/ttcn3-gbproxy-test/jenkins.sh index acc7350..8150430 100755 --- a/ttcn3-gbproxy-test/jenkins.sh +++ b/ttcn3-gbproxy-test/jenkins.sh @@ -10,6 +10,9 @@ network_create $SUBNET mkdir $VOL_BASE_DIR/gbproxy-tester +# if we don't change permissions, dumpcap fails to write (despite starting it as root!) +chmod a+w $VOL_BASE_DIR/gbproxy-tester + cp GBProxy_Tests.cfg $VOL_BASE_DIR/gbproxy-tester/ mkdir $VOL_BASE_DIR/sgsn -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22047 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I11dcf9efd0b06544a82e31dec03fe76e182fd0d3 Gerrit-Change-Number: 22047 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Mon Jan 11 03:51:12 2021 From: admin at opensuse.org (OBS Notification) Date: Mon, 11 Jan 2021 03:51:12 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.10/x86_64 In-Reply-To: References: Message-ID: <5ffbcb4520606_4d52b06e3fb85f09559b8@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/xUbuntu_20.10/x86_64 Package network:osmocom:nightly/simtrace2 failed to build in xUbuntu_20.10/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 159s] [COMPILING apps/dfu/main.c] [ 159s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 159s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 160s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 160s] Memory region Used Size Region Size %age Used [ 160s] rom: 16580 B 16 KB 101.20% [ 160s] ram: 11672 B 48 KB 23.75/usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 160s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 160s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 160s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 160s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 160s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 160s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 196 bytes [ 160s] collect2: error: ld returned 1 exit status [ 160s] % [ 160s] make[2]: *** [Makefile:234: flash] Error 1 [ 160s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 160s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 160s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 160s] dh_auto_build: error: make -j1 returned exit code 2 [ 160s] make: *** [debian/rules:16: build] Error 25 [ 160s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 160s] ### VM INTERACTION START ### [ 163s] [ 151.765391] sysrq: Power Off [ 163s] [ 151.771636] reboot: Power down [ 163s] ### VM INTERACTION END ### [ 163s] [ 163s] lamb59 failed "build simtrace2_0.7.0.69.aadd.dsc" at Mon Jan 11 03:50:41 UTC 2021. [ 163s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Mon Jan 11 04:04:07 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 11 Jan 2021 04:04:07 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Implement TLLI cache and use it for SUSPEND/RESUME In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21960 to look at the new patch set (#4). Change subject: gbproxy: Implement TLLI cache and use it for SUSPEND/RESUME ...................................................................... gbproxy: Implement TLLI cache and use it for SUSPEND/RESUME When routing a SUSPEND/RESUME we need to keep track of where it came from so we can send the (N)ACK back to the correct BSS. Use the TLLI which is present in both messages to cache and retrieve the correct BSS. A timer runs every two seconds and expires entries that are older than the timeout (hardcoded to 5 seconds for now). Related: SYS#4865, OS#4472 Change-Id: I42adf70f560d2bb358a9e1c7614281e8d2967568 --- M include/osmocom/sgsn/gb_proxy.h M src/gbproxy/gb_proxy.c M src/gbproxy/gb_proxy_peer.c 3 files changed, 175 insertions(+), 10 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/60/21960/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21960 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I42adf70f560d2bb358a9e1c7614281e8d2967568 Gerrit-Change-Number: 21960 Gerrit-PatchSet: 4 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 04:04:18 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 11 Jan 2021 04:04:18 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Implement TLLI cache and use it for SUSPEND/RESUME In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21960 ) Change subject: gbproxy: Implement TLLI cache and use it for SUSPEND/RESUME ...................................................................... Patch Set 4: (8 comments) https://gerrit.osmocom.org/c/osmo-sgsn/+/21960/3/include/osmocom/sgsn/gb_proxy.h File include/osmocom/sgsn/gb_proxy.h: https://gerrit.osmocom.org/c/osmo-sgsn/+/21960/3/include/osmocom/sgsn/gb_proxy.h at 175 PS3, Line 175: struct gbproxy_tlli_cache { > cache_entry or cache_item would be more descriptive imho Done https://gerrit.osmocom.org/c/osmo-sgsn/+/21960/3/src/gbproxy/gb_proxy.c File src/gbproxy/gb_proxy.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/21960/3/src/gbproxy/gb_proxy.c at 896 PS3, Line 896: tlli = osmo_load32be(TLVP_VAL(&tp, BSSGP_IE_TLLI)); > would be great checking if TLLI is really there instead of directly de-referencing it. tlli is a mandatory field for SUSPEND/RESUME and in line 860 osmo_tlv_prot_parse would fail if any mandatory field isn't present. Other branches skip these kind of checks as well. https://gerrit.osmocom.org/c/osmo-sgsn/+/21960/3/src/gbproxy/gb_proxy.c at 1164 PS3, Line 1164: uint32_t tlli = osmo_load32be(TLVP_VAL(&tp, BSSGP_IE_TLLI)); > same Done https://gerrit.osmocom.org/c/osmo-sgsn/+/21960/3/src/gbproxy/gb_proxy.c at 1170 PS3, Line 1170: // FIXME > FIX what? Replaced with todo for counter https://gerrit.osmocom.org/c/osmo-sgsn/+/21960/3/src/gbproxy/gb_proxy.c at 1400 PS3, Line 1400: void tlli_cache_cleanup(void *data) > static Done https://gerrit.osmocom.org/c/osmo-sgsn/+/21960/3/src/gbproxy/gb_proxy.c at 1405 PS3, Line 1405: osmo_timer_schedule(&cfg->tlli_cache.timer, 2, 0); > Probably worth avoid reescheduling it if the tlli cache is empty, and reenabling it when first item [?] Yeah, I thought about it as an optimization. I'll add a TODO for now https://gerrit.osmocom.org/c/osmo-sgsn/+/21960/3/src/gbproxy/gb_proxy_peer.c File src/gbproxy/gb_proxy_peer.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/21960/3/src/gbproxy/gb_proxy_peer.c at 270 PS3, Line 270: // Update the entry if it already exists > /* */ Done https://gerrit.osmocom.org/c/osmo-sgsn/+/21960/3/src/gbproxy/gb_proxy_peer.c at 320 PS3, Line 320: expiry = now.tv_sec - cfg->tlli_cache.timeout; > I'd go or using timespec completely. [?] We don't really need sub-second resolution anyway (and I changed the tlli_cache.timeout from timespec after a comment from Harald) https://gerrit.osmocom.org/c/osmo-sgsn/+/21960/1/include/osmocom/sgsn/gb_proxy.h#177 I agree that comparing with timespec would probably be nicer here. -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21960 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I42adf70f560d2bb358a9e1c7614281e8d2967568 Gerrit-Change-Number: 21960 Gerrit-PatchSet: 4 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Mon, 11 Jan 2021 04:04:18 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Mon Jan 11 04:05:46 2021 From: admin at opensuse.org (OBS Notification) Date: Mon, 11 Jan 2021 04:05:46 +0000 Subject: Build failure of network:osmocom:nightly/osmo-smlc in Debian_10/i586 In-Reply-To: References: Message-ID: <5ffbcead453d0_4d52b06e3fb85f09582fb@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-smlc/Debian_10/i586 Package network:osmocom:nightly/osmo-smlc failed to build in Debian_10/i586 Check out the package for editing: osc checkout network:osmocom:nightly osmo-smlc Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was lamb61:8) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jan 11 04:06:03 2021 From: admin at opensuse.org (OBS Notification) Date: Mon, 11 Jan 2021 04:06:03 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <5ffbcec4c10af_4d52b06e3fb85f095842e@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/xUbuntu_20.04/x86_64 Package network:osmocom:nightly/simtrace2 failed to build in xUbuntu_20.04/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 253s] [COMPILING libboard/qmod/source/wwan_perst.c] [ 253s] [COMPILING libboard/qmod/source/card_pres.c] [ 253s] [COMPILING libboard/qmod/source/wwan_led.c] [ 254s] [COMPILING libboard/qmod/source/i2c.c] [ 254s] [COMPILING libboard/qmod/source/board_qmod.c] [ 254s] [COMPILING apps/dfu/main.c] [ 254s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 254s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 255s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 255s] Memory region Used Size Region Size %age Used [ 255s] rom: 16588 B 16 KB 101.25% [ 255s] ram: 11672 B 48 KB 23.75/usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 255s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 204 bytes [ 255s] collect2: error: ld returned 1 exit status [ 255s] % [ 255s] make[2]: *** [Makefile:234: flash] Error 1 [ 255s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 255s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 255s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 255s] dh_auto_build: error: make -j1 returned exit code 2 [ 255s] make: *** [debian/rules:16: build] Error 25 [ 255s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 255s] ### VM INTERACTION START ### [ 258s] [ 246.366788] sysrq: Power Off [ 258s] [ 246.395484] reboot: Power down [ 258s] ### VM INTERACTION END ### [ 258s] [ 258s] lamb61 failed "build simtrace2_0.7.0.69.aadd.dsc" at Mon Jan 11 04:04:16 UTC 2021. [ 258s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Mon Jan 11 09:39:28 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 11 Jan 2021 09:39:28 +0000 Subject: Change in osmo-bsc[master]: hodec2: to balance congestion, use overload percent In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22085 ) Change subject: hodec2: to balance congestion, use overload percent ...................................................................... Patch Set 3: (3 comments) https://gerrit.osmocom.org/c/osmo-bsc/+/22085/3/src/osmo-bsc/handover_decision_2.c File src/osmo-bsc/handover_decision_2.c: https://gerrit.osmocom.org/c/osmo-bsc/+/22085/3/src/osmo-bsc/handover_decision_2.c at 395 PS3, Line 395: * decimal digits of fractional part. If there is no congestion (free_tch > min_free_tch), return 0. >= as in code below. https://gerrit.osmocom.org/c/osmo-bsc/+/22085/3/src/osmo-bsc/handover_decision_2.c at 401 PS3, Line 401: if (!min_free_tch This can go in one line https://gerrit.osmocom.org/c/osmo-bsc/+/22085/3/src/osmo-bsc/handover_decision_2.c at 404 PS3, Line 404: /* There can be no negative amount of free TCH/x, clamp to a minimum of zero available slots. This could I would rather make sure this doesn't happen in the caller and have the parameters be unsigned in this function. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22085 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I55234c6c99eb02ceee52be0d7388bea14304930f Gerrit-Change-Number: 22085 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 11 Jan 2021 09:39:28 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 09:40:47 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 11 Jan 2021 09:40:47 +0000 Subject: Change in osmo-ttcn3-hacks[master]: NS_Provider_IPL4: fix typo in comment In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22088 ) Change subject: NS_Provider_IPL4: fix typo in comment ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22088 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ieed010a15675b105807bc8c55bb0977fcb6aa7f3 Gerrit-Change-Number: 22088 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 11 Jan 2021 09:40:47 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 09:40:55 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 11 Jan 2021 09:40:55 +0000 Subject: Change in osmo-ttcn3-hacks[master]: NS_Emulation: remove unused variable res In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22089 ) Change subject: NS_Emulation: remove unused variable res ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22089 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I5cc25ccb8e0d169b6f85e597fda47fdd2130aa70 Gerrit-Change-Number: 22089 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 11 Jan 2021 09:40:55 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 09:41:04 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 11 Jan 2021 09:41:04 +0000 Subject: Change in osmo-ttcn3-hacks[master]: NS_Provider_IPL4: fix typo in comment In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22088 ) Change subject: NS_Provider_IPL4: fix typo in comment ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22088 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ieed010a15675b105807bc8c55bb0977fcb6aa7f3 Gerrit-Change-Number: 22088 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 11 Jan 2021 09:41:04 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 09:46:47 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 11 Jan 2021 09:46:47 +0000 Subject: Change in docker-playground[master]: gbproxy: Enable IP-SNS towards SGSN In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22087 ) Change subject: gbproxy: Enable IP-SNS towards SGSN ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22087 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Iebbad7131d73c15ef7ded5eadce882c653b8bf2c Gerrit-Change-Number: 22087 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 11 Jan 2021 09:46:47 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 09:47:23 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 11 Jan 2021 09:47:23 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Enable IP-SNS towards SGSN In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22086 ) Change subject: gbproxy: Enable IP-SNS towards SGSN ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22086 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ia9cb646d57cd3bf77aebf60318e5f76599d516a5 Gerrit-Change-Number: 22086 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 11 Jan 2021 09:47:23 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 09:52:51 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 11 Jan 2021 09:52:51 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Implement TLLI cache and use it for SUSPEND/RESUME In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21960 ) Change subject: gbproxy: Implement TLLI cache and use it for SUSPEND/RESUME ...................................................................... Patch Set 4: (1 comment) https://gerrit.osmocom.org/c/osmo-sgsn/+/21960/3/src/gbproxy/gb_proxy_peer.c File src/gbproxy/gb_proxy_peer.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/21960/3/src/gbproxy/gb_proxy_peer.c at 320 PS3, Line 320: expiry = now.tv_sec - cfg->tlli_cache.timeout; > We don't really need sub-second resolution anyway (and I changed the tlli_cache. [?] I'd say one thing is not being able to specify subsecond timeouts, and the other is not taking subsecond resolution under the timestamp, which means you will have a variability of up to 1 second in how much time the entry stays in the cache. Not sure if we really want this kind of uncertainity in there. -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21960 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I42adf70f560d2bb358a9e1c7614281e8d2967568 Gerrit-Change-Number: 21960 Gerrit-PatchSet: 4 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Mon, 11 Jan 2021 09:52:51 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Comment-In-Reply-To: daniel Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 12:24:17 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 11 Jan 2021 12:24:17 +0000 Subject: Change in docker-playground[master]: gbproxy: Enable IP-SNS towards SGSN In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22087 ) Change subject: gbproxy: Enable IP-SNS towards SGSN ...................................................................... Patch Set 2: Verified+1 Works for me -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22087 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Iebbad7131d73c15ef7ded5eadce882c653b8bf2c Gerrit-Change-Number: 22087 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 11 Jan 2021 12:24:17 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 12:24:24 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 11 Jan 2021 12:24:24 +0000 Subject: Change in docker-playground[master]: gbproxy: Enable IP-SNS towards SGSN In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22087 ) Change subject: gbproxy: Enable IP-SNS towards SGSN ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22087 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Iebbad7131d73c15ef7ded5eadce882c653b8bf2c Gerrit-Change-Number: 22087 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 11 Jan 2021 12:24:24 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 12:24:31 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 11 Jan 2021 12:24:31 +0000 Subject: Change in docker-playground[master]: gbproxy: Enable IP-SNS towards SGSN In-Reply-To: References: Message-ID: daniel has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22087 ) Change subject: gbproxy: Enable IP-SNS towards SGSN ...................................................................... gbproxy: Enable IP-SNS towards SGSN Change-Id: Iebbad7131d73c15ef7ded5eadce882c653b8bf2c --- M ttcn3-gbproxy-test/GBProxy_Tests.cfg M ttcn3-gbproxy-test/osmo-gbproxy.cfg 2 files changed, 2 insertions(+), 1 deletion(-) Approvals: lynxis lazus: Looks good to me, but someone else must approve pespin: Looks good to me, but someone else must approve daniel: Looks good to me, approved; Verified diff --git a/ttcn3-gbproxy-test/GBProxy_Tests.cfg b/ttcn3-gbproxy-test/GBProxy_Tests.cfg index 6b097a3..7bc38d6 100644 --- a/ttcn3-gbproxy-test/GBProxy_Tests.cfg +++ b/ttcn3-gbproxy-test/GBProxy_Tests.cfg @@ -14,6 +14,7 @@ [MODULE_PARAMETERS] GBProxy_Tests.mp_nsconfig_sgsn := { { + handle_sns := true, nsvc := { { provider := { diff --git a/ttcn3-gbproxy-test/osmo-gbproxy.cfg b/ttcn3-gbproxy-test/osmo-gbproxy.cfg index d437620..dd32ea7 100644 --- a/ttcn3-gbproxy-test/osmo-gbproxy.cfg +++ b/ttcn3-gbproxy-test/osmo-gbproxy.cfg @@ -27,7 +27,7 @@ listen 172.18.24.10 23000 accept-ipaccess nse 101 - nsvc ipa local 172.18.24.103 23000 nsvci 101 + ip-sns 172.18.24.103 23000 timer tns-block 3 timer tns-block-retries 3 timer tns-reset 3 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22087 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Iebbad7131d73c15ef7ded5eadce882c653b8bf2c Gerrit-Change-Number: 22087 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 13:11:00 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 11 Jan 2021 13:11:00 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Enable IP-SNS towards SGSN In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22086 ) Change subject: gbproxy: Enable IP-SNS towards SGSN ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22086 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ia9cb646d57cd3bf77aebf60318e5f76599d516a5 Gerrit-Change-Number: 22086 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 11 Jan 2021 13:11:00 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 13:11:04 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 11 Jan 2021 13:11:04 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Enable IP-SNS towards SGSN In-Reply-To: References: Message-ID: daniel has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22086 ) Change subject: gbproxy: Enable IP-SNS towards SGSN ...................................................................... gbproxy: Enable IP-SNS towards SGSN Change-Id: Ia9cb646d57cd3bf77aebf60318e5f76599d516a5 --- M gbproxy/GBProxy_Tests.cfg M gbproxy/GBProxy_Tests.fr.cfg M gbproxy/osmo-gbproxy.cfg M gbproxy/osmo-gbproxy.fr.cfg 4 files changed, 9 insertions(+), 3 deletions(-) Approvals: daniel: Looks good to me, approved lynxis lazus: Looks good to me, but someone else must approve pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/gbproxy/GBProxy_Tests.cfg b/gbproxy/GBProxy_Tests.cfg index 638946c..0e442d1 100644 --- a/gbproxy/GBProxy_Tests.cfg +++ b/gbproxy/GBProxy_Tests.cfg @@ -14,7 +14,7 @@ [MODULE_PARAMETERS] GBProxy_Tests.mp_nsconfig_sgsn := { { - handle_sns := false + handle_sns := true } } diff --git a/gbproxy/GBProxy_Tests.fr.cfg b/gbproxy/GBProxy_Tests.fr.cfg index d316fe5..234b2f4 100644 --- a/gbproxy/GBProxy_Tests.fr.cfg +++ b/gbproxy/GBProxy_Tests.fr.cfg @@ -14,6 +14,12 @@ [MODULE_PARAMETERS] GBProxy_Tests.mp_enable_bss_load_sharing := true; +GBProxy_Tests.mp_nsconfig_sgsn := { + { + handle_sns := true + } +} + GBProxy_Tests.mp_nsconfig_pcu := { { nsei := 2001, diff --git a/gbproxy/osmo-gbproxy.cfg b/gbproxy/osmo-gbproxy.cfg index a3148e2..5ce0dfc 100644 --- a/gbproxy/osmo-gbproxy.cfg +++ b/gbproxy/osmo-gbproxy.cfg @@ -12,7 +12,7 @@ listen 127.0.0.1 23000 accept-ipaccess nse 101 - nsvc ipa local 127.0.0.1 7777 nsvci 101 + ip-sns 127.0.0.1 7777 timer tns-block 3 timer tns-block-retries 3 timer tns-reset 3 diff --git a/gbproxy/osmo-gbproxy.fr.cfg b/gbproxy/osmo-gbproxy.fr.cfg index bd94c5b..0898acc 100644 --- a/gbproxy/osmo-gbproxy.fr.cfg +++ b/gbproxy/osmo-gbproxy.fr.cfg @@ -34,7 +34,7 @@ timer tns-alive 3 timer tns-alive-retries 10 nse 101 - nsvc ipa local 127.0.0.1 7777 nsvci 101 + ip-sns 127.0.0.1 7777 nse 2001 nsvc fr hdlcnet1 dlci 16 nsvci 1 nsvc fr hdlcnet2 dlci 17 nsvci 2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22086 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ia9cb646d57cd3bf77aebf60318e5f76599d516a5 Gerrit-Change-Number: 22086 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 13:42:17 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 11 Jan 2021 13:42:17 +0000 Subject: Change in osmo-bsc[master]: power_control: add documentation on available configuration params In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21886 ) Change subject: power_control: add documentation on available configuration params ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21886 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ib65d33f0f1dd24d39e3be581e4e072a310bc906a Gerrit-Change-Number: 21886 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 11 Jan 2021 13:42:17 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 13:42:19 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 11 Jan 2021 13:42:19 +0000 Subject: Change in osmo-bsc[master]: power_control: add documentation on available configuration params In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21886 ) Change subject: power_control: add documentation on available configuration params ...................................................................... power_control: add documentation on available configuration params Change-Id: Ib65d33f0f1dd24d39e3be581e4e072a310bc906a Related: SYS#4918 --- A doc/manuals/chapters/power_control.adoc M doc/manuals/osmobsc-usermanual.adoc 2 files changed, 303 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/doc/manuals/chapters/power_control.adoc b/doc/manuals/chapters/power_control.adoc new file mode 100644 index 0000000..b8d182a --- /dev/null +++ b/doc/manuals/chapters/power_control.adoc @@ -0,0 +1,301 @@ +== Power control + +The objective of power control is to regulate the transmit power of the MS (Uplink) +as well as the BTS (Downlink) in order to achieve the optimal reception conditions, +i.e. a desired signal strength and a desired signal quality. + +There are two advantages of power control: + +- reduction of the average power consumption (especially in the MS), and +- reduction of the co-channel interference for adjacent channel users. + +Power control can be performed either by the BSC, or by the BTS autonomously. +OsmoBSC currently lacks the power control logic, so it cannot act as the regulating +entity, however it's capable to instruct a BTS that supports autonomous power +control to perform the power regulation. This is achieved by including vendor- +specific IEs with power control parameters in the channel activation messages +on the A-bis/RSL interface. + +=== Power control parameters + +Unfortunately, 3GPP specifications do not specify the exact list of power control +parameters and their encoding on the A-bis/RSL interface, so it's up to a BTS/BSC +vendor what to send and in which format. Furthermore, there is no public +documentation on which parameters are accepted by particular BTS models. + +3GPP TS 44.008 nonetheless defines a minimal set of parameters for a general power +control algorithm. OsmoBSC allows to configure these parameters via the VTY +interface, this is further described in the next sections. + +So far only the ip.access specific format is implemented, so it should be possible +to enable power control for nanoBTS. OsmoBTS also accepts this format, but may +ignore some of the received parameters due to incomplete implementation. + +==== When the parameters come into effect? + +It depends on how the power control parameters are signaled to the BTS. If a given +BTS vendor/model requires _each_ RSL CHANnel ACTIVation message to contain the full +set of parameters, than changing them in the BSC at run-time would affect all newly +established logical channels immediately. The existing connections would continue +to use parameters which were in use during the time of channel activation. + +For both ip.access nanoBTS and OsmoBTS, the configured parameters are being sent +only once when the A-bis/RSL link is established. In all subsequent RSL messages, +the MS/BS Power Parameters IE will be sent empty. Therefore, changing most of +dynamic power control parameters at run-time would affect neither the existing +nor newly established logical channels. + +It's still possible to 'push' a modified set of MS/BS power control parameters to a +BTS that accepts the default parameters at startup without triggering the A-bis/RSL +link re-establishment and thus interrupting the service. The following command +triggers resending of both MS/BS power control parameters: + +---- +# Resending from the 'enable' node: +OsmoBSC# bts 0 resend-power-control-defaults + +# Resending from any configuration node (note prefix 'do'): +OsmoBSC(config-ms-power-ctrl)# do bts 0 resend-power-control-defaults +---- + +NOTE: The above statement mostly applies to parameters for dynamic power control +mode (see below). Switching between power control modes, as well as changing +static/maximum power values, does not necessarily require resending of parameters. + +=== Power control configuration + +Two identical groups of parameters are available for both MS (Uplink) and BS +(Downlink) power control. This chapter is aimed to put some light on them. + +All parameters can be set via the VTY interface, currently within the scope of +a BTS. This means that all transceivers will 'inherit' the same configuration. + +---- +OsmoBSC(config)# network +OsmoBSC(config-net)# bts 0 +OsmoBSC(config-net-bts)# ? +... + bs-power-control BS (Downlink) power control parameters + ms-power-control MS (Uplink) power control parameters +... +---- + +Either of these commands would lead to a separate node: + +---- +OsmoBSC(config-net-bts)# ms-power-control +OsmoBSC(config-ms-power-ctrl)# list with-flags +... + . l. mode (static|dyn-bts) [reset] + . l. bs-power (static|dyn-max) <0-30> + . lv step-size inc <2-6> red <2-4> + . lv rxlev-thresh lower <0-63> upper <0-63> + . lv rxqual-thresh lower <0-7> upper <0-7> + . lv rxlev-thresh-comp lower <0-31> <0-31> upper <0-31> <0-31> + . lv rxqual-thresh-comp lower <0-31> <0-31> upper <0-31> <0-31> + . lv no (rxlev-avg|rxqual-avg) + . lv (rxlev-avg|rxqual-avg) params hreqave <1-31> hreqt <1-31> + . lv (rxlev-avg|rxqual-avg) algo (unweighted|weighted|mod-median) + . lv (rxlev-avg|rxqual-avg) algo osmo-ewma beta <1-99> +---- + +NOTE: Flag 'v' indicates that a given parameter is vendor specific, so different +BTS vendors/models may ignore or even reject it. Flag 'l' indicates that changing +a given parameter at run-time would affect only the new connections. + +==== Power control mode + +Three power control modes exist: + +---- +OsmoBSC(config-ms-power-ctrl)# mode ? + static Instruct the MS/BTS to use a static power level <1> + dyn-bts Power control to be performed dynamically by the BTS itself <2> +OsmoBSC(config-net-bts)# no (bs-power-control|ms-power-control) <3> +---- +<1> Send RSL MS/BS Power IE alone indicating a static power level to the BTS. +<2> Send both RSL MS/BS Power IE and vendor-specific MS/BS Power Parameters IE. +<3> Do not send any power control IEs in RSL CHANnel ACTIVation messages. + +By default, `static` mode is used for BS power control, while `dyn-bts` is used +for MS power control. Changing the mode at run-time would not affect already +established connections, only the new ones (check flag 'l'). + +For BS power control, there is an additional parameter: + +---- +OsmoBSC(config-bs-power-ctrl)# bs-power ? + static Fixed BS Power reduction value (for static mode) + dyn-max Maximum BS Power reduction value (for dynamic mode) +---- + +that allows to configure the maximum BS power reduction value in `dyn-bts` mode, +and a fixed power reduction value in `static` mode. In the later case, no +attenuation (0 dB) is applied by default (full power). + +==== Power change step size + +In order to slow down the reactivity of the power control loop and thus make it more +robust against sporadic fluctuations of the input values (RxLev and RxQual), the +transmit power on both Uplink and Downlink is changed gradually, step by step. + +OsmoBSC allows to configure the step sizes for both increasing and reducing directions +separately. The corresponding power control loop would apply different delta values +to the current transmit power level in order to raise or lower it. + +.Example: Power change step size +---- +network + bts 0 + bs-power-control + mode dyn-bts <1> + bs-power dyn-max 12 <2> + step-size inc 6 red 4 <3> + ms-power-control + mode dyn-bts <1> + step-size inc 4 red 2 <4> +---- +<1> Both MS and BS power control is to be performed by the BTS autonomously. +<2> The BTS is allowed to reduce the power on Downlink up to 12 dB. +<3> On Downlink, BS power can be increased by 6 dB or reduced by 4 dB at once. +<4> On Uplink, MS power can be increased by 4 dB or reduced by 2 dB at once. + +NOTE: In the context of BS power control, terms 'increase' and 'decrease' have the +same meaning as in the context of MS power control: to make the output power stronger +or weaker respectively. Even despite the BS power loop in fact controls the attenuation. + +TIP: It's recommended to pick the values in a way that the increase step is greater than +the reduce step. This way the system would be able to react on signal degradation +quickly, while a good signal would not trigger radical power reduction. + +Both parameters are mentioned in 3GPP TS 45.008, table A.1: + +- Pow_Incr_Step_Size (range 2, 4 or 6 dB), +- Pow_Red_Step_Size (range 2 or 4 dB). + +==== RxLev and RxQual thresholds + +The general idea of power control is to maintain the signal level (RxLev) and quality +(RxQual) within the target ranges. Each of these ranges can be defined as a pair of +the lowest and the highest acceptable values called thresholds. + +The process of RxLev / RxQual threshold comparison is described in 3GPP TS 45.008, +section A.3.2.1. All parameters involved in the process can be found in table +A.1 with the recommended default values. + +.Example: RxLev and RxQual threshold configuration +---- +network + bts 0 + bs-power-control + mode dyn-bts <1> + rxlev-thresh lower 32 upper 38 <2> + rxqual-thresh lower 3 upper 0 <3> +---- +<1> BS power control is to be performed by the BTS autonomously. +<2> RxLev is to be maintained in range 32 .. 38 (-78 .. -72 dBm). +<3> RxQual is to be maintained in range 3 .. 0 (less is better). + +NOTE: For both RxLev and RxQual thresholds, the lower and upper values are included +in the tolerance window. In the example above, RxQual=3 would not trigger the +control loop to increase BS power, as well as RxLev=38 (-72 dBm) would not trigger +power reduction. + +In 3GPP TS 45.008, lower and upper RxLev thresholds are referred as `L_RXLEV_XX_P` +and `U_RXLEV_XX_P`, while the RxQual thresholds are referred as `L_RXQUAL_XX_P` and +`U_RXQUAL_XX_P`, where the `XX` is either `DL` (Downlink) or `UL` (Uplink). + +The process of threshold comparison actually involves more than just upper and lower +values for RxLev and RxQual. The received 'raw' measurements are being averaged and +stored in a circular buffer, so the power change is triggered only if Pn averages out +of Nn averages exceed the corresponding thresholds. + +.Example: RxLev and RxQual threshold comparators +---- +network + bts 0 + bs-power-control + mode dyn-bts <1> + rxlev-thresh lower 32 upper 38 + rxlev-thresh-comp lower 10 12 <2> upper 19 20 <3> + rxqual-thresh lower 3 upper 0 + rxqual-thresh-comp lower 5 7 <4> upper 15 18 <5> +---- +<1> BS power control is to be performed by the BTS autonomously. +<2> P1=10 out of N1=12 averages < L_RXLEV_XX_P => increase power. +<3> P2=19 out of N2=20 averages > U_RXLEV_XX_P => decrease power. +<4> P3=5 out of N3=7 averages > L_RXQUAL_XX_P => increase power. +<5> P4=15 out of N4=18 averages < U_RXQUAL_XX_P => decrease power. + +==== Measurement averaging process + +3GPP 45.008, section A.3.1 requires that the measurement values reported by both +an MS and the BTS are be pre-processed before appearing on the input of the +corresponding power control loops in any of the following ways: + +- Unweighted average; +- Weighted average, with the weightings determined by O&M; +- Modified median calculation, with exceptionally high and low values + (outliers) removed before the median calculation. + +The pre-processing is expected to be performed for both MS and BS power control +loops independently, for every input parameter (i.e. RxLev and RxQual). + +---- +OsmoBSC(config-bs-power-ctrl)# rxlev-avg algo ? + unweighted Un-weighted average + weighted Weighted average + mod-median Modified median calculation + osmo-ewma Exponentially Weighted Moving Average (EWMA) +OsmoBSC(config-bs-power-ctrl)# rxqual-avg algo ? + unweighted Un-weighted average + weighted Weighted average + mod-median Modified median calculation + osmo-ewma Exponentially Weighted Moving Average (EWMA) +---- + +OsmoBTS features a non-standard Osmocom specific EWMA (Exponentially Weighted Moving +Average) based pre-processing. Other BTS models may support additional non-standard +methods too, the corresponding VTY options can be added on request. + +Among with the averaging methods, 3GPP 45.008 also defines two pre-processing +parameters in section A.3.1: + +- Hreqave - defines the period over which an average is produced, in terms of the + number of SACCH blocks containing measurement results, i.e. the number of + measurements contributing to each averaged measurement; + +- Hreqt - is the number of averaged results that are maintained. + +By default, OsmoBSC would not send any pre-processing parameters, so the BTS may +apply its default pre-processing algorithm with default parameters, or may not +apply any pre-processing at all - this is up to the vendor. The pre-processing +parameters need to be configured explicitly as shown in the example below. + +.Example: Explicit pre-processing configuration +---- +network + bts 0 + bs-power-control + mode dyn-bts <1> + rxlev-avg algo unweighted <2> + rxlev-avg params hreqave 4 hreqt 6 <3> + rxqual-avg algo osmo-ewma beta 50 <4> + rxqual-avg params hreqave 2 hreqt 3 <5> + ms-power-control + mode dyn-bts <1> + rxlev-avg algo unweighted <2> + rxlev-avg params hreqave 4 hreqt 6 <3> + rxqual-avg algo osmo-ewma beta 50 <4> + rxqual-avg params hreqave 2 hreqt 3 <5> +---- +<1> Both MS and BS power control is to be performed by the BTS autonomously. +<2> Unweighted average is applied to RxLev values. +<3> RxLev Hreqave and Hreqt values: 4 out of 6 SACCH blocks produce an averaged measurement. +<4> Osmocom specific EWMA is applied to RxQual values with smoothing factor = 50% (beta=0.5). +<5> RxQual: Hreqave and Hreqt values: 2 out of 3 SACCH blocks produce an averaged measurement. + +// TODO: Document P_Con_INTERVAL (not implemented yet) +// TODO: Document other power control parameters: +// OsmoBSC(config-net-bts)# ms max power <0-40> +// OsmoBSC(config-net-bts-trx)# max_power_red <0-100> diff --git a/doc/manuals/osmobsc-usermanual.adoc b/doc/manuals/osmobsc-usermanual.adoc index a084a51..e66b2be 100644 --- a/doc/manuals/osmobsc-usermanual.adoc +++ b/doc/manuals/osmobsc-usermanual.adoc @@ -24,6 +24,8 @@ include::{srcdir}/chapters/bsc.adoc[] +include::{srcdir}/chapters/power_control.adoc[] + include::{srcdir}/chapters/handover.adoc[] include::{srcdir}/chapters/smscb.adoc[] -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21886 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ib65d33f0f1dd24d39e3be581e4e072a310bc906a Gerrit-Change-Number: 21886 Gerrit-PatchSet: 4 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 13:42:45 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 11 Jan 2021 13:42:45 +0000 Subject: Change in osmo-ttcn3-hacks[master]: NS_Provider_IPL4: fix typo in comment In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22088 ) Change subject: NS_Provider_IPL4: fix typo in comment ...................................................................... NS_Provider_IPL4: fix typo in comment Change-Id: Ieed010a15675b105807bc8c55bb0977fcb6aa7f3 --- M library/NS_Provider_IPL4.ttcn 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/library/NS_Provider_IPL4.ttcn b/library/NS_Provider_IPL4.ttcn index 6d45fd0..9d72075 100644 --- a/library/NS_Provider_IPL4.ttcn +++ b/library/NS_Provider_IPL4.ttcn @@ -38,7 +38,7 @@ g_conn_id := res.connId; NSE.send(NS_Provider_Evt:{link_status := NS_PROV_LINK_STATUS_UP}); - /* transceive beteween user-facing port and UDP socket */ + /* transceive between user-facing port and UDP socket */ while (true) { var ASP_RecvFrom rx_rf; var PDU_NS rx_pdu; -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22088 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ieed010a15675b105807bc8c55bb0977fcb6aa7f3 Gerrit-Change-Number: 22088 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 13:42:47 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 11 Jan 2021 13:42:47 +0000 Subject: Change in osmo-ttcn3-hacks[master]: NS_Emulation: remove unused variable res In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22089 ) Change subject: NS_Emulation: remove unused variable res ...................................................................... NS_Emulation: remove unused variable res Change-Id: I5cc25ccb8e0d169b6f85e597fda47fdd2130aa70 --- M library/NS_Emulation.ttcnpp 1 file changed, 0 insertions(+), 2 deletions(-) Approvals: pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/library/NS_Emulation.ttcnpp b/library/NS_Emulation.ttcnpp index ba859b0..d6c7f61 100644 --- a/library/NS_Emulation.ttcnpp +++ b/library/NS_Emulation.ttcnpp @@ -372,8 +372,6 @@ } private function f_init(charstring id) runs on NSVC_CT { - var Result res; - if (ischosen(g_nsvc_config.provider.ip)) { /* Connect the UDP socket */ vc_NSP_IP := NS_Provider_IPL4_CT.create(id & "-provIP"); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22089 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I5cc25ccb8e0d169b6f85e597fda47fdd2130aa70 Gerrit-Change-Number: 22089 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 13:43:44 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 11 Jan 2021 13:43:44 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Use TLLI_UNUSED symbol everywhere References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22092 ) Change subject: pcu: Use TLLI_UNUSED symbol everywhere ...................................................................... pcu: Use TLLI_UNUSED symbol everywhere Change-Id: I0399e98dc726061ac272465288e2a4ba0a61be81 --- M pcu/PCU_Tests.ttcn 1 file changed, 21 insertions(+), 21 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/92/22092/1 diff --git a/pcu/PCU_Tests.ttcn b/pcu/PCU_Tests.ttcn index facaa59..8294f2a 100644 --- a/pcu/PCU_Tests.ttcn +++ b/pcu/PCU_Tests.ttcn @@ -384,7 +384,7 @@ /* Establish BSSGP connection to the PCU */ f_bssgp_establish(); - f_bssgp_client_llgmm_assign('FFFFFFFF'O, tlli); + f_bssgp_client_llgmm_assign(TLLI_UNUSED, tlli); /* SGSN sends some DL data, PCU will initiate Packet Downlink * Assignment on CCCH (PCH). We don't care about the payload. */ @@ -1212,7 +1212,7 @@ /* Establish BSSGP connection to the PCU */ f_bssgp_establish(); - f_bssgp_client_llgmm_assign('FFFFFFFF'O, ms.tlli); + f_bssgp_client_llgmm_assign(TLLI_UNUSED, ms.tlli); /* Establish an Uplink TBF */ f_ms_establish_ul_tbf(ms); @@ -1256,7 +1256,7 @@ /* Establish BSSGP connection to the PCU */ f_bssgp_establish(); - f_bssgp_client_llgmm_assign('FFFFFFFF'O, ms.tlli); + f_bssgp_client_llgmm_assign(TLLI_UNUSED, ms.tlli); /* SGSN sends some DL data, PCU will page on CCCH (PCH) */ BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data)); @@ -1306,7 +1306,7 @@ /* Establish BSSGP connection to the PCU */ f_bssgp_establish(); - f_bssgp_client_llgmm_assign('FFFFFFFF'O, ms.tlli); + f_bssgp_client_llgmm_assign(TLLI_UNUSED, ms.tlli); /* Establish an Uplink TBF */ f_ms_establish_ul_tbf(ms); @@ -1357,7 +1357,7 @@ /* Establish BSSGP connection to the PCU */ f_bssgp_establish(); - f_bssgp_client_llgmm_assign('FFFFFFFF'O, ms.tlli); + f_bssgp_client_llgmm_assign(TLLI_UNUSED, ms.tlli); /* Establish an Uplink TBF */ f_ms_establish_ul_tbf(ms); @@ -1492,7 +1492,7 @@ /* Establish BSSGP connection to the PCU */ f_bssgp_establish(); - f_bssgp_client_llgmm_assign('FFFFFFFF'O, ms.tlli); + f_bssgp_client_llgmm_assign(TLLI_UNUSED, ms.tlli); /* Establish an Uplink TBF */ f_ms_establish_ul_tbf(ms); @@ -1525,7 +1525,7 @@ /* Establish BSSGP connection to the PCU */ f_bssgp_establish(); - f_bssgp_client_llgmm_assign('FFFFFFFF'O, ms.tlli); + f_bssgp_client_llgmm_assign(TLLI_UNUSED, ms.tlli); /* Establish an Uplink TBF */ f_ms_establish_ul_tbf(ms); @@ -1591,7 +1591,7 @@ /* Establish BSSGP connection to the PCU */ f_bssgp_establish(); - f_bssgp_client_llgmm_assign('FFFFFFFF'O, ms.tlli); + f_bssgp_client_llgmm_assign(TLLI_UNUSED, ms.tlli); /* Send PACKET RESOURCE REQUEST to upgrade to EGPRS */ pollctx := f_ms_establish_ul_tbf_2phase_access(ms, ts_RlcMacUlCtrl_PKT_RES_REQ(ms.tlli, ms_racap)); @@ -1697,7 +1697,7 @@ /* Establish BSSGP connection to the PCU */ f_bssgp_establish(); - f_bssgp_client_llgmm_assign('FFFFFFFF'O, ms.tlli); + f_bssgp_client_llgmm_assign(TLLI_UNUSED, ms.tlli); /* SGSN sends some DL data, PCU will page on CCCH (PCH) */ BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data, ms_racap)); @@ -1772,7 +1772,7 @@ /* Establish BSSGP connection to the PCU */ f_bssgp_establish(); - f_bssgp_client_llgmm_assign('FFFFFFFF'O, ms.tlli); + f_bssgp_client_llgmm_assign(TLLI_UNUSED, ms.tlli); /* Establish an Uplink TBF */ f_ms_establish_ul_tbf(ms); @@ -1851,7 +1851,7 @@ /* Establish BSSGP connection to the PCU */ f_bssgp_establish(); - f_bssgp_client_llgmm_assign('FFFFFFFF'O, ms.tlli); + f_bssgp_client_llgmm_assign(TLLI_UNUSED, ms.tlli); /* SGSN sends some DL data, PCU will page on CCCH (PCH) */ BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data)); @@ -1902,7 +1902,7 @@ /* Establish BSSGP connection to the PCU */ f_bssgp_establish(); - f_bssgp_client_llgmm_assign('FFFFFFFF'O, ms.tlli); + f_bssgp_client_llgmm_assign(TLLI_UNUSED, ms.tlli); /* SGSN sends some DL data, PCU will page on CCCH (PCH) */ BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data)); @@ -1987,7 +1987,7 @@ /* Establish BSSGP connection to the PCU */ f_bssgp_establish(); - f_bssgp_client_llgmm_assign('FFFFFFFF'O, ms.tlli); + f_bssgp_client_llgmm_assign(TLLI_UNUSED, ms.tlli); /* Establish an Uplink TBF */ f_ms_establish_ul_tbf(ms); @@ -2242,7 +2242,7 @@ /* Establish BSSGP connection to the PCU */ f_bssgp_establish(); - f_bssgp_client_llgmm_assign('FFFFFFFF'O, ms.tlli); + f_bssgp_client_llgmm_assign(TLLI_UNUSED, ms.tlli); /* Establish an Uplink TBF */ f_ms_establish_ul_tbf(ms); @@ -2308,7 +2308,7 @@ /* Establish BSSGP connection to the PCU */ f_bssgp_establish(); - f_bssgp_client_llgmm_assign('FFFFFFFF'O, ms.tlli); + f_bssgp_client_llgmm_assign(TLLI_UNUSED, ms.tlli); /* Establish an Uplink TBF */ f_ms_establish_ul_tbf(ms); @@ -2352,7 +2352,7 @@ /* Establish BSSGP connection to the PCU */ f_bssgp_establish(); - f_bssgp_client_llgmm_assign('FFFFFFFF'O, ms.tlli); + f_bssgp_client_llgmm_assign(TLLI_UNUSED, ms.tlli); /* Establish an Uplink TBF */ f_ms_establish_ul_tbf(ms); @@ -2414,7 +2414,7 @@ /* Establish BSSGP connection to the PCU */ f_bssgp_establish(); - f_bssgp_client_llgmm_assign('FFFFFFFF'O, ms.tlli); + f_bssgp_client_llgmm_assign(TLLI_UNUSED, ms.tlli); /* Send BSSGP PAGING-PS (with or without TMSI), wait for RR Paging Request Type 1. * Make sure that both paging group (IMSI suffix) and Mobile Identity match. */ @@ -2463,7 +2463,7 @@ /* Establish BSSGP connection to the PCU */ f_bssgp_establish(); - f_bssgp_client_llgmm_assign('FFFFFFFF'O, ms.tlli); + f_bssgp_client_llgmm_assign(TLLI_UNUSED, ms.tlli); /* Establish an Uplink TBF */ f_ms_establish_ul_tbf(ms); @@ -2522,7 +2522,7 @@ /* Establish BSSGP connection to the PCU */ f_bssgp_establish(); - f_bssgp_client_llgmm_assign('FFFFFFFF'O, ms.tlli); + f_bssgp_client_llgmm_assign(TLLI_UNUSED, ms.tlli); /* Establish an Uplink TBF */ f_ms_establish_ul_tbf(ms); @@ -2971,7 +2971,7 @@ /* Establish BSSGP connection to the PCU */ f_bssgp_establish(); - f_bssgp_client_llgmm_assign('FFFFFFFF'O, ms.tlli); + f_bssgp_client_llgmm_assign(TLLI_UNUSED, ms.tlli); /* SGSN sends some DL data, PCU will page on CCCH (PCH) */ BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, f_rnd_octstring(12))); @@ -3075,7 +3075,7 @@ /* Establish BSSGP connection to the PCU */ f_bssgp_establish(); - f_bssgp_client_llgmm_assign('FFFFFFFF'O, ms.tlli); + f_bssgp_client_llgmm_assign(TLLI_UNUSED, ms.tlli); /* Establish an Uplink TBF */ f_ms_establish_ul_tbf(ms); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22092 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I0399e98dc726061ac272465288e2a4ba0a61be81 Gerrit-Change-Number: 22092 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 13:45:02 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 11 Jan 2021 13:45:02 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Use TLLI_UNUSED symbol everywhere In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22092 ) Change subject: pcu: Use TLLI_UNUSED symbol everywhere ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22092 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I0399e98dc726061ac272465288e2a4ba0a61be81 Gerrit-Change-Number: 22092 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 11 Jan 2021 13:45:02 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 13:45:33 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 11 Jan 2021 13:45:33 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Use TLLI_UNUSED constant everywhere In-Reply-To: References: Message-ID: laforge has uploaded a new patch set (#2) to the change originally created by pespin. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22092 ) Change subject: pcu: Use TLLI_UNUSED constant everywhere ...................................................................... pcu: Use TLLI_UNUSED constant everywhere Change-Id: I0399e98dc726061ac272465288e2a4ba0a61be81 --- M pcu/PCU_Tests.ttcn 1 file changed, 21 insertions(+), 21 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/92/22092/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22092 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I0399e98dc726061ac272465288e2a4ba0a61be81 Gerrit-Change-Number: 22092 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 13:45:38 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 11 Jan 2021 13:45:38 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Use TLLI_UNUSED constant everywhere In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22092 ) Change subject: pcu: Use TLLI_UNUSED constant everywhere ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22092 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I0399e98dc726061ac272465288e2a4ba0a61be81 Gerrit-Change-Number: 22092 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 11 Jan 2021 13:45:38 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 13:45:40 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 11 Jan 2021 13:45:40 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Use TLLI_UNUSED constant everywhere In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22092 ) Change subject: pcu: Use TLLI_UNUSED constant everywhere ...................................................................... pcu: Use TLLI_UNUSED constant everywhere Change-Id: I0399e98dc726061ac272465288e2a4ba0a61be81 --- M pcu/PCU_Tests.ttcn 1 file changed, 21 insertions(+), 21 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/pcu/PCU_Tests.ttcn b/pcu/PCU_Tests.ttcn index facaa59..8294f2a 100644 --- a/pcu/PCU_Tests.ttcn +++ b/pcu/PCU_Tests.ttcn @@ -384,7 +384,7 @@ /* Establish BSSGP connection to the PCU */ f_bssgp_establish(); - f_bssgp_client_llgmm_assign('FFFFFFFF'O, tlli); + f_bssgp_client_llgmm_assign(TLLI_UNUSED, tlli); /* SGSN sends some DL data, PCU will initiate Packet Downlink * Assignment on CCCH (PCH). We don't care about the payload. */ @@ -1212,7 +1212,7 @@ /* Establish BSSGP connection to the PCU */ f_bssgp_establish(); - f_bssgp_client_llgmm_assign('FFFFFFFF'O, ms.tlli); + f_bssgp_client_llgmm_assign(TLLI_UNUSED, ms.tlli); /* Establish an Uplink TBF */ f_ms_establish_ul_tbf(ms); @@ -1256,7 +1256,7 @@ /* Establish BSSGP connection to the PCU */ f_bssgp_establish(); - f_bssgp_client_llgmm_assign('FFFFFFFF'O, ms.tlli); + f_bssgp_client_llgmm_assign(TLLI_UNUSED, ms.tlli); /* SGSN sends some DL data, PCU will page on CCCH (PCH) */ BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data)); @@ -1306,7 +1306,7 @@ /* Establish BSSGP connection to the PCU */ f_bssgp_establish(); - f_bssgp_client_llgmm_assign('FFFFFFFF'O, ms.tlli); + f_bssgp_client_llgmm_assign(TLLI_UNUSED, ms.tlli); /* Establish an Uplink TBF */ f_ms_establish_ul_tbf(ms); @@ -1357,7 +1357,7 @@ /* Establish BSSGP connection to the PCU */ f_bssgp_establish(); - f_bssgp_client_llgmm_assign('FFFFFFFF'O, ms.tlli); + f_bssgp_client_llgmm_assign(TLLI_UNUSED, ms.tlli); /* Establish an Uplink TBF */ f_ms_establish_ul_tbf(ms); @@ -1492,7 +1492,7 @@ /* Establish BSSGP connection to the PCU */ f_bssgp_establish(); - f_bssgp_client_llgmm_assign('FFFFFFFF'O, ms.tlli); + f_bssgp_client_llgmm_assign(TLLI_UNUSED, ms.tlli); /* Establish an Uplink TBF */ f_ms_establish_ul_tbf(ms); @@ -1525,7 +1525,7 @@ /* Establish BSSGP connection to the PCU */ f_bssgp_establish(); - f_bssgp_client_llgmm_assign('FFFFFFFF'O, ms.tlli); + f_bssgp_client_llgmm_assign(TLLI_UNUSED, ms.tlli); /* Establish an Uplink TBF */ f_ms_establish_ul_tbf(ms); @@ -1591,7 +1591,7 @@ /* Establish BSSGP connection to the PCU */ f_bssgp_establish(); - f_bssgp_client_llgmm_assign('FFFFFFFF'O, ms.tlli); + f_bssgp_client_llgmm_assign(TLLI_UNUSED, ms.tlli); /* Send PACKET RESOURCE REQUEST to upgrade to EGPRS */ pollctx := f_ms_establish_ul_tbf_2phase_access(ms, ts_RlcMacUlCtrl_PKT_RES_REQ(ms.tlli, ms_racap)); @@ -1697,7 +1697,7 @@ /* Establish BSSGP connection to the PCU */ f_bssgp_establish(); - f_bssgp_client_llgmm_assign('FFFFFFFF'O, ms.tlli); + f_bssgp_client_llgmm_assign(TLLI_UNUSED, ms.tlli); /* SGSN sends some DL data, PCU will page on CCCH (PCH) */ BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data, ms_racap)); @@ -1772,7 +1772,7 @@ /* Establish BSSGP connection to the PCU */ f_bssgp_establish(); - f_bssgp_client_llgmm_assign('FFFFFFFF'O, ms.tlli); + f_bssgp_client_llgmm_assign(TLLI_UNUSED, ms.tlli); /* Establish an Uplink TBF */ f_ms_establish_ul_tbf(ms); @@ -1851,7 +1851,7 @@ /* Establish BSSGP connection to the PCU */ f_bssgp_establish(); - f_bssgp_client_llgmm_assign('FFFFFFFF'O, ms.tlli); + f_bssgp_client_llgmm_assign(TLLI_UNUSED, ms.tlli); /* SGSN sends some DL data, PCU will page on CCCH (PCH) */ BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data)); @@ -1902,7 +1902,7 @@ /* Establish BSSGP connection to the PCU */ f_bssgp_establish(); - f_bssgp_client_llgmm_assign('FFFFFFFF'O, ms.tlli); + f_bssgp_client_llgmm_assign(TLLI_UNUSED, ms.tlli); /* SGSN sends some DL data, PCU will page on CCCH (PCH) */ BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data)); @@ -1987,7 +1987,7 @@ /* Establish BSSGP connection to the PCU */ f_bssgp_establish(); - f_bssgp_client_llgmm_assign('FFFFFFFF'O, ms.tlli); + f_bssgp_client_llgmm_assign(TLLI_UNUSED, ms.tlli); /* Establish an Uplink TBF */ f_ms_establish_ul_tbf(ms); @@ -2242,7 +2242,7 @@ /* Establish BSSGP connection to the PCU */ f_bssgp_establish(); - f_bssgp_client_llgmm_assign('FFFFFFFF'O, ms.tlli); + f_bssgp_client_llgmm_assign(TLLI_UNUSED, ms.tlli); /* Establish an Uplink TBF */ f_ms_establish_ul_tbf(ms); @@ -2308,7 +2308,7 @@ /* Establish BSSGP connection to the PCU */ f_bssgp_establish(); - f_bssgp_client_llgmm_assign('FFFFFFFF'O, ms.tlli); + f_bssgp_client_llgmm_assign(TLLI_UNUSED, ms.tlli); /* Establish an Uplink TBF */ f_ms_establish_ul_tbf(ms); @@ -2352,7 +2352,7 @@ /* Establish BSSGP connection to the PCU */ f_bssgp_establish(); - f_bssgp_client_llgmm_assign('FFFFFFFF'O, ms.tlli); + f_bssgp_client_llgmm_assign(TLLI_UNUSED, ms.tlli); /* Establish an Uplink TBF */ f_ms_establish_ul_tbf(ms); @@ -2414,7 +2414,7 @@ /* Establish BSSGP connection to the PCU */ f_bssgp_establish(); - f_bssgp_client_llgmm_assign('FFFFFFFF'O, ms.tlli); + f_bssgp_client_llgmm_assign(TLLI_UNUSED, ms.tlli); /* Send BSSGP PAGING-PS (with or without TMSI), wait for RR Paging Request Type 1. * Make sure that both paging group (IMSI suffix) and Mobile Identity match. */ @@ -2463,7 +2463,7 @@ /* Establish BSSGP connection to the PCU */ f_bssgp_establish(); - f_bssgp_client_llgmm_assign('FFFFFFFF'O, ms.tlli); + f_bssgp_client_llgmm_assign(TLLI_UNUSED, ms.tlli); /* Establish an Uplink TBF */ f_ms_establish_ul_tbf(ms); @@ -2522,7 +2522,7 @@ /* Establish BSSGP connection to the PCU */ f_bssgp_establish(); - f_bssgp_client_llgmm_assign('FFFFFFFF'O, ms.tlli); + f_bssgp_client_llgmm_assign(TLLI_UNUSED, ms.tlli); /* Establish an Uplink TBF */ f_ms_establish_ul_tbf(ms); @@ -2971,7 +2971,7 @@ /* Establish BSSGP connection to the PCU */ f_bssgp_establish(); - f_bssgp_client_llgmm_assign('FFFFFFFF'O, ms.tlli); + f_bssgp_client_llgmm_assign(TLLI_UNUSED, ms.tlli); /* SGSN sends some DL data, PCU will page on CCCH (PCH) */ BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, f_rnd_octstring(12))); @@ -3075,7 +3075,7 @@ /* Establish BSSGP connection to the PCU */ f_bssgp_establish(); - f_bssgp_client_llgmm_assign('FFFFFFFF'O, ms.tlli); + f_bssgp_client_llgmm_assign(TLLI_UNUSED, ms.tlli); /* Establish an Uplink TBF */ f_ms_establish_ul_tbf(ms); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22092 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I0399e98dc726061ac272465288e2a4ba0a61be81 Gerrit-Change-Number: 22092 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 13:48:46 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 11 Jan 2021 13:48:46 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Assign TLLI_UNUSED instead of string literal References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22093 ) Change subject: pcu: Assign TLLI_UNUSED instead of string literal ...................................................................... pcu: Assign TLLI_UNUSED instead of string literal Change-Id: I7a505527458ed716b7b0912e88c6fcf58e0ff044 --- M pcu/PCU_Tests.ttcn 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/93/22093/1 diff --git a/pcu/PCU_Tests.ttcn b/pcu/PCU_Tests.ttcn index 8294f2a..528ee25 100644 --- a/pcu/PCU_Tests.ttcn +++ b/pcu/PCU_Tests.ttcn @@ -311,7 +311,7 @@ testcase TC_pcuif_suspend() runs on RAW_PCU_Test_CT { var octetstring ra_id := enc_RoutingAreaIdentification(mp_gb_cfg.bvc[0].cell_id.ra_id); - var GprsTlli tlli := 'FFFFFFFF'O; + var GprsTlli tlli := TLLI_UNUSED; timer T; /* Initialize NS/BSSGP side */ -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22093 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I7a505527458ed716b7b0912e88c6fcf58e0ff044 Gerrit-Change-Number: 22093 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 13:49:20 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 11 Jan 2021 13:49:20 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Implement TLLI cache and use it for SUSPEND/RESUME In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21960 ) Change subject: gbproxy: Implement TLLI cache and use it for SUSPEND/RESUME ...................................................................... Patch Set 4: Code-Review+2 (2 comments) https://gerrit.osmocom.org/c/osmo-sgsn/+/21960/3/src/gbproxy/gb_proxy_peer.c File src/gbproxy/gb_proxy_peer.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/21960/3/src/gbproxy/gb_proxy_peer.c at 323 PS3, Line 323: if (tlli_cache->tstamp.tv_sec < expiry) { > timespeccmp we don't really care about that kind of uncertainty https://gerrit.osmocom.org/c/osmo-sgsn/+/21960/4/src/gbproxy/gb_proxy_peer.c File src/gbproxy/gb_proxy_peer.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/21960/4/src/gbproxy/gb_proxy_peer.c at 261 PS4, Line 261: cacke spelling -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21960 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I42adf70f560d2bb358a9e1c7614281e8d2967568 Gerrit-Change-Number: 21960 Gerrit-PatchSet: 4 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 11 Jan 2021 13:49:20 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 13:51:24 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 11 Jan 2021 13:51:24 +0000 Subject: Change in osmo-ttcn3-hacks[master]: library: Add templates to initialize CellId, RAI, LAI In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22056 ) Change subject: library: Add templates to initialize CellId, RAI, LAI ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22056 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ie9d86e1b651dff279e7d50a4282bf14fbed5bb76 Gerrit-Change-Number: 22056 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 11 Jan 2021 13:51:24 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 13:51:49 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 11 Jan 2021 13:51:49 +0000 Subject: Change in osmo-ttcn3-hacks[master]: rlcmac: Add template to match receival of Dl Ctrl message In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22057 ) Change subject: rlcmac: Add template to match receival of Dl Ctrl message ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22057 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ifd16e8129b4440542b82a47749df1547a061ae88 Gerrit-Change-Number: 22057 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 11 Jan 2021 13:51:49 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 13:54:26 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 11 Jan 2021 13:54:26 +0000 Subject: Change in osmo-ttcn3-hacks[master]: rlcmac: introduce initial support for NACC related messages In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22058 ) Change subject: rlcmac: introduce initial support for NACC related messages ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22058/1/library/RLCMAC_CSN1_Templates.ttcn File library/RLCMAC_CSN1_Templates.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22058/1/library/RLCMAC_CSN1_Templates.ttcn at 119 PS1, Line 119: bsic := 43, : rxlev := 23 : } I'm not quite sure if the general RLC/MAC library code should provided defaults with hard-coded BSIC/RxLev values. Not fundamentally against it, but it at least raises a question. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22058 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I4d2f123479c34e6afffe0bc8d91409e6b0529a62 Gerrit-Change-Number: 22058 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 11 Jan 2021 13:54:26 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 13:54:30 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 11 Jan 2021 13:54:30 +0000 Subject: Change in osmo-ttcn3-hacks[master]: library: Add templates to initialize CellId, RAI, LAI In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22056 ) Change subject: library: Add templates to initialize CellId, RAI, LAI ...................................................................... library: Add templates to initialize CellId, RAI, LAI Change-Id: Ie9d86e1b651dff279e7d50a4282bf14fbed5bb76 --- M library/GSM_Types.ttcn M library/Osmocom_Gb_Types.ttcn 2 files changed, 13 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/library/GSM_Types.ttcn b/library/GSM_Types.ttcn index 34b6517..6cc3c08 100644 --- a/library/GSM_Types.ttcn +++ b/library/GSM_Types.ttcn @@ -420,12 +420,20 @@ BcdMccMnc mcc_mnc, uint16_t lac } with { variant "" }; +template (value) LocationAreaIdentification ts_LAI(BcdMccMnc mcc_mnc, uint16_t lac) := { + mcc_mnc := mcc_mnc, + lac := lac +}; /* 24.008 10.5.5.15 */ type record RoutingAreaIdentification { LocationAreaIdentification lai, uint8_t rac } with { variant "" }; +template (value) RoutingAreaIdentification ts_RAI(template (value) LocationAreaIdentification lai, uint8_t rac) := { + lai := lai, + rac := rac +}; external function enc_RoutingAreaIdentification(RoutingAreaIdentification rai) return octetstring with { extension "prototype(convert)" extension "encode(RAW)" } diff --git a/library/Osmocom_Gb_Types.ttcn b/library/Osmocom_Gb_Types.ttcn index b83131d..518d619 100644 --- a/library/Osmocom_Gb_Types.ttcn +++ b/library/Osmocom_Gb_Types.ttcn @@ -733,6 +733,11 @@ CellIdentity cell_id } with { variant "" }; + template (value) BssgpCellId ts_BssgpCellId(template (value) RoutingAreaIdentification rai, CellIdentity cell_id) := { + ra_id := rai, + cell_id := cell_id + }; + type enumerated BssgpCause { BSSGP_CAUSE_PROC_OVERLOAD ('00'H), BSSGP_CAUSE_EQUIMENT_FAILURE ('01'H), -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22056 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ie9d86e1b651dff279e7d50a4282bf14fbed5bb76 Gerrit-Change-Number: 22056 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 13:54:31 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 11 Jan 2021 13:54:31 +0000 Subject: Change in osmo-ttcn3-hacks[master]: rlcmac: Add template to match receival of Dl Ctrl message In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22057 ) Change subject: rlcmac: Add template to match receival of Dl Ctrl message ...................................................................... rlcmac: Add template to match receival of Dl Ctrl message Change-Id: Ifd16e8129b4440542b82a47749df1547a061ae88 --- M library/RLCMAC_Templates.ttcn 1 file changed, 13 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/library/RLCMAC_Templates.ttcn b/library/RLCMAC_Templates.ttcn index d59c74e..981061c 100644 --- a/library/RLCMAC_Templates.ttcn +++ b/library/RLCMAC_Templates.ttcn @@ -505,6 +505,19 @@ usf := usf } + template RlcmacDlBlock tr_RLCMAC_DL_CTRL(template uint3_t usf := ?, template RlcmacDlCtrlMsg dl_ctrl := ?) := { + ctrl := { + mac_hdr := { + payload_type := (MAC_PT_RLCMAC_NO_OPT, MAC_PT_RLCMAC_OPT), + rrbp:= ?, + rrbp_valid := ?, + usf := usf + }, + opt := *, + payload := dl_ctrl + } + } + template RlcmacDlBlock tr_RLCMAC_DUMMY_CTRL(template uint3_t usf := ?, template PageMode page_mode := ?) := { ctrl := { mac_hdr := { -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22057 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ifd16e8129b4440542b82a47749df1547a061ae88 Gerrit-Change-Number: 22057 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 13:54:47 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 11 Jan 2021 13:54:47 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Assign TLLI_UNUSED instead of string literal In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22093 ) Change subject: pcu: Assign TLLI_UNUSED instead of string literal ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22093 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I7a505527458ed716b7b0912e88c6fcf58e0ff044 Gerrit-Change-Number: 22093 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 11 Jan 2021 13:54:47 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 13:54:49 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 11 Jan 2021 13:54:49 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Assign TLLI_UNUSED instead of string literal In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22093 ) Change subject: pcu: Assign TLLI_UNUSED instead of string literal ...................................................................... pcu: Assign TLLI_UNUSED instead of string literal Change-Id: I7a505527458ed716b7b0912e88c6fcf58e0ff044 --- M pcu/PCU_Tests.ttcn 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/pcu/PCU_Tests.ttcn b/pcu/PCU_Tests.ttcn index 8294f2a..528ee25 100644 --- a/pcu/PCU_Tests.ttcn +++ b/pcu/PCU_Tests.ttcn @@ -311,7 +311,7 @@ testcase TC_pcuif_suspend() runs on RAW_PCU_Test_CT { var octetstring ra_id := enc_RoutingAreaIdentification(mp_gb_cfg.bvc[0].cell_id.ra_id); - var GprsTlli tlli := 'FFFFFFFF'O; + var GprsTlli tlli := TLLI_UNUSED; timer T; /* Initialize NS/BSSGP side */ -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22093 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I7a505527458ed716b7b0912e88c6fcf58e0ff044 Gerrit-Change-Number: 22093 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 13:55:13 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 11 Jan 2021 13:55:13 +0000 Subject: Change in osmo-bts[master]: power_control: migrate MS/BS control loops to the new params In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21993 ) Change subject: power_control: migrate MS/BS control loops to the new params ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21993 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib18f84c40227841d95a36063a6789bf63054fc2e Gerrit-Change-Number: 21993 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 11 Jan 2021 13:55:13 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 13:55:42 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 11 Jan 2021 13:55:42 +0000 Subject: Change in osmo-bts[master]: power_control: generalize measurement pre-processing state In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21907 ) Change subject: power_control: generalize measurement pre-processing state ...................................................................... Patch Set 6: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21907 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I439c00b394da670e314f217b3246cc85ce8213c6 Gerrit-Change-Number: 21907 Gerrit-PatchSet: 6 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 11 Jan 2021 13:55:42 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 13:55:56 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 11 Jan 2021 13:55:56 +0000 Subject: Change in osmo-bts[master]: power_control: properly track the first initial state In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/22051 ) Change subject: power_control: properly track the first initial state ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22051 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I16e7474b5affbd90855a2e407b305e9dec581dfa Gerrit-Change-Number: 22051 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 11 Jan 2021 13:55:56 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 13:56:31 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 11 Jan 2021 13:56:31 +0000 Subject: Change in osmo-bts[master]: power_control: use more reasonable reduce step size In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/22079 ) Change subject: power_control: use more reasonable reduce step size ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22079 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ie358fd828a68bfa1d23559197e8df8478fb4535e Gerrit-Change-Number: 22079 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 11 Jan 2021 13:56:31 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 13:56:45 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 11 Jan 2021 13:56:45 +0000 Subject: Change in osmo-bts[master]: power_control: rework handling of DL RxQual measurements In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/22080 ) Change subject: power_control: rework handling of DL RxQual measurements ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22080 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib3c740b9a0f3ba5dfb027e144dc13f456cb26ae2 Gerrit-Change-Number: 22080 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 11 Jan 2021 13:56:45 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 13:56:46 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 11 Jan 2021 13:56:46 +0000 Subject: Change in osmo-bts[master]: power_control: migrate MS/BS control loops to the new params In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21993 ) Change subject: power_control: migrate MS/BS control loops to the new params ...................................................................... power_control: migrate MS/BS control loops to the new params In change [1] the new power control structures and default params were introduced. In change [2], the existing VTY commands for MS power control in the BTS were deprecated and changed to use the new structures as storage. Finally, in change [3], handling of the power control parameters on the A-bis/RSL was implemented. This change is the final logical step in the mentioned chain: it makes both MS/BS power control loops use the new parameters, and removes the old structures. The actual implementation of both power control loops remains the same, however the expected output of some unit tests for the Downlink loop needs to be changed: - TC_fixed_mode: disabling dynamic power control becomes a separate step of the test script since the field 'fixed' is removed; - TC_rxlev_target: RxLev thresholds are printed 'as-is'. Not all of the new parameters are used by the power control loops yet. Further improvements to be done in the follow up commits. [1] I6d41eb238aa6d4f5b77596c5477c2ecbe86de2a8 [2] Icbd9a7d31ce6723294130a31a179a002fccb4612 [3] I5a901eca5a78a0335a6954064e602e65cda85390 Change-Id: Ib18f84c40227841d95a36063a6789bf63054fc2e Related: SYS#4918 --- M include/osmo-bts/bts.h M include/osmo-bts/gsm_data.h M src/common/bts.c M src/common/power_control.c M src/common/rsl.c M src/common/vty.c M src/osmo-bts-lc15/oml.c M src/osmo-bts-oc2g/oml.c M src/osmo-bts-sysmo/oml.c M src/osmo-bts-sysmo/sysmobts_vty.c M src/osmo-bts-trx/trx_vty.c M tests/power/bs_power_loop_test.c M tests/power/bs_power_loop_test.ok M tests/power/ms_power_loop_test.c 14 files changed, 181 insertions(+), 153 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/include/osmo-bts/bts.h b/include/osmo-bts/bts.h index 0b224be..f6389ad 100644 --- a/include/osmo-bts/bts.h +++ b/include/osmo-bts/bts.h @@ -321,10 +321,6 @@ bool vty_override; /* OML value overridden by VTY */ } radio_link_timeout; - /* Uplink/Downlink power control (legacy parameters) */ - struct bts_power_ctrl_params ul_power_ctrl; - struct bts_power_ctrl_params dl_power_ctrl; - /* Default (fall-back) Dynamic Power Control parameters for all transceivers */ struct gsm_power_ctrl_params bs_dpc_params; /* BS Dynamic Power Control */ struct gsm_power_ctrl_params ms_dpc_params; /* MS Dynamic Power Control */ diff --git a/include/osmo-bts/gsm_data.h b/include/osmo-bts/gsm_data.h index b9e0e88..6efc717 100644 --- a/include/osmo-bts/gsm_data.h +++ b/include/osmo-bts/gsm_data.h @@ -222,7 +222,6 @@ * (attenuation, in dB). */ uint8_t current; uint8_t max; - bool fixed; /* Scaled up (100 times) average UL/DL RxLev (in dBm) */ int avg100_rxlev_dbm; diff --git a/src/common/bts.c b/src/common/bts.c index de07957..06a5ccb 100644 --- a/src/common/bts.c +++ b/src/common/bts.c @@ -330,22 +330,6 @@ bts->rtp_port_range_next = bts->rtp_port_range_start; bts->rtp_ip_dscp = -1; - /* Default UL/DL power control parameters (legacy) */ - bts->ul_power_ctrl = bts->dl_power_ctrl = \ - (struct bts_power_ctrl_params) { - .target_dbm = -75, - .hysteresis_db = 3, /* -78 .. -72 dBm */ - .raise_step_max_db = PWR_RAISE_MAX_DB, - .lower_step_max_db = PWR_LOWER_MAX_DB, - .pf_algo = BTS_PF_ALGO_EWMA, - .pf = { - .ewma = { - /* 50% smoothing */ - .alpha = 50 - } - } - }; - /* Default (fall-back) MS/BS Power control parameters */ bts->bs_dpc_params = power_ctrl_params_def; bts->ms_dpc_params = power_ctrl_params_def; diff --git a/src/common/power_control.c b/src/common/power_control.c index a616f18..e159740 100644 --- a/src/common/power_control.c +++ b/src/common/power_control.c @@ -70,11 +70,11 @@ * https://en.wikipedia.org/wiki/Low-pass_filter#Simple_infinite_impulse_response_filter * https://tomroelandts.com/articles/low-pass-single-pole-iir-filter */ -static int8_t do_pf_ewma(const struct bts_power_ctrl_params *params, +static int8_t do_pf_ewma(const struct gsm_power_ctrl_meas_params *mp, struct lchan_power_ctrl_state *state, const int8_t Pwr) { - const uint8_t A = params->pf.ewma.alpha; + const uint8_t A = mp->ewma.alpha; int *Avg100 = &state->avg100_rxlev_dbm; /* We don't have 'Avg[n - 1]' if this is the first run */ @@ -87,41 +87,51 @@ return *Avg100 / EWMA_SCALE_FACTOR; } +/* Calculate target RxLev value from lower/upper thresholds */ +#define CALC_TARGET(mp) \ + (mp.lower_thresh + mp.upper_thresh) / 2 + /* Calculate a 'delta' value (for the given MS/BS power control state and parameters) * to be applied to the current Tx power level to approach the target level. */ -static int calc_delta(const struct bts_power_ctrl_params *params, +static int calc_delta(const struct gsm_power_ctrl_params *params, struct lchan_power_ctrl_state *state, const int rxlev_dbm) { int rxlev_dbm_avg; + uint8_t rxlev_avg; int delta; - /* Filter input value(s) to reduce unnecessary Tx power oscillations */ - switch (params->pf_algo) { - case BTS_PF_ALGO_EWMA: - rxlev_dbm_avg = do_pf_ewma(params, state, rxlev_dbm); + /* Filter RxLev value to reduce unnecessary Tx power oscillations */ + switch (params->rxlev_meas.algo) { + case GSM_PWR_CTRL_MEAS_AVG_ALGO_OSMO_EWMA: + rxlev_dbm_avg = do_pf_ewma(¶ms->rxlev_meas, state, rxlev_dbm); break; - case BTS_PF_ALGO_NONE: + /* TODO: implement other pre-processing methods */ + case GSM_PWR_CTRL_MEAS_AVG_ALGO_NONE: default: /* No filtering (pass through) */ rxlev_dbm_avg = rxlev_dbm; } + /* FIXME: avoid this conversion, accept RxLev as-is */ + rxlev_avg = dbm2rxlev(rxlev_dbm_avg); + + /* Check if RxLev is within the threshold window */ + if (rxlev_avg >= params->rxlev_meas.lower_thresh && + rxlev_avg <= params->rxlev_meas.upper_thresh) + return 0; + /* How many dBs measured power should be increased (+) or decreased (-) * to reach expected power. */ - delta = params->target_dbm - rxlev_dbm_avg; - - /* Tolerate small deviations from 'rx-target' */ - if (abs(delta) <= params->hysteresis_db) - return 0; + delta = CALC_TARGET(params->rxlev_meas) - rxlev_avg; /* Don't ever change more than PWR_{LOWER,RAISE}_MAX_DBM during one loop * iteration, i.e. reduce the speed at which the MS transmit power can * change. A higher value means a lower level (and vice versa) */ - if (delta > params->raise_step_max_db) - delta = params->raise_step_max_db; - else if (delta < -params->lower_step_max_db) - delta = -params->lower_step_max_db; + if (delta > params->inc_step_size_db) + delta = params->inc_step_size_db; + else if (delta < -params->red_step_size_db) + delta = -params->red_step_size_db; return delta; } @@ -135,18 +145,17 @@ const uint8_t ms_power_lvl, const int8_t ul_rssi_dbm) { + struct lchan_power_ctrl_state *state = &lchan->ms_power_ctrl; + const struct gsm_power_ctrl_params *params = state->dpc_params; struct gsm_bts_trx *trx = lchan->ts->trx; struct gsm_bts *bts = trx->bts; enum gsm_band band = bts->band; int8_t new_power_lvl; /* TS 05.05 power level */ int8_t ms_dbm, new_dbm, current_dbm, bsc_max_dbm; - const struct bts_power_ctrl_params *params = &bts->ul_power_ctrl; - struct lchan_power_ctrl_state *state = &lchan->ms_power_ctrl; - if (!trx_ms_pwr_ctrl_is_osmo(trx)) return 0; - if (state->fixed) + if (params == NULL) return 0; ms_dbm = ms_pwr_dbm(band, ms_power_lvl); @@ -184,11 +193,14 @@ return 0; } + /* FIXME: this is only needed for logging, print thresholds instead */ + int target_dbm = rxlev2dbm(CALC_TARGET(params->rxlev_meas)); + if (state->current == new_power_lvl) { LOGPLCHAN(lchan, DLOOP, LOGL_INFO, "Keeping MS power at control level %d, %d dBm " "(rx-ms-pwr-lvl %" PRIu8 ", max-ms-pwr-lvl %" PRIu8 ", rx-current %d dBm, rx-target %d dBm)\n", new_power_lvl, new_dbm, ms_power_lvl, state->max, - ul_rssi_dbm, params->target_dbm); + ul_rssi_dbm, target_dbm); return 0; } @@ -197,7 +209,7 @@ "(rx-ms-pwr-lvl %" PRIu8 ", max-ms-pwr-lvl %" PRIu8 ", rx-current %d dBm, rx-target %d dBm)\n", (new_dbm > current_dbm) ? "Raising" : "Lowering", state->current, current_dbm, new_power_lvl, new_dbm, - ms_power_lvl, state->max, ul_rssi_dbm, params->target_dbm); + ms_power_lvl, state->max, ul_rssi_dbm, target_dbm); /* store the resulting new MS power level in the lchan */ state->current = new_power_lvl; @@ -213,18 +225,15 @@ int lchan_bs_pwr_ctrl(struct gsm_lchan *lchan, const struct gsm48_hdr *gh) { - struct gsm_bts_trx *trx = lchan->ts->trx; - struct gsm_bts *bts = trx->bts; + struct lchan_power_ctrl_state *state = &lchan->bs_power_ctrl; + const struct gsm_power_ctrl_params *params = state->dpc_params; uint8_t rxqual_full, rxqual_sub; uint8_t rxlev_full, rxlev_sub; uint8_t rxqual, rxlev; int delta, new; - const struct bts_power_ctrl_params *params = &bts->dl_power_ctrl; - struct lchan_power_ctrl_state *state = &lchan->bs_power_ctrl; - - /* Check if BS Power Control is enabled */ - if (state->fixed) + /* Check if dynamic BS Power Control is enabled */ + if (params == NULL) return 0; /* Check if this is a Measurement Report */ if (gh->proto_discr != GSM48_PDISC_RR) @@ -264,7 +273,7 @@ } /* Bit Error Rate > 0 => reduce by 2 */ - if (rxqual > 0) { + if (rxqual > 0) { /* FIXME: take RxQual threshold into account */ LOGPLCHAN(lchan, DLOOP, LOGL_INFO, "Reducing Downlink attenuation " "by half: %u -> %u dB due to RXQUAL %u > 0\n", state->current, state->current / 2, rxqual); @@ -294,16 +303,19 @@ if (new < 0) new = 0; + /* FIXME: this is only needed for logging, print thresholds instead */ + int target_dbm = rxlev2dbm(CALC_TARGET(params->rxlev_meas)); + if (state->current != new) { LOGPLCHAN(lchan, DLOOP, LOGL_INFO, "Changing Downlink attenuation: " "%u -> %u dB (maximum %u dB, target %d dBm, delta %d dB)\n", - state->current, new, state->max, params->target_dbm, delta); + state->current, new, state->max, target_dbm, delta); state->current = new; return 1; } else { LOGPLCHAN(lchan, DLOOP, LOGL_INFO, "Keeping Downlink attenuation " "at %u dB (maximum %u dB, target %d dBm, delta %d dB)\n", - state->current, state->max, params->target_dbm, delta); + state->current, state->max, target_dbm, delta); return 0; } } diff --git a/src/common/rsl.c b/src/common/rsl.c index bca365e..b4df22c 100644 --- a/src/common/rsl.c +++ b/src/common/rsl.c @@ -1322,14 +1322,12 @@ lchan->ms_power_ctrl = (struct lchan_power_ctrl_state) { .max = ms_pwr_ctl_lvl(lchan->ts->trx->bts->band, 0), .current = lchan->ms_power_ctrl.max, - .fixed = true, }; /* Initialize BS Power Control defaults */ lchan->bs_power_ctrl = (struct lchan_power_ctrl_state) { .max = 2 * 15, /* maximum defined in 9.3.4 */ .current = 0, - .fixed = true, }; rsl_tlv_parse(&tp, msgb_l3(msg), msgb_l3len(msg)); @@ -1414,7 +1412,6 @@ /* Spec explicitly states BTS should only perform * autonomous MS power control loop in BTS if 'MS Power * Parameters' IE is present! */ - lchan->ms_power_ctrl.fixed = false; lchan->ms_power_ctrl.dpc_params = params; } @@ -1433,7 +1430,6 @@ /* NOTE: it's safer to start from 0 */ lchan->bs_power_ctrl.current = 0; - lchan->bs_power_ctrl.fixed = false; lchan->bs_power_ctrl.dpc_params = params; } @@ -1925,7 +1921,6 @@ /* Spec explicitly states BTS should only perform autonomous MS Power * control loop in BTS if 'MS Power Parameters' IE is present! */ - lchan->ms_power_ctrl.fixed = !TLVP_PRESENT(&tp, RSL_IE_MS_POWER_PARAM); lchan->ms_power_ctrl.dpc_params = NULL; /* 9.3.31 (TLV) MS Power Parameters IE (vendor specific) */ @@ -1946,7 +1941,7 @@ /* Only set current to max if actual value of current in dBm > value in dBm from max, or if fixed. */ - if (lchan->ms_power_ctrl.fixed) { + if (lchan->ms_power_ctrl.dpc_params == NULL) { lchan->ms_power_ctrl.current = lchan->ms_power_ctrl.max; } else { max_pwr = ms_pwr_dbm(bts->band, lchan->ms_power_ctrl.max); @@ -2005,12 +2000,10 @@ /* NOTE: it's safer to start from 0 */ lchan->bs_power_ctrl.current = 0; lchan->bs_power_ctrl.max = new; - lchan->bs_power_ctrl.fixed = false; lchan->bs_power_ctrl.dpc_params = params; } else { lchan->bs_power_ctrl.dpc_params = NULL; lchan->bs_power_ctrl.current = new; - lchan->bs_power_ctrl.fixed = true; } if (lchan->bs_power_ctrl.current != old) { diff --git a/src/common/vty.c b/src/common/vty.c index 1c3b496..689ae58 100644 --- a/src/common/vty.c +++ b/src/common/vty.c @@ -1489,13 +1489,12 @@ const struct lchan_power_ctrl_state *st = &lchan->bs_power_ctrl; const struct gsm_bts_trx *trx = lchan->ts->trx; - cfg_out(vty, "BS (Downlink) Power Control (%s):%s", - st->fixed ? "fixed" : "autonomous", - VTY_NEWLINE); + cfg_out(vty, "BS (Downlink) Power Control (%s mode):%s", + st->dpc_params ? "dynamic" : "static", VTY_NEWLINE); indent += 2; cfg_out(vty, "Channel reduction: %u dB", st->current); - if (!st->fixed) + if (st->dpc_params != NULL) vty_out(vty, " (max %u dB)", st->max); vty_out(vty, "%s", VTY_NEWLINE); @@ -1520,8 +1519,7 @@ const struct gsm_bts_trx *trx = lchan->ts->trx; cfg_out(vty, "MS (Uplink) Power Control (%s):%s", - st->fixed ? "fixed" : "autonomous", - VTY_NEWLINE); + st->dpc_params ? "dynamic" : "static", VTY_NEWLINE); indent += 2; int current_dbm = ms_pwr_dbm(trx->bts->band, st->current); @@ -1529,7 +1527,7 @@ cfg_out(vty, "Current power level: %u, -%d dBm", st->current, current_dbm); - if (!st->fixed) + if (st->dpc_params != NULL) vty_out(vty, " (max %u, -%d dBm)", st->max, max_dbm); vty_out(vty, "%s", VTY_NEWLINE); diff --git a/src/osmo-bts-lc15/oml.c b/src/osmo-bts-lc15/oml.c index 4c71790..44139cf 100644 --- a/src/osmo-bts-lc15/oml.c +++ b/src/osmo-bts-lc15/oml.c @@ -433,8 +433,15 @@ dev_par->u16Arfcn = trx->arfcn; dev_par->u16BcchArfcn = trx->bts->c0->arfcn; dev_par->u8NbTsc = trx->bts->bsic & 7; - dev_par->fRxPowerLevel = trx_ms_pwr_ctrl_is_osmo(trx) - ? 0.0 : trx->bts->ul_power_ctrl.target_dbm; + + if (!trx_ms_pwr_ctrl_is_osmo(trx)) { + /* Target is in the middle between lower and upper RxLev thresholds */ + int lower_dbm = rxlev2dbm(trx->ms_dpc_params->rxlev_meas.lower_thresh); + int upper_dbm = rxlev2dbm(trx->ms_dpc_params->rxlev_meas.upper_thresh); + dev_par->fRxPowerLevel = (float) (lower_dbm + upper_dbm) / 2; + } else { + dev_par->fRxPowerLevel = 0.0; + } dev_par->fTxPowerLevel = 0.0; LOGP(DL1C, LOGL_NOTICE, "Init TRX (Band %d, ARFCN %u, TSC %u, RxPower % 2f dBm, " diff --git a/src/osmo-bts-oc2g/oml.c b/src/osmo-bts-oc2g/oml.c index b62e61c..ced6ad1 100644 --- a/src/osmo-bts-oc2g/oml.c +++ b/src/osmo-bts-oc2g/oml.c @@ -448,8 +448,15 @@ dev_par->u16Arfcn = trx->arfcn; dev_par->u16BcchArfcn = trx->bts->c0->arfcn; dev_par->u8NbTsc = trx->bts->bsic & 7; - dev_par->fRxPowerLevel = trx_ms_pwr_ctrl_is_osmo(trx) - ? 0.0 : trx->bts->ul_power_ctrl.target_dbm; + + if (!trx_ms_pwr_ctrl_is_osmo(trx)) { + /* Target is in the middle between lower and upper RxLev thresholds */ + int lower_dbm = rxlev2dbm(trx->ms_dpc_params->rxlev_meas.lower_thresh); + int upper_dbm = rxlev2dbm(trx->ms_dpc_params->rxlev_meas.upper_thresh); + dev_par->fRxPowerLevel = (float) (lower_dbm + upper_dbm) / 2; + } else { + dev_par->fRxPowerLevel = 0.0; + } dev_par->fTxPowerLevel = 0.0; LOGP(DL1C, LOGL_NOTICE, "Init TRX (Band %d, ARFCN %u, TSC %u, RxPower % 2f dBm, " diff --git a/src/osmo-bts-sysmo/oml.c b/src/osmo-bts-sysmo/oml.c index b79f731..8e38c60 100644 --- a/src/osmo-bts-sysmo/oml.c +++ b/src/osmo-bts-sysmo/oml.c @@ -428,8 +428,15 @@ dev_par->u16Arfcn = trx->arfcn; dev_par->u16BcchArfcn = trx->bts->c0->arfcn; dev_par->u8NbTsc = trx->bts->bsic & 7; - dev_par->fRxPowerLevel = trx_ms_pwr_ctrl_is_osmo(trx) - ? 0.0 : trx->bts->ul_power_ctrl.target_dbm; + + if (!trx_ms_pwr_ctrl_is_osmo(trx)) { + /* Target is in the middle between lower and upper RxLev thresholds */ + int lower_dbm = rxlev2dbm(trx->ms_dpc_params->rxlev_meas.lower_thresh); + int upper_dbm = rxlev2dbm(trx->ms_dpc_params->rxlev_meas.upper_thresh); + dev_par->fRxPowerLevel = (float) (lower_dbm + upper_dbm) / 2; + } else { + dev_par->fRxPowerLevel = 0.0; + } dev_par->fTxPowerLevel = ((float) initial_mdBm) / 1000; LOGP(DL1C, LOGL_NOTICE, "Init TRX (ARFCN %u, TSC %u, RxPower % 2f dBm, " diff --git a/src/osmo-bts-sysmo/sysmobts_vty.c b/src/osmo-bts-sysmo/sysmobts_vty.c index 65edbf0..a8e7401 100644 --- a/src/osmo-bts-sysmo/sysmobts_vty.c +++ b/src/osmo-bts-sysmo/sysmobts_vty.c @@ -152,9 +152,20 @@ "Obsolete alias for bts uplink-power-target\n" "Target uplink Rx level in dBm\n") { + struct gsm_power_ctrl_meas_params *mp; struct gsm_bts_trx *trx = vty->index; + int rxlev_dbm = atoi(argv[0]); - trx->bts->ul_power_ctrl.target_dbm = atoi(argv[0]); + mp = &trx->bts->ms_dpc_params.rxlev_meas; + mp->lower_thresh = mp->upper_thresh = dbm2rxlev(rxlev_dbm); + + vty_out(vty, "%% Command '%s' has been deprecated.%s" + "%% MS/BS Power control parameters should be configured in osmo-bsc: " + "use 'rxlev-thresh lower %u upper %u'.%s", + self->string, VTY_NEWLINE, + mp->lower_thresh, + mp->upper_thresh, + VTY_NEWLINE); return CMD_SUCCESS; } diff --git a/src/osmo-bts-trx/trx_vty.c b/src/osmo-bts-trx/trx_vty.c index 49403d4..8e701ea 100644 --- a/src/osmo-bts-trx/trx_vty.c +++ b/src/osmo-bts-trx/trx_vty.c @@ -199,7 +199,9 @@ vty_out(vty, "'%s' is deprecated, MS Power Control is now managed by BSC%s", self->string, VTY_NEWLINE); - g_bts->ul_power_ctrl.target_dbm = atoi(argv[0]); + uint8_t rxlev = dbm2rxlev(atoi(argv[0])); + g_bts->ms_dpc_params.rxlev_meas.lower_thresh = rxlev; + g_bts->ms_dpc_params.rxlev_meas.upper_thresh = rxlev; return CMD_SUCCESS; } diff --git a/tests/power/bs_power_loop_test.c b/tests/power/bs_power_loop_test.c index fd93183..ecd83e7 100644 --- a/tests/power/bs_power_loop_test.c +++ b/tests/power/bs_power_loop_test.c @@ -31,14 +31,9 @@ #define PWR_TEST_RXLEV_TARGET 30 -#define PWR_TEST_CFG_RXLEV_TARGET \ - .target_dbm = -110 + PWR_TEST_RXLEV_TARGET - -/* NOTE: raise/lower values are intentionally swapped here, - * as it makes more sense in the context of BS Power Control. */ -#define PWR_TEST_CFG_RAISE_LOWER_MAX \ - .raise_step_max_db = PWR_LOWER_MAX_DB, \ - .lower_step_max_db = PWR_RAISE_MAX_DB +#define PWR_TEST_CFG_RXLEV_THRESH(hyst) \ + .lower_thresh = PWR_TEST_RXLEV_TARGET - hyst, \ + .upper_thresh = PWR_TEST_RXLEV_TARGET + hyst #define DL_MEAS_FULL(rxqual, rxlev) \ .rxqual_full = rxqual, \ @@ -61,8 +56,9 @@ PWR_TEST_ST_IND_MEAS = 0, PWR_TEST_ST_IND_DUMMY, PWR_TEST_ST_SET_STATE, - PWR_TEST_ST_SET_PARAMS, + PWR_TEST_ST_SET_RXLEV_PARAMS, PWR_TEST_ST_ENABLE_DTXD, + PWR_TEST_ST_DISABLE_DPC, }; struct power_test_step { @@ -72,8 +68,8 @@ union { /* Power Control state */ struct lchan_power_ctrl_state state; - /* Power Control parameters */ - struct bts_power_ctrl_params params; + /* Measurement pre-processing parameters */ + struct gsm_power_ctrl_meas_params mp; /* Indicated DL measurements */ struct { uint8_t rxqual_full; @@ -107,12 +103,6 @@ g_bts->band = GSM_BAND_900; g_bts->c0 = g_trx; - g_bts->dl_power_ctrl = g_bts->ul_power_ctrl = \ - (struct bts_power_ctrl_params) { - PWR_TEST_CFG_RXLEV_TARGET, - PWR_TEST_CFG_RAISE_LOWER_MAX, - }; - printf("\nStarting test case '%s'\n", name); } @@ -157,13 +147,18 @@ printf("#%02u %s() <- State (re)set (current %u dB, max %u dB)\n", n, __func__, step->state.current, step->state.max); lchan->bs_power_ctrl = step->state; + lchan->bs_power_ctrl.dpc_params = &lchan->bs_dpc_params; return 0; /* we're done */ - case PWR_TEST_ST_SET_PARAMS: - printf("#%02u %s() <- Param (re)set (target %d dBm, hysteresis %u dB, " - "filtering is %sabled)\n", - n, __func__, step->params.target_dbm, step->params.hysteresis_db, - step->params.pf_algo != BTS_PF_ALGO_NONE ? "en" : "dis"); - g_bts->dl_power_ctrl = step->params; + case PWR_TEST_ST_DISABLE_DPC: + printf("#%02u %s() <- Dynamic power control is disabled\n", n, __func__); + lchan->bs_power_ctrl.dpc_params = NULL; + return 0; /* we're done */ + case PWR_TEST_ST_SET_RXLEV_PARAMS: + printf("#%02u %s() <- (Re)set RxLev params (thresh %u .. %u, " + "averaging is %sabled)\n", + n, __func__, step->mp.lower_thresh, step->mp.upper_thresh, + step->mp.algo != GSM_PWR_CTRL_MEAS_AVG_ALGO_NONE ? "en" : "dis"); + lchan->bs_dpc_params.rxlev_meas = step->mp; return 0; /* we're done */ case PWR_TEST_ST_ENABLE_DTXD: printf("#%02u %s() <- Enable DTXd\n", n, __func__); @@ -202,6 +197,17 @@ init_test(name); struct gsm_lchan *lchan = &g_trx->ts[0].lchan[0]; + + lchan->bs_dpc_params = (struct gsm_power_ctrl_params) { + /* NOTE: raise/lower values are intentionally swapped here, + * as it makes more sense in the context of BS Power Control. */ + .inc_step_size_db = PWR_LOWER_MAX_DB, + .red_step_size_db = PWR_RAISE_MAX_DB, + + /* RxLev pre-processing parameters */ + .rxlev_meas = { PWR_TEST_CFG_RXLEV_THRESH(0) }, + }; + for (n = 0; n < num_steps; n++) rc |= exec_power_step(lchan, n, &steps[n]); @@ -212,7 +218,8 @@ static const struct power_test_step TC_fixed_mode[] = { /* Initial state: 10 dB, up to 20 dB */ { .type = PWR_TEST_ST_SET_STATE, - .state = { .current = 10, .max = 2 * 10, .fixed = true } }, + .state = { .current = 10, .max = 2 * 10 } }, + { .type = PWR_TEST_ST_DISABLE_DPC }, /* MS indicates random RxQual/RxLev values, which must be ignored */ { .meas = DL_MEAS_FULL_SUB(0, 63), .exp_txred = 10 }, @@ -338,12 +345,8 @@ { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET - 2), .exp_txred = 12 }, /* Enable hysteresis */ - { .type = PWR_TEST_ST_SET_PARAMS, - .params = { - PWR_TEST_CFG_RXLEV_TARGET, - PWR_TEST_CFG_RAISE_LOWER_MAX, - .hysteresis_db = 3, - } + { .type = PWR_TEST_ST_SET_RXLEV_PARAMS, + .mp = { PWR_TEST_CFG_RXLEV_THRESH(3) } }, /* Hysteresis is enabled, so small deviations do not trigger any changes */ @@ -359,13 +362,12 @@ { .type = PWR_TEST_ST_SET_STATE, .state = { .current = 16, .max = 2 * 15 } }, - /* Enable EWMA based power filtering */ - { .type = PWR_TEST_ST_SET_PARAMS, - .params = { - PWR_TEST_CFG_RXLEV_TARGET, - PWR_TEST_CFG_RAISE_LOWER_MAX, - .pf_algo = BTS_PF_ALGO_EWMA, - .pf.ewma.alpha = 50, + /* Enable EWMA based pre-processing for RxLev */ + { .type = PWR_TEST_ST_SET_RXLEV_PARAMS, + .mp = { + PWR_TEST_CFG_RXLEV_THRESH(0), + .algo = GSM_PWR_CTRL_MEAS_AVG_ALGO_OSMO_EWMA, + .ewma.alpha = 50, } }, diff --git a/tests/power/bs_power_loop_test.ok b/tests/power/bs_power_loop_test.ok index acaad82..814f7e2 100644 --- a/tests/power/bs_power_loop_test.ok +++ b/tests/power/bs_power_loop_test.ok @@ -2,21 +2,22 @@ Starting test case 'TC_fixed_mode' #00 exec_power_step() <- State (re)set (current 10 dB, max 20 dB) -#01 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(63), RXQUAL-FULL(0), RXLEV-SUB(63), RXQUAL-SUB(0) -#01 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 3f 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -#01 lchan_bs_pwr_ctrl() -> BS power reduction: 10 -> 10 (expected 10) -#02 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(00), RXQUAL-FULL(7), RXLEV-SUB(00), RXQUAL-SUB(7) -#02 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 00 00 7e 00 00 00 00 00 00 00 00 00 00 00 00 00 +#01 exec_power_step() <- Dynamic power control is disabled +#02 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(63), RXQUAL-FULL(0), RXLEV-SUB(63), RXQUAL-SUB(0) +#02 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 3f 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 #02 lchan_bs_pwr_ctrl() -> BS power reduction: 10 -> 10 (expected 10) -#03 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0) -#03 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 1e 1e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +#03 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(00), RXQUAL-FULL(7), RXLEV-SUB(00), RXQUAL-SUB(7) +#03 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 00 00 7e 00 00 00 00 00 00 00 00 00 00 00 00 00 #03 lchan_bs_pwr_ctrl() -> BS power reduction: 10 -> 10 (expected 10) -#04 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(30), RXQUAL-FULL(1), RXLEV-SUB(30), RXQUAL-SUB(1) -#04 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 1e 1e 12 00 00 00 00 00 00 00 00 00 00 00 00 00 +#04 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0) +#04 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 1e 1e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 #04 lchan_bs_pwr_ctrl() -> BS power reduction: 10 -> 10 (expected 10) -#05 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(50), RXQUAL-FULL(1), RXLEV-SUB(50), RXQUAL-SUB(1) -#05 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 32 32 12 00 00 00 00 00 00 00 00 00 00 00 00 00 +#05 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(30), RXQUAL-FULL(1), RXLEV-SUB(30), RXQUAL-SUB(1) +#05 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 1e 1e 12 00 00 00 00 00 00 00 00 00 00 00 00 00 #05 lchan_bs_pwr_ctrl() -> BS power reduction: 10 -> 10 (expected 10) +#06 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(50), RXQUAL-FULL(1), RXLEV-SUB(50), RXQUAL-SUB(1) +#06 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 32 32 12 00 00 00 00 00 00 00 00 00 00 00 00 00 +#06 lchan_bs_pwr_ctrl() -> BS power reduction: 10 -> 10 (expected 10) Test case verdict: SUCCESS Starting test case 'TC_rxlev_target' @@ -175,7 +176,7 @@ #04 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(28), RXQUAL-FULL(0), RXLEV-SUB(28), RXQUAL-SUB(0) #04 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 1c 1c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 #04 lchan_bs_pwr_ctrl() -> BS power reduction: 14 -> 12 (expected 12) -#05 exec_power_step() <- Param (re)set (target -80 dBm, hysteresis 3 dB, filtering is disabled) +#05 exec_power_step() <- (Re)set RxLev params (thresh 27 .. 33, averaging is disabled) #06 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(31), RXQUAL-FULL(0), RXLEV-SUB(31), RXQUAL-SUB(0) #06 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 1f 1f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 #06 lchan_bs_pwr_ctrl() -> BS power reduction: 12 -> 12 (expected 12) @@ -192,7 +193,7 @@ Starting test case 'TC_rxlev_pf_ewma' #00 exec_power_step() <- State (re)set (current 16 dB, max 30 dB) -#01 exec_power_step() <- Param (re)set (target -80 dBm, hysteresis 0 dB, filtering is enabled) +#01 exec_power_step() <- (Re)set RxLev params (thresh 30 .. 30, averaging is enabled) #02 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0) #02 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 1e 1e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 #02 lchan_bs_pwr_ctrl() -> BS power reduction: 16 -> 16 (expected 16) diff --git a/tests/power/ms_power_loop_test.c b/tests/power/ms_power_loop_test.c index ea3c249..e93a2ef 100644 --- a/tests/power/ms_power_loop_test.c +++ b/tests/power/ms_power_loop_test.c @@ -28,6 +28,10 @@ #include +#define PWR_TEST_RXLEV_TARGET_DBM -75 +#define PWR_TEST_RXLEV_TARGET \ + dbm2rxlev(PWR_TEST_RXLEV_TARGET_DBM) + static struct gsm_bts *g_bts = NULL; static struct gsm_bts_trx *g_trx = NULL; @@ -50,12 +54,15 @@ g_bts->band = GSM_BAND_1800; g_bts->c0 = g_trx; - g_bts->ul_power_ctrl = g_bts->dl_power_ctrl = \ - (struct bts_power_ctrl_params) { - .target_dbm = -75, - .raise_step_max_db = PWR_RAISE_MAX_DB, - .lower_step_max_db = PWR_LOWER_MAX_DB, - }; + /* Init default MS power control parameters, enable dynamic power control */ + struct gsm_power_ctrl_params *params = &g_trx->ts[0].lchan[0].ms_dpc_params; + g_trx->ts[0].lchan[0].ms_power_ctrl.dpc_params = params; + *params = power_ctrl_params_def; + + /* Disable RxLev pre-processing and hysteresis by default */ + struct gsm_power_ctrl_meas_params *mp = ¶ms->rxlev_meas; + mp->lower_thresh = mp->upper_thresh = PWR_TEST_RXLEV_TARGET; + mp->algo = GSM_PWR_CTRL_MEAS_AVG_ALGO_NONE; printf("\nStarting test case '%s'\n", name); } @@ -104,7 +111,7 @@ apply_power_test(lchan, -90, 1, 5); /* Check good RSSI value keeps it at same power level: */ - apply_power_test(lchan, g_bts->ul_power_ctrl.target_dbm, 0, 5); + apply_power_test(lchan, PWR_TEST_RXLEV_TARGET_DBM, 0, 5); apply_power_test(lchan, -90, 1, 3); apply_power_test(lchan, -90, 1, 2); /* .max is pwr lvl 2 */ @@ -122,7 +129,7 @@ apply_power_test(lchan, -90, 0, 29); /* Check good RSSI value keeps it at same power level: */ - apply_power_test(lchan, g_bts->ul_power_ctrl.target_dbm, 0, 29); + apply_power_test(lchan, PWR_TEST_RXLEV_TARGET_DBM, 0, 29); /* Now go down, steps are double size in this direction: */ apply_power_test(lchan, -45, 1, 1); @@ -130,23 +137,23 @@ apply_power_test(lchan, -45, 1, 9); /* Go down only one level down and up: */ - apply_power_test(lchan, g_bts->ul_power_ctrl.target_dbm + 2, 1, 10); - apply_power_test(lchan, g_bts->ul_power_ctrl.target_dbm - 2, 1, 9); + apply_power_test(lchan, PWR_TEST_RXLEV_TARGET_DBM + 2, 1, 10); + apply_power_test(lchan, PWR_TEST_RXLEV_TARGET_DBM - 2, 1, 9); /* Check if BSC requesting a low max power is applied after loop calculation: */ lchan->ms_power_ctrl.max = ms_pwr_ctl_lvl(GSM_BAND_1800, 2); OSMO_ASSERT(lchan->ms_power_ctrl.max == 14); - apply_power_test(lchan, g_bts->ul_power_ctrl.target_dbm + 2, 1, 14); + apply_power_test(lchan, PWR_TEST_RXLEV_TARGET_DBM + 2, 1, 14); /* Set back a more normal max: */ lchan->ms_power_ctrl.max = ms_pwr_ctl_lvl(GSM_BAND_1800, 30); OSMO_ASSERT(lchan->ms_power_ctrl.max == 0); - /* Fix it and jump down */ - lchan->ms_power_ctrl.fixed = true; + /* Disable dynamic power control and jump down */ + lchan->ms_power_ctrl.dpc_params = NULL; apply_power_test(lchan, -60, 0, 14); - /* And leave it again */ - lchan->ms_power_ctrl.fixed = false; + /* Enable and leave it again */ + lchan->ms_power_ctrl.dpc_params = &lchan->ms_dpc_params; apply_power_test(lchan, -40, 1, 15); } @@ -159,8 +166,9 @@ lchan = &g_trx->ts[0].lchan[0]; avg100 = &lchan->ms_power_ctrl.avg100_rxlev_dbm; - g_bts->ul_power_ctrl.pf_algo = BTS_PF_ALGO_EWMA; - g_bts->ul_power_ctrl.pf.ewma.alpha = 20; /* 80% smoothing */ + struct gsm_power_ctrl_meas_params *mp = &lchan->ms_dpc_params.rxlev_meas; + mp->algo = GSM_PWR_CTRL_MEAS_AVG_ALGO_OSMO_EWMA; + mp->ewma.alpha = 20; /* 80% smoothing */ lchan->ms_power_ctrl.current = ms_pwr_ctl_lvl(GSM_BAND_1800, 0); OSMO_ASSERT(lchan->ms_power_ctrl.current == 15); @@ -194,7 +202,7 @@ apply_power_test(lchan, -70, 1, 9); CHECK_UL_RSSI_AVG100(-78.40); - g_bts->ul_power_ctrl.pf.ewma.alpha = 70; /* 30% smoothing */ + mp->ewma.alpha = 70; /* 30% smoothing */ lchan->ms_power_ctrl.current = 15; lchan->ms_power_ctrl.avg100_rxlev_dbm = 0; @@ -220,22 +228,23 @@ lchan = &g_trx->ts[0].lchan[0]; /* Tolerate power deviations in range -80 .. -70 */ - g_bts->ul_power_ctrl.hysteresis_db = 5; + lchan->ms_dpc_params.rxlev_meas.lower_thresh = 30; + lchan->ms_dpc_params.rxlev_meas.upper_thresh = 40; lchan->ms_power_ctrl.current = ms_pwr_ctl_lvl(GSM_BAND_1800, 0); OSMO_ASSERT(lchan->ms_power_ctrl.current == 15); lchan->ms_power_ctrl.max = ms_pwr_ctl_lvl(GSM_BAND_1800, 26); OSMO_ASSERT(lchan->ms_power_ctrl.max == 2); - apply_power_test(lchan, g_bts->ul_power_ctrl.target_dbm, 0, 15); - apply_power_test(lchan, g_bts->ul_power_ctrl.target_dbm + 3, 0, 15); - apply_power_test(lchan, g_bts->ul_power_ctrl.target_dbm - 3, 0, 15); + apply_power_test(lchan, PWR_TEST_RXLEV_TARGET_DBM, 0, 15); + apply_power_test(lchan, PWR_TEST_RXLEV_TARGET_DBM + 3, 0, 15); + apply_power_test(lchan, PWR_TEST_RXLEV_TARGET_DBM - 3, 0, 15); - apply_power_test(lchan, g_bts->ul_power_ctrl.target_dbm, 0, 15); - apply_power_test(lchan, g_bts->ul_power_ctrl.target_dbm + 5, 0, 15); - apply_power_test(lchan, g_bts->ul_power_ctrl.target_dbm - 5, 0, 15); + apply_power_test(lchan, PWR_TEST_RXLEV_TARGET_DBM, 0, 15); + apply_power_test(lchan, PWR_TEST_RXLEV_TARGET_DBM + 5, 0, 15); + apply_power_test(lchan, PWR_TEST_RXLEV_TARGET_DBM - 5, 0, 15); - apply_power_test(lchan, g_bts->ul_power_ctrl.target_dbm - 10, 1, 13); + apply_power_test(lchan, PWR_TEST_RXLEV_TARGET_DBM - 10, 1, 13); } int main(int argc, char **argv) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21993 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib18f84c40227841d95a36063a6789bf63054fc2e Gerrit-Change-Number: 21993 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 13:56:47 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 11 Jan 2021 13:56:47 +0000 Subject: Change in osmo-bts[master]: power_control: generalize measurement pre-processing state In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21907 ) Change subject: power_control: generalize measurement pre-processing state ...................................................................... power_control: generalize measurement pre-processing state This way EWMA based filtering can also be applied to RxQual. Change-Id: I439c00b394da670e314f217b3246cc85ce8213c6 Related: SYS#4918, SYS#4917 --- M include/osmo-bts/gsm_data.h M src/common/power_control.c M tests/power/ms_power_loop_test.c 3 files changed, 35 insertions(+), 22 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/include/osmo-bts/gsm_data.h b/include/osmo-bts/gsm_data.h index 6efc717..253b115 100644 --- a/include/osmo-bts/gsm_data.h +++ b/include/osmo-bts/gsm_data.h @@ -213,18 +213,28 @@ /* Default MS/BS Power Control parameters */ extern const struct gsm_power_ctrl_params power_ctrl_params_def; +/* Measurement pre-processing state */ +struct gsm_power_ctrl_meas_proc_state { + /* Algorithm specific data */ + union { + struct { + /* Scaled up 100 times average value */ + int Avg100; + } ewma; + }; +}; + struct lchan_power_ctrl_state { /* Dynamic Power Control parameters (NULL in static mode) */ const struct gsm_power_ctrl_params *dpc_params; + /* Measurement pre-processing state (for dynamic mode) */ + struct gsm_power_ctrl_meas_proc_state rxlev_meas_proc; /* Depending on the context (MS or BS power control), fields 'current' and 'max' * reflect either the MS power level (magic numbers), or BS Power reduction level * (attenuation, in dB). */ uint8_t current; uint8_t max; - - /* Scaled up (100 times) average UL/DL RxLev (in dBm) */ - int avg100_rxlev_dbm; }; struct gsm_lchan { diff --git a/src/common/power_control.c b/src/common/power_control.c index e159740..0629630 100644 --- a/src/common/power_control.c +++ b/src/common/power_control.c @@ -38,29 +38,29 @@ /* Base Low-Pass Single-Pole IIR Filter (EWMA) formula: * - * Avg[n] = a * Pwr[n] + (1 - a) * Avg[n - 1] + * Avg[n] = a * Val[n] + (1 - a) * Avg[n - 1] * - * where parameter 'a' determines how much weight of the latest UL RSSI measurement - * result 'Pwr[n]' carries vs the weight of the average 'Avg[n - 1]'. The value of - * 'a' is usually a float in range 0 .. 1, so: + * where parameter 'a' determines how much weight of the latest measurement value + * 'Val[n]' carries vs the weight of the accumulated average 'Avg[n - 1]'. The + * value of 'a' is usually a float in range 0 .. 1, so: * - * - value 0.5 gives equal weight to both 'Pwr[n]' and 'Avg[n - 1]'; + * - value 0.5 gives equal weight to both 'Val[n]' and 'Avg[n - 1]'; * - value 1.0 means no filtering at all (pass through); * - value 0.0 makes no sense. * * Further optimization: * - * Avg[n] = a * Pwr[n] + Avg[n - 1] - a * Avg[n - 1] + * Avg[n] = a * Val[n] + Avg[n - 1] - a * Avg[n - 1] * ^^^^^^ ^^^^^^^^^^ * * a) this can be implemented in C using '+=' operator: * - * Avg += a * Pwr - a * Avg - * Avg += a * (Pwr - Avg) + * Avg += a * Val - a * Avg + * Avg += a * (Val - Avg) * * b) everything is scaled up by 100 to avoid floating point stuff: * - * Avg100 += A * (Pwr - Avg) + * Avg100 += A * (Val - Avg) * * where 'Avg100' is 'Avg * 100' and 'A' is 'a * 100'. * @@ -70,20 +70,20 @@ * https://en.wikipedia.org/wiki/Low-pass_filter#Simple_infinite_impulse_response_filter * https://tomroelandts.com/articles/low-pass-single-pole-iir-filter */ -static int8_t do_pf_ewma(const struct gsm_power_ctrl_meas_params *mp, - struct lchan_power_ctrl_state *state, - const int8_t Pwr) +static int do_pf_ewma(const struct gsm_power_ctrl_meas_params *mp, + struct gsm_power_ctrl_meas_proc_state *mps, + const int Val) { const uint8_t A = mp->ewma.alpha; - int *Avg100 = &state->avg100_rxlev_dbm; + int *Avg100 = &mps->ewma.Avg100; /* We don't have 'Avg[n - 1]' if this is the first run */ if (*Avg100 == 0) { - *Avg100 = Pwr * EWMA_SCALE_FACTOR; - return Pwr; + *Avg100 = Val * EWMA_SCALE_FACTOR; + return Val; } - *Avg100 += A * (Pwr - *Avg100 / EWMA_SCALE_FACTOR); + *Avg100 += A * (Val - *Avg100 / EWMA_SCALE_FACTOR); return *Avg100 / EWMA_SCALE_FACTOR; } @@ -104,7 +104,9 @@ /* Filter RxLev value to reduce unnecessary Tx power oscillations */ switch (params->rxlev_meas.algo) { case GSM_PWR_CTRL_MEAS_AVG_ALGO_OSMO_EWMA: - rxlev_dbm_avg = do_pf_ewma(¶ms->rxlev_meas, state, rxlev_dbm); + rxlev_dbm_avg = do_pf_ewma(¶ms->rxlev_meas, + &state->rxlev_meas_proc, + rxlev_dbm); break; /* TODO: implement other pre-processing methods */ case GSM_PWR_CTRL_MEAS_AVG_ALGO_NONE: diff --git a/tests/power/ms_power_loop_test.c b/tests/power/ms_power_loop_test.c index e93a2ef..eb0e3e9 100644 --- a/tests/power/ms_power_loop_test.c +++ b/tests/power/ms_power_loop_test.c @@ -164,7 +164,7 @@ init_test(__func__); lchan = &g_trx->ts[0].lchan[0]; - avg100 = &lchan->ms_power_ctrl.avg100_rxlev_dbm; + avg100 = &lchan->ms_power_ctrl.rxlev_meas_proc.ewma.Avg100; struct gsm_power_ctrl_meas_params *mp = &lchan->ms_dpc_params.rxlev_meas; mp->algo = GSM_PWR_CTRL_MEAS_AVG_ALGO_OSMO_EWMA; @@ -204,7 +204,8 @@ mp->ewma.alpha = 70; /* 30% smoothing */ lchan->ms_power_ctrl.current = 15; - lchan->ms_power_ctrl.avg100_rxlev_dbm = 0; + lchan->ms_power_ctrl.rxlev_meas_proc = \ + (struct gsm_power_ctrl_meas_proc_state) { 0 }; /* This is the first sample, the filter outputs it as-is */ apply_power_test(lchan, -50, 0, 15); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21907 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I439c00b394da670e314f217b3246cc85ce8213c6 Gerrit-Change-Number: 21907 Gerrit-PatchSet: 6 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 13:56:48 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 11 Jan 2021 13:56:48 +0000 Subject: Change in osmo-bts[master]: power_control: properly track the first initial state In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/22051 ) Change subject: power_control: properly track the first initial state ...................................................................... power_control: properly track the first initial state Change-Id: I16e7474b5affbd90855a2e407b305e9dec581dfa Related: SYS#4918, SYS#4917 --- M include/osmo-bts/gsm_data.h M src/common/power_control.c 2 files changed, 3 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/include/osmo-bts/gsm_data.h b/include/osmo-bts/gsm_data.h index 253b115..8071a28 100644 --- a/include/osmo-bts/gsm_data.h +++ b/include/osmo-bts/gsm_data.h @@ -215,6 +215,8 @@ /* Measurement pre-processing state */ struct gsm_power_ctrl_meas_proc_state { + /* Number of measurements processed */ + unsigned int meas_num; /* Algorithm specific data */ union { struct { diff --git a/src/common/power_control.c b/src/common/power_control.c index 0629630..5e2e85e 100644 --- a/src/common/power_control.c +++ b/src/common/power_control.c @@ -78,7 +78,7 @@ int *Avg100 = &mps->ewma.Avg100; /* We don't have 'Avg[n - 1]' if this is the first run */ - if (*Avg100 == 0) { + if (mps->meas_num++ == 0) { *Avg100 = Val * EWMA_SCALE_FACTOR; return Val; } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22051 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I16e7474b5affbd90855a2e407b305e9dec581dfa Gerrit-Change-Number: 22051 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 13:56:48 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 11 Jan 2021 13:56:48 +0000 Subject: Change in osmo-bts[master]: power_control: use more reasonable reduce step size In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/22079 ) Change subject: power_control: use more reasonable reduce step size ...................................................................... power_control: use more reasonable reduce step size It makes more sense to use a reduce step size that is smaller than the increase step size. This way both MS/BS power control loops would be able to react quickly of the signal gets weaker, while the good signal would not trigger radical power reduction. Change-Id: Ie358fd828a68bfa1d23559197e8df8478fb4535e Related: SYS#4918 --- M include/osmo-bts/power_control.h M src/common/gsm_data.c M tests/power/bs_power_loop_test.c M tests/power/bs_power_loop_test.err M tests/power/bs_power_loop_test.ok M tests/power/ms_power_loop_test.err M tests/power/ms_power_loop_test.ok 7 files changed, 124 insertions(+), 85 deletions(-) Approvals: pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmo-bts/power_control.h b/include/osmo-bts/power_control.h index ab107b8..f2e14cf 100644 --- a/include/osmo-bts/power_control.h +++ b/include/osmo-bts/power_control.h @@ -3,10 +3,6 @@ #include #include -/* How many dB do we raise/lower power as maximum */ -#define PWR_RAISE_MAX_DB 4 -#define PWR_LOWER_MAX_DB 8 - int lchan_ms_pwr_ctrl(struct gsm_lchan *lchan, const uint8_t ms_power_lvl, const int8_t ul_rssi_dbm); diff --git a/src/common/gsm_data.c b/src/common/gsm_data.c index 44ed7e9..b3f9f2d 100644 --- a/src/common/gsm_data.c +++ b/src/common/gsm_data.c @@ -423,9 +423,9 @@ /* Default MS/BS Power Control parameters (see 3GPP TS 45.008, table A.1) */ const struct gsm_power_ctrl_params power_ctrl_params_def = { - /* Power increasing/reducing step size */ - .inc_step_size_db = 4, /* FIXME: PWR_RAISE_MAX_DB */ - .red_step_size_db = 8, /* FIXME: PWR_LOWER_MAX_DB */ + /* Power increasing/reducing step size (optimal defaults) */ + .inc_step_size_db = 4, /* quickly increase MS/BS power */ + .red_step_size_db = 2, /* slowly decrease MS/BS power */ /* RxLev measurement parameters */ .rxlev_meas = { diff --git a/tests/power/bs_power_loop_test.c b/tests/power/bs_power_loop_test.c index ecd83e7..06b53da 100644 --- a/tests/power/bs_power_loop_test.c +++ b/tests/power/bs_power_loop_test.c @@ -197,16 +197,17 @@ init_test(name); struct gsm_lchan *lchan = &g_trx->ts[0].lchan[0]; + struct gsm_power_ctrl_params *params = &lchan->bs_dpc_params; - lchan->bs_dpc_params = (struct gsm_power_ctrl_params) { - /* NOTE: raise/lower values are intentionally swapped here, - * as it makes more sense in the context of BS Power Control. */ - .inc_step_size_db = PWR_LOWER_MAX_DB, - .red_step_size_db = PWR_RAISE_MAX_DB, + /* Default BS power control parameters */ + memcpy(params, &power_ctrl_params_def, sizeof(*params)); - /* RxLev pre-processing parameters */ - .rxlev_meas = { PWR_TEST_CFG_RXLEV_THRESH(0) }, - }; + /* No RxLev hysteresis: lower == upper */ + params->rxlev_meas.lower_thresh = PWR_TEST_RXLEV_TARGET; + params->rxlev_meas.upper_thresh = PWR_TEST_RXLEV_TARGET; + + /* No RxLev pre-processing by default */ + params->rxlev_meas.algo = GSM_PWR_CTRL_MEAS_AVG_ALGO_NONE; for (n = 0; n < num_steps; n++) rc |= exec_power_step(lchan, n, &steps[n]); @@ -249,17 +250,24 @@ { .type = PWR_TEST_ST_SET_STATE, .state = { .current = 0, .max = 2 * 10 } }, - /* MS indicates high RxLev values (-50 dBm) */ + /* MS indicates high RxLev values (-50 dBm), inc step is 2 dB */ + { .meas = DL_MEAS_FULL_SUB(0, 60), .exp_txred = 2 }, { .meas = DL_MEAS_FULL_SUB(0, 60), .exp_txred = 4 }, + { .meas = DL_MEAS_FULL_SUB(0, 60), .exp_txred = 6 }, { .meas = DL_MEAS_FULL_SUB(0, 60), .exp_txred = 8 }, + { .meas = DL_MEAS_FULL_SUB(0, 60), .exp_txred = 10 }, { .meas = DL_MEAS_FULL_SUB(0, 60), .exp_txred = 12 }, + { .meas = DL_MEAS_FULL_SUB(0, 60), .exp_txred = 14 }, { .meas = DL_MEAS_FULL_SUB(0, 60), .exp_txred = 16 }, + { .meas = DL_MEAS_FULL_SUB(0, 60), .exp_txred = 18 }, { .meas = DL_MEAS_FULL_SUB(0, 60), .exp_txred = 20 }, /* max */ { .meas = DL_MEAS_FULL_SUB(0, 60), .exp_txred = 20 }, /* max */ { .meas = DL_MEAS_FULL_SUB(0, 60), .exp_txred = 20 }, /* max */ - /* MS indicates low RxLev values (-100 dBm) */ + /* MS indicates low RxLev values (-100 dBm), red step is 4 dB */ + { .meas = DL_MEAS_FULL_SUB(0, 10), .exp_txred = 16 }, { .meas = DL_MEAS_FULL_SUB(0, 10), .exp_txred = 12 }, + { .meas = DL_MEAS_FULL_SUB(0, 10), .exp_txred = 8 }, { .meas = DL_MEAS_FULL_SUB(0, 10), .exp_txred = 4 }, { .meas = DL_MEAS_FULL_SUB(0, 10), .exp_txred = 0 }, /* min */ { .meas = DL_MEAS_FULL_SUB(0, 10), .exp_txred = 0 }, /* min */ @@ -341,8 +349,8 @@ /* Hysteresis is not enabled, so small deviations trigger oscillations */ { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET + 1), .exp_txred = 13 }, { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET - 2), .exp_txred = 11 }, - { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET + 3), .exp_txred = 14 }, - { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET - 2), .exp_txred = 12 }, + { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET + 3), .exp_txred = 13 }, + { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET - 2), .exp_txred = 11 }, /* Enable hysteresis */ { .type = PWR_TEST_ST_SET_RXLEV_PARAMS, @@ -350,10 +358,10 @@ }, /* Hysteresis is enabled, so small deviations do not trigger any changes */ - { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET + 1), .exp_txred = 12 }, - { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET - 2), .exp_txred = 12 }, - { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET + 3), .exp_txred = 12 }, - { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET - 2), .exp_txred = 12 }, + { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET + 1), .exp_txred = 11 }, + { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET - 2), .exp_txred = 11 }, + { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET + 3), .exp_txred = 11 }, + { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET - 2), .exp_txred = 11 }, }; /* Verify EWMA based power filtering. */ @@ -381,8 +389,8 @@ { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET - 4), .exp_txred = 11 }, /* Avg[t] = (0.5 * 35) + (0.5 * 27) = 31, so delta is 1 */ { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET + 5), .exp_txred = 12 }, - /* Avg[t] = (0.5 * 35) + (0.5 * 31) = 33, so delta is 3 */ - { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET + 5), .exp_txred = 15 }, + /* Avg[t] = (0.5 * 35) + (0.5 * 31) = 33, so delta is 3, but red step size is 2 dB */ + { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET + 5), .exp_txred = 14 }, }; int main(int argc, char **argv) diff --git a/tests/power/bs_power_loop_test.err b/tests/power/bs_power_loop_test.err index 43063c0..20d2133 100644 --- a/tests/power/bs_power_loop_test.err +++ b/tests/power/bs_power_loop_test.err @@ -7,29 +7,43 @@ (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL (bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, target -80 dBm, delta 0 dB) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 0 -> 4 dB (maximum 20 dB, target -80 dBm, delta -4 dB) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 0 -> 2 dB (maximum 20 dB, target -80 dBm, delta -2 dB) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 4 -> 8 dB (maximum 20 dB, target -80 dBm, delta -4 dB) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 2 -> 4 dB (maximum 20 dB, target -80 dBm, delta -2 dB) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 8 -> 12 dB (maximum 20 dB, target -80 dBm, delta -4 dB) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 4 -> 6 dB (maximum 20 dB, target -80 dBm, delta -2 dB) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 12 -> 16 dB (maximum 20 dB, target -80 dBm, delta -4 dB) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 6 -> 8 dB (maximum 20 dB, target -80 dBm, delta -2 dB) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 16 -> 20 dB (maximum 20 dB, target -80 dBm, delta -4 dB) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 8 -> 10 dB (maximum 20 dB, target -80 dBm, delta -2 dB) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 20 dB (maximum 20 dB, target -80 dBm, delta -4 dB) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 10 -> 12 dB (maximum 20 dB, target -80 dBm, delta -2 dB) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 20 dB (maximum 20 dB, target -80 dBm, delta -4 dB) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 12 -> 14 dB (maximum 20 dB, target -80 dBm, delta -2 dB) +(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 14 -> 16 dB (maximum 20 dB, target -80 dBm, delta -2 dB) +(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 16 -> 18 dB (maximum 20 dB, target -80 dBm, delta -2 dB) +(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 18 -> 20 dB (maximum 20 dB, target -80 dBm, delta -2 dB) +(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 20 dB (maximum 20 dB, target -80 dBm, delta -2 dB) +(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 20 dB (maximum 20 dB, target -80 dBm, delta -2 dB) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 20 -> 12 dB (maximum 20 dB, target -80 dBm, delta 8 dB) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 20 -> 16 dB (maximum 20 dB, target -80 dBm, delta 4 dB) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 12 -> 4 dB (maximum 20 dB, target -80 dBm, delta 8 dB) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 16 -> 12 dB (maximum 20 dB, target -80 dBm, delta 4 dB) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 4 -> 0 dB (maximum 20 dB, target -80 dBm, delta 8 dB) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 12 -> 8 dB (maximum 20 dB, target -80 dBm, delta 4 dB) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, target -80 dBm, delta 8 dB) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 8 -> 4 dB (maximum 20 dB, target -80 dBm, delta 4 dB) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, target -80 dBm, delta 8 dB) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 4 -> 0 dB (maximum 20 dB, target -80 dBm, delta 4 dB) +(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, target -80 dBm, delta 4 dB) +(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, target -80 dBm, delta 4 dB) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL (bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, target -80 dBm, delta 0 dB) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL @@ -77,17 +91,17 @@ (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(28), RXQUAL-FULL(0), RXLEV-SUB(28), RXQUAL-SUB(0), DTx is disabled => using FULL (bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 13 -> 11 dB (maximum 16 dB, target -80 dBm, delta 2 dB) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(33), RXQUAL-FULL(0), RXLEV-SUB(33), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 11 -> 14 dB (maximum 16 dB, target -80 dBm, delta -3 dB) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 11 -> 13 dB (maximum 16 dB, target -80 dBm, delta -2 dB) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(28), RXQUAL-FULL(0), RXLEV-SUB(28), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 14 -> 12 dB (maximum 16 dB, target -80 dBm, delta 2 dB) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 13 -> 11 dB (maximum 16 dB, target -80 dBm, delta 2 dB) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(31), RXQUAL-FULL(0), RXLEV-SUB(31), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 12 dB (maximum 16 dB, target -80 dBm, delta 0 dB) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 11 dB (maximum 16 dB, target -80 dBm, delta 0 dB) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(28), RXQUAL-FULL(0), RXLEV-SUB(28), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 12 dB (maximum 16 dB, target -80 dBm, delta 0 dB) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 11 dB (maximum 16 dB, target -80 dBm, delta 0 dB) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(33), RXQUAL-FULL(0), RXLEV-SUB(33), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 12 dB (maximum 16 dB, target -80 dBm, delta 0 dB) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 11 dB (maximum 16 dB, target -80 dBm, delta 0 dB) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(28), RXQUAL-FULL(0), RXLEV-SUB(28), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 12 dB (maximum 16 dB, target -80 dBm, delta 0 dB) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 11 dB (maximum 16 dB, target -80 dBm, delta 0 dB) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL (bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 30 dB, target -80 dBm, delta 0 dB) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL @@ -99,4 +113,4 @@ (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(35), RXQUAL-FULL(0), RXLEV-SUB(35), RXQUAL-SUB(0), DTx is disabled => using FULL (bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 11 -> 12 dB (maximum 30 dB, target -80 dBm, delta -1 dB) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(35), RXQUAL-FULL(0), RXLEV-SUB(35), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 12 -> 15 dB (maximum 30 dB, target -80 dBm, delta -3 dB) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 12 -> 14 dB (maximum 30 dB, target -80 dBm, delta -2 dB) diff --git a/tests/power/bs_power_loop_test.ok b/tests/power/bs_power_loop_test.ok index 814f7e2..804f5c6 100644 --- a/tests/power/bs_power_loop_test.ok +++ b/tests/power/bs_power_loop_test.ok @@ -40,40 +40,61 @@ #00 exec_power_step() <- State (re)set (current 0 dB, max 20 dB) #01 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0) #01 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 3c 3c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -#01 lchan_bs_pwr_ctrl() -> BS power reduction: 0 -> 4 (expected 4) +#01 lchan_bs_pwr_ctrl() -> BS power reduction: 0 -> 2 (expected 2) #02 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0) #02 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 3c 3c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -#02 lchan_bs_pwr_ctrl() -> BS power reduction: 4 -> 8 (expected 8) +#02 lchan_bs_pwr_ctrl() -> BS power reduction: 2 -> 4 (expected 4) #03 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0) #03 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 3c 3c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -#03 lchan_bs_pwr_ctrl() -> BS power reduction: 8 -> 12 (expected 12) +#03 lchan_bs_pwr_ctrl() -> BS power reduction: 4 -> 6 (expected 6) #04 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0) #04 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 3c 3c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -#04 lchan_bs_pwr_ctrl() -> BS power reduction: 12 -> 16 (expected 16) +#04 lchan_bs_pwr_ctrl() -> BS power reduction: 6 -> 8 (expected 8) #05 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0) #05 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 3c 3c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -#05 lchan_bs_pwr_ctrl() -> BS power reduction: 16 -> 20 (expected 20) +#05 lchan_bs_pwr_ctrl() -> BS power reduction: 8 -> 10 (expected 10) #06 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0) #06 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 3c 3c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -#06 lchan_bs_pwr_ctrl() -> BS power reduction: 20 -> 20 (expected 20) +#06 lchan_bs_pwr_ctrl() -> BS power reduction: 10 -> 12 (expected 12) #07 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0) #07 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 3c 3c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -#07 lchan_bs_pwr_ctrl() -> BS power reduction: 20 -> 20 (expected 20) -#08 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0) -#08 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 0a 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -#08 lchan_bs_pwr_ctrl() -> BS power reduction: 20 -> 12 (expected 12) -#09 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0) -#09 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 0a 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -#09 lchan_bs_pwr_ctrl() -> BS power reduction: 12 -> 4 (expected 4) -#10 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0) -#10 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 0a 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -#10 lchan_bs_pwr_ctrl() -> BS power reduction: 4 -> 0 (expected 0) -#11 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0) -#11 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 0a 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -#11 lchan_bs_pwr_ctrl() -> BS power reduction: 0 -> 0 (expected 0) -#12 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0) -#12 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 0a 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -#12 lchan_bs_pwr_ctrl() -> BS power reduction: 0 -> 0 (expected 0) +#07 lchan_bs_pwr_ctrl() -> BS power reduction: 12 -> 14 (expected 14) +#08 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0) +#08 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 3c 3c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +#08 lchan_bs_pwr_ctrl() -> BS power reduction: 14 -> 16 (expected 16) +#09 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0) +#09 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 3c 3c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +#09 lchan_bs_pwr_ctrl() -> BS power reduction: 16 -> 18 (expected 18) +#10 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0) +#10 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 3c 3c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +#10 lchan_bs_pwr_ctrl() -> BS power reduction: 18 -> 20 (expected 20) +#11 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0) +#11 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 3c 3c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +#11 lchan_bs_pwr_ctrl() -> BS power reduction: 20 -> 20 (expected 20) +#12 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0) +#12 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 3c 3c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +#12 lchan_bs_pwr_ctrl() -> BS power reduction: 20 -> 20 (expected 20) +#13 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0) +#13 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 0a 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +#13 lchan_bs_pwr_ctrl() -> BS power reduction: 20 -> 16 (expected 16) +#14 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0) +#14 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 0a 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +#14 lchan_bs_pwr_ctrl() -> BS power reduction: 16 -> 12 (expected 12) +#15 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0) +#15 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 0a 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +#15 lchan_bs_pwr_ctrl() -> BS power reduction: 12 -> 8 (expected 8) +#16 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0) +#16 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 0a 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +#16 lchan_bs_pwr_ctrl() -> BS power reduction: 8 -> 4 (expected 4) +#17 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0) +#17 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 0a 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +#17 lchan_bs_pwr_ctrl() -> BS power reduction: 4 -> 0 (expected 0) +#18 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0) +#18 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 0a 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +#18 lchan_bs_pwr_ctrl() -> BS power reduction: 0 -> 0 (expected 0) +#19 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0) +#19 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 0a 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +#19 lchan_bs_pwr_ctrl() -> BS power reduction: 0 -> 0 (expected 0) Test case verdict: SUCCESS Starting test case 'TC_dtxd_mode' @@ -172,23 +193,23 @@ #02 lchan_bs_pwr_ctrl() -> BS power reduction: 13 -> 11 (expected 11) #03 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(33), RXQUAL-FULL(0), RXLEV-SUB(33), RXQUAL-SUB(0) #03 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 21 21 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -#03 lchan_bs_pwr_ctrl() -> BS power reduction: 11 -> 14 (expected 14) +#03 lchan_bs_pwr_ctrl() -> BS power reduction: 11 -> 13 (expected 13) #04 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(28), RXQUAL-FULL(0), RXLEV-SUB(28), RXQUAL-SUB(0) #04 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 1c 1c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -#04 lchan_bs_pwr_ctrl() -> BS power reduction: 14 -> 12 (expected 12) +#04 lchan_bs_pwr_ctrl() -> BS power reduction: 13 -> 11 (expected 11) #05 exec_power_step() <- (Re)set RxLev params (thresh 27 .. 33, averaging is disabled) #06 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(31), RXQUAL-FULL(0), RXLEV-SUB(31), RXQUAL-SUB(0) #06 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 1f 1f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -#06 lchan_bs_pwr_ctrl() -> BS power reduction: 12 -> 12 (expected 12) +#06 lchan_bs_pwr_ctrl() -> BS power reduction: 11 -> 11 (expected 11) #07 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(28), RXQUAL-FULL(0), RXLEV-SUB(28), RXQUAL-SUB(0) #07 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 1c 1c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -#07 lchan_bs_pwr_ctrl() -> BS power reduction: 12 -> 12 (expected 12) +#07 lchan_bs_pwr_ctrl() -> BS power reduction: 11 -> 11 (expected 11) #08 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(33), RXQUAL-FULL(0), RXLEV-SUB(33), RXQUAL-SUB(0) #08 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 21 21 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -#08 lchan_bs_pwr_ctrl() -> BS power reduction: 12 -> 12 (expected 12) +#08 lchan_bs_pwr_ctrl() -> BS power reduction: 11 -> 11 (expected 11) #09 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(28), RXQUAL-FULL(0), RXLEV-SUB(28), RXQUAL-SUB(0) #09 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 1c 1c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -#09 lchan_bs_pwr_ctrl() -> BS power reduction: 12 -> 12 (expected 12) +#09 lchan_bs_pwr_ctrl() -> BS power reduction: 11 -> 11 (expected 11) Test case verdict: SUCCESS Starting test case 'TC_rxlev_pf_ewma' @@ -211,5 +232,5 @@ #06 lchan_bs_pwr_ctrl() -> BS power reduction: 11 -> 12 (expected 12) #07 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(35), RXQUAL-FULL(0), RXLEV-SUB(35), RXQUAL-SUB(0) #07 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 23 23 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -#07 lchan_bs_pwr_ctrl() -> BS power reduction: 12 -> 15 (expected 15) +#07 lchan_bs_pwr_ctrl() -> BS power reduction: 12 -> 14 (expected 14) Test case verdict: SUCCESS diff --git a/tests/power/ms_power_loop_test.err b/tests/power/ms_power_loop_test.err index cf43081..7f8779c 100644 --- a/tests/power/ms_power_loop_test.err +++ b/tests/power/ms_power_loop_test.err @@ -14,12 +14,12 @@ (bts=0,trx=0,ts=0,ss=0) Raising MS power from control level 30 (34 dBm) to 29, 36 dBm (rx-ms-pwr-lvl 30, max-ms-pwr-lvl 29, rx-current -90 dBm, rx-target -75 dBm) (bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 29, 36 dBm (rx-ms-pwr-lvl 29, max-ms-pwr-lvl 29, rx-current -90 dBm, rx-target -75 dBm) (bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 29, 36 dBm (rx-ms-pwr-lvl 29, max-ms-pwr-lvl 29, rx-current -75 dBm, rx-target -75 dBm) -(bts=0,trx=0,ts=0,ss=0) Lowering MS power from control level 29 (36 dBm) to 1, 28 dBm (rx-ms-pwr-lvl 29, max-ms-pwr-lvl 29, rx-current -45 dBm, rx-target -75 dBm) -(bts=0,trx=0,ts=0,ss=0) Lowering MS power from control level 1 (28 dBm) to 5, 20 dBm (rx-ms-pwr-lvl 1, max-ms-pwr-lvl 29, rx-current -45 dBm, rx-target -75 dBm) -(bts=0,trx=0,ts=0,ss=0) Lowering MS power from control level 5 (20 dBm) to 9, 12 dBm (rx-ms-pwr-lvl 5, max-ms-pwr-lvl 29, rx-current -45 dBm, rx-target -75 dBm) -(bts=0,trx=0,ts=0,ss=0) Lowering MS power from control level 9 (12 dBm) to 10, 10 dBm (rx-ms-pwr-lvl 9, max-ms-pwr-lvl 29, rx-current -73 dBm, rx-target -75 dBm) -(bts=0,trx=0,ts=0,ss=0) Raising MS power from control level 10 (10 dBm) to 9, 12 dBm (rx-ms-pwr-lvl 10, max-ms-pwr-lvl 29, rx-current -77 dBm, rx-target -75 dBm) -(bts=0,trx=0,ts=0,ss=0) Lowering MS power from control level 9 (12 dBm) to 14, 2 dBm (rx-ms-pwr-lvl 9, max-ms-pwr-lvl 14, rx-current -73 dBm, rx-target -75 dBm) +(bts=0,trx=0,ts=0,ss=0) Lowering MS power from control level 29 (36 dBm) to 30, 34 dBm (rx-ms-pwr-lvl 29, max-ms-pwr-lvl 29, rx-current -45 dBm, rx-target -75 dBm) +(bts=0,trx=0,ts=0,ss=0) Lowering MS power from control level 30 (34 dBm) to 31, 32 dBm (rx-ms-pwr-lvl 30, max-ms-pwr-lvl 29, rx-current -45 dBm, rx-target -75 dBm) +(bts=0,trx=0,ts=0,ss=0) Lowering MS power from control level 31 (32 dBm) to 0, 30 dBm (rx-ms-pwr-lvl 31, max-ms-pwr-lvl 29, rx-current -45 dBm, rx-target -75 dBm) +(bts=0,trx=0,ts=0,ss=0) Lowering MS power from control level 0 (30 dBm) to 1, 28 dBm (rx-ms-pwr-lvl 0, max-ms-pwr-lvl 29, rx-current -73 dBm, rx-target -75 dBm) +(bts=0,trx=0,ts=0,ss=0) Raising MS power from control level 1 (28 dBm) to 0, 30 dBm (rx-ms-pwr-lvl 1, max-ms-pwr-lvl 29, rx-current -77 dBm, rx-target -75 dBm) +(bts=0,trx=0,ts=0,ss=0) Lowering MS power from control level 0 (30 dBm) to 14, 2 dBm (rx-ms-pwr-lvl 0, max-ms-pwr-lvl 14, rx-current -73 dBm, rx-target -75 dBm) (bts=0,trx=0,ts=0,ss=0) Lowering MS power from control level 14 (2 dBm) to 15, 0 dBm (rx-ms-pwr-lvl 14, max-ms-pwr-lvl 0, rx-current -40 dBm, rx-target -75 dBm) (bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15, 0 dBm (rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, rx-current -75 dBm, rx-target -75 dBm) (bts=0,trx=0,ts=0,ss=0) Raising MS power from control level 15 (0 dBm) to 13, 3 dBm (rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, rx-current -90 dBm, rx-target -75 dBm) diff --git a/tests/power/ms_power_loop_test.ok b/tests/power/ms_power_loop_test.ok index d463d87..4293d28 100644 --- a/tests/power/ms_power_loop_test.ok +++ b/tests/power/ms_power_loop_test.ok @@ -34,17 +34,17 @@ lchan_ms_pwr_ctrl(RxLvl=-75 dBm) returns 0 (expected 0) MS current power 29 -> 29 (expected 29) lchan_ms_pwr_ctrl(RxLvl=-45 dBm) returns 1 (expected 1) - MS current power 29 -> 1 (expected 1) + MS current power 29 -> 30 (expected 1) lchan_ms_pwr_ctrl(RxLvl=-45 dBm) returns 1 (expected 1) - MS current power 1 -> 5 (expected 5) + MS current power 30 -> 31 (expected 5) lchan_ms_pwr_ctrl(RxLvl=-45 dBm) returns 1 (expected 1) - MS current power 5 -> 9 (expected 9) + MS current power 31 -> 0 (expected 9) lchan_ms_pwr_ctrl(RxLvl=-73 dBm) returns 1 (expected 1) - MS current power 9 -> 10 (expected 10) + MS current power 0 -> 1 (expected 10) lchan_ms_pwr_ctrl(RxLvl=-77 dBm) returns 1 (expected 1) - MS current power 10 -> 9 (expected 9) + MS current power 1 -> 0 (expected 9) lchan_ms_pwr_ctrl(RxLvl=-73 dBm) returns 1 (expected 1) - MS current power 9 -> 14 (expected 14) + MS current power 0 -> 14 (expected 14) lchan_ms_pwr_ctrl(RxLvl=-60 dBm) returns 0 (expected 0) MS current power 14 -> 14 (expected 14) lchan_ms_pwr_ctrl(RxLvl=-40 dBm) returns 1 (expected 1) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22079 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ie358fd828a68bfa1d23559197e8df8478fb4535e Gerrit-Change-Number: 22079 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 13:56:48 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 11 Jan 2021 13:56:48 +0000 Subject: Change in osmo-bts[master]: power_control: rework handling of DL RxQual measurements In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/22080 ) Change subject: power_control: rework handling of DL RxQual measurements ...................................................................... power_control: rework handling of DL RxQual measurements This change makes BS power control loop: - take the lower RxQual threshold (L_RXQUAL_XX_P) into account, so the BS power is increased only if RxQual exceeds this threshold; - apply the configured increase step size instead of reducing the current attenuation by half. MS power loop is not affected, it does not even handle RxQual yet. Change-Id: Ib3c740b9a0f3ba5dfb027e144dc13f456cb26ae2 Related: SYS#4918 --- M src/common/power_control.c M tests/power/bs_power_loop_test.c M tests/power/bs_power_loop_test.err M tests/power/bs_power_loop_test.ok 4 files changed, 98 insertions(+), 70 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/src/common/power_control.c b/src/common/power_control.c index 5e2e85e..6620add 100644 --- a/src/common/power_control.c +++ b/src/common/power_control.c @@ -274,12 +274,23 @@ rxlev = rxlev_full; } - /* Bit Error Rate > 0 => reduce by 2 */ - if (rxqual > 0) { /* FIXME: take RxQual threshold into account */ - LOGPLCHAN(lchan, DLOOP, LOGL_INFO, "Reducing Downlink attenuation " - "by half: %u -> %u dB due to RXQUAL %u > 0\n", - state->current, state->current / 2, rxqual); - state->current /= 2; + /* If RxQual > L_RXQUAL_XX_P, try to increase Tx power */ + if (rxqual > params->rxqual_meas.lower_thresh) { + uint8_t old = state->current; + + /* Tx power has reached the maximum, nothing to do */ + if (state->current == 0) + return 0; + + /* Increase Tx power by reducing Tx attenuation */ + if (state->current >= params->inc_step_size_db) + state->current -= params->inc_step_size_db; + else + state->current = 0; + + LOGPLCHAN(lchan, DLOOP, LOGL_INFO, "Reducing Downlink attenuation: " + "%u -> %d dB due to RxQual %u worse than L_RXQUAL_XX_P %u\n", + old, state->current, rxqual, params->rxqual_meas.lower_thresh); return 1; } diff --git a/tests/power/bs_power_loop_test.c b/tests/power/bs_power_loop_test.c index 06b53da..7301b7f 100644 --- a/tests/power/bs_power_loop_test.c +++ b/tests/power/bs_power_loop_test.c @@ -291,7 +291,7 @@ { .meas = { DL_MEAS_FULL(0, 63), DL_MEAS_SUB(0, PWR_TEST_RXLEV_TARGET) } }, }; -/* Verify that RxQual > 0 reduces the current attenuation value. */ +/* Verify that high RxQual reduces the current attenuation value. */ static const struct power_test_step TC_rxqual_ber[] = { /* Initial state: 16 dB, up to 20 dB */ { .type = PWR_TEST_ST_SET_STATE, @@ -301,25 +301,30 @@ { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET), .exp_txred = 16 }, { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET), .exp_txred = 16 }, - /* MS indicates target RxLev, but RxQual values > 0 */ - { .meas = DL_MEAS_FULL_SUB(7, PWR_TEST_RXLEV_TARGET), .exp_txred = 16 / 2 }, - { .meas = DL_MEAS_FULL_SUB(4, PWR_TEST_RXLEV_TARGET), .exp_txred = 16 / 4 }, - { .meas = DL_MEAS_FULL_SUB(1, PWR_TEST_RXLEV_TARGET), .exp_txred = 16 / 8 }, + /* MS indicates target RxLev, but RxQual values better than L_RXQUAL_XX_P=3 */ + { .meas = DL_MEAS_FULL_SUB(1, PWR_TEST_RXLEV_TARGET), .exp_txred = 16 }, + { .meas = DL_MEAS_FULL_SUB(2, PWR_TEST_RXLEV_TARGET), .exp_txred = 16 }, + { .meas = DL_MEAS_FULL_SUB(3, PWR_TEST_RXLEV_TARGET), .exp_txred = 16 }, - /* MS indicates target RxLev, and no bit errors anymore */ - { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET), .exp_txred = 16 / 8 }, - { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET), .exp_txred = 16 / 8 }, + /* MS indicates target RxLev, but RxQual values worse than L_RXQUAL_XX_P=3 */ + { .meas = DL_MEAS_FULL_SUB(4, PWR_TEST_RXLEV_TARGET + 0), .exp_txred = 16 - 4 }, + { .meas = DL_MEAS_FULL_SUB(5, PWR_TEST_RXLEV_TARGET + 4), .exp_txred = 16 - 8 }, + { .meas = DL_MEAS_FULL_SUB(6, PWR_TEST_RXLEV_TARGET + 8), .exp_txred = 16 - 12 }, + { .meas = DL_MEAS_FULL_SUB(7, PWR_TEST_RXLEV_TARGET + 12), .exp_txred = 16 - 16 }, /* max */ + { .meas = DL_MEAS_FULL_SUB(7, PWR_TEST_RXLEV_TARGET + 16), .exp_txred = 16 - 16 }, /* max */ - /* Reset state: 16 dB, up to 20 dB */ + /* MS indicates target RxLev, but no bit errors anymore => reducing Tx power */ + { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET + 16), .exp_txred = 2 }, + { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET + 14), .exp_txred = 4 }, + { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET + 12), .exp_txred = 6 }, + + /* Reset state: 0 dB, up to 20 dB */ { .type = PWR_TEST_ST_SET_STATE, - .state = { .current = 16, .max = 2 * 10 } }, + .state = { .current = 0, .max = 2 * 10 } }, - /* MS indicates target RxLev, but RxQual values > 0 again */ - { .meas = DL_MEAS_FULL_SUB(7, PWR_TEST_RXLEV_TARGET), .exp_txred = 16 / 2 }, - { .meas = DL_MEAS_FULL_SUB(7, PWR_TEST_RXLEV_TARGET), .exp_txred = 16 / 4 }, - { .meas = DL_MEAS_FULL_SUB(7, PWR_TEST_RXLEV_TARGET), .exp_txred = 16 / 8 }, - { .meas = DL_MEAS_FULL_SUB(7, PWR_TEST_RXLEV_TARGET), .exp_txred = 16 / 16 }, - { .meas = DL_MEAS_FULL_SUB(7, PWR_TEST_RXLEV_TARGET), .exp_txred = 16 / 32 }, + /* MS indicates target RxLev, but RxQual values worse than L_RXQUAL_XX_P=3 */ + { .meas = DL_MEAS_FULL_SUB(7, PWR_TEST_RXLEV_TARGET) }, /* max */ + { .meas = DL_MEAS_FULL_SUB(7, PWR_TEST_RXLEV_TARGET) }, /* max */ }; /* Verify that invalid and dummy SACCH blocks are ignored. */ diff --git a/tests/power/bs_power_loop_test.err b/tests/power/bs_power_loop_test.err index 20d2133..e7ba310 100644 --- a/tests/power/bs_power_loop_test.err +++ b/tests/power/bs_power_loop_test.err @@ -58,26 +58,29 @@ (bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, target -80 dBm, delta 0 dB) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL (bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, target -80 dBm, delta 0 dB) -(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(7), RXLEV-SUB(30), RXQUAL-SUB(7), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Reducing Downlink attenuation by half: 16 -> 8 dB due to RXQUAL 7 > 0 -(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(4), RXLEV-SUB(30), RXQUAL-SUB(4), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Reducing Downlink attenuation by half: 8 -> 4 dB due to RXQUAL 4 > 0 (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(1), RXLEV-SUB(30), RXQUAL-SUB(1), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Reducing Downlink attenuation by half: 4 -> 2 dB due to RXQUAL 1 > 0 -(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 2 dB (maximum 20 dB, target -80 dBm, delta 0 dB) -(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 2 dB (maximum 20 dB, target -80 dBm, delta 0 dB) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, target -80 dBm, delta 0 dB) +(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(2), RXLEV-SUB(30), RXQUAL-SUB(2), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, target -80 dBm, delta 0 dB) +(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(3), RXLEV-SUB(30), RXQUAL-SUB(3), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, target -80 dBm, delta 0 dB) +(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(4), RXLEV-SUB(30), RXQUAL-SUB(4), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Reducing Downlink attenuation: 16 -> 12 dB due to RxQual 4 worse than L_RXQUAL_XX_P 3 +(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(34), RXQUAL-FULL(5), RXLEV-SUB(34), RXQUAL-SUB(5), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Reducing Downlink attenuation: 12 -> 8 dB due to RxQual 5 worse than L_RXQUAL_XX_P 3 +(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(38), RXQUAL-FULL(6), RXLEV-SUB(38), RXQUAL-SUB(6), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Reducing Downlink attenuation: 8 -> 4 dB due to RxQual 6 worse than L_RXQUAL_XX_P 3 +(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(42), RXQUAL-FULL(7), RXLEV-SUB(42), RXQUAL-SUB(7), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Reducing Downlink attenuation: 4 -> 0 dB due to RxQual 7 worse than L_RXQUAL_XX_P 3 +(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(46), RXQUAL-FULL(7), RXLEV-SUB(46), RXQUAL-SUB(7), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(46), RXQUAL-FULL(0), RXLEV-SUB(46), RXQUAL-SUB(0), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 0 -> 2 dB (maximum 20 dB, target -80 dBm, delta -2 dB) +(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(44), RXQUAL-FULL(0), RXLEV-SUB(44), RXQUAL-SUB(0), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 2 -> 4 dB (maximum 20 dB, target -80 dBm, delta -2 dB) +(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(42), RXQUAL-FULL(0), RXLEV-SUB(42), RXQUAL-SUB(0), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 4 -> 6 dB (maximum 20 dB, target -80 dBm, delta -2 dB) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(7), RXLEV-SUB(30), RXQUAL-SUB(7), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Reducing Downlink attenuation by half: 16 -> 8 dB due to RXQUAL 7 > 0 (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(7), RXLEV-SUB(30), RXQUAL-SUB(7), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Reducing Downlink attenuation by half: 8 -> 4 dB due to RXQUAL 7 > 0 -(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(7), RXLEV-SUB(30), RXQUAL-SUB(7), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Reducing Downlink attenuation by half: 4 -> 2 dB due to RXQUAL 7 > 0 -(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(7), RXLEV-SUB(30), RXQUAL-SUB(7), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Reducing Downlink attenuation by half: 2 -> 1 dB due to RXQUAL 7 > 0 -(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(7), RXLEV-SUB(30), RXQUAL-SUB(7), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Reducing Downlink attenuation by half: 1 -> 0 dB due to RXQUAL 7 > 0 (bts=0,trx=0,ts=0,ss=0) The measurement results are not valid (bts=0,trx=0,ts=0,ss=0) The measurement results are not valid (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL diff --git a/tests/power/bs_power_loop_test.ok b/tests/power/bs_power_loop_test.ok index 804f5c6..19ec249 100644 --- a/tests/power/bs_power_loop_test.ok +++ b/tests/power/bs_power_loop_test.ok @@ -125,37 +125,46 @@ #02 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0) #02 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 1e 1e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 #02 lchan_bs_pwr_ctrl() -> BS power reduction: 16 -> 16 (expected 16) -#03 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(30), RXQUAL-FULL(7), RXLEV-SUB(30), RXQUAL-SUB(7) -#03 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 1e 1e 7e 00 00 00 00 00 00 00 00 00 00 00 00 00 -#03 lchan_bs_pwr_ctrl() -> BS power reduction: 16 -> 8 (expected 8) -#04 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(30), RXQUAL-FULL(4), RXLEV-SUB(30), RXQUAL-SUB(4) -#04 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 1e 1e 48 00 00 00 00 00 00 00 00 00 00 00 00 00 -#04 lchan_bs_pwr_ctrl() -> BS power reduction: 8 -> 4 (expected 4) -#05 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(30), RXQUAL-FULL(1), RXLEV-SUB(30), RXQUAL-SUB(1) -#05 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 1e 1e 12 00 00 00 00 00 00 00 00 00 00 00 00 00 -#05 lchan_bs_pwr_ctrl() -> BS power reduction: 4 -> 2 (expected 2) -#06 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0) -#06 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 1e 1e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -#06 lchan_bs_pwr_ctrl() -> BS power reduction: 2 -> 2 (expected 2) -#07 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0) -#07 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 1e 1e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -#07 lchan_bs_pwr_ctrl() -> BS power reduction: 2 -> 2 (expected 2) -#08 exec_power_step() <- State (re)set (current 16 dB, max 20 dB) -#09 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(30), RXQUAL-FULL(7), RXLEV-SUB(30), RXQUAL-SUB(7) -#09 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 1e 1e 7e 00 00 00 00 00 00 00 00 00 00 00 00 00 -#09 lchan_bs_pwr_ctrl() -> BS power reduction: 16 -> 8 (expected 8) -#10 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(30), RXQUAL-FULL(7), RXLEV-SUB(30), RXQUAL-SUB(7) -#10 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 1e 1e 7e 00 00 00 00 00 00 00 00 00 00 00 00 00 -#10 lchan_bs_pwr_ctrl() -> BS power reduction: 8 -> 4 (expected 4) -#11 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(30), RXQUAL-FULL(7), RXLEV-SUB(30), RXQUAL-SUB(7) -#11 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 1e 1e 7e 00 00 00 00 00 00 00 00 00 00 00 00 00 -#11 lchan_bs_pwr_ctrl() -> BS power reduction: 4 -> 2 (expected 2) -#12 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(30), RXQUAL-FULL(7), RXLEV-SUB(30), RXQUAL-SUB(7) -#12 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 1e 1e 7e 00 00 00 00 00 00 00 00 00 00 00 00 00 -#12 lchan_bs_pwr_ctrl() -> BS power reduction: 2 -> 1 (expected 1) -#13 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(30), RXQUAL-FULL(7), RXLEV-SUB(30), RXQUAL-SUB(7) -#13 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 1e 1e 7e 00 00 00 00 00 00 00 00 00 00 00 00 00 -#13 lchan_bs_pwr_ctrl() -> BS power reduction: 1 -> 0 (expected 0) +#03 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(30), RXQUAL-FULL(1), RXLEV-SUB(30), RXQUAL-SUB(1) +#03 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 1e 1e 12 00 00 00 00 00 00 00 00 00 00 00 00 00 +#03 lchan_bs_pwr_ctrl() -> BS power reduction: 16 -> 16 (expected 16) +#04 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(30), RXQUAL-FULL(2), RXLEV-SUB(30), RXQUAL-SUB(2) +#04 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 1e 1e 24 00 00 00 00 00 00 00 00 00 00 00 00 00 +#04 lchan_bs_pwr_ctrl() -> BS power reduction: 16 -> 16 (expected 16) +#05 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(30), RXQUAL-FULL(3), RXLEV-SUB(30), RXQUAL-SUB(3) +#05 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 1e 1e 36 00 00 00 00 00 00 00 00 00 00 00 00 00 +#05 lchan_bs_pwr_ctrl() -> BS power reduction: 16 -> 16 (expected 16) +#06 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(30), RXQUAL-FULL(4), RXLEV-SUB(30), RXQUAL-SUB(4) +#06 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 1e 1e 48 00 00 00 00 00 00 00 00 00 00 00 00 00 +#06 lchan_bs_pwr_ctrl() -> BS power reduction: 16 -> 12 (expected 12) +#07 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(34), RXQUAL-FULL(5), RXLEV-SUB(34), RXQUAL-SUB(5) +#07 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 22 22 5a 00 00 00 00 00 00 00 00 00 00 00 00 00 +#07 lchan_bs_pwr_ctrl() -> BS power reduction: 12 -> 8 (expected 8) +#08 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(38), RXQUAL-FULL(6), RXLEV-SUB(38), RXQUAL-SUB(6) +#08 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 26 26 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 +#08 lchan_bs_pwr_ctrl() -> BS power reduction: 8 -> 4 (expected 4) +#09 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(42), RXQUAL-FULL(7), RXLEV-SUB(42), RXQUAL-SUB(7) +#09 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 2a 2a 7e 00 00 00 00 00 00 00 00 00 00 00 00 00 +#09 lchan_bs_pwr_ctrl() -> BS power reduction: 4 -> 0 (expected 0) +#10 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(46), RXQUAL-FULL(7), RXLEV-SUB(46), RXQUAL-SUB(7) +#10 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 2e 2e 7e 00 00 00 00 00 00 00 00 00 00 00 00 00 +#10 lchan_bs_pwr_ctrl() -> BS power reduction: 0 -> 0 (expected 0) +#11 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(46), RXQUAL-FULL(0), RXLEV-SUB(46), RXQUAL-SUB(0) +#11 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 2e 2e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +#11 lchan_bs_pwr_ctrl() -> BS power reduction: 0 -> 2 (expected 2) +#12 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(44), RXQUAL-FULL(0), RXLEV-SUB(44), RXQUAL-SUB(0) +#12 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 2c 2c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +#12 lchan_bs_pwr_ctrl() -> BS power reduction: 2 -> 4 (expected 4) +#13 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(42), RXQUAL-FULL(0), RXLEV-SUB(42), RXQUAL-SUB(0) +#13 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 2a 2a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +#13 lchan_bs_pwr_ctrl() -> BS power reduction: 4 -> 6 (expected 6) +#14 exec_power_step() <- State (re)set (current 0 dB, max 20 dB) +#15 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(30), RXQUAL-FULL(7), RXLEV-SUB(30), RXQUAL-SUB(7) +#15 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 1e 1e 7e 00 00 00 00 00 00 00 00 00 00 00 00 00 +#15 lchan_bs_pwr_ctrl() -> BS power reduction: 0 -> 0 (expected 0) +#16 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(30), RXQUAL-FULL(7), RXLEV-SUB(30), RXQUAL-SUB(7) +#16 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 1e 1e 7e 00 00 00 00 00 00 00 00 00 00 00 00 00 +#16 lchan_bs_pwr_ctrl() -> BS power reduction: 0 -> 0 (expected 0) Test case verdict: SUCCESS Starting test case 'TC_inval_dummy' -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22080 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib3c740b9a0f3ba5dfb027e144dc13f456cb26ae2 Gerrit-Change-Number: 22080 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 14:00:35 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 11 Jan 2021 14:00:35 +0000 Subject: Change in osmo-ttcn3-hacks[master]: rlcmac: introduce initial support for NACC related messages In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22058 ) Change subject: rlcmac: introduce initial support for NACC related messages ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22058/1/library/RLCMAC_CSN1_Templates.ttcn File library/RLCMAC_CSN1_Templates.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22058/1/library/RLCMAC_CSN1_Templates.ttcn at 119 PS1, Line 119: bsic := 43, : rxlev := 23 : } > I'm not quite sure if the general RLC/MAC library code should provided defaults with hard-coded BSIC [?] Agree, this can be changed, I'm simply advancing and merging work here and there since I'm needing to add stuff in lots of places. We can keep it unmerged and I can rework it later, I also used it to get early feedback in order to make sure I don't need to change lots of stuff later. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22058 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I4d2f123479c34e6afffe0bc8d91409e6b0529a62 Gerrit-Change-Number: 22058 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 11 Jan 2021 14:00:35 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: laforge Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 14:10:22 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 11 Jan 2021 14:10:22 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Implement TLLI cache and use it for SUSPEND/RESUME In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21960 to look at the new patch set (#5). Change subject: gbproxy: Implement TLLI cache and use it for SUSPEND/RESUME ...................................................................... gbproxy: Implement TLLI cache and use it for SUSPEND/RESUME When routing a SUSPEND/RESUME we need to keep track of where it came from so we can send the (N)ACK back to the correct BSS. Use the TLLI which is present in both messages to cache and retrieve the correct BSS. A timer runs every two seconds and expires entries that are older than the timeout (hardcoded to 5 seconds for now). Related: SYS#4865, OS#4472 Change-Id: I42adf70f560d2bb358a9e1c7614281e8d2967568 --- M include/osmocom/sgsn/gb_proxy.h M src/gbproxy/gb_proxy.c M src/gbproxy/gb_proxy_peer.c 3 files changed, 175 insertions(+), 10 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/60/21960/5 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21960 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I42adf70f560d2bb358a9e1c7614281e8d2967568 Gerrit-Change-Number: 21960 Gerrit-PatchSet: 5 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 14:11:49 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 11 Jan 2021 14:11:49 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Implement TLLI cache and use it for SUSPEND/RESUME In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21960 ) Change subject: gbproxy: Implement TLLI cache and use it for SUSPEND/RESUME ...................................................................... Patch Set 5: Code-Review+2 (1 comment) Spelling fix, adding +2 from before https://gerrit.osmocom.org/c/osmo-sgsn/+/21960/4/src/gbproxy/gb_proxy_peer.c File src/gbproxy/gb_proxy_peer.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/21960/4/src/gbproxy/gb_proxy_peer.c at 261 PS4, Line 261: cacke > spelling Done -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21960 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I42adf70f560d2bb358a9e1c7614281e8d2967568 Gerrit-Change-Number: 21960 Gerrit-PatchSet: 5 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 11 Jan 2021 14:11:49 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Comment-In-Reply-To: laforge Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 14:18:36 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 11 Jan 2021 14:18:36 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Implement TLLI cache and use it for SUSPEND/RESUME In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21960 ) Change subject: gbproxy: Implement TLLI cache and use it for SUSPEND/RESUME ...................................................................... Patch Set 5: (2 comments) https://gerrit.osmocom.org/c/osmo-sgsn/+/21960/3/src/gbproxy/gb_proxy_peer.c File src/gbproxy/gb_proxy_peer.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/21960/3/src/gbproxy/gb_proxy_peer.c at 320 PS3, Line 320: expiry = now.tv_sec - cfg->tlli_cache.timeout; > I'd say one thing is not being able to specify subsecond timeouts, and the other is not taking subse [?] Done https://gerrit.osmocom.org/c/osmo-sgsn/+/21960/3/src/gbproxy/gb_proxy_peer.c at 323 PS3, Line 323: if (tlli_cache->tstamp.tv_sec < expiry) { > we don't really care about that kind of uncertainty Done -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21960 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I42adf70f560d2bb358a9e1c7614281e8d2967568 Gerrit-Change-Number: 21960 Gerrit-PatchSet: 5 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 11 Jan 2021 14:18:36 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: laforge Comment-In-Reply-To: pespin Comment-In-Reply-To: daniel Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 14:19:14 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 11 Jan 2021 14:19:14 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Implement TLLI cache and use it for SUSPEND/RESUME In-Reply-To: References: Message-ID: daniel has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21960 ) Change subject: gbproxy: Implement TLLI cache and use it for SUSPEND/RESUME ...................................................................... gbproxy: Implement TLLI cache and use it for SUSPEND/RESUME When routing a SUSPEND/RESUME we need to keep track of where it came from so we can send the (N)ACK back to the correct BSS. Use the TLLI which is present in both messages to cache and retrieve the correct BSS. A timer runs every two seconds and expires entries that are older than the timeout (hardcoded to 5 seconds for now). Related: SYS#4865, OS#4472 Change-Id: I42adf70f560d2bb358a9e1c7614281e8d2967568 --- M include/osmocom/sgsn/gb_proxy.h M src/gbproxy/gb_proxy.c M src/gbproxy/gb_proxy_peer.c 3 files changed, 175 insertions(+), 10 deletions(-) Approvals: daniel: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmocom/sgsn/gb_proxy.h b/include/osmocom/sgsn/gb_proxy.h index ad5bb27..04a3c4b 100644 --- a/include/osmocom/sgsn/gb_proxy.h +++ b/include/osmocom/sgsn/gb_proxy.h @@ -75,6 +75,14 @@ /* hash table of all gbproxy_cell */ DECLARE_HASHTABLE(cells, 8); + /* tlli<->nse cache used to map SUSPEND/RESUME (N)ACKS */ + struct { + DECLARE_HASHTABLE(entries, 10); + struct osmo_timer_list timer; + /* Time in seconds that the entries should be valid */ + uint8_t timeout; + } tlli_cache; + /* List of all SGSNs */ struct llist_head sgsns; @@ -163,6 +171,19 @@ } pool; }; +/* TLLI cache */ +struct gbproxy_tlli_cache_entry { + /* linked to gbproxy_config.tlli_cache */ + struct hlist_node list; + + /* TLLI of the entry */ + uint32_t tlli; + /* When was this entry last seen */ + time_t tstamp; + /* The Cell this TLLI was last seen */ + struct gbproxy_nse *nse; +}; + /* Convenience logging macros for NSE/BVC */ #define LOGPNSE_CAT(NSE, SUBSYS, LEVEL, FMT, ARGS...) \ LOGP(SUBSYS, LEVEL, "NSE(%05u/%s) " FMT, (NSE)->nsei, \ @@ -229,6 +250,12 @@ void gbproxy_nse_free(struct gbproxy_nse *nse); struct gbproxy_nse *gbproxy_nse_by_nsei(struct gbproxy_config *cfg, uint16_t nsei, uint32_t flags); struct gbproxy_nse *gbproxy_nse_by_nsei_or_new(struct gbproxy_config *cfg, uint16_t nsei, bool sgsn_facing); +struct gbproxy_nse *gbproxy_nse_by_tlli(struct gbproxy_config *cfg, uint32_t tlli); + +/* TLLI cache */ +void gbproxy_tlli_cache_update(struct gbproxy_nse *nse, uint32_t tlli); +void gbproxy_tlli_cache_remove(struct gbproxy_config *cfg, uint32_t tlli); +int gbproxy_tlli_cache_cleanup(struct gbproxy_config *cfg); /* SGSN handling */ struct gbproxy_sgsn *gbproxy_sgsn_alloc(struct gbproxy_config *cfg, uint16_t nsei, const char *name); diff --git a/src/gbproxy/gb_proxy.c b/src/gbproxy/gb_proxy.c index 34cff31..91324dd 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -890,11 +890,20 @@ return osmo_fsm_inst_dispatch(from_bvc->fi, BSSGP_BVCFSM_E_RX_UNBLOCK, msg); case BSSGP_PDUT_SUSPEND: case BSSGP_PDUT_RESUME: - /* FIXME: Implement TLLI Cache. Every SUSPEND/RESUME we must - * take record of the TLLI->BVC mapping so we can map - * back from TLLI->BVC when the SUSPEND/RESUME-ACK - * arrives. Cache should have a timeout of 1-3 seconds - * and the ACK should explicitly delete entries. */ + { + struct gbproxy_sgsn *sgsn; + + tlli = osmo_load32be(TLVP_VAL(&tp, BSSGP_IE_TLLI)); + sgsn = gbproxy_select_sgsn(nse->cfg, &tlli); + if (!sgsn) { + LOGP(DGPRS, LOGL_ERROR, "Could not find any SGSN for TLLI, dropping message!\n"); + rc = -EINVAL; + break; + } + + gbproxy_tlli_cache_update(nse, tlli); + + rc = gbprox_relay2nse(msg, sgsn->nse, 0); #if 0 /* TODO: Validate the RAI for consistency with the RAI * we expect for any of the BVC within this BSS side NSE */ @@ -902,6 +911,7 @@ gsm48_parse_ra(&raid, from_bvc->ra); #endif break; + } case BSSGP_PDUT_STATUS: /* FIXME: inspect the erroneous PDU IE (if any) and check * if we can extract a TLLI/RNI to route it to the correct SGSN */ @@ -1149,11 +1159,22 @@ case BSSGP_PDUT_SUSPEND_NACK: case BSSGP_PDUT_RESUME_ACK: case BSSGP_PDUT_RESUME_NACK: - /* FIXME: handle based on TLLI cache. The RA-ID is not a unique - * criterion, so we have to rely on the TLLI->BVC state created - * while processing the SUSPEND/RESUME in uplink */ - /* FIXME: route to SGSN baed on NRI derived from TLLI */ + { + struct gbproxy_nse *nse_peer; + uint32_t tlli = osmo_load32be(TLVP_VAL(&tp, BSSGP_IE_TLLI)); + + nse_peer = gbproxy_nse_by_tlli(cfg, tlli); + if (!nse_peer) { + LOGPNSE(nse, LOGL_ERROR, "Rx %s: Cannot find NSE\n", pdut_name); + /* TODO: Counter */ + return bssgp_tx_status(BSSGP_CAUSE_INV_MAND_INF, NULL, msg); + } + /* Delete the entry after we're done */ + gbproxy_tlli_cache_remove(cfg, tlli); + LOGPNSE(nse_peer, LOGL_DEBUG, "Rx %s: forwarding\n", pdut_name); + gbprox_relay2nse(msg, nse_peer, ns_bvci); break; + } case BSSGP_PDUT_SGSN_INVOKE_TRACE: case BSSGP_PDUT_OVERLOAD: LOGPNSE(nse, LOGL_DEBUG, "Rx %s: broadcasting\n", pdut_name); @@ -1375,6 +1396,15 @@ gbproxy_init_config(cfg); } +static void tlli_cache_cleanup(void *data) +{ + struct gbproxy_config *cfg = data; + gbproxy_tlli_cache_cleanup(cfg); + + /* TODO: Disable timer when cache is empty */ + osmo_timer_schedule(&cfg->tlli_cache.timer, 2, 0); +} + int gbproxy_init_config(struct gbproxy_config *cfg) { struct timespec tp; @@ -1382,12 +1412,18 @@ /* by default we advertise 100% of the BSS-side capacity to _each_ SGSN */ cfg->pool.bvc_fc_ratio = 100; cfg->pool.null_nri_ranges = osmo_nri_ranges_alloc(cfg); + /* TODO: Make configurable */ + cfg->tlli_cache.timeout = 5; hash_init(cfg->bss_nses); hash_init(cfg->sgsn_nses); hash_init(cfg->cells); + hash_init(cfg->tlli_cache.entries); INIT_LLIST_HEAD(&cfg->sgsns); + osmo_timer_setup(&cfg->tlli_cache.timer, tlli_cache_cleanup, cfg); + osmo_timer_schedule(&cfg->tlli_cache.timer, 2, 0); + cfg->ctrg = rate_ctr_group_alloc(tall_sgsn_ctx, &global_ctrg_desc, 0); if (!cfg->ctrg) { LOGP(DGPRS, LOGL_ERROR, "Cannot allocate global counter group!\n"); @@ -1397,4 +1433,4 @@ osmo_fsm_log_timeouts(true); return 0; -} +} \ No newline at end of file diff --git a/src/gbproxy/gb_proxy_peer.c b/src/gbproxy/gb_proxy_peer.c index d2ddfc1..104902b 100644 --- a/src/gbproxy/gb_proxy_peer.c +++ b/src/gbproxy/gb_proxy_peer.c @@ -192,6 +192,17 @@ return NULL; } +static inline struct gbproxy_tlli_cache_entry *_get_tlli_entry(struct gbproxy_config *cfg, uint32_t tlli) +{ + struct gbproxy_tlli_cache_entry *cache_entry; + + hash_for_each_possible(cfg->tlli_cache.entries, cache_entry, list, tlli) { + if (cache_entry->tlli == tlli) + return cache_entry; + } + return NULL; +} + struct gbproxy_cell *gbproxy_cell_by_bvci_or_new(struct gbproxy_config *cfg, uint16_t bvci) { struct gbproxy_cell *cell; @@ -245,6 +256,83 @@ return false; } + +/*********************************************************************** + * TLLI cache + ***********************************************************************/ + +void gbproxy_tlli_cache_update(struct gbproxy_nse *nse, uint32_t tlli) +{ + struct gbproxy_config *cfg = nse->cfg; + struct timespec now; + struct gbproxy_tlli_cache_entry *cache_entry = _get_tlli_entry(cfg, tlli); + + osmo_clock_gettime(CLOCK_MONOTONIC, &now); + + if (cache_entry) { + /* Update the entry if it already exists */ + cache_entry->nse = nse; + cache_entry->tstamp = now.tv_sec; + return; + } + + cache_entry = talloc_zero(cfg, struct gbproxy_tlli_cache_entry); + cache_entry->tlli = tlli; + cache_entry->nse = nse; + cache_entry->tstamp = now.tv_sec; + hash_add(cfg->tlli_cache.entries, &cache_entry->list, cache_entry->tlli); +} + +static void _tlli_cache_remove_nse(struct gbproxy_nse *nse) { + uint i; + struct gbproxy_config *cfg = nse->cfg; + struct gbproxy_tlli_cache_entry *tlli_cache; + struct hlist_node *tmp; + + hash_for_each_safe(cfg->tlli_cache.entries, i, tmp, tlli_cache, list) { + if (tlli_cache->nse == nse) { + hash_del(&tlli_cache->list); + talloc_free(tlli_cache); + } + } +} + +void gbproxy_tlli_cache_remove(struct gbproxy_config *cfg, uint32_t tlli) +{ + struct gbproxy_tlli_cache_entry *tlli_cache; + struct hlist_node *tmp; + + hash_for_each_possible_safe(cfg->tlli_cache.entries, tlli_cache, tmp, list, tlli) { + if (tlli_cache->tlli == tlli) { + hash_del(&tlli_cache->list); + talloc_free(tlli_cache); + return; + } + } +} + +int gbproxy_tlli_cache_cleanup(struct gbproxy_config *cfg) +{ + int i, count = 0; + struct gbproxy_tlli_cache_entry *tlli_cache; + struct hlist_node *tmp; + struct timespec now; + time_t expiry; + + osmo_clock_gettime(CLOCK_MONOTONIC, &now); + expiry = now.tv_sec - cfg->tlli_cache.timeout; + + hash_for_each_safe(cfg->tlli_cache.entries, i, tmp, tlli_cache, list) { + if (tlli_cache->tstamp < expiry) { + count++; + LOGP(DGPRS, LOGL_NOTICE, "Cache entry for TLLI %08x expired, removing\n", tlli_cache->tlli); + hash_del(&tlli_cache->list); + talloc_free(tlli_cache); + } + } + return count; +} + /*********************************************************************** * NSE - NS Entity ***********************************************************************/ @@ -286,6 +374,8 @@ LOGPNSE_CAT(nse, DOBJ, LOGL_INFO, "NSE Destroying\n"); hash_del(&nse->list); + /* Clear the tlli_cache from this NSE */ + _tlli_cache_remove_nse(nse); hash_for_each_safe(nse->bvcs, i, tmp, bvc, list) gbproxy_bvc_free(bvc); @@ -343,6 +433,18 @@ return nse; } +struct gbproxy_nse *gbproxy_nse_by_tlli(struct gbproxy_config *cfg, uint32_t tlli) +{ + struct gbproxy_tlli_cache_entry *tlli_cache; + + hash_for_each_possible(cfg->tlli_cache.entries, tlli_cache, list, tlli) { + if (tlli_cache->tlli == tlli) + return tlli_cache->nse; + } + return NULL; +} + + /*********************************************************************** * SGSN - Serving GPRS Support Node ***********************************************************************/ -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21960 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I42adf70f560d2bb358a9e1c7614281e8d2967568 Gerrit-Change-Number: 21960 Gerrit-PatchSet: 5 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 14:20:52 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 11 Jan 2021 14:20:52 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Fix race during shutdown In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22050 ) Change subject: Fix race during shutdown ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22050 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I98928f24745125642225681d13bf2e78691e9747 Gerrit-Change-Number: 22050 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Mon, 11 Jan 2021 14:20:52 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 14:20:56 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 11 Jan 2021 14:20:56 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Fix race during shutdown In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22050 ) Change subject: Fix race during shutdown ...................................................................... Fix race during shutdown To avoid a dynamic test case error we need to prevent messages arriving on unconnected ports. Waiting some time before stopping components ensures that any messages "in flight" will be delivered to the port before the component is shutdown and disconnected. It would be far nicer to mark a testresult "final" and ignore such errors on shutdown, but I don't think it's possible in TTCN3. This fixes TC_fc_bvc on my laptop which consistently failed with a DTE before. Change-Id: I98928f24745125642225681d13bf2e78691e9747 Related: SYS#5115, OS#4518 --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 5 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index 00f6e2e..62daaf4 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -526,6 +526,11 @@ function f_cleanup() runs on test_CT { var integer i; + /* To avoid a dynamic test case error we need to prevent messages arriving on unconnected + * ports. Waiting here ensures that any messages "in flight" will be delivered to the port + * before the component is shutdown and disconnected. */ + f_sleep(0.2); + for (i := 0; i < lengthof(mp_nsconfig_sgsn); i := i+1) { f_destroy_gb(g_sgsn[i]); } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22050 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I98928f24745125642225681d13bf2e78691e9747 Gerrit-Change-Number: 22050 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 14:21:18 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 11 Jan 2021 14:21:18 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: abuse gsm48_encode_ra() to encode TAC In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21949 ) Change subject: gprs_bssgp: abuse gsm48_encode_ra() to encode TAC ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21949 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I986552aa52cf38b1c5290d2e5cd3ff2d1c36a4e5 Gerrit-Change-Number: 21949 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 11 Jan 2021 14:21:18 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 14:21:21 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 11 Jan 2021 14:21:21 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: abuse gsm48_encode_ra() to encode TAC In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21949 ) Change subject: gprs_bssgp: abuse gsm48_encode_ra() to encode TAC ...................................................................... gprs_bssgp: abuse gsm48_encode_ra() to encode TAC Both LAC and TAC take 2 octets and follow MCC/MNC fields on the wire. We abuse gsm48_encode_ra() for encoding of MCC/MNC, but it can also be abused to encode TAC in bssgp_create_rim_ri(). There is no need to encode '0000'O and then override it with osmo_store16be(). Change-Id: I986552aa52cf38b1c5290d2e5cd3ff2d1c36a4e5 --- M src/gb/gprs_bssgp.c 1 file changed, 2 insertions(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/gb/gprs_bssgp.c b/src/gb/gprs_bssgp.c index bf0e821..530c702 100644 --- a/src/gb/gprs_bssgp.c +++ b/src/gb/gprs_bssgp.c @@ -402,10 +402,11 @@ .mcc = ri->eutran.tai.mcc, .mnc = ri->eutran.tai.mnc, .mnc_3_digits = ri->eutran.tai.mnc_3_digits, + /* TAC is encoded in the same way as LAC */ + .lac = ri->eutran.tai.tac, }; gsm48_encode_ra((struct gsm48_ra_id *)buf, &raid_temp); - osmo_store16be(ri->eutran.tai.tac, buf + 3); OSMO_ASSERT(ri->eutran.global_enb_id_len <= sizeof(ri->eutran.global_enb_id)); memcpy(buf + 5, ri->eutran.global_enb_id, -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21949 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I986552aa52cf38b1c5290d2e5cd3ff2d1c36a4e5 Gerrit-Change-Number: 21949 Gerrit-PatchSet: 4 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 14:22:07 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 11 Jan 2021 14:22:07 +0000 Subject: Change in libosmocore[master]: Intoduce Packet Switch CGI In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22013 ) Change subject: Intoduce Packet Switch CGI ...................................................................... Patch Set 6: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22013 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If48f412c32e8e5a3e604a78d12b74787a4786374 Gerrit-Change-Number: 22013 Gerrit-PatchSet: 6 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 11 Jan 2021 14:22:07 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 14:22:21 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 11 Jan 2021 14:22:21 +0000 Subject: Change in libosmocore[master]: Intoduce Packet Switch CGI In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22013 ) Change subject: Intoduce Packet Switch CGI ...................................................................... Intoduce Packet Switch CGI This structure is needed in order to identify a given cell within the BSS during RIM transactions. The naming was made up by myself since I couldn't find any naming reference for this kind of data (RAI + CI). Since LAI + CI = CGI, then RAI + CI = CGI-PS osmo_rai_name2 family of functions get a "2" suffix due to already existing functions handling struct struct gprs_ra_id in gsm48.h Change-Id: If48f412c32e8e5a3e604a78d12b74787a4786374 --- M include/osmocom/gsm/gsm0808_utils.h M include/osmocom/gsm/gsm23003.h M include/osmocom/gsm/protocol/gsm_08_08.h M src/gsm/gsm0808_utils.c M src/gsm/gsm23003.c M src/gsm/libosmogsm.map 6 files changed, 136 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved dexter: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/include/osmocom/gsm/gsm0808_utils.h b/include/osmocom/gsm/gsm0808_utils.h index 59db6ed..76e9064 100644 --- a/include/osmocom/gsm/gsm0808_utils.h +++ b/include/osmocom/gsm/gsm0808_utils.h @@ -44,6 +44,7 @@ uint16_t ci; struct osmo_location_area_id lai_and_lac; uint16_t lac; + struct osmo_cell_global_id_ps global_ps; }; /*! Parsed representation of Cell Identifier IE (3GPP TS 48.008 3.2.2.17) */ diff --git a/include/osmocom/gsm/gsm23003.h b/include/osmocom/gsm/gsm23003.h index 69f00f6..fbe0ca0 100644 --- a/include/osmocom/gsm/gsm23003.h +++ b/include/osmocom/gsm/gsm23003.h @@ -30,6 +30,11 @@ uint16_t cell_identity; }; +struct osmo_cell_global_id_ps { + struct osmo_routing_area_id rai; + uint16_t cell_identity; +}; + /*! Bitmask of items contained in a struct osmo_cell_global_id. * See also gsm0808_cell_id_to_cgi(). */ @@ -37,6 +42,7 @@ OSMO_CGI_PART_PLMN = 1, OSMO_CGI_PART_LAC = 2, OSMO_CGI_PART_CI = 4, + OSMO_CGI_PART_RAC = 8, }; /* Actually defined in 3GPP TS 48.008 3.2.2.27 Cell Identifier List, @@ -117,10 +123,17 @@ const char *osmo_lai_name(const struct osmo_location_area_id *lai); char *osmo_lai_name_buf(char *buf, size_t buf_len, const struct osmo_location_area_id *lai); char *osmo_lai_name_c(const void *ctx, const struct osmo_location_area_id *lai); +const char *osmo_rai_name2(const struct osmo_routing_area_id *rai); +char *osmo_rai_name2_buf(char *buf, size_t buf_len, const struct osmo_routing_area_id *rai); +char *osmo_rai_name2_c(const void *ctx, const struct osmo_routing_area_id *rai); const char *osmo_cgi_name(const struct osmo_cell_global_id *cgi); const char *osmo_cgi_name2(const struct osmo_cell_global_id *cgi); char *osmo_cgi_name_buf(char *buf, size_t buf_len, const struct osmo_cell_global_id *cgi); char *osmo_cgi_name_c(const void *ctx, const struct osmo_cell_global_id *cgi); +const char *osmo_cgi_ps_name(const struct osmo_cell_global_id_ps *cgi_ps); +const char *osmo_cgi_ps_name2(const struct osmo_cell_global_id_ps *cgi_ps); +char *osmo_cgi_ps_name_buf(char *buf, size_t buf_len, const struct osmo_cell_global_id_ps *cgi_ps); +char *osmo_cgi_ps_name_c(const void *ctx, const struct osmo_cell_global_id_ps *cgi_ps); const char *osmo_gummei_name(const struct osmo_gummei *gummei); char *osmo_gummei_name_buf(char *buf, size_t buf_len, const struct osmo_gummei *gummei); char *osmo_gummei_name_c(const void *ctx, const struct osmo_gummei *gummei); diff --git a/include/osmocom/gsm/protocol/gsm_08_08.h b/include/osmocom/gsm/protocol/gsm_08_08.h index 1390f0e..fe7776b 100644 --- a/include/osmocom/gsm/protocol/gsm_08_08.h +++ b/include/osmocom/gsm/protocol/gsm_08_08.h @@ -25,6 +25,9 @@ CELL_IDENT_UTRAN_PLMN_LAC_RNC = 8, CELL_IDENT_UTRAN_RNC = 9, CELL_IDENT_UTRAN_LAC_RNC = 10, + + /* Not in 03.03 nor 08.08 */ + CELL_IDENT_WHOLE_GLOBAL_PS = 11, /* CGI with + RAC */ }; /* Keep this misnamed CELL_IDENT for API backwards compatibility (see OS#3124). */ #define CELL_IDENT_LAI_AND_LAC CELL_IDENT_LAI diff --git a/src/gsm/gsm0808_utils.c b/src/gsm/gsm0808_utils.c index 6bf771f..c1b0a00 100644 --- a/src/gsm/gsm0808_utils.c +++ b/src/gsm/gsm0808_utils.c @@ -784,6 +784,8 @@ case CELL_IDENT_BSS: case CELL_IDENT_NO_CELL: return 0; + case CELL_IDENT_WHOLE_GLOBAL_PS: + return 8; default: return -EINVAL; } @@ -828,6 +830,13 @@ case CELL_IDENT_NO_CELL: /* Does not have any list items */ break; + case CELL_IDENT_WHOLE_GLOBAL_PS: + if (len < 8) + return -EINVAL; + decode_lai(buf, (struct osmo_location_area_id *)&out->global_ps.rai); /* rai contains lai + non-decoded rac */ + out->global_ps.rai.rac = *(buf + sizeof(struct gsm48_loc_area_id)); + out->global_ps.cell_identity = osmo_load16be(buf + sizeof(struct gsm48_loc_area_id) + 1); + break; default: /* Remaining cell identification types are not implemented. */ return -EINVAL; @@ -869,6 +878,15 @@ case CELL_IDENT_NO_CELL: /* Does not have any list items */ break; + case CELL_IDENT_WHOLE_GLOBAL_PS: { + const struct osmo_cell_global_id_ps *id = &u->global_ps; + struct gsm48_loc_area_id lai; + gsm48_generate_lai2(&lai, &id->rai.lac); + memcpy(msgb_put(msg, sizeof(lai)), &lai, sizeof(lai)); + memcpy(msgb_put(msg, 1), &id->rai.rac, 1); + msgb_put_u16(msg, id->cell_identity); + break; + } default: /* Support for other identifier list types is not implemented. */ OSMO_ASSERT(false); @@ -1592,6 +1610,8 @@ return snprintf(buf, buflen, "%s", osmo_lai_name(&u->lai_and_lac)); case CELL_IDENT_WHOLE_GLOBAL: return snprintf(buf, buflen, "%s", osmo_cgi_name(&u->global)); + case CELL_IDENT_WHOLE_GLOBAL_PS: + return snprintf(buf, buflen, "%s", osmo_cgi_ps_name(&u->global_ps)); default: /* For CELL_IDENT_BSS and CELL_IDENT_NO_CELL, just print the discriminator. * Same for kinds we have no string representation of yet. */ @@ -1613,6 +1633,11 @@ *dst = u->global; return; + case CELL_IDENT_WHOLE_GLOBAL_PS: + dst->lai = u->global_ps.rai.lac; + dst->cell_identity = u->global_ps.cell_identity; + return; + case CELL_IDENT_LAC_AND_CI: dst->lai.lac = u->lac_and_ci.lac; dst->cell_identity = u->lac_and_ci.ci; @@ -1805,6 +1830,11 @@ *cgi = cid->id.global; return OSMO_CGI_PART_PLMN | OSMO_CGI_PART_LAC | OSMO_CGI_PART_CI; + case CELL_IDENT_WHOLE_GLOBAL_PS: + cgi->lai = cid->id.global_ps.rai.lac; + cgi->cell_identity = cid->id.global_ps.cell_identity; + return OSMO_CGI_PART_PLMN | OSMO_CGI_PART_LAC | OSMO_CGI_PART_CI; + case CELL_IDENT_LAC_AND_CI: cgi->lai.lac = cid->id.lac_and_ci.lac; cgi->cell_identity = cid->id.lac_and_ci.ci; @@ -1844,6 +1874,7 @@ { CELL_IDENT_UTRAN_PLMN_LAC_RNC, "UTRAN-PLMN-LAC-RNC" }, { CELL_IDENT_UTRAN_RNC, "UTRAN-RNC" }, { CELL_IDENT_UTRAN_LAC_RNC, "UTRAN-LAC-RNC" }, + { CELL_IDENT_WHOLE_GLOBAL_PS, "CGI-PS"}, { 0, NULL } }; diff --git a/src/gsm/gsm23003.c b/src/gsm/gsm23003.c index e20afcb..ae498fa 100644 --- a/src/gsm/gsm23003.c +++ b/src/gsm/gsm23003.c @@ -247,6 +247,43 @@ return osmo_lai_name_buf(buf, 32, lai); } +/*! Return MCC-MNC-LAC-RAC as string, in caller-provided output buffer. + * \param[out] buf caller-allocated output buffer + * \param[in] buf_len size of buf in bytes + * \param[in] rai RAI to encode, the rac member is ignored. + * \returns buf + */ +char *osmo_rai_name2_buf(char *buf, size_t buf_len, const struct osmo_routing_area_id *rai) +{ + char plmn[16]; + snprintf(buf, buf_len, "%s-%u-%u", osmo_plmn_name_buf(plmn, sizeof(plmn), + &rai->lac.plmn), rai->lac.lac, rai->rac); + return buf; +} + +/*! Return MCC-MNC-LAC-RAC as string, in a static buffer. + * \param[in] rai RAI to encode, the rac member is ignored. + * \returns Static string buffer. + */ +const char *osmo_rai_name2(const struct osmo_routing_area_id *rai) +{ + static __thread char buf[32]; + return osmo_rai_name2_buf(buf, sizeof(buf), rai); +} + +/*! Return MCC-MNC-LAC-RAC as string, in a talloc-allocated output buffer. + * \param[in] ctx talloc context from which to allocate output buffer + * \param[in] rai RAI to encode, the rac member is ignored. + * \returns string representation of lai in dynamically allocated buffer. + */ +char *osmo_rai_name2_c(const void *ctx, const struct osmo_routing_area_id *rai) +{ + char *buf = talloc_size(ctx, 32); + if (!buf) + return NULL; + return osmo_rai_name2_buf(buf, 32, rai); +} + /*! Return MCC-MNC-LAC-CI as string, in caller-provided output buffer. * \param[out] buf caller-allocated output buffer * \param[in] buf_len size of buf in bytes @@ -291,6 +328,50 @@ return osmo_cgi_name_buf(buf, 32, cgi); } +/*! Return MCC-MNC-LAC-RAC-CI as string, in caller-provided output buffer. + * \param[out] buf caller-allocated output buffer + * \param[in] buf_len size of buf in bytes + * \param[in] cgi_ps CGI-PS to encode. + * \returns buf + */ +char *osmo_cgi_ps_name_buf(char *buf, size_t buf_len, const struct osmo_cell_global_id_ps *cgi_ps) +{ + snprintf(buf, buf_len, "%s-%u", osmo_rai_name2(&cgi_ps->rai), cgi_ps->cell_identity); + return buf; +} + +/*! Return MCC-MNC-LAC-RAC-CI as string, in a static buffer. + * \param[in] cgi_ps CGI-PS to encode. + * \returns Static string buffer. + */ +const char *osmo_cgi_ps_name(const struct osmo_cell_global_id_ps *cgi_ps) +{ + static __thread char buf[32]; + return osmo_cgi_ps_name_buf(buf, sizeof(buf), cgi_ps); +} + +/*! Same as osmo_cgi_ps_name(), but uses a different static buffer. + * Useful for printing two distinct CGI-PSs in the same printf format. + * \param[in] cgi CGI-PS to encode. + * \returns Static string buffer. + */ +const char *osmo_cgi_ps_name2(const struct osmo_cell_global_id_ps *cgi_ps) +{ + static __thread char buf[32]; + return osmo_cgi_ps_name_buf(buf, sizeof(buf), cgi_ps); +} + +/*! Return MCC-MNC-LAC-RAC-CI as string, in a talloc-allocated output buffer. + * \param[in] ctx talloc context from which to allocate output buffer + * \param[in] cgi_ps CGI-PS to encode. + * \returns string representation of CGI in dynamically-allocated buffer. + */ +char *osmo_cgi_ps_name_c(const void *ctx, const struct osmo_cell_global_id_ps *cgi_ps) +{ + char *buf = talloc_size(ctx, 32); + return osmo_cgi_ps_name_buf(buf, 32, cgi_ps); +} + static void to_bcd(uint8_t *bcd, uint16_t val) { bcd[2] = val % 10; diff --git a/src/gsm/libosmogsm.map b/src/gsm/libosmogsm.map index bcded1c..eceb1c1 100644 --- a/src/gsm/libosmogsm.map +++ b/src/gsm/libosmogsm.map @@ -412,10 +412,17 @@ osmo_rai_name; osmo_rai_name_buf; osmo_rai_name_c; +osmo_rai_name2; +osmo_rai_name2_buf; +osmo_rai_name2_c; osmo_cgi_name; osmo_cgi_name_buf; osmo_cgi_name_c; osmo_cgi_name2; +osmo_cgi_ps_name; +osmo_cgi_ps_name_buf; +osmo_cgi_ps_name_c; +osmo_cgi_ps_name2; osmo_gummei_name; osmo_gummei_name_buf; osmo_gummei_name_c; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22013 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If48f412c32e8e5a3e604a78d12b74787a4786374 Gerrit-Change-Number: 22013 Gerrit-PatchSet: 7 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 14:25:29 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 11 Jan 2021 14:25:29 +0000 Subject: Change in osmo-bsc[master]: manual: Location Services: clarify BSC side address In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22081 ) Change subject: manual: Location Services: clarify BSC side address ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/22081/1/doc/manuals/chapters/smlc.adoc File doc/manuals/chapters/smlc.adoc: https://gerrit.osmocom.org/c/osmo-bsc/+/22081/1/doc/manuals/chapters/smlc.adoc at 65 PS1, Line 65: For the BSC side, it suffices to configure a point-code in the `cs7` section, : so that the BSC typically uses the same point-code on A and Lb interfaces do we really support that? Yes, we *should*, but thinking of how osmo-stp works, I'm currently not sure if you can have two M3UA "peers" for the same point code but with different SSN. For SUA that would be more logical, but M3UA traditionally routes just on point codes, not on SSN, AFAIR. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22081 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I9b06ac7a2f2cb34cabfcec10af761322b8e962fb Gerrit-Change-Number: 22081 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 11 Jan 2021 14:25:29 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 14:26:49 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 11 Jan 2021 14:26:49 +0000 Subject: Change in osmo-bsc[master]: hodec2: fix candidate choices in congestion check In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21979 ) Change subject: hodec2: fix candidate choices in congestion check ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21979 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I2704899c85c35dfd4eba43468452483f40016ca2 Gerrit-Change-Number: 21979 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 11 Jan 2021 14:26:49 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 14:27:04 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 11 Jan 2021 14:27:04 +0000 Subject: Change in osmo-bsc[master]: handover_test: include ack-chan in expect-chan In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21980 ) Change subject: handover_test: include ack-chan in expect-chan ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21980 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ic9f1e94b12334fed6bdce35beef94d8e2968f3ad Gerrit-Change-Number: 21980 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 11 Jan 2021 14:27:04 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 14:27:24 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 11 Jan 2021 14:27:24 +0000 Subject: Change in osmo-bsc[master]: handover_test: safeguard against unhandled chan req In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21981 ) Change subject: handover_test: safeguard against unhandled chan req ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21981 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ib0d5c4647af23e6729cc19e98b1870cdde2fe994 Gerrit-Change-Number: 21981 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 11 Jan 2021 14:27:24 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 14:27:41 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 11 Jan 2021 14:27:41 +0000 Subject: Change in osmo-bsc[master]: handover_test: saner chan act handling In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21982 ) Change subject: handover_test: saner chan act handling ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21982 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: If06587058798d96afca86358030dc0c1c3c6df39 Gerrit-Change-Number: 21982 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 11 Jan 2021 14:27:41 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 14:34:36 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 11 Jan 2021 14:34:36 +0000 Subject: Change in osmo-bsc[master]: handover_test: saner ho request handling In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21983 ) Change subject: handover_test: saner ho request handling ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21983 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I0a664f24d7dd3d7b254b29675fdc49cd70a1a480 Gerrit-Change-Number: 21983 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 11 Jan 2021 14:34:36 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 14:35:10 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 11 Jan 2021 14:35:10 +0000 Subject: Change in docker-playground[master]: debian-stretch-jenkins, osmo-gsm-tester: add osmo-ci References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/22094 ) Change subject: debian-stretch-jenkins, osmo-gsm-tester: add osmo-ci ...................................................................... debian-stretch-jenkins, osmo-gsm-tester: add osmo-ci Clone osmo-ci.git, and install all files from scripts/* to /usr/local/bin. Together with osmo-ci I45bd7ea56849dab839a98cfd52806f7cd288094e, this will make overwriting PATH obsolete. Related: OS#4911 Change-Id: I0820f13cd740f7d4a8999d279cef6ae293a67d81 --- M debian-stretch-jenkins/Dockerfile M osmo-gsm-tester/Dockerfile 2 files changed, 16 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/94/22094/1 diff --git a/debian-stretch-jenkins/Dockerfile b/debian-stretch-jenkins/Dockerfile index 6455a21..1f87445 100644 --- a/debian-stretch-jenkins/Dockerfile +++ b/debian-stretch-jenkins/Dockerfile @@ -148,6 +148,14 @@ cd osmo-python-tests3 && \ python3 setup.py clean build install +# Install osmo-ci.git/scripts to /usr/local/bin +ADD http://git.osmocom.org/osmo-ci/patch /tmp/osmo-ci-commit +RUN git clone https://git.osmocom.org/osmo-ci osmo-ci && \ + cp -v $(find osmo-ci/scripts \ + -maxdepth 1 \ + -type f ) \ + /usr/local/bin + # Set a UTF-8 locale RUN sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen && \ dpkg-reconfigure --frontend=noninteractive locales && \ diff --git a/osmo-gsm-tester/Dockerfile b/osmo-gsm-tester/Dockerfile index 675d7df..0503fc6 100644 --- a/osmo-gsm-tester/Dockerfile +++ b/osmo-gsm-tester/Dockerfile @@ -135,6 +135,14 @@ (git symbolic-ref -q HEAD && git reset --hard origin/$OSMO_GSM_TESTER_BRANCH || exit 1); \ git rev-parse --abbrev-ref HEAD && git rev-parse HEAD +# Install osmo-ci.git/scripts to /usr/local/bin +ADD http://git.osmocom.org/osmo-ci/patch /tmp/osmo-ci-commit +RUN git clone https://git.osmocom.org/osmo-ci osmo-ci && \ + cp -v $(find osmo-ci/scripts \ + -maxdepth 1 \ + -type f ) \ + /usr/local/bin + # Copy several scripts and permission for osmo-gsm-tester: RUN mkdir -p /usr/local/bin/ && cp osmo-gsm-tester/utils/bin/* /usr/local/bin/ RUN mkdir -p /etc/sudoers.d/ && cp osmo-gsm-tester/utils/sudoers.d/* /etc/sudoers.d/ -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22094 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I0820f13cd740f7d4a8999d279cef6ae293a67d81 Gerrit-Change-Number: 22094 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 14:35:24 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 11 Jan 2021 14:35:24 +0000 Subject: Change in osmo-bsc[master]: handover_test: vty echo In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21984 ) Change subject: handover_test: vty echo ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21984 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ifc307a7d0b7e3caa355f8cee88778762b529ad71 Gerrit-Change-Number: 21984 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 11 Jan 2021 14:35:24 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 14:35:28 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 11 Jan 2021 14:35:28 +0000 Subject: Change in osmo-bsc[master]: handover_test: show a bug: add test_congestion_no_oscillation.ho_vty In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21985 ) Change subject: handover_test: show a bug: add test_congestion_no_oscillation.ho_vty ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21985 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Idf88b4cf3d2f92f5560d73dae9e59af39d0494c0 Gerrit-Change-Number: 21985 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 11 Jan 2021 14:35:28 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 14:35:34 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 11 Jan 2021 14:35:34 +0000 Subject: Change in osmo-bsc[master]: hodec2: fix candidate choices in congestion check In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21979 ) Change subject: hodec2: fix candidate choices in congestion check ...................................................................... hodec2: fix candidate choices in congestion check Fix flaws in picking a candidate for congestion resolution, shown in recently added tests. - For TCH/H->TCH/F upgrading, do not favor moving to a weaker neighbor cell. - When comparing dynamic timeslots on the same cell, favor a dynamic timeslot that frees an entire dyn TS even though the target rxlev differs. Do not separate the passes for inter-cell and intra-cell candidates: before, the inter-cell pass would already pick a candidate and start handover, even though the subsequent intra-cell pass would have revealed a better candidate. Join the intra-cell considerations into pick_better_lchan_to_move(). The intra-cell pass was separate, because it would find the *weakest* current rxlev, to give a TCH/H to TCH/F upgrade to the currently weakest lchan. Instead of the separate pass for weakest rxlev, in addition to the target cell's rxlev, also consider the rxlev *change* in pick_better_lchan_to_move(): For candidates that do not change the rxlev (usually those that stay in the same cell) and that upgrade to TCH/F, favor a candidate with weaker current rxlev. Completely revisit the conditions in pick_better_lchan_to_move() to yield the desired prioritization of candidate preferences. In three handover tests, remove the "FAIL" comments and adjust to now expect the actually desired behavior. Related: SYS#5032 Change-Id: I2704899c85c35dfd4eba43468452483f40016ca2 --- M src/osmo-bsc/handover_decision_2.c M tests/handover/test_amr_tch_h_to_f_congestion_two_cells.ho_vty M tests/handover/test_congestion_intra_vs_inter_cell.ho_vty M tests/handover/test_dyn_ts_favor_moving_half_used_tch_h.ho_vty 4 files changed, 81 insertions(+), 169 deletions(-) Approvals: laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/osmo-bsc/handover_decision_2.c b/src/osmo-bsc/handover_decision_2.c index eb72e11..1ab92f5 100644 --- a/src/osmo-bsc/handover_decision_2.c +++ b/src/osmo-bsc/handover_decision_2.c @@ -1384,11 +1384,6 @@ return count; } -static bool is_intra_cell(const struct ho_candidate *c) -{ - return c->bts && (c->lchan->ts->trx->bts == c->bts); -} - static bool is_upgrade_to_tchf(const struct ho_candidate *c, uint8_t for_requirement) { return c->lchan @@ -1399,46 +1394,78 @@ /* Given two candidates, pick the one that should rather be moved during handover. * Return the better candidate in out-parameters best_cand and best_avg_db. */ -static struct ho_candidate *pick_better_lchan_to_move(bool want_highest_db, - struct ho_candidate *a, - struct ho_candidate *b) +static struct ho_candidate *pick_better_lchan_to_move(struct ho_candidate *a, + struct ho_candidate *b, + uint8_t for_requirement) { - int a_rxlev; - int b_rxlev; + int a_rxlev_change; + int b_rxlev_change; + struct ho_candidate *ret = a; if (!a) return b; if (!b) return a; - a_rxlev = a->rxlev_target + a->rxlev_afs_bias; - b_rxlev = b->rxlev_target + b->rxlev_afs_bias; + a_rxlev_change = a->rxlev_target - a->rxlev_current; + b_rxlev_change = b->rxlev_target - b->rxlev_current; - if (want_highest_db && a_rxlev < b_rxlev) - return b; - if (!want_highest_db && a_rxlev > b_rxlev) + /* Typically, a congestion related handover reduces RXLEV. If there is a candidate that actually improves RXLEV, + * prefer that, because it pre-empts a likely handover due to measurement results later. Also favor unchanged + * RXLEV over a loss of RXLEV (favor staying within the same cell over moving to a worse cell). */ + if (a_rxlev_change >= 0 && a_rxlev_change > b_rxlev_change) + return a; + if (b_rxlev_change >= 0 && b_rxlev_change > a_rxlev_change) return b; - /* The two lchans have identical ratings, prefer picking a dynamic timeslot: free PDCH and allow more timeslot - * type flexibility for further congestion resolution. */ - if (lchan_is_on_dynamic_ts(b->lchan)) { - /* If both are dynamic, prefer one that completely (or to a higher degree) frees its timeslot. */ - if (lchan_is_on_dynamic_ts(a->lchan) - && ts_usage_count(a->lchan->ts) < ts_usage_count(b->lchan->ts)) + if (a_rxlev_change < 0 && b_rxlev_change < 0) { + /* For handover that reduces RXLEV, favor the highest resulting RXLEV, AFS bias applied. */ + int a_rxlev = a->rxlev_target + a->rxlev_afs_bias; + int b_rxlev = b->rxlev_target + b->rxlev_afs_bias; + + if (a_rxlev > b_rxlev) return a; - /* If both equally satisfy these preferences, it does not matter which one is picked. - * Give slight preference to moving later dyn TS, so that a free dyn TS may group with following static - * PDCH, though this depends on how the user configured the TS -- not harmful to do so anyway. */ - return b; + if (b_rxlev > a_rxlev) + return b; + /* There is no target RXLEV difference between the two candidates. Let other factors influence the + * choice. */ } - return a; + /* Prefer picking a dynamic timeslot: free PDCH and allow more timeslot type flexibility for further + * congestion resolution. */ + if (lchan_is_on_dynamic_ts(b->lchan)) { + unsigned int ac, bc; + + if (!lchan_is_on_dynamic_ts(a->lchan)) + return b; + + /* Both are dynamic timeslots. Prefer one that completely (or to a higher degree) frees its + * timeslot. */ + ac = ts_usage_count(a->lchan->ts); + bc = ts_usage_count(b->lchan->ts); + if (bc < ac) + return b; + if (ac < bc) + return a; + /* (If both are dynamic timeslots, favor moving the later dynamic timeslot. That is a vague preference + * for later dynamic TS to become PDCH and join up with plain PDCH that follow it -- not actually clear + * whether that helps, and depends on user's TS config. No harm done either way.) */ + ret = b; + } + + /* When upgrading TCH/H to TCH/F, favor moving a TCH/H with lower current rxlev, because presumably that + * one benefits more from a higher bandwidth. */ + if (is_upgrade_to_tchf(a, for_requirement) && is_upgrade_to_tchf(b, for_requirement)) { + if (b->rxlev_current < a->rxlev_current) + return b; + if (a->rxlev_current < b->rxlev_current) + return a; + } + + return ret; } static struct ho_candidate *pick_best_candidate(struct ho_candidate *clist, int clist_len, - bool want_highest_db, - bool omit_intra_cell_upgrade_to_tchf, - bool only_intra_cell_upgrade_to_tchf, uint8_t for_requirement) { struct ho_candidate *result = NULL; @@ -1446,8 +1473,6 @@ for (i = 0; i < clist_len; i++) { struct ho_candidate *c = &clist[i]; - bool intra_cell; - bool upgrade_to_tch_f; /* For multiple passes of congestion resolution, already handovered candidates are marked by lchan = * NULL. (though at the time of writing, multiple passes of congestion resolution are DISABLED.) */ @@ -1461,23 +1486,13 @@ if (!(c->requirements & for_requirement)) continue; - intra_cell = is_intra_cell(c); - upgrade_to_tch_f = is_upgrade_to_tchf(c, for_requirement); - - if (only_intra_cell_upgrade_to_tchf - && !(intra_cell && upgrade_to_tch_f)) - continue; - if (omit_intra_cell_upgrade_to_tchf - && (intra_cell && upgrade_to_tch_f)) - continue; - /* improve AHS */ - if (upgrade_to_tch_f) + if (is_upgrade_to_tchf(c, for_requirement)) c->rxlev_afs_bias = ho_get_hodec2_afs_bias_rxlev(c->bts->ho); else c->rxlev_afs_bias = 0; - result = pick_better_lchan_to_move(want_highest_db, result, c); + result = pick_better_lchan_to_move(result, c, for_requirement); } return result; @@ -1643,11 +1658,7 @@ /* TODO: attempt inter-BSC HO if no local cells qualify, and rely on the remote BSS to * deny receiving the handover if it also considers itself congested. Maybe do that only * when the cell is absolutely full, i.e. not only min-free-slots. (x) */ - best_cand = pick_best_candidate(clist, candidates, - /* want_highest_db */ true, - /* omit_intra_cell_upgrade_to_tchf */ true, - /* only_intra_cell_upgrade_to_tchf */ false, - REQUIREMENT_B_MASK); + best_cand = pick_best_candidate(clist, candidates, REQUIREMENT_B_MASK); if (best_cand) { any_ho = 1; LOGPHOCAND(best_cand, LOGL_DEBUG, "Best candidate: RX level %d%s\n", @@ -1676,54 +1687,12 @@ } #if 0 -next_b2: -#endif - /* For upgrading TCH/H to TCH/F within the same cell, we want to pick the *lowest* average rxlev: for staying - * within the same cell, give the MS with the worst service more bandwidth. When staying within the same cell, - * the target avg rxlev is identical to the source lchan rxlev, so it is fine to use the same avg rxlev value, - * but simply pick the lowest one. - * Upgrading TCH/H channels obviously only applies when TCH/H is actually congested. */ - if (tchh_congestion > 0) - best_cand = pick_best_candidate(clist, candidates, - /* want_highest_db */ false, - /* omit_intra_cell_upgrade_to_tchf */ false, - /* only_intra_cell_upgrade_to_tchf */ true, - REQUIREMENT_B_MASK); - if (best_cand) { - any_ho = 1; - LOGPHOCAND(best_cand, LOGL_INFO, "Worst candidate: RX level %d from TCH/H -> TCH/F%s\n", - rxlev2dbm(best_cand->rxlev_target), - best_cand->rxlev_afs_bias ? " (applied AHS -> AFS rxlev bias)" : ""); - trigger_ho(best_cand, best_cand->requirements & REQUIREMENT_B_MASK); -#if 0 - /* if there is still congestion, mark lchan as deleted - * and redo this process */ - tchh_congestion--; - if (tchh_congestion > 0) { - delete_lchan = best_cand->lchan; - best_cand = NULL; - goto next_b2; - } -#else - /* must exit here, because triggering handover/assignment - * will cause change in requirements. more check for this - * bts is performed in the next iteration. - */ -#endif - goto exit; - } - -#if 0 next_c1: #endif /* Select best candidate that balances congestion. * Again no remote BSS. * Again no TCH/H -> F upgrades within the same cell. */ - best_cand = pick_best_candidate(clist, candidates, - /* want_highest_db */ true, - /* omit_intra_cell_upgrade_to_tchf */ true, - /* only_intra_cell_upgrade_to_tchf */ false, - REQUIREMENT_C_MASK); + best_cand = pick_best_candidate(clist, candidates, REQUIREMENT_C_MASK); if (best_cand) { any_ho = 1; LOGPHOCAND(best_cand, LOGL_INFO, "Best candidate: RX level %d%s\n", @@ -1754,46 +1723,6 @@ LOGPHOBTS(bts, LOGL_DEBUG, "Did not find a best candidate that fulfills requirement C" " (omitting change from AHS to AFS)\n"); -#if 0 -next_c2: -#endif - /* Look for upgrading TCH/H to TCH/F within the same cell, which balances congestion, again upgrade the TCH/H - * lchan that has the worst reception: */ - if (tchh_congestion > 0) - best_cand = pick_best_candidate(clist, candidates, - /* want_highest_db */ false, - /* omit_intra_cell_upgrade_to_tchf */ false, - /* only_intra_cell_upgrade_to_tchf */ true, - REQUIREMENT_C_MASK); - - /* perform handover, if there is a candidate */ - if (best_cand) { - any_ho = 1; - LOGPHOCAND(best_cand, LOGL_INFO, "Worst candidate: RX level %d from TCH/H -> TCH/F%s\n", - rxlev2dbm(best_cand->rxlev_target), - best_cand->rxlev_afs_bias ? " (applied AHS -> AFS rxlev bias)" : ""); - trigger_ho(best_cand, best_cand->requirements & REQUIREMENT_C_MASK); -#if 0 - /* if there is still congestion, mark lchan as deleted - * and redo this process */ - tchh_congestion--; - if (tchh_congestion > 0) { - delete_lchan = best_cand->lchan; - best_cand = NULL; - goto next_c2; - } -#else - /* must exit here, because triggering handover/assignment - * will cause change in requirements. more check for this - * bts is performed in the next iteration. - */ -#endif - goto exit; - } - LOGPHOBTS(bts, LOGL_DEBUG, "Did not find a worst candidate that fulfills requirement C," - " selecting candidates that change from AHS to AFS only\n"); - - exit: /* free array */ talloc_free(clist); diff --git a/tests/handover/test_amr_tch_h_to_f_congestion_two_cells.ho_vty b/tests/handover/test_amr_tch_h_to_f_congestion_two_cells.ho_vty index eaaeabd..7cbcd4b 100644 --- a/tests/handover/test_amr_tch_h_to_f_congestion_two_cells.ho_vty +++ b/tests/handover/test_amr_tch_h_to_f_congestion_two_cells.ho_vty @@ -12,12 +12,6 @@ meas-rep repeat 10 lchan 1 0 4 0 rxlev 30 rxqual 0 ta 0 neighbors 20 expect-no-chan congestion-check -# FAIL: bts 1 has better rxlev, so the call should stay in bts 1. Instead, a handover to bts 0 happens. -expect-ho from lchan 1 0 4 0 to lchan 0 0 1 0 -expect-ts-use trx 0 0 states * TCH/F - - - - - * -expect-ts-use trx 1 0 states * - - - - - - * -# the fail continues: later the better rxqual does *another* ho back to the original cell -meas-rep lchan 0 0 1 0 rxlev 20 rxqual 0 ta 0 neighbors 30 -expect-ho from lchan 0 0 1 0 to lchan 1 0 1 0 +expect-ho from lchan 1 0 4 0 to lchan 1 0 1 0 expect-ts-use trx 0 0 states * - - - - - - * expect-ts-use trx 1 0 states * TCH/F - - - - - * diff --git a/tests/handover/test_congestion_intra_vs_inter_cell.ho_vty b/tests/handover/test_congestion_intra_vs_inter_cell.ho_vty index f0f8e2a..d93f56c 100644 --- a/tests/handover/test_congestion_intra_vs_inter_cell.ho_vty +++ b/tests/handover/test_congestion_intra_vs_inter_cell.ho_vty @@ -12,11 +12,9 @@ expect-no-chan congestion-check -# FAIL! moving to a weaker neighbor, should move to TCH/F in current cell instead. -# FAIL! should favor upgrading the weaker TS 6. -expect-ho from lchan 0 0 5 0 to lchan 1 0 1 0 -expect-ts-use trx 0 0 states * - - - - - TCH/H- * -expect-ts-use trx 1 0 states * TCH/F - - - - - * +expect-ho from lchan 0 0 6 0 to lchan 0 0 1 0 +expect-ts-use trx 0 0 states * TCH/F - - - TCH/H- - * +expect-ts-use trx 1 0 states * - - - - - - * # clear measurements for next run set-ts-use trx 0 0 states * - - - - - - * @@ -29,10 +27,9 @@ expect-no-chan congestion-check -# FAIL! moving to a weaker neighbor, should move to TCH/F in current cell instead. -expect-ho from lchan 0 0 5 0 to lchan 1 0 1 0 -expect-ts-use trx 0 0 states * - - - - - TCH/H- * -expect-ts-use trx 1 0 states * TCH/F - - - - - * +expect-ho from lchan 0 0 5 0 to lchan 0 0 1 0 +expect-ts-use trx 0 0 states * TCH/F - - - - TCH/H- * +expect-ts-use trx 1 0 states * - - - - - - * # clear measurements for next run set-ts-use trx 0 0 states * - - - - - - * @@ -45,11 +42,9 @@ expect-no-chan congestion-check -# FAIL! moving to a weaker neighbor, should move to TCH/F in current cell instead. -# FAIL! should favor upgrading the weaker TS 5. -expect-ho from lchan 0 0 6 0 to lchan 1 0 1 0 -expect-ts-use trx 0 0 states * - - - - TCH/H- - * -expect-ts-use trx 1 0 states * TCH/F - - - - - * +expect-ho from lchan 0 0 5 0 to lchan 0 0 1 0 +expect-ts-use trx 0 0 states * TCH/F - - - - TCH/H- * +expect-ts-use trx 1 0 states * - - - - - - * # clear measurements for next run set-ts-use trx 0 0 states * - - - - - - * @@ -62,10 +57,9 @@ expect-no-chan congestion-check -# FAIL! moving to a weaker neighbor, should move to TCH/F in current cell instead. -expect-ho from lchan 0 0 5 0 to lchan 1 0 1 0 -expect-ts-use trx 0 0 states * - - - - - TCH/H- * -expect-ts-use trx 1 0 states * TCH/F - - - - - * +expect-ho from lchan 0 0 5 0 to lchan 0 0 1 0 +expect-ts-use trx 0 0 states * TCH/F - - - - TCH/H- * +expect-ts-use trx 1 0 states * - - - - - - * # clear measurements for next run set-ts-use trx 0 0 states * - - - - - - * @@ -78,11 +72,9 @@ expect-no-chan congestion-check -# FAIL! moving to a weaker neighbor, should move to TCH/F in current cell instead. -# FAIL! should favor upgrading the weaker TS 5. -expect-ho from lchan 0 0 6 0 to lchan 1 0 1 0 -expect-ts-use trx 0 0 states * - - - - TCH/H- - * -expect-ts-use trx 1 0 states * TCH/F - - - - - * +expect-ho from lchan 0 0 5 0 to lchan 0 0 1 0 +expect-ts-use trx 0 0 states * TCH/F - - - - TCH/H- * +expect-ts-use trx 1 0 states * - - - - - - * # clear measurements for next run set-ts-use trx 0 0 states * - - - - - - * @@ -95,11 +87,9 @@ expect-no-chan congestion-check -# FAIL! moving to a weaker neighbor, should move to TCH/F in current cell instead. -# FAIL! should favor upgrading the weaker TS 6. -expect-ho from lchan 0 0 5 0 to lchan 1 0 1 0 -expect-ts-use trx 0 0 states * - - - - - TCH/H- * -expect-ts-use trx 1 0 states * TCH/F - - - - - * +expect-ho from lchan 0 0 6 0 to lchan 0 0 1 0 +expect-ts-use trx 0 0 states * TCH/F - - - TCH/H- - * +expect-ts-use trx 1 0 states * - - - - - - * # clear measurements for next run set-ts-use trx 0 0 states * - - - - - - * diff --git a/tests/handover/test_dyn_ts_favor_moving_half_used_tch_h.ho_vty b/tests/handover/test_dyn_ts_favor_moving_half_used_tch_h.ho_vty index 9d88c86..794bbef 100644 --- a/tests/handover/test_dyn_ts_favor_moving_half_used_tch_h.ho_vty +++ b/tests/handover/test_dyn_ts_favor_moving_half_used_tch_h.ho_vty @@ -41,6 +41,5 @@ meas-rep lchan 0 0 4 0 rxlev 32 rxqual 0 ta 0 meas-rep lchan 0 0 4 1 rxlev 31 rxqual 0 ta 0 congestion-check -# FAIL: should still pick lchan 0 0 3 0! -expect-ho from lchan 0 0 4 1 to lchan 0 0 1 0 -expect-ts-use trx 0 0 states * TCH/F TCH/HH TCH/H- TCH/H- pdch - - +expect-ho from lchan 0 0 3 0 to lchan 0 0 1 0 +expect-ts-use trx 0 0 states * TCH/F TCH/HH pdch TCH/HH pdch - - -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21979 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I2704899c85c35dfd4eba43468452483f40016ca2 Gerrit-Change-Number: 21979 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 14:35:35 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 11 Jan 2021 14:35:35 +0000 Subject: Change in osmo-bsc[master]: handover_test: include ack-chan in expect-chan In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21980 ) Change subject: handover_test: include ack-chan in expect-chan ...................................................................... handover_test: include ack-chan in expect-chan Change-Id: Ic9f1e94b12334fed6bdce35beef94d8e2968f3ad --- M tests/handover/handover_test.c M tests/handover/test_penalty_timer.ho_vty 2 files changed, 0 insertions(+), 17 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/tests/handover/handover_test.c b/tests/handover/handover_test.c index 3c9b4ff..e3ccb64 100644 --- a/tests/handover/handover_test.c +++ b/tests/handover/handover_test.c @@ -971,11 +971,6 @@ gsm_lchan_name(lchan), gsm_lchan_name(chan_req_lchan)); exit(1); } -} - -static void _ack_chan_activ(struct gsm_lchan *lchan) -{ - fprintf(stderr, "- Acknowledging channel request on %s\n", gsm_lchan_name(lchan)); got_ho_req = 0; send_chan_act_ack(lchan, 1); } @@ -1005,15 +1000,6 @@ return CMD_SUCCESS; } -DEFUN(ack_chan, ack_chan_cmd, - "ack-chan", - "ACK a previous Channel Request\n") -{ - OSMO_ASSERT(got_chan_req); - _ack_chan_activ(chan_req_lchan); - return CMD_SUCCESS; -} - DEFUN(expect_ho_req, expect_ho_req_cmd, "expect-ho-req " LCHAN_ARGS, "Expect a handover of a given lchan\n" @@ -1067,7 +1053,6 @@ struct gsm_lchan *to = parse_lchan_args(argv+4); _expect_chan_activ(to); - _ack_chan_activ(to); _expect_ho_req(from); send_ho_detect(to); send_ho_complete(to, true); @@ -1152,7 +1137,6 @@ install_element(CONFIG_NODE, &congestion_check_cmd); install_element(CONFIG_NODE, &expect_no_chan_cmd); install_element(CONFIG_NODE, &expect_chan_cmd); - install_element(CONFIG_NODE, &ack_chan_cmd); install_element(CONFIG_NODE, &expect_ho_req_cmd); install_element(CONFIG_NODE, &ho_detection_cmd); install_element(CONFIG_NODE, &ho_complete_cmd); diff --git a/tests/handover/test_penalty_timer.ho_vty b/tests/handover/test_penalty_timer.ho_vty index be25c20..7b0d266 100644 --- a/tests/handover/test_penalty_timer.ho_vty +++ b/tests/handover/test_penalty_timer.ho_vty @@ -7,7 +7,6 @@ set-ts-use trx 0 0 states * TCH/F - - - - - - meas-rep lchan 0 0 1 0 rxlev 20 rxqual 0 ta 0 neighbors 30 expect-chan lchan 1 0 1 0 -ack-chan expect-ho-req lchan 0 0 1 0 ho-failed expect-ts-use trx 0 0 states * TCH/F - - - - - - -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21980 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ic9f1e94b12334fed6bdce35beef94d8e2968f3ad Gerrit-Change-Number: 21980 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 14:35:36 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 11 Jan 2021 14:35:36 +0000 Subject: Change in osmo-bsc[master]: handover_test: safeguard against unhandled chan req In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21981 ) Change subject: handover_test: safeguard against unhandled chan req ...................................................................... handover_test: safeguard against unhandled chan req Change-Id: Ib0d5c4647af23e6729cc19e98b1870cdde2fe994 --- M tests/handover/handover_test.c 1 file changed, 7 insertions(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/tests/handover/handover_test.c b/tests/handover/handover_test.c index e3ccb64..3747bd8 100644 --- a/tests/handover/handover_test.c +++ b/tests/handover/handover_test.c @@ -704,8 +704,14 @@ switch (dh->c.msg_type) { case RSL_MT_CHAN_ACTIV: rc = parse_chan_act(lchan, dh->data); - if (rc == 0) + if (rc == 0) { + if (got_chan_req) { + fprintf(stderr, "Test script is erratic: a channel is requested" + " while a previous channel request is still unhandled\n"); + exit(1); + } got_chan_req = 1; + } break; case RSL_MT_RF_CHAN_REL: rc = parse_chan_rel(lchan, dh->data); -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21981 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ib0d5c4647af23e6729cc19e98b1870cdde2fe994 Gerrit-Change-Number: 21981 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 14:35:36 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 11 Jan 2021 14:35:36 +0000 Subject: Change in osmo-bsc[master]: handover_test: saner chan act handling In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21982 ) Change subject: handover_test: saner chan act handling ...................................................................... handover_test: saner chan act handling Do not clear pending chan act requests when sending a measurement report or starting congestion check. This potentially left channel activations unnoticed and dangling, e.g. for repeated meas-rep. A typical test should indeed handle pending channel activation requests before potentially triggering more, safeguard against this by asserting that only one channel activation is pending. Place unhandled channel activations in new_chan_req pointer, moving to last_chan_req upon handling it. Instead of the got_chan_req flag and additional chan_req_lchan pointer, just keep a last_chan_req pointer. Change-Id: If06587058798d96afca86358030dc0c1c3c6df39 --- M tests/handover/handover_test.c 1 file changed, 27 insertions(+), 46 deletions(-) Approvals: laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/tests/handover/handover_test.c b/tests/handover/handover_test.c index 3747bd8..eddf753 100644 --- a/tests/handover/handover_test.c +++ b/tests/handover/handover_test.c @@ -525,20 +525,8 @@ /* parse channel request */ -static int got_chan_req = 0; -static struct gsm_lchan *chan_req_lchan = NULL; - -static int parse_chan_act(struct gsm_lchan *lchan, uint8_t *data) -{ - chan_req_lchan = lchan; - return 0; -} - -static int parse_chan_rel(struct gsm_lchan *lchan, uint8_t *data) -{ - chan_req_lchan = lchan; - return 0; -} +static struct gsm_lchan *new_chan_req = NULL; +static struct gsm_lchan *last_chan_req = NULL; /* parse handover request */ @@ -703,35 +691,30 @@ switch (dh->c.msg_type) { case RSL_MT_CHAN_ACTIV: - rc = parse_chan_act(lchan, dh->data); - if (rc == 0) { - if (got_chan_req) { - fprintf(stderr, "Test script is erratic: a channel is requested" - " while a previous channel request is still unhandled\n"); - exit(1); - } - got_chan_req = 1; + if (new_chan_req) { + fprintf(stderr, "Test script is erratic: a channel is requested" + " while a previous channel request is still unhandled\n"); + exit(1); } + new_chan_req = lchan; break; case RSL_MT_RF_CHAN_REL: - rc = parse_chan_rel(lchan, dh->data); - if (rc == 0) - send_chan_act_ack(chan_req_lchan, 0); + send_chan_act_ack(lchan, 0); /* send dyn TS back to PDCH if unused */ - switch (chan_req_lchan->ts->pchan_on_init) { + switch (lchan->ts->pchan_on_init) { case GSM_PCHAN_TCH_F_TCH_H_PDCH: case GSM_PCHAN_TCH_F_PDCH: - switch (chan_req_lchan->ts->pchan_is) { + switch (lchan->ts->pchan_is) { case GSM_PCHAN_TCH_H: - other_lchan = &chan_req_lchan->ts->lchan[ - (chan_req_lchan == &chan_req_lchan->ts->lchan[0])? + other_lchan = &lchan->ts->lchan[ + (lchan == &lchan->ts->lchan[0])? 1 : 0]; if (lchan_state_is(other_lchan, LCHAN_ST_ESTABLISHED)) break; /* else fall thru */ case GSM_PCHAN_TCH_F: - chan_req_lchan->ts->pchan_is = GSM_PCHAN_PDCH; + lchan->ts->pchan_is = GSM_PCHAN_PDCH; break; default: break; @@ -895,7 +878,6 @@ fprintf(stderr, " * Neighbor cell #%d, actual BTS %d: rxlev=%d\n", i, neighbor_bts_nr, nm[i].rxlev); } - got_chan_req = 0; gen_meas_rep(lc, rxlev, rxqual, ta, argc, nm); return CMD_SUCCESS; } @@ -943,7 +925,6 @@ "Trigger a congestion check\n") { fprintf(stderr, "- Triggering congestion check\n"); - got_chan_req = 0; hodec2_congestion_check(bsc_gsmnet); return CMD_SUCCESS; } @@ -953,8 +934,8 @@ "Expect that no channel request was sent from BSC to any cell\n") { fprintf(stderr, "- Expecting no channel request\n"); - if (got_chan_req) { - fprintf(stderr, " * Got channel request at %s\n", gsm_lchan_name(chan_req_lchan)); + if (new_chan_req) { + fprintf(stderr, " * Got channel request at %s\n", gsm_lchan_name(new_chan_req)); fprintf(stderr, "Test failed, because channel was requested\n"); exit(1); } @@ -966,18 +947,19 @@ { fprintf(stderr, "- Expecting channel request at %s\n", gsm_lchan_name(lchan)); - if (!got_chan_req) { + if (!new_chan_req) { fprintf(stderr, "Test failed, because no channel was requested\n"); exit(1); } - fprintf(stderr, " * Got channel request at %s\n", gsm_lchan_name(chan_req_lchan)); - if (lchan != chan_req_lchan) { + last_chan_req = new_chan_req; + new_chan_req = NULL; + fprintf(stderr, " * Got channel request at %s\n", gsm_lchan_name(last_chan_req)); + if (lchan != last_chan_req) { fprintf(stderr, "Test failed, because channel was requested on a different lchan than expected\n" "expected: %s got: %s\n", - gsm_lchan_name(lchan), gsm_lchan_name(chan_req_lchan)); + gsm_lchan_name(lchan), gsm_lchan_name(last_chan_req)); exit(1); } - got_ho_req = 0; send_chan_act_ack(lchan, 1); } @@ -1019,7 +1001,7 @@ "ho-detect", "Send Handover Detection to the most recent HO target lchan\n") { - if (!got_chan_req) { + if (!last_chan_req) { fprintf(stderr, "Cannot ack handover/assignment, because no chan request\n"); exit(1); } @@ -1027,7 +1009,7 @@ fprintf(stderr, "Cannot ack handover/assignment, because no ho request\n"); exit(1); } - send_ho_detect(chan_req_lchan); + send_ho_detect(last_chan_req); return CMD_SUCCESS; } @@ -1035,7 +1017,7 @@ "ho-complete", "Send Handover Complete for the most recent HO target lchan\n") { - if (!got_chan_req) { + if (!last_chan_req) { fprintf(stderr, "Cannot ack handover/assignment, because no chan request\n"); exit(1); } @@ -1043,7 +1025,7 @@ fprintf(stderr, "Cannot ack handover/assignment, because no ho request\n"); exit(1); } - send_ho_complete(chan_req_lchan, true); + send_ho_complete(last_chan_req, true); lchan_release_ack(ho_req_lchan); return CMD_SUCCESS; } @@ -1070,14 +1052,13 @@ "ho-failed", "Fail the most recent handover request\n") { - if (!got_chan_req) { + if (!last_chan_req) { fprintf(stderr, "Cannot fail handover, because no chan request\n"); exit(1); } - got_chan_req = 0; got_ho_req = 0; send_ho_complete(ho_req_lchan, false); - lchan_release_ack(chan_req_lchan); + lchan_release_ack(last_chan_req); return CMD_SUCCESS; } -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21982 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: If06587058798d96afca86358030dc0c1c3c6df39 Gerrit-Change-Number: 21982 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 14:35:36 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 11 Jan 2021 14:35:36 +0000 Subject: Change in osmo-bsc[master]: handover_test: saner ho request handling In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21983 ) Change subject: handover_test: saner ho request handling ...................................................................... handover_test: saner ho request handling Similar to chan act handling, clarify and safeguard HO Request handling. Ensure that each HO Request is handled by the test script. Place unhandled HO Requests in new_ho_req pointer, moving to last_ho_req upon handling it. Instead of the got_ho_req flag and additional ho_req_lchan pointer, just keep a last_ho_req pointer. Drop a bunch of utterly useless RSL message parsing code. Fix unhandled HO Request in test_max_handovers.ho_vty. Change-Id: I0a664f24d7dd3d7b254b29675fdc49cd70a1a480 --- M tests/handover/handover_test.c M tests/handover/test_max_handovers.ho_vty 2 files changed, 29 insertions(+), 50 deletions(-) Approvals: laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/tests/handover/handover_test.c b/tests/handover/handover_test.c index eddf753..167f1ce 100644 --- a/tests/handover/handover_test.c +++ b/tests/handover/handover_test.c @@ -528,42 +528,8 @@ static struct gsm_lchan *new_chan_req = NULL; static struct gsm_lchan *last_chan_req = NULL; -/* parse handover request */ - -static int got_ho_req = 0; -static struct gsm_lchan *ho_req_lchan = NULL; - -static int parse_ho_command(struct gsm_lchan *lchan, uint8_t *data, int len) -{ - struct gsm48_hdr *gh = (struct gsm48_hdr *) data; - struct gsm48_ho_cmd *ho = (struct gsm48_ho_cmd *) gh->data; - int arfcn; - struct gsm_bts *neigh; - - switch (gh->msg_type) { - case GSM48_MT_RR_HANDO_CMD: - arfcn = (ho->cell_desc.arfcn_hi << 8) | ho->cell_desc.arfcn_lo; - - /* look up trx. since every dummy bts uses different arfcn and - * only one trx, it is simple */ - llist_for_each_entry(neigh, &bsc_gsmnet->bts_list, list) { - if (neigh->c0->arfcn != arfcn) - continue; - ho_req_lchan = lchan; - return 0; - } - break; - case GSM48_MT_RR_ASS_CMD: - ho_req_lchan = lchan; - return 0; - break; - default: - fprintf(stderr, "Error, expecting HO or AS command\n"); - return -EINVAL; - } - - return -1; -} +static struct gsm_lchan *new_ho_req = NULL; +static struct gsm_lchan *last_ho_req = NULL; /* send channel activation ack */ static void send_chan_act_ack(struct gsm_lchan *lchan, int act) @@ -683,6 +649,7 @@ int rc; struct gsm_lchan *lchan = rsl_lchan_lookup(sign_link->trx, dh->chan_nr, &rc); struct gsm_lchan *other_lchan; + struct gsm48_hdr *gh; if (rc) { fprintf(stderr, "rsl_lchan_lookup() failed\n"); @@ -726,9 +693,18 @@ break; case RSL_MT_DATA_REQ: - rc = parse_ho_command(lchan, msg->l3h, msgb_l3len(msg)); - if (rc == 0) - got_ho_req = 1; + gh = (struct gsm48_hdr*)msg->l3h; + switch (gh->msg_type) { + case GSM48_MT_RR_HANDO_CMD: + case GSM48_MT_RR_ASS_CMD: + if (new_ho_req) { + fprintf(stderr, "Test script is erratic: a handover is requested" + " while a previous handover request is still unhandled\n"); + exit(1); + } + new_ho_req = lchan; + break; + } break; case RSL_MT_IPAC_CRCX: break; @@ -968,15 +944,17 @@ fprintf(stderr, "- Expecting handover/assignment request at %s\n", gsm_lchan_name(lchan)); - if (!got_ho_req) { + if (!new_ho_req) { fprintf(stderr, "Test failed, because no handover was requested\n"); exit(1); } - fprintf(stderr, " * Got handover/assignment request at %s\n", gsm_lchan_name(ho_req_lchan)); - if (ho_req_lchan != lchan) { + fprintf(stderr, " * Got handover/assignment request at %s\n", gsm_lchan_name(new_ho_req)); + if (new_ho_req != lchan) { fprintf(stderr, "Test failed, because handover/assignment was not commanded on the expected lchan\n"); exit(1); } + last_ho_req = new_ho_req; + new_ho_req = NULL; } DEFUN(expect_chan, expect_chan_cmd, @@ -1005,10 +983,6 @@ fprintf(stderr, "Cannot ack handover/assignment, because no chan request\n"); exit(1); } - if (!got_ho_req) { - fprintf(stderr, "Cannot ack handover/assignment, because no ho request\n"); - exit(1); - } send_ho_detect(last_chan_req); return CMD_SUCCESS; } @@ -1021,12 +995,12 @@ fprintf(stderr, "Cannot ack handover/assignment, because no chan request\n"); exit(1); } - if (!got_ho_req) { + if (!last_ho_req) { fprintf(stderr, "Cannot ack handover/assignment, because no ho request\n"); exit(1); } send_ho_complete(last_chan_req, true); - lchan_release_ack(ho_req_lchan); + lchan_release_ack(last_ho_req); return CMD_SUCCESS; } @@ -1056,8 +1030,11 @@ fprintf(stderr, "Cannot fail handover, because no chan request\n"); exit(1); } - got_ho_req = 0; - send_ho_complete(ho_req_lchan, false); + if (!last_ho_req) { + fprintf(stderr, "Cannot fail handover, because no handover request\n"); + exit(1); + } + send_ho_complete(last_ho_req, false); lchan_release_ack(last_chan_req); return CMD_SUCCESS; } diff --git a/tests/handover/test_max_handovers.ho_vty b/tests/handover/test_max_handovers.ho_vty index 31482d2..e5d9ef5 100644 --- a/tests/handover/test_max_handovers.ho_vty +++ b/tests/handover/test_max_handovers.ho_vty @@ -9,8 +9,10 @@ set-ts-use trx 0 0 states * TCH/F TCH/F TCH/F - - - - meas-rep lchan 0 0 1 0 rxlev 0 rxqual 0 ta 0 neighbors 30 expect-chan lchan 1 0 1 0 +expect-ho-req lchan 0 0 1 0 meas-rep lchan 0 0 2 0 rxlev 0 rxqual 0 ta 0 neighbors 30 expect-chan lchan 1 0 2 0 +expect-ho-req lchan 0 0 2 0 meas-rep lchan 0 0 3 0 rxlev 0 rxqual 0 ta 0 neighbors 30 expect-no-chan -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21983 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I0a664f24d7dd3d7b254b29675fdc49cd70a1a480 Gerrit-Change-Number: 21983 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 14:35:37 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 11 Jan 2021 14:35:37 +0000 Subject: Change in osmo-bsc[master]: handover_test: vty echo In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21984 ) Change subject: handover_test: vty echo ...................................................................... handover_test: vty echo Echo each handover_test command on the test output, to help with understanding the exact point of a test failure. Even nicer would be a general echo of all VTY commands, but the VTY currently does not support that feature. Refraining from a libosmocore patch just for these test scripts... Change-Id: Ifc307a7d0b7e3caa355f8cee88778762b529ad71 --- M tests/handover/handover_test.c 1 file changed, 22 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/tests/handover/handover_test.c b/tests/handover/handover_test.c index 167f1ce..d422a9d 100644 --- a/tests/handover/handover_test.c +++ b/tests/handover/handover_test.c @@ -741,6 +741,11 @@ return &ts->lchan[atoi(argv[3])]; } +static int vty_step = 1; + +#define VTY_ECHO() \ + fprintf(stderr, "\n%d: %s\n", vty_step++, vty->buf) + #define TS_USE " (TCH/F|TCH/H-|TCH/-H|TCH/HH|PDCH" \ "|tch/f|tch/h-|tch/-h|tch/hh|pdch" \ "|-|*)" @@ -764,6 +769,7 @@ { int i; int n = atoi(argv[0]); + VTY_ECHO(); for (i = 0; i < n; i++) _create_bts(1, NULL, 0); return CMD_SUCCESS; @@ -779,6 +785,7 @@ " shorthands: cs+4 = CCCH+SDCCH4; dyn = TCH/F_TCH/H_PDCH\n") { int num_trx = atoi(argv[0]); + VTY_ECHO(); _create_bts(num_trx, argv + 1, argc - 1); return CMD_SUCCESS; } @@ -794,6 +801,7 @@ const char *tch_type = argv[1]; const char *codec = argv[2]; struct gsm_lchan *lchan; + VTY_ECHO(); fprintf(stderr, "- Creating mobile at BTS %s on " "%s with %s codec\n", bts_nr_str, tch_type, codec); lchan = create_lchan(bts_by_num_str(bts_nr_str), @@ -878,6 +886,7 @@ "meas-rep " MEAS_REP_ARGS, MEAS_REP_DOC MEAS_REP_ARGS_DOC) { + VTY_ECHO(); return _meas_rep(vty, argc, argv); } @@ -888,6 +897,7 @@ MEAS_REP_ARGS_DOC) { int count = atoi(argv[0]); + VTY_ECHO(); argv += 1; argc -= 1; @@ -900,6 +910,7 @@ "congestion-check", "Trigger a congestion check\n") { + VTY_ECHO(); fprintf(stderr, "- Triggering congestion check\n"); hodec2_congestion_check(bsc_gsmnet); return CMD_SUCCESS; @@ -909,6 +920,7 @@ "expect-no-chan", "Expect that no channel request was sent from BSC to any cell\n") { + VTY_ECHO(); fprintf(stderr, "- Expecting no channel request\n"); if (new_chan_req) { fprintf(stderr, " * Got channel request at %s\n", gsm_lchan_name(new_chan_req)); @@ -962,6 +974,7 @@ "Expect a channel request from BSC to a cell for a specific lchan\n" LCHAN_ARGS_DOC) { + VTY_ECHO(); _expect_chan_activ(parse_lchan_args(argv)); return CMD_SUCCESS; } @@ -971,6 +984,7 @@ "Expect a handover of a given lchan\n" LCHAN_ARGS_DOC) { + VTY_ECHO(); _expect_ho_req(parse_lchan_args(argv)); return CMD_SUCCESS; } @@ -979,6 +993,7 @@ "ho-detect", "Send Handover Detection to the most recent HO target lchan\n") { + VTY_ECHO(); if (!last_chan_req) { fprintf(stderr, "Cannot ack handover/assignment, because no chan request\n"); exit(1); @@ -991,6 +1006,7 @@ "ho-complete", "Send Handover Complete for the most recent HO target lchan\n") { + VTY_ECHO(); if (!last_chan_req) { fprintf(stderr, "Cannot ack handover/assignment, because no chan request\n"); exit(1); @@ -1013,6 +1029,7 @@ { struct gsm_lchan *from = parse_lchan_args(argv); struct gsm_lchan *to = parse_lchan_args(argv+4); + VTY_ECHO(); _expect_chan_activ(to); _expect_ho_req(from); @@ -1026,6 +1043,7 @@ "ho-failed", "Fail the most recent handover request\n") { + VTY_ECHO(); if (!last_chan_req) { fprintf(stderr, "Cannot fail handover, because no chan request\n"); exit(1); @@ -1048,6 +1066,7 @@ { struct gsm_bts *bts = bts_by_num_str(argv[0]); struct gsm_bts_trx *trx = trx_by_num_str(bts, argv[1]); + VTY_ECHO(); argv += 2; argc -= 2; if (!_expect_ts_use(bts, trx, argv)) @@ -1060,6 +1079,7 @@ "Define which codec should be used for new TCH/F lchans (for set-ts-use)\n" "Configure the TCH/F codec to use\nAMR\nEFR\nFR\n") { + VTY_ECHO(); osmo_talloc_replace_string(ctx, &codec_tch_f, argv[0]); return CMD_SUCCESS; } @@ -1069,6 +1089,7 @@ "Define which codec should be used for new TCH/H lchans (for set-ts-use)\n" "Configure the TCH/H codec to use\nAMR\nHR\n") { + VTY_ECHO(); osmo_talloc_replace_string(ctx, &codec_tch_h, argv[0]); return CMD_SUCCESS; } @@ -1082,6 +1103,7 @@ { struct gsm_bts *bts = bts_by_num_str(argv[0]); struct gsm_bts_trx *trx = trx_by_num_str(bts, argv[1]); + VTY_ECHO(); argv += 2; argc -= 2; if (!_set_ts_use(bts, trx, argv)) -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21984 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ifc307a7d0b7e3caa355f8cee88778762b529ad71 Gerrit-Change-Number: 21984 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 14:35:37 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 11 Jan 2021 14:35:37 +0000 Subject: Change in osmo-bsc[master]: handover_test: show a bug: add test_congestion_no_oscillation.ho_vty In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21985 ) Change subject: handover_test: show a bug: add test_congestion_no_oscillation.ho_vty ...................................................................... handover_test: show a bug: add test_congestion_no_oscillation.ho_vty Also add test_congestion_no_oscillation2.ho_vty which is an almost identical scenario that does not show the bug -- because it has two more TCH/H available in BTS 1, showing the strange behavior of the algorithm. Related: SYS#5259 Change-Id: Idf88b4cf3d2f92f5560d73dae9e59af39d0494c0 --- M tests/handover/handover_tests.ok A tests/handover/test_congestion_no_oscillation.ho_vty A tests/handover/test_congestion_no_oscillation2.ho_vty 3 files changed, 81 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/tests/handover/handover_tests.ok b/tests/handover/handover_tests.ok index eab405d..521a0fe 100644 --- a/tests/handover/handover_tests.ok +++ b/tests/handover/handover_tests.ok @@ -11,6 +11,8 @@ pass test_congestion.ho_vty pass test_congestion_favor_best_target_rxlev.ho_vty pass test_congestion_intra_vs_inter_cell.ho_vty +pass test_congestion_no_oscillation.ho_vty +pass test_congestion_no_oscillation2.ho_vty pass test_disabled_ho_and_as.ho_vty pass test_dyn_ts_amr_tch_f_to_h_congestion_assignment.ho_vty pass test_dyn_ts_favor_half_used_tch_h_as_target.ho_vty diff --git a/tests/handover/test_congestion_no_oscillation.ho_vty b/tests/handover/test_congestion_no_oscillation.ho_vty new file mode 100644 index 0000000..abfaef7 --- /dev/null +++ b/tests/handover/test_congestion_no_oscillation.ho_vty @@ -0,0 +1,48 @@ +# Do not oscillate handover from TCH/F to TCH/H on a neighbor due to congestion, +# and then back to the original cell due to RXLEV. +# Currently this test script shows the undesired oscillation. + +create-bts trx-count 1 timeslots c+s4 TCH/F TCH/F TCH/F TCH/F TCH/F TCH/F PDCH +network + bts 0 + handover2 min-free-slots tch/f 5 + +create-bts trx-count 1 timeslots c+s4 TCH/F TCH/F TCH/F TCH/F TCH/H TCH/H PDCH + +set-ts-use trx 0 0 states * TCH/F TCH/F - - - - * +set-ts-use trx 1 0 states * TCH/F TCH/F TCH/F TCH/F - - * + +meas-rep repeat 10 lchan 0 0 2 0 rxlev 40 rxqual 0 ta 0 neighbors 20 +expect-no-chan + +# bts 0 wants to lose one TCH/F. The neighbor's TCH/F are full, but TCH/H are available there. +congestion-check +expect-ho from lchan 0 0 2 0 to lchan 1 0 5 0 + +expect-ts-use trx 0 0 states * TCH/F - - - - - * +expect-ts-use trx 1 0 states * TCH/F TCH/F TCH/F TCH/F TCH/H- - * + +# measurements continue to be the same +meas-rep lchan 1 0 5 0 rxlev 20 rxqual 0 ta 0 neighbors 40 + +# FAIL: RXLEV oscillation back to bts 0 +expect-ho from lchan 1 0 5 0 to lchan 0 0 2 0 +expect-ts-use trx 0 0 states * TCH/F TCH/F - - - - * +expect-ts-use trx 1 0 states * TCH/F TCH/F TCH/F TCH/F - - * +meas-rep lchan 0 0 2 0 rxlev 40 rxqual 0 ta 0 neighbors 20 +expect-no-chan + +# FAIL: congestion oscillation again to bts 1 +congestion-check +expect-ho from lchan 0 0 2 0 to lchan 1 0 5 0 +expect-ts-use trx 0 0 states * TCH/F - - - - - * +expect-ts-use trx 1 0 states * TCH/F TCH/F TCH/F TCH/F TCH/H- - * + +# FAIL: RXLEV oscillation back to bts 0 +meas-rep lchan 1 0 5 0 rxlev 20 rxqual 0 ta 0 neighbors 40 +expect-ho from lchan 1 0 5 0 to lchan 0 0 2 0 +meas-rep lchan 0 0 2 0 rxlev 40 rxqual 0 ta 0 neighbors 20 + +# FAIL: congestion oscillation again to bts 1 +congestion-check +expect-ho from lchan 0 0 2 0 to lchan 1 0 5 0 diff --git a/tests/handover/test_congestion_no_oscillation2.ho_vty b/tests/handover/test_congestion_no_oscillation2.ho_vty new file mode 100644 index 0000000..aee731d --- /dev/null +++ b/tests/handover/test_congestion_no_oscillation2.ho_vty @@ -0,0 +1,31 @@ +# Almost identical to test_amr_oscillation.ho_vty, this has just two more TCH/H slots in BTS 1, and does not trigger the +# oscillation bug. The number of free TCH/H in BTS 1 should be unrelated to the congestion status of BTS 0, which +# illustrates that the even distribution of congestion is fundamentally flawed. +# This test script shows the desired behavior, though by common sense there should be no reason why we see the bug in +# test_amr_oscillation.ho_vty and not here. + +create-bts trx-count 1 timeslots c+s4 TCH/F TCH/F TCH/F TCH/F TCH/F TCH/F PDCH +network + bts 0 + handover2 min-free-slots tch/f 5 + +create-bts trx-count 1 timeslots c+s4 TCH/F TCH/F TCH/F TCH/F TCH/H TCH/H TCH/H + +set-ts-use trx 0 0 states * TCH/F TCH/F - - - - * +set-ts-use trx 1 0 states * TCH/F TCH/F TCH/F TCH/F - - - + +meas-rep repeat 10 lchan 0 0 2 0 rxlev 40 rxqual 0 ta 0 neighbors 20 +expect-no-chan + +# bts 0 wants to lose one TCH/F. The neighbor's TCH/F are full, but TCH/H are available there. +congestion-check +expect-ho from lchan 0 0 2 0 to lchan 1 0 5 0 + +expect-ts-use trx 0 0 states * TCH/F - - - - - * +expect-ts-use trx 1 0 states * TCH/F TCH/F TCH/F TCH/F TCH/H- - - + +# measurements continue to be the same +meas-rep lchan 1 0 5 0 rxlev 20 rxqual 0 ta 0 neighbors 40 + +# despite the better RXLEV, congestion prevents oscillation back to bts 0 +expect-no-chan -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21985 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Idf88b4cf3d2f92f5560d73dae9e59af39d0494c0 Gerrit-Change-Number: 21985 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 14:35:39 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 11 Jan 2021 14:35:39 +0000 Subject: Change in osmo-ci[master]: osmo-build-dep.sh: don't build osmo-gsm-manuals References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/22095 ) Change subject: osmo-build-dep.sh: don't build osmo-gsm-manuals ...................................................................... osmo-build-dep.sh: don't build osmo-gsm-manuals Save time by only cloning the repository, and not running autoreconf -fi, ./configure, make and make install. Especially the tests during make took up significant time, that slowed every project depending on osmo-gsm-manuals down while being built through master-builds or gerrit-verifications jobs. Set OSMO_GSM_MANUALS_DIR to the clone location. I've considered cloning osmo-gsm-manuals.git in the Dockerfile of debian-stretch-jenkins instead, and removing the call to "osmo-build-dep.sh osmo-gsm-manuals" in each repository. But adjusting osmo-build-dep.sh was less effort to implement. Make sure to update the jenkins jobs from jobs/*.yml when merging (or let me do it). Change-Id: I5238cf3f93ded97ed2b44d27868123a646e122dc Related: OS#4912 --- M jobs/gerrit-verifications.yml M jobs/master-builds.yml M scripts/osmo-build-dep.sh 3 files changed, 9 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/95/22095/1 diff --git a/jobs/gerrit-verifications.yml b/jobs/gerrit-verifications.yml index a2f75ce..32a81f3 100644 --- a/jobs/gerrit-verifications.yml +++ b/jobs/gerrit-verifications.yml @@ -34,6 +34,7 @@ -e JOB_NAME="$JOB_NAME" \ -e MAKE=make \ -e OSMOPY_DEBUG_TCP_SOCKETS="1" \ + -e OSMO_GSM_MANUALS_DIR="/build/deps/osmo-gsm-manuals" \ -e PARALLEL_MAKE="$PARALLEL_MAKE" \ -e PATH="$PATH:/build_bin" \ -e WITH_MANUALS="1" \ diff --git a/jobs/master-builds.yml b/jobs/master-builds.yml index cdd3773..93d2e75 100644 --- a/jobs/master-builds.yml +++ b/jobs/master-builds.yml @@ -33,6 +33,7 @@ -e JOB_NAME="$JOB_NAME" \ -e MAKE=make \ -e OSMOPY_DEBUG_TCP_SOCKETS="1" \ + -e OSMO_GSM_MANUALS_DIR="/build/deps/osmo-gsm-manuals" \ -e PARALLEL_MAKE="$PARALLEL_MAKE" \ -e PATH="$PATH:/build_bin" \ -e PUBLISH="1" \ diff --git a/scripts/osmo-build-dep.sh b/scripts/osmo-build-dep.sh index 7013414..c7c4c2a 100755 --- a/scripts/osmo-build-dep.sh +++ b/scripts/osmo-build-dep.sh @@ -54,6 +54,13 @@ cd "$subdir" fi +# osmo-gsm-manuals: save time by only cloning the repository (OS#4912). +# Projects depending on osmo-gsm-manuals can still build the manuals, because +# we set OSMO_GSM_MANUALS_DIR to the clone destination. +if [ "$project" = "osmo-gsm-manuals" ]; then + exit 0 +fi + autoreconf --install --force ./configure --prefix="$inst/stow/$project" --with-systemdsystemunitdir="$inst/stow/$project/lib/systemd/system" $cfg -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22095 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I5238cf3f93ded97ed2b44d27868123a646e122dc Gerrit-Change-Number: 22095 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 14:35:40 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 11 Jan 2021 14:35:40 +0000 Subject: Change in osmo-ci[master]: jobs: don't overwrite PATH in "docker run" References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/22096 ) Change subject: jobs: don't overwrite PATH in "docker run" ...................................................................... jobs: don't overwrite PATH in "docker run" Don't mount $HOME/bin to /build_bin, and don't overwrite PATH to include /build_bin anymore. This isn't needed because the scripts are installed to /usr/local/bin inside the docker images now. Depends: docker-playground I0820f13cd740f7d4a8999d279cef6ae293a67d81 Related: OS#4911 Change-Id: I45bd7ea56849dab839a98cfd52806f7cd288094e --- M jobs/gerrit-verifications.yml M jobs/master-builds.yml M jobs/osmo-gsm-tester-runner.yml 3 files changed, 2 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/96/22096/1 diff --git a/jobs/gerrit-verifications.yml b/jobs/gerrit-verifications.yml index 32a81f3..d2e37cf 100644 --- a/jobs/gerrit-verifications.yml +++ b/jobs/gerrit-verifications.yml @@ -36,10 +36,9 @@ -e OSMOPY_DEBUG_TCP_SOCKETS="1" \ -e OSMO_GSM_MANUALS_DIR="/build/deps/osmo-gsm-manuals" \ -e PARALLEL_MAKE="$PARALLEL_MAKE" \ - -e PATH="$PATH:/build_bin" \ -e WITH_MANUALS="1" \ -w /build -i -u build \ - -v "$PWD:/build" -v "$HOME/bin:/build_bin" \ + -v "$PWD:/build" \ -v "$ARTIFACT_STORE:/artifact_store" \ docker_img: '$USER/debian-stretch-jenkins' docker_img_erlang: '$USER/debian-buster-erlang' diff --git a/jobs/master-builds.yml b/jobs/master-builds.yml index 93d2e75..3c3daf8 100644 --- a/jobs/master-builds.yml +++ b/jobs/master-builds.yml @@ -35,11 +35,10 @@ -e OSMOPY_DEBUG_TCP_SOCKETS="1" \ -e OSMO_GSM_MANUALS_DIR="/build/deps/osmo-gsm-manuals" \ -e PARALLEL_MAKE="$PARALLEL_MAKE" \ - -e PATH="$PATH:/build_bin" \ -e PUBLISH="1" \ -e WITH_MANUALS="1" \ -w /build -i -u build \ - -v "$PWD:/build" -v "$HOME/bin:/build_bin" \ + -v "$PWD:/build" \ -v "$ARTIFACT_STORE:/artifact_store" \ -v "$HOME/.ssh:/home/build/.ssh:ro" \ docker_img: '$USER/debian-stretch-jenkins' diff --git a/jobs/osmo-gsm-tester-runner.yml b/jobs/osmo-gsm-tester-runner.yml index 087201f..25d8fd0 100644 --- a/jobs/osmo-gsm-tester-runner.yml +++ b/jobs/osmo-gsm-tester-runner.yml @@ -237,7 +237,6 @@ -e BUILD_NUMBER="$BUILD_NUMBER" \ -w /build -i \ -v "$PWD:/build" \ - -v "$HOME/bin:/build_bin" \ -v "$HOME/.ssh:/home/build/.ssh:ro" \ --cap-add=sys_nice \ $USER/osmo-gsm-tester \ -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22096 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I45bd7ea56849dab839a98cfd52806f7cd288094e Gerrit-Change-Number: 22096 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 14:42:29 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 11 Jan 2021 14:42:29 +0000 Subject: Change in osmo-bsc[master]: power_control: add increase / reduce step size recommendations In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bsc/+/21873 to look at the new patch set (#6). Change subject: power_control: add increase / reduce step size recommendations ...................................................................... power_control: add increase / reduce step size recommendations Change-Id: I82e762c0c2b5e0dd739850ee494ab0a798e353de Related: SYS#4918 --- M doc/manuals/chapters/power_control.adoc M src/osmo-bsc/bsc_vty.c M tests/power_ctrl.vty 3 files changed, 30 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/73/21873/6 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21873 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I82e762c0c2b5e0dd739850ee494ab0a798e353de Gerrit-Change-Number: 21873 Gerrit-PatchSet: 6 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 14:51:19 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 11 Jan 2021 14:51:19 +0000 Subject: Change in docker-playground[master]: debian-stretch-jenkins, osmo-gsm-tester: add osmo-ci In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22094 ) Change subject: debian-stretch-jenkins, osmo-gsm-tester: add osmo-ci ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22094 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I0820f13cd740f7d4a8999d279cef6ae293a67d81 Gerrit-Change-Number: 22094 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 11 Jan 2021 14:51:19 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 14:53:58 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 11 Jan 2021 14:53:58 +0000 Subject: Change in osmo-ci[master]: osmo-build-dep.sh: don't build osmo-gsm-manuals In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22095 ) Change subject: osmo-build-dep.sh: don't build osmo-gsm-manuals ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22095 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I5238cf3f93ded97ed2b44d27868123a646e122dc Gerrit-Change-Number: 22095 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 11 Jan 2021 14:53:58 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 14:54:02 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 11 Jan 2021 14:54:02 +0000 Subject: Change in osmo-bsc[master]: manuals: fix a duplicate line in the description of DTXu References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22097 ) Change subject: manuals: fix a duplicate line in the description of DTXu ...................................................................... manuals: fix a duplicate line in the description of DTXu Change-Id: Iedb7c2b7cc1dc3833271eb94f7eafc79cea3fd06 --- M doc/manuals/chapters/bsc.adoc 1 file changed, 0 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/97/22097/1 diff --git a/doc/manuals/chapters/bsc.adoc b/doc/manuals/chapters/bsc.adoc index 0d3ded5..20c67d5 100644 --- a/doc/manuals/chapters/bsc.adoc +++ b/doc/manuals/chapters/bsc.adoc @@ -99,8 +99,6 @@ Uplink DTX is possible on any TRX, and serves primarily two uses: -possible on any TRX, and serves primarily two uses: - . reducing the MS battery consumption by transmitting at a lower duty cycle . reducing the uplink interference caused in surrounding cells that re-use the same ARFCN. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22097 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Iedb7c2b7cc1dc3833271eb94f7eafc79cea3fd06 Gerrit-Change-Number: 22097 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 14:54:29 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 11 Jan 2021 14:54:29 +0000 Subject: Change in osmo-ci[master]: jobs: don't overwrite PATH in "docker run" In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22096 ) Change subject: jobs: don't overwrite PATH in "docker run" ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22096 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I45bd7ea56849dab839a98cfd52806f7cd288094e Gerrit-Change-Number: 22096 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 11 Jan 2021 14:54:29 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 14:56:09 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 11 Jan 2021 14:56:09 +0000 Subject: Change in osmo-ci[master]: osmo-build-dep.sh: don't build osmo-gsm-manuals In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22095 ) Change subject: osmo-build-dep.sh: don't build osmo-gsm-manuals ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22095 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I5238cf3f93ded97ed2b44d27868123a646e122dc Gerrit-Change-Number: 22095 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 11 Jan 2021 14:56:09 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 14:56:37 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 11 Jan 2021 14:56:37 +0000 Subject: Change in osmo-bsc[master]: power_control: add increase / reduce step size recommendations In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21873 ) Change subject: power_control: add increase / reduce step size recommendations ...................................................................... Patch Set 6: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/21873/6/src/osmo-bsc/bsc_vty.c File src/osmo-bsc/bsc_vty.c: https://gerrit.osmocom.org/c/osmo-bsc/+/21873/6/src/osmo-bsc/bsc_vty.c at 4945 PS6, Line 4945: vty_out(vty, "%% Increase step size (%d) should be greater " I'm not even sure greater is a correct term here. You probably mean larger/bigger? -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21873 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I82e762c0c2b5e0dd739850ee494ab0a798e353de Gerrit-Change-Number: 21873 Gerrit-PatchSet: 6 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 11 Jan 2021 14:56:37 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 14:57:03 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 11 Jan 2021 14:57:03 +0000 Subject: Change in osmo-bsc[master]: manuals: fix a duplicate line in the description of DTXu In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22097 ) Change subject: manuals: fix a duplicate line in the description of DTXu ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22097 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Iedb7c2b7cc1dc3833271eb94f7eafc79cea3fd06 Gerrit-Change-Number: 22097 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Mon, 11 Jan 2021 14:57:03 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 14:58:51 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 11 Jan 2021 14:58:51 +0000 Subject: Change in osmo-ci[master]: jobs: don't overwrite PATH in "docker run" In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22096 ) Change subject: jobs: don't overwrite PATH in "docker run" ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22096 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I45bd7ea56849dab839a98cfd52806f7cd288094e Gerrit-Change-Number: 22096 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 11 Jan 2021 14:58:51 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 15:02:56 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 11 Jan 2021 15:02:56 +0000 Subject: Change in osmo-bsc[master]: manuals: fix a typo: s/DTS/DTX/ References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22098 ) Change subject: manuals: fix a typo: s/DTS/DTX/ ...................................................................... manuals: fix a typo: s/DTS/DTX/ Change-Id: I5bef0eca101859e4f757e17ce3e4e3cd56b0b5eb --- M doc/manuals/chapters/bsc.adoc 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/98/22098/1 diff --git a/doc/manuals/chapters/bsc.adoc b/doc/manuals/chapters/bsc.adoc index 20c67d5..38f267c 100644 --- a/doc/manuals/chapters/bsc.adoc +++ b/doc/manuals/chapters/bsc.adoc @@ -103,7 +103,7 @@ . reducing the uplink interference caused in surrounding cells that re-use the same ARFCN. -DTS for both uplink and downlink is implemented in the BTS. Not all BTS +DTX for both uplink and downlink is implemented in the BTS. Not all BTS models support it. The Osmocom BSC component can instruct the BTS to enable or disable -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22098 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I5bef0eca101859e4f757e17ce3e4e3cd56b0b5eb Gerrit-Change-Number: 22098 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 15:04:37 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 11 Jan 2021 15:04:37 +0000 Subject: Change in osmo-bsc[master]: Introduce Neighbor Resolution Service In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21848 ) Change subject: Introduce Neighbor Resolution Service ...................................................................... Patch Set 7: Strange, test is passing fine locally in my laptop... -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21848 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ib07c9d23026332a207d4b7a0f7b4e76c0094e379 Gerrit-Change-Number: 21848 Gerrit-PatchSet: 7 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-CC: laforge Gerrit-Comment-Date: Mon, 11 Jan 2021 15:04:37 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 15:05:14 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 11 Jan 2021 15:05:14 +0000 Subject: Change in osmo-bsc[master]: hodec2: to balance congestion, use overload percent In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22085 ) Change subject: hodec2: to balance congestion, use overload percent ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/22085/3/src/osmo-bsc/handover_decision_2.c File src/osmo-bsc/handover_decision_2.c: https://gerrit.osmocom.org/c/osmo-bsc/+/22085/3/src/osmo-bsc/handover_decision_2.c at 404 PS3, Line 404: /* There can be no negative amount of free TCH/x, clamp to a minimum of zero available slots. This could > I would rather make sure this doesn't happen in the caller and have the parameters be unsigned in th [?] I had unsigned values originally, but decided to change to signed purely for paranoia: the problem with unsigned values is that when we hit a negative value for some buggy reason, the comparison would result in the negative number being > than the positive one. The caller in practice does not ever pass negative amounts. Maybe OSMO_ASSERT() then? Still I want to keep signed values in order to catch bugs like that... -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22085 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I55234c6c99eb02ceee52be0d7388bea14304930f Gerrit-Change-Number: 22085 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 11 Jan 2021 15:05:14 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 15:05:33 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 11 Jan 2021 15:05:33 +0000 Subject: Change in osmo-bsc[master]: manuals: fix a typo: s/DTS/DTX/ In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22098 ) Change subject: manuals: fix a typo: s/DTS/DTX/ ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22098 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I5bef0eca101859e4f757e17ce3e4e3cd56b0b5eb Gerrit-Change-Number: 22098 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Mon, 11 Jan 2021 15:05:33 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 15:22:19 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 11 Jan 2021 15:22:19 +0000 Subject: Change in osmo-bsc[master]: hodec2: to balance congestion, use overload percent In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22085 ) Change subject: hodec2: to balance congestion, use overload percent ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/22085/3/src/osmo-bsc/handover_decision_2.c File src/osmo-bsc/handover_decision_2.c: https://gerrit.osmocom.org/c/osmo-bsc/+/22085/3/src/osmo-bsc/handover_decision_2.c at 404 PS3, Line 404: /* There can be no negative amount of free TCH/x, clamp to a minimum of zero available slots. This could > I had unsigned values originally, but decided to change to signed purely for paranoia: [?] I would in that case use unsigned values in this function and add ASSERT to the wherever you think it can happen in the caller. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22085 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I55234c6c99eb02ceee52be0d7388bea14304930f Gerrit-Change-Number: 22085 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 11 Jan 2021 15:22:19 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: neels Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 15:38:44 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 11 Jan 2021 15:38:44 +0000 Subject: Change in osmo-bsc[master]: power_control: add increase / reduce step size recommendations In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bsc/+/21873 to look at the new patch set (#7). Change subject: power_control: add increase / reduce step size recommendations ...................................................................... power_control: add increase / reduce step size recommendations Change-Id: I82e762c0c2b5e0dd739850ee494ab0a798e353de Related: SYS#4918 --- M doc/manuals/chapters/power_control.adoc M src/osmo-bsc/bsc_vty.c M tests/power_ctrl.vty 3 files changed, 30 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/73/21873/7 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21873 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I82e762c0c2b5e0dd739850ee494ab0a798e353de Gerrit-Change-Number: 21873 Gerrit-PatchSet: 7 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 15:38:45 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 11 Jan 2021 15:38:45 +0000 Subject: Change in osmo-bsc[master]: power_control: cosmetic changes and fixes to the documentation References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22099 ) Change subject: power_control: cosmetic changes and fixes to the documentation ...................................................................... power_control: cosmetic changes and fixes to the documentation Change-Id: I744d09fb22d8b07ed433a34a958ef384fd3d62da Related: SYS#4918 --- M doc/manuals/chapters/power_control.adoc 1 file changed, 11 insertions(+), 11 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/99/22099/1 diff --git a/doc/manuals/chapters/power_control.adoc b/doc/manuals/chapters/power_control.adoc index b8d182a..0cf7d89 100644 --- a/doc/manuals/chapters/power_control.adoc +++ b/doc/manuals/chapters/power_control.adoc @@ -35,7 +35,7 @@ It depends on how the power control parameters are signaled to the BTS. If a given BTS vendor/model requires _each_ RSL CHANnel ACTIVation message to contain the full -set of parameters, than changing them in the BSC at run-time would affect all newly +set of parameters, then changing them in the BSC at run-time would affect all newly established logical channels immediately. The existing connections would continue to use parameters which were in use during the time of channel activation. @@ -45,7 +45,7 @@ dynamic power control parameters at run-time would affect neither the existing nor newly established logical channels. -It's still possible to 'push' a modified set of MS/BS power control parameters to a +It's still possible to "push" a modified set of MS/BS power control parameters to a BTS that accepts the default parameters at startup without triggering the A-bis/RSL link re-establishment and thus interrupting the service. The following command triggers resending of both MS/BS power control parameters: @@ -68,7 +68,7 @@ (Downlink) power control. This chapter is aimed to put some light on them. All parameters can be set via the VTY interface, currently within the scope of -a BTS. This means that all transceivers will 'inherit' the same configuration. +a BTS node. This means that all transceivers will "inherit" the same configuration. ---- OsmoBSC(config)# network @@ -99,8 +99,8 @@ . lv (rxlev-avg|rxqual-avg) algo osmo-ewma beta <1-99> ---- -NOTE: Flag 'v' indicates that a given parameter is vendor specific, so different -BTS vendors/models may ignore or even reject it. Flag 'l' indicates that changing +NOTE: Flag `v` indicates that a given parameter is vendor specific, so different +BTS vendors/models may ignore or even reject it. Flag `l` indicates that changing a given parameter at run-time would affect only the new connections. ==== Power control mode @@ -119,7 +119,7 @@ By default, `static` mode is used for BS power control, while `dyn-bts` is used for MS power control. Changing the mode at run-time would not affect already -established connections, only the new ones (check flag 'l'). +established connections, only the new ones (check flag `l`). For BS power control, there is an additional parameter: @@ -206,7 +206,7 @@ `U_RXQUAL_XX_P`, where the `XX` is either `DL` (Downlink) or `UL` (Uplink). The process of threshold comparison actually involves more than just upper and lower -values for RxLev and RxQual. The received 'raw' measurements are being averaged and +values for RxLev and RxQual. The received "raw" measurements are being averaged and stored in a circular buffer, so the power change is triggered only if Pn averages out of Nn averages exceed the corresponding thresholds. @@ -230,15 +230,15 @@ ==== Measurement averaging process 3GPP 45.008, section A.3.1 requires that the measurement values reported by both -an MS and the BTS are be pre-processed before appearing on the input of the +an MS and the BTS are being pre-processed before appearing on the input of the corresponding power control loops in any of the following ways: - Unweighted average; -- Weighted average, with the weightings determined by O&M; +- Weighted average, with the weightings determined by O\&M; - Modified median calculation, with exceptionally high and low values (outliers) removed before the median calculation. -The pre-processing is expected to be performed for both MS and BS power control +The pre-processing is expected to be performed by both MS and BS power control loops independently, for every input parameter (i.e. RxLev and RxQual). ---- @@ -291,7 +291,7 @@ ---- <1> Both MS and BS power control is to be performed by the BTS autonomously. <2> Unweighted average is applied to RxLev values. -<3> RxLev Hreqave and Hreqt values: 4 out of 6 SACCH blocks produce an averaged measurement. +<3> RxLev: Hreqave and Hreqt values: 4 out of 6 SACCH blocks produce an averaged measurement. <4> Osmocom specific EWMA is applied to RxQual values with smoothing factor = 50% (beta=0.5). <5> RxQual: Hreqave and Hreqt values: 2 out of 3 SACCH blocks produce an averaged measurement. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22099 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I744d09fb22d8b07ed433a34a958ef384fd3d62da Gerrit-Change-Number: 22099 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 15:43:15 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 11 Jan 2021 15:43:15 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Introduce test TC_pcuif_suspend_active_tbf References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22100 ) Change subject: pcu: Introduce test TC_pcuif_suspend_active_tbf ...................................................................... pcu: Introduce test TC_pcuif_suspend_active_tbf Related: OS#4761 Change-Id: I9538fbdc806eb26e93a0421b520c8d34de61f91f --- M pcu/PCU_Tests.ttcn 1 file changed, 75 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/00/22100/1 diff --git a/pcu/PCU_Tests.ttcn b/pcu/PCU_Tests.ttcn index 528ee25..13b33b2 100644 --- a/pcu/PCU_Tests.ttcn +++ b/pcu/PCU_Tests.ttcn @@ -338,6 +338,80 @@ f_shutdown(__BFILE__, __LINE__, final := true); } +/* Make sure TBF is released and no data is sent for in after reciving a Suspend Request from that MS. See OS#4761 */ +testcase TC_pcuif_suspend_active_tbf() runs on RAW_PCU_Test_CT { + var octetstring ra_id := enc_RoutingAreaIdentification(mp_gb_cfg.bvc[0].cell_id.ra_id); + var RlcmacDlBlock dl_block; + var octetstring data := f_rnd_octstring(10); + var uint32_t sched_fn; + var uint32_t dl_fn; + var GprsMS ms; + timer T; + + /* Initialize NS/BSSGP side */ + f_init_bssgp(); + /* Initialize GPRS MS side */ + f_init_gprs_ms(); + ms := g_ms[0]; /* We only use first MS in this test */ + + /* Initialize the PCU interface abstraction */ + f_init_raw(testcasename(), ts_PCUIF_INFO_default(c_PCUIF_Flags_noMCS)); + + /* Establish BSSGP connection to the PCU */ + f_bssgp_establish(); + f_bssgp_client_llgmm_assign(TLLI_UNUSED, ms.tlli); + + /* Establish an Uplink TBF */ + f_ms_establish_ul_tbf(ms); + + /* Send one UL block (with TLLI since we are in One-Phase Access + contention resoultion) and make sure it is ACKED fine */ + f_ms_tx_ul_data_block_multi(ms, 1, with_tlli := true); + f_rx_rlcmac_dl_block_exp_ack_nack(dl_block, sched_fn); + /* DL ACK/NACK sets poll+rrbp requesting PACKET CONTROL ACK */ + f_ms_tx_ul_block(ms, ts_RLCMAC_CTRL_ACK(ms.tlli), sched_fn); + + /* UL block should be received in SGSN */ + BSSGP[0].receive(tr_BSSGP_UL_UD(ms.tlli, mp_gb_cfg.bvc[0].cell_id)); + + /* Now SGSN sends some DL data, PCU will page on CCCH (PCH) */ + BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data)); + f_ms_exp_dl_tbf_ass_ccch(ms, PCU_IF_SAPI_PCH); + + /* Wait timer X2002 and DL block is available after CCCH IMM ASS: */ + f_sleep(X2002); + f_rx_rlcmac_dl_block_exp_data(dl_block, dl_fn, data, 0); + + /* MS has moved to CS, it sent SUSP REQ to BTS and PCU gets it, TBF is freed: */ + BTS.send(ts_PCUIF_SUSP_REQ(0, ms.tlli, ra_id, 0)); + + T.start(2.0); + alt { + [] BSSGP_GLOBAL[0].receive(tr_BSSGP_SUSPEND(ms.tlli, mp_gb_cfg.bvc[0].cell_id.ra_id)) { + setverdict(pass); + } + [] T.timeout { + setverdict(fail, "Timeout waiting for BSSGP SUSPEND"); + f_shutdown(__BFILE__, __LINE__); + } + } + + /* Make sure we don't receive data for that TBF since it was released + * before. Also check our TBF is not polled for UL. */ + f_rx_rlcmac_dl_block_exp_dummy(dl_block); + if (dl_block.ctrl.mac_hdr.usf != USF_UNUSED) { + setverdict(fail, "Unexpected USF ", dl_block.ctrl.mac_hdr.usf); + f_shutdown(__BFILE__, __LINE__); + } + + /* New data arrives, PCU should page the MS since no TBF active exists: */ + /* Send some more data, it will never reach the MS */ + BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data)); + f_ms_exp_dl_tbf_ass_ccch(ms, PCU_IF_SAPI_PCH); + + f_shutdown(__BFILE__, __LINE__, final := true); +} + /* Test of correct Timing Advance at the time of TBF establishment * (derived from timing offset of the Access Burst). */ testcase TC_ta_rach_imm_ass() runs on RAW_PCU_Test_CT { @@ -3494,6 +3568,7 @@ control { execute( TC_pcuif_suspend() ); + execute( TC_pcuif_suspend_active_tbf() ); execute( TC_ta_ptcch_idle() ); execute( TC_ta_rach_imm_ass() ); execute( TC_ta_idle_dl_tbf_ass() ); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22100 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I9538fbdc806eb26e93a0421b520c8d34de61f91f Gerrit-Change-Number: 22100 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 15:43:31 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 11 Jan 2021 15:43:31 +0000 Subject: Change in osmo-bsc[master]: manuals: fix a typo: s/DTS/DTX/ In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22098 ) Change subject: manuals: fix a typo: s/DTS/DTX/ ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22098 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I5bef0eca101859e4f757e17ce3e4e3cd56b0b5eb Gerrit-Change-Number: 22098 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 11 Jan 2021 15:43:31 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 15:43:36 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 11 Jan 2021 15:43:36 +0000 Subject: Change in osmo-bsc[master]: manuals: fix a duplicate line in the description of DTXu In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22097 ) Change subject: manuals: fix a duplicate line in the description of DTXu ...................................................................... manuals: fix a duplicate line in the description of DTXu Change-Id: Iedb7c2b7cc1dc3833271eb94f7eafc79cea3fd06 --- M doc/manuals/chapters/bsc.adoc 1 file changed, 0 insertions(+), 2 deletions(-) Approvals: pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/doc/manuals/chapters/bsc.adoc b/doc/manuals/chapters/bsc.adoc index 0d3ded5..20c67d5 100644 --- a/doc/manuals/chapters/bsc.adoc +++ b/doc/manuals/chapters/bsc.adoc @@ -99,8 +99,6 @@ Uplink DTX is possible on any TRX, and serves primarily two uses: -possible on any TRX, and serves primarily two uses: - . reducing the MS battery consumption by transmitting at a lower duty cycle . reducing the uplink interference caused in surrounding cells that re-use the same ARFCN. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22097 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Iedb7c2b7cc1dc3833271eb94f7eafc79cea3fd06 Gerrit-Change-Number: 22097 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 15:43:37 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 11 Jan 2021 15:43:37 +0000 Subject: Change in osmo-bsc[master]: manuals: fix a typo: s/DTS/DTX/ In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22098 ) Change subject: manuals: fix a typo: s/DTS/DTX/ ...................................................................... manuals: fix a typo: s/DTS/DTX/ Change-Id: I5bef0eca101859e4f757e17ce3e4e3cd56b0b5eb --- M doc/manuals/chapters/bsc.adoc 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: pespin: Looks good to me, but someone else must approve fixeria: Looks good to me, approved Jenkins Builder: Verified diff --git a/doc/manuals/chapters/bsc.adoc b/doc/manuals/chapters/bsc.adoc index 20c67d5..38f267c 100644 --- a/doc/manuals/chapters/bsc.adoc +++ b/doc/manuals/chapters/bsc.adoc @@ -103,7 +103,7 @@ . reducing the uplink interference caused in surrounding cells that re-use the same ARFCN. -DTS for both uplink and downlink is implemented in the BTS. Not all BTS +DTX for both uplink and downlink is implemented in the BTS. Not all BTS models support it. The Osmocom BSC component can instruct the BTS to enable or disable -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22098 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I5bef0eca101859e4f757e17ce3e4e3cd56b0b5eb Gerrit-Change-Number: 22098 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 15:44:18 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 11 Jan 2021 15:44:18 +0000 Subject: Change in osmo-bsc[master]: hodec2: to balance congestion, use overload percent In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bsc/+/22085 to look at the new patch set (#4). Change subject: hodec2: to balance congestion, use overload percent ...................................................................... hodec2: to balance congestion, use overload percent For balancing load across congested cells and across congested TCH/* kinds, instead of comparing the number of lchans above the configured congestion threshold, compare the percent of lchans of overload. In short, using a percentage prevents cells with less min-free-slots to fill up 100% while neighbor cells still may have several free lchans available. An obvious example of why this is desirable is illustrated by test_balance_congestion_by_percentage.ho_vty: Cell A has min-free-slots 2, and has all slots occupied. Cell B has min-free-slots 4, and has 2 slots remaining free. If we count congested lchans as in current master: cell A has a congestion count of 2: two more lchans in use than "allowed". If we move one lchan over to cell B, it ends up with a congestion count of 3, which is worse than 2. So when counting lchans, we decide that cell A should remain full. Instead, when comparing percentage of remaining lchans, we would see that cell A is loaded 100% above congestion (2 of 2 remaining lchans in use), but when moving one lchan to cell B, that would only be 75% loaded above its treshold (3 of 4 remaining lchans in use). So a percentage comparison would cause a handover to cell B. Related: SYS#5259 Change-Id: I55234c6c99eb02ceee52be0d7388bea14304930f --- M src/osmo-bsc/handover_decision_2.c M tests/handover/test_balance_congestion_by_percentage.ho_vty M tests/handover/test_balance_congestion_tchf_tchh.ho_vty 3 files changed, 52 insertions(+), 20 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/85/22085/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22085 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I55234c6c99eb02ceee52be0d7388bea14304930f Gerrit-Change-Number: 22085 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 15:44:19 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 11 Jan 2021 15:44:19 +0000 Subject: Change in osmo-bsc[master]: handover_test: enhance test_balance_congestion_by_percentage.ho_vty References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22101 ) Change subject: handover_test: enhance test_balance_congestion_by_percentage.ho_vty ...................................................................... handover_test: enhance test_balance_congestion_by_percentage.ho_vty Related: SYS#5259 Change-Id: I2664dd0857965c4dbf1f91e57c6324d9cf330423 --- M tests/handover/test_balance_congestion_by_percentage.ho_vty 1 file changed, 17 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/01/22101/1 diff --git a/tests/handover/test_balance_congestion_by_percentage.ho_vty b/tests/handover/test_balance_congestion_by_percentage.ho_vty index 09d2151..aba7d3a 100644 --- a/tests/handover/test_balance_congestion_by_percentage.ho_vty +++ b/tests/handover/test_balance_congestion_by_percentage.ho_vty @@ -33,3 +33,20 @@ # 1 is performed. congestion-check expect-ho from lchan 0 0 1 0 to lchan 1 0 5 0 + + +# Make sure that no percentage based handover merely reverses the situation between two cells: + +network + bts 0 + handover2 min-free-slots tch/f 4 + bts 1 + handover2 min-free-slots tch/f 4 + +set-ts-use trx 0 0 states * TCH/F TCH/F TCH/F TCH/F - - * +set-ts-use trx 1 0 states * TCH/F TCH/F TCH/F - - - * + +# the condition is false: target_overbooked_after_ho==50% < current_overbooked_before_ho==50%, so no congestion +# balancing is performed. +congestion-check +expect-no-chan -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22101 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I2664dd0857965c4dbf1f91e57c6324d9cf330423 Gerrit-Change-Number: 22101 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 15:48:11 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 11 Jan 2021 15:48:11 +0000 Subject: Change in osmo-bsc[master]: power_control: cosmetic changes and fixes to the documentation In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22099 ) Change subject: power_control: cosmetic changes and fixes to the documentation ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22099 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I744d09fb22d8b07ed433a34a958ef384fd3d62da Gerrit-Change-Number: 22099 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Mon, 11 Jan 2021 15:48:11 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 15:48:41 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 11 Jan 2021 15:48:41 +0000 Subject: Change in osmo-bsc[master]: hodec2: to balance congestion, use overload percent In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22085 ) Change subject: hodec2: to balance congestion, use overload percent ...................................................................... Patch Set 4: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/22085/3/src/osmo-bsc/handover_decision_2.c File src/osmo-bsc/handover_decision_2.c: https://gerrit.osmocom.org/c/osmo-bsc/+/22085/3/src/osmo-bsc/handover_decision_2.c at 404 PS3, Line 404: /* There can be no negative amount of free TCH/x, clamp to a minimum of zero available slots. This could > I would in that case use unsigned values in this function and add ASSERT to the wherever you think i [?] which means that we have three assertions at the callers instead of one in the function itself. The values passed in are of type int as well, there is no point in making it unsigned. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22085 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I55234c6c99eb02ceee52be0d7388bea14304930f Gerrit-Change-Number: 22085 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 11 Jan 2021 15:48:41 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: neels Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 15:49:31 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 11 Jan 2021 15:49:31 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Introduce test TC_pcuif_suspend_active_tbf In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22100 ) Change subject: pcu: Introduce test TC_pcuif_suspend_active_tbf ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22100/1/pcu/PCU_Tests.ttcn File pcu/PCU_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22100/1/pcu/PCU_Tests.ttcn at 401 PS1, Line 401: f_rx_rlcmac_dl_block_exp_dummy(dl_block); Do you think it makes sense to send a few RTS requests here to check more than one DL block? -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22100 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I9538fbdc806eb26e93a0421b520c8d34de61f91f Gerrit-Change-Number: 22100 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Mon, 11 Jan 2021 15:49:31 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 15:50:55 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 11 Jan 2021 15:50:55 +0000 Subject: Change in osmo-bsc[master]: hodec2: to balance congestion, use overload percent In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22085 ) Change subject: hodec2: to balance congestion, use overload percent ...................................................................... Patch Set 4: Code-Review+1 not worth the discussion, let's merge however you prefer. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22085 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I55234c6c99eb02ceee52be0d7388bea14304930f Gerrit-Change-Number: 22085 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 11 Jan 2021 15:50:55 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 15:51:38 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 11 Jan 2021 15:51:38 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Introduce test TC_pcuif_suspend_active_tbf In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22100 ) Change subject: pcu: Introduce test TC_pcuif_suspend_active_tbf ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22100/1/pcu/PCU_Tests.ttcn File pcu/PCU_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22100/1/pcu/PCU_Tests.ttcn at 401 PS1, Line 401: f_rx_rlcmac_dl_block_exp_dummy(dl_block); > Do you think it makes sense to send a few RTS requests here to check more than one DL block? Why would I need to check more than one? the scheduler should be scheduling data ASAP. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22100 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I9538fbdc806eb26e93a0421b520c8d34de61f91f Gerrit-Change-Number: 22100 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Mon, 11 Jan 2021 15:51:38 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: fixeria Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 15:53:36 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 11 Jan 2021 15:53:36 +0000 Subject: Change in osmo-bsc[master]: handover_test: enhance test_balance_congestion_by_percentage.ho_vty In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22101 ) Change subject: handover_test: enhance test_balance_congestion_by_percentage.ho_vty ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22101 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I2664dd0857965c4dbf1f91e57c6324d9cf330423 Gerrit-Change-Number: 22101 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 11 Jan 2021 15:53:36 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 15:57:35 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 11 Jan 2021 15:57:35 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Introduce test TC_pcuif_suspend_active_tbf In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22100 ) Change subject: pcu: Introduce test TC_pcuif_suspend_active_tbf ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22100/1/pcu/PCU_Tests.ttcn File pcu/PCU_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22100/1/pcu/PCU_Tests.ttcn at 401 PS1, Line 401: f_rx_rlcmac_dl_block_exp_dummy(dl_block); > Why would I need to check more than one? the scheduler should be scheduling data ASAP. Well, our test suite is still suffering from race conditions when e.g. a dummy block gets received instead of what was expected... -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22100 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I9538fbdc806eb26e93a0421b520c8d34de61f91f Gerrit-Change-Number: 22100 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Mon, 11 Jan 2021 15:57:35 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Comment-In-Reply-To: fixeria Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 15:58:18 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 11 Jan 2021 15:58:18 +0000 Subject: Change in osmo-bsc[master]: hodec2: to balance congestion, use overload percent In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bsc/+/22085 to look at the new patch set (#5). Change subject: hodec2: to balance congestion, use overload percent ...................................................................... hodec2: to balance congestion, use overload percent For balancing load across congested cells and across congested TCH/* kinds, instead of comparing the number of lchans above the configured congestion threshold, compare the percent of lchans of overload. In short, using a percentage prevents cells with less min-free-slots to fill up 100% while neighbor cells still may have several free lchans available. An obvious example of why this is desirable is illustrated by test_balance_congestion_by_percentage.ho_vty: Cell A has min-free-slots 2, and has all slots occupied. Cell B has min-free-slots 4, and has 2 slots remaining free. If we count congested lchans as in current master: cell A has a congestion count of 2: two more lchans in use than "allowed". If we move one lchan over to cell B, it ends up with a congestion count of 3, which is worse than 2. So when counting lchans, we decide that cell A should remain full. Instead, when comparing percentage of remaining lchans, we would see that cell A is loaded 100% above congestion (2 of 2 remaining lchans in use), but when moving one lchan to cell B, that would only be 75% loaded above its treshold (3 of 4 remaining lchans in use). So a percentage comparison would cause a handover to cell B. Related: SYS#5259 Change-Id: I55234c6c99eb02ceee52be0d7388bea14304930f --- M doc/manuals/chapters/handover.adoc M src/osmo-bsc/handover_decision_2.c M tests/handover/test_balance_congestion_by_percentage.ho_vty M tests/handover/test_balance_congestion_tchf_tchh.ho_vty 4 files changed, 57 insertions(+), 23 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/85/22085/5 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22085 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I55234c6c99eb02ceee52be0d7388bea14304930f Gerrit-Change-Number: 22085 Gerrit-PatchSet: 5 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 16:00:35 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 11 Jan 2021 16:00:35 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Introduce test TC_pcuif_suspend_active_tbf In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22100 ) Change subject: pcu: Introduce test TC_pcuif_suspend_active_tbf ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22100/1/pcu/PCU_Tests.ttcn File pcu/PCU_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22100/1/pcu/PCU_Tests.ttcn at 401 PS1, Line 401: f_rx_rlcmac_dl_block_exp_dummy(dl_block); > Well, our test suite is still suffering from race conditions when e.g. [?] This is not the case. In this scenario, if the TBF was available it would be sending a retransmission of the already transmitted DL block which hasn't been acked yet, no race condition possible, specially because we are sure PCU has handled the SUSPEND because we block on the BSSGP waiting for SUSPEND being forwarded. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22100 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I9538fbdc806eb26e93a0421b520c8d34de61f91f Gerrit-Change-Number: 22100 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Mon, 11 Jan 2021 16:00:35 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: fixeria Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 16:03:52 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 11 Jan 2021 16:03:52 +0000 Subject: Change in osmo-bsc[master]: hodec2: to balance congestion, use overload percent In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22085 ) Change subject: hodec2: to balance congestion, use overload percent ...................................................................... Patch Set 5: Code-Review+1 (2 comments) https://gerrit.osmocom.org/c/osmo-bsc/+/22085/5/doc/manuals/chapters/handover.adoc File doc/manuals/chapters/handover.adoc: https://gerrit.osmocom.org/c/osmo-bsc/+/22085/5/doc/manuals/chapters/handover.adoc at 513 PS5, Line 513: the algorithmic aim is to improve the percentage of load above the lol: algorithmic aim https://gerrit.osmocom.org/c/osmo-bsc/+/22085/5/src/osmo-bsc/handover_decision_2.c File src/osmo-bsc/handover_decision_2.c: https://gerrit.osmocom.org/c/osmo-bsc/+/22085/5/src/osmo-bsc/handover_decision_2.c at 405 PS5, Line 405: v = min_free_tch - free_tch; so v is always positive, hence v and return type can be unsigned :) -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22085 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I55234c6c99eb02ceee52be0d7388bea14304930f Gerrit-Change-Number: 22085 Gerrit-PatchSet: 5 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 11 Jan 2021 16:03:52 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 16:53:51 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 11 Jan 2021 16:53:51 +0000 Subject: Change in osmo-pcu[master]: ms: Replace struct var with rate_ctr References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22102 ) Change subject: ms: Replace struct var with rate_ctr ...................................................................... ms: Replace struct var with rate_ctr Let's use usual osmocom rate_ctr instead of having one variable + setter/getter functions, so we can easily add new counters and also because it makes code more clear (no need to look at what the "update" function is doing). Using rate counter also provides info about how recently the MS has been interacting with the network. Related: OS#4907 Change-Id: I744507fde4291955c1dbbb9739b18a12a80145b1 --- M src/gprs_ms.c M src/gprs_ms.h M src/gprs_rlcmac_sched.cpp M src/pcu_vty_functions.cpp 4 files changed, 33 insertions(+), 15 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/02/22102/1 diff --git a/src/gprs_ms.c b/src/gprs_ms.c index 94f69cd..9281eff 100644 --- a/src/gprs_ms.c +++ b/src/gprs_ms.c @@ -35,11 +35,25 @@ #include #include #include +#include #include "coding_scheme.h" #define GPRS_CODEL_SLOW_INTERVAL_MS 4000 extern void *tall_pcu_ctx; +static unsigned int next_ms_ctr_group_id; + +static const struct rate_ctr_desc ms_ctr_description[] = { + [MS_CTR_DL_CTRL_MSG_SCHED] = { "ms:dl_ctrl_msg_sched", "Amount of DL CTRL messages scheduled" }, +}; + +const struct rate_ctr_group_desc ms_ctrg_desc = { + "pcu:ms", + "MS Statistics", + OSMO_STATS_CLASS_SUBSCRIBER, + ARRAY_SIZE(ms_ctr_description), + ms_ctr_description, +}; static int64_t now_msec() { @@ -118,7 +132,15 @@ } ms->last_cs_not_low = now_msec(); ms->app_info_pending = false; + + ms->ctrs = rate_ctr_group_alloc(ms, &ms_ctrg_desc, next_ms_ctr_group_id++); + if (!ms->ctrs) + goto free_ret; + return ms; +free_ret: + talloc_free(ms); + return NULL; } static int ms_talloc_destructor(struct GprsMs *ms) @@ -148,6 +170,9 @@ } llc_queue_clear(&ms->llc_queue, ms->bts); + + if (ms->ctrs) + rate_ctr_group_free(ms->ctrs); return 0; } diff --git a/src/gprs_ms.h b/src/gprs_ms.h index ade3f3b..6391f72 100644 --- a/src/gprs_ms.h +++ b/src/gprs_ms.h @@ -34,6 +34,7 @@ #include #include +#include #include #include @@ -44,6 +45,10 @@ #include #include +enum ms_counter_id { + MS_CTR_DL_CTRL_MSG_SCHED, +}; + struct BTS; struct gprs_rlcmac_trx; struct GprsMs; @@ -94,7 +99,7 @@ struct gprs_codel *codel_state; enum mcs_kind mode; - unsigned dl_ctrl_msg; + struct rate_ctr_group *ctrs; }; struct GprsMs *ms_alloc(struct BTS *bts, uint32_t tlli); @@ -215,16 +220,6 @@ return ms->nack_rate_dl; } -static inline unsigned ms_dl_ctrl_msg(const struct GprsMs *ms) -{ - return ms->dl_ctrl_msg; -} - -static inline void ms_update_dl_ctrl_msg(struct GprsMs *ms) -{ - ms->dl_ctrl_msg++; -} - static inline uint8_t ms_reserved_dl_slots(const struct GprsMs *ms) { return ms->reserved_dl_slots; diff --git a/src/gprs_rlcmac_sched.cpp b/src/gprs_rlcmac_sched.cpp index d7958c4..924a4de 100644 --- a/src/gprs_rlcmac_sched.cpp +++ b/src/gprs_rlcmac_sched.cpp @@ -233,8 +233,7 @@ LOGP(DRLCMACSCHED, LOGL_DEBUG, "Scheduling control " "message at RTS for %s (TRX=%d, TS=%d)\n", tbf_name(tbf), trx, ts); - /* Updates the dl ctrl msg counter for ms */ - ms_update_dl_ctrl_msg(tbf->ms()); + rate_ctr_inc(&tbf->ms()->ctrs->ctr[MS_CTR_DL_CTRL_MSG_SCHED]); return msg; } diff --git a/src/pcu_vty_functions.cpp b/src/pcu_vty_functions.cpp index 6100b13..92be77b 100644 --- a/src/pcu_vty_functions.cpp +++ b/src/pcu_vty_functions.cpp @@ -175,8 +175,6 @@ vty_out(vty, " MS I level (slot %d): %d dB%s", i, ms->l1_meas.ts[i].ms_i_level, VTY_NEWLINE); } - vty_out(vty, " RLC/MAC DL Control Msg: %d%s", ms_dl_ctrl_msg(ms), - VTY_NEWLINE); if (ms_ul_tbf(ms)) vty_out(vty, " Uplink TBF: TFI=%d, state=%s%s", ms_ul_tbf(ms)->tfi(), @@ -201,6 +199,7 @@ tbf->state_name(), VTY_NEWLINE); } + vty_out_rate_ctr_group(vty, " ", ms->ctrs); return CMD_SUCCESS; } -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22102 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I744507fde4291955c1dbbb9739b18a12a80145b1 Gerrit-Change-Number: 22102 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 17:07:35 2021 From: gerrit-no-reply at lists.osmocom.org (iedemam) Date: Mon, 11 Jan 2021 17:07:35 +0000 Subject: Change in osmo-bsc[master]: stats: Add granularity to SDCCH/TCH/LU activity. References: Message-ID: iedemam has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22103 ) Change subject: stats: Add granularity to SDCCH/TCH/LU activity. ...................................................................... stats: Add granularity to SDCCH/TCH/LU activity. Change-Id: I4df275e4770c5ff3643c79ba828e736986f8bb47 --- M include/osmocom/bsc/bts.h M src/osmo-bsc/abis_rsl.c M src/osmo-bsc/assignment_fsm.c M src/osmo-bsc/bts.c M src/osmo-bsc/osmo_bsc_filter.c 5 files changed, 176 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/03/22103/1 diff --git a/include/osmocom/bsc/bts.h b/include/osmocom/bsc/bts.h index c79e7f7..b616aa5 100644 --- a/include/osmocom/bsc/bts.h +++ b/include/osmocom/bsc/bts.h @@ -18,6 +18,13 @@ enum bts_counter_id { BTS_CTR_CHREQ_TOTAL, + BTS_CTR_CHREQ_ATTEMPTED_EMERG, + BTS_CTR_CHREQ_ATTEMPTED_CALL, + BTS_CTR_CHREQ_ATTEMPTED_LOCATION_UPD, + BTS_CTR_CHREQ_ATTEMPTED_PAG, + BTS_CTR_CHREQ_ATTEMPTED_PDCH, + BTS_CTR_CHREQ_ATTEMPTED_OTHER, + BTS_CTR_CHREQ_ATTEMPTED_UNKNOWN, BTS_CTR_CHREQ_SUCCESSFUL, BTS_CTR_CHREQ_NO_CHANNEL, BTS_CTR_CHAN_RF_FAIL, @@ -36,6 +43,8 @@ BTS_CTR_PAGING_NO_ACTIVE_PAGING, BTS_CTR_PAGING_MSC_FLUSH, BTS_CTR_CHAN_ACT_TOTAL, + BTS_CTR_CHAN_ACT_SDCCH, + BTS_CTR_CHAN_ACT_TCH, BTS_CTR_CHAN_ACT_NACK, BTS_CTR_RSL_UNKNOWN, BTS_CTR_RSL_IPA_NACK, @@ -65,12 +74,23 @@ BTS_CTR_TS_BORKEN_EV_PDCH_DEACT_ACK_NACK, BTS_CTR_TS_BORKEN_EV_TEARDOWN, BTS_CTR_ASSIGNMENT_ATTEMPTED, + BTS_CTR_ASSIGNMENT_ATTEMPTED_SDCCH, + BTS_CTR_ASSIGNMENT_ATTEMPTED_TCH, BTS_CTR_ASSIGNMENT_COMPLETED, + BTS_CTR_ASSIGNMENT_COMPLETED_SDCCH, + BTS_CTR_ASSIGNMENT_COMPLETED_TCH, BTS_CTR_ASSIGNMENT_STOPPED, BTS_CTR_ASSIGNMENT_NO_CHANNEL, + BTS_CTR_ASSIGNMENT_NO_CHANNEL_SDCCH, + BTS_CTR_ASSIGNMENT_NO_CHANNEL_TCH, BTS_CTR_ASSIGNMENT_TIMEOUT, BTS_CTR_ASSIGNMENT_FAILED, BTS_CTR_ASSIGNMENT_ERROR, + BTS_CTR_LOCATION_UPDATE_REQUEST, + BTS_CTR_LOCATION_UPDATE_ACCEPT, + BTS_CTR_LOCATION_UPDATE_REJECT, + BTS_CTR_LOCATION_UPDATE_DETACH, + BTS_CTR_LOCATION_UPDATE_UNKNOWN, BTS_CTR_HANDOVER_ATTEMPTED, BTS_CTR_HANDOVER_COMPLETED, BTS_CTR_HANDOVER_STOPPED, diff --git a/src/osmo-bsc/abis_rsl.c b/src/osmo-bsc/abis_rsl.c index 2142219..a68c9fb 100644 --- a/src/osmo-bsc/abis_rsl.c +++ b/src/osmo-bsc/abis_rsl.c @@ -613,6 +613,17 @@ msg->dst = trx->rsl_link; rate_ctr_inc(&bts->bts_ctrs->ctr[BTS_CTR_CHAN_ACT_TOTAL]); + switch (lchan->type) { + case GSM_LCHAN_SDCCH: + rate_ctr_inc(&bts->bts_ctrs->ctr[BTS_CTR_CHAN_ACT_SDCCH]); + break; + case GSM_LCHAN_TCH_H: + case GSM_LCHAN_TCH_F: + rate_ctr_inc(&bts->bts_ctrs->ctr[BTS_CTR_CHAN_ACT_TCH]); + break; + default: + break; + } return abis_rsl_sendmsg(msg); } @@ -1511,6 +1522,29 @@ get_value_string(gsm_chreq_descs, rqd->reason), rqd->ref.ra, bts->network->neci, rqd->reason); rate_ctr_inc(&bts->bts_ctrs->ctr[BTS_CTR_CHREQ_TOTAL]); + switch (rqd->reason) { + case GSM_CHREQ_REASON_EMERG: + rate_ctr_inc(&bts->bts_ctrs->ctr[BTS_CTR_CHREQ_ATTEMPTED_EMERG]); + break; + case GSM_CHREQ_REASON_CALL: + rate_ctr_inc(&bts->bts_ctrs->ctr[BTS_CTR_CHREQ_ATTEMPTED_CALL]); + break; + case GSM_CHREQ_REASON_LOCATION_UPD: + rate_ctr_inc(&bts->bts_ctrs->ctr[BTS_CTR_CHREQ_ATTEMPTED_LOCATION_UPD]); + break; + case GSM_CHREQ_REASON_PAG: + rate_ctr_inc(&bts->bts_ctrs->ctr[BTS_CTR_CHREQ_ATTEMPTED_PAG]); + break; + case GSM_CHREQ_REASON_PDCH: + rate_ctr_inc(&bts->bts_ctrs->ctr[BTS_CTR_CHREQ_ATTEMPTED_PDCH]); + break; + case GSM_CHREQ_REASON_OTHER: + rate_ctr_inc(&bts->bts_ctrs->ctr[BTS_CTR_CHREQ_ATTEMPTED_OTHER]); + break; + default: + rate_ctr_inc(&bts->bts_ctrs->ctr[BTS_CTR_CHREQ_ATTEMPTED_UNKNOWN]); + break; + } /* Enqueue request */ llist_add_tail(&rqd->entry, &bts->chan_rqd_queue); diff --git a/src/osmo-bsc/assignment_fsm.c b/src/osmo-bsc/assignment_fsm.c index 7db37b2..21e80b8 100644 --- a/src/osmo-bsc/assignment_fsm.c +++ b/src/osmo-bsc/assignment_fsm.c @@ -255,6 +255,17 @@ osmo_fsm_inst_term(conn->assignment.fi, OSMO_FSM_TERM_REGULAR, 0); assignment_count_result(CTR_ASSIGNMENT_COMPLETED); + switch (conn->lchan->type) { + case GSM_LCHAN_SDCCH: + rate_ctr_inc(&conn->lchan->ts->trx->bts->bts_ctrs->ctr[BTS_CTR_ASSIGNMENT_COMPLETED_SDCCH]); + break; + case GSM_LCHAN_TCH_H: + case GSM_LCHAN_TCH_F: + rate_ctr_inc(&conn->lchan->ts->trx->bts->bts_ctrs->ctr[BTS_CTR_ASSIGNMENT_COMPLETED_TCH]); + break; + default: + break; + } } static void assignment_fsm_update_id(struct gsm_subscriber_connection *conn) @@ -418,6 +429,17 @@ OSMO_ASSERT(!conn->assignment.new_lchan); assignment_count(CTR_ASSIGNMENT_ATTEMPTED); + switch (conn->lchan->type) { + case GSM_LCHAN_SDCCH: + rate_ctr_inc(&bts->bts_ctrs->ctr[BTS_CTR_ASSIGNMENT_ATTEMPTED_SDCCH]); + break; + case GSM_LCHAN_TCH_H: + case GSM_LCHAN_TCH_F: + rate_ctr_inc(&bts->bts_ctrs->ctr[BTS_CTR_ASSIGNMENT_ATTEMPTED_TCH]); + break; + default: + break; + } fi = osmo_fsm_inst_alloc_child(&assignment_fsm, conn->fi, GSCON_EV_ASSIGNMENT_END); OSMO_ASSERT(fi); @@ -452,6 +474,17 @@ * the fi will be gone from error handling in there. */ if (conn->assignment.fi) { assignment_count_result(CTR_ASSIGNMENT_COMPLETED); + switch (conn->lchan->type) { + case GSM_LCHAN_SDCCH: + rate_ctr_inc(&bts->bts_ctrs->ctr[BTS_CTR_ASSIGNMENT_COMPLETED_SDCCH]); + break; + case GSM_LCHAN_TCH_H: + case GSM_LCHAN_TCH_F: + rate_ctr_inc(&bts->bts_ctrs->ctr[BTS_CTR_ASSIGNMENT_COMPLETED_TCH]); + break; + default: + break; + } osmo_fsm_inst_term(conn->assignment.fi, OSMO_FSM_TERM_REGULAR, 0); } return; @@ -506,6 +539,18 @@ * down the assignment in case of failure. */ if (!conn->assignment.new_lchan) { assignment_count_result(CTR_ASSIGNMENT_NO_CHANNEL); + switch (req->ch_mode_rate[0].chan_mode) { + case GSM48_CMODE_SIGN: + rate_ctr_inc(&bts->bts_ctrs->ctr[BTS_CTR_ASSIGNMENT_NO_CHANNEL_SDCCH]); + break; + case GSM48_CMODE_SPEECH_V1: + case GSM48_CMODE_SPEECH_EFR: + case GSM48_CMODE_SPEECH_AMR: + rate_ctr_inc(&bts->bts_ctrs->ctr[BTS_CTR_ASSIGNMENT_NO_CHANNEL_TCH]); + break; + default: + break; + } assignment_fail(GSM0808_CAUSE_NO_RADIO_RESOURCE_AVAILABLE, "BSSMAP Assignment Command:" " No lchan available for: pref=%s:%s / alt1=%s:%s / alt2=%s:%s\n", diff --git a/src/osmo-bsc/bts.c b/src/osmo-bsc/bts.c index 39122ae..9d42d50 100644 --- a/src/osmo-bsc/bts.c +++ b/src/osmo-bsc/bts.c @@ -757,6 +757,27 @@ [BTS_CTR_CHREQ_TOTAL] = \ { "chreq:total", "Received channel requests" }, + [BTS_CTR_CHREQ_ATTEMPTED_EMERG] = \ + { "chreq:attempted_emerg", + "Received channel requests EMERG" }, + [BTS_CTR_CHREQ_ATTEMPTED_CALL] = \ + { "chreq:attempted_call", + "Received channel requests CALL" }, + [BTS_CTR_CHREQ_ATTEMPTED_LOCATION_UPD] = \ + { "chreq:attempted_location_upd", + "Received channel requests LOCATION_UPD" }, + [BTS_CTR_CHREQ_ATTEMPTED_PAG] = \ + { "chreq:attempted_pag", + "Received channel requests PAG" }, + [BTS_CTR_CHREQ_ATTEMPTED_PDCH] = \ + { "chreq:attempted_pdch", + "Received channel requests PDCH" }, + [BTS_CTR_CHREQ_ATTEMPTED_OTHER] = \ + { "chreq:attempted_other", + "Received channel requests OTHER" }, + [BTS_CTR_CHREQ_ATTEMPTED_UNKNOWN] = \ + { "chreq:attempted_unknown", + "Received channel requests UNKNOWN" }, [BTS_CTR_CHREQ_SUCCESSFUL] = \ { "chreq:successful", "Successful channel requests (immediate assign sent)" }, @@ -811,6 +832,12 @@ [BTS_CTR_CHAN_ACT_TOTAL] = \ { "chan_act:total", "Total number of Channel Activations" }, + [BTS_CTR_CHAN_ACT_SDCCH] = \ + { "chan_act:sdcch", + "Number of SDCCH Channel Activations" }, + [BTS_CTR_CHAN_ACT_TCH] = \ + { "chan_act:tch", + "Number of TCH Channel Activations" }, [BTS_CTR_CHAN_ACT_NACK] = \ { "chan_act:nack", "Number of Channel Activations that the BTS NACKed" }, @@ -900,15 +927,33 @@ [BTS_CTR_ASSIGNMENT_ATTEMPTED] = \ { "assignment:attempted", "Assignment attempts" }, + [BTS_CTR_ASSIGNMENT_ATTEMPTED_SDCCH] = \ + { "assignment:attempted_sdcch", + "Assignment attempts SDCCH" }, + [BTS_CTR_ASSIGNMENT_ATTEMPTED_TCH] = \ + { "assignment:attempted_tch", + "Assignment attempts TCH" }, [BTS_CTR_ASSIGNMENT_COMPLETED] = \ { "assignment:completed", "Assignment completed" }, + [BTS_CTR_ASSIGNMENT_COMPLETED_SDCCH] = \ + { "assignment:completed_sdcch", + "Assignment completed SDCCH" }, + [BTS_CTR_ASSIGNMENT_COMPLETED_TCH] = \ + { "assignment:completed_tch", + "Assignment completed TCH" }, [BTS_CTR_ASSIGNMENT_STOPPED] = \ { "assignment:stopped", "Connection ended during Assignment" }, [BTS_CTR_ASSIGNMENT_NO_CHANNEL] = \ { "assignment:no_channel", "Failure to allocate lchan for Assignment" }, + [BTS_CTR_ASSIGNMENT_NO_CHANNEL_SDCCH] = \ + { "assignment:no_channel_sdcch", + "Failure to allocate SDCCH lchan for Assignment" }, + [BTS_CTR_ASSIGNMENT_NO_CHANNEL_TCH] = \ + { "assignment:no_channel_tch", + "Failure to allocate TCH lchan for Assignment" }, [BTS_CTR_ASSIGNMENT_TIMEOUT] = \ { "assignment:timeout", "Assignment timed out" }, @@ -918,7 +963,21 @@ [BTS_CTR_ASSIGNMENT_ERROR] = \ { "assignment:error", "Assignment failed for other reason" }, - + [BTS_CTR_LOCATION_UPDATE_REQUEST] = \ + { "location_update:request", + "Location Update Request" }, + [BTS_CTR_LOCATION_UPDATE_ACCEPT] = \ + { "location_update:accept", + "Location Update Accept" }, + [BTS_CTR_LOCATION_UPDATE_REJECT] = \ + { "location_update:reject", + "Location Update Reject" }, + [BTS_CTR_LOCATION_UPDATE_DETACH] = \ + { "location_update:detach", + "Location Update Detach" }, + [BTS_CTR_LOCATION_UPDATE_UNKNOWN] = \ + { "location_update:unknown", + "Location Update UNKNOWN" }, [BTS_CTR_HANDOVER_ATTEMPTED] = \ { "handover:attempted", "Intra-BSC handover attempts" }, diff --git a/src/osmo-bsc/osmo_bsc_filter.c b/src/osmo-bsc/osmo_bsc_filter.c index 497b3e4..4113ac4 100644 --- a/src/osmo-bsc/osmo_bsc_filter.c +++ b/src/osmo-bsc/osmo_bsc_filter.c @@ -118,6 +118,23 @@ if (mtype == GSM48_MT_MM_INFO) { bsc_patch_mm_info(conn, &gh->data[0], length); } + switch (mtype) { + case GSM48_MT_MM_LOC_UPD_REQUEST: + rate_ctr_inc(&conn->lchan->ts->trx->bts->bts_ctrs->ctr[BTS_CTR_LOCATION_UPDATE_REQUEST]); + break; + case GSM48_MT_MM_LOC_UPD_ACCEPT: + rate_ctr_inc(&conn->lchan->ts->trx->bts->bts_ctrs->ctr[BTS_CTR_LOCATION_UPDATE_ACCEPT]); + break; + case GSM48_MT_MM_LOC_UPD_REJECT: + rate_ctr_inc(&conn->lchan->ts->trx->bts->bts_ctrs->ctr[BTS_CTR_LOCATION_UPDATE_REJECT]); + break; + case GSM48_MT_MM_IMSI_DETACH_IND: + rate_ctr_inc(&conn->lchan->ts->trx->bts->bts_ctrs->ctr[BTS_CTR_LOCATION_UPDATE_DETACH]); + break; + default: + rate_ctr_inc(&conn->lchan->ts->trx->bts->bts_ctrs->ctr[BTS_CTR_LOCATION_UPDATE_UNKNOWN]); + break; + } return 0; } -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22103 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I4df275e4770c5ff3643c79ba828e736986f8bb47 Gerrit-Change-Number: 22103 Gerrit-PatchSet: 1 Gerrit-Owner: iedemam Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 17:49:49 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Mon, 11 Jan 2021 17:49:49 +0000 Subject: Change in osmo-pcu[master]: tbf: add virtual destructor References: Message-ID: Hoernchen has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22104 ) Change subject: tbf: add virtual destructor ...................................................................... tbf: add virtual destructor This ensures spec compliance, because currently the base class constructor would be called through a base class pointer to derived class instead of the most derived one, which ist unexpected and actually undefined behavior in c++11 and beyond. Change-Id: Ic4abde1658a983bb0ccf9a526177dce50ff6dc23 --- M src/tbf.h 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/04/22104/1 diff --git a/src/tbf.h b/src/tbf.h index 4bbfea2..72b5cf0 100644 --- a/src/tbf.h +++ b/src/tbf.h @@ -213,6 +213,7 @@ struct gprs_rlcmac_tbf { gprs_rlcmac_tbf(BTS *bts_, GprsMs *ms, gprs_rlcmac_tbf_direction dir); + virtual ~gprs_rlcmac_tbf() {} static void free_all(struct gprs_rlcmac_trx *trx); static void free_all(struct gprs_rlcmac_pdch *pdch); -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22104 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ic4abde1658a983bb0ccf9a526177dce50ff6dc23 Gerrit-Change-Number: 22104 Gerrit-PatchSet: 1 Gerrit-Owner: Hoernchen Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 17:55:07 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Mon, 11 Jan 2021 17:55:07 +0000 Subject: Change in osmo-pcu[master]: tbf: add virtual destructor In-Reply-To: References: Message-ID: Hello pespin, fixeria, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-pcu/+/22104 to look at the new patch set (#2). Change subject: tbf: add virtual destructor ...................................................................... tbf: add virtual destructor This ensures spec compliance, because currently the base class destructor would be called through a base class pointer to derived class instead of the most derived one, which ist unexpected and actually undefined behavior in c++11 and beyond. Change-Id: Ic4abde1658a983bb0ccf9a526177dce50ff6dc23 --- M src/tbf.h 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/04/22104/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22104 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ic4abde1658a983bb0ccf9a526177dce50ff6dc23 Gerrit-Change-Number: 22104 Gerrit-PatchSet: 2 Gerrit-Owner: Hoernchen Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 17:56:09 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 11 Jan 2021 17:56:09 +0000 Subject: Change in osmo-pcu[master]: ms: Replace struct var with rate_ctr In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22102 ) Change subject: ms: Replace struct var with rate_ctr ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22102 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I744507fde4291955c1dbbb9739b18a12a80145b1 Gerrit-Change-Number: 22102 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Mon, 11 Jan 2021 17:56:09 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 17:56:49 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 11 Jan 2021 17:56:49 +0000 Subject: Change in osmo-pcu[master]: tbf: add virtual destructor In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22104 ) Change subject: tbf: add virtual destructor ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22104 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ic4abde1658a983bb0ccf9a526177dce50ff6dc23 Gerrit-Change-Number: 22104 Gerrit-PatchSet: 2 Gerrit-Owner: Hoernchen Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Mon, 11 Jan 2021 17:56:49 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 18:10:27 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 11 Jan 2021 18:10:27 +0000 Subject: Change in osmo-pcu[master]: tbf: add virtual destructor In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22104 ) Change subject: tbf: add virtual destructor ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22104 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ic4abde1658a983bb0ccf9a526177dce50ff6dc23 Gerrit-Change-Number: 22104 Gerrit-PatchSet: 2 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 11 Jan 2021 18:10:27 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 18:11:11 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Mon, 11 Jan 2021 18:11:11 +0000 Subject: Change in osmo-pcu[master]: tbf: add virtual destructor In-Reply-To: References: Message-ID: Hoernchen has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22104 ) Change subject: tbf: add virtual destructor ...................................................................... tbf: add virtual destructor This ensures spec compliance, because currently the base class destructor would be called through a base class pointer to derived class instead of the most derived one, which ist unexpected and actually undefined behavior in c++11 and beyond. Change-Id: Ic4abde1658a983bb0ccf9a526177dce50ff6dc23 --- M src/tbf.h 1 file changed, 1 insertion(+), 0 deletions(-) Approvals: fixeria: Looks good to me, but someone else must approve pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/tbf.h b/src/tbf.h index 4bbfea2..72b5cf0 100644 --- a/src/tbf.h +++ b/src/tbf.h @@ -213,6 +213,7 @@ struct gprs_rlcmac_tbf { gprs_rlcmac_tbf(BTS *bts_, GprsMs *ms, gprs_rlcmac_tbf_direction dir); + virtual ~gprs_rlcmac_tbf() {} static void free_all(struct gprs_rlcmac_trx *trx); static void free_all(struct gprs_rlcmac_pdch *pdch); -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22104 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ic4abde1658a983bb0ccf9a526177dce50ff6dc23 Gerrit-Change-Number: 22104 Gerrit-PatchSet: 2 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 18:17:12 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 11 Jan 2021 18:17:12 +0000 Subject: Change in osmo-pcu[master]: tbf: remove 'software error' logs from tbf_free References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22105 ) Change subject: tbf: remove 'software error' logs from tbf_free ...................................................................... tbf: remove 'software error' logs from tbf_free It is expected that the tbf object is freed at any moment in time, for instance if osmo-pcu drops PCUIF connection with osmo-bts. I couldn't find any reason why it would e dangerous to free the tbf, so let's remove this message. related: OS#4779 Change-Id: I4ab5ccaa5bf6257b18d8fd5ba06baab083821817 --- M src/tbf.cpp M src/tbf.h M tests/tbf/TbfTest.err 3 files changed, 0 insertions(+), 22 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/05/22105/1 diff --git a/src/tbf.cpp b/src/tbf.cpp index 28e24b8..6dcd954 100644 --- a/src/tbf.cpp +++ b/src/tbf.cpp @@ -301,7 +301,6 @@ } LOGPTBF(tbf, LOGL_INFO, "free\n"); - tbf->check_pending_ass(); tbf->stop_timers("freeing TBF"); /* TODO: Could/Should generate bssgp_tx_llc_discarded */ tbf_unlink_pdch(tbf); diff --git a/src/tbf.h b/src/tbf.h index 72b5cf0..d767547 100644 --- a/src/tbf.h +++ b/src/tbf.h @@ -233,7 +233,6 @@ void set_ack_state(enum gprs_rlcmac_tbf_ul_ack_state new_state, const char *file, int line); void poll_sched_set(const char *file, int line); void poll_sched_unset(const char *file, int line); - void check_pending_ass(); bool check_n_clear(uint8_t state_flag); void set_assigned_on(uint8_t state_flag, bool check_ccch, const char *file, int line); void ass_type_mod(uint8_t t, bool unset, const char *file, int line); @@ -513,21 +512,6 @@ poll_state = GPRS_RLCMAC_POLL_NONE; } -inline void gprs_rlcmac_tbf::check_pending_ass() -{ - if (ul_ass_state != GPRS_RLCMAC_UL_ASS_NONE) - LOGPTBF(this, LOGL_ERROR, "FIXME: Software error: Pending uplink assignment in state %s. " - "This may not happen, because the assignment message never gets transmitted. " - "Please be sure not to free in this state. PLEASE FIX!\n", - get_value_string(gprs_rlcmac_tbf_ul_ass_state_names, ul_ass_state)); - - if (dl_ass_state != GPRS_RLCMAC_DL_ASS_NONE) - LOGPTBF(this, LOGL_ERROR, "FIXME: Software error: Pending downlink assignment in state %s. " - "This may not happen, because the assignment message never gets transmitted. " - "Please be sure not to free in this state. PLEASE FIX!\n", - get_value_string(gprs_rlcmac_tbf_dl_ass_state_names, dl_ass_state)); -} - inline bool gprs_rlcmac_tbf::check_n_clear(uint8_t state_flag) { if ((state_flags & (1 << state_flag))) { diff --git a/tests/tbf/TbfTest.err b/tests/tbf/TbfTest.err index fa5fd47..4d27cc9 100644 --- a/tests/tbf/TbfTest.err +++ b/tests/tbf/TbfTest.err @@ -521,7 +521,6 @@ MS(TLLI=0xf1000002, IMSI=, TA=0, 45/0, DL) IMSI '001001000000002' was already assigned to another MS object: TLLI = 0xf1000001, that IMSI will be removed TBF(TFI=0 TLLI=0xf1000001 DIR=DL STATE=FLOW) changes state from FLOW to RELEASING TBF(TFI=0 TLLI=0xf1000001 DIR=DL STATE=RELEASING) free -TBF(TFI=0 TLLI=0xf1000001 DIR=DL STATE=RELEASING) FIXME: Software error: Pending downlink assignment in state GPRS_RLCMAC_DL_ASS_SEND_ASS. This may not happen, because the assignment message never gets transmitted. Please be sure not to free in this state. PLEASE FIX! PDCH(TS 4, TRX 0): Detaching TBF(TFI=0 TLLI=0xf1000001 DIR=DL STATE=RELEASING), 1 TBFs, USFs = 00, TFIs = 00000002. Detaching TBF from MS object, TLLI = 0xf1000001, TBF = TBF(TFI=0 TLLI=0xf1000001 DIR=DL STATE=RELEASING) ********** DL-TBF ends here ********** @@ -529,7 +528,6 @@ Destroying MS object, TLLI = 0xffffffff TBF(TFI=1 TLLI=0xf1000002 DIR=DL STATE=FLOW) changes state from FLOW to RELEASING TBF(TFI=1 TLLI=0xf1000002 DIR=DL STATE=RELEASING) free -TBF(TFI=1 TLLI=0xf1000002 DIR=DL STATE=RELEASING) FIXME: Software error: Pending downlink assignment in state GPRS_RLCMAC_DL_ASS_SEND_ASS. This may not happen, because the assignment message never gets transmitted. Please be sure not to free in this state. PLEASE FIX! PDCH(TS 4, TRX 0): Detaching TBF(TFI=1 TLLI=0xf1000002 DIR=DL STATE=RELEASING), 0 TBFs, USFs = 00, TFIs = 00000000. Detaching TBF from MS object, TLLI = 0xf1000002, TBF = TBF(TFI=1 TLLI=0xf1000002 DIR=DL STATE=RELEASING) Destroying MS object, TLLI = 0xf1000002 @@ -1860,7 +1858,6 @@ Old MS: TLLI = 0xf1223344, TA = 7, IMSI = 0011223344, LLC = 2 MS(TLLI=0xf1223344, IMSI=0011223344, TA=7, 1/0, UL DL) UL RSSI: 31 dBm TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) free -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) FIXME: Software error: Pending downlink assignment in state GPRS_RLCMAC_DL_ASS_SEND_ASS. This may not happen, because the assignment message never gets transmitted. Please be sure not to free in this state. PLEASE FIX! TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) stopping timer T3169 [freeing TBF] PDCH(TS 7, TRX 0): Detaching TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW), 0 TBFs, USFs = 00, TFIs = 00000000. Detaching TBF from MS object, TLLI = 0xf1223344, TBF = TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) @@ -1999,7 +1996,6 @@ Old MS: TLLI = 0xf1223344, TA = 7, IMSI = 0011223344, LLC = 2 MS(TLLI=0xf1223344, IMSI=0011223344, TA=7, 1/0, UL DL) UL RSSI: 31 dBm TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) free -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) FIXME: Software error: Pending downlink assignment in state GPRS_RLCMAC_DL_ASS_SEND_ASS. This may not happen, because the assignment message never gets transmitted. Please be sure not to free in this state. PLEASE FIX! TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) stopping timer T3169 [freeing TBF] PDCH(TS 7, TRX 0): Detaching TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW), 0 TBFs, USFs = 00, TFIs = 00000000. Detaching TBF from MS object, TLLI = 0xf1223344, TBF = TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) @@ -6023,7 +6019,6 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) V(B): (V(A)=1186)"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNAAANAAAAAAAAAAAAAAAAAAAAAAAAAA"(V(S)-1=1287) A=Acked N=Nacked U=Unacked X=Resend-Unacked I=Invalid TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) changes state from FLOW to RELEASING TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EGPRS) free -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EGPRS) FIXME: Software error: Pending downlink assignment in state GPRS_RLCMAC_DL_ASS_SEND_ASS. This may not happen, because the assignment message never gets transmitted. Please be sure not to free in this state. PLEASE FIX! PDCH(TS 4, TRX 0): Detaching TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EGPRS), 0 TBFs, USFs = 00, TFIs = 00000000. Detaching TBF from MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EGPRS) Destroying MS object, TLLI = 0xffeeddcc -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22105 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I4ab5ccaa5bf6257b18d8fd5ba06baab083821817 Gerrit-Change-Number: 22105 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 18:19:06 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 11 Jan 2021 18:19:06 +0000 Subject: Change in osmo-pcu[master]: ms: Replace struct var with rate_ctr In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22102 ) Change subject: ms: Replace struct var with rate_ctr ...................................................................... Patch Set 1: Code-Review-1 Don't merge this yet, I should use shared namespace for integer specifying ctr group idx. -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22102 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I744507fde4291955c1dbbb9739b18a12a80145b1 Gerrit-Change-Number: 22102 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 11 Jan 2021 18:19:06 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 18:43:34 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 11 Jan 2021 18:43:34 +0000 Subject: Change in osmo-pcu[master]: ms: Replace struct var with rate_ctr In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22102 ) Change subject: ms: Replace struct var with rate_ctr ...................................................................... Patch Set 1: -Code-Review My bad, actually the idx namespace is per group_name_prefix, so tha'ts correct. -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22102 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I744507fde4291955c1dbbb9739b18a12a80145b1 Gerrit-Change-Number: 22102 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 11 Jan 2021 18:43:34 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 18:57:03 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 11 Jan 2021 18:57:03 +0000 Subject: Change in osmo-bsc[master]: stats: Add granularity to SDCCH/TCH/LU activity. In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22103 ) Change subject: stats: Add granularity to SDCCH/TCH/LU activity. ...................................................................... Patch Set 1: (4 comments) https://gerrit.osmocom.org/c/osmo-bsc/+/22103/1/src/osmo-bsc/assignment_fsm.c File src/osmo-bsc/assignment_fsm.c: https://gerrit.osmocom.org/c/osmo-bsc/+/22103/1/src/osmo-bsc/assignment_fsm.c at 433 PS1, Line 433: case GSM_LCHAN_SDCCH: : rate_ctr_inc(&bts->bts_ctrs->ctr[BTS_CTR_ASSIGNMENT_ATTEMPTED_SDCCH]); : break; : case GSM_LCHAN_TCH_H: : case GSM_LCHAN_TCH_F: : rate_ctr_inc(&bts->bts_ctrs->ctr[BTS_CTR_ASSIGNMENT_ATTEMPTED_TCH]); : break; I think here conn->lchan still points to the old channel type, so you are incrementing the counters of what the _old_ channel was before the new channel was assigned. I don't think it's what you want? https://gerrit.osmocom.org/c/osmo-bsc/+/22103/1/src/osmo-bsc/assignment_fsm.c at 477 PS1, Line 477: switch (conn->lchan->type) { : case GSM_LCHAN_SDCCH: : rate_ctr_inc(&bts->bts_ctrs->ctr[BTS_CTR_ASSIGNMENT_COMPLETED_SDCCH]); : break; : case GSM_LCHAN_TCH_H: : case GSM_LCHAN_TCH_F: : rate_ctr_inc(&bts->bts_ctrs->ctr[BTS_CTR_ASSIGNMENT_COMPLETED_TCH]); : break; : default: : break; : } I think I would incremenet both the attempted + completed counters here. This is about the case where the existing channel type is sufficient to fulfill the MSCs assignment request, and hence no actual assignment happens on the Um interface. https://gerrit.osmocom.org/c/osmo-bsc/+/22103/1/src/osmo-bsc/assignment_fsm.c at 543 PS1, Line 543: case GSM48_CMODE_SIGN: : rate_ctr_inc(&bts->bts_ctrs->ctr[BTS_CTR_ASSIGNMENT_NO_CHANNEL_SDCCH]); : break; : case GSM48_CMODE_SPEECH_V1: : case GSM48_CMODE_SPEECH_EFR: : case GSM48_CMODE_SPEECH_AMR: : rate_ctr_inc(&bts->bts_ctrs->ctr[BTS_CTR_ASSIGNMENT_NO_CHANNEL_TCH]); : break; the layer3 (04.08) channel mode does not have a 1:1 mapping to channel types. For example, it is perfectly legal to assign a TCH in SIGN mode. Your counting would be wrong in this situation, as you'd account it as SDCCH. https://gerrit.osmocom.org/c/osmo-bsc/+/22103/1/src/osmo-bsc/osmo_bsc_filter.c File src/osmo-bsc/osmo_bsc_filter.c: https://gerrit.osmocom.org/c/osmo-bsc/+/22103/1/src/osmo-bsc/osmo_bsc_filter.c at 122 PS1, Line 122: case GSM48_MT_MM_LOC_UPD_REQUEST: : rate_ctr_inc(&conn->lchan->ts->trx->bts->bts_ctrs->ctr[BTS_CTR_LOCATION_UPDATE_REQUEST]); : break; at least the comment on top of bsc_scan_msc_msg() hints that this function is only called in the downlink direction. Hence you would never count the LU request? Do you see the counter incrementing? -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22103 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I4df275e4770c5ff3643c79ba828e736986f8bb47 Gerrit-Change-Number: 22103 Gerrit-PatchSet: 1 Gerrit-Owner: iedemam Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-Comment-Date: Mon, 11 Jan 2021 18:57:03 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 19:14:25 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 11 Jan 2021 19:14:25 +0000 Subject: Change in osmo-ci[master]: osmo-build-dep.sh: don't build osmo-gsm-manuals In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22095 ) Change subject: osmo-build-dep.sh: don't build osmo-gsm-manuals ...................................................................... Patch Set 1: (2 comments) https://gerrit.osmocom.org/c/osmo-ci/+/22095/1//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-ci/+/22095/1//COMMIT_MSG at 17 PS1, Line 17: removing the call to : "osmo-build-dep.sh osmo-gsm-manuals I think we still should remove those callers everywhere. If this continues for some years, nobody will understand the scripts anymore, as you think they will build a dependency, but then in reality they don't. WE can merge your patch here as an interim measure, but please fix the callers/projects. https://gerrit.osmocom.org/c/osmo-ci/+/22095/1/scripts/osmo-build-dep.sh File scripts/osmo-build-dep.sh: https://gerrit.osmocom.org/c/osmo-ci/+/22095/1/scripts/osmo-build-dep.sh at 61 PS1, Line 61: 0 please print some WARNING here that at least in the logs one will see that despine the caller stated "osmo-build-deps.sh osmo-gsm-manuals" we actually are skippping that. -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22095 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I5238cf3f93ded97ed2b44d27868123a646e122dc Gerrit-Change-Number: 22095 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Mon, 11 Jan 2021 19:14:25 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 19:15:30 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 11 Jan 2021 19:15:30 +0000 Subject: Change in osmo-pcu[master]: tbf: remove 'software error' logs from tbf_free In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22105 ) Change subject: tbf: remove 'software error' logs from tbf_free ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22105 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I4ab5ccaa5bf6257b18d8fd5ba06baab083821817 Gerrit-Change-Number: 22105 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 11 Jan 2021 19:15:30 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 19:16:58 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 11 Jan 2021 19:16:58 +0000 Subject: Change in osmo-bsc[master]: power_control: add increase / reduce step size recommendations In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21873 ) Change subject: power_control: add increase / reduce step size recommendations ...................................................................... Patch Set 7: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/21873/6/src/osmo-bsc/bsc_vty.c File src/osmo-bsc/bsc_vty.c: https://gerrit.osmocom.org/c/osmo-bsc/+/21873/6/src/osmo-bsc/bsc_vty.c at 4945 PS6, Line 4945: vty_out(vty, "%% Increase step size (%d) should be greater " > I'm not even sure greater is a correct term here. [?] Why do you think the HTML entity is called ">l"? It's for greater than, see e.g. https://www.mathsisfun.com/equal-less-greater.html -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21873 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I82e762c0c2b5e0dd739850ee494ab0a798e353de Gerrit-Change-Number: 21873 Gerrit-PatchSet: 7 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 11 Jan 2021 19:16:58 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 19:17:18 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 11 Jan 2021 19:17:18 +0000 Subject: Change in osmo-bsc[master]: power_control: add increase / reduce step size recommendations In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21873 ) Change subject: power_control: add increase / reduce step size recommendations ...................................................................... Patch Set 7: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21873 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I82e762c0c2b5e0dd739850ee494ab0a798e353de Gerrit-Change-Number: 21873 Gerrit-PatchSet: 7 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 11 Jan 2021 19:17:18 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 19:17:34 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 11 Jan 2021 19:17:34 +0000 Subject: Change in osmo-bsc[master]: power_control: cosmetic changes and fixes to the documentation In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22099 ) Change subject: power_control: cosmetic changes and fixes to the documentation ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22099 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I744d09fb22d8b07ed433a34a958ef384fd3d62da Gerrit-Change-Number: 22099 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 11 Jan 2021 19:17:34 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 19:17:36 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 11 Jan 2021 19:17:36 +0000 Subject: Change in osmo-bsc[master]: power_control: cosmetic changes and fixes to the documentation In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22099 ) Change subject: power_control: cosmetic changes and fixes to the documentation ...................................................................... power_control: cosmetic changes and fixes to the documentation Change-Id: I744d09fb22d8b07ed433a34a958ef384fd3d62da Related: SYS#4918 --- M doc/manuals/chapters/power_control.adoc 1 file changed, 11 insertions(+), 11 deletions(-) Approvals: laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/doc/manuals/chapters/power_control.adoc b/doc/manuals/chapters/power_control.adoc index b8d182a..0cf7d89 100644 --- a/doc/manuals/chapters/power_control.adoc +++ b/doc/manuals/chapters/power_control.adoc @@ -35,7 +35,7 @@ It depends on how the power control parameters are signaled to the BTS. If a given BTS vendor/model requires _each_ RSL CHANnel ACTIVation message to contain the full -set of parameters, than changing them in the BSC at run-time would affect all newly +set of parameters, then changing them in the BSC at run-time would affect all newly established logical channels immediately. The existing connections would continue to use parameters which were in use during the time of channel activation. @@ -45,7 +45,7 @@ dynamic power control parameters at run-time would affect neither the existing nor newly established logical channels. -It's still possible to 'push' a modified set of MS/BS power control parameters to a +It's still possible to "push" a modified set of MS/BS power control parameters to a BTS that accepts the default parameters at startup without triggering the A-bis/RSL link re-establishment and thus interrupting the service. The following command triggers resending of both MS/BS power control parameters: @@ -68,7 +68,7 @@ (Downlink) power control. This chapter is aimed to put some light on them. All parameters can be set via the VTY interface, currently within the scope of -a BTS. This means that all transceivers will 'inherit' the same configuration. +a BTS node. This means that all transceivers will "inherit" the same configuration. ---- OsmoBSC(config)# network @@ -99,8 +99,8 @@ . lv (rxlev-avg|rxqual-avg) algo osmo-ewma beta <1-99> ---- -NOTE: Flag 'v' indicates that a given parameter is vendor specific, so different -BTS vendors/models may ignore or even reject it. Flag 'l' indicates that changing +NOTE: Flag `v` indicates that a given parameter is vendor specific, so different +BTS vendors/models may ignore or even reject it. Flag `l` indicates that changing a given parameter at run-time would affect only the new connections. ==== Power control mode @@ -119,7 +119,7 @@ By default, `static` mode is used for BS power control, while `dyn-bts` is used for MS power control. Changing the mode at run-time would not affect already -established connections, only the new ones (check flag 'l'). +established connections, only the new ones (check flag `l`). For BS power control, there is an additional parameter: @@ -206,7 +206,7 @@ `U_RXQUAL_XX_P`, where the `XX` is either `DL` (Downlink) or `UL` (Uplink). The process of threshold comparison actually involves more than just upper and lower -values for RxLev and RxQual. The received 'raw' measurements are being averaged and +values for RxLev and RxQual. The received "raw" measurements are being averaged and stored in a circular buffer, so the power change is triggered only if Pn averages out of Nn averages exceed the corresponding thresholds. @@ -230,15 +230,15 @@ ==== Measurement averaging process 3GPP 45.008, section A.3.1 requires that the measurement values reported by both -an MS and the BTS are be pre-processed before appearing on the input of the +an MS and the BTS are being pre-processed before appearing on the input of the corresponding power control loops in any of the following ways: - Unweighted average; -- Weighted average, with the weightings determined by O&M; +- Weighted average, with the weightings determined by O\&M; - Modified median calculation, with exceptionally high and low values (outliers) removed before the median calculation. -The pre-processing is expected to be performed for both MS and BS power control +The pre-processing is expected to be performed by both MS and BS power control loops independently, for every input parameter (i.e. RxLev and RxQual). ---- @@ -291,7 +291,7 @@ ---- <1> Both MS and BS power control is to be performed by the BTS autonomously. <2> Unweighted average is applied to RxLev values. -<3> RxLev Hreqave and Hreqt values: 4 out of 6 SACCH blocks produce an averaged measurement. +<3> RxLev: Hreqave and Hreqt values: 4 out of 6 SACCH blocks produce an averaged measurement. <4> Osmocom specific EWMA is applied to RxQual values with smoothing factor = 50% (beta=0.5). <5> RxQual: Hreqave and Hreqt values: 2 out of 3 SACCH blocks produce an averaged measurement. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22099 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I744d09fb22d8b07ed433a34a958ef384fd3d62da Gerrit-Change-Number: 22099 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 19:18:37 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 11 Jan 2021 19:18:37 +0000 Subject: Change in docker-playground[master]: debian-stretch-jenkins, osmo-gsm-tester: add osmo-ci In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22094 ) Change subject: debian-stretch-jenkins, osmo-gsm-tester: add osmo-ci ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22094 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I0820f13cd740f7d4a8999d279cef6ae293a67d81 Gerrit-Change-Number: 22094 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 11 Jan 2021 19:18:37 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 19:19:08 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 11 Jan 2021 19:19:08 +0000 Subject: Change in osmo-ci[master]: jobs: don't overwrite PATH in "docker run" In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22096 ) Change subject: jobs: don't overwrite PATH in "docker run" ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22096 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I45bd7ea56849dab839a98cfd52806f7cd288094e Gerrit-Change-Number: 22096 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 11 Jan 2021 19:19:08 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 19:52:30 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 11 Jan 2021 19:52:30 +0000 Subject: Change in osmo-pcu[master]: ms: Replace struct var with rate_ctr In-Reply-To: References: Message-ID: Hello Jenkins Builder, fixeria, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-pcu/+/22102 to look at the new patch set (#2). Change subject: ms: Replace struct var with rate_ctr ...................................................................... ms: Replace struct var with rate_ctr Let's use usual osmocom rate_ctr instead of having one variable + setter/getter functions, so we can easily add new counters and also because it makes code more clear (no need to look at what the "update" function is doing). Using rate counter also provides info about how recently the MS has been interacting with the network. Related: OS#4907 Change-Id: I744507fde4291955c1dbbb9739b18a12a80145b1 --- M src/gprs_ms.c M src/gprs_ms.h M src/gprs_rlcmac_sched.cpp M src/pcu_vty_functions.cpp 4 files changed, 33 insertions(+), 15 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/02/22102/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22102 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I744507fde4291955c1dbbb9739b18a12a80145b1 Gerrit-Change-Number: 22102 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 19:52:32 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 11 Jan 2021 19:52:32 +0000 Subject: Change in osmo-pcu[master]: AllocTest: Avoid queuing tons of to-be-freed ms References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22106 ) Change subject: AllocTest: Avoid queuing tons of to-be-freed ms ...................................................................... AllocTest: Avoid queuing tons of to-be-freed ms When both TBFs (Dl, Ul), are detached, ms_detach_tbf() will call ms_start_timer() which will hold a reference of the MS (ms_ref()) and wait for X seconds (VTY config, T=-2030, 60 seconds by default) before unrefing the MS, which will trigger ms_update_status() finally (ref==0) and will in turn call cb.ms_idle(), which will tell the ms_storage to free the MS. This mechanism is used to keep MS objects around for a certain time so that when new TBFs are established, we have cached interesting information about the MS, ready to use. However, in AllocTest, tons of MS are allocated in a loop calling a function (such as test_alloc_b_ul_dl()). In that function, a BTS is allocated in the stack and at the end of the function BTS::cleanup() is called due to implicit destructor, which ends up calling ms_storage::cleanup() which removes all MS from its list and frees them *if they are not idle*. The problem here, is that due to T=-2030, an extra reference is hold and hence the ms is not considered idle (ms_is_idle() checks ms->ref==0). As a result, the MS is never freed, because we don't use libosmocore mainloop here (and in any case, it would take 60 seconds to free it). By setting the timeout of T=-2030 to 0, ms_start_timer will avoid using the timer and will also avoid holding the extra reference, hence allowing ms_storage to free the object during cleanup(). This fix really helps in improving performance for AllocTest specially after MS object contains a rate_ctr. As tons of MS objects were left alive, they stood in the rate_ctr single per-process queue, making the test last crazy amount of time and spending 50% of the time or more iterating the list full of MS related rate counters. Change-Id: I6b6ebe8903e4fe76da5e09b02b6ef28542007b6c --- M tests/alloc/AllocTest.cpp 1 file changed, 6 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/06/22106/1 diff --git a/tests/alloc/AllocTest.cpp b/tests/alloc/AllocTest.cpp index 17cee46..85c3527 100644 --- a/tests/alloc/AllocTest.cpp +++ b/tests/alloc/AllocTest.cpp @@ -219,6 +219,8 @@ enable_ts_on_bts(bts, ts0, ts1, ts2, ts3, ts4, ts5, ts6, ts7); ms = the_bts.ms_alloc(ms_class, 0); + /* Avoid delaying free to avoid tons of to-be-freed ms objects queuing */ + ms_set_timeout(ms, 0); ul_tbf = tbf_alloc_ul_tbf(bts, ms, -1, true); if (!ul_tbf) return false; @@ -262,6 +264,8 @@ enable_ts_on_bts(bts, ts0, ts1, ts2, ts3, ts4, ts5, ts6, ts7); ms = the_bts.ms_alloc(ms_class, 0); + /* Avoid delaying free to avoid tons of to-be-freed ms objects queuing */ + ms_set_timeout(ms, 0); dl_tbf = tbf_alloc_dl_tbf(bts, ms, -1, true); if (!dl_tbf) return false; @@ -314,6 +318,8 @@ tfi = the_bts.tfi_find_free(GPRS_RLCMAC_UL_TBF, &trx_no, -1); OSMO_ASSERT(tfi >= 0); ms = the_bts.ms_alloc(ms_class, 0); + /* Avoid delaying free to avoid tons of to-be-freed ms objects queuing */ + ms_set_timeout(ms, 0); ul_tbf = tbf_alloc_ul_tbf(bts, ms, -1, false); if (!ul_tbf) return false; -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22106 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I6b6ebe8903e4fe76da5e09b02b6ef28542007b6c Gerrit-Change-Number: 22106 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 20:01:33 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 11 Jan 2021 20:01:33 +0000 Subject: Change in osmo-pcu[master]: AllocTest: Avoid queuing tons of to-be-freed ms In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22106 ) Change subject: AllocTest: Avoid queuing tons of to-be-freed ms ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22106 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I6b6ebe8903e4fe76da5e09b02b6ef28542007b6c Gerrit-Change-Number: 22106 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: fixeria Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Mon, 11 Jan 2021 20:01:33 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 20:01:51 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Mon, 11 Jan 2021 20:01:51 +0000 Subject: Change in osmo-pcu[master]: AllocTest: Avoid queuing tons of to-be-freed ms In-Reply-To: References: Message-ID: Hoernchen has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22106 ) Change subject: AllocTest: Avoid queuing tons of to-be-freed ms ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22106 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I6b6ebe8903e4fe76da5e09b02b6ef28542007b6c Gerrit-Change-Number: 22106 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: fixeria Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Mon, 11 Jan 2021 20:01:51 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 20:07:20 2021 From: gerrit-no-reply at lists.osmocom.org (iedemam) Date: Mon, 11 Jan 2021 20:07:20 +0000 Subject: Change in osmo-bsc[master]: stats: Add granularity to SDCCH/TCH/LU activity. In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bsc/+/22103 to look at the new patch set (#3). Change subject: stats: Add granularity to SDCCH/TCH/LU activity. ...................................................................... stats: Add granularity to SDCCH/TCH/LU activity. Change-Id: I4df275e4770c5ff3643c79ba828e736986f8bb47 --- M include/osmocom/bsc/bts.h M src/osmo-bsc/abis_rsl.c M src/osmo-bsc/assignment_fsm.c M src/osmo-bsc/bts.c M src/osmo-bsc/osmo_bsc_filter.c 5 files changed, 179 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/03/22103/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22103 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I4df275e4770c5ff3643c79ba828e736986f8bb47 Gerrit-Change-Number: 22103 Gerrit-PatchSet: 3 Gerrit-Owner: iedemam Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 20:51:36 2021 From: gerrit-no-reply at lists.osmocom.org (iedemam) Date: Mon, 11 Jan 2021 20:51:36 +0000 Subject: Change in osmo-bsc[master]: stats: Add granularity to SDCCH/TCH/LU activity. In-Reply-To: References: Message-ID: iedemam has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22103 ) Change subject: stats: Add granularity to SDCCH/TCH/LU activity. ...................................................................... Patch Set 3: (4 comments) Thanks for the feedback. New changeset being pushed in a couple of minutes. https://gerrit.osmocom.org/c/osmo-bsc/+/22103/1/src/osmo-bsc/assignment_fsm.c File src/osmo-bsc/assignment_fsm.c: https://gerrit.osmocom.org/c/osmo-bsc/+/22103/1/src/osmo-bsc/assignment_fsm.c at 433 PS1, Line 433: case GSM_LCHAN_SDCCH: : rate_ctr_inc(&bts->bts_ctrs->ctr[BTS_CTR_ASSIGNMENT_ATTEMPTED_SDCCH]); : break; : case GSM_LCHAN_TCH_H: : case GSM_LCHAN_TCH_F: : rate_ctr_inc(&bts->bts_ctrs->ctr[BTS_CTR_ASSIGNMENT_ATTEMPTED_TCH]); : break; > I think here conn->lchan still points to the old channel type, so you are incrementing the counters [?] Correct. Removing for now. https://gerrit.osmocom.org/c/osmo-bsc/+/22103/1/src/osmo-bsc/assignment_fsm.c at 477 PS1, Line 477: switch (conn->lchan->type) { : case GSM_LCHAN_SDCCH: : rate_ctr_inc(&bts->bts_ctrs->ctr[BTS_CTR_ASSIGNMENT_COMPLETED_SDCCH]); : break; : case GSM_LCHAN_TCH_H: : case GSM_LCHAN_TCH_F: : rate_ctr_inc(&bts->bts_ctrs->ctr[BTS_CTR_ASSIGNMENT_COMPLETED_TCH]); : break; : default: : break; : } > I think I would incremenet both the attempted + completed counters here. [?] I have also misunderstood this then. These counters were not yet being bunched into the reporting and are not yet necessary. Removing for now. https://gerrit.osmocom.org/c/osmo-bsc/+/22103/1/src/osmo-bsc/assignment_fsm.c at 543 PS1, Line 543: case GSM48_CMODE_SIGN: : rate_ctr_inc(&bts->bts_ctrs->ctr[BTS_CTR_ASSIGNMENT_NO_CHANNEL_SDCCH]); : break; : case GSM48_CMODE_SPEECH_V1: : case GSM48_CMODE_SPEECH_EFR: : case GSM48_CMODE_SPEECH_AMR: : rate_ctr_inc(&bts->bts_ctrs->ctr[BTS_CTR_ASSIGNMENT_NO_CHANNEL_TCH]); : break; > the layer3 (04.08) channel mode does not have a 1:1 mapping to channel types. [?] It may be perfectly legal but is it common? In my admittedly limited testing of these counters it always lined up with the activity I had performed on the network. Their purpose is to detect blocking and report when an SDCCH or TCH channel has been requested but the pool was exhausted. Perhaps there is a better location to do this? https://gerrit.osmocom.org/c/osmo-bsc/+/22103/1/src/osmo-bsc/osmo_bsc_filter.c File src/osmo-bsc/osmo_bsc_filter.c: https://gerrit.osmocom.org/c/osmo-bsc/+/22103/1/src/osmo-bsc/osmo_bsc_filter.c at 122 PS1, Line 122: case GSM48_MT_MM_LOC_UPD_REQUEST: : rate_ctr_inc(&conn->lchan->ts->trx->bts->bts_ctrs->ctr[BTS_CTR_LOCATION_UPDATE_REQUEST]); : break; > at least the comment on top of bsc_scan_msc_msg() hints that this function is only called in the dow [?] I added this to capture all of the ENUM elements but you're right. Removed. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22103 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I4df275e4770c5ff3643c79ba828e736986f8bb47 Gerrit-Change-Number: 22103 Gerrit-PatchSet: 3 Gerrit-Owner: iedemam Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-Comment-Date: Mon, 11 Jan 2021 20:51:36 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: laforge Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 21:07:31 2021 From: gerrit-no-reply at lists.osmocom.org (iedemam) Date: Mon, 11 Jan 2021 21:07:31 +0000 Subject: Change in osmo-bsc[master]: stats: Add granularity to SDCCH/TCH/LU activity. In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bsc/+/22103 to look at the new patch set (#4). Change subject: stats: Add granularity to SDCCH/TCH/LU activity. ...................................................................... stats: Add granularity to SDCCH/TCH/LU activity. Change-Id: I4df275e4770c5ff3643c79ba828e736986f8bb47 --- M include/osmocom/bsc/bts.h M src/osmo-bsc/abis_rsl.c M src/osmo-bsc/assignment_fsm.c M src/osmo-bsc/bts.c M src/osmo-bsc/osmo_bsc_filter.c 5 files changed, 123 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/03/22103/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22103 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I4df275e4770c5ff3643c79ba828e736986f8bb47 Gerrit-Change-Number: 22103 Gerrit-PatchSet: 4 Gerrit-Owner: iedemam Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 21:51:00 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 11 Jan 2021 21:51:00 +0000 Subject: Change in docker-playground[master]: gbproxy-fr: Enable IP-SNS towards SGSN References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/22107 ) Change subject: gbproxy-fr: Enable IP-SNS towards SGSN ...................................................................... gbproxy-fr: Enable IP-SNS towards SGSN Change-Id: Id59cc404c355a3f494ad60be8d3a499b217084ec --- M ttcn3-gbproxy-test-fr/GBProxy_Tests.cfg M ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg 2 files changed, 2 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/07/22107/1 diff --git a/ttcn3-gbproxy-test-fr/GBProxy_Tests.cfg b/ttcn3-gbproxy-test-fr/GBProxy_Tests.cfg index 7ba5d99..3487ed1 100644 --- a/ttcn3-gbproxy-test-fr/GBProxy_Tests.cfg +++ b/ttcn3-gbproxy-test-fr/GBProxy_Tests.cfg @@ -15,6 +15,7 @@ GBProxy_Tests.mp_enable_bss_load_sharing := true; GBProxy_Tests.mp_nsconfig_sgsn := { { + handle_sns := true, nsvc := { { provider := { diff --git a/ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg b/ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg index 2cb5b80..35180aa 100644 --- a/ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg +++ b/ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg @@ -46,7 +46,7 @@ timer tns-alive 3 timer tns-alive-retries 10 nse 101 - nsvc ipa local 172.18.25.103 23000 nsvci 101 + ip-sns 172.18.24.103 23000 nse 2001 nsvc fr hdlcnet1 dlci 16 nsvci 1 nsvc fr hdlcnet2 dlci 17 nsvci 2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22107 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Id59cc404c355a3f494ad60be8d3a499b217084ec Gerrit-Change-Number: 22107 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 22:15:36 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 11 Jan 2021 22:15:36 +0000 Subject: Change in docker-playground[master]: gbproxy-fr: Enable IP-SNS towards SGSN In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22107 ) Change subject: gbproxy-fr: Enable IP-SNS towards SGSN ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22107 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Id59cc404c355a3f494ad60be8d3a499b217084ec Gerrit-Change-Number: 22107 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 11 Jan 2021 22:15:36 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 11 23:05:41 2021 From: gerrit-no-reply at lists.osmocom.org (keith) Date: Mon, 11 Jan 2021 23:05:41 +0000 Subject: Change in osmo-pcu[master]: tbf: remove 'software error' logs from tbf_free In-Reply-To: References: Message-ID: keith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22105 ) Change subject: tbf: remove 'software error' logs from tbf_free ...................................................................... Patch Set 1: Code-Review+1 W0rks for me -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22105 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I4ab5ccaa5bf6257b18d8fd5ba06baab083821817 Gerrit-Change-Number: 22105 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: keith Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 11 Jan 2021 23:05:41 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Tue Jan 12 04:39:50 2021 From: admin at opensuse.org (OBS Notification) Date: Tue, 12 Jan 2021 04:39:50 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <5ffd28206efa9_4d52b06e3fb85f0147556b@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/xUbuntu_20.04/x86_64 Package network:osmocom:nightly/simtrace2 failed to build in xUbuntu_20.04/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 237s] [COMPILING libboard/qmod/source/wwan_perst.c] [ 237s] [COMPILING libboard/qmod/source/card_pres.c] [ 238s] [COMPILING libboard/qmod/source/wwan_led.c] [ 238s] [COMPILING libboard/qmod/source/i2c.c] [ 238s] [COMPILING libboard/qmod/source/board_qmod.c] [ 238s] [COMPILING apps/dfu/main.c] [ 239s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 239s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 239s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 240s] Memory region Used Size Region Size %age Used [ 240s] rom: 16588 B 16 KB 101.25% [ 240s] ram: 11672 B 48 KB 23.75/usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 240s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 204 bytes [ 240s] collect2: error: ld returned 1 exit status [ 240s] % [ 240s] make[2]: *** [Makefile:234: flash] Error 1 [ 240s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 240s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 240s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 240s] dh_auto_build: error: make -j1 returned exit code 2 [ 240s] make: *** [debian/rules:16: build] Error 25 [ 240s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 240s] ### VM INTERACTION START ### [ 243s] [ 225.346192] sysrq: Power Off [ 243s] [ 225.394661] reboot: Power down [ 243s] ### VM INTERACTION END ### [ 243s] [ 243s] lamb04 failed "build simtrace2_0.7.0.69.aadd.dsc" at Tue Jan 12 04:39:34 UTC 2021. [ 243s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Jan 12 04:55:17 2021 From: admin at opensuse.org (OBS Notification) Date: Tue, 12 Jan 2021 04:55:17 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.10/x86_64 In-Reply-To: References: Message-ID: <5ffd2bc1efc50_4d52b06e3fb85f01478273@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/xUbuntu_20.10/x86_64 Package network:osmocom:nightly/simtrace2 failed to build in xUbuntu_20.10/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 155s] [COMPILING apps/dfu/main.c] [ 156s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 156s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 156s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 156s] Memory region Used Size Region Size %age Used [ 156s] rom: 16580 B 16 KB 101.20% [ 156s] ram: 11672 B 48 KB 23.75/usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 156s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 156s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 156s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 156s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 156s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 156s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 196 bytes [ 156s] collect2: error: ld returned 1 exit status [ 156s] % [ 156s] make[2]: *** [Makefile:234: flash] Error 1 [ 156s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 156s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 156s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 156s] dh_auto_build: error: make -j1 returned exit code 2 [ 156s] make: *** [debian/rules:16: build] Error 25 [ 156s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 156s] ### VM INTERACTION START ### [ 159s] [ 148.093030] sysrq: Power Off [ 159s] [ 148.095982] reboot: Power down [ 159s] ### VM INTERACTION END ### [ 159s] [ 159s] build81 failed "build simtrace2_0.7.0.69.aadd.dsc" at Tue Jan 12 04:54:58 UTC 2021. [ 159s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Tue Jan 12 07:25:01 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 12 Jan 2021 07:25:01 +0000 Subject: Change in docker-playground[master]: gbproxy-fr: Enable IP-SNS towards SGSN In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22107 ) Change subject: gbproxy-fr: Enable IP-SNS towards SGSN ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22107 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Id59cc404c355a3f494ad60be8d3a499b217084ec Gerrit-Change-Number: 22107 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 12 Jan 2021 07:25:01 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 08:18:23 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 12 Jan 2021 08:18:23 +0000 Subject: Change in osmo-ci[master]: osmo-build-dep.sh: don't build osmo-gsm-manuals In-Reply-To: References: Message-ID: Hello fixeria, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ci/+/22095 to look at the new patch set (#2). Change subject: osmo-build-dep.sh: don't build osmo-gsm-manuals ...................................................................... osmo-build-dep.sh: don't build osmo-gsm-manuals Save time by only cloning the repository, and not running autoreconf -fi, ./configure, make and make install. Especially the tests during make took up significant time, that slowed every project depending on osmo-gsm-manuals down while being built through master-builds or gerrit-verifications jobs. Set OSMO_GSM_MANUALS_DIR to the clone location. This is an interim measure, I'll submit more patches soon that remove the 'osmo-build-dep.sh osmo-gsm-manuals' calls from all projects. Change-Id: I5238cf3f93ded97ed2b44d27868123a646e122dc Related: OS#4912 --- M jobs/gerrit-verifications.yml M jobs/master-builds.yml M scripts/osmo-build-dep.sh 3 files changed, 10 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/95/22095/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22095 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I5238cf3f93ded97ed2b44d27868123a646e122dc Gerrit-Change-Number: 22095 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 08:20:17 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 12 Jan 2021 08:20:17 +0000 Subject: Change in osmo-ci[master]: osmo-build-dep.sh: don't build osmo-gsm-manuals In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22095 ) Change subject: osmo-build-dep.sh: don't build osmo-gsm-manuals ...................................................................... Patch Set 2: (1 comment) laforge wrote: > I think we still should remove those callers everywhere. If this continues for some years, nobody will understand the scripts anymore, as you think they will build a dependency, but then in reality they don't. WE can merge your patch here as an interim measure, but please fix the callers/projects. Makes sense. I've added a warning echo and will merge this as interim measure, then submit patches to remove the 'osmo-build-dep.sh osmo-gsm-manuals' calls in all projects. https://gerrit.osmocom.org/c/osmo-ci/+/22095/1/scripts/osmo-build-dep.sh File scripts/osmo-build-dep.sh: https://gerrit.osmocom.org/c/osmo-ci/+/22095/1/scripts/osmo-build-dep.sh at 61 PS1, Line 61: 0 > please print some WARNING here that at least in the logs one will see that despine the caller stated [?] Done -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22095 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I5238cf3f93ded97ed2b44d27868123a646e122dc Gerrit-Change-Number: 22095 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Tue, 12 Jan 2021 08:20:17 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: laforge Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 08:21:36 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 12 Jan 2021 08:21:36 +0000 Subject: Change in osmo-ci[master]: osmo-build-dep.sh: don't build osmo-gsm-manuals In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22095 ) Change subject: osmo-build-dep.sh: don't build osmo-gsm-manuals ...................................................................... Patch Set 2: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22095 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I5238cf3f93ded97ed2b44d27868123a646e122dc Gerrit-Change-Number: 22095 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 12 Jan 2021 08:21:36 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 08:21:42 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 12 Jan 2021 08:21:42 +0000 Subject: Change in osmo-ci[master]: jobs: don't overwrite PATH in "docker run" In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22096 ) Change subject: jobs: don't overwrite PATH in "docker run" ...................................................................... Patch Set 2: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22096 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I45bd7ea56849dab839a98cfd52806f7cd288094e Gerrit-Change-Number: 22096 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 12 Jan 2021 08:21:42 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 08:21:44 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 12 Jan 2021 08:21:44 +0000 Subject: Change in osmo-ci[master]: osmo-build-dep.sh: don't build osmo-gsm-manuals In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22095 ) Change subject: osmo-build-dep.sh: don't build osmo-gsm-manuals ...................................................................... osmo-build-dep.sh: don't build osmo-gsm-manuals Save time by only cloning the repository, and not running autoreconf -fi, ./configure, make and make install. Especially the tests during make took up significant time, that slowed every project depending on osmo-gsm-manuals down while being built through master-builds or gerrit-verifications jobs. Set OSMO_GSM_MANUALS_DIR to the clone location. This is an interim measure, I'll submit more patches soon that remove the 'osmo-build-dep.sh osmo-gsm-manuals' calls from all projects. Change-Id: I5238cf3f93ded97ed2b44d27868123a646e122dc Related: OS#4912 --- M jobs/gerrit-verifications.yml M jobs/master-builds.yml M scripts/osmo-build-dep.sh 3 files changed, 10 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved; Verified diff --git a/jobs/gerrit-verifications.yml b/jobs/gerrit-verifications.yml index a2f75ce..32a81f3 100644 --- a/jobs/gerrit-verifications.yml +++ b/jobs/gerrit-verifications.yml @@ -34,6 +34,7 @@ -e JOB_NAME="$JOB_NAME" \ -e MAKE=make \ -e OSMOPY_DEBUG_TCP_SOCKETS="1" \ + -e OSMO_GSM_MANUALS_DIR="/build/deps/osmo-gsm-manuals" \ -e PARALLEL_MAKE="$PARALLEL_MAKE" \ -e PATH="$PATH:/build_bin" \ -e WITH_MANUALS="1" \ diff --git a/jobs/master-builds.yml b/jobs/master-builds.yml index cdd3773..93d2e75 100644 --- a/jobs/master-builds.yml +++ b/jobs/master-builds.yml @@ -33,6 +33,7 @@ -e JOB_NAME="$JOB_NAME" \ -e MAKE=make \ -e OSMOPY_DEBUG_TCP_SOCKETS="1" \ + -e OSMO_GSM_MANUALS_DIR="/build/deps/osmo-gsm-manuals" \ -e PARALLEL_MAKE="$PARALLEL_MAKE" \ -e PATH="$PATH:/build_bin" \ -e PUBLISH="1" \ diff --git a/scripts/osmo-build-dep.sh b/scripts/osmo-build-dep.sh index 7013414..45916f6 100755 --- a/scripts/osmo-build-dep.sh +++ b/scripts/osmo-build-dep.sh @@ -54,6 +54,14 @@ cd "$subdir" fi +# osmo-gsm-manuals: save time by only cloning the repository (OS#4912). +# Projects depending on osmo-gsm-manuals can still build the manuals, because +# we set OSMO_GSM_MANUALS_DIR to the clone destination. +if [ "$project" = "osmo-gsm-manuals" ]; then + echo "WARNING: osmo-gsm-manuals cloned, but skipping build (OS#4912)" + exit 0 +fi + autoreconf --install --force ./configure --prefix="$inst/stow/$project" --with-systemdsystemunitdir="$inst/stow/$project/lib/systemd/system" $cfg -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22095 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I5238cf3f93ded97ed2b44d27868123a646e122dc Gerrit-Change-Number: 22095 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 08:21:45 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 12 Jan 2021 08:21:45 +0000 Subject: Change in osmo-ci[master]: jobs: don't overwrite PATH in "docker run" In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22096 ) Change subject: jobs: don't overwrite PATH in "docker run" ...................................................................... jobs: don't overwrite PATH in "docker run" Don't mount $HOME/bin to /build_bin, and don't overwrite PATH to include /build_bin anymore. This isn't needed because the scripts are installed to /usr/local/bin inside the docker images now. Depends: docker-playground I0820f13cd740f7d4a8999d279cef6ae293a67d81 Related: OS#4911 Change-Id: I45bd7ea56849dab839a98cfd52806f7cd288094e --- M jobs/gerrit-verifications.yml M jobs/master-builds.yml M jobs/osmo-gsm-tester-runner.yml 3 files changed, 2 insertions(+), 5 deletions(-) Approvals: laforge: Looks good to me, approved; Verified pespin: Looks good to me, but someone else must approve fixeria: Looks good to me, but someone else must approve diff --git a/jobs/gerrit-verifications.yml b/jobs/gerrit-verifications.yml index 32a81f3..d2e37cf 100644 --- a/jobs/gerrit-verifications.yml +++ b/jobs/gerrit-verifications.yml @@ -36,10 +36,9 @@ -e OSMOPY_DEBUG_TCP_SOCKETS="1" \ -e OSMO_GSM_MANUALS_DIR="/build/deps/osmo-gsm-manuals" \ -e PARALLEL_MAKE="$PARALLEL_MAKE" \ - -e PATH="$PATH:/build_bin" \ -e WITH_MANUALS="1" \ -w /build -i -u build \ - -v "$PWD:/build" -v "$HOME/bin:/build_bin" \ + -v "$PWD:/build" \ -v "$ARTIFACT_STORE:/artifact_store" \ docker_img: '$USER/debian-stretch-jenkins' docker_img_erlang: '$USER/debian-buster-erlang' diff --git a/jobs/master-builds.yml b/jobs/master-builds.yml index 93d2e75..3c3daf8 100644 --- a/jobs/master-builds.yml +++ b/jobs/master-builds.yml @@ -35,11 +35,10 @@ -e OSMOPY_DEBUG_TCP_SOCKETS="1" \ -e OSMO_GSM_MANUALS_DIR="/build/deps/osmo-gsm-manuals" \ -e PARALLEL_MAKE="$PARALLEL_MAKE" \ - -e PATH="$PATH:/build_bin" \ -e PUBLISH="1" \ -e WITH_MANUALS="1" \ -w /build -i -u build \ - -v "$PWD:/build" -v "$HOME/bin:/build_bin" \ + -v "$PWD:/build" \ -v "$ARTIFACT_STORE:/artifact_store" \ -v "$HOME/.ssh:/home/build/.ssh:ro" \ docker_img: '$USER/debian-stretch-jenkins' diff --git a/jobs/osmo-gsm-tester-runner.yml b/jobs/osmo-gsm-tester-runner.yml index 087201f..25d8fd0 100644 --- a/jobs/osmo-gsm-tester-runner.yml +++ b/jobs/osmo-gsm-tester-runner.yml @@ -237,7 +237,6 @@ -e BUILD_NUMBER="$BUILD_NUMBER" \ -w /build -i \ -v "$PWD:/build" \ - -v "$HOME/bin:/build_bin" \ -v "$HOME/.ssh:/home/build/.ssh:ro" \ --cap-add=sys_nice \ $USER/osmo-gsm-tester \ -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22096 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I45bd7ea56849dab839a98cfd52806f7cd288094e Gerrit-Change-Number: 22096 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 08:22:01 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 12 Jan 2021 08:22:01 +0000 Subject: Change in docker-playground[master]: gbproxy-fr: Enable IP-SNS towards SGSN In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22107 ) Change subject: gbproxy-fr: Enable IP-SNS towards SGSN ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22107 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Id59cc404c355a3f494ad60be8d3a499b217084ec Gerrit-Change-Number: 22107 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 12 Jan 2021 08:22:01 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 08:22:03 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 12 Jan 2021 08:22:03 +0000 Subject: Change in docker-playground[master]: gbproxy-fr: Enable IP-SNS towards SGSN In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22107 ) Change subject: gbproxy-fr: Enable IP-SNS towards SGSN ...................................................................... gbproxy-fr: Enable IP-SNS towards SGSN Change-Id: Id59cc404c355a3f494ad60be8d3a499b217084ec --- M ttcn3-gbproxy-test-fr/GBProxy_Tests.cfg M ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg 2 files changed, 2 insertions(+), 1 deletion(-) Approvals: pespin: Looks good to me, but someone else must approve daniel: Looks good to me, approved laforge: Verified diff --git a/ttcn3-gbproxy-test-fr/GBProxy_Tests.cfg b/ttcn3-gbproxy-test-fr/GBProxy_Tests.cfg index 7ba5d99..3487ed1 100644 --- a/ttcn3-gbproxy-test-fr/GBProxy_Tests.cfg +++ b/ttcn3-gbproxy-test-fr/GBProxy_Tests.cfg @@ -15,6 +15,7 @@ GBProxy_Tests.mp_enable_bss_load_sharing := true; GBProxy_Tests.mp_nsconfig_sgsn := { { + handle_sns := true, nsvc := { { provider := { diff --git a/ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg b/ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg index 2cb5b80..35180aa 100644 --- a/ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg +++ b/ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg @@ -46,7 +46,7 @@ timer tns-alive 3 timer tns-alive-retries 10 nse 101 - nsvc ipa local 172.18.25.103 23000 nsvci 101 + ip-sns 172.18.24.103 23000 nse 2001 nsvc fr hdlcnet1 dlci 16 nsvci 1 nsvc fr hdlcnet2 dlci 17 nsvci 2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22107 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Id59cc404c355a3f494ad60be8d3a499b217084ec Gerrit-Change-Number: 22107 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 08:25:25 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 12 Jan 2021 08:25:25 +0000 Subject: Change in osmo-bsc[master]: stats: Add granularity to SDCCH/TCH/LU activity. In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22103 ) Change subject: stats: Add granularity to SDCCH/TCH/LU activity. ...................................................................... Patch Set 4: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/22103/1/src/osmo-bsc/assignment_fsm.c File src/osmo-bsc/assignment_fsm.c: https://gerrit.osmocom.org/c/osmo-bsc/+/22103/1/src/osmo-bsc/assignment_fsm.c at 543 PS1, Line 543: case GSM48_CMODE_SIGN: : rate_ctr_inc(&bts->bts_ctrs->ctr[BTS_CTR_ASSIGNMENT_NO_CHANNEL_SDCCH]); : break; : case GSM48_CMODE_SPEECH_V1: : case GSM48_CMODE_SPEECH_EFR: : case GSM48_CMODE_SPEECH_AMR: : rate_ctr_inc(&bts->bts_ctrs->ctr[BTS_CTR_ASSIGNMENT_NO_CHANNEL_TCH]); : break; > It may be perfectly legal but is it common? In my admittedly limited testing of these counters it al [?] It is implementation dependent. I think OsmoBSC for example allocates TCH in SIGN mode if we're out of SDCCH but the MSC is asking for more signaling channels (e.g. for SMS delivery). Maybe in the end you don't want to count at all per physical channel type, but by usage? Then something like BSC_CTR_ASSIGNMENT_{SIGN,VOICE} might be more appropriate. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22103 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I4df275e4770c5ff3643c79ba828e736986f8bb47 Gerrit-Change-Number: 22103 Gerrit-PatchSet: 4 Gerrit-Owner: iedemam Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 12 Jan 2021 08:25:25 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Comment-In-Reply-To: iedemam Comment-In-Reply-To: laforge Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 08:26:23 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 12 Jan 2021 08:26:23 +0000 Subject: Change in docker-playground[master]: debian-stretch-jenkins, osmo-gsm-tester: add osmo-ci In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22094 ) Change subject: debian-stretch-jenkins, osmo-gsm-tester: add osmo-ci ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22094 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I0820f13cd740f7d4a8999d279cef6ae293a67d81 Gerrit-Change-Number: 22094 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 12 Jan 2021 08:26:23 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 08:26:25 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 12 Jan 2021 08:26:25 +0000 Subject: Change in docker-playground[master]: debian-stretch-jenkins, osmo-gsm-tester: add osmo-ci In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22094 ) Change subject: debian-stretch-jenkins, osmo-gsm-tester: add osmo-ci ...................................................................... debian-stretch-jenkins, osmo-gsm-tester: add osmo-ci Clone osmo-ci.git, and install all files from scripts/* to /usr/local/bin. Together with osmo-ci I45bd7ea56849dab839a98cfd52806f7cd288094e, this will make overwriting PATH obsolete. Related: OS#4911 Change-Id: I0820f13cd740f7d4a8999d279cef6ae293a67d81 --- M debian-stretch-jenkins/Dockerfile M osmo-gsm-tester/Dockerfile 2 files changed, 16 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved; Verified pespin: Looks good to me, but someone else must approve diff --git a/debian-stretch-jenkins/Dockerfile b/debian-stretch-jenkins/Dockerfile index 6455a21..1f87445 100644 --- a/debian-stretch-jenkins/Dockerfile +++ b/debian-stretch-jenkins/Dockerfile @@ -148,6 +148,14 @@ cd osmo-python-tests3 && \ python3 setup.py clean build install +# Install osmo-ci.git/scripts to /usr/local/bin +ADD http://git.osmocom.org/osmo-ci/patch /tmp/osmo-ci-commit +RUN git clone https://git.osmocom.org/osmo-ci osmo-ci && \ + cp -v $(find osmo-ci/scripts \ + -maxdepth 1 \ + -type f ) \ + /usr/local/bin + # Set a UTF-8 locale RUN sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen && \ dpkg-reconfigure --frontend=noninteractive locales && \ diff --git a/osmo-gsm-tester/Dockerfile b/osmo-gsm-tester/Dockerfile index 675d7df..0503fc6 100644 --- a/osmo-gsm-tester/Dockerfile +++ b/osmo-gsm-tester/Dockerfile @@ -135,6 +135,14 @@ (git symbolic-ref -q HEAD && git reset --hard origin/$OSMO_GSM_TESTER_BRANCH || exit 1); \ git rev-parse --abbrev-ref HEAD && git rev-parse HEAD +# Install osmo-ci.git/scripts to /usr/local/bin +ADD http://git.osmocom.org/osmo-ci/patch /tmp/osmo-ci-commit +RUN git clone https://git.osmocom.org/osmo-ci osmo-ci && \ + cp -v $(find osmo-ci/scripts \ + -maxdepth 1 \ + -type f ) \ + /usr/local/bin + # Copy several scripts and permission for osmo-gsm-tester: RUN mkdir -p /usr/local/bin/ && cp osmo-gsm-tester/utils/bin/* /usr/local/bin/ RUN mkdir -p /etc/sudoers.d/ && cp osmo-gsm-tester/utils/sudoers.d/* /etc/sudoers.d/ -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22094 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I0820f13cd740f7d4a8999d279cef6ae293a67d81 Gerrit-Change-Number: 22094 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 08:27:19 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 12 Jan 2021 08:27:19 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Introduce test TC_pcuif_suspend_active_tbf In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22100 ) Change subject: pcu: Introduce test TC_pcuif_suspend_active_tbf ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22100 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I9538fbdc806eb26e93a0421b520c8d34de61f91f Gerrit-Change-Number: 22100 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 12 Jan 2021 08:27:19 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 08:27:21 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 12 Jan 2021 08:27:21 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Introduce test TC_pcuif_suspend_active_tbf In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22100 ) Change subject: pcu: Introduce test TC_pcuif_suspend_active_tbf ...................................................................... pcu: Introduce test TC_pcuif_suspend_active_tbf Related: OS#4761 Change-Id: I9538fbdc806eb26e93a0421b520c8d34de61f91f --- M pcu/PCU_Tests.ttcn 1 file changed, 75 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/pcu/PCU_Tests.ttcn b/pcu/PCU_Tests.ttcn index 528ee25..13b33b2 100644 --- a/pcu/PCU_Tests.ttcn +++ b/pcu/PCU_Tests.ttcn @@ -338,6 +338,80 @@ f_shutdown(__BFILE__, __LINE__, final := true); } +/* Make sure TBF is released and no data is sent for in after reciving a Suspend Request from that MS. See OS#4761 */ +testcase TC_pcuif_suspend_active_tbf() runs on RAW_PCU_Test_CT { + var octetstring ra_id := enc_RoutingAreaIdentification(mp_gb_cfg.bvc[0].cell_id.ra_id); + var RlcmacDlBlock dl_block; + var octetstring data := f_rnd_octstring(10); + var uint32_t sched_fn; + var uint32_t dl_fn; + var GprsMS ms; + timer T; + + /* Initialize NS/BSSGP side */ + f_init_bssgp(); + /* Initialize GPRS MS side */ + f_init_gprs_ms(); + ms := g_ms[0]; /* We only use first MS in this test */ + + /* Initialize the PCU interface abstraction */ + f_init_raw(testcasename(), ts_PCUIF_INFO_default(c_PCUIF_Flags_noMCS)); + + /* Establish BSSGP connection to the PCU */ + f_bssgp_establish(); + f_bssgp_client_llgmm_assign(TLLI_UNUSED, ms.tlli); + + /* Establish an Uplink TBF */ + f_ms_establish_ul_tbf(ms); + + /* Send one UL block (with TLLI since we are in One-Phase Access + contention resoultion) and make sure it is ACKED fine */ + f_ms_tx_ul_data_block_multi(ms, 1, with_tlli := true); + f_rx_rlcmac_dl_block_exp_ack_nack(dl_block, sched_fn); + /* DL ACK/NACK sets poll+rrbp requesting PACKET CONTROL ACK */ + f_ms_tx_ul_block(ms, ts_RLCMAC_CTRL_ACK(ms.tlli), sched_fn); + + /* UL block should be received in SGSN */ + BSSGP[0].receive(tr_BSSGP_UL_UD(ms.tlli, mp_gb_cfg.bvc[0].cell_id)); + + /* Now SGSN sends some DL data, PCU will page on CCCH (PCH) */ + BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data)); + f_ms_exp_dl_tbf_ass_ccch(ms, PCU_IF_SAPI_PCH); + + /* Wait timer X2002 and DL block is available after CCCH IMM ASS: */ + f_sleep(X2002); + f_rx_rlcmac_dl_block_exp_data(dl_block, dl_fn, data, 0); + + /* MS has moved to CS, it sent SUSP REQ to BTS and PCU gets it, TBF is freed: */ + BTS.send(ts_PCUIF_SUSP_REQ(0, ms.tlli, ra_id, 0)); + + T.start(2.0); + alt { + [] BSSGP_GLOBAL[0].receive(tr_BSSGP_SUSPEND(ms.tlli, mp_gb_cfg.bvc[0].cell_id.ra_id)) { + setverdict(pass); + } + [] T.timeout { + setverdict(fail, "Timeout waiting for BSSGP SUSPEND"); + f_shutdown(__BFILE__, __LINE__); + } + } + + /* Make sure we don't receive data for that TBF since it was released + * before. Also check our TBF is not polled for UL. */ + f_rx_rlcmac_dl_block_exp_dummy(dl_block); + if (dl_block.ctrl.mac_hdr.usf != USF_UNUSED) { + setverdict(fail, "Unexpected USF ", dl_block.ctrl.mac_hdr.usf); + f_shutdown(__BFILE__, __LINE__); + } + + /* New data arrives, PCU should page the MS since no TBF active exists: */ + /* Send some more data, it will never reach the MS */ + BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data)); + f_ms_exp_dl_tbf_ass_ccch(ms, PCU_IF_SAPI_PCH); + + f_shutdown(__BFILE__, __LINE__, final := true); +} + /* Test of correct Timing Advance at the time of TBF establishment * (derived from timing offset of the Access Burst). */ testcase TC_ta_rach_imm_ass() runs on RAW_PCU_Test_CT { @@ -3494,6 +3568,7 @@ control { execute( TC_pcuif_suspend() ); + execute( TC_pcuif_suspend_active_tbf() ); execute( TC_ta_ptcch_idle() ); execute( TC_ta_rach_imm_ass() ); execute( TC_ta_idle_dl_tbf_ass() ); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22100 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I9538fbdc806eb26e93a0421b520c8d34de61f91f Gerrit-Change-Number: 22100 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 08:27:52 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 12 Jan 2021 08:27:52 +0000 Subject: Change in osmo-bsc[master]: power_control: add increase / reduce step size recommendations In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21873 ) Change subject: power_control: add increase / reduce step size recommendations ...................................................................... power_control: add increase / reduce step size recommendations Change-Id: I82e762c0c2b5e0dd739850ee494ab0a798e353de Related: SYS#4918 --- M doc/manuals/chapters/power_control.adoc M src/osmo-bsc/bsc_vty.c M tests/power_ctrl.vty 3 files changed, 30 insertions(+), 4 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/doc/manuals/chapters/power_control.adoc b/doc/manuals/chapters/power_control.adoc index 0cf7d89..5de2b9c 100644 --- a/doc/manuals/chapters/power_control.adoc +++ b/doc/manuals/chapters/power_control.adoc @@ -201,6 +201,11 @@ control loop to increase BS power, as well as RxLev=38 (-72 dBm) would not trigger power reduction. +TIP: It's recommended to harmonize the increase step size with the RxLev threshold +window in a way that the former is less or equal than/to the later. For example, +if the RxLev threshold is 32 .. 36 (-78 .. -74 dBm), then the window size is 4 dB, +and thus the increase step should be less or equal (e.g. 2 or 4 dB). + In 3GPP TS 45.008, lower and upper RxLev thresholds are referred as `L_RXLEV_XX_P` and `U_RXLEV_XX_P`, while the RxQual thresholds are referred as `L_RXQUAL_XX_P` and `U_RXQUAL_XX_P`, where the `XX` is either `DL` (Downlink) or `UL` (Uplink). diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c index 14be3fa..d61d379 100644 --- a/src/osmo-bsc/bsc_vty.c +++ b/src/osmo-bsc/bsc_vty.c @@ -4931,15 +4931,33 @@ "Step size (2 or 4 dB)\n") { struct gsm_power_ctrl_params *params = vty->index; + int inc_step_size_db = atoi(argv[0]); + int red_step_size_db = atoi(argv[1]); - if (atoi(argv[0]) % 2 || atoi(argv[1]) % 2) { + if (inc_step_size_db % 2 || red_step_size_db % 2) { vty_out(vty, "%% Power change step size must be " "an even number%s", VTY_NEWLINE); return CMD_WARNING; } - params->inc_step_size_db = atoi(argv[0]); - params->red_step_size_db = atoi(argv[1]); + /* Recommendation: POW_RED_STEP_SIZE <= POW_INCR_STEP_SIZE */ + if (red_step_size_db > inc_step_size_db) { + vty_out(vty, "%% Increase step size (%d) should be greater " + "than reduce step size (%d), consider changing it%s", + inc_step_size_db, red_step_size_db, VTY_NEWLINE); + } + + /* Recommendation: POW_INCR_STEP_SIZE <= (U_RXLEV_XX_P - L_RXLEV_XX_P) */ + const struct gsm_power_ctrl_meas_params *mp = ¶ms->rxlev_meas; + if (inc_step_size_db > (mp->upper_thresh - mp->lower_thresh)) { + vty_out(vty, "%% Increase step size (%d) should be less or equal " + "than/to the RxLev threshold window (%d, upper - lower), " + "consider changing it%s", inc_step_size_db, + mp->upper_thresh - mp->lower_thresh, VTY_NEWLINE); + } + + params->inc_step_size_db = inc_step_size_db; + params->red_step_size_db = red_step_size_db; return CMD_SUCCESS; } diff --git a/tests/power_ctrl.vty b/tests/power_ctrl.vty index 021f9df..7e4382a 100644 --- a/tests/power_ctrl.vty +++ b/tests/power_ctrl.vty @@ -124,6 +124,9 @@ OsmoBSC(config-ms-power-ctrl)# step-size inc 2 red 3 % Power change step size must be an even number OsmoBSC(config-ms-power-ctrl)# step-size inc 2 red 4 +% Increase step size (2) should be greater than reduce step size (4), consider changing it + +OsmoBSC(config-ms-power-ctrl)# step-size inc 6 red 4 OsmoBSC(config-ms-power-ctrl)# show running-config ... bs-power-control @@ -133,7 +136,7 @@ ... ms-power-control mode dyn-bts - step-size inc 2 red 4 + step-size inc 6 red 4 ... OsmoBSC(config-ms-power-ctrl)# rxlev-thresh lower? -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21873 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I82e762c0c2b5e0dd739850ee494ab0a798e353de Gerrit-Change-Number: 21873 Gerrit-PatchSet: 8 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 08:29:30 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 12 Jan 2021 08:29:30 +0000 Subject: Change in osmo-bsc[master]: hodec2: cosmetic: clarify ho_candidate.{current, target} In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21986 ) Change subject: hodec2: cosmetic: clarify ho_candidate.{current,target} ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21986 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I06898eb745a5be548df0b76fa760ce790cfab3ed Gerrit-Change-Number: 21986 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 12 Jan 2021 08:29:30 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 08:29:44 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 12 Jan 2021 08:29:44 +0000 Subject: Change in osmo-bsc[master]: hodec2: reduce check_requirements() args In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21987 ) Change subject: hodec2: reduce check_requirements() args ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21987 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I086aef9cc47ad8a5376f18179024c486f6f8b779 Gerrit-Change-Number: 21987 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 12 Jan 2021 08:29:44 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 08:30:08 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 12 Jan 2021 08:30:08 +0000 Subject: Change in osmo-bsc[master]: hodec2: add ho_candidate.{current, target}.free_tch In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21988 ) Change subject: hodec2: add ho_candidate.{current,target}.free_tch ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21988 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ie6ca5af5e8d0ebb8deaaaa637e2728008ecba517 Gerrit-Change-Number: 21988 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 12 Jan 2021 08:30:08 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 08:30:15 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 12 Jan 2021 08:30:15 +0000 Subject: Change in osmo-bsc[master]: hodec2: cosmetic: clarify ho_candidate.{current, target} In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21986 ) Change subject: hodec2: cosmetic: clarify ho_candidate.{current,target} ...................................................................... hodec2: cosmetic: clarify ho_candidate.{current,target} So far it is often confusing which cell a specific member refers to. Clarify lchan, bts, ... to current.lchan, target.bts, ... Also move the rxlev_{current,target} to {current,target}.rxlev. Eliminate numerous local variables to make it easier to read which side is being used (e.g. "c->target.bts" instead of just "bts"). No functional change. Change-Id: I06898eb745a5be548df0b76fa760ce790cfab3ed --- M src/osmo-bsc/handover_decision_2.c 1 file changed, 107 insertions(+), 97 deletions(-) Approvals: laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/osmo-bsc/handover_decision_2.c b/src/osmo-bsc/handover_decision_2.c index 1ab92f5..77b6e6b 100644 --- a/src/osmo-bsc/handover_decision_2.c +++ b/src/osmo-bsc/handover_decision_2.c @@ -79,10 +79,10 @@ ## args) #define LOGPHOCAND(candidate, level, fmt, args...) do {\ - if ((candidate)->bts) \ - LOGPHOLCHANTOBTS((candidate)->lchan, (candidate)->bts, level, fmt, ## args); \ - else if ((candidate)->cil) \ - LOGPHOLCHANTOREMOTE((candidate)->lchan, (candidate)->cil, level, fmt, ## args); \ + if ((candidate)->target.bts) \ + LOGPHOLCHANTOBTS((candidate)->current.lchan, (candidate)->target.bts, level, fmt, ## args); \ + else if ((candidate)->target.cil) \ + LOGPHOLCHANTOREMOTE((candidate)->current.lchan, (candidate)->target.cil, level, fmt, ## args); \ } while(0) @@ -99,14 +99,19 @@ #define REQUIREMENT_C_MASK (REQUIREMENT_C_TCHF | REQUIREMENT_C_TCHH) struct ho_candidate { - struct gsm_lchan *lchan; /* candidate for whom */ - struct neighbor_ident_key nik; /* neighbor ARFCN+BSIC */ - struct gsm_bts *bts; /* target BTS in local BSS */ - const struct gsm0808_cell_id_list2 *cil; /* target cells in remote BSS */ uint8_t requirements; /* what is fulfilled */ - int rxlev_current; - int rxlev_target; - int rxlev_afs_bias; + struct { + struct gsm_lchan *lchan; + struct gsm_bts *bts; + int rxlev; + } current; + struct { + struct neighbor_ident_key nik; /* neighbor ARFCN+BSIC */ + const struct gsm0808_cell_id_list2 *cil; /* target cells in remote BSS */ + struct gsm_bts *bts; + int rxlev; + int rxlev_afs_bias; + } target; }; enum ho_reason { @@ -705,24 +710,21 @@ /* Trigger handover or assignment depending on the target BTS */ static int trigger_local_ho_or_as(struct ho_candidate *c, uint8_t requirements) { - struct gsm_lchan *lchan = c->lchan; - struct gsm_bts *new_bts = c->bts; struct handover_out_req req; - struct gsm_bts *current_bts = lchan->ts->trx->bts; int afs_bias = 0; bool full_rate = false; /* afs_bias becomes > 0, if AFS is used and is improved */ - if (lchan->tch_mode == GSM48_CMODE_SPEECH_AMR) - afs_bias = ho_get_hodec2_afs_bias_rxlev(new_bts->ho); + if (c->current.lchan->tch_mode == GSM48_CMODE_SPEECH_AMR) + afs_bias = ho_get_hodec2_afs_bias_rxlev(c->target.bts->ho); /* select TCH rate, prefer TCH/F if AFS is improved */ - switch (lchan->type) { + switch (c->current.lchan->type) { case GSM_LCHAN_TCH_F: /* keep on full rate, if TCH/F is a candidate */ if ((requirements & REQUIREMENT_TCHF_MASK)) { - if (current_bts == new_bts) { - LOGPHOLCHAN(lchan, LOGL_INFO, "Not performing assignment: Already on target type\n"); + if (c->current.bts == c->target.bts) { + LOGPHOLCHAN(c->current.lchan, LOGL_INFO, "Not performing assignment: Already on target type\n"); return 0; } full_rate = true; @@ -730,7 +732,7 @@ } /* change to half rate */ if (!(requirements & REQUIREMENT_TCHH_MASK)) { - LOGPHOLCHANTOBTS(lchan, new_bts, LOGL_ERROR, + LOGPHOLCHANTOBTS(c->current.lchan, c->target.bts, LOGL_ERROR, "neither TCH/F nor TCH/H requested, aborting ho/as\n"); return -EINVAL; } @@ -749,35 +751,35 @@ } /* keep on half rate */ if (!(requirements & REQUIREMENT_TCHH_MASK)) { - LOGPHOLCHANTOBTS(lchan, new_bts, LOGL_ERROR, + LOGPHOLCHANTOBTS(c->current.lchan, c->target.bts, LOGL_ERROR, "neither TCH/F nor TCH/H requested, aborting ho/as\n"); return -EINVAL; } - if (current_bts == new_bts) { - LOGPHOLCHAN(lchan, LOGL_INFO, "Not performing assignment: Already on target type\n"); + if (c->current.bts == c->target.bts) { + LOGPHOLCHAN(c->current.lchan, LOGL_INFO, "Not performing assignment: Already on target type\n"); return 0; } break; default: - LOGPHOLCHANTOBTS(lchan, new_bts, LOGL_ERROR, "lchan is neither TCH/F nor TCH/H, aborting ho/as\n"); + LOGPHOLCHANTOBTS(c->current.lchan, c->target.bts, LOGL_ERROR, "c->current.lchan is neither TCH/F nor TCH/H, aborting ho/as\n"); return -EINVAL; } /* trigger handover or assignment */ - if (current_bts == new_bts) - LOGPHOLCHAN(lchan, LOGL_NOTICE, "Triggering assignment to %s, due to %s\n", + if (c->current.bts == c->target.bts) + LOGPHOLCHAN(c->current.lchan, LOGL_NOTICE, "Triggering assignment to %s, due to %s\n", full_rate ? "TCH/F" : "TCH/H", ho_reason_name(global_ho_reason)); else - LOGPHOLCHANTOBTS(lchan, new_bts, LOGL_INFO, + LOGPHOLCHANTOBTS(c->current.lchan, c->target.bts, LOGL_INFO, "Triggering handover to %s, due to %s\n", full_rate ? "TCH/F" : "TCH/H", ho_reason_name(global_ho_reason)); req = (struct handover_out_req){ .from_hodec_id = HODEC2, - .old_lchan = lchan, - .target_nik = *bts_ident_key(new_bts), + .old_lchan = c->current.lchan, + .target_nik = *bts_ident_key(c->target.bts), .new_lchan_type = full_rate? GSM_LCHAN_TCH_F : GSM_LCHAN_TCH_H, }; handover_request(&req); @@ -788,14 +790,14 @@ { struct handover_out_req req; - LOGPHOLCHANTOREMOTE(c->lchan, c->cil, LOGL_INFO, + LOGPHOLCHANTOREMOTE(c->current.lchan, c->target.cil, LOGL_INFO, "Triggering inter-BSC handover, due to %s\n", ho_reason_name(global_ho_reason)); req = (struct handover_out_req){ .from_hodec_id = HODEC2, - .old_lchan = c->lchan, - .target_nik = c->nik, + .old_lchan = c->current.lchan, + .target_nik = c->target.nik, }; handover_request(&req); return 0; @@ -803,7 +805,7 @@ static int trigger_ho(struct ho_candidate *c, uint8_t requirements) { - if (c->bts) + if (c->target.bts) return trigger_local_ho_or_as(c, requirements); else return trigger_remote_bss_ho(c, requirements); @@ -827,34 +829,32 @@ static inline void debug_candidate(struct ho_candidate *candidate, int tchf_count, int tchh_count) { - struct gsm_lchan *lchan = candidate->lchan; - #define HO_CANDIDATE_FMT(tchx, TCHX) "TCH/" #TCHX "={free %d (want %d), " REQUIREMENTS_FMT "}" #define HO_CANDIDATE_ARGS(tchx, TCHX) \ - tch##tchx##_count, ho_get_hodec2_tch##tchx##_min_slots(candidate->bts->ho), \ + tch##tchx##_count, ho_get_hodec2_tch##tchx##_min_slots(candidate->target.bts->ho), \ REQUIREMENTS_ARGS(candidate->requirements, TCHX) - if (!candidate->bts && !candidate->cil) - LOGPHOLCHAN(lchan, LOGL_DEBUG, "Empty candidate\n"); - if (candidate->bts && candidate->cil) - LOGPHOLCHAN(lchan, LOGL_ERROR, "Invalid candidate: both local- and remote-BSS target\n"); + if (!candidate->target.bts && !candidate->target.cil) + LOGPHOLCHAN(candidate->current.lchan, LOGL_DEBUG, "Empty candidate\n"); + if (candidate->target.bts && candidate->target.cil) + LOGPHOLCHAN(candidate->current.lchan, LOGL_ERROR, "Invalid candidate: both local- and remote-BSS target\n"); - if (candidate->cil) - LOGPHOLCHANTOREMOTE(lchan, candidate->cil, LOGL_DEBUG, + if (candidate->target.cil) + LOGPHOLCHANTOREMOTE(candidate->current.lchan, candidate->target.cil, LOGL_DEBUG, "RX level %d dBm -> %d dBm\n", - rxlev2dbm(candidate->rxlev_current), rxlev2dbm(candidate->rxlev_target)); + rxlev2dbm(candidate->current.rxlev), rxlev2dbm(candidate->target.rxlev)); - if (candidate->bts == lchan->ts->trx->bts) - LOGPHOLCHANTOBTS(lchan, candidate->bts, LOGL_DEBUG, + if (candidate->target.bts == candidate->current.bts) + LOGPHOLCHANTOBTS(candidate->current.lchan, candidate->target.bts, LOGL_DEBUG, "RX level %d dBm; " HO_CANDIDATE_FMT(f, F) "; " HO_CANDIDATE_FMT(h, H) "\n", - rxlev2dbm(candidate->rxlev_current), + rxlev2dbm(candidate->current.rxlev), HO_CANDIDATE_ARGS(f, F), HO_CANDIDATE_ARGS(h, H)); - else if (candidate->bts) - LOGPHOLCHANTOBTS(lchan, candidate->bts, LOGL_DEBUG, + else if (candidate->target.bts) + LOGPHOLCHANTOBTS(candidate->current.lchan, candidate->target.bts, LOGL_DEBUG, "RX level %d dBm -> %d dBm; " HO_CANDIDATE_FMT(f, F) "; " HO_CANDIDATE_FMT(h, H) "\n", - rxlev2dbm(candidate->rxlev_current), rxlev2dbm(candidate->rxlev_target), + rxlev2dbm(candidate->current.rxlev), rxlev2dbm(candidate->target.rxlev), HO_CANDIDATE_ARGS(f, F), HO_CANDIDATE_ARGS(h, H)); } @@ -870,12 +870,17 @@ tchh_count = bts_count_free_ts(bts, GSM_PCHAN_TCH_H); c = (struct ho_candidate){ - .lchan = lchan, - .bts = bts, - .requirements = check_requirements(lchan, bts, tchf_count, tchh_count), - .rxlev_current = rxlev_current, - .rxlev_target = rxlev_current, /* same cell, same rxlev */ + .current = { + .lchan = lchan, + .bts = bts, + .rxlev = rxlev_current, + }, + .target = { + .bts = bts, + .rxlev = rxlev_current, /* same cell, same rxlev */ + }, }; + c.requirements = check_requirements(c.current.lchan, c.target.bts, tchf_count, tchh_count), debug_candidate(&c, tchf_count, tchh_count); @@ -941,12 +946,17 @@ neigh_cfg = (neighbor_bts ? : bts)->ho; c = (struct ho_candidate){ - .lchan = lchan, - .nik = ni, - .bts = neighbor_bts, - .cil = neighbor_cil, - .rxlev_current = rxlev_current, - .rxlev_target = neigh_meas_avg(nmp, ho_get_hodec2_rxlev_neigh_avg_win(bts->ho)), + .current = { + .lchan = lchan, + .bts = bts, + .rxlev = rxlev_current, + }, + .target = { + .nik = ni, + .bts = neighbor_bts, + .cil = neighbor_cil, + .rxlev = neigh_meas_avg(nmp, ho_get_hodec2_rxlev_neigh_avg_win(bts->ho)), + }, }; /* Heed rxlev hysteresis only if the RXLEV/RXQUAL/TA levels of the MS aren't critically bad and @@ -954,11 +964,11 @@ * and thus skip the hysteresis check. */ if (!include_weaker_rxlev) { int pwr_hyst = ho_get_hodec2_pwr_hysteresis(bts->ho); - if ((c.rxlev_target - c.rxlev_current) <= pwr_hyst) { + if ((c.target.rxlev - c.current.rxlev) <= pwr_hyst) { LOGPHOCAND(&c, LOGL_DEBUG, "Not a candidate, because RX level (%d dBm) is lower" " or equal than current RX level (%d dBm) + hysteresis (%d)\n", - rxlev2dbm(c.rxlev_target), rxlev2dbm(c.rxlev_current), pwr_hyst); + rxlev2dbm(c.target.rxlev), rxlev2dbm(c.current.rxlev), pwr_hyst); return; } } @@ -966,11 +976,11 @@ /* if the minimum level is not reached. * In case of a remote-BSS, use the current BTS' configuration. */ min_rxlev = ho_get_hodec2_min_rxlev(neigh_cfg); - if (rxlev2dbm(c.rxlev_target) < min_rxlev) { + if (rxlev2dbm(c.target.rxlev) < min_rxlev) { LOGPHOCAND(&c, LOGL_DEBUG, "Not a candidate, because RX level (%d dBm) is lower" " than the minimum required RX level (%d dBm)\n", - rxlev2dbm(c.rxlev_target), min_rxlev); + rxlev2dbm(c.target.rxlev), min_rxlev); return; } @@ -1122,14 +1132,14 @@ continue; /* Only consider Local-BSS cells */ - if (!clist[i].bts) + if (!clist[i].target.bts) continue; - better = clist[i].rxlev_target - clist[i].rxlev_current; + better = clist[i].target.rxlev - clist[i].current.rxlev; /* Apply AFS bias? */ afs_bias = 0; if (ahs && (clist[i].requirements & REQUIREMENT_B_TCHF)) - afs_bias = ho_get_hodec2_afs_bias_rxlev(clist[i].bts->ho); + afs_bias = ho_get_hodec2_afs_bias_rxlev(clist[i].target.bts->ho); better += afs_bias; if (better > best_better_db) { best_cand = &clist[i]; @@ -1141,7 +1151,7 @@ /* perform handover, if there is a candidate */ if (best_cand) { LOGPHOCAND(best_cand, LOGL_INFO, "Best candidate, RX level %d%s\n", - rxlev2dbm(best_cand->rxlev_target), + rxlev2dbm(best_cand->target.rxlev), best_applied_afs_bias ? " (applied AHS -> AFS rxlev bias)" : ""); return trigger_ho(best_cand, best_cand->requirements & REQUIREMENT_B_MASK); } @@ -1155,14 +1165,14 @@ continue; /* Only consider Local-BSS cells */ - if (!clist[i].bts) + if (!clist[i].target.bts) continue; - better = clist[i].rxlev_target - clist[i].rxlev_current; + better = clist[i].target.rxlev - clist[i].current.rxlev; /* Apply AFS bias? */ afs_bias = 0; if (ahs && (clist[i].requirements & REQUIREMENT_C_TCHF)) - afs_bias = ho_get_hodec2_afs_bias_rxlev(clist[i].bts->ho); + afs_bias = ho_get_hodec2_afs_bias_rxlev(clist[i].target.bts->ho); better += afs_bias; if (better > best_better_db) { best_cand = &clist[i]; @@ -1174,7 +1184,7 @@ /* perform handover, if there is a candidate */ if (best_cand) { LOGPHOCAND(best_cand, LOGL_INFO, "Best candidate, RX level %d%s\n", - rxlev2dbm(best_cand->rxlev_target), + rxlev2dbm(best_cand->target.rxlev), best_applied_afs_bias? " (applied AHS -> AFS rxlev bias)" : ""); return trigger_ho(best_cand, best_cand->requirements & REQUIREMENT_C_MASK); } @@ -1195,13 +1205,13 @@ if (!(clist[i].requirements & REQUIREMENT_A_MASK)) continue; - better = clist[i].rxlev_target - clist[i].rxlev_current; + better = clist[i].target.rxlev - clist[i].current.rxlev; /* Apply AFS bias? * (never to remote-BSS neighbors, since we will not change the lchan type for those.) */ afs_bias = 0; if (ahs && (clist[i].requirements & REQUIREMENT_A_TCHF) - && clist[i].bts) - afs_bias = ho_get_hodec2_afs_bias_rxlev(clist[i].bts->ho); + && clist[i].target.bts) + afs_bias = ho_get_hodec2_afs_bias_rxlev(clist[i].target.bts->ho); better += afs_bias; if (better > best_better_db) { best_cand = &clist[i]; @@ -1213,7 +1223,7 @@ /* perform handover, if there is a candidate */ if (best_cand) { LOGPHOCAND(best_cand, LOGL_INFO, "Best candidate: RX level %d%s\n", - rxlev2dbm(best_cand->rxlev_target), + rxlev2dbm(best_cand->target.rxlev), best_applied_afs_bias ? " (applied AHS -> AFS rxlev bias)" : ""); return trigger_ho(best_cand, best_cand->requirements & REQUIREMENT_A_MASK); } @@ -1386,8 +1396,8 @@ static bool is_upgrade_to_tchf(const struct ho_candidate *c, uint8_t for_requirement) { - return c->lchan - && (c->lchan->type == GSM_LCHAN_TCH_H) + return c->current.lchan + && (c->current.lchan->type == GSM_LCHAN_TCH_H) && ((c->requirements & for_requirement) & (REQUIREMENT_B_TCHF | REQUIREMENT_C_TCHF)); } @@ -1407,8 +1417,8 @@ if (!b) return a; - a_rxlev_change = a->rxlev_target - a->rxlev_current; - b_rxlev_change = b->rxlev_target - b->rxlev_current; + a_rxlev_change = a->target.rxlev - a->current.rxlev; + b_rxlev_change = b->target.rxlev - b->current.rxlev; /* Typically, a congestion related handover reduces RXLEV. If there is a candidate that actually improves RXLEV, * prefer that, because it pre-empts a likely handover due to measurement results later. Also favor unchanged @@ -1420,8 +1430,8 @@ if (a_rxlev_change < 0 && b_rxlev_change < 0) { /* For handover that reduces RXLEV, favor the highest resulting RXLEV, AFS bias applied. */ - int a_rxlev = a->rxlev_target + a->rxlev_afs_bias; - int b_rxlev = b->rxlev_target + b->rxlev_afs_bias; + int a_rxlev = a->target.rxlev + a->target.rxlev_afs_bias; + int b_rxlev = b->target.rxlev + b->target.rxlev_afs_bias; if (a_rxlev > b_rxlev) return a; @@ -1433,16 +1443,16 @@ /* Prefer picking a dynamic timeslot: free PDCH and allow more timeslot type flexibility for further * congestion resolution. */ - if (lchan_is_on_dynamic_ts(b->lchan)) { + if (lchan_is_on_dynamic_ts(b->current.lchan)) { unsigned int ac, bc; - if (!lchan_is_on_dynamic_ts(a->lchan)) + if (!lchan_is_on_dynamic_ts(a->current.lchan)) return b; /* Both are dynamic timeslots. Prefer one that completely (or to a higher degree) frees its * timeslot. */ - ac = ts_usage_count(a->lchan->ts); - bc = ts_usage_count(b->lchan->ts); + ac = ts_usage_count(a->current.lchan->ts); + bc = ts_usage_count(b->current.lchan->ts); if (bc < ac) return b; if (ac < bc) @@ -1456,9 +1466,9 @@ /* When upgrading TCH/H to TCH/F, favor moving a TCH/H with lower current rxlev, because presumably that * one benefits more from a higher bandwidth. */ if (is_upgrade_to_tchf(a, for_requirement) && is_upgrade_to_tchf(b, for_requirement)) { - if (b->rxlev_current < a->rxlev_current) + if (b->current.rxlev < a->current.rxlev) return b; - if (a->rxlev_current < b->rxlev_current) + if (a->current.rxlev < b->current.rxlev) return a; } @@ -1476,11 +1486,11 @@ /* For multiple passes of congestion resolution, already handovered candidates are marked by lchan = * NULL. (though at the time of writing, multiple passes of congestion resolution are DISABLED.) */ - if (!c->lchan) + if (!c->current.lchan) continue; /* Omit remote BSS */ - if (!c->bts) + if (!c->target.bts) continue; if (!(c->requirements & for_requirement)) @@ -1488,9 +1498,9 @@ /* improve AHS */ if (is_upgrade_to_tchf(c, for_requirement)) - c->rxlev_afs_bias = ho_get_hodec2_afs_bias_rxlev(c->bts->ho); + c->target.rxlev_afs_bias = ho_get_hodec2_afs_bias_rxlev(c->target.bts->ho); else - c->rxlev_afs_bias = 0; + c->target.rxlev_afs_bias = 0; result = pick_better_lchan_to_move(result, c, for_requirement); } @@ -1643,7 +1653,7 @@ LOGPHOCAND(&clist[i], LOGL_DEBUG, "#%d: req={TCH/F:" REQUIREMENTS_FMT ", TCH/H:" REQUIREMENTS_FMT "} avg-rxlev=%d dBm\n", i, REQUIREMENTS_ARGS(clist[i].requirements, F), REQUIREMENTS_ARGS(clist[i].requirements, H), - rxlev2dbm(clist[i].rxlev_target)); + rxlev2dbm(clist[i].target.rxlev)); } } @@ -1662,8 +1672,8 @@ if (best_cand) { any_ho = 1; LOGPHOCAND(best_cand, LOGL_DEBUG, "Best candidate: RX level %d%s\n", - rxlev2dbm(best_cand->rxlev_target), - best_cand->rxlev_afs_bias ? " (applied AHS->AFS bias)" : ""); + rxlev2dbm(best_cand->target.rxlev), + best_cand->target.rxlev_afs_bias ? " (applied AHS->AFS bias)" : ""); trigger_ho(best_cand, best_cand->requirements & REQUIREMENT_B_MASK); #if 0 /* if there is still congestion, mark lchan as deleted @@ -1696,8 +1706,8 @@ if (best_cand) { any_ho = 1; LOGPHOCAND(best_cand, LOGL_INFO, "Best candidate: RX level %d%s\n", - rxlev2dbm(best_cand->rxlev_target), - best_cand->rxlev_afs_bias ? " (applied AHS -> AFS rxlev bias)" : ""); + rxlev2dbm(best_cand->target.rxlev), + best_cand->target.rxlev_afs_bias ? " (applied AHS -> AFS rxlev bias)" : ""); trigger_ho(best_cand, best_cand->requirements & REQUIREMENT_C_MASK); #if 0 /* if there is still congestion, mark lchan as deleted -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21986 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I06898eb745a5be548df0b76fa760ce790cfab3ed Gerrit-Change-Number: 21986 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 08:30:16 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 12 Jan 2021 08:30:16 +0000 Subject: Change in osmo-bsc[master]: hodec2: reduce check_requirements() args In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21987 ) Change subject: hodec2: reduce check_requirements() args ...................................................................... hodec2: reduce check_requirements() args Instead of passing single args, pass the ho_candidate struct. No functional change. Change-Id: I086aef9cc47ad8a5376f18179024c486f6f8b779 --- M src/osmo-bsc/handover_decision_2.c 1 file changed, 82 insertions(+), 83 deletions(-) Approvals: laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/osmo-bsc/handover_decision_2.c b/src/osmo-bsc/handover_decision_2.c index 77b6e6b..4cf0e8a 100644 --- a/src/osmo-bsc/handover_decision_2.c +++ b/src/osmo-bsc/handover_decision_2.c @@ -433,113 +433,113 @@ * * The number of free slots are checked for TCH/F and TCH/H slot types * individually. */ -static uint8_t check_requirements(struct gsm_lchan *lchan, struct gsm_bts *bts, int tchf_count, int tchh_count) +static void check_requirements(struct ho_candidate *c, int tchf_count, int tchh_count) { int count; uint8_t requirement = 0; unsigned int penalty_time; - struct gsm_bts *current_bts = lchan->ts->trx->bts; + c->requirements = 0; /* Requirement A */ /* the handover/assignment must not be disabled */ - if (current_bts == bts) { - if (!ho_get_hodec2_as_active(bts->ho)) { - LOGPHOLCHAN(lchan, LOGL_DEBUG, "Assignment disabled\n"); - return 0; + if (c->current.bts == c->target.bts) { + if (!ho_get_hodec2_as_active(c->target.bts->ho)) { + LOGPHOLCHAN(c->current.lchan, LOGL_DEBUG, "Assignment disabled\n"); + return; } } else { - if (!ho_get_ho_active(bts->ho)) { - LOGPHOLCHANTOBTS(lchan, bts, LOGL_DEBUG, + if (!ho_get_ho_active(c->target.bts->ho)) { + LOGPHOLCHANTOBTS(c->current.lchan, c->target.bts, LOGL_DEBUG, "not a candidate, handover is disabled in target BTS\n"); - return 0; + return; } } /* the handover penalty timer must not run for this bts */ - penalty_time = conn_penalty_time_remaining(lchan->conn, bts); + penalty_time = conn_penalty_time_remaining(c->current.lchan->conn, c->target.bts); if (penalty_time) { - LOGPHOLCHANTOBTS(lchan, bts, LOGL_DEBUG, "not a candidate, target BTS still in penalty time" + LOGPHOLCHANTOBTS(c->current.lchan, c->target.bts, LOGL_DEBUG, "not a candidate, target BTS still in penalty time" " (%u seconds left)\n", penalty_time); - return 0; + return; } /* compatibility check for codecs. * if so, the candidates for full rate and half rate are selected */ - switch (lchan->tch_mode) { + switch (c->current.lchan->tch_mode) { case GSM48_CMODE_SPEECH_V1: - switch (lchan->type) { + switch (c->current.lchan->type) { case GSM_LCHAN_TCH_F: /* mandatory */ requirement |= REQUIREMENT_A_TCHF; break; case GSM_LCHAN_TCH_H: - if (!bts->codec.hr) { - LOGPHOLCHANTOBTS(lchan, bts, LOGL_DEBUG, + if (!c->target.bts->codec.hr) { + LOGPHOLCHANTOBTS(c->current.lchan, c->target.bts, LOGL_DEBUG, "tch_mode='%s' type='%s' not supported\n", get_value_string(gsm48_chan_mode_names, - lchan->tch_mode), - gsm_lchant_name(lchan->type)); + c->current.lchan->tch_mode), + gsm_lchant_name(c->current.lchan->type)); break; } - if (codec_type_is_supported(lchan->conn, GSM0808_SCT_HR1)) + if (codec_type_is_supported(c->current.lchan->conn, GSM0808_SCT_HR1)) requirement |= REQUIREMENT_A_TCHH; break; default: - LOGPHOLCHAN(lchan, LOGL_ERROR, "Unexpected channel type: neither TCH/F nor TCH/H for %s\n", - get_value_string(gsm48_chan_mode_names, lchan->tch_mode)); - return 0; + LOGPHOLCHAN(c->current.lchan, LOGL_ERROR, "Unexpected channel type: neither TCH/F nor TCH/H for %s\n", + get_value_string(gsm48_chan_mode_names, c->current.lchan->tch_mode)); + return; } break; case GSM48_CMODE_SPEECH_EFR: - if (!bts->codec.efr) { - LOGPHOBTS(bts, LOGL_DEBUG, "EFR not supported\n"); + if (!c->target.bts->codec.efr) { + LOGPHOBTS(c->target.bts, LOGL_DEBUG, "EFR not supported\n"); break; } - if (codec_type_is_supported(lchan->conn, GSM0808_SCT_FR2)) + if (codec_type_is_supported(c->current.lchan->conn, GSM0808_SCT_FR2)) requirement |= REQUIREMENT_A_TCHF; break; case GSM48_CMODE_SPEECH_AMR: - if (!bts->codec.amr) { - LOGPHOBTS(bts, LOGL_DEBUG, "AMR not supported\n"); + if (!c->target.bts->codec.amr) { + LOGPHOBTS(c->target.bts, LOGL_DEBUG, "AMR not supported\n"); break; } - if (codec_type_is_supported(lchan->conn, GSM0808_SCT_FR3)) + if (codec_type_is_supported(c->current.lchan->conn, GSM0808_SCT_FR3)) requirement |= REQUIREMENT_A_TCHF; - if (codec_type_is_supported(lchan->conn, GSM0808_SCT_HR3)) + if (codec_type_is_supported(c->current.lchan->conn, GSM0808_SCT_HR3)) requirement |= REQUIREMENT_A_TCHH; break; default: - LOGPHOLCHANTOBTS(lchan, bts, LOGL_DEBUG, "Not even considering: src is not a SPEECH mode lchan\n"); + LOGPHOLCHANTOBTS(c->current.lchan, c->target.bts, LOGL_DEBUG, "Not even considering: src is not a SPEECH mode lchan\n"); /* FIXME: should allow handover of non-speech lchans */ - return 0; + return; } /* no candidate, because new cell is incompatible */ if (!requirement) { - LOGPHOLCHANTOBTS(lchan, bts, LOGL_DEBUG, "not a candidate, because codec of MS and BTS are incompatible\n"); - return 0; + LOGPHOLCHANTOBTS(c->current.lchan, c->target.bts, LOGL_DEBUG, "not a candidate, because codec of MS and BTS are incompatible\n"); + return; } /* remove slot types that are not available */ if (!tchf_count && requirement & REQUIREMENT_A_TCHF) { - LOGPHOLCHANTOBTS(lchan, bts, LOGL_DEBUG, + LOGPHOLCHANTOBTS(c->current.lchan, c->target.bts, LOGL_DEBUG, "removing TCH/F, since all TCH/F lchans are in use\n"); requirement &= ~(REQUIREMENT_A_TCHF); } if (!tchh_count && requirement & REQUIREMENT_A_TCHH) { - LOGPHOLCHANTOBTS(lchan, bts, LOGL_DEBUG, + LOGPHOLCHANTOBTS(c->current.lchan, c->target.bts, LOGL_DEBUG, "removing TCH/H, since all TCH/H lchans are in use\n"); requirement &= ~(REQUIREMENT_A_TCHH); } if (!requirement) { - LOGPHOLCHANTOBTS(lchan, bts, LOGL_DEBUG, "not a candidate, because no suitable slots available\n"); - return 0; + LOGPHOLCHANTOBTS(c->current.lchan, c->target.bts, LOGL_DEBUG, "not a candidate, because no suitable slots available\n"); + return; } /* omit same channel type on same BTS (will not change anything) */ - if (bts == current_bts) { - switch (lchan->type) { + if (c->target.bts == c->current.bts) { + switch (c->current.lchan->type) { case GSM_LCHAN_TCH_F: requirement &= ~(REQUIREMENT_A_TCHF); break; @@ -551,9 +551,9 @@ } if (!requirement) { - LOGPHOLCHAN(lchan, LOGL_DEBUG, + LOGPHOLCHAN(c->current.lchan, LOGL_DEBUG, "Reassignment within cell not an option, no differing channel types available\n"); - return 0; + return; } } @@ -561,26 +561,26 @@ // This was useful in osmo-nitb. We're in osmo-bsc now and have no idea whether the osmo-msc does // internal or external call control. Maybe a future config switch wants to add this behavior? /* Built-in call control requires equal codec rates. Remove rates that are not equal. */ - if (lchan->tch_mode == GSM48_CMODE_SPEECH_AMR - && current_bts->network->mncc_recv != mncc_sock_from_cc) { - switch (lchan->type) { + if (c->current.lchan->tch_mode == GSM48_CMODE_SPEECH_AMR + && c->current.bts->network->mncc_recv != mncc_sock_from_cc) { + switch (c->current.lchan->type) { case GSM_LCHAN_TCH_F: if ((requirement & REQUIREMENT_A_TCHF) - && !!memcmp(¤t_bts->mr_full, &bts->mr_full, + && !!memcmp(&c->current.bts->mr_full, &c->target.bts->mr_full, sizeof(struct amr_multirate_conf))) requirement &= ~(REQUIREMENT_A_TCHF); if ((requirement & REQUIREMENT_A_TCHH) - && !!memcmp(¤t_bts->mr_full, &bts->mr_half, + && !!memcmp(&c->current.bts->mr_full, &c->target.bts->mr_half, sizeof(struct amr_multirate_conf))) requirement &= ~(REQUIREMENT_A_TCHH); break; case GSM_LCHAN_TCH_H: if ((requirement & REQUIREMENT_A_TCHF) - && !!memcmp(¤t_bts->mr_half, &bts->mr_full, + && !!memcmp(&c->current.bts->mr_half, &c->target.bts->mr_full, sizeof(struct amr_multirate_conf))) requirement &= ~(REQUIREMENT_A_TCHF); if ((requirement & REQUIREMENT_A_TCHH) - && !!memcmp(¤t_bts->mr_half, &bts->mr_half, + && !!memcmp(&c->current.bts->mr_half, &c->target.bts->mr_half, sizeof(struct amr_multirate_conf))) requirement &= ~(REQUIREMENT_A_TCHH); break; @@ -589,20 +589,20 @@ } if (!requirement) { - LOGPHOLCHANTOBTS(lchan, bts, LOGL_DEBUG, + LOGPHOLCHANTOBTS(c->current.lchan, c->target.bts, LOGL_DEBUG, "not a candidate, cannot provide identical codec rate\n"); - return 0; + return; } } #endif /* the maximum number of unsynchronized handovers must no be exceeded */ - if (current_bts != bts - && bts_handover_count(bts, HO_SCOPE_ALL) >= ho_get_hodec2_ho_max(bts->ho)) { - LOGPHOLCHANTOBTS(lchan, bts, LOGL_DEBUG, + if (c->current.bts != c->target.bts + && bts_handover_count(c->target.bts, HO_SCOPE_ALL) >= ho_get_hodec2_ho_max(c->target.bts->ho)) { + LOGPHOLCHANTOBTS(c->current.lchan, c->target.bts, LOGL_DEBUG, "not a candidate, number of allowed handovers (%d) would be exceeded\n", - ho_get_hodec2_ho_max(bts->ho)); - return 0; + ho_get_hodec2_ho_max(c->target.bts->ho)); + return; } /* Requirement B */ @@ -610,11 +610,11 @@ /* the minimum free timeslots that are defined for this cell must * be maintained _after_ handover/assignment */ if (requirement & REQUIREMENT_A_TCHF) { - if (tchf_count - 1 >= ho_get_hodec2_tchf_min_slots(bts->ho)) + if (tchf_count - 1 >= ho_get_hodec2_tchf_min_slots(c->target.bts->ho)) requirement |= REQUIREMENT_B_TCHF; } if (requirement & REQUIREMENT_A_TCHH) { - if (tchh_count - 1 >= ho_get_hodec2_tchh_min_slots(bts->ho)) + if (tchh_count - 1 >= ho_get_hodec2_tchh_min_slots(c->target.bts->ho)) requirement |= REQUIREMENT_B_TCHH; } @@ -622,8 +622,8 @@ /* the nr of free timeslots of the target cell must be >= the * free slots of the current cell _after_ handover/assignment */ - count = bts_count_free_ts(current_bts, - (lchan->type == GSM_LCHAN_TCH_H) ? + count = bts_count_free_ts(c->current.bts, + (c->current.lchan->type == GSM_LCHAN_TCH_H) ? GSM_PCHAN_TCH_H : GSM_PCHAN_TCH_F); if (requirement & REQUIREMENT_A_TCHF) { if (tchf_count - 1 >= count + 1) @@ -635,63 +635,63 @@ } /* return mask of fulfilled requirements */ - return requirement; + c->requirements = requirement; } -static uint8_t check_requirements_remote_bss(struct gsm_lchan *lchan, - const struct gsm0808_cell_id_list2 *cil) +static void check_requirements_remote_bss(struct ho_candidate *c) { uint8_t requirement = 0; unsigned int penalty_time; + c->requirements = 0; /* Requirement A */ /* the handover penalty timer must not run for this bts */ - penalty_time = conn_penalty_time_remaining(lchan->conn, cil); + penalty_time = conn_penalty_time_remaining(c->current.lchan->conn, c->target.cil); if (penalty_time) { - LOGPHOLCHANTOREMOTE(lchan, cil, LOGL_DEBUG, + LOGPHOLCHANTOREMOTE(c->current.lchan, c->target.cil, LOGL_DEBUG, "not a candidate, target BSS still in penalty time" " (%u seconds left)\n", penalty_time); - return 0; + return; } /* compatibility check for codecs -- we have no notion of what the remote BSS supports. We can * only assume that a handover would work, and use only the local requirements. */ - switch (lchan->tch_mode) { + switch (c->current.lchan->tch_mode) { case GSM48_CMODE_SPEECH_V1: - switch (lchan->type) { + switch (c->current.lchan->type) { case GSM_LCHAN_TCH_F: /* mandatory */ requirement |= REQUIREMENT_A_TCHF; break; case GSM_LCHAN_TCH_H: - if (codec_type_is_supported(lchan->conn, GSM0808_SCT_HR1)) + if (codec_type_is_supported(c->current.lchan->conn, GSM0808_SCT_HR1)) requirement |= REQUIREMENT_A_TCHH; break; default: - LOGPHOLCHAN(lchan, LOGL_ERROR, "Unexpected channel type: neither TCH/F nor TCH/H for %s\n", - get_value_string(gsm48_chan_mode_names, lchan->tch_mode)); - return 0; + LOGPHOLCHAN(c->current.lchan, LOGL_ERROR, "Unexpected channel type: neither TCH/F nor TCH/H for %s\n", + get_value_string(gsm48_chan_mode_names, c->current.lchan->tch_mode)); + return; } break; case GSM48_CMODE_SPEECH_EFR: - if (codec_type_is_supported(lchan->conn, GSM0808_SCT_FR2)) + if (codec_type_is_supported(c->current.lchan->conn, GSM0808_SCT_FR2)) requirement |= REQUIREMENT_A_TCHF; break; case GSM48_CMODE_SPEECH_AMR: - if (codec_type_is_supported(lchan->conn, GSM0808_SCT_FR3)) + if (codec_type_is_supported(c->current.lchan->conn, GSM0808_SCT_FR3)) requirement |= REQUIREMENT_A_TCHF; - if (codec_type_is_supported(lchan->conn, GSM0808_SCT_HR3)) + if (codec_type_is_supported(c->current.lchan->conn, GSM0808_SCT_HR3)) requirement |= REQUIREMENT_A_TCHH; break; default: - LOGPHOLCHAN(lchan, LOGL_DEBUG, "Not even considering: src is not a SPEECH mode lchan\n"); + LOGPHOLCHAN(c->current.lchan, LOGL_DEBUG, "Not even considering: src is not a SPEECH mode lchan\n"); /* FIXME: should allow handover of non-speech lchans */ - return 0; + return; } if (!requirement) { - LOGPHOLCHAN(lchan, LOGL_ERROR, "lchan doesn't fit its own requirements??\n"); - return 0; + LOGPHOLCHAN(c->current.lchan, LOGL_ERROR, "lchan doesn't fit its own requirements??\n"); + return; } /* Requirement B and C */ @@ -704,7 +704,7 @@ requirement |= REQUIREMENT_B_TCHH | REQUIREMENT_C_TCHH; /* return mask of fulfilled requirements */ - return requirement; + c->requirements = requirement; } /* Trigger handover or assignment depending on the target BTS */ @@ -880,7 +880,7 @@ .rxlev = rxlev_current, /* same cell, same rxlev */ }, }; - c.requirements = check_requirements(c.current.lchan, c.target.bts, tchf_count, tchh_count), + check_requirements(&c, tchf_count, tchh_count); debug_candidate(&c, tchf_count, tchh_count); @@ -987,10 +987,9 @@ if (neighbor_bts) { tchf_count = bts_count_free_ts(neighbor_bts, GSM_PCHAN_TCH_F); tchh_count = bts_count_free_ts(neighbor_bts, GSM_PCHAN_TCH_H); - c.requirements = check_requirements(lchan, neighbor_bts, tchf_count, - tchh_count); + check_requirements(&c, tchf_count, tchh_count); } else - c.requirements = check_requirements_remote_bss(lchan, neighbor_cil); + check_requirements_remote_bss(&c); debug_candidate(&c, tchf_count, tchh_count); -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21987 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I086aef9cc47ad8a5376f18179024c486f6f8b779 Gerrit-Change-Number: 21987 Gerrit-PatchSet: 5 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 08:30:16 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 12 Jan 2021 08:30:16 +0000 Subject: Change in osmo-bsc[master]: hodec2: add ho_candidate.{current, target}.free_tch In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21988 ) Change subject: hodec2: add ho_candidate.{current,target}.free_tch ...................................................................... hodec2: add ho_candidate.{current,target}.free_tch Store the number of free lchans and the min-free-slots settings in ho_candidate, instead of figuring those out in various places, to make it easier to read. Prepare for upcoming patch which also requires these values to fix a bug. Change-Id: Ie6ca5af5e8d0ebb8deaaaa637e2728008ecba517 --- M src/osmo-bsc/handover_decision_2.c 1 file changed, 46 insertions(+), 32 deletions(-) Approvals: laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/osmo-bsc/handover_decision_2.c b/src/osmo-bsc/handover_decision_2.c index 4cf0e8a..b296bd1 100644 --- a/src/osmo-bsc/handover_decision_2.c +++ b/src/osmo-bsc/handover_decision_2.c @@ -104,6 +104,8 @@ struct gsm_lchan *lchan; struct gsm_bts *bts; int rxlev; + int free_tch; + int min_free_tch; } current; struct { struct neighbor_ident_key nik; /* neighbor ARFCN+BSIC */ @@ -111,6 +113,10 @@ struct gsm_bts *bts; int rxlev; int rxlev_afs_bias; + int free_tchf; + int min_free_tchf; + int free_tchh; + int min_free_tchh; } target; }; @@ -433,9 +439,8 @@ * * The number of free slots are checked for TCH/F and TCH/H slot types * individually. */ -static void check_requirements(struct ho_candidate *c, int tchf_count, int tchh_count) +static void check_requirements(struct ho_candidate *c) { - int count; uint8_t requirement = 0; unsigned int penalty_time; c->requirements = 0; @@ -521,12 +526,12 @@ } /* remove slot types that are not available */ - if (!tchf_count && requirement & REQUIREMENT_A_TCHF) { + if (!c->target.free_tchf && (requirement & REQUIREMENT_A_TCHF)) { LOGPHOLCHANTOBTS(c->current.lchan, c->target.bts, LOGL_DEBUG, "removing TCH/F, since all TCH/F lchans are in use\n"); requirement &= ~(REQUIREMENT_A_TCHF); } - if (!tchh_count && requirement & REQUIREMENT_A_TCHH) { + if (!c->target.free_tchh && (requirement & REQUIREMENT_A_TCHH)) { LOGPHOLCHANTOBTS(c->current.lchan, c->target.bts, LOGL_DEBUG, "removing TCH/H, since all TCH/H lchans are in use\n"); requirement &= ~(REQUIREMENT_A_TCHH); @@ -610,11 +615,11 @@ /* the minimum free timeslots that are defined for this cell must * be maintained _after_ handover/assignment */ if (requirement & REQUIREMENT_A_TCHF) { - if (tchf_count - 1 >= ho_get_hodec2_tchf_min_slots(c->target.bts->ho)) + if (c->target.free_tchf - 1 >= c->target.min_free_tchf) requirement |= REQUIREMENT_B_TCHF; } if (requirement & REQUIREMENT_A_TCHH) { - if (tchh_count - 1 >= ho_get_hodec2_tchh_min_slots(c->target.bts->ho)) + if (c->target.free_tchh - 1 >= c->target.min_free_tchh) requirement |= REQUIREMENT_B_TCHH; } @@ -622,15 +627,12 @@ /* the nr of free timeslots of the target cell must be >= the * free slots of the current cell _after_ handover/assignment */ - count = bts_count_free_ts(c->current.bts, - (c->current.lchan->type == GSM_LCHAN_TCH_H) ? - GSM_PCHAN_TCH_H : GSM_PCHAN_TCH_F); if (requirement & REQUIREMENT_A_TCHF) { - if (tchf_count - 1 >= count + 1) + if (c->target.free_tchf - 1 >= c->current.free_tch + 1) requirement |= REQUIREMENT_C_TCHF; } if (requirement & REQUIREMENT_A_TCHH) { - if (tchh_count - 1 >= count + 1) + if (c->target.free_tchh - 1 >= c->current.free_tch + 1) requirement |= REQUIREMENT_C_TCHH; } @@ -826,12 +828,11 @@ " less-or-equal congestion")) /* verbosely log about a handover candidate */ -static inline void debug_candidate(struct ho_candidate *candidate, - int tchf_count, int tchh_count) +static inline void debug_candidate(struct ho_candidate *candidate) { #define HO_CANDIDATE_FMT(tchx, TCHX) "TCH/" #TCHX "={free %d (want %d), " REQUIREMENTS_FMT "}" #define HO_CANDIDATE_ARGS(tchx, TCHX) \ - tch##tchx##_count, ho_get_hodec2_tch##tchx##_min_slots(candidate->target.bts->ho), \ + candidate->target.free_tch##tchx, candidate->target.min_free_tch##tchx, \ REQUIREMENTS_ARGS(candidate->requirements, TCHX) if (!candidate->target.bts && !candidate->target.cil) @@ -858,17 +859,32 @@ HO_CANDIDATE_ARGS(f, F), HO_CANDIDATE_ARGS(h, H)); } +static void candidate_set_free_tch(struct ho_candidate *c) +{ + c->current.free_tch = bts_count_free_ts(c->current.bts, c->current.lchan->ts->pchan_is); + switch (c->current.lchan->ts->pchan_is) { + case GSM_PCHAN_TCH_F: + c->current.min_free_tch = ho_get_hodec2_tchf_min_slots(c->current.bts->ho); + break; + case GSM_PCHAN_TCH_H: + c->current.min_free_tch = ho_get_hodec2_tchh_min_slots(c->current.bts->ho); + break; + default: + break; + } + c->target.free_tchf = bts_count_free_ts(c->target.bts, GSM_PCHAN_TCH_F); + c->target.min_free_tchf = ho_get_hodec2_tchf_min_slots(c->target.bts->ho); + c->target.free_tchh = bts_count_free_ts(c->target.bts, GSM_PCHAN_TCH_H); + c->target.min_free_tchh = ho_get_hodec2_tchh_min_slots(c->target.bts->ho); +} + /* add candidate for re-assignment within the current cell */ static void collect_assignment_candidate(struct gsm_lchan *lchan, struct ho_candidate *clist, unsigned int *candidates, int rxlev_current) { struct gsm_bts *bts = lchan->ts->trx->bts; - int tchf_count, tchh_count; struct ho_candidate c; - tchf_count = bts_count_free_ts(bts, GSM_PCHAN_TCH_F); - tchh_count = bts_count_free_ts(bts, GSM_PCHAN_TCH_H); - c = (struct ho_candidate){ .current = { .lchan = lchan, @@ -880,9 +896,10 @@ .rxlev = rxlev_current, /* same cell, same rxlev */ }, }; - check_requirements(&c, tchf_count, tchh_count); + candidate_set_free_tch(&c); + check_requirements(&c); - debug_candidate(&c, tchf_count, tchh_count); + debug_candidate(&c); if (!c.requirements) return; @@ -898,8 +915,6 @@ int *neighbors_count) { struct gsm_bts *bts = lchan->ts->trx->bts; - int tchf_count = 0; - int tchh_count = 0; struct gsm_bts *neighbor_bts; const struct gsm0808_cell_id_list2 *neighbor_cil; struct neighbor_ident_key ni = { @@ -958,6 +973,7 @@ .rxlev = neigh_meas_avg(nmp, ho_get_hodec2_rxlev_neigh_avg_win(bts->ho)), }, }; + candidate_set_free_tch(&c); /* Heed rxlev hysteresis only if the RXLEV/RXQUAL/TA levels of the MS aren't critically bad and * we're just looking for an improvement. If levels are critical, we desperately need a handover @@ -985,13 +1001,11 @@ } if (neighbor_bts) { - tchf_count = bts_count_free_ts(neighbor_bts, GSM_PCHAN_TCH_F); - tchh_count = bts_count_free_ts(neighbor_bts, GSM_PCHAN_TCH_H); - check_requirements(&c, tchf_count, tchh_count); + check_requirements(&c); } else check_requirements_remote_bss(&c); - debug_candidate(&c, tchf_count, tchh_count); + debug_candidate(&c); if (!c.requirements) return; @@ -1751,7 +1765,7 @@ static void bts_congestion_check(struct gsm_bts *bts) { int min_free_tchf, min_free_tchh; - int tchf_count, tchh_count; + int free_tchf, free_tchh; global_ho_reason = HO_REASON_CONGESTION; @@ -1777,19 +1791,19 @@ return; } - tchf_count = bts_count_free_ts(bts, GSM_PCHAN_TCH_F); - tchh_count = bts_count_free_ts(bts, GSM_PCHAN_TCH_H); + free_tchf = bts_count_free_ts(bts, GSM_PCHAN_TCH_F); + free_tchh = bts_count_free_ts(bts, GSM_PCHAN_TCH_H); LOGPHOBTS(bts, LOGL_INFO, "Congestion check: (free/want-free) TCH/F=%d/%d TCH/H=%d/%d\n", - tchf_count, min_free_tchf, tchh_count, min_free_tchh); + free_tchf, min_free_tchf, free_tchh, min_free_tchh); /* only check BTS if congested */ - if (tchf_count >= min_free_tchf && tchh_count >= min_free_tchh) { + if (free_tchf >= min_free_tchf && free_tchh >= min_free_tchh) { LOGPHOBTS(bts, LOGL_DEBUG, "Not congested\n"); return; } LOGPHOBTS(bts, LOGL_DEBUG, "Attempting to resolve congestion...\n"); - bts_resolve_congestion(bts, min_free_tchf - tchf_count, min_free_tchh - tchh_count); + bts_resolve_congestion(bts, min_free_tchf - free_tchf, min_free_tchh - free_tchh); } void hodec2_congestion_check(struct gsm_network *net) -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21988 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ie6ca5af5e8d0ebb8deaaaa637e2728008ecba517 Gerrit-Change-Number: 21988 Gerrit-PatchSet: 5 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 11:14:39 2021 From: gerrit-no-reply at lists.osmocom.org (iedemam) Date: Tue, 12 Jan 2021 11:14:39 +0000 Subject: Change in osmo-bsc[master]: stats: Add granularity to SDCCH/TCH/LU activity. In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bsc/+/22103 to look at the new patch set (#6). Change subject: stats: Add granularity to SDCCH/TCH/LU activity. ...................................................................... stats: Add granularity to SDCCH/TCH/LU activity. Change-Id: I4df275e4770c5ff3643c79ba828e736986f8bb47 --- M include/osmocom/bsc/bts.h M src/osmo-bsc/abis_rsl.c M src/osmo-bsc/assignment_fsm.c M src/osmo-bsc/bts.c M src/osmo-bsc/osmo_bsc_filter.c 5 files changed, 123 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/03/22103/6 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22103 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I4df275e4770c5ff3643c79ba828e736986f8bb47 Gerrit-Change-Number: 22103 Gerrit-PatchSet: 6 Gerrit-Owner: iedemam Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 11:18:52 2021 From: gerrit-no-reply at lists.osmocom.org (iedemam) Date: Tue, 12 Jan 2021 11:18:52 +0000 Subject: Change in osmo-bsc[master]: stats: Add granularity to SDCCH/TCH/LU activity. In-Reply-To: References: Message-ID: iedemam has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22103 ) Change subject: stats: Add granularity to SDCCH/TCH/LU activity. ...................................................................... Patch Set 6: (1 comment) Thanks! Updated patchset pushed to rename BTS_CTR_ASSIGNMENT_NO_CHANNEL_{SDCCH,TCH} to BTS_CTR_ASSIGNMENT_NO_CHANNEL_{SIGN,SPEECH}. https://gerrit.osmocom.org/c/osmo-bsc/+/22103/1/src/osmo-bsc/assignment_fsm.c File src/osmo-bsc/assignment_fsm.c: https://gerrit.osmocom.org/c/osmo-bsc/+/22103/1/src/osmo-bsc/assignment_fsm.c at 543 PS1, Line 543: case GSM48_CMODE_SIGN: : rate_ctr_inc(&bts->bts_ctrs->ctr[BTS_CTR_ASSIGNMENT_NO_CHANNEL_SDCCH]); : break; : case GSM48_CMODE_SPEECH_V1: : case GSM48_CMODE_SPEECH_EFR: : case GSM48_CMODE_SPEECH_AMR: : rate_ctr_inc(&bts->bts_ctrs->ctr[BTS_CTR_ASSIGNMENT_NO_CHANNEL_TCH]); : break; > It is implementation dependent. [?] Agreed, that is more in line with the sense of this counter. I've changed them to BSC_CTR_ASSIGNMENT_{SIGN,SPEECH} to match the GSM48_CMODE_{SIGN,SPEECH} enum. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22103 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I4df275e4770c5ff3643c79ba828e736986f8bb47 Gerrit-Change-Number: 22103 Gerrit-PatchSet: 6 Gerrit-Owner: iedemam Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 12 Jan 2021 11:18:52 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: iedemam Comment-In-Reply-To: laforge Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 11:21:01 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 12 Jan 2021 11:21:01 +0000 Subject: Change in docker-playground[master]: ttcn3-gbproxy-test-fr: fix SNS ip address References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/22108 ) Change subject: ttcn3-gbproxy-test-fr: fix SNS ip address ...................................................................... ttcn3-gbproxy-test-fr: fix SNS ip address Change-Id: Iba5aee47fb237884d4b0238b9cef4e2370e7ce09 --- M ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/08/22108/1 diff --git a/ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg b/ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg index 35180aa..5d415a2 100644 --- a/ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg +++ b/ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg @@ -46,7 +46,7 @@ timer tns-alive 3 timer tns-alive-retries 10 nse 101 - ip-sns 172.18.24.103 23000 + ip-sns 172.18.25.103 23000 nse 2001 nsvc fr hdlcnet1 dlci 16 nsvci 1 nsvc fr hdlcnet2 dlci 17 nsvci 2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22108 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Iba5aee47fb237884d4b0238b9cef4e2370e7ce09 Gerrit-Change-Number: 22108 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 11:21:02 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 12 Jan 2021 11:21:02 +0000 Subject: Change in docker-playground[master]: make osmo-gbproxy.cfg in ttcn3-gbproxy and ttcn3-gbproxy-fr to look s... References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/22109 ) Change subject: make osmo-gbproxy.cfg in ttcn3-gbproxy and ttcn3-gbproxy-fr to look similiar ...................................................................... make osmo-gbproxy.cfg in ttcn3-gbproxy and ttcn3-gbproxy-fr to look similiar Reduces human error when changing the configruation for both cases. Change-Id: I807589cc04f23d483695467320d34d79eaf5d290 --- M ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg 1 file changed, 12 insertions(+), 12 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/09/22109/1 diff --git a/ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg b/ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg index 5d415a2..3b5bf96 100644 --- a/ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg +++ b/ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg @@ -19,9 +19,14 @@ no login bind 0.0.0.0 ! +gbproxy +sgsn nsei 101 + name main ns bind udp local listen 172.18.25.10 23000 + nse 101 + ip-sns 172.18.25.103 23000 bind fr hdlcnet1 fr hdlcnet1 frnet bind fr hdlcnet2 @@ -38,15 +43,6 @@ fr hdlcnet7 frnet bind fr hdlcnet8 fr hdlcnet8 frnet - timer tns-block 3 - timer tns-block-retries 3 - timer tns-reset 3 - timer tns-reset-retries 3 - timer tns-test 30 - timer tns-alive 3 - timer tns-alive-retries 10 - nse 101 - ip-sns 172.18.25.103 23000 nse 2001 nsvc fr hdlcnet1 dlci 16 nsvci 1 nsvc fr hdlcnet2 dlci 17 nsvci 2 @@ -58,6 +54,10 @@ nse 2003 nsvc fr hdlcnet7 dlci 22 nsvci 7 nsvc fr hdlcnet8 dlci 23 nsvci 8 -gbproxy -sgsn nsei 101 - name main + timer tns-block 3 + timer tns-block-retries 3 + timer tns-reset 3 + timer tns-reset-retries 3 + timer tns-test 30 + timer tns-alive 3 + timer tns-alive-retries 10 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22109 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I807589cc04f23d483695467320d34d79eaf5d290 Gerrit-Change-Number: 22109 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 11:26:43 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 12 Jan 2021 11:26:43 +0000 Subject: Change in docker-playground[master]: ttcn3-gbproxy-test-fr: fix SNS ip address In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22108 ) Change subject: ttcn3-gbproxy-test-fr: fix SNS ip address ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22108 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Iba5aee47fb237884d4b0238b9cef4e2370e7ce09 Gerrit-Change-Number: 22108 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: daniel Gerrit-Comment-Date: Tue, 12 Jan 2021 11:26:43 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 11:27:43 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 12 Jan 2021 11:27:43 +0000 Subject: Change in docker-playground[master]: make osmo-gbproxy.cfg in ttcn3-gbproxy and ttcn3-gbproxy-fr to look s... In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22109 ) Change subject: make osmo-gbproxy.cfg in ttcn3-gbproxy and ttcn3-gbproxy-fr to look similiar ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22109 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I807589cc04f23d483695467320d34d79eaf5d290 Gerrit-Change-Number: 22109 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: daniel Gerrit-Comment-Date: Tue, 12 Jan 2021 11:27:43 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 15:06:23 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Tue, 12 Jan 2021 15:06:23 +0000 Subject: Change in libosmocore[master]: bssgp_rim: move bssgp_parse_rim_ri and bssgp_create_rim_ri to gprs_bs... In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/21863 to look at the new patch set (#9). Change subject: bssgp_rim: move bssgp_parse_rim_ri and bssgp_create_rim_ri to gprs_bssgp_rim ...................................................................... bssgp_rim: move bssgp_parse_rim_ri and bssgp_create_rim_ri to gprs_bssgp_rim The function bssgp_parse_rim_ri() and bssgp_create_rim_ri() are located in gprs_bssgp.c, since there is now a gprs_bssgp_rim.c module it makes more sense to put them there. Change-Id: Icd667f41d5735de56cd9fb257670337c679dd258 Related: SYS#5103 --- M include/osmocom/gprs/gprs_bssgp.h M include/osmocom/gprs/gprs_bssgp_rim.h M src/gb/gprs_bssgp.c M src/gb/gprs_bssgp_rim.c M tests/gb/gprs_bssgp_rim_test.c M tests/gb/gprs_bssgp_rim_test.ok M tests/gb/gprs_bssgp_test.c M tests/gb/gprs_bssgp_test.ok 8 files changed, 311 insertions(+), 311 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/63/21863/9 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21863 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Icd667f41d5735de56cd9fb257670337c679dd258 Gerrit-Change-Number: 21863 Gerrit-PatchSet: 9 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 15:19:27 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Tue, 12 Jan 2021 15:19:27 +0000 Subject: Change in osmo-sgsn[master]: sgsn_rim: Add routing for (GERAN) BSSGP RIM messages References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22110 ) Change subject: sgsn_rim: Add routing for (GERAN) BSSGP RIM messages ...................................................................... sgsn_rim: Add routing for (GERAN) BSSGP RIM messages The SGSN currently does not forward BSSGP RIM messages. Related: SYS#5103 Change-Id: I6fde8ab8955660b48000ca1b650cfc7c7b2e24ba --- M include/osmocom/sgsn/Makefile.am M include/osmocom/sgsn/debug.h A include/osmocom/sgsn/sgsn_rim.h M src/sgsn/Makefile.am M src/sgsn/sgsn_main.c A src/sgsn/sgsn_rim.c 6 files changed, 92 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/10/22110/1 diff --git a/include/osmocom/sgsn/Makefile.am b/include/osmocom/sgsn/Makefile.am index 3fdb6b3..95c811a 100644 --- a/include/osmocom/sgsn/Makefile.am +++ b/include/osmocom/sgsn/Makefile.am @@ -24,6 +24,7 @@ gprs_utils.h \ gtphub.h \ sgsn.h \ + sgsn_rim.h \ signal.h \ slhc.h \ v42bis.h \ diff --git a/include/osmocom/sgsn/debug.h b/include/osmocom/sgsn/debug.h index da819d5..ed09e29 100644 --- a/include/osmocom/sgsn/debug.h +++ b/include/osmocom/sgsn/debug.h @@ -40,6 +40,7 @@ DSIGTRAN, DGTP, DOBJ, + DRIM, Debug_LastEntry, }; diff --git a/include/osmocom/sgsn/sgsn_rim.h b/include/osmocom/sgsn/sgsn_rim.h new file mode 100644 index 0000000..9f62383 --- /dev/null +++ b/include/osmocom/sgsn/sgsn_rim.h @@ -0,0 +1,3 @@ +#pragma once + +int sgsn_rim_rx(struct msgb *msg); diff --git a/src/sgsn/Makefile.am b/src/sgsn/Makefile.am index 6a7392b..8738986 100644 --- a/src/sgsn/Makefile.am +++ b/src/sgsn/Makefile.am @@ -62,6 +62,7 @@ sgsn_auth.c \ gprs_subscriber.c \ sgsn_cdr.c \ + sgsn_rim.c \ slhc.c \ gprs_llc_xid.c \ v42bis.c \ diff --git a/src/sgsn/sgsn_main.c b/src/sgsn/sgsn_main.c index 19039f6..0fbd4a6 100644 --- a/src/sgsn/sgsn_main.c +++ b/src/sgsn/sgsn_main.c @@ -67,6 +67,7 @@ #include #include +#include #include "../../bscconfig.h" @@ -120,6 +121,8 @@ break; case SAP_BSSGP_NM: break; + case SAP_BSSGP_RIM: + return sgsn_rim_rx(oph->msg); } return 0; } @@ -311,6 +314,11 @@ .description = "GPRS Tunnelling Protocol (GTP)", .enabled = 1, .loglevel = LOGL_NOTICE, }, + [DRIM] = { + .name = "DRIM", + .description = "RAN Information Management (RIM)", + .enabled = 1, .loglevel = LOGL_NOTICE, + }, }; static const struct log_info gprs_log_info = { diff --git a/src/sgsn/sgsn_rim.c b/src/sgsn/sgsn_rim.c new file mode 100644 index 0000000..bbf75b2 --- /dev/null +++ b/src/sgsn/sgsn_rim.c @@ -0,0 +1,78 @@ + +#include + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +/* Find an NSEI for the destination cell, this function works only for GERAN! */ +static int find_dest_nsei_geran(struct bssgp_rim_routing_info *dest_rim_ri, uint16_t nsei) +{ + struct bssgp_bvc_ctx *bvc_ctx; + + OSMO_ASSERT(dest_rim_ri->discr == BSSGP_RIM_ROUTING_INFO_GERAN); + + bvc_ctx = btsctx_by_raid_cid(&dest_rim_ri->geran.raid, dest_rim_ri->geran.cid); + if (!bvc_ctx) { + LOGP(DRIM, LOGL_ERROR, "BSSGP RIM (NSEI=%u) cannot find NSEI for destination cell\n", nsei); + return -EINVAL; + } + + return bvc_ctx->nsei; +} + +int sgsn_rim_rx(struct msgb *msg) +{ + struct bssgp_rim_routing_info dest_rim_ri; + struct bssgp_rim_routing_info src_rim_ri; + int rc; + struct bssgp_ran_information_pdu pdu; + int d_nsei; + uint16_t nsei = msgb_nsei(msg); + + rc = bssgp_parse_rim_pdu(&pdu, msg); + if (rc < 0) + return bssgp_tx_status(BSSGP_CAUSE_MISSING_MAND_IE, NULL, msg); + + /* Parse destination and source cell identifer */ + rc = bssgp_parse_rim_ri(&dest_rim_ri, pdu.routing_info_dest, pdu.routing_info_dest_len); + if (rc < 0) { + LOGP(DRIM, LOGL_ERROR, "BSSGP RIM (NSEI=%u) cannot decode Destination Cell Identifier\n", nsei); + return bssgp_tx_status(BSSGP_CAUSE_UNKN_RIM_AI, NULL, msg); + } + + rc = bssgp_parse_rim_ri(&src_rim_ri, pdu.routing_info_src, pdu.routing_info_src_len); + if (rc < 0) { + LOGP(DRIM, LOGL_ERROR, "BSSGP RIM (NSEI=%u) cannot decode Source Cell Identifier\n", nsei); + return bssgp_tx_status(BSSGP_CAUSE_UNKN_RIM_AI, NULL, msg); + } + + /* At the moment we only support GERAN, so we block all other network + * types here. */ + if (dest_rim_ri.discr != BSSGP_RIM_ROUTING_INFO_GERAN) { + LOGP(DRIM, LOGL_ERROR, + "BSSGP RIM (NSEI=%u) only GERAN supported, destination cell is not a GERAN cell -- rejected.\n", + nsei); + return bssgp_tx_status(BSSGP_CAUSE_UNKN_RIM_AI, NULL, msg); + } + if (src_rim_ri.discr != BSSGP_RIM_ROUTING_INFO_GERAN) { + LOGP(DRIM, LOGL_ERROR, + "BSSGP RIM (NSEI=%u) only GERAN supported, source cell is not a GERAN cell -- rejected.\n", nsei); + return bssgp_tx_status(BSSGP_CAUSE_UNKN_RIM_AI, NULL, msg); + } + + d_nsei = find_dest_nsei_geran(&dest_rim_ri, nsei); + if (d_nsei < 0) { + return bssgp_tx_status(BSSGP_CAUSE_UNKN_RIM_AI, NULL, msg); + } + + return bssgp_tx_rim(&pdu, (uint16_t)d_nsei); +} -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22110 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I6fde8ab8955660b48000ca1b650cfc7c7b2e24ba Gerrit-Change-Number: 22110 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 15:49:27 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 12 Jan 2021 15:49:27 +0000 Subject: Change in libosmocore[master]: bssgp_rim: move bssgp_parse_rim_ri and bssgp_create_rim_ri to gprs_bs... In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21863 ) Change subject: bssgp_rim: move bssgp_parse_rim_ri and bssgp_create_rim_ri to gprs_bssgp_rim ...................................................................... Patch Set 9: (2 comments) https://gerrit.osmocom.org/c/libosmocore/+/21863/9/src/gb/gprs_bssgp_rim.c File src/gb/gprs_bssgp_rim.c: https://gerrit.osmocom.org/c/libosmocore/+/21863/9/src/gb/gprs_bssgp_rim.c at 56 PS9, Line 56: ri->discr = buf[0] & 0x0f; probably better doing buf++ here and then avoid using buf +1 everywhere after this point. https://gerrit.osmocom.org/c/libosmocore/+/21863/9/src/gb/gprs_bssgp_rim.c at 127 PS9, Line 127: return ri->eutran.global_enb_id_len + 6; you are missing 1 byte here I think, at least if you compare it to other switch cases. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21863 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Icd667f41d5735de56cd9fb257670337c679dd258 Gerrit-Change-Number: 21863 Gerrit-PatchSet: 9 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 12 Jan 2021 15:49:27 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 15:51:13 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 12 Jan 2021 15:51:13 +0000 Subject: Change in osmo-sgsn[master]: sgsn_rim: Add routing for (GERAN) BSSGP RIM messages In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22110 ) Change subject: sgsn_rim: Add routing for (GERAN) BSSGP RIM messages ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-sgsn/+/22110/1/src/sgsn/sgsn_rim.c File src/sgsn/sgsn_rim.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/22110/1/src/sgsn/sgsn_rim.c at 46 PS1, Line 46: rc = bssgp_parse_rim_ri(&dest_rim_ri, pdu.routing_info_dest, pdu.routing_info_dest_len); I think all this should be done by bssgp_parse_rim_pdu and stored inside pdu, as I commented in the other patch. -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22110 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I6fde8ab8955660b48000ca1b650cfc7c7b2e24ba Gerrit-Change-Number: 22110 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 12 Jan 2021 15:51:13 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 16:01:55 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Tue, 12 Jan 2021 16:01:55 +0000 Subject: Change in osmo-sgsn[master]: sgsn_rim: Add routing for (GERAN) BSSGP RIM messages In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22110 to look at the new patch set (#2). Change subject: sgsn_rim: Add routing for (GERAN) BSSGP RIM messages ...................................................................... sgsn_rim: Add routing for (GERAN) BSSGP RIM messages The SGSN currently does not forward BSSGP RIM messages. Related: SYS#5103 Depends: libosmocore Icd667f41d5735de56cd9fb257670337c679dd258 Change-Id: I6fde8ab8955660b48000ca1b650cfc7c7b2e24ba --- M include/osmocom/sgsn/Makefile.am M include/osmocom/sgsn/debug.h A include/osmocom/sgsn/sgsn_rim.h M src/sgsn/Makefile.am M src/sgsn/sgsn_main.c A src/sgsn/sgsn_rim.c 6 files changed, 92 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/10/22110/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22110 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I6fde8ab8955660b48000ca1b650cfc7c7b2e24ba Gerrit-Change-Number: 22110 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 16:24:39 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 12 Jan 2021 16:24:39 +0000 Subject: Change in osmo-ci[master]: jobs: add missing OSMO_GSM_MANUALS_DIR References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/22111 ) Change subject: jobs: add missing OSMO_GSM_MANUALS_DIR ...................................................................... jobs: add missing OSMO_GSM_MANUALS_DIR Add the variable to projects that don't use docker at all or overwrite docker_run instead of using the global variable that has OSMO_GSM_MANUALS_DIR defined. Related: OS#4912 Change-Id: I65102655b4b3e907a0b0de8026f8f9af76281f90 --- M jobs/gerrit-verifications.yml M jobs/master-builds.yml 2 files changed, 21 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/11/22111/1 diff --git a/jobs/gerrit-verifications.yml b/jobs/gerrit-verifications.yml index d2e37cf..fbefbdb 100644 --- a/jobs/gerrit-verifications.yml +++ b/jobs/gerrit-verifications.yml @@ -111,7 +111,10 @@ (FIRMWARE_VERSION == "oc2g" && BTS_MODEL == "oc2g" && WITH_MANUALS == "0" && label == "osmocom-master-debian9") || (FIRMWARE_VERSION == "oc2g-next" && BTS_MODEL == "oc2g" && WITH_MANUALS == "0" && label == "osmocom-master-debian9") concurrent: false - cmd: 'ASCIIDOC_WARNINGS_CHECK="1" {timeout_cmd} ./contrib/jenkins_bts_model.sh "$BTS_MODEL"' + cmd: | + export ASCIIDOC_WARNINGS_CHECK="1" + export OSMO_GSM_MANUALS_DIR="$PWD/deps/osmo-gsm-manuals" + {timeout_cmd} ./contrib/jenkins_bts_model.sh "$BTS_MODEL" - osmo_dia2gsup: repos_url: '{gerrit_url}/erlang/{repos}' @@ -130,6 +133,7 @@ -e JOB_NAME="$JOB_NAME" \ -e MAKE=make \ -e OSMOPY_DEBUG_TCP_SOCKETS="1" \ + -e OSMO_GSM_MANUALS_DIR="/build/deps/osmo-gsm-manuals" \ -e PARALLEL_MAKE="$PARALLEL_MAKE" \ -e WITH_MANUALS="1" \ -w /build -i -u build \ @@ -241,7 +245,10 @@ (INSTR == "--with-sse" && WITH_MANUALS == "0" && label == "osmocom-master-debian9") || (INSTR == "--with-neon" && WITH_MANUALS == "0" && label == "rpi4-deb9build-ansible") || (INSTR == "--with-neon-vfpv4" && WITH_MANUALS == "0" && label == "rpi4-deb9build-ansible") - cmd: 'ASCIIDOC_WARNINGS_CHECK=1 {timeout_cmd} ./contrib/jenkins.sh' + cmd: | + export ASCIIDOC_WARNINGS_CHECK=1 + export OSMO_GSM_MANUALS_DIR="$PWD/deps/osmo-gsm-manuals" + {timeout_cmd} ./contrib/jenkins.sh - osmocom-bb - osmo-tetra diff --git a/jobs/master-builds.yml b/jobs/master-builds.yml index 3c3daf8..c648a7b 100644 --- a/jobs/master-builds.yml +++ b/jobs/master-builds.yml @@ -195,7 +195,11 @@ (FIRMWARE_VERSION == "origin/nrw/litecell15" && BTS_MODEL == "lc15" && WITH_MANUALS == "0" && label == "osmocom-master-debian9") || (FIRMWARE_VERSION == "origin/nrw/oc2g" && BTS_MODEL == "oc2g" && WITH_MANUALS == "0" && label == "osmocom-master-debian9") concurrent: false - cmd: 'PUBLISH=1 ASCIIDOC_WARNINGS_CHECK=1 ./contrib/jenkins_bts_model.sh "$BTS_MODEL"' + cmd: | + export ASCIIDOC_WARNINGS_CHECK=1 + export OSMO_GSM_MANUALS_DIR="$PWD/deps/osmo-gsm-manuals" + export PUBLISH=1 + ./contrib/jenkins_bts_model.sh "$BTS_MODEL" - osmo-e1-hardware: docker_run: | @@ -209,6 +213,7 @@ -e JOB_NAME="$JOB_NAME" \ -e MAKE=make \ -e OSMOPY_DEBUG_TCP_SOCKETS="1" \ + -e OSMO_GSM_MANUALS_DIR="/build/deps/osmo-gsm-manuals" \ -e PARALLEL_MAKE="$PARALLEL_MAKE" \ -e PUBLISH="1" \ -e WITH_MANUALS="1" \ @@ -231,6 +236,7 @@ -e JOB_NAME="$JOB_NAME" \ -e MAKE=make \ -e OSMOPY_DEBUG_TCP_SOCKETS="1" \ + -e OSMO_GSM_MANUALS_DIR="/build/deps/osmo-gsm-manuals" \ -e PARALLEL_MAKE="$PARALLEL_MAKE" \ -e PUBLISH="1" \ -e WITH_MANUALS="1" \ @@ -353,7 +359,11 @@ (INSTR == "--with-sse" && WITH_MANUALS == "0" && label == "osmocom-master-debian9") || (INSTR == "--with-neon" && WITH_MANUALS == "0" && label == "rpi4-deb9build-ansible") || (INSTR == "--with-neon-vfpv4" && WITH_MANUALS == "0" && label == "rpi4-deb9build-ansible") - cmd: 'PUBLISH=1 ASCIIDOC_WARNINGS_CHECK=1 ./contrib/jenkins.sh' + cmd: | + export ASCIIDOC_WARNINGS_CHECK=1 + export OSMO_GSM_MANUALS_DIR="$PWD/deps/osmo-gsm-manuals" + export PUBLISH=1 + ./contrib/jenkins.sh - osmocom-bb - osmo-sysmon -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22111 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I65102655b4b3e907a0b0de8026f8f9af76281f90 Gerrit-Change-Number: 22111 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 16:25:55 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 12 Jan 2021 16:25:55 +0000 Subject: Change in osmo-ci[master]: jobs: add missing OSMO_GSM_MANUALS_DIR In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22111 ) Change subject: jobs: add missing OSMO_GSM_MANUALS_DIR ...................................................................... Patch Set 1: Verified+1 I've rolled this change out already to fix osmo-trx build failures from earlier today. Without the patch: https://jenkins.osmocom.org/jenkins/job/master-osmo-trx/2438/INSTR=--without-sse,WITH_MANUALS=1,a3=default,a4=default,label=osmocom-master-debian9/console With the patch: https://jenkins.osmocom.org/jenkins/job/master-osmo-trx/2441/INSTR=--without-sse,WITH_MANUALS=1,a3=default,a4=default,label=osmocom-master-debian9/console -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22111 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I65102655b4b3e907a0b0de8026f8f9af76281f90 Gerrit-Change-Number: 22111 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 12 Jan 2021 16:25:55 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 16:27:16 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 12 Jan 2021 16:27:16 +0000 Subject: Change in osmo-ci[master]: jobs: add missing OSMO_GSM_MANUALS_DIR In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22111 ) Change subject: jobs: add missing OSMO_GSM_MANUALS_DIR ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22111 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I65102655b4b3e907a0b0de8026f8f9af76281f90 Gerrit-Change-Number: 22111 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 12 Jan 2021 16:27:16 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 16:36:22 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 12 Jan 2021 16:36:22 +0000 Subject: Change in osmo-pcu[master]: tbf: remove 'software error' logs from tbf_free In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22105 ) Change subject: tbf: remove 'software error' logs from tbf_free ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22105 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I4ab5ccaa5bf6257b18d8fd5ba06baab083821817 Gerrit-Change-Number: 22105 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: keith Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 12 Jan 2021 16:36:22 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 16:36:25 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 12 Jan 2021 16:36:25 +0000 Subject: Change in osmo-pcu[master]: tbf: remove 'software error' logs from tbf_free In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22105 ) Change subject: tbf: remove 'software error' logs from tbf_free ...................................................................... tbf: remove 'software error' logs from tbf_free It is expected that the tbf object is freed at any moment in time, for instance if osmo-pcu drops PCUIF connection with osmo-bts. I couldn't find any reason why it would e dangerous to free the tbf, so let's remove this message. related: OS#4779 Change-Id: I4ab5ccaa5bf6257b18d8fd5ba06baab083821817 --- M src/tbf.cpp M src/tbf.h M tests/tbf/TbfTest.err 3 files changed, 0 insertions(+), 22 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, but someone else must approve keith: Looks good to me, but someone else must approve pespin: Looks good to me, approved diff --git a/src/tbf.cpp b/src/tbf.cpp index 28e24b8..6dcd954 100644 --- a/src/tbf.cpp +++ b/src/tbf.cpp @@ -301,7 +301,6 @@ } LOGPTBF(tbf, LOGL_INFO, "free\n"); - tbf->check_pending_ass(); tbf->stop_timers("freeing TBF"); /* TODO: Could/Should generate bssgp_tx_llc_discarded */ tbf_unlink_pdch(tbf); diff --git a/src/tbf.h b/src/tbf.h index 72b5cf0..d767547 100644 --- a/src/tbf.h +++ b/src/tbf.h @@ -233,7 +233,6 @@ void set_ack_state(enum gprs_rlcmac_tbf_ul_ack_state new_state, const char *file, int line); void poll_sched_set(const char *file, int line); void poll_sched_unset(const char *file, int line); - void check_pending_ass(); bool check_n_clear(uint8_t state_flag); void set_assigned_on(uint8_t state_flag, bool check_ccch, const char *file, int line); void ass_type_mod(uint8_t t, bool unset, const char *file, int line); @@ -513,21 +512,6 @@ poll_state = GPRS_RLCMAC_POLL_NONE; } -inline void gprs_rlcmac_tbf::check_pending_ass() -{ - if (ul_ass_state != GPRS_RLCMAC_UL_ASS_NONE) - LOGPTBF(this, LOGL_ERROR, "FIXME: Software error: Pending uplink assignment in state %s. " - "This may not happen, because the assignment message never gets transmitted. " - "Please be sure not to free in this state. PLEASE FIX!\n", - get_value_string(gprs_rlcmac_tbf_ul_ass_state_names, ul_ass_state)); - - if (dl_ass_state != GPRS_RLCMAC_DL_ASS_NONE) - LOGPTBF(this, LOGL_ERROR, "FIXME: Software error: Pending downlink assignment in state %s. " - "This may not happen, because the assignment message never gets transmitted. " - "Please be sure not to free in this state. PLEASE FIX!\n", - get_value_string(gprs_rlcmac_tbf_dl_ass_state_names, dl_ass_state)); -} - inline bool gprs_rlcmac_tbf::check_n_clear(uint8_t state_flag) { if ((state_flags & (1 << state_flag))) { diff --git a/tests/tbf/TbfTest.err b/tests/tbf/TbfTest.err index fa5fd47..4d27cc9 100644 --- a/tests/tbf/TbfTest.err +++ b/tests/tbf/TbfTest.err @@ -521,7 +521,6 @@ MS(TLLI=0xf1000002, IMSI=, TA=0, 45/0, DL) IMSI '001001000000002' was already assigned to another MS object: TLLI = 0xf1000001, that IMSI will be removed TBF(TFI=0 TLLI=0xf1000001 DIR=DL STATE=FLOW) changes state from FLOW to RELEASING TBF(TFI=0 TLLI=0xf1000001 DIR=DL STATE=RELEASING) free -TBF(TFI=0 TLLI=0xf1000001 DIR=DL STATE=RELEASING) FIXME: Software error: Pending downlink assignment in state GPRS_RLCMAC_DL_ASS_SEND_ASS. This may not happen, because the assignment message never gets transmitted. Please be sure not to free in this state. PLEASE FIX! PDCH(TS 4, TRX 0): Detaching TBF(TFI=0 TLLI=0xf1000001 DIR=DL STATE=RELEASING), 1 TBFs, USFs = 00, TFIs = 00000002. Detaching TBF from MS object, TLLI = 0xf1000001, TBF = TBF(TFI=0 TLLI=0xf1000001 DIR=DL STATE=RELEASING) ********** DL-TBF ends here ********** @@ -529,7 +528,6 @@ Destroying MS object, TLLI = 0xffffffff TBF(TFI=1 TLLI=0xf1000002 DIR=DL STATE=FLOW) changes state from FLOW to RELEASING TBF(TFI=1 TLLI=0xf1000002 DIR=DL STATE=RELEASING) free -TBF(TFI=1 TLLI=0xf1000002 DIR=DL STATE=RELEASING) FIXME: Software error: Pending downlink assignment in state GPRS_RLCMAC_DL_ASS_SEND_ASS. This may not happen, because the assignment message never gets transmitted. Please be sure not to free in this state. PLEASE FIX! PDCH(TS 4, TRX 0): Detaching TBF(TFI=1 TLLI=0xf1000002 DIR=DL STATE=RELEASING), 0 TBFs, USFs = 00, TFIs = 00000000. Detaching TBF from MS object, TLLI = 0xf1000002, TBF = TBF(TFI=1 TLLI=0xf1000002 DIR=DL STATE=RELEASING) Destroying MS object, TLLI = 0xf1000002 @@ -1860,7 +1858,6 @@ Old MS: TLLI = 0xf1223344, TA = 7, IMSI = 0011223344, LLC = 2 MS(TLLI=0xf1223344, IMSI=0011223344, TA=7, 1/0, UL DL) UL RSSI: 31 dBm TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) free -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) FIXME: Software error: Pending downlink assignment in state GPRS_RLCMAC_DL_ASS_SEND_ASS. This may not happen, because the assignment message never gets transmitted. Please be sure not to free in this state. PLEASE FIX! TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) stopping timer T3169 [freeing TBF] PDCH(TS 7, TRX 0): Detaching TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW), 0 TBFs, USFs = 00, TFIs = 00000000. Detaching TBF from MS object, TLLI = 0xf1223344, TBF = TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) @@ -1999,7 +1996,6 @@ Old MS: TLLI = 0xf1223344, TA = 7, IMSI = 0011223344, LLC = 2 MS(TLLI=0xf1223344, IMSI=0011223344, TA=7, 1/0, UL DL) UL RSSI: 31 dBm TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) free -TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) FIXME: Software error: Pending downlink assignment in state GPRS_RLCMAC_DL_ASS_SEND_ASS. This may not happen, because the assignment message never gets transmitted. Please be sure not to free in this state. PLEASE FIX! TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) stopping timer T3169 [freeing TBF] PDCH(TS 7, TRX 0): Detaching TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW), 0 TBFs, USFs = 00, TFIs = 00000000. Detaching TBF from MS object, TLLI = 0xf1223344, TBF = TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) @@ -6023,7 +6019,6 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) V(B): (V(A)=1186)"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNAAANAAAAAAAAAAAAAAAAAAAAAAAAAA"(V(S)-1=1287) A=Acked N=Nacked U=Unacked X=Resend-Unacked I=Invalid TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) changes state from FLOW to RELEASING TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EGPRS) free -TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EGPRS) FIXME: Software error: Pending downlink assignment in state GPRS_RLCMAC_DL_ASS_SEND_ASS. This may not happen, because the assignment message never gets transmitted. Please be sure not to free in this state. PLEASE FIX! PDCH(TS 4, TRX 0): Detaching TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EGPRS), 0 TBFs, USFs = 00, TFIs = 00000000. Detaching TBF from MS object, TLLI = 0xffeeddcc, TBF = TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EGPRS) Destroying MS object, TLLI = 0xffeeddcc -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22105 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I4ab5ccaa5bf6257b18d8fd5ba06baab083821817 Gerrit-Change-Number: 22105 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: keith Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 17:05:31 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 12 Jan 2021 17:05:31 +0000 Subject: Change in ...osmo-python-tests[master]: README: Drop python2 references References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/python/osmo-python-tests/+/22112 ) Change subject: README: Drop python2 references ...................................................................... README: Drop python2 references Python2 support was dropped recently, remove references informing how to install python2 modules (operation would fail). Change-Id: Iffe403377afe9534dbd61d65bfd52e479e125e68 --- M README 1 file changed, 0 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/python/osmo-python-tests refs/changes/12/22112/1 diff --git a/README b/README index dbb8d88..f325ae6 100644 --- a/README +++ b/README @@ -1,6 +1,5 @@ Building/installation: - sudo python setup.py install sudo python3 setup.py install If you prefer to have it cleanly removable, install checkinstall and run @@ -9,7 +8,6 @@ Alternatively, just run - pip install --user -e ./ pip3 install --user -e ./ depending on your python version. -- To view, visit https://gerrit.osmocom.org/c/python/osmo-python-tests/+/22112 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: python/osmo-python-tests Gerrit-Branch: master Gerrit-Change-Id: Iffe403377afe9534dbd61d65bfd52e479e125e68 Gerrit-Change-Number: 22112 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 17:14:55 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 12 Jan 2021 17:14:55 +0000 Subject: Change in libosmocore[master]: tlv_parser: Fix various out-of-bounds accesses References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22113 ) Change subject: tlv_parser: Fix various out-of-bounds accesses ...................................................................... tlv_parser: Fix various out-of-bounds accesses The libosmocore TLV parser had a number of insufficient bounds checks leading to reads beyond the end of the respective input buffer. This patch * adds proper out-of-bounds checks to all TLV types * simplifies some of the existing checks * introduces test cases to test all the corner cases where either TAG, or length, or value are not fully contained in the input buffer. Thanks to Ilja Van Sprundel for reporting these problems. Change-Id: I98b02c914c9e3ecf56050af846292aa6979d7508 --- M src/gsm/tlv_parser.c M tests/tlv/tlv_test.c M tests/tlv/tlv_test.ok 3 files changed, 114 insertions(+), 15 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/13/22113/1 diff --git a/src/gsm/tlv_parser.c b/src/gsm/tlv_parser.c index 7930d64..4da7e08 100644 --- a/src/gsm/tlv_parser.c +++ b/src/gsm/tlv_parser.c @@ -232,7 +232,7 @@ const uint8_t *buf, int buf_len) { uint8_t tag; - int len; + int len; /* number of bytes consumed by TLV entry */ tag = *buf; *o_tag = tag; @@ -254,67 +254,67 @@ len = 1; break; case TLV_TYPE_TV: + if (buf_len < 1) + return OSMO_TLVP_ERR_OFS_BEYOND_BUFFER; *o_val = buf+1; *o_len = 1; len = 2; break; case TLV_TYPE_FIXED: + if (buf_len < 1) + return OSMO_TLVP_ERR_OFS_BEYOND_BUFFER; *o_val = buf+1; *o_len = def->def[tag].fixed_len; len = def->def[tag].fixed_len + 1; break; case TLV_TYPE_TLV: tlv: /* GSM TS 04.07 11.2.4: Type 4 TLV */ - if (buf + 1 > buf + buf_len) + if (buf_len < 2) return OSMO_TLVP_ERR_OFS_BEYOND_BUFFER; *o_val = buf+2; *o_len = *(buf+1); len = *o_len + 2; - if (len > buf_len) - return OSMO_TLVP_ERR_OFS_LEN_BEYOND_BUFFER; break; case TLV_TYPE_vTvLV_GAN: /* 44.318 / 11.1.4 */ /* FIXME: variable-length TAG! */ + if (buf_len < 2) + return OSMO_TLVP_ERR_OFS_BEYOND_BUFFER; if (*(buf+1) & 0x80) { - /* like TL16Vbut without highest bit of len */ - if (2 > buf_len) + if (buf_len < 3) return OSMO_TLVP_ERR_OFS_BEYOND_BUFFER; + /* like TL16Vbut without highest bit of len */ *o_val = buf+3; *o_len = (*(buf+1) & 0x7F) << 8 | *(buf+2); len = *o_len + 3; - if (len > buf_len) - return OSMO_TLVP_ERR_OFS_LEN_BEYOND_BUFFER; } else { /* like TLV */ goto tlv; } break; case TLV_TYPE_TvLV: + if (buf_len < 2) + return OSMO_TLVP_ERR_OFS_BEYOND_BUFFER; if (*(buf+1) & 0x80) { /* like TLV, but without highest bit of len */ - if (buf + 1 > buf + buf_len) - return OSMO_TLVP_ERR_OFS_BEYOND_BUFFER; *o_val = buf+2; *o_len = *(buf+1) & 0x7f; len = *o_len + 2; - if (len > buf_len) - return OSMO_TLVP_ERR_OFS_LEN_BEYOND_BUFFER; break; } /* like TL16V, fallthrough */ case TLV_TYPE_TL16V: - if (2 > buf_len) + if (buf_len < 3) return OSMO_TLVP_ERR_OFS_BEYOND_BUFFER; *o_val = buf+3; *o_len = *(buf+1) << 8 | *(buf+2); len = *o_len + 3; - if (len > buf_len) - return OSMO_TLVP_ERR_OFS_LEN_BEYOND_BUFFER; break; default: return OSMO_TLVP_ERR_UNKNOWN_TLV_TYPE; } + if (buf_len < len) + return OSMO_TLVP_ERR_OFS_LEN_BEYOND_BUFFER; return len; } diff --git a/tests/tlv/tlv_test.c b/tests/tlv/tlv_test.c index 925d762..3b4f441 100644 --- a/tests/tlv/tlv_test.c +++ b/tests/tlv/tlv_test.c @@ -332,6 +332,97 @@ msgb_free(msg); } +static void test_tlv_parser_bounds() +{ + struct tlv_definition tdef; + struct tlv_parsed dec; + uint8_t buf[32]; + + memset(&tdef, 0, sizeof(tdef)); + + printf("Testing TLV_TYPE_T decoder for out-of-bounds\n"); + tdef.def[0x23].type = TLV_TYPE_T; + buf[0] = 0x23; + OSMO_ASSERT(tlv_parse(&dec, &tdef, buf, 1, 0, 0) == 1); + OSMO_ASSERT(tlv_parse(&dec, &tdef, buf, 0, 0, 0) == 0); + + printf("Testing TLV_TYPE_TV decoder for out-of-bounds\n"); + tdef.def[0x23].type = TLV_TYPE_TV; + buf[0] = 0x23; + buf[1] = 0x42; + OSMO_ASSERT(tlv_parse(&dec, &tdef, buf, 2, 0, 0) == 1); + OSMO_ASSERT(*TLVP_VAL(&dec, 0x23) == buf[1]); + OSMO_ASSERT(tlv_parse(&dec, &tdef, buf, 1, 0, 0) == OSMO_TLVP_ERR_OFS_LEN_BEYOND_BUFFER); + OSMO_ASSERT(TLVP_VAL(&dec, 0x23) == NULL); + + printf("Testing TLV_TYPE_FIXED decoder for out-of-bounds\n"); + tdef.def[0x23].type = TLV_TYPE_FIXED; + tdef.def[0x23].fixed_len = 2; + buf[0] = 0x23; + buf[1] = 0x42; + buf[2] = 0x55; + OSMO_ASSERT(tlv_parse(&dec, &tdef, buf, 3, 0, 0) == 1); + OSMO_ASSERT(tlv_parse(&dec, &tdef, buf, 2, 0, 0) == OSMO_TLVP_ERR_OFS_LEN_BEYOND_BUFFER); + OSMO_ASSERT(TLVP_VAL(&dec, 0x23) == NULL); + + printf("Testing TLV_TYPE_TLV decoder for out-of-bounds\n"); + tdef.def[0x23].type = TLV_TYPE_TLV; + buf[0] = 0x23; + buf[1] = 0x02; + buf[2] = 0x55; + buf[3] = 0xAA; + OSMO_ASSERT(tlv_parse(&dec, &tdef, buf, 4, 0, 0) == 1); + OSMO_ASSERT(TLVP_VAL(&dec, 0x23) == &buf[2]); + OSMO_ASSERT(tlv_parse(&dec, &tdef, buf, 3, 0, 0) == OSMO_TLVP_ERR_OFS_LEN_BEYOND_BUFFER); + OSMO_ASSERT(TLVP_VAL(&dec, 0x23) == NULL); + OSMO_ASSERT(tlv_parse(&dec, &tdef, buf, 2, 0, 0) == OSMO_TLVP_ERR_OFS_LEN_BEYOND_BUFFER); + OSMO_ASSERT(TLVP_VAL(&dec, 0x23) == NULL); + OSMO_ASSERT(tlv_parse(&dec, &tdef, buf, 1, 0, 0) == OSMO_TLVP_ERR_OFS_BEYOND_BUFFER); + OSMO_ASSERT(TLVP_VAL(&dec, 0x23) == NULL); + + printf("Testing TLV_TYPE_vTvLV_GAN decoder for out-of-bounds\n"); + tdef.def[0x23].type = TLV_TYPE_vTvLV_GAN; + buf[0] = 0x23; + buf[1] = 0x80; + buf[2] = 0x01; + buf[3] = 0xAA; + OSMO_ASSERT(tlv_parse(&dec, &tdef, buf, 4, 0, 0) == 1); + OSMO_ASSERT(TLVP_VAL(&dec, 0x23) == &buf[3]); + OSMO_ASSERT(tlv_parse(&dec, &tdef, buf, 3, 0, 0) == OSMO_TLVP_ERR_OFS_LEN_BEYOND_BUFFER); + OSMO_ASSERT(TLVP_VAL(&dec, 0x23) == NULL); + OSMO_ASSERT(tlv_parse(&dec, &tdef, buf, 2, 0, 0) == OSMO_TLVP_ERR_OFS_BEYOND_BUFFER); + OSMO_ASSERT(TLVP_VAL(&dec, 0x23) == NULL); + OSMO_ASSERT(tlv_parse(&dec, &tdef, buf, 1, 0, 0) == OSMO_TLVP_ERR_OFS_BEYOND_BUFFER); + OSMO_ASSERT(TLVP_VAL(&dec, 0x23) == NULL); + + printf("Testing TLV_TYPE_TvLV decoder for out-of-bounds\n"); + tdef.def[0x23].type = TLV_TYPE_TvLV; + buf[0] = 0x23; + buf[1] = 0x81; + buf[2] = 0xAA; + OSMO_ASSERT(tlv_parse(&dec, &tdef, buf, 3, 0, 0) == 1); + OSMO_ASSERT(TLVP_VAL(&dec, 0x23) == &buf[2]); + OSMO_ASSERT(tlv_parse(&dec, &tdef, buf, 2, 0, 0) == OSMO_TLVP_ERR_OFS_LEN_BEYOND_BUFFER); + OSMO_ASSERT(TLVP_VAL(&dec, 0x23) == NULL); + OSMO_ASSERT(tlv_parse(&dec, &tdef, buf, 1, 0, 0) == OSMO_TLVP_ERR_OFS_BEYOND_BUFFER); + OSMO_ASSERT(TLVP_VAL(&dec, 0x23) == NULL); + + printf("Testing TLV_TYPE_TL16V decoder for out-of-bounds\n"); + tdef.def[0x23].type = TLV_TYPE_TL16V; + buf[0] = 0x23; + buf[1] = 0x00; + buf[2] = 0x01; + buf[3] = 0xAA; + OSMO_ASSERT(tlv_parse(&dec, &tdef, buf, 4, 0, 0) == 1); + OSMO_ASSERT(TLVP_VAL(&dec, 0x23) == &buf[3]); + OSMO_ASSERT(tlv_parse(&dec, &tdef, buf, 3, 0, 0) == OSMO_TLVP_ERR_OFS_LEN_BEYOND_BUFFER); + OSMO_ASSERT(TLVP_VAL(&dec, 0x23) == NULL); + OSMO_ASSERT(tlv_parse(&dec, &tdef, buf, 2, 0, 0) == OSMO_TLVP_ERR_OFS_BEYOND_BUFFER); + OSMO_ASSERT(TLVP_VAL(&dec, 0x23) == NULL); + OSMO_ASSERT(tlv_parse(&dec, &tdef, buf, 1, 0, 0) == OSMO_TLVP_ERR_OFS_BEYOND_BUFFER); + OSMO_ASSERT(TLVP_VAL(&dec, 0x23) == NULL); +} + int main(int argc, char **argv) { //osmo_init_logging2(ctx, &info); @@ -339,6 +430,7 @@ test_tlv_shift_functions(); test_tlv_repeated_ie(); test_tlv_encoder(); + test_tlv_parser_bounds(); printf("Done.\n"); return EXIT_SUCCESS; diff --git a/tests/tlv/tlv_test.ok b/tests/tlv/tlv_test.ok index f3f0fd4..e24b889 100644 --- a/tests/tlv/tlv_test.ok +++ b/tests/tlv/tlv_test.ok @@ -1,4 +1,11 @@ Test shift functions Testing TLV encoder by decoding + re-encoding binary Testing TLV encoder with IE ordering +Testing TLV_TYPE_T decoder for out-of-bounds +Testing TLV_TYPE_TV decoder for out-of-bounds +Testing TLV_TYPE_FIXED decoder for out-of-bounds +Testing TLV_TYPE_TLV decoder for out-of-bounds +Testing TLV_TYPE_vTvLV_GAN decoder for out-of-bounds +Testing TLV_TYPE_TvLV decoder for out-of-bounds +Testing TLV_TYPE_TL16V decoder for out-of-bounds Done. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22113 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I98b02c914c9e3ecf56050af846292aa6979d7508 Gerrit-Change-Number: 22113 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 17:17:55 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 12 Jan 2021 17:17:55 +0000 Subject: Change in libosmocore[master]: tlv_parser: Fix various out-of-bounds accesses In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22113 ) Change subject: tlv_parser: Fix various out-of-bounds accesses ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/22113/1/src/gsm/tlv_parser.c File src/gsm/tlv_parser.c: https://gerrit.osmocom.org/c/libosmocore/+/22113/1/src/gsm/tlv_parser.c at 257 PS1, Line 257: if (buf_len < 1) : return OSMO_TLVP_ERR_OFS_BEYOND_BUFFER; actually, we can move this right to the top. If we odn't have a single byte, there's nothing we can do in either case. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22113 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I98b02c914c9e3ecf56050af846292aa6979d7508 Gerrit-Change-Number: 22113 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Tue, 12 Jan 2021 17:17:55 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 17:19:50 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 12 Jan 2021 17:19:50 +0000 Subject: Change in libosmocore[master]: tlv_parser: Fix various out-of-bounds accesses In-Reply-To: References: Message-ID: Hello fixeria, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22113 to look at the new patch set (#2). Change subject: tlv_parser: Fix various out-of-bounds accesses ...................................................................... tlv_parser: Fix various out-of-bounds accesses The libosmocore TLV parser had a number of insufficient bounds checks leading to reads beyond the end of the respective input buffer. This patch * adds proper out-of-bounds checks to all TLV types * simplifies some of the existing checks * introduces test cases to test all the corner cases where either TAG, or length, or value are not fully contained in the input buffer. Thanks to Ilja Van Sprundel for reporting these problems. Change-Id: I98b02c914c9e3ecf56050af846292aa6979d7508 --- M src/gsm/tlv_parser.c M tests/tlv/tlv_test.c M tests/tlv/tlv_test.ok 3 files changed, 113 insertions(+), 15 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/13/22113/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22113 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I98b02c914c9e3ecf56050af846292aa6979d7508 Gerrit-Change-Number: 22113 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 17:21:21 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 12 Jan 2021 17:21:21 +0000 Subject: Change in ...osmo-python-tests[master]: README: Drop python2 references In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/python/osmo-python-tests/+/22112 ) Change subject: README: Drop python2 references ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/python/osmo-python-tests/+/22112 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: python/osmo-python-tests Gerrit-Branch: master Gerrit-Change-Id: Iffe403377afe9534dbd61d65bfd52e479e125e68 Gerrit-Change-Number: 22112 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 12 Jan 2021 17:21:21 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 17:21:38 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 12 Jan 2021 17:21:38 +0000 Subject: Change in osmo-ci[master]: jobs: add missing OSMO_GSM_MANUALS_DIR In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22111 ) Change subject: jobs: add missing OSMO_GSM_MANUALS_DIR ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22111 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I65102655b4b3e907a0b0de8026f8f9af76281f90 Gerrit-Change-Number: 22111 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 12 Jan 2021 17:21:38 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 17:21:40 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 12 Jan 2021 17:21:40 +0000 Subject: Change in osmo-ci[master]: jobs: add missing OSMO_GSM_MANUALS_DIR In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22111 ) Change subject: jobs: add missing OSMO_GSM_MANUALS_DIR ...................................................................... jobs: add missing OSMO_GSM_MANUALS_DIR Add the variable to projects that don't use docker at all or overwrite docker_run instead of using the global variable that has OSMO_GSM_MANUALS_DIR defined. Related: OS#4912 Change-Id: I65102655b4b3e907a0b0de8026f8f9af76281f90 --- M jobs/gerrit-verifications.yml M jobs/master-builds.yml 2 files changed, 21 insertions(+), 4 deletions(-) Approvals: osmith: Verified pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/jobs/gerrit-verifications.yml b/jobs/gerrit-verifications.yml index d2e37cf..fbefbdb 100644 --- a/jobs/gerrit-verifications.yml +++ b/jobs/gerrit-verifications.yml @@ -111,7 +111,10 @@ (FIRMWARE_VERSION == "oc2g" && BTS_MODEL == "oc2g" && WITH_MANUALS == "0" && label == "osmocom-master-debian9") || (FIRMWARE_VERSION == "oc2g-next" && BTS_MODEL == "oc2g" && WITH_MANUALS == "0" && label == "osmocom-master-debian9") concurrent: false - cmd: 'ASCIIDOC_WARNINGS_CHECK="1" {timeout_cmd} ./contrib/jenkins_bts_model.sh "$BTS_MODEL"' + cmd: | + export ASCIIDOC_WARNINGS_CHECK="1" + export OSMO_GSM_MANUALS_DIR="$PWD/deps/osmo-gsm-manuals" + {timeout_cmd} ./contrib/jenkins_bts_model.sh "$BTS_MODEL" - osmo_dia2gsup: repos_url: '{gerrit_url}/erlang/{repos}' @@ -130,6 +133,7 @@ -e JOB_NAME="$JOB_NAME" \ -e MAKE=make \ -e OSMOPY_DEBUG_TCP_SOCKETS="1" \ + -e OSMO_GSM_MANUALS_DIR="/build/deps/osmo-gsm-manuals" \ -e PARALLEL_MAKE="$PARALLEL_MAKE" \ -e WITH_MANUALS="1" \ -w /build -i -u build \ @@ -241,7 +245,10 @@ (INSTR == "--with-sse" && WITH_MANUALS == "0" && label == "osmocom-master-debian9") || (INSTR == "--with-neon" && WITH_MANUALS == "0" && label == "rpi4-deb9build-ansible") || (INSTR == "--with-neon-vfpv4" && WITH_MANUALS == "0" && label == "rpi4-deb9build-ansible") - cmd: 'ASCIIDOC_WARNINGS_CHECK=1 {timeout_cmd} ./contrib/jenkins.sh' + cmd: | + export ASCIIDOC_WARNINGS_CHECK=1 + export OSMO_GSM_MANUALS_DIR="$PWD/deps/osmo-gsm-manuals" + {timeout_cmd} ./contrib/jenkins.sh - osmocom-bb - osmo-tetra diff --git a/jobs/master-builds.yml b/jobs/master-builds.yml index 3c3daf8..c648a7b 100644 --- a/jobs/master-builds.yml +++ b/jobs/master-builds.yml @@ -195,7 +195,11 @@ (FIRMWARE_VERSION == "origin/nrw/litecell15" && BTS_MODEL == "lc15" && WITH_MANUALS == "0" && label == "osmocom-master-debian9") || (FIRMWARE_VERSION == "origin/nrw/oc2g" && BTS_MODEL == "oc2g" && WITH_MANUALS == "0" && label == "osmocom-master-debian9") concurrent: false - cmd: 'PUBLISH=1 ASCIIDOC_WARNINGS_CHECK=1 ./contrib/jenkins_bts_model.sh "$BTS_MODEL"' + cmd: | + export ASCIIDOC_WARNINGS_CHECK=1 + export OSMO_GSM_MANUALS_DIR="$PWD/deps/osmo-gsm-manuals" + export PUBLISH=1 + ./contrib/jenkins_bts_model.sh "$BTS_MODEL" - osmo-e1-hardware: docker_run: | @@ -209,6 +213,7 @@ -e JOB_NAME="$JOB_NAME" \ -e MAKE=make \ -e OSMOPY_DEBUG_TCP_SOCKETS="1" \ + -e OSMO_GSM_MANUALS_DIR="/build/deps/osmo-gsm-manuals" \ -e PARALLEL_MAKE="$PARALLEL_MAKE" \ -e PUBLISH="1" \ -e WITH_MANUALS="1" \ @@ -231,6 +236,7 @@ -e JOB_NAME="$JOB_NAME" \ -e MAKE=make \ -e OSMOPY_DEBUG_TCP_SOCKETS="1" \ + -e OSMO_GSM_MANUALS_DIR="/build/deps/osmo-gsm-manuals" \ -e PARALLEL_MAKE="$PARALLEL_MAKE" \ -e PUBLISH="1" \ -e WITH_MANUALS="1" \ @@ -353,7 +359,11 @@ (INSTR == "--with-sse" && WITH_MANUALS == "0" && label == "osmocom-master-debian9") || (INSTR == "--with-neon" && WITH_MANUALS == "0" && label == "rpi4-deb9build-ansible") || (INSTR == "--with-neon-vfpv4" && WITH_MANUALS == "0" && label == "rpi4-deb9build-ansible") - cmd: 'PUBLISH=1 ASCIIDOC_WARNINGS_CHECK=1 ./contrib/jenkins.sh' + cmd: | + export ASCIIDOC_WARNINGS_CHECK=1 + export OSMO_GSM_MANUALS_DIR="$PWD/deps/osmo-gsm-manuals" + export PUBLISH=1 + ./contrib/jenkins.sh - osmocom-bb - osmo-sysmon -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22111 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I65102655b4b3e907a0b0de8026f8f9af76281f90 Gerrit-Change-Number: 22111 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 17:23:08 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 12 Jan 2021 17:23:08 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: add utilities to send and parse BSSGP rim PDUs In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22046 ) Change subject: gprs_bssgp: add utilities to send and parse BSSGP rim PDUs ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22046 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I18134fd9938040d2facb6beee3732628b167ce8c Gerrit-Change-Number: 22046 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 12 Jan 2021 17:23:08 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 17:23:20 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 12 Jan 2021 17:23:20 +0000 Subject: Change in libosmocore[master]: tlv_parser: Fix various out-of-bounds accesses In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22113 ) Change subject: tlv_parser: Fix various out-of-bounds accesses ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/22113/1/src/gsm/tlv_parser.c File src/gsm/tlv_parser.c: https://gerrit.osmocom.org/c/libosmocore/+/22113/1/src/gsm/tlv_parser.c at 259 PS1, Line 259: *o_val = buf+1; in here you are actually assigning a pointer to buf[1] with buf_len = 1, which doesn't look good to me. Shouldn't this be "if (buf_len < 2)" ? Same with all below. I understand that's probably caught by the last check in the function at the end, but still coverity or/and ASan may don't like this (assigning a pointer to an address which may be out of allocated memory, hence to uninitialized memory). -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22113 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I98b02c914c9e3ecf56050af846292aa6979d7508 Gerrit-Change-Number: 22113 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 12 Jan 2021 17:23:20 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 17:23:36 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 12 Jan 2021 17:23:36 +0000 Subject: Change in ...osmo-python-tests[master]: README: Drop python2 references In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/python/osmo-python-tests/+/22112 ) Change subject: README: Drop python2 references ...................................................................... README: Drop python2 references Python2 support was dropped recently, remove references informing how to install python2 modules (operation would fail). Change-Id: Iffe403377afe9534dbd61d65bfd52e479e125e68 --- M README 1 file changed, 0 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/README b/README index dbb8d88..f325ae6 100644 --- a/README +++ b/README @@ -1,6 +1,5 @@ Building/installation: - sudo python setup.py install sudo python3 setup.py install If you prefer to have it cleanly removable, install checkinstall and run @@ -9,7 +8,6 @@ Alternatively, just run - pip install --user -e ./ pip3 install --user -e ./ depending on your python version. -- To view, visit https://gerrit.osmocom.org/c/python/osmo-python-tests/+/22112 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: python/osmo-python-tests Gerrit-Branch: master Gerrit-Change-Id: Iffe403377afe9534dbd61d65bfd52e479e125e68 Gerrit-Change-Number: 22112 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 17:45:00 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 12 Jan 2021 17:45:00 +0000 Subject: Change in osmo-bsc[master]: Introduce Neighbor Resolution Service In-Reply-To: References: Message-ID: Hello Jenkins Builder, fixeria, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bsc/+/21848 to look at the new patch set (#8). Change subject: Introduce Neighbor Resolution Service ...................................................................... Introduce Neighbor Resolution Service This new CTRL interface allows users of this BSC (such as attached PCU) to gather neighbor information. This interface is needed for PCU to translate ARFCN+BSIC keys provided by MS in the Um side into CGI + RAC keys used to identify target cells in RIM procedures against SGSNs on the Gb interface. This patch extends the already existing neighbor information storage in the VTY by allowing storage of CGI + RAC (RAC couldn't be stored beforehand). Related: SYS#4909 Depends: libosmocore.git Change-Id If48f412c32e8e5a3e604a78d12b74787a4786374 Change-Id: Ib07c9d23026332a207d4b7a0f7b4e76c0094e379 --- M include/osmocom/bsc/gsm_data.h M include/osmocom/bsc/neighbor_ident.h M src/osmo-bsc/bsc_vty.c M src/osmo-bsc/bts.c M src/osmo-bsc/neighbor_ident.c M src/osmo-bsc/neighbor_ident_vty.c M src/osmo-bsc/osmo_bsc_main.c M tests/Makefile.am M tests/bsc/Makefile.am A tests/ctrl/osmo-bsc-neigh-test.cfg M tests/ctrl_test_runner.py M tests/gsm0408/Makefile.am M tests/neighbor_ident.vty 13 files changed, 367 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/48/21848/8 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21848 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ib07c9d23026332a207d4b7a0f7b4e76c0094e379 Gerrit-Change-Number: 21848 Gerrit-PatchSet: 8 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-CC: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 17:58:13 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 12 Jan 2021 17:58:13 +0000 Subject: Change in osmo-pcu[master]: ms: Replace struct var with rate_ctr In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22102 ) Change subject: ms: Replace struct var with rate_ctr ...................................................................... Patch Set 2: Code-Review+2 (1 comment) Not gonna block, 'static' may be added in a separate patch. https://gerrit.osmocom.org/c/osmo-pcu/+/22102/2/src/gprs_ms.c File src/gprs_ms.c: https://gerrit.osmocom.org/c/osmo-pcu/+/22102/2/src/gprs_ms.c at 50 PS2, Line 50: const struct rate_ctr_group_desc ms_ctrg_desc = { static -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22102 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I744507fde4291955c1dbbb9739b18a12a80145b1 Gerrit-Change-Number: 22102 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 12 Jan 2021 17:58:13 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 18:01:36 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 12 Jan 2021 18:01:36 +0000 Subject: Change in osmo-pcu[master]: ms: Replace struct var with rate_ctr In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22102 ) Change subject: ms: Replace struct var with rate_ctr ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22102 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I744507fde4291955c1dbbb9739b18a12a80145b1 Gerrit-Change-Number: 22102 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 12 Jan 2021 18:01:36 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 18:01:53 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 12 Jan 2021 18:01:53 +0000 Subject: Change in osmo-pcu[master]: ms: Replace struct var with rate_ctr In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22102 ) Change subject: ms: Replace struct var with rate_ctr ...................................................................... ms: Replace struct var with rate_ctr Let's use usual osmocom rate_ctr instead of having one variable + setter/getter functions, so we can easily add new counters and also because it makes code more clear (no need to look at what the "update" function is doing). Using rate counter also provides info about how recently the MS has been interacting with the network. Related: OS#4907 Change-Id: I744507fde4291955c1dbbb9739b18a12a80145b1 --- M src/gprs_ms.c M src/gprs_ms.h M src/gprs_rlcmac_sched.cpp M src/pcu_vty_functions.cpp 4 files changed, 33 insertions(+), 15 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve fixeria: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/gprs_ms.c b/src/gprs_ms.c index 94f69cd..d57e9b6 100644 --- a/src/gprs_ms.c +++ b/src/gprs_ms.c @@ -35,11 +35,25 @@ #include #include #include +#include #include "coding_scheme.h" #define GPRS_CODEL_SLOW_INTERVAL_MS 4000 extern void *tall_pcu_ctx; +static unsigned int next_ms_ctr_group_id; + +static const struct rate_ctr_desc ms_ctr_description[] = { + [MS_CTR_DL_CTRL_MSG_SCHED] = { "ms:dl_ctrl_msg_sched", "Amount of DL CTRL messages scheduled" }, +}; + +const struct rate_ctr_group_desc ms_ctrg_desc = { + .group_name_prefix = "pcu:ms", + .group_description = "MS Statistics", + .class_id = OSMO_STATS_CLASS_SUBSCRIBER, + .num_ctr = ARRAY_SIZE(ms_ctr_description), + .ctr_desc = ms_ctr_description, +}; static int64_t now_msec() { @@ -118,7 +132,15 @@ } ms->last_cs_not_low = now_msec(); ms->app_info_pending = false; + + ms->ctrs = rate_ctr_group_alloc(ms, &ms_ctrg_desc, next_ms_ctr_group_id++); + if (!ms->ctrs) + goto free_ret; + return ms; +free_ret: + talloc_free(ms); + return NULL; } static int ms_talloc_destructor(struct GprsMs *ms) @@ -148,6 +170,9 @@ } llc_queue_clear(&ms->llc_queue, ms->bts); + + if (ms->ctrs) + rate_ctr_group_free(ms->ctrs); return 0; } diff --git a/src/gprs_ms.h b/src/gprs_ms.h index ade3f3b..6391f72 100644 --- a/src/gprs_ms.h +++ b/src/gprs_ms.h @@ -34,6 +34,7 @@ #include #include +#include #include #include @@ -44,6 +45,10 @@ #include #include +enum ms_counter_id { + MS_CTR_DL_CTRL_MSG_SCHED, +}; + struct BTS; struct gprs_rlcmac_trx; struct GprsMs; @@ -94,7 +99,7 @@ struct gprs_codel *codel_state; enum mcs_kind mode; - unsigned dl_ctrl_msg; + struct rate_ctr_group *ctrs; }; struct GprsMs *ms_alloc(struct BTS *bts, uint32_t tlli); @@ -215,16 +220,6 @@ return ms->nack_rate_dl; } -static inline unsigned ms_dl_ctrl_msg(const struct GprsMs *ms) -{ - return ms->dl_ctrl_msg; -} - -static inline void ms_update_dl_ctrl_msg(struct GprsMs *ms) -{ - ms->dl_ctrl_msg++; -} - static inline uint8_t ms_reserved_dl_slots(const struct GprsMs *ms) { return ms->reserved_dl_slots; diff --git a/src/gprs_rlcmac_sched.cpp b/src/gprs_rlcmac_sched.cpp index d7958c4..924a4de 100644 --- a/src/gprs_rlcmac_sched.cpp +++ b/src/gprs_rlcmac_sched.cpp @@ -233,8 +233,7 @@ LOGP(DRLCMACSCHED, LOGL_DEBUG, "Scheduling control " "message at RTS for %s (TRX=%d, TS=%d)\n", tbf_name(tbf), trx, ts); - /* Updates the dl ctrl msg counter for ms */ - ms_update_dl_ctrl_msg(tbf->ms()); + rate_ctr_inc(&tbf->ms()->ctrs->ctr[MS_CTR_DL_CTRL_MSG_SCHED]); return msg; } diff --git a/src/pcu_vty_functions.cpp b/src/pcu_vty_functions.cpp index 6100b13..92be77b 100644 --- a/src/pcu_vty_functions.cpp +++ b/src/pcu_vty_functions.cpp @@ -175,8 +175,6 @@ vty_out(vty, " MS I level (slot %d): %d dB%s", i, ms->l1_meas.ts[i].ms_i_level, VTY_NEWLINE); } - vty_out(vty, " RLC/MAC DL Control Msg: %d%s", ms_dl_ctrl_msg(ms), - VTY_NEWLINE); if (ms_ul_tbf(ms)) vty_out(vty, " Uplink TBF: TFI=%d, state=%s%s", ms_ul_tbf(ms)->tfi(), @@ -201,6 +199,7 @@ tbf->state_name(), VTY_NEWLINE); } + vty_out_rate_ctr_group(vty, " ", ms->ctrs); return CMD_SUCCESS; } -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22102 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I744507fde4291955c1dbbb9739b18a12a80145b1 Gerrit-Change-Number: 22102 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 18:01:54 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 12 Jan 2021 18:01:54 +0000 Subject: Change in osmo-pcu[master]: AllocTest: Avoid queuing tons of to-be-freed ms In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22106 ) Change subject: AllocTest: Avoid queuing tons of to-be-freed ms ...................................................................... AllocTest: Avoid queuing tons of to-be-freed ms When both TBFs (Dl, Ul), are detached, ms_detach_tbf() will call ms_start_timer() which will hold a reference of the MS (ms_ref()) and wait for X seconds (VTY config, T=-2030, 60 seconds by default) before unrefing the MS, which will trigger ms_update_status() finally (ref==0) and will in turn call cb.ms_idle(), which will tell the ms_storage to free the MS. This mechanism is used to keep MS objects around for a certain time so that when new TBFs are established, we have cached interesting information about the MS, ready to use. However, in AllocTest, tons of MS are allocated in a loop calling a function (such as test_alloc_b_ul_dl()). In that function, a BTS is allocated in the stack and at the end of the function BTS::cleanup() is called due to implicit destructor, which ends up calling ms_storage::cleanup() which removes all MS from its list and frees them *if they are not idle*. The problem here, is that due to T=-2030, an extra reference is hold and hence the ms is not considered idle (ms_is_idle() checks ms->ref==0). As a result, the MS is never freed, because we don't use libosmocore mainloop here (and in any case, it would take 60 seconds to free it). By setting the timeout of T=-2030 to 0, ms_start_timer will avoid using the timer and will also avoid holding the extra reference, hence allowing ms_storage to free the object during cleanup(). This fix really helps in improving performance for AllocTest specially after MS object contains a rate_ctr. As tons of MS objects were left alive, they stood in the rate_ctr single per-process queue, making the test last crazy amount of time and spending 50% of the time or more iterating the list full of MS related rate counters. Change-Id: I6b6ebe8903e4fe76da5e09b02b6ef28542007b6c --- M tests/alloc/AllocTest.cpp 1 file changed, 6 insertions(+), 0 deletions(-) Approvals: fixeria: Looks good to me, approved Hoernchen: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/tests/alloc/AllocTest.cpp b/tests/alloc/AllocTest.cpp index 17cee46..85c3527 100644 --- a/tests/alloc/AllocTest.cpp +++ b/tests/alloc/AllocTest.cpp @@ -219,6 +219,8 @@ enable_ts_on_bts(bts, ts0, ts1, ts2, ts3, ts4, ts5, ts6, ts7); ms = the_bts.ms_alloc(ms_class, 0); + /* Avoid delaying free to avoid tons of to-be-freed ms objects queuing */ + ms_set_timeout(ms, 0); ul_tbf = tbf_alloc_ul_tbf(bts, ms, -1, true); if (!ul_tbf) return false; @@ -262,6 +264,8 @@ enable_ts_on_bts(bts, ts0, ts1, ts2, ts3, ts4, ts5, ts6, ts7); ms = the_bts.ms_alloc(ms_class, 0); + /* Avoid delaying free to avoid tons of to-be-freed ms objects queuing */ + ms_set_timeout(ms, 0); dl_tbf = tbf_alloc_dl_tbf(bts, ms, -1, true); if (!dl_tbf) return false; @@ -314,6 +318,8 @@ tfi = the_bts.tfi_find_free(GPRS_RLCMAC_UL_TBF, &trx_no, -1); OSMO_ASSERT(tfi >= 0); ms = the_bts.ms_alloc(ms_class, 0); + /* Avoid delaying free to avoid tons of to-be-freed ms objects queuing */ + ms_set_timeout(ms, 0); ul_tbf = tbf_alloc_ul_tbf(bts, ms, -1, false); if (!ul_tbf) return false; -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22106 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I6b6ebe8903e4fe76da5e09b02b6ef28542007b6c Gerrit-Change-Number: 22106 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 18:02:16 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 12 Jan 2021 18:02:16 +0000 Subject: Change in osmo-ci[master]: scripts: repo-install-test: fix missing version of centos8 example In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22052 ) Change subject: scripts: repo-install-test: fix missing version of centos8 example ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22052 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I5eee27a9ba1cca43e056ef0ac4ae4bbb4cd827d7 Gerrit-Change-Number: 22052 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 12 Jan 2021 18:02:16 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 18:02:19 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 12 Jan 2021 18:02:19 +0000 Subject: Change in osmo-ci[master]: scripts: repo-install-test: fix missing version of centos8 example In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22052 ) Change subject: scripts: repo-install-test: fix missing version of centos8 example ...................................................................... scripts: repo-install-test: fix missing version of centos8 example Change-Id: I5eee27a9ba1cca43e056ef0ac4ae4bbb4cd827d7 --- M scripts/repo-install-test.sh 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved; Verified pespin: Looks good to me, but someone else must approve diff --git a/scripts/repo-install-test.sh b/scripts/repo-install-test.sh index ac8242d..0c08e15 100755 --- a/scripts/repo-install-test.sh +++ b/scripts/repo-install-test.sh @@ -8,7 +8,7 @@ # Show usage if [ "$#" -ne 1 ]; then echo "usage: repo-install-test.sh DISTRO" - echo "DISTRO: debian or centos" + echo "DISTRO: debian or centos8" exit 1 fi -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22052 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I5eee27a9ba1cca43e056ef0ac4ae4bbb4cd827d7 Gerrit-Change-Number: 22052 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 18:02:36 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 12 Jan 2021 18:02:36 +0000 Subject: Change in osmo-bsc[master]: stats: Add granularity to SDCCH/TCH/LU activity. In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22103 ) Change subject: stats: Add granularity to SDCCH/TCH/LU activity. ...................................................................... Patch Set 6: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22103 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I4df275e4770c5ff3643c79ba828e736986f8bb47 Gerrit-Change-Number: 22103 Gerrit-PatchSet: 6 Gerrit-Owner: iedemam Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 12 Jan 2021 18:02:36 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 18:02:55 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 12 Jan 2021 18:02:55 +0000 Subject: Change in docker-playground[master]: ttcn3-gbproxy-test-fr: fix SNS ip address In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22108 ) Change subject: ttcn3-gbproxy-test-fr: fix SNS ip address ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22108 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Iba5aee47fb237884d4b0238b9cef4e2370e7ce09 Gerrit-Change-Number: 22108 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 12 Jan 2021 18:02:55 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 18:03:04 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 12 Jan 2021 18:03:04 +0000 Subject: Change in docker-playground[master]: make osmo-gbproxy.cfg in ttcn3-gbproxy and ttcn3-gbproxy-fr to look s... In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22109 ) Change subject: make osmo-gbproxy.cfg in ttcn3-gbproxy and ttcn3-gbproxy-fr to look similiar ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22109 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I807589cc04f23d483695467320d34d79eaf5d290 Gerrit-Change-Number: 22109 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 12 Jan 2021 18:03:04 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 18:03:06 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 12 Jan 2021 18:03:06 +0000 Subject: Change in docker-playground[master]: ttcn3-gbproxy-test-fr: fix SNS ip address In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22108 ) Change subject: ttcn3-gbproxy-test-fr: fix SNS ip address ...................................................................... ttcn3-gbproxy-test-fr: fix SNS ip address Change-Id: Iba5aee47fb237884d4b0238b9cef4e2370e7ce09 --- M ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: daniel: Looks good to me, approved laforge: Verified diff --git a/ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg b/ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg index 35180aa..5d415a2 100644 --- a/ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg +++ b/ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg @@ -46,7 +46,7 @@ timer tns-alive 3 timer tns-alive-retries 10 nse 101 - ip-sns 172.18.24.103 23000 + ip-sns 172.18.25.103 23000 nse 2001 nsvc fr hdlcnet1 dlci 16 nsvci 1 nsvc fr hdlcnet2 dlci 17 nsvci 2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22108 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Iba5aee47fb237884d4b0238b9cef4e2370e7ce09 Gerrit-Change-Number: 22108 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 18:03:08 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 12 Jan 2021 18:03:08 +0000 Subject: Change in docker-playground[master]: make osmo-gbproxy.cfg in ttcn3-gbproxy and ttcn3-gbproxy-fr to look s... In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22109 ) Change subject: make osmo-gbproxy.cfg in ttcn3-gbproxy and ttcn3-gbproxy-fr to look similiar ...................................................................... make osmo-gbproxy.cfg in ttcn3-gbproxy and ttcn3-gbproxy-fr to look similiar Reduces human error when changing the configruation for both cases. Change-Id: I807589cc04f23d483695467320d34d79eaf5d290 --- M ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg 1 file changed, 12 insertions(+), 12 deletions(-) Approvals: daniel: Looks good to me, approved laforge: Verified diff --git a/ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg b/ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg index 5d415a2..3b5bf96 100644 --- a/ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg +++ b/ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg @@ -19,9 +19,14 @@ no login bind 0.0.0.0 ! +gbproxy +sgsn nsei 101 + name main ns bind udp local listen 172.18.25.10 23000 + nse 101 + ip-sns 172.18.25.103 23000 bind fr hdlcnet1 fr hdlcnet1 frnet bind fr hdlcnet2 @@ -38,15 +43,6 @@ fr hdlcnet7 frnet bind fr hdlcnet8 fr hdlcnet8 frnet - timer tns-block 3 - timer tns-block-retries 3 - timer tns-reset 3 - timer tns-reset-retries 3 - timer tns-test 30 - timer tns-alive 3 - timer tns-alive-retries 10 - nse 101 - ip-sns 172.18.25.103 23000 nse 2001 nsvc fr hdlcnet1 dlci 16 nsvci 1 nsvc fr hdlcnet2 dlci 17 nsvci 2 @@ -58,6 +54,10 @@ nse 2003 nsvc fr hdlcnet7 dlci 22 nsvci 7 nsvc fr hdlcnet8 dlci 23 nsvci 8 -gbproxy -sgsn nsei 101 - name main + timer tns-block 3 + timer tns-block-retries 3 + timer tns-reset 3 + timer tns-reset-retries 3 + timer tns-test 30 + timer tns-alive 3 + timer tns-alive-retries 10 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22109 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I807589cc04f23d483695467320d34d79eaf5d290 Gerrit-Change-Number: 22109 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 18:06:21 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 12 Jan 2021 18:06:21 +0000 Subject: Change in libosmocore[master]: tlv_parser: Fix various out-of-bounds accesses In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22113 ) Change subject: tlv_parser: Fix various out-of-bounds accesses ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/22113/1/src/gsm/tlv_parser.c File src/gsm/tlv_parser.c: https://gerrit.osmocom.org/c/libosmocore/+/22113/1/src/gsm/tlv_parser.c at 259 PS1, Line 259: *o_val = buf+1; > in here you are actually assigning a pointer to buf[1] with buf_len = 1, which doesn't look good to [?] yes, it's caught by the check a the bottom of the function. I would generally prefer for the function to be shorter and readable, rathe than replicating the same check 6 times over and over again just to avoid a hypothetical future asan failure. They only thing that I'd improve is to set *o_val (and if applicable *o_len) to NULL in the common error path at the bottom. This way a caller, even if he ignores the return value, will not get pointers to invalid memory but will fail "properly" by NULL dereference. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22113 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I98b02c914c9e3ecf56050af846292aa6979d7508 Gerrit-Change-Number: 22113 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 12 Jan 2021 18:06:21 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 18:14:27 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 12 Jan 2021 18:14:27 +0000 Subject: Change in libosmocore[master]: tlv_parser: Fix various out-of-bounds accesses In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22113 ) Change subject: tlv_parser: Fix various out-of-bounds accesses ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22113 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I98b02c914c9e3ecf56050af846292aa6979d7508 Gerrit-Change-Number: 22113 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 12 Jan 2021 18:14:27 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 19:14:42 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 12 Jan 2021 19:14:42 +0000 Subject: Change in osmo-pcu[master]: gprs_rlc_ts_alloc: ensure no rolling slots are allocated References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22114 ) Change subject: gprs_rlc_ts_alloc: ensure no rolling slots are allocated ...................................................................... gprs_rlc_ts_alloc: ensure no rolling slots are allocated When allocating multiple slots for a UE the following example is not allowed 'UU----UU' for a UE class 12. The time slot number can not roll over 7 and move to 0. 44.060 or 45.002 only specifies contigous however it was unclear it this is an allowed pattern. Only the example 45.002 B.3 in release 12 cleared this up. It gives an example for a multi slot class 5 UE which has 6 possible configuration this means the rolled over is not allowed. Multislot class type 2 UE doesn't have this limitation. Further if a UE supports 8 time slots this is not a limitation. Change-Id: I16019bdbe741b37b83b62749b840a3b7f4ddc6c7 --- M src/gprs_rlcmac_ts_alloc.cpp M tests/alloc/AllocTest.err M tests/alloc/MslotTest.ok 3 files changed, 19,372 insertions(+), 19,361 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/14/22114/1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22114 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I16019bdbe741b37b83b62749b840a3b7f4ddc6c7 Gerrit-Change-Number: 22114 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 19:18:43 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 12 Jan 2021 19:18:43 +0000 Subject: Change in osmo-pcu[master]: gprs_rlc_ts_alloc: ensure no rolling slots are allocated In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22114 ) Change subject: gprs_rlc_ts_alloc: ensure no rolling slots are allocated ...................................................................... Patch Set 1: Code-Review-1 the AllocTest output need to be verified! -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22114 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I16019bdbe741b37b83b62749b840a3b7f4ddc6c7 Gerrit-Change-Number: 22114 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: lynxis lazus Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Tue, 12 Jan 2021 19:18:43 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 19:20:14 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 12 Jan 2021 19:20:14 +0000 Subject: Change in osmo-pcu[master]: gprs_rlc_ts_alloc: ensure no rolling slots are allocated In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22114 ) Change subject: gprs_rlc_ts_alloc: ensure no rolling slots are allocated ...................................................................... Patch Set 1: MsSlotTest.ok looks good. -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22114 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I16019bdbe741b37b83b62749b840a3b7f4ddc6c7 Gerrit-Change-Number: 22114 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: lynxis lazus Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Tue, 12 Jan 2021 19:20:14 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 19:31:59 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 12 Jan 2021 19:31:59 +0000 Subject: Change in osmo-pcu[master]: gprs_rlc_ts_alloc: ensure no rolling slots are allocated In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22114 ) Change subject: gprs_rlc_ts_alloc: ensure no rolling slots are allocated ...................................................................... Patch Set 1: -Code-Review -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22114 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I16019bdbe741b37b83b62749b840a3b7f4ddc6c7 Gerrit-Change-Number: 22114 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 12 Jan 2021 19:31:59 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 19:58:03 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 12 Jan 2021 19:58:03 +0000 Subject: Change in osmo-pcu[master]: gprs_ms: Mark ms_ctrg_desc static References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22115 ) Change subject: gprs_ms: Mark ms_ctrg_desc static ...................................................................... gprs_ms: Mark ms_ctrg_desc static Change-Id: I3b1f0d0ee932a97414375a679962356c9178c2eb --- M src/gprs_ms.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/15/22115/1 diff --git a/src/gprs_ms.c b/src/gprs_ms.c index d57e9b6..6fbb06a 100644 --- a/src/gprs_ms.c +++ b/src/gprs_ms.c @@ -47,7 +47,7 @@ [MS_CTR_DL_CTRL_MSG_SCHED] = { "ms:dl_ctrl_msg_sched", "Amount of DL CTRL messages scheduled" }, }; -const struct rate_ctr_group_desc ms_ctrg_desc = { +static const struct rate_ctr_group_desc ms_ctrg_desc = { .group_name_prefix = "pcu:ms", .group_description = "MS Statistics", .class_id = OSMO_STATS_CLASS_SUBSCRIBER, -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22115 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I3b1f0d0ee932a97414375a679962356c9178c2eb Gerrit-Change-Number: 22115 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 20:00:25 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 12 Jan 2021 20:00:25 +0000 Subject: Change in libosmocore[master]: tlv_parser: Fix various out-of-bounds accesses In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22113 ) Change subject: tlv_parser: Fix various out-of-bounds accesses ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22113 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I98b02c914c9e3ecf56050af846292aa6979d7508 Gerrit-Change-Number: 22113 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 12 Jan 2021 20:00:25 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 20:11:25 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 12 Jan 2021 20:11:25 +0000 Subject: Change in libosmocore[master]: tlv_parser: Fix various out-of-bounds accesses In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, fixeria, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22113 to look at the new patch set (#3). Change subject: tlv_parser: Fix various out-of-bounds accesses ...................................................................... tlv_parser: Fix various out-of-bounds accesses The libosmocore TLV parser had a number of insufficient bounds checks leading to reads beyond the end of the respective input buffer. This patch * adds proper out-of-bounds checks to all TLV types * simplifies some of the existing checks * introduces test cases to test all the corner cases where either TAG, or length, or value are not fully contained in the input buffer. Thanks to Ilja Van Sprundel for reporting these problems. Change-Id: I98b02c914c9e3ecf56050af846292aa6979d7508 --- M src/gsm/tlv_parser.c M tests/tlv/tlv_test.c M tests/tlv/tlv_test.ok 3 files changed, 115 insertions(+), 15 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/13/22113/3 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22113 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I98b02c914c9e3ecf56050af846292aa6979d7508 Gerrit-Change-Number: 22113 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 20:13:30 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 12 Jan 2021 20:13:30 +0000 Subject: Change in osmo-pcu[master]: gprs_ms: Mark ms_ctrg_desc static In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22115 ) Change subject: gprs_ms: Mark ms_ctrg_desc static ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22115 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I3b1f0d0ee932a97414375a679962356c9178c2eb Gerrit-Change-Number: 22115 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 12 Jan 2021 20:13:30 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 20:13:32 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 12 Jan 2021 20:13:32 +0000 Subject: Change in osmo-pcu[master]: gprs_ms: Mark ms_ctrg_desc static In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22115 ) Change subject: gprs_ms: Mark ms_ctrg_desc static ...................................................................... gprs_ms: Mark ms_ctrg_desc static Change-Id: I3b1f0d0ee932a97414375a679962356c9178c2eb --- M src/gprs_ms.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/gprs_ms.c b/src/gprs_ms.c index d57e9b6..6fbb06a 100644 --- a/src/gprs_ms.c +++ b/src/gprs_ms.c @@ -47,7 +47,7 @@ [MS_CTR_DL_CTRL_MSG_SCHED] = { "ms:dl_ctrl_msg_sched", "Amount of DL CTRL messages scheduled" }, }; -const struct rate_ctr_group_desc ms_ctrg_desc = { +static const struct rate_ctr_group_desc ms_ctrg_desc = { .group_name_prefix = "pcu:ms", .group_description = "MS Statistics", .class_id = OSMO_STATS_CLASS_SUBSCRIBER, -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22115 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I3b1f0d0ee932a97414375a679962356c9178c2eb Gerrit-Change-Number: 22115 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 20:13:42 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 12 Jan 2021 20:13:42 +0000 Subject: Change in osmo-pcu[master]: gprs_rlc_ts_alloc: ensure no rolling slots are allocated In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22114 ) Change subject: gprs_rlc_ts_alloc: ensure no rolling slots are allocated ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22114 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I16019bdbe741b37b83b62749b840a3b7f4ddc6c7 Gerrit-Change-Number: 22114 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 12 Jan 2021 20:13:42 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 20:25:04 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 12 Jan 2021 20:25:04 +0000 Subject: Change in osmo-bts[master]: power_control: BS power shall not be reduced on C0 References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/22116 ) Change subject: power_control: BS power shall not be reduced on C0 ...................................................................... power_control: BS power shall not be reduced on C0 It does not make sense to trigger the BS power control loop on C0, as it's only allowed to reduce power on additional transceivers. Change-Id: I4fdfe097ae6f9edde5f39ed4da8a559a14b3b38f Related: SYS#4918 --- M src/common/l1sap.c 1 file changed, 2 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/16/22116/1 diff --git a/src/common/l1sap.c b/src/common/l1sap.c index 48773f1..50f1569 100644 --- a/src/common/l1sap.c +++ b/src/common/l1sap.c @@ -1552,7 +1552,8 @@ lchan->meas.flags |= LC_UL_M_F_L1_VALID; lchan_ms_pwr_ctrl(lchan, data[0] & 0x1f, data_ind->rssi); - lchan_bs_pwr_ctrl(lchan, (const struct gsm48_hdr *) &data[5]); + if (trx->bts->c0 != trx) /* BS Power Control shall not be used on C0 */ + lchan_bs_pwr_ctrl(lchan, (const struct gsm48_hdr *) &data[5]); } else le = &lchan->lapdm_ch.lapdm_dcch; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22116 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I4fdfe097ae6f9edde5f39ed4da8a559a14b3b38f Gerrit-Change-Number: 22116 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 20:53:08 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 12 Jan 2021 20:53:08 +0000 Subject: Change in osmo-bts[master]: power_control: print current RxLev and lower/upper thresholds References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/22117 ) Change subject: power_control: print current RxLev and lower/upper thresholds ...................................................................... power_control: print current RxLev and lower/upper thresholds This makes the logging messages easier to read and understand. Change-Id: I5f8c987054b2b01acdb9f525d06ca15bbc577070 Related: SYS#4918 --- M src/common/power_control.c M tests/power/bs_power_loop_test.err 2 files changed, 65 insertions(+), 60 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/17/22117/1 diff --git a/src/common/power_control.c b/src/common/power_control.c index 6620add..97baeb7 100644 --- a/src/common/power_control.c +++ b/src/common/power_control.c @@ -316,19 +316,24 @@ if (new < 0) new = 0; - /* FIXME: this is only needed for logging, print thresholds instead */ - int target_dbm = rxlev2dbm(CALC_TARGET(params->rxlev_meas)); - if (state->current != new) { LOGPLCHAN(lchan, DLOOP, LOGL_INFO, "Changing Downlink attenuation: " - "%u -> %u dB (maximum %u dB, target %d dBm, delta %d dB)\n", - state->current, new, state->max, target_dbm, delta); + "%u -> %u dB (maximum %u dB, delta %d dB, " + "RxLev current %u (%d dBm), thresholds %u .. %u)\n", + state->current, new, state->max, + delta, rxlev, rxlev2dbm(rxlev), + params->rxlev_meas.lower_thresh, + params->rxlev_meas.upper_thresh); state->current = new; return 1; } else { LOGPLCHAN(lchan, DLOOP, LOGL_INFO, "Keeping Downlink attenuation " - "at %u dB (maximum %u dB, target %d dBm, delta %d dB)\n", - state->current, state->max, target_dbm, delta); + "at %u dB (maximum %u dB, delta %d dB, " + "RxLev current %u (%d dBm), thresholds %u .. %u)\n", + state->current, state->max, + delta, rxlev, rxlev2dbm(rxlev), + params->rxlev_meas.lower_thresh, + params->rxlev_meas.upper_thresh); return 0; } } diff --git a/tests/power/bs_power_loop_test.err b/tests/power/bs_power_loop_test.err index e7ba310..db02199 100644 --- a/tests/power/bs_power_loop_test.err +++ b/tests/power/bs_power_loop_test.err @@ -1,69 +1,69 @@ (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, target -80 dBm, delta 0 dB) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, target -80 dBm, delta 0 dB) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, target -80 dBm, delta 0 dB) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, target -80 dBm, delta 0 dB) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 0 -> 2 dB (maximum 20 dB, target -80 dBm, delta -2 dB) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 0 -> 2 dB (maximum 20 dB, delta -2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 2 -> 4 dB (maximum 20 dB, target -80 dBm, delta -2 dB) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 2 -> 4 dB (maximum 20 dB, delta -2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 4 -> 6 dB (maximum 20 dB, target -80 dBm, delta -2 dB) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 4 -> 6 dB (maximum 20 dB, delta -2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 6 -> 8 dB (maximum 20 dB, target -80 dBm, delta -2 dB) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 6 -> 8 dB (maximum 20 dB, delta -2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 8 -> 10 dB (maximum 20 dB, target -80 dBm, delta -2 dB) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 8 -> 10 dB (maximum 20 dB, delta -2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 10 -> 12 dB (maximum 20 dB, target -80 dBm, delta -2 dB) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 10 -> 12 dB (maximum 20 dB, delta -2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 12 -> 14 dB (maximum 20 dB, target -80 dBm, delta -2 dB) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 12 -> 14 dB (maximum 20 dB, delta -2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 14 -> 16 dB (maximum 20 dB, target -80 dBm, delta -2 dB) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 14 -> 16 dB (maximum 20 dB, delta -2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 16 -> 18 dB (maximum 20 dB, target -80 dBm, delta -2 dB) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 16 -> 18 dB (maximum 20 dB, delta -2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 18 -> 20 dB (maximum 20 dB, target -80 dBm, delta -2 dB) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 18 -> 20 dB (maximum 20 dB, delta -2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 20 dB (maximum 20 dB, target -80 dBm, delta -2 dB) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 20 dB (maximum 20 dB, delta -2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 20 dB (maximum 20 dB, target -80 dBm, delta -2 dB) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 20 dB (maximum 20 dB, delta -2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 20 -> 16 dB (maximum 20 dB, target -80 dBm, delta 4 dB) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 20 -> 16 dB (maximum 20 dB, delta 4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 16 -> 12 dB (maximum 20 dB, target -80 dBm, delta 4 dB) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 16 -> 12 dB (maximum 20 dB, delta 4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 12 -> 8 dB (maximum 20 dB, target -80 dBm, delta 4 dB) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 12 -> 8 dB (maximum 20 dB, delta 4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 8 -> 4 dB (maximum 20 dB, target -80 dBm, delta 4 dB) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 8 -> 4 dB (maximum 20 dB, delta 4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 4 -> 0 dB (maximum 20 dB, target -80 dBm, delta 4 dB) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 4 -> 0 dB (maximum 20 dB, delta 4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, target -80 dBm, delta 4 dB) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, delta 4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, target -80 dBm, delta 4 dB) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, delta 4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, target -80 dBm, delta 0 dB) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, target -80 dBm, delta 0 dB) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(00), RXQUAL-FULL(7), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is enabled => using SUB -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, target -80 dBm, delta 0 dB) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(3), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is enabled => using SUB -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, target -80 dBm, delta 0 dB) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(63), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is enabled => using SUB -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, target -80 dBm, delta 0 dB) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, target -80 dBm, delta 0 dB) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, target -80 dBm, delta 0 dB) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(1), RXLEV-SUB(30), RXQUAL-SUB(1), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, target -80 dBm, delta 0 dB) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(2), RXLEV-SUB(30), RXQUAL-SUB(2), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, target -80 dBm, delta 0 dB) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(3), RXLEV-SUB(30), RXQUAL-SUB(3), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, target -80 dBm, delta 0 dB) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(4), RXLEV-SUB(30), RXQUAL-SUB(4), DTx is disabled => using FULL (bts=0,trx=0,ts=0,ss=0) Reducing Downlink attenuation: 16 -> 12 dB due to RxQual 4 worse than L_RXQUAL_XX_P 3 (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(34), RXQUAL-FULL(5), RXLEV-SUB(34), RXQUAL-SUB(5), DTx is disabled => using FULL @@ -74,46 +74,46 @@ (bts=0,trx=0,ts=0,ss=0) Reducing Downlink attenuation: 4 -> 0 dB due to RxQual 7 worse than L_RXQUAL_XX_P 3 (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(46), RXQUAL-FULL(7), RXLEV-SUB(46), RXQUAL-SUB(7), DTx is disabled => using FULL (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(46), RXQUAL-FULL(0), RXLEV-SUB(46), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 0 -> 2 dB (maximum 20 dB, target -80 dBm, delta -2 dB) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 0 -> 2 dB (maximum 20 dB, delta -2 dB, RxLev current 46 (-64 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(44), RXQUAL-FULL(0), RXLEV-SUB(44), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 2 -> 4 dB (maximum 20 dB, target -80 dBm, delta -2 dB) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 2 -> 4 dB (maximum 20 dB, delta -2 dB, RxLev current 44 (-66 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(42), RXQUAL-FULL(0), RXLEV-SUB(42), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 4 -> 6 dB (maximum 20 dB, target -80 dBm, delta -2 dB) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 4 -> 6 dB (maximum 20 dB, delta -2 dB, RxLev current 42 (-68 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(7), RXLEV-SUB(30), RXQUAL-SUB(7), DTx is disabled => using FULL (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(7), RXLEV-SUB(30), RXQUAL-SUB(7), DTx is disabled => using FULL (bts=0,trx=0,ts=0,ss=0) The measurement results are not valid (bts=0,trx=0,ts=0,ss=0) The measurement results are not valid (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, target -80 dBm, delta 0 dB) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, target -80 dBm, delta 0 dB) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, target -80 dBm, delta 0 dB) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(31), RXQUAL-FULL(0), RXLEV-SUB(31), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 12 -> 13 dB (maximum 16 dB, target -80 dBm, delta -1 dB) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 12 -> 13 dB (maximum 16 dB, delta -1 dB, RxLev current 31 (-79 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(28), RXQUAL-FULL(0), RXLEV-SUB(28), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 13 -> 11 dB (maximum 16 dB, target -80 dBm, delta 2 dB) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 13 -> 11 dB (maximum 16 dB, delta 2 dB, RxLev current 28 (-82 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(33), RXQUAL-FULL(0), RXLEV-SUB(33), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 11 -> 13 dB (maximum 16 dB, target -80 dBm, delta -2 dB) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 11 -> 13 dB (maximum 16 dB, delta -2 dB, RxLev current 33 (-77 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(28), RXQUAL-FULL(0), RXLEV-SUB(28), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 13 -> 11 dB (maximum 16 dB, target -80 dBm, delta 2 dB) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 13 -> 11 dB (maximum 16 dB, delta 2 dB, RxLev current 28 (-82 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(31), RXQUAL-FULL(0), RXLEV-SUB(31), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 11 dB (maximum 16 dB, target -80 dBm, delta 0 dB) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 11 dB (maximum 16 dB, delta 0 dB, RxLev current 31 (-79 dBm), thresholds 27 .. 33) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(28), RXQUAL-FULL(0), RXLEV-SUB(28), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 11 dB (maximum 16 dB, target -80 dBm, delta 0 dB) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 11 dB (maximum 16 dB, delta 0 dB, RxLev current 28 (-82 dBm), thresholds 27 .. 33) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(33), RXQUAL-FULL(0), RXLEV-SUB(33), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 11 dB (maximum 16 dB, target -80 dBm, delta 0 dB) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 11 dB (maximum 16 dB, delta 0 dB, RxLev current 33 (-77 dBm), thresholds 27 .. 33) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(28), RXQUAL-FULL(0), RXLEV-SUB(28), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 11 dB (maximum 16 dB, target -80 dBm, delta 0 dB) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 11 dB (maximum 16 dB, delta 0 dB, RxLev current 28 (-82 dBm), thresholds 27 .. 33) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 30 dB, target -80 dBm, delta 0 dB) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 30 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 30 dB, target -80 dBm, delta 0 dB) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 30 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(26), RXQUAL-FULL(0), RXLEV-SUB(26), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 16 -> 14 dB (maximum 30 dB, target -80 dBm, delta 2 dB) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 16 -> 14 dB (maximum 30 dB, delta 2 dB, RxLev current 26 (-84 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(26), RXQUAL-FULL(0), RXLEV-SUB(26), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 14 -> 11 dB (maximum 30 dB, target -80 dBm, delta 3 dB) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 14 -> 11 dB (maximum 30 dB, delta 3 dB, RxLev current 26 (-84 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(35), RXQUAL-FULL(0), RXLEV-SUB(35), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 11 -> 12 dB (maximum 30 dB, target -80 dBm, delta -1 dB) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 11 -> 12 dB (maximum 30 dB, delta -1 dB, RxLev current 35 (-75 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(35), RXQUAL-FULL(0), RXLEV-SUB(35), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 12 -> 14 dB (maximum 30 dB, target -80 dBm, delta -2 dB) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 12 -> 14 dB (maximum 30 dB, delta -2 dB, RxLev current 35 (-75 dBm), thresholds 30 .. 30) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22117 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I5f8c987054b2b01acdb9f525d06ca15bbc577070 Gerrit-Change-Number: 22117 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 20:53:08 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 12 Jan 2021 20:53:08 +0000 Subject: Change in osmo-bts[master]: power_control: fix: properly print 'delta' applied to attenuation References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/22118 ) Change subject: power_control: fix: properly print 'delta' applied to attenuation ...................................................................... power_control: fix: properly print 'delta' applied to attenuation Change-Id: I178df05c1a4cb982279b21d07bd69f75b44928da Related: SYS#4918 --- M src/common/power_control.c M tests/power/bs_power_loop_test.err 2 files changed, 32 insertions(+), 32 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/18/22118/1 diff --git a/src/common/power_control.c b/src/common/power_control.c index 97baeb7..2948861 100644 --- a/src/common/power_control.c +++ b/src/common/power_control.c @@ -321,7 +321,7 @@ "%u -> %u dB (maximum %u dB, delta %d dB, " "RxLev current %u (%d dBm), thresholds %u .. %u)\n", state->current, new, state->max, - delta, rxlev, rxlev2dbm(rxlev), + -delta, rxlev, rxlev2dbm(rxlev), params->rxlev_meas.lower_thresh, params->rxlev_meas.upper_thresh); state->current = new; @@ -331,7 +331,7 @@ "at %u dB (maximum %u dB, delta %d dB, " "RxLev current %u (%d dBm), thresholds %u .. %u)\n", state->current, state->max, - delta, rxlev, rxlev2dbm(rxlev), + -delta, rxlev, rxlev2dbm(rxlev), params->rxlev_meas.lower_thresh, params->rxlev_meas.upper_thresh); return 0; diff --git a/tests/power/bs_power_loop_test.err b/tests/power/bs_power_loop_test.err index db02199..2b1e0a9 100644 --- a/tests/power/bs_power_loop_test.err +++ b/tests/power/bs_power_loop_test.err @@ -7,43 +7,43 @@ (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL (bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 0 -> 2 dB (maximum 20 dB, delta -2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 0 -> 2 dB (maximum 20 dB, delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 2 -> 4 dB (maximum 20 dB, delta -2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 2 -> 4 dB (maximum 20 dB, delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 4 -> 6 dB (maximum 20 dB, delta -2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 4 -> 6 dB (maximum 20 dB, delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 6 -> 8 dB (maximum 20 dB, delta -2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 6 -> 8 dB (maximum 20 dB, delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 8 -> 10 dB (maximum 20 dB, delta -2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 8 -> 10 dB (maximum 20 dB, delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 10 -> 12 dB (maximum 20 dB, delta -2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 10 -> 12 dB (maximum 20 dB, delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 12 -> 14 dB (maximum 20 dB, delta -2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 12 -> 14 dB (maximum 20 dB, delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 14 -> 16 dB (maximum 20 dB, delta -2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 14 -> 16 dB (maximum 20 dB, delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 16 -> 18 dB (maximum 20 dB, delta -2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 16 -> 18 dB (maximum 20 dB, delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 18 -> 20 dB (maximum 20 dB, delta -2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 18 -> 20 dB (maximum 20 dB, delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 20 dB (maximum 20 dB, delta -2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 20 dB (maximum 20 dB, delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 20 dB (maximum 20 dB, delta -2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 20 dB (maximum 20 dB, delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 20 -> 16 dB (maximum 20 dB, delta 4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 20 -> 16 dB (maximum 20 dB, delta -4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 16 -> 12 dB (maximum 20 dB, delta 4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 16 -> 12 dB (maximum 20 dB, delta -4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 12 -> 8 dB (maximum 20 dB, delta 4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 12 -> 8 dB (maximum 20 dB, delta -4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 8 -> 4 dB (maximum 20 dB, delta 4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 8 -> 4 dB (maximum 20 dB, delta -4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 4 -> 0 dB (maximum 20 dB, delta 4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 4 -> 0 dB (maximum 20 dB, delta -4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, delta 4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, delta -4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, delta 4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, delta -4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL (bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL @@ -74,11 +74,11 @@ (bts=0,trx=0,ts=0,ss=0) Reducing Downlink attenuation: 4 -> 0 dB due to RxQual 7 worse than L_RXQUAL_XX_P 3 (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(46), RXQUAL-FULL(7), RXLEV-SUB(46), RXQUAL-SUB(7), DTx is disabled => using FULL (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(46), RXQUAL-FULL(0), RXLEV-SUB(46), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 0 -> 2 dB (maximum 20 dB, delta -2 dB, RxLev current 46 (-64 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 0 -> 2 dB (maximum 20 dB, delta 2 dB, RxLev current 46 (-64 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(44), RXQUAL-FULL(0), RXLEV-SUB(44), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 2 -> 4 dB (maximum 20 dB, delta -2 dB, RxLev current 44 (-66 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 2 -> 4 dB (maximum 20 dB, delta 2 dB, RxLev current 44 (-66 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(42), RXQUAL-FULL(0), RXLEV-SUB(42), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 4 -> 6 dB (maximum 20 dB, delta -2 dB, RxLev current 42 (-68 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 4 -> 6 dB (maximum 20 dB, delta 2 dB, RxLev current 42 (-68 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(7), RXLEV-SUB(30), RXQUAL-SUB(7), DTx is disabled => using FULL (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(7), RXLEV-SUB(30), RXQUAL-SUB(7), DTx is disabled => using FULL (bts=0,trx=0,ts=0,ss=0) The measurement results are not valid @@ -90,13 +90,13 @@ (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL (bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(31), RXQUAL-FULL(0), RXLEV-SUB(31), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 12 -> 13 dB (maximum 16 dB, delta -1 dB, RxLev current 31 (-79 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 12 -> 13 dB (maximum 16 dB, delta 1 dB, RxLev current 31 (-79 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(28), RXQUAL-FULL(0), RXLEV-SUB(28), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 13 -> 11 dB (maximum 16 dB, delta 2 dB, RxLev current 28 (-82 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 13 -> 11 dB (maximum 16 dB, delta -2 dB, RxLev current 28 (-82 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(33), RXQUAL-FULL(0), RXLEV-SUB(33), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 11 -> 13 dB (maximum 16 dB, delta -2 dB, RxLev current 33 (-77 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 11 -> 13 dB (maximum 16 dB, delta 2 dB, RxLev current 33 (-77 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(28), RXQUAL-FULL(0), RXLEV-SUB(28), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 13 -> 11 dB (maximum 16 dB, delta 2 dB, RxLev current 28 (-82 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 13 -> 11 dB (maximum 16 dB, delta -2 dB, RxLev current 28 (-82 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(31), RXQUAL-FULL(0), RXLEV-SUB(31), RXQUAL-SUB(0), DTx is disabled => using FULL (bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 11 dB (maximum 16 dB, delta 0 dB, RxLev current 31 (-79 dBm), thresholds 27 .. 33) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(28), RXQUAL-FULL(0), RXLEV-SUB(28), RXQUAL-SUB(0), DTx is disabled => using FULL @@ -110,10 +110,10 @@ (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL (bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 30 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(26), RXQUAL-FULL(0), RXLEV-SUB(26), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 16 -> 14 dB (maximum 30 dB, delta 2 dB, RxLev current 26 (-84 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 16 -> 14 dB (maximum 30 dB, delta -2 dB, RxLev current 26 (-84 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(26), RXQUAL-FULL(0), RXLEV-SUB(26), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 14 -> 11 dB (maximum 30 dB, delta 3 dB, RxLev current 26 (-84 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 14 -> 11 dB (maximum 30 dB, delta -3 dB, RxLev current 26 (-84 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(35), RXQUAL-FULL(0), RXLEV-SUB(35), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 11 -> 12 dB (maximum 30 dB, delta -1 dB, RxLev current 35 (-75 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 11 -> 12 dB (maximum 30 dB, delta 1 dB, RxLev current 35 (-75 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(35), RXQUAL-FULL(0), RXLEV-SUB(35), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 12 -> 14 dB (maximum 30 dB, delta -2 dB, RxLev current 35 (-75 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 12 -> 14 dB (maximum 30 dB, delta 2 dB, RxLev current 35 (-75 dBm), thresholds 30 .. 30) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22118 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I178df05c1a4cb982279b21d07bd69f75b44928da Gerrit-Change-Number: 22118 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 21:27:42 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 12 Jan 2021 21:27:42 +0000 Subject: Change in osmo-pcu[master]: gprs_rlc_ts_alloc: ensure no rolling slots are allocated In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22114 ) Change subject: gprs_rlc_ts_alloc: ensure no rolling slots are allocated ...................................................................... Patch Set 1: (5 comments) https://gerrit.osmocom.org/c/osmo-pcu/+/22114/1//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-pcu/+/22114/1//COMMIT_MSG at 16 PS1, Line 16: It gives an example for a multi slot class 5 UE which has 6 possible Seven, not six "other six" means 6 + 1, which matches exectancy given the max subset is 2 for mslot class 5. https://gerrit.osmocom.org/c/osmo-pcu/+/22114/1//COMMIT_MSG at 21 PS1, Line 21: missing SYS# ticket https://gerrit.osmocom.org/c/osmo-pcu/+/22114/1//COMMIT_MSG at 23 PS1, Line 23: I would also add a referente to B.1 where it talks about the window size of the allocation set. https://gerrit.osmocom.org/c/osmo-pcu/+/22114/1/src/gprs_rlcmac_ts_alloc.cpp File src/gprs_rlcmac_ts_alloc.cpp: https://gerrit.osmocom.org/c/osmo-pcu/+/22114/1/src/gprs_rlcmac_ts_alloc.cpp at 574 PS1, Line 574: * E.g. 'UU-----U' is invalid for a 4 TN window. Excep 8 TN window. */ "Except". Please add reference to the "window size" comment from TS 45 B.1 https://gerrit.osmocom.org/c/osmo-pcu/+/22114/1/src/gprs_rlcmac_ts_alloc.cpp at 600 PS1, Line 600: if (mslot_class_get_type(mslot_class) == 1 && num_rx < 8 && add the same comment as above (ul) -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22114 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I16019bdbe741b37b83b62749b840a3b7f4ddc6c7 Gerrit-Change-Number: 22114 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 12 Jan 2021 21:27:42 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 21:33:02 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 12 Jan 2021 21:33:02 +0000 Subject: Change in osmo-pcu[master]: gprs_rlc_ts_alloc: ensure no rolling slots are allocated In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22114 ) Change subject: gprs_rlc_ts_alloc: ensure no rolling slots are allocated ...................................................................... Patch Set 1: I see this in AllocTest with the change, which at first sight doesn't make much sense: """ TBF(TFI=0 TLLI=0xffffffff DIR=UL STATE=NULL) Setting Control TS 5 TBF(TFI=0 TLLI=0xffffffff DIR=UL STATE=NULL) Allocated: trx = 0, ul_slots = 20, dl_slots = 00 """ -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22114 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I16019bdbe741b37b83b62749b840a3b7f4ddc6c7 Gerrit-Change-Number: 22114 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 12 Jan 2021 21:33:02 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 21:37:35 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 12 Jan 2021 21:37:35 +0000 Subject: Change in libosmocore[master]: tlv_parser: Fix various out-of-bounds accesses In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22113 ) Change subject: tlv_parser: Fix various out-of-bounds accesses ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22113 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I98b02c914c9e3ecf56050af846292aa6979d7508 Gerrit-Change-Number: 22113 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 12 Jan 2021 21:37:35 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 22:12:05 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Tue, 12 Jan 2021 22:12:05 +0000 Subject: Change in osmo-bts[master]: l1sap: acch_repetition fix hysthereis threshold table References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/22119 ) Change subject: l1sap: acch_repetition fix hysthereis threshold table ...................................................................... l1sap: acch_repetition fix hysthereis threshold table The table in repeated_ul_sacch_active_decision() is derived from the second table in GSM 05.08 8.2.4 but the first table would be correct. Also the lower threshold is not properly choosen. A lower threshold, that derives from upper threshold shifted by 2 makes sense (BER must improved by 2 RXQUAL steps before repetition is turned off.) Change-Id: I1d9b5c8abb79938cdecdafed84ed2e5d47e0bd3a Related: SYS#5114 --- M src/common/l1sap.c 1 file changed, 8 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/19/22119/1 diff --git a/src/common/l1sap.c b/src/common/l1sap.c index 48773f1..2757d70 100644 --- a/src/common/l1sap.c +++ b/src/common/l1sap.c @@ -1414,12 +1414,16 @@ return; } - /* convert from RXQUAL value to ber10k vale, - * see also GSM 05.08, section 8.2.4 */ + /* convert from RXQUAL value to ber10k value. + * see also GSM 05.08, section 8.2.4 (first table, without frame */ static const uint16_t ber10k_by_rxqual_upper[] = - { 0, 26, 51, 100, 190, 380, 760, 1500 }; + { 0, 20, 40, 80, 160, 320, 640, 1280 }; static const uint16_t ber10k_by_rxqual_lower[] = - { 0, 10, 10, 30, 64, 130, 270, 540 }; + { 0, 0, 0, 20, 40, 80, 160, 320 }; + /* Note: The values in the upper vector are taken from the left side + * of the table in GSM 05.08, section 8.2.4. The lower vector is just + * the upper vector shifted by 2. */ + upper = ber10k_by_rxqual_upper[lchan->repeated_acch_capability.rxqual]; lower = ber10k_by_rxqual_lower[lchan->repeated_acch_capability.rxqual]; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22119 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I1d9b5c8abb79938cdecdafed84ed2e5d47e0bd3a Gerrit-Change-Number: 22119 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 22:13:31 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Tue, 12 Jan 2021 22:13:31 +0000 Subject: Change in osmo-bsc[master]: bsc_vty: fix acch_repetition ber threshold strings References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22120 ) Change subject: bsc_vty: fix acch_repetition ber threshold strings ...................................................................... bsc_vty: fix acch_repetition ber threshold strings When setting the BER threshold for ACCH repetition the VTY displays wrong threshold values in the online help. Change-Id: I4c89ad130da328aba99663e5a2931a4007772bca Related: SYS#5114 --- M src/osmo-bsc/bsc_vty.c 1 file changed, 8 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/20/22120/1 diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c index d61d379..7b46148 100644 --- a/src/osmo-bsc/bsc_vty.c +++ b/src/osmo-bsc/bsc_vty.c @@ -2835,13 +2835,14 @@ REP_ACCH_STR "Set UL-SACCH/DL-FACCH rxqual threshold-ber\n" "0 disabled (always on)\n" - "1 0.26% to 0.30% BER\n" - "2 0.51% to 0.64% BER\n" - "3 1.0% to 1.3% BER\n" - "4 1.9% to 2.7% BER (default)\n" - "5 3.8% to 5.4% BER\n" - "6 7.6% to 11.0% BER\n" - "7 Greater than 15.0% BER\n") + "1 BER >= 0.2%\n" + "2 BER >= 0.4%\n" + "3 BER >= 0.8%\n" + "4 BER >= 1.6%\n" + "5 BER >= 3.2%\n" + "6 BER >= 6.4%\n" + "7 BER >= 12.8%\n") + /* See also: GSM 05.08, section 8.2.4 */ { struct gsm_bts *bts = vty->index; -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22120 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I4c89ad130da328aba99663e5a2931a4007772bca Gerrit-Change-Number: 22120 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 22:15:37 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 12 Jan 2021 22:15:37 +0000 Subject: Change in osmo-bts[master]: l1sap: acch_repetition fix hysthereis threshold table In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/22119 ) Change subject: l1sap: acch_repetition fix hysthereis threshold table ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22119 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I1d9b5c8abb79938cdecdafed84ed2e5d47e0bd3a Gerrit-Change-Number: 22119 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: laforge Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Tue, 12 Jan 2021 22:15:37 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 22:16:02 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 12 Jan 2021 22:16:02 +0000 Subject: Change in osmo-bsc[master]: bsc_vty: fix acch_repetition ber threshold strings In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22120 ) Change subject: bsc_vty: fix acch_repetition ber threshold strings ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22120 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I4c89ad130da328aba99663e5a2931a4007772bca Gerrit-Change-Number: 22120 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: laforge Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Tue, 12 Jan 2021 22:16:02 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 22:16:22 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 12 Jan 2021 22:16:22 +0000 Subject: Change in libosmocore[master]: tlv_parser: Fix various out-of-bounds accesses In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22113 ) Change subject: tlv_parser: Fix various out-of-bounds accesses ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22113 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I98b02c914c9e3ecf56050af846292aa6979d7508 Gerrit-Change-Number: 22113 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 12 Jan 2021 22:16:22 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 22:16:24 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 12 Jan 2021 22:16:24 +0000 Subject: Change in libosmocore[master]: tlv_parser: Fix various out-of-bounds accesses In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22113 ) Change subject: tlv_parser: Fix various out-of-bounds accesses ...................................................................... tlv_parser: Fix various out-of-bounds accesses The libosmocore TLV parser had a number of insufficient bounds checks leading to reads beyond the end of the respective input buffer. This patch * adds proper out-of-bounds checks to all TLV types * simplifies some of the existing checks * introduces test cases to test all the corner cases where either TAG, or length, or value are not fully contained in the input buffer. Thanks to Ilja Van Sprundel for reporting these problems. Change-Id: I98b02c914c9e3ecf56050af846292aa6979d7508 --- M src/gsm/tlv_parser.c M tests/tlv/tlv_test.c M tests/tlv/tlv_test.ok 3 files changed, 115 insertions(+), 15 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/src/gsm/tlv_parser.c b/src/gsm/tlv_parser.c index 7930d64..967539e 100644 --- a/src/gsm/tlv_parser.c +++ b/src/gsm/tlv_parser.c @@ -232,7 +232,10 @@ const uint8_t *buf, int buf_len) { uint8_t tag; - int len; + int len; /* number of bytes consumed by TLV entry */ + + if (buf_len < 1) + return OSMO_TLVP_ERR_OFS_BEYOND_BUFFER; tag = *buf; *o_tag = tag; @@ -265,56 +268,54 @@ break; case TLV_TYPE_TLV: tlv: /* GSM TS 04.07 11.2.4: Type 4 TLV */ - if (buf + 1 > buf + buf_len) + if (buf_len < 2) return OSMO_TLVP_ERR_OFS_BEYOND_BUFFER; *o_val = buf+2; *o_len = *(buf+1); len = *o_len + 2; - if (len > buf_len) - return OSMO_TLVP_ERR_OFS_LEN_BEYOND_BUFFER; break; case TLV_TYPE_vTvLV_GAN: /* 44.318 / 11.1.4 */ /* FIXME: variable-length TAG! */ + if (buf_len < 2) + return OSMO_TLVP_ERR_OFS_BEYOND_BUFFER; if (*(buf+1) & 0x80) { - /* like TL16Vbut without highest bit of len */ - if (2 > buf_len) + if (buf_len < 3) return OSMO_TLVP_ERR_OFS_BEYOND_BUFFER; + /* like TL16Vbut without highest bit of len */ *o_val = buf+3; *o_len = (*(buf+1) & 0x7F) << 8 | *(buf+2); len = *o_len + 3; - if (len > buf_len) - return OSMO_TLVP_ERR_OFS_LEN_BEYOND_BUFFER; } else { /* like TLV */ goto tlv; } break; case TLV_TYPE_TvLV: + if (buf_len < 2) + return OSMO_TLVP_ERR_OFS_BEYOND_BUFFER; if (*(buf+1) & 0x80) { /* like TLV, but without highest bit of len */ - if (buf + 1 > buf + buf_len) - return OSMO_TLVP_ERR_OFS_BEYOND_BUFFER; *o_val = buf+2; *o_len = *(buf+1) & 0x7f; len = *o_len + 2; - if (len > buf_len) - return OSMO_TLVP_ERR_OFS_LEN_BEYOND_BUFFER; break; } /* like TL16V, fallthrough */ case TLV_TYPE_TL16V: - if (2 > buf_len) + if (buf_len < 3) return OSMO_TLVP_ERR_OFS_BEYOND_BUFFER; *o_val = buf+3; *o_len = *(buf+1) << 8 | *(buf+2); len = *o_len + 3; - if (len > buf_len) - return OSMO_TLVP_ERR_OFS_LEN_BEYOND_BUFFER; break; default: return OSMO_TLVP_ERR_UNKNOWN_TLV_TYPE; } + if (buf_len < len) { + *o_val = NULL; + return OSMO_TLVP_ERR_OFS_LEN_BEYOND_BUFFER; + } return len; } diff --git a/tests/tlv/tlv_test.c b/tests/tlv/tlv_test.c index 925d762..3b4f441 100644 --- a/tests/tlv/tlv_test.c +++ b/tests/tlv/tlv_test.c @@ -332,6 +332,97 @@ msgb_free(msg); } +static void test_tlv_parser_bounds() +{ + struct tlv_definition tdef; + struct tlv_parsed dec; + uint8_t buf[32]; + + memset(&tdef, 0, sizeof(tdef)); + + printf("Testing TLV_TYPE_T decoder for out-of-bounds\n"); + tdef.def[0x23].type = TLV_TYPE_T; + buf[0] = 0x23; + OSMO_ASSERT(tlv_parse(&dec, &tdef, buf, 1, 0, 0) == 1); + OSMO_ASSERT(tlv_parse(&dec, &tdef, buf, 0, 0, 0) == 0); + + printf("Testing TLV_TYPE_TV decoder for out-of-bounds\n"); + tdef.def[0x23].type = TLV_TYPE_TV; + buf[0] = 0x23; + buf[1] = 0x42; + OSMO_ASSERT(tlv_parse(&dec, &tdef, buf, 2, 0, 0) == 1); + OSMO_ASSERT(*TLVP_VAL(&dec, 0x23) == buf[1]); + OSMO_ASSERT(tlv_parse(&dec, &tdef, buf, 1, 0, 0) == OSMO_TLVP_ERR_OFS_LEN_BEYOND_BUFFER); + OSMO_ASSERT(TLVP_VAL(&dec, 0x23) == NULL); + + printf("Testing TLV_TYPE_FIXED decoder for out-of-bounds\n"); + tdef.def[0x23].type = TLV_TYPE_FIXED; + tdef.def[0x23].fixed_len = 2; + buf[0] = 0x23; + buf[1] = 0x42; + buf[2] = 0x55; + OSMO_ASSERT(tlv_parse(&dec, &tdef, buf, 3, 0, 0) == 1); + OSMO_ASSERT(tlv_parse(&dec, &tdef, buf, 2, 0, 0) == OSMO_TLVP_ERR_OFS_LEN_BEYOND_BUFFER); + OSMO_ASSERT(TLVP_VAL(&dec, 0x23) == NULL); + + printf("Testing TLV_TYPE_TLV decoder for out-of-bounds\n"); + tdef.def[0x23].type = TLV_TYPE_TLV; + buf[0] = 0x23; + buf[1] = 0x02; + buf[2] = 0x55; + buf[3] = 0xAA; + OSMO_ASSERT(tlv_parse(&dec, &tdef, buf, 4, 0, 0) == 1); + OSMO_ASSERT(TLVP_VAL(&dec, 0x23) == &buf[2]); + OSMO_ASSERT(tlv_parse(&dec, &tdef, buf, 3, 0, 0) == OSMO_TLVP_ERR_OFS_LEN_BEYOND_BUFFER); + OSMO_ASSERT(TLVP_VAL(&dec, 0x23) == NULL); + OSMO_ASSERT(tlv_parse(&dec, &tdef, buf, 2, 0, 0) == OSMO_TLVP_ERR_OFS_LEN_BEYOND_BUFFER); + OSMO_ASSERT(TLVP_VAL(&dec, 0x23) == NULL); + OSMO_ASSERT(tlv_parse(&dec, &tdef, buf, 1, 0, 0) == OSMO_TLVP_ERR_OFS_BEYOND_BUFFER); + OSMO_ASSERT(TLVP_VAL(&dec, 0x23) == NULL); + + printf("Testing TLV_TYPE_vTvLV_GAN decoder for out-of-bounds\n"); + tdef.def[0x23].type = TLV_TYPE_vTvLV_GAN; + buf[0] = 0x23; + buf[1] = 0x80; + buf[2] = 0x01; + buf[3] = 0xAA; + OSMO_ASSERT(tlv_parse(&dec, &tdef, buf, 4, 0, 0) == 1); + OSMO_ASSERT(TLVP_VAL(&dec, 0x23) == &buf[3]); + OSMO_ASSERT(tlv_parse(&dec, &tdef, buf, 3, 0, 0) == OSMO_TLVP_ERR_OFS_LEN_BEYOND_BUFFER); + OSMO_ASSERT(TLVP_VAL(&dec, 0x23) == NULL); + OSMO_ASSERT(tlv_parse(&dec, &tdef, buf, 2, 0, 0) == OSMO_TLVP_ERR_OFS_BEYOND_BUFFER); + OSMO_ASSERT(TLVP_VAL(&dec, 0x23) == NULL); + OSMO_ASSERT(tlv_parse(&dec, &tdef, buf, 1, 0, 0) == OSMO_TLVP_ERR_OFS_BEYOND_BUFFER); + OSMO_ASSERT(TLVP_VAL(&dec, 0x23) == NULL); + + printf("Testing TLV_TYPE_TvLV decoder for out-of-bounds\n"); + tdef.def[0x23].type = TLV_TYPE_TvLV; + buf[0] = 0x23; + buf[1] = 0x81; + buf[2] = 0xAA; + OSMO_ASSERT(tlv_parse(&dec, &tdef, buf, 3, 0, 0) == 1); + OSMO_ASSERT(TLVP_VAL(&dec, 0x23) == &buf[2]); + OSMO_ASSERT(tlv_parse(&dec, &tdef, buf, 2, 0, 0) == OSMO_TLVP_ERR_OFS_LEN_BEYOND_BUFFER); + OSMO_ASSERT(TLVP_VAL(&dec, 0x23) == NULL); + OSMO_ASSERT(tlv_parse(&dec, &tdef, buf, 1, 0, 0) == OSMO_TLVP_ERR_OFS_BEYOND_BUFFER); + OSMO_ASSERT(TLVP_VAL(&dec, 0x23) == NULL); + + printf("Testing TLV_TYPE_TL16V decoder for out-of-bounds\n"); + tdef.def[0x23].type = TLV_TYPE_TL16V; + buf[0] = 0x23; + buf[1] = 0x00; + buf[2] = 0x01; + buf[3] = 0xAA; + OSMO_ASSERT(tlv_parse(&dec, &tdef, buf, 4, 0, 0) == 1); + OSMO_ASSERT(TLVP_VAL(&dec, 0x23) == &buf[3]); + OSMO_ASSERT(tlv_parse(&dec, &tdef, buf, 3, 0, 0) == OSMO_TLVP_ERR_OFS_LEN_BEYOND_BUFFER); + OSMO_ASSERT(TLVP_VAL(&dec, 0x23) == NULL); + OSMO_ASSERT(tlv_parse(&dec, &tdef, buf, 2, 0, 0) == OSMO_TLVP_ERR_OFS_BEYOND_BUFFER); + OSMO_ASSERT(TLVP_VAL(&dec, 0x23) == NULL); + OSMO_ASSERT(tlv_parse(&dec, &tdef, buf, 1, 0, 0) == OSMO_TLVP_ERR_OFS_BEYOND_BUFFER); + OSMO_ASSERT(TLVP_VAL(&dec, 0x23) == NULL); +} + int main(int argc, char **argv) { //osmo_init_logging2(ctx, &info); @@ -339,6 +430,7 @@ test_tlv_shift_functions(); test_tlv_repeated_ie(); test_tlv_encoder(); + test_tlv_parser_bounds(); printf("Done.\n"); return EXIT_SUCCESS; diff --git a/tests/tlv/tlv_test.ok b/tests/tlv/tlv_test.ok index f3f0fd4..e24b889 100644 --- a/tests/tlv/tlv_test.ok +++ b/tests/tlv/tlv_test.ok @@ -1,4 +1,11 @@ Test shift functions Testing TLV encoder by decoding + re-encoding binary Testing TLV encoder with IE ordering +Testing TLV_TYPE_T decoder for out-of-bounds +Testing TLV_TYPE_TV decoder for out-of-bounds +Testing TLV_TYPE_FIXED decoder for out-of-bounds +Testing TLV_TYPE_TLV decoder for out-of-bounds +Testing TLV_TYPE_vTvLV_GAN decoder for out-of-bounds +Testing TLV_TYPE_TvLV decoder for out-of-bounds +Testing TLV_TYPE_TL16V decoder for out-of-bounds Done. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22113 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I98b02c914c9e3ecf56050af846292aa6979d7508 Gerrit-Change-Number: 22113 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 22:24:34 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 12 Jan 2021 22:24:34 +0000 Subject: Change in libosmocore[for-1.4]: tlv_parser: Fix various out-of-bounds accesses References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22121 ) Change subject: tlv_parser: Fix various out-of-bounds accesses ...................................................................... tlv_parser: Fix various out-of-bounds accesses The libosmocore TLV parser had a number of insufficient bounds checks leading to reads beyond the end of the respective input buffer. This patch * adds proper out-of-bounds checks to all TLV types * simplifies some of the existing checks * introduces test cases to test all the corner cases where either TAG, or length, or value are not fully contained in the input buffer. Thanks to Ilja Van Sprundel for reporting these problems. Change-Id: I98b02c914c9e3ecf56050af846292aa6979d7508 --- M src/gsm/tlv_parser.c M tests/tlv/tlv_test.c M tests/tlv/tlv_test.ok 3 files changed, 115 insertions(+), 15 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/21/22121/1 diff --git a/src/gsm/tlv_parser.c b/src/gsm/tlv_parser.c index 159b42b..5640abe 100644 --- a/src/gsm/tlv_parser.c +++ b/src/gsm/tlv_parser.c @@ -231,7 +231,10 @@ const uint8_t *buf, int buf_len) { uint8_t tag; - int len; + int len; /* number of bytes consumed by TLV entry */ + + if (buf_len < 1) + return -1; tag = *buf; *o_tag = tag; @@ -264,56 +267,54 @@ break; case TLV_TYPE_TLV: tlv: /* GSM TS 04.07 11.2.4: Type 4 TLV */ - if (buf + 1 > buf + buf_len) + if (buf_len < 2) return -1; *o_val = buf+2; *o_len = *(buf+1); len = *o_len + 2; - if (len > buf_len) - return -2; break; case TLV_TYPE_vTvLV_GAN: /* 44.318 / 11.1.4 */ /* FIXME: variable-length TAG! */ + if (buf_len < 2) + return -1; if (*(buf+1) & 0x80) { - /* like TL16Vbut without highest bit of len */ - if (2 > buf_len) + if (buf_len < 3) return -1; + /* like TL16Vbut without highest bit of len */ *o_val = buf+3; *o_len = (*(buf+1) & 0x7F) << 8 | *(buf+2); len = *o_len + 3; - if (len > buf_len) - return -2; } else { /* like TLV */ goto tlv; } break; case TLV_TYPE_TvLV: + if (buf_len < 2) + return -1; if (*(buf+1) & 0x80) { /* like TLV, but without highest bit of len */ - if (buf + 1 > buf + buf_len) - return -1; *o_val = buf+2; *o_len = *(buf+1) & 0x7f; len = *o_len + 2; - if (len > buf_len) - return -2; break; } /* like TL16V, fallthrough */ case TLV_TYPE_TL16V: - if (2 > buf_len) + if (buf_len < 3) return -1; *o_val = buf+3; *o_len = *(buf+1) << 8 | *(buf+2); len = *o_len + 3; - if (len > buf_len) - return -2; break; default: return -3; } + if (buf_len < len) { + *o_val = NULL; + return -2; + } return len; } diff --git a/tests/tlv/tlv_test.c b/tests/tlv/tlv_test.c index 925d762..148a7c2 100644 --- a/tests/tlv/tlv_test.c +++ b/tests/tlv/tlv_test.c @@ -332,6 +332,97 @@ msgb_free(msg); } +static void test_tlv_parser_bounds() +{ + struct tlv_definition tdef; + struct tlv_parsed dec; + uint8_t buf[32]; + + memset(&tdef, 0, sizeof(tdef)); + + printf("Testing TLV_TYPE_T decoder for out-of-bounds\n"); + tdef.def[0x23].type = TLV_TYPE_T; + buf[0] = 0x23; + OSMO_ASSERT(tlv_parse(&dec, &tdef, buf, 1, 0, 0) == 1); + OSMO_ASSERT(tlv_parse(&dec, &tdef, buf, 0, 0, 0) == 0); + + printf("Testing TLV_TYPE_TV decoder for out-of-bounds\n"); + tdef.def[0x23].type = TLV_TYPE_TV; + buf[0] = 0x23; + buf[1] = 0x42; + OSMO_ASSERT(tlv_parse(&dec, &tdef, buf, 2, 0, 0) == 1); + OSMO_ASSERT(*TLVP_VAL(&dec, 0x23) == buf[1]); + OSMO_ASSERT(tlv_parse(&dec, &tdef, buf, 1, 0, 0) == -2); + OSMO_ASSERT(TLVP_VAL(&dec, 0x23) == NULL); + + printf("Testing TLV_TYPE_FIXED decoder for out-of-bounds\n"); + tdef.def[0x23].type = TLV_TYPE_FIXED; + tdef.def[0x23].fixed_len = 2; + buf[0] = 0x23; + buf[1] = 0x42; + buf[2] = 0x55; + OSMO_ASSERT(tlv_parse(&dec, &tdef, buf, 3, 0, 0) == 1); + OSMO_ASSERT(tlv_parse(&dec, &tdef, buf, 2, 0, 0) == -2); + OSMO_ASSERT(TLVP_VAL(&dec, 0x23) == NULL); + + printf("Testing TLV_TYPE_TLV decoder for out-of-bounds\n"); + tdef.def[0x23].type = TLV_TYPE_TLV; + buf[0] = 0x23; + buf[1] = 0x02; + buf[2] = 0x55; + buf[3] = 0xAA; + OSMO_ASSERT(tlv_parse(&dec, &tdef, buf, 4, 0, 0) == 1); + OSMO_ASSERT(TLVP_VAL(&dec, 0x23) == &buf[2]); + OSMO_ASSERT(tlv_parse(&dec, &tdef, buf, 3, 0, 0) == -2); + OSMO_ASSERT(TLVP_VAL(&dec, 0x23) == NULL); + OSMO_ASSERT(tlv_parse(&dec, &tdef, buf, 2, 0, 0) == -2); + OSMO_ASSERT(TLVP_VAL(&dec, 0x23) == NULL); + OSMO_ASSERT(tlv_parse(&dec, &tdef, buf, 1, 0, 0) == -1); + OSMO_ASSERT(TLVP_VAL(&dec, 0x23) == NULL); + + printf("Testing TLV_TYPE_vTvLV_GAN decoder for out-of-bounds\n"); + tdef.def[0x23].type = TLV_TYPE_vTvLV_GAN; + buf[0] = 0x23; + buf[1] = 0x80; + buf[2] = 0x01; + buf[3] = 0xAA; + OSMO_ASSERT(tlv_parse(&dec, &tdef, buf, 4, 0, 0) == 1); + OSMO_ASSERT(TLVP_VAL(&dec, 0x23) == &buf[3]); + OSMO_ASSERT(tlv_parse(&dec, &tdef, buf, 3, 0, 0) == -2); + OSMO_ASSERT(TLVP_VAL(&dec, 0x23) == NULL); + OSMO_ASSERT(tlv_parse(&dec, &tdef, buf, 2, 0, 0) == -1); + OSMO_ASSERT(TLVP_VAL(&dec, 0x23) == NULL); + OSMO_ASSERT(tlv_parse(&dec, &tdef, buf, 1, 0, 0) == -1); + OSMO_ASSERT(TLVP_VAL(&dec, 0x23) == NULL); + + printf("Testing TLV_TYPE_TvLV decoder for out-of-bounds\n"); + tdef.def[0x23].type = TLV_TYPE_TvLV; + buf[0] = 0x23; + buf[1] = 0x81; + buf[2] = 0xAA; + OSMO_ASSERT(tlv_parse(&dec, &tdef, buf, 3, 0, 0) == 1); + OSMO_ASSERT(TLVP_VAL(&dec, 0x23) == &buf[2]); + OSMO_ASSERT(tlv_parse(&dec, &tdef, buf, 2, 0, 0) == -2); + OSMO_ASSERT(TLVP_VAL(&dec, 0x23) == NULL); + OSMO_ASSERT(tlv_parse(&dec, &tdef, buf, 1, 0, 0) == -1); + OSMO_ASSERT(TLVP_VAL(&dec, 0x23) == NULL); + + printf("Testing TLV_TYPE_TL16V decoder for out-of-bounds\n"); + tdef.def[0x23].type = TLV_TYPE_TL16V; + buf[0] = 0x23; + buf[1] = 0x00; + buf[2] = 0x01; + buf[3] = 0xAA; + OSMO_ASSERT(tlv_parse(&dec, &tdef, buf, 4, 0, 0) == 1); + OSMO_ASSERT(TLVP_VAL(&dec, 0x23) == &buf[3]); + OSMO_ASSERT(tlv_parse(&dec, &tdef, buf, 3, 0, 0) == -2); + OSMO_ASSERT(TLVP_VAL(&dec, 0x23) == NULL); + OSMO_ASSERT(tlv_parse(&dec, &tdef, buf, 2, 0, 0) == -1); + OSMO_ASSERT(TLVP_VAL(&dec, 0x23) == NULL); + OSMO_ASSERT(tlv_parse(&dec, &tdef, buf, 1, 0, 0) == -1); + OSMO_ASSERT(TLVP_VAL(&dec, 0x23) == NULL); +} + int main(int argc, char **argv) { //osmo_init_logging2(ctx, &info); @@ -339,6 +430,7 @@ test_tlv_shift_functions(); test_tlv_repeated_ie(); test_tlv_encoder(); + test_tlv_parser_bounds(); printf("Done.\n"); return EXIT_SUCCESS; diff --git a/tests/tlv/tlv_test.ok b/tests/tlv/tlv_test.ok index f3f0fd4..e24b889 100644 --- a/tests/tlv/tlv_test.ok +++ b/tests/tlv/tlv_test.ok @@ -1,4 +1,11 @@ Test shift functions Testing TLV encoder by decoding + re-encoding binary Testing TLV encoder with IE ordering +Testing TLV_TYPE_T decoder for out-of-bounds +Testing TLV_TYPE_TV decoder for out-of-bounds +Testing TLV_TYPE_FIXED decoder for out-of-bounds +Testing TLV_TYPE_TLV decoder for out-of-bounds +Testing TLV_TYPE_vTvLV_GAN decoder for out-of-bounds +Testing TLV_TYPE_TvLV decoder for out-of-bounds +Testing TLV_TYPE_TL16V decoder for out-of-bounds Done. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22121 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: for-1.4 Gerrit-Change-Id: I98b02c914c9e3ecf56050af846292aa6979d7508 Gerrit-Change-Number: 22121 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 22:26:16 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 12 Jan 2021 22:26:16 +0000 Subject: Change in osmo-bts[master]: power_control: BS power shall not be reduced on C0 In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/22116 ) Change subject: power_control: BS power shall not be reduced on C0 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22116 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I4fdfe097ae6f9edde5f39ed4da8a559a14b3b38f Gerrit-Change-Number: 22116 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 12 Jan 2021 22:26:16 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 22:27:31 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 12 Jan 2021 22:27:31 +0000 Subject: Change in osmo-bts[master]: power_control: print current RxLev and lower/upper thresholds In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/22117 ) Change subject: power_control: print current RxLev and lower/upper thresholds ...................................................................... Patch Set 1: I guess I'm too used to the old messages, I don't think it's much of an improvement. Let's sse what others say, I have no strong opinion either way. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22117 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I5f8c987054b2b01acdb9f525d06ca15bbc577070 Gerrit-Change-Number: 22117 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-Comment-Date: Tue, 12 Jan 2021 22:27:31 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 22:27:57 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 12 Jan 2021 22:27:57 +0000 Subject: Change in osmo-bts[master]: power_control: fix: properly print 'delta' applied to attenuation In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/22118 ) Change subject: power_control: fix: properly print 'delta' applied to attenuation ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22118 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I178df05c1a4cb982279b21d07bd69f75b44928da Gerrit-Change-Number: 22118 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 12 Jan 2021 22:27:57 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 22:30:38 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 12 Jan 2021 22:30:38 +0000 Subject: Change in libosmocore[master]: bssgp_rim: add encoder/decoder for NACC related RIM containers In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21862 ) Change subject: bssgp_rim: add encoder/decoder for NACC related RIM containers ...................................................................... Patch Set 9: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21862 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ibbc7fd67658e3040c12abb5706fe9d1f31894352 Gerrit-Change-Number: 21862 Gerrit-PatchSet: 9 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 12 Jan 2021 22:30:38 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 22:31:00 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 12 Jan 2021 22:31:00 +0000 Subject: Change in libosmocore[master]: bssgp_rim: move bssgp_parse_rim_ri and bssgp_create_rim_ri to gprs_bs... In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21863 ) Change subject: bssgp_rim: move bssgp_parse_rim_ri and bssgp_create_rim_ri to gprs_bssgp_rim ...................................................................... Patch Set 9: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21863 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Icd667f41d5735de56cd9fb257670337c679dd258 Gerrit-Change-Number: 21863 Gerrit-PatchSet: 9 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 12 Jan 2021 22:31:00 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 22:32:16 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 12 Jan 2021 22:32:16 +0000 Subject: =?UTF-8?Q?Change_in_libosmocore=5Bfor-1=2E4=5D=3A_Bump_version=3A_1=2E4=2E1-dirty_=E2=86=92_1=2E4=2E2?= References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22122 ) Change subject: Bump version: 1.4.1-dirty ? 1.4.2 ...................................................................... Bump version: 1.4.1-dirty ? 1.4.2 Change-Id: I2edd4eb53b33cc77e7894652a24a758fcca84e59 --- M debian/changelog 1 file changed, 6 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/22/22122/1 diff --git a/debian/changelog b/debian/changelog index 8b0710b..e95b7cd 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +libosmocore (1.4.2) unstable; urgency=medium + + * tlv_parser: Fix various out-of-bounds accesses + + -- Harald Welte Tue, 12 Jan 2021 23:25:09 +0100 + libosmocore (1.4.1) unstable; urgency=medium [ Vadim Yanitskiy ] -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22122 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: for-1.4 Gerrit-Change-Id: I2edd4eb53b33cc77e7894652a24a758fcca84e59 Gerrit-Change-Number: 22122 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 12 23:32:40 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Tue, 12 Jan 2021 23:32:40 +0000 Subject: Change in osmo-bts[master]: l1sap: use rxlev_full when no DTX was used References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/22123 ) Change subject: l1sap: use rxlev_full when no DTX was used ...................................................................... l1sap: use rxlev_full when no DTX was used At the moment only rxlev_sub is used to decide when the facch repetition should be activated, regardless if DTX is used. Lets check if DTX is actually used and use rxlev_full when DTX is not applied. Change-Id: I01ba57cf661f0e41b8df209c905f8d135013e472 Related: SYS#5114 --- M src/common/l1sap.c 1 file changed, 11 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/23/22123/1 diff --git a/src/common/l1sap.c b/src/common/l1sap.c index 2757d70..3f601fd 100644 --- a/src/common/l1sap.c +++ b/src/common/l1sap.c @@ -972,6 +972,7 @@ const struct gsm48_meas_res *meas_res; uint8_t upper; uint8_t lower; + uint8_t rxqual; if (!lchan->repeated_acch_capability.dl_facch_cmd && !lchan->repeated_acch_capability.dl_facch_all) @@ -1008,10 +1009,19 @@ lower = lchan->repeated_acch_capability.rxqual - 2; else lower = 0; - if (meas_res->rxqual_sub >= upper) + + /* When downlink DTX is applied, use RXQUAL-SUB, otherwise use + * RXQUAL-FULL. */ + if (meas_res->dtx_used) + rxqual = meas_res->rxqual_sub; + else + rxqual = meas_res->rxqual_full; + + if (rxqual >= upper) lchan->repeated_dl_facch_active = true; else if (meas_res->rxqual_sub <= lower) lchan->repeated_dl_facch_active = false; + } /* Special dequeueing function with SACCH repetition (3GPP TS 44.006, section 11) */ -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22123 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I01ba57cf661f0e41b8df209c905f8d135013e472 Gerrit-Change-Number: 22123 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Wed Jan 13 02:52:08 2021 From: admin at opensuse.org (OBS Notification) Date: Wed, 13 Jan 2021 02:52:08 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <5ffe60641752a_4d52b06e3fb85f01817638@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/xUbuntu_20.04/x86_64 Package network:osmocom:nightly/simtrace2 failed to build in xUbuntu_20.04/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 161s] [COMPILING libboard/qmod/source/wwan_perst.c] [ 161s] [COMPILING libboard/qmod/source/card_pres.c] [ 161s] [COMPILING libboard/qmod/source/wwan_led.c] [ 161s] [COMPILING libboard/qmod/source/i2c.c] [ 162s] [COMPILING libboard/qmod/source/board_qmod.c] [ 162s] [COMPILING apps/dfu/main.c] [ 162s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 162s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 162s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 162s] Memory region Used Size Region Size %age Used [ 162s] rom: 16588 B 16 KB 101.25% [ 162s] ram: 11672 B 48 KB 23.75/usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 162s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 204 bytes [ 162s] collect2: error: ld returned 1 exit status [ 162s] % [ 162s] make[2]: *** [Makefile:234: flash] Error 1 [ 162s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 162s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 162s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 162s] dh_auto_build: error: make -j1 returned exit code 2 [ 162s] make: *** [debian/rules:16: build] Error 25 [ 162s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 162s] ### VM INTERACTION START ### [ 165s] [ 155.399161] sysrq: Power Off [ 165s] [ 155.405163] reboot: Power down [ 166s] ### VM INTERACTION END ### [ 166s] [ 166s] lamb57 failed "build simtrace2_0.7.0.69.aadd.dsc" at Wed Jan 13 02:51:50 UTC 2021. [ 166s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Jan 13 02:54:07 2021 From: admin at opensuse.org (OBS Notification) Date: Wed, 13 Jan 2021 02:54:07 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.10/x86_64 In-Reply-To: References: Message-ID: <5ffe60dac8cd0_4d52b06e3fb85f018181e7@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/xUbuntu_20.10/x86_64 Package network:osmocom:nightly/simtrace2 failed to build in xUbuntu_20.10/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 170s] [COMPILING apps/dfu/main.c] [ 170s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 170s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 170s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 170s] Memory region Used Size Region Size %age Used [ 170s] rom: 16580 B 16 KB 101.20% [ 170s] ram: 11672 B 48 KB 23.75/usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 170s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 170s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 170s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 170s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 170s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 170s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 196 bytes [ 170s] collect2: error: ld returned 1 exit status [ 170s] % [ 170s] make[2]: *** [Makefile:234: flash] Error 1 [ 170s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 170s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 170s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 170s] dh_auto_build: error: make -j1 returned exit code 2 [ 170s] make: *** [debian/rules:16: build] Error 25 [ 170s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 170s] ### VM INTERACTION START ### [ 173s] [ 160.667157] sysrq: Power Off [ 173s] [ 160.673332] reboot: Power down [ 173s] ### VM INTERACTION END ### [ 173s] [ 173s] lamb60 failed "build simtrace2_0.7.0.69.aadd.dsc" at Wed Jan 13 02:53:52 UTC 2021. [ 173s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Wed Jan 13 07:52:40 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 13 Jan 2021 07:52:40 +0000 Subject: Change in osmo-bts[master]: l1sap: use rxlev_full when no DTX was used In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/22123 ) Change subject: l1sap: use rxlev_full when no DTX was used ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22123 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I01ba57cf661f0e41b8df209c905f8d135013e472 Gerrit-Change-Number: 22123 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 13 Jan 2021 07:52:40 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 07:52:45 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 13 Jan 2021 07:52:45 +0000 Subject: Change in osmo-bts[master]: l1sap: acch_repetition fix hysthereis threshold table In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/22119 ) Change subject: l1sap: acch_repetition fix hysthereis threshold table ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22119 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I1d9b5c8abb79938cdecdafed84ed2e5d47e0bd3a Gerrit-Change-Number: 22119 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 13 Jan 2021 07:52:45 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 07:52:47 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 13 Jan 2021 07:52:47 +0000 Subject: Change in osmo-bts[master]: l1sap: acch_repetition fix hysthereis threshold table In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/22119 ) Change subject: l1sap: acch_repetition fix hysthereis threshold table ...................................................................... l1sap: acch_repetition fix hysthereis threshold table The table in repeated_ul_sacch_active_decision() is derived from the second table in GSM 05.08 8.2.4 but the first table would be correct. Also the lower threshold is not properly choosen. A lower threshold, that derives from upper threshold shifted by 2 makes sense (BER must improved by 2 RXQUAL steps before repetition is turned off.) Change-Id: I1d9b5c8abb79938cdecdafed84ed2e5d47e0bd3a Related: SYS#5114 --- M src/common/l1sap.c 1 file changed, 8 insertions(+), 4 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/common/l1sap.c b/src/common/l1sap.c index 48773f1..2757d70 100644 --- a/src/common/l1sap.c +++ b/src/common/l1sap.c @@ -1414,12 +1414,16 @@ return; } - /* convert from RXQUAL value to ber10k vale, - * see also GSM 05.08, section 8.2.4 */ + /* convert from RXQUAL value to ber10k value. + * see also GSM 05.08, section 8.2.4 (first table, without frame */ static const uint16_t ber10k_by_rxqual_upper[] = - { 0, 26, 51, 100, 190, 380, 760, 1500 }; + { 0, 20, 40, 80, 160, 320, 640, 1280 }; static const uint16_t ber10k_by_rxqual_lower[] = - { 0, 10, 10, 30, 64, 130, 270, 540 }; + { 0, 0, 0, 20, 40, 80, 160, 320 }; + /* Note: The values in the upper vector are taken from the left side + * of the table in GSM 05.08, section 8.2.4. The lower vector is just + * the upper vector shifted by 2. */ + upper = ber10k_by_rxqual_upper[lchan->repeated_acch_capability.rxqual]; lower = ber10k_by_rxqual_lower[lchan->repeated_acch_capability.rxqual]; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22119 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I1d9b5c8abb79938cdecdafed84ed2e5d47e0bd3a Gerrit-Change-Number: 22119 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 07:52:48 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 13 Jan 2021 07:52:48 +0000 Subject: Change in osmo-bts[master]: l1sap: use rxlev_full when no DTX was used In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/22123 ) Change subject: l1sap: use rxlev_full when no DTX was used ...................................................................... l1sap: use rxlev_full when no DTX was used At the moment only rxlev_sub is used to decide when the facch repetition should be activated, regardless if DTX is used. Lets check if DTX is actually used and use rxlev_full when DTX is not applied. Change-Id: I01ba57cf661f0e41b8df209c905f8d135013e472 Related: SYS#5114 --- M src/common/l1sap.c 1 file changed, 11 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/common/l1sap.c b/src/common/l1sap.c index 2757d70..3f601fd 100644 --- a/src/common/l1sap.c +++ b/src/common/l1sap.c @@ -972,6 +972,7 @@ const struct gsm48_meas_res *meas_res; uint8_t upper; uint8_t lower; + uint8_t rxqual; if (!lchan->repeated_acch_capability.dl_facch_cmd && !lchan->repeated_acch_capability.dl_facch_all) @@ -1008,10 +1009,19 @@ lower = lchan->repeated_acch_capability.rxqual - 2; else lower = 0; - if (meas_res->rxqual_sub >= upper) + + /* When downlink DTX is applied, use RXQUAL-SUB, otherwise use + * RXQUAL-FULL. */ + if (meas_res->dtx_used) + rxqual = meas_res->rxqual_sub; + else + rxqual = meas_res->rxqual_full; + + if (rxqual >= upper) lchan->repeated_dl_facch_active = true; else if (meas_res->rxqual_sub <= lower) lchan->repeated_dl_facch_active = false; + } /* Special dequeueing function with SACCH repetition (3GPP TS 44.006, section 11) */ -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22123 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I01ba57cf661f0e41b8df209c905f8d135013e472 Gerrit-Change-Number: 22123 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 08:02:12 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 13 Jan 2021 08:02:12 +0000 Subject: Change in osmo-bsc[master]: Introduce Neighbor Resolution Service In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21848 ) Change subject: Introduce Neighbor Resolution Service ...................................................................... Patch Set 8: (3 comments) I think we also should allocate an "osmocom well-known" port number as default for this service. Let's avoid everyone having to come up with their own port numbers everywhere, making it even harder to understand what's going on. Nevertheless, there is no good default IP to bind to. localhost is not very useful as the PCU mostly is remote, and * is too dangerous. So I would keep the "don't create this interface by default unless configured" approach, but make specifying a port number optional, and use at default port number if none is specified by the user (and add that port number to manuals, wiki and libosmocore ports.h) https://gerrit.osmocom.org/c/osmo-bsc/+/21848/8/src/osmo-bsc/neighbor_ident_vty.c File src/osmo-bsc/neighbor_ident_vty.c: https://gerrit.osmocom.org/c/osmo-bsc/+/21848/8/src/osmo-bsc/neighbor_ident_vty.c at 89 PS8, Line 89: #define CGI_PS_DOC "Neighbor cell by cgi (Packet Switch, with RAC)\n" "MCC\n" "MNC\n" "LAC\n" "RAC\n" "CI\n" "Packet Switched", or "PS Domain", but "Packet Switch" sounds like you're talking about an actual device (like ethernet switch) https://gerrit.osmocom.org/c/osmo-bsc/+/21848/8/src/osmo-bsc/neighbor_ident_vty.c at 581 PS8, Line 581: neighbor "neighbor-resolution bind" would be more self-explanatory, IMHO. Not critical. https://gerrit.osmocom.org/c/osmo-bsc/+/21848/8/src/osmo-bsc/neighbor_ident_vty.c at 583 PS8, Line 583: "IPv4 address to bind the service to\n" "IPv6 address to bind the service to\n don't we have some #defines for this aleady? -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21848 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ib07c9d23026332a207d4b7a0f7b4e76c0094e379 Gerrit-Change-Number: 21848 Gerrit-PatchSet: 8 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-CC: laforge Gerrit-Comment-Date: Wed, 13 Jan 2021 08:02:12 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 08:02:16 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 13 Jan 2021 08:02:16 +0000 Subject: Change in osmo-bsc[master]: Introduce Neighbor Resolution Service In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21848 ) Change subject: Introduce Neighbor Resolution Service ...................................................................... Patch Set 8: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21848 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ib07c9d23026332a207d4b7a0f7b4e76c0094e379 Gerrit-Change-Number: 21848 Gerrit-PatchSet: 8 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 13 Jan 2021 08:02:16 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 08:02:56 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 13 Jan 2021 08:02:56 +0000 Subject: Change in osmo-bsc[master]: hodec2: fix congestion oscillation bug In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21989 ) Change subject: hodec2: fix congestion oscillation bug ...................................................................... Patch Set 7: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21989 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Icb373dc6bfc9819446db5e96f71921781fe2026d Gerrit-Change-Number: 21989 Gerrit-PatchSet: 7 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 13 Jan 2021 08:02:56 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 08:03:15 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 13 Jan 2021 08:03:15 +0000 Subject: Change in osmo-bsc[master]: handover_test: add test_balance_congestion_by_percentage.ho_vty In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22084 ) Change subject: handover_test: add test_balance_congestion_by_percentage.ho_vty ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22084 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I314915718f66aec50e8dcf94569b0a52ca34b96f Gerrit-Change-Number: 22084 Gerrit-PatchSet: 5 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 13 Jan 2021 08:03:15 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 08:04:42 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 13 Jan 2021 08:04:42 +0000 Subject: Change in osmo-bsc[master]: hodec2: to balance congestion, use overload percent In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22085 ) Change subject: hodec2: to balance congestion, use overload percent ...................................................................... Patch Set 6: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22085 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I55234c6c99eb02ceee52be0d7388bea14304930f Gerrit-Change-Number: 22085 Gerrit-PatchSet: 6 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 13 Jan 2021 08:04:42 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 08:04:56 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 13 Jan 2021 08:04:56 +0000 Subject: Change in osmo-bsc[master]: handover_test: enhance test_balance_congestion_by_percentage.ho_vty In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22101 ) Change subject: handover_test: enhance test_balance_congestion_by_percentage.ho_vty ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22101 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I2664dd0857965c4dbf1f91e57c6324d9cf330423 Gerrit-Change-Number: 22101 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 13 Jan 2021 08:04:56 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 08:05:06 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 13 Jan 2021 08:05:06 +0000 Subject: Change in osmo-bsc[master]: handover_test: show bug: add test_balance_congestion_tchf_tchh.ho_vty In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22083 ) Change subject: handover_test: show bug: add test_balance_congestion_tchf_tchh.ho_vty ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22083 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I78fd146fb9b9f9e5d61234065abecbedb9f30a3a Gerrit-Change-Number: 22083 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 13 Jan 2021 08:05:06 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 08:05:14 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 13 Jan 2021 08:05:14 +0000 Subject: Change in osmo-bsc[master]: handover_test: add lchan wildcards to meas-rep cmd In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22082 ) Change subject: handover_test: add lchan wildcards to meas-rep cmd ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22082 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I441f92348508d45e1069a3dfa1ff3842dbba97d6 Gerrit-Change-Number: 22082 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 13 Jan 2021 08:05:14 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 08:05:22 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 13 Jan 2021 08:05:22 +0000 Subject: Change in osmo-bsc[master]: handover_test: add lchan wildcards to meas-rep cmd In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22082 ) Change subject: handover_test: add lchan wildcards to meas-rep cmd ...................................................................... handover_test: add lchan wildcards to meas-rep cmd With 'set-ts-use', it is convenient to build a scenario of lchan usage, but still inconvenient to send measurement reports to all lchans. I need this for testing congestion-check, because each lchan needs to have at least one measurement report, or congestion check is skipped. Example: set-ts-use trx 0 0 states * TCH/F TCH/F - - TCH/HH TCH/HH TCH/H- meas-rep lchan * * * * rxlev 10 rxqual 0 ta 0 This patch adds the '*' for the lchan arguments, usually being bts idx, trx idx, timeslot idx and subslot idx. Use lchan wildcards at the appropriate places to shorten some tests. Change-Id: I441f92348508d45e1069a3dfa1ff3842dbba97d6 --- M tests/handover/handover_test.c M tests/handover/test_balance_congestion_2.ho_vty M tests/handover/test_congestion.ho_vty M tests/handover/test_dyn_ts_amr_tch_f_to_h_congestion_assignment.ho_vty M tests/handover/test_dyn_ts_favor_moving_half_used_tch_h.ho_vty M tests/handover/test_no_congestion.ho_vty 6 files changed, 72 insertions(+), 44 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve diff --git a/tests/handover/handover_test.c b/tests/handover/handover_test.c index d422a9d..dff1390 100644 --- a/tests/handover/handover_test.c +++ b/tests/handover/handover_test.c @@ -741,6 +741,50 @@ return &ts->lchan[atoi(argv[3])]; } +#define LCHAN_WILDCARD_ARGS "lchan (<0-255>|*) (<0-255>|*) (<0-7>|*) (<0-7>|*)" +#define LCHAN_WILDCARD_ARGS_DOC "identify an lchan\nBTS nr\nall BTS\nTRX nr\nall BTS\nTimeslot nr\nall TS\nSubslot nr\nall subslots\n" + +static void parse_lchan_wildcard_args(const char **argv, void (*cb)(struct gsm_lchan*, void*), void *cb_data) +{ + const char *bts_str = argv[0]; + const char *trx_str = argv[1]; + const char *ts_str = argv[2]; + const char *ss_str = argv[3]; + int bts_num = (strcmp(bts_str, "*") == 0)? -1 : atoi(bts_str); + int trx_num = (strcmp(trx_str, "*") == 0)? -1 : atoi(trx_str); + int ts_num = (strcmp(ts_str, "*") == 0)? -1 : atoi(ts_str); + int ss_num = (strcmp(ss_str, "*") == 0)? -1 : atoi(ss_str); + + int bts_i; + int trx_i; + int ts_i; + int ss_i; + + for (bts_i = ((bts_num == -1) ? 0 : bts_num); + bts_i < ((bts_num == -1) ? bsc_gsmnet->num_bts : bts_num + 1); + bts_i++) { + struct gsm_bts *bts = gsm_bts_num(bsc_gsmnet, bts_i); + + for (trx_i = ((trx_num == -1) ? 0 : trx_num); + trx_i < ((trx_num == -1) ? bts->num_trx : trx_num + 1); + trx_i++) { + struct gsm_bts_trx *trx = gsm_bts_trx_num(bts, trx_i); + + for (ts_i = ((ts_num == -1) ? 0 : ts_num); + ts_i < ((ts_num == -1) ? 8 : ts_num + 1); + ts_i++) { + struct gsm_bts_trx_ts *ts = &trx->ts[ts_i]; + + for (ss_i = ((ss_num == -1) ? 0 : ss_num); + ss_i < ((ss_num == -1) ? pchan_subslots(ts->pchan_is) : ss_num + 1); + ss_i++) { + cb(&ts->lchan[ss_i], cb_data); + } + } + } + } +} + static int vty_step = 1; #define VTY_ECHO() \ @@ -814,18 +858,24 @@ return CMD_SUCCESS; } -static int _meas_rep(struct vty *vty, int argc, const char **argv) +struct meas_rep_data { + int argc; + const char **argv; +}; + +static void _meas_rep_cb(struct gsm_lchan *lc, void *data) { - struct gsm_lchan *lc; + struct meas_rep_data *d = data; + int argc = d->argc; + const char **argv = d->argv; uint8_t rxlev; uint8_t rxqual; uint8_t ta; int i; struct neighbor_meas nm[6] = {}; - lc = parse_lchan_args(argv); - argv += 4; - argc -= 4; + if (!lchan_state_is(lc, LCHAN_ST_ESTABLISHED)) + return; rxlev = atoi(argv[0]); rxqual = atoi(argv[1]); @@ -863,14 +913,24 @@ nm[i].rxlev); } gen_meas_rep(lc, rxlev, rxqual, ta, argc, nm); +} + +static int _meas_rep(struct vty *vty, int argc, const char **argv) +{ + struct meas_rep_data d = { + .argc = argc - 4, + .argv = argv + 4, + }; + parse_lchan_wildcard_args(argv, _meas_rep_cb, &d); return CMD_SUCCESS; } -#define MEAS_REP_ARGS LCHAN_ARGS " rxlev <0-255> rxqual <0-7> ta <0-255>" \ + +#define MEAS_REP_ARGS LCHAN_WILDCARD_ARGS " rxlev <0-255> rxqual <0-7> ta <0-255>" \ " [neighbors] [<0-255>] [<0-255>] [<0-255>] [<0-255>] [<0-255>] [<0-255>]" #define MEAS_REP_DOC "Send measurement report\n" #define MEAS_REP_ARGS_DOC \ - LCHAN_ARGS_DOC \ + LCHAN_WILDCARD_ARGS_DOC \ "rxlev\nrxlev\n" \ "rxqual\nrxqual\n" \ "timing advance\ntiming advance\n" \ diff --git a/tests/handover/test_balance_congestion_2.ho_vty b/tests/handover/test_balance_congestion_2.ho_vty index 9c8b7f9..b157478 100644 --- a/tests/handover/test_balance_congestion_2.ho_vty +++ b/tests/handover/test_balance_congestion_2.ho_vty @@ -8,14 +8,9 @@ codec tch/f FR set-ts-use trx 0 0 states * TCH/F TCH/F TCH/F - - - - set-ts-use trx 1 0 states * TCH/F - - - - - - -meas-rep lchan 0 0 1 0 rxlev 30 rxqual 0 ta 0 neighbors 20 -expect-no-chan +meas-rep lchan * * * * rxlev 30 rxqual 0 ta 0 neighbors 20 meas-rep lchan 0 0 2 0 rxlev 30 rxqual 0 ta 0 neighbors 21 expect-no-chan -meas-rep lchan 0 0 3 0 rxlev 30 rxqual 0 ta 0 neighbors 20 -expect-no-chan -meas-rep lchan 1 0 1 0 rxlev 30 rxqual 0 ta 0 neighbors 20 -expect-no-chan congestion-check expect-ho from lchan 0 0 2 0 to lchan 1 0 2 0 expect-ts-use trx 0 0 states * TCH/F - TCH/F - - - - diff --git a/tests/handover/test_congestion.ho_vty b/tests/handover/test_congestion.ho_vty index 09815e3..529b8de 100644 --- a/tests/handover/test_congestion.ho_vty +++ b/tests/handover/test_congestion.ho_vty @@ -9,20 +9,9 @@ handover2 min-free-slots tch/h 2 set-ts-use trx 0 0 states * TCH/F TCH/F TCH/F - TCH/HH - - set-ts-use trx 1 0 states * TCH/F - - - TCH/H- - - -meas-rep lchan 0 0 1 0 rxlev 30 rxqual 0 ta 0 neighbors 20 20 -expect-no-chan -meas-rep lchan 0 0 2 0 rxlev 30 rxqual 0 ta 0 neighbors 20 20 -expect-no-chan +meas-rep lchan * * * * rxlev 30 rxqual 0 ta 0 neighbors 20 20 meas-rep lchan 0 0 3 0 rxlev 30 rxqual 0 ta 0 neighbors 21 20 expect-no-chan -meas-rep lchan 0 0 5 0 rxlev 30 rxqual 0 ta 0 neighbors 20 20 -expect-no-chan -meas-rep lchan 0 0 5 1 rxlev 30 rxqual 0 ta 0 neighbors 20 20 -expect-no-chan -meas-rep lchan 1 0 1 0 rxlev 30 rxqual 0 ta 0 neighbors 20 20 -expect-no-chan -meas-rep lchan 1 0 5 0 rxlev 30 rxqual 0 ta 0 neighbors 20 20 -expect-no-chan expect-ts-use trx 0 0 states * TCH/F TCH/F TCH/F - TCH/HH - - expect-ts-use trx 1 0 states * TCH/F - - - TCH/H- - - congestion-check diff --git a/tests/handover/test_dyn_ts_amr_tch_f_to_h_congestion_assignment.ho_vty b/tests/handover/test_dyn_ts_amr_tch_f_to_h_congestion_assignment.ho_vty index 3ae5997..f94ad0e 100644 --- a/tests/handover/test_dyn_ts_amr_tch_f_to_h_congestion_assignment.ho_vty +++ b/tests/handover/test_dyn_ts_amr_tch_f_to_h_congestion_assignment.ho_vty @@ -12,10 +12,7 @@ set-ts-use trx 0 0 states * TCH/F TCH/F TCH/F TCH/F pdch pdch pdch # (there must be at leas one measurement report on each lchan for congestion check to work) -meas-rep lchan 0 0 1 0 rxlev 40 rxqual 0 ta 0 neighbors 30 -meas-rep lchan 0 0 2 0 rxlev 40 rxqual 0 ta 0 neighbors 30 -meas-rep lchan 0 0 3 0 rxlev 40 rxqual 0 ta 0 neighbors 30 -meas-rep lchan 0 0 4 0 rxlev 40 rxqual 0 ta 0 neighbors 30 +meas-rep lchan * * * * rxlev 40 rxqual 0 ta 0 neighbors 30 congestion-check expect-no-chan diff --git a/tests/handover/test_dyn_ts_favor_moving_half_used_tch_h.ho_vty b/tests/handover/test_dyn_ts_favor_moving_half_used_tch_h.ho_vty index 794bbef..3d1b009 100644 --- a/tests/handover/test_dyn_ts_favor_moving_half_used_tch_h.ho_vty +++ b/tests/handover/test_dyn_ts_favor_moving_half_used_tch_h.ho_vty @@ -8,10 +8,7 @@ # Test with identical rxlev across lchans (trivial and unrealistic) set-ts-use trx 0 0 states * pdch TCH/HH TCH/H- TCH/HH pdch - - -meas-rep lchan 0 0 2 1 rxlev 30 rxqual 0 ta 0 -meas-rep lchan 0 0 3 0 rxlev 30 rxqual 0 ta 0 -meas-rep lchan 0 0 4 0 rxlev 30 rxqual 0 ta 0 -meas-rep lchan 0 0 4 1 rxlev 30 rxqual 0 ta 0 +meas-rep lchan * * * * rxlev 30 rxqual 0 ta 0 congestion-check expect-ho from lchan 0 0 3 0 to lchan 0 0 1 0 expect-ts-use trx 0 0 states * TCH/F TCH/HH pdch TCH/HH pdch - - diff --git a/tests/handover/test_no_congestion.ho_vty b/tests/handover/test_no_congestion.ho_vty index 651d648..c8328c6 100644 --- a/tests/handover/test_no_congestion.ho_vty +++ b/tests/handover/test_no_congestion.ho_vty @@ -8,17 +8,7 @@ handover2 min-free-slots tch/h 2 set-ts-use trx 0 0 states * TCH/F TCH/F - - TCH/HH - - set-ts-use trx 1 0 states * TCH/F - - - TCH/H- - - -meas-rep lchan 0 0 1 0 rxlev 30 rxqual 0 ta 0 neighbors 20 1 20 -expect-no-chan -meas-rep lchan 0 0 2 0 rxlev 30 rxqual 0 ta 0 neighbors 20 1 20 -expect-no-chan -meas-rep lchan 0 0 5 0 rxlev 30 rxqual 0 ta 0 neighbors 20 1 20 -expect-no-chan -meas-rep lchan 0 0 5 1 rxlev 30 rxqual 0 ta 0 neighbors 20 1 20 -expect-no-chan -meas-rep lchan 1 0 1 0 rxlev 30 rxqual 0 ta 0 neighbors 20 1 20 -expect-no-chan -meas-rep lchan 1 0 5 0 rxlev 30 rxqual 0 ta 0 neighbors 20 1 20 +meas-rep lchan * * * * rxlev 30 rxqual 0 ta 0 neighbors 20 1 20 expect-no-chan congestion-check expect-no-chan -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22082 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I441f92348508d45e1069a3dfa1ff3842dbba97d6 Gerrit-Change-Number: 22082 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 08:05:23 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 13 Jan 2021 08:05:23 +0000 Subject: Change in osmo-bsc[master]: handover_test: show bug: add test_balance_congestion_tchf_tchh.ho_vty In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22083 ) Change subject: handover_test: show bug: add test_balance_congestion_tchf_tchh.ho_vty ...................................................................... handover_test: show bug: add test_balance_congestion_tchf_tchh.ho_vty Change-Id: I78fd146fb9b9f9e5d61234065abecbedb9f30a3a --- M tests/handover/handover_tests.ok A tests/handover/test_balance_congestion_tchf_tchh.ho_vty 2 files changed, 54 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve diff --git a/tests/handover/handover_tests.ok b/tests/handover/handover_tests.ok index 521a0fe..95442a3 100644 --- a/tests/handover/handover_tests.ok +++ b/tests/handover/handover_tests.ok @@ -8,6 +8,7 @@ pass test_amr_tch_h_to_f_congestion_two_cells.ho_vty pass test_balance_congestion.ho_vty pass test_balance_congestion_2.ho_vty +pass test_balance_congestion_tchf_tchh.ho_vty pass test_congestion.ho_vty pass test_congestion_favor_best_target_rxlev.ho_vty pass test_congestion_intra_vs_inter_cell.ho_vty diff --git a/tests/handover/test_balance_congestion_tchf_tchh.ho_vty b/tests/handover/test_balance_congestion_tchf_tchh.ho_vty new file mode 100644 index 0000000..d7b3cf5 --- /dev/null +++ b/tests/handover/test_balance_congestion_tchf_tchh.ho_vty @@ -0,0 +1,53 @@ +# Balance congestion across cells and across TCH/F and TCH/H. + +network + handover2 min-free-slots tch/f 3 + handover2 min-free-slots tch/h 3 + +create-bts trx-count 1 timeslots c+s4 TCH/F TCH/F TCH/F TCH/F TCH/H TCH/H TCH/H + +# both TCH/H and TCH/F have one lchan above congestion, nothing happens +set-ts-use trx 0 0 states * TCH/F TCH/F - - TCH/HH TCH/HH - +meas-rep lchan * * * * rxlev 10 rxqual 0 ta 0 +congestion-check +expect-no-chan + +# TCH/F = +1, TCH/H = +2 above congestion. Moving a TCH/H to TCH/F would just reverse the situation to F=+2 H=+1. Nothing happens. +set-ts-use trx 0 0 states * TCH/F TCH/F - - TCH/HH TCH/HH TCH/H- +meas-rep lchan * * * * rxlev 10 rxqual 0 ta 0 +congestion-check +expect-no-chan + +# F=+1 H=+3. Balance to F=+2 H=+2 +set-ts-use trx 0 0 states * TCH/F TCH/F - - TCH/HH TCH/HH TCH/HH +meas-rep lchan * * * * rxlev 10 rxqual 0 ta 0 +congestion-check +expect-ho from lchan 0 0 5 0 to lchan 0 0 3 0 + +# Now the exact same thing, just with different min-free-slots settings for +# tch/f vs tch/h + +network + handover2 min-free-slots tch/f 3 + handover2 min-free-slots tch/h 5 + +# both TCH/H and TCH/F have one lchan above congestion, nothing happens +set-ts-use trx 0 0 states * TCH/F TCH/F - - TCH/HH - - +meas-rep lchan * * * * rxlev 20 rxqual 0 ta 0 +congestion-check +# FAIL: should be the same as above, but seeing a handover from F to H +expect-ho from lchan 0 0 1 0 to lchan 0 0 6 0 + +# TCH/F = +1, TCH/H = +2 above congestion. Moving a TCH/H to TCH/F would just +# reverse the situation to F=+2 H=+1. Nothing happens. +set-ts-use trx 0 0 states * TCH/F TCH/F - - TCH/HH TCH/H- - +meas-rep lchan * * * * rxlev 20 rxqual 0 ta 0 +congestion-check +expect-no-chan + +# F=+1 H=+3. Balance to F=+2 H=+2 +set-ts-use trx 0 0 states * TCH/F TCH/F - - TCH/HH TCH/HH - +meas-rep lchan * * * * rxlev 20 rxqual 0 ta 0 +congestion-check +# FAIL: should be the same as above, from lchan 0 0 5 0 to lchan 0 0 3 0, but no handover happens +expect-no-chan -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22083 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I78fd146fb9b9f9e5d61234065abecbedb9f30a3a Gerrit-Change-Number: 22083 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 08:05:24 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 13 Jan 2021 08:05:24 +0000 Subject: Change in osmo-bsc[master]: hodec2: fix congestion oscillation bug In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21989 ) Change subject: hodec2: fix congestion oscillation bug ...................................................................... hodec2: fix congestion oscillation bug When evenly distributing congestion across cells, count the number of occupied lchans surpassing congestion, and not the overall number of free lchans -- which disregards congestion thresholds. Fix the bugs shown by test_congestion_no_oscillation.ho_vty test_balance_congestion_tchf_tchh.ho_vty This implements a simple calculation for congestion load by counting lchans in use above congestion. An improvement of this calculation using percent follows in I55234c6c99eb02ceee52be0d7388bea14304930f. Related: SYS#5259 Change-Id: Icb373dc6bfc9819446db5e96f71921781fe2026d --- M src/osmo-bsc/handover_decision_2.c M tests/handover/test_balance_congestion_tchf_tchh.ho_vty M tests/handover/test_congestion_no_oscillation.ho_vty M tests/handover/test_congestion_no_oscillation2.ho_vty 4 files changed, 14 insertions(+), 36 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve diff --git a/src/osmo-bsc/handover_decision_2.c b/src/osmo-bsc/handover_decision_2.c index b296bd1..c265f5f 100644 --- a/src/osmo-bsc/handover_decision_2.c +++ b/src/osmo-bsc/handover_decision_2.c @@ -443,6 +443,7 @@ { uint8_t requirement = 0; unsigned int penalty_time; + int current_overbooked; c->requirements = 0; /* Requirement A */ @@ -625,14 +626,17 @@ /* Requirement C */ - /* the nr of free timeslots of the target cell must be >= the - * free slots of the current cell _after_ handover/assignment */ + /* the nr of lchans surpassing congestion on the target cell must be <= the lchans surpassing congestion on the + * current cell _after_ handover/assignment */ + current_overbooked = c->current.min_free_tch - c->current.free_tch; if (requirement & REQUIREMENT_A_TCHF) { - if (c->target.free_tchf - 1 >= c->current.free_tch + 1) + int target_overbooked = c->target.min_free_tchf - c->target.free_tchf; + if (target_overbooked + 1 <= current_overbooked - 1) requirement |= REQUIREMENT_C_TCHF; } if (requirement & REQUIREMENT_A_TCHH) { - if (c->target.free_tchh - 1 >= c->current.free_tch + 1) + int target_overbooked = c->target.min_free_tchh - c->target.free_tchh; + if (target_overbooked + 1 <= current_overbooked - 1) requirement |= REQUIREMENT_C_TCHH; } @@ -1743,8 +1747,7 @@ goto exit; } - LOGPHOBTS(bts, LOGL_DEBUG, "Did not find a best candidate that fulfills requirement C" - " (omitting change from AHS to AFS)\n"); + LOGPHOBTS(bts, LOGL_DEBUG, "Did not find a best candidate that fulfills requirement C\n"); exit: /* free array */ diff --git a/tests/handover/test_balance_congestion_tchf_tchh.ho_vty b/tests/handover/test_balance_congestion_tchf_tchh.ho_vty index d7b3cf5..7f9039f 100644 --- a/tests/handover/test_balance_congestion_tchf_tchh.ho_vty +++ b/tests/handover/test_balance_congestion_tchf_tchh.ho_vty @@ -35,8 +35,7 @@ set-ts-use trx 0 0 states * TCH/F TCH/F - - TCH/HH - - meas-rep lchan * * * * rxlev 20 rxqual 0 ta 0 congestion-check -# FAIL: should be the same as above, but seeing a handover from F to H -expect-ho from lchan 0 0 1 0 to lchan 0 0 6 0 +expect-no-chan # TCH/F = +1, TCH/H = +2 above congestion. Moving a TCH/H to TCH/F would just # reverse the situation to F=+2 H=+1. Nothing happens. @@ -49,5 +48,4 @@ set-ts-use trx 0 0 states * TCH/F TCH/F - - TCH/HH TCH/HH - meas-rep lchan * * * * rxlev 20 rxqual 0 ta 0 congestion-check -# FAIL: should be the same as above, from lchan 0 0 5 0 to lchan 0 0 3 0, but no handover happens -expect-no-chan +expect-ho from lchan 0 0 5 0 to lchan 0 0 3 0 diff --git a/tests/handover/test_congestion_no_oscillation.ho_vty b/tests/handover/test_congestion_no_oscillation.ho_vty index abfaef7..a830cbe 100644 --- a/tests/handover/test_congestion_no_oscillation.ho_vty +++ b/tests/handover/test_congestion_no_oscillation.ho_vty @@ -1,6 +1,5 @@ # Do not oscillate handover from TCH/F to TCH/H on a neighbor due to congestion, # and then back to the original cell due to RXLEV. -# Currently this test script shows the undesired oscillation. create-bts trx-count 1 timeslots c+s4 TCH/F TCH/F TCH/F TCH/F TCH/F TCH/F PDCH network @@ -25,24 +24,5 @@ # measurements continue to be the same meas-rep lchan 1 0 5 0 rxlev 20 rxqual 0 ta 0 neighbors 40 -# FAIL: RXLEV oscillation back to bts 0 -expect-ho from lchan 1 0 5 0 to lchan 0 0 2 0 -expect-ts-use trx 0 0 states * TCH/F TCH/F - - - - * -expect-ts-use trx 1 0 states * TCH/F TCH/F TCH/F TCH/F - - * -meas-rep lchan 0 0 2 0 rxlev 40 rxqual 0 ta 0 neighbors 20 +# despite the better RXLEV, congestion prevents oscillation back to bts 0 expect-no-chan - -# FAIL: congestion oscillation again to bts 1 -congestion-check -expect-ho from lchan 0 0 2 0 to lchan 1 0 5 0 -expect-ts-use trx 0 0 states * TCH/F - - - - - * -expect-ts-use trx 1 0 states * TCH/F TCH/F TCH/F TCH/F TCH/H- - * - -# FAIL: RXLEV oscillation back to bts 0 -meas-rep lchan 1 0 5 0 rxlev 20 rxqual 0 ta 0 neighbors 40 -expect-ho from lchan 1 0 5 0 to lchan 0 0 2 0 -meas-rep lchan 0 0 2 0 rxlev 40 rxqual 0 ta 0 neighbors 20 - -# FAIL: congestion oscillation again to bts 1 -congestion-check -expect-ho from lchan 0 0 2 0 to lchan 1 0 5 0 diff --git a/tests/handover/test_congestion_no_oscillation2.ho_vty b/tests/handover/test_congestion_no_oscillation2.ho_vty index aee731d..44c4176 100644 --- a/tests/handover/test_congestion_no_oscillation2.ho_vty +++ b/tests/handover/test_congestion_no_oscillation2.ho_vty @@ -1,8 +1,5 @@ -# Almost identical to test_amr_oscillation.ho_vty, this has just two more TCH/H slots in BTS 1, and does not trigger the -# oscillation bug. The number of free TCH/H in BTS 1 should be unrelated to the congestion status of BTS 0, which -# illustrates that the even distribution of congestion is fundamentally flawed. -# This test script shows the desired behavior, though by common sense there should be no reason why we see the bug in -# test_amr_oscillation.ho_vty and not here. +# Almost identical to test_amr_oscillation.ho_vty, this has just two more TCH/H slots in BTS 1, and did not trigger the +# oscillation bug (which has since been fixed, so that both tests behave identically now). create-bts trx-count 1 timeslots c+s4 TCH/F TCH/F TCH/F TCH/F TCH/F TCH/F PDCH network -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21989 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Icb373dc6bfc9819446db5e96f71921781fe2026d Gerrit-Change-Number: 21989 Gerrit-PatchSet: 7 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 08:05:24 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 13 Jan 2021 08:05:24 +0000 Subject: Change in osmo-bsc[master]: handover_test: add test_balance_congestion_by_percentage.ho_vty In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22084 ) Change subject: handover_test: add test_balance_congestion_by_percentage.ho_vty ...................................................................... handover_test: add test_balance_congestion_by_percentage.ho_vty Considering feedback by a customer, we prefer congestion balancing by using percentage of overload instead of number of lchans of overload. This test is intended to illustrate the change in behavior. Change-Id: I314915718f66aec50e8dcf94569b0a52ca34b96f --- M tests/handover/handover_tests.ok A tests/handover/test_balance_congestion_by_percentage.ho_vty 2 files changed, 35 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve diff --git a/tests/handover/handover_tests.ok b/tests/handover/handover_tests.ok index 95442a3..d0c1c00 100644 --- a/tests/handover/handover_tests.ok +++ b/tests/handover/handover_tests.ok @@ -8,6 +8,7 @@ pass test_amr_tch_h_to_f_congestion_two_cells.ho_vty pass test_balance_congestion.ho_vty pass test_balance_congestion_2.ho_vty +pass test_balance_congestion_by_percentage.ho_vty pass test_balance_congestion_tchf_tchh.ho_vty pass test_congestion.ho_vty pass test_congestion_favor_best_target_rxlev.ho_vty diff --git a/tests/handover/test_balance_congestion_by_percentage.ho_vty b/tests/handover/test_balance_congestion_by_percentage.ho_vty new file mode 100644 index 0000000..e00636e --- /dev/null +++ b/tests/handover/test_balance_congestion_by_percentage.ho_vty @@ -0,0 +1,34 @@ +# To balance congestion, use the remaining free percentage instead of free lchan counts. +# +# Cell A has min-free-slots 2, and has all slots occupied. +# Cell B has min-free-slots 4, and has 2 slots remaining free. +# +# If we count congested lchans: cell A has a congestion count of 2: two more lchans in use than "allowed". +# If we move one lchan over to cell B, it ends up with a congestion count of 3, which is worse than 2. +# So when counting lchans, we decide that cell A should remain full. +# +# Instead, when comparing percentage of remaining lchans, we would see that cell A is loaded 100% above congestion (2 of +# 2 remaining lchans in use), but when moving one lchan to cell B, it would only be 75% loaded above its treshold (3 of +# 4 remaining lchans in use). So a percentage comparison would cause a handover to cell B. +# +# This test currently expects the behavior of counting lchans; a patch will change to use percentage, which should +# reflect in this test. + +create-bts trx-count 1 timeslots c+s4 TCH/F TCH/F TCH/F TCH/F TCH/F TCH/F PDCH +create-bts trx-count 1 timeslots c+s4 TCH/F TCH/F TCH/F TCH/F TCH/F TCH/F PDCH + +network + bts 0 + handover2 min-free-slots tch/f 2 + bts 1 + handover2 min-free-slots tch/f 4 + +set-ts-use trx 0 0 states * TCH/F TCH/F TCH/F TCH/F TCH/F TCH/F * +set-ts-use trx 1 0 states * TCH/F TCH/F TCH/F TCH/F - - * + +meas-rep lchan * * * * rxlev 40 rxqual 0 ta 0 neighbors 30 +expect-no-chan + +# bts 0 is full, but by counting lchans above congestion, it should remain full. +congestion-check +expect-no-chan -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22084 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I314915718f66aec50e8dcf94569b0a52ca34b96f Gerrit-Change-Number: 22084 Gerrit-PatchSet: 5 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 08:05:47 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 13 Jan 2021 08:05:47 +0000 Subject: Change in osmo-bsc[master]: hodec2: to balance congestion, use overload percent In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22085 ) Change subject: hodec2: to balance congestion, use overload percent ...................................................................... Patch Set 6: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22085 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I55234c6c99eb02ceee52be0d7388bea14304930f Gerrit-Change-Number: 22085 Gerrit-PatchSet: 6 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 13 Jan 2021 08:05:47 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 09:42:26 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 13 Jan 2021 09:42:26 +0000 Subject: Change in osmo-cbc[master]: add link to upstream bug related to custom malloc/free References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22124 ) Change subject: add link to upstream bug related to custom malloc/free ...................................................................... add link to upstream bug related to custom malloc/free Change-Id: If58d307bbdade5d4d7c5e39ada8c14c052d215a9 --- M src/rest_api.c 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-cbc refs/changes/24/22124/1 diff --git a/src/rest_api.c b/src/rest_api.c index daebc73..9473a01 100644 --- a/src/rest_api.c +++ b/src/rest_api.c @@ -682,6 +682,7 @@ int i; #ifdef ULFIUS_MALLOC_NOT_BROKEN + /* See https://github.com/babelouest/ulfius/issues/63 */ g_tall_rest = ctx; o_set_alloc_funcs(my_o_malloc, my_o_realloc, my_o_free); #endif -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22124 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: If58d307bbdade5d4d7c5e39ada8c14c052d215a9 Gerrit-Change-Number: 22124 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 09:52:25 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 13 Jan 2021 09:52:25 +0000 Subject: Change in osmo-bts[master]: power_control: print current RxLev and lower/upper thresholds In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/22117 ) Change subject: power_control: print current RxLev and lower/upper thresholds ...................................................................... Patch Set 1: > Patch Set 1: > > I guess I'm too used to the old messages, I don't think it's much of an improvement. Let's sse what others say, I have no strong opinion either way. I am not changing MS power control loop, only BS power control loop. I find it useful to see RxLev together with the thresholds, rather than the "target" value. Given that it was merged quite recently, I don't think you could get used to these new messages ;) But yeah, let's see. The "others" is most likely only Pau. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22117 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I5f8c987054b2b01acdb9f525d06ca15bbc577070 Gerrit-Change-Number: 22117 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Wed, 13 Jan 2021 09:52:25 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 09:52:58 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 13 Jan 2021 09:52:58 +0000 Subject: Change in osmo-bts[master]: power_control: BS power shall not be reduced on C0 In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/22116 ) Change subject: power_control: BS power shall not be reduced on C0 ...................................................................... power_control: BS power shall not be reduced on C0 It does not make sense to trigger the BS power control loop on C0, as it's only allowed to reduce power on additional transceivers. Change-Id: I4fdfe097ae6f9edde5f39ed4da8a559a14b3b38f Related: SYS#4918 --- M src/common/l1sap.c 1 file changed, 2 insertions(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/common/l1sap.c b/src/common/l1sap.c index 3f601fd..439db03 100644 --- a/src/common/l1sap.c +++ b/src/common/l1sap.c @@ -1566,7 +1566,8 @@ lchan->meas.flags |= LC_UL_M_F_L1_VALID; lchan_ms_pwr_ctrl(lchan, data[0] & 0x1f, data_ind->rssi); - lchan_bs_pwr_ctrl(lchan, (const struct gsm48_hdr *) &data[5]); + if (trx->bts->c0 != trx) /* BS Power Control shall not be used on C0 */ + lchan_bs_pwr_ctrl(lchan, (const struct gsm48_hdr *) &data[5]); } else le = &lchan->lapdm_ch.lapdm_dcch; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22116 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I4fdfe097ae6f9edde5f39ed4da8a559a14b3b38f Gerrit-Change-Number: 22116 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 09:54:58 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 13 Jan 2021 09:54:58 +0000 Subject: Change in osmo-e1-hardware[master]: doc/manuals: support OSMO_GSM_MANUALS_DIR References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/22125 ) Change subject: doc/manuals: support OSMO_GSM_MANUALS_DIR ...................................................................... doc/manuals: support OSMO_GSM_MANUALS_DIR Instead of only relying on pkg-config, support the environment variable and fallback path like in other Osmocom repositories too. The same script is used in other Osmocom repositories where manuals are built without autotools. Related: OS#4912 Change-Id: Iecfbfc2a7588c316642aa37be637cf3c02f76ac4 --- M doc/manuals/Makefile A doc/manuals/osmo-gsm-manuals-dir.sh 2 files changed, 27 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1-hardware refs/changes/25/22125/1 diff --git a/doc/manuals/Makefile b/doc/manuals/Makefile index 1bd4b6e..d9a613d 100644 --- a/doc/manuals/Makefile +++ b/doc/manuals/Makefile @@ -1,4 +1,4 @@ -OSMO_GSM_MANUALS_DIR:=$(shell pkg-config osmo-gsm-manuals --variable=osmogsmmanualsdir) +OSMO_GSM_MANUALS_DIR:=$(shell ./osmo-gsm-manuals-dir.sh) sdcdir = . diff --git a/doc/manuals/osmo-gsm-manuals-dir.sh b/doc/manuals/osmo-gsm-manuals-dir.sh new file mode 100755 index 0000000..f132eaa --- /dev/null +++ b/doc/manuals/osmo-gsm-manuals-dir.sh @@ -0,0 +1,26 @@ +#!/bin/sh -e +# Find OSMO_GSM_MANUALS_DIR and print it to stdout. Print where it was taken from to stderr. + +# Find it in env, pkg-conf and ../../../osmo-gsm-manuals +RET="$OSMO_GSM_MANUALS_DIR" +if [ -n "$RET" ]; then + RET="$(realpath $RET)" + echo "OSMO_GSM_MANUALS_DIR: $RET (from env)" >&2 +else + RET="$(pkg-config osmo-gsm-manuals --variable=osmogsmmanualsdir 2>/dev/null || true)" + if [ -n "$RET" ]; then + echo "OSMO_GSM_MANUALS_DIR: $RET (from pkg-conf)" >&2 + else + RET="$(realpath $(realpath $(dirname $0))/../../../osmo-gsm-manuals)" + echo "OSMO_GSM_MANUALS_DIR: $RET (fallback)" >&2 + fi +fi + +# Print the result or error message +if [ -d "$RET" ]; then + echo "$RET" +else + echo "ERROR: OSMO_GSM_MANUALS_DIR does not exist!" >&2 + echo "Install osmo-gsm-manuals or set OSMO_GSM_MANUALS_DIR." >&2 + exit 1 +fi -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/22125 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1-hardware Gerrit-Branch: master Gerrit-Change-Id: Iecfbfc2a7588c316642aa37be637cf3c02f76ac4 Gerrit-Change-Number: 22125 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 09:54:59 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 13 Jan 2021 09:54:59 +0000 Subject: Change in osmo-e1-hardware[master]: gitignore: add files from generating manuals References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/22126 ) Change subject: gitignore: add files from generating manuals ...................................................................... gitignore: add files from generating manuals Change-Id: Ibd0089978a7083fb19638d70358c8ef7d589da9c --- A .gitignore 1 file changed, 3 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1-hardware refs/changes/26/22126/1 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..eb3a5e5 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +/doc/manuals/build +/doc/manuals/common +/doc/manuals/*.pdf -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/22126 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1-hardware Gerrit-Branch: master Gerrit-Change-Id: Ibd0089978a7083fb19638d70358c8ef7d589da9c Gerrit-Change-Number: 22126 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 09:54:59 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 13 Jan 2021 09:54:59 +0000 Subject: Change in osmo-e1-hardware[master]: doc/manuals/Makefile: fix typo in 'srcdir' References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/22127 ) Change subject: doc/manuals/Makefile: fix typo in 'srcdir' ...................................................................... doc/manuals/Makefile: fix typo in 'srcdir' Prevent the following error (generating manuals seemed to work fine regardless): realpath: missing operand Try 'realpath --help' for more information. make: Nothing to be done for 'all'. Change-Id: I72a62b86cba0dfd710f7e1c4c01a3c10710128d8 --- M doc/manuals/Makefile 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1-hardware refs/changes/27/22127/1 diff --git a/doc/manuals/Makefile b/doc/manuals/Makefile index d9a613d..2f87b57 100644 --- a/doc/manuals/Makefile +++ b/doc/manuals/Makefile @@ -1,6 +1,6 @@ OSMO_GSM_MANUALS_DIR:=$(shell ./osmo-gsm-manuals-dir.sh) -sdcdir = . +srcdir = . ASCIIDOC = icE1usb-usermanual.adoc include $(OSMO_GSM_MANUALS_DIR)/build/Makefile.asciidoc.inc -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/22127 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1-hardware Gerrit-Branch: master Gerrit-Change-Id: I72a62b86cba0dfd710f7e1c4c01a3c10710128d8 Gerrit-Change-Number: 22127 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 09:56:05 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 13 Jan 2021 09:56:05 +0000 Subject: Change in osmo-e1-hardware[master]: doc/manuals: support OSMO_GSM_MANUALS_DIR In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/22125 ) Change subject: doc/manuals: support OSMO_GSM_MANUALS_DIR ...................................................................... Patch Set 1: This should fix master-osmo-e1-hardware: https://jenkins.osmocom.org/jenkins/job/master-osmo-e1-hardware/a1=default,a2=default,a3=default,a4=default,label=osmocom-master-debian9/49/console -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/22125 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1-hardware Gerrit-Branch: master Gerrit-Change-Id: Iecfbfc2a7588c316642aa37be637cf3c02f76ac4 Gerrit-Change-Number: 22125 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Wed, 13 Jan 2021 09:56:05 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 10:11:52 2021 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Wed, 13 Jan 2021 10:11:52 +0000 Subject: Change in osmo-e1-hardware[master]: doc/manuals/Makefile: fix typo in 'srcdir' In-Reply-To: References: Message-ID: tnt has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/22127 ) Change subject: doc/manuals/Makefile: fix typo in 'srcdir' ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/22127 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1-hardware Gerrit-Branch: master Gerrit-Change-Id: I72a62b86cba0dfd710f7e1c4c01a3c10710128d8 Gerrit-Change-Number: 22127 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: tnt Gerrit-Comment-Date: Wed, 13 Jan 2021 10:11:52 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 10:13:23 2021 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Wed, 13 Jan 2021 10:13:23 +0000 Subject: Change in osmo-e1-hardware[master]: gitignore: add files from generating manuals In-Reply-To: References: Message-ID: tnt has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/22126 ) Change subject: gitignore: add files from generating manuals ...................................................................... Patch Set 1: Code-Review+1 I usually put the gitignore in the directory where the build products are (when they are not "global") but I guess it's fine. -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/22126 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1-hardware Gerrit-Branch: master Gerrit-Change-Id: Ibd0089978a7083fb19638d70358c8ef7d589da9c Gerrit-Change-Number: 22126 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: tnt Gerrit-Comment-Date: Wed, 13 Jan 2021 10:13:23 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 10:13:52 2021 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Wed, 13 Jan 2021 10:13:52 +0000 Subject: Change in osmo-e1-hardware[master]: doc/manuals: support OSMO_GSM_MANUALS_DIR In-Reply-To: References: Message-ID: tnt has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/22125 ) Change subject: doc/manuals: support OSMO_GSM_MANUALS_DIR ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/22125 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1-hardware Gerrit-Branch: master Gerrit-Change-Id: Iecfbfc2a7588c316642aa37be637cf3c02f76ac4 Gerrit-Change-Number: 22125 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: tnt Gerrit-Comment-Date: Wed, 13 Jan 2021 10:13:52 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 10:14:31 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 13 Jan 2021 10:14:31 +0000 Subject: Change in osmo-bsc[master]: bsc_vty: fix acch_repetition ber threshold strings In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22120 ) Change subject: bsc_vty: fix acch_repetition ber threshold strings ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22120 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I4c89ad130da328aba99663e5a2931a4007772bca Gerrit-Change-Number: 22120 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 13 Jan 2021 10:14:31 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 10:51:20 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 13 Jan 2021 10:51:20 +0000 Subject: Change in osmo-ci[master]: contrib/jenkins.sh: clone osmo-gsm-manuals too References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/22128 ) Change subject: contrib/jenkins.sh: clone osmo-gsm-manuals too ...................................................................... contrib/jenkins.sh: clone osmo-gsm-manuals too Make osmo-gsm-manuals.git available as ~/osmo-gsm-manuals, so it can be used by osmo-trx and osmo-bts (the only two projects building manuals, which are not running in docker as of writing) instead of cloning the repository in their contrib/jenkins.sh. A similar change to clone osmo-gsm-manuals in the debian-stretch-jenkins image used by all other jobs that build manuals, is done in docker-playground 7e4c8c6f1f798b9b8e57af97131ce3759528e0de. osmo-ci's contrib/jenkins.sh is called by the update-osmo-ci-on-slaves job. Related: OS#4912 Change-Id: I742fd929e39ca32d6034a30af75b6c8e5b47b233 --- M contrib/jenkins.sh 1 file changed, 13 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/28/22128/1 diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index 3ab942a..e93e802 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -1,14 +1,21 @@ #!/bin/sh set -e -x -cd ~/osmo-ci || (cd ~/ && git clone git://git.osmocom.org/osmo-ci && cd ~/osmo-ci) -git rev-parse HEAD -git status +# Clone repository to ~/, or update existing +# $1: name of osmocom project +clone_repo() { + cd ~/"$1" || (cd ~/ && git clone git://git.osmocom.org/"$1" && cd ~/"$1") + git rev-parse HEAD + git status -git fetch && git checkout -f -B master origin/master + git fetch && git checkout -f -B master origin/master -git rev-parse HEAD -git status + git rev-parse HEAD + git status +} + +clone_repo osmo-ci +clone_repo osmo-gsm-manuals if [ `uname` = "Linux" ] && [ "x${OSMO_CI_NO_DOCKER}" != "x1" ]; then scripts/osmo-ci-docker-rebuild.sh -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22128 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I742fd929e39ca32d6034a30af75b6c8e5b47b233 Gerrit-Change-Number: 22128 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 10:51:21 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 13 Jan 2021 10:51:21 +0000 Subject: Change in osmo-ci[master]: ansible: tasks/osmo-ci: clone osmo-gsm-manuals References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/22129 ) Change subject: ansible: tasks/osmo-ci: clone osmo-gsm-manuals ...................................................................... ansible: tasks/osmo-ci: clone osmo-gsm-manuals Perform the initial clone of osmo-gsm-manuals.git, just like osmo-ci.git. Related: OS#4912 Change-Id: I39a09a4297c7c78357b3d4db4ab89547fa08db59 --- M ansible/roles/osmocom-jenkins-slave/tasks/osmo-ci.yml 1 file changed, 7 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/29/22129/1 diff --git a/ansible/roles/osmocom-jenkins-slave/tasks/osmo-ci.yml b/ansible/roles/osmocom-jenkins-slave/tasks/osmo-ci.yml index d70d8b6..b26d6ab 100644 --- a/ansible/roles/osmocom-jenkins-slave/tasks/osmo-ci.yml +++ b/ansible/roles/osmocom-jenkins-slave/tasks/osmo-ci.yml @@ -11,6 +11,13 @@ repo: "https://git.osmocom.org/osmo-ci" dest: "/home/{{ jenkins_user }}/osmo-ci" +- name: deploy osmo-gsm-manuals to home directory + become: yes + become_user: "{{ jenkins_user }}" + git: + repo: "https://git.osmocom.org/osmo-gsm-manuals" + dest: "/home/{{ jenkins_user }}/osmo-gsm-manuals" + - name: rebuild osmocom docker images for jenkins build tests become: yes become_user: "{{ jenkins_user }}" -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22129 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I39a09a4297c7c78357b3d4db4ab89547fa08db59 Gerrit-Change-Number: 22129 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 10:51:21 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 13 Jan 2021 10:51:21 +0000 Subject: Change in osmo-ci[master]: jobs/update-osmo-ci-on-slaves: add manuals trigger References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/22130 ) Change subject: jobs/update-osmo-ci-on-slaves: add manuals trigger ...................................................................... jobs/update-osmo-ci-on-slaves: add manuals trigger Add a new job, that triggers update-osmo-ci-on-slaves on changes in osmo-gsm-manuals.git master. Related: OS#4912 Change-Id: I104525826068b016b5e06ea52567da4d7beaf7a4 --- M jobs/update-osmo-ci-on-slaves.yml 1 file changed, 24 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/30/22130/1 diff --git a/jobs/update-osmo-ci-on-slaves.yml b/jobs/update-osmo-ci-on-slaves.yml index 3ff4fa4..27c2cc8 100644 --- a/jobs/update-osmo-ci-on-slaves.yml +++ b/jobs/update-osmo-ci-on-slaves.yml @@ -65,5 +65,29 @@ - trigger: project: "update-osmo-ci-on-slaves" +# Trigger from osmo-gsm-manuals.git too +- job: + name: update-osmo-ci-on-slaves-manuals + description: | + Trigger update-osmo-ci-on-slaves + on changes in osmo-gsm-manuals.git. This makes sure we have the latest version of osmo-gsm-manuals in the docker + containers and on the build slaves, so we use that when building projects with manuals. + node: osmocom-master-debian9 + scm: + - git: + url: git://git.osmocom.org/osmo-gsm-manuals + git-config-name: 'Jenkins Builder' + git-config-email: 'jenkins at osmocom.org' + skip-tag: true + branches: + - 'origin/master' + triggers: + - pollscm: + cron: "H/5 * * * *" + ignore-post-commit-hooks: false + publishers: + - trigger: + project: "update-osmo-ci-on-slaves" + # vim: expandtab tabstop=2 shiftwidth=2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22130 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I104525826068b016b5e06ea52567da4d7beaf7a4 Gerrit-Change-Number: 22130 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 10:51:21 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 13 Jan 2021 10:51:21 +0000 Subject: Change in osmo-ci[master]: jobs: update OSMO_GSM_MANUALS_DIR References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/22131 ) Change subject: jobs: update OSMO_GSM_MANUALS_DIR ...................................................................... jobs: update OSMO_GSM_MANUALS_DIR Use new location inside / outside docker, where the repository was cloned already. So it does not need to be cloned during the job. Roll out: make sure that the docker images are already built! (or let me merge it) Related: OS#4912 Depends: docker-playground Id402e0ea372b5ca8a6c8f6f5beb190544c888207 Change-Id: Ibe91a613162687589e006cba99193606fb8a3eb9 --- M jobs/gerrit-verifications.yml M jobs/master-builds.yml 2 files changed, 9 insertions(+), 9 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/31/22131/1 diff --git a/jobs/gerrit-verifications.yml b/jobs/gerrit-verifications.yml index fbefbdb..99bfcce 100644 --- a/jobs/gerrit-verifications.yml +++ b/jobs/gerrit-verifications.yml @@ -34,7 +34,7 @@ -e JOB_NAME="$JOB_NAME" \ -e MAKE=make \ -e OSMOPY_DEBUG_TCP_SOCKETS="1" \ - -e OSMO_GSM_MANUALS_DIR="/build/deps/osmo-gsm-manuals" \ + -e OSMO_GSM_MANUALS_DIR="/opt/osmo-gsm-manuals" \ -e PARALLEL_MAKE="$PARALLEL_MAKE" \ -e WITH_MANUALS="1" \ -w /build -i -u build \ @@ -113,7 +113,7 @@ concurrent: false cmd: | export ASCIIDOC_WARNINGS_CHECK="1" - export OSMO_GSM_MANUALS_DIR="$PWD/deps/osmo-gsm-manuals" + export OSMO_GSM_MANUALS_DIR="$HOME/osmo-gsm-manuals" {timeout_cmd} ./contrib/jenkins_bts_model.sh "$BTS_MODEL" - osmo_dia2gsup: @@ -133,7 +133,7 @@ -e JOB_NAME="$JOB_NAME" \ -e MAKE=make \ -e OSMOPY_DEBUG_TCP_SOCKETS="1" \ - -e OSMO_GSM_MANUALS_DIR="/build/deps/osmo-gsm-manuals" \ + -e OSMO_GSM_MANUALS_DIR="/opt/osmo-gsm-manuals" \ -e PARALLEL_MAKE="$PARALLEL_MAKE" \ -e WITH_MANUALS="1" \ -w /build -i -u build \ @@ -247,7 +247,7 @@ (INSTR == "--with-neon-vfpv4" && WITH_MANUALS == "0" && label == "rpi4-deb9build-ansible") cmd: | export ASCIIDOC_WARNINGS_CHECK=1 - export OSMO_GSM_MANUALS_DIR="$PWD/deps/osmo-gsm-manuals" + export OSMO_GSM_MANUALS_DIR="$HOME/osmo-gsm-manuals" {timeout_cmd} ./contrib/jenkins.sh - osmocom-bb diff --git a/jobs/master-builds.yml b/jobs/master-builds.yml index c648a7b..4b0f621 100644 --- a/jobs/master-builds.yml +++ b/jobs/master-builds.yml @@ -33,7 +33,7 @@ -e JOB_NAME="$JOB_NAME" \ -e MAKE=make \ -e OSMOPY_DEBUG_TCP_SOCKETS="1" \ - -e OSMO_GSM_MANUALS_DIR="/build/deps/osmo-gsm-manuals" \ + -e OSMO_GSM_MANUALS_DIR="/opt/osmo-gsm-manuals" \ -e PARALLEL_MAKE="$PARALLEL_MAKE" \ -e PUBLISH="1" \ -e WITH_MANUALS="1" \ @@ -197,7 +197,7 @@ concurrent: false cmd: | export ASCIIDOC_WARNINGS_CHECK=1 - export OSMO_GSM_MANUALS_DIR="$PWD/deps/osmo-gsm-manuals" + export OSMO_GSM_MANUALS_DIR="$HOME/osmo-gsm-manuals" export PUBLISH=1 ./contrib/jenkins_bts_model.sh "$BTS_MODEL" @@ -213,7 +213,7 @@ -e JOB_NAME="$JOB_NAME" \ -e MAKE=make \ -e OSMOPY_DEBUG_TCP_SOCKETS="1" \ - -e OSMO_GSM_MANUALS_DIR="/build/deps/osmo-gsm-manuals" \ + -e OSMO_GSM_MANUALS_DIR="/opt/osmo-gsm-manuals" \ -e PARALLEL_MAKE="$PARALLEL_MAKE" \ -e PUBLISH="1" \ -e WITH_MANUALS="1" \ @@ -236,7 +236,7 @@ -e JOB_NAME="$JOB_NAME" \ -e MAKE=make \ -e OSMOPY_DEBUG_TCP_SOCKETS="1" \ - -e OSMO_GSM_MANUALS_DIR="/build/deps/osmo-gsm-manuals" \ + -e OSMO_GSM_MANUALS_DIR="/opt/osmo-gsm-manuals" \ -e PARALLEL_MAKE="$PARALLEL_MAKE" \ -e PUBLISH="1" \ -e WITH_MANUALS="1" \ @@ -361,7 +361,7 @@ (INSTR == "--with-neon-vfpv4" && WITH_MANUALS == "0" && label == "rpi4-deb9build-ansible") cmd: | export ASCIIDOC_WARNINGS_CHECK=1 - export OSMO_GSM_MANUALS_DIR="$PWD/deps/osmo-gsm-manuals" + export OSMO_GSM_MANUALS_DIR="$HOME/osmo-gsm-manuals" export PUBLISH=1 ./contrib/jenkins.sh -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22131 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ibe91a613162687589e006cba99193606fb8a3eb9 Gerrit-Change-Number: 22131 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 10:51:22 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 13 Jan 2021 10:51:22 +0000 Subject: Change in osmo-ci[master]: jobs: remove duplicate docker_run References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/22132 ) Change subject: jobs: remove duplicate docker_run ...................................................................... jobs: remove duplicate docker_run docker_run was duplicated for osmo-e1-hardware and no2bootloader, so the '-e PATH' line could be removed from the global docker_run. It was overriding the PATH, which then did not contain the path to the compiler toolchain anymore. This workaround is not needed anymore since de5aa17d6 ('jobs: don't overwrite PATH in "docker run"'). Related: OS#4911 Change-Id: I97a4add17d9fa1bd28ab0ceb054b9a8d948b6f86 --- M jobs/gerrit-verifications.yml M jobs/master-builds.yml 2 files changed, 0 insertions(+), 55 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/32/22132/1 diff --git a/jobs/gerrit-verifications.yml b/jobs/gerrit-verifications.yml index 99bfcce..5447495 100644 --- a/jobs/gerrit-verifications.yml +++ b/jobs/gerrit-verifications.yml @@ -122,23 +122,6 @@ cmd: '{docker_run} {docker_img_erlang} {timeout_cmd} /build/contrib/jenkins.sh' - osmo-e1-hardware: - docker_run: | - ARTIFACT_STORE="$HOME/jenkins_build_artifact_store" - mkdir -p "$ARTIFACT_STORE" - docker run --rm=true \ - --cap-add SYS_PTRACE \ - -e ARTIFACT_STORE=/artifact_store \ - -e ASCIIDOC_WARNINGS_CHECK="1" \ - -e HOME=/build \ - -e JOB_NAME="$JOB_NAME" \ - -e MAKE=make \ - -e OSMOPY_DEBUG_TCP_SOCKETS="1" \ - -e OSMO_GSM_MANUALS_DIR="/opt/osmo-gsm-manuals" \ - -e PARALLEL_MAKE="$PARALLEL_MAKE" \ - -e WITH_MANUALS="1" \ - -w /build -i -u build \ - -v "$PWD:/build" -v "$HOME/bin:/build_bin" \ - -v "$ARTIFACT_STORE:/artifact_store" \ docker_img: 'registry.osmocom.org/$USER/fpga-build' cmd: 'docker pull {docker_img} && {docker_run} {docker_img} {timeout_cmd} /build/contrib/jenkins.sh' diff --git a/jobs/master-builds.yml b/jobs/master-builds.yml index 4b0f621..cab841d 100644 --- a/jobs/master-builds.yml +++ b/jobs/master-builds.yml @@ -202,48 +202,10 @@ ./contrib/jenkins_bts_model.sh "$BTS_MODEL" - osmo-e1-hardware: - docker_run: | - ARTIFACT_STORE="$HOME/jenkins_build_artifact_store" - mkdir -p "$ARTIFACT_STORE" - docker run --rm=true \ - --cap-add SYS_PTRACE \ - -e ARTIFACT_STORE=/artifact_store \ - -e ASCIIDOC_WARNINGS_CHECK="1" \ - -e HOME=/build \ - -e JOB_NAME="$JOB_NAME" \ - -e MAKE=make \ - -e OSMOPY_DEBUG_TCP_SOCKETS="1" \ - -e OSMO_GSM_MANUALS_DIR="/opt/osmo-gsm-manuals" \ - -e PARALLEL_MAKE="$PARALLEL_MAKE" \ - -e PUBLISH="1" \ - -e WITH_MANUALS="1" \ - -w /build -i -u build \ - -v "$PWD:/build" -v "$HOME/bin:/build_bin" \ - -v "$ARTIFACT_STORE:/artifact_store" \ - -v "$HOME/.ssh:/home/build/.ssh:ro" \ docker_img: 'registry.osmocom.org/$USER/fpga-build' cmd: 'docker pull {docker_img} && {docker_run} {docker_img} /build/contrib/jenkins.sh --publish' - no2bootloader: git_base_url: github.com/no2fpga - docker_run: | - ARTIFACT_STORE="$HOME/jenkins_build_artifact_store" - mkdir -p "$ARTIFACT_STORE" - docker run --rm=true \ - --cap-add SYS_PTRACE \ - -e ARTIFACT_STORE=/artifact_store \ - -e ASCIIDOC_WARNINGS_CHECK="1" \ - -e HOME=/build \ - -e JOB_NAME="$JOB_NAME" \ - -e MAKE=make \ - -e OSMOPY_DEBUG_TCP_SOCKETS="1" \ - -e OSMO_GSM_MANUALS_DIR="/opt/osmo-gsm-manuals" \ - -e PARALLEL_MAKE="$PARALLEL_MAKE" \ - -e PUBLISH="1" \ - -e WITH_MANUALS="1" \ - -w /build -i -u build \ - -v "$PWD:/build" -v "$HOME/bin:/build_bin" \ - -v "$ARTIFACT_STORE:/artifact_store" \ - -v "$HOME/.ssh:/home/build/.ssh:ro" \ docker_img: 'registry.osmocom.org/$USER/fpga-build' cmd: 'docker pull {docker_img} && {docker_run} {docker_img} /build/contrib/jenkins.sh --publish' email: gerrit-log at lists.osmocom.org laforge at gnumonks.org kredon at sysmocom.de 246tnt at gmail.com -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22132 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I97a4add17d9fa1bd28ab0ceb054b9a8d948b6f86 Gerrit-Change-Number: 22132 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 10:51:25 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 13 Jan 2021 10:51:25 +0000 Subject: Change in docker-playground[master]: fpga-build: add osmo-ci References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/22133 ) Change subject: fpga-build: add osmo-ci ...................................................................... fpga-build: add osmo-ci Clone osmo-ci.git, and install all files from scripts/* to /usr/local/bin. Related: OS#4911 Change-Id: I3625d6f10e566101fb25963757da6827670ca41b --- M fpga-build/Dockerfile 1 file changed, 8 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/33/22133/1 diff --git a/fpga-build/Dockerfile b/fpga-build/Dockerfile index a9c3ceb..a8fde55 100644 --- a/fpga-build/Dockerfile +++ b/fpga-build/Dockerfile @@ -41,3 +41,11 @@ RUN echo "PATH=/opt/fpga-toolchain/bin:/opt/xpack-riscv-none-embed-gcc-${RISCV_TOOLCHAIN_VER}/bin:\$PATH" >> /etc/environment ENV PATH=/opt/fpga-toolchain/bin:/opt/xpack-riscv-none-embed-gcc-${RISCV_TOOLCHAIN_VER}/bin:${PATH} + +# Install osmo-ci.git/scripts to /usr/local/bin +ADD http://git.osmocom.org/osmo-ci/patch /tmp/osmo-ci-commit +RUN git clone https://git.osmocom.org/osmo-ci osmo-ci && \ + cp -v $(find osmo-ci/scripts \ + -maxdepth 1 \ + -type f ) \ + /usr/local/bin -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22133 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I3625d6f10e566101fb25963757da6827670ca41b Gerrit-Change-Number: 22133 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 10:51:25 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 13 Jan 2021 10:51:25 +0000 Subject: Change in docker-playground[master]: debian-stretch-jenkins, fpga-build: add gsm-manuals References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/22134 ) Change subject: debian-stretch-jenkins,fpga-build: add gsm-manuals ...................................................................... debian-stretch-jenkins,fpga-build: add gsm-manuals Prepare to remove 'build-deps.sh osmo-gsm-manuals' calls from all projects. Related: OS#4912 Change-Id: Id402e0ea372b5ca8a6c8f6f5beb190544c888207 --- M debian-stretch-jenkins/Dockerfile M fpga-build/Dockerfile 2 files changed, 8 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/34/22134/1 diff --git a/debian-stretch-jenkins/Dockerfile b/debian-stretch-jenkins/Dockerfile index 1f87445..54c72ed 100644 --- a/debian-stretch-jenkins/Dockerfile +++ b/debian-stretch-jenkins/Dockerfile @@ -156,6 +156,10 @@ -type f ) \ /usr/local/bin +# Install osmo-gsm-manuals to /opt/osmo-gsm-manuals +ADD http://git.osmocom.org/osmo-gsm-manuals/patch /tmp/osmo-gsm-manuals-commit +RUN git -C /opt clone https://git.osmocom.org/osmo-gsm-manuals + # Set a UTF-8 locale RUN sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen && \ dpkg-reconfigure --frontend=noninteractive locales && \ diff --git a/fpga-build/Dockerfile b/fpga-build/Dockerfile index a8fde55..f6d5155 100644 --- a/fpga-build/Dockerfile +++ b/fpga-build/Dockerfile @@ -49,3 +49,7 @@ -maxdepth 1 \ -type f ) \ /usr/local/bin + +# Install osmo-gsm-manuals to /opt/osmo-gsm-manuals +ADD http://git.osmocom.org/osmo-gsm-manuals/patch /tmp/osmo-gsm-manuals-commit +RUN git -C /opt clone https://git.osmocom.org/osmo-gsm-manuals -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22134 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Id402e0ea372b5ca8a6c8f6f5beb190544c888207 Gerrit-Change-Number: 22134 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 10:51:25 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 13 Jan 2021 10:51:25 +0000 Subject: Change in docker-playground[master]: Cosmetic: debian-stretch-jenkins, osmo-gsm-tester: fix indent References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/22135 ) Change subject: Cosmetic: debian-stretch-jenkins, osmo-gsm-tester: fix indent ...................................................................... Cosmetic: debian-stretch-jenkins, osmo-gsm-tester: fix indent Change-Id: Ia6b12b2c35f69eb0434797b29ee0ef676b032250 --- M debian-stretch-jenkins/Dockerfile M osmo-gsm-tester/Dockerfile 2 files changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/35/22135/1 diff --git a/debian-stretch-jenkins/Dockerfile b/debian-stretch-jenkins/Dockerfile index 54c72ed..5ace75c 100644 --- a/debian-stretch-jenkins/Dockerfile +++ b/debian-stretch-jenkins/Dockerfile @@ -154,7 +154,7 @@ cp -v $(find osmo-ci/scripts \ -maxdepth 1 \ -type f ) \ - /usr/local/bin + /usr/local/bin # Install osmo-gsm-manuals to /opt/osmo-gsm-manuals ADD http://git.osmocom.org/osmo-gsm-manuals/patch /tmp/osmo-gsm-manuals-commit diff --git a/osmo-gsm-tester/Dockerfile b/osmo-gsm-tester/Dockerfile index 0503fc6..9861e90 100644 --- a/osmo-gsm-tester/Dockerfile +++ b/osmo-gsm-tester/Dockerfile @@ -141,7 +141,7 @@ cp -v $(find osmo-ci/scripts \ -maxdepth 1 \ -type f ) \ - /usr/local/bin + /usr/local/bin # Copy several scripts and permission for osmo-gsm-tester: RUN mkdir -p /usr/local/bin/ && cp osmo-gsm-tester/utils/bin/* /usr/local/bin/ -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22135 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Ia6b12b2c35f69eb0434797b29ee0ef676b032250 Gerrit-Change-Number: 22135 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 10:51:26 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 13 Jan 2021 10:51:26 +0000 Subject: Change in docker-playground[master]: fpga-build: don't write path to /etc/environment References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/22136 ) Change subject: fpga-build: don't write path to /etc/environment ...................................................................... fpga-build: don't write path to /etc/environment PATH isn't overwritten anymore when jenkins runs docker in osmo-ci.git's master-builds.yml / gerrit-verifications.yml, therefore we can remove this hack. Change-Id: I5bff98f7af1a2f2de88c8d96d1e30de960057d01 --- M fpga-build/Dockerfile 1 file changed, 0 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/36/22136/1 diff --git a/fpga-build/Dockerfile b/fpga-build/Dockerfile index f6d5155..3a10238 100644 --- a/fpga-build/Dockerfile +++ b/fpga-build/Dockerfile @@ -37,9 +37,6 @@ RUN mkdir /build RUN chown build:build /build -# ENV doesn't worrk for other users -RUN echo "PATH=/opt/fpga-toolchain/bin:/opt/xpack-riscv-none-embed-gcc-${RISCV_TOOLCHAIN_VER}/bin:\$PATH" >> /etc/environment - ENV PATH=/opt/fpga-toolchain/bin:/opt/xpack-riscv-none-embed-gcc-${RISCV_TOOLCHAIN_VER}/bin:${PATH} # Install osmo-ci.git/scripts to /usr/local/bin -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22136 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I5bff98f7af1a2f2de88c8d96d1e30de960057d01 Gerrit-Change-Number: 22136 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 11:24:57 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 13 Jan 2021 11:24:57 +0000 Subject: Change in osmo-ci[master]: jobs/update-osmo-ci-on-slaves: add manuals trigger In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22130 ) Change subject: jobs/update-osmo-ci-on-slaves: add manuals trigger ...................................................................... Patch Set 1: I just noticed that registry-rebuild-upload-fpga-build needs to be triggered too. Setting to WIP. -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22130 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I104525826068b016b5e06ea52567da4d7beaf7a4 Gerrit-Change-Number: 22130 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Comment-Date: Wed, 13 Jan 2021 11:24:57 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 11:40:52 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 13 Jan 2021 11:40:52 +0000 Subject: Change in osmo-ci[master]: jobs/osmo-gsm-manuals-trigger: new job In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22130 ) Change subject: jobs/osmo-gsm-manuals-trigger: new job ...................................................................... Set Ready For Review -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22130 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I104525826068b016b5e06ea52567da4d7beaf7a4 Gerrit-Change-Number: 22130 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Comment-Date: Wed, 13 Jan 2021 11:40:52 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 12:44:53 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 13 Jan 2021 12:44:53 +0000 Subject: Change in osmo-sip-connector[master]: contrib/jenkins: don't build osmo-gsm-manuals References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sip-connector/+/22137 ) Change subject: contrib/jenkins: don't build osmo-gsm-manuals ...................................................................... contrib/jenkins: don't build osmo-gsm-manuals Related: OS#4912 Change-Id: Iae17e6d6f4242f98676dd3a1b01c419ac7288047 --- M contrib/jenkins.sh 1 file changed, 0 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sip-connector refs/changes/37/22137/1 diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index c2ddf5a..90234e7 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -28,7 +28,6 @@ # Additional configure options and depends CONFIG="" if [ "$WITH_MANUALS" = "1" ]; then - osmo-build-dep.sh osmo-gsm-manuals CONFIG="--enable-manuals" fi -- To view, visit https://gerrit.osmocom.org/c/osmo-sip-connector/+/22137 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sip-connector Gerrit-Branch: master Gerrit-Change-Id: Iae17e6d6f4242f98676dd3a1b01c419ac7288047 Gerrit-Change-Number: 22137 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 12:45:08 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 13 Jan 2021 12:45:08 +0000 Subject: Change in osmo-ggsn[master]: contrib/jenkins: don't build osmo-gsm-manuals References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ggsn/+/22138 ) Change subject: contrib/jenkins: don't build osmo-gsm-manuals ...................................................................... contrib/jenkins: don't build osmo-gsm-manuals Related: OS#4912 Change-Id: Ie77a81d3bd7cdb739fa082d9e1b5ddeba433a9db --- M contrib/jenkins.sh 1 file changed, 0 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ggsn refs/changes/38/22138/1 diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index c3a1570..17345a6 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -38,7 +38,6 @@ # Additional configure options and depends CONFIG="" if [ "$WITH_MANUALS" = "1" ]; then - osmo-build-dep.sh osmo-gsm-manuals CONFIG="--enable-manuals" fi -- To view, visit https://gerrit.osmocom.org/c/osmo-ggsn/+/22138 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ggsn Gerrit-Branch: master Gerrit-Change-Id: Ie77a81d3bd7cdb739fa082d9e1b5ddeba433a9db Gerrit-Change-Number: 22138 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 12:45:21 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 13 Jan 2021 12:45:21 +0000 Subject: Change in osmo-bsc[master]: contrib/jenkins: don't build osmo-gsm-manuals References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22139 ) Change subject: contrib/jenkins: don't build osmo-gsm-manuals ...................................................................... contrib/jenkins: don't build osmo-gsm-manuals Related: OS#4912 Change-Id: If655798bb47c332f7decb74ed19524b3014f69b4 --- M contrib/jenkins.sh 1 file changed, 0 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/39/22139/1 diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index 11e4251..0b978dc 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -39,7 +39,6 @@ # Additional configure options and depends CONFIG="" if [ "$WITH_MANUALS" = "1" ]; then - osmo-build-dep.sh osmo-gsm-manuals CONFIG="--enable-manuals" fi -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22139 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: If655798bb47c332f7decb74ed19524b3014f69b4 Gerrit-Change-Number: 22139 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 12:45:31 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 13 Jan 2021 12:45:31 +0000 Subject: Change in osmo-bts[master]: contrib/jenkins: don't build osmo-gsm-manuals References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/22140 ) Change subject: contrib/jenkins: don't build osmo-gsm-manuals ...................................................................... contrib/jenkins: don't build osmo-gsm-manuals Related: OS#4912 Change-Id: I8ab46680f9b753408e7ac6ef1635f997747325e5 --- M contrib/jenkins_common.sh 1 file changed, 0 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/40/22140/1 diff --git a/contrib/jenkins_common.sh b/contrib/jenkins_common.sh index 085ca1e..0c0060a 100644 --- a/contrib/jenkins_common.sh +++ b/contrib/jenkins_common.sh @@ -43,7 +43,6 @@ conf_flags="$*" if [ "$WITH_MANUALS" = "1" ]; then conf_flags="$conf_flags --enable-manuals" - osmo-build-dep.sh osmo-gsm-manuals export PATH="$inst/bin:$PATH" fi -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22140 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8ab46680f9b753408e7ac6ef1635f997747325e5 Gerrit-Change-Number: 22140 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 12:45:39 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 13 Jan 2021 12:45:39 +0000 Subject: Change in openbsc[master]: contrib/jenkins: don't build osmo-gsm-manuals References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/openbsc/+/22141 ) Change subject: contrib/jenkins: don't build osmo-gsm-manuals ...................................................................... contrib/jenkins: don't build osmo-gsm-manuals Related: OS#4912 Change-Id: Idb3b05412b99484f7f7de91ee96c69bfb4e3d511 --- M contrib/jenkins.sh 1 file changed, 0 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/openbsc refs/changes/41/22141/1 diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index da8703a..4b9d532 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -54,7 +54,6 @@ # Build and publish manuals if [ "$WITH_MANUALS" = "1" ]; then # Build all manuals first - osmo-build-dep.sh osmo-gsm-manuals for dir in "$base"/manuals/*/; do make -C "$dir" done -- To view, visit https://gerrit.osmocom.org/c/openbsc/+/22141 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-Change-Id: Idb3b05412b99484f7f7de91ee96c69bfb4e3d511 Gerrit-Change-Number: 22141 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 12:46:17 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 13 Jan 2021 12:46:17 +0000 Subject: Change in libosmo-sccp[master]: contrib/jenkins: don't build osmo-gsm-manuals References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/22142 ) Change subject: contrib/jenkins: don't build osmo-gsm-manuals ...................................................................... contrib/jenkins: don't build osmo-gsm-manuals Related: OS#4912 Change-Id: I511b2e1f4c3a9e0897cff4241ab5df12327de10d --- M contrib/jenkins.sh 1 file changed, 0 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-sccp refs/changes/42/22142/1 diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index 5d40573..78bd53a 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -36,7 +36,6 @@ # Additional configure options and depends CONFIG="" if [ "$WITH_MANUALS" = "1" ]; then - osmo-build-dep.sh osmo-gsm-manuals CONFIG="--enable-manuals" fi -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/22142 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I511b2e1f4c3a9e0897cff4241ab5df12327de10d Gerrit-Change-Number: 22142 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 12:46:26 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 13 Jan 2021 12:46:26 +0000 Subject: Change in osmocom-bb[master]: contrib/jenkins: don't build osmo-gsm-manuals References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmocom-bb/+/22143 ) Change subject: contrib/jenkins: don't build osmo-gsm-manuals ...................................................................... contrib/jenkins: don't build osmo-gsm-manuals Related: OS#4912 Change-Id: If8f88bde0614547bb5c4f4f6e97fc20fcecd8a2c # --- --- M contrib/jenkins.sh 1 file changed, 0 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/43/22143/1 diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index 07a02c1..fafbdfb 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -52,7 +52,6 @@ # Build and publish manuals if [ "$WITH_MANUALS" = "1" ]; then - osmo-build-dep.sh osmo-gsm-manuals make -C "$base/doc/manuals" make -C "$base/doc/manuals" check -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/22143 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: If8f88bde0614547bb5c4f4f6e97fc20fcecd8a2c Gerrit-Change-Number: 22143 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 12:46:31 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 13 Jan 2021 12:46:31 +0000 Subject: Change in osmo-iuh[master]: contrib/jenkins: don't build osmo-gsm-manuals References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-iuh/+/22144 ) Change subject: contrib/jenkins: don't build osmo-gsm-manuals ...................................................................... contrib/jenkins: don't build osmo-gsm-manuals Related: OS#4912 Change-Id: I339cc37a259e30b131fadbdaebd413c54b04f0a0 --- M contrib/jenkins.sh 1 file changed, 0 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-iuh refs/changes/44/22144/1 diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index 46d38f7..a3a3d4a 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -28,7 +28,6 @@ CONFIG="" if [ "$WITH_MANUALS" = "1" ]; then - osmo-build-dep.sh osmo-gsm-manuals CONFIG="--enable-manuals" fi -- To view, visit https://gerrit.osmocom.org/c/osmo-iuh/+/22144 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: master Gerrit-Change-Id: I339cc37a259e30b131fadbdaebd413c54b04f0a0 Gerrit-Change-Number: 22144 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 12:46:47 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 13 Jan 2021 12:46:47 +0000 Subject: Change in osmo-mgw[master]: contrib/jenkins: don't build osmo-gsm-manuals References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-mgw/+/22145 ) Change subject: contrib/jenkins: don't build osmo-gsm-manuals ...................................................................... contrib/jenkins: don't build osmo-gsm-manuals Related: OS#4912 Change-Id: Idb179c5618797bb245fad857fa79242c43d539a2 --- M contrib/jenkins.sh 1 file changed, 0 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/45/22145/1 diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index 96880d4..c25fdb9 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -36,7 +36,6 @@ # Additional configure options and depends CONFIG="" if [ "$WITH_MANUALS" = "1" ]; then - osmo-build-dep.sh osmo-gsm-manuals CONFIG="--enable-manuals" fi -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/22145 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Idb179c5618797bb245fad857fa79242c43d539a2 Gerrit-Change-Number: 22145 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 12:46:54 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 13 Jan 2021 12:46:54 +0000 Subject: Change in osmo-sgsn[master]: contrib/jenkins: don't build osmo-gsm-manuals References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22146 ) Change subject: contrib/jenkins: don't build osmo-gsm-manuals ...................................................................... contrib/jenkins: don't build osmo-gsm-manuals Related: OS#4912 Change-Id: I3fc43b1afb7cdfd2b78c062e36ccf2491700f988 --- M contrib/jenkins.sh 1 file changed, 0 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/46/22146/1 diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index 87d8601..2325897 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -50,7 +50,6 @@ # Additional configure options and depends CONFIG="" if [ "$WITH_MANUALS" = "1" ]; then - osmo-build-dep.sh osmo-gsm-manuals CONFIG="--enable-manuals" fi -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22146 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I3fc43b1afb7cdfd2b78c062e36ccf2491700f988 Gerrit-Change-Number: 22146 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 12:47:03 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 13 Jan 2021 12:47:03 +0000 Subject: Change in osmo-hlr[master]: contrib/jenkins: don't build osmo-gsm-manuals References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-hlr/+/22147 ) Change subject: contrib/jenkins: don't build osmo-gsm-manuals ...................................................................... contrib/jenkins: don't build osmo-gsm-manuals Related: OS#4912 Change-Id: I22246f3ff105183a7a7a0279fd6c5cde9cd19952 --- M contrib/jenkins.sh 1 file changed, 0 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-hlr refs/changes/47/22147/1 diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index b924075..c67a1c3 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -35,7 +35,6 @@ # Additional configure options and depends CONFIG="" if [ "$WITH_MANUALS" = "1" ]; then - osmo-build-dep.sh osmo-gsm-manuals CONFIG="--enable-manuals" fi -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/22147 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-Change-Id: I22246f3ff105183a7a7a0279fd6c5cde9cd19952 Gerrit-Change-Number: 22147 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 12:47:08 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 13 Jan 2021 12:47:08 +0000 Subject: Change in osmo-pcu[master]: contrib/jenkins: don't build osmo-gsm-manuals References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22148 ) Change subject: contrib/jenkins: don't build osmo-gsm-manuals ...................................................................... contrib/jenkins: don't build osmo-gsm-manuals Related: OS#4912 Change-Id: If45bb7d4958b200ca6b5d1c5b8a52eba06944909 --- M contrib/jenkins.sh 1 file changed, 0 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/48/22148/1 diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index e40e081..7c620b9 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -81,7 +81,6 @@ export PATH="$inst/bin:$PATH" if [ "$WITH_MANUALS" = "1" ]; then - osmo-build-dep.sh osmo-gsm-manuals PCU_CONFIG="$PCU_CONFIG --enable-manuals" fi -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22148 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: If45bb7d4958b200ca6b5d1c5b8a52eba06944909 Gerrit-Change-Number: 22148 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 12:47:16 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 13 Jan 2021 12:47:16 +0000 Subject: Change in osmo-trx[master]: contrib/jenkins: don't build osmo-gsm-manuals References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-trx/+/22149 ) Change subject: contrib/jenkins: don't build osmo-gsm-manuals ...................................................................... contrib/jenkins: don't build osmo-gsm-manuals Related: OS#4912 Change-Id: Ibacb11da37acfd324cee37068099627136717781 --- M contrib/jenkins.sh 1 file changed, 0 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/49/22149/1 diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index 7b751ad..3cf12c6 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -89,7 +89,6 @@ # Additional configure options and depends if [ "$WITH_MANUALS" = "1" ]; then - osmo-build-dep.sh osmo-gsm-manuals CONFIG="$CONFIG --enable-manuals" fi -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/22149 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: Ibacb11da37acfd324cee37068099627136717781 Gerrit-Change-Number: 22149 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 12:47:26 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 13 Jan 2021 12:47:26 +0000 Subject: Change in osmo-remsim[master]: contrib/jenkins: don't build osmo-gsm-manuals References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-remsim/+/22150 ) Change subject: contrib/jenkins: don't build osmo-gsm-manuals ...................................................................... contrib/jenkins: don't build osmo-gsm-manuals Related: OS#4912 Change-Id: Ic4f26705854a0987aa72a9064a5278b01b4d078d # --- --- M contrib/jenkins.sh 1 file changed, 0 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-remsim refs/changes/50/22150/1 diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index 30db3d7..37a779c 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -36,7 +36,6 @@ # Additional configure options and depends CONFIG="" if [ "$WITH_MANUALS" = "1" ]; then - osmo-build-dep.sh osmo-gsm-manuals CONFIG="--enable-manuals" fi -- To view, visit https://gerrit.osmocom.org/c/osmo-remsim/+/22150 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-remsim Gerrit-Branch: master Gerrit-Change-Id: Ic4f26705854a0987aa72a9064a5278b01b4d078d Gerrit-Change-Number: 22150 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 12:47:33 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 13 Jan 2021 12:47:33 +0000 Subject: Change in osmo-msc[master]: contrib/jenkins: don't build osmo-gsm-manuals References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-msc/+/22151 ) Change subject: contrib/jenkins: don't build osmo-gsm-manuals ...................................................................... contrib/jenkins: don't build osmo-gsm-manuals Related: OS#4912 Change-Id: I0f4d3b444c22c772498299f7d209fc28080af8c3 --- M contrib/jenkins.sh 1 file changed, 0 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/51/22151/1 diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index baeba59..fb858d7 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -51,7 +51,6 @@ # Additional configure options and depends CONFIG="" if [ "$WITH_MANUALS" = "1" ]; then - osmo-build-dep.sh osmo-gsm-manuals CONFIG="--enable-manuals" fi -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/22151 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: I0f4d3b444c22c772498299f7d209fc28080af8c3 Gerrit-Change-Number: 22151 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 12:47:42 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 13 Jan 2021 12:47:42 +0000 Subject: Change in osmo-e1-hardware[master]: contrib/jenkins: don't build osmo-gsm-manuals References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/22152 ) Change subject: contrib/jenkins: don't build osmo-gsm-manuals ...................................................................... contrib/jenkins: don't build osmo-gsm-manuals Related: OS#4912 Change-Id: Ie2f193656386038872adddfbd770ea193ace92e5 --- M contrib/jenkins.sh 1 file changed, 0 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1-hardware refs/changes/52/22152/1 diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index 39d7f4c..d69fcbb 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -67,7 +67,6 @@ # manuals build + optional publication if [ "$WITH_MANUALS" = "1" ]; then - osmo-build-dep.sh osmo-gsm-manuals make -C doc/manuals clean all if [ "$PUBLISH" = "1" ]; then make -C doc/manuals publish -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/22152 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1-hardware Gerrit-Branch: master Gerrit-Change-Id: Ie2f193656386038872adddfbd770ea193ace92e5 Gerrit-Change-Number: 22152 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 12:48:37 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 13 Jan 2021 12:48:37 +0000 Subject: Change in osmo-e1-recorder[master]: contrib/jenkins: don't build osmo-gsm-manuals References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-e1-recorder/+/22153 ) Change subject: contrib/jenkins: don't build osmo-gsm-manuals ...................................................................... contrib/jenkins: don't build osmo-gsm-manuals Related: OS#4912 Change-Id: I5349a67dcc6dd47e5a1cc9f8d30a2ca7aa1094f9 --- M contrib/jenkins.sh 1 file changed, 0 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1-recorder refs/changes/53/22153/1 diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index b08865e..d9895ec 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -36,7 +36,6 @@ # Additional configure options and depends CONFIG="" if [ "$WITH_MANUALS" = "1" ]; then - osmo-build-dep.sh osmo-gsm-manuals CONFIG="--enable-manuals" fi -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-recorder/+/22153 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1-recorder Gerrit-Branch: master Gerrit-Change-Id: I5349a67dcc6dd47e5a1cc9f8d30a2ca7aa1094f9 Gerrit-Change-Number: 22153 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 12:50:32 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 13 Jan 2021 12:50:32 +0000 Subject: Change in osmo-cbc[master]: contrib/jenkins: don't build osmo-gsm-manuals References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22154 ) Change subject: contrib/jenkins: don't build osmo-gsm-manuals ...................................................................... contrib/jenkins: don't build osmo-gsm-manuals Related: OS#4912 Change-Id: Ide27f522e0979f9f7b41cd073d5451fa60ab125f --- M contrib/jenkins.sh 1 file changed, 0 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-cbc refs/changes/54/22154/1 diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index e9b976b..104ba2a 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -36,7 +36,6 @@ # Additional configure options and depends CONFIG="" if [ "$WITH_MANUALS" = "1" ]; then - osmo-build-dep.sh osmo-gsm-manuals CONFIG="--enable-manuals" fi -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22154 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: Ide27f522e0979f9f7b41cd073d5451fa60ab125f Gerrit-Change-Number: 22154 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 12:58:35 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 13 Jan 2021 12:58:35 +0000 Subject: Change in osmo-pcu[master]: bts: fix uninitialized memaccess in BTS::send_gsmtap() References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22155 ) Change subject: bts: fix uninitialized memaccess in BTS::send_gsmtap() ...................................................................... bts: fix uninitialized memaccess in BTS::send_gsmtap() Change-Id: I7c5105c9e8a2c680dc8b24cc5e3bda6f7405a3ee Fixes: CID#216511 --- M src/bts.cpp 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/55/22155/1 diff --git a/src/bts.cpp b/src/bts.cpp index 87afc9f..307df94 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -529,7 +529,7 @@ uint8_t ts_no, uint8_t channel, uint32_t fn, const uint8_t *data, unsigned int len) { - struct pcu_l1_meas meas; + struct pcu_l1_meas meas = { 0 }; send_gsmtap_meas(categ, uplink, trx_no, ts_no, channel, fn, data, len, &meas); } -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22155 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I7c5105c9e8a2c680dc8b24cc5e3bda6f7405a3ee Gerrit-Change-Number: 22155 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 12:59:22 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 13 Jan 2021 12:59:22 +0000 Subject: Change in osmo-pcu[master]: bts: fix uninitialized memaccess in BTS::send_gsmtap_rach() In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22008 ) Change subject: bts: fix uninitialized memaccess in BTS::send_gsmtap_rach() ...................................................................... Patch Set 2: This change is ready for review. -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22008 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I8c3210c428da17d23d798f3ef9df941ded6e162a Gerrit-Change-Number: 22008 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 13 Jan 2021 12:59:22 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 13:00:00 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 13 Jan 2021 13:00:00 +0000 Subject: Change in osmo-pcu[master]: bts: fix uninitialized memaccess in BTS::send_gsmtap_rach() In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22008 ) Change subject: bts: fix uninitialized memaccess in BTS::send_gsmtap_rach() ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-pcu/+/22008/1/src/bts.cpp File src/bts.cpp: https://gerrit.osmocom.org/c/osmo-pcu/+/22008/1/src/bts.cpp at 532 PS1, Line 532: struct pcu_l1_meas meas; > This one also probably needs zeroing? [?] See the next patch. -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22008 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I8c3210c428da17d23d798f3ef9df941ded6e162a Gerrit-Change-Number: 22008 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 13 Jan 2021 13:00:00 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 13:06:45 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 13 Jan 2021 13:06:45 +0000 Subject: Change in osmo-bsc[master]: stats: Add granularity to SDCCH/TCH/LU activity. In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22103 ) Change subject: stats: Add granularity to SDCCH/TCH/LU activity. ...................................................................... Patch Set 6: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22103 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I4df275e4770c5ff3643c79ba828e736986f8bb47 Gerrit-Change-Number: 22103 Gerrit-PatchSet: 6 Gerrit-Owner: iedemam Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 13 Jan 2021 13:06:45 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 13:07:40 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 13 Jan 2021 13:07:40 +0000 Subject: Change in libosmocore[for-1.4]: tlv_parser: Fix various out-of-bounds accesses In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22121 ) Change subject: tlv_parser: Fix various out-of-bounds accesses ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22121 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: for-1.4 Gerrit-Change-Id: I98b02c914c9e3ecf56050af846292aa6979d7508 Gerrit-Change-Number: 22121 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 13 Jan 2021 13:07:40 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 13:09:04 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 13 Jan 2021 13:09:04 +0000 Subject: Change in osmo-bts[master]: power_control: fix: properly print 'delta' applied to attenuation In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/22118 ) Change subject: power_control: fix: properly print 'delta' applied to attenuation ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22118 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I178df05c1a4cb982279b21d07bd69f75b44928da Gerrit-Change-Number: 22118 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 13 Jan 2021 13:09:04 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 13:11:42 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 13 Jan 2021 13:11:42 +0000 Subject: Change in libosmocore[master]: bssgp_rim: add encoder/decoder for NACC related RIM containers In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21862 ) Change subject: bssgp_rim: add encoder/decoder for NACC related RIM containers ...................................................................... Patch Set 9: Code-Review+1 my struct reuse comment was still not addresses, in case you still want to do it. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21862 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ibbc7fd67658e3040c12abb5706fe9d1f31894352 Gerrit-Change-Number: 21862 Gerrit-PatchSet: 9 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 13 Jan 2021 13:11:42 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 13:12:33 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 13 Jan 2021 13:12:33 +0000 Subject: =?UTF-8?Q?Change_in_libosmocore=5Bfor-1=2E4=5D=3A_Bump_version=3A_1=2E4=2E1-dirty_=E2=86=92_1=2E4=2E2?= In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22122 ) Change subject: Bump version: 1.4.1-dirty ? 1.4.2 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22122 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: for-1.4 Gerrit-Change-Id: I2edd4eb53b33cc77e7894652a24a758fcca84e59 Gerrit-Change-Number: 22122 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 13 Jan 2021 13:12:33 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 13:17:30 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 13 Jan 2021 13:17:30 +0000 Subject: Change in osmo-cbc[master]: add link to upstream bug related to custom malloc/free In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22124 ) Change subject: add link to upstream bug related to custom malloc/free ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22124 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: If58d307bbdade5d4d7c5e39ada8c14c052d215a9 Gerrit-Change-Number: 22124 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 13 Jan 2021 13:17:30 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 13:18:00 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 13 Jan 2021 13:18:00 +0000 Subject: Change in osmo-cbc[master]: add link to upstream bug related to custom malloc/free In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22124 ) Change subject: add link to upstream bug related to custom malloc/free ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-cbc/+/22124/1/src/rest_api.c File src/rest_api.c: https://gerrit.osmocom.org/c/osmo-cbc/+/22124/1/src/rest_api.c at 685 PS1, Line 685: /* See https://github.com/babelouest/ulfius/issues/63 */ Maybe worth adding the link to configure where ULFIUS_MALLOC_NOT_BROKEN is set too. -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22124 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: If58d307bbdade5d4d7c5e39ada8c14c052d215a9 Gerrit-Change-Number: 22124 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 13 Jan 2021 13:18:00 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 13:24:39 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 13 Jan 2021 13:24:39 +0000 Subject: Change in osmo-bts[master]: power_control: print current RxLev and lower/upper thresholds In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/22117 ) Change subject: power_control: print current RxLev and lower/upper thresholds ...................................................................... Patch Set 1: So IIUC we don't print the desired target level anymore because that's no longer the aim of the algo? because we now target a given RxLev instead of a given received dBm? If that's not the case, then I think it still makes sense to print that value, which you are removing in this patch (and you are not saying in the commit message). -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22117 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I5f8c987054b2b01acdb9f525d06ca15bbc577070 Gerrit-Change-Number: 22117 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Wed, 13 Jan 2021 13:24:39 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 13:25:24 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 13 Jan 2021 13:25:24 +0000 Subject: Change in osmo-e1-hardware[master]: doc/manuals/Makefile: fix typo in 'srcdir' In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/22127 ) Change subject: doc/manuals/Makefile: fix typo in 'srcdir' ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/22127 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1-hardware Gerrit-Branch: master Gerrit-Change-Id: I72a62b86cba0dfd710f7e1c4c01a3c10710128d8 Gerrit-Change-Number: 22127 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-Comment-Date: Wed, 13 Jan 2021 13:25:24 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 13:26:08 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 13 Jan 2021 13:26:08 +0000 Subject: Change in osmo-e1-hardware[master]: doc/manuals: support OSMO_GSM_MANUALS_DIR In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/22125 ) Change subject: doc/manuals: support OSMO_GSM_MANUALS_DIR ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/22125 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1-hardware Gerrit-Branch: master Gerrit-Change-Id: Iecfbfc2a7588c316642aa37be637cf3c02f76ac4 Gerrit-Change-Number: 22125 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-Comment-Date: Wed, 13 Jan 2021 13:26:08 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 13:28:39 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 13 Jan 2021 13:28:39 +0000 Subject: Change in osmo-ci[master]: contrib/jenkins.sh: clone osmo-gsm-manuals too In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22128 ) Change subject: contrib/jenkins.sh: clone osmo-gsm-manuals too ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22128 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I742fd929e39ca32d6034a30af75b6c8e5b47b233 Gerrit-Change-Number: 22128 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 13 Jan 2021 13:28:39 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 13:29:06 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 13 Jan 2021 13:29:06 +0000 Subject: Change in osmo-ci[master]: ansible: tasks/osmo-ci: clone osmo-gsm-manuals In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22129 ) Change subject: ansible: tasks/osmo-ci: clone osmo-gsm-manuals ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22129 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I39a09a4297c7c78357b3d4db4ab89547fa08db59 Gerrit-Change-Number: 22129 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 13 Jan 2021 13:29:06 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 13:31:18 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 13 Jan 2021 13:31:18 +0000 Subject: Change in osmo-ci[master]: jobs: update OSMO_GSM_MANUALS_DIR In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22131 ) Change subject: jobs: update OSMO_GSM_MANUALS_DIR ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22131 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ibe91a613162687589e006cba99193606fb8a3eb9 Gerrit-Change-Number: 22131 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 13 Jan 2021 13:31:18 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 13:32:03 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 13 Jan 2021 13:32:03 +0000 Subject: Change in osmo-ci[master]: jobs: remove duplicate docker_run In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22132 ) Change subject: jobs: remove duplicate docker_run ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22132 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I97a4add17d9fa1bd28ab0ceb054b9a8d948b6f86 Gerrit-Change-Number: 22132 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 13 Jan 2021 13:32:03 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 13:32:44 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 13 Jan 2021 13:32:44 +0000 Subject: Change in docker-playground[master]: debian-stretch-jenkins, fpga-build: add gsm-manuals In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22134 ) Change subject: debian-stretch-jenkins,fpga-build: add gsm-manuals ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22134 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Id402e0ea372b5ca8a6c8f6f5beb190544c888207 Gerrit-Change-Number: 22134 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 13 Jan 2021 13:32:44 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 13:33:34 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 13 Jan 2021 13:33:34 +0000 Subject: Change in docker-playground[master]: fpga-build: add osmo-ci In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22133 ) Change subject: fpga-build: add osmo-ci ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/docker-playground/+/22133/1/fpga-build/Dockerfile File fpga-build/Dockerfile: https://gerrit.osmocom.org/c/docker-playground/+/22133/1/fpga-build/Dockerfile at 47 PS1, Line 47: RUN git clone https://git.osmocom.org/osmo-ci osmo-ci && \ wrong idnentation here -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22133 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I3625d6f10e566101fb25963757da6827670ca41b Gerrit-Change-Number: 22133 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 13 Jan 2021 13:33:34 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 13:34:49 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 13 Jan 2021 13:34:49 +0000 Subject: Change in docker-playground[master]: Cosmetic: debian-stretch-jenkins, osmo-gsm-tester: fix indent In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22135 ) Change subject: Cosmetic: debian-stretch-jenkins, osmo-gsm-tester: fix indent ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/docker-playground/+/22135/1/debian-stretch-jenkins/Dockerfile File debian-stretch-jenkins/Dockerfile: https://gerrit.osmocom.org/c/docker-playground/+/22135/1/debian-stretch-jenkins/Dockerfile at 157 PS1, Line 157: /usr/local/bin I would rather indent it at "param" level, that is under same column as "$" above. -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22135 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Ia6b12b2c35f69eb0434797b29ee0ef676b032250 Gerrit-Change-Number: 22135 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 13 Jan 2021 13:34:49 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 13:35:13 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 13 Jan 2021 13:35:13 +0000 Subject: Change in docker-playground[master]: fpga-build: don't write path to /etc/environment In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22136 ) Change subject: fpga-build: don't write path to /etc/environment ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22136 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I5bff98f7af1a2f2de88c8d96d1e30de960057d01 Gerrit-Change-Number: 22136 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 13 Jan 2021 13:35:13 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 13:36:04 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 13 Jan 2021 13:36:04 +0000 Subject: Change in osmo-sip-connector[master]: contrib/jenkins: don't build osmo-gsm-manuals In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sip-connector/+/22137 ) Change subject: contrib/jenkins: don't build osmo-gsm-manuals ...................................................................... Patch Set 1: I guess it makes sense to wait for these patches to pass in gerrit+jenkins before reviewing/merging them. -- To view, visit https://gerrit.osmocom.org/c/osmo-sip-connector/+/22137 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sip-connector Gerrit-Branch: master Gerrit-Change-Id: Iae17e6d6f4242f98676dd3a1b01c419ac7288047 Gerrit-Change-Number: 22137 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 13 Jan 2021 13:36:04 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 13:36:59 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 13 Jan 2021 13:36:59 +0000 Subject: Change in osmo-pcu[master]: bts: fix uninitialized memaccess in BTS::send_gsmtap_rach() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22008 ) Change subject: bts: fix uninitialized memaccess in BTS::send_gsmtap_rach() ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22008 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I8c3210c428da17d23d798f3ef9df941ded6e162a Gerrit-Change-Number: 22008 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 13 Jan 2021 13:36:59 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 13:37:03 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 13 Jan 2021 13:37:03 +0000 Subject: Change in osmo-pcu[master]: bts: fix uninitialized memaccess in BTS::send_gsmtap() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22155 ) Change subject: bts: fix uninitialized memaccess in BTS::send_gsmtap() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22155 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I7c5105c9e8a2c680dc8b24cc5e3bda6f7405a3ee Gerrit-Change-Number: 22155 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 13 Jan 2021 13:37:03 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 13:49:40 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 13 Jan 2021 13:49:40 +0000 Subject: Change in libosmocore[master]: ctrl: ports.h: Add OSMO_CTRL_PORT_BSC_NEIGH References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22156 ) Change subject: ctrl: ports.h: Add OSMO_CTRL_PORT_BSC_NEIGH ...................................................................... ctrl: ports.h: Add OSMO_CTRL_PORT_BSC_NEIGH Hence 4248 becomes the well-known port for osmo-bsc's Neighbor Resolution Service. Related: SYS#4909 Change-Id: Ic77a8cff022c2f939a684ebd1f9f62a82e0de510 --- M include/osmocom/ctrl/ports.h 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/56/22156/1 diff --git a/include/osmocom/ctrl/ports.h b/include/osmocom/ctrl/ports.h index 9759dc1..91206dc 100644 --- a/include/osmocom/ctrl/ports.h +++ b/include/osmocom/ctrl/ports.h @@ -12,6 +12,7 @@ #define OSMO_CTRL_PORT_TRX 4236 /* 4237 used by VTY interface */ #define OSMO_CTRL_PORT_BTS 4238 +#define OSMO_CTRL_PORT_BSC_NEIGH 4248 /* osmo-bsc Neighbor Resloution Service */ #define OSMO_CTRL_PORT_NITB_BSC 4249 #define OSMO_CTRL_PORT_BSC_NAT 4250 #define OSMO_CTRL_PORT_SGSN 4251 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22156 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic77a8cff022c2f939a684ebd1f9f62a82e0de510 Gerrit-Change-Number: 22156 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 13:57:58 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 13 Jan 2021 13:57:58 +0000 Subject: Change in osmo-bsc[master]: Introduce Neighbor Resolution Service In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21848 ) Change subject: Introduce Neighbor Resolution Service ...................................................................... Patch Set 8: (3 comments) https://gerrit.osmocom.org/c/osmo-bsc/+/21848/8/src/osmo-bsc/neighbor_ident_vty.c File src/osmo-bsc/neighbor_ident_vty.c: https://gerrit.osmocom.org/c/osmo-bsc/+/21848/8/src/osmo-bsc/neighbor_ident_vty.c at 89 PS8, Line 89: #define CGI_PS_DOC "Neighbor cell by cgi (Packet Switch, with RAC)\n" "MCC\n" "MNC\n" "LAC\n" "RAC\n" "CI\n" > "Packet Switched", or "PS Domain", but "Packet Switch" sounds like you're talking about an actual de [?] Ack https://gerrit.osmocom.org/c/osmo-bsc/+/21848/8/src/osmo-bsc/neighbor_ident_vty.c at 581 PS8, Line 581: neighbor > "neighbor-resolution bind" would be more self-explanatory, IMHO. Not critical. Ack https://gerrit.osmocom.org/c/osmo-bsc/+/21848/8/src/osmo-bsc/neighbor_ident_vty.c at 583 PS8, Line 583: "IPv4 address to bind the service to\n" "IPv6 address to bind the service to\n > don't we have some #defines for this aleady? Ack -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21848 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ib07c9d23026332a207d4b7a0f7b4e76c0094e379 Gerrit-Change-Number: 21848 Gerrit-PatchSet: 8 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 13 Jan 2021 13:57:58 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: laforge Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 14:04:52 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 13 Jan 2021 14:04:52 +0000 Subject: Change in docker-playground[master]: debian-stretch-jenkins, fpga-build: add gsm-manuals In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22134 ) Change subject: debian-stretch-jenkins,fpga-build: add gsm-manuals ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22134 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Id402e0ea372b5ca8a6c8f6f5beb190544c888207 Gerrit-Change-Number: 22134 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 13 Jan 2021 14:04:52 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 14:06:08 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 13 Jan 2021 14:06:08 +0000 Subject: Change in docker-playground[master]: fpga-build: don't write path to /etc/environment In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22136 ) Change subject: fpga-build: don't write path to /etc/environment ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22136 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I5bff98f7af1a2f2de88c8d96d1e30de960057d01 Gerrit-Change-Number: 22136 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 13 Jan 2021 14:06:08 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 14:06:14 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 13 Jan 2021 14:06:14 +0000 Subject: Change in docker-playground[master]: Cosmetic: debian-stretch-jenkins, osmo-gsm-tester: fix indent In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22135 ) Change subject: Cosmetic: debian-stretch-jenkins, osmo-gsm-tester: fix indent ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22135 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Ia6b12b2c35f69eb0434797b29ee0ef676b032250 Gerrit-Change-Number: 22135 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 13 Jan 2021 14:06:14 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 14:07:17 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 13 Jan 2021 14:07:17 +0000 Subject: Change in osmo-ci[master]: contrib/jenkins.sh: clone osmo-gsm-manuals too In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22128 ) Change subject: contrib/jenkins.sh: clone osmo-gsm-manuals too ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22128 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I742fd929e39ca32d6034a30af75b6c8e5b47b233 Gerrit-Change-Number: 22128 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 13 Jan 2021 14:07:17 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 14:07:33 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 13 Jan 2021 14:07:33 +0000 Subject: Change in osmo-ci[master]: ansible: tasks/osmo-ci: clone osmo-gsm-manuals In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22129 ) Change subject: ansible: tasks/osmo-ci: clone osmo-gsm-manuals ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22129 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I39a09a4297c7c78357b3d4db4ab89547fa08db59 Gerrit-Change-Number: 22129 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 13 Jan 2021 14:07:33 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 14:07:58 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 13 Jan 2021 14:07:58 +0000 Subject: Change in osmo-ci[master]: jobs/osmo-gsm-manuals-trigger: new job In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22130 ) Change subject: jobs/osmo-gsm-manuals-trigger: new job ...................................................................... Patch Set 2: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22130 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I104525826068b016b5e06ea52567da4d7beaf7a4 Gerrit-Change-Number: 22130 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 13 Jan 2021 14:07:58 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 14:08:24 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 13 Jan 2021 14:08:24 +0000 Subject: Change in osmo-ci[master]: jobs: update OSMO_GSM_MANUALS_DIR In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22131 ) Change subject: jobs: update OSMO_GSM_MANUALS_DIR ...................................................................... Patch Set 2: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22131 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ibe91a613162687589e006cba99193606fb8a3eb9 Gerrit-Change-Number: 22131 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 13 Jan 2021 14:08:24 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 14:08:44 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 13 Jan 2021 14:08:44 +0000 Subject: Change in osmo-ci[master]: jobs: remove duplicate docker_run In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22132 ) Change subject: jobs: remove duplicate docker_run ...................................................................... Patch Set 2: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22132 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I97a4add17d9fa1bd28ab0ceb054b9a8d948b6f86 Gerrit-Change-Number: 22132 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 13 Jan 2021 14:08:44 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 14:09:31 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 13 Jan 2021 14:09:31 +0000 Subject: Change in osmo-e1-hardware[master]: gitignore: add files from generating manuals In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/22126 ) Change subject: gitignore: add files from generating manuals ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/22126 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1-hardware Gerrit-Branch: master Gerrit-Change-Id: Ibd0089978a7083fb19638d70358c8ef7d589da9c Gerrit-Change-Number: 22126 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tnt Gerrit-Comment-Date: Wed, 13 Jan 2021 14:09:31 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 14:10:22 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 13 Jan 2021 14:10:22 +0000 Subject: Change in osmo-e1-hardware[master]: contrib/jenkins: don't build osmo-gsm-manuals In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/22152 ) Change subject: contrib/jenkins: don't build osmo-gsm-manuals ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/22152 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1-hardware Gerrit-Branch: master Gerrit-Change-Id: Ie2f193656386038872adddfbd770ea193ace92e5 Gerrit-Change-Number: 22152 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 13 Jan 2021 14:10:22 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 14:10:24 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 13 Jan 2021 14:10:24 +0000 Subject: Change in osmo-e1-hardware[master]: doc/manuals: support OSMO_GSM_MANUALS_DIR In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/22125 ) Change subject: doc/manuals: support OSMO_GSM_MANUALS_DIR ...................................................................... doc/manuals: support OSMO_GSM_MANUALS_DIR Instead of only relying on pkg-config, support the environment variable and fallback path like in other Osmocom repositories too. The same script is used in other Osmocom repositories where manuals are built without autotools. Related: OS#4912 Change-Id: Iecfbfc2a7588c316642aa37be637cf3c02f76ac4 --- M doc/manuals/Makefile A doc/manuals/osmo-gsm-manuals-dir.sh 2 files changed, 27 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified tnt: Looks good to me, but someone else must approve pespin: Looks good to me, approved diff --git a/doc/manuals/Makefile b/doc/manuals/Makefile index 1bd4b6e..d9a613d 100644 --- a/doc/manuals/Makefile +++ b/doc/manuals/Makefile @@ -1,4 +1,4 @@ -OSMO_GSM_MANUALS_DIR:=$(shell pkg-config osmo-gsm-manuals --variable=osmogsmmanualsdir) +OSMO_GSM_MANUALS_DIR:=$(shell ./osmo-gsm-manuals-dir.sh) sdcdir = . diff --git a/doc/manuals/osmo-gsm-manuals-dir.sh b/doc/manuals/osmo-gsm-manuals-dir.sh new file mode 100755 index 0000000..f132eaa --- /dev/null +++ b/doc/manuals/osmo-gsm-manuals-dir.sh @@ -0,0 +1,26 @@ +#!/bin/sh -e +# Find OSMO_GSM_MANUALS_DIR and print it to stdout. Print where it was taken from to stderr. + +# Find it in env, pkg-conf and ../../../osmo-gsm-manuals +RET="$OSMO_GSM_MANUALS_DIR" +if [ -n "$RET" ]; then + RET="$(realpath $RET)" + echo "OSMO_GSM_MANUALS_DIR: $RET (from env)" >&2 +else + RET="$(pkg-config osmo-gsm-manuals --variable=osmogsmmanualsdir 2>/dev/null || true)" + if [ -n "$RET" ]; then + echo "OSMO_GSM_MANUALS_DIR: $RET (from pkg-conf)" >&2 + else + RET="$(realpath $(realpath $(dirname $0))/../../../osmo-gsm-manuals)" + echo "OSMO_GSM_MANUALS_DIR: $RET (fallback)" >&2 + fi +fi + +# Print the result or error message +if [ -d "$RET" ]; then + echo "$RET" +else + echo "ERROR: OSMO_GSM_MANUALS_DIR does not exist!" >&2 + echo "Install osmo-gsm-manuals or set OSMO_GSM_MANUALS_DIR." >&2 + exit 1 +fi -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/22125 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1-hardware Gerrit-Branch: master Gerrit-Change-Id: Iecfbfc2a7588c316642aa37be637cf3c02f76ac4 Gerrit-Change-Number: 22125 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 14:10:25 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 13 Jan 2021 14:10:25 +0000 Subject: Change in osmo-e1-hardware[master]: gitignore: add files from generating manuals In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/22126 ) Change subject: gitignore: add files from generating manuals ...................................................................... gitignore: add files from generating manuals Change-Id: Ibd0089978a7083fb19638d70358c8ef7d589da9c --- A .gitignore 1 file changed, 3 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified tnt: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..eb3a5e5 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +/doc/manuals/build +/doc/manuals/common +/doc/manuals/*.pdf -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/22126 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1-hardware Gerrit-Branch: master Gerrit-Change-Id: Ibd0089978a7083fb19638d70358c8ef7d589da9c Gerrit-Change-Number: 22126 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: tnt Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 14:10:26 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 13 Jan 2021 14:10:26 +0000 Subject: Change in osmo-e1-hardware[master]: doc/manuals/Makefile: fix typo in 'srcdir' In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/22127 ) Change subject: doc/manuals/Makefile: fix typo in 'srcdir' ...................................................................... doc/manuals/Makefile: fix typo in 'srcdir' Prevent the following error (generating manuals seemed to work fine regardless): realpath: missing operand Try 'realpath --help' for more information. make: Nothing to be done for 'all'. Change-Id: I72a62b86cba0dfd710f7e1c4c01a3c10710128d8 --- M doc/manuals/Makefile 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified tnt: Looks good to me, but someone else must approve pespin: Looks good to me, approved diff --git a/doc/manuals/Makefile b/doc/manuals/Makefile index d9a613d..2f87b57 100644 --- a/doc/manuals/Makefile +++ b/doc/manuals/Makefile @@ -1,6 +1,6 @@ OSMO_GSM_MANUALS_DIR:=$(shell ./osmo-gsm-manuals-dir.sh) -sdcdir = . +srcdir = . ASCIIDOC = icE1usb-usermanual.adoc include $(OSMO_GSM_MANUALS_DIR)/build/Makefile.asciidoc.inc -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/22127 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1-hardware Gerrit-Branch: master Gerrit-Change-Id: I72a62b86cba0dfd710f7e1c4c01a3c10710128d8 Gerrit-Change-Number: 22127 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 14:10:27 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 13 Jan 2021 14:10:27 +0000 Subject: Change in osmo-e1-hardware[master]: contrib/jenkins: don't build osmo-gsm-manuals In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/22152 ) Change subject: contrib/jenkins: don't build osmo-gsm-manuals ...................................................................... contrib/jenkins: don't build osmo-gsm-manuals Related: OS#4912 Change-Id: Ie2f193656386038872adddfbd770ea193ace92e5 --- M contrib/jenkins.sh 1 file changed, 0 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved; Verified diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index 39d7f4c..d69fcbb 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -67,7 +67,6 @@ # manuals build + optional publication if [ "$WITH_MANUALS" = "1" ]; then - osmo-build-dep.sh osmo-gsm-manuals make -C doc/manuals clean all if [ "$PUBLISH" = "1" ]; then make -C doc/manuals publish -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/22152 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1-hardware Gerrit-Branch: master Gerrit-Change-Id: Ie2f193656386038872adddfbd770ea193ace92e5 Gerrit-Change-Number: 22152 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 14:16:04 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 13 Jan 2021 14:16:04 +0000 Subject: Change in osmo-pcu[master]: bts: fix uninitialized memaccess in BTS::send_gsmtap_rach() In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22008 ) Change subject: bts: fix uninitialized memaccess in BTS::send_gsmtap_rach() ...................................................................... bts: fix uninitialized memaccess in BTS::send_gsmtap_rach() Unfortunately, RACH.ind on the PCU interface contains no Uplink measurements: neiter RSSI nor C/I. In order to avoid sending garbage, let's zero-initialize 'struct pcu_l1_meas'. Change-Id: I8c3210c428da17d23d798f3ef9df941ded6e162a Fixes: CID#216512 --- M src/bts.cpp 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/src/bts.cpp b/src/bts.cpp index bd0a1d2..87afc9f 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -506,7 +506,7 @@ void BTS::send_gsmtap_rach(enum pcu_gsmtap_category categ, uint8_t channel, const struct rach_ind_params *rip) { - struct pcu_l1_meas meas; + struct pcu_l1_meas meas = { 0 }; uint8_t ra_buf[2]; /* 3GPP TS 44.004 defines 11 bit RA as follows: xxxx xxxx .... .yyy -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22008 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I8c3210c428da17d23d798f3ef9df941ded6e162a Gerrit-Change-Number: 22008 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 14:16:05 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 13 Jan 2021 14:16:05 +0000 Subject: Change in osmo-pcu[master]: bts: fix uninitialized memaccess in BTS::send_gsmtap() In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22155 ) Change subject: bts: fix uninitialized memaccess in BTS::send_gsmtap() ...................................................................... bts: fix uninitialized memaccess in BTS::send_gsmtap() Change-Id: I7c5105c9e8a2c680dc8b24cc5e3bda6f7405a3ee Fixes: CID#216511 --- M src/bts.cpp 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/src/bts.cpp b/src/bts.cpp index 87afc9f..307df94 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -529,7 +529,7 @@ uint8_t ts_no, uint8_t channel, uint32_t fn, const uint8_t *data, unsigned int len) { - struct pcu_l1_meas meas; + struct pcu_l1_meas meas = { 0 }; send_gsmtap_meas(categ, uplink, trx_no, ts_no, channel, fn, data, len, &meas); } -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22155 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I7c5105c9e8a2c680dc8b24cc5e3bda6f7405a3ee Gerrit-Change-Number: 22155 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 14:22:33 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 13 Jan 2021 14:22:33 +0000 Subject: Change in osmo-bts[master]: power_control: print current RxLev and lower/upper thresholds In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/22117 ) Change subject: power_control: print current RxLev and lower/upper thresholds ...................................................................... Patch Set 1: > Patch Set 1: > > So IIUC we don't print the desired target level anymore because that's no longer the aim of the algo? because we now target a given RxLev instead of a given received dBm? If that's not the case, then I think it still makes sense to print that value, which you are removing in this patch (and you are not saying in the commit message). Well, since we introduced the hysteresis there is no "desired target level" anymore; we have lower and upper thresholds instead. Once the averaged RxLev enters the threshold window, the loop would not try to increase/decrease it (by decreasing/increasing attenuation) further towards the target, unless it leaves that window. So yes, I think it does not make sense to print the "target" anymore. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22117 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I5f8c987054b2b01acdb9f525d06ca15bbc577070 Gerrit-Change-Number: 22117 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Wed, 13 Jan 2021 14:22:33 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 14:40:59 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 13 Jan 2021 14:40:59 +0000 Subject: Change in osmo-bts[master]: power_control: print current RxLev and lower/upper thresholds In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/22117 ) Change subject: power_control: print current RxLev and lower/upper thresholds ...................................................................... Patch Set 1: Code-Review+1 OK and I see the CALC_TARGET part is still conserved because we still use that as a target for MS power, but not for BS power. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22117 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I5f8c987054b2b01acdb9f525d06ca15bbc577070 Gerrit-Change-Number: 22117 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Wed, 13 Jan 2021 14:40:59 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 14:45:47 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 13 Jan 2021 14:45:47 +0000 Subject: Change in docker-playground[master]: fpga-build: add osmo-ci In-Reply-To: References: Message-ID: osmith has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/docker-playground/+/22133 ) Change subject: fpga-build: add osmo-ci ...................................................................... fpga-build: add osmo-ci Clone osmo-ci.git, and install all files from scripts/* to /usr/local/bin. Related: OS#4911 Change-Id: I3625d6f10e566101fb25963757da6827670ca41b --- M fpga-build/Dockerfile 1 file changed, 8 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/33/22133/2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22133 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I3625d6f10e566101fb25963757da6827670ca41b Gerrit-Change-Number: 22133 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 14:45:47 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 13 Jan 2021 14:45:47 +0000 Subject: Change in docker-playground[master]: debian-stretch-jenkins, fpga-build: add gsm-manuals In-Reply-To: References: Message-ID: Hello laforge, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/docker-playground/+/22134 to look at the new patch set (#2). Change subject: debian-stretch-jenkins,fpga-build: add gsm-manuals ...................................................................... debian-stretch-jenkins,fpga-build: add gsm-manuals Prepare to remove 'build-deps.sh osmo-gsm-manuals' calls from all projects. Related: OS#4912 Change-Id: Id402e0ea372b5ca8a6c8f6f5beb190544c888207 --- M debian-stretch-jenkins/Dockerfile M fpga-build/Dockerfile 2 files changed, 8 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/34/22134/2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22134 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Id402e0ea372b5ca8a6c8f6f5beb190544c888207 Gerrit-Change-Number: 22134 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 14:45:47 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 13 Jan 2021 14:45:47 +0000 Subject: Change in docker-playground[master]: Cosmetic: debian-stretch-jenkins, osmo-gsm-tester: fix indent In-Reply-To: References: Message-ID: Hello laforge, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/docker-playground/+/22135 to look at the new patch set (#2). Change subject: Cosmetic: debian-stretch-jenkins, osmo-gsm-tester: fix indent ...................................................................... Cosmetic: debian-stretch-jenkins, osmo-gsm-tester: fix indent Change-Id: Ia6b12b2c35f69eb0434797b29ee0ef676b032250 --- M debian-stretch-jenkins/Dockerfile M osmo-gsm-tester/Dockerfile 2 files changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/35/22135/2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22135 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Ia6b12b2c35f69eb0434797b29ee0ef676b032250 Gerrit-Change-Number: 22135 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 14:47:04 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 13 Jan 2021 14:47:04 +0000 Subject: Change in docker-playground[master]: debian-stretch-jenkins, fpga-build: add gsm-manuals In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22134 ) Change subject: debian-stretch-jenkins,fpga-build: add gsm-manuals ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22134 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Id402e0ea372b5ca8a6c8f6f5beb190544c888207 Gerrit-Change-Number: 22134 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 13 Jan 2021 14:47:04 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 14:47:22 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 13 Jan 2021 14:47:22 +0000 Subject: Change in docker-playground[master]: fpga-build: add osmo-ci In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22133 ) Change subject: fpga-build: add osmo-ci ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22133 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I3625d6f10e566101fb25963757da6827670ca41b Gerrit-Change-Number: 22133 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 13 Jan 2021 14:47:22 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 14:57:06 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 13 Jan 2021 14:57:06 +0000 Subject: Change in docker-playground[master]: fpga-build: add osmo-ci In-Reply-To: References: Message-ID: Hello pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/docker-playground/+/22133 to look at the new patch set (#3). Change subject: fpga-build: add osmo-ci ...................................................................... fpga-build: add osmo-ci Clone osmo-ci.git, and install all files from scripts/* to /usr/local/bin. Related: OS#4911 Change-Id: I3625d6f10e566101fb25963757da6827670ca41b --- M fpga-build/Dockerfile 1 file changed, 8 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/33/22133/3 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22133 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I3625d6f10e566101fb25963757da6827670ca41b Gerrit-Change-Number: 22133 Gerrit-PatchSet: 3 Gerrit-Owner: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 14:57:06 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 13 Jan 2021 14:57:06 +0000 Subject: Change in docker-playground[master]: debian-stretch-jenkins, fpga-build: add gsm-manuals In-Reply-To: References: Message-ID: Hello laforge, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/docker-playground/+/22134 to look at the new patch set (#3). Change subject: debian-stretch-jenkins,fpga-build: add gsm-manuals ...................................................................... debian-stretch-jenkins,fpga-build: add gsm-manuals Prepare to remove 'build-deps.sh osmo-gsm-manuals' calls from all projects. Related: OS#4912 Change-Id: Id402e0ea372b5ca8a6c8f6f5beb190544c888207 --- M debian-stretch-jenkins/Dockerfile M fpga-build/Dockerfile 2 files changed, 8 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/34/22134/3 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22134 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Id402e0ea372b5ca8a6c8f6f5beb190544c888207 Gerrit-Change-Number: 22134 Gerrit-PatchSet: 3 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 14:58:01 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 13 Jan 2021 14:58:01 +0000 Subject: Change in docker-playground[master]: fpga-build: add osmo-ci In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22133 ) Change subject: fpga-build: add osmo-ci ...................................................................... Patch Set 3: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22133 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I3625d6f10e566101fb25963757da6827670ca41b Gerrit-Change-Number: 22133 Gerrit-PatchSet: 3 Gerrit-Owner: osmith Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 13 Jan 2021 14:58:01 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 14:58:08 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 13 Jan 2021 14:58:08 +0000 Subject: Change in docker-playground[master]: debian-stretch-jenkins, fpga-build: add gsm-manuals In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22134 ) Change subject: debian-stretch-jenkins,fpga-build: add gsm-manuals ...................................................................... Patch Set 3: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22134 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Id402e0ea372b5ca8a6c8f6f5beb190544c888207 Gerrit-Change-Number: 22134 Gerrit-PatchSet: 3 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 13 Jan 2021 14:58:08 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 14:58:14 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 13 Jan 2021 14:58:14 +0000 Subject: Change in docker-playground[master]: Cosmetic: debian-stretch-jenkins, osmo-gsm-tester: fix indent In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22135 ) Change subject: Cosmetic: debian-stretch-jenkins, osmo-gsm-tester: fix indent ...................................................................... Patch Set 3: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22135 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Ia6b12b2c35f69eb0434797b29ee0ef676b032250 Gerrit-Change-Number: 22135 Gerrit-PatchSet: 3 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 13 Jan 2021 14:58:14 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 14:58:20 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 13 Jan 2021 14:58:20 +0000 Subject: Change in docker-playground[master]: fpga-build: don't write path to /etc/environment In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22136 ) Change subject: fpga-build: don't write path to /etc/environment ...................................................................... Patch Set 3: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22136 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I5bff98f7af1a2f2de88c8d96d1e30de960057d01 Gerrit-Change-Number: 22136 Gerrit-PatchSet: 3 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 13 Jan 2021 14:58:20 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 14:58:30 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 13 Jan 2021 14:58:30 +0000 Subject: Change in docker-playground[master]: fpga-build: add osmo-ci In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22133 ) Change subject: fpga-build: add osmo-ci ...................................................................... fpga-build: add osmo-ci Clone osmo-ci.git, and install all files from scripts/* to /usr/local/bin. Related: OS#4911 Change-Id: I3625d6f10e566101fb25963757da6827670ca41b --- M fpga-build/Dockerfile 1 file changed, 8 insertions(+), 0 deletions(-) Approvals: osmith: Looks good to me, approved; Verified diff --git a/fpga-build/Dockerfile b/fpga-build/Dockerfile index a9c3ceb..9a81c96 100644 --- a/fpga-build/Dockerfile +++ b/fpga-build/Dockerfile @@ -41,3 +41,11 @@ RUN echo "PATH=/opt/fpga-toolchain/bin:/opt/xpack-riscv-none-embed-gcc-${RISCV_TOOLCHAIN_VER}/bin:\$PATH" >> /etc/environment ENV PATH=/opt/fpga-toolchain/bin:/opt/xpack-riscv-none-embed-gcc-${RISCV_TOOLCHAIN_VER}/bin:${PATH} + +# Install osmo-ci.git/scripts to /usr/local/bin +ADD http://git.osmocom.org/osmo-ci/patch /tmp/osmo-ci-commit +RUN git clone https://git.osmocom.org/osmo-ci osmo-ci && \ + cp -v $(find osmo-ci/scripts \ + -maxdepth 1 \ + -type f ) \ + /usr/local/bin -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22133 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I3625d6f10e566101fb25963757da6827670ca41b Gerrit-Change-Number: 22133 Gerrit-PatchSet: 3 Gerrit-Owner: osmith Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 14:58:30 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 13 Jan 2021 14:58:30 +0000 Subject: Change in docker-playground[master]: debian-stretch-jenkins, fpga-build: add gsm-manuals In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22134 ) Change subject: debian-stretch-jenkins,fpga-build: add gsm-manuals ...................................................................... debian-stretch-jenkins,fpga-build: add gsm-manuals Prepare to remove 'build-deps.sh osmo-gsm-manuals' calls from all projects. Related: OS#4912 Change-Id: Id402e0ea372b5ca8a6c8f6f5beb190544c888207 --- M debian-stretch-jenkins/Dockerfile M fpga-build/Dockerfile 2 files changed, 8 insertions(+), 0 deletions(-) Approvals: osmith: Looks good to me, approved; Verified diff --git a/debian-stretch-jenkins/Dockerfile b/debian-stretch-jenkins/Dockerfile index 1f87445..54c72ed 100644 --- a/debian-stretch-jenkins/Dockerfile +++ b/debian-stretch-jenkins/Dockerfile @@ -156,6 +156,10 @@ -type f ) \ /usr/local/bin +# Install osmo-gsm-manuals to /opt/osmo-gsm-manuals +ADD http://git.osmocom.org/osmo-gsm-manuals/patch /tmp/osmo-gsm-manuals-commit +RUN git -C /opt clone https://git.osmocom.org/osmo-gsm-manuals + # Set a UTF-8 locale RUN sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen && \ dpkg-reconfigure --frontend=noninteractive locales && \ diff --git a/fpga-build/Dockerfile b/fpga-build/Dockerfile index 9a81c96..a46641c 100644 --- a/fpga-build/Dockerfile +++ b/fpga-build/Dockerfile @@ -49,3 +49,7 @@ -maxdepth 1 \ -type f ) \ /usr/local/bin + +# Install osmo-gsm-manuals to /opt/osmo-gsm-manuals +ADD http://git.osmocom.org/osmo-gsm-manuals/patch /tmp/osmo-gsm-manuals-commit +RUN git -C /opt clone https://git.osmocom.org/osmo-gsm-manuals -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22134 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Id402e0ea372b5ca8a6c8f6f5beb190544c888207 Gerrit-Change-Number: 22134 Gerrit-PatchSet: 3 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 14:58:31 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 13 Jan 2021 14:58:31 +0000 Subject: Change in docker-playground[master]: Cosmetic: debian-stretch-jenkins, osmo-gsm-tester: fix indent In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22135 ) Change subject: Cosmetic: debian-stretch-jenkins, osmo-gsm-tester: fix indent ...................................................................... Cosmetic: debian-stretch-jenkins, osmo-gsm-tester: fix indent Change-Id: Ia6b12b2c35f69eb0434797b29ee0ef676b032250 --- M debian-stretch-jenkins/Dockerfile M osmo-gsm-tester/Dockerfile 2 files changed, 2 insertions(+), 2 deletions(-) Approvals: osmith: Looks good to me, approved; Verified diff --git a/debian-stretch-jenkins/Dockerfile b/debian-stretch-jenkins/Dockerfile index 54c72ed..fcd093b 100644 --- a/debian-stretch-jenkins/Dockerfile +++ b/debian-stretch-jenkins/Dockerfile @@ -154,7 +154,7 @@ cp -v $(find osmo-ci/scripts \ -maxdepth 1 \ -type f ) \ - /usr/local/bin + /usr/local/bin # Install osmo-gsm-manuals to /opt/osmo-gsm-manuals ADD http://git.osmocom.org/osmo-gsm-manuals/patch /tmp/osmo-gsm-manuals-commit diff --git a/osmo-gsm-tester/Dockerfile b/osmo-gsm-tester/Dockerfile index 0503fc6..52dc999 100644 --- a/osmo-gsm-tester/Dockerfile +++ b/osmo-gsm-tester/Dockerfile @@ -141,7 +141,7 @@ cp -v $(find osmo-ci/scripts \ -maxdepth 1 \ -type f ) \ - /usr/local/bin + /usr/local/bin # Copy several scripts and permission for osmo-gsm-tester: RUN mkdir -p /usr/local/bin/ && cp osmo-gsm-tester/utils/bin/* /usr/local/bin/ -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22135 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Ia6b12b2c35f69eb0434797b29ee0ef676b032250 Gerrit-Change-Number: 22135 Gerrit-PatchSet: 3 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-CC: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 14:58:31 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 13 Jan 2021 14:58:31 +0000 Subject: Change in docker-playground[master]: fpga-build: don't write path to /etc/environment In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22136 ) Change subject: fpga-build: don't write path to /etc/environment ...................................................................... fpga-build: don't write path to /etc/environment PATH isn't overwritten anymore when jenkins runs docker in osmo-ci.git's master-builds.yml / gerrit-verifications.yml, therefore we can remove this hack. Change-Id: I5bff98f7af1a2f2de88c8d96d1e30de960057d01 --- M fpga-build/Dockerfile 1 file changed, 0 insertions(+), 3 deletions(-) Approvals: osmith: Verified pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/fpga-build/Dockerfile b/fpga-build/Dockerfile index a46641c..135af71 100644 --- a/fpga-build/Dockerfile +++ b/fpga-build/Dockerfile @@ -37,9 +37,6 @@ RUN mkdir /build RUN chown build:build /build -# ENV doesn't worrk for other users -RUN echo "PATH=/opt/fpga-toolchain/bin:/opt/xpack-riscv-none-embed-gcc-${RISCV_TOOLCHAIN_VER}/bin:\$PATH" >> /etc/environment - ENV PATH=/opt/fpga-toolchain/bin:/opt/xpack-riscv-none-embed-gcc-${RISCV_TOOLCHAIN_VER}/bin:${PATH} # Install osmo-ci.git/scripts to /usr/local/bin -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22136 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I5bff98f7af1a2f2de88c8d96d1e30de960057d01 Gerrit-Change-Number: 22136 Gerrit-PatchSet: 3 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 14:59:40 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 13 Jan 2021 14:59:40 +0000 Subject: Change in osmo-ci[master]: contrib/jenkins.sh: clone osmo-gsm-manuals too In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22128 ) Change subject: contrib/jenkins.sh: clone osmo-gsm-manuals too ...................................................................... contrib/jenkins.sh: clone osmo-gsm-manuals too Make osmo-gsm-manuals.git available as ~/osmo-gsm-manuals, so it can be used by osmo-trx and osmo-bts (the only two projects building manuals, which are not running in docker as of writing) instead of cloning the repository in their contrib/jenkins.sh. A similar change to clone osmo-gsm-manuals in the debian-stretch-jenkins image used by all other jobs that build manuals, is done in docker-playground 7e4c8c6f1f798b9b8e57af97131ce3759528e0de. osmo-ci's contrib/jenkins.sh is called by the update-osmo-ci-on-slaves job. Related: OS#4912 Change-Id: I742fd929e39ca32d6034a30af75b6c8e5b47b233 --- M contrib/jenkins.sh 1 file changed, 13 insertions(+), 6 deletions(-) Approvals: pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved; Verified diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index 3ab942a..e93e802 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -1,14 +1,21 @@ #!/bin/sh set -e -x -cd ~/osmo-ci || (cd ~/ && git clone git://git.osmocom.org/osmo-ci && cd ~/osmo-ci) -git rev-parse HEAD -git status +# Clone repository to ~/, or update existing +# $1: name of osmocom project +clone_repo() { + cd ~/"$1" || (cd ~/ && git clone git://git.osmocom.org/"$1" && cd ~/"$1") + git rev-parse HEAD + git status -git fetch && git checkout -f -B master origin/master + git fetch && git checkout -f -B master origin/master -git rev-parse HEAD -git status + git rev-parse HEAD + git status +} + +clone_repo osmo-ci +clone_repo osmo-gsm-manuals if [ `uname` = "Linux" ] && [ "x${OSMO_CI_NO_DOCKER}" != "x1" ]; then scripts/osmo-ci-docker-rebuild.sh -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22128 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I742fd929e39ca32d6034a30af75b6c8e5b47b233 Gerrit-Change-Number: 22128 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 14:59:40 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 13 Jan 2021 14:59:40 +0000 Subject: Change in osmo-ci[master]: ansible: tasks/osmo-ci: clone osmo-gsm-manuals In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22129 ) Change subject: ansible: tasks/osmo-ci: clone osmo-gsm-manuals ...................................................................... ansible: tasks/osmo-ci: clone osmo-gsm-manuals Perform the initial clone of osmo-gsm-manuals.git, just like osmo-ci.git. Related: OS#4912 Change-Id: I39a09a4297c7c78357b3d4db4ab89547fa08db59 --- M ansible/roles/osmocom-jenkins-slave/tasks/osmo-ci.yml 1 file changed, 7 insertions(+), 0 deletions(-) Approvals: pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved; Verified diff --git a/ansible/roles/osmocom-jenkins-slave/tasks/osmo-ci.yml b/ansible/roles/osmocom-jenkins-slave/tasks/osmo-ci.yml index d70d8b6..b26d6ab 100644 --- a/ansible/roles/osmocom-jenkins-slave/tasks/osmo-ci.yml +++ b/ansible/roles/osmocom-jenkins-slave/tasks/osmo-ci.yml @@ -11,6 +11,13 @@ repo: "https://git.osmocom.org/osmo-ci" dest: "/home/{{ jenkins_user }}/osmo-ci" +- name: deploy osmo-gsm-manuals to home directory + become: yes + become_user: "{{ jenkins_user }}" + git: + repo: "https://git.osmocom.org/osmo-gsm-manuals" + dest: "/home/{{ jenkins_user }}/osmo-gsm-manuals" + - name: rebuild osmocom docker images for jenkins build tests become: yes become_user: "{{ jenkins_user }}" -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22129 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I39a09a4297c7c78357b3d4db4ab89547fa08db59 Gerrit-Change-Number: 22129 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 14:59:41 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 13 Jan 2021 14:59:41 +0000 Subject: Change in osmo-ci[master]: jobs/osmo-gsm-manuals-trigger: new job In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22130 ) Change subject: jobs/osmo-gsm-manuals-trigger: new job ...................................................................... jobs/osmo-gsm-manuals-trigger: new job On change, roll out osmo-gsm-manuals to relevant build environments. Related: OS#4912 Change-Id: I104525826068b016b5e06ea52567da4d7beaf7a4 --- A jobs/osmo-gsm-manuals-trigger.yml 1 file changed, 37 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved; Verified diff --git a/jobs/osmo-gsm-manuals-trigger.yml b/jobs/osmo-gsm-manuals-trigger.yml new file mode 100644 index 0000000..d83b9fa --- /dev/null +++ b/jobs/osmo-gsm-manuals-trigger.yml @@ -0,0 +1,37 @@ +# Roll out osmo-gsm-manuals to relevant build environments: +# * jenkins build slaves (update-osmo-ci-on-slaves) +# * docker images built on build slaves (update-osmo-ci-on-slaves) +# * docker image built in registry: fpga-build (registry-rebuild-upload-fpga-build) + +- project: + name: osmo-gsm-manuals-trigger + jobs: + - 'osmo-gsm-manuals-trigger' + +# Trigger from osmo-gsm-manuals.git too +- job: + name: osmo-gsm-manuals-trigger + description: | + Roll out osmo-gsm-manuals to relevant build environments.
+
+ Related: OS#4912 + node: osmocom-master-debian9 + scm: + - git: + url: git://git.osmocom.org/osmo-gsm-manuals + git-config-name: 'Jenkins Builder' + git-config-email: 'jenkins at osmocom.org' + skip-tag: true + branches: + - 'origin/master' + triggers: + - pollscm: + cron: "H/5 * * * *" + ignore-post-commit-hooks: false + publishers: + - trigger: + project: > + update-osmo-ci-on-slaves, + registry-rebuild-upload-fpga-build + +# vim: expandtab tabstop=2 shiftwidth=2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22130 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I104525826068b016b5e06ea52567da4d7beaf7a4 Gerrit-Change-Number: 22130 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 15:27:44 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 13 Jan 2021 15:27:44 +0000 Subject: Change in osmo-ci[master]: contrib/jenkins: add missing cd ~/osmo-ci References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/22157 ) Change subject: contrib/jenkins: add missing cd ~/osmo-ci ...................................................................... contrib/jenkins: add missing cd ~/osmo-ci Fixes: 829f8b94 ("ansible: tasks/osmo-ci: clone osmo-gsm-manuals") Change-Id: I3ca101f73cecfc5cda447ffce53a104ecc39e1fd --- M contrib/jenkins.sh 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/57/22157/1 diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index e93e802..e1564a7 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -18,5 +18,6 @@ clone_repo osmo-gsm-manuals if [ `uname` = "Linux" ] && [ "x${OSMO_CI_NO_DOCKER}" != "x1" ]; then + cd ~/osmo-ci scripts/osmo-ci-docker-rebuild.sh fi -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22157 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I3ca101f73cecfc5cda447ffce53a104ecc39e1fd Gerrit-Change-Number: 22157 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 15:28:21 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 13 Jan 2021 15:28:21 +0000 Subject: Change in osmo-ci[master]: contrib/jenkins: add missing cd ~/osmo-ci In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22157 ) Change subject: contrib/jenkins: add missing cd ~/osmo-ci ...................................................................... Patch Set 1: Verified+1 Code-Review+2 Trivial fixup commit, merging directly to unbreak the update-osmo-ci-on-slaves job. -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22157 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I3ca101f73cecfc5cda447ffce53a104ecc39e1fd Gerrit-Change-Number: 22157 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: osmith Gerrit-Comment-Date: Wed, 13 Jan 2021 15:28:21 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 15:28:51 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 13 Jan 2021 15:28:51 +0000 Subject: Change in osmo-ci[master]: jobs: update OSMO_GSM_MANUALS_DIR In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22131 ) Change subject: jobs: update OSMO_GSM_MANUALS_DIR ...................................................................... jobs: update OSMO_GSM_MANUALS_DIR Use new location inside / outside docker, where the repository was cloned already. So it does not need to be cloned during the job. Roll out: make sure that the docker images are already built! (or let me merge it) Related: OS#4912 Depends: docker-playground Id402e0ea372b5ca8a6c8f6f5beb190544c888207 Change-Id: Ibe91a613162687589e006cba99193606fb8a3eb9 --- M jobs/gerrit-verifications.yml M jobs/master-builds.yml 2 files changed, 9 insertions(+), 9 deletions(-) Approvals: pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved; Verified diff --git a/jobs/gerrit-verifications.yml b/jobs/gerrit-verifications.yml index fbefbdb..99bfcce 100644 --- a/jobs/gerrit-verifications.yml +++ b/jobs/gerrit-verifications.yml @@ -34,7 +34,7 @@ -e JOB_NAME="$JOB_NAME" \ -e MAKE=make \ -e OSMOPY_DEBUG_TCP_SOCKETS="1" \ - -e OSMO_GSM_MANUALS_DIR="/build/deps/osmo-gsm-manuals" \ + -e OSMO_GSM_MANUALS_DIR="/opt/osmo-gsm-manuals" \ -e PARALLEL_MAKE="$PARALLEL_MAKE" \ -e WITH_MANUALS="1" \ -w /build -i -u build \ @@ -113,7 +113,7 @@ concurrent: false cmd: | export ASCIIDOC_WARNINGS_CHECK="1" - export OSMO_GSM_MANUALS_DIR="$PWD/deps/osmo-gsm-manuals" + export OSMO_GSM_MANUALS_DIR="$HOME/osmo-gsm-manuals" {timeout_cmd} ./contrib/jenkins_bts_model.sh "$BTS_MODEL" - osmo_dia2gsup: @@ -133,7 +133,7 @@ -e JOB_NAME="$JOB_NAME" \ -e MAKE=make \ -e OSMOPY_DEBUG_TCP_SOCKETS="1" \ - -e OSMO_GSM_MANUALS_DIR="/build/deps/osmo-gsm-manuals" \ + -e OSMO_GSM_MANUALS_DIR="/opt/osmo-gsm-manuals" \ -e PARALLEL_MAKE="$PARALLEL_MAKE" \ -e WITH_MANUALS="1" \ -w /build -i -u build \ @@ -247,7 +247,7 @@ (INSTR == "--with-neon-vfpv4" && WITH_MANUALS == "0" && label == "rpi4-deb9build-ansible") cmd: | export ASCIIDOC_WARNINGS_CHECK=1 - export OSMO_GSM_MANUALS_DIR="$PWD/deps/osmo-gsm-manuals" + export OSMO_GSM_MANUALS_DIR="$HOME/osmo-gsm-manuals" {timeout_cmd} ./contrib/jenkins.sh - osmocom-bb diff --git a/jobs/master-builds.yml b/jobs/master-builds.yml index c648a7b..4b0f621 100644 --- a/jobs/master-builds.yml +++ b/jobs/master-builds.yml @@ -33,7 +33,7 @@ -e JOB_NAME="$JOB_NAME" \ -e MAKE=make \ -e OSMOPY_DEBUG_TCP_SOCKETS="1" \ - -e OSMO_GSM_MANUALS_DIR="/build/deps/osmo-gsm-manuals" \ + -e OSMO_GSM_MANUALS_DIR="/opt/osmo-gsm-manuals" \ -e PARALLEL_MAKE="$PARALLEL_MAKE" \ -e PUBLISH="1" \ -e WITH_MANUALS="1" \ @@ -197,7 +197,7 @@ concurrent: false cmd: | export ASCIIDOC_WARNINGS_CHECK=1 - export OSMO_GSM_MANUALS_DIR="$PWD/deps/osmo-gsm-manuals" + export OSMO_GSM_MANUALS_DIR="$HOME/osmo-gsm-manuals" export PUBLISH=1 ./contrib/jenkins_bts_model.sh "$BTS_MODEL" @@ -213,7 +213,7 @@ -e JOB_NAME="$JOB_NAME" \ -e MAKE=make \ -e OSMOPY_DEBUG_TCP_SOCKETS="1" \ - -e OSMO_GSM_MANUALS_DIR="/build/deps/osmo-gsm-manuals" \ + -e OSMO_GSM_MANUALS_DIR="/opt/osmo-gsm-manuals" \ -e PARALLEL_MAKE="$PARALLEL_MAKE" \ -e PUBLISH="1" \ -e WITH_MANUALS="1" \ @@ -236,7 +236,7 @@ -e JOB_NAME="$JOB_NAME" \ -e MAKE=make \ -e OSMOPY_DEBUG_TCP_SOCKETS="1" \ - -e OSMO_GSM_MANUALS_DIR="/build/deps/osmo-gsm-manuals" \ + -e OSMO_GSM_MANUALS_DIR="/opt/osmo-gsm-manuals" \ -e PARALLEL_MAKE="$PARALLEL_MAKE" \ -e PUBLISH="1" \ -e WITH_MANUALS="1" \ @@ -361,7 +361,7 @@ (INSTR == "--with-neon-vfpv4" && WITH_MANUALS == "0" && label == "rpi4-deb9build-ansible") cmd: | export ASCIIDOC_WARNINGS_CHECK=1 - export OSMO_GSM_MANUALS_DIR="$PWD/deps/osmo-gsm-manuals" + export OSMO_GSM_MANUALS_DIR="$HOME/osmo-gsm-manuals" export PUBLISH=1 ./contrib/jenkins.sh -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22131 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ibe91a613162687589e006cba99193606fb8a3eb9 Gerrit-Change-Number: 22131 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 15:28:51 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 13 Jan 2021 15:28:51 +0000 Subject: Change in osmo-ci[master]: jobs: remove duplicate docker_run In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22132 ) Change subject: jobs: remove duplicate docker_run ...................................................................... jobs: remove duplicate docker_run docker_run was duplicated for osmo-e1-hardware and no2bootloader, so the '-e PATH' line could be removed from the global docker_run. It was overriding the PATH, which then did not contain the path to the compiler toolchain anymore. This workaround is not needed anymore since de5aa17d6 ('jobs: don't overwrite PATH in "docker run"'). Related: OS#4911 Change-Id: I97a4add17d9fa1bd28ab0ceb054b9a8d948b6f86 --- M jobs/gerrit-verifications.yml M jobs/master-builds.yml 2 files changed, 0 insertions(+), 55 deletions(-) Approvals: pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved; Verified diff --git a/jobs/gerrit-verifications.yml b/jobs/gerrit-verifications.yml index 99bfcce..5447495 100644 --- a/jobs/gerrit-verifications.yml +++ b/jobs/gerrit-verifications.yml @@ -122,23 +122,6 @@ cmd: '{docker_run} {docker_img_erlang} {timeout_cmd} /build/contrib/jenkins.sh' - osmo-e1-hardware: - docker_run: | - ARTIFACT_STORE="$HOME/jenkins_build_artifact_store" - mkdir -p "$ARTIFACT_STORE" - docker run --rm=true \ - --cap-add SYS_PTRACE \ - -e ARTIFACT_STORE=/artifact_store \ - -e ASCIIDOC_WARNINGS_CHECK="1" \ - -e HOME=/build \ - -e JOB_NAME="$JOB_NAME" \ - -e MAKE=make \ - -e OSMOPY_DEBUG_TCP_SOCKETS="1" \ - -e OSMO_GSM_MANUALS_DIR="/opt/osmo-gsm-manuals" \ - -e PARALLEL_MAKE="$PARALLEL_MAKE" \ - -e WITH_MANUALS="1" \ - -w /build -i -u build \ - -v "$PWD:/build" -v "$HOME/bin:/build_bin" \ - -v "$ARTIFACT_STORE:/artifact_store" \ docker_img: 'registry.osmocom.org/$USER/fpga-build' cmd: 'docker pull {docker_img} && {docker_run} {docker_img} {timeout_cmd} /build/contrib/jenkins.sh' diff --git a/jobs/master-builds.yml b/jobs/master-builds.yml index 4b0f621..cab841d 100644 --- a/jobs/master-builds.yml +++ b/jobs/master-builds.yml @@ -202,48 +202,10 @@ ./contrib/jenkins_bts_model.sh "$BTS_MODEL" - osmo-e1-hardware: - docker_run: | - ARTIFACT_STORE="$HOME/jenkins_build_artifact_store" - mkdir -p "$ARTIFACT_STORE" - docker run --rm=true \ - --cap-add SYS_PTRACE \ - -e ARTIFACT_STORE=/artifact_store \ - -e ASCIIDOC_WARNINGS_CHECK="1" \ - -e HOME=/build \ - -e JOB_NAME="$JOB_NAME" \ - -e MAKE=make \ - -e OSMOPY_DEBUG_TCP_SOCKETS="1" \ - -e OSMO_GSM_MANUALS_DIR="/opt/osmo-gsm-manuals" \ - -e PARALLEL_MAKE="$PARALLEL_MAKE" \ - -e PUBLISH="1" \ - -e WITH_MANUALS="1" \ - -w /build -i -u build \ - -v "$PWD:/build" -v "$HOME/bin:/build_bin" \ - -v "$ARTIFACT_STORE:/artifact_store" \ - -v "$HOME/.ssh:/home/build/.ssh:ro" \ docker_img: 'registry.osmocom.org/$USER/fpga-build' cmd: 'docker pull {docker_img} && {docker_run} {docker_img} /build/contrib/jenkins.sh --publish' - no2bootloader: git_base_url: github.com/no2fpga - docker_run: | - ARTIFACT_STORE="$HOME/jenkins_build_artifact_store" - mkdir -p "$ARTIFACT_STORE" - docker run --rm=true \ - --cap-add SYS_PTRACE \ - -e ARTIFACT_STORE=/artifact_store \ - -e ASCIIDOC_WARNINGS_CHECK="1" \ - -e HOME=/build \ - -e JOB_NAME="$JOB_NAME" \ - -e MAKE=make \ - -e OSMOPY_DEBUG_TCP_SOCKETS="1" \ - -e OSMO_GSM_MANUALS_DIR="/opt/osmo-gsm-manuals" \ - -e PARALLEL_MAKE="$PARALLEL_MAKE" \ - -e PUBLISH="1" \ - -e WITH_MANUALS="1" \ - -w /build -i -u build \ - -v "$PWD:/build" -v "$HOME/bin:/build_bin" \ - -v "$ARTIFACT_STORE:/artifact_store" \ - -v "$HOME/.ssh:/home/build/.ssh:ro" \ docker_img: 'registry.osmocom.org/$USER/fpga-build' cmd: 'docker pull {docker_img} && {docker_run} {docker_img} /build/contrib/jenkins.sh --publish' email: gerrit-log at lists.osmocom.org laforge at gnumonks.org kredon at sysmocom.de 246tnt at gmail.com -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22132 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I97a4add17d9fa1bd28ab0ceb054b9a8d948b6f86 Gerrit-Change-Number: 22132 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 15:28:52 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 13 Jan 2021 15:28:52 +0000 Subject: Change in osmo-ci[master]: contrib/jenkins: add missing cd ~/osmo-ci In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22157 ) Change subject: contrib/jenkins: add missing cd ~/osmo-ci ...................................................................... contrib/jenkins: add missing cd ~/osmo-ci Fixes: 829f8b94 ("ansible: tasks/osmo-ci: clone osmo-gsm-manuals") Change-Id: I3ca101f73cecfc5cda447ffce53a104ecc39e1fd --- M contrib/jenkins.sh 1 file changed, 1 insertion(+), 0 deletions(-) Approvals: osmith: Looks good to me, approved; Verified diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index e93e802..e1564a7 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -18,5 +18,6 @@ clone_repo osmo-gsm-manuals if [ `uname` = "Linux" ] && [ "x${OSMO_CI_NO_DOCKER}" != "x1" ]; then + cd ~/osmo-ci scripts/osmo-ci-docker-rebuild.sh fi -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22157 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I3ca101f73cecfc5cda447ffce53a104ecc39e1fd Gerrit-Change-Number: 22157 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: osmith Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 15:44:20 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 13 Jan 2021 15:44:20 +0000 Subject: Change in osmo-sip-connector[master]: contrib/jenkins: don't build osmo-gsm-manuals In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sip-connector/+/22137 ) Change subject: contrib/jenkins: don't build osmo-gsm-manuals ...................................................................... Patch Set 1: This change is ready for review. -- To view, visit https://gerrit.osmocom.org/c/osmo-sip-connector/+/22137 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sip-connector Gerrit-Branch: master Gerrit-Change-Id: Iae17e6d6f4242f98676dd3a1b01c419ac7288047 Gerrit-Change-Number: 22137 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 13 Jan 2021 15:44:20 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 16:00:01 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 13 Jan 2021 16:00:01 +0000 Subject: Change in osmo-ci[master]: Revert "osmo-build-dep.sh: don't build osmo-gsm-manuals" References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/22158 ) Change subject: Revert "osmo-build-dep.sh: don't build osmo-gsm-manuals" ...................................................................... Revert "osmo-build-dep.sh: don't build osmo-gsm-manuals" Now that we have the proper fix of making a clone of osmo-gsm-manuals.git available before builds start, and not using 'osmo-build-dep.sh osmo-gsm-manuals' in the contrib/jenkins.sh files anymore, we can remove the temporary solution. This reverts commit 4cbc445616fc9e0e4ded5eba56b2e741d0f332a3. Depends: https://gerrit.osmocom.org/q/topic:jenkins-no-manuals-dep Change-Id: I88d57ee04775dc75e6ca3152d7edfa7f47608c8a --- M scripts/osmo-build-dep.sh 1 file changed, 0 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/58/22158/1 diff --git a/scripts/osmo-build-dep.sh b/scripts/osmo-build-dep.sh index 45916f6..7013414 100755 --- a/scripts/osmo-build-dep.sh +++ b/scripts/osmo-build-dep.sh @@ -54,14 +54,6 @@ cd "$subdir" fi -# osmo-gsm-manuals: save time by only cloning the repository (OS#4912). -# Projects depending on osmo-gsm-manuals can still build the manuals, because -# we set OSMO_GSM_MANUALS_DIR to the clone destination. -if [ "$project" = "osmo-gsm-manuals" ]; then - echo "WARNING: osmo-gsm-manuals cloned, but skipping build (OS#4912)" - exit 0 -fi - autoreconf --install --force ./configure --prefix="$inst/stow/$project" --with-systemdsystemunitdir="$inst/stow/$project/lib/systemd/system" $cfg -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22158 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I88d57ee04775dc75e6ca3152d7edfa7f47608c8a Gerrit-Change-Number: 22158 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 16:00:41 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 13 Jan 2021 16:00:41 +0000 Subject: Change in osmo-ci[master]: Revert "osmo-build-dep.sh: don't build osmo-gsm-manuals" In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22158 ) Change subject: Revert "osmo-build-dep.sh: don't build osmo-gsm-manuals" ...................................................................... Patch Set 1: Marking as WIP until the depending patches are merged (the ones that remove 'osmo-build-dep.sh osmo-gsm-manuals' calls). -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22158 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I88d57ee04775dc75e6ca3152d7edfa7f47608c8a Gerrit-Change-Number: 22158 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Comment-Date: Wed, 13 Jan 2021 16:00:41 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 16:09:07 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 13 Jan 2021 16:09:07 +0000 Subject: Change in osmo-e1-hardware[master]: Revert "contrib/jenkins.sh: ugly work-around for PATH problems" References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/22159 ) Change subject: Revert "contrib/jenkins.sh: ugly work-around for PATH problems" ...................................................................... Revert "contrib/jenkins.sh: ugly work-around for PATH problems" Revert, because we don't overwrite PATH anymore. This reverts commit 5ab3bfdba4de2af32aeffdc92de963cb34c9715a. Related: OS#4911 Change-Id: I981511f406b80b80e2a863c94b6a60755d824fec --- M contrib/jenkins.sh 1 file changed, 0 insertions(+), 9 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1-hardware refs/changes/59/22159/1 diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index d69fcbb..171d368 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -5,15 +5,6 @@ # * WITH_MANUALS: build manual PDFs if set to "1" # * PUBLISH: upload manuals after building if set to "1" (ignored without WITH_MANUALS = "1") -# ugly, ugly hack to work around the fact that we cannot _extend_ the path when executing -# a docker container. We can either override it (and loose our /opt/... toolchain paths) -# or we can not specify the /build_bin whcih means the osmo-build-dep.sh is not found -# See https://osmocom.org/issues/4911 -if [ -d /build_bin ]; then - PATH=$PATH:/build_bin - export PATH -fi - if ! [ -x "$(command -v osmo-build-dep.sh)" ]; then echo "Error: We need to have scripts/osmo-deps.sh from http://git.osmocom.org/osmo-ci/ in PATH !" exit 2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/22159 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1-hardware Gerrit-Branch: master Gerrit-Change-Id: I981511f406b80b80e2a863c94b6a60755d824fec Gerrit-Change-Number: 22159 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 16:14:15 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 13 Jan 2021 16:14:15 +0000 Subject: Change in osmo-bsc[master]: Introduce Neighbor Resolution Service In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, fixeria, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bsc/+/21848 to look at the new patch set (#9). Change subject: Introduce Neighbor Resolution Service ...................................................................... Introduce Neighbor Resolution Service This new CTRL interface allows users of this BSC (such as attached PCU) to gather neighbor information. This interface is needed for PCU to translate ARFCN+BSIC keys provided by MS in the Um side into CGI + RAC keys used to identify target cells in RIM procedures against SGSNs on the Gb interface. This patch extends the already existing neighbor information storage in the VTY by allowing storage of CGI + RAC (RAC couldn't be stored beforehand). Related: SYS#4909 Depends: libosmocore.git Change-Id If48f412c32e8e5a3e604a78d12b74787a4786374 Change-Id: Ib07c9d23026332a207d4b7a0f7b4e76c0094e379 --- M doc/manuals/chapters/handover.adoc M include/osmocom/bsc/gsm_data.h M include/osmocom/bsc/neighbor_ident.h M src/osmo-bsc/bsc_vty.c M src/osmo-bsc/bts.c M src/osmo-bsc/neighbor_ident.c M src/osmo-bsc/neighbor_ident_vty.c M src/osmo-bsc/osmo_bsc_main.c M tests/Makefile.am M tests/bsc/Makefile.am A tests/ctrl/osmo-bsc-neigh-test.cfg M tests/ctrl_test_runner.py M tests/gsm0408/Makefile.am M tests/neighbor_ident.vty 14 files changed, 471 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/48/21848/9 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21848 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ib07c9d23026332a207d4b7a0f7b4e76c0094e379 Gerrit-Change-Number: 21848 Gerrit-PatchSet: 9 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 16:14:16 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 13 Jan 2021 16:14:16 +0000 Subject: Change in osmo-bsc[master]: doc: handover: Fix malformed table References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22160 ) Change subject: doc: handover: Fix malformed table ...................................................................... doc: handover: Fix malformed table Change-Id: I197598e8dba719ef7e0f5a1727aa3cc82b5b5c9a --- M doc/manuals/chapters/handover.adoc 1 file changed, 6 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/60/22160/1 diff --git a/doc/manuals/chapters/handover.adoc b/doc/manuals/chapters/handover.adoc index d9805f7..8601dce 100644 --- a/doc/manuals/chapters/handover.adoc +++ b/doc/manuals/chapters/handover.adoc @@ -634,6 +634,7 @@ * EARFCN (EUTRAN Absolute Radio Channel Number) on which the cell broadcasts * Reselection thresholds towards E-UTRAN cells: + [width="30%"] |==== | 0 | 0 dB @@ -642,10 +643,12 @@ | 3 | 6 dB | ... | ... | 31 | 62 dB -|===== +|==== + * Priority of E-UTRAN frequency: 0 = lowest priority, ..., 7 = highest priority * QRXLEVMIN parameter: Minimum required RX level in the UTRAN FDD cell (dBm), see 3GPP TS 25.304. + [width="30%"] |==== | 0 | -140 dBm @@ -654,6 +657,7 @@ | ... | ... | 31 | -78 dBm |==== + * Measurement bandwidth in MHz, see 3GPP TS 44.018 and 3GPP TS 44.060. This field specifies the minimum value of the channel bandwidth of all valid E-UTRAN cells on the specified EARFCN. It is defined by the @@ -664,6 +668,7 @@ station supporting wideband RSRQ measurements shall measure over the indicated number of resource blocks. The field is coded according to the following table: + [width="30%"] |==== | 0 | N_RB = 6 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22160 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I197598e8dba719ef7e0f5a1727aa3cc82b5b5c9a Gerrit-Change-Number: 22160 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 17:22:18 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Wed, 13 Jan 2021 17:22:18 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Increase TLLI cache timeout to 10s References: Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22161 ) Change subject: gbproxy: Increase TLLI cache timeout to 10s ...................................................................... gbproxy: Increase TLLI cache timeout to 10s The range of SUSPEND/RESUME timers T3/T4 is up to 10s so we should keep the cache entries valid for this time. Fixes: OS#4895 Change-Id: I9e88e49981098831f3255938deb868f4503f650f Related: SYS#5235 --- M src/gbproxy/gb_proxy.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/61/22161/1 diff --git a/src/gbproxy/gb_proxy.c b/src/gbproxy/gb_proxy.c index 91324dd..7f8260c 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -1413,7 +1413,7 @@ cfg->pool.bvc_fc_ratio = 100; cfg->pool.null_nri_ranges = osmo_nri_ranges_alloc(cfg); /* TODO: Make configurable */ - cfg->tlli_cache.timeout = 5; + cfg->tlli_cache.timeout = 10; hash_init(cfg->bss_nses); hash_init(cfg->sgsn_nses); -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22161 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I9e88e49981098831f3255938deb868f4503f650f Gerrit-Change-Number: 22161 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 17:27:28 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 13 Jan 2021 17:27:28 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Increase TLLI cache timeout to 10s In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22161 ) Change subject: gbproxy: Increase TLLI cache timeout to 10s ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22161 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I9e88e49981098831f3255938deb868f4503f650f Gerrit-Change-Number: 22161 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: laforge Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Wed, 13 Jan 2021 17:27:28 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 17:27:36 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 13 Jan 2021 17:27:36 +0000 Subject: Change in osmo-bsc[master]: doc: handover: Fix malformed table In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22160 ) Change subject: doc: handover: Fix malformed table ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22160 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I197598e8dba719ef7e0f5a1727aa3cc82b5b5c9a Gerrit-Change-Number: 22160 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 13 Jan 2021 17:27:36 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 17:27:38 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 13 Jan 2021 17:27:38 +0000 Subject: Change in osmo-bsc[master]: doc: handover: Fix malformed table In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22160 ) Change subject: doc: handover: Fix malformed table ...................................................................... doc: handover: Fix malformed table Change-Id: I197598e8dba719ef7e0f5a1727aa3cc82b5b5c9a --- M doc/manuals/chapters/handover.adoc 1 file changed, 6 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/doc/manuals/chapters/handover.adoc b/doc/manuals/chapters/handover.adoc index d9805f7..8601dce 100644 --- a/doc/manuals/chapters/handover.adoc +++ b/doc/manuals/chapters/handover.adoc @@ -634,6 +634,7 @@ * EARFCN (EUTRAN Absolute Radio Channel Number) on which the cell broadcasts * Reselection thresholds towards E-UTRAN cells: + [width="30%"] |==== | 0 | 0 dB @@ -642,10 +643,12 @@ | 3 | 6 dB | ... | ... | 31 | 62 dB -|===== +|==== + * Priority of E-UTRAN frequency: 0 = lowest priority, ..., 7 = highest priority * QRXLEVMIN parameter: Minimum required RX level in the UTRAN FDD cell (dBm), see 3GPP TS 25.304. + [width="30%"] |==== | 0 | -140 dBm @@ -654,6 +657,7 @@ | ... | ... | 31 | -78 dBm |==== + * Measurement bandwidth in MHz, see 3GPP TS 44.018 and 3GPP TS 44.060. This field specifies the minimum value of the channel bandwidth of all valid E-UTRAN cells on the specified EARFCN. It is defined by the @@ -664,6 +668,7 @@ station supporting wideband RSRQ measurements shall measure over the indicated number of resource blocks. The field is coded according to the following table: + [width="30%"] |==== | 0 | N_RB = 6 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22160 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I197598e8dba719ef7e0f5a1727aa3cc82b5b5c9a Gerrit-Change-Number: 22160 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 17:29:09 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 13 Jan 2021 17:29:09 +0000 Subject: Change in osmo-bsc[master]: Introduce Neighbor Resolution Service In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21848 ) Change subject: Introduce Neighbor Resolution Service ...................................................................... Patch Set 9: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21848 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ib07c9d23026332a207d4b7a0f7b4e76c0094e379 Gerrit-Change-Number: 21848 Gerrit-PatchSet: 9 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 13 Jan 2021 17:29:09 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 17:30:01 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 13 Jan 2021 17:30:01 +0000 Subject: Change in libosmocore[master]: ctrl: ports.h: Add OSMO_CTRL_PORT_BSC_NEIGH In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22156 ) Change subject: ctrl: ports.h: Add OSMO_CTRL_PORT_BSC_NEIGH ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22156 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic77a8cff022c2f939a684ebd1f9f62a82e0de510 Gerrit-Change-Number: 22156 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 13 Jan 2021 17:30:01 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 17:30:03 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 13 Jan 2021 17:30:03 +0000 Subject: Change in libosmocore[master]: ctrl: ports.h: Add OSMO_CTRL_PORT_BSC_NEIGH In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22156 ) Change subject: ctrl: ports.h: Add OSMO_CTRL_PORT_BSC_NEIGH ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22156 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic77a8cff022c2f939a684ebd1f9f62a82e0de510 Gerrit-Change-Number: 22156 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 13 Jan 2021 17:30:03 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 17:30:05 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 13 Jan 2021 17:30:05 +0000 Subject: Change in libosmocore[master]: ctrl: ports.h: Add OSMO_CTRL_PORT_BSC_NEIGH In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22156 ) Change subject: ctrl: ports.h: Add OSMO_CTRL_PORT_BSC_NEIGH ...................................................................... ctrl: ports.h: Add OSMO_CTRL_PORT_BSC_NEIGH Hence 4248 becomes the well-known port for osmo-bsc's Neighbor Resolution Service. Related: SYS#4909 Change-Id: Ic77a8cff022c2f939a684ebd1f9f62a82e0de510 --- M include/osmocom/ctrl/ports.h 1 file changed, 1 insertion(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/include/osmocom/ctrl/ports.h b/include/osmocom/ctrl/ports.h index 9759dc1..91206dc 100644 --- a/include/osmocom/ctrl/ports.h +++ b/include/osmocom/ctrl/ports.h @@ -12,6 +12,7 @@ #define OSMO_CTRL_PORT_TRX 4236 /* 4237 used by VTY interface */ #define OSMO_CTRL_PORT_BTS 4238 +#define OSMO_CTRL_PORT_BSC_NEIGH 4248 /* osmo-bsc Neighbor Resloution Service */ #define OSMO_CTRL_PORT_NITB_BSC 4249 #define OSMO_CTRL_PORT_BSC_NAT 4250 #define OSMO_CTRL_PORT_SGSN 4251 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22156 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic77a8cff022c2f939a684ebd1f9f62a82e0de510 Gerrit-Change-Number: 22156 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 17:30:39 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 13 Jan 2021 17:30:39 +0000 Subject: Change in osmo-e1-hardware[master]: Revert "contrib/jenkins.sh: ugly work-around for PATH problems" In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/22159 ) Change subject: Revert "contrib/jenkins.sh: ugly work-around for PATH problems" ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/22159 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1-hardware Gerrit-Branch: master Gerrit-Change-Id: I981511f406b80b80e2a863c94b6a60755d824fec Gerrit-Change-Number: 22159 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 13 Jan 2021 17:30:39 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 17:30:42 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 13 Jan 2021 17:30:42 +0000 Subject: Change in osmo-e1-hardware[master]: Revert "contrib/jenkins.sh: ugly work-around for PATH problems" In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/22159 ) Change subject: Revert "contrib/jenkins.sh: ugly work-around for PATH problems" ...................................................................... Revert "contrib/jenkins.sh: ugly work-around for PATH problems" Revert, because we don't overwrite PATH anymore. This reverts commit 5ab3bfdba4de2af32aeffdc92de963cb34c9715a. Related: OS#4911 Change-Id: I981511f406b80b80e2a863c94b6a60755d824fec --- M contrib/jenkins.sh 1 file changed, 0 insertions(+), 9 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved; Verified diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index d69fcbb..171d368 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -5,15 +5,6 @@ # * WITH_MANUALS: build manual PDFs if set to "1" # * PUBLISH: upload manuals after building if set to "1" (ignored without WITH_MANUALS = "1") -# ugly, ugly hack to work around the fact that we cannot _extend_ the path when executing -# a docker container. We can either override it (and loose our /opt/... toolchain paths) -# or we can not specify the /build_bin whcih means the osmo-build-dep.sh is not found -# See https://osmocom.org/issues/4911 -if [ -d /build_bin ]; then - PATH=$PATH:/build_bin - export PATH -fi - if ! [ -x "$(command -v osmo-build-dep.sh)" ]; then echo "Error: We need to have scripts/osmo-deps.sh from http://git.osmocom.org/osmo-ci/ in PATH !" exit 2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/22159 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1-hardware Gerrit-Branch: master Gerrit-Change-Id: I981511f406b80b80e2a863c94b6a60755d824fec Gerrit-Change-Number: 22159 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 17:30:50 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 13 Jan 2021 17:30:50 +0000 Subject: Change in openbsc[master]: contrib/jenkins: don't build osmo-gsm-manuals In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/openbsc/+/22141 ) Change subject: contrib/jenkins: don't build osmo-gsm-manuals ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/openbsc/+/22141 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-Change-Id: Idb3b05412b99484f7f7de91ee96c69bfb4e3d511 Gerrit-Change-Number: 22141 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 13 Jan 2021 17:30:50 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 17:30:52 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 13 Jan 2021 17:30:52 +0000 Subject: Change in openbsc[master]: contrib/jenkins: don't build osmo-gsm-manuals In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/openbsc/+/22141 ) Change subject: contrib/jenkins: don't build osmo-gsm-manuals ...................................................................... contrib/jenkins: don't build osmo-gsm-manuals Related: OS#4912 Change-Id: Idb3b05412b99484f7f7de91ee96c69bfb4e3d511 --- M contrib/jenkins.sh 1 file changed, 0 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index da8703a..4b9d532 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -54,7 +54,6 @@ # Build and publish manuals if [ "$WITH_MANUALS" = "1" ]; then # Build all manuals first - osmo-build-dep.sh osmo-gsm-manuals for dir in "$base"/manuals/*/; do make -C "$dir" done -- To view, visit https://gerrit.osmocom.org/c/openbsc/+/22141 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-Change-Id: Idb3b05412b99484f7f7de91ee96c69bfb4e3d511 Gerrit-Change-Number: 22141 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 17:30:54 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 13 Jan 2021 17:30:54 +0000 Subject: Change in osmo-pcu[master]: contrib/jenkins: don't build osmo-gsm-manuals In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22148 ) Change subject: contrib/jenkins: don't build osmo-gsm-manuals ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22148 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: If45bb7d4958b200ca6b5d1c5b8a52eba06944909 Gerrit-Change-Number: 22148 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 13 Jan 2021 17:30:54 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 17:30:56 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 13 Jan 2021 17:30:56 +0000 Subject: Change in osmo-pcu[master]: contrib/jenkins: don't build osmo-gsm-manuals In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22148 ) Change subject: contrib/jenkins: don't build osmo-gsm-manuals ...................................................................... contrib/jenkins: don't build osmo-gsm-manuals Related: OS#4912 Change-Id: If45bb7d4958b200ca6b5d1c5b8a52eba06944909 --- M contrib/jenkins.sh 1 file changed, 0 insertions(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index e40e081..7c620b9 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -81,7 +81,6 @@ export PATH="$inst/bin:$PATH" if [ "$WITH_MANUALS" = "1" ]; then - osmo-build-dep.sh osmo-gsm-manuals PCU_CONFIG="$PCU_CONFIG --enable-manuals" fi -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22148 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: If45bb7d4958b200ca6b5d1c5b8a52eba06944909 Gerrit-Change-Number: 22148 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 17:30:57 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 13 Jan 2021 17:30:57 +0000 Subject: Change in osmo-iuh[master]: contrib/jenkins: don't build osmo-gsm-manuals In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-iuh/+/22144 ) Change subject: contrib/jenkins: don't build osmo-gsm-manuals ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-iuh/+/22144 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: master Gerrit-Change-Id: I339cc37a259e30b131fadbdaebd413c54b04f0a0 Gerrit-Change-Number: 22144 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 13 Jan 2021 17:30:57 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 17:30:59 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 13 Jan 2021 17:30:59 +0000 Subject: Change in osmo-iuh[master]: contrib/jenkins: don't build osmo-gsm-manuals In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-iuh/+/22144 ) Change subject: contrib/jenkins: don't build osmo-gsm-manuals ...................................................................... contrib/jenkins: don't build osmo-gsm-manuals Related: OS#4912 Change-Id: I339cc37a259e30b131fadbdaebd413c54b04f0a0 --- M contrib/jenkins.sh 1 file changed, 0 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index 46d38f7..a3a3d4a 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -28,7 +28,6 @@ CONFIG="" if [ "$WITH_MANUALS" = "1" ]; then - osmo-build-dep.sh osmo-gsm-manuals CONFIG="--enable-manuals" fi -- To view, visit https://gerrit.osmocom.org/c/osmo-iuh/+/22144 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: master Gerrit-Change-Id: I339cc37a259e30b131fadbdaebd413c54b04f0a0 Gerrit-Change-Number: 22144 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 17:31:00 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 13 Jan 2021 17:31:00 +0000 Subject: Change in osmo-hlr[master]: contrib/jenkins: don't build osmo-gsm-manuals In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-hlr/+/22147 ) Change subject: contrib/jenkins: don't build osmo-gsm-manuals ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/22147 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-Change-Id: I22246f3ff105183a7a7a0279fd6c5cde9cd19952 Gerrit-Change-Number: 22147 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 13 Jan 2021 17:31:00 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 17:31:02 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 13 Jan 2021 17:31:02 +0000 Subject: Change in osmo-hlr[master]: contrib/jenkins: don't build osmo-gsm-manuals In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-hlr/+/22147 ) Change subject: contrib/jenkins: don't build osmo-gsm-manuals ...................................................................... contrib/jenkins: don't build osmo-gsm-manuals Related: OS#4912 Change-Id: I22246f3ff105183a7a7a0279fd6c5cde9cd19952 --- M contrib/jenkins.sh 1 file changed, 0 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index b924075..c67a1c3 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -35,7 +35,6 @@ # Additional configure options and depends CONFIG="" if [ "$WITH_MANUALS" = "1" ]; then - osmo-build-dep.sh osmo-gsm-manuals CONFIG="--enable-manuals" fi -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/22147 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-Change-Id: I22246f3ff105183a7a7a0279fd6c5cde9cd19952 Gerrit-Change-Number: 22147 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 17:31:03 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 13 Jan 2021 17:31:03 +0000 Subject: Change in osmo-remsim[master]: contrib/jenkins: don't build osmo-gsm-manuals In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-remsim/+/22150 ) Change subject: contrib/jenkins: don't build osmo-gsm-manuals ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-remsim/+/22150 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-remsim Gerrit-Branch: master Gerrit-Change-Id: Ic4f26705854a0987aa72a9064a5278b01b4d078d Gerrit-Change-Number: 22150 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 13 Jan 2021 17:31:03 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 17:31:06 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 13 Jan 2021 17:31:06 +0000 Subject: Change in osmo-remsim[master]: contrib/jenkins: don't build osmo-gsm-manuals In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-remsim/+/22150 ) Change subject: contrib/jenkins: don't build osmo-gsm-manuals ...................................................................... contrib/jenkins: don't build osmo-gsm-manuals Related: OS#4912 Change-Id: Ic4f26705854a0987aa72a9064a5278b01b4d078d # --- --- M contrib/jenkins.sh 1 file changed, 0 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index 30db3d7..37a779c 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -36,7 +36,6 @@ # Additional configure options and depends CONFIG="" if [ "$WITH_MANUALS" = "1" ]; then - osmo-build-dep.sh osmo-gsm-manuals CONFIG="--enable-manuals" fi -- To view, visit https://gerrit.osmocom.org/c/osmo-remsim/+/22150 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-remsim Gerrit-Branch: master Gerrit-Change-Id: Ic4f26705854a0987aa72a9064a5278b01b4d078d Gerrit-Change-Number: 22150 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 17:31:07 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 13 Jan 2021 17:31:07 +0000 Subject: Change in libosmo-sccp[master]: contrib/jenkins: don't build osmo-gsm-manuals In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/22142 ) Change subject: contrib/jenkins: don't build osmo-gsm-manuals ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/22142 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I511b2e1f4c3a9e0897cff4241ab5df12327de10d Gerrit-Change-Number: 22142 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 13 Jan 2021 17:31:07 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 17:31:09 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 13 Jan 2021 17:31:09 +0000 Subject: Change in libosmo-sccp[master]: contrib/jenkins: don't build osmo-gsm-manuals In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/22142 ) Change subject: contrib/jenkins: don't build osmo-gsm-manuals ...................................................................... contrib/jenkins: don't build osmo-gsm-manuals Related: OS#4912 Change-Id: I511b2e1f4c3a9e0897cff4241ab5df12327de10d --- M contrib/jenkins.sh 1 file changed, 0 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index 5d40573..78bd53a 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -36,7 +36,6 @@ # Additional configure options and depends CONFIG="" if [ "$WITH_MANUALS" = "1" ]; then - osmo-build-dep.sh osmo-gsm-manuals CONFIG="--enable-manuals" fi -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/22142 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: I511b2e1f4c3a9e0897cff4241ab5df12327de10d Gerrit-Change-Number: 22142 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 17:31:11 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 13 Jan 2021 17:31:11 +0000 Subject: Change in osmocom-bb[master]: contrib/jenkins: don't build osmo-gsm-manuals In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/22143 ) Change subject: contrib/jenkins: don't build osmo-gsm-manuals ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/22143 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: If8f88bde0614547bb5c4f4f6e97fc20fcecd8a2c Gerrit-Change-Number: 22143 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 13 Jan 2021 17:31:11 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 17:31:13 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 13 Jan 2021 17:31:13 +0000 Subject: Change in osmocom-bb[master]: contrib/jenkins: don't build osmo-gsm-manuals In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/22143 ) Change subject: contrib/jenkins: don't build osmo-gsm-manuals ...................................................................... contrib/jenkins: don't build osmo-gsm-manuals Related: OS#4912 Change-Id: If8f88bde0614547bb5c4f4f6e97fc20fcecd8a2c # --- --- M contrib/jenkins.sh 1 file changed, 0 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index 07a02c1..fafbdfb 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -52,7 +52,6 @@ # Build and publish manuals if [ "$WITH_MANUALS" = "1" ]; then - osmo-build-dep.sh osmo-gsm-manuals make -C "$base/doc/manuals" make -C "$base/doc/manuals" check -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/22143 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: If8f88bde0614547bb5c4f4f6e97fc20fcecd8a2c Gerrit-Change-Number: 22143 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 17:31:14 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 13 Jan 2021 17:31:14 +0000 Subject: Change in osmo-cbc[master]: contrib/jenkins: don't build osmo-gsm-manuals In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22154 ) Change subject: contrib/jenkins: don't build osmo-gsm-manuals ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22154 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: Ide27f522e0979f9f7b41cd073d5451fa60ab125f Gerrit-Change-Number: 22154 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 13 Jan 2021 17:31:14 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 17:31:16 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 13 Jan 2021 17:31:16 +0000 Subject: Change in osmo-cbc[master]: contrib/jenkins: don't build osmo-gsm-manuals In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22154 ) Change subject: contrib/jenkins: don't build osmo-gsm-manuals ...................................................................... contrib/jenkins: don't build osmo-gsm-manuals Related: OS#4912 Change-Id: Ide27f522e0979f9f7b41cd073d5451fa60ab125f --- M contrib/jenkins.sh 1 file changed, 0 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index e9b976b..104ba2a 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -36,7 +36,6 @@ # Additional configure options and depends CONFIG="" if [ "$WITH_MANUALS" = "1" ]; then - osmo-build-dep.sh osmo-gsm-manuals CONFIG="--enable-manuals" fi -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22154 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: Ide27f522e0979f9f7b41cd073d5451fa60ab125f Gerrit-Change-Number: 22154 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 17:31:18 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 13 Jan 2021 17:31:18 +0000 Subject: Change in osmo-e1-recorder[master]: contrib/jenkins: don't build osmo-gsm-manuals In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1-recorder/+/22153 ) Change subject: contrib/jenkins: don't build osmo-gsm-manuals ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-recorder/+/22153 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1-recorder Gerrit-Branch: master Gerrit-Change-Id: I5349a67dcc6dd47e5a1cc9f8d30a2ca7aa1094f9 Gerrit-Change-Number: 22153 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 13 Jan 2021 17:31:18 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 17:31:20 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 13 Jan 2021 17:31:20 +0000 Subject: Change in osmo-e1-recorder[master]: contrib/jenkins: don't build osmo-gsm-manuals In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-e1-recorder/+/22153 ) Change subject: contrib/jenkins: don't build osmo-gsm-manuals ...................................................................... contrib/jenkins: don't build osmo-gsm-manuals Related: OS#4912 Change-Id: I5349a67dcc6dd47e5a1cc9f8d30a2ca7aa1094f9 --- M contrib/jenkins.sh 1 file changed, 0 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index b08865e..d9895ec 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -36,7 +36,6 @@ # Additional configure options and depends CONFIG="" if [ "$WITH_MANUALS" = "1" ]; then - osmo-build-dep.sh osmo-gsm-manuals CONFIG="--enable-manuals" fi -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-recorder/+/22153 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1-recorder Gerrit-Branch: master Gerrit-Change-Id: I5349a67dcc6dd47e5a1cc9f8d30a2ca7aa1094f9 Gerrit-Change-Number: 22153 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 17:31:22 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 13 Jan 2021 17:31:22 +0000 Subject: Change in osmo-ggsn[master]: contrib/jenkins: don't build osmo-gsm-manuals In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ggsn/+/22138 ) Change subject: contrib/jenkins: don't build osmo-gsm-manuals ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ggsn/+/22138 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ggsn Gerrit-Branch: master Gerrit-Change-Id: Ie77a81d3bd7cdb739fa082d9e1b5ddeba433a9db Gerrit-Change-Number: 22138 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 13 Jan 2021 17:31:22 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 17:31:24 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 13 Jan 2021 17:31:24 +0000 Subject: Change in osmo-ggsn[master]: contrib/jenkins: don't build osmo-gsm-manuals In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ggsn/+/22138 ) Change subject: contrib/jenkins: don't build osmo-gsm-manuals ...................................................................... contrib/jenkins: don't build osmo-gsm-manuals Related: OS#4912 Change-Id: Ie77a81d3bd7cdb739fa082d9e1b5ddeba433a9db --- M contrib/jenkins.sh 1 file changed, 0 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index c3a1570..17345a6 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -38,7 +38,6 @@ # Additional configure options and depends CONFIG="" if [ "$WITH_MANUALS" = "1" ]; then - osmo-build-dep.sh osmo-gsm-manuals CONFIG="--enable-manuals" fi -- To view, visit https://gerrit.osmocom.org/c/osmo-ggsn/+/22138 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ggsn Gerrit-Branch: master Gerrit-Change-Id: Ie77a81d3bd7cdb739fa082d9e1b5ddeba433a9db Gerrit-Change-Number: 22138 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 17:31:27 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 13 Jan 2021 17:31:27 +0000 Subject: Change in osmo-sip-connector[master]: contrib/jenkins: don't build osmo-gsm-manuals In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sip-connector/+/22137 ) Change subject: contrib/jenkins: don't build osmo-gsm-manuals ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sip-connector/+/22137 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sip-connector Gerrit-Branch: master Gerrit-Change-Id: Iae17e6d6f4242f98676dd3a1b01c419ac7288047 Gerrit-Change-Number: 22137 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 13 Jan 2021 17:31:27 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 17:31:29 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 13 Jan 2021 17:31:29 +0000 Subject: Change in osmo-sip-connector[master]: contrib/jenkins: don't build osmo-gsm-manuals In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sip-connector/+/22137 ) Change subject: contrib/jenkins: don't build osmo-gsm-manuals ...................................................................... contrib/jenkins: don't build osmo-gsm-manuals Related: OS#4912 Change-Id: Iae17e6d6f4242f98676dd3a1b01c419ac7288047 --- M contrib/jenkins.sh 1 file changed, 0 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index c2ddf5a..90234e7 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -28,7 +28,6 @@ # Additional configure options and depends CONFIG="" if [ "$WITH_MANUALS" = "1" ]; then - osmo-build-dep.sh osmo-gsm-manuals CONFIG="--enable-manuals" fi -- To view, visit https://gerrit.osmocom.org/c/osmo-sip-connector/+/22137 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sip-connector Gerrit-Branch: master Gerrit-Change-Id: Iae17e6d6f4242f98676dd3a1b01c419ac7288047 Gerrit-Change-Number: 22137 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 18:09:45 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Wed, 13 Jan 2021 18:09:45 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Increase TLLI cache timeout to 10s In-Reply-To: References: Message-ID: daniel has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22161 ) Change subject: gbproxy: Increase TLLI cache timeout to 10s ...................................................................... gbproxy: Increase TLLI cache timeout to 10s The range of SUSPEND/RESUME timers T3/T4 is up to 10s so we should keep the cache entries valid for this time. Fixes: OS#4895 Change-Id: I9e88e49981098831f3255938deb868f4503f650f Related: SYS#5235 --- M src/gbproxy/gb_proxy.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/gbproxy/gb_proxy.c b/src/gbproxy/gb_proxy.c index 91324dd..7f8260c 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -1413,7 +1413,7 @@ cfg->pool.bvc_fc_ratio = 100; cfg->pool.null_nri_ranges = osmo_nri_ranges_alloc(cfg); /* TODO: Make configurable */ - cfg->tlli_cache.timeout = 5; + cfg->tlli_cache.timeout = 10; hash_init(cfg->bss_nses); hash_init(cfg->sgsn_nses); -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22161 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I9e88e49981098831f3255938deb868f4503f650f Gerrit-Change-Number: 22161 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 18:17:09 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 13 Jan 2021 18:17:09 +0000 Subject: Change in osmo-bsc[master]: Introduce Neighbor Resolution Service In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21848 ) Change subject: Introduce Neighbor Resolution Service ...................................................................... Introduce Neighbor Resolution Service This new CTRL interface allows users of this BSC (such as attached PCU) to gather neighbor information. This interface is needed for PCU to translate ARFCN+BSIC keys provided by MS in the Um side into CGI + RAC keys used to identify target cells in RIM procedures against SGSNs on the Gb interface. This patch extends the already existing neighbor information storage in the VTY by allowing storage of CGI + RAC (RAC couldn't be stored beforehand). Related: SYS#4909 Depends: libosmocore.git Change-Id If48f412c32e8e5a3e604a78d12b74787a4786374 Change-Id: Ib07c9d23026332a207d4b7a0f7b4e76c0094e379 --- M doc/manuals/chapters/handover.adoc M include/osmocom/bsc/gsm_data.h M include/osmocom/bsc/neighbor_ident.h M src/osmo-bsc/bsc_vty.c M src/osmo-bsc/bts.c M src/osmo-bsc/neighbor_ident.c M src/osmo-bsc/neighbor_ident_vty.c M src/osmo-bsc/osmo_bsc_main.c M tests/Makefile.am M tests/bsc/Makefile.am A tests/ctrl/osmo-bsc-neigh-test.cfg M tests/ctrl_test_runner.py M tests/gsm0408/Makefile.am M tests/neighbor_ident.vty 14 files changed, 471 insertions(+), 7 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/doc/manuals/chapters/handover.adoc b/doc/manuals/chapters/handover.adoc index 8601dce..4de744b 100644 --- a/doc/manuals/chapters/handover.adoc +++ b/doc/manuals/chapters/handover.adoc @@ -1,4 +1,5 @@ -== Handover +[[cs_handover]] +== CS Handover Handover is the process of moving a continuously used channel (lchan) from one cell to another. Usually, that is an ongoing call, so that phones are able to @@ -144,6 +145,7 @@ number of times across a network, and even between cells managed by one and the same BSC. +[[config_neigh]] === Configuring Neighbors The most important step to enable handover in OsmoBSC is to configure each cell @@ -692,3 +694,100 @@ 4G neighbor cells can be removed using the same command, just replacing `add` with `del`. + +[[ps_handover]] +== PS Handover + +Packet Switch Handover is mostly managed by the packet switching nodes such as +PCU, SGSN and GGSN. However, the PCU encounters a similar difficulty to that +explained in <>: that is, it must find a way to translate +ARFCN+BSIC identifiers provided by the MS into the sort of identifiers +understood by the Core Network (SGSN). These identifiers are in this case +composed of RAC+CI (instead LAC+CI), or more specifically, CGI+RAC (named as +"Packet Switched CGI" or "CGI-PS" from now on for convenience). + +Hence, it feels natural extending the <> storage in the BSC to +also provide Packet Switched related identifiers in order to provide the PCU the +required information to do the translations, instead of duplicating the whole +neighbor information in two different network nodes. + +This can be done, similarly to already presented CS related commands in +<>, by using the `neighbor cgi-ps` VTY command, which allows for +specifying the extra identifier (RAC) required by PS related translations: + +.Example: configuring PS neighbors within the local BSS in osmo-bsc.cfg, identified by CGI-PS (CGI+RAC) +---- +network + bts 0 +neighbor cgi-ps arfcn <0-1023> bsic (<0-63>|any) +---- + +This information should already be present by default if one uses the `local BTS +number` to identify the network, as long as that BTS is properly configured to +have GPRS enabled and the RAC code is set by `gprs routing area <0-255>` +command: + +.Example: configuring PS neighbors within the local BSS in osmo-bsc.cfg, identified by local BTS number +---- +network + bts 0 + gprs mode gprs + gprs routing area 45 + neighbor bts 1 + ... + bts 1 + gprs mode egprs + gprs routing area 48 + neighbor bts 0 + ... +---- + +This PS information is solely used by the Neighbor Resolution Service, aimed at +nodes other than BSC itself, and described below. + +=== Neighbor Resolution Service CTRL interface + +This service is provided in order to provide the PCU a way to translate +ARCFCN+BSIC into CGI-PS in order to use RIM services and accomplish PS +Handovers. + +This interface is Osmocom specific, since the standard doesn't provide any +specifications on how to provide this kind of information to the PCU. + +Since the PCU can be either BSC-colocated or BTS-colocated (hence on a different +host than BSC), this must be a network-based interface. Since the service is +Osmocom-specific, it was decided to re-use the CTRL interface available in most +Osmocom processes (see <>). + +Due to security concerns, the set of CTRL commands available in this +service is configured in a different IP address and port, since the service +needs to be reachable by all PCU under the BSC. This way the user can still +constrain the regular CTRL port (which may contains lots of configuration +related commands) listening in a more constrained address (eg. localhost). + +By default, this interface is disabled, and it is enabled by configuring the +desired IP address to bind to (and optionally a different port other than +well-known `4248`): + +.Example: Enable and configure Neighbor Resolution Service CTRL interface +---- +network + neighbor-resolution bind 127.0.0.1 5000 +---- + +osmo-pcu will then be able to connect to the BSC and query for resolution during eg. NACC requests from MS. + +The relevant commands are:: + +* neighbor_resolve_cgi_ps_from_lac_ci: +---- +GET neighbor_resolve_cgi_ps_from_lac_ci.... +GET_REPLY ---- +---- + +Where the `src_lac` and `src_ci` are provided by BTS/BSC over `PCUIF` interface +during startup (`INFO IND`), and `dst_arfcn` and `dst_bsic` are those of the +neighbor the PCU is willing to request the CGI-PS information. Hence, from the +`src` params the BSC is able to look up the BTS and afterwards apply the +translation of `dst` parameters based on the neighbor information available for +that BTS. diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h index 233c3b6..8b53902 100644 --- a/include/osmocom/bsc/gsm_data.h +++ b/include/osmocom/bsc/gsm_data.h @@ -1213,6 +1213,12 @@ /* Remote BSS Cell Identifier Lists */ struct neighbor_ident_list *neighbor_bss_cells; + /* Remote BSS resolution sevice (CTRL iface) */ + struct { + char *addr; + uint16_t port; + struct ctrl_handle *handle; + } neigh_ctrl; /* Don't refuse to start with mutually exclusive codec settings */ bool allow_unusable_timeslots; diff --git a/include/osmocom/bsc/neighbor_ident.h b/include/osmocom/bsc/neighbor_ident.h index aa38276..c8580e2 100644 --- a/include/osmocom/bsc/neighbor_ident.h +++ b/include/osmocom/bsc/neighbor_ident.h @@ -5,6 +5,7 @@ #include #include +#include struct vty; struct gsm_network; @@ -45,7 +46,8 @@ void *cb_data); void neighbor_ident_vty_init(struct gsm_network *net, struct neighbor_ident_list *nil); -void neighbor_ident_vty_write(struct vty *vty, const char *indent, struct gsm_bts *bts); +void neighbor_ident_vty_write_bts(struct vty *vty, const char *indent, struct gsm_bts *bts); +void neighbor_ident_vty_write_network(struct vty *vty, const char *indent); bool neighbor_ident_bts_entry_exists(uint8_t from_bts); @@ -58,3 +60,12 @@ struct neighbor_ident_key *key); bool neighbor_ident_bts_parse_key_params(struct vty *vty, struct gsm_bts *bts, const char **argv, struct neighbor_ident_key *key); + + +struct ctrl_handle *neighbor_controlif_setup(struct gsm_network *net); +int neighbor_ctrl_cmds_install(struct gsm_network *net); + +enum neighbor_ctrl_node { + CTRL_NODE_NEIGH = _LAST_CTRL_NODE, + _LAST_CTRL_NODE_NEIGHBOR +}; diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c index d61d379..400e1a6 100644 --- a/src/osmo-bsc/bsc_vty.c +++ b/src/osmo-bsc/bsc_vty.c @@ -1175,7 +1175,7 @@ VTY_NEWLINE); } - neighbor_ident_vty_write(vty, " ", bts); + neighbor_ident_vty_write_bts(vty, " ", bts); vty_out(vty, " codec-support fr"); if (bts->codec.hr) @@ -1315,6 +1315,8 @@ vty_out(vty, "%s", VTY_NEWLINE); } + neighbor_ident_vty_write_network(vty, " "); + return CMD_SUCCESS; } diff --git a/src/osmo-bsc/bts.c b/src/osmo-bsc/bts.c index 39122ae..0774721 100644 --- a/src/osmo-bsc/bts.c +++ b/src/osmo-bsc/bts.c @@ -388,6 +388,10 @@ case CELL_IDENT_WHOLE_GLOBAL: return gsm_bts_matches_lai(bts, &id->global.lai) && id->global.cell_identity == bts->cell_identity; + case CELL_IDENT_WHOLE_GLOBAL_PS: + return gsm_bts_matches_lai(bts, &id->global_ps.rai.lac) + && id->global_ps.rai.rac == bts->gprs.rac + && id->global_ps.cell_identity == bts->cell_identity; case CELL_IDENT_LAC_AND_CI: return id->lac_and_ci.lac == bts->location_area_code && id->lac_and_ci.ci == bts->cell_identity; diff --git a/src/osmo-bsc/neighbor_ident.c b/src/osmo-bsc/neighbor_ident.c index 4a0cd47..185cd0b 100644 --- a/src/osmo-bsc/neighbor_ident.c +++ b/src/osmo-bsc/neighbor_ident.c @@ -33,6 +33,13 @@ #include +#include +#include + +#include +#include +#include + struct neighbor_ident_list { struct llist_head list; }; @@ -253,3 +260,99 @@ return; } } + +/* Neighbor Resolution CTRL iface */ + +CTRL_CMD_DEFINE_RO(neighbor_resolve_cgi_ps_from_lac_ci, "neighbor_resolve_cgi_ps_from_lac_ci"); + +static int get_neighbor_resolve_cgi_ps_from_lac_ci(struct ctrl_cmd *cmd, void *data) +{ + struct gsm_network *net = (struct gsm_network *)data; + struct gsm_bts *bts_tmp, *bts_found = NULL; + const struct gsm0808_cell_id_list2 *tgt_cell_li = NULL; + char *tmp = NULL, *tok, *saveptr; + struct neighbor_ident_key ni; + unsigned lac, cell_id; + const struct osmo_cell_global_id_ps *cgi_ps; + + if (!cmd->variable) + goto fmt_err; + + tmp = talloc_strdup(cmd, cmd->variable); + if (!tmp) { + cmd->reply = "OOM"; + return CTRL_CMD_ERROR; + } + + if (!(tok = strtok_r(tmp, ".", &saveptr))) + goto fmt_err; + OSMO_ASSERT(strcmp(tok, "neighbor_resolve_cgi_ps_from_lac_ci") == 0); + + if (!(tok = strtok_r(NULL, ".", &saveptr))) + goto fmt_err; + lac = atoi(tok); + + if (!(tok = strtok_r(NULL, ".", &saveptr))) + goto fmt_err; + cell_id = atoi(tok); + + if (!(tok = strtok_r(NULL, ".", &saveptr))) + goto fmt_err; + ni.arfcn = atoi(tok); + + if (!(tok = strtok_r(NULL, "\0", &saveptr))) + goto fmt_err; + ni.bsic = atoi(tok); + + ni.from_bts = NEIGHBOR_IDENT_KEY_ANY_BTS; + + llist_for_each_entry(bts_tmp, &net->bts_list, list) { + if (bts_tmp->location_area_code != lac) + continue; + if (bts_tmp->cell_identity != cell_id) + continue; + bts_found = bts_tmp; + ni.from_bts = bts_tmp->nr; + break; + } + + if (!bts_found) + goto notfound_err; + + LOG_BTS(bts_found, DLINP, LOGL_DEBUG, "Resolving neigbhor arfcn=%u bsic=%u\n", ni.arfcn, ni.bsic); + + if (!neighbor_ident_key_valid(&ni)) + goto fmt_err; + + tgt_cell_li = neighbor_ident_get(net->neighbor_bss_cells, &ni); + if (!tgt_cell_li || tgt_cell_li->id_discr != CELL_IDENT_WHOLE_GLOBAL_PS || tgt_cell_li->id_list_len < 1) + goto notfound_err; + cgi_ps = &tgt_cell_li->id_list[0].global_ps; + + ctrl_cmd_reply_printf(cmd, "%s", osmo_cgi_ps_name(cgi_ps)); + talloc_free(tmp); + return CTRL_CMD_REPLY; + +notfound_err: + talloc_free(tmp); + cmd->reply = talloc_strdup(cmd, "No target CGI PS found"); + return CTRL_CMD_ERROR; +fmt_err: + talloc_free(tmp); + cmd->reply = talloc_strdup(cmd, "The format is ,,,"); + return CTRL_CMD_ERROR; +} + +int neighbor_ctrl_cmds_install(struct gsm_network *net) +{ + int rc; + + rc = ctrl_cmd_install(CTRL_NODE_ROOT, &cmd_neighbor_resolve_cgi_ps_from_lac_ci); + return rc; +} + +struct ctrl_handle *neighbor_controlif_setup(struct gsm_network *net) +{ + return ctrl_interface_setup_dynip2(net, net->neigh_ctrl.addr, net->neigh_ctrl.port, + NULL, _LAST_CTRL_NODE_NEIGHBOR); +} diff --git a/src/osmo-bsc/neighbor_ident_vty.c b/src/osmo-bsc/neighbor_ident_vty.c index 7feed2a..72c11b0 100644 --- a/src/osmo-bsc/neighbor_ident_vty.c +++ b/src/osmo-bsc/neighbor_ident_vty.c @@ -23,6 +23,9 @@ #include #include #include +#include + +#include #include #include @@ -84,6 +87,9 @@ #define CGI_PARAMS "cgi <0-999> <0-999> <0-65535> <0-65535>" #define CGI_DOC "Neighbor cell by cgi\n" "MCC\n" "MNC\n" "LAC\n" "CI\n" +#define CGI_PS_PARAMS "cgi-ps <0-999> <0-999> <0-65535> <0-255> <0-65535>" +#define CGI_PS_DOC "Neighbor cell by cgi (Packet Switched, with RAC)\n" "MCC\n" "MNC\n" "LAC\n" "RAC\n" "CI\n" + #define LOCAL_BTS_PARAMS "bts <0-255>" #define LOCAL_BTS_DOC "Neighbor cell by local BTS number\n" "BTS number\n" @@ -154,6 +160,34 @@ return &cell_id; } +static struct gsm0808_cell_id *neighbor_ident_vty_parse_cgi_ps(struct vty *vty, const char **argv) +{ + static struct gsm0808_cell_id cell_id = { + .id_discr = CELL_IDENT_WHOLE_GLOBAL_PS, + }; + struct osmo_cell_global_id_ps *cgi_ps = &cell_id.id.global_ps; + const char *mcc = argv[0]; + const char *mnc = argv[1]; + const char *lac = argv[2]; + const char *rac = argv[3]; + const char *ci = argv[4]; + + if (osmo_mcc_from_str(mcc, &cgi_ps->rai.lac.plmn.mcc)) { + vty_out(vty, "%% Error decoding MCC: %s%s", mcc, VTY_NEWLINE); + return NULL; + } + + if (osmo_mnc_from_str(mnc, &cgi_ps->rai.lac.plmn.mnc, &cgi_ps->rai.lac.plmn.mnc_3_digits)) { + vty_out(vty, "%% Error decoding MNC: %s%s", mnc, VTY_NEWLINE); + return NULL; + } + + cgi_ps->rai.lac.lac = atoi(lac); + cgi_ps->rai.rac = atoi(rac); + cgi_ps->cell_identity = atoi(ci); + return &cell_id; +} + static int add_local_bts(struct vty *vty, struct gsm_bts *neigh) { int rc; @@ -246,6 +280,13 @@ return add_local_bts(vty, bts_by_cell_id(vty, neighbor_ident_vty_parse_cgi(vty, argv))); } +DEFUN(cfg_neighbor_add_cgi_ps, cfg_neighbor_add_cgi_ps_cmd, + NEIGHBOR_ADD_CMD CGI_PS_PARAMS, + NEIGHBOR_ADD_DOC CGI_PS_DOC) +{ + return add_local_bts(vty, bts_by_cell_id(vty, neighbor_ident_vty_parse_cgi_ps(vty, argv))); +} + bool neighbor_ident_key_matches_bts(const struct neighbor_ident_key *key, struct gsm_bts *bts) { if (!bts || !key) @@ -497,6 +538,19 @@ return add_remote_or_local_bts(vty, cell_id, &nik); } +DEFUN(cfg_neighbor_add_cgi_ps_arfcn_bsic, cfg_neighbor_add_cgi_ps_arfcn_bsic_cmd, + NEIGHBOR_ADD_CMD CGI_PS_PARAMS " " NEIGHBOR_IDENT_VTY_KEY_PARAMS, + NEIGHBOR_ADD_DOC CGI_PS_DOC NEIGHBOR_IDENT_VTY_KEY_DOC) +{ + struct neighbor_ident_key nik; + struct gsm0808_cell_id *cell_id = neighbor_ident_vty_parse_cgi_ps(vty, argv); + if (!cell_id) + return CMD_WARNING; + if (!neighbor_ident_vty_parse_key_params(vty, argv + 5, &nik)) + return CMD_WARNING; + return add_remote_or_local_bts(vty, cell_id, &nik); +} + DEFUN(cfg_neighbor_del_bts_nr, cfg_neighbor_del_bts_nr_cmd, NEIGHBOR_DEL_CMD LOCAL_BTS_PARAMS, NEIGHBOR_DEL_DOC LOCAL_BTS_DOC) @@ -525,6 +579,27 @@ return neighbor_del_all(vty); } +DEFUN(cfg_neighbor_bind, cfg_neighbor_bind_cmd, + "neighbor-resolution bind " VTY_IPV46_CMD " [<0-65535>]", + NEIGHBOR_DOC "Bind Neighbor Resolution Service (CTRL interface) to given ip and port\n" + IP_STR IPV6_STR "Port to bind the service to [defaults to 4248 if not provided]\n") +{ + osmo_talloc_replace_string(g_net, &g_net->neigh_ctrl.addr, argv[0]); + if (argc > 1) + g_net->neigh_ctrl.port = atoi(argv[1]); + else + g_net->neigh_ctrl.port = OSMO_CTRL_PORT_BSC_NEIGH; + return CMD_SUCCESS; +} + +void neighbor_ident_vty_write_network(struct vty *vty, const char *indent) +{ + if (g_net->neigh_ctrl.addr) + vty_out(vty, "%sneighbor-resolution bind %s %" PRIu16 "%s", indent, g_net->neigh_ctrl.addr, + g_net->neigh_ctrl.port, VTY_NEWLINE); +} + + struct write_neighbor_ident_entry_data { struct vty *vty; const char *indent; @@ -576,6 +651,16 @@ cgi->lai.lac, cgi->cell_identity); } break; + case CELL_IDENT_WHOLE_GLOBAL_PS: + for (i = 0; i < val->id_list_len; i++) { + const struct osmo_cell_global_id_ps *cgi_ps = &val->id_list[i].global_ps; + NEIGH_BSS_WRITE("cgi-ps %s %s %u %u %u", + osmo_mcc_name(cgi_ps->rai.lac.plmn.mcc), + osmo_mnc_name(cgi_ps->rai.lac.plmn.mnc, cgi_ps->rai.lac.plmn.mnc_3_digits), + cgi_ps->rai.lac.lac, cgi_ps->rai.rac, + cgi_ps->cell_identity); + } + break; default: vty_out(vty, "%% Unsupported Cell Identity%s", VTY_NEWLINE); } @@ -604,7 +689,7 @@ } } -void neighbor_ident_vty_write(struct vty *vty, const char *indent, struct gsm_bts *bts) +void neighbor_ident_vty_write_bts(struct vty *vty, const char *indent, struct gsm_bts *bts) { neighbor_ident_vty_write_local_neighbors(vty, indent, bts); neighbor_ident_vty_write_remote_bss(vty, indent, bts); @@ -662,13 +747,17 @@ { g_net = net; g_neighbor_cells = nil; + install_element(GSMNET_NODE, &cfg_neighbor_bind_cmd); + install_element(BTS_NODE, &cfg_neighbor_add_bts_nr_cmd); install_element(BTS_NODE, &cfg_neighbor_add_lac_cmd); install_element(BTS_NODE, &cfg_neighbor_add_lac_ci_cmd); install_element(BTS_NODE, &cfg_neighbor_add_cgi_cmd); + install_element(BTS_NODE, &cfg_neighbor_add_cgi_ps_cmd); install_element(BTS_NODE, &cfg_neighbor_add_lac_arfcn_bsic_cmd); install_element(BTS_NODE, &cfg_neighbor_add_lac_ci_arfcn_bsic_cmd); install_element(BTS_NODE, &cfg_neighbor_add_cgi_arfcn_bsic_cmd); + install_element(BTS_NODE, &cfg_neighbor_add_cgi_ps_arfcn_bsic_cmd); install_element(BTS_NODE, &cfg_neighbor_del_bts_nr_cmd); install_element(BTS_NODE, &cfg_neighbor_del_arfcn_bsic_cmd); install_element(BTS_NODE, &cfg_neighbor_del_all_cmd); diff --git a/src/osmo-bsc/osmo_bsc_main.c b/src/osmo-bsc/osmo_bsc_main.c index ed561aa..d751fc1 100644 --- a/src/osmo-bsc/osmo_bsc_main.c +++ b/src/osmo-bsc/osmo_bsc_main.c @@ -960,6 +960,19 @@ exit(1); } + if (bsc_gsmnet->neigh_ctrl.addr) { + bsc_gsmnet->neigh_ctrl.handle = neighbor_controlif_setup(bsc_gsmnet); + if (!bsc_gsmnet->neigh_ctrl.handle) { + fprintf(stderr, "Failed to bind Neighbor Resolution Service. Exiting.\n"); + exit(1); + } + rc = neighbor_ctrl_cmds_install(bsc_gsmnet); + if (rc < 0) { + fprintf(stderr, "Failed to install Neighbor Resolution Service commands. Exiting.\n"); + exit(1); + } + } + if (rf_ctrl) osmo_talloc_replace_string(bsc_gsmnet, &bsc_gsmnet->rf_ctrl_name, rf_ctrl); diff --git a/tests/Makefile.am b/tests/Makefile.am index b11b905..6bc7839 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -41,6 +41,7 @@ osmo-bsc.vty \ timer.vty \ power_ctrl.vty \ + ctrl/osmo-bsc-neigh-test.cfg \ $(NULL) TESTSUITE = $(srcdir)/testsuite diff --git a/tests/bsc/Makefile.am b/tests/bsc/Makefile.am index b6ba421..2cc57a4 100644 --- a/tests/bsc/Makefile.am +++ b/tests/bsc/Makefile.am @@ -8,6 +8,7 @@ -ggdb3 \ $(LIBOSMOCORE_CFLAGS) \ $(LIBOSMOGSM_CFLAGS) \ + $(LIBOSMOCTRL_CFLAGS) \ $(LIBOSMOABIS_CFLAGS) \ $(LIBOSMOLEGACYMGCP_CFLAGS) \ $(LIBOSMOSIGTRAN_CFLAGS) \ @@ -59,6 +60,7 @@ $(LIBOSMOCORE_LIBS) \ $(LIBOSMOGSM_LIBS) \ $(LIBOSMOVTY_LIBS) \ + $(LIBOSMOCTRL_LIBS) \ $(LIBOSMOABIS_LIBS) \ $(LIBOSMOLEGACYMGCP_LIBS) \ $(LIBRARY_GSM) \ diff --git a/tests/ctrl/osmo-bsc-neigh-test.cfg b/tests/ctrl/osmo-bsc-neigh-test.cfg new file mode 100644 index 0000000..f1e71b6 --- /dev/null +++ b/tests/ctrl/osmo-bsc-neigh-test.cfg @@ -0,0 +1,97 @@ +! osmo-bsc default configuration +! (assumes STP to run on 127.0.0.1 and uses default point codes) +! +log file /tmp/osmo-bsc-neigh.log + logging filter all 1 + logging color 1 + logging print category 1 + logging timestamp 1 + logging level set-all debug +e1_input + e1_line 0 driver ipa +network + network country code 1 + mobile network code 1 + encryption a5 0 + neci 1 + paging any use tch 0 + handover 0 + handover algorithm 1 + handover1 window rxlev averaging 10 + handover1 window rxqual averaging 1 + handover1 window rxlev neighbor averaging 10 + handover1 power budget interval 6 + handover1 power budget hysteresis 3 + handover1 maximum distance 9999 + periodic location update 30 + neighbor-resolution bind 127.0.0.1 + bts 0 + type sysmobts + band DCS1800 + cell_identity 6969 + location_area_code 1 + base_station_id_code 63 + ms max power 15 + cell reselection hysteresis 4 + rxlev access min 0 + radio-link-timeout 32 + channel allocator ascending + rach tx integer 9 + rach max transmission 7 + channel-description attach 1 + channel-description bs-pa-mfrms 5 + channel-description bs-ag-blks-res 1 + early-classmark-sending forbidden + ipa unit-id 6969 0 + oml ipa stream-id 255 line 0 + codec-support fr + gprs mode gprs + neighbor cgi-ps 23 42 423 2 5 arfcn 23 bsic 32 + trx 0 + rf_locked 0 + arfcn 871 + nominal power 23 + ! to use full TRX power, set max_power_red 0 + max_power_red 20 + rsl e1 tei 0 + timeslot 0 + phys_chan_config CCCH+SDCCH4 + hopping enabled 0 + timeslot 1 + phys_chan_config TCH/F + hopping enabled 0 + timeslot 2 + phys_chan_config TCH/F + hopping enabled 0 + timeslot 3 + phys_chan_config TCH/F + hopping enabled 0 + timeslot 4 + phys_chan_config TCH/F + hopping enabled 0 + timeslot 5 + phys_chan_config TCH/F + hopping enabled 0 + timeslot 6 + phys_chan_config TCH/F + hopping enabled 0 + timeslot 7 + phys_chan_config TCH/F + hopping enabled 0 +msc 0 + type normal + allow-emergency allow + amr-config 12_2k forbidden + amr-config 10_2k forbidden + amr-config 7_95k forbidden + amr-config 7_40k forbidden + amr-config 6_70k forbidden + amr-config 5_90k allowed + amr-config 5_15k forbidden + amr-config 4_75k forbidden + mgw remote-ip 127.0.0.1 + mgw remote-port 2427 + mgw local-port 2727 + mgw endpoint-range 1 31 +bsc + mid-call-timeout 0 diff --git a/tests/ctrl_test_runner.py b/tests/ctrl_test_runner.py index 5d2af85..fb983c9 100755 --- a/tests/ctrl_test_runner.py +++ b/tests/ctrl_test_runner.py @@ -488,11 +488,34 @@ self.assertEqual(r['var'], 'mcc') self.assertEqual(r['value'], '002') -def add_bsc_test(suite, workdir): +class TestCtrlBSCNeighbor(TestCtrlBase): + + def tearDown(self): + TestCtrlBase.tearDown(self) + os.unlink("tmp_dummy_sock") + + def ctrl_command(self): + return ["./src/osmo-bsc/osmo-bsc", "-r", "tmp_dummy_sock", "-c", + "tests/ctrl/osmo-bsc-neigh-test.cfg"] + + def ctrl_app(self): + return (4248, "./src/osmo-bsc/osmo-bsc", "OsmoBSC", "bsc") + + def testCtrlNeighborResolution(self): + r = self.do_get('neighbor_resolve_cgi_ps_from_lac_ci') + self.assertEqual(r['mtype'], 'ERROR') + self.assertEqual(r['error'], 'The format is ,,,') + + r = self.do_get('neighbor_resolve_cgi_ps_from_lac_ci.1.6969.23.32') + self.assertEqual(r['mtype'], 'GET_REPLY') + self.assertEqual(r['var'], 'neighbor_resolve_cgi_ps_from_lac_ci.1.6969.23.32') + self.assertEqual(r['value'], '023-42-423-2-5') + +def add_bsc_test(suite, workdir, klass): if not os.path.isfile(os.path.join(workdir, "src/osmo-bsc/osmo-bsc")): print("Skipping the BSC test") return - test = unittest.TestLoader().loadTestsFromTestCase(TestCtrlBSC) + test = unittest.TestLoader().loadTestsFromTestCase(klass) suite.addTest(test) if __name__ == '__main__': @@ -525,6 +548,7 @@ os.chdir(workdir) print("Running tests for specific control commands") suite = unittest.TestSuite() - add_bsc_test(suite, workdir) + add_bsc_test(suite, workdir, TestCtrlBSC) + add_bsc_test(suite, workdir, TestCtrlBSCNeighbor) res = unittest.TextTestRunner(verbosity=verbose_level).run(suite) sys.exit(len(res.errors) + len(res.failures)) diff --git a/tests/gsm0408/Makefile.am b/tests/gsm0408/Makefile.am index a00da46..571e7e6 100644 --- a/tests/gsm0408/Makefile.am +++ b/tests/gsm0408/Makefile.am @@ -7,6 +7,7 @@ -Wall \ $(LIBOSMOCORE_CFLAGS) \ $(LIBOSMOGSM_CFLAGS) \ + $(LIBOSMOCTRL_CFLAGS) \ $(LIBOSMOABIS_CFLAGS) \ $(NULL) @@ -46,5 +47,6 @@ $(top_builddir)/src/osmo-bsc/nm_rcarrier_fsm.o \ $(LIBOSMOCORE_LIBS) \ $(LIBOSMOGSM_LIBS) \ + $(LIBOSMOCTRL_LIBS) \ $(LIBOSMOABIS_LIBS) \ $(NULL) diff --git a/tests/neighbor_ident.vty b/tests/neighbor_ident.vty index ce414e1..93571b7 100644 --- a/tests/neighbor_ident.vty +++ b/tests/neighbor_ident.vty @@ -14,6 +14,10 @@ OsmoBSC# configure terminal OsmoBSC(config)# network + +OsmoBSC(config-net)# neighbor-resolution bind 1.2.3.4 ? + [<0-65535>] Port to bind the service to [defaults to 4248 if not provided] + OsmoBSC(config-net)# bts 0 OsmoBSC(config-net-bts)# type sysmobts OsmoBSC(config-net-bts)# base_station_id_code 10 @@ -84,9 +88,11 @@ neighbor lac <0-65535> neighbor lac-ci <0-65535> <0-65535> neighbor cgi <0-999> <0-999> <0-65535> <0-65535> + neighbor cgi-ps <0-999> <0-999> <0-65535> <0-255> <0-65535> neighbor lac <0-65535> arfcn <0-1023> bsic (<0-63>|any) neighbor lac-ci <0-65535> <0-65535> arfcn <0-1023> bsic (<0-63>|any) neighbor cgi <0-999> <0-999> <0-65535> <0-65535> arfcn <0-1023> bsic (<0-63>|any) + neighbor cgi-ps <0-999> <0-999> <0-65535> <0-255> <0-65535> arfcn <0-1023> bsic (<0-63>|any) no neighbor bts <0-255> no neighbor arfcn <0-1023> bsic (<0-63>|any) no neighbors @@ -100,6 +106,7 @@ lac Add Neighbor cell by LAC lac-ci Add Neighbor cell by LAC and CI cgi Add Neighbor cell by cgi + cgi-ps Add Neighbor cell by cgi (Packet Switched, with RAC) OsmoBSC(config-net-bts)# neighbor bts ? <0-255> BTS number @@ -348,12 +355,16 @@ OsmoBSC(config-net-bts)# neighbor lac-ci 789 10 arfcn 423 bsic any % BTS 0 to ARFCN 423 (any BSIC) now has 1 remote BSS Cell Identifier List entry +OsmoBSC(config-net-bts)# neighbor cgi-ps 23 42 423 2 5 arfcn 23 bsic 32 +% BTS 0 to ARFCN 23 BSIC 32 now has 1 remote BSS Cell Identifier List entry + OsmoBSC(config-net-bts)# no neighbors % Removed local neighbor bts 0 to bts 1 % Removed local neighbor bts 0 to bts 2 % Removed remote BSS neighbor BTS 0 to ARFCN 23 BSIC 42 % Removed remote BSS neighbor BTS 0 to ARFCN 123 BSIC 45 % Removed remote BSS neighbor BTS 0 to ARFCN 423 (any BSIC) +% Removed remote BSS neighbor BTS 0 to ARFCN 23 BSIC 32 OsmoBSC(config-net-bts)# show running-config ... !neighbor -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21848 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ib07c9d23026332a207d4b7a0f7b4e76c0094e379 Gerrit-Change-Number: 21848 Gerrit-PatchSet: 9 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 22:31:26 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 13 Jan 2021 22:31:26 +0000 Subject: Change in osmo-bsc[master]: vty: use 'const' for *nsvc in config_write_bts_gprs() References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22163 ) Change subject: vty: use 'const' for *nsvc in config_write_bts_gprs() ...................................................................... vty: use 'const' for *nsvc in config_write_bts_gprs() Change-Id: I869944cc692c7954b2862ecff32c6034d20babef --- M src/osmo-bsc/bsc_vty.c 1 file changed, 1 insertion(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/63/22163/1 diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c index 400e1a6..91acb03 100644 --- a/src/osmo-bsc/bsc_vty.c +++ b/src/osmo-bsc/bsc_vty.c @@ -771,8 +771,7 @@ get_value_string(gprs_ns_timer_strs, i), bts_sm->gprs.nse.timer[i], VTY_NEWLINE); for (i = 0; i < ARRAY_SIZE(bts_sm->gprs.nsvc); i++) { - struct gsm_gprs_nsvc *nsvc = - &bts_sm->gprs.nsvc[i]; + const struct gsm_gprs_nsvc *nsvc = &bts_sm->gprs.nsvc[i]; struct osmo_sockaddr_str remote = {}; uint16_t port; -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22163 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I869944cc692c7954b2862ecff32c6034d20babef Gerrit-Change-Number: 22163 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 22:31:27 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 13 Jan 2021 22:31:27 +0000 Subject: Change in osmo-bsc[master]: vty: fix writing empty IP address for unconfigured NSVC References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22164 ) Change subject: vty: fix writing empty IP address for unconfigured NSVC ...................................................................... vty: fix writing empty IP address for unconfigured NSVC config_write_bts_gprs() currently writes the remote address of an NSVC even if osmo_sockaddr_str_from_sockaddr() returns non-zero code. Thus saving a configuration with only one configured NSVC to a file would produce the following: bts N ... gprs nsvc 0 nsvci 101 gprs nsvc 0 local udp port 23023 gprs nsvc 0 remote ip 127.0.0.1 gprs nsvc 0 remote udp port 23000 gprs nsvc 1 nsvci 0 gprs nsvc 1 local udp port 0 gprs nsvc 1 remote ip and next time osmo-bsc would refuse to start due to: Error occurred during reading the below line: gprs nsvc 1 remote ip The related condition consists of the following two parts: - checking if osmo_sockaddr_str_from_sockaddr() != 0; - checking if 'remote.af != AF_UNSPEC'. The first one is wrong, because osmo_sockaddr_str_from_sockaddr(), like many other functions, returns 0 on success. Let's fix this. After the fix, the second part does not seem to make sense, because remote.af would remain AF_UNSPEC (0) if the function call succeeds. Printing the remote port alone does not make sense, let's avoid printing it if the address cannot be parsed into a string. Change-Id: I5d6cbde4f605c8184db4ade87de5644a849c05db Fixes: I621360cab1e12c22248e33d62a9929995053ce04 --- M src/osmo-bsc/bsc_vty.c 1 file changed, 9 insertions(+), 13 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/64/22164/1 diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c index 91acb03..753acf7 100644 --- a/src/osmo-bsc/bsc_vty.c +++ b/src/osmo-bsc/bsc_vty.c @@ -772,8 +772,7 @@ bts_sm->gprs.nse.timer[i], VTY_NEWLINE); for (i = 0; i < ARRAY_SIZE(bts_sm->gprs.nsvc); i++) { const struct gsm_gprs_nsvc *nsvc = &bts_sm->gprs.nsvc[i]; - struct osmo_sockaddr_str remote = {}; - uint16_t port; + struct osmo_sockaddr_str remote; vty_out(vty, " gprs nsvc %u nsvci %u%s", i, nsvc->nsvci, VTY_NEWLINE); @@ -781,18 +780,15 @@ vty_out(vty, " gprs nsvc %u local udp port %u%s", i, nsvc->local_port, VTY_NEWLINE); - if (osmo_sockaddr_str_from_sockaddr(&remote, &nsvc->remote.u.sas) || - remote.af != AF_UNSPEC) { - vty_out(vty, " gprs nsvc %u remote ip %s%s", i, - remote.ip, VTY_NEWLINE); - } + /* Most likely, the remote address is not configured (AF_UNSPEC). + * Printing the port alone makes no sense, so let's just skip both. */ + if (osmo_sockaddr_str_from_sockaddr(&remote, &nsvc->remote.u.sas) != 0) + continue; - /* Can't use remote.port because it's only valid when family != AF_UNSPEC, but the - * port can be even configured when the IP isn't */ - port = osmo_htons(nsvc->remote.u.sin.sin_port); - if (port) - vty_out(vty, " gprs nsvc %u remote udp port %u%s", i, - port, VTY_NEWLINE); + vty_out(vty, " gprs nsvc %u remote ip %s%s", + i, remote.ip, VTY_NEWLINE); + vty_out(vty, " gprs nsvc %u remote udp port %u%s", + i, remote.port, VTY_NEWLINE); } /* EGPRS specific parameters */ -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22164 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I5d6cbde4f605c8184db4ade87de5644a849c05db Gerrit-Change-Number: 22164 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 22:35:31 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 13 Jan 2021 22:35:31 +0000 Subject: Change in osmo-bsc[master]: vty: fix writing empty IP address for unconfigured NSVCs In-Reply-To: References: Message-ID: fixeria has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/osmo-bsc/+/22164 ) Change subject: vty: fix writing empty IP address for unconfigured NSVCs ...................................................................... vty: fix writing empty IP address for unconfigured NSVCs config_write_bts_gprs() currently writes the remote address of an NSVC even if osmo_sockaddr_str_from_sockaddr() returns non-zero code. Thus saving a configuration with only one configured NSVC to a file would produce the following: bts N ... gprs nsvc 0 nsvci 101 gprs nsvc 0 local udp port 23023 gprs nsvc 0 remote ip 127.0.0.1 gprs nsvc 0 remote udp port 23000 gprs nsvc 1 nsvci 0 gprs nsvc 1 local udp port 0 gprs nsvc 1 remote ip and next time osmo-bsc would refuse to start due to: Error occurred during reading the below line: gprs nsvc 1 remote ip The related condition consists of the following two parts: - checking if osmo_sockaddr_str_from_sockaddr() != 0; - checking if 'remote.af != AF_UNSPEC'. The first one is wrong, because osmo_sockaddr_str_from_sockaddr(), like many other functions, returns 0 on success. Let's fix this. After the fix, the second part does not seem to make sense, because remote.af would remain AF_UNSPEC (0) if the function call succeeds. Printing the remote port alone does not make sense, let's avoid printing it if the address cannot be parsed into a string. Change-Id: I5d6cbde4f605c8184db4ade87de5644a849c05db Fixes: I621360cab1e12c22248e33d62a9929995053ce04 --- M src/osmo-bsc/bsc_vty.c 1 file changed, 9 insertions(+), 13 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/64/22164/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22164 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I5d6cbde4f605c8184db4ade87de5644a849c05db Gerrit-Change-Number: 22164 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-CC: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 23:06:29 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 13 Jan 2021 23:06:29 +0000 Subject: Change in osmo-bsc[master]: power_control: do not send BS Power IEs for channels on C0/TRX0 References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22165 ) Change subject: power_control: do not send BS Power IEs for channels on C0/TRX0 ...................................................................... power_control: do not send BS Power IEs for channels on C0/TRX0 Reducing transmit power on C0/TRX0 is not permitted in GSM (there are some energy saving enhancements though), so the BSC shall not be sending any BS Power IEs when allocating channels there. Change-Id: If8507992dfd90ade1edda99b72bf2420a702ccd5 Related: SYS#4918 --- M src/osmo-bsc/abis_rsl.c 1 file changed, 4 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/65/22165/1 diff --git a/src/osmo-bsc/abis_rsl.c b/src/osmo-bsc/abis_rsl.c index 2142219..e3270a7 100644 --- a/src/osmo-bsc/abis_rsl.c +++ b/src/osmo-bsc/abis_rsl.c @@ -597,14 +597,16 @@ } if (bts->bs_power_ctrl.mode != GSM_PWR_CTRL_MODE_NONE) - msgb_tv_put(msg, RSL_IE_BS_POWER, lchan->bs_power); + if (trx != bts->c0) /* BS power control is not allowed on C0/TRX0 */ + msgb_tv_put(msg, RSL_IE_BS_POWER, lchan->bs_power); if (bts->ms_power_ctrl.mode != GSM_PWR_CTRL_MODE_NONE) msgb_tv_put(msg, RSL_IE_MS_POWER, lchan->ms_power); msgb_tv_put(msg, RSL_IE_TIMING_ADVANCE, ta); /* BS/MS Power Control Parameters (if supported by BTS model) */ - add_power_control_params(msg, RSL_IE_BS_POWER_PARAM, lchan); + if (trx != bts->c0) /* BS power control is not allowed on C0/TRX0 */ + add_power_control_params(msg, RSL_IE_BS_POWER_PARAM, lchan); add_power_control_params(msg, RSL_IE_MS_POWER_PARAM, lchan); mr_config_for_bts(lchan, msg); -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22165 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: If8507992dfd90ade1edda99b72bf2420a702ccd5 Gerrit-Change-Number: 22165 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 13 23:24:28 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 13 Jan 2021 23:24:28 +0000 Subject: Change in osmo-bts[master]: power_control: do not print BS power parameters for C0/TRX0 References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/22166 ) Change subject: power_control: do not print BS power parameters for C0/TRX0 ...................................................................... power_control: do not print BS power parameters for C0/TRX0 BS power control is *not* allowed on C0/TRX, so the L1SAP layer would not even feed the BS power loop with Downlink measurement reports coming from the MS (see [1]). Although, the VTY would still show BS power parameters for C0/TRX: OsmoBTS# show lchan BTS 0, TRX 0, Timeslot 1, Lchan 0: Type SDCCH ... BS (Downlink) Power Control (static mode): Channel reduction: 6 dB TRX reduction: 10 dB Actual / Nominal power: -3 dBm / 13 dBm This is extremely confusing, especially the last line showing that the attenuation value is currently applied, despite it's not. Let's do not print BS power control information for C0/TRX0, even if the BSC has sent them in the channel activation message [2]. [1] I4fdfe097ae6f9edde5f39ed4da8a559a14b3b38f [2] If8507992dfd90ade1edda99b72bf2420a702ccd5 Change-Id: I51b2def8c752215d1b89a6b0000bfb15c49db27e Related: SYS#4918 --- M src/common/vty.c 1 file changed, 12 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/66/22166/1 diff --git a/src/common/vty.c b/src/common/vty.c index 689ae58..01578e7 100644 --- a/src/common/vty.c +++ b/src/common/vty.c @@ -1292,11 +1292,14 @@ trx->nominal_power, trx->max_power_red, trx->nominal_power - trx->max_power_red, VTY_NEWLINE); - vty_out(vty, " BS Power control parameters (%s):%s", - trx->bs_dpc_params == &trx->bts->bs_dpc_params ? - "fall-back" : "from BSC", - VTY_NEWLINE); - dump_dpc_params(vty, 4, trx->bs_dpc_params); + /* BS power control shall not be used on C0/TRX0 */ + if (trx->bts->c0 != trx) { + vty_out(vty, " BS Power control parameters (%s):%s", + trx->bs_dpc_params == &trx->bts->bs_dpc_params ? + "fall-back" : "from BSC", + VTY_NEWLINE); + dump_dpc_params(vty, 4, trx->bs_dpc_params); + } vty_out(vty, " MS Power control parameters (%s):%s", trx->ms_dpc_params == &trx->bts->ms_dpc_params ? @@ -1489,6 +1492,10 @@ const struct lchan_power_ctrl_state *st = &lchan->bs_power_ctrl; const struct gsm_bts_trx *trx = lchan->ts->trx; + /* BS power control shall not be used on C0/TRX0 */ + if (trx == trx->bts->c0) + return; + cfg_out(vty, "BS (Downlink) Power Control (%s mode):%s", st->dpc_params ? "dynamic" : "static", VTY_NEWLINE); indent += 2; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22166 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I51b2def8c752215d1b89a6b0000bfb15c49db27e Gerrit-Change-Number: 22166 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Thu Jan 14 01:38:52 2021 From: admin at opensuse.org (OBS Notification) Date: Thu, 14 Jan 2021 01:38:52 +0000 Subject: Build failure of network:osmocom:nightly/libosmocore in openSUSE_Tumbleweed/x86_64 In-Reply-To: References: Message-ID: <5fffa0afd2d5b_19182b0f3d4ea5f8206ed@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libosmocore/openSUSE_Tumbleweed/x86_64 Package network:osmocom:nightly/libosmocore failed to build in openSUSE_Tumbleweed/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly libosmocore Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was cloud137:1) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Jan 14 01:39:43 2021 From: admin at opensuse.org (OBS Notification) Date: Thu, 14 Jan 2021 01:39:43 +0000 Subject: Build failure of network:osmocom:nightly/osmo-python-tests in Debian_Testing/x86_64 In-Reply-To: References: Message-ID: <5fffa0eb15b65_19182b0f3d4ea5f8208ad@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-python-tests/Debian_Testing/x86_64 Package network:osmocom:nightly/osmo-python-tests failed to build in Debian_Testing/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-python-tests Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was lamb54:3) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Jan 14 01:39:43 2021 From: admin at opensuse.org (OBS Notification) Date: Thu, 14 Jan 2021 01:39:43 +0000 Subject: Build failure of network:osmocom:nightly/osmo-fl2k in Debian_Testing/x86_64 In-Reply-To: References: Message-ID: <5fffa0ec1f8bb_19182b0f3d4ea5f8209a9@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-fl2k/Debian_Testing/x86_64 Package network:osmocom:nightly/osmo-fl2k failed to build in Debian_Testing/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-fl2k Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was lamb23:11) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Jan 14 01:42:52 2021 From: admin at opensuse.org (OBS Notification) Date: Thu, 14 Jan 2021 01:42:52 +0000 Subject: Build failure of network:osmocom:nightly/libosmo-abis in Debian_10/i586 In-Reply-To: References: Message-ID: <5fffa1a16f315_19182b0f3d4ea5f82105f@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libosmo-abis/Debian_10/i586 Package network:osmocom:nightly/libosmo-abis failed to build in Debian_10/i586 Check out the package for editing: osc checkout network:osmocom:nightly libosmo-abis Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was cloud128:2) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Jan 14 01:43:09 2021 From: admin at opensuse.org (OBS Notification) Date: Thu, 14 Jan 2021 01:43:09 +0000 Subject: Build failure of network:osmocom:nightly/libosmo-abis in Debian_9.0/i586 In-Reply-To: References: Message-ID: <5fffa1bc86dc0_19182b0f3d4ea5f821141@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libosmo-abis/Debian_9.0/i586 Package network:osmocom:nightly/libosmo-abis failed to build in Debian_9.0/i586 Check out the package for editing: osc checkout network:osmocom:nightly libosmo-abis Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was goat11:2) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Jan 14 01:58:51 2021 From: admin at opensuse.org (OBS Notification) Date: Thu, 14 Jan 2021 01:58:51 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <5fffa5602adfa_19182b0f3d4ea5f822451@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/xUbuntu_20.04/x86_64 Package network:osmocom:nightly/simtrace2 failed to build in xUbuntu_20.04/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 109s] [COMPILING libboard/qmod/source/wwan_perst.c] [ 109s] [COMPILING libboard/qmod/source/card_pres.c] [ 109s] [COMPILING libboard/qmod/source/wwan_led.c] [ 109s] [COMPILING libboard/qmod/source/i2c.c] [ 110s] [COMPILING libboard/qmod/source/board_qmod.c] [ 110s] [COMPILING apps/dfu/main.c] [ 110s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 110s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 110s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 110s] Memory region Used Size Region Size %age Used [ 110s] rom: 16588 B 16 KB 101.25% [ 110s] ram: 11672 B 48 KB 23.75/usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 110s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 204 bytes [ 110s] collect2: error: ld returned 1 exit status [ 110s] % [ 110s] make[2]: *** [Makefile:234: flash] Error 1 [ 110s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 110s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 110s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 110s] dh_auto_build: error: make -j1 returned exit code 2 [ 110s] make: *** [debian/rules:16: build] Error 25 [ 110s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 110s] ### VM INTERACTION START ### [ 113s] [ 105.505230] sysrq: Power Off [ 113s] [ 105.506786] reboot: Power down [ 113s] ### VM INTERACTION END ### [ 113s] [ 113s] build82 failed "build simtrace2_0.7.0.69.aadd.dsc" at Thu Jan 14 01:58:27 UTC 2021. [ 113s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Jan 14 02:00:16 2021 From: admin at opensuse.org (OBS Notification) Date: Thu, 14 Jan 2021 02:00:16 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.10/x86_64 In-Reply-To: References: Message-ID: <5fffa5ba23148_19182b0f3d4ea5f82265a@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/xUbuntu_20.10/x86_64 Package network:osmocom:nightly/simtrace2 failed to build in xUbuntu_20.10/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 185s] [COMPILING apps/dfu/main.c] [ 185s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 185s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 185s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 186s] Memory region Used Size Region Size %age Used [ 186s] rom: 16580 B 16 KB 101.20% [ 186s] ram: 11672 B 48 KB 23.75/usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 186s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 186s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 186s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 186s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 186s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 186s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 196 bytes [ 186s] collect2: error: ld returned 1 exit status [ 186s] % [ 186s] make[2]: *** [Makefile:234: flash] Error 1 [ 186s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 186s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 186s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 186s] dh_auto_build: error: make -j1 returned exit code 2 [ 186s] make: *** [debian/rules:16: build] Error 25 [ 186s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 186s] ### VM INTERACTION START ### [ 189s] [ 165.317977] sysrq: Power Off [ 189s] [ 165.327244] reboot: Power down [ 189s] ### VM INTERACTION END ### [ 189s] [ 189s] cloud117 failed "build simtrace2_0.7.0.69.aadd.dsc" at Thu Jan 14 01:59:46 UTC 2021. [ 189s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Jan 14 02:06:01 2021 From: admin at opensuse.org (OBS Notification) Date: Thu, 14 Jan 2021 02:06:01 +0000 Subject: Build failure of network:osmocom:nightly/osmo-smlc in Debian_8.0/i586 In-Reply-To: References: Message-ID: <5fffa71f74924_19182b0f3d4ea5f82383a@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-smlc/Debian_8.0/i586 Package network:osmocom:nightly/osmo-smlc failed to build in Debian_8.0/i586 Check out the package for editing: osc checkout network:osmocom:nightly osmo-smlc Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was cloud107:1) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Jan 14 02:34:22 2021 From: admin at opensuse.org (OBS Notification) Date: Thu, 14 Jan 2021 02:34:22 +0000 Subject: Build failure of network:osmocom:nightly/osmo-hlr in openSUSE_Factory_ARM/armv7l In-Reply-To: References: Message-ID: <5fffadce793fe_19182b0f3d4ea5f8261a9@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-hlr/openSUSE_Factory_ARM/armv7l Package network:osmocom:nightly/osmo-hlr failed to build in openSUSE_Factory_ARM/armv7l Check out the package for editing: osc checkout network:osmocom:nightly osmo-hlr Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was obs-arm-6:2) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Thu Jan 14 02:46:46 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 14 Jan 2021 02:46:46 +0000 Subject: Change in osmo-bsc[master]: vty: fix 'codec-list' command: check all given arguments first References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22167 ) Change subject: vty: fix 'codec-list' command: check all given arguments first ...................................................................... vty: fix 'codec-list' command: check all given arguments first Allocating a new list of supported codecs *before* checking the command arguments is a bad idea. The operator may simply mistype one of the codecs and will end up with a list of NULL pointers. The functions calling audio_support_to_gsm88() assume that this list always does contain valid pointers, so if a new subscriber connection gets established, or the operator simply invokes 'show running-config', osmo-bsc would crash due to NULL pointer dereference. Steps to reproduce: 1. In the VTY, do: 'en' -> 'configure terminal' -> 'msc'; 2. Configure any invalid codec list, e.g. 'codec-list Boom!'; 3. Invoke 'show running-config', boom! Let's check the input before changing the internal structures. Change-Id: I35b740a39c9cf3716d286e717486ef505bc61522 Fixes: OS#4946 --- M src/osmo-bsc/bsc_vty.c 1 file changed, 11 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/67/22167/1 diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c index 400e1a6..fb9083b 100644 --- a/src/osmo-bsc/bsc_vty.c +++ b/src/osmo-bsc/bsc_vty.c @@ -6825,6 +6825,17 @@ struct bsc_msc_data *data = bsc_msc_data(vty); int i; + /* check all given arguments first */ + for (i = 0; i < argc; ++i) { + /* check for hrX or frX */ + if (strlen(argv[i]) != 3 + || argv[i][1] != 'r' + || (argv[i][0] != 'h' && argv[i][0] != 'f') + || argv[i][2] < 0x30 + || argv[i][2] > 0x39) + goto error; + } + /* free the old list... if it exists */ if (data->audio_support) { talloc_free(data->audio_support); @@ -6838,14 +6849,6 @@ data->audio_length = argc; for (i = 0; i < argc; ++i) { - /* check for hrX or frX */ - if (strlen(argv[i]) != 3 - || argv[i][1] != 'r' - || (argv[i][0] != 'h' && argv[i][0] != 'f') - || argv[i][2] < 0x30 - || argv[i][2] > 0x39) - goto error; - data->audio_support[i] = talloc_zero(data->audio_support, struct gsm_audio_support); data->audio_support[i]->ver = atoi(argv[i] + 2); -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22167 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I35b740a39c9cf3716d286e717486ef505bc61522 Gerrit-Change-Number: 22167 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Thu Jan 14 03:13:47 2021 From: admin at opensuse.org (OBS Notification) Date: Thu, 14 Jan 2021 03:13:47 +0000 Subject: Build failure of network:osmocom:nightly/osmo-bsc in openSUSE_Tumbleweed/x86_64 In-Reply-To: References: Message-ID: <5fffb6f654873_19182b0f3d4ea5f82981b@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-bsc/openSUSE_Tumbleweed/x86_64 Package network:osmocom:nightly/osmo-bsc failed to build in openSUSE_Tumbleweed/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-bsc Last lines of build log: [ 48s] CC net_init.o [ 48s] CC nm_common_fsm.o [ 48s] CC nm_bb_transc_fsm.o [ 48s] neighbor_ident_vty.c: In function 'cfg_neighbor_bind': [ 48s] neighbor_ident_vty.c:591:28: error: 'OSMO_CTRL_PORT_BSC_NEIGH' undeclared (first use in this function); did you mean 'OSMO_CTRL_PORT_BSC_NAT'? [ 48s] 591 | g_net->neigh_ctrl.port = OSMO_CTRL_PORT_BSC_NEIGH; [ 48s] | ^~~~~~~~~~~~~~~~~~~~~~~~ [ 48s] | OSMO_CTRL_PORT_BSC_NAT [ 48s] neighbor_ident_vty.c:591:28: note: each undeclared identifier is reported only once for each function it appears in [ 48s] make[3]: *** [Makefile:708: neighbor_ident_vty.o] Error 1 [ 48s] make[3]: *** Waiting for unfinished jobs.... [ 49s] make[3]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-bsc-1.6.0.507.55a01/src/osmo-bsc' [ 49s] make[2]: *** [Makefile:404: all-recursive] Error 1 [ 49s] make[2]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-bsc-1.6.0.507.55a01/src' [ 49s] make[1]: *** [Makefile:454: all-recursive] Error 1 [ 49s] make[1]: Leaving directory '/home/abuild/rpmbuild/BUILD/osmo-bsc-1.6.0.507.55a01' [ 49s] make: *** [Makefile:386: all] Error 2 [ 49s] error: Bad exit status from /var/tmp/rpm-tmp.oZ0LCW (%build) [ 49s] [ 49s] [ 49s] RPM build errors: [ 49s] Bad exit status from /var/tmp/rpm-tmp.oZ0LCW (%build) [ 49s] ### VM INTERACTION START ### [ 52s] [ 43.684690] sysrq: Power Off [ 52s] [ 43.691407] reboot: Power down [ 52s] ### VM INTERACTION END ### [ 52s] [ 52s] lamb16 failed "build osmo-bsc.spec" at Thu Jan 14 03:12:53 UTC 2021. [ 52s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Jan 14 04:13:30 2021 From: admin at opensuse.org (OBS Notification) Date: Thu, 14 Jan 2021 04:13:30 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sgsn in openSUSE_Leap_15.1/x86_64 In-Reply-To: References: Message-ID: <5fffc5003ca80_19182b0f3d4ea5f83364b@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-sgsn/openSUSE_Leap_15.1/x86_64 Package network:osmocom:nightly/osmo-sgsn failed to build in openSUSE_Leap_15.1/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-sgsn Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was lamb07:8) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Jan 14 04:39:49 2021 From: admin at opensuse.org (OBS Notification) Date: Thu, 14 Jan 2021 04:39:49 +0000 Subject: Build failure of network:osmocom:nightly/osmo-gsm-manuals in Raspbian_10/armv7l In-Reply-To: References: Message-ID: <5fffcb1d6a8fe_19182b0f3d4ea5f8354af@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-gsm-manuals/Raspbian_10/armv7l Package network:osmocom:nightly/osmo-gsm-manuals failed to build in Raspbian_10/armv7l Check out the package for editing: osc checkout network:osmocom:nightly osmo-gsm-manuals Last lines of build log: connect to back-other-opensuse:5253: Connection timed out (worker was obs-arm-5:8) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Jan 14 04:58:05 2021 From: admin at opensuse.org (OBS Notification) Date: Thu, 14 Jan 2021 04:58:05 +0000 Subject: Build failure of network:osmocom:nightly/libosmo-sccp in Debian_Testing/x86_64 In-Reply-To: References: Message-ID: <5fffcf73c5434_19182b0f3d4ea5f8361e8@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libosmo-sccp/Debian_Testing/x86_64 Package network:osmocom:nightly/libosmo-sccp failed to build in Debian_Testing/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly libosmo-sccp Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was cloud135:2) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Thu Jan 14 06:21:12 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 14 Jan 2021 06:21:12 +0000 Subject: Change in osmo-bsc[master]: hodec2: to balance congestion, use overload percent In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22085 ) Change subject: hodec2: to balance congestion, use overload percent ...................................................................... Patch Set 6: Code-Review+2 combine +1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22085 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I55234c6c99eb02ceee52be0d7388bea14304930f Gerrit-Change-Number: 22085 Gerrit-PatchSet: 6 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 14 Jan 2021 06:21:12 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 06:24:57 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 14 Jan 2021 06:24:57 +0000 Subject: Change in osmo-bsc[master]: hodec2: to balance congestion, use overload percent In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22085 ) Change subject: hodec2: to balance congestion, use overload percent ...................................................................... hodec2: to balance congestion, use overload percent For balancing load across congested cells and across congested TCH/* kinds, instead of comparing the number of lchans above the configured congestion threshold, compare the percent of lchans of overload. In short, using a percentage prevents cells with less min-free-slots to fill up 100% while neighbor cells still may have several free lchans available. An obvious example of why this is desirable is illustrated by test_balance_congestion_by_percentage.ho_vty: Cell A has min-free-slots 2, and has all slots occupied. Cell B has min-free-slots 4, and has 2 slots remaining free. If we count congested lchans as in current master: cell A has a congestion count of 2: two more lchans in use than "allowed". If we move one lchan over to cell B, it ends up with a congestion count of 3, which is worse than 2. So when counting lchans, we decide that cell A should remain full. Instead, when comparing percentage of remaining lchans, we would see that cell A is loaded 100% above congestion (2 of 2 remaining lchans in use), but when moving one lchan to cell B, that would only be 75% loaded above its treshold (3 of 4 remaining lchans in use). So a percentage comparison would cause a handover to cell B. Related: SYS#5259 Change-Id: I55234c6c99eb02ceee52be0d7388bea14304930f --- M doc/manuals/chapters/handover.adoc M src/osmo-bsc/handover_decision_2.c M tests/handover/test_balance_congestion_by_percentage.ho_vty M tests/handover/test_balance_congestion_tchf_tchh.ho_vty 4 files changed, 57 insertions(+), 23 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve neels: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/doc/manuals/chapters/handover.adoc b/doc/manuals/chapters/handover.adoc index 4de744b..56e9aea 100644 --- a/doc/manuals/chapters/handover.adoc +++ b/doc/manuals/chapters/handover.adoc @@ -511,9 +511,11 @@ cells. Every time, the one MS that will suffer the least RXLEV loss while still reducing congestion will be instructed to move first. -If a cell and its neighbors are all loaded past their `min-free-slots` -settings, the algorithmic aim is equal load: a load-based handover will never -cause the target cell to be more congested than the source cell. +If a cell and its neighbors are all loaded past their `min-free-slots` settings, +the algorithmic aim is to improve the percentage of load above the +`min-free-slots` setting: a load-based handover always requires the target cell +to have a lower load percentage after handover than the source cell had before +handover. The min-free-slots setting is a tradeoff between immediate voice service availability and optimal reception levels. A sane choice could be: diff --git a/src/osmo-bsc/handover_decision_2.c b/src/osmo-bsc/handover_decision_2.c index c265f5f..0362c9b 100644 --- a/src/osmo-bsc/handover_decision_2.c +++ b/src/osmo-bsc/handover_decision_2.c @@ -25,6 +25,7 @@ #include #include #include +#include #include #include @@ -387,6 +388,26 @@ return false; } +#define LOAD_PRECISION 6 + +/* Return a number representing overload, i.e. the fraction of lchans used above the congestion threshold. + * Think of it as a percentage of used lchans above congestion, just represented in a fixed-point fraction with N + * decimal digits of fractional part. If there is no congestion (free_tch >= min_free_tch), return 0. + */ +static int32_t load_above_congestion(int free_tch, int min_free_tch) +{ + int32_t v; + OSMO_ASSERT(free_tch >= 0); + /* Avoid division by zero when no congestion threshold is set, and return zero overload when there is no + * congestion. */ + if (free_tch >= min_free_tch) + return 0; + v = min_free_tch - free_tch; + v *= pow(10, LOAD_PRECISION); + v /= min_free_tch; + return v; +} + /* * Check what requirements the given cell fulfills. * A bit mask of fulfilled requirements is returned. @@ -443,7 +464,7 @@ { uint8_t requirement = 0; unsigned int penalty_time; - int current_overbooked; + int32_t current_overbooked; c->requirements = 0; /* Requirement A */ @@ -626,17 +647,25 @@ /* Requirement C */ - /* the nr of lchans surpassing congestion on the target cell must be <= the lchans surpassing congestion on the - * current cell _after_ handover/assignment */ - current_overbooked = c->current.min_free_tch - c->current.free_tch; + /* the load percentage above congestion on the target cell *after* HO must be < the load percentage above + * congestion on the current cell, hence the - 1 on the target. */ + current_overbooked = load_above_congestion(c->current.free_tch, c->current.min_free_tch); if (requirement & REQUIREMENT_A_TCHF) { - int target_overbooked = c->target.min_free_tchf - c->target.free_tchf; - if (target_overbooked + 1 <= current_overbooked - 1) + int32_t target_overbooked = load_above_congestion(c->target.free_tchf - 1, c->target.min_free_tchf); + LOGPHOLCHANTOBTS(c->current.lchan, c->target.bts, LOGL_DEBUG, + "current overbooked = %s%%, TCH/F target overbooked after HO = %s%%\n", + osmo_int_to_float_str_c(OTC_SELECT, current_overbooked, LOAD_PRECISION - 2), + osmo_int_to_float_str_c(OTC_SELECT, target_overbooked, LOAD_PRECISION - 2)); + if (target_overbooked < current_overbooked) requirement |= REQUIREMENT_C_TCHF; } if (requirement & REQUIREMENT_A_TCHH) { - int target_overbooked = c->target.min_free_tchh - c->target.free_tchh; - if (target_overbooked + 1 <= current_overbooked - 1) + int32_t target_overbooked = load_above_congestion(c->target.free_tchh - 1, c->target.min_free_tchh); + LOGPHOLCHANTOBTS(c->current.lchan, c->target.bts, LOGL_DEBUG, + "current overbooked = %s%%, TCH/H target overbooked after HO = %s%%\n", + osmo_int_to_float_str_c(OTC_SELECT, current_overbooked, LOAD_PRECISION - 2), + osmo_int_to_float_str_c(OTC_SELECT, target_overbooked, LOAD_PRECISION - 2)); + if (target_overbooked < current_overbooked) requirement |= REQUIREMENT_C_TCHH; } diff --git a/tests/handover/test_balance_congestion_by_percentage.ho_vty b/tests/handover/test_balance_congestion_by_percentage.ho_vty index e00636e..09d2151 100644 --- a/tests/handover/test_balance_congestion_by_percentage.ho_vty +++ b/tests/handover/test_balance_congestion_by_percentage.ho_vty @@ -29,6 +29,7 @@ meas-rep lchan * * * * rxlev 40 rxqual 0 ta 0 neighbors 30 expect-no-chan -# bts 0 is full, but by counting lchans above congestion, it should remain full. +# bts 0 is full, by target_overbooked_after_ho==75% < current_overbooked_before_ho==100%, a congestion balancing to bts +# 1 is performed. congestion-check -expect-no-chan +expect-ho from lchan 0 0 1 0 to lchan 1 0 5 0 diff --git a/tests/handover/test_balance_congestion_tchf_tchh.ho_vty b/tests/handover/test_balance_congestion_tchf_tchh.ho_vty index 7f9039f..62f07bf 100644 --- a/tests/handover/test_balance_congestion_tchf_tchh.ho_vty +++ b/tests/handover/test_balance_congestion_tchf_tchh.ho_vty @@ -6,46 +6,48 @@ create-bts trx-count 1 timeslots c+s4 TCH/F TCH/F TCH/F TCH/F TCH/H TCH/H TCH/H -# both TCH/H and TCH/F have one lchan above congestion, nothing happens +# both TCH/H and TCH/F have one lchan = 33% above congestion, nothing happens set-ts-use trx 0 0 states * TCH/F TCH/F - - TCH/HH TCH/HH - meas-rep lchan * * * * rxlev 10 rxqual 0 ta 0 congestion-check expect-no-chan -# TCH/F = +1, TCH/H = +2 above congestion. Moving a TCH/H to TCH/F would just reverse the situation to F=+2 H=+1. Nothing happens. +# TCH/F = +1 = 33%, TCH/H = +2 = 66% above congestion. +# Moving a TCH/H to TCH/F would just reverse the situation to F=+2=66%. Nothing happens. set-ts-use trx 0 0 states * TCH/F TCH/F - - TCH/HH TCH/HH TCH/H- meas-rep lchan * * * * rxlev 10 rxqual 0 ta 0 congestion-check expect-no-chan -# F=+1 H=+3. Balance to F=+2 H=+2 +# F=+1=33% H=+3=100%. Balance to F=+2=66% (which is < 100%) and H=+2=66% set-ts-use trx 0 0 states * TCH/F TCH/F - - TCH/HH TCH/HH TCH/HH meas-rep lchan * * * * rxlev 10 rxqual 0 ta 0 congestion-check expect-ho from lchan 0 0 5 0 to lchan 0 0 3 0 -# Now the exact same thing, just with different min-free-slots settings for -# tch/f vs tch/h +# Now similar load percentages, just with different min-free-slots settings for tch/f vs tch/h. network handover2 min-free-slots tch/f 3 handover2 min-free-slots tch/h 5 -# both TCH/H and TCH/F have one lchan above congestion, nothing happens +# TCH/F has 1/3 = 33%, TCH/H has 1/5 = 20% overload. +# Moving one to TCH/H would mean 40% overload on TCH/H, which is above the current TCH/F of 33%. +# Nothing happens. set-ts-use trx 0 0 states * TCH/F TCH/F - - TCH/HH - - meas-rep lchan * * * * rxlev 20 rxqual 0 ta 0 congestion-check expect-no-chan -# TCH/F = +1, TCH/H = +2 above congestion. Moving a TCH/H to TCH/F would just -# reverse the situation to F=+2 H=+1. Nothing happens. +# TCH/F = +1 = 33%, TCH/H = +2 = 40% above congestion. Moving a TCH/H to TCH/F would result +# in F=+2=66%>40%. Nothing happens. set-ts-use trx 0 0 states * TCH/F TCH/F - - TCH/HH TCH/H- - meas-rep lchan * * * * rxlev 20 rxqual 0 ta 0 congestion-check expect-no-chan -# F=+1 H=+3. Balance to F=+2 H=+2 -set-ts-use trx 0 0 states * TCH/F TCH/F - - TCH/HH TCH/HH - +# F=+1=33% H=+4=80%. Balance to F=+2=66%<80% and H=+3=60% +set-ts-use trx 0 0 states * TCH/F TCH/F - - TCH/HH TCH/HH TCH/H- meas-rep lchan * * * * rxlev 20 rxqual 0 ta 0 congestion-check expect-ho from lchan 0 0 5 0 to lchan 0 0 3 0 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22085 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I55234c6c99eb02ceee52be0d7388bea14304930f Gerrit-Change-Number: 22085 Gerrit-PatchSet: 7 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 06:24:58 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 14 Jan 2021 06:24:58 +0000 Subject: Change in osmo-bsc[master]: handover_test: enhance test_balance_congestion_by_percentage.ho_vty In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22101 ) Change subject: handover_test: enhance test_balance_congestion_by_percentage.ho_vty ...................................................................... handover_test: enhance test_balance_congestion_by_percentage.ho_vty Related: SYS#5259 Change-Id: I2664dd0857965c4dbf1f91e57c6324d9cf330423 --- M tests/handover/test_balance_congestion_by_percentage.ho_vty 1 file changed, 17 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/tests/handover/test_balance_congestion_by_percentage.ho_vty b/tests/handover/test_balance_congestion_by_percentage.ho_vty index 09d2151..aba7d3a 100644 --- a/tests/handover/test_balance_congestion_by_percentage.ho_vty +++ b/tests/handover/test_balance_congestion_by_percentage.ho_vty @@ -33,3 +33,20 @@ # 1 is performed. congestion-check expect-ho from lchan 0 0 1 0 to lchan 1 0 5 0 + + +# Make sure that no percentage based handover merely reverses the situation between two cells: + +network + bts 0 + handover2 min-free-slots tch/f 4 + bts 1 + handover2 min-free-slots tch/f 4 + +set-ts-use trx 0 0 states * TCH/F TCH/F TCH/F TCH/F - - * +set-ts-use trx 1 0 states * TCH/F TCH/F TCH/F - - - * + +# the condition is false: target_overbooked_after_ho==50% < current_overbooked_before_ho==50%, so no congestion +# balancing is performed. +congestion-check +expect-no-chan -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22101 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I2664dd0857965c4dbf1f91e57c6324d9cf330423 Gerrit-Change-Number: 22101 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 09:16:04 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 14 Jan 2021 09:16:04 +0000 Subject: Change in osmo-bsc[master]: vty: fix 'codec-list' command: check all given arguments first In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22167 ) Change subject: vty: fix 'codec-list' command: check all given arguments first ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22167 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I35b740a39c9cf3716d286e717486ef505bc61522 Gerrit-Change-Number: 22167 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: neels Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 14 Jan 2021 09:16:04 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 09:18:53 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 14 Jan 2021 09:18:53 +0000 Subject: Change in osmo-bsc[master]: vty: use 'const' for *nsvc in config_write_bts_gprs() In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22163 ) Change subject: vty: use 'const' for *nsvc in config_write_bts_gprs() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22163 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I869944cc692c7954b2862ecff32c6034d20babef Gerrit-Change-Number: 22163 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 14 Jan 2021 09:18:53 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 09:21:24 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 14 Jan 2021 09:21:24 +0000 Subject: Change in osmo-bsc[master]: vty: fix writing empty IP address for unconfigured NSVCs In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22164 ) Change subject: vty: fix writing empty IP address for unconfigured NSVCs ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22164 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I5d6cbde4f605c8184db4ade87de5644a849c05db Gerrit-Change-Number: 22164 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 14 Jan 2021 09:21:24 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 09:27:46 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 14 Jan 2021 09:27:46 +0000 Subject: Change in osmo-bsc[master]: vty: fix writing empty IP address for unconfigured NSVCs In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22164 ) Change subject: vty: fix writing empty IP address for unconfigured NSVCs ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22164 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I5d6cbde4f605c8184db4ade87de5644a849c05db Gerrit-Change-Number: 22164 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 14 Jan 2021 09:27:46 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 10:06:12 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 14 Jan 2021 10:06:12 +0000 Subject: Change in osmo-pcu[master]: Split PCU global PCU object from BTS object In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22162 ) Change subject: Split PCU global PCU object from BTS object ...................................................................... Patch Set 2: This change is ready for review. -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22162 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I88e3c6471b80245ce3798223f1a61190f14aa840 Gerrit-Change-Number: 22162 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Thu, 14 Jan 2021 10:06:12 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 10:31:37 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 14 Jan 2021 10:31:37 +0000 Subject: Change in osmo-iuh[master]: tests/hnb-test-ranap: Fix incorrect pointer type cast References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-iuh/+/22168 ) Change subject: tests/hnb-test-ranap: Fix incorrect pointer type cast ...................................................................... tests/hnb-test-ranap: Fix incorrect pointer type cast osmo_hexdump expect it to be a const unsigned char*, and gcc warns about incorrect signedness. Change-Id: I7e0622f502a4442d700340b0f1c2f8cd01e90ecd --- M src/tests/hnb-test-ranap.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-iuh refs/changes/68/22168/1 diff --git a/src/tests/hnb-test-ranap.c b/src/tests/hnb-test-ranap.c index 517e1a3..fe7db48 100644 --- a/src/tests/hnb-test-ranap.c +++ b/src/tests/hnb-test-ranap.c @@ -5,7 +5,7 @@ static const char *printstr(OCTET_STRING_t *s) { - return osmo_hexdump((char*)s->buf, s->size); + return osmo_hexdump((const unsigned char*)s->buf, s->size); } #define PP(octet_string_t) \ -- To view, visit https://gerrit.osmocom.org/c/osmo-iuh/+/22168 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: master Gerrit-Change-Id: I7e0622f502a4442d700340b0f1c2f8cd01e90ecd Gerrit-Change-Number: 22168 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 10:31:38 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 14 Jan 2021 10:31:38 +0000 Subject: Change in osmo-iuh[master]: tests/hnb-test: Drop unused variables References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-iuh/+/22169 ) Change subject: tests/hnb-test: Drop unused variables ...................................................................... tests/hnb-test: Drop unused variables Change-Id: I12870a1cf2462b7cc2868a54f58416e03a856084 --- M src/tests/hnb-test.c 1 file changed, 2 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-iuh refs/changes/69/22169/1 diff --git a/src/tests/hnb-test.c b/src/tests/hnb-test.c index 27959ec..4b726fa 100644 --- a/src/tests/hnb-test.c +++ b/src/tests/hnb-test.c @@ -81,7 +81,7 @@ static int hnb_test_ue_de_register_tx(struct hnb_test *hnb_test) { struct msgb *msg; - int rc, imsi_len; + int rc; uint32_t ctx_id; UEDe_Register_t dereg; @@ -320,7 +320,6 @@ int len) { struct gsm48_auth_req *ar; - int parse_res; len -= (const char *)&gh->data[0] - (const char *)gh; @@ -629,7 +628,7 @@ static int hnb_write_cb(struct osmo_fd *fd, struct msgb *msg) { - struct hnb_test *ctx = fd->data; + /* struct hnb_test *ctx = fd->data; */ struct sctp_sndrcvinfo sinfo = { .sinfo_ppid = htonl(msgb_sctp_ppid(msg)), .sinfo_stream = 0, -- To view, visit https://gerrit.osmocom.org/c/osmo-iuh/+/22169 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: master Gerrit-Change-Id: I12870a1cf2462b7cc2868a54f58416e03a856084 Gerrit-Change-Number: 22169 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 10:31:39 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 14 Jan 2021 10:31:39 +0000 Subject: Change in osmo-iuh[master]: tests/hnb-test: Fix signedness of imsi_buf References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-iuh/+/22170 ) Change subject: tests/hnb-test: Fix signedness of imsi_buf ...................................................................... tests/hnb-test: Fix signedness of imsi_buf Change-Id: I3b0a6218ac6242d03642972d5b244815ce9d97a0 --- M src/tests/hnb-test.c 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-iuh refs/changes/70/22170/1 diff --git a/src/tests/hnb-test.c b/src/tests/hnb-test.c index 4b726fa..6b9985f 100644 --- a/src/tests/hnb-test.c +++ b/src/tests/hnb-test.c @@ -112,7 +112,7 @@ struct msgb *msg; int rc, imsi_len; - char imsi_buf[16]; + uint8_t imsi_buf[16]; UERegisterRequest_t request_out; UERegisterRequestIEs_t request; @@ -121,7 +121,7 @@ request.uE_Identity.present = UE_Identity_PR_iMSI; imsi_len = ranap_imsi_encode(imsi_buf, sizeof(imsi_buf), imsi_str); - OCTET_STRING_fromBuf(&request.uE_Identity.choice.iMSI, imsi_buf, imsi_len); + OCTET_STRING_fromBuf(&request.uE_Identity.choice.iMSI, (const char*)imsi_buf, imsi_len); request.registration_Cause = Registration_Cause_normal; request.uE_Capabilities.access_stratum_release_indicator = Access_stratum_release_indicator_rel_6; -- To view, visit https://gerrit.osmocom.org/c/osmo-iuh/+/22170 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: master Gerrit-Change-Id: I3b0a6218ac6242d03642972d5b244815ce9d97a0 Gerrit-Change-Number: 22170 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 10:31:39 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 14 Jan 2021 10:31:39 +0000 Subject: Change in osmo-iuh[master]: tests/hnb-test: check return code of hnbap_encode_ueregisterrequesties References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-iuh/+/22171 ) Change subject: tests/hnb-test: check return code of hnbap_encode_ueregisterrequesties ...................................................................... tests/hnb-test: check return code of hnbap_encode_ueregisterrequesties gcc warns about set but not used variable otherwise. Change-Id: Ia49b7e88a66a4a744c2b14db6331cc0de431f60b --- M src/tests/hnb-test.c 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-iuh refs/changes/71/22171/1 diff --git a/src/tests/hnb-test.c b/src/tests/hnb-test.c index 6b9985f..4696e80 100644 --- a/src/tests/hnb-test.c +++ b/src/tests/hnb-test.c @@ -94,6 +94,7 @@ memset(&dereg, 0, sizeof(dereg)); rc = hnbap_encode_uede_registeries(&dereg, &dereg_ies); + OSMO_ASSERT(rc == 0); msg = hnbap_generate_initiating_message(ProcedureCode_id_UEDe_Register, Criticality_ignore, @@ -129,6 +130,7 @@ memset(&request_out, 0, sizeof(request_out)); rc = hnbap_encode_ueregisterrequesties(&request_out, &request); + OSMO_ASSERT(rc == 0); msg = hnbap_generate_initiating_message(ProcedureCode_id_UERegister, Criticality_reject, -- To view, visit https://gerrit.osmocom.org/c/osmo-iuh/+/22171 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: master Gerrit-Change-Id: Ia49b7e88a66a4a744c2b14db6331cc0de431f60b Gerrit-Change-Number: 22171 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 10:31:39 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 14 Jan 2021 10:31:39 +0000 Subject: Change in osmo-iuh[master]: tests/hnb-test-ranap: Fix incorrect signedness in pointer References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-iuh/+/22172 ) Change subject: tests/hnb-test-ranap: Fix incorrect signedness in pointer ...................................................................... tests/hnb-test-ranap: Fix incorrect signedness in pointer Change-Id: I04b1c0446124d66dae1e8fb99d9b82782d12bde7 --- M src/tests/hnb-test-ranap.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-iuh refs/changes/72/22172/1 diff --git a/src/tests/hnb-test-ranap.c b/src/tests/hnb-test-ranap.c index fe7db48..3db876c 100644 --- a/src/tests/hnb-test-ranap.c +++ b/src/tests/hnb-test-ranap.c @@ -16,7 +16,7 @@ struct ranap_message_s *ranap_msg) { int len; - char *data; + uint8_t *data; RANAP_PermittedIntegrityProtectionAlgorithms_t *algs; RANAP_IntegrityProtectionAlgorithm_t *first_alg; -- To view, visit https://gerrit.osmocom.org/c/osmo-iuh/+/22172 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: master Gerrit-Change-Id: I04b1c0446124d66dae1e8fb99d9b82782d12bde7 Gerrit-Change-Number: 22172 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 10:31:40 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 14 Jan 2021 10:31:40 +0000 Subject: Change in osmo-iuh[master]: tests/hnb-test-ranap: Fix missing include for ranap_bcd_decode References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-iuh/+/22173 ) Change subject: tests/hnb-test-ranap: Fix missing include for ranap_bcd_decode ...................................................................... tests/hnb-test-ranap: Fix missing include for ranap_bcd_decode Change-Id: If8b799777598377048512c338f6384560b445ba3 --- M src/tests/hnb-test-ranap.c 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-iuh refs/changes/73/22173/1 diff --git a/src/tests/hnb-test-ranap.c b/src/tests/hnb-test-ranap.c index 3db876c..629726b 100644 --- a/src/tests/hnb-test-ranap.c +++ b/src/tests/hnb-test-ranap.c @@ -1,5 +1,6 @@ #include #include +#include #include "hnb-test-layers.h" -- To view, visit https://gerrit.osmocom.org/c/osmo-iuh/+/22173 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: master Gerrit-Change-Id: If8b799777598377048512c338f6384560b445ba3 Gerrit-Change-Number: 22173 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 10:31:40 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 14 Jan 2021 10:31:40 +0000 Subject: Change in osmo-iuh[master]: tests/hnb-test: Fix uninitialized use of rc variable References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-iuh/+/22174 ) Change subject: tests/hnb-test: Fix uninitialized use of rc variable ...................................................................... tests/hnb-test: Fix uninitialized use of rc variable Change-Id: I168e4f7cd48cbaa387e6b05868107250795a0f0c --- M src/tests/hnb-test.c 1 file changed, 3 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-iuh refs/changes/74/22174/1 diff --git a/src/tests/hnb-test.c b/src/tests/hnb-test.c index 4696e80..4650a90 100644 --- a/src/tests/hnb-test.c +++ b/src/tests/hnb-test.c @@ -478,7 +478,7 @@ msg->data, msgb_length(msg), 0, 0); if (dec_ret.code != RC_OK) { LOGP(DMAIN, LOGL_ERROR, "Error in ASN.1 decode\n"); - return rc; + return -EINVAL; } if (pdu->present != HNBAP_PDU_PR_successfulOutcome) { @@ -506,14 +506,13 @@ { RUA_RUA_PDU_t _pdu, *pdu = &_pdu; asn_dec_rval_t dec_ret; - int rc; memset(pdu, 0, sizeof(*pdu)); dec_ret = aper_decode(NULL, &asn_DEF_RUA_RUA_PDU, (void **) &pdu, msg->data, msgb_length(msg), 0, 0); if (dec_ret.code != RC_OK) { LOGP(DMAIN, LOGL_ERROR, "Error in ASN.1 decode\n"); - return rc; + return -EINVAL; } switch (pdu->present) { @@ -560,7 +559,7 @@ break; } - return rc; + return 0; } static int hnb_read_cb(struct osmo_fd *fd) -- To view, visit https://gerrit.osmocom.org/c/osmo-iuh/+/22174 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: master Gerrit-Change-Id: I168e4f7cd48cbaa387e6b05868107250795a0f0c Gerrit-Change-Number: 22174 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 10:31:40 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 14 Jan 2021 10:31:40 +0000 Subject: Change in osmo-iuh[master]: tests/hnb-test: Fix signedness of assigned pointer References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-iuh/+/22175 ) Change subject: tests/hnb-test: Fix signedness of assigned pointer ...................................................................... tests/hnb-test: Fix signedness of assigned pointer Change-Id: I320ad86b83b0308b43489e8d95f63d6ed55821b5 --- M src/tests/hnb-test.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-iuh refs/changes/75/22175/1 diff --git a/src/tests/hnb-test.c b/src/tests/hnb-test.c index 4650a90..7824858 100644 --- a/src/tests/hnb-test.c +++ b/src/tests/hnb-test.c @@ -667,7 +667,7 @@ asn1_u8_to_str(&request.rac, &rac, rac); asn1_u28_to_bitstring(&request.cellIdentity, &cid, cid); - request.hnB_Identity.hNB_Identity_Info.buf = identity; + request.hnB_Identity.hNB_Identity_Info.buf = (uint8_t*) identity; request.hnB_Identity.hNB_Identity_Info.size = strlen(identity); request.plmNidentity.buf = plmn; -- To view, visit https://gerrit.osmocom.org/c/osmo-iuh/+/22175 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: master Gerrit-Change-Id: I320ad86b83b0308b43489e8d95f63d6ed55821b5 Gerrit-Change-Number: 22175 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 10:31:41 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 14 Jan 2021 10:31:41 +0000 Subject: Change in osmo-iuh[master]: tests/hnb-test: Initialize logging with existing struct log_info References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-iuh/+/22176 ) Change subject: tests/hnb-test: Initialize logging with existing struct log_info ...................................................................... tests/hnb-test: Initialize logging with existing struct log_info Change-Id: Ic92e60dda41a9e4d139294b1e851fff5c4f26143 --- M src/tests/hnb-test.c 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-iuh refs/changes/76/22176/1 diff --git a/src/tests/hnb-test.c b/src/tests/hnb-test.c index 7824858..e6fa7ba 100644 --- a/src/tests/hnb-test.c +++ b/src/tests/hnb-test.c @@ -941,6 +941,8 @@ tall_hnb_ctx = talloc_named_const(NULL, 0, "hnb_context"); + osmo_init_logging2(tall_hnb_ctx, &hnb_test_log_info); + vty_init(&vty_info); hnbtest_vty_init(); -- To view, visit https://gerrit.osmocom.org/c/osmo-iuh/+/22176 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: master Gerrit-Change-Id: Ic92e60dda41a9e4d139294b1e851fff5c4f26143 Gerrit-Change-Number: 22176 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 10:31:41 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 14 Jan 2021 10:31:41 +0000 Subject: Change in osmo-iuh[master]: tests/hnb-test: Disable building unsued code References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-iuh/+/22177 ) Change subject: tests/hnb-test: Disable building unsued code ...................................................................... tests/hnb-test: Disable building unsued code Change-Id: I17f20cea8aa63ed79168653292b99c90b8c03caf --- M src/tests/hnb-test.c 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-iuh refs/changes/77/22177/1 diff --git a/src/tests/hnb-test.c b/src/tests/hnb-test.c index e6fa7ba..acd8b13 100644 --- a/src/tests/hnb-test.c +++ b/src/tests/hnb-test.c @@ -78,6 +78,7 @@ struct msgb *rua_new_udt(struct msgb *inmsg); +#if 0 static int hnb_test_ue_de_register_tx(struct hnb_test *hnb_test) { struct msgb *msg; @@ -107,6 +108,7 @@ return osmo_wqueue_enqueue(&hnb_test->wqueue, msg); } +#endif static int hnb_test_ue_register_tx(struct hnb_test *hnb_test, const char *imsi_str) { -- To view, visit https://gerrit.osmocom.org/c/osmo-iuh/+/22177 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: master Gerrit-Change-Id: I17f20cea8aa63ed79168653292b99c90b8c03caf Gerrit-Change-Number: 22177 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 10:50:25 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 14 Jan 2021 10:50:25 +0000 Subject: Change in osmo-pcu[master]: Split PCU global PCU object from BTS object In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-pcu/+/22162 to look at the new patch set (#3). Change subject: Split PCU global PCU object from BTS object ...................................................................... Split PCU global PCU object from BTS object Currently the BTS object (and gprs_rlcmac_bts struct) are used to hold both PCU global fields and BTS specific fields, all mangled together. The BTS is even accessed in lots of places by means of a singleton. This patch introduces a new struct gprs_pcu object aimed at holding all global state, and several fields are already moved from BTS to it. The new object can be accessed as global variable "the_pcu", reusing and including an already exisitng "the_pcu" global variable only used for bssgp related purposes so far. This is only a first step towards having a complete split global pcu and BTS, some fields are still kept in BTS and will be moved over follow-up smaller patches in the future (since this patch is already quite big). So far, the code still only supports one BTS, which can be accessed using the_pcu->bts. In the future that field will be replaced with a list, and the BTS singletons will be removed. The cur_fn output changes in TbfTest are actually a side effect fix, since the singleton main_bts() now points internally to the_pcu->bts, hence the same we allocate and assign in the test. Beforehand, "the_bts" was allocated in the stack while main_bts() still returned an unrelated singleton BTS object instance. Related: OS#4935 Change-Id: I88e3c6471b80245ce3798223f1a61190f14aa840 --- M src/Makefile.am M src/bts.cpp M src/bts.h M src/gprs_bssgp_pcu.cpp M src/gprs_bssgp_pcu.h A src/gprs_pcu.c A src/gprs_pcu.h M src/gprs_rlcmac_ts_alloc.cpp M src/osmobts_sock.cpp M src/pcu_l1_if.cpp M src/pcu_l1_if.h M src/pcu_main.cpp M src/pcu_vty.c M src/tbf.cpp M tests/alloc/AllocTest.cpp M tests/alloc/MslotTest.cpp M tests/app_info/AppInfoTest.cpp M tests/edge/EdgeTest.cpp M tests/emu/pcu_emu.cpp M tests/fn/FnTest.cpp M tests/ms/MsTest.cpp M tests/tbf/TbfTest.cpp M tests/tbf/TbfTest.err M tests/types/TypesTest.cpp 24 files changed, 1,010 insertions(+), 792 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/62/22162/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22162 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I88e3c6471b80245ce3798223f1a61190f14aa840 Gerrit-Change-Number: 22162 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 11:05:11 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 14 Jan 2021 11:05:11 +0000 Subject: Change in libosmocore[master]: bssgp_rim: add encoder/decoder for NACC related RIM containers In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/21862 to look at the new patch set (#10). Change subject: bssgp_rim: add encoder/decoder for NACC related RIM containers ...................................................................... bssgp_rim: add encoder/decoder for NACC related RIM containers BSSGP RIM uses a number of nested containers to signal RIM application specific payload information in a generic way. Lets add the container structurs required for NACC. Depends: libosmocore If48f412c32e8e5a3e604a78d12b74787a4786374 Change-Id: Ibbc7fd67658e3040c12abb5706fe9d1f31894352 Related: SYS#5103 --- M include/Makefile.am A include/osmocom/gprs/gprs_bssgp_rim.h M src/gb/Makefile.am A src/gb/gprs_bssgp_rim.c M src/gb/libosmogb.map M tests/Makefile.am A tests/gb/gprs_bssgp_rim_test.c A tests/gb/gprs_bssgp_rim_test.ok M tests/testsuite.at 9 files changed, 1,859 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/62/21862/10 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21862 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ibbc7fd67658e3040c12abb5706fe9d1f31894352 Gerrit-Change-Number: 21862 Gerrit-PatchSet: 10 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 11:07:12 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 14 Jan 2021 11:07:12 +0000 Subject: Change in libosmocore[master]: bssgp_rim: add encoder/decoder for NACC related RIM containers In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21862 ) Change subject: bssgp_rim: add encoder/decoder for NACC related RIM containers ...................................................................... Patch Set 10: (1 comment) > Patch Set 9: Code-Review+1 > > my struct reuse comment was still not addresses, in case you still want to do it. Thats strange, I have updated it. The current patchset should now have it. https://gerrit.osmocom.org/c/libosmocore/+/21862/6/include/osmocom/gprs/gprs_bssgp_rim.h File include/osmocom/gprs/gprs_bssgp_rim.h: https://gerrit.osmocom.org/c/libosmocore/+/21862/6/include/osmocom/gprs/gprs_bssgp_rim.h at 7 PS6, Line 7: struct { > see gsm0808_decode_cell_id_u() Done -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21862 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ibbc7fd67658e3040c12abb5706fe9d1f31894352 Gerrit-Change-Number: 21862 Gerrit-PatchSet: 10 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 14 Jan 2021 11:07:12 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Comment-In-Reply-To: dexter Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 11:20:16 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 14 Jan 2021 11:20:16 +0000 Subject: Change in libosmocore[master]: bssgp_rim: add encoder/decoder for NACC related RIM containers In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21862 ) Change subject: bssgp_rim: add encoder/decoder for NACC related RIM containers ...................................................................... Patch Set 10: Code-Review-1 (2 comments) https://gerrit.osmocom.org/c/libosmocore/+/21862/10/src/gb/gprs_bssgp_rim.c File src/gb/gprs_bssgp_rim.c: https://gerrit.osmocom.org/c/libosmocore/+/21862/10/src/gb/gprs_bssgp_rim.c at 29 PS10, Line 29: #include why do you include cbsp here? The deocde_cell_id_u func is declared in osmocom/gsm/gsm0808_utils.h https://gerrit.osmocom.org/c/libosmocore/+/21862/10/src/gb/gprs_bssgp_rim.c at 55 PS10, Line 55: rc = gsm0808_decode_cell_id_u((union gsm0808_cell_id_u*)&cont->reprt_cell, You cannot do this cast, the gprs_ra_id struct you are using is not compatible and not part of cell_id_u, use "struct osmo_cell_global_id_ps" for reprt_cell instead -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21862 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ibbc7fd67658e3040c12abb5706fe9d1f31894352 Gerrit-Change-Number: 21862 Gerrit-PatchSet: 10 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 14 Jan 2021 11:20:16 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 11:24:15 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 14 Jan 2021 11:24:15 +0000 Subject: Change in osmo-pcu[master]: Workaround ASan false positive runtime errors under some platforms References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22178 ) Change subject: Workaround ASan false positive runtime errors under some platforms ...................................................................... Workaround ASan false positive runtime errors under some platforms Under some platforms (RPI4, ARM) container older ASan, it will log false positive log errors which will make unit test fail because then output changes: """ pcu_l1_if.cpp:847:2: runtime error: member access within misaligned address 0xb3f0b78c for type 'struct GprsMs', which requires 8 byte alignment """ The pointer is indeed misaligned, but it's not actually a bug, because the pointer is never derreferenced. That happens during llist_for_each_entry operation where it does cast the pointer but it only checks if the list has actually reached the end. To workaround the issue, simply defer casting it by using llist_for_each instead, where the pointer is assigned only in the case it really points to a GprsMS struct. Change-Id: I149fb42706501eb33f9c6fe48f76a03ddee5954a --- M src/pcu_l1_if.cpp M src/pcu_vty_functions.cpp 2 files changed, 7 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/78/22178/1 diff --git a/src/pcu_l1_if.cpp b/src/pcu_l1_if.cpp index 9cc6270..2aea00b 100644 --- a/src/pcu_l1_if.cpp +++ b/src/pcu_l1_if.cpp @@ -840,15 +840,16 @@ static int pcu_rx_app_info_req(struct gsm_pcu_if_app_info_req *app_info_req) { - GprsMs *ms; BTS *bts = BTS::main_bts(); struct gprs_rlcmac_bts *bts_data = bts->bts_data(); + struct llist_head *tmp; LOGP(DL1IF, LOGL_DEBUG, "Application Information Request received: type=0x%08x len=%i\n", app_info_req->application_type, app_info_req->len); bts_data->app_info_pending = 0; - llist_for_each_entry(ms, bts->ms_store().ms_list(), list) { + llist_for_each(tmp, bts->ms_store().ms_list()) { + GprsMs *ms = llist_entry(tmp, typeof(*ms), list); if (!ms_dl_tbf(ms)) continue; bts_data->app_info_pending++; diff --git a/src/pcu_vty_functions.cpp b/src/pcu_vty_functions.cpp index 92be77b..0276b3e 100644 --- a/src/pcu_vty_functions.cpp +++ b/src/pcu_vty_functions.cpp @@ -207,10 +207,12 @@ int pcu_vty_show_ms_all(struct vty *vty, struct gprs_rlcmac_bts *bts_data) { BTS *bts = bts_data->bts; - GprsMs *ms_iter; + struct llist_head *tmp; - llist_for_each_entry(ms_iter, bts->ms_store().ms_list(), list) + llist_for_each(tmp, bts->ms_store().ms_list()) { + GprsMs *ms_iter = llist_entry(tmp, typeof(*ms_iter), list); show_ms(vty, ms_iter); + } return CMD_SUCCESS; } -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22178 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I149fb42706501eb33f9c6fe48f76a03ddee5954a Gerrit-Change-Number: 22178 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 11:37:16 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 14 Jan 2021 11:37:16 +0000 Subject: Change in libosmocore[master]: bssgp_rim: move bssgp_parse_rim_ri and bssgp_create_rim_ri to gprs_bs... In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/21863 to look at the new patch set (#11). Change subject: bssgp_rim: move bssgp_parse_rim_ri and bssgp_create_rim_ri to gprs_bssgp_rim ...................................................................... bssgp_rim: move bssgp_parse_rim_ri and bssgp_create_rim_ri to gprs_bssgp_rim The function bssgp_parse_rim_ri() and bssgp_create_rim_ri() are located in gprs_bssgp.c, since there is now a gprs_bssgp_rim.c module it makes more sense to put them there. Also adjust the code a bit so that its more intuitive to read. Change-Id: Icd667f41d5735de56cd9fb257670337c679dd258 Related: SYS#5103 --- M include/osmocom/gprs/gprs_bssgp.h M include/osmocom/gprs/gprs_bssgp_rim.h M src/gb/gprs_bssgp.c M src/gb/gprs_bssgp_rim.c M tests/gb/gprs_bssgp_rim_test.c M tests/gb/gprs_bssgp_rim_test.ok M tests/gb/gprs_bssgp_test.c M tests/gb/gprs_bssgp_test.ok 8 files changed, 312 insertions(+), 311 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/63/21863/11 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21863 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Icd667f41d5735de56cd9fb257670337c679dd258 Gerrit-Change-Number: 21863 Gerrit-PatchSet: 11 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 11:37:38 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 14 Jan 2021 11:37:38 +0000 Subject: Change in libosmocore[master]: bssgp_rim: move bssgp_parse_rim_ri and bssgp_create_rim_ri to gprs_bs... In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21863 ) Change subject: bssgp_rim: move bssgp_parse_rim_ri and bssgp_create_rim_ri to gprs_bssgp_rim ...................................................................... Patch Set 11: (2 comments) Thanks for reviewing. https://gerrit.osmocom.org/c/libosmocore/+/21863/9/src/gb/gprs_bssgp_rim.c File src/gb/gprs_bssgp_rim.c: https://gerrit.osmocom.org/c/libosmocore/+/21863/9/src/gb/gprs_bssgp_rim.c at 56 PS9, Line 56: ri->discr = buf[0] & 0x0f; > probably better doing buf++ here and then avoid using buf +1 everywhere after this point. I think this makes sense. https://gerrit.osmocom.org/c/libosmocore/+/21863/9/src/gb/gprs_bssgp_rim.c at 127 PS9, Line 127: return ri->eutran.global_enb_id_len + 6; > you are missing 1 byte here I think, at least if you compare it to other switch cases. I think its correct. (1b discr) + (3b mcc/mnc) + (2b tac) + (enb id len) = 6 + (enb id len) Or do I miss something? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21863 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Icd667f41d5735de56cd9fb257670337c679dd258 Gerrit-Change-Number: 21863 Gerrit-PatchSet: 11 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 14 Jan 2021 11:37:38 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 11:39:56 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 14 Jan 2021 11:39:56 +0000 Subject: Change in osmo-pcu[master]: Move T_defs_pcu from BTS to PCU object References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22179 ) Change subject: Move T_defs_pcu from BTS to PCU object ...................................................................... Move T_defs_pcu from BTS to PCU object Change-Id: I0cac5c12dff2e90b52d00383a00b4b94a9603a0a --- M src/bts.cpp M src/bts.h M src/gprs_bssgp_pcu.cpp M src/gprs_pcu.c M src/gprs_pcu.h M src/gprs_rlcmac_sched.cpp M src/pcu_vty.c M src/tbf.cpp M src/tbf_dl.cpp M tests/tbf/TbfTest.cpp 10 files changed, 41 insertions(+), 53 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/79/22179/1 diff --git a/src/bts.cpp b/src/bts.cpp index 3c4e676..ac58f48 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -76,17 +76,6 @@ { .T=3195, .default_val=5, .unit=OSMO_TDEF_S, .desc="Reuse of TFI(s) upon no response from the MS (radio failure or cell change) for TBF/MBMS radio bearer (s)", .val=0 }, { .T=0, .default_val=0, .unit=OSMO_TDEF_S, .desc=NULL, .val=0 } /* empty item at the end */ }; -static struct osmo_tdef T_defs_pcu[] = { - { .T=1, .default_val=30, .unit=OSMO_TDEF_S, .desc="BSSGP (un)blocking procedures timer (s)", .val=0 }, - { .T=2, .default_val=30, .unit=OSMO_TDEF_S, .desc="BSSGP reset procedure timer (s)", .val=0 }, - { .T=3190, .default_val=5, .unit=OSMO_TDEF_S, .desc="Return to packet idle mode after Packet DL Assignment on CCCH (s)", .val=0}, - { .T=-2000, .default_val=2, .unit=OSMO_TDEF_MS, .desc="Tbf reject for PRR timer (ms)", .val=0 }, - { .T=-2001, .default_val=2, .unit=OSMO_TDEF_S, .desc="PACCH assignment timer (s)", .val=0 }, - { .T=-2002, .default_val=200, .unit=OSMO_TDEF_MS, .desc="Waiting after IMM.ASS confirm timer (ms)", .val=0 }, - { .T=-2030, .default_val=60, .unit=OSMO_TDEF_S, .desc="Time to keep an idle MS object alive (s)", .val=0 }, /* slightly above T3314 (default 44s, 24.008, 11.2.2) */ - { .T=-2031, .default_val=2000, .unit=OSMO_TDEF_MS, .desc="Time to keep an idle DL TBF alive (ms)", .val=0 }, - { .T=0, .default_val=0, .unit=OSMO_TDEF_S, .desc=NULL, .val=0 } /* empty item at the end */ -}; /** * For gcc-4.4 compat do not use extended initializer list but keep the @@ -267,9 +256,7 @@ bts->bts = bts_obj; bts->dl_tbf_preemptive_retransmission = true; bts->T_defs_bts = T_defs_bts; - bts->T_defs_pcu = T_defs_pcu; osmo_tdefs_reset(bts->T_defs_bts); - osmo_tdefs_reset(bts->T_defs_pcu); /* initialize back pointers */ for (size_t trx_no = 0; trx_no < ARRAY_SIZE(bts->trx); ++trx_no) { @@ -1135,7 +1122,7 @@ GprsMs *ms; ms = ms_store().create_ms(); - ms_set_timeout(ms, osmo_tdef_get(m_bts.T_defs_pcu, -2030, OSMO_TDEF_S, -1)); + ms_set_timeout(ms, osmo_tdef_get(pcu->T_defs, -2030, OSMO_TDEF_S, -1)); ms_set_ms_class(ms, ms_class); ms_set_egprs_ms_class(ms, egprs_ms_class); diff --git a/src/bts.h b/src/bts.h index e4e9e5c..b814b62 100644 --- a/src/bts.h +++ b/src/bts.h @@ -101,7 +101,6 @@ uint32_t llc_codel_interval_msec; /* 0=disabled, -1=use default interval */ /* Timer defintions */ struct osmo_tdef *T_defs_bts; /* timers controlled by BTS, received through PCUIF */ - struct osmo_tdef *T_defs_pcu; /* timers controlled by PCU */ uint8_t n3101; uint8_t n3103; uint8_t n3105; diff --git a/src/gprs_bssgp_pcu.cpp b/src/gprs_bssgp_pcu.cpp index 2c9073b..cfaee73 100644 --- a/src/gprs_bssgp_pcu.cpp +++ b/src/gprs_bssgp_pcu.cpp @@ -914,7 +914,7 @@ if (!the_pcu->bssgp.bvc_sig_reset) { LOGP(DBSSGP, LOGL_INFO, "Sending reset on BVCI 0\n"); bssgp_tx_bvc_reset(the_pcu->bssgp.bctx, 0, BSSGP_CAUSE_OML_INTERV); - secs = osmo_tdef_get(the_pcu->bssgp.bts->T_defs_pcu, 2, OSMO_TDEF_S, -1); + secs = osmo_tdef_get(the_pcu->T_defs, 2, OSMO_TDEF_S, -1); osmo_timer_schedule(&the_pcu->bssgp.bvc_timer, secs, 0); return; } @@ -923,7 +923,7 @@ LOGP(DBSSGP, LOGL_INFO, "Sending reset on BVCI %d\n", the_pcu->bssgp.bctx->bvci); bssgp_tx_bvc_reset(the_pcu->bssgp.bctx, the_pcu->bssgp.bctx->bvci, BSSGP_CAUSE_OML_INTERV); - secs = osmo_tdef_get(the_pcu->bssgp.bts->T_defs_pcu, 2, OSMO_TDEF_S, -1); + secs = osmo_tdef_get(the_pcu->T_defs, 2, OSMO_TDEF_S, -1); osmo_timer_schedule(&the_pcu->bssgp.bvc_timer, secs, 0); return; } @@ -932,7 +932,7 @@ LOGP(DBSSGP, LOGL_INFO, "Sending unblock on BVCI %d\n", the_pcu->bssgp.bctx->bvci); bssgp_tx_bvc_unblock(the_pcu->bssgp.bctx); - secs = osmo_tdef_get(the_pcu->bssgp.bts->T_defs_pcu, 1, OSMO_TDEF_S, -1); + secs = osmo_tdef_get(the_pcu->T_defs, 1, OSMO_TDEF_S, -1); osmo_timer_schedule(&the_pcu->bssgp.bvc_timer, secs, 0); return; } diff --git a/src/gprs_pcu.c b/src/gprs_pcu.c index 7fa5a2e..e08094b 100644 --- a/src/gprs_pcu.c +++ b/src/gprs_pcu.c @@ -27,6 +27,18 @@ struct gprs_pcu *the_pcu; +static struct osmo_tdef T_defs_pcu[] = { + { .T=1, .default_val=30, .unit=OSMO_TDEF_S, .desc="BSSGP (un)blocking procedures timer (s)", .val=0 }, + { .T=2, .default_val=30, .unit=OSMO_TDEF_S, .desc="BSSGP reset procedure timer (s)", .val=0 }, + { .T=3190, .default_val=5, .unit=OSMO_TDEF_S, .desc="Return to packet idle mode after Packet DL Assignment on CCCH (s)", .val=0}, + { .T=-2000, .default_val=2, .unit=OSMO_TDEF_MS, .desc="Tbf reject for PRR timer (ms)", .val=0 }, + { .T=-2001, .default_val=2, .unit=OSMO_TDEF_S, .desc="PACCH assignment timer (s)", .val=0 }, + { .T=-2002, .default_val=200, .unit=OSMO_TDEF_MS, .desc="Waiting after IMM.ASS confirm timer (ms)", .val=0 }, + { .T=-2030, .default_val=60, .unit=OSMO_TDEF_S, .desc="Time to keep an idle MS object alive (s)", .val=0 }, /* slightly above T3314 (default 44s, 24.008, 11.2.2) */ + { .T=-2031, .default_val=2000, .unit=OSMO_TDEF_MS, .desc="Time to keep an idle DL TBF alive (ms)", .val=0 }, + { .T=0, .default_val=0, .unit=OSMO_TDEF_S, .desc=NULL, .val=0 } /* empty item at the end */ +}; + struct gprs_pcu *gprs_pcu_alloc(void *ctx) { struct gprs_pcu *pcu; @@ -39,6 +51,9 @@ pcu->vty.max_mcs_ul = MAX_EDGE_MCS; pcu->vty.max_mcs_dl = MAX_EDGE_MCS; + pcu->T_defs = T_defs_pcu; + osmo_tdefs_reset(pcu->T_defs); + return pcu; } diff --git a/src/gprs_pcu.h b/src/gprs_pcu.h index bf65fa7..9696e96 100644 --- a/src/gprs_pcu.h +++ b/src/gprs_pcu.h @@ -86,6 +86,8 @@ alloc_algorithm_func_t alloc_algorithm; struct gprs_bssgp_pcu bssgp; + + struct osmo_tdef *T_defs; /* timers controlled by PCU */ }; diff --git a/src/gprs_rlcmac_sched.cpp b/src/gprs_rlcmac_sched.cpp index 924a4de..b5709c9 100644 --- a/src/gprs_rlcmac_sched.cpp +++ b/src/gprs_rlcmac_sched.cpp @@ -252,8 +252,8 @@ uint8_t ts, uint32_t fn, int age) { const gprs_rlc_dl_window *w = static_cast(tbf->window()); - unsigned long msecs_t3190 = osmo_tdef_get(bts->T_defs_pcu, 3190, OSMO_TDEF_MS, -1); - unsigned long dl_tbf_idle_msec = osmo_tdef_get(bts->T_defs_pcu, -2031, OSMO_TDEF_MS, -1); + unsigned long msecs_t3190 = osmo_tdef_get(the_pcu->T_defs, 3190, OSMO_TDEF_MS, -1); + unsigned long dl_tbf_idle_msec = osmo_tdef_get(the_pcu->T_defs, -2031, OSMO_TDEF_MS, -1); int age_thresh1 = msecs_to_frames(200); int age_thresh2 = msecs_to_frames(OSMO_MIN(msecs_t3190/2, dl_tbf_idle_msec)); diff --git a/src/pcu_vty.c b/src/pcu_vty.c index b5c70c7..a2c58eb 100644 --- a/src/pcu_vty.c +++ b/src/pcu_vty.c @@ -249,7 +249,7 @@ else vty_out(vty, " gb-dialect classic%s", VTY_NEWLINE); - osmo_tdef_vty_write(vty, bts->T_defs_pcu, " timer "); + osmo_tdef_vty_write(vty, the_pcu->T_defs, " timer "); return CMD_SUCCESS; } @@ -856,9 +856,7 @@ { vty_out(vty, "%% 'dl-tbf-idle-time' is now deprecated: use 'timer X2031 ' instead%s", VTY_NEWLINE); - struct gprs_rlcmac_bts *bts = bts_main_data(); - - if (osmo_tdef_set(bts->T_defs_pcu, -2031, atoi(argv[0]), OSMO_TDEF_MS) < 0) + if (osmo_tdef_set(the_pcu->T_defs, -2031, atoi(argv[0]), OSMO_TDEF_MS) < 0) return CMD_WARNING; return CMD_SUCCESS; } @@ -870,9 +868,7 @@ { vty_out(vty, "%% 'no dl-tbf-idle-time' is now deprecated: use 'timer X2031 0' instead%s", VTY_NEWLINE); - struct gprs_rlcmac_bts *bts = bts_main_data(); - - if (osmo_tdef_set(bts->T_defs_pcu, -2031, 0, OSMO_TDEF_MS) < 0) + if (osmo_tdef_set(the_pcu->T_defs, -2031, 0, OSMO_TDEF_MS) < 0) return CMD_WARNING; return CMD_SUCCESS; } @@ -912,10 +908,7 @@ MS_IDLE_TIME_STR "idle time in sec") { vty_out(vty, "%% 'ms-idle-time' is now deprecated: use 'timer X2030 ' instead%s", VTY_NEWLINE); - - struct gprs_rlcmac_bts *bts = bts_main_data(); - - if (osmo_tdef_set(bts->T_defs_pcu, -2030, atoi(argv[0]), OSMO_TDEF_S) < 0) + if (osmo_tdef_set(the_pcu->T_defs, -2030, atoi(argv[0]), OSMO_TDEF_S) < 0) return CMD_WARNING; return CMD_SUCCESS; } @@ -926,10 +919,7 @@ NO_STR MS_IDLE_TIME_STR) { vty_out(vty, "%% 'no ms-idle-time' is now deprecated: use 'timer X2030 0' instead%s", VTY_NEWLINE); - - struct gprs_rlcmac_bts *bts = bts_main_data(); - - if (osmo_tdef_set(bts->T_defs_pcu, -2030, 0, OSMO_TDEF_S) < 0) + if (osmo_tdef_set(the_pcu->T_defs, -2030, 0, OSMO_TDEF_S) < 0) return CMD_WARNING; return CMD_SUCCESS; } @@ -1138,9 +1128,8 @@ SHOW_STR "Show PCU timers\n" OSMO_TDEF_VTY_DOC_T) { - struct gprs_rlcmac_bts *bts = bts_main_data(); const char *T_arg = argc > 0 ? argv[0] : NULL; - return osmo_tdef_vty_show_cmd(vty, bts->T_defs_pcu, T_arg, NULL); + return osmo_tdef_vty_show_cmd(vty, the_pcu->T_defs, T_arg, NULL); } DEFUN_ATTR(cfg_pcu_timer, cfg_pcu_timer_cmd, @@ -1149,11 +1138,10 @@ OSMO_TDEF_VTY_DOC_SET, CMD_ATTR_IMMEDIATE) { - struct gprs_rlcmac_bts *bts = bts_main_data(); /* If any arguments are missing, redirect to 'show' */ if (argc < 2) return show_timer(self, vty, argc, argv); - return osmo_tdef_vty_set_cmd(vty, bts->T_defs_pcu, argv); + return osmo_tdef_vty_set_cmd(vty, the_pcu->T_defs, argv); } DEFUN(show_tbf, diff --git a/src/tbf.cpp b/src/tbf.cpp index 02f0e3f..c42081b 100644 --- a/src/tbf.cpp +++ b/src/tbf.cpp @@ -493,7 +493,7 @@ struct osmo_tdef *tdef; if (!(tdef = osmo_tdef_get_entry(bts->bts_data()->T_defs_bts, T))) - tdef = osmo_tdef_get_entry(bts->bts_data()->T_defs_pcu, T); + tdef = osmo_tdef_get_entry(bts->pcu->T_defs, T); if (t >= T_MAX || !tdef) { LOGPSRC(DTBF, LOGL_ERROR, file, line, "%s attempting to start unknown timer %s [%s], cur_fn=%d\n", diff --git a/src/tbf_dl.cpp b/src/tbf_dl.cpp index 613f7b8..280e057 100644 --- a/src/tbf_dl.cpp +++ b/src/tbf_dl.cpp @@ -1365,7 +1365,7 @@ int keep_time_frames; unsigned long dl_tbf_idle_msec; - dl_tbf_idle_msec = osmo_tdef_get(bts_data()->T_defs_pcu, -2031, OSMO_TDEF_MS, -1); + dl_tbf_idle_msec = osmo_tdef_get(the_pcu->T_defs, -2031, OSMO_TDEF_MS, -1); if (dl_tbf_idle_msec == 0) return false; diff --git a/tests/tbf/TbfTest.cpp b/tests/tbf/TbfTest.cpp index cff47e6..69f07aa 100644 --- a/tests/tbf/TbfTest.cpp +++ b/tests/tbf/TbfTest.cpp @@ -176,8 +176,8 @@ the_pcu->alloc_algorithm = alloc_algorithm_a; bts->initial_cs_dl = cs; bts->initial_cs_ul = cs; - osmo_tdef_set(bts->T_defs_pcu, -2030, 0, OSMO_TDEF_S); - osmo_tdef_set(bts->T_defs_pcu, -2031, 0, OSMO_TDEF_S); + osmo_tdef_set(the_pcu->T_defs, -2030, 0, OSMO_TDEF_S); + osmo_tdef_set(the_pcu->T_defs, -2031, 0, OSMO_TDEF_S); trx = &bts->trx[0]; trx->pdch[ts_no].enable(); @@ -340,7 +340,6 @@ { the_pcu->bts = bts_alloc(the_pcu); BTS *the_bts = the_pcu->bts; - gprs_rlcmac_bts *bts; uint8_t ts_no = 4; unsigned i; uint8_t ms_class = 45; @@ -355,10 +354,8 @@ fprintf(stderr, "=== start %s ===\n", __func__); - bts = the_bts->bts_data(); - setup_bts(the_bts, ts_no); - OSMO_ASSERT(osmo_tdef_set(bts->T_defs_pcu, -2031, 200, OSMO_TDEF_MS) == 0); + OSMO_ASSERT(osmo_tdef_set(the_pcu->T_defs, -2031, 200, OSMO_TDEF_MS) == 0); dl_tbf = create_dl_tbf(the_bts, ms_class, 0, &trx_no); dl_tbf->update_ms(tlli, GPRS_RLCMAC_DL_TBF); @@ -392,7 +389,7 @@ RCV_ACK(false, dl_tbf, rbb); /* Receive an ACK */ /* Timeout (make sure fn % 52 remains valid) */ - dl_tbf_idle_msec = osmo_tdef_get(bts->T_defs_pcu, -2031, OSMO_TDEF_MS, -1); + dl_tbf_idle_msec = osmo_tdef_get(the_pcu->T_defs, -2031, OSMO_TDEF_MS, -1); fn += 52 * ((msecs_to_frames(dl_tbf_idle_msec + 100) + 51)/ 52); request_dl_rlc_block(dl_tbf, &fn); @@ -541,7 +538,7 @@ setup_bts(the_bts, ts_no); /* keep the MS object 10 seconds */ - OSMO_ASSERT(osmo_tdef_set(bts->T_defs_pcu, -2030, 10, OSMO_TDEF_S) == 0); + OSMO_ASSERT(osmo_tdef_set(the_pcu->T_defs, -2030, 10, OSMO_TDEF_S) == 0); gprs_bssgp_init(bts, 2234, 2234, 1, 1, false, 0, 0, 0); @@ -2552,7 +2549,7 @@ bts = the_bts->bts_data(); setup_bts(the_bts, ts_no); - OSMO_ASSERT(osmo_tdef_set(bts->T_defs_pcu, -2031, 200, OSMO_TDEF_MS) == 0); + OSMO_ASSERT(osmo_tdef_set(the_pcu->T_defs, -2031, 200, OSMO_TDEF_MS) == 0); /* ARQ II */ bts->dl_arq_type = EGPRS_ARQ2; @@ -3084,7 +3081,7 @@ bts = the_bts->bts_data(); bts->cs_downgrade_threshold = 0; setup_bts(the_bts, ts_no); - OSMO_ASSERT(osmo_tdef_set(bts->T_defs_pcu, -2031, 200, OSMO_TDEF_MS) == 0); + OSMO_ASSERT(osmo_tdef_set(the_pcu->T_defs, -2031, 200, OSMO_TDEF_MS) == 0); /* ARQ II */ bts->dl_arq_type = EGPRS_ARQ2; @@ -3114,7 +3111,7 @@ bts = the_bts->bts_data(); bts->cs_downgrade_threshold = 0; setup_bts(the_bts, ts_no); - OSMO_ASSERT(osmo_tdef_set(bts->T_defs_pcu, -2031, 200, OSMO_TDEF_MS) == 0); + OSMO_ASSERT(osmo_tdef_set(the_pcu->T_defs, -2031, 200, OSMO_TDEF_MS) == 0); /* ARQ I resegmentation support */ bts->dl_arq_type = EGPRS_ARQ1; @@ -3147,7 +3144,7 @@ bts = the_bts->bts_data(); setup_bts(the_bts, ts_no); - OSMO_ASSERT(osmo_tdef_set(bts->T_defs_pcu, -2031, 200, OSMO_TDEF_MS) == 0); + OSMO_ASSERT(osmo_tdef_set(the_pcu->T_defs, -2031, 200, OSMO_TDEF_MS) == 0); /* ARQ II */ bts->dl_arq_type = EGPRS_ARQ2; -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22179 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I0cac5c12dff2e90b52d00383a00b4b94a9603a0a Gerrit-Change-Number: 22179 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 11:47:48 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 14 Jan 2021 11:47:48 +0000 Subject: Change in libosmocore[master]: bssgp_rim: move bssgp_parse_rim_ri and bssgp_create_rim_ri to gprs_bs... In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21863 ) Change subject: bssgp_rim: move bssgp_parse_rim_ri and bssgp_create_rim_ri to gprs_bssgp_rim ...................................................................... Patch Set 11: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/21863/9/src/gb/gprs_bssgp_rim.c File src/gb/gprs_bssgp_rim.c: https://gerrit.osmocom.org/c/libosmocore/+/21863/9/src/gb/gprs_bssgp_rim.c at 127 PS9, Line 127: return ri->eutran.global_enb_id_len + 6; > I think its correct. [?] Ah so in EUTRAN TAC actually replaces both LAC+RAC, right? I thought it was TAC only replacing RAC. If the former is the case, then it's fine. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21863 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Icd667f41d5735de56cd9fb257670337c679dd258 Gerrit-Change-Number: 21863 Gerrit-PatchSet: 11 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 14 Jan 2021 11:47:48 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Comment-In-Reply-To: pespin Comment-In-Reply-To: dexter Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 11:54:11 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 14 Jan 2021 11:54:11 +0000 Subject: Change in osmo-pcu[master]: Move force_two_phase field from BTS to PCU References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22180 ) Change subject: Move force_two_phase field from BTS to PCU ...................................................................... Move force_two_phase field from BTS to PCU Change-Id: I68a6e032f725cde87992b99f039c5280e912faf7 --- M src/bts.cpp M src/bts.h M src/gprs_pcu.h M src/pcu_vty.c 4 files changed, 5 insertions(+), 11 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/80/22180/1 diff --git a/src/bts.cpp b/src/bts.cpp index ac58f48..f965714 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -903,7 +903,7 @@ if (chan_req.single_block) LOGP(DRLCMAC, LOGL_DEBUG, "MS requests single block allocation\n"); - else if (m_bts.force_two_phase) { + else if (pcu->vty.force_two_phase) { LOGP(DRLCMAC, LOGL_DEBUG, "MS requests single block allocation, " "but we force two phase access\n"); chan_req.single_block = true; diff --git a/src/bts.h b/src/bts.h index b814b62..68083b9 100644 --- a/src/bts.h +++ b/src/bts.h @@ -106,7 +106,6 @@ uint8_t n3105; struct gprs_rlcmac_trx trx[8]; - uint8_t force_two_phase; uint8_t alpha, gamma; bool dl_tbf_preemptive_retransmission; uint8_t si13[GSM_MACBLOCK_LEN]; diff --git a/src/gprs_pcu.h b/src/gprs_pcu.h index 9696e96..4920966 100644 --- a/src/gprs_pcu.h +++ b/src/gprs_pcu.h @@ -74,6 +74,7 @@ bool force_initial_mcs; /* false=use from BTS true=use from VTY */ uint8_t max_cs_dl, max_cs_ul; uint8_t max_mcs_dl, max_mcs_ul; + uint8_t force_two_phase; } vty; struct gsmtap_inst *gsmtap; diff --git a/src/pcu_vty.c b/src/pcu_vty.c index a2c58eb..83fb166 100644 --- a/src/pcu_vty.c +++ b/src/pcu_vty.c @@ -227,7 +227,7 @@ vty_out(vty, " alloc-algorithm b%s", VTY_NEWLINE); if (the_pcu->alloc_algorithm == alloc_algorithm_dynamic) vty_out(vty, " alloc-algorithm dynamic%s", VTY_NEWLINE); - if (bts->force_two_phase) + if (the_pcu->vty.force_two_phase) vty_out(vty, " two-phase-access%s", VTY_NEWLINE); vty_out(vty, " alpha %d%s", bts->alpha, VTY_NEWLINE); vty_out(vty, " gamma %d%s", bts->gamma * 2, VTY_NEWLINE); @@ -782,10 +782,7 @@ "Force two phase access when MS requests single phase access\n", CMD_ATTR_IMMEDIATE) { - struct gprs_rlcmac_bts *bts = bts_main_data(); - - bts->force_two_phase = 1; - + the_pcu->vty.force_two_phase = 1; return CMD_SUCCESS; } @@ -795,10 +792,7 @@ NO_STR "Only use two phase access when requested my MS\n", CMD_ATTR_IMMEDIATE) { - struct gprs_rlcmac_bts *bts = bts_main_data(); - - bts->force_two_phase = 0; - + the_pcu->vty.force_two_phase = 0; return CMD_SUCCESS; } -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22180 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I68a6e032f725cde87992b99f039c5280e912faf7 Gerrit-Change-Number: 22180 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 11:54:12 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 14 Jan 2021 11:54:12 +0000 Subject: Change in osmo-pcu[master]: Move alpha,gamma fields from BTS to PCU References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22181 ) Change subject: Move alpha,gamma fields from BTS to PCU ...................................................................... Move alpha,gamma fields from BTS to PCU Change-Id: I2fdd9c8a7393157183fff64084bb10e2a3b1dc63 --- M src/bts.cpp M src/bts.h M src/gprs_pcu.c M src/gprs_pcu.h M src/pcu_vty.c M src/tbf.cpp M tests/emu/pcu_emu.cpp 7 files changed, 12 insertions(+), 18 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/81/22181/1 diff --git a/src/bts.cpp b/src/bts.cpp index f965714..3200b40 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -200,7 +200,6 @@ bts->n3101 = 10; bts->n3103 = 4; bts->n3105 = 8; - bts->alpha = 0; /* a = 0.0 */ bts->si13_is_set = false; bts->cs_adj_enabled = 1; bts->cs_adj_upper_limit = 33; /* Decrease CS if the error rate is above */ @@ -966,7 +965,7 @@ plen = Encoding::write_immediate_assignment( &m_bts.trx[trx_no].pdch[ts_no], tbf, bv, false, rip->ra, Fn, ta, usf, false, sb_fn, - m_bts.alpha, m_bts.gamma, -1, + pcu->vty.alpha, pcu->vty.gamma, -1, rip->burst_type); do_rate_ctr_inc(CTR_IMMEDIATE_ASSIGN_UL_TBF); } @@ -1048,7 +1047,7 @@ tbf, immediate_assignment, true, 125, (tbf->pdch[ts_no]->last_rts_fn + 21216) % GSM_MAX_FN, tbf->ta(), 7, poll, tbf->poll_fn, - m_bts.alpha, m_bts.gamma, -1, + pcu->vty.alpha, pcu->vty.gamma, -1, GSM_L1_BURST_TYPE_ACCESS_0); if (plen >= 0) { do_rate_ctr_inc(CTR_IMMEDIATE_ASSIGN_DL_TBF); diff --git a/src/bts.h b/src/bts.h index 68083b9..8368855 100644 --- a/src/bts.h +++ b/src/bts.h @@ -106,7 +106,6 @@ uint8_t n3105; struct gprs_rlcmac_trx trx[8]; - uint8_t alpha, gamma; bool dl_tbf_preemptive_retransmission; uint8_t si13[GSM_MACBLOCK_LEN]; bool si13_is_set; diff --git a/src/gprs_pcu.c b/src/gprs_pcu.c index e08094b..f791e43 100644 --- a/src/gprs_pcu.c +++ b/src/gprs_pcu.c @@ -50,6 +50,7 @@ pcu->vty.max_cs_dl = MAX_GPRS_CS; pcu->vty.max_mcs_ul = MAX_EDGE_MCS; pcu->vty.max_mcs_dl = MAX_EDGE_MCS; + pcu->vty.alpha = 0; /* a = 0.0 */ pcu->T_defs = T_defs_pcu; osmo_tdefs_reset(pcu->T_defs); diff --git a/src/gprs_pcu.h b/src/gprs_pcu.h index 4920966..d6d2dca 100644 --- a/src/gprs_pcu.h +++ b/src/gprs_pcu.h @@ -75,6 +75,7 @@ uint8_t max_cs_dl, max_cs_ul; uint8_t max_mcs_dl, max_mcs_ul; uint8_t force_two_phase; + uint8_t alpha, gamma; } vty; struct gsmtap_inst *gsmtap; diff --git a/src/pcu_vty.c b/src/pcu_vty.c index 83fb166..06e1674 100644 --- a/src/pcu_vty.c +++ b/src/pcu_vty.c @@ -229,8 +229,8 @@ vty_out(vty, " alloc-algorithm dynamic%s", VTY_NEWLINE); if (the_pcu->vty.force_two_phase) vty_out(vty, " two-phase-access%s", VTY_NEWLINE); - vty_out(vty, " alpha %d%s", bts->alpha, VTY_NEWLINE); - vty_out(vty, " gamma %d%s", bts->gamma * 2, VTY_NEWLINE); + vty_out(vty, " alpha %d%s", the_pcu->vty.alpha, VTY_NEWLINE); + vty_out(vty, " gamma %d%s", the_pcu->vty.gamma * 2, VTY_NEWLINE); if (!bts->dl_tbf_preemptive_retransmission) vty_out(vty, " no dl-tbf-preemptive-retransmission%s", VTY_NEWLINE); if (strcmp(the_pcu->pcu_sock_path, PCU_SOCK_DEFAULT)) @@ -804,10 +804,7 @@ "Alpha in units of 0.1\n", CMD_ATTR_IMMEDIATE) { - struct gprs_rlcmac_bts *bts = bts_main_data(); - - bts->alpha = atoi(argv[0]); - + the_pcu->vty.alpha = atoi(argv[0]); return CMD_SUCCESS; } @@ -818,10 +815,7 @@ "Gamma in even unit of dBs\n", CMD_ATTR_IMMEDIATE) { - struct gprs_rlcmac_bts *bts = bts_main_data(); - - bts->gamma = atoi(argv[0]) / 2; - + the_pcu->vty.gamma = atoi(argv[0]) / 2; return CMD_SUCCESS; } diff --git a/src/tbf.cpp b/src/tbf.cpp index c42081b..eb043e5 100644 --- a/src/tbf.cpp +++ b/src/tbf.cpp @@ -926,7 +926,7 @@ Encoding::write_packet_downlink_assignment(mac_control_block, old_tfi_is_valid, m_tfi, (direction == GPRS_RLCMAC_DL_TBF), new_dl_tbf, poll_ass_dl, rrbp, - bts_data()->alpha, bts_data()->gamma, -1, 0, + the_pcu->vty.alpha, the_pcu->vty.gamma, -1, 0, is_egprs_enabled()); LOGP(DTBF, LOGL_DEBUG, "+++++++++++++++++++++++++ TX : Packet Downlink Assignment +++++++++++++++++++++++++\n"); rc = encode_gsm_rlcmac_downlink(&bv, mac_control_block); @@ -1029,8 +1029,8 @@ mac_control_block = (RlcMacDownlink_t *)talloc_zero(tall_pcu_ctx, RlcMacDownlink_t); Encoding::write_packet_uplink_assignment(mac_control_block, m_tfi, (direction == GPRS_RLCMAC_DL_TBF), tlli(), - is_tlli_valid(), new_tbf, 1, rrbp, bts_data()->alpha, - bts_data()->gamma, -1, is_egprs_enabled()); + is_tlli_valid(), new_tbf, 1, rrbp, the_pcu->vty.alpha, + the_pcu->vty.gamma, -1, is_egprs_enabled()); LOGP(DTBF, LOGL_DEBUG, "+++++++++++++++++++++++++ TX : Packet Uplink Assignment +++++++++++++++++++++++++\n"); rc = encode_gsm_rlcmac_downlink(&bv, mac_control_block); diff --git a/tests/emu/pcu_emu.cpp b/tests/emu/pcu_emu.cpp index 7534b84..96aacda 100644 --- a/tests/emu/pcu_emu.cpp +++ b/tests/emu/pcu_emu.cpp @@ -72,13 +72,13 @@ bts->n3101 = 10; bts->n3103 = 4; bts->n3105 = 8; - bts->alpha = 0; /* a = 0.0 */ } static void init_pcu(struct gprs_pcu *pcu) { if (!pcu->alloc_algorithm) pcu->alloc_algorithm = alloc_algorithm_b; + pcu->vty.alpha = 0; /* a = 0.0 */ } static void bvci_unblocked(struct gprs_bssgp_pcu *pcu) -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22181 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I2fdd9c8a7393157183fff64084bb10e2a3b1dc63 Gerrit-Change-Number: 22181 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 12:08:06 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 14 Jan 2021 12:08:06 +0000 Subject: Change in osmo-pcu[master]: Move dl_tbf_preemptive_retransmission field from BTS to PCU References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22182 ) Change subject: Move dl_tbf_preemptive_retransmission field from BTS to PCU ...................................................................... Move dl_tbf_preemptive_retransmission field from BTS to PCU Change-Id: I3ab32fcafe83f3ecb116a5b8a05f58f3fddc5451 --- M src/bts.cpp M src/bts.h M src/gprs_pcu.c M src/gprs_pcu.h M src/pcu_vty.c M src/tbf_dl.cpp 6 files changed, 6 insertions(+), 12 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/82/22182/1 diff --git a/src/bts.cpp b/src/bts.cpp index 3200b40..46f0033 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -253,7 +253,6 @@ bts->app_info = NULL; bts->bts = bts_obj; - bts->dl_tbf_preemptive_retransmission = true; bts->T_defs_bts = T_defs_bts; osmo_tdefs_reset(bts->T_defs_bts); diff --git a/src/bts.h b/src/bts.h index 8368855..0b882b3 100644 --- a/src/bts.h +++ b/src/bts.h @@ -106,7 +106,6 @@ uint8_t n3105; struct gprs_rlcmac_trx trx[8]; - bool dl_tbf_preemptive_retransmission; uint8_t si13[GSM_MACBLOCK_LEN]; bool si13_is_set; /* 0 to support resegmentation in DL, 1 for no reseg */ diff --git a/src/gprs_pcu.c b/src/gprs_pcu.c index f791e43..3b44d36 100644 --- a/src/gprs_pcu.c +++ b/src/gprs_pcu.c @@ -51,6 +51,7 @@ pcu->vty.max_mcs_ul = MAX_EDGE_MCS; pcu->vty.max_mcs_dl = MAX_EDGE_MCS; pcu->vty.alpha = 0; /* a = 0.0 */ + pcu->vty.dl_tbf_preemptive_retransmission = true; pcu->T_defs = T_defs_pcu; osmo_tdefs_reset(pcu->T_defs); diff --git a/src/gprs_pcu.h b/src/gprs_pcu.h index d6d2dca..2f2fdc7 100644 --- a/src/gprs_pcu.h +++ b/src/gprs_pcu.h @@ -76,6 +76,7 @@ uint8_t max_mcs_dl, max_mcs_ul; uint8_t force_two_phase; uint8_t alpha, gamma; + bool dl_tbf_preemptive_retransmission; } vty; struct gsmtap_inst *gsmtap; diff --git a/src/pcu_vty.c b/src/pcu_vty.c index 06e1674..727712d 100644 --- a/src/pcu_vty.c +++ b/src/pcu_vty.c @@ -231,7 +231,7 @@ vty_out(vty, " two-phase-access%s", VTY_NEWLINE); vty_out(vty, " alpha %d%s", the_pcu->vty.alpha, VTY_NEWLINE); vty_out(vty, " gamma %d%s", the_pcu->vty.gamma * 2, VTY_NEWLINE); - if (!bts->dl_tbf_preemptive_retransmission) + if (!the_pcu->vty.dl_tbf_preemptive_retransmission) vty_out(vty, " no dl-tbf-preemptive-retransmission%s", VTY_NEWLINE); if (strcmp(the_pcu->pcu_sock_path, PCU_SOCK_DEFAULT)) vty_out(vty, " pcu-socket %s%s", the_pcu->pcu_sock_path, VTY_NEWLINE); @@ -869,10 +869,7 @@ RETRANSMISSION_STR " (enabled by default)", CMD_ATTR_IMMEDIATE) { - struct gprs_rlcmac_bts *bts = bts_main_data(); - - bts->dl_tbf_preemptive_retransmission = true; - + the_pcu->vty.dl_tbf_preemptive_retransmission = true; return CMD_SUCCESS; } @@ -882,10 +879,7 @@ NO_STR RETRANSMISSION_STR, CMD_ATTR_IMMEDIATE) { - struct gprs_rlcmac_bts *bts = bts_main_data(); - - bts->dl_tbf_preemptive_retransmission = false; - + the_pcu->vty.dl_tbf_preemptive_retransmission = false; return CMD_SUCCESS; } diff --git a/src/tbf_dl.cpp b/src/tbf_dl.cpp index 280e057..6f57e7d 100644 --- a/src/tbf_dl.cpp +++ b/src/tbf_dl.cpp @@ -545,7 +545,7 @@ force_cs ? " (forced)" : ""); bsn = create_new_bsn(fn, new_cs); - } else if (bts->bts_data()->dl_tbf_preemptive_retransmission && !m_window.window_empty()) { + } else if (bts->pcu->vty.dl_tbf_preemptive_retransmission && !m_window.window_empty()) { /* The window contains unacked packages, but not acked. * Mark unacked bsns as RESEND */ LOGPTBFDL(this, LOGL_DEBUG, -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22182 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I3ab32fcafe83f3ecb116a5b8a05f58f3fddc5451 Gerrit-Change-Number: 22182 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 12:08:07 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 14 Jan 2021 12:08:07 +0000 Subject: Change in osmo-pcu[master]: Move dl_tbf_preemptive_retransmission field from BTS to PCU References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22183 ) Change subject: Move dl_tbf_preemptive_retransmission field from BTS to PCU ...................................................................... Move dl_tbf_preemptive_retransmission field from BTS to PCU Change-Id: I0b82ab59edd58d60e5581c707dc49f58de0ba203 --- M src/bts.cpp M src/bts.h M src/coding_scheme.h M src/gprs_pcu.c M src/gprs_pcu.h M src/pcu_vty.c M src/tbf_dl.cpp M tests/tbf/TbfTest.cpp 8 files changed, 19 insertions(+), 29 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/83/22183/1 diff --git a/src/bts.cpp b/src/bts.cpp index 46f0033..5eefc36 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -245,12 +245,6 @@ bts->llc_codel_interval_msec = LLC_CODEL_USE_DEFAULT; bts->llc_idle_ack_csec = 10; - /* - * By default resegmentation is supported in DL - * can also be configured through VTY - */ - bts->dl_arq_type = EGPRS_ARQ1; - bts->app_info = NULL; bts->bts = bts_obj; bts->T_defs_bts = T_defs_bts; diff --git a/src/bts.h b/src/bts.h index 0b882b3..9626cdc 100644 --- a/src/bts.h +++ b/src/bts.h @@ -108,8 +108,6 @@ uint8_t si13[GSM_MACBLOCK_LEN]; bool si13_is_set; - /* 0 to support resegmentation in DL, 1 for no reseg */ - uint8_t dl_arq_type; uint8_t cs_adj_enabled; /* whether cs_adj_{upper,lower}_limit are used to adjust DL CS */ uint8_t cs_adj_upper_limit; /* downgrade DL CS if error rate above its value */ diff --git a/src/coding_scheme.h b/src/coding_scheme.h index ea1ded1..1b21265 100644 --- a/src/coding_scheme.h +++ b/src/coding_scheme.h @@ -38,8 +38,10 @@ EGPRS, }; -#define EGPRS_ARQ1 0x0 -#define EGPRS_ARQ2 0x1 +enum egprs_arq_type { + EGPRS_ARQ1 = 0, + EGPRS_ARQ2 = 1 +}; extern const struct value_string mcs_names[]; const char *mcs_name(enum CodingScheme val); diff --git a/src/gprs_pcu.c b/src/gprs_pcu.c index 3b44d36..2a84f7b 100644 --- a/src/gprs_pcu.c +++ b/src/gprs_pcu.c @@ -52,6 +52,9 @@ pcu->vty.max_mcs_dl = MAX_EDGE_MCS; pcu->vty.alpha = 0; /* a = 0.0 */ pcu->vty.dl_tbf_preemptive_retransmission = true; + /* By default resegmentation is supported in DL can also be configured + * through VTY */ + pcu->vty.dl_arq_type = EGPRS_ARQ1; pcu->T_defs = T_defs_pcu; osmo_tdefs_reset(pcu->T_defs); diff --git a/src/gprs_pcu.h b/src/gprs_pcu.h index 2f2fdc7..f07510b 100644 --- a/src/gprs_pcu.h +++ b/src/gprs_pcu.h @@ -27,6 +27,7 @@ #include #include "gprs_bssgp_pcu.h" +#include "coding_scheme.h" #define LLC_CODEL_DISABLE 0 #define LLC_CODEL_USE_DEFAULT (-1) @@ -77,6 +78,7 @@ uint8_t force_two_phase; uint8_t alpha, gamma; bool dl_tbf_preemptive_retransmission; + enum egprs_arq_type dl_arq_type; /* EGPRS_ARQ1 to support resegmentation in DL, EGPRS_ARQ2 for no reseg */ } vty; struct gsmtap_inst *gsmtap; diff --git a/src/pcu_vty.c b/src/pcu_vty.c index 727712d..ef86879 100644 --- a/src/pcu_vty.c +++ b/src/pcu_vty.c @@ -198,9 +198,8 @@ vty_out(vty, " window-size %d %d%s", bts->ws_base, bts->ws_pdch, VTY_NEWLINE); - if (bts->dl_arq_type) - vty_out(vty, " egprs dl arq-type arq2%s", - VTY_NEWLINE); + if (the_pcu->vty.dl_arq_type == EGPRS_ARQ2) + vty_out(vty, " egprs dl arq-type arq2%s", VTY_NEWLINE); if (bts->force_llc_lifetime == 0xffff) vty_out(vty, " queue lifetime infinite%s", VTY_NEWLINE); @@ -574,12 +573,10 @@ "enable ARQ2 support", CMD_ATTR_IMMEDIATE) { - struct gprs_rlcmac_bts *bts = bts_main_data(); - if (!strcmp(argv[0], "arq2")) - bts->dl_arq_type = 1; + the_pcu->vty.dl_arq_type = EGPRS_ARQ2; else - bts->dl_arq_type = 0; + the_pcu->vty.dl_arq_type = EGPRS_ARQ1; return CMD_SUCCESS; } diff --git a/src/tbf_dl.cpp b/src/tbf_dl.cpp index 6f57e7d..5ff5b16 100644 --- a/src/tbf_dl.cpp +++ b/src/tbf_dl.cpp @@ -486,7 +486,7 @@ /* Table 8.1.1.2 and Table 8.1.1.1 of 44.060 */ m_rlc.block(bsn)->cs_current_trans = get_retx_mcs(m_rlc.block(bsn)->cs_init, ms_current_cs_dl(ms()), - !bts->bts_data()->dl_arq_type); + bts->pcu->vty.dl_arq_type == EGPRS_ARQ1); LOGPTBFDL(this, LOGL_DEBUG, "initial_cs_dl(%s) last_mcs(%s) demanded_mcs(%s) cs_trans(%s) arq_type(%d) bsn(%d)\n", @@ -494,7 +494,7 @@ mcs_name(m_rlc.block(bsn)->cs_last), mcs_name(ms_current_cs_dl(ms())), mcs_name(m_rlc.block(bsn)->cs_current_trans), - bts->bts_data()->dl_arq_type, bsn); + the_pcu->vty.dl_arq_type, bsn); /* TODO: Need to remove this check when MCS-8 -> MCS-6 * transistion is handled. diff --git a/tests/tbf/TbfTest.cpp b/tests/tbf/TbfTest.cpp index 69f07aa..52403e1 100644 --- a/tests/tbf/TbfTest.cpp +++ b/tests/tbf/TbfTest.cpp @@ -2525,7 +2525,6 @@ { the_pcu->bts = bts_alloc(the_pcu); BTS *the_bts = the_pcu->bts; - gprs_rlcmac_bts *bts; uint8_t ms_class = 11; uint8_t egprs_ms_class = 11; uint8_t trx_no; @@ -2546,12 +2545,10 @@ fprintf(stderr, "=== start %s ===\n", __func__); - bts = the_bts->bts_data(); - setup_bts(the_bts, ts_no); OSMO_ASSERT(osmo_tdef_set(the_pcu->T_defs, -2031, 200, OSMO_TDEF_MS) == 0); /* ARQ II */ - bts->dl_arq_type = EGPRS_ARQ2; + the_pcu->vty.dl_arq_type = EGPRS_ARQ2; /* * Simulate a message captured during over-the-air testing, @@ -3083,7 +3080,7 @@ setup_bts(the_bts, ts_no); OSMO_ASSERT(osmo_tdef_set(the_pcu->T_defs, -2031, 200, OSMO_TDEF_MS) == 0); /* ARQ II */ - bts->dl_arq_type = EGPRS_ARQ2; + the_pcu->vty.dl_arq_type = EGPRS_ARQ2; /* First parameter is current MCS, second one is demanded_mcs */ @@ -3114,7 +3111,7 @@ OSMO_ASSERT(osmo_tdef_set(the_pcu->T_defs, -2031, 200, OSMO_TDEF_MS) == 0); /* ARQ I resegmentation support */ - bts->dl_arq_type = EGPRS_ARQ1; + the_pcu->vty.dl_arq_type = EGPRS_ARQ1; /* * First parameter is current MCS, second one is demanded_mcs @@ -3135,18 +3132,15 @@ { the_pcu->bts = bts_alloc(the_pcu); BTS *the_bts = the_pcu->bts; - gprs_rlcmac_bts *bts; uint8_t ts_no = 4; int i; fprintf(stderr, "=== start %s ===\n", __func__); - bts = the_bts->bts_data(); - setup_bts(the_bts, ts_no); OSMO_ASSERT(osmo_tdef_set(the_pcu->T_defs, -2031, 200, OSMO_TDEF_MS) == 0); /* ARQ II */ - bts->dl_arq_type = EGPRS_ARQ2; + the_pcu->vty.dl_arq_type = EGPRS_ARQ2; for (i = 1; i <= 9; i++) establish_and_use_egprs_dl_tbf(the_bts, i); -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22183 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I0b82ab59edd58d60e5581c707dc49f58de0ba203 Gerrit-Change-Number: 22183 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 12:08:37 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 14 Jan 2021 12:08:37 +0000 Subject: Change in osmo-pcu[master]: Move dl_arq_type field from BTS to PCU In-Reply-To: References: Message-ID: pespin has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/osmo-pcu/+/22183 ) Change subject: Move dl_arq_type field from BTS to PCU ...................................................................... Move dl_arq_type field from BTS to PCU Change-Id: I0b82ab59edd58d60e5581c707dc49f58de0ba203 --- M src/bts.cpp M src/bts.h M src/coding_scheme.h M src/gprs_pcu.c M src/gprs_pcu.h M src/pcu_vty.c M src/tbf_dl.cpp M tests/tbf/TbfTest.cpp 8 files changed, 19 insertions(+), 29 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/83/22183/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22183 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I0b82ab59edd58d60e5581c707dc49f58de0ba203 Gerrit-Change-Number: 22183 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-CC: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 12:24:25 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 14 Jan 2021 12:24:25 +0000 Subject: Change in osmo-pcu[master]: Move cs_adj* fields from BTS to PCU References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22184 ) Change subject: Move cs_adj* fields from BTS to PCU ...................................................................... Move cs_adj* fields from BTS to PCU Change-Id: I2b00a83279dccd4feeeeb95e34878c4405e7972c --- M src/bts.cpp M src/bts.h M src/gprs_bssgp_pcu.cpp M src/gprs_ms.c M src/gprs_pcu.c M src/gprs_pcu.h M src/pcu_vty.c M src/tbf_dl.cpp M tests/ms/MsTest.cpp 9 files changed, 22 insertions(+), 29 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/84/22184/1 diff --git a/src/bts.cpp b/src/bts.cpp index 5eefc36..3795ca2 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -201,9 +201,6 @@ bts->n3103 = 4; bts->n3105 = 8; bts->si13_is_set = false; - bts->cs_adj_enabled = 1; - bts->cs_adj_upper_limit = 33; /* Decrease CS if the error rate is above */ - bts->cs_adj_lower_limit = 10; /* Increase CS if the error rate is below */ /* CS-1 to CS-4 */ bts->cs_lqual_ranges[0].low = -256; bts->cs_lqual_ranges[0].high = 6; diff --git a/src/bts.h b/src/bts.h index 9626cdc..1f4da4e 100644 --- a/src/bts.h +++ b/src/bts.h @@ -109,9 +109,6 @@ uint8_t si13[GSM_MACBLOCK_LEN]; bool si13_is_set; - uint8_t cs_adj_enabled; /* whether cs_adj_{upper,lower}_limit are used to adjust DL CS */ - uint8_t cs_adj_upper_limit; /* downgrade DL CS if error rate above its value */ - uint8_t cs_adj_lower_limit; /* upgrade DL CS if error rate below its value */ /* downgrade DL CS when less than specified octets are left in tx queue. Optimization, see paper: "Theoretical Analysis of GPRS Throughput and Delay" */ uint16_t cs_downgrade_threshold; diff --git a/src/gprs_bssgp_pcu.cpp b/src/gprs_bssgp_pcu.cpp index cfaee73..0db6a51 100644 --- a/src/gprs_bssgp_pcu.cpp +++ b/src/gprs_bssgp_pcu.cpp @@ -755,7 +755,7 @@ } if (mcs_any) { - if (!bts->cs_adj_enabled) { + if (!the_pcu->vty.cs_adj_enabled) { if (bts->initial_mcs_dl) { num = bts->initial_mcs_dl; } else { @@ -771,7 +771,7 @@ return mcs_get_egprs_by_num(num); } - if (!bts->cs_adj_enabled) { + if (!the_pcu->vty.cs_adj_enabled) { if (bts->initial_cs_dl) { num = bts->initial_cs_dl; } else { diff --git a/src/gprs_ms.c b/src/gprs_ms.c index 6fbb06a..cc64c86 100644 --- a/src/gprs_ms.c +++ b/src/gprs_ms.c @@ -571,12 +571,9 @@ void ms_update_error_rate(struct GprsMs *ms, struct gprs_rlcmac_tbf *tbf, int error_rate) { - struct gprs_rlcmac_bts *bts_; int64_t now; enum CodingScheme max_cs_dl = ms_max_cs_dl(ms); - OSMO_ASSERT(max_cs_dl); - bts_ = bts_data(ms->bts); if (error_rate < 0) return; @@ -588,7 +585,7 @@ ms->nack_rate_dl = error_rate; - if (error_rate > bts_->cs_adj_upper_limit) { + if (error_rate > the_pcu->vty.cs_adj_upper_limit) { if (mcs_chan_code(ms->current_cs_dl) > 0) { mcs_dec_kind(&ms->current_cs_dl, ms_mode(ms)); LOGP(DRLCMACDL, LOGL_INFO, @@ -597,7 +594,7 @@ ms_imsi(ms), error_rate, mcs_name(ms->current_cs_dl)); ms->last_cs_not_low = now; } - } else if (error_rate < bts_->cs_adj_lower_limit) { + } else if (error_rate < the_pcu->vty.cs_adj_lower_limit) { if (ms->current_cs_dl < max_cs_dl) { if (now - ms->last_cs_not_low > 1000) { mcs_inc_kind(&ms->current_cs_dl, ms_mode(ms)); @@ -801,7 +798,7 @@ return cs; /* RF conditions are good, don't reduce */ - if (ms->nack_rate_dl < bts_data(ms->bts)->cs_adj_lower_limit) + if (ms->nack_rate_dl < the_pcu->vty.cs_adj_lower_limit) return cs; /* The throughput would probably be better if the CS level was reduced */ diff --git a/src/gprs_pcu.c b/src/gprs_pcu.c index 2a84f7b..d7a851b 100644 --- a/src/gprs_pcu.c +++ b/src/gprs_pcu.c @@ -55,6 +55,9 @@ /* By default resegmentation is supported in DL can also be configured * through VTY */ pcu->vty.dl_arq_type = EGPRS_ARQ1; + pcu->vty.cs_adj_enabled = true; + pcu->vty.cs_adj_upper_limit = 33; /* Decrease CS if the error rate is above */ + pcu->vty.cs_adj_lower_limit = 10; /* Increase CS if the error rate is below */ pcu->T_defs = T_defs_pcu; osmo_tdefs_reset(pcu->T_defs); diff --git a/src/gprs_pcu.h b/src/gprs_pcu.h index f07510b..6c9eae1 100644 --- a/src/gprs_pcu.h +++ b/src/gprs_pcu.h @@ -79,6 +79,9 @@ uint8_t alpha, gamma; bool dl_tbf_preemptive_retransmission; enum egprs_arq_type dl_arq_type; /* EGPRS_ARQ1 to support resegmentation in DL, EGPRS_ARQ2 for no reseg */ + bool cs_adj_enabled; /* whether cs_adj_{upper,lower}_limit are used to adjust DL CS */ + uint8_t cs_adj_upper_limit; /* downgrade DL CS if error rate above its value */ + uint8_t cs_adj_lower_limit; /* upgrade DL CS if error rate below its value */ } vty; struct gsmtap_inst *gsmtap; diff --git a/src/pcu_vty.c b/src/pcu_vty.c index ef86879..c830400 100644 --- a/src/pcu_vty.c +++ b/src/pcu_vty.c @@ -136,9 +136,9 @@ vty_out(vty, " cs max %d %d%s", the_pcu->vty.max_cs_dl, the_pcu->vty.max_cs_ul, VTY_NEWLINE); } - if (bts->cs_adj_enabled) + if (the_pcu->vty.cs_adj_enabled) vty_out(vty, " cs threshold %d %d%s", - bts->cs_adj_lower_limit, bts->cs_adj_upper_limit, + the_pcu->vty.cs_adj_lower_limit, the_pcu->vty.cs_adj_upper_limit, VTY_NEWLINE); else vty_out(vty, " no cs threshold%s", VTY_NEWLINE); @@ -910,8 +910,6 @@ CS_STR CS_ERR_LIMITS_STR "lower limit in %\n" "upper limit in %\n", CMD_ATTR_IMMEDIATE) { - struct gprs_rlcmac_bts *bts = bts_main_data(); - uint8_t lower_limit = atoi(argv[0]); uint8_t upper_limit = atoi(argv[1]); @@ -922,9 +920,9 @@ return CMD_WARNING; } - bts->cs_adj_enabled = 1; - bts->cs_adj_upper_limit = upper_limit; - bts->cs_adj_lower_limit = lower_limit; + the_pcu->vty.cs_adj_enabled = true; + the_pcu->vty.cs_adj_upper_limit = upper_limit; + the_pcu->vty.cs_adj_lower_limit = lower_limit; return CMD_SUCCESS; } @@ -935,11 +933,9 @@ NO_STR CS_STR CS_ERR_LIMITS_STR, CMD_ATTR_IMMEDIATE) { - struct gprs_rlcmac_bts *bts = bts_main_data(); - - bts->cs_adj_enabled = 0; - bts->cs_adj_upper_limit = 100; - bts->cs_adj_lower_limit = 0; + the_pcu->vty.cs_adj_enabled = false; + the_pcu->vty.cs_adj_upper_limit = 100; + the_pcu->vty.cs_adj_lower_limit = 0; return CMD_SUCCESS; } diff --git a/src/tbf_dl.cpp b/src/tbf_dl.cpp index 5ff5b16..2a48648 100644 --- a/src/tbf_dl.cpp +++ b/src/tbf_dl.cpp @@ -1132,7 +1132,7 @@ error_rate = analyse_errors(show_rbb, behind_last_bsn, &ana_res); - if (bts_data()->cs_adj_enabled && ms()) + if (the_pcu->vty.cs_adj_enabled && ms()) ms_update_error_rate(ms(), this, error_rate); m_window.update(bts, rbb, first_bsn, &lost, &received); @@ -1187,7 +1187,7 @@ error_rate = analyse_errors(show_rbb, ssn, &ana_res); - if (bts_data()->cs_adj_enabled && ms()) + if (the_pcu->vty.cs_adj_enabled && ms()) ms_update_error_rate(ms(), this, error_rate); m_window.update(bts, show_rbb, ssn, diff --git a/tests/ms/MsTest.cpp b/tests/ms/MsTest.cpp index 1e810f2..b914f01 100644 --- a/tests/ms/MsTest.cpp +++ b/tests/ms/MsTest.cpp @@ -511,7 +511,7 @@ bts->initial_cs_dl = 4; bts->initial_cs_ul = 1; bts->cs_downgrade_threshold = 0; - bts->cs_adj_lower_limit = 0; + the_pcu->vty.cs_adj_lower_limit = 0; ms = ms_alloc(&the_bts, tlli); -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22184 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I2b00a83279dccd4feeeeb95e34878c4405e7972c Gerrit-Change-Number: 22184 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 12:24:25 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 14 Jan 2021 12:24:25 +0000 Subject: Change in osmo-pcu[master]: Move cs_downgrade_threshold field from BTS to PCU References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22185 ) Change subject: Move cs_downgrade_threshold field from BTS to PCU ...................................................................... Move cs_downgrade_threshold field from BTS to PCU Change-Id: I3e1c65eb3cccff565d5d84588bdce93a47909a0f --- M src/bts.cpp M src/bts.h M src/gprs_ms.c M src/gprs_pcu.c M src/gprs_pcu.h M src/pcu_vty.c M tests/ms/MsTest.cpp M tests/tbf/TbfTest.cpp 8 files changed, 14 insertions(+), 25 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/85/22185/1 diff --git a/src/bts.cpp b/src/bts.cpp index 3795ca2..32ec71e 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -232,7 +232,6 @@ bts->mcs_lqual_ranges[7].high = 24; bts->mcs_lqual_ranges[8].low = 23; bts->mcs_lqual_ranges[8].high = 256; - bts->cs_downgrade_threshold = 200; bts->ns_dialect = NS2_DIALECT_IPACCESS; /* TODO: increase them when CRBB decoding is implemented */ diff --git a/src/bts.h b/src/bts.h index 1f4da4e..16be7da 100644 --- a/src/bts.h +++ b/src/bts.h @@ -108,10 +108,6 @@ uint8_t si13[GSM_MACBLOCK_LEN]; bool si13_is_set; - - /* downgrade DL CS when less than specified octets are left in tx queue. Optimization, see paper: - "Theoretical Analysis of GPRS Throughput and Delay" */ - uint16_t cs_downgrade_threshold; /* Link quality range for each UL (M)CS. Below or above, next/prev (M)CS is selected. */ struct {int16_t low; int16_t high; } cs_lqual_ranges[MAX_GPRS_CS]; struct {int16_t low; int16_t high; } mcs_lqual_ranges[MAX_EDGE_MCS]; diff --git a/src/gprs_ms.c b/src/gprs_ms.c index cc64c86..c0fb55e 100644 --- a/src/gprs_ms.c +++ b/src/gprs_ms.c @@ -794,7 +794,7 @@ unencoded_octets += llc_chunk_size(tbf_llc((struct gprs_rlcmac_tbf *)ms->dl_tbf)); /* There are many unencoded octets, don't reduce */ - if (unencoded_octets >= bts_data(ms->bts)->cs_downgrade_threshold) + if (unencoded_octets >= the_pcu->vty.cs_downgrade_threshold) return cs; /* RF conditions are good, don't reduce */ diff --git a/src/gprs_pcu.c b/src/gprs_pcu.c index d7a851b..ba48c38 100644 --- a/src/gprs_pcu.c +++ b/src/gprs_pcu.c @@ -58,6 +58,7 @@ pcu->vty.cs_adj_enabled = true; pcu->vty.cs_adj_upper_limit = 33; /* Decrease CS if the error rate is above */ pcu->vty.cs_adj_lower_limit = 10; /* Increase CS if the error rate is below */ + pcu->vty.cs_downgrade_threshold = 200; pcu->T_defs = T_defs_pcu; osmo_tdefs_reset(pcu->T_defs); diff --git a/src/gprs_pcu.h b/src/gprs_pcu.h index 6c9eae1..146b8b8 100644 --- a/src/gprs_pcu.h +++ b/src/gprs_pcu.h @@ -82,6 +82,9 @@ bool cs_adj_enabled; /* whether cs_adj_{upper,lower}_limit are used to adjust DL CS */ uint8_t cs_adj_upper_limit; /* downgrade DL CS if error rate above its value */ uint8_t cs_adj_lower_limit; /* upgrade DL CS if error rate below its value */ + /* downgrade DL CS when less than specified octets are left in tx queue. Optimization, see paper: + "Theoretical Analysis of GPRS Throughput and Delay" */ + uint16_t cs_downgrade_threshold; } vty; struct gsmtap_inst *gsmtap; diff --git a/src/pcu_vty.c b/src/pcu_vty.c index c830400..e0edf91 100644 --- a/src/pcu_vty.c +++ b/src/pcu_vty.c @@ -143,9 +143,9 @@ else vty_out(vty, " no cs threshold%s", VTY_NEWLINE); - if (bts->cs_downgrade_threshold) + if (the_pcu->vty.cs_downgrade_threshold) vty_out(vty, " cs downgrade-threshold %d%s", - bts->cs_downgrade_threshold, VTY_NEWLINE); + the_pcu->vty.cs_downgrade_threshold, VTY_NEWLINE); else vty_out(vty, " no cs downgrade-threshold%s", VTY_NEWLINE); @@ -947,10 +947,7 @@ CS_STR CS_DOWNGRADE_STR "downgrade if less octets left\n", CMD_ATTR_IMMEDIATE) { - struct gprs_rlcmac_bts *bts = bts_main_data(); - - bts->cs_downgrade_threshold = atoi(argv[0]); - + the_pcu->vty.cs_downgrade_threshold = atoi(argv[0]); return CMD_SUCCESS; } @@ -960,10 +957,7 @@ NO_STR CS_STR CS_DOWNGRADE_STR, CMD_ATTR_IMMEDIATE) { - struct gprs_rlcmac_bts *bts = bts_main_data(); - - bts->cs_downgrade_threshold = 0; - + the_pcu->vty.cs_downgrade_threshold = 0; return CMD_SUCCESS; } diff --git a/tests/ms/MsTest.cpp b/tests/ms/MsTest.cpp index b914f01..d6c8f18 100644 --- a/tests/ms/MsTest.cpp +++ b/tests/ms/MsTest.cpp @@ -510,7 +510,7 @@ bts->initial_cs_dl = 4; bts->initial_cs_ul = 1; - bts->cs_downgrade_threshold = 0; + the_pcu->vty.cs_downgrade_threshold = 0; the_pcu->vty.cs_adj_lower_limit = 0; ms = ms_alloc(&the_bts, tlli); @@ -525,7 +525,7 @@ OSMO_ASSERT(mcs_chan_code(ms_current_cs_dl(ms)) == 3); - bts->cs_downgrade_threshold = 200; + the_pcu->vty.cs_downgrade_threshold = 200; OSMO_ASSERT(mcs_chan_code(ms_current_cs_dl(ms)) == 2); @@ -559,7 +559,7 @@ bts->initial_cs_dl = 4; bts->initial_cs_ul = 1; - bts->cs_downgrade_threshold = 0; + the_pcu->vty.cs_downgrade_threshold = 0; ms2 = ms_alloc(&the_bts, tlli + 1); dump_ms(ms2, "2: with BTS defaults"); diff --git a/tests/tbf/TbfTest.cpp b/tests/tbf/TbfTest.cpp index 52403e1..75b51bf 100644 --- a/tests/tbf/TbfTest.cpp +++ b/tests/tbf/TbfTest.cpp @@ -3070,13 +3070,11 @@ { the_pcu->bts = bts_alloc(the_pcu); BTS *the_bts = the_pcu->bts; - gprs_rlcmac_bts *bts; uint8_t ts_no = 4; fprintf(stderr, "=== start %s ===\n", __func__); - bts = the_bts->bts_data(); - bts->cs_downgrade_threshold = 0; + the_pcu->vty.cs_downgrade_threshold = 0; setup_bts(the_bts, ts_no); OSMO_ASSERT(osmo_tdef_set(the_pcu->T_defs, -2031, 200, OSMO_TDEF_MS) == 0); /* ARQ II */ @@ -3100,13 +3098,11 @@ { the_pcu->bts = bts_alloc(the_pcu); BTS *the_bts = the_pcu->bts; - gprs_rlcmac_bts *bts; uint8_t ts_no = 4; fprintf(stderr, "=== start %s ===\n", __func__); - bts = the_bts->bts_data(); - bts->cs_downgrade_threshold = 0; + the_pcu->vty.cs_downgrade_threshold = 0; setup_bts(the_bts, ts_no); OSMO_ASSERT(osmo_tdef_set(the_pcu->T_defs, -2031, 200, OSMO_TDEF_MS) == 0); -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22185 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I3e1c65eb3cccff565d5d84588bdce93a47909a0f Gerrit-Change-Number: 22185 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 12:29:26 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 14 Jan 2021 12:29:26 +0000 Subject: Change in osmo-bsc[master]: vty: use 'const' for *nsvc in config_write_bts_gprs() In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22163 ) Change subject: vty: use 'const' for *nsvc in config_write_bts_gprs() ...................................................................... vty: use 'const' for *nsvc in config_write_bts_gprs() Change-Id: I869944cc692c7954b2862ecff32c6034d20babef --- M src/osmo-bsc/bsc_vty.c 1 file changed, 1 insertion(+), 2 deletions(-) Approvals: osmith: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c index 400e1a6..91acb03 100644 --- a/src/osmo-bsc/bsc_vty.c +++ b/src/osmo-bsc/bsc_vty.c @@ -771,8 +771,7 @@ get_value_string(gprs_ns_timer_strs, i), bts_sm->gprs.nse.timer[i], VTY_NEWLINE); for (i = 0; i < ARRAY_SIZE(bts_sm->gprs.nsvc); i++) { - struct gsm_gprs_nsvc *nsvc = - &bts_sm->gprs.nsvc[i]; + const struct gsm_gprs_nsvc *nsvc = &bts_sm->gprs.nsvc[i]; struct osmo_sockaddr_str remote = {}; uint16_t port; -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22163 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I869944cc692c7954b2862ecff32c6034d20babef Gerrit-Change-Number: 22163 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 12:29:27 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 14 Jan 2021 12:29:27 +0000 Subject: Change in osmo-bsc[master]: vty: fix writing empty IP address for unconfigured NSVCs In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22164 ) Change subject: vty: fix writing empty IP address for unconfigured NSVCs ...................................................................... vty: fix writing empty IP address for unconfigured NSVCs config_write_bts_gprs() currently writes the remote address of an NSVC even if osmo_sockaddr_str_from_sockaddr() returns non-zero code. Thus saving a configuration with only one configured NSVC to a file would produce the following: bts N ... gprs nsvc 0 nsvci 101 gprs nsvc 0 local udp port 23023 gprs nsvc 0 remote ip 127.0.0.1 gprs nsvc 0 remote udp port 23000 gprs nsvc 1 nsvci 0 gprs nsvc 1 local udp port 0 gprs nsvc 1 remote ip and next time osmo-bsc would refuse to start due to: Error occurred during reading the below line: gprs nsvc 1 remote ip The related condition consists of the following two parts: - checking if osmo_sockaddr_str_from_sockaddr() != 0; - checking if 'remote.af != AF_UNSPEC'. The first one is wrong, because osmo_sockaddr_str_from_sockaddr(), like many other functions, returns 0 on success. Let's fix this. After the fix, the second part does not seem to make sense, because remote.af would remain AF_UNSPEC (0) if the function call succeeds. Printing the remote port alone does not make sense, let's avoid printing it if the address cannot be parsed into a string. Change-Id: I5d6cbde4f605c8184db4ade87de5644a849c05db Fixes: I621360cab1e12c22248e33d62a9929995053ce04 --- M src/osmo-bsc/bsc_vty.c 1 file changed, 9 insertions(+), 13 deletions(-) Approvals: pespin: Looks good to me, approved osmith: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c index 91acb03..753acf7 100644 --- a/src/osmo-bsc/bsc_vty.c +++ b/src/osmo-bsc/bsc_vty.c @@ -772,8 +772,7 @@ bts_sm->gprs.nse.timer[i], VTY_NEWLINE); for (i = 0; i < ARRAY_SIZE(bts_sm->gprs.nsvc); i++) { const struct gsm_gprs_nsvc *nsvc = &bts_sm->gprs.nsvc[i]; - struct osmo_sockaddr_str remote = {}; - uint16_t port; + struct osmo_sockaddr_str remote; vty_out(vty, " gprs nsvc %u nsvci %u%s", i, nsvc->nsvci, VTY_NEWLINE); @@ -781,18 +780,15 @@ vty_out(vty, " gprs nsvc %u local udp port %u%s", i, nsvc->local_port, VTY_NEWLINE); - if (osmo_sockaddr_str_from_sockaddr(&remote, &nsvc->remote.u.sas) || - remote.af != AF_UNSPEC) { - vty_out(vty, " gprs nsvc %u remote ip %s%s", i, - remote.ip, VTY_NEWLINE); - } + /* Most likely, the remote address is not configured (AF_UNSPEC). + * Printing the port alone makes no sense, so let's just skip both. */ + if (osmo_sockaddr_str_from_sockaddr(&remote, &nsvc->remote.u.sas) != 0) + continue; - /* Can't use remote.port because it's only valid when family != AF_UNSPEC, but the - * port can be even configured when the IP isn't */ - port = osmo_htons(nsvc->remote.u.sin.sin_port); - if (port) - vty_out(vty, " gprs nsvc %u remote udp port %u%s", i, - port, VTY_NEWLINE); + vty_out(vty, " gprs nsvc %u remote ip %s%s", + i, remote.ip, VTY_NEWLINE); + vty_out(vty, " gprs nsvc %u remote udp port %u%s", + i, remote.port, VTY_NEWLINE); } /* EGPRS specific parameters */ -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22164 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I5d6cbde4f605c8184db4ade87de5644a849c05db Gerrit-Change-Number: 22164 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 12:30:17 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 14 Jan 2021 12:30:17 +0000 Subject: Change in osmo-pcu[master]: Move (m)cs_lqual_ranges fields from BTS to PCU References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22186 ) Change subject: Move (m)cs_lqual_ranges fields from BTS to PCU ...................................................................... Move (m)cs_lqual_ranges fields from BTS to PCU Change-Id: I39e2fc7e229851610d797c594d84902af6079411 --- M src/bts.cpp M src/bts.h M src/gprs_ms.c M src/gprs_pcu.c M src/gprs_pcu.h M src/pcu_vty.c 6 files changed, 81 insertions(+), 89 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/86/22186/1 diff --git a/src/bts.cpp b/src/bts.cpp index 32ec71e..c2b8696 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -201,37 +201,6 @@ bts->n3103 = 4; bts->n3105 = 8; bts->si13_is_set = false; - /* CS-1 to CS-4 */ - bts->cs_lqual_ranges[0].low = -256; - bts->cs_lqual_ranges[0].high = 6; - bts->cs_lqual_ranges[1].low = 5; - bts->cs_lqual_ranges[1].high = 8; - bts->cs_lqual_ranges[2].low = 7; - bts->cs_lqual_ranges[2].high = 13; - bts->cs_lqual_ranges[3].low = 12; - bts->cs_lqual_ranges[3].high = 256; - - /* MCS-1 to MCS-9 */ - /* Default thresholds are referenced from literature */ - /* Fig. 2.3, Chapter 2, Optimizing Wireless Communication Systems, Springer (2009) */ - bts->mcs_lqual_ranges[0].low = -256; - bts->mcs_lqual_ranges[0].high = 6; - bts->mcs_lqual_ranges[1].low = 5; - bts->mcs_lqual_ranges[1].high = 8; - bts->mcs_lqual_ranges[2].low = 7; - bts->mcs_lqual_ranges[2].high = 13; - bts->mcs_lqual_ranges[3].low = 12; - bts->mcs_lqual_ranges[3].high = 15; - bts->mcs_lqual_ranges[4].low = 14; - bts->mcs_lqual_ranges[4].high = 17; - bts->mcs_lqual_ranges[5].low = 16; - bts->mcs_lqual_ranges[5].high = 18; - bts->mcs_lqual_ranges[6].low = 17; - bts->mcs_lqual_ranges[6].high = 20; - bts->mcs_lqual_ranges[7].low = 19; - bts->mcs_lqual_ranges[7].high = 24; - bts->mcs_lqual_ranges[8].low = 23; - bts->mcs_lqual_ranges[8].high = 256; bts->ns_dialect = NS2_DIALECT_IPACCESS; /* TODO: increase them when CRBB decoding is implemented */ diff --git a/src/bts.h b/src/bts.h index 16be7da..e874767 100644 --- a/src/bts.h +++ b/src/bts.h @@ -108,9 +108,6 @@ uint8_t si13[GSM_MACBLOCK_LEN]; bool si13_is_set; - /* Link quality range for each UL (M)CS. Below or above, next/prev (M)CS is selected. */ - struct {int16_t low; int16_t high; } cs_lqual_ranges[MAX_GPRS_CS]; - struct {int16_t low; int16_t high; } mcs_lqual_ranges[MAX_EDGE_MCS]; uint16_t ws_base; uint16_t ws_pdch; /* increase WS by this value per PDCH */ diff --git a/src/gprs_ms.c b/src/gprs_ms.c index c0fb55e..291f0e8 100644 --- a/src/gprs_ms.c +++ b/src/gprs_ms.c @@ -673,7 +673,6 @@ void ms_update_cs_ul(struct GprsMs *ms, const struct pcu_l1_meas *meas) { - struct gprs_rlcmac_bts *bts_; enum CodingScheme max_cs_ul = ms_max_cs_ul(ms); int old_link_qual; @@ -682,8 +681,6 @@ enum CodingScheme new_cs_ul = ms->current_cs_ul; uint8_t current_cs = mcs_chan_code(ms->current_cs_ul); - bts_ = bts_data(ms->bts); - if (!max_cs_ul) { LOGP(DRLCMACMEAS, LOGL_ERROR, "max_cs_ul cannot be derived (current UL CS: %s)\n", @@ -708,13 +705,13 @@ if (mcs_is_gprs(ms->current_cs_ul)) { if (current_cs >= MAX_GPRS_CS) current_cs = MAX_GPRS_CS - 1; - low = bts_->cs_lqual_ranges[current_cs].low; - high = bts_->cs_lqual_ranges[current_cs].high; + low = the_pcu->vty.cs_lqual_ranges[current_cs].low; + high = the_pcu->vty.cs_lqual_ranges[current_cs].high; } else if (mcs_is_edge(ms->current_cs_ul)) { if (current_cs >= MAX_EDGE_MCS) current_cs = MAX_EDGE_MCS - 1; - low = bts_->mcs_lqual_ranges[current_cs].low; - high = bts_->mcs_lqual_ranges[current_cs].high; + low = the_pcu->vty.mcs_lqual_ranges[current_cs].low; + high = the_pcu->vty.mcs_lqual_ranges[current_cs].high; } else { LOGP(DRLCMACMEAS, LOGL_ERROR, "Unable to update UL (M)CS because it's neither GPRS nor EDGE: %s\n", diff --git a/src/gprs_pcu.c b/src/gprs_pcu.c index ba48c38..cfe8896 100644 --- a/src/gprs_pcu.c +++ b/src/gprs_pcu.c @@ -59,6 +59,36 @@ pcu->vty.cs_adj_upper_limit = 33; /* Decrease CS if the error rate is above */ pcu->vty.cs_adj_lower_limit = 10; /* Increase CS if the error rate is below */ pcu->vty.cs_downgrade_threshold = 200; + /* CS-1 to CS-4 */ + pcu->vty.cs_lqual_ranges[0].low = -256; + pcu->vty.cs_lqual_ranges[0].high = 6; + pcu->vty.cs_lqual_ranges[1].low = 5; + pcu->vty.cs_lqual_ranges[1].high = 8; + pcu->vty.cs_lqual_ranges[2].low = 7; + pcu->vty.cs_lqual_ranges[2].high = 13; + pcu->vty.cs_lqual_ranges[3].low = 12; + pcu->vty.cs_lqual_ranges[3].high = 256; + /* MCS-1 to MCS-9 */ + /* Default thresholds are referenced from literature */ + /* Fig. 2.3, Chapter 2, Optimizing Wireless Communication Systems, Springer (2009) */ + pcu->vty.mcs_lqual_ranges[0].low = -256; + pcu->vty.mcs_lqual_ranges[0].high = 6; + pcu->vty.mcs_lqual_ranges[1].low = 5; + pcu->vty.mcs_lqual_ranges[1].high = 8; + pcu->vty.mcs_lqual_ranges[2].low = 7; + pcu->vty.mcs_lqual_ranges[2].high = 13; + pcu->vty.mcs_lqual_ranges[3].low = 12; + pcu->vty.mcs_lqual_ranges[3].high = 15; + pcu->vty.mcs_lqual_ranges[4].low = 14; + pcu->vty.mcs_lqual_ranges[4].high = 17; + pcu->vty.mcs_lqual_ranges[5].low = 16; + pcu->vty.mcs_lqual_ranges[5].high = 18; + pcu->vty.mcs_lqual_ranges[6].low = 17; + pcu->vty.mcs_lqual_ranges[6].high = 20; + pcu->vty.mcs_lqual_ranges[7].low = 19; + pcu->vty.mcs_lqual_ranges[7].high = 24; + pcu->vty.mcs_lqual_ranges[8].low = 23; + pcu->vty.mcs_lqual_ranges[8].high = 256; pcu->T_defs = T_defs_pcu; osmo_tdefs_reset(pcu->T_defs); diff --git a/src/gprs_pcu.h b/src/gprs_pcu.h index 146b8b8..916169e 100644 --- a/src/gprs_pcu.h +++ b/src/gprs_pcu.h @@ -85,6 +85,9 @@ /* downgrade DL CS when less than specified octets are left in tx queue. Optimization, see paper: "Theoretical Analysis of GPRS Throughput and Delay" */ uint16_t cs_downgrade_threshold; + /* Link quality range for each UL (M)CS. Below or above, next/prev (M)CS is selected. */ + struct {int16_t low; int16_t high; } cs_lqual_ranges[MAX_GPRS_CS]; + struct {int16_t low; int16_t high; } mcs_lqual_ranges[MAX_EDGE_MCS]; } vty; struct gsmtap_inst *gsmtap; diff --git a/src/pcu_vty.c b/src/pcu_vty.c index e0edf91..3abfba7 100644 --- a/src/pcu_vty.c +++ b/src/pcu_vty.c @@ -150,31 +150,31 @@ vty_out(vty, " no cs downgrade-threshold%s", VTY_NEWLINE); vty_out(vty, " cs link-quality-ranges cs1 %d cs2 %d %d cs3 %d %d cs4 %d%s", - bts->cs_lqual_ranges[0].high, - bts->cs_lqual_ranges[1].low, - bts->cs_lqual_ranges[1].high, - bts->cs_lqual_ranges[2].low, - bts->cs_lqual_ranges[2].high, - bts->cs_lqual_ranges[3].low, + the_pcu->vty.cs_lqual_ranges[0].high, + the_pcu->vty.cs_lqual_ranges[1].low, + the_pcu->vty.cs_lqual_ranges[1].high, + the_pcu->vty.cs_lqual_ranges[2].low, + the_pcu->vty.cs_lqual_ranges[2].high, + the_pcu->vty.cs_lqual_ranges[3].low, VTY_NEWLINE); vty_out(vty, " mcs link-quality-ranges mcs1 %d mcs2 %d %d mcs3 %d %d mcs4 %d %d mcs5 %d %d mcs6 %d %d mcs7 %d %d mcs8 %d %d mcs9 %d%s", - bts->mcs_lqual_ranges[0].high, - bts->mcs_lqual_ranges[1].low, - bts->mcs_lqual_ranges[1].high, - bts->mcs_lqual_ranges[2].low, - bts->mcs_lqual_ranges[2].high, - bts->mcs_lqual_ranges[3].low, - bts->mcs_lqual_ranges[3].high, - bts->mcs_lqual_ranges[4].low, - bts->mcs_lqual_ranges[4].high, - bts->mcs_lqual_ranges[5].low, - bts->mcs_lqual_ranges[5].high, - bts->mcs_lqual_ranges[6].low, - bts->mcs_lqual_ranges[6].high, - bts->mcs_lqual_ranges[7].low, - bts->mcs_lqual_ranges[7].high, - bts->mcs_lqual_ranges[8].low, + the_pcu->vty.mcs_lqual_ranges[0].high, + the_pcu->vty.mcs_lqual_ranges[1].low, + the_pcu->vty.mcs_lqual_ranges[1].high, + the_pcu->vty.mcs_lqual_ranges[2].low, + the_pcu->vty.mcs_lqual_ranges[2].high, + the_pcu->vty.mcs_lqual_ranges[3].low, + the_pcu->vty.mcs_lqual_ranges[3].high, + the_pcu->vty.mcs_lqual_ranges[4].low, + the_pcu->vty.mcs_lqual_ranges[4].high, + the_pcu->vty.mcs_lqual_ranges[5].low, + the_pcu->vty.mcs_lqual_ranges[5].high, + the_pcu->vty.mcs_lqual_ranges[6].low, + the_pcu->vty.mcs_lqual_ranges[6].high, + the_pcu->vty.mcs_lqual_ranges[7].low, + the_pcu->vty.mcs_lqual_ranges[7].high, + the_pcu->vty.mcs_lqual_ranges[8].low, VTY_NEWLINE); if (the_pcu->vty.force_initial_mcs) { @@ -977,8 +977,6 @@ "CS-4 low (dB)\n", CMD_ATTR_IMMEDIATE) { - struct gprs_rlcmac_bts *bts = bts_main_data(); - uint8_t cs1_high = atoi(argv[0]); uint8_t cs2_low = atoi(argv[1]); uint8_t cs2_high = atoi(argv[2]); @@ -986,12 +984,12 @@ uint8_t cs3_high = atoi(argv[4]); uint8_t cs4_low = atoi(argv[5]); - bts->cs_lqual_ranges[0].high = cs1_high; - bts->cs_lqual_ranges[1].low = cs2_low; - bts->cs_lqual_ranges[1].high = cs2_high; - bts->cs_lqual_ranges[2].low = cs3_low; - bts->cs_lqual_ranges[2].high = cs3_high; - bts->cs_lqual_ranges[3].low = cs4_low; + the_pcu->vty.cs_lqual_ranges[0].high = cs1_high; + the_pcu->vty.cs_lqual_ranges[1].low = cs2_low; + the_pcu->vty.cs_lqual_ranges[1].high = cs2_high; + the_pcu->vty.cs_lqual_ranges[2].low = cs3_low; + the_pcu->vty.cs_lqual_ranges[2].high = cs3_high; + the_pcu->vty.cs_lqual_ranges[3].low = cs4_low; return CMD_SUCCESS; } @@ -1027,24 +1025,22 @@ "MCS-9 low (dB)\n", CMD_ATTR_IMMEDIATE) { - struct gprs_rlcmac_bts *bts = bts_main_data(); - - bts->mcs_lqual_ranges[0].high = atoi(argv[0]); - bts->mcs_lqual_ranges[1].low = atoi(argv[1]); - bts->mcs_lqual_ranges[1].high = atoi(argv[2]); - bts->mcs_lqual_ranges[2].low = atoi(argv[3]); - bts->mcs_lqual_ranges[2].high = atoi(argv[4]); - bts->mcs_lqual_ranges[3].low = atoi(argv[5]); - bts->mcs_lqual_ranges[3].high = atoi(argv[6]); - bts->mcs_lqual_ranges[4].low = atoi(argv[7]); - bts->mcs_lqual_ranges[4].high = atoi(argv[8]); - bts->mcs_lqual_ranges[5].low = atoi(argv[9]); - bts->mcs_lqual_ranges[5].high = atoi(argv[10]); - bts->mcs_lqual_ranges[6].low = atoi(argv[11]); - bts->mcs_lqual_ranges[6].high = atoi(argv[12]); - bts->mcs_lqual_ranges[7].low = atoi(argv[13]); - bts->mcs_lqual_ranges[7].high = atoi(argv[14]); - bts->mcs_lqual_ranges[8].low = atoi(argv[15]); + the_pcu->vty.mcs_lqual_ranges[0].high = atoi(argv[0]); + the_pcu->vty.mcs_lqual_ranges[1].low = atoi(argv[1]); + the_pcu->vty.mcs_lqual_ranges[1].high = atoi(argv[2]); + the_pcu->vty.mcs_lqual_ranges[2].low = atoi(argv[3]); + the_pcu->vty.mcs_lqual_ranges[2].high = atoi(argv[4]); + the_pcu->vty.mcs_lqual_ranges[3].low = atoi(argv[5]); + the_pcu->vty.mcs_lqual_ranges[3].high = atoi(argv[6]); + the_pcu->vty.mcs_lqual_ranges[4].low = atoi(argv[7]); + the_pcu->vty.mcs_lqual_ranges[4].high = atoi(argv[8]); + the_pcu->vty.mcs_lqual_ranges[5].low = atoi(argv[9]); + the_pcu->vty.mcs_lqual_ranges[5].high = atoi(argv[10]); + the_pcu->vty.mcs_lqual_ranges[6].low = atoi(argv[11]); + the_pcu->vty.mcs_lqual_ranges[6].high = atoi(argv[12]); + the_pcu->vty.mcs_lqual_ranges[7].low = atoi(argv[13]); + the_pcu->vty.mcs_lqual_ranges[7].high = atoi(argv[14]); + the_pcu->vty.mcs_lqual_ranges[8].low = atoi(argv[15]); return CMD_SUCCESS; } -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22186 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I39e2fc7e229851610d797c594d84902af6079411 Gerrit-Change-Number: 22186 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 12:36:06 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 14 Jan 2021 12:36:06 +0000 Subject: Change in osmo-pcu[master]: Move ns_dialect field from BTS to PCU References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22187 ) Change subject: Move ns_dialect field from BTS to PCU ...................................................................... Move ns_dialect field from BTS to PCU Change-Id: Iffb22b776b91f93d6d2a7ccfa47deeecc22c33f0 --- M src/bts.cpp M src/bts.h M src/gprs_bssgp_pcu.cpp M src/gprs_pcu.c M src/gprs_pcu.h M src/pcu_vty.c 6 files changed, 8 insertions(+), 12 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/87/22187/1 diff --git a/src/bts.cpp b/src/bts.cpp index c2b8696..4a9910f 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -201,7 +201,6 @@ bts->n3103 = 4; bts->n3105 = 8; bts->si13_is_set = false; - bts->ns_dialect = NS2_DIALECT_IPACCESS; /* TODO: increase them when CRBB decoding is implemented */ bts->ws_base = 64; diff --git a/src/bts.h b/src/bts.h index e874767..283246e 100644 --- a/src/bts.h +++ b/src/bts.h @@ -120,9 +120,6 @@ */ struct BTS *bts; - /* Are we talking Gb with IP-SNS (true) or classic Gb? */ - enum gprs_ns2_dialect ns_dialect; - /* Packet Application Information (3GPP TS 44.060 11.2.47, usually ETWS primary message). We don't need to store * more than one message, because they get sent so rarely. */ struct msgb *app_info; diff --git a/src/gprs_bssgp_pcu.cpp b/src/gprs_bssgp_pcu.cpp index 0db6a51..89edd2b 100644 --- a/src/gprs_bssgp_pcu.cpp +++ b/src/gprs_bssgp_pcu.cpp @@ -984,7 +984,7 @@ bts->nse = gprs_ns2_nse_by_nsei(the_pcu->nsi, nsei); if (!bts->nse) bts->nse = gprs_ns2_create_nse(the_pcu->nsi, nsei, - GPRS_NS2_LL_UDP, bts->ns_dialect); + GPRS_NS2_LL_UDP, the_pcu->vty.ns_dialect); if (!bts->nse) { LOGP(DBSSGP, LOGL_ERROR, "Failed to create NSE\n"); @@ -997,7 +997,7 @@ continue; /* FIXME: for SNS we just use the first successful NS-VC instead of all for the initial connect */ - if (bts->ns_dialect == NS2_DIALECT_SNS) { + if (the_pcu->vty.ns_dialect == NS2_DIALECT_SNS) { rc = gprs_ns2_sns_add_endpoint(bts->nse, &remote[i]); if (!rc) return rc; @@ -1066,7 +1066,7 @@ gprs_ns2_free_nses(the_pcu->nsi); gprs_ns2_free_binds(the_pcu->nsi); rc = ns_create_nsvc(bts, nsei, local, remote, nsvci, valid); - } else if (bts->ns_dialect == NS2_DIALECT_SNS) { + } else if (the_pcu->vty.ns_dialect == NS2_DIALECT_SNS) { /* SNS: check if the initial nsvc is the same, if not recreate it */ const struct osmo_sockaddr *initial = gprs_ns2_nse_sns_remote(bts->nse); for (unsigned int i = 0; i < PCU_IF_NUM_NSVC; i++) { diff --git a/src/gprs_pcu.c b/src/gprs_pcu.c index cfe8896..01ead33 100644 --- a/src/gprs_pcu.c +++ b/src/gprs_pcu.c @@ -89,6 +89,7 @@ pcu->vty.mcs_lqual_ranges[7].high = 24; pcu->vty.mcs_lqual_ranges[8].low = 23; pcu->vty.mcs_lqual_ranges[8].high = 256; + pcu->vty.ns_dialect = NS2_DIALECT_IPACCESS; pcu->T_defs = T_defs_pcu; osmo_tdefs_reset(pcu->T_defs); diff --git a/src/gprs_pcu.h b/src/gprs_pcu.h index 916169e..ff73cc9 100644 --- a/src/gprs_pcu.h +++ b/src/gprs_pcu.h @@ -88,6 +88,7 @@ /* Link quality range for each UL (M)CS. Below or above, next/prev (M)CS is selected. */ struct {int16_t low; int16_t high; } cs_lqual_ranges[MAX_GPRS_CS]; struct {int16_t low; int16_t high; } mcs_lqual_ranges[MAX_EDGE_MCS]; + enum gprs_ns2_dialect ns_dialect; /* Are we talking Gb with IP-SNS (true) or classic Gb? */ } vty; struct gsmtap_inst *gsmtap; diff --git a/src/pcu_vty.c b/src/pcu_vty.c index 3abfba7..b0c941d 100644 --- a/src/pcu_vty.c +++ b/src/pcu_vty.c @@ -243,7 +243,7 @@ } } - if (bts->ns_dialect == NS2_DIALECT_SNS) + if (the_pcu->vty.ns_dialect == NS2_DIALECT_SNS) vty_out(vty, " gb-dialect ip-sns%s", VTY_NEWLINE); else vty_out(vty, " gb-dialect classic%s", VTY_NEWLINE); @@ -1067,12 +1067,10 @@ "Classic Gb interface with NS-{RESET,BLOCK,UNBLOCK} and static configuration\n" "Modern Gb interface with IP-SNS (Sub Network Service) and dynamic configuration\n") { - struct gprs_rlcmac_bts *bts = bts_main_data(); - if (!strcmp(argv[0], "ip-sns")) { - bts->ns_dialect = NS2_DIALECT_SNS; + the_pcu->vty.ns_dialect = NS2_DIALECT_SNS; } else { - bts->ns_dialect = NS2_DIALECT_IPACCESS; + the_pcu->vty.ns_dialect = NS2_DIALECT_IPACCESS; } return CMD_SUCCESS; -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22187 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Iffb22b776b91f93d6d2a7ccfa47deeecc22c33f0 Gerrit-Change-Number: 22187 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 13:03:23 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 14 Jan 2021 13:03:23 +0000 Subject: Change in osmo-pcu[master]: Move fc_* fields from BTS to PCU References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22188 ) Change subject: Move fc_* fields from BTS to PCU ...................................................................... Move fc_* fields from BTS to PCU Change-Id: I816d49e732d0fc7a3c9aa1f0e9a83b83d25e6a32 --- M src/bts.cpp M src/bts.h M src/gprs_bssgp_pcu.cpp M src/gprs_pcu.c M src/gprs_pcu.h M src/pcu_vty.c M tests/emu/pcu_emu.cpp 7 files changed, 34 insertions(+), 66 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/88/22188/1 diff --git a/src/bts.cpp b/src/bts.cpp index 4a9910f..9f987ff 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -193,7 +193,6 @@ static void bts_init(struct gprs_rlcmac_bts *bts, BTS* bts_obj) { memset(bts, 0, sizeof(*bts)); - bts->fc_interval = 1; bts->initial_cs_dl = bts->initial_cs_ul = 1; bts->initial_mcs_dl = bts->initial_mcs_ul = 1; bts->cs_mask = 1 << 0; /* CS-1 always enabled by default */ diff --git a/src/bts.h b/src/bts.h index 283246e..1f26b84 100644 --- a/src/bts.h +++ b/src/bts.h @@ -85,12 +85,6 @@ struct gprs_rlcmac_bts { bool active; uint8_t bsic; - uint8_t fc_interval; - uint16_t fc_bucket_time; - uint32_t fc_bvc_bucket_size; - uint32_t fc_bvc_leak_rate; - uint32_t fc_ms_bucket_size; - uint32_t fc_ms_leak_rate; uint8_t cs_mask; /* Allowed CS mask from BTS */ uint16_t mcs_mask; /* Allowed MCS mask from BTS */ uint8_t initial_cs_dl, initial_cs_ul; diff --git a/src/gprs_bssgp_pcu.cpp b/src/gprs_bssgp_pcu.cpp index 89edd2b..c1a7a7d 100644 --- a/src/gprs_bssgp_pcu.cpp +++ b/src/gprs_bssgp_pcu.cpp @@ -673,7 +673,7 @@ uint32_t leak_rate, uint32_t fallback) { uint32_t bucket_size = 0; - uint16_t bucket_time = bts->fc_bucket_time; + uint16_t bucket_time = the_pcu->vty.fc_bucket_time; if (bucket_time == 0) bucket_time = bts->force_llc_lifetime; @@ -811,10 +811,10 @@ max_cs_dl = max_coding_scheme_dl(bts); - bucket_size = bts->fc_bvc_bucket_size; - leak_rate = bts->fc_bvc_leak_rate; - ms_bucket_size = bts->fc_ms_bucket_size; - ms_leak_rate = bts->fc_ms_leak_rate; + bucket_size = the_pcu->vty.fc_bvc_bucket_size; + leak_rate = the_pcu->vty.fc_bvc_leak_rate; + ms_bucket_size = the_pcu->vty.fc_ms_bucket_size; + ms_leak_rate = the_pcu->vty.fc_ms_leak_rate; /* FIXME: This calculation is mostly wrong. It should be done based on currently established TBF (and whether the related (egprs)_ms_class @@ -940,7 +940,7 @@ LOGP(DBSSGP, LOGL_DEBUG, "Sending flow control info on BVCI %d\n", the_pcu->bssgp.bctx->bvci); gprs_bssgp_tx_fc_bvc(); - osmo_timer_schedule(&the_pcu->bssgp.bvc_timer, the_pcu->bssgp.bts->fc_interval, 0); + osmo_timer_schedule(&the_pcu->bssgp.bvc_timer, the_pcu->vty.fc_interval, 0); } static int ns_create_nsvc(struct gprs_rlcmac_bts *bts, diff --git a/src/gprs_pcu.c b/src/gprs_pcu.c index 01ead33..209fca6 100644 --- a/src/gprs_pcu.c +++ b/src/gprs_pcu.c @@ -46,6 +46,7 @@ pcu = (struct gprs_pcu *)talloc_zero(ctx, struct gprs_pcu); OSMO_ASSERT(pcu); + pcu->vty.fc_interval = 1; pcu->vty.max_cs_ul = MAX_GPRS_CS; pcu->vty.max_cs_dl = MAX_GPRS_CS; pcu->vty.max_mcs_ul = MAX_EDGE_MCS; diff --git a/src/gprs_pcu.h b/src/gprs_pcu.h index ff73cc9..87c8cdf 100644 --- a/src/gprs_pcu.h +++ b/src/gprs_pcu.h @@ -71,6 +71,12 @@ char *pcu_sock_path; struct { /* Config Values set by VTY */ + uint8_t fc_interval; + uint16_t fc_bucket_time; + uint32_t fc_bvc_bucket_size; + uint32_t fc_bvc_leak_rate; + uint32_t fc_ms_bucket_size; + uint32_t fc_ms_leak_rate; bool force_initial_cs; /* false=use from BTS true=use from VTY */ bool force_initial_mcs; /* false=use from BTS true=use from VTY */ uint8_t max_cs_dl, max_cs_ul; diff --git a/src/pcu_vty.c b/src/pcu_vty.c index b0c941d..d107548 100644 --- a/src/pcu_vty.c +++ b/src/pcu_vty.c @@ -106,20 +106,20 @@ unsigned int i; vty_out(vty, "pcu%s", VTY_NEWLINE); - vty_out(vty, " flow-control-interval %d%s", bts->fc_interval, + vty_out(vty, " flow-control-interval %d%s", the_pcu->vty.fc_interval, VTY_NEWLINE); - if (bts->fc_bvc_bucket_size) + if (the_pcu->vty.fc_bvc_bucket_size) vty_out(vty, " flow-control force-bvc-bucket-size %d%s", - bts->fc_bvc_bucket_size, VTY_NEWLINE); - if (bts->fc_bvc_leak_rate) + the_pcu->vty.fc_bvc_bucket_size, VTY_NEWLINE); + if (the_pcu->vty.fc_bvc_leak_rate) vty_out(vty, " flow-control force-bvc-leak-rate %d%s", - bts->fc_bvc_leak_rate, VTY_NEWLINE); - if (bts->fc_ms_bucket_size) + the_pcu->vty.fc_bvc_leak_rate, VTY_NEWLINE); + if (the_pcu->vty.fc_ms_bucket_size) vty_out(vty, " flow-control force-ms-bucket-size %d%s", - bts->fc_ms_bucket_size, VTY_NEWLINE); - if (bts->fc_ms_leak_rate) + the_pcu->vty.fc_ms_bucket_size, VTY_NEWLINE); + if (the_pcu->vty.fc_ms_leak_rate) vty_out(vty, " flow-control force-ms-leak-rate %d%s", - bts->fc_ms_leak_rate, VTY_NEWLINE); + the_pcu->vty.fc_ms_leak_rate, VTY_NEWLINE); if (the_pcu->vty.force_initial_cs) { if (bts->initial_cs_ul == bts->initial_cs_dl) vty_out(vty, " cs %d%s", bts->initial_cs_dl, @@ -292,10 +292,7 @@ "Interval time in seconds\n", CMD_ATTR_IMMEDIATE) { - struct gprs_rlcmac_bts *bts = bts_main_data(); - - bts->fc_interval = atoi(argv[0]); - + the_pcu->vty.fc_interval = atoi(argv[0]); return CMD_SUCCESS; } #define FC_STR "BSSGP Flow Control configuration\n" @@ -308,10 +305,7 @@ FC_STR FC_BMAX_STR("BVC") "Bucket size in octets\n", CMD_ATTR_IMMEDIATE) { - struct gprs_rlcmac_bts *bts = bts_main_data(); - - bts->fc_bvc_bucket_size = atoi(argv[0]); - + the_pcu->vty.fc_bvc_bucket_size = atoi(argv[0]); return CMD_SUCCESS; } @@ -321,10 +315,7 @@ NO_STR FC_STR FC_BMAX_STR("BVC"), CMD_ATTR_IMMEDIATE) { - struct gprs_rlcmac_bts *bts = bts_main_data(); - - bts->fc_bvc_bucket_size = 0; - + the_pcu->vty.fc_bvc_bucket_size = 0; return CMD_SUCCESS; } @@ -334,9 +325,7 @@ FC_STR FC_LR_STR("BVC") "Leak rate in bit/s\n", CMD_ATTR_IMMEDIATE) { - struct gprs_rlcmac_bts *bts = bts_main_data(); - - bts->fc_bvc_leak_rate = atoi(argv[0]); + the_pcu->vty.fc_bvc_leak_rate = atoi(argv[0]); return CMD_SUCCESS; } @@ -347,10 +336,7 @@ NO_STR FC_STR FC_LR_STR("BVC"), CMD_ATTR_IMMEDIATE) { - struct gprs_rlcmac_bts *bts = bts_main_data(); - - bts->fc_bvc_leak_rate = 0; - + the_pcu->vty.fc_bvc_leak_rate = 0; return CMD_SUCCESS; } @@ -360,10 +346,7 @@ FC_STR FC_BMAX_STR("default MS") "Bucket size in octets\n", CMD_ATTR_IMMEDIATE) { - struct gprs_rlcmac_bts *bts = bts_main_data(); - - bts->fc_ms_bucket_size = atoi(argv[0]); - + the_pcu->vty.fc_ms_bucket_size = atoi(argv[0]); return CMD_SUCCESS; } @@ -373,10 +356,7 @@ NO_STR FC_STR FC_BMAX_STR("default MS"), CMD_ATTR_IMMEDIATE) { - struct gprs_rlcmac_bts *bts = bts_main_data(); - - bts->fc_ms_bucket_size = 0; - + the_pcu->vty.fc_ms_bucket_size = 0; return CMD_SUCCESS; } @@ -386,10 +366,7 @@ FC_STR FC_LR_STR("default MS") "Leak rate in bit/s\n", CMD_ATTR_IMMEDIATE) { - struct gprs_rlcmac_bts *bts = bts_main_data(); - - bts->fc_ms_leak_rate = atoi(argv[0]); - + the_pcu->vty.fc_ms_leak_rate = atoi(argv[0]); return CMD_SUCCESS; } @@ -399,10 +376,7 @@ NO_STR FC_STR FC_LR_STR("default MS"), CMD_ATTR_IMMEDIATE) { - struct gprs_rlcmac_bts *bts = bts_main_data(); - - bts->fc_ms_leak_rate = 0; - + the_pcu->vty.fc_ms_leak_rate = 0; return CMD_SUCCESS; } @@ -413,10 +387,7 @@ FC_STR FC_BTIME_STR "Time in centi-seconds\n", CMD_ATTR_IMMEDIATE) { - struct gprs_rlcmac_bts *bts = bts_main_data(); - - bts->fc_bucket_time = atoi(argv[0]); - + the_pcu->vty.fc_bucket_time = atoi(argv[0]); return CMD_SUCCESS; } @@ -426,10 +397,7 @@ NO_STR FC_STR FC_BTIME_STR, CMD_ATTR_IMMEDIATE) { - struct gprs_rlcmac_bts *bts = bts_main_data(); - - bts->fc_bucket_time = 0; - + the_pcu->vty.fc_bucket_time = 0; return CMD_SUCCESS; } diff --git a/tests/emu/pcu_emu.cpp b/tests/emu/pcu_emu.cpp index 96aacda..2336e67 100644 --- a/tests/emu/pcu_emu.cpp +++ b/tests/emu/pcu_emu.cpp @@ -66,7 +66,6 @@ static void init_main_bts() { struct gprs_rlcmac_bts *bts = bts_main_data(); - bts->fc_interval = 100; bts->initial_cs_dl = bts->initial_cs_ul = 1; bts->cs_mask = 1 << 0; /* CS-1 always enabled by default */ bts->n3101 = 10; @@ -78,6 +77,7 @@ { if (!pcu->alloc_algorithm) pcu->alloc_algorithm = alloc_algorithm_b; + pcu->vty.fc_interval = 100; pcu->vty.alpha = 0; /* a = 0.0 */ } -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22188 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I816d49e732d0fc7a3c9aa1f0e9a83b83d25e6a32 Gerrit-Change-Number: 22188 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 13:31:01 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 14 Jan 2021 13:31:01 +0000 Subject: Change in osmo-pcu[master]: tests/tbf: Allocate PCU per test instead of globally References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22189 ) Change subject: tests/tbf: Allocate PCU per test instead of globally ...................................................................... tests/tbf: Allocate PCU per test instead of globally Otherwise some state may be left from one test to another. Change-Id: I18e2fe7dd1cc5940570252a2a6a106de49d8a7dd --- M tests/tbf/TbfTest.cpp 1 file changed, 58 insertions(+), 33 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/89/22189/1 diff --git a/tests/tbf/TbfTest.cpp b/tests/tbf/TbfTest.cpp index 75b51bf..66e344e 100644 --- a/tests/tbf/TbfTest.cpp +++ b/tests/tbf/TbfTest.cpp @@ -91,6 +91,7 @@ static void test_tbf_tlli_update() { + the_pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu->bts = bts_alloc(the_pcu); BTS *the_bts = the_pcu->bts; GprsMs *ms, *ms_new; @@ -155,7 +156,7 @@ OSMO_ASSERT(dl_tbf->ta() == 6); fprintf(stderr, "=== end %s ===\n", __func__); - TALLOC_FREE(the_pcu->bts); + TALLOC_FREE(the_pcu); } static uint8_t llc_data[200]; @@ -253,6 +254,7 @@ static void test_tbf_final_ack(enum test_tbf_final_ack_mode test_mode) { + the_pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu->bts = bts_alloc(the_pcu); BTS *the_bts = the_pcu->bts; uint8_t ts_no = 4; @@ -324,7 +326,7 @@ ms_unref(ms); } - TALLOC_FREE(the_pcu->bts); + TALLOC_FREE(the_pcu); fprintf(stderr, "=== end %s ===\n", __func__); } @@ -338,6 +340,7 @@ static void test_tbf_delayed_release() { + the_pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu->bts = bts_alloc(the_pcu); BTS *the_bts = the_pcu->bts; uint8_t ts_no = 4; @@ -402,12 +405,13 @@ TBF_SET_ASS_STATE_DL(dl_tbf, GPRS_RLCMAC_DL_ASS_NONE); check_tbf(dl_tbf); tbf_free(dl_tbf); - TALLOC_FREE(the_pcu->bts); + TALLOC_FREE(the_pcu); fprintf(stderr, "=== end %s ===\n", __func__); } static void test_tbf_imsi() { + the_pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu->bts = bts_alloc(the_pcu); BTS *the_bts = the_pcu->bts; uint8_t ts_no = 4; @@ -463,12 +467,13 @@ ms1 = the_bts->ms_store().get_ms(0, 0, "001001000000002"); OSMO_ASSERT(ms1 == NULL); - TALLOC_FREE(the_pcu->bts); + TALLOC_FREE(the_pcu); fprintf(stderr, "=== end %s ===\n", __func__); } static void test_tbf_exhaustion() { + the_pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu->bts = bts_alloc(the_pcu); BTS *the_bts = the_pcu->bts; gprs_rlcmac_bts *bts; @@ -509,11 +514,12 @@ fprintf(stderr, "=== end %s ===\n", __func__); gprs_bssgp_destroy(bts); - TALLOC_FREE(the_pcu->bts); + TALLOC_FREE(the_pcu); } static void test_tbf_dl_llc_loss() { + the_pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu->bts = bts_alloc(the_pcu); BTS *the_bts = the_pcu->bts; gprs_rlcmac_bts *bts; @@ -596,7 +602,7 @@ fprintf(stderr, "=== end %s ===\n", __func__); gprs_bssgp_destroy(bts); - TALLOC_FREE(the_pcu->bts); + TALLOC_FREE(the_pcu); } static gprs_rlcmac_ul_tbf *establish_ul_tbf_single_phase(BTS *the_bts, @@ -1709,6 +1715,7 @@ static void test_tbf_single_phase() { + the_pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu->bts = bts_alloc(the_pcu); BTS *the_bts = the_pcu->bts; int ts_no = 7; @@ -1728,11 +1735,12 @@ send_dl_data(the_bts, tlli, imsi, (const uint8_t *)"TEST", 4); fprintf(stderr, "=== end %s ===\n", __func__); - TALLOC_FREE(the_pcu->bts); + TALLOC_FREE(the_pcu); } static void test_tbf_egprs_two_phase_puan(void) { + the_pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu->bts = bts_alloc(the_pcu); BTS *the_bts = the_pcu->bts; int ts_no = 7; @@ -1782,7 +1790,7 @@ print_ta_tlli(ul_tbf, true); send_dl_data(the_bts, tlli, imsi, test_data, sizeof(test_data)); - TALLOC_FREE(the_pcu->bts); + TALLOC_FREE(the_pcu); fprintf(stderr, "=== end %s ===\n", __func__); } /* @@ -1790,6 +1798,7 @@ */ static void test_immediate_assign_rej_single_block() { + the_pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu->bts = bts_alloc(the_pcu); BTS *the_bts = the_pcu->bts; uint32_t fn = 2654218; @@ -1814,7 +1823,7 @@ OSMO_ASSERT(rc == -EINVAL); - TALLOC_FREE(the_pcu->bts); + TALLOC_FREE(the_pcu); fprintf(stderr, "=== end %s ===\n", __func__); } @@ -1823,6 +1832,7 @@ */ static void test_immediate_assign_rej_multi_block() { + the_pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu->bts = bts_alloc(the_pcu); BTS *the_bts = the_pcu->bts; uint32_t fn = 2654218; @@ -1852,7 +1862,7 @@ OSMO_ASSERT(rc == -EBUSY); - TALLOC_FREE(the_pcu->bts); + TALLOC_FREE(the_pcu); fprintf(stderr, "=== end %s ===\n", __func__); } @@ -1864,6 +1874,7 @@ static void test_tbf_two_phase() { + the_pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu->bts = bts_alloc(the_pcu); BTS *the_bts = the_pcu->bts; int ts_no = 7; @@ -1884,7 +1895,7 @@ print_ta_tlli(ul_tbf, true); send_dl_data(the_bts, tlli, imsi, (const uint8_t *)"TEST", 4); - TALLOC_FREE(the_pcu->bts); + TALLOC_FREE(the_pcu); fprintf(stderr, "=== end %s ===\n", __func__); } @@ -1896,6 +1907,7 @@ static void test_tbf_ra_update_rach() { + the_pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu->bts = bts_alloc(the_pcu); BTS *the_bts = the_pcu->bts; int ts_no = 7; @@ -1956,12 +1968,13 @@ ms = the_bts->ms_by_tlli(tlli2); OSMO_ASSERT(ms == ms2); - TALLOC_FREE(the_pcu->bts); + TALLOC_FREE(the_pcu); fprintf(stderr, "=== end %s ===\n", __func__); } static void test_tbf_dl_flow_and_rach_two_phase() { + the_pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu->bts = bts_alloc(the_pcu); BTS *the_bts = the_pcu->bts; int ts_no = 7; @@ -2016,13 +2029,14 @@ /* No queued packets should be lost */ OSMO_ASSERT(llc_queue_size(ms_llc_queue(ms)) == 2); - TALLOC_FREE(the_pcu->bts); + TALLOC_FREE(the_pcu); fprintf(stderr, "=== end %s ===\n", __func__); } static void test_tbf_dl_flow_and_rach_single_phase() { + the_pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu->bts = bts_alloc(the_pcu); BTS *the_bts = the_pcu->bts; int ts_no = 7; @@ -2077,12 +2091,13 @@ /* No queued packets should be lost */ OSMO_ASSERT(llc_queue_size(ms_llc_queue(ms)) == 2); - TALLOC_FREE(the_pcu->bts); + TALLOC_FREE(the_pcu); fprintf(stderr, "=== end %s ===\n", __func__); } static void test_tbf_dl_reuse() { + the_pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu->bts = bts_alloc(the_pcu); BTS *the_bts = the_pcu->bts; int ts_no = 7; @@ -2177,12 +2192,13 @@ OSMO_ASSERT(ms_dl_tbf(ms2)); OSMO_ASSERT(ms_dl_tbf(ms2)->state_is(GPRS_RLCMAC_FINISHED)); - TALLOC_FREE(the_pcu->bts); + TALLOC_FREE(the_pcu); fprintf(stderr, "=== end %s ===\n", __func__); } static void test_tbf_gprs_egprs() { + the_pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu->bts = bts_alloc(the_pcu); BTS *the_bts = the_pcu->bts; gprs_rlcmac_bts *bts; @@ -2218,7 +2234,7 @@ fprintf(stderr, "=== end %s ===\n", __func__); gprs_bssgp_destroy(bts); - TALLOC_FREE(the_pcu->bts); + TALLOC_FREE(the_pcu); } static inline void ws_check(gprs_rlcmac_dl_tbf *dl_tbf, const char *test, uint8_t exp_slots, uint16_t exp_ws, @@ -2252,6 +2268,7 @@ static void test_tbf_ws() { + the_pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu->bts = bts_alloc(the_pcu); BTS *the_bts = the_pcu->bts; gprs_rlcmac_bts *bts; @@ -2294,11 +2311,12 @@ dl_tbf = tbf_alloc_dl_tbf(bts, ms, 0, false); ws_check(dl_tbf, __func__, 4, 128 + 4 * 64, true, true); - TALLOC_FREE(the_pcu->bts); + TALLOC_FREE(the_pcu); } static void test_tbf_update_ws(void) { + the_pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu->bts = bts_alloc(the_pcu); BTS *the_bts = the_pcu->bts; gprs_rlcmac_bts *bts; @@ -2340,11 +2358,12 @@ /* window size should be 384 */ ws_check(dl_tbf, __func__, 4, 128 + 4 * 64, true, true); - TALLOC_FREE(the_pcu->bts); + TALLOC_FREE(the_pcu); } static void test_tbf_puan_urbb_len(void) { + the_pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu->bts = bts_alloc(the_pcu); BTS *the_bts = the_pcu->bts; int ts_no = 7; @@ -2370,7 +2389,7 @@ print_ta_tlli(ul_tbf, true); send_dl_data(the_bts, tlli, imsi, test_data, sizeof(test_data)); - TALLOC_FREE(the_pcu->bts); + TALLOC_FREE(the_pcu); fprintf(stderr, "=== end %s ===\n", __func__); } @@ -2487,6 +2506,7 @@ static void test_tbf_li_decoding(void) { + the_pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu->bts = bts_alloc(the_pcu); BTS *the_bts = the_pcu->bts; int ts_no = 7; @@ -2512,7 +2532,7 @@ print_ta_tlli(ul_tbf, true); send_dl_data(the_bts, tlli, imsi, test_data, sizeof(test_data)); - TALLOC_FREE(the_pcu->bts); + TALLOC_FREE(the_pcu); fprintf(stderr, "=== end %s ===\n", __func__); } @@ -2523,6 +2543,7 @@ */ static void test_tbf_epdan_out_of_rx_window(void) { + the_pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu->bts = bts_alloc(the_pcu); BTS *the_bts = the_pcu->bts; uint8_t ms_class = 11; @@ -2608,12 +2629,13 @@ bitvec_free(block); tbf_free(dl_tbf); - TALLOC_FREE(the_pcu->bts); + TALLOC_FREE(the_pcu); fprintf(stderr, "=== end %s ===\n", __func__); } static void test_tbf_egprs_two_phase_spb(void) { + the_pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu->bts = bts_alloc(the_pcu); BTS *the_bts = the_pcu->bts; int ts_no = 7; @@ -2639,12 +2661,13 @@ print_ta_tlli(ul_tbf, true); send_dl_data(the_bts, tlli, imsi, test_data, sizeof(test_data)); - TALLOC_FREE(the_pcu->bts); + TALLOC_FREE(the_pcu); fprintf(stderr, "=== end %s ===\n", __func__); } static void test_tbf_egprs_two_phase() { + the_pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu->bts = bts_alloc(the_pcu); BTS *the_bts = the_pcu->bts; int ts_no = 7; @@ -2670,7 +2693,7 @@ print_ta_tlli(ul_tbf, true); send_dl_data(the_bts, tlli, imsi, test_data, sizeof(test_data)); - TALLOC_FREE(the_pcu->bts); + TALLOC_FREE(the_pcu); fprintf(stderr, "=== end %s ===\n", __func__); } @@ -3068,6 +3091,7 @@ static void test_tbf_egprs_retx_dl(void) { + the_pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu->bts = bts_alloc(the_pcu); BTS *the_bts = the_pcu->bts; uint8_t ts_no = 4; @@ -3090,12 +3114,13 @@ establish_and_use_egprs_dl_tbf_for_retx(the_bts, 7, 5); establish_and_use_egprs_dl_tbf_for_retx(the_bts, 9, 6); - TALLOC_FREE(the_pcu->bts); + TALLOC_FREE(the_pcu); fprintf(stderr, "=== end %s ===\n", __func__); } static void test_tbf_egprs_spb_dl(void) { + the_pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu->bts = bts_alloc(the_pcu); BTS *the_bts = the_pcu->bts; uint8_t ts_no = 4; @@ -3120,12 +3145,13 @@ /* check MCS6->(MCS3+MCS3)->MCS6 case */ egprs_spb_to_normal_validation(the_bts, 6, 3); - TALLOC_FREE(the_pcu->bts); + TALLOC_FREE(the_pcu); fprintf(stderr, "=== end %s ===\n", __func__); } static void test_tbf_egprs_dl() { + the_pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu->bts = bts_alloc(the_pcu); BTS *the_bts = the_pcu->bts; uint8_t ts_no = 4; @@ -3141,7 +3167,7 @@ for (i = 1; i <= 9; i++) establish_and_use_egprs_dl_tbf(the_bts, i); - TALLOC_FREE(the_pcu->bts); + TALLOC_FREE(the_pcu); fprintf(stderr, "=== end %s ===\n", __func__); } @@ -3149,6 +3175,7 @@ static void test_packet_access_rej_prr_no_other_tbfs() { + the_pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu->bts = bts_alloc(the_pcu); BTS *the_bts = the_pcu->bts; uint32_t fn = 2654218; @@ -3178,12 +3205,13 @@ ul_tbf->handle_timeout(); - TALLOC_FREE(the_pcu->bts); + TALLOC_FREE(the_pcu); fprintf(stderr, "=== end %s ===\n", __func__); } static void test_packet_access_rej_prr() { + the_pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu->bts = bts_alloc(the_pcu); BTS *the_bts = the_pcu->bts; uint32_t fn = 2654218; @@ -3248,12 +3276,13 @@ OSMO_ASSERT(rc == 0); - TALLOC_FREE(the_pcu->bts); + TALLOC_FREE(the_pcu); fprintf(stderr, "=== end %s ===\n", __func__); } void test_packet_access_rej_epdan() { + the_pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu->bts = bts_alloc(the_pcu); BTS *the_bts = the_pcu->bts; uint32_t tlli = 0xffeeddcc; @@ -3276,7 +3305,7 @@ if (!msgb_eq_data_print(msg, exp, GSM_MACBLOCK_LEN)) fprintf(stderr, "%s test failed!\n", __func__); - TALLOC_FREE(the_pcu->bts); + TALLOC_FREE(the_pcu); fprintf(stderr, "=== end %s ===\n", __func__); } @@ -3296,8 +3325,6 @@ log_parse_category_mask(osmo_stderr_target, "DRLCMAC,1:DRLCMACDATA,3:DRLCMACDL,3:DRLCMACUL,3:" "DRLCMACSCHED,1:DRLCMACMEAS,3:DNS,3:DLBSSGP,3:DPCU,5:" "DL1IF,6:DTBF,1:DTBFUL,1:DTBFDL,1:DLGLOBAL,2:"); - - the_pcu = gprs_pcu_alloc(tall_pcu_ctx); vty_init(&pcu_vty_info); pcu_vty_init(); @@ -3336,8 +3363,6 @@ test_packet_access_rej_prr(); test_packet_access_rej_prr_no_other_tbfs(); - - talloc_free(the_pcu); if (getenv("TALLOC_REPORT_FULL")) talloc_report_full(tall_pcu_ctx, stderr); return EXIT_SUCCESS; -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22189 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I18e2fe7dd1cc5940570252a2a6a106de49d8a7dd Gerrit-Change-Number: 22189 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 13:31:01 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 14 Jan 2021 13:31:01 +0000 Subject: Change in osmo-pcu[master]: Move ws_* fields from BTS to PCU References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22190 ) Change subject: Move ws_* fields from BTS to PCU ...................................................................... Move ws_* fields from BTS to PCU Change-Id: I997bc52f0d924c8f2a0b1d6cf23af98828ad4258 --- M src/bts.cpp M src/bts.h M src/gprs_pcu.c M src/gprs_pcu.h M src/pcu_vty.c M src/tbf.cpp M src/tbf_dl.cpp M src/tbf_ul.cpp M tests/tbf/TbfTest.cpp 9 files changed, 19 insertions(+), 23 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/90/22190/1 diff --git a/src/bts.cpp b/src/bts.cpp index 9f987ff..450c04e 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -201,10 +201,6 @@ bts->n3105 = 8; bts->si13_is_set = false; - /* TODO: increase them when CRBB decoding is implemented */ - bts->ws_base = 64; - bts->ws_pdch = 0; - bts->llc_codel_interval_msec = LLC_CODEL_USE_DEFAULT; bts->llc_idle_ack_csec = 10; diff --git a/src/bts.h b/src/bts.h index 1f26b84..87bdf3f 100644 --- a/src/bts.h +++ b/src/bts.h @@ -102,8 +102,6 @@ uint8_t si13[GSM_MACBLOCK_LEN]; bool si13_is_set; - uint16_t ws_base; - uint16_t ws_pdch; /* increase WS by this value per PDCH */ /* State for dynamic algorithm selection */ int multislot_disabled; diff --git a/src/gprs_pcu.c b/src/gprs_pcu.c index 209fca6..18c5568 100644 --- a/src/gprs_pcu.c +++ b/src/gprs_pcu.c @@ -91,6 +91,9 @@ pcu->vty.mcs_lqual_ranges[8].low = 23; pcu->vty.mcs_lqual_ranges[8].high = 256; pcu->vty.ns_dialect = NS2_DIALECT_IPACCESS; + /* TODO: increase them when CRBB decoding is implemented */ + pcu->vty.ws_base = 64; + pcu->vty.ws_pdch = 0; pcu->T_defs = T_defs_pcu; osmo_tdefs_reset(pcu->T_defs); diff --git a/src/gprs_pcu.h b/src/gprs_pcu.h index 87c8cdf..b4e7c13 100644 --- a/src/gprs_pcu.h +++ b/src/gprs_pcu.h @@ -95,6 +95,8 @@ struct {int16_t low; int16_t high; } cs_lqual_ranges[MAX_GPRS_CS]; struct {int16_t low; int16_t high; } mcs_lqual_ranges[MAX_EDGE_MCS]; enum gprs_ns2_dialect ns_dialect; /* Are we talking Gb with IP-SNS (true) or classic Gb? */ + uint16_t ws_base; + uint16_t ws_pdch; /* increase WS by this value per PDCH */ } vty; struct gsmtap_inst *gsmtap; diff --git a/src/pcu_vty.c b/src/pcu_vty.c index d107548..5e9da45 100644 --- a/src/pcu_vty.c +++ b/src/pcu_vty.c @@ -195,7 +195,7 @@ the_pcu->vty.max_mcs_ul, VTY_NEWLINE); } - vty_out(vty, " window-size %d %d%s", bts->ws_base, bts->ws_pdch, + vty_out(vty, " window-size %d %d%s", the_pcu->vty.ws_base, the_pcu->vty.ws_pdch, VTY_NEWLINE); if (the_pcu->vty.dl_arq_type == EGPRS_ARQ2) @@ -557,13 +557,12 @@ "Base value (b)\n" "Factor for number of PDCH (f)") { - struct gprs_rlcmac_bts *bts = bts_main_data(); uint16_t b = atoi(argv[0]); - bts->ws_base = b; + the_pcu->vty.ws_base = b; if (argc > 1) { uint16_t f = atoi(argv[1]); - bts->ws_pdch = f; + the_pcu->vty.ws_pdch = f; } return CMD_SUCCESS; diff --git a/src/tbf.cpp b/src/tbf.cpp index eb043e5..43c8cbf 100644 --- a/src/tbf.cpp +++ b/src/tbf.cpp @@ -321,7 +321,7 @@ uint8_t num_pdch = pcu_bitcount(slots); return OSMO_MIN((num_pdch != 1) ? (128 * num_pdch) : 192, - OSMO_MAX(64, (bts_data->ws_base + num_pdch * bts_data->ws_pdch) / 32 * 32)); + OSMO_MAX(64, (the_pcu->vty.ws_base + num_pdch * the_pcu->vty.ws_pdch) / 32 * 32)); } int gprs_rlcmac_tbf::update() diff --git a/src/tbf_dl.cpp b/src/tbf_dl.cpp index 2a48648..87b8ba1 100644 --- a/src/tbf_dl.cpp +++ b/src/tbf_dl.cpp @@ -1494,7 +1494,7 @@ uint16_t ws = egprs_window_size(b, dl_slots()); LOGPTBFDL(this, LOGL_INFO, "setting EGPRS DL window size to %u, base(%u) slots(%u) ws_pdch(%u)\n", - ws, b->ws_base, pcu_bitcount(dl_slots()), b->ws_pdch); + ws, bts->pcu->vty.ws_base, pcu_bitcount(dl_slots()), bts->pcu->vty.ws_pdch); m_window.set_ws(ws); } diff --git a/src/tbf_ul.cpp b/src/tbf_ul.cpp index f8c860c..1f3cb01 100644 --- a/src/tbf_ul.cpp +++ b/src/tbf_ul.cpp @@ -764,7 +764,7 @@ const struct gprs_rlcmac_bts *b = bts->bts_data(); uint16_t ws = egprs_window_size(b, ul_slots()); LOGPTBFUL(this, LOGL_INFO, "setting EGPRS UL window size to %u, base(%u) slots(%u) ws_pdch(%u)\n", - ws, b->ws_base, pcu_bitcount(ul_slots()), b->ws_pdch); + ws, bts->pcu->vty.ws_base, pcu_bitcount(ul_slots()), bts->pcu->vty.ws_pdch); m_window.set_ws(ws); } diff --git a/tests/tbf/TbfTest.cpp b/tests/tbf/TbfTest.cpp index 66e344e..1b85201 100644 --- a/tests/tbf/TbfTest.cpp +++ b/tests/tbf/TbfTest.cpp @@ -1749,7 +1749,6 @@ uint32_t tlli = 0xf1223344; const char *imsi = "0011223344"; uint8_t ms_class = 1; - gprs_rlcmac_bts *bts; uint8_t egprs_ms_class = 1; gprs_rlcmac_ul_tbf *ul_tbf; uint8_t test_data[256]; @@ -1760,9 +1759,8 @@ setup_bts(the_bts, ts_no, 4); the_bts->bts_data()->initial_mcs_dl = 9; - bts = the_bts->bts_data(); - bts->ws_base = 128; - bts->ws_pdch = 64; + the_pcu->vty.ws_base = 128; + the_pcu->vty.ws_pdch = 64; ul_tbf = establish_ul_tbf(the_bts, ts_no, tlli, &fn, qta, ms_class, egprs_ms_class); /* Function to generate URBB with no length */ @@ -1782,8 +1780,8 @@ static_cast(ul_tbf->window())->reset_state(); /* Function to generate CRBB */ - bts->ws_base = 128; - bts->ws_pdch = 64; + the_pcu->vty.ws_base = 128; + the_pcu->vty.ws_pdch = 64; ul_tbf = establish_ul_tbf_two_phase_puan_CRBB(the_bts, ts_no, tlli, &fn, qta, ms_class, egprs_ms_class); @@ -2288,8 +2286,8 @@ setup_bts(the_bts, ts_no); - bts->ws_base = 128; - bts->ws_pdch = 64; + the_pcu->vty.ws_base = 128; + the_pcu->vty.ws_pdch = 64; the_pcu->alloc_algorithm = alloc_algorithm_b; bts->trx[0].pdch[2].enable(); bts->trx[0].pdch[3].enable(); @@ -2336,8 +2334,8 @@ setup_bts(the_bts, ts_no); - bts->ws_base = 128; - bts->ws_pdch = 64; + the_pcu->vty.ws_base = 128; + the_pcu->vty.ws_pdch = 64; the_pcu->alloc_algorithm = alloc_algorithm_b; bts->trx[0].pdch[2].enable(); bts->trx[0].pdch[3].enable(); -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22190 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I997bc52f0d924c8f2a0b1d6cf23af98828ad4258 Gerrit-Change-Number: 22190 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 13:37:10 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 14 Jan 2021 13:37:10 +0000 Subject: Change in osmo-iuh[master]: tests/hnb-test-ranap: Fix incorrect pointer type cast In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-iuh/+/22168 ) Change subject: tests/hnb-test-ranap: Fix incorrect pointer type cast ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-iuh/+/22168 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: master Gerrit-Change-Id: I7e0622f502a4442d700340b0f1c2f8cd01e90ecd Gerrit-Change-Number: 22168 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 14 Jan 2021 13:37:10 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 13:37:18 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 14 Jan 2021 13:37:18 +0000 Subject: Change in osmo-iuh[master]: tests/hnb-test: Drop unused variables In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-iuh/+/22169 ) Change subject: tests/hnb-test: Drop unused variables ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-iuh/+/22169 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: master Gerrit-Change-Id: I12870a1cf2462b7cc2868a54f58416e03a856084 Gerrit-Change-Number: 22169 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 14 Jan 2021 13:37:18 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 13:37:26 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 14 Jan 2021 13:37:26 +0000 Subject: Change in osmo-iuh[master]: tests/hnb-test: Fix signedness of imsi_buf In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-iuh/+/22170 ) Change subject: tests/hnb-test: Fix signedness of imsi_buf ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-iuh/+/22170 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: master Gerrit-Change-Id: I3b0a6218ac6242d03642972d5b244815ce9d97a0 Gerrit-Change-Number: 22170 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 14 Jan 2021 13:37:26 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 13:37:38 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 14 Jan 2021 13:37:38 +0000 Subject: Change in osmo-iuh[master]: tests/hnb-test: check return code of hnbap_encode_ueregisterrequesties In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-iuh/+/22171 ) Change subject: tests/hnb-test: check return code of hnbap_encode_ueregisterrequesties ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-iuh/+/22171 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: master Gerrit-Change-Id: Ia49b7e88a66a4a744c2b14db6331cc0de431f60b Gerrit-Change-Number: 22171 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 14 Jan 2021 13:37:38 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 13:37:45 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 14 Jan 2021 13:37:45 +0000 Subject: Change in osmo-iuh[master]: tests/hnb-test-ranap: Fix incorrect signedness in pointer In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-iuh/+/22172 ) Change subject: tests/hnb-test-ranap: Fix incorrect signedness in pointer ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-iuh/+/22172 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: master Gerrit-Change-Id: I04b1c0446124d66dae1e8fb99d9b82782d12bde7 Gerrit-Change-Number: 22172 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 14 Jan 2021 13:37:45 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 13:37:52 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 14 Jan 2021 13:37:52 +0000 Subject: Change in osmo-iuh[master]: tests/hnb-test-ranap: Fix missing include for ranap_bcd_decode In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-iuh/+/22173 ) Change subject: tests/hnb-test-ranap: Fix missing include for ranap_bcd_decode ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-iuh/+/22173 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: master Gerrit-Change-Id: If8b799777598377048512c338f6384560b445ba3 Gerrit-Change-Number: 22173 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 14 Jan 2021 13:37:52 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 13:38:02 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 14 Jan 2021 13:38:02 +0000 Subject: Change in osmo-iuh[master]: tests/hnb-test: Fix uninitialized use of rc variable In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-iuh/+/22174 ) Change subject: tests/hnb-test: Fix uninitialized use of rc variable ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-iuh/+/22174 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: master Gerrit-Change-Id: I168e4f7cd48cbaa387e6b05868107250795a0f0c Gerrit-Change-Number: 22174 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 14 Jan 2021 13:38:02 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 13:38:09 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 14 Jan 2021 13:38:09 +0000 Subject: Change in osmo-iuh[master]: tests/hnb-test: Fix signedness of assigned pointer In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-iuh/+/22175 ) Change subject: tests/hnb-test: Fix signedness of assigned pointer ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-iuh/+/22175 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: master Gerrit-Change-Id: I320ad86b83b0308b43489e8d95f63d6ed55821b5 Gerrit-Change-Number: 22175 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 14 Jan 2021 13:38:09 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 13:38:16 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 14 Jan 2021 13:38:16 +0000 Subject: Change in osmo-iuh[master]: tests/hnb-test: Initialize logging with existing struct log_info In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-iuh/+/22176 ) Change subject: tests/hnb-test: Initialize logging with existing struct log_info ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-iuh/+/22176 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: master Gerrit-Change-Id: Ic92e60dda41a9e4d139294b1e851fff5c4f26143 Gerrit-Change-Number: 22176 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 14 Jan 2021 13:38:16 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 13:38:26 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 14 Jan 2021 13:38:26 +0000 Subject: Change in osmo-iuh[master]: tests/hnb-test: Disable building unsued code In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-iuh/+/22177 ) Change subject: tests/hnb-test: Disable building unsued code ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-iuh/+/22177 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: master Gerrit-Change-Id: I17f20cea8aa63ed79168653292b99c90b8c03caf Gerrit-Change-Number: 22177 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 14 Jan 2021 13:38:26 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 13:38:27 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 14 Jan 2021 13:38:27 +0000 Subject: Change in osmo-iuh[master]: tests/hnb-test-ranap: Fix incorrect pointer type cast In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-iuh/+/22168 ) Change subject: tests/hnb-test-ranap: Fix incorrect pointer type cast ...................................................................... tests/hnb-test-ranap: Fix incorrect pointer type cast osmo_hexdump expect it to be a const unsigned char*, and gcc warns about incorrect signedness. Change-Id: I7e0622f502a4442d700340b0f1c2f8cd01e90ecd --- M src/tests/hnb-test-ranap.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/tests/hnb-test-ranap.c b/src/tests/hnb-test-ranap.c index 517e1a3..fe7db48 100644 --- a/src/tests/hnb-test-ranap.c +++ b/src/tests/hnb-test-ranap.c @@ -5,7 +5,7 @@ static const char *printstr(OCTET_STRING_t *s) { - return osmo_hexdump((char*)s->buf, s->size); + return osmo_hexdump((const unsigned char*)s->buf, s->size); } #define PP(octet_string_t) \ -- To view, visit https://gerrit.osmocom.org/c/osmo-iuh/+/22168 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: master Gerrit-Change-Id: I7e0622f502a4442d700340b0f1c2f8cd01e90ecd Gerrit-Change-Number: 22168 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 13:38:28 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 14 Jan 2021 13:38:28 +0000 Subject: Change in osmo-iuh[master]: tests/hnb-test: Drop unused variables In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-iuh/+/22169 ) Change subject: tests/hnb-test: Drop unused variables ...................................................................... tests/hnb-test: Drop unused variables Change-Id: I12870a1cf2462b7cc2868a54f58416e03a856084 --- M src/tests/hnb-test.c 1 file changed, 2 insertions(+), 3 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/tests/hnb-test.c b/src/tests/hnb-test.c index 27959ec..4b726fa 100644 --- a/src/tests/hnb-test.c +++ b/src/tests/hnb-test.c @@ -81,7 +81,7 @@ static int hnb_test_ue_de_register_tx(struct hnb_test *hnb_test) { struct msgb *msg; - int rc, imsi_len; + int rc; uint32_t ctx_id; UEDe_Register_t dereg; @@ -320,7 +320,6 @@ int len) { struct gsm48_auth_req *ar; - int parse_res; len -= (const char *)&gh->data[0] - (const char *)gh; @@ -629,7 +628,7 @@ static int hnb_write_cb(struct osmo_fd *fd, struct msgb *msg) { - struct hnb_test *ctx = fd->data; + /* struct hnb_test *ctx = fd->data; */ struct sctp_sndrcvinfo sinfo = { .sinfo_ppid = htonl(msgb_sctp_ppid(msg)), .sinfo_stream = 0, -- To view, visit https://gerrit.osmocom.org/c/osmo-iuh/+/22169 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: master Gerrit-Change-Id: I12870a1cf2462b7cc2868a54f58416e03a856084 Gerrit-Change-Number: 22169 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 13:38:28 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 14 Jan 2021 13:38:28 +0000 Subject: Change in osmo-iuh[master]: tests/hnb-test: Fix signedness of imsi_buf In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-iuh/+/22170 ) Change subject: tests/hnb-test: Fix signedness of imsi_buf ...................................................................... tests/hnb-test: Fix signedness of imsi_buf Change-Id: I3b0a6218ac6242d03642972d5b244815ce9d97a0 --- M src/tests/hnb-test.c 1 file changed, 2 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/tests/hnb-test.c b/src/tests/hnb-test.c index 4b726fa..6b9985f 100644 --- a/src/tests/hnb-test.c +++ b/src/tests/hnb-test.c @@ -112,7 +112,7 @@ struct msgb *msg; int rc, imsi_len; - char imsi_buf[16]; + uint8_t imsi_buf[16]; UERegisterRequest_t request_out; UERegisterRequestIEs_t request; @@ -121,7 +121,7 @@ request.uE_Identity.present = UE_Identity_PR_iMSI; imsi_len = ranap_imsi_encode(imsi_buf, sizeof(imsi_buf), imsi_str); - OCTET_STRING_fromBuf(&request.uE_Identity.choice.iMSI, imsi_buf, imsi_len); + OCTET_STRING_fromBuf(&request.uE_Identity.choice.iMSI, (const char*)imsi_buf, imsi_len); request.registration_Cause = Registration_Cause_normal; request.uE_Capabilities.access_stratum_release_indicator = Access_stratum_release_indicator_rel_6; -- To view, visit https://gerrit.osmocom.org/c/osmo-iuh/+/22170 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: master Gerrit-Change-Id: I3b0a6218ac6242d03642972d5b244815ce9d97a0 Gerrit-Change-Number: 22170 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 13:38:28 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 14 Jan 2021 13:38:28 +0000 Subject: Change in osmo-iuh[master]: tests/hnb-test: check return code of hnbap_encode_ueregisterrequesties In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-iuh/+/22171 ) Change subject: tests/hnb-test: check return code of hnbap_encode_ueregisterrequesties ...................................................................... tests/hnb-test: check return code of hnbap_encode_ueregisterrequesties gcc warns about set but not used variable otherwise. Change-Id: Ia49b7e88a66a4a744c2b14db6331cc0de431f60b --- M src/tests/hnb-test.c 1 file changed, 2 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/tests/hnb-test.c b/src/tests/hnb-test.c index 6b9985f..4696e80 100644 --- a/src/tests/hnb-test.c +++ b/src/tests/hnb-test.c @@ -94,6 +94,7 @@ memset(&dereg, 0, sizeof(dereg)); rc = hnbap_encode_uede_registeries(&dereg, &dereg_ies); + OSMO_ASSERT(rc == 0); msg = hnbap_generate_initiating_message(ProcedureCode_id_UEDe_Register, Criticality_ignore, @@ -129,6 +130,7 @@ memset(&request_out, 0, sizeof(request_out)); rc = hnbap_encode_ueregisterrequesties(&request_out, &request); + OSMO_ASSERT(rc == 0); msg = hnbap_generate_initiating_message(ProcedureCode_id_UERegister, Criticality_reject, -- To view, visit https://gerrit.osmocom.org/c/osmo-iuh/+/22171 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: master Gerrit-Change-Id: Ia49b7e88a66a4a744c2b14db6331cc0de431f60b Gerrit-Change-Number: 22171 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 13:38:29 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 14 Jan 2021 13:38:29 +0000 Subject: Change in osmo-iuh[master]: tests/hnb-test-ranap: Fix incorrect signedness in pointer In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-iuh/+/22172 ) Change subject: tests/hnb-test-ranap: Fix incorrect signedness in pointer ...................................................................... tests/hnb-test-ranap: Fix incorrect signedness in pointer Change-Id: I04b1c0446124d66dae1e8fb99d9b82782d12bde7 --- M src/tests/hnb-test-ranap.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/tests/hnb-test-ranap.c b/src/tests/hnb-test-ranap.c index fe7db48..3db876c 100644 --- a/src/tests/hnb-test-ranap.c +++ b/src/tests/hnb-test-ranap.c @@ -16,7 +16,7 @@ struct ranap_message_s *ranap_msg) { int len; - char *data; + uint8_t *data; RANAP_PermittedIntegrityProtectionAlgorithms_t *algs; RANAP_IntegrityProtectionAlgorithm_t *first_alg; -- To view, visit https://gerrit.osmocom.org/c/osmo-iuh/+/22172 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: master Gerrit-Change-Id: I04b1c0446124d66dae1e8fb99d9b82782d12bde7 Gerrit-Change-Number: 22172 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 13:38:29 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 14 Jan 2021 13:38:29 +0000 Subject: Change in osmo-iuh[master]: tests/hnb-test-ranap: Fix missing include for ranap_bcd_decode In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-iuh/+/22173 ) Change subject: tests/hnb-test-ranap: Fix missing include for ranap_bcd_decode ...................................................................... tests/hnb-test-ranap: Fix missing include for ranap_bcd_decode Change-Id: If8b799777598377048512c338f6384560b445ba3 --- M src/tests/hnb-test-ranap.c 1 file changed, 1 insertion(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/tests/hnb-test-ranap.c b/src/tests/hnb-test-ranap.c index 3db876c..629726b 100644 --- a/src/tests/hnb-test-ranap.c +++ b/src/tests/hnb-test-ranap.c @@ -1,5 +1,6 @@ #include #include +#include #include "hnb-test-layers.h" -- To view, visit https://gerrit.osmocom.org/c/osmo-iuh/+/22173 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: master Gerrit-Change-Id: If8b799777598377048512c338f6384560b445ba3 Gerrit-Change-Number: 22173 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 13:38:30 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 14 Jan 2021 13:38:30 +0000 Subject: Change in osmo-iuh[master]: tests/hnb-test: Fix uninitialized use of rc variable In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-iuh/+/22174 ) Change subject: tests/hnb-test: Fix uninitialized use of rc variable ...................................................................... tests/hnb-test: Fix uninitialized use of rc variable Change-Id: I168e4f7cd48cbaa387e6b05868107250795a0f0c --- M src/tests/hnb-test.c 1 file changed, 3 insertions(+), 4 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/tests/hnb-test.c b/src/tests/hnb-test.c index 4696e80..4650a90 100644 --- a/src/tests/hnb-test.c +++ b/src/tests/hnb-test.c @@ -478,7 +478,7 @@ msg->data, msgb_length(msg), 0, 0); if (dec_ret.code != RC_OK) { LOGP(DMAIN, LOGL_ERROR, "Error in ASN.1 decode\n"); - return rc; + return -EINVAL; } if (pdu->present != HNBAP_PDU_PR_successfulOutcome) { @@ -506,14 +506,13 @@ { RUA_RUA_PDU_t _pdu, *pdu = &_pdu; asn_dec_rval_t dec_ret; - int rc; memset(pdu, 0, sizeof(*pdu)); dec_ret = aper_decode(NULL, &asn_DEF_RUA_RUA_PDU, (void **) &pdu, msg->data, msgb_length(msg), 0, 0); if (dec_ret.code != RC_OK) { LOGP(DMAIN, LOGL_ERROR, "Error in ASN.1 decode\n"); - return rc; + return -EINVAL; } switch (pdu->present) { @@ -560,7 +559,7 @@ break; } - return rc; + return 0; } static int hnb_read_cb(struct osmo_fd *fd) -- To view, visit https://gerrit.osmocom.org/c/osmo-iuh/+/22174 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: master Gerrit-Change-Id: I168e4f7cd48cbaa387e6b05868107250795a0f0c Gerrit-Change-Number: 22174 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 13:38:31 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 14 Jan 2021 13:38:31 +0000 Subject: Change in osmo-iuh[master]: tests/hnb-test: Fix signedness of assigned pointer In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-iuh/+/22175 ) Change subject: tests/hnb-test: Fix signedness of assigned pointer ...................................................................... tests/hnb-test: Fix signedness of assigned pointer Change-Id: I320ad86b83b0308b43489e8d95f63d6ed55821b5 --- M src/tests/hnb-test.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/tests/hnb-test.c b/src/tests/hnb-test.c index 4650a90..7824858 100644 --- a/src/tests/hnb-test.c +++ b/src/tests/hnb-test.c @@ -667,7 +667,7 @@ asn1_u8_to_str(&request.rac, &rac, rac); asn1_u28_to_bitstring(&request.cellIdentity, &cid, cid); - request.hnB_Identity.hNB_Identity_Info.buf = identity; + request.hnB_Identity.hNB_Identity_Info.buf = (uint8_t*) identity; request.hnB_Identity.hNB_Identity_Info.size = strlen(identity); request.plmNidentity.buf = plmn; -- To view, visit https://gerrit.osmocom.org/c/osmo-iuh/+/22175 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: master Gerrit-Change-Id: I320ad86b83b0308b43489e8d95f63d6ed55821b5 Gerrit-Change-Number: 22175 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 13:38:32 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 14 Jan 2021 13:38:32 +0000 Subject: Change in osmo-iuh[master]: tests/hnb-test: Initialize logging with existing struct log_info In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-iuh/+/22176 ) Change subject: tests/hnb-test: Initialize logging with existing struct log_info ...................................................................... tests/hnb-test: Initialize logging with existing struct log_info Change-Id: Ic92e60dda41a9e4d139294b1e851fff5c4f26143 --- M src/tests/hnb-test.c 1 file changed, 2 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/tests/hnb-test.c b/src/tests/hnb-test.c index 7824858..e6fa7ba 100644 --- a/src/tests/hnb-test.c +++ b/src/tests/hnb-test.c @@ -941,6 +941,8 @@ tall_hnb_ctx = talloc_named_const(NULL, 0, "hnb_context"); + osmo_init_logging2(tall_hnb_ctx, &hnb_test_log_info); + vty_init(&vty_info); hnbtest_vty_init(); -- To view, visit https://gerrit.osmocom.org/c/osmo-iuh/+/22176 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: master Gerrit-Change-Id: Ic92e60dda41a9e4d139294b1e851fff5c4f26143 Gerrit-Change-Number: 22176 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 13:38:32 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 14 Jan 2021 13:38:32 +0000 Subject: Change in osmo-iuh[master]: tests/hnb-test: Disable building unsued code In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-iuh/+/22177 ) Change subject: tests/hnb-test: Disable building unsued code ...................................................................... tests/hnb-test: Disable building unsued code Change-Id: I17f20cea8aa63ed79168653292b99c90b8c03caf --- M src/tests/hnb-test.c 1 file changed, 2 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/tests/hnb-test.c b/src/tests/hnb-test.c index e6fa7ba..acd8b13 100644 --- a/src/tests/hnb-test.c +++ b/src/tests/hnb-test.c @@ -78,6 +78,7 @@ struct msgb *rua_new_udt(struct msgb *inmsg); +#if 0 static int hnb_test_ue_de_register_tx(struct hnb_test *hnb_test) { struct msgb *msg; @@ -107,6 +108,7 @@ return osmo_wqueue_enqueue(&hnb_test->wqueue, msg); } +#endif static int hnb_test_ue_register_tx(struct hnb_test *hnb_test, const char *imsi_str) { -- To view, visit https://gerrit.osmocom.org/c/osmo-iuh/+/22177 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: master Gerrit-Change-Id: I17f20cea8aa63ed79168653292b99c90b8c03caf Gerrit-Change-Number: 22177 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 13:39:10 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 14 Jan 2021 13:39:10 +0000 Subject: Change in osmo-pcu[master]: Workaround ASan false positive runtime errors under some platforms In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22178 ) Change subject: Workaround ASan false positive runtime errors under some platforms ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22178 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I149fb42706501eb33f9c6fe48f76a03ddee5954a Gerrit-Change-Number: 22178 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 14 Jan 2021 13:39:10 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 13:39:58 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 14 Jan 2021 13:39:58 +0000 Subject: Change in osmo-pcu[master]: Split PCU global PCU object from BTS object In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22162 ) Change subject: Split PCU global PCU object from BTS object ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22162 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I88e3c6471b80245ce3798223f1a61190f14aa840 Gerrit-Change-Number: 22162 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 14 Jan 2021 13:39:58 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 13:40:18 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 14 Jan 2021 13:40:18 +0000 Subject: Change in osmo-pcu[master]: Move T_defs_pcu from BTS to PCU object In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22179 ) Change subject: Move T_defs_pcu from BTS to PCU object ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22179 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I0cac5c12dff2e90b52d00383a00b4b94a9603a0a Gerrit-Change-Number: 22179 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 14 Jan 2021 13:40:18 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 13:40:42 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 14 Jan 2021 13:40:42 +0000 Subject: Change in osmo-pcu[master]: Move force_two_phase field from BTS to PCU In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22180 ) Change subject: Move force_two_phase field from BTS to PCU ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22180 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I68a6e032f725cde87992b99f039c5280e912faf7 Gerrit-Change-Number: 22180 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 14 Jan 2021 13:40:42 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 13:41:21 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 14 Jan 2021 13:41:21 +0000 Subject: Change in osmo-pcu[master]: Move alpha,gamma fields from BTS to PCU In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22181 ) Change subject: Move alpha,gamma fields from BTS to PCU ...................................................................... Patch Set 1: For this one I'm not entirely sure if there wouldn't be use cases where an operator wants to tune it differently for each BTS. -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22181 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I2fdd9c8a7393157183fff64084bb10e2a3b1dc63 Gerrit-Change-Number: 22181 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-Comment-Date: Thu, 14 Jan 2021 13:41:21 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 13:41:35 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 14 Jan 2021 13:41:35 +0000 Subject: Change in osmo-pcu[master]: Move dl_tbf_preemptive_retransmission field from BTS to PCU In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22182 ) Change subject: Move dl_tbf_preemptive_retransmission field from BTS to PCU ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22182 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I3ab32fcafe83f3ecb116a5b8a05f58f3fddc5451 Gerrit-Change-Number: 22182 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 14 Jan 2021 13:41:35 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 13:42:16 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 14 Jan 2021 13:42:16 +0000 Subject: Change in osmo-pcu[master]: Move dl_arq_type field from BTS to PCU In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22183 ) Change subject: Move dl_arq_type field from BTS to PCU ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22183 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I0b82ab59edd58d60e5581c707dc49f58de0ba203 Gerrit-Change-Number: 22183 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 14 Jan 2021 13:42:16 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 13:43:01 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 14 Jan 2021 13:43:01 +0000 Subject: Change in osmo-pcu[master]: Move cs_adj* fields from BTS to PCU In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22184 ) Change subject: Move cs_adj* fields from BTS to PCU ...................................................................... Patch Set 1: Code-Review+1 possibly also something that people mgiht want to change per BTS, but IMHO unlikely. -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22184 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I2b00a83279dccd4feeeeb95e34878c4405e7972c Gerrit-Change-Number: 22184 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 14 Jan 2021 13:43:01 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 13:43:16 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 14 Jan 2021 13:43:16 +0000 Subject: Change in osmo-pcu[master]: Move cs_downgrade_threshold field from BTS to PCU In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22185 ) Change subject: Move cs_downgrade_threshold field from BTS to PCU ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22185 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I3e1c65eb3cccff565d5d84588bdce93a47909a0f Gerrit-Change-Number: 22185 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 14 Jan 2021 13:43:16 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 13:43:26 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 14 Jan 2021 13:43:26 +0000 Subject: Change in osmo-pcu[master]: Move ns_dialect field from BTS to PCU In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22187 ) Change subject: Move ns_dialect field from BTS to PCU ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22187 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Iffb22b776b91f93d6d2a7ccfa47deeecc22c33f0 Gerrit-Change-Number: 22187 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 14 Jan 2021 13:43:26 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 13:43:47 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 14 Jan 2021 13:43:47 +0000 Subject: Change in osmo-pcu[master]: Move fc_* fields from BTS to PCU In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22188 ) Change subject: Move fc_* fields from BTS to PCU ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22188 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I816d49e732d0fc7a3c9aa1f0e9a83b83d25e6a32 Gerrit-Change-Number: 22188 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 14 Jan 2021 13:43:47 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 13:44:04 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 14 Jan 2021 13:44:04 +0000 Subject: Change in osmo-pcu[master]: tests/tbf: Allocate PCU per test instead of globally In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22189 ) Change subject: tests/tbf: Allocate PCU per test instead of globally ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22189 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I18e2fe7dd1cc5940570252a2a6a106de49d8a7dd Gerrit-Change-Number: 22189 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 14 Jan 2021 13:44:04 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 13:44:22 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 14 Jan 2021 13:44:22 +0000 Subject: Change in osmo-pcu[master]: Move ws_* fields from BTS to PCU In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22190 ) Change subject: Move ws_* fields from BTS to PCU ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22190 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I997bc52f0d924c8f2a0b1d6cf23af98828ad4258 Gerrit-Change-Number: 22190 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 14 Jan 2021 13:44:22 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 13:45:21 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 14 Jan 2021 13:45:21 +0000 Subject: Change in osmo-pcu[master]: Move llc_* fields from BTS to PCU References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22191 ) Change subject: Move llc_* fields from BTS to PCU ...................................................................... Move llc_* fields from BTS to PCU Change-Id: Iffb916e53fdf99164ad07cd19e4b35a64136307e --- M src/bts.cpp M src/bts.h M src/gprs_bssgp_pcu.cpp M src/gprs_ms.c M src/gprs_pcu.c M src/gprs_pcu.h M src/llc.cpp M src/pcu_vty.c M src/tbf_dl.cpp 9 files changed, 34 insertions(+), 65 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/91/22191/1 diff --git a/src/bts.cpp b/src/bts.cpp index 450c04e..92abdbf 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -201,9 +201,6 @@ bts->n3105 = 8; bts->si13_is_set = false; - bts->llc_codel_interval_msec = LLC_CODEL_USE_DEFAULT; - bts->llc_idle_ack_csec = 10; - bts->app_info = NULL; bts->bts = bts_obj; bts->T_defs_bts = T_defs_bts; diff --git a/src/bts.h b/src/bts.h index 87bdf3f..f165a7e 100644 --- a/src/bts.h +++ b/src/bts.h @@ -89,10 +89,6 @@ uint16_t mcs_mask; /* Allowed MCS mask from BTS */ uint8_t initial_cs_dl, initial_cs_ul; uint8_t initial_mcs_dl, initial_mcs_ul; - uint16_t force_llc_lifetime; /* overrides lifetime from SGSN */ - uint32_t llc_discard_csec; - uint32_t llc_idle_ack_csec; - uint32_t llc_codel_interval_msec; /* 0=disabled, -1=use default interval */ /* Timer defintions */ struct osmo_tdef *T_defs_bts; /* timers controlled by BTS, received through PCUIF */ uint8_t n3101; diff --git a/src/gprs_bssgp_pcu.cpp b/src/gprs_bssgp_pcu.cpp index c1a7a7d..1596d67 100644 --- a/src/gprs_bssgp_pcu.cpp +++ b/src/gprs_bssgp_pcu.cpp @@ -676,7 +676,7 @@ uint16_t bucket_time = the_pcu->vty.fc_bucket_time; if (bucket_time == 0) - bucket_time = bts->force_llc_lifetime; + bucket_time = the_pcu->vty.force_llc_lifetime; if (bucket_time == 0xffff) bucket_size = FC_MAX_BUCKET_SIZE; diff --git a/src/gprs_ms.c b/src/gprs_ms.c index 291f0e8..9d303d6 100644 --- a/src/gprs_ms.c +++ b/src/gprs_ms.c @@ -121,7 +121,7 @@ ms_set_mode(ms, GPRS); if (ms->bts) - codel_interval = bts_data(ms->bts)->llc_codel_interval_msec; + codel_interval = the_pcu->vty.llc_codel_interval_msec; if (codel_interval) { if (codel_interval == LLC_CODEL_USE_DEFAULT) diff --git a/src/gprs_pcu.c b/src/gprs_pcu.c index 18c5568..013c026 100644 --- a/src/gprs_pcu.c +++ b/src/gprs_pcu.c @@ -94,6 +94,8 @@ /* TODO: increase them when CRBB decoding is implemented */ pcu->vty.ws_base = 64; pcu->vty.ws_pdch = 0; + pcu->vty.llc_codel_interval_msec = LLC_CODEL_USE_DEFAULT; + pcu->vty.llc_idle_ack_csec = 10; pcu->T_defs = T_defs_pcu; osmo_tdefs_reset(pcu->T_defs); diff --git a/src/gprs_pcu.h b/src/gprs_pcu.h index b4e7c13..8fc15dc 100644 --- a/src/gprs_pcu.h +++ b/src/gprs_pcu.h @@ -97,6 +97,10 @@ enum gprs_ns2_dialect ns_dialect; /* Are we talking Gb with IP-SNS (true) or classic Gb? */ uint16_t ws_base; uint16_t ws_pdch; /* increase WS by this value per PDCH */ + uint16_t force_llc_lifetime; /* overrides lifetime from SGSN */ + uint32_t llc_discard_csec; + uint32_t llc_idle_ack_csec; + uint32_t llc_codel_interval_msec; /* 0=disabled, -1=use default interval */ } vty; struct gsmtap_inst *gsmtap; diff --git a/src/llc.cpp b/src/llc.cpp index d1122f5..51cb15a 100644 --- a/src/llc.cpp +++ b/src/llc.cpp @@ -224,8 +224,8 @@ void gprs_llc_queue::calc_pdu_lifetime(BTS *bts, const uint16_t pdu_delay_csec, struct timespec *tv) { uint16_t delay_csec; - if (bts->bts_data()->force_llc_lifetime) - delay_csec = bts->bts_data()->force_llc_lifetime; + if (bts->pcu->vty.force_llc_lifetime) + delay_csec = bts->pcu->vty.force_llc_lifetime; else delay_csec = pdu_delay_csec; diff --git a/src/pcu_vty.c b/src/pcu_vty.c index 5e9da45..0be914b 100644 --- a/src/pcu_vty.c +++ b/src/pcu_vty.c @@ -201,24 +201,24 @@ if (the_pcu->vty.dl_arq_type == EGPRS_ARQ2) vty_out(vty, " egprs dl arq-type arq2%s", VTY_NEWLINE); - if (bts->force_llc_lifetime == 0xffff) + if (the_pcu->vty.force_llc_lifetime == 0xffff) vty_out(vty, " queue lifetime infinite%s", VTY_NEWLINE); - else if (bts->force_llc_lifetime) - vty_out(vty, " queue lifetime %d%s", bts->force_llc_lifetime, + else if (the_pcu->vty.force_llc_lifetime) + vty_out(vty, " queue lifetime %d%s", the_pcu->vty.force_llc_lifetime, VTY_NEWLINE); - if (bts->llc_discard_csec) - vty_out(vty, " queue hysteresis %d%s", bts->llc_discard_csec, + if (the_pcu->vty.llc_discard_csec) + vty_out(vty, " queue hysteresis %d%s", the_pcu->vty.llc_discard_csec, VTY_NEWLINE); - if (bts->llc_idle_ack_csec) - vty_out(vty, " queue idle-ack-delay %d%s", bts->llc_idle_ack_csec, + if (the_pcu->vty.llc_idle_ack_csec) + vty_out(vty, " queue idle-ack-delay %d%s", the_pcu->vty.llc_idle_ack_csec, VTY_NEWLINE); - if (bts->llc_codel_interval_msec == LLC_CODEL_USE_DEFAULT) + if (the_pcu->vty.llc_codel_interval_msec == LLC_CODEL_USE_DEFAULT) vty_out(vty, " queue codel%s", VTY_NEWLINE); - else if (bts->llc_codel_interval_msec == LLC_CODEL_DISABLE) + else if (the_pcu->vty.llc_codel_interval_msec == LLC_CODEL_DISABLE) vty_out(vty, " no queue codel%s", VTY_NEWLINE); else vty_out(vty, " queue codel interval %d%s", - bts->llc_codel_interval_msec/10, VTY_NEWLINE); + the_pcu->vty.llc_codel_interval_msec/10, VTY_NEWLINE); if (the_pcu->alloc_algorithm == alloc_algorithm_a) vty_out(vty, " alloc-algorithm a%s", VTY_NEWLINE); @@ -579,11 +579,8 @@ "queue lifetime <1-65534>", QUEUE_STR LIFETIME_STR "Lifetime in centi-seconds") { - struct gprs_rlcmac_bts *bts = bts_main_data(); uint16_t csec = atoi(argv[0]); - - bts->force_llc_lifetime = csec; - + the_pcu->vty.force_llc_lifetime = csec; return CMD_SUCCESS; } @@ -593,10 +590,7 @@ "queue lifetime infinite", QUEUE_STR LIFETIME_STR "Infinite lifetime") { - struct gprs_rlcmac_bts *bts = bts_main_data(); - - bts->force_llc_lifetime = 0xffff; - + the_pcu->vty.force_llc_lifetime = 0xffff; return CMD_SUCCESS; } @@ -607,10 +601,7 @@ NO_STR QUEUE_STR "Disable lifetime limit of LLC frame (use value given " "by SGSN)\n") { - struct gprs_rlcmac_bts *bts = bts_main_data(); - - bts->force_llc_lifetime = 0; - + the_pcu->vty.force_llc_lifetime = 0; return CMD_SUCCESS; } @@ -623,11 +614,8 @@ "queue hysteresis <1-65535>", QUEUE_STR QUEUE_HYSTERESIS_STR "Hysteresis in centi-seconds") { - struct gprs_rlcmac_bts *bts = bts_main_data(); uint16_t csec = atoi(argv[0]); - - bts->llc_discard_csec = csec; - + the_pcu->vty.llc_discard_csec = csec; return CMD_SUCCESS; } @@ -637,10 +625,7 @@ "no queue hysteresis", NO_STR QUEUE_STR QUEUE_HYSTERESIS_STR) { - struct gprs_rlcmac_bts *bts = bts_main_data(); - - bts->llc_discard_csec = 0; - + the_pcu->vty.llc_discard_csec = 0; return CMD_SUCCESS; } @@ -651,10 +636,7 @@ "queue codel", QUEUE_STR QUEUE_CODEL_STR) { - struct gprs_rlcmac_bts *bts = bts_main_data(); - - bts->llc_codel_interval_msec = LLC_CODEL_USE_DEFAULT; - + the_pcu->vty.llc_codel_interval_msec = LLC_CODEL_USE_DEFAULT; return CMD_SUCCESS; } @@ -664,11 +646,8 @@ "queue codel interval <1-1000>", QUEUE_STR QUEUE_CODEL_STR "Specify interval\n" "Interval in centi-seconds") { - struct gprs_rlcmac_bts *bts = bts_main_data(); uint16_t csec = atoi(argv[0]); - - bts->llc_codel_interval_msec = 10*csec; - + the_pcu->vty.llc_codel_interval_msec = 10*csec; return CMD_SUCCESS; } @@ -678,10 +657,7 @@ "no queue codel", NO_STR QUEUE_STR QUEUE_CODEL_STR) { - struct gprs_rlcmac_bts *bts = bts_main_data(); - - bts->llc_codel_interval_msec = LLC_CODEL_DISABLE; - + the_pcu->vty.llc_codel_interval_msec = LLC_CODEL_DISABLE; return CMD_SUCCESS; } @@ -694,11 +670,8 @@ QUEUE_STR QUEUE_IDLE_ACK_STR "Idle ACK delay in centi-seconds", CMD_ATTR_IMMEDIATE) { - struct gprs_rlcmac_bts *bts = bts_main_data(); uint16_t csec = atoi(argv[0]); - - bts->llc_idle_ack_csec = csec; - + the_pcu->vty.llc_idle_ack_csec = csec; return CMD_SUCCESS; } @@ -708,10 +681,7 @@ NO_STR QUEUE_STR QUEUE_IDLE_ACK_STR, CMD_ATTR_IMMEDIATE) { - struct gprs_rlcmac_bts *bts = bts_main_data(); - - bts->llc_idle_ack_csec = 0; - + the_pcu->vty.llc_idle_ack_csec = 0; return CMD_SUCCESS; } diff --git a/src/tbf_dl.cpp b/src/tbf_dl.cpp index 87b8ba1..4f6a4e5b 100644 --- a/src/tbf_dl.cpp +++ b/src/tbf_dl.cpp @@ -202,9 +202,9 @@ void gprs_rlcmac_dl_tbf::start_llc_timer() { - if (bts_data()->llc_idle_ack_csec > 0) { + if (the_pcu->vty.llc_idle_ack_csec > 0) { struct timespec tv; - csecs_to_timespec(bts_data()->llc_idle_ack_csec, &tv); + csecs_to_timespec(the_pcu->vty.llc_idle_ack_csec, &tv); osmo_timer_schedule(&m_llc_timer, tv.tv_sec, tv.tv_nsec / 1000); } } @@ -348,8 +348,8 @@ const unsigned keep_small_thresh = 60; const MetaInfo *info; - if (bts_data()->llc_discard_csec) - csecs_to_timespec(bts_data()->llc_discard_csec, &hyst_delta); + if (the_pcu->vty.llc_discard_csec) + csecs_to_timespec(the_pcu->vty.llc_discard_csec, &hyst_delta); osmo_clock_gettime(CLOCK_MONOTONIC, &tv_now); timespecadd(&tv_now, &hyst_delta, &tv_now2); -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22191 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Iffb916e53fdf99164ad07cd19e4b35a64136307e Gerrit-Change-Number: 22191 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 13:45:23 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 14 Jan 2021 13:45:23 +0000 Subject: Change in libosmocore[master]: bssgp_rim: move bssgp_parse_rim_ri and bssgp_create_rim_ri to gprs_bs... In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21863 ) Change subject: bssgp_rim: move bssgp_parse_rim_ri and bssgp_create_rim_ri to gprs_bssgp_rim ...................................................................... Patch Set 11: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21863 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Icd667f41d5735de56cd9fb257670337c679dd258 Gerrit-Change-Number: 21863 Gerrit-PatchSet: 11 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 14 Jan 2021 13:45:23 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 13:47:50 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 14 Jan 2021 13:47:50 +0000 Subject: Change in osmo-pcu[master]: Move alpha,gamma fields from BTS to PCU In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22181 ) Change subject: Move alpha,gamma fields from BTS to PCU ...................................................................... Patch Set 1: > Patch Set 1: > > For this one I'm not entirely sure if there wouldn't be use cases where an operator wants to tune it differently for each BTS. In that case (applies for al lconfig files) we need to either: * Pass the value during info_ind in PCUIF * Have a "bts" config node in PCU Since we don't have any of that, as of current code, the configs are global (per PCU). If at any point we want to have it per BTS, the stated above needs to be implemented. So for now we have configs where they belong as per data structures, otherwise it's a complete mess. -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22181 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I2fdd9c8a7393157183fff64084bb10e2a3b1dc63 Gerrit-Change-Number: 22181 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-Comment-Date: Thu, 14 Jan 2021 13:47:50 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 13:49:40 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 14 Jan 2021 13:49:40 +0000 Subject: Change in osmo-pcu[master]: Workaround ASan false positive runtime errors under some platforms In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22178 ) Change subject: Workaround ASan false positive runtime errors under some platforms ...................................................................... Workaround ASan false positive runtime errors under some platforms Under some platforms (RPI4, ARM) container older ASan, it will log false positive log errors which will make unit test fail because then output changes: """ pcu_l1_if.cpp:847:2: runtime error: member access within misaligned address 0xb3f0b78c for type 'struct GprsMs', which requires 8 byte alignment """ The pointer is indeed misaligned, but it's not actually a bug, because the pointer is never derreferenced. That happens during llist_for_each_entry operation where it does cast the pointer but it only checks if the list has actually reached the end. To workaround the issue, simply defer casting it by using llist_for_each instead, where the pointer is assigned only in the case it really points to a GprsMS struct. Change-Id: I149fb42706501eb33f9c6fe48f76a03ddee5954a --- M src/pcu_l1_if.cpp M src/pcu_vty_functions.cpp 2 files changed, 7 insertions(+), 4 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/pcu_l1_if.cpp b/src/pcu_l1_if.cpp index 9cc6270..2aea00b 100644 --- a/src/pcu_l1_if.cpp +++ b/src/pcu_l1_if.cpp @@ -840,15 +840,16 @@ static int pcu_rx_app_info_req(struct gsm_pcu_if_app_info_req *app_info_req) { - GprsMs *ms; BTS *bts = BTS::main_bts(); struct gprs_rlcmac_bts *bts_data = bts->bts_data(); + struct llist_head *tmp; LOGP(DL1IF, LOGL_DEBUG, "Application Information Request received: type=0x%08x len=%i\n", app_info_req->application_type, app_info_req->len); bts_data->app_info_pending = 0; - llist_for_each_entry(ms, bts->ms_store().ms_list(), list) { + llist_for_each(tmp, bts->ms_store().ms_list()) { + GprsMs *ms = llist_entry(tmp, typeof(*ms), list); if (!ms_dl_tbf(ms)) continue; bts_data->app_info_pending++; diff --git a/src/pcu_vty_functions.cpp b/src/pcu_vty_functions.cpp index 92be77b..0276b3e 100644 --- a/src/pcu_vty_functions.cpp +++ b/src/pcu_vty_functions.cpp @@ -207,10 +207,12 @@ int pcu_vty_show_ms_all(struct vty *vty, struct gprs_rlcmac_bts *bts_data) { BTS *bts = bts_data->bts; - GprsMs *ms_iter; + struct llist_head *tmp; - llist_for_each_entry(ms_iter, bts->ms_store().ms_list(), list) + llist_for_each(tmp, bts->ms_store().ms_list()) { + GprsMs *ms_iter = llist_entry(tmp, typeof(*ms_iter), list); show_ms(vty, ms_iter); + } return CMD_SUCCESS; } -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22178 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I149fb42706501eb33f9c6fe48f76a03ddee5954a Gerrit-Change-Number: 22178 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 13:53:44 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 14 Jan 2021 13:53:44 +0000 Subject: Change in osmo-pcu[master]: Move alpha,gamma fields from BTS to PCU In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22181 ) Change subject: Move alpha,gamma fields from BTS to PCU ...................................................................... Patch Set 1: > Since we don't have any of that, as of current code, the configs are global (per PCU). If at any point we want to have it per BTS, the stated above needs to be implemented. > > So for now we have configs where they belong as per data structures, otherwise it's a complete mess. I would argue that we should indeed have the struct/object members where they logically belong. Whaever the VTY has supported so far or does support today should not prevent us from having the config settings where they belong from a logical point of view. In the worst case, the current VTY code would have to iterate over all BTSs and sed the value N times. -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22181 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I2fdd9c8a7393157183fff64084bb10e2a3b1dc63 Gerrit-Change-Number: 22181 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-Comment-Date: Thu, 14 Jan 2021 13:53:44 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 13:59:12 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 14 Jan 2021 13:59:12 +0000 Subject: Change in osmo-pcu[master]: Move llc_* fields from BTS to PCU In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22191 ) Change subject: Move llc_* fields from BTS to PCU ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22191 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Iffb916e53fdf99164ad07cd19e4b35a64136307e Gerrit-Change-Number: 22191 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 14 Jan 2021 13:59:12 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 13:59:47 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 14 Jan 2021 13:59:47 +0000 Subject: Change in osmo-pcu[master]: Move (m)cs_lqual_ranges fields from BTS to PCU In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22186 ) Change subject: Move (m)cs_lqual_ranges fields from BTS to PCU ...................................................................... Patch Set 1: this is also something that I can very well imagine an operator wanting to tune per BTS -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22186 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I39e2fc7e229851610d797c594d84902af6079411 Gerrit-Change-Number: 22186 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-Comment-Date: Thu, 14 Jan 2021 13:59:47 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 14:58:26 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 14 Jan 2021 14:58:26 +0000 Subject: Change in osmo-mgw[master]: contrib/jenkins: don't build osmo-gsm-manuals In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/22145 ) Change subject: contrib/jenkins: don't build osmo-gsm-manuals ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/22145 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Idb179c5618797bb245fad857fa79242c43d539a2 Gerrit-Change-Number: 22145 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 14 Jan 2021 14:58:26 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 14:58:30 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 14 Jan 2021 14:58:30 +0000 Subject: Change in osmo-mgw[master]: contrib/jenkins: don't build osmo-gsm-manuals In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/22145 ) Change subject: contrib/jenkins: don't build osmo-gsm-manuals ...................................................................... contrib/jenkins: don't build osmo-gsm-manuals Related: OS#4912 Change-Id: Idb179c5618797bb245fad857fa79242c43d539a2 --- M contrib/jenkins.sh 1 file changed, 0 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index 96880d4..c25fdb9 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -36,7 +36,6 @@ # Additional configure options and depends CONFIG="" if [ "$WITH_MANUALS" = "1" ]; then - osmo-build-dep.sh osmo-gsm-manuals CONFIG="--enable-manuals" fi -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/22145 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Idb179c5618797bb245fad857fa79242c43d539a2 Gerrit-Change-Number: 22145 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 14:58:38 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 14 Jan 2021 14:58:38 +0000 Subject: Change in osmo-sgsn[master]: contrib/jenkins: don't build osmo-gsm-manuals In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22146 ) Change subject: contrib/jenkins: don't build osmo-gsm-manuals ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22146 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I3fc43b1afb7cdfd2b78c062e36ccf2491700f988 Gerrit-Change-Number: 22146 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 14 Jan 2021 14:58:38 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 14:58:41 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 14 Jan 2021 14:58:41 +0000 Subject: Change in osmo-sgsn[master]: contrib/jenkins: don't build osmo-gsm-manuals In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22146 ) Change subject: contrib/jenkins: don't build osmo-gsm-manuals ...................................................................... contrib/jenkins: don't build osmo-gsm-manuals Related: OS#4912 Change-Id: I3fc43b1afb7cdfd2b78c062e36ccf2491700f988 --- M contrib/jenkins.sh 1 file changed, 0 insertions(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index 87d8601..2325897 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -50,7 +50,6 @@ # Additional configure options and depends CONFIG="" if [ "$WITH_MANUALS" = "1" ]; then - osmo-build-dep.sh osmo-gsm-manuals CONFIG="--enable-manuals" fi -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22146 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I3fc43b1afb7cdfd2b78c062e36ccf2491700f988 Gerrit-Change-Number: 22146 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 14:58:47 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 14 Jan 2021 14:58:47 +0000 Subject: Change in osmo-bsc[master]: contrib/jenkins: don't build osmo-gsm-manuals In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22139 ) Change subject: contrib/jenkins: don't build osmo-gsm-manuals ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22139 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: If655798bb47c332f7decb74ed19524b3014f69b4 Gerrit-Change-Number: 22139 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 14 Jan 2021 14:58:47 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 14:58:50 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 14 Jan 2021 14:58:50 +0000 Subject: Change in osmo-bsc[master]: contrib/jenkins: don't build osmo-gsm-manuals In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22139 ) Change subject: contrib/jenkins: don't build osmo-gsm-manuals ...................................................................... contrib/jenkins: don't build osmo-gsm-manuals Related: OS#4912 Change-Id: If655798bb47c332f7decb74ed19524b3014f69b4 --- M contrib/jenkins.sh 1 file changed, 0 insertions(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index 11e4251..0b978dc 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -39,7 +39,6 @@ # Additional configure options and depends CONFIG="" if [ "$WITH_MANUALS" = "1" ]; then - osmo-build-dep.sh osmo-gsm-manuals CONFIG="--enable-manuals" fi -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22139 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: If655798bb47c332f7decb74ed19524b3014f69b4 Gerrit-Change-Number: 22139 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 14:58:55 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 14 Jan 2021 14:58:55 +0000 Subject: Change in osmo-bts[master]: contrib/jenkins: don't build osmo-gsm-manuals In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/22140 ) Change subject: contrib/jenkins: don't build osmo-gsm-manuals ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22140 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8ab46680f9b753408e7ac6ef1635f997747325e5 Gerrit-Change-Number: 22140 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 14 Jan 2021 14:58:55 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 14:58:58 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 14 Jan 2021 14:58:58 +0000 Subject: Change in osmo-bts[master]: contrib/jenkins: don't build osmo-gsm-manuals In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/22140 ) Change subject: contrib/jenkins: don't build osmo-gsm-manuals ...................................................................... contrib/jenkins: don't build osmo-gsm-manuals Related: OS#4912 Change-Id: I8ab46680f9b753408e7ac6ef1635f997747325e5 --- M contrib/jenkins_common.sh 1 file changed, 0 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/contrib/jenkins_common.sh b/contrib/jenkins_common.sh index 085ca1e..0c0060a 100644 --- a/contrib/jenkins_common.sh +++ b/contrib/jenkins_common.sh @@ -43,7 +43,6 @@ conf_flags="$*" if [ "$WITH_MANUALS" = "1" ]; then conf_flags="$conf_flags --enable-manuals" - osmo-build-dep.sh osmo-gsm-manuals export PATH="$inst/bin:$PATH" fi -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22140 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8ab46680f9b753408e7ac6ef1635f997747325e5 Gerrit-Change-Number: 22140 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 14:59:03 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 14 Jan 2021 14:59:03 +0000 Subject: Change in osmo-msc[master]: contrib/jenkins: don't build osmo-gsm-manuals In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/22151 ) Change subject: contrib/jenkins: don't build osmo-gsm-manuals ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/22151 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: I0f4d3b444c22c772498299f7d209fc28080af8c3 Gerrit-Change-Number: 22151 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 14 Jan 2021 14:59:03 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 14:59:06 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 14 Jan 2021 14:59:06 +0000 Subject: Change in osmo-msc[master]: contrib/jenkins: don't build osmo-gsm-manuals In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/22151 ) Change subject: contrib/jenkins: don't build osmo-gsm-manuals ...................................................................... contrib/jenkins: don't build osmo-gsm-manuals Related: OS#4912 Change-Id: I0f4d3b444c22c772498299f7d209fc28080af8c3 --- M contrib/jenkins.sh 1 file changed, 0 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index baeba59..fb858d7 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -51,7 +51,6 @@ # Additional configure options and depends CONFIG="" if [ "$WITH_MANUALS" = "1" ]; then - osmo-build-dep.sh osmo-gsm-manuals CONFIG="--enable-manuals" fi -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/22151 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: I0f4d3b444c22c772498299f7d209fc28080af8c3 Gerrit-Change-Number: 22151 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 16:29:48 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 14 Jan 2021 16:29:48 +0000 Subject: Change in osmo-bsc[master]: power_control: fix: properly initialize per-lchan BS power References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22192 ) Change subject: power_control: fix: properly initialize per-lchan BS power ...................................................................... power_control: fix: properly initialize per-lchan BS power My assumption that lchan_reset() is called on CHANnel ACTIVation was wrong - it's actually called on CHANnel RELease. Therefore (re)setting per-lchan BS power value must be done in the other function that is responsible for channel activation. Change-Id: I056c448ce017458dc4a004374ddca86d44dc35b4 Related: SYS#4918 --- M src/osmo-bsc/lchan_fsm.c 1 file changed, 6 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/92/22192/1 diff --git a/src/osmo-bsc/lchan_fsm.c b/src/osmo-bsc/lchan_fsm.c index 5a42527..43916b4 100644 --- a/src/osmo-bsc/lchan_fsm.c +++ b/src/osmo-bsc/lchan_fsm.c @@ -411,12 +411,6 @@ .release.rr_cause = GSM48_RR_CAUSE_NORMAL, }; - - /* Default BS Power reduction value (in 2 dB steps) */ - if (bts->bs_power_ctrl.mode == GSM_PWR_CTRL_MODE_DYN_BTS) - lchan->bs_power = bts->bs_power_ctrl.bs_power_max_db / 2; - else - lchan->bs_power = bts->bs_power_ctrl.bs_power_val_db / 2; } static void lchan_fsm_unused_onenter(struct osmo_fsm_inst *fi, uint32_t prev_state) @@ -595,6 +589,12 @@ /* Upon last entering the UNUSED state, from lchan_reset(): * - bs_power is still zero, 0dB reduction, output power = Pn. * - TA is still zero, to be determined by RACH. */ + + /* Default BS Power reduction value (in 2 dB steps) */ + if (bts->bs_power_ctrl.mode == GSM_PWR_CTRL_MODE_DYN_BTS) + lchan->bs_power = bts->bs_power_ctrl.bs_power_max_db / 2; + else + lchan->bs_power = bts->bs_power_ctrl.bs_power_val_db / 2; } if (info->chan_mode == GSM48_CMODE_SPEECH_AMR) { -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22192 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I056c448ce017458dc4a004374ddca86d44dc35b4 Gerrit-Change-Number: 22192 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 16:38:45 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 14 Jan 2021 16:38:45 +0000 Subject: Change in osmo-bsc[master]: power_control: fix: properly initialize per-lchan BS power In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bsc/+/22192 to look at the new patch set (#2). Change subject: power_control: fix: properly initialize per-lchan BS power ...................................................................... power_control: fix: properly initialize per-lchan BS power My assumption that lchan_reset() is called on CHANnel ACTIVation was wrong - it's actually called on CHANnel RELease. Therefore (re)setting per-lchan BS power value must be done in the other function that is responsible for channel activation. Change-Id: I056c448ce017458dc4a004374ddca86d44dc35b4 Related: SYS#4918 --- M src/osmo-bsc/lchan_fsm.c 1 file changed, 6 insertions(+), 9 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/92/22192/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22192 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I056c448ce017458dc4a004374ddca86d44dc35b4 Gerrit-Change-Number: 22192 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 16:45:09 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 14 Jan 2021 16:45:09 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: add utilities to send and parse BSSGP rim PDUs In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, pespin, fixeria, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22046 to look at the new patch set (#5). Change subject: gprs_bssgp: add utilities to send and parse BSSGP rim PDUs ...................................................................... gprs_bssgp: add utilities to send and parse BSSGP rim PDUs At the moment libosmogb offers no convinient way to send RIM PDUs. Also parsing an incoming RIM messages into destination, source routing info and RIM container is not available. Change-Id: I18134fd9938040d2facb6beee3732628b167ce8c Related: SYS#5103 --- M include/osmocom/gprs/gprs_bssgp.h M include/osmocom/gprs/gprs_bssgp_rim.h M src/gb/gprs_bssgp.c M src/gb/gprs_bssgp_rim.c M src/gb/gprs_bssgp_util.c M src/gb/libosmogb.map 6 files changed, 162 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/46/22046/5 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22046 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I18134fd9938040d2facb6beee3732628b167ce8c Gerrit-Change-Number: 22046 Gerrit-PatchSet: 5 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 16:45:51 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 14 Jan 2021 16:45:51 +0000 Subject: Change in osmo-sgsn[master]: sgsn_rim: Add routing for (GERAN) BSSGP RIM messages In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22110 ) Change subject: sgsn_rim: Add routing for (GERAN) BSSGP RIM messages ...................................................................... Patch Set 2: (1 comment) Thanks for reviewing! https://gerrit.osmocom.org/c/osmo-sgsn/+/22110/1/src/sgsn/sgsn_rim.c File src/sgsn/sgsn_rim.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/22110/1/src/sgsn/sgsn_rim.c at 46 PS1, Line 46: rc = bssgp_parse_rim_ri(&dest_rim_ri, pdu.routing_info_dest, pdu.routing_info_dest_len); > I think all this should be done by bssgp_parse_rim_pdu and stored inside pdu, as I commented in the [?] I noticed this too, I forgot to restructure this part. Sorry. -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22110 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I6fde8ab8955660b48000ca1b650cfc7c7b2e24ba Gerrit-Change-Number: 22110 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 14 Jan 2021 16:45:51 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 16:47:37 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 14 Jan 2021 16:47:37 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: add utilities to send and parse BSSGP rim PDUs In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22046 ) Change subject: gprs_bssgp: add utilities to send and parse BSSGP rim PDUs ...................................................................... Patch Set 5: (2 comments) Thanks for reviewing! https://gerrit.osmocom.org/c/libosmocore/+/22046/2/include/osmocom/gprs/gprs_bssgp.h File include/osmocom/gprs/gprs_bssgp.h: https://gerrit.osmocom.org/c/libosmocore/+/22046/2/include/osmocom/gprs/gprs_bssgp.h at 45 PS2, Line 45: struct bssgp_ran_information_pdu { > struct bssgp_ran_information_pdu { [?] Thanks for your input. I see what you mean. I have changed it now for the RIM routing address IEs, but not for the container IE. Shall we parse that one too? However, the SGSN never looks into the container so at least there this would mean to decode the container and re-encode it, but we won't look at the contents there. What do you think? https://gerrit.osmocom.org/c/libosmocore/+/22046/1/include/osmocom/gprs/gprs_bssgp.h File include/osmocom/gprs/gprs_bssgp.h: https://gerrit.osmocom.org/c/libosmocore/+/22046/1/include/osmocom/gprs/gprs_bssgp.h at 45 PS1, Line 45: struct bssgp_ran_information_pdu { > shouldn't this be incorporated into struct osmo_bssgp_prim somehow? Done -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22046 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I18134fd9938040d2facb6beee3732628b167ce8c Gerrit-Change-Number: 22046 Gerrit-PatchSet: 5 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 14 Jan 2021 16:47:37 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 17:13:08 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 14 Jan 2021 17:13:08 +0000 Subject: Change in osmo-bsc[master]: power_control: fix: properly initialize per-lchan BS power In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22192 ) Change subject: power_control: fix: properly initialize per-lchan BS power ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22192 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I056c448ce017458dc4a004374ddca86d44dc35b4 Gerrit-Change-Number: 22192 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 14 Jan 2021 17:13:08 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 17:24:28 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 14 Jan 2021 17:24:28 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: add utilities to send and parse BSSGP rim PDUs In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22046 ) Change subject: gprs_bssgp: add utilities to send and parse BSSGP rim PDUs ...................................................................... Patch Set 5: (2 comments) https://gerrit.osmocom.org/c/libosmocore/+/22046/5/include/osmocom/gprs/gprs_bssgp.h File include/osmocom/gprs/gprs_bssgp.h: https://gerrit.osmocom.org/c/libosmocore/+/22046/5/include/osmocom/gprs/gprs_bssgp.h at 50 PS5, Line 50: const uint8_t *rim_cont; I still don't see why you don't want to use a struct holding a union of container types here, so the entire message can be encoded in one go. Is there some problem I'm not seeing? https://gerrit.osmocom.org/c/libosmocore/+/22046/5/include/osmocom/gprs/gprs_bssgp_rim.h File include/osmocom/gprs/gprs_bssgp_rim.h: https://gerrit.osmocom.org/c/libosmocore/+/22046/5/include/osmocom/gprs/gprs_bssgp_rim.h at 121 PS5, Line 121: struct bssgp_ran_inf_req_rim_cont { Why isn't there a generic container struct containing in a union this struct here and other container types? It can then be passed instead of already-encoded buffer to do encoding in one message. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22046 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I18134fd9938040d2facb6beee3732628b167ce8c Gerrit-Change-Number: 22046 Gerrit-PatchSet: 5 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 14 Jan 2021 17:24:28 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 17:25:49 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 14 Jan 2021 17:25:49 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: add utilities to send and parse BSSGP rim PDUs In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22046 ) Change subject: gprs_bssgp: add utilities to send and parse BSSGP rim PDUs ...................................................................... Patch Set 5: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/22046/2/include/osmocom/gprs/gprs_bssgp.h File include/osmocom/gprs/gprs_bssgp.h: https://gerrit.osmocom.org/c/libosmocore/+/22046/2/include/osmocom/gprs/gprs_bssgp.h at 45 PS2, Line 45: struct bssgp_ran_information_pdu { > Thanks for your input. I see what you mean. [?] You could add a flag to the decode function to avoid decoding it optionally for instance. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22046 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I18134fd9938040d2facb6beee3732628b167ce8c Gerrit-Change-Number: 22046 Gerrit-PatchSet: 5 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 14 Jan 2021 17:25:49 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Comment-In-Reply-To: dexter Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 17:48:02 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 14 Jan 2021 17:48:02 +0000 Subject: Change in libosmocore[master]: NS2: Fix bind selection of SNS NSVCs References: Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22193 ) Change subject: NS2: Fix bind selection of SNS NSVCs ...................................................................... NS2: Fix bind selection of SNS NSVCs The SNS code ignored the link type of the bind and just bound to every bind it could find. This resulted in a segfault when an SNS NSVC tries to send its UDP messages though frame relay. Fixes: OS#4948 Change-Id: Ibb832a39876362d094cce635192f7b4f84dc2b10 --- M src/gb/gprs_ns2_sns.c 1 file changed, 8 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/93/22193/1 diff --git a/src/gb/gprs_ns2_sns.c b/src/gb/gprs_ns2_sns.c index 2cb4293..1958477 100644 --- a/src/gb/gprs_ns2_sns.c +++ b/src/gb/gprs_ns2_sns.c @@ -270,6 +270,8 @@ /* for every bind, create a connection if bind type == IP */ llist_for_each_entry(bind, &nsi->binding, list) { + if (bind->ll != GPRS_NS2_LL_UDP) + continue; /* ignore failed connection */ nsvc = gprs_ns2_ip_connect_inactive(bind, &remote, @@ -299,6 +301,8 @@ /* for every bind, create a connection if bind type == IP */ llist_for_each_entry(bind, &nsi->binding, list) { + if (bind->ll != GPRS_NS2_LL_UDP) + continue; /* ignore failed connection */ nsvc = gprs_ns2_ip_connect_inactive(bind, &remote, @@ -332,6 +336,8 @@ llist_for_each_entry(bind, &nse->nsi->binding, list) { bool found = false; + if (bind->ll != GPRS_NS2_LL_UDP) + continue; llist_for_each_entry(nsvc, &nse->nsvc, list) { if (nsvc->bind != bind) @@ -367,6 +373,8 @@ llist_for_each_entry(bind, &nse->nsi->binding, list) { bool found = false; + if (bind->ll != GPRS_NS2_LL_UDP) + continue; llist_for_each_entry(nsvc, &nse->nsvc, list) { if (nsvc->bind != bind) -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22193 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ibb832a39876362d094cce635192f7b4f84dc2b10 Gerrit-Change-Number: 22193 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 17:56:48 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 14 Jan 2021 17:56:48 +0000 Subject: Change in libosmocore[master]: NS2: Fix bind selection of SNS NSVCs In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22193 ) Change subject: NS2: Fix bind selection of SNS NSVCs ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22193 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ibb832a39876362d094cce635192f7b4f84dc2b10 Gerrit-Change-Number: 22193 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Thu, 14 Jan 2021 17:56:48 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 17:58:01 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 14 Jan 2021 17:58:01 +0000 Subject: Change in libosmocore[master]: fixup: configure.ac: fix: do not define HAVE_NEON unconditionally References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22194 ) Change subject: fixup: configure.ac: fix: do not define HAVE_NEON unconditionally ...................................................................... fixup: configure.ac: fix: do not define HAVE_NEON unconditionally Instead of removing AC_DEFINE(), I should have used AS_IF(). Change-Id: I20e256bd6fdb0256c95ab7073e07b7437af6a12f Fixes: I761a7afaeda9d232ac26edff47949e911f8f1f0c --- M configure.ac 1 file changed, 3 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/94/22194/1 diff --git a/configure.ac b/configure.ac index c062e5f..32ea7ca 100644 --- a/configure.ac +++ b/configure.ac @@ -424,6 +424,9 @@ [Enable ARM NEON instructions support [default=no]] )], [neon=$enableval], [neon="no"]) +AS_IF([test "x$neon" = "xyes"], [ + AC_DEFINE([HAVE_NEON],, [Support ARM NEON instructions]) +]) AC_MSG_CHECKING([whether to enable ARM NEON instructions support]) AC_MSG_RESULT([$neon]) AM_CONDITIONAL(HAVE_NEON, [test "x$neon" != "xno"]) -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22194 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I20e256bd6fdb0256c95ab7073e07b7437af6a12f Gerrit-Change-Number: 22194 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 18:06:28 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Thu, 14 Jan 2021 18:06:28 +0000 Subject: Change in libosmocore[master]: fixup: configure.ac: fix: do not define HAVE_NEON unconditionally In-Reply-To: References: Message-ID: Hoernchen has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22194 ) Change subject: fixup: configure.ac: fix: do not define HAVE_NEON unconditionally ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22194 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I20e256bd6fdb0256c95ab7073e07b7437af6a12f Gerrit-Change-Number: 22194 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Thu, 14 Jan 2021 18:06:28 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 18:06:31 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Thu, 14 Jan 2021 18:06:31 +0000 Subject: Change in libosmocore[master]: fixup: configure.ac: fix: do not define HAVE_NEON unconditionally In-Reply-To: References: Message-ID: Hoernchen has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22194 ) Change subject: fixup: configure.ac: fix: do not define HAVE_NEON unconditionally ...................................................................... fixup: configure.ac: fix: do not define HAVE_NEON unconditionally Instead of removing AC_DEFINE(), I should have used AS_IF(). Change-Id: I20e256bd6fdb0256c95ab7073e07b7437af6a12f Fixes: I761a7afaeda9d232ac26edff47949e911f8f1f0c --- M configure.ac 1 file changed, 3 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Hoernchen: Looks good to me, approved diff --git a/configure.ac b/configure.ac index c062e5f..32ea7ca 100644 --- a/configure.ac +++ b/configure.ac @@ -424,6 +424,9 @@ [Enable ARM NEON instructions support [default=no]] )], [neon=$enableval], [neon="no"]) +AS_IF([test "x$neon" = "xyes"], [ + AC_DEFINE([HAVE_NEON],, [Support ARM NEON instructions]) +]) AC_MSG_CHECKING([whether to enable ARM NEON instructions support]) AC_MSG_RESULT([$neon]) AM_CONDITIONAL(HAVE_NEON, [test "x$neon" != "xno"]) -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22194 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I20e256bd6fdb0256c95ab7073e07b7437af6a12f Gerrit-Change-Number: 22194 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 18:09:44 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 14 Jan 2021 18:09:44 +0000 Subject: Change in libosmocore[master]: NS2: Fix bind selection of SNS NSVCs In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22193 ) Change subject: NS2: Fix bind selection of SNS NSVCs ...................................................................... NS2: Fix bind selection of SNS NSVCs The SNS code ignored the link type of the bind and just bound to every bind it could find. This resulted in a segfault when an SNS NSVC tries to send its UDP messages though frame relay. Fixes: OS#4948 Change-Id: Ibb832a39876362d094cce635192f7b4f84dc2b10 --- M src/gb/gprs_ns2_sns.c 1 file changed, 8 insertions(+), 0 deletions(-) Approvals: lynxis lazus: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/gb/gprs_ns2_sns.c b/src/gb/gprs_ns2_sns.c index 2cb4293..1958477 100644 --- a/src/gb/gprs_ns2_sns.c +++ b/src/gb/gprs_ns2_sns.c @@ -270,6 +270,8 @@ /* for every bind, create a connection if bind type == IP */ llist_for_each_entry(bind, &nsi->binding, list) { + if (bind->ll != GPRS_NS2_LL_UDP) + continue; /* ignore failed connection */ nsvc = gprs_ns2_ip_connect_inactive(bind, &remote, @@ -299,6 +301,8 @@ /* for every bind, create a connection if bind type == IP */ llist_for_each_entry(bind, &nsi->binding, list) { + if (bind->ll != GPRS_NS2_LL_UDP) + continue; /* ignore failed connection */ nsvc = gprs_ns2_ip_connect_inactive(bind, &remote, @@ -332,6 +336,8 @@ llist_for_each_entry(bind, &nse->nsi->binding, list) { bool found = false; + if (bind->ll != GPRS_NS2_LL_UDP) + continue; llist_for_each_entry(nsvc, &nse->nsvc, list) { if (nsvc->bind != bind) @@ -367,6 +373,8 @@ llist_for_each_entry(bind, &nse->nsi->binding, list) { bool found = false; + if (bind->ll != GPRS_NS2_LL_UDP) + continue; llist_for_each_entry(nsvc, &nse->nsvc, list) { if (nsvc->bind != bind) -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22193 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ibb832a39876362d094cce635192f7b4f84dc2b10 Gerrit-Change-Number: 22193 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 18:10:55 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 14 Jan 2021 18:10:55 +0000 Subject: Change in osmo-cbc[master]: add link to upstream bug related to custom malloc/free In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22124 ) Change subject: add link to upstream bug related to custom malloc/free ...................................................................... Patch Set 1: Code-Review+2 (1 comment) https://gerrit.osmocom.org/c/osmo-cbc/+/22124/1/src/rest_api.c File src/rest_api.c: https://gerrit.osmocom.org/c/osmo-cbc/+/22124/1/src/rest_api.c at 685 PS1, Line 685: /* See https://github.com/babelouest/ulfius/issues/63 */ > Maybe worth adding the link to configure where ULFIUS_MALLOC_NOT_BROKEN is set too. it's not set anywhere as it is broken :P -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22124 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: If58d307bbdade5d4d7c5e39ada8c14c052d215a9 Gerrit-Change-Number: 22124 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 14 Jan 2021 18:10:55 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 18:11:00 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 14 Jan 2021 18:11:00 +0000 Subject: Change in osmo-cbc[master]: add link to upstream bug related to custom malloc/free In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22124 ) Change subject: add link to upstream bug related to custom malloc/free ...................................................................... add link to upstream bug related to custom malloc/free Change-Id: If58d307bbdade5d4d7c5e39ada8c14c052d215a9 --- M src/rest_api.c 1 file changed, 1 insertion(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/rest_api.c b/src/rest_api.c index daebc73..9473a01 100644 --- a/src/rest_api.c +++ b/src/rest_api.c @@ -682,6 +682,7 @@ int i; #ifdef ULFIUS_MALLOC_NOT_BROKEN + /* See https://github.com/babelouest/ulfius/issues/63 */ g_tall_rest = ctx; o_set_alloc_funcs(my_o_malloc, my_o_realloc, my_o_free); #endif -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22124 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: If58d307bbdade5d4d7c5e39ada8c14c052d215a9 Gerrit-Change-Number: 22124 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 18:11:07 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 14 Jan 2021 18:11:07 +0000 Subject: Change in libosmocore[for-1.4]: tlv_parser: Fix various out-of-bounds accesses In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22121 ) Change subject: tlv_parser: Fix various out-of-bounds accesses ...................................................................... tlv_parser: Fix various out-of-bounds accesses The libosmocore TLV parser had a number of insufficient bounds checks leading to reads beyond the end of the respective input buffer. This patch * adds proper out-of-bounds checks to all TLV types * simplifies some of the existing checks * introduces test cases to test all the corner cases where either TAG, or length, or value are not fully contained in the input buffer. Thanks to Ilja Van Sprundel for reporting these problems. Change-Id: I98b02c914c9e3ecf56050af846292aa6979d7508 --- M src/gsm/tlv_parser.c M tests/tlv/tlv_test.c M tests/tlv/tlv_test.ok 3 files changed, 115 insertions(+), 15 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/src/gsm/tlv_parser.c b/src/gsm/tlv_parser.c index 159b42b..5640abe 100644 --- a/src/gsm/tlv_parser.c +++ b/src/gsm/tlv_parser.c @@ -231,7 +231,10 @@ const uint8_t *buf, int buf_len) { uint8_t tag; - int len; + int len; /* number of bytes consumed by TLV entry */ + + if (buf_len < 1) + return -1; tag = *buf; *o_tag = tag; @@ -264,56 +267,54 @@ break; case TLV_TYPE_TLV: tlv: /* GSM TS 04.07 11.2.4: Type 4 TLV */ - if (buf + 1 > buf + buf_len) + if (buf_len < 2) return -1; *o_val = buf+2; *o_len = *(buf+1); len = *o_len + 2; - if (len > buf_len) - return -2; break; case TLV_TYPE_vTvLV_GAN: /* 44.318 / 11.1.4 */ /* FIXME: variable-length TAG! */ + if (buf_len < 2) + return -1; if (*(buf+1) & 0x80) { - /* like TL16Vbut without highest bit of len */ - if (2 > buf_len) + if (buf_len < 3) return -1; + /* like TL16Vbut without highest bit of len */ *o_val = buf+3; *o_len = (*(buf+1) & 0x7F) << 8 | *(buf+2); len = *o_len + 3; - if (len > buf_len) - return -2; } else { /* like TLV */ goto tlv; } break; case TLV_TYPE_TvLV: + if (buf_len < 2) + return -1; if (*(buf+1) & 0x80) { /* like TLV, but without highest bit of len */ - if (buf + 1 > buf + buf_len) - return -1; *o_val = buf+2; *o_len = *(buf+1) & 0x7f; len = *o_len + 2; - if (len > buf_len) - return -2; break; } /* like TL16V, fallthrough */ case TLV_TYPE_TL16V: - if (2 > buf_len) + if (buf_len < 3) return -1; *o_val = buf+3; *o_len = *(buf+1) << 8 | *(buf+2); len = *o_len + 3; - if (len > buf_len) - return -2; break; default: return -3; } + if (buf_len < len) { + *o_val = NULL; + return -2; + } return len; } diff --git a/tests/tlv/tlv_test.c b/tests/tlv/tlv_test.c index 925d762..148a7c2 100644 --- a/tests/tlv/tlv_test.c +++ b/tests/tlv/tlv_test.c @@ -332,6 +332,97 @@ msgb_free(msg); } +static void test_tlv_parser_bounds() +{ + struct tlv_definition tdef; + struct tlv_parsed dec; + uint8_t buf[32]; + + memset(&tdef, 0, sizeof(tdef)); + + printf("Testing TLV_TYPE_T decoder for out-of-bounds\n"); + tdef.def[0x23].type = TLV_TYPE_T; + buf[0] = 0x23; + OSMO_ASSERT(tlv_parse(&dec, &tdef, buf, 1, 0, 0) == 1); + OSMO_ASSERT(tlv_parse(&dec, &tdef, buf, 0, 0, 0) == 0); + + printf("Testing TLV_TYPE_TV decoder for out-of-bounds\n"); + tdef.def[0x23].type = TLV_TYPE_TV; + buf[0] = 0x23; + buf[1] = 0x42; + OSMO_ASSERT(tlv_parse(&dec, &tdef, buf, 2, 0, 0) == 1); + OSMO_ASSERT(*TLVP_VAL(&dec, 0x23) == buf[1]); + OSMO_ASSERT(tlv_parse(&dec, &tdef, buf, 1, 0, 0) == -2); + OSMO_ASSERT(TLVP_VAL(&dec, 0x23) == NULL); + + printf("Testing TLV_TYPE_FIXED decoder for out-of-bounds\n"); + tdef.def[0x23].type = TLV_TYPE_FIXED; + tdef.def[0x23].fixed_len = 2; + buf[0] = 0x23; + buf[1] = 0x42; + buf[2] = 0x55; + OSMO_ASSERT(tlv_parse(&dec, &tdef, buf, 3, 0, 0) == 1); + OSMO_ASSERT(tlv_parse(&dec, &tdef, buf, 2, 0, 0) == -2); + OSMO_ASSERT(TLVP_VAL(&dec, 0x23) == NULL); + + printf("Testing TLV_TYPE_TLV decoder for out-of-bounds\n"); + tdef.def[0x23].type = TLV_TYPE_TLV; + buf[0] = 0x23; + buf[1] = 0x02; + buf[2] = 0x55; + buf[3] = 0xAA; + OSMO_ASSERT(tlv_parse(&dec, &tdef, buf, 4, 0, 0) == 1); + OSMO_ASSERT(TLVP_VAL(&dec, 0x23) == &buf[2]); + OSMO_ASSERT(tlv_parse(&dec, &tdef, buf, 3, 0, 0) == -2); + OSMO_ASSERT(TLVP_VAL(&dec, 0x23) == NULL); + OSMO_ASSERT(tlv_parse(&dec, &tdef, buf, 2, 0, 0) == -2); + OSMO_ASSERT(TLVP_VAL(&dec, 0x23) == NULL); + OSMO_ASSERT(tlv_parse(&dec, &tdef, buf, 1, 0, 0) == -1); + OSMO_ASSERT(TLVP_VAL(&dec, 0x23) == NULL); + + printf("Testing TLV_TYPE_vTvLV_GAN decoder for out-of-bounds\n"); + tdef.def[0x23].type = TLV_TYPE_vTvLV_GAN; + buf[0] = 0x23; + buf[1] = 0x80; + buf[2] = 0x01; + buf[3] = 0xAA; + OSMO_ASSERT(tlv_parse(&dec, &tdef, buf, 4, 0, 0) == 1); + OSMO_ASSERT(TLVP_VAL(&dec, 0x23) == &buf[3]); + OSMO_ASSERT(tlv_parse(&dec, &tdef, buf, 3, 0, 0) == -2); + OSMO_ASSERT(TLVP_VAL(&dec, 0x23) == NULL); + OSMO_ASSERT(tlv_parse(&dec, &tdef, buf, 2, 0, 0) == -1); + OSMO_ASSERT(TLVP_VAL(&dec, 0x23) == NULL); + OSMO_ASSERT(tlv_parse(&dec, &tdef, buf, 1, 0, 0) == -1); + OSMO_ASSERT(TLVP_VAL(&dec, 0x23) == NULL); + + printf("Testing TLV_TYPE_TvLV decoder for out-of-bounds\n"); + tdef.def[0x23].type = TLV_TYPE_TvLV; + buf[0] = 0x23; + buf[1] = 0x81; + buf[2] = 0xAA; + OSMO_ASSERT(tlv_parse(&dec, &tdef, buf, 3, 0, 0) == 1); + OSMO_ASSERT(TLVP_VAL(&dec, 0x23) == &buf[2]); + OSMO_ASSERT(tlv_parse(&dec, &tdef, buf, 2, 0, 0) == -2); + OSMO_ASSERT(TLVP_VAL(&dec, 0x23) == NULL); + OSMO_ASSERT(tlv_parse(&dec, &tdef, buf, 1, 0, 0) == -1); + OSMO_ASSERT(TLVP_VAL(&dec, 0x23) == NULL); + + printf("Testing TLV_TYPE_TL16V decoder for out-of-bounds\n"); + tdef.def[0x23].type = TLV_TYPE_TL16V; + buf[0] = 0x23; + buf[1] = 0x00; + buf[2] = 0x01; + buf[3] = 0xAA; + OSMO_ASSERT(tlv_parse(&dec, &tdef, buf, 4, 0, 0) == 1); + OSMO_ASSERT(TLVP_VAL(&dec, 0x23) == &buf[3]); + OSMO_ASSERT(tlv_parse(&dec, &tdef, buf, 3, 0, 0) == -2); + OSMO_ASSERT(TLVP_VAL(&dec, 0x23) == NULL); + OSMO_ASSERT(tlv_parse(&dec, &tdef, buf, 2, 0, 0) == -1); + OSMO_ASSERT(TLVP_VAL(&dec, 0x23) == NULL); + OSMO_ASSERT(tlv_parse(&dec, &tdef, buf, 1, 0, 0) == -1); + OSMO_ASSERT(TLVP_VAL(&dec, 0x23) == NULL); +} + int main(int argc, char **argv) { //osmo_init_logging2(ctx, &info); @@ -339,6 +430,7 @@ test_tlv_shift_functions(); test_tlv_repeated_ie(); test_tlv_encoder(); + test_tlv_parser_bounds(); printf("Done.\n"); return EXIT_SUCCESS; diff --git a/tests/tlv/tlv_test.ok b/tests/tlv/tlv_test.ok index f3f0fd4..e24b889 100644 --- a/tests/tlv/tlv_test.ok +++ b/tests/tlv/tlv_test.ok @@ -1,4 +1,11 @@ Test shift functions Testing TLV encoder by decoding + re-encoding binary Testing TLV encoder with IE ordering +Testing TLV_TYPE_T decoder for out-of-bounds +Testing TLV_TYPE_TV decoder for out-of-bounds +Testing TLV_TYPE_FIXED decoder for out-of-bounds +Testing TLV_TYPE_TLV decoder for out-of-bounds +Testing TLV_TYPE_vTvLV_GAN decoder for out-of-bounds +Testing TLV_TYPE_TvLV decoder for out-of-bounds +Testing TLV_TYPE_TL16V decoder for out-of-bounds Done. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22121 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: for-1.4 Gerrit-Change-Id: I98b02c914c9e3ecf56050af846292aa6979d7508 Gerrit-Change-Number: 22121 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 18:11:12 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 14 Jan 2021 18:11:12 +0000 Subject: =?UTF-8?Q?Change_in_libosmocore=5Bfor-1=2E4=5D=3A_Bump_version=3A_1=2E4=2E1-dirty_=E2=86=92_1=2E4=2E2?= In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22122 ) Change subject: Bump version: 1.4.1-dirty ? 1.4.2 ...................................................................... Bump version: 1.4.1-dirty ? 1.4.2 Change-Id: I2edd4eb53b33cc77e7894652a24a758fcca84e59 --- M debian/changelog 1 file changed, 6 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/debian/changelog b/debian/changelog index 8b0710b..e95b7cd 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +libosmocore (1.4.2) unstable; urgency=medium + + * tlv_parser: Fix various out-of-bounds accesses + + -- Harald Welte Tue, 12 Jan 2021 23:25:09 +0100 + libosmocore (1.4.1) unstable; urgency=medium [ Vadim Yanitskiy ] -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22122 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: for-1.4 Gerrit-Change-Id: I2edd4eb53b33cc77e7894652a24a758fcca84e59 Gerrit-Change-Number: 22122 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 18:12:40 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 14 Jan 2021 18:12:40 +0000 Subject: Change in osmo-bsc[master]: power_control: fix: properly initialize per-lchan BS power In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22192 ) Change subject: power_control: fix: properly initialize per-lchan BS power ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22192 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I056c448ce017458dc4a004374ddca86d44dc35b4 Gerrit-Change-Number: 22192 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 14 Jan 2021 18:12:40 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 18:12:46 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 14 Jan 2021 18:12:46 +0000 Subject: Change in osmo-bsc[master]: power_control: fix: properly initialize per-lchan BS power In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22192 ) Change subject: power_control: fix: properly initialize per-lchan BS power ...................................................................... power_control: fix: properly initialize per-lchan BS power My assumption that lchan_reset() is called on CHANnel ACTIVation was wrong - it's actually called on CHANnel RELease. Therefore (re)setting per-lchan BS power value must be done in the other function that is responsible for channel activation. Change-Id: I056c448ce017458dc4a004374ddca86d44dc35b4 Related: SYS#4918 --- M src/osmo-bsc/lchan_fsm.c 1 file changed, 6 insertions(+), 9 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/src/osmo-bsc/lchan_fsm.c b/src/osmo-bsc/lchan_fsm.c index 5a42527..5054096 100644 --- a/src/osmo-bsc/lchan_fsm.c +++ b/src/osmo-bsc/lchan_fsm.c @@ -379,9 +379,6 @@ */ static void lchan_reset(struct gsm_lchan *lchan) { - const struct gsm_bts_trx *trx = lchan->ts->trx; - const struct gsm_bts *bts = trx->bts; - LOG_LCHAN(lchan, LOGL_DEBUG, "Clearing lchan state\n"); if (lchan->conn) @@ -411,12 +408,6 @@ .release.rr_cause = GSM48_RR_CAUSE_NORMAL, }; - - /* Default BS Power reduction value (in 2 dB steps) */ - if (bts->bs_power_ctrl.mode == GSM_PWR_CTRL_MODE_DYN_BTS) - lchan->bs_power = bts->bs_power_ctrl.bs_power_max_db / 2; - else - lchan->bs_power = bts->bs_power_ctrl.bs_power_val_db / 2; } static void lchan_fsm_unused_onenter(struct osmo_fsm_inst *fi, uint32_t prev_state) @@ -595,6 +586,12 @@ /* Upon last entering the UNUSED state, from lchan_reset(): * - bs_power is still zero, 0dB reduction, output power = Pn. * - TA is still zero, to be determined by RACH. */ + + /* Default BS Power reduction value (in 2 dB steps) */ + if (bts->bs_power_ctrl.mode == GSM_PWR_CTRL_MODE_DYN_BTS) + lchan->bs_power = bts->bs_power_ctrl.bs_power_max_db / 2; + else + lchan->bs_power = bts->bs_power_ctrl.bs_power_val_db / 2; } if (info->chan_mode == GSM48_CMODE_SPEECH_AMR) { -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22192 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I056c448ce017458dc4a004374ddca86d44dc35b4 Gerrit-Change-Number: 22192 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 18:24:49 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 14 Jan 2021 18:24:49 +0000 Subject: Change in osmo-trx[master]: contrib/jenkins: don't build osmo-gsm-manuals In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/22149 ) Change subject: contrib/jenkins: don't build osmo-gsm-manuals ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/22149 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: Ibacb11da37acfd324cee37068099627136717781 Gerrit-Change-Number: 22149 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 14 Jan 2021 18:24:49 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 18:24:51 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 14 Jan 2021 18:24:51 +0000 Subject: Change in osmo-trx[master]: contrib/jenkins: don't build osmo-gsm-manuals In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/22149 ) Change subject: contrib/jenkins: don't build osmo-gsm-manuals ...................................................................... contrib/jenkins: don't build osmo-gsm-manuals Related: OS#4912 Change-Id: Ibacb11da37acfd324cee37068099627136717781 --- M contrib/jenkins.sh 1 file changed, 0 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index 7b751ad..3cf12c6 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -89,7 +89,6 @@ # Additional configure options and depends if [ "$WITH_MANUALS" = "1" ]; then - osmo-build-dep.sh osmo-gsm-manuals CONFIG="$CONFIG --enable-manuals" fi -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/22149 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: Ibacb11da37acfd324cee37068099627136717781 Gerrit-Change-Number: 22149 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 18:32:14 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 14 Jan 2021 18:32:14 +0000 Subject: Change in osmo-pcu[master]: Fix configuration mess of initial_cs/mcs between PCUIF and VTY In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22195 ) Change subject: Fix configuration mess of initial_cs/mcs between PCUIF and VTY ...................................................................... Patch Set 1: This change is ready for review. -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22195 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I80a6ba401f9c0c85bdf6e0cc99a9d2008d31e1b0 Gerrit-Change-Number: 22195 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Thu, 14 Jan 2021 18:32:14 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 20:26:48 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 14 Jan 2021 20:26:48 +0000 Subject: Change in libosmocore[master]: gprs_ns2: check if persistent nsei or nsvc exists when creating dynam... References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22197 ) Change subject: gprs_ns2: check if persistent nsei or nsvc exists when creating dynamic NSE ...................................................................... gprs_ns2: check if persistent nsei or nsvc exists when creating dynamic NSE When receiving a NS Reset over an unknown NSVC the NS code would create a dynamic NSE. If the NSEI or NSVCI is already configured to a persistant NSE/NSVC the packet should be ignored. Change-Id: I855911e7d364f2e5b08ea05857747aa63fcf1cd3 --- M src/gb/gprs_ns2.c 1 file changed, 34 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/97/22197/1 diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c index e43b636..0335ad6 100644 --- a/src/gb/gprs_ns2.c +++ b/src/gb/gprs_ns2.c @@ -858,18 +858,49 @@ return GPRS_NS2_CS_REJECTED; } - /* find or create NSE */ nsei = tlvp_val16be(&tp, NS_IE_NSEI); + nsvci = tlvp_val16be(&tp, NS_IE_VCI); + + /* find or create NSE */ nse = gprs_ns2_nse_by_nsei(bind->nsi, nsei); if (!nse) { - if (!bind->nsi->create_nse) { + /* only create nse for udp & ipaccess */ + if (bind->ll != GPRS_NS2_LL_UDP || dialect != NS2_DIALECT_IPACCESS) return GPRS_NS2_CS_SKIPPED; - } + + if (!bind->nsi->create_nse || !bind->accept_ipaccess) + return GPRS_NS2_CS_SKIPPED; nse = gprs_ns2_create_nse(bind->nsi, nsei, bind->ll, dialect); if (!nse) { + LOGP(DLNS, LOGL_ERROR, "Failed to create NSE(%d)\n", nsei); return GPRS_NS2_CS_ERROR; } + } else { + /* nsei already known */ + if (nse->ll != bind->ll) { + LOGP(DLNS, LOGL_ERROR, "Received NS-RESET NS-VCI(%d) with wrong linklayer(%s) for already known NSE(%d/%s)\n", + nsei, gprs_ns2_lltype_str(bind->ll), nse->nsei, gprs_ns2_lltype_str(nse->ll)); + return GPRS_NS2_CS_SKIPPED; + } + } + + nsvc = gprs_ns2_nsvc_by_nsvci(bind->nsi, nsvci); + if (nsvc) { + if (nsvc->persistent) { + LOGP(DLNS, LOGL_ERROR, "Received NS-RESET for a persistent NSE(%d) NS-VCI(%d) over wrong connection.\n", + nsei, nsvci); + return GPRS_NS2_CS_SKIPPED; + } + /* destroy old dynamic nsvc */ + gprs_ns2_free_nsvc(nsvc); + } + + /* do nse persistent check late to be more precise on the error message */ + if (nse->persistent) { + LOGP(DLNS, LOGL_ERROR, "Received NS-RESET for a persistent NSE(%d) but the unknown NS-VCI(%d)\n", + nsei, nsvci); + return GPRS_NS2_CS_SKIPPED; } vc_mode = gprs_ns2_dialect_to_vc_mode(dialect); @@ -877,7 +908,6 @@ if (!nsvc) return GPRS_NS2_CS_SKIPPED; - nsvci = tlvp_val16be(&tp, NS_IE_VCI); nsvc->nsvci = nsvci; nsvc->nsvci_is_valid = true; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22197 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I855911e7d364f2e5b08ea05857747aa63fcf1cd3 Gerrit-Change-Number: 22197 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 20:26:49 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 14 Jan 2021 20:26:49 +0000 Subject: Change in libosmocore[master]: osmo-ns-dummy: allow to create dynamic NSEs References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22198 ) Change subject: osmo-ns-dummy: allow to create dynamic NSEs ...................................................................... osmo-ns-dummy: allow to create dynamic NSEs Without setting the flag the osmo-ns-dummy won't create any dynamic NSEs. This flag will be removed in a future release but for now it will be included. Change-Id: I196cc454b5d7bc53848f73596a2f92730b78922b --- M utils/osmo-ns-dummy.c 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/98/22198/1 diff --git a/utils/osmo-ns-dummy.c b/utils/osmo-ns-dummy.c index 6790b4c..a2070ca 100644 --- a/utils/osmo-ns-dummy.c +++ b/utils/osmo-ns-dummy.c @@ -226,6 +226,7 @@ exit(1); } + gprs_ns2_dynamic_create_nse(nsi, true); gprs_ns2_vty2_init(nsi); rc = vty_read_config_file(config_file, NULL); if (rc < 0 && config_given) { -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22198 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I196cc454b5d7bc53848f73596a2f92730b78922b Gerrit-Change-Number: 22198 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 20:26:49 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 14 Jan 2021 20:26:49 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vc: answer UNBLOCK on unblocked nsvc References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22199 ) Change subject: gprs_ns2_vc: answer UNBLOCK on unblocked nsvc ...................................................................... gprs_ns2_vc: answer UNBLOCK on unblocked nsvc 48.016 7.2: says an UNBLOCK pdu should be answered with UNBLOCK_ACK on already unblocked NSVC Change-Id: Ic92e99b2607d1e54ecb4668667065502a55a2ce0 --- M src/gb/gprs_ns2_vc_fsm.c 1 file changed, 5 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/99/22199/1 diff --git a/src/gb/gprs_ns2_vc_fsm.c b/src/gb/gprs_ns2_vc_fsm.c index d5f134e..78b0691 100644 --- a/src/gb/gprs_ns2_vc_fsm.c +++ b/src/gb/gprs_ns2_vc_fsm.c @@ -334,6 +334,9 @@ struct gprs_ns2_vc_priv *priv = fi->priv; switch (event) { + case GPRS_NS2_EV_UNBLOCK: + ns2_tx_unblock_ack(priv->nsvc); + break; case GPRS_NS2_EV_BLOCK: priv->initiate_block = false; ns2_tx_block_ack(priv->nsvc); @@ -400,7 +403,8 @@ .onenter = gprs_ns2_st_blocked_onenter, }, [GPRS_NS2_ST_UNBLOCKED] = { - .in_event_mask = S(GPRS_NS2_EV_BLOCK) | S(GPRS_NS2_EV_UNBLOCK_ACK), + .in_event_mask = S(GPRS_NS2_EV_BLOCK) | S(GPRS_NS2_EV_UNBLOCK_ACK) | + S(GPRS_NS2_EV_UNBLOCK), .out_state_mask = S(GPRS_NS2_ST_RESET) | S(GPRS_NS2_ST_ALIVE) | S(GPRS_NS2_ST_BLOCKED) | S(GPRS_NS2_ST_UNCONFIGURED), -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22199 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic92e99b2607d1e54ecb4668667065502a55a2ce0 Gerrit-Change-Number: 22199 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 20:26:50 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 14 Jan 2021 20:26:50 +0000 Subject: Change in libosmocore[master]: gprs_ns2: when calling nsvc_force_unconf for a dynamic NSE drop the NSE. References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22200 ) Change subject: gprs_ns2: when calling nsvc_force_unconf for a dynamic NSE drop the NSE. ...................................................................... gprs_ns2: when calling nsvc_force_unconf for a dynamic NSE drop the NSE. The vty command is used for test cases to reset NSE state. So dynamic NSE shouldn't present. Change-Id: I0a4f35c974c8c3b79c48f2f56170722c95254332 --- M src/gb/gprs_ns2_vty2.c 1 file changed, 3 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/00/22200/1 diff --git a/src/gb/gprs_ns2_vty2.c b/src/gb/gprs_ns2_vty2.c index 41daa74..5af8fbc 100644 --- a/src/gb/gprs_ns2_vty2.c +++ b/src/gb/gprs_ns2_vty2.c @@ -1491,7 +1491,9 @@ return CMD_WARNING; } - if (nse->dialect == NS2_DIALECT_SNS) { + if (!nse->persistent) { + gprs_ns2_free_nse(nse); + } else if (nse->dialect == NS2_DIALECT_SNS) { gprs_ns2_free_nsvcs(nse); } else { /* Perform the operation for all nsvc */ -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22200 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I0a4f35c974c8c3b79c48f2f56170722c95254332 Gerrit-Change-Number: 22200 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 20:27:24 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 14 Jan 2021 20:27:24 +0000 Subject: Change in osmo-sip-connector[master]: mncc: remove callref argument from mncc_write() References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sip-connector/+/22201 ) Change subject: mncc: remove callref argument from mncc_write() ...................................................................... mncc: remove callref argument from mncc_write() The callref is always included in the struct mncc argument. Change-Id: Ia156010194c1f4334a4966d01aadfd02fa7097a8 --- M src/mncc.c 1 file changed, 6 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sip-connector refs/changes/01/22201/1 diff --git a/src/mncc.c b/src/mncc.c index 0725d4c..5456ac6 100644 --- a/src/mncc.c +++ b/src/mncc.c @@ -130,7 +130,7 @@ } } -static void mncc_write(struct mncc_connection *conn, struct gsm_mncc *mncc, uint32_t callref) +static void mncc_write(struct mncc_connection *conn, struct gsm_mncc *mncc) { int rc; @@ -141,7 +141,7 @@ rc = write(conn->fd.fd, mncc, sizeof(*mncc)); LOGP(DMNCC, LOGL_DEBUG, "MNCC sent message type: %s\n", osmo_mncc_name(mncc->msg_type)); if (rc != sizeof(*mncc)) { - LOGP(DMNCC, LOGL_ERROR, "Failed to send message for call(%u)\n", callref); + LOGP(DMNCC, LOGL_ERROR, "Failed to send message for call(%u)\n", mncc->callref); close_connection(conn); } } @@ -151,7 +151,7 @@ struct gsm_mncc mncc = { 0, }; mncc_fill_header(&mncc, msg_type, callref); - mncc_write(conn, &mncc, callref); + mncc_write(conn, &mncc); } static void mncc_rtp_send(struct mncc_connection *conn, uint32_t msg_type, uint32_t callref) @@ -264,7 +264,7 @@ out_mncc.progress.location = GSM48_CAUSE_LOC_PRN_S_LU; /* Private network serving the local user */ out_mncc.progress.descr = GSM48_PROGR_IN_BAND_AVAIL; /* In-band information or appropriate pattern now available */ - mncc_write(leg->conn, &out_mncc, leg->callref); + mncc_write(leg->conn, &out_mncc); /* * If we have remote IP/port let's connect it already. @@ -807,7 +807,7 @@ mncc_fill_header(&out_mncc, MNCC_START_DTMF_RSP, leg->callref); out_mncc.fields |= MNCC_F_KEYPAD; out_mncc.keypad = data->keypad; - mncc_write(conn, &out_mncc, leg->callref); + mncc_write(conn, &out_mncc); } static void check_dtmf_stop(struct mncc_connection *conn, const char *buf, int rc) @@ -825,7 +825,7 @@ mncc_fill_header(&out_mncc, MNCC_STOP_DTMF_RSP, leg->callref); out_mncc.fields |= MNCC_F_KEYPAD; out_mncc.keypad = data->keypad; - mncc_write(conn, &out_mncc, leg->callref); + mncc_write(conn, &out_mncc); } static void check_hello(struct mncc_connection *conn, const char *buf, int rc) -- To view, visit https://gerrit.osmocom.org/c/osmo-sip-connector/+/22201 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sip-connector Gerrit-Branch: master Gerrit-Change-Id: Ia156010194c1f4334a4966d01aadfd02fa7097a8 Gerrit-Change-Number: 22201 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 20:27:24 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 14 Jan 2021 20:27:24 +0000 Subject: Change in osmo-sip-connector[master]: mncc: add return code for write/send function References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sip-connector/+/22202 ) Change subject: mncc: add return code for write/send function ...................................................................... mncc: add return code for write/send function Allow to get errors back for the caller to clean up state. Change-Id: Ic926d192c238ef84fb3ad2be27e507e010b0e93f --- M src/mncc.c 1 file changed, 20 insertions(+), 10 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sip-connector refs/changes/02/22202/1 diff --git a/src/mncc.c b/src/mncc.c index 5456ac6..d3d218b 100644 --- a/src/mncc.c +++ b/src/mncc.c @@ -130,7 +130,7 @@ } } -static void mncc_write(struct mncc_connection *conn, struct gsm_mncc *mncc) +static int mncc_write(struct mncc_connection *conn, struct gsm_mncc *mncc) { int rc; @@ -144,17 +144,19 @@ LOGP(DMNCC, LOGL_ERROR, "Failed to send message for call(%u)\n", mncc->callref); close_connection(conn); } + + return rc; } -static void mncc_send(struct mncc_connection *conn, uint32_t msg_type, uint32_t callref) +static int mncc_send(struct mncc_connection *conn, uint32_t msg_type, uint32_t callref) { struct gsm_mncc mncc = { 0, }; mncc_fill_header(&mncc, msg_type, callref); - mncc_write(conn, &mncc); + return mncc_write(conn, &mncc); } -static void mncc_rtp_send(struct mncc_connection *conn, uint32_t msg_type, uint32_t callref) +static int mncc_rtp_send(struct mncc_connection *conn, uint32_t msg_type, uint32_t callref) { int rc; struct gsm_mncc_rtp mncc = { 0, }; @@ -167,6 +169,8 @@ LOGP(DMNCC, LOGL_ERROR, "Failed to send message for call(%u)\n", callref); close_connection(conn); } + + return rc; } /* Send a MNCC_RTP_CONNECT to the MSC for the given call legs */ @@ -393,7 +397,8 @@ leg = mncc_find_leg_not_released(rtp->callref); if (!leg) { LOGP(DMNCC, LOGL_ERROR, "leg(%u) can not be found\n", rtp->callref); - return mncc_send(conn, MNCC_REJ_REQ, rtp->callref); + mncc_send(conn, MNCC_REJ_REQ, rtp->callref); + return; } /* extract information about where the RTP is */ @@ -426,7 +431,8 @@ leg = mncc_find_leg_not_released(rtp->callref); if (!leg) { LOGP(DMNCC, LOGL_ERROR, "call(%u) can not be found\n", rtp->callref); - return mncc_send(conn, MNCC_REJ_REQ, rtp->callref); + mncc_send(conn, MNCC_REJ_REQ, rtp->callref); + return; } /* extract information about where the RTP is */ @@ -488,7 +494,8 @@ LOGP(DMNCC, LOGL_ERROR, "MNCC leg(%u) without called addr fields(%u)\n", data->callref, data->fields); - return mncc_send(conn, MNCC_REJ_REQ, data->callref); + mncc_send(conn, MNCC_REJ_REQ, data->callref); + return; } /* Emergency without a called number present. Use the standard "emergency" number. */ @@ -499,14 +506,16 @@ LOGP(DMNCC, LOGL_ERROR, "MNCC leg(%u) without calling addr fields(%u)\n", data->callref, data->fields); - return mncc_send(conn, MNCC_REJ_REQ, data->callref); + mncc_send(conn, MNCC_REJ_REQ, data->callref); + return; } /* TODO.. bearer caps and better audio handling */ if (!continue_setup(conn, data)) { LOGP(DMNCC, LOGL_ERROR, "MNCC screening parameters failed leg(%u)\n", data->callref); - return mncc_send(conn, MNCC_REJ_REQ, data->callref); + mncc_send(conn, MNCC_REJ_REQ, data->callref); + return; } /* Create an RTP port and then allocate a call */ @@ -514,7 +523,8 @@ if (!call) { LOGP(DMNCC, LOGL_ERROR, "MNCC leg(%u) failed to allocate call\n", data->callref); - return mncc_send(conn, MNCC_REJ_REQ, data->callref); + mncc_send(conn, MNCC_REJ_REQ, data->callref); + return; } leg = (struct mncc_call_leg *) call->initial; -- To view, visit https://gerrit.osmocom.org/c/osmo-sip-connector/+/22202 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sip-connector Gerrit-Branch: master Gerrit-Change-Id: Ic926d192c238ef84fb3ad2be27e507e010b0e93f Gerrit-Change-Number: 22202 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 20:27:24 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 14 Jan 2021 20:27:24 +0000 Subject: Change in osmo-sip-connector[master]: Introduce mncc_rtp_write similiar to mncc_write References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sip-connector/+/22203 ) Change subject: Introduce mncc_rtp_write similiar to mncc_write ...................................................................... Introduce mncc_rtp_write similiar to mncc_write Concentrate the write() to the socket in 2 places. One for struct gsm_mncc and one for struct gsm_mncc_rtp. Improve debugging as now all function debug print the MNCC primitiv. Change-Id: Ia84602955b913a3bb13de7a6a92048799f2e1955 --- M src/mncc.c 1 file changed, 16 insertions(+), 9 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sip-connector refs/changes/03/22203/1 diff --git a/src/mncc.c b/src/mncc.c index d3d218b..83cfe3b 100644 --- a/src/mncc.c +++ b/src/mncc.c @@ -156,21 +156,28 @@ return mncc_write(conn, &mncc); } -static int mncc_rtp_send(struct mncc_connection *conn, uint32_t msg_type, uint32_t callref) +static int mncc_rtp_write(struct mncc_connection *conn, struct gsm_mncc_rtp *rtp) { int rc; + + rc = write(conn->fd.fd, &rtp, sizeof(rtp)); + LOGP(DMNCC, LOGL_DEBUG, "MNCC sent message type: %s\n", osmo_mncc_name(rtp->msg_type)); + if (rc != sizeof(*rtp)) { + LOGP(DMNCC, LOGL_ERROR, "Failed to send message for call(%u)\n", rtp->callref); + close_connection(conn); + } + + return rc; +} + +static int mncc_rtp_send(struct mncc_connection *conn, uint32_t msg_type, uint32_t callref) +{ struct gsm_mncc_rtp mncc = { 0, }; mncc.msg_type = msg_type; mncc.callref = callref; - rc = write(conn->fd.fd, &mncc, sizeof(mncc)); - if (rc != sizeof(mncc)) { - LOGP(DMNCC, LOGL_ERROR, "Failed to send message for call(%u)\n", callref); - close_connection(conn); - } - - return rc; + return mncc_rtp_write(conn, &mncc); } /* Send a MNCC_RTP_CONNECT to the MSC for the given call legs */ @@ -195,7 +202,7 @@ LOGP(DMNCC, LOGL_DEBUG, "SEND rtp_connect: IP=(%s) PORT=(%u)\n", osmo_sockaddr_ntop((const struct sockaddr*)&other->addr, ip_addr), osmo_sockaddr_port((const struct sockaddr*)&other->addr)); - rc = write(leg->conn->fd.fd, &mncc, sizeof(mncc)); + rc = mncc_rtp_write(leg->conn, &mncc); if (rc != sizeof(mncc)) { LOGP(DMNCC, LOGL_ERROR, "Failed to send message for call(%u)\n", leg->callref); -- To view, visit https://gerrit.osmocom.org/c/osmo-sip-connector/+/22203 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sip-connector Gerrit-Branch: master Gerrit-Change-Id: Ia84602955b913a3bb13de7a6a92048799f2e1955 Gerrit-Change-Number: 22203 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 20:27:25 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 14 Jan 2021 20:27:25 +0000 Subject: Change in osmo-sip-connector[master]: mncc: mncc_create_remote_leg: use mncc_write instead of write direct ... References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sip-connector/+/22204 ) Change subject: mncc: mncc_create_remote_leg: use mncc_write instead of write direct to the fd ...................................................................... mncc: mncc_create_remote_leg: use mncc_write instead of write direct to the fd Change-Id: I870c16d7ee5e5424304f3c1c9fb78af418ae2577 --- M src/mncc.c 1 file changed, 1 insertion(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sip-connector refs/changes/04/22204/1 diff --git a/src/mncc.c b/src/mncc.c index 83cfe3b..abfa01b 100644 --- a/src/mncc.c +++ b/src/mncc.c @@ -922,11 +922,10 @@ * - Screening, redirect? * - Synth. the bearer caps based on codecs? */ - rc = write(conn->fd.fd, &mncc, sizeof(mncc)); + rc = mncc_write(conn, &mncc); if (rc != sizeof(mncc)) { LOGP(DMNCC, LOGL_ERROR, "Failed to send message leg(%u)\n", leg->callref); - close_connection(conn); talloc_free(leg); return -1; } -- To view, visit https://gerrit.osmocom.org/c/osmo-sip-connector/+/22204 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sip-connector Gerrit-Branch: master Gerrit-Change-Id: I870c16d7ee5e5424304f3c1c9fb78af418ae2577 Gerrit-Change-Number: 22204 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 20:27:58 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 14 Jan 2021 20:27:58 +0000 Subject: Change in osmo-sip-connector[master]: mncc: Introduce mncc_rtp_write similiar to mncc_write In-Reply-To: References: Message-ID: lynxis lazus has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/osmo-sip-connector/+/22203 ) Change subject: mncc: Introduce mncc_rtp_write similiar to mncc_write ...................................................................... mncc: Introduce mncc_rtp_write similiar to mncc_write Concentrate the write() to the socket in 2 places. One for struct gsm_mncc and one for struct gsm_mncc_rtp. Improve debugging as now all function debug print the MNCC primitiv. Change-Id: Ia84602955b913a3bb13de7a6a92048799f2e1955 --- M src/mncc.c 1 file changed, 16 insertions(+), 9 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sip-connector refs/changes/03/22203/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sip-connector/+/22203 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sip-connector Gerrit-Branch: master Gerrit-Change-Id: Ia84602955b913a3bb13de7a6a92048799f2e1955 Gerrit-Change-Number: 22203 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-CC: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 20:27:58 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 14 Jan 2021 20:27:58 +0000 Subject: Change in osmo-sip-connector[master]: mncc: mncc_create_remote_leg: use mncc_write instead of write direct ... In-Reply-To: References: Message-ID: lynxis lazus has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/osmo-sip-connector/+/22204 ) Change subject: mncc: mncc_create_remote_leg: use mncc_write instead of write direct to the fd ...................................................................... mncc: mncc_create_remote_leg: use mncc_write instead of write direct to the fd Change-Id: I870c16d7ee5e5424304f3c1c9fb78af418ae2577 --- M src/mncc.c 1 file changed, 1 insertion(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sip-connector refs/changes/04/22204/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sip-connector/+/22204 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sip-connector Gerrit-Branch: master Gerrit-Change-Id: I870c16d7ee5e5424304f3c1c9fb78af418ae2577 Gerrit-Change-Number: 22204 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-CC: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 20:28:50 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 14 Jan 2021 20:28:50 +0000 Subject: Change in osmo-bsc[master]: vty: fix 'codec-list' command: check all given arguments first In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22167 ) Change subject: vty: fix 'codec-list' command: check all given arguments first ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22167 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I35b740a39c9cf3716d286e717486ef505bc61522 Gerrit-Change-Number: 22167 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: neels Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 14 Jan 2021 20:28:50 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 20:40:37 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 14 Jan 2021 20:40:37 +0000 Subject: Change in osmo-ttcn3-hacks[master]: update expected-results.xml References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22205 ) Change subject: update expected-results.xml ...................................................................... update expected-results.xml Change-Id: Ib4399aa488afd917e3eda5e79d56ea3797ef7c78 --- M bsc/expected-results.xml A gbproxy/expected-results.xml M mgw/expected-results.xml M pcu/expected-results.xml M sgsn/expected-results.xml M sip/expected-results.xml M smlc/expected-results.xml 7 files changed, 125 insertions(+), 14 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/05/22205/1 diff --git a/bsc/expected-results.xml b/bsc/expected-results.xml index 6ab542a..c98d3c7 100644 --- a/bsc/expected-results.xml +++ b/bsc/expected-results.xml @@ -1,5 +1,5 @@ - + @@ -73,6 +73,11 @@ + + + + + @@ -125,6 +130,7 @@ + @@ -170,14 +176,22 @@ - - no verdict - + + + + + + + + + + + @@ -193,7 +207,9 @@ + + diff --git a/gbproxy/expected-results.xml b/gbproxy/expected-results.xml new file mode 100644 index 0000000..0e20404 --- /dev/null +++ b/gbproxy/expected-results.xml @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mgw/expected-results.xml b/mgw/expected-results.xml index d44e43e..5b6746b 100644 --- a/mgw/expected-results.xml +++ b/mgw/expected-results.xml @@ -1,10 +1,11 @@ - + + diff --git a/pcu/expected-results.xml b/pcu/expected-results.xml index ce12807..11906d9 100644 --- a/pcu/expected-results.xml +++ b/pcu/expected-results.xml @@ -1,13 +1,11 @@ - + + - Timing Advance value doesn't match - PCU_Tests.ttcn:MASKED PCU_Tests control part - PCU_Tests.ttcn:MASKED TC_ta_idle_dl_tbf_ass testcase - + Failed to match Timing Advance Index for #0 @@ -18,6 +16,13 @@ + + + + + + + @@ -39,8 +44,13 @@ + + + + + @@ -48,6 +58,27 @@ + + + + + + + + Expected 8 PDCH slots allocated but got 4 + PCU_Tests.ttcn:MASKED PCU_Tests control part + PCU_Tests.ttcn:MASKED TC_dl_multislot_tbf_ms_class_from_sgsn testcase + + + + + Expected 8 PDCH slot allocated but got 1 + PCU_Tests.ttcn:MASKED PCU_Tests control part + PCU_Tests.ttcn:MASKED TC_ul_multislot_tbf_ms_class_from_2phase testcase + + + + diff --git a/sgsn/expected-results.xml b/sgsn/expected-results.xml index cea6ad7..0a36e2e 100644 --- a/sgsn/expected-results.xml +++ b/sgsn/expected-results.xml @@ -1,5 +1,5 @@ - + @@ -72,6 +72,12 @@ + + No BSSGP RIM PDU received + SGSN_Tests.ttcn:MASKED SGSN_Tests control part + SGSN_Tests.ttcn:MASKED TC_bssgp_rim_single_report testcase + + diff --git a/sip/expected-results.xml b/sip/expected-results.xml index 2ac1ec5..87895ba 100644 --- a/sip/expected-results.xml +++ b/sip/expected-results.xml @@ -1,8 +1,10 @@ - + + + diff --git a/smlc/expected-results.xml b/smlc/expected-results.xml index 9034822..7834ebd 100644 --- a/smlc/expected-results.xml +++ b/smlc/expected-results.xml @@ -1,4 +1,8 @@ - - + + + + + + -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22205 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ib4399aa488afd917e3eda5e79d56ea3797ef7c78 Gerrit-Change-Number: 22205 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 20:47:03 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 14 Jan 2021 20:47:03 +0000 Subject: Change in osmo-bsc[master]: vty: fix 'codec-list' command: check all given arguments first In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22167 ) Change subject: vty: fix 'codec-list' command: check all given arguments first ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22167 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I35b740a39c9cf3716d286e717486ef505bc61522 Gerrit-Change-Number: 22167 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: neels Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 14 Jan 2021 20:47:03 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 20:47:09 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 14 Jan 2021 20:47:09 +0000 Subject: Change in osmo-bsc[master]: vty: fix 'codec-list' command: check all given arguments first In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22167 ) Change subject: vty: fix 'codec-list' command: check all given arguments first ...................................................................... vty: fix 'codec-list' command: check all given arguments first Allocating a new list of supported codecs *before* checking the command arguments is a bad idea. The operator may simply mistype one of the codecs and will end up with a list of NULL pointers. The functions calling audio_support_to_gsm88() assume that this list always does contain valid pointers, so if a new subscriber connection gets established, or the operator simply invokes 'show running-config', osmo-bsc would crash due to NULL pointer dereference. Steps to reproduce: 1. In the VTY, do: 'en' -> 'configure terminal' -> 'msc'; 2. Configure any invalid codec list, e.g. 'codec-list Boom!'; 3. Invoke 'show running-config', boom! Let's check the input before changing the internal structures. Change-Id: I35b740a39c9cf3716d286e717486ef505bc61522 Fixes: OS#4946 --- M src/osmo-bsc/bsc_vty.c 1 file changed, 11 insertions(+), 8 deletions(-) Approvals: fixeria: Looks good to me, approved lynxis lazus: Looks good to me, but someone else must approve osmith: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c index 753acf7..5b4417e 100644 --- a/src/osmo-bsc/bsc_vty.c +++ b/src/osmo-bsc/bsc_vty.c @@ -6820,6 +6820,17 @@ struct bsc_msc_data *data = bsc_msc_data(vty); int i; + /* check all given arguments first */ + for (i = 0; i < argc; ++i) { + /* check for hrX or frX */ + if (strlen(argv[i]) != 3 + || argv[i][1] != 'r' + || (argv[i][0] != 'h' && argv[i][0] != 'f') + || argv[i][2] < 0x30 + || argv[i][2] > 0x39) + goto error; + } + /* free the old list... if it exists */ if (data->audio_support) { talloc_free(data->audio_support); @@ -6833,14 +6844,6 @@ data->audio_length = argc; for (i = 0; i < argc; ++i) { - /* check for hrX or frX */ - if (strlen(argv[i]) != 3 - || argv[i][1] != 'r' - || (argv[i][0] != 'h' && argv[i][0] != 'f') - || argv[i][2] < 0x30 - || argv[i][2] > 0x39) - goto error; - data->audio_support[i] = talloc_zero(data->audio_support, struct gsm_audio_support); data->audio_support[i]->ver = atoi(argv[i] + 2); -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22167 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I35b740a39c9cf3716d286e717486ef505bc61522 Gerrit-Change-Number: 22167 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: neels Gerrit-Reviewer: osmith Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 22:42:05 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 14 Jan 2021 22:42:05 +0000 Subject: Change in osmo-pcu[master]: gprs_rlc_ts_alloc: ensure no rolling slots are allocated In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-pcu/+/22114 to look at the new patch set (#2). Change subject: gprs_rlc_ts_alloc: ensure no rolling slots are allocated ...................................................................... gprs_rlc_ts_alloc: ensure no rolling slots are allocated When allocating multiple slots for a UE the following example is not allowed 'UU----UU' for a UE class 12. The time slot number can not roll over 7 and move to 0. 44.060 or 45.002 only specifies contigous however it was unclear it this is an allowed pattern. Only the example 45.002 B.3 in release 12 cleared this up. It gives an example for a multi slot class 5 UE which has 7 possible configuration this means the rolled over is not allowed. Multislot class type 2 UE doesn't have this limitation. Further if a UE supports 8 time slots this is not a limitation because the window size (45.002 B.1) can include all time slots. Releated: SYS#5073 Change-Id: I16019bdbe741b37b83b62749b840a3b7f4ddc6c7 --- M src/gprs_rlcmac_ts_alloc.cpp M tests/alloc/AllocTest.err M tests/alloc/MslotTest.ok 3 files changed, 19,376 insertions(+), 19,361 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/14/22114/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22114 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I16019bdbe741b37b83b62749b840a3b7f4ddc6c7 Gerrit-Change-Number: 22114 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 14 22:48:04 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 14 Jan 2021 22:48:04 +0000 Subject: Change in osmo-pcu[master]: gprs_rlc_ts_alloc: ensure no rolling slots are allocated In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22114 ) Change subject: gprs_rlc_ts_alloc: ensure no rolling slots are allocated ...................................................................... Patch Set 2: (5 comments) I've looked into the AllocTest.err, picked several cases and checked it is valid. I couldn't find any error. We should remove AllocTest.err in the long run. https://gerrit.osmocom.org/c/osmo-pcu/+/22114/1//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-pcu/+/22114/1//COMMIT_MSG at 16 PS1, Line 16: It gives an example for a multi slot class 5 UE which has 6 possible > Seven, not six "other six" means 6 + 1, which matches exectancy given the max subset is 2 for mslot [?] Ack https://gerrit.osmocom.org/c/osmo-pcu/+/22114/1//COMMIT_MSG at 21 PS1, Line 21: > missing SYS# ticket Ack https://gerrit.osmocom.org/c/osmo-pcu/+/22114/1//COMMIT_MSG at 23 PS1, Line 23: > I would also add a referente to B.1 where it talks about the window size of the allocation set. Ack https://gerrit.osmocom.org/c/osmo-pcu/+/22114/1/src/gprs_rlcmac_ts_alloc.cpp File src/gprs_rlcmac_ts_alloc.cpp: https://gerrit.osmocom.org/c/osmo-pcu/+/22114/1/src/gprs_rlcmac_ts_alloc.cpp at 574 PS1, Line 574: * E.g. 'UU-----U' is invalid for a 4 TN window. Excep 8 TN window. */ > "Except". Please add reference to the "window size" comment from TS 45 B. [?] Ack https://gerrit.osmocom.org/c/osmo-pcu/+/22114/1/src/gprs_rlcmac_ts_alloc.cpp at 600 PS1, Line 600: if (mslot_class_get_type(mslot_class) == 1 && num_rx < 8 && > add the same comment as above (ul) Ack -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22114 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I16019bdbe741b37b83b62749b840a3b7f4ddc6c7 Gerrit-Change-Number: 22114 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 14 Jan 2021 22:48:04 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 00:46:13 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Fri, 15 Jan 2021 00:46:13 +0000 Subject: Change in libosmocore[master]: gprs_ns2: check if persistent nsei or nsvc exists when creating dynam... In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22197 to look at the new patch set (#2). Change subject: gprs_ns2: check if persistent nsei or nsvc exists when creating dynamic NSE ...................................................................... gprs_ns2: check if persistent nsei or nsvc exists when creating dynamic NSE When receiving a NS Reset over an unknown NSVC the NS code would create a dynamic NSE. If the NSEI or NSVCI is already configured to a persistant NSE/NSVC the packet should be ignored. Related: SYS#5208 Change-Id: I855911e7d364f2e5b08ea05857747aa63fcf1cd3 --- M src/gb/gprs_ns2.c 1 file changed, 34 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/97/22197/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22197 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I855911e7d364f2e5b08ea05857747aa63fcf1cd3 Gerrit-Change-Number: 22197 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 00:46:13 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Fri, 15 Jan 2021 00:46:13 +0000 Subject: Change in libosmocore[master]: osmo-ns-dummy: allow to create dynamic NSEs In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22198 to look at the new patch set (#2). Change subject: osmo-ns-dummy: allow to create dynamic NSEs ...................................................................... osmo-ns-dummy: allow to create dynamic NSEs Without setting the flag the osmo-ns-dummy won't create any dynamic NSEs. This flag will be removed in a future release but for now it will be included. Related: SYS#5208 Change-Id: I196cc454b5d7bc53848f73596a2f92730b78922b --- M utils/osmo-ns-dummy.c 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/98/22198/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22198 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I196cc454b5d7bc53848f73596a2f92730b78922b Gerrit-Change-Number: 22198 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 00:46:13 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Fri, 15 Jan 2021 00:46:13 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vc: answer UNBLOCK on unblocked nsvc In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22199 to look at the new patch set (#2). Change subject: gprs_ns2_vc: answer UNBLOCK on unblocked nsvc ...................................................................... gprs_ns2_vc: answer UNBLOCK on unblocked nsvc 48.016 7.2: says an UNBLOCK pdu should be answered with UNBLOCK_ACK on already unblocked NSVC Related: SYS#5208 Change-Id: Ic92e99b2607d1e54ecb4668667065502a55a2ce0 --- M src/gb/gprs_ns2_vc_fsm.c 1 file changed, 5 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/99/22199/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22199 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic92e99b2607d1e54ecb4668667065502a55a2ce0 Gerrit-Change-Number: 22199 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 00:46:13 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Fri, 15 Jan 2021 00:46:13 +0000 Subject: Change in libosmocore[master]: gprs_ns2: when calling nsvc_force_unconf for a dynamic NSE drop the NSE. In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22200 to look at the new patch set (#2). Change subject: gprs_ns2: when calling nsvc_force_unconf for a dynamic NSE drop the NSE. ...................................................................... gprs_ns2: when calling nsvc_force_unconf for a dynamic NSE drop the NSE. The vty command is used for test cases to reset NSE state. So dynamic NSE shouldn't present. Related: SYS#5208 Change-Id: I0a4f35c974c8c3b79c48f2f56170722c95254332 --- M src/gb/gprs_ns2_vty2.c 1 file changed, 3 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/00/22200/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22200 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I0a4f35c974c8c3b79c48f2f56170722c95254332 Gerrit-Change-Number: 22200 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 00:46:15 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Fri, 15 Jan 2021 00:46:15 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: clear local and remote entries when SNS failed References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22206 ) Change subject: gprs_ns2_sns: clear local and remote entries when SNS failed ...................................................................... gprs_ns2_sns: clear local and remote entries when SNS failed The local and remote entries should be cleared on SNS Size. Further it can be cleared when SNS failed (e.g. all NSVC become dead) so VTY doesn't show old entries before entering SNS Size. Related: OS#4949 Change-Id: Ie4db81acdd5f8ddf1a1f5dc7645d1144545d9c73 --- M src/gb/gprs_ns2_sns.c 1 file changed, 28 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/06/22206/1 diff --git a/src/gb/gprs_ns2_sns.c b/src/gb/gprs_ns2_sns.c index 1958477..dc40a26 100644 --- a/src/gb/gprs_ns2_sns.c +++ b/src/gb/gprs_ns2_sns.c @@ -255,6 +255,31 @@ } } +static void ns2_clear_ipv46_entries(struct ns2_sns_state *gss) +{ + if (gss->ip4_local) { + talloc_free(gss->ip4_local); + gss->ip4_local = NULL; + } + if (gss->ip4_remote) { + talloc_free(gss->ip4_remote); + gss->ip4_remote = NULL; + } + if (gss->ip6_local) { + talloc_free(gss->ip6_local); + gss->ip6_local = NULL; + } + if (gss->ip6_remote) { + talloc_free(gss->ip6_remote); + gss->ip6_remote = NULL; + } + + gss->num_ip4_local = 0; + gss->num_ip4_remote = 0; + gss->num_ip6_local = 0; + gss->num_ip6_remote = 0; +} + static void ns2_nsvc_create_ip4(struct osmo_fsm_inst *fi, struct gprs_ns2_nse *nse, const struct gprs_ns_ie_ip4_elem *ip4) @@ -713,6 +738,8 @@ if (old_state != GPRS_SNS_ST_UNCONFIGURED) ns2_prim_status_ind(gss->nse, NULL, 0, NS_AFF_CAUSE_SNS_FAILURE); + ns2_clear_ipv46_entries(gss); + /* no initial available */ if (!gss->initial) return; @@ -1360,6 +1387,7 @@ * gprs_ns2_free_nsvcs() will trigger NO_NSVC, prevent this from triggering a reselection */ gss->reselection_running = true; gprs_ns2_free_nsvcs(nse); + ns2_clear_ipv46_entries(gss); /* Choose the next sns endpoint. */ if (llist_empty(&gss->sns_endpoints)) { -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22206 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie4db81acdd5f8ddf1a1f5dc7645d1144545d9c73 Gerrit-Change-Number: 22206 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 01:01:52 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Fri, 15 Jan 2021 01:01:52 +0000 Subject: Change in osmo-ttcn3-hacks[master]: remove unused NS_CodecPort.ttcn/NS_CodecPort_CtrlFunct References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22207 ) Change subject: remove unused NS_CodecPort.ttcn/NS_CodecPort_CtrlFunct ...................................................................... remove unused NS_CodecPort.ttcn/NS_CodecPort_CtrlFunct Change-Id: If885353ec8947309fc7d3ad780448cfc7402e1a4 --- M bts/gen_links.sh M fr-net/gen_links.sh M fr-net/regen_makefile.sh M fr/gen_links.sh M fr/regen_makefile.sh M gbproxy/gen_links.sh M gbproxy/regen_makefile.sh D library/NS_CodecPort.ttcn D library/NS_CodecPort_CtrlFunct.ttcn D library/NS_CodecPort_CtrlFunctDef.cc 10 files changed, 6 insertions(+), 168 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/07/22207/1 diff --git a/bts/gen_links.sh b/bts/gen_links.sh index 7aa8398..cd8e379 100755 --- a/bts/gen_links.sh +++ b/bts/gen_links.sh @@ -34,7 +34,6 @@ DIR=../library FILES="Misc_Helpers.ttcn General_Types.ttcn GSM_Types.ttcn GSM_RR_Types.ttcn Osmocom_VTY_Functions.ttcn GSM_SystemInformation.ttcn GSM_RestOctets.ttcn Osmocom_Types.ttcn RLCMAC_Templates.ttcn RLCMAC_Types.ttcn RLCMAC_CSN1_Templates.ttcn RLCMAC_CSN1_Types.ttcn RLCMAC_EncDec.cc L1CTL_Types.ttcn L1CTL_PortType.ttcn L1CTL_PortType_CtrlFunct.ttcn L1CTL_PortType_CtrlFunctDef.cc LAPDm_RAW_PT.ttcn LAPDm_Types.ttcn " -#FILES+="NS_Emulation.ttcn NS_CodecPort.ttcn NS_CodecPort_CtrlFunct.ttcn NS_CodecPort_CtrlFunctDef.cc " #FILES+="BSSGP_Emulation.ttcn Osmocom_Gb_Types.ttcn " FILES+="IPA_Types.ttcn IPA_CodecPort.ttcn IPA_CodecPort_CtrlFunct.ttcn IPA_CodecPort_CtrlFunctDef.cc IPA_Emulation.ttcnpp IPA_CodecPort.ttcn RSL_Types.ttcn RSL_Emulation.ttcn AbisOML_Types.ttcn " FILES+="Osmocom_CTRL_Types.ttcn Osmocom_CTRL_Functions.ttcn Osmocom_CTRL_Adapter.ttcn " diff --git a/fr-net/gen_links.sh b/fr-net/gen_links.sh index 4ab3ed0..29f4399 100755 --- a/fr-net/gen_links.sh +++ b/fr-net/gen_links.sh @@ -47,7 +47,7 @@ DIR=../library FILES="Misc_Helpers.ttcn General_Types.ttcn Osmocom_VTY_Functions.ttcn Native_Functions.ttcn Native_FunctionDefs.cc GSM_Types.ttcn Osmocom_Types.ttcn " -FILES+="NS_Provider_IPL4.ttcn NS_Provider_FR.ttcn NS_Emulation.ttcnpp NS_CodecPort.ttcn NS_CodecPort_CtrlFunct.ttcn NS_CodecPort_CtrlFunctDef.cc " +FILES+="NS_Provider_IPL4.ttcn NS_Provider_FR.ttcn NS_Emulation.ttcnpp " FILES+="BSSGP_Emulation.ttcnpp Osmocom_Gb_Types.ttcn " FILES+="LLC_Templates.ttcn " gen_links $DIR $FILES diff --git a/fr-net/regen_makefile.sh b/fr-net/regen_makefile.sh index 0a05f6c..6aaf577 100755 --- a/fr-net/regen_makefile.sh +++ b/fr-net/regen_makefile.sh @@ -3,7 +3,7 @@ FILES="*.ttcn *.ttcnpp BSSGP_EncDec.cc IPL4asp_PT.cc IPL4asp_discovery.cc TCCConversion.cc TCCInterface.cc " FILES+="AF_PACKET_PT.cc " FILES+="Native_FunctionDefs.cc " -FILES+="NS_CodecPort_CtrlFunctDef.cc LLC_EncDec.cc LLC_Types.cc TELNETasp_PT.cc " +FILES+="LLC_EncDec.cc LLC_Types.cc TELNETasp_PT.cc " export CPPFLAGS_TTCN3="-DNS_EMULATION_FR" diff --git a/fr/gen_links.sh b/fr/gen_links.sh index 4ab3ed0..29f4399 100755 --- a/fr/gen_links.sh +++ b/fr/gen_links.sh @@ -47,7 +47,7 @@ DIR=../library FILES="Misc_Helpers.ttcn General_Types.ttcn Osmocom_VTY_Functions.ttcn Native_Functions.ttcn Native_FunctionDefs.cc GSM_Types.ttcn Osmocom_Types.ttcn " -FILES+="NS_Provider_IPL4.ttcn NS_Provider_FR.ttcn NS_Emulation.ttcnpp NS_CodecPort.ttcn NS_CodecPort_CtrlFunct.ttcn NS_CodecPort_CtrlFunctDef.cc " +FILES+="NS_Provider_IPL4.ttcn NS_Provider_FR.ttcn NS_Emulation.ttcnpp " FILES+="BSSGP_Emulation.ttcnpp Osmocom_Gb_Types.ttcn " FILES+="LLC_Templates.ttcn " gen_links $DIR $FILES diff --git a/fr/regen_makefile.sh b/fr/regen_makefile.sh index c38fed4..d17f51c 100755 --- a/fr/regen_makefile.sh +++ b/fr/regen_makefile.sh @@ -1,7 +1,7 @@ #!/bin/bash FILES="*.ttcn *.ttcnpp IPL4asp_PT.cc IPL4asp_discovery.cc TCCConversion.cc TCCInterface.cc Native_FunctionDefs.cc " -FILES+="BSSGP_EncDec.cc NS_CodecPort_CtrlFunctDef.cc LLC_EncDec.cc TELNETasp_PT.cc " +FILES+="BSSGP_EncDec.cc LLC_EncDec.cc TELNETasp_PT.cc " FILES+="AF_PACKET_PT.cc AF_PACKET_PT.hh " export CPPFLAGS_TTCN3="-DNS_EMULATION_FR" diff --git a/gbproxy/gen_links.sh b/gbproxy/gen_links.sh index a614191..d6bf22e 100755 --- a/gbproxy/gen_links.sh +++ b/gbproxy/gen_links.sh @@ -84,7 +84,7 @@ DIR=../library FILES="Misc_Helpers.ttcn General_Types.ttcn GSM_Types.ttcn GSM_RR_Types.ttcn Osmocom_Types.ttcn RLCMAC_Templates.ttcn RLCMAC_Types.ttcn RLCMAC_CSN1_Templates.ttcn RLCMAC_CSN1_Types.ttcn RLCMAC_EncDec.cc " -FILES+="NS_Provider_IPL4.ttcn NS_Provider_FR.ttcn NS_Emulation.ttcnpp NS_CodecPort.ttcn NS_CodecPort_CtrlFunct.ttcn NS_CodecPort_CtrlFunctDef.cc " +FILES+="NS_Provider_IPL4.ttcn NS_Provider_FR.ttcn NS_Emulation.ttcnpp " FILES+="BSSGP_Emulation.ttcnpp Osmocom_Gb_Types.ttcn " FILES+="PCUIF_Types.ttcn " FILES+="Osmocom_CTRL_Types.ttcn Osmocom_CTRL_Functions.ttcn Osmocom_CTRL_Adapter.ttcn " diff --git a/gbproxy/regen_makefile.sh b/gbproxy/regen_makefile.sh index 93ef712..e82649c 100755 --- a/gbproxy/regen_makefile.sh +++ b/gbproxy/regen_makefile.sh @@ -1,6 +1,6 @@ #!/bin/bash -FILES="*.ttcn *.ttcnpp BSSGP_EncDec.cc LLC_EncDec.cc IPL4asp_PT.cc IPL4asp_discovery.cc TCCConversion.cc TCCInterface.cc NS_CodecPort_CtrlFunctDef.cc RLCMAC_EncDec.cc Native_FunctionDefs.cc TELNETasp_PT.cc IPA_CodecPort_CtrlFunctDef.cc GTPU_EncDec.cc GTPC_EncDec.cc GTP_CodecPort_CtrlFunctDef.cc SCCP_EncDec.cc SCTPasp_PT.cc " +FILES="*.ttcn *.ttcnpp BSSGP_EncDec.cc LLC_EncDec.cc IPL4asp_PT.cc IPL4asp_discovery.cc TCCConversion.cc TCCInterface.cc RLCMAC_EncDec.cc Native_FunctionDefs.cc TELNETasp_PT.cc IPA_CodecPort_CtrlFunctDef.cc GTPU_EncDec.cc GTPC_EncDec.cc GTP_CodecPort_CtrlFunctDef.cc SCCP_EncDec.cc SCTPasp_PT.cc " FILES+="AF_PACKET_PT.cc AF_PACKET_PT.hh " export CPPFLAGS_TTCN3="-DIPA_EMULATION_GSUP -DIPA_EMULATION_CTRL -DUSE_MTP3_DISTRIBUTOR -DBSSGP_EM_L3 -DNS_EMULATION_FR" diff --git a/library/NS_CodecPort.ttcn b/library/NS_CodecPort.ttcn deleted file mode 100644 index 82ba55b..0000000 --- a/library/NS_CodecPort.ttcn +++ /dev/null @@ -1,61 +0,0 @@ -module NS_CodecPort { - - import from IPL4asp_PortType all; - import from IPL4asp_Types all; - import from NS_Types all; - - type record NS_RecvFrom { - ConnectionId connId, - HostName remName, - PortNumber remPort, - HostName locName, - PortNumber locPort, - PDU_NS msg - } - - template NS_RecvFrom t_NS_RecvFrom(template PDU_NS pdu) := { - connId := ?, - remName := ?, - remPort := ?, - locName := ?, - locPort := ?, - msg := pdu - }; - - type record NS_Send { - ConnectionId connId, - PDU_NS msg - } - - template NS_Send t_NS_Send(template ConnectionId connId, template PDU_NS msg) := { - connId := connId, - msg := msg - } - - private function IPL4_to_NS_RecvFrom(in ASP_RecvFrom pin, out NS_RecvFrom pout) { - pout.connId := pin.connId; - pout.remName := pin.remName; - pout.remPort := pin.remPort; - pout.locName := pin.locName; - pout.locPort := pin.locPort; - pout.msg := dec_PDU_NS(pin.msg); - } with { extension "prototype(fast)" }; - - private function NS_to_IPL4_Send(in NS_Send pin, out ASP_Send pout) { - pout.connId := pin.connId; - pout.proto := { udp := {} }; - pout.msg := enc_PDU_NS(pin.msg); - } with { extension "prototype(fast)" }; - - type port NS_CODEC_PT message { - out NS_Send; - in NS_RecvFrom, - ASP_ConnId_ReadyToRelease, - ASP_Event; - } with { extension "user IPL4asp_PT - out(NS_Send -> ASP_Send: function(NS_to_IPL4_Send)) - in(ASP_RecvFrom -> NS_RecvFrom: function(IPL4_to_NS_RecvFrom); - ASP_ConnId_ReadyToRelease -> ASP_ConnId_ReadyToRelease: simple; - ASP_Event -> ASP_Event: simple)" - } -} diff --git a/library/NS_CodecPort_CtrlFunct.ttcn b/library/NS_CodecPort_CtrlFunct.ttcn deleted file mode 100644 index cc77dda..0000000 --- a/library/NS_CodecPort_CtrlFunct.ttcn +++ /dev/null @@ -1,44 +0,0 @@ -module NS_CodecPort_CtrlFunct { - - import from NS_CodecPort all; - import from IPL4asp_Types all; - - external function f_IPL4_listen( - inout NS_CODEC_PT portRef, - in HostName locName, - in PortNumber locPort, - in ProtoTuple proto, - in OptionList options := {} - ) return Result; - - external function f_IPL4_connect( - inout NS_CODEC_PT portRef, - in HostName remName, - in PortNumber remPort, - in HostName locName, - in PortNumber locPort, - in ConnectionId connId, - in ProtoTuple proto, - in OptionList options := {} - ) return Result; - - external function f_IPL4_close( - inout NS_CODEC_PT portRef, - in ConnectionId id, - in ProtoTuple proto := { unspecified := {} } - ) return Result; - - external function f_IPL4_setUserData( - inout NS_CODEC_PT portRef, - in ConnectionId id, - in UserData userData - ) return Result; - - external function f_IPL4_getUserData( - inout NS_CODEC_PT portRef, - in ConnectionId id, - out UserData userData - ) return Result; - -} - diff --git a/library/NS_CodecPort_CtrlFunctDef.cc b/library/NS_CodecPort_CtrlFunctDef.cc deleted file mode 100644 index a6da7ac..0000000 --- a/library/NS_CodecPort_CtrlFunctDef.cc +++ /dev/null @@ -1,56 +0,0 @@ -#include "IPL4asp_PortType.hh" -#include "NS_CodecPort.hh" -#include "IPL4asp_PT.hh" - -namespace NS__CodecPort__CtrlFunct { - - IPL4asp__Types::Result f__IPL4__listen( - NS__CodecPort::NS__CODEC__PT& portRef, - const IPL4asp__Types::HostName& locName, - const IPL4asp__Types::PortNumber& locPort, - const IPL4asp__Types::ProtoTuple& proto, - const IPL4asp__Types::OptionList& options) - { - return f__IPL4__PROVIDER__listen(portRef, locName, locPort, proto, options); - } - - IPL4asp__Types::Result f__IPL4__connect( - NS__CodecPort::NS__CODEC__PT& portRef, - const IPL4asp__Types::HostName& remName, - const IPL4asp__Types::PortNumber& remPort, - const IPL4asp__Types::HostName& locName, - const IPL4asp__Types::PortNumber& locPort, - const IPL4asp__Types::ConnectionId& connId, - const IPL4asp__Types::ProtoTuple& proto, - const IPL4asp__Types::OptionList& options) - { - return f__IPL4__PROVIDER__connect(portRef, remName, remPort, - locName, locPort, connId, proto, options); - } - - IPL4asp__Types::Result f__IPL4__close( - NS__CodecPort::NS__CODEC__PT& portRef, - const IPL4asp__Types::ConnectionId& connId, - const IPL4asp__Types::ProtoTuple& proto) - { - return f__IPL4__PROVIDER__close(portRef, connId, proto); - } - - IPL4asp__Types::Result f__IPL4__setUserData( - NS__CodecPort::NS__CODEC__PT& portRef, - const IPL4asp__Types::ConnectionId& connId, - const IPL4asp__Types::UserData& userData) - { - return f__IPL4__PROVIDER__setUserData(portRef, connId, userData); - } - - IPL4asp__Types::Result f__IPL4__getUserData( - NS__CodecPort::NS__CODEC__PT& portRef, - const IPL4asp__Types::ConnectionId& connId, - IPL4asp__Types::UserData& userData) - { - return f__IPL4__PROVIDER__getUserData(portRef, connId, userData); - } - -} - -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22207 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If885353ec8947309fc7d3ad780448cfc7402e1a4 Gerrit-Change-Number: 22207 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 01:02:13 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Fri, 15 Jan 2021 01:02:13 +0000 Subject: Change in osmo-ttcn3-hacks[master]: RAW_NS: rework NS connection to use NS_Provider In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22090 ) Change subject: RAW_NS: rework NS connection to use NS_Provider ...................................................................... Set Ready For Review -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22090 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I8a3b6c72798a75f434f54229fdbfc802cd13967e Gerrit-Change-Number: 22090 Gerrit-PatchSet: 4 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 15 Jan 2021 01:02:13 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Fri Jan 15 01:49:59 2021 From: admin at opensuse.org (OBS Notification) Date: Fri, 15 Jan 2021 01:49:59 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <6000f4df8e026_6532aec7c1d8600324760@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/xUbuntu_20.04/x86_64 Package network:osmocom:nightly/simtrace2 failed to build in xUbuntu_20.04/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 113s] [COMPILING libboard/qmod/source/wwan_perst.c] [ 113s] [COMPILING libboard/qmod/source/card_pres.c] [ 113s] [COMPILING libboard/qmod/source/wwan_led.c] [ 113s] [COMPILING libboard/qmod/source/i2c.c] [ 113s] [COMPILING libboard/qmod/source/board_qmod.c] [ 113s] [COMPILING apps/dfu/main.c] [ 113s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 113s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 113s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 113s] Memory region Used Size Region Size %age Used [ 113s] rom: 16588 B 16 KB 101.25% [ 113s] ram: 11672 B 48 KB 23.75/usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 113s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 204 bytes [ 113s] collect2: error: ld returned 1 exit status [ 113s] % [ 113s] make[2]: *** [Makefile:234: flash] Error 1 [ 113s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 113s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 113s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 113s] dh_auto_build: error: make -j1 returned exit code 2 [ 113s] make: *** [debian/rules:16: build] Error 25 [ 113s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 113s] ### VM INTERACTION START ### [ 116s] [ 108.336291] sysrq: Power Off [ 116s] [ 108.340670] reboot: Power down [ 117s] ### VM INTERACTION END ### [ 117s] [ 117s] hci-cnode1-m0 failed "build simtrace2_0.7.0.69.aadd.dsc" at Fri Jan 15 01:49:48 UTC 2021. [ 117s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Jan 15 01:49:59 2021 From: admin at opensuse.org (OBS Notification) Date: Fri, 15 Jan 2021 01:49:59 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.10/x86_64 In-Reply-To: References: Message-ID: <6000f4e22a57f_6532aec7c1d8600324911@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/xUbuntu_20.10/x86_64 Package network:osmocom:nightly/simtrace2 failed to build in xUbuntu_20.10/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 115s] [COMPILING apps/dfu/main.c] [ 115s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 115s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 115s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 115s] Memory region Used Size Region Size %age Used [ 115s] rom: 16580 B 16 KB 101.20% [ 115s] ram: 11672 B 48 KB 23.75/usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 115s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 115s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 115s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 115s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 115s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 115s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 196 bytes [ 115s] collect2: error: ld returned 1 exit status [ 115s] % [ 115s] make[2]: *** [Makefile:234: flash] Error 1 [ 115s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 115s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 115s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 115s] dh_auto_build: error: make -j1 returned exit code 2 [ 115s] make: *** [debian/rules:16: build] Error 25 [ 115s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 115s] ### VM INTERACTION START ### [ 118s] [ 108.691114] sysrq: Power Off [ 118s] [ 108.695799] reboot: Power down [ 118s] ### VM INTERACTION END ### [ 118s] [ 118s] sheep87 failed "build simtrace2_0.7.0.69.aadd.dsc" at Fri Jan 15 01:49:55 UTC 2021. [ 118s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Fri Jan 15 03:49:27 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Fri, 15 Jan 2021 03:49:27 +0000 Subject: Change in libosmocore[master]: gprs_ns2: flag then NSE as dead in nse_free() References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22208 ) Change subject: gprs_ns2: flag then NSE as dead in nse_free() ...................................................................... gprs_ns2: flag then NSE as dead in nse_free() The transfer cap call in ns2_prim_status_ind() asserts if NSE is in an invalid state (nse is either alive or has NSVCS). Change-Id: I535b3e5dd7240d19dd685652173775b250f5cc2d --- M src/gb/gprs_ns2.c 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/08/22208/1 diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c index 0335ad6..43a00a4 100644 --- a/src/gb/gprs_ns2.c +++ b/src/gb/gprs_ns2.c @@ -735,6 +735,7 @@ if (!nse) return; + nse->alive = false; gprs_ns2_free_nsvcs(nse); ns2_prim_status_ind(nse, NULL, 0, NS_AFF_CAUSE_FAILURE); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22208 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I535b3e5dd7240d19dd685652173775b250f5cc2d Gerrit-Change-Number: 22208 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 03:49:28 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Fri, 15 Jan 2021 03:49:28 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vc_fsm: fix spaces and remove wrong comment References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22209 ) Change subject: gprs_ns2_vc_fsm: fix spaces and remove wrong comment ...................................................................... gprs_ns2_vc_fsm: fix spaces and remove wrong comment Change-Id: I52799d8ce8244fae7512a6e14a3cf2408a218c2d --- M src/gb/gprs_ns2_vc_fsm.c 1 file changed, 2 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/09/22209/1 diff --git a/src/gb/gprs_ns2_vc_fsm.c b/src/gb/gprs_ns2_vc_fsm.c index 78b0691..641fcc3 100644 --- a/src/gb/gprs_ns2_vc_fsm.c +++ b/src/gb/gprs_ns2_vc_fsm.c @@ -111,7 +111,7 @@ GPRS_NS2_EV_UNITDATA, - GPRS_NS2_EV_FORCE_UNCONFIGURED, + GPRS_NS2_EV_FORCE_UNCONFIGURED, /* called via vty for tests */ }; static const struct value_string gprs_ns2_vc_event_names[] = { @@ -126,7 +126,7 @@ { GPRS_NS2_EV_ALIVE_ACK, "ALIVE_ACK" }, { GPRS_NS2_EV_STATUS, "STATUS" }, { GPRS_NS2_EV_UNITDATA, "UNITDATA" }, - {GPRS_NS2_EV_FORCE_UNCONFIGURED, "FORCE_UNCONFIGURED"}, + { GPRS_NS2_EV_FORCE_UNCONFIGURED, "FORCE_UNCONFIGURED" }, { 0, NULL } }; @@ -431,7 +431,6 @@ struct gprs_ns2_inst *nsi = ns_inst_from_fi(fi); struct gprs_ns2_vc_priv *priv = fi->priv; - /* PCU timeouts */ switch (fi->state) { case GPRS_NS2_ST_RESET: if (priv->initiate_reset) { -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22209 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I52799d8ce8244fae7512a6e14a3cf2408a218c2d Gerrit-Change-Number: 22209 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 03:49:29 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Fri, 15 Jan 2021 03:49:29 +0000 Subject: Change in libosmocore[master]: WIP: implement BLOCK/UNBLOCK of a NSVC by vty References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22210 ) Change subject: WIP: implement BLOCK/UNBLOCK of a NSVC by vty ...................................................................... WIP: implement BLOCK/UNBLOCK of a NSVC by vty The vty should be able to block or unblock a specific NSVC. Further more this case is special for the UNITDATA as those can be still received until the other side response to the BLOCK PDU. TODO: unit or ttcn3 tests Related: OS#4939 Change-Id: Ic0ce3c5fabc8644cc1ee71a8f6dd783fadf7b84d --- M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_vc_fsm.c M src/gb/gprs_ns2_vty2.c 3 files changed, 107 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/10/22210/1 diff --git a/src/gb/gprs_ns2_internal.h b/src/gb/gprs_ns2_internal.h index c33f7f8..954671f 100644 --- a/src/gb/gprs_ns2_internal.h +++ b/src/gb/gprs_ns2_internal.h @@ -311,6 +311,8 @@ int gprs_ns2_vc_rx(struct gprs_ns2_vc *nsvc, struct msgb *msg, struct tlv_parsed *tp); int gprs_ns2_vc_is_alive(struct gprs_ns2_vc *nsvc); int gprs_ns2_vc_is_unblocked(struct gprs_ns2_vc *nsvc); +int ns2_vc_block(struct gprs_ns2_vc *nsvc); +int ns2_vc_unblock(struct gprs_ns2_vc *nsvc); /* nse */ void ns2_nse_notify_unblocked(struct gprs_ns2_vc *nsvc, bool unblocked); diff --git a/src/gb/gprs_ns2_vc_fsm.c b/src/gb/gprs_ns2_vc_fsm.c index 641fcc3..4af4700 100644 --- a/src/gb/gprs_ns2_vc_fsm.c +++ b/src/gb/gprs_ns2_vc_fsm.c @@ -59,6 +59,10 @@ * It can change during runtime. The side which blocks an unblocked side.*/ bool initiate_block; bool initiate_reset; + /* if blocked by O&M/vty */ + bool om_blocked; + /* if unitdata is forwarded to the user */ + bool accept_unitdata; /* the alive counter is present in all states */ struct { @@ -112,6 +116,8 @@ GPRS_NS2_EV_UNITDATA, GPRS_NS2_EV_FORCE_UNCONFIGURED, /* called via vty for tests */ + GPRS_NS2_EV_OM_BLOCK, /* vty cmd: block */ + GPRS_NS2_EV_OM_UNBLOCK, /* vty cmd: unblock*/ }; static const struct value_string gprs_ns2_vc_event_names[] = { @@ -127,6 +133,8 @@ { GPRS_NS2_EV_STATUS, "STATUS" }, { GPRS_NS2_EV_UNITDATA, "UNITDATA" }, { GPRS_NS2_EV_FORCE_UNCONFIGURED, "FORCE_UNCONFIGURED" }, + { GPRS_NS2_EV_OM_BLOCK, "O&M_BLOCK"}, + { GPRS_NS2_EV_OM_UNBLOCK, "O&M_UNBLOCK"}, { 0, NULL } }; @@ -245,6 +253,7 @@ if (old_state != GPRS_NS2_ST_RESET) priv->N = 0; + priv->accept_unitdata = false; if (priv->initiate_reset) ns2_tx_reset(priv->nsvc, NS_CAUSE_OM_INTERVENTION); @@ -283,8 +292,12 @@ if (old_state != GPRS_NS2_ST_BLOCKED) priv->N = 0; - if (priv->initiate_block) - ns2_tx_unblock(priv->nsvc); + if (priv->initiate_block) { + if (priv->om_blocked) + ns2_tx_block(priv->nsvc, NS_CAUSE_OM_INTERVENTION); + else + ns2_tx_unblock(priv->nsvc); + } start_test_procedure(priv); } @@ -293,7 +306,24 @@ { struct gprs_ns2_vc_priv *priv = fi->priv; - if (priv->initiate_block) { + if (priv->om_blocked) { + switch (event) { + case GPRS_NS2_EV_BLOCK_ACK: + priv->accept_unitdata = false; + osmo_timer_del(&fi->timer); + break; + case GPRS_NS2_EV_BLOCK: + priv->accept_unitdata = false; + ns2_tx_block_ack(priv->nsvc); + osmo_timer_del(&fi->timer); + break; + case GPRS_NS2_EV_UNBLOCK: + priv->accept_unitdata = false; + ns2_tx_block(priv->nsvc, NS_CAUSE_OM_INTERVENTION); + osmo_timer_add(&fi->timer); + break; + } + } else if (priv->initiate_block) { switch (event) { case GPRS_NS2_EV_BLOCK: /* TODO: BLOCK is a UNBLOCK_NACK */ @@ -303,6 +333,7 @@ ns2_tx_unblock_ack(priv->nsvc); /* fall through */ case GPRS_NS2_EV_UNBLOCK_ACK: + priv->accept_unitdata = true; osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_UNBLOCKED, 0, NS_TOUT_TNS_TEST); break; @@ -325,6 +356,7 @@ struct gprs_ns2_vc *nsvc = priv->nsvc; struct gprs_ns2_nse *nse = nsvc->nse; + priv->accept_unitdata = true; ns2_nse_notify_unblocked(nsvc, true); ns2_prim_status_ind(nse, nsvc, 0, NS_AFF_CAUSE_VC_RECOVERY); } @@ -446,10 +478,19 @@ case GPRS_NS2_ST_BLOCKED: if (priv->initiate_block) { priv->N++; - if (priv->N <= nsi->timeout[NS_TOUT_TNS_BLOCK_RETRIES]) { - osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_BLOCKED, nsi->timeout[NS_TOUT_TNS_BLOCK], 0); + if (priv->om_blocked) { + if (priv->N <= nsi->timeout[NS_TOUT_TNS_BLOCK_RETRIES]) { + osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_BLOCKED, nsi->timeout[NS_TOUT_TNS_BLOCK], 0); + } else { + /* 7.2 stop accepting data when BLOCK PDU not responded */ + priv->accept_unitdata = false; + } } else { - osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_RESET, nsi->timeout[NS_TOUT_TNS_RESET], 0); + if (priv->N <= nsi->timeout[NS_TOUT_TNS_BLOCK_RETRIES]) { + osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_BLOCKED, nsi->timeout[NS_TOUT_TNS_BLOCK], 0); + } else { + osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_RESET, nsi->timeout[NS_TOUT_TNS_RESET], 0); + } } } break; @@ -550,7 +591,7 @@ switch (fi->state) { case GPRS_NS2_ST_BLOCKED: /* 7.2.1: the BLOCKED_ACK might be lost */ - if (priv->initiate_block) { + if (priv->accept_unitdata) { gprs_ns2_recv_unitdata(fi, msg); return; } @@ -576,6 +617,20 @@ return; } break; + case GPRS_NS2_EV_OM_BLOCK: + /* vty cmd: block */ + priv->initiate_block = true; + priv->om_blocked = true; + osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_BLOCKED, nsi->timeout[NS_TOUT_TNS_BLOCK], 0); + break; + case GPRS_NS2_EV_OM_UNBLOCK: + /* vty cmd: unblock*/ + if (!priv->om_blocked) + return; + priv->om_blocked = false; + if (fi->state == GPRS_NS2_ST_BLOCKED) + osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_BLOCKED, nsi->timeout[NS_TOUT_TNS_BLOCK], 0); + break; } } @@ -653,6 +708,22 @@ return osmo_fsm_inst_dispatch(nsvc->fi, GPRS_NS2_EV_FORCE_UNCONFIGURED, NULL); } +/*! Block a NS-VC. + * \param nsvc the virtual circuit + * \return 0 on success; negative on error */ +int ns2_vc_block(struct gprs_ns2_vc *nsvc) +{ + return osmo_fsm_inst_dispatch(nsvc->fi, GPRS_NS2_EV_BLOCK, NULL); +} + +/*! Unblock a NS-VC. + * \param nsvc the virtual circuit + * \return 0 on success; negative on error */ +int ns2_vc_unblock(struct gprs_ns2_vc *nsvc) +{ + return osmo_fsm_inst_dispatch(nsvc->fi, GPRS_NS2_EV_UNBLOCK, NULL); +} + /*! entry point for messages from the driver/VL * \param nsvc virtual circuit on which the message was received * \param msg message that was received diff --git a/src/gb/gprs_ns2_vty2.c b/src/gb/gprs_ns2_vty2.c index 5af8fbc..87e891d 100644 --- a/src/gb/gprs_ns2_vty2.c +++ b/src/gb/gprs_ns2_vty2.c @@ -1503,6 +1503,32 @@ return CMD_SUCCESS; } +DEFUN(nsvc_block, nsvc_block_cmd, + "nsvci <0-65535> (block|unblock)", + "NS Virtual Connection\n" + "NS Virtual Connection\n" + "Block or Unblock a NSVC. As cause code O&M intervention will be used.\n") +{ + struct gprs_ns2_inst *nsi = vty_nsi; + struct gprs_ns2_vc *nsvc; + + uint16_t id = atoi(argv[0]); + + nsvc = gprs_ns2_nsvc_by_nsvci(nsi, id); + if (!nsvc) { + vty_out(vty, "Could not find NSVCI %u%s", id, VTY_NEWLINE); + return CMD_WARNING; + } + + if (!strcmp(argv[1], "block")) { + ns2_vc_block(nsvc); + } else { + ns2_vc_unblock(nsvc); + } + + return CMD_SUCCESS; +} + static void log_set_nse_filter(struct log_target *target, struct gprs_ns2_nse *nse) { @@ -1608,6 +1634,7 @@ install_lib_element_ve(&logging_fltr_nsvc_cmd); install_lib_element(ENABLE_NODE, &nsvc_force_unconf_cmd); + install_lib_element(ENABLE_NODE, &nsvc_block_cmd); install_lib_element(CFG_LOG_NODE, &logging_fltr_nse_cmd); install_lib_element(CFG_LOG_NODE, &logging_fltr_nsvc_cmd); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22210 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic0ce3c5fabc8644cc1ee71a8f6dd783fadf7b84d Gerrit-Change-Number: 22210 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 09:39:44 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 15 Jan 2021 09:39:44 +0000 Subject: Change in osmo-ci[master]: Revert "osmo-build-dep.sh: don't build osmo-gsm-manuals" In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22158 ) Change subject: Revert "osmo-build-dep.sh: don't build osmo-gsm-manuals" ...................................................................... Patch Set 2: Verified+1 This change is ready for review. -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22158 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I88d57ee04775dc75e6ca3152d7edfa7f47608c8a Gerrit-Change-Number: 22158 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: osmith Gerrit-Comment-Date: Fri, 15 Jan 2021 09:39:44 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 09:53:21 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 15 Jan 2021 09:53:21 +0000 Subject: Change in osmo-pcu[master]: Split PCU global PCU object from BTS object In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22162 ) Change subject: Split PCU global PCU object from BTS object ...................................................................... Patch Set 4: (1 comment) https://gerrit.osmocom.org/c/osmo-pcu/+/22162/4/src/bts.h File src/bts.h: https://gerrit.osmocom.org/c/osmo-pcu/+/22162/4/src/bts.h at 315 PS4, Line 315: void send_gsmtap(enum pcu_gsmtap_category categ, bool uplink, uint8_t trx_no, Unrelated ws change. -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22162 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I88e3c6471b80245ce3798223f1a61190f14aa840 Gerrit-Change-Number: 22162 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: fixeria Gerrit-Comment-Date: Fri, 15 Jan 2021 09:53:21 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 10:38:53 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 15 Jan 2021 10:38:53 +0000 Subject: Change in osmo-pcu[master]: Split PCU global PCU object from BTS object In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-pcu/+/22162 to look at the new patch set (#5). Change subject: Split PCU global PCU object from BTS object ...................................................................... Split PCU global PCU object from BTS object Currently the BTS object (and gprs_rlcmac_bts struct) are used to hold both PCU global fields and BTS specific fields, all mangled together. The BTS is even accessed in lots of places by means of a singleton. This patch introduces a new struct gprs_pcu object aimed at holding all global state, and several fields are already moved from BTS to it. The new object can be accessed as global variable "the_pcu", reusing and including an already exisitng "the_pcu" global variable only used for bssgp related purposes so far. This is only a first step towards having a complete split global pcu and BTS, some fields are still kept in BTS and will be moved over follow-up smaller patches in the future (since this patch is already quite big). So far, the code still only supports one BTS, which can be accessed using the_pcu->bts. In the future that field will be replaced with a list, and the BTS singletons will be removed. The cur_fn output changes in TbfTest are actually a side effect fix, since the singleton main_bts() now points internally to the_pcu->bts, hence the same we allocate and assign in the test. Beforehand, "the_bts" was allocated in the stack while main_bts() still returned an unrelated singleton BTS object instance. Related: OS#4935 Change-Id: I88e3c6471b80245ce3798223f1a61190f14aa840 --- M src/Makefile.am M src/bts.cpp M src/bts.h M src/gprs_bssgp_pcu.cpp M src/gprs_bssgp_pcu.h A src/gprs_pcu.c A src/gprs_pcu.h M src/gprs_rlcmac_ts_alloc.cpp M src/osmobts_sock.cpp M src/pcu_l1_if.cpp M src/pcu_l1_if.h M src/pcu_main.cpp M src/pcu_vty.c M src/tbf.cpp M tests/alloc/AllocTest.cpp M tests/alloc/MslotTest.cpp M tests/app_info/AppInfoTest.cpp M tests/edge/EdgeTest.cpp M tests/emu/pcu_emu.cpp M tests/fn/FnTest.cpp M tests/ms/MsTest.cpp M tests/tbf/TbfTest.cpp M tests/tbf/TbfTest.err M tests/types/TypesTest.cpp 24 files changed, 1,005 insertions(+), 787 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/62/22162/5 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22162 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I88e3c6471b80245ce3798223f1a61190f14aa840 Gerrit-Change-Number: 22162 Gerrit-PatchSet: 5 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: fixeria Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 10:40:21 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 15 Jan 2021 10:40:21 +0000 Subject: Change in osmo-sip-connector[master]: mncc: add return code for write/send function In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sip-connector/+/22202 ) Change subject: mncc: add return code for write/send function ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-sip-connector/+/22202 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sip-connector Gerrit-Branch: master Gerrit-Change-Id: Ic926d192c238ef84fb3ad2be27e507e010b0e93f Gerrit-Change-Number: 22202 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 15 Jan 2021 10:40:21 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 10:42:45 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 15 Jan 2021 10:42:45 +0000 Subject: Change in osmo-sip-connector[master]: mncc: remove callref argument from mncc_write() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sip-connector/+/22201 ) Change subject: mncc: remove callref argument from mncc_write() ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-sip-connector/+/22201 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sip-connector Gerrit-Branch: master Gerrit-Change-Id: Ia156010194c1f4334a4966d01aadfd02fa7097a8 Gerrit-Change-Number: 22201 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 15 Jan 2021 10:42:45 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 10:44:04 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 15 Jan 2021 10:44:04 +0000 Subject: Change in osmo-sip-connector[master]: mncc: Introduce mncc_rtp_write similiar to mncc_write In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sip-connector/+/22203 ) Change subject: mncc: Introduce mncc_rtp_write similiar to mncc_write ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-sip-connector/+/22203 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sip-connector Gerrit-Branch: master Gerrit-Change-Id: Ia84602955b913a3bb13de7a6a92048799f2e1955 Gerrit-Change-Number: 22203 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 15 Jan 2021 10:44:04 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 10:44:32 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 15 Jan 2021 10:44:32 +0000 Subject: Change in osmo-sip-connector[master]: mncc: mncc_create_remote_leg: use mncc_write instead of write direct ... In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sip-connector/+/22204 ) Change subject: mncc: mncc_create_remote_leg: use mncc_write instead of write direct to the fd ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-sip-connector/+/22204 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sip-connector Gerrit-Branch: master Gerrit-Change-Id: I870c16d7ee5e5424304f3c1c9fb78af418ae2577 Gerrit-Change-Number: 22204 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 15 Jan 2021 10:44:32 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 10:44:45 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 15 Jan 2021 10:44:45 +0000 Subject: Change in osmo-ttcn3-hacks[master]: update expected-results.xml In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22205 ) Change subject: update expected-results.xml ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22205 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ib4399aa488afd917e3eda5e79d56ea3797ef7c78 Gerrit-Change-Number: 22205 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 15 Jan 2021 10:44:45 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 10:47:44 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 15 Jan 2021 10:47:44 +0000 Subject: Change in osmo-pcu[master]: gprs_rlc_ts_alloc: ensure no rolling slots are allocated In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22114 ) Change subject: gprs_rlc_ts_alloc: ensure no rolling slots are allocated ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22114 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I16019bdbe741b37b83b62749b840a3b7f4ddc6c7 Gerrit-Change-Number: 22114 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 15 Jan 2021 10:47:44 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 10:50:16 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 15 Jan 2021 10:50:16 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vc: answer UNBLOCK on unblocked nsvc In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22199 ) Change subject: gprs_ns2_vc: answer UNBLOCK on unblocked nsvc ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22199 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic92e99b2607d1e54ecb4668667065502a55a2ce0 Gerrit-Change-Number: 22199 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 15 Jan 2021 10:50:16 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 10:51:02 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 15 Jan 2021 10:51:02 +0000 Subject: Change in libosmocore[master]: gprs_ns2: when calling nsvc_force_unconf for a dynamic NSE drop the NSE. In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22200 ) Change subject: gprs_ns2: when calling nsvc_force_unconf for a dynamic NSE drop the NSE. ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22200 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I0a4f35c974c8c3b79c48f2f56170722c95254332 Gerrit-Change-Number: 22200 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 15 Jan 2021 10:51:02 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 10:51:46 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 15 Jan 2021 10:51:46 +0000 Subject: Change in osmo-ttcn3-hacks[master]: remove unused NS_CodecPort.ttcn/NS_CodecPort_CtrlFunct In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22207 ) Change subject: remove unused NS_CodecPort.ttcn/NS_CodecPort_CtrlFunct ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22207 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If885353ec8947309fc7d3ad780448cfc7402e1a4 Gerrit-Change-Number: 22207 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 15 Jan 2021 10:51:46 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 10:56:25 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 15 Jan 2021 10:56:25 +0000 Subject: Change in osmo-ttcn3-hacks[master]: RAW_NS: rework NS connection to use NS_Provider In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22090 ) Change subject: RAW_NS: rework NS connection to use NS_Provider ...................................................................... Patch Set 4: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22090/4/library/RAW_NS.ttcnpp File library/RAW_NS.ttcnpp: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22090/4/library/RAW_NS.ttcnpp at 78 PS4, Line 78: vc_NSP_IP[i].stop; Don't you need to check if they were assigned / started before doing this? -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22090 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I8a3b6c72798a75f434f54229fdbfc802cd13967e Gerrit-Change-Number: 22090 Gerrit-PatchSet: 4 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 15 Jan 2021 10:56:25 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 10:57:05 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 15 Jan 2021 10:57:05 +0000 Subject: Change in libosmocore[master]: gprs_ns2: flag then NSE as dead in nse_free() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22208 ) Change subject: gprs_ns2: flag then NSE as dead in nse_free() ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22208 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I535b3e5dd7240d19dd685652173775b250f5cc2d Gerrit-Change-Number: 22208 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 15 Jan 2021 10:57:05 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 10:58:31 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 15 Jan 2021 10:58:31 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: clear local and remote entries when SNS failed In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22206 ) Change subject: gprs_ns2_sns: clear local and remote entries when SNS failed ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/22206/1/src/gb/gprs_ns2_sns.c File src/gb/gprs_ns2_sns.c: https://gerrit.osmocom.org/c/libosmocore/+/22206/1/src/gb/gprs_ns2_sns.c at 261 PS1, Line 261: talloc_free(gss->ip4_local); TALLOC_FREE(gss->ip4_local); you can then remove the = NULL call and {} -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22206 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie4db81acdd5f8ddf1a1f5dc7645d1144545d9c73 Gerrit-Change-Number: 22206 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 15 Jan 2021 10:58:31 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 10:59:29 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 15 Jan 2021 10:59:29 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vc_fsm: fix spaces and remove wrong comment In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22209 ) Change subject: gprs_ns2_vc_fsm: fix spaces and remove wrong comment ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22209 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I52799d8ce8244fae7512a6e14a3cf2408a218c2d Gerrit-Change-Number: 22209 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 15 Jan 2021 10:59:29 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 14:39:04 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 15 Jan 2021 14:39:04 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: clear local and remote entries when SNS failed In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22206 ) Change subject: gprs_ns2_sns: clear local and remote entries when SNS failed ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/22206/1/src/gb/gprs_ns2_sns.c File src/gb/gprs_ns2_sns.c: https://gerrit.osmocom.org/c/libosmocore/+/22206/1/src/gb/gprs_ns2_sns.c at 261 PS1, Line 261: talloc_free(gss->ip4_local); > TALLOC_FREE(gss->ip4_local); [?] Not sure I really prefer that since the name doesn't really indicate what's happening. otoh talloc_free ignores NULL so if you're worried about the size of the code here you could unconditionally talloc_free() and then set it to NULL -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22206 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie4db81acdd5f8ddf1a1f5dc7645d1144545d9c73 Gerrit-Change-Number: 22206 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 15 Jan 2021 14:39:04 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 15:11:42 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 15 Jan 2021 15:11:42 +0000 Subject: Change in libosmocore[master]: bssgp_rim: add encoder/decoder for NACC related RIM containers In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/21862 to look at the new patch set (#12). Change subject: bssgp_rim: add encoder/decoder for NACC related RIM containers ...................................................................... bssgp_rim: add encoder/decoder for NACC related RIM containers BSSGP RIM uses a number of nested containers to signal RIM application specific payload information in a generic way. Lets add the container structurs required for NACC. Depends: libosmocore If48f412c32e8e5a3e604a78d12b74787a4786374 Change-Id: Ibbc7fd67658e3040c12abb5706fe9d1f31894352 Related: SYS#5103 --- M include/Makefile.am A include/osmocom/gprs/gprs_bssgp_rim.h M src/gb/Makefile.am A src/gb/gprs_bssgp_rim.c M src/gb/libosmogb.map M tests/Makefile.am A tests/gb/gprs_bssgp_rim_test.c A tests/gb/gprs_bssgp_rim_test.ok M tests/testsuite.at 9 files changed, 1,859 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/62/21862/12 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21862 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ibbc7fd67658e3040c12abb5706fe9d1f31894352 Gerrit-Change-Number: 21862 Gerrit-PatchSet: 12 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 15:15:57 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 15 Jan 2021 15:15:57 +0000 Subject: Change in libosmocore[master]: bssgp_rim: add encoder/decoder for NACC related RIM containers In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21862 ) Change subject: bssgp_rim: add encoder/decoder for NACC related RIM containers ...................................................................... Patch Set 12: Code-Review-1 my last comments were not still addressed. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21862 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ibbc7fd67658e3040c12abb5706fe9d1f31894352 Gerrit-Change-Number: 21862 Gerrit-PatchSet: 12 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 15 Jan 2021 15:15:57 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 15:30:05 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 15 Jan 2021 15:30:05 +0000 Subject: Change in osmo-trx[master]: radioInterfaceMulti: Fix memory leak upon close() References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-trx/+/22211 ) Change subject: radioInterfaceMulti: Fix memory leak upon close() ...................................................................... radioInterfaceMulti: Fix memory leak upon close() The leak was reported by ASan. Direct leak of 48 byte(s) in 1 object(s) allocated from: #0 0x7fd9c9c29f41 in operator new(unsigned long) /build/gcc/src/gcc/libsanitizer/asan/asan_new_delete.cpp:99 #1 0x55bd63ae2364 in RadioInterfaceMulti::init(int) /git/osmo-trx/Transceiver52M/radioInterfaceMulti.cpp:209 #2 0x55bd63a9c6d2 in makeRadioInterface(trx_ctx*, RadioDevice*, int) /git/osmo-trx/Transceiver52M/osmo-trx.cpp:115 #3 0x55bd63a9f663 in trx_start /git/osmo-trx/Transceiver52M/osmo-trx.cpp:600 #4 0x55bd63a9fd6f in main /git/osmo-trx/Transceiver52M/osmo-trx.cpp:695 #5 0x7fd9c7910151 in __libc_start_main (/usr/lib/libc.so.6+0x28151) Change-Id: Ia4f9d4e47caa86ada98054763573e652d281992c --- M Transceiver52M/radioInterfaceMulti.cpp 1 file changed, 4 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/11/22211/1 diff --git a/Transceiver52M/radioInterfaceMulti.cpp b/Transceiver52M/radioInterfaceMulti.cpp index 465fd41..eaf0886 100644 --- a/Transceiver52M/radioInterfaceMulti.cpp +++ b/Transceiver52M/radioInterfaceMulti.cpp @@ -70,6 +70,10 @@ channelizer = NULL; synthesis = NULL; + + for (std::vector::iterator it = history.begin(); it != history.end(); ++it) + delete *it; + mReceiveFIFO.resize(0); powerScaling.resize(0); history.resize(0); -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/22211 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: Ia4f9d4e47caa86ada98054763573e652d281992c Gerrit-Change-Number: 22211 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 15:32:35 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 15 Jan 2021 15:32:35 +0000 Subject: Change in osmo-trx[master]: radioInterfaceMulti: Fix memory leak upon close() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/22211 ) Change subject: radioInterfaceMulti: Fix memory leak upon close() ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/22211 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: Ia4f9d4e47caa86ada98054763573e652d281992c Gerrit-Change-Number: 22211 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: laforge Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Fri, 15 Jan 2021 15:32:35 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 15:33:46 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 15 Jan 2021 15:33:46 +0000 Subject: Change in libosmocore[master]: gprs_ns2: check if persistent nsei or nsvc exists when creating dynam... In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22197 ) Change subject: gprs_ns2: check if persistent nsei or nsvc exists when creating dynamic NSE ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22197 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I855911e7d364f2e5b08ea05857747aa63fcf1cd3 Gerrit-Change-Number: 22197 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 15 Jan 2021 15:33:46 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 15:35:57 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 15 Jan 2021 15:35:57 +0000 Subject: Change in osmo-trx[master]: ChannelizerBase: Fix memory leak References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-trx/+/22212 ) Change subject: ChannelizerBase: Fix memory leak ...................................................................... ChannelizerBase: Fix memory leak The memory leak was reported by ASan: Direct leak of 32 byte(s) in 1 object(s) allocated from: #0 0x7f23b488e459 in __interceptor_malloc /build/gcc/src/gcc/libsanitizer/asan/asan_malloc_linux.cpp:145 #1 0x558e83e39e3c in ChannelizerBase::initFilters() /osmo-trx/Transceiver52M/ChannelizerBase.cpp:84 #2 0x558e83e3a8a0 in ChannelizerBase::init() /osmo-trx/Transceiver52M/ChannelizerBase.cpp:188 #3 0x558e83e2d263 in RadioInterfaceMulti::init(int) /osmo-trx/Transceiver52M/radioInterfaceMulti.cpp:197 #4 0x558e83de76d2 in makeRadioInterface(trx_ctx*, RadioDevice*, int) /osmo-trx/Transceiver52M/osmo-trx.cpp:115 #5 0x558e83dea663 in trx_start /osmo-trx/Transceiver52M/osmo-trx.cpp:600 #6 0x558e83dead6f in main /osmo-trx/Transceiver52M/osmo-trx.cpp:695 #7 0x7f23b2576151 in __libc_start_main (/usr/lib/libc.so.6+0x28151) Change-Id: Ibc4c7edeb9bba517db08fce152d863e6cc0c7bbb --- M Transceiver52M/ChannelizerBase.cpp 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/12/22212/1 diff --git a/Transceiver52M/ChannelizerBase.cpp b/Transceiver52M/ChannelizerBase.cpp index e6eeed2..9910091 100644 --- a/Transceiver52M/ChannelizerBase.cpp +++ b/Transceiver52M/ChannelizerBase.cpp @@ -244,6 +244,7 @@ free(subFilters[i]); delete[] hist[i]; } + free(subFilters); fft_free(fftInput); fft_free(fftOutput); -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/22212 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: Ibc4c7edeb9bba517db08fce152d863e6cc0c7bbb Gerrit-Change-Number: 22212 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 15:47:58 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 15 Jan 2021 15:47:58 +0000 Subject: Change in osmo-pcu[master]: Unify BTS into a C usable structure In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22196 ) Change subject: Unify BTS into a C usable structure ...................................................................... Patch Set 3: This change is ready for review. -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22196 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I7d12c896c5ded659ca9d3bff4cf3a3fc857db9dd Gerrit-Change-Number: 22196 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Fri, 15 Jan 2021 15:47:58 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 15:50:41 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Fri, 15 Jan 2021 15:50:41 +0000 Subject: Change in osmo-pcu[master]: gprs_rlc_ts_alloc: ensure no rolling slots are allocated In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22114 ) Change subject: gprs_rlc_ts_alloc: ensure no rolling slots are allocated ...................................................................... gprs_rlc_ts_alloc: ensure no rolling slots are allocated When allocating multiple slots for a UE the following example is not allowed 'UU----UU' for a UE class 12. The time slot number can not roll over 7 and move to 0. 44.060 or 45.002 only specifies contigous however it was unclear it this is an allowed pattern. Only the example 45.002 B.3 in release 12 cleared this up. It gives an example for a multi slot class 5 UE which has 7 possible configuration this means the rolled over is not allowed. Multislot class type 2 UE doesn't have this limitation. Further if a UE supports 8 time slots this is not a limitation because the window size (45.002 B.1) can include all time slots. Releated: SYS#5073 Change-Id: I16019bdbe741b37b83b62749b840a3b7f4ddc6c7 --- M src/gprs_rlcmac_ts_alloc.cpp M tests/alloc/AllocTest.err M tests/alloc/MslotTest.ok 3 files changed, 19,376 insertions(+), 19,361 deletions(-) Approvals: pespin: Looks good to me, approved Jenkins Builder: Verified -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22114 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I16019bdbe741b37b83b62749b840a3b7f4ddc6c7 Gerrit-Change-Number: 22114 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 15:53:25 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 15 Jan 2021 15:53:25 +0000 Subject: Change in libosmocore[master]: gprs_ns2: check if persistent nsei or nsvc exists when creating dynam... In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22197 ) Change subject: gprs_ns2: check if persistent nsei or nsvc exists when creating dynamic NSE ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/22197/2/src/gb/gprs_ns2.c File src/gb/gprs_ns2.c: https://gerrit.osmocom.org/c/libosmocore/+/22197/2/src/gb/gprs_ns2.c at 876 PS2, Line 876: %d) %05u for all? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22197 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I855911e7d364f2e5b08ea05857747aa63fcf1cd3 Gerrit-Change-Number: 22197 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: daniel Gerrit-Comment-Date: Fri, 15 Jan 2021 15:53:25 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 15:54:05 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 15 Jan 2021 15:54:05 +0000 Subject: Change in osmo-ci[master]: OBS: move obs_prepare_conflict to own file References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/22213 ) Change subject: OBS: move obs_prepare_conflict to own file ...................................................................... OBS: move obs_prepare_conflict to own file Prepare to add another function that creates similar dummy packages for rpm (current version only works for deb). Related: OS#4733 Change-Id: I29a5f54fe3a09610cffa0eacb5f0ad99154612f7 --- A scripts/common-obs-conflict.sh M scripts/common-obs.sh 2 files changed, 86 insertions(+), 81 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/13/22213/1 diff --git a/scripts/common-obs-conflict.sh b/scripts/common-obs-conflict.sh new file mode 100644 index 0000000..a3cde36 --- /dev/null +++ b/scripts/common-obs-conflict.sh @@ -0,0 +1,85 @@ +#!/bin/sh +# Create conflicting dummy packages in OBS (opensuse build service), so users can't mix packages +# built from different branches by accident + +# Create the source for a dummy package, that conflicts with another dummy package in the current +# directory. Example of the structure that will be generated: +# osmocom-nightly +# ??? debian +# ??? changelog +# ??? compat +# ??? control +# ??? copyright +# ??? rules +# ??? source +# ??? format +# $1: name of dummy package (e.g. "osmocom-nightly") +# $2-*: name of conflicting packages (e.g. "osmocom-latest") +osmo_obs_prepare_conflict() { + local pkgname="$1" + shift + local pkgver="0.0.0" + local oldpwd="$PWD" + + mkdir -p "$pkgname/debian/source" + cd "$pkgname/debian" + + # Fill control + cat << EOF > control +Source: ${pkgname} +Section: unknown +Priority: optional +Maintainer: Oliver Smith +Build-Depends: debhelper (>= 9) +Standards-Version: 3.9.8 + +Package: ${pkgname} +Depends: \${misc:Depends} +Architecture: any +EOF + printf "Conflicts: " >> control + first=1 + for i in "$@"; do + if [ "$first" -eq 1 ]; then + first=0 + else + printf ", " >> control + fi + printf "%s" "$i" >> control + done + printf "\n" >> control + cat << EOF >> control +Description: Dummy package, which conflicts with: $@ +EOF + + # Fill changelog + cat << EOF > changelog +${pkgname} (${pkgver}) unstable; urgency=medium + + * Dummy package, which conflicts with: $@ + + -- Oliver Smith Thu, 13 Jun 2019 12:50:19 +0200 +EOF + + # Fill rules + cat << EOF > rules +#!/usr/bin/make -f +%: + dh \$@ +EOF + + # Finish up debian dir + chmod +x rules + echo "9" > compat + echo "3.0 (native)" > source/format + touch copyright + + # Put in git repository + cd .. + git init . + git add -A + git commit -m "auto-commit: $pkgname dummy package" || true + git tag -f "$pkgver" + + cd "$oldpwd" +} diff --git a/scripts/common-obs.sh b/scripts/common-obs.sh index 3aa2a36..ea1c5cb 100644 --- a/scripts/common-obs.sh +++ b/scripts/common-obs.sh @@ -1,5 +1,6 @@ #!/bin/sh # Various common code used in the OBS (opensuse build service) related osmo-ci shell scripts +. "$(dirname "$0")/common-obs-conflict.sh" osmo_cmd_require \ dch \ @@ -14,87 +15,6 @@ sed \ wget -# Create the source for a dummy package, that conflicts with another dummy package in the current directory. Example -# of the structure that will be generated: -# osmocom-nightly -# ??? debian -# ??? changelog -# ??? compat -# ??? control -# ??? copyright -# ??? rules -# ??? source -# ??? format -# $1: name of dummy package (e.g. "osmocom-nightly") -# $2-*: name of conflicting packages (e.g. "osmocom-latest") -osmo_obs_prepare_conflict() { - local pkgname="$1" - shift - local pkgver="0.0.0" - local oldpwd="$PWD" - - mkdir -p "$pkgname/debian/source" - cd "$pkgname/debian" - - # Fill control - cat << EOF > control -Source: ${pkgname} -Section: unknown -Priority: optional -Maintainer: Oliver Smith -Build-Depends: debhelper (>= 9) -Standards-Version: 3.9.8 - -Package: ${pkgname} -Depends: \${misc:Depends} -Architecture: any -EOF - printf "Conflicts: " >> control - first=1 - for i in "$@"; do - if [ "$first" -eq 1 ]; then - first=0 - else - printf ", " >> control - fi - printf "%s" "$i" >> control - done - printf "\n" >> control - cat << EOF >> control -Description: Dummy package, which conflicts with: $@ -EOF - - # Fill changelog - cat << EOF > changelog -${pkgname} (${pkgver}) unstable; urgency=medium - - * Dummy package, which conflicts with: $@ - - -- Oliver Smith Thu, 13 Jun 2019 12:50:19 +0200 -EOF - - # Fill rules - cat << EOF > rules -#!/usr/bin/make -f -%: - dh \$@ -EOF - - # Finish up debian dir - chmod +x rules - echo "9" > compat - echo "3.0 (native)" > source/format - touch copyright - - # Put in git repository - cd .. - git init . - git add -A - git commit -m "auto-commit: $pkgname dummy package" || true - git tag -f "$pkgver" - - cd "$oldpwd" -} # Add dependency to all (sub)packages in debian/control and commit the change. # $1: path to debian/control file -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22213 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I29a5f54fe3a09610cffa0eacb5f0ad99154612f7 Gerrit-Change-Number: 22213 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 15:54:06 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 15 Jan 2021 15:54:06 +0000 Subject: Change in osmo-ci[master]: OBS: conflict: move _deb to separate function References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/22214 ) Change subject: OBS: conflict: move _deb to separate function ...................................................................... OBS: conflict: move _deb to separate function Prepare to add the _rpm function by moving the debian code to its own function and tweaking the comment above the function. Related: OS#4733 Change-Id: Ic8d55c432c6035e7ac855cf6869d2c86ace468df --- M scripts/common-obs-conflict.sh 1 file changed, 21 insertions(+), 12 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/14/22214/1 diff --git a/scripts/common-obs-conflict.sh b/scripts/common-obs-conflict.sh index a3cde36..57679c3 100644 --- a/scripts/common-obs-conflict.sh +++ b/scripts/common-obs-conflict.sh @@ -2,20 +2,22 @@ # Create conflicting dummy packages in OBS (opensuse build service), so users can't mix packages # built from different branches by accident -# Create the source for a dummy package, that conflicts with another dummy package in the current -# directory. Example of the structure that will be generated: -# osmocom-nightly -# ??? debian -# ??? changelog -# ??? compat -# ??? control -# ??? copyright -# ??? rules -# ??? source -# ??? format +# Create the conflicting package for debian +# # $1: name of dummy package (e.g. "osmocom-nightly") # $2-*: name of conflicting packages (e.g. "osmocom-latest") -osmo_obs_prepare_conflict() { +# +# Generates the following directory structure: +# osmocom-nightly +# ??? debian +# ??? changelog +# ??? compat +# ??? control +# ??? copyright +# ??? rules +# ??? source +# ??? format +osmo_obs_prepare_conflict_deb() { local pkgname="$1" shift local pkgver="0.0.0" @@ -83,3 +85,10 @@ cd "$oldpwd" } + +# Create conflicting packages +# $1: name of dummy package (e.g. "osmocom-nightly") +# $2-*: name of conflicting packages (e.g. "osmocom-latest") +osmo_obs_prepare_conflict() { + osmo_obs_prepare_conflict_deb "$@" +} -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22214 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ic8d55c432c6035e7ac855cf6869d2c86ace468df Gerrit-Change-Number: 22214 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 15:54:07 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 15 Jan 2021 15:54:07 +0000 Subject: Change in osmo-ci[master]: OBS: conflict: move pkgver to global variable References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/22215 ) Change subject: OBS: conflict: move pkgver to global variable ...................................................................... OBS: conflict: move pkgver to global variable Prepare to move the 'put in git repository' code from _deb to the main function by having the pkgver available outside of the _deb function. Change the version to 1.0.0 while at it, as it looks better than 0.0.0. Related: OS#4733 Change-Id: Ic56ff12b5f2fe596d73b341e1e7750a9e202ed6b --- M scripts/common-obs-conflict.sh 1 file changed, 4 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/15/22215/1 diff --git a/scripts/common-obs-conflict.sh b/scripts/common-obs-conflict.sh index 57679c3..ec877a1 100644 --- a/scripts/common-obs-conflict.sh +++ b/scripts/common-obs-conflict.sh @@ -2,6 +2,8 @@ # Create conflicting dummy packages in OBS (opensuse build service), so users can't mix packages # built from different branches by accident +OSMO_OBS_CONFLICT_PKGVER="1.0.0" + # Create the conflicting package for debian # # $1: name of dummy package (e.g. "osmocom-nightly") @@ -20,7 +22,6 @@ osmo_obs_prepare_conflict_deb() { local pkgname="$1" shift - local pkgver="0.0.0" local oldpwd="$PWD" mkdir -p "$pkgname/debian/source" @@ -56,7 +57,7 @@ # Fill changelog cat << EOF > changelog -${pkgname} (${pkgver}) unstable; urgency=medium +${pkgname} (${OSMO_OBS_CONFLICT_PKGVER}) unstable; urgency=medium * Dummy package, which conflicts with: $@ @@ -81,7 +82,7 @@ git init . git add -A git commit -m "auto-commit: $pkgname dummy package" || true - git tag -f "$pkgver" + git tag -f "$OSMO_OBS_CONFLICT_PKGVER" cd "$oldpwd" } -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22215 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ic56ff12b5f2fe596d73b341e1e7750a9e202ed6b Gerrit-Change-Number: 22215 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 15:54:07 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 15 Jan 2021 15:54:07 +0000 Subject: Change in osmo-ci[master]: OBS: conflict: move common code from _deb to main References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/22216 ) Change subject: OBS: conflict: move common code from _deb to main ...................................................................... OBS: conflict: move common code from _deb to main Move logic to create the package directory, change into it, and to put the directory into a git repository and tag it with the package version, into the common function. Again, in preparation to add a _rpm function. Related: OS#4733 Change-Id: I3066147ef5469cce9d269b119d9ffa3e53f00403 --- M scripts/common-obs-conflict.sh 1 file changed, 24 insertions(+), 18 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/16/22216/1 diff --git a/scripts/common-obs-conflict.sh b/scripts/common-obs-conflict.sh index ec877a1..ecd21c7 100644 --- a/scripts/common-obs-conflict.sh +++ b/scripts/common-obs-conflict.sh @@ -10,22 +10,21 @@ # $2-*: name of conflicting packages (e.g. "osmocom-latest") # # Generates the following directory structure: -# osmocom-nightly -# ??? debian -# ??? changelog -# ??? compat -# ??? control -# ??? copyright -# ??? rules -# ??? source -# ??? format +# debian +# ??? changelog +# ??? compat +# ??? control +# ??? copyright +# ??? rules +# ??? source +# ??? format osmo_obs_prepare_conflict_deb() { local pkgname="$1" shift local oldpwd="$PWD" - mkdir -p "$pkgname/debian/source" - cd "$pkgname/debian" + mkdir -p "debian/source" + cd "debian" # Fill control cat << EOF > control @@ -77,13 +76,6 @@ echo "3.0 (native)" > source/format touch copyright - # Put in git repository - cd .. - git init . - git add -A - git commit -m "auto-commit: $pkgname dummy package" || true - git tag -f "$OSMO_OBS_CONFLICT_PKGVER" - cd "$oldpwd" } @@ -91,5 +83,19 @@ # $1: name of dummy package (e.g. "osmocom-nightly") # $2-*: name of conflicting packages (e.g. "osmocom-latest") osmo_obs_prepare_conflict() { + local pkgname="$1" + local oldpwd="$PWD" + + mkdir -p "$pkgname" + cd "$pkgname" + osmo_obs_prepare_conflict_deb "$@" + + # Put in git repository + git init . + git add -A + git commit -m "auto-commit: $pkgname dummy package" || true + git tag -f "$OSMO_OBS_CONFLICT_PKGVER" + + cd "$oldpwd" } -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22216 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I3066147ef5469cce9d269b119d9ffa3e53f00403 Gerrit-Change-Number: 22216 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 15:54:07 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 15 Jan 2021 15:54:07 +0000 Subject: Change in osmo-ci[master]: OBS: conflict: generate conflicting rpm too References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/22217 ) Change subject: OBS: conflict: generate conflicting rpm too ...................................................................... OBS: conflict: generate conflicting rpm too Related: OS#4733 Change-Id: Ifac815574758668172b0a7bb089585ce5a17b9e3 --- M scripts/common-obs-conflict.sh 1 file changed, 35 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/17/22217/1 diff --git a/scripts/common-obs-conflict.sh b/scripts/common-obs-conflict.sh index ecd21c7..a4fc98d 100644 --- a/scripts/common-obs-conflict.sh +++ b/scripts/common-obs-conflict.sh @@ -79,6 +79,40 @@ cd "$oldpwd" } +# Create the conflicting package for rpm (e.g. contrib/osmocom-nightly.spec.in). The remaining +# placeholders are replaced in osmo_obs_add_rpm_spec(). +# +# $1: name of dummy package (e.g. "osmocom-nightly") +# $2-*: name of conflicting packages (e.g. "osmocom-latest") +osmo_obs_prepare_conflict_rpm() { + local pkgname="$1" + shift + local spec_in="contrib/$pkgname.spec.in" + + mkdir -p contrib + + cat << EOF > "$spec_in" +Name: $pkgname +Version: @VERSION@ +Release: 0 +Summary: Dummy package, which conflicts with: $@ +License: AGPL-3.0-or-later +Group: Hardware/Mobile +Source: @SOURCE@ +EOF + + for i in "$@"; do + echo "Conflicts: $i" >> "$spec_in" + done + + cat << EOF >> "$spec_in" +%description +Dummy package, which conflicts with: $@ +%files +EOF + +} + # Create conflicting packages # $1: name of dummy package (e.g. "osmocom-nightly") # $2-*: name of conflicting packages (e.g. "osmocom-latest") @@ -90,6 +124,7 @@ cd "$pkgname" osmo_obs_prepare_conflict_deb "$@" + osmo_obs_prepare_conflict_rpm "$@" # Put in git repository git init . -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22217 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ifac815574758668172b0a7bb089585ce5a17b9e3 Gerrit-Change-Number: 22217 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 15:54:07 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 15 Jan 2021 15:54:07 +0000 Subject: Change in osmo-ci[master]: OBS: rename osmo_obs_add_debian_dependency References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/22218 ) Change subject: OBS: rename osmo_obs_add_debian_dependency ...................................................................... OBS: rename osmo_obs_add_debian_dependency Change name to osmo_obs_add_depend_deb. I'll add a _rpm function in a future patch, and so we get consistent names. Related: OS#4733 Change-Id: Icf444b86df993184c9fe4db8d3e67ab4bb06bd47 --- M scripts/common-obs.sh M scripts/osmocom-latest-packages.sh M scripts/osmocom-nightly-packages.sh 3 files changed, 3 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/18/22218/1 diff --git a/scripts/common-obs.sh b/scripts/common-obs.sh index ea1c5cb..1566def 100644 --- a/scripts/common-obs.sh +++ b/scripts/common-obs.sh @@ -19,7 +19,7 @@ # Add dependency to all (sub)packages in debian/control and commit the change. # $1: path to debian/control file # $2: name of the package to depend on -osmo_obs_add_debian_dependency() { +osmo_obs_add_depend_deb() { # Note: adding the comma at the end should be fine. If there is a Depends: line, it is most likely not empty. It # should at least have ${misc:Depends} according to lintian. sed "s/^Depends: /Depends: $2, /g" -i "$1" diff --git a/scripts/osmocom-latest-packages.sh b/scripts/osmocom-latest-packages.sh index 308efbc..271824f 100755 --- a/scripts/osmocom-latest-packages.sh +++ b/scripts/osmocom-latest-packages.sh @@ -73,7 +73,7 @@ ./git-version-gen . > .tarball-version 2>/dev/null fi - osmo_obs_add_debian_dependency "./debian/control" "osmocom-latest" + osmo_obs_add_depend_deb "./debian/control" "osmocom-latest" if [ "$project" = "open5gs" ]; then # we cannot control the output directory of the generated source :( diff --git a/scripts/osmocom-nightly-packages.sh b/scripts/osmocom-nightly-packages.sh index 1d09299..4234021 100755 --- a/scripts/osmocom-nightly-packages.sh +++ b/scripts/osmocom-nightly-packages.sh @@ -129,7 +129,7 @@ if [ "$changelog" = "commit" ] ; then VER=$(get_commit_version) - osmo_obs_add_debian_dependency "./debian/control" "osmocom-$FEED" + osmo_obs_add_depend_deb "./debian/control" "osmocom-$FEED" dch -b -v "$VER" -m "Snapshot build" git commit -m "$VER snapshot" debian/ fi -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22218 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Icf444b86df993184c9fe4db8d3e67ab4bb06bd47 Gerrit-Change-Number: 22218 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 15:54:08 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 15 Jan 2021 15:54:08 +0000 Subject: Change in osmo-ci[master]: OBS: add_depend_deb: no self-dependencies References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/22219 ) Change subject: OBS: add_depend_deb: no self-dependencies ...................................................................... OBS: add_depend_deb: no self-dependencies Check if we are trying to make a package depend on itself, and skip in that case. This happens for the osmocom-nightly etc. metapackages, as they go through the same code path as regular packages. While at it, use proper variable names in the function. Add the new variable as second argument and not as third, because a fourth argument will be added with the dependency version, and because this order will be consistent with osmo_obs_add_rpm_spec() when it gets extended in a future commit. Fix the following warning: W: osmocom-nightly source: package-depends-on-itself osmocom-nightly depends Related: OS#4733 Change-Id: I439079c00259d73a18cb8617a3e76d05df5a7a35 --- M scripts/common-obs.sh M scripts/osmocom-latest-packages.sh M scripts/osmocom-nightly-packages.sh 3 files changed, 15 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/19/22219/1 diff --git a/scripts/common-obs.sh b/scripts/common-obs.sh index 1566def..47f3f3d 100644 --- a/scripts/common-obs.sh +++ b/scripts/common-obs.sh @@ -18,13 +18,23 @@ # Add dependency to all (sub)packages in debian/control and commit the change. # $1: path to debian/control file -# $2: name of the package to depend on +# $2: package name (e.g. "libosmocore") +# $3: dependency package name (e.g. "osmocom-nightly") osmo_obs_add_depend_deb() { + local d_control="$1" + local pkgname="$2" + local depend="$3" + + if [ "$pkgname" = "$depend" ]; then + echo "NOTE: skipping dependency on itself: $depend" + return + fi + # Note: adding the comma at the end should be fine. If there is a Depends: line, it is most likely not empty. It # should at least have ${misc:Depends} according to lintian. - sed "s/^Depends: /Depends: $2, /g" -i "$1" + sed "s/^Depends: /Depends: $depend, /g" -i "$d_control" - git -C "$(dirname "$1")" commit -m "auto-commit: debian: depend on $2" . + git -C "$(dirname "$d_control")" commit -m "auto-commit: debian: depend on $depend" . } # Copy a project's rpm spec.in file to the osc package dir, set the version/source and 'osc add' it diff --git a/scripts/osmocom-latest-packages.sh b/scripts/osmocom-latest-packages.sh index 271824f..2689e35 100755 --- a/scripts/osmocom-latest-packages.sh +++ b/scripts/osmocom-latest-packages.sh @@ -73,7 +73,7 @@ ./git-version-gen . > .tarball-version 2>/dev/null fi - osmo_obs_add_depend_deb "./debian/control" "osmocom-latest" + osmo_obs_add_depend_deb "./debian/control" "$project" "osmocom-latest" if [ "$project" = "open5gs" ]; then # we cannot control the output directory of the generated source :( diff --git a/scripts/osmocom-nightly-packages.sh b/scripts/osmocom-nightly-packages.sh index 4234021..3f95d17 100755 --- a/scripts/osmocom-nightly-packages.sh +++ b/scripts/osmocom-nightly-packages.sh @@ -129,7 +129,7 @@ if [ "$changelog" = "commit" ] ; then VER=$(get_commit_version) - osmo_obs_add_depend_deb "./debian/control" "osmocom-$FEED" + osmo_obs_add_depend_deb "./debian/control" "$name" "osmocom-$FEED" dch -b -v "$VER" -m "Snapshot build" git commit -m "$VER snapshot" debian/ fi -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22219 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I439079c00259d73a18cb8617a3e76d05df5a7a35 Gerrit-Change-Number: 22219 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 15:54:08 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 15 Jan 2021 15:54:08 +0000 Subject: Change in osmo-ci[master]: OBS: osmo_obs_add_rpm_spec: refactor References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/22220 ) Change subject: OBS: osmo_obs_add_rpm_spec: refactor ...................................................................... OBS: osmo_obs_add_rpm_spec: refactor Rename $spec to $spec_in and add $spec to hold the destination path, to avoid constructing it multiple times below. Related: OS#4733 Change-Id: I4f3d4f8a8bc83ff22983e49f6a496dc8318b53cd --- M scripts/common-obs.sh 1 file changed, 7 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/20/22220/1 diff --git a/scripts/common-obs.sh b/scripts/common-obs.sh index 47f3f3d..0655370 100644 --- a/scripts/common-obs.sh +++ b/scripts/common-obs.sh @@ -45,26 +45,27 @@ local oscdir="$1" local repodir="$2" local name="$3" - local spec="$(find "$repodir" -name "$name.spec.in")" + local spec_in="$(find "$repodir" -name "$name.spec.in")" + local spec="$oscdir/$name.spec" local tarball local version - if [ -z "$spec" ]; then + if [ -z "$spec_in" ]; then echo "WARNING: RPM spec missing: $name.spec.in" return fi - cp "$spec" "$oscdir/$name.spec" + cp "$spec_in" "$spec" # Set version version="$(grep "^Version: " "$oscdir"/*.dsc | cut -d: -f2 | xargs)" - sed -i "s/^Version:.*/Version: $version/g" "$oscdir/$name.spec" + sed -i "s/^Version:.*/Version: $version/g" "$spec" # Set source file tarball="$(ls -1 "${name}_"*".tar."*)" - sed -i "s/^Source:.*/Source: $tarball/g" "$oscdir/$name.spec" + sed -i "s/^Source:.*/Source: $tarball/g" "$spec" - osc add "$name.spec" + osc add "$spec" } # Get the path to a distribution specific patch, either from osmo-ci.git or from the project repository. -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22220 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I4f3d4f8a8bc83ff22983e49f6a496dc8318b53cd Gerrit-Change-Number: 22220 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 15:54:08 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 15 Jan 2021 15:54:08 +0000 Subject: Change in osmo-ci[master]: OBS: osmo_obs_add_rpm_spec: depend on conflict pkg References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/22221 ) Change subject: OBS: osmo_obs_add_rpm_spec: depend on conflict pkg ...................................................................... OBS: osmo_obs_add_rpm_spec: depend on conflict pkg Related: OS#4733 Change-Id: I69bebdadaf89c2a6e5dd9a27161703a567882359 --- M scripts/common-obs.sh M scripts/osmocom-latest-packages.sh M scripts/osmocom-nightly-packages.sh 3 files changed, 42 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/21/22221/1 diff --git a/scripts/common-obs.sh b/scripts/common-obs.sh index 0655370..adfa076 100644 --- a/scripts/common-obs.sh +++ b/scripts/common-obs.sh @@ -37,14 +37,49 @@ git -C "$(dirname "$d_control")" commit -m "auto-commit: debian: depend on $depend" . } -# Copy a project's rpm spec.in file to the osc package dir, set the version/source and 'osc add' it +# Add dependency to all (sub)packages in rpm spec file +# $1: path to rpm spec file +# $2: package name (e.g. "libosmocore") +# $3: dependency package name (e.g. "osmocom-nightly") +osmo_obs_add_depend_rpm() { + local spec="$1" + local pkgname="$2" + local depend="$3" + + if [ "$pkgname" = "$depend" ]; then + echo "NOTE: skipping dependency on itself: $depend" + return + fi + + ( while IFS= read -r line; do + echo "$line" + + case "$line" in + # Main package + "Name:"*) + echo "Requires: $depend" + ;; + # Subpackages + "%package"*) + echo "Requires: $depend" + ;; + esac + done < "$spec" ) > "$spec.new" + + mv "$spec.new" "$spec" +} + +# Copy a project's rpm spec.in file to the osc package dir, set the version/source, depend on the conflicting dummy +# package and 'osc add' it # $1: oscdir (path to checked out OSC package) # $2: repodir (path to git repository) -# $3: name (e.g. libosmocore) +# $3: package name (e.g. "libosmocore") +# $4: dependency package name (e.g. "osmocom-nightly") osmo_obs_add_rpm_spec() { local oscdir="$1" local repodir="$2" local name="$3" + local depend="$4" local spec_in="$(find "$repodir" -name "$name.spec.in")" local spec="$oscdir/$name.spec" local tarball @@ -57,6 +92,8 @@ cp "$spec_in" "$spec" + osmo_obs_add_depend_rpm "$spec" "$name" "$depend" + # Set version version="$(grep "^Version: " "$oscdir"/*.dsc | cut -d: -f2 | xargs)" sed -i "s/^Version:.*/Version: $version/g" "$spec" diff --git a/scripts/osmocom-latest-packages.sh b/scripts/osmocom-latest-packages.sh index 2689e35..94fcf7a 100755 --- a/scripts/osmocom-latest-packages.sh +++ b/scripts/osmocom-latest-packages.sh @@ -96,7 +96,7 @@ mv "$output/"*.tar* "$TOP/$PROJ/$project/" cd "$TOP/$PROJ" osc add "$project" - osmo_obs_add_rpm_spec "$TOP/$PROJ/$project" "$output" "$project" + osmo_obs_add_rpm_spec "$TOP/$PROJ/$project" "$output" "$project" "osmocom-latest" else cd "$TOP/$PROJ/$project" @@ -107,7 +107,7 @@ mv "$output/"*.dsc . mv "$output/"*.tar* . osc add ./* - osmo_obs_add_rpm_spec "$PWD" "$output" "$project" + osmo_obs_add_rpm_spec "$PWD" "$output" "$project" "osmocom-latest" fi fi cd "$TOP" diff --git a/scripts/osmocom-nightly-packages.sh b/scripts/osmocom-nightly-packages.sh index 3f95d17..ea181ab 100755 --- a/scripts/osmocom-nightly-packages.sh +++ b/scripts/osmocom-nightly-packages.sh @@ -152,7 +152,7 @@ cd "$oscdir" osc add -- *.tar* *.dsc - osmo_obs_add_rpm_spec "$oscdir" "$repodir" "$name" + osmo_obs_add_rpm_spec "$oscdir" "$repodir" "$name" "osmocom-$FEED" osc ci -m "Snapshot $name $DT" --noservice } -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22221 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I69bebdadaf89c2a6e5dd9a27161703a567882359 Gerrit-Change-Number: 22221 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 15:54:09 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 15 Jan 2021 15:54:09 +0000 Subject: Change in osmo-ci[master]: OBS: add %H%M to DT References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/22222 ) Change subject: OBS: add %H%M to DT ...................................................................... OBS: add %H%M to DT Make sure that each time osmocom-nightly-packages.sh and osmocom-next-packages.sh runs, we get a different date appended to the versions, even if it runs twice on the same day (e.g. because the jenkins job was triggered manually). This is in preparation to let all packages depend on a specific version (with that date) of the conflicting dummy package. DT in osmocom-latest-packages.sh is adjusted for consistency (though it is not appended to the package versions, only used in the commit message when pushing the latest packages). Related: OS#4733 Change-Id: I7f08c694a549f1b3dd938a68e05082f2c31fdb92 --- M scripts/osmocom-latest-packages.sh M scripts/osmocom-nightly-packages.sh 2 files changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/22/22222/1 diff --git a/scripts/osmocom-latest-packages.sh b/scripts/osmocom-latest-packages.sh index 94fcf7a..9c842be 100755 --- a/scripts/osmocom-latest-packages.sh +++ b/scripts/osmocom-latest-packages.sh @@ -9,7 +9,7 @@ # OBS project name PROJ=network:osmocom:latest -DT=$(date +%Y%m%d) +DT=$(date +%Y%m%d%H%M) TOP=$(pwd) DEBSRCDIR="$TOP/debsrc" diff --git a/scripts/osmocom-nightly-packages.sh b/scripts/osmocom-nightly-packages.sh index ea181ab..ced0998 100755 --- a/scripts/osmocom-nightly-packages.sh +++ b/scripts/osmocom-nightly-packages.sh @@ -10,7 +10,7 @@ set -e set -x -DT=$(date +%Y%m%d) +DT=$(date +%Y%m%d%H%M) TOP=$(pwd)/$(mktemp -d nightly-3g_XXXXXX) # Set FEED and PROJ, based on the FEED env var -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22222 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I7f08c694a549f1b3dd938a68e05082f2c31fdb92 Gerrit-Change-Number: 22222 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 15:54:09 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 15 Jan 2021 15:54:09 +0000 Subject: Change in osmo-ci[master]: OBS: nightly: depend on dummy pkg of current date References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/22223 ) Change subject: OBS: nightly: depend on dummy pkg of current date ...................................................................... OBS: nightly: depend on dummy pkg of current date Make it impossible to mix nightly/next builds of different dates. Related: OS#4733 Change-Id: Ida8db8e6c91834c9d9e43694d9b4daea55a2f8f8 --- M scripts/common-obs.sh M scripts/osmocom-nightly-packages.sh 2 files changed, 18 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/23/22223/1 diff --git a/scripts/common-obs.sh b/scripts/common-obs.sh index adfa076..40cacf2 100644 --- a/scripts/common-obs.sh +++ b/scripts/common-obs.sh @@ -20,16 +20,22 @@ # $1: path to debian/control file # $2: package name (e.g. "libosmocore") # $3: dependency package name (e.g. "osmocom-nightly") +# $4: dependency package version (optional, e.g. "1.0.0.202101151122") osmo_obs_add_depend_deb() { local d_control="$1" local pkgname="$2" local depend="$3" + local dependver="$4" if [ "$pkgname" = "$depend" ]; then echo "NOTE: skipping dependency on itself: $depend" return fi + if [ -n "$dependver" ]; then + depend="$depend (= $dependver)" + fi + # Note: adding the comma at the end should be fine. If there is a Depends: line, it is most likely not empty. It # should at least have ${misc:Depends} according to lintian. sed "s/^Depends: /Depends: $depend, /g" -i "$d_control" @@ -41,16 +47,22 @@ # $1: path to rpm spec file # $2: package name (e.g. "libosmocore") # $3: dependency package name (e.g. "osmocom-nightly") +# $4: dependency package version (optional, e.g. "1.0.0.202101151122") osmo_obs_add_depend_rpm() { local spec="$1" local pkgname="$2" local depend="$3" + local dependver="$4" if [ "$pkgname" = "$depend" ]; then echo "NOTE: skipping dependency on itself: $depend" return fi + if [ -n "$dependver" ]; then + depend="$depend = $dependver" + fi + ( while IFS= read -r line; do echo "$line" @@ -75,11 +87,13 @@ # $2: repodir (path to git repository) # $3: package name (e.g. "libosmocore") # $4: dependency package name (e.g. "osmocom-nightly") +# $5: dependency package version (optional, e.g. "1.0.0.202101151122") osmo_obs_add_rpm_spec() { local oscdir="$1" local repodir="$2" local name="$3" local depend="$4" + local dependver="$5" local spec_in="$(find "$repodir" -name "$name.spec.in")" local spec="$oscdir/$name.spec" local tarball @@ -92,7 +106,7 @@ cp "$spec_in" "$spec" - osmo_obs_add_depend_rpm "$spec" "$name" "$depend" + osmo_obs_add_depend_rpm "$spec" "$name" "$depend" "$dependver" # Set version version="$(grep "^Version: " "$oscdir"/*.dsc | cut -d: -f2 | xargs)" diff --git a/scripts/osmocom-nightly-packages.sh b/scripts/osmocom-nightly-packages.sh index ced0998..a6340d1 100755 --- a/scripts/osmocom-nightly-packages.sh +++ b/scripts/osmocom-nightly-packages.sh @@ -109,6 +109,7 @@ local gitbpargs=$3 local repodir=$REPO/$name local oscdir=$REPO/osc/$PROJ/$name + local dependver="$OSMO_OBS_CONFLICT_PKGVER.$DT" if [ -z "$changelog" ] ; then changelog=commit @@ -129,7 +130,7 @@ if [ "$changelog" = "commit" ] ; then VER=$(get_commit_version) - osmo_obs_add_depend_deb "./debian/control" "$name" "osmocom-$FEED" + osmo_obs_add_depend_deb "./debian/control" "$name" "osmocom-$FEED" "$dependver" dch -b -v "$VER" -m "Snapshot build" git commit -m "$VER snapshot" debian/ fi @@ -152,7 +153,7 @@ cd "$oscdir" osc add -- *.tar* *.dsc - osmo_obs_add_rpm_spec "$oscdir" "$repodir" "$name" "osmocom-$FEED" + osmo_obs_add_rpm_spec "$oscdir" "$repodir" "$name" "osmocom-$FEED" "$dependver" osc ci -m "Snapshot $name $DT" --noservice } -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22223 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ida8db8e6c91834c9d9e43694d9b4daea55a2f8f8 Gerrit-Change-Number: 22223 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 16:00:26 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 15 Jan 2021 16:00:26 +0000 Subject: Change in osmo-pcu[master]: Unify BTS into a C usable structure In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-pcu/+/22196 to look at the new patch set (#4). Change subject: Unify BTS into a C usable structure ...................................................................... Unify BTS into a C usable structure Previous work on BTS class started to get stuff out of the C++ struct into a C struct (BTS -> struct gprs_glcmac_bts) so that some parts of it were accessible from C code. Doing so, however, ended up being messy too, since all code needs to be switching from one object to another, which actually refer to the same logical component. Let's instead rejoin the structures and make sure the struct is accessible and usable from both C and C++ code by rewriting all methods to be C compatible and converting 3 allocated suboject as pointers. This way BTS can internally still use those C++ objects while providing a clean APi to both C and C++ code. Change-Id: I7d12c896c5ded659ca9d3bff4cf3a3fc857db9dd --- M src/bts.cpp M src/bts.h M src/encoding.cpp M src/gprs_bssgp_pcu.cpp M src/gprs_ms.c M src/gprs_ms.h M src/gprs_ms_storage.cpp M src/gprs_ms_storage.h M src/gprs_pcu.c M src/gprs_pcu.h M src/gprs_rlcmac_sched.cpp M src/gprs_rlcmac_ts_alloc.cpp M src/gsm_timer.cpp M src/llc.cpp M src/llc.h M src/pcu_l1_if.cpp M src/pcu_main.cpp M src/pcu_vty_functions.cpp M src/pdch.cpp M src/pdch.h M src/poll_controller.cpp M src/poll_controller.h M src/rlc.cpp M src/rlc.h M src/sba.cpp M src/sba.h M src/tbf.cpp M src/tbf.h M src/tbf_dl.cpp M src/tbf_dl.h M src/tbf_ul.cpp M src/tbf_ul.h M tests/alloc/AllocTest.cpp M tests/alloc/MslotTest.cpp M tests/app_info/AppInfoTest.cpp M tests/edge/EdgeTest.cpp M tests/emu/pcu_emu.cpp M tests/fn/FnTest.cpp M tests/ms/MsTest.cpp M tests/tbf/TbfTest.cpp M tests/types/TypesTest.cpp 41 files changed, 1,059 insertions(+), 1,188 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/96/22196/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22196 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I7d12c896c5ded659ca9d3bff4cf3a3fc857db9dd Gerrit-Change-Number: 22196 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 16:03:32 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 15 Jan 2021 16:03:32 +0000 Subject: Change in osmo-pcu[master]: Unify BTS into a C usable structure In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22196 ) Change subject: Unify BTS into a C usable structure ...................................................................... Patch Set 4: This patch has been tested by: * Passing unit tests * Passing TTCn3 tests * Manual testing The changes are quite big but I think this provides a good step forward towards more sanitizer code in osmo-pcu. I did mostly bulky changes with grep + sed, find+replace in editor, etc. and I also reworked some parts like moving from C++ LlistHead class to llist_item structure I introduced a few weeks ago during GprsMS cleanup. -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22196 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I7d12c896c5ded659ca9d3bff4cf3a3fc857db9dd Gerrit-Change-Number: 22196 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Fri, 15 Jan 2021 16:03:32 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 16:03:43 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 15 Jan 2021 16:03:43 +0000 Subject: Change in libosmocore[master]: osmo-ns-dummy: allow to create dynamic NSEs In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22198 ) Change subject: osmo-ns-dummy: allow to create dynamic NSEs ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22198 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I196cc454b5d7bc53848f73596a2f92730b78922b Gerrit-Change-Number: 22198 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Comment-Date: Fri, 15 Jan 2021 16:03:43 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 16:04:10 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 15 Jan 2021 16:04:10 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vc: answer UNBLOCK on unblocked nsvc In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22199 ) Change subject: gprs_ns2_vc: answer UNBLOCK on unblocked nsvc ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22199 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic92e99b2607d1e54ecb4668667065502a55a2ce0 Gerrit-Change-Number: 22199 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 15 Jan 2021 16:04:10 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 16:04:36 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 15 Jan 2021 16:04:36 +0000 Subject: Change in libosmocore[master]: gprs_ns2: when calling nsvc_force_unconf for a dynamic NSE drop the NSE. In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22200 ) Change subject: gprs_ns2: when calling nsvc_force_unconf for a dynamic NSE drop the NSE. ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22200 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I0a4f35c974c8c3b79c48f2f56170722c95254332 Gerrit-Change-Number: 22200 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 15 Jan 2021 16:04:36 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 16:05:06 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 15 Jan 2021 16:05:06 +0000 Subject: Change in libosmocore[master]: gprs_ns2: flag then NSE as dead in nse_free() In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22208 ) Change subject: gprs_ns2: flag then NSE as dead in nse_free() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22208 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I535b3e5dd7240d19dd685652173775b250f5cc2d Gerrit-Change-Number: 22208 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 15 Jan 2021 16:05:06 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 16:05:33 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 15 Jan 2021 16:05:33 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vc_fsm: fix spaces and remove wrong comment In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22209 ) Change subject: gprs_ns2_vc_fsm: fix spaces and remove wrong comment ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22209 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I52799d8ce8244fae7512a6e14a3cf2408a218c2d Gerrit-Change-Number: 22209 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 15 Jan 2021 16:05:33 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 16:10:01 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 15 Jan 2021 16:10:01 +0000 Subject: Change in osmo-ci[master]: OBS: move obs_prepare_conflict to own file In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22213 ) Change subject: OBS: move obs_prepare_conflict to own file ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22213 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I29a5f54fe3a09610cffa0eacb5f0ad99154612f7 Gerrit-Change-Number: 22213 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 15 Jan 2021 16:10:01 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 16:10:41 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 15 Jan 2021 16:10:41 +0000 Subject: Change in osmo-ci[master]: OBS: conflict: move _deb to separate function In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22214 ) Change subject: OBS: conflict: move _deb to separate function ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22214 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ic8d55c432c6035e7ac855cf6869d2c86ace468df Gerrit-Change-Number: 22214 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 15 Jan 2021 16:10:41 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 16:11:16 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 15 Jan 2021 16:11:16 +0000 Subject: Change in osmo-ci[master]: OBS: move obs_prepare_conflict to own file In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22213 ) Change subject: OBS: move obs_prepare_conflict to own file ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22213 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I29a5f54fe3a09610cffa0eacb5f0ad99154612f7 Gerrit-Change-Number: 22213 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 15 Jan 2021 16:11:16 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 16:11:32 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 15 Jan 2021 16:11:32 +0000 Subject: Change in osmo-ci[master]: OBS: conflict: move _deb to separate function In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22214 ) Change subject: OBS: conflict: move _deb to separate function ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22214 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ic8d55c432c6035e7ac855cf6869d2c86ace468df Gerrit-Change-Number: 22214 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 15 Jan 2021 16:11:32 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 16:11:47 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 15 Jan 2021 16:11:47 +0000 Subject: Change in osmo-ci[master]: OBS: conflict: move pkgver to global variable In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22215 ) Change subject: OBS: conflict: move pkgver to global variable ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22215 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ic56ff12b5f2fe596d73b341e1e7750a9e202ed6b Gerrit-Change-Number: 22215 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 15 Jan 2021 16:11:47 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 16:11:50 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 15 Jan 2021 16:11:50 +0000 Subject: Change in osmo-ci[master]: OBS: conflict: move pkgver to global variable In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22215 ) Change subject: OBS: conflict: move pkgver to global variable ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22215 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ic56ff12b5f2fe596d73b341e1e7750a9e202ed6b Gerrit-Change-Number: 22215 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 15 Jan 2021 16:11:50 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 16:12:10 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 15 Jan 2021 16:12:10 +0000 Subject: Change in osmo-ci[master]: OBS: conflict: move common code from _deb to main In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22216 ) Change subject: OBS: conflict: move common code from _deb to main ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22216 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I3066147ef5469cce9d269b119d9ffa3e53f00403 Gerrit-Change-Number: 22216 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 15 Jan 2021 16:12:10 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 16:12:34 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 15 Jan 2021 16:12:34 +0000 Subject: Change in osmo-ci[master]: OBS: conflict: generate conflicting rpm too In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22217 ) Change subject: OBS: conflict: generate conflicting rpm too ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22217 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ifac815574758668172b0a7bb089585ce5a17b9e3 Gerrit-Change-Number: 22217 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 15 Jan 2021 16:12:34 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 16:12:48 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 15 Jan 2021 16:12:48 +0000 Subject: Change in osmo-ci[master]: OBS: conflict: move common code from _deb to main In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22216 ) Change subject: OBS: conflict: move common code from _deb to main ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22216 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I3066147ef5469cce9d269b119d9ffa3e53f00403 Gerrit-Change-Number: 22216 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 15 Jan 2021 16:12:48 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 16:12:54 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 15 Jan 2021 16:12:54 +0000 Subject: Change in osmo-ci[master]: OBS: rename osmo_obs_add_debian_dependency In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22218 ) Change subject: OBS: rename osmo_obs_add_debian_dependency ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22218 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Icf444b86df993184c9fe4db8d3e67ab4bb06bd47 Gerrit-Change-Number: 22218 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 15 Jan 2021 16:12:54 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 16:13:26 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 15 Jan 2021 16:13:26 +0000 Subject: Change in osmo-ci[master]: OBS: add_depend_deb: no self-dependencies In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22219 ) Change subject: OBS: add_depend_deb: no self-dependencies ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22219 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I439079c00259d73a18cb8617a3e76d05df5a7a35 Gerrit-Change-Number: 22219 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 15 Jan 2021 16:13:26 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 16:13:56 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 15 Jan 2021 16:13:56 +0000 Subject: Change in osmo-ci[master]: OBS: conflict: generate conflicting rpm too In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22217 ) Change subject: OBS: conflict: generate conflicting rpm too ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22217 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ifac815574758668172b0a7bb089585ce5a17b9e3 Gerrit-Change-Number: 22217 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 15 Jan 2021 16:13:56 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 16:13:58 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 15 Jan 2021 16:13:58 +0000 Subject: Change in osmo-ci[master]: OBS: osmo_obs_add_rpm_spec: refactor In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22220 ) Change subject: OBS: osmo_obs_add_rpm_spec: refactor ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22220 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I4f3d4f8a8bc83ff22983e49f6a496dc8318b53cd Gerrit-Change-Number: 22220 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 15 Jan 2021 16:13:58 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 16:14:16 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 15 Jan 2021 16:14:16 +0000 Subject: Change in osmo-ci[master]: OBS: osmo_obs_add_rpm_spec: depend on conflict pkg In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22221 ) Change subject: OBS: osmo_obs_add_rpm_spec: depend on conflict pkg ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22221 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I69bebdadaf89c2a6e5dd9a27161703a567882359 Gerrit-Change-Number: 22221 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 15 Jan 2021 16:14:16 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 16:14:20 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 15 Jan 2021 16:14:20 +0000 Subject: Change in osmo-ci[master]: OBS: rename osmo_obs_add_debian_dependency In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22218 ) Change subject: OBS: rename osmo_obs_add_debian_dependency ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22218 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Icf444b86df993184c9fe4db8d3e67ab4bb06bd47 Gerrit-Change-Number: 22218 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 15 Jan 2021 16:14:20 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 16:14:26 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 15 Jan 2021 16:14:26 +0000 Subject: Change in osmo-ci[master]: OBS: conflict: move pkgver to global variable In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22215 ) Change subject: OBS: conflict: move pkgver to global variable ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22215 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ic56ff12b5f2fe596d73b341e1e7750a9e202ed6b Gerrit-Change-Number: 22215 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 15 Jan 2021 16:14:26 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 16:14:43 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 15 Jan 2021 16:14:43 +0000 Subject: Change in osmo-ci[master]: OBS: add %H%M to DT In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22222 ) Change subject: OBS: add %H%M to DT ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22222 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I7f08c694a549f1b3dd938a68e05082f2c31fdb92 Gerrit-Change-Number: 22222 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 15 Jan 2021 16:14:43 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 16:15:08 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 15 Jan 2021 16:15:08 +0000 Subject: Change in osmo-ci[master]: OBS: nightly: depend on dummy pkg of current date In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22223 ) Change subject: OBS: nightly: depend on dummy pkg of current date ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22223 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ida8db8e6c91834c9d9e43694d9b4daea55a2f8f8 Gerrit-Change-Number: 22223 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 15 Jan 2021 16:15:08 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 16:15:26 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 15 Jan 2021 16:15:26 +0000 Subject: Change in osmo-ci[master]: OBS: add_depend_deb: no self-dependencies In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22219 ) Change subject: OBS: add_depend_deb: no self-dependencies ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22219 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I439079c00259d73a18cb8617a3e76d05df5a7a35 Gerrit-Change-Number: 22219 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 15 Jan 2021 16:15:26 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 16:15:42 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 15 Jan 2021 16:15:42 +0000 Subject: Change in osmo-trx[master]: ChannelizerBase: Fix memory leak In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/22212 ) Change subject: ChannelizerBase: Fix memory leak ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/22212 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: Ibc4c7edeb9bba517db08fce152d863e6cc0c7bbb Gerrit-Change-Number: 22212 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 15 Jan 2021 16:15:42 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 16:16:11 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 15 Jan 2021 16:16:11 +0000 Subject: Change in osmo-ci[master]: OBS: osmo_obs_add_rpm_spec: refactor In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22220 ) Change subject: OBS: osmo_obs_add_rpm_spec: refactor ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22220 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I4f3d4f8a8bc83ff22983e49f6a496dc8318b53cd Gerrit-Change-Number: 22220 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 15 Jan 2021 16:16:11 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 16:17:00 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 15 Jan 2021 16:17:00 +0000 Subject: Change in libosmocore[master]: osmo-ns-dummy: allow to create dynamic NSEs In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22198 ) Change subject: osmo-ns-dummy: allow to create dynamic NSEs ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22198 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I196cc454b5d7bc53848f73596a2f92730b78922b Gerrit-Change-Number: 22198 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 15 Jan 2021 16:17:00 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 16:17:13 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 15 Jan 2021 16:17:13 +0000 Subject: Change in osmo-ci[master]: OBS: osmo_obs_add_rpm_spec: depend on conflict pkg In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22221 ) Change subject: OBS: osmo_obs_add_rpm_spec: depend on conflict pkg ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22221 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I69bebdadaf89c2a6e5dd9a27161703a567882359 Gerrit-Change-Number: 22221 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 15 Jan 2021 16:17:13 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 16:18:10 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 15 Jan 2021 16:18:10 +0000 Subject: Change in osmo-ci[master]: OBS: add %H%M to DT In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22222 ) Change subject: OBS: add %H%M to DT ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22222 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I7f08c694a549f1b3dd938a68e05082f2c31fdb92 Gerrit-Change-Number: 22222 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 15 Jan 2021 16:18:10 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 16:18:14 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 15 Jan 2021 16:18:14 +0000 Subject: Change in osmo-ci[master]: Revert "osmo-build-dep.sh: don't build osmo-gsm-manuals" In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22158 ) Change subject: Revert "osmo-build-dep.sh: don't build osmo-gsm-manuals" ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22158 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I88d57ee04775dc75e6ca3152d7edfa7f47608c8a Gerrit-Change-Number: 22158 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Fri, 15 Jan 2021 16:18:14 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 16:18:36 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 15 Jan 2021 16:18:36 +0000 Subject: Change in osmo-ci[master]: OBS: nightly: depend on dummy pkg of current date In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22223 ) Change subject: OBS: nightly: depend on dummy pkg of current date ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22223 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ida8db8e6c91834c9d9e43694d9b4daea55a2f8f8 Gerrit-Change-Number: 22223 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 15 Jan 2021 16:18:36 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 16:19:13 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 15 Jan 2021 16:19:13 +0000 Subject: Change in osmo-ttcn3-hacks[master]: RAW_NS: rework NS connection to use NS_Provider In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22090 ) Change subject: RAW_NS: rework NS connection to use NS_Provider ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22090 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I8a3b6c72798a75f434f54229fdbfc802cd13967e Gerrit-Change-Number: 22090 Gerrit-PatchSet: 4 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 15 Jan 2021 16:19:13 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 16:19:26 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 15 Jan 2021 16:19:26 +0000 Subject: Change in osmo-ttcn3-hacks[master]: remove unused NS_CodecPort.ttcn/NS_CodecPort_CtrlFunct In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22207 ) Change subject: remove unused NS_CodecPort.ttcn/NS_CodecPort_CtrlFunct ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22207 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If885353ec8947309fc7d3ad780448cfc7402e1a4 Gerrit-Change-Number: 22207 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 15 Jan 2021 16:19:26 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 16:20:02 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 15 Jan 2021 16:20:02 +0000 Subject: Change in osmo-sip-connector[master]: mncc: remove callref argument from mncc_write() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sip-connector/+/22201 ) Change subject: mncc: remove callref argument from mncc_write() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sip-connector/+/22201 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sip-connector Gerrit-Branch: master Gerrit-Change-Id: Ia156010194c1f4334a4966d01aadfd02fa7097a8 Gerrit-Change-Number: 22201 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 15 Jan 2021 16:20:02 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 16:20:17 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 15 Jan 2021 16:20:17 +0000 Subject: Change in osmo-sip-connector[master]: mncc: add return code for write/send function In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sip-connector/+/22202 ) Change subject: mncc: add return code for write/send function ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sip-connector/+/22202 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sip-connector Gerrit-Branch: master Gerrit-Change-Id: Ic926d192c238ef84fb3ad2be27e507e010b0e93f Gerrit-Change-Number: 22202 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 15 Jan 2021 16:20:17 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 16:20:59 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 15 Jan 2021 16:20:59 +0000 Subject: Change in osmo-sip-connector[master]: mncc: Introduce mncc_rtp_write similiar to mncc_write In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sip-connector/+/22203 ) Change subject: mncc: Introduce mncc_rtp_write similiar to mncc_write ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sip-connector/+/22203 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sip-connector Gerrit-Branch: master Gerrit-Change-Id: Ia84602955b913a3bb13de7a6a92048799f2e1955 Gerrit-Change-Number: 22203 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 15 Jan 2021 16:20:59 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 16:21:12 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 15 Jan 2021 16:21:12 +0000 Subject: Change in osmo-sip-connector[master]: mncc: mncc_create_remote_leg: use mncc_write instead of write direct ... In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sip-connector/+/22204 ) Change subject: mncc: mncc_create_remote_leg: use mncc_write instead of write direct to the fd ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sip-connector/+/22204 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sip-connector Gerrit-Branch: master Gerrit-Change-Id: I870c16d7ee5e5424304f3c1c9fb78af418ae2577 Gerrit-Change-Number: 22204 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 15 Jan 2021 16:21:12 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 16:21:15 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 15 Jan 2021 16:21:15 +0000 Subject: Change in osmo-sip-connector[master]: mncc: remove callref argument from mncc_write() In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sip-connector/+/22201 ) Change subject: mncc: remove callref argument from mncc_write() ...................................................................... mncc: remove callref argument from mncc_write() The callref is always included in the struct mncc argument. Change-Id: Ia156010194c1f4334a4966d01aadfd02fa7097a8 --- M src/mncc.c 1 file changed, 6 insertions(+), 6 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/src/mncc.c b/src/mncc.c index 0725d4c..5456ac6 100644 --- a/src/mncc.c +++ b/src/mncc.c @@ -130,7 +130,7 @@ } } -static void mncc_write(struct mncc_connection *conn, struct gsm_mncc *mncc, uint32_t callref) +static void mncc_write(struct mncc_connection *conn, struct gsm_mncc *mncc) { int rc; @@ -141,7 +141,7 @@ rc = write(conn->fd.fd, mncc, sizeof(*mncc)); LOGP(DMNCC, LOGL_DEBUG, "MNCC sent message type: %s\n", osmo_mncc_name(mncc->msg_type)); if (rc != sizeof(*mncc)) { - LOGP(DMNCC, LOGL_ERROR, "Failed to send message for call(%u)\n", callref); + LOGP(DMNCC, LOGL_ERROR, "Failed to send message for call(%u)\n", mncc->callref); close_connection(conn); } } @@ -151,7 +151,7 @@ struct gsm_mncc mncc = { 0, }; mncc_fill_header(&mncc, msg_type, callref); - mncc_write(conn, &mncc, callref); + mncc_write(conn, &mncc); } static void mncc_rtp_send(struct mncc_connection *conn, uint32_t msg_type, uint32_t callref) @@ -264,7 +264,7 @@ out_mncc.progress.location = GSM48_CAUSE_LOC_PRN_S_LU; /* Private network serving the local user */ out_mncc.progress.descr = GSM48_PROGR_IN_BAND_AVAIL; /* In-band information or appropriate pattern now available */ - mncc_write(leg->conn, &out_mncc, leg->callref); + mncc_write(leg->conn, &out_mncc); /* * If we have remote IP/port let's connect it already. @@ -807,7 +807,7 @@ mncc_fill_header(&out_mncc, MNCC_START_DTMF_RSP, leg->callref); out_mncc.fields |= MNCC_F_KEYPAD; out_mncc.keypad = data->keypad; - mncc_write(conn, &out_mncc, leg->callref); + mncc_write(conn, &out_mncc); } static void check_dtmf_stop(struct mncc_connection *conn, const char *buf, int rc) @@ -825,7 +825,7 @@ mncc_fill_header(&out_mncc, MNCC_STOP_DTMF_RSP, leg->callref); out_mncc.fields |= MNCC_F_KEYPAD; out_mncc.keypad = data->keypad; - mncc_write(conn, &out_mncc, leg->callref); + mncc_write(conn, &out_mncc); } static void check_hello(struct mncc_connection *conn, const char *buf, int rc) -- To view, visit https://gerrit.osmocom.org/c/osmo-sip-connector/+/22201 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sip-connector Gerrit-Branch: master Gerrit-Change-Id: Ia156010194c1f4334a4966d01aadfd02fa7097a8 Gerrit-Change-Number: 22201 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 16:21:15 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 15 Jan 2021 16:21:15 +0000 Subject: Change in osmo-sip-connector[master]: mncc: add return code for write/send function In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sip-connector/+/22202 ) Change subject: mncc: add return code for write/send function ...................................................................... mncc: add return code for write/send function Allow to get errors back for the caller to clean up state. Change-Id: Ic926d192c238ef84fb3ad2be27e507e010b0e93f --- M src/mncc.c 1 file changed, 20 insertions(+), 10 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/src/mncc.c b/src/mncc.c index 5456ac6..d3d218b 100644 --- a/src/mncc.c +++ b/src/mncc.c @@ -130,7 +130,7 @@ } } -static void mncc_write(struct mncc_connection *conn, struct gsm_mncc *mncc) +static int mncc_write(struct mncc_connection *conn, struct gsm_mncc *mncc) { int rc; @@ -144,17 +144,19 @@ LOGP(DMNCC, LOGL_ERROR, "Failed to send message for call(%u)\n", mncc->callref); close_connection(conn); } + + return rc; } -static void mncc_send(struct mncc_connection *conn, uint32_t msg_type, uint32_t callref) +static int mncc_send(struct mncc_connection *conn, uint32_t msg_type, uint32_t callref) { struct gsm_mncc mncc = { 0, }; mncc_fill_header(&mncc, msg_type, callref); - mncc_write(conn, &mncc); + return mncc_write(conn, &mncc); } -static void mncc_rtp_send(struct mncc_connection *conn, uint32_t msg_type, uint32_t callref) +static int mncc_rtp_send(struct mncc_connection *conn, uint32_t msg_type, uint32_t callref) { int rc; struct gsm_mncc_rtp mncc = { 0, }; @@ -167,6 +169,8 @@ LOGP(DMNCC, LOGL_ERROR, "Failed to send message for call(%u)\n", callref); close_connection(conn); } + + return rc; } /* Send a MNCC_RTP_CONNECT to the MSC for the given call legs */ @@ -393,7 +397,8 @@ leg = mncc_find_leg_not_released(rtp->callref); if (!leg) { LOGP(DMNCC, LOGL_ERROR, "leg(%u) can not be found\n", rtp->callref); - return mncc_send(conn, MNCC_REJ_REQ, rtp->callref); + mncc_send(conn, MNCC_REJ_REQ, rtp->callref); + return; } /* extract information about where the RTP is */ @@ -426,7 +431,8 @@ leg = mncc_find_leg_not_released(rtp->callref); if (!leg) { LOGP(DMNCC, LOGL_ERROR, "call(%u) can not be found\n", rtp->callref); - return mncc_send(conn, MNCC_REJ_REQ, rtp->callref); + mncc_send(conn, MNCC_REJ_REQ, rtp->callref); + return; } /* extract information about where the RTP is */ @@ -488,7 +494,8 @@ LOGP(DMNCC, LOGL_ERROR, "MNCC leg(%u) without called addr fields(%u)\n", data->callref, data->fields); - return mncc_send(conn, MNCC_REJ_REQ, data->callref); + mncc_send(conn, MNCC_REJ_REQ, data->callref); + return; } /* Emergency without a called number present. Use the standard "emergency" number. */ @@ -499,14 +506,16 @@ LOGP(DMNCC, LOGL_ERROR, "MNCC leg(%u) without calling addr fields(%u)\n", data->callref, data->fields); - return mncc_send(conn, MNCC_REJ_REQ, data->callref); + mncc_send(conn, MNCC_REJ_REQ, data->callref); + return; } /* TODO.. bearer caps and better audio handling */ if (!continue_setup(conn, data)) { LOGP(DMNCC, LOGL_ERROR, "MNCC screening parameters failed leg(%u)\n", data->callref); - return mncc_send(conn, MNCC_REJ_REQ, data->callref); + mncc_send(conn, MNCC_REJ_REQ, data->callref); + return; } /* Create an RTP port and then allocate a call */ @@ -514,7 +523,8 @@ if (!call) { LOGP(DMNCC, LOGL_ERROR, "MNCC leg(%u) failed to allocate call\n", data->callref); - return mncc_send(conn, MNCC_REJ_REQ, data->callref); + mncc_send(conn, MNCC_REJ_REQ, data->callref); + return; } leg = (struct mncc_call_leg *) call->initial; -- To view, visit https://gerrit.osmocom.org/c/osmo-sip-connector/+/22202 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sip-connector Gerrit-Branch: master Gerrit-Change-Id: Ic926d192c238ef84fb3ad2be27e507e010b0e93f Gerrit-Change-Number: 22202 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 16:21:15 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 15 Jan 2021 16:21:15 +0000 Subject: Change in osmo-sip-connector[master]: mncc: Introduce mncc_rtp_write similiar to mncc_write In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sip-connector/+/22203 ) Change subject: mncc: Introduce mncc_rtp_write similiar to mncc_write ...................................................................... mncc: Introduce mncc_rtp_write similiar to mncc_write Concentrate the write() to the socket in 2 places. One for struct gsm_mncc and one for struct gsm_mncc_rtp. Improve debugging as now all function debug print the MNCC primitiv. Change-Id: Ia84602955b913a3bb13de7a6a92048799f2e1955 --- M src/mncc.c 1 file changed, 16 insertions(+), 9 deletions(-) Approvals: pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/mncc.c b/src/mncc.c index d3d218b..83cfe3b 100644 --- a/src/mncc.c +++ b/src/mncc.c @@ -156,21 +156,28 @@ return mncc_write(conn, &mncc); } -static int mncc_rtp_send(struct mncc_connection *conn, uint32_t msg_type, uint32_t callref) +static int mncc_rtp_write(struct mncc_connection *conn, struct gsm_mncc_rtp *rtp) { int rc; + + rc = write(conn->fd.fd, &rtp, sizeof(rtp)); + LOGP(DMNCC, LOGL_DEBUG, "MNCC sent message type: %s\n", osmo_mncc_name(rtp->msg_type)); + if (rc != sizeof(*rtp)) { + LOGP(DMNCC, LOGL_ERROR, "Failed to send message for call(%u)\n", rtp->callref); + close_connection(conn); + } + + return rc; +} + +static int mncc_rtp_send(struct mncc_connection *conn, uint32_t msg_type, uint32_t callref) +{ struct gsm_mncc_rtp mncc = { 0, }; mncc.msg_type = msg_type; mncc.callref = callref; - rc = write(conn->fd.fd, &mncc, sizeof(mncc)); - if (rc != sizeof(mncc)) { - LOGP(DMNCC, LOGL_ERROR, "Failed to send message for call(%u)\n", callref); - close_connection(conn); - } - - return rc; + return mncc_rtp_write(conn, &mncc); } /* Send a MNCC_RTP_CONNECT to the MSC for the given call legs */ @@ -195,7 +202,7 @@ LOGP(DMNCC, LOGL_DEBUG, "SEND rtp_connect: IP=(%s) PORT=(%u)\n", osmo_sockaddr_ntop((const struct sockaddr*)&other->addr, ip_addr), osmo_sockaddr_port((const struct sockaddr*)&other->addr)); - rc = write(leg->conn->fd.fd, &mncc, sizeof(mncc)); + rc = mncc_rtp_write(leg->conn, &mncc); if (rc != sizeof(mncc)) { LOGP(DMNCC, LOGL_ERROR, "Failed to send message for call(%u)\n", leg->callref); -- To view, visit https://gerrit.osmocom.org/c/osmo-sip-connector/+/22203 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sip-connector Gerrit-Branch: master Gerrit-Change-Id: Ia84602955b913a3bb13de7a6a92048799f2e1955 Gerrit-Change-Number: 22203 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 16:21:15 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 15 Jan 2021 16:21:15 +0000 Subject: Change in osmo-sip-connector[master]: mncc: mncc_create_remote_leg: use mncc_write instead of write direct ... In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sip-connector/+/22204 ) Change subject: mncc: mncc_create_remote_leg: use mncc_write instead of write direct to the fd ...................................................................... mncc: mncc_create_remote_leg: use mncc_write instead of write direct to the fd Change-Id: I870c16d7ee5e5424304f3c1c9fb78af418ae2577 --- M src/mncc.c 1 file changed, 1 insertion(+), 2 deletions(-) Approvals: pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/mncc.c b/src/mncc.c index 83cfe3b..abfa01b 100644 --- a/src/mncc.c +++ b/src/mncc.c @@ -922,11 +922,10 @@ * - Screening, redirect? * - Synth. the bearer caps based on codecs? */ - rc = write(conn->fd.fd, &mncc, sizeof(mncc)); + rc = mncc_write(conn, &mncc); if (rc != sizeof(mncc)) { LOGP(DMNCC, LOGL_ERROR, "Failed to send message leg(%u)\n", leg->callref); - close_connection(conn); talloc_free(leg); return -1; } -- To view, visit https://gerrit.osmocom.org/c/osmo-sip-connector/+/22204 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sip-connector Gerrit-Branch: master Gerrit-Change-Id: I870c16d7ee5e5424304f3c1c9fb78af418ae2577 Gerrit-Change-Number: 22204 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 16:21:30 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 15 Jan 2021 16:21:30 +0000 Subject: Change in osmo-ttcn3-hacks[master]: update expected-results.xml In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22205 ) Change subject: update expected-results.xml ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22205 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ib4399aa488afd917e3eda5e79d56ea3797ef7c78 Gerrit-Change-Number: 22205 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 15 Jan 2021 16:21:30 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 16:21:33 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 15 Jan 2021 16:21:33 +0000 Subject: Change in osmo-ttcn3-hacks[master]: update expected-results.xml In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22205 ) Change subject: update expected-results.xml ...................................................................... update expected-results.xml Change-Id: Ib4399aa488afd917e3eda5e79d56ea3797ef7c78 --- M bsc/expected-results.xml A gbproxy/expected-results.xml M mgw/expected-results.xml M pcu/expected-results.xml M sgsn/expected-results.xml M sip/expected-results.xml M smlc/expected-results.xml 7 files changed, 125 insertions(+), 14 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/bsc/expected-results.xml b/bsc/expected-results.xml index 6ab542a..c98d3c7 100644 --- a/bsc/expected-results.xml +++ b/bsc/expected-results.xml @@ -1,5 +1,5 @@ - + @@ -73,6 +73,11 @@ + + + + + @@ -125,6 +130,7 @@ + @@ -170,14 +176,22 @@ - - no verdict - + + + + + + + + + + + @@ -193,7 +207,9 @@ + + diff --git a/gbproxy/expected-results.xml b/gbproxy/expected-results.xml new file mode 100644 index 0000000..0e20404 --- /dev/null +++ b/gbproxy/expected-results.xml @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mgw/expected-results.xml b/mgw/expected-results.xml index d44e43e..5b6746b 100644 --- a/mgw/expected-results.xml +++ b/mgw/expected-results.xml @@ -1,10 +1,11 @@ - + + diff --git a/pcu/expected-results.xml b/pcu/expected-results.xml index ce12807..11906d9 100644 --- a/pcu/expected-results.xml +++ b/pcu/expected-results.xml @@ -1,13 +1,11 @@ - + + - Timing Advance value doesn't match - PCU_Tests.ttcn:MASKED PCU_Tests control part - PCU_Tests.ttcn:MASKED TC_ta_idle_dl_tbf_ass testcase - + Failed to match Timing Advance Index for #0 @@ -18,6 +16,13 @@ + + + + + + + @@ -39,8 +44,13 @@ + + + + + @@ -48,6 +58,27 @@ + + + + + + + + Expected 8 PDCH slots allocated but got 4 + PCU_Tests.ttcn:MASKED PCU_Tests control part + PCU_Tests.ttcn:MASKED TC_dl_multislot_tbf_ms_class_from_sgsn testcase + + + + + Expected 8 PDCH slot allocated but got 1 + PCU_Tests.ttcn:MASKED PCU_Tests control part + PCU_Tests.ttcn:MASKED TC_ul_multislot_tbf_ms_class_from_2phase testcase + + + + diff --git a/sgsn/expected-results.xml b/sgsn/expected-results.xml index cea6ad7..0a36e2e 100644 --- a/sgsn/expected-results.xml +++ b/sgsn/expected-results.xml @@ -1,5 +1,5 @@ - + @@ -72,6 +72,12 @@ + + No BSSGP RIM PDU received + SGSN_Tests.ttcn:MASKED SGSN_Tests control part + SGSN_Tests.ttcn:MASKED TC_bssgp_rim_single_report testcase + + diff --git a/sip/expected-results.xml b/sip/expected-results.xml index 2ac1ec5..87895ba 100644 --- a/sip/expected-results.xml +++ b/sip/expected-results.xml @@ -1,8 +1,10 @@ - + + + diff --git a/smlc/expected-results.xml b/smlc/expected-results.xml index 9034822..7834ebd 100644 --- a/smlc/expected-results.xml +++ b/smlc/expected-results.xml @@ -1,4 +1,8 @@ - - + + + + + + -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22205 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ib4399aa488afd917e3eda5e79d56ea3797ef7c78 Gerrit-Change-Number: 22205 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 16:22:50 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 15 Jan 2021 16:22:50 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: clear local and remote entries when SNS failed In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22206 ) Change subject: gprs_ns2_sns: clear local and remote entries when SNS failed ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22206 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie4db81acdd5f8ddf1a1f5dc7645d1144545d9c73 Gerrit-Change-Number: 22206 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 15 Jan 2021 16:22:50 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 16:34:42 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 15 Jan 2021 16:34:42 +0000 Subject: Change in osmo-bts[master]: paging: refactor and optimize fill_paging_type_1() References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/22224 ) Change subject: paging: refactor and optimize fill_paging_type_1() ...................................................................... paging: refactor and optimize fill_paging_type_1() As far as I can see from my perf measurements, bitvec_fill() is called quite often and takes 0.27% of the CPU. A more detailed look reveals that it's indirectly called by fill_paging_type_1() in order to fill the remaining octets with constant '2B'O padding. Let's optimize this function: - use memset() for padding *before* writing optional P1 Rest Octets; - conditionally initialize the bit vector for P1 Rest Octets; - use designated initializers instead of memset(). Change-Id: I90473356b396e5dd9326598aca025afacca4afc8 --- M src/common/paging.c 1 file changed, 18 insertions(+), 16 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/24/22224/1 diff --git a/src/common/paging.c b/src/common/paging.c index fca58b5..2973141 100644 --- a/src/common/paging.c +++ b/src/common/paging.c @@ -352,34 +352,36 @@ uint8_t chan2, const struct p1_rest_octets *p1ro) { struct gsm48_paging1 *pt1 = (struct gsm48_paging1 *) out_buf; - struct bitvec bv; - unsigned int paging_len; + unsigned int ro_len; uint8_t *cur; - memset(out_buf, 0, sizeof(*pt1)); + *pt1 = (struct gsm48_paging1) { + .proto_discr = GSM48_PDISC_RR, + .msg_type = GSM48_MT_RR_PAG_REQ_1, + .pag_mode = GSM48_PM_NORMAL, + .cneed1 = chan1 & 3, + .cneed2 = chan2 & 3, + }; - pt1->proto_discr = GSM48_PDISC_RR; - pt1->msg_type = GSM48_MT_RR_PAG_REQ_1; - pt1->pag_mode = GSM48_PM_NORMAL; - pt1->cneed1 = chan1 & 3; - pt1->cneed2 = chan2 & 3; cur = lv_put(pt1->data, identity1_lv[0], identity1_lv+1); if (identity2_lv) cur = tlv_put(cur, GSM48_IE_MOBILE_ID, identity2_lv[0], identity2_lv+1); pt1->l2_plen = L2_PLEN(cur - out_buf); - paging_len = cur - out_buf; + /* Pad remaining octets with constant '2B'O */ + ro_len = GSM_MACBLOCK_LEN - (cur - out_buf); + memset(cur, GSM_MACBLOCK_PADDING, ro_len); - memset(&bv, 0, sizeof(bv)); - bv.data = cur; - bv.data_len = GSM_MACBLOCK_LEN - paging_len; + /* Optional P1 Rest Octets */ + if (p1ro) { + struct bitvec bv = { + .data_len = ro_len, + .data = cur, + }; - if (p1ro) append_p1_rest_octets(&bv, p1ro); - - /* pad to the end of the MAC block */ - bitvec_spare_padding(&bv, bv.data_len *8); + } return GSM_MACBLOCK_LEN; } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22224 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I90473356b396e5dd9326598aca025afacca4afc8 Gerrit-Change-Number: 22224 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 16:38:22 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 15 Jan 2021 16:38:22 +0000 Subject: Change in osmo-bts[master]: paging: refactor and optimize fill_paging_type_1() In-Reply-To: References: Message-ID: fixeria has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/osmo-bts/+/22224 ) Change subject: paging: refactor and optimize fill_paging_type_1() ...................................................................... paging: refactor and optimize fill_paging_type_1() As far as I can see from my perf measurements, bitvec_fill() is called quite often and takes 0.27% of the CPU. A more detailed look reveals that it's indirectly called by fill_paging_type_1() in order to fill the remaining octets with constant '2B'O padding. Let's optimize this function: - use memset() for padding *before* writing optional P1 Rest Octets; - conditionally initialize the bit vector for P1 Rest Octets; - use designated initializers instead of memset(). It's generally better to avoid using bitvec_fill() when using memset() is possible, because the former operates on bits rather than bytes. Change-Id: I90473356b396e5dd9326598aca025afacca4afc8 --- M src/common/paging.c 1 file changed, 18 insertions(+), 16 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/24/22224/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22224 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I90473356b396e5dd9326598aca025afacca4afc8 Gerrit-Change-Number: 22224 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-CC: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 16:47:42 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 15 Jan 2021 16:47:42 +0000 Subject: Change in osmo-bts[master]: paging: refactor and optimize fill_paging_type_1() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/22224 ) Change subject: paging: refactor and optimize fill_paging_type_1() ...................................................................... Patch Set 2: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/22224/2/src/common/paging.c File src/common/paging.c: https://gerrit.osmocom.org/c/osmo-bts/+/22224/2/src/common/paging.c at 383 PS2, Line 383: append_p1_rest_octets(&bv, p1ro); can you get num of bits/byte written from here and then memset only the bytes not filled here? -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22224 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I90473356b396e5dd9326598aca025afacca4afc8 Gerrit-Change-Number: 22224 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 15 Jan 2021 16:47:42 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 16:52:09 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 15 Jan 2021 16:52:09 +0000 Subject: Change in osmo-bts[master]: paging: refactor and optimize fill_paging_type_1() In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/22224 ) Change subject: paging: refactor and optimize fill_paging_type_1() ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/22224/2/src/common/paging.c File src/common/paging.c: https://gerrit.osmocom.org/c/osmo-bts/+/22224/2/src/common/paging.c at 383 PS2, Line 383: append_p1_rest_octets(&bv, p1ro); > can you get num of bits/byte written from here and then memset only the bytes not filled here? What do we win in this case? We could of course calculate that from bv.cur_bit, but I don't think it's such a significant improvement. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22224 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I90473356b396e5dd9326598aca025afacca4afc8 Gerrit-Change-Number: 22224 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 15 Jan 2021 16:52:09 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 16:54:38 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 15 Jan 2021 16:54:38 +0000 Subject: Change in osmo-bts[master]: paging: refactor and optimize fill_paging_type_1() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/22224 ) Change subject: paging: refactor and optimize fill_paging_type_1() ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/22224/2/src/common/paging.c File src/common/paging.c: https://gerrit.osmocom.org/c/osmo-bts/+/22224/2/src/common/paging.c at 383 PS2, Line 383: append_p1_rest_octets(&bv, p1ro); > What do we win in this case? We could of course calculate that from bv. [?] Well you are not setting the same bytes twice: memset() append_p1_rest_octets() -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22224 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I90473356b396e5dd9326598aca025afacca4afc8 Gerrit-Change-Number: 22224 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 15 Jan 2021 16:54:38 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: fixeria Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 16:57:28 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 15 Jan 2021 16:57:28 +0000 Subject: Change in osmo-bts[master]: paging: refactor and optimize fill_paging_type_1() In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/22224 ) Change subject: paging: refactor and optimize fill_paging_type_1() ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/22224/2/src/common/paging.c File src/common/paging.c: https://gerrit.osmocom.org/c/osmo-bts/+/22224/2/src/common/paging.c at 383 PS2, Line 383: append_p1_rest_octets(&bv, p1ro); > Well you are not setting the same bytes twice: [?] But then you add more instructions for calculating the amount of bytes from bits... Also, you would probably need to deal with incomplete octets, where some bits are set and some are not. And this brings us back to bitvec_spare_padding() that we want to avoid. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22224 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I90473356b396e5dd9326598aca025afacca4afc8 Gerrit-Change-Number: 22224 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 15 Jan 2021 16:57:28 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Comment-In-Reply-To: fixeria Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 19:04:37 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 15 Jan 2021 19:04:37 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Add f_gen_tmsi() to generate a TMSI similar to f_gen_{imsi, imei}() References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22225 ) Change subject: Add f_gen_tmsi() to generate a TMSI similar to f_gen_{imsi,imei}() ...................................................................... Add f_gen_tmsi() to generate a TMSI similar to f_gen_{imsi,imei}() ... and start to use it from BSC_Tests.ttcn Related: OS#4472, SYS#5002 Change-Id: Iacba62bb740374c28cbcf50d54ba1814c5b4e1c2 --- M bsc/BSC_Tests.ttcn M library/Osmocom_Types.ttcn 2 files changed, 17 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/25/22225/1 diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index 2c02e36..52b4906 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -6383,14 +6383,8 @@ * MSC Pooling ***********************************************************************/ -function f_tmsi_nri(integer nri_v, octetstring base_tmsi := '42000023'O, integer nri_bitlen := 10) return octetstring -{ - return int2oct( oct2int(base_tmsi) + bit2int( (int2bit(nri_v, 32) << ( 24 - nri_bitlen)) ), - 4); -} - template MobileIdentityLV ts_MI_TMSI_NRI_LV(integer nri_v, integer nri_bitlen := 10) := - ts_MI_TMSI_LV(tmsi := f_tmsi_nri(nri_v, nri_bitlen := nri_bitlen)); + ts_MI_TMSI_LV(tmsi := f_gen_tmsi(suffix := 0, nri_v := nri_v, nri_bitlen := nri_bitlen)); private function f_expect_lchan_rel(RSL_DCHAN_PT rsl) runs on MSC_ConnHdlr { interleave { @@ -6949,7 +6943,7 @@ var RSL_ChanNeeded rsl_chneed := RSL_CHANNEED_SDCCH; var template BSSMAP_IE_ChannelNeeded bssmap_chneed := ts_BSSMAP_IE_ChanNeeded(int2bit(enum2int(valueof(rsl_chneed)),2)); var integer nri_v := 300; /* <-- second MSC's NRI */ - var octetstring tmsi := f_tmsi_nri(nri_v); + var octetstring tmsi := f_gen_tmsi(suffix := 0, nri_v := nri_v); var BSSAP_N_UNITDATA_req paging; f_MscConnHdlr_init(g_pars.media_nr, "127.0.0.2", "127.0.0.3", FR_AMR); diff --git a/library/Osmocom_Types.ttcn b/library/Osmocom_Types.ttcn index 862509b..1cba168 100644 --- a/library/Osmocom_Types.ttcn +++ b/library/Osmocom_Types.ttcn @@ -267,6 +267,21 @@ return f_concat_pad(12, '49123'H, suffix); } +function f_gen_tmsi(integer suffix, integer nri_v := 0, integer nri_bitlen := 10, + OCT4 base_tmsi := '42000023'O) return OCT4 { + var integer tmsi_int := oct2int(base_tmsi) + suffix; + var bitstring base_tmsi_bits := int2bit(tmsi_int, 32); + var bitstring prefix_bits := substr(base_tmsi_bits, 0, 8); + var bitstring suffix_bits := substr(base_tmsi_bits, 8 + nri_bitlen, 24 - nri_bitlen); + var bitstring total_bits := prefix_bits & int2bit(nri_v, nri_bitlen) & suffix_bits; + var OCT4 tmsi := bit2oct(total_bits); + + log("f_gen_tmsi(suffix:=", suffix, ", nri_v:=", nri_v, ", nri_bitlen:=", nri_bitlen, + ", base_tmsi:=", base_tmsi, ") -> prefix:=", prefix_bits, ", suffix:=", suffix_bits, + "total_bits:=", total_bits, " == ", tmsi); + + return tmsi; +} } with { encode "RAW"; variant "FIELDORDER(msb)" } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22225 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Iacba62bb740374c28cbcf50d54ba1814c5b4e1c2 Gerrit-Change-Number: 22225 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 19:04:37 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 15 Jan 2021 19:04:37 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Move away from random TLLI References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22226 ) Change subject: gbproxy: Move away from random TLLI ...................................................................... gbproxy: Move away from random TLLI We used to generate a random TLLI for each ConnHldr. Instead, use a deterministic function to generate the P-TMSI (just like we do for the IMSI) and derive a local TLLI from that P-TMSI. Related: OS#4472, SYS#5002 Change-Id: Ic1eaa1d298fe998ca97432769953bfc5a5333ae4 --- M gbproxy/GBProxy_Tests.ttcn M library/Osmocom_Gb_Types.ttcn 2 files changed, 22 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/26/22226/1 diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index 44b2ac9..6daad53 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -597,14 +597,15 @@ float t_guard := 30.0) runs on test_CT return BSSGP_ConnHdlr { var BSSGP_ConnHdlr vc_conn; + var OCT4 p_tmsi := f_gen_tmsi(imsi_suffix); var BSSGP_ConnHdlrPars pars := { imei := f_gen_imei(imsi_suffix), imsi := f_gen_imsi(imsi_suffix), msisdn := f_gen_msisdn(imsi_suffix), - p_tmsi := omit, + p_tmsi := p_tmsi, p_tmsi_sig := omit, - tlli := f_gprs_tlli_random(), + tlli := f_gprs_tlli_from_tmsi(p_tmsi, TLLI_LOCAL), tlli_old := omit, ra := omit, pcu := g_pcu, diff --git a/library/Osmocom_Gb_Types.ttcn b/library/Osmocom_Gb_Types.ttcn index 518d619..8ca0cd5 100644 --- a/library/Osmocom_Gb_Types.ttcn +++ b/library/Osmocom_Gb_Types.ttcn @@ -3252,6 +3252,25 @@ } } + /* build a TLLI of specified type from the given (P)TMSI */ + function f_gprs_tlli_from_tmsi(OCT4 tmsi, TlliType tlli_type) return OCT4 { + var bitstring tmsi_bits := oct2bit(tmsi); + var bitstring prefix; + select (tlli_type) { + case (TLLI_LOCAL) { prefix := '11'B } + case (TLLI_FOREIGN) { prefix := '01111'B } + case (TLLI_RANDOM) { prefix := '0110'B } + case (TLLI_RESERVED) { prefix := '010'B } + case (TLLI_G_RNTI) { prefix := '0000'B } + case (TLLI_RAND_G_RNTI) { prefix := '0001'B } + case else { + setverdict(fail, "Unknonw TLLI Type ", tlli_type); + mtc.stop; + } + } + return bit2oct(prefix & substr(tmsi_bits, lengthof(prefix), 32-lengthof(prefix))); + } + function f_gprs_tlli_random() return OCT4 { var OCT4 tlli := f_rnd_octstring(4); return tlli or4b 'c0000000'O; -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22226 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ic1eaa1d298fe998ca97432769953bfc5a5333ae4 Gerrit-Change-Number: 22226 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 19:04:38 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 15 Jan 2021 19:04:38 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Start to allocate NRIs to SGSNs References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22227 ) Change subject: gbproxy: Start to allocate NRIs to SGSNs ...................................................................... gbproxy: Start to allocate NRIs to SGSNs We change the osmo-gbproxy.cfg to use NRI 3 for SGSN-0 (NSEI 101) and NRI 4 for SGSN-1 (NSEI 102). We also add the capability to GBProxy_Tests to allocate P-TMSI with a specific NRI and default to the first NRI of SGSN-0 so all tests written still for a single-SGSN-non-pool scenario pass without any modification. Related: OS#4472, SYS#5002 Change-Id: I15f78dca5ac31a1c71f086d3e92a70e900eae250 --- M gbproxy/GBProxy_Tests.ttcn M gbproxy/osmo-gbproxy.cfg M gbproxy/osmo-gbproxy.fr.cfg 3 files changed, 16 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/27/22227/1 diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index 6daad53..0f35c9d 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -45,6 +45,12 @@ const integer max_fr_info_size := 1600; modulepar { + /* NRI bit-length. 0 for no pooling */ + integer mp_nri_bitlength := 5; + roro_integer mp_sgsn_nri := { + { 3 }, /* list of NRIs of first SGSN */ + { 4 } /* list of NRIs of second SGSN */ + }; boolean mp_enable_bss_load_sharing := false; /* SGSN NS configuration */ NSConfigurations mp_nsconfig_sgsn := { @@ -594,10 +600,10 @@ /* helper function to create, connect and start a BSSGP_ConnHdlr component */ function f_start_handler(void_fn fn, charstring id, GbInstances pcu, GbInstances sgsn, integer imsi_suffix, - float t_guard := 30.0) + float t_guard := 30.0, integer nri := mp_sgsn_nri[0][0]) runs on test_CT return BSSGP_ConnHdlr { var BSSGP_ConnHdlr vc_conn; - var OCT4 p_tmsi := f_gen_tmsi(imsi_suffix); + var OCT4 p_tmsi := f_gen_tmsi(imsi_suffix, nri_v := nri, nri_bitlen := mp_nri_bitlength); var BSSGP_ConnHdlrPars pars := { imei := f_gen_imei(imsi_suffix), @@ -608,8 +614,8 @@ tlli := f_gprs_tlli_from_tmsi(p_tmsi, TLLI_LOCAL), tlli_old := omit, ra := omit, - pcu := g_pcu, - sgsn := g_sgsn, + pcu := pcu, + sgsn := sgsn, t_guard := t_guard }; diff --git a/gbproxy/osmo-gbproxy.cfg b/gbproxy/osmo-gbproxy.cfg index ace1881..f16e60f 100644 --- a/gbproxy/osmo-gbproxy.cfg +++ b/gbproxy/osmo-gbproxy.cfg @@ -6,8 +6,11 @@ no login ! gbproxy + nri bitlen 5 sgsn nsei 101 + nri add 3 sgsn nsei 102 + nri add 4 ns bind udp local listen 127.0.0.1 23000 diff --git a/gbproxy/osmo-gbproxy.fr.cfg b/gbproxy/osmo-gbproxy.fr.cfg index 66dd897..f2fea54 100644 --- a/gbproxy/osmo-gbproxy.fr.cfg +++ b/gbproxy/osmo-gbproxy.fr.cfg @@ -49,5 +49,8 @@ nsvc fr hdlcnet7 dlci 22 nsvci 7 nsvc fr hdlcnet8 dlci 23 nsvci 8 gbproxy + nri bitlen 5 sgsn nsei 101 + nri add 3 sgsn nsei 102 + nri add 4 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22227 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I15f78dca5ac31a1c71f086d3e92a70e900eae250 Gerrit-Change-Number: 22227 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 19:06:18 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 15 Jan 2021 19:06:18 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproy: Configure a Second SGSN In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21698 ) Change subject: gbproy: Configure a Second SGSN ...................................................................... Set Ready For Review -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21698 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ib70f7c1a29f089957f882df0e9b05ee526224611 Gerrit-Change-Number: 21698 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Fri, 15 Jan 2021 19:06:18 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 20:12:54 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 15 Jan 2021 20:12:54 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Fix TC_fc_bvc() with more than one SGSN References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22228 ) Change subject: gbproxy: Fix TC_fc_bvc() with more than one SGSN ...................................................................... gbproxy: Fix TC_fc_bvc() with more than one SGSN The altstep was missing the "repeat" at the end, causing it to abort early and reporting a test failure which actually didn't exist. Change-Id: I0ec9aa06fa9ec25b2047c1e795e28eeefd6bc7d2 --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/28/22228/1 diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index 6daad53..4857515 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -2430,6 +2430,7 @@ if (ispresent(tx_reply)) { G_SGSN[sgsn_idx].send(tx_reply); } + repeat; } } /* Send FC-BVC from simulated PCU; expect each SGSN to receive it; expect PCU to receive ACK */ -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22228 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I0ec9aa06fa9ec25b2047c1e795e28eeefd6bc7d2 Gerrit-Change-Number: 22228 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 20:12:54 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 15 Jan 2021 20:12:54 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Refactor f_TC_{suspend, resume} References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22229 ) Change subject: gbproxy: Refactor f_TC_{suspend,resume} ...................................................................... gbproxy: Refactor f_TC_{suspend,resume} Move the entire body inside the loop to a separate function. This will be useful when adding pooling support next. Change-Id: Ia0f9d9128754c2196ab026623f1b6a254a958d2f --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 56 insertions(+), 53 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/29/22229/1 diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index 9168fa3..6f5b326 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -1066,37 +1066,39 @@ f_cleanup(); } +private function f_suspend_one(integer sgsn_idx, integer pcu_idx, integer bvc_idx, integer suffix) +runs on GlobalTest_CT +{ + var RoutingAreaIdentification ra_id := g_pcu[pcu_idx].cfg.bvc[bvc_idx].cell_id.ra_id; + var OCT4 tlli := f_gprs_tlli_random(); + var template (value) PDU_BSSGP pdu_tx := ts_BSSGP_SUSPEND(tlli, ra_id); + /* we cannot use pdu_tx as there are some subtle differences in the length field :/ */ + var template (present) PDU_BSSGP pdu_rx := tr_BSSGP_SUSPEND(tlli, ra_id); + f_global_pcu2sgsn(pdu_tx, pdu_rx, pcu_idx, sgsn_idx); + + pdu_tx := ts_BSSGP_SUSPEND_ACK(tlli, ra_id, int2oct(suffix, 1)); + /* we cannot use pdu_tx as there are some subtle differences in the length field :/ */ + pdu_rx := tr_BSSGP_SUSPEND_ACK(tlli, ra_id, int2oct(suffix, 1)); + f_global_sgsn2pcu(pdu_tx, pdu_rx, sgsn_idx, pcu_idx); + + pdu_tx := ts_BSSGP_SUSPEND(tlli, ra_id); + /* we cannot use pdu_tx as there are some subtle differences in the length field :/ */ + pdu_rx := tr_BSSGP_SUSPEND(tlli, ra_id); + f_global_pcu2sgsn(pdu_tx, pdu_rx, pcu_idx, sgsn_idx); + + /* These messages are simple passed through so just also test sending NACK */ + pdu_tx := ts_BSSGP_SUSPEND_NACK(tlli, ra_id, BSSGP_CAUSE_UNKNOWN_MS); + /* we cannot use pdu_tx as there are some subtle differences in the length field :/ */ + pdu_rx := tr_BSSGP_SUSPEND_NACK(tlli, ra_id, BSSGP_CAUSE_UNKNOWN_MS); + f_global_sgsn2pcu(pdu_tx, pdu_rx, sgsn_idx, pcu_idx); +} + private function f_TC_suspend() runs on GlobalTest_CT { var integer i; /* TODO: Generate RA ID for each ConnHdlr */ - var RoutingAreaIdentification ra_id := g_pcu[0].cfg.bvc[0].cell_id.ra_id; for (i := 0; i < 10; i := i+1) { - var OCT4 tlli := f_gprs_tlli_random(); - var template (value) PDU_BSSGP pdu_tx := ts_BSSGP_SUSPEND(tlli, ra_id); - /* we cannot use pdu_tx as there are some subtle differences in the length field :/ */ - var template (present) PDU_BSSGP pdu_rx := tr_BSSGP_SUSPEND(tlli, ra_id); - - f_global_pcu2sgsn(pdu_tx, pdu_rx); - - pdu_tx := ts_BSSGP_SUSPEND_ACK(tlli, ra_id, int2oct(i, 1)); - /* we cannot use pdu_tx as there are some subtle differences in the length field :/ */ - pdu_rx := tr_BSSGP_SUSPEND_ACK(tlli, ra_id, int2oct(i, 1)); - - f_global_sgsn2pcu(pdu_tx, pdu_rx); - - pdu_tx := ts_BSSGP_SUSPEND(tlli, ra_id); - /* we cannot use pdu_tx as there are some subtle differences in the length field :/ */ - pdu_rx := tr_BSSGP_SUSPEND(tlli, ra_id); - - f_global_pcu2sgsn(pdu_tx, pdu_rx); - - /* These messages are simple passed through so just also test sending NACK */ - pdu_tx := ts_BSSGP_SUSPEND_NACK(tlli, ra_id, BSSGP_CAUSE_UNKNOWN_MS); - /* we cannot use pdu_tx as there are some subtle differences in the length field :/ */ - pdu_rx := tr_BSSGP_SUSPEND_NACK(tlli, ra_id, BSSGP_CAUSE_UNKNOWN_MS); - - f_global_sgsn2pcu(pdu_tx, pdu_rx); + f_suspend_one(0, 0, 0, i); } setverdict(pass); } @@ -1108,37 +1110,38 @@ f_cleanup(); } +private function f_resume_one(integer sgsn_idx, integer pcu_idx, integer bvc_idx, integer suffix) +runs on GlobalTest_CT +{ + var RoutingAreaIdentification ra_id := g_pcu[pcu_idx].cfg.bvc[bvc_idx].cell_id.ra_id; + var OCT4 tlli := f_gprs_tlli_random(); + var template (value) PDU_BSSGP pdu_tx := ts_BSSGP_RESUME(tlli, ra_id, int2oct(suffix, 1)); + /* we cannot use pdu_tx as there are some subtle differences in the length field :/ */ + var template (present) PDU_BSSGP pdu_rx := tr_BSSGP_RESUME(tlli, ra_id, int2oct(suffix, 1)); + f_global_pcu2sgsn(pdu_tx, pdu_rx, pcu_idx, sgsn_idx); + + pdu_tx := ts_BSSGP_RESUME_ACK(tlli, ra_id); + /* we cannot use pdu_tx as there are some subtle differences in the length field :/ */ + pdu_rx := tr_BSSGP_RESUME_ACK(tlli, ra_id); + f_global_sgsn2pcu(pdu_tx, pdu_rx, sgsn_idx, pcu_idx); + + pdu_tx := ts_BSSGP_RESUME(tlli, ra_id, int2oct(suffix, 1)); + /* we cannot use pdu_tx as there are some subtle differences in the length field :/ */ + pdu_rx := tr_BSSGP_RESUME(tlli, ra_id, int2oct(suffix, 1)); + f_global_pcu2sgsn(pdu_tx, pdu_rx, pcu_idx, sgsn_idx); + + /* These messages are simple passed through so just also test sending NACK */ + pdu_tx := ts_BSSGP_RESUME_NACK(tlli, ra_id, BSSGP_CAUSE_UNKNOWN_MS); + /* we cannot use pdu_tx as there are some subtle differences in the length field :/ */ + pdu_rx := tr_BSSGP_RESUME_NACK(tlli, ra_id, BSSGP_CAUSE_UNKNOWN_MS); + f_global_sgsn2pcu(pdu_tx, pdu_rx, sgsn_idx, pcu_idx); +} + private function f_TC_resume() runs on GlobalTest_CT { var integer i; - /* TODO: Generate RA ID for each ConnHdlr */ - var RoutingAreaIdentification ra_id := g_pcu[0].cfg.bvc[0].cell_id.ra_id; for (i := 0; i < 10; i := i+1) { - var OCT4 tlli := f_gprs_tlli_random(); - var template (value) PDU_BSSGP pdu_tx := ts_BSSGP_RESUME(tlli, ra_id, int2oct(i, 1)); - /* we cannot use pdu_tx as there are some subtle differences in the length field :/ */ - var template (present) PDU_BSSGP pdu_rx := tr_BSSGP_RESUME(tlli, ra_id, int2oct(i, 1)); - - f_global_pcu2sgsn(pdu_tx, pdu_rx); - - pdu_tx := ts_BSSGP_RESUME_ACK(tlli, ra_id); - /* we cannot use pdu_tx as there are some subtle differences in the length field :/ */ - pdu_rx := tr_BSSGP_RESUME_ACK(tlli, ra_id); - - f_global_sgsn2pcu(pdu_tx, pdu_rx); - - pdu_tx := ts_BSSGP_RESUME(tlli, ra_id, int2oct(i, 1)); - /* we cannot use pdu_tx as there are some subtle differences in the length field :/ */ - pdu_rx := tr_BSSGP_RESUME(tlli, ra_id, int2oct(i, 1)); - - f_global_pcu2sgsn(pdu_tx, pdu_rx); - - /* These messages are simple passed through so just also test sending NACK */ - pdu_tx := ts_BSSGP_RESUME_NACK(tlli, ra_id, BSSGP_CAUSE_UNKNOWN_MS); - /* we cannot use pdu_tx as there are some subtle differences in the length field :/ */ - pdu_rx := tr_BSSGP_RESUME_NACK(tlli, ra_id, BSSGP_CAUSE_UNKNOWN_MS); - - f_global_sgsn2pcu(pdu_tx, pdu_rx); + f_resume_one(0, 0, 0, i); } setverdict(pass); } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22229 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ia0f9d9128754c2196ab026623f1b6a254a958d2f Gerrit-Change-Number: 22229 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 20:12:55 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 15 Jan 2021 20:12:55 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Use correct NRI in suspend/resume References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22230 ) Change subject: gbproxy: Use correct NRI in suspend/resume ...................................................................... gbproxy: Use correct NRI in suspend/resume We cannot choose a random TLLI anymore, as this will obviously end up at a random SGSN, and not the one we're targeting. Change-Id: I665eda9e04cbf505f55abc9bcd414d6cbd6a36dd --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 12 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/30/22230/1 diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index 6f5b326..a0e6d1d 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -1066,11 +1066,14 @@ f_cleanup(); } -private function f_suspend_one(integer sgsn_idx, integer pcu_idx, integer bvc_idx, integer suffix) +private function f_suspend_one(integer sgsn_idx, integer nri_idx, integer pcu_idx, integer bvc_idx, + integer suffix) runs on GlobalTest_CT { var RoutingAreaIdentification ra_id := g_pcu[pcu_idx].cfg.bvc[bvc_idx].cell_id.ra_id; - var OCT4 tlli := f_gprs_tlli_random(); + var OCT4 p_tmsi := f_gen_tmsi(suffix, nri_v := mp_sgsn_nri[sgsn_idx][nri_idx], + nri_bitlen := mp_nri_bitlength); + var OCT4 tlli := f_gprs_tlli_from_tmsi(p_tmsi, TLLI_LOCAL); var template (value) PDU_BSSGP pdu_tx := ts_BSSGP_SUSPEND(tlli, ra_id); /* we cannot use pdu_tx as there are some subtle differences in the length field :/ */ var template (present) PDU_BSSGP pdu_rx := tr_BSSGP_SUSPEND(tlli, ra_id); @@ -1098,7 +1101,7 @@ /* TODO: Generate RA ID for each ConnHdlr */ for (i := 0; i < 10; i := i+1) { - f_suspend_one(0, 0, 0, i); + f_suspend_one(sgsn_idx := 0, nri_idx := 0, pcu_idx := 0, bvc_idx := 0, suffix := i); } setverdict(pass); } @@ -1110,11 +1113,14 @@ f_cleanup(); } -private function f_resume_one(integer sgsn_idx, integer pcu_idx, integer bvc_idx, integer suffix) +private function f_resume_one(integer sgsn_idx, integer nri_idx, integer pcu_idx, integer bvc_idx, + integer suffix) runs on GlobalTest_CT { var RoutingAreaIdentification ra_id := g_pcu[pcu_idx].cfg.bvc[bvc_idx].cell_id.ra_id; - var OCT4 tlli := f_gprs_tlli_random(); + var OCT4 p_tmsi := f_gen_tmsi(suffix, nri_v := mp_sgsn_nri[sgsn_idx][nri_idx], + nri_bitlen := mp_nri_bitlength); + var OCT4 tlli := f_gprs_tlli_from_tmsi(p_tmsi, TLLI_LOCAL); var template (value) PDU_BSSGP pdu_tx := ts_BSSGP_RESUME(tlli, ra_id, int2oct(suffix, 1)); /* we cannot use pdu_tx as there are some subtle differences in the length field :/ */ var template (present) PDU_BSSGP pdu_rx := tr_BSSGP_RESUME(tlli, ra_id, int2oct(suffix, 1)); @@ -1141,7 +1147,7 @@ var integer i; for (i := 0; i < 10; i := i+1) { - f_resume_one(0, 0, 0, i); + f_resume_one(sgsn_idx := 0, nri_idx := 0, pcu_idx := 0, bvc_idx := 0, suffix := i); } setverdict(pass); } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22230 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I665eda9e04cbf505f55abc9bcd414d6cbd6a36dd Gerrit-Change-Number: 22230 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 20:12:55 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 15 Jan 2021 20:12:55 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Test suspend + resume for each NRI on each SGSN References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22231 ) Change subject: gbproxy: Test suspend + resume for each NRI on each SGSN ...................................................................... gbproxy: Test suspend + resume for each NRI on each SGSN The test now tests with 10 TLLIs of each configured NRI of each configured SGSN. Change-Id: Iccd649165acd99b3d2d1ecc8fba7015fa27f57ec --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 18 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/31/22231/1 diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index a0e6d1d..aa334ec 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -1096,20 +1096,25 @@ f_global_sgsn2pcu(pdu_tx, pdu_rx, sgsn_idx, pcu_idx); } -private function f_TC_suspend() runs on GlobalTest_CT { +private function f_TC_suspend(integer sgsn_idx, integer nri_idx, integer pcu_idx, integer bvc_idx) +runs on GlobalTest_CT { var integer i; - /* TODO: Generate RA ID for each ConnHdlr */ for (i := 0; i < 10; i := i+1) { - f_suspend_one(sgsn_idx := 0, nri_idx := 0, pcu_idx := 0, bvc_idx := 0, suffix := i); + f_suspend_one(sgsn_idx, nri_idx, pcu_idx, bvc_idx, suffix := i); } setverdict(pass); } testcase TC_suspend() runs on GlobalTest_CT { + var integer sgsn_idx, nri_idx; f_init(); f_global_init(); - f_TC_suspend(); + for (sgsn_idx := 0; sgsn_idx < NUM_SGSN; sgsn_idx := sgsn_idx+1) { + for (nri_idx := 0; nri_idx < lengthof(mp_sgsn_nri[sgsn_idx]); nri_idx := nri_idx+1) { + f_TC_suspend(sgsn_idx, nri_idx, pcu_idx:=0, bvc_idx:=0); + } + } f_cleanup(); } @@ -1143,19 +1148,25 @@ f_global_sgsn2pcu(pdu_tx, pdu_rx, sgsn_idx, pcu_idx); } -private function f_TC_resume() runs on GlobalTest_CT { +private function f_TC_resume(integer sgsn_idx, integer nri_idx, integer pcu_idx, integer bvc_idx) +runs on GlobalTest_CT { var integer i; for (i := 0; i < 10; i := i+1) { - f_resume_one(sgsn_idx := 0, nri_idx := 0, pcu_idx := 0, bvc_idx := 0, suffix := i); + f_resume_one(sgsn_idx, nri_idx, pcu_idx, bvc_idx, suffix := i); } setverdict(pass); } testcase TC_resume() runs on GlobalTest_CT { + var integer sgsn_idx, nri_idx; f_init(); f_global_init(); - f_TC_resume(); + for (sgsn_idx := 0; sgsn_idx < NUM_SGSN; sgsn_idx := sgsn_idx+1) { + for (nri_idx := 0; nri_idx < lengthof(mp_sgsn_nri[sgsn_idx]); nri_idx := nri_idx+1) { + f_TC_resume(sgsn_idx, nri_idx, pcu_idx:=0, bvc_idx:=0); + } + } f_cleanup(); } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22231 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Iccd649165acd99b3d2d1ecc8fba7015fa27f57ec Gerrit-Change-Number: 22231 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 20:45:18 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 15 Jan 2021 20:45:18 +0000 Subject: Change in osmo-bsc[master]: gsm_data: log the actual MS Power class changes, not x -> x References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22232 ) Change subject: gsm_data: log the actual MS Power class changes, not x -> x ...................................................................... gsm_data: log the actual MS Power class changes, not x -> x The following message makes no sense: DRLL DEBUG gsm_data.c:844 MS Power class update: 4 -> 4 because nothing really changed, MS Power class remains 4. Change-Id: I519d2d1575cbb5352cc381a60513db8e0e2cb0a0 --- M src/osmo-bsc/gsm_data.c 1 file changed, 5 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/32/22232/1 diff --git a/src/osmo-bsc/gsm_data.c b/src/osmo-bsc/gsm_data.c index 38392fc..e08e7da 100644 --- a/src/osmo-bsc/gsm_data.c +++ b/src/osmo-bsc/gsm_data.c @@ -841,10 +841,12 @@ void conn_update_ms_power_class(struct gsm_subscriber_connection *conn, uint8_t power_class) { struct gsm_bts *bts = conn_get_bts(conn); - LOGP(DRLL, LOGL_DEBUG, "MS Power class update: %" PRIu8 " -> %" PRIu8 "\n", - conn->ms_power_class, power_class); - conn->ms_power_class = power_class; + if (conn->ms_power_class != power_class) { + LOGP(DRLL, LOGL_DEBUG, "MS Power class update: %" PRIu8 " -> %" PRIu8 "\n", + conn->ms_power_class, power_class); + conn->ms_power_class = power_class; + } /* If there's an associated lchan, attempt to update its max power to be on track with band maximum values */ -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22232 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I519d2d1575cbb5352cc381a60513db8e0e2cb0a0 Gerrit-Change-Number: 22232 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 20:47:57 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 15 Jan 2021 20:47:57 +0000 Subject: Change in osmo-bsc[master]: gsm_data: log the actual MS Power class changes, not x -> x In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22232 ) Change subject: gsm_data: log the actual MS Power class changes, not x -> x ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/22232/1/src/osmo-bsc/gsm_data.c File src/osmo-bsc/gsm_data.c: https://gerrit.osmocom.org/c/osmo-bsc/+/22232/1/src/osmo-bsc/gsm_data.c at 845 PS1, Line 845: if (conn->ms_power_class != power_class) { A more radical approach would be to return early. Do we have to call lchan_update_ms_power_ctrl_level() even if conn->ms_power_class == power_class? -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22232 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I519d2d1575cbb5352cc381a60513db8e0e2cb0a0 Gerrit-Change-Number: 22232 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Fri, 15 Jan 2021 20:47:57 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 21:26:25 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 15 Jan 2021 21:26:25 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Move away from random TLLI In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22226 ) Change subject: gbproxy: Move away from random TLLI ...................................................................... Patch Set 1: What about using this in f_gen_tlli() from GSM_Types.ttcn? Then it's also used in pcu-tests. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22226 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ic1eaa1d298fe998ca97432769953bfc5a5333ae4 Gerrit-Change-Number: 22226 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-CC: pespin Gerrit-Comment-Date: Fri, 15 Jan 2021 21:26:25 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 21:30:21 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 15 Jan 2021 21:30:21 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Add f_gen_tmsi() to generate a TMSI similar to f_gen_{imsi, imei}() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22225 ) Change subject: Add f_gen_tmsi() to generate a TMSI similar to f_gen_{imsi,imei}() ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22225 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Iacba62bb740374c28cbcf50d54ba1814c5b4e1c2 Gerrit-Change-Number: 22225 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 15 Jan 2021 21:30:21 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 21:34:25 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 15 Jan 2021 21:34:25 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Start to allocate NRIs to SGSNs In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22227 ) Change subject: gbproxy: Start to allocate NRIs to SGSNs ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22227 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I15f78dca5ac31a1c71f086d3e92a70e900eae250 Gerrit-Change-Number: 22227 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 15 Jan 2021 21:34:25 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 21:37:45 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 15 Jan 2021 21:37:45 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproy: Configure a Second SGSN In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21698 ) Change subject: gbproy: Configure a Second SGSN ...................................................................... Patch Set 3: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21698/3/gbproxy/GBProxy_Tests.ttcn File gbproxy/GBProxy_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21698/3/gbproxy/GBProxy_Tests.ttcn at 525 PS3, Line 525: * unfortunately doesn't work as we want to access the local variable bvci_unblocked. */ cannot you pass it as an "out" variable to it? -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21698 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ib70f7c1a29f089957f882df0e9b05ee526224611 Gerrit-Change-Number: 21698 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 15 Jan 2021 21:37:45 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 21:38:04 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 15 Jan 2021 21:38:04 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Fix TC_fc_bvc() with more than one SGSN In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22228 ) Change subject: gbproxy: Fix TC_fc_bvc() with more than one SGSN ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22228 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I0ec9aa06fa9ec25b2047c1e795e28eeefd6bc7d2 Gerrit-Change-Number: 22228 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 15 Jan 2021 21:38:04 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 21:39:39 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 15 Jan 2021 21:39:39 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Refactor f_TC_{suspend, resume} In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22229 ) Change subject: gbproxy: Refactor f_TC_{suspend,resume} ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22229 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ia0f9d9128754c2196ab026623f1b6a254a958d2f Gerrit-Change-Number: 22229 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 15 Jan 2021 21:39:39 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 21:40:05 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 15 Jan 2021 21:40:05 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Test suspend + resume for each NRI on each SGSN In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22231 ) Change subject: gbproxy: Test suspend + resume for each NRI on each SGSN ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22231 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Iccd649165acd99b3d2d1ecc8fba7015fa27f57ec Gerrit-Change-Number: 22231 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 15 Jan 2021 21:40:05 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 21:40:38 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 15 Jan 2021 21:40:38 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Use correct NRI in suspend/resume In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22230 ) Change subject: gbproxy: Use correct NRI in suspend/resume ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22230 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I665eda9e04cbf505f55abc9bcd414d6cbd6a36dd Gerrit-Change-Number: 22230 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 15 Jan 2021 21:40:38 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 21:44:03 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 15 Jan 2021 21:44:03 +0000 Subject: Change in osmo-bsc[master]: gsm_data: log the actual MS Power class changes, not x -> x In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22232 ) Change subject: gsm_data: log the actual MS Power class changes, not x -> x ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/22232/1/src/osmo-bsc/gsm_data.c File src/osmo-bsc/gsm_data.c: https://gerrit.osmocom.org/c/osmo-bsc/+/22232/1/src/osmo-bsc/gsm_data.c at 845 PS1, Line 845: if (conn->ms_power_class != power_class) { > A more radical approach would be to return early. [?] AFAICT returning early should be fine. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22232 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I519d2d1575cbb5352cc381a60513db8e0e2cb0a0 Gerrit-Change-Number: 22232 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 15 Jan 2021 21:44:03 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: fixeria Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 15 21:57:48 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 15 Jan 2021 21:57:48 +0000 Subject: Change in osmo-bsc[master]: gsm_data: return early if MS Power class remains the same In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bsc/+/22232 to look at the new patch set (#2). Change subject: gsm_data: return early if MS Power class remains the same ...................................................................... gsm_data: return early if MS Power class remains the same The following message makes no sense: DRLL DEBUG gsm_data.c:844 MS Power class update: 4 -> 4 because nothing really changed, MS Power class remains 4. Neither it makes sense to call lchan_update_ms_power_ctrl_level(). Change-Id: I519d2d1575cbb5352cc381a60513db8e0e2cb0a0 --- M src/osmo-bsc/gsm_data.c 1 file changed, 5 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/32/22232/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22232 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I519d2d1575cbb5352cc381a60513db8e0e2cb0a0 Gerrit-Change-Number: 22232 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Sat Jan 16 03:38:09 2021 From: admin at opensuse.org (OBS Notification) Date: Sat, 16 Jan 2021 03:38:09 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.10/x86_64 In-Reply-To: References: Message-ID: <60025fb292e78_6532aec7c1d8600999434@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/xUbuntu_20.10/x86_64 Package network:osmocom:nightly/simtrace2 failed to build in xUbuntu_20.10/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 193s] [COMPILING apps/dfu/main.c] [ 193s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 194s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 194s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 194s] Memory region Used Size Region Size %age Used [ 194s] rom: 16580 B 16 KB 101.20% [ 194s] ram: 11672 B 48 KB 23.75/usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 194s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 194s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 194s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 194s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 194s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 194s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 196 bytes [ 194s] collect2: error: ld returned 1 exit status [ 194s] % [ 194s] make[2]: *** [Makefile:234: flash] Error 1 [ 194s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 194s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 194s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 194s] dh_auto_build: error: make -j1 returned exit code 2 [ 194s] make: *** [debian/rules:16: build] Error 25 [ 194s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 194s] ### VM INTERACTION START ### [ 197s] [ 184.075795] sysrq: Power Off [ 197s] [ 184.081017] reboot: Power down [ 197s] ### VM INTERACTION END ### [ 197s] [ 197s] lamb07 failed "build simtrace2_0.7.0.69.aadd.dsc" at Sat Jan 16 03:38:03 UTC 2021. [ 197s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Jan 16 03:47:17 2021 From: admin at opensuse.org (OBS Notification) Date: Sat, 16 Jan 2021 03:47:17 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <600261cfd72d5_6532aec7c1d860010013a9@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/xUbuntu_20.04/x86_64 Package network:osmocom:nightly/simtrace2 failed to build in xUbuntu_20.04/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 336s] [COMPILING libboard/qmod/source/wwan_perst.c] [ 337s] [COMPILING libboard/qmod/source/card_pres.c] [ 337s] [COMPILING libboard/qmod/source/wwan_led.c] [ 337s] [COMPILING libboard/qmod/source/i2c.c] [ 337s] [COMPILING libboard/qmod/source/board_qmod.c] [ 338s] [COMPILING apps/dfu/main.c] [ 338s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 338s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 339s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 339s] Memory region Used Size Region Size %age Used [ 339s] rom: 16588 B 16 KB 101.25% [ 339s] ram: 11672 B 48 KB 23.75/usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 339s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 204 bytes [ 339s] collect2: error: ld returned 1 exit status [ 339s] % [ 339s] make[2]: *** [Makefile:234: flash] Error 1 [ 339s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 339s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 339s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 339s] dh_auto_build: error: make -j1 returned exit code 2 [ 339s] make: *** [debian/rules:16: build] Error 25 [ 339s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 339s] ### VM INTERACTION START ### [ 342s] [ 310.333347] sysrq: Power Off [ 342s] [ 310.361541] reboot: Power down [ 342s] ### VM INTERACTION END ### [ 342s] [ 342s] lamb12 failed "build simtrace2_0.7.0.69.aadd.dsc" at Sat Jan 16 03:47:14 UTC 2021. [ 342s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Sat Jan 16 07:32:00 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Sat, 16 Jan 2021 07:32:00 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproy: Configure a Second SGSN In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21698 ) Change subject: gbproy: Configure a Second SGSN ...................................................................... Patch Set 3: Code-Review+1 (2 comments) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21698/3/gbproxy/osmo-gbproxy.cfg File gbproxy/osmo-gbproxy.cfg: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21698/3/gbproxy/osmo-gbproxy.cfg at 10 PS3, Line 10: sgsn nsei 102 You could also give both a name here, otherwise I'll add a commit later. sgsn nsei 101 name first https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21698/1/gbproxy/osmo-gbproxy.fr.cfg File gbproxy/osmo-gbproxy.fr.cfg: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21698/1/gbproxy/osmo-gbproxy.fr.cfg at 53 PS1, Line 53: sgsn nsei 102 This will need to change when https://gerrit.osmocom.org/c/osmo-sgsn/+/21705 gets merged -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21698 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ib70f7c1a29f089957f882df0e9b05ee526224611 Gerrit-Change-Number: 21698 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 16 Jan 2021 07:32:00 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 07:33:51 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Sat, 16 Jan 2021 07:33:51 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Add f_gen_tmsi() to generate a TMSI similar to f_gen_{imsi, imei}() In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22225 ) Change subject: Add f_gen_tmsi() to generate a TMSI similar to f_gen_{imsi,imei}() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22225 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Iacba62bb740374c28cbcf50d54ba1814c5b4e1c2 Gerrit-Change-Number: 22225 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 16 Jan 2021 07:33:51 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 07:37:29 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Sat, 16 Jan 2021 07:37:29 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Fix TC_fc_bvc() with more than one SGSN In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22228 ) Change subject: gbproxy: Fix TC_fc_bvc() with more than one SGSN ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22228 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I0ec9aa06fa9ec25b2047c1e795e28eeefd6bc7d2 Gerrit-Change-Number: 22228 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 16 Jan 2021 07:37:29 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 07:39:23 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Sat, 16 Jan 2021 07:39:23 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Start to allocate NRIs to SGSNs In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22227 ) Change subject: gbproxy: Start to allocate NRIs to SGSNs ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22227 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I15f78dca5ac31a1c71f086d3e92a70e900eae250 Gerrit-Change-Number: 22227 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 16 Jan 2021 07:39:23 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 07:43:36 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Sat, 16 Jan 2021 07:43:36 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Refactor f_TC_{suspend, resume} In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22229 ) Change subject: gbproxy: Refactor f_TC_{suspend,resume} ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22229 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ia0f9d9128754c2196ab026623f1b6a254a958d2f Gerrit-Change-Number: 22229 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 16 Jan 2021 07:43:36 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 07:44:51 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Sat, 16 Jan 2021 07:44:51 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Use correct NRI in suspend/resume In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22230 ) Change subject: gbproxy: Use correct NRI in suspend/resume ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22230 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I665eda9e04cbf505f55abc9bcd414d6cbd6a36dd Gerrit-Change-Number: 22230 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 16 Jan 2021 07:44:51 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 07:45:37 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Sat, 16 Jan 2021 07:45:37 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Test suspend + resume for each NRI on each SGSN In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22231 ) Change subject: gbproxy: Test suspend + resume for each NRI on each SGSN ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22231 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Iccd649165acd99b3d2d1ecc8fba7015fa27f57ec Gerrit-Change-Number: 22231 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 16 Jan 2021 07:45:37 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 08:03:15 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Sat, 16 Jan 2021 08:03:15 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Move away from random TLLI In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22226 ) Change subject: gbproxy: Move away from random TLLI ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22226 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ic1eaa1d298fe998ca97432769953bfc5a5333ae4 Gerrit-Change-Number: 22226 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-CC: pespin Gerrit-Comment-Date: Sat, 16 Jan 2021 08:03:15 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 10:08:17 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 16 Jan 2021 10:08:17 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Execute each ConnHdlr test on each NRI of each SGSN configured References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22233 ) Change subject: gbproxy: Execute each ConnHdlr test on each NRI of each SGSN configured ...................................................................... gbproxy: Execute each ConnHdlr test on each NRI of each SGSN configured This helps us to get proper test coverage for SGSN pool situations. Change-Id: Ie22d3fd786ff8fefe919ecc3a96f974675057e29 Related: OS#4951 --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 66 insertions(+), 179 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/33/22233/1 diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index aa334ec..f56a4b0 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -353,6 +353,8 @@ RoutingAreaIdentificationV ra optional, GbInstances pcu, GbInstances sgsn, + /* The SGSN index to be used within the test */ + integer sgsn_idx, float t_guard }; @@ -600,9 +602,10 @@ /* helper function to create, connect and start a BSSGP_ConnHdlr component */ function f_start_handler(void_fn fn, charstring id, GbInstances pcu, GbInstances sgsn, integer imsi_suffix, - float t_guard := 30.0, integer nri := mp_sgsn_nri[0][0]) + float t_guard := 30.0, integer sgsn_idx := 0, integer nri_idx := 0) runs on test_CT return BSSGP_ConnHdlr { var BSSGP_ConnHdlr vc_conn; + var integer nri := mp_sgsn_nri[sgsn_idx][nri_idx]; var OCT4 p_tmsi := f_gen_tmsi(imsi_suffix, nri_v := nri, nri_bitlen := mp_nri_bitlength); var BSSGP_ConnHdlrPars pars := { @@ -616,6 +619,7 @@ ra := omit, pcu := pcu, sgsn := sgsn, + sgsn_idx := sgsn_idx, t_guard := t_guard }; @@ -625,6 +629,23 @@ return vc_conn; } +function f_start_handlers(void_fn fn, charstring id, GbInstances pcu, GbInstances sgsn, + integer imsi_suffix, float t_guard := 30.0) +runs on test_CT +{ + var integer sgsn_idx, nri_idx; + for (sgsn_idx := 0; sgsn_idx < NUM_SGSN; sgsn_idx:=sgsn_idx+1) { + for (nri_idx := 0; nri_idx < lengthof(mp_sgsn_nri[sgsn_idx]); nri_idx:=nri_idx+1) { + var integer extd_imsi_suffix := 1000*sgsn_idx + 100*nri_idx; + var BSSGP_ConnHdlr vc_conn; + vc_conn := f_start_handler(fn, id, pcu, sgsn, extd_imsi_suffix, t_guard, + sgsn_idx, nri_idx); + /* Idea: we could also run them in parallel ? */ + vc_conn.done; + } + } +} + /* Connect the PCU-side per-BVC ports (PCU/PCU_SIG/PCU_PROC) array slot 'port_idx' to specified per-BVC component */ private function f_connect_to_pcu_bvc(integer port_idx, integer nse_idx, integer bvc_idx) runs on BSSGP_ConnHdlr { @@ -711,7 +732,8 @@ /* Send 'tx' on PTP-BVCI from PCU; expect 'rx' on SGSN */ friend function f_pcu2sgsn(template (value) PDU_BSSGP tx, template (present) PDU_BSSGP exp_rx, - integer pcu_idx := 0, integer sgsn_idx := 0, boolean use_sig := false) runs on BSSGP_ConnHdlr { + integer pcu_idx := 0, boolean use_sig := false) runs on BSSGP_ConnHdlr { + var integer sgsn_idx := g_pars.sgsn_idx; var PDU_BSSGP rx; timer T := 1.0; @@ -730,15 +752,15 @@ setverdict(pass); } [] SGSN_PTP[sgsn_idx].receive(PDU_BSSGP:?) -> value rx { - setverdict(fail, "Unexpected BSSGP on SGSN side: ", rx); + setverdict(fail, "Unexpected BSSGP on SGSN[", sgsn_idx, "] side: ", rx); mtc.stop; } [] SGSN_SIG[sgsn_idx].receive(PDU_BSSGP:?) -> value rx { - setverdict(fail, "Unexpected SIG BSSGP on SGSN side: ", rx); + setverdict(fail, "Unexpected SIG BSSGP on SGSN[", sgsn_idx, "] side: ", rx); mtc.stop; } [] T.timeout { - setverdict(fail, "Timeout waiting for BSSGP on SGSN side: ", exp_rx); + setverdict(fail, "Timeout waiting for BSSGP on SGSN[", sgsn_idx, "] side: ", exp_rx); mtc.stop; } } @@ -746,7 +768,8 @@ /* Send 'tx' on PTP-BVCI from SGSN; expect 'rx' on PCU */ friend function f_sgsn2pcu(template (value) PDU_BSSGP tx, template (present) PDU_BSSGP exp_rx, - integer sgsn_idx:= 0, integer pcu_idx := 0, boolean use_sig := false) runs on BSSGP_ConnHdlr { + integer pcu_idx := 0, boolean use_sig := false) runs on BSSGP_ConnHdlr { + var integer sgsn_idx := g_pars.sgsn_idx; var PDU_BSSGP rx; timer T := 1.0; @@ -877,11 +900,9 @@ } testcase TC_BVC_bringup() runs on test_CT { - var BSSGP_ConnHdlr vc_conn; f_init(); - vc_conn := f_start_handler(refers(f_TC_BVC_bringup), testcasename(), g_pcu, g_sgsn, 51); - vc_conn.done; + f_start_handlers(refers(f_TC_BVC_bringup), testcasename(), g_pcu, g_sgsn, 51); f_cleanup(); } @@ -947,11 +968,9 @@ testcase TC_ul_unitdata() runs on test_CT { - var BSSGP_ConnHdlr vc_conn; f_init(); - vc_conn := f_start_handler(refers(f_TC_ul_unitdata), testcasename(), g_pcu, g_sgsn, 1); - vc_conn.done; + f_start_handlers(refers(f_TC_ul_unitdata), testcasename(), g_pcu, g_sgsn, 1); /* TODO: start multiple handlers (UEs) on various cells on same and other NSEs */ f_cleanup(); @@ -977,11 +996,9 @@ testcase TC_dl_unitdata() runs on test_CT { - var BSSGP_ConnHdlr vc_conn; f_init(); - vc_conn := f_start_handler(refers(f_TC_dl_unitdata), testcasename(), g_pcu, g_sgsn, 2); - vc_conn.done; + f_start_handlers(refers(f_TC_dl_unitdata), testcasename(), g_pcu, g_sgsn, 2); /* TODO: start multiple handlers (UEs) on various cells on same and other NSEs */ f_cleanup(); @@ -1001,11 +1018,9 @@ } testcase TC_ra_capability() runs on test_CT { - var BSSGP_ConnHdlr vc_conn; f_init(); - vc_conn := f_start_handler(refers(f_TC_ra_capability), testcasename(), g_pcu, g_sgsn, 3); - vc_conn.done; + f_start_handlers(refers(f_TC_ra_capability), testcasename(), g_pcu, g_sgsn, 3); /* TODO: start multiple handlers (UEs) on various cells on same and other NSEs */ f_cleanup(); @@ -1032,11 +1047,9 @@ } testcase TC_ra_capability_upd() runs on test_CT { - var BSSGP_ConnHdlr vc_conn; f_init(); - vc_conn := f_start_handler(refers(f_TC_ra_capability_upd), testcasename(), g_pcu, g_sgsn, 4); - vc_conn.done; + f_start_handlers(refers(f_TC_ra_capability_upd), testcasename(), g_pcu, g_sgsn, 4); /* TODO: start multiple handlers (UEs) on various cells on same and other NSEs */ f_cleanup(); @@ -1056,11 +1069,9 @@ } testcase TC_radio_status() runs on test_CT { - var BSSGP_ConnHdlr vc_conn; f_init(); - vc_conn := f_start_handler(refers(f_TC_radio_status), testcasename(), g_pcu, g_sgsn, 5); - vc_conn.done; + f_start_handlers(refers(f_TC_radio_status), testcasename(), g_pcu, g_sgsn, 5); /* TODO: start multiple handlers (UEs) on various cells on same and other NSEs */ f_cleanup(); @@ -1357,12 +1368,8 @@ f_send_paging_ps_exp_one_bss(ts_BssgpP4BssArea, 0, false, 0); } testcase TC_paging_ps_ptp_bss() runs on test_CT { - var BSSGP_ConnHdlr vc_conn; f_init(); - - vc_conn := f_start_handler(refers(f_TC_paging_ps_ptp_bss), testcasename(), g_pcu, g_sgsn, 9); - vc_conn.done; - + f_start_handlers(refers(f_TC_paging_ps_ptp_bss), testcasename(), g_pcu, g_sgsn, 9); f_cleanup(); } @@ -1375,12 +1382,8 @@ f_send_paging_ps_exp_one_bss(ts_BssgpP4LAC(pcu_bvc_cfg[0].cell_id.ra_id.lai), 0, false, 0); } testcase TC_paging_ps_ptp_lac() runs on test_CT { - var BSSGP_ConnHdlr vc_conn; f_init(); - - vc_conn := f_start_handler(refers(f_TC_paging_ps_ptp_lac), testcasename(), g_pcu, g_sgsn, 10); - vc_conn.done; - + f_start_handlers(refers(f_TC_paging_ps_ptp_lac), testcasename(), g_pcu, g_sgsn, 10); f_cleanup(); } @@ -1395,12 +1398,8 @@ f_send_paging_ps_exp_one_bss(ts_BssgpP4LAC(unknown_la), 0, false, 0); } testcase TC_paging_ps_ptp_lac_unknown() runs on test_CT { - var BSSGP_ConnHdlr vc_conn; f_init(); - - vc_conn := f_start_handler(refers(f_TC_paging_ps_ptp_lac_unknown), testcasename(), g_pcu, g_sgsn, 11); - vc_conn.done; - + f_start_handlers(refers(f_TC_paging_ps_ptp_lac_unknown), testcasename(), g_pcu, g_sgsn, 11); f_cleanup(); } @@ -1412,12 +1411,8 @@ f_send_paging_ps_exp_one_bss(ts_BssgpP4RAC(pcu_bvc_cfg[0].cell_id.ra_id), 0, false, 0); } testcase TC_paging_ps_ptp_rac() runs on test_CT { - var BSSGP_ConnHdlr vc_conn; f_init(); - - vc_conn := f_start_handler(refers(f_TC_paging_ps_ptp_rac), testcasename(), g_pcu, g_sgsn, 11); - vc_conn.done; - + f_start_handlers(refers(f_TC_paging_ps_ptp_rac), testcasename(), g_pcu, g_sgsn, 11); f_cleanup(); } @@ -1435,12 +1430,8 @@ f_send_paging_ps_exp_one_bss(ts_BssgpP4RAC(unknown_ra), 0, false, 0); } testcase TC_paging_ps_ptp_rac_unknown() runs on test_CT { - var BSSGP_ConnHdlr vc_conn; f_init(); - - vc_conn := f_start_handler(refers(f_TC_paging_ps_ptp_rac_unknown), testcasename(), g_pcu, g_sgsn, 11); - vc_conn.done; - + f_start_handlers(refers(f_TC_paging_ps_ptp_rac_unknown), testcasename(), g_pcu, g_sgsn, 11); f_cleanup(); } @@ -1451,12 +1442,8 @@ f_send_paging_ps_exp_one_bss(ts_BssgpP4Bvci(pcu_bvc_cfg[0].bvci), 0, false, 0); } testcase TC_paging_ps_ptp_bvci() runs on test_CT { - var BSSGP_ConnHdlr vc_conn; f_init(); - - vc_conn := f_start_handler(refers(f_TC_paging_ps_ptp_bvci), testcasename(), g_pcu, g_sgsn, 12); - vc_conn.done; - + f_start_handlers(refers(f_TC_paging_ps_ptp_bvci), testcasename(), g_pcu, g_sgsn, 12); f_cleanup(); } @@ -1467,12 +1454,8 @@ f_send_paging_ps_exp_one_bss(ts_BssgpP4Bvci(33333), 0, false, 0); } testcase TC_paging_ps_ptp_bvci_unknown() runs on test_CT { - var BSSGP_ConnHdlr vc_conn; f_init(); - - vc_conn := f_start_handler(refers(f_TC_paging_ps_ptp_bvci_unknown), testcasename(), g_pcu, g_sgsn, 11); - vc_conn.done; - + f_start_handlers(refers(f_TC_paging_ps_ptp_bvci_unknown), testcasename(), g_pcu, g_sgsn, 11); f_cleanup(); } @@ -1538,12 +1521,8 @@ f_send_paging_ps_exp_multi(ts_BssgpP4BssArea, 0, {0, 1, 2}); } testcase TC_paging_ps_sig_bss() runs on test_CT { - var BSSGP_ConnHdlr vc_conn; f_init(); - - vc_conn := f_start_handler(refers(f_TC_paging_ps_sig_bss), testcasename(), g_pcu, g_sgsn, 13); - vc_conn.done; - + f_start_handlers(refers(f_TC_paging_ps_sig_bss), testcasename(), g_pcu, g_sgsn, 13); f_cleanup(); } @@ -1559,12 +1538,8 @@ f_send_paging_ps_exp_multi(ts_BssgpP4LAC(pcu_bvc_cfg[2].cell_id.ra_id.lai), 0, {2}); } testcase TC_paging_ps_sig_lac() runs on test_CT { - var BSSGP_ConnHdlr vc_conn; f_init(); - - vc_conn := f_start_handler(refers(f_TC_paging_ps_sig_lac), testcasename(), g_pcu, g_sgsn, 14); - vc_conn.done; - + f_start_handlers(refers(f_TC_paging_ps_sig_lac), testcasename(), g_pcu, g_sgsn, 14); f_cleanup(); } @@ -1578,12 +1553,8 @@ f_send_paging_ps_exp_no_bss(ts_BssgpP4LAC(unknown_la), 0, true); } testcase TC_paging_ps_sig_lac_unknown() runs on test_CT { - var BSSGP_ConnHdlr vc_conn; f_init(); - - vc_conn := f_start_handler(refers(f_TC_paging_ps_sig_lac_unknown), testcasename(), g_pcu, g_sgsn, 11); - vc_conn.done; - + f_start_handlers(refers(f_TC_paging_ps_sig_lac_unknown), testcasename(), g_pcu, g_sgsn, 11); f_cleanup(); } @@ -1601,12 +1572,8 @@ f_send_paging_ps_exp_multi(ts_BssgpP4RAC(pcu_bvc_cfg[2].cell_id.ra_id), 0, {2}); } testcase TC_paging_ps_sig_rac() runs on test_CT { - var BSSGP_ConnHdlr vc_conn; f_init(); - - vc_conn := f_start_handler(refers(f_TC_paging_ps_sig_rac), testcasename(), g_pcu, g_sgsn, 15); - vc_conn.done; - + f_start_handlers(refers(f_TC_paging_ps_sig_rac), testcasename(), g_pcu, g_sgsn, 15); f_cleanup(); } @@ -1623,12 +1590,8 @@ f_send_paging_ps_exp_no_bss(ts_BssgpP4RAC(unknown_ra), 0, true); } testcase TC_paging_ps_sig_rac_unknown() runs on test_CT { - var BSSGP_ConnHdlr vc_conn; f_init(); - - vc_conn := f_start_handler(refers(f_TC_paging_ps_sig_rac_unknown), testcasename(), g_pcu, g_sgsn, 11); - vc_conn.done; - + f_start_handlers(refers(f_TC_paging_ps_sig_rac_unknown), testcasename(), g_pcu, g_sgsn, 11); f_cleanup(); } @@ -1638,12 +1601,8 @@ f_send_paging_ps_exp_multi(ts_BssgpP4Bvci(pcu_bvc_cfg[0].bvci), 0, {0}); } testcase TC_paging_ps_sig_bvci() runs on test_CT { - var BSSGP_ConnHdlr vc_conn; f_init(); - - vc_conn := f_start_handler(refers(f_TC_paging_ps_sig_bvci), testcasename(), g_pcu, g_sgsn, 16); - vc_conn.done; - + f_start_handlers(refers(f_TC_paging_ps_sig_bvci), testcasename(), g_pcu, g_sgsn, 16); f_cleanup(); } @@ -1653,12 +1612,8 @@ f_send_paging_ps_exp_no_bss(ts_BssgpP4Bvci(33333), 0, true); } testcase TC_paging_ps_sig_bvci_unknown() runs on test_CT { - var BSSGP_ConnHdlr vc_conn; f_init(); - - vc_conn := f_start_handler(refers(f_TC_paging_ps_sig_bvci_unknown), testcasename(), g_pcu, g_sgsn, 11); - vc_conn.done; - + f_start_handlers(refers(f_TC_paging_ps_sig_bvci_unknown), testcasename(), g_pcu, g_sgsn, 11); f_cleanup(); } @@ -1778,12 +1733,8 @@ f_send_paging_cs_exp_one_bss(ts_BssgpP4BssArea, 0, false, 0); } testcase TC_paging_cs_ptp_bss() runs on test_CT { - var BSSGP_ConnHdlr vc_conn; f_init(); - - vc_conn := f_start_handler(refers(f_TC_paging_cs_ptp_bss), testcasename(), g_pcu, g_sgsn, 17); - vc_conn.done; - + f_start_handlers(refers(f_TC_paging_cs_ptp_bss), testcasename(), g_pcu, g_sgsn, 17); f_cleanup(); } @@ -1796,12 +1747,8 @@ f_send_paging_cs_exp_one_bss(ts_BssgpP4LAC(pcu_bvc_cfg[0].cell_id.ra_id.lai), 0, false, 0); } testcase TC_paging_cs_ptp_lac() runs on test_CT { - var BSSGP_ConnHdlr vc_conn; f_init(); - - vc_conn := f_start_handler(refers(f_TC_paging_cs_ptp_lac), testcasename(), g_pcu, g_sgsn, 18); - vc_conn.done; - + f_start_handlers(refers(f_TC_paging_cs_ptp_lac), testcasename(), g_pcu, g_sgsn, 18); f_cleanup(); } @@ -1816,12 +1763,8 @@ f_send_paging_cs_exp_one_bss(ts_BssgpP4LAC(unknown_la), 0, false, 0); } testcase TC_paging_cs_ptp_lac_unknown() runs on test_CT { - var BSSGP_ConnHdlr vc_conn; f_init(); - - vc_conn := f_start_handler(refers(f_TC_paging_cs_ptp_lac_unknown), testcasename(), g_pcu, g_sgsn, 11); - vc_conn.done; - + f_start_handlers(refers(f_TC_paging_cs_ptp_lac_unknown), testcasename(), g_pcu, g_sgsn, 11); f_cleanup(); } @@ -1833,12 +1776,8 @@ f_send_paging_cs_exp_one_bss(ts_BssgpP4RAC(pcu_bvc_cfg[0].cell_id.ra_id), 0, false, 0); } testcase TC_paging_cs_ptp_rac() runs on test_CT { - var BSSGP_ConnHdlr vc_conn; f_init(); - - vc_conn := f_start_handler(refers(f_TC_paging_cs_ptp_rac), testcasename(), g_pcu, g_sgsn, 19); - vc_conn.done; - + f_start_handlers(refers(f_TC_paging_cs_ptp_rac), testcasename(), g_pcu, g_sgsn, 19); f_cleanup(); } @@ -1856,12 +1795,8 @@ f_send_paging_cs_exp_one_bss(ts_BssgpP4RAC(unknown_ra), 0, false, 0); } testcase TC_paging_cs_ptp_rac_unknown() runs on test_CT { - var BSSGP_ConnHdlr vc_conn; f_init(); - - vc_conn := f_start_handler(refers(f_TC_paging_cs_ptp_rac_unknown), testcasename(), g_pcu, g_sgsn, 11); - vc_conn.done; - + f_start_handlers(refers(f_TC_paging_cs_ptp_rac_unknown), testcasename(), g_pcu, g_sgsn, 11); f_cleanup(); } @@ -1872,12 +1807,8 @@ f_send_paging_cs_exp_one_bss(ts_BssgpP4Bvci(pcu_bvc_cfg[0].bvci), 0, false, 0); } testcase TC_paging_cs_ptp_bvci() runs on test_CT { - var BSSGP_ConnHdlr vc_conn; f_init(); - - vc_conn := f_start_handler(refers(f_TC_paging_cs_ptp_bvci), testcasename(), g_pcu, g_sgsn, 20); - vc_conn.done; - + f_start_handlers(refers(f_TC_paging_cs_ptp_bvci), testcasename(), g_pcu, g_sgsn, 20); f_cleanup(); } @@ -1888,12 +1819,8 @@ f_send_paging_cs_exp_one_bss(ts_BssgpP4Bvci(33333), 0, false, 0); } testcase TC_paging_cs_ptp_bvci_unknown() runs on test_CT { - var BSSGP_ConnHdlr vc_conn; f_init(); - - vc_conn := f_start_handler(refers(f_TC_paging_cs_ptp_bvci_unknown), testcasename(), g_pcu, g_sgsn, 11); - vc_conn.done; - + f_start_handlers(refers(f_TC_paging_cs_ptp_bvci_unknown), testcasename(), g_pcu, g_sgsn, 11); f_cleanup(); } @@ -1936,12 +1863,8 @@ f_send_paging_cs_exp_multi(ts_BssgpP4BssArea, 0, {0, 1, 2}); } testcase TC_paging_cs_sig_bss() runs on test_CT { - var BSSGP_ConnHdlr vc_conn; f_init(); - - vc_conn := f_start_handler(refers(f_TC_paging_cs_sig_bss), testcasename(), g_pcu, g_sgsn, 13); - vc_conn.done; - + f_start_handlers(refers(f_TC_paging_cs_sig_bss), testcasename(), g_pcu, g_sgsn, 13); f_cleanup(); } @@ -1957,12 +1880,8 @@ f_send_paging_cs_exp_multi(ts_BssgpP4LAC(pcu_bvc_cfg[2].cell_id.ra_id.lai), 0, {2}); } testcase TC_paging_cs_sig_lac() runs on test_CT { - var BSSGP_ConnHdlr vc_conn; f_init(); - - vc_conn := f_start_handler(refers(f_TC_paging_cs_sig_lac), testcasename(), g_pcu, g_sgsn, 14); - vc_conn.done; - + f_start_handlers(refers(f_TC_paging_cs_sig_lac), testcasename(), g_pcu, g_sgsn, 14); f_cleanup(); } @@ -1976,12 +1895,8 @@ f_send_paging_cs_exp_no_bss(ts_BssgpP4LAC(unknown_la), 0, true); } testcase TC_paging_cs_sig_lac_unknown() runs on test_CT { - var BSSGP_ConnHdlr vc_conn; f_init(); - - vc_conn := f_start_handler(refers(f_TC_paging_cs_sig_lac_unknown), testcasename(), g_pcu, g_sgsn, 11); - vc_conn.done; - + f_start_handlers(refers(f_TC_paging_cs_sig_lac_unknown), testcasename(), g_pcu, g_sgsn, 11); f_cleanup(); } @@ -1999,12 +1914,8 @@ f_send_paging_cs_exp_multi(ts_BssgpP4RAC(pcu_bvc_cfg[2].cell_id.ra_id), 0, {2}); } testcase TC_paging_cs_sig_rac() runs on test_CT { - var BSSGP_ConnHdlr vc_conn; f_init(); - - vc_conn := f_start_handler(refers(f_TC_paging_cs_sig_rac), testcasename(), g_pcu, g_sgsn, 15); - vc_conn.done; - + f_start_handlers(refers(f_TC_paging_cs_sig_rac), testcasename(), g_pcu, g_sgsn, 15); f_cleanup(); } @@ -2021,12 +1932,8 @@ f_send_paging_cs_exp_no_bss(ts_BssgpP4RAC(unknown_ra), 0, true); } testcase TC_paging_cs_sig_rac_unknown() runs on test_CT { - var BSSGP_ConnHdlr vc_conn; f_init(); - - vc_conn := f_start_handler(refers(f_TC_paging_cs_sig_rac_unknown), testcasename(), g_pcu, g_sgsn, 11); - vc_conn.done; - + f_start_handlers(refers(f_TC_paging_cs_sig_rac_unknown), testcasename(), g_pcu, g_sgsn, 11); f_cleanup(); } @@ -2036,12 +1943,8 @@ f_send_paging_cs_exp_multi(ts_BssgpP4Bvci(pcu_bvc_cfg[0].bvci), 0, {0}); } testcase TC_paging_cs_sig_bvci() runs on test_CT { - var BSSGP_ConnHdlr vc_conn; f_init(); - - vc_conn := f_start_handler(refers(f_TC_paging_cs_sig_bvci), testcasename(), g_pcu, g_sgsn, 16); - vc_conn.done; - + f_start_handlers(refers(f_TC_paging_cs_sig_bvci), testcasename(), g_pcu, g_sgsn, 16); f_cleanup(); } @@ -2051,12 +1954,8 @@ f_send_paging_cs_exp_no_bss(ts_BssgpP4Bvci(33333), 0, true); } testcase TC_paging_cs_sig_bvci_unknown() runs on test_CT { - var BSSGP_ConnHdlr vc_conn; f_init(); - - vc_conn := f_start_handler(refers(f_TC_paging_cs_sig_bvci_unknown), testcasename(), g_pcu, g_sgsn, 11); - vc_conn.done; - + f_start_handlers(refers(f_TC_paging_cs_sig_bvci_unknown), testcasename(), g_pcu, g_sgsn, 11); f_cleanup(); } @@ -2084,13 +1983,9 @@ } testcase TC_flush_ll() runs on test_CT { - var BSSGP_ConnHdlr vc_conn; f_init(); - - vc_conn := f_start_handler(refers(f_TC_flush_ll), testcasename(), g_pcu, g_sgsn, 6); - vc_conn.done; + f_start_handlers(refers(f_TC_flush_ll), testcasename(), g_pcu, g_sgsn, 6); /* TODO: start multiple handlers (UEs) on various cells on same and other NSEs */ - f_cleanup(); } @@ -2156,13 +2051,9 @@ /* Send a LLC-DISCARDED from BSS side and expect it to show up on SGSN (SIG BVC) */ testcase TC_llc_discarded() runs on test_CT { - var BSSGP_ConnHdlr vc_conn; f_init(); - - vc_conn := f_start_handler(refers(f_TC_llc_discarded), testcasename(), g_pcu, g_sgsn, 6); - vc_conn.done; + f_start_handlers(refers(f_TC_llc_discarded), testcasename(), g_pcu, g_sgsn, 6); /* TODO: start multiple handlers (UEs) on various cells on same and other NSEs */ - f_cleanup(); } @@ -2522,13 +2413,9 @@ /* Send a FLOW-CONTROL-MS from BSS side and expect it to show up on SGSN (PTP BVC) */ testcase TC_fc_ms() runs on test_CT { - var BSSGP_ConnHdlr vc_conn; f_init(); - - vc_conn := f_start_handler(refers(f_TC_fc_ms), testcasename(), g_pcu, g_sgsn, 21); - vc_conn.done; + f_start_handlers(refers(f_TC_fc_ms), testcasename(), g_pcu, g_sgsn, 21); /* TODO: start multiple handlers (UEs) on various cells on same and other NSEs */ - f_cleanup(); } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22233 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ie22d3fd786ff8fefe919ecc3a96f974675057e29 Gerrit-Change-Number: 22233 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 10:10:22 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 16 Jan 2021 10:10:22 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Execute each ConnHdlr test on each NRI of each SGSN configured In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22233 to look at the new patch set (#2). Change subject: gbproxy: Execute each ConnHdlr test on each NRI of each SGSN configured ...................................................................... gbproxy: Execute each ConnHdlr test on each NRI of each SGSN configured This helps us to get proper test coverage for SGSN pool situations. Change-Id: Ie22d3fd786ff8fefe919ecc3a96f974675057e29 Related: OS#4951 --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 66 insertions(+), 191 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/33/22233/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22233 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ie22d3fd786ff8fefe919ecc3a96f974675057e29 Gerrit-Change-Number: 22233 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 14:04:16 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Sat, 16 Jan 2021 14:04:16 +0000 Subject: Change in libosmocore[master]: ns2: Add sanity checks References: Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22234 ) Change subject: ns2: Add sanity checks ...................................................................... ns2: Add sanity checks Prevent memory corruption or segfaults by asserting that NSE and bind link layer match. A mismatch should never happen and might cause the bind to access invalid memory when sending because nsvc->priv doesn't match what it expects. Change-Id: I7ca4cd1c5dac8b5e44ffc4825b9373b2d04911ab Related: OS#4948 --- M src/gb/gprs_ns2.c M src/gb/gprs_ns2_message.c 2 files changed, 15 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/34/22234/1 diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c index e43b636..3ca87a4 100644 --- a/src/gb/gprs_ns2.c +++ b/src/gb/gprs_ns2.c @@ -490,6 +490,9 @@ struct gprs_ns2_vc *ns2_vc_alloc(struct gprs_ns2_vc_bind *bind, struct gprs_ns2_nse *nse, bool initiater, enum gprs_ns2_vc_mode vc_mode) { + /* Sanity check */ + OSMO_ASSERT(bind->ll == nse->ll); + struct gprs_ns2_vc *nsvc = talloc_zero(bind, struct gprs_ns2_vc); if (!nsvc) diff --git a/src/gb/gprs_ns2_message.c b/src/gb/gprs_ns2_message.c index eb9a198..35d3ba7 100644 --- a/src/gb/gprs_ns2_message.c +++ b/src/gb/gprs_ns2_message.c @@ -187,6 +187,7 @@ /* transmit functions */ static int ns2_tx_simple(struct gprs_ns2_vc *nsvc, uint8_t pdu_type) { + OSMO_ASSERT(nsvc->bind->ll == nsvc->nse->ll); struct msgb *msg = gprs_ns2_msgb_alloc(); struct gprs_ns_hdr *nsh; @@ -210,6 +211,7 @@ * \returns 0 in case of success */ int ns2_tx_block(struct gprs_ns2_vc *nsvc, uint8_t cause) { + OSMO_ASSERT(nsvc->bind->ll == nsvc->nse->ll); struct msgb *msg; struct gprs_ns_hdr *nsh; uint16_t nsvci = osmo_htons(nsvc->nsvci); @@ -243,6 +245,7 @@ * \returns 0 in case of success */ int ns2_tx_block_ack(struct gprs_ns2_vc *nsvc) { + OSMO_ASSERT(nsvc->bind->ll == nsvc->nse->ll); struct msgb *msg; struct gprs_ns_hdr *nsh; uint16_t nsvci = osmo_htons(nsvc->nsvci); @@ -274,6 +277,7 @@ * \returns 0 in case of success */ int ns2_tx_reset(struct gprs_ns2_vc *nsvc, uint8_t cause) { + OSMO_ASSERT(nsvc->bind->ll == nsvc->nse->ll); struct msgb *msg; struct gprs_ns_hdr *nsh; uint16_t nsvci = osmo_htons(nsvc->nsvci); @@ -307,6 +311,7 @@ * \returns 0 in case of success */ int ns2_tx_reset_ack(struct gprs_ns2_vc *nsvc) { + OSMO_ASSERT(nsvc->bind->ll == nsvc->nse->ll); struct msgb *msg; struct gprs_ns_hdr *nsh; uint16_t nsvci, nsei; @@ -407,6 +412,7 @@ uint16_t bvci, uint8_t sducontrol, struct msgb *msg) { + OSMO_ASSERT(nsvc->bind->ll == nsvc->nse->ll); struct gprs_ns_hdr *nsh; log_set_context(LOG_CTX_GB_NSE, nsvc->nse); @@ -437,6 +443,7 @@ int ns2_tx_status(struct gprs_ns2_vc *nsvc, uint8_t cause, uint16_t bvci, struct msgb *orig_msg) { + OSMO_ASSERT(nsvc->bind->ll == nsvc->nse->ll); struct msgb *msg = gprs_ns2_msgb_alloc(); struct gprs_ns_hdr *nsh; uint16_t nsvci = osmo_htons(nsvc->nsvci); @@ -498,6 +505,7 @@ const struct gprs_ns_ie_ip6_elem *ip6_elems, unsigned int num_ip6_elems) { + OSMO_ASSERT(nsvc->bind->ll == nsvc->nse->ll); struct msgb *msg = gprs_ns2_msgb_alloc(); struct gprs_ns_hdr *nsh; uint16_t nsei; @@ -557,6 +565,7 @@ const struct gprs_ns_ie_ip6_elem *ip6_elems, unsigned int num_ip6_elems) { + OSMO_ASSERT(nsvc->bind->ll == nsvc->nse->ll); struct msgb *msg; struct gprs_ns_hdr *nsh; uint16_t nsei; @@ -607,6 +616,7 @@ * \returns 0 on success; negative in case of error */ int ns2_tx_sns_config_ack(struct gprs_ns2_vc *nsvc, uint8_t *cause) { + OSMO_ASSERT(nsvc->bind->ll == nsvc->nse->ll); struct msgb *msg; struct gprs_ns_hdr *nsh; uint16_t nsei; @@ -652,6 +662,7 @@ int ns2_tx_sns_size(struct gprs_ns2_vc *nsvc, bool reset_flag, uint16_t max_nr_nsvc, int ip4_ep_nr, int ip6_ep_nr) { + OSMO_ASSERT(nsvc->bind->ll == nsvc->nse->ll); struct msgb *msg = gprs_ns2_msgb_alloc(); struct gprs_ns_hdr *nsh; uint16_t nsei; @@ -697,6 +708,7 @@ * \returns 0 on success; negative in case of error */ int ns2_tx_sns_size_ack(struct gprs_ns2_vc *nsvc, uint8_t *cause) { + OSMO_ASSERT(nsvc->bind->ll == nsvc->nse->ll); struct msgb *msg = gprs_ns2_msgb_alloc(); struct gprs_ns_hdr *nsh; uint16_t nsei; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22234 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I7ca4cd1c5dac8b5e44ffc4825b9373b2d04911ab Gerrit-Change-Number: 22234 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 14:16:13 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Sat, 16 Jan 2021 14:16:13 +0000 Subject: Change in libosmocore[master]: Refactor ns2_nsvc_create_ip* References: Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22235 ) Change subject: Refactor ns2_nsvc_create_ip* ...................................................................... Refactor ns2_nsvc_create_ip* Move code common in ipv4/6 into a separate function and call that function. Change-Id: I076d53bee2e67e1cb3ad6ee5cd05c63ebe3359fb Related: OS#4948 --- M src/gb/gprs_ns2_sns.c 1 file changed, 27 insertions(+), 38 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/35/22235/1 diff --git a/src/gb/gprs_ns2_sns.c b/src/gb/gprs_ns2_sns.c index 1958477..90688af 100644 --- a/src/gb/gprs_ns2_sns.c +++ b/src/gb/gprs_ns2_sns.c @@ -255,66 +255,55 @@ } } -static void ns2_nsvc_create_ip4(struct osmo_fsm_inst *fi, - struct gprs_ns2_nse *nse, - const struct gprs_ns_ie_ip4_elem *ip4) +static void ns2_vc_create_ip(struct osmo_fsm_inst *fi, struct gprs_ns2_nse *nse, struct osmo_sockaddr *remote, + uint8_t sig_weight, uint8_t data_weight) { struct gprs_ns2_inst *nsi = nse->nsi; struct gprs_ns2_vc *nsvc; struct gprs_ns2_vc_bind *bind; + + /* for every bind, create a connection if bind type == IP */ + llist_for_each_entry(bind, &nsi->binding, list) { + if (bind->ll != GPRS_NS2_LL_UDP) + continue; + /* ignore failed connection */ + nsvc = gprs_ns2_ip_connect_inactive(bind, + remote, + nse, 0); + if (!nsvc) { + LOGPFSML(fi, LOGL_ERROR, "SNS-CONFIG: Failed to create NSVC\n"); + continue; + } + + nsvc->sig_weight = sig_weight; + nsvc->data_weight = data_weight; + } +} + +static void ns2_nsvc_create_ip4(struct osmo_fsm_inst *fi, + struct gprs_ns2_nse *nse, + const struct gprs_ns_ie_ip4_elem *ip4) +{ struct osmo_sockaddr remote = { }; /* copy over. Both data structures use network byte order */ remote.u.sin.sin_family = AF_INET; remote.u.sin.sin_addr.s_addr = ip4->ip_addr; remote.u.sin.sin_port = ip4->udp_port; - /* for every bind, create a connection if bind type == IP */ - llist_for_each_entry(bind, &nsi->binding, list) { - if (bind->ll != GPRS_NS2_LL_UDP) - continue; - /* ignore failed connection */ - nsvc = gprs_ns2_ip_connect_inactive(bind, - &remote, - nse, 0); - if (!nsvc) { - LOGPFSML(fi, LOGL_ERROR, "SNS-CONFIG: Failed to create NSVC\n"); - continue; - } - - nsvc->sig_weight = ip4->sig_weight; - nsvc->data_weight = ip4->data_weight; - } + ns2_vc_create_ip(fi, nse, &remote, ip4->sig_weight, ip4->data_weight); } static void ns2_nsvc_create_ip6(struct osmo_fsm_inst *fi, struct gprs_ns2_nse *nse, const struct gprs_ns_ie_ip6_elem *ip6) { - struct gprs_ns2_inst *nsi = nse->nsi; - struct gprs_ns2_vc *nsvc; - struct gprs_ns2_vc_bind *bind; struct osmo_sockaddr remote = {}; /* copy over. Both data structures use network byte order */ remote.u.sin6.sin6_family = AF_INET6; remote.u.sin6.sin6_addr = ip6->ip_addr; remote.u.sin6.sin6_port = ip6->udp_port; - /* for every bind, create a connection if bind type == IP */ - llist_for_each_entry(bind, &nsi->binding, list) { - if (bind->ll != GPRS_NS2_LL_UDP) - continue; - /* ignore failed connection */ - nsvc = gprs_ns2_ip_connect_inactive(bind, - &remote, - nse, 0); - if (!nsvc) { - LOGPFSML(fi, LOGL_ERROR, "SNS-CONFIG: Failed to create NSVC\n"); - continue; - } - - nsvc->sig_weight = ip6->sig_weight; - nsvc->data_weight = ip6->data_weight; - } + ns2_vc_create_ip(fi, nse, &remote, ip6->sig_weight, ip6->data_weight); } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22235 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I076d53bee2e67e1cb3ad6ee5cd05c63ebe3359fb Gerrit-Change-Number: 22235 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 14:19:41 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Sat, 16 Jan 2021 14:19:41 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproy: Configure a Second SGSN In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21698 ) Change subject: gbproy: Configure a Second SGSN ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21698/3//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21698/3//COMMIT_MSG at 7 PS3, Line 7: gbproy: Configure a Second SGSN If you touch it anyway: gbproxy -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21698 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ib70f7c1a29f089957f882df0e9b05ee526224611 Gerrit-Change-Number: 21698 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 16 Jan 2021 14:19:41 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 14:22:28 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 16 Jan 2021 14:22:28 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gpbroxy: Execute TC_load_sharing_dl() for each SGSNH in pool References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22236 ) Change subject: gpbroxy: Execute TC_load_sharing_dl() for each SGSNH in pool ...................................................................... gpbroxy: Execute TC_load_sharing_dl() for each SGSNH in pool Change-Id: I4ad822d3bbf5eb6181f6811c3b2267a50bb533a4 Related: OS#4951 --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 14 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/36/22236/1 diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index 4b7d246..f0175c2 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -1177,16 +1177,15 @@ var octetstring payload := f_rnd_octstring(i); var template (value) PDU_BSSGP pdu_tx := ts_BSSGP_DL_UD(g_pars.tlli, payload, omit, ts_BSSGP_IMSI(g_pars.imsi)); - SGSN_PTP[0].send(pdu_tx); + SGSN_PTP[g_pars.sgsn_idx].send(pdu_tx); } setverdict(pass); } -testcase TC_load_sharing_dl() runs on test_CT_NS + +private function f_TC_load_sharing_dl(integer sgsn_idx) runs on test_CT_NS { const integer num_ue := 10; var BSSGP_ConnHdlr vc_conn[num_ue]; - f_init(); - /* all BVC are now fully brought up. We disconnect BSSGP from NS on the BSS * side so we get the raw NsUnitdataIndication and hence observe different * NSVCI */ @@ -1199,7 +1198,8 @@ /* start parallel components generating DL-UNITDATA from the SGSN side */ for (var integer i:= 0; i < num_ue; i := i+1) { - vc_conn[i] := f_start_handler(refers(f_TC_dl_ud_unidir), testcasename(), g_pcu, g_sgsn, 5+i); + vc_conn[i] := f_start_handler(refers(f_TC_dl_ud_unidir), testcasename(), g_pcu, g_sgsn, + 5+i, 30.0, sgsn_idx); } /* now start counting all the messages that were queued before */ @@ -1227,6 +1227,15 @@ setverdict(fail, "Data not shared over all NSVC"); } } +} + +testcase TC_load_sharing_dl() runs on test_CT_NS +{ + var integer sgsn_idx, nri_idx; + f_init(); + for (sgsn_idx:=0; sgsn_idx < NUM_SGSN; sgsn_idx:=sgsn_idx+1) { + f_TC_load_sharing_dl(sgsn_idx); + } setverdict(pass); } private altstep as_NsUdiCount(integer nsvc_idx, inout ro_integer roi) runs on test_CT_NS { -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22236 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I4ad822d3bbf5eb6181f6811c3b2267a50bb533a4 Gerrit-Change-Number: 22236 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 14:22:29 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 16 Jan 2021 14:22:29 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Don't pass global (component) variables as function arguments References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22237 ) Change subject: gbproxy: Don't pass global (component) variables as function arguments ...................................................................... gbproxy: Don't pass global (component) variables as function arguments The point of global (component) variables is that we don't have to pass them around as extra function arguments everywhere. So don't do it. Change-Id: I0754d5db7e797a51be3a0b601b0533de80bc246d --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 43 insertions(+), 44 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/37/22237/1 diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index f0175c2..caf4c66 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -601,7 +601,7 @@ type function void_fn(charstring id) runs on BSSGP_ConnHdlr; /* helper function to create, connect and start a BSSGP_ConnHdlr component */ -function f_start_handler(void_fn fn, charstring id, GbInstances pcu, GbInstances sgsn, integer imsi_suffix, +function f_start_handler(void_fn fn, charstring id, integer imsi_suffix, float t_guard := 30.0, integer sgsn_idx := 0, integer nri_idx := 0) runs on test_CT return BSSGP_ConnHdlr { var BSSGP_ConnHdlr vc_conn; @@ -617,8 +617,8 @@ tlli := f_gprs_tlli_from_tmsi(p_tmsi, TLLI_LOCAL), tlli_old := omit, ra := omit, - pcu := pcu, - sgsn := sgsn, + pcu := g_pcu, + sgsn := g_sgsn, sgsn_idx := sgsn_idx, t_guard := t_guard }; @@ -629,8 +629,7 @@ return vc_conn; } -function f_start_handlers(void_fn fn, charstring id, GbInstances pcu, GbInstances sgsn, - integer imsi_suffix, float t_guard := 30.0) +function f_start_handlers(void_fn fn, charstring id, integer imsi_suffix, float t_guard := 30.0) runs on test_CT { var integer sgsn_idx, nri_idx; @@ -638,7 +637,7 @@ for (nri_idx := 0; nri_idx < lengthof(mp_sgsn_nri[sgsn_idx]); nri_idx:=nri_idx+1) { var integer extd_imsi_suffix := 1000*sgsn_idx + 100*nri_idx; var BSSGP_ConnHdlr vc_conn; - vc_conn := f_start_handler(fn, id, pcu, sgsn, extd_imsi_suffix, t_guard, + vc_conn := f_start_handler(fn, id, extd_imsi_suffix, t_guard, sgsn_idx, nri_idx); /* Idea: we could also run them in parallel ? */ vc_conn.done; @@ -901,7 +900,7 @@ testcase TC_BVC_bringup() runs on test_CT { f_init(); - f_start_handlers(refers(f_TC_BVC_bringup), testcasename(), g_pcu, g_sgsn, 51); + f_start_handlers(refers(f_TC_BVC_bringup), testcasename(), 51); f_cleanup(); } @@ -967,7 +966,7 @@ testcase TC_ul_unitdata() runs on test_CT { f_init(); - f_start_handlers(refers(f_TC_ul_unitdata), testcasename(), g_pcu, g_sgsn, 1); + f_start_handlers(refers(f_TC_ul_unitdata), testcasename(), 1); /* TODO: start multiple handlers (UEs) on various cells on same and other NSEs */ f_cleanup(); } @@ -993,7 +992,7 @@ testcase TC_dl_unitdata() runs on test_CT { f_init(); - f_start_handlers(refers(f_TC_dl_unitdata), testcasename(), g_pcu, g_sgsn, 2); + f_start_handlers(refers(f_TC_dl_unitdata), testcasename(), 2); /* TODO: start multiple handlers (UEs) on various cells on same and other NSEs */ f_cleanup(); } @@ -1013,7 +1012,7 @@ testcase TC_ra_capability() runs on test_CT { f_init(); - f_start_handlers(refers(f_TC_ra_capability), testcasename(), g_pcu, g_sgsn, 3); + f_start_handlers(refers(f_TC_ra_capability), testcasename(), 3); /* TODO: start multiple handlers (UEs) on various cells on same and other NSEs */ f_cleanup(); } @@ -1040,7 +1039,7 @@ testcase TC_ra_capability_upd() runs on test_CT { f_init(); - f_start_handlers(refers(f_TC_ra_capability_upd), testcasename(), g_pcu, g_sgsn, 4); + f_start_handlers(refers(f_TC_ra_capability_upd), testcasename(), 4); /* TODO: start multiple handlers (UEs) on various cells on same and other NSEs */ f_cleanup(); } @@ -1060,7 +1059,7 @@ testcase TC_radio_status() runs on test_CT { f_init(); - f_start_handlers(refers(f_TC_radio_status), testcasename(), g_pcu, g_sgsn, 5); + f_start_handlers(refers(f_TC_radio_status), testcasename(), 5); /* TODO: start multiple handlers (UEs) on various cells on same and other NSEs */ f_cleanup(); } @@ -1198,7 +1197,7 @@ /* start parallel components generating DL-UNITDATA from the SGSN side */ for (var integer i:= 0; i < num_ue; i := i+1) { - vc_conn[i] := f_start_handler(refers(f_TC_dl_ud_unidir), testcasename(), g_pcu, g_sgsn, + vc_conn[i] := f_start_handler(refers(f_TC_dl_ud_unidir), testcasename(), 5+i, 30.0, sgsn_idx); } @@ -1366,7 +1365,7 @@ } testcase TC_paging_ps_ptp_bss() runs on test_CT { f_init(); - f_start_handlers(refers(f_TC_paging_ps_ptp_bss), testcasename(), g_pcu, g_sgsn, 9); + f_start_handlers(refers(f_TC_paging_ps_ptp_bss), testcasename(), 9); f_cleanup(); } @@ -1380,7 +1379,7 @@ } testcase TC_paging_ps_ptp_lac() runs on test_CT { f_init(); - f_start_handlers(refers(f_TC_paging_ps_ptp_lac), testcasename(), g_pcu, g_sgsn, 10); + f_start_handlers(refers(f_TC_paging_ps_ptp_lac), testcasename(), 10); f_cleanup(); } @@ -1396,7 +1395,7 @@ } testcase TC_paging_ps_ptp_lac_unknown() runs on test_CT { f_init(); - f_start_handlers(refers(f_TC_paging_ps_ptp_lac_unknown), testcasename(), g_pcu, g_sgsn, 11); + f_start_handlers(refers(f_TC_paging_ps_ptp_lac_unknown), testcasename(), 11); f_cleanup(); } @@ -1409,7 +1408,7 @@ } testcase TC_paging_ps_ptp_rac() runs on test_CT { f_init(); - f_start_handlers(refers(f_TC_paging_ps_ptp_rac), testcasename(), g_pcu, g_sgsn, 11); + f_start_handlers(refers(f_TC_paging_ps_ptp_rac), testcasename(), 11); f_cleanup(); } @@ -1428,7 +1427,7 @@ } testcase TC_paging_ps_ptp_rac_unknown() runs on test_CT { f_init(); - f_start_handlers(refers(f_TC_paging_ps_ptp_rac_unknown), testcasename(), g_pcu, g_sgsn, 11); + f_start_handlers(refers(f_TC_paging_ps_ptp_rac_unknown), testcasename(), 11); f_cleanup(); } @@ -1440,7 +1439,7 @@ } testcase TC_paging_ps_ptp_bvci() runs on test_CT { f_init(); - f_start_handlers(refers(f_TC_paging_ps_ptp_bvci), testcasename(), g_pcu, g_sgsn, 12); + f_start_handlers(refers(f_TC_paging_ps_ptp_bvci), testcasename(), 12); f_cleanup(); } @@ -1452,7 +1451,7 @@ } testcase TC_paging_ps_ptp_bvci_unknown() runs on test_CT { f_init(); - f_start_handlers(refers(f_TC_paging_ps_ptp_bvci_unknown), testcasename(), g_pcu, g_sgsn, 11); + f_start_handlers(refers(f_TC_paging_ps_ptp_bvci_unknown), testcasename(), 11); f_cleanup(); } @@ -1519,7 +1518,7 @@ } testcase TC_paging_ps_sig_bss() runs on test_CT { f_init(); - f_start_handlers(refers(f_TC_paging_ps_sig_bss), testcasename(), g_pcu, g_sgsn, 13); + f_start_handlers(refers(f_TC_paging_ps_sig_bss), testcasename(), 13); f_cleanup(); } @@ -1536,7 +1535,7 @@ } testcase TC_paging_ps_sig_lac() runs on test_CT { f_init(); - f_start_handlers(refers(f_TC_paging_ps_sig_lac), testcasename(), g_pcu, g_sgsn, 14); + f_start_handlers(refers(f_TC_paging_ps_sig_lac), testcasename(), 14); f_cleanup(); } @@ -1551,7 +1550,7 @@ } testcase TC_paging_ps_sig_lac_unknown() runs on test_CT { f_init(); - f_start_handlers(refers(f_TC_paging_ps_sig_lac_unknown), testcasename(), g_pcu, g_sgsn, 11); + f_start_handlers(refers(f_TC_paging_ps_sig_lac_unknown), testcasename(), 11); f_cleanup(); } @@ -1570,7 +1569,7 @@ } testcase TC_paging_ps_sig_rac() runs on test_CT { f_init(); - f_start_handlers(refers(f_TC_paging_ps_sig_rac), testcasename(), g_pcu, g_sgsn, 15); + f_start_handlers(refers(f_TC_paging_ps_sig_rac), testcasename(), 15); f_cleanup(); } @@ -1588,7 +1587,7 @@ } testcase TC_paging_ps_sig_rac_unknown() runs on test_CT { f_init(); - f_start_handlers(refers(f_TC_paging_ps_sig_rac_unknown), testcasename(), g_pcu, g_sgsn, 11); + f_start_handlers(refers(f_TC_paging_ps_sig_rac_unknown), testcasename(), 11); f_cleanup(); } @@ -1599,7 +1598,7 @@ } testcase TC_paging_ps_sig_bvci() runs on test_CT { f_init(); - f_start_handlers(refers(f_TC_paging_ps_sig_bvci), testcasename(), g_pcu, g_sgsn, 16); + f_start_handlers(refers(f_TC_paging_ps_sig_bvci), testcasename(), 16); f_cleanup(); } @@ -1610,7 +1609,7 @@ } testcase TC_paging_ps_sig_bvci_unknown() runs on test_CT { f_init(); - f_start_handlers(refers(f_TC_paging_ps_sig_bvci_unknown), testcasename(), g_pcu, g_sgsn, 11); + f_start_handlers(refers(f_TC_paging_ps_sig_bvci_unknown), testcasename(), 11); f_cleanup(); } @@ -1731,7 +1730,7 @@ } testcase TC_paging_cs_ptp_bss() runs on test_CT { f_init(); - f_start_handlers(refers(f_TC_paging_cs_ptp_bss), testcasename(), g_pcu, g_sgsn, 17); + f_start_handlers(refers(f_TC_paging_cs_ptp_bss), testcasename(), 17); f_cleanup(); } @@ -1745,7 +1744,7 @@ } testcase TC_paging_cs_ptp_lac() runs on test_CT { f_init(); - f_start_handlers(refers(f_TC_paging_cs_ptp_lac), testcasename(), g_pcu, g_sgsn, 18); + f_start_handlers(refers(f_TC_paging_cs_ptp_lac), testcasename(), 18); f_cleanup(); } @@ -1761,7 +1760,7 @@ } testcase TC_paging_cs_ptp_lac_unknown() runs on test_CT { f_init(); - f_start_handlers(refers(f_TC_paging_cs_ptp_lac_unknown), testcasename(), g_pcu, g_sgsn, 11); + f_start_handlers(refers(f_TC_paging_cs_ptp_lac_unknown), testcasename(), 11); f_cleanup(); } @@ -1774,7 +1773,7 @@ } testcase TC_paging_cs_ptp_rac() runs on test_CT { f_init(); - f_start_handlers(refers(f_TC_paging_cs_ptp_rac), testcasename(), g_pcu, g_sgsn, 19); + f_start_handlers(refers(f_TC_paging_cs_ptp_rac), testcasename(), 19); f_cleanup(); } @@ -1793,7 +1792,7 @@ } testcase TC_paging_cs_ptp_rac_unknown() runs on test_CT { f_init(); - f_start_handlers(refers(f_TC_paging_cs_ptp_rac_unknown), testcasename(), g_pcu, g_sgsn, 11); + f_start_handlers(refers(f_TC_paging_cs_ptp_rac_unknown), testcasename(), 11); f_cleanup(); } @@ -1805,7 +1804,7 @@ } testcase TC_paging_cs_ptp_bvci() runs on test_CT { f_init(); - f_start_handlers(refers(f_TC_paging_cs_ptp_bvci), testcasename(), g_pcu, g_sgsn, 20); + f_start_handlers(refers(f_TC_paging_cs_ptp_bvci), testcasename(), 20); f_cleanup(); } @@ -1817,7 +1816,7 @@ } testcase TC_paging_cs_ptp_bvci_unknown() runs on test_CT { f_init(); - f_start_handlers(refers(f_TC_paging_cs_ptp_bvci_unknown), testcasename(), g_pcu, g_sgsn, 11); + f_start_handlers(refers(f_TC_paging_cs_ptp_bvci_unknown), testcasename(), 11); f_cleanup(); } @@ -1861,7 +1860,7 @@ } testcase TC_paging_cs_sig_bss() runs on test_CT { f_init(); - f_start_handlers(refers(f_TC_paging_cs_sig_bss), testcasename(), g_pcu, g_sgsn, 13); + f_start_handlers(refers(f_TC_paging_cs_sig_bss), testcasename(), 13); f_cleanup(); } @@ -1878,7 +1877,7 @@ } testcase TC_paging_cs_sig_lac() runs on test_CT { f_init(); - f_start_handlers(refers(f_TC_paging_cs_sig_lac), testcasename(), g_pcu, g_sgsn, 14); + f_start_handlers(refers(f_TC_paging_cs_sig_lac), testcasename(), 14); f_cleanup(); } @@ -1893,7 +1892,7 @@ } testcase TC_paging_cs_sig_lac_unknown() runs on test_CT { f_init(); - f_start_handlers(refers(f_TC_paging_cs_sig_lac_unknown), testcasename(), g_pcu, g_sgsn, 11); + f_start_handlers(refers(f_TC_paging_cs_sig_lac_unknown), testcasename(), 11); f_cleanup(); } @@ -1912,7 +1911,7 @@ } testcase TC_paging_cs_sig_rac() runs on test_CT { f_init(); - f_start_handlers(refers(f_TC_paging_cs_sig_rac), testcasename(), g_pcu, g_sgsn, 15); + f_start_handlers(refers(f_TC_paging_cs_sig_rac), testcasename(), 15); f_cleanup(); } @@ -1930,7 +1929,7 @@ } testcase TC_paging_cs_sig_rac_unknown() runs on test_CT { f_init(); - f_start_handlers(refers(f_TC_paging_cs_sig_rac_unknown), testcasename(), g_pcu, g_sgsn, 11); + f_start_handlers(refers(f_TC_paging_cs_sig_rac_unknown), testcasename(), 11); f_cleanup(); } @@ -1941,7 +1940,7 @@ } testcase TC_paging_cs_sig_bvci() runs on test_CT { f_init(); - f_start_handlers(refers(f_TC_paging_cs_sig_bvci), testcasename(), g_pcu, g_sgsn, 16); + f_start_handlers(refers(f_TC_paging_cs_sig_bvci), testcasename(), 16); f_cleanup(); } @@ -1952,7 +1951,7 @@ } testcase TC_paging_cs_sig_bvci_unknown() runs on test_CT { f_init(); - f_start_handlers(refers(f_TC_paging_cs_sig_bvci_unknown), testcasename(), g_pcu, g_sgsn, 11); + f_start_handlers(refers(f_TC_paging_cs_sig_bvci_unknown), testcasename(), 11); f_cleanup(); } @@ -1981,7 +1980,7 @@ testcase TC_flush_ll() runs on test_CT { f_init(); - f_start_handlers(refers(f_TC_flush_ll), testcasename(), g_pcu, g_sgsn, 6); + f_start_handlers(refers(f_TC_flush_ll), testcasename(), 6); /* TODO: start multiple handlers (UEs) on various cells on same and other NSEs */ f_cleanup(); } @@ -2049,7 +2048,7 @@ testcase TC_llc_discarded() runs on test_CT { f_init(); - f_start_handlers(refers(f_TC_llc_discarded), testcasename(), g_pcu, g_sgsn, 6); + f_start_handlers(refers(f_TC_llc_discarded), testcasename(), 6); /* TODO: start multiple handlers (UEs) on various cells on same and other NSEs */ f_cleanup(); } @@ -2411,7 +2410,7 @@ testcase TC_fc_ms() runs on test_CT { f_init(); - f_start_handlers(refers(f_TC_fc_ms), testcasename(), g_pcu, g_sgsn, 21); + f_start_handlers(refers(f_TC_fc_ms), testcasename(), 21); /* TODO: start multiple handlers (UEs) on various cells on same and other NSEs */ f_cleanup(); } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22237 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I0754d5db7e797a51be3a0b601b0533de80bc246d Gerrit-Change-Number: 22237 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 14:22:29 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 16 Jan 2021 14:22:29 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Unregister IMSI from BSSGP before termination of ConnHdlr References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22238 ) Change subject: gbproxy: Unregister IMSI from BSSGP before termination of ConnHdlr ...................................................................... gbproxy: Unregister IMSI from BSSGP before termination of ConnHdlr Otherwise we may run into problems where the BSSGP_Emulation still has references to longer existing components in its ClientTable. Change-Id: Iee54e93e6ae1b3e40f502d5ba2499e9eb03bf203 --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 12 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/38/22238/1 diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index caf4c66..6141f6a 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -713,6 +713,18 @@ /* call the user-supplied test case function */ fn.apply(id); + + for (i := 0; i < NUM_SGSN; i := i+1) { + if (SGSN_PROC[i].checkstate("Connected")) { + f_client_unregister(g_pars.imsi, SGSN_PROC[i]) + } + } + + for (i := 0; i < NUM_PCU; i := i+1) { + if (PCU_PROC[i].checkstate("Connected")) { + f_client_unregister(g_pars.imsi, PCU_PROC[i]) + } + } } private function f_client_register(hexstring imsi, OCT4 tlli, BSSGP_PROC_PT PT) -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22238 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Iee54e93e6ae1b3e40f502d5ba2499e9eb03bf203 Gerrit-Change-Number: 22238 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 14:22:29 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 16 Jan 2021 14:22:29 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Allow creating ConnHdlr without a P-TMSI References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22239 ) Change subject: gbproxy: Allow creating ConnHdlr without a P-TMSI ...................................................................... gbproxy: Allow creating ConnHdlr without a P-TMSI This will be useful for testing paging cases where no P-TMSI is allocated. Change-Id: Icd780c750c77e723e545ed5a5b52ef26e442b4f2 --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 10 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/39/22239/1 diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index 6141f6a..f1e8749 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -1,6 +1,7 @@ module GBProxy_Tests { /* Osmocom GBProxy test suite in TTCN-3 + * (C) 2020-2021 Harald Welte * (C) 2020 sysmocom - s.f.m.c. GmbH * All rights reserved. * @@ -601,8 +602,8 @@ type function void_fn(charstring id) runs on BSSGP_ConnHdlr; /* helper function to create, connect and start a BSSGP_ConnHdlr component */ -function f_start_handler(void_fn fn, charstring id, integer imsi_suffix, - float t_guard := 30.0, integer sgsn_idx := 0, integer nri_idx := 0) +function f_start_handler(void_fn fn, charstring id, integer imsi_suffix, float t_guard := 30.0, + integer sgsn_idx := 0, integer nri_idx := 0, boolean have_ptmsi := true) runs on test_CT return BSSGP_ConnHdlr { var BSSGP_ConnHdlr vc_conn; var integer nri := mp_sgsn_nri[sgsn_idx][nri_idx]; @@ -622,6 +623,9 @@ sgsn_idx := sgsn_idx, t_guard := t_guard }; + if (not have_ptmsi) { + pars.p_tmsi := omit; + } vc_conn := BSSGP_ConnHdlr.create(id); @@ -629,7 +633,8 @@ return vc_conn; } -function f_start_handlers(void_fn fn, charstring id, integer imsi_suffix, float t_guard := 30.0) +function f_start_handlers(void_fn fn, charstring id, integer imsi_suffix, float t_guard := 30.0, + boolean have_ptmsi := true) runs on test_CT { var integer sgsn_idx, nri_idx; @@ -637,8 +642,8 @@ for (nri_idx := 0; nri_idx < lengthof(mp_sgsn_nri[sgsn_idx]); nri_idx:=nri_idx+1) { var integer extd_imsi_suffix := 1000*sgsn_idx + 100*nri_idx; var BSSGP_ConnHdlr vc_conn; - vc_conn := f_start_handler(fn, id, extd_imsi_suffix, t_guard, - sgsn_idx, nri_idx); + vc_conn := f_start_handler(fn, id, extd_imsi_suffix, t_guard, sgsn_idx, nri_idx, + have_ptmsi); /* Idea: we could also run them in parallel ? */ vc_conn.done; } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22239 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Icd780c750c77e723e545ed5a5b52ef26e442b4f2 Gerrit-Change-Number: 22239 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 14:22:30 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 16 Jan 2021 14:22:30 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Test PS-PAGING by IMSI (without P-TMSI) References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22240 ) Change subject: gbproxy: Test PS-PAGING by IMSI (without P-TMSI) ...................................................................... gbproxy: Test PS-PAGING by IMSI (without P-TMSI) Change-Id: I1bdc09712790d4b69df147ed9c7bea15c48e8dea --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 18 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/40/22240/1 diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index f1e8749..0513c02 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -1460,6 +1460,15 @@ f_cleanup(); } + +/* PS-PAGING on PTP-BVC for BVCI (one cell) using IMSI only (no P-TMSI allocated) */ +testcase TC_paging_ps_ptp_bvci_imsi() runs on test_CT { + f_init(); + f_start_handlers(refers(f_TC_paging_ps_ptp_bvci), testcasename(), 12, have_ptmsi:=false); + f_cleanup(); +} + + /* PS-PAGING on PTP-BVC for unknown BVCI */ private function f_TC_paging_ps_ptp_bvci_unknown(charstring id) runs on BSSGP_ConnHdlr { @@ -1619,6 +1628,13 @@ f_cleanup(); } +/* PS-PAGING on SIG-BVC for BVCI (one cell) using IMSI only (no P-TMSI allocated) */ +testcase TC_paging_ps_sig_bvci_imsi() runs on test_CT { + f_init(); + f_start_handlers(refers(f_TC_paging_ps_sig_bvci), testcasename(), 16, have_ptmsi:=false); + f_cleanup(); +} + /* PS-PAGING on SIG-BVC for unknown BVCI */ private function f_TC_paging_ps_sig_bvci_unknown(charstring id) runs on BSSGP_ConnHdlr { @@ -2464,6 +2480,7 @@ execute( TC_paging_ps_ptp_rac() ); execute( TC_paging_ps_ptp_rac_unknown() ); execute( TC_paging_ps_ptp_bvci() ); + execute( TC_paging_ps_ptp_bvci_imsi() ); execute( TC_paging_ps_ptp_bvci_unknown() ); /* PAGING-PS over SIG BVC */ @@ -2473,6 +2490,7 @@ execute( TC_paging_ps_sig_rac() ); execute( TC_paging_ps_sig_rac_unknown() ); execute( TC_paging_ps_sig_bvci() ); + execute( TC_paging_ps_sig_bvci_imsi() ); execute( TC_paging_ps_sig_bvci_unknown() ); /* PAGING-CS over PTP BVC */ -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22240 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I1bdc09712790d4b69df147ed9c7bea15c48e8dea Gerrit-Change-Number: 22240 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 14:22:30 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 16 Jan 2021 14:22:30 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Osmocom_Gb_Types: Add 3GPP spec chapters; unify formatting References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22241 ) Change subject: Osmocom_Gb_Types: Add 3GPP spec chapters; unify formatting ...................................................................... Osmocom_Gb_Types: Add 3GPP spec chapters; unify formatting Change-Id: I9c3e5458ba7637a1e85f7bb3b32e16a90fad7bc5 --- M library/Osmocom_Gb_Types.ttcn 1 file changed, 21 insertions(+), 11 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/41/22241/1 diff --git a/library/Osmocom_Gb_Types.ttcn b/library/Osmocom_Gb_Types.ttcn index 8ca0cd5..9054785 100644 --- a/library/Osmocom_Gb_Types.ttcn +++ b/library/Osmocom_Gb_Types.ttcn @@ -1076,7 +1076,7 @@ rA_CAP_UPD_Cause_value := cause } - + /* 10.4.12 */ template PDU_BSSGP ts_BVC_RESET(BssgpCause cause, BssgpBvci bvci, template BssgpCellId cell_id) := { pDU_BSSGP_BVC_RESET := { @@ -1088,7 +1088,6 @@ extended_Feature_Bitmap := omit } } - template PDU_BSSGP tr_BVC_RESET(template BssgpCause cause, template BssgpBvci bvci, template BssgpCellId cell_id) := { pDU_BSSGP_BVC_RESET := { @@ -1101,6 +1100,7 @@ } } + /* 10.4.13 */ template PDU_BSSGP ts_BVC_RESET_ACK(BssgpBvci bvci, template BssgpCellId cell_id) := { pDU_BSSGP_BVC_RESET_ACK := { bssgpPduType := '23'O, @@ -1110,7 +1110,6 @@ extended_Feature_Bitmap := omit } } - template PDU_BSSGP tr_BVC_RESET_ACK(template BssgpBvci bvci, template BssgpCellId cell_id) := { pDU_BSSGP_BVC_RESET_ACK := { bssgpPduType := '23'O, @@ -1122,6 +1121,7 @@ } + /* 10.4.10 */ template PDU_BSSGP t_BVC_UNBLOCK(template BssgpBvci bvci) := { pDU_BSSGP_BVC_UNBLOCK := { bssgpPduType := '24'O, @@ -1129,6 +1129,7 @@ } } + /* 10.4.11 */ template PDU_BSSGP t_BVC_UNBLOCK_ACK(template BssgpBvci bvci) := { pDU_BSSGP_BVC_UNBLOCK_ACK := { bssgpPduType := '25'O, @@ -1136,6 +1137,7 @@ } } + /* 10.4.8 */ template PDU_BSSGP t_BVC_BLOCK(template BssgpBvci bvci, template BssgpCause cause) := { pDU_BSSGP_BVC_BLOCK := { bssgpPduType := '20'O, @@ -1144,6 +1146,7 @@ } } + /* 10.4.9 */ template PDU_BSSGP t_BVC_BLOCK_ACK(template BssgpBvci bvci) := { pDU_BSSGP_BVC_BLOCK_ACK := { bssgpPduType := '21'O, @@ -1151,6 +1154,7 @@ } } + /* 10.4.4 */ template PDU_BSSGP t_BVC_FC_BVC(uint16_t bmax, uint16_t bucket_leak_rate, uint16_t bmax_default_ms, uint16_t r_default_ms, OCT1 tag) := { pDU_BSSGP_FLOW_CONTROL_BVC := { @@ -1253,6 +1257,7 @@ } } + /* 10.4.5 */ template PDU_BSSGP t_BVC_FC_BVC_ACK(template OCT1 tag) := { pDU_BSSGP_FLOW_CONTROL_BVC_ACK := { bssgpPduType := '27'O, @@ -1267,6 +1272,7 @@ } } + /* 10.4.6 */ template (value) PDU_BSSGP ts_BVC_FC_MS(GprsTlli tlli, uint16_t bmax, uint16_t bucket_leak_rate, OCT1 tag) := { pDU_BSSGP_FLOW_CONTROL_MS := { @@ -1336,6 +1342,7 @@ } } + /* 10.4.7 */ template (value) PDU_BSSGP ts_BVC_FC_MS_ACK(template (value) GprsTlli tlli, template (value) OCT1 tag) := { @@ -1369,6 +1376,7 @@ } } + /* 10.4.14 */ template PDU_BSSGP ts_BSSGP_STATUS(template BssgpBvci bvci, template BssgpCause cause, PDU_BSSGP pdu) := { pDU_BSSGP_STATUS := { @@ -1385,7 +1393,6 @@ } } } - template PDU_BSSGP tr_BSSGP_STATUS(template BVCI bvci := ?, template BssgpCause cause := ?, template octetstring pdu := ?) := { pDU_BSSGP_STATUS := { @@ -1571,6 +1578,7 @@ } } + /* 10.2.1 */ template PDU_BSSGP ts_BSSGP_DL_UD(GprsTlli tlli, octetstring pdu, template (omit) MSRadioAccessCapabilityV_BSSGP racap := omit, template (omit) IMSI_BSSGP imsi := omit) := { @@ -1602,7 +1610,6 @@ initialLLC_PDU := omit } } - template PDU_BSSGP tr_BSSGP_DL_UD(template (present) GprsTlli tlli, template (present) octetstring pdu, template IMSI_BSSGP imsi := omit) := { pDU_BSSGP_DL_UNITDATA := { @@ -1634,6 +1641,7 @@ } } + /* 10.2.2 */ template PDU_BSSGP ts_BSSGP_UL_UD(GprsTlli tlli, BssgpCellId cell_id, octetstring payload) := { pDU_BSSGP_UL_UNITDATA := { bssgpPduType := '01'O, @@ -1652,7 +1660,6 @@ lLC_PDU := ts_BSSGP_LLC_PDU(payload) } } - template PDU_BSSGP tr_BSSGP_UL_UD(template GprsTlli tlli := ?, template BssgpCellId cell_id := ?, template octetstring payload := ?) := { pDU_BSSGP_UL_UNITDATA := { @@ -1673,6 +1680,7 @@ } } + /* 10.3.2 */ template PDU_BSSGP tr_BSSGP_CS_PAGING(BssgpBvci bvci) := { pDU_BSSGP_PAGING_CS := { bssgpPduType := '07'O, @@ -1688,7 +1696,6 @@ global_CN_Id := * } } - template PDU_BSSGP ts_BSSGP_CS_PAGING_IMSI(BssgpBvci bvci, hexstring imsi) := { pDU_BSSGP_PAGING_CS := { bssgpPduType := '07'O, @@ -1704,7 +1711,6 @@ global_CN_Id := omit } } - template PDU_BSSGP ts_BSSGP_CS_PAGING_PTMSI(BssgpBvci bvci, hexstring imsi, GsmTmsi tmsi) := { pDU_BSSGP_PAGING_CS := { bssgpPduType := '07'O, @@ -1721,6 +1727,7 @@ } } + /* 10.3.1 */ template PDU_BSSGP tr_BSSGP_PS_PAGING(template BssgpBvci bvci) := { pDU_BSSGP_PAGING_PS := { bssgpPduType := '06'O, @@ -1736,7 +1743,6 @@ eDRX_Paremeters := * } } - template PDU_BSSGP ts_BSSGP_PS_PAGING_IMSI(BssgpBvci bvci, hexstring imsi) := { pDU_BSSGP_PAGING_PS := { bssgpPduType := '06'O, @@ -1752,7 +1758,6 @@ eDRX_Paremeters := omit } } - template PDU_BSSGP ts_BSSGP_PS_PAGING_PTMSI(BssgpBvci bvci, hexstring imsi, GsmTmsi tmsi) := { pDU_BSSGP_PAGING_PS := { bssgpPduType := '06'O, @@ -1823,6 +1828,7 @@ rac := int2oct(input.rac, 1) } + /* 10.3.6 */ template (value) PDU_BSSGP ts_BSSGP_SUSPEND(GprsTlli tlli, RoutingAreaIdentification ra_id) := { pDU_BSSGP_SUSPEND := { bssgpPduType := '0B'O, @@ -1838,6 +1844,7 @@ } } + /* 10.3.7 */ template (value) PDU_BSSGP ts_BSSGP_SUSPEND_ACK(GprsTlli tlli, RoutingAreaIdentification ra_id, template (value) OCT1 susp_ref) := { pDU_BSSGP_SUSPEND_ACK := { @@ -1857,6 +1864,7 @@ } } + /* 10.3.8 */ template (value) PDU_BSSGP ts_BSSGP_SUSPEND_NACK(GprsTlli tlli, RoutingAreaIdentification ra_id, template (omit) BssgpCause cause) := { pDU_BSSGP_SUSPEND_NACK := { @@ -1877,7 +1885,7 @@ } - + /* 10.3.9 */ template (value) PDU_BSSGP ts_BSSGP_RESUME(GprsTlli tlli, RoutingAreaIdentification ra_id, OCT1 susp_ref) := { pDU_BSSGP_RESUME := { @@ -1897,6 +1905,7 @@ } } + /* 10.3.10 */ template (value) PDU_BSSGP ts_BSSGP_RESUME_ACK(GprsTlli tlli, RoutingAreaIdentification ra_id) := { pDU_BSSGP_RESUME_ACK := { @@ -1914,6 +1923,7 @@ } } + /* 10.3.11 */ template (value) PDU_BSSGP ts_BSSGP_RESUME_NACK(GprsTlli tlli, RoutingAreaIdentification ra_id, template (omit) BssgpCause cause) := { pDU_BSSGP_RESUME_NACK := { -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22241 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I9c3e5458ba7637a1e85f7bb3b32e16a90fad7bc5 Gerrit-Change-Number: 22241 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 14:22:31 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 16 Jan 2021 14:22:31 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Osmocom_Gb_Types: Add templates for various BSSGP PDU types References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22242 ) Change subject: Osmocom_Gb_Types: Add templates for various BSSGP PDU types ...................................................................... Osmocom_Gb_Types: Add templates for various BSSGP PDU types Change-Id: I89044bf8e736cc1997dff1a550b3e194f8ac1b9d --- M library/Osmocom_Gb_Types.ttcn 1 file changed, 204 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/42/22242/1 diff --git a/library/Osmocom_Gb_Types.ttcn b/library/Osmocom_Gb_Types.ttcn index 9054785..b82ca32 100644 --- a/library/Osmocom_Gb_Types.ttcn +++ b/library/Osmocom_Gb_Types.ttcn @@ -946,6 +946,24 @@ lengthIndicator := { length1 := 4 }, tMSI_Value := int2oct(tmsi, 4) } + private function f_ts_BSSGP_TMSI(template (omit) GsmTmsi tmsi) return template (omit) TMSI_BSSGP { + if (istemplatekind(tmsi, "omit")) { + return omit; + } else { + return ts_BSSGP_TMSI(valueof(tmsi)); + } + } + private function f_tr_BSSGP_TMSI(template GsmTmsi tmsi) return template TMSI_BSSGP { + if (istemplatekind(tmsi, "omit")) { + return omit; + } else if (istemplatekind(tmsi, "*")) { + return *; + } else if (istemplatekind(tmsi, "?")) { + return ?; + } else { + return tr_BSSGP_TMSI(valueof(tmsi)); + } + } function f_bssgp_length_ind(integer len) return LIN2_2a { var LIN2_2a ret; @@ -1828,6 +1846,28 @@ rac := int2oct(input.rac, 1) } + private function f_ts_BSSGP_RA_ID(template (omit) GSM_Types.RoutingAreaIdentification input) + return template (omit) Routeing_Area { + if (istemplatekind(input, "omit")) { + return omit; + } else { + return ts_BSSGP_RA_ID(valueof(input)); + } + } + + private function f_tr_BSSGP_RA_ID(template GSM_Types.RoutingAreaIdentification input) + return template Routeing_Area { + if (istemplatekind(input, "omit")) { + return omit; + } else if (istemplatekind(input, "*")) { + return *; + } else if (istemplatekind(input, "?")) { + return ?; + } else { + return ts_BSSGP_RA_ID(valueof(input)); + } + } + /* 10.3.6 */ template (value) PDU_BSSGP ts_BSSGP_SUSPEND(GprsTlli tlli, RoutingAreaIdentification ra_id) := { pDU_BSSGP_SUSPEND := { @@ -1944,6 +1984,170 @@ } } + /* 10.3.12 */ + template (value) PDU_BSSGP ts_BSSGP_DUMMY_PAGING_PS(hexstring imsi, + template (omit) RoutingAreaIdentification ra) := { + pDU_BSSGP_DUMMY_PAGING_PS := { + bssgpPduType := '12'O, + iMSI := ts_BSSGP_IMSI(imsi), + routeing_Area := f_ts_BSSGP_RA_ID(ra), + eDRX_Paremeters := omit + } + } + template (present) PDU_BSSGP tr_BSSGP_DUMMY_PAGING_PS(hexstring imsi, + template RoutingAreaIdentification ra) := { + pDU_BSSGP_DUMMY_PAGING_PS := { + bssgpPduType := '12'O, + iMSI := tr_BSSGP_IMSI(imsi), + routeing_Area := f_tr_BSSGP_RA_ID(ra), + eDRX_Paremeters := omit + } + } + + template (value) Time_Until_Next_Paging_Occasion ts_TimeNextPag(uint8_t mins, uint8_t secs) := { + iEI := '93'O, + ext := '1'B, + lengthIndicator := { + length1 := 2 + }, + minutes := mins, + spare := '00'B, + seconds := secs, + spare2 := '00'B + } + template (present) Time_Until_Next_Paging_Occasion tr_TimeNextPag(template (present) uint8_t mins, + template (present) uint8_t secs) := { + iEI := '93'O, + ext := '1'B, + lengthIndicator := { + length1 := 2 + }, + minutes := mins, + spare := ?, + seconds := secs, + spare2 := ? + } + + /* 10.3.13 */ + template (value) PDU_BSSGP ts_BSSGP_DUMMY_PAGING_PS_RESP(hexstring imsi, uint8_t mins, uint8_t secs) := { + pDU_BSSGP_DUMMY_PAGING_PS_RESPONSE := { + bssgpPduType := '13'O, + iMSI := ts_BSSGP_IMSI(imsi), + time_Until_Next_Paging_Occasion := ts_TimeNextPag(mins, secs) + } + } + template (present) PDU_BSSGP tr_BSSGP_DUMMY_PAGING_PS_RESP(hexstring imsi, + template (present) uint8_t mins, + template (present) uint8_t secs) := { + pDU_BSSGP_DUMMY_PAGING_PS_RESPONSE := { + bssgpPduType := '13'O, + iMSI := tr_BSSGP_IMSI(imsi), + time_Until_Next_Paging_Occasion := tr_TimeNextPag(mins, secs) + } + } + + /* 10.3.14 */ + template (value) PDU_BSSGP ts_BSSGP_PAGING_PS_REJ(hexstring imsi, uint8_t mins, uint8_t secs, + template (omit) GsmTmsi tmsi) := { + pDU_BSSGP_PAGING_PS_REJECT := { + bssgpPduType := '11'O, + iMSI := ts_BSSGP_IMSI(imsi), + pTMSI := f_ts_BSSGP_TMSI(tmsi), + time_Until_Next_Paging_Occasion := ts_TimeNextPag(mins, secs) + } + } + template (present) PDU_BSSGP tr_BSSGP_PAGING_PS_REJ(hexstring imsi, + template (present) uint8_t mins, + template (present) uint8_t secs, + template GsmTmsi tmsi) := { + pDU_BSSGP_PAGING_PS_REJECT := { + bssgpPduType := '11'O, + iMSI := tr_BSSGP_IMSI(imsi), + pTMSI := f_tr_BSSGP_TMSI(tmsi), + time_Until_Next_Paging_Occasion := tr_TimeNextPag(mins, secs) + } + } + + /* 10.3.15 */ + template (value) PDU_BSSGP ts_BSSGP_MS_REG_ENQ(hexstring imsi) := { + pDU_BSSGP_MS_REGISTRATION_ENQUIRY := { + bssgpPduType := '14'O, + iMSI := ts_BSSGP_IMSI(imsi), + mME_Query := omit + } + } + template (present) PDU_BSSGP tr_BSSGP_MS_REG_ENQ(hexstring imsi) := { + pDU_BSSGP_MS_REGISTRATION_ENQUIRY := { + bssgpPduType := '14'O, + iMSI := tr_BSSGP_IMSI(imsi), + mME_Query := * + } + } + + /* 11.3.126 */ + template (value) PLMN_Identity ts_BSSGP_PlmnId(template (value) BcdMccMnc mccmnc) := { + iEI := '96'O, + ext := '1'B, + lengthIndicator := { + length1 := 3 + }, + mccDigit1 := mccmnc[0], + mccDigit2 := mccmnc[1], + mccDigit3 := mccmnc[2], + mncDigit3 := mccmnc[5], + mncDigit1 := mccmnc[3], + mncDigit2 := mccmnc[4] + } + template (present) PLMN_Identity tr_BSSGP_PlmnId(template (present) BcdMccMnc mccmnc) := { + iEI := '96'O, + ext := '1'B, + lengthIndicator := { + length1 := 3 + }, + mccDigit1 := mccmnc[0], + mccDigit2 := mccmnc[1], + mccDigit3 := mccmnc[2], + mncDigit3 := mccmnc[5], + mncDigit1 := mccmnc[3], + mncDigit2 := mccmnc[4] + } + private function f_ts_BSSGP_PlmnId(template (omit) BcdMccMnc mccmnc) + return template (omit) PLMN_Identity { + if (istemplatekind(mccmnc, "omit")) { + return omit; + } else { + return ts_BSSGP_PlmnId(mccmnc); + } + } + private function f_tr_BSSGP_PlmnId(template BcdMccMnc mccmnc) + return template PLMN_Identity { + if (istemplatekind(mccmnc, "omit")) { + return omit; + } else if (istemplatekind(mccmnc, "*")) { + return *; + } else if (istemplatekind(mccmnc, "?")) { + return ?; + } else { + return ts_BSSGP_PlmnId(mccmnc); + } + } + + /* 10.3.16 */ + template (value) PDU_BSSGP ts_BSSGP_MS_REW_ENQ_RESP(hexstring imsi, template (omit) BcdMccMnc mccmnc) := { + pDU_BSSGP_MS_REGISTRATION_ENQUIRY_RESPONSE := { + bssgpPduType := '15'O, + iMSI := ts_BSSGP_IMSI(imsi), + pS_Registered_Operator := f_ts_BSSGP_PlmnId(mccmnc) + } + } + template (present) PDU_BSSGP tr_BSSGP_MS_REW_ENQ_RESP(hexstring imsi, template BcdMccMnc mccmnc) := { + pDU_BSSGP_MS_REGISTRATION_ENQUIRY_RESPONSE := { + bssgpPduType := '15'O, + iMSI := tr_BSSGP_IMSI(imsi), + pS_Registered_Operator := f_tr_BSSGP_PlmnId(mccmnc) + } + } + /* 10.4.1 */ template (value) PDU_BSSGP ts_BSSGP_FLUSH_LL(GprsTlli tlli, template (value) BssgpBvci bvci_old, template (omit) BssgpBvci bvci_new := omit, -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22242 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I89044bf8e736cc1997dff1a550b3e194f8ac1b9d Gerrit-Change-Number: 22242 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 14:22:32 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 16 Jan 2021 14:22:32 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Add test case for PAGING-PS-REJECT References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22243 ) Change subject: gbproxy: Add test case for PAGING-PS-REJECT ...................................................................... gbproxy: Add test case for PAGING-PS-REJECT The test fail with current osmo-gbproxy master, as the related implementation is missing. Change-Id: I19a36dfef8f33f278a54b938a5daccce08de6fe0 --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 56 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/43/22243/1 diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index 0513c02..6f1f87b 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -1536,6 +1536,40 @@ setverdict(pass); } +/* Send PAGING-PS-REJECT on SIG BVC, expect it to arrive on the "right" SGSN */ +private function f_send_paging_ps_rej(integer pcu_idx := 0) runs on BSSGP_ConnHdlr +{ + var template (value) PDU_BSSGP pdu_tx; + var template (present) PDU_BSSGP exp_rx; + var PDU_BSSGP pdu_rx; + timer T := 5.0; + var template (omit) GsmTmsi tmsi_int := omit; + + if (ispresent(g_pars.p_tmsi)) { + tmsi_int := oct2int(g_pars.p_tmsi); + } + + pdu_tx := ts_BSSGP_PAGING_PS_REJ(g_pars.imsi, 23, 42, tmsi_int); + exp_rx := tr_BSSGP_PAGING_PS_REJ(g_pars.imsi, 23, 42, tmsi_int); + + PCU_SIG[pcu_idx].send(pdu_tx); + T.start; + alt { + [] SGSN_SIG[g_pars.sgsn_idx].receive(exp_rx) -> value pdu_rx { + setverdict(pass); + } + [] SGSN_SIG[g_pars.sgsn_idx].receive { + setverdict(fail, "Unexpected PDU on SGSN"); + } + [] any from SGSN_SIG.receive(exp_rx) -> value pdu_rx { + setverdict(fail, "PAGING-PS-REJECT arrived on wrong SGSN"); + } + [] T.timeout { + setverdict(fail, "Timeout waiting for PAGING-PS-REJECT"); + } + } +} + /* PS-PAGING on SIG-BVC for BSS Area */ private function f_TC_paging_ps_sig_bss(charstring id) runs on BSSGP_ConnHdlr { @@ -1635,6 +1669,28 @@ f_cleanup(); } +/* Rejected PS-PAGING on SIG-BVC for BVCI (one cell) */ +private function f_TC_paging_ps_reject_sig_bvci(charstring id) runs on BSSGP_ConnHdlr +{ + /* first send the PS-PAGING from SGSN -> PCU */ + f_send_paging_ps_exp_multi(ts_BssgpP4Bvci(pcu_bvc_cfg[0].bvci), 0, {0}); + /* then simulate the PS-PAGING-REJECT from the PCU */ + f_send_paging_ps_rej(); + +} +testcase TC_paging_ps_reject_sig_bvci() runs on test_CT { + f_init(); + f_start_handlers(refers(f_TC_paging_ps_reject_sig_bvci), testcasename(), 16); + f_cleanup(); +} + +/* Rejected PS-PAGING on SIG-BVC for BVCI (one cell) using IMSI only (no P-TMSI allocated) */ +testcase TC_paging_ps_reject_sig_bvci_imsi() runs on test_CT { + f_init(); + f_start_handlers(refers(f_TC_paging_ps_reject_sig_bvci), testcasename(), 16, have_ptmsi:=false); + f_cleanup(); +} + /* PS-PAGING on SIG-BVC for unknown BVCI */ private function f_TC_paging_ps_sig_bvci_unknown(charstring id) runs on BSSGP_ConnHdlr { -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22243 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I19a36dfef8f33f278a54b938a5daccce08de6fe0 Gerrit-Change-Number: 22243 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 17:42:55 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 16 Jan 2021 17:42:55 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Test PS-PAGING by IMSI (without P-TMSI) In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22240 to look at the new patch set (#2). Change subject: gbproxy: Test PS-PAGING by IMSI (without P-TMSI) ...................................................................... gbproxy: Test PS-PAGING by IMSI (without P-TMSI) Related: OS#4951 Change-Id: I1bdc09712790d4b69df147ed9c7bea15c48e8dea --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 18 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/40/22240/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22240 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I1bdc09712790d4b69df147ed9c7bea15c48e8dea Gerrit-Change-Number: 22240 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 17:42:55 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 16 Jan 2021 17:42:55 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Osmocom_Gb_Types: Add 3GPP spec chapters; unify formatting In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22241 to look at the new patch set (#2). Change subject: Osmocom_Gb_Types: Add 3GPP spec chapters; unify formatting ...................................................................... Osmocom_Gb_Types: Add 3GPP spec chapters; unify formatting Change-Id: I9c3e5458ba7637a1e85f7bb3b32e16a90fad7bc5 --- M library/Osmocom_Gb_Types.ttcn 1 file changed, 21 insertions(+), 11 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/41/22241/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22241 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I9c3e5458ba7637a1e85f7bb3b32e16a90fad7bc5 Gerrit-Change-Number: 22241 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 17:42:55 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 16 Jan 2021 17:42:55 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Osmocom_Gb_Types: Add templates for various BSSGP PDU types In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22242 to look at the new patch set (#2). Change subject: Osmocom_Gb_Types: Add templates for various BSSGP PDU types ...................................................................... Osmocom_Gb_Types: Add templates for various BSSGP PDU types Related: OS#4951 Change-Id: I89044bf8e736cc1997dff1a550b3e194f8ac1b9d --- M library/Osmocom_Gb_Types.ttcn 1 file changed, 204 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/42/22242/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22242 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I89044bf8e736cc1997dff1a550b3e194f8ac1b9d Gerrit-Change-Number: 22242 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 17:42:55 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 16 Jan 2021 17:42:55 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Add test case for PAGING-PS-REJECT In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22243 to look at the new patch set (#2). Change subject: gbproxy: Add test case for PAGING-PS-REJECT ...................................................................... gbproxy: Add test case for PAGING-PS-REJECT The test fail with current osmo-gbproxy master, as the related implementation is missing. Related: OS#4951 Change-Id: I19a36dfef8f33f278a54b938a5daccce08de6fe0 --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 93 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/43/22243/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22243 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I19a36dfef8f33f278a54b938a5daccce08de6fe0 Gerrit-Change-Number: 22243 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 17:46:17 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 16 Jan 2021 17:46:17 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Test PS-PAGING by IMSI (without P-TMSI) In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22240 ) Change subject: gbproxy: Test PS-PAGING by IMSI (without P-TMSI) ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22240 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I1bdc09712790d4b69df147ed9c7bea15c48e8dea Gerrit-Change-Number: 22240 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 16 Jan 2021 17:46:17 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 18:10:10 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 16 Jan 2021 18:10:10 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Test cases for DUMMY-PAGING-PS References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22244 ) Change subject: gbproxy: Test cases for DUMMY-PAGING-PS ...................................................................... gbproxy: Test cases for DUMMY-PAGING-PS The test case fails with current master, as osmo-gbproxy doesn't handle this yet. Change-Id: Ie67f36502d18e9a62373973b09e758a7d0d0f3a5 --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 30 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/44/22244/1 diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index 0767331..ad95bff 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -1501,6 +1501,20 @@ f_cleanup(); } +/* DUMMY PAGING PS on PTP BVC */ +private function f_TC_dummy_paging_ps_ptp(charstring id) runs on BSSGP_ConnHdlr +{ + f_sgsn2pcu(ts_BSSGP_DUMMY_PAGING_PS(g_pars.imsi, omit), + tr_BSSGP_DUMMY_PAGING_PS(g_pars.imsi, omit), use_sig := false); + f_pcu2sgsn(ts_BSSGP_DUMMY_PAGING_PS_RESP(g_pars.imsi, 1, 5), + tr_BSSGP_DUMMY_PAGING_PS_RESP(g_pars.imsi, 1, 5), use_sig := false) +} +testcase TC_dummy_paging_ps_ptp() runs on test_CT { + f_init(); + f_start_handlers(refers(f_TC_dummy_paging_ps_ptp), testcasename(), 11); + f_cleanup(); +} + /* altstep for expecting BSSGP PDU on signaling BVC of given pcu_idx + storing in 'roi' */ private altstep as_paging_sig_pcu(integer pcu_idx, template (present) PDU_BSSGP exp_rx, inout ro_integer roi) runs on BSSGP_ConnHdlr { @@ -1735,6 +1749,20 @@ f_cleanup(); } +/* DUMMY PAGING PS on SIG BVC */ +private function f_TC_dummy_paging_ps_sig(charstring id) runs on BSSGP_ConnHdlr +{ + f_sgsn2pcu(ts_BSSGP_DUMMY_PAGING_PS(g_pars.imsi, omit), + tr_BSSGP_DUMMY_PAGING_PS(g_pars.imsi, omit), use_sig := true); + f_pcu2sgsn(ts_BSSGP_DUMMY_PAGING_PS_RESP(g_pars.imsi, 1, 5), + tr_BSSGP_DUMMY_PAGING_PS_RESP(g_pars.imsi, 1, 5), use_sig := true) +} +testcase TC_dummy_paging_ps_sig() runs on test_CT { + f_init(); + f_start_handlers(refers(f_TC_dummy_paging_ps_sig), testcasename(), 11); + f_cleanup(); +} + /*********************************************************************** @@ -2573,6 +2601,7 @@ execute( TC_paging_ps_ptp_bvci_unknown() ); execute( TC_paging_ps_reject_ptp_bvci() ); execute( TC_paging_ps_reject_ptp_bvci_imsi() ); + execute( TC_dummy_paging_ps_ptp() ); /* PAGING-PS over SIG BVC */ execute( TC_paging_ps_sig_bss() ); @@ -2585,6 +2614,7 @@ execute( TC_paging_ps_sig_bvci_unknown() ); execute( TC_paging_ps_reject_sig_bvci() ); execute( TC_paging_ps_reject_sig_bvci_imsi() ); + execute( TC_dummy_paging_ps_sig() ); /* PAGING-CS over PTP BVC */ execute( TC_paging_cs_ptp_bss() ); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22244 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ie67f36502d18e9a62373973b09e758a7d0d0f3a5 Gerrit-Change-Number: 22244 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 18:10:10 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 16 Jan 2021 18:10:10 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Add testcase for MS-REGISTRATION ENQUIRY References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22245 ) Change subject: gbproxy: Add testcase for MS-REGISTRATION ENQUIRY ...................................................................... gbproxy: Add testcase for MS-REGISTRATION ENQUIRY The test case fails with current master, as osmo-gbproxy doesn't handle this yet. Change-Id: I158dfa729315a9678a7fbb33ed465b73dfc9ec4b --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 15 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/45/22245/1 diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index ad95bff..dc5756c 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -2565,7 +2565,21 @@ f_cleanup(); } +/*********************************************************************** + * MS-REGISTRATION ENQUIRY procedure + ***********************************************************************/ +private function f_TC_ms_reg_enq(charstring id) runs on BSSGP_ConnHdlr +{ + f_pcu2sgsn(ts_BSSGP_MS_REG_ENQ(g_pars.imsi), tr_BSSGP_MS_REG_ENQ(g_pars.imsi), use_sig := true); + f_sgsn2pcu(ts_BSSGP_MS_REW_ENQ_RESP(g_pars.imsi, omit), tr_BSSGP_MS_REW_ENQ_RESP(g_pars.imsi, omit), use_sig := true); +} +testcase TC_ms_reg_enq() runs on test_CT +{ + f_init(); + f_start_handlers(refers(f_TC_ms_reg_enq), testcasename(), 22); + f_cleanup(); +} control { execute( TC_BVC_bringup() ); @@ -2638,6 +2652,7 @@ execute( TC_flush_ll() ); execute( TC_fc_bvc() ); execute( TC_fc_ms() ); + execute( TC_ms_reg_enq() ); } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22245 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I158dfa729315a9678a7fbb33ed465b73dfc9ec4b Gerrit-Change-Number: 22245 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 18:27:08 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Sat, 16 Jan 2021 18:27:08 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Execute each ConnHdlr test on each NRI of each SGSN configured In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22233 ) Change subject: gbproxy: Execute each ConnHdlr test on each NRI of each SGSN configured ...................................................................... Patch Set 2: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22233/2/gbproxy/GBProxy_Tests.ttcn File gbproxy/GBProxy_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22233/2/gbproxy/GBProxy_Tests.ttcn at 643 PS2, Line 643: /* Idea: we could also run them in parallel ? */ Apart from time savings testing multiple connections to different SGSNs in parallel seems desirable. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22233 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ie22d3fd786ff8fefe919ecc3a96f974675057e29 Gerrit-Change-Number: 22233 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 16 Jan 2021 18:27:08 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 18:28:35 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Sat, 16 Jan 2021 18:28:35 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gpbroxy: Execute TC_load_sharing_dl() for each SGSNH in pool In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22236 ) Change subject: gpbroxy: Execute TC_load_sharing_dl() for each SGSNH in pool ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22236/1//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22236/1//COMMIT_MSG at 7 PS1, Line 7: gpbroxy: Execute TC_load_sharing_dl() for each SGSNH in pool SGSN -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22236 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I4ad822d3bbf5eb6181f6811c3b2267a50bb533a4 Gerrit-Change-Number: 22236 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Sat, 16 Jan 2021 18:28:35 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 18:29:49 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Sat, 16 Jan 2021 18:29:49 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Don't pass global (component) variables as function arguments In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22237 ) Change subject: gbproxy: Don't pass global (component) variables as function arguments ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22237 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I0754d5db7e797a51be3a0b601b0533de80bc246d Gerrit-Change-Number: 22237 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Sat, 16 Jan 2021 18:29:49 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 18:31:13 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Sat, 16 Jan 2021 18:31:13 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Unregister IMSI from BSSGP before termination of ConnHdlr In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22238 ) Change subject: gbproxy: Unregister IMSI from BSSGP before termination of ConnHdlr ...................................................................... Patch Set 1: Code-Review+1 Is this one source of the DTEs we sometimes encounter? -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22238 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Iee54e93e6ae1b3e40f502d5ba2499e9eb03bf203 Gerrit-Change-Number: 22238 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Sat, 16 Jan 2021 18:31:13 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 18:35:04 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Sat, 16 Jan 2021 18:35:04 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Allow creating ConnHdlr without a P-TMSI In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22239 ) Change subject: gbproxy: Allow creating ConnHdlr without a P-TMSI ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22239 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Icd780c750c77e723e545ed5a5b52ef26e442b4f2 Gerrit-Change-Number: 22239 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Sat, 16 Jan 2021 18:35:04 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 18:35:21 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Sat, 16 Jan 2021 18:35:21 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Test PS-PAGING by IMSI (without P-TMSI) In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22240 ) Change subject: gbproxy: Test PS-PAGING by IMSI (without P-TMSI) ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22240 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I1bdc09712790d4b69df147ed9c7bea15c48e8dea Gerrit-Change-Number: 22240 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 16 Jan 2021 18:35:21 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 18:36:08 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Sat, 16 Jan 2021 18:36:08 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Osmocom_Gb_Types: Add 3GPP spec chapters; unify formatting In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22241 ) Change subject: Osmocom_Gb_Types: Add 3GPP spec chapters; unify formatting ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22241 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I9c3e5458ba7637a1e85f7bb3b32e16a90fad7bc5 Gerrit-Change-Number: 22241 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Sat, 16 Jan 2021 18:36:08 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 18:38:11 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Sat, 16 Jan 2021 18:38:11 +0000 Subject: Change in osmo-bsc[master]: gsm_data: return early if MS Power class remains the same In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22232 ) Change subject: gsm_data: return early if MS Power class remains the same ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22232 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I519d2d1575cbb5352cc381a60513db8e0e2cb0a0 Gerrit-Change-Number: 22232 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 16 Jan 2021 18:38:11 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 18:39:30 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Sat, 16 Jan 2021 18:39:30 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Osmocom_Gb_Types: Add templates for various BSSGP PDU types In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22242 ) Change subject: Osmocom_Gb_Types: Add templates for various BSSGP PDU types ...................................................................... Patch Set 2: (2 comments) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22242/2/library/Osmocom_Gb_Types.ttcn File library/Osmocom_Gb_Types.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22242/2/library/Osmocom_Gb_Types.ttcn at 2097 PS2, Line 2097: mncDigit3 := mccmnc[5], Move this line to the end https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22242/2/library/Osmocom_Gb_Types.ttcn at 2110 PS2, Line 2110: mncDigit3 := mccmnc[5], Same -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22242 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I89044bf8e736cc1997dff1a550b3e194f8ac1b9d Gerrit-Change-Number: 22242 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Sat, 16 Jan 2021 18:39:30 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 18:40:46 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Sat, 16 Jan 2021 18:40:46 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Add test case for PAGING-PS-REJECT In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22243 ) Change subject: gbproxy: Add test case for PAGING-PS-REJECT ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22243 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I19a36dfef8f33f278a54b938a5daccce08de6fe0 Gerrit-Change-Number: 22243 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Sat, 16 Jan 2021 18:40:46 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 18:41:35 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Sat, 16 Jan 2021 18:41:35 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Test cases for DUMMY-PAGING-PS In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22244 ) Change subject: gbproxy: Test cases for DUMMY-PAGING-PS ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22244 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ie67f36502d18e9a62373973b09e758a7d0d0f3a5 Gerrit-Change-Number: 22244 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Sat, 16 Jan 2021 18:41:35 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 18:41:57 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Sat, 16 Jan 2021 18:41:57 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Add testcase for MS-REGISTRATION ENQUIRY In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22245 ) Change subject: gbproxy: Add testcase for MS-REGISTRATION ENQUIRY ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22245 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I158dfa729315a9678a7fbb33ed465b73dfc9ec4b Gerrit-Change-Number: 22245 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Sat, 16 Jan 2021 18:41:57 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 18:43:17 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Sat, 16 Jan 2021 18:43:17 +0000 Subject: Change in libosmocore[master]: ns2: Add sanity checks In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22234 ) Change subject: ns2: Add sanity checks ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22234 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I7ca4cd1c5dac8b5e44ffc4825b9373b2d04911ab Gerrit-Change-Number: 22234 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 16 Jan 2021 18:43:17 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 18:44:39 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Sat, 16 Jan 2021 18:44:39 +0000 Subject: Change in libosmocore[master]: Refactor ns2_nsvc_create_ip* In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22235 ) Change subject: Refactor ns2_nsvc_create_ip* ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22235 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I076d53bee2e67e1cb3ad6ee5cd05c63ebe3359fb Gerrit-Change-Number: 22235 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 16 Jan 2021 18:44:39 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 18:45:09 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sat, 16 Jan 2021 18:45:09 +0000 Subject: Change in libosmocore[master]: ns2: Add sanity checks In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22234 ) Change subject: ns2: Add sanity checks ...................................................................... Patch Set 1: I would not include it in the tx_/hot path. Just add it when doing management e.g. vc_alloc. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22234 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I7ca4cd1c5dac8b5e44ffc4825b9373b2d04911ab Gerrit-Change-Number: 22234 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 16 Jan 2021 18:45:09 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 18:45:17 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sat, 16 Jan 2021 18:45:17 +0000 Subject: Change in libosmocore[master]: ns2: Add sanity checks In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22234 ) Change subject: ns2: Add sanity checks ...................................................................... Patch Set 1: Code-Review-1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22234 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I7ca4cd1c5dac8b5e44ffc4825b9373b2d04911ab Gerrit-Change-Number: 22234 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 16 Jan 2021 18:45:17 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 18:46:14 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Sat, 16 Jan 2021 18:46:14 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Don't pass global (component) variables as function arguments In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22237 ) Change subject: gbproxy: Don't pass global (component) variables as function arguments ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22237 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I0754d5db7e797a51be3a0b601b0533de80bc246d Gerrit-Change-Number: 22237 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 16 Jan 2021 18:46:14 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 18:46:45 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Sat, 16 Jan 2021 18:46:45 +0000 Subject: Change in libosmocore[master]: ns2: Add sanity checks In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22234 ) Change subject: ns2: Add sanity checks ...................................................................... Patch Set 1: > Patch Set 1: > > I would not include it in the tx_/hot path. Just add it when doing management e.g. vc_alloc. Okay, I'll change it. Was unsure about that myself. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22234 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I7ca4cd1c5dac8b5e44ffc4825b9373b2d04911ab Gerrit-Change-Number: 22234 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 16 Jan 2021 18:46:45 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 18:46:54 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sat, 16 Jan 2021 18:46:54 +0000 Subject: Change in libosmocore[master]: Refactor ns2_nsvc_create_ip* In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22235 ) Change subject: Refactor ns2_nsvc_create_ip* ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22235 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I076d53bee2e67e1cb3ad6ee5cd05c63ebe3359fb Gerrit-Change-Number: 22235 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 16 Jan 2021 18:46:54 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 18:48:20 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Sat, 16 Jan 2021 18:48:20 +0000 Subject: Change in libosmocore[master]: ns2: Add sanity check In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, lynxis lazus, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22234 to look at the new patch set (#2). Change subject: ns2: Add sanity check ...................................................................... ns2: Add sanity check Prevent memory corruption or segfaults by asserting that NSE and bind link layer match. A mismatch should never happen and might cause the bind to access invalid memory when sending because nsvc->priv doesn't match what it expects. Change-Id: I7ca4cd1c5dac8b5e44ffc4825b9373b2d04911ab Related: OS#4948 --- M src/gb/gprs_ns2.c 1 file changed, 3 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/34/22234/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22234 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I7ca4cd1c5dac8b5e44ffc4825b9373b2d04911ab Gerrit-Change-Number: 22234 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 18:49:54 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Sat, 16 Jan 2021 18:49:54 +0000 Subject: Change in libosmocore[master]: Refactor ns2_nsvc_create_ip* In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22235 ) Change subject: Refactor ns2_nsvc_create_ip* ...................................................................... Patch Set 2: Code-Review+2 "Eins und eins zusammenz?hlen" -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22235 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I076d53bee2e67e1cb3ad6ee5cd05c63ebe3359fb Gerrit-Change-Number: 22235 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 16 Jan 2021 18:49:54 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 18:52:46 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Sat, 16 Jan 2021 18:52:46 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Allow creating ConnHdlr without a P-TMSI In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22239 ) Change subject: gbproxy: Allow creating ConnHdlr without a P-TMSI ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22239 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Icd780c750c77e723e545ed5a5b52ef26e442b4f2 Gerrit-Change-Number: 22239 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 16 Jan 2021 18:52:46 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 18:54:37 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Sat, 16 Jan 2021 18:54:37 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Add test case for PAGING-PS-REJECT In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22243 ) Change subject: gbproxy: Add test case for PAGING-PS-REJECT ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22243 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I19a36dfef8f33f278a54b938a5daccce08de6fe0 Gerrit-Change-Number: 22243 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 16 Jan 2021 18:54:37 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 18:55:09 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Sat, 16 Jan 2021 18:55:09 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Test cases for DUMMY-PAGING-PS In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22244 ) Change subject: gbproxy: Test cases for DUMMY-PAGING-PS ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22244 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ie67f36502d18e9a62373973b09e758a7d0d0f3a5 Gerrit-Change-Number: 22244 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 16 Jan 2021 18:55:09 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 18:55:32 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Sat, 16 Jan 2021 18:55:32 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Add testcase for MS-REGISTRATION ENQUIRY In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22245 ) Change subject: gbproxy: Add testcase for MS-REGISTRATION ENQUIRY ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22245 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I158dfa729315a9678a7fbb33ed465b73dfc9ec4b Gerrit-Change-Number: 22245 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 16 Jan 2021 18:55:32 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 18:56:19 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Sat, 16 Jan 2021 18:56:19 +0000 Subject: Change in libosmocore[master]: ns2: Add sanity check In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22234 ) Change subject: ns2: Add sanity check ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22234 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I7ca4cd1c5dac8b5e44ffc4825b9373b2d04911ab Gerrit-Change-Number: 22234 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 16 Jan 2021 18:56:19 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 20:57:11 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 16 Jan 2021 20:57:11 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Add suite of RIM tests References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22246 ) Change subject: gbproxy: Add suite of RIM tests ...................................................................... gbproxy: Add suite of RIM tests They all fail with current gbproxy master as it doesn't yet implement routing of RIM messages. Change-Id: I0fec6fd4a5a6559f596b9006ae437323da6f05d7 --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 316 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/46/22246/1 diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index dc5756c..5343ba5 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -825,6 +825,8 @@ type component GlobalTest_CT extends test_CT { port BSSGP_PT G_PCU[NUM_PCU]; port BSSGP_PT G_SGSN[NUM_SGSN]; + port BSSGP_PT RIM_PCU[NUM_PCU]; + port BSSGP_PT RIM_SGSN[NUM_SGSN]; }; /* connect the signaling BVC of each NSE to the G_PCU / G_SGSN ports */ @@ -832,9 +834,11 @@ var integer i; for (i := 0; i < lengthof(g_sgsn); i := i+1) { connect(self:G_SGSN[i], g_sgsn[i].vc_BSSGP:GLOBAL); + connect(self:RIM_SGSN[i], g_sgsn[i].vc_BSSGP:RIM); } for (i := 0; i < lengthof(g_pcu); i := i+1) { connect(self:G_PCU[i], g_pcu[i].vc_BSSGP:GLOBAL); + connect(self:RIM_PCU[i], g_pcu[i].vc_BSSGP:RIM); } } @@ -2581,6 +2585,310 @@ f_cleanup(); } +/*********************************************************************** + * RIM (RAN Information Management) + ***********************************************************************/ + +/* Our tests here are rather synthetic, as they don't reflect normal message flows + as they would be observed in a live network. However, for testing gbproxy, this shouldn't + matter as gbproxy is not concerned with anything but the source / destination routing + information */ + +const BssgpCellId cell_id_sgsn := { + ra_id := { + lai := { + mcc_mnc := c_mcc_mnc, + lac := 65534 + }, + rac := 0 + }, + cell_id := 65533 +}; + +/* Send 'tx' on PTP-BVCI from PCU; expect 'rx' on any of our SGSN (RIM can be routed anywhere) */ +friend function f_rim_pcu2sgsn(template (value) PDU_BSSGP tx, template (present) PDU_BSSGP exp_rx, + integer pcu_idx := 0) runs on GlobalTest_CT { + var PDU_BSSGP rx; + timer T := 1.0; + + RIM_PCU[pcu_idx].send(tx); + T.start; + alt { + [] any from RIM_SGSN.receive(exp_rx) { + setverdict(pass); + } + [] any from RIM_SGSN.receive(PDU_BSSGP:?) -> value rx { + setverdict(fail, "Unexpected BSSGP on SGSN side: ", rx); + mtc.stop; + } + [] T.timeout { + setverdict(fail, "Timeout waiting for BSSGP on SGSN side: ", exp_rx); + mtc.stop; + } + } +} + +/* Send 'tx' on PTP-BVCI from SGSN; expect 'rx' on PCU */ +friend function f_rim_sgsn2pcu(template (value) PDU_BSSGP tx, template (present) PDU_BSSGP exp_rx, + integer sgsn_idx := 0, integer pcu_idx := 0) runs on GlobalTest_CT { + var PDU_BSSGP rx; + timer T := 1.0; + + RIM_SGSN[sgsn_idx].send(tx); + T.start; + alt { + [] RIM_PCU[pcu_idx].receive(exp_rx) { + setverdict(pass); + } + [] RIM_PCU[pcu_idx].receive(PDU_BSSGP:?) -> value rx { + setverdict(fail, "Unexpected BSSGP on PCU side: ", rx); + mtc.stop; + } + [] T.timeout { + setverdict(fail, "Timeout waiting for BSSGP on PCU side: ", exp_rx); + mtc.stop; + } + } +} + +/* Send 'tx' on PTP-BVCI from SRC-PCU; expect 'rx' on DST-PCU */ +friend function f_rim_pcu2pcu(template (value) PDU_BSSGP tx, template (present) PDU_BSSGP exp_rx, + integer src_pcu_idx, integer dst_pcu_idx) runs on GlobalTest_CT { + var integer rx_idx; + var PDU_BSSGP rx; + timer T := 1.0; + + RIM_PCU[src_pcu_idx].send(tx); + T.start; + alt { + [] RIM_PCU[dst_pcu_idx].receive(exp_rx) -> value rx{ + setverdict(pass); + } + [] any from RIM_PCU.receive(exp_rx) -> @index value rx_idx { + setverdict(fail, "Received RIM on wrong PCU[", rx_idx ,"], expected on PCU[", dst_pcu_idx, "]"); + } + [] any from RIM_SGSN.receive(exp_rx) { + setverdict(fail, "Received RIM on SGSN but expected it on other PCU"); + } + [] any from RIM_SGSN.receive(PDU_BSSGP:?) -> value rx { + setverdict(fail, "Unexpected BSSGP on SGSN side: ", rx); + mtc.stop; + } + [] T.timeout { + setverdict(fail, "Timeout waiting for BSSGP on SGSN side: ", exp_rx); + mtc.stop; + } + } +} + + +type function rim_fn(integer sgsn_idx, integer pcu_idx, integer bvc_idx) runs on GlobalTest_CT; + +/* helper function for the RIM test cases: Execute 'fn' for each BVC on each PCU for + each SGSN */ +private function f_rim_iterator(rim_fn fn) runs on GlobalTest_CT +{ + var integer sgsn_idx, pcu_idx, bvc_idx; + f_init(); + f_global_init(); + for (sgsn_idx := 0; sgsn_idx < NUM_SGSN; sgsn_idx := sgsn_idx+1) { + for (pcu_idx := 0; pcu_idx < lengthof(g_pcu); pcu_idx := pcu_idx+1) { + for (bvc_idx := 0; bvc_idx < lengthof(g_pcu[pcu_idx].cfg.bvc); bvc_idx := bvc_idx+1) { + log("Testing RIM SGSN[", sgsn_idx, "] <-> PCU[", pcu_idx, "][", bvc_idx, "]"); + fn.apply(sgsn_idx, pcu_idx, bvc_idx); + } + } + } + f_cleanup(); +} + +/* RAN-INFORMATION-REQUEST */ +private function f_TC_rim_info_req(integer sgsn_idx, integer pcu_idx, integer bvc_idx := 0) +runs on GlobalTest_CT +{ + var BssgpCellId cell_id := g_pcu[pcu_idx].cfg.bvc[bvc_idx].cell_id; + var template (value) RIM_Routing_Information ri_pcu; + var template (value) RIM_Routing_Information ri_sgsn; + var template (value) RAN_Information_Request_RIM_Container cont; + + ri_sgsn := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, t_RIM_Routing_Address_cid(cell_id_sgsn)); + ri_pcu := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, t_RIM_Routing_Address_cid(cell_id)); + cont := ts_RAN_Information_Request_RIM_Container(ts_RIM_Application_Identity(RIM_APP_ID_NACC), + ts_RIM_Sequence_Number(0), + ts_RIM_PDU_Indications(false, RIM_PDU_TYPE_STOP)); + f_rim_pcu2sgsn(ts_RAN_INFORMATION_REQUEST(dst := ri_sgsn, src := ri_pcu, cont := cont), + tr_RAN_INFORMATION_REQUEST(dst := ri_sgsn, src := ri_pcu, cont := cont), + pcu_idx); + f_rim_sgsn2pcu(ts_RAN_INFORMATION_REQUEST(dst := ri_pcu, src := ri_sgsn, cont := cont), + tr_RAN_INFORMATION_REQUEST(dst := ri_pcu, src := ri_sgsn, cont := cont), + sgsn_idx, pcu_idx); +} +testcase TC_rim_info_req() runs on GlobalTest_CT +{ + f_rim_iterator(refers(f_TC_rim_info_req)); +} + +/* RAN-INFORMATION */ +private function f_TC_rim_info(integer sgsn_idx, integer pcu_idx, integer bvc_idx := 0) +runs on GlobalTest_CT +{ + var BssgpCellId cell_id := g_pcu[pcu_idx].cfg.bvc[bvc_idx].cell_id; + var template (value) RIM_Routing_Information ri_pcu; + var template (value) RIM_Routing_Information ri_sgsn; + var template (value) RAN_Information_RIM_Container cont; + + ri_sgsn := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, t_RIM_Routing_Address_cid(cell_id_sgsn)); + ri_pcu := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, t_RIM_Routing_Address_cid(cell_id)); + cont := ts_RAN_Information_RIM_Container(ts_RIM_Application_Identity(RIM_APP_ID_NACC), + ts_RIM_Sequence_Number(0), + ts_RIM_PDU_Indications(false, RIM_PDU_TYPE_STOP)); + f_rim_pcu2sgsn(ts_PDU_BSSGP_RAN_INFORMATION(dst := ri_sgsn, src := ri_pcu, cont := cont), + tr_PDU_BSSGP_RAN_INFORMATION(dst := ri_sgsn, src := ri_pcu, cont := cont), + pcu_idx); + f_rim_sgsn2pcu(ts_PDU_BSSGP_RAN_INFORMATION(dst := ri_pcu, src := ri_sgsn, cont := cont), + tr_PDU_BSSGP_RAN_INFORMATION(dst := ri_pcu, src := ri_sgsn, cont := cont), + sgsn_idx, pcu_idx); +} +testcase TC_rim_info() runs on GlobalTest_CT +{ + f_rim_iterator(refers(f_TC_rim_info)); +} + +/* RAN-INFORMATION-ACK */ +private function f_TC_rim_info_ack(integer sgsn_idx, integer pcu_idx, integer bvc_idx := 0) +runs on GlobalTest_CT +{ + var BssgpCellId cell_id := g_pcu[pcu_idx].cfg.bvc[bvc_idx].cell_id; + var template (value) RIM_Routing_Information ri_pcu; + var template (value) RIM_Routing_Information ri_sgsn; + var template (value) RAN_Information_Ack_RIM_Container cont; + + ri_sgsn := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, t_RIM_Routing_Address_cid(cell_id_sgsn)); + ri_pcu := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, t_RIM_Routing_Address_cid(cell_id)); + cont := ts_RAN_Information_Ack_RIM_Container(ts_RIM_Application_Identity(RIM_APP_ID_NACC), + ts_RIM_Sequence_Number(0)); + f_rim_pcu2sgsn(ts_PDU_BSSGP_RAN_INFORMATION_ACK(dst := ri_sgsn, src := ri_pcu, cont := cont), + tr_PDU_BSSGP_RAN_INFORMATION_ACK(dst := ri_sgsn, src := ri_pcu, cont := cont), + pcu_idx); + f_rim_sgsn2pcu(ts_PDU_BSSGP_RAN_INFORMATION_ACK(dst := ri_pcu, src := ri_sgsn, cont := cont), + tr_PDU_BSSGP_RAN_INFORMATION_ACK(dst := ri_pcu, src := ri_sgsn, cont := cont), + sgsn_idx, pcu_idx); +} +testcase TC_rim_info_ack() runs on GlobalTest_CT +{ + f_rim_iterator(refers(f_TC_rim_info_ack)); +} + +/* RAN-INFORMATION-ERROR */ +private function f_TC_rim_info_error(integer sgsn_idx, integer pcu_idx, integer bvc_idx := 0) +runs on GlobalTest_CT +{ + var BssgpCellId cell_id := g_pcu[pcu_idx].cfg.bvc[bvc_idx].cell_id; + var template (value) RIM_Routing_Information ri_pcu; + var template (value) RIM_Routing_Information ri_sgsn; + var template (value) RAN_Information_Error_RIM_Container cont; + + ri_sgsn := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, t_RIM_Routing_Address_cid(cell_id_sgsn)); + ri_pcu := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, t_RIM_Routing_Address_cid(cell_id)); + cont := ts_RAN_Information_Error_RIM_Container(ts_RIM_Application_Identity(RIM_APP_ID_NACC), + ts_BSSGP_CAUSE(BSSGP_CAUSE_EQUIMENT_FAILURE), + omit, valueof(t_BVC_UNBLOCK(23))); + f_rim_pcu2sgsn(ts_PDU_BSSGP_RAN_INFORMATION_ERROR(dst := ri_sgsn, src := ri_pcu, cont := cont), + tr_PDU_BSSGP_RAN_INFORMATION_ERROR(dst := ri_sgsn, src := ri_pcu, cont := cont), + pcu_idx); + f_rim_sgsn2pcu(ts_PDU_BSSGP_RAN_INFORMATION_ERROR(dst := ri_pcu, src := ri_sgsn, cont := cont), + tr_PDU_BSSGP_RAN_INFORMATION_ERROR(dst := ri_pcu, src := ri_sgsn, cont := cont), + sgsn_idx, pcu_idx); +} +testcase TC_rim_info_error() runs on GlobalTest_CT +{ + f_rim_iterator(refers(f_TC_rim_info_error)); +} + +/* RAN-INFORMATION-APPLICATION-ERROR */ +private function f_TC_rim_info_app_error(integer sgsn_idx, integer pcu_idx, integer bvc_idx := 0) +runs on GlobalTest_CT +{ + var BssgpCellId cell_id := g_pcu[pcu_idx].cfg.bvc[bvc_idx].cell_id; + var template (value) RIM_Routing_Information ri_pcu; + var template (value) RIM_Routing_Information ri_sgsn; + var template (value) Application_Error_Container app_cont; + var template (value) RAN_Information_Application_Error_RIM_Container cont; + + ri_sgsn := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, t_RIM_Routing_Address_cid(cell_id_sgsn)); + ri_pcu := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, t_RIM_Routing_Address_cid(cell_id)); + app_cont := tsu_Application_Error_Container_NACC(cell_id, 23, + tsu_Application_Container_IE_NACC_req(cell_id)); + cont := ts_RAN_Information_Application_Error_RIM_Container(ts_RIM_Application_Identity(RIM_APP_ID_NACC), + ts_RIM_Sequence_Number(0), + ts_RIM_PDU_Indications(false, RIM_PDU_TYPE_STOP), + omit, app_cont); + f_rim_pcu2sgsn(ts_PDU_BSSGP_RAN_INFORMATION_APPLICATION_ERROR(dst := ri_sgsn, src := ri_pcu, cont := cont), + tr_PDU_BSSGP_RAN_INFORMATION_APPLICATION_ERROR(dst := ri_sgsn, src := ri_pcu, cont := cont), + pcu_idx); + f_rim_sgsn2pcu(ts_PDU_BSSGP_RAN_INFORMATION_APPLICATION_ERROR(dst := ri_pcu, src := ri_sgsn, cont := cont), + tr_PDU_BSSGP_RAN_INFORMATION_APPLICATION_ERROR(dst := ri_pcu, src := ri_sgsn, cont := cont), + sgsn_idx, pcu_idx); +} +testcase TC_rim_info_app_error() runs on GlobalTest_CT +{ + f_rim_iterator(refers(f_TC_rim_info_app_error)); +} + +/* RAN-INFORMATION routing directly between PCUs, without SGSN involvement */ +private function f_TC_rim_info_pcu2pcu(integer src_pcu_idx, integer src_bvc_idx, + integer dst_pcu_idx, integer dst_bvc_idx) +runs on GlobalTest_CT +{ + var BssgpCellId cell_id_src := g_pcu[src_pcu_idx].cfg.bvc[src_bvc_idx].cell_id; + var BssgpCellId cell_id_dst := g_pcu[dst_pcu_idx].cfg.bvc[dst_bvc_idx].cell_id; + var template (value) RIM_Routing_Information ri_pcu_src; + var template (value) RIM_Routing_Information ri_pcu_dst; + var template (value) RAN_Information_RIM_Container cont; + + log("Testing RIM PCU2PCU from PCU[", src_pcu_idx, "][", src_bvc_idx, "] to PCU[", + dst_pcu_idx, "][", dst_bvc_idx, "]"); + + ri_pcu_src := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, + t_RIM_Routing_Address_cid(cell_id_src)); + ri_pcu_dst := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, + t_RIM_Routing_Address_cid(cell_id_dst)); + cont := ts_RAN_Information_RIM_Container(ts_RIM_Application_Identity(RIM_APP_ID_NACC), + ts_RIM_Sequence_Number(0), + ts_RIM_PDU_Indications(false, RIM_PDU_TYPE_STOP)); + f_rim_pcu2pcu(ts_PDU_BSSGP_RAN_INFORMATION(dst := ri_pcu_dst, src := ri_pcu_src, cont := cont), + tr_PDU_BSSGP_RAN_INFORMATION(dst := ri_pcu_dst, src := ri_pcu_src, cont := cont), + src_pcu_idx, dst_pcu_idx); + f_rim_sgsn2pcu(ts_PDU_BSSGP_RAN_INFORMATION(dst := ri_pcu_src, src := ri_pcu_dst, cont := cont), + tr_PDU_BSSGP_RAN_INFORMATION(dst := ri_pcu_src, src := ri_pcu_dst, cont := cont), + dst_pcu_idx, src_pcu_idx); +} +testcase TC_rim_info_pcu2pcu() runs on GlobalTest_CT +{ + var integer src_pcu_idx, dst_pcu_idx; + var integer src_bvc_idx, dst_bvc_idx; + f_init(); + f_global_init(); + + for (src_pcu_idx := 0; src_pcu_idx < lengthof(g_pcu); src_pcu_idx := src_pcu_idx + 1) { + for (src_bvc_idx := 0; src_bvc_idx < lengthof(g_pcu[src_pcu_idx].cfg.bvc); src_bvc_idx := src_bvc_idx + 1) { + for (dst_pcu_idx := 0; dst_pcu_idx < lengthof(g_pcu); dst_pcu_idx := dst_pcu_idx + 1) { + if (dst_pcu_idx == src_pcu_idx) { + continue; + } + + for (dst_bvc_idx := 0; dst_bvc_idx < lengthof(g_pcu[dst_pcu_idx].cfg.bvc); +dst_bvc_idx := dst_bvc_idx + 1) { + f_TC_rim_info_pcu2pcu(src_pcu_idx, src_bvc_idx, dst_pcu_idx, dst_bvc_idx); + } + } + } + } + + f_cleanup(); +} + + control { execute( TC_BVC_bringup() ); execute( TC_ul_unitdata() ); @@ -2648,6 +2956,14 @@ execute( TC_paging_cs_sig_bvci() ); execute( TC_paging_cs_sig_bvci_unknown() ); + /* RAN Information Management */ + execute( TC_rim_info_req() ); + execute( TC_rim_info() ); + execute( TC_rim_info_ack() ); + execute( TC_rim_info_error() ); + execute( TC_rim_info_app_error() ); + execute( TC_rim_info_pcu2pcu() ); + execute( TC_flush_ll() ); execute( TC_fc_bvc() ); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22246 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I0fec6fd4a5a6559f596b9006ae437323da6f05d7 Gerrit-Change-Number: 22246 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 20:59:09 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 16 Jan 2021 20:59:09 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Add suite of RIM tests In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22246 to look at the new patch set (#2). Change subject: gbproxy: Add suite of RIM tests ...................................................................... gbproxy: Add suite of RIM tests They all fail with current gbproxy master as it doesn't yet implement routing of RIM messages. Related: OS#4896 Change-Id: I0fec6fd4a5a6559f596b9006ae437323da6f05d7 --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 316 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/46/22246/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22246 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I0fec6fd4a5a6559f596b9006ae437323da6f05d7 Gerrit-Change-Number: 22246 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 21:04:25 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 16 Jan 2021 21:04:25 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Add suite of RIM tests In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22246 to look at the new patch set (#3). Change subject: gbproxy: Add suite of RIM tests ...................................................................... gbproxy: Add suite of RIM tests They all fail with current gbproxy master as it doesn't yet implement routing of RIM messages. Related: OS#4896 Change-Id: I0fec6fd4a5a6559f596b9006ae437323da6f05d7 --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 327 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/46/22246/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22246 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I0fec6fd4a5a6559f596b9006ae437323da6f05d7 Gerrit-Change-Number: 22246 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 21:47:44 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 16 Jan 2021 21:47:44 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproy: Configure a Second SGSN In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21698 ) Change subject: gbproy: Configure a Second SGSN ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21698/3/gbproxy/GBProxy_Tests.ttcn File gbproxy/GBProxy_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21698/3/gbproxy/GBProxy_Tests.ttcn at 525 PS3, Line 525: * unfortunately doesn't work as we want to access the local variable bvci_unblocked. */ > cannot you pass it as an "out" variable to it? No, I think I tried that at first. The problem is that altsteps can remain active even when you exit the function on whose stack the local variable is allocated. So TITAN (or maybe even the TTCN3 spec) mandates that altsteps always only reference component variables, abut no local variables from function stacks. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21698 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ib70f7c1a29f089957f882df0e9b05ee526224611 Gerrit-Change-Number: 21698 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 16 Jan 2021 21:47:44 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 21:52:17 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 16 Jan 2021 21:52:17 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproy: Configure a Second SGSN In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21698 ) Change subject: gbproy: Configure a Second SGSN ...................................................................... Patch Set 3: (2 comments) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21698/3//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21698/3//COMMIT_MSG at 7 PS3, Line 7: gbproy: Configure a Second SGSN > If you touch it anyway: gbproxy Done https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21698/3/gbproxy/osmo-gbproxy.cfg File gbproxy/osmo-gbproxy.cfg: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21698/3/gbproxy/osmo-gbproxy.cfg at 10 PS3, Line 10: sgsn nsei 102 > You could also give both a name here, otherwise I'll add a commit later. [?] Done -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21698 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ib70f7c1a29f089957f882df0e9b05ee526224611 Gerrit-Change-Number: 21698 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 16 Jan 2021 21:52:17 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: daniel Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 21:53:48 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 16 Jan 2021 21:53:48 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Execute each ConnHdlr test on each NRI of each SGSN configured In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22233 ) Change subject: gbproxy: Execute each ConnHdlr test on each NRI of each SGSN configured ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22233/2/gbproxy/GBProxy_Tests.ttcn File gbproxy/GBProxy_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22233/2/gbproxy/GBProxy_Tests.ttcn at 643 PS2, Line 643: /* Idea: we could also run them in parallel ? */ > Apart from time savings testing multiple connections to different SGSNs in parallel seems desirable. yes, we can always change that later. We can simply create a "record of" the component references, start all of them, and then collect the results. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22233 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ie22d3fd786ff8fefe919ecc3a96f974675057e29 Gerrit-Change-Number: 22233 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 16 Jan 2021 21:53:48 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: daniel Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 21:56:11 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 16 Jan 2021 21:56:11 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Osmocom_Gb_Types: Add templates for various BSSGP PDU types In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22242 ) Change subject: Osmocom_Gb_Types: Add templates for various BSSGP PDU types ...................................................................... Patch Set 2: (2 comments) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22242/2/library/Osmocom_Gb_Types.ttcn File library/Osmocom_Gb_Types.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22242/2/library/Osmocom_Gb_Types.ttcn at 2097 PS2, Line 2097: mncDigit3 := mccmnc[5], > Move this line to the end PLMN_Identity is a 'record', and I don't think you are permitted to re-order the initialization of fields compared to the record definition. https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22242/2/library/Osmocom_Gb_Types.ttcn at 2110 PS2, Line 2110: mncDigit3 := mccmnc[5], > Same PLMN_Identity is a 'record', and I don't think you are permitted to re-order the initialization of fields compared to the record definition. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22242 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I89044bf8e736cc1997dff1a550b3e194f8ac1b9d Gerrit-Change-Number: 22242 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Sat, 16 Jan 2021 21:56:11 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: daniel Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 21:56:31 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 16 Jan 2021 21:56:31 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Configure a Second SGSN In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, daniel, lynxis lazus, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21698 to look at the new patch set (#4). Change subject: gbproxy: Configure a Second SGSN ...................................................................... gbproxy: Configure a Second SGSN This adds the required code changes and minimal configuration to both osmo-gbproxy.cfg and GBProxy_Tests to have osmo-gbproxy connect to two SGSNs. No NRI mappings are configured and hence the second SGSN isn't really used for anything except for bringing the NS-VCs and BVCs up. Related: OS#4472, SYS#5002 Change-Id: Ib70f7c1a29f089957f882df0e9b05ee526224611 --- M gbproxy/GBProxy_Tests.cfg M gbproxy/GBProxy_Tests.ttcn M gbproxy/osmo-gbproxy.cfg M gbproxy/osmo-gbproxy.fr.cfg 4 files changed, 83 insertions(+), 21 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/98/21698/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21698 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ib70f7c1a29f089957f882df0e9b05ee526224611 Gerrit-Change-Number: 21698 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 21:56:31 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 16 Jan 2021 21:56:31 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Start to allocate NRIs to SGSNs In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, daniel, lynxis lazus, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22227 to look at the new patch set (#3). Change subject: gbproxy: Start to allocate NRIs to SGSNs ...................................................................... gbproxy: Start to allocate NRIs to SGSNs We change the osmo-gbproxy.cfg to use NRI 3 for SGSN-0 (NSEI 101) and NRI 4 for SGSN-1 (NSEI 102). We also add the capability to GBProxy_Tests to allocate P-TMSI with a specific NRI and default to the first NRI of SGSN-0 so all tests written still for a single-SGSN-non-pool scenario pass without any modification. Related: OS#4472, SYS#5002 Change-Id: I15f78dca5ac31a1c71f086d3e92a70e900eae250 --- M gbproxy/GBProxy_Tests.ttcn M gbproxy/osmo-gbproxy.cfg M gbproxy/osmo-gbproxy.fr.cfg 3 files changed, 16 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/27/22227/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22227 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I15f78dca5ac31a1c71f086d3e92a70e900eae250 Gerrit-Change-Number: 22227 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 21:56:31 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 16 Jan 2021 21:56:31 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Execute TC_load_sharing_dl() for each SGSN in pool In-Reply-To: References: Message-ID: Hello Jenkins Builder, daniel, lynxis lazus, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22236 to look at the new patch set (#2). Change subject: gbproxy: Execute TC_load_sharing_dl() for each SGSN in pool ...................................................................... gbproxy: Execute TC_load_sharing_dl() for each SGSN in pool Change-Id: I4ad822d3bbf5eb6181f6811c3b2267a50bb533a4 Related: OS#4951 --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 14 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/36/22236/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22236 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I4ad822d3bbf5eb6181f6811c3b2267a50bb533a4 Gerrit-Change-Number: 22236 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 21:56:42 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 16 Jan 2021 21:56:42 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Configure a Second SGSN In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21698 ) Change subject: gbproxy: Configure a Second SGSN ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21698 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ib70f7c1a29f089957f882df0e9b05ee526224611 Gerrit-Change-Number: 21698 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 16 Jan 2021 21:56:42 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 21:58:26 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 16 Jan 2021 21:58:26 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Move away from random TLLI In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22226 ) Change subject: gbproxy: Move away from random TLLI ...................................................................... Patch Set 2: Code-Review+2 > Patch Set 1: > > What about using this in f_gen_tlli() from GSM_Types.ttcn? Then it's also used in pcu-tests. It would make GSM_Types depend on GSM_Gb_Types, which is the wrong way around. Also, I tried not to change existing code outside of the gbproxy tests suite unless neccessarry. I'll see if a separate patch makes sense. That function should probably never have been in GSM_Types. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22226 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ic1eaa1d298fe998ca97432769953bfc5a5333ae4 Gerrit-Change-Number: 22226 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-CC: pespin Gerrit-Comment-Date: Sat, 16 Jan 2021 21:58:26 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 21:58:40 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 16 Jan 2021 21:58:40 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Start to allocate NRIs to SGSNs In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22227 ) Change subject: gbproxy: Start to allocate NRIs to SGSNs ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22227 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I15f78dca5ac31a1c71f086d3e92a70e900eae250 Gerrit-Change-Number: 22227 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 16 Jan 2021 21:58:40 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 21:58:57 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 16 Jan 2021 21:58:57 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Execute each ConnHdlr test on each NRI of each SGSN configured In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22233 ) Change subject: gbproxy: Execute each ConnHdlr test on each NRI of each SGSN configured ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22233 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ie22d3fd786ff8fefe919ecc3a96f974675057e29 Gerrit-Change-Number: 22233 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 16 Jan 2021 21:58:57 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 21:59:06 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 16 Jan 2021 21:59:06 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Execute TC_load_sharing_dl() for each SGSN in pool In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22236 ) Change subject: gbproxy: Execute TC_load_sharing_dl() for each SGSN in pool ...................................................................... Patch Set 2: Code-Review+2 (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22236/1//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22236/1//COMMIT_MSG at 7 PS1, Line 7: gpbroxy: Execute TC_load_sharing_dl() for each SGSNH in pool > SGSN Done -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22236 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I4ad822d3bbf5eb6181f6811c3b2267a50bb533a4 Gerrit-Change-Number: 22236 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Sat, 16 Jan 2021 21:59:06 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Comment-In-Reply-To: daniel Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 22:00:23 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 16 Jan 2021 22:00:23 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Unregister IMSI from BSSGP before termination of ConnHdlr In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22238 ) Change subject: gbproxy: Unregister IMSI from BSSGP before termination of ConnHdlr ...................................................................... Patch Set 2: > Patch Set 1: Code-Review+1 > > Is this one source of the DTEs we sometimes encounter? I don't think so, as it would only be visible if we start multiple components in one testcase (which we probably usually don't so far), and then we'd also have to receive a "broadcast" type PDU after one of the components/handlers has died. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22238 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Iee54e93e6ae1b3e40f502d5ba2499e9eb03bf203 Gerrit-Change-Number: 22238 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Sat, 16 Jan 2021 22:00:23 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 22:00:32 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 16 Jan 2021 22:00:32 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Unregister IMSI from BSSGP before termination of ConnHdlr In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22238 ) Change subject: gbproxy: Unregister IMSI from BSSGP before termination of ConnHdlr ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22238 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Iee54e93e6ae1b3e40f502d5ba2499e9eb03bf203 Gerrit-Change-Number: 22238 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Sat, 16 Jan 2021 22:00:32 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 22:00:53 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 16 Jan 2021 22:00:53 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Configure a Second SGSN In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21698 ) Change subject: gbproxy: Configure a Second SGSN ...................................................................... gbproxy: Configure a Second SGSN This adds the required code changes and minimal configuration to both osmo-gbproxy.cfg and GBProxy_Tests to have osmo-gbproxy connect to two SGSNs. No NRI mappings are configured and hence the second SGSN isn't really used for anything except for bringing the NS-VCs and BVCs up. Related: OS#4472, SYS#5002 Change-Id: Ib70f7c1a29f089957f882df0e9b05ee526224611 --- M gbproxy/GBProxy_Tests.cfg M gbproxy/GBProxy_Tests.ttcn M gbproxy/osmo-gbproxy.cfg M gbproxy/osmo-gbproxy.fr.cfg 4 files changed, 83 insertions(+), 21 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/gbproxy/GBProxy_Tests.cfg b/gbproxy/GBProxy_Tests.cfg index 0e442d1..e1e1eff 100644 --- a/gbproxy/GBProxy_Tests.cfg +++ b/gbproxy/GBProxy_Tests.cfg @@ -15,7 +15,10 @@ GBProxy_Tests.mp_nsconfig_sgsn := { { handle_sns := true + }, { + handle_sns := true } + } GBProxy_Tests.mp_nsconfig_pcu := { diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index 62daaf4..44b2ac9 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -66,6 +66,24 @@ nsvci := 101 } } + }, { + nsei := 102, + role_sgsn := true, + handle_sns := false, + nsvc := { + { + provider := { + ip := { + address_family := AF_INET, + local_udp_port := 8888, + local_ip := "127.0.0.1", + remote_udp_port := 23000, + remote_ip := "127.0.0.1" + } + }, + nsvci := 102 + } + } } }; /* BSS NSEI start at 2000 + x @@ -263,7 +281,7 @@ type record of NSConfiguration NSConfigurations; type record of BssgpCellId BssgpCellIds; -const integer NUM_SGSN := 1; +const integer NUM_SGSN := 2; type component test_CT { var GbInstances g_pcu; @@ -370,11 +388,14 @@ gb.vc_BSSGP.start(BssgpStart(gb.cfg, bssgp_id)); for (var integer i := 0; i < lengthof(gb.cfg.bvc); i := i + 1) { + /* obtain the component reference of the BSSGP_BVC_CT for each PTP BVC */ connect(self:PROC, gb.vc_BSSGP:PROC); gb.vc_BSSGP_BVC[i] := f_bssgp_get_bvci_ct(gb.cfg.bvc[i].bvci, PROC); disconnect(self:PROC, gb.vc_BSSGP:PROC); + /* connect all of the per-BVC MGMT ports to our PCU_MGMT port (1:N) */ connect(self:PCU_MGMT, gb.vc_BSSGP_BVC[i]:MGMT); } + /* connect all of the BSSGP/NSE global MGMT port to our PCU_MGMT port (1:N) */ connect(self:PCU_MGMT, gb.vc_BSSGP:MGMT); } @@ -390,11 +411,14 @@ gb.vc_BSSGP.start(BssgpStart(gb.cfg, bssgp_id)); for (var integer i := 0; i < lengthof(gb.cfg.bvc); i := i + 1) { + /* obtain the component reference of the BSSGP_BVC_CT for each PTP BVC */ connect(self:PROC, gb.vc_BSSGP:PROC); gb.vc_BSSGP_BVC[i] := f_bssgp_get_bvci_ct(gb.cfg.bvc[i].bvci, PROC); disconnect(self:PROC, gb.vc_BSSGP:PROC); + /* connect all of the per-BVC MGMT ports to our SGSN_MGMT port (1:N) */ connect(self:SGSN_MGMT, gb.vc_BSSGP_BVC[i]:MGMT); } + /* connect all of the BSSGP/NSE global MGMT port to our SGSN_MGMT port (1:N) */ connect(self:SGSN_MGMT, gb.vc_BSSGP:MGMT); } @@ -425,8 +449,25 @@ return false; } +private type record of ro_integer roro_integer; + +/* count the number of unblocked BVCI for each SGSN NSE */ +private altstep as_count_unblocked4nse(integer sgsn_idx, inout roro_integer bvci_unblocked) +runs on test_CT { + var BssgpStatusIndication bsi; + [] SGSN_MGMT.receive(BssgpStatusIndication:{g_sgsn[sgsn_idx].cfg.nsei, ?, BVC_S_UNBLOCKED}) -> value bsi { + bvci_unblocked[sgsn_idx] := bvci_unblocked[sgsn_idx] & { bsi.bvci }; + /* 'repeat' until sufficient number of BVC-rest has been received on all SGSNs */ + for (var integer i := 0; i < lengthof(bvci_unblocked); i := i+1) { + if (lengthof(bvci_unblocked[i]) < lengthof(g_sgsn[i].cfg.bvc)) { + repeat; + } + } + } +} + function f_init(float t_guard := 30.0) runs on test_CT { - var ro_integer bvci_unblocked := {}; + var roro_integer bvci_unblocked; var BssgpStatusIndication bsi; var integer i; @@ -438,17 +479,21 @@ g_Tguard.start(t_guard); activate(as_gTguard(g_Tguard)); - g_sgsn[0].cfg := { - nsei := mp_nsconfig_sgsn[0].nsei, - sgsn_role := true, - bvc := { } - } + var BssgpBvcConfigs bvcs := { }; for (i := 0; i < lengthof(mp_gbconfigs); i := i+1) { g_pcu[i].cfg := mp_gbconfigs[i]; /* make sure all have a proper crate_cb, which cannot be specified in config file */ f_fix_create_cb(g_pcu[i].cfg); /* concatenate all the PCU-side BVCs for the SGSN side */ - g_sgsn[0].cfg.bvc := g_sgsn[0].cfg.bvc & g_pcu[i].cfg.bvc; + bvcs := bvcs & g_pcu[i].cfg.bvc; + } + + for (i := 0; i < lengthof(mp_nsconfig_sgsn); i := i+1) { + g_sgsn[i].cfg := { + nsei := mp_nsconfig_sgsn[i].nsei, + sgsn_role := true, + bvc := bvcs + } } f_init_vty(); @@ -468,16 +513,18 @@ f_init_gb_pcu(g_pcu[i], "GbProxy_Test", i); } + for (i := 0; i < lengthof(mp_nsconfig_sgsn); i := i+1) { + bvci_unblocked[i] := {}; + } + /* wait until all BVC are unblocked on both sides */ timer T := 15.0; T.start; alt { - [] SGSN_MGMT.receive(BssgpStatusIndication:{*, ?, BVC_S_UNBLOCKED}) -> value bsi { - bvci_unblocked := bvci_unblocked & { bsi.bvci }; - if (lengthof(bvci_unblocked) != lengthof(g_sgsn[0].cfg.bvc)) { - repeat; - } - } + /* TODO: We need to add more lines if NUM_SGSN increases. Activating default altsteps + * unfortunately doesn't work as we want to access the local variable bvci_unblocked. */ + [] as_count_unblocked4nse(0, bvci_unblocked); + [lengthof(g_sgsn) > 1] as_count_unblocked4nse(1, bvci_unblocked); [] SGSN_MGMT.receive(BssgpStatusIndication:{*, ?, ?}) { repeat; } @@ -505,17 +552,19 @@ [] T.timeout { setverdict(fail, "Timeout waiting for unblock of all BVCs on SGSN side; ", - "unblocked so far: ", bvci_unblocked, "expected: ", g_sgsn[0].cfg.bvc); + "unblocked so far: ", bvci_unblocked); /* don't stop here but print below analysis */ } } - /* iterate over list and check all BVCI */ - for (i := 0; i < lengthof(g_sgsn[0].cfg.bvc); i := i+1) { - var BssgpBvci bvci := g_sgsn[0].cfg.bvc[i].bvci; - if (not ro_integer_contains(bvci_unblocked, bvci)) { - setverdict(fail, "BVCI=", bvci, " was not unblocked during start-up"); - mtc.stop; + for (i := 0; i < lengthof(mp_nsconfig_sgsn); i := i+1) { + /* iterate over list and check all BVCI */ + for (var integer j := 0; j < lengthof(g_sgsn[i].cfg.bvc); j := j+1) { + var BssgpBvci bvci := g_sgsn[i].cfg.bvc[j].bvci; + if (not ro_integer_contains(bvci_unblocked[i], bvci)) { + setverdict(fail, "SGSN ", i, " BVCI=", bvci, " was not unblocked during start-up"); + mtc.stop; + } } } diff --git a/gbproxy/osmo-gbproxy.cfg b/gbproxy/osmo-gbproxy.cfg index 5ce0dfc..1c6caa9 100644 --- a/gbproxy/osmo-gbproxy.cfg +++ b/gbproxy/osmo-gbproxy.cfg @@ -7,12 +7,17 @@ ! gbproxy sgsn nsei 101 + name first +sgsn nsei 102 + name second ns bind udp local listen 127.0.0.1 23000 accept-ipaccess nse 101 ip-sns 127.0.0.1 7777 + nse 102 + ip-sns 127.0.0.1 8888 timer tns-block 3 timer tns-block-retries 3 timer tns-reset 3 diff --git a/gbproxy/osmo-gbproxy.fr.cfg b/gbproxy/osmo-gbproxy.fr.cfg index 0898acc..e350526 100644 --- a/gbproxy/osmo-gbproxy.fr.cfg +++ b/gbproxy/osmo-gbproxy.fr.cfg @@ -35,6 +35,8 @@ timer tns-alive-retries 10 nse 101 ip-sns 127.0.0.1 7777 + nse 102 + ip-sns 127.0.0.1 8888 nse 2001 nsvc fr hdlcnet1 dlci 16 nsvci 1 nsvc fr hdlcnet2 dlci 17 nsvci 2 @@ -48,3 +50,6 @@ nsvc fr hdlcnet8 dlci 23 nsvci 8 gbproxy sgsn nsei 101 + name first +sgsn nsei 102 + name second -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21698 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ib70f7c1a29f089957f882df0e9b05ee526224611 Gerrit-Change-Number: 21698 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 22:00:53 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 16 Jan 2021 22:00:53 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Add f_gen_tmsi() to generate a TMSI similar to f_gen_{imsi, imei}() In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22225 ) Change subject: Add f_gen_tmsi() to generate a TMSI similar to f_gen_{imsi,imei}() ...................................................................... Add f_gen_tmsi() to generate a TMSI similar to f_gen_{imsi,imei}() ... and start to use it from BSC_Tests.ttcn Related: OS#4472, SYS#5002 Change-Id: Iacba62bb740374c28cbcf50d54ba1814c5b4e1c2 --- M bsc/BSC_Tests.ttcn M library/Osmocom_Types.ttcn 2 files changed, 17 insertions(+), 8 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve daniel: Looks good to me, approved diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index 2c02e36..52b4906 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -6383,14 +6383,8 @@ * MSC Pooling ***********************************************************************/ -function f_tmsi_nri(integer nri_v, octetstring base_tmsi := '42000023'O, integer nri_bitlen := 10) return octetstring -{ - return int2oct( oct2int(base_tmsi) + bit2int( (int2bit(nri_v, 32) << ( 24 - nri_bitlen)) ), - 4); -} - template MobileIdentityLV ts_MI_TMSI_NRI_LV(integer nri_v, integer nri_bitlen := 10) := - ts_MI_TMSI_LV(tmsi := f_tmsi_nri(nri_v, nri_bitlen := nri_bitlen)); + ts_MI_TMSI_LV(tmsi := f_gen_tmsi(suffix := 0, nri_v := nri_v, nri_bitlen := nri_bitlen)); private function f_expect_lchan_rel(RSL_DCHAN_PT rsl) runs on MSC_ConnHdlr { interleave { @@ -6949,7 +6943,7 @@ var RSL_ChanNeeded rsl_chneed := RSL_CHANNEED_SDCCH; var template BSSMAP_IE_ChannelNeeded bssmap_chneed := ts_BSSMAP_IE_ChanNeeded(int2bit(enum2int(valueof(rsl_chneed)),2)); var integer nri_v := 300; /* <-- second MSC's NRI */ - var octetstring tmsi := f_tmsi_nri(nri_v); + var octetstring tmsi := f_gen_tmsi(suffix := 0, nri_v := nri_v); var BSSAP_N_UNITDATA_req paging; f_MscConnHdlr_init(g_pars.media_nr, "127.0.0.2", "127.0.0.3", FR_AMR); diff --git a/library/Osmocom_Types.ttcn b/library/Osmocom_Types.ttcn index 862509b..1cba168 100644 --- a/library/Osmocom_Types.ttcn +++ b/library/Osmocom_Types.ttcn @@ -267,6 +267,21 @@ return f_concat_pad(12, '49123'H, suffix); } +function f_gen_tmsi(integer suffix, integer nri_v := 0, integer nri_bitlen := 10, + OCT4 base_tmsi := '42000023'O) return OCT4 { + var integer tmsi_int := oct2int(base_tmsi) + suffix; + var bitstring base_tmsi_bits := int2bit(tmsi_int, 32); + var bitstring prefix_bits := substr(base_tmsi_bits, 0, 8); + var bitstring suffix_bits := substr(base_tmsi_bits, 8 + nri_bitlen, 24 - nri_bitlen); + var bitstring total_bits := prefix_bits & int2bit(nri_v, nri_bitlen) & suffix_bits; + var OCT4 tmsi := bit2oct(total_bits); + + log("f_gen_tmsi(suffix:=", suffix, ", nri_v:=", nri_v, ", nri_bitlen:=", nri_bitlen, + ", base_tmsi:=", base_tmsi, ") -> prefix:=", prefix_bits, ", suffix:=", suffix_bits, + "total_bits:=", total_bits, " == ", tmsi); + + return tmsi; +} } with { encode "RAW"; variant "FIELDORDER(msb)" } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22225 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Iacba62bb740374c28cbcf50d54ba1814c5b4e1c2 Gerrit-Change-Number: 22225 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 22:00:54 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 16 Jan 2021 22:00:54 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Move away from random TLLI In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22226 ) Change subject: gbproxy: Move away from random TLLI ...................................................................... gbproxy: Move away from random TLLI We used to generate a random TLLI for each ConnHldr. Instead, use a deterministic function to generate the P-TMSI (just like we do for the IMSI) and derive a local TLLI from that P-TMSI. Related: OS#4472, SYS#5002 Change-Id: Ic1eaa1d298fe998ca97432769953bfc5a5333ae4 --- M gbproxy/GBProxy_Tests.ttcn M library/Osmocom_Gb_Types.ttcn 2 files changed, 22 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved daniel: Looks good to me, but someone else must approve diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index 44b2ac9..6daad53 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -597,14 +597,15 @@ float t_guard := 30.0) runs on test_CT return BSSGP_ConnHdlr { var BSSGP_ConnHdlr vc_conn; + var OCT4 p_tmsi := f_gen_tmsi(imsi_suffix); var BSSGP_ConnHdlrPars pars := { imei := f_gen_imei(imsi_suffix), imsi := f_gen_imsi(imsi_suffix), msisdn := f_gen_msisdn(imsi_suffix), - p_tmsi := omit, + p_tmsi := p_tmsi, p_tmsi_sig := omit, - tlli := f_gprs_tlli_random(), + tlli := f_gprs_tlli_from_tmsi(p_tmsi, TLLI_LOCAL), tlli_old := omit, ra := omit, pcu := g_pcu, diff --git a/library/Osmocom_Gb_Types.ttcn b/library/Osmocom_Gb_Types.ttcn index 518d619..8ca0cd5 100644 --- a/library/Osmocom_Gb_Types.ttcn +++ b/library/Osmocom_Gb_Types.ttcn @@ -3252,6 +3252,25 @@ } } + /* build a TLLI of specified type from the given (P)TMSI */ + function f_gprs_tlli_from_tmsi(OCT4 tmsi, TlliType tlli_type) return OCT4 { + var bitstring tmsi_bits := oct2bit(tmsi); + var bitstring prefix; + select (tlli_type) { + case (TLLI_LOCAL) { prefix := '11'B } + case (TLLI_FOREIGN) { prefix := '01111'B } + case (TLLI_RANDOM) { prefix := '0110'B } + case (TLLI_RESERVED) { prefix := '010'B } + case (TLLI_G_RNTI) { prefix := '0000'B } + case (TLLI_RAND_G_RNTI) { prefix := '0001'B } + case else { + setverdict(fail, "Unknonw TLLI Type ", tlli_type); + mtc.stop; + } + } + return bit2oct(prefix & substr(tmsi_bits, lengthof(prefix), 32-lengthof(prefix))); + } + function f_gprs_tlli_random() return OCT4 { var OCT4 tlli := f_rnd_octstring(4); return tlli or4b 'c0000000'O; -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22226 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ic1eaa1d298fe998ca97432769953bfc5a5333ae4 Gerrit-Change-Number: 22226 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-CC: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 22:00:55 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 16 Jan 2021 22:00:55 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Fix TC_fc_bvc() with more than one SGSN In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22228 ) Change subject: gbproxy: Fix TC_fc_bvc() with more than one SGSN ...................................................................... gbproxy: Fix TC_fc_bvc() with more than one SGSN The altstep was missing the "repeat" at the end, causing it to abort early and reporting a test failure which actually didn't exist. Change-Id: I0ec9aa06fa9ec25b2047c1e795e28eeefd6bc7d2 --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 1 insertion(+), 0 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve daniel: Looks good to me, approved diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index 6daad53..4857515 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -2430,6 +2430,7 @@ if (ispresent(tx_reply)) { G_SGSN[sgsn_idx].send(tx_reply); } + repeat; } } /* Send FC-BVC from simulated PCU; expect each SGSN to receive it; expect PCU to receive ACK */ -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22228 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I0ec9aa06fa9ec25b2047c1e795e28eeefd6bc7d2 Gerrit-Change-Number: 22228 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 22:00:56 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 16 Jan 2021 22:00:56 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Start to allocate NRIs to SGSNs In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22227 ) Change subject: gbproxy: Start to allocate NRIs to SGSNs ...................................................................... gbproxy: Start to allocate NRIs to SGSNs We change the osmo-gbproxy.cfg to use NRI 3 for SGSN-0 (NSEI 101) and NRI 4 for SGSN-1 (NSEI 102). We also add the capability to GBProxy_Tests to allocate P-TMSI with a specific NRI and default to the first NRI of SGSN-0 so all tests written still for a single-SGSN-non-pool scenario pass without any modification. Related: OS#4472, SYS#5002 Change-Id: I15f78dca5ac31a1c71f086d3e92a70e900eae250 --- M gbproxy/GBProxy_Tests.ttcn M gbproxy/osmo-gbproxy.cfg M gbproxy/osmo-gbproxy.fr.cfg 3 files changed, 16 insertions(+), 4 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index 4857515..9168fa3 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -45,6 +45,12 @@ const integer max_fr_info_size := 1600; modulepar { + /* NRI bit-length. 0 for no pooling */ + integer mp_nri_bitlength := 5; + roro_integer mp_sgsn_nri := { + { 3 }, /* list of NRIs of first SGSN */ + { 4 } /* list of NRIs of second SGSN */ + }; boolean mp_enable_bss_load_sharing := false; /* SGSN NS configuration */ NSConfigurations mp_nsconfig_sgsn := { @@ -594,10 +600,10 @@ /* helper function to create, connect and start a BSSGP_ConnHdlr component */ function f_start_handler(void_fn fn, charstring id, GbInstances pcu, GbInstances sgsn, integer imsi_suffix, - float t_guard := 30.0) + float t_guard := 30.0, integer nri := mp_sgsn_nri[0][0]) runs on test_CT return BSSGP_ConnHdlr { var BSSGP_ConnHdlr vc_conn; - var OCT4 p_tmsi := f_gen_tmsi(imsi_suffix); + var OCT4 p_tmsi := f_gen_tmsi(imsi_suffix, nri_v := nri, nri_bitlen := mp_nri_bitlength); var BSSGP_ConnHdlrPars pars := { imei := f_gen_imei(imsi_suffix), @@ -608,8 +614,8 @@ tlli := f_gprs_tlli_from_tmsi(p_tmsi, TLLI_LOCAL), tlli_old := omit, ra := omit, - pcu := g_pcu, - sgsn := g_sgsn, + pcu := pcu, + sgsn := sgsn, t_guard := t_guard }; diff --git a/gbproxy/osmo-gbproxy.cfg b/gbproxy/osmo-gbproxy.cfg index 1c6caa9..5789e3a 100644 --- a/gbproxy/osmo-gbproxy.cfg +++ b/gbproxy/osmo-gbproxy.cfg @@ -6,10 +6,13 @@ no login ! gbproxy + nri bitlen 5 sgsn nsei 101 name first + nri add 3 sgsn nsei 102 name second + nri add 4 ns bind udp local listen 127.0.0.1 23000 diff --git a/gbproxy/osmo-gbproxy.fr.cfg b/gbproxy/osmo-gbproxy.fr.cfg index e350526..11ab84b 100644 --- a/gbproxy/osmo-gbproxy.fr.cfg +++ b/gbproxy/osmo-gbproxy.fr.cfg @@ -49,7 +49,10 @@ nsvc fr hdlcnet7 dlci 22 nsvci 7 nsvc fr hdlcnet8 dlci 23 nsvci 8 gbproxy + nri bitlen 5 sgsn nsei 101 name first + nri add 3 sgsn nsei 102 name second + nri add 4 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22227 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I15f78dca5ac31a1c71f086d3e92a70e900eae250 Gerrit-Change-Number: 22227 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 22:00:57 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 16 Jan 2021 22:00:57 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Refactor f_TC_{suspend, resume} In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22229 ) Change subject: gbproxy: Refactor f_TC_{suspend,resume} ...................................................................... gbproxy: Refactor f_TC_{suspend,resume} Move the entire body inside the loop to a separate function. This will be useful when adding pooling support next. Change-Id: Ia0f9d9128754c2196ab026623f1b6a254a958d2f --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 56 insertions(+), 53 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve daniel: Looks good to me, approved diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index 9168fa3..6f5b326 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -1066,37 +1066,39 @@ f_cleanup(); } +private function f_suspend_one(integer sgsn_idx, integer pcu_idx, integer bvc_idx, integer suffix) +runs on GlobalTest_CT +{ + var RoutingAreaIdentification ra_id := g_pcu[pcu_idx].cfg.bvc[bvc_idx].cell_id.ra_id; + var OCT4 tlli := f_gprs_tlli_random(); + var template (value) PDU_BSSGP pdu_tx := ts_BSSGP_SUSPEND(tlli, ra_id); + /* we cannot use pdu_tx as there are some subtle differences in the length field :/ */ + var template (present) PDU_BSSGP pdu_rx := tr_BSSGP_SUSPEND(tlli, ra_id); + f_global_pcu2sgsn(pdu_tx, pdu_rx, pcu_idx, sgsn_idx); + + pdu_tx := ts_BSSGP_SUSPEND_ACK(tlli, ra_id, int2oct(suffix, 1)); + /* we cannot use pdu_tx as there are some subtle differences in the length field :/ */ + pdu_rx := tr_BSSGP_SUSPEND_ACK(tlli, ra_id, int2oct(suffix, 1)); + f_global_sgsn2pcu(pdu_tx, pdu_rx, sgsn_idx, pcu_idx); + + pdu_tx := ts_BSSGP_SUSPEND(tlli, ra_id); + /* we cannot use pdu_tx as there are some subtle differences in the length field :/ */ + pdu_rx := tr_BSSGP_SUSPEND(tlli, ra_id); + f_global_pcu2sgsn(pdu_tx, pdu_rx, pcu_idx, sgsn_idx); + + /* These messages are simple passed through so just also test sending NACK */ + pdu_tx := ts_BSSGP_SUSPEND_NACK(tlli, ra_id, BSSGP_CAUSE_UNKNOWN_MS); + /* we cannot use pdu_tx as there are some subtle differences in the length field :/ */ + pdu_rx := tr_BSSGP_SUSPEND_NACK(tlli, ra_id, BSSGP_CAUSE_UNKNOWN_MS); + f_global_sgsn2pcu(pdu_tx, pdu_rx, sgsn_idx, pcu_idx); +} + private function f_TC_suspend() runs on GlobalTest_CT { var integer i; /* TODO: Generate RA ID for each ConnHdlr */ - var RoutingAreaIdentification ra_id := g_pcu[0].cfg.bvc[0].cell_id.ra_id; for (i := 0; i < 10; i := i+1) { - var OCT4 tlli := f_gprs_tlli_random(); - var template (value) PDU_BSSGP pdu_tx := ts_BSSGP_SUSPEND(tlli, ra_id); - /* we cannot use pdu_tx as there are some subtle differences in the length field :/ */ - var template (present) PDU_BSSGP pdu_rx := tr_BSSGP_SUSPEND(tlli, ra_id); - - f_global_pcu2sgsn(pdu_tx, pdu_rx); - - pdu_tx := ts_BSSGP_SUSPEND_ACK(tlli, ra_id, int2oct(i, 1)); - /* we cannot use pdu_tx as there are some subtle differences in the length field :/ */ - pdu_rx := tr_BSSGP_SUSPEND_ACK(tlli, ra_id, int2oct(i, 1)); - - f_global_sgsn2pcu(pdu_tx, pdu_rx); - - pdu_tx := ts_BSSGP_SUSPEND(tlli, ra_id); - /* we cannot use pdu_tx as there are some subtle differences in the length field :/ */ - pdu_rx := tr_BSSGP_SUSPEND(tlli, ra_id); - - f_global_pcu2sgsn(pdu_tx, pdu_rx); - - /* These messages are simple passed through so just also test sending NACK */ - pdu_tx := ts_BSSGP_SUSPEND_NACK(tlli, ra_id, BSSGP_CAUSE_UNKNOWN_MS); - /* we cannot use pdu_tx as there are some subtle differences in the length field :/ */ - pdu_rx := tr_BSSGP_SUSPEND_NACK(tlli, ra_id, BSSGP_CAUSE_UNKNOWN_MS); - - f_global_sgsn2pcu(pdu_tx, pdu_rx); + f_suspend_one(0, 0, 0, i); } setverdict(pass); } @@ -1108,37 +1110,38 @@ f_cleanup(); } +private function f_resume_one(integer sgsn_idx, integer pcu_idx, integer bvc_idx, integer suffix) +runs on GlobalTest_CT +{ + var RoutingAreaIdentification ra_id := g_pcu[pcu_idx].cfg.bvc[bvc_idx].cell_id.ra_id; + var OCT4 tlli := f_gprs_tlli_random(); + var template (value) PDU_BSSGP pdu_tx := ts_BSSGP_RESUME(tlli, ra_id, int2oct(suffix, 1)); + /* we cannot use pdu_tx as there are some subtle differences in the length field :/ */ + var template (present) PDU_BSSGP pdu_rx := tr_BSSGP_RESUME(tlli, ra_id, int2oct(suffix, 1)); + f_global_pcu2sgsn(pdu_tx, pdu_rx, pcu_idx, sgsn_idx); + + pdu_tx := ts_BSSGP_RESUME_ACK(tlli, ra_id); + /* we cannot use pdu_tx as there are some subtle differences in the length field :/ */ + pdu_rx := tr_BSSGP_RESUME_ACK(tlli, ra_id); + f_global_sgsn2pcu(pdu_tx, pdu_rx, sgsn_idx, pcu_idx); + + pdu_tx := ts_BSSGP_RESUME(tlli, ra_id, int2oct(suffix, 1)); + /* we cannot use pdu_tx as there are some subtle differences in the length field :/ */ + pdu_rx := tr_BSSGP_RESUME(tlli, ra_id, int2oct(suffix, 1)); + f_global_pcu2sgsn(pdu_tx, pdu_rx, pcu_idx, sgsn_idx); + + /* These messages are simple passed through so just also test sending NACK */ + pdu_tx := ts_BSSGP_RESUME_NACK(tlli, ra_id, BSSGP_CAUSE_UNKNOWN_MS); + /* we cannot use pdu_tx as there are some subtle differences in the length field :/ */ + pdu_rx := tr_BSSGP_RESUME_NACK(tlli, ra_id, BSSGP_CAUSE_UNKNOWN_MS); + f_global_sgsn2pcu(pdu_tx, pdu_rx, sgsn_idx, pcu_idx); +} + private function f_TC_resume() runs on GlobalTest_CT { var integer i; - /* TODO: Generate RA ID for each ConnHdlr */ - var RoutingAreaIdentification ra_id := g_pcu[0].cfg.bvc[0].cell_id.ra_id; for (i := 0; i < 10; i := i+1) { - var OCT4 tlli := f_gprs_tlli_random(); - var template (value) PDU_BSSGP pdu_tx := ts_BSSGP_RESUME(tlli, ra_id, int2oct(i, 1)); - /* we cannot use pdu_tx as there are some subtle differences in the length field :/ */ - var template (present) PDU_BSSGP pdu_rx := tr_BSSGP_RESUME(tlli, ra_id, int2oct(i, 1)); - - f_global_pcu2sgsn(pdu_tx, pdu_rx); - - pdu_tx := ts_BSSGP_RESUME_ACK(tlli, ra_id); - /* we cannot use pdu_tx as there are some subtle differences in the length field :/ */ - pdu_rx := tr_BSSGP_RESUME_ACK(tlli, ra_id); - - f_global_sgsn2pcu(pdu_tx, pdu_rx); - - pdu_tx := ts_BSSGP_RESUME(tlli, ra_id, int2oct(i, 1)); - /* we cannot use pdu_tx as there are some subtle differences in the length field :/ */ - pdu_rx := tr_BSSGP_RESUME(tlli, ra_id, int2oct(i, 1)); - - f_global_pcu2sgsn(pdu_tx, pdu_rx); - - /* These messages are simple passed through so just also test sending NACK */ - pdu_tx := ts_BSSGP_RESUME_NACK(tlli, ra_id, BSSGP_CAUSE_UNKNOWN_MS); - /* we cannot use pdu_tx as there are some subtle differences in the length field :/ */ - pdu_rx := tr_BSSGP_RESUME_NACK(tlli, ra_id, BSSGP_CAUSE_UNKNOWN_MS); - - f_global_sgsn2pcu(pdu_tx, pdu_rx); + f_resume_one(0, 0, 0, i); } setverdict(pass); } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22229 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ia0f9d9128754c2196ab026623f1b6a254a958d2f Gerrit-Change-Number: 22229 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 22:00:57 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 16 Jan 2021 22:00:57 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Use correct NRI in suspend/resume In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22230 ) Change subject: gbproxy: Use correct NRI in suspend/resume ...................................................................... gbproxy: Use correct NRI in suspend/resume We cannot choose a random TLLI anymore, as this will obviously end up at a random SGSN, and not the one we're targeting. Change-Id: I665eda9e04cbf505f55abc9bcd414d6cbd6a36dd --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 12 insertions(+), 6 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve daniel: Looks good to me, approved diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index 6f5b326..a0e6d1d 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -1066,11 +1066,14 @@ f_cleanup(); } -private function f_suspend_one(integer sgsn_idx, integer pcu_idx, integer bvc_idx, integer suffix) +private function f_suspend_one(integer sgsn_idx, integer nri_idx, integer pcu_idx, integer bvc_idx, + integer suffix) runs on GlobalTest_CT { var RoutingAreaIdentification ra_id := g_pcu[pcu_idx].cfg.bvc[bvc_idx].cell_id.ra_id; - var OCT4 tlli := f_gprs_tlli_random(); + var OCT4 p_tmsi := f_gen_tmsi(suffix, nri_v := mp_sgsn_nri[sgsn_idx][nri_idx], + nri_bitlen := mp_nri_bitlength); + var OCT4 tlli := f_gprs_tlli_from_tmsi(p_tmsi, TLLI_LOCAL); var template (value) PDU_BSSGP pdu_tx := ts_BSSGP_SUSPEND(tlli, ra_id); /* we cannot use pdu_tx as there are some subtle differences in the length field :/ */ var template (present) PDU_BSSGP pdu_rx := tr_BSSGP_SUSPEND(tlli, ra_id); @@ -1098,7 +1101,7 @@ /* TODO: Generate RA ID for each ConnHdlr */ for (i := 0; i < 10; i := i+1) { - f_suspend_one(0, 0, 0, i); + f_suspend_one(sgsn_idx := 0, nri_idx := 0, pcu_idx := 0, bvc_idx := 0, suffix := i); } setverdict(pass); } @@ -1110,11 +1113,14 @@ f_cleanup(); } -private function f_resume_one(integer sgsn_idx, integer pcu_idx, integer bvc_idx, integer suffix) +private function f_resume_one(integer sgsn_idx, integer nri_idx, integer pcu_idx, integer bvc_idx, + integer suffix) runs on GlobalTest_CT { var RoutingAreaIdentification ra_id := g_pcu[pcu_idx].cfg.bvc[bvc_idx].cell_id.ra_id; - var OCT4 tlli := f_gprs_tlli_random(); + var OCT4 p_tmsi := f_gen_tmsi(suffix, nri_v := mp_sgsn_nri[sgsn_idx][nri_idx], + nri_bitlen := mp_nri_bitlength); + var OCT4 tlli := f_gprs_tlli_from_tmsi(p_tmsi, TLLI_LOCAL); var template (value) PDU_BSSGP pdu_tx := ts_BSSGP_RESUME(tlli, ra_id, int2oct(suffix, 1)); /* we cannot use pdu_tx as there are some subtle differences in the length field :/ */ var template (present) PDU_BSSGP pdu_rx := tr_BSSGP_RESUME(tlli, ra_id, int2oct(suffix, 1)); @@ -1141,7 +1147,7 @@ var integer i; for (i := 0; i < 10; i := i+1) { - f_resume_one(0, 0, 0, i); + f_resume_one(sgsn_idx := 0, nri_idx := 0, pcu_idx := 0, bvc_idx := 0, suffix := i); } setverdict(pass); } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22230 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I665eda9e04cbf505f55abc9bcd414d6cbd6a36dd Gerrit-Change-Number: 22230 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 22:00:58 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 16 Jan 2021 22:00:58 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Test suspend + resume for each NRI on each SGSN In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22231 ) Change subject: gbproxy: Test suspend + resume for each NRI on each SGSN ...................................................................... gbproxy: Test suspend + resume for each NRI on each SGSN The test now tests with 10 TLLIs of each configured NRI of each configured SGSN. Change-Id: Iccd649165acd99b3d2d1ecc8fba7015fa27f57ec --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 18 insertions(+), 7 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve daniel: Looks good to me, approved diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index a0e6d1d..aa334ec 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -1096,20 +1096,25 @@ f_global_sgsn2pcu(pdu_tx, pdu_rx, sgsn_idx, pcu_idx); } -private function f_TC_suspend() runs on GlobalTest_CT { +private function f_TC_suspend(integer sgsn_idx, integer nri_idx, integer pcu_idx, integer bvc_idx) +runs on GlobalTest_CT { var integer i; - /* TODO: Generate RA ID for each ConnHdlr */ for (i := 0; i < 10; i := i+1) { - f_suspend_one(sgsn_idx := 0, nri_idx := 0, pcu_idx := 0, bvc_idx := 0, suffix := i); + f_suspend_one(sgsn_idx, nri_idx, pcu_idx, bvc_idx, suffix := i); } setverdict(pass); } testcase TC_suspend() runs on GlobalTest_CT { + var integer sgsn_idx, nri_idx; f_init(); f_global_init(); - f_TC_suspend(); + for (sgsn_idx := 0; sgsn_idx < NUM_SGSN; sgsn_idx := sgsn_idx+1) { + for (nri_idx := 0; nri_idx < lengthof(mp_sgsn_nri[sgsn_idx]); nri_idx := nri_idx+1) { + f_TC_suspend(sgsn_idx, nri_idx, pcu_idx:=0, bvc_idx:=0); + } + } f_cleanup(); } @@ -1143,19 +1148,25 @@ f_global_sgsn2pcu(pdu_tx, pdu_rx, sgsn_idx, pcu_idx); } -private function f_TC_resume() runs on GlobalTest_CT { +private function f_TC_resume(integer sgsn_idx, integer nri_idx, integer pcu_idx, integer bvc_idx) +runs on GlobalTest_CT { var integer i; for (i := 0; i < 10; i := i+1) { - f_resume_one(sgsn_idx := 0, nri_idx := 0, pcu_idx := 0, bvc_idx := 0, suffix := i); + f_resume_one(sgsn_idx, nri_idx, pcu_idx, bvc_idx, suffix := i); } setverdict(pass); } testcase TC_resume() runs on GlobalTest_CT { + var integer sgsn_idx, nri_idx; f_init(); f_global_init(); - f_TC_resume(); + for (sgsn_idx := 0; sgsn_idx < NUM_SGSN; sgsn_idx := sgsn_idx+1) { + for (nri_idx := 0; nri_idx < lengthof(mp_sgsn_nri[sgsn_idx]); nri_idx := nri_idx+1) { + f_TC_resume(sgsn_idx, nri_idx, pcu_idx:=0, bvc_idx:=0); + } + } f_cleanup(); } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22231 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Iccd649165acd99b3d2d1ecc8fba7015fa27f57ec Gerrit-Change-Number: 22231 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 22:01:16 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 16 Jan 2021 22:01:16 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Execute each ConnHdlr test on each NRI of each SGSN configured In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22233 ) Change subject: gbproxy: Execute each ConnHdlr test on each NRI of each SGSN configured ...................................................................... gbproxy: Execute each ConnHdlr test on each NRI of each SGSN configured This helps us to get proper test coverage for SGSN pool situations. Change-Id: Ie22d3fd786ff8fefe919ecc3a96f974675057e29 Related: OS#4951 --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 66 insertions(+), 191 deletions(-) Approvals: laforge: Looks good to me, approved daniel: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index aa334ec..4b7d246 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -353,6 +353,8 @@ RoutingAreaIdentificationV ra optional, GbInstances pcu, GbInstances sgsn, + /* The SGSN index to be used within the test */ + integer sgsn_idx, float t_guard }; @@ -600,9 +602,10 @@ /* helper function to create, connect and start a BSSGP_ConnHdlr component */ function f_start_handler(void_fn fn, charstring id, GbInstances pcu, GbInstances sgsn, integer imsi_suffix, - float t_guard := 30.0, integer nri := mp_sgsn_nri[0][0]) + float t_guard := 30.0, integer sgsn_idx := 0, integer nri_idx := 0) runs on test_CT return BSSGP_ConnHdlr { var BSSGP_ConnHdlr vc_conn; + var integer nri := mp_sgsn_nri[sgsn_idx][nri_idx]; var OCT4 p_tmsi := f_gen_tmsi(imsi_suffix, nri_v := nri, nri_bitlen := mp_nri_bitlength); var BSSGP_ConnHdlrPars pars := { @@ -616,6 +619,7 @@ ra := omit, pcu := pcu, sgsn := sgsn, + sgsn_idx := sgsn_idx, t_guard := t_guard }; @@ -625,6 +629,23 @@ return vc_conn; } +function f_start_handlers(void_fn fn, charstring id, GbInstances pcu, GbInstances sgsn, + integer imsi_suffix, float t_guard := 30.0) +runs on test_CT +{ + var integer sgsn_idx, nri_idx; + for (sgsn_idx := 0; sgsn_idx < NUM_SGSN; sgsn_idx:=sgsn_idx+1) { + for (nri_idx := 0; nri_idx < lengthof(mp_sgsn_nri[sgsn_idx]); nri_idx:=nri_idx+1) { + var integer extd_imsi_suffix := 1000*sgsn_idx + 100*nri_idx; + var BSSGP_ConnHdlr vc_conn; + vc_conn := f_start_handler(fn, id, pcu, sgsn, extd_imsi_suffix, t_guard, + sgsn_idx, nri_idx); + /* Idea: we could also run them in parallel ? */ + vc_conn.done; + } + } +} + /* Connect the PCU-side per-BVC ports (PCU/PCU_SIG/PCU_PROC) array slot 'port_idx' to specified per-BVC component */ private function f_connect_to_pcu_bvc(integer port_idx, integer nse_idx, integer bvc_idx) runs on BSSGP_ConnHdlr { @@ -711,7 +732,8 @@ /* Send 'tx' on PTP-BVCI from PCU; expect 'rx' on SGSN */ friend function f_pcu2sgsn(template (value) PDU_BSSGP tx, template (present) PDU_BSSGP exp_rx, - integer pcu_idx := 0, integer sgsn_idx := 0, boolean use_sig := false) runs on BSSGP_ConnHdlr { + integer pcu_idx := 0, boolean use_sig := false) runs on BSSGP_ConnHdlr { + var integer sgsn_idx := g_pars.sgsn_idx; var PDU_BSSGP rx; timer T := 1.0; @@ -730,15 +752,15 @@ setverdict(pass); } [] SGSN_PTP[sgsn_idx].receive(PDU_BSSGP:?) -> value rx { - setverdict(fail, "Unexpected BSSGP on SGSN side: ", rx); + setverdict(fail, "Unexpected BSSGP on SGSN[", sgsn_idx, "] side: ", rx); mtc.stop; } [] SGSN_SIG[sgsn_idx].receive(PDU_BSSGP:?) -> value rx { - setverdict(fail, "Unexpected SIG BSSGP on SGSN side: ", rx); + setverdict(fail, "Unexpected SIG BSSGP on SGSN[", sgsn_idx, "] side: ", rx); mtc.stop; } [] T.timeout { - setverdict(fail, "Timeout waiting for BSSGP on SGSN side: ", exp_rx); + setverdict(fail, "Timeout waiting for BSSGP on SGSN[", sgsn_idx, "] side: ", exp_rx); mtc.stop; } } @@ -746,7 +768,8 @@ /* Send 'tx' on PTP-BVCI from SGSN; expect 'rx' on PCU */ friend function f_sgsn2pcu(template (value) PDU_BSSGP tx, template (present) PDU_BSSGP exp_rx, - integer sgsn_idx:= 0, integer pcu_idx := 0, boolean use_sig := false) runs on BSSGP_ConnHdlr { + integer pcu_idx := 0, boolean use_sig := false) runs on BSSGP_ConnHdlr { + var integer sgsn_idx := g_pars.sgsn_idx; var PDU_BSSGP rx; timer T := 1.0; @@ -877,12 +900,8 @@ } testcase TC_BVC_bringup() runs on test_CT { - var BSSGP_ConnHdlr vc_conn; f_init(); - - vc_conn := f_start_handler(refers(f_TC_BVC_bringup), testcasename(), g_pcu, g_sgsn, 51); - vc_conn.done; - + f_start_handlers(refers(f_TC_BVC_bringup), testcasename(), g_pcu, g_sgsn, 51); f_cleanup(); } @@ -947,13 +966,9 @@ testcase TC_ul_unitdata() runs on test_CT { - var BSSGP_ConnHdlr vc_conn; f_init(); - - vc_conn := f_start_handler(refers(f_TC_ul_unitdata), testcasename(), g_pcu, g_sgsn, 1); - vc_conn.done; + f_start_handlers(refers(f_TC_ul_unitdata), testcasename(), g_pcu, g_sgsn, 1); /* TODO: start multiple handlers (UEs) on various cells on same and other NSEs */ - f_cleanup(); } @@ -977,13 +992,9 @@ testcase TC_dl_unitdata() runs on test_CT { - var BSSGP_ConnHdlr vc_conn; f_init(); - - vc_conn := f_start_handler(refers(f_TC_dl_unitdata), testcasename(), g_pcu, g_sgsn, 2); - vc_conn.done; + f_start_handlers(refers(f_TC_dl_unitdata), testcasename(), g_pcu, g_sgsn, 2); /* TODO: start multiple handlers (UEs) on various cells on same and other NSEs */ - f_cleanup(); } @@ -1001,13 +1012,9 @@ } testcase TC_ra_capability() runs on test_CT { - var BSSGP_ConnHdlr vc_conn; f_init(); - - vc_conn := f_start_handler(refers(f_TC_ra_capability), testcasename(), g_pcu, g_sgsn, 3); - vc_conn.done; + f_start_handlers(refers(f_TC_ra_capability), testcasename(), g_pcu, g_sgsn, 3); /* TODO: start multiple handlers (UEs) on various cells on same and other NSEs */ - f_cleanup(); } @@ -1032,13 +1039,9 @@ } testcase TC_ra_capability_upd() runs on test_CT { - var BSSGP_ConnHdlr vc_conn; f_init(); - - vc_conn := f_start_handler(refers(f_TC_ra_capability_upd), testcasename(), g_pcu, g_sgsn, 4); - vc_conn.done; + f_start_handlers(refers(f_TC_ra_capability_upd), testcasename(), g_pcu, g_sgsn, 4); /* TODO: start multiple handlers (UEs) on various cells on same and other NSEs */ - f_cleanup(); } @@ -1056,13 +1059,9 @@ } testcase TC_radio_status() runs on test_CT { - var BSSGP_ConnHdlr vc_conn; f_init(); - - vc_conn := f_start_handler(refers(f_TC_radio_status), testcasename(), g_pcu, g_sgsn, 5); - vc_conn.done; + f_start_handlers(refers(f_TC_radio_status), testcasename(), g_pcu, g_sgsn, 5); /* TODO: start multiple handlers (UEs) on various cells on same and other NSEs */ - f_cleanup(); } @@ -1357,12 +1356,8 @@ f_send_paging_ps_exp_one_bss(ts_BssgpP4BssArea, 0, false, 0); } testcase TC_paging_ps_ptp_bss() runs on test_CT { - var BSSGP_ConnHdlr vc_conn; f_init(); - - vc_conn := f_start_handler(refers(f_TC_paging_ps_ptp_bss), testcasename(), g_pcu, g_sgsn, 9); - vc_conn.done; - + f_start_handlers(refers(f_TC_paging_ps_ptp_bss), testcasename(), g_pcu, g_sgsn, 9); f_cleanup(); } @@ -1375,12 +1370,8 @@ f_send_paging_ps_exp_one_bss(ts_BssgpP4LAC(pcu_bvc_cfg[0].cell_id.ra_id.lai), 0, false, 0); } testcase TC_paging_ps_ptp_lac() runs on test_CT { - var BSSGP_ConnHdlr vc_conn; f_init(); - - vc_conn := f_start_handler(refers(f_TC_paging_ps_ptp_lac), testcasename(), g_pcu, g_sgsn, 10); - vc_conn.done; - + f_start_handlers(refers(f_TC_paging_ps_ptp_lac), testcasename(), g_pcu, g_sgsn, 10); f_cleanup(); } @@ -1395,12 +1386,8 @@ f_send_paging_ps_exp_one_bss(ts_BssgpP4LAC(unknown_la), 0, false, 0); } testcase TC_paging_ps_ptp_lac_unknown() runs on test_CT { - var BSSGP_ConnHdlr vc_conn; f_init(); - - vc_conn := f_start_handler(refers(f_TC_paging_ps_ptp_lac_unknown), testcasename(), g_pcu, g_sgsn, 11); - vc_conn.done; - + f_start_handlers(refers(f_TC_paging_ps_ptp_lac_unknown), testcasename(), g_pcu, g_sgsn, 11); f_cleanup(); } @@ -1412,12 +1399,8 @@ f_send_paging_ps_exp_one_bss(ts_BssgpP4RAC(pcu_bvc_cfg[0].cell_id.ra_id), 0, false, 0); } testcase TC_paging_ps_ptp_rac() runs on test_CT { - var BSSGP_ConnHdlr vc_conn; f_init(); - - vc_conn := f_start_handler(refers(f_TC_paging_ps_ptp_rac), testcasename(), g_pcu, g_sgsn, 11); - vc_conn.done; - + f_start_handlers(refers(f_TC_paging_ps_ptp_rac), testcasename(), g_pcu, g_sgsn, 11); f_cleanup(); } @@ -1435,12 +1418,8 @@ f_send_paging_ps_exp_one_bss(ts_BssgpP4RAC(unknown_ra), 0, false, 0); } testcase TC_paging_ps_ptp_rac_unknown() runs on test_CT { - var BSSGP_ConnHdlr vc_conn; f_init(); - - vc_conn := f_start_handler(refers(f_TC_paging_ps_ptp_rac_unknown), testcasename(), g_pcu, g_sgsn, 11); - vc_conn.done; - + f_start_handlers(refers(f_TC_paging_ps_ptp_rac_unknown), testcasename(), g_pcu, g_sgsn, 11); f_cleanup(); } @@ -1451,12 +1430,8 @@ f_send_paging_ps_exp_one_bss(ts_BssgpP4Bvci(pcu_bvc_cfg[0].bvci), 0, false, 0); } testcase TC_paging_ps_ptp_bvci() runs on test_CT { - var BSSGP_ConnHdlr vc_conn; f_init(); - - vc_conn := f_start_handler(refers(f_TC_paging_ps_ptp_bvci), testcasename(), g_pcu, g_sgsn, 12); - vc_conn.done; - + f_start_handlers(refers(f_TC_paging_ps_ptp_bvci), testcasename(), g_pcu, g_sgsn, 12); f_cleanup(); } @@ -1467,12 +1442,8 @@ f_send_paging_ps_exp_one_bss(ts_BssgpP4Bvci(33333), 0, false, 0); } testcase TC_paging_ps_ptp_bvci_unknown() runs on test_CT { - var BSSGP_ConnHdlr vc_conn; f_init(); - - vc_conn := f_start_handler(refers(f_TC_paging_ps_ptp_bvci_unknown), testcasename(), g_pcu, g_sgsn, 11); - vc_conn.done; - + f_start_handlers(refers(f_TC_paging_ps_ptp_bvci_unknown), testcasename(), g_pcu, g_sgsn, 11); f_cleanup(); } @@ -1538,12 +1509,8 @@ f_send_paging_ps_exp_multi(ts_BssgpP4BssArea, 0, {0, 1, 2}); } testcase TC_paging_ps_sig_bss() runs on test_CT { - var BSSGP_ConnHdlr vc_conn; f_init(); - - vc_conn := f_start_handler(refers(f_TC_paging_ps_sig_bss), testcasename(), g_pcu, g_sgsn, 13); - vc_conn.done; - + f_start_handlers(refers(f_TC_paging_ps_sig_bss), testcasename(), g_pcu, g_sgsn, 13); f_cleanup(); } @@ -1559,12 +1526,8 @@ f_send_paging_ps_exp_multi(ts_BssgpP4LAC(pcu_bvc_cfg[2].cell_id.ra_id.lai), 0, {2}); } testcase TC_paging_ps_sig_lac() runs on test_CT { - var BSSGP_ConnHdlr vc_conn; f_init(); - - vc_conn := f_start_handler(refers(f_TC_paging_ps_sig_lac), testcasename(), g_pcu, g_sgsn, 14); - vc_conn.done; - + f_start_handlers(refers(f_TC_paging_ps_sig_lac), testcasename(), g_pcu, g_sgsn, 14); f_cleanup(); } @@ -1578,12 +1541,8 @@ f_send_paging_ps_exp_no_bss(ts_BssgpP4LAC(unknown_la), 0, true); } testcase TC_paging_ps_sig_lac_unknown() runs on test_CT { - var BSSGP_ConnHdlr vc_conn; f_init(); - - vc_conn := f_start_handler(refers(f_TC_paging_ps_sig_lac_unknown), testcasename(), g_pcu, g_sgsn, 11); - vc_conn.done; - + f_start_handlers(refers(f_TC_paging_ps_sig_lac_unknown), testcasename(), g_pcu, g_sgsn, 11); f_cleanup(); } @@ -1601,12 +1560,8 @@ f_send_paging_ps_exp_multi(ts_BssgpP4RAC(pcu_bvc_cfg[2].cell_id.ra_id), 0, {2}); } testcase TC_paging_ps_sig_rac() runs on test_CT { - var BSSGP_ConnHdlr vc_conn; f_init(); - - vc_conn := f_start_handler(refers(f_TC_paging_ps_sig_rac), testcasename(), g_pcu, g_sgsn, 15); - vc_conn.done; - + f_start_handlers(refers(f_TC_paging_ps_sig_rac), testcasename(), g_pcu, g_sgsn, 15); f_cleanup(); } @@ -1623,12 +1578,8 @@ f_send_paging_ps_exp_no_bss(ts_BssgpP4RAC(unknown_ra), 0, true); } testcase TC_paging_ps_sig_rac_unknown() runs on test_CT { - var BSSGP_ConnHdlr vc_conn; f_init(); - - vc_conn := f_start_handler(refers(f_TC_paging_ps_sig_rac_unknown), testcasename(), g_pcu, g_sgsn, 11); - vc_conn.done; - + f_start_handlers(refers(f_TC_paging_ps_sig_rac_unknown), testcasename(), g_pcu, g_sgsn, 11); f_cleanup(); } @@ -1638,12 +1589,8 @@ f_send_paging_ps_exp_multi(ts_BssgpP4Bvci(pcu_bvc_cfg[0].bvci), 0, {0}); } testcase TC_paging_ps_sig_bvci() runs on test_CT { - var BSSGP_ConnHdlr vc_conn; f_init(); - - vc_conn := f_start_handler(refers(f_TC_paging_ps_sig_bvci), testcasename(), g_pcu, g_sgsn, 16); - vc_conn.done; - + f_start_handlers(refers(f_TC_paging_ps_sig_bvci), testcasename(), g_pcu, g_sgsn, 16); f_cleanup(); } @@ -1653,12 +1600,8 @@ f_send_paging_ps_exp_no_bss(ts_BssgpP4Bvci(33333), 0, true); } testcase TC_paging_ps_sig_bvci_unknown() runs on test_CT { - var BSSGP_ConnHdlr vc_conn; f_init(); - - vc_conn := f_start_handler(refers(f_TC_paging_ps_sig_bvci_unknown), testcasename(), g_pcu, g_sgsn, 11); - vc_conn.done; - + f_start_handlers(refers(f_TC_paging_ps_sig_bvci_unknown), testcasename(), g_pcu, g_sgsn, 11); f_cleanup(); } @@ -1778,12 +1721,8 @@ f_send_paging_cs_exp_one_bss(ts_BssgpP4BssArea, 0, false, 0); } testcase TC_paging_cs_ptp_bss() runs on test_CT { - var BSSGP_ConnHdlr vc_conn; f_init(); - - vc_conn := f_start_handler(refers(f_TC_paging_cs_ptp_bss), testcasename(), g_pcu, g_sgsn, 17); - vc_conn.done; - + f_start_handlers(refers(f_TC_paging_cs_ptp_bss), testcasename(), g_pcu, g_sgsn, 17); f_cleanup(); } @@ -1796,12 +1735,8 @@ f_send_paging_cs_exp_one_bss(ts_BssgpP4LAC(pcu_bvc_cfg[0].cell_id.ra_id.lai), 0, false, 0); } testcase TC_paging_cs_ptp_lac() runs on test_CT { - var BSSGP_ConnHdlr vc_conn; f_init(); - - vc_conn := f_start_handler(refers(f_TC_paging_cs_ptp_lac), testcasename(), g_pcu, g_sgsn, 18); - vc_conn.done; - + f_start_handlers(refers(f_TC_paging_cs_ptp_lac), testcasename(), g_pcu, g_sgsn, 18); f_cleanup(); } @@ -1816,12 +1751,8 @@ f_send_paging_cs_exp_one_bss(ts_BssgpP4LAC(unknown_la), 0, false, 0); } testcase TC_paging_cs_ptp_lac_unknown() runs on test_CT { - var BSSGP_ConnHdlr vc_conn; f_init(); - - vc_conn := f_start_handler(refers(f_TC_paging_cs_ptp_lac_unknown), testcasename(), g_pcu, g_sgsn, 11); - vc_conn.done; - + f_start_handlers(refers(f_TC_paging_cs_ptp_lac_unknown), testcasename(), g_pcu, g_sgsn, 11); f_cleanup(); } @@ -1833,12 +1764,8 @@ f_send_paging_cs_exp_one_bss(ts_BssgpP4RAC(pcu_bvc_cfg[0].cell_id.ra_id), 0, false, 0); } testcase TC_paging_cs_ptp_rac() runs on test_CT { - var BSSGP_ConnHdlr vc_conn; f_init(); - - vc_conn := f_start_handler(refers(f_TC_paging_cs_ptp_rac), testcasename(), g_pcu, g_sgsn, 19); - vc_conn.done; - + f_start_handlers(refers(f_TC_paging_cs_ptp_rac), testcasename(), g_pcu, g_sgsn, 19); f_cleanup(); } @@ -1856,12 +1783,8 @@ f_send_paging_cs_exp_one_bss(ts_BssgpP4RAC(unknown_ra), 0, false, 0); } testcase TC_paging_cs_ptp_rac_unknown() runs on test_CT { - var BSSGP_ConnHdlr vc_conn; f_init(); - - vc_conn := f_start_handler(refers(f_TC_paging_cs_ptp_rac_unknown), testcasename(), g_pcu, g_sgsn, 11); - vc_conn.done; - + f_start_handlers(refers(f_TC_paging_cs_ptp_rac_unknown), testcasename(), g_pcu, g_sgsn, 11); f_cleanup(); } @@ -1872,12 +1795,8 @@ f_send_paging_cs_exp_one_bss(ts_BssgpP4Bvci(pcu_bvc_cfg[0].bvci), 0, false, 0); } testcase TC_paging_cs_ptp_bvci() runs on test_CT { - var BSSGP_ConnHdlr vc_conn; f_init(); - - vc_conn := f_start_handler(refers(f_TC_paging_cs_ptp_bvci), testcasename(), g_pcu, g_sgsn, 20); - vc_conn.done; - + f_start_handlers(refers(f_TC_paging_cs_ptp_bvci), testcasename(), g_pcu, g_sgsn, 20); f_cleanup(); } @@ -1888,12 +1807,8 @@ f_send_paging_cs_exp_one_bss(ts_BssgpP4Bvci(33333), 0, false, 0); } testcase TC_paging_cs_ptp_bvci_unknown() runs on test_CT { - var BSSGP_ConnHdlr vc_conn; f_init(); - - vc_conn := f_start_handler(refers(f_TC_paging_cs_ptp_bvci_unknown), testcasename(), g_pcu, g_sgsn, 11); - vc_conn.done; - + f_start_handlers(refers(f_TC_paging_cs_ptp_bvci_unknown), testcasename(), g_pcu, g_sgsn, 11); f_cleanup(); } @@ -1936,12 +1851,8 @@ f_send_paging_cs_exp_multi(ts_BssgpP4BssArea, 0, {0, 1, 2}); } testcase TC_paging_cs_sig_bss() runs on test_CT { - var BSSGP_ConnHdlr vc_conn; f_init(); - - vc_conn := f_start_handler(refers(f_TC_paging_cs_sig_bss), testcasename(), g_pcu, g_sgsn, 13); - vc_conn.done; - + f_start_handlers(refers(f_TC_paging_cs_sig_bss), testcasename(), g_pcu, g_sgsn, 13); f_cleanup(); } @@ -1957,12 +1868,8 @@ f_send_paging_cs_exp_multi(ts_BssgpP4LAC(pcu_bvc_cfg[2].cell_id.ra_id.lai), 0, {2}); } testcase TC_paging_cs_sig_lac() runs on test_CT { - var BSSGP_ConnHdlr vc_conn; f_init(); - - vc_conn := f_start_handler(refers(f_TC_paging_cs_sig_lac), testcasename(), g_pcu, g_sgsn, 14); - vc_conn.done; - + f_start_handlers(refers(f_TC_paging_cs_sig_lac), testcasename(), g_pcu, g_sgsn, 14); f_cleanup(); } @@ -1976,12 +1883,8 @@ f_send_paging_cs_exp_no_bss(ts_BssgpP4LAC(unknown_la), 0, true); } testcase TC_paging_cs_sig_lac_unknown() runs on test_CT { - var BSSGP_ConnHdlr vc_conn; f_init(); - - vc_conn := f_start_handler(refers(f_TC_paging_cs_sig_lac_unknown), testcasename(), g_pcu, g_sgsn, 11); - vc_conn.done; - + f_start_handlers(refers(f_TC_paging_cs_sig_lac_unknown), testcasename(), g_pcu, g_sgsn, 11); f_cleanup(); } @@ -1999,12 +1902,8 @@ f_send_paging_cs_exp_multi(ts_BssgpP4RAC(pcu_bvc_cfg[2].cell_id.ra_id), 0, {2}); } testcase TC_paging_cs_sig_rac() runs on test_CT { - var BSSGP_ConnHdlr vc_conn; f_init(); - - vc_conn := f_start_handler(refers(f_TC_paging_cs_sig_rac), testcasename(), g_pcu, g_sgsn, 15); - vc_conn.done; - + f_start_handlers(refers(f_TC_paging_cs_sig_rac), testcasename(), g_pcu, g_sgsn, 15); f_cleanup(); } @@ -2021,12 +1920,8 @@ f_send_paging_cs_exp_no_bss(ts_BssgpP4RAC(unknown_ra), 0, true); } testcase TC_paging_cs_sig_rac_unknown() runs on test_CT { - var BSSGP_ConnHdlr vc_conn; f_init(); - - vc_conn := f_start_handler(refers(f_TC_paging_cs_sig_rac_unknown), testcasename(), g_pcu, g_sgsn, 11); - vc_conn.done; - + f_start_handlers(refers(f_TC_paging_cs_sig_rac_unknown), testcasename(), g_pcu, g_sgsn, 11); f_cleanup(); } @@ -2036,12 +1931,8 @@ f_send_paging_cs_exp_multi(ts_BssgpP4Bvci(pcu_bvc_cfg[0].bvci), 0, {0}); } testcase TC_paging_cs_sig_bvci() runs on test_CT { - var BSSGP_ConnHdlr vc_conn; f_init(); - - vc_conn := f_start_handler(refers(f_TC_paging_cs_sig_bvci), testcasename(), g_pcu, g_sgsn, 16); - vc_conn.done; - + f_start_handlers(refers(f_TC_paging_cs_sig_bvci), testcasename(), g_pcu, g_sgsn, 16); f_cleanup(); } @@ -2051,12 +1942,8 @@ f_send_paging_cs_exp_no_bss(ts_BssgpP4Bvci(33333), 0, true); } testcase TC_paging_cs_sig_bvci_unknown() runs on test_CT { - var BSSGP_ConnHdlr vc_conn; f_init(); - - vc_conn := f_start_handler(refers(f_TC_paging_cs_sig_bvci_unknown), testcasename(), g_pcu, g_sgsn, 11); - vc_conn.done; - + f_start_handlers(refers(f_TC_paging_cs_sig_bvci_unknown), testcasename(), g_pcu, g_sgsn, 11); f_cleanup(); } @@ -2084,13 +1971,9 @@ } testcase TC_flush_ll() runs on test_CT { - var BSSGP_ConnHdlr vc_conn; f_init(); - - vc_conn := f_start_handler(refers(f_TC_flush_ll), testcasename(), g_pcu, g_sgsn, 6); - vc_conn.done; + f_start_handlers(refers(f_TC_flush_ll), testcasename(), g_pcu, g_sgsn, 6); /* TODO: start multiple handlers (UEs) on various cells on same and other NSEs */ - f_cleanup(); } @@ -2156,13 +2039,9 @@ /* Send a LLC-DISCARDED from BSS side and expect it to show up on SGSN (SIG BVC) */ testcase TC_llc_discarded() runs on test_CT { - var BSSGP_ConnHdlr vc_conn; f_init(); - - vc_conn := f_start_handler(refers(f_TC_llc_discarded), testcasename(), g_pcu, g_sgsn, 6); - vc_conn.done; + f_start_handlers(refers(f_TC_llc_discarded), testcasename(), g_pcu, g_sgsn, 6); /* TODO: start multiple handlers (UEs) on various cells on same and other NSEs */ - f_cleanup(); } @@ -2522,13 +2401,9 @@ /* Send a FLOW-CONTROL-MS from BSS side and expect it to show up on SGSN (PTP BVC) */ testcase TC_fc_ms() runs on test_CT { - var BSSGP_ConnHdlr vc_conn; f_init(); - - vc_conn := f_start_handler(refers(f_TC_fc_ms), testcasename(), g_pcu, g_sgsn, 21); - vc_conn.done; + f_start_handlers(refers(f_TC_fc_ms), testcasename(), g_pcu, g_sgsn, 21); /* TODO: start multiple handlers (UEs) on various cells on same and other NSEs */ - f_cleanup(); } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22233 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ie22d3fd786ff8fefe919ecc3a96f974675057e29 Gerrit-Change-Number: 22233 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 22:01:26 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 16 Jan 2021 22:01:26 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Execute TC_load_sharing_dl() for each SGSN in pool In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22236 ) Change subject: gbproxy: Execute TC_load_sharing_dl() for each SGSN in pool ...................................................................... gbproxy: Execute TC_load_sharing_dl() for each SGSN in pool Change-Id: I4ad822d3bbf5eb6181f6811c3b2267a50bb533a4 Related: OS#4951 --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 14 insertions(+), 5 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index 4b7d246..f0175c2 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -1177,16 +1177,15 @@ var octetstring payload := f_rnd_octstring(i); var template (value) PDU_BSSGP pdu_tx := ts_BSSGP_DL_UD(g_pars.tlli, payload, omit, ts_BSSGP_IMSI(g_pars.imsi)); - SGSN_PTP[0].send(pdu_tx); + SGSN_PTP[g_pars.sgsn_idx].send(pdu_tx); } setverdict(pass); } -testcase TC_load_sharing_dl() runs on test_CT_NS + +private function f_TC_load_sharing_dl(integer sgsn_idx) runs on test_CT_NS { const integer num_ue := 10; var BSSGP_ConnHdlr vc_conn[num_ue]; - f_init(); - /* all BVC are now fully brought up. We disconnect BSSGP from NS on the BSS * side so we get the raw NsUnitdataIndication and hence observe different * NSVCI */ @@ -1199,7 +1198,8 @@ /* start parallel components generating DL-UNITDATA from the SGSN side */ for (var integer i:= 0; i < num_ue; i := i+1) { - vc_conn[i] := f_start_handler(refers(f_TC_dl_ud_unidir), testcasename(), g_pcu, g_sgsn, 5+i); + vc_conn[i] := f_start_handler(refers(f_TC_dl_ud_unidir), testcasename(), g_pcu, g_sgsn, + 5+i, 30.0, sgsn_idx); } /* now start counting all the messages that were queued before */ @@ -1227,6 +1227,15 @@ setverdict(fail, "Data not shared over all NSVC"); } } +} + +testcase TC_load_sharing_dl() runs on test_CT_NS +{ + var integer sgsn_idx, nri_idx; + f_init(); + for (sgsn_idx:=0; sgsn_idx < NUM_SGSN; sgsn_idx:=sgsn_idx+1) { + f_TC_load_sharing_dl(sgsn_idx); + } setverdict(pass); } private altstep as_NsUdiCount(integer nsvc_idx, inout ro_integer roi) runs on test_CT_NS { -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22236 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I4ad822d3bbf5eb6181f6811c3b2267a50bb533a4 Gerrit-Change-Number: 22236 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 22:02:22 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 16 Jan 2021 22:02:22 +0000 Subject: Change in osmo-ttcn3-hacks[master]: WIP: multiple sgsn-side NS-VCs In-Reply-To: References: Message-ID: laforge has abandoned this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21697 ) Change subject: WIP: multiple sgsn-side NS-VCs ...................................................................... Abandoned superseded by master. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21697 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I088276578643cc5a52d0e00d16ec23cf7ab8cd8a Gerrit-Change-Number: 21697 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: abandon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 22:02:52 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 16 Jan 2021 22:02:52 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Don't pass global (component) variables as function arguments In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22237 ) Change subject: gbproxy: Don't pass global (component) variables as function arguments ...................................................................... gbproxy: Don't pass global (component) variables as function arguments The point of global (component) variables is that we don't have to pass them around as extra function arguments everywhere. So don't do it. Change-Id: I0754d5db7e797a51be3a0b601b0533de80bc246d --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 43 insertions(+), 44 deletions(-) Approvals: Jenkins Builder: Verified daniel: Looks good to me, but someone else must approve pespin: Looks good to me, approved diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index f0175c2..caf4c66 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -601,7 +601,7 @@ type function void_fn(charstring id) runs on BSSGP_ConnHdlr; /* helper function to create, connect and start a BSSGP_ConnHdlr component */ -function f_start_handler(void_fn fn, charstring id, GbInstances pcu, GbInstances sgsn, integer imsi_suffix, +function f_start_handler(void_fn fn, charstring id, integer imsi_suffix, float t_guard := 30.0, integer sgsn_idx := 0, integer nri_idx := 0) runs on test_CT return BSSGP_ConnHdlr { var BSSGP_ConnHdlr vc_conn; @@ -617,8 +617,8 @@ tlli := f_gprs_tlli_from_tmsi(p_tmsi, TLLI_LOCAL), tlli_old := omit, ra := omit, - pcu := pcu, - sgsn := sgsn, + pcu := g_pcu, + sgsn := g_sgsn, sgsn_idx := sgsn_idx, t_guard := t_guard }; @@ -629,8 +629,7 @@ return vc_conn; } -function f_start_handlers(void_fn fn, charstring id, GbInstances pcu, GbInstances sgsn, - integer imsi_suffix, float t_guard := 30.0) +function f_start_handlers(void_fn fn, charstring id, integer imsi_suffix, float t_guard := 30.0) runs on test_CT { var integer sgsn_idx, nri_idx; @@ -638,7 +637,7 @@ for (nri_idx := 0; nri_idx < lengthof(mp_sgsn_nri[sgsn_idx]); nri_idx:=nri_idx+1) { var integer extd_imsi_suffix := 1000*sgsn_idx + 100*nri_idx; var BSSGP_ConnHdlr vc_conn; - vc_conn := f_start_handler(fn, id, pcu, sgsn, extd_imsi_suffix, t_guard, + vc_conn := f_start_handler(fn, id, extd_imsi_suffix, t_guard, sgsn_idx, nri_idx); /* Idea: we could also run them in parallel ? */ vc_conn.done; @@ -901,7 +900,7 @@ testcase TC_BVC_bringup() runs on test_CT { f_init(); - f_start_handlers(refers(f_TC_BVC_bringup), testcasename(), g_pcu, g_sgsn, 51); + f_start_handlers(refers(f_TC_BVC_bringup), testcasename(), 51); f_cleanup(); } @@ -967,7 +966,7 @@ testcase TC_ul_unitdata() runs on test_CT { f_init(); - f_start_handlers(refers(f_TC_ul_unitdata), testcasename(), g_pcu, g_sgsn, 1); + f_start_handlers(refers(f_TC_ul_unitdata), testcasename(), 1); /* TODO: start multiple handlers (UEs) on various cells on same and other NSEs */ f_cleanup(); } @@ -993,7 +992,7 @@ testcase TC_dl_unitdata() runs on test_CT { f_init(); - f_start_handlers(refers(f_TC_dl_unitdata), testcasename(), g_pcu, g_sgsn, 2); + f_start_handlers(refers(f_TC_dl_unitdata), testcasename(), 2); /* TODO: start multiple handlers (UEs) on various cells on same and other NSEs */ f_cleanup(); } @@ -1013,7 +1012,7 @@ testcase TC_ra_capability() runs on test_CT { f_init(); - f_start_handlers(refers(f_TC_ra_capability), testcasename(), g_pcu, g_sgsn, 3); + f_start_handlers(refers(f_TC_ra_capability), testcasename(), 3); /* TODO: start multiple handlers (UEs) on various cells on same and other NSEs */ f_cleanup(); } @@ -1040,7 +1039,7 @@ testcase TC_ra_capability_upd() runs on test_CT { f_init(); - f_start_handlers(refers(f_TC_ra_capability_upd), testcasename(), g_pcu, g_sgsn, 4); + f_start_handlers(refers(f_TC_ra_capability_upd), testcasename(), 4); /* TODO: start multiple handlers (UEs) on various cells on same and other NSEs */ f_cleanup(); } @@ -1060,7 +1059,7 @@ testcase TC_radio_status() runs on test_CT { f_init(); - f_start_handlers(refers(f_TC_radio_status), testcasename(), g_pcu, g_sgsn, 5); + f_start_handlers(refers(f_TC_radio_status), testcasename(), 5); /* TODO: start multiple handlers (UEs) on various cells on same and other NSEs */ f_cleanup(); } @@ -1198,7 +1197,7 @@ /* start parallel components generating DL-UNITDATA from the SGSN side */ for (var integer i:= 0; i < num_ue; i := i+1) { - vc_conn[i] := f_start_handler(refers(f_TC_dl_ud_unidir), testcasename(), g_pcu, g_sgsn, + vc_conn[i] := f_start_handler(refers(f_TC_dl_ud_unidir), testcasename(), 5+i, 30.0, sgsn_idx); } @@ -1366,7 +1365,7 @@ } testcase TC_paging_ps_ptp_bss() runs on test_CT { f_init(); - f_start_handlers(refers(f_TC_paging_ps_ptp_bss), testcasename(), g_pcu, g_sgsn, 9); + f_start_handlers(refers(f_TC_paging_ps_ptp_bss), testcasename(), 9); f_cleanup(); } @@ -1380,7 +1379,7 @@ } testcase TC_paging_ps_ptp_lac() runs on test_CT { f_init(); - f_start_handlers(refers(f_TC_paging_ps_ptp_lac), testcasename(), g_pcu, g_sgsn, 10); + f_start_handlers(refers(f_TC_paging_ps_ptp_lac), testcasename(), 10); f_cleanup(); } @@ -1396,7 +1395,7 @@ } testcase TC_paging_ps_ptp_lac_unknown() runs on test_CT { f_init(); - f_start_handlers(refers(f_TC_paging_ps_ptp_lac_unknown), testcasename(), g_pcu, g_sgsn, 11); + f_start_handlers(refers(f_TC_paging_ps_ptp_lac_unknown), testcasename(), 11); f_cleanup(); } @@ -1409,7 +1408,7 @@ } testcase TC_paging_ps_ptp_rac() runs on test_CT { f_init(); - f_start_handlers(refers(f_TC_paging_ps_ptp_rac), testcasename(), g_pcu, g_sgsn, 11); + f_start_handlers(refers(f_TC_paging_ps_ptp_rac), testcasename(), 11); f_cleanup(); } @@ -1428,7 +1427,7 @@ } testcase TC_paging_ps_ptp_rac_unknown() runs on test_CT { f_init(); - f_start_handlers(refers(f_TC_paging_ps_ptp_rac_unknown), testcasename(), g_pcu, g_sgsn, 11); + f_start_handlers(refers(f_TC_paging_ps_ptp_rac_unknown), testcasename(), 11); f_cleanup(); } @@ -1440,7 +1439,7 @@ } testcase TC_paging_ps_ptp_bvci() runs on test_CT { f_init(); - f_start_handlers(refers(f_TC_paging_ps_ptp_bvci), testcasename(), g_pcu, g_sgsn, 12); + f_start_handlers(refers(f_TC_paging_ps_ptp_bvci), testcasename(), 12); f_cleanup(); } @@ -1452,7 +1451,7 @@ } testcase TC_paging_ps_ptp_bvci_unknown() runs on test_CT { f_init(); - f_start_handlers(refers(f_TC_paging_ps_ptp_bvci_unknown), testcasename(), g_pcu, g_sgsn, 11); + f_start_handlers(refers(f_TC_paging_ps_ptp_bvci_unknown), testcasename(), 11); f_cleanup(); } @@ -1519,7 +1518,7 @@ } testcase TC_paging_ps_sig_bss() runs on test_CT { f_init(); - f_start_handlers(refers(f_TC_paging_ps_sig_bss), testcasename(), g_pcu, g_sgsn, 13); + f_start_handlers(refers(f_TC_paging_ps_sig_bss), testcasename(), 13); f_cleanup(); } @@ -1536,7 +1535,7 @@ } testcase TC_paging_ps_sig_lac() runs on test_CT { f_init(); - f_start_handlers(refers(f_TC_paging_ps_sig_lac), testcasename(), g_pcu, g_sgsn, 14); + f_start_handlers(refers(f_TC_paging_ps_sig_lac), testcasename(), 14); f_cleanup(); } @@ -1551,7 +1550,7 @@ } testcase TC_paging_ps_sig_lac_unknown() runs on test_CT { f_init(); - f_start_handlers(refers(f_TC_paging_ps_sig_lac_unknown), testcasename(), g_pcu, g_sgsn, 11); + f_start_handlers(refers(f_TC_paging_ps_sig_lac_unknown), testcasename(), 11); f_cleanup(); } @@ -1570,7 +1569,7 @@ } testcase TC_paging_ps_sig_rac() runs on test_CT { f_init(); - f_start_handlers(refers(f_TC_paging_ps_sig_rac), testcasename(), g_pcu, g_sgsn, 15); + f_start_handlers(refers(f_TC_paging_ps_sig_rac), testcasename(), 15); f_cleanup(); } @@ -1588,7 +1587,7 @@ } testcase TC_paging_ps_sig_rac_unknown() runs on test_CT { f_init(); - f_start_handlers(refers(f_TC_paging_ps_sig_rac_unknown), testcasename(), g_pcu, g_sgsn, 11); + f_start_handlers(refers(f_TC_paging_ps_sig_rac_unknown), testcasename(), 11); f_cleanup(); } @@ -1599,7 +1598,7 @@ } testcase TC_paging_ps_sig_bvci() runs on test_CT { f_init(); - f_start_handlers(refers(f_TC_paging_ps_sig_bvci), testcasename(), g_pcu, g_sgsn, 16); + f_start_handlers(refers(f_TC_paging_ps_sig_bvci), testcasename(), 16); f_cleanup(); } @@ -1610,7 +1609,7 @@ } testcase TC_paging_ps_sig_bvci_unknown() runs on test_CT { f_init(); - f_start_handlers(refers(f_TC_paging_ps_sig_bvci_unknown), testcasename(), g_pcu, g_sgsn, 11); + f_start_handlers(refers(f_TC_paging_ps_sig_bvci_unknown), testcasename(), 11); f_cleanup(); } @@ -1731,7 +1730,7 @@ } testcase TC_paging_cs_ptp_bss() runs on test_CT { f_init(); - f_start_handlers(refers(f_TC_paging_cs_ptp_bss), testcasename(), g_pcu, g_sgsn, 17); + f_start_handlers(refers(f_TC_paging_cs_ptp_bss), testcasename(), 17); f_cleanup(); } @@ -1745,7 +1744,7 @@ } testcase TC_paging_cs_ptp_lac() runs on test_CT { f_init(); - f_start_handlers(refers(f_TC_paging_cs_ptp_lac), testcasename(), g_pcu, g_sgsn, 18); + f_start_handlers(refers(f_TC_paging_cs_ptp_lac), testcasename(), 18); f_cleanup(); } @@ -1761,7 +1760,7 @@ } testcase TC_paging_cs_ptp_lac_unknown() runs on test_CT { f_init(); - f_start_handlers(refers(f_TC_paging_cs_ptp_lac_unknown), testcasename(), g_pcu, g_sgsn, 11); + f_start_handlers(refers(f_TC_paging_cs_ptp_lac_unknown), testcasename(), 11); f_cleanup(); } @@ -1774,7 +1773,7 @@ } testcase TC_paging_cs_ptp_rac() runs on test_CT { f_init(); - f_start_handlers(refers(f_TC_paging_cs_ptp_rac), testcasename(), g_pcu, g_sgsn, 19); + f_start_handlers(refers(f_TC_paging_cs_ptp_rac), testcasename(), 19); f_cleanup(); } @@ -1793,7 +1792,7 @@ } testcase TC_paging_cs_ptp_rac_unknown() runs on test_CT { f_init(); - f_start_handlers(refers(f_TC_paging_cs_ptp_rac_unknown), testcasename(), g_pcu, g_sgsn, 11); + f_start_handlers(refers(f_TC_paging_cs_ptp_rac_unknown), testcasename(), 11); f_cleanup(); } @@ -1805,7 +1804,7 @@ } testcase TC_paging_cs_ptp_bvci() runs on test_CT { f_init(); - f_start_handlers(refers(f_TC_paging_cs_ptp_bvci), testcasename(), g_pcu, g_sgsn, 20); + f_start_handlers(refers(f_TC_paging_cs_ptp_bvci), testcasename(), 20); f_cleanup(); } @@ -1817,7 +1816,7 @@ } testcase TC_paging_cs_ptp_bvci_unknown() runs on test_CT { f_init(); - f_start_handlers(refers(f_TC_paging_cs_ptp_bvci_unknown), testcasename(), g_pcu, g_sgsn, 11); + f_start_handlers(refers(f_TC_paging_cs_ptp_bvci_unknown), testcasename(), 11); f_cleanup(); } @@ -1861,7 +1860,7 @@ } testcase TC_paging_cs_sig_bss() runs on test_CT { f_init(); - f_start_handlers(refers(f_TC_paging_cs_sig_bss), testcasename(), g_pcu, g_sgsn, 13); + f_start_handlers(refers(f_TC_paging_cs_sig_bss), testcasename(), 13); f_cleanup(); } @@ -1878,7 +1877,7 @@ } testcase TC_paging_cs_sig_lac() runs on test_CT { f_init(); - f_start_handlers(refers(f_TC_paging_cs_sig_lac), testcasename(), g_pcu, g_sgsn, 14); + f_start_handlers(refers(f_TC_paging_cs_sig_lac), testcasename(), 14); f_cleanup(); } @@ -1893,7 +1892,7 @@ } testcase TC_paging_cs_sig_lac_unknown() runs on test_CT { f_init(); - f_start_handlers(refers(f_TC_paging_cs_sig_lac_unknown), testcasename(), g_pcu, g_sgsn, 11); + f_start_handlers(refers(f_TC_paging_cs_sig_lac_unknown), testcasename(), 11); f_cleanup(); } @@ -1912,7 +1911,7 @@ } testcase TC_paging_cs_sig_rac() runs on test_CT { f_init(); - f_start_handlers(refers(f_TC_paging_cs_sig_rac), testcasename(), g_pcu, g_sgsn, 15); + f_start_handlers(refers(f_TC_paging_cs_sig_rac), testcasename(), 15); f_cleanup(); } @@ -1930,7 +1929,7 @@ } testcase TC_paging_cs_sig_rac_unknown() runs on test_CT { f_init(); - f_start_handlers(refers(f_TC_paging_cs_sig_rac_unknown), testcasename(), g_pcu, g_sgsn, 11); + f_start_handlers(refers(f_TC_paging_cs_sig_rac_unknown), testcasename(), 11); f_cleanup(); } @@ -1941,7 +1940,7 @@ } testcase TC_paging_cs_sig_bvci() runs on test_CT { f_init(); - f_start_handlers(refers(f_TC_paging_cs_sig_bvci), testcasename(), g_pcu, g_sgsn, 16); + f_start_handlers(refers(f_TC_paging_cs_sig_bvci), testcasename(), 16); f_cleanup(); } @@ -1952,7 +1951,7 @@ } testcase TC_paging_cs_sig_bvci_unknown() runs on test_CT { f_init(); - f_start_handlers(refers(f_TC_paging_cs_sig_bvci_unknown), testcasename(), g_pcu, g_sgsn, 11); + f_start_handlers(refers(f_TC_paging_cs_sig_bvci_unknown), testcasename(), 11); f_cleanup(); } @@ -1981,7 +1980,7 @@ testcase TC_flush_ll() runs on test_CT { f_init(); - f_start_handlers(refers(f_TC_flush_ll), testcasename(), g_pcu, g_sgsn, 6); + f_start_handlers(refers(f_TC_flush_ll), testcasename(), 6); /* TODO: start multiple handlers (UEs) on various cells on same and other NSEs */ f_cleanup(); } @@ -2049,7 +2048,7 @@ testcase TC_llc_discarded() runs on test_CT { f_init(); - f_start_handlers(refers(f_TC_llc_discarded), testcasename(), g_pcu, g_sgsn, 6); + f_start_handlers(refers(f_TC_llc_discarded), testcasename(), 6); /* TODO: start multiple handlers (UEs) on various cells on same and other NSEs */ f_cleanup(); } @@ -2411,7 +2410,7 @@ testcase TC_fc_ms() runs on test_CT { f_init(); - f_start_handlers(refers(f_TC_fc_ms), testcasename(), g_pcu, g_sgsn, 21); + f_start_handlers(refers(f_TC_fc_ms), testcasename(), 21); /* TODO: start multiple handlers (UEs) on various cells on same and other NSEs */ f_cleanup(); } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22237 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I0754d5db7e797a51be3a0b601b0533de80bc246d Gerrit-Change-Number: 22237 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 22:02:53 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 16 Jan 2021 22:02:53 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Unregister IMSI from BSSGP before termination of ConnHdlr In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22238 ) Change subject: gbproxy: Unregister IMSI from BSSGP before termination of ConnHdlr ...................................................................... gbproxy: Unregister IMSI from BSSGP before termination of ConnHdlr Otherwise we may run into problems where the BSSGP_Emulation still has references to longer existing components in its ClientTable. Change-Id: Iee54e93e6ae1b3e40f502d5ba2499e9eb03bf203 --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 12 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved daniel: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index caf4c66..6141f6a 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -713,6 +713,18 @@ /* call the user-supplied test case function */ fn.apply(id); + + for (i := 0; i < NUM_SGSN; i := i+1) { + if (SGSN_PROC[i].checkstate("Connected")) { + f_client_unregister(g_pars.imsi, SGSN_PROC[i]) + } + } + + for (i := 0; i < NUM_PCU; i := i+1) { + if (PCU_PROC[i].checkstate("Connected")) { + f_client_unregister(g_pars.imsi, PCU_PROC[i]) + } + } } private function f_client_register(hexstring imsi, OCT4 tlli, BSSGP_PROC_PT PT) -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22238 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Iee54e93e6ae1b3e40f502d5ba2499e9eb03bf203 Gerrit-Change-Number: 22238 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 22:02:53 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 16 Jan 2021 22:02:53 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Allow creating ConnHdlr without a P-TMSI In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22239 ) Change subject: gbproxy: Allow creating ConnHdlr without a P-TMSI ...................................................................... gbproxy: Allow creating ConnHdlr without a P-TMSI This will be useful for testing paging cases where no P-TMSI is allocated. Change-Id: Icd780c750c77e723e545ed5a5b52ef26e442b4f2 --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 10 insertions(+), 5 deletions(-) Approvals: Jenkins Builder: Verified daniel: Looks good to me, but someone else must approve pespin: Looks good to me, approved diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index 6141f6a..f1e8749 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -1,6 +1,7 @@ module GBProxy_Tests { /* Osmocom GBProxy test suite in TTCN-3 + * (C) 2020-2021 Harald Welte * (C) 2020 sysmocom - s.f.m.c. GmbH * All rights reserved. * @@ -601,8 +602,8 @@ type function void_fn(charstring id) runs on BSSGP_ConnHdlr; /* helper function to create, connect and start a BSSGP_ConnHdlr component */ -function f_start_handler(void_fn fn, charstring id, integer imsi_suffix, - float t_guard := 30.0, integer sgsn_idx := 0, integer nri_idx := 0) +function f_start_handler(void_fn fn, charstring id, integer imsi_suffix, float t_guard := 30.0, + integer sgsn_idx := 0, integer nri_idx := 0, boolean have_ptmsi := true) runs on test_CT return BSSGP_ConnHdlr { var BSSGP_ConnHdlr vc_conn; var integer nri := mp_sgsn_nri[sgsn_idx][nri_idx]; @@ -622,6 +623,9 @@ sgsn_idx := sgsn_idx, t_guard := t_guard }; + if (not have_ptmsi) { + pars.p_tmsi := omit; + } vc_conn := BSSGP_ConnHdlr.create(id); @@ -629,7 +633,8 @@ return vc_conn; } -function f_start_handlers(void_fn fn, charstring id, integer imsi_suffix, float t_guard := 30.0) +function f_start_handlers(void_fn fn, charstring id, integer imsi_suffix, float t_guard := 30.0, + boolean have_ptmsi := true) runs on test_CT { var integer sgsn_idx, nri_idx; @@ -637,8 +642,8 @@ for (nri_idx := 0; nri_idx < lengthof(mp_sgsn_nri[sgsn_idx]); nri_idx:=nri_idx+1) { var integer extd_imsi_suffix := 1000*sgsn_idx + 100*nri_idx; var BSSGP_ConnHdlr vc_conn; - vc_conn := f_start_handler(fn, id, extd_imsi_suffix, t_guard, - sgsn_idx, nri_idx); + vc_conn := f_start_handler(fn, id, extd_imsi_suffix, t_guard, sgsn_idx, nri_idx, + have_ptmsi); /* Idea: we could also run them in parallel ? */ vc_conn.done; } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22239 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Icd780c750c77e723e545ed5a5b52ef26e442b4f2 Gerrit-Change-Number: 22239 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 22:06:14 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 16 Jan 2021 22:06:14 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Osmocom_Gb_Types: Add templates for various BSSGP PDU types In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22242 ) Change subject: Osmocom_Gb_Types: Add templates for various BSSGP PDU types ...................................................................... Patch Set 3: Code-Review+2 (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22242/2/library/Osmocom_Gb_Types.ttcn File library/Osmocom_Gb_Types.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22242/2/library/Osmocom_Gb_Types.ttcn at 2097 PS2, Line 2097: mncDigit3 := mccmnc[5], > PLMN_Identity is a 'record', and I don't think you are permitted to re-order the initialization of f [?] Osmocom_Gb_Types.ttcn:2099.3-24: error: Field `mncDigit3' cannot appear after field `mncDigit2' in a template for record type `@BSSGP_Types.PLMN_Identity' -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22242 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I89044bf8e736cc1997dff1a550b3e194f8ac1b9d Gerrit-Change-Number: 22242 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Sat, 16 Jan 2021 22:06:14 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Comment-In-Reply-To: laforge Comment-In-Reply-To: daniel Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 22:07:40 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 16 Jan 2021 22:07:40 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Test PS-PAGING by IMSI (without P-TMSI) In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22240 ) Change subject: gbproxy: Test PS-PAGING by IMSI (without P-TMSI) ...................................................................... gbproxy: Test PS-PAGING by IMSI (without P-TMSI) Related: OS#4951 Change-Id: I1bdc09712790d4b69df147ed9c7bea15c48e8dea --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 18 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved daniel: Looks good to me, but someone else must approve diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index f1e8749..0513c02 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -1460,6 +1460,15 @@ f_cleanup(); } + +/* PS-PAGING on PTP-BVC for BVCI (one cell) using IMSI only (no P-TMSI allocated) */ +testcase TC_paging_ps_ptp_bvci_imsi() runs on test_CT { + f_init(); + f_start_handlers(refers(f_TC_paging_ps_ptp_bvci), testcasename(), 12, have_ptmsi:=false); + f_cleanup(); +} + + /* PS-PAGING on PTP-BVC for unknown BVCI */ private function f_TC_paging_ps_ptp_bvci_unknown(charstring id) runs on BSSGP_ConnHdlr { @@ -1619,6 +1628,13 @@ f_cleanup(); } +/* PS-PAGING on SIG-BVC for BVCI (one cell) using IMSI only (no P-TMSI allocated) */ +testcase TC_paging_ps_sig_bvci_imsi() runs on test_CT { + f_init(); + f_start_handlers(refers(f_TC_paging_ps_sig_bvci), testcasename(), 16, have_ptmsi:=false); + f_cleanup(); +} + /* PS-PAGING on SIG-BVC for unknown BVCI */ private function f_TC_paging_ps_sig_bvci_unknown(charstring id) runs on BSSGP_ConnHdlr { @@ -2464,6 +2480,7 @@ execute( TC_paging_ps_ptp_rac() ); execute( TC_paging_ps_ptp_rac_unknown() ); execute( TC_paging_ps_ptp_bvci() ); + execute( TC_paging_ps_ptp_bvci_imsi() ); execute( TC_paging_ps_ptp_bvci_unknown() ); /* PAGING-PS over SIG BVC */ @@ -2473,6 +2490,7 @@ execute( TC_paging_ps_sig_rac() ); execute( TC_paging_ps_sig_rac_unknown() ); execute( TC_paging_ps_sig_bvci() ); + execute( TC_paging_ps_sig_bvci_imsi() ); execute( TC_paging_ps_sig_bvci_unknown() ); /* PAGING-CS over PTP BVC */ -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22240 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I1bdc09712790d4b69df147ed9c7bea15c48e8dea Gerrit-Change-Number: 22240 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 22:07:42 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 16 Jan 2021 22:07:42 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Osmocom_Gb_Types: Add 3GPP spec chapters; unify formatting In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22241 ) Change subject: Osmocom_Gb_Types: Add 3GPP spec chapters; unify formatting ...................................................................... Osmocom_Gb_Types: Add 3GPP spec chapters; unify formatting Change-Id: I9c3e5458ba7637a1e85f7bb3b32e16a90fad7bc5 --- M library/Osmocom_Gb_Types.ttcn 1 file changed, 21 insertions(+), 11 deletions(-) Approvals: Jenkins Builder: Verified daniel: Looks good to me, approved diff --git a/library/Osmocom_Gb_Types.ttcn b/library/Osmocom_Gb_Types.ttcn index 8ca0cd5..9054785 100644 --- a/library/Osmocom_Gb_Types.ttcn +++ b/library/Osmocom_Gb_Types.ttcn @@ -1076,7 +1076,7 @@ rA_CAP_UPD_Cause_value := cause } - + /* 10.4.12 */ template PDU_BSSGP ts_BVC_RESET(BssgpCause cause, BssgpBvci bvci, template BssgpCellId cell_id) := { pDU_BSSGP_BVC_RESET := { @@ -1088,7 +1088,6 @@ extended_Feature_Bitmap := omit } } - template PDU_BSSGP tr_BVC_RESET(template BssgpCause cause, template BssgpBvci bvci, template BssgpCellId cell_id) := { pDU_BSSGP_BVC_RESET := { @@ -1101,6 +1100,7 @@ } } + /* 10.4.13 */ template PDU_BSSGP ts_BVC_RESET_ACK(BssgpBvci bvci, template BssgpCellId cell_id) := { pDU_BSSGP_BVC_RESET_ACK := { bssgpPduType := '23'O, @@ -1110,7 +1110,6 @@ extended_Feature_Bitmap := omit } } - template PDU_BSSGP tr_BVC_RESET_ACK(template BssgpBvci bvci, template BssgpCellId cell_id) := { pDU_BSSGP_BVC_RESET_ACK := { bssgpPduType := '23'O, @@ -1122,6 +1121,7 @@ } + /* 10.4.10 */ template PDU_BSSGP t_BVC_UNBLOCK(template BssgpBvci bvci) := { pDU_BSSGP_BVC_UNBLOCK := { bssgpPduType := '24'O, @@ -1129,6 +1129,7 @@ } } + /* 10.4.11 */ template PDU_BSSGP t_BVC_UNBLOCK_ACK(template BssgpBvci bvci) := { pDU_BSSGP_BVC_UNBLOCK_ACK := { bssgpPduType := '25'O, @@ -1136,6 +1137,7 @@ } } + /* 10.4.8 */ template PDU_BSSGP t_BVC_BLOCK(template BssgpBvci bvci, template BssgpCause cause) := { pDU_BSSGP_BVC_BLOCK := { bssgpPduType := '20'O, @@ -1144,6 +1146,7 @@ } } + /* 10.4.9 */ template PDU_BSSGP t_BVC_BLOCK_ACK(template BssgpBvci bvci) := { pDU_BSSGP_BVC_BLOCK_ACK := { bssgpPduType := '21'O, @@ -1151,6 +1154,7 @@ } } + /* 10.4.4 */ template PDU_BSSGP t_BVC_FC_BVC(uint16_t bmax, uint16_t bucket_leak_rate, uint16_t bmax_default_ms, uint16_t r_default_ms, OCT1 tag) := { pDU_BSSGP_FLOW_CONTROL_BVC := { @@ -1253,6 +1257,7 @@ } } + /* 10.4.5 */ template PDU_BSSGP t_BVC_FC_BVC_ACK(template OCT1 tag) := { pDU_BSSGP_FLOW_CONTROL_BVC_ACK := { bssgpPduType := '27'O, @@ -1267,6 +1272,7 @@ } } + /* 10.4.6 */ template (value) PDU_BSSGP ts_BVC_FC_MS(GprsTlli tlli, uint16_t bmax, uint16_t bucket_leak_rate, OCT1 tag) := { pDU_BSSGP_FLOW_CONTROL_MS := { @@ -1336,6 +1342,7 @@ } } + /* 10.4.7 */ template (value) PDU_BSSGP ts_BVC_FC_MS_ACK(template (value) GprsTlli tlli, template (value) OCT1 tag) := { @@ -1369,6 +1376,7 @@ } } + /* 10.4.14 */ template PDU_BSSGP ts_BSSGP_STATUS(template BssgpBvci bvci, template BssgpCause cause, PDU_BSSGP pdu) := { pDU_BSSGP_STATUS := { @@ -1385,7 +1393,6 @@ } } } - template PDU_BSSGP tr_BSSGP_STATUS(template BVCI bvci := ?, template BssgpCause cause := ?, template octetstring pdu := ?) := { pDU_BSSGP_STATUS := { @@ -1571,6 +1578,7 @@ } } + /* 10.2.1 */ template PDU_BSSGP ts_BSSGP_DL_UD(GprsTlli tlli, octetstring pdu, template (omit) MSRadioAccessCapabilityV_BSSGP racap := omit, template (omit) IMSI_BSSGP imsi := omit) := { @@ -1602,7 +1610,6 @@ initialLLC_PDU := omit } } - template PDU_BSSGP tr_BSSGP_DL_UD(template (present) GprsTlli tlli, template (present) octetstring pdu, template IMSI_BSSGP imsi := omit) := { pDU_BSSGP_DL_UNITDATA := { @@ -1634,6 +1641,7 @@ } } + /* 10.2.2 */ template PDU_BSSGP ts_BSSGP_UL_UD(GprsTlli tlli, BssgpCellId cell_id, octetstring payload) := { pDU_BSSGP_UL_UNITDATA := { bssgpPduType := '01'O, @@ -1652,7 +1660,6 @@ lLC_PDU := ts_BSSGP_LLC_PDU(payload) } } - template PDU_BSSGP tr_BSSGP_UL_UD(template GprsTlli tlli := ?, template BssgpCellId cell_id := ?, template octetstring payload := ?) := { pDU_BSSGP_UL_UNITDATA := { @@ -1673,6 +1680,7 @@ } } + /* 10.3.2 */ template PDU_BSSGP tr_BSSGP_CS_PAGING(BssgpBvci bvci) := { pDU_BSSGP_PAGING_CS := { bssgpPduType := '07'O, @@ -1688,7 +1696,6 @@ global_CN_Id := * } } - template PDU_BSSGP ts_BSSGP_CS_PAGING_IMSI(BssgpBvci bvci, hexstring imsi) := { pDU_BSSGP_PAGING_CS := { bssgpPduType := '07'O, @@ -1704,7 +1711,6 @@ global_CN_Id := omit } } - template PDU_BSSGP ts_BSSGP_CS_PAGING_PTMSI(BssgpBvci bvci, hexstring imsi, GsmTmsi tmsi) := { pDU_BSSGP_PAGING_CS := { bssgpPduType := '07'O, @@ -1721,6 +1727,7 @@ } } + /* 10.3.1 */ template PDU_BSSGP tr_BSSGP_PS_PAGING(template BssgpBvci bvci) := { pDU_BSSGP_PAGING_PS := { bssgpPduType := '06'O, @@ -1736,7 +1743,6 @@ eDRX_Paremeters := * } } - template PDU_BSSGP ts_BSSGP_PS_PAGING_IMSI(BssgpBvci bvci, hexstring imsi) := { pDU_BSSGP_PAGING_PS := { bssgpPduType := '06'O, @@ -1752,7 +1758,6 @@ eDRX_Paremeters := omit } } - template PDU_BSSGP ts_BSSGP_PS_PAGING_PTMSI(BssgpBvci bvci, hexstring imsi, GsmTmsi tmsi) := { pDU_BSSGP_PAGING_PS := { bssgpPduType := '06'O, @@ -1823,6 +1828,7 @@ rac := int2oct(input.rac, 1) } + /* 10.3.6 */ template (value) PDU_BSSGP ts_BSSGP_SUSPEND(GprsTlli tlli, RoutingAreaIdentification ra_id) := { pDU_BSSGP_SUSPEND := { bssgpPduType := '0B'O, @@ -1838,6 +1844,7 @@ } } + /* 10.3.7 */ template (value) PDU_BSSGP ts_BSSGP_SUSPEND_ACK(GprsTlli tlli, RoutingAreaIdentification ra_id, template (value) OCT1 susp_ref) := { pDU_BSSGP_SUSPEND_ACK := { @@ -1857,6 +1864,7 @@ } } + /* 10.3.8 */ template (value) PDU_BSSGP ts_BSSGP_SUSPEND_NACK(GprsTlli tlli, RoutingAreaIdentification ra_id, template (omit) BssgpCause cause) := { pDU_BSSGP_SUSPEND_NACK := { @@ -1877,7 +1885,7 @@ } - + /* 10.3.9 */ template (value) PDU_BSSGP ts_BSSGP_RESUME(GprsTlli tlli, RoutingAreaIdentification ra_id, OCT1 susp_ref) := { pDU_BSSGP_RESUME := { @@ -1897,6 +1905,7 @@ } } + /* 10.3.10 */ template (value) PDU_BSSGP ts_BSSGP_RESUME_ACK(GprsTlli tlli, RoutingAreaIdentification ra_id) := { pDU_BSSGP_RESUME_ACK := { @@ -1914,6 +1923,7 @@ } } + /* 10.3.11 */ template (value) PDU_BSSGP ts_BSSGP_RESUME_NACK(GprsTlli tlli, RoutingAreaIdentification ra_id, template (omit) BssgpCause cause) := { pDU_BSSGP_RESUME_NACK := { -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22241 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I9c3e5458ba7637a1e85f7bb3b32e16a90fad7bc5 Gerrit-Change-Number: 22241 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 22:07:42 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 16 Jan 2021 22:07:42 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Osmocom_Gb_Types: Add templates for various BSSGP PDU types In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22242 ) Change subject: Osmocom_Gb_Types: Add templates for various BSSGP PDU types ...................................................................... Osmocom_Gb_Types: Add templates for various BSSGP PDU types Related: OS#4951 Change-Id: I89044bf8e736cc1997dff1a550b3e194f8ac1b9d --- M library/Osmocom_Gb_Types.ttcn 1 file changed, 204 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/library/Osmocom_Gb_Types.ttcn b/library/Osmocom_Gb_Types.ttcn index 9054785..b82ca32 100644 --- a/library/Osmocom_Gb_Types.ttcn +++ b/library/Osmocom_Gb_Types.ttcn @@ -946,6 +946,24 @@ lengthIndicator := { length1 := 4 }, tMSI_Value := int2oct(tmsi, 4) } + private function f_ts_BSSGP_TMSI(template (omit) GsmTmsi tmsi) return template (omit) TMSI_BSSGP { + if (istemplatekind(tmsi, "omit")) { + return omit; + } else { + return ts_BSSGP_TMSI(valueof(tmsi)); + } + } + private function f_tr_BSSGP_TMSI(template GsmTmsi tmsi) return template TMSI_BSSGP { + if (istemplatekind(tmsi, "omit")) { + return omit; + } else if (istemplatekind(tmsi, "*")) { + return *; + } else if (istemplatekind(tmsi, "?")) { + return ?; + } else { + return tr_BSSGP_TMSI(valueof(tmsi)); + } + } function f_bssgp_length_ind(integer len) return LIN2_2a { var LIN2_2a ret; @@ -1828,6 +1846,28 @@ rac := int2oct(input.rac, 1) } + private function f_ts_BSSGP_RA_ID(template (omit) GSM_Types.RoutingAreaIdentification input) + return template (omit) Routeing_Area { + if (istemplatekind(input, "omit")) { + return omit; + } else { + return ts_BSSGP_RA_ID(valueof(input)); + } + } + + private function f_tr_BSSGP_RA_ID(template GSM_Types.RoutingAreaIdentification input) + return template Routeing_Area { + if (istemplatekind(input, "omit")) { + return omit; + } else if (istemplatekind(input, "*")) { + return *; + } else if (istemplatekind(input, "?")) { + return ?; + } else { + return ts_BSSGP_RA_ID(valueof(input)); + } + } + /* 10.3.6 */ template (value) PDU_BSSGP ts_BSSGP_SUSPEND(GprsTlli tlli, RoutingAreaIdentification ra_id) := { pDU_BSSGP_SUSPEND := { @@ -1944,6 +1984,170 @@ } } + /* 10.3.12 */ + template (value) PDU_BSSGP ts_BSSGP_DUMMY_PAGING_PS(hexstring imsi, + template (omit) RoutingAreaIdentification ra) := { + pDU_BSSGP_DUMMY_PAGING_PS := { + bssgpPduType := '12'O, + iMSI := ts_BSSGP_IMSI(imsi), + routeing_Area := f_ts_BSSGP_RA_ID(ra), + eDRX_Paremeters := omit + } + } + template (present) PDU_BSSGP tr_BSSGP_DUMMY_PAGING_PS(hexstring imsi, + template RoutingAreaIdentification ra) := { + pDU_BSSGP_DUMMY_PAGING_PS := { + bssgpPduType := '12'O, + iMSI := tr_BSSGP_IMSI(imsi), + routeing_Area := f_tr_BSSGP_RA_ID(ra), + eDRX_Paremeters := omit + } + } + + template (value) Time_Until_Next_Paging_Occasion ts_TimeNextPag(uint8_t mins, uint8_t secs) := { + iEI := '93'O, + ext := '1'B, + lengthIndicator := { + length1 := 2 + }, + minutes := mins, + spare := '00'B, + seconds := secs, + spare2 := '00'B + } + template (present) Time_Until_Next_Paging_Occasion tr_TimeNextPag(template (present) uint8_t mins, + template (present) uint8_t secs) := { + iEI := '93'O, + ext := '1'B, + lengthIndicator := { + length1 := 2 + }, + minutes := mins, + spare := ?, + seconds := secs, + spare2 := ? + } + + /* 10.3.13 */ + template (value) PDU_BSSGP ts_BSSGP_DUMMY_PAGING_PS_RESP(hexstring imsi, uint8_t mins, uint8_t secs) := { + pDU_BSSGP_DUMMY_PAGING_PS_RESPONSE := { + bssgpPduType := '13'O, + iMSI := ts_BSSGP_IMSI(imsi), + time_Until_Next_Paging_Occasion := ts_TimeNextPag(mins, secs) + } + } + template (present) PDU_BSSGP tr_BSSGP_DUMMY_PAGING_PS_RESP(hexstring imsi, + template (present) uint8_t mins, + template (present) uint8_t secs) := { + pDU_BSSGP_DUMMY_PAGING_PS_RESPONSE := { + bssgpPduType := '13'O, + iMSI := tr_BSSGP_IMSI(imsi), + time_Until_Next_Paging_Occasion := tr_TimeNextPag(mins, secs) + } + } + + /* 10.3.14 */ + template (value) PDU_BSSGP ts_BSSGP_PAGING_PS_REJ(hexstring imsi, uint8_t mins, uint8_t secs, + template (omit) GsmTmsi tmsi) := { + pDU_BSSGP_PAGING_PS_REJECT := { + bssgpPduType := '11'O, + iMSI := ts_BSSGP_IMSI(imsi), + pTMSI := f_ts_BSSGP_TMSI(tmsi), + time_Until_Next_Paging_Occasion := ts_TimeNextPag(mins, secs) + } + } + template (present) PDU_BSSGP tr_BSSGP_PAGING_PS_REJ(hexstring imsi, + template (present) uint8_t mins, + template (present) uint8_t secs, + template GsmTmsi tmsi) := { + pDU_BSSGP_PAGING_PS_REJECT := { + bssgpPduType := '11'O, + iMSI := tr_BSSGP_IMSI(imsi), + pTMSI := f_tr_BSSGP_TMSI(tmsi), + time_Until_Next_Paging_Occasion := tr_TimeNextPag(mins, secs) + } + } + + /* 10.3.15 */ + template (value) PDU_BSSGP ts_BSSGP_MS_REG_ENQ(hexstring imsi) := { + pDU_BSSGP_MS_REGISTRATION_ENQUIRY := { + bssgpPduType := '14'O, + iMSI := ts_BSSGP_IMSI(imsi), + mME_Query := omit + } + } + template (present) PDU_BSSGP tr_BSSGP_MS_REG_ENQ(hexstring imsi) := { + pDU_BSSGP_MS_REGISTRATION_ENQUIRY := { + bssgpPduType := '14'O, + iMSI := tr_BSSGP_IMSI(imsi), + mME_Query := * + } + } + + /* 11.3.126 */ + template (value) PLMN_Identity ts_BSSGP_PlmnId(template (value) BcdMccMnc mccmnc) := { + iEI := '96'O, + ext := '1'B, + lengthIndicator := { + length1 := 3 + }, + mccDigit1 := mccmnc[0], + mccDigit2 := mccmnc[1], + mccDigit3 := mccmnc[2], + mncDigit3 := mccmnc[5], + mncDigit1 := mccmnc[3], + mncDigit2 := mccmnc[4] + } + template (present) PLMN_Identity tr_BSSGP_PlmnId(template (present) BcdMccMnc mccmnc) := { + iEI := '96'O, + ext := '1'B, + lengthIndicator := { + length1 := 3 + }, + mccDigit1 := mccmnc[0], + mccDigit2 := mccmnc[1], + mccDigit3 := mccmnc[2], + mncDigit3 := mccmnc[5], + mncDigit1 := mccmnc[3], + mncDigit2 := mccmnc[4] + } + private function f_ts_BSSGP_PlmnId(template (omit) BcdMccMnc mccmnc) + return template (omit) PLMN_Identity { + if (istemplatekind(mccmnc, "omit")) { + return omit; + } else { + return ts_BSSGP_PlmnId(mccmnc); + } + } + private function f_tr_BSSGP_PlmnId(template BcdMccMnc mccmnc) + return template PLMN_Identity { + if (istemplatekind(mccmnc, "omit")) { + return omit; + } else if (istemplatekind(mccmnc, "*")) { + return *; + } else if (istemplatekind(mccmnc, "?")) { + return ?; + } else { + return ts_BSSGP_PlmnId(mccmnc); + } + } + + /* 10.3.16 */ + template (value) PDU_BSSGP ts_BSSGP_MS_REW_ENQ_RESP(hexstring imsi, template (omit) BcdMccMnc mccmnc) := { + pDU_BSSGP_MS_REGISTRATION_ENQUIRY_RESPONSE := { + bssgpPduType := '15'O, + iMSI := ts_BSSGP_IMSI(imsi), + pS_Registered_Operator := f_ts_BSSGP_PlmnId(mccmnc) + } + } + template (present) PDU_BSSGP tr_BSSGP_MS_REW_ENQ_RESP(hexstring imsi, template BcdMccMnc mccmnc) := { + pDU_BSSGP_MS_REGISTRATION_ENQUIRY_RESPONSE := { + bssgpPduType := '15'O, + iMSI := tr_BSSGP_IMSI(imsi), + pS_Registered_Operator := f_tr_BSSGP_PlmnId(mccmnc) + } + } + /* 10.4.1 */ template (value) PDU_BSSGP ts_BSSGP_FLUSH_LL(GprsTlli tlli, template (value) BssgpBvci bvci_old, template (omit) BssgpBvci bvci_new := omit, -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22242 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I89044bf8e736cc1997dff1a550b3e194f8ac1b9d Gerrit-Change-Number: 22242 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 22:07:43 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 16 Jan 2021 22:07:43 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Add test case for PAGING-PS-REJECT In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22243 ) Change subject: gbproxy: Add test case for PAGING-PS-REJECT ...................................................................... gbproxy: Add test case for PAGING-PS-REJECT The test fail with current osmo-gbproxy master, as the related implementation is missing. Related: OS#4951 Change-Id: I19a36dfef8f33f278a54b938a5daccce08de6fe0 --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 93 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified daniel: Looks good to me, but someone else must approve pespin: Looks good to me, approved diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index 0513c02..0767331 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -1468,6 +1468,26 @@ f_cleanup(); } +/* Rejected PS-PAGING on PTP-BVC for BVCI (one cell) */ +testcase TC_paging_ps_reject_ptp_bvci() runs on test_CT { + f_init(); + f_start_handlers(refers(f_TC_paging_ps_reject_ptp_bvci), testcasename(), 16); + f_cleanup(); +} + +/* Rejected PS-PAGING on PTP-BVC for BVCI (one cell) using IMSI only (no P-TMSI allocated) */ +private function f_TC_paging_ps_reject_ptp_bvci(charstring id) runs on BSSGP_ConnHdlr +{ + /* first send the PS-PAGING from SGSN -> PCU */ + f_send_paging_ps_exp_one_bss(ts_BssgpP4Bvci(pcu_bvc_cfg[0].bvci), 0, false, 0); + /* then simulate the PS-PAGING-REJECT from the PCU */ + f_send_paging_ps_rej(use_sig:=false); +} +testcase TC_paging_ps_reject_ptp_bvci_imsi() runs on test_CT { + f_init(); + f_start_handlers(refers(f_TC_paging_ps_reject_ptp_bvci), testcasename(), 16, have_ptmsi:=false); + f_cleanup(); +} /* PS-PAGING on PTP-BVC for unknown BVCI */ private function f_TC_paging_ps_ptp_bvci_unknown(charstring id) runs on BSSGP_ConnHdlr @@ -1536,6 +1556,53 @@ setverdict(pass); } +/* Send PAGING-PS-REJECT on SIG BVC, expect it to arrive on the "right" SGSN */ +private function f_send_paging_ps_rej(boolean use_sig := true, integer pcu_idx := 0) runs on BSSGP_ConnHdlr +{ + var template (value) PDU_BSSGP pdu_tx; + var template (present) PDU_BSSGP exp_rx; + var PDU_BSSGP pdu_rx; + timer T := 5.0; + var template (omit) GsmTmsi tmsi_int := omit; + + if (ispresent(g_pars.p_tmsi)) { + tmsi_int := oct2int(g_pars.p_tmsi); + } + + pdu_tx := ts_BSSGP_PAGING_PS_REJ(g_pars.imsi, 23, 42, tmsi_int); + exp_rx := tr_BSSGP_PAGING_PS_REJ(g_pars.imsi, 23, 42, tmsi_int); + + if (use_sig) { + PCU_SIG[pcu_idx].send(pdu_tx); + } else { + PCU_PTP[pcu_idx].send(pdu_tx); + } + T.start; + alt { + [use_sig] SGSN_SIG[g_pars.sgsn_idx].receive(exp_rx) -> value pdu_rx { + setverdict(pass); + } + [use_sig] SGSN_SIG[g_pars.sgsn_idx].receive { + setverdict(fail, "Unexpected PDU on SGSN"); + } + [use_sig] any from SGSN_SIG.receive(exp_rx) -> value pdu_rx { + setverdict(fail, "PAGING-PS-REJECT arrived on wrong SGSN"); + } + [not use_sig] SGSN_PTP[g_pars.sgsn_idx].receive(exp_rx) -> value pdu_rx { + setverdict(pass); + } + [not use_sig] SGSN_PTP[g_pars.sgsn_idx].receive { + setverdict(fail, "Unexpected PDU on SGSN"); + } + [not use_sig] any from SGSN_PTP.receive(exp_rx) -> value pdu_rx { + setverdict(fail, "PAGING-PS-REJECT arrived on wrong SGSN"); + } + [] T.timeout { + setverdict(fail, "Timeout waiting for PAGING-PS-REJECT"); + } + } +} + /* PS-PAGING on SIG-BVC for BSS Area */ private function f_TC_paging_ps_sig_bss(charstring id) runs on BSSGP_ConnHdlr { @@ -1635,6 +1702,28 @@ f_cleanup(); } +/* Rejected PS-PAGING on SIG-BVC for BVCI (one cell) */ +private function f_TC_paging_ps_reject_sig_bvci(charstring id) runs on BSSGP_ConnHdlr +{ + /* first send the PS-PAGING from SGSN -> PCU */ + f_send_paging_ps_exp_multi(ts_BssgpP4Bvci(pcu_bvc_cfg[0].bvci), 0, {0}); + /* then simulate the PS-PAGING-REJECT from the PCU */ + f_send_paging_ps_rej(use_sig:=true); + +} +testcase TC_paging_ps_reject_sig_bvci() runs on test_CT { + f_init(); + f_start_handlers(refers(f_TC_paging_ps_reject_sig_bvci), testcasename(), 16); + f_cleanup(); +} + +/* Rejected PS-PAGING on SIG-BVC for BVCI (one cell) using IMSI only (no P-TMSI allocated) */ +testcase TC_paging_ps_reject_sig_bvci_imsi() runs on test_CT { + f_init(); + f_start_handlers(refers(f_TC_paging_ps_reject_sig_bvci), testcasename(), 16, have_ptmsi:=false); + f_cleanup(); +} + /* PS-PAGING on SIG-BVC for unknown BVCI */ private function f_TC_paging_ps_sig_bvci_unknown(charstring id) runs on BSSGP_ConnHdlr { @@ -2482,6 +2571,8 @@ execute( TC_paging_ps_ptp_bvci() ); execute( TC_paging_ps_ptp_bvci_imsi() ); execute( TC_paging_ps_ptp_bvci_unknown() ); + execute( TC_paging_ps_reject_ptp_bvci() ); + execute( TC_paging_ps_reject_ptp_bvci_imsi() ); /* PAGING-PS over SIG BVC */ execute( TC_paging_ps_sig_bss() ); @@ -2492,6 +2583,8 @@ execute( TC_paging_ps_sig_bvci() ); execute( TC_paging_ps_sig_bvci_imsi() ); execute( TC_paging_ps_sig_bvci_unknown() ); + execute( TC_paging_ps_reject_sig_bvci() ); + execute( TC_paging_ps_reject_sig_bvci_imsi() ); /* PAGING-CS over PTP BVC */ execute( TC_paging_cs_ptp_bss() ); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22243 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I19a36dfef8f33f278a54b938a5daccce08de6fe0 Gerrit-Change-Number: 22243 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 22:07:43 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 16 Jan 2021 22:07:43 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Test cases for DUMMY-PAGING-PS In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22244 ) Change subject: gbproxy: Test cases for DUMMY-PAGING-PS ...................................................................... gbproxy: Test cases for DUMMY-PAGING-PS The test case fails with current master, as osmo-gbproxy doesn't handle this yet. Change-Id: Ie67f36502d18e9a62373973b09e758a7d0d0f3a5 --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 30 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified daniel: Looks good to me, but someone else must approve pespin: Looks good to me, approved diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index 0767331..ad95bff 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -1501,6 +1501,20 @@ f_cleanup(); } +/* DUMMY PAGING PS on PTP BVC */ +private function f_TC_dummy_paging_ps_ptp(charstring id) runs on BSSGP_ConnHdlr +{ + f_sgsn2pcu(ts_BSSGP_DUMMY_PAGING_PS(g_pars.imsi, omit), + tr_BSSGP_DUMMY_PAGING_PS(g_pars.imsi, omit), use_sig := false); + f_pcu2sgsn(ts_BSSGP_DUMMY_PAGING_PS_RESP(g_pars.imsi, 1, 5), + tr_BSSGP_DUMMY_PAGING_PS_RESP(g_pars.imsi, 1, 5), use_sig := false) +} +testcase TC_dummy_paging_ps_ptp() runs on test_CT { + f_init(); + f_start_handlers(refers(f_TC_dummy_paging_ps_ptp), testcasename(), 11); + f_cleanup(); +} + /* altstep for expecting BSSGP PDU on signaling BVC of given pcu_idx + storing in 'roi' */ private altstep as_paging_sig_pcu(integer pcu_idx, template (present) PDU_BSSGP exp_rx, inout ro_integer roi) runs on BSSGP_ConnHdlr { @@ -1735,6 +1749,20 @@ f_cleanup(); } +/* DUMMY PAGING PS on SIG BVC */ +private function f_TC_dummy_paging_ps_sig(charstring id) runs on BSSGP_ConnHdlr +{ + f_sgsn2pcu(ts_BSSGP_DUMMY_PAGING_PS(g_pars.imsi, omit), + tr_BSSGP_DUMMY_PAGING_PS(g_pars.imsi, omit), use_sig := true); + f_pcu2sgsn(ts_BSSGP_DUMMY_PAGING_PS_RESP(g_pars.imsi, 1, 5), + tr_BSSGP_DUMMY_PAGING_PS_RESP(g_pars.imsi, 1, 5), use_sig := true) +} +testcase TC_dummy_paging_ps_sig() runs on test_CT { + f_init(); + f_start_handlers(refers(f_TC_dummy_paging_ps_sig), testcasename(), 11); + f_cleanup(); +} + /*********************************************************************** @@ -2573,6 +2601,7 @@ execute( TC_paging_ps_ptp_bvci_unknown() ); execute( TC_paging_ps_reject_ptp_bvci() ); execute( TC_paging_ps_reject_ptp_bvci_imsi() ); + execute( TC_dummy_paging_ps_ptp() ); /* PAGING-PS over SIG BVC */ execute( TC_paging_ps_sig_bss() ); @@ -2585,6 +2614,7 @@ execute( TC_paging_ps_sig_bvci_unknown() ); execute( TC_paging_ps_reject_sig_bvci() ); execute( TC_paging_ps_reject_sig_bvci_imsi() ); + execute( TC_dummy_paging_ps_sig() ); /* PAGING-CS over PTP BVC */ execute( TC_paging_cs_ptp_bss() ); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22244 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ie67f36502d18e9a62373973b09e758a7d0d0f3a5 Gerrit-Change-Number: 22244 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 22:07:44 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 16 Jan 2021 22:07:44 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Add testcase for MS-REGISTRATION ENQUIRY In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22245 ) Change subject: gbproxy: Add testcase for MS-REGISTRATION ENQUIRY ...................................................................... gbproxy: Add testcase for MS-REGISTRATION ENQUIRY The test case fails with current master, as osmo-gbproxy doesn't handle this yet. Change-Id: I158dfa729315a9678a7fbb33ed465b73dfc9ec4b --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 15 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified daniel: Looks good to me, but someone else must approve pespin: Looks good to me, approved diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index ad95bff..dc5756c 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -2565,7 +2565,21 @@ f_cleanup(); } +/*********************************************************************** + * MS-REGISTRATION ENQUIRY procedure + ***********************************************************************/ +private function f_TC_ms_reg_enq(charstring id) runs on BSSGP_ConnHdlr +{ + f_pcu2sgsn(ts_BSSGP_MS_REG_ENQ(g_pars.imsi), tr_BSSGP_MS_REG_ENQ(g_pars.imsi), use_sig := true); + f_sgsn2pcu(ts_BSSGP_MS_REW_ENQ_RESP(g_pars.imsi, omit), tr_BSSGP_MS_REW_ENQ_RESP(g_pars.imsi, omit), use_sig := true); +} +testcase TC_ms_reg_enq() runs on test_CT +{ + f_init(); + f_start_handlers(refers(f_TC_ms_reg_enq), testcasename(), 22); + f_cleanup(); +} control { execute( TC_BVC_bringup() ); @@ -2638,6 +2652,7 @@ execute( TC_flush_ll() ); execute( TC_fc_bvc() ); execute( TC_fc_ms() ); + execute( TC_ms_reg_enq() ); } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22245 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I158dfa729315a9678a7fbb33ed465b73dfc9ec4b Gerrit-Change-Number: 22245 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 22:08:05 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 16 Jan 2021 22:08:05 +0000 Subject: Change in libosmocore[master]: ns2: Add sanity check In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22234 ) Change subject: ns2: Add sanity check ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22234 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I7ca4cd1c5dac8b5e44ffc4825b9373b2d04911ab Gerrit-Change-Number: 22234 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 16 Jan 2021 22:08:05 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 22:08:08 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 16 Jan 2021 22:08:08 +0000 Subject: Change in libosmocore[master]: ns2: Add sanity check In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22234 ) Change subject: ns2: Add sanity check ...................................................................... ns2: Add sanity check Prevent memory corruption or segfaults by asserting that NSE and bind link layer match. A mismatch should never happen and might cause the bind to access invalid memory when sending because nsvc->priv doesn't match what it expects. Change-Id: I7ca4cd1c5dac8b5e44ffc4825b9373b2d04911ab Related: OS#4948 --- M src/gb/gprs_ns2.c 1 file changed, 3 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c index e43b636..3ca87a4 100644 --- a/src/gb/gprs_ns2.c +++ b/src/gb/gprs_ns2.c @@ -490,6 +490,9 @@ struct gprs_ns2_vc *ns2_vc_alloc(struct gprs_ns2_vc_bind *bind, struct gprs_ns2_nse *nse, bool initiater, enum gprs_ns2_vc_mode vc_mode) { + /* Sanity check */ + OSMO_ASSERT(bind->ll == nse->ll); + struct gprs_ns2_vc *nsvc = talloc_zero(bind, struct gprs_ns2_vc); if (!nsvc) -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22234 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I7ca4cd1c5dac8b5e44ffc4825b9373b2d04911ab Gerrit-Change-Number: 22234 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 22:09:04 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 16 Jan 2021 22:09:04 +0000 Subject: Change in libosmocore[master]: Refactor ns2_nsvc_create_ip* In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22235 ) Change subject: Refactor ns2_nsvc_create_ip* ...................................................................... Patch Set 2: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/22235/2/src/gb/gprs_ns2_sns.c File src/gb/gprs_ns2_sns.c: https://gerrit.osmocom.org/c/libosmocore/+/22235/2/src/gb/gprs_ns2_sns.c at 258 PS2, Line 258: static void ns2_vc_create_ip(struct osmo_fsm_inst *fi, struct gprs_ns2_nse *nse, struct osmo_sockaddr *remote, 'remote' could probably be 'const', but not critical. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22235 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I076d53bee2e67e1cb3ad6ee5cd05c63ebe3359fb Gerrit-Change-Number: 22235 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 16 Jan 2021 22:09:04 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 22:10:56 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 16 Jan 2021 22:10:56 +0000 Subject: Change in osmo-bts[master]: paging: refactor and optimize fill_paging_type_1() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/22224 ) Change subject: paging: refactor and optimize fill_paging_type_1() ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22224 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I90473356b396e5dd9326598aca025afacca4afc8 Gerrit-Change-Number: 22224 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 16 Jan 2021 22:10:56 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 16 22:11:51 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 16 Jan 2021 22:11:51 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: clear local and remote entries when SNS failed In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22206 ) Change subject: gprs_ns2_sns: clear local and remote entries when SNS failed ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22206 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie4db81acdd5f8ddf1a1f5dc7645d1144545d9c73 Gerrit-Change-Number: 22206 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 16 Jan 2021 22:11:51 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Sun Jan 17 01:48:51 2021 From: admin at opensuse.org (OBS Notification) Date: Sun, 17 Jan 2021 01:48:51 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.10/x86_64 In-Reply-To: References: Message-ID: <600397a328a17_6532aec7c1d860014978eb@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/xUbuntu_20.10/x86_64 Package network:osmocom:nightly/simtrace2 failed to build in xUbuntu_20.10/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 116s] [COMPILING apps/dfu/main.c] [ 117s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 117s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 117s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 117s] Memory region Used Size Region Size %age Used [ 117s] rom: 16580 B 16 KB 101.20% [ 117s] ram: 11672 B 48 KB 23.75/usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 117s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 117s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 117s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 117s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 117s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 117s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 196 bytes [ 117s] collect2: error: ld returned 1 exit status [ 117s] % [ 117s] make[2]: *** [Makefile:234: flash] Error 1 [ 117s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 117s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 117s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 117s] dh_auto_build: error: make -j1 returned exit code 2 [ 117s] make: *** [debian/rules:16: build] Error 25 [ 117s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 117s] ### VM INTERACTION START ### [ 120s] [ 110.478986] sysrq: Power Off [ 120s] [ 110.488052] reboot: Power down [ 120s] ### VM INTERACTION END ### [ 120s] [ 120s] sheep81 failed "build simtrace2_0.7.0.69.aadd.dsc" at Sun Jan 17 01:48:34 UTC 2021. [ 120s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sun Jan 17 01:50:33 2021 From: admin at opensuse.org (OBS Notification) Date: Sun, 17 Jan 2021 01:50:33 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <600397fdd9a18_6532aec7c1d86001498110@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/xUbuntu_20.04/x86_64 Package network:osmocom:nightly/simtrace2 failed to build in xUbuntu_20.04/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 166s] [COMPILING libboard/qmod/source/wwan_perst.c] [ 166s] [COMPILING libboard/qmod/source/card_pres.c] [ 166s] [COMPILING libboard/qmod/source/wwan_led.c] [ 166s] [COMPILING libboard/qmod/source/i2c.c] [ 166s] [COMPILING libboard/qmod/source/board_qmod.c] [ 166s] [COMPILING apps/dfu/main.c] [ 167s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 167s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 167s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 167s] Memory region Used Size Region Size %age Used [ 167s] rom: 16588 B 16 KB 101.25% [ 167s] ram: 11672 B 48 KB 23.75/usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 167s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 204 bytes [ 167s] collect2: error: ld returned 1 exit status [ 167s] % [ 167s] make[2]: *** [Makefile:234: flash] Error 1 [ 167s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 167s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 167s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 167s] dh_auto_build: error: make -j1 returned exit code 2 [ 167s] make: *** [debian/rules:16: build] Error 25 [ 167s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 167s] ### VM INTERACTION START ### [ 170s] [ 155.267101] sysrq: Power Off [ 170s] [ 155.271398] reboot: Power down [ 170s] ### VM INTERACTION END ### [ 170s] [ 170s] cloud126 failed "build simtrace2_0.7.0.69.aadd.dsc" at Sun Jan 17 01:49:10 UTC 2021. [ 170s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sun Jan 17 04:00:40 2021 From: admin at opensuse.org (OBS Notification) Date: Sun, 17 Jan 2021 04:00:40 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sgsn in Debian_9.0/aarch64 In-Reply-To: References: Message-ID: <6003b68e43cc3_6532aec7c1d86001530063@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-sgsn/Debian_9.0/aarch64 Package network:osmocom:nightly/osmo-sgsn failed to build in Debian_9.0/aarch64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-sgsn Last lines of build log: getoldpackages: connect to back-other-opensuse:5253: Connection timed out (worker was obs-arm-9:16) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Sun Jan 17 07:33:10 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Sun, 17 Jan 2021 07:33:10 +0000 Subject: Change in libosmocore[master]: Refactor ns2_nsvc_create_ip* In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, pespin, lynxis lazus, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22235 to look at the new patch set (#3). Change subject: Refactor ns2_nsvc_create_ip* ...................................................................... Refactor ns2_nsvc_create_ip* Move code common in ipv4/6 into a separate function and call that function. Change-Id: I076d53bee2e67e1cb3ad6ee5cd05c63ebe3359fb Related: OS#4948 --- M src/gb/gprs_ns2_sns.c 1 file changed, 27 insertions(+), 38 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/35/22235/3 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22235 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I076d53bee2e67e1cb3ad6ee5cd05c63ebe3359fb Gerrit-Change-Number: 22235 Gerrit-PatchSet: 3 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 17 07:33:38 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Sun, 17 Jan 2021 07:33:38 +0000 Subject: Change in libosmocore[master]: Refactor ns2_nsvc_create_ip* In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22235 ) Change subject: Refactor ns2_nsvc_create_ip* ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/22235/2/src/gb/gprs_ns2_sns.c File src/gb/gprs_ns2_sns.c: https://gerrit.osmocom.org/c/libosmocore/+/22235/2/src/gb/gprs_ns2_sns.c at 258 PS2, Line 258: static void ns2_vc_create_ip(struct osmo_fsm_inst *fi, struct gprs_ns2_nse *nse, struct osmo_sockaddr *remote, > 'remote' could probably be 'const', but not critical. Done -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22235 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I076d53bee2e67e1cb3ad6ee5cd05c63ebe3359fb Gerrit-Change-Number: 22235 Gerrit-PatchSet: 3 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sun, 17 Jan 2021 07:33:38 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: laforge Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 17 07:41:56 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Sun, 17 Jan 2021 07:41:56 +0000 Subject: Change in libosmocore[master]: Refactor ns2_nsvc_create_ip* In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22235 ) Change subject: Refactor ns2_nsvc_create_ip* ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22235 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I076d53bee2e67e1cb3ad6ee5cd05c63ebe3359fb Gerrit-Change-Number: 22235 Gerrit-PatchSet: 3 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sun, 17 Jan 2021 07:41:56 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 17 07:41:59 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Sun, 17 Jan 2021 07:41:59 +0000 Subject: Change in libosmocore[master]: Refactor ns2_nsvc_create_ip* In-Reply-To: References: Message-ID: daniel has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22235 ) Change subject: Refactor ns2_nsvc_create_ip* ...................................................................... Refactor ns2_nsvc_create_ip* Move code common in ipv4/6 into a separate function and call that function. Change-Id: I076d53bee2e67e1cb3ad6ee5cd05c63ebe3359fb Related: OS#4948 --- M src/gb/gprs_ns2_sns.c 1 file changed, 27 insertions(+), 38 deletions(-) Approvals: Jenkins Builder: Verified daniel: Looks good to me, approved diff --git a/src/gb/gprs_ns2_sns.c b/src/gb/gprs_ns2_sns.c index 1958477..ceff115 100644 --- a/src/gb/gprs_ns2_sns.c +++ b/src/gb/gprs_ns2_sns.c @@ -255,66 +255,55 @@ } } -static void ns2_nsvc_create_ip4(struct osmo_fsm_inst *fi, - struct gprs_ns2_nse *nse, - const struct gprs_ns_ie_ip4_elem *ip4) +static void ns2_vc_create_ip(struct osmo_fsm_inst *fi, struct gprs_ns2_nse *nse, const struct osmo_sockaddr *remote, + uint8_t sig_weight, uint8_t data_weight) { struct gprs_ns2_inst *nsi = nse->nsi; struct gprs_ns2_vc *nsvc; struct gprs_ns2_vc_bind *bind; + + /* for every bind, create a connection if bind type == IP */ + llist_for_each_entry(bind, &nsi->binding, list) { + if (bind->ll != GPRS_NS2_LL_UDP) + continue; + /* ignore failed connection */ + nsvc = gprs_ns2_ip_connect_inactive(bind, + remote, + nse, 0); + if (!nsvc) { + LOGPFSML(fi, LOGL_ERROR, "SNS-CONFIG: Failed to create NSVC\n"); + continue; + } + + nsvc->sig_weight = sig_weight; + nsvc->data_weight = data_weight; + } +} + +static void ns2_nsvc_create_ip4(struct osmo_fsm_inst *fi, + struct gprs_ns2_nse *nse, + const struct gprs_ns_ie_ip4_elem *ip4) +{ struct osmo_sockaddr remote = { }; /* copy over. Both data structures use network byte order */ remote.u.sin.sin_family = AF_INET; remote.u.sin.sin_addr.s_addr = ip4->ip_addr; remote.u.sin.sin_port = ip4->udp_port; - /* for every bind, create a connection if bind type == IP */ - llist_for_each_entry(bind, &nsi->binding, list) { - if (bind->ll != GPRS_NS2_LL_UDP) - continue; - /* ignore failed connection */ - nsvc = gprs_ns2_ip_connect_inactive(bind, - &remote, - nse, 0); - if (!nsvc) { - LOGPFSML(fi, LOGL_ERROR, "SNS-CONFIG: Failed to create NSVC\n"); - continue; - } - - nsvc->sig_weight = ip4->sig_weight; - nsvc->data_weight = ip4->data_weight; - } + ns2_vc_create_ip(fi, nse, &remote, ip4->sig_weight, ip4->data_weight); } static void ns2_nsvc_create_ip6(struct osmo_fsm_inst *fi, struct gprs_ns2_nse *nse, const struct gprs_ns_ie_ip6_elem *ip6) { - struct gprs_ns2_inst *nsi = nse->nsi; - struct gprs_ns2_vc *nsvc; - struct gprs_ns2_vc_bind *bind; struct osmo_sockaddr remote = {}; /* copy over. Both data structures use network byte order */ remote.u.sin6.sin6_family = AF_INET6; remote.u.sin6.sin6_addr = ip6->ip_addr; remote.u.sin6.sin6_port = ip6->udp_port; - /* for every bind, create a connection if bind type == IP */ - llist_for_each_entry(bind, &nsi->binding, list) { - if (bind->ll != GPRS_NS2_LL_UDP) - continue; - /* ignore failed connection */ - nsvc = gprs_ns2_ip_connect_inactive(bind, - &remote, - nse, 0); - if (!nsvc) { - LOGPFSML(fi, LOGL_ERROR, "SNS-CONFIG: Failed to create NSVC\n"); - continue; - } - - nsvc->sig_weight = ip6->sig_weight; - nsvc->data_weight = ip6->data_weight; - } + ns2_vc_create_ip(fi, nse, &remote, ip6->sig_weight, ip6->data_weight); } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22235 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I076d53bee2e67e1cb3ad6ee5cd05c63ebe3359fb Gerrit-Change-Number: 22235 Gerrit-PatchSet: 3 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 17 10:17:14 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 17 Jan 2021 10:17:14 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Print log line for every ConnHdlr we start References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22247 ) Change subject: gbproxy: Print log line for every ConnHdlr we start ...................................................................... gbproxy: Print log line for every ConnHdlr we start Change-Id: I43e0ffb1b8be4f85a55ab1ed24fcf9d3b60a4d60 --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/47/22247/1 diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index eb27627..8d5609c 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -629,6 +629,8 @@ vc_conn := BSSGP_ConnHdlr.create(id); + log("Starting ", id, " for SGSN[", sgsn_idx, "], NRI=", nri, ", P-TMSI=", pars.p_tmsi, + ", TLLI=", pars.tlli, ", IMSI=", pars.imsi, " on component=", vc_conn); vc_conn.start(f_handler_init(fn, id, pars)); return vc_conn; } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22247 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I43e0ffb1b8be4f85a55ab1ed24fcf9d3b60a4d60 Gerrit-Change-Number: 22247 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 17 10:17:14 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 17 Jan 2021 10:17:14 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BSSGP_Emulation: f_bssgp_get_tlli(): TLLI is optional in RADIO-STATUS References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22248 ) Change subject: BSSGP_Emulation: f_bssgp_get_tlli(): TLLI is optional in RADIO-STATUS ...................................................................... BSSGP_Emulation: f_bssgp_get_tlli(): TLLI is optional in RADIO-STATUS We must not dereference the TLLI IE unconditionally Related: OS#4951 Change-Id: I463b25f5395127d155727d785eb7795ac0165fac --- M library/BSSGP_Emulation.ttcnpp 1 file changed, 2 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/48/22248/1 diff --git a/library/BSSGP_Emulation.ttcnpp b/library/BSSGP_Emulation.ttcnpp index 5eef645..5c825d6 100644 --- a/library/BSSGP_Emulation.ttcnpp +++ b/library/BSSGP_Emulation.ttcnpp @@ -1397,7 +1397,8 @@ return bssgp.pDU_BSSGP_RA_CAPABILITY_UPDATE.tLLI.tLLI_Value; } else if (ischosen(bssgp.pDU_BSSGP_RA_CAPABILITY_UPDATE_ACK)) { return bssgp.pDU_BSSGP_RA_CAPABILITY_UPDATE_ACK.tLLI.tLLI_Value; - } else if (ischosen(bssgp.pDU_BSSGP_RADIO_STATUS)) { + } else if (ischosen(bssgp.pDU_BSSGP_RADIO_STATUS) and + ispresent(bssgp.pDU_BSSGP_RADIO_STATUS.tLLI)) { return bssgp.pDU_BSSGP_RADIO_STATUS.tLLI.tLLI_Value; } else if (ischosen(bssgp.pDU_BSSGP_SUSPEND)) { return bssgp.pDU_BSSGP_SUSPEND.tLLI.tLLI_Value; -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22248 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I463b25f5395127d155727d785eb7795ac0165fac Gerrit-Change-Number: 22248 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 17 10:17:14 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 17 Jan 2021 10:17:14 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Osmocom_Gb_Types: Extend RADIO-STATUS templates References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22249 ) Change subject: Osmocom_Gb_Types: Extend RADIO-STATUS templates ...................................................................... Osmocom_Gb_Types: Extend RADIO-STATUS templates RADIO-STATUS can occur with TLLI, but also with P-TMSI or IMSI. Update our templates accordingly while keeping backwards compatibility. Related: OS#4951 Change-Id: I1119e50e457b02d52e7c2c26a8b8039bf2118296 --- M library/Osmocom_Gb_Types.ttcn 1 file changed, 43 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/49/22249/1 diff --git a/library/Osmocom_Gb_Types.ttcn b/library/Osmocom_Gb_Types.ttcn index b82ca32..589108f 100644 --- a/library/Osmocom_Gb_Types.ttcn +++ b/library/Osmocom_Gb_Types.ttcn @@ -897,6 +897,22 @@ }, tLLI_Value := tlli } + private function f_ts_BSSGP_TLLI(template (omit) GprsTlli tlli) return template (omit) TLLI_BSSGP { + if (istemplatekind(tlli, "omit")) { + return omit; + } else { + return ts_BSSGP_TLLI(valueof(tlli)); + } + } + private function f_tr_BSSGP_TLLI(template GprsTlli tlli) return template TLLI_BSSGP { + if (istemplatekind(tlli, "omit")) { + return omit; + } else if (istemplatekind(tlli, "*")) { + return *; + } else { + return tr_BSSGP_TLLI(valueof(tlli)); + } + } template (value) Suspend_Reference_Number ts_BSSGP_SUSP_REF(template (value) OCT1 susp_ref) := { iEI := '1D'O, @@ -932,6 +948,22 @@ oddevenIndicator := f_hex_is_odd_length(imsi), digits := imsi } + private function f_ts_BSSGP_IMSI(template (omit) hexstring imsi) return template (omit) IMSI_BSSGP { + if (istemplatekind(imsi, "omit")) { + return omit; + } else { + return ts_BSSGP_IMSI(valueof(imsi)); + } + } + private function f_tr_BSSGP_IMSI(template hexstring imsi) return template IMSI_BSSGP { + if (istemplatekind(imsi, "omit")) { + return omit; + } else if (istemplatekind(imsi, "*")) { + return *; + } else { + return tr_BSSGP_IMSI(imsi); + } + } template (present) TMSI_BSSGP tr_BSSGP_TMSI(GsmTmsi tmsi) := { iEI := '20'O, @@ -2324,22 +2356,25 @@ /* 10.3.5 */ template (value) PDU_BSSGP - ts_BSSGP_RADIO_STATUS(GprsTlli tlli, template (value) BssgpRadioCause cause) := { + ts_BSSGP_RADIO_STATUS(template (omit) GprsTlli tlli, template (value) BssgpRadioCause cause, + template (omit) GsmTmsi tmsi := omit, + template (omit) hexstring imsi := omit) := { pDU_BSSGP_RADIO_STATUS := { bssgpPduType := '0a'O, - tLLI := ts_BSSGP_TLLI(tlli), - tMSI := omit, - iMSI := omit, + tLLI := f_ts_BSSGP_TLLI(tlli), + tMSI := f_ts_BSSGP_TMSI(tmsi), + iMSI := f_ts_BSSGP_IMSI(imsi), radio_Cause := ts_BSSGP_RADIO_CAUSE(cause) } } template (present) PDU_BSSGP - tr_BSSGP_RADIO_STATUS(template (present) GprsTlli tlli, template (present) BssgpRadioCause cause) := { + tr_BSSGP_RADIO_STATUS(template GprsTlli tlli, template (present) BssgpRadioCause cause, + template GsmTmsi tmsi := *, template hexstring imsi := *) := { pDU_BSSGP_RADIO_STATUS := { bssgpPduType := '0a'O, - tLLI := ts_BSSGP_TLLI(tlli), - tMSI := omit, - iMSI := omit, + tLLI := f_tr_BSSGP_TLLI(tlli), + tMSI := f_tr_BSSGP_TMSI(tmsi), + iMSI := f_tr_BSSGP_IMSI(imsi), radio_Cause := tr_BSSGP_RADIO_CAUSE(cause) } } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22249 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I1119e50e457b02d52e7c2c26a8b8039bf2118296 Gerrit-Change-Number: 22249 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 17 10:17:15 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 17 Jan 2021 10:17:15 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Add tests for RADIO-STATUS with TMSI and IMSI instead of TLLI References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22250 ) Change subject: gbproxy: Add tests for RADIO-STATUS with TMSI and IMSI instead of TLLI ...................................................................... gbproxy: Add tests for RADIO-STATUS with TMSI and IMSI instead of TLLI Change-Id: Ib3b052a12227a8f55cf063e5168b56f97b9a8f9b Related: OS#4954 Related: OS#4951 --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 41 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/50/22250/1 diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index 8d5609c..792d77a 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -1087,6 +1087,45 @@ f_cleanup(); } +private function f_TC_radio_status_tmsi(charstring id) runs on BSSGP_ConnHdlr { + var integer i; + var BssgpRadioCause cause := BSSGP_RADIO_CAUSE_CONTACT_LOST; + for (i := 0; i < 10; i := i+1) { + var integer tmsi_int := oct2int(g_pars.p_tmsi); + var template (value) PDU_BSSGP pdu_tx := ts_BSSGP_RADIO_STATUS(omit, cause, tmsi_int); + /* we cannot use pdu_tx as there are some subtle differences in the length field :/ */ + var template (present) PDU_BSSGP pdu_rx := tr_BSSGP_RADIO_STATUS(omit, cause, tmsi_int); + f_pcu2sgsn(pdu_tx, pdu_rx); + } + setverdict(pass); +} +testcase TC_radio_status_tmsi() runs on test_CT +{ + f_init(); + f_start_handlers(refers(f_TC_radio_status_tmsi), testcasename(), 5); + f_cleanup(); +} + +private function f_TC_radio_status_imsi(charstring id) runs on BSSGP_ConnHdlr { + var integer i; + var BssgpRadioCause cause := BSSGP_RADIO_CAUSE_CONTACT_LOST; + for (i := 0; i < 10; i := i+1) { + var template (value) PDU_BSSGP pdu_tx := ts_BSSGP_RADIO_STATUS(omit, cause, imsi := g_pars.imsi); + /* we cannot use pdu_tx as there are some subtle differences in the length field :/ */ + var template (present) PDU_BSSGP pdu_rx := tr_BSSGP_RADIO_STATUS(omit, cause, imsi := g_pars.imsi); + f_pcu2sgsn(pdu_tx, pdu_rx); + } + setverdict(pass); +} +testcase TC_radio_status_imsi() runs on test_CT +{ + f_init(); + f_start_handlers(refers(f_TC_radio_status_imsi), testcasename(), 5); + f_cleanup(); +} + + + private function f_suspend_one(integer sgsn_idx, integer nri_idx, integer pcu_idx, integer bvc_idx, integer suffix) runs on GlobalTest_CT @@ -2909,6 +2948,8 @@ execute( TC_ra_capability() ); execute( TC_ra_capability_upd() ); execute( TC_radio_status() ); + execute( TC_radio_status_tmsi() ); + execute( TC_radio_status_imsi() ); execute( TC_suspend() ); execute( TC_resume() ); execute( TC_trace() ); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22250 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ib3b052a12227a8f55cf063e5168b56f97b9a8f9b Gerrit-Change-Number: 22250 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 17 12:02:40 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 17 Jan 2021 12:02:40 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Add tests for RADIO-STATUS with TMSI and IMSI instead of TLLI In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22250 to look at the new patch set (#2). Change subject: gbproxy: Add tests for RADIO-STATUS with TMSI and IMSI instead of TLLI ...................................................................... gbproxy: Add tests for RADIO-STATUS with TMSI and IMSI instead of TLLI Change-Id: Ib3b052a12227a8f55cf063e5168b56f97b9a8f9b Related: OS#4954 Related: OS#4951 --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 79 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/50/22250/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22250 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ib3b052a12227a8f55cf063e5168b56f97b9a8f9b Gerrit-Change-Number: 22250 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 17 12:42:37 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Sun, 17 Jan 2021 12:42:37 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Implement IMSI cache References: Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22251 ) Change subject: gbproxy: Implement IMSI cache ...................................................................... gbproxy: Implement IMSI cache When SGSN pooling is enabled we need to route some responses based on IMSI back to the correct SGSN, e.g. PAGING_PS_REJECT. The IMSI cache keeps track of this IMSI <-> NSE(SGSN) mapping. Change-Id: If0a8d6cc1d63f2fb2c395cc5d4373a915bc2cb87 Related: OS#4951, OS#4472 --- M include/osmocom/sgsn/gb_proxy.h M src/gbproxy/gb_proxy.c M src/gbproxy/gb_proxy_peer.c 3 files changed, 152 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/51/22251/1 diff --git a/include/osmocom/sgsn/gb_proxy.h b/include/osmocom/sgsn/gb_proxy.h index 04a3c4b..d988cae 100644 --- a/include/osmocom/sgsn/gb_proxy.h +++ b/include/osmocom/sgsn/gb_proxy.h @@ -8,6 +8,7 @@ #include #include #include +#include #include #include @@ -83,6 +84,14 @@ uint8_t timeout; } tlli_cache; + /* imsi<->nse cache used for PAGING REJECT */ + struct { + DECLARE_HASHTABLE(entries, 10); + struct osmo_timer_list timer; + /* Time in seconds that the entries should be valid */ + uint8_t timeout; + } imsi_cache; + /* List of all SGSNs */ struct llist_head sgsns; @@ -173,7 +182,7 @@ /* TLLI cache */ struct gbproxy_tlli_cache_entry { - /* linked to gbproxy_config.tlli_cache */ + /* linked to gbproxy_config.tlli_cache.entries */ struct hlist_node list; /* TLLI of the entry */ @@ -184,6 +193,19 @@ struct gbproxy_nse *nse; }; +/* IMSI cache */ +struct gbproxy_imsi_cache_entry { + /* linked to gbproxy_config.imsi_cache.entries */ + struct hlist_node list; + + /* IMSI of the entry */ + char imsi[OSMO_IMSI_BUF_SIZE]; + /* When was this entry last seen */ + time_t tstamp; + /* The SGSN where the request came from */ + struct gbproxy_nse *nse; +}; + /* Convenience logging macros for NSE/BVC */ #define LOGPNSE_CAT(NSE, SUBSYS, LEVEL, FMT, ARGS...) \ LOGP(SUBSYS, LEVEL, "NSE(%05u/%s) " FMT, (NSE)->nsei, \ @@ -251,12 +273,18 @@ struct gbproxy_nse *gbproxy_nse_by_nsei(struct gbproxy_config *cfg, uint16_t nsei, uint32_t flags); struct gbproxy_nse *gbproxy_nse_by_nsei_or_new(struct gbproxy_config *cfg, uint16_t nsei, bool sgsn_facing); struct gbproxy_nse *gbproxy_nse_by_tlli(struct gbproxy_config *cfg, uint32_t tlli); +struct gbproxy_nse *gbproxy_nse_by_imsi(struct gbproxy_config *cfg, const char *imsi); /* TLLI cache */ void gbproxy_tlli_cache_update(struct gbproxy_nse *nse, uint32_t tlli); void gbproxy_tlli_cache_remove(struct gbproxy_config *cfg, uint32_t tlli); int gbproxy_tlli_cache_cleanup(struct gbproxy_config *cfg); +/* IMSI cache */ +void gbproxy_imsi_cache_update(struct gbproxy_nse *nse, const char *imsi); +void gbproxy_imsi_cache_remove(struct gbproxy_config *cfg, const char *imsi); +int gbproxy_imsi_cache_cleanup(struct gbproxy_config *cfg); + /* SGSN handling */ struct gbproxy_sgsn *gbproxy_sgsn_alloc(struct gbproxy_config *cfg, uint16_t nsei, const char *name); void gbproxy_sgsn_free(struct gbproxy_sgsn *sgsn); diff --git a/src/gbproxy/gb_proxy.c b/src/gbproxy/gb_proxy.c index 7f8260c..9db009c 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -1405,6 +1405,15 @@ osmo_timer_schedule(&cfg->tlli_cache.timer, 2, 0); } +static void imsi_cache_cleanup(void *data) +{ + struct gbproxy_config *cfg = data; + gbproxy_imsi_cache_cleanup(cfg); + + /* TODO: Disable timer when cache is empty */ + osmo_timer_schedule(&cfg->imsi_cache.timer, 2, 0); +} + int gbproxy_init_config(struct gbproxy_config *cfg) { struct timespec tp; @@ -1424,6 +1433,10 @@ osmo_timer_setup(&cfg->tlli_cache.timer, tlli_cache_cleanup, cfg); osmo_timer_schedule(&cfg->tlli_cache.timer, 2, 0); + /* We could also combine both timers */ + osmo_timer_setup(&cfg->imsi_cache.timer, imsi_cache_cleanup, cfg); + osmo_timer_schedule(&cfg->imsi_cache.timer, 2, 0); + cfg->ctrg = rate_ctr_group_alloc(tall_sgsn_ctx, &global_ctrg_desc, 0); if (!cfg->ctrg) { LOGP(DGPRS, LOGL_ERROR, "Cannot allocate global counter group!\n"); diff --git a/src/gbproxy/gb_proxy_peer.c b/src/gbproxy/gb_proxy_peer.c index 104902b..1d9352d 100644 --- a/src/gbproxy/gb_proxy_peer.c +++ b/src/gbproxy/gb_proxy_peer.c @@ -25,11 +25,13 @@ #include #include +#include #include #include #include #include #include +#include #include #include @@ -331,6 +333,101 @@ } } return count; + +} +/*********************************************************************** + * IMSI cache + ***********************************************************************/ +static inline uint16_t _checksum_imsi(const char *imsi) +{ + size_t len = strlen(imsi); + return osmo_crc16(0, (const uint8_t *)imsi, len); +} + +static inline struct gbproxy_imsi_cache_entry *_get_imsi_entry(struct gbproxy_config *cfg, const char *imsi) +{ + struct gbproxy_imsi_cache_entry *cache_entry; + uint16_t imsi_hash = _checksum_imsi(imsi); + + hash_for_each_possible(cfg->imsi_cache.entries, cache_entry, list, imsi_hash) { + if (!strncmp(cache_entry->imsi, imsi, sizeof(cache_entry->imsi))) + return cache_entry; + } + return NULL; +} + +void gbproxy_imsi_cache_update(struct gbproxy_nse *nse, const char *imsi) +{ + struct gbproxy_config *cfg = nse->cfg; + struct timespec now; + struct gbproxy_imsi_cache_entry *cache_entry = _get_imsi_entry(cfg, imsi); + uint16_t imsi_hash = _checksum_imsi(imsi); + + osmo_clock_gettime(CLOCK_MONOTONIC, &now); + + if (cache_entry) { + /* Update the entry if it already exists */ + cache_entry->nse = nse; + cache_entry->tstamp = now.tv_sec; + return; + } + + cache_entry = talloc_zero(cfg, struct gbproxy_imsi_cache_entry); + OSMO_STRLCPY_ARRAY(cache_entry->imsi, imsi); + cache_entry->nse = nse; + cache_entry->tstamp = now.tv_sec; + hash_add(cfg->imsi_cache.entries, &cache_entry->list, imsi_hash); +} + +static void _imsi_cache_remove_nse(struct gbproxy_nse *nse) { + uint i; + struct gbproxy_config *cfg = nse->cfg; + struct gbproxy_imsi_cache_entry *imsi_cache; + struct hlist_node *tmp; + + hash_for_each_safe(cfg->imsi_cache.entries, i, tmp, imsi_cache, list) { + if (imsi_cache->nse == nse) { + hash_del(&imsi_cache->list); + talloc_free(imsi_cache); + } + } +} + +void gbproxy_imsi_cache_remove(struct gbproxy_config *cfg, const char *imsi) +{ + struct gbproxy_imsi_cache_entry *imsi_cache; + struct hlist_node *tmp; + uint16_t imsi_hash = _checksum_imsi(imsi); + + hash_for_each_possible_safe(cfg->imsi_cache.entries, imsi_cache, tmp, list, imsi_hash) { + if (!(strncmp(imsi_cache->imsi, imsi, sizeof(imsi_cache->imsi)))) { + hash_del(&imsi_cache->list); + talloc_free(imsi_cache); + return; + } + } +} + +int gbproxy_imsi_cache_cleanup(struct gbproxy_config *cfg) +{ + int i, count = 0; + struct gbproxy_imsi_cache_entry *imsi_cache; + struct hlist_node *tmp; + struct timespec now; + time_t expiry; + + osmo_clock_gettime(CLOCK_MONOTONIC, &now); + expiry = now.tv_sec - cfg->imsi_cache.timeout; + + hash_for_each_safe(cfg->imsi_cache.entries, i, tmp, imsi_cache, list) { + if (imsi_cache->tstamp < expiry) { + count++; + LOGP(DGPRS, LOGL_NOTICE, "Cache entry for IMSI %s expired, removing\n", imsi_cache->imsi); + hash_del(&imsi_cache->list); + talloc_free(imsi_cache); + } + } + return count; } /*********************************************************************** @@ -374,8 +471,9 @@ LOGPNSE_CAT(nse, DOBJ, LOGL_INFO, "NSE Destroying\n"); hash_del(&nse->list); - /* Clear the tlli_cache from this NSE */ + /* Clear the cache entries of this NSE */ _tlli_cache_remove_nse(nse); + _imsi_cache_remove_nse(nse); hash_for_each_safe(nse->bvcs, i, tmp, bvc, list) gbproxy_bvc_free(bvc); @@ -444,6 +542,17 @@ return NULL; } +struct gbproxy_nse *gbproxy_nse_by_imsi(struct gbproxy_config *cfg, const char *imsi) +{ + struct gbproxy_imsi_cache_entry *imsi_cache; + uint16_t imsi_hash = _checksum_imsi(imsi); + + hash_for_each_possible(cfg->imsi_cache.entries, imsi_cache, list, imsi_hash) { + if (!strncmp(imsi_cache->imsi, imsi, sizeof(imsi_cache->imsi))) + return imsi_cache->nse; + } + return NULL; +} /*********************************************************************** * SGSN - Serving GPRS Support Node -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22251 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: If0a8d6cc1d63f2fb2c395cc5d4373a915bc2cb87 Gerrit-Change-Number: 22251 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 17 12:42:38 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Sun, 17 Jan 2021 12:42:38 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Use IMSI cache to handle PAGING_PS_REJECT References: Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22252 ) Change subject: gbproxy: Use IMSI cache to handle PAGING_PS_REJECT ...................................................................... gbproxy: Use IMSI cache to handle PAGING_PS_REJECT Change-Id: I7d91d9ecfba757dc81edcf05efb7a2158348099d Related: OS#4472, OS#4951 --- M src/gbproxy/gb_proxy.c 1 file changed, 23 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/52/22252/1 diff --git a/src/gbproxy/gb_proxy.c b/src/gbproxy/gb_proxy.c index 9db009c..6f8d0e0 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -934,6 +934,20 @@ goto err_no_bvc; gbprox_bss2sgsn_tlli(from_bvc->cell, msg, &tlli, true); break; + case BSSGP_PDUT_PAGING_PS_REJECT: + { + /* Route according to IMSI<->NSE cache entry */ + struct osmo_mobile_identity mi; + const uint8_t *mi_data = TLVP_VAL(&tp, BSSGP_IE_IMSI); + uint8_t mi_len = TLVP_LEN(&tp, BSSGP_IE_IMSI); + osmo_mobile_identity_decode(&mi, mi_data, mi_len, false); + nse = gbproxy_nse_by_imsi(nse->cfg, mi.imsi); + if (!nse) { + return bssgp_tx_status(BSSGP_CAUSE_INV_MAND_INF, NULL, msg); + } + rc = gbprox_relay2nse(msg, nse, 0); + break; + } default: LOGPNSE(nse, LOGL_ERROR, "Rx %s: Implementation missing\n", pdut_name); break; @@ -1135,6 +1149,15 @@ rc = gbprox_relay2peer(msg, sgsn_bvc->cell->bss_bvc, ns_bvci); break; case BSSGP_PDUT_PAGING_PS: + { + /* Cache the IMSI<->NSE to route PAGING REJECT */ + struct osmo_mobile_identity mi; + const uint8_t *mi_data = TLVP_VAL(&tp, BSSGP_IE_IMSI); + uint8_t mi_len = TLVP_LEN(&tp, BSSGP_IE_IMSI); + osmo_mobile_identity_decode(&mi, mi_data, mi_len, false); + gbproxy_imsi_cache_update(nse, mi.imsi); + /* fall through */ + } case BSSGP_PDUT_PAGING_CS: /* process the paging request (LAI/RAI lookup) */ rc = gbprox_rx_paging(nse, msg, pdut_name, &tp, ns_bvci); -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22252 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I7d91d9ecfba757dc81edcf05efb7a2158348099d Gerrit-Change-Number: 22252 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 17 12:52:24 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Sun, 17 Jan 2021 12:52:24 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Implement IMSI cache In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22251 to look at the new patch set (#2). Change subject: gbproxy: Implement IMSI cache ...................................................................... gbproxy: Implement IMSI cache When SGSN pooling is enabled we need to route some responses based on IMSI back to the correct SGSN, e.g. PAGING_PS_REJECT. The IMSI cache keeps track of this IMSI <-> NSE(SGSN) mapping. Change-Id: If0a8d6cc1d63f2fb2c395cc5d4373a915bc2cb87 Related: OS#4951, OS#4472 --- M include/osmocom/sgsn/gb_proxy.h M src/gbproxy/gb_proxy.c M src/gbproxy/gb_proxy_peer.c 3 files changed, 153 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/51/22251/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22251 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: If0a8d6cc1d63f2fb2c395cc5d4373a915bc2cb87 Gerrit-Change-Number: 22251 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 17 13:11:59 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Sun, 17 Jan 2021 13:11:59 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Use provided sgsn_idx in f_send_paging_ps_exp_multi() References: Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22253 ) Change subject: gbproxy: Use provided sgsn_idx in f_send_paging_ps_exp_multi() ...................................................................... gbproxy: Use provided sgsn_idx in f_send_paging_ps_exp_multi() Change-Id: I89ca4232e71d98936adfc521312b92cba7ef867f Related: OS#4951 --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/53/22253/1 diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index dc5756c..9b883c7 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -1543,7 +1543,7 @@ ro_integer exp_on_pcu_idx) runs on BSSGP_ConnHdlr { var template (present) PDU_BSSGP exp_rx; - exp_rx := f_send_paging_ps(p4, 0, true); + exp_rx := f_send_paging_ps(p4, sgsn_idx, true); /* FIXME: make sure the relevant BVCs/BSS are connected to the ports! */ var ro_default defaults := {}; -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22253 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I89ca4232e71d98936adfc521312b92cba7ef867f Gerrit-Change-Number: 22253 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 17 13:11:59 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Sun, 17 Jan 2021 13:11:59 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Use g_parse.sgsn_idx for paging References: Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22254 ) Change subject: gbproxy: Use g_parse.sgsn_idx for paging ...................................................................... gbproxy: Use g_parse.sgsn_idx for paging The ConnHdlr test stores the sgsn_idx in g_pars. Use that in the paging tests to the correct SGSN pages the MS. This is required for the paging reject test to pass. Change-Id: I34cfc047b36cd6c139a78a7f171a9a99cc974a79 Related: OS#4951 --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 8 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/54/22254/1 diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index 9b883c7..8e6bd55 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -1621,7 +1621,7 @@ private function f_TC_paging_ps_sig_bss(charstring id) runs on BSSGP_ConnHdlr { /* we expect the paging to arrive on all three NSE */ - f_send_paging_ps_exp_multi(ts_BssgpP4BssArea, 0, {0, 1, 2}); + f_send_paging_ps_exp_multi(ts_BssgpP4BssArea, g_pars.sgsn_idx, {0, 1, 2}); } testcase TC_paging_ps_sig_bss() runs on test_CT { f_init(); @@ -1633,12 +1633,12 @@ private function f_TC_paging_ps_sig_lac(charstring id) runs on BSSGP_ConnHdlr { /* The first LAC (13135) is shared by all three NSEs */ - f_send_paging_ps_exp_multi(ts_BssgpP4LAC(pcu_bvc_cfg[0].cell_id.ra_id.lai), 0, {0, 1, 2}); + f_send_paging_ps_exp_multi(ts_BssgpP4LAC(pcu_bvc_cfg[0].cell_id.ra_id.lai), g_pars.sgsn_idx, {0, 1, 2}); /* Reset state */ g_roi := {}; /* Make LAC (13300) available on pcu index 2 */ f_connect_to_pcu_bvc(port_idx := 2, nse_idx := 2, bvc_idx := 1); - f_send_paging_ps_exp_multi(ts_BssgpP4LAC(pcu_bvc_cfg[2].cell_id.ra_id.lai), 0, {2}); + f_send_paging_ps_exp_multi(ts_BssgpP4LAC(pcu_bvc_cfg[2].cell_id.ra_id.lai), g_pars.sgsn_idx, {2}); } testcase TC_paging_ps_sig_lac() runs on test_CT { f_init(); @@ -1665,14 +1665,14 @@ private function f_TC_paging_ps_sig_rac(charstring id) runs on BSSGP_ConnHdlr { /* Only PCU index 0 has a matching BVC with the RA ID */ - f_send_paging_ps_exp_multi(ts_BssgpP4RAC(pcu_bvc_cfg[0].cell_id.ra_id), 0, {0}); + f_send_paging_ps_exp_multi(ts_BssgpP4RAC(pcu_bvc_cfg[0].cell_id.ra_id), g_pars.sgsn_idx, {0}); g_roi := {}; /* PCU index 1 and 2 have a matching BVC with the RA ID */ - f_send_paging_ps_exp_multi(ts_BssgpP4RAC(pcu_bvc_cfg[2].cell_id.ra_id), 0, {1, 2}); + f_send_paging_ps_exp_multi(ts_BssgpP4RAC(pcu_bvc_cfg[2].cell_id.ra_id), g_pars.sgsn_idx, {1, 2}); g_roi := {}; /* PCU index 2 has two matching BVCs with the RA ID */ f_connect_to_pcu_bvc(port_idx := 2, nse_idx := 2, bvc_idx := 1); - f_send_paging_ps_exp_multi(ts_BssgpP4RAC(pcu_bvc_cfg[2].cell_id.ra_id), 0, {2}); + f_send_paging_ps_exp_multi(ts_BssgpP4RAC(pcu_bvc_cfg[2].cell_id.ra_id), g_pars.sgsn_idx, {2}); } testcase TC_paging_ps_sig_rac() runs on test_CT { f_init(); @@ -1701,7 +1701,7 @@ /* PS-PAGING on SIG-BVC for BVCI (one cell) */ private function f_TC_paging_ps_sig_bvci(charstring id) runs on BSSGP_ConnHdlr { - f_send_paging_ps_exp_multi(ts_BssgpP4Bvci(pcu_bvc_cfg[0].bvci), 0, {0}); + f_send_paging_ps_exp_multi(ts_BssgpP4Bvci(pcu_bvc_cfg[0].bvci), g_pars.sgsn_idx, {0}); } testcase TC_paging_ps_sig_bvci() runs on test_CT { f_init(); @@ -1720,7 +1720,7 @@ private function f_TC_paging_ps_reject_sig_bvci(charstring id) runs on BSSGP_ConnHdlr { /* first send the PS-PAGING from SGSN -> PCU */ - f_send_paging_ps_exp_multi(ts_BssgpP4Bvci(pcu_bvc_cfg[0].bvci), 0, {0}); + f_send_paging_ps_exp_multi(ts_BssgpP4Bvci(pcu_bvc_cfg[0].bvci), g_pars.sgsn_idx, {0}); /* then simulate the PS-PAGING-REJECT from the PCU */ f_send_paging_ps_rej(use_sig:=true); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22254 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I34cfc047b36cd6c139a78a7f171a9a99cc974a79 Gerrit-Change-Number: 22254 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 17 13:27:33 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Sun, 17 Jan 2021 13:27:33 +0000 Subject: Change in libosmocore[master]: ns2: Fix memory leak in IP-SNS References: Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22255 ) Change subject: ns2: Fix memory leak in IP-SNS ...................................................................... ns2: Fix memory leak in IP-SNS Don't allocate msg twice - it's not nice. Change-Id: I3fa0076eb480a7bcadb74cc86760dc29b77ac600 Related: OS#4874 --- M src/gb/gprs_ns2_message.c 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/55/22255/1 diff --git a/src/gb/gprs_ns2_message.c b/src/gb/gprs_ns2_message.c index eb9a198..6c7f08f 100644 --- a/src/gb/gprs_ns2_message.c +++ b/src/gb/gprs_ns2_message.c @@ -498,7 +498,7 @@ const struct gprs_ns_ie_ip6_elem *ip6_elems, unsigned int num_ip6_elems) { - struct msgb *msg = gprs_ns2_msgb_alloc(); + struct msgb *msg; struct gprs_ns_hdr *nsh; uint16_t nsei; @@ -652,7 +652,7 @@ int ns2_tx_sns_size(struct gprs_ns2_vc *nsvc, bool reset_flag, uint16_t max_nr_nsvc, int ip4_ep_nr, int ip6_ep_nr) { - struct msgb *msg = gprs_ns2_msgb_alloc(); + struct msgb *msg; struct gprs_ns_hdr *nsh; uint16_t nsei; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22255 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I3fa0076eb480a7bcadb74cc86760dc29b77ac600 Gerrit-Change-Number: 22255 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 17 14:04:03 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sun, 17 Jan 2021 14:04:03 +0000 Subject: Change in libosmocore[master]: ns2: Fix memory leak in IP-SNS In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22255 ) Change subject: ns2: Fix memory leak in IP-SNS ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22255 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I3fa0076eb480a7bcadb74cc86760dc29b77ac600 Gerrit-Change-Number: 22255 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Sun, 17 Jan 2021 14:04:03 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 17 14:07:18 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Sun, 17 Jan 2021 14:07:18 +0000 Subject: Change in libosmocore[master]: ns2: Fix memory leak in IP-SNS In-Reply-To: References: Message-ID: daniel has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22255 ) Change subject: ns2: Fix memory leak in IP-SNS ...................................................................... ns2: Fix memory leak in IP-SNS Don't allocate msg twice - it's not nice. Change-Id: I3fa0076eb480a7bcadb74cc86760dc29b77ac600 Related: OS#4874 --- M src/gb/gprs_ns2_message.c 1 file changed, 2 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified lynxis lazus: Looks good to me, approved diff --git a/src/gb/gprs_ns2_message.c b/src/gb/gprs_ns2_message.c index eb9a198..6c7f08f 100644 --- a/src/gb/gprs_ns2_message.c +++ b/src/gb/gprs_ns2_message.c @@ -498,7 +498,7 @@ const struct gprs_ns_ie_ip6_elem *ip6_elems, unsigned int num_ip6_elems) { - struct msgb *msg = gprs_ns2_msgb_alloc(); + struct msgb *msg; struct gprs_ns_hdr *nsh; uint16_t nsei; @@ -652,7 +652,7 @@ int ns2_tx_sns_size(struct gprs_ns2_vc *nsvc, bool reset_flag, uint16_t max_nr_nsvc, int ip4_ep_nr, int ip6_ep_nr) { - struct msgb *msg = gprs_ns2_msgb_alloc(); + struct msgb *msg; struct gprs_ns_hdr *nsh; uint16_t nsei; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22255 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I3fa0076eb480a7bcadb74cc86760dc29b77ac600 Gerrit-Change-Number: 22255 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 17 15:14:12 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sun, 17 Jan 2021 15:14:12 +0000 Subject: Change in libosmocore[master]: gprs_ns2: check if persistent nsei or nsvc exists when creating dynam... In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, daniel, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22197 to look at the new patch set (#3). Change subject: gprs_ns2: check if persistent nsei or nsvc exists when creating dynamic NSE ...................................................................... gprs_ns2: check if persistent nsei or nsvc exists when creating dynamic NSE When receiving a NS Reset over an unknown NSVC the NS code would create a dynamic NSE. If the NSEI or NSVCI is already configured to a persistant NSE/NSVC the packet should be ignored. Related: SYS#5208 Change-Id: I855911e7d364f2e5b08ea05857747aa63fcf1cd3 --- M src/gb/gprs_ns2.c 1 file changed, 34 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/97/22197/3 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22197 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I855911e7d364f2e5b08ea05857747aa63fcf1cd3 Gerrit-Change-Number: 22197 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 17 15:14:12 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sun, 17 Jan 2021 15:14:12 +0000 Subject: Change in libosmocore[master]: gprs_ns2: when calling nsvc_force_unconf for a dynamic NSE drop the NSE. In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, daniel, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22200 to look at the new patch set (#3). Change subject: gprs_ns2: when calling nsvc_force_unconf for a dynamic NSE drop the NSE. ...................................................................... gprs_ns2: when calling nsvc_force_unconf for a dynamic NSE drop the NSE. The vty command is used for test cases to reset NSE state. So dynamic NSE shouldn't present. Related: SYS#5208 Change-Id: I0a4f35c974c8c3b79c48f2f56170722c95254332 --- M src/gb/gprs_ns2_sns.c M src/gb/gprs_ns2_vty2.c 2 files changed, 31 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/00/22200/3 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22200 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I0a4f35c974c8c3b79c48f2f56170722c95254332 Gerrit-Change-Number: 22200 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 17 15:16:22 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sun, 17 Jan 2021 15:16:22 +0000 Subject: Change in libosmocore[master]: gprs_ns2: when calling nsvc_force_unconf for a dynamic NSE drop the NSE. In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, daniel, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22200 to look at the new patch set (#4). Change subject: gprs_ns2: when calling nsvc_force_unconf for a dynamic NSE drop the NSE. ...................................................................... gprs_ns2: when calling nsvc_force_unconf for a dynamic NSE drop the NSE. The vty command is used for test cases to reset NSE state. So dynamic NSE shouldn't present. Related: SYS#5208 Change-Id: I0a4f35c974c8c3b79c48f2f56170722c95254332 --- M src/gb/gprs_ns2_sns.c M src/gb/gprs_ns2_vty2.c 2 files changed, 31 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/00/22200/4 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22200 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I0a4f35c974c8c3b79c48f2f56170722c95254332 Gerrit-Change-Number: 22200 Gerrit-PatchSet: 4 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 17 15:16:22 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sun, 17 Jan 2021 15:16:22 +0000 Subject: Change in libosmocore[master]: gprs_ns2: flag then NSE as dead in nse_free() In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, daniel, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22208 to look at the new patch set (#3). Change subject: gprs_ns2: flag then NSE as dead in nse_free() ...................................................................... gprs_ns2: flag then NSE as dead in nse_free() The transfer cap call in ns2_prim_status_ind() asserts if NSE is in an invalid state (nse is either alive or has NSVCS). Change-Id: I535b3e5dd7240d19dd685652173775b250f5cc2d --- M src/gb/gprs_ns2.c 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/08/22208/3 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22208 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I535b3e5dd7240d19dd685652173775b250f5cc2d Gerrit-Change-Number: 22208 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 17 15:16:22 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sun, 17 Jan 2021 15:16:22 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vc_fsm: fix spaces and remove wrong comment In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, daniel, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22209 to look at the new patch set (#3). Change subject: gprs_ns2_vc_fsm: fix spaces and remove wrong comment ...................................................................... gprs_ns2_vc_fsm: fix spaces and remove wrong comment Change-Id: I52799d8ce8244fae7512a6e14a3cf2408a218c2d --- M src/gb/gprs_ns2_vc_fsm.c 1 file changed, 2 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/09/22209/3 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22209 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I52799d8ce8244fae7512a6e14a3cf2408a218c2d Gerrit-Change-Number: 22209 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 17 15:16:51 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sun, 17 Jan 2021 15:16:51 +0000 Subject: Change in libosmocore[master]: gprs_ns2: check if persistent nsei or nsvc exists when creating dynam... In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22197 ) Change subject: gprs_ns2: check if persistent nsei or nsvc exists when creating dynamic NSE ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/22197/2/src/gb/gprs_ns2.c File src/gb/gprs_ns2.c: https://gerrit.osmocom.org/c/libosmocore/+/22197/2/src/gb/gprs_ns2.c at 876 PS2, Line 876: %d) > %05u for all? Done -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22197 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I855911e7d364f2e5b08ea05857747aa63fcf1cd3 Gerrit-Change-Number: 22197 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 17 Jan 2021 15:16:51 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: daniel Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 17 15:16:56 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Sun, 17 Jan 2021 15:16:56 +0000 Subject: Change in libosmocore[master]: gprs_ns2: check if persistent nsei or nsvc exists when creating dynam... In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22197 ) Change subject: gprs_ns2: check if persistent nsei or nsvc exists when creating dynamic NSE ...................................................................... Patch Set 3: Code-Review+2 (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/22197/2/src/gb/gprs_ns2.c File src/gb/gprs_ns2.c: https://gerrit.osmocom.org/c/libosmocore/+/22197/2/src/gb/gprs_ns2.c at 876 PS2, Line 876: %d) > %05u for all? Done -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22197 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I855911e7d364f2e5b08ea05857747aa63fcf1cd3 Gerrit-Change-Number: 22197 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 17 Jan 2021 15:16:56 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Comment-In-Reply-To: daniel Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 17 15:21:13 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sun, 17 Jan 2021 15:21:13 +0000 Subject: Change in libosmocore[master]: gprs_ns2: when calling nsvc_force_unconf for a dynamic NSE drop the NSE. In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, daniel, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22200 to look at the new patch set (#5). Change subject: gprs_ns2: when calling nsvc_force_unconf for a dynamic NSE drop the NSE. ...................................................................... gprs_ns2: when calling nsvc_force_unconf for a dynamic NSE drop the NSE. The vty command is used for test cases to reset NSE state. So dynamic NSE shouldn't present. Related: SYS#5208 Change-Id: I0a4f35c974c8c3b79c48f2f56170722c95254332 --- M src/gb/gprs_ns2_sns.c M src/gb/gprs_ns2_vty2.c 2 files changed, 19 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/00/22200/5 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22200 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I0a4f35c974c8c3b79c48f2f56170722c95254332 Gerrit-Change-Number: 22200 Gerrit-PatchSet: 5 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 17 15:30:49 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sun, 17 Jan 2021 15:30:49 +0000 Subject: Change in libosmocore[master]: gprs_ns2: check if persistent nsei or nsvc exists when creating dynam... In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22197 ) Change subject: gprs_ns2: check if persistent nsei or nsvc exists when creating dynamic NSE ...................................................................... gprs_ns2: check if persistent nsei or nsvc exists when creating dynamic NSE When receiving a NS Reset over an unknown NSVC the NS code would create a dynamic NSE. If the NSEI or NSVCI is already configured to a persistant NSE/NSVC the packet should be ignored. Related: SYS#5208 Change-Id: I855911e7d364f2e5b08ea05857747aa63fcf1cd3 --- M src/gb/gprs_ns2.c 1 file changed, 34 insertions(+), 4 deletions(-) Approvals: daniel: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c index 3ca87a4..7f43cf0 100644 --- a/src/gb/gprs_ns2.c +++ b/src/gb/gprs_ns2.c @@ -861,18 +861,49 @@ return GPRS_NS2_CS_REJECTED; } - /* find or create NSE */ nsei = tlvp_val16be(&tp, NS_IE_NSEI); + nsvci = tlvp_val16be(&tp, NS_IE_VCI); + + /* find or create NSE */ nse = gprs_ns2_nse_by_nsei(bind->nsi, nsei); if (!nse) { - if (!bind->nsi->create_nse) { + /* only create nse for udp & ipaccess */ + if (bind->ll != GPRS_NS2_LL_UDP || dialect != NS2_DIALECT_IPACCESS) return GPRS_NS2_CS_SKIPPED; - } + + if (!bind->nsi->create_nse || !bind->accept_ipaccess) + return GPRS_NS2_CS_SKIPPED; nse = gprs_ns2_create_nse(bind->nsi, nsei, bind->ll, dialect); if (!nse) { + LOGP(DLNS, LOGL_ERROR, "Failed to create NSE(%05u)\n", nsei); return GPRS_NS2_CS_ERROR; } + } else { + /* nsei already known */ + if (nse->ll != bind->ll) { + LOGP(DLNS, LOGL_ERROR, "Received NS-RESET NS-VCI(%05u) with wrong linklayer(%s) for already known NSE(%05u/%s)\n", + nsei, gprs_ns2_lltype_str(bind->ll), nse->nsei, gprs_ns2_lltype_str(nse->ll)); + return GPRS_NS2_CS_SKIPPED; + } + } + + nsvc = gprs_ns2_nsvc_by_nsvci(bind->nsi, nsvci); + if (nsvc) { + if (nsvc->persistent) { + LOGP(DLNS, LOGL_ERROR, "Received NS-RESET for a persistent NSE(%05u) NS-VCI(%05u) over wrong connection.\n", + nsei, nsvci); + return GPRS_NS2_CS_SKIPPED; + } + /* destroy old dynamic nsvc */ + gprs_ns2_free_nsvc(nsvc); + } + + /* do nse persistent check late to be more precise on the error message */ + if (nse->persistent) { + LOGP(DLNS, LOGL_ERROR, "Received NS-RESET for a persistent NSE(%05u) but the unknown NS-VCI(%05u)\n", + nsei, nsvci); + return GPRS_NS2_CS_SKIPPED; } vc_mode = gprs_ns2_dialect_to_vc_mode(dialect); @@ -880,7 +911,6 @@ if (!nsvc) return GPRS_NS2_CS_SKIPPED; - nsvci = tlvp_val16be(&tp, NS_IE_VCI); nsvc->nsvci = nsvci; nsvc->nsvci_is_valid = true; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22197 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I855911e7d364f2e5b08ea05857747aa63fcf1cd3 Gerrit-Change-Number: 22197 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 17 15:30:50 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sun, 17 Jan 2021 15:30:50 +0000 Subject: Change in libosmocore[master]: osmo-ns-dummy: allow to create dynamic NSEs In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22198 ) Change subject: osmo-ns-dummy: allow to create dynamic NSEs ...................................................................... osmo-ns-dummy: allow to create dynamic NSEs Without setting the flag the osmo-ns-dummy won't create any dynamic NSEs. This flag will be removed in a future release but for now it will be included. Related: SYS#5208 Change-Id: I196cc454b5d7bc53848f73596a2f92730b78922b --- M utils/osmo-ns-dummy.c 1 file changed, 1 insertion(+), 0 deletions(-) Approvals: Jenkins Builder: Verified daniel: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/utils/osmo-ns-dummy.c b/utils/osmo-ns-dummy.c index 6790b4c..a2070ca 100644 --- a/utils/osmo-ns-dummy.c +++ b/utils/osmo-ns-dummy.c @@ -226,6 +226,7 @@ exit(1); } + gprs_ns2_dynamic_create_nse(nsi, true); gprs_ns2_vty2_init(nsi); rc = vty_read_config_file(config_file, NULL); if (rc < 0 && config_given) { -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22198 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I196cc454b5d7bc53848f73596a2f92730b78922b Gerrit-Change-Number: 22198 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 17 15:30:50 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sun, 17 Jan 2021 15:30:50 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vc: answer UNBLOCK on unblocked nsvc In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22199 ) Change subject: gprs_ns2_vc: answer UNBLOCK on unblocked nsvc ...................................................................... gprs_ns2_vc: answer UNBLOCK on unblocked nsvc 48.016 7.2: says an UNBLOCK pdu should be answered with UNBLOCK_ACK on already unblocked NSVC Related: SYS#5208 Change-Id: Ic92e99b2607d1e54ecb4668667065502a55a2ce0 --- M src/gb/gprs_ns2_vc_fsm.c 1 file changed, 5 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve daniel: Looks good to me, approved diff --git a/src/gb/gprs_ns2_vc_fsm.c b/src/gb/gprs_ns2_vc_fsm.c index d5f134e..78b0691 100644 --- a/src/gb/gprs_ns2_vc_fsm.c +++ b/src/gb/gprs_ns2_vc_fsm.c @@ -334,6 +334,9 @@ struct gprs_ns2_vc_priv *priv = fi->priv; switch (event) { + case GPRS_NS2_EV_UNBLOCK: + ns2_tx_unblock_ack(priv->nsvc); + break; case GPRS_NS2_EV_BLOCK: priv->initiate_block = false; ns2_tx_block_ack(priv->nsvc); @@ -400,7 +403,8 @@ .onenter = gprs_ns2_st_blocked_onenter, }, [GPRS_NS2_ST_UNBLOCKED] = { - .in_event_mask = S(GPRS_NS2_EV_BLOCK) | S(GPRS_NS2_EV_UNBLOCK_ACK), + .in_event_mask = S(GPRS_NS2_EV_BLOCK) | S(GPRS_NS2_EV_UNBLOCK_ACK) | + S(GPRS_NS2_EV_UNBLOCK), .out_state_mask = S(GPRS_NS2_ST_RESET) | S(GPRS_NS2_ST_ALIVE) | S(GPRS_NS2_ST_BLOCKED) | S(GPRS_NS2_ST_UNCONFIGURED), -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22199 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic92e99b2607d1e54ecb4668667065502a55a2ce0 Gerrit-Change-Number: 22199 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 17 15:35:48 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sun, 17 Jan 2021 15:35:48 +0000 Subject: Change in osmo-ttcn3-hacks[master]: RAW_NS: rework NS connection to use NS_Provider In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22090 ) Change subject: RAW_NS: rework NS connection to use NS_Provider ...................................................................... Patch Set 4: (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22090/4/library/RAW_NS.ttcnpp File library/RAW_NS.ttcnpp: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22090/4/library/RAW_NS.ttcnpp at 78 PS4, Line 78: vc_NSP_IP[i].stop; > Don't you need to check if they were assigned / started before doing this? it doesn't seem to be a problem. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22090 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I8a3b6c72798a75f434f54229fdbfc802cd13967e Gerrit-Change-Number: 22090 Gerrit-PatchSet: 4 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sun, 17 Jan 2021 15:35:48 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 17 15:59:26 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sun, 17 Jan 2021 15:59:26 +0000 Subject: Change in osmo-ttcn3-hacks[master]: RAW_NS: rework NS connection to use NS_Provider In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22090 ) Change subject: RAW_NS: rework NS connection to use NS_Provider ...................................................................... RAW_NS: rework NS connection to use NS_Provider Previous RAW_NS only supported NS over UDP because it handled the UDP connection on it's own. Because of this there was no cleanup function for the tests because no virtual component were started. Using the new NS_Provider allows to use the same tests over UDP and FR with no changes. Change-Id: I8a3b6c72798a75f434f54229fdbfc802cd13967e --- D library/RAW_NS.ttcn A library/RAW_NS.ttcnpp M pcu/PCU_Tests.cfg M pcu/PCU_Tests_NS.ttcn M pcu/PCU_Tests_SNS.cfg M pcu/PCU_Tests_SNS.ttcn M pcu/SGSN_Components.ttcn M pcu/gen_links.sh M pcu/regen_makefile.sh M sgsn/SGSN_Tests_NS.ttcn M sgsn/gen_links.sh M sgsn/regen_makefile.sh 12 files changed, 432 insertions(+), 320 deletions(-) Approvals: laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/library/RAW_NS.ttcn b/library/RAW_NS.ttcn deleted file mode 100644 index 7f7b6c4..0000000 --- a/library/RAW_NS.ttcn +++ /dev/null @@ -1,238 +0,0 @@ -module RAW_NS { - -/* Osmocom NS test suite for NS in TTCN-3 - * (C) 2018-2019 Harald Welte - * All rights reserved. - * - * Released under the terms of GNU General Public License, Version 2 or - * (at your option) any later version. - * - * SPDX-License-Identifier: GPL-2.0-or-later - */ - -import from General_Types all; -import from Osmocom_Types all; -import from Osmocom_Gb_Types all; -import from NS_CodecPort all; -import from NS_Types all; -import from BSSGP_Types all; -import from NS_CodecPort all; -import from NS_CodecPort_CtrlFunct all; -import from NS_Emulation all; -import from Native_Functions all; -import from IPL4asp_Types all; - -public type component RAW_NS_CT { - /* UDP port towards the bottom (IUT) */ - port NS_CODEC_PT NSCP[4]; - var ConnectionId g_ns_conn_id[4] := {-1, -1, -1, -1}; - var NSConfiguration g_nsconfig[4]; - timer g_T_guard; -} - -public altstep as_Tguard() runs on RAW_NS_CT { - [] g_T_guard.timeout { - setverdict(fail, "Timeout of T_guard"); - mtc.stop; - } -} - -function f_init_ns_codec(NSConfiguration ns_config, integer idx := 0, float guard_secs := 60.0, integer tc_offset := 0) runs on RAW_NS_CT { - var Result res; - - if (not g_T_guard.running) { - g_T_guard.start(guard_secs); - activate(as_Tguard()); - } - - if (not isbound(g_nsconfig) or not isbound(g_nsconfig[idx])) { - /* copy most parts from mp_nsconfig */ - g_nsconfig[idx] := ns_config; - /* adjust those parts different for each NS-VC */ - g_nsconfig[idx].nsvc[0].nsvci := ns_config.nsvc[0].nsvci + idx; - g_nsconfig[idx].nsvc[0].provider.ip.local_udp_port := ns_config.nsvc[0].provider.ip.local_udp_port + idx + tc_offset; - } - - map(self:NSCP[idx], system:NSCP); - /* Connect the UDP socket */ - var NSConfiguration nscfg := g_nsconfig[idx]; - var NSVCConfiguration nsvc_cfg := nscfg.nsvc[0]; - log("connecting NSCP[", idx, "] to ", nscfg); - res := f_IPL4_connect(NSCP[idx], nsvc_cfg.provider.ip.remote_ip, nsvc_cfg.provider.ip.remote_udp_port, - nsvc_cfg.provider.ip.local_ip, nsvc_cfg.provider.ip.local_udp_port, 0, { udp := {}}); - if (not ispresent(res.connId)) { - setverdict(fail, "Could not connect NS UDP socket, check your configuration ", g_nsconfig[idx]); - mtc.stop; - } - g_ns_conn_id[idx] := res.connId; - -} - -public altstep ax_rx_fail_on_any_ns(integer idx := 0) runs on RAW_NS_CT { - var NS_RecvFrom nrf; - [] NSCP[idx].receive(t_NS_RecvFrom(?)) -> value nrf { - setverdict(fail, "Received unexpected NS: ", nrf); - mtc.stop; - } -} - -function f_ns_exp(template PDU_NS exp_rx, integer idx := 0) runs on RAW_NS_CT return PDU_NS { - var NS_RecvFrom nrf; - log("f_ns_exp() expecting ", exp_rx); - /* last activated altstep has the lowest priority */ - var default d := activate(ax_rx_fail_on_any_ns()); - alt { - [] NSCP[idx].receive(t_NS_RecvFrom(exp_rx)) -> value nrf { } - } - deactivate(d); - return nrf.msg; -} - -/* perform outbound NS-ALIVE procedure */ -function f_outgoing_ns_alive(integer idx := 0) runs on RAW_NS_CT { - NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], t_NS_ALIVE)); - alt { - [] NSCP[idx].receive(t_NS_RecvFrom(t_NS_ALIVE_ACK)); - [] NSCP[idx].receive { repeat; } - } -} - -/* perform outbound NS-ALIVE procedure */ -function f_outgoing_ns_alive_no_ack(integer idx := 0, float tout := 10.0) runs on RAW_NS_CT { - timer T := tout; - NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], t_NS_ALIVE)); - T.start; - alt { - [] NSCP[idx].receive(t_NS_RecvFrom(t_NS_ALIVE_ACK)) { - setverdict(fail, "Received unexpected NS-ALIVE ACK"); - } - [] NSCP[idx].receive { repeat; } - [] T.timeout { - setverdict(pass); - } - } -} - -function f_outgoing_ns_reset(integer idx := 0, float tout := 10.0) runs on RAW_NS_CT { - timer T := tout; - var template PDU_NS reset := ts_NS_RESET(NS_CAUSE_EQUIPMENT_FAILURE, g_nsconfig[idx].nsvc[0].nsvci, g_nsconfig[idx].nsei) - NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], reset)); - T.start; - alt { - [] NSCP[idx].receive(t_NS_RecvFrom(ts_NS_RESET_ACK(g_nsconfig[idx].nsvc[0].nsvci, g_nsconfig[idx].nsei))) { - setverdict(pass); - } - [] NSCP[idx].receive { repeat; } - [] T.timeout { - setverdict(fail, "Failed to receive a RESET ACK"); - } - } -} - -/* perform outbound NS-BLOCK procedure */ -function f_outgoing_ns_block(NsCause cause, integer idx := 0) runs on RAW_NS_CT { - NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_NS_BLOCK(cause, g_nsconfig[idx].nsvc[0].nsvci))); - alt { - [] NSCP[idx].receive(t_NS_RecvFrom(tr_NS_BLOCK_ACK(g_nsconfig[idx].nsvc[0].nsvci))); - [] NSCP[idx].receive { repeat; } - } -} - -/* receive NS-ALIVE and ACK it */ -altstep as_rx_alive_tx_ack(boolean oneshot := false, integer idx := 0) runs on RAW_NS_CT { - [] NSCP[idx].receive(t_NS_RecvFrom(t_NS_ALIVE)) { - NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], t_NS_ALIVE_ACK)); - if (not oneshot) { repeat; } - } -} - -/* Transmit BSSGP RESET for given BVCI and expect ACK */ -function f_tx_bvc_reset_rx_ack(BssgpBvci bvci, template (omit) BssgpCellId tx_cell_id, template BssgpCellId rx_cell_id, - integer idx := 0, boolean exp_ack := true) -runs on RAW_NS_CT { - var PDU_BSSGP bssgp_tx := valueof(ts_BVC_RESET(BSSGP_CAUSE_NET_SV_CAP_MOD_GT_ZERO_KBPS, bvci, - tx_cell_id)); - timer T := 5.0; - NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_NS_UNITDATA(t_SduCtrlB, 0, enc_PDU_BSSGP(bssgp_tx)))); - T.start; - alt { - [exp_ack] NSCP[idx].receive(t_NS_RecvFrom(tr_NS_UNITDATA(t_SduCtrlB, 0, - decmatch tr_BVC_RESET_ACK(bvci, rx_cell_id)))) { - setverdict(pass); - } - [exp_ack] T.timeout { - setverdict(fail, "No response to BVC-RESET"); - } - [not exp_ack] T.timeout { - setverdict(pass); - } - [] NSCP[idx].receive { repeat; } - } -} - -/* Receive a BSSGP RESET for given BVCI and ACK it */ -altstep as_rx_bvc_reset_tx_ack(BssgpBvci bvci, template BssgpCellId rx_cell_id, template (omit) BssgpCellId tx_cell_id, - boolean oneshot := false, integer idx := 0) runs on RAW_NS_CT { - var NS_RecvFrom ns_rf; - [] NSCP[idx].receive(t_NS_RecvFrom(tr_NS_UNITDATA(t_SduCtrlB, 0, - decmatch tr_BVC_RESET(?, bvci, rx_cell_id)))) - -> value ns_rf { - var PDU_BSSGP bssgp_rx := dec_PDU_BSSGP(ns_rf.msg.pDU_NS_Unitdata.nS_SDU); - var PDU_BSSGP bssgp_tx := valueof(ts_BVC_RESET_ACK(bvci, tx_cell_id)); - NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_NS_UNITDATA(t_SduCtrlB, 0, enc_PDU_BSSGP(bssgp_tx)))); - if (not oneshot) { repeat; } - } -} - - -/* Receive a BSSGP UNBLOCK for given BVCI and ACK it */ -altstep as_rx_bvc_unblock_tx_ack(BssgpBvci bvci, boolean oneshot := false, integer idx := 0) runs on RAW_NS_CT { - var NS_RecvFrom ns_rf; - [] NSCP[idx].receive(t_NS_RecvFrom(tr_NS_UNITDATA(t_SduCtrlB, 0, - decmatch t_BVC_UNBLOCK(bvci)))) - -> value ns_rf { - var PDU_BSSGP bssgp_rx := dec_PDU_BSSGP(ns_rf.msg.pDU_NS_Unitdata.nS_SDU); - var PDU_BSSGP bssgp_tx := valueof(t_BVC_UNBLOCK_ACK(bvci)); - NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_NS_UNITDATA(t_SduCtrlB, 0, enc_PDU_BSSGP(bssgp_tx)))); - if (not oneshot) { repeat; } - } -} - -/* Receive a BSSGP FLOW-CONTROL-BVC and ACK it */ -altstep as_rx_bvc_fc_tx_ack(BssgpBvci bvci, boolean oneshot := false, integer idx := 0) runs on RAW_NS_CT { - var NS_RecvFrom ns_rf; - [] NSCP[idx].receive(t_NS_RecvFrom(tr_NS_UNITDATA(t_SduCtrlB, bvci, - decmatch tr_BVC_FC_BVC))) - -> value ns_rf { - var PDU_BSSGP bssgp_rx := dec_PDU_BSSGP(ns_rf.msg.pDU_NS_Unitdata.nS_SDU); - var OCT1 tag := bssgp_rx.pDU_BSSGP_FLOW_CONTROL_BVC.tag.unstructured_Value; - var PDU_BSSGP bssgp_tx := valueof(t_BVC_FC_BVC_ACK(tag)); - NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_NS_UNITDATA(t_SduCtrlB, bvci, enc_PDU_BSSGP(bssgp_tx)))); - if (not oneshot) { repeat; } - } -} - -/********************************************************************************** - * Classic Gb/IP bring-up test cases using NS-{RESET,BLOCK,UNBLOCK} and no IP-SNS * - **********************************************************************************/ - -/* Receive a NS-RESET and ACK it */ -public altstep as_rx_ns_reset_ack(boolean oneshot := false, integer idx := 0) runs on RAW_NS_CT { - var NS_RecvFrom ns_rf; - [] NSCP[idx].receive(t_NS_RecvFrom(tr_NS_RESET(NS_CAUSE_OM_INTERVENTION, g_nsconfig[idx].nsvc[0].nsvci, - g_nsconfig[idx].nsei))) -> value ns_rf { - NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_NS_RESET_ACK(g_nsconfig[idx].nsvc[0].nsvci, - g_nsconfig[idx].nsei))); - if (not oneshot) { repeat; } - } -} -/* Receive a NS-UNBLOCK and ACK it */ -public altstep as_rx_ns_unblock_ack(boolean oneshot := false, integer idx := 0) runs on RAW_NS_CT { - var NS_RecvFrom ns_rf; - [] NSCP[idx].receive(t_NS_RecvFrom(t_NS_UNBLOCK)) -> value ns_rf { - NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], t_NS_UNBLOCK_ACK)); - if (not oneshot) { repeat; } - } -} - -} diff --git a/library/RAW_NS.ttcnpp b/library/RAW_NS.ttcnpp new file mode 100644 index 0000000..c8fc518 --- /dev/null +++ b/library/RAW_NS.ttcnpp @@ -0,0 +1,260 @@ +module RAW_NS { + +/* Osmocom NS test suite for NS in TTCN-3 + * (C) 2018-2019 Harald Welte + * All rights reserved. + * + * Released under the terms of GNU General Public License, Version 2 or + * (at your option) any later version. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +import from Misc_Helpers all; +import from General_Types all; +import from Osmocom_Types all; +import from Osmocom_Gb_Types all; +import from NS_Emulation all; +import from NS_Types all; +import from BSSGP_Types all; +import from NS_Emulation all; +import from Native_Functions all; +import from IPL4asp_Types all; +import from NS_Provider_IPL4 all; +#ifdef NS_EMULATION_FR +import from NS_Provider_FR all; +#endif + +public type component RAW_NS_CT { + /* UDP port towards the bottom (IUT) */ + port NS_PROVIDER_PT NSCP[4]; + var NS_Provider_IPL4_CT vc_NSP_IP[4]; +#ifdef NS_EMULATION_FR + var NS_Provider_FR_CT vc_NSP_FR[4]; +#endif + var NSConfiguration g_nsconfig; + timer g_T_guard; +} + +public altstep as_Tguard() runs on RAW_NS_CT { + [] g_T_guard.timeout { + setverdict(fail, "Timeout of T_guard"); + mtc.stop; + } +} + +function f_init_ns_codec(NSConfiguration ns_config, integer idx := 0, float guard_secs := 60.0, charstring id := testcasename()) runs on RAW_NS_CT { + var Result res; + + if (not g_T_guard.running) { + g_T_guard.start(guard_secs); + activate(as_Tguard()); + } + + if (not isbound(g_nsconfig)) { + g_nsconfig := ns_config; + } + + if (ischosen(ns_config.nsvc[idx].provider.ip)) { + /* Connect the UDP socket */ + vc_NSP_IP[idx] := NS_Provider_IPL4_CT.create(id & "-provIP"); + connect(self:NSCP[idx], vc_NSP_IP[idx]:NSE); + vc_NSP_IP[idx].start(NS_Provider_IPL4.main(ns_config.nsvc[idx], ns_config, id)); +#ifdef NS_EMULATION_FR + } else if (ischosen(ns_config.nsvc[idx].provider.fr)) { + vc_NSP_FR[idx] := NS_Provider_FR_CT.create(id & "-provFR"); + connect(self:NSCP[idx], vc_NSP_FR[idx]:NSE); + vc_NSP_FR[idx].start(NS_Provider_FR.main(ns_config.nsvc[idx], ns_config, id)); +#endif + } else { + Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, "Unsupported NS provider"); + } + + NSCP[idx].receive(NS_Provider_Evt:{link_status:=NS_PROV_LINK_STATUS_UP}); +} + +function f_clean_ns_codec() runs on RAW_NS_CT { + for (var integer i := 0; i < lengthof(vc_NSP_IP); i := i + 1) { + vc_NSP_IP[i].stop; + } +#ifdef NS_EMULATION_FR + for (var integer i := 0; i < lengthof(vc_NSP_FR); i := i + 1) { + vc_NSP_FR[i].stop; + } +#endif NS_EMULATION_FR +} + +public altstep ax_rx_fail_on_any_ns(integer idx := 0) runs on RAW_NS_CT { + var PDU_NS nrf; + [] NSCP[idx].receive(PDU_NS: ?) -> value nrf { + setverdict(fail, "Received unexpected NS: ", nrf); + mtc.stop; + } +} + +function f_ns_exp(template PDU_NS exp_rx, integer idx := 0) runs on RAW_NS_CT return PDU_NS { + var PDU_NS nrf; + log("f_ns_exp() expecting ", exp_rx); + /* last activated altstep has the lowest priority */ + var default d := activate(ax_rx_fail_on_any_ns()); + alt { + [] NSCP[idx].receive(PDU_NS: exp_rx) -> value nrf { } + } + deactivate(d); + return nrf; +} + +/* perform outbound NS-ALIVE procedure */ +function f_outgoing_ns_alive(integer idx := 0) runs on RAW_NS_CT { + NSCP[idx].send(t_NS_ALIVE); + alt { + [] NSCP[idx].receive(t_NS_ALIVE_ACK); + [] NSCP[idx].receive { repeat; } + } +} + +/* perform outbound NS-ALIVE procedure */ +function f_outgoing_ns_alive_no_ack(integer idx := 0, float tout := 10.0) runs on RAW_NS_CT { + timer T := tout; + NSCP[idx].send(t_NS_ALIVE); + T.start; + alt { + [] NSCP[idx].receive(t_NS_ALIVE_ACK) { + setverdict(fail, "Received unexpected NS-ALIVE ACK"); + } + [] NSCP[idx].receive { repeat; } + [] T.timeout { + setverdict(pass); + } + } +} + +function f_outgoing_ns_reset(integer idx := 0, float tout := 10.0) runs on RAW_NS_CT { + timer T := tout; + var template PDU_NS reset := ts_NS_RESET(NS_CAUSE_EQUIPMENT_FAILURE, g_nsconfig.nsvc[idx].nsvci, g_nsconfig.nsei) + NSCP[idx].send(reset); + T.start; + alt { + [] NSCP[idx].receive(ts_NS_RESET_ACK(g_nsconfig.nsvc[idx].nsvci, g_nsconfig.nsei)) { + setverdict(pass); + } + [] NSCP[idx].receive { repeat; } + [] T.timeout { + setverdict(fail, "Failed to receive a RESET ACK"); + } + } +} + +/* perform outbound NS-BLOCK procedure */ +function f_outgoing_ns_block(NsCause cause, integer idx := 0) runs on RAW_NS_CT { + NSCP[idx].send(ts_NS_BLOCK(cause, g_nsconfig.nsvc[idx].nsvci)); + alt { + [] NSCP[idx].receive(tr_NS_BLOCK_ACK(g_nsconfig.nsvc[idx].nsvci)); + [] NSCP[idx].receive { repeat; } + } +} + +/* perform outbound NS-UNBLOCK procedure */ +function f_outgoing_ns_unblock(integer idx := 0) runs on RAW_NS_CT { + NSCP[idx].send(t_NS_UNBLOCK); + alt { + [] NSCP[idx].receive(t_NS_UNBLOCK_ACK); + [] NSCP[idx].receive { repeat; } + } +} + +/* receive NS-ALIVE and ACK it */ +altstep as_rx_alive_tx_ack(boolean oneshot := false, integer idx := 0) runs on RAW_NS_CT { + [] NSCP[idx].receive(t_NS_ALIVE) { + NSCP[idx].send(t_NS_ALIVE_ACK); + if (not oneshot) { repeat; } + } +} + +/* Transmit BSSGP RESET for given BVCI and expect ACK */ +function f_tx_bvc_reset_rx_ack(BssgpBvci bvci, template (omit) BssgpCellId tx_cell_id, template BssgpCellId rx_cell_id, + integer idx := 0, boolean exp_ack := true) +runs on RAW_NS_CT { + var PDU_BSSGP bssgp_tx := valueof(ts_BVC_RESET(BSSGP_CAUSE_NET_SV_CAP_MOD_GT_ZERO_KBPS, bvci, + tx_cell_id)); + timer T := 5.0; + NSCP[idx].send(ts_NS_UNITDATA(t_SduCtrlB, 0, enc_PDU_BSSGP(bssgp_tx))); + T.start; + alt { + [exp_ack] NSCP[idx].receive(tr_NS_UNITDATA(t_SduCtrlB, 0, + decmatch tr_BVC_RESET_ACK(bvci, rx_cell_id))) { + setverdict(pass); + } + [exp_ack] T.timeout { + setverdict(fail, "No response to BVC-RESET"); + } + [not exp_ack] T.timeout { + setverdict(pass); + } + [] NSCP[idx].receive { repeat; } + } +} + +/* Receive a BSSGP RESET for given BVCI and ACK it */ +altstep as_rx_bvc_reset_tx_ack(BssgpBvci bvci, template BssgpCellId rx_cell_id, template (omit) BssgpCellId tx_cell_id, + boolean oneshot := false, integer idx := 0) runs on RAW_NS_CT { + var PDU_NS ns_rf; + [] NSCP[idx].receive(tr_NS_UNITDATA(t_SduCtrlB, 0, + decmatch tr_BVC_RESET(?, bvci, rx_cell_id))) + -> value ns_rf { + var PDU_BSSGP bssgp_rx := dec_PDU_BSSGP(ns_rf.pDU_NS_Unitdata.nS_SDU); + var PDU_BSSGP bssgp_tx := valueof(ts_BVC_RESET_ACK(bvci, tx_cell_id)); + NSCP[idx].send(ts_NS_UNITDATA(t_SduCtrlB, 0, enc_PDU_BSSGP(bssgp_tx))); + if (not oneshot) { repeat; } + } +} + + +/* Receive a BSSGP UNBLOCK for given BVCI and ACK it */ +altstep as_rx_bvc_unblock_tx_ack(BssgpBvci bvci, boolean oneshot := false, integer idx := 0) runs on RAW_NS_CT { + var PDU_NS ns_rf; + [] NSCP[idx].receive(tr_NS_UNITDATA(t_SduCtrlB, 0, decmatch t_BVC_UNBLOCK(bvci))) -> value ns_rf { + var PDU_BSSGP bssgp_rx := dec_PDU_BSSGP(ns_rf.pDU_NS_Unitdata.nS_SDU); + var PDU_BSSGP bssgp_tx := valueof(t_BVC_UNBLOCK_ACK(bvci)); + NSCP[idx].send(ts_NS_UNITDATA(t_SduCtrlB, 0, enc_PDU_BSSGP(bssgp_tx))); + if (not oneshot) { repeat; } + } +} + +/* Receive a BSSGP FLOW-CONTROL-BVC and ACK it */ +altstep as_rx_bvc_fc_tx_ack(BssgpBvci bvci, boolean oneshot := false, integer idx := 0) runs on RAW_NS_CT { + var PDU_NS ns_rf; + [] NSCP[idx].receive(tr_NS_UNITDATA(t_SduCtrlB, bvci, + decmatch tr_BVC_FC_BVC)) + -> value ns_rf { + var PDU_BSSGP bssgp_rx := dec_PDU_BSSGP(ns_rf.pDU_NS_Unitdata.nS_SDU); + var OCT1 tag := bssgp_rx.pDU_BSSGP_FLOW_CONTROL_BVC.tag.unstructured_Value; + var PDU_BSSGP bssgp_tx := valueof(t_BVC_FC_BVC_ACK(tag)); + NSCP[idx].send(ts_NS_UNITDATA(t_SduCtrlB, bvci, enc_PDU_BSSGP(bssgp_tx))); + if (not oneshot) { repeat; } + } +} + +/********************************************************************************** + * Classic Gb/IP bring-up test cases using NS-{RESET,BLOCK,UNBLOCK} and no IP-SNS * + **********************************************************************************/ + +/* Receive a NS-RESET and ACK it */ +public altstep as_rx_ns_reset_ack(boolean oneshot := false, integer idx := 0) runs on RAW_NS_CT { + var PDU_NS ns_rf; + [] NSCP[idx].receive(tr_NS_RESET(NS_CAUSE_OM_INTERVENTION, g_nsconfig.nsvc[idx].nsvci, + g_nsconfig.nsei)) -> value ns_rf { + NSCP[idx].send(ts_NS_RESET_ACK(g_nsconfig.nsvc[idx].nsvci, g_nsconfig.nsei)); + if (not oneshot) { repeat; } + } +} +/* Receive a NS-UNBLOCK and ACK it */ +public altstep as_rx_ns_unblock_ack(boolean oneshot := false, integer idx := 0) runs on RAW_NS_CT { + var PDU_NS ns_rf; + [] NSCP[idx].receive(t_NS_UNBLOCK) -> value ns_rf { + NSCP[idx].send(t_NS_UNBLOCK_ACK); + if (not oneshot) { repeat; } + } +} + +} diff --git a/pcu/PCU_Tests.cfg b/pcu/PCU_Tests.cfg index dd6b111..13bedec 100644 --- a/pcu/PCU_Tests.cfg +++ b/pcu/PCU_Tests.cfg @@ -22,6 +22,30 @@ } }, nsvci := 1234 + }, + { + provider := { + ip := { + address_family := AF_INET, + local_ip := "127.0.0.1", + local_udp_port := 23001, + remote_ip := "127.0.0.1", + remote_udp_port := 22000 + } + }, + nsvci := 1234 + }, + { + provider := { + ip := { + address_family := AF_INET, + local_ip := "127.0.0.1", + local_udp_port := 23002, + remote_ip := "127.0.0.1", + remote_udp_port := 22000 + } + }, + nsvci := 1234 } } } diff --git a/pcu/PCU_Tests_NS.ttcn b/pcu/PCU_Tests_NS.ttcn index e782b6e..9cf37b5 100644 --- a/pcu/PCU_Tests_NS.ttcn +++ b/pcu/PCU_Tests_NS.ttcn @@ -15,12 +15,9 @@ import from PCU_Tests all; import from SGSN_Components all; import from Osmocom_Gb_Types all; -import from NS_CodecPort all; import from NS_Types all; import from BSSGP_Types all; import from UD_Types all; -import from NS_CodecPort all; -import from NS_CodecPort_CtrlFunct all; import from NS_Emulation all; import from Native_Functions all; import from IPL4asp_Types all; @@ -70,7 +67,7 @@ timer T := tout; T.start; alt { - [] NSCP[idx].receive(t_NS_RecvFrom(ns)) { + [] NSCP[idx].receive(ns) { setverdict(fail, "NS-ALIVE from unconfigured (possibly initial) endpoint"); } [] T.timeout { @@ -88,6 +85,7 @@ /* Expect inbound NS-RESET procedure */ as_rx_ns_reset_ack(oneshot := true); setverdict(pass); + f_clean_ns_codec(); } /* ensure NS-RESET are re-transmitted */ @@ -97,13 +95,14 @@ var integer i; for (i := 0; i < 3; i := i+1) { - NSCP[0].receive(t_NS_RecvFrom(tr_NS_RESET(NS_CAUSE_OM_INTERVENTION, - g_nsconfig[0].nsvc[0].nsvci, g_nsconfig[0].nsei))); + NSCP[0].receive(tr_NS_RESET(NS_CAUSE_OM_INTERVENTION, + g_nsconfig.nsvc[0].nsvci, g_nsconfig.nsei)); } /* Expect inbound NS-RESET procedure */ as_rx_ns_reset_ack(oneshot := true); setverdict(pass); + f_clean_ns_codec(); } /* test the inbound NS-ALIVE procedure after NS-RESET */ @@ -116,9 +115,10 @@ alt { /* wait for one ALIVE cycle, then ACK any further ALIVE in the background */ - [] NSCP[0].receive(t_NS_RecvFrom(t_NS_ALIVE)) { setverdict(pass); }; - [] NSCP[0].receive(t_NS_RecvFrom(t_NS_UNBLOCK)) { repeat; } + [] NSCP[0].receive(t_NS_ALIVE) { setverdict(pass); }; + [] NSCP[0].receive(t_NS_UNBLOCK) { repeat; } } + f_clean_ns_codec(); } /* Test for NS-RESET after NS-ALIVE timeout */ @@ -132,15 +132,17 @@ /* wait for at least one NS-ALIVE */ alt { [] as_rx_alive_tx_ack(oneshot := true) { }; - [] NSCP[0].receive(t_NS_RecvFrom(t_NS_UNBLOCK)) { repeat; } + [] NSCP[0].receive(t_NS_UNBLOCK) { repeat; } } /* wait for NS-RESET to re-appear, ignoring any NS-ALIVE until then */ alt { [] as_rx_ns_reset_ack(oneshot := true) { setverdict(pass); } - [] NSCP[0].receive(t_NS_RecvFrom(t_NS_ALIVE)) { repeat; } - [] NSCP[0].receive(t_NS_RecvFrom(t_NS_UNBLOCK)) { repeat; } + [] NSCP[0].receive(t_NS_ALIVE) { repeat; } + [] NSCP[0].receive(t_NS_UNBLOCK) { repeat; } } + + f_clean_ns_codec(); } /* test for NS-RESET/NS-ALIVE/NS-UNBLOCK */ @@ -156,6 +158,7 @@ as_rx_ns_unblock_ack(oneshot := true); setverdict(pass); + f_clean_ns_codec(); } /* test for NS-UNBLOCK re-transmissions */ @@ -170,11 +173,12 @@ activate(as_rx_alive_tx_ack()); /* wait for first NS-UNBLOCK, don't respond */ - NSCP[0].receive(t_NS_RecvFrom(t_NS_UNBLOCK)); + NSCP[0].receive(t_NS_UNBLOCK); /* wait for re-transmission of NS-UNBLOCK */ as_rx_ns_unblock_ack(oneshot := true); setverdict(pass); + f_clean_ns_codec(); } /* full bring-up of the Gb link for NS and BSSGP layer up to BVC-FC */ @@ -205,6 +209,7 @@ as_rx_bvc_fc_tx_ack(mp_gb_cfg.bvc[0].bvci, oneshot := true); activate(as_rx_bvc_fc_tx_ack(mp_gb_cfg.bvc[0].bvci)); setverdict(pass); + f_clean_ns_codec(); } /* test outbound (SGSN-originated) NS-BLOCK procedure */ @@ -224,6 +229,7 @@ f_outgoing_ns_block(NS_CAUSE_EQUIPMENT_FAILURE); setverdict(pass); + f_clean_ns_codec(); } diff --git a/pcu/PCU_Tests_SNS.cfg b/pcu/PCU_Tests_SNS.cfg index e5a08fe..ab589c5 100644 --- a/pcu/PCU_Tests_SNS.cfg +++ b/pcu/PCU_Tests_SNS.cfg @@ -21,6 +21,30 @@ } }, nsvci := 1234 + }, + { + provider := { + ip := { + address_family := AF_INET, + local_ip := "127.0.0.1", + local_udp_port := 23001, + remote_ip := "127.0.0.1", + remote_udp_port := 22000 + } + }, + nsvci := 1234 + }, + { + provider := { + ip := { + address_family := AF_INET, + local_ip := "127.0.0.1", + local_udp_port := 23002, + remote_ip := "127.0.0.1", + remote_udp_port := 22000 + } + }, + nsvci := 1234 } } } diff --git a/pcu/PCU_Tests_SNS.ttcn b/pcu/PCU_Tests_SNS.ttcn index ea78761..4fca26e 100644 --- a/pcu/PCU_Tests_SNS.ttcn +++ b/pcu/PCU_Tests_SNS.ttcn @@ -15,7 +15,6 @@ import from SGSN_Components all; import from Osmocom_Gb_Types all; import from NS_Emulation all; -import from NS_CodecPort all; import from NS_Types all; import from RAW_NS all; @@ -28,18 +27,18 @@ runs on RAW_NS_CT { log("f_incoming_sns_size(idx=", idx, ")"); var PDU_NS rx; - var NSVCConfiguration nsvc_cfg := g_nsconfig[idx].nsvc[0]; + var NSVCConfiguration nsvc_cfg := g_nsconfig.nsvc[idx]; if (nsvc_cfg.provider.ip.address_family == AF_INET) { /* expect one single SNS-SIZE with RESET flag; 4x v4 EP; no v6 EP */ - rx := f_ns_exp(tr_SNS_SIZE(g_nsconfig[idx].nsei, rst_flag := true, max_nsvcs := 8, + rx := f_ns_exp(tr_SNS_SIZE(g_nsconfig.nsei, rst_flag := true, max_nsvcs := 8, num_v4 := 4, num_v6 := omit), idx); } else { /* expect one single SNS-SIZE with RESET flag; no v4 EP; 4x v6 EP */ - rx := f_ns_exp(tr_SNS_SIZE(g_nsconfig[idx].nsei, rst_flag := true, max_nsvcs := 8, + rx := f_ns_exp(tr_SNS_SIZE(g_nsconfig.nsei, rst_flag := true, max_nsvcs := 8, num_v4 := omit, num_v6 := 4), idx); } - NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_SNS_SIZE_ACK(g_nsconfig[idx].nsei, cause))); + NSCP[idx].send(ts_SNS_SIZE_ACK(g_nsconfig.nsei, cause)); } /* perform outbound SNS-SIZE procedure */ @@ -47,19 +46,19 @@ runs on RAW_NS_CT { log("f_outgoing_sns_size(idx=", idx, ")"); var PDU_NS rx; - var NSVCConfiguration nsvc_cfg := g_nsconfig[idx].nsvc[0]; + var NSVCConfiguration nsvc_cfg := g_nsconfig.nsvc[idx]; if (nsvc_cfg.provider.ip.address_family == AF_INET) { - NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_SNS_SIZE(g_nsconfig[idx].nsei, rst_flag := true, max_nsvcs := 1, + NSCP[idx].send(ts_SNS_SIZE(g_nsconfig.nsei, rst_flag := true, max_nsvcs := 1, num_v4 := 1, num_v6 := omit) - )); + ); } else { - NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_SNS_SIZE(g_nsconfig[idx].nsei, rst_flag := true, max_nsvcs := 1, + NSCP[idx].send(ts_SNS_SIZE(g_nsconfig.nsei, rst_flag := true, max_nsvcs := 1, num_v4 := omit, num_v6 := 1) - )); + ); } /* expect one single SNS-SIZE with RESET flag; 4x v4 EP; no v6 EP */ - rx := f_ns_exp(tr_SNS_SIZE_ACK(g_nsconfig[idx].nsei, cause), idx); + rx := f_ns_exp(tr_SNS_SIZE_ACK(g_nsconfig.nsei, cause), idx); } /* perform inbound SNS-CONFIG procedure */ @@ -67,18 +66,18 @@ runs on RAW_NS_CT { log("f_incoming_sns_config(idx=", idx, ")"); var PDU_NS rx; - var NSVCConfiguration nsvc_cfg := g_nsconfig[idx].nsvc[0]; + var NSVCConfiguration nsvc_cfg := g_nsconfig.nsvc[idx]; if (nsvc_cfg.provider.ip.address_family == AF_INET) { var template IP4_Elements v4_elem := { tr_SNS_IPv4(nsvc_cfg.provider.ip.remote_ip, nsvc_cfg.provider.ip.remote_udp_port) }; - rx := f_ns_exp(tr_SNS_CONFIG(g_nsconfig[idx].nsei, end_flag := true, v4 := v4_elem), idx); + rx := f_ns_exp(tr_SNS_CONFIG(g_nsconfig.nsei, end_flag := true, v4 := v4_elem), idx); } else { var template IP6_Elements v6_elem := { tr_SNS_IPv6(nsvc_cfg.provider.ip.remote_ip, nsvc_cfg.provider.ip.remote_udp_port) }; - rx := f_ns_exp(tr_SNS_CONFIG(g_nsconfig[idx].nsei, end_flag := true, v6 := v6_elem), idx); + rx := f_ns_exp(tr_SNS_CONFIG(g_nsconfig.nsei, end_flag := true, v6 := v6_elem), idx); } - NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_SNS_CONFIG_ACK(g_nsconfig[idx].nsei, cause))); + NSCP[idx].send(ts_SNS_CONFIG_ACK(g_nsconfig.nsei, cause)); } /* perform outbound SNS-CONFIG procedure */ @@ -86,18 +85,18 @@ runs on RAW_NS_CT { log("f_outgoing_sns_config(idx=", idx, ")"); var PDU_NS rx; - var NSVCConfiguration nsvc_cfg := g_nsconfig[idx].nsvc[0]; + var NSVCConfiguration nsvc_cfg := g_nsconfig.nsvc[idx]; if (nsvc_cfg.provider.ip.address_family == AF_INET) { var template (omit) IP4_Elements v4 := { ts_SNS_IPv4(nsvc_cfg.provider.ip.local_ip, nsvc_cfg.provider.ip.local_udp_port) } - NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_SNS_CONFIG(g_nsconfig[idx].nsei, true, v4))); + NSCP[idx].send(ts_SNS_CONFIG(g_nsconfig.nsei, true, v4)); } else { var template (omit) IP6_Elements v6 := { ts_SNS_IPv6(nsvc_cfg.provider.ip.local_ip, nsvc_cfg.provider.ip.local_udp_port) } - NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_SNS_CONFIG(g_nsconfig[idx].nsei, true, omit, v6))); + NSCP[idx].send(ts_SNS_CONFIG(g_nsconfig.nsei, true, omit, v6)); } - rx := f_ns_exp(tr_SNS_CONFIG_ACK(g_nsconfig[idx].nsei, cause), idx); + rx := f_ns_exp(tr_SNS_CONFIG_ACK(g_nsconfig.nsei, cause), idx); } /* perform outbound SNS-CONFIG procedure (separate endpoints: 1 for control, 1 for user */ @@ -107,19 +106,19 @@ var PDU_NS rx; if (mp_nsconfig.nsvc[0].provider.ip.address_family == AF_INET) { - var template (omit) IP4_Elements v4 := { ts_SNS_IPv4(g_nsconfig[0].nsvc[0].provider.ip.local_ip, - g_nsconfig[0].nsvc[0].provider.ip.local_udp_port, 1, 0), - ts_SNS_IPv4(g_nsconfig[1].nsvc[0].provider.ip.local_ip, - g_nsconfig[1].nsvc[0].provider.ip.local_udp_port, 0, 1) }; - NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_SNS_CONFIG(g_nsconfig[idx].nsei, true, v4))); + var template (omit) IP4_Elements v4 := { ts_SNS_IPv4(g_nsconfig.nsvc[0].provider.ip.local_ip, + g_nsconfig.nsvc[0].provider.ip.local_udp_port, 1, 0), + ts_SNS_IPv4(g_nsconfig.nsvc[1].provider.ip.local_ip, + g_nsconfig.nsvc[1].provider.ip.local_udp_port, 0, 1) }; + NSCP[idx].send(ts_SNS_CONFIG(g_nsconfig.nsei, true, v4)); } else { - var template (omit) IP6_Elements v6 := { ts_SNS_IPv6(g_nsconfig[0].nsvc[0].provider.ip.local_ip, - g_nsconfig[0].nsvc[0].provider.ip.local_udp_port, 1, 0), - ts_SNS_IPv6(g_nsconfig[1].nsvc[0].provider.ip.local_ip, - g_nsconfig[1].nsvc[0].provider.ip.local_udp_port, 0, 1) }; - NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_SNS_CONFIG(g_nsconfig[idx].nsei, true, omit, v6))); + var template (omit) IP6_Elements v6 := { ts_SNS_IPv6(g_nsconfig.nsvc[0].provider.ip.local_ip, + g_nsconfig.nsvc[0].provider.ip.local_udp_port, 1, 0), + ts_SNS_IPv6(g_nsconfig.nsvc[1].provider.ip.local_ip, + g_nsconfig.nsvc[1].provider.ip.local_udp_port, 0, 1) }; + NSCP[idx].send(ts_SNS_CONFIG(g_nsconfig.nsei, true, omit, v6)); } - rx := f_ns_exp(tr_SNS_CONFIG_ACK(g_nsconfig[idx].nsei, cause), idx); + rx := f_ns_exp(tr_SNS_CONFIG_ACK(g_nsconfig.nsei, cause), idx); } /* perform outbound SNS-CONFIG procedure (separate endpoints: 1 for control, 1 for user */ @@ -128,38 +127,38 @@ log("f_outgoing_sns_config_1c1u_separate(idx=", idx, ")"); var PDU_NS rx; if (mp_nsconfig.nsvc[0].provider.ip.address_family == AF_INET) { - var template (omit) IP4_Elements v4 := { ts_SNS_IPv4(g_nsconfig[1].nsvc[0].provider.ip.local_ip, - g_nsconfig[1].nsvc[0].provider.ip.local_udp_port, 1, 0), - ts_SNS_IPv4(g_nsconfig[2].nsvc[0].provider.ip.local_ip, - g_nsconfig[2].nsvc[0].provider.ip.local_udp_port, 0, 1) }; - NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_SNS_CONFIG(g_nsconfig[idx].nsei, true, v4))); + var template (omit) IP4_Elements v4 := { ts_SNS_IPv4(g_nsconfig.nsvc[1].provider.ip.local_ip, + g_nsconfig.nsvc[1].provider.ip.local_udp_port, 1, 0), + ts_SNS_IPv4(g_nsconfig.nsvc[2].provider.ip.local_ip, + g_nsconfig.nsvc[2].provider.ip.local_udp_port, 0, 1) }; + NSCP[idx].send(ts_SNS_CONFIG(g_nsconfig.nsei, true, v4)); } else { - var template (omit) IP6_Elements v6 := { ts_SNS_IPv6(g_nsconfig[1].nsvc[0].provider.ip.local_ip, - g_nsconfig[1].nsvc[0].provider.ip.local_udp_port, 1, 0), - ts_SNS_IPv6(g_nsconfig[2].nsvc[0].provider.ip.local_ip, - g_nsconfig[2].nsvc[0].provider.ip.local_udp_port, 0, 1) }; - NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_SNS_CONFIG(g_nsconfig[idx].nsei, true, omit, v6))); + var template (omit) IP6_Elements v6 := { ts_SNS_IPv6(g_nsconfig.nsvc[1].provider.ip.local_ip, + g_nsconfig.nsvc[1].provider.ip.local_udp_port, 1, 0), + ts_SNS_IPv6(g_nsconfig.nsvc[2].provider.ip.local_ip, + g_nsconfig.nsvc[2].provider.ip.local_udp_port, 0, 1) }; + NSCP[idx].send(ts_SNS_CONFIG(g_nsconfig.nsei, true, omit, v6)); } - rx := f_ns_exp(tr_SNS_CONFIG_ACK(g_nsconfig[idx].nsei, cause), idx); + rx := f_ns_exp(tr_SNS_CONFIG_ACK(g_nsconfig.nsei, cause), idx); } function f_outgoing_sns_add(integer idx_add, uint8_t w_sig := 1, uint8_t w_user := 1, integer idx := 0, template (omit) NsCause cause := omit) runs on RAW_NS_CT { log("f_outgoing_sns_add(idx_add=", idx_add, ")"); var PDU_NS rx; - var NSVCConfiguration nsvc_cfg := g_nsconfig[idx_add].nsvc[0]; + var NSVCConfiguration nsvc_cfg := g_nsconfig.nsvc[idx_add]; if (nsvc_cfg.provider.ip.address_family == AF_INET) { var template (omit) IP4_Elements v4 := { ts_SNS_IPv4(nsvc_cfg.provider.ip.local_ip, nsvc_cfg.provider.ip.local_udp_port, w_sig, w_user) }; - NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_SNS_ADD(g_nsconfig[idx].nsei, 23, v4))); - rx := f_ns_exp(tr_SNS_ACK(g_nsconfig[idx].nsei, 23, cause, v4)); + NSCP[idx].send(ts_SNS_ADD(g_nsconfig.nsei, 23, v4)); + rx := f_ns_exp(tr_SNS_ACK(g_nsconfig.nsei, 23, cause, v4)); } else { var template (omit) IP6_Elements v6 := { ts_SNS_IPv6(nsvc_cfg.provider.ip.local_ip, nsvc_cfg.provider.ip.local_udp_port, w_sig, w_user) }; - NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_SNS_ADD(g_nsconfig[idx].nsei, 23, omit, v6))); - rx := f_ns_exp(tr_SNS_ACK(g_nsconfig[idx].nsei, 23, cause, omit, v6)); + NSCP[idx].send(ts_SNS_ADD(g_nsconfig.nsei, 23, omit, v6)); + rx := f_ns_exp(tr_SNS_ACK(g_nsconfig.nsei, 23, cause, omit, v6)); } } @@ -167,19 +166,19 @@ runs on RAW_NS_CT { log("f_outgoing_sns_del(idx_del=", idx_del, ")"); var PDU_NS rx; - var NSVCConfiguration nsvc_cfg := g_nsconfig[idx_del].nsvc[0]; + var NSVCConfiguration nsvc_cfg := g_nsconfig.nsvc[idx_del]; if (nsvc_cfg.provider.ip.address_family == AF_INET) { var template (omit) IP4_Elements v4 := { ts_SNS_IPv4(nsvc_cfg.provider.ip.local_ip, nsvc_cfg.provider.ip.local_udp_port, w_sig, w_user) }; - NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_SNS_DEL(g_nsconfig[idx].nsei, 24, omit, v4))); - rx := f_ns_exp(tr_SNS_ACK(g_nsconfig[idx].nsei, 24, omit, v4)); + NSCP[idx].send(ts_SNS_DEL(g_nsconfig.nsei, 24, omit, v4)); + rx := f_ns_exp(tr_SNS_ACK(g_nsconfig.nsei, 24, omit, v4)); } else { var template (omit) IP6_Elements v6 := { ts_SNS_IPv6(nsvc_cfg.provider.ip.local_ip, nsvc_cfg.provider.ip.local_udp_port, w_sig, w_user) }; - NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_SNS_DEL(g_nsconfig[idx].nsei, 24, omit, omit, v6))); - rx := f_ns_exp(tr_SNS_ACK(g_nsconfig[idx].nsei, 24, omit, omit, v6)); + NSCP[idx].send(ts_SNS_DEL(g_nsconfig.nsei, 24, omit, omit, v6)); + rx := f_ns_exp(tr_SNS_ACK(g_nsconfig.nsei, 24, omit, omit, v6)); } } @@ -187,19 +186,19 @@ runs on RAW_NS_CT { log("f_outgoing_sns_chg_weight(idx_chg=", idx_chg, ")"); var PDU_NS rx; - var NSVCConfiguration nsvc_cfg := g_nsconfig[idx_chg].nsvc[0]; + var NSVCConfiguration nsvc_cfg := g_nsconfig.nsvc[idx_chg]; if (nsvc_cfg.provider.ip.address_family == AF_INET) { var template (omit) IP4_Elements v4 := { ts_SNS_IPv4(nsvc_cfg.provider.ip.local_ip, nsvc_cfg.provider.ip.local_udp_port, w_sig, w_user) }; - NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_SNS_CHG_WEIGHT(g_nsconfig[idx].nsei, 25, v4))); - rx := f_ns_exp(tr_SNS_ACK(g_nsconfig[idx].nsei, 25, omit, v4)); + NSCP[idx].send(ts_SNS_CHG_WEIGHT(g_nsconfig.nsei, 25, v4)); + rx := f_ns_exp(tr_SNS_ACK(g_nsconfig.nsei, 25, omit, v4)); } else { var template (omit) IP6_Elements v6 := { ts_SNS_IPv6(nsvc_cfg.provider.ip.local_ip, nsvc_cfg.provider.ip.local_udp_port, w_sig, w_user) }; - NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_SNS_CHG_WEIGHT(g_nsconfig[idx].nsei, 25, omit, v6))); - rx := f_ns_exp(tr_SNS_ACK(g_nsconfig[idx].nsei, 25, omit, omit, v6)); + NSCP[idx].send(ts_SNS_CHG_WEIGHT(g_nsconfig.nsei, 25, omit, v6)); + rx := f_ns_exp(tr_SNS_ACK(g_nsconfig.nsei, 25, omit, omit, v6)); } } @@ -214,6 +213,7 @@ f_incoming_sns_size(); f_sleep(1.0); setverdict(pass); + f_clean_ns_codec(); } /* PCU-originated SNS-SIZE: NACK from our side */ @@ -225,6 +225,7 @@ /* FIXME: ensure we get re-transmitted SNS-SIZE attempts */ f_sleep(10.0); setverdict(pass); + f_clean_ns_codec(); } /* PCU-originated SNS-CONFIG: successful case */ @@ -235,6 +236,7 @@ f_incoming_sns_config(); f_sleep(1.0); setverdict(pass); + f_clean_ns_codec(); } /* PCU-originated SNS-CONFIG: successful case */ @@ -246,6 +248,7 @@ /* FIXME: ensure we get re-transmitted SNS-CONFIG attempts */ f_sleep(10.0); setverdict(pass); + f_clean_ns_codec(); } @@ -272,6 +275,7 @@ as_rx_bvc_fc_tx_ack(mp_gb_cfg.bvc[0].bvci, oneshot := true); activate(as_rx_bvc_fc_tx_ack(mp_gb_cfg.bvc[0].bvci)); setverdict(pass); + f_clean_ns_codec(); } private function f_sns_bringup_1c1u(boolean sgsn_originated_reset := false) runs on RAW_Test_CT { @@ -327,6 +331,7 @@ testcase TC_sns_1c1u() runs on RAW_Test_CT { f_sns_bringup_1c1u(); setverdict(pass); + f_clean_ns_codec(); } private function f_sns_bringup_1c1u_separate(boolean sgsn_originated_reset := false) runs on RAW_Test_CT { @@ -387,6 +392,7 @@ testcase TC_sns_1c1u_separate() runs on RAW_Test_CT { f_sns_bringup_1c1u_separate(); setverdict(pass); + f_clean_ns_codec(); } /* Test full IP-SNS bring-up with two NS-VCs, one sig-only and one user-only and use @@ -394,6 +400,7 @@ testcase TC_sns_1c1u_so_bvc_reset() runs on RAW_Test_CT { f_sns_bringup_1c1u_separate(sgsn_originated_reset := true); setverdict(pass); + f_clean_ns_codec(); } /* Transmit BVC-RESET before NS-ALIVE of PCU was ACKed: expect no response */ @@ -420,6 +427,7 @@ /* Transmit BVC-RESET and expect no ACK*/ f_tx_bvc_reset_rx_ack(0, omit, omit, idx := 1, exp_ack := false); f_tx_bvc_reset_rx_ack(mp_gb_cfg.bvc[0].bvci, omit, mp_gb_cfg.bvc[0].cell_id, idx := 1, exp_ack := false); + f_clean_ns_codec(); } /* Test adding new IP endpoints at runtime */ @@ -437,6 +445,7 @@ f_outgoing_ns_alive(2); setverdict(pass); + f_clean_ns_codec(); } /* Test adding an already present IP endpoint at runtime */ @@ -445,6 +454,7 @@ f_outgoing_sns_add(idx_add := 0, w_sig := 0, w_user := 1, idx := 0, cause := NS_CAUSE_PROTOCOL_ERROR_UNSPEIFIED); setverdict(pass); + f_clean_ns_codec(); } /* Test deleting IP endpoints at runtime */ @@ -454,6 +464,7 @@ f_outgoing_sns_del(idx_del := 1, w_sig := 0, w_user := 1, idx := 0); /* FIXME: ensure we don't receive anything on just-deleted NS-VC anymore */ setverdict(pass); + f_clean_ns_codec(); } /* Test changing weights at runtime */ @@ -463,6 +474,7 @@ /* change w_user from 1 to 200 */ f_outgoing_sns_chg_weight(idx_chg := 1, w_sig := 0, w_user := 200, idx := 0); setverdict(pass); + f_clean_ns_codec(); } import from PCUIF_Types all; @@ -485,6 +497,7 @@ tr_PCUIF_DATA_REQ(bts_nr:=0, trx_nr:=0, ts_nr:=0, block_nr:=?, fn:=?, sapi:=PCU_IF_SAPI_AGCH, data:=?))); setverdict(pass); + f_clean_ns_codec(); } diff --git a/pcu/SGSN_Components.ttcn b/pcu/SGSN_Components.ttcn index 18f3992..08d9231 100644 --- a/pcu/SGSN_Components.ttcn +++ b/pcu/SGSN_Components.ttcn @@ -55,6 +55,30 @@ } }, nsvci := 0 + }, + { + provider := { + ip := { + address_family := AF_INET, + local_udp_port := 23001, + local_ip := "127.0.0.1", + remote_udp_port := 21000, + remote_ip := "127.0.0.1" + } + }, + nsvci := 0 + }, + { + provider := { + ip := { + address_family := AF_INET, + local_udp_port := 23002, + local_ip := "127.0.0.1", + remote_udp_port := 21000, + remote_ip := "127.0.0.1" + } + }, + nsvci := 0 } } }; diff --git a/pcu/gen_links.sh b/pcu/gen_links.sh index a33cb27..2e581d9 100755 --- a/pcu/gen_links.sh +++ b/pcu/gen_links.sh @@ -51,10 +51,10 @@ DIR=../library FILES="Misc_Helpers.ttcn General_Types.ttcn Osmocom_VTY_Functions.ttcn Native_Functions.ttcn Native_FunctionDefs.cc GSM_Types.ttcn GSM_RR_Types.ttcn Osmocom_Types.ttcn RLCMAC_Templates.ttcn RLCMAC_Types.ttcn RLCMAC_CSN1_Templates.ttcn RLCMAC_CSN1_Types.ttcn RLCMAC_EncDec.cc " FILES+="StatsD_Types.ttcn StatsD_CodecPort.ttcn StatsD_CodecPort_CtrlFunct.ttcn StatsD_CodecPort_CtrlFunctdef.cc StatsD_Checker.ttcn " -FILES+="NS_Provider_IPL4.ttcn NS_Emulation.ttcnpp NS_CodecPort.ttcn NS_CodecPort_CtrlFunct.ttcn NS_CodecPort_CtrlFunctDef.cc " +FILES+="NS_Provider_IPL4.ttcn NS_Emulation.ttcnpp " FILES+="BSSGP_Emulation.ttcnpp Osmocom_Gb_Types.ttcn " FILES+="LLC_Templates.ttcn L3_Templates.ttcn L3_Common.ttcn " -FILES+="PCUIF_Types.ttcn PCUIF_CodecPort.ttcn RAW_NS.ttcn " +FILES+="PCUIF_Types.ttcn PCUIF_CodecPort.ttcn RAW_NS.ttcnpp " gen_links $DIR $FILES ignore_pp_results diff --git a/pcu/regen_makefile.sh b/pcu/regen_makefile.sh index dc9b672..ca51452 100755 --- a/pcu/regen_makefile.sh +++ b/pcu/regen_makefile.sh @@ -1,6 +1,6 @@ #!/bin/sh -FILES="*.ttcn *.ttcnpp BSSGP_EncDec.cc IPL4asp_PT.cc IPL4asp_discovery.cc TCCConversion.cc TCCInterface.cc NS_CodecPort_CtrlFunctDef.cc UD_PT.cc RLCMAC_EncDec.cc LLC_EncDec.cc TELNETasp_PT.cc Native_FunctionDefs.cc StatsD_CodecPort_CtrlFunctdef.cc" +FILES="*.ttcn *.ttcnpp BSSGP_EncDec.cc IPL4asp_PT.cc IPL4asp_discovery.cc TCCConversion.cc TCCInterface.cc UD_PT.cc RLCMAC_EncDec.cc LLC_EncDec.cc TELNETasp_PT.cc Native_FunctionDefs.cc StatsD_CodecPort_CtrlFunctdef.cc" export CPPFLAGS_TTCN3="-DBSSGP_EM_L3" diff --git a/sgsn/SGSN_Tests_NS.ttcn b/sgsn/SGSN_Tests_NS.ttcn index cce32cc..9ef2dfb 100644 --- a/sgsn/SGSN_Tests_NS.ttcn +++ b/sgsn/SGSN_Tests_NS.ttcn @@ -13,7 +13,6 @@ import from Osmocom_Types all; import from Osmocom_Gb_Types all; import from Osmocom_VTY_Functions all; -import from NS_CodecPort all; import from NS_Types all; import from RAW_NS all; import from SGSN_Tests all; @@ -23,31 +22,31 @@ testcase TC_NS_connect_reset() runs on RAW_Test_CT { f_init_vty(); - f_init_ns_codec(mp_nsconfig[0], guard_secs := 10.0, tc_offset := 10); + f_init_ns_codec(mp_nsconfig[0], guard_secs := 10.0); f_vty_config(SGSNVTY, "ns", "encapsulation udp use-reset-block-unblock enabled"); /* Send a NS-ALIVE */ f_outgoing_ns_reset(); f_sleep(1.0); - f_cleanup(); + f_clean_ns_codec(); } testcase TC_NS_connect_alive() runs on RAW_Test_CT { f_init_vty(); - f_init_ns_codec(mp_nsconfig[0], guard_secs := 10.0, tc_offset := 20); + f_init_ns_codec(mp_nsconfig[0], guard_secs := 10.0); f_vty_config(SGSNVTY, "ns", "encapsulation udp use-reset-block-unblock disabled"); /* Send a NS-ALIVE */ - NSCP[0].send(t_NS_Send(g_ns_conn_id[0], t_NS_ALIVE)); + NSCP[0].send(t_NS_ALIVE); alt { - [] NSCP[0].receive(t_NS_RecvFrom(t_NS_ALIVE_ACK)); - [] NSCP[0].receive(t_NS_RecvFrom(tr_NS_STATUS(*))) { setverdict(fail); } + [] NSCP[0].receive(t_NS_ALIVE_ACK); + [] NSCP[0].receive(tr_NS_STATUS(*)) { setverdict(fail); } [] NSCP[0].receive { repeat; } } f_sleep(1.0); - f_cleanup(); + f_clean_ns_codec(); } control { diff --git a/sgsn/gen_links.sh b/sgsn/gen_links.sh index 47baa54..8cffa17 100755 --- a/sgsn/gen_links.sh +++ b/sgsn/gen_links.sh @@ -84,7 +84,7 @@ DIR=../library FILES="Misc_Helpers.ttcn General_Types.ttcn GSM_Types.ttcn GSM_RR_Types.ttcn Osmocom_Types.ttcn RLCMAC_Templates.ttcn RLCMAC_Types.ttcn RLCMAC_CSN1_Templates.ttcn RLCMAC_CSN1_Types.ttcn RLCMAC_EncDec.cc " -FILES+="NS_Provider_IPL4.ttcn NS_Emulation.ttcnpp PCUIF_Types.ttcn NS_CodecPort.ttcn NS_CodecPort_CtrlFunct.ttcn NS_CodecPort_CtrlFunctDef.cc " +FILES+="NS_Provider_IPL4.ttcn NS_Emulation.ttcnpp PCUIF_Types.ttcn " FILES+="BSSGP_Emulation.ttcnpp Osmocom_Gb_Types.ttcn " FILES+="Osmocom_CTRL_Types.ttcn Osmocom_CTRL_Functions.ttcn Osmocom_CTRL_Adapter.ttcn " FILES+="Osmocom_VTY_Functions.ttcn " @@ -92,7 +92,7 @@ FILES+="RAN_Emulation.ttcnpp RAN_Adapter.ttcnpp SCCP_Templates.ttcn " # IPA_Emulation + dependencies FILES+="IPA_Types.ttcn IPA_Emulation.ttcnpp IPA_CodecPort.ttcn IPA_CodecPort_CtrlFunct.ttcn IPA_CodecPort_CtrlFunctDef.cc Native_Functions.ttcn Native_FunctionDefs.cc GSUP_Types.ttcn GSUP_Emulation.ttcn " -FILES+="GTP_CodecPort.ttcn GTP_CodecPort_CtrlFunct.ttcn GTP_CodecPort_CtrlFunctDef.cc GTP_Emulation.ttcn GTP_Templates.ttcn IPCP_Types.ttcn RAW_NS.ttcn " +FILES+="GTP_CodecPort.ttcn GTP_CodecPort_CtrlFunct.ttcn GTP_CodecPort_CtrlFunctDef.cc GTP_Emulation.ttcn GTP_Templates.ttcn IPCP_Types.ttcn RAW_NS.ttcnpp " gen_links $DIR $FILES ignore_pp_results diff --git a/sgsn/regen_makefile.sh b/sgsn/regen_makefile.sh index 55ff26f..e160379 100755 --- a/sgsn/regen_makefile.sh +++ b/sgsn/regen_makefile.sh @@ -1,6 +1,6 @@ #!/bin/sh -FILES="*.ttcn *.ttcnpp *.asn BSSGP_EncDec.cc LLC_EncDec.cc IPL4asp_PT.cc IPL4asp_discovery.cc TCCConversion.cc TCCInterface.cc NS_CodecPort_CtrlFunctDef.cc RLCMAC_EncDec.cc Native_FunctionDefs.cc TELNETasp_PT.cc IPA_CodecPort_CtrlFunctDef.cc GTPU_EncDec.cc GTPC_EncDec.cc GTP_CodecPort_CtrlFunctDef.cc SCCP_EncDec.cc SCTPasp_PT.cc RANAP_EncDec.cc " +FILES="*.ttcn *.ttcnpp *.asn BSSGP_EncDec.cc LLC_EncDec.cc IPL4asp_PT.cc IPL4asp_discovery.cc TCCConversion.cc TCCInterface.cc RLCMAC_EncDec.cc Native_FunctionDefs.cc TELNETasp_PT.cc IPA_CodecPort_CtrlFunctDef.cc GTPU_EncDec.cc GTPC_EncDec.cc GTP_CodecPort_CtrlFunctDef.cc SCCP_EncDec.cc SCTPasp_PT.cc RANAP_EncDec.cc " export CPPFLAGS_TTCN3="-DIPA_EMULATION_GSUP -DIPA_EMULATION_CTRL -DUSE_MTP3_DISTRIBUTOR -DRAN_EMULATION_RANAP -DBSSGP_EM_L3" -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22090 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I8a3b6c72798a75f434f54229fdbfc802cd13967e Gerrit-Change-Number: 22090 Gerrit-PatchSet: 5 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 17 15:59:28 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sun, 17 Jan 2021 15:59:28 +0000 Subject: Change in osmo-ttcn3-hacks[master]: remove unused NS_CodecPort.ttcn/NS_CodecPort_CtrlFunct In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22207 ) Change subject: remove unused NS_CodecPort.ttcn/NS_CodecPort_CtrlFunct ...................................................................... remove unused NS_CodecPort.ttcn/NS_CodecPort_CtrlFunct Change-Id: If885353ec8947309fc7d3ad780448cfc7402e1a4 --- M bts/gen_links.sh M fr-net/gen_links.sh M fr-net/regen_makefile.sh M fr/gen_links.sh M fr/regen_makefile.sh M gbproxy/gen_links.sh M gbproxy/regen_makefile.sh D library/NS_CodecPort.ttcn D library/NS_CodecPort_CtrlFunct.ttcn D library/NS_CodecPort_CtrlFunctDef.cc 10 files changed, 6 insertions(+), 168 deletions(-) Approvals: laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/bts/gen_links.sh b/bts/gen_links.sh index 7aa8398..cd8e379 100755 --- a/bts/gen_links.sh +++ b/bts/gen_links.sh @@ -34,7 +34,6 @@ DIR=../library FILES="Misc_Helpers.ttcn General_Types.ttcn GSM_Types.ttcn GSM_RR_Types.ttcn Osmocom_VTY_Functions.ttcn GSM_SystemInformation.ttcn GSM_RestOctets.ttcn Osmocom_Types.ttcn RLCMAC_Templates.ttcn RLCMAC_Types.ttcn RLCMAC_CSN1_Templates.ttcn RLCMAC_CSN1_Types.ttcn RLCMAC_EncDec.cc L1CTL_Types.ttcn L1CTL_PortType.ttcn L1CTL_PortType_CtrlFunct.ttcn L1CTL_PortType_CtrlFunctDef.cc LAPDm_RAW_PT.ttcn LAPDm_Types.ttcn " -#FILES+="NS_Emulation.ttcn NS_CodecPort.ttcn NS_CodecPort_CtrlFunct.ttcn NS_CodecPort_CtrlFunctDef.cc " #FILES+="BSSGP_Emulation.ttcn Osmocom_Gb_Types.ttcn " FILES+="IPA_Types.ttcn IPA_CodecPort.ttcn IPA_CodecPort_CtrlFunct.ttcn IPA_CodecPort_CtrlFunctDef.cc IPA_Emulation.ttcnpp IPA_CodecPort.ttcn RSL_Types.ttcn RSL_Emulation.ttcn AbisOML_Types.ttcn " FILES+="Osmocom_CTRL_Types.ttcn Osmocom_CTRL_Functions.ttcn Osmocom_CTRL_Adapter.ttcn " diff --git a/fr-net/gen_links.sh b/fr-net/gen_links.sh index 4ab3ed0..29f4399 100755 --- a/fr-net/gen_links.sh +++ b/fr-net/gen_links.sh @@ -47,7 +47,7 @@ DIR=../library FILES="Misc_Helpers.ttcn General_Types.ttcn Osmocom_VTY_Functions.ttcn Native_Functions.ttcn Native_FunctionDefs.cc GSM_Types.ttcn Osmocom_Types.ttcn " -FILES+="NS_Provider_IPL4.ttcn NS_Provider_FR.ttcn NS_Emulation.ttcnpp NS_CodecPort.ttcn NS_CodecPort_CtrlFunct.ttcn NS_CodecPort_CtrlFunctDef.cc " +FILES+="NS_Provider_IPL4.ttcn NS_Provider_FR.ttcn NS_Emulation.ttcnpp " FILES+="BSSGP_Emulation.ttcnpp Osmocom_Gb_Types.ttcn " FILES+="LLC_Templates.ttcn " gen_links $DIR $FILES diff --git a/fr-net/regen_makefile.sh b/fr-net/regen_makefile.sh index 0a05f6c..6aaf577 100755 --- a/fr-net/regen_makefile.sh +++ b/fr-net/regen_makefile.sh @@ -3,7 +3,7 @@ FILES="*.ttcn *.ttcnpp BSSGP_EncDec.cc IPL4asp_PT.cc IPL4asp_discovery.cc TCCConversion.cc TCCInterface.cc " FILES+="AF_PACKET_PT.cc " FILES+="Native_FunctionDefs.cc " -FILES+="NS_CodecPort_CtrlFunctDef.cc LLC_EncDec.cc LLC_Types.cc TELNETasp_PT.cc " +FILES+="LLC_EncDec.cc LLC_Types.cc TELNETasp_PT.cc " export CPPFLAGS_TTCN3="-DNS_EMULATION_FR" diff --git a/fr/gen_links.sh b/fr/gen_links.sh index 4ab3ed0..29f4399 100755 --- a/fr/gen_links.sh +++ b/fr/gen_links.sh @@ -47,7 +47,7 @@ DIR=../library FILES="Misc_Helpers.ttcn General_Types.ttcn Osmocom_VTY_Functions.ttcn Native_Functions.ttcn Native_FunctionDefs.cc GSM_Types.ttcn Osmocom_Types.ttcn " -FILES+="NS_Provider_IPL4.ttcn NS_Provider_FR.ttcn NS_Emulation.ttcnpp NS_CodecPort.ttcn NS_CodecPort_CtrlFunct.ttcn NS_CodecPort_CtrlFunctDef.cc " +FILES+="NS_Provider_IPL4.ttcn NS_Provider_FR.ttcn NS_Emulation.ttcnpp " FILES+="BSSGP_Emulation.ttcnpp Osmocom_Gb_Types.ttcn " FILES+="LLC_Templates.ttcn " gen_links $DIR $FILES diff --git a/fr/regen_makefile.sh b/fr/regen_makefile.sh index c38fed4..d17f51c 100755 --- a/fr/regen_makefile.sh +++ b/fr/regen_makefile.sh @@ -1,7 +1,7 @@ #!/bin/bash FILES="*.ttcn *.ttcnpp IPL4asp_PT.cc IPL4asp_discovery.cc TCCConversion.cc TCCInterface.cc Native_FunctionDefs.cc " -FILES+="BSSGP_EncDec.cc NS_CodecPort_CtrlFunctDef.cc LLC_EncDec.cc TELNETasp_PT.cc " +FILES+="BSSGP_EncDec.cc LLC_EncDec.cc TELNETasp_PT.cc " FILES+="AF_PACKET_PT.cc AF_PACKET_PT.hh " export CPPFLAGS_TTCN3="-DNS_EMULATION_FR" diff --git a/gbproxy/gen_links.sh b/gbproxy/gen_links.sh index a614191..d6bf22e 100755 --- a/gbproxy/gen_links.sh +++ b/gbproxy/gen_links.sh @@ -84,7 +84,7 @@ DIR=../library FILES="Misc_Helpers.ttcn General_Types.ttcn GSM_Types.ttcn GSM_RR_Types.ttcn Osmocom_Types.ttcn RLCMAC_Templates.ttcn RLCMAC_Types.ttcn RLCMAC_CSN1_Templates.ttcn RLCMAC_CSN1_Types.ttcn RLCMAC_EncDec.cc " -FILES+="NS_Provider_IPL4.ttcn NS_Provider_FR.ttcn NS_Emulation.ttcnpp NS_CodecPort.ttcn NS_CodecPort_CtrlFunct.ttcn NS_CodecPort_CtrlFunctDef.cc " +FILES+="NS_Provider_IPL4.ttcn NS_Provider_FR.ttcn NS_Emulation.ttcnpp " FILES+="BSSGP_Emulation.ttcnpp Osmocom_Gb_Types.ttcn " FILES+="PCUIF_Types.ttcn " FILES+="Osmocom_CTRL_Types.ttcn Osmocom_CTRL_Functions.ttcn Osmocom_CTRL_Adapter.ttcn " diff --git a/gbproxy/regen_makefile.sh b/gbproxy/regen_makefile.sh index 93ef712..e82649c 100755 --- a/gbproxy/regen_makefile.sh +++ b/gbproxy/regen_makefile.sh @@ -1,6 +1,6 @@ #!/bin/bash -FILES="*.ttcn *.ttcnpp BSSGP_EncDec.cc LLC_EncDec.cc IPL4asp_PT.cc IPL4asp_discovery.cc TCCConversion.cc TCCInterface.cc NS_CodecPort_CtrlFunctDef.cc RLCMAC_EncDec.cc Native_FunctionDefs.cc TELNETasp_PT.cc IPA_CodecPort_CtrlFunctDef.cc GTPU_EncDec.cc GTPC_EncDec.cc GTP_CodecPort_CtrlFunctDef.cc SCCP_EncDec.cc SCTPasp_PT.cc " +FILES="*.ttcn *.ttcnpp BSSGP_EncDec.cc LLC_EncDec.cc IPL4asp_PT.cc IPL4asp_discovery.cc TCCConversion.cc TCCInterface.cc RLCMAC_EncDec.cc Native_FunctionDefs.cc TELNETasp_PT.cc IPA_CodecPort_CtrlFunctDef.cc GTPU_EncDec.cc GTPC_EncDec.cc GTP_CodecPort_CtrlFunctDef.cc SCCP_EncDec.cc SCTPasp_PT.cc " FILES+="AF_PACKET_PT.cc AF_PACKET_PT.hh " export CPPFLAGS_TTCN3="-DIPA_EMULATION_GSUP -DIPA_EMULATION_CTRL -DUSE_MTP3_DISTRIBUTOR -DBSSGP_EM_L3 -DNS_EMULATION_FR" diff --git a/library/NS_CodecPort.ttcn b/library/NS_CodecPort.ttcn deleted file mode 100644 index 82ba55b..0000000 --- a/library/NS_CodecPort.ttcn +++ /dev/null @@ -1,61 +0,0 @@ -module NS_CodecPort { - - import from IPL4asp_PortType all; - import from IPL4asp_Types all; - import from NS_Types all; - - type record NS_RecvFrom { - ConnectionId connId, - HostName remName, - PortNumber remPort, - HostName locName, - PortNumber locPort, - PDU_NS msg - } - - template NS_RecvFrom t_NS_RecvFrom(template PDU_NS pdu) := { - connId := ?, - remName := ?, - remPort := ?, - locName := ?, - locPort := ?, - msg := pdu - }; - - type record NS_Send { - ConnectionId connId, - PDU_NS msg - } - - template NS_Send t_NS_Send(template ConnectionId connId, template PDU_NS msg) := { - connId := connId, - msg := msg - } - - private function IPL4_to_NS_RecvFrom(in ASP_RecvFrom pin, out NS_RecvFrom pout) { - pout.connId := pin.connId; - pout.remName := pin.remName; - pout.remPort := pin.remPort; - pout.locName := pin.locName; - pout.locPort := pin.locPort; - pout.msg := dec_PDU_NS(pin.msg); - } with { extension "prototype(fast)" }; - - private function NS_to_IPL4_Send(in NS_Send pin, out ASP_Send pout) { - pout.connId := pin.connId; - pout.proto := { udp := {} }; - pout.msg := enc_PDU_NS(pin.msg); - } with { extension "prototype(fast)" }; - - type port NS_CODEC_PT message { - out NS_Send; - in NS_RecvFrom, - ASP_ConnId_ReadyToRelease, - ASP_Event; - } with { extension "user IPL4asp_PT - out(NS_Send -> ASP_Send: function(NS_to_IPL4_Send)) - in(ASP_RecvFrom -> NS_RecvFrom: function(IPL4_to_NS_RecvFrom); - ASP_ConnId_ReadyToRelease -> ASP_ConnId_ReadyToRelease: simple; - ASP_Event -> ASP_Event: simple)" - } -} diff --git a/library/NS_CodecPort_CtrlFunct.ttcn b/library/NS_CodecPort_CtrlFunct.ttcn deleted file mode 100644 index cc77dda..0000000 --- a/library/NS_CodecPort_CtrlFunct.ttcn +++ /dev/null @@ -1,44 +0,0 @@ -module NS_CodecPort_CtrlFunct { - - import from NS_CodecPort all; - import from IPL4asp_Types all; - - external function f_IPL4_listen( - inout NS_CODEC_PT portRef, - in HostName locName, - in PortNumber locPort, - in ProtoTuple proto, - in OptionList options := {} - ) return Result; - - external function f_IPL4_connect( - inout NS_CODEC_PT portRef, - in HostName remName, - in PortNumber remPort, - in HostName locName, - in PortNumber locPort, - in ConnectionId connId, - in ProtoTuple proto, - in OptionList options := {} - ) return Result; - - external function f_IPL4_close( - inout NS_CODEC_PT portRef, - in ConnectionId id, - in ProtoTuple proto := { unspecified := {} } - ) return Result; - - external function f_IPL4_setUserData( - inout NS_CODEC_PT portRef, - in ConnectionId id, - in UserData userData - ) return Result; - - external function f_IPL4_getUserData( - inout NS_CODEC_PT portRef, - in ConnectionId id, - out UserData userData - ) return Result; - -} - diff --git a/library/NS_CodecPort_CtrlFunctDef.cc b/library/NS_CodecPort_CtrlFunctDef.cc deleted file mode 100644 index a6da7ac..0000000 --- a/library/NS_CodecPort_CtrlFunctDef.cc +++ /dev/null @@ -1,56 +0,0 @@ -#include "IPL4asp_PortType.hh" -#include "NS_CodecPort.hh" -#include "IPL4asp_PT.hh" - -namespace NS__CodecPort__CtrlFunct { - - IPL4asp__Types::Result f__IPL4__listen( - NS__CodecPort::NS__CODEC__PT& portRef, - const IPL4asp__Types::HostName& locName, - const IPL4asp__Types::PortNumber& locPort, - const IPL4asp__Types::ProtoTuple& proto, - const IPL4asp__Types::OptionList& options) - { - return f__IPL4__PROVIDER__listen(portRef, locName, locPort, proto, options); - } - - IPL4asp__Types::Result f__IPL4__connect( - NS__CodecPort::NS__CODEC__PT& portRef, - const IPL4asp__Types::HostName& remName, - const IPL4asp__Types::PortNumber& remPort, - const IPL4asp__Types::HostName& locName, - const IPL4asp__Types::PortNumber& locPort, - const IPL4asp__Types::ConnectionId& connId, - const IPL4asp__Types::ProtoTuple& proto, - const IPL4asp__Types::OptionList& options) - { - return f__IPL4__PROVIDER__connect(portRef, remName, remPort, - locName, locPort, connId, proto, options); - } - - IPL4asp__Types::Result f__IPL4__close( - NS__CodecPort::NS__CODEC__PT& portRef, - const IPL4asp__Types::ConnectionId& connId, - const IPL4asp__Types::ProtoTuple& proto) - { - return f__IPL4__PROVIDER__close(portRef, connId, proto); - } - - IPL4asp__Types::Result f__IPL4__setUserData( - NS__CodecPort::NS__CODEC__PT& portRef, - const IPL4asp__Types::ConnectionId& connId, - const IPL4asp__Types::UserData& userData) - { - return f__IPL4__PROVIDER__setUserData(portRef, connId, userData); - } - - IPL4asp__Types::Result f__IPL4__getUserData( - NS__CodecPort::NS__CODEC__PT& portRef, - const IPL4asp__Types::ConnectionId& connId, - IPL4asp__Types::UserData& userData) - { - return f__IPL4__PROVIDER__getUserData(portRef, connId, userData); - } - -} - -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22207 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If885353ec8947309fc7d3ad780448cfc7402e1a4 Gerrit-Change-Number: 22207 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 17 16:20:44 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sun, 17 Jan 2021 16:20:44 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Add suite of RIM tests In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22246 ) Change subject: gbproxy: Add suite of RIM tests ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22246 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I0fec6fd4a5a6559f596b9006ae437323da6f05d7 Gerrit-Change-Number: 22246 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Sun, 17 Jan 2021 16:20:44 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 17 16:23:41 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Sun, 17 Jan 2021 16:23:41 +0000 Subject: Change in libosmocore[master]: gprs_ns2: when calling nsvc_force_unconf for a dynamic NSE drop the NSE. In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22200 ) Change subject: gprs_ns2: when calling nsvc_force_unconf for a dynamic NSE drop the NSE. ...................................................................... Patch Set 5: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22200 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I0a4f35c974c8c3b79c48f2f56170722c95254332 Gerrit-Change-Number: 22200 Gerrit-PatchSet: 5 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sun, 17 Jan 2021 16:23:41 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 17 16:37:24 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 17 Jan 2021 16:37:24 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BSGSP_Emulation: Route STATUS to GLOBAL port for both SIG and PTP References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22256 ) Change subject: BSGSP_Emulation: Route STATUS to GLOBAL port for both SIG and PTP ...................................................................... BSGSP_Emulation: Route STATUS to GLOBAL port for both SIG and PTP Change-Id: I6573562c0e7638f153798ee178c7c69d07c26756 Related: OS#4951 --- M library/BSSGP_Emulation.ttcnpp M library/Osmocom_Gb_Types.ttcn 2 files changed, 17 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/56/22256/1 diff --git a/library/BSSGP_Emulation.ttcnpp b/library/BSSGP_Emulation.ttcnpp index 5c825d6..7996f96 100644 --- a/library/BSSGP_Emulation.ttcnpp +++ b/library/BSSGP_Emulation.ttcnpp @@ -1,7 +1,7 @@ module BSSGP_Emulation { /* BSSGP Emulation in TTCN-3 - * (C) 2018-2020 Harald Welte + * (C) 2018-2021 Harald Welte * All rights reserved. * * Released under the terms of GNU General Public License, Version 2 or @@ -306,7 +306,7 @@ private template PDU_BSSGP tr_GLOBAL_SIG := ( {pDU_BSSGP_SUSPEND:=?}, {pDU_BSSGP_SUSPEND_ACK:=?}, {pDU_BSSGP_SUSPEND_NACK:=?}, {pDU_BSSGP_RESUME:=?}, {pDU_BSSGP_RESUME_ACK:=?}, {pDU_BSSGP_RESUME_NACK:=?}, - {pDU_BSSGP_SGSN_INVOKE_TRACE:=?}, {pDU_BSSGP_OVERLOAD:=?} + {pDU_BSSGP_SGSN_INVOKE_TRACE:=?}, {pDU_BSSGP_OVERLOAD:=?}, {pDU_BSSGP_STATUS:=?} ); /* BSSGP messages that should arrive on the RIM port */ @@ -784,6 +784,10 @@ }; type record length(16) of LLC_Entity LLC_Entities; +private template PDU_BSSGP tr_GLOBAL_PTP := ( + {pDU_BSSGP_STATUS:=?} +); + function f_llc_create(boolean sgsn_role := false) return LLC_Entities { var LLC_Entities llc; for (var integer i := 0; i < 16; i := i+1) { @@ -1141,6 +1145,14 @@ } } + [] BVC.receive(tr_ptp_BnsUdInd(tr_GLOBAL_PTP, g_cfg.bvci)) -> value udi { + if (GLOBAL.checkstate("Connected")) { + GLOBAL.send(udi.bssgp); + } else { + setverdict(fail, "Received BSSGP STATUS ", udi.bssgp); + } + } + /* Any other PTP BSSGP message: If it has TLLI, route to component; otherwise broadcast */ [] BVC.receive(tr_ptp_BnsUdInd(?, g_cfg.bvci)) -> value udi { var BssgpDecoded dec := f_dec_bssgp(udi.bssgp); diff --git a/library/Osmocom_Gb_Types.ttcn b/library/Osmocom_Gb_Types.ttcn index 589108f..f97b9b0 100644 --- a/library/Osmocom_Gb_Types.ttcn +++ b/library/Osmocom_Gb_Types.ttcn @@ -1427,7 +1427,7 @@ } /* 10.4.14 */ - template PDU_BSSGP ts_BSSGP_STATUS(template BssgpBvci bvci, template BssgpCause cause, + template PDU_BSSGP ts_BSSGP_STATUS(template (omit) BssgpBvci bvci, template BssgpCause cause, PDU_BSSGP pdu) := { pDU_BSSGP_STATUS := { bssgpPduType := '41'O, @@ -1443,12 +1443,12 @@ } } } - template PDU_BSSGP tr_BSSGP_STATUS(template BVCI bvci := ?, template BssgpCause cause := ?, + template PDU_BSSGP tr_BSSGP_STATUS(template BssgpBvci bvci := ?, template BssgpCause cause := ?, template octetstring pdu := ?) := { pDU_BSSGP_STATUS := { bssgpPduType := '41'O, cause := t_BSSGP_CAUSE(cause), - bVCI := bvci, + bVCI := t_BSSGP_BVCI(bvci), pDU_in_Error := { iEI := '15'O, ext := '1'B, -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22256 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I6573562c0e7638f153798ee178c7c69d07c26756 Gerrit-Change-Number: 22256 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 17 16:37:25 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 17 Jan 2021 16:37:25 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Add test cases for uplink STATUS handling References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22257 ) Change subject: gbproxy: Add test cases for uplink STATUS handling ...................................................................... gbproxy: Add test cases for uplink STATUS handling We expect the uplink BSSGP status to be routed based in the inner/contained downlink PDU. Change-Id: If2ddd158346a3da340f1c673354196f3872c4f67 Related: OS#4951 --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 240 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/57/22257/1 diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index b7c01ac..b15b28b 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -359,6 +359,19 @@ float t_guard }; +private function get_bvc_idx_for_bvci(GbInstance gbi, BssgpBvci bvci) return integer +{ + var integer i; + + for (i := 0; i < lengthof(gbi.cfg.bvc); i := i + 1) { + if (gbi.cfg.bvc[i].bvci == bvci) { + return i; + } + } + setverdict(fail, "Could not find BVC Index for BVCI ", bvci); + return -1; +} + private function f_cellid_to_RAI(in BssgpCellId cell_id) return RoutingAreaIdentificationV { /* mcc_mnc is encoded as of 24.008 10.5.5.15 */ var BcdMccMnc mcc_mnc := cell_id.ra_id.lai.mcc_mnc; @@ -864,7 +877,9 @@ type component GlobalTest_CT extends test_CT { port BSSGP_PT G_PCU[NUM_PCU]; + var integer g_pcu_idx[NUM_PCU]; /* BVC index currently connected to G_PCU */ port BSSGP_PT G_SGSN[NUM_SGSN]; + var integer g_sgsn_idx[NUM_SGSN]; /* BVC index currently connected to G_SGSN */ port BSSGP_PT RIM_PCU[NUM_PCU]; port BSSGP_PT RIM_SGSN[NUM_SGSN]; }; @@ -886,16 +901,41 @@ private function f_global_init_ptp() runs on GlobalTest_CT { var integer i; for (i := 0; i < lengthof(g_sgsn); i := i+1) { + log("Connecting G_SGSN[", i, "] to BVCI=", g_sgsn[i].cfg.bvc[0].bvci); connect(self:G_SGSN[i], g_sgsn[i].vc_BSSGP_BVC[0]:GLOBAL); + g_sgsn_idx[i] := 0; } for (i := 0; i < lengthof(g_pcu); i := i+1) { + log("Connecting G_PCU[", i, "] to BVCI=", g_pcu[i].cfg.bvc[0].bvci); connect(self:G_PCU[i], g_pcu[i].vc_BSSGP_BVC[0]:GLOBAL); + g_pcu_idx[i] := 0; } } +/* (re)connect G_SGSN[sgsn_idx] to a specific PTP BVCI */ +private function f_global_ptp_connect_sgsn_bvci(integer sgsn_idx, BssgpBvci bvci) runs on GlobalTest_CT +{ + var integer sgsn_bvc_idx := get_bvc_idx_for_bvci(g_sgsn[sgsn_idx], bvci); + var integer old_sgsn_bvc_idx := g_sgsn_idx[sgsn_idx]; + disconnect(self:G_SGSN[sgsn_idx], g_sgsn[sgsn_idx].vc_BSSGP_BVC[old_sgsn_bvc_idx]:GLOBAL); + connect(self:G_SGSN[sgsn_idx], g_sgsn[sgsn_idx].vc_BSSGP_BVC[sgsn_bvc_idx]:GLOBAL); + g_sgsn_idx[sgsn_idx] := sgsn_bvc_idx; +} + +/* (re)connect G_PCU[pcu_idx] to a specific PTP BVCI */ +private function f_global_ptp_connect_pcu_bvci(integer pcu_idx, BssgpBvci bvci) runs on GlobalTest_CT +{ + var integer pcu_bvc_idx := get_bvc_idx_for_bvci(g_pcu[pcu_idx], bvci); + var integer old_pcu_bvc_idx := g_pcu_idx[pcu_idx]; + disconnect(self:G_PCU[pcu_idx], g_pcu[pcu_idx].vc_BSSGP_BVC[old_pcu_bvc_idx]:GLOBAL); + connect(self:G_PCU[pcu_idx], g_pcu[pcu_idx].vc_BSSGP_BVC[pcu_bvc_idx]:GLOBAL); + g_pcu_idx[pcu_idx] := pcu_bvc_idx; +} + /* Send 'tx' on PTP-BVCI from PCU; expect 'rx' on SGSN */ friend function f_global_pcu2sgsn(template (value) PDU_BSSGP tx, template (present) PDU_BSSGP exp_rx, integer pcu_idx := 0, integer sgsn_idx := 0) runs on GlobalTest_CT { + var integer rx_idx; var PDU_BSSGP rx; timer T := 1.0; @@ -905,6 +945,9 @@ [] G_SGSN[sgsn_idx].receive(exp_rx) { setverdict(pass); } + [] any from G_SGSN.receive(exp_rx) -> @index value rx_idx { + setverdict(fail, "BSSGP arrived on wrong SGSN[", rx_idx, "] instead of SGSN[", sgsn_idx, "]"); + } [] G_SGSN[sgsn_idx].receive(PDU_BSSGP:?) -> value rx { setverdict(fail, "Unexpected BSSGP on SGSN side: ", rx); mtc.stop; @@ -919,6 +962,7 @@ /* Send 'tx' on PTP-BVCI from SGSN; expect 'rx' on PCU */ friend function f_global_sgsn2pcu(template (value) PDU_BSSGP tx, template (present) PDU_BSSGP exp_rx, integer sgsn_idx := 0, integer pcu_idx := 0) runs on GlobalTest_CT { + var integer rx_idx; var PDU_BSSGP rx; timer T := 1.0; @@ -928,6 +972,9 @@ [] G_PCU[pcu_idx].receive(exp_rx) { setverdict(pass); } + [] any from G_PCU.receive(exp_rx) -> @index value rx_idx { + setverdict(fail, "BSSGP arrived on wrong PCU[", rx_idx, "] instead of PCU[", pcu_idx, "]"); + } [] G_PCU[pcu_idx].receive(PDU_BSSGP:?) -> value rx { setverdict(fail, "Unexpected BSSGP on PCU side: ", rx); mtc.stop; @@ -2978,6 +3025,189 @@ f_cleanup(); } +/*********************************************************************** + * STATUS handling + ***********************************************************************/ + +/* BSSGP STATUS PDU must be routed based on inner "PDU In Error" message */ + +/* generate a TMSI with NRI matching sgsn_idx + nri_idx */ +private function f_gen_tmsi_for_sgsn_nri(integer sgsn_idx, integer nri_idx) runs on test_CT return OCT4 +{ + var integer nri := mp_sgsn_nri[sgsn_idx][nri_idx]; + return f_gen_tmsi(0, nri_v := nri, nri_bitlen := mp_nri_bitlength); +} + +/* generate a TLLI with NRI matching sgsn_idx + nri_idx */ +private function f_gen_tlli_for_sgsn_nri(integer sgsn_idx, integer nri_idx) runs on test_CT return OCT4 +{ + var OCT4 p_tmsi := f_gen_tmsi_for_sgsn_nri(sgsn_idx, nri_idx); + return f_gprs_tlli_from_tmsi(p_tmsi, TLLI_LOCAL); +} + +/* STATUS in uplink direction; expect routing by its NRI */ +private function f_TC_status_ul(integer pcu_idx, integer sgsn_idx, PDU_BSSGP inner) +runs on GlobalTest_CT +{ + var template (value) PDU_BSSGP tx := ts_BSSGP_STATUS(omit, BSSGP_CAUSE_EQUIMENT_FAILURE, inner); + var template (present) PDU_BSSGP exp_rx := + tr_BSSGP_STATUS(omit, BSSGP_CAUSE_EQUIMENT_FAILURE, + tx.pDU_BSSGP_STATUS.pDU_in_Error.erroneous_BSSGP_PDU); + + f_global_pcu2sgsn(tx, exp_rx, pcu_idx, sgsn_idx); +} + +/* STATUS in uplink direction; expect routing by its NRI */ +private function f_TC_status_dl(integer sgsn_idx, integer pcu_idx, PDU_BSSGP inner) +runs on GlobalTest_CT +{ + var template (value) PDU_BSSGP tx := ts_BSSGP_STATUS(omit, BSSGP_CAUSE_EQUIMENT_FAILURE, inner); + var template (present) PDU_BSSGP exp_rx := + tr_BSSGP_STATUS(omit, BSSGP_CAUSE_EQUIMENT_FAILURE, + tx.pDU_BSSGP_STATUS.pDU_in_Error.erroneous_BSSGP_PDU); + + f_global_sgsn2pcu(tx, exp_rx, sgsn_idx, pcu_idx); +} + +/* STATUS in uplink direction on SIG-BVC containing a TLLI; expect routing by its NRI */ +testcase TC_status_sig_ul_tlli() runs on GlobalTest_CT +{ + var integer sgsn_idx, nri_idx; + + f_init(); + f_global_init(); + + for (sgsn_idx := 0; sgsn_idx < NUM_SGSN; sgsn_idx := sgsn_idx + 1) { + for (nri_idx := 0; nri_idx < lengthof(mp_sgsn_nri[sgsn_idx]); nri_idx := nri_idx + 1) { + /* some downlink PDU occurring on SIG-BVC with a TLLI */ + var OCT4 tlli := f_gen_tlli_for_sgsn_nri(sgsn_idx, nri_idx); + var PDU_BSSGP inner := valueof(ts_BSSGP_FLUSH_LL(tlli, 2342)); + + f_TC_status_ul(0, sgsn_idx, inner); + } + } + + f_cleanup(); +} + +/* STATUS in uplink direction on SIG-BVC containing a TMSI; expect routing by its NRI */ +testcase TC_status_sig_ul_tmsi() runs on GlobalTest_CT +{ + var integer sgsn_idx, nri_idx; + + f_init(); + f_global_init(); + + for (sgsn_idx := 0; sgsn_idx < NUM_SGSN; sgsn_idx := sgsn_idx + 1) { + for (nri_idx := 0; nri_idx < lengthof(mp_sgsn_nri[sgsn_idx]); nri_idx := nri_idx + 1) { + /* some downlink PDU occurring on SIG-BVC with a TMSI */ + const hexstring imsi := '001010123456789'H + var OCT4 tmsi := f_gen_tmsi_for_sgsn_nri(sgsn_idx, nri_idx); + var BssgpBvci bvci := g_pcu[0].cfg.bvc[0].bvci; + var PDU_BSSGP inner := valueof(ts_BSSGP_CS_PAGING_PTMSI(bvci, imsi, oct2int(tmsi))); + f_TC_status_ul(0, sgsn_idx, inner); + } + } + + f_cleanup(); +} + + +/* STATUS in uplink direction on PTP-BVC containing a TLLI; expect routing by its NRI */ +testcase TC_status_ptp_ul_tlli() runs on GlobalTest_CT +{ + var integer sgsn_idx, nri_idx; + + f_init(); + f_global_init_ptp(); + + for (sgsn_idx := 0; sgsn_idx < NUM_SGSN; sgsn_idx := sgsn_idx + 1) { + for (nri_idx := 0; nri_idx < lengthof(mp_sgsn_nri[sgsn_idx]); nri_idx := nri_idx + 1) { + /* some downlink PDU occurring on PTP-BVC with a TLLI */ + var OCT4 tlli := f_gen_tlli_for_sgsn_nri(sgsn_idx, nri_idx); + var PDU_BSSGP inner := valueof(ts_BSSGP_DL_UD(tlli, '2342'O)); + + f_TC_status_ul(0, sgsn_idx, inner); + } + } + + f_cleanup(); +} + +/* STATUS in uplink direction on PTP-BVC containing a TMSI; expect routing by its NRI */ +testcase TC_status_ptp_ul_tmsi() runs on GlobalTest_CT +{ + var integer sgsn_idx, nri_idx; + + f_init(); + f_global_init_ptp(); + + for (sgsn_idx := 0; sgsn_idx < NUM_SGSN; sgsn_idx := sgsn_idx + 1) { + for (nri_idx := 0; nri_idx < lengthof(mp_sgsn_nri[sgsn_idx]); nri_idx := nri_idx + 1) { + /* some downlink PDU occurring on PTP-BVC with a TMSI */ + const hexstring imsi := '001010123456789'H + var OCT4 tmsi := f_gen_tmsi_for_sgsn_nri(sgsn_idx, nri_idx); + var BssgpBvci bvci := g_pcu[0].cfg.bvc[0].bvci; + var PDU_BSSGP inner := valueof(ts_BSSGP_CS_PAGING_PTMSI(bvci, imsi, oct2int(tmsi))); + f_TC_status_ul(0, sgsn_idx, inner); + } + } + + f_cleanup(); +} + +/* STATUS in downlink direction in SIG-BVC containing a BVCI; expect routing by it */ +testcase TC_status_sig_dl_bvci() runs on GlobalTest_CT +{ + var integer sgsn_idx, pcu_idx, bvc_idx; + + f_init(); + f_global_init(); + + /* test each BVC in each PCU from each SGSN */ + for (pcu_idx := 0; pcu_idx < lengthof(g_pcu); pcu_idx := pcu_idx + 1) { + for (bvc_idx := 0; bvc_idx < lengthof(g_pcu[pcu_idx].cfg.bvc); bvc_idx := bvc_idx + 1) { + for (sgsn_idx := 0; sgsn_idx < NUM_SGSN; sgsn_idx := sgsn_idx + 1) { + /* some uplink PDU occurring on SIG-BVC containing a BVCI */ + var BssgpBvci bvci := g_pcu[pcu_idx].cfg.bvc[bvc_idx].bvci; + var PDU_BSSGP inner := valueof(ts_BSSGP_LLC_DISCARDED('12345678'O, 1, bvci, 23)); + f_TC_status_dl(sgsn_idx, pcu_idx, inner); + } + } + } + + f_cleanup(); +} + +/* STATUS in downlink direction in PTP-BVC; expect routing by BVCI */ +testcase TC_status_ptp_dl_bvci() runs on GlobalTest_CT +{ + var integer sgsn_idx, pcu_idx, bvc_idx; + + f_init(); + f_global_init_ptp(); + + /* test each BVC in each PCU from each SGSN */ + for (pcu_idx := 0; pcu_idx < lengthof(g_pcu); pcu_idx := pcu_idx + 1) { + for (bvc_idx := 0; bvc_idx < lengthof(g_pcu[pcu_idx].cfg.bvc); bvc_idx := bvc_idx + 1) { + var BssgpBvci bvci := g_pcu[pcu_idx].cfg.bvc[bvc_idx].bvci; + f_global_ptp_connect_pcu_bvci(pcu_idx, bvci); + for (sgsn_idx := 0; sgsn_idx < NUM_SGSN; sgsn_idx := sgsn_idx + 1) { + f_global_ptp_connect_sgsn_bvci(sgsn_idx, bvci); + + /* some uplink PDU occurring on PTP-BVC */ + var BssgpCellId cell_id := g_pcu[pcu_idx].cfg.bvc[bvc_idx].cell_id; + var PDU_BSSGP inner := valueof(ts_BSSGP_UL_UD('12345678'O, cell_id, '4223'O)); + f_TC_status_dl(sgsn_idx, pcu_idx, inner); + } + } + } + + f_cleanup(); +} + +/* TODO: test case for DL-STATUS(SUSPEND/RESUME) containing RA-ID; expect routing by RA-ID */ +/* TODO: test case for UL-STATUS(PAGING-by-IMSI) after sending an actual PAGIN-by-IMSI in DL first */ control { execute( TC_BVC_bringup() ); @@ -3061,6 +3291,16 @@ execute( TC_fc_bvc() ); execute( TC_fc_ms() ); execute( TC_ms_reg_enq() ); + + /* Uplink STATUS */ + execute( TC_status_sig_ul_tlli() ); + execute( TC_status_sig_ul_tmsi() ); + execute( TC_status_ptp_ul_tlli() ); + execute( TC_status_ptp_ul_tmsi() ); + + /* Downlink STATUS */ + execute( TC_status_sig_dl_bvci() ); + execute( TC_status_ptp_dl_bvci() ); } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22257 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If2ddd158346a3da340f1c673354196f3872c4f67 Gerrit-Change-Number: 22257 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 17 16:38:47 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 17 Jan 2021 16:38:47 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Use provided sgsn_idx in f_send_paging_ps_exp_multi() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22253 ) Change subject: gbproxy: Use provided sgsn_idx in f_send_paging_ps_exp_multi() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22253 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I89ca4232e71d98936adfc521312b92cba7ef867f Gerrit-Change-Number: 22253 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Sun, 17 Jan 2021 16:38:47 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 17 16:39:01 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 17 Jan 2021 16:39:01 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Use g_parse.sgsn_idx for paging In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22254 ) Change subject: gbproxy: Use g_parse.sgsn_idx for paging ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22254 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I34cfc047b36cd6c139a78a7f171a9a99cc974a79 Gerrit-Change-Number: 22254 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Sun, 17 Jan 2021 16:39:01 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 17 16:39:03 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 17 Jan 2021 16:39:03 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Use provided sgsn_idx in f_send_paging_ps_exp_multi() In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22253 ) Change subject: gbproxy: Use provided sgsn_idx in f_send_paging_ps_exp_multi() ...................................................................... gbproxy: Use provided sgsn_idx in f_send_paging_ps_exp_multi() Change-Id: I89ca4232e71d98936adfc521312b92cba7ef867f Related: OS#4951 --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index dc5756c..9b883c7 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -1543,7 +1543,7 @@ ro_integer exp_on_pcu_idx) runs on BSSGP_ConnHdlr { var template (present) PDU_BSSGP exp_rx; - exp_rx := f_send_paging_ps(p4, 0, true); + exp_rx := f_send_paging_ps(p4, sgsn_idx, true); /* FIXME: make sure the relevant BVCs/BSS are connected to the ports! */ var ro_default defaults := {}; -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22253 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I89ca4232e71d98936adfc521312b92cba7ef867f Gerrit-Change-Number: 22253 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 17 16:39:04 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 17 Jan 2021 16:39:04 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Use g_parse.sgsn_idx for paging In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22254 ) Change subject: gbproxy: Use g_parse.sgsn_idx for paging ...................................................................... gbproxy: Use g_parse.sgsn_idx for paging The ConnHdlr test stores the sgsn_idx in g_pars. Use that in the paging tests to the correct SGSN pages the MS. This is required for the paging reject test to pass. Change-Id: I34cfc047b36cd6c139a78a7f171a9a99cc974a79 Related: OS#4951 --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 8 insertions(+), 8 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index 9b883c7..8e6bd55 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -1621,7 +1621,7 @@ private function f_TC_paging_ps_sig_bss(charstring id) runs on BSSGP_ConnHdlr { /* we expect the paging to arrive on all three NSE */ - f_send_paging_ps_exp_multi(ts_BssgpP4BssArea, 0, {0, 1, 2}); + f_send_paging_ps_exp_multi(ts_BssgpP4BssArea, g_pars.sgsn_idx, {0, 1, 2}); } testcase TC_paging_ps_sig_bss() runs on test_CT { f_init(); @@ -1633,12 +1633,12 @@ private function f_TC_paging_ps_sig_lac(charstring id) runs on BSSGP_ConnHdlr { /* The first LAC (13135) is shared by all three NSEs */ - f_send_paging_ps_exp_multi(ts_BssgpP4LAC(pcu_bvc_cfg[0].cell_id.ra_id.lai), 0, {0, 1, 2}); + f_send_paging_ps_exp_multi(ts_BssgpP4LAC(pcu_bvc_cfg[0].cell_id.ra_id.lai), g_pars.sgsn_idx, {0, 1, 2}); /* Reset state */ g_roi := {}; /* Make LAC (13300) available on pcu index 2 */ f_connect_to_pcu_bvc(port_idx := 2, nse_idx := 2, bvc_idx := 1); - f_send_paging_ps_exp_multi(ts_BssgpP4LAC(pcu_bvc_cfg[2].cell_id.ra_id.lai), 0, {2}); + f_send_paging_ps_exp_multi(ts_BssgpP4LAC(pcu_bvc_cfg[2].cell_id.ra_id.lai), g_pars.sgsn_idx, {2}); } testcase TC_paging_ps_sig_lac() runs on test_CT { f_init(); @@ -1665,14 +1665,14 @@ private function f_TC_paging_ps_sig_rac(charstring id) runs on BSSGP_ConnHdlr { /* Only PCU index 0 has a matching BVC with the RA ID */ - f_send_paging_ps_exp_multi(ts_BssgpP4RAC(pcu_bvc_cfg[0].cell_id.ra_id), 0, {0}); + f_send_paging_ps_exp_multi(ts_BssgpP4RAC(pcu_bvc_cfg[0].cell_id.ra_id), g_pars.sgsn_idx, {0}); g_roi := {}; /* PCU index 1 and 2 have a matching BVC with the RA ID */ - f_send_paging_ps_exp_multi(ts_BssgpP4RAC(pcu_bvc_cfg[2].cell_id.ra_id), 0, {1, 2}); + f_send_paging_ps_exp_multi(ts_BssgpP4RAC(pcu_bvc_cfg[2].cell_id.ra_id), g_pars.sgsn_idx, {1, 2}); g_roi := {}; /* PCU index 2 has two matching BVCs with the RA ID */ f_connect_to_pcu_bvc(port_idx := 2, nse_idx := 2, bvc_idx := 1); - f_send_paging_ps_exp_multi(ts_BssgpP4RAC(pcu_bvc_cfg[2].cell_id.ra_id), 0, {2}); + f_send_paging_ps_exp_multi(ts_BssgpP4RAC(pcu_bvc_cfg[2].cell_id.ra_id), g_pars.sgsn_idx, {2}); } testcase TC_paging_ps_sig_rac() runs on test_CT { f_init(); @@ -1701,7 +1701,7 @@ /* PS-PAGING on SIG-BVC for BVCI (one cell) */ private function f_TC_paging_ps_sig_bvci(charstring id) runs on BSSGP_ConnHdlr { - f_send_paging_ps_exp_multi(ts_BssgpP4Bvci(pcu_bvc_cfg[0].bvci), 0, {0}); + f_send_paging_ps_exp_multi(ts_BssgpP4Bvci(pcu_bvc_cfg[0].bvci), g_pars.sgsn_idx, {0}); } testcase TC_paging_ps_sig_bvci() runs on test_CT { f_init(); @@ -1720,7 +1720,7 @@ private function f_TC_paging_ps_reject_sig_bvci(charstring id) runs on BSSGP_ConnHdlr { /* first send the PS-PAGING from SGSN -> PCU */ - f_send_paging_ps_exp_multi(ts_BssgpP4Bvci(pcu_bvc_cfg[0].bvci), 0, {0}); + f_send_paging_ps_exp_multi(ts_BssgpP4Bvci(pcu_bvc_cfg[0].bvci), g_pars.sgsn_idx, {0}); /* then simulate the PS-PAGING-REJECT from the PCU */ f_send_paging_ps_rej(use_sig:=true); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22254 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I34cfc047b36cd6c139a78a7f171a9a99cc974a79 Gerrit-Change-Number: 22254 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 17 16:42:30 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sun, 17 Jan 2021 16:42:30 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Implement IMSI cache In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22251 ) Change subject: gbproxy: Implement IMSI cache ...................................................................... Patch Set 2: Code-Review-1 Looks good to me. Except I'm unsure if crc16 as hash is good enough. Maybe @laforge can give additional feedback. -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22251 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: If0a8d6cc1d63f2fb2c395cc5d4373a915bc2cb87 Gerrit-Change-Number: 22251 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Sun, 17 Jan 2021 16:42:30 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 17 17:03:14 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sun, 17 Jan 2021 17:03:14 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Use IMSI cache to handle PAGING_PS_REJECT In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22252 ) Change subject: gbproxy: Use IMSI cache to handle PAGING_PS_REJECT ...................................................................... Patch Set 2: Code-Review+2 The decode/encode could be replaced when always an imsi is expected. -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22252 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I7d91d9ecfba757dc81edcf05efb7a2158348099d Gerrit-Change-Number: 22252 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Sun, 17 Jan 2021 17:03:14 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 17 17:04:51 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sun, 17 Jan 2021 17:04:51 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Print log line for every ConnHdlr we start In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22247 ) Change subject: gbproxy: Print log line for every ConnHdlr we start ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22247 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I43e0ffb1b8be4f85a55ab1ed24fcf9d3b60a4d60 Gerrit-Change-Number: 22247 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Sun, 17 Jan 2021 17:04:51 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 17 17:06:28 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sun, 17 Jan 2021 17:06:28 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BSSGP_Emulation: f_bssgp_get_tlli(): TLLI is optional in RADIO-STATUS In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22248 ) Change subject: BSSGP_Emulation: f_bssgp_get_tlli(): TLLI is optional in RADIO-STATUS ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22248 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I463b25f5395127d155727d785eb7795ac0165fac Gerrit-Change-Number: 22248 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Sun, 17 Jan 2021 17:06:28 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 17 17:07:45 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sun, 17 Jan 2021 17:07:45 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Osmocom_Gb_Types: Extend RADIO-STATUS templates In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22249 ) Change subject: Osmocom_Gb_Types: Extend RADIO-STATUS templates ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22249 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I1119e50e457b02d52e7c2c26a8b8039bf2118296 Gerrit-Change-Number: 22249 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Sun, 17 Jan 2021 17:07:45 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 17 17:16:22 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 17 Jan 2021 17:16:22 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BSGSP_Emulation: Route STATUS to GLOBAL port for both SIG and PTP In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, daniel, lynxis lazus, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22256 to look at the new patch set (#3). Change subject: BSGSP_Emulation: Route STATUS to GLOBAL port for both SIG and PTP ...................................................................... BSGSP_Emulation: Route STATUS to GLOBAL port for both SIG and PTP Change-Id: I6573562c0e7638f153798ee178c7c69d07c26756 Related: OS#4951 --- M library/BSSGP_Emulation.ttcnpp 1 file changed, 14 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/56/22256/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22256 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I6573562c0e7638f153798ee178c7c69d07c26756 Gerrit-Change-Number: 22256 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 17 17:16:22 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 17 Jan 2021 17:16:22 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Add test cases for STATUS handling In-Reply-To: References: Message-ID: Hello Jenkins Builder, daniel, lynxis lazus, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22257 to look at the new patch set (#3). Change subject: gbproxy: Add test cases for STATUS handling ...................................................................... gbproxy: Add test cases for STATUS handling We expect the uplink BSSGP status to be routed based in the inner/contained downlink PDU - and vice-versa. Change-Id: If2ddd158346a3da340f1c673354196f3872c4f67 Related: OS#4951 --- M gbproxy/GBProxy_Tests.ttcn M library/Osmocom_Gb_Types.ttcn 2 files changed, 243 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/57/22257/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22257 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If2ddd158346a3da340f1c673354196f3872c4f67 Gerrit-Change-Number: 22257 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 17 17:17:15 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 17 Jan 2021 17:17:15 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Add suite of RIM tests In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22246 ) Change subject: gbproxy: Add suite of RIM tests ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22246 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I0fec6fd4a5a6559f596b9006ae437323da6f05d7 Gerrit-Change-Number: 22246 Gerrit-PatchSet: 5 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Sun, 17 Jan 2021 17:17:15 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 17 17:17:24 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 17 Jan 2021 17:17:24 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Add suite of RIM tests In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22246 ) Change subject: gbproxy: Add suite of RIM tests ...................................................................... gbproxy: Add suite of RIM tests They all fail with current gbproxy master as it doesn't yet implement routing of RIM messages. Related: OS#4896 Change-Id: I0fec6fd4a5a6559f596b9006ae437323da6f05d7 --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 327 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved lynxis lazus: Looks good to me, but someone else must approve diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index 8e6bd55..3b4c8e9 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -825,6 +825,8 @@ type component GlobalTest_CT extends test_CT { port BSSGP_PT G_PCU[NUM_PCU]; port BSSGP_PT G_SGSN[NUM_SGSN]; + port BSSGP_PT RIM_PCU[NUM_PCU]; + port BSSGP_PT RIM_SGSN[NUM_SGSN]; }; /* connect the signaling BVC of each NSE to the G_PCU / G_SGSN ports */ @@ -832,9 +834,11 @@ var integer i; for (i := 0; i < lengthof(g_sgsn); i := i+1) { connect(self:G_SGSN[i], g_sgsn[i].vc_BSSGP:GLOBAL); + connect(self:RIM_SGSN[i], g_sgsn[i].vc_BSSGP:RIM); } for (i := 0; i < lengthof(g_pcu); i := i+1) { connect(self:G_PCU[i], g_pcu[i].vc_BSSGP:GLOBAL); + connect(self:RIM_PCU[i], g_pcu[i].vc_BSSGP:RIM); } } @@ -2581,6 +2585,321 @@ f_cleanup(); } +/*********************************************************************** + * RIM (RAN Information Management) + ***********************************************************************/ + +/* Our tests here are rather synthetic, as they don't reflect normal message flows + as they would be observed in a live network. However, for testing gbproxy, this shouldn't + matter as gbproxy is not concerned with anything but the source / destination routing + information */ + +/* gbproxy must route all unknown RIM Routing Info (Cell Id) to the SGSN. We just define + one here of which we know it is not used among the [simulated] PCUs */ +const BssgpCellId cell_id_sgsn := { + ra_id := { + lai := { + mcc_mnc := c_mcc_mnc, + lac := 65534 + }, + rac := 0 + }, + cell_id := 65533 +}; + +/* Send 'tx' on PTP-BVCI from PCU; expect 'rx' on any of our SGSN (RIM can be routed anywhere) */ +friend function f_rim_pcu2sgsn(template (value) PDU_BSSGP tx, template (present) PDU_BSSGP exp_rx, + integer pcu_idx := 0) runs on GlobalTest_CT { + var PDU_BSSGP rx; + timer T := 1.0; + + RIM_PCU[pcu_idx].send(tx); + T.start; + alt { + [] any from RIM_SGSN.receive(exp_rx) { + setverdict(pass); + } + [] any from RIM_SGSN.receive(PDU_BSSGP:?) -> value rx { + setverdict(fail, "Unexpected BSSGP on SGSN side: ", rx); + mtc.stop; + } + [] T.timeout { + setverdict(fail, "Timeout waiting for BSSGP on SGSN side: ", exp_rx); + mtc.stop; + } + } +} + +/* Send 'tx' on PTP-BVCI from SGSN; expect 'rx' on PCU */ +friend function f_rim_sgsn2pcu(template (value) PDU_BSSGP tx, template (present) PDU_BSSGP exp_rx, + integer sgsn_idx := 0, integer pcu_idx := 0) runs on GlobalTest_CT { + var PDU_BSSGP rx; + timer T := 1.0; + + RIM_SGSN[sgsn_idx].send(tx); + T.start; + alt { + [] RIM_PCU[pcu_idx].receive(exp_rx) { + setverdict(pass); + } + [] RIM_PCU[pcu_idx].receive(PDU_BSSGP:?) -> value rx { + setverdict(fail, "Unexpected BSSGP on PCU side: ", rx); + mtc.stop; + } + [] T.timeout { + setverdict(fail, "Timeout waiting for BSSGP on PCU side: ", exp_rx); + mtc.stop; + } + } +} + +/* Send 'tx' on PTP-BVCI from SRC-PCU; expect 'rx' on DST-PCU */ +friend function f_rim_pcu2pcu(template (value) PDU_BSSGP tx, template (present) PDU_BSSGP exp_rx, + integer src_pcu_idx, integer dst_pcu_idx) runs on GlobalTest_CT { + var integer rx_idx; + var PDU_BSSGP rx; + timer T := 1.0; + + RIM_PCU[src_pcu_idx].send(tx); + T.start; + alt { + [] RIM_PCU[dst_pcu_idx].receive(exp_rx) -> value rx{ + setverdict(pass); + } + [] any from RIM_PCU.receive(exp_rx) -> @index value rx_idx { + setverdict(fail, "Received RIM on wrong PCU[", rx_idx ,"], expected on PCU[", dst_pcu_idx, "]"); + } + [] any from RIM_SGSN.receive(exp_rx) { + setverdict(fail, "Received RIM on SGSN but expected it on other PCU"); + } + [] any from RIM_SGSN.receive(PDU_BSSGP:?) -> value rx { + setverdict(fail, "Unexpected BSSGP on SGSN side: ", rx); + mtc.stop; + } + [] T.timeout { + setverdict(fail, "Timeout waiting for BSSGP on SGSN side: ", exp_rx); + mtc.stop; + } + } +} + + +type function rim_fn(integer sgsn_idx, integer pcu_idx, integer bvc_idx) runs on GlobalTest_CT; + +/* helper function for the RIM test cases: Execute 'fn' for each BVC on each PCU for + each SGSN */ +private function f_rim_iterator(rim_fn fn) runs on GlobalTest_CT +{ + var integer sgsn_idx, pcu_idx, bvc_idx; + for (sgsn_idx := 0; sgsn_idx < NUM_SGSN; sgsn_idx := sgsn_idx+1) { + for (pcu_idx := 0; pcu_idx < lengthof(g_pcu); pcu_idx := pcu_idx+1) { + for (bvc_idx := 0; bvc_idx < lengthof(g_pcu[pcu_idx].cfg.bvc); bvc_idx := bvc_idx+1) { + log("Testing RIM SGSN[", sgsn_idx, "] <-> PCU[", pcu_idx, "][", bvc_idx, "]"); + fn.apply(sgsn_idx, pcu_idx, bvc_idx); + } + } + } +} + +/* RAN-INFORMATION-REQUEST */ +private function f_TC_rim_info_req(integer sgsn_idx, integer pcu_idx, integer bvc_idx := 0) +runs on GlobalTest_CT +{ + var BssgpCellId cell_id := g_pcu[pcu_idx].cfg.bvc[bvc_idx].cell_id; + var template (value) RIM_Routing_Information ri_pcu; + var template (value) RIM_Routing_Information ri_sgsn; + var template (value) RAN_Information_Request_RIM_Container cont; + + ri_sgsn := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, t_RIM_Routing_Address_cid(cell_id_sgsn)); + ri_pcu := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, t_RIM_Routing_Address_cid(cell_id)); + cont := ts_RAN_Information_Request_RIM_Container(ts_RIM_Application_Identity(RIM_APP_ID_NACC), + ts_RIM_Sequence_Number(0), + ts_RIM_PDU_Indications(false, RIM_PDU_TYPE_STOP)); + f_rim_pcu2sgsn(ts_RAN_INFORMATION_REQUEST(dst := ri_sgsn, src := ri_pcu, cont := cont), + tr_RAN_INFORMATION_REQUEST(dst := ri_sgsn, src := ri_pcu, cont := cont), + pcu_idx); + f_rim_sgsn2pcu(ts_RAN_INFORMATION_REQUEST(dst := ri_pcu, src := ri_sgsn, cont := cont), + tr_RAN_INFORMATION_REQUEST(dst := ri_pcu, src := ri_sgsn, cont := cont), + sgsn_idx, pcu_idx); +} +testcase TC_rim_info_req() runs on GlobalTest_CT +{ + f_init(); + f_global_init(); + f_rim_iterator(refers(f_TC_rim_info_req)); + f_cleanup(); +} + +/* RAN-INFORMATION */ +private function f_TC_rim_info(integer sgsn_idx, integer pcu_idx, integer bvc_idx := 0) +runs on GlobalTest_CT +{ + var BssgpCellId cell_id := g_pcu[pcu_idx].cfg.bvc[bvc_idx].cell_id; + var template (value) RIM_Routing_Information ri_pcu; + var template (value) RIM_Routing_Information ri_sgsn; + var template (value) RAN_Information_RIM_Container cont; + + ri_sgsn := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, t_RIM_Routing_Address_cid(cell_id_sgsn)); + ri_pcu := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, t_RIM_Routing_Address_cid(cell_id)); + cont := ts_RAN_Information_RIM_Container(ts_RIM_Application_Identity(RIM_APP_ID_NACC), + ts_RIM_Sequence_Number(0), + ts_RIM_PDU_Indications(false, RIM_PDU_TYPE_STOP)); + f_rim_pcu2sgsn(ts_PDU_BSSGP_RAN_INFORMATION(dst := ri_sgsn, src := ri_pcu, cont := cont), + tr_PDU_BSSGP_RAN_INFORMATION(dst := ri_sgsn, src := ri_pcu, cont := cont), + pcu_idx); + f_rim_sgsn2pcu(ts_PDU_BSSGP_RAN_INFORMATION(dst := ri_pcu, src := ri_sgsn, cont := cont), + tr_PDU_BSSGP_RAN_INFORMATION(dst := ri_pcu, src := ri_sgsn, cont := cont), + sgsn_idx, pcu_idx); +} +testcase TC_rim_info() runs on GlobalTest_CT +{ + f_init(); + f_global_init(); + f_rim_iterator(refers(f_TC_rim_info)); + f_cleanup(); +} + +/* RAN-INFORMATION-ACK */ +private function f_TC_rim_info_ack(integer sgsn_idx, integer pcu_idx, integer bvc_idx := 0) +runs on GlobalTest_CT +{ + var BssgpCellId cell_id := g_pcu[pcu_idx].cfg.bvc[bvc_idx].cell_id; + var template (value) RIM_Routing_Information ri_pcu; + var template (value) RIM_Routing_Information ri_sgsn; + var template (value) RAN_Information_Ack_RIM_Container cont; + + ri_sgsn := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, t_RIM_Routing_Address_cid(cell_id_sgsn)); + ri_pcu := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, t_RIM_Routing_Address_cid(cell_id)); + cont := ts_RAN_Information_Ack_RIM_Container(ts_RIM_Application_Identity(RIM_APP_ID_NACC), + ts_RIM_Sequence_Number(0)); + f_rim_pcu2sgsn(ts_PDU_BSSGP_RAN_INFORMATION_ACK(dst := ri_sgsn, src := ri_pcu, cont := cont), + tr_PDU_BSSGP_RAN_INFORMATION_ACK(dst := ri_sgsn, src := ri_pcu, cont := cont), + pcu_idx); + f_rim_sgsn2pcu(ts_PDU_BSSGP_RAN_INFORMATION_ACK(dst := ri_pcu, src := ri_sgsn, cont := cont), + tr_PDU_BSSGP_RAN_INFORMATION_ACK(dst := ri_pcu, src := ri_sgsn, cont := cont), + sgsn_idx, pcu_idx); +} +testcase TC_rim_info_ack() runs on GlobalTest_CT +{ + f_init(); + f_global_init(); + f_rim_iterator(refers(f_TC_rim_info_ack)); + f_cleanup(); +} + +/* RAN-INFORMATION-ERROR */ +private function f_TC_rim_info_error(integer sgsn_idx, integer pcu_idx, integer bvc_idx := 0) +runs on GlobalTest_CT +{ + var BssgpCellId cell_id := g_pcu[pcu_idx].cfg.bvc[bvc_idx].cell_id; + var template (value) RIM_Routing_Information ri_pcu; + var template (value) RIM_Routing_Information ri_sgsn; + var template (value) RAN_Information_Error_RIM_Container cont; + + ri_sgsn := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, t_RIM_Routing_Address_cid(cell_id_sgsn)); + ri_pcu := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, t_RIM_Routing_Address_cid(cell_id)); + cont := ts_RAN_Information_Error_RIM_Container(ts_RIM_Application_Identity(RIM_APP_ID_NACC), + ts_BSSGP_CAUSE(BSSGP_CAUSE_EQUIMENT_FAILURE), + omit, valueof(t_BVC_UNBLOCK(23))); + f_rim_pcu2sgsn(ts_PDU_BSSGP_RAN_INFORMATION_ERROR(dst := ri_sgsn, src := ri_pcu, cont := cont), + tr_PDU_BSSGP_RAN_INFORMATION_ERROR(dst := ri_sgsn, src := ri_pcu, cont := cont), + pcu_idx); + f_rim_sgsn2pcu(ts_PDU_BSSGP_RAN_INFORMATION_ERROR(dst := ri_pcu, src := ri_sgsn, cont := cont), + tr_PDU_BSSGP_RAN_INFORMATION_ERROR(dst := ri_pcu, src := ri_sgsn, cont := cont), + sgsn_idx, pcu_idx); +} +testcase TC_rim_info_error() runs on GlobalTest_CT +{ + f_init(); + f_global_init(); + f_rim_iterator(refers(f_TC_rim_info_error)); + f_cleanup(); +} + +/* RAN-INFORMATION-APPLICATION-ERROR */ +private function f_TC_rim_info_app_error(integer sgsn_idx, integer pcu_idx, integer bvc_idx := 0) +runs on GlobalTest_CT +{ + var BssgpCellId cell_id := g_pcu[pcu_idx].cfg.bvc[bvc_idx].cell_id; + var template (value) RIM_Routing_Information ri_pcu; + var template (value) RIM_Routing_Information ri_sgsn; + var template (value) Application_Error_Container app_cont; + var template (value) RAN_Information_Application_Error_RIM_Container cont; + + ri_sgsn := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, t_RIM_Routing_Address_cid(cell_id_sgsn)); + ri_pcu := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, t_RIM_Routing_Address_cid(cell_id)); + app_cont := tsu_Application_Error_Container_NACC(cell_id, 23, + tsu_Application_Container_IE_NACC_req(cell_id)); + cont := ts_RAN_Information_Application_Error_RIM_Container(ts_RIM_Application_Identity(RIM_APP_ID_NACC), + ts_RIM_Sequence_Number(0), + ts_RIM_PDU_Indications(false, RIM_PDU_TYPE_STOP), + omit, app_cont); + f_rim_pcu2sgsn(ts_PDU_BSSGP_RAN_INFORMATION_APPLICATION_ERROR(dst := ri_sgsn, src := ri_pcu, cont := cont), + tr_PDU_BSSGP_RAN_INFORMATION_APPLICATION_ERROR(dst := ri_sgsn, src := ri_pcu, cont := cont), + pcu_idx); + f_rim_sgsn2pcu(ts_PDU_BSSGP_RAN_INFORMATION_APPLICATION_ERROR(dst := ri_pcu, src := ri_sgsn, cont := cont), + tr_PDU_BSSGP_RAN_INFORMATION_APPLICATION_ERROR(dst := ri_pcu, src := ri_sgsn, cont := cont), + sgsn_idx, pcu_idx); +} +testcase TC_rim_info_app_error() runs on GlobalTest_CT +{ + f_init(); + f_global_init(); + f_rim_iterator(refers(f_TC_rim_info_app_error)); + f_cleanup(); +} + +/* RAN-INFORMATION routing directly between PCUs, without SGSN involvement */ +private function f_TC_rim_info_pcu2pcu(integer src_pcu_idx, integer src_bvc_idx, + integer dst_pcu_idx, integer dst_bvc_idx) +runs on GlobalTest_CT +{ + var BssgpCellId cell_id_src := g_pcu[src_pcu_idx].cfg.bvc[src_bvc_idx].cell_id; + var BssgpCellId cell_id_dst := g_pcu[dst_pcu_idx].cfg.bvc[dst_bvc_idx].cell_id; + var template (value) RIM_Routing_Information ri_pcu_src; + var template (value) RIM_Routing_Information ri_pcu_dst; + var template (value) RAN_Information_RIM_Container cont; + + log("Testing RIM PCU2PCU from PCU[", src_pcu_idx, "][", src_bvc_idx, "] to PCU[", + dst_pcu_idx, "][", dst_bvc_idx, "]"); + + ri_pcu_src := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, + t_RIM_Routing_Address_cid(cell_id_src)); + ri_pcu_dst := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, + t_RIM_Routing_Address_cid(cell_id_dst)); + cont := ts_RAN_Information_RIM_Container(ts_RIM_Application_Identity(RIM_APP_ID_NACC), + ts_RIM_Sequence_Number(0), + ts_RIM_PDU_Indications(false, RIM_PDU_TYPE_STOP)); + f_rim_pcu2pcu(ts_PDU_BSSGP_RAN_INFORMATION(dst := ri_pcu_dst, src := ri_pcu_src, cont := cont), + tr_PDU_BSSGP_RAN_INFORMATION(dst := ri_pcu_dst, src := ri_pcu_src, cont := cont), + src_pcu_idx, dst_pcu_idx); +} +testcase TC_rim_info_pcu2pcu() runs on GlobalTest_CT +{ + var integer src_pcu_idx, dst_pcu_idx; + var integer src_bvc_idx, dst_bvc_idx; + f_init(); + f_global_init(); + + for (src_pcu_idx := 0; src_pcu_idx < lengthof(g_pcu); src_pcu_idx := src_pcu_idx + 1) { + for (src_bvc_idx := 0; src_bvc_idx < lengthof(g_pcu[src_pcu_idx].cfg.bvc); src_bvc_idx := src_bvc_idx + 1) { + for (dst_pcu_idx := 0; dst_pcu_idx < lengthof(g_pcu); dst_pcu_idx := dst_pcu_idx + 1) { + if (dst_pcu_idx == src_pcu_idx) { + continue; + } + + for (dst_bvc_idx := 0; dst_bvc_idx < lengthof(g_pcu[dst_pcu_idx].cfg.bvc); +dst_bvc_idx := dst_bvc_idx + 1) { + f_TC_rim_info_pcu2pcu(src_pcu_idx, src_bvc_idx, dst_pcu_idx, dst_bvc_idx); + } + } + } + } + + f_cleanup(); +} + + control { execute( TC_BVC_bringup() ); execute( TC_ul_unitdata() ); @@ -2648,6 +2967,14 @@ execute( TC_paging_cs_sig_bvci() ); execute( TC_paging_cs_sig_bvci_unknown() ); + /* RAN Information Management */ + execute( TC_rim_info_req() ); + execute( TC_rim_info() ); + execute( TC_rim_info_ack() ); + execute( TC_rim_info_error() ); + execute( TC_rim_info_app_error() ); + execute( TC_rim_info_pcu2pcu() ); + execute( TC_flush_ll() ); execute( TC_fc_bvc() ); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22246 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I0fec6fd4a5a6559f596b9006ae437323da6f05d7 Gerrit-Change-Number: 22246 Gerrit-PatchSet: 5 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 17 17:17:25 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 17 Jan 2021 17:17:25 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Print log line for every ConnHdlr we start In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22247 ) Change subject: gbproxy: Print log line for every ConnHdlr we start ...................................................................... gbproxy: Print log line for every ConnHdlr we start Change-Id: I43e0ffb1b8be4f85a55ab1ed24fcf9d3b60a4d60 --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 2 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified lynxis lazus: Looks good to me, approved diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index 3b4c8e9..f5248aa 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -629,6 +629,8 @@ vc_conn := BSSGP_ConnHdlr.create(id); + log("Starting ", id, " for SGSN[", sgsn_idx, "], NRI=", nri, ", P-TMSI=", pars.p_tmsi, + ", TLLI=", pars.tlli, ", IMSI=", pars.imsi, " on component=", vc_conn); vc_conn.start(f_handler_init(fn, id, pars)); return vc_conn; } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22247 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I43e0ffb1b8be4f85a55ab1ed24fcf9d3b60a4d60 Gerrit-Change-Number: 22247 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 17 17:17:25 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 17 Jan 2021 17:17:25 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BSSGP_Emulation: f_bssgp_get_tlli(): TLLI is optional in RADIO-STATUS In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22248 ) Change subject: BSSGP_Emulation: f_bssgp_get_tlli(): TLLI is optional in RADIO-STATUS ...................................................................... BSSGP_Emulation: f_bssgp_get_tlli(): TLLI is optional in RADIO-STATUS We must not dereference the TLLI IE unconditionally Related: OS#4951 Change-Id: I463b25f5395127d155727d785eb7795ac0165fac --- M library/BSSGP_Emulation.ttcnpp 1 file changed, 2 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified lynxis lazus: Looks good to me, approved diff --git a/library/BSSGP_Emulation.ttcnpp b/library/BSSGP_Emulation.ttcnpp index 5eef645..5c825d6 100644 --- a/library/BSSGP_Emulation.ttcnpp +++ b/library/BSSGP_Emulation.ttcnpp @@ -1397,7 +1397,8 @@ return bssgp.pDU_BSSGP_RA_CAPABILITY_UPDATE.tLLI.tLLI_Value; } else if (ischosen(bssgp.pDU_BSSGP_RA_CAPABILITY_UPDATE_ACK)) { return bssgp.pDU_BSSGP_RA_CAPABILITY_UPDATE_ACK.tLLI.tLLI_Value; - } else if (ischosen(bssgp.pDU_BSSGP_RADIO_STATUS)) { + } else if (ischosen(bssgp.pDU_BSSGP_RADIO_STATUS) and + ispresent(bssgp.pDU_BSSGP_RADIO_STATUS.tLLI)) { return bssgp.pDU_BSSGP_RADIO_STATUS.tLLI.tLLI_Value; } else if (ischosen(bssgp.pDU_BSSGP_SUSPEND)) { return bssgp.pDU_BSSGP_SUSPEND.tLLI.tLLI_Value; -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22248 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I463b25f5395127d155727d785eb7795ac0165fac Gerrit-Change-Number: 22248 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 17 17:17:26 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 17 Jan 2021 17:17:26 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Osmocom_Gb_Types: Extend RADIO-STATUS templates In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22249 ) Change subject: Osmocom_Gb_Types: Extend RADIO-STATUS templates ...................................................................... Osmocom_Gb_Types: Extend RADIO-STATUS templates RADIO-STATUS can occur with TLLI, but also with P-TMSI or IMSI. Update our templates accordingly while keeping backwards compatibility. Related: OS#4951 Change-Id: I1119e50e457b02d52e7c2c26a8b8039bf2118296 --- M library/Osmocom_Gb_Types.ttcn 1 file changed, 43 insertions(+), 8 deletions(-) Approvals: Jenkins Builder: Verified lynxis lazus: Looks good to me, approved diff --git a/library/Osmocom_Gb_Types.ttcn b/library/Osmocom_Gb_Types.ttcn index b82ca32..589108f 100644 --- a/library/Osmocom_Gb_Types.ttcn +++ b/library/Osmocom_Gb_Types.ttcn @@ -897,6 +897,22 @@ }, tLLI_Value := tlli } + private function f_ts_BSSGP_TLLI(template (omit) GprsTlli tlli) return template (omit) TLLI_BSSGP { + if (istemplatekind(tlli, "omit")) { + return omit; + } else { + return ts_BSSGP_TLLI(valueof(tlli)); + } + } + private function f_tr_BSSGP_TLLI(template GprsTlli tlli) return template TLLI_BSSGP { + if (istemplatekind(tlli, "omit")) { + return omit; + } else if (istemplatekind(tlli, "*")) { + return *; + } else { + return tr_BSSGP_TLLI(valueof(tlli)); + } + } template (value) Suspend_Reference_Number ts_BSSGP_SUSP_REF(template (value) OCT1 susp_ref) := { iEI := '1D'O, @@ -932,6 +948,22 @@ oddevenIndicator := f_hex_is_odd_length(imsi), digits := imsi } + private function f_ts_BSSGP_IMSI(template (omit) hexstring imsi) return template (omit) IMSI_BSSGP { + if (istemplatekind(imsi, "omit")) { + return omit; + } else { + return ts_BSSGP_IMSI(valueof(imsi)); + } + } + private function f_tr_BSSGP_IMSI(template hexstring imsi) return template IMSI_BSSGP { + if (istemplatekind(imsi, "omit")) { + return omit; + } else if (istemplatekind(imsi, "*")) { + return *; + } else { + return tr_BSSGP_IMSI(imsi); + } + } template (present) TMSI_BSSGP tr_BSSGP_TMSI(GsmTmsi tmsi) := { iEI := '20'O, @@ -2324,22 +2356,25 @@ /* 10.3.5 */ template (value) PDU_BSSGP - ts_BSSGP_RADIO_STATUS(GprsTlli tlli, template (value) BssgpRadioCause cause) := { + ts_BSSGP_RADIO_STATUS(template (omit) GprsTlli tlli, template (value) BssgpRadioCause cause, + template (omit) GsmTmsi tmsi := omit, + template (omit) hexstring imsi := omit) := { pDU_BSSGP_RADIO_STATUS := { bssgpPduType := '0a'O, - tLLI := ts_BSSGP_TLLI(tlli), - tMSI := omit, - iMSI := omit, + tLLI := f_ts_BSSGP_TLLI(tlli), + tMSI := f_ts_BSSGP_TMSI(tmsi), + iMSI := f_ts_BSSGP_IMSI(imsi), radio_Cause := ts_BSSGP_RADIO_CAUSE(cause) } } template (present) PDU_BSSGP - tr_BSSGP_RADIO_STATUS(template (present) GprsTlli tlli, template (present) BssgpRadioCause cause) := { + tr_BSSGP_RADIO_STATUS(template GprsTlli tlli, template (present) BssgpRadioCause cause, + template GsmTmsi tmsi := *, template hexstring imsi := *) := { pDU_BSSGP_RADIO_STATUS := { bssgpPduType := '0a'O, - tLLI := ts_BSSGP_TLLI(tlli), - tMSI := omit, - iMSI := omit, + tLLI := f_tr_BSSGP_TLLI(tlli), + tMSI := f_tr_BSSGP_TMSI(tmsi), + iMSI := f_tr_BSSGP_IMSI(imsi), radio_Cause := tr_BSSGP_RADIO_CAUSE(cause) } } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22249 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I1119e50e457b02d52e7c2c26a8b8039bf2118296 Gerrit-Change-Number: 22249 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 17 17:18:02 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 17 Jan 2021 17:18:02 +0000 Subject: Change in osmo-bsc[master]: gsm_data: return early if MS Power class remains the same In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22232 ) Change subject: gsm_data: return early if MS Power class remains the same ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22232 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I519d2d1575cbb5352cc381a60513db8e0e2cb0a0 Gerrit-Change-Number: 22232 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sun, 17 Jan 2021 17:18:02 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 17 17:18:47 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 17 Jan 2021 17:18:47 +0000 Subject: Change in osmo-trx[master]: radioInterfaceMulti: Fix memory leak upon close() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/22211 ) Change subject: radioInterfaceMulti: Fix memory leak upon close() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/22211 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: Ia4f9d4e47caa86ada98054763573e652d281992c Gerrit-Change-Number: 22211 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 17 Jan 2021 17:18:47 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 17 17:18:49 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 17 Jan 2021 17:18:49 +0000 Subject: Change in osmo-trx[master]: radioInterfaceMulti: Fix memory leak upon close() In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/22211 ) Change subject: radioInterfaceMulti: Fix memory leak upon close() ...................................................................... radioInterfaceMulti: Fix memory leak upon close() The leak was reported by ASan. Direct leak of 48 byte(s) in 1 object(s) allocated from: #0 0x7fd9c9c29f41 in operator new(unsigned long) /build/gcc/src/gcc/libsanitizer/asan/asan_new_delete.cpp:99 #1 0x55bd63ae2364 in RadioInterfaceMulti::init(int) /git/osmo-trx/Transceiver52M/radioInterfaceMulti.cpp:209 #2 0x55bd63a9c6d2 in makeRadioInterface(trx_ctx*, RadioDevice*, int) /git/osmo-trx/Transceiver52M/osmo-trx.cpp:115 #3 0x55bd63a9f663 in trx_start /git/osmo-trx/Transceiver52M/osmo-trx.cpp:600 #4 0x55bd63a9fd6f in main /git/osmo-trx/Transceiver52M/osmo-trx.cpp:695 #5 0x7fd9c7910151 in __libc_start_main (/usr/lib/libc.so.6+0x28151) Change-Id: Ia4f9d4e47caa86ada98054763573e652d281992c --- M Transceiver52M/radioInterfaceMulti.cpp 1 file changed, 4 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/Transceiver52M/radioInterfaceMulti.cpp b/Transceiver52M/radioInterfaceMulti.cpp index 465fd41..eaf0886 100644 --- a/Transceiver52M/radioInterfaceMulti.cpp +++ b/Transceiver52M/radioInterfaceMulti.cpp @@ -70,6 +70,10 @@ channelizer = NULL; synthesis = NULL; + + for (std::vector::iterator it = history.begin(); it != history.end(); ++it) + delete *it; + mReceiveFIFO.resize(0); powerScaling.resize(0); history.resize(0); -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/22211 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: Ia4f9d4e47caa86ada98054763573e652d281992c Gerrit-Change-Number: 22211 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 17 17:18:54 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 17 Jan 2021 17:18:54 +0000 Subject: Change in osmo-bts[master]: paging: refactor and optimize fill_paging_type_1() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/22224 ) Change subject: paging: refactor and optimize fill_paging_type_1() ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22224 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I90473356b396e5dd9326598aca025afacca4afc8 Gerrit-Change-Number: 22224 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sun, 17 Jan 2021 17:18:54 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 17 17:18:56 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 17 Jan 2021 17:18:56 +0000 Subject: Change in osmo-bts[master]: paging: refactor and optimize fill_paging_type_1() In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/22224 ) Change subject: paging: refactor and optimize fill_paging_type_1() ...................................................................... paging: refactor and optimize fill_paging_type_1() As far as I can see from my perf measurements, bitvec_fill() is called quite often and takes 0.27% of the CPU. A more detailed look reveals that it's indirectly called by fill_paging_type_1() in order to fill the remaining octets with constant '2B'O padding. Let's optimize this function: - use memset() for padding *before* writing optional P1 Rest Octets; - conditionally initialize the bit vector for P1 Rest Octets; - use designated initializers instead of memset(). It's generally better to avoid using bitvec_fill() when using memset() is possible, because the former operates on bits rather than bytes. Change-Id: I90473356b396e5dd9326598aca025afacca4afc8 --- M src/common/paging.c 1 file changed, 18 insertions(+), 16 deletions(-) Approvals: pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/common/paging.c b/src/common/paging.c index fca58b5..2973141 100644 --- a/src/common/paging.c +++ b/src/common/paging.c @@ -352,34 +352,36 @@ uint8_t chan2, const struct p1_rest_octets *p1ro) { struct gsm48_paging1 *pt1 = (struct gsm48_paging1 *) out_buf; - struct bitvec bv; - unsigned int paging_len; + unsigned int ro_len; uint8_t *cur; - memset(out_buf, 0, sizeof(*pt1)); + *pt1 = (struct gsm48_paging1) { + .proto_discr = GSM48_PDISC_RR, + .msg_type = GSM48_MT_RR_PAG_REQ_1, + .pag_mode = GSM48_PM_NORMAL, + .cneed1 = chan1 & 3, + .cneed2 = chan2 & 3, + }; - pt1->proto_discr = GSM48_PDISC_RR; - pt1->msg_type = GSM48_MT_RR_PAG_REQ_1; - pt1->pag_mode = GSM48_PM_NORMAL; - pt1->cneed1 = chan1 & 3; - pt1->cneed2 = chan2 & 3; cur = lv_put(pt1->data, identity1_lv[0], identity1_lv+1); if (identity2_lv) cur = tlv_put(cur, GSM48_IE_MOBILE_ID, identity2_lv[0], identity2_lv+1); pt1->l2_plen = L2_PLEN(cur - out_buf); - paging_len = cur - out_buf; + /* Pad remaining octets with constant '2B'O */ + ro_len = GSM_MACBLOCK_LEN - (cur - out_buf); + memset(cur, GSM_MACBLOCK_PADDING, ro_len); - memset(&bv, 0, sizeof(bv)); - bv.data = cur; - bv.data_len = GSM_MACBLOCK_LEN - paging_len; + /* Optional P1 Rest Octets */ + if (p1ro) { + struct bitvec bv = { + .data_len = ro_len, + .data = cur, + }; - if (p1ro) append_p1_rest_octets(&bv, p1ro); - - /* pad to the end of the MAC block */ - bitvec_spare_padding(&bv, bv.data_len *8); + } return GSM_MACBLOCK_LEN; } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22224 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I90473356b396e5dd9326598aca025afacca4afc8 Gerrit-Change-Number: 22224 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 17 17:21:00 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 17 Jan 2021 17:21:00 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Use IMSI cache to handle PAGING_PS_REJECT In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22252 ) Change subject: gbproxy: Use IMSI cache to handle PAGING_PS_REJECT ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22252 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I7d91d9ecfba757dc81edcf05efb7a2158348099d Gerrit-Change-Number: 22252 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Sun, 17 Jan 2021 17:21:00 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 17 17:28:10 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 17 Jan 2021 17:28:10 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Implement IMSI cache In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22251 ) Change subject: gbproxy: Implement IMSI cache ...................................................................... Patch Set 2: Code-Review+1 > Patch Set 2: Code-Review-1 > > Looks good to me. Except I'm unsure if crc16 as hash is good enough. Maybe @laforge can give additional feedback. I don't really have the mathematical background to say if it is good enough or not. In the Linux kernel we typically used the Bob Jenkins hash (https://burtleburtle.net/bob/hash/) see include/linux/jhash.h We usually expect a lot of variance in the final part of the ISMI, and little at the state. If one ignores the MCC/MNC (first 5 digits), 9 of the 10 decimal digits can actually even be represented in an uint32_t. So one would probably even get quite good distribution by simply using the modulo-32 representation of the 10 final IMSI digits. I guess without simulation it will be hard to predict what's the best approach. I'd say it should for sure be good enough to merge. Unrelated comment: It would be great to add "show" commands for bobth the IMSI and the TLLI cache. -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22251 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: If0a8d6cc1d63f2fb2c395cc5d4373a915bc2cb87 Gerrit-Change-Number: 22251 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Sun, 17 Jan 2021 17:28:10 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 17 18:06:58 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 17 Jan 2021 18:06:58 +0000 Subject: Change in osmo-bsc[master]: gsm_data: return early if MS Power class remains the same In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22232 ) Change subject: gsm_data: return early if MS Power class remains the same ...................................................................... gsm_data: return early if MS Power class remains the same The following message makes no sense: DRLL DEBUG gsm_data.c:844 MS Power class update: 4 -> 4 because nothing really changed, MS Power class remains 4. Neither it makes sense to call lchan_update_ms_power_ctrl_level(). Change-Id: I519d2d1575cbb5352cc381a60513db8e0e2cb0a0 --- M src/osmo-bsc/gsm_data.c 1 file changed, 5 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/src/osmo-bsc/gsm_data.c b/src/osmo-bsc/gsm_data.c index 38392fc..916ba68 100644 --- a/src/osmo-bsc/gsm_data.c +++ b/src/osmo-bsc/gsm_data.c @@ -841,6 +841,11 @@ void conn_update_ms_power_class(struct gsm_subscriber_connection *conn, uint8_t power_class) { struct gsm_bts *bts = conn_get_bts(conn); + + /* MS Power class remains the same => do nothing */ + if (power_class == conn->ms_power_class) + return; + LOGP(DRLL, LOGL_DEBUG, "MS Power class update: %" PRIu8 " -> %" PRIu8 "\n", conn->ms_power_class, power_class); -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22232 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I519d2d1575cbb5352cc381a60513db8e0e2cb0a0 Gerrit-Change-Number: 22232 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 17 18:26:44 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 17 Jan 2021 18:26:44 +0000 Subject: Change in docker-playground[master]: gbproxy: Update configs for SGSN poool with 2 SGSN, NRI, ... References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/22258 ) Change subject: gbproxy: Update configs for SGSN poool with 2 SGSN, NRI, ... ...................................................................... gbproxy: Update configs for SGSN poool with 2 SGSN, NRI, ... Change-Id: Iac57e079d1375f186ddc200471bad1fa622c8860 --- M ttcn3-gbproxy-test-fr/GBProxy_Tests.cfg M ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg M ttcn3-gbproxy-test/GBProxy_Tests.cfg M ttcn3-gbproxy-test/osmo-gbproxy.cfg 4 files changed, 44 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/58/22258/1 diff --git a/ttcn3-gbproxy-test-fr/GBProxy_Tests.cfg b/ttcn3-gbproxy-test-fr/GBProxy_Tests.cfg index 3487ed1..ce4c698 100644 --- a/ttcn3-gbproxy-test-fr/GBProxy_Tests.cfg +++ b/ttcn3-gbproxy-test-fr/GBProxy_Tests.cfg @@ -28,6 +28,20 @@ } } } + }, { + handle_sns := true, + nsvc := { + { + provider := { + ip := { + address_family := AF_INET, + local_ip := "172.18.25.103", + local_udp_port := 24000, + remote_ip := "172.18.25.10" + } + } + } + } } } GBProxy_Tests.mp_nsconfig_pcu := { diff --git a/ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg b/ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg index 3b5bf96..a4a241d 100644 --- a/ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg +++ b/ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg @@ -20,13 +20,20 @@ bind 0.0.0.0 ! gbproxy + nri bitlen 5 sgsn nsei 101 - name main + name first + nri add 3 +sgsn nsei 102 + name second + nri add 4 ns bind udp local listen 172.18.25.10 23000 nse 101 ip-sns 172.18.25.103 23000 + nse 102 + ip-sns 172.18.25.103 24000 bind fr hdlcnet1 fr hdlcnet1 frnet bind fr hdlcnet2 diff --git a/ttcn3-gbproxy-test/GBProxy_Tests.cfg b/ttcn3-gbproxy-test/GBProxy_Tests.cfg index 7bc38d6..e19084a 100644 --- a/ttcn3-gbproxy-test/GBProxy_Tests.cfg +++ b/ttcn3-gbproxy-test/GBProxy_Tests.cfg @@ -27,6 +27,20 @@ } } } + }, { + handle_sns := true, + nsvc := { + { + provider := { + ip := { + address_family := AF_INET, + local_ip := "172.18.24.103", + local_udp_port := 24000, + remote_ip := "172.18.24.10" + } + } + } + } } } GBProxy_Tests.mp_nsconfig_pcu := { diff --git a/ttcn3-gbproxy-test/osmo-gbproxy.cfg b/ttcn3-gbproxy-test/osmo-gbproxy.cfg index dd32ea7..743e6dc 100644 --- a/ttcn3-gbproxy-test/osmo-gbproxy.cfg +++ b/ttcn3-gbproxy-test/osmo-gbproxy.cfg @@ -20,14 +20,21 @@ bind 0.0.0.0 ! gbproxy + nri bitlen 5 sgsn nsei 101 - name main + name first + nri add 3 +sgsn nsei 102 + name second + nri add 4 ns bind udp local listen 172.18.24.10 23000 accept-ipaccess nse 101 ip-sns 172.18.24.103 23000 + nse 102 + ip-sns 172.18.24.103 24000 timer tns-block 3 timer tns-block-retries 3 timer tns-reset 3 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22258 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Iac57e079d1375f186ddc200471bad1fa622c8860 Gerrit-Change-Number: 22258 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 17 18:27:29 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 17 Jan 2021 18:27:29 +0000 Subject: Change in docker-playground[master]: gbproxy: Update configs for SGSN poool with 2 SGSN, NRI, ... In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22258 ) Change subject: gbproxy: Update configs for SGSN poool with 2 SGSN, NRI, ... ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22258 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Iac57e079d1375f186ddc200471bad1fa622c8860 Gerrit-Change-Number: 22258 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 17 Jan 2021 18:27:29 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 17 18:27:31 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 17 Jan 2021 18:27:31 +0000 Subject: Change in docker-playground[master]: gbproxy: Update configs for SGSN poool with 2 SGSN, NRI, ... In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22258 ) Change subject: gbproxy: Update configs for SGSN poool with 2 SGSN, NRI, ... ...................................................................... gbproxy: Update configs for SGSN poool with 2 SGSN, NRI, ... Change-Id: Iac57e079d1375f186ddc200471bad1fa622c8860 --- M ttcn3-gbproxy-test-fr/GBProxy_Tests.cfg M ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg M ttcn3-gbproxy-test/GBProxy_Tests.cfg M ttcn3-gbproxy-test/osmo-gbproxy.cfg 4 files changed, 44 insertions(+), 2 deletions(-) Approvals: laforge: Looks good to me, approved; Verified diff --git a/ttcn3-gbproxy-test-fr/GBProxy_Tests.cfg b/ttcn3-gbproxy-test-fr/GBProxy_Tests.cfg index 3487ed1..ce4c698 100644 --- a/ttcn3-gbproxy-test-fr/GBProxy_Tests.cfg +++ b/ttcn3-gbproxy-test-fr/GBProxy_Tests.cfg @@ -28,6 +28,20 @@ } } } + }, { + handle_sns := true, + nsvc := { + { + provider := { + ip := { + address_family := AF_INET, + local_ip := "172.18.25.103", + local_udp_port := 24000, + remote_ip := "172.18.25.10" + } + } + } + } } } GBProxy_Tests.mp_nsconfig_pcu := { diff --git a/ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg b/ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg index 3b5bf96..a4a241d 100644 --- a/ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg +++ b/ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg @@ -20,13 +20,20 @@ bind 0.0.0.0 ! gbproxy + nri bitlen 5 sgsn nsei 101 - name main + name first + nri add 3 +sgsn nsei 102 + name second + nri add 4 ns bind udp local listen 172.18.25.10 23000 nse 101 ip-sns 172.18.25.103 23000 + nse 102 + ip-sns 172.18.25.103 24000 bind fr hdlcnet1 fr hdlcnet1 frnet bind fr hdlcnet2 diff --git a/ttcn3-gbproxy-test/GBProxy_Tests.cfg b/ttcn3-gbproxy-test/GBProxy_Tests.cfg index 7bc38d6..e19084a 100644 --- a/ttcn3-gbproxy-test/GBProxy_Tests.cfg +++ b/ttcn3-gbproxy-test/GBProxy_Tests.cfg @@ -27,6 +27,20 @@ } } } + }, { + handle_sns := true, + nsvc := { + { + provider := { + ip := { + address_family := AF_INET, + local_ip := "172.18.24.103", + local_udp_port := 24000, + remote_ip := "172.18.24.10" + } + } + } + } } } GBProxy_Tests.mp_nsconfig_pcu := { diff --git a/ttcn3-gbproxy-test/osmo-gbproxy.cfg b/ttcn3-gbproxy-test/osmo-gbproxy.cfg index dd32ea7..743e6dc 100644 --- a/ttcn3-gbproxy-test/osmo-gbproxy.cfg +++ b/ttcn3-gbproxy-test/osmo-gbproxy.cfg @@ -20,14 +20,21 @@ bind 0.0.0.0 ! gbproxy + nri bitlen 5 sgsn nsei 101 - name main + name first + nri add 3 +sgsn nsei 102 + name second + nri add 4 ns bind udp local listen 172.18.24.10 23000 accept-ipaccess nse 101 ip-sns 172.18.24.103 23000 + nse 102 + ip-sns 172.18.24.103 24000 timer tns-block 3 timer tns-block-retries 3 timer tns-reset 3 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22258 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Iac57e079d1375f186ddc200471bad1fa622c8860 Gerrit-Change-Number: 22258 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 17 19:27:44 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 17 Jan 2021 19:27:44 +0000 Subject: Change in libosmocore[master]: gprs_ns2_fr: reduce duplication between gprs_ns2_fr_connect / connect2 References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22259 ) Change subject: gprs_ns2_fr: reduce duplication between gprs_ns2_fr_connect / connect2 ...................................................................... gprs_ns2_fr: reduce duplication between gprs_ns2_fr_connect / connect2 gprs_sn2_fr_connect2() is the same as gprs_ns2_fr_connect() with the lookup-and-create-on-demand of the NSE first. Rather than copy+paste, they should simply invoke each other. Change-Id: If835bf138f213e7f58205018e7efe3ecb772c624 --- M src/gb/gprs_ns2_fr.c 1 file changed, 1 insertion(+), 18 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/59/22259/1 diff --git a/src/gb/gprs_ns2_fr.c b/src/gb/gprs_ns2_fr.c index 2c797f3..bb55381 100644 --- a/src/gb/gprs_ns2_fr.c +++ b/src/gb/gprs_ns2_fr.c @@ -776,7 +776,6 @@ { bool created_nse = false; struct gprs_ns2_vc *nsvc = NULL; - struct priv_vc *priv = NULL; struct gprs_ns2_nse *nse = gprs_ns2_nse_by_nsei(bind->nsi, nsei); if (!nse) { nse = gprs_ns2_create_nse(bind->nsi, nsei, GPRS_NS2_LL_FR, NS2_DIALECT_STATIC_RESETBLOCK); @@ -785,28 +784,12 @@ created_nse = true; } - nsvc = gprs_ns2_fr_nsvc_by_dlci(bind, dlci); - if (nsvc) { - goto err_nse; - } - - nsvc = ns2_vc_alloc(bind, nse, true, NS2_VC_MODE_BLOCKRESET); + nsvc = gprs_ns2_fr_connect(bind, nse, nsvci, dlci); if (!nsvc) goto err_nse; - nsvc->priv = priv = fr_alloc_vc(bind, nsvc, dlci); - if (!priv) - goto err; - - nsvc->nsvci = nsvci; - nsvc->nsvci_is_valid = true; - - gprs_ns2_vc_fsm_start(nsvc); - return nsvc; -err: - gprs_ns2_free_nsvc(nsvc); err_nse: if (created_nse) gprs_ns2_free_nse(nse); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22259 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If835bf138f213e7f58205018e7efe3ecb772c624 Gerrit-Change-Number: 22259 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 17 19:28:13 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 17 Jan 2021 19:28:13 +0000 Subject: Change in libosmocore[master]: gprs_ns2: Give NS-VC FSMs a proper name/identifier In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21400 ) Change subject: gprs_ns2: Give NS-VC FSMs a proper name/identifier ...................................................................... Set Ready For Review -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21400 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Id9d5b0684584d03685900c6298fe70246793de14 Gerrit-Change-Number: 21400 Gerrit-PatchSet: 5 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Sun, 17 Jan 2021 19:28:13 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 17 19:53:00 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 17 Jan 2021 19:53:00 +0000 Subject: Change in osmo-bsc[master]: handover_tests.sh: update stdout/stderr only on capital -U arg References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22260 ) Change subject: handover_tests.sh: update stdout/stderr only on capital -U arg ...................................................................... handover_tests.sh: update stdout/stderr only on capital -U arg On -u, update the handover_tests.ok file that lists all tests that are expected to run. This is necessary for the regression tests to succeed. Update all the numerous test_*.ho_vty.{err,ok} files only when the update arg is a captial -U, because those are usually not interesting, except for manual comparison of test runs. Change-Id: Id280a8d084fd84b0b7486a5c8022e5b7a26f6095 --- M tests/handover/handover_tests.sh 1 file changed, 3 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/60/22260/1 diff --git a/tests/handover/handover_tests.sh b/tests/handover/handover_tests.sh index 240b789..4be0c10 100755 --- a/tests/handover/handover_tests.sh +++ b/tests/handover/handover_tests.sh @@ -6,7 +6,7 @@ test -d "$tests_dir" test -d "$build_dir" -if [ -n "$update" -a "x$update" != "x-u" ]; then +if [ -n "$update" -a "x$update" != "x-u" -a "x$update" != "x-U" ]; then echo "unknown argument: $update" exit 1 fi @@ -21,7 +21,7 @@ rc=$? expect_out="$test_path.ok" expect_err="$test_path.err" - if [ "x$rc" = "x0" -a "x$update" = "x-u" ]; then + if [ "x$rc" = "x0" -a "x$update" = "x-U" ]; then cp "$got_out" "$expect_out" cp "$got_err" "$expect_err" else @@ -50,7 +50,7 @@ set +e cat "$results" failed="$(grep FAIL "$results")" -if [ -z "$failed" -a "x$update" = "x-u" ]; then +if [ -z "$failed" -a "x$update" != "x" ]; then cp "$results" "$tests_dir"/handover_tests.ok fi rm "$results" -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22260 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Id280a8d084fd84b0b7486a5c8022e5b7a26f6095 Gerrit-Change-Number: 22260 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 17 19:53:01 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 17 Jan 2021 19:53:01 +0000 Subject: Change in osmo-bsc[master]: fix for test_dyn_ts_favor_moving_half_used_tch_h.ho_vty References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22261 ) Change subject: fix for test_dyn_ts_favor_moving_half_used_tch_h.ho_vty ...................................................................... fix for test_dyn_ts_favor_moving_half_used_tch_h.ho_vty So far, the test only works because osmo-bsc fails to notice that occupying the dynamic TS 1 as TCH/F does, overall, not free a TCH/H, but reduces available TCH/H from 5 to 4 (one TCH/H freed, but two TCH/H lost from occupying a dynamic TS). An upcoming patch will make osmo-bsc sensitive for these cross effects between TCH/F and TCH/H when dynamic timeslots are involved, hence this test needs to be stabilized. By using a static TCH/F for TS 1 instead of a dynamic timeslot, the dyn TS cross effect does not occur and this test actually makes sense. Change-Id: I492ea095cf3e3c3fd186c889166c4ed93ab3a007 --- M tests/handover/test_dyn_ts_favor_moving_half_used_tch_h.ho_vty 1 file changed, 6 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/61/22261/1 diff --git a/tests/handover/test_dyn_ts_favor_moving_half_used_tch_h.ho_vty b/tests/handover/test_dyn_ts_favor_moving_half_used_tch_h.ho_vty index 3d1b009..b25cf96 100644 --- a/tests/handover/test_dyn_ts_favor_moving_half_used_tch_h.ho_vty +++ b/tests/handover/test_dyn_ts_favor_moving_half_used_tch_h.ho_vty @@ -2,23 +2,23 @@ # The algorithm should notice that this is about moving an lchan within the same cell, so all candidates will remain # with unchanged rxlev after a re-assignment; hence the current rxlev for each candidate should not make a difference. -create-bts trx-count 1 timeslots c+s4 dyn dyn dyn dyn dyn - - +create-bts trx-count 1 timeslots c+s4 TCH/F dyn dyn dyn dyn - - network handover2 min-free-slots tch/h 6 # Test with identical rxlev across lchans (trivial and unrealistic) -set-ts-use trx 0 0 states * pdch TCH/HH TCH/H- TCH/HH pdch - - +set-ts-use trx 0 0 states * - TCH/HH TCH/H- TCH/HH pdch - - meas-rep lchan * * * * rxlev 30 rxqual 0 ta 0 congestion-check expect-ho from lchan 0 0 3 0 to lchan 0 0 1 0 expect-ts-use trx 0 0 states * TCH/F TCH/HH pdch TCH/HH pdch - - # clear measurements for the next run -set-ts-use trx 0 0 states * pdch pdch pdch pdch pdch - - +set-ts-use trx 0 0 states * - pdch pdch pdch pdch - - # Check that a weaker rxlev coming up earlier in the congestion checking loop does not override the favored half-used # TCH/H -set-ts-use trx 0 0 states * pdch TCH/HH TCH/H- TCH/HH pdch - - +set-ts-use trx 0 0 states * - TCH/HH TCH/H- TCH/HH pdch - - meas-rep lchan 0 0 2 1 rxlev 30 rxqual 0 ta 0 meas-rep lchan 0 0 3 0 rxlev 31 rxqual 0 ta 0 meas-rep lchan 0 0 4 0 rxlev 32 rxqual 0 ta 0 @@ -28,11 +28,11 @@ expect-ts-use trx 0 0 states * TCH/F TCH/HH pdch TCH/HH pdch - - # clear measurements for the next run -set-ts-use trx 0 0 states * pdch pdch pdch pdch pdch - - +set-ts-use trx 0 0 states * - pdch pdch pdch pdch - - # Check that a weaker rxlev coming up later in the congestion checking loop does not override the favored half-used # TCH/H -set-ts-use trx 0 0 states * pdch TCH/HH TCH/H- TCH/HH pdch - - +set-ts-use trx 0 0 states * - TCH/HH TCH/H- TCH/HH pdch - - meas-rep lchan 0 0 2 1 rxlev 34 rxqual 0 ta 0 meas-rep lchan 0 0 3 0 rxlev 33 rxqual 0 ta 0 meas-rep lchan 0 0 4 0 rxlev 32 rxqual 0 ta 0 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22261 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I492ea095cf3e3c3fd186c889166c4ed93ab3a007 Gerrit-Change-Number: 22261 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 17 19:53:01 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 17 Jan 2021 19:53:01 +0000 Subject: Change in osmo-bsc[master]: cosmetic: in a ho test, use '*' instead of pdch References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22262 ) Change subject: cosmetic: in a ho test, use '*' instead of pdch ...................................................................... cosmetic: in a ho test, use '*' instead of pdch The idea is to avoid confusion between the static PDCH and the dynamic timeslots. The PDCH is always in 'pdch' mode, while the dynamic timeslots are 'pdch' when they are not occupied by any TCH. Change-Id: I1a12518d85ed891c491723e7f03f5bdd4fad980f --- M tests/handover/test_dyn_ts_amr_tch_f_to_h_congestion_assignment.ho_vty 1 file changed, 11 insertions(+), 11 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/62/22262/1 diff --git a/tests/handover/test_dyn_ts_amr_tch_f_to_h_congestion_assignment.ho_vty b/tests/handover/test_dyn_ts_amr_tch_f_to_h_congestion_assignment.ho_vty index f94ad0e..85b00e8 100644 --- a/tests/handover/test_dyn_ts_amr_tch_f_to_h_congestion_assignment.ho_vty +++ b/tests/handover/test_dyn_ts_amr_tch_f_to_h_congestion_assignment.ho_vty @@ -19,59 +19,59 @@ create-ms bts 0 TCH/F AMR meas-rep lchan 0 0 5 0 rxlev 40 rxqual 0 ta 0 neighbors 30 -expect-ts-use trx 0 0 states * TCH/F TCH/F TCH/F TCH/F TCH/F pdch pdch +expect-ts-use trx 0 0 states * TCH/F TCH/F TCH/F TCH/F TCH/F pdch * congestion-check expect-ho from lchan 0 0 5 0 to lchan 0 0 6 0 -expect-ts-use trx 0 0 states * TCH/F TCH/F TCH/F TCH/F pdch TCH/H- pdch +expect-ts-use trx 0 0 states * TCH/F TCH/F TCH/F TCH/F pdch TCH/H- * congestion-check expect-ho from lchan 0 0 4 0 to lchan 0 0 6 1 -expect-ts-use trx 0 0 states * TCH/F TCH/F TCH/F pdch pdch TCH/HH pdch +expect-ts-use trx 0 0 states * TCH/F TCH/F TCH/F pdch pdch TCH/HH * congestion-check expect-no-chan create-ms bts 0 TCH/F AMR meas-rep lchan 0 0 4 0 rxlev 40 rxqual 0 ta 0 neighbors 30 -expect-ts-use trx 0 0 states * TCH/F TCH/F TCH/F TCH/F pdch TCH/HH pdch +expect-ts-use trx 0 0 states * TCH/F TCH/F TCH/F TCH/F pdch TCH/HH * congestion-check expect-ho from lchan 0 0 4 0 to lchan 0 0 5 0 -expect-ts-use trx 0 0 states * TCH/F TCH/F TCH/F pdch TCH/H- TCH/HH pdch +expect-ts-use trx 0 0 states * TCH/F TCH/F TCH/F pdch TCH/H- TCH/HH * congestion-check expect-ho from lchan 0 0 1 0 to lchan 0 0 5 1 -expect-ts-use trx 0 0 states * - TCH/F TCH/F pdch TCH/HH TCH/HH pdch +expect-ts-use trx 0 0 states * - TCH/F TCH/F pdch TCH/HH TCH/HH * congestion-check expect-no-chan create-ms bts 0 TCH/F AMR meas-rep lchan 0 0 1 0 rxlev 40 rxqual 0 ta 0 neighbors 30 -expect-ts-use trx 0 0 states * TCH/F TCH/F TCH/F pdch TCH/HH TCH/HH pdch +expect-ts-use trx 0 0 states * TCH/F TCH/F TCH/F pdch TCH/HH TCH/HH * congestion-check expect-ho from lchan 0 0 1 0 to lchan 0 0 4 0 -expect-ts-use trx 0 0 states * - TCH/F TCH/F TCH/H- TCH/HH TCH/HH pdch +expect-ts-use trx 0 0 states * - TCH/F TCH/F TCH/H- TCH/HH TCH/HH * congestion-check expect-ho from lchan 0 0 2 0 to lchan 0 0 4 1 -expect-ts-use trx 0 0 states * - - TCH/F TCH/HH TCH/HH TCH/HH pdch +expect-ts-use trx 0 0 states * - - TCH/F TCH/HH TCH/HH TCH/HH * congestion-check expect-no-chan create-ms bts 0 TCH/F AMR meas-rep lchan 0 0 1 0 rxlev 40 rxqual 0 ta 0 neighbors 30 -expect-ts-use trx 0 0 states * TCH/F - TCH/F TCH/HH TCH/HH TCH/HH pdch +expect-ts-use trx 0 0 states * TCH/F - TCH/F TCH/HH TCH/HH TCH/HH * congestion-check expect-no-chan create-ms bts 0 TCH/F AMR meas-rep lchan 0 0 2 0 rxlev 40 rxqual 0 ta 0 neighbors 30 -expect-ts-use trx 0 0 states * TCH/F TCH/F TCH/F TCH/HH TCH/HH TCH/HH pdch +expect-ts-use trx 0 0 states * TCH/F TCH/F TCH/F TCH/HH TCH/HH TCH/HH * congestion-check expect-no-chan -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22262 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I1a12518d85ed891c491723e7f03f5bdd4fad980f Gerrit-Change-Number: 22262 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 17 19:53:01 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 17 Jan 2021 19:53:01 +0000 Subject: Change in osmo-bsc[master]: show bug: add test_dyn_ts_congestion_tch_f_vs_tch_h.ho_vty References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22263 ) Change subject: show bug: add test_dyn_ts_congestion_tch_f_vs_tch_h.ho_vty ...................................................................... show bug: add test_dyn_ts_congestion_tch_f_vs_tch_h.ho_vty Related: SYS#5297 Change-Id: I3002797dea02dd0c10cfdd091ce73834a753e3a6 --- M tests/handover/handover_tests.ok A tests/handover/test_dyn_ts_congestion_tch_f_vs_tch_h.ho_vty 2 files changed, 59 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/63/22263/1 diff --git a/tests/handover/handover_tests.ok b/tests/handover/handover_tests.ok index d0c1c00..f9adca9 100644 --- a/tests/handover/handover_tests.ok +++ b/tests/handover/handover_tests.ok @@ -17,6 +17,7 @@ pass test_congestion_no_oscillation2.ho_vty pass test_disabled_ho_and_as.ho_vty pass test_dyn_ts_amr_tch_f_to_h_congestion_assignment.ho_vty +pass test_dyn_ts_congestion_tch_f_vs_tch_h.ho_vty pass test_dyn_ts_favor_half_used_tch_h_as_target.ho_vty pass test_dyn_ts_favor_moving_half_used_tch_h.ho_vty pass test_ho_to_better_cell.ho_vty diff --git a/tests/handover/test_dyn_ts_congestion_tch_f_vs_tch_h.ho_vty b/tests/handover/test_dyn_ts_congestion_tch_f_vs_tch_h.ho_vty new file mode 100644 index 0000000..1273d75 --- /dev/null +++ b/tests/handover/test_dyn_ts_congestion_tch_f_vs_tch_h.ho_vty @@ -0,0 +1,58 @@ +# If a handover from one TCH kind to the other occupies a dynamic timeslot, +# also adhere to congestion constraints of the other TCH kind, since taking up +# a dyn TS may reduce the available slot count for both kinds of TCH. + +create-bts trx-count 1 timeslots c+s4 TCH/F TCH/F TCH/F dyn dyn dyn PDCH +create-bts trx-count 1 timeslots c+s4 TCH/F TCH/F TCH/F dyn dyn dyn PDCH + +# A TCH/F has better rxlev at a neighbor, and the neighbor's TCH/F slots would +# not become congested. But taking up a neighbor's dynamic timeslot for TCH/F +# would reduce the TCH/H availability to cause congestion on TCH/H. No HO. + +network + handover2 min-free-slots tch/f 0 + handover2 min-free-slots tch/h 4 + +set-ts-use trx 0 0 states * TCH/F - - pdch pdch pdch * +set-ts-use trx 1 0 states * TCH/F TCH/F TCH/F TCH/HH pdch pdch * + +meas-rep lchan * * * * rxlev 40 rxqual 0 ta 0 neighbors 30 +expect-no-chan + +meas-rep lchan 0 0 1 0 rxlev 20 rxqual 0 ta 0 neighbors 40 +# FAIL: should not handover because that results in congestion on TCH/H in bts 1 +expect-ho from lchan 0 0 1 0 to lchan 1 0 5 0 + +expect-ts-use trx 0 0 states * - - - pdch pdch pdch * +expect-ts-use trx 1 0 states * TCH/F TCH/F TCH/F TCH/HH TCH/F pdch * +meas-rep lchan * * * * rxlev 40 rxqual 0 ta 0 neighbors 30 + +congestion-check +# FAIL: really weird: handover one TCH/H to the same cell to TCH/F, taking up another dyn TS. +# TCH/H congestion hence actually gets worse. +expect-ho from lchan 1 0 4 1 to lchan 1 0 6 0 +expect-ts-use trx 0 0 states * - - - pdch pdch pdch * +expect-ts-use trx 1 0 states * TCH/F TCH/F TCH/F TCH/H- TCH/F TCH/F * + +congestion-check +# more FAIL: TCH/H moves to worse bts 0 due to congestion +expect-ho from lchan 1 0 4 0 to lchan 0 0 4 0 +expect-ts-use trx 0 0 states * - - - TCH/H- pdch pdch * +expect-ts-use trx 1 0 states * TCH/F TCH/F TCH/F pdch TCH/F TCH/F * + +congestion-check +expect-no-chan + +meas-rep lchan 1 * * * rxlev 40 rxqual 0 ta 0 neighbors 30 +expect-no-chan + +meas-rep lchan 0 * * * rxlev 30 rxqual 0 ta 0 neighbors 40 +# FAIL: back to bts 1 because of rxlev, plus moving TCH/H to TCH/F!? +expect-ho from lchan 0 0 4 0 to lchan 1 0 4 0 + +expect-ts-use trx 0 0 states * - - - pdch pdch pdch * +expect-ts-use trx 1 0 states * TCH/F TCH/F TCH/F TCH/F TCH/F TCH/F * + +congestion-check +expect-no-chan +# Stable situation now only because TCH/F has min-free-slots set to 0 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22263 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I3002797dea02dd0c10cfdd091ce73834a753e3a6 Gerrit-Change-Number: 22263 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 17 19:53:02 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 17 Jan 2021 19:53:02 +0000 Subject: Change in osmo-bsc[master]: fixate test_dyn_ts_congestion_tch_f_vs_tch_h.ho_vty References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22264 ) Change subject: fixate test_dyn_ts_congestion_tch_f_vs_tch_h.ho_vty ...................................................................... fixate test_dyn_ts_congestion_tch_f_vs_tch_h.ho_vty The test shows a cascade of failures. When we fix the first failure, it will change the sequence of events that follow after that. But it will still be interesting to evaluate all the situations currently shown. Hence fixate each stage's initial situation, by duplicating the expect-ts-use with an identical set-ts-use. Then, when each individual scenario gets fixed, subsequent scenarios still remain unchanged. Change-Id: Ifeaec39ecb64b476ff1438cf987ba0403489c43b --- M tests/handover/test_dyn_ts_congestion_tch_f_vs_tch_h.ho_vty 1 file changed, 24 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/64/22264/1 diff --git a/tests/handover/test_dyn_ts_congestion_tch_f_vs_tch_h.ho_vty b/tests/handover/test_dyn_ts_congestion_tch_f_vs_tch_h.ho_vty index 1273d75..bc2c884 100644 --- a/tests/handover/test_dyn_ts_congestion_tch_f_vs_tch_h.ho_vty +++ b/tests/handover/test_dyn_ts_congestion_tch_f_vs_tch_h.ho_vty @@ -25,6 +25,12 @@ expect-ts-use trx 0 0 states * - - - pdch pdch pdch * expect-ts-use trx 1 0 states * TCH/F TCH/F TCH/F TCH/HH TCH/F pdch * + + +### + +set-ts-use trx 0 0 states * - - - pdch pdch pdch * +set-ts-use trx 1 0 states * TCH/F TCH/F TCH/F TCH/HH TCH/F pdch * meas-rep lchan * * * * rxlev 40 rxqual 0 ta 0 neighbors 30 congestion-check @@ -34,12 +40,24 @@ expect-ts-use trx 0 0 states * - - - pdch pdch pdch * expect-ts-use trx 1 0 states * TCH/F TCH/F TCH/F TCH/H- TCH/F TCH/F * + +### + +set-ts-use trx 0 0 states * - - - pdch pdch pdch * +set-ts-use trx 1 0 states * TCH/F TCH/F TCH/F TCH/H- TCH/F TCH/F * + congestion-check # more FAIL: TCH/H moves to worse bts 0 due to congestion expect-ho from lchan 1 0 4 0 to lchan 0 0 4 0 expect-ts-use trx 0 0 states * - - - TCH/H- pdch pdch * expect-ts-use trx 1 0 states * TCH/F TCH/F TCH/F pdch TCH/F TCH/F * + +### + +set-ts-use trx 0 0 states * - - - TCH/H- pdch pdch * +set-ts-use trx 1 0 states * TCH/F TCH/F TCH/F pdch TCH/F TCH/F * + congestion-check expect-no-chan @@ -53,6 +71,12 @@ expect-ts-use trx 0 0 states * - - - pdch pdch pdch * expect-ts-use trx 1 0 states * TCH/F TCH/F TCH/F TCH/F TCH/F TCH/F * + +### + +set-ts-use trx 0 0 states * - - - pdch pdch pdch * +set-ts-use trx 1 0 states * TCH/F TCH/F TCH/F TCH/F TCH/F TCH/F * + congestion-check expect-no-chan # Stable situation now only because TCH/F has min-free-slots set to 0 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22264 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ifeaec39ecb64b476ff1438cf987ba0403489c43b Gerrit-Change-Number: 22264 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 17 19:53:03 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 17 Jan 2021 19:53:03 +0000 Subject: Change in osmo-bsc[master]: hodec2: fix congestion resolution on dyn TS References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22265 ) Change subject: hodec2: fix congestion resolution on dyn TS ...................................................................... hodec2: fix congestion resolution on dyn TS For handover algorithm 2, properly figure out what effects the target cell will see for the *other* TCH kind when a handover would occupy a dynamic timeslot. Before this, only TCH/F or TCH/H would be regarded at a time. This introduces detection of whether a dynamic timeslot would be occupied by a handover, and how losing one unused dynamic timeslot affects the congestion situation for the TCH kind that is not targeted by the handover. In other words, if a handover to TCH/F causes congestion in TCH/H because of a dynamic timeslot becoming occupied, the handover will not be performed. Before this, oscillation situations could occur. A subsequent patch will do the same for congestion balancing. Related: SYS#5297 Change-Id: I1536b60f03cb0aeb6ba14a72b518aec82fa572fe --- M src/osmo-bsc/handover_decision_2.c M tests/handover/test_dyn_ts_congestion_tch_f_vs_tch_h.ho_vty 2 files changed, 37 insertions(+), 20 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/65/22265/1 diff --git a/src/osmo-bsc/handover_decision_2.c b/src/osmo-bsc/handover_decision_2.c index 0362c9b..131a309 100644 --- a/src/osmo-bsc/handover_decision_2.c +++ b/src/osmo-bsc/handover_decision_2.c @@ -40,6 +40,7 @@ #include #include #include +#include #define LOGPHOBTS(bts, level, fmt, args...) \ LOGP(DHODEC, level, "(BTS %u) " fmt, bts->nr, ## args) @@ -118,6 +119,9 @@ int min_free_tchf; int free_tchh; int min_free_tchh; + /* Effects of occupying a dynamic timeslot: */ + int next_tchf_reduces_tchh; + int next_tchh_reduces_tchf; } target; }; @@ -637,11 +641,15 @@ /* the minimum free timeslots that are defined for this cell must * be maintained _after_ handover/assignment */ if (requirement & REQUIREMENT_A_TCHF) { - if (c->target.free_tchf - 1 >= c->target.min_free_tchf) + if (c->target.free_tchf - 1 >= c->target.min_free_tchf + && (!c->target.next_tchf_reduces_tchh + || c->target.free_tchh - c->target.next_tchf_reduces_tchh >= c->target.min_free_tchh)) requirement |= REQUIREMENT_B_TCHF; } if (requirement & REQUIREMENT_A_TCHH) { - if (c->target.free_tchh - 1 >= c->target.min_free_tchh) + if (c->target.free_tchh - 1 >= c->target.min_free_tchh + && (!c->target.next_tchh_reduces_tchf + || c->target.free_tchf - c->target.next_tchh_reduces_tchf >= c->target.min_free_tchf)) requirement |= REQUIREMENT_B_TCHH; } @@ -894,6 +902,8 @@ static void candidate_set_free_tch(struct ho_candidate *c) { + struct gsm_lchan *next_lchan; + c->current.free_tch = bts_count_free_ts(c->current.bts, c->current.lchan->ts->pchan_is); switch (c->current.lchan->ts->pchan_is) { case GSM_PCHAN_TCH_F: @@ -909,6 +919,21 @@ c->target.min_free_tchf = ho_get_hodec2_tchf_min_slots(c->target.bts->ho); c->target.free_tchh = bts_count_free_ts(c->target.bts, GSM_PCHAN_TCH_H); c->target.min_free_tchh = ho_get_hodec2_tchh_min_slots(c->target.bts->ho); + + /* Would the next TCH/F lchan convert a dynamic timeslot that currently counts for free TCH/H timeslots? */ + next_lchan = lchan_avail_by_type(c->target.bts, GSM_LCHAN_TCH_F); + if (next_lchan && next_lchan->ts->pchan_on_init == GSM_PCHAN_TCH_F_TCH_H_PDCH) + c->target.next_tchf_reduces_tchh = 2; + else + c->target.next_tchf_reduces_tchh = 0; + + /* Would the next TCH/H lchan convert a dynamic timeslot that currently counts for free TCH/F timeslots? */ + next_lchan = lchan_avail_by_type(c->target.bts, GSM_LCHAN_TCH_H); + if (next_lchan && next_lchan->ts->pchan_on_init == GSM_PCHAN_TCH_F_TCH_H_PDCH + && next_lchan->ts->pchan_is != GSM_PCHAN_TCH_H) + c->target.next_tchh_reduces_tchf = 1; + else + c->target.next_tchh_reduces_tchf = 0; } /* add candidate for re-assignment within the current cell */ diff --git a/tests/handover/test_dyn_ts_congestion_tch_f_vs_tch_h.ho_vty b/tests/handover/test_dyn_ts_congestion_tch_f_vs_tch_h.ho_vty index bc2c884..c5890a5 100644 --- a/tests/handover/test_dyn_ts_congestion_tch_f_vs_tch_h.ho_vty +++ b/tests/handover/test_dyn_ts_congestion_tch_f_vs_tch_h.ho_vty @@ -20,12 +20,8 @@ expect-no-chan meas-rep lchan 0 0 1 0 rxlev 20 rxqual 0 ta 0 neighbors 40 -# FAIL: should not handover because that results in congestion on TCH/H in bts 1 -expect-ho from lchan 0 0 1 0 to lchan 1 0 5 0 - -expect-ts-use trx 0 0 states * - - - pdch pdch pdch * -expect-ts-use trx 1 0 states * TCH/F TCH/F TCH/F TCH/HH TCH/F pdch * - +# no handover because that results in congestion on TCH/H in bts 1 +expect-no-chan ### @@ -34,11 +30,9 @@ meas-rep lchan * * * * rxlev 40 rxqual 0 ta 0 neighbors 30 congestion-check -# FAIL: really weird: handover one TCH/H to the same cell to TCH/F, taking up another dyn TS. -# TCH/H congestion hence actually gets worse. -expect-ho from lchan 1 0 4 1 to lchan 1 0 6 0 -expect-ts-use trx 0 0 states * - - - pdch pdch pdch * -expect-ts-use trx 1 0 states * TCH/F TCH/F TCH/F TCH/H- TCH/F TCH/F * +expect-ho from lchan 1 0 4 1 to lchan 0 0 4 0 +expect-ts-use trx 0 0 states * - - - TCH/H- pdch pdch * +expect-ts-use trx 1 0 states * TCH/F TCH/F TCH/F TCH/H- TCH/F pdch * ### @@ -65,12 +59,9 @@ expect-no-chan meas-rep lchan 0 * * * rxlev 30 rxqual 0 ta 0 neighbors 40 -# FAIL: back to bts 1 because of rxlev, plus moving TCH/H to TCH/F!? -expect-ho from lchan 0 0 4 0 to lchan 1 0 4 0 - -expect-ts-use trx 0 0 states * - - - pdch pdch pdch * -expect-ts-use trx 1 0 states * TCH/F TCH/F TCH/F TCH/F TCH/F TCH/F * - +# no HO because the target is congested on TCH/H. Moving to TCH/F would also +# reduce TCH/H lchans because it would convert another dyn TS. +expect-no-chan ### @@ -78,5 +69,6 @@ set-ts-use trx 1 0 states * TCH/F TCH/F TCH/F TCH/F TCH/F TCH/F * congestion-check +# FAIL: TCH/F occupy dynamic timeslots -- should hand over to bts 0 to free a +# dyn TS and reduce TCH/H congestion. expect-no-chan -# Stable situation now only because TCH/F has min-free-slots set to 0 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22265 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I1536b60f03cb0aeb6ba14a72b518aec82fa572fe Gerrit-Change-Number: 22265 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 17 19:53:03 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 17 Jan 2021 19:53:03 +0000 Subject: Change in osmo-bsc[master]: add test_dyn_ts_congestion_tch_f_vs_tch_h_2.ho_vty References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22266 ) Change subject: add test_dyn_ts_congestion_tch_f_vs_tch_h_2.ho_vty ...................................................................... add test_dyn_ts_congestion_tch_f_vs_tch_h_2.ho_vty Change-Id: Ib11d10f35f72a3dff65bb0c5e185fdda602ccd63 --- M tests/handover/handover_tests.ok A tests/handover/test_dyn_ts_congestion_tch_f_vs_tch_h_2.ho_vty 2 files changed, 35 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/66/22266/1 diff --git a/tests/handover/handover_tests.ok b/tests/handover/handover_tests.ok index f9adca9..e1e35a9 100644 --- a/tests/handover/handover_tests.ok +++ b/tests/handover/handover_tests.ok @@ -18,6 +18,7 @@ pass test_disabled_ho_and_as.ho_vty pass test_dyn_ts_amr_tch_f_to_h_congestion_assignment.ho_vty pass test_dyn_ts_congestion_tch_f_vs_tch_h.ho_vty +pass test_dyn_ts_congestion_tch_f_vs_tch_h_2.ho_vty pass test_dyn_ts_favor_half_used_tch_h_as_target.ho_vty pass test_dyn_ts_favor_moving_half_used_tch_h.ho_vty pass test_ho_to_better_cell.ho_vty diff --git a/tests/handover/test_dyn_ts_congestion_tch_f_vs_tch_h_2.ho_vty b/tests/handover/test_dyn_ts_congestion_tch_f_vs_tch_h_2.ho_vty new file mode 100644 index 0000000..ef71d3e --- /dev/null +++ b/tests/handover/test_dyn_ts_congestion_tch_f_vs_tch_h_2.ho_vty @@ -0,0 +1,34 @@ +# If a handover from one TCH kind to the other occupies a dynamic timeslot, +# also adhere to congestion constraints of the other TCH kind, since taking up +# a dyn TS may reduce the available slot count for both kinds of TCH. + +create-bts trx-count 1 timeslots c+s4 TCH/F TCH/F TCH/F dyn dyn dyn PDCH +create-bts trx-count 1 timeslots c+s4 TCH/F TCH/F TCH/F dyn dyn dyn PDCH + +# A TCH/H has better rxlev at a neighbor, and the neighbor's TCH/H slots would +# not become congested. But taking up a neighbor's dynamic timeslot for TCH/H +# would reduce the TCH/F availability to cause congestion on TCH/F. No HO. + +network + handover2 min-free-slots tch/f 2 + handover2 min-free-slots tch/h 2 + +set-ts-use trx 0 0 states * - - - TCH/H- pdch pdch * +set-ts-use trx 1 0 states * TCH/F TCH/F TCH/F TCH/HH pdch pdch * + +meas-rep lchan * * * * rxlev 40 rxqual 0 ta 0 neighbors 30 +expect-no-chan + +meas-rep lchan 0 0 4 0 rxlev 20 rxqual 0 ta 0 neighbors 40 +# no handover because that results in congestion on TCH/F in bts 1 +expect-no-chan + + +# Now the same situation, except there already is a half occupied TCH/H, hence an added TCH/H would not change the TCH/F +# situation. The handover is performed. + +set-ts-use trx 0 0 states * - - - TCH/H- pdch pdch * +set-ts-use trx 1 0 states * TCH/F TCH/F TCH/F TCH/HH TCH/H- pdch * + +meas-rep lchan 0 0 4 0 rxlev 20 rxqual 0 ta 0 neighbors 40 +expect-ho from lchan 0 0 4 0 to lchan 1 0 5 1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22266 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ib11d10f35f72a3dff65bb0c5e185fdda602ccd63 Gerrit-Change-Number: 22266 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 17 19:53:03 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 17 Jan 2021 19:53:03 +0000 Subject: Change in osmo-bsc[master]: lchan_avail(): omit logging for handover decision 2 References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22267 ) Change subject: lchan_avail(): omit logging for handover decision 2 ...................................................................... lchan_avail(): omit logging for handover decision 2 Add bool log argument to lchan_avail_by_type() and omit logging when passed as false. From handover_decision_2.c, pass 'log' as false, from all other callers pass true, i.e. for unchanged behavior. Rationale: Usually, we use lchan_avail_by_type() to select a new lchan to initiate actual service. For that, it is interesting to see how osmo-bsc decides which lchan will be used. For handover decision 2, we since recently call lchan_avail_by_type() for each and every handover candidate, to determine whether it will occupy a dynamic timeslot or not (to know whether we would congest the other TCH kind). So this happens for each permutation of source lchan and target cell. That produces a lot of logging, out of proportion of being useful to the maintainer. Change-Id: Ia403f8fc853ca9ea9e81f7a7395df6b23845ebed --- M include/osmocom/bsc/lchan_select.h M src/osmo-bsc/abis_rsl.c M src/osmo-bsc/handover_decision_2.c M src/osmo-bsc/lchan_select.c 4 files changed, 25 insertions(+), 23 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/67/22267/1 diff --git a/include/osmocom/bsc/lchan_select.h b/include/osmocom/bsc/lchan_select.h index 41e7015..11f63b0 100644 --- a/include/osmocom/bsc/lchan_select.h +++ b/include/osmocom/bsc/lchan_select.h @@ -4,4 +4,4 @@ struct gsm_lchan *lchan_select_by_type(struct gsm_bts *bts, enum gsm_chan_t type); struct gsm_lchan *lchan_select_by_chan_mode(struct gsm_bts *bts, enum gsm48_chan_mode chan_mode, enum channel_rate chan_rate); -struct gsm_lchan *lchan_avail_by_type(struct gsm_bts *bts, enum gsm_chan_t type); +struct gsm_lchan *lchan_avail_by_type(struct gsm_bts *bts, enum gsm_chan_t type, bool log); diff --git a/src/osmo-bsc/abis_rsl.c b/src/osmo-bsc/abis_rsl.c index 2142219..ae9a432 100644 --- a/src/osmo-bsc/abis_rsl.c +++ b/src/osmo-bsc/abis_rsl.c @@ -1576,12 +1576,12 @@ /* First check the situation on the BTS, if we have TCH/H or TCH/F resources available for another (EMERGENCY) * call. If yes, then no (further) action has to be carried out. */ - if (lchan_avail_by_type(rqd->bts, GSM_LCHAN_TCH_F)) { + if (lchan_avail_by_type(rqd->bts, GSM_LCHAN_TCH_F, true)) { LOG_BTS(rqd->bts, DRSL, LOGL_NOTICE, "CHAN RQD/EMERGENCY-PRIORITY: at least one TCH/F is (now) available!\n"); return false; } - if (lchan_avail_by_type(rqd->bts, GSM_LCHAN_TCH_H)) { + if (lchan_avail_by_type(rqd->bts, GSM_LCHAN_TCH_H, true)) { LOG_BTS(rqd->bts, DRSL, LOGL_NOTICE, "CHAN RQD/EMERGENCY-PRIORITY: at least one TCH/H is (now) available!\n"); return false; diff --git a/src/osmo-bsc/handover_decision_2.c b/src/osmo-bsc/handover_decision_2.c index 131a309..379970f 100644 --- a/src/osmo-bsc/handover_decision_2.c +++ b/src/osmo-bsc/handover_decision_2.c @@ -921,14 +921,14 @@ c->target.min_free_tchh = ho_get_hodec2_tchh_min_slots(c->target.bts->ho); /* Would the next TCH/F lchan convert a dynamic timeslot that currently counts for free TCH/H timeslots? */ - next_lchan = lchan_avail_by_type(c->target.bts, GSM_LCHAN_TCH_F); + next_lchan = lchan_avail_by_type(c->target.bts, GSM_LCHAN_TCH_F, false); if (next_lchan && next_lchan->ts->pchan_on_init == GSM_PCHAN_TCH_F_TCH_H_PDCH) c->target.next_tchf_reduces_tchh = 2; else c->target.next_tchf_reduces_tchh = 0; /* Would the next TCH/H lchan convert a dynamic timeslot that currently counts for free TCH/F timeslots? */ - next_lchan = lchan_avail_by_type(c->target.bts, GSM_LCHAN_TCH_H); + next_lchan = lchan_avail_by_type(c->target.bts, GSM_LCHAN_TCH_H, false); if (next_lchan && next_lchan->ts->pchan_on_init == GSM_PCHAN_TCH_F_TCH_H_PDCH && next_lchan->ts->pchan_is != GSM_PCHAN_TCH_H) c->target.next_tchh_reduces_tchf = 1; diff --git a/src/osmo-bsc/lchan_select.c b/src/osmo-bsc/lchan_select.c index 64f4939..626520c 100644 --- a/src/osmo-bsc/lchan_select.c +++ b/src/osmo-bsc/lchan_select.c @@ -32,13 +32,14 @@ static struct gsm_lchan * _lc_find_trx(struct gsm_bts_trx *trx, enum gsm_phys_chan_config pchan, - enum gsm_phys_chan_config as_pchan, bool allow_pchan_switch) + enum gsm_phys_chan_config as_pchan, bool allow_pchan_switch, bool log) { struct gsm_lchan *lchan; struct gsm_bts_trx_ts *ts; int j, start, stop, dir; #define LOGPLCHANALLOC(fmt, args...) \ + if (log) \ LOGP(DRLL, LOGL_DEBUG, "looking for lchan %s%s%s%s: " fmt, \ gsm_pchan_name(pchan), \ pchan == as_pchan ? "" : " as ", \ @@ -103,7 +104,7 @@ static struct gsm_lchan * _lc_dyn_find_bts(struct gsm_bts *bts, enum gsm_phys_chan_config pchan, - enum gsm_phys_chan_config dyn_as_pchan) + enum gsm_phys_chan_config dyn_as_pchan, bool log) { struct gsm_bts_trx *trx; struct gsm_lchan *lc; @@ -119,13 +120,13 @@ for (allow_pchan_switch = 0; allow_pchan_switch <= (try_pchan_switch ? 1 : 0); allow_pchan_switch++) { if (bts->chan_alloc_reverse) { llist_for_each_entry_reverse(trx, &bts->trx_list, list) { - lc = _lc_find_trx(trx, pchan, dyn_as_pchan, (bool)allow_pchan_switch); + lc = _lc_find_trx(trx, pchan, dyn_as_pchan, (bool)allow_pchan_switch, log); if (lc) return lc; } } else { llist_for_each_entry(trx, &bts->trx_list, list) { - lc = _lc_find_trx(trx, pchan, dyn_as_pchan, (bool)allow_pchan_switch); + lc = _lc_find_trx(trx, pchan, dyn_as_pchan, (bool)allow_pchan_switch, log); if (lc) return lc; } @@ -136,9 +137,9 @@ } static struct gsm_lchan * -_lc_find_bts(struct gsm_bts *bts, enum gsm_phys_chan_config pchan) +_lc_find_bts(struct gsm_bts *bts, enum gsm_phys_chan_config pchan, bool log) { - return _lc_dyn_find_bts(bts, pchan, pchan); + return _lc_dyn_find_bts(bts, pchan, pchan, log); } struct gsm_lchan *lchan_select_by_chan_mode(struct gsm_bts *bts, @@ -175,12 +176,13 @@ return lchan_select_by_type(bts, type); } -struct gsm_lchan *lchan_avail_by_type(struct gsm_bts *bts, enum gsm_chan_t type) +struct gsm_lchan *lchan_avail_by_type(struct gsm_bts *bts, enum gsm_chan_t type, bool log) { struct gsm_lchan *lchan = NULL; enum gsm_phys_chan_config first, first_cbch, second, second_cbch; - LOG_BTS(bts, DRLL, LOGL_DEBUG, "lchan_avail_by_type(%s)\n", gsm_lchant_name(type)); + if (log) + LOG_BTS(bts, DRLL, LOGL_DEBUG, "lchan_avail_by_type(%s)\n", gsm_lchant_name(type)); switch (type) { case GSM_LCHAN_SDCCH: @@ -196,20 +198,20 @@ second_cbch = GSM_PCHAN_SDCCH8_SACCH8C_CBCH; } - lchan = _lc_find_bts(bts, first); + lchan = _lc_find_bts(bts, first, log); if (lchan == NULL) - lchan = _lc_find_bts(bts, first_cbch); + lchan = _lc_find_bts(bts, first_cbch, log); if (lchan == NULL) - lchan = _lc_find_bts(bts, second); + lchan = _lc_find_bts(bts, second, log); if (lchan == NULL) - lchan = _lc_find_bts(bts, second_cbch); + lchan = _lc_find_bts(bts, second_cbch, log); break; case GSM_LCHAN_TCH_F: - lchan = _lc_find_bts(bts, GSM_PCHAN_TCH_F); + lchan = _lc_find_bts(bts, GSM_PCHAN_TCH_F, log); /* If we don't have TCH/F available, try dynamic TCH/F_PDCH */ if (!lchan) { lchan = _lc_dyn_find_bts(bts, GSM_PCHAN_TCH_F_PDCH, - GSM_PCHAN_TCH_F); + GSM_PCHAN_TCH_F, log); /* TCH/F_PDCH used as TCH/F -- here, type is already * set to GSM_LCHAN_TCH_F, but for clarity's sake... */ if (lchan) @@ -220,19 +222,19 @@ if (!lchan && bts->network->dyn_ts_allow_tch_f) { lchan = _lc_dyn_find_bts(bts, GSM_PCHAN_TCH_F_TCH_H_PDCH, - GSM_PCHAN_TCH_F); + GSM_PCHAN_TCH_F, log); if (lchan) type = GSM_LCHAN_TCH_F; } break; case GSM_LCHAN_TCH_H: - lchan = _lc_find_bts(bts, GSM_PCHAN_TCH_H); + lchan = _lc_find_bts(bts, GSM_PCHAN_TCH_H, log); /* No dedicated TCH/x available -- try fully dynamic * TCH/F_TCH/H_PDCH */ if (!lchan) { lchan = _lc_dyn_find_bts(bts, GSM_PCHAN_TCH_F_TCH_H_PDCH, - GSM_PCHAN_TCH_H); + GSM_PCHAN_TCH_H, log); if (lchan) type = GSM_LCHAN_TCH_H; } @@ -251,7 +253,7 @@ { struct gsm_lchan *lchan = NULL; - lchan = lchan_avail_by_type(bts, type); + lchan = lchan_avail_by_type(bts, type, true); LOG_BTS(bts, DRLL, LOGL_DEBUG, "lchan_select_by_type(%s)\n", gsm_lchant_name(type)); -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22267 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ia403f8fc853ca9ea9e81f7a7395df6b23845ebed Gerrit-Change-Number: 22267 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 17 19:53:04 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 17 Jan 2021 19:53:04 +0000 Subject: Change in osmo-bsc[master]: show bug: add test_dyn_ts_balance_congestion.ho_vty References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22268 ) Change subject: show bug: add test_dyn_ts_balance_congestion.ho_vty ...................................................................... show bug: add test_dyn_ts_balance_congestion.ho_vty Related: SYS#5298 Change-Id: I34471fbd490a95253bd0709308a42cde2af6481c --- A tests/handover/test_dyn_ts_balance_congestion.ho_vty 1 file changed, 31 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/68/22268/1 diff --git a/tests/handover/test_dyn_ts_balance_congestion.ho_vty b/tests/handover/test_dyn_ts_balance_congestion.ho_vty new file mode 100644 index 0000000..ad9d6a5 --- /dev/null +++ b/tests/handover/test_dyn_ts_balance_congestion.ho_vty @@ -0,0 +1,31 @@ +# To balance congestion, consider cross effects between TCH/F and TCH/H when occupying a dynamic timeslot in the target: +# when balancing of TCH/F congestion would take up a dyn TS in the target, reducing TCH/H availability, the handover +# should not cause worse TCH/H congestion than in the source cell. + +create-bts trx-count 1 timeslots c+s4 TCH/F TCH/F TCH/F TCH/F TCH/F TCH/F PDCH +create-bts trx-count 1 timeslots c+s4 TCH/F TCH/F TCH/F TCH/F dyn dyn PDCH + +# for this test, avoid changing a TCH/F to a TCH/H by using a non-AMR codec +codec tch/f FR + +network + bts 0 + handover2 min-free-slots tch/f 2 + bts 1 + handover2 min-free-slots tch/f 4 + handover2 min-free-slots tch/h 4 + +set-ts-use trx 0 0 states * TCH/F TCH/F TCH/F TCH/F TCH/F TCH/F * +set-ts-use trx 1 0 states * TCH/F TCH/F TCH/F TCH/F pdch pdch * + +meas-rep lchan * * * * rxlev 40 rxqual 0 ta 0 neighbors 30 +expect-no-chan + +# bts 0 is full for TCH/F. Looking at TCH/F, by target_overbooked_after_ho==75% < current_overbooked_before_ho==100%, a +# congestion balancing to bts 1 would be performed. But the TCH/F on the target cell would occupy a dynamic timeslot. +# That would reduce the TCH/H free slots by two and cause TCH/H being overbooked by 50%. On the source cell, TCH/H is +# not congested. No handover is performed because 50% in the target is more congestion for TCH/H than 0% in the source +# cell. +congestion-check +# FAIL: should not increase TCH/H congestion by occupying a dyn TS +expect-ho from lchan 0 0 1 0 to lchan 1 0 5 0 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22268 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I34471fbd490a95253bd0709308a42cde2af6481c Gerrit-Change-Number: 22268 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 17 19:53:04 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 17 Jan 2021 19:53:04 +0000 Subject: Change in osmo-bsc[master]: hodec2: fix congestion balancing on dyn TS References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22269 ) Change subject: hodec2: fix congestion balancing on dyn TS ...................................................................... hodec2: fix congestion balancing on dyn TS When balancing congestion, not only look at TCH/F or TCH/H separately, but also to take into account the effects on the other TCH kind from using/freeing dynamic TS. Related: OS#5298 Change-Id: I433df6f343650f9056b1bab926bc19ac1d867ad5 --- M src/osmo-bsc/handover_decision_2.c M tests/handover/test_dyn_ts_balance_congestion.ho_vty 2 files changed, 106 insertions(+), 17 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/69/22269/1 diff --git a/src/osmo-bsc/handover_decision_2.c b/src/osmo-bsc/handover_decision_2.c index 379970f..c4144a2 100644 --- a/src/osmo-bsc/handover_decision_2.c +++ b/src/osmo-bsc/handover_decision_2.c @@ -106,8 +106,17 @@ struct gsm_lchan *lchan; struct gsm_bts *bts; int rxlev; + /* free/min-free for the current TCH kind, same as either free_tch_f or free_tch_h below */ int free_tch; int min_free_tch; + /* free/min-free for the two TCH kinds, to calculate F<->H cross effects for dynamic timeslots */ + int free_tchf; + int min_free_tchf; + int free_tchh; + int min_free_tchh; + /* Effects of freeing a dynamic timeslot: */ + int lchan_frees_tchf; + int lchan_frees_tchh; } current; struct { struct neighbor_ident_key nik; /* neighbor ARFCN+BSIC */ @@ -155,6 +164,17 @@ static void congestion_check_cb(void *arg); +static unsigned int ts_usage_count(struct gsm_bts_trx_ts *ts) +{ + struct gsm_lchan *lchan; + unsigned int count = 0; + ts_for_each_lchan(lchan, ts) { + if (lchan_state_is(lchan, LCHAN_ST_ESTABLISHED)) + count++; + } + return count; +} + /* This function gets called on ho2 init, whenever the congestion check interval is changed, and also * when the timer has fired to trigger again after the next congestion check timeout. */ static void reinit_congestion_timer(struct gsm_network *net) @@ -659,21 +679,75 @@ * congestion on the current cell, hence the - 1 on the target. */ current_overbooked = load_above_congestion(c->current.free_tch, c->current.min_free_tch); if (requirement & REQUIREMENT_A_TCHF) { + bool ok; int32_t target_overbooked = load_above_congestion(c->target.free_tchf - 1, c->target.min_free_tchf); LOGPHOLCHANTOBTS(c->current.lchan, c->target.bts, LOGL_DEBUG, "current overbooked = %s%%, TCH/F target overbooked after HO = %s%%\n", osmo_int_to_float_str_c(OTC_SELECT, current_overbooked, LOAD_PRECISION - 2), osmo_int_to_float_str_c(OTC_SELECT, target_overbooked, LOAD_PRECISION - 2)); - if (target_overbooked < current_overbooked) + ok = target_overbooked < current_overbooked; + /* Look at dynamic timeslot effects on TCH/H: */ + if (ok && c->target.next_tchf_reduces_tchh) { + /* Looking at the current TCH type and the target cell's TCH/F alone, congestion balancing + * should happen. However, what if the target TCH/F is a dynamic timeslot -- would that cause + * congestion on TCH/H above the current cell's TCH/H congestion? */ + int32_t current_tchh_overbooked = load_above_congestion(c->current.free_tchh, + c->current.min_free_tchh); + int32_t target_tchh_overbooked; + int target_free_tchh_after_ho = c->target.free_tchh - c->target.next_tchf_reduces_tchh; + /* If this is a re-assignment within the same cell, and if the current candidate would free a + * dynamic timeslot, then the target-overbooking after HO is reduced again by the freed dynamic + * TS. */ + if (c->current.bts == c->target.bts) + target_free_tchh_after_ho += c->current.lchan_frees_tchh; + target_tchh_overbooked = load_above_congestion(target_free_tchh_after_ho, + c->target.min_free_tchh); + LOGPHOLCHANTOBTS(c->current.lchan, c->target.bts, LOGL_DEBUG, + "dyn TS: current TCH/H overbooked = %s%%, TCH/H target overbooked after HO = %s%%\n", + osmo_int_to_float_str_c(OTC_SELECT, current_tchh_overbooked, LOAD_PRECISION - 2), + osmo_int_to_float_str_c(OTC_SELECT, target_tchh_overbooked, LOAD_PRECISION - 2)); + /* For the current TCH kind, a handover should only happen if things actually get better + * (condition is '<'). For dynamic timeslot cross effects TCH/F->TCH/H, it is fine to not make + * it worse. Hence the smaller-or-equal condition. */ + ok = target_tchh_overbooked <= current_tchh_overbooked; + } + if (ok) requirement |= REQUIREMENT_C_TCHF; } if (requirement & REQUIREMENT_A_TCHH) { + bool ok; int32_t target_overbooked = load_above_congestion(c->target.free_tchh - 1, c->target.min_free_tchh); LOGPHOLCHANTOBTS(c->current.lchan, c->target.bts, LOGL_DEBUG, "current overbooked = %s%%, TCH/H target overbooked after HO = %s%%\n", osmo_int_to_float_str_c(OTC_SELECT, current_overbooked, LOAD_PRECISION - 2), osmo_int_to_float_str_c(OTC_SELECT, target_overbooked, LOAD_PRECISION - 2)); - if (target_overbooked < current_overbooked) + ok = target_overbooked < current_overbooked; + /* Look at dynamic timeslot effects on TCH/F: */ + if (ok && c->target.next_tchh_reduces_tchf) { + /* Looking at the current TCH type and the target cell's TCH/H alone, congestion balancing + * should happen. However, what if the target TCH/H is a dynamic timeslot -- would that cause + * congestion on TCH/F above the current cell's TCH/F congestion? */ + int32_t current_tchf_overbooked = load_above_congestion(c->current.free_tchf, + c->current.min_free_tchf); + int32_t target_tchf_overbooked; + int target_free_tchf_after_ho = c->target.free_tchf - c->target.next_tchh_reduces_tchf; + /* If this is a re-assignment within the same cell, and if the current candidate would free a + * dynamic timeslot, then the target-overbooking after HO is reduced again by the freed dynamic + * TS. */ + if (c->current.bts == c->target.bts) + target_free_tchf_after_ho += c->current.lchan_frees_tchf; + target_tchf_overbooked = load_above_congestion(target_free_tchf_after_ho, + c->target.min_free_tchf); + LOGPHOLCHANTOBTS(c->current.lchan, c->target.bts, LOGL_DEBUG, + "dyn TS: current TCH/F overbooked = %s%%, TCH/F target overbooked after HO = %s%%\n", + osmo_int_to_float_str_c(OTC_SELECT, current_tchf_overbooked, LOAD_PRECISION - 2), + osmo_int_to_float_str_c(OTC_SELECT, target_tchf_overbooked, LOAD_PRECISION - 2)); + /* For the current TCH kind, a handover should only happen if things actually get better + * (condition is '<'). For dynamic timeslot cross effects TCH/H->TCH/F, it is fine to not make + * it worse. Hence the smaller-or-equal condition. */ + ok = target_tchf_overbooked <= current_tchf_overbooked; + } + if (ok) requirement |= REQUIREMENT_C_TCHH; } @@ -904,17 +978,37 @@ { struct gsm_lchan *next_lchan; - c->current.free_tch = bts_count_free_ts(c->current.bts, c->current.lchan->ts->pchan_is); + c->current.free_tchf = bts_count_free_ts(c->current.bts, GSM_PCHAN_TCH_F); + c->current.min_free_tchf = ho_get_hodec2_tchf_min_slots(c->current.bts->ho); + c->current.free_tchh = bts_count_free_ts(c->current.bts, GSM_PCHAN_TCH_H); + c->current.min_free_tchh = ho_get_hodec2_tchh_min_slots(c->current.bts->ho); switch (c->current.lchan->ts->pchan_is) { case GSM_PCHAN_TCH_F: - c->current.min_free_tch = ho_get_hodec2_tchf_min_slots(c->current.bts->ho); + c->current.free_tch = c->current.free_tchf; + c->current.min_free_tch = c->current.min_free_tchf; + c->current.lchan_frees_tchf = 1; + if (c->current.lchan->ts->pchan_on_init == GSM_PCHAN_TCH_F_TCH_H_PDCH) + c->current.lchan_frees_tchh = 2; + else + c->current.lchan_frees_tchh = 0; break; case GSM_PCHAN_TCH_H: - c->current.min_free_tch = ho_get_hodec2_tchh_min_slots(c->current.bts->ho); + c->current.free_tch = c->current.free_tchh; + c->current.min_free_tch = c->current.min_free_tchh; + c->current.lchan_frees_tchh = 1; + /* Freeing one of two TCH/H does not free a dyn TS and would not free a TCH/F. It has to be the last + * TCH/H of a dynamic timeslot that is freed to get a new TCH/F in the current cell from the handover. + * Hence the ts_usage_count() condition. */ + if (c->current.lchan->ts->pchan_on_init == GSM_PCHAN_TCH_F_TCH_H_PDCH + && ts_usage_count(c->current.lchan->ts) == 1) + c->current.lchan_frees_tchf = 1; + else + c->current.lchan_frees_tchf = 0; break; default: break; } + c->target.free_tchf = bts_count_free_ts(c->target.bts, GSM_PCHAN_TCH_F); c->target.min_free_tchf = ho_get_hodec2_tchf_min_slots(c->target.bts->ho); c->target.free_tchh = bts_count_free_ts(c->target.bts, GSM_PCHAN_TCH_H); @@ -1454,17 +1548,6 @@ || lchan->ts->pchan_on_init == GSM_PCHAN_TCH_F_PDCH; } -static unsigned int ts_usage_count(struct gsm_bts_trx_ts *ts) -{ - struct gsm_lchan *lchan; - unsigned int count = 0; - ts_for_each_lchan(lchan, ts) { - if (lchan_state_is(lchan, LCHAN_ST_ESTABLISHED)) - count++; - } - return count; -} - static bool is_upgrade_to_tchf(const struct ho_candidate *c, uint8_t for_requirement) { return c->current.lchan diff --git a/tests/handover/test_dyn_ts_balance_congestion.ho_vty b/tests/handover/test_dyn_ts_balance_congestion.ho_vty index ad9d6a5..2fa11b6 100644 --- a/tests/handover/test_dyn_ts_balance_congestion.ho_vty +++ b/tests/handover/test_dyn_ts_balance_congestion.ho_vty @@ -27,5 +27,11 @@ # not congested. No handover is performed because 50% in the target is more congestion for TCH/H than 0% in the source # cell. congestion-check -# FAIL: should not increase TCH/H congestion by occupying a dyn TS +expect-no-chan + +# If there is no constraint on TCH/H in the target cell, the handover does take place. +network + bts 1 + handover2 min-free-slots tch/h 2 +congestion-check expect-ho from lchan 0 0 1 0 to lchan 1 0 5 0 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22269 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I433df6f343650f9056b1bab926bc19ac1d867ad5 Gerrit-Change-Number: 22269 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 17 19:59:27 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 17 Jan 2021 19:59:27 +0000 Subject: Change in osmo-bsc[master]: show bug: add test_dyn_ts_balance_congestion.ho_vty In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bsc/+/22268 to look at the new patch set (#2). Change subject: show bug: add test_dyn_ts_balance_congestion.ho_vty ...................................................................... show bug: add test_dyn_ts_balance_congestion.ho_vty Related: SYS#5298 Change-Id: I34471fbd490a95253bd0709308a42cde2af6481c --- M tests/handover/handover_tests.ok A tests/handover/test_dyn_ts_balance_congestion.ho_vty 2 files changed, 32 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/68/22268/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22268 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I34471fbd490a95253bd0709308a42cde2af6481c Gerrit-Change-Number: 22268 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 17 21:43:23 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sun, 17 Jan 2021 21:43:23 +0000 Subject: Change in libosmocore[master]: test: gprs_ns2: don't leak the talloc context References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22270 ) Change subject: test: gprs_ns2: don't leak the talloc context ...................................................................... test: gprs_ns2: don't leak the talloc context Makes the address sanitizer happy Change-Id: Ibf926d8db88cdb403d29de5e666dfb71eefc7b72 --- M tests/gb/gprs_ns2_test.c 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/70/22270/1 diff --git a/tests/gb/gprs_ns2_test.c b/tests/gb/gprs_ns2_test.c index 86a0190..d53dc88 100644 --- a/tests/gb/gprs_ns2_test.c +++ b/tests/gb/gprs_ns2_test.c @@ -160,5 +160,6 @@ test_nse_transfer_cap(ctx); printf("===== NS2 protocol test END\n\n"); + talloc_free(ctx); exit(EXIT_SUCCESS); } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22270 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ibf926d8db88cdb403d29de5e666dfb71eefc7b72 Gerrit-Change-Number: 22270 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 17 21:43:24 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sun, 17 Jan 2021 21:43:24 +0000 Subject: Change in libosmocore[master]: test: gprs_ns2: correct implement free_bind() References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22271 ) Change subject: test: gprs_ns2: correct implement free_bind() ...................................................................... test: gprs_ns2: correct implement free_bind() free_bind() should free up all driver specific state but NOT the bind itself. Change-Id: Iac506734c93aca8be045ac13788d07d1bdc78eb3 --- M tests/gb/gprs_ns2_test.c 1 file changed, 7 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/71/22271/1 diff --git a/tests/gb/gprs_ns2_test.c b/tests/gb/gprs_ns2_test.c index d53dc88..b44b033 100644 --- a/tests/gb/gprs_ns2_test.c +++ b/tests/gb/gprs_ns2_test.c @@ -44,10 +44,16 @@ return 0; } +static void clear_pdus(struct gprs_ns2_vc_bind *bind) +{ + struct osmo_wqueue *queue = bind->priv; + osmo_wqueue_clear(queue); +} + void free_bind(struct gprs_ns2_vc_bind *bind) { OSMO_ASSERT(bind); - talloc_free(bind); + clear_pdus(bind); } struct gprs_ns2_vc_driver vc_driver_dummy = { -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22271 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Iac506734c93aca8be045ac13788d07d1bdc78eb3 Gerrit-Change-Number: 22271 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 17 21:43:24 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sun, 17 Jan 2021 21:43:24 +0000 Subject: Change in libosmocore[master]: test: gprs_ns2: free the nsi after each test References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22272 ) Change subject: test: gprs_ns2: free the nsi after each test ...................................................................... test: gprs_ns2: free the nsi after each test Change-Id: I700da48d7afe6b1a81484a0725faf0c56073446d --- M tests/gb/gprs_ns2_test.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/72/22272/1 diff --git a/tests/gb/gprs_ns2_test.c b/tests/gb/gprs_ns2_test.c index b44b033..d06089e 100644 --- a/tests/gb/gprs_ns2_test.c +++ b/tests/gb/gprs_ns2_test.c @@ -148,8 +148,8 @@ ns2_nse_notify_unblocked(nsvc[1], false); OSMO_ASSERT(ns2_count_transfer_cap(nse, 0) == 42 + 23); + gprs_ns2_free(nsi); printf("--- Finish NSE transfer cap\n"); - } int main(int argc, char **argv) -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22272 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I700da48d7afe6b1a81484a0725faf0c56073446d Gerrit-Change-Number: 22272 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 17 21:43:25 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sun, 17 Jan 2021 21:43:25 +0000 Subject: Change in libosmocore[master]: gprs_ns2: add assert on most bind calls References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22273 ) Change subject: gprs_ns2: add assert on most bind calls ...................................................................... gprs_ns2: add assert on most bind calls Add a OSMO_ASSERT to all bind calls which doesn't check if the bind is from the expected type. The only exception is rx and tx functions (hot path). Change-Id: Ia4f8932263c60618c7f0dfc32d50ba5a8d57602b --- M src/gb/gprs_ns2_fr.c M src/gb/gprs_ns2_udp.c 2 files changed, 21 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/73/22273/1 diff --git a/src/gb/gprs_ns2_fr.c b/src/gb/gprs_ns2_fr.c index 2c797f3..c897cbc 100644 --- a/src/gb/gprs_ns2_fr.c +++ b/src/gb/gprs_ns2_fr.c @@ -106,6 +106,7 @@ if (!nsvc->priv) return; + OSMO_ASSERT(gprs_ns2_is_fr_bind(nsvc->bind)); talloc_free(nsvc->priv); nsvc->priv = NULL; } @@ -137,6 +138,7 @@ { struct priv_bind *priv; + OSMO_ASSERT(gprs_ns2_is_fr_bind(bind)); if (!bind) return; @@ -158,6 +160,7 @@ if (!priv) return NULL; + OSMO_ASSERT(gprs_ns2_is_fr_bind(bind)); nsvc->priv = priv; priv->dlci = dlci; priv->dlc = osmo_fr_dlc_alloc(privb->link, dlci); @@ -180,6 +183,7 @@ struct gprs_ns2_vc *nsvc; struct priv_vc *vcpriv; + OSMO_ASSERT(gprs_ns2_is_fr_bind(bind)); if (!result) return -EINVAL; @@ -738,6 +742,7 @@ struct gprs_ns2_vc *nsvc = NULL; struct priv_vc *priv = NULL; + OSMO_ASSERT(gprs_ns2_is_fr_bind(bind)); nsvc = gprs_ns2_fr_nsvc_by_dlci(bind, dlci); if (nsvc) { goto err; @@ -777,7 +782,10 @@ bool created_nse = false; struct gprs_ns2_vc *nsvc = NULL; struct priv_vc *priv = NULL; - struct gprs_ns2_nse *nse = gprs_ns2_nse_by_nsei(bind->nsi, nsei); + struct gprs_ns2_nse *nse; + + OSMO_ASSERT(gprs_ns2_is_fr_bind(bind)); + nse = gprs_ns2_nse_by_nsei(bind->nsi, nsei); if (!nse) { nse = gprs_ns2_create_nse(bind->nsi, nsei, GPRS_NS2_LL_FR, NS2_DIALECT_STATIC_RESETBLOCK); if (!nse) @@ -823,8 +831,9 @@ uint16_t dlci) { struct gprs_ns2_vc *nsvc; - struct priv_vc *vcpriv; + struct priv_vc *vcpriv; + OSMO_ASSERT(gprs_ns2_is_fr_bind(bind)); llist_for_each_entry(nsvc, &bind->nsvc, blist) { vcpriv = nsvc->priv; diff --git a/src/gb/gprs_ns2_udp.c b/src/gb/gprs_ns2_udp.c index 370937f..2a2886a 100644 --- a/src/gb/gprs_ns2_udp.c +++ b/src/gb/gprs_ns2_udp.c @@ -63,6 +63,8 @@ if (!bind) return; + OSMO_ASSERT(gprs_ns2_is_ip_bind(bind)); + priv = bind->priv; osmo_fd_close(&priv->fd); @@ -74,6 +76,7 @@ if (!nsvc->priv) return; + OSMO_ASSERT(gprs_ns2_is_ip_bind(nsvc->bind)); talloc_free(nsvc->priv); nsvc->priv = NULL; } @@ -116,6 +119,8 @@ struct gprs_ns2_vc *nsvc; struct priv_vc *vcpriv; + OSMO_ASSERT(gprs_ns2_is_ip_bind(bind)); + llist_for_each_entry(nsvc, &bind->nsvc, blist) { vcpriv = nsvc->priv; if (vcpriv->remote.u.sa.sa_family != saddr->u.sa.sa_family) @@ -277,7 +282,7 @@ const struct osmo_sockaddr *local; OSMO_ASSERT(nsi); - OSMO_ASSERT(sockaddr); + OSMO_ASSERT(sockaddr); llist_for_each_entry(bind, &nsi->binding, list) { if (!gprs_ns2_is_ip_bind(bind)) @@ -395,6 +400,8 @@ struct priv_vc *priv; enum gprs_ns2_vc_mode vc_mode; + OSMO_ASSERT(gprs_ns2_is_ip_bind(bind)); + vc_mode = gprs_ns2_dialect_to_vc_mode(nse->dialect); if ((int) vc_mode == -1) { LOGP(DLNS, LOGL_ERROR, "Can not derive vc mode from dialect %d. Maybe libosmocore is too old.\n", @@ -486,6 +493,7 @@ const struct osmo_sockaddr *gprs_ns2_ip_bind_sockaddr(struct gprs_ns2_vc_bind *bind) { struct priv_bind *priv; + OSMO_ASSERT(gprs_ns2_is_ip_bind(bind)); priv = bind->priv; return &priv->addr; @@ -503,6 +511,7 @@ struct priv_bind *priv; int rc = 0; + OSMO_ASSERT(gprs_ns2_is_ip_bind(bind)); priv = bind->priv; if (dscp != priv->dscp) { -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22273 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia4f8932263c60618c7f0dfc32d50ba5a8d57602b Gerrit-Change-Number: 22273 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 17 21:43:25 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sun, 17 Jan 2021 21:43:25 +0000 Subject: Change in libosmocore[master]: gprs_ns2: allow to use free_vc() with NULL References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22274 ) Change subject: gprs_ns2: allow to use free_vc() with NULL ...................................................................... gprs_ns2: allow to use free_vc() with NULL Usually talloc_free() and other free functions in osmocom allows to be called with NULL which is then ignored. Change-Id: If7b0c6916a29d4611d0a40c388414076eb83e6b5 --- M src/gb/gprs_ns2_fr.c M src/gb/gprs_ns2_udp.c 2 files changed, 5 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/74/22274/1 diff --git a/src/gb/gprs_ns2_fr.c b/src/gb/gprs_ns2_fr.c index c897cbc..746ed62 100644 --- a/src/gb/gprs_ns2_fr.c +++ b/src/gb/gprs_ns2_fr.c @@ -101,7 +101,8 @@ static void free_vc(struct gprs_ns2_vc *nsvc) { - OSMO_ASSERT(nsvc); + if (!nsvc) + return; if (!nsvc->priv) return; diff --git a/src/gb/gprs_ns2_udp.c b/src/gb/gprs_ns2_udp.c index 2a2886a..02a957b 100644 --- a/src/gb/gprs_ns2_udp.c +++ b/src/gb/gprs_ns2_udp.c @@ -73,6 +73,9 @@ static void free_vc(struct gprs_ns2_vc *nsvc) { + if (!nsvc) + return; + if (!nsvc->priv) return; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22274 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If7b0c6916a29d4611d0a40c388414076eb83e6b5 Gerrit-Change-Number: 22274 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 17 22:01:35 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sun, 17 Jan 2021 22:01:35 +0000 Subject: Change in libosmocore[master]: implement BLOCK/UNBLOCK of a NSVC by vty In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22210 ) Change subject: implement BLOCK/UNBLOCK of a NSVC by vty ...................................................................... Patch Set 5: This change is ready for review. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22210 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic0ce3c5fabc8644cc1ee71a8f6dd783fadf7b84d Gerrit-Change-Number: 22210 Gerrit-PatchSet: 5 Gerrit-Owner: lynxis lazus Gerrit-Assignee: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-CC: daniel Gerrit-Comment-Date: Sun, 17 Jan 2021 22:01:35 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 17 22:02:21 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sun, 17 Jan 2021 22:02:21 +0000 Subject: Change in libosmocore[master]: gprs_ns2: implement BLOCK/UNBLOCK of a NSVC by vty In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22210 to look at the new patch set (#6). Change subject: gprs_ns2: implement BLOCK/UNBLOCK of a NSVC by vty ...................................................................... gprs_ns2: implement BLOCK/UNBLOCK of a NSVC by vty The vty should be able to block or unblock a specific NSVC. Further more this case is special for the UNITDATA as those can be still received until the other side response to the BLOCK PDU. Related: OS#4939 Change-Id: Ic0ce3c5fabc8644cc1ee71a8f6dd783fadf7b84d --- M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_vc_fsm.c M src/gb/gprs_ns2_vty2.c M tests/gb/gprs_ns2_test.c M tests/gb/gprs_ns2_test.ok 5 files changed, 188 insertions(+), 9 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/10/22210/6 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22210 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic0ce3c5fabc8644cc1ee71a8f6dd783fadf7b84d Gerrit-Change-Number: 22210 Gerrit-PatchSet: 6 Gerrit-Owner: lynxis lazus Gerrit-Assignee: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-CC: daniel Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 17 22:02:21 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sun, 17 Jan 2021 22:02:21 +0000 Subject: Change in libosmocore[master]: gprs_ns2: add assert on most bind calls In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22273 to look at the new patch set (#2). Change subject: gprs_ns2: add assert on most bind calls ...................................................................... gprs_ns2: add assert on most bind calls Add a OSMO_ASSERT to all bind calls which doesn't check if the bind is from the expected type. The only exception is rx and tx functions (hot path). Change-Id: Ia4f8932263c60618c7f0dfc32d50ba5a8d57602b --- M src/gb/gprs_ns2_fr.c M src/gb/gprs_ns2_udp.c 2 files changed, 21 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/73/22273/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22273 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia4f8932263c60618c7f0dfc32d50ba5a8d57602b Gerrit-Change-Number: 22273 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 17 22:02:21 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sun, 17 Jan 2021 22:02:21 +0000 Subject: Change in libosmocore[master]: gprs_ns2: allow to use free_vc() with NULL In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22274 to look at the new patch set (#2). Change subject: gprs_ns2: allow to use free_vc() with NULL ...................................................................... gprs_ns2: allow to use free_vc() with NULL Usually talloc_free() and other free functions in osmocom allows to be called with NULL which is then ignored. Change-Id: If7b0c6916a29d4611d0a40c388414076eb83e6b5 --- M src/gb/gprs_ns2_fr.c M src/gb/gprs_ns2_udp.c 2 files changed, 5 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/74/22274/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22274 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If7b0c6916a29d4611d0a40c388414076eb83e6b5 Gerrit-Change-Number: 22274 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Mon Jan 18 01:38:57 2021 From: admin at opensuse.org (OBS Notification) Date: Mon, 18 Jan 2021 01:38:57 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.10/x86_64 In-Reply-To: References: Message-ID: <6004e6b9aa71a_6532aec7c1d860018898fd@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/xUbuntu_20.10/x86_64 Package network:osmocom:nightly/simtrace2 failed to build in xUbuntu_20.10/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 129s] [COMPILING apps/dfu/main.c] [ 129s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 129s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 129s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 129s] Memory region Used Size Region Size %age Used [ 129s] rom: 16580 B 16 KB 101.20% [ 129s] ram: 11672 B 48 KB 23.75/usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 129s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 129s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 129s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 129s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 129s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 129s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 196 bytes [ 129s] collect2: error: ld returned 1 exit status [ 129s] % [ 129s] make[2]: *** [Makefile:234: flash] Error 1 [ 129s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 129s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 129s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 129s] dh_auto_build: error: make -j1 returned exit code 2 [ 129s] make: *** [debian/rules:16: build] Error 25 [ 129s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 129s] ### VM INTERACTION START ### [ 133s] [ 121.837007] sysrq: Power Off [ 133s] [ 121.840268] reboot: Power down [ 133s] ### VM INTERACTION END ### [ 133s] [ 133s] old-atreju3 failed "build simtrace2_0.7.0.69.aadd.dsc" at Mon Jan 18 01:38:55 UTC 2021. [ 133s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jan 18 01:39:49 2021 From: admin at opensuse.org (OBS Notification) Date: Mon, 18 Jan 2021 01:39:49 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <6004e6f4386c8_6532aec7c1d860018902f@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/xUbuntu_20.04/x86_64 Package network:osmocom:nightly/simtrace2 failed to build in xUbuntu_20.04/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 155s] [COMPILING libboard/qmod/source/wwan_perst.c] [ 155s] [COMPILING libboard/qmod/source/card_pres.c] [ 155s] [COMPILING libboard/qmod/source/wwan_led.c] [ 155s] [COMPILING libboard/qmod/source/i2c.c] [ 156s] [COMPILING libboard/qmod/source/board_qmod.c] [ 156s] [COMPILING apps/dfu/main.c] [ 156s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 156s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 156s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 156s] Memory region Used Size Region Size %age Used [ 156s] rom: 16588 B 16 KB 101.25% [ 156s] ram: 11672 B 48 KB 23.75/usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 156s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 204 bytes [ 156s] collect2: error: ld returned 1 exit status [ 156s] % [ 156s] make[2]: *** [Makefile:234: flash] Error 1 [ 156s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 156s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 156s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 156s] dh_auto_build: error: make -j1 returned exit code 2 [ 156s] make: *** [debian/rules:16: build] Error 25 [ 156s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 156s] ### VM INTERACTION START ### [ 160s] [ 144.412395] sysrq: Power Off [ 160s] [ 144.416095] reboot: Power down [ 160s] ### VM INTERACTION END ### [ 160s] [ 160s] cloud117 failed "build simtrace2_0.7.0.69.aadd.dsc" at Mon Jan 18 01:39:38 UTC 2021. [ 160s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Mon Jan 18 09:35:22 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 18 Jan 2021 09:35:22 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Add tests for RADIO-STATUS with TMSI and IMSI instead of TLLI In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22250 ) Change subject: gbproxy: Add tests for RADIO-STATUS with TMSI and IMSI instead of TLLI ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22250 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ib3b052a12227a8f55cf063e5168b56f97b9a8f9b Gerrit-Change-Number: 22250 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 09:35:22 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 09:44:44 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 18 Jan 2021 09:44:44 +0000 Subject: Change in libosmocore[master]: gprs_ns2: when calling nsvc_force_unconf for a dynamic NSE drop the NSE. In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22200 ) Change subject: gprs_ns2: when calling nsvc_force_unconf for a dynamic NSE drop the NSE. ...................................................................... Patch Set 5: Code-Review-1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22200 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I0a4f35c974c8c3b79c48f2f56170722c95254332 Gerrit-Change-Number: 22200 Gerrit-PatchSet: 5 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 09:44:44 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 09:47:06 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 18 Jan 2021 09:47:06 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Add test cases for STATUS handling In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22257 ) Change subject: gbproxy: Add test cases for STATUS handling ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22257 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If2ddd158346a3da340f1c673354196f3872c4f67 Gerrit-Change-Number: 22257 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 09:47:06 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 09:47:55 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 18 Jan 2021 09:47:55 +0000 Subject: Change in libosmocore[master]: gprs_ns2: when calling nsvc_force_unconf for a dynamic NSE drop the NSE. In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, pespin, daniel, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22200 to look at the new patch set (#6). Change subject: gprs_ns2: when calling nsvc_force_unconf for a dynamic NSE drop the NSE. ...................................................................... gprs_ns2: when calling nsvc_force_unconf for a dynamic NSE drop the NSE. The vty command is used for test cases to reset NSE state. So dynamic NSE shouldn't present. Related: SYS#5208 Change-Id: I0a4f35c974c8c3b79c48f2f56170722c95254332 --- M src/gb/gprs_ns2_vty2.c 1 file changed, 3 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/00/22200/6 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22200 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I0a4f35c974c8c3b79c48f2f56170722c95254332 Gerrit-Change-Number: 22200 Gerrit-PatchSet: 6 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 09:47:55 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 18 Jan 2021 09:47:55 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: clear local and remote entries when SNS failed In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, pespin, daniel, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22206 to look at the new patch set (#2). Change subject: gprs_ns2_sns: clear local and remote entries when SNS failed ...................................................................... gprs_ns2_sns: clear local and remote entries when SNS failed The local and remote entries should be cleared on SNS Size. Further it can be cleared when SNS failed (e.g. all NSVC become dead) so VTY doesn't show old entries before entering SNS Size. Related: OS#4949 Change-Id: Ie4db81acdd5f8ddf1a1f5dc7645d1144545d9c73 --- M src/gb/gprs_ns2_sns.c 1 file changed, 16 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/06/22206/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22206 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie4db81acdd5f8ddf1a1f5dc7645d1144545d9c73 Gerrit-Change-Number: 22206 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 09:47:55 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 18 Jan 2021 09:47:55 +0000 Subject: Change in libosmocore[master]: gprs_ns2: flag then NSE as dead in nse_free() In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, daniel, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22208 to look at the new patch set (#5). Change subject: gprs_ns2: flag then NSE as dead in nse_free() ...................................................................... gprs_ns2: flag then NSE as dead in nse_free() The transfer cap call in ns2_prim_status_ind() asserts if NSE is in an invalid state (nse is either alive or has NSVCS). Change-Id: I535b3e5dd7240d19dd685652173775b250f5cc2d --- M src/gb/gprs_ns2.c 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/08/22208/5 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22208 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I535b3e5dd7240d19dd685652173775b250f5cc2d Gerrit-Change-Number: 22208 Gerrit-PatchSet: 5 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 09:47:55 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 18 Jan 2021 09:47:55 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vc_fsm: fix spaces and remove wrong comment In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, daniel, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22209 to look at the new patch set (#5). Change subject: gprs_ns2_vc_fsm: fix spaces and remove wrong comment ...................................................................... gprs_ns2_vc_fsm: fix spaces and remove wrong comment Change-Id: I52799d8ce8244fae7512a6e14a3cf2408a218c2d --- M src/gb/gprs_ns2_vc_fsm.c 1 file changed, 2 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/09/22209/5 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22209 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I52799d8ce8244fae7512a6e14a3cf2408a218c2d Gerrit-Change-Number: 22209 Gerrit-PatchSet: 5 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 09:47:55 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 18 Jan 2021 09:47:55 +0000 Subject: Change in libosmocore[master]: test: gprs_ns2: don't leak the talloc context In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, fixeria, daniel, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22270 to look at the new patch set (#2). Change subject: test: gprs_ns2: don't leak the talloc context ...................................................................... test: gprs_ns2: don't leak the talloc context Makes the address sanitizer happy Change-Id: Ibf926d8db88cdb403d29de5e666dfb71eefc7b72 --- M tests/gb/gprs_ns2_test.c 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/70/22270/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22270 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ibf926d8db88cdb403d29de5e666dfb71eefc7b72 Gerrit-Change-Number: 22270 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 09:47:55 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 18 Jan 2021 09:47:55 +0000 Subject: Change in libosmocore[master]: test: gprs_ns2: correct implement free_bind() In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, daniel, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22271 to look at the new patch set (#2). Change subject: test: gprs_ns2: correct implement free_bind() ...................................................................... test: gprs_ns2: correct implement free_bind() free_bind() should free up all driver specific state but NOT the bind itself. Change-Id: Iac506734c93aca8be045ac13788d07d1bdc78eb3 --- M tests/gb/gprs_ns2_test.c 1 file changed, 7 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/71/22271/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22271 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Iac506734c93aca8be045ac13788d07d1bdc78eb3 Gerrit-Change-Number: 22271 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 09:47:55 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 18 Jan 2021 09:47:55 +0000 Subject: Change in libosmocore[master]: test: gprs_ns2: free the nsi after each test In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, fixeria, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22272 to look at the new patch set (#2). Change subject: test: gprs_ns2: free the nsi after each test ...................................................................... test: gprs_ns2: free the nsi after each test Change-Id: I700da48d7afe6b1a81484a0725faf0c56073446d --- M tests/gb/gprs_ns2_test.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/72/22272/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22272 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I700da48d7afe6b1a81484a0725faf0c56073446d Gerrit-Change-Number: 22272 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 09:47:55 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 18 Jan 2021 09:47:55 +0000 Subject: Change in libosmocore[master]: gprs_ns2: implement BLOCK/UNBLOCK of a NSVC by vty In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22210 to look at the new patch set (#7). Change subject: gprs_ns2: implement BLOCK/UNBLOCK of a NSVC by vty ...................................................................... gprs_ns2: implement BLOCK/UNBLOCK of a NSVC by vty The vty should be able to block or unblock a specific NSVC. Further more this case is special for the UNITDATA as those can be still received until the other side response to the BLOCK PDU. Related: OS#4939 Change-Id: Ic0ce3c5fabc8644cc1ee71a8f6dd783fadf7b84d --- M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_vc_fsm.c M src/gb/gprs_ns2_vty2.c M tests/gb/gprs_ns2_test.c M tests/gb/gprs_ns2_test.ok 5 files changed, 188 insertions(+), 9 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/10/22210/7 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22210 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic0ce3c5fabc8644cc1ee71a8f6dd783fadf7b84d Gerrit-Change-Number: 22210 Gerrit-PatchSet: 7 Gerrit-Owner: lynxis lazus Gerrit-Assignee: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-CC: daniel Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 09:47:55 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 18 Jan 2021 09:47:55 +0000 Subject: Change in libosmocore[master]: gprs_ns2: add assert on most bind calls In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22273 to look at the new patch set (#3). Change subject: gprs_ns2: add assert on most bind calls ...................................................................... gprs_ns2: add assert on most bind calls Add a OSMO_ASSERT to all bind calls which doesn't check if the bind is from the expected type. The only exception is rx and tx functions (hot path). Change-Id: Ia4f8932263c60618c7f0dfc32d50ba5a8d57602b --- M src/gb/gprs_ns2_fr.c M src/gb/gprs_ns2_udp.c 2 files changed, 21 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/73/22273/3 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22273 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia4f8932263c60618c7f0dfc32d50ba5a8d57602b Gerrit-Change-Number: 22273 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 09:47:55 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 18 Jan 2021 09:47:55 +0000 Subject: Change in libosmocore[master]: gprs_ns2: allow to use free_vc() with NULL In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22274 to look at the new patch set (#3). Change subject: gprs_ns2: allow to use free_vc() with NULL ...................................................................... gprs_ns2: allow to use free_vc() with NULL Usually talloc_free() and other free functions in osmocom allows to be called with NULL which is then ignored. Change-Id: If7b0c6916a29d4611d0a40c388414076eb83e6b5 --- M src/gb/gprs_ns2_fr.c M src/gb/gprs_ns2_udp.c 2 files changed, 5 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/74/22274/3 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22274 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If7b0c6916a29d4611d0a40c388414076eb83e6b5 Gerrit-Change-Number: 22274 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 09:50:06 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 18 Jan 2021 09:50:06 +0000 Subject: Change in libosmocore[master]: gprs_ns2_fr: reduce duplication between gprs_ns2_fr_connect / connect2 In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22259 ) Change subject: gprs_ns2_fr: reduce duplication between gprs_ns2_fr_connect / connect2 ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22259 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If835bf138f213e7f58205018e7efe3ecb772c624 Gerrit-Change-Number: 22259 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 09:50:06 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 09:57:08 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 18 Jan 2021 09:57:08 +0000 Subject: Change in libosmocore[master]: gprs_ns2: Give NS-VC FSMs a proper name/identifier In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21400 ) Change subject: gprs_ns2: Give NS-VC FSMs a proper name/identifier ...................................................................... Patch Set 5: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/21400/3/src/gb/gprs_ns2_udp.c File src/gb/gprs_ns2_udp.c: https://gerrit.osmocom.org/c/libosmocore/+/21400/3/src/gb/gprs_ns2_udp.c at 384 PS3, Line 384: nse->nsei, "FIXME" /*osmo_sockaddr_to_str(remote)*/); > There's some API to convert a random string to be safe for this kind of purposes IIRC. This patch is not longer WIP but the FIXME is still there :) See: osmo_identifier_sanitize_buf() osmo_fsm_inst_update_id_f_sanitize() -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21400 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Id9d5b0684584d03685900c6298fe70246793de14 Gerrit-Change-Number: 21400 Gerrit-PatchSet: 5 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 09:57:08 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: laforge Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 09:58:10 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 18 Jan 2021 09:58:10 +0000 Subject: Change in osmo-bsc[master]: handover_tests.sh: update stdout/stderr only on capital -U arg In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22260 ) Change subject: handover_tests.sh: update stdout/stderr only on capital -U arg ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22260 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Id280a8d084fd84b0b7486a5c8022e5b7a26f6095 Gerrit-Change-Number: 22260 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 09:58:10 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 10:00:03 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 18 Jan 2021 10:00:03 +0000 Subject: Change in osmo-bsc[master]: handover_tests.sh: update stdout/stderr only on capital -U arg In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22260 ) Change subject: handover_tests.sh: update stdout/stderr only on capital -U arg ...................................................................... Patch Set 1: -Code-Review (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/22260/1/tests/handover/handover_tests.sh File tests/handover/handover_tests.sh: https://gerrit.osmocom.org/c/osmo-bsc/+/22260/1/tests/handover/handover_tests.sh at 53 PS1, Line 53: if [ -z "$failed" -a "x$update" != "x" ]; then Are you sure this change is correct? It looks whatever you pass to it, the file is updated. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22260 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Id280a8d084fd84b0b7486a5c8022e5b7a26f6095 Gerrit-Change-Number: 22260 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 10:00:03 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 10:03:14 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 18 Jan 2021 10:03:14 +0000 Subject: Change in osmo-ci[master]: OBS: move obs_prepare_conflict to own file In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22213 ) Change subject: OBS: move obs_prepare_conflict to own file ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22213 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I29a5f54fe3a09610cffa0eacb5f0ad99154612f7 Gerrit-Change-Number: 22213 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 10:03:14 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 10:03:16 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 18 Jan 2021 10:03:16 +0000 Subject: Change in osmo-ci[master]: OBS: conflict: move _deb to separate function In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22214 ) Change subject: OBS: conflict: move _deb to separate function ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22214 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ic8d55c432c6035e7ac855cf6869d2c86ace468df Gerrit-Change-Number: 22214 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 10:03:16 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 10:03:19 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 18 Jan 2021 10:03:19 +0000 Subject: Change in osmo-ci[master]: OBS: conflict: move pkgver to global variable In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22215 ) Change subject: OBS: conflict: move pkgver to global variable ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22215 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ic56ff12b5f2fe596d73b341e1e7750a9e202ed6b Gerrit-Change-Number: 22215 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 10:03:19 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 10:03:22 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 18 Jan 2021 10:03:22 +0000 Subject: Change in osmo-ci[master]: OBS: conflict: move common code from _deb to main In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22216 ) Change subject: OBS: conflict: move common code from _deb to main ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22216 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I3066147ef5469cce9d269b119d9ffa3e53f00403 Gerrit-Change-Number: 22216 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 10:03:22 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 10:03:24 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 18 Jan 2021 10:03:24 +0000 Subject: Change in osmo-ci[master]: OBS: conflict: generate conflicting rpm too In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22217 ) Change subject: OBS: conflict: generate conflicting rpm too ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22217 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ifac815574758668172b0a7bb089585ce5a17b9e3 Gerrit-Change-Number: 22217 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 10:03:24 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 10:03:26 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 18 Jan 2021 10:03:26 +0000 Subject: Change in osmo-ci[master]: OBS: rename osmo_obs_add_debian_dependency In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22218 ) Change subject: OBS: rename osmo_obs_add_debian_dependency ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22218 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Icf444b86df993184c9fe4db8d3e67ab4bb06bd47 Gerrit-Change-Number: 22218 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 10:03:26 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 10:03:28 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 18 Jan 2021 10:03:28 +0000 Subject: Change in osmo-ci[master]: OBS: add_depend_deb: no self-dependencies In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22219 ) Change subject: OBS: add_depend_deb: no self-dependencies ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22219 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I439079c00259d73a18cb8617a3e76d05df5a7a35 Gerrit-Change-Number: 22219 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 10:03:28 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 10:03:31 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 18 Jan 2021 10:03:31 +0000 Subject: Change in osmo-ci[master]: OBS: osmo_obs_add_rpm_spec: refactor In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22220 ) Change subject: OBS: osmo_obs_add_rpm_spec: refactor ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22220 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I4f3d4f8a8bc83ff22983e49f6a496dc8318b53cd Gerrit-Change-Number: 22220 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 10:03:31 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 10:03:33 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 18 Jan 2021 10:03:33 +0000 Subject: Change in osmo-ci[master]: OBS: osmo_obs_add_rpm_spec: depend on conflict pkg In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22221 ) Change subject: OBS: osmo_obs_add_rpm_spec: depend on conflict pkg ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22221 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I69bebdadaf89c2a6e5dd9a27161703a567882359 Gerrit-Change-Number: 22221 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 10:03:33 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 10:03:36 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 18 Jan 2021 10:03:36 +0000 Subject: Change in osmo-ci[master]: OBS: add %H%M to DT In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22222 ) Change subject: OBS: add %H%M to DT ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22222 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I7f08c694a549f1b3dd938a68e05082f2c31fdb92 Gerrit-Change-Number: 22222 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 10:03:36 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 10:03:39 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 18 Jan 2021 10:03:39 +0000 Subject: Change in osmo-ci[master]: OBS: nightly: depend on dummy pkg of current date In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22223 ) Change subject: OBS: nightly: depend on dummy pkg of current date ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22223 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ida8db8e6c91834c9d9e43694d9b4daea55a2f8f8 Gerrit-Change-Number: 22223 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 10:03:39 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 10:03:53 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 18 Jan 2021 10:03:53 +0000 Subject: Change in osmo-ci[master]: OBS: move obs_prepare_conflict to own file In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22213 ) Change subject: OBS: move obs_prepare_conflict to own file ...................................................................... OBS: move obs_prepare_conflict to own file Prepare to add another function that creates similar dummy packages for rpm (current version only works for deb). Related: OS#4733 Change-Id: I29a5f54fe3a09610cffa0eacb5f0ad99154612f7 --- A scripts/common-obs-conflict.sh M scripts/common-obs.sh 2 files changed, 86 insertions(+), 81 deletions(-) Approvals: pespin: Looks good to me, approved laforge: Looks good to me, but someone else must approve osmith: Verified diff --git a/scripts/common-obs-conflict.sh b/scripts/common-obs-conflict.sh new file mode 100644 index 0000000..a3cde36 --- /dev/null +++ b/scripts/common-obs-conflict.sh @@ -0,0 +1,85 @@ +#!/bin/sh +# Create conflicting dummy packages in OBS (opensuse build service), so users can't mix packages +# built from different branches by accident + +# Create the source for a dummy package, that conflicts with another dummy package in the current +# directory. Example of the structure that will be generated: +# osmocom-nightly +# ??? debian +# ??? changelog +# ??? compat +# ??? control +# ??? copyright +# ??? rules +# ??? source +# ??? format +# $1: name of dummy package (e.g. "osmocom-nightly") +# $2-*: name of conflicting packages (e.g. "osmocom-latest") +osmo_obs_prepare_conflict() { + local pkgname="$1" + shift + local pkgver="0.0.0" + local oldpwd="$PWD" + + mkdir -p "$pkgname/debian/source" + cd "$pkgname/debian" + + # Fill control + cat << EOF > control +Source: ${pkgname} +Section: unknown +Priority: optional +Maintainer: Oliver Smith +Build-Depends: debhelper (>= 9) +Standards-Version: 3.9.8 + +Package: ${pkgname} +Depends: \${misc:Depends} +Architecture: any +EOF + printf "Conflicts: " >> control + first=1 + for i in "$@"; do + if [ "$first" -eq 1 ]; then + first=0 + else + printf ", " >> control + fi + printf "%s" "$i" >> control + done + printf "\n" >> control + cat << EOF >> control +Description: Dummy package, which conflicts with: $@ +EOF + + # Fill changelog + cat << EOF > changelog +${pkgname} (${pkgver}) unstable; urgency=medium + + * Dummy package, which conflicts with: $@ + + -- Oliver Smith Thu, 13 Jun 2019 12:50:19 +0200 +EOF + + # Fill rules + cat << EOF > rules +#!/usr/bin/make -f +%: + dh \$@ +EOF + + # Finish up debian dir + chmod +x rules + echo "9" > compat + echo "3.0 (native)" > source/format + touch copyright + + # Put in git repository + cd .. + git init . + git add -A + git commit -m "auto-commit: $pkgname dummy package" || true + git tag -f "$pkgver" + + cd "$oldpwd" +} diff --git a/scripts/common-obs.sh b/scripts/common-obs.sh index 3aa2a36..ea1c5cb 100644 --- a/scripts/common-obs.sh +++ b/scripts/common-obs.sh @@ -1,5 +1,6 @@ #!/bin/sh # Various common code used in the OBS (opensuse build service) related osmo-ci shell scripts +. "$(dirname "$0")/common-obs-conflict.sh" osmo_cmd_require \ dch \ @@ -14,87 +15,6 @@ sed \ wget -# Create the source for a dummy package, that conflicts with another dummy package in the current directory. Example -# of the structure that will be generated: -# osmocom-nightly -# ??? debian -# ??? changelog -# ??? compat -# ??? control -# ??? copyright -# ??? rules -# ??? source -# ??? format -# $1: name of dummy package (e.g. "osmocom-nightly") -# $2-*: name of conflicting packages (e.g. "osmocom-latest") -osmo_obs_prepare_conflict() { - local pkgname="$1" - shift - local pkgver="0.0.0" - local oldpwd="$PWD" - - mkdir -p "$pkgname/debian/source" - cd "$pkgname/debian" - - # Fill control - cat << EOF > control -Source: ${pkgname} -Section: unknown -Priority: optional -Maintainer: Oliver Smith -Build-Depends: debhelper (>= 9) -Standards-Version: 3.9.8 - -Package: ${pkgname} -Depends: \${misc:Depends} -Architecture: any -EOF - printf "Conflicts: " >> control - first=1 - for i in "$@"; do - if [ "$first" -eq 1 ]; then - first=0 - else - printf ", " >> control - fi - printf "%s" "$i" >> control - done - printf "\n" >> control - cat << EOF >> control -Description: Dummy package, which conflicts with: $@ -EOF - - # Fill changelog - cat << EOF > changelog -${pkgname} (${pkgver}) unstable; urgency=medium - - * Dummy package, which conflicts with: $@ - - -- Oliver Smith Thu, 13 Jun 2019 12:50:19 +0200 -EOF - - # Fill rules - cat << EOF > rules -#!/usr/bin/make -f -%: - dh \$@ -EOF - - # Finish up debian dir - chmod +x rules - echo "9" > compat - echo "3.0 (native)" > source/format - touch copyright - - # Put in git repository - cd .. - git init . - git add -A - git commit -m "auto-commit: $pkgname dummy package" || true - git tag -f "$pkgver" - - cd "$oldpwd" -} # Add dependency to all (sub)packages in debian/control and commit the change. # $1: path to debian/control file -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22213 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I29a5f54fe3a09610cffa0eacb5f0ad99154612f7 Gerrit-Change-Number: 22213 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 10:03:54 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 18 Jan 2021 10:03:54 +0000 Subject: Change in osmo-ci[master]: OBS: conflict: move _deb to separate function In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22214 ) Change subject: OBS: conflict: move _deb to separate function ...................................................................... OBS: conflict: move _deb to separate function Prepare to add the _rpm function by moving the debian code to its own function and tweaking the comment above the function. Related: OS#4733 Change-Id: Ic8d55c432c6035e7ac855cf6869d2c86ace468df --- M scripts/common-obs-conflict.sh 1 file changed, 21 insertions(+), 12 deletions(-) Approvals: pespin: Looks good to me, approved laforge: Looks good to me, but someone else must approve osmith: Verified diff --git a/scripts/common-obs-conflict.sh b/scripts/common-obs-conflict.sh index a3cde36..57679c3 100644 --- a/scripts/common-obs-conflict.sh +++ b/scripts/common-obs-conflict.sh @@ -2,20 +2,22 @@ # Create conflicting dummy packages in OBS (opensuse build service), so users can't mix packages # built from different branches by accident -# Create the source for a dummy package, that conflicts with another dummy package in the current -# directory. Example of the structure that will be generated: -# osmocom-nightly -# ??? debian -# ??? changelog -# ??? compat -# ??? control -# ??? copyright -# ??? rules -# ??? source -# ??? format +# Create the conflicting package for debian +# # $1: name of dummy package (e.g. "osmocom-nightly") # $2-*: name of conflicting packages (e.g. "osmocom-latest") -osmo_obs_prepare_conflict() { +# +# Generates the following directory structure: +# osmocom-nightly +# ??? debian +# ??? changelog +# ??? compat +# ??? control +# ??? copyright +# ??? rules +# ??? source +# ??? format +osmo_obs_prepare_conflict_deb() { local pkgname="$1" shift local pkgver="0.0.0" @@ -83,3 +85,10 @@ cd "$oldpwd" } + +# Create conflicting packages +# $1: name of dummy package (e.g. "osmocom-nightly") +# $2-*: name of conflicting packages (e.g. "osmocom-latest") +osmo_obs_prepare_conflict() { + osmo_obs_prepare_conflict_deb "$@" +} -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22214 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ic8d55c432c6035e7ac855cf6869d2c86ace468df Gerrit-Change-Number: 22214 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 10:03:54 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 18 Jan 2021 10:03:54 +0000 Subject: Change in osmo-ci[master]: OBS: conflict: move pkgver to global variable In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22215 ) Change subject: OBS: conflict: move pkgver to global variable ...................................................................... OBS: conflict: move pkgver to global variable Prepare to move the 'put in git repository' code from _deb to the main function by having the pkgver available outside of the _deb function. Change the version to 1.0.0 while at it, as it looks better than 0.0.0. Related: OS#4733 Change-Id: Ic56ff12b5f2fe596d73b341e1e7750a9e202ed6b --- M scripts/common-obs-conflict.sh 1 file changed, 4 insertions(+), 3 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve pespin: Looks good to me, approved osmith: Verified diff --git a/scripts/common-obs-conflict.sh b/scripts/common-obs-conflict.sh index 57679c3..ec877a1 100644 --- a/scripts/common-obs-conflict.sh +++ b/scripts/common-obs-conflict.sh @@ -2,6 +2,8 @@ # Create conflicting dummy packages in OBS (opensuse build service), so users can't mix packages # built from different branches by accident +OSMO_OBS_CONFLICT_PKGVER="1.0.0" + # Create the conflicting package for debian # # $1: name of dummy package (e.g. "osmocom-nightly") @@ -20,7 +22,6 @@ osmo_obs_prepare_conflict_deb() { local pkgname="$1" shift - local pkgver="0.0.0" local oldpwd="$PWD" mkdir -p "$pkgname/debian/source" @@ -56,7 +57,7 @@ # Fill changelog cat << EOF > changelog -${pkgname} (${pkgver}) unstable; urgency=medium +${pkgname} (${OSMO_OBS_CONFLICT_PKGVER}) unstable; urgency=medium * Dummy package, which conflicts with: $@ @@ -81,7 +82,7 @@ git init . git add -A git commit -m "auto-commit: $pkgname dummy package" || true - git tag -f "$pkgver" + git tag -f "$OSMO_OBS_CONFLICT_PKGVER" cd "$oldpwd" } -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22215 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ic56ff12b5f2fe596d73b341e1e7750a9e202ed6b Gerrit-Change-Number: 22215 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 10:03:55 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 18 Jan 2021 10:03:55 +0000 Subject: Change in osmo-ci[master]: OBS: conflict: move common code from _deb to main In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22216 ) Change subject: OBS: conflict: move common code from _deb to main ...................................................................... OBS: conflict: move common code from _deb to main Move logic to create the package directory, change into it, and to put the directory into a git repository and tag it with the package version, into the common function. Again, in preparation to add a _rpm function. Related: OS#4733 Change-Id: I3066147ef5469cce9d269b119d9ffa3e53f00403 --- M scripts/common-obs-conflict.sh 1 file changed, 24 insertions(+), 18 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve pespin: Looks good to me, approved osmith: Verified diff --git a/scripts/common-obs-conflict.sh b/scripts/common-obs-conflict.sh index ec877a1..ecd21c7 100644 --- a/scripts/common-obs-conflict.sh +++ b/scripts/common-obs-conflict.sh @@ -10,22 +10,21 @@ # $2-*: name of conflicting packages (e.g. "osmocom-latest") # # Generates the following directory structure: -# osmocom-nightly -# ??? debian -# ??? changelog -# ??? compat -# ??? control -# ??? copyright -# ??? rules -# ??? source -# ??? format +# debian +# ??? changelog +# ??? compat +# ??? control +# ??? copyright +# ??? rules +# ??? source +# ??? format osmo_obs_prepare_conflict_deb() { local pkgname="$1" shift local oldpwd="$PWD" - mkdir -p "$pkgname/debian/source" - cd "$pkgname/debian" + mkdir -p "debian/source" + cd "debian" # Fill control cat << EOF > control @@ -77,13 +76,6 @@ echo "3.0 (native)" > source/format touch copyright - # Put in git repository - cd .. - git init . - git add -A - git commit -m "auto-commit: $pkgname dummy package" || true - git tag -f "$OSMO_OBS_CONFLICT_PKGVER" - cd "$oldpwd" } @@ -91,5 +83,19 @@ # $1: name of dummy package (e.g. "osmocom-nightly") # $2-*: name of conflicting packages (e.g. "osmocom-latest") osmo_obs_prepare_conflict() { + local pkgname="$1" + local oldpwd="$PWD" + + mkdir -p "$pkgname" + cd "$pkgname" + osmo_obs_prepare_conflict_deb "$@" + + # Put in git repository + git init . + git add -A + git commit -m "auto-commit: $pkgname dummy package" || true + git tag -f "$OSMO_OBS_CONFLICT_PKGVER" + + cd "$oldpwd" } -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22216 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I3066147ef5469cce9d269b119d9ffa3e53f00403 Gerrit-Change-Number: 22216 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 10:03:56 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 18 Jan 2021 10:03:56 +0000 Subject: Change in osmo-ci[master]: OBS: conflict: generate conflicting rpm too In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22217 ) Change subject: OBS: conflict: generate conflicting rpm too ...................................................................... OBS: conflict: generate conflicting rpm too Related: OS#4733 Change-Id: Ifac815574758668172b0a7bb089585ce5a17b9e3 --- M scripts/common-obs-conflict.sh 1 file changed, 35 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve pespin: Looks good to me, approved osmith: Verified diff --git a/scripts/common-obs-conflict.sh b/scripts/common-obs-conflict.sh index ecd21c7..a4fc98d 100644 --- a/scripts/common-obs-conflict.sh +++ b/scripts/common-obs-conflict.sh @@ -79,6 +79,40 @@ cd "$oldpwd" } +# Create the conflicting package for rpm (e.g. contrib/osmocom-nightly.spec.in). The remaining +# placeholders are replaced in osmo_obs_add_rpm_spec(). +# +# $1: name of dummy package (e.g. "osmocom-nightly") +# $2-*: name of conflicting packages (e.g. "osmocom-latest") +osmo_obs_prepare_conflict_rpm() { + local pkgname="$1" + shift + local spec_in="contrib/$pkgname.spec.in" + + mkdir -p contrib + + cat << EOF > "$spec_in" +Name: $pkgname +Version: @VERSION@ +Release: 0 +Summary: Dummy package, which conflicts with: $@ +License: AGPL-3.0-or-later +Group: Hardware/Mobile +Source: @SOURCE@ +EOF + + for i in "$@"; do + echo "Conflicts: $i" >> "$spec_in" + done + + cat << EOF >> "$spec_in" +%description +Dummy package, which conflicts with: $@ +%files +EOF + +} + # Create conflicting packages # $1: name of dummy package (e.g. "osmocom-nightly") # $2-*: name of conflicting packages (e.g. "osmocom-latest") @@ -90,6 +124,7 @@ cd "$pkgname" osmo_obs_prepare_conflict_deb "$@" + osmo_obs_prepare_conflict_rpm "$@" # Put in git repository git init . -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22217 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ifac815574758668172b0a7bb089585ce5a17b9e3 Gerrit-Change-Number: 22217 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 10:03:57 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 18 Jan 2021 10:03:57 +0000 Subject: Change in osmo-ci[master]: OBS: rename osmo_obs_add_debian_dependency In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22218 ) Change subject: OBS: rename osmo_obs_add_debian_dependency ...................................................................... OBS: rename osmo_obs_add_debian_dependency Change name to osmo_obs_add_depend_deb. I'll add a _rpm function in a future patch, and so we get consistent names. Related: OS#4733 Change-Id: Icf444b86df993184c9fe4db8d3e67ab4bb06bd47 --- M scripts/common-obs.sh M scripts/osmocom-latest-packages.sh M scripts/osmocom-nightly-packages.sh 3 files changed, 3 insertions(+), 3 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve pespin: Looks good to me, approved osmith: Verified diff --git a/scripts/common-obs.sh b/scripts/common-obs.sh index ea1c5cb..1566def 100644 --- a/scripts/common-obs.sh +++ b/scripts/common-obs.sh @@ -19,7 +19,7 @@ # Add dependency to all (sub)packages in debian/control and commit the change. # $1: path to debian/control file # $2: name of the package to depend on -osmo_obs_add_debian_dependency() { +osmo_obs_add_depend_deb() { # Note: adding the comma at the end should be fine. If there is a Depends: line, it is most likely not empty. It # should at least have ${misc:Depends} according to lintian. sed "s/^Depends: /Depends: $2, /g" -i "$1" diff --git a/scripts/osmocom-latest-packages.sh b/scripts/osmocom-latest-packages.sh index 308efbc..271824f 100755 --- a/scripts/osmocom-latest-packages.sh +++ b/scripts/osmocom-latest-packages.sh @@ -73,7 +73,7 @@ ./git-version-gen . > .tarball-version 2>/dev/null fi - osmo_obs_add_debian_dependency "./debian/control" "osmocom-latest" + osmo_obs_add_depend_deb "./debian/control" "osmocom-latest" if [ "$project" = "open5gs" ]; then # we cannot control the output directory of the generated source :( diff --git a/scripts/osmocom-nightly-packages.sh b/scripts/osmocom-nightly-packages.sh index 1d09299..4234021 100755 --- a/scripts/osmocom-nightly-packages.sh +++ b/scripts/osmocom-nightly-packages.sh @@ -129,7 +129,7 @@ if [ "$changelog" = "commit" ] ; then VER=$(get_commit_version) - osmo_obs_add_debian_dependency "./debian/control" "osmocom-$FEED" + osmo_obs_add_depend_deb "./debian/control" "osmocom-$FEED" dch -b -v "$VER" -m "Snapshot build" git commit -m "$VER snapshot" debian/ fi -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22218 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Icf444b86df993184c9fe4db8d3e67ab4bb06bd47 Gerrit-Change-Number: 22218 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 10:03:57 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 18 Jan 2021 10:03:57 +0000 Subject: Change in osmo-ci[master]: OBS: add_depend_deb: no self-dependencies In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22219 ) Change subject: OBS: add_depend_deb: no self-dependencies ...................................................................... OBS: add_depend_deb: no self-dependencies Check if we are trying to make a package depend on itself, and skip in that case. This happens for the osmocom-nightly etc. metapackages, as they go through the same code path as regular packages. While at it, use proper variable names in the function. Add the new variable as second argument and not as third, because a fourth argument will be added with the dependency version, and because this order will be consistent with osmo_obs_add_rpm_spec() when it gets extended in a future commit. Fix the following warning: W: osmocom-nightly source: package-depends-on-itself osmocom-nightly depends Related: OS#4733 Change-Id: I439079c00259d73a18cb8617a3e76d05df5a7a35 --- M scripts/common-obs.sh M scripts/osmocom-latest-packages.sh M scripts/osmocom-nightly-packages.sh 3 files changed, 15 insertions(+), 5 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve pespin: Looks good to me, approved osmith: Verified diff --git a/scripts/common-obs.sh b/scripts/common-obs.sh index 1566def..47f3f3d 100644 --- a/scripts/common-obs.sh +++ b/scripts/common-obs.sh @@ -18,13 +18,23 @@ # Add dependency to all (sub)packages in debian/control and commit the change. # $1: path to debian/control file -# $2: name of the package to depend on +# $2: package name (e.g. "libosmocore") +# $3: dependency package name (e.g. "osmocom-nightly") osmo_obs_add_depend_deb() { + local d_control="$1" + local pkgname="$2" + local depend="$3" + + if [ "$pkgname" = "$depend" ]; then + echo "NOTE: skipping dependency on itself: $depend" + return + fi + # Note: adding the comma at the end should be fine. If there is a Depends: line, it is most likely not empty. It # should at least have ${misc:Depends} according to lintian. - sed "s/^Depends: /Depends: $2, /g" -i "$1" + sed "s/^Depends: /Depends: $depend, /g" -i "$d_control" - git -C "$(dirname "$1")" commit -m "auto-commit: debian: depend on $2" . + git -C "$(dirname "$d_control")" commit -m "auto-commit: debian: depend on $depend" . } # Copy a project's rpm spec.in file to the osc package dir, set the version/source and 'osc add' it diff --git a/scripts/osmocom-latest-packages.sh b/scripts/osmocom-latest-packages.sh index 271824f..2689e35 100755 --- a/scripts/osmocom-latest-packages.sh +++ b/scripts/osmocom-latest-packages.sh @@ -73,7 +73,7 @@ ./git-version-gen . > .tarball-version 2>/dev/null fi - osmo_obs_add_depend_deb "./debian/control" "osmocom-latest" + osmo_obs_add_depend_deb "./debian/control" "$project" "osmocom-latest" if [ "$project" = "open5gs" ]; then # we cannot control the output directory of the generated source :( diff --git a/scripts/osmocom-nightly-packages.sh b/scripts/osmocom-nightly-packages.sh index 4234021..3f95d17 100755 --- a/scripts/osmocom-nightly-packages.sh +++ b/scripts/osmocom-nightly-packages.sh @@ -129,7 +129,7 @@ if [ "$changelog" = "commit" ] ; then VER=$(get_commit_version) - osmo_obs_add_depend_deb "./debian/control" "osmocom-$FEED" + osmo_obs_add_depend_deb "./debian/control" "$name" "osmocom-$FEED" dch -b -v "$VER" -m "Snapshot build" git commit -m "$VER snapshot" debian/ fi -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22219 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I439079c00259d73a18cb8617a3e76d05df5a7a35 Gerrit-Change-Number: 22219 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 10:03:58 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 18 Jan 2021 10:03:58 +0000 Subject: Change in osmo-ci[master]: OBS: osmo_obs_add_rpm_spec: refactor In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22220 ) Change subject: OBS: osmo_obs_add_rpm_spec: refactor ...................................................................... OBS: osmo_obs_add_rpm_spec: refactor Rename $spec to $spec_in and add $spec to hold the destination path, to avoid constructing it multiple times below. Related: OS#4733 Change-Id: I4f3d4f8a8bc83ff22983e49f6a496dc8318b53cd --- M scripts/common-obs.sh 1 file changed, 7 insertions(+), 6 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve pespin: Looks good to me, approved osmith: Verified diff --git a/scripts/common-obs.sh b/scripts/common-obs.sh index 47f3f3d..0655370 100644 --- a/scripts/common-obs.sh +++ b/scripts/common-obs.sh @@ -45,26 +45,27 @@ local oscdir="$1" local repodir="$2" local name="$3" - local spec="$(find "$repodir" -name "$name.spec.in")" + local spec_in="$(find "$repodir" -name "$name.spec.in")" + local spec="$oscdir/$name.spec" local tarball local version - if [ -z "$spec" ]; then + if [ -z "$spec_in" ]; then echo "WARNING: RPM spec missing: $name.spec.in" return fi - cp "$spec" "$oscdir/$name.spec" + cp "$spec_in" "$spec" # Set version version="$(grep "^Version: " "$oscdir"/*.dsc | cut -d: -f2 | xargs)" - sed -i "s/^Version:.*/Version: $version/g" "$oscdir/$name.spec" + sed -i "s/^Version:.*/Version: $version/g" "$spec" # Set source file tarball="$(ls -1 "${name}_"*".tar."*)" - sed -i "s/^Source:.*/Source: $tarball/g" "$oscdir/$name.spec" + sed -i "s/^Source:.*/Source: $tarball/g" "$spec" - osc add "$name.spec" + osc add "$spec" } # Get the path to a distribution specific patch, either from osmo-ci.git or from the project repository. -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22220 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I4f3d4f8a8bc83ff22983e49f6a496dc8318b53cd Gerrit-Change-Number: 22220 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 10:03:58 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 18 Jan 2021 10:03:58 +0000 Subject: Change in osmo-ci[master]: OBS: osmo_obs_add_rpm_spec: depend on conflict pkg In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22221 ) Change subject: OBS: osmo_obs_add_rpm_spec: depend on conflict pkg ...................................................................... OBS: osmo_obs_add_rpm_spec: depend on conflict pkg Related: OS#4733 Change-Id: I69bebdadaf89c2a6e5dd9a27161703a567882359 --- M scripts/common-obs.sh M scripts/osmocom-latest-packages.sh M scripts/osmocom-nightly-packages.sh 3 files changed, 42 insertions(+), 5 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve pespin: Looks good to me, approved osmith: Verified diff --git a/scripts/common-obs.sh b/scripts/common-obs.sh index 0655370..adfa076 100644 --- a/scripts/common-obs.sh +++ b/scripts/common-obs.sh @@ -37,14 +37,49 @@ git -C "$(dirname "$d_control")" commit -m "auto-commit: debian: depend on $depend" . } -# Copy a project's rpm spec.in file to the osc package dir, set the version/source and 'osc add' it +# Add dependency to all (sub)packages in rpm spec file +# $1: path to rpm spec file +# $2: package name (e.g. "libosmocore") +# $3: dependency package name (e.g. "osmocom-nightly") +osmo_obs_add_depend_rpm() { + local spec="$1" + local pkgname="$2" + local depend="$3" + + if [ "$pkgname" = "$depend" ]; then + echo "NOTE: skipping dependency on itself: $depend" + return + fi + + ( while IFS= read -r line; do + echo "$line" + + case "$line" in + # Main package + "Name:"*) + echo "Requires: $depend" + ;; + # Subpackages + "%package"*) + echo "Requires: $depend" + ;; + esac + done < "$spec" ) > "$spec.new" + + mv "$spec.new" "$spec" +} + +# Copy a project's rpm spec.in file to the osc package dir, set the version/source, depend on the conflicting dummy +# package and 'osc add' it # $1: oscdir (path to checked out OSC package) # $2: repodir (path to git repository) -# $3: name (e.g. libosmocore) +# $3: package name (e.g. "libosmocore") +# $4: dependency package name (e.g. "osmocom-nightly") osmo_obs_add_rpm_spec() { local oscdir="$1" local repodir="$2" local name="$3" + local depend="$4" local spec_in="$(find "$repodir" -name "$name.spec.in")" local spec="$oscdir/$name.spec" local tarball @@ -57,6 +92,8 @@ cp "$spec_in" "$spec" + osmo_obs_add_depend_rpm "$spec" "$name" "$depend" + # Set version version="$(grep "^Version: " "$oscdir"/*.dsc | cut -d: -f2 | xargs)" sed -i "s/^Version:.*/Version: $version/g" "$spec" diff --git a/scripts/osmocom-latest-packages.sh b/scripts/osmocom-latest-packages.sh index 2689e35..94fcf7a 100755 --- a/scripts/osmocom-latest-packages.sh +++ b/scripts/osmocom-latest-packages.sh @@ -96,7 +96,7 @@ mv "$output/"*.tar* "$TOP/$PROJ/$project/" cd "$TOP/$PROJ" osc add "$project" - osmo_obs_add_rpm_spec "$TOP/$PROJ/$project" "$output" "$project" + osmo_obs_add_rpm_spec "$TOP/$PROJ/$project" "$output" "$project" "osmocom-latest" else cd "$TOP/$PROJ/$project" @@ -107,7 +107,7 @@ mv "$output/"*.dsc . mv "$output/"*.tar* . osc add ./* - osmo_obs_add_rpm_spec "$PWD" "$output" "$project" + osmo_obs_add_rpm_spec "$PWD" "$output" "$project" "osmocom-latest" fi fi cd "$TOP" diff --git a/scripts/osmocom-nightly-packages.sh b/scripts/osmocom-nightly-packages.sh index 3f95d17..ea181ab 100755 --- a/scripts/osmocom-nightly-packages.sh +++ b/scripts/osmocom-nightly-packages.sh @@ -152,7 +152,7 @@ cd "$oscdir" osc add -- *.tar* *.dsc - osmo_obs_add_rpm_spec "$oscdir" "$repodir" "$name" + osmo_obs_add_rpm_spec "$oscdir" "$repodir" "$name" "osmocom-$FEED" osc ci -m "Snapshot $name $DT" --noservice } -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22221 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I69bebdadaf89c2a6e5dd9a27161703a567882359 Gerrit-Change-Number: 22221 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 10:03:59 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 18 Jan 2021 10:03:59 +0000 Subject: Change in osmo-ci[master]: OBS: add %H%M to DT In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22222 ) Change subject: OBS: add %H%M to DT ...................................................................... OBS: add %H%M to DT Make sure that each time osmocom-nightly-packages.sh and osmocom-next-packages.sh runs, we get a different date appended to the versions, even if it runs twice on the same day (e.g. because the jenkins job was triggered manually). This is in preparation to let all packages depend on a specific version (with that date) of the conflicting dummy package. DT in osmocom-latest-packages.sh is adjusted for consistency (though it is not appended to the package versions, only used in the commit message when pushing the latest packages). Related: OS#4733 Change-Id: I7f08c694a549f1b3dd938a68e05082f2c31fdb92 --- M scripts/osmocom-latest-packages.sh M scripts/osmocom-nightly-packages.sh 2 files changed, 2 insertions(+), 2 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve pespin: Looks good to me, approved osmith: Verified diff --git a/scripts/osmocom-latest-packages.sh b/scripts/osmocom-latest-packages.sh index 94fcf7a..9c842be 100755 --- a/scripts/osmocom-latest-packages.sh +++ b/scripts/osmocom-latest-packages.sh @@ -9,7 +9,7 @@ # OBS project name PROJ=network:osmocom:latest -DT=$(date +%Y%m%d) +DT=$(date +%Y%m%d%H%M) TOP=$(pwd) DEBSRCDIR="$TOP/debsrc" diff --git a/scripts/osmocom-nightly-packages.sh b/scripts/osmocom-nightly-packages.sh index ea181ab..ced0998 100755 --- a/scripts/osmocom-nightly-packages.sh +++ b/scripts/osmocom-nightly-packages.sh @@ -10,7 +10,7 @@ set -e set -x -DT=$(date +%Y%m%d) +DT=$(date +%Y%m%d%H%M) TOP=$(pwd)/$(mktemp -d nightly-3g_XXXXXX) # Set FEED and PROJ, based on the FEED env var -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22222 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I7f08c694a549f1b3dd938a68e05082f2c31fdb92 Gerrit-Change-Number: 22222 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 10:03:59 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 18 Jan 2021 10:03:59 +0000 Subject: Change in osmo-ci[master]: OBS: nightly: depend on dummy pkg of current date In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22223 ) Change subject: OBS: nightly: depend on dummy pkg of current date ...................................................................... OBS: nightly: depend on dummy pkg of current date Make it impossible to mix nightly/next builds of different dates. Related: OS#4733 Change-Id: Ida8db8e6c91834c9d9e43694d9b4daea55a2f8f8 --- M scripts/common-obs.sh M scripts/osmocom-nightly-packages.sh 2 files changed, 18 insertions(+), 3 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve pespin: Looks good to me, approved osmith: Verified diff --git a/scripts/common-obs.sh b/scripts/common-obs.sh index adfa076..40cacf2 100644 --- a/scripts/common-obs.sh +++ b/scripts/common-obs.sh @@ -20,16 +20,22 @@ # $1: path to debian/control file # $2: package name (e.g. "libosmocore") # $3: dependency package name (e.g. "osmocom-nightly") +# $4: dependency package version (optional, e.g. "1.0.0.202101151122") osmo_obs_add_depend_deb() { local d_control="$1" local pkgname="$2" local depend="$3" + local dependver="$4" if [ "$pkgname" = "$depend" ]; then echo "NOTE: skipping dependency on itself: $depend" return fi + if [ -n "$dependver" ]; then + depend="$depend (= $dependver)" + fi + # Note: adding the comma at the end should be fine. If there is a Depends: line, it is most likely not empty. It # should at least have ${misc:Depends} according to lintian. sed "s/^Depends: /Depends: $depend, /g" -i "$d_control" @@ -41,16 +47,22 @@ # $1: path to rpm spec file # $2: package name (e.g. "libosmocore") # $3: dependency package name (e.g. "osmocom-nightly") +# $4: dependency package version (optional, e.g. "1.0.0.202101151122") osmo_obs_add_depend_rpm() { local spec="$1" local pkgname="$2" local depend="$3" + local dependver="$4" if [ "$pkgname" = "$depend" ]; then echo "NOTE: skipping dependency on itself: $depend" return fi + if [ -n "$dependver" ]; then + depend="$depend = $dependver" + fi + ( while IFS= read -r line; do echo "$line" @@ -75,11 +87,13 @@ # $2: repodir (path to git repository) # $3: package name (e.g. "libosmocore") # $4: dependency package name (e.g. "osmocom-nightly") +# $5: dependency package version (optional, e.g. "1.0.0.202101151122") osmo_obs_add_rpm_spec() { local oscdir="$1" local repodir="$2" local name="$3" local depend="$4" + local dependver="$5" local spec_in="$(find "$repodir" -name "$name.spec.in")" local spec="$oscdir/$name.spec" local tarball @@ -92,7 +106,7 @@ cp "$spec_in" "$spec" - osmo_obs_add_depend_rpm "$spec" "$name" "$depend" + osmo_obs_add_depend_rpm "$spec" "$name" "$depend" "$dependver" # Set version version="$(grep "^Version: " "$oscdir"/*.dsc | cut -d: -f2 | xargs)" diff --git a/scripts/osmocom-nightly-packages.sh b/scripts/osmocom-nightly-packages.sh index ced0998..a6340d1 100755 --- a/scripts/osmocom-nightly-packages.sh +++ b/scripts/osmocom-nightly-packages.sh @@ -109,6 +109,7 @@ local gitbpargs=$3 local repodir=$REPO/$name local oscdir=$REPO/osc/$PROJ/$name + local dependver="$OSMO_OBS_CONFLICT_PKGVER.$DT" if [ -z "$changelog" ] ; then changelog=commit @@ -129,7 +130,7 @@ if [ "$changelog" = "commit" ] ; then VER=$(get_commit_version) - osmo_obs_add_depend_deb "./debian/control" "$name" "osmocom-$FEED" + osmo_obs_add_depend_deb "./debian/control" "$name" "osmocom-$FEED" "$dependver" dch -b -v "$VER" -m "Snapshot build" git commit -m "$VER snapshot" debian/ fi @@ -152,7 +153,7 @@ cd "$oscdir" osc add -- *.tar* *.dsc - osmo_obs_add_rpm_spec "$oscdir" "$repodir" "$name" "osmocom-$FEED" + osmo_obs_add_rpm_spec "$oscdir" "$repodir" "$name" "osmocom-$FEED" "$dependver" osc ci -m "Snapshot $name $DT" --noservice } -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22223 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ida8db8e6c91834c9d9e43694d9b4daea55a2f8f8 Gerrit-Change-Number: 22223 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 10:05:05 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 18 Jan 2021 10:05:05 +0000 Subject: Change in osmo-bsc[master]: fix for test_dyn_ts_favor_moving_half_used_tch_h.ho_vty In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22261 ) Change subject: fix for test_dyn_ts_favor_moving_half_used_tch_h.ho_vty ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22261 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I492ea095cf3e3c3fd186c889166c4ed93ab3a007 Gerrit-Change-Number: 22261 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 10:05:05 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 10:05:28 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 18 Jan 2021 10:05:28 +0000 Subject: Change in osmo-bsc[master]: cosmetic: in a ho test, use '*' instead of pdch In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22262 ) Change subject: cosmetic: in a ho test, use '*' instead of pdch ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22262 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I1a12518d85ed891c491723e7f03f5bdd4fad980f Gerrit-Change-Number: 22262 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 10:05:28 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 10:06:03 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 18 Jan 2021 10:06:03 +0000 Subject: Change in osmo-bsc[master]: show bug: add test_dyn_ts_congestion_tch_f_vs_tch_h.ho_vty In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22263 ) Change subject: show bug: add test_dyn_ts_congestion_tch_f_vs_tch_h.ho_vty ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22263 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I3002797dea02dd0c10cfdd091ce73834a753e3a6 Gerrit-Change-Number: 22263 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 10:06:03 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 10:07:24 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 18 Jan 2021 10:07:24 +0000 Subject: Change in osmo-bsc[master]: fixate test_dyn_ts_congestion_tch_f_vs_tch_h.ho_vty In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22264 ) Change subject: fixate test_dyn_ts_congestion_tch_f_vs_tch_h.ho_vty ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22264 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ifeaec39ecb64b476ff1438cf987ba0403489c43b Gerrit-Change-Number: 22264 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 10:07:24 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 10:10:51 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 18 Jan 2021 10:10:51 +0000 Subject: Change in osmo-pcu[master]: Split PCU global PCU object from BTS object In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22162 ) Change subject: Split PCU global PCU object from BTS object ...................................................................... Patch Set 5: Code-Review+2 let see what explodes. -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22162 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I88e3c6471b80245ce3798223f1a61190f14aa840 Gerrit-Change-Number: 22162 Gerrit-PatchSet: 5 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-CC: fixeria Gerrit-Comment-Date: Mon, 18 Jan 2021 10:10:51 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Mon Jan 18 10:13:57 2021 From: admin at opensuse.org (OBS Notification) Date: Mon, 18 Jan 2021 10:13:57 +0000 Subject: Build failure of network:osmocom:nightly/libosmocore in openSUSE_Tumbleweed/i586 In-Reply-To: References: Message-ID: <60055f7124eb9_6532aec7c1d86001995122@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libosmocore/openSUSE_Tumbleweed/i586 Package network:osmocom:nightly/libosmocore failed to build in openSUSE_Tumbleweed/i586 Check out the package for editing: osc checkout network:osmocom:nightly libosmocore Last lines of build log: [ 157s] Your package starts with 'lib' as part of its name, but does not provide any [ 157s] libraries. It must not be called a lib-package then. Give it a more sensible [ 157s] name. [ 157s] [ 157s] libosmocodec0.i586: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 157s] libosmocoding0.i586: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 157s] libosmocore16.i586: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 157s] libosmoctrl0.i586: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 157s] libosmogb11.i586: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 157s] libosmogsm15.i586: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 157s] libosmosim2.i586: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 157s] libosmousb0.i586: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 157s] libosmovty4.i586: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 157s] Your shared library package requires a fixed version of another package. The [ 157s] intention of the Shared Library Policy is to allow parallel installation of [ 157s] multiple versions of the same shared library, hard dependencies likely make [ 157s] that impossible. Please remove this dependency and instead move it to the [ 157s] runtime uses of your library. [ 157s] [ 157s] (none): E: badness 3960 exceeds threshold 1000, aborting. [ 157s] 20 packages and 0 specfiles checked; 9 errors, 22 warnings. [ 157s] [ 157s] ### VM INTERACTION START ### [ 160s] [ 145.902805] sysrq: Power Off [ 160s] [ 145.910704] reboot: Power down [ 161s] ### VM INTERACTION END ### [ 161s] [ 161s] cloud128 failed "build libosmocore.spec" at Mon Jan 18 10:13:42 UTC 2021. [ 161s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jan 18 10:14:14 2021 From: admin at opensuse.org (OBS Notification) Date: Mon, 18 Jan 2021 10:14:14 +0000 Subject: Build failure of network:osmocom:nightly/libosmocore in openSUSE_Leap_15.1_ARM/aarch64 In-Reply-To: References: Message-ID: <60055f90cf77c_6532aec7c1d860019953f7@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libosmocore/openSUSE_Leap_15.1_ARM/aarch64 Package network:osmocom:nightly/libosmocore failed to build in openSUSE_Leap_15.1_ARM/aarch64 Check out the package for editing: osc checkout network:osmocom:nightly libosmocore Last lines of build log: [ 165s] Your package starts with 'lib' as part of its name, but does not provide any [ 165s] libraries. It must not be called a lib-package then. Give it a more sensible [ 165s] name. [ 165s] [ 165s] libosmocodec0.aarch64: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 165s] libosmocoding0.aarch64: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 165s] libosmocore16.aarch64: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 165s] libosmoctrl0.aarch64: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 165s] libosmogb11.aarch64: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 165s] libosmogsm15.aarch64: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 165s] libosmosim2.aarch64: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 165s] libosmousb0.aarch64: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 165s] libosmovty4.aarch64: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 165s] Your shared library package requires a fixed version of another package. The [ 165s] intention of the Shared Library Policy is to allow parallel installation of [ 165s] multiple versions of the same shared library, hard dependencies likely make [ 165s] that impossible. Please remove this dependency and instead move it to the [ 165s] runtime uses of your library. [ 165s] [ 165s] (none): E: badness 3960 exceeds threshold 1000, aborting. [ 165s] 20 packages and 0 specfiles checked; 9 errors, 22 warnings. [ 165s] [ 165s] ### VM INTERACTION START ### [ 168s] [ 155.258352] sysrq: SysRq : Power Off [ 168s] [ 155.282248] reboot: Power down [ 168s] ### VM INTERACTION END ### [ 168s] [ 168s] obs-arm-9 failed "build libosmocore.spec" at Mon Jan 18 10:14:02 UTC 2021. [ 168s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jan 18 10:14:31 2021 From: admin at opensuse.org (OBS Notification) Date: Mon, 18 Jan 2021 10:14:31 +0000 Subject: Build failure of network:osmocom:nightly/libosmocore in openSUSE_Factory_ARM/aarch64 In-Reply-To: References: Message-ID: <60055f91d0bde_6532aec7c1d8600199548d@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libosmocore/openSUSE_Factory_ARM/aarch64 Package network:osmocom:nightly/libosmocore failed to build in openSUSE_Factory_ARM/aarch64 Check out the package for editing: osc checkout network:osmocom:nightly libosmocore Last lines of build log: [ 192s] Your package starts with 'lib' as part of its name, but does not provide any [ 192s] libraries. It must not be called a lib-package then. Give it a more sensible [ 192s] name. [ 192s] [ 192s] libosmocodec0.aarch64: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 192s] libosmocoding0.aarch64: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 192s] libosmocore16.aarch64: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 192s] libosmoctrl0.aarch64: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 192s] libosmogb11.aarch64: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 192s] libosmogsm15.aarch64: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 192s] libosmosim2.aarch64: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 192s] libosmousb0.aarch64: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 192s] libosmovty4.aarch64: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 192s] Your shared library package requires a fixed version of another package. The [ 192s] intention of the Shared Library Policy is to allow parallel installation of [ 192s] multiple versions of the same shared library, hard dependencies likely make [ 192s] that impossible. Please remove this dependency and instead move it to the [ 192s] runtime uses of your library. [ 192s] [ 192s] (none): E: badness 3960 exceeds threshold 1000, aborting. [ 192s] 20 packages and 0 specfiles checked; 9 errors, 22 warnings. [ 192s] [ 192s] ### VM INTERACTION START ### [ 195s] [ 180.272052] sysrq: Power Off [ 195s] [ 180.276197] reboot: Power down [ 196s] ### VM INTERACTION END ### [ 196s] [ 196s] obs-arm-9 failed "build libosmocore.spec" at Mon Jan 18 10:14:25 UTC 2021. [ 196s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Mon Jan 18 10:15:12 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 18 Jan 2021 10:15:12 +0000 Subject: Change in osmo-pcu[master]: Move T_defs_pcu from BTS to PCU object In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22179 ) Change subject: Move T_defs_pcu from BTS to PCU object ...................................................................... Patch Set 2: Code-Review+2 May be in some future use case we want to have some timers to be overridden on BTS level (in multi bts setups). -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22179 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I0cac5c12dff2e90b52d00383a00b4b94a9603a0a Gerrit-Change-Number: 22179 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Mon, 18 Jan 2021 10:15:12 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 10:15:37 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 18 Jan 2021 10:15:37 +0000 Subject: Change in osmo-bsc[master]: hodec2: fix congestion resolution on dyn TS In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22265 ) Change subject: hodec2: fix congestion resolution on dyn TS ...................................................................... Patch Set 1: (2 comments) https://gerrit.osmocom.org/c/osmo-bsc/+/22265/1/src/osmo-bsc/handover_decision_2.c File src/osmo-bsc/handover_decision_2.c: https://gerrit.osmocom.org/c/osmo-bsc/+/22265/1/src/osmo-bsc/handover_decision_2.c at 644 PS1, Line 644: if (c->target.free_tchf - 1 >= c->target.min_free_tchf I'd probably add () around this comparisong and the operationbelow for clearness: (c->target.free_tchh - c->target.next_tchf_reduces_tchh) Not critical though. https://gerrit.osmocom.org/c/osmo-bsc/+/22265/1/src/osmo-bsc/handover_decision_2.c at 923 PS1, Line 923: /* Would the next TCH/F lchan convert a dynamic timeslot that currently counts for free TCH/H timeslots? */ Convert into what? -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22265 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I1536b60f03cb0aeb6ba14a72b518aec82fa572fe Gerrit-Change-Number: 22265 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 10:15:37 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 10:15:40 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 18 Jan 2021 10:15:40 +0000 Subject: Change in osmo-pcu[master]: Move force_two_phase field from BTS to PCU In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22180 ) Change subject: Move force_two_phase field from BTS to PCU ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22180 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I68a6e032f725cde87992b99f039c5280e912faf7 Gerrit-Change-Number: 22180 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Mon, 18 Jan 2021 10:15:40 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 10:15:42 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 18 Jan 2021 10:15:42 +0000 Subject: Change in osmo-bsc[master]: hodec2: fix congestion resolution on dyn TS In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22265 ) Change subject: hodec2: fix congestion resolution on dyn TS ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22265 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I1536b60f03cb0aeb6ba14a72b518aec82fa572fe Gerrit-Change-Number: 22265 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 10:15:42 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 10:16:21 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 18 Jan 2021 10:16:21 +0000 Subject: Change in osmo-bsc[master]: add test_dyn_ts_congestion_tch_f_vs_tch_h_2.ho_vty In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22266 ) Change subject: add test_dyn_ts_congestion_tch_f_vs_tch_h_2.ho_vty ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22266 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ib11d10f35f72a3dff65bb0c5e185fdda602ccd63 Gerrit-Change-Number: 22266 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 10:16:21 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 10:17:24 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 18 Jan 2021 10:17:24 +0000 Subject: Change in osmo-bsc[master]: lchan_avail(): omit logging for handover decision 2 In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22267 ) Change subject: lchan_avail(): omit logging for handover decision 2 ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22267 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ia403f8fc853ca9ea9e81f7a7395df6b23845ebed Gerrit-Change-Number: 22267 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 10:17:24 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Mon Jan 18 10:17:23 2021 From: admin at opensuse.org (OBS Notification) Date: Mon, 18 Jan 2021 10:17:23 +0000 Subject: Build failure of network:osmocom:nightly/libosmocore in openSUSE_Tumbleweed/x86_64 In-Reply-To: References: Message-ID: <6005604540151_6532aec7c1d86001995782@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libosmocore/openSUSE_Tumbleweed/x86_64 Package network:osmocom:nightly/libosmocore failed to build in openSUSE_Tumbleweed/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly libosmocore Last lines of build log: [ 121s] Your package starts with 'lib' as part of its name, but does not provide any [ 121s] libraries. It must not be called a lib-package then. Give it a more sensible [ 121s] name. [ 121s] [ 121s] libosmocodec0.x86_64: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 121s] libosmocoding0.x86_64: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 121s] libosmocore16.x86_64: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 121s] libosmoctrl0.x86_64: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 121s] libosmogb11.x86_64: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 121s] libosmogsm15.x86_64: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 121s] libosmosim2.x86_64: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 121s] libosmousb0.x86_64: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 121s] libosmovty4.x86_64: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 121s] Your shared library package requires a fixed version of another package. The [ 121s] intention of the Shared Library Policy is to allow parallel installation of [ 121s] multiple versions of the same shared library, hard dependencies likely make [ 121s] that impossible. Please remove this dependency and instead move it to the [ 121s] runtime uses of your library. [ 121s] [ 121s] (none): E: badness 3960 exceeds threshold 1000, aborting. [ 121s] 20 packages and 0 specfiles checked; 9 errors, 22 warnings. [ 121s] [ 121s] ### VM INTERACTION START ### [ 124s] [ 116.855008] sysrq: Power Off [ 124s] [ 116.864043] reboot: Power down [ 124s] ### VM INTERACTION END ### [ 124s] [ 124s] lamb18 failed "build libosmocore.spec" at Mon Jan 18 10:17:19 UTC 2021. [ 124s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jan 18 10:17:40 2021 From: admin at opensuse.org (OBS Notification) Date: Mon, 18 Jan 2021 10:17:40 +0000 Subject: Build failure of network:osmocom:nightly/libosmocore in openSUSE_Leap_15.2/x86_64 In-Reply-To: References: Message-ID: <6005605f923d6_6532aec7c1d86001995810@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libosmocore/openSUSE_Leap_15.2/x86_64 Package network:osmocom:nightly/libosmocore failed to build in openSUSE_Leap_15.2/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly libosmocore Last lines of build log: [ 150s] Your package starts with 'lib' as part of its name, but does not provide any [ 150s] libraries. It must not be called a lib-package then. Give it a more sensible [ 150s] name. [ 150s] [ 150s] libosmocodec0.x86_64: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 150s] libosmocoding0.x86_64: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 150s] libosmocore16.x86_64: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 150s] libosmoctrl0.x86_64: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 150s] libosmogb11.x86_64: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 150s] libosmogsm15.x86_64: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 150s] libosmosim2.x86_64: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 150s] libosmousb0.x86_64: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 150s] libosmovty4.x86_64: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 150s] Your shared library package requires a fixed version of another package. The [ 150s] intention of the Shared Library Policy is to allow parallel installation of [ 150s] multiple versions of the same shared library, hard dependencies likely make [ 150s] that impossible. Please remove this dependency and instead move it to the [ 150s] runtime uses of your library. [ 150s] [ 150s] (none): E: badness 3960 exceeds threshold 1000, aborting. [ 150s] 20 packages and 0 specfiles checked; 9 errors, 22 warnings. [ 150s] [ 150s] ### VM INTERACTION START ### [ 153s] [ 142.275627] sysrq: Power Off [ 153s] [ 142.280959] reboot: Power down [ 153s] ### VM INTERACTION END ### [ 153s] [ 153s] lamb23 failed "build libosmocore.spec" at Mon Jan 18 10:17:24 UTC 2021. [ 153s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jan 18 10:18:48 2021 From: admin at opensuse.org (OBS Notification) Date: Mon, 18 Jan 2021 10:18:48 +0000 Subject: Build failure of network:osmocom:nightly/libosmocore in openSUSE_Leap_15.1/x86_64 In-Reply-To: References: Message-ID: <6005609d64664_6532aec7c1d8600199635f@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libosmocore/openSUSE_Leap_15.1/x86_64 Package network:osmocom:nightly/libosmocore failed to build in openSUSE_Leap_15.1/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly libosmocore Last lines of build log: [ 87s] Your package starts with 'lib' as part of its name, but does not provide any [ 87s] libraries. It must not be called a lib-package then. Give it a more sensible [ 87s] name. [ 87s] [ 87s] libosmocodec0.x86_64: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 87s] libosmocoding0.x86_64: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 87s] libosmocore16.x86_64: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 87s] libosmoctrl0.x86_64: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 87s] libosmogb11.x86_64: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 87s] libosmogsm15.x86_64: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 87s] libosmosim2.x86_64: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 87s] libosmousb0.x86_64: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 87s] libosmovty4.x86_64: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 87s] Your shared library package requires a fixed version of another package. The [ 87s] intention of the Shared Library Policy is to allow parallel installation of [ 87s] multiple versions of the same shared library, hard dependencies likely make [ 87s] that impossible. Please remove this dependency and instead move it to the [ 87s] runtime uses of your library. [ 87s] [ 87s] (none): E: badness 3960 exceeds threshold 1000, aborting. [ 87s] 20 packages and 0 specfiles checked; 9 errors, 22 warnings. [ 87s] [ 87s] ### VM INTERACTION START ### [ 90s] [ 82.891763] sysrq: SysRq : Power Off [ 90s] [ 82.896585] reboot: Power down [ 90s] ### VM INTERACTION END ### [ 90s] [ 90s] sheep85 failed "build libosmocore.spec" at Mon Jan 18 10:18:37 UTC 2021. [ 90s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Mon Jan 18 10:20:17 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 18 Jan 2021 10:20:17 +0000 Subject: Change in osmo-pcu[master]: Move ns_dialect field from BTS to PCU In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22187 ) Change subject: Move ns_dialect field from BTS to PCU ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22187 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Iffb22b776b91f93d6d2a7ccfa47deeecc22c33f0 Gerrit-Change-Number: 22187 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Mon, 18 Jan 2021 10:20:17 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 10:21:38 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 18 Jan 2021 10:21:38 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: clear local and remote entries when SNS failed In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22206 ) Change subject: gprs_ns2_sns: clear local and remote entries when SNS failed ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22206 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie4db81acdd5f8ddf1a1f5dc7645d1144545d9c73 Gerrit-Change-Number: 22206 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 10:21:38 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 10:22:20 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 18 Jan 2021 10:22:20 +0000 Subject: Change in libosmocore[master]: gprs_ns2: flag then NSE as dead in nse_free() In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22208 ) Change subject: gprs_ns2: flag then NSE as dead in nse_free() ...................................................................... Patch Set 5: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22208 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I535b3e5dd7240d19dd685652173775b250f5cc2d Gerrit-Change-Number: 22208 Gerrit-PatchSet: 5 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 10:22:20 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 10:22:43 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 18 Jan 2021 10:22:43 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vc_fsm: fix spaces and remove wrong comment In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22209 ) Change subject: gprs_ns2_vc_fsm: fix spaces and remove wrong comment ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22209 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I52799d8ce8244fae7512a6e14a3cf2408a218c2d Gerrit-Change-Number: 22209 Gerrit-PatchSet: 5 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 10:22:43 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 10:22:52 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 18 Jan 2021 10:22:52 +0000 Subject: Change in osmo-pcu[master]: Move alpha,gamma fields from BTS to PCU In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22181 ) Change subject: Move alpha,gamma fields from BTS to PCU ...................................................................... Patch Set 2: In general for PCU/BTS configuration I would like to define a default value and allow those to be overridden by a BTS. -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22181 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I2fdd9c8a7393157183fff64084bb10e2a3b1dc63 Gerrit-Change-Number: 22181 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-CC: lynxis lazus Gerrit-Comment-Date: Mon, 18 Jan 2021 10:22:52 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 10:23:32 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 18 Jan 2021 10:23:32 +0000 Subject: Change in osmo-bsc[master]: hodec2: fix congestion balancing on dyn TS In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22269 ) Change subject: hodec2: fix congestion balancing on dyn TS ...................................................................... Patch Set 2: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/22269/2/src/osmo-bsc/handover_decision_2.c File src/osmo-bsc/handover_decision_2.c: https://gerrit.osmocom.org/c/osmo-bsc/+/22269/2/src/osmo-bsc/handover_decision_2.c at 117 PS2, Line 117: /* Effects of freeing a dynamic timeslot: */ does this mean turning it to PDCH? -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22269 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I433df6f343650f9056b1bab926bc19ac1d867ad5 Gerrit-Change-Number: 22269 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 10:23:32 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 10:24:09 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 18 Jan 2021 10:24:09 +0000 Subject: Change in osmo-bsc[master]: show bug: add test_dyn_ts_balance_congestion.ho_vty In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22268 ) Change subject: show bug: add test_dyn_ts_balance_congestion.ho_vty ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22268 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I34471fbd490a95253bd0709308a42cde2af6481c Gerrit-Change-Number: 22268 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 10:24:09 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 10:24:29 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 18 Jan 2021 10:24:29 +0000 Subject: Change in libosmocore[master]: test: gprs_ns2: don't leak the talloc context In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22270 ) Change subject: test: gprs_ns2: don't leak the talloc context ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22270 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ibf926d8db88cdb403d29de5e666dfb71eefc7b72 Gerrit-Change-Number: 22270 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 10:24:29 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 10:24:53 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 18 Jan 2021 10:24:53 +0000 Subject: Change in libosmocore[master]: test: gprs_ns2: free the nsi after each test In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22272 ) Change subject: test: gprs_ns2: free the nsi after each test ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22272 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I700da48d7afe6b1a81484a0725faf0c56073446d Gerrit-Change-Number: 22272 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 10:24:53 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 10:26:14 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 18 Jan 2021 10:26:14 +0000 Subject: Change in libosmocore[master]: test: gprs_ns2: correct implement free_bind() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22271 ) Change subject: test: gprs_ns2: correct implement free_bind() ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/22271/2/tests/gb/gprs_ns2_test.c File tests/gb/gprs_ns2_test.c: https://gerrit.osmocom.org/c/libosmocore/+/22271/2/tests/gb/gprs_ns2_test.c at 53 PS2, Line 53: void free_bind(struct gprs_ns2_vc_bind *bind) this can be static btw. If it clears stuff, why is it called free_bind? And why does the function exist at all? Simply rename it to "clear_pdus and use it as it is in the test. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22271 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Iac506734c93aca8be045ac13788d07d1bdc78eb3 Gerrit-Change-Number: 22271 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 10:26:14 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 10:26:15 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 18 Jan 2021 10:26:15 +0000 Subject: Change in libosmocore[master]: test: gprs_ns2: don't leak the talloc context In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22270 ) Change subject: test: gprs_ns2: don't leak the talloc context ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/22270/2//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/libosmocore/+/22270/2//COMMIT_MSG at 9 PS2, Line 9: Makes the address sanitizer happy Maybe ASAN is not happy because you leak some child chunks of this context? We generally do not free the parent context in osmo-* and ASAN does not complain... -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22270 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ibf926d8db88cdb403d29de5e666dfb71eefc7b72 Gerrit-Change-Number: 22270 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 10:26:15 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 10:26:45 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 18 Jan 2021 10:26:45 +0000 Subject: Change in osmo-pcu[master]: Move fc_* fields from BTS to PCU In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22188 ) Change subject: Move fc_* fields from BTS to PCU ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22188 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I816d49e732d0fc7a3c9aa1f0e9a83b83d25e6a32 Gerrit-Change-Number: 22188 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Mon, 18 Jan 2021 10:26:45 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 10:27:03 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 18 Jan 2021 10:27:03 +0000 Subject: Change in libosmocore[master]: gprs_ns2: when calling nsvc_force_unconf for a dynamic NSE drop the NSE. In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22200 ) Change subject: gprs_ns2: when calling nsvc_force_unconf for a dynamic NSE drop the NSE. ...................................................................... Patch Set 6: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22200 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I0a4f35c974c8c3b79c48f2f56170722c95254332 Gerrit-Change-Number: 22200 Gerrit-PatchSet: 6 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 10:27:03 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 10:27:43 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 18 Jan 2021 10:27:43 +0000 Subject: Change in libosmocore[master]: gprs_ns2: allow to use free_vc() with NULL In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22274 ) Change subject: gprs_ns2: allow to use free_vc() with NULL ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22274 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If7b0c6916a29d4611d0a40c388414076eb83e6b5 Gerrit-Change-Number: 22274 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 10:27:43 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 10:28:04 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 18 Jan 2021 10:28:04 +0000 Subject: Change in libosmocore[master]: test: gprs_ns2: free the nsi after each test In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22272 ) Change subject: test: gprs_ns2: free the nsi after each test ...................................................................... Patch Set 2: Code-Review+2 (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/22272/2/tests/gb/gprs_ns2_test.c File tests/gb/gprs_ns2_test.c: https://gerrit.osmocom.org/c/libosmocore/+/22272/2/tests/gb/gprs_ns2_test.c at a152 PS2, Line 152: unrelated ws change -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22272 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I700da48d7afe6b1a81484a0725faf0c56073446d Gerrit-Change-Number: 22272 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 10:28:04 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 10:28:35 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 18 Jan 2021 10:28:35 +0000 Subject: Change in osmo-pcu[master]: tests/tbf: Allocate PCU per test instead of globally In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22189 ) Change subject: tests/tbf: Allocate PCU per test instead of globally ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22189 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I18e2fe7dd1cc5940570252a2a6a106de49d8a7dd Gerrit-Change-Number: 22189 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Mon, 18 Jan 2021 10:28:35 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 10:30:02 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 18 Jan 2021 10:30:02 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: clear local and remote entries when SNS failed In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22206 ) Change subject: gprs_ns2_sns: clear local and remote entries when SNS failed ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22206 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie4db81acdd5f8ddf1a1f5dc7645d1144545d9c73 Gerrit-Change-Number: 22206 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 10:30:02 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 10:30:24 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 18 Jan 2021 10:30:24 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: clear local and remote entries when SNS failed In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22206 ) Change subject: gprs_ns2_sns: clear local and remote entries when SNS failed ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22206 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie4db81acdd5f8ddf1a1f5dc7645d1144545d9c73 Gerrit-Change-Number: 22206 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 10:30:24 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 10:30:25 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 18 Jan 2021 10:30:25 +0000 Subject: Change in osmo-pcu[master]: Move ws_* fields from BTS to PCU In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22190 ) Change subject: Move ws_* fields from BTS to PCU ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22190 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I997bc52f0d924c8f2a0b1d6cf23af98828ad4258 Gerrit-Change-Number: 22190 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Mon, 18 Jan 2021 10:30:25 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 10:32:09 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 18 Jan 2021 10:32:09 +0000 Subject: Change in osmo-pcu[master]: Move llc_* fields from BTS to PCU In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22191 ) Change subject: Move llc_* fields from BTS to PCU ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22191 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Iffb916e53fdf99164ad07cd19e4b35a64136307e Gerrit-Change-Number: 22191 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Mon, 18 Jan 2021 10:32:09 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 10:37:05 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 18 Jan 2021 10:37:05 +0000 Subject: Change in osmo-pcu[master]: Split PCU global PCU object from BTS object In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22162 ) Change subject: Split PCU global PCU object from BTS object ...................................................................... Split PCU global PCU object from BTS object Currently the BTS object (and gprs_rlcmac_bts struct) are used to hold both PCU global fields and BTS specific fields, all mangled together. The BTS is even accessed in lots of places by means of a singleton. This patch introduces a new struct gprs_pcu object aimed at holding all global state, and several fields are already moved from BTS to it. The new object can be accessed as global variable "the_pcu", reusing and including an already exisitng "the_pcu" global variable only used for bssgp related purposes so far. This is only a first step towards having a complete split global pcu and BTS, some fields are still kept in BTS and will be moved over follow-up smaller patches in the future (since this patch is already quite big). So far, the code still only supports one BTS, which can be accessed using the_pcu->bts. In the future that field will be replaced with a list, and the BTS singletons will be removed. The cur_fn output changes in TbfTest are actually a side effect fix, since the singleton main_bts() now points internally to the_pcu->bts, hence the same we allocate and assign in the test. Beforehand, "the_bts" was allocated in the stack while main_bts() still returned an unrelated singleton BTS object instance. Related: OS#4935 Change-Id: I88e3c6471b80245ce3798223f1a61190f14aa840 --- M src/Makefile.am M src/bts.cpp M src/bts.h M src/gprs_bssgp_pcu.cpp M src/gprs_bssgp_pcu.h A src/gprs_pcu.c A src/gprs_pcu.h M src/gprs_rlcmac_ts_alloc.cpp M src/osmobts_sock.cpp M src/pcu_l1_if.cpp M src/pcu_l1_if.h M src/pcu_main.cpp M src/pcu_vty.c M src/tbf.cpp M tests/alloc/AllocTest.cpp M tests/alloc/MslotTest.cpp M tests/app_info/AppInfoTest.cpp M tests/edge/EdgeTest.cpp M tests/emu/pcu_emu.cpp M tests/fn/FnTest.cpp M tests/ms/MsTest.cpp M tests/tbf/TbfTest.cpp M tests/tbf/TbfTest.err M tests/types/TypesTest.cpp 24 files changed, 1,005 insertions(+), 787 deletions(-) Approvals: lynxis lazus: Looks good to me, approved Jenkins Builder: Verified -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22162 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I88e3c6471b80245ce3798223f1a61190f14aa840 Gerrit-Change-Number: 22162 Gerrit-PatchSet: 6 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-CC: fixeria Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 10:37:07 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 18 Jan 2021 10:37:07 +0000 Subject: Change in osmo-pcu[master]: Move T_defs_pcu from BTS to PCU object In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22179 ) Change subject: Move T_defs_pcu from BTS to PCU object ...................................................................... Move T_defs_pcu from BTS to PCU object Change-Id: I0cac5c12dff2e90b52d00383a00b4b94a9603a0a --- M src/bts.cpp M src/bts.h M src/gprs_bssgp_pcu.cpp M src/gprs_pcu.c M src/gprs_pcu.h M src/gprs_rlcmac_sched.cpp M src/pcu_vty.c M src/tbf.cpp M src/tbf_dl.cpp M tests/tbf/TbfTest.cpp 10 files changed, 41 insertions(+), 53 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve lynxis lazus: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/bts.cpp b/src/bts.cpp index 3c4e676..ac58f48 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -76,17 +76,6 @@ { .T=3195, .default_val=5, .unit=OSMO_TDEF_S, .desc="Reuse of TFI(s) upon no response from the MS (radio failure or cell change) for TBF/MBMS radio bearer (s)", .val=0 }, { .T=0, .default_val=0, .unit=OSMO_TDEF_S, .desc=NULL, .val=0 } /* empty item at the end */ }; -static struct osmo_tdef T_defs_pcu[] = { - { .T=1, .default_val=30, .unit=OSMO_TDEF_S, .desc="BSSGP (un)blocking procedures timer (s)", .val=0 }, - { .T=2, .default_val=30, .unit=OSMO_TDEF_S, .desc="BSSGP reset procedure timer (s)", .val=0 }, - { .T=3190, .default_val=5, .unit=OSMO_TDEF_S, .desc="Return to packet idle mode after Packet DL Assignment on CCCH (s)", .val=0}, - { .T=-2000, .default_val=2, .unit=OSMO_TDEF_MS, .desc="Tbf reject for PRR timer (ms)", .val=0 }, - { .T=-2001, .default_val=2, .unit=OSMO_TDEF_S, .desc="PACCH assignment timer (s)", .val=0 }, - { .T=-2002, .default_val=200, .unit=OSMO_TDEF_MS, .desc="Waiting after IMM.ASS confirm timer (ms)", .val=0 }, - { .T=-2030, .default_val=60, .unit=OSMO_TDEF_S, .desc="Time to keep an idle MS object alive (s)", .val=0 }, /* slightly above T3314 (default 44s, 24.008, 11.2.2) */ - { .T=-2031, .default_val=2000, .unit=OSMO_TDEF_MS, .desc="Time to keep an idle DL TBF alive (ms)", .val=0 }, - { .T=0, .default_val=0, .unit=OSMO_TDEF_S, .desc=NULL, .val=0 } /* empty item at the end */ -}; /** * For gcc-4.4 compat do not use extended initializer list but keep the @@ -267,9 +256,7 @@ bts->bts = bts_obj; bts->dl_tbf_preemptive_retransmission = true; bts->T_defs_bts = T_defs_bts; - bts->T_defs_pcu = T_defs_pcu; osmo_tdefs_reset(bts->T_defs_bts); - osmo_tdefs_reset(bts->T_defs_pcu); /* initialize back pointers */ for (size_t trx_no = 0; trx_no < ARRAY_SIZE(bts->trx); ++trx_no) { @@ -1135,7 +1122,7 @@ GprsMs *ms; ms = ms_store().create_ms(); - ms_set_timeout(ms, osmo_tdef_get(m_bts.T_defs_pcu, -2030, OSMO_TDEF_S, -1)); + ms_set_timeout(ms, osmo_tdef_get(pcu->T_defs, -2030, OSMO_TDEF_S, -1)); ms_set_ms_class(ms, ms_class); ms_set_egprs_ms_class(ms, egprs_ms_class); diff --git a/src/bts.h b/src/bts.h index fdd8536..4755d2e 100644 --- a/src/bts.h +++ b/src/bts.h @@ -101,7 +101,6 @@ uint32_t llc_codel_interval_msec; /* 0=disabled, -1=use default interval */ /* Timer defintions */ struct osmo_tdef *T_defs_bts; /* timers controlled by BTS, received through PCUIF */ - struct osmo_tdef *T_defs_pcu; /* timers controlled by PCU */ uint8_t n3101; uint8_t n3103; uint8_t n3105; diff --git a/src/gprs_bssgp_pcu.cpp b/src/gprs_bssgp_pcu.cpp index 2c9073b..cfaee73 100644 --- a/src/gprs_bssgp_pcu.cpp +++ b/src/gprs_bssgp_pcu.cpp @@ -914,7 +914,7 @@ if (!the_pcu->bssgp.bvc_sig_reset) { LOGP(DBSSGP, LOGL_INFO, "Sending reset on BVCI 0\n"); bssgp_tx_bvc_reset(the_pcu->bssgp.bctx, 0, BSSGP_CAUSE_OML_INTERV); - secs = osmo_tdef_get(the_pcu->bssgp.bts->T_defs_pcu, 2, OSMO_TDEF_S, -1); + secs = osmo_tdef_get(the_pcu->T_defs, 2, OSMO_TDEF_S, -1); osmo_timer_schedule(&the_pcu->bssgp.bvc_timer, secs, 0); return; } @@ -923,7 +923,7 @@ LOGP(DBSSGP, LOGL_INFO, "Sending reset on BVCI %d\n", the_pcu->bssgp.bctx->bvci); bssgp_tx_bvc_reset(the_pcu->bssgp.bctx, the_pcu->bssgp.bctx->bvci, BSSGP_CAUSE_OML_INTERV); - secs = osmo_tdef_get(the_pcu->bssgp.bts->T_defs_pcu, 2, OSMO_TDEF_S, -1); + secs = osmo_tdef_get(the_pcu->T_defs, 2, OSMO_TDEF_S, -1); osmo_timer_schedule(&the_pcu->bssgp.bvc_timer, secs, 0); return; } @@ -932,7 +932,7 @@ LOGP(DBSSGP, LOGL_INFO, "Sending unblock on BVCI %d\n", the_pcu->bssgp.bctx->bvci); bssgp_tx_bvc_unblock(the_pcu->bssgp.bctx); - secs = osmo_tdef_get(the_pcu->bssgp.bts->T_defs_pcu, 1, OSMO_TDEF_S, -1); + secs = osmo_tdef_get(the_pcu->T_defs, 1, OSMO_TDEF_S, -1); osmo_timer_schedule(&the_pcu->bssgp.bvc_timer, secs, 0); return; } diff --git a/src/gprs_pcu.c b/src/gprs_pcu.c index 7fa5a2e..e08094b 100644 --- a/src/gprs_pcu.c +++ b/src/gprs_pcu.c @@ -27,6 +27,18 @@ struct gprs_pcu *the_pcu; +static struct osmo_tdef T_defs_pcu[] = { + { .T=1, .default_val=30, .unit=OSMO_TDEF_S, .desc="BSSGP (un)blocking procedures timer (s)", .val=0 }, + { .T=2, .default_val=30, .unit=OSMO_TDEF_S, .desc="BSSGP reset procedure timer (s)", .val=0 }, + { .T=3190, .default_val=5, .unit=OSMO_TDEF_S, .desc="Return to packet idle mode after Packet DL Assignment on CCCH (s)", .val=0}, + { .T=-2000, .default_val=2, .unit=OSMO_TDEF_MS, .desc="Tbf reject for PRR timer (ms)", .val=0 }, + { .T=-2001, .default_val=2, .unit=OSMO_TDEF_S, .desc="PACCH assignment timer (s)", .val=0 }, + { .T=-2002, .default_val=200, .unit=OSMO_TDEF_MS, .desc="Waiting after IMM.ASS confirm timer (ms)", .val=0 }, + { .T=-2030, .default_val=60, .unit=OSMO_TDEF_S, .desc="Time to keep an idle MS object alive (s)", .val=0 }, /* slightly above T3314 (default 44s, 24.008, 11.2.2) */ + { .T=-2031, .default_val=2000, .unit=OSMO_TDEF_MS, .desc="Time to keep an idle DL TBF alive (ms)", .val=0 }, + { .T=0, .default_val=0, .unit=OSMO_TDEF_S, .desc=NULL, .val=0 } /* empty item at the end */ +}; + struct gprs_pcu *gprs_pcu_alloc(void *ctx) { struct gprs_pcu *pcu; @@ -39,6 +51,9 @@ pcu->vty.max_mcs_ul = MAX_EDGE_MCS; pcu->vty.max_mcs_dl = MAX_EDGE_MCS; + pcu->T_defs = T_defs_pcu; + osmo_tdefs_reset(pcu->T_defs); + return pcu; } diff --git a/src/gprs_pcu.h b/src/gprs_pcu.h index bf65fa7..9696e96 100644 --- a/src/gprs_pcu.h +++ b/src/gprs_pcu.h @@ -86,6 +86,8 @@ alloc_algorithm_func_t alloc_algorithm; struct gprs_bssgp_pcu bssgp; + + struct osmo_tdef *T_defs; /* timers controlled by PCU */ }; diff --git a/src/gprs_rlcmac_sched.cpp b/src/gprs_rlcmac_sched.cpp index 924a4de..b5709c9 100644 --- a/src/gprs_rlcmac_sched.cpp +++ b/src/gprs_rlcmac_sched.cpp @@ -252,8 +252,8 @@ uint8_t ts, uint32_t fn, int age) { const gprs_rlc_dl_window *w = static_cast(tbf->window()); - unsigned long msecs_t3190 = osmo_tdef_get(bts->T_defs_pcu, 3190, OSMO_TDEF_MS, -1); - unsigned long dl_tbf_idle_msec = osmo_tdef_get(bts->T_defs_pcu, -2031, OSMO_TDEF_MS, -1); + unsigned long msecs_t3190 = osmo_tdef_get(the_pcu->T_defs, 3190, OSMO_TDEF_MS, -1); + unsigned long dl_tbf_idle_msec = osmo_tdef_get(the_pcu->T_defs, -2031, OSMO_TDEF_MS, -1); int age_thresh1 = msecs_to_frames(200); int age_thresh2 = msecs_to_frames(OSMO_MIN(msecs_t3190/2, dl_tbf_idle_msec)); diff --git a/src/pcu_vty.c b/src/pcu_vty.c index b5c70c7..a2c58eb 100644 --- a/src/pcu_vty.c +++ b/src/pcu_vty.c @@ -249,7 +249,7 @@ else vty_out(vty, " gb-dialect classic%s", VTY_NEWLINE); - osmo_tdef_vty_write(vty, bts->T_defs_pcu, " timer "); + osmo_tdef_vty_write(vty, the_pcu->T_defs, " timer "); return CMD_SUCCESS; } @@ -856,9 +856,7 @@ { vty_out(vty, "%% 'dl-tbf-idle-time' is now deprecated: use 'timer X2031 ' instead%s", VTY_NEWLINE); - struct gprs_rlcmac_bts *bts = bts_main_data(); - - if (osmo_tdef_set(bts->T_defs_pcu, -2031, atoi(argv[0]), OSMO_TDEF_MS) < 0) + if (osmo_tdef_set(the_pcu->T_defs, -2031, atoi(argv[0]), OSMO_TDEF_MS) < 0) return CMD_WARNING; return CMD_SUCCESS; } @@ -870,9 +868,7 @@ { vty_out(vty, "%% 'no dl-tbf-idle-time' is now deprecated: use 'timer X2031 0' instead%s", VTY_NEWLINE); - struct gprs_rlcmac_bts *bts = bts_main_data(); - - if (osmo_tdef_set(bts->T_defs_pcu, -2031, 0, OSMO_TDEF_MS) < 0) + if (osmo_tdef_set(the_pcu->T_defs, -2031, 0, OSMO_TDEF_MS) < 0) return CMD_WARNING; return CMD_SUCCESS; } @@ -912,10 +908,7 @@ MS_IDLE_TIME_STR "idle time in sec") { vty_out(vty, "%% 'ms-idle-time' is now deprecated: use 'timer X2030 ' instead%s", VTY_NEWLINE); - - struct gprs_rlcmac_bts *bts = bts_main_data(); - - if (osmo_tdef_set(bts->T_defs_pcu, -2030, atoi(argv[0]), OSMO_TDEF_S) < 0) + if (osmo_tdef_set(the_pcu->T_defs, -2030, atoi(argv[0]), OSMO_TDEF_S) < 0) return CMD_WARNING; return CMD_SUCCESS; } @@ -926,10 +919,7 @@ NO_STR MS_IDLE_TIME_STR) { vty_out(vty, "%% 'no ms-idle-time' is now deprecated: use 'timer X2030 0' instead%s", VTY_NEWLINE); - - struct gprs_rlcmac_bts *bts = bts_main_data(); - - if (osmo_tdef_set(bts->T_defs_pcu, -2030, 0, OSMO_TDEF_S) < 0) + if (osmo_tdef_set(the_pcu->T_defs, -2030, 0, OSMO_TDEF_S) < 0) return CMD_WARNING; return CMD_SUCCESS; } @@ -1138,9 +1128,8 @@ SHOW_STR "Show PCU timers\n" OSMO_TDEF_VTY_DOC_T) { - struct gprs_rlcmac_bts *bts = bts_main_data(); const char *T_arg = argc > 0 ? argv[0] : NULL; - return osmo_tdef_vty_show_cmd(vty, bts->T_defs_pcu, T_arg, NULL); + return osmo_tdef_vty_show_cmd(vty, the_pcu->T_defs, T_arg, NULL); } DEFUN_ATTR(cfg_pcu_timer, cfg_pcu_timer_cmd, @@ -1149,11 +1138,10 @@ OSMO_TDEF_VTY_DOC_SET, CMD_ATTR_IMMEDIATE) { - struct gprs_rlcmac_bts *bts = bts_main_data(); /* If any arguments are missing, redirect to 'show' */ if (argc < 2) return show_timer(self, vty, argc, argv); - return osmo_tdef_vty_set_cmd(vty, bts->T_defs_pcu, argv); + return osmo_tdef_vty_set_cmd(vty, the_pcu->T_defs, argv); } DEFUN(show_tbf, diff --git a/src/tbf.cpp b/src/tbf.cpp index 02f0e3f..c42081b 100644 --- a/src/tbf.cpp +++ b/src/tbf.cpp @@ -493,7 +493,7 @@ struct osmo_tdef *tdef; if (!(tdef = osmo_tdef_get_entry(bts->bts_data()->T_defs_bts, T))) - tdef = osmo_tdef_get_entry(bts->bts_data()->T_defs_pcu, T); + tdef = osmo_tdef_get_entry(bts->pcu->T_defs, T); if (t >= T_MAX || !tdef) { LOGPSRC(DTBF, LOGL_ERROR, file, line, "%s attempting to start unknown timer %s [%s], cur_fn=%d\n", diff --git a/src/tbf_dl.cpp b/src/tbf_dl.cpp index 613f7b8..280e057 100644 --- a/src/tbf_dl.cpp +++ b/src/tbf_dl.cpp @@ -1365,7 +1365,7 @@ int keep_time_frames; unsigned long dl_tbf_idle_msec; - dl_tbf_idle_msec = osmo_tdef_get(bts_data()->T_defs_pcu, -2031, OSMO_TDEF_MS, -1); + dl_tbf_idle_msec = osmo_tdef_get(the_pcu->T_defs, -2031, OSMO_TDEF_MS, -1); if (dl_tbf_idle_msec == 0) return false; diff --git a/tests/tbf/TbfTest.cpp b/tests/tbf/TbfTest.cpp index cff47e6..69f07aa 100644 --- a/tests/tbf/TbfTest.cpp +++ b/tests/tbf/TbfTest.cpp @@ -176,8 +176,8 @@ the_pcu->alloc_algorithm = alloc_algorithm_a; bts->initial_cs_dl = cs; bts->initial_cs_ul = cs; - osmo_tdef_set(bts->T_defs_pcu, -2030, 0, OSMO_TDEF_S); - osmo_tdef_set(bts->T_defs_pcu, -2031, 0, OSMO_TDEF_S); + osmo_tdef_set(the_pcu->T_defs, -2030, 0, OSMO_TDEF_S); + osmo_tdef_set(the_pcu->T_defs, -2031, 0, OSMO_TDEF_S); trx = &bts->trx[0]; trx->pdch[ts_no].enable(); @@ -340,7 +340,6 @@ { the_pcu->bts = bts_alloc(the_pcu); BTS *the_bts = the_pcu->bts; - gprs_rlcmac_bts *bts; uint8_t ts_no = 4; unsigned i; uint8_t ms_class = 45; @@ -355,10 +354,8 @@ fprintf(stderr, "=== start %s ===\n", __func__); - bts = the_bts->bts_data(); - setup_bts(the_bts, ts_no); - OSMO_ASSERT(osmo_tdef_set(bts->T_defs_pcu, -2031, 200, OSMO_TDEF_MS) == 0); + OSMO_ASSERT(osmo_tdef_set(the_pcu->T_defs, -2031, 200, OSMO_TDEF_MS) == 0); dl_tbf = create_dl_tbf(the_bts, ms_class, 0, &trx_no); dl_tbf->update_ms(tlli, GPRS_RLCMAC_DL_TBF); @@ -392,7 +389,7 @@ RCV_ACK(false, dl_tbf, rbb); /* Receive an ACK */ /* Timeout (make sure fn % 52 remains valid) */ - dl_tbf_idle_msec = osmo_tdef_get(bts->T_defs_pcu, -2031, OSMO_TDEF_MS, -1); + dl_tbf_idle_msec = osmo_tdef_get(the_pcu->T_defs, -2031, OSMO_TDEF_MS, -1); fn += 52 * ((msecs_to_frames(dl_tbf_idle_msec + 100) + 51)/ 52); request_dl_rlc_block(dl_tbf, &fn); @@ -541,7 +538,7 @@ setup_bts(the_bts, ts_no); /* keep the MS object 10 seconds */ - OSMO_ASSERT(osmo_tdef_set(bts->T_defs_pcu, -2030, 10, OSMO_TDEF_S) == 0); + OSMO_ASSERT(osmo_tdef_set(the_pcu->T_defs, -2030, 10, OSMO_TDEF_S) == 0); gprs_bssgp_init(bts, 2234, 2234, 1, 1, false, 0, 0, 0); @@ -2552,7 +2549,7 @@ bts = the_bts->bts_data(); setup_bts(the_bts, ts_no); - OSMO_ASSERT(osmo_tdef_set(bts->T_defs_pcu, -2031, 200, OSMO_TDEF_MS) == 0); + OSMO_ASSERT(osmo_tdef_set(the_pcu->T_defs, -2031, 200, OSMO_TDEF_MS) == 0); /* ARQ II */ bts->dl_arq_type = EGPRS_ARQ2; @@ -3084,7 +3081,7 @@ bts = the_bts->bts_data(); bts->cs_downgrade_threshold = 0; setup_bts(the_bts, ts_no); - OSMO_ASSERT(osmo_tdef_set(bts->T_defs_pcu, -2031, 200, OSMO_TDEF_MS) == 0); + OSMO_ASSERT(osmo_tdef_set(the_pcu->T_defs, -2031, 200, OSMO_TDEF_MS) == 0); /* ARQ II */ bts->dl_arq_type = EGPRS_ARQ2; @@ -3114,7 +3111,7 @@ bts = the_bts->bts_data(); bts->cs_downgrade_threshold = 0; setup_bts(the_bts, ts_no); - OSMO_ASSERT(osmo_tdef_set(bts->T_defs_pcu, -2031, 200, OSMO_TDEF_MS) == 0); + OSMO_ASSERT(osmo_tdef_set(the_pcu->T_defs, -2031, 200, OSMO_TDEF_MS) == 0); /* ARQ I resegmentation support */ bts->dl_arq_type = EGPRS_ARQ1; @@ -3147,7 +3144,7 @@ bts = the_bts->bts_data(); setup_bts(the_bts, ts_no); - OSMO_ASSERT(osmo_tdef_set(bts->T_defs_pcu, -2031, 200, OSMO_TDEF_MS) == 0); + OSMO_ASSERT(osmo_tdef_set(the_pcu->T_defs, -2031, 200, OSMO_TDEF_MS) == 0); /* ARQ II */ bts->dl_arq_type = EGPRS_ARQ2; -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22179 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I0cac5c12dff2e90b52d00383a00b4b94a9603a0a Gerrit-Change-Number: 22179 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 10:37:07 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 18 Jan 2021 10:37:07 +0000 Subject: Change in osmo-pcu[master]: Move force_two_phase field from BTS to PCU In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22180 ) Change subject: Move force_two_phase field from BTS to PCU ...................................................................... Move force_two_phase field from BTS to PCU Change-Id: I68a6e032f725cde87992b99f039c5280e912faf7 --- M src/bts.cpp M src/bts.h M src/gprs_pcu.h M src/pcu_vty.c 4 files changed, 5 insertions(+), 11 deletions(-) Approvals: laforge: Looks good to me, approved lynxis lazus: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/bts.cpp b/src/bts.cpp index ac58f48..f965714 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -903,7 +903,7 @@ if (chan_req.single_block) LOGP(DRLCMAC, LOGL_DEBUG, "MS requests single block allocation\n"); - else if (m_bts.force_two_phase) { + else if (pcu->vty.force_two_phase) { LOGP(DRLCMAC, LOGL_DEBUG, "MS requests single block allocation, " "but we force two phase access\n"); chan_req.single_block = true; diff --git a/src/bts.h b/src/bts.h index 4755d2e..2097cca 100644 --- a/src/bts.h +++ b/src/bts.h @@ -106,7 +106,6 @@ uint8_t n3105; struct gprs_rlcmac_trx trx[8]; - uint8_t force_two_phase; uint8_t alpha, gamma; bool dl_tbf_preemptive_retransmission; uint8_t si13[GSM_MACBLOCK_LEN]; diff --git a/src/gprs_pcu.h b/src/gprs_pcu.h index 9696e96..4920966 100644 --- a/src/gprs_pcu.h +++ b/src/gprs_pcu.h @@ -74,6 +74,7 @@ bool force_initial_mcs; /* false=use from BTS true=use from VTY */ uint8_t max_cs_dl, max_cs_ul; uint8_t max_mcs_dl, max_mcs_ul; + uint8_t force_two_phase; } vty; struct gsmtap_inst *gsmtap; diff --git a/src/pcu_vty.c b/src/pcu_vty.c index a2c58eb..83fb166 100644 --- a/src/pcu_vty.c +++ b/src/pcu_vty.c @@ -227,7 +227,7 @@ vty_out(vty, " alloc-algorithm b%s", VTY_NEWLINE); if (the_pcu->alloc_algorithm == alloc_algorithm_dynamic) vty_out(vty, " alloc-algorithm dynamic%s", VTY_NEWLINE); - if (bts->force_two_phase) + if (the_pcu->vty.force_two_phase) vty_out(vty, " two-phase-access%s", VTY_NEWLINE); vty_out(vty, " alpha %d%s", bts->alpha, VTY_NEWLINE); vty_out(vty, " gamma %d%s", bts->gamma * 2, VTY_NEWLINE); @@ -782,10 +782,7 @@ "Force two phase access when MS requests single phase access\n", CMD_ATTR_IMMEDIATE) { - struct gprs_rlcmac_bts *bts = bts_main_data(); - - bts->force_two_phase = 1; - + the_pcu->vty.force_two_phase = 1; return CMD_SUCCESS; } @@ -795,10 +792,7 @@ NO_STR "Only use two phase access when requested my MS\n", CMD_ATTR_IMMEDIATE) { - struct gprs_rlcmac_bts *bts = bts_main_data(); - - bts->force_two_phase = 0; - + the_pcu->vty.force_two_phase = 0; return CMD_SUCCESS; } -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22180 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I68a6e032f725cde87992b99f039c5280e912faf7 Gerrit-Change-Number: 22180 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 10:37:44 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 18 Jan 2021 10:37:44 +0000 Subject: Change in libosmocore[master]: gprs_ns2: when calling nsvc_force_unconf for a dynamic NSE drop the NSE. In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22200 ) Change subject: gprs_ns2: when calling nsvc_force_unconf for a dynamic NSE drop the NSE. ...................................................................... gprs_ns2: when calling nsvc_force_unconf for a dynamic NSE drop the NSE. The vty command is used for test cases to reset NSE state. So dynamic NSE shouldn't present. Related: SYS#5208 Change-Id: I0a4f35c974c8c3b79c48f2f56170722c95254332 --- M src/gb/gprs_ns2_vty2.c 1 file changed, 3 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/src/gb/gprs_ns2_vty2.c b/src/gb/gprs_ns2_vty2.c index 41daa74..5af8fbc 100644 --- a/src/gb/gprs_ns2_vty2.c +++ b/src/gb/gprs_ns2_vty2.c @@ -1491,7 +1491,9 @@ return CMD_WARNING; } - if (nse->dialect == NS2_DIALECT_SNS) { + if (!nse->persistent) { + gprs_ns2_free_nse(nse); + } else if (nse->dialect == NS2_DIALECT_SNS) { gprs_ns2_free_nsvcs(nse); } else { /* Perform the operation for all nsvc */ -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22200 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I0a4f35c974c8c3b79c48f2f56170722c95254332 Gerrit-Change-Number: 22200 Gerrit-PatchSet: 6 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 10:37:44 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 18 Jan 2021 10:37:44 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: clear local and remote entries when SNS failed In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22206 ) Change subject: gprs_ns2_sns: clear local and remote entries when SNS failed ...................................................................... gprs_ns2_sns: clear local and remote entries when SNS failed The local and remote entries should be cleared on SNS Size. Further it can be cleared when SNS failed (e.g. all NSVC become dead) so VTY doesn't show old entries before entering SNS Size. Related: OS#4949 Change-Id: Ie4db81acdd5f8ddf1a1f5dc7645d1144545d9c73 --- M src/gb/gprs_ns2_sns.c 1 file changed, 16 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, but someone else must approve pespin: Looks good to me, approved diff --git a/src/gb/gprs_ns2_sns.c b/src/gb/gprs_ns2_sns.c index ceff115..e574b44 100644 --- a/src/gb/gprs_ns2_sns.c +++ b/src/gb/gprs_ns2_sns.c @@ -255,6 +255,19 @@ } } +static void ns2_clear_ipv46_entries(struct ns2_sns_state *gss) +{ + TALLOC_FREE(gss->ip4_local); + TALLOC_FREE(gss->ip4_remote); + TALLOC_FREE(gss->ip6_local); + TALLOC_FREE(gss->ip6_remote); + + gss->num_ip4_local = 0; + gss->num_ip4_remote = 0; + gss->num_ip6_local = 0; + gss->num_ip6_remote = 0; +} + static void ns2_vc_create_ip(struct osmo_fsm_inst *fi, struct gprs_ns2_nse *nse, const struct osmo_sockaddr *remote, uint8_t sig_weight, uint8_t data_weight) { @@ -702,6 +715,8 @@ if (old_state != GPRS_SNS_ST_UNCONFIGURED) ns2_prim_status_ind(gss->nse, NULL, 0, NS_AFF_CAUSE_SNS_FAILURE); + ns2_clear_ipv46_entries(gss); + /* no initial available */ if (!gss->initial) return; @@ -1349,6 +1364,7 @@ * gprs_ns2_free_nsvcs() will trigger NO_NSVC, prevent this from triggering a reselection */ gss->reselection_running = true; gprs_ns2_free_nsvcs(nse); + ns2_clear_ipv46_entries(gss); /* Choose the next sns endpoint. */ if (llist_empty(&gss->sns_endpoints)) { -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22206 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie4db81acdd5f8ddf1a1f5dc7645d1144545d9c73 Gerrit-Change-Number: 22206 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 10:37:45 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 18 Jan 2021 10:37:45 +0000 Subject: Change in libosmocore[master]: gprs_ns2: flag then NSE as dead in nse_free() In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22208 ) Change subject: gprs_ns2: flag then NSE as dead in nse_free() ...................................................................... gprs_ns2: flag then NSE as dead in nse_free() The transfer cap call in ns2_prim_status_ind() asserts if NSE is in an invalid state (nse is either alive or has NSVCS). Change-Id: I535b3e5dd7240d19dd685652173775b250f5cc2d --- M src/gb/gprs_ns2.c 1 file changed, 1 insertion(+), 0 deletions(-) Approvals: fixeria: Looks good to me, but someone else must approve pespin: Looks good to me, but someone else must approve daniel: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c index 7f43cf0..813bd58 100644 --- a/src/gb/gprs_ns2.c +++ b/src/gb/gprs_ns2.c @@ -738,6 +738,7 @@ if (!nse) return; + nse->alive = false; gprs_ns2_free_nsvcs(nse); ns2_prim_status_ind(nse, NULL, 0, NS_AFF_CAUSE_FAILURE); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22208 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I535b3e5dd7240d19dd685652173775b250f5cc2d Gerrit-Change-Number: 22208 Gerrit-PatchSet: 5 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 10:37:45 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 18 Jan 2021 10:37:45 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vc_fsm: fix spaces and remove wrong comment In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22209 ) Change subject: gprs_ns2_vc_fsm: fix spaces and remove wrong comment ...................................................................... gprs_ns2_vc_fsm: fix spaces and remove wrong comment Change-Id: I52799d8ce8244fae7512a6e14a3cf2408a218c2d --- M src/gb/gprs_ns2_vc_fsm.c 1 file changed, 2 insertions(+), 3 deletions(-) Approvals: fixeria: Looks good to me, approved pespin: Looks good to me, but someone else must approve daniel: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/gb/gprs_ns2_vc_fsm.c b/src/gb/gprs_ns2_vc_fsm.c index 78b0691..641fcc3 100644 --- a/src/gb/gprs_ns2_vc_fsm.c +++ b/src/gb/gprs_ns2_vc_fsm.c @@ -111,7 +111,7 @@ GPRS_NS2_EV_UNITDATA, - GPRS_NS2_EV_FORCE_UNCONFIGURED, + GPRS_NS2_EV_FORCE_UNCONFIGURED, /* called via vty for tests */ }; static const struct value_string gprs_ns2_vc_event_names[] = { @@ -126,7 +126,7 @@ { GPRS_NS2_EV_ALIVE_ACK, "ALIVE_ACK" }, { GPRS_NS2_EV_STATUS, "STATUS" }, { GPRS_NS2_EV_UNITDATA, "UNITDATA" }, - {GPRS_NS2_EV_FORCE_UNCONFIGURED, "FORCE_UNCONFIGURED"}, + { GPRS_NS2_EV_FORCE_UNCONFIGURED, "FORCE_UNCONFIGURED" }, { 0, NULL } }; @@ -431,7 +431,6 @@ struct gprs_ns2_inst *nsi = ns_inst_from_fi(fi); struct gprs_ns2_vc_priv *priv = fi->priv; - /* PCU timeouts */ switch (fi->state) { case GPRS_NS2_ST_RESET: if (priv->initiate_reset) { -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22209 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I52799d8ce8244fae7512a6e14a3cf2408a218c2d Gerrit-Change-Number: 22209 Gerrit-PatchSet: 5 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Mon Jan 18 10:34:48 2021 From: admin at opensuse.org (OBS Notification) Date: Mon, 18 Jan 2021 10:34:48 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <6005655925fef_6532aec7c1d860020119cc@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/xUbuntu_20.04/x86_64 Package network:osmocom:nightly/simtrace2 failed to build in xUbuntu_20.04/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 158s] [COMPILING libboard/qmod/source/wwan_perst.c] [ 158s] [COMPILING libboard/qmod/source/card_pres.c] [ 158s] [COMPILING libboard/qmod/source/wwan_led.c] [ 158s] [COMPILING libboard/qmod/source/i2c.c] [ 158s] [COMPILING libboard/qmod/source/board_qmod.c] [ 158s] [COMPILING apps/dfu/main.c] [ 158s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 158s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 158s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 159s] Memory region Used Size Region Size %age Used [ 159s] rom: 16588 B 16 KB 101.25% [ 159s] ram: 11672 B 48 KB 23.75/usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 159s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 204 bytes [ 159s] collect2: error: ld returned 1 exit status [ 159s] % [ 159s] make[2]: *** [Makefile:234: flash] Error 1 [ 159s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 159s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 159s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 159s] dh_auto_build: error: make -j1 returned exit code 2 [ 159s] make: *** [debian/rules:16: build] Error 25 [ 159s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 159s] ### VM INTERACTION START ### [ 162s] [ 151.221098] sysrq: Power Off [ 162s] [ 151.228763] reboot: Power down [ 162s] ### VM INTERACTION END ### [ 162s] [ 162s] lamb19 failed "build simtrace2_0.7.0.69.aadd.dsc" at Mon Jan 18 10:34:34 UTC 2021. [ 162s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jan 18 10:36:14 2021 From: admin at opensuse.org (OBS Notification) Date: Mon, 18 Jan 2021 10:36:14 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.10/x86_64 In-Reply-To: References: Message-ID: <60056560963b5_6532aec7c1d860020124d4@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/xUbuntu_20.10/x86_64 Package network:osmocom:nightly/simtrace2 failed to build in xUbuntu_20.10/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 163s] [COMPILING apps/dfu/main.c] [ 163s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 163s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 163s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 163s] Memory region Used Size Region Size %age Used [ 163s] rom: 16580 B 16 KB 101.20% [ 163s] ram: 11672 B 48 KB 23.75/usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 163s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 163s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 163s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 163s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 163s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 163s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 196 bytes [ 163s] collect2: error: ld returned 1 exit status [ 163s] % [ 163s] make[2]: *** [Makefile:234: flash] Error 1 [ 163s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 163s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 163s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 163s] dh_auto_build: error: make -j1 returned exit code 2 [ 163s] make: *** [debian/rules:16: build] Error 25 [ 163s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 163s] ### VM INTERACTION START ### [ 166s] [ 154.439260] sysrq: Power Off [ 167s] [ 154.444378] reboot: Power down [ 167s] ### VM INTERACTION END ### [ 167s] [ 167s] lamb16 failed "build simtrace2_0.7.0.69.aadd.dsc" at Mon Jan 18 10:36:00 UTC 2021. [ 167s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Mon Jan 18 10:44:12 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 18 Jan 2021 10:44:12 +0000 Subject: Change in libosmocore[master]: gprs_ns2: allow to use free_vc() with NULL In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22274 ) Change subject: gprs_ns2: allow to use free_vc() with NULL ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22274 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If7b0c6916a29d4611d0a40c388414076eb83e6b5 Gerrit-Change-Number: 22274 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 10:44:12 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 10:44:53 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 18 Jan 2021 10:44:53 +0000 Subject: Change in libosmocore[master]: gprs_ns2: add assert on most bind calls In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22273 ) Change subject: gprs_ns2: add assert on most bind calls ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22273 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia4f8932263c60618c7f0dfc32d50ba5a8d57602b Gerrit-Change-Number: 22273 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Comment-Date: Mon, 18 Jan 2021 10:44:53 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 10:47:45 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 18 Jan 2021 10:47:45 +0000 Subject: Change in osmo-pcu[master]: Fix configuration mess of initial_cs/mcs between PCUIF and VTY In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22195 ) Change subject: Fix configuration mess of initial_cs/mcs between PCUIF and VTY ...................................................................... Patch Set 3: (5 comments) https://gerrit.osmocom.org/c/osmo-pcu/+/22195/3/src/bts.cpp File src/bts.cpp: https://gerrit.osmocom.org/c/osmo-pcu/+/22195/3/src/bts.cpp at 1200 PS3, Line 1200: white space https://gerrit.osmocom.org/c/osmo-pcu/+/22195/3/src/bts.cpp at 1220 PS3, Line 1220: white space https://gerrit.osmocom.org/c/osmo-pcu/+/22195/3/src/bts.cpp at 1227 PS3, Line 1227: white space https://gerrit.osmocom.org/c/osmo-pcu/+/22195/3/src/gprs_pcu.c File src/gprs_pcu.c: https://gerrit.osmocom.org/c/osmo-pcu/+/22195/3/src/gprs_pcu.c at 110 PS3, Line 110: /*TODO: once we support multiple bts, foreach(bts) apply */ missing white space https://gerrit.osmocom.org/c/osmo-pcu/+/22195/3/src/gprs_pcu.c at 118 PS3, Line 118: /*TODO: once we support multiple bts, foreach(bts) apply */ missing white space -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22195 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I80a6ba401f9c0c85bdf6e0cc99a9d2008d31e1b0 Gerrit-Change-Number: 22195 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-CC: lynxis lazus Gerrit-Comment-Date: Mon, 18 Jan 2021 10:47:45 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 10:47:59 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 18 Jan 2021 10:47:59 +0000 Subject: Change in osmo-pcu[master]: Fix configuration mess of initial_cs/mcs between PCUIF and VTY In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22195 ) Change subject: Fix configuration mess of initial_cs/mcs between PCUIF and VTY ...................................................................... Patch Set 3: everything else LGTM -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22195 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I80a6ba401f9c0c85bdf6e0cc99a9d2008d31e1b0 Gerrit-Change-Number: 22195 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-CC: lynxis lazus Gerrit-Comment-Date: Mon, 18 Jan 2021 10:47:59 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 10:52:08 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 18 Jan 2021 10:52:08 +0000 Subject: Change in osmo-pcu[master]: Move dl_arq_type field from BTS to PCU In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22183 ) Change subject: Move dl_arq_type field from BTS to PCU ...................................................................... Patch Set 4: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-pcu/+/22183/4/src/tbf_dl.cpp File src/tbf_dl.cpp: https://gerrit.osmocom.org/c/osmo-pcu/+/22183/4/src/tbf_dl.cpp at 497 PS4, Line 497: the_pcu->vty.dl_arq_type, bsn); formatting -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22183 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I0b82ab59edd58d60e5581c707dc49f58de0ba203 Gerrit-Change-Number: 22183 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Mon, 18 Jan 2021 10:52:08 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 10:53:49 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 18 Jan 2021 10:53:49 +0000 Subject: Change in osmo-pcu[master]: Move cs_adj* fields from BTS to PCU In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22184 ) Change subject: Move cs_adj* fields from BTS to PCU ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22184 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I2b00a83279dccd4feeeeb95e34878c4405e7972c Gerrit-Change-Number: 22184 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Mon, 18 Jan 2021 10:53:49 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 10:57:07 2021 From: gerrit-no-reply at lists.osmocom.org (iedemam) Date: Mon, 18 Jan 2021 10:57:07 +0000 Subject: Change in osmo-bsc[master]: stats: Add granularity to SDCCH/TCH/LU activity. In-Reply-To: References: Message-ID: iedemam has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22103 ) Change subject: stats: Add granularity to SDCCH/TCH/LU activity. ...................................................................... Patch Set 6: Hi all, Is there anything I should address in this patchset or resolve before it can be included in master? Thanks, -Michael -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22103 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I4df275e4770c5ff3643c79ba828e736986f8bb47 Gerrit-Change-Number: 22103 Gerrit-PatchSet: 6 Gerrit-Owner: iedemam Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 10:57:07 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 10:57:23 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 18 Jan 2021 10:57:23 +0000 Subject: Change in osmo-pcu[master]: Move dl_arq_type field from BTS to PCU In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, lynxis lazus, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-pcu/+/22183 to look at the new patch set (#5). Change subject: Move dl_arq_type field from BTS to PCU ...................................................................... Move dl_arq_type field from BTS to PCU Change-Id: I0b82ab59edd58d60e5581c707dc49f58de0ba203 --- M src/bts.cpp M src/bts.h M src/coding_scheme.h M src/gprs_pcu.c M src/gprs_pcu.h M src/pcu_vty.c M src/tbf_dl.cpp M tests/tbf/TbfTest.cpp 8 files changed, 19 insertions(+), 29 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/83/22183/5 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22183 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I0b82ab59edd58d60e5581c707dc49f58de0ba203 Gerrit-Change-Number: 22183 Gerrit-PatchSet: 5 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 10:57:23 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 18 Jan 2021 10:57:23 +0000 Subject: Change in osmo-pcu[master]: Fix configuration mess of initial_cs/mcs between PCUIF and VTY In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-pcu/+/22195 to look at the new patch set (#4). Change subject: Fix configuration mess of initial_cs/mcs between PCUIF and VTY ...................................................................... Fix configuration mess of initial_cs/mcs between PCUIF and VTY Both values (optionally) set (forced) by VTY and the values received from PCUIF were stored in the same variable, meaning that for instance the PCUIF values wouldn't really be used if someone applied eg "no cs" during runtime. This commit does something similar to what was already done for the max_(m)cs fields. We store PCUIF values in one place and VTY ones in another place, and then trigger a bts object internal process to find out exactly which initial CS should it be using. Change-Id: I80a6ba401f9c0c85bdf6e0cc99a9d2008d31e1b0 --- M src/bts.cpp M src/bts.h M src/gprs_pcu.c M src/gprs_pcu.h M src/pcu_l1_if.cpp M src/pcu_vty.c 6 files changed, 110 insertions(+), 55 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/95/22195/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22195 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I80a6ba401f9c0c85bdf6e0cc99a9d2008d31e1b0 Gerrit-Change-Number: 22195 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-CC: lynxis lazus Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 10:58:59 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 18 Jan 2021 10:58:59 +0000 Subject: Change in osmo-bsc[master]: stats: Add granularity to SDCCH/TCH/LU activity. In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22103 ) Change subject: stats: Add granularity to SDCCH/TCH/LU activity. ...................................................................... Patch Set 6: Hi Michael, in general you can merge the patches yourself using the Gerrit UI once it got a Code-Review +2 and it was successfully verified by Jenkins. I'm merging it now. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22103 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I4df275e4770c5ff3643c79ba828e736986f8bb47 Gerrit-Change-Number: 22103 Gerrit-PatchSet: 6 Gerrit-Owner: iedemam Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 10:58:59 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 10:59:02 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 18 Jan 2021 10:59:02 +0000 Subject: Change in osmo-bsc[master]: stats: Add granularity to SDCCH/TCH/LU activity. In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22103 ) Change subject: stats: Add granularity to SDCCH/TCH/LU activity. ...................................................................... stats: Add granularity to SDCCH/TCH/LU activity. Change-Id: I4df275e4770c5ff3643c79ba828e736986f8bb47 --- M include/osmocom/bsc/bts.h M src/osmo-bsc/abis_rsl.c M src/osmo-bsc/assignment_fsm.c M src/osmo-bsc/bts.c M src/osmo-bsc/osmo_bsc_filter.c 5 files changed, 123 insertions(+), 1 deletion(-) Approvals: laforge: Looks good to me, but someone else must approve pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmocom/bsc/bts.h b/include/osmocom/bsc/bts.h index c79e7f7..8f3e05b 100644 --- a/include/osmocom/bsc/bts.h +++ b/include/osmocom/bsc/bts.h @@ -18,6 +18,13 @@ enum bts_counter_id { BTS_CTR_CHREQ_TOTAL, + BTS_CTR_CHREQ_ATTEMPTED_EMERG, + BTS_CTR_CHREQ_ATTEMPTED_CALL, + BTS_CTR_CHREQ_ATTEMPTED_LOCATION_UPD, + BTS_CTR_CHREQ_ATTEMPTED_PAG, + BTS_CTR_CHREQ_ATTEMPTED_PDCH, + BTS_CTR_CHREQ_ATTEMPTED_OTHER, + BTS_CTR_CHREQ_ATTEMPTED_UNKNOWN, BTS_CTR_CHREQ_SUCCESSFUL, BTS_CTR_CHREQ_NO_CHANNEL, BTS_CTR_CHAN_RF_FAIL, @@ -36,6 +43,8 @@ BTS_CTR_PAGING_NO_ACTIVE_PAGING, BTS_CTR_PAGING_MSC_FLUSH, BTS_CTR_CHAN_ACT_TOTAL, + BTS_CTR_CHAN_ACT_SDCCH, + BTS_CTR_CHAN_ACT_TCH, BTS_CTR_CHAN_ACT_NACK, BTS_CTR_RSL_UNKNOWN, BTS_CTR_RSL_IPA_NACK, @@ -68,9 +77,15 @@ BTS_CTR_ASSIGNMENT_COMPLETED, BTS_CTR_ASSIGNMENT_STOPPED, BTS_CTR_ASSIGNMENT_NO_CHANNEL, + BTS_CTR_ASSIGNMENT_NO_CHANNEL_SIGN, + BTS_CTR_ASSIGNMENT_NO_CHANNEL_SPEECH, BTS_CTR_ASSIGNMENT_TIMEOUT, BTS_CTR_ASSIGNMENT_FAILED, BTS_CTR_ASSIGNMENT_ERROR, + BTS_CTR_LOCATION_UPDATE_ACCEPT, + BTS_CTR_LOCATION_UPDATE_REJECT, + BTS_CTR_LOCATION_UPDATE_DETACH, + BTS_CTR_LOCATION_UPDATE_UNKNOWN, BTS_CTR_HANDOVER_ATTEMPTED, BTS_CTR_HANDOVER_COMPLETED, BTS_CTR_HANDOVER_STOPPED, diff --git a/src/osmo-bsc/abis_rsl.c b/src/osmo-bsc/abis_rsl.c index 2142219..a68c9fb 100644 --- a/src/osmo-bsc/abis_rsl.c +++ b/src/osmo-bsc/abis_rsl.c @@ -613,6 +613,17 @@ msg->dst = trx->rsl_link; rate_ctr_inc(&bts->bts_ctrs->ctr[BTS_CTR_CHAN_ACT_TOTAL]); + switch (lchan->type) { + case GSM_LCHAN_SDCCH: + rate_ctr_inc(&bts->bts_ctrs->ctr[BTS_CTR_CHAN_ACT_SDCCH]); + break; + case GSM_LCHAN_TCH_H: + case GSM_LCHAN_TCH_F: + rate_ctr_inc(&bts->bts_ctrs->ctr[BTS_CTR_CHAN_ACT_TCH]); + break; + default: + break; + } return abis_rsl_sendmsg(msg); } @@ -1511,6 +1522,29 @@ get_value_string(gsm_chreq_descs, rqd->reason), rqd->ref.ra, bts->network->neci, rqd->reason); rate_ctr_inc(&bts->bts_ctrs->ctr[BTS_CTR_CHREQ_TOTAL]); + switch (rqd->reason) { + case GSM_CHREQ_REASON_EMERG: + rate_ctr_inc(&bts->bts_ctrs->ctr[BTS_CTR_CHREQ_ATTEMPTED_EMERG]); + break; + case GSM_CHREQ_REASON_CALL: + rate_ctr_inc(&bts->bts_ctrs->ctr[BTS_CTR_CHREQ_ATTEMPTED_CALL]); + break; + case GSM_CHREQ_REASON_LOCATION_UPD: + rate_ctr_inc(&bts->bts_ctrs->ctr[BTS_CTR_CHREQ_ATTEMPTED_LOCATION_UPD]); + break; + case GSM_CHREQ_REASON_PAG: + rate_ctr_inc(&bts->bts_ctrs->ctr[BTS_CTR_CHREQ_ATTEMPTED_PAG]); + break; + case GSM_CHREQ_REASON_PDCH: + rate_ctr_inc(&bts->bts_ctrs->ctr[BTS_CTR_CHREQ_ATTEMPTED_PDCH]); + break; + case GSM_CHREQ_REASON_OTHER: + rate_ctr_inc(&bts->bts_ctrs->ctr[BTS_CTR_CHREQ_ATTEMPTED_OTHER]); + break; + default: + rate_ctr_inc(&bts->bts_ctrs->ctr[BTS_CTR_CHREQ_ATTEMPTED_UNKNOWN]); + break; + } /* Enqueue request */ llist_add_tail(&rqd->entry, &bts->chan_rqd_queue); diff --git a/src/osmo-bsc/assignment_fsm.c b/src/osmo-bsc/assignment_fsm.c index 7db37b2..6dba214 100644 --- a/src/osmo-bsc/assignment_fsm.c +++ b/src/osmo-bsc/assignment_fsm.c @@ -506,6 +506,18 @@ * down the assignment in case of failure. */ if (!conn->assignment.new_lchan) { assignment_count_result(CTR_ASSIGNMENT_NO_CHANNEL); + switch (req->ch_mode_rate[0].chan_mode) { + case GSM48_CMODE_SIGN: + rate_ctr_inc(&bts->bts_ctrs->ctr[BTS_CTR_ASSIGNMENT_NO_CHANNEL_SIGN]); + break; + case GSM48_CMODE_SPEECH_V1: + case GSM48_CMODE_SPEECH_EFR: + case GSM48_CMODE_SPEECH_AMR: + rate_ctr_inc(&bts->bts_ctrs->ctr[BTS_CTR_ASSIGNMENT_NO_CHANNEL_SPEECH]); + break; + default: + break; + } assignment_fail(GSM0808_CAUSE_NO_RADIO_RESOURCE_AVAILABLE, "BSSMAP Assignment Command:" " No lchan available for: pref=%s:%s / alt1=%s:%s / alt2=%s:%s\n", diff --git a/src/osmo-bsc/bts.c b/src/osmo-bsc/bts.c index 0774721..3fa4f24 100644 --- a/src/osmo-bsc/bts.c +++ b/src/osmo-bsc/bts.c @@ -761,6 +761,27 @@ [BTS_CTR_CHREQ_TOTAL] = \ { "chreq:total", "Received channel requests" }, + [BTS_CTR_CHREQ_ATTEMPTED_EMERG] = \ + { "chreq:attempted_emerg", + "Received channel requests EMERG" }, + [BTS_CTR_CHREQ_ATTEMPTED_CALL] = \ + { "chreq:attempted_call", + "Received channel requests CALL" }, + [BTS_CTR_CHREQ_ATTEMPTED_LOCATION_UPD] = \ + { "chreq:attempted_location_upd", + "Received channel requests LOCATION_UPD" }, + [BTS_CTR_CHREQ_ATTEMPTED_PAG] = \ + { "chreq:attempted_pag", + "Received channel requests PAG" }, + [BTS_CTR_CHREQ_ATTEMPTED_PDCH] = \ + { "chreq:attempted_pdch", + "Received channel requests PDCH" }, + [BTS_CTR_CHREQ_ATTEMPTED_OTHER] = \ + { "chreq:attempted_other", + "Received channel requests OTHER" }, + [BTS_CTR_CHREQ_ATTEMPTED_UNKNOWN] = \ + { "chreq:attempted_unknown", + "Received channel requests UNKNOWN" }, [BTS_CTR_CHREQ_SUCCESSFUL] = \ { "chreq:successful", "Successful channel requests (immediate assign sent)" }, @@ -815,6 +836,12 @@ [BTS_CTR_CHAN_ACT_TOTAL] = \ { "chan_act:total", "Total number of Channel Activations" }, + [BTS_CTR_CHAN_ACT_SDCCH] = \ + { "chan_act:sdcch", + "Number of SDCCH Channel Activations" }, + [BTS_CTR_CHAN_ACT_TCH] = \ + { "chan_act:tch", + "Number of TCH Channel Activations" }, [BTS_CTR_CHAN_ACT_NACK] = \ { "chan_act:nack", "Number of Channel Activations that the BTS NACKed" }, @@ -913,6 +940,12 @@ [BTS_CTR_ASSIGNMENT_NO_CHANNEL] = \ { "assignment:no_channel", "Failure to allocate lchan for Assignment" }, + [BTS_CTR_ASSIGNMENT_NO_CHANNEL_SIGN] = \ + { "assignment:no_channel_sign", + "Failure to allocate signaling lchan for Assignment" }, + [BTS_CTR_ASSIGNMENT_NO_CHANNEL_SPEECH] = \ + { "assignment:no_channel_speech", + "Failure to allocate speech lchan for Assignment" }, [BTS_CTR_ASSIGNMENT_TIMEOUT] = \ { "assignment:timeout", "Assignment timed out" }, @@ -922,7 +955,18 @@ [BTS_CTR_ASSIGNMENT_ERROR] = \ { "assignment:error", "Assignment failed for other reason" }, - + [BTS_CTR_LOCATION_UPDATE_ACCEPT] = \ + { "location_update:accept", + "Location Update Accept" }, + [BTS_CTR_LOCATION_UPDATE_REJECT] = \ + { "location_update:reject", + "Location Update Reject" }, + [BTS_CTR_LOCATION_UPDATE_DETACH] = \ + { "location_update:detach", + "Location Update Detach" }, + [BTS_CTR_LOCATION_UPDATE_UNKNOWN] = \ + { "location_update:unknown", + "Location Update UNKNOWN" }, [BTS_CTR_HANDOVER_ATTEMPTED] = \ { "handover:attempted", "Intra-BSC handover attempts" }, diff --git a/src/osmo-bsc/osmo_bsc_filter.c b/src/osmo-bsc/osmo_bsc_filter.c index 497b3e4..0187a75 100644 --- a/src/osmo-bsc/osmo_bsc_filter.c +++ b/src/osmo-bsc/osmo_bsc_filter.c @@ -119,5 +119,22 @@ bsc_patch_mm_info(conn, &gh->data[0], length); } + if (conn && conn->lchan) { + switch (mtype) { + case GSM48_MT_MM_LOC_UPD_ACCEPT: + rate_ctr_inc(&conn->lchan->ts->trx->bts->bts_ctrs->ctr[BTS_CTR_LOCATION_UPDATE_ACCEPT]); + break; + case GSM48_MT_MM_LOC_UPD_REJECT: + rate_ctr_inc(&conn->lchan->ts->trx->bts->bts_ctrs->ctr[BTS_CTR_LOCATION_UPDATE_REJECT]); + break; + case GSM48_MT_MM_IMSI_DETACH_IND: + rate_ctr_inc(&conn->lchan->ts->trx->bts->bts_ctrs->ctr[BTS_CTR_LOCATION_UPDATE_DETACH]); + break; + default: + rate_ctr_inc(&conn->lchan->ts->trx->bts->bts_ctrs->ctr[BTS_CTR_LOCATION_UPDATE_UNKNOWN]); + break; + } + } + return 0; } -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22103 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I4df275e4770c5ff3643c79ba828e736986f8bb47 Gerrit-Change-Number: 22103 Gerrit-PatchSet: 7 Gerrit-Owner: iedemam Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 10:59:52 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 18 Jan 2021 10:59:52 +0000 Subject: Change in osmo-pcu[master]: Move cs_downgrade_threshold field from BTS to PCU In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22185 ) Change subject: Move cs_downgrade_threshold field from BTS to PCU ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22185 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I3e1c65eb3cccff565d5d84588bdce93a47909a0f Gerrit-Change-Number: 22185 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Mon, 18 Jan 2021 10:59:52 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 11:00:26 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 18 Jan 2021 11:00:26 +0000 Subject: Change in osmo-pcu[master]: Move dl_arq_type field from BTS to PCU In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22183 ) Change subject: Move dl_arq_type field from BTS to PCU ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22183 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I0b82ab59edd58d60e5581c707dc49f58de0ba203 Gerrit-Change-Number: 22183 Gerrit-PatchSet: 5 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Mon, 18 Jan 2021 11:00:26 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 11:00:33 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 18 Jan 2021 11:00:33 +0000 Subject: Change in osmo-bsc[master]: stats: Add granularity to SDCCH/TCH/LU activity. In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22103 ) Change subject: stats: Add granularity to SDCCH/TCH/LU activity. ...................................................................... Patch Set 6: Hello Michael, > Is there anything I should address in this patchset or resolve before it can be included in master? once you have at least CR+2 (or two CR+1 voices), you can merge the patch by clicking "SUBMIT". Here you already have CR+2 and CR+1, so it's definitely approved, feel free to merge! Best regards, Vadim. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22103 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I4df275e4770c5ff3643c79ba828e736986f8bb47 Gerrit-Change-Number: 22103 Gerrit-PatchSet: 6 Gerrit-Owner: iedemam Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: fixeria Gerrit-Comment-Date: Mon, 18 Jan 2021 11:00:33 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 11:04:30 2021 From: gerrit-no-reply at lists.osmocom.org (iedemam) Date: Mon, 18 Jan 2021 11:04:30 +0000 Subject: Change in osmo-bsc[master]: stats: Add granularity to SDCCH/TCH/LU activity. In-Reply-To: References: Message-ID: iedemam has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22103 ) Change subject: stats: Add granularity to SDCCH/TCH/LU activity. ...................................................................... Patch Set 7: Thanks @pepsin and @fixeria for the info and for submitting it. I didn't know this last step was on me, how empowering! ;-) I'll know for next time. Thanks again, -Michael -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22103 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I4df275e4770c5ff3643c79ba828e736986f8bb47 Gerrit-Change-Number: 22103 Gerrit-PatchSet: 7 Gerrit-Owner: iedemam Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: fixeria Gerrit-Comment-Date: Mon, 18 Jan 2021 11:04:30 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 11:27:32 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 18 Jan 2021 11:27:32 +0000 Subject: Change in libosmocore[master]: gprs_ns2: implement BLOCK/UNBLOCK of a NSVC by vty In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22210 to look at the new patch set (#8). Change subject: gprs_ns2: implement BLOCK/UNBLOCK of a NSVC by vty ...................................................................... gprs_ns2: implement BLOCK/UNBLOCK of a NSVC by vty The vty should be able to block or unblock a specific NSVC. Further more this case is special for the UNITDATA as those can be still received until the other side response to the BLOCK PDU. Related: OS#4939 Change-Id: Ic0ce3c5fabc8644cc1ee71a8f6dd783fadf7b84d --- M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_vc_fsm.c M src/gb/gprs_ns2_vty2.c M tests/gb/gprs_ns2_test.c M tests/gb/gprs_ns2_test.ok 5 files changed, 201 insertions(+), 9 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/10/22210/8 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22210 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic0ce3c5fabc8644cc1ee71a8f6dd783fadf7b84d Gerrit-Change-Number: 22210 Gerrit-PatchSet: 8 Gerrit-Owner: lynxis lazus Gerrit-Assignee: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-CC: daniel Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 11:32:42 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 18 Jan 2021 11:32:42 +0000 Subject: Change in libosmocore[master]: test: gprs_ns2: don't leak the talloc context In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22270 ) Change subject: test: gprs_ns2: don't leak the talloc context ...................................................................... Patch Set 2: Code-Review-1 I don't think you need this after you got rid of the underlying leak. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22270 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ibf926d8db88cdb403d29de5e666dfb71eefc7b72 Gerrit-Change-Number: 22270 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 11:32:42 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 11:35:10 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 18 Jan 2021 11:35:10 +0000 Subject: Change in osmo-trx[master]: ChannelizerBase: Fix memory leak In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/22212 ) Change subject: ChannelizerBase: Fix memory leak ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/22212 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: Ibc4c7edeb9bba517db08fce152d863e6cc0c7bbb Gerrit-Change-Number: 22212 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 18 Jan 2021 11:35:10 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 11:36:37 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 18 Jan 2021 11:36:37 +0000 Subject: Change in osmo-bsc[master]: handover_tests.sh: update stdout/stderr only on capital -U arg In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22260 ) Change subject: handover_tests.sh: update stdout/stderr only on capital -U arg ...................................................................... Patch Set 1: (2 comments) https://gerrit.osmocom.org/c/osmo-bsc/+/22260/1/tests/handover/handover_tests.sh File tests/handover/handover_tests.sh: https://gerrit.osmocom.org/c/osmo-bsc/+/22260/1/tests/handover/handover_tests.sh at 9 PS1, Line 9: if [ -n "$update" -a "x$update" != "x-u" -a "x$update" != "x-U" ]; then here only -u and -U are allowed, so ... https://gerrit.osmocom.org/c/osmo-bsc/+/22260/1/tests/handover/handover_tests.sh at 53 PS1, Line 53: if [ -z "$failed" -a "x$update" != "x" ]; then > Are you sure this change is correct? It looks whatever you pass to it, the file is updated. ... so if this is non-empty, it implies that either -u or -U are passed -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22260 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Id280a8d084fd84b0b7486a5c8022e5b7a26f6095 Gerrit-Change-Number: 22260 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 11:36:37 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 11:37:53 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 18 Jan 2021 11:37:53 +0000 Subject: Change in libosmocore[master]: test: gprs_ns2: don't leak the talloc context In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22270 ) Change subject: test: gprs_ns2: don't leak the talloc context ...................................................................... Patch Set 2: -Code-Review On further thought I don't care. It seems some tests do a talloc_free(ctx) at the end and some don't -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22270 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ibf926d8db88cdb403d29de5e666dfb71eefc7b72 Gerrit-Change-Number: 22270 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 11:37:53 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 11:38:56 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 18 Jan 2021 11:38:56 +0000 Subject: Change in libosmocore[master]: gprs_ns2: implement BLOCK/UNBLOCK of a NSVC by vty In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22210 ) Change subject: gprs_ns2: implement BLOCK/UNBLOCK of a NSVC by vty ...................................................................... Patch Set 8: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22210 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic0ce3c5fabc8644cc1ee71a8f6dd783fadf7b84d Gerrit-Change-Number: 22210 Gerrit-PatchSet: 8 Gerrit-Owner: lynxis lazus Gerrit-Assignee: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: daniel Gerrit-Comment-Date: Mon, 18 Jan 2021 11:38:56 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 11:39:22 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 18 Jan 2021 11:39:22 +0000 Subject: Change in osmo-trx[master]: ChannelizerBase: Fix memory leak In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/22212 ) Change subject: ChannelizerBase: Fix memory leak ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/22212 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: Ibc4c7edeb9bba517db08fce152d863e6cc0c7bbb Gerrit-Change-Number: 22212 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 11:39:22 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 11:39:24 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 18 Jan 2021 11:39:24 +0000 Subject: Change in osmo-trx[master]: ChannelizerBase: Fix memory leak In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/22212 ) Change subject: ChannelizerBase: Fix memory leak ...................................................................... ChannelizerBase: Fix memory leak The memory leak was reported by ASan: Direct leak of 32 byte(s) in 1 object(s) allocated from: #0 0x7f23b488e459 in __interceptor_malloc /build/gcc/src/gcc/libsanitizer/asan/asan_malloc_linux.cpp:145 #1 0x558e83e39e3c in ChannelizerBase::initFilters() /osmo-trx/Transceiver52M/ChannelizerBase.cpp:84 #2 0x558e83e3a8a0 in ChannelizerBase::init() /osmo-trx/Transceiver52M/ChannelizerBase.cpp:188 #3 0x558e83e2d263 in RadioInterfaceMulti::init(int) /osmo-trx/Transceiver52M/radioInterfaceMulti.cpp:197 #4 0x558e83de76d2 in makeRadioInterface(trx_ctx*, RadioDevice*, int) /osmo-trx/Transceiver52M/osmo-trx.cpp:115 #5 0x558e83dea663 in trx_start /osmo-trx/Transceiver52M/osmo-trx.cpp:600 #6 0x558e83dead6f in main /osmo-trx/Transceiver52M/osmo-trx.cpp:695 #7 0x7f23b2576151 in __libc_start_main (/usr/lib/libc.so.6+0x28151) Change-Id: Ibc4c7edeb9bba517db08fce152d863e6cc0c7bbb --- M Transceiver52M/ChannelizerBase.cpp 1 file changed, 1 insertion(+), 0 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve fixeria: Looks good to me, but someone else must approve pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/Transceiver52M/ChannelizerBase.cpp b/Transceiver52M/ChannelizerBase.cpp index e6eeed2..9910091 100644 --- a/Transceiver52M/ChannelizerBase.cpp +++ b/Transceiver52M/ChannelizerBase.cpp @@ -244,6 +244,7 @@ free(subFilters[i]); delete[] hist[i]; } + free(subFilters); fft_free(fftInput); fft_free(fftOutput); -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/22212 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: Ibc4c7edeb9bba517db08fce152d863e6cc0c7bbb Gerrit-Change-Number: 22212 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 11:40:38 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 18 Jan 2021 11:40:38 +0000 Subject: Change in osmo-bsc[master]: handover_tests.sh: update stdout/stderr only on capital -U arg In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22260 ) Change subject: handover_tests.sh: update stdout/stderr only on capital -U arg ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/22260/1/tests/handover/handover_tests.sh File tests/handover/handover_tests.sh: https://gerrit.osmocom.org/c/osmo-bsc/+/22260/1/tests/handover/handover_tests.sh at 53 PS1, Line 53: if [ -z "$failed" -a "x$update" != "x" ]; then > ... [?] Ah I see now !(-U or -u) param cases are handled as "unknown argument", fine thanks. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22260 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Id280a8d084fd84b0b7486a5c8022e5b7a26f6095 Gerrit-Change-Number: 22260 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 11:40:38 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Comment-In-Reply-To: neels Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 11:44:55 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 18 Jan 2021 11:44:55 +0000 Subject: Change in libosmocore[master]: gprs_ns2: implement BLOCK/UNBLOCK of a NSVC by vty In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22210 ) Change subject: gprs_ns2: implement BLOCK/UNBLOCK of a NSVC by vty ...................................................................... Patch Set 8: Code-Review+1 (3 comments) https://gerrit.osmocom.org/c/libosmocore/+/22210/1/src/gb/gprs_ns2_internal.h File src/gb/gprs_ns2_internal.h: https://gerrit.osmocom.org/c/libosmocore/+/22210/1/src/gb/gprs_ns2_internal.h at 314 PS1, Line 314: int ns2_vc_block(struct gprs_ns2_vc *nsvc); > do you need it? if so we can make them public, if not i would prefer to not export them. I can't think of a concrete example, but my feeling was we want to NS-Block from within osmo-gbproxy under certain conditions. Maybe I mixed that up with BVC-(Un)Block, let's keep it private for now. https://gerrit.osmocom.org/c/libosmocore/+/22210/1/src/gb/gprs_ns2_vc_fsm.c File src/gb/gprs_ns2_vc_fsm.c: https://gerrit.osmocom.org/c/libosmocore/+/22210/1/src/gb/gprs_ns2_vc_fsm.c at 120 PS1, Line 120: GPRS_NS2_EV_OM_UNBLOCK, /* vty cmd: unblock*/ > sound great. i'll only add them as REQ and do a second patch to rename the other. Done https://gerrit.osmocom.org/c/libosmocore/+/22210/1/src/gb/gprs_ns2_vty2.c File src/gb/gprs_ns2_vty2.c: https://gerrit.osmocom.org/c/libosmocore/+/22210/1/src/gb/gprs_ns2_vty2.c at 1519 PS1, Line 1519: vty_out(vty, "Could not find NSVCI %u%s", id, VTY_NEWLINE); %05u -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22210 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic0ce3c5fabc8644cc1ee71a8f6dd783fadf7b84d Gerrit-Change-Number: 22210 Gerrit-PatchSet: 8 Gerrit-Owner: lynxis lazus Gerrit-Assignee: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 11:44:55 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Comment-In-Reply-To: daniel Comment-In-Reply-To: lynxis lazus Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 11:45:38 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 18 Jan 2021 11:45:38 +0000 Subject: Change in osmo-bsc[master]: hodec2: fix congestion resolution on dyn TS In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22265 ) Change subject: hodec2: fix congestion resolution on dyn TS ...................................................................... Patch Set 1: thx -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22265 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I1536b60f03cb0aeb6ba14a72b518aec82fa572fe Gerrit-Change-Number: 22265 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 11:45:38 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 11:46:42 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 18 Jan 2021 11:46:42 +0000 Subject: Change in osmo-bsc[master]: hodec2: fix congestion balancing on dyn TS In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22269 ) Change subject: hodec2: fix congestion balancing on dyn TS ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/22269/2/src/osmo-bsc/handover_decision_2.c File src/osmo-bsc/handover_decision_2.c: https://gerrit.osmocom.org/c/osmo-bsc/+/22269/2/src/osmo-bsc/handover_decision_2.c at 117 PS2, Line 117: /* Effects of freeing a dynamic timeslot: */ > does this mean turning it to PDCH? yes exactly -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22269 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I433df6f343650f9056b1bab926bc19ac1d867ad5 Gerrit-Change-Number: 22269 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 11:46:42 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 11:47:28 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 18 Jan 2021 11:47:28 +0000 Subject: Change in libosmocore[master]: test: gprs_ns2: replace free_bind() with clear_pdus() In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, daniel, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22271 to look at the new patch set (#3). Change subject: test: gprs_ns2: replace free_bind() with clear_pdus() ...................................................................... test: gprs_ns2: replace free_bind() with clear_pdus() free_bind() should free up all driver specific state but NOT the bind itself. As the only thing left is clearing the pdus rename the function to it. Change-Id: Iac506734c93aca8be045ac13788d07d1bdc78eb3 --- M tests/gb/gprs_ns2_test.c 1 file changed, 4 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/71/22271/3 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22271 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Iac506734c93aca8be045ac13788d07d1bdc78eb3 Gerrit-Change-Number: 22271 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 11:47:28 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 18 Jan 2021 11:47:28 +0000 Subject: Change in libosmocore[master]: test: gprs_ns2: free the nsi after each test In-Reply-To: References: Message-ID: Hello Jenkins Builder, fixeria, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22272 to look at the new patch set (#3). Change subject: test: gprs_ns2: free the nsi after each test ...................................................................... test: gprs_ns2: free the nsi after each test Change-Id: I700da48d7afe6b1a81484a0725faf0c56073446d --- M tests/gb/gprs_ns2_test.c 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/72/22272/3 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22272 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I700da48d7afe6b1a81484a0725faf0c56073446d Gerrit-Change-Number: 22272 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 11:48:48 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 18 Jan 2021 11:48:48 +0000 Subject: Change in osmo-bsc[master]: hodec2: fix congestion resolution on dyn TS In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bsc/+/22265 to look at the new patch set (#2). Change subject: hodec2: fix congestion resolution on dyn TS ...................................................................... hodec2: fix congestion resolution on dyn TS For handover algorithm 2, properly figure out what effects the target cell will see for the *other* TCH kind when a handover would occupy a dynamic timeslot. Before this, only TCH/F or TCH/H would be regarded at a time. This introduces detection of whether a dynamic timeslot would be occupied by a handover, and how losing one unused dynamic timeslot affects the congestion situation for the TCH kind that is not targeted by the handover. In other words, if a handover to TCH/F causes congestion in TCH/H because of a dynamic timeslot becoming occupied, the handover will not be performed. Before this, oscillation situations could occur. A subsequent patch will do the same for congestion balancing. Related: SYS#5297 Change-Id: I1536b60f03cb0aeb6ba14a72b518aec82fa572fe --- M src/osmo-bsc/handover_decision_2.c M tests/handover/test_dyn_ts_congestion_tch_f_vs_tch_h.ho_vty 2 files changed, 38 insertions(+), 20 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/65/22265/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22265 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I1536b60f03cb0aeb6ba14a72b518aec82fa572fe Gerrit-Change-Number: 22265 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 11:48:48 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 18 Jan 2021 11:48:48 +0000 Subject: Change in osmo-bsc[master]: lchan_avail(): omit logging for handover decision 2 In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bsc/+/22267 to look at the new patch set (#2). Change subject: lchan_avail(): omit logging for handover decision 2 ...................................................................... lchan_avail(): omit logging for handover decision 2 Add bool log argument to lchan_avail_by_type() and omit logging when passed as false. From handover_decision_2.c, pass 'log' as false, from all other callers pass true, i.e. for unchanged behavior. Rationale: Usually, we use lchan_avail_by_type() to select a new lchan to initiate actual service. For that, it is interesting to see how osmo-bsc decides which lchan will be used. For handover decision 2, we since recently call lchan_avail_by_type() for each and every handover candidate, to determine whether it will occupy a dynamic timeslot or not (to know whether we would congest the other TCH kind). So this happens for each permutation of source lchan and target cell. That produces a lot of logging, out of proportion of being useful to the maintainer. Change-Id: Ia403f8fc853ca9ea9e81f7a7395df6b23845ebed --- M include/osmocom/bsc/lchan_select.h M src/osmo-bsc/abis_rsl.c M src/osmo-bsc/handover_decision_2.c M src/osmo-bsc/lchan_select.c 4 files changed, 25 insertions(+), 23 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/67/22267/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22267 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ia403f8fc853ca9ea9e81f7a7395df6b23845ebed Gerrit-Change-Number: 22267 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 11:48:48 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 18 Jan 2021 11:48:48 +0000 Subject: Change in osmo-bsc[master]: hodec2: fix congestion balancing on dyn TS In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bsc/+/22269 to look at the new patch set (#3). Change subject: hodec2: fix congestion balancing on dyn TS ...................................................................... hodec2: fix congestion balancing on dyn TS When balancing congestion, not only look at TCH/F or TCH/H separately, but also to take into account the effects on the other TCH kind from using/freeing dynamic TS. Related: OS#5298 Change-Id: I433df6f343650f9056b1bab926bc19ac1d867ad5 --- M src/osmo-bsc/handover_decision_2.c M tests/handover/test_dyn_ts_balance_congestion.ho_vty 2 files changed, 109 insertions(+), 18 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/69/22269/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22269 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I433df6f343650f9056b1bab926bc19ac1d867ad5 Gerrit-Change-Number: 22269 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 11:52:25 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 18 Jan 2021 11:52:25 +0000 Subject: Change in osmo-bsc[master]: hodec2: fix congestion balancing on dyn TS In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22269 ) Change subject: hodec2: fix congestion balancing on dyn TS ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22269 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I433df6f343650f9056b1bab926bc19ac1d867ad5 Gerrit-Change-Number: 22269 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 11:52:25 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 11:52:46 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 18 Jan 2021 11:52:46 +0000 Subject: Change in libosmocore[master]: gprs_ns2: Give NS-VC FSMs a proper name/identifier In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21400 ) Change subject: gprs_ns2: Give NS-VC FSMs a proper name/identifier ...................................................................... Patch Set 5: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/21400/3/src/gb/gprs_ns2_udp.c File src/gb/gprs_ns2_udp.c: https://gerrit.osmocom.org/c/libosmocore/+/21400/3/src/gb/gprs_ns2_udp.c at 384 PS3, Line 384: nse->nsei, "FIXME" /*osmo_sockaddr_to_str(remote)*/); > This patch is not longer WIP but the FIXME is still there :) [?] I don't see the fixme in patchset 5 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21400 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Id9d5b0684584d03685900c6298fe70246793de14 Gerrit-Change-Number: 21400 Gerrit-PatchSet: 5 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 11:52:46 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Comment-In-Reply-To: laforge Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 11:52:51 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 18 Jan 2021 11:52:51 +0000 Subject: Change in osmo-bsc[master]: hodec2: fix congestion resolution on dyn TS In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22265 ) Change subject: hodec2: fix congestion resolution on dyn TS ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22265 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I1536b60f03cb0aeb6ba14a72b518aec82fa572fe Gerrit-Change-Number: 22265 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 11:52:51 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 11:53:08 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 18 Jan 2021 11:53:08 +0000 Subject: Change in osmo-bsc[master]: lchan_avail(): omit logging for handover decision 2 In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22267 ) Change subject: lchan_avail(): omit logging for handover decision 2 ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22267 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ia403f8fc853ca9ea9e81f7a7395df6b23845ebed Gerrit-Change-Number: 22267 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 11:53:08 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 11:56:15 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 18 Jan 2021 11:56:15 +0000 Subject: Change in osmo-pcu[master]: Get rid of bts singletons References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22275 ) Change subject: Get rid of bts singletons ...................................................................... Get rid of bts singletons There's no BTS single global object anymore, get rid of those APIs. Move users to use "pcu->bts", which will evolve to a linked list in the future. Change-Id: I9cf762b0d3cb9e2cc3582727e07fa82c8e183ec5 --- M src/bts.cpp M src/bts.h M src/gprs_bssgp_pcu.cpp M src/osmobts_sock.cpp M src/pcu_l1_if.cpp M src/pcu_vty.c M tests/emu/pcu_emu.cpp 7 files changed, 17 insertions(+), 30 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/75/22275/1 diff --git a/src/bts.cpp b/src/bts.cpp index ac6e8c8..2ed81e6 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -249,16 +249,6 @@ OSMO_ASSERT(bts->statg); } -struct gprs_rlcmac_bts *bts_main_data() -{ - return the_pcu->bts; -} - -struct rate_ctr_group *bts_main_data_stats() -{ - return bts_rate_counters(the_pcu->bts); -} - static void bts_cleanup(gprs_rlcmac_bts *bts) { /* this can cause counter updates and must not be left to the diff --git a/src/bts.h b/src/bts.h index 36c0ed7..86a7a49 100644 --- a/src/bts.h +++ b/src/bts.h @@ -317,9 +317,6 @@ struct gprs_rlcmac_bts *bts_alloc(struct gprs_pcu *pcu); -struct gprs_rlcmac_bts *bts_main_data(); -struct rate_ctr_group *bts_main_data_stats(); -struct osmo_stat_item_group *bts_main_data_stat_items(); void bts_recalc_initial_cs(struct gprs_rlcmac_bts *bts); void bts_recalc_initial_mcs(struct gprs_rlcmac_bts *bts); void bts_recalc_max_cs(struct gprs_rlcmac_bts *bts); diff --git a/src/gprs_bssgp_pcu.cpp b/src/gprs_bssgp_pcu.cpp index 92fa845..997cb1b 100644 --- a/src/gprs_bssgp_pcu.cpp +++ b/src/gprs_bssgp_pcu.cpp @@ -808,7 +808,7 @@ LOGP(DBSSGP, LOGL_ERROR, "No bctx\n"); return -EIO; } - bts = bts_main_data(); + bts = the_pcu->bts; max_cs_dl = max_coding_scheme_dl(bts); diff --git a/src/osmobts_sock.cpp b/src/osmobts_sock.cpp index 6addda6..d94c7e7 100644 --- a/src/osmobts_sock.cpp +++ b/src/osmobts_sock.cpp @@ -62,7 +62,7 @@ static void pcu_tx_txt_retry(void *_priv) { - struct gprs_rlcmac_bts *bts = bts_main_data(); + struct gprs_rlcmac_bts *bts = the_pcu->bts; if (bts->active) return; @@ -90,7 +90,7 @@ static void pcu_sock_close(int lost) { struct osmo_fd *bfd = &pcu_sock_state.conn_bfd; - struct gprs_rlcmac_bts *bts = bts_main_data(); + struct gprs_rlcmac_bts *bts = the_pcu->bts; uint8_t trx, ts; LOGP(DL1IF, LOGL_NOTICE, "PCU socket has %s connection\n", diff --git a/src/pcu_l1_if.cpp b/src/pcu_l1_if.cpp index 1a47b37..ce0f55e 100644 --- a/src/pcu_l1_if.cpp +++ b/src/pcu_l1_if.cpp @@ -201,7 +201,7 @@ uint32_t fn, uint8_t block_nr) { #ifdef ENABLE_DIRECT_PHY - struct gprs_rlcmac_bts *bts = bts_main_data(); + struct gprs_rlcmac_bts *bts = the_pcu->bts; if (bts->trx[trx].fl1h) { l1if_pdch_req(bts->trx[trx].fl1h, ts, 0, fn, arfcn, block_nr, @@ -286,13 +286,13 @@ { struct gprs_rlcmac_pdch *pdch; - pdch = &bts_main_data()->trx[trx_no].pdch[ts_no]; + pdch = &the_pcu->bts->trx[trx_no].pdch[ts_no]; return pdch->rcv_block(data, len, fn, meas); } static int pcu_rx_data_ind_bcch(uint8_t *data, uint8_t len) { - struct gprs_rlcmac_bts *bts = bts_main_data(); + struct gprs_rlcmac_bts *bts = the_pcu->bts; if (len == 0) { bts->si13_is_set = false; @@ -384,13 +384,13 @@ extern "C" int pcu_rx_rts_req_pdtch(uint8_t trx, uint8_t ts, uint32_t fn, uint8_t block_nr) { - return gprs_rlcmac_rcv_rts_block(bts_main_data(), + return gprs_rlcmac_rcv_rts_block(the_pcu->bts, trx, ts, fn, block_nr); } extern "C" int pcu_rx_rts_req_ptcch(uint8_t trx, uint8_t ts, uint32_t fn, uint8_t block_nr) { - struct gprs_rlcmac_bts *bts = bts_main_data(); + struct gprs_rlcmac_bts *bts = the_pcu->bts; struct gprs_rlcmac_pdch *pdch; /* Prevent buffer overflow */ @@ -544,7 +544,7 @@ static int pcu_rx_info_ind(const struct gsm_pcu_if_info_ind *info_ind) { - struct gprs_rlcmac_bts *bts = bts_main_data(); + struct gprs_rlcmac_bts *bts = the_pcu->bts; struct gprs_bssgp_pcu *pcu; int rc = 0; unsigned int trx_nr, ts_nr; diff --git a/src/pcu_vty.c b/src/pcu_vty.c index ed1a6a4..9beb4c1 100644 --- a/src/pcu_vty.c +++ b/src/pcu_vty.c @@ -753,7 +753,7 @@ "show bts statistics", SHOW_STR "BTS related functionality\nStatistics\n") { - vty_out_rate_ctr_group(vty, "", bts_main_data_stats()); + vty_out_rate_ctr_group(vty, "", bts_rate_counters(the_pcu->bts)); return CMD_SUCCESS; } @@ -762,7 +762,7 @@ "show bts pdch", SHOW_STR "BTS related functionality\nPDCH timeslots\n") { - return pcu_vty_show_bts_pdch(vty, bts_main_data()); + return pcu_vty_show_bts_pdch(vty, the_pcu->bts); } #define IDLE_TIME_STR "keep an idle DL TBF alive for the time given\n" @@ -1013,7 +1013,7 @@ SHOW_STR "Show BTS controlled timers\n" OSMO_TDEF_VTY_DOC_T) { - struct gprs_rlcmac_bts *bts = bts_main_data(); + struct gprs_rlcmac_bts *bts = the_pcu->bts; const char *T_arg = argc > 0 ? argv[0] : NULL; return osmo_tdef_vty_show_cmd(vty, bts->T_defs_bts, T_arg, NULL); } @@ -1047,7 +1047,7 @@ "TBFs allocated via CCCH\n" "TBFs allocated via PACCH\n") { - struct gprs_rlcmac_bts *bts = bts_main_data(); + struct gprs_rlcmac_bts *bts = the_pcu->bts; uint32_t flags = UINT32_MAX; if (argv[0][0] == 'c') @@ -1063,7 +1063,7 @@ "show ms all", SHOW_STR "information about MSs\n" "All TBFs\n") { - struct gprs_rlcmac_bts *bts = bts_main_data(); + struct gprs_rlcmac_bts *bts = the_pcu->bts; return pcu_vty_show_ms_all(vty, bts); } @@ -1072,7 +1072,7 @@ "show ms tlli TLLI", SHOW_STR "information about MSs\n" "Select MS by TLLI\n" "TLLI as hex\n") { - struct gprs_rlcmac_bts *bts = bts_main_data(); + struct gprs_rlcmac_bts *bts = the_pcu->bts; char *endp = NULL; unsigned long long tlli = strtoll(argv[0], &endp, 16); if ((endp != NULL && *endp != 0) || tlli > 0xffffffffULL) { @@ -1087,7 +1087,7 @@ "show ms imsi IMSI", SHOW_STR "information about MSs\n" "Select MS by IMSI\n" "IMSI\n") { - struct gprs_rlcmac_bts *bts = bts_main_data(); + struct gprs_rlcmac_bts *bts = the_pcu->bts; return pcu_vty_show_ms_by_imsi(vty, bts, argv[0]); } diff --git a/tests/emu/pcu_emu.cpp b/tests/emu/pcu_emu.cpp index ab2804b..d7b11ca 100644 --- a/tests/emu/pcu_emu.cpp +++ b/tests/emu/pcu_emu.cpp @@ -65,7 +65,7 @@ static void init_main_bts() { - struct gprs_rlcmac_bts *bts = bts_main_data(); + struct gprs_rlcmac_bts *bts = the_pcu->bts; bts->initial_cs_dl = bts->initial_cs_ul = 1; bts->cs_mask = 1 << 0; /* CS-1 always enabled by default */ bts->n3101 = 10; -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22275 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I9cf762b0d3cb9e2cc3582727e07fa82c8e183ec5 Gerrit-Change-Number: 22275 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 11:56:15 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 18 Jan 2021 11:56:15 +0000 Subject: Change in osmo-pcu[master]: Rename 'bts_data' leftovers to 'bts' References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22276 ) Change subject: Rename 'bts_data' leftovers to 'bts' ...................................................................... Rename 'bts_data' leftovers to 'bts' Before, we used tho have a BTs object split into 2 parts, a C gprs_rlcmac_bts struct and a C++ BTS struct, and "bts_data" naming was used to distinguish them in variable names. Nowadays the struct is finally combined into one, so there's no point in using this "bts_data" terminology, we use always "bts". Change-Id: I9852bf439292d1abc70711bea65698b21bde0ee8 --- M src/gprs_rlcmac_sched.cpp M src/gprs_rlcmac_ts_alloc.cpp M src/pcu_l1_if.cpp M src/pcu_vty_functions.cpp M src/pcu_vty_functions.h M src/pdch.cpp M src/pdch.h M src/tbf.cpp M src/tbf.h 9 files changed, 40 insertions(+), 55 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/76/22276/1 diff --git a/src/gprs_rlcmac_sched.cpp b/src/gprs_rlcmac_sched.cpp index 39e22c0..40c194c 100644 --- a/src/gprs_rlcmac_sched.cpp +++ b/src/gprs_rlcmac_sched.cpp @@ -130,29 +130,29 @@ } struct msgb *sched_app_info(struct gprs_rlcmac_tbf *tbf) { - struct gprs_rlcmac_bts *bts_data; + struct gprs_rlcmac_bts *bts; struct msgb *msg = NULL; if (!tbf || !tbf->ms()->app_info_pending) return NULL; - bts_data = the_pcu->bts; + bts = the_pcu->bts; - if (bts_data->app_info) { + if (bts->app_info) { LOGP(DRLCMACSCHED, LOGL_DEBUG, "Sending Packet Application Information message\n"); - msg = msgb_copy(bts_data->app_info, "app_info_msg_sched"); + msg = msgb_copy(bts->app_info, "app_info_msg_sched"); } else LOGP(DRLCMACSCHED, LOGL_ERROR, "MS has app_info_pending flag set, but no Packet Application Information" " message stored in BTS!\n"); tbf->ms()->app_info_pending = false; - bts_data->app_info_pending--; + bts->app_info_pending--; - if (!bts_data->app_info_pending) { + if (!bts->app_info_pending) { LOGP(DRLCMACSCHED, LOGL_DEBUG, "Packet Application Information successfully sent to all MS with active" " TBF\n"); - msgb_free(bts_data->app_info); - bts_data->app_info = NULL; + msgb_free(bts->app_info); + bts->app_info = NULL; } return msg; } diff --git a/src/gprs_rlcmac_ts_alloc.cpp b/src/gprs_rlcmac_ts_alloc.cpp index f8b1c1f..4c68a87 100644 --- a/src/gprs_rlcmac_ts_alloc.cpp +++ b/src/gprs_rlcmac_ts_alloc.cpp @@ -239,7 +239,7 @@ attach_tbf_to_pdch(pdch, tbf); } -static int find_trx(const struct gprs_rlcmac_bts *bts_data, const GprsMs *ms, int8_t use_trx) +static int find_trx(const struct gprs_rlcmac_bts *bts, const GprsMs *ms, int8_t use_trx) { unsigned trx_no; unsigned ts; @@ -252,8 +252,8 @@ return use_trx; /* Find the first TRX that has a PDCH with a free UL and DL TFI */ - for (trx_no = 0; trx_no < ARRAY_SIZE(bts_data->trx); trx_no += 1) { - const struct gprs_rlcmac_trx *trx = &bts_data->trx[trx_no]; + for (trx_no = 0; trx_no < ARRAY_SIZE(bts->trx); trx_no += 1) { + const struct gprs_rlcmac_trx *trx = &bts->trx[trx_no]; for (ts = 0; ts < ARRAY_SIZE(trx->pdch); ts++) { const struct gprs_rlcmac_pdch *pdch = &trx->pdch[ts]; if (!pdch->is_enabled()) @@ -272,14 +272,14 @@ return -EBUSY; } -static bool idle_pdch_avail(const struct gprs_rlcmac_bts *bts_data) +static bool idle_pdch_avail(const struct gprs_rlcmac_bts *bts) { unsigned trx_no; unsigned ts; /* Find the first PDCH with an unused DL TS */ - for (trx_no = 0; trx_no < ARRAY_SIZE(bts_data->trx); trx_no += 1) { - const struct gprs_rlcmac_trx *trx = &bts_data->trx[trx_no]; + for (trx_no = 0; trx_no < ARRAY_SIZE(bts->trx); trx_no += 1) { + const struct gprs_rlcmac_trx *trx = &bts->trx[trx_no]; for (ts = 0; ts < ARRAY_SIZE(trx->pdch); ts++) { const struct gprs_rlcmac_pdch *pdch = &trx->pdch[ts]; if (!pdch->is_enabled()) diff --git a/src/pcu_l1_if.cpp b/src/pcu_l1_if.cpp index ce0f55e..e5ad1de 100644 --- a/src/pcu_l1_if.cpp +++ b/src/pcu_l1_if.cpp @@ -814,36 +814,35 @@ static int pcu_rx_app_info_req(struct gsm_pcu_if_app_info_req *app_info_req) { struct gprs_rlcmac_bts *bts = the_pcu->bts; - struct gprs_rlcmac_bts *bts_data = bts; struct llist_head *tmp; LOGP(DL1IF, LOGL_DEBUG, "Application Information Request received: type=0x%08x len=%i\n", app_info_req->application_type, app_info_req->len); - bts_data->app_info_pending = 0; + bts->app_info_pending = 0; llist_for_each(tmp, bts_ms_store(bts)->ms_list()) { GprsMs *ms = llist_entry(tmp, typeof(*ms), list); if (!ms_dl_tbf(ms)) continue; - bts_data->app_info_pending++; + bts->app_info_pending++; ms->app_info_pending = true; } - if (!bts_data->app_info_pending) { + if (!bts->app_info_pending) { LOGP(DL1IF, LOGL_NOTICE, "Packet Application Information will not be sent, no subscribers with active" " TBF\n"); return -1; } - if (bts_data->app_info) { + if (bts->app_info) { LOGP(DL1IF, LOGL_NOTICE, "Previous Packet Application Information was not sent to all subscribers," " overwriting with new one\n"); - msgb_free(bts_data->app_info); + msgb_free(bts->app_info); } LOGP(DL1IF, LOGL_INFO, "Sending Packet Application Information to %i subscribers with active TBF\n", - bts_data->app_info_pending); - bts_data->app_info = gprs_rlcmac_app_info_msg(app_info_req); + bts->app_info_pending); + bts->app_info = gprs_rlcmac_app_info_msg(app_info_req); return 0; } diff --git a/src/pcu_vty_functions.cpp b/src/pcu_vty_functions.cpp index 0e9cc00..231bce7 100644 --- a/src/pcu_vty_functions.cpp +++ b/src/pcu_vty_functions.cpp @@ -242,13 +242,13 @@ return show_ms(vty, ms); } -int pcu_vty_show_bts_pdch(struct vty *vty, const struct gprs_rlcmac_bts *bts_data) +int pcu_vty_show_bts_pdch(struct vty *vty, const struct gprs_rlcmac_bts *bts) { unsigned int trx_nr, ts_nr; - vty_out(vty, "BTS (%s)%s", bts_data->active ? "active" : "disabled", VTY_NEWLINE); - for (trx_nr = 0; trx_nr < ARRAY_SIZE(bts_data->trx); trx_nr++) { - const struct gprs_rlcmac_trx *trx = &bts_data->trx[trx_nr]; + vty_out(vty, "BTS (%s)%s", bts->active ? "active" : "disabled", VTY_NEWLINE); + for (trx_nr = 0; trx_nr < ARRAY_SIZE(bts->trx); trx_nr++) { + const struct gprs_rlcmac_trx *trx = &bts->trx[trx_nr]; for (ts_nr = 0; ts_nr < ARRAY_SIZE(trx->pdch); ts_nr++) { if (trx->pdch[ts_nr].is_enabled()) diff --git a/src/pcu_vty_functions.h b/src/pcu_vty_functions.h index 4528fb2..a68df27 100644 --- a/src/pcu_vty_functions.h +++ b/src/pcu_vty_functions.h @@ -27,13 +27,13 @@ struct vty; struct gprs_rlcmac_bts; -int pcu_vty_show_tbf_all(struct vty *vty, struct gprs_rlcmac_bts *bts_data, uint32_t flags); -int pcu_vty_show_ms_all(struct vty *vty, struct gprs_rlcmac_bts *bts_data); -int pcu_vty_show_ms_by_tlli(struct vty *vty, struct gprs_rlcmac_bts *bts_data, +int pcu_vty_show_tbf_all(struct vty *vty, struct gprs_rlcmac_bts *bts, uint32_t flags); +int pcu_vty_show_ms_all(struct vty *vty, struct gprs_rlcmac_bts *bts); +int pcu_vty_show_ms_by_tlli(struct vty *vty, struct gprs_rlcmac_bts *bts, uint32_t tlli); -int pcu_vty_show_ms_by_imsi(struct vty *vty, struct gprs_rlcmac_bts *bts_data, +int pcu_vty_show_ms_by_imsi(struct vty *vty, struct gprs_rlcmac_bts *bts, const char *imsi); -int pcu_vty_show_bts_pdch(struct vty *vty, const struct gprs_rlcmac_bts *bts_data); +int pcu_vty_show_bts_pdch(struct vty *vty, const struct gprs_rlcmac_bts *bts); #ifdef __cplusplus } #endif diff --git a/src/pdch.cpp b/src/pdch.cpp index 49f0b85..9dd4072 100644 --- a/src/pdch.cpp +++ b/src/pdch.cpp @@ -113,12 +113,12 @@ } } -static inline void sched_ul_ass_or_rej(struct gprs_rlcmac_bts *bts, gprs_rlcmac_bts *bts_data, struct gprs_rlcmac_dl_tbf *tbf) +static inline void sched_ul_ass_or_rej(struct gprs_rlcmac_bts *bts, struct gprs_rlcmac_dl_tbf *tbf) { bts_do_rate_ctr_inc(bts, CTR_CHANNEL_REQUEST_DESCRIPTION); /* This call will register the new TBF with the MS on success */ - gprs_rlcmac_ul_tbf *ul_tbf = tbf_alloc_ul(bts_data, tbf->ms(), tbf->trx->trx_no, tbf->tlli()); + gprs_rlcmac_ul_tbf *ul_tbf = tbf_alloc_ul(bts, tbf->ms(), tbf->trx->trx_no, tbf->tlli()); /* schedule uplink assignment or reject */ if (ul_tbf) { @@ -455,7 +455,7 @@ } /* check for channel request */ if (ack_nack->Exist_Channel_Request_Description) - sched_ul_ass_or_rej(bts(), bts_data(), tbf); + sched_ul_ass_or_rej(bts(), tbf); /* get measurements */ if (tbf->ms()) { @@ -545,7 +545,7 @@ /* check for channel request */ if (ack_nack->Exist_ChannelRequestDescription) - sched_ul_ass_or_rej(bts(), bts_data(), tbf); + sched_ul_ass_or_rej(bts(), tbf); /* get measurements */ if (tbf->ms()) { @@ -612,9 +612,9 @@ tbf_free(ul_tbf); } - ul_tbf = tbf_alloc_ul(bts_data(), ms, trx_no(), tlli); + ul_tbf = tbf_alloc_ul(bts(), ms, trx_no(), tlli); if (!ul_tbf) { - handle_tbf_reject(bts_data(), ms, tlli, + handle_tbf_reject(bts(), ms, tlli, trx_no(), ts_no); goto return_unref; } @@ -984,11 +984,6 @@ return trx->trx_no; } -inline gprs_rlcmac_bts *gprs_rlcmac_pdch::bts_data() const -{ - return trx->bts; -} - /* PTCCH (Packet Timing Advance Control Channel) */ void gprs_rlcmac_pdch::init_ptcch_msg(void) { diff --git a/src/pdch.h b/src/pdch.h index 7a544fe..2413ef7 100644 --- a/src/pdch.h +++ b/src/pdch.h @@ -69,7 +69,6 @@ int rcv_data_block(uint8_t *data, uint8_t data_len, uint32_t fn, struct pcu_l1_meas *meas, enum CodingScheme cs); - gprs_rlcmac_bts *bts_data() const; struct gprs_rlcmac_bts *bts() const; uint8_t trx_no() const; diff --git a/src/tbf.cpp b/src/tbf.cpp index 05f4e2c..3464242 100644 --- a/src/tbf.cpp +++ b/src/tbf.cpp @@ -168,11 +168,6 @@ m_name_buf[0] = '\0'; } -gprs_rlcmac_bts *gprs_rlcmac_tbf::bts_data() const -{ - return bts; -} - uint32_t gprs_rlcmac_tbf::tlli() const { return m_ms ? ms_tlli(m_ms) : GSM_RESERVED_TMSI; @@ -318,7 +313,7 @@ talloc_free(tbf); } -uint16_t egprs_window_size(const struct gprs_rlcmac_bts *bts_data, uint8_t slots) +uint16_t egprs_window_size(const struct gprs_rlcmac_bts *bts, uint8_t slots) { uint8_t num_pdch = pcu_bitcount(slots); @@ -328,7 +323,6 @@ int gprs_rlcmac_tbf::update() { - struct gprs_rlcmac_bts *bts_data = bts; int rc; if (direction != GPRS_RLCMAC_DL_TBF) @@ -337,7 +331,7 @@ LOGP(DTBF, LOGL_DEBUG, "********** DL-TBF update **********\n"); tbf_unlink_pdch(this); - rc = the_pcu->alloc_algorithm(bts_data, ms(), this, false, -1); + rc = the_pcu->alloc_algorithm(bts, ms(), this, false, -1); /* if no resource */ if (rc < 0) { LOGPTBF(this, LOGL_ERROR, "No resource after update???\n"); @@ -738,7 +732,6 @@ int gprs_rlcmac_tbf::setup(int8_t use_trx, bool single_slot) { - struct gprs_rlcmac_bts *bts_data = bts; int rc; if (ms_mode(m_ms) != GPRS) @@ -746,7 +739,7 @@ m_created_ts = time(NULL); /* select algorithm */ - rc = the_pcu->alloc_algorithm(bts_data, m_ms, this, single_slot, use_trx); + rc = the_pcu->alloc_algorithm(bts, m_ms, this, single_slot, use_trx); /* if no resource */ if (rc < 0) { return -1; diff --git a/src/tbf.h b/src/tbf.h index cb4c9b9..73266bf 100644 --- a/src/tbf.h +++ b/src/tbf.h @@ -348,7 +348,6 @@ struct llist_item m_bts_list; protected: - gprs_rlcmac_bts *bts_data() const; void merge_and_clear_ms(GprsMs *old_ms); gprs_llc_queue *llc_queue(); @@ -567,6 +566,6 @@ ((int)GPRS_RLCMAC_UL_TBF - (int)dir + (int)GPRS_RLCMAC_DL_TBF); } -uint16_t egprs_window_size(const struct gprs_rlcmac_bts *bts_data, uint8_t slots); +uint16_t egprs_window_size(const struct gprs_rlcmac_bts *bts, uint8_t slots); #endif -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22276 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I9852bf439292d1abc70711bea65698b21bde0ee8 Gerrit-Change-Number: 22276 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 11:56:36 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 18 Jan 2021 11:56:36 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Add tests for RADIO-STATUS with TMSI and IMSI instead of TLLI In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22250 ) Change subject: gbproxy: Add tests for RADIO-STATUS with TMSI and IMSI instead of TLLI ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22250 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ib3b052a12227a8f55cf063e5168b56f97b9a8f9b Gerrit-Change-Number: 22250 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 11:56:36 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 11:57:36 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 18 Jan 2021 11:57:36 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BSGSP_Emulation: Route STATUS to GLOBAL port for both SIG and PTP In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22256 ) Change subject: BSGSP_Emulation: Route STATUS to GLOBAL port for both SIG and PTP ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22256 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I6573562c0e7638f153798ee178c7c69d07c26756 Gerrit-Change-Number: 22256 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 11:57:36 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 11:58:20 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 18 Jan 2021 11:58:20 +0000 Subject: Change in libosmocore[master]: test: gprs_ns2: replace free_bind() with clear_pdus() In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22271 ) Change subject: test: gprs_ns2: replace free_bind() with clear_pdus() ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22271 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Iac506734c93aca8be045ac13788d07d1bdc78eb3 Gerrit-Change-Number: 22271 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 11:58:20 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 11:59:25 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 18 Jan 2021 11:59:25 +0000 Subject: Change in libosmocore[master]: test: gprs_ns2: don't leak the talloc context In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22270 ) Change subject: test: gprs_ns2: don't leak the talloc context ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22270 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ibf926d8db88cdb403d29de5e666dfb71eefc7b72 Gerrit-Change-Number: 22270 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 11:59:25 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 12:03:24 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 18 Jan 2021 12:03:24 +0000 Subject: Change in osmo-pcu[master]: bts: combine bts_{init, cleanup} into consturctor/destructor methods References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22277 ) Change subject: bts: combine bts_{init,cleanup} into consturctor/destructor methods ...................................................................... bts: combine bts_{init,cleanup} into consturctor/destructor methods The bts_init/cleanup functions were kept during the C and C++ structure merge process to make the patch simpler. It's not needed anymore, let's move all the destructor logic into one function and keep that together. Change-Id: I73a9457d5c92f62261561ef6afe392953576aec4 --- M src/bts.cpp 1 file changed, 34 insertions(+), 43 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/77/22277/1 diff --git a/src/bts.cpp b/src/bts.cpp index 2ed81e6..ec35dcd 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -192,8 +192,40 @@ bts_stat_item_description, }; -static void bts_init(struct gprs_rlcmac_bts *bts, struct gprs_pcu *pcu) +static int bts_talloc_destructor(struct gprs_rlcmac_bts* bts) { + /* this can cause counter updates and must not be left to the + * m_ms_store's destructor */ + bts->ms_store->cleanup(); + delete bts->ms_store; + delete bts->sba; + delete bts->pollController; + + if (bts->ratectrs) { + rate_ctr_group_free(bts->ratectrs); + bts->ratectrs = NULL; + } + + if (bts->statg) { + osmo_stat_item_group_free(bts->statg); + bts->statg = NULL; + } + + if (bts->app_info) { + msgb_free(bts->app_info); + bts->app_info = NULL; + } + return 0; +} + +struct gprs_rlcmac_bts* bts_alloc(struct gprs_pcu *pcu) +{ + struct gprs_rlcmac_bts* bts; + bts = talloc_zero(pcu, struct gprs_rlcmac_bts); + if (!bts) + return bts; + talloc_set_destructor(bts, bts_talloc_destructor); + bts->pcu = pcu; bts->pollController = new PollController(*bts); @@ -247,31 +279,8 @@ bts->statg = osmo_stat_item_group_alloc(tall_pcu_ctx, &bts_statg_desc, 0); OSMO_ASSERT(bts->statg); -} -static void bts_cleanup(gprs_rlcmac_bts *bts) -{ - /* this can cause counter updates and must not be left to the - * m_ms_store's destructor */ - bts->ms_store->cleanup(); - delete bts->ms_store; - delete bts->sba; - delete bts->pollController; - - if (bts->ratectrs) { - rate_ctr_group_free(bts->ratectrs); - bts->ratectrs = NULL; - } - - if (bts->statg) { - osmo_stat_item_group_free(bts->statg); - bts->statg = NULL; - } - - if (bts->app_info) { - msgb_free(bts->app_info); - bts->app_info = NULL; - } + return bts; } void bts_set_current_frame_number(struct gprs_rlcmac_bts *bts, int fn) @@ -1056,24 +1065,6 @@ return ms; } - -static int bts_talloc_destructor(struct gprs_rlcmac_bts* bts) -{ - bts_cleanup(bts); - return 0; -} - -struct gprs_rlcmac_bts* bts_alloc(struct gprs_pcu *pcu) -{ - struct gprs_rlcmac_bts* bts; - bts = talloc_zero(pcu, struct gprs_rlcmac_bts); - if (!bts) - return bts; - talloc_set_destructor(bts, bts_talloc_destructor); - bts_init(bts, pcu); - return bts; -} - struct SBAController *bts_sba(struct gprs_rlcmac_bts *bts) { return bts->sba; -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22277 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I73a9457d5c92f62261561ef6afe392953576aec4 Gerrit-Change-Number: 22277 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 12:05:20 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 18 Jan 2021 12:05:20 +0000 Subject: Change in libosmocore[master]: gprs_ns2_fr: reduce duplication between gprs_ns2_fr_connect / connect2 In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22259 ) Change subject: gprs_ns2_fr: reduce duplication between gprs_ns2_fr_connect / connect2 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22259 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If835bf138f213e7f58205018e7efe3ecb772c624 Gerrit-Change-Number: 22259 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 12:05:20 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 12:09:46 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 18 Jan 2021 12:09:46 +0000 Subject: Change in libosmocore[master]: gprs_ns2: implement BLOCK/UNBLOCK of a NSVC by vty In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, daniel, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22210 to look at the new patch set (#10). Change subject: gprs_ns2: implement BLOCK/UNBLOCK of a NSVC by vty ...................................................................... gprs_ns2: implement BLOCK/UNBLOCK of a NSVC by vty The vty should be able to block or unblock a specific NSVC. Further more this case is special for the UNITDATA as those can be still received until the other side response to the BLOCK PDU. Related: OS#4939 Change-Id: Ic0ce3c5fabc8644cc1ee71a8f6dd783fadf7b84d --- M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_vc_fsm.c M src/gb/gprs_ns2_vty2.c M tests/gb/gprs_ns2_test.c M tests/gb/gprs_ns2_test.ok 5 files changed, 201 insertions(+), 9 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/10/22210/10 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22210 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic0ce3c5fabc8644cc1ee71a8f6dd783fadf7b84d Gerrit-Change-Number: 22210 Gerrit-PatchSet: 10 Gerrit-Owner: lynxis lazus Gerrit-Assignee: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 12:10:00 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 18 Jan 2021 12:10:00 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Add test cases for STATUS handling In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22257 ) Change subject: gbproxy: Add test cases for STATUS handling ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22257 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If2ddd158346a3da340f1c673354196f3872c4f67 Gerrit-Change-Number: 22257 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 12:10:00 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 12:11:58 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 18 Jan 2021 12:11:58 +0000 Subject: Change in libosmocore[master]: gprs_ns2: implement BLOCK/UNBLOCK of a NSVC by vty In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22210 ) Change subject: gprs_ns2: implement BLOCK/UNBLOCK of a NSVC by vty ...................................................................... Patch Set 10: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/22210/1/src/gb/gprs_ns2_vty2.c File src/gb/gprs_ns2_vty2.c: https://gerrit.osmocom.org/c/libosmocore/+/22210/1/src/gb/gprs_ns2_vty2.c at 1519 PS1, Line 1519: vty_out(vty, "Could not find NSVCI %u%s", id, VTY_NEWLINE); > %05u Done -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22210 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic0ce3c5fabc8644cc1ee71a8f6dd783fadf7b84d Gerrit-Change-Number: 22210 Gerrit-PatchSet: 10 Gerrit-Owner: lynxis lazus Gerrit-Assignee: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 12:11:58 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Comment-In-Reply-To: daniel Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 12:15:25 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 18 Jan 2021 12:15:25 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Implement IMSI cache In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22251 ) Change subject: gbproxy: Implement IMSI cache ...................................................................... Patch Set 2: -Code-Review -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22251 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: If0a8d6cc1d63f2fb2c395cc5d4373a915bc2cb87 Gerrit-Change-Number: 22251 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Mon, 18 Jan 2021 12:15:25 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 12:25:14 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 18 Jan 2021 12:25:14 +0000 Subject: Change in docker-playground[master]: ttcn3-pcu-test/sns: add configuration for 2nd and 3rd nsvc References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/22278 ) Change subject: ttcn3-pcu-test/sns: add configuration for 2nd and 3rd nsvc ...................................................................... ttcn3-pcu-test/sns: add configuration for 2nd and 3rd nsvc With the change to NS_Provider the configruation has to be extended to also include the other nsvcs. osmo-ttcn3-hacks: c316572db111 ("RAW_NS: rework NS connection to use NS_Provider") Change-Id: I8020f808c06054ee38427de65b8c3867817d4ad2 --- M ttcn3-pcu-test/sns/PCU_Tests.cfg 1 file changed, 24 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/78/22278/1 diff --git a/ttcn3-pcu-test/sns/PCU_Tests.cfg b/ttcn3-pcu-test/sns/PCU_Tests.cfg index 9cd4b38..c6af8a6 100644 --- a/ttcn3-pcu-test/sns/PCU_Tests.cfg +++ b/ttcn3-pcu-test/sns/PCU_Tests.cfg @@ -22,6 +22,30 @@ } }, nsvci := 1234 + }, + { + provider := { + ip := { + address_family := AF_INET, + local_ip := "172.18.14.10", + local_udp_port := 23001, + remote_ip := "172.18.14.101", + remote_udp_port := 23000 + } + }, + nsvci := 1234 + }, + { + provider := { + ip := { + address_family := AF_INET, + local_ip := "172.18.14.10", + local_udp_port := 23002, + remote_ip := "172.18.14.101", + remote_udp_port := 23000 + } + }, + nsvci := 1234 } } } -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22278 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I8020f808c06054ee38427de65b8c3867817d4ad2 Gerrit-Change-Number: 22278 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 12:27:06 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 18 Jan 2021 12:27:06 +0000 Subject: Change in libosmocore[master]: test: gprs_ns2: don't leak the talloc context In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22270 ) Change subject: test: gprs_ns2: don't leak the talloc context ...................................................................... Patch Set 2: Code-Review+2 1+1 = 2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22270 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ibf926d8db88cdb403d29de5e666dfb71eefc7b72 Gerrit-Change-Number: 22270 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 12:27:06 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 12:27:42 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 18 Jan 2021 12:27:42 +0000 Subject: Change in docker-playground[master]: ttcn3-pcu-test/sns: add configuration for 2nd and 3rd nsvc In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22278 ) Change subject: ttcn3-pcu-test/sns: add configuration for 2nd and 3rd nsvc ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22278 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I8020f808c06054ee38427de65b8c3867817d4ad2 Gerrit-Change-Number: 22278 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 12:27:42 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 12:27:52 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 18 Jan 2021 12:27:52 +0000 Subject: Change in docker-playground[master]: ttcn3-pcu-test/sns: add configuration for 2nd and 3rd nsvc In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22278 ) Change subject: ttcn3-pcu-test/sns: add configuration for 2nd and 3rd nsvc ...................................................................... Patch Set 1: Verified+1 tested on my local docker -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22278 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I8020f808c06054ee38427de65b8c3867817d4ad2 Gerrit-Change-Number: 22278 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 12:27:52 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 12:34:37 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 18 Jan 2021 12:34:37 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Implement IMSI cache In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22251 ) Change subject: gbproxy: Implement IMSI cache ...................................................................... Patch Set 2: > Patch Set 2: Code-Review+1 > > > Patch Set 2: Code-Review-1 > > > > Looks good to me. Except I'm unsure if crc16 as hash is good enough. Maybe @laforge can give additional feedback. > > I don't really have the mathematical background to say if it is good enough or not. In the Linux kernel we typically used the Bob Jenkins hash (https://burtleburtle.net/bob/hash/) see include/linux/jhash.h > > We usually expect a lot of variance in the final part of the ISMI, and little at the state. If one ignores the MCC/MNC (first 5 digits), 9 of the 10 decimal digits can actually even be represented in an uint32_t. So one would probably even get quite good distribution by simply using the modulo-32 representation of the 10 final IMSI digits. I just want to add that the hashtable is only 10 bit large anyway so using crc16 or 32 will still just result in one of 1024 buckets being chosen. > I guess without simulation it will be hard to predict what's the best approach. > > I'd say it should for sure be good enough to merge. > > Unrelated comment: It would be great to add "show" commands for bobth the IMSI and the TLLI cache. Ok, will do as separate commit -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22251 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: If0a8d6cc1d63f2fb2c395cc5d4373a915bc2cb87 Gerrit-Change-Number: 22251 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Mon, 18 Jan 2021 12:34:37 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 12:35:19 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 18 Jan 2021 12:35:19 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Implement IMSI cache In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22251 ) Change subject: gbproxy: Implement IMSI cache ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22251 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: If0a8d6cc1d63f2fb2c395cc5d4373a915bc2cb87 Gerrit-Change-Number: 22251 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Mon, 18 Jan 2021 12:35:19 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Mon Jan 18 12:35:04 2021 From: admin at opensuse.org (OBS Notification) Date: Mon, 18 Jan 2021 12:35:04 +0000 Subject: Build failure of network:osmocom:nightly/libosmocore in openSUSE_Factory_ARM/armv7l In-Reply-To: References: Message-ID: <60058093252f9_5c972aefe4e465fc96726@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libosmocore/openSUSE_Factory_ARM/armv7l Package network:osmocom:nightly/libosmocore failed to build in openSUSE_Factory_ARM/armv7l Check out the package for editing: osc checkout network:osmocom:nightly libosmocore Last lines of build log: [ 579s] Your package starts with 'lib' as part of its name, but does not provide any [ 579s] libraries. It must not be called a lib-package then. Give it a more sensible [ 579s] name. [ 579s] [ 579s] libosmocodec0.armv7hl: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 579s] libosmocoding0.armv7hl: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 579s] libosmocore16.armv7hl: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 579s] libosmoctrl0.armv7hl: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 579s] libosmogb11.armv7hl: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 579s] libosmogsm15.armv7hl: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 579s] libosmosim2.armv7hl: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 579s] libosmousb0.armv7hl: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 579s] libosmovty4.armv7hl: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 579s] Your shared library package requires a fixed version of another package. The [ 579s] intention of the Shared Library Policy is to allow parallel installation of [ 579s] multiple versions of the same shared library, hard dependencies likely make [ 579s] that impossible. Please remove this dependency and instead move it to the [ 579s] runtime uses of your library. [ 579s] [ 579s] (none): E: badness 3960 exceeds threshold 1000, aborting. [ 579s] 20 packages and 0 specfiles checked; 9 errors, 22 warnings. [ 579s] [ 579s] ### VM INTERACTION START ### [ 582s] [ 557.553189] sysrq: Power Off [ 582s] [ 557.555099] reboot: Power down [ 582s] ### VM INTERACTION END ### [ 582s] [ 582s] armbuild14 failed "build libosmocore.spec" at Mon Jan 18 12:34:59 UTC 2021. [ 582s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Mon Jan 18 12:37:24 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 18 Jan 2021 12:37:24 +0000 Subject: Change in libosmocore[master]: test: gprs_ns2: don't leak the talloc context In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22270 ) Change subject: test: gprs_ns2: don't leak the talloc context ...................................................................... test: gprs_ns2: don't leak the talloc context Makes the address sanitizer happy Change-Id: Ibf926d8db88cdb403d29de5e666dfb71eefc7b72 --- M tests/gb/gprs_ns2_test.c 1 file changed, 1 insertion(+), 0 deletions(-) Approvals: pespin: Looks good to me, but someone else must approve daniel: Looks good to me, but someone else must approve lynxis lazus: Looks good to me, approved Jenkins Builder: Verified diff --git a/tests/gb/gprs_ns2_test.c b/tests/gb/gprs_ns2_test.c index 86a0190..d53dc88 100644 --- a/tests/gb/gprs_ns2_test.c +++ b/tests/gb/gprs_ns2_test.c @@ -160,5 +160,6 @@ test_nse_transfer_cap(ctx); printf("===== NS2 protocol test END\n\n"); + talloc_free(ctx); exit(EXIT_SUCCESS); } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22270 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ibf926d8db88cdb403d29de5e666dfb71eefc7b72 Gerrit-Change-Number: 22270 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Mon Jan 18 12:41:55 2021 From: admin at opensuse.org (OBS Notification) Date: Mon, 18 Jan 2021 12:41:55 +0000 Subject: Build failure of network:osmocom:nightly/libosmocore in openSUSE_Leap_15.1_ARM/armv7l In-Reply-To: References: Message-ID: <6005821aef2d8_5c972aefe4e465fc98623@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libosmocore/openSUSE_Leap_15.1_ARM/armv7l Package network:osmocom:nightly/libosmocore failed to build in openSUSE_Leap_15.1_ARM/armv7l Check out the package for editing: osc checkout network:osmocom:nightly libosmocore Last lines of build log: [ 307s] Your package starts with 'lib' as part of its name, but does not provide any [ 307s] libraries. It must not be called a lib-package then. Give it a more sensible [ 307s] name. [ 307s] [ 307s] libosmocodec0.armv7hl: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 307s] libosmocoding0.armv7hl: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 307s] libosmocore16.armv7hl: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 307s] libosmoctrl0.armv7hl: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 307s] libosmogb11.armv7hl: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 307s] libosmogsm15.armv7hl: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 307s] libosmosim2.armv7hl: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 307s] libosmousb0.armv7hl: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 307s] libosmovty4.armv7hl: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 307s] Your shared library package requires a fixed version of another package. The [ 307s] intention of the Shared Library Policy is to allow parallel installation of [ 307s] multiple versions of the same shared library, hard dependencies likely make [ 307s] that impossible. Please remove this dependency and instead move it to the [ 307s] runtime uses of your library. [ 307s] [ 307s] (none): E: badness 3960 exceeds threshold 1000, aborting. [ 307s] 20 packages and 0 specfiles checked; 9 errors, 22 warnings. [ 307s] [ 307s] ### VM INTERACTION START ### [ 310s] [ 285.834065] sysrq: SysRq : Power Off [ 310s] [ 285.837581] reboot: Power down [ 311s] ### VM INTERACTION END ### [ 311s] [ 311s] obs-arm-5 failed "build libosmocore.spec" at Mon Jan 18 12:41:38 UTC 2021. [ 311s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Mon Jan 18 12:55:47 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 18 Jan 2021 12:55:47 +0000 Subject: Change in osmo-pcu[master]: Move alpha,gamma fields from BTS to PCU In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22181 ) Change subject: Move alpha,gamma fields from BTS to PCU ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22181 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I2fdd9c8a7393157183fff64084bb10e2a3b1dc63 Gerrit-Change-Number: 22181 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-CC: lynxis lazus Gerrit-Comment-Date: Mon, 18 Jan 2021 12:55:47 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 12:57:18 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 18 Jan 2021 12:57:18 +0000 Subject: Change in osmo-sgsn[master]: gb_proxy: Don't use orphan log subsystem DPCU References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22279 ) Change subject: gb_proxy: Don't use orphan log subsystem DPCU ...................................................................... gb_proxy: Don't use orphan log subsystem DPCU DPCU is defined in debug.h, but never registered as log subsystem, so we shall not use it. Also remove other similar "orphan" log subsystems from debug.h Change-Id: I8be54ee49e10d4004128352613923c4700063aa3 --- M include/osmocom/sgsn/debug.h M src/gbproxy/gb_proxy.c 2 files changed, 5 insertions(+), 18 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/79/22279/1 diff --git a/include/osmocom/sgsn/debug.h b/include/osmocom/sgsn/debug.h index da819d5..9a686cb 100644 --- a/include/osmocom/sgsn/debug.h +++ b/include/osmocom/sgsn/debug.h @@ -8,34 +8,21 @@ /* Debug Areas of the code */ enum { - DRLL, - DCC, DMM, - DRR, - DRSL, - DNM, - DMNCC, DPAG, DMEAS, - DSCCP, - DMSC, - DHO, - DDB, DREF, DGPRS, DNS, DLLC, DSNDCP, DSLHC, - DNAT, DCTRL, DFILTER, DGTPHUB, DRANAP, DSUA, DV42BIS, - DPCU, - DVLR, DIUCS, DSIGTRAN, DGTP, diff --git a/src/gbproxy/gb_proxy.c b/src/gbproxy/gb_proxy.c index 7f8260c..89520c2 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -1287,7 +1287,7 @@ break; case NS_AFF_CAUSE_RECOVERY: - LOGP(DPCU, LOGL_NOTICE, "NS-NSE %d became available\n", nsp->nsei); + LOGP(DGPRS, LOGL_NOTICE, "NS-NSE %d became available\n", nsp->nsei); sgsn_nse = gbproxy_nse_by_nsei(cfg, nsp->nsei, NSE_F_SGSN); if (sgsn_nse) { uint8_t cause = BSSGP_CAUSE_OML_INTERV; @@ -1321,10 +1321,10 @@ } } #endif - LOGP(DPCU, LOGL_NOTICE, "NS-NSE %d became unavailable\n", nsp->nsei); + LOGP(DGPRS, LOGL_NOTICE, "NS-NSE %d became unavailable\n", nsp->nsei); break; default: - LOGP(DPCU, LOGL_NOTICE, "NS: Unknown NS-STATUS.ind cause=%s from NS\n", + LOGP(DGPRS, LOGL_NOTICE, "NS: Unknown NS-STATUS.ind cause=%s from NS\n", gprs_ns2_aff_cause_prim_str(nsp->u.status.cause)); break; } @@ -1344,7 +1344,7 @@ nsp = container_of(oph, struct osmo_gprs_ns2_prim, oph); if (oph->operation != PRIM_OP_INDICATION) { - LOGP(DPCU, LOGL_NOTICE, "NS: Unexpected primitive operation %s from NS\n", + LOGP(DGPRS, LOGL_NOTICE, "NS: Unexpected primitive operation %s from NS\n", get_value_string(osmo_prim_op_names, oph->operation)); return 0; } @@ -1366,7 +1366,7 @@ gprs_ns_prim_status_cb(cfg, nsp); break; default: - LOGP(DPCU, LOGL_NOTICE, "NS: Unknown prim %s %s from NS\n", + LOGP(DGPRS, LOGL_NOTICE, "NS: Unknown prim %s %s from NS\n", gprs_ns2_prim_str(oph->primitive), get_value_string(osmo_prim_op_names, oph->operation)); break; -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22279 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I8be54ee49e10d4004128352613923c4700063aa3 Gerrit-Change-Number: 22279 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 12:58:41 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 18 Jan 2021 12:58:41 +0000 Subject: Change in osmo-sgsn[master]: gb_proxy: Don't use orphan log subsystem DPCU In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22279 ) Change subject: gb_proxy: Don't use orphan log subsystem DPCU ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22279 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I8be54ee49e10d4004128352613923c4700063aa3 Gerrit-Change-Number: 22279 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Mon, 18 Jan 2021 12:58:41 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 13:04:51 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 18 Jan 2021 13:04:51 +0000 Subject: Change in osmo-pcu[master]: Move (m)cs_lqual_ranges fields from BTS to PCU In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22186 ) Change subject: Move (m)cs_lqual_ranges fields from BTS to PCU ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22186 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I39e2fc7e229851610d797c594d84902af6079411 Gerrit-Change-Number: 22186 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Mon, 18 Jan 2021 13:04:51 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 13:07:13 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 18 Jan 2021 13:07:13 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Implement IMSI cache In-Reply-To: References: Message-ID: daniel has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22251 ) Change subject: gbproxy: Implement IMSI cache ...................................................................... gbproxy: Implement IMSI cache When SGSN pooling is enabled we need to route some responses based on IMSI back to the correct SGSN, e.g. PAGING_PS_REJECT. The IMSI cache keeps track of this IMSI <-> NSE(SGSN) mapping. Change-Id: If0a8d6cc1d63f2fb2c395cc5d4373a915bc2cb87 Related: OS#4951, OS#4472 --- M include/osmocom/sgsn/gb_proxy.h M src/gbproxy/gb_proxy.c M src/gbproxy/gb_proxy_peer.c 3 files changed, 153 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, but someone else must approve lynxis lazus: Looks good to me, approved diff --git a/include/osmocom/sgsn/gb_proxy.h b/include/osmocom/sgsn/gb_proxy.h index 04a3c4b..d988cae 100644 --- a/include/osmocom/sgsn/gb_proxy.h +++ b/include/osmocom/sgsn/gb_proxy.h @@ -8,6 +8,7 @@ #include #include #include +#include #include #include @@ -83,6 +84,14 @@ uint8_t timeout; } tlli_cache; + /* imsi<->nse cache used for PAGING REJECT */ + struct { + DECLARE_HASHTABLE(entries, 10); + struct osmo_timer_list timer; + /* Time in seconds that the entries should be valid */ + uint8_t timeout; + } imsi_cache; + /* List of all SGSNs */ struct llist_head sgsns; @@ -173,7 +182,7 @@ /* TLLI cache */ struct gbproxy_tlli_cache_entry { - /* linked to gbproxy_config.tlli_cache */ + /* linked to gbproxy_config.tlli_cache.entries */ struct hlist_node list; /* TLLI of the entry */ @@ -184,6 +193,19 @@ struct gbproxy_nse *nse; }; +/* IMSI cache */ +struct gbproxy_imsi_cache_entry { + /* linked to gbproxy_config.imsi_cache.entries */ + struct hlist_node list; + + /* IMSI of the entry */ + char imsi[OSMO_IMSI_BUF_SIZE]; + /* When was this entry last seen */ + time_t tstamp; + /* The SGSN where the request came from */ + struct gbproxy_nse *nse; +}; + /* Convenience logging macros for NSE/BVC */ #define LOGPNSE_CAT(NSE, SUBSYS, LEVEL, FMT, ARGS...) \ LOGP(SUBSYS, LEVEL, "NSE(%05u/%s) " FMT, (NSE)->nsei, \ @@ -251,12 +273,18 @@ struct gbproxy_nse *gbproxy_nse_by_nsei(struct gbproxy_config *cfg, uint16_t nsei, uint32_t flags); struct gbproxy_nse *gbproxy_nse_by_nsei_or_new(struct gbproxy_config *cfg, uint16_t nsei, bool sgsn_facing); struct gbproxy_nse *gbproxy_nse_by_tlli(struct gbproxy_config *cfg, uint32_t tlli); +struct gbproxy_nse *gbproxy_nse_by_imsi(struct gbproxy_config *cfg, const char *imsi); /* TLLI cache */ void gbproxy_tlli_cache_update(struct gbproxy_nse *nse, uint32_t tlli); void gbproxy_tlli_cache_remove(struct gbproxy_config *cfg, uint32_t tlli); int gbproxy_tlli_cache_cleanup(struct gbproxy_config *cfg); +/* IMSI cache */ +void gbproxy_imsi_cache_update(struct gbproxy_nse *nse, const char *imsi); +void gbproxy_imsi_cache_remove(struct gbproxy_config *cfg, const char *imsi); +int gbproxy_imsi_cache_cleanup(struct gbproxy_config *cfg); + /* SGSN handling */ struct gbproxy_sgsn *gbproxy_sgsn_alloc(struct gbproxy_config *cfg, uint16_t nsei, const char *name); void gbproxy_sgsn_free(struct gbproxy_sgsn *sgsn); diff --git a/src/gbproxy/gb_proxy.c b/src/gbproxy/gb_proxy.c index 7f8260c..d8bca58 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -1405,6 +1405,15 @@ osmo_timer_schedule(&cfg->tlli_cache.timer, 2, 0); } +static void imsi_cache_cleanup(void *data) +{ + struct gbproxy_config *cfg = data; + gbproxy_imsi_cache_cleanup(cfg); + + /* TODO: Disable timer when cache is empty */ + osmo_timer_schedule(&cfg->imsi_cache.timer, 2, 0); +} + int gbproxy_init_config(struct gbproxy_config *cfg) { struct timespec tp; @@ -1414,6 +1423,7 @@ cfg->pool.null_nri_ranges = osmo_nri_ranges_alloc(cfg); /* TODO: Make configurable */ cfg->tlli_cache.timeout = 10; + cfg->imsi_cache.timeout = 10; hash_init(cfg->bss_nses); hash_init(cfg->sgsn_nses); @@ -1424,6 +1434,10 @@ osmo_timer_setup(&cfg->tlli_cache.timer, tlli_cache_cleanup, cfg); osmo_timer_schedule(&cfg->tlli_cache.timer, 2, 0); + /* We could also combine both timers */ + osmo_timer_setup(&cfg->imsi_cache.timer, imsi_cache_cleanup, cfg); + osmo_timer_schedule(&cfg->imsi_cache.timer, 2, 0); + cfg->ctrg = rate_ctr_group_alloc(tall_sgsn_ctx, &global_ctrg_desc, 0); if (!cfg->ctrg) { LOGP(DGPRS, LOGL_ERROR, "Cannot allocate global counter group!\n"); diff --git a/src/gbproxy/gb_proxy_peer.c b/src/gbproxy/gb_proxy_peer.c index 104902b..1d9352d 100644 --- a/src/gbproxy/gb_proxy_peer.c +++ b/src/gbproxy/gb_proxy_peer.c @@ -25,11 +25,13 @@ #include #include +#include #include #include #include #include #include +#include #include #include @@ -331,6 +333,101 @@ } } return count; + +} +/*********************************************************************** + * IMSI cache + ***********************************************************************/ +static inline uint16_t _checksum_imsi(const char *imsi) +{ + size_t len = strlen(imsi); + return osmo_crc16(0, (const uint8_t *)imsi, len); +} + +static inline struct gbproxy_imsi_cache_entry *_get_imsi_entry(struct gbproxy_config *cfg, const char *imsi) +{ + struct gbproxy_imsi_cache_entry *cache_entry; + uint16_t imsi_hash = _checksum_imsi(imsi); + + hash_for_each_possible(cfg->imsi_cache.entries, cache_entry, list, imsi_hash) { + if (!strncmp(cache_entry->imsi, imsi, sizeof(cache_entry->imsi))) + return cache_entry; + } + return NULL; +} + +void gbproxy_imsi_cache_update(struct gbproxy_nse *nse, const char *imsi) +{ + struct gbproxy_config *cfg = nse->cfg; + struct timespec now; + struct gbproxy_imsi_cache_entry *cache_entry = _get_imsi_entry(cfg, imsi); + uint16_t imsi_hash = _checksum_imsi(imsi); + + osmo_clock_gettime(CLOCK_MONOTONIC, &now); + + if (cache_entry) { + /* Update the entry if it already exists */ + cache_entry->nse = nse; + cache_entry->tstamp = now.tv_sec; + return; + } + + cache_entry = talloc_zero(cfg, struct gbproxy_imsi_cache_entry); + OSMO_STRLCPY_ARRAY(cache_entry->imsi, imsi); + cache_entry->nse = nse; + cache_entry->tstamp = now.tv_sec; + hash_add(cfg->imsi_cache.entries, &cache_entry->list, imsi_hash); +} + +static void _imsi_cache_remove_nse(struct gbproxy_nse *nse) { + uint i; + struct gbproxy_config *cfg = nse->cfg; + struct gbproxy_imsi_cache_entry *imsi_cache; + struct hlist_node *tmp; + + hash_for_each_safe(cfg->imsi_cache.entries, i, tmp, imsi_cache, list) { + if (imsi_cache->nse == nse) { + hash_del(&imsi_cache->list); + talloc_free(imsi_cache); + } + } +} + +void gbproxy_imsi_cache_remove(struct gbproxy_config *cfg, const char *imsi) +{ + struct gbproxy_imsi_cache_entry *imsi_cache; + struct hlist_node *tmp; + uint16_t imsi_hash = _checksum_imsi(imsi); + + hash_for_each_possible_safe(cfg->imsi_cache.entries, imsi_cache, tmp, list, imsi_hash) { + if (!(strncmp(imsi_cache->imsi, imsi, sizeof(imsi_cache->imsi)))) { + hash_del(&imsi_cache->list); + talloc_free(imsi_cache); + return; + } + } +} + +int gbproxy_imsi_cache_cleanup(struct gbproxy_config *cfg) +{ + int i, count = 0; + struct gbproxy_imsi_cache_entry *imsi_cache; + struct hlist_node *tmp; + struct timespec now; + time_t expiry; + + osmo_clock_gettime(CLOCK_MONOTONIC, &now); + expiry = now.tv_sec - cfg->imsi_cache.timeout; + + hash_for_each_safe(cfg->imsi_cache.entries, i, tmp, imsi_cache, list) { + if (imsi_cache->tstamp < expiry) { + count++; + LOGP(DGPRS, LOGL_NOTICE, "Cache entry for IMSI %s expired, removing\n", imsi_cache->imsi); + hash_del(&imsi_cache->list); + talloc_free(imsi_cache); + } + } + return count; } /*********************************************************************** @@ -374,8 +471,9 @@ LOGPNSE_CAT(nse, DOBJ, LOGL_INFO, "NSE Destroying\n"); hash_del(&nse->list); - /* Clear the tlli_cache from this NSE */ + /* Clear the cache entries of this NSE */ _tlli_cache_remove_nse(nse); + _imsi_cache_remove_nse(nse); hash_for_each_safe(nse->bvcs, i, tmp, bvc, list) gbproxy_bvc_free(bvc); @@ -444,6 +542,17 @@ return NULL; } +struct gbproxy_nse *gbproxy_nse_by_imsi(struct gbproxy_config *cfg, const char *imsi) +{ + struct gbproxy_imsi_cache_entry *imsi_cache; + uint16_t imsi_hash = _checksum_imsi(imsi); + + hash_for_each_possible(cfg->imsi_cache.entries, imsi_cache, list, imsi_hash) { + if (!strncmp(imsi_cache->imsi, imsi, sizeof(imsi_cache->imsi))) + return imsi_cache->nse; + } + return NULL; +} /*********************************************************************** * SGSN - Serving GPRS Support Node -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22251 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: If0a8d6cc1d63f2fb2c395cc5d4373a915bc2cb87 Gerrit-Change-Number: 22251 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 13:07:14 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 18 Jan 2021 13:07:14 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Use IMSI cache to handle PAGING_PS_REJECT In-Reply-To: References: Message-ID: daniel has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22252 ) Change subject: gbproxy: Use IMSI cache to handle PAGING_PS_REJECT ...................................................................... gbproxy: Use IMSI cache to handle PAGING_PS_REJECT Change-Id: I7d91d9ecfba757dc81edcf05efb7a2158348099d Related: OS#4472, OS#4951 --- M src/gbproxy/gb_proxy.c 1 file changed, 23 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified lynxis lazus: Looks good to me, approved laforge: Looks good to me, but someone else must approve diff --git a/src/gbproxy/gb_proxy.c b/src/gbproxy/gb_proxy.c index d8bca58..44a9008 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -934,6 +934,20 @@ goto err_no_bvc; gbprox_bss2sgsn_tlli(from_bvc->cell, msg, &tlli, true); break; + case BSSGP_PDUT_PAGING_PS_REJECT: + { + /* Route according to IMSI<->NSE cache entry */ + struct osmo_mobile_identity mi; + const uint8_t *mi_data = TLVP_VAL(&tp, BSSGP_IE_IMSI); + uint8_t mi_len = TLVP_LEN(&tp, BSSGP_IE_IMSI); + osmo_mobile_identity_decode(&mi, mi_data, mi_len, false); + nse = gbproxy_nse_by_imsi(nse->cfg, mi.imsi); + if (!nse) { + return bssgp_tx_status(BSSGP_CAUSE_INV_MAND_INF, NULL, msg); + } + rc = gbprox_relay2nse(msg, nse, 0); + break; + } default: LOGPNSE(nse, LOGL_ERROR, "Rx %s: Implementation missing\n", pdut_name); break; @@ -1135,6 +1149,15 @@ rc = gbprox_relay2peer(msg, sgsn_bvc->cell->bss_bvc, ns_bvci); break; case BSSGP_PDUT_PAGING_PS: + { + /* Cache the IMSI<->NSE to route PAGING REJECT */ + struct osmo_mobile_identity mi; + const uint8_t *mi_data = TLVP_VAL(&tp, BSSGP_IE_IMSI); + uint8_t mi_len = TLVP_LEN(&tp, BSSGP_IE_IMSI); + osmo_mobile_identity_decode(&mi, mi_data, mi_len, false); + gbproxy_imsi_cache_update(nse, mi.imsi); + /* fall through */ + } case BSSGP_PDUT_PAGING_CS: /* process the paging request (LAI/RAI lookup) */ rc = gbprox_rx_paging(nse, msg, pdut_name, &tp, ns_bvci); -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22252 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I7d91d9ecfba757dc81edcf05efb7a2158348099d Gerrit-Change-Number: 22252 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 13:14:38 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 18 Jan 2021 13:14:38 +0000 Subject: Change in osmo-pcu[master]: Get rid of unused gsm_timer.{cpp,h} References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22280 ) Change subject: Get rid of unused gsm_timer.{cpp,h} ...................................................................... Get rid of unused gsm_timer.{cpp,h} Those files are not really being used other than for calling get_current_fn() which is just a placeholder to call bts_current_frame_number on the global bts object. Change-Id: I6d50a8c15c1de5e2a308a24b313a7776f94ae54f --- M debian/copyright M src/Makefile.am M src/gprs_rlcmac.h D src/gsm_timer.cpp D src/gsm_timer.h M src/pcu_l1_if.cpp M src/pcu_main.cpp M src/tbf.cpp M src/tbf.h 9 files changed, 7 insertions(+), 346 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/80/22280/1 diff --git a/debian/copyright b/debian/copyright index 0069d0c..99ea408 100644 --- a/debian/copyright +++ b/debian/copyright @@ -34,8 +34,6 @@ src/gprs_debug.h src/pcu_main.cpp src/pcu_l1_if.h - src/gsm_timer.cpp - src/gsm_timer.h Copyright: 2012 Ivan Klyuchnikov License: GPL-2.0+ @@ -131,4 +129,3 @@ . On Debian systems, the complete text of the GNU General Public License Version 2 can be found in `/usr/share/common-licenses/GPL-2'. - diff --git a/src/Makefile.am b/src/Makefile.am index c9c7aa3..05fac55 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -50,7 +50,6 @@ gprs_ms.c \ gprs_ms_storage.cpp \ gprs_pcu.c \ - gsm_timer.cpp \ pcu_l1_if.cpp \ pcu_vty.c \ pcu_vty_functions.cpp \ @@ -87,7 +86,6 @@ gprs_ms_storage.h \ gprs_pcu.h \ pcu_l1_if.h \ - gsm_timer.h \ pcu_vty.h \ pcu_vty_functions.h \ mslot_class.h \ diff --git a/src/gprs_rlcmac.h b/src/gprs_rlcmac.h index 3d5ea99..d779d08 100644 --- a/src/gprs_rlcmac.h +++ b/src/gprs_rlcmac.h @@ -24,7 +24,6 @@ #include #ifdef __cplusplus -#include #include extern "C" { diff --git a/src/gsm_timer.cpp b/src/gsm_timer.cpp deleted file mode 100644 index 0627753..0000000 --- a/src/gsm_timer.cpp +++ /dev/null @@ -1,234 +0,0 @@ -/* gsm_timer.cpp - * - * Copyright (C) 2012 Ivan Klyuchnikov - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - */ - -/* These store the amount of frame number that we wait until next timer expires. */ -static int nearest; -static int *nearest_p; - -/*! \addtogroup gsm_timer - * @{ - */ - -/*! \file gsm_timer.cpp - */ - -#include -#include -#include -#include -#include -#include - - -static struct rb_root timer_root = RB_ROOT; - -/* - * TODO: make this depend on the BTS. This means that - * all time functions schedule based on the BTS they - * are scheduled on. - */ -int get_current_fn() -{ - return bts_current_frame_number(the_pcu->bts); -} - -static void __add_gsm_timer(struct osmo_gsm_timer_list *timer) -{ - struct rb_node **new_node = &(timer_root.rb_node); - struct rb_node *parent = NULL; - - while (*new_node) { - struct osmo_gsm_timer_list *this_timer; - - this_timer = container_of(*new_node, struct osmo_gsm_timer_list, node); - - parent = *new_node; - if (timer->fn < this_timer->fn) - new_node = &((*new_node)->rb_left); - else - new_node = &((*new_node)->rb_right); - } - - rb_link_node(&timer->node, parent, new_node); - rb_insert_color(&timer->node, &timer_root); -} - -/*! \brief add a new timer to the timer management - * \param[in] timer the timer that should be added - */ -void osmo_gsm_timer_add(struct osmo_gsm_timer_list *timer) -{ - osmo_gsm_timer_del(timer); - timer->active = 1; - INIT_LLIST_HEAD(&timer->list); - __add_gsm_timer(timer); -} - -/*! \brief schedule a gsm timer at a given future relative time - * \param[in] timer the to-be-added timer - * \param[in] number of frames from now - * - * This function can be used to (re-)schedule a given timer at a - * specified number of frames in the future. It will - * internally add it to the timer management data structures, thus - * osmo_timer_add() is automatically called. - */ -void -osmo_gsm_timer_schedule(struct osmo_gsm_timer_list *timer, int fn) -{ - int current_fn; - - current_fn = get_current_fn(); - timer->fn = current_fn + fn; - osmo_gsm_timer_add(timer); -} - -/*! \brief delete a gsm timer from timer management - * \param[in] timer the to-be-deleted timer - * - * This function can be used to delete a previously added/scheduled - * timer from the timer management code. - */ -void osmo_gsm_timer_del(struct osmo_gsm_timer_list *timer) -{ - if (timer->active) { - timer->active = 0; - rb_erase(&timer->node, &timer_root); - /* make sure this is not already scheduled for removal. */ - if (!llist_empty(&timer->list)) - llist_del_init(&timer->list); - } -} - -/*! \brief check if given timer is still pending - * \param[in] timer the to-be-checked timer - * \return 1 if pending, 0 otherwise - * - * This function can be used to determine whether a given timer - * has alredy expired (returns 0) or is still pending (returns 1) - */ -int osmo_gsm_timer_pending(struct osmo_gsm_timer_list *timer) -{ - return timer->active; -} - -/* - * if we have a nearest frame number return the delta between the current - * FN and the FN of the nearest timer. - * If the nearest timer timed out return NULL and then we will - * dispatch everything after the select - */ -int *osmo_gsm_timers_nearest(void) -{ - /* nearest_p is exactly what we need already: NULL if nothing is - * waiting, {0,0} if we must dispatch immediately, and the correct - * delay if we need to wait */ - return nearest_p; -} - -static void update_nearest(int *cand, int *current) -{ - if (*cand > *current) - nearest = *cand - *current; - else { - /* loop again inmediately */ - nearest = 0; - } - - nearest_p = &nearest; -} - -/* - * Find the nearest FN and update s_nearest_time - */ -void osmo_gsm_timers_prepare(void) -{ - struct rb_node *node; - int current_fn; - - current_fn = get_current_fn(); - - node = rb_first(&timer_root); - if (node) { - struct osmo_gsm_timer_list *this_timer; - this_timer = container_of(node, struct osmo_gsm_timer_list, node); - update_nearest(&this_timer->fn, ¤t_fn); - } else { - nearest_p = NULL; - } -} - -/* - * fire all timers... and remove them - */ -int osmo_gsm_timers_update(void) -{ - int current_fn; - struct rb_node *node; - struct llist_head timer_eviction_list; - struct osmo_gsm_timer_list *this_timer; - int work = 0; - - current_fn = get_current_fn(); - - INIT_LLIST_HEAD(&timer_eviction_list); - for (node = rb_first(&timer_root); node; node = rb_next(node)) { - this_timer = container_of(node, struct osmo_gsm_timer_list, node); - - if (this_timer->fn > current_fn) - break; - - llist_add(&this_timer->list, &timer_eviction_list); - } - - /* - * The callbacks might mess with our list and in this case - * even llist_for_each_entry_safe is not safe to use. To allow - * osmo_gsm_timer_del to be called from within the callback we need - * to restart the iteration for each element scheduled for removal. - * - * The problematic scenario is the following: Given two timers A - * and B that have expired at the same time. Thus, they are both - * in the eviction list in this order: A, then B. If we remove - * timer B from the A's callback, we continue with B in the next - * iteration step, leading to an access-after-release. - */ -restart: - llist_for_each_entry(this_timer, &timer_eviction_list, list) { - osmo_gsm_timer_del(this_timer); - this_timer->cb(this_timer->data); - work = 1; - goto restart; - } - - return work; -} - -int osmo_gsm_timers_check(void) -{ - struct rb_node *node; - int i = 0; - - for (node = rb_first(&timer_root); node; node = rb_next(node)) { - i++; - } - return i; -} - -/*! }@ */ diff --git a/src/gsm_timer.h b/src/gsm_timer.h deleted file mode 100644 index cfabd0c..0000000 --- a/src/gsm_timer.h +++ /dev/null @@ -1,90 +0,0 @@ -/* gsm_timer.h - * - * Copyright (C) 2012 Ivan Klyuchnikov - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - */ - -/*! \defgroup timer GSM timers - * @{ - */ - -/*! \file gsm_timer.h - * \brief GSM timer handling routines - */ -#ifndef GSM_TIMER_H -#define GSM_TIMER_H - -extern "C" { -#include -#include -} -/** - * Timer management: - * - Create a struct osmo_gsm_timer_list - * - Fill out timeout and use add_gsm_timer or - * use schedule_gsm_timer to schedule a timer in - * x frames from now... - * - Use del_gsm_timer to remove the timer - * - * Internally: - * - We hook into select.c to give a frame number of the - * nearest timer. On already passed timers we give - * it a 0 to immediately fire after the select. - * - update_gsm_timers will call the callbacks and remove - * the timers. - * - */ -/*! \brief A structure representing a single instance of a gsm timer */ -struct osmo_gsm_timer_list { - struct rb_node node; /*!< \brief rb-tree node header */ - struct llist_head list; /*!< \brief internal list header */ - int fn; /*!< \brief expiration frame number */ - unsigned int active : 1; /*!< \brief is it active? */ - - void (*cb)(void*); /*!< \brief call-back called at timeout */ - void *data; /*!< \brief user data for callback */ -}; - -/** - * timer management - */ - -void osmo_gsm_timer_add(struct osmo_gsm_timer_list *timer); - -void osmo_gsm_timer_schedule(struct osmo_gsm_timer_list *timer, int fn); - -void osmo_gsm_timer_del(struct osmo_gsm_timer_list *timer); - -int osmo_gsm_timer_pending(struct osmo_gsm_timer_list *timer); - - -/* - * internal timer list management - */ -int *osmo_gsm_timers_nearest(void); -void osmo_gsm_timers_prepare(void); -int osmo_gsm_timers_update(void); -int osmo_gsm_timers_check(void); - - -/* - * Get Current Frame Number - */ -int get_current_fn(); - -/*! }@ */ - -#endif // GSM_TIMER_H diff --git a/src/pcu_l1_if.cpp b/src/pcu_l1_if.cpp index e5ad1de..8847960 100644 --- a/src/pcu_l1_if.cpp +++ b/src/pcu_l1_if.cpp @@ -173,7 +173,7 @@ struct msgb *msg; struct gsm_pcu_if *pcu_prim; struct gsm_pcu_if_data *data_req; - int current_fn = get_current_fn(); + int current_fn = bts_current_frame_number(the_pcu->bts); LOGP(DL1IF, LOGL_DEBUG, "Sending data request: trx=%d ts=%d sapi=%d " "arfcn=%d fn=%d cur_fn=%d block=%d data=%s\n", trx, ts, sapi, arfcn, fn, current_fn, @@ -314,7 +314,7 @@ static int pcu_rx_data_ind(struct gsm_pcu_if_data *data_ind) { int rc; - int current_fn = get_current_fn(); + int current_fn = bts_current_frame_number(the_pcu->bts); struct pcu_l1_meas meas = {0}; uint8_t gsmtap_chantype; @@ -361,7 +361,7 @@ static int pcu_rx_data_cnf(struct gsm_pcu_if_data *data_cnf) { int rc = 0; - int current_fn = get_current_fn(); + int current_fn = bts_current_frame_number(the_pcu->bts); LOGP(DL1IF, LOGL_DEBUG, "Data confirm received: sapi=%d fn=%d cur_fn=%d\n", data_cnf->sapi, data_cnf->fn, current_fn); @@ -410,7 +410,7 @@ static int pcu_rx_rts_req(struct gsm_pcu_if_rts_req *rts_req) { int rc = 0; - int current_fn = get_current_fn(); + int current_fn = bts_current_frame_number(the_pcu->bts); LOGP(DL1IF, LOGL_DEBUG, "RTS request received: trx=%d ts=%d sapi=%d " "arfcn=%d fn=%d cur_fn=%d block=%d\n", rts_req->trx_nr, rts_req->ts_nr, @@ -454,7 +454,7 @@ static int pcu_rx_rach_ind(const struct gsm_pcu_if_rach_ind *rach_ind) { int rc = 0; - int current_fn = get_current_fn(); + int current_fn = bts_current_frame_number(the_pcu->bts); LOGP(DL1IF, LOGL_INFO, "RACH request received: sapi=%d " "qta=%d, ra=0x%02x, fn=%u, cur_fn=%d, is_11bit=%d\n", rach_ind->sapi, rach_ind->qta, diff --git a/src/pcu_main.cpp b/src/pcu_main.cpp index 8bb7c1f..23d16a3 100644 --- a/src/pcu_main.cpp +++ b/src/pcu_main.cpp @@ -19,7 +19,6 @@ #include #include -#include #include #include #include @@ -331,10 +330,6 @@ } while (!quit) { - osmo_gsm_timers_check(); - osmo_gsm_timers_prepare(); - osmo_gsm_timers_update(); - osmo_select_main(0); } diff --git a/src/tbf.cpp b/src/tbf.cpp index 3464242..859ebcd 100644 --- a/src/tbf.cpp +++ b/src/tbf.cpp @@ -34,7 +34,6 @@ #include #include #include -#include #include extern "C" { @@ -154,7 +153,6 @@ memset(&pdch, 0, sizeof(pdch)); memset(&Tarr, 0, sizeof(Tarr)); memset(&Narr, 0, sizeof(Narr)); - memset(&gsm_timer, 0, sizeof(gsm_timer)); memset(&m_ms_list, 0, sizeof(m_ms_list)); m_ms_list.entry = this; @@ -483,7 +481,7 @@ void gprs_rlcmac_tbf::t_start(enum tbf_timers t, int T, const char *reason, bool force, const char *file, unsigned line) { - int current_fn = get_current_fn(); + int current_fn = bts_current_frame_number(bts); int sec; int microsec; struct osmo_tdef *tdef; @@ -777,7 +775,7 @@ void gprs_rlcmac_tbf::handle_timeout() { - int current_fn = get_current_fn(); + int current_fn = bts_current_frame_number(bts); LOGPTBF(this, LOGL_DEBUG, "timer 0 expired. cur_fn=%d\n", current_fn); diff --git a/src/tbf.h b/src/tbf.h index 73266bf..460de70 100644 --- a/src/tbf.h +++ b/src/tbf.h @@ -27,7 +27,6 @@ #include "cxx_linuxlist.h" #include "pcu_utils.h" #include -#include #include struct bssgp_bvc_ctx; @@ -313,7 +312,6 @@ gprs_rlc m_rlc; - struct osmo_gsm_timer_list gsm_timer; unsigned int fT; /* fTxxxx number */ unsigned int num_fT_exp; /* number of consecutive fT expirations */ -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22280 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I6d50a8c15c1de5e2a308a24b313a7776f94ae54f Gerrit-Change-Number: 22280 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 13:49:38 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 18 Jan 2021 13:49:38 +0000 Subject: Change in osmo-ci[master]: OBS: make rpmlint shlib-fixed-dependency non-fatal References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/22281 ) Change subject: OBS: make rpmlint shlib-fixed-dependency non-fatal ...................................................................... OBS: make rpmlint shlib-fixed-dependency non-fatal Create a rpmlint config, which makes the shlib-fixed-dependency check non-fatal, as it caused builds for openSUSE_Leap_15.2 to fail. The check is supposed to warn about libraries depending on specific versions of other packages. However, for the nightly and next packages, this is exactly what we want to do to ensure that users will always upgrade all Osmocom packages to the builds from a specific day, and not mix them. Messages from the check: [ 307s] libosmocodec0.armv7hl: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 ... [ 307s] libosmovty4.armv7hl: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 307s] Your shared library package requires a fixed version of another package. The [ 307s] intention of the Shared Library Policy is to allow parallel installation of [ 307s] multiple versions of the same shared library, hard dependencies likely make [ 307s] that impossible. Please remove this dependency and instead move it to the [ 307s] runtime uses of your library. [ 307s] [ 307s] (none): E: badness 3960 exceeds threshold 1000, aborting. Related: OS#4733 Related: https://en.opensuse.org/openSUSE:Packaging_checks#Disarming_Fatal_Errors Change-Id: I560b4adf80b5785d396a17afefa590559ad5ca5a --- M scripts/common-obs.sh 1 file changed, 15 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/81/22281/1 diff --git a/scripts/common-obs.sh b/scripts/common-obs.sh index 40cacf2..ace0e81 100644 --- a/scripts/common-obs.sh +++ b/scripts/common-obs.sh @@ -75,6 +75,21 @@ "%package"*) echo "Requires: $depend" ;; + # Build recipe + "%build"*) + if [ -n "$dependver" ]; then + cat << EOF +# HACK: don't let rpmlint abort the build when it finds that a library depends +# on a package with a specific version. The path used here is listed in: +# https://build.opensuse.org/package/view_file/devel:openSUSE:Factory:rpmlint/rpmlint-mini/rpmlint-mini.config?expand=1 +# Instead of writing to the SOURCES dir, we could upload osmocom-rpmlintrc as +# additional source for each package. But that's way more effort, not worth it. +echo "setBadness('shlib-fixed-dependency', 0)" \\ + > /home/abuild/rpmbuild/SOURCES/osmocom-rpmlintrc + +EOF + fi + ;; esac done < "$spec" ) > "$spec.new" -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22281 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I560b4adf80b5785d396a17afefa590559ad5ca5a Gerrit-Change-Number: 22281 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 13:52:46 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 18 Jan 2021 13:52:46 +0000 Subject: Change in osmo-ci[master]: OBS: make rpmlint shlib-fixed-dependency non-fatal In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22281 ) Change subject: OBS: make rpmlint shlib-fixed-dependency non-fatal ...................................................................... Patch Set 1: Verified+1 Failing: https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libosmocore/openSUSE_Tumbleweed/i586 Fixed (with this patch): https://build.opensuse.org/package/live_build_log/home:osmith42/libosmocore/openSUSE_Tumbleweed/i586 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22281 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I560b4adf80b5785d396a17afefa590559ad5ca5a Gerrit-Change-Number: 22281 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 18 Jan 2021 13:52:46 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 13:59:14 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 18 Jan 2021 13:59:14 +0000 Subject: Change in osmo-ci[master]: Revert "osmo-build-dep.sh: don't build osmo-gsm-manuals" In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22158 ) Change subject: Revert "osmo-build-dep.sh: don't build osmo-gsm-manuals" ...................................................................... Revert "osmo-build-dep.sh: don't build osmo-gsm-manuals" Now that we have the proper fix of making a clone of osmo-gsm-manuals.git available before builds start, and not using 'osmo-build-dep.sh osmo-gsm-manuals' in the contrib/jenkins.sh files anymore, we can remove the temporary solution. This reverts commit 4cbc445616fc9e0e4ded5eba56b2e741d0f332a3. Related: OS#4912 Depends: https://gerrit.osmocom.org/q/topic:jenkins-no-manuals-dep Change-Id: I88d57ee04775dc75e6ca3152d7edfa7f47608c8a --- M scripts/osmo-build-dep.sh 1 file changed, 0 insertions(+), 8 deletions(-) Approvals: laforge: Looks good to me, approved osmith: Verified diff --git a/scripts/osmo-build-dep.sh b/scripts/osmo-build-dep.sh index 45916f6..7013414 100755 --- a/scripts/osmo-build-dep.sh +++ b/scripts/osmo-build-dep.sh @@ -54,14 +54,6 @@ cd "$subdir" fi -# osmo-gsm-manuals: save time by only cloning the repository (OS#4912). -# Projects depending on osmo-gsm-manuals can still build the manuals, because -# we set OSMO_GSM_MANUALS_DIR to the clone destination. -if [ "$project" = "osmo-gsm-manuals" ]; then - echo "WARNING: osmo-gsm-manuals cloned, but skipping build (OS#4912)" - exit 0 -fi - autoreconf --install --force ./configure --prefix="$inst/stow/$project" --with-systemdsystemunitdir="$inst/stow/$project/lib/systemd/system" $cfg -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22158 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I88d57ee04775dc75e6ca3152d7edfa7f47608c8a Gerrit-Change-Number: 22158 Gerrit-PatchSet: 3 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 14:01:39 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 18 Jan 2021 14:01:39 +0000 Subject: Change in libosmocore[master]: ns2: delay NS_AFF_CAUSE_RECOVERY until NS-VC for data + sig are unblo... References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22282 ) Change subject: ns2: delay NS_AFF_CAUSE_RECOVERY until NS-VC for data + sig are unblocked ...................................................................... ns2: delay NS_AFF_CAUSE_RECOVERY until NS-VC for data + sig are unblocked Right now we end up in situations where only a NS-VC for data (BVCI != 0) becomes unblocked, but the BSSGP and/or user application code is notified that the NSE has recovered. In the case of osmo-gbproxy, this will trigger a BVC-RESET on the BVCI=0, but that obviously only works if the sig_weight > 0... Change-Id: I933ee3969c052394d61ec6cf8c7c21d17957d9ab --- M src/gb/gprs_ns2.c M src/gb/gprs_ns2_internal.h 2 files changed, 17 insertions(+), 16 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/82/22282/1 diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c index b341c80..fd249be 100644 --- a/src/gb/gprs_ns2.c +++ b/src/gb/gprs_ns2.c @@ -1086,13 +1086,18 @@ void ns2_nse_data_sum(struct gprs_ns2_nse *nse) { struct gprs_ns2_vc *nsvc; + nse->nsvc_count = 0; + nse->sum_data_weight = 0; + nse->sum_sig_weight = 0; llist_for_each_entry(nsvc, &nse->nsvc, list) { if (!gprs_ns2_vc_is_unblocked(nsvc)) continue; nse->nsvc_count++; + nse->sum_data_weight += nsvc->data_weight; + nse->sum_sig_weight += nsvc->sig_weight; } } @@ -1102,35 +1107,25 @@ void ns2_nse_notify_unblocked(struct gprs_ns2_vc *nsvc, bool unblocked) { struct gprs_ns2_nse *nse = nsvc->nse; - struct gprs_ns2_vc *tmp; ns2_nse_data_sum(nse); if (unblocked == nse->alive) return; - if (unblocked) { - /* this is the first unblocked NSVC on an unavailable NSE */ + /* wait until both data_weight and sig_weight are != 0 before declaring NSE as alive */ + if (unblocked && nse->sum_data_weight && nse->sum_sig_weight) { nse->alive = true; ns2_prim_status_ind(nse, NULL, 0, NS_AFF_CAUSE_RECOVERY); nse->first = false; return; } - /* check if there are any remaining alive vcs */ - llist_for_each_entry(tmp, &nse->nsvc, list) { - if (tmp == nsvc) - continue; - - if (gprs_ns2_vc_is_unblocked(tmp)) { - /* there is at least one remaining alive NSVC */ - return; - } + if (nse->alive && (nse->sum_data_weight == 0 || nse->sum_sig_weight == 0)) { + /* nse became unavailable */ + nse->alive = false; + ns2_prim_status_ind(nse, NULL, 0, NS_AFF_CAUSE_FAILURE); } - - /* nse became unavailable */ - nse->alive = false; - ns2_prim_status_ind(nse, NULL, 0, NS_AFF_CAUSE_FAILURE); } /*! Create a new GPRS NS instance diff --git a/src/gb/gprs_ns2_internal.h b/src/gb/gprs_ns2_internal.h index 5dbc349..5404ed3 100644 --- a/src/gb/gprs_ns2_internal.h +++ b/src/gb/gprs_ns2_internal.h @@ -136,6 +136,12 @@ enum gprs_ns2_dialect dialect; struct osmo_fsm_inst *bss_sns_fi; + + /*! sum of all the data weight of _active_ NS-VCs */ + uint32_t sum_data_weight; + + /*! sum of all the signalling weight of _active_ NS-VCs */ + uint32_t sum_sig_weight; }; /*! Structure representing a single NS-VC */ -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22282 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I933ee3969c052394d61ec6cf8c7c21d17957d9ab Gerrit-Change-Number: 22282 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 14:07:45 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 18 Jan 2021 14:07:45 +0000 Subject: Change in libosmocore[master]: gprs_ns2: Give NS-VC FSMs a proper name/identifier In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21400 ) Change subject: gprs_ns2: Give NS-VC FSMs a proper name/identifier ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21400 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Id9d5b0684584d03685900c6298fe70246793de14 Gerrit-Change-Number: 21400 Gerrit-PatchSet: 5 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 14:07:45 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 14:07:48 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 18 Jan 2021 14:07:48 +0000 Subject: Change in libosmocore[master]: gprs_ns2_fr: reduce duplication between gprs_ns2_fr_connect / connect2 In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22259 ) Change subject: gprs_ns2_fr: reduce duplication between gprs_ns2_fr_connect / connect2 ...................................................................... gprs_ns2_fr: reduce duplication between gprs_ns2_fr_connect / connect2 gprs_sn2_fr_connect2() is the same as gprs_ns2_fr_connect() with the lookup-and-create-on-demand of the NSE first. Rather than copy+paste, they should simply invoke each other. Change-Id: If835bf138f213e7f58205018e7efe3ecb772c624 --- M src/gb/gprs_ns2_fr.c 1 file changed, 1 insertion(+), 18 deletions(-) Approvals: lynxis lazus: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/gb/gprs_ns2_fr.c b/src/gb/gprs_ns2_fr.c index 2c797f3..bb55381 100644 --- a/src/gb/gprs_ns2_fr.c +++ b/src/gb/gprs_ns2_fr.c @@ -776,7 +776,6 @@ { bool created_nse = false; struct gprs_ns2_vc *nsvc = NULL; - struct priv_vc *priv = NULL; struct gprs_ns2_nse *nse = gprs_ns2_nse_by_nsei(bind->nsi, nsei); if (!nse) { nse = gprs_ns2_create_nse(bind->nsi, nsei, GPRS_NS2_LL_FR, NS2_DIALECT_STATIC_RESETBLOCK); @@ -785,28 +784,12 @@ created_nse = true; } - nsvc = gprs_ns2_fr_nsvc_by_dlci(bind, dlci); - if (nsvc) { - goto err_nse; - } - - nsvc = ns2_vc_alloc(bind, nse, true, NS2_VC_MODE_BLOCKRESET); + nsvc = gprs_ns2_fr_connect(bind, nse, nsvci, dlci); if (!nsvc) goto err_nse; - nsvc->priv = priv = fr_alloc_vc(bind, nsvc, dlci); - if (!priv) - goto err; - - nsvc->nsvci = nsvci; - nsvc->nsvci_is_valid = true; - - gprs_ns2_vc_fsm_start(nsvc); - return nsvc; -err: - gprs_ns2_free_nsvc(nsvc); err_nse: if (created_nse) gprs_ns2_free_nse(nse); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22259 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If835bf138f213e7f58205018e7efe3ecb772c624 Gerrit-Change-Number: 22259 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 14:07:49 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 18 Jan 2021 14:07:49 +0000 Subject: Change in libosmocore[master]: gprs_ns2: Give NS-VC FSMs a proper name/identifier In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21400 ) Change subject: gprs_ns2: Give NS-VC FSMs a proper name/identifier ...................................................................... gprs_ns2: Give NS-VC FSMs a proper name/identifier Log output without a proper identifier is mostly useless. Change-Id: Id9d5b0684584d03685900c6298fe70246793de14 Closes: OS#4876 --- M src/gb/gprs_ns2.c M src/gb/gprs_ns2_fr.c M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_udp.c M tests/gb/gprs_ns2_test.c 5 files changed, 25 insertions(+), 9 deletions(-) Approvals: laforge: Looks good to me, approved daniel: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c index 813bd58..7c517aa 100644 --- a/src/gb/gprs_ns2.c +++ b/src/gb/gprs_ns2.c @@ -486,9 +486,10 @@ * \param[in] bind The 'bind' on which we operate * \param[in] nse The NS Entity on which we operate * \param[in] initiater - if this is an incoming remote (!initiater) or a local outgoing connection (initater) + * \param[in] id - human-readable identifier * \return newly allocated NS-VC on success; NULL on error */ struct gprs_ns2_vc *ns2_vc_alloc(struct gprs_ns2_vc_bind *bind, struct gprs_ns2_nse *nse, bool initiater, - enum gprs_ns2_vc_mode vc_mode) + enum gprs_ns2_vc_mode vc_mode, const char *id) { /* Sanity check */ OSMO_ASSERT(bind->ll == nse->ll); @@ -511,7 +512,7 @@ nsvc->statg = osmo_stat_item_group_alloc(nsvc, &nsvc_statg_desc, bind->nsi->rate_ctr_idx); if (!nsvc->statg) goto err_group; - if (!gprs_ns2_vc_fsm_alloc(nsvc, NULL, initiater)) + if (!gprs_ns2_vc_fsm_alloc(nsvc, id, initiater)) goto err_statg; bind->nsi->rate_ctr_idx++; @@ -791,6 +792,7 @@ enum gprs_ns2_vc_mode vc_mode; uint16_t nsvci; uint16_t nsei; + char idbuf[32]; int rc, tlv; @@ -907,8 +909,11 @@ return GPRS_NS2_CS_SKIPPED; } + nsvci = tlvp_val16be(&tp, NS_IE_VCI); vc_mode = gprs_ns2_dialect_to_vc_mode(dialect); - nsvc = ns2_vc_alloc(bind, nse, false, vc_mode); + snprintf(idbuf, sizeof(idbuf), "%s-NSE%05u-NSVC%05u", gprs_ns2_lltype_str(nse->ll), + nse->nsei, nsvci); + nsvc = ns2_vc_alloc(bind, nse, false, vc_mode, idbuf); if (!nsvc) return GPRS_NS2_CS_SKIPPED; diff --git a/src/gb/gprs_ns2_fr.c b/src/gb/gprs_ns2_fr.c index bb55381..c1bed6c 100644 --- a/src/gb/gprs_ns2_fr.c +++ b/src/gb/gprs_ns2_fr.c @@ -737,13 +737,17 @@ { struct gprs_ns2_vc *nsvc = NULL; struct priv_vc *priv = NULL; + struct priv_bind *bpriv = bind->priv; + char idbuf[64]; nsvc = gprs_ns2_fr_nsvc_by_dlci(bind, dlci); if (nsvc) { goto err; } - nsvc = ns2_vc_alloc(bind, nse, true, NS2_VC_MODE_BLOCKRESET); + snprintf(idbuf, sizeof(idbuf), "%s-%s-DLCI%u-NSE%05u-NSVC%05u", gprs_ns2_lltype_str(nse->ll), + bpriv->netif, dlci, nse->nsei, nsvci); + nsvc = ns2_vc_alloc(bind, nse, true, NS2_VC_MODE_BLOCKRESET, idbuf); if (!nsvc) goto err; diff --git a/src/gb/gprs_ns2_internal.h b/src/gb/gprs_ns2_internal.h index c33f7f8..5dbc349 100644 --- a/src/gb/gprs_ns2_internal.h +++ b/src/gb/gprs_ns2_internal.h @@ -233,7 +233,8 @@ struct gprs_ns2_vc *ns2_vc_alloc(struct gprs_ns2_vc_bind *bind, struct gprs_ns2_nse *nse, bool initiater, - enum gprs_ns2_vc_mode vc_mode); + enum gprs_ns2_vc_mode vc_mode, + const char *id); struct msgb *gprs_ns2_msgb_alloc(void); diff --git a/src/gb/gprs_ns2_udp.c b/src/gb/gprs_ns2_udp.c index 370937f..d93b66d 100644 --- a/src/gb/gprs_ns2_udp.c +++ b/src/gb/gprs_ns2_udp.c @@ -394,6 +394,8 @@ struct gprs_ns2_vc *nsvc; struct priv_vc *priv; enum gprs_ns2_vc_mode vc_mode; + char *sockaddr_str; + char idbuf[64]; vc_mode = gprs_ns2_dialect_to_vc_mode(nse->dialect); if ((int) vc_mode == -1) { @@ -402,7 +404,11 @@ return NULL; } - nsvc = ns2_vc_alloc(bind, nse, true, vc_mode); + sockaddr_str = (char *)osmo_sockaddr_to_str(remote); + osmo_identifier_sanitize_buf(sockaddr_str, NULL, '_'); + snprintf(idbuf, sizeof(idbuf), "%s-NSE%05u-remote-%s", gprs_ns2_lltype_str(nse->ll), + nse->nsei, sockaddr_str); + nsvc = ns2_vc_alloc(bind, nse, true, vc_mode, idbuf); if (!nsvc) return NULL; diff --git a/tests/gb/gprs_ns2_test.c b/tests/gb/gprs_ns2_test.c index d53dc88..7c28dca 100644 --- a/tests/gb/gprs_ns2_test.c +++ b/tests/gb/gprs_ns2_test.c @@ -113,7 +113,7 @@ OSMO_ASSERT(nse); printf("---- Test with NSVC[0]\n"); - nsvc[0] = ns2_vc_alloc(bind[0], nse, false, NS2_VC_MODE_ALIVE); + nsvc[0] = ns2_vc_alloc(bind[0], nse, false, NS2_VC_MODE_ALIVE, NULL); OSMO_ASSERT(nsvc[0]); OSMO_ASSERT(ns2_count_transfer_cap(nse, 0) == 0); nsvc[0]->fi->state = 3; /* HACK: 3 = GPRS_NS2_ST_UNBLOCKED */ @@ -121,7 +121,7 @@ OSMO_ASSERT(ns2_count_transfer_cap(nse, 0) == 42); printf("---- Test with NSVC[1]\n"); - nsvc[1] = ns2_vc_alloc(bind[0], nse, false, NS2_VC_MODE_ALIVE); + nsvc[1] = ns2_vc_alloc(bind[0], nse, false, NS2_VC_MODE_ALIVE, NULL); OSMO_ASSERT(nsvc[1]); OSMO_ASSERT(ns2_count_transfer_cap(nse, 0) == 42); nsvc[1]->fi->state = 3; /* HACK: 3 = GPRS_NS2_ST_UNBLOCKED */ @@ -129,7 +129,7 @@ OSMO_ASSERT(ns2_count_transfer_cap(nse, 0) == 42); printf("---- Test with NSVC[2]\n"); - nsvc[2] = ns2_vc_alloc(bind[1], nse, false, NS2_VC_MODE_ALIVE); + nsvc[2] = ns2_vc_alloc(bind[1], nse, false, NS2_VC_MODE_ALIVE, NULL); OSMO_ASSERT(nsvc[2]); OSMO_ASSERT(ns2_count_transfer_cap(nse, 0) == 42); nsvc[2]->fi->state = 3; /* HACK: 3 = GPRS_NS2_ST_UNBLOCKED */ -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21400 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Id9d5b0684584d03685900c6298fe70246793de14 Gerrit-Change-Number: 21400 Gerrit-PatchSet: 6 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-CC: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 14:44:00 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 18 Jan 2021 14:44:00 +0000 Subject: Change in osmo-ci[master]: OBS: make rpmlint shlib-fixed-dependency non-fatal In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22281 ) Change subject: OBS: make rpmlint shlib-fixed-dependency non-fatal ...................................................................... Patch Set 1: I'm not really liking that hardcoded absolute path in there... -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22281 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I560b4adf80b5785d396a17afefa590559ad5ca5a Gerrit-Change-Number: 22281 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: osmith Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 14:44:00 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 14:44:52 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 18 Jan 2021 14:44:52 +0000 Subject: Change in osmo-pcu[master]: Move alpha,gamma fields from BTS to PCU In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22181 ) Change subject: Move alpha,gamma fields from BTS to PCU ...................................................................... Move alpha,gamma fields from BTS to PCU Change-Id: I2fdd9c8a7393157183fff64084bb10e2a3b1dc63 --- M src/bts.cpp M src/bts.h M src/gprs_pcu.c M src/gprs_pcu.h M src/pcu_vty.c M src/tbf.cpp M tests/emu/pcu_emu.cpp 7 files changed, 12 insertions(+), 18 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/src/bts.cpp b/src/bts.cpp index f965714..3200b40 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -200,7 +200,6 @@ bts->n3101 = 10; bts->n3103 = 4; bts->n3105 = 8; - bts->alpha = 0; /* a = 0.0 */ bts->si13_is_set = false; bts->cs_adj_enabled = 1; bts->cs_adj_upper_limit = 33; /* Decrease CS if the error rate is above */ @@ -966,7 +965,7 @@ plen = Encoding::write_immediate_assignment( &m_bts.trx[trx_no].pdch[ts_no], tbf, bv, false, rip->ra, Fn, ta, usf, false, sb_fn, - m_bts.alpha, m_bts.gamma, -1, + pcu->vty.alpha, pcu->vty.gamma, -1, rip->burst_type); do_rate_ctr_inc(CTR_IMMEDIATE_ASSIGN_UL_TBF); } @@ -1048,7 +1047,7 @@ tbf, immediate_assignment, true, 125, (tbf->pdch[ts_no]->last_rts_fn + 21216) % GSM_MAX_FN, tbf->ta(), 7, poll, tbf->poll_fn, - m_bts.alpha, m_bts.gamma, -1, + pcu->vty.alpha, pcu->vty.gamma, -1, GSM_L1_BURST_TYPE_ACCESS_0); if (plen >= 0) { do_rate_ctr_inc(CTR_IMMEDIATE_ASSIGN_DL_TBF); diff --git a/src/bts.h b/src/bts.h index 2097cca..81f7327 100644 --- a/src/bts.h +++ b/src/bts.h @@ -106,7 +106,6 @@ uint8_t n3105; struct gprs_rlcmac_trx trx[8]; - uint8_t alpha, gamma; bool dl_tbf_preemptive_retransmission; uint8_t si13[GSM_MACBLOCK_LEN]; bool si13_is_set; diff --git a/src/gprs_pcu.c b/src/gprs_pcu.c index e08094b..f791e43 100644 --- a/src/gprs_pcu.c +++ b/src/gprs_pcu.c @@ -50,6 +50,7 @@ pcu->vty.max_cs_dl = MAX_GPRS_CS; pcu->vty.max_mcs_ul = MAX_EDGE_MCS; pcu->vty.max_mcs_dl = MAX_EDGE_MCS; + pcu->vty.alpha = 0; /* a = 0.0 */ pcu->T_defs = T_defs_pcu; osmo_tdefs_reset(pcu->T_defs); diff --git a/src/gprs_pcu.h b/src/gprs_pcu.h index 4920966..d6d2dca 100644 --- a/src/gprs_pcu.h +++ b/src/gprs_pcu.h @@ -75,6 +75,7 @@ uint8_t max_cs_dl, max_cs_ul; uint8_t max_mcs_dl, max_mcs_ul; uint8_t force_two_phase; + uint8_t alpha, gamma; } vty; struct gsmtap_inst *gsmtap; diff --git a/src/pcu_vty.c b/src/pcu_vty.c index 83fb166..06e1674 100644 --- a/src/pcu_vty.c +++ b/src/pcu_vty.c @@ -229,8 +229,8 @@ vty_out(vty, " alloc-algorithm dynamic%s", VTY_NEWLINE); if (the_pcu->vty.force_two_phase) vty_out(vty, " two-phase-access%s", VTY_NEWLINE); - vty_out(vty, " alpha %d%s", bts->alpha, VTY_NEWLINE); - vty_out(vty, " gamma %d%s", bts->gamma * 2, VTY_NEWLINE); + vty_out(vty, " alpha %d%s", the_pcu->vty.alpha, VTY_NEWLINE); + vty_out(vty, " gamma %d%s", the_pcu->vty.gamma * 2, VTY_NEWLINE); if (!bts->dl_tbf_preemptive_retransmission) vty_out(vty, " no dl-tbf-preemptive-retransmission%s", VTY_NEWLINE); if (strcmp(the_pcu->pcu_sock_path, PCU_SOCK_DEFAULT)) @@ -804,10 +804,7 @@ "Alpha in units of 0.1\n", CMD_ATTR_IMMEDIATE) { - struct gprs_rlcmac_bts *bts = bts_main_data(); - - bts->alpha = atoi(argv[0]); - + the_pcu->vty.alpha = atoi(argv[0]); return CMD_SUCCESS; } @@ -818,10 +815,7 @@ "Gamma in even unit of dBs\n", CMD_ATTR_IMMEDIATE) { - struct gprs_rlcmac_bts *bts = bts_main_data(); - - bts->gamma = atoi(argv[0]) / 2; - + the_pcu->vty.gamma = atoi(argv[0]) / 2; return CMD_SUCCESS; } diff --git a/src/tbf.cpp b/src/tbf.cpp index c42081b..eb043e5 100644 --- a/src/tbf.cpp +++ b/src/tbf.cpp @@ -926,7 +926,7 @@ Encoding::write_packet_downlink_assignment(mac_control_block, old_tfi_is_valid, m_tfi, (direction == GPRS_RLCMAC_DL_TBF), new_dl_tbf, poll_ass_dl, rrbp, - bts_data()->alpha, bts_data()->gamma, -1, 0, + the_pcu->vty.alpha, the_pcu->vty.gamma, -1, 0, is_egprs_enabled()); LOGP(DTBF, LOGL_DEBUG, "+++++++++++++++++++++++++ TX : Packet Downlink Assignment +++++++++++++++++++++++++\n"); rc = encode_gsm_rlcmac_downlink(&bv, mac_control_block); @@ -1029,8 +1029,8 @@ mac_control_block = (RlcMacDownlink_t *)talloc_zero(tall_pcu_ctx, RlcMacDownlink_t); Encoding::write_packet_uplink_assignment(mac_control_block, m_tfi, (direction == GPRS_RLCMAC_DL_TBF), tlli(), - is_tlli_valid(), new_tbf, 1, rrbp, bts_data()->alpha, - bts_data()->gamma, -1, is_egprs_enabled()); + is_tlli_valid(), new_tbf, 1, rrbp, the_pcu->vty.alpha, + the_pcu->vty.gamma, -1, is_egprs_enabled()); LOGP(DTBF, LOGL_DEBUG, "+++++++++++++++++++++++++ TX : Packet Uplink Assignment +++++++++++++++++++++++++\n"); rc = encode_gsm_rlcmac_downlink(&bv, mac_control_block); diff --git a/tests/emu/pcu_emu.cpp b/tests/emu/pcu_emu.cpp index 7534b84..96aacda 100644 --- a/tests/emu/pcu_emu.cpp +++ b/tests/emu/pcu_emu.cpp @@ -72,13 +72,13 @@ bts->n3101 = 10; bts->n3103 = 4; bts->n3105 = 8; - bts->alpha = 0; /* a = 0.0 */ } static void init_pcu(struct gprs_pcu *pcu) { if (!pcu->alloc_algorithm) pcu->alloc_algorithm = alloc_algorithm_b; + pcu->vty.alpha = 0; /* a = 0.0 */ } static void bvci_unblocked(struct gprs_bssgp_pcu *pcu) -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22181 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I2fdd9c8a7393157183fff64084bb10e2a3b1dc63 Gerrit-Change-Number: 22181 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-CC: lynxis lazus Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 14:44:53 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 18 Jan 2021 14:44:53 +0000 Subject: Change in osmo-pcu[master]: Move dl_tbf_preemptive_retransmission field from BTS to PCU In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22182 ) Change subject: Move dl_tbf_preemptive_retransmission field from BTS to PCU ...................................................................... Move dl_tbf_preemptive_retransmission field from BTS to PCU Change-Id: I3ab32fcafe83f3ecb116a5b8a05f58f3fddc5451 --- M src/bts.cpp M src/bts.h M src/gprs_pcu.c M src/gprs_pcu.h M src/pcu_vty.c M src/tbf_dl.cpp 6 files changed, 6 insertions(+), 12 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/bts.cpp b/src/bts.cpp index 3200b40..46f0033 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -253,7 +253,6 @@ bts->app_info = NULL; bts->bts = bts_obj; - bts->dl_tbf_preemptive_retransmission = true; bts->T_defs_bts = T_defs_bts; osmo_tdefs_reset(bts->T_defs_bts); diff --git a/src/bts.h b/src/bts.h index 81f7327..1394bfe 100644 --- a/src/bts.h +++ b/src/bts.h @@ -106,7 +106,6 @@ uint8_t n3105; struct gprs_rlcmac_trx trx[8]; - bool dl_tbf_preemptive_retransmission; uint8_t si13[GSM_MACBLOCK_LEN]; bool si13_is_set; /* 0 to support resegmentation in DL, 1 for no reseg */ diff --git a/src/gprs_pcu.c b/src/gprs_pcu.c index f791e43..3b44d36 100644 --- a/src/gprs_pcu.c +++ b/src/gprs_pcu.c @@ -51,6 +51,7 @@ pcu->vty.max_mcs_ul = MAX_EDGE_MCS; pcu->vty.max_mcs_dl = MAX_EDGE_MCS; pcu->vty.alpha = 0; /* a = 0.0 */ + pcu->vty.dl_tbf_preemptive_retransmission = true; pcu->T_defs = T_defs_pcu; osmo_tdefs_reset(pcu->T_defs); diff --git a/src/gprs_pcu.h b/src/gprs_pcu.h index d6d2dca..2f2fdc7 100644 --- a/src/gprs_pcu.h +++ b/src/gprs_pcu.h @@ -76,6 +76,7 @@ uint8_t max_mcs_dl, max_mcs_ul; uint8_t force_two_phase; uint8_t alpha, gamma; + bool dl_tbf_preemptive_retransmission; } vty; struct gsmtap_inst *gsmtap; diff --git a/src/pcu_vty.c b/src/pcu_vty.c index 06e1674..727712d 100644 --- a/src/pcu_vty.c +++ b/src/pcu_vty.c @@ -231,7 +231,7 @@ vty_out(vty, " two-phase-access%s", VTY_NEWLINE); vty_out(vty, " alpha %d%s", the_pcu->vty.alpha, VTY_NEWLINE); vty_out(vty, " gamma %d%s", the_pcu->vty.gamma * 2, VTY_NEWLINE); - if (!bts->dl_tbf_preemptive_retransmission) + if (!the_pcu->vty.dl_tbf_preemptive_retransmission) vty_out(vty, " no dl-tbf-preemptive-retransmission%s", VTY_NEWLINE); if (strcmp(the_pcu->pcu_sock_path, PCU_SOCK_DEFAULT)) vty_out(vty, " pcu-socket %s%s", the_pcu->pcu_sock_path, VTY_NEWLINE); @@ -869,10 +869,7 @@ RETRANSMISSION_STR " (enabled by default)", CMD_ATTR_IMMEDIATE) { - struct gprs_rlcmac_bts *bts = bts_main_data(); - - bts->dl_tbf_preemptive_retransmission = true; - + the_pcu->vty.dl_tbf_preemptive_retransmission = true; return CMD_SUCCESS; } @@ -882,10 +879,7 @@ NO_STR RETRANSMISSION_STR, CMD_ATTR_IMMEDIATE) { - struct gprs_rlcmac_bts *bts = bts_main_data(); - - bts->dl_tbf_preemptive_retransmission = false; - + the_pcu->vty.dl_tbf_preemptive_retransmission = false; return CMD_SUCCESS; } diff --git a/src/tbf_dl.cpp b/src/tbf_dl.cpp index 280e057..6f57e7d 100644 --- a/src/tbf_dl.cpp +++ b/src/tbf_dl.cpp @@ -545,7 +545,7 @@ force_cs ? " (forced)" : ""); bsn = create_new_bsn(fn, new_cs); - } else if (bts->bts_data()->dl_tbf_preemptive_retransmission && !m_window.window_empty()) { + } else if (bts->pcu->vty.dl_tbf_preemptive_retransmission && !m_window.window_empty()) { /* The window contains unacked packages, but not acked. * Mark unacked bsns as RESEND */ LOGPTBFDL(this, LOGL_DEBUG, -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22182 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I3ab32fcafe83f3ecb116a5b8a05f58f3fddc5451 Gerrit-Change-Number: 22182 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 14:44:53 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 18 Jan 2021 14:44:53 +0000 Subject: Change in osmo-pcu[master]: Move dl_arq_type field from BTS to PCU In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22183 ) Change subject: Move dl_arq_type field from BTS to PCU ...................................................................... Move dl_arq_type field from BTS to PCU Change-Id: I0b82ab59edd58d60e5581c707dc49f58de0ba203 --- M src/bts.cpp M src/bts.h M src/coding_scheme.h M src/gprs_pcu.c M src/gprs_pcu.h M src/pcu_vty.c M src/tbf_dl.cpp M tests/tbf/TbfTest.cpp 8 files changed, 19 insertions(+), 29 deletions(-) Approvals: lynxis lazus: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/bts.cpp b/src/bts.cpp index 46f0033..5eefc36 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -245,12 +245,6 @@ bts->llc_codel_interval_msec = LLC_CODEL_USE_DEFAULT; bts->llc_idle_ack_csec = 10; - /* - * By default resegmentation is supported in DL - * can also be configured through VTY - */ - bts->dl_arq_type = EGPRS_ARQ1; - bts->app_info = NULL; bts->bts = bts_obj; bts->T_defs_bts = T_defs_bts; diff --git a/src/bts.h b/src/bts.h index 1394bfe..b46621a 100644 --- a/src/bts.h +++ b/src/bts.h @@ -108,8 +108,6 @@ uint8_t si13[GSM_MACBLOCK_LEN]; bool si13_is_set; - /* 0 to support resegmentation in DL, 1 for no reseg */ - uint8_t dl_arq_type; uint8_t cs_adj_enabled; /* whether cs_adj_{upper,lower}_limit are used to adjust DL CS */ uint8_t cs_adj_upper_limit; /* downgrade DL CS if error rate above its value */ diff --git a/src/coding_scheme.h b/src/coding_scheme.h index ea1ded1..1b21265 100644 --- a/src/coding_scheme.h +++ b/src/coding_scheme.h @@ -38,8 +38,10 @@ EGPRS, }; -#define EGPRS_ARQ1 0x0 -#define EGPRS_ARQ2 0x1 +enum egprs_arq_type { + EGPRS_ARQ1 = 0, + EGPRS_ARQ2 = 1 +}; extern const struct value_string mcs_names[]; const char *mcs_name(enum CodingScheme val); diff --git a/src/gprs_pcu.c b/src/gprs_pcu.c index 3b44d36..2a84f7b 100644 --- a/src/gprs_pcu.c +++ b/src/gprs_pcu.c @@ -52,6 +52,9 @@ pcu->vty.max_mcs_dl = MAX_EDGE_MCS; pcu->vty.alpha = 0; /* a = 0.0 */ pcu->vty.dl_tbf_preemptive_retransmission = true; + /* By default resegmentation is supported in DL can also be configured + * through VTY */ + pcu->vty.dl_arq_type = EGPRS_ARQ1; pcu->T_defs = T_defs_pcu; osmo_tdefs_reset(pcu->T_defs); diff --git a/src/gprs_pcu.h b/src/gprs_pcu.h index 2f2fdc7..f07510b 100644 --- a/src/gprs_pcu.h +++ b/src/gprs_pcu.h @@ -27,6 +27,7 @@ #include #include "gprs_bssgp_pcu.h" +#include "coding_scheme.h" #define LLC_CODEL_DISABLE 0 #define LLC_CODEL_USE_DEFAULT (-1) @@ -77,6 +78,7 @@ uint8_t force_two_phase; uint8_t alpha, gamma; bool dl_tbf_preemptive_retransmission; + enum egprs_arq_type dl_arq_type; /* EGPRS_ARQ1 to support resegmentation in DL, EGPRS_ARQ2 for no reseg */ } vty; struct gsmtap_inst *gsmtap; diff --git a/src/pcu_vty.c b/src/pcu_vty.c index 727712d..ef86879 100644 --- a/src/pcu_vty.c +++ b/src/pcu_vty.c @@ -198,9 +198,8 @@ vty_out(vty, " window-size %d %d%s", bts->ws_base, bts->ws_pdch, VTY_NEWLINE); - if (bts->dl_arq_type) - vty_out(vty, " egprs dl arq-type arq2%s", - VTY_NEWLINE); + if (the_pcu->vty.dl_arq_type == EGPRS_ARQ2) + vty_out(vty, " egprs dl arq-type arq2%s", VTY_NEWLINE); if (bts->force_llc_lifetime == 0xffff) vty_out(vty, " queue lifetime infinite%s", VTY_NEWLINE); @@ -574,12 +573,10 @@ "enable ARQ2 support", CMD_ATTR_IMMEDIATE) { - struct gprs_rlcmac_bts *bts = bts_main_data(); - if (!strcmp(argv[0], "arq2")) - bts->dl_arq_type = 1; + the_pcu->vty.dl_arq_type = EGPRS_ARQ2; else - bts->dl_arq_type = 0; + the_pcu->vty.dl_arq_type = EGPRS_ARQ1; return CMD_SUCCESS; } diff --git a/src/tbf_dl.cpp b/src/tbf_dl.cpp index 6f57e7d..b6d3a9e 100644 --- a/src/tbf_dl.cpp +++ b/src/tbf_dl.cpp @@ -486,7 +486,7 @@ /* Table 8.1.1.2 and Table 8.1.1.1 of 44.060 */ m_rlc.block(bsn)->cs_current_trans = get_retx_mcs(m_rlc.block(bsn)->cs_init, ms_current_cs_dl(ms()), - !bts->bts_data()->dl_arq_type); + bts->pcu->vty.dl_arq_type == EGPRS_ARQ1); LOGPTBFDL(this, LOGL_DEBUG, "initial_cs_dl(%s) last_mcs(%s) demanded_mcs(%s) cs_trans(%s) arq_type(%d) bsn(%d)\n", @@ -494,7 +494,7 @@ mcs_name(m_rlc.block(bsn)->cs_last), mcs_name(ms_current_cs_dl(ms())), mcs_name(m_rlc.block(bsn)->cs_current_trans), - bts->bts_data()->dl_arq_type, bsn); + the_pcu->vty.dl_arq_type, bsn); /* TODO: Need to remove this check when MCS-8 -> MCS-6 * transistion is handled. diff --git a/tests/tbf/TbfTest.cpp b/tests/tbf/TbfTest.cpp index 69f07aa..52403e1 100644 --- a/tests/tbf/TbfTest.cpp +++ b/tests/tbf/TbfTest.cpp @@ -2525,7 +2525,6 @@ { the_pcu->bts = bts_alloc(the_pcu); BTS *the_bts = the_pcu->bts; - gprs_rlcmac_bts *bts; uint8_t ms_class = 11; uint8_t egprs_ms_class = 11; uint8_t trx_no; @@ -2546,12 +2545,10 @@ fprintf(stderr, "=== start %s ===\n", __func__); - bts = the_bts->bts_data(); - setup_bts(the_bts, ts_no); OSMO_ASSERT(osmo_tdef_set(the_pcu->T_defs, -2031, 200, OSMO_TDEF_MS) == 0); /* ARQ II */ - bts->dl_arq_type = EGPRS_ARQ2; + the_pcu->vty.dl_arq_type = EGPRS_ARQ2; /* * Simulate a message captured during over-the-air testing, @@ -3083,7 +3080,7 @@ setup_bts(the_bts, ts_no); OSMO_ASSERT(osmo_tdef_set(the_pcu->T_defs, -2031, 200, OSMO_TDEF_MS) == 0); /* ARQ II */ - bts->dl_arq_type = EGPRS_ARQ2; + the_pcu->vty.dl_arq_type = EGPRS_ARQ2; /* First parameter is current MCS, second one is demanded_mcs */ @@ -3114,7 +3111,7 @@ OSMO_ASSERT(osmo_tdef_set(the_pcu->T_defs, -2031, 200, OSMO_TDEF_MS) == 0); /* ARQ I resegmentation support */ - bts->dl_arq_type = EGPRS_ARQ1; + the_pcu->vty.dl_arq_type = EGPRS_ARQ1; /* * First parameter is current MCS, second one is demanded_mcs @@ -3135,18 +3132,15 @@ { the_pcu->bts = bts_alloc(the_pcu); BTS *the_bts = the_pcu->bts; - gprs_rlcmac_bts *bts; uint8_t ts_no = 4; int i; fprintf(stderr, "=== start %s ===\n", __func__); - bts = the_bts->bts_data(); - setup_bts(the_bts, ts_no); OSMO_ASSERT(osmo_tdef_set(the_pcu->T_defs, -2031, 200, OSMO_TDEF_MS) == 0); /* ARQ II */ - bts->dl_arq_type = EGPRS_ARQ2; + the_pcu->vty.dl_arq_type = EGPRS_ARQ2; for (i = 1; i <= 9; i++) establish_and_use_egprs_dl_tbf(the_bts, i); -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22183 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I0b82ab59edd58d60e5581c707dc49f58de0ba203 Gerrit-Change-Number: 22183 Gerrit-PatchSet: 5 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 14:44:54 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 18 Jan 2021 14:44:54 +0000 Subject: Change in osmo-pcu[master]: Move cs_adj* fields from BTS to PCU In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22184 ) Change subject: Move cs_adj* fields from BTS to PCU ...................................................................... Move cs_adj* fields from BTS to PCU Change-Id: I2b00a83279dccd4feeeeb95e34878c4405e7972c --- M src/bts.cpp M src/bts.h M src/gprs_bssgp_pcu.cpp M src/gprs_ms.c M src/gprs_pcu.c M src/gprs_pcu.h M src/pcu_vty.c M src/tbf_dl.cpp M tests/ms/MsTest.cpp 9 files changed, 22 insertions(+), 29 deletions(-) Approvals: Jenkins Builder: Verified lynxis lazus: Looks good to me, approved laforge: Looks good to me, but someone else must approve diff --git a/src/bts.cpp b/src/bts.cpp index 5eefc36..3795ca2 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -201,9 +201,6 @@ bts->n3103 = 4; bts->n3105 = 8; bts->si13_is_set = false; - bts->cs_adj_enabled = 1; - bts->cs_adj_upper_limit = 33; /* Decrease CS if the error rate is above */ - bts->cs_adj_lower_limit = 10; /* Increase CS if the error rate is below */ /* CS-1 to CS-4 */ bts->cs_lqual_ranges[0].low = -256; bts->cs_lqual_ranges[0].high = 6; diff --git a/src/bts.h b/src/bts.h index b46621a..ea218f7 100644 --- a/src/bts.h +++ b/src/bts.h @@ -109,9 +109,6 @@ uint8_t si13[GSM_MACBLOCK_LEN]; bool si13_is_set; - uint8_t cs_adj_enabled; /* whether cs_adj_{upper,lower}_limit are used to adjust DL CS */ - uint8_t cs_adj_upper_limit; /* downgrade DL CS if error rate above its value */ - uint8_t cs_adj_lower_limit; /* upgrade DL CS if error rate below its value */ /* downgrade DL CS when less than specified octets are left in tx queue. Optimization, see paper: "Theoretical Analysis of GPRS Throughput and Delay" */ uint16_t cs_downgrade_threshold; diff --git a/src/gprs_bssgp_pcu.cpp b/src/gprs_bssgp_pcu.cpp index cfaee73..0db6a51 100644 --- a/src/gprs_bssgp_pcu.cpp +++ b/src/gprs_bssgp_pcu.cpp @@ -755,7 +755,7 @@ } if (mcs_any) { - if (!bts->cs_adj_enabled) { + if (!the_pcu->vty.cs_adj_enabled) { if (bts->initial_mcs_dl) { num = bts->initial_mcs_dl; } else { @@ -771,7 +771,7 @@ return mcs_get_egprs_by_num(num); } - if (!bts->cs_adj_enabled) { + if (!the_pcu->vty.cs_adj_enabled) { if (bts->initial_cs_dl) { num = bts->initial_cs_dl; } else { diff --git a/src/gprs_ms.c b/src/gprs_ms.c index 6fbb06a..cc64c86 100644 --- a/src/gprs_ms.c +++ b/src/gprs_ms.c @@ -571,12 +571,9 @@ void ms_update_error_rate(struct GprsMs *ms, struct gprs_rlcmac_tbf *tbf, int error_rate) { - struct gprs_rlcmac_bts *bts_; int64_t now; enum CodingScheme max_cs_dl = ms_max_cs_dl(ms); - OSMO_ASSERT(max_cs_dl); - bts_ = bts_data(ms->bts); if (error_rate < 0) return; @@ -588,7 +585,7 @@ ms->nack_rate_dl = error_rate; - if (error_rate > bts_->cs_adj_upper_limit) { + if (error_rate > the_pcu->vty.cs_adj_upper_limit) { if (mcs_chan_code(ms->current_cs_dl) > 0) { mcs_dec_kind(&ms->current_cs_dl, ms_mode(ms)); LOGP(DRLCMACDL, LOGL_INFO, @@ -597,7 +594,7 @@ ms_imsi(ms), error_rate, mcs_name(ms->current_cs_dl)); ms->last_cs_not_low = now; } - } else if (error_rate < bts_->cs_adj_lower_limit) { + } else if (error_rate < the_pcu->vty.cs_adj_lower_limit) { if (ms->current_cs_dl < max_cs_dl) { if (now - ms->last_cs_not_low > 1000) { mcs_inc_kind(&ms->current_cs_dl, ms_mode(ms)); @@ -801,7 +798,7 @@ return cs; /* RF conditions are good, don't reduce */ - if (ms->nack_rate_dl < bts_data(ms->bts)->cs_adj_lower_limit) + if (ms->nack_rate_dl < the_pcu->vty.cs_adj_lower_limit) return cs; /* The throughput would probably be better if the CS level was reduced */ diff --git a/src/gprs_pcu.c b/src/gprs_pcu.c index 2a84f7b..d7a851b 100644 --- a/src/gprs_pcu.c +++ b/src/gprs_pcu.c @@ -55,6 +55,9 @@ /* By default resegmentation is supported in DL can also be configured * through VTY */ pcu->vty.dl_arq_type = EGPRS_ARQ1; + pcu->vty.cs_adj_enabled = true; + pcu->vty.cs_adj_upper_limit = 33; /* Decrease CS if the error rate is above */ + pcu->vty.cs_adj_lower_limit = 10; /* Increase CS if the error rate is below */ pcu->T_defs = T_defs_pcu; osmo_tdefs_reset(pcu->T_defs); diff --git a/src/gprs_pcu.h b/src/gprs_pcu.h index f07510b..6c9eae1 100644 --- a/src/gprs_pcu.h +++ b/src/gprs_pcu.h @@ -79,6 +79,9 @@ uint8_t alpha, gamma; bool dl_tbf_preemptive_retransmission; enum egprs_arq_type dl_arq_type; /* EGPRS_ARQ1 to support resegmentation in DL, EGPRS_ARQ2 for no reseg */ + bool cs_adj_enabled; /* whether cs_adj_{upper,lower}_limit are used to adjust DL CS */ + uint8_t cs_adj_upper_limit; /* downgrade DL CS if error rate above its value */ + uint8_t cs_adj_lower_limit; /* upgrade DL CS if error rate below its value */ } vty; struct gsmtap_inst *gsmtap; diff --git a/src/pcu_vty.c b/src/pcu_vty.c index ef86879..c830400 100644 --- a/src/pcu_vty.c +++ b/src/pcu_vty.c @@ -136,9 +136,9 @@ vty_out(vty, " cs max %d %d%s", the_pcu->vty.max_cs_dl, the_pcu->vty.max_cs_ul, VTY_NEWLINE); } - if (bts->cs_adj_enabled) + if (the_pcu->vty.cs_adj_enabled) vty_out(vty, " cs threshold %d %d%s", - bts->cs_adj_lower_limit, bts->cs_adj_upper_limit, + the_pcu->vty.cs_adj_lower_limit, the_pcu->vty.cs_adj_upper_limit, VTY_NEWLINE); else vty_out(vty, " no cs threshold%s", VTY_NEWLINE); @@ -910,8 +910,6 @@ CS_STR CS_ERR_LIMITS_STR "lower limit in %\n" "upper limit in %\n", CMD_ATTR_IMMEDIATE) { - struct gprs_rlcmac_bts *bts = bts_main_data(); - uint8_t lower_limit = atoi(argv[0]); uint8_t upper_limit = atoi(argv[1]); @@ -922,9 +920,9 @@ return CMD_WARNING; } - bts->cs_adj_enabled = 1; - bts->cs_adj_upper_limit = upper_limit; - bts->cs_adj_lower_limit = lower_limit; + the_pcu->vty.cs_adj_enabled = true; + the_pcu->vty.cs_adj_upper_limit = upper_limit; + the_pcu->vty.cs_adj_lower_limit = lower_limit; return CMD_SUCCESS; } @@ -935,11 +933,9 @@ NO_STR CS_STR CS_ERR_LIMITS_STR, CMD_ATTR_IMMEDIATE) { - struct gprs_rlcmac_bts *bts = bts_main_data(); - - bts->cs_adj_enabled = 0; - bts->cs_adj_upper_limit = 100; - bts->cs_adj_lower_limit = 0; + the_pcu->vty.cs_adj_enabled = false; + the_pcu->vty.cs_adj_upper_limit = 100; + the_pcu->vty.cs_adj_lower_limit = 0; return CMD_SUCCESS; } diff --git a/src/tbf_dl.cpp b/src/tbf_dl.cpp index b6d3a9e..024a5f3 100644 --- a/src/tbf_dl.cpp +++ b/src/tbf_dl.cpp @@ -1132,7 +1132,7 @@ error_rate = analyse_errors(show_rbb, behind_last_bsn, &ana_res); - if (bts_data()->cs_adj_enabled && ms()) + if (the_pcu->vty.cs_adj_enabled && ms()) ms_update_error_rate(ms(), this, error_rate); m_window.update(bts, rbb, first_bsn, &lost, &received); @@ -1187,7 +1187,7 @@ error_rate = analyse_errors(show_rbb, ssn, &ana_res); - if (bts_data()->cs_adj_enabled && ms()) + if (the_pcu->vty.cs_adj_enabled && ms()) ms_update_error_rate(ms(), this, error_rate); m_window.update(bts, show_rbb, ssn, diff --git a/tests/ms/MsTest.cpp b/tests/ms/MsTest.cpp index 1e810f2..b914f01 100644 --- a/tests/ms/MsTest.cpp +++ b/tests/ms/MsTest.cpp @@ -511,7 +511,7 @@ bts->initial_cs_dl = 4; bts->initial_cs_ul = 1; bts->cs_downgrade_threshold = 0; - bts->cs_adj_lower_limit = 0; + the_pcu->vty.cs_adj_lower_limit = 0; ms = ms_alloc(&the_bts, tlli); -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22184 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I2b00a83279dccd4feeeeb95e34878c4405e7972c Gerrit-Change-Number: 22184 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 14:44:55 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 18 Jan 2021 14:44:55 +0000 Subject: Change in osmo-pcu[master]: Move cs_downgrade_threshold field from BTS to PCU In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22185 ) Change subject: Move cs_downgrade_threshold field from BTS to PCU ...................................................................... Move cs_downgrade_threshold field from BTS to PCU Change-Id: I3e1c65eb3cccff565d5d84588bdce93a47909a0f --- M src/bts.cpp M src/bts.h M src/gprs_ms.c M src/gprs_pcu.c M src/gprs_pcu.h M src/pcu_vty.c M tests/ms/MsTest.cpp M tests/tbf/TbfTest.cpp 8 files changed, 14 insertions(+), 25 deletions(-) Approvals: lynxis lazus: Looks good to me, approved laforge: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/bts.cpp b/src/bts.cpp index 3795ca2..32ec71e 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -232,7 +232,6 @@ bts->mcs_lqual_ranges[7].high = 24; bts->mcs_lqual_ranges[8].low = 23; bts->mcs_lqual_ranges[8].high = 256; - bts->cs_downgrade_threshold = 200; bts->ns_dialect = NS2_DIALECT_IPACCESS; /* TODO: increase them when CRBB decoding is implemented */ diff --git a/src/bts.h b/src/bts.h index ea218f7..afad02c 100644 --- a/src/bts.h +++ b/src/bts.h @@ -108,10 +108,6 @@ uint8_t si13[GSM_MACBLOCK_LEN]; bool si13_is_set; - - /* downgrade DL CS when less than specified octets are left in tx queue. Optimization, see paper: - "Theoretical Analysis of GPRS Throughput and Delay" */ - uint16_t cs_downgrade_threshold; /* Link quality range for each UL (M)CS. Below or above, next/prev (M)CS is selected. */ struct {int16_t low; int16_t high; } cs_lqual_ranges[MAX_GPRS_CS]; struct {int16_t low; int16_t high; } mcs_lqual_ranges[MAX_EDGE_MCS]; diff --git a/src/gprs_ms.c b/src/gprs_ms.c index cc64c86..c0fb55e 100644 --- a/src/gprs_ms.c +++ b/src/gprs_ms.c @@ -794,7 +794,7 @@ unencoded_octets += llc_chunk_size(tbf_llc((struct gprs_rlcmac_tbf *)ms->dl_tbf)); /* There are many unencoded octets, don't reduce */ - if (unencoded_octets >= bts_data(ms->bts)->cs_downgrade_threshold) + if (unencoded_octets >= the_pcu->vty.cs_downgrade_threshold) return cs; /* RF conditions are good, don't reduce */ diff --git a/src/gprs_pcu.c b/src/gprs_pcu.c index d7a851b..ba48c38 100644 --- a/src/gprs_pcu.c +++ b/src/gprs_pcu.c @@ -58,6 +58,7 @@ pcu->vty.cs_adj_enabled = true; pcu->vty.cs_adj_upper_limit = 33; /* Decrease CS if the error rate is above */ pcu->vty.cs_adj_lower_limit = 10; /* Increase CS if the error rate is below */ + pcu->vty.cs_downgrade_threshold = 200; pcu->T_defs = T_defs_pcu; osmo_tdefs_reset(pcu->T_defs); diff --git a/src/gprs_pcu.h b/src/gprs_pcu.h index 6c9eae1..146b8b8 100644 --- a/src/gprs_pcu.h +++ b/src/gprs_pcu.h @@ -82,6 +82,9 @@ bool cs_adj_enabled; /* whether cs_adj_{upper,lower}_limit are used to adjust DL CS */ uint8_t cs_adj_upper_limit; /* downgrade DL CS if error rate above its value */ uint8_t cs_adj_lower_limit; /* upgrade DL CS if error rate below its value */ + /* downgrade DL CS when less than specified octets are left in tx queue. Optimization, see paper: + "Theoretical Analysis of GPRS Throughput and Delay" */ + uint16_t cs_downgrade_threshold; } vty; struct gsmtap_inst *gsmtap; diff --git a/src/pcu_vty.c b/src/pcu_vty.c index c830400..e0edf91 100644 --- a/src/pcu_vty.c +++ b/src/pcu_vty.c @@ -143,9 +143,9 @@ else vty_out(vty, " no cs threshold%s", VTY_NEWLINE); - if (bts->cs_downgrade_threshold) + if (the_pcu->vty.cs_downgrade_threshold) vty_out(vty, " cs downgrade-threshold %d%s", - bts->cs_downgrade_threshold, VTY_NEWLINE); + the_pcu->vty.cs_downgrade_threshold, VTY_NEWLINE); else vty_out(vty, " no cs downgrade-threshold%s", VTY_NEWLINE); @@ -947,10 +947,7 @@ CS_STR CS_DOWNGRADE_STR "downgrade if less octets left\n", CMD_ATTR_IMMEDIATE) { - struct gprs_rlcmac_bts *bts = bts_main_data(); - - bts->cs_downgrade_threshold = atoi(argv[0]); - + the_pcu->vty.cs_downgrade_threshold = atoi(argv[0]); return CMD_SUCCESS; } @@ -960,10 +957,7 @@ NO_STR CS_STR CS_DOWNGRADE_STR, CMD_ATTR_IMMEDIATE) { - struct gprs_rlcmac_bts *bts = bts_main_data(); - - bts->cs_downgrade_threshold = 0; - + the_pcu->vty.cs_downgrade_threshold = 0; return CMD_SUCCESS; } diff --git a/tests/ms/MsTest.cpp b/tests/ms/MsTest.cpp index b914f01..d6c8f18 100644 --- a/tests/ms/MsTest.cpp +++ b/tests/ms/MsTest.cpp @@ -510,7 +510,7 @@ bts->initial_cs_dl = 4; bts->initial_cs_ul = 1; - bts->cs_downgrade_threshold = 0; + the_pcu->vty.cs_downgrade_threshold = 0; the_pcu->vty.cs_adj_lower_limit = 0; ms = ms_alloc(&the_bts, tlli); @@ -525,7 +525,7 @@ OSMO_ASSERT(mcs_chan_code(ms_current_cs_dl(ms)) == 3); - bts->cs_downgrade_threshold = 200; + the_pcu->vty.cs_downgrade_threshold = 200; OSMO_ASSERT(mcs_chan_code(ms_current_cs_dl(ms)) == 2); @@ -559,7 +559,7 @@ bts->initial_cs_dl = 4; bts->initial_cs_ul = 1; - bts->cs_downgrade_threshold = 0; + the_pcu->vty.cs_downgrade_threshold = 0; ms2 = ms_alloc(&the_bts, tlli + 1); dump_ms(ms2, "2: with BTS defaults"); diff --git a/tests/tbf/TbfTest.cpp b/tests/tbf/TbfTest.cpp index 52403e1..75b51bf 100644 --- a/tests/tbf/TbfTest.cpp +++ b/tests/tbf/TbfTest.cpp @@ -3070,13 +3070,11 @@ { the_pcu->bts = bts_alloc(the_pcu); BTS *the_bts = the_pcu->bts; - gprs_rlcmac_bts *bts; uint8_t ts_no = 4; fprintf(stderr, "=== start %s ===\n", __func__); - bts = the_bts->bts_data(); - bts->cs_downgrade_threshold = 0; + the_pcu->vty.cs_downgrade_threshold = 0; setup_bts(the_bts, ts_no); OSMO_ASSERT(osmo_tdef_set(the_pcu->T_defs, -2031, 200, OSMO_TDEF_MS) == 0); /* ARQ II */ @@ -3100,13 +3098,11 @@ { the_pcu->bts = bts_alloc(the_pcu); BTS *the_bts = the_pcu->bts; - gprs_rlcmac_bts *bts; uint8_t ts_no = 4; fprintf(stderr, "=== start %s ===\n", __func__); - bts = the_bts->bts_data(); - bts->cs_downgrade_threshold = 0; + the_pcu->vty.cs_downgrade_threshold = 0; setup_bts(the_bts, ts_no); OSMO_ASSERT(osmo_tdef_set(the_pcu->T_defs, -2031, 200, OSMO_TDEF_MS) == 0); -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22185 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I3e1c65eb3cccff565d5d84588bdce93a47909a0f Gerrit-Change-Number: 22185 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 14:44:55 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 18 Jan 2021 14:44:55 +0000 Subject: Change in osmo-pcu[master]: Move (m)cs_lqual_ranges fields from BTS to PCU In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22186 ) Change subject: Move (m)cs_lqual_ranges fields from BTS to PCU ...................................................................... Move (m)cs_lqual_ranges fields from BTS to PCU Change-Id: I39e2fc7e229851610d797c594d84902af6079411 --- M src/bts.cpp M src/bts.h M src/gprs_ms.c M src/gprs_pcu.c M src/gprs_pcu.h M src/pcu_vty.c 6 files changed, 81 insertions(+), 89 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/src/bts.cpp b/src/bts.cpp index 32ec71e..c2b8696 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -201,37 +201,6 @@ bts->n3103 = 4; bts->n3105 = 8; bts->si13_is_set = false; - /* CS-1 to CS-4 */ - bts->cs_lqual_ranges[0].low = -256; - bts->cs_lqual_ranges[0].high = 6; - bts->cs_lqual_ranges[1].low = 5; - bts->cs_lqual_ranges[1].high = 8; - bts->cs_lqual_ranges[2].low = 7; - bts->cs_lqual_ranges[2].high = 13; - bts->cs_lqual_ranges[3].low = 12; - bts->cs_lqual_ranges[3].high = 256; - - /* MCS-1 to MCS-9 */ - /* Default thresholds are referenced from literature */ - /* Fig. 2.3, Chapter 2, Optimizing Wireless Communication Systems, Springer (2009) */ - bts->mcs_lqual_ranges[0].low = -256; - bts->mcs_lqual_ranges[0].high = 6; - bts->mcs_lqual_ranges[1].low = 5; - bts->mcs_lqual_ranges[1].high = 8; - bts->mcs_lqual_ranges[2].low = 7; - bts->mcs_lqual_ranges[2].high = 13; - bts->mcs_lqual_ranges[3].low = 12; - bts->mcs_lqual_ranges[3].high = 15; - bts->mcs_lqual_ranges[4].low = 14; - bts->mcs_lqual_ranges[4].high = 17; - bts->mcs_lqual_ranges[5].low = 16; - bts->mcs_lqual_ranges[5].high = 18; - bts->mcs_lqual_ranges[6].low = 17; - bts->mcs_lqual_ranges[6].high = 20; - bts->mcs_lqual_ranges[7].low = 19; - bts->mcs_lqual_ranges[7].high = 24; - bts->mcs_lqual_ranges[8].low = 23; - bts->mcs_lqual_ranges[8].high = 256; bts->ns_dialect = NS2_DIALECT_IPACCESS; /* TODO: increase them when CRBB decoding is implemented */ diff --git a/src/bts.h b/src/bts.h index afad02c..040386e 100644 --- a/src/bts.h +++ b/src/bts.h @@ -108,9 +108,6 @@ uint8_t si13[GSM_MACBLOCK_LEN]; bool si13_is_set; - /* Link quality range for each UL (M)CS. Below or above, next/prev (M)CS is selected. */ - struct {int16_t low; int16_t high; } cs_lqual_ranges[MAX_GPRS_CS]; - struct {int16_t low; int16_t high; } mcs_lqual_ranges[MAX_EDGE_MCS]; uint16_t ws_base; uint16_t ws_pdch; /* increase WS by this value per PDCH */ diff --git a/src/gprs_ms.c b/src/gprs_ms.c index c0fb55e..291f0e8 100644 --- a/src/gprs_ms.c +++ b/src/gprs_ms.c @@ -673,7 +673,6 @@ void ms_update_cs_ul(struct GprsMs *ms, const struct pcu_l1_meas *meas) { - struct gprs_rlcmac_bts *bts_; enum CodingScheme max_cs_ul = ms_max_cs_ul(ms); int old_link_qual; @@ -682,8 +681,6 @@ enum CodingScheme new_cs_ul = ms->current_cs_ul; uint8_t current_cs = mcs_chan_code(ms->current_cs_ul); - bts_ = bts_data(ms->bts); - if (!max_cs_ul) { LOGP(DRLCMACMEAS, LOGL_ERROR, "max_cs_ul cannot be derived (current UL CS: %s)\n", @@ -708,13 +705,13 @@ if (mcs_is_gprs(ms->current_cs_ul)) { if (current_cs >= MAX_GPRS_CS) current_cs = MAX_GPRS_CS - 1; - low = bts_->cs_lqual_ranges[current_cs].low; - high = bts_->cs_lqual_ranges[current_cs].high; + low = the_pcu->vty.cs_lqual_ranges[current_cs].low; + high = the_pcu->vty.cs_lqual_ranges[current_cs].high; } else if (mcs_is_edge(ms->current_cs_ul)) { if (current_cs >= MAX_EDGE_MCS) current_cs = MAX_EDGE_MCS - 1; - low = bts_->mcs_lqual_ranges[current_cs].low; - high = bts_->mcs_lqual_ranges[current_cs].high; + low = the_pcu->vty.mcs_lqual_ranges[current_cs].low; + high = the_pcu->vty.mcs_lqual_ranges[current_cs].high; } else { LOGP(DRLCMACMEAS, LOGL_ERROR, "Unable to update UL (M)CS because it's neither GPRS nor EDGE: %s\n", diff --git a/src/gprs_pcu.c b/src/gprs_pcu.c index ba48c38..cfe8896 100644 --- a/src/gprs_pcu.c +++ b/src/gprs_pcu.c @@ -59,6 +59,36 @@ pcu->vty.cs_adj_upper_limit = 33; /* Decrease CS if the error rate is above */ pcu->vty.cs_adj_lower_limit = 10; /* Increase CS if the error rate is below */ pcu->vty.cs_downgrade_threshold = 200; + /* CS-1 to CS-4 */ + pcu->vty.cs_lqual_ranges[0].low = -256; + pcu->vty.cs_lqual_ranges[0].high = 6; + pcu->vty.cs_lqual_ranges[1].low = 5; + pcu->vty.cs_lqual_ranges[1].high = 8; + pcu->vty.cs_lqual_ranges[2].low = 7; + pcu->vty.cs_lqual_ranges[2].high = 13; + pcu->vty.cs_lqual_ranges[3].low = 12; + pcu->vty.cs_lqual_ranges[3].high = 256; + /* MCS-1 to MCS-9 */ + /* Default thresholds are referenced from literature */ + /* Fig. 2.3, Chapter 2, Optimizing Wireless Communication Systems, Springer (2009) */ + pcu->vty.mcs_lqual_ranges[0].low = -256; + pcu->vty.mcs_lqual_ranges[0].high = 6; + pcu->vty.mcs_lqual_ranges[1].low = 5; + pcu->vty.mcs_lqual_ranges[1].high = 8; + pcu->vty.mcs_lqual_ranges[2].low = 7; + pcu->vty.mcs_lqual_ranges[2].high = 13; + pcu->vty.mcs_lqual_ranges[3].low = 12; + pcu->vty.mcs_lqual_ranges[3].high = 15; + pcu->vty.mcs_lqual_ranges[4].low = 14; + pcu->vty.mcs_lqual_ranges[4].high = 17; + pcu->vty.mcs_lqual_ranges[5].low = 16; + pcu->vty.mcs_lqual_ranges[5].high = 18; + pcu->vty.mcs_lqual_ranges[6].low = 17; + pcu->vty.mcs_lqual_ranges[6].high = 20; + pcu->vty.mcs_lqual_ranges[7].low = 19; + pcu->vty.mcs_lqual_ranges[7].high = 24; + pcu->vty.mcs_lqual_ranges[8].low = 23; + pcu->vty.mcs_lqual_ranges[8].high = 256; pcu->T_defs = T_defs_pcu; osmo_tdefs_reset(pcu->T_defs); diff --git a/src/gprs_pcu.h b/src/gprs_pcu.h index 146b8b8..916169e 100644 --- a/src/gprs_pcu.h +++ b/src/gprs_pcu.h @@ -85,6 +85,9 @@ /* downgrade DL CS when less than specified octets are left in tx queue. Optimization, see paper: "Theoretical Analysis of GPRS Throughput and Delay" */ uint16_t cs_downgrade_threshold; + /* Link quality range for each UL (M)CS. Below or above, next/prev (M)CS is selected. */ + struct {int16_t low; int16_t high; } cs_lqual_ranges[MAX_GPRS_CS]; + struct {int16_t low; int16_t high; } mcs_lqual_ranges[MAX_EDGE_MCS]; } vty; struct gsmtap_inst *gsmtap; diff --git a/src/pcu_vty.c b/src/pcu_vty.c index e0edf91..3abfba7 100644 --- a/src/pcu_vty.c +++ b/src/pcu_vty.c @@ -150,31 +150,31 @@ vty_out(vty, " no cs downgrade-threshold%s", VTY_NEWLINE); vty_out(vty, " cs link-quality-ranges cs1 %d cs2 %d %d cs3 %d %d cs4 %d%s", - bts->cs_lqual_ranges[0].high, - bts->cs_lqual_ranges[1].low, - bts->cs_lqual_ranges[1].high, - bts->cs_lqual_ranges[2].low, - bts->cs_lqual_ranges[2].high, - bts->cs_lqual_ranges[3].low, + the_pcu->vty.cs_lqual_ranges[0].high, + the_pcu->vty.cs_lqual_ranges[1].low, + the_pcu->vty.cs_lqual_ranges[1].high, + the_pcu->vty.cs_lqual_ranges[2].low, + the_pcu->vty.cs_lqual_ranges[2].high, + the_pcu->vty.cs_lqual_ranges[3].low, VTY_NEWLINE); vty_out(vty, " mcs link-quality-ranges mcs1 %d mcs2 %d %d mcs3 %d %d mcs4 %d %d mcs5 %d %d mcs6 %d %d mcs7 %d %d mcs8 %d %d mcs9 %d%s", - bts->mcs_lqual_ranges[0].high, - bts->mcs_lqual_ranges[1].low, - bts->mcs_lqual_ranges[1].high, - bts->mcs_lqual_ranges[2].low, - bts->mcs_lqual_ranges[2].high, - bts->mcs_lqual_ranges[3].low, - bts->mcs_lqual_ranges[3].high, - bts->mcs_lqual_ranges[4].low, - bts->mcs_lqual_ranges[4].high, - bts->mcs_lqual_ranges[5].low, - bts->mcs_lqual_ranges[5].high, - bts->mcs_lqual_ranges[6].low, - bts->mcs_lqual_ranges[6].high, - bts->mcs_lqual_ranges[7].low, - bts->mcs_lqual_ranges[7].high, - bts->mcs_lqual_ranges[8].low, + the_pcu->vty.mcs_lqual_ranges[0].high, + the_pcu->vty.mcs_lqual_ranges[1].low, + the_pcu->vty.mcs_lqual_ranges[1].high, + the_pcu->vty.mcs_lqual_ranges[2].low, + the_pcu->vty.mcs_lqual_ranges[2].high, + the_pcu->vty.mcs_lqual_ranges[3].low, + the_pcu->vty.mcs_lqual_ranges[3].high, + the_pcu->vty.mcs_lqual_ranges[4].low, + the_pcu->vty.mcs_lqual_ranges[4].high, + the_pcu->vty.mcs_lqual_ranges[5].low, + the_pcu->vty.mcs_lqual_ranges[5].high, + the_pcu->vty.mcs_lqual_ranges[6].low, + the_pcu->vty.mcs_lqual_ranges[6].high, + the_pcu->vty.mcs_lqual_ranges[7].low, + the_pcu->vty.mcs_lqual_ranges[7].high, + the_pcu->vty.mcs_lqual_ranges[8].low, VTY_NEWLINE); if (the_pcu->vty.force_initial_mcs) { @@ -977,8 +977,6 @@ "CS-4 low (dB)\n", CMD_ATTR_IMMEDIATE) { - struct gprs_rlcmac_bts *bts = bts_main_data(); - uint8_t cs1_high = atoi(argv[0]); uint8_t cs2_low = atoi(argv[1]); uint8_t cs2_high = atoi(argv[2]); @@ -986,12 +984,12 @@ uint8_t cs3_high = atoi(argv[4]); uint8_t cs4_low = atoi(argv[5]); - bts->cs_lqual_ranges[0].high = cs1_high; - bts->cs_lqual_ranges[1].low = cs2_low; - bts->cs_lqual_ranges[1].high = cs2_high; - bts->cs_lqual_ranges[2].low = cs3_low; - bts->cs_lqual_ranges[2].high = cs3_high; - bts->cs_lqual_ranges[3].low = cs4_low; + the_pcu->vty.cs_lqual_ranges[0].high = cs1_high; + the_pcu->vty.cs_lqual_ranges[1].low = cs2_low; + the_pcu->vty.cs_lqual_ranges[1].high = cs2_high; + the_pcu->vty.cs_lqual_ranges[2].low = cs3_low; + the_pcu->vty.cs_lqual_ranges[2].high = cs3_high; + the_pcu->vty.cs_lqual_ranges[3].low = cs4_low; return CMD_SUCCESS; } @@ -1027,24 +1025,22 @@ "MCS-9 low (dB)\n", CMD_ATTR_IMMEDIATE) { - struct gprs_rlcmac_bts *bts = bts_main_data(); - - bts->mcs_lqual_ranges[0].high = atoi(argv[0]); - bts->mcs_lqual_ranges[1].low = atoi(argv[1]); - bts->mcs_lqual_ranges[1].high = atoi(argv[2]); - bts->mcs_lqual_ranges[2].low = atoi(argv[3]); - bts->mcs_lqual_ranges[2].high = atoi(argv[4]); - bts->mcs_lqual_ranges[3].low = atoi(argv[5]); - bts->mcs_lqual_ranges[3].high = atoi(argv[6]); - bts->mcs_lqual_ranges[4].low = atoi(argv[7]); - bts->mcs_lqual_ranges[4].high = atoi(argv[8]); - bts->mcs_lqual_ranges[5].low = atoi(argv[9]); - bts->mcs_lqual_ranges[5].high = atoi(argv[10]); - bts->mcs_lqual_ranges[6].low = atoi(argv[11]); - bts->mcs_lqual_ranges[6].high = atoi(argv[12]); - bts->mcs_lqual_ranges[7].low = atoi(argv[13]); - bts->mcs_lqual_ranges[7].high = atoi(argv[14]); - bts->mcs_lqual_ranges[8].low = atoi(argv[15]); + the_pcu->vty.mcs_lqual_ranges[0].high = atoi(argv[0]); + the_pcu->vty.mcs_lqual_ranges[1].low = atoi(argv[1]); + the_pcu->vty.mcs_lqual_ranges[1].high = atoi(argv[2]); + the_pcu->vty.mcs_lqual_ranges[2].low = atoi(argv[3]); + the_pcu->vty.mcs_lqual_ranges[2].high = atoi(argv[4]); + the_pcu->vty.mcs_lqual_ranges[3].low = atoi(argv[5]); + the_pcu->vty.mcs_lqual_ranges[3].high = atoi(argv[6]); + the_pcu->vty.mcs_lqual_ranges[4].low = atoi(argv[7]); + the_pcu->vty.mcs_lqual_ranges[4].high = atoi(argv[8]); + the_pcu->vty.mcs_lqual_ranges[5].low = atoi(argv[9]); + the_pcu->vty.mcs_lqual_ranges[5].high = atoi(argv[10]); + the_pcu->vty.mcs_lqual_ranges[6].low = atoi(argv[11]); + the_pcu->vty.mcs_lqual_ranges[6].high = atoi(argv[12]); + the_pcu->vty.mcs_lqual_ranges[7].low = atoi(argv[13]); + the_pcu->vty.mcs_lqual_ranges[7].high = atoi(argv[14]); + the_pcu->vty.mcs_lqual_ranges[8].low = atoi(argv[15]); return CMD_SUCCESS; } -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22186 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I39e2fc7e229851610d797c594d84902af6079411 Gerrit-Change-Number: 22186 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 14:44:56 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 18 Jan 2021 14:44:56 +0000 Subject: Change in osmo-pcu[master]: Move ns_dialect field from BTS to PCU In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22187 ) Change subject: Move ns_dialect field from BTS to PCU ...................................................................... Move ns_dialect field from BTS to PCU Change-Id: Iffb22b776b91f93d6d2a7ccfa47deeecc22c33f0 --- M src/bts.cpp M src/bts.h M src/gprs_bssgp_pcu.cpp M src/gprs_pcu.c M src/gprs_pcu.h M src/pcu_vty.c 6 files changed, 8 insertions(+), 12 deletions(-) Approvals: Jenkins Builder: Verified lynxis lazus: Looks good to me, approved laforge: Looks good to me, approved diff --git a/src/bts.cpp b/src/bts.cpp index c2b8696..4a9910f 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -201,7 +201,6 @@ bts->n3103 = 4; bts->n3105 = 8; bts->si13_is_set = false; - bts->ns_dialect = NS2_DIALECT_IPACCESS; /* TODO: increase them when CRBB decoding is implemented */ bts->ws_base = 64; diff --git a/src/bts.h b/src/bts.h index 040386e..2902074 100644 --- a/src/bts.h +++ b/src/bts.h @@ -120,9 +120,6 @@ */ struct BTS *bts; - /* Are we talking Gb with IP-SNS (true) or classic Gb? */ - enum gprs_ns2_dialect ns_dialect; - /* Packet Application Information (3GPP TS 44.060 11.2.47, usually ETWS primary message). We don't need to store * more than one message, because they get sent so rarely. */ struct msgb *app_info; diff --git a/src/gprs_bssgp_pcu.cpp b/src/gprs_bssgp_pcu.cpp index 0db6a51..89edd2b 100644 --- a/src/gprs_bssgp_pcu.cpp +++ b/src/gprs_bssgp_pcu.cpp @@ -984,7 +984,7 @@ bts->nse = gprs_ns2_nse_by_nsei(the_pcu->nsi, nsei); if (!bts->nse) bts->nse = gprs_ns2_create_nse(the_pcu->nsi, nsei, - GPRS_NS2_LL_UDP, bts->ns_dialect); + GPRS_NS2_LL_UDP, the_pcu->vty.ns_dialect); if (!bts->nse) { LOGP(DBSSGP, LOGL_ERROR, "Failed to create NSE\n"); @@ -997,7 +997,7 @@ continue; /* FIXME: for SNS we just use the first successful NS-VC instead of all for the initial connect */ - if (bts->ns_dialect == NS2_DIALECT_SNS) { + if (the_pcu->vty.ns_dialect == NS2_DIALECT_SNS) { rc = gprs_ns2_sns_add_endpoint(bts->nse, &remote[i]); if (!rc) return rc; @@ -1066,7 +1066,7 @@ gprs_ns2_free_nses(the_pcu->nsi); gprs_ns2_free_binds(the_pcu->nsi); rc = ns_create_nsvc(bts, nsei, local, remote, nsvci, valid); - } else if (bts->ns_dialect == NS2_DIALECT_SNS) { + } else if (the_pcu->vty.ns_dialect == NS2_DIALECT_SNS) { /* SNS: check if the initial nsvc is the same, if not recreate it */ const struct osmo_sockaddr *initial = gprs_ns2_nse_sns_remote(bts->nse); for (unsigned int i = 0; i < PCU_IF_NUM_NSVC; i++) { diff --git a/src/gprs_pcu.c b/src/gprs_pcu.c index cfe8896..01ead33 100644 --- a/src/gprs_pcu.c +++ b/src/gprs_pcu.c @@ -89,6 +89,7 @@ pcu->vty.mcs_lqual_ranges[7].high = 24; pcu->vty.mcs_lqual_ranges[8].low = 23; pcu->vty.mcs_lqual_ranges[8].high = 256; + pcu->vty.ns_dialect = NS2_DIALECT_IPACCESS; pcu->T_defs = T_defs_pcu; osmo_tdefs_reset(pcu->T_defs); diff --git a/src/gprs_pcu.h b/src/gprs_pcu.h index 916169e..ff73cc9 100644 --- a/src/gprs_pcu.h +++ b/src/gprs_pcu.h @@ -88,6 +88,7 @@ /* Link quality range for each UL (M)CS. Below or above, next/prev (M)CS is selected. */ struct {int16_t low; int16_t high; } cs_lqual_ranges[MAX_GPRS_CS]; struct {int16_t low; int16_t high; } mcs_lqual_ranges[MAX_EDGE_MCS]; + enum gprs_ns2_dialect ns_dialect; /* Are we talking Gb with IP-SNS (true) or classic Gb? */ } vty; struct gsmtap_inst *gsmtap; diff --git a/src/pcu_vty.c b/src/pcu_vty.c index 3abfba7..b0c941d 100644 --- a/src/pcu_vty.c +++ b/src/pcu_vty.c @@ -243,7 +243,7 @@ } } - if (bts->ns_dialect == NS2_DIALECT_SNS) + if (the_pcu->vty.ns_dialect == NS2_DIALECT_SNS) vty_out(vty, " gb-dialect ip-sns%s", VTY_NEWLINE); else vty_out(vty, " gb-dialect classic%s", VTY_NEWLINE); @@ -1067,12 +1067,10 @@ "Classic Gb interface with NS-{RESET,BLOCK,UNBLOCK} and static configuration\n" "Modern Gb interface with IP-SNS (Sub Network Service) and dynamic configuration\n") { - struct gprs_rlcmac_bts *bts = bts_main_data(); - if (!strcmp(argv[0], "ip-sns")) { - bts->ns_dialect = NS2_DIALECT_SNS; + the_pcu->vty.ns_dialect = NS2_DIALECT_SNS; } else { - bts->ns_dialect = NS2_DIALECT_IPACCESS; + the_pcu->vty.ns_dialect = NS2_DIALECT_IPACCESS; } return CMD_SUCCESS; -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22187 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Iffb22b776b91f93d6d2a7ccfa47deeecc22c33f0 Gerrit-Change-Number: 22187 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 14:44:58 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 18 Jan 2021 14:44:58 +0000 Subject: Change in osmo-pcu[master]: Move fc_* fields from BTS to PCU In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22188 ) Change subject: Move fc_* fields from BTS to PCU ...................................................................... Move fc_* fields from BTS to PCU Change-Id: I816d49e732d0fc7a3c9aa1f0e9a83b83d25e6a32 --- M src/bts.cpp M src/bts.h M src/gprs_bssgp_pcu.cpp M src/gprs_pcu.c M src/gprs_pcu.h M src/pcu_vty.c M tests/emu/pcu_emu.cpp 7 files changed, 34 insertions(+), 66 deletions(-) Approvals: Jenkins Builder: Verified lynxis lazus: Looks good to me, approved laforge: Looks good to me, approved diff --git a/src/bts.cpp b/src/bts.cpp index 4a9910f..9f987ff 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -193,7 +193,6 @@ static void bts_init(struct gprs_rlcmac_bts *bts, BTS* bts_obj) { memset(bts, 0, sizeof(*bts)); - bts->fc_interval = 1; bts->initial_cs_dl = bts->initial_cs_ul = 1; bts->initial_mcs_dl = bts->initial_mcs_ul = 1; bts->cs_mask = 1 << 0; /* CS-1 always enabled by default */ diff --git a/src/bts.h b/src/bts.h index 2902074..db5f3e8 100644 --- a/src/bts.h +++ b/src/bts.h @@ -85,12 +85,6 @@ struct gprs_rlcmac_bts { bool active; uint8_t bsic; - uint8_t fc_interval; - uint16_t fc_bucket_time; - uint32_t fc_bvc_bucket_size; - uint32_t fc_bvc_leak_rate; - uint32_t fc_ms_bucket_size; - uint32_t fc_ms_leak_rate; uint8_t cs_mask; /* Allowed CS mask from BTS */ uint16_t mcs_mask; /* Allowed MCS mask from BTS */ uint8_t initial_cs_dl, initial_cs_ul; diff --git a/src/gprs_bssgp_pcu.cpp b/src/gprs_bssgp_pcu.cpp index 89edd2b..c1a7a7d 100644 --- a/src/gprs_bssgp_pcu.cpp +++ b/src/gprs_bssgp_pcu.cpp @@ -673,7 +673,7 @@ uint32_t leak_rate, uint32_t fallback) { uint32_t bucket_size = 0; - uint16_t bucket_time = bts->fc_bucket_time; + uint16_t bucket_time = the_pcu->vty.fc_bucket_time; if (bucket_time == 0) bucket_time = bts->force_llc_lifetime; @@ -811,10 +811,10 @@ max_cs_dl = max_coding_scheme_dl(bts); - bucket_size = bts->fc_bvc_bucket_size; - leak_rate = bts->fc_bvc_leak_rate; - ms_bucket_size = bts->fc_ms_bucket_size; - ms_leak_rate = bts->fc_ms_leak_rate; + bucket_size = the_pcu->vty.fc_bvc_bucket_size; + leak_rate = the_pcu->vty.fc_bvc_leak_rate; + ms_bucket_size = the_pcu->vty.fc_ms_bucket_size; + ms_leak_rate = the_pcu->vty.fc_ms_leak_rate; /* FIXME: This calculation is mostly wrong. It should be done based on currently established TBF (and whether the related (egprs)_ms_class @@ -940,7 +940,7 @@ LOGP(DBSSGP, LOGL_DEBUG, "Sending flow control info on BVCI %d\n", the_pcu->bssgp.bctx->bvci); gprs_bssgp_tx_fc_bvc(); - osmo_timer_schedule(&the_pcu->bssgp.bvc_timer, the_pcu->bssgp.bts->fc_interval, 0); + osmo_timer_schedule(&the_pcu->bssgp.bvc_timer, the_pcu->vty.fc_interval, 0); } static int ns_create_nsvc(struct gprs_rlcmac_bts *bts, diff --git a/src/gprs_pcu.c b/src/gprs_pcu.c index 01ead33..209fca6 100644 --- a/src/gprs_pcu.c +++ b/src/gprs_pcu.c @@ -46,6 +46,7 @@ pcu = (struct gprs_pcu *)talloc_zero(ctx, struct gprs_pcu); OSMO_ASSERT(pcu); + pcu->vty.fc_interval = 1; pcu->vty.max_cs_ul = MAX_GPRS_CS; pcu->vty.max_cs_dl = MAX_GPRS_CS; pcu->vty.max_mcs_ul = MAX_EDGE_MCS; diff --git a/src/gprs_pcu.h b/src/gprs_pcu.h index ff73cc9..87c8cdf 100644 --- a/src/gprs_pcu.h +++ b/src/gprs_pcu.h @@ -71,6 +71,12 @@ char *pcu_sock_path; struct { /* Config Values set by VTY */ + uint8_t fc_interval; + uint16_t fc_bucket_time; + uint32_t fc_bvc_bucket_size; + uint32_t fc_bvc_leak_rate; + uint32_t fc_ms_bucket_size; + uint32_t fc_ms_leak_rate; bool force_initial_cs; /* false=use from BTS true=use from VTY */ bool force_initial_mcs; /* false=use from BTS true=use from VTY */ uint8_t max_cs_dl, max_cs_ul; diff --git a/src/pcu_vty.c b/src/pcu_vty.c index b0c941d..d107548 100644 --- a/src/pcu_vty.c +++ b/src/pcu_vty.c @@ -106,20 +106,20 @@ unsigned int i; vty_out(vty, "pcu%s", VTY_NEWLINE); - vty_out(vty, " flow-control-interval %d%s", bts->fc_interval, + vty_out(vty, " flow-control-interval %d%s", the_pcu->vty.fc_interval, VTY_NEWLINE); - if (bts->fc_bvc_bucket_size) + if (the_pcu->vty.fc_bvc_bucket_size) vty_out(vty, " flow-control force-bvc-bucket-size %d%s", - bts->fc_bvc_bucket_size, VTY_NEWLINE); - if (bts->fc_bvc_leak_rate) + the_pcu->vty.fc_bvc_bucket_size, VTY_NEWLINE); + if (the_pcu->vty.fc_bvc_leak_rate) vty_out(vty, " flow-control force-bvc-leak-rate %d%s", - bts->fc_bvc_leak_rate, VTY_NEWLINE); - if (bts->fc_ms_bucket_size) + the_pcu->vty.fc_bvc_leak_rate, VTY_NEWLINE); + if (the_pcu->vty.fc_ms_bucket_size) vty_out(vty, " flow-control force-ms-bucket-size %d%s", - bts->fc_ms_bucket_size, VTY_NEWLINE); - if (bts->fc_ms_leak_rate) + the_pcu->vty.fc_ms_bucket_size, VTY_NEWLINE); + if (the_pcu->vty.fc_ms_leak_rate) vty_out(vty, " flow-control force-ms-leak-rate %d%s", - bts->fc_ms_leak_rate, VTY_NEWLINE); + the_pcu->vty.fc_ms_leak_rate, VTY_NEWLINE); if (the_pcu->vty.force_initial_cs) { if (bts->initial_cs_ul == bts->initial_cs_dl) vty_out(vty, " cs %d%s", bts->initial_cs_dl, @@ -292,10 +292,7 @@ "Interval time in seconds\n", CMD_ATTR_IMMEDIATE) { - struct gprs_rlcmac_bts *bts = bts_main_data(); - - bts->fc_interval = atoi(argv[0]); - + the_pcu->vty.fc_interval = atoi(argv[0]); return CMD_SUCCESS; } #define FC_STR "BSSGP Flow Control configuration\n" @@ -308,10 +305,7 @@ FC_STR FC_BMAX_STR("BVC") "Bucket size in octets\n", CMD_ATTR_IMMEDIATE) { - struct gprs_rlcmac_bts *bts = bts_main_data(); - - bts->fc_bvc_bucket_size = atoi(argv[0]); - + the_pcu->vty.fc_bvc_bucket_size = atoi(argv[0]); return CMD_SUCCESS; } @@ -321,10 +315,7 @@ NO_STR FC_STR FC_BMAX_STR("BVC"), CMD_ATTR_IMMEDIATE) { - struct gprs_rlcmac_bts *bts = bts_main_data(); - - bts->fc_bvc_bucket_size = 0; - + the_pcu->vty.fc_bvc_bucket_size = 0; return CMD_SUCCESS; } @@ -334,9 +325,7 @@ FC_STR FC_LR_STR("BVC") "Leak rate in bit/s\n", CMD_ATTR_IMMEDIATE) { - struct gprs_rlcmac_bts *bts = bts_main_data(); - - bts->fc_bvc_leak_rate = atoi(argv[0]); + the_pcu->vty.fc_bvc_leak_rate = atoi(argv[0]); return CMD_SUCCESS; } @@ -347,10 +336,7 @@ NO_STR FC_STR FC_LR_STR("BVC"), CMD_ATTR_IMMEDIATE) { - struct gprs_rlcmac_bts *bts = bts_main_data(); - - bts->fc_bvc_leak_rate = 0; - + the_pcu->vty.fc_bvc_leak_rate = 0; return CMD_SUCCESS; } @@ -360,10 +346,7 @@ FC_STR FC_BMAX_STR("default MS") "Bucket size in octets\n", CMD_ATTR_IMMEDIATE) { - struct gprs_rlcmac_bts *bts = bts_main_data(); - - bts->fc_ms_bucket_size = atoi(argv[0]); - + the_pcu->vty.fc_ms_bucket_size = atoi(argv[0]); return CMD_SUCCESS; } @@ -373,10 +356,7 @@ NO_STR FC_STR FC_BMAX_STR("default MS"), CMD_ATTR_IMMEDIATE) { - struct gprs_rlcmac_bts *bts = bts_main_data(); - - bts->fc_ms_bucket_size = 0; - + the_pcu->vty.fc_ms_bucket_size = 0; return CMD_SUCCESS; } @@ -386,10 +366,7 @@ FC_STR FC_LR_STR("default MS") "Leak rate in bit/s\n", CMD_ATTR_IMMEDIATE) { - struct gprs_rlcmac_bts *bts = bts_main_data(); - - bts->fc_ms_leak_rate = atoi(argv[0]); - + the_pcu->vty.fc_ms_leak_rate = atoi(argv[0]); return CMD_SUCCESS; } @@ -399,10 +376,7 @@ NO_STR FC_STR FC_LR_STR("default MS"), CMD_ATTR_IMMEDIATE) { - struct gprs_rlcmac_bts *bts = bts_main_data(); - - bts->fc_ms_leak_rate = 0; - + the_pcu->vty.fc_ms_leak_rate = 0; return CMD_SUCCESS; } @@ -413,10 +387,7 @@ FC_STR FC_BTIME_STR "Time in centi-seconds\n", CMD_ATTR_IMMEDIATE) { - struct gprs_rlcmac_bts *bts = bts_main_data(); - - bts->fc_bucket_time = atoi(argv[0]); - + the_pcu->vty.fc_bucket_time = atoi(argv[0]); return CMD_SUCCESS; } @@ -426,10 +397,7 @@ NO_STR FC_STR FC_BTIME_STR, CMD_ATTR_IMMEDIATE) { - struct gprs_rlcmac_bts *bts = bts_main_data(); - - bts->fc_bucket_time = 0; - + the_pcu->vty.fc_bucket_time = 0; return CMD_SUCCESS; } diff --git a/tests/emu/pcu_emu.cpp b/tests/emu/pcu_emu.cpp index 96aacda..2336e67 100644 --- a/tests/emu/pcu_emu.cpp +++ b/tests/emu/pcu_emu.cpp @@ -66,7 +66,6 @@ static void init_main_bts() { struct gprs_rlcmac_bts *bts = bts_main_data(); - bts->fc_interval = 100; bts->initial_cs_dl = bts->initial_cs_ul = 1; bts->cs_mask = 1 << 0; /* CS-1 always enabled by default */ bts->n3101 = 10; @@ -78,6 +77,7 @@ { if (!pcu->alloc_algorithm) pcu->alloc_algorithm = alloc_algorithm_b; + pcu->vty.fc_interval = 100; pcu->vty.alpha = 0; /* a = 0.0 */ } -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22188 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I816d49e732d0fc7a3c9aa1f0e9a83b83d25e6a32 Gerrit-Change-Number: 22188 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 14:44:58 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 18 Jan 2021 14:44:58 +0000 Subject: Change in osmo-pcu[master]: tests/tbf: Allocate PCU per test instead of globally In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22189 ) Change subject: tests/tbf: Allocate PCU per test instead of globally ...................................................................... tests/tbf: Allocate PCU per test instead of globally Otherwise some state may be left from one test to another. Change-Id: I18e2fe7dd1cc5940570252a2a6a106de49d8a7dd --- M tests/tbf/TbfTest.cpp 1 file changed, 58 insertions(+), 33 deletions(-) Approvals: Jenkins Builder: Verified lynxis lazus: Looks good to me, approved laforge: Looks good to me, but someone else must approve diff --git a/tests/tbf/TbfTest.cpp b/tests/tbf/TbfTest.cpp index 75b51bf..66e344e 100644 --- a/tests/tbf/TbfTest.cpp +++ b/tests/tbf/TbfTest.cpp @@ -91,6 +91,7 @@ static void test_tbf_tlli_update() { + the_pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu->bts = bts_alloc(the_pcu); BTS *the_bts = the_pcu->bts; GprsMs *ms, *ms_new; @@ -155,7 +156,7 @@ OSMO_ASSERT(dl_tbf->ta() == 6); fprintf(stderr, "=== end %s ===\n", __func__); - TALLOC_FREE(the_pcu->bts); + TALLOC_FREE(the_pcu); } static uint8_t llc_data[200]; @@ -253,6 +254,7 @@ static void test_tbf_final_ack(enum test_tbf_final_ack_mode test_mode) { + the_pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu->bts = bts_alloc(the_pcu); BTS *the_bts = the_pcu->bts; uint8_t ts_no = 4; @@ -324,7 +326,7 @@ ms_unref(ms); } - TALLOC_FREE(the_pcu->bts); + TALLOC_FREE(the_pcu); fprintf(stderr, "=== end %s ===\n", __func__); } @@ -338,6 +340,7 @@ static void test_tbf_delayed_release() { + the_pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu->bts = bts_alloc(the_pcu); BTS *the_bts = the_pcu->bts; uint8_t ts_no = 4; @@ -402,12 +405,13 @@ TBF_SET_ASS_STATE_DL(dl_tbf, GPRS_RLCMAC_DL_ASS_NONE); check_tbf(dl_tbf); tbf_free(dl_tbf); - TALLOC_FREE(the_pcu->bts); + TALLOC_FREE(the_pcu); fprintf(stderr, "=== end %s ===\n", __func__); } static void test_tbf_imsi() { + the_pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu->bts = bts_alloc(the_pcu); BTS *the_bts = the_pcu->bts; uint8_t ts_no = 4; @@ -463,12 +467,13 @@ ms1 = the_bts->ms_store().get_ms(0, 0, "001001000000002"); OSMO_ASSERT(ms1 == NULL); - TALLOC_FREE(the_pcu->bts); + TALLOC_FREE(the_pcu); fprintf(stderr, "=== end %s ===\n", __func__); } static void test_tbf_exhaustion() { + the_pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu->bts = bts_alloc(the_pcu); BTS *the_bts = the_pcu->bts; gprs_rlcmac_bts *bts; @@ -509,11 +514,12 @@ fprintf(stderr, "=== end %s ===\n", __func__); gprs_bssgp_destroy(bts); - TALLOC_FREE(the_pcu->bts); + TALLOC_FREE(the_pcu); } static void test_tbf_dl_llc_loss() { + the_pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu->bts = bts_alloc(the_pcu); BTS *the_bts = the_pcu->bts; gprs_rlcmac_bts *bts; @@ -596,7 +602,7 @@ fprintf(stderr, "=== end %s ===\n", __func__); gprs_bssgp_destroy(bts); - TALLOC_FREE(the_pcu->bts); + TALLOC_FREE(the_pcu); } static gprs_rlcmac_ul_tbf *establish_ul_tbf_single_phase(BTS *the_bts, @@ -1709,6 +1715,7 @@ static void test_tbf_single_phase() { + the_pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu->bts = bts_alloc(the_pcu); BTS *the_bts = the_pcu->bts; int ts_no = 7; @@ -1728,11 +1735,12 @@ send_dl_data(the_bts, tlli, imsi, (const uint8_t *)"TEST", 4); fprintf(stderr, "=== end %s ===\n", __func__); - TALLOC_FREE(the_pcu->bts); + TALLOC_FREE(the_pcu); } static void test_tbf_egprs_two_phase_puan(void) { + the_pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu->bts = bts_alloc(the_pcu); BTS *the_bts = the_pcu->bts; int ts_no = 7; @@ -1782,7 +1790,7 @@ print_ta_tlli(ul_tbf, true); send_dl_data(the_bts, tlli, imsi, test_data, sizeof(test_data)); - TALLOC_FREE(the_pcu->bts); + TALLOC_FREE(the_pcu); fprintf(stderr, "=== end %s ===\n", __func__); } /* @@ -1790,6 +1798,7 @@ */ static void test_immediate_assign_rej_single_block() { + the_pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu->bts = bts_alloc(the_pcu); BTS *the_bts = the_pcu->bts; uint32_t fn = 2654218; @@ -1814,7 +1823,7 @@ OSMO_ASSERT(rc == -EINVAL); - TALLOC_FREE(the_pcu->bts); + TALLOC_FREE(the_pcu); fprintf(stderr, "=== end %s ===\n", __func__); } @@ -1823,6 +1832,7 @@ */ static void test_immediate_assign_rej_multi_block() { + the_pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu->bts = bts_alloc(the_pcu); BTS *the_bts = the_pcu->bts; uint32_t fn = 2654218; @@ -1852,7 +1862,7 @@ OSMO_ASSERT(rc == -EBUSY); - TALLOC_FREE(the_pcu->bts); + TALLOC_FREE(the_pcu); fprintf(stderr, "=== end %s ===\n", __func__); } @@ -1864,6 +1874,7 @@ static void test_tbf_two_phase() { + the_pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu->bts = bts_alloc(the_pcu); BTS *the_bts = the_pcu->bts; int ts_no = 7; @@ -1884,7 +1895,7 @@ print_ta_tlli(ul_tbf, true); send_dl_data(the_bts, tlli, imsi, (const uint8_t *)"TEST", 4); - TALLOC_FREE(the_pcu->bts); + TALLOC_FREE(the_pcu); fprintf(stderr, "=== end %s ===\n", __func__); } @@ -1896,6 +1907,7 @@ static void test_tbf_ra_update_rach() { + the_pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu->bts = bts_alloc(the_pcu); BTS *the_bts = the_pcu->bts; int ts_no = 7; @@ -1956,12 +1968,13 @@ ms = the_bts->ms_by_tlli(tlli2); OSMO_ASSERT(ms == ms2); - TALLOC_FREE(the_pcu->bts); + TALLOC_FREE(the_pcu); fprintf(stderr, "=== end %s ===\n", __func__); } static void test_tbf_dl_flow_and_rach_two_phase() { + the_pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu->bts = bts_alloc(the_pcu); BTS *the_bts = the_pcu->bts; int ts_no = 7; @@ -2016,13 +2029,14 @@ /* No queued packets should be lost */ OSMO_ASSERT(llc_queue_size(ms_llc_queue(ms)) == 2); - TALLOC_FREE(the_pcu->bts); + TALLOC_FREE(the_pcu); fprintf(stderr, "=== end %s ===\n", __func__); } static void test_tbf_dl_flow_and_rach_single_phase() { + the_pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu->bts = bts_alloc(the_pcu); BTS *the_bts = the_pcu->bts; int ts_no = 7; @@ -2077,12 +2091,13 @@ /* No queued packets should be lost */ OSMO_ASSERT(llc_queue_size(ms_llc_queue(ms)) == 2); - TALLOC_FREE(the_pcu->bts); + TALLOC_FREE(the_pcu); fprintf(stderr, "=== end %s ===\n", __func__); } static void test_tbf_dl_reuse() { + the_pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu->bts = bts_alloc(the_pcu); BTS *the_bts = the_pcu->bts; int ts_no = 7; @@ -2177,12 +2192,13 @@ OSMO_ASSERT(ms_dl_tbf(ms2)); OSMO_ASSERT(ms_dl_tbf(ms2)->state_is(GPRS_RLCMAC_FINISHED)); - TALLOC_FREE(the_pcu->bts); + TALLOC_FREE(the_pcu); fprintf(stderr, "=== end %s ===\n", __func__); } static void test_tbf_gprs_egprs() { + the_pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu->bts = bts_alloc(the_pcu); BTS *the_bts = the_pcu->bts; gprs_rlcmac_bts *bts; @@ -2218,7 +2234,7 @@ fprintf(stderr, "=== end %s ===\n", __func__); gprs_bssgp_destroy(bts); - TALLOC_FREE(the_pcu->bts); + TALLOC_FREE(the_pcu); } static inline void ws_check(gprs_rlcmac_dl_tbf *dl_tbf, const char *test, uint8_t exp_slots, uint16_t exp_ws, @@ -2252,6 +2268,7 @@ static void test_tbf_ws() { + the_pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu->bts = bts_alloc(the_pcu); BTS *the_bts = the_pcu->bts; gprs_rlcmac_bts *bts; @@ -2294,11 +2311,12 @@ dl_tbf = tbf_alloc_dl_tbf(bts, ms, 0, false); ws_check(dl_tbf, __func__, 4, 128 + 4 * 64, true, true); - TALLOC_FREE(the_pcu->bts); + TALLOC_FREE(the_pcu); } static void test_tbf_update_ws(void) { + the_pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu->bts = bts_alloc(the_pcu); BTS *the_bts = the_pcu->bts; gprs_rlcmac_bts *bts; @@ -2340,11 +2358,12 @@ /* window size should be 384 */ ws_check(dl_tbf, __func__, 4, 128 + 4 * 64, true, true); - TALLOC_FREE(the_pcu->bts); + TALLOC_FREE(the_pcu); } static void test_tbf_puan_urbb_len(void) { + the_pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu->bts = bts_alloc(the_pcu); BTS *the_bts = the_pcu->bts; int ts_no = 7; @@ -2370,7 +2389,7 @@ print_ta_tlli(ul_tbf, true); send_dl_data(the_bts, tlli, imsi, test_data, sizeof(test_data)); - TALLOC_FREE(the_pcu->bts); + TALLOC_FREE(the_pcu); fprintf(stderr, "=== end %s ===\n", __func__); } @@ -2487,6 +2506,7 @@ static void test_tbf_li_decoding(void) { + the_pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu->bts = bts_alloc(the_pcu); BTS *the_bts = the_pcu->bts; int ts_no = 7; @@ -2512,7 +2532,7 @@ print_ta_tlli(ul_tbf, true); send_dl_data(the_bts, tlli, imsi, test_data, sizeof(test_data)); - TALLOC_FREE(the_pcu->bts); + TALLOC_FREE(the_pcu); fprintf(stderr, "=== end %s ===\n", __func__); } @@ -2523,6 +2543,7 @@ */ static void test_tbf_epdan_out_of_rx_window(void) { + the_pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu->bts = bts_alloc(the_pcu); BTS *the_bts = the_pcu->bts; uint8_t ms_class = 11; @@ -2608,12 +2629,13 @@ bitvec_free(block); tbf_free(dl_tbf); - TALLOC_FREE(the_pcu->bts); + TALLOC_FREE(the_pcu); fprintf(stderr, "=== end %s ===\n", __func__); } static void test_tbf_egprs_two_phase_spb(void) { + the_pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu->bts = bts_alloc(the_pcu); BTS *the_bts = the_pcu->bts; int ts_no = 7; @@ -2639,12 +2661,13 @@ print_ta_tlli(ul_tbf, true); send_dl_data(the_bts, tlli, imsi, test_data, sizeof(test_data)); - TALLOC_FREE(the_pcu->bts); + TALLOC_FREE(the_pcu); fprintf(stderr, "=== end %s ===\n", __func__); } static void test_tbf_egprs_two_phase() { + the_pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu->bts = bts_alloc(the_pcu); BTS *the_bts = the_pcu->bts; int ts_no = 7; @@ -2670,7 +2693,7 @@ print_ta_tlli(ul_tbf, true); send_dl_data(the_bts, tlli, imsi, test_data, sizeof(test_data)); - TALLOC_FREE(the_pcu->bts); + TALLOC_FREE(the_pcu); fprintf(stderr, "=== end %s ===\n", __func__); } @@ -3068,6 +3091,7 @@ static void test_tbf_egprs_retx_dl(void) { + the_pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu->bts = bts_alloc(the_pcu); BTS *the_bts = the_pcu->bts; uint8_t ts_no = 4; @@ -3090,12 +3114,13 @@ establish_and_use_egprs_dl_tbf_for_retx(the_bts, 7, 5); establish_and_use_egprs_dl_tbf_for_retx(the_bts, 9, 6); - TALLOC_FREE(the_pcu->bts); + TALLOC_FREE(the_pcu); fprintf(stderr, "=== end %s ===\n", __func__); } static void test_tbf_egprs_spb_dl(void) { + the_pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu->bts = bts_alloc(the_pcu); BTS *the_bts = the_pcu->bts; uint8_t ts_no = 4; @@ -3120,12 +3145,13 @@ /* check MCS6->(MCS3+MCS3)->MCS6 case */ egprs_spb_to_normal_validation(the_bts, 6, 3); - TALLOC_FREE(the_pcu->bts); + TALLOC_FREE(the_pcu); fprintf(stderr, "=== end %s ===\n", __func__); } static void test_tbf_egprs_dl() { + the_pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu->bts = bts_alloc(the_pcu); BTS *the_bts = the_pcu->bts; uint8_t ts_no = 4; @@ -3141,7 +3167,7 @@ for (i = 1; i <= 9; i++) establish_and_use_egprs_dl_tbf(the_bts, i); - TALLOC_FREE(the_pcu->bts); + TALLOC_FREE(the_pcu); fprintf(stderr, "=== end %s ===\n", __func__); } @@ -3149,6 +3175,7 @@ static void test_packet_access_rej_prr_no_other_tbfs() { + the_pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu->bts = bts_alloc(the_pcu); BTS *the_bts = the_pcu->bts; uint32_t fn = 2654218; @@ -3178,12 +3205,13 @@ ul_tbf->handle_timeout(); - TALLOC_FREE(the_pcu->bts); + TALLOC_FREE(the_pcu); fprintf(stderr, "=== end %s ===\n", __func__); } static void test_packet_access_rej_prr() { + the_pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu->bts = bts_alloc(the_pcu); BTS *the_bts = the_pcu->bts; uint32_t fn = 2654218; @@ -3248,12 +3276,13 @@ OSMO_ASSERT(rc == 0); - TALLOC_FREE(the_pcu->bts); + TALLOC_FREE(the_pcu); fprintf(stderr, "=== end %s ===\n", __func__); } void test_packet_access_rej_epdan() { + the_pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu->bts = bts_alloc(the_pcu); BTS *the_bts = the_pcu->bts; uint32_t tlli = 0xffeeddcc; @@ -3276,7 +3305,7 @@ if (!msgb_eq_data_print(msg, exp, GSM_MACBLOCK_LEN)) fprintf(stderr, "%s test failed!\n", __func__); - TALLOC_FREE(the_pcu->bts); + TALLOC_FREE(the_pcu); fprintf(stderr, "=== end %s ===\n", __func__); } @@ -3296,8 +3325,6 @@ log_parse_category_mask(osmo_stderr_target, "DRLCMAC,1:DRLCMACDATA,3:DRLCMACDL,3:DRLCMACUL,3:" "DRLCMACSCHED,1:DRLCMACMEAS,3:DNS,3:DLBSSGP,3:DPCU,5:" "DL1IF,6:DTBF,1:DTBFUL,1:DTBFDL,1:DLGLOBAL,2:"); - - the_pcu = gprs_pcu_alloc(tall_pcu_ctx); vty_init(&pcu_vty_info); pcu_vty_init(); @@ -3336,8 +3363,6 @@ test_packet_access_rej_prr(); test_packet_access_rej_prr_no_other_tbfs(); - - talloc_free(the_pcu); if (getenv("TALLOC_REPORT_FULL")) talloc_report_full(tall_pcu_ctx, stderr); return EXIT_SUCCESS; -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22189 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I18e2fe7dd1cc5940570252a2a6a106de49d8a7dd Gerrit-Change-Number: 22189 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 14:44:59 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 18 Jan 2021 14:44:59 +0000 Subject: Change in osmo-pcu[master]: Move ws_* fields from BTS to PCU In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22190 ) Change subject: Move ws_* fields from BTS to PCU ...................................................................... Move ws_* fields from BTS to PCU Change-Id: I997bc52f0d924c8f2a0b1d6cf23af98828ad4258 --- M src/bts.cpp M src/bts.h M src/gprs_pcu.c M src/gprs_pcu.h M src/pcu_vty.c M src/tbf.cpp M src/tbf_dl.cpp M src/tbf_ul.cpp M tests/tbf/TbfTest.cpp 9 files changed, 19 insertions(+), 23 deletions(-) Approvals: Jenkins Builder: Verified lynxis lazus: Looks good to me, approved laforge: Looks good to me, but someone else must approve diff --git a/src/bts.cpp b/src/bts.cpp index 9f987ff..450c04e 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -201,10 +201,6 @@ bts->n3105 = 8; bts->si13_is_set = false; - /* TODO: increase them when CRBB decoding is implemented */ - bts->ws_base = 64; - bts->ws_pdch = 0; - bts->llc_codel_interval_msec = LLC_CODEL_USE_DEFAULT; bts->llc_idle_ack_csec = 10; diff --git a/src/bts.h b/src/bts.h index db5f3e8..635c3c7 100644 --- a/src/bts.h +++ b/src/bts.h @@ -102,8 +102,6 @@ uint8_t si13[GSM_MACBLOCK_LEN]; bool si13_is_set; - uint16_t ws_base; - uint16_t ws_pdch; /* increase WS by this value per PDCH */ /* State for dynamic algorithm selection */ int multislot_disabled; diff --git a/src/gprs_pcu.c b/src/gprs_pcu.c index 209fca6..18c5568 100644 --- a/src/gprs_pcu.c +++ b/src/gprs_pcu.c @@ -91,6 +91,9 @@ pcu->vty.mcs_lqual_ranges[8].low = 23; pcu->vty.mcs_lqual_ranges[8].high = 256; pcu->vty.ns_dialect = NS2_DIALECT_IPACCESS; + /* TODO: increase them when CRBB decoding is implemented */ + pcu->vty.ws_base = 64; + pcu->vty.ws_pdch = 0; pcu->T_defs = T_defs_pcu; osmo_tdefs_reset(pcu->T_defs); diff --git a/src/gprs_pcu.h b/src/gprs_pcu.h index 87c8cdf..b4e7c13 100644 --- a/src/gprs_pcu.h +++ b/src/gprs_pcu.h @@ -95,6 +95,8 @@ struct {int16_t low; int16_t high; } cs_lqual_ranges[MAX_GPRS_CS]; struct {int16_t low; int16_t high; } mcs_lqual_ranges[MAX_EDGE_MCS]; enum gprs_ns2_dialect ns_dialect; /* Are we talking Gb with IP-SNS (true) or classic Gb? */ + uint16_t ws_base; + uint16_t ws_pdch; /* increase WS by this value per PDCH */ } vty; struct gsmtap_inst *gsmtap; diff --git a/src/pcu_vty.c b/src/pcu_vty.c index d107548..5e9da45 100644 --- a/src/pcu_vty.c +++ b/src/pcu_vty.c @@ -195,7 +195,7 @@ the_pcu->vty.max_mcs_ul, VTY_NEWLINE); } - vty_out(vty, " window-size %d %d%s", bts->ws_base, bts->ws_pdch, + vty_out(vty, " window-size %d %d%s", the_pcu->vty.ws_base, the_pcu->vty.ws_pdch, VTY_NEWLINE); if (the_pcu->vty.dl_arq_type == EGPRS_ARQ2) @@ -557,13 +557,12 @@ "Base value (b)\n" "Factor for number of PDCH (f)") { - struct gprs_rlcmac_bts *bts = bts_main_data(); uint16_t b = atoi(argv[0]); - bts->ws_base = b; + the_pcu->vty.ws_base = b; if (argc > 1) { uint16_t f = atoi(argv[1]); - bts->ws_pdch = f; + the_pcu->vty.ws_pdch = f; } return CMD_SUCCESS; diff --git a/src/tbf.cpp b/src/tbf.cpp index eb043e5..43c8cbf 100644 --- a/src/tbf.cpp +++ b/src/tbf.cpp @@ -321,7 +321,7 @@ uint8_t num_pdch = pcu_bitcount(slots); return OSMO_MIN((num_pdch != 1) ? (128 * num_pdch) : 192, - OSMO_MAX(64, (bts_data->ws_base + num_pdch * bts_data->ws_pdch) / 32 * 32)); + OSMO_MAX(64, (the_pcu->vty.ws_base + num_pdch * the_pcu->vty.ws_pdch) / 32 * 32)); } int gprs_rlcmac_tbf::update() diff --git a/src/tbf_dl.cpp b/src/tbf_dl.cpp index 024a5f3..653db14 100644 --- a/src/tbf_dl.cpp +++ b/src/tbf_dl.cpp @@ -1494,7 +1494,7 @@ uint16_t ws = egprs_window_size(b, dl_slots()); LOGPTBFDL(this, LOGL_INFO, "setting EGPRS DL window size to %u, base(%u) slots(%u) ws_pdch(%u)\n", - ws, b->ws_base, pcu_bitcount(dl_slots()), b->ws_pdch); + ws, bts->pcu->vty.ws_base, pcu_bitcount(dl_slots()), bts->pcu->vty.ws_pdch); m_window.set_ws(ws); } diff --git a/src/tbf_ul.cpp b/src/tbf_ul.cpp index f8c860c..1f3cb01 100644 --- a/src/tbf_ul.cpp +++ b/src/tbf_ul.cpp @@ -764,7 +764,7 @@ const struct gprs_rlcmac_bts *b = bts->bts_data(); uint16_t ws = egprs_window_size(b, ul_slots()); LOGPTBFUL(this, LOGL_INFO, "setting EGPRS UL window size to %u, base(%u) slots(%u) ws_pdch(%u)\n", - ws, b->ws_base, pcu_bitcount(ul_slots()), b->ws_pdch); + ws, bts->pcu->vty.ws_base, pcu_bitcount(ul_slots()), bts->pcu->vty.ws_pdch); m_window.set_ws(ws); } diff --git a/tests/tbf/TbfTest.cpp b/tests/tbf/TbfTest.cpp index 66e344e..1b85201 100644 --- a/tests/tbf/TbfTest.cpp +++ b/tests/tbf/TbfTest.cpp @@ -1749,7 +1749,6 @@ uint32_t tlli = 0xf1223344; const char *imsi = "0011223344"; uint8_t ms_class = 1; - gprs_rlcmac_bts *bts; uint8_t egprs_ms_class = 1; gprs_rlcmac_ul_tbf *ul_tbf; uint8_t test_data[256]; @@ -1760,9 +1759,8 @@ setup_bts(the_bts, ts_no, 4); the_bts->bts_data()->initial_mcs_dl = 9; - bts = the_bts->bts_data(); - bts->ws_base = 128; - bts->ws_pdch = 64; + the_pcu->vty.ws_base = 128; + the_pcu->vty.ws_pdch = 64; ul_tbf = establish_ul_tbf(the_bts, ts_no, tlli, &fn, qta, ms_class, egprs_ms_class); /* Function to generate URBB with no length */ @@ -1782,8 +1780,8 @@ static_cast(ul_tbf->window())->reset_state(); /* Function to generate CRBB */ - bts->ws_base = 128; - bts->ws_pdch = 64; + the_pcu->vty.ws_base = 128; + the_pcu->vty.ws_pdch = 64; ul_tbf = establish_ul_tbf_two_phase_puan_CRBB(the_bts, ts_no, tlli, &fn, qta, ms_class, egprs_ms_class); @@ -2288,8 +2286,8 @@ setup_bts(the_bts, ts_no); - bts->ws_base = 128; - bts->ws_pdch = 64; + the_pcu->vty.ws_base = 128; + the_pcu->vty.ws_pdch = 64; the_pcu->alloc_algorithm = alloc_algorithm_b; bts->trx[0].pdch[2].enable(); bts->trx[0].pdch[3].enable(); @@ -2336,8 +2334,8 @@ setup_bts(the_bts, ts_no); - bts->ws_base = 128; - bts->ws_pdch = 64; + the_pcu->vty.ws_base = 128; + the_pcu->vty.ws_pdch = 64; the_pcu->alloc_algorithm = alloc_algorithm_b; bts->trx[0].pdch[2].enable(); bts->trx[0].pdch[3].enable(); -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22190 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I997bc52f0d924c8f2a0b1d6cf23af98828ad4258 Gerrit-Change-Number: 22190 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 14:44:59 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 18 Jan 2021 14:44:59 +0000 Subject: Change in osmo-pcu[master]: Move llc_* fields from BTS to PCU In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22191 ) Change subject: Move llc_* fields from BTS to PCU ...................................................................... Move llc_* fields from BTS to PCU Change-Id: Iffb916e53fdf99164ad07cd19e4b35a64136307e --- M src/bts.cpp M src/bts.h M src/gprs_bssgp_pcu.cpp M src/gprs_ms.c M src/gprs_pcu.c M src/gprs_pcu.h M src/llc.cpp M src/pcu_vty.c M src/tbf_dl.cpp 9 files changed, 34 insertions(+), 65 deletions(-) Approvals: Jenkins Builder: Verified lynxis lazus: Looks good to me, approved laforge: Looks good to me, but someone else must approve diff --git a/src/bts.cpp b/src/bts.cpp index 450c04e..92abdbf 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -201,9 +201,6 @@ bts->n3105 = 8; bts->si13_is_set = false; - bts->llc_codel_interval_msec = LLC_CODEL_USE_DEFAULT; - bts->llc_idle_ack_csec = 10; - bts->app_info = NULL; bts->bts = bts_obj; bts->T_defs_bts = T_defs_bts; diff --git a/src/bts.h b/src/bts.h index 635c3c7..bf6e681 100644 --- a/src/bts.h +++ b/src/bts.h @@ -89,10 +89,6 @@ uint16_t mcs_mask; /* Allowed MCS mask from BTS */ uint8_t initial_cs_dl, initial_cs_ul; uint8_t initial_mcs_dl, initial_mcs_ul; - uint16_t force_llc_lifetime; /* overrides lifetime from SGSN */ - uint32_t llc_discard_csec; - uint32_t llc_idle_ack_csec; - uint32_t llc_codel_interval_msec; /* 0=disabled, -1=use default interval */ /* Timer defintions */ struct osmo_tdef *T_defs_bts; /* timers controlled by BTS, received through PCUIF */ uint8_t n3101; diff --git a/src/gprs_bssgp_pcu.cpp b/src/gprs_bssgp_pcu.cpp index c1a7a7d..1596d67 100644 --- a/src/gprs_bssgp_pcu.cpp +++ b/src/gprs_bssgp_pcu.cpp @@ -676,7 +676,7 @@ uint16_t bucket_time = the_pcu->vty.fc_bucket_time; if (bucket_time == 0) - bucket_time = bts->force_llc_lifetime; + bucket_time = the_pcu->vty.force_llc_lifetime; if (bucket_time == 0xffff) bucket_size = FC_MAX_BUCKET_SIZE; diff --git a/src/gprs_ms.c b/src/gprs_ms.c index 291f0e8..9d303d6 100644 --- a/src/gprs_ms.c +++ b/src/gprs_ms.c @@ -121,7 +121,7 @@ ms_set_mode(ms, GPRS); if (ms->bts) - codel_interval = bts_data(ms->bts)->llc_codel_interval_msec; + codel_interval = the_pcu->vty.llc_codel_interval_msec; if (codel_interval) { if (codel_interval == LLC_CODEL_USE_DEFAULT) diff --git a/src/gprs_pcu.c b/src/gprs_pcu.c index 18c5568..013c026 100644 --- a/src/gprs_pcu.c +++ b/src/gprs_pcu.c @@ -94,6 +94,8 @@ /* TODO: increase them when CRBB decoding is implemented */ pcu->vty.ws_base = 64; pcu->vty.ws_pdch = 0; + pcu->vty.llc_codel_interval_msec = LLC_CODEL_USE_DEFAULT; + pcu->vty.llc_idle_ack_csec = 10; pcu->T_defs = T_defs_pcu; osmo_tdefs_reset(pcu->T_defs); diff --git a/src/gprs_pcu.h b/src/gprs_pcu.h index b4e7c13..8fc15dc 100644 --- a/src/gprs_pcu.h +++ b/src/gprs_pcu.h @@ -97,6 +97,10 @@ enum gprs_ns2_dialect ns_dialect; /* Are we talking Gb with IP-SNS (true) or classic Gb? */ uint16_t ws_base; uint16_t ws_pdch; /* increase WS by this value per PDCH */ + uint16_t force_llc_lifetime; /* overrides lifetime from SGSN */ + uint32_t llc_discard_csec; + uint32_t llc_idle_ack_csec; + uint32_t llc_codel_interval_msec; /* 0=disabled, -1=use default interval */ } vty; struct gsmtap_inst *gsmtap; diff --git a/src/llc.cpp b/src/llc.cpp index d1122f5..51cb15a 100644 --- a/src/llc.cpp +++ b/src/llc.cpp @@ -224,8 +224,8 @@ void gprs_llc_queue::calc_pdu_lifetime(BTS *bts, const uint16_t pdu_delay_csec, struct timespec *tv) { uint16_t delay_csec; - if (bts->bts_data()->force_llc_lifetime) - delay_csec = bts->bts_data()->force_llc_lifetime; + if (bts->pcu->vty.force_llc_lifetime) + delay_csec = bts->pcu->vty.force_llc_lifetime; else delay_csec = pdu_delay_csec; diff --git a/src/pcu_vty.c b/src/pcu_vty.c index 5e9da45..0be914b 100644 --- a/src/pcu_vty.c +++ b/src/pcu_vty.c @@ -201,24 +201,24 @@ if (the_pcu->vty.dl_arq_type == EGPRS_ARQ2) vty_out(vty, " egprs dl arq-type arq2%s", VTY_NEWLINE); - if (bts->force_llc_lifetime == 0xffff) + if (the_pcu->vty.force_llc_lifetime == 0xffff) vty_out(vty, " queue lifetime infinite%s", VTY_NEWLINE); - else if (bts->force_llc_lifetime) - vty_out(vty, " queue lifetime %d%s", bts->force_llc_lifetime, + else if (the_pcu->vty.force_llc_lifetime) + vty_out(vty, " queue lifetime %d%s", the_pcu->vty.force_llc_lifetime, VTY_NEWLINE); - if (bts->llc_discard_csec) - vty_out(vty, " queue hysteresis %d%s", bts->llc_discard_csec, + if (the_pcu->vty.llc_discard_csec) + vty_out(vty, " queue hysteresis %d%s", the_pcu->vty.llc_discard_csec, VTY_NEWLINE); - if (bts->llc_idle_ack_csec) - vty_out(vty, " queue idle-ack-delay %d%s", bts->llc_idle_ack_csec, + if (the_pcu->vty.llc_idle_ack_csec) + vty_out(vty, " queue idle-ack-delay %d%s", the_pcu->vty.llc_idle_ack_csec, VTY_NEWLINE); - if (bts->llc_codel_interval_msec == LLC_CODEL_USE_DEFAULT) + if (the_pcu->vty.llc_codel_interval_msec == LLC_CODEL_USE_DEFAULT) vty_out(vty, " queue codel%s", VTY_NEWLINE); - else if (bts->llc_codel_interval_msec == LLC_CODEL_DISABLE) + else if (the_pcu->vty.llc_codel_interval_msec == LLC_CODEL_DISABLE) vty_out(vty, " no queue codel%s", VTY_NEWLINE); else vty_out(vty, " queue codel interval %d%s", - bts->llc_codel_interval_msec/10, VTY_NEWLINE); + the_pcu->vty.llc_codel_interval_msec/10, VTY_NEWLINE); if (the_pcu->alloc_algorithm == alloc_algorithm_a) vty_out(vty, " alloc-algorithm a%s", VTY_NEWLINE); @@ -579,11 +579,8 @@ "queue lifetime <1-65534>", QUEUE_STR LIFETIME_STR "Lifetime in centi-seconds") { - struct gprs_rlcmac_bts *bts = bts_main_data(); uint16_t csec = atoi(argv[0]); - - bts->force_llc_lifetime = csec; - + the_pcu->vty.force_llc_lifetime = csec; return CMD_SUCCESS; } @@ -593,10 +590,7 @@ "queue lifetime infinite", QUEUE_STR LIFETIME_STR "Infinite lifetime") { - struct gprs_rlcmac_bts *bts = bts_main_data(); - - bts->force_llc_lifetime = 0xffff; - + the_pcu->vty.force_llc_lifetime = 0xffff; return CMD_SUCCESS; } @@ -607,10 +601,7 @@ NO_STR QUEUE_STR "Disable lifetime limit of LLC frame (use value given " "by SGSN)\n") { - struct gprs_rlcmac_bts *bts = bts_main_data(); - - bts->force_llc_lifetime = 0; - + the_pcu->vty.force_llc_lifetime = 0; return CMD_SUCCESS; } @@ -623,11 +614,8 @@ "queue hysteresis <1-65535>", QUEUE_STR QUEUE_HYSTERESIS_STR "Hysteresis in centi-seconds") { - struct gprs_rlcmac_bts *bts = bts_main_data(); uint16_t csec = atoi(argv[0]); - - bts->llc_discard_csec = csec; - + the_pcu->vty.llc_discard_csec = csec; return CMD_SUCCESS; } @@ -637,10 +625,7 @@ "no queue hysteresis", NO_STR QUEUE_STR QUEUE_HYSTERESIS_STR) { - struct gprs_rlcmac_bts *bts = bts_main_data(); - - bts->llc_discard_csec = 0; - + the_pcu->vty.llc_discard_csec = 0; return CMD_SUCCESS; } @@ -651,10 +636,7 @@ "queue codel", QUEUE_STR QUEUE_CODEL_STR) { - struct gprs_rlcmac_bts *bts = bts_main_data(); - - bts->llc_codel_interval_msec = LLC_CODEL_USE_DEFAULT; - + the_pcu->vty.llc_codel_interval_msec = LLC_CODEL_USE_DEFAULT; return CMD_SUCCESS; } @@ -664,11 +646,8 @@ "queue codel interval <1-1000>", QUEUE_STR QUEUE_CODEL_STR "Specify interval\n" "Interval in centi-seconds") { - struct gprs_rlcmac_bts *bts = bts_main_data(); uint16_t csec = atoi(argv[0]); - - bts->llc_codel_interval_msec = 10*csec; - + the_pcu->vty.llc_codel_interval_msec = 10*csec; return CMD_SUCCESS; } @@ -678,10 +657,7 @@ "no queue codel", NO_STR QUEUE_STR QUEUE_CODEL_STR) { - struct gprs_rlcmac_bts *bts = bts_main_data(); - - bts->llc_codel_interval_msec = LLC_CODEL_DISABLE; - + the_pcu->vty.llc_codel_interval_msec = LLC_CODEL_DISABLE; return CMD_SUCCESS; } @@ -694,11 +670,8 @@ QUEUE_STR QUEUE_IDLE_ACK_STR "Idle ACK delay in centi-seconds", CMD_ATTR_IMMEDIATE) { - struct gprs_rlcmac_bts *bts = bts_main_data(); uint16_t csec = atoi(argv[0]); - - bts->llc_idle_ack_csec = csec; - + the_pcu->vty.llc_idle_ack_csec = csec; return CMD_SUCCESS; } @@ -708,10 +681,7 @@ NO_STR QUEUE_STR QUEUE_IDLE_ACK_STR, CMD_ATTR_IMMEDIATE) { - struct gprs_rlcmac_bts *bts = bts_main_data(); - - bts->llc_idle_ack_csec = 0; - + the_pcu->vty.llc_idle_ack_csec = 0; return CMD_SUCCESS; } diff --git a/src/tbf_dl.cpp b/src/tbf_dl.cpp index 653db14..ab34ea1 100644 --- a/src/tbf_dl.cpp +++ b/src/tbf_dl.cpp @@ -202,9 +202,9 @@ void gprs_rlcmac_dl_tbf::start_llc_timer() { - if (bts_data()->llc_idle_ack_csec > 0) { + if (the_pcu->vty.llc_idle_ack_csec > 0) { struct timespec tv; - csecs_to_timespec(bts_data()->llc_idle_ack_csec, &tv); + csecs_to_timespec(the_pcu->vty.llc_idle_ack_csec, &tv); osmo_timer_schedule(&m_llc_timer, tv.tv_sec, tv.tv_nsec / 1000); } } @@ -348,8 +348,8 @@ const unsigned keep_small_thresh = 60; const MetaInfo *info; - if (bts_data()->llc_discard_csec) - csecs_to_timespec(bts_data()->llc_discard_csec, &hyst_delta); + if (the_pcu->vty.llc_discard_csec) + csecs_to_timespec(the_pcu->vty.llc_discard_csec, &hyst_delta); osmo_clock_gettime(CLOCK_MONOTONIC, &tv_now); timespecadd(&tv_now, &hyst_delta, &tv_now2); -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22191 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Iffb916e53fdf99164ad07cd19e4b35a64136307e Gerrit-Change-Number: 22191 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Mon Jan 18 15:02:01 2021 From: admin at opensuse.org (OBS Notification) Date: Mon, 18 Jan 2021 15:02:01 +0000 Subject: Build failure of network:osmocom:nightly/libosmocore in openSUSE_Factory_ARM/aarch64 In-Reply-To: References: Message-ID: <6005a2fcd19bb_22be2aeefb5405f0131229@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libosmocore/openSUSE_Factory_ARM/aarch64 Package network:osmocom:nightly/libosmocore failed to build in openSUSE_Factory_ARM/aarch64 Check out the package for editing: osc checkout network:osmocom:nightly libosmocore Last lines of build log: [ 227s] Your package starts with 'lib' as part of its name, but does not provide any [ 227s] libraries. It must not be called a lib-package then. Give it a more sensible [ 227s] name. [ 227s] [ 227s] libosmocodec0.aarch64: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 227s] libosmocoding0.aarch64: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 227s] libosmocore16.aarch64: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 227s] libosmoctrl0.aarch64: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 227s] libosmogb11.aarch64: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 227s] libosmogsm15.aarch64: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 227s] libosmosim2.aarch64: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 227s] libosmousb0.aarch64: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 227s] libosmovty4.aarch64: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 227s] Your shared library package requires a fixed version of another package. The [ 227s] intention of the Shared Library Policy is to allow parallel installation of [ 227s] multiple versions of the same shared library, hard dependencies likely make [ 227s] that impossible. Please remove this dependency and instead move it to the [ 227s] runtime uses of your library. [ 227s] [ 227s] (none): E: badness 3960 exceeds threshold 1000, aborting. [ 227s] 20 packages and 0 specfiles checked; 9 errors, 22 warnings. [ 227s] [ 227s] ### VM INTERACTION START ### [ 230s] [ 214.119089] sysrq: Power Off [ 230s] [ 214.144102] reboot: Power down [ 230s] ### VM INTERACTION END ### [ 230s] [ 230s] obs-arm-8 failed "build libosmocore.spec" at Mon Jan 18 15:01:57 UTC 2021. [ 230s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Mon Jan 18 15:09:22 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 18 Jan 2021 15:09:22 +0000 Subject: Change in osmo-ci[master]: OBS: make rpmlint shlib-fixed-dependency non-fatal In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22281 ) Change subject: OBS: make rpmlint shlib-fixed-dependency non-fatal ...................................................................... Patch Set 1: Code-Review+1 not nice, but well, it's only for OBS -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22281 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I560b4adf80b5785d396a17afefa590559ad5ca5a Gerrit-Change-Number: 22281 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 15:09:22 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 15:11:50 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 18 Jan 2021 15:11:50 +0000 Subject: Change in libosmocore[master]: ns2: delay NS_AFF_CAUSE_RECOVERY until NS-VC for data + sig are unblo... In-Reply-To: References: Message-ID: Hello Jenkins Builder, daniel, lynxis lazus, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22282 to look at the new patch set (#3). Change subject: ns2: delay NS_AFF_CAUSE_RECOVERY until NS-VC for data + sig are unblocked ...................................................................... ns2: delay NS_AFF_CAUSE_RECOVERY until NS-VC for data + sig are unblocked Right now we end up in situations where only a NS-VC for data (BVCI != 0) becomes unblocked, but the BSSGP and/or user application code is notified that the NSE has recovered. In the case of osmo-gbproxy, this will trigger a BVC-RESET on the BVCI=0, but that obviously only works if the sig_weight > 0... Closes: OS#4956 Change-Id: I933ee3969c052394d61ec6cf8c7c21d17957d9ab --- M src/gb/gprs_ns2.c M src/gb/gprs_ns2_internal.h 2 files changed, 17 insertions(+), 16 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/82/22282/3 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22282 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I933ee3969c052394d61ec6cf8c7c21d17957d9ab Gerrit-Change-Number: 22282 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 15:32:22 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 18 Jan 2021 15:32:22 +0000 Subject: Change in osmo-pcu[master]: Fix configuration mess of initial_cs/mcs between PCUIF and VTY In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22195 ) Change subject: Fix configuration mess of initial_cs/mcs between PCUIF and VTY ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22195 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I80a6ba401f9c0c85bdf6e0cc99a9d2008d31e1b0 Gerrit-Change-Number: 22195 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-CC: lynxis lazus Gerrit-Comment-Date: Mon, 18 Jan 2021 15:32:22 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 15:39:53 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 18 Jan 2021 15:39:53 +0000 Subject: Change in osmo-bsc[master]: handover_tests.sh: update stdout/stderr only on capital -U arg In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22260 ) Change subject: handover_tests.sh: update stdout/stderr only on capital -U arg ...................................................................... Patch Set 1: Code-Review+2 (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/22260/1/tests/handover/handover_tests.sh File tests/handover/handover_tests.sh: https://gerrit.osmocom.org/c/osmo-bsc/+/22260/1/tests/handover/handover_tests.sh at 53 PS1, Line 53: if [ -z "$failed" -a "x$update" != "x" ]; then > Ah I see now !(-U or -u) param cases are handled as "unknown argument", fine thanks. (Could also be written as [ -z "$failed" -a -n "$update" ] for clarity) -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22260 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Id280a8d084fd84b0b7486a5c8022e5b7a26f6095 Gerrit-Change-Number: 22260 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 15:39:53 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Comment-In-Reply-To: neels Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 15:42:00 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 18 Jan 2021 15:42:00 +0000 Subject: Change in osmo-bsc[master]: fix for test_dyn_ts_favor_moving_half_used_tch_h.ho_vty In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22261 ) Change subject: fix for test_dyn_ts_favor_moving_half_used_tch_h.ho_vty ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22261 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I492ea095cf3e3c3fd186c889166c4ed93ab3a007 Gerrit-Change-Number: 22261 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 15:42:00 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 15:42:32 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 18 Jan 2021 15:42:32 +0000 Subject: Change in osmo-bsc[master]: cosmetic: in a ho test, use '*' instead of pdch In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22262 ) Change subject: cosmetic: in a ho test, use '*' instead of pdch ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22262 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I1a12518d85ed891c491723e7f03f5bdd4fad980f Gerrit-Change-Number: 22262 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 15:42:32 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 15:47:11 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 18 Jan 2021 15:47:11 +0000 Subject: Change in osmo-ci[master]: OBS: make rpmlint shlib-fixed-dependency non-fatal In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22281 ) Change subject: OBS: make rpmlint shlib-fixed-dependency non-fatal ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22281 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I560b4adf80b5785d396a17afefa590559ad5ca5a Gerrit-Change-Number: 22281 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 15:47:11 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 15:53:44 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 18 Jan 2021 15:53:44 +0000 Subject: Change in osmo-ci[master]: OBS: make rpmlint shlib-fixed-dependency non-fatal In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22281 ) Change subject: OBS: make rpmlint shlib-fixed-dependency non-fatal ...................................................................... OBS: make rpmlint shlib-fixed-dependency non-fatal Create a rpmlint config, which makes the shlib-fixed-dependency check non-fatal, as it caused builds for openSUSE_Leap_15.2 to fail. The check is supposed to warn about libraries depending on specific versions of other packages. However, for the nightly and next packages, this is exactly what we want to do to ensure that users will always upgrade all Osmocom packages to the builds from a specific day, and not mix them. Messages from the check: [ 307s] libosmocodec0.armv7hl: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 ... [ 307s] libosmovty4.armv7hl: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 307s] Your shared library package requires a fixed version of another package. The [ 307s] intention of the Shared Library Policy is to allow parallel installation of [ 307s] multiple versions of the same shared library, hard dependencies likely make [ 307s] that impossible. Please remove this dependency and instead move it to the [ 307s] runtime uses of your library. [ 307s] [ 307s] (none): E: badness 3960 exceeds threshold 1000, aborting. Related: OS#4733 Related: https://en.opensuse.org/openSUSE:Packaging_checks#Disarming_Fatal_Errors Change-Id: I560b4adf80b5785d396a17afefa590559ad5ca5a --- M scripts/common-obs.sh 1 file changed, 15 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve pespin: Looks good to me, approved osmith: Verified diff --git a/scripts/common-obs.sh b/scripts/common-obs.sh index 40cacf2..ace0e81 100644 --- a/scripts/common-obs.sh +++ b/scripts/common-obs.sh @@ -75,6 +75,21 @@ "%package"*) echo "Requires: $depend" ;; + # Build recipe + "%build"*) + if [ -n "$dependver" ]; then + cat << EOF +# HACK: don't let rpmlint abort the build when it finds that a library depends +# on a package with a specific version. The path used here is listed in: +# https://build.opensuse.org/package/view_file/devel:openSUSE:Factory:rpmlint/rpmlint-mini/rpmlint-mini.config?expand=1 +# Instead of writing to the SOURCES dir, we could upload osmocom-rpmlintrc as +# additional source for each package. But that's way more effort, not worth it. +echo "setBadness('shlib-fixed-dependency', 0)" \\ + > /home/abuild/rpmbuild/SOURCES/osmocom-rpmlintrc + +EOF + fi + ;; esac done < "$spec" ) > "$spec.new" -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22281 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I560b4adf80b5785d396a17afefa590559ad5ca5a Gerrit-Change-Number: 22281 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 16:15:48 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 18 Jan 2021 16:15:48 +0000 Subject: Change in osmo-ci[master]: OBS: use _sourcedir to write rpmlintrc References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/22283 ) Change subject: OBS: use _sourcedir to write rpmlintrc ...................................................................... OBS: use _sourcedir to write rpmlintrc Change-Id: I16e1b3fe297ab516ceff4742ff39633480f3720e --- M scripts/common-obs.sh 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/83/22283/1 diff --git a/scripts/common-obs.sh b/scripts/common-obs.sh index ace0e81..366d72e 100644 --- a/scripts/common-obs.sh +++ b/scripts/common-obs.sh @@ -85,7 +85,7 @@ # Instead of writing to the SOURCES dir, we could upload osmocom-rpmlintrc as # additional source for each package. But that's way more effort, not worth it. echo "setBadness('shlib-fixed-dependency', 0)" \\ - > /home/abuild/rpmbuild/SOURCES/osmocom-rpmlintrc + > "%{_sourcedir}/osmocom-rpmlintrc" EOF fi -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22283 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I16e1b3fe297ab516ceff4742ff39633480f3720e Gerrit-Change-Number: 22283 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 16:19:37 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 18 Jan 2021 16:19:37 +0000 Subject: Change in osmo-ci[master]: OBS: use _sourcedir to write rpmlintrc In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22283 ) Change subject: OBS: use _sourcedir to write rpmlintrc ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22283 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I16e1b3fe297ab516ceff4742ff39633480f3720e Gerrit-Change-Number: 22283 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: pespin Gerrit-Reviewer: roox Gerrit-Comment-Date: Mon, 18 Jan 2021 16:19:37 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 16:25:23 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 18 Jan 2021 16:25:23 +0000 Subject: Change in libosmocore[master]: ns2: delay NS_AFF_CAUSE_RECOVERY until NS-VC for data + sig are unblo... In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22282 ) Change subject: ns2: delay NS_AFF_CAUSE_RECOVERY until NS-VC for data + sig are unblocked ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22282 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I933ee3969c052394d61ec6cf8c7c21d17957d9ab Gerrit-Change-Number: 22282 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Mon, 18 Jan 2021 16:25:23 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 16:27:17 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 18 Jan 2021 16:27:17 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Use C-style comments References: Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22284 ) Change subject: gbproxy: Use C-style comments ...................................................................... gbproxy: Use C-style comments Change-Id: Ia3d27ef79a3370147395e7441149fd1231a760d5 --- M src/gbproxy/gb_proxy.c M src/gbproxy/gb_proxy_peer.c 2 files changed, 7 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/84/22284/1 diff --git a/src/gbproxy/gb_proxy.c b/src/gbproxy/gb_proxy.c index 44a9008..da232e2 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -417,9 +417,9 @@ tlli = osmo_load32be(TLVP_VAL(&tp, BSSGP_IE_TMSI)); rc = gbprox_bss2sgsn_tlli(bss_bvc->cell, msg, &tlli, false); } else if (TLVP_PRESENT(&tp, BSSGP_IE_IMSI)) { - // FIXME: Use the IMSI as selector? + /* FIXME: Use the IMSI as selector? */ rc = gbprox_bss2sgsn_tlli(bss_bvc->cell, msg, NULL, false); - //rc = gbprox_bss2sgsn_hashed(bss_bvc->cell, msg, NULL); + /* rc = gbprox_bss2sgsn_hashed(bss_bvc->cell, msg, NULL); */ } else LOGPBVC(bss_bvc, LOGL_ERROR, "Rx RADIO-STATUS without any of the conditional IEs\n"); break; diff --git a/src/gbproxy/gb_proxy_peer.c b/src/gbproxy/gb_proxy_peer.c index 1d9352d..7e94331 100644 --- a/src/gbproxy/gb_proxy_peer.c +++ b/src/gbproxy/gb_proxy_peer.c @@ -609,7 +609,7 @@ LOGPSGSN_CAT(sgsn, DOBJ, LOGL_INFO, "SGSN Destroying\n"); llist_del(&sgsn->list); - // talloc will free ->name and ->pool.nri_ranges + /* talloc will free ->name and ->pool.nri_ranges */ talloc_free(sgsn); } @@ -728,23 +728,23 @@ return sgsn; } - // TODO: We should keep track of count in cfg + /* TODO: We should keep track of count in cfg */ num_sgsns = llist_count(&cfg->sgsns); if (num_sgsns == 0) return NULL; - // FIXME: 256 SGSNs ought to be enough for everyone + /* FIXME: 256 SGSNs ought to be enough for everyone */ index = hash_32(tlli, 8) % num_sgsns; - // Get the first enabled SGSN after index + /* Get the first enabled SGSN after index */ llist_for_each_entry(sgsn, &cfg->sgsns, list) { if (i >= index && sgsn->pool.allow_attach) { return sgsn; } i++; } - // Start again from the beginning + /* Start again from the beginning */ i = 0; llist_for_each_entry(sgsn, &cfg->sgsns, list) { if (i >= index) { -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22284 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ia3d27ef79a3370147395e7441149fd1231a760d5 Gerrit-Change-Number: 22284 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 16:27:18 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 18 Jan 2021 16:27:18 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Move helper function to a more logical place References: Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22285 ) Change subject: gbproxy: Move helper function to a more logical place ...................................................................... gbproxy: Move helper function to a more logical place Change-Id: I3b39991fe2441334aaa9dda6c33c0b7b4484e455 --- M src/gbproxy/gb_proxy_peer.c 1 file changed, 11 insertions(+), 11 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/85/22285/1 diff --git a/src/gbproxy/gb_proxy_peer.c b/src/gbproxy/gb_proxy_peer.c index 7e94331..7d6ba86 100644 --- a/src/gbproxy/gb_proxy_peer.c +++ b/src/gbproxy/gb_proxy_peer.c @@ -194,17 +194,6 @@ return NULL; } -static inline struct gbproxy_tlli_cache_entry *_get_tlli_entry(struct gbproxy_config *cfg, uint32_t tlli) -{ - struct gbproxy_tlli_cache_entry *cache_entry; - - hash_for_each_possible(cfg->tlli_cache.entries, cache_entry, list, tlli) { - if (cache_entry->tlli == tlli) - return cache_entry; - } - return NULL; -} - struct gbproxy_cell *gbproxy_cell_by_bvci_or_new(struct gbproxy_config *cfg, uint16_t bvci) { struct gbproxy_cell *cell; @@ -263,6 +252,17 @@ * TLLI cache ***********************************************************************/ +static inline struct gbproxy_tlli_cache_entry *_get_tlli_entry(struct gbproxy_config *cfg, uint32_t tlli) +{ + struct gbproxy_tlli_cache_entry *cache_entry; + + hash_for_each_possible(cfg->tlli_cache.entries, cache_entry, list, tlli) { + if (cache_entry->tlli == tlli) + return cache_entry; + } + return NULL; +} + void gbproxy_tlli_cache_update(struct gbproxy_nse *nse, uint32_t tlli) { struct gbproxy_config *cfg = nse->cfg; -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22285 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I3b39991fe2441334aaa9dda6c33c0b7b4484e455 Gerrit-Change-Number: 22285 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 16:27:18 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 18 Jan 2021 16:27:18 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Remove unused variable assignment References: Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22286 ) Change subject: gbproxy: Remove unused variable assignment ...................................................................... gbproxy: Remove unused variable assignment Change-Id: I79684e0b27211d756912a63be5cae890ea44be82 --- M src/gbproxy/gb_proxy.c 1 file changed, 0 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/86/22286/1 diff --git a/src/gbproxy/gb_proxy.c b/src/gbproxy/gb_proxy.c index da232e2..1ce2716 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -868,7 +868,6 @@ switch (pdu_type) { case BSSGP_PDUT_BVC_RESET: /* resolve or create gbproxy_bvc + handlei n BVC-FSM */ - ptp_bvci = ntohs(tlvp_val16_unal(&tp, BSSGP_IE_BVCI)); return rx_bvc_reset_from_bss(nse, msg, &tp); case BSSGP_PDUT_BVC_RESET_ACK: ptp_bvci = ntohs(tlvp_val16_unal(&tp, BSSGP_IE_BVCI)); -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22286 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I79684e0b27211d756912a63be5cae890ea44be82 Gerrit-Change-Number: 22286 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 16:27:19 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 18 Jan 2021 16:27:19 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Adjust some log levels/messages References: Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22287 ) Change subject: gbproxy: Adjust some log levels/messages ...................................................................... gbproxy: Adjust some log levels/messages Related: OS#4472 Change-Id: Iea31fd5791b3b892c83f74145c26a485fffe8dc4 --- M src/gbproxy/gb_proxy.c 1 file changed, 4 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/87/22287/1 diff --git a/src/gbproxy/gb_proxy.c b/src/gbproxy/gb_proxy.c index 1ce2716..11cc87a 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -218,9 +218,8 @@ if (!tlli) { sgsn = llist_first_entry(&cfg->sgsns, struct gbproxy_sgsn, list); - if (!sgsn) { + if (!sgsn) return NULL; - } LOGPSGSN(sgsn, LOGL_INFO, "Could not get TLLI, using first SGSN\n"); return sgsn; } @@ -228,9 +227,8 @@ if (cfg->pool.nri_bitlen == 0) { /* Pooling is disabled */ sgsn = llist_first_entry(&cfg->sgsns, struct gbproxy_sgsn, list); - if (!sgsn) { + if (!sgsn) return NULL; - } LOGPSGSN(sgsn, LOGL_INFO, "Pooling disabled, using first configured SGSN\n"); } else { @@ -298,6 +296,8 @@ if (sgsn->nse != sgsn_bvc->nse) continue; + DEBUGP(DGPRS, "CELL(%05u) using SGSN %s at NSE(%05u)\n", cell->bvci, sgsn->name, sgsn->nse->nsei); + return sgsn_bvc; } -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22287 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Iea31fd5791b3b892c83f74145c26a485fffe8dc4 Gerrit-Change-Number: 22287 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 16:27:19 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 18 Jan 2021 16:27:19 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Fix VTY cmd name References: Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22288 ) Change subject: gbproxy: Fix VTY cmd name ...................................................................... gbproxy: Fix VTY cmd name Change-Id: I5bb5f7cf93779a7a07965f2f35fdb59a7a2b731b --- M src/gbproxy/gb_proxy_vty.c 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/88/22288/1 diff --git a/src/gbproxy/gb_proxy_vty.c b/src/gbproxy/gb_proxy_vty.c index fb9e87a..537041e 100644 --- a/src/gbproxy/gb_proxy_vty.c +++ b/src/gbproxy/gb_proxy_vty.c @@ -363,7 +363,7 @@ return CMD_SUCCESS; } -DEFUN(cfg_sgsn_show_nri_all, show_nri_all_cmd, +DEFUN(sgsn_show_nri_all, show_nri_all_cmd, "show nri all", SHOW_STR NRI_STR "Show all SGSNs\n") { @@ -375,7 +375,7 @@ return CMD_SUCCESS; } -DEFUN(show_nri, show_nri_nsei_cmd, +DEFUN(show_nri_nsei, show_nri_nsei_cmd, "show nri nsei <0-65535>", SHOW_STR NRI_STR "Identify SGSN by NSEI\n" "NSEI of the SGSN\n") -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22288 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I5bb5f7cf93779a7a07965f2f35fdb59a7a2b731b Gerrit-Change-Number: 22288 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 16:27:20 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 18 Jan 2021 16:27:20 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Define and use help string for gbproxy References: Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22289 ) Change subject: gbproxy: Define and use help string for gbproxy ...................................................................... gbproxy: Define and use help string for gbproxy Change-Id: Ic9336c83147903e5af6622179f9394130f969a77 --- M src/gbproxy/gb_proxy_vty.c 1 file changed, 4 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/89/22289/1 diff --git a/src/gbproxy/gb_proxy_vty.c b/src/gbproxy/gb_proxy_vty.c index 537041e..7e9e18d 100644 --- a/src/gbproxy/gb_proxy_vty.c +++ b/src/gbproxy/gb_proxy_vty.c @@ -48,6 +48,7 @@ #include #include +#define GBPROXY_STR "Display information about the Gb proxy\n" #define NRI_STR "Mapping of Network Resource Indicators to this SGSN, for SGSN pooling\n" #define NULL_NRI_STR "Define NULL-NRI values that cause re-assignment of an MS to a different SGSN, for SGSN pooling.\n" #define NRI_FIRST_LAST_STR "First value of the NRI value range, should not surpass the configured 'nri bitlen'.\n" \ @@ -499,7 +500,7 @@ } DEFUN(show_gbproxy_bvc, show_gbproxy_bvc_cmd, "show gbproxy bvc (bss|sgsn) [stats]", - SHOW_STR "Display information about the Gb proxy\n" + SHOW_STR GBPROXY_STR "Show BSSGP Virtual Connections\n" "Display BSS-side BVCs\n" "Display SGSN-side BVCs\n" @@ -523,7 +524,7 @@ } DEFUN(show_gbproxy_cell, show_gbproxy_cell_cmd, "show gbproxy cell [stats]", - SHOW_STR "Display information about the Gb proxy\n" + SHOW_STR GBPROXY_STR "Show GPRS Cell Information\n" "Show statistics\n") { @@ -538,7 +539,7 @@ } DEFUN(show_gbproxy_links, show_gbproxy_links_cmd, "show gbproxy links", - SHOW_STR "Display information about the Gb proxy\n" "Show logical links\n") + SHOW_STR GBPROXY_STR "Show logical links\n") { struct gbproxy_nse *nse; int i, j; -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22289 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ic9336c83147903e5af6622179f9394130f969a77 Gerrit-Change-Number: 22289 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 16:27:20 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 18 Jan 2021 16:27:20 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Add VTY commands to query the TLLI/IMSI cache References: Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22290 ) Change subject: gbproxy: Add VTY commands to query the TLLI/IMSI cache ...................................................................... gbproxy: Add VTY commands to query the TLLI/IMSI cache OsmoGbProxy# show gbproxy tlli-cache TLLI cache timeout 10s TLLI c2200024 -> NSE(02001/BSS) valid 10s TLLI cache contains 1 entries OsmoGbProxy# show gbproxy imsi-cache IMSI cache timeout 10s IMSI 262420000001000 -> NSE(00102/SGSN): valid 5s IMSI 262420000000000 -> NSE(00101/SGSN): valid 3s TLLI cache contains 2 entries Change-Id: I03f1050573de9b241eb4fa82460c434155c15c6a Related: OS#4951, OS#4472 --- M src/gbproxy/gb_proxy_vty.c 1 file changed, 51 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/90/22290/1 diff --git a/src/gbproxy/gb_proxy_vty.c b/src/gbproxy/gb_proxy_vty.c index 7e9e18d..07db4a2 100644 --- a/src/gbproxy/gb_proxy_vty.c +++ b/src/gbproxy/gb_proxy_vty.c @@ -553,6 +553,55 @@ return CMD_SUCCESS; } +DEFUN(show_gbproxy_tlli_cache, show_gbproxy_tlli_cache_cmd, + "show gbproxy tlli-cache", + SHOW_STR GBPROXY_STR "Show TLLI cache entries\n") +{ + struct gbproxy_tlli_cache_entry *entry; + struct timespec now; + time_t expiry; + int i, count = 0; + + osmo_clock_gettime(CLOCK_MONOTONIC, &now); + expiry = now.tv_sec - g_cfg->tlli_cache.timeout; + + vty_out(vty, "TLLI cache timeout %us%s", g_cfg->tlli_cache.timeout, VTY_NEWLINE); + hash_for_each(g_cfg->tlli_cache.entries, i, entry, list) { + time_t valid = entry->tstamp - expiry; + struct gbproxy_nse *nse = entry->nse; + + vty_out(vty, " TLLI %08x -> NSE(%05u/%s) valid %lds%s", entry->tlli, nse->nsei, + nse->sgsn_facing ? "SGSN" : "BSS", valid, VTY_NEWLINE); + count++; + } + vty_out(vty, "TLLI cache contains %u entries%s", count, VTY_NEWLINE); + return CMD_SUCCESS; +} + +DEFUN(show_gbproxy_imsi_cache, show_gbproxy_imsi_cache_cmd, + "show gbproxy imsi-cache", + SHOW_STR GBPROXY_STR "Show IMSI cache entries\n") +{ + struct gbproxy_imsi_cache_entry *entry; + struct timespec now; + time_t expiry; + int i, count = 0; + + osmo_clock_gettime(CLOCK_MONOTONIC, &now); + expiry = now.tv_sec - g_cfg->imsi_cache.timeout; + + vty_out(vty, "IMSI cache timeout %us%s", g_cfg->imsi_cache.timeout, VTY_NEWLINE); + hash_for_each(g_cfg->imsi_cache.entries, i, entry, list) { + time_t valid = entry->tstamp - expiry; + struct gbproxy_nse *nse = entry->nse; + vty_out(vty, " IMSI %s -> NSE(%05u/%s): valid %lds%s", entry->imsi, nse->nsei, + nse->sgsn_facing ? "SGSN" : "BSS", valid, VTY_NEWLINE); + count++; + } + vty_out(vty, "TLLI cache contains %u entries%s", count, VTY_NEWLINE); + return CMD_SUCCESS; +} + DEFUN(delete_gb_bvci, delete_gb_bvci_cmd, "delete-gbproxy-peer <0-65534> bvci <2-65534>", "Delete a GBProxy bvc by NSEI and optionally BVCI\n" @@ -684,6 +733,8 @@ install_element_ve(&show_gbproxy_bvc_cmd); install_element_ve(&show_gbproxy_cell_cmd); install_element_ve(&show_gbproxy_links_cmd); + install_element_ve(&show_gbproxy_tlli_cache_cmd); + install_element_ve(&show_gbproxy_imsi_cache_cmd); install_element_ve(&show_nri_all_cmd); install_element_ve(&show_nri_nsei_cmd); install_element_ve(&logging_fltr_bvc_cmd); -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22290 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I03f1050573de9b241eb4fa82460c434155c15c6a Gerrit-Change-Number: 22290 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 16:41:23 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 18 Jan 2021 16:41:23 +0000 Subject: Change in libosmocore[master]: ns2: delay NS_AFF_CAUSE_RECOVERY until NS-VC for data + sig are unblo... In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22282 ) Change subject: ns2: delay NS_AFF_CAUSE_RECOVERY until NS-VC for data + sig are unblocked ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22282 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I933ee3969c052394d61ec6cf8c7c21d17957d9ab Gerrit-Change-Number: 22282 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Mon, 18 Jan 2021 16:41:23 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Mon Jan 18 16:42:00 2021 From: admin at opensuse.org (OBS Notification) Date: Mon, 18 Jan 2021 16:42:00 +0000 Subject: Build failure of network:osmocom:nightly/libosmocore in openSUSE_Tumbleweed/i586 In-Reply-To: References: Message-ID: <6005ba642c58c_22be2aeefb5405f0216512@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libosmocore/openSUSE_Tumbleweed/i586 Package network:osmocom:nightly/libosmocore failed to build in openSUSE_Tumbleweed/i586 Check out the package for editing: osc checkout network:osmocom:nightly libosmocore Last lines of build log: [ 192s] Your package starts with 'lib' as part of its name, but does not provide any [ 192s] libraries. It must not be called a lib-package then. Give it a more sensible [ 192s] name. [ 192s] [ 192s] libosmocodec0.i586: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 192s] libosmocoding0.i586: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 193s] libosmocore16.i586: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 193s] libosmoctrl0.i586: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 193s] libosmogb11.i586: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 193s] libosmogsm15.i586: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 193s] libosmosim2.i586: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 193s] libosmousb0.i586: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 193s] libosmovty4.i586: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 193s] Your shared library package requires a fixed version of another package. The [ 193s] intention of the Shared Library Policy is to allow parallel installation of [ 193s] multiple versions of the same shared library, hard dependencies likely make [ 193s] that impossible. Please remove this dependency and instead move it to the [ 193s] runtime uses of your library. [ 193s] [ 193s] (none): E: badness 3960 exceeds threshold 1000, aborting. [ 193s] 20 packages and 0 specfiles checked; 9 errors, 22 warnings. [ 193s] [ 193s] ### VM INTERACTION START ### [ 196s] [ 166.163683] sysrq: Power Off [ 196s] [ 166.183534] reboot: Power down [ 196s] ### VM INTERACTION END ### [ 196s] [ 196s] cloud112 failed "build libosmocore.spec" at Mon Jan 18 16:41:44 UTC 2021. [ 196s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Mon Jan 18 17:01:44 2021 From: gerrit-no-reply at lists.osmocom.org (roox) Date: Mon, 18 Jan 2021 17:01:44 +0000 Subject: Change in osmo-ci[master]: OBS: use _sourcedir to write rpmlintrc In-Reply-To: References: Message-ID: roox has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22283 ) Change subject: OBS: use _sourcedir to write rpmlintrc ...................................................................... Patch Set 1: Verified+1 Code-Review+1 still a HACK, but looks ok -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22283 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I16e1b3fe297ab516ceff4742ff39633480f3720e Gerrit-Change-Number: 22283 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: pespin Gerrit-Reviewer: roox Gerrit-Comment-Date: Mon, 18 Jan 2021 17:01:44 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 17:08:01 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 18 Jan 2021 17:08:01 +0000 Subject: Change in libosmocore[master]: test: gprs_ns2: free the nsi after each test In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22272 ) Change subject: test: gprs_ns2: free the nsi after each test ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22272 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I700da48d7afe6b1a81484a0725faf0c56073446d Gerrit-Change-Number: 22272 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 17:08:01 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 17:08:29 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 18 Jan 2021 17:08:29 +0000 Subject: Change in libosmocore[master]: test: gprs_ns2: replace free_bind() with clear_pdus() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22271 ) Change subject: test: gprs_ns2: replace free_bind() with clear_pdus() ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22271 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Iac506734c93aca8be045ac13788d07d1bdc78eb3 Gerrit-Change-Number: 22271 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 17:08:29 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 17:08:58 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 18 Jan 2021 17:08:58 +0000 Subject: Change in libosmocore[master]: gprs_ns2: implement BLOCK/UNBLOCK of a NSVC by vty In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22210 ) Change subject: gprs_ns2: implement BLOCK/UNBLOCK of a NSVC by vty ...................................................................... Patch Set 10: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22210 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic0ce3c5fabc8644cc1ee71a8f6dd783fadf7b84d Gerrit-Change-Number: 22210 Gerrit-PatchSet: 10 Gerrit-Owner: lynxis lazus Gerrit-Assignee: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 17:08:58 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 17:10:11 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 18 Jan 2021 17:10:11 +0000 Subject: Change in libosmocore[master]: gprs_ns2: implement BLOCK/UNBLOCK of a NSVC by vty In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, daniel, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22210 to look at the new patch set (#11). Change subject: gprs_ns2: implement BLOCK/UNBLOCK of a NSVC by vty ...................................................................... gprs_ns2: implement BLOCK/UNBLOCK of a NSVC by vty The vty should be able to block or unblock a specific NSVC. Further more this case is special for the UNITDATA as those can be still received until the other side response to the BLOCK PDU. Related: OS#4939 Change-Id: Ic0ce3c5fabc8644cc1ee71a8f6dd783fadf7b84d --- M src/gb/gprs_ns2_fr.c M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_udp.c M src/gb/gprs_ns2_vc_fsm.c M src/gb/gprs_ns2_vty2.c M tests/gb/gprs_ns2_test.c M tests/gb/gprs_ns2_test.ok 7 files changed, 220 insertions(+), 10 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/10/22210/11 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22210 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic0ce3c5fabc8644cc1ee71a8f6dd783fadf7b84d Gerrit-Change-Number: 22210 Gerrit-PatchSet: 11 Gerrit-Owner: lynxis lazus Gerrit-Assignee: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 17:10:12 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 18 Jan 2021 17:10:12 +0000 Subject: Change in libosmocore[master]: osmo-ns-dummy: don't leak primitive messages References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22291 ) Change subject: osmo-ns-dummy: don't leak primitive messages ...................................................................... osmo-ns-dummy: don't leak primitive messages The message in the primitive must be freed by the user Change-Id: I2a7b19f019485c7b1f15baf20b62edc19b663415 --- M utils/osmo-ns-dummy.c 1 file changed, 3 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/91/22291/1 diff --git a/utils/osmo-ns-dummy.c b/utils/osmo-ns-dummy.c index a2070ca..58e8152 100644 --- a/utils/osmo-ns-dummy.c +++ b/utils/osmo-ns-dummy.c @@ -188,6 +188,9 @@ /* called by the ns layer */ int gprs_ns_prim_cb(struct osmo_prim_hdr *oph, void *ctx) { + if (oph->msg) + msgb_free(oph->msg); + return 0; } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22291 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I2a7b19f019485c7b1f15baf20b62edc19b663415 Gerrit-Change-Number: 22291 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 17:10:12 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 18 Jan 2021 17:10:12 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vc_fsm: rename all event to match RX_ or REQ_ References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22292 ) Change subject: gprs_ns2_vc_fsm: rename all event to match RX_ or REQ_ ...................................................................... gprs_ns2_vc_fsm: rename all event to match RX_ or REQ_ Similiar to the BSSGP layer prefix events with RX if it's an received PDU or REQ if it's a request from the code. Change-Id: I341fa28fb671d439c050d985c88ece1521430a99 --- M src/gb/gprs_ns2_vc_fsm.c 1 file changed, 68 insertions(+), 68 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/92/22292/1 diff --git a/src/gb/gprs_ns2_vc_fsm.c b/src/gb/gprs_ns2_vc_fsm.c index 97903cf..e0ff05d 100644 --- a/src/gb/gprs_ns2_vc_fsm.c +++ b/src/gb/gprs_ns2_vc_fsm.c @@ -100,39 +100,39 @@ }; enum gprs_ns2_vc_event { - GPRS_NS2_EV_START, + GPRS_NS2_EV_REQ_START, /* received messages */ - GPRS_NS2_EV_RESET, - GPRS_NS2_EV_RESET_ACK, - GPRS_NS2_EV_UNBLOCK, - GPRS_NS2_EV_UNBLOCK_ACK, - GPRS_NS2_EV_BLOCK, - GPRS_NS2_EV_BLOCK_ACK, - GPRS_NS2_EV_ALIVE, - GPRS_NS2_EV_ALIVE_ACK, - GPRS_NS2_EV_STATUS, + GPRS_NS2_EV_RX_RESET, + GPRS_NS2_EV_RX_RESET_ACK, + GPRS_NS2_EV_RX_UNBLOCK, + GPRS_NS2_EV_RX_UNBLOCK_ACK, + GPRS_NS2_EV_RX_BLOCK, + GPRS_NS2_EV_RX_BLOCK_ACK, + GPRS_NS2_EV_RX_ALIVE, + GPRS_NS2_EV_RX_ALIVE_ACK, + GPRS_NS2_EV_RX_STATUS, - GPRS_NS2_EV_UNITDATA, + GPRS_NS2_EV_RX_UNITDATA, - GPRS_NS2_EV_FORCE_UNCONFIGURED, /* called via vty for tests */ - GPRS_NS2_EV_REQ_OM_BLOCK, /* vty cmd: block */ - GPRS_NS2_EV_REQ_OM_UNBLOCK, /* vty cmd: unblock*/ + GPRS_NS2_EV_REQ_FORCE_UNCONFIGURED, /* called via vty for tests */ + GPRS_NS2_EV_REQ_OM_BLOCK, /* vty cmd: block */ + GPRS_NS2_EV_REQ_OM_UNBLOCK, /* vty cmd: unblock*/ }; static const struct value_string gprs_ns2_vc_event_names[] = { - { GPRS_NS2_EV_START, "START" }, - { GPRS_NS2_EV_RESET, "RESET" }, - { GPRS_NS2_EV_RESET_ACK, "RESET_ACK" }, - { GPRS_NS2_EV_UNBLOCK, "UNBLOCK" }, - { GPRS_NS2_EV_UNBLOCK_ACK, "UNBLOCK_ACK" }, - { GPRS_NS2_EV_BLOCK, "BLOCK" }, - { GPRS_NS2_EV_BLOCK_ACK, "BLOCK_ACK" }, - { GPRS_NS2_EV_ALIVE, "ALIVE" }, - { GPRS_NS2_EV_ALIVE_ACK, "ALIVE_ACK" }, - { GPRS_NS2_EV_STATUS, "STATUS" }, - { GPRS_NS2_EV_UNITDATA, "UNITDATA" }, - { GPRS_NS2_EV_FORCE_UNCONFIGURED, "FORCE_UNCONFIGURED" }, + { GPRS_NS2_EV_REQ_START, "START" }, + { GPRS_NS2_EV_RX_RESET, "RESET" }, + { GPRS_NS2_EV_RX_RESET_ACK, "RESET_ACK" }, + { GPRS_NS2_EV_RX_UNBLOCK, "UNBLOCK" }, + { GPRS_NS2_EV_RX_UNBLOCK_ACK, "UNBLOCK_ACK" }, + { GPRS_NS2_EV_RX_BLOCK, "BLOCK" }, + { GPRS_NS2_EV_RX_BLOCK_ACK, "BLOCK_ACK" }, + { GPRS_NS2_EV_RX_ALIVE, "ALIVE" }, + { GPRS_NS2_EV_RX_ALIVE_ACK, "ALIVE_ACK" }, + { GPRS_NS2_EV_RX_STATUS, "STATUS" }, + { GPRS_NS2_EV_RX_UNITDATA, "UNITDATA" }, + { GPRS_NS2_EV_REQ_FORCE_UNCONFIGURED, "FORCE_UNCONFIGURED" }, { GPRS_NS2_EV_REQ_OM_BLOCK, "REQ-O&M-BLOCK"}, { GPRS_NS2_EV_REQ_OM_UNBLOCK, "REQ-O&M-UNBLOCK"}, { 0, NULL } @@ -229,7 +229,7 @@ struct gprs_ns2_inst *nsi = priv->nsvc->nse->nsi; switch (event) { - case GPRS_NS2_EV_START: + case GPRS_NS2_EV_REQ_START: switch (priv->nsvc->mode) { case NS2_VC_MODE_ALIVE: osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_ALIVE, nsi->timeout[NS_TOUT_TNS_ALIVE], NS_TOUT_TNS_ALIVE); @@ -268,7 +268,7 @@ if (priv->initiate_reset) { switch (event) { - case GPRS_NS2_EV_RESET_ACK: + case GPRS_NS2_EV_RX_RESET_ACK: osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_BLOCKED, nsi->timeout[NS_TOUT_TNS_BLOCK], NS_TOUT_TNS_BLOCK); break; @@ -276,7 +276,7 @@ } else { /* we are on the receiving end */ switch (event) { - case GPRS_NS2_EV_RESET: + case GPRS_NS2_EV_RX_RESET: ns2_tx_reset_ack(priv->nsvc); osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_BLOCKED, 0, 0); @@ -308,16 +308,16 @@ if (priv->om_blocked) { switch (event) { - case GPRS_NS2_EV_BLOCK_ACK: + case GPRS_NS2_EV_RX_BLOCK_ACK: priv->accept_unitdata = false; osmo_timer_del(&fi->timer); break; - case GPRS_NS2_EV_BLOCK: + case GPRS_NS2_EV_RX_BLOCK: priv->accept_unitdata = false; ns2_tx_block_ack(priv->nsvc); osmo_timer_del(&fi->timer); break; - case GPRS_NS2_EV_UNBLOCK: + case GPRS_NS2_EV_RX_UNBLOCK: priv->accept_unitdata = false; ns2_tx_block(priv->nsvc, NS_CAUSE_OM_INTERVENTION); osmo_timer_add(&fi->timer); @@ -325,14 +325,14 @@ } } else if (priv->initiate_block) { switch (event) { - case GPRS_NS2_EV_BLOCK: + case GPRS_NS2_EV_RX_BLOCK: /* TODO: BLOCK is a UNBLOCK_NACK */ ns2_tx_block_ack(priv->nsvc); break; - case GPRS_NS2_EV_UNBLOCK: + case GPRS_NS2_EV_RX_UNBLOCK: ns2_tx_unblock_ack(priv->nsvc); /* fall through */ - case GPRS_NS2_EV_UNBLOCK_ACK: + case GPRS_NS2_EV_RX_UNBLOCK_ACK: priv->accept_unitdata = true; osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_UNBLOCKED, 0, NS_TOUT_TNS_TEST); @@ -341,7 +341,7 @@ } else { /* we are on the receiving end. The initiator who sent RESET is responsible to UNBLOCK! */ switch (event) { - case GPRS_NS2_EV_UNBLOCK: + case GPRS_NS2_EV_RX_UNBLOCK: ns2_tx_unblock_ack(priv->nsvc); osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_UNBLOCKED, 0, 0); @@ -366,10 +366,10 @@ struct gprs_ns2_vc_priv *priv = fi->priv; switch (event) { - case GPRS_NS2_EV_UNBLOCK: + case GPRS_NS2_EV_RX_UNBLOCK: ns2_tx_unblock_ack(priv->nsvc); break; - case GPRS_NS2_EV_BLOCK: + case GPRS_NS2_EV_RX_BLOCK: priv->initiate_block = false; ns2_tx_block_ack(priv->nsvc); osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_BLOCKED, @@ -381,7 +381,7 @@ static void gprs_ns2_st_alive(struct osmo_fsm_inst *fi, uint32_t event, void *data) { switch (event) { - case GPRS_NS2_EV_ALIVE_ACK: + case GPRS_NS2_EV_RX_ALIVE_ACK: osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_UNBLOCKED, 0, 0); break; } @@ -409,13 +409,13 @@ static const struct osmo_fsm_state gprs_ns2_vc_states[] = { [GPRS_NS2_ST_UNCONFIGURED] = { - .in_event_mask = S(GPRS_NS2_EV_START), + .in_event_mask = S(GPRS_NS2_EV_REQ_START), .out_state_mask = S(GPRS_NS2_ST_RESET) | S(GPRS_NS2_ST_ALIVE), .name = "UNCONFIGURED", .action = gprs_ns2_st_unconfigured, }, [GPRS_NS2_ST_RESET] = { - .in_event_mask = S(GPRS_NS2_EV_RESET_ACK) | S(GPRS_NS2_EV_RESET), + .in_event_mask = S(GPRS_NS2_EV_RX_RESET_ACK) | S(GPRS_NS2_EV_RX_RESET), .out_state_mask = S(GPRS_NS2_ST_RESET) | S(GPRS_NS2_ST_BLOCKED) | S(GPRS_NS2_ST_UNCONFIGURED), @@ -424,8 +424,8 @@ .onenter = gprs_ns2_st_reset_onenter, }, [GPRS_NS2_ST_BLOCKED] = { - .in_event_mask = S(GPRS_NS2_EV_BLOCK) | S(GPRS_NS2_EV_BLOCK_ACK) | - S(GPRS_NS2_EV_UNBLOCK) | S(GPRS_NS2_EV_UNBLOCK_ACK), + .in_event_mask = S(GPRS_NS2_EV_RX_BLOCK) | S(GPRS_NS2_EV_RX_BLOCK_ACK) | + S(GPRS_NS2_EV_RX_UNBLOCK) | S(GPRS_NS2_EV_RX_UNBLOCK_ACK), .out_state_mask = S(GPRS_NS2_ST_RESET) | S(GPRS_NS2_ST_UNBLOCKED) | S(GPRS_NS2_ST_BLOCKED) | @@ -435,8 +435,8 @@ .onenter = gprs_ns2_st_blocked_onenter, }, [GPRS_NS2_ST_UNBLOCKED] = { - .in_event_mask = S(GPRS_NS2_EV_BLOCK) | S(GPRS_NS2_EV_UNBLOCK_ACK) | - S(GPRS_NS2_EV_UNBLOCK), + .in_event_mask = S(GPRS_NS2_EV_RX_BLOCK) | S(GPRS_NS2_EV_RX_UNBLOCK_ACK) | + S(GPRS_NS2_EV_RX_UNBLOCK), .out_state_mask = S(GPRS_NS2_ST_RESET) | S(GPRS_NS2_ST_ALIVE) | S(GPRS_NS2_ST_BLOCKED) | S(GPRS_NS2_ST_UNCONFIGURED), @@ -447,7 +447,7 @@ /* ST_ALIVE is only used on VC without RESET/BLOCK */ [GPRS_NS2_ST_ALIVE] = { - .in_event_mask = S(GPRS_NS2_EV_ALIVE_ACK), + .in_event_mask = S(GPRS_NS2_EV_RX_ALIVE_ACK), .out_state_mask = S(GPRS_NS2_ST_RESET) | S(GPRS_NS2_ST_UNBLOCKED) | S(GPRS_NS2_ST_UNCONFIGURED), @@ -553,7 +553,7 @@ struct msgb *msg = data; switch (event) { - case GPRS_NS2_EV_RESET: + case GPRS_NS2_EV_RX_RESET: if (priv->nsvc->mode != NS2_VC_MODE_BLOCKRESET) break; @@ -565,7 +565,7 @@ /* pass the event down into FSM action */ gprs_ns2_st_reset(fi, event, data); break; - case GPRS_NS2_EV_ALIVE: + case GPRS_NS2_EV_RX_ALIVE: switch (fi->state) { case GPRS_NS2_ST_UNCONFIGURED: case GPRS_NS2_ST_RESET: @@ -575,14 +575,14 @@ ns2_tx_alive_ack(priv->nsvc); } break; - case GPRS_NS2_EV_ALIVE_ACK: + case GPRS_NS2_EV_RX_ALIVE_ACK: /* for VCs without RESET/BLOCK/UNBLOCK, the connections comes after ALIVE_ACK unblocked */ if (fi->state == GPRS_NS2_ST_ALIVE) gprs_ns2_st_alive(fi, event, data); else recv_test_procedure(fi); break; - case GPRS_NS2_EV_UNITDATA: + case GPRS_NS2_EV_RX_UNITDATA: /* UNITDATA has to handle the release of msg. * If send upwards (gprs_ns2_recv_unitdata) it must NOT free * the msg, the upper layer has to do it. @@ -609,11 +609,11 @@ msgb_free(msg); break; - case GPRS_NS2_EV_FORCE_UNCONFIGURED: + case GPRS_NS2_EV_REQ_FORCE_UNCONFIGURED: if (fi->state != GPRS_NS2_ST_UNCONFIGURED) { /* Force the NSVC back to its initial state */ osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_UNCONFIGURED, 0, 0); - osmo_fsm_inst_dispatch(fi, GPRS_NS2_EV_START, NULL); + osmo_fsm_inst_dispatch(fi, GPRS_NS2_EV_REQ_START, NULL); return; } break; @@ -646,11 +646,11 @@ .name = "GPRS-NS2-VC", .states = gprs_ns2_vc_states, .num_states = ARRAY_SIZE(gprs_ns2_vc_states), - .allstate_event_mask = S(GPRS_NS2_EV_UNITDATA) | - S(GPRS_NS2_EV_RESET) | - S(GPRS_NS2_EV_ALIVE) | - S(GPRS_NS2_EV_ALIVE_ACK) | - S(GPRS_NS2_EV_FORCE_UNCONFIGURED) | + .allstate_event_mask = S(GPRS_NS2_EV_RX_UNITDATA) | + S(GPRS_NS2_EV_RX_RESET) | + S(GPRS_NS2_EV_RX_ALIVE) | + S(GPRS_NS2_EV_RX_ALIVE_ACK) | + S(GPRS_NS2_EV_REQ_FORCE_UNCONFIGURED) | S(GPRS_NS2_EV_REQ_OM_BLOCK) | S(GPRS_NS2_EV_REQ_OM_UNBLOCK), .allstate_action = gprs_ns2_vc_fsm_allstate_action, @@ -698,7 +698,7 @@ { /* allows to call this function even for started nsvc by gprs_ns2_start_alive_all_nsvcs */ if (nsvc->fi->state == GPRS_NS2_ST_UNCONFIGURED) - return osmo_fsm_inst_dispatch(nsvc->fi, GPRS_NS2_EV_START, NULL); + return osmo_fsm_inst_dispatch(nsvc->fi, GPRS_NS2_EV_REQ_START, NULL); return 0; } @@ -707,7 +707,7 @@ * \return 0 on success; negative on error */ int gprs_ns2_vc_force_unconfigured(struct gprs_ns2_vc *nsvc) { - return osmo_fsm_inst_dispatch(nsvc->fi, GPRS_NS2_EV_FORCE_UNCONFIGURED, NULL); + return osmo_fsm_inst_dispatch(nsvc->fi, GPRS_NS2_EV_REQ_FORCE_UNCONFIGURED, NULL); } /*! Block a NS-VC. @@ -752,32 +752,32 @@ switch (nsh->pdu_type) { case NS_PDUT_RESET: - osmo_fsm_inst_dispatch(fi, GPRS_NS2_EV_RESET, tp); + osmo_fsm_inst_dispatch(fi, GPRS_NS2_EV_RX_RESET, tp); break; case NS_PDUT_RESET_ACK: - osmo_fsm_inst_dispatch(fi, GPRS_NS2_EV_RESET_ACK, tp); + osmo_fsm_inst_dispatch(fi, GPRS_NS2_EV_RX_RESET_ACK, tp); break; case NS_PDUT_BLOCK: - osmo_fsm_inst_dispatch(fi, GPRS_NS2_EV_BLOCK, tp); + osmo_fsm_inst_dispatch(fi, GPRS_NS2_EV_RX_BLOCK, tp); break; case NS_PDUT_BLOCK_ACK: - osmo_fsm_inst_dispatch(fi, GPRS_NS2_EV_BLOCK_ACK, tp); + osmo_fsm_inst_dispatch(fi, GPRS_NS2_EV_RX_BLOCK_ACK, tp); break; case NS_PDUT_UNBLOCK: - osmo_fsm_inst_dispatch(fi, GPRS_NS2_EV_UNBLOCK, tp); + osmo_fsm_inst_dispatch(fi, GPRS_NS2_EV_RX_UNBLOCK, tp); break; case NS_PDUT_UNBLOCK_ACK: - osmo_fsm_inst_dispatch(fi, GPRS_NS2_EV_UNBLOCK_ACK, tp); + osmo_fsm_inst_dispatch(fi, GPRS_NS2_EV_RX_UNBLOCK_ACK, tp); break; case NS_PDUT_ALIVE: - osmo_fsm_inst_dispatch(fi, GPRS_NS2_EV_ALIVE, tp); + osmo_fsm_inst_dispatch(fi, GPRS_NS2_EV_RX_ALIVE, tp); break; case NS_PDUT_ALIVE_ACK: - osmo_fsm_inst_dispatch(fi, GPRS_NS2_EV_ALIVE_ACK, tp); + osmo_fsm_inst_dispatch(fi, GPRS_NS2_EV_RX_ALIVE_ACK, tp); break; case NS_PDUT_UNITDATA: /* UNITDATA have to free msg because it might send the msg layer upwards */ - osmo_fsm_inst_dispatch(fi, GPRS_NS2_EV_UNITDATA, msg); + osmo_fsm_inst_dispatch(fi, GPRS_NS2_EV_RX_UNITDATA, msg); return 0; default: LOGP(DLNS, LOGL_ERROR, "NSEI=%u Rx unknown NS PDU type %s\n", nsvc->nse->nsei, -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22292 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I341fa28fb671d439c050d985c88ece1521430a99 Gerrit-Change-Number: 22292 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 17:10:13 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 18 Jan 2021 17:10:13 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vc_fsm: ensure all state is resetted via force_unconf References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22293 ) Change subject: gprs_ns2_vc_fsm: ensure all state is resetted via force_unconf ...................................................................... gprs_ns2_vc_fsm: ensure all state is resetted via force_unconf Change-Id: I240225ce82fa27dfcb5b4b8e2981bb4d8cc4cd70 --- M src/gb/gprs_ns2_vc_fsm.c 1 file changed, 8 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/93/22293/1 diff --git a/src/gb/gprs_ns2_vc_fsm.c b/src/gb/gprs_ns2_vc_fsm.c index e0ff05d..79a0d4a 100644 --- a/src/gb/gprs_ns2_vc_fsm.c +++ b/src/gb/gprs_ns2_vc_fsm.c @@ -57,6 +57,7 @@ int N; /* The initiator is responsible to UNBLOCK the VC. The BSS is usually the initiator. * It can change during runtime. The side which blocks an unblocked side.*/ + bool initiator; bool initiate_block; bool initiate_reset; /* if blocked by O&M/vty */ @@ -228,6 +229,9 @@ struct gprs_ns2_vc_priv *priv = fi->priv; struct gprs_ns2_inst *nsi = priv->nsvc->nse->nsi; + priv->initiate_reset = priv->initiate_block = priv->initiator; + priv->om_blocked = false; + switch (event) { case GPRS_NS2_EV_REQ_START: switch (priv->nsvc->mode) { @@ -268,6 +272,9 @@ if (priv->initiate_reset) { switch (event) { + case GPRS_NS2_EV_RX_RESET: + ns2_tx_reset_ack(priv->nsvc); + /* fall-through */ case GPRS_NS2_EV_RX_RESET_ACK: osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_BLOCKED, nsi->timeout[NS_TOUT_TNS_BLOCK], NS_TOUT_TNS_BLOCK); @@ -683,8 +690,7 @@ nsvc->fi = fi; priv = fi->priv = talloc_zero(fi, struct gprs_ns2_vc_priv); priv->nsvc = nsvc; - priv->initiate_reset = initiator; - priv->initiate_block = initiator; + priv->initiator = initiator; osmo_timer_setup(&priv->alive.timer, alive_timeout_handler, fi); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22293 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I240225ce82fa27dfcb5b4b8e2981bb4d8cc4cd70 Gerrit-Change-Number: 22293 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 17:10:13 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 18 Jan 2021 17:10:13 +0000 Subject: Change in libosmocore[master]: WIP: gprs_ns2_vc_fsm: log all receiving PDUs References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22294 ) Change subject: WIP: gprs_ns2_vc_fsm: log all receiving PDUs ...................................................................... WIP: gprs_ns2_vc_fsm: log all receiving PDUs what about other Rx packets? (new connection) also what about dropped Rx? Change-Id: I34b8fde2955ecc010d1dcd9512e1bba9211e2c0d --- M src/gb/gprs_ns2_vc_fsm.c 1 file changed, 7 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/94/22294/1 diff --git a/src/gb/gprs_ns2_vc_fsm.c b/src/gb/gprs_ns2_vc_fsm.c index 79a0d4a..3a51a1f 100644 --- a/src/gb/gprs_ns2_vc_fsm.c +++ b/src/gb/gprs_ns2_vc_fsm.c @@ -756,6 +756,13 @@ } } + if (nsvc->nsvci_is_valid) + LOGP(DLNS, LOGL_INFO, "NSEI=%05u Rx %s (NSVCI=%05u)\n", + nsvc->nse->nsei, get_value_string(gprs_ns_pdu_strings, nsh->pdu_type), nsvc->nsvci); + else + LOGP(DLNS, LOGL_INFO, "NSEI=%05u Rx %s\n", + nsvc->nse->nsei, get_value_string(gprs_ns_pdu_strings, nsh->pdu_type)); + switch (nsh->pdu_type) { case NS_PDUT_RESET: osmo_fsm_inst_dispatch(fi, GPRS_NS2_EV_RX_RESET, tp); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22294 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I34b8fde2955ecc010d1dcd9512e1bba9211e2c0d Gerrit-Change-Number: 22294 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 17:19:28 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 18 Jan 2021 17:19:28 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Use C-style comments In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22284 ) Change subject: gbproxy: Use C-style comments ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22284 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ia3d27ef79a3370147395e7441149fd1231a760d5 Gerrit-Change-Number: 22284 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Mon, 18 Jan 2021 17:19:28 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 17:19:48 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 18 Jan 2021 17:19:48 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Move helper function to a more logical place In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22285 ) Change subject: gbproxy: Move helper function to a more logical place ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22285 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I3b39991fe2441334aaa9dda6c33c0b7b4484e455 Gerrit-Change-Number: 22285 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Mon, 18 Jan 2021 17:19:48 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 17:20:31 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 18 Jan 2021 17:20:31 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Remove unused variable assignment In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22286 ) Change subject: gbproxy: Remove unused variable assignment ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22286 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I79684e0b27211d756912a63be5cae890ea44be82 Gerrit-Change-Number: 22286 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Mon, 18 Jan 2021 17:20:31 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 17:22:12 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 18 Jan 2021 17:22:12 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Adjust some log levels/messages In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22287 ) Change subject: gbproxy: Adjust some log levels/messages ...................................................................... Patch Set 1: Code-Review+1 (2 comments) https://gerrit.osmocom.org/c/osmo-sgsn/+/22287/1//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-sgsn/+/22287/1//COMMIT_MSG at 7 PS1, Line 7: gbproxy: Adjust some log levels/messages maybe just add logline for ... https://gerrit.osmocom.org/c/osmo-sgsn/+/22287/1/src/gbproxy/gb_proxy.c File src/gbproxy/gb_proxy.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/22287/1/src/gbproxy/gb_proxy.c at a223 PS1, Line 223: } unrelated -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22287 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Iea31fd5791b3b892c83f74145c26a485fffe8dc4 Gerrit-Change-Number: 22287 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Mon, 18 Jan 2021 17:22:12 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 17:22:55 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 18 Jan 2021 17:22:55 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Adjust some log levels/messages In-Reply-To: References: Message-ID: daniel has abandoned this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22287 ) Change subject: gbproxy: Adjust some log levels/messages ...................................................................... Abandoned -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22287 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Iea31fd5791b3b892c83f74145c26a485fffe8dc4 Gerrit-Change-Number: 22287 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-MessageType: abandon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 17:22:59 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 18 Jan 2021 17:22:59 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Fix VTY cmd name In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22288 ) Change subject: gbproxy: Fix VTY cmd name ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22288 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I5bb5f7cf93779a7a07965f2f35fdb59a7a2b731b Gerrit-Change-Number: 22288 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Mon, 18 Jan 2021 17:22:59 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 17:23:17 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 18 Jan 2021 17:23:17 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Define and use help string for gbproxy In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22289 ) Change subject: gbproxy: Define and use help string for gbproxy ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22289 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ic9336c83147903e5af6622179f9394130f969a77 Gerrit-Change-Number: 22289 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Mon, 18 Jan 2021 17:23:17 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 17:24:13 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 18 Jan 2021 17:24:13 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Use C-style comments In-Reply-To: References: Message-ID: daniel has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22284 ) Change subject: gbproxy: Use C-style comments ...................................................................... gbproxy: Use C-style comments Change-Id: Ia3d27ef79a3370147395e7441149fd1231a760d5 --- M src/gbproxy/gb_proxy.c M src/gbproxy/gb_proxy_peer.c 2 files changed, 7 insertions(+), 7 deletions(-) Approvals: Jenkins Builder: Verified lynxis lazus: Looks good to me, approved diff --git a/src/gbproxy/gb_proxy.c b/src/gbproxy/gb_proxy.c index 44a9008..da232e2 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -417,9 +417,9 @@ tlli = osmo_load32be(TLVP_VAL(&tp, BSSGP_IE_TMSI)); rc = gbprox_bss2sgsn_tlli(bss_bvc->cell, msg, &tlli, false); } else if (TLVP_PRESENT(&tp, BSSGP_IE_IMSI)) { - // FIXME: Use the IMSI as selector? + /* FIXME: Use the IMSI as selector? */ rc = gbprox_bss2sgsn_tlli(bss_bvc->cell, msg, NULL, false); - //rc = gbprox_bss2sgsn_hashed(bss_bvc->cell, msg, NULL); + /* rc = gbprox_bss2sgsn_hashed(bss_bvc->cell, msg, NULL); */ } else LOGPBVC(bss_bvc, LOGL_ERROR, "Rx RADIO-STATUS without any of the conditional IEs\n"); break; diff --git a/src/gbproxy/gb_proxy_peer.c b/src/gbproxy/gb_proxy_peer.c index 1d9352d..7e94331 100644 --- a/src/gbproxy/gb_proxy_peer.c +++ b/src/gbproxy/gb_proxy_peer.c @@ -609,7 +609,7 @@ LOGPSGSN_CAT(sgsn, DOBJ, LOGL_INFO, "SGSN Destroying\n"); llist_del(&sgsn->list); - // talloc will free ->name and ->pool.nri_ranges + /* talloc will free ->name and ->pool.nri_ranges */ talloc_free(sgsn); } @@ -728,23 +728,23 @@ return sgsn; } - // TODO: We should keep track of count in cfg + /* TODO: We should keep track of count in cfg */ num_sgsns = llist_count(&cfg->sgsns); if (num_sgsns == 0) return NULL; - // FIXME: 256 SGSNs ought to be enough for everyone + /* FIXME: 256 SGSNs ought to be enough for everyone */ index = hash_32(tlli, 8) % num_sgsns; - // Get the first enabled SGSN after index + /* Get the first enabled SGSN after index */ llist_for_each_entry(sgsn, &cfg->sgsns, list) { if (i >= index && sgsn->pool.allow_attach) { return sgsn; } i++; } - // Start again from the beginning + /* Start again from the beginning */ i = 0; llist_for_each_entry(sgsn, &cfg->sgsns, list) { if (i >= index) { -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22284 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ia3d27ef79a3370147395e7441149fd1231a760d5 Gerrit-Change-Number: 22284 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 17:24:14 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 18 Jan 2021 17:24:14 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Move helper function to a more logical place In-Reply-To: References: Message-ID: daniel has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22285 ) Change subject: gbproxy: Move helper function to a more logical place ...................................................................... gbproxy: Move helper function to a more logical place Change-Id: I3b39991fe2441334aaa9dda6c33c0b7b4484e455 --- M src/gbproxy/gb_proxy_peer.c 1 file changed, 11 insertions(+), 11 deletions(-) Approvals: Jenkins Builder: Verified lynxis lazus: Looks good to me, approved diff --git a/src/gbproxy/gb_proxy_peer.c b/src/gbproxy/gb_proxy_peer.c index 7e94331..7d6ba86 100644 --- a/src/gbproxy/gb_proxy_peer.c +++ b/src/gbproxy/gb_proxy_peer.c @@ -194,17 +194,6 @@ return NULL; } -static inline struct gbproxy_tlli_cache_entry *_get_tlli_entry(struct gbproxy_config *cfg, uint32_t tlli) -{ - struct gbproxy_tlli_cache_entry *cache_entry; - - hash_for_each_possible(cfg->tlli_cache.entries, cache_entry, list, tlli) { - if (cache_entry->tlli == tlli) - return cache_entry; - } - return NULL; -} - struct gbproxy_cell *gbproxy_cell_by_bvci_or_new(struct gbproxy_config *cfg, uint16_t bvci) { struct gbproxy_cell *cell; @@ -263,6 +252,17 @@ * TLLI cache ***********************************************************************/ +static inline struct gbproxy_tlli_cache_entry *_get_tlli_entry(struct gbproxy_config *cfg, uint32_t tlli) +{ + struct gbproxy_tlli_cache_entry *cache_entry; + + hash_for_each_possible(cfg->tlli_cache.entries, cache_entry, list, tlli) { + if (cache_entry->tlli == tlli) + return cache_entry; + } + return NULL; +} + void gbproxy_tlli_cache_update(struct gbproxy_nse *nse, uint32_t tlli) { struct gbproxy_config *cfg = nse->cfg; -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22285 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I3b39991fe2441334aaa9dda6c33c0b7b4484e455 Gerrit-Change-Number: 22285 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 17:24:15 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 18 Jan 2021 17:24:15 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Remove unused variable assignment In-Reply-To: References: Message-ID: daniel has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22286 ) Change subject: gbproxy: Remove unused variable assignment ...................................................................... gbproxy: Remove unused variable assignment Change-Id: I79684e0b27211d756912a63be5cae890ea44be82 --- M src/gbproxy/gb_proxy.c 1 file changed, 0 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified lynxis lazus: Looks good to me, approved diff --git a/src/gbproxy/gb_proxy.c b/src/gbproxy/gb_proxy.c index da232e2..1ce2716 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -868,7 +868,6 @@ switch (pdu_type) { case BSSGP_PDUT_BVC_RESET: /* resolve or create gbproxy_bvc + handlei n BVC-FSM */ - ptp_bvci = ntohs(tlvp_val16_unal(&tp, BSSGP_IE_BVCI)); return rx_bvc_reset_from_bss(nse, msg, &tp); case BSSGP_PDUT_BVC_RESET_ACK: ptp_bvci = ntohs(tlvp_val16_unal(&tp, BSSGP_IE_BVCI)); -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22286 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I79684e0b27211d756912a63be5cae890ea44be82 Gerrit-Change-Number: 22286 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 17:26:08 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 18 Jan 2021 17:26:08 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Add VTY commands to query the TLLI/IMSI cache In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22290 ) Change subject: gbproxy: Add VTY commands to query the TLLI/IMSI cache ...................................................................... Patch Set 1: Code-Review-1 (2 comments) https://gerrit.osmocom.org/c/osmo-sgsn/+/22290/1//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-sgsn/+/22290/1//COMMIT_MSG at 18 PS1, Line 18: TLLI TLLI https://gerrit.osmocom.org/c/osmo-sgsn/+/22290/1/src/gbproxy/gb_proxy_vty.c File src/gbproxy/gb_proxy_vty.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/22290/1/src/gbproxy/gb_proxy_vty.c at 601 PS1, Line 601: TLLI IMSI -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22290 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I03f1050573de9b241eb4fa82460c434155c15c6a Gerrit-Change-Number: 22290 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Mon, 18 Jan 2021 17:26:08 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 17:35:32 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 18 Jan 2021 17:35:32 +0000 Subject: Change in libosmocore[master]: gprs_ns2: implement BLOCK/UNBLOCK of a NSVC by vty In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, daniel, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22210 to look at the new patch set (#12). Change subject: gprs_ns2: implement BLOCK/UNBLOCK of a NSVC by vty ...................................................................... gprs_ns2: implement BLOCK/UNBLOCK of a NSVC by vty The vty should be able to block or unblock a specific NSVC. Further more this case is special for the UNITDATA as those can be still received until the other side response to the BLOCK PDU. Related: OS#4939 Change-Id: Ic0ce3c5fabc8644cc1ee71a8f6dd783fadf7b84d --- M src/gb/gprs_ns2_fr.c M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_udp.c M src/gb/gprs_ns2_vc_fsm.c M src/gb/gprs_ns2_vty2.c M tests/gb/gprs_ns2_test.c M tests/gb/gprs_ns2_test.ok 7 files changed, 224 insertions(+), 10 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/10/22210/12 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22210 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic0ce3c5fabc8644cc1ee71a8f6dd783fadf7b84d Gerrit-Change-Number: 22210 Gerrit-PatchSet: 12 Gerrit-Owner: lynxis lazus Gerrit-Assignee: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 17:36:45 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 18 Jan 2021 17:36:45 +0000 Subject: Change in osmo-pcu[master]: Convert gprs_bssgp_pcu.cpp to C References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22295 ) Change subject: Convert gprs_bssgp_pcu.cpp to C ...................................................................... Convert gprs_bssgp_pcu.cpp to C There's no real use of C++ in that file, and it causes problems when using llist_head entry macros in future patches adding initial support for multiple BTS in PCU object, so let's move it to plain C. Change-Id: Ic771a89fd78b5e66151a5384f0ff6a8895589466 --- M src/Makefile.am M src/decoding.cpp M src/decoding.h R src/gprs_bssgp_pcu.c M src/gprs_bssgp_pcu.h M src/gprs_rlcmac.h M src/pdch.cpp M src/rlc.h M src/tbf_dl.cpp M src/tbf_dl.h M tests/rlcmac/RLCMACTest.cpp M tests/tbf/TbfTest.cpp 12 files changed, 91 insertions(+), 59 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/95/22295/1 diff --git a/src/Makefile.am b/src/Makefile.am index 05fac55..60f05a5 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -42,7 +42,7 @@ gprs_debug.cpp \ csn1.c \ gsm_rlcmac.c \ - gprs_bssgp_pcu.cpp \ + gprs_bssgp_pcu.c \ gprs_rlcmac.cpp \ gprs_rlcmac_sched.cpp \ gprs_rlcmac_meas.cpp \ diff --git a/src/decoding.cpp b/src/decoding.cpp index 0437994..e40496d 100644 --- a/src/decoding.cpp +++ b/src/decoding.cpp @@ -291,7 +291,7 @@ return num_chunks; } -uint8_t Decoding::get_ms_class_by_capability(MS_Radio_Access_capability_t *cap) +uint8_t get_ms_class_by_capability(MS_Radio_Access_capability_t *cap) { int i; @@ -306,7 +306,7 @@ return 0; } -uint8_t Decoding::get_egprs_ms_class_by_capability(MS_Radio_Access_capability_t *cap) +uint8_t get_egprs_ms_class_by_capability(MS_Radio_Access_capability_t *cap) { int i; diff --git a/src/decoding.h b/src/decoding.h index 23d3e17..28af3c4 100644 --- a/src/decoding.h +++ b/src/decoding.h @@ -19,16 +19,23 @@ */ #pragma once +#ifdef __cplusplus extern "C" { -#include "gsm_rlcmac.h" -} +#endif -#include "rlc.h" +#include "gsm_rlcmac.h" +#include "coding_scheme.h" + +#ifdef __cplusplus +} +#endif #include struct bitvec; +#ifdef __cplusplus + class Decoding { public: /* represents (parts) LLC PDUs within one RLC Data block */ @@ -42,8 +49,6 @@ const struct gprs_rlc_data_block_info *rdbi, enum CodingScheme cs, const uint8_t *data, RlcData *chunks, unsigned int chunks_size, uint32_t *tlli); - static uint8_t get_ms_class_by_capability(MS_Radio_Access_capability_t *cap); - static uint8_t get_egprs_ms_class_by_capability(MS_Radio_Access_capability_t *cap); static void extract_rbb(const uint8_t *rbb, char *extracted_rbb); static void extract_rbb(const struct bitvec *rbb, char *show_rbb); @@ -82,3 +87,16 @@ bitvec *bits, int *bsn_begin, int *bsn_end, gprs_rlc_dl_window *window); }; + +#endif /* #ifdef __cplusplus */ + +#ifdef __cplusplus +extern "C" { +#endif + +uint8_t get_ms_class_by_capability(MS_Radio_Access_capability_t *cap); +uint8_t get_egprs_ms_class_by_capability(MS_Radio_Access_capability_t *cap); + +#ifdef __cplusplus +} +#endif diff --git a/src/gprs_bssgp_pcu.cpp b/src/gprs_bssgp_pcu.c similarity index 97% rename from src/gprs_bssgp_pcu.cpp rename to src/gprs_bssgp_pcu.c index 997cb1b..288bc45 100644 --- a/src/gprs_bssgp_pcu.cpp +++ b/src/gprs_bssgp_pcu.c @@ -28,14 +28,15 @@ #include #include -extern "C" { - #include - #include - #include - #include - #include "coding_scheme.h" - #include "tbf_dl.h" -} +#include +#include +#include +#include +#include +#include "coding_scheme.h" +#include "tbf_dl.h" +#include "llc.h" +#include "gprs_rlcmac.h" /* Tuning parameters for BSSGP flow control */ #define FC_DEFAULT_LIFE_TIME_SECS 10 /* experimental value, 10s */ @@ -55,7 +56,7 @@ static int parse_ra_cap(struct tlv_parsed *tp, MS_Radio_Access_capability_t *rac) { - bitvec *block; + struct bitvec *block; uint8_t cap_len; uint8_t *cap; @@ -132,9 +133,8 @@ /* parse ms radio access capability */ if (parse_ra_cap(tp, &rac) >= 0) { /* Get the EGPRS class from the RA capability */ - ms_class = Decoding::get_ms_class_by_capability(&rac); - egprs_ms_class = - Decoding::get_egprs_ms_class_by_capability(&rac); + ms_class = get_ms_class_by_capability(&rac); + egprs_ms_class = get_egprs_ms_class_by_capability(&rac); LOGP(DBSSGP, LOGL_DEBUG, "Got downlink MS class %d/%d\n", ms_class, egprs_ms_class); } @@ -166,7 +166,7 @@ LOGP(DBSSGP, LOGL_INFO, "LLC [SGSN -> PCU] = TLLI: 0x%08x IMSI: %s len: %d\n", tlli, mi_imsi.imsi, len); - return gprs_rlcmac_dl_tbf::handle(the_pcu->bssgp.bts, tlli, tlli_old, mi_imsi.imsi, + return dl_tbf_handle(the_pcu->bssgp.bts, tlli, tlli_old, mi_imsi.imsi, ms_class, egprs_ms_class, delay_csec, data, len); } @@ -620,7 +620,7 @@ LOGP(DPCU, LOGL_DEBUG, "NS: %s Unknown prim %s / %d from NS\n", get_value_string(osmo_prim_op_names, oph->operation), - gprs_ns2_prim_str((gprs_ns2_prim) oph->primitive), oph->primitive); + gprs_ns2_prim_str((enum gprs_ns2_prim) oph->primitive), oph->primitive); break; } @@ -654,7 +654,7 @@ for (ts_no = 0; ts_no < ARRAY_SIZE(trx->pdch); ++ts_no) { const struct gprs_rlcmac_pdch *pdch = &trx->pdch[ts_no]; - if (pdch->is_enabled()) + if (pdch->m_is_enabled) num_pdch += 1; } } @@ -853,7 +853,7 @@ if (ms_leak_rate == 0) { int ms_num_pdch; - int max_pdch = gprs_alloc_max_dl_slots_per_ms(bts); + int max_pdch = gprs_alloc_max_dl_slots_per_ms(bts, 0); if (num_pdch < 0) num_pdch = count_pdch(bts); @@ -1029,8 +1029,9 @@ static int ns_conf_vc_cb(struct gprs_ns2_vc *nsvc, void *ctx) { struct nsvc_cb *data = (struct nsvc_cb *) ctx; + unsigned int i; - for (unsigned int i = 0; i < PCU_IF_NUM_NSVC; i++) { + for (i = 0; i < PCU_IF_NUM_NSVC; i++) { if (!(data->valid & (1 << i))) continue; if (data->found & (1 << i)) @@ -1070,7 +1071,8 @@ } else if (the_pcu->vty.ns_dialect == NS2_DIALECT_SNS) { /* SNS: check if the initial nsvc is the same, if not recreate it */ const struct osmo_sockaddr *initial = gprs_ns2_nse_sns_remote(bts->nse); - for (unsigned int i = 0; i < PCU_IF_NUM_NSVC; i++) { + unsigned int i; + for (i = 0; i < PCU_IF_NUM_NSVC; i++) { if (!(valid & (1 << i))) continue; diff --git a/src/gprs_bssgp_pcu.h b/src/gprs_bssgp_pcu.h index 080893f..df22541 100644 --- a/src/gprs_bssgp_pcu.h +++ b/src/gprs_bssgp_pcu.h @@ -21,7 +21,6 @@ #ifndef GPRS_BSSGP_PCU_H #define GPRS_BSSGP_PCU_H - #ifdef __cplusplus extern "C" { #endif @@ -40,6 +39,7 @@ #include #include +#include #define QOS_PROFILE 4 #define BSSGP_HDR_LEN 53 diff --git a/src/gprs_rlcmac.h b/src/gprs_rlcmac.h index d779d08..a5d1d30 100644 --- a/src/gprs_rlcmac.h +++ b/src/gprs_rlcmac.h @@ -22,16 +22,20 @@ #define GPRS_RLCMAC_H #include +#include -#ifdef __cplusplus #include +#ifdef __cplusplus extern "C" { +#endif #include #include #include +#include #include #include "gsm_rlcmac.h" +#ifdef __cplusplus } #endif @@ -92,17 +96,12 @@ int gprs_rlcmac_tx_ul_ud(gprs_rlcmac_tbf *tbf); -int gprs_rlcmac_paging_request(const struct osmo_mobile_identity *mi, uint16_t pgroup); - struct msgb *gprs_rlcmac_app_info_msg(const struct gsm_pcu_if_app_info_req *req); int gprs_rlcmac_rcv_rts_block(struct gprs_rlcmac_bts *bts, uint8_t trx, uint8_t ts, uint32_t fn, uint8_t block_nr); -int gprs_alloc_max_dl_slots_per_ms(const struct gprs_rlcmac_bts *bts, - uint8_t ms_class = 0); - extern "C" { #endif int alloc_algorithm_a(struct gprs_rlcmac_bts *bts, struct GprsMs *ms, struct gprs_rlcmac_tbf *tbf, bool single, @@ -113,8 +112,12 @@ int alloc_algorithm_dynamic(struct gprs_rlcmac_bts *bts, struct GprsMs *ms, struct gprs_rlcmac_tbf *tbf, bool single, int8_t use_trx); + +int gprs_rlcmac_paging_request(const struct osmo_mobile_identity *mi, uint16_t pgroup); +int gprs_alloc_max_dl_slots_per_ms(const struct gprs_rlcmac_bts *bts, uint8_t ms_class); #ifdef __cplusplus } #endif + #endif // GPRS_RLCMAC_H diff --git a/src/pdch.cpp b/src/pdch.cpp index 9dd4072..c48c63f 100644 --- a/src/pdch.cpp +++ b/src/pdch.cpp @@ -596,8 +596,8 @@ if (request->Exist_MS_Radio_Access_capability2) { uint8_t ms_class, egprs_ms_class; - ms_class = Decoding::get_ms_class_by_capability(&request->MS_Radio_Access_capability2); - egprs_ms_class = Decoding::get_egprs_ms_class_by_capability(&request->MS_Radio_Access_capability2); + ms_class = get_ms_class_by_capability(&request->MS_Radio_Access_capability2); + egprs_ms_class = get_egprs_ms_class_by_capability(&request->MS_Radio_Access_capability2); if (ms_class) ms_set_ms_class(ms, ms_class); if (egprs_ms_class) diff --git a/src/rlc.h b/src/rlc.h index eb79430..187a70e 100644 --- a/src/rlc.h +++ b/src/rlc.h @@ -18,13 +18,17 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #pragma once - +#ifdef __cplusplus extern "C" { -#include "coding_scheme.h" -} +#endif +#include "coding_scheme.h" #include +#ifdef __cplusplus +} +#endif + #include #include diff --git a/src/tbf_dl.cpp b/src/tbf_dl.cpp index 962c31d..87c897f 100644 --- a/src/tbf_dl.cpp +++ b/src/tbf_dl.cpp @@ -278,11 +278,11 @@ /** * TODO: split into unit test-able parts... */ -int gprs_rlcmac_dl_tbf::handle(struct gprs_rlcmac_bts *bts, - const uint32_t tlli, const uint32_t tlli_old, const char *imsi, - uint8_t ms_class, uint8_t egprs_ms_class, - const uint16_t delay_csec, - const uint8_t *data, const uint16_t len) +int dl_tbf_handle(struct gprs_rlcmac_bts *bts, + const uint32_t tlli, const uint32_t tlli_old, const char *imsi, + uint8_t ms_class, uint8_t egprs_ms_class, + const uint16_t delay_csec, + const uint8_t *data, const uint16_t len) { struct gprs_rlcmac_dl_tbf *dl_tbf = NULL; int rc; diff --git a/src/tbf_dl.h b/src/tbf_dl.h index e29bb3f..58d863b 100644 --- a/src/tbf_dl.h +++ b/src/tbf_dl.h @@ -23,6 +23,8 @@ #include "tbf.h" +#include + /* * TBF instance */ @@ -42,12 +44,6 @@ gprs_rlcmac_dl_tbf(struct gprs_rlcmac_bts *bts, GprsMs *ms); gprs_rlc_window *window(); void cleanup(); - /* dispatch Unitdata.DL messages */ - static int handle(struct gprs_rlcmac_bts *bts, - const uint32_t tlli, const uint32_t old_tlli, - const char *imsi, const uint8_t ms_class, - const uint8_t egprs_ms_class, const uint16_t delay_csec, - const uint8_t *data, const uint16_t len); int append_data(uint16_t pdu_delay_csec, const uint8_t *data, uint16_t len); @@ -151,7 +147,16 @@ #ifdef __cplusplus extern "C" { #endif +struct gprs_rlcmac_bts; + struct gprs_rlcmac_dl_tbf *as_dl_tbf(struct gprs_rlcmac_tbf *tbf); +/* dispatch Unitdata.DL messages */ +int dl_tbf_handle(struct gprs_rlcmac_bts *bts, + const uint32_t tlli, const uint32_t old_tlli, + const char *imsi, const uint8_t ms_class, + const uint8_t egprs_ms_class, const uint16_t delay_csec, + const uint8_t *data, const uint16_t len); + #ifdef __cplusplus } #endif diff --git a/tests/rlcmac/RLCMACTest.cpp b/tests/rlcmac/RLCMACTest.cpp index 140b2f2..c6ad192 100644 --- a/tests/rlcmac/RLCMACTest.cpp +++ b/tests/rlcmac/RLCMACTest.cpp @@ -259,8 +259,8 @@ OSMO_ASSERT(data.Count_MS_RA_capability_value == 1); /* Make sure GPRS / EGPRS multislot class is parsed correctly */ - printf("GPRS multislot class = %u\n", Decoding::get_ms_class_by_capability(&data)); - printf("EGPRS multislot class = %u\n", Decoding::get_egprs_ms_class_by_capability(&data)); + printf("GPRS multislot class = %u\n", get_ms_class_by_capability(&data)); + printf("EGPRS multislot class = %u\n", get_egprs_ms_class_by_capability(&data)); /* Test encoding of decoded MS RA Capability */ printf("=== Test encoding of MS RA Capability ===\n"); @@ -466,8 +466,8 @@ OSMO_ASSERT(data.Count_MS_RA_capability_value == 3); /* Make sure GPRS / EGPRS multislot class is parsed correctly */ - printf("GPRS multislot class = %u\n", Decoding::get_ms_class_by_capability(&data)); - printf("EGPRS multislot class = %u\n", Decoding::get_egprs_ms_class_by_capability(&data)); + printf("GPRS multislot class = %u\n", get_ms_class_by_capability(&data)); + printf("EGPRS multislot class = %u\n", get_egprs_ms_class_by_capability(&data)); bitvec_free(bv_dec); } diff --git a/tests/tbf/TbfTest.cpp b/tests/tbf/TbfTest.cpp index 3b9cd8e..594afc5 100644 --- a/tests/tbf/TbfTest.cpp +++ b/tests/tbf/TbfTest.cpp @@ -501,7 +501,7 @@ snprintf(imsi, sizeof(imsi), "001001%09d", i); - rc = gprs_rlcmac_dl_tbf::handle(bts, tlli, 0, imsi, ms_class, 0, + rc = dl_tbf_handle(bts, tlli, 0, imsi, ms_class, 0, delay_csec, buf, sizeof(buf)); if (rc < 0) @@ -547,7 +547,7 @@ /* Handle LLC frame 1 */ memset(buf, 1, sizeof(buf)); - rc = gprs_rlcmac_dl_tbf::handle(bts, tlli, 0, imsi, ms_class, 0, + rc = dl_tbf_handle(bts, tlli, 0, imsi, ms_class, 0, delay_csec, buf, sizeof(buf)); OSMO_ASSERT(rc >= 0); @@ -558,7 +558,7 @@ /* Handle LLC frame 2 */ memset(buf, 2, sizeof(buf)); - rc = gprs_rlcmac_dl_tbf::handle(bts, tlli, 0, imsi, ms_class, 0, + rc = dl_tbf_handle(bts, tlli, 0, imsi, ms_class, 0, delay_csec, buf, sizeof(buf)); OSMO_ASSERT(rc >= 0); @@ -567,7 +567,7 @@ /* Handle LLC frame 3 */ memset(buf, 3, sizeof(buf)); - rc = gprs_rlcmac_dl_tbf::handle(bts, tlli, 0, imsi, ms_class, 0, + rc = dl_tbf_handle(bts, tlli, 0, imsi, ms_class, 0, delay_csec, buf, sizeof(buf)); OSMO_ASSERT(rc >= 0); @@ -1661,7 +1661,7 @@ ms = bts_ms_store(bts)->get_ms(tlli, 0, imsi); - gprs_rlcmac_dl_tbf::handle(bts, tlli, 0, imsi, 0, 0, + dl_tbf_handle(bts, tlli, 0, imsi, 0, 0, 1000, data, data_size); ms = bts_ms_by_imsi(bts, imsi); @@ -2217,7 +2217,7 @@ gprs_bssgp_init(bts, 3234, 3234, 1, 1, false, 0, 0, 0); /* Does not support EGPRS */ - rc = gprs_rlcmac_dl_tbf::handle(bts, tlli, 0, imsi, ms_class, 0, + rc = dl_tbf_handle(bts, tlli, 0, imsi, ms_class, 0, delay_csec, buf, sizeof(buf)); OSMO_ASSERT(rc == 0); -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22295 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ic771a89fd78b5e66151a5384f0ff6a8895589466 Gerrit-Change-Number: 22295 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 17:36:46 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 18 Jan 2021 17:36:46 +0000 Subject: Change in osmo-pcu[master]: Move tbf::free_all static methods to proper object files References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22296 ) Change subject: Move tbf::free_all static methods to proper object files ...................................................................... Move tbf::free_all static methods to proper object files Move each method to the object on which they operate, be it a trx or a pdch ts. Change-Id: Ida715cbf384431d37b2b192fbd7882957c93a4d1 --- M src/bts.cpp M src/bts.h M src/osmobts_sock.cpp M src/pdch.cpp M src/pdch.h M src/tbf.cpp M src/tbf.h 7 files changed, 31 insertions(+), 25 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/96/22296/1 diff --git a/src/bts.cpp b/src/bts.cpp index ec35dcd..372d45d 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -70,6 +70,12 @@ } } +void bts_trx_free_all_tbf(struct gprs_rlcmac_trx *trx) +{ + for (uint8_t ts = 0; ts < 8; ts++) + pdch_free_all_tbf(&trx->pdch[ts]); +} + static struct osmo_tdef T_defs_bts[] = { { .T=3142, .default_val=20, .unit=OSMO_TDEF_S, .desc="timer (s)", .val=0 }, { .T=3169, .default_val=5, .unit=OSMO_TDEF_S, .desc="Reuse of USF and TFI(s) after the MS uplink TBF assignment is invalid (s)", .val=0 }, diff --git a/src/bts.h b/src/bts.h index 86a7a49..8497a64 100644 --- a/src/bts.h +++ b/src/bts.h @@ -65,6 +65,7 @@ #endif void bts_trx_reserve_slots(struct gprs_rlcmac_trx *trx, enum gprs_rlcmac_tbf_direction dir, uint8_t slots); void bts_trx_unreserve_slots(struct gprs_rlcmac_trx *trx, enum gprs_rlcmac_tbf_direction dir, uint8_t slots); +void bts_trx_free_all_tbf(struct gprs_rlcmac_trx *trx); void bts_update_tbf_ta(const char *p, uint32_t fn, uint8_t trx_no, uint8_t ts, int8_t ta, bool is_rach); #ifdef __cplusplus diff --git a/src/osmobts_sock.cpp b/src/osmobts_sock.cpp index d94c7e7..c68b7b9 100644 --- a/src/osmobts_sock.cpp +++ b/src/osmobts_sock.cpp @@ -118,7 +118,7 @@ bts->trx[trx].pdch[ts].disable(); /* FIXME: NOT ALL RESOURCES are freed in this case... inconsistent with the other code. Share the code with pcu_l1if.c for the reset. */ - gprs_rlcmac_tbf::free_all(&bts->trx[trx]); + bts_trx_free_all_tbf(&bts->trx[trx]); } gprs_bssgp_destroy(bts); diff --git a/src/pdch.cpp b/src/pdch.cpp index c48c63f..15fd139 100644 --- a/src/pdch.cpp +++ b/src/pdch.cpp @@ -152,7 +152,7 @@ return; /* kick all TBF on slot */ - gprs_rlcmac_tbf::free_all(this); + pdch_free_all_tbf(this); /* flush all pending paging messages */ while ((pag = dequeue_paging())) @@ -1017,3 +1017,17 @@ OSMO_ASSERT(tai < PTCCH_TAI_NUM); ptcch_msg[tai] = ta; } + +void pdch_free_all_tbf(struct gprs_rlcmac_pdch *pdch) +{ + for (uint8_t tfi = 0; tfi < 32; tfi++) { + struct gprs_rlcmac_tbf *tbf; + + tbf = pdch->ul_tbf_by_tfi(tfi); + if (tbf) + tbf_free(tbf); + tbf = pdch->dl_tbf_by_tfi(tfi); + if (tbf) + tbf_free(tbf); + } +} diff --git a/src/pdch.h b/src/pdch.h index 2413ef7..57e0f43 100644 --- a/src/pdch.h +++ b/src/pdch.h @@ -183,3 +183,11 @@ } #endif /* __cplusplus */ + +#ifdef __cplusplus +extern "C" { +#endif +void pdch_free_all_tbf(struct gprs_rlcmac_pdch *pdch); +#ifdef __cplusplus +} +#endif diff --git a/src/tbf.cpp b/src/tbf.cpp index 859ebcd..37af21f 100644 --- a/src/tbf.cpp +++ b/src/tbf.cpp @@ -1045,26 +1045,6 @@ return NULL; } -void gprs_rlcmac_tbf::free_all(struct gprs_rlcmac_trx *trx) -{ - for (uint8_t ts = 0; ts < 8; ts++) - free_all(&trx->pdch[ts]); -} - -void gprs_rlcmac_tbf::free_all(struct gprs_rlcmac_pdch *pdch) -{ - for (uint8_t tfi = 0; tfi < 32; tfi++) { - struct gprs_rlcmac_tbf *tbf; - - tbf = pdch->ul_tbf_by_tfi(tfi); - if (tbf) - tbf_free(tbf); - tbf = pdch->dl_tbf_by_tfi(tfi); - if (tbf) - tbf_free(tbf); - } -} - int gprs_rlcmac_tbf::establish_dl_tbf_on_pacch() { struct gprs_rlcmac_dl_tbf *new_tbf = NULL; diff --git a/src/tbf.h b/src/tbf.h index 460de70..d616076 100644 --- a/src/tbf.h +++ b/src/tbf.h @@ -215,9 +215,6 @@ gprs_rlcmac_tbf(struct gprs_rlcmac_bts *bts_, GprsMs *ms, gprs_rlcmac_tbf_direction dir); virtual ~gprs_rlcmac_tbf() {} - static void free_all(struct gprs_rlcmac_trx *trx); - static void free_all(struct gprs_rlcmac_pdch *pdch); - virtual gprs_rlc_window *window() = 0; int setup(int8_t use_trx, bool single_slot); -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22296 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ida715cbf384431d37b2b192fbd7882957c93a4d1 Gerrit-Change-Number: 22296 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 17:36:46 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 18 Jan 2021 17:36:46 +0000 Subject: Change in osmo-pcu[master]: Convert osmo_bts_sock.cpp to C References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22297 ) Change subject: Convert osmo_bts_sock.cpp to C ...................................................................... Convert osmo_bts_sock.cpp to C There's no real point in using C++ there, and using C++ makes the compiler fail to use llist_head in multi-bts patches added later due to: """ 'offsetof' within non-standard-layout type is conditionally-supported """ Change-Id: I8965b5cc5a713e64788b5b6aa183d3035341ddbb --- M src/Makefile.am R src/osmobts_sock.c M src/pcu_l1_if.h M src/pdch.cpp M src/pdch.h M tests/tbf/TbfTest.cpp 6 files changed, 17 insertions(+), 15 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/97/22297/1 diff --git a/src/Makefile.am b/src/Makefile.am index 60f05a5..de924a6 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -65,7 +65,7 @@ decoding.cpp \ llc.cpp \ rlc.cpp \ - osmobts_sock.cpp \ + osmobts_sock.c \ gprs_codel.c \ coding_scheme.c \ egprs_rlc_compression.cpp \ diff --git a/src/osmobts_sock.cpp b/src/osmobts_sock.c similarity index 98% rename from src/osmobts_sock.cpp rename to src/osmobts_sock.c index c68b7b9..ec9d7ce 100644 --- a/src/osmobts_sock.cpp +++ b/src/osmobts_sock.c @@ -25,13 +25,13 @@ #include #include #include -extern "C" { + #include #include #include #include #include -} + #include #include @@ -41,9 +41,7 @@ #include #include -extern "C" { int l1if_close_pdch(void *obj); -} /* * osmo-bts PCU socket functions @@ -115,7 +113,7 @@ } #endif for (ts = 0; ts < 8; ts++) - bts->trx[trx].pdch[ts].disable(); + pdch_disable(&bts->trx[trx].pdch[ts]); /* FIXME: NOT ALL RESOURCES are freed in this case... inconsistent with the other code. Share the code with pcu_l1if.c for the reset. */ bts_trx_free_all_tbf(&bts->trx[trx]); diff --git a/src/pcu_l1_if.h b/src/pcu_l1_if.h index 674ccca..8ef262c 100644 --- a/src/pcu_l1_if.h +++ b/src/pcu_l1_if.h @@ -150,19 +150,18 @@ void pcu_l1if_tx_agch(bitvec * block, int len); void pcu_l1if_tx_pch(bitvec * block, int plen, uint16_t pgroup); - -int pcu_tx_txt_ind(enum gsm_pcu_if_text_type t, const char *fmt, ...); - -int pcu_l1if_open(void); -void pcu_l1if_close(void); - -int pcu_rx(uint8_t msg_type, struct gsm_pcu_if *pcu_prim); -int pcu_sock_send(struct msgb *msg); #endif #ifdef __cplusplus extern "C" { #endif +int pcu_rx(uint8_t msg_type, struct gsm_pcu_if *pcu_prim); +int pcu_l1if_open(void); +void pcu_l1if_close(void); +int pcu_sock_send(struct msgb *msg); + +int pcu_tx_txt_ind(enum gsm_pcu_if_text_type t, const char *fmt, ...); + int pcu_rx_rts_req_pdtch(uint8_t trx, uint8_t ts, uint32_t fn, uint8_t block_nr); int pcu_rx_rts_req_ptcch(uint8_t trx, uint8_t ts, diff --git a/src/pdch.cpp b/src/pdch.cpp index 15fd139..5a329f3 100644 --- a/src/pdch.cpp +++ b/src/pdch.cpp @@ -1031,3 +1031,7 @@ tbf_free(tbf); } } + +void pdch_disable(struct gprs_rlcmac_pdch *pdch) { + pdch->disable(); +} diff --git a/src/pdch.h b/src/pdch.h index 57e0f43..8871986 100644 --- a/src/pdch.h +++ b/src/pdch.h @@ -188,6 +188,7 @@ extern "C" { #endif void pdch_free_all_tbf(struct gprs_rlcmac_pdch *pdch); +void pdch_disable(struct gprs_rlcmac_pdch *pdch); #ifdef __cplusplus } #endif diff --git a/tests/tbf/TbfTest.cpp b/tests/tbf/TbfTest.cpp index 594afc5..a0d4d79 100644 --- a/tests/tbf/TbfTest.cpp +++ b/tests/tbf/TbfTest.cpp @@ -166,7 +166,7 @@ /* override, requires '-Wl,--wrap=pcu_sock_send' */ int __real_pcu_sock_send(struct msgb *msg); -int __wrap_pcu_sock_send(struct msgb *msg) +extern "C" int __wrap_pcu_sock_send(struct msgb *msg) { return 0; } -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22297 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I8965b5cc5a713e64788b5b6aa183d3035341ddbb Gerrit-Change-Number: 22297 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 17:40:18 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 18 Jan 2021 17:40:18 +0000 Subject: Change in libosmocore[master]: gprs_ns2: implement BLOCK/UNBLOCK of a NSVC by vty In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, daniel, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22210 to look at the new patch set (#13). Change subject: gprs_ns2: implement BLOCK/UNBLOCK of a NSVC by vty ...................................................................... gprs_ns2: implement BLOCK/UNBLOCK of a NSVC by vty The vty should be able to block or unblock a specific NSVC. Further more this case is special for the UNITDATA as those can be still received until the other side response to the BLOCK PDU. Related: OS#4939 Change-Id: Ic0ce3c5fabc8644cc1ee71a8f6dd783fadf7b84d --- M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_vc_fsm.c M src/gb/gprs_ns2_vty2.c M tests/gb/gprs_ns2_test.c M tests/gb/gprs_ns2_test.ok 5 files changed, 205 insertions(+), 9 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/10/22210/13 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22210 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic0ce3c5fabc8644cc1ee71a8f6dd783fadf7b84d Gerrit-Change-Number: 22210 Gerrit-PatchSet: 13 Gerrit-Owner: lynxis lazus Gerrit-Assignee: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 17:40:18 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 18 Jan 2021 17:40:18 +0000 Subject: Change in libosmocore[master]: gprs_ns2: add assert on most bind calls In-Reply-To: References: Message-ID: Hello Jenkins Builder, daniel, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22273 to look at the new patch set (#7). Change subject: gprs_ns2: add assert on most bind calls ...................................................................... gprs_ns2: add assert on most bind calls Add a OSMO_ASSERT to all bind calls which doesn't check if the bind is from the expected type. The only exception is rx and tx functions (hot path). Change-Id: Ia4f8932263c60618c7f0dfc32d50ba5a8d57602b --- M src/gb/gprs_ns2_fr.c M src/gb/gprs_ns2_udp.c 2 files changed, 19 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/73/22273/7 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22273 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia4f8932263c60618c7f0dfc32d50ba5a8d57602b Gerrit-Change-Number: 22273 Gerrit-PatchSet: 7 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 17:40:18 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 18 Jan 2021 17:40:18 +0000 Subject: Change in libosmocore[master]: gprs_ns2: allow to use free_vc() with NULL In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, daniel, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22274 to look at the new patch set (#9). Change subject: gprs_ns2: allow to use free_vc() with NULL ...................................................................... gprs_ns2: allow to use free_vc() with NULL Usually talloc_free() and other free functions in osmocom allows to be called with NULL which is then ignored. Change-Id: If7b0c6916a29d4611d0a40c388414076eb83e6b5 --- M src/gb/gprs_ns2_fr.c M src/gb/gprs_ns2_udp.c 2 files changed, 5 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/74/22274/9 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22274 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If7b0c6916a29d4611d0a40c388414076eb83e6b5 Gerrit-Change-Number: 22274 Gerrit-PatchSet: 9 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 17:40:18 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 18 Jan 2021 17:40:18 +0000 Subject: Change in libosmocore[master]: osmo-ns-dummy: don't leak primitive messages In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22291 to look at the new patch set (#3). Change subject: osmo-ns-dummy: don't leak primitive messages ...................................................................... osmo-ns-dummy: don't leak primitive messages The message in the primitive must be freed by the user Change-Id: I2a7b19f019485c7b1f15baf20b62edc19b663415 --- M utils/osmo-ns-dummy.c 1 file changed, 3 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/91/22291/3 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22291 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I2a7b19f019485c7b1f15baf20b62edc19b663415 Gerrit-Change-Number: 22291 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 17:40:18 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 18 Jan 2021 17:40:18 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vc_fsm: rename all event to match RX_ or REQ_ In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22292 to look at the new patch set (#3). Change subject: gprs_ns2_vc_fsm: rename all event to match RX_ or REQ_ ...................................................................... gprs_ns2_vc_fsm: rename all event to match RX_ or REQ_ Similiar to the BSSGP layer prefix events with RX if it's an received PDU or REQ if it's a request from the code. Change-Id: I341fa28fb671d439c050d985c88ece1521430a99 --- M src/gb/gprs_ns2_vc_fsm.c 1 file changed, 68 insertions(+), 68 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/92/22292/3 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22292 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I341fa28fb671d439c050d985c88ece1521430a99 Gerrit-Change-Number: 22292 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 17:40:18 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 18 Jan 2021 17:40:18 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vc_fsm: ensure all state is resetted via force_unconf In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22293 to look at the new patch set (#3). Change subject: gprs_ns2_vc_fsm: ensure all state is resetted via force_unconf ...................................................................... gprs_ns2_vc_fsm: ensure all state is resetted via force_unconf Change-Id: I240225ce82fa27dfcb5b4b8e2981bb4d8cc4cd70 --- M src/gb/gprs_ns2_vc_fsm.c 1 file changed, 8 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/93/22293/3 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22293 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I240225ce82fa27dfcb5b4b8e2981bb4d8cc4cd70 Gerrit-Change-Number: 22293 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 17:48:38 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 18 Jan 2021 17:48:38 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Add VTY commands to query the TLLI/IMSI cache In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, lynxis lazus, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22290 to look at the new patch set (#2). Change subject: gbproxy: Add VTY commands to query the TLLI/IMSI cache ...................................................................... gbproxy: Add VTY commands to query the TLLI/IMSI cache OsmoGbProxy# show gbproxy tlli-cache TLLI cache timeout 10s TLLI c2200024 -> NSE(02001/BSS) valid 10s TLLI cache contains 1 entries OsmoGbProxy# show gbproxy imsi-cache IMSI cache timeout 10s IMSI 262420000001000 -> NSE(00102/SGSN): valid 5s IMSI 262420000000000 -> NSE(00101/SGSN): valid 3s IMSI cache contains 2 entries Change-Id: I03f1050573de9b241eb4fa82460c434155c15c6a Related: OS#4951, OS#4472 --- M src/gbproxy/gb_proxy_vty.c 1 file changed, 51 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/90/22290/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22290 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I03f1050573de9b241eb4fa82460c434155c15c6a Gerrit-Change-Number: 22290 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 17:48:38 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 18 Jan 2021 17:48:38 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Use IMSI cache for PTP paging and implement DUMMY_PAGING_PS References: Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22298 ) Change subject: gbproxy: Use IMSI cache for PTP paging and implement DUMMY_PAGING_PS ...................................................................... gbproxy: Use IMSI cache for PTP paging and implement DUMMY_PAGING_PS Some code was missing to support PAGING_REJECT and DUMMY_PAGING_PS over both PTP and signalling. This commit adds the missing pieces, notably: * Use and route according to the IMSI cache for paging on PTP * Ensure DUMMY_PAGING_PS is broadcast if no routing area is included Change-Id: I7243e0d4470cb62fa6db36d26002ccd6542b5147 Related: OS#4951, OS#4472 --- M src/gbproxy/gb_proxy.c 1 file changed, 38 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/98/22298/1 diff --git a/src/gbproxy/gb_proxy.c b/src/gbproxy/gb_proxy.c index 1ce2716..0bc47e3 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -425,9 +425,20 @@ break; case BSSGP_PDUT_DUMMY_PAGING_PS_RESP: case BSSGP_PDUT_PAGING_PS_REJECT: - /* TODO: Implement via state tracking of PAGING-PS + DUMMY_PAGING_PS */ - LOGPBVC(bss_bvc, LOGL_ERROR, "Rx %s: Implementation missing\n", pdut_name); + { + /* Route according to IMSI<->NSE cache entry */ + struct osmo_mobile_identity mi; + const uint8_t *mi_data = TLVP_VAL(&tp, BSSGP_IE_IMSI); + uint8_t mi_len = TLVP_LEN(&tp, BSSGP_IE_IMSI); + osmo_mobile_identity_decode(&mi, mi_data, mi_len, false); + nse = gbproxy_nse_by_imsi(nse->cfg, mi.imsi); + if (!nse) { + return bssgp_tx_status(BSSGP_CAUSE_INV_MAND_INF, NULL, msg); + } + OSMO_ASSERT(nse->sgsn_facing); + rc = gbprox_relay2nse(msg, nse, ns_bvci); break; + } case BSSGP_PDUT_FLOW_CONTROL_BVC: osmo_fsm_inst_dispatch(bss_bvc->fi, BSSGP_BVCFSM_E_RX_FC_BVC, msg); break; @@ -513,9 +524,21 @@ switch (bgph->pdu_type) { case BSSGP_PDUT_FLOW_CONTROL_BVC_ACK: return osmo_fsm_inst_dispatch(sgsn_bvc->fi, BSSGP_BVCFSM_E_RX_FC_BVC_ACK, msg); - default: - return gbprox_relay2peer(msg, bss_bvc, bss_bvc->bvci); + case BSSGP_PDUT_DUMMY_PAGING_PS: + case BSSGP_PDUT_PAGING_PS: + { + /* Cache the IMSI<->NSE to route PAGING REJECT */ + struct osmo_mobile_identity mi; + const uint8_t *mi_data = TLVP_VAL(&tp, BSSGP_IE_IMSI); + uint8_t mi_len = TLVP_LEN(&tp, BSSGP_IE_IMSI); + osmo_mobile_identity_decode(&mi, mi_data, mi_len, false); + gbproxy_imsi_cache_update(nse, mi.imsi); + break; } + default: + break; + } + return gbprox_relay2peer(msg, bss_bvc, bss_bvc->bvci); } @@ -934,6 +957,7 @@ gbprox_bss2sgsn_tlli(from_bvc->cell, msg, &tlli, true); break; case BSSGP_PDUT_PAGING_PS_REJECT: + case BSSGP_PDUT_DUMMY_PAGING_PS_RESP: { /* Route according to IMSI<->NSE cache entry */ struct osmo_mobile_identity mi; @@ -944,6 +968,7 @@ if (!nse) { return bssgp_tx_status(BSSGP_CAUSE_INV_MAND_INF, NULL, msg); } + OSMO_ASSERT(nse->sgsn_facing); rc = gbprox_relay2nse(msg, nse, 0); break; } @@ -961,7 +986,7 @@ /* Receive paging request from SGSN, we need to relay to proper BSS */ static int gbprox_rx_paging(struct gbproxy_nse *sgsn_nse, struct msgb *msg, const char *pdut_name, - struct tlv_parsed *tp, uint16_t ns_bvci) + struct tlv_parsed *tp, uint16_t ns_bvci, bool broadcast) { struct gbproxy_config *cfg = sgsn_nse->cfg; struct gbproxy_bvc *sgsn_bvc, *bss_bvc; @@ -1014,7 +1039,7 @@ } } } - } else if (TLVP_PRES_LEN(tp, BSSGP_IE_BSS_AREA_ID, 1)) { + } else if (TLVP_PRES_LEN(tp, BSSGP_IE_BSS_AREA_ID, 1) || broadcast) { /* iterate over all bvcs and dispatch the paging to each matching one */ hash_for_each(cfg->bss_nses, i, nse, list) { hash_for_each(nse->bvcs, j, bss_bvc, list) { @@ -1079,6 +1104,7 @@ int rc = 0; int cause; int i; + bool paging_bc = false; snprintf(log_pfx, sizeof(log_pfx), "NSE(%05u/SGSN)-BVC(%05u/??)", nse->nsei, ns_bvci); @@ -1147,6 +1173,11 @@ if (sgsn_bvc->cell && sgsn_bvc->cell->bss_bvc) rc = gbprox_relay2peer(msg, sgsn_bvc->cell->bss_bvc, ns_bvci); break; + case BSSGP_PDUT_DUMMY_PAGING_PS: + /* Routing area is optional in dummy paging and we have nothing else to go by + * so in case it is missing we need to broadcast the paging */ + paging_bc = true; + /* fall through */ case BSSGP_PDUT_PAGING_PS: { /* Cache the IMSI<->NSE to route PAGING REJECT */ @@ -1159,7 +1190,7 @@ } case BSSGP_PDUT_PAGING_CS: /* process the paging request (LAI/RAI lookup) */ - rc = gbprox_rx_paging(nse, msg, pdut_name, &tp, ns_bvci); + rc = gbprox_rx_paging(nse, msg, pdut_name, &tp, ns_bvci, paging_bc); break; case BSSGP_PDUT_STATUS: /* Some exception has occurred */ -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22298 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I7243e0d4470cb62fa6db36d26002ccd6542b5147 Gerrit-Change-Number: 22298 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 17:48:46 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 18 Jan 2021 17:48:46 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Add VTY commands to query the TLLI/IMSI cache In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22290 ) Change subject: gbproxy: Add VTY commands to query the TLLI/IMSI cache ...................................................................... Patch Set 1: (2 comments) https://gerrit.osmocom.org/c/osmo-sgsn/+/22290/1//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-sgsn/+/22290/1//COMMIT_MSG at 18 PS1, Line 18: TLLI > TLLI Done https://gerrit.osmocom.org/c/osmo-sgsn/+/22290/1/src/gbproxy/gb_proxy_vty.c File src/gbproxy/gb_proxy_vty.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/22290/1/src/gbproxy/gb_proxy_vty.c at 601 PS1, Line 601: TLLI > IMSI Done -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22290 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I03f1050573de9b241eb4fa82460c434155c15c6a Gerrit-Change-Number: 22290 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Mon, 18 Jan 2021 17:48:46 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: lynxis lazus Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 17:49:27 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 18 Jan 2021 17:49:27 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Add VTY commands to query the TLLI/IMSI cache In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22290 ) Change subject: gbproxy: Add VTY commands to query the TLLI/IMSI cache ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22290 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I03f1050573de9b241eb4fa82460c434155c15c6a Gerrit-Change-Number: 22290 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Mon, 18 Jan 2021 17:49:27 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 17:53:10 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 18 Jan 2021 17:53:10 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Use g_parse.sgsn_idx for paging References: Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22299 ) Change subject: gbproxy: Use g_parse.sgsn_idx for paging ...................................................................... gbproxy: Use g_parse.sgsn_idx for paging The ConnHdlr test stores the sgsn_idx in g_pars. Use that in the paging tests to the correct SGSN pages the MS. This commit fixes what 4332044c missed and is required for the ptp paging reject test to pass. Change-Id: Id85ffa57af943ae98c0f022b261ec24d557c236d Related: OS#4951 --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 11 insertions(+), 11 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/99/22299/1 diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index f5248aa..81627f4 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -1384,7 +1384,7 @@ { /* doesn't really make sense: Sending to a single BVCI means the message ends up * at that BVC (cell) only, and paging all over the BSS area is not possible */ - f_send_paging_ps_exp_one_bss(ts_BssgpP4BssArea, 0, false, 0); + f_send_paging_ps_exp_one_bss(ts_BssgpP4BssArea, g_pars.sgsn_idx, false, 0); } testcase TC_paging_ps_ptp_bss() runs on test_CT { f_init(); @@ -1398,7 +1398,7 @@ var template (present) PDU_BSSGP exp_rx; /* doesn't really make sense: Sending to a single BVCI means the message ends up * at that BVC (cell) only, and paging all over the BSS area is not possible */ - f_send_paging_ps_exp_one_bss(ts_BssgpP4LAC(pcu_bvc_cfg[0].cell_id.ra_id.lai), 0, false, 0); + f_send_paging_ps_exp_one_bss(ts_BssgpP4LAC(pcu_bvc_cfg[0].cell_id.ra_id.lai), g_pars.sgsn_idx, false, 0); } testcase TC_paging_ps_ptp_lac() runs on test_CT { f_init(); @@ -1414,7 +1414,7 @@ lac := 33333 }; /* as it's sent on the PTP BVC, we expect it to pass even for unknown LAC */ - f_send_paging_ps_exp_one_bss(ts_BssgpP4LAC(unknown_la), 0, false, 0); + f_send_paging_ps_exp_one_bss(ts_BssgpP4LAC(unknown_la), g_pars.sgsn_idx, false, 0); } testcase TC_paging_ps_ptp_lac_unknown() runs on test_CT { f_init(); @@ -1427,7 +1427,7 @@ { /* doesn't really make sense: Sending to a single BVCI means the message ends up * at that BVC (cell) only, and paging all over the BSS area is not possible */ - f_send_paging_ps_exp_one_bss(ts_BssgpP4RAC(pcu_bvc_cfg[0].cell_id.ra_id), 0, false, 0); + f_send_paging_ps_exp_one_bss(ts_BssgpP4RAC(pcu_bvc_cfg[0].cell_id.ra_id), g_pars.sgsn_idx, false, 0); } testcase TC_paging_ps_ptp_rac() runs on test_CT { f_init(); @@ -1446,7 +1446,7 @@ rac := 254 }; /* as it's sent on the PTP BVC, we expect it to pass even for unknown RAC */ - f_send_paging_ps_exp_one_bss(ts_BssgpP4RAC(unknown_ra), 0, false, 0); + f_send_paging_ps_exp_one_bss(ts_BssgpP4RAC(unknown_ra), g_pars.sgsn_idx, false, 0); } testcase TC_paging_ps_ptp_rac_unknown() runs on test_CT { f_init(); @@ -1458,7 +1458,7 @@ private function f_TC_paging_ps_ptp_bvci(charstring id) runs on BSSGP_ConnHdlr { /* this should be the normal case for MS in READY MM state after a lower layer failure */ - f_send_paging_ps_exp_one_bss(ts_BssgpP4Bvci(pcu_bvc_cfg[0].bvci), 0, false, 0); + f_send_paging_ps_exp_one_bss(ts_BssgpP4Bvci(pcu_bvc_cfg[0].bvci), g_pars.sgsn_idx, false, 0); } testcase TC_paging_ps_ptp_bvci() runs on test_CT { f_init(); @@ -1485,7 +1485,7 @@ private function f_TC_paging_ps_reject_ptp_bvci(charstring id) runs on BSSGP_ConnHdlr { /* first send the PS-PAGING from SGSN -> PCU */ - f_send_paging_ps_exp_one_bss(ts_BssgpP4Bvci(pcu_bvc_cfg[0].bvci), 0, false, 0); + f_send_paging_ps_exp_one_bss(ts_BssgpP4Bvci(pcu_bvc_cfg[0].bvci), g_pars.sgsn_idx, false, 0); /* then simulate the PS-PAGING-REJECT from the PCU */ f_send_paging_ps_rej(use_sig:=false); } @@ -1499,7 +1499,7 @@ private function f_TC_paging_ps_ptp_bvci_unknown(charstring id) runs on BSSGP_ConnHdlr { /* as it's sent on the PTP BVC, we expect it to pass even for unknown BVCI */ - f_send_paging_ps_exp_one_bss(ts_BssgpP4Bvci(33333), 0, false, 0); + f_send_paging_ps_exp_one_bss(ts_BssgpP4Bvci(33333), g_pars.sgsn_idx, false, 0); } testcase TC_paging_ps_ptp_bvci_unknown() runs on test_CT { f_init(); @@ -1659,7 +1659,7 @@ mcc_mnc := '567F99'H, lac := 33333 }; - f_send_paging_ps_exp_no_bss(ts_BssgpP4LAC(unknown_la), 0, true); + f_send_paging_ps_exp_no_bss(ts_BssgpP4LAC(unknown_la), g_pars.sgsn_idx, true); } testcase TC_paging_ps_sig_lac_unknown() runs on test_CT { f_init(); @@ -1696,7 +1696,7 @@ }, rac := 254 }; - f_send_paging_ps_exp_no_bss(ts_BssgpP4RAC(unknown_ra), 0, true); + f_send_paging_ps_exp_no_bss(ts_BssgpP4RAC(unknown_ra), g_pars.sgsn_idx, true); } testcase TC_paging_ps_sig_rac_unknown() runs on test_CT { f_init(); @@ -1747,7 +1747,7 @@ /* PS-PAGING on SIG-BVC for unknown BVCI */ private function f_TC_paging_ps_sig_bvci_unknown(charstring id) runs on BSSGP_ConnHdlr { - f_send_paging_ps_exp_no_bss(ts_BssgpP4Bvci(33333), 0, true); + f_send_paging_ps_exp_no_bss(ts_BssgpP4Bvci(33333), g_pars.sgsn_idx, true); } testcase TC_paging_ps_sig_bvci_unknown() runs on test_CT { f_init(); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22299 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Id85ffa57af943ae98c0f022b261ec24d557c236d Gerrit-Change-Number: 22299 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 17:55:00 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 18 Jan 2021 17:55:00 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Use IMSI cache for PTP paging and implement DUMMY_PAGING_PS In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22298 ) Change subject: gbproxy: Use IMSI cache for PTP paging and implement DUMMY_PAGING_PS ...................................................................... Patch Set 1: (3 comments) https://gerrit.osmocom.org/c/osmo-sgsn/+/22298/1//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-sgsn/+/22298/1//COMMIT_MSG at 9 PS1, Line 9: white space https://gerrit.osmocom.org/c/osmo-sgsn/+/22298/1/src/gbproxy/gb_proxy.c File src/gbproxy/gb_proxy.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/22298/1/src/gbproxy/gb_proxy.c at 436 PS1, Line 436: BSSGP_CAUSE_INV_MAND_INF wrong cause code. the imsi must be always present and should be checked by tlvprot. https://gerrit.osmocom.org/c/osmo-sgsn/+/22298/1/src/gbproxy/gb_proxy.c at 438 PS1, Line 438: OSMO_ASSERT(nse->sgsn_facing); reject the message in such cases. don't assert if you got a message from a joking PCU :) -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22298 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I7243e0d4470cb62fa6db36d26002ccd6542b5147 Gerrit-Change-Number: 22298 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-CC: Jenkins Builder Gerrit-CC: lynxis lazus Gerrit-Comment-Date: Mon, 18 Jan 2021 17:55:00 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 17:56:20 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 18 Jan 2021 17:56:20 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Move different network elements to different IPs References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22300 ) Change subject: gbproxy: Move different network elements to different IPs ...................................................................... gbproxy: Move different network elements to different IPs * SGSN0: 127.0.0.10 * SGSN1: 127.0.0.11 * PCU0: 127.0.1.1 * PCU1: 127.0.2.1 * PCU3: 127.0.3.1 Change-Id: I1762bfc237e679ee21d0446596f2c4f56f735a9d --- M gbproxy/GBProxy_Tests.cfg M gbproxy/GBProxy_Tests.ttcn M gbproxy/osmo-gbproxy.cfg 3 files changed, 7 insertions(+), 49 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/00/22300/1 diff --git a/gbproxy/GBProxy_Tests.cfg b/gbproxy/GBProxy_Tests.cfg index e1e1eff..d610e40 100644 --- a/gbproxy/GBProxy_Tests.cfg +++ b/gbproxy/GBProxy_Tests.cfg @@ -21,48 +21,6 @@ } -GBProxy_Tests.mp_nsconfig_pcu := { - { - handle_sns := false, - nsvc := { - { - provider := { - ip := { - local_ip := "127.0.0.1", - remote_ip := "127.0.0.1" - } - } - } - } - }, - { - handle_sns := false, - nsvc := { - { - provider := { - ip := { - local_ip := "127.0.0.1", - remote_ip := "127.0.0.1" - } - } - } - } - }, - { - handle_sns := false, - nsvc := { - { - provider := { - ip := { - local_ip := "127.0.0.1", - remote_ip := "127.0.0.1" - } - } - } - } - } -} - [MAIN_CONTROLLER] [EXECUTE] diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index fa04190..013dc93 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -65,7 +65,7 @@ ip := { address_family := AF_INET, local_udp_port := 7777, - local_ip := "127.0.0.1", + local_ip := "127.0.0.10", remote_udp_port := 23000, remote_ip := "127.0.0.1" } @@ -83,7 +83,7 @@ ip := { address_family := AF_INET, local_udp_port := 8888, - local_ip := "127.0.0.1", + local_ip := "127.0.0.11", remote_udp_port := 23000, remote_ip := "127.0.0.1" } @@ -107,7 +107,7 @@ ip := { address_family := AF_INET, local_udp_port := 21010, - local_ip := "127.0.0.1", + local_ip := "127.0.1.1", remote_udp_port := 23000, remote_ip := "127.0.0.1" } @@ -126,7 +126,7 @@ ip := { address_family := AF_INET, local_udp_port := 21020, - local_ip := "127.0.0.1", + local_ip := "127.0.2.1", remote_udp_port := 23000, remote_ip := "127.0.0.1" } @@ -145,7 +145,7 @@ ip := { address_family := AF_INET, local_udp_port := 21030, - local_ip := "127.0.0.1", + local_ip := "127.0.3.1", remote_udp_port := 23000, remote_ip := "127.0.0.1" } diff --git a/gbproxy/osmo-gbproxy.cfg b/gbproxy/osmo-gbproxy.cfg index 5789e3a..6f4b1e7 100644 --- a/gbproxy/osmo-gbproxy.cfg +++ b/gbproxy/osmo-gbproxy.cfg @@ -18,9 +18,9 @@ listen 127.0.0.1 23000 accept-ipaccess nse 101 - ip-sns 127.0.0.1 7777 + ip-sns 127.0.0.10 7777 nse 102 - ip-sns 127.0.0.1 8888 + ip-sns 127.0.0.11 8888 timer tns-block 3 timer tns-block-retries 3 timer tns-reset 3 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22300 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I1762bfc237e679ee21d0446596f2c4f56f735a9d Gerrit-Change-Number: 22300 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 17:56:20 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 18 Jan 2021 17:56:20 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Osmocom_Types: fix formatting of log line (missing ", ") References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22301 ) Change subject: Osmocom_Types: fix formatting of log line (missing ", ") ...................................................................... Osmocom_Types: fix formatting of log line (missing ", ") Change-Id: If4555cd2902e056b32e835daa741ee84b346b922 --- M library/Osmocom_Types.ttcn 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/01/22301/1 diff --git a/library/Osmocom_Types.ttcn b/library/Osmocom_Types.ttcn index 1cba168..e813a11 100644 --- a/library/Osmocom_Types.ttcn +++ b/library/Osmocom_Types.ttcn @@ -278,7 +278,7 @@ log("f_gen_tmsi(suffix:=", suffix, ", nri_v:=", nri_v, ", nri_bitlen:=", nri_bitlen, ", base_tmsi:=", base_tmsi, ") -> prefix:=", prefix_bits, ", suffix:=", suffix_bits, - "total_bits:=", total_bits, " == ", tmsi); + ", total_bits:=", total_bits, " == ", tmsi); return tmsi; } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22301 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If4555cd2902e056b32e835daa741ee84b346b922 Gerrit-Change-Number: 22301 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 17:56:20 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 18 Jan 2021 17:56:20 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Change logging settings References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22302 ) Change subject: gbproxy: Change logging settings ...................................................................... gbproxy: Change logging settings Change-Id: Ib153cfdb337ea0d748aa18e2b8eb16db01d79edd --- M gbproxy/osmo-gbproxy.cfg 1 file changed, 10 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/02/22302/1 diff --git a/gbproxy/osmo-gbproxy.cfg b/gbproxy/osmo-gbproxy.cfg index 6f4b1e7..53dc0f2 100644 --- a/gbproxy/osmo-gbproxy.cfg +++ b/gbproxy/osmo-gbproxy.cfg @@ -2,6 +2,16 @@ ! Osmocom Gb Proxy (0.9.0.404-6463) configuration saved from vty !! ! +log stderr + logging filter all 1 + logging color 1 + logging print category 1 + logging print category-hex 0 + logging timestamp 1 + logging print file 1 + logging level lns debug + logging level lbssgp debug + logging level gprs debug line vty no login ! -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22302 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ib153cfdb337ea0d748aa18e2b8eb16db01d79edd Gerrit-Change-Number: 22302 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 17:56:21 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 18 Jan 2021 17:56:21 +0000 Subject: Change in osmo-ttcn3-hacks[master]: NS_Emulation: Dynamically compute list of v4/v6 endpoints in SNS-CONFIG References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22303 ) Change subject: NS_Emulation: Dynamically compute list of v4/v6 endpoints in SNS-CONFIG ...................................................................... NS_Emulation: Dynamically compute list of v4/v6 endpoints in SNS-CONFIG Don't hard-code the assumption that we only have a single IP[v4] endpoint. Related: OS#4953 Change-Id: I43fe5810b95ebbc9f848856803ac2c71f80d74f3 --- M library/NS_Emulation.ttcnpp 1 file changed, 40 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/03/22303/1 diff --git a/library/NS_Emulation.ttcnpp b/library/NS_Emulation.ttcnpp index d6c7f61..7bede94 100644 --- a/library/NS_Emulation.ttcnpp +++ b/library/NS_Emulation.ttcnpp @@ -491,6 +491,42 @@ } } + /* generate a list of v4 + v6 endpoints based on the NSVConfigurations. This is not strictly + * accurate, as we should create a list of _endpoints_, while we actually create a list of + * NSVCs. Those are only identical as long as our peer only implements one endpoint */ + private function gen_sns_ip_elems(out template (omit) IP4_Elements v4_out, + out template (omit) IP6_Elements v6_out) runs on NSVC_CT { + var integer i; + var IP4_Elements v4 := {}; + var IP6_Elements v6 := {}; + + for (i := 0; i < lengthof(g_config.nsvc); i := i + 1) { + var NSVCConfiguration nsvc_cfg := g_config.nsvc[i]; + if (not ischosen(nsvc_cfg.provider.ip)) { + continue; + } + if (nsvc_cfg.provider.ip.address_family == AF_INET) { + v4 := v4 & { valueof(ts_SNS_IPv4(nsvc_cfg.provider.ip.local_ip, + nsvc_cfg.provider.ip.local_udp_port)) }; + } else if (nsvc_cfg.provider.ip.address_family == AF_INET6) { + v6 := v6 & { valueof(ts_SNS_IPv6(nsvc_cfg.provider.ip.local_ip, + nsvc_cfg.provider.ip.local_udp_port)) }; + } + } + + /* we must not return empty lists, but 'omit' as otherwise we get wrong SNS IEs */ + if (lengthof(v4) == 0) { + v4_out := omit; + } else { + v4_out := v4; + } + if (lengthof(v6) == 0) { + v6_out := omit; + } else { + v6_out := v6; + } + } + /* simple IP Sub-Network Service responder for the SGSN side. This is not a full implementation * of the protocol, merely sufficient to make the PCU/BSS side happy to proceed */ private altstep as_sns_sgsn() runs on NSVC_CT { @@ -513,9 +549,10 @@ /* blindly acknowledge whatever the PCU sends */ NSCP.send(ts_SNS_CONFIG_ACK(g_config.nsei, omit)); /* send a SNS-CONFIG in response and expect a SNS-CONFIG-ACK */ - var IP4_Elements v4 := { valueof(ts_SNS_IPv4(g_nsvc_config.provider.ip.local_ip, - g_nsvc_config.provider.ip.local_udp_port)) }; - NSCP.send(ts_SNS_CONFIG(g_config.nsei, true, v4)); + var template (omit) IP4_Elements v4; + var template (omit) IP6_Elements v6; + gen_sns_ip_elems(v4, v6); + NSCP.send(ts_SNS_CONFIG(g_config.nsei, true, v4, v6)); alt { [] NSCP.receive(tr_SNS_CONFIG_ACK(g_config.nsei, omit)) { /* success */ -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22303 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I43fe5810b95ebbc9f848856803ac2c71f80d74f3 Gerrit-Change-Number: 22303 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 17:56:21 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 18 Jan 2021 17:56:21 +0000 Subject: Change in osmo-ttcn3-hacks[master]: NS_Emulation: Move SNS handling from NS-VC to NS-VCG References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22304 ) Change subject: NS_Emulation: Move SNS handling from NS-VC to NS-VCG ...................................................................... NS_Emulation: Move SNS handling from NS-VC to NS-VCG We need to move the IP-SNS handling up one layer, as only the NS-VCG knows all the other NS-VCs, and after the SNS-CONFIG-ACK, we must mark all of our NS-VCs as alive and start the alive procedure. Related: OS#4953 Change-Id: Ie0f4342a0346952d7c50ac36900148e311d4c782 --- M library/NS_Emulation.ttcnpp M library/Osmocom_Gb_Types.ttcn 2 files changed, 159 insertions(+), 77 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/04/22304/1 diff --git a/library/NS_Emulation.ttcnpp b/library/NS_Emulation.ttcnpp index 7bede94..03aeb6a 100644 --- a/library/NS_Emulation.ttcnpp +++ b/library/NS_Emulation.ttcnpp @@ -183,7 +183,7 @@ port NS_SP_PT NS_SP; /* port towards the per-NSVC components */ - port NS_PT NSVC; + port NSint_PT NSVC; /* all of the NS configuration a user passes to us */ var NSConfiguration g_config; @@ -202,6 +202,43 @@ type record of NsvcTableEntry NsvcTable; type record of integer ro_integer; + /* internal port from the NS-VC point of view */ + type port NSint_SP_PT message { + in NsUnitdataRequest, + SnsRequest, + NsCtrlRequest; + out NsUnitdataIndication, + SnsIndication, + NsStatusIndication; + } with { extension "internal" }; + + /* internal port from the NS-VCG point of view */ + type port NSint_PT message { + in ASP_Event, + NsStatusIndication, + SnsIndication, + NsUnitdataIndication; + out NsUnitdataRequest, + SnsRequest, + NsCtrlRequest; + } with { extension "internal" }; + + /* Used by NS-VC to report reception of a SNS PDU to NS-VCG */ + type record SnsIndication { + Nsvci nsvci, + PDU_NS ns + }; + + /* Used by NS-VCG to request transmission of a SNS PDU via a NS-VC */ + type record SnsRequest { + Nsvci nsvci, + PDU_NS ns + }; + + type enumerated NsCtrlRequest { + StartAliveProcedure (0) + }; + /* add one NSVC (component and table entry */ function f_nsvc_add(NSVCConfiguration nsvc_cfg) runs on NS_CT { var charstring nsvc_id := g_id & "-NSVCI" & int2str(nsvc_cfg.nsvci); @@ -320,6 +357,9 @@ [] NSVC.receive(tr_NsUdInd(g_config.nsei, ?, ?)) -> value rx_nsudi { NS_SP.send(rx_nsudi); } + + [g_config.handle_sns and g_config.role_sgsn] as_vcg_sns_sgsn(); + [] NSVC.receive(tr_NsUdInd(?, ?, ?)) -> value rx_nsudi { Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, log2str("Received UnitDataInd for invalid NSEI: ", rx_nsudi)); @@ -336,6 +376,92 @@ } } + /* generate a list of v4 + v6 endpoints based on the NSVConfigurations. This is not strictly + * accurate, as we should create a list of _endpoints_, while we actually create a list of + * NSVCs. Those are only identical as long as our peer only implements one endpoint */ + private function gen_sns_ip_elems(out template (omit) IP4_Elements v4_out, + out template (omit) IP6_Elements v6_out) runs on NS_CT { + var integer i; + var IP4_Elements v4 := {}; + var IP6_Elements v6 := {}; + + for (i := 0; i < lengthof(g_config.nsvc); i := i + 1) { + var NSVCConfiguration nsvc_cfg := g_config.nsvc[i]; + if (not ischosen(nsvc_cfg.provider.ip)) { + continue; + } + if (nsvc_cfg.provider.ip.address_family == AF_INET) { + v4 := v4 & { valueof(ts_SNS_IPv4(nsvc_cfg.provider.ip.local_ip, + nsvc_cfg.provider.ip.local_udp_port)) }; + } else if (nsvc_cfg.provider.ip.address_family == AF_INET6) { + v6 := v6 & { valueof(ts_SNS_IPv6(nsvc_cfg.provider.ip.local_ip, + nsvc_cfg.provider.ip.local_udp_port)) }; + } + } + + /* we must not return empty lists, but 'omit' as otherwise we get wrong SNS IEs */ + if (lengthof(v4) == 0) { + v4_out := omit; + } else { + v4_out := v4; + } + if (lengthof(v6) == 0) { + v6_out := omit; + } else { + v6_out := v6; + } + } + + /* simple IP Sub-Network Service responder for the SGSN side. This is not a full implementation + * of the protocol, merely sufficient to make the PCU/BSS side happy to proceed */ + private altstep as_vcg_sns_sgsn() runs on NS_CT { + var SnsIndication sind; + var NSVC_CT vc; + [] NSVC.receive(SnsIndication:{?, tr_SNS_SIZE(g_config.nsei)}) -> value sind sender vc { + /* blindly acknowledge whatever the PCU sends */ + NSVC.send(SnsRequest:{sind.nsvci, ts_SNS_SIZE_ACK(g_config.nsei, omit)}) to vc; + } + /* FIXME: We assume our peer has only one endpoint */ + [] NSVC.receive(SnsIndication:{?, tr_SNS_CONFIG(g_config.nsei, true, + {tr_SNS_IPv4(g_config.nsvc[0].provider.ip.remote_ip, + g_config.nsvc[0].provider.ip.remote_udp_port)})}) + -> value sind sender vc { + /* blindly acknowledge whatever the PCU sends */ + NSVC.send(SnsRequest:{sind.nsvci, ts_SNS_CONFIG_ACK(g_config.nsei, omit)}) to vc; + /* send a SNS-CONFIG in response and expect a SNS-CONFIG-ACK */ + var template (omit) IP4_Elements v4; + var template (omit) IP6_Elements v6; + gen_sns_ip_elems(v4, v6); + NSVC.send(SnsRequest:{sind.nsvci, + ts_SNS_CONFIG(g_config.nsei, true, v4, v6)}) to vc; + alt { + [] NSVC.receive(SnsIndication:{sind.nsvci, + tr_SNS_CONFIG_ACK(g_config.nsei, omit)}) from vc { + /* success */ + log("SNS Config succeeded. Sending Alive"); + /* inform all NS-VC that they are now considered alive */ + for (var integer i := 0; i < lengthof(g_nsvcs); i := i+1) { + NSVC.send(NsCtrlRequest:StartAliveProcedure) to g_nsvcs[i].vc_conn; + } + } + [] NSVC.receive(SnsIndication:{sind.nsvci, + tr_SNS_CONFIG_ACK(g_config.nsei, ?)}) from vc { + setverdict(fail, "Unexpected SNS-CONFIG-NACK"); + self.stop; + } + } + } + [] NSVC.receive(SnsIndication:{?, tr_SNS_CONFIG(g_config.nsei, false, ?)}) { /* ignore */} + [] NSVC.receive(SnsIndication:{?, tr_SNS_CONFIG(g_config.nsei, true, ?)}) { + setverdict(fail, "Unexpected SNS-CONFIG content"); + self.stop; + } + [] NSVC.receive(SnsIndication:{?, tr_SNS_CONFIG(?, ?, ?)}) { + setverdict(fail, "SNS-CONFIG from unexpected NSEI"); + self.stop; + } + } + /*********************************************************************** per-NSVC component. Exists once for each NS-VC in the NS-VCG ***********************************************************************/ @@ -349,7 +475,7 @@ #endif /* port towards the NS_CT */ - port NS_SP_PT NS_SP; + port NSint_SP_PT NS_SP; /* configuration passed by the user */ var NSVCConfiguration g_nsvc_config; @@ -454,7 +580,7 @@ [not g_config.handle_sns] as_handle_reset(); - [g_config.role_sgsn and g_config.handle_sns and ischosen(g_nsvc_config.provider.ip)] as_sns_sgsn(); + [g_config.handle_sns and ischosen(g_nsvc_config.provider.ip)] as_nsvc_sns(); /* default case of handling unknown PDUs */ [] NSCP.receive(PDU_NS: ?) -> value rf { @@ -491,90 +617,32 @@ } } - /* generate a list of v4 + v6 endpoints based on the NSVConfigurations. This is not strictly - * accurate, as we should create a list of _endpoints_, while we actually create a list of - * NSVCs. Those are only identical as long as our peer only implements one endpoint */ - private function gen_sns_ip_elems(out template (omit) IP4_Elements v4_out, - out template (omit) IP6_Elements v6_out) runs on NSVC_CT { - var integer i; - var IP4_Elements v4 := {}; - var IP6_Elements v6 := {}; - - for (i := 0; i < lengthof(g_config.nsvc); i := i + 1) { - var NSVCConfiguration nsvc_cfg := g_config.nsvc[i]; - if (not ischosen(nsvc_cfg.provider.ip)) { - continue; - } - if (nsvc_cfg.provider.ip.address_family == AF_INET) { - v4 := v4 & { valueof(ts_SNS_IPv4(nsvc_cfg.provider.ip.local_ip, - nsvc_cfg.provider.ip.local_udp_port)) }; - } else if (nsvc_cfg.provider.ip.address_family == AF_INET6) { - v6 := v6 & { valueof(ts_SNS_IPv6(nsvc_cfg.provider.ip.local_ip, - nsvc_cfg.provider.ip.local_udp_port)) }; - } - } - - /* we must not return empty lists, but 'omit' as otherwise we get wrong SNS IEs */ - if (lengthof(v4) == 0) { - v4_out := omit; - } else { - v4_out := v4; - } - if (lengthof(v6) == 0) { - v6_out := omit; - } else { - v6_out := v6; - } - } - - /* simple IP Sub-Network Service responder for the SGSN side. This is not a full implementation - * of the protocol, merely sufficient to make the PCU/BSS side happy to proceed */ - private altstep as_sns_sgsn() runs on NSVC_CT { + private altstep as_nsvc_sns() runs on NSVC_CT { var PDU_NS rf; + var SnsRequest sreq; [] NSCP.receive(NS_Provider_Evt:{link_status:=NS_PROV_LINK_STATUS_UP}) { log("Provider Link came up. Waiting for SNS Size"); - } + } - [] NSCP.receive(tr_SNS_SIZE(g_config.nsei)) -> value rf { - /* blindly acknowledge whatever the PCU sends */ - NSCP.send(ts_SNS_SIZE_ACK(g_config.nsei, omit)); + /* pass up to NS-VCG */ + [] NSCP.receive(tr_SNS(g_config.nsei)) -> value rf { + NS_SP.send(SnsIndication:{g_nsvc_config.nsvci, rf}); } - [] NSCP.receive(tr_SNS_SIZE(?)) { - setverdict(fail, "SNS-SIZE from unexpected NSEI"); + [] NSCP.receive(tr_SNS(?)) -> value rf { + setverdict(fail, "SNS from unexpected NSEI: ", rf); self.stop; } - [] NSCP.receive(tr_SNS_CONFIG(g_config.nsei, true, - {tr_SNS_IPv4(g_nsvc_config.provider.ip.remote_ip, - g_nsvc_config.provider.ip.remote_udp_port)})) -> value rf { - /* blindly acknowledge whatever the PCU sends */ - NSCP.send(ts_SNS_CONFIG_ACK(g_config.nsei, omit)); - /* send a SNS-CONFIG in response and expect a SNS-CONFIG-ACK */ - var template (omit) IP4_Elements v4; - var template (omit) IP6_Elements v6; - gen_sns_ip_elems(v4, v6); - NSCP.send(ts_SNS_CONFIG(g_config.nsei, true, v4, v6)); - alt { - [] NSCP.receive(tr_SNS_CONFIG_ACK(g_config.nsei, omit)) { - /* success */ - log("SNS Config succeeded. Sending Alive"); - f_change_state(NSVC_S_ALIVE_UNBLOCKED); - f_sendAlive(); - Tns_test.start; - } - [] NSCP.receive(tr_SNS_CONFIG_ACK(g_config.nsei, ?)) { - setverdict(fail, "Unexpected SNS-CONFIG-NACK"); - self.stop; - } - } + [] NS_SP.receive(SnsRequest:{g_nsvc_config.nsvci, ?}) -> value sreq { + NSCP.send(sreq.ns); } - [] NSCP.receive(tr_SNS_CONFIG(g_config.nsei, false, ?)) { /* ignore */} - [] NSCP.receive(tr_SNS_CONFIG(g_config.nsei, true, ?)) { - setverdict(fail, "Unexpected SNS-CONFIG content"); + [] NS_SP.receive(SnsRequest:?) -> value sreq { + setverdict(fail, "Unexpected SNS from NSVC: ", sreq); self.stop; } - [] NSCP.receive(tr_SNS_CONFIG(?, ?, ?)) { - setverdict(fail, "SNS-CONFIG from unexpected NSEI"); - self.stop; + [] NS_SP.receive(NsCtrlRequest:StartAliveProcedure) { + f_change_state(NSVC_S_ALIVE_UNBLOCKED); + f_sendAlive(); + Tns_test.start; } } diff --git a/library/Osmocom_Gb_Types.ttcn b/library/Osmocom_Gb_Types.ttcn index f97b9b0..9065097 100644 --- a/library/Osmocom_Gb_Types.ttcn +++ b/library/Osmocom_Gb_Types.ttcn @@ -531,6 +531,10 @@ var template ListofIP4Elements r; if (istemplatekind(elem, "omit")) { return omit; + } else if (istemplatekind(elem, "*")) { + return *; + } else if (istemplatekind(elem, "?")) { + return ?; } else { r := { iEI := '05'O, @@ -568,6 +572,8 @@ return omit; } else if (istemplatekind(elem, "*")) { return *; + } else if (istemplatekind(elem, "?")) { + return ?; } else { r := { iEI := '06'O, @@ -722,6 +728,14 @@ } } + template PDU_NS tr_SNS(template Nsei nsei) := ( tr_SNS_SIZE(nsei), + tr_SNS_SIZE_ACK(nsei, *), + tr_SNS_CONFIG(nsei, ?, *, *), + tr_SNS_CONFIG_ACK(nsei, *), + tr_SNS_ADD(nsei, ?, *, *), + tr_SNS_DEL(nsei, ?, *, *), + tr_SNS_CHG_WEIGHT(nsei, ?, *, *), + tr_SNS_ACK(nsei, ?, *, *, *) ) -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22304 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ie0f4342a0346952d7c50ac36900148e311d4c782 Gerrit-Change-Number: 22304 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 17:56:22 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 18 Jan 2021 17:56:22 +0000 Subject: Change in osmo-ttcn3-hacks[master]: NS_Emulation: Respect data_weight==0 or signalling_weight==0 References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22305 ) Change subject: NS_Emulation: Respect data_weight==0 or signalling_weight==0 ...................................................................... NS_Emulation: Respect data_weight==0 or signalling_weight==0 * allow configuration of signalling + data weight for each NS-VC * advertise per-NSVC signalling/data weight in SNS-CONFIG * keep track of unblocked NS-VCS separately for data / signalling * transmit BVCI=0 traffic only over signalling NS-VC * transmit BVCI>0 traffic only over data NS-VC * accept incoming BVCI=0 traffic only if signalling_weight > 0 * accept incoming BVCI>0 traffic only if data_weight > 0 Related: OS#4953 Change-Id: I9798e639b4bc8658482945970775b012b5840779 --- M gbproxy/GBProxy_Tests.ttcn M library/NS_Emulation.ttcnpp M library/Osmocom_Gb_Types.ttcn M pcu/PCU_Tests.cfg M pcu/PCU_Tests_SNS.cfg M pcu/PCU_Tests_SNSv6.cfg M sgsn/SGSN_Tests.ttcn 7 files changed, 153 insertions(+), 33 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/05/22305/1 diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index 013dc93..39d7432 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -67,11 +67,14 @@ local_udp_port := 7777, local_ip := "127.0.0.10", remote_udp_port := 23000, - remote_ip := "127.0.0.1" + remote_ip := "127.0.0.1", + data_weight := 0, + signalling_weight := 1 } }, nsvci := 101 } + } }, { nsei := 102, @@ -85,7 +88,9 @@ local_udp_port := 8888, local_ip := "127.0.0.11", remote_udp_port := 23000, - remote_ip := "127.0.0.1" + remote_ip := "127.0.0.1", + data_weight := 0, + signalling_weight := 1 } }, nsvci := 102 @@ -109,7 +114,9 @@ local_udp_port := 21010, local_ip := "127.0.1.1", remote_udp_port := 23000, - remote_ip := "127.0.0.1" + remote_ip := "127.0.0.1", + data_weight := 1, + signalling_weight := 1 } }, nsvci := 2101 @@ -128,7 +135,9 @@ local_udp_port := 21020, local_ip := "127.0.2.1", remote_udp_port := 23000, - remote_ip := "127.0.0.1" + remote_ip := "127.0.0.1", + data_weight := 1, + signalling_weight := 1 } }, nsvci := 2102 @@ -147,7 +156,9 @@ local_udp_port := 21030, local_ip := "127.0.3.1", remote_udp_port := 23000, - remote_ip := "127.0.0.1" + remote_ip := "127.0.0.1", + data_weight := 1, + signalling_weight := 1 } }, nsvci := 2103 diff --git a/library/NS_Emulation.ttcnpp b/library/NS_Emulation.ttcnpp index 03aeb6a..61ebe95 100644 --- a/library/NS_Emulation.ttcnpp +++ b/library/NS_Emulation.ttcnpp @@ -1,5 +1,5 @@ /* GPRS-NS Emulation in TTCN-3 - * (C) 2018-2020 Harald Welte + * (C) 2018-2021 Harald Welte * contributions by sysmocom - s.f.m.c. GmbH * All rights reserved. * @@ -152,7 +152,9 @@ PortNumber local_udp_port, charstring local_ip, PortNumber remote_udp_port, - charstring remote_ip + charstring remote_ip, + uint8_t data_weight, + uint8_t signalling_weight }; type record NSVCConfigurationFR { charstring netdev, /* HDLC net-device for AF_PACKET socket */ @@ -192,10 +194,11 @@ /* references to the per-NSVC components */ var NsvcTable g_nsvcs := {}; /* list of indexes to g_nsvcs[] of currently unblocked NSVCs */ - var ro_integer g_unblocked_nsvcs := {}; + var ro_integer g_unblocked_nsvcs_sig := {}; + var ro_integer g_unblocked_nsvcs_data := {}; }; type record NsvcTableEntry { - Nsvci nsvci, + NSVCConfiguration cfg, NSVC_CT vc_conn, NsvcState state }; @@ -244,7 +247,7 @@ var charstring nsvc_id := g_id & "-NSVCI" & int2str(nsvc_cfg.nsvci); var NsvcTableEntry te; - te.nsvci := nsvc_cfg.nsvci; + te.cfg := nsvc_cfg; te.vc_conn := NSVC_CT.create(nsvc_id); te.state := NSVC_S_DEAD_BLOCKED; @@ -258,7 +261,7 @@ function f_nsvc_find_idx(Nsvci nsvci) runs on NS_CT return integer { var integer i; for (i := 0; i < lengthof(g_nsvcs); i := i+1) { - if (g_nsvcs[i].nsvci == nsvci) { + if (g_nsvcs[i].cfg.nsvci == nsvci) { return i; } } @@ -281,16 +284,32 @@ } if (g_nsvcs[i].state != NSVC_S_ALIVE_UNBLOCKED and state == NSVC_S_ALIVE_UNBLOCKED) { /* add index to list of unblocked NSVCs */ - g_unblocked_nsvcs := g_unblocked_nsvcs & {i}; + if (not ischosen(g_nsvcs[i].cfg.provider.ip) or + g_nsvcs[i].cfg.provider.ip.signalling_weight > 0) { + g_unblocked_nsvcs_sig := g_unblocked_nsvcs_sig & {i}; + } + if (not ischosen(g_nsvcs[i].cfg.provider.ip) or + g_nsvcs[i].cfg.provider.ip.data_weight > 0) { + g_unblocked_nsvcs_data := g_unblocked_nsvcs_data & {i}; + } } else if (g_nsvcs[i].state == NSVC_S_ALIVE_UNBLOCKED and state != NSVC_S_ALIVE_UNBLOCKED) { /* remove index to list of unblocked NSVCs */ - var ro_integer new_unblocked_nsvcs := {}; - for (var integer j := 0; j < lengthof(g_unblocked_nsvcs); j := j+1) { - if (g_unblocked_nsvcs[j] != i) { - new_unblocked_nsvcs := new_unblocked_nsvcs & {j}; + var ro_integer new_unblocked_nsvcs_sig := {}; + for (var integer j := 0; j < lengthof(g_unblocked_nsvcs_sig); j := j+1) { + if (g_unblocked_nsvcs_sig[j] != i) { + new_unblocked_nsvcs_sig := new_unblocked_nsvcs_sig & {j}; } } - g_unblocked_nsvcs := new_unblocked_nsvcs; + g_unblocked_nsvcs_sig := new_unblocked_nsvcs_sig; + + var ro_integer new_unblocked_nsvcs_data := {}; + for (var integer j := 0; j < lengthof(g_unblocked_nsvcs_data); j := j+1) { + if (g_unblocked_nsvcs_data[j] != i) { + new_unblocked_nsvcs_data := new_unblocked_nsvcs_data & {j}; + } + } + g_unblocked_nsvcs_data := new_unblocked_nsvcs_data; + } g_nsvcs[i].state := state; } @@ -365,11 +384,17 @@ log2str("Received UnitDataInd for invalid NSEI: ", rx_nsudi)); } /* from user down to NS-VC */ - [] NS_SP.receive(tr_NsUdReq(g_config.nsei, ?, ?, ?, *)) -> value rx_nsudr { + [] NS_SP.receive(tr_NsUdReq(g_config.nsei, 0, ?, ?, *)) -> value rx_nsudr { /* load distribution function */ - var integer nsvc_idx := g_unblocked_nsvcs[rx_nsudr.lsp mod lengthof(g_unblocked_nsvcs)]; + var integer nsvc_idx := g_unblocked_nsvcs_sig[rx_nsudr.lsp mod lengthof(g_unblocked_nsvcs_sig)]; NSVC.send(rx_nsudr) to g_nsvcs[nsvc_idx].vc_conn; } + [] NS_SP.receive(tr_NsUdReq(g_config.nsei, ?, ?, ?, *)) -> value rx_nsudr { + /* load distribution function */ + var integer nsvc_idx := g_unblocked_nsvcs_data[rx_nsudr.lsp mod lengthof(g_unblocked_nsvcs_data)]; + NSVC.send(rx_nsudr) to g_nsvcs[nsvc_idx].vc_conn; + } + [] NS_SP.receive(tr_NsUdReq(?, ?, ?, ?, *)) -> value rx_nsudr { Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, log2str("Received NsUnitdataReq for invalid NSEI: ", rx_nsudr)); @@ -392,10 +417,14 @@ } if (nsvc_cfg.provider.ip.address_family == AF_INET) { v4 := v4 & { valueof(ts_SNS_IPv4(nsvc_cfg.provider.ip.local_ip, - nsvc_cfg.provider.ip.local_udp_port)) }; + nsvc_cfg.provider.ip.local_udp_port, + nsvc_cfg.provider.ip.signalling_weight, + nsvc_cfg.provider.ip.data_weight)) }; } else if (nsvc_cfg.provider.ip.address_family == AF_INET6) { v6 := v6 & { valueof(ts_SNS_IPv6(nsvc_cfg.provider.ip.local_ip, - nsvc_cfg.provider.ip.local_udp_port)) }; + nsvc_cfg.provider.ip.local_udp_port, + nsvc_cfg.provider.ip.signalling_weight, + nsvc_cfg.provider.ip.data_weight)) }; } } @@ -690,18 +719,66 @@ /* tolerate a late NS-UNBLOCK-ACK from peer */ [] NSCP.receive(t_NS_UNBLOCK_ACK) -> value rf { } + + [not ischosen(g_nsvc_config.provider.ip) or + g_nsvc_config.provider.ip.data_weight > 0] as_alive_unblocked_data(); + + [not ischosen(g_nsvc_config.provider.ip) or + g_nsvc_config.provider.ip.signalling_weight > 0] as_alive_unblocked_sig(); + + /* catch any violations of above rule */ + [ischosen(g_nsvc_config.provider.ip)] NSCP.receive(tr_NS_UNITDATA(?, ?, ?)) -> value rf { + Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, + log2str("Unexpected Rx NS-UNITDATA on NSVC with data_weight=", + g_nsvc_config.provider.ip.data_weight, ", sig_weight=", + g_nsvc_config.provider.ip.signalling_weight, ": ", rf)); + } + [ischosen(g_nsvc_config.provider.ip)] NS_SP.receive(tr_NsUdReq(g_config.nsei, ?, ?, *, *)) -> value ud_req { + Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, + log2str("Unexpected Rx TX-UNITDATA on NSVC with data_weight=", + g_nsvc_config.provider.ip.data_weight, ", sig_weight=", + g_nsvc_config.provider.ip.signalling_weight, ": ", ud_req)); + } + } + + /* user data transfer; only permitted for some NS-VC */ + private altstep as_alive_unblocked_data() runs on NSVC_CT { + var NsUnitdataRequest ud_req; + var PDU_NS rf; /* NS-UNITDATA PDU from network to NS-UNITDATA.ind to user */ - [] NSCP.receive(tr_NS_UNITDATA(?, ?, ?)) -> value rf { + [] NSCP.receive(tr_NS_UNITDATA_User(?, ?)) -> value rf { NS_SP.send(ts_NsUdInd(g_config.nsei, g_nsvc_config.nsvci, oct2int(rf.pDU_NS_Unitdata.bVCI), rf.pDU_NS_Unitdata.nS_SDU)); } /* NS-UNITDATA.req from user to NS-UNITDATA PDU on network */ - [] NS_SP.receive(tr_NsUdReq(g_config.nsei, ?, ?, ?, omit)) -> value ud_req { + [] NS_SP.receive(tr_NsUdReq(g_config.nsei, t_BssgpBvciUser, ?, ?, omit)) -> value ud_req { /* using raw octetstring PDU */ NSCP.send(ts_NS_UNITDATA(t_SduCtrlB, ud_req.bvci, ud_req.sdu)); } - [] NS_SP.receive(tr_NsUdReq(g_config.nsei, ?, ?, omit, ?)) -> value ud_req { + [] NS_SP.receive(tr_NsUdReq(g_config.nsei, t_BssgpBvciUser, ?, omit, ?)) -> value ud_req { + /* using decoded BSSGP PDU that we need to encode first */ + var octetstring enc := enc_PDU_BSSGP(ud_req.bssgp); + NSCP.send(ts_NS_UNITDATA(t_SduCtrlB, ud_req.bvci, enc)); + } + } + + /* signalling (BVCI=0) transfer; only permitted for some NS-VC */ + private altstep as_alive_unblocked_sig() runs on NSVC_CT { + var NsUnitdataRequest ud_req; + var PDU_NS rf; + /* NS-UNITDATA PDU from network to NS-UNITDATA.ind to user */ + [] NSCP.receive(tr_NS_UNITDATA(?, 0, ?)) -> value rf { + NS_SP.send(ts_NsUdInd(g_config.nsei, g_nsvc_config.nsvci, + oct2int(rf.pDU_NS_Unitdata.bVCI), + rf.pDU_NS_Unitdata.nS_SDU)); + } + /* NS-UNITDATA.req from user to NS-UNITDATA PDU on network */ + [] NS_SP.receive(tr_NsUdReq(g_config.nsei, 0, ?, ?, omit)) -> value ud_req { + /* using raw octetstring PDU */ + NSCP.send(ts_NS_UNITDATA(t_SduCtrlB, ud_req.bvci, ud_req.sdu)); + } + [] NS_SP.receive(tr_NsUdReq(g_config.nsei, 0, ?, omit, ?)) -> value ud_req { /* using decoded BSSGP PDU that we need to encode first */ var octetstring enc := enc_PDU_BSSGP(ud_req.bssgp); NSCP.send(ts_NS_UNITDATA(t_SduCtrlB, ud_req.bvci, enc)); diff --git a/library/Osmocom_Gb_Types.ttcn b/library/Osmocom_Gb_Types.ttcn index 9065097..9e4d702 100644 --- a/library/Osmocom_Gb_Types.ttcn +++ b/library/Osmocom_Gb_Types.ttcn @@ -14,6 +14,8 @@ type uint16_t Nsei; type uint16_t BssgpBvci; + template (present) BssgpBvci t_BssgpBvciUser := complement (0); + /* TS 48.016 10.3.7 */ type enumerated NsPduType { NS_PDUT_NS_UNITDATA ('00000000'B), @@ -407,6 +409,14 @@ nS_SDU := sdu } } + template PDU_NS tr_NS_UNITDATA_User(template NS_SDU_ControlBits bits, template octetstring sdu) := { + pDU_NS_Unitdata := { + nsPduType := '00'O, + nS_SDU_ControlBits := bits, + bVCI := complement ('0000'O), + nS_SDU := sdu + } + } diff --git a/pcu/PCU_Tests.cfg b/pcu/PCU_Tests.cfg index 13bedec..dfebb40 100644 --- a/pcu/PCU_Tests.cfg +++ b/pcu/PCU_Tests.cfg @@ -18,7 +18,9 @@ local_ip := "127.0.0.1", local_udp_port := 23000, remote_ip := "127.0.0.1", - remote_udp_port := 22000 + remote_udp_port := 22000, + data_weight := 1, + signalling_weight := 1 } }, nsvci := 1234 @@ -30,7 +32,10 @@ local_ip := "127.0.0.1", local_udp_port := 23001, remote_ip := "127.0.0.1", - remote_udp_port := 22000 + remote_udp_port := 22000, + data_weight := 1, + signalling_weight := 1 + } } }, nsvci := 1234 @@ -42,7 +47,10 @@ local_ip := "127.0.0.1", local_udp_port := 23002, remote_ip := "127.0.0.1", - remote_udp_port := 22000 + remote_udp_port := 22000, + data_weight := 1, + signalling_weight := 1 + } } }, nsvci := 1234 diff --git a/pcu/PCU_Tests_SNS.cfg b/pcu/PCU_Tests_SNS.cfg index ab589c5..c36edac 100644 --- a/pcu/PCU_Tests_SNS.cfg +++ b/pcu/PCU_Tests_SNS.cfg @@ -17,7 +17,9 @@ local_ip := "127.0.0.1", local_udp_port := 23000, remote_ip := "127.0.0.1", - remote_udp_port := 22000 + remote_udp_port := 22000, + data_weight := 1, + signalling_weight := 1 } }, nsvci := 1234 @@ -29,7 +31,9 @@ local_ip := "127.0.0.1", local_udp_port := 23001, remote_ip := "127.0.0.1", - remote_udp_port := 22000 + remote_udp_port := 22000, + data_weight := 1, + signalling_weight := 1 } }, nsvci := 1234 @@ -41,7 +45,9 @@ local_ip := "127.0.0.1", local_udp_port := 23002, remote_ip := "127.0.0.1", - remote_udp_port := 22000 + remote_udp_port := 22000, + data_weight := 1, + signalling_weight := 1 } }, nsvci := 1234 diff --git a/pcu/PCU_Tests_SNSv6.cfg b/pcu/PCU_Tests_SNSv6.cfg index cae9a75..3747f0a 100644 --- a/pcu/PCU_Tests_SNSv6.cfg +++ b/pcu/PCU_Tests_SNSv6.cfg @@ -18,6 +18,8 @@ local_udp_port := 23000, remote_ip := "::1", remote_udp_port := 22000, + data_weight := 1, + signalling_weight := 1 } }, nsvci := 1234 diff --git a/sgsn/SGSN_Tests.ttcn b/sgsn/SGSN_Tests.ttcn index fe31ffc..7d47a1f 100644 --- a/sgsn/SGSN_Tests.ttcn +++ b/sgsn/SGSN_Tests.ttcn @@ -80,7 +80,9 @@ local_udp_port := 21010, local_ip := "127.0.0.1", remote_udp_port := 23000, - remote_ip := "127.0.0.1" + remote_ip := "127.0.0.1", + data_weight := 1, + signalling_weight := 1 } }, nsvci := 97 @@ -99,7 +101,9 @@ local_udp_port := 21011, local_ip := "127.0.0.1", remote_udp_port := 23000, - remote_ip := "127.0.0.1" + remote_ip := "127.0.0.1", + data_weight := 1, + signalling_weight := 1 } }, nsvci := 98 @@ -118,7 +122,9 @@ local_udp_port := 21012, local_ip := "127.0.0.1", remote_udp_port := 23000, - remote_ip := "127.0.0.1" + remote_ip := "127.0.0.1", + data_weight := 1, + signalling_weight := 1 } }, nsvci := 99 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22305 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I9798e639b4bc8658482945970775b012b5840779 Gerrit-Change-Number: 22305 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 17:56:22 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 18 Jan 2021 17:56:22 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Use separate NS-VC for data / signalling on SGSN side References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22306 ) Change subject: gbproxy: Use separate NS-VC for data / signalling on SGSN side ...................................................................... gbproxy: Use separate NS-VC for data / signalling on SGSN side As we know, many production deployments have SGSN architectures with clear control / user plane split. In such situations, IP-SNS of the SGSN informs us of two (classes of) IP endpoints: some that have control_weight > 0 and data_weight 0 some that have control_weight 0 and data_weight > 0 Let's adjust the GBProxy_Tests.ttcn to use such a configuration for each of the two simulated SGSNs. Change-Id: If0e404bdf2c30a5e18748695608611be83f61109 Closes: OS#4953 --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 26 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/06/22306/1 diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index 39d7432..2fa1670 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -73,6 +73,19 @@ } }, nsvci := 101 + }, { + provider := { + ip := { + address_family := AF_INET, + local_udp_port := 7770, + local_ip := "127.0.0.10", + remote_udp_port := 23000, + remote_ip := "127.0.0.1", + data_weight := 1, + signalling_weight := 0 + } + }, + nsvci := 201 } } @@ -94,6 +107,19 @@ } }, nsvci := 102 + }, { + provider := { + ip := { + address_family := AF_INET, + local_udp_port := 8880, + local_ip := "127.0.0.11", + remote_udp_port := 23000, + remote_ip := "127.0.0.1", + data_weight := 1, + signalling_weight := 0 + } + }, + nsvci := 202 } } } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22306 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If0e404bdf2c30a5e18748695608611be83f61109 Gerrit-Change-Number: 22306 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 17:58:34 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 18 Jan 2021 17:58:34 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Add tests for RADIO-STATUS with TMSI and IMSI instead of TLLI In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22250 ) Change subject: gbproxy: Add tests for RADIO-STATUS with TMSI and IMSI instead of TLLI ...................................................................... gbproxy: Add tests for RADIO-STATUS with TMSI and IMSI instead of TLLI Change-Id: Ib3b052a12227a8f55cf063e5168b56f97b9a8f9b Related: OS#4954 Related: OS#4951 --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 79 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve daniel: Looks good to me, approved diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index f5248aa..38e695a 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -784,6 +784,44 @@ } } +/* Send 'tx' from PCU; expect 'exp_rx' on _any_ SGSN */ +friend function f_pcu2any_sgsn(template (value) PDU_BSSGP tx, template (present) PDU_BSSGP exp_rx, + integer pcu_idx := 0, boolean use_sig := false) +runs on BSSGP_ConnHdlr return integer { + var integer rx_idx := -1; + var PDU_BSSGP rx; + timer T := 1.0; + + if (use_sig) { + PCU_SIG[pcu_idx].send(tx); + } else { + PCU_PTP[pcu_idx].send(tx); + } + + T.start; + alt { + [use_sig] any from SGSN_SIG.receive(exp_rx) -> @index value rx_idx { + setverdict(pass); + } + [not use_sig] any from SGSN_PTP.receive(exp_rx) -> @index value rx_idx { + setverdict(pass); + } + [] any from SGSN_PTP.receive(PDU_BSSGP:?) -> value rx @index value rx_idx { + setverdict(fail, "Unexpected BSSGP on SGSN[", rx_idx, "] side: ", rx); + mtc.stop; + } + [] any from SGSN_SIG.receive(PDU_BSSGP:?) -> value rx @index value rx_idx { + setverdict(fail, "Unexpected SIG BSSGP on SGSN[", rx_idx, "] side: ", rx); + mtc.stop; + } + [] T.timeout { + setverdict(fail, "Timeout waiting for BSSGP on SGSN side: ", exp_rx); + mtc.stop; + } + } + return rx_idx; +} + /* Send 'tx' on PTP-BVCI from SGSN; expect 'rx' on PCU */ friend function f_sgsn2pcu(template (value) PDU_BSSGP tx, template (present) PDU_BSSGP exp_rx, integer pcu_idx := 0, boolean use_sig := false) runs on BSSGP_ConnHdlr { @@ -1087,6 +1125,45 @@ f_cleanup(); } +private function f_TC_radio_status_tmsi(charstring id) runs on BSSGP_ConnHdlr { + var integer i; + var BssgpRadioCause cause := BSSGP_RADIO_CAUSE_CONTACT_LOST; + for (i := 0; i < 10; i := i+1) { + var integer tmsi_int := oct2int(g_pars.p_tmsi); + var template (value) PDU_BSSGP pdu_tx := ts_BSSGP_RADIO_STATUS(omit, cause, tmsi_int); + /* we cannot use pdu_tx as there are some subtle differences in the length field :/ */ + var template (present) PDU_BSSGP pdu_rx := tr_BSSGP_RADIO_STATUS(omit, cause, tmsi_int); + f_pcu2sgsn(pdu_tx, pdu_rx); + } + setverdict(pass); +} +testcase TC_radio_status_tmsi() runs on test_CT +{ + f_init(); + f_start_handlers(refers(f_TC_radio_status_tmsi), testcasename(), 5); + f_cleanup(); +} + +private function f_TC_radio_status_imsi(charstring id) runs on BSSGP_ConnHdlr { + var integer i; + var BssgpRadioCause cause := BSSGP_RADIO_CAUSE_CONTACT_LOST; + for (i := 0; i < 10; i := i+1) { + var template (value) PDU_BSSGP pdu_tx := ts_BSSGP_RADIO_STATUS(omit, cause, imsi := g_pars.imsi); + /* we cannot use pdu_tx as there are some subtle differences in the length field :/ */ + var template (present) PDU_BSSGP pdu_rx := tr_BSSGP_RADIO_STATUS(omit, cause, imsi := g_pars.imsi); + f_pcu2any_sgsn(pdu_tx, pdu_rx); + } + setverdict(pass); +} +testcase TC_radio_status_imsi() runs on test_CT +{ + f_init(); + f_start_handlers(refers(f_TC_radio_status_imsi), testcasename(), 5); + f_cleanup(); +} + + + private function f_suspend_one(integer sgsn_idx, integer nri_idx, integer pcu_idx, integer bvc_idx, integer suffix) runs on GlobalTest_CT @@ -2909,6 +2986,8 @@ execute( TC_ra_capability() ); execute( TC_ra_capability_upd() ); execute( TC_radio_status() ); + execute( TC_radio_status_tmsi() ); + execute( TC_radio_status_imsi() ); execute( TC_suspend() ); execute( TC_resume() ); execute( TC_trace() ); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22250 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ib3b052a12227a8f55cf063e5168b56f97b9a8f9b Gerrit-Change-Number: 22250 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 17:58:41 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 18 Jan 2021 17:58:41 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BSGSP_Emulation: Route STATUS to GLOBAL port for both SIG and PTP In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22256 ) Change subject: BSGSP_Emulation: Route STATUS to GLOBAL port for both SIG and PTP ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22256 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I6573562c0e7638f153798ee178c7c69d07c26756 Gerrit-Change-Number: 22256 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 17:58:41 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 17:58:46 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 18 Jan 2021 17:58:46 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Add test cases for STATUS handling In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22257 ) Change subject: gbproxy: Add test cases for STATUS handling ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22257 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If2ddd158346a3da340f1c673354196f3872c4f67 Gerrit-Change-Number: 22257 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 17:58:46 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 17:58:55 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 18 Jan 2021 17:58:55 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BSGSP_Emulation: Route STATUS to GLOBAL port for both SIG and PTP In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22256 ) Change subject: BSGSP_Emulation: Route STATUS to GLOBAL port for both SIG and PTP ...................................................................... BSGSP_Emulation: Route STATUS to GLOBAL port for both SIG and PTP Change-Id: I6573562c0e7638f153798ee178c7c69d07c26756 Related: OS#4951 --- M library/BSSGP_Emulation.ttcnpp 1 file changed, 14 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified daniel: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/library/BSSGP_Emulation.ttcnpp b/library/BSSGP_Emulation.ttcnpp index 5c825d6..7996f96 100644 --- a/library/BSSGP_Emulation.ttcnpp +++ b/library/BSSGP_Emulation.ttcnpp @@ -1,7 +1,7 @@ module BSSGP_Emulation { /* BSSGP Emulation in TTCN-3 - * (C) 2018-2020 Harald Welte + * (C) 2018-2021 Harald Welte * All rights reserved. * * Released under the terms of GNU General Public License, Version 2 or @@ -306,7 +306,7 @@ private template PDU_BSSGP tr_GLOBAL_SIG := ( {pDU_BSSGP_SUSPEND:=?}, {pDU_BSSGP_SUSPEND_ACK:=?}, {pDU_BSSGP_SUSPEND_NACK:=?}, {pDU_BSSGP_RESUME:=?}, {pDU_BSSGP_RESUME_ACK:=?}, {pDU_BSSGP_RESUME_NACK:=?}, - {pDU_BSSGP_SGSN_INVOKE_TRACE:=?}, {pDU_BSSGP_OVERLOAD:=?} + {pDU_BSSGP_SGSN_INVOKE_TRACE:=?}, {pDU_BSSGP_OVERLOAD:=?}, {pDU_BSSGP_STATUS:=?} ); /* BSSGP messages that should arrive on the RIM port */ @@ -784,6 +784,10 @@ }; type record length(16) of LLC_Entity LLC_Entities; +private template PDU_BSSGP tr_GLOBAL_PTP := ( + {pDU_BSSGP_STATUS:=?} +); + function f_llc_create(boolean sgsn_role := false) return LLC_Entities { var LLC_Entities llc; for (var integer i := 0; i < 16; i := i+1) { @@ -1141,6 +1145,14 @@ } } + [] BVC.receive(tr_ptp_BnsUdInd(tr_GLOBAL_PTP, g_cfg.bvci)) -> value udi { + if (GLOBAL.checkstate("Connected")) { + GLOBAL.send(udi.bssgp); + } else { + setverdict(fail, "Received BSSGP STATUS ", udi.bssgp); + } + } + /* Any other PTP BSSGP message: If it has TLLI, route to component; otherwise broadcast */ [] BVC.receive(tr_ptp_BnsUdInd(?, g_cfg.bvci)) -> value udi { var BssgpDecoded dec := f_dec_bssgp(udi.bssgp); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22256 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I6573562c0e7638f153798ee178c7c69d07c26756 Gerrit-Change-Number: 22256 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 17:58:56 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 18 Jan 2021 17:58:56 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Add test cases for STATUS handling In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22257 ) Change subject: gbproxy: Add test cases for STATUS handling ...................................................................... gbproxy: Add test cases for STATUS handling We expect the uplink BSSGP status to be routed based in the inner/contained downlink PDU - and vice-versa. Change-Id: If2ddd158346a3da340f1c673354196f3872c4f67 Related: OS#4951 --- M gbproxy/GBProxy_Tests.ttcn M library/Osmocom_Gb_Types.ttcn 2 files changed, 243 insertions(+), 3 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve daniel: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index 38e695a..fa04190 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -359,6 +359,19 @@ float t_guard }; +private function get_bvc_idx_for_bvci(GbInstance gbi, BssgpBvci bvci) return integer +{ + var integer i; + + for (i := 0; i < lengthof(gbi.cfg.bvc); i := i + 1) { + if (gbi.cfg.bvc[i].bvci == bvci) { + return i; + } + } + setverdict(fail, "Could not find BVC Index for BVCI ", bvci); + return -1; +} + private function f_cellid_to_RAI(in BssgpCellId cell_id) return RoutingAreaIdentificationV { /* mcc_mnc is encoded as of 24.008 10.5.5.15 */ var BcdMccMnc mcc_mnc := cell_id.ra_id.lai.mcc_mnc; @@ -864,7 +877,9 @@ type component GlobalTest_CT extends test_CT { port BSSGP_PT G_PCU[NUM_PCU]; + var integer g_pcu_idx[NUM_PCU]; /* BVC index currently connected to G_PCU */ port BSSGP_PT G_SGSN[NUM_SGSN]; + var integer g_sgsn_idx[NUM_SGSN]; /* BVC index currently connected to G_SGSN */ port BSSGP_PT RIM_PCU[NUM_PCU]; port BSSGP_PT RIM_SGSN[NUM_SGSN]; }; @@ -886,16 +901,41 @@ private function f_global_init_ptp() runs on GlobalTest_CT { var integer i; for (i := 0; i < lengthof(g_sgsn); i := i+1) { + log("Connecting G_SGSN[", i, "] to BVCI=", g_sgsn[i].cfg.bvc[0].bvci); connect(self:G_SGSN[i], g_sgsn[i].vc_BSSGP_BVC[0]:GLOBAL); + g_sgsn_idx[i] := 0; } for (i := 0; i < lengthof(g_pcu); i := i+1) { + log("Connecting G_PCU[", i, "] to BVCI=", g_pcu[i].cfg.bvc[0].bvci); connect(self:G_PCU[i], g_pcu[i].vc_BSSGP_BVC[0]:GLOBAL); + g_pcu_idx[i] := 0; } } +/* (re)connect G_SGSN[sgsn_idx] to a specific PTP BVCI */ +private function f_global_ptp_connect_sgsn_bvci(integer sgsn_idx, BssgpBvci bvci) runs on GlobalTest_CT +{ + var integer sgsn_bvc_idx := get_bvc_idx_for_bvci(g_sgsn[sgsn_idx], bvci); + var integer old_sgsn_bvc_idx := g_sgsn_idx[sgsn_idx]; + disconnect(self:G_SGSN[sgsn_idx], g_sgsn[sgsn_idx].vc_BSSGP_BVC[old_sgsn_bvc_idx]:GLOBAL); + connect(self:G_SGSN[sgsn_idx], g_sgsn[sgsn_idx].vc_BSSGP_BVC[sgsn_bvc_idx]:GLOBAL); + g_sgsn_idx[sgsn_idx] := sgsn_bvc_idx; +} + +/* (re)connect G_PCU[pcu_idx] to a specific PTP BVCI */ +private function f_global_ptp_connect_pcu_bvci(integer pcu_idx, BssgpBvci bvci) runs on GlobalTest_CT +{ + var integer pcu_bvc_idx := get_bvc_idx_for_bvci(g_pcu[pcu_idx], bvci); + var integer old_pcu_bvc_idx := g_pcu_idx[pcu_idx]; + disconnect(self:G_PCU[pcu_idx], g_pcu[pcu_idx].vc_BSSGP_BVC[old_pcu_bvc_idx]:GLOBAL); + connect(self:G_PCU[pcu_idx], g_pcu[pcu_idx].vc_BSSGP_BVC[pcu_bvc_idx]:GLOBAL); + g_pcu_idx[pcu_idx] := pcu_bvc_idx; +} + /* Send 'tx' on PTP-BVCI from PCU; expect 'rx' on SGSN */ friend function f_global_pcu2sgsn(template (value) PDU_BSSGP tx, template (present) PDU_BSSGP exp_rx, integer pcu_idx := 0, integer sgsn_idx := 0) runs on GlobalTest_CT { + var integer rx_idx; var PDU_BSSGP rx; timer T := 1.0; @@ -905,6 +945,9 @@ [] G_SGSN[sgsn_idx].receive(exp_rx) { setverdict(pass); } + [] any from G_SGSN.receive(exp_rx) -> @index value rx_idx { + setverdict(fail, "BSSGP arrived on wrong SGSN[", rx_idx, "] instead of SGSN[", sgsn_idx, "]"); + } [] G_SGSN[sgsn_idx].receive(PDU_BSSGP:?) -> value rx { setverdict(fail, "Unexpected BSSGP on SGSN side: ", rx); mtc.stop; @@ -919,6 +962,7 @@ /* Send 'tx' on PTP-BVCI from SGSN; expect 'rx' on PCU */ friend function f_global_sgsn2pcu(template (value) PDU_BSSGP tx, template (present) PDU_BSSGP exp_rx, integer sgsn_idx := 0, integer pcu_idx := 0) runs on GlobalTest_CT { + var integer rx_idx; var PDU_BSSGP rx; timer T := 1.0; @@ -928,6 +972,9 @@ [] G_PCU[pcu_idx].receive(exp_rx) { setverdict(pass); } + [] any from G_PCU.receive(exp_rx) -> @index value rx_idx { + setverdict(fail, "BSSGP arrived on wrong PCU[", rx_idx, "] instead of PCU[", pcu_idx, "]"); + } [] G_PCU[pcu_idx].receive(PDU_BSSGP:?) -> value rx { setverdict(fail, "Unexpected BSSGP on PCU side: ", rx); mtc.stop; @@ -2978,6 +3025,189 @@ f_cleanup(); } +/*********************************************************************** + * STATUS handling + ***********************************************************************/ + +/* BSSGP STATUS PDU must be routed based on inner "PDU In Error" message */ + +/* generate a TMSI with NRI matching sgsn_idx + nri_idx */ +private function f_gen_tmsi_for_sgsn_nri(integer sgsn_idx, integer nri_idx) runs on test_CT return OCT4 +{ + var integer nri := mp_sgsn_nri[sgsn_idx][nri_idx]; + return f_gen_tmsi(0, nri_v := nri, nri_bitlen := mp_nri_bitlength); +} + +/* generate a TLLI with NRI matching sgsn_idx + nri_idx */ +private function f_gen_tlli_for_sgsn_nri(integer sgsn_idx, integer nri_idx) runs on test_CT return OCT4 +{ + var OCT4 p_tmsi := f_gen_tmsi_for_sgsn_nri(sgsn_idx, nri_idx); + return f_gprs_tlli_from_tmsi(p_tmsi, TLLI_LOCAL); +} + +/* STATUS in uplink direction; expect routing by its NRI */ +private function f_TC_status_ul(integer pcu_idx, integer sgsn_idx, PDU_BSSGP inner) +runs on GlobalTest_CT +{ + var template (value) PDU_BSSGP tx := ts_BSSGP_STATUS(omit, BSSGP_CAUSE_EQUIMENT_FAILURE, inner); + var template (present) PDU_BSSGP exp_rx := + tr_BSSGP_STATUS(omit, BSSGP_CAUSE_EQUIMENT_FAILURE, + tx.pDU_BSSGP_STATUS.pDU_in_Error.erroneous_BSSGP_PDU); + + f_global_pcu2sgsn(tx, exp_rx, pcu_idx, sgsn_idx); +} + +/* STATUS in uplink direction; expect routing by its NRI */ +private function f_TC_status_dl(integer sgsn_idx, integer pcu_idx, PDU_BSSGP inner) +runs on GlobalTest_CT +{ + var template (value) PDU_BSSGP tx := ts_BSSGP_STATUS(omit, BSSGP_CAUSE_EQUIMENT_FAILURE, inner); + var template (present) PDU_BSSGP exp_rx := + tr_BSSGP_STATUS(omit, BSSGP_CAUSE_EQUIMENT_FAILURE, + tx.pDU_BSSGP_STATUS.pDU_in_Error.erroneous_BSSGP_PDU); + + f_global_sgsn2pcu(tx, exp_rx, sgsn_idx, pcu_idx); +} + +/* STATUS in uplink direction on SIG-BVC containing a TLLI; expect routing by its NRI */ +testcase TC_status_sig_ul_tlli() runs on GlobalTest_CT +{ + var integer sgsn_idx, nri_idx; + + f_init(); + f_global_init(); + + for (sgsn_idx := 0; sgsn_idx < NUM_SGSN; sgsn_idx := sgsn_idx + 1) { + for (nri_idx := 0; nri_idx < lengthof(mp_sgsn_nri[sgsn_idx]); nri_idx := nri_idx + 1) { + /* some downlink PDU occurring on SIG-BVC with a TLLI */ + var OCT4 tlli := f_gen_tlli_for_sgsn_nri(sgsn_idx, nri_idx); + var PDU_BSSGP inner := valueof(ts_BSSGP_FLUSH_LL(tlli, 2342)); + + f_TC_status_ul(0, sgsn_idx, inner); + } + } + + f_cleanup(); +} + +/* STATUS in uplink direction on SIG-BVC containing a TMSI; expect routing by its NRI */ +testcase TC_status_sig_ul_tmsi() runs on GlobalTest_CT +{ + var integer sgsn_idx, nri_idx; + + f_init(); + f_global_init(); + + for (sgsn_idx := 0; sgsn_idx < NUM_SGSN; sgsn_idx := sgsn_idx + 1) { + for (nri_idx := 0; nri_idx < lengthof(mp_sgsn_nri[sgsn_idx]); nri_idx := nri_idx + 1) { + /* some downlink PDU occurring on SIG-BVC with a TMSI */ + const hexstring imsi := '001010123456789'H + var OCT4 tmsi := f_gen_tmsi_for_sgsn_nri(sgsn_idx, nri_idx); + var BssgpBvci bvci := g_pcu[0].cfg.bvc[0].bvci; + var PDU_BSSGP inner := valueof(ts_BSSGP_CS_PAGING_PTMSI(bvci, imsi, oct2int(tmsi))); + f_TC_status_ul(0, sgsn_idx, inner); + } + } + + f_cleanup(); +} + + +/* STATUS in uplink direction on PTP-BVC containing a TLLI; expect routing by its NRI */ +testcase TC_status_ptp_ul_tlli() runs on GlobalTest_CT +{ + var integer sgsn_idx, nri_idx; + + f_init(); + f_global_init_ptp(); + + for (sgsn_idx := 0; sgsn_idx < NUM_SGSN; sgsn_idx := sgsn_idx + 1) { + for (nri_idx := 0; nri_idx < lengthof(mp_sgsn_nri[sgsn_idx]); nri_idx := nri_idx + 1) { + /* some downlink PDU occurring on PTP-BVC with a TLLI */ + var OCT4 tlli := f_gen_tlli_for_sgsn_nri(sgsn_idx, nri_idx); + var PDU_BSSGP inner := valueof(ts_BSSGP_DL_UD(tlli, '2342'O)); + + f_TC_status_ul(0, sgsn_idx, inner); + } + } + + f_cleanup(); +} + +/* STATUS in uplink direction on PTP-BVC containing a TMSI; expect routing by its NRI */ +testcase TC_status_ptp_ul_tmsi() runs on GlobalTest_CT +{ + var integer sgsn_idx, nri_idx; + + f_init(); + f_global_init_ptp(); + + for (sgsn_idx := 0; sgsn_idx < NUM_SGSN; sgsn_idx := sgsn_idx + 1) { + for (nri_idx := 0; nri_idx < lengthof(mp_sgsn_nri[sgsn_idx]); nri_idx := nri_idx + 1) { + /* some downlink PDU occurring on PTP-BVC with a TMSI */ + const hexstring imsi := '001010123456789'H + var OCT4 tmsi := f_gen_tmsi_for_sgsn_nri(sgsn_idx, nri_idx); + var BssgpBvci bvci := g_pcu[0].cfg.bvc[0].bvci; + var PDU_BSSGP inner := valueof(ts_BSSGP_CS_PAGING_PTMSI(bvci, imsi, oct2int(tmsi))); + f_TC_status_ul(0, sgsn_idx, inner); + } + } + + f_cleanup(); +} + +/* STATUS in downlink direction in SIG-BVC containing a BVCI; expect routing by it */ +testcase TC_status_sig_dl_bvci() runs on GlobalTest_CT +{ + var integer sgsn_idx, pcu_idx, bvc_idx; + + f_init(); + f_global_init(); + + /* test each BVC in each PCU from each SGSN */ + for (pcu_idx := 0; pcu_idx < lengthof(g_pcu); pcu_idx := pcu_idx + 1) { + for (bvc_idx := 0; bvc_idx < lengthof(g_pcu[pcu_idx].cfg.bvc); bvc_idx := bvc_idx + 1) { + for (sgsn_idx := 0; sgsn_idx < NUM_SGSN; sgsn_idx := sgsn_idx + 1) { + /* some uplink PDU occurring on SIG-BVC containing a BVCI */ + var BssgpBvci bvci := g_pcu[pcu_idx].cfg.bvc[bvc_idx].bvci; + var PDU_BSSGP inner := valueof(ts_BSSGP_LLC_DISCARDED('12345678'O, 1, bvci, 23)); + f_TC_status_dl(sgsn_idx, pcu_idx, inner); + } + } + } + + f_cleanup(); +} + +/* STATUS in downlink direction in PTP-BVC; expect routing by BVCI */ +testcase TC_status_ptp_dl_bvci() runs on GlobalTest_CT +{ + var integer sgsn_idx, pcu_idx, bvc_idx; + + f_init(); + f_global_init_ptp(); + + /* test each BVC in each PCU from each SGSN */ + for (pcu_idx := 0; pcu_idx < lengthof(g_pcu); pcu_idx := pcu_idx + 1) { + for (bvc_idx := 0; bvc_idx < lengthof(g_pcu[pcu_idx].cfg.bvc); bvc_idx := bvc_idx + 1) { + var BssgpBvci bvci := g_pcu[pcu_idx].cfg.bvc[bvc_idx].bvci; + f_global_ptp_connect_pcu_bvci(pcu_idx, bvci); + for (sgsn_idx := 0; sgsn_idx < NUM_SGSN; sgsn_idx := sgsn_idx + 1) { + f_global_ptp_connect_sgsn_bvci(sgsn_idx, bvci); + + /* some uplink PDU occurring on PTP-BVC */ + var BssgpCellId cell_id := g_pcu[pcu_idx].cfg.bvc[bvc_idx].cell_id; + var PDU_BSSGP inner := valueof(ts_BSSGP_UL_UD('12345678'O, cell_id, '4223'O)); + f_TC_status_dl(sgsn_idx, pcu_idx, inner); + } + } + } + + f_cleanup(); +} + +/* TODO: test case for DL-STATUS(SUSPEND/RESUME) containing RA-ID; expect routing by RA-ID */ +/* TODO: test case for UL-STATUS(PAGING-by-IMSI) after sending an actual PAGIN-by-IMSI in DL first */ control { execute( TC_BVC_bringup() ); @@ -3061,6 +3291,16 @@ execute( TC_fc_bvc() ); execute( TC_fc_ms() ); execute( TC_ms_reg_enq() ); + + /* Uplink STATUS */ + execute( TC_status_sig_ul_tlli() ); + execute( TC_status_sig_ul_tmsi() ); + execute( TC_status_ptp_ul_tlli() ); + execute( TC_status_ptp_ul_tmsi() ); + + /* Downlink STATUS */ + execute( TC_status_sig_dl_bvci() ); + execute( TC_status_ptp_dl_bvci() ); } diff --git a/library/Osmocom_Gb_Types.ttcn b/library/Osmocom_Gb_Types.ttcn index 589108f..f97b9b0 100644 --- a/library/Osmocom_Gb_Types.ttcn +++ b/library/Osmocom_Gb_Types.ttcn @@ -1427,7 +1427,7 @@ } /* 10.4.14 */ - template PDU_BSSGP ts_BSSGP_STATUS(template BssgpBvci bvci, template BssgpCause cause, + template PDU_BSSGP ts_BSSGP_STATUS(template (omit) BssgpBvci bvci, template BssgpCause cause, PDU_BSSGP pdu) := { pDU_BSSGP_STATUS := { bssgpPduType := '41'O, @@ -1443,12 +1443,12 @@ } } } - template PDU_BSSGP tr_BSSGP_STATUS(template BVCI bvci := ?, template BssgpCause cause := ?, + template PDU_BSSGP tr_BSSGP_STATUS(template BssgpBvci bvci := ?, template BssgpCause cause := ?, template octetstring pdu := ?) := { pDU_BSSGP_STATUS := { bssgpPduType := '41'O, cause := t_BSSGP_CAUSE(cause), - bVCI := bvci, + bVCI := t_BSSGP_BVCI(bvci), pDU_in_Error := { iEI := '15'O, ext := '1'B, -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22257 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If2ddd158346a3da340f1c673354196f3872c4f67 Gerrit-Change-Number: 22257 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 18:00:08 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 18 Jan 2021 18:00:08 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Change logging settings In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22302 ) Change subject: gbproxy: Change logging settings ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22302 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ib153cfdb337ea0d748aa18e2b8eb16db01d79edd Gerrit-Change-Number: 22302 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 18 Jan 2021 18:00:08 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 18:01:06 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 18 Jan 2021 18:01:06 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Use IMSI cache for PTP paging and implement DUMMY_PAGING_PS In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22298 ) Change subject: gbproxy: Use IMSI cache for PTP paging and implement DUMMY_PAGING_PS ...................................................................... Patch Set 1: (2 comments) https://gerrit.osmocom.org/c/osmo-sgsn/+/22298/1/src/gbproxy/gb_proxy.c File src/gbproxy/gb_proxy.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/22298/1/src/gbproxy/gb_proxy.c at 436 PS1, Line 436: BSSGP_CAUSE_INV_MAND_INF > wrong cause code. the imsi must be always present and should be checked by tlvprot. But what should we do if we don't find the IMSI for the paging response? I can check if the spec provides some more insight. https://gerrit.osmocom.org/c/osmo-sgsn/+/22298/1/src/gbproxy/gb_proxy.c at 438 PS1, Line 438: OSMO_ASSERT(nse->sgsn_facing); > reject the message in such cases. [?] This is the nse extracted from the cache entry. We only ever populate the cache entry from the paging sent by the SGSN so the entry->nse should always be sgsn_facing. -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22298 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I7243e0d4470cb62fa6db36d26002ccd6542b5147 Gerrit-Change-Number: 22298 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-CC: lynxis lazus Gerrit-Comment-Date: Mon, 18 Jan 2021 18:01:06 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: lynxis lazus Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 18:01:23 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 18 Jan 2021 18:01:23 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Use g_parse.sgsn_idx for paging In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22299 ) Change subject: gbproxy: Use g_parse.sgsn_idx for paging ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22299 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Id85ffa57af943ae98c0f022b261ec24d557c236d Gerrit-Change-Number: 22299 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Mon, 18 Jan 2021 18:01:23 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 18:01:25 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 18 Jan 2021 18:01:25 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Use g_parse.sgsn_idx for paging In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22299 ) Change subject: gbproxy: Use g_parse.sgsn_idx for paging ...................................................................... gbproxy: Use g_parse.sgsn_idx for paging The ConnHdlr test stores the sgsn_idx in g_pars. Use that in the paging tests to the correct SGSN pages the MS. This commit fixes what 4332044c missed and is required for the ptp paging reject test to pass. Change-Id: Id85ffa57af943ae98c0f022b261ec24d557c236d Related: OS#4951 --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 11 insertions(+), 11 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index fa04190..487a799 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -1508,7 +1508,7 @@ { /* doesn't really make sense: Sending to a single BVCI means the message ends up * at that BVC (cell) only, and paging all over the BSS area is not possible */ - f_send_paging_ps_exp_one_bss(ts_BssgpP4BssArea, 0, false, 0); + f_send_paging_ps_exp_one_bss(ts_BssgpP4BssArea, g_pars.sgsn_idx, false, 0); } testcase TC_paging_ps_ptp_bss() runs on test_CT { f_init(); @@ -1522,7 +1522,7 @@ var template (present) PDU_BSSGP exp_rx; /* doesn't really make sense: Sending to a single BVCI means the message ends up * at that BVC (cell) only, and paging all over the BSS area is not possible */ - f_send_paging_ps_exp_one_bss(ts_BssgpP4LAC(pcu_bvc_cfg[0].cell_id.ra_id.lai), 0, false, 0); + f_send_paging_ps_exp_one_bss(ts_BssgpP4LAC(pcu_bvc_cfg[0].cell_id.ra_id.lai), g_pars.sgsn_idx, false, 0); } testcase TC_paging_ps_ptp_lac() runs on test_CT { f_init(); @@ -1538,7 +1538,7 @@ lac := 33333 }; /* as it's sent on the PTP BVC, we expect it to pass even for unknown LAC */ - f_send_paging_ps_exp_one_bss(ts_BssgpP4LAC(unknown_la), 0, false, 0); + f_send_paging_ps_exp_one_bss(ts_BssgpP4LAC(unknown_la), g_pars.sgsn_idx, false, 0); } testcase TC_paging_ps_ptp_lac_unknown() runs on test_CT { f_init(); @@ -1551,7 +1551,7 @@ { /* doesn't really make sense: Sending to a single BVCI means the message ends up * at that BVC (cell) only, and paging all over the BSS area is not possible */ - f_send_paging_ps_exp_one_bss(ts_BssgpP4RAC(pcu_bvc_cfg[0].cell_id.ra_id), 0, false, 0); + f_send_paging_ps_exp_one_bss(ts_BssgpP4RAC(pcu_bvc_cfg[0].cell_id.ra_id), g_pars.sgsn_idx, false, 0); } testcase TC_paging_ps_ptp_rac() runs on test_CT { f_init(); @@ -1570,7 +1570,7 @@ rac := 254 }; /* as it's sent on the PTP BVC, we expect it to pass even for unknown RAC */ - f_send_paging_ps_exp_one_bss(ts_BssgpP4RAC(unknown_ra), 0, false, 0); + f_send_paging_ps_exp_one_bss(ts_BssgpP4RAC(unknown_ra), g_pars.sgsn_idx, false, 0); } testcase TC_paging_ps_ptp_rac_unknown() runs on test_CT { f_init(); @@ -1582,7 +1582,7 @@ private function f_TC_paging_ps_ptp_bvci(charstring id) runs on BSSGP_ConnHdlr { /* this should be the normal case for MS in READY MM state after a lower layer failure */ - f_send_paging_ps_exp_one_bss(ts_BssgpP4Bvci(pcu_bvc_cfg[0].bvci), 0, false, 0); + f_send_paging_ps_exp_one_bss(ts_BssgpP4Bvci(pcu_bvc_cfg[0].bvci), g_pars.sgsn_idx, false, 0); } testcase TC_paging_ps_ptp_bvci() runs on test_CT { f_init(); @@ -1609,7 +1609,7 @@ private function f_TC_paging_ps_reject_ptp_bvci(charstring id) runs on BSSGP_ConnHdlr { /* first send the PS-PAGING from SGSN -> PCU */ - f_send_paging_ps_exp_one_bss(ts_BssgpP4Bvci(pcu_bvc_cfg[0].bvci), 0, false, 0); + f_send_paging_ps_exp_one_bss(ts_BssgpP4Bvci(pcu_bvc_cfg[0].bvci), g_pars.sgsn_idx, false, 0); /* then simulate the PS-PAGING-REJECT from the PCU */ f_send_paging_ps_rej(use_sig:=false); } @@ -1623,7 +1623,7 @@ private function f_TC_paging_ps_ptp_bvci_unknown(charstring id) runs on BSSGP_ConnHdlr { /* as it's sent on the PTP BVC, we expect it to pass even for unknown BVCI */ - f_send_paging_ps_exp_one_bss(ts_BssgpP4Bvci(33333), 0, false, 0); + f_send_paging_ps_exp_one_bss(ts_BssgpP4Bvci(33333), g_pars.sgsn_idx, false, 0); } testcase TC_paging_ps_ptp_bvci_unknown() runs on test_CT { f_init(); @@ -1783,7 +1783,7 @@ mcc_mnc := '567F99'H, lac := 33333 }; - f_send_paging_ps_exp_no_bss(ts_BssgpP4LAC(unknown_la), 0, true); + f_send_paging_ps_exp_no_bss(ts_BssgpP4LAC(unknown_la), g_pars.sgsn_idx, true); } testcase TC_paging_ps_sig_lac_unknown() runs on test_CT { f_init(); @@ -1820,7 +1820,7 @@ }, rac := 254 }; - f_send_paging_ps_exp_no_bss(ts_BssgpP4RAC(unknown_ra), 0, true); + f_send_paging_ps_exp_no_bss(ts_BssgpP4RAC(unknown_ra), g_pars.sgsn_idx, true); } testcase TC_paging_ps_sig_rac_unknown() runs on test_CT { f_init(); @@ -1871,7 +1871,7 @@ /* PS-PAGING on SIG-BVC for unknown BVCI */ private function f_TC_paging_ps_sig_bvci_unknown(charstring id) runs on BSSGP_ConnHdlr { - f_send_paging_ps_exp_no_bss(ts_BssgpP4Bvci(33333), 0, true); + f_send_paging_ps_exp_no_bss(ts_BssgpP4Bvci(33333), g_pars.sgsn_idx, true); } testcase TC_paging_ps_sig_bvci_unknown() runs on test_CT { f_init(); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22299 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Id85ffa57af943ae98c0f022b261ec24d557c236d Gerrit-Change-Number: 22299 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 18:02:08 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 18 Jan 2021 18:02:08 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Fix VTY cmd name In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22288 ) Change subject: gbproxy: Fix VTY cmd name ...................................................................... gbproxy: Fix VTY cmd name Change-Id: I5bb5f7cf93779a7a07965f2f35fdb59a7a2b731b --- M src/gbproxy/gb_proxy_vty.c 1 file changed, 2 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified lynxis lazus: Looks good to me, approved diff --git a/src/gbproxy/gb_proxy_vty.c b/src/gbproxy/gb_proxy_vty.c index fb9e87a..537041e 100644 --- a/src/gbproxy/gb_proxy_vty.c +++ b/src/gbproxy/gb_proxy_vty.c @@ -363,7 +363,7 @@ return CMD_SUCCESS; } -DEFUN(cfg_sgsn_show_nri_all, show_nri_all_cmd, +DEFUN(sgsn_show_nri_all, show_nri_all_cmd, "show nri all", SHOW_STR NRI_STR "Show all SGSNs\n") { @@ -375,7 +375,7 @@ return CMD_SUCCESS; } -DEFUN(show_nri, show_nri_nsei_cmd, +DEFUN(show_nri_nsei, show_nri_nsei_cmd, "show nri nsei <0-65535>", SHOW_STR NRI_STR "Identify SGSN by NSEI\n" "NSEI of the SGSN\n") -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22288 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I5bb5f7cf93779a7a07965f2f35fdb59a7a2b731b Gerrit-Change-Number: 22288 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 18:02:26 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 18 Jan 2021 18:02:26 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Define and use help string for gbproxy In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22289 ) Change subject: gbproxy: Define and use help string for gbproxy ...................................................................... gbproxy: Define and use help string for gbproxy Change-Id: Ic9336c83147903e5af6622179f9394130f969a77 --- M src/gbproxy/gb_proxy_vty.c 1 file changed, 4 insertions(+), 3 deletions(-) Approvals: Jenkins Builder: Verified lynxis lazus: Looks good to me, approved diff --git a/src/gbproxy/gb_proxy_vty.c b/src/gbproxy/gb_proxy_vty.c index 537041e..7e9e18d 100644 --- a/src/gbproxy/gb_proxy_vty.c +++ b/src/gbproxy/gb_proxy_vty.c @@ -48,6 +48,7 @@ #include #include +#define GBPROXY_STR "Display information about the Gb proxy\n" #define NRI_STR "Mapping of Network Resource Indicators to this SGSN, for SGSN pooling\n" #define NULL_NRI_STR "Define NULL-NRI values that cause re-assignment of an MS to a different SGSN, for SGSN pooling.\n" #define NRI_FIRST_LAST_STR "First value of the NRI value range, should not surpass the configured 'nri bitlen'.\n" \ @@ -499,7 +500,7 @@ } DEFUN(show_gbproxy_bvc, show_gbproxy_bvc_cmd, "show gbproxy bvc (bss|sgsn) [stats]", - SHOW_STR "Display information about the Gb proxy\n" + SHOW_STR GBPROXY_STR "Show BSSGP Virtual Connections\n" "Display BSS-side BVCs\n" "Display SGSN-side BVCs\n" @@ -523,7 +524,7 @@ } DEFUN(show_gbproxy_cell, show_gbproxy_cell_cmd, "show gbproxy cell [stats]", - SHOW_STR "Display information about the Gb proxy\n" + SHOW_STR GBPROXY_STR "Show GPRS Cell Information\n" "Show statistics\n") { @@ -538,7 +539,7 @@ } DEFUN(show_gbproxy_links, show_gbproxy_links_cmd, "show gbproxy links", - SHOW_STR "Display information about the Gb proxy\n" "Show logical links\n") + SHOW_STR GBPROXY_STR "Show logical links\n") { struct gbproxy_nse *nse; int i, j; -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22289 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ic9336c83147903e5af6622179f9394130f969a77 Gerrit-Change-Number: 22289 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 18:02:30 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 18 Jan 2021 18:02:30 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Add VTY commands to query the TLLI/IMSI cache In-Reply-To: References: Message-ID: daniel has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22290 ) Change subject: gbproxy: Add VTY commands to query the TLLI/IMSI cache ...................................................................... gbproxy: Add VTY commands to query the TLLI/IMSI cache OsmoGbProxy# show gbproxy tlli-cache TLLI cache timeout 10s TLLI c2200024 -> NSE(02001/BSS) valid 10s TLLI cache contains 1 entries OsmoGbProxy# show gbproxy imsi-cache IMSI cache timeout 10s IMSI 262420000001000 -> NSE(00102/SGSN): valid 5s IMSI 262420000000000 -> NSE(00101/SGSN): valid 3s IMSI cache contains 2 entries Change-Id: I03f1050573de9b241eb4fa82460c434155c15c6a Related: OS#4951, OS#4472 --- M src/gbproxy/gb_proxy_vty.c 1 file changed, 51 insertions(+), 0 deletions(-) Approvals: lynxis lazus: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/gbproxy/gb_proxy_vty.c b/src/gbproxy/gb_proxy_vty.c index 7e9e18d..7ae65d2 100644 --- a/src/gbproxy/gb_proxy_vty.c +++ b/src/gbproxy/gb_proxy_vty.c @@ -553,6 +553,55 @@ return CMD_SUCCESS; } +DEFUN(show_gbproxy_tlli_cache, show_gbproxy_tlli_cache_cmd, + "show gbproxy tlli-cache", + SHOW_STR GBPROXY_STR "Show TLLI cache entries\n") +{ + struct gbproxy_tlli_cache_entry *entry; + struct timespec now; + time_t expiry; + int i, count = 0; + + osmo_clock_gettime(CLOCK_MONOTONIC, &now); + expiry = now.tv_sec - g_cfg->tlli_cache.timeout; + + vty_out(vty, "TLLI cache timeout %us%s", g_cfg->tlli_cache.timeout, VTY_NEWLINE); + hash_for_each(g_cfg->tlli_cache.entries, i, entry, list) { + time_t valid = entry->tstamp - expiry; + struct gbproxy_nse *nse = entry->nse; + + vty_out(vty, " TLLI %08x -> NSE(%05u/%s) valid %lds%s", entry->tlli, nse->nsei, + nse->sgsn_facing ? "SGSN" : "BSS", valid, VTY_NEWLINE); + count++; + } + vty_out(vty, "TLLI cache contains %u entries%s", count, VTY_NEWLINE); + return CMD_SUCCESS; +} + +DEFUN(show_gbproxy_imsi_cache, show_gbproxy_imsi_cache_cmd, + "show gbproxy imsi-cache", + SHOW_STR GBPROXY_STR "Show IMSI cache entries\n") +{ + struct gbproxy_imsi_cache_entry *entry; + struct timespec now; + time_t expiry; + int i, count = 0; + + osmo_clock_gettime(CLOCK_MONOTONIC, &now); + expiry = now.tv_sec - g_cfg->imsi_cache.timeout; + + vty_out(vty, "IMSI cache timeout %us%s", g_cfg->imsi_cache.timeout, VTY_NEWLINE); + hash_for_each(g_cfg->imsi_cache.entries, i, entry, list) { + time_t valid = entry->tstamp - expiry; + struct gbproxy_nse *nse = entry->nse; + vty_out(vty, " IMSI %s -> NSE(%05u/%s): valid %lds%s", entry->imsi, nse->nsei, + nse->sgsn_facing ? "SGSN" : "BSS", valid, VTY_NEWLINE); + count++; + } + vty_out(vty, "IMSI cache contains %u entries%s", count, VTY_NEWLINE); + return CMD_SUCCESS; +} + DEFUN(delete_gb_bvci, delete_gb_bvci_cmd, "delete-gbproxy-peer <0-65534> bvci <2-65534>", "Delete a GBProxy bvc by NSEI and optionally BVCI\n" @@ -684,6 +733,8 @@ install_element_ve(&show_gbproxy_bvc_cmd); install_element_ve(&show_gbproxy_cell_cmd); install_element_ve(&show_gbproxy_links_cmd); + install_element_ve(&show_gbproxy_tlli_cache_cmd); + install_element_ve(&show_gbproxy_imsi_cache_cmd); install_element_ve(&show_nri_all_cmd); install_element_ve(&show_nri_nsei_cmd); install_element_ve(&logging_fltr_bvc_cmd); -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22290 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I03f1050573de9b241eb4fa82460c434155c15c6a Gerrit-Change-Number: 22290 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 18:05:51 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 18 Jan 2021 18:05:51 +0000 Subject: Change in libosmocore[master]: gprs_ns2: implement BLOCK/UNBLOCK of a NSVC by vty In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22210 ) Change subject: gprs_ns2: implement BLOCK/UNBLOCK of a NSVC by vty ...................................................................... Patch Set 13: Code-Review-1 (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/22210/13/tests/gb/gprs_ns2_test.c File tests/gb/gprs_ns2_test.c: https://gerrit.osmocom.org/c/libosmocore/+/22210/13/tests/gb/gprs_ns2_test.c at 147 PS13, Line 147: nsvc[0] = ns2_vc_alloc(bind[0], nse, false, NS2_VC_MODE_ALIVE, NULL); you miss passing idbuf here. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22210 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic0ce3c5fabc8644cc1ee71a8f6dd783fadf7b84d Gerrit-Change-Number: 22210 Gerrit-PatchSet: 13 Gerrit-Owner: lynxis lazus Gerrit-Assignee: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 18:05:51 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 18:06:59 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 18 Jan 2021 18:06:59 +0000 Subject: Change in libosmocore[master]: gprs_ns2: add assert on most bind calls In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22273 ) Change subject: gprs_ns2: add assert on most bind calls ...................................................................... Patch Set 7: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22273 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia4f8932263c60618c7f0dfc32d50ba5a8d57602b Gerrit-Change-Number: 22273 Gerrit-PatchSet: 7 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 18:06:59 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 18:07:16 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 18 Jan 2021 18:07:16 +0000 Subject: Change in libosmocore[master]: osmo-ns-dummy: don't leak primitive messages In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22291 ) Change subject: osmo-ns-dummy: don't leak primitive messages ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22291 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I2a7b19f019485c7b1f15baf20b62edc19b663415 Gerrit-Change-Number: 22291 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 18:07:16 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 18:07:38 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 18 Jan 2021 18:07:38 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vc_fsm: rename all event to match RX_ or REQ_ In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22292 ) Change subject: gprs_ns2_vc_fsm: rename all event to match RX_ or REQ_ ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22292 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I341fa28fb671d439c050d985c88ece1521430a99 Gerrit-Change-Number: 22292 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 18:07:38 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 18:07:42 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 18 Jan 2021 18:07:42 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Use IMSI cache for PTP paging and implement DUMMY_PAGING_PS In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22298 ) Change subject: gbproxy: Use IMSI cache for PTP paging and implement DUMMY_PAGING_PS ...................................................................... Patch Set 1: (2 comments) https://gerrit.osmocom.org/c/osmo-sgsn/+/22298/1/src/gbproxy/gb_proxy.c File src/gbproxy/gb_proxy.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/22298/1/src/gbproxy/gb_proxy.c at 436 PS1, Line 436: BSSGP_CAUSE_INV_MAND_INF > But what should we do if we don't find the IMSI for the paging response? I can check if the spec pro [?] I would simply drop the message in such situations. I thinkthis message really only happens with (nowhere implemented) EC-GSM-IoT, where the paging cycle can be many minutes, and where the PCU can actually reject paging if the next paging cycle is too far in the future. I'm not sure what a SGNS would even do if tha happens. We try our best - if there was a paging before (there should always be), then we have the IMSI in the cache. If thre was none, we can log a NOTICE or ERROR in the log (and/or increment a counter), but I would not inform either SGSN or PCU about it. https://gerrit.osmocom.org/c/osmo-sgsn/+/22298/1/src/gbproxy/gb_proxy.c at 438 PS1, Line 438: OSMO_ASSERT(nse->sgsn_facing); > This is the nse extracted from the cache entry. [?] Ack -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22298 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I7243e0d4470cb62fa6db36d26002ccd6542b5147 Gerrit-Change-Number: 22298 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-CC: lynxis lazus Gerrit-Comment-Date: Mon, 18 Jan 2021 18:07:42 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: daniel Comment-In-Reply-To: lynxis lazus Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 18:08:25 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 18 Jan 2021 18:08:25 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vc_fsm: ensure all state is resetted via force_unconf In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22293 ) Change subject: gprs_ns2_vc_fsm: ensure all state is resetted via force_unconf ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/22293/3/src/gb/gprs_ns2_vc_fsm.c File src/gb/gprs_ns2_vc_fsm.c: https://gerrit.osmocom.org/c/libosmocore/+/22293/3/src/gb/gprs_ns2_vc_fsm.c at 60 PS3, Line 60: bool initiator; what does true and false mean here? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22293 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I240225ce82fa27dfcb5b4b8e2981bb4d8cc4cd70 Gerrit-Change-Number: 22293 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 18:08:25 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 18:09:13 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 18 Jan 2021 18:09:13 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Move different network elements to different IPs In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22300 ) Change subject: gbproxy: Move different network elements to different IPs ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22300 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I1762bfc237e679ee21d0446596f2c4f56f735a9d Gerrit-Change-Number: 22300 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 18:09:13 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 18:09:26 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 18 Jan 2021 18:09:26 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Osmocom_Types: fix formatting of log line (missing ", ") In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22301 ) Change subject: Osmocom_Types: fix formatting of log line (missing ", ") ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22301 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If4555cd2902e056b32e835daa741ee84b346b922 Gerrit-Change-Number: 22301 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 18:09:26 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Mon Jan 18 18:14:34 2021 From: admin at opensuse.org (OBS Notification) Date: Mon, 18 Jan 2021 18:14:34 +0000 Subject: Build failure of network:osmocom:nightly/libosmocore in openSUSE_Tumbleweed/x86_64 In-Reply-To: References: Message-ID: <6005d01ee369a_22be2aeefb5405f02821ae@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libosmocore/openSUSE_Tumbleweed/x86_64 Package network:osmocom:nightly/libosmocore failed to build in openSUSE_Tumbleweed/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly libosmocore Last lines of build log: [ 208s] Your package starts with 'lib' as part of its name, but does not provide any [ 208s] libraries. It must not be called a lib-package then. Give it a more sensible [ 208s] name. [ 208s] [ 208s] libosmocodec0.x86_64: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 208s] libosmocoding0.x86_64: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 208s] libosmocore16.x86_64: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 208s] libosmoctrl0.x86_64: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 208s] libosmogb11.x86_64: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 208s] libosmogsm15.x86_64: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 208s] libosmosim2.x86_64: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 208s] libosmousb0.x86_64: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 208s] libosmovty4.x86_64: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006 [ 208s] Your shared library package requires a fixed version of another package. The [ 208s] intention of the Shared Library Policy is to allow parallel installation of [ 208s] multiple versions of the same shared library, hard dependencies likely make [ 208s] that impossible. Please remove this dependency and instead move it to the [ 208s] runtime uses of your library. [ 208s] [ 208s] (none): E: badness 3960 exceeds threshold 1000, aborting. [ 208s] 20 packages and 0 specfiles checked; 9 errors, 22 warnings. [ 208s] [ 208s] ### VM INTERACTION START ### [ 211s] [ 201.126127] sysrq: Power Off [ 212s] [ 201.177166] reboot: Power down [ 212s] ### VM INTERACTION END ### [ 212s] [ 212s] lamb01 failed "build libosmocore.spec" at Mon Jan 18 18:14:27 UTC 2021. [ 212s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Mon Jan 18 18:22:41 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 18 Jan 2021 18:22:41 +0000 Subject: Change in docker-playground[master]: gbproxy, pcu, sgsn: Update config files References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/22307 ) Change subject: gbproxy,pcu,sgsn: Update config files ...................................................................... gbproxy,pcu,sgsn: Update config files In upstream I9798e639b4bc8658482945970775b012b5840779 we introduce two additional fields per NSVC (data_weight, signalling_weight). Make sure those are specified everywhere. Related: OS#4953 Requires: osmo-ttcn3-hacks.git I9798e639b4bc8658482945970775b012b5840779 Change-Id: Ic607b3edc3bf724a8b2dbd6be8c806002c229509 --- M ttcn3-gbproxy-test-fr/GBProxy_Tests.cfg M ttcn3-gbproxy-test/GBProxy_Tests.cfg M ttcn3-pcu-test/PCU_Tests.cfg M ttcn3-pcu-test/sns/PCU_Tests.cfg M ttcn3-sgsn-test/SGSN_Tests.cfg 5 files changed, 36 insertions(+), 12 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/07/22307/1 diff --git a/ttcn3-gbproxy-test-fr/GBProxy_Tests.cfg b/ttcn3-gbproxy-test-fr/GBProxy_Tests.cfg index ce4c698..146d1e4 100644 --- a/ttcn3-gbproxy-test-fr/GBProxy_Tests.cfg +++ b/ttcn3-gbproxy-test-fr/GBProxy_Tests.cfg @@ -23,7 +23,9 @@ address_family := AF_INET, local_ip := "172.18.25.103", local_udp_port := 23000, - remote_ip := "172.18.25.10" + remote_ip := "172.18.25.10", + data_weight := 1, + signalling_weight := 1 } } } @@ -37,7 +39,9 @@ address_family := AF_INET, local_ip := "172.18.25.103", local_udp_port := 24000, - remote_ip := "172.18.25.10" + remote_ip := "172.18.25.10", + data_weight := 1, + signalling_weight := 1 } } } diff --git a/ttcn3-gbproxy-test/GBProxy_Tests.cfg b/ttcn3-gbproxy-test/GBProxy_Tests.cfg index e19084a..89f4fa7 100644 --- a/ttcn3-gbproxy-test/GBProxy_Tests.cfg +++ b/ttcn3-gbproxy-test/GBProxy_Tests.cfg @@ -22,7 +22,9 @@ address_family := AF_INET, local_ip := "172.18.24.103", local_udp_port := 23000, - remote_ip := "172.18.24.10" + remote_ip := "172.18.24.10", + data_weight := 1, + signalling_weight := 1 } } } @@ -36,7 +38,9 @@ address_family := AF_INET, local_ip := "172.18.24.103", local_udp_port := 24000, - remote_ip := "172.18.24.10" + remote_ip := "172.18.24.10", + data_weight := 1, + signalling_weight := 1 } } } @@ -51,7 +55,9 @@ ip := { address_family := AF_INET, local_ip := "172.18.24.103", - remote_ip := "172.18.24.10" + remote_ip := "172.18.24.10", + data_weight := 1, + signalling_weight := 1 } } } @@ -63,7 +69,9 @@ ip := { address_family := AF_INET, local_ip := "172.18.24.103", - remote_ip := "172.18.24.10" + remote_ip := "172.18.24.10", + data_weight := 1, + signalling_weight := 1 } } } @@ -75,7 +83,9 @@ ip := { address_family := AF_INET, local_ip := "172.18.24.103", - remote_ip := "172.18.24.10" + remote_ip := "172.18.24.10", + data_weight := 1, + signalling_weight := 1 } } } diff --git a/ttcn3-pcu-test/PCU_Tests.cfg b/ttcn3-pcu-test/PCU_Tests.cfg index 9e69f86..89ed220 100644 --- a/ttcn3-pcu-test/PCU_Tests.cfg +++ b/ttcn3-pcu-test/PCU_Tests.cfg @@ -25,7 +25,9 @@ local_ip := "172.18.13.10", local_udp_port := 23000, remote_ip := "172.18.13.101", - remote_udp_port := 23000 + remote_udp_port := 23000, + data_weight := 1, + signalling_weight := 1 } }, nsvci := 1234 diff --git a/ttcn3-pcu-test/sns/PCU_Tests.cfg b/ttcn3-pcu-test/sns/PCU_Tests.cfg index 9cd4b38..2bcf055 100644 --- a/ttcn3-pcu-test/sns/PCU_Tests.cfg +++ b/ttcn3-pcu-test/sns/PCU_Tests.cfg @@ -18,7 +18,9 @@ local_ip := "172.18.14.10", local_udp_port := 23000, remote_ip := "172.18.14.101", - remote_udp_port := 23000 + remote_udp_port := 23000, + data_weight := 1, + signalling_weight := 1 } }, nsvci := 1234 diff --git a/ttcn3-sgsn-test/SGSN_Tests.cfg b/ttcn3-sgsn-test/SGSN_Tests.cfg index b77fffd..b127dd8 100644 --- a/ttcn3-sgsn-test/SGSN_Tests.cfg +++ b/ttcn3-sgsn-test/SGSN_Tests.cfg @@ -20,7 +20,9 @@ ip := { address_family := AF_INET, local_ip := "172.18.8.103", - remote_ip := "172.18.8.10" + remote_ip := "172.18.8.10", + data_weight := 1, + signalling_weight := 1 } } } @@ -33,7 +35,9 @@ ip := { address_family := AF_INET, local_ip := "172.18.8.103", - remote_ip := "172.18.8.10" + remote_ip := "172.18.8.10", + data_weight := 1, + signalling_weight := 1 } } } @@ -46,7 +50,9 @@ ip := { address_family := AF_INET, local_ip := "172.18.8.103", - remote_ip := "172.18.8.10" + remote_ip := "172.18.8.10", + data_weight := 1, + signalling_weight := 1 } } } -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22307 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Ic607b3edc3bf724a8b2dbd6be8c806002c229509 Gerrit-Change-Number: 22307 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 18:22:41 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 18 Jan 2021 18:22:41 +0000 Subject: Change in docker-playground[master]: gbproxy: Use separate NS-VC for data + signaling References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/22308 ) Change subject: gbproxy: Use separate NS-VC for data + signaling ...................................................................... gbproxy: Use separate NS-VC for data + signaling This follows the change implemented in osmo-ttcn3-hacks.git If0e404bdf2c30a5e18748695608611be83f61109 to use data-only and signalling-only NS-VCs on the SGSN side Change-Id: I58f8a6d1c8d01551d366bd7d0dbfb892cce512ae Requires: osmo-ttcn3-hacks.git If0e404bdf2c30a5e18748695608611be83f61109 Related: OS#4953 --- M ttcn3-gbproxy-test-fr/GBProxy_Tests.cfg M ttcn3-gbproxy-test/GBProxy_Tests.cfg 2 files changed, 44 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/08/22308/1 diff --git a/ttcn3-gbproxy-test-fr/GBProxy_Tests.cfg b/ttcn3-gbproxy-test-fr/GBProxy_Tests.cfg index 146d1e4..8a95e2e 100644 --- a/ttcn3-gbproxy-test-fr/GBProxy_Tests.cfg +++ b/ttcn3-gbproxy-test-fr/GBProxy_Tests.cfg @@ -25,6 +25,17 @@ local_udp_port := 23000, remote_ip := "172.18.25.10", data_weight := 1, + signalling_weight := 0 + } + } + }, { + provider := { + ip := { + address_family := AF_INET, + local_ip := "172.18.25.103", + local_udp_port := 23000, + remote_ip := "172.18.25.10", + data_weight := 0, signalling_weight := 1 } } @@ -41,6 +52,17 @@ local_udp_port := 24000, remote_ip := "172.18.25.10", data_weight := 1, + signalling_weight := 0 + } + } + }, { + provider := { + ip := { + address_family := AF_INET, + local_ip := "172.18.25.103", + local_udp_port := 24000, + remote_ip := "172.18.25.10", + data_weight := 0, signalling_weight := 1 } } diff --git a/ttcn3-gbproxy-test/GBProxy_Tests.cfg b/ttcn3-gbproxy-test/GBProxy_Tests.cfg index 89f4fa7..8638586 100644 --- a/ttcn3-gbproxy-test/GBProxy_Tests.cfg +++ b/ttcn3-gbproxy-test/GBProxy_Tests.cfg @@ -24,6 +24,17 @@ local_udp_port := 23000, remote_ip := "172.18.24.10", data_weight := 1, + signalling_weight := 0 + } + } + }, { + provider := { + ip := { + address_family := AF_INET, + local_ip := "172.18.24.103", + local_udp_port := 23000, + remote_ip := "172.18.24.10", + data_weight := 0, signalling_weight := 1 } } @@ -40,6 +51,17 @@ local_udp_port := 24000, remote_ip := "172.18.24.10", data_weight := 1, + signalling_weight := 0 + } + } + }, { + provider := { + ip := { + address_family := AF_INET, + local_ip := "172.18.24.103", + local_udp_port := 24000, + remote_ip := "172.18.24.10", + data_weight := 0, signalling_weight := 1 } } -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22308 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I58f8a6d1c8d01551d366bd7d0dbfb892cce512ae Gerrit-Change-Number: 22308 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 18:26:15 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 18 Jan 2021 18:26:15 +0000 Subject: Change in docker-playground[master]: gbproxy, pcu, sgsn: Update config files In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22307 ) Change subject: gbproxy,pcu,sgsn: Update config files ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22307 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Ic607b3edc3bf724a8b2dbd6be8c806002c229509 Gerrit-Change-Number: 22307 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 18:26:15 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 18:26:28 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 18 Jan 2021 18:26:28 +0000 Subject: Change in docker-playground[master]: gbproxy: Use separate NS-VC for data + signaling In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22308 ) Change subject: gbproxy: Use separate NS-VC for data + signaling ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22308 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I58f8a6d1c8d01551d366bd7d0dbfb892cce512ae Gerrit-Change-Number: 22308 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 18:26:28 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 18:52:36 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 18 Jan 2021 18:52:36 +0000 Subject: Change in libosmocore[master]: ns2: delay NS_AFF_CAUSE_RECOVERY until NS-VC for data + sig are unblo... In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22282 ) Change subject: ns2: delay NS_AFF_CAUSE_RECOVERY until NS-VC for data + sig are unblocked ...................................................................... ns2: delay NS_AFF_CAUSE_RECOVERY until NS-VC for data + sig are unblocked Right now we end up in situations where only a NS-VC for data (BVCI != 0) becomes unblocked, but the BSSGP and/or user application code is notified that the NSE has recovered. In the case of osmo-gbproxy, this will trigger a BVC-RESET on the BVCI=0, but that obviously only works if the sig_weight > 0... Closes: OS#4956 Change-Id: I933ee3969c052394d61ec6cf8c7c21d17957d9ab --- M src/gb/gprs_ns2.c M src/gb/gprs_ns2_internal.h 2 files changed, 17 insertions(+), 16 deletions(-) Approvals: daniel: Looks good to me, but someone else must approve lynxis lazus: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c index 7c517aa..dc8ad8e 100644 --- a/src/gb/gprs_ns2.c +++ b/src/gb/gprs_ns2.c @@ -1121,13 +1121,18 @@ void ns2_nse_data_sum(struct gprs_ns2_nse *nse) { struct gprs_ns2_vc *nsvc; + nse->nsvc_count = 0; + nse->sum_data_weight = 0; + nse->sum_sig_weight = 0; llist_for_each_entry(nsvc, &nse->nsvc, list) { if (!gprs_ns2_vc_is_unblocked(nsvc)) continue; nse->nsvc_count++; + nse->sum_data_weight += nsvc->data_weight; + nse->sum_sig_weight += nsvc->sig_weight; } } @@ -1137,35 +1142,25 @@ void ns2_nse_notify_unblocked(struct gprs_ns2_vc *nsvc, bool unblocked) { struct gprs_ns2_nse *nse = nsvc->nse; - struct gprs_ns2_vc *tmp; ns2_nse_data_sum(nse); if (unblocked == nse->alive) return; - if (unblocked) { - /* this is the first unblocked NSVC on an unavailable NSE */ + /* wait until both data_weight and sig_weight are != 0 before declaring NSE as alive */ + if (unblocked && nse->sum_data_weight && nse->sum_sig_weight) { nse->alive = true; ns2_prim_status_ind(nse, NULL, 0, NS_AFF_CAUSE_RECOVERY); nse->first = false; return; } - /* check if there are any remaining alive vcs */ - llist_for_each_entry(tmp, &nse->nsvc, list) { - if (tmp == nsvc) - continue; - - if (gprs_ns2_vc_is_unblocked(tmp)) { - /* there is at least one remaining alive NSVC */ - return; - } + if (nse->alive && (nse->sum_data_weight == 0 || nse->sum_sig_weight == 0)) { + /* nse became unavailable */ + nse->alive = false; + ns2_prim_status_ind(nse, NULL, 0, NS_AFF_CAUSE_FAILURE); } - - /* nse became unavailable */ - nse->alive = false; - ns2_prim_status_ind(nse, NULL, 0, NS_AFF_CAUSE_FAILURE); } /*! Create a new GPRS NS instance diff --git a/src/gb/gprs_ns2_internal.h b/src/gb/gprs_ns2_internal.h index 5dbc349..5404ed3 100644 --- a/src/gb/gprs_ns2_internal.h +++ b/src/gb/gprs_ns2_internal.h @@ -136,6 +136,12 @@ enum gprs_ns2_dialect dialect; struct osmo_fsm_inst *bss_sns_fi; + + /*! sum of all the data weight of _active_ NS-VCs */ + uint32_t sum_data_weight; + + /*! sum of all the signalling weight of _active_ NS-VCs */ + uint32_t sum_sig_weight; }; /*! Structure representing a single NS-VC */ -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22282 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I933ee3969c052394d61ec6cf8c7c21d17957d9ab Gerrit-Change-Number: 22282 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 18:52:42 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 18 Jan 2021 18:52:42 +0000 Subject: Change in osmo-pcu[master]: Allow multile bts objects in PCU References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22309 ) Change subject: Allow multile bts objects in PCU ...................................................................... Allow multile bts objects in PCU This patch doesn't really tests whether osmo-pcu can work on a multi-bts environment, but it prepares the data structures to be able to do so at any later point in time. Change-Id: I6b10913f46c19d438c4e250a436a7446694b725a --- M src/bts.cpp M src/bts.h M src/gprs_bssgp_pcu.c M src/gprs_pcu.c M src/gprs_pcu.h M src/gprs_rlcmac.cpp M src/gprs_rlcmac.h M src/gprs_rlcmac_sched.cpp M src/osmo-bts-litecell15/lc15_l1_if.c M src/osmo-bts-oc2g/oc2g_l1_if.c M src/osmo-bts-sysmo/sysmo_l1_if.c M src/osmobts_sock.c M src/pcu_l1_if.cpp M src/pcu_l1_if.h M src/pcu_main.cpp M src/pcu_vty.c M src/pcu_vty_functions.cpp M tests/alloc/AllocTest.cpp M tests/alloc/MslotTest.cpp M tests/app_info/AppInfoTest.cpp M tests/edge/EdgeTest.cpp M tests/emu/pcu_emu.cpp M tests/fn/FnTest.cpp M tests/ms/MsTest.cpp M tests/tbf/TbfTest.cpp M tests/types/TypesTest.cpp 26 files changed, 343 insertions(+), 260 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/09/22309/1 diff --git a/src/bts.cpp b/src/bts.cpp index 372d45d..7491c85 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -221,10 +221,12 @@ msgb_free(bts->app_info); bts->app_info = NULL; } + + llist_del(&bts->list); return 0; } -struct gprs_rlcmac_bts* bts_alloc(struct gprs_pcu *pcu) +struct gprs_rlcmac_bts* bts_alloc(struct gprs_pcu *pcu, uint8_t bts_nr) { struct gprs_rlcmac_bts* bts; bts = talloc_zero(pcu, struct gprs_rlcmac_bts); @@ -233,6 +235,7 @@ talloc_set_destructor(bts, bts_talloc_destructor); bts->pcu = pcu; + bts->nr = bts_nr; bts->pollController = new PollController(*bts); bts->sba = new SBAController(*bts); @@ -286,6 +289,8 @@ bts->statg = osmo_stat_item_group_alloc(tall_pcu_ctx, &bts_statg_desc, 0); OSMO_ASSERT(bts->statg); + llist_add_tail(&bts->list, &pcu->bts_list); + return bts; } @@ -915,7 +920,7 @@ } if (plen >= 0) - pcu_l1if_tx_agch(bv, plen); + pcu_l1if_tx_agch(bts, bv, plen); else rc = plen; @@ -994,7 +999,7 @@ GSM_L1_BURST_TYPE_ACCESS_0); if (plen >= 0) { bts_do_rate_ctr_inc(bts, CTR_IMMEDIATE_ASSIGN_DL_TBF); - pcu_l1if_tx_pch(immediate_assignment, plen, pgroup); + pcu_l1if_tx_pch(bts, immediate_assignment, plen, pgroup); } bitvec_free(immediate_assignment); @@ -1124,10 +1129,10 @@ } } -void bts_update_tbf_ta(const char *p, uint32_t fn, uint8_t trx_no, uint8_t ts, int8_t ta, bool is_rach) +void bts_update_tbf_ta(struct gprs_rlcmac_bts *bts, const char *p, uint32_t fn, uint8_t trx_no, uint8_t ts, int8_t ta, bool is_rach) { struct gprs_rlcmac_ul_tbf *tbf = - bts_ul_tbf_by_poll_fn(the_pcu->bts, fn, trx_no, ts); + bts_ul_tbf_by_poll_fn(bts, fn, trx_no, ts); if (!tbf) LOGP(DL1IF, LOGL_DEBUG, "[%s] update TA = %u ignored due to " "unknown UL TBF on TRX = %d, TS = %d, FN = %d\n", diff --git a/src/bts.h b/src/bts.h index 8497a64..12ccd33 100644 --- a/src/bts.h +++ b/src/bts.h @@ -67,7 +67,8 @@ void bts_trx_unreserve_slots(struct gprs_rlcmac_trx *trx, enum gprs_rlcmac_tbf_direction dir, uint8_t slots); void bts_trx_free_all_tbf(struct gprs_rlcmac_trx *trx); -void bts_update_tbf_ta(const char *p, uint32_t fn, uint8_t trx_no, uint8_t ts, int8_t ta, bool is_rach); +void bts_update_tbf_ta(struct gprs_rlcmac_bts *bts, const char *p, uint32_t fn, + uint8_t trx_no, uint8_t ts, int8_t ta, bool is_rach); #ifdef __cplusplus } #endif @@ -194,6 +195,8 @@ * on my TRXs. */ struct gprs_rlcmac_bts { + uint8_t nr; /* bts_nr */ + struct llist_head list; /* queued in pcu->bts_list */ bool active; uint8_t bsic; uint8_t cs_mask; /* Allowed CS mask from struct gprs_rlcmac_bts */ @@ -316,7 +319,7 @@ osmo_stat_item_set(bts->statg->items[stat_id], val + inc); } -struct gprs_rlcmac_bts *bts_alloc(struct gprs_pcu *pcu); +struct gprs_rlcmac_bts *bts_alloc(struct gprs_pcu *pcu, uint8_t bts_nr); void bts_recalc_initial_cs(struct gprs_rlcmac_bts *bts); void bts_recalc_initial_mcs(struct gprs_rlcmac_bts *bts); diff --git a/src/gprs_bssgp_pcu.c b/src/gprs_bssgp_pcu.c index 288bc45..956fb66 100644 --- a/src/gprs_bssgp_pcu.c +++ b/src/gprs_bssgp_pcu.c @@ -204,18 +204,24 @@ static int gprs_bssgp_pcu_rx_paging_cs(struct msgb *msg, const struct tlv_parsed *tp) { struct osmo_mobile_identity mi; + struct gprs_rlcmac_bts *bts; int rc; if ((rc = get_paging_mi(&mi, tp)) > 0) return bssgp_tx_status((enum gprs_bssgp_cause) rc, NULL, msg); - return bts_add_paging(the_pcu->bts, tlvp_val8(tp, BSSGP_IE_CHAN_NEEDED, 0), &mi); + /* FIXME: look if MS is attached a specific BTS and then only page on that one? */ + llist_for_each_entry(bts, &the_pcu->bts_list, list) { + bts_add_paging(bts, tlvp_val8(tp, BSSGP_IE_CHAN_NEEDED, 0), &mi); + } + return 0; } static int gprs_bssgp_pcu_rx_paging_ps(struct msgb *msg, const struct tlv_parsed *tp) { struct osmo_mobile_identity mi_imsi; struct osmo_mobile_identity paging_mi; + struct gprs_rlcmac_bts *bts; uint16_t pgroup; int rc; @@ -238,7 +244,11 @@ if ((rc = get_paging_mi(&paging_mi, tp)) > 0) return bssgp_tx_status((enum gprs_bssgp_cause) rc, NULL, msg); - return gprs_rlcmac_paging_request(&paging_mi, pgroup); + /* FIXME: look if MS is attached a specific BTS and then only page on that one? */ + llist_for_each_entry(bts, &the_pcu->bts_list, list) { + gprs_rlcmac_paging_request(bts, &paging_mi, pgroup); + } + return 0; } /* Receive a BSSGP PDU from a BSS on a PTP BVCI */ @@ -808,7 +818,13 @@ LOGP(DBSSGP, LOGL_ERROR, "No bctx\n"); return -EIO; } - bts = the_pcu->bts; + + /* FIXME: This calculation needs to be redone to support multiple BTS */ + bts = llist_first_entry_or_null(&the_pcu->bts_list, struct gprs_rlcmac_bts, list); + if (!bts) { + LOGP(DBSSGP, LOGL_ERROR, "No bts\n"); + return -EIO; + } max_cs_dl = max_coding_scheme_dl(bts); diff --git a/src/gprs_pcu.c b/src/gprs_pcu.c index b280652..d291e71 100644 --- a/src/gprs_pcu.c +++ b/src/gprs_pcu.c @@ -21,6 +21,7 @@ */ #include +#include #include "gprs_pcu.h" #include "bts.h" @@ -100,37 +101,63 @@ pcu->T_defs = T_defs_pcu; osmo_tdefs_reset(pcu->T_defs); + INIT_LLIST_HEAD(&pcu->bts_list); + return pcu; } +struct gprs_rlcmac_bts *gprs_pcu_get_bts_by_nr(struct gprs_pcu *pcu, uint8_t bts_nr) +{ + struct gprs_rlcmac_bts *pos; + llist_for_each_entry(pos, &pcu->bts_list, list) { + if (pos->nr == bts_nr) + return pos; + } + return NULL; +} + void gprs_pcu_set_initial_cs(struct gprs_pcu *pcu, uint8_t cs_dl, uint8_t cs_ul) { + struct gprs_rlcmac_bts *bts; + the_pcu->vty.initial_cs_dl = cs_dl; the_pcu->vty.initial_cs_ul = cs_ul; - /*TODO: once we support multiple bts, foreach(bts) apply */ - bts_recalc_initial_cs(pcu->bts); + llist_for_each_entry(bts, &pcu->bts_list, list) { + bts_recalc_initial_cs(bts); + } } void gprs_pcu_set_initial_mcs(struct gprs_pcu *pcu, uint8_t mcs_dl, uint8_t mcs_ul) { + struct gprs_rlcmac_bts *bts; + the_pcu->vty.initial_mcs_dl = mcs_dl; the_pcu->vty.initial_mcs_ul = mcs_ul; - /*TODO: once we support multiple bts, foreach(bts) apply */ - bts_recalc_initial_mcs(pcu->bts); + llist_for_each_entry(bts, &pcu->bts_list, list) { + bts_recalc_initial_mcs(bts); + } } void gprs_pcu_set_max_cs(struct gprs_pcu *pcu, uint8_t cs_dl, uint8_t cs_ul) { + struct gprs_rlcmac_bts *bts; + the_pcu->vty.max_cs_dl = cs_dl; the_pcu->vty.max_cs_ul = cs_ul; - /*TODO: once we support multiple bts, foreach(bts) apply */ - bts_recalc_max_cs(pcu->bts); + + llist_for_each_entry(bts, &pcu->bts_list, list) { + bts_recalc_max_cs(bts); + } } void gprs_pcu_set_max_mcs(struct gprs_pcu *pcu, uint8_t mcs_dl, uint8_t mcs_ul) { + struct gprs_rlcmac_bts *bts; + the_pcu->vty.max_mcs_dl = mcs_dl; the_pcu->vty.max_mcs_ul = mcs_ul; - /* TODO: once we support multiple bts, foreach(bts) apply */ - bts_recalc_max_mcs(pcu->bts); + + llist_for_each_entry(bts, &pcu->bts_list, list) { + bts_recalc_max_mcs(bts); + } } diff --git a/src/gprs_pcu.h b/src/gprs_pcu.h index 37f6e07..058d102 100644 --- a/src/gprs_pcu.h +++ b/src/gprs_pcu.h @@ -107,7 +107,7 @@ struct gsmtap_inst *gsmtap; uint32_t gsmtap_categ_mask; - struct gprs_rlcmac_bts *bts; + struct llist_head bts_list; /* list of gprs_rlcmac_tbf */ struct gprs_ns2_inst *nsi; @@ -123,6 +123,8 @@ struct gprs_pcu *gprs_pcu_alloc(void *ctx); +struct gprs_rlcmac_bts *gprs_pcu_get_bts_by_nr(struct gprs_pcu *pcu, uint8_t bts_nr); + void gprs_pcu_set_initial_cs(struct gprs_pcu *pcu, uint8_t cs_dl, uint8_t cs_ul); void gprs_pcu_set_initial_mcs(struct gprs_pcu *pcu, uint8_t mcs_dl, uint8_t mcs_ul); void gprs_pcu_set_max_cs(struct gprs_pcu *pcu, uint8_t cs_dl, uint8_t cs_ul); diff --git a/src/gprs_rlcmac.cpp b/src/gprs_rlcmac.cpp index 4fb75f7..71849b8 100644 --- a/src/gprs_rlcmac.cpp +++ b/src/gprs_rlcmac.cpp @@ -32,7 +32,8 @@ extern void *tall_pcu_ctx; -int gprs_rlcmac_paging_request(const struct osmo_mobile_identity *mi, uint16_t pgroup) +int gprs_rlcmac_paging_request(struct gprs_rlcmac_bts *bts, const struct osmo_mobile_identity *mi, + uint16_t pgroup) { if (log_check_level(DRLCMAC, LOGL_NOTICE)) { char str[64]; @@ -46,7 +47,7 @@ LOGP(DRLCMAC, LOGL_ERROR, "TX: [PCU -> BTS] Failed to encode Paging Request\n"); return -1; } - pcu_l1if_tx_pch(paging_request, plen, pgroup); + pcu_l1if_tx_pch(bts, paging_request, plen, pgroup); bitvec_free(paging_request); return 0; diff --git a/src/gprs_rlcmac.h b/src/gprs_rlcmac.h index a5d1d30..06aa084 100644 --- a/src/gprs_rlcmac.h +++ b/src/gprs_rlcmac.h @@ -113,7 +113,7 @@ int alloc_algorithm_dynamic(struct gprs_rlcmac_bts *bts, struct GprsMs *ms, struct gprs_rlcmac_tbf *tbf, bool single, int8_t use_trx); -int gprs_rlcmac_paging_request(const struct osmo_mobile_identity *mi, uint16_t pgroup); +int gprs_rlcmac_paging_request( struct gprs_rlcmac_bts *bts, const struct osmo_mobile_identity *mi, uint16_t pgroup); int gprs_alloc_max_dl_slots_per_ms(const struct gprs_rlcmac_bts *bts, uint8_t ms_class); #ifdef __cplusplus } diff --git a/src/gprs_rlcmac_sched.cpp b/src/gprs_rlcmac_sched.cpp index 40c194c..5640158 100644 --- a/src/gprs_rlcmac_sched.cpp +++ b/src/gprs_rlcmac_sched.cpp @@ -136,7 +136,7 @@ if (!tbf || !tbf->ms()->app_info_pending) return NULL; - bts = the_pcu->bts; + bts = tbf->bts; if (bts->app_info) { LOGP(DRLCMACSCHED, LOGL_DEBUG, "Sending Packet Application Information message\n"); @@ -506,7 +506,7 @@ tap_n_acc(msg, bts, trx, ts, fn, gsmtap_cat); /* send PDTCH/PACCH to L1 */ - pcu_l1if_tx_pdtch(msg, trx, ts, bts->trx[trx].arfcn, fn, block_nr); + pcu_l1if_tx_pdtch(msg, bts, trx, ts, bts->trx[trx].arfcn, fn, block_nr); return 0; } diff --git a/src/osmo-bts-litecell15/lc15_l1_if.c b/src/osmo-bts-litecell15/lc15_l1_if.c index bf2ecec..de43d9f 100644 --- a/src/osmo-bts-litecell15/lc15_l1_if.c +++ b/src/osmo-bts-litecell15/lc15_l1_if.c @@ -189,6 +189,7 @@ GsmL1_PhDataInd_t *data_ind, struct msgb *l1p_msg) { int rc = 0; + struct gprs_rlcmac_bts *bts; struct pcu_l1_meas meas = {0}; DEBUGP(DL1IF, "Rx PH-DATA.ind %s (hL2 %08x): %s\n", @@ -205,8 +206,10 @@ if (data_ind->msgUnitParam.u8Size == 0) return -1; + bts = llist_first_entry_or_null(&the_pcu->bts_list, struct gprs_rlcmac_bts, list); + get_meas(&meas, &data_ind->measParam); - bts_update_tbf_ta("PH-DATA", data_ind->u32Fn, fl1h->trx_no, + bts_update_tbf_ta(bts, "PH-DATA", data_ind->u32Fn, fl1h->trx_no, data_ind->u8Tn, sign_qta2ta(meas.bto), false); switch (data_ind->sapi) { @@ -217,7 +220,7 @@ != GsmL1_PdtchPlType_Full) break; /* PDTCH / PACCH frame handling */ - rc = pcu_rx_data_ind_pdtch(fl1h->trx_no, data_ind->u8Tn, + rc = pcu_rx_data_ind_pdtch(bts, fl1h->trx_no, data_ind->u8Tn, data_ind->msgUnitParam.u8Buffer + 1, data_ind->msgUnitParam.u8Size - 1, data_ind->u32Fn, @@ -243,19 +246,22 @@ static int handle_ph_ra_ind(struct lc15l1_hdl *fl1h, GsmL1_PhRaInd_t *ra_ind) { + struct gprs_rlcmac_bts *bts; if (ra_ind->measParam.fLinkQuality < MIN_QUAL_RACH) return 0; DEBUGP(DL1IF, "Rx PH-RA.ind"); + bts = llist_first_entry_or_null(&the_pcu->bts_list, struct gprs_rlcmac_bts, list); + switch (ra_ind->sapi) { case GsmL1_Sapi_Pdtch: case GsmL1_Sapi_Prach: - bts_update_tbf_ta("PH-RA", ra_ind->u32Fn, fl1h->trx_no, ra_ind->u8Tn, + bts_update_tbf_ta(bts, "PH-RA", ra_ind->u32Fn, fl1h->trx_no, ra_ind->u8Tn, qta2ta(ra_ind->measParam.i16BurstTiming), true); break; case GsmL1_Sapi_Ptcch: - pcu_rx_rach_ind_ptcch(fl1h->trx_no, ra_ind->u8Tn, ra_ind->u32Fn, + pcu_rx_rach_ind_ptcch(bts, fl1h->trx_no, ra_ind->u8Tn, ra_ind->u32Fn, ra_ind->measParam.i16BurstTiming); break; default: @@ -387,4 +393,3 @@ talloc_free(fl1h); return 0; } - diff --git a/src/osmo-bts-oc2g/oc2g_l1_if.c b/src/osmo-bts-oc2g/oc2g_l1_if.c index 0bfe0b9..4ff9dd0 100644 --- a/src/osmo-bts-oc2g/oc2g_l1_if.c +++ b/src/osmo-bts-oc2g/oc2g_l1_if.c @@ -190,6 +190,7 @@ GsmL1_PhDataInd_t *data_ind, struct msgb *l1p_msg) { int rc = 0; + struct gprs_rlcmac_bts *bts; struct pcu_l1_meas meas = {0}; DEBUGP(DL1IF, "Rx PH-DATA.ind %s (hL2 %08x): %s\n", @@ -206,13 +207,15 @@ if (data_ind->msgUnitParam.u8Size == 0) return -1; + bts = llist_first_entry_or_null(&the_pcu->bts_list, struct gprs_rlcmac_bts, list); + gsmtap_send(fl1h->gsmtap, data_ind->u16Arfcn | GSMTAP_ARFCN_F_UPLINK, data_ind->u8Tn, GSMTAP_CHANNEL_PACCH, 0, data_ind->u32Fn, 0, 0, data_ind->msgUnitParam.u8Buffer+1, data_ind->msgUnitParam.u8Size-1); get_meas(&meas, &data_ind->measParam); - bts_update_tbf_ta("PH-DATA", data_ind->u32Fn, fl1h->trx_no, + bts_update_tbf_ta(bts, "PH-DATA", data_ind->u32Fn, fl1h->trx_no, data_ind->u8Tn, sign_qta2ta(meas.bto), false); switch (data_ind->sapi) { @@ -223,7 +226,7 @@ != GsmL1_PdtchPlType_Full) break; /* PDTCH / PACCH frame handling */ - pcu_rx_data_ind_pdtch(fl1h->trx_no, data_ind->u8Tn, + pcu_rx_data_ind_pdtch(bts, fl1h->trx_no, data_ind->u8Tn, data_ind->msgUnitParam.u8Buffer + 1, data_ind->msgUnitParam.u8Size - 1, data_ind->u32Fn, @@ -242,19 +245,23 @@ static int handle_ph_ra_ind(struct oc2gl1_hdl *fl1h, GsmL1_PhRaInd_t *ra_ind) { + struct gprs_rlcmac_bts *bts; + if (ra_ind->measParam.fLinkQuality < MIN_QUAL_RACH) return 0; LOGP(DL1IF, LOGL_DEBUG, "PH-RA-IND L1 qta=%d\n", ra_ind->measParam.i16BurstTiming); + bts = llist_first_entry_or_null(&the_pcu->bts_list, struct gprs_rlcmac_bts, list); + switch (ra_ind->sapi) { case GsmL1_Sapi_Pdtch: case GsmL1_Sapi_Prach: - bts_update_tbf_ta("PH-RA", ra_ind->u32Fn, fl1h->trx_no, ra_ind->u8Tn, + bts_update_tbf_ta(bts, "PH-RA", ra_ind->u32Fn, fl1h->trx_no, ra_ind->u8Tn, qta2ta(ra_ind->measParam.i16BurstTiming), true); break; case GsmL1_Sapi_Ptcch: - pcu_rx_rach_ind_ptcch(fl1h->trx_no, ra_ind->u8Tn, ra_ind->u32Fn, + pcu_rx_rach_ind_ptcch(bts, fl1h->trx_no, ra_ind->u8Tn, ra_ind->u32Fn, ra_ind->measParam.i16BurstTiming); break; default: @@ -392,4 +399,3 @@ talloc_free(fl1h); return 0; } - diff --git a/src/osmo-bts-sysmo/sysmo_l1_if.c b/src/osmo-bts-sysmo/sysmo_l1_if.c index 7406bbf..f9db0b8 100644 --- a/src/osmo-bts-sysmo/sysmo_l1_if.c +++ b/src/osmo-bts-sysmo/sysmo_l1_if.c @@ -123,7 +123,7 @@ cr = prim_init(msgb_l1prim(msg), GsmL1_PrimId_MphConnectReq, fl1h); cr->u8Tn = ts; cr->logChComb = GsmL1_LogChComb_XIII; - + return l1if_req_pdch(fl1h, msg); } @@ -131,6 +131,7 @@ GsmL1_PhReadyToSendInd_t *rts_ind) { struct gsm_time g_time; + struct gprs_rlcmac_bts *bts; int rc = 0; gsm_fn2gsmtime(&g_time, rts_ind->u32Fn); @@ -139,14 +140,16 @@ g_time.t1, g_time.t2, g_time.t3, get_value_string(femtobts_l1sapi_names, rts_ind->sapi)); + bts = llist_first_entry_or_null(&the_pcu->bts_list, struct gprs_rlcmac_bts, list); + switch (rts_ind->sapi) { case GsmL1_Sapi_Pdtch: case GsmL1_Sapi_Pacch: - rc = pcu_rx_rts_req_pdtch(fl1h->trx_no, rts_ind->u8Tn, + rc = pcu_rx_rts_req_pdtch(bts, fl1h->trx_no, rts_ind->u8Tn, rts_ind->u32Fn, rts_ind->u8BlockNbr); break; case GsmL1_Sapi_Ptcch: - rc = pcu_rx_rts_req_ptcch(fl1h->trx_no, rts_ind->u8Tn, + rc = pcu_rx_rts_req_ptcch(bts, fl1h->trx_no, rts_ind->u8Tn, rts_ind->u32Fn, rts_ind->u8BlockNbr); break; default: @@ -172,6 +175,7 @@ GsmL1_PhDataInd_t *data_ind, struct msgb *l1p_msg) { int rc = 0; + struct gprs_rlcmac_bts *bts; struct pcu_l1_meas meas = {0}; DEBUGP(DL1IF, "Rx PH-DATA.ind %s (hL2 %08x): %s\n", @@ -180,7 +184,8 @@ osmo_hexdump(data_ind->msgUnitParam.u8Buffer, data_ind->msgUnitParam.u8Size)); - pcu_rx_block_time(data_ind->u16Arfcn, data_ind->u32Fn, data_ind->u8Tn); + bts = llist_first_entry_or_null(&the_pcu->bts_list, struct gprs_rlcmac_bts, list); + pcu_rx_block_time(bts, data_ind->u16Arfcn, data_ind->u32Fn, data_ind->u8Tn); /* * TODO: Add proper bad frame handling here. This could be used @@ -191,7 +196,7 @@ return -1; get_meas(&meas, &data_ind->measParam); - bts_update_tbf_ta("PH-DATA", data_ind->u32Fn, fl1h->trx_no, + bts_update_tbf_ta(bts, "PH-DATA", data_ind->u32Fn, fl1h->trx_no, data_ind->u8Tn, sign_qta2ta(meas.bto), false); switch (data_ind->sapi) { @@ -202,7 +207,7 @@ != GsmL1_PdtchPlType_Full) break; /* PDTCH / PACCH frame handling */ - pcu_rx_data_ind_pdtch(fl1h->trx_no, data_ind->u8Tn, + pcu_rx_data_ind_pdtch(bts, fl1h->trx_no, data_ind->u8Tn, data_ind->msgUnitParam.u8Buffer + 1, data_ind->msgUnitParam.u8Size - 1, data_ind->u32Fn, @@ -230,7 +235,10 @@ static int handle_ph_ra_ind(struct femtol1_hdl *fl1h, GsmL1_PhRaInd_t *ra_ind) { - pcu_rx_ra_time(ra_ind->u16Arfcn, ra_ind->u32Fn, ra_ind->u8Tn); + struct gprs_rlcmac_bts *bts; + bts = llist_first_entry_or_null(&the_pcu->bts_list, struct gprs_rlcmac_bts, list); + + pcu_rx_ra_time(bts, ra_ind->u16Arfcn, ra_ind->u32Fn, ra_ind->u8Tn); if (ra_ind->measParam.fLinkQuality < MIN_QUAL_RACH) return 0; @@ -240,11 +248,11 @@ switch (ra_ind->sapi) { case GsmL1_Sapi_Pdtch: case GsmL1_Sapi_Prach: - bts_update_tbf_ta("PH-RA", ra_ind->u32Fn, fl1h->trx_no, ra_ind->u8Tn, + bts_update_tbf_ta(bts, "PH-RA", ra_ind->u32Fn, fl1h->trx_no, ra_ind->u8Tn, qta2ta(ra_ind->measParam.i16BurstTiming), true); break; case GsmL1_Sapi_Ptcch: - pcu_rx_rach_ind_ptcch(fl1h->trx_no, ra_ind->u8Tn, ra_ind->u32Fn, + pcu_rx_rach_ind_ptcch(bts, fl1h->trx_no, ra_ind->u8Tn, ra_ind->u32Fn, ra_ind->measParam.i16BurstTiming); break; default: @@ -373,4 +381,3 @@ talloc_free(fl1h); return 0; } - diff --git a/src/osmobts_sock.c b/src/osmobts_sock.c index ec9d7ce..264a2f4 100644 --- a/src/osmobts_sock.c +++ b/src/osmobts_sock.c @@ -60,13 +60,20 @@ static void pcu_tx_txt_retry(void *_priv) { - struct gprs_rlcmac_bts *bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts; + bool retry = !llist_empty(&the_pcu->bts_list); - if (bts->active) - return; + llist_for_each_entry(bts, &the_pcu->bts_list, list) { + if (bts->active) + continue; + retry = true; + pcu_tx_txt_ind(PCU_VERSION, "%s", PACKAGE_VERSION); + break; + } - pcu_tx_txt_ind(PCU_VERSION, "%s", PACKAGE_VERSION); - osmo_timer_schedule(&pcu_sock_state.timer, 5, 0); + /* If no BTS (or not all) yet active, retry */ + if (retry) + osmo_timer_schedule(&pcu_sock_state.timer, 5, 0); } int pcu_sock_send(struct msgb *msg) @@ -88,7 +95,7 @@ static void pcu_sock_close(int lost) { struct osmo_fd *bfd = &pcu_sock_state.conn_bfd; - struct gprs_rlcmac_bts *bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts; uint8_t trx, ts; LOGP(DL1IF, LOGL_NOTICE, "PCU socket has %s connection\n", @@ -104,22 +111,23 @@ msgb_free(msg); } - /* disable all slots, kick all TBFs */ - for (trx = 0; trx < 8; trx++) { + llist_for_each_entry(bts, &the_pcu->bts_list, list) { + /* disable all slots, kick all TBFs */ + for (trx = 0; trx < 8; trx++) { #ifdef ENABLE_DIRECT_PHY - if (bts->trx[trx].fl1h) { - l1if_close_pdch(bts->trx[trx].fl1h); - bts->trx[trx].fl1h = NULL; - } + if (bts->trx[trx].fl1h) { + l1if_close_pdch(bts->trx[trx].fl1h); + bts->trx[trx].fl1h = NULL; + } #endif - for (ts = 0; ts < 8; ts++) - pdch_disable(&bts->trx[trx].pdch[ts]); -/* FIXME: NOT ALL RESOURCES are freed in this case... inconsistent with the other code. Share the code with pcu_l1if.c -for the reset. */ - bts_trx_free_all_tbf(&bts->trx[trx]); + for (ts = 0; ts < 8; ts++) + pdch_disable(&bts->trx[trx].pdch[ts]); + /* FIXME: NOT ALL RESOURCES are freed in this case... inconsistent with the other code. Share the code with pcu_l1if.c + for the reset. */ + bts_trx_free_all_tbf(&bts->trx[trx]); + } + gprs_bssgp_destroy(bts); } - - gprs_bssgp_destroy(bts); exit(0); } diff --git a/src/pcu_l1_if.cpp b/src/pcu_l1_if.cpp index 8847960..10521a6 100644 --- a/src/pcu_l1_if.cpp +++ b/src/pcu_l1_if.cpp @@ -145,7 +145,7 @@ return pcu_sock_send(msg); } -static int pcu_tx_act_req(uint8_t trx, uint8_t ts, uint8_t activate) +static int pcu_tx_act_req(struct gprs_rlcmac_bts *bts, uint8_t trx, uint8_t ts, uint8_t activate) { struct msgb *msg; struct gsm_pcu_if *pcu_prim; @@ -154,7 +154,7 @@ LOGP(DL1IF, LOGL_INFO, "Sending %s request: trx=%d ts=%d\n", (activate) ? "activate" : "deactivate", trx, ts); - msg = pcu_msgb_alloc(PCU_IF_MSG_ACT_REQ, 0); + msg = pcu_msgb_alloc(PCU_IF_MSG_ACT_REQ, bts->nr); if (!msg) return -ENOMEM; pcu_prim = (struct gsm_pcu_if *) msg->data; @@ -166,20 +166,20 @@ return pcu_sock_send(msg); } -static int pcu_tx_data_req(uint8_t trx, uint8_t ts, uint8_t sapi, +static int pcu_tx_data_req(struct gprs_rlcmac_bts *bts, uint8_t trx, uint8_t ts, uint8_t sapi, uint16_t arfcn, uint32_t fn, uint8_t block_nr, uint8_t *data, uint8_t len) { struct msgb *msg; struct gsm_pcu_if *pcu_prim; struct gsm_pcu_if_data *data_req; - int current_fn = bts_current_frame_number(the_pcu->bts); + int current_fn = bts_current_frame_number(bts); LOGP(DL1IF, LOGL_DEBUG, "Sending data request: trx=%d ts=%d sapi=%d " "arfcn=%d fn=%d cur_fn=%d block=%d data=%s\n", trx, ts, sapi, arfcn, fn, current_fn, block_nr, osmo_hexdump(data, len)); - msg = pcu_msgb_alloc(PCU_IF_MSG_DATA_REQ, 0); + msg = pcu_msgb_alloc(PCU_IF_MSG_DATA_REQ, bts->nr); if (!msg) return -ENOMEM; pcu_prim = (struct gsm_pcu_if *) msg->data; @@ -197,12 +197,10 @@ return pcu_sock_send(msg); } -void pcu_l1if_tx_pdtch(msgb *msg, uint8_t trx, uint8_t ts, uint16_t arfcn, +void pcu_l1if_tx_pdtch(msgb *msg, struct gprs_rlcmac_bts *bts, uint8_t trx, uint8_t ts, uint16_t arfcn, uint32_t fn, uint8_t block_nr) { #ifdef ENABLE_DIRECT_PHY - struct gprs_rlcmac_bts *bts = the_pcu->bts; - if (bts->trx[trx].fl1h) { l1if_pdch_req(bts->trx[trx].fl1h, ts, 0, fn, arfcn, block_nr, msg->data, msg->len); @@ -210,7 +208,7 @@ return; } #endif - pcu_tx_data_req(trx, ts, PCU_IF_SAPI_PDTCH, arfcn, fn, block_nr, + pcu_tx_data_req(bts, trx, ts, PCU_IF_SAPI_PDTCH, arfcn, fn, block_nr, msg->data, msg->len); msgb_free(msg); } @@ -228,10 +226,10 @@ return; } #endif - pcu_tx_data_req(trx, ts, PCU_IF_SAPI_PTCCH, arfcn, fn, block_nr, data, data_len); + pcu_tx_data_req(bts, trx, ts, PCU_IF_SAPI_PTCCH, arfcn, fn, block_nr, data, data_len); } -void pcu_l1if_tx_agch(bitvec * block, int plen) +void pcu_l1if_tx_agch(struct gprs_rlcmac_bts *bts, bitvec * block, int plen) { uint8_t data[GSM_MACBLOCK_LEN]; /* prefix PLEN */ @@ -242,10 +240,10 @@ if (the_pcu->gsmtap_categ_mask & (1 << PCU_GSMTAP_C_DL_AGCH)) gsmtap_send(the_pcu->gsmtap, 0, 0, GSMTAP_CHANNEL_AGCH, 0, 0, 0, 0, data, GSM_MACBLOCK_LEN); - pcu_tx_data_req(0, 0, PCU_IF_SAPI_AGCH, 0, 0, 0, data, GSM_MACBLOCK_LEN); + pcu_tx_data_req(bts, 0, 0, PCU_IF_SAPI_AGCH, 0, 0, 0, data, GSM_MACBLOCK_LEN); } -void pcu_l1if_tx_pch(bitvec * block, int plen, uint16_t pgroup) +void pcu_l1if_tx_pch(struct gprs_rlcmac_bts *bts, bitvec * block, int plen, uint16_t pgroup) { uint8_t data[PAGING_GROUP_LEN + GSM_MACBLOCK_LEN]; int i; @@ -267,33 +265,31 @@ if (the_pcu->gsmtap_categ_mask & (1 << PCU_GSMTAP_C_DL_PCH)) gsmtap_send(the_pcu->gsmtap, 0, 0, GSMTAP_CHANNEL_PCH, 0, 0, 0, 0, data + 3, GSM_MACBLOCK_LEN); - pcu_tx_data_req(0, 0, PCU_IF_SAPI_PCH, 0, 0, 0, data, PAGING_GROUP_LEN + GSM_MACBLOCK_LEN); + pcu_tx_data_req(bts, 0, 0, PCU_IF_SAPI_PCH, 0, 0, 0, data, PAGING_GROUP_LEN + GSM_MACBLOCK_LEN); } -extern "C" void pcu_rx_block_time(uint16_t arfcn, uint32_t fn, uint8_t ts_no) +void pcu_rx_block_time(struct gprs_rlcmac_bts *bts, uint16_t arfcn, uint32_t fn, uint8_t ts_no) { - bts_set_current_block_frame_number(the_pcu->bts,fn, 0); + bts_set_current_block_frame_number(bts, fn, 0); } -extern "C" void pcu_rx_ra_time(uint16_t arfcn, uint32_t fn, uint8_t ts_no) +void pcu_rx_ra_time(struct gprs_rlcmac_bts *bts, uint16_t arfcn, uint32_t fn, uint8_t ts_no) { /* access bursts may arrive some bursts earlier */ - bts_set_current_block_frame_number(the_pcu->bts,fn, 5); + bts_set_current_block_frame_number(bts, fn, 5); } -extern "C" int pcu_rx_data_ind_pdtch(uint8_t trx_no, uint8_t ts_no, uint8_t *data, +int pcu_rx_data_ind_pdtch(struct gprs_rlcmac_bts *bts, uint8_t trx_no, uint8_t ts_no, uint8_t *data, uint8_t len, uint32_t fn, struct pcu_l1_meas *meas) { struct gprs_rlcmac_pdch *pdch; - pdch = &the_pcu->bts->trx[trx_no].pdch[ts_no]; + pdch = &bts->trx[trx_no].pdch[ts_no]; return pdch->rcv_block(data, len, fn, meas); } -static int pcu_rx_data_ind_bcch(uint8_t *data, uint8_t len) +static int pcu_rx_data_ind_bcch(struct gprs_rlcmac_bts *bts, uint8_t *data, uint8_t len) { - struct gprs_rlcmac_bts *bts = the_pcu->bts; - if (len == 0) { bts->si13_is_set = false; LOGP(DL1IF, LOGL_INFO, "Received PCU data indication with empty SI13: cache cleaned\n"); @@ -311,10 +307,10 @@ return 0; } -static int pcu_rx_data_ind(struct gsm_pcu_if_data *data_ind) +static int pcu_rx_data_ind(struct gprs_rlcmac_bts *bts, struct gsm_pcu_if_data *data_ind) { int rc; - int current_fn = bts_current_frame_number(the_pcu->bts); + int current_fn = bts_current_frame_number(bts); struct pcu_l1_meas meas = {0}; uint8_t gsmtap_chantype; @@ -334,13 +330,13 @@ LOGP(DL1IF, LOGL_DEBUG, "Data indication with raw measurements received: BER10k = %d, BTO = %d, Q = %d\n", data_ind->ber10k, data_ind->ta_offs_qbits, data_ind->lqual_cb); - rc = pcu_rx_data_ind_pdtch(data_ind->trx_nr, data_ind->ts_nr, + rc = pcu_rx_data_ind_pdtch(bts, data_ind->trx_nr, data_ind->ts_nr, data_ind->data, data_ind->len, data_ind->fn, &meas); gsmtap_chantype = GSMTAP_CHANNEL_PDTCH; break; case PCU_IF_SAPI_BCCH: - rc = pcu_rx_data_ind_bcch(data_ind->data, data_ind->len); + rc = pcu_rx_data_ind_bcch(bts, data_ind->data, data_ind->len); gsmtap_chantype = GSMTAP_CHANNEL_BCCH; break; default: @@ -358,10 +354,10 @@ return rc; } -static int pcu_rx_data_cnf(struct gsm_pcu_if_data *data_cnf) +static int pcu_rx_data_cnf(struct gprs_rlcmac_bts *bts, struct gsm_pcu_if_data *data_cnf) { int rc = 0; - int current_fn = bts_current_frame_number(the_pcu->bts); + int current_fn = bts_current_frame_number(bts); LOGP(DL1IF, LOGL_DEBUG, "Data confirm received: sapi=%d fn=%d cur_fn=%d\n", data_cnf->sapi, data_cnf->fn, current_fn); @@ -369,7 +365,7 @@ switch (data_cnf->sapi) { case PCU_IF_SAPI_PCH: if (data_cnf->data[2] == 0x3f) - bts_rcv_imm_ass_cnf(the_pcu->bts, data_cnf->data, data_cnf->fn); + bts_rcv_imm_ass_cnf(bts, data_cnf->data, data_cnf->fn); break; default: LOGP(DL1IF, LOGL_ERROR, "Received PCU data confirm with " @@ -381,16 +377,15 @@ } // FIXME: remove this, when changed from c++ to c. -extern "C" int pcu_rx_rts_req_pdtch(uint8_t trx, uint8_t ts, +int pcu_rx_rts_req_pdtch(struct gprs_rlcmac_bts *bts, uint8_t trx, uint8_t ts, uint32_t fn, uint8_t block_nr) { - return gprs_rlcmac_rcv_rts_block(the_pcu->bts, + return gprs_rlcmac_rcv_rts_block(bts, trx, ts, fn, block_nr); } -extern "C" int pcu_rx_rts_req_ptcch(uint8_t trx, uint8_t ts, +int pcu_rx_rts_req_ptcch(struct gprs_rlcmac_bts *bts, uint8_t trx, uint8_t ts, uint32_t fn, uint8_t block_nr) { - struct gprs_rlcmac_bts *bts = the_pcu->bts; struct gprs_rlcmac_pdch *pdch; /* Prevent buffer overflow */ @@ -407,10 +402,10 @@ return 0; } -static int pcu_rx_rts_req(struct gsm_pcu_if_rts_req *rts_req) +static int pcu_rx_rts_req(struct gprs_rlcmac_bts *bts, struct gsm_pcu_if_rts_req *rts_req) { int rc = 0; - int current_fn = bts_current_frame_number(the_pcu->bts); + int current_fn = bts_current_frame_number(bts); LOGP(DL1IF, LOGL_DEBUG, "RTS request received: trx=%d ts=%d sapi=%d " "arfcn=%d fn=%d cur_fn=%d block=%d\n", rts_req->trx_nr, rts_req->ts_nr, @@ -418,11 +413,11 @@ switch (rts_req->sapi) { case PCU_IF_SAPI_PDTCH: - pcu_rx_rts_req_pdtch(rts_req->trx_nr, rts_req->ts_nr, + pcu_rx_rts_req_pdtch(bts, rts_req->trx_nr, rts_req->ts_nr, rts_req->fn, rts_req->block_nr); break; case PCU_IF_SAPI_PTCCH: - pcu_rx_rts_req_ptcch(rts_req->trx_nr, rts_req->ts_nr, + pcu_rx_rts_req_ptcch(bts, rts_req->trx_nr, rts_req->ts_nr, rts_req->fn, rts_req->block_nr); break; default: @@ -435,7 +430,7 @@ } /* C -> C++ adapter for direct DSP access code (e.g. osmo-bts-sysmo) */ -extern "C" int pcu_rx_rach_ind_ptcch(uint8_t trx_nr, uint8_t ts_nr, uint32_t fn, int16_t qta) +extern "C" int pcu_rx_rach_ind_ptcch(struct gprs_rlcmac_bts *bts, uint8_t trx_nr, uint8_t ts_nr, uint32_t fn, int16_t qta) { struct rach_ind_params rip = { /* The content of RA is not of interest on PTCCH/U */ @@ -448,13 +443,13 @@ .qta = qta, }; - return bts_rcv_ptcch_rach(the_pcu->bts, &rip); + return bts_rcv_ptcch_rach(bts, &rip); } -static int pcu_rx_rach_ind(const struct gsm_pcu_if_rach_ind *rach_ind) +static int pcu_rx_rach_ind(struct gprs_rlcmac_bts *bts, const struct gsm_pcu_if_rach_ind *rach_ind) { int rc = 0; - int current_fn = bts_current_frame_number(the_pcu->bts); + int current_fn = bts_current_frame_number(bts); LOGP(DL1IF, LOGL_INFO, "RACH request received: sapi=%d " "qta=%d, ra=0x%02x, fn=%u, cur_fn=%d, is_11bit=%d\n", rach_ind->sapi, rach_ind->qta, @@ -472,10 +467,10 @@ switch (rach_ind->sapi) { case PCU_IF_SAPI_RACH: - rc = bts_rcv_rach(the_pcu->bts, &rip); + rc = bts_rcv_rach(bts, &rip); break; case PCU_IF_SAPI_PTCCH: - rc = bts_rcv_ptcch_rach(the_pcu->bts, &rip); + rc = bts_rcv_ptcch_rach(bts, &rip); break; default: LOGP(DL1IF, LOGL_ERROR, "Received PCU rach request with " @@ -542,9 +537,8 @@ return gprs_ns_config(bts, info_ind->nsei, local, remote, nsvci, valid); } -static int pcu_rx_info_ind(const struct gsm_pcu_if_info_ind *info_ind) +static int pcu_rx_info_ind(struct gprs_rlcmac_bts *bts, const struct gsm_pcu_if_info_ind *info_ind) { - struct gprs_rlcmac_bts *bts = the_pcu->bts; struct gprs_bssgp_pcu *pcu; int rc = 0; unsigned int trx_nr, ts_nr; @@ -704,7 +698,7 @@ l1if_connect_pdch( bts->trx[trx_nr].fl1h, ts_nr); #endif - pcu_tx_act_req(trx_nr, ts_nr, 1); + pcu_tx_act_req(bts, trx_nr, ts_nr, 1); pdch->enable(); } @@ -730,7 +724,7 @@ trx_nr, ts_nr, pdch->tsc, pdch->fh.enabled ? "yes" : "no"); } else { if (pdch->is_enabled()) { - pcu_tx_act_req(trx_nr, ts_nr, 0); + pcu_tx_act_req(bts, trx_nr, ts_nr, 0); pdch->free_resources(); pdch->disable(); } @@ -742,7 +736,7 @@ return rc; } -static int pcu_rx_time_ind(struct gsm_pcu_if_time_ind *time_ind) +static int pcu_rx_time_ind(struct gprs_rlcmac_bts *bts, struct gsm_pcu_if_time_ind *time_ind) { uint8_t fn13 = time_ind->fn % 13; @@ -752,11 +746,11 @@ LOGP(DL1IF, LOGL_DEBUG, "Time indication received: %d\n", time_ind->fn % 52); - bts_set_current_frame_number(the_pcu->bts, time_ind->fn); + bts_set_current_frame_number(bts, time_ind->fn); return 0; } -static int pcu_rx_pag_req(struct gsm_pcu_if_pag_req *pag_req) +static int pcu_rx_pag_req(struct gprs_rlcmac_bts *bts, struct gsm_pcu_if_pag_req *pag_req) { struct osmo_mobile_identity mi; int rc; @@ -777,12 +771,11 @@ return -EINVAL; } - return bts_add_paging(the_pcu->bts, pag_req->chan_needed, &mi); + return bts_add_paging(bts, pag_req->chan_needed, &mi); } -static int pcu_rx_susp_req(struct gsm_pcu_if_susp_req *susp_req) +static int pcu_rx_susp_req(struct gprs_rlcmac_bts *bts, struct gsm_pcu_if_susp_req *susp_req) { - struct gprs_rlcmac_bts *bts = the_pcu->bts; struct bssgp_bvc_ctx *bctx = gprs_bssgp_pcu_current_bctx(); GprsMs *ms; struct gprs_rlcmac_dl_tbf *dl_tbf; @@ -811,9 +804,8 @@ return bssgp_tx_suspend(bctx->nsei, susp_req->tlli, &ra_id); } -static int pcu_rx_app_info_req(struct gsm_pcu_if_app_info_req *app_info_req) +static int pcu_rx_app_info_req(struct gprs_rlcmac_bts *bts, struct gsm_pcu_if_app_info_req *app_info_req) { - struct gprs_rlcmac_bts *bts = the_pcu->bts; struct llist_head *tmp; LOGP(DL1IF, LOGL_DEBUG, "Application Information Request received: type=0x%08x len=%i\n", @@ -849,34 +841,44 @@ int pcu_rx(uint8_t msg_type, struct gsm_pcu_if *pcu_prim) { int rc = 0; + struct gprs_rlcmac_bts *bts = gprs_pcu_get_bts_by_nr(the_pcu, pcu_prim->bts_nr); + bts = gprs_pcu_get_bts_by_nr(the_pcu, pcu_prim->bts_nr); + if (!bts) { + LOGP(DL1IF, LOGL_NOTICE, "Received message for new BTS%d\n", pcu_prim->bts_nr); + bts = bts_alloc(the_pcu, pcu_prim->bts_nr); + if (!bts) { + LOGP(DL1IF, LOGL_ERROR, "Failed to create object for BTS%d!\n", pcu_prim->bts_nr); + return -EAGAIN; + } + } switch (msg_type) { case PCU_IF_MSG_DATA_IND: - rc = pcu_rx_data_ind(&pcu_prim->u.data_ind); + rc = pcu_rx_data_ind(bts, &pcu_prim->u.data_ind); break; case PCU_IF_MSG_DATA_CNF: - rc = pcu_rx_data_cnf(&pcu_prim->u.data_cnf); + rc = pcu_rx_data_cnf(bts, &pcu_prim->u.data_cnf); break; case PCU_IF_MSG_RTS_REQ: - rc = pcu_rx_rts_req(&pcu_prim->u.rts_req); + rc = pcu_rx_rts_req(bts, &pcu_prim->u.rts_req); break; case PCU_IF_MSG_RACH_IND: - rc = pcu_rx_rach_ind(&pcu_prim->u.rach_ind); + rc = pcu_rx_rach_ind(bts, &pcu_prim->u.rach_ind); break; case PCU_IF_MSG_INFO_IND: - rc = pcu_rx_info_ind(&pcu_prim->u.info_ind); + rc = pcu_rx_info_ind(bts, &pcu_prim->u.info_ind); break; case PCU_IF_MSG_TIME_IND: - rc = pcu_rx_time_ind(&pcu_prim->u.time_ind); + rc = pcu_rx_time_ind(bts, &pcu_prim->u.time_ind); break; case PCU_IF_MSG_PAG_REQ: - rc = pcu_rx_pag_req(&pcu_prim->u.pag_req); + rc = pcu_rx_pag_req(bts, &pcu_prim->u.pag_req); break; case PCU_IF_MSG_SUSP_REQ: - rc = pcu_rx_susp_req(&pcu_prim->u.susp_req); + rc = pcu_rx_susp_req(bts, &pcu_prim->u.susp_req); break; case PCU_IF_MSG_APP_INFO_REQ: - rc = pcu_rx_app_info_req(&pcu_prim->u.app_info_req); + rc = pcu_rx_app_info_req(bts, &pcu_prim->u.app_info_req); break; default: LOGP(DL1IF, LOGL_ERROR, "Received unknown PCU msg type %d\n", diff --git a/src/pcu_l1_if.h b/src/pcu_l1_if.h index 8ef262c..e4a46a9 100644 --- a/src/pcu_l1_if.h +++ b/src/pcu_l1_if.h @@ -141,20 +141,23 @@ } #ifdef __cplusplus -void pcu_l1if_tx_pdtch(msgb *msg, uint8_t trx, uint8_t ts, uint16_t arfcn, - uint32_t fn, uint8_t block_nr); +struct gprs_rlcmac_bts; +void pcu_l1if_tx_pdtch(msgb *msg, struct gprs_rlcmac_bts *bts, uint8_t trx, uint8_t ts, + uint16_t arfcn, uint32_t fn, uint8_t block_nr); void pcu_l1if_tx_ptcch(struct gprs_rlcmac_bts *bts, uint8_t trx, uint8_t ts, uint16_t arfcn, uint32_t fn, uint8_t block_nr, uint8_t *data, size_t data_len); -void pcu_l1if_tx_agch(bitvec * block, int len); +void pcu_l1if_tx_agch(struct gprs_rlcmac_bts *bts, bitvec * block, int len); -void pcu_l1if_tx_pch(bitvec * block, int plen, uint16_t pgroup); +void pcu_l1if_tx_pch(struct gprs_rlcmac_bts *bts, bitvec * block, int plen, uint16_t pgroup); #endif #ifdef __cplusplus extern "C" { #endif +struct gprs_rlcmac_bts; + int pcu_rx(uint8_t msg_type, struct gsm_pcu_if *pcu_prim); int pcu_l1if_open(void); void pcu_l1if_close(void); @@ -162,17 +165,17 @@ int pcu_tx_txt_ind(enum gsm_pcu_if_text_type t, const char *fmt, ...); -int pcu_rx_rts_req_pdtch(uint8_t trx, uint8_t ts, +int pcu_rx_rts_req_pdtch(struct gprs_rlcmac_bts *bts, uint8_t trx, uint8_t ts, uint32_t fn, uint8_t block_nr); -int pcu_rx_rts_req_ptcch(uint8_t trx, uint8_t ts, +int pcu_rx_rts_req_ptcch(struct gprs_rlcmac_bts *bts, uint8_t trx, uint8_t ts, uint32_t fn, uint8_t block_nr); -int pcu_rx_rach_ind_ptcch(uint8_t trx_nr, uint8_t ts_nr, uint32_t fn, int16_t qta); -int pcu_rx_data_ind_pdtch(uint8_t trx, uint8_t ts, uint8_t *data, +int pcu_rx_rach_ind_ptcch(struct gprs_rlcmac_bts *bts, uint8_t trx_nr, uint8_t ts_nr, uint32_t fn, int16_t qta); +int pcu_rx_data_ind_pdtch(struct gprs_rlcmac_bts *bts, uint8_t trx, uint8_t ts, uint8_t *data, uint8_t len, uint32_t fn, struct pcu_l1_meas *meas); -void pcu_rx_block_time(uint16_t arfcn, uint32_t fn, uint8_t ts_no); -void pcu_rx_ra_time(uint16_t arfcn, uint32_t fn, uint8_t ts_no); +void pcu_rx_block_time(struct gprs_rlcmac_bts *bts, uint16_t arfcn, uint32_t fn, uint8_t ts_no); +void pcu_rx_ra_time(struct gprs_rlcmac_bts *bts, uint16_t arfcn, uint32_t fn, uint8_t ts_no); uint16_t imsi2paging_group(const char* imsi); #ifdef __cplusplus } diff --git a/src/pcu_main.cpp b/src/pcu_main.cpp index 23d16a3..ea7e341 100644 --- a/src/pcu_main.cpp +++ b/src/pcu_main.cpp @@ -237,8 +237,6 @@ pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu = pcu; /* globally avaialable object */ - pcu->bts = bts_alloc(pcu); - pcu->pcu_sock_path = talloc_strdup(tall_pcu_ctx, PCU_SOCK_DEFAULT); msgb_talloc_ctx_init(tall_pcu_ctx, 0); diff --git a/src/pcu_vty.c b/src/pcu_vty.c index 9beb4c1..288f241 100644 --- a/src/pcu_vty.c +++ b/src/pcu_vty.c @@ -4,6 +4,8 @@ #include #include #include +#include + #include #include #include @@ -753,7 +755,11 @@ "show bts statistics", SHOW_STR "BTS related functionality\nStatistics\n") { - vty_out_rate_ctr_group(vty, "", bts_rate_counters(the_pcu->bts)); + struct gprs_rlcmac_bts *bts; + llist_for_each_entry(bts, &the_pcu->bts_list, list) { + vty_out(vty, "BTS%" PRIu8 ":%s", bts->nr, VTY_NEWLINE); + vty_out_rate_ctr_group(vty, " ", bts_rate_counters(bts)); + } return CMD_SUCCESS; } @@ -762,7 +768,11 @@ "show bts pdch", SHOW_STR "BTS related functionality\nPDCH timeslots\n") { - return pcu_vty_show_bts_pdch(vty, the_pcu->bts); + struct gprs_rlcmac_bts *bts; + llist_for_each_entry(bts, &the_pcu->bts_list, list) { + pcu_vty_show_bts_pdch(vty, bts); + } + return CMD_SUCCESS; } #define IDLE_TIME_STR "keep an idle DL TBF alive for the time given\n" @@ -1013,9 +1023,13 @@ SHOW_STR "Show BTS controlled timers\n" OSMO_TDEF_VTY_DOC_T) { - struct gprs_rlcmac_bts *bts = the_pcu->bts; - const char *T_arg = argc > 0 ? argv[0] : NULL; - return osmo_tdef_vty_show_cmd(vty, bts->T_defs_bts, T_arg, NULL); + struct gprs_rlcmac_bts *bts; + llist_for_each_entry(bts, &the_pcu->bts_list, list) { + const char *T_arg = argc > 0 ? argv[0] : NULL; + vty_out(vty, "BTS%" PRIu8 ":%s", bts->nr, VTY_NEWLINE); + osmo_tdef_vty_show_cmd(vty, bts->T_defs_bts, T_arg, " "); + } + return CMD_SUCCESS; } DEFUN(show_timer, show_timer_cmd, @@ -1047,15 +1061,18 @@ "TBFs allocated via CCCH\n" "TBFs allocated via PACCH\n") { - struct gprs_rlcmac_bts *bts = the_pcu->bts; - uint32_t flags = UINT32_MAX; + struct gprs_rlcmac_bts *bts; + llist_for_each_entry(bts, &the_pcu->bts_list, list) { + uint32_t flags = UINT32_MAX; - if (argv[0][0] == 'c') - flags = (1 << GPRS_RLCMAC_FLAG_CCCH); - else if (argv[0][0] == 'p') - flags = (1 << GPRS_RLCMAC_FLAG_PACCH); + if (argv[0][0] == 'c') + flags = (1 << GPRS_RLCMAC_FLAG_CCCH); + else if (argv[0][0] == 'p') + flags = (1 << GPRS_RLCMAC_FLAG_PACCH); - return pcu_vty_show_tbf_all(vty, bts, flags); + pcu_vty_show_tbf_all(vty, bts, flags); + } + return CMD_SUCCESS; } DEFUN(show_ms_all, @@ -1063,8 +1080,11 @@ "show ms all", SHOW_STR "information about MSs\n" "All TBFs\n") { - struct gprs_rlcmac_bts *bts = the_pcu->bts; - return pcu_vty_show_ms_all(vty, bts); + struct gprs_rlcmac_bts *bts; + llist_for_each_entry(bts, &the_pcu->bts_list, list) { + pcu_vty_show_ms_all(vty, bts); + } + return CMD_SUCCESS; } DEFUN(show_ms_tlli, @@ -1072,14 +1092,17 @@ "show ms tlli TLLI", SHOW_STR "information about MSs\n" "Select MS by TLLI\n" "TLLI as hex\n") { - struct gprs_rlcmac_bts *bts = the_pcu->bts; - char *endp = NULL; - unsigned long long tlli = strtoll(argv[0], &endp, 16); - if ((endp != NULL && *endp != 0) || tlli > 0xffffffffULL) { - vty_out(vty, "Invalid TLLI.%s", VTY_NEWLINE); - return CMD_WARNING; + struct gprs_rlcmac_bts *bts; + llist_for_each_entry(bts, &the_pcu->bts_list, list) { + char *endp = NULL; + unsigned long long tlli = strtoll(argv[0], &endp, 16); + if ((endp != NULL && *endp != 0) || tlli > 0xffffffffULL) { + vty_out(vty, "Invalid TLLI.%s", VTY_NEWLINE); + return CMD_WARNING; + } + pcu_vty_show_ms_by_tlli(vty, bts, (uint32_t)tlli); } - return pcu_vty_show_ms_by_tlli(vty, bts, (uint32_t)tlli); + return CMD_SUCCESS; } DEFUN(show_ms_imsi, @@ -1087,8 +1110,11 @@ "show ms imsi IMSI", SHOW_STR "information about MSs\n" "Select MS by IMSI\n" "IMSI\n") { - struct gprs_rlcmac_bts *bts = the_pcu->bts; - return pcu_vty_show_ms_by_imsi(vty, bts, argv[0]); + struct gprs_rlcmac_bts *bts; + llist_for_each_entry(bts, &the_pcu->bts_list, list) { + pcu_vty_show_ms_by_imsi(vty, bts, argv[0]); + } + return CMD_SUCCESS; } static const char pcu_copyright[] = diff --git a/src/pcu_vty_functions.cpp b/src/pcu_vty_functions.cpp index 231bce7..48780c0 100644 --- a/src/pcu_vty_functions.cpp +++ b/src/pcu_vty_functions.cpp @@ -246,7 +246,7 @@ { unsigned int trx_nr, ts_nr; - vty_out(vty, "BTS (%s)%s", bts->active ? "active" : "disabled", VTY_NEWLINE); + vty_out(vty, "BTS%" PRIu8 " (%s)%s", bts->nr, bts->active ? "active" : "disabled", VTY_NEWLINE); for (trx_nr = 0; trx_nr < ARRAY_SIZE(bts->trx); trx_nr++) { const struct gprs_rlcmac_trx *trx = &bts->trx[trx_nr]; diff --git a/tests/alloc/AllocTest.cpp b/tests/alloc/AllocTest.cpp index 5312f0d..9728aa4 100644 --- a/tests/alloc/AllocTest.cpp +++ b/tests/alloc/AllocTest.cpp @@ -114,7 +114,7 @@ int tfi; int i; uint8_t used_trx, tmp_trx; - struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu); + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); GprsMs *ms; struct gprs_rlcmac_tbf *tbfs[32*8+1] = { 0, }; @@ -206,7 +206,7 @@ static inline bool test_alloc_b_ul_dl(bool ts0, bool ts1, bool ts2, bool ts3, bool ts4, bool ts5, bool ts6, bool ts7, uint8_t ms_class, bool verbose) { - struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu); + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); GprsMs *ms; gprs_rlcmac_ul_tbf *ul_tbf; gprs_rlcmac_dl_tbf *dl_tbf; @@ -250,7 +250,7 @@ static inline bool test_alloc_b_dl_ul(bool ts0, bool ts1, bool ts2, bool ts3, bool ts4, bool ts5, bool ts6, bool ts7, uint8_t ms_class, bool verbose) { - struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu); + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); GprsMs *ms; gprs_rlcmac_ul_tbf *ul_tbf; gprs_rlcmac_dl_tbf *dl_tbf; @@ -301,7 +301,7 @@ static inline bool test_alloc_b_jolly(uint8_t ms_class) { - struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu); + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); GprsMs *ms; int tfi; uint8_t trx_no; @@ -646,7 +646,7 @@ unsigned max_class, enum test_mode mode, unsigned expect_num, const char *text) { - struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu); + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); struct gprs_rlcmac_trx *trx; unsigned counter; @@ -679,7 +679,7 @@ static void test_many_connections(algo_t algo, unsigned expect_num, const char *text) { - struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu); + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); struct gprs_rlcmac_trx *trx; int counter1, counter2 = -1; unsigned i; @@ -756,7 +756,7 @@ static void test_2_consecutive_dl_tbfs() { - struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu); + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); GprsMs *ms; struct gprs_rlcmac_trx *trx; uint8_t ms_class = 11; diff --git a/tests/alloc/MslotTest.cpp b/tests/alloc/MslotTest.cpp index b32a828..96b82a5 100644 --- a/tests/alloc/MslotTest.cpp +++ b/tests/alloc/MslotTest.cpp @@ -62,7 +62,7 @@ static inline void test_multislot_total_ascending(bool seq) { - struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu); + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); struct gprs_rlcmac_trx *trx; int i; @@ -81,7 +81,7 @@ static inline void test_multislot_total_descending(bool seq) { - struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu); + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); struct gprs_rlcmac_trx *trx; int i; @@ -100,7 +100,7 @@ static inline void test_multislot_middle(bool seq) { - struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu); + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); struct gprs_rlcmac_trx *trx; printf("%s(): %s\n", __func__, seq ? "sequential" : "accumulative"); @@ -117,7 +117,7 @@ static inline void test_multislot_ends(bool seq) { - struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu); + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); struct gprs_rlcmac_trx *trx; printf("%s(): %s\n", __func__, seq ? "sequential" : "accumulative"); diff --git a/tests/app_info/AppInfoTest.cpp b/tests/app_info/AppInfoTest.cpp index 75ea8cd..f145fa5 100644 --- a/tests/app_info/AppInfoTest.cpp +++ b/tests/app_info/AppInfoTest.cpp @@ -78,12 +78,11 @@ void prepare_bts_with_two_dl_tbf_subscr() { - struct gprs_rlcmac_bts *bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts = gprs_pcu_get_bts_by_nr(the_pcu, 0); struct gprs_rlcmac_trx *trx; fprintf(stderr, "--- %s ---\n", __func__); - bts = bts; the_pcu->alloc_algorithm = alloc_algorithm_b; trx = bts->trx; @@ -122,7 +121,7 @@ void test_sched_app_info_missing_app_info_in_bts(const struct gsm_pcu_if_app_info_req *req) { - struct gprs_rlcmac_bts *bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts = gprs_pcu_get_bts_by_nr(the_pcu, 0); struct gsm_pcu_if pcu_prim = {PCU_IF_MSG_APP_INFO_REQ, }; fprintf(stderr, "--- %s ---\n", __func__); @@ -148,13 +147,18 @@ fprintf(stderr, "\n"); } -void cleanup() +extern "C" void cleanup() { fprintf(stderr, "--- %s ---\n", __func__); + struct gprs_rlcmac_bts *bts; + tbf_free(tbf1); tbf_free(tbf2); - TALLOC_FREE(the_pcu->bts); + + bts = gprs_pcu_get_bts_by_nr(the_pcu, 0); + talloc_free(bts); + /* FIXME: talloc report disabled, because bts_alloc_ms(bts, ) in prepare_bts_with_two_dl_tbf_subscr() causes leak */ /* talloc_report_full(tall_pcu_ctx, stderr); */ talloc_free(the_pcu); @@ -174,7 +178,7 @@ log_parse_category_mask(osmo_stderr_target, "DL1IF,1:DRLCMAC,3:DRLCMACSCHED,1"); the_pcu = gprs_pcu_alloc(tall_pcu_ctx); - the_pcu->bts = bts_alloc(the_pcu); + bts_alloc(the_pcu, 0); test_enc_zero_len(); test_enc(&req); diff --git a/tests/edge/EdgeTest.cpp b/tests/edge/EdgeTest.cpp index 1bdc153a..7763087 100644 --- a/tests/edge/EdgeTest.cpp +++ b/tests/edge/EdgeTest.cpp @@ -1253,7 +1253,7 @@ static void uplink_header_type2_test(void) { - struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu); + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); int ts_no = 7; uint32_t fn = 2654218; uint16_t qta = 31; @@ -1371,7 +1371,7 @@ void uplink_header_type1_test(void) { - struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu); + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); int ts_no = 7; uint32_t fn = 2654218; uint16_t qta = 31; diff --git a/tests/emu/pcu_emu.cpp b/tests/emu/pcu_emu.cpp index d7b11ca..ef573a7 100644 --- a/tests/emu/pcu_emu.cpp +++ b/tests/emu/pcu_emu.cpp @@ -63,9 +63,8 @@ test_pdp_activation_data), }; -static void init_main_bts() +static void init_main_bts(struct gprs_rlcmac_bts *bts) { - struct gprs_rlcmac_bts *bts = the_pcu->bts; bts->initial_cs_dl = bts->initial_cs_ul = 1; bts->cs_mask = 1 << 0; /* CS-1 always enabled by default */ bts->n3101 = 10; @@ -119,7 +118,7 @@ { struct gprs_pcu *pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu = pcu; /* globally avaialable object */ - pcu->bts = bts_alloc(pcu); + struct gprs_rlcmac_bts *bts = bts_alloc(pcu, 0); tall_pcu_ctx = talloc_named_const(NULL, 1, "moiji-mobile Emu-PCU context"); if (!tall_pcu_ctx) @@ -140,9 +139,9 @@ current_test = 0; init_pcu(pcu); - init_main_bts(); + init_main_bts(bts); bssgp_set_bssgp_callback(gprs_gp_send_cb, pcu->nsi); - create_and_connect_bssgp(pcu->bts, INADDR_LOOPBACK, 23000); + create_and_connect_bssgp(bts, INADDR_LOOPBACK, 23000); for (;;) osmo_select_main(0); diff --git a/tests/fn/FnTest.cpp b/tests/fn/FnTest.cpp index dd30b34..4281fc3 100644 --- a/tests/fn/FnTest.cpp +++ b/tests/fn/FnTest.cpp @@ -53,7 +53,7 @@ static void run_test() { - struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu); + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); uint32_t fn; printf("RFN_MODULUS=%i\n",RFN_MODULUS); diff --git a/tests/ms/MsTest.cpp b/tests/ms/MsTest.cpp index 58579f8..f459e99 100644 --- a/tests/ms/MsTest.cpp +++ b/tests/ms/MsTest.cpp @@ -51,7 +51,7 @@ uint32_t tlli = 0xffeeddbb; gprs_rlcmac_dl_tbf *dl_tbf; gprs_rlcmac_ul_tbf *ul_tbf; - struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu); + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); GprsMs *ms; printf("=== start %s ===\n", __func__); @@ -114,7 +114,7 @@ uint32_t tlli = 0xffeeddbb; gprs_rlcmac_dl_tbf *dl_tbf; gprs_rlcmac_ul_tbf *ul_tbf; - struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu); + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); GprsMs *ms; last_cb = CB_UNKNOWN; @@ -188,7 +188,7 @@ uint32_t tlli = 0xffeeddbb; gprs_rlcmac_dl_tbf *dl_tbf[2]; gprs_rlcmac_ul_tbf *ul_tbf; - struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu); + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); GprsMs *ms; printf("=== start %s ===\n", __func__); @@ -262,7 +262,7 @@ uint32_t start_tlli = 0xaa000000; uint32_t new_ms_tlli = 0xff001111; uint32_t other_sgsn_tlli = 0xff00eeee; - struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu); + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); GprsMs *ms; printf("=== start %s ===\n", __func__); @@ -374,7 +374,7 @@ const char *imsi2 = "001001987654322"; gprs_rlcmac_ul_tbf *ul_tbf; - struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu); + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); GprsMs *ms, *ms_tmp; GprsMsStorage store(bts); @@ -446,7 +446,7 @@ uint32_t tlli = 0xffeeddbb; gprs_rlcmac_dl_tbf *dl_tbf; gprs_rlcmac_ul_tbf *ul_tbf; - struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu); + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); GprsMs *ms; last_cb = CB_UNKNOWN; @@ -499,7 +499,7 @@ static void test_ms_cs_selection() { - struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu); + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); uint32_t tlli = 0xffeeddbb; gprs_rlcmac_dl_tbf *dl_tbf; @@ -544,7 +544,7 @@ static void test_ms_mcs_mode() { - struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu); + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); uint32_t tlli = 0xdeadbeef; gprs_rlcmac_dl_tbf *dl_tbf; diff --git a/tests/tbf/TbfTest.cpp b/tests/tbf/TbfTest.cpp index a0d4d79..6102d48 100644 --- a/tests/tbf/TbfTest.cpp +++ b/tests/tbf/TbfTest.cpp @@ -95,8 +95,7 @@ static void test_tbf_tlli_update() { the_pcu = gprs_pcu_alloc(tall_pcu_ctx); - the_pcu->bts = bts_alloc(the_pcu); - struct gprs_rlcmac_bts *bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); GprsMs *ms, *ms_new; fprintf(stderr, "=== start %s ===\n", __func__); @@ -254,8 +253,7 @@ static void test_tbf_final_ack(enum test_tbf_final_ack_mode test_mode) { the_pcu = gprs_pcu_alloc(tall_pcu_ctx); - the_pcu->bts = bts_alloc(the_pcu); - struct gprs_rlcmac_bts *bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); uint8_t ts_no = 4; unsigned i; uint8_t ms_class = 45; @@ -340,8 +338,7 @@ static void test_tbf_delayed_release() { the_pcu = gprs_pcu_alloc(tall_pcu_ctx); - the_pcu->bts = bts_alloc(the_pcu); - struct gprs_rlcmac_bts *bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); uint8_t ts_no = 4; unsigned i; uint8_t ms_class = 45; @@ -411,8 +408,7 @@ static void test_tbf_imsi() { the_pcu = gprs_pcu_alloc(tall_pcu_ctx); - the_pcu->bts = bts_alloc(the_pcu); - struct gprs_rlcmac_bts *bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); uint8_t ts_no = 4; uint8_t ms_class = 45; uint8_t trx_no; @@ -473,8 +469,7 @@ static void test_tbf_exhaustion() { the_pcu = gprs_pcu_alloc(tall_pcu_ctx); - the_pcu->bts = bts_alloc(the_pcu); - struct gprs_rlcmac_bts *bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); unsigned i; uint8_t ts_no = 4; uint8_t ms_class = 45; @@ -518,8 +513,7 @@ static void test_tbf_dl_llc_loss() { the_pcu = gprs_pcu_alloc(tall_pcu_ctx); - the_pcu->bts = bts_alloc(the_pcu); - struct gprs_rlcmac_bts *bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); uint8_t ts_no = 4; uint8_t ms_class = 45; int rc = 0; @@ -1709,8 +1703,7 @@ static void test_tbf_single_phase() { the_pcu = gprs_pcu_alloc(tall_pcu_ctx); - the_pcu->bts = bts_alloc(the_pcu); - struct gprs_rlcmac_bts *bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); int ts_no = 7; uint32_t fn = DUMMY_FN; /* 17,25,9 */ uint32_t tlli = 0xf1223344; @@ -1734,8 +1727,7 @@ static void test_tbf_egprs_two_phase_puan(void) { the_pcu = gprs_pcu_alloc(tall_pcu_ctx); - the_pcu->bts = bts_alloc(the_pcu); - struct gprs_rlcmac_bts *bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); int ts_no = 7; uint32_t fn = 2654218; uint16_t qta = 31; @@ -1790,8 +1782,7 @@ static void test_immediate_assign_rej_single_block() { the_pcu = gprs_pcu_alloc(tall_pcu_ctx); - the_pcu->bts = bts_alloc(the_pcu); - struct gprs_rlcmac_bts *bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); uint32_t fn = 2654218; uint16_t qta = 31; int ts_no = 7; @@ -1824,8 +1815,7 @@ static void test_immediate_assign_rej_multi_block() { the_pcu = gprs_pcu_alloc(tall_pcu_ctx); - the_pcu->bts = bts_alloc(the_pcu); - struct gprs_rlcmac_bts *bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); uint32_t fn = 2654218; uint16_t qta = 31; int ts_no = 7; @@ -1866,8 +1856,7 @@ static void test_tbf_two_phase() { the_pcu = gprs_pcu_alloc(tall_pcu_ctx); - the_pcu->bts = bts_alloc(the_pcu); - struct gprs_rlcmac_bts *bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); int ts_no = 7; uint32_t fn = 2654218; uint16_t qta = 31; @@ -1899,8 +1888,7 @@ static void test_tbf_ra_update_rach() { the_pcu = gprs_pcu_alloc(tall_pcu_ctx); - the_pcu->bts = bts_alloc(the_pcu); - struct gprs_rlcmac_bts *bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); int ts_no = 7; uint32_t fn = 2654218; uint16_t qta = 31; @@ -1966,8 +1954,7 @@ static void test_tbf_dl_flow_and_rach_two_phase() { the_pcu = gprs_pcu_alloc(tall_pcu_ctx); - the_pcu->bts = bts_alloc(the_pcu); - struct gprs_rlcmac_bts *bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); int ts_no = 7; uint32_t fn = 2654218; uint16_t qta = 31; @@ -2028,8 +2015,7 @@ static void test_tbf_dl_flow_and_rach_single_phase() { the_pcu = gprs_pcu_alloc(tall_pcu_ctx); - the_pcu->bts = bts_alloc(the_pcu); - struct gprs_rlcmac_bts *bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); int ts_no = 7; uint32_t fn = 2654218; uint16_t qta = 31; @@ -2089,8 +2075,7 @@ static void test_tbf_dl_reuse() { the_pcu = gprs_pcu_alloc(tall_pcu_ctx); - the_pcu->bts = bts_alloc(the_pcu); - struct gprs_rlcmac_bts *bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); int ts_no = 7; uint32_t fn = 2654218; uint16_t qta = 31; @@ -2190,8 +2175,7 @@ static void test_tbf_gprs_egprs() { the_pcu = gprs_pcu_alloc(tall_pcu_ctx); - the_pcu->bts = bts_alloc(the_pcu); - struct gprs_rlcmac_bts *bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); uint8_t ts_no = 4; uint8_t ms_class = 45; int rc = 0; @@ -2259,8 +2243,7 @@ static void test_tbf_ws() { the_pcu = gprs_pcu_alloc(tall_pcu_ctx); - the_pcu->bts = bts_alloc(the_pcu); - struct gprs_rlcmac_bts *bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); GprsMs *ms; uint8_t ts_no = 4; uint8_t ms_class = 12; @@ -2306,8 +2289,7 @@ static void test_tbf_update_ws(void) { the_pcu = gprs_pcu_alloc(tall_pcu_ctx); - the_pcu->bts = bts_alloc(the_pcu); - struct gprs_rlcmac_bts *bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); GprsMs *ms; uint8_t ts_no = 4; uint8_t ms_class = 11; @@ -2352,8 +2334,7 @@ static void test_tbf_puan_urbb_len(void) { the_pcu = gprs_pcu_alloc(tall_pcu_ctx); - the_pcu->bts = bts_alloc(the_pcu); - struct gprs_rlcmac_bts *bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); int ts_no = 7; uint32_t fn = 2654218; uint16_t qta = 31; @@ -2494,8 +2475,7 @@ static void test_tbf_li_decoding(void) { the_pcu = gprs_pcu_alloc(tall_pcu_ctx); - the_pcu->bts = bts_alloc(the_pcu); - struct gprs_rlcmac_bts *bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); int ts_no = 7; uint32_t fn = 2654218; uint16_t qta = 31; @@ -2531,8 +2511,7 @@ static void test_tbf_epdan_out_of_rx_window(void) { the_pcu = gprs_pcu_alloc(tall_pcu_ctx); - the_pcu->bts = bts_alloc(the_pcu); - struct gprs_rlcmac_bts *bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); uint8_t ms_class = 11; uint8_t egprs_ms_class = 11; uint8_t trx_no; @@ -2623,8 +2602,7 @@ static void test_tbf_egprs_two_phase_spb(void) { the_pcu = gprs_pcu_alloc(tall_pcu_ctx); - the_pcu->bts = bts_alloc(the_pcu); - struct gprs_rlcmac_bts *bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); int ts_no = 7; uint32_t fn = 2654218; uint16_t qta = 31; @@ -2655,8 +2633,7 @@ static void test_tbf_egprs_two_phase() { the_pcu = gprs_pcu_alloc(tall_pcu_ctx); - the_pcu->bts = bts_alloc(the_pcu); - struct gprs_rlcmac_bts *bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); int ts_no = 7; uint32_t fn = 2654218; uint16_t qta = 31; @@ -3079,8 +3056,7 @@ static void test_tbf_egprs_retx_dl(void) { the_pcu = gprs_pcu_alloc(tall_pcu_ctx); - the_pcu->bts = bts_alloc(the_pcu); - struct gprs_rlcmac_bts *bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); uint8_t ts_no = 4; fprintf(stderr, "=== start %s ===\n", __func__); @@ -3108,8 +3084,7 @@ static void test_tbf_egprs_spb_dl(void) { the_pcu = gprs_pcu_alloc(tall_pcu_ctx); - the_pcu->bts = bts_alloc(the_pcu); - struct gprs_rlcmac_bts *bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); uint8_t ts_no = 4; fprintf(stderr, "=== start %s ===\n", __func__); @@ -3139,8 +3114,7 @@ static void test_tbf_egprs_dl() { the_pcu = gprs_pcu_alloc(tall_pcu_ctx); - the_pcu->bts = bts_alloc(the_pcu); - struct gprs_rlcmac_bts *bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); uint8_t ts_no = 4; int i; @@ -3163,8 +3137,7 @@ static void test_packet_access_rej_prr_no_other_tbfs() { the_pcu = gprs_pcu_alloc(tall_pcu_ctx); - the_pcu->bts = bts_alloc(the_pcu); - struct gprs_rlcmac_bts *bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); uint32_t fn = 2654218; int ts_no = 7; uint8_t trx_no = 0; @@ -3199,8 +3172,7 @@ static void test_packet_access_rej_prr() { the_pcu = gprs_pcu_alloc(tall_pcu_ctx); - the_pcu->bts = bts_alloc(the_pcu); - struct gprs_rlcmac_bts *bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); uint32_t fn = 2654218; uint16_t qta = 31; int ts_no = 7; @@ -3270,8 +3242,7 @@ void test_packet_access_rej_epdan() { the_pcu = gprs_pcu_alloc(tall_pcu_ctx); - the_pcu->bts = bts_alloc(the_pcu); - struct gprs_rlcmac_bts *bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); uint32_t tlli = 0xffeeddcc; static uint8_t exp[] = { 0x40, 0x84, 0x7f, 0xf7, 0x6e, 0xe6, 0x41, 0x4b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, diff --git a/tests/types/TypesTest.cpp b/tests/types/TypesTest.cpp index 2da6a64..038d737 100644 --- a/tests/types/TypesTest.cpp +++ b/tests/types/TypesTest.cpp @@ -353,7 +353,7 @@ uint16_t lost = 0, recv = 0; char show_rbb[65]; uint8_t bits_data[8]; - struct gprs_rlcmac_bts *dummy_bts = bts_alloc(the_pcu); + struct gprs_rlcmac_bts *dummy_bts = bts_alloc(the_pcu, 0); gprs_rlc_dl_window dl_win; bitvec bits; int bsn_begin, bsn_end, num_blocks; @@ -671,7 +671,7 @@ fprintf(stderr, "############## test_egprs_ul_ack_nack\n"); - struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu); + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); the_pcu->alloc_algorithm = alloc_algorithm_a; bts->trx[0].pdch[4].enable(); @@ -762,7 +762,7 @@ void test_immediate_assign_dl() { - struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu); + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); the_pcu->alloc_algorithm = alloc_algorithm_a; bts->trx[0].pdch[2].enable(); bts->trx[0].pdch[3].enable(); @@ -787,7 +787,7 @@ void test_immediate_assign_ul0m() { - struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu); + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); the_pcu->alloc_algorithm = alloc_algorithm_a; bts->trx[0].pdch[4].enable(); bts->trx[0].pdch[5].enable(); @@ -829,7 +829,7 @@ void test_immediate_assign_ul1s() { - struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu); + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); the_pcu->alloc_algorithm = alloc_algorithm_a; bts->trx[0].pdch[1].enable(); bts->trx[0].pdch[2].enable(); -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22309 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I6b10913f46c19d438c4e250a436a7446694b725a Gerrit-Change-Number: 22309 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 18:53:23 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 18 Jan 2021 18:53:23 +0000 Subject: Change in osmo-pcu[master]: Allow multiple bts objects in PCU In-Reply-To: References: Message-ID: pespin has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/osmo-pcu/+/22309 ) Change subject: Allow multiple bts objects in PCU ...................................................................... Allow multiple bts objects in PCU This patch doesn't really tests whether osmo-pcu can work on a multi-bts environment, but it prepares the data structures to be able to do so at any later point in time. Change-Id: I6b10913f46c19d438c4e250a436a7446694b725a --- M src/bts.cpp M src/bts.h M src/gprs_bssgp_pcu.c M src/gprs_pcu.c M src/gprs_pcu.h M src/gprs_rlcmac.cpp M src/gprs_rlcmac.h M src/gprs_rlcmac_sched.cpp M src/osmo-bts-litecell15/lc15_l1_if.c M src/osmo-bts-oc2g/oc2g_l1_if.c M src/osmo-bts-sysmo/sysmo_l1_if.c M src/osmobts_sock.c M src/pcu_l1_if.cpp M src/pcu_l1_if.h M src/pcu_main.cpp M src/pcu_vty.c M src/pcu_vty_functions.cpp M tests/alloc/AllocTest.cpp M tests/alloc/MslotTest.cpp M tests/app_info/AppInfoTest.cpp M tests/edge/EdgeTest.cpp M tests/emu/pcu_emu.cpp M tests/fn/FnTest.cpp M tests/ms/MsTest.cpp M tests/tbf/TbfTest.cpp M tests/types/TypesTest.cpp 26 files changed, 343 insertions(+), 260 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/09/22309/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22309 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I6b10913f46c19d438c4e250a436a7446694b725a Gerrit-Change-Number: 22309 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-CC: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 19:08:33 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 18 Jan 2021 19:08:33 +0000 Subject: Change in osmo-pcu[master]: Allow multiple bts objects in PCU In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-pcu/+/22309 to look at the new patch set (#3). Change subject: Allow multiple bts objects in PCU ...................................................................... Allow multiple bts objects in PCU This patch doesn't really tests whether osmo-pcu can work on a multi-bts environment, but it prepares the data structures to be able to do so at any later point in time. Change-Id: I6b10913f46c19d438c4e250a436a7446694b725a --- M src/bts.cpp M src/bts.h M src/gprs_bssgp_pcu.c M src/gprs_pcu.c M src/gprs_pcu.h M src/gprs_rlcmac.cpp M src/gprs_rlcmac.h M src/gprs_rlcmac_sched.cpp M src/osmo-bts-litecell15/lc15_l1_if.c M src/osmo-bts-oc2g/oc2g_l1_if.c M src/osmo-bts-sysmo/sysmo_l1_if.c M src/osmobts_sock.c M src/pcu_l1_if.cpp M src/pcu_l1_if.h M src/pcu_main.cpp M src/pcu_vty.c M src/pcu_vty_functions.cpp M tests/alloc/AllocTest.cpp M tests/alloc/MslotTest.cpp M tests/app_info/AppInfoTest.cpp M tests/edge/EdgeTest.cpp M tests/emu/pcu_emu.cpp M tests/fn/FnTest.cpp M tests/ms/MsTest.cpp M tests/tbf/TbfTest.cpp M tests/types/TypesTest.cpp 26 files changed, 354 insertions(+), 264 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/09/22309/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22309 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I6b10913f46c19d438c4e250a436a7446694b725a Gerrit-Change-Number: 22309 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 20:16:08 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 18 Jan 2021 20:16:08 +0000 Subject: Change in libosmocore[master]: bssgp_rim: add encoder/decoder for NACC related RIM containers In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/21862 to look at the new patch set (#13). Change subject: bssgp_rim: add encoder/decoder for NACC related RIM containers ...................................................................... bssgp_rim: add encoder/decoder for NACC related RIM containers BSSGP RIM uses a number of nested containers to signal RIM application specific payload information in a generic way. Lets add the container structurs required for NACC. Depends: libosmocore If48f412c32e8e5a3e604a78d12b74787a4786374 Change-Id: Ibbc7fd67658e3040c12abb5706fe9d1f31894352 Related: SYS#5103 --- M include/Makefile.am A include/osmocom/gprs/gprs_bssgp_rim.h M src/gb/Makefile.am A src/gb/gprs_bssgp_rim.c M src/gb/libosmogb.map M tests/Makefile.am A tests/gb/gprs_bssgp_rim_test.c A tests/gb/gprs_bssgp_rim_test.ok M tests/testsuite.at 9 files changed, 1,859 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/62/21862/13 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21862 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ibbc7fd67658e3040c12abb5706fe9d1f31894352 Gerrit-Change-Number: 21862 Gerrit-PatchSet: 13 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 20:16:58 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 18 Jan 2021 20:16:58 +0000 Subject: Change in libosmocore[master]: bssgp_rim: add encoder/decoder for NACC related RIM containers In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21862 ) Change subject: bssgp_rim: add encoder/decoder for NACC related RIM containers ...................................................................... Patch Set 13: (2 comments) > Patch Set 12: Code-Review-1 > > my last comments were not still addressed. Looks like I overlooked these. https://gerrit.osmocom.org/c/libosmocore/+/21862/10/src/gb/gprs_bssgp_rim.c File src/gb/gprs_bssgp_rim.c: https://gerrit.osmocom.org/c/libosmocore/+/21862/10/src/gb/gprs_bssgp_rim.c at 29 PS10, Line 29: #include > why do you include cbsp here? The deocde_cell_id_u func is declared in osmocom/gsm/gsm0808_utils. [?] Done https://gerrit.osmocom.org/c/libosmocore/+/21862/10/src/gb/gprs_bssgp_rim.c at 55 PS10, Line 55: rc = gsm0808_decode_cell_id_u((union gsm0808_cell_id_u*)&cont->reprt_cell, > You cannot do this cast, the gprs_ra_id struct you are using is not compatible and not part of cell_ [?] I am using struct osmo_cell_global_id_ps for cont->reprt_cell and this is part of union gsm0808_cell_id_u. I was using gprs_ra_id before, but I migrated to osmo_cell_global_id_ps, so it should be correct, or not? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21862 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ibbc7fd67658e3040c12abb5706fe9d1f31894352 Gerrit-Change-Number: 21862 Gerrit-PatchSet: 13 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 20:16:58 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 20:32:20 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 18 Jan 2021 20:32:20 +0000 Subject: Change in osmo-sgsn[master]: gb_proxy: Don't use orphan log subsystem DPCU In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22279 ) Change subject: gb_proxy: Don't use orphan log subsystem DPCU ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22279 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I8be54ee49e10d4004128352613923c4700063aa3 Gerrit-Change-Number: 22279 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 20:32:20 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 20:32:26 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 18 Jan 2021 20:32:26 +0000 Subject: Change in osmo-sgsn[master]: gb_proxy: Don't use orphan log subsystem DPCU In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22279 ) Change subject: gb_proxy: Don't use orphan log subsystem DPCU ...................................................................... gb_proxy: Don't use orphan log subsystem DPCU DPCU is defined in debug.h, but never registered as log subsystem, so we shall not use it. Also remove other similar "orphan" log subsystems from debug.h Change-Id: I8be54ee49e10d4004128352613923c4700063aa3 --- M include/osmocom/sgsn/debug.h M src/gbproxy/gb_proxy.c 2 files changed, 5 insertions(+), 18 deletions(-) Approvals: laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/include/osmocom/sgsn/debug.h b/include/osmocom/sgsn/debug.h index da819d5..9a686cb 100644 --- a/include/osmocom/sgsn/debug.h +++ b/include/osmocom/sgsn/debug.h @@ -8,34 +8,21 @@ /* Debug Areas of the code */ enum { - DRLL, - DCC, DMM, - DRR, - DRSL, - DNM, - DMNCC, DPAG, DMEAS, - DSCCP, - DMSC, - DHO, - DDB, DREF, DGPRS, DNS, DLLC, DSNDCP, DSLHC, - DNAT, DCTRL, DFILTER, DGTPHUB, DRANAP, DSUA, DV42BIS, - DPCU, - DVLR, DIUCS, DSIGTRAN, DGTP, diff --git a/src/gbproxy/gb_proxy.c b/src/gbproxy/gb_proxy.c index 1ce2716..d88b89b 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -1309,7 +1309,7 @@ break; case NS_AFF_CAUSE_RECOVERY: - LOGP(DPCU, LOGL_NOTICE, "NS-NSE %d became available\n", nsp->nsei); + LOGP(DGPRS, LOGL_NOTICE, "NS-NSE %d became available\n", nsp->nsei); sgsn_nse = gbproxy_nse_by_nsei(cfg, nsp->nsei, NSE_F_SGSN); if (sgsn_nse) { uint8_t cause = BSSGP_CAUSE_OML_INTERV; @@ -1343,10 +1343,10 @@ } } #endif - LOGP(DPCU, LOGL_NOTICE, "NS-NSE %d became unavailable\n", nsp->nsei); + LOGP(DGPRS, LOGL_NOTICE, "NS-NSE %d became unavailable\n", nsp->nsei); break; default: - LOGP(DPCU, LOGL_NOTICE, "NS: Unknown NS-STATUS.ind cause=%s from NS\n", + LOGP(DGPRS, LOGL_NOTICE, "NS: Unknown NS-STATUS.ind cause=%s from NS\n", gprs_ns2_aff_cause_prim_str(nsp->u.status.cause)); break; } @@ -1366,7 +1366,7 @@ nsp = container_of(oph, struct osmo_gprs_ns2_prim, oph); if (oph->operation != PRIM_OP_INDICATION) { - LOGP(DPCU, LOGL_NOTICE, "NS: Unexpected primitive operation %s from NS\n", + LOGP(DGPRS, LOGL_NOTICE, "NS: Unexpected primitive operation %s from NS\n", get_value_string(osmo_prim_op_names, oph->operation)); return 0; } @@ -1388,7 +1388,7 @@ gprs_ns_prim_status_cb(cfg, nsp); break; default: - LOGP(DPCU, LOGL_NOTICE, "NS: Unknown prim %s %s from NS\n", + LOGP(DGPRS, LOGL_NOTICE, "NS: Unknown prim %s %s from NS\n", gprs_ns2_prim_str(oph->primitive), get_value_string(osmo_prim_op_names, oph->operation)); break; -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22279 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I8be54ee49e10d4004128352613923c4700063aa3 Gerrit-Change-Number: 22279 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 20:34:15 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 18 Jan 2021 20:34:15 +0000 Subject: Change in libosmocore[master]: bssgp_rim: add encoder/decoder for NACC related RIM containers In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21862 ) Change subject: bssgp_rim: add encoder/decoder for NACC related RIM containers ...................................................................... Patch Set 13: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21862 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ibbc7fd67658e3040c12abb5706fe9d1f31894352 Gerrit-Change-Number: 21862 Gerrit-PatchSet: 13 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 20:34:15 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 20:35:11 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 18 Jan 2021 20:35:11 +0000 Subject: Change in osmo-pcu[master]: Fix configuration mess of initial_cs/mcs between PCUIF and VTY In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22195 ) Change subject: Fix configuration mess of initial_cs/mcs between PCUIF and VTY ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22195 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I80a6ba401f9c0c85bdf6e0cc99a9d2008d31e1b0 Gerrit-Change-Number: 22195 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-CC: lynxis lazus Gerrit-Comment-Date: Mon, 18 Jan 2021 20:35:11 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 20:36:53 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 18 Jan 2021 20:36:53 +0000 Subject: Change in osmo-pcu[master]: Unify BTS into a C usable structure In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22196 ) Change subject: Unify BTS into a C usable structure ...................................................................... Patch Set 6: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22196 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I7d12c896c5ded659ca9d3bff4cf3a3fc857db9dd Gerrit-Change-Number: 22196 Gerrit-PatchSet: 6 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Mon, 18 Jan 2021 20:36:53 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 20:38:55 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 18 Jan 2021 20:38:55 +0000 Subject: Change in osmo-pcu[master]: Get rid of bts singletons In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22275 ) Change subject: Get rid of bts singletons ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22275 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I9cf762b0d3cb9e2cc3582727e07fa82c8e183ec5 Gerrit-Change-Number: 22275 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 18 Jan 2021 20:38:55 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 20:39:28 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 18 Jan 2021 20:39:28 +0000 Subject: Change in osmo-pcu[master]: Rename 'bts_data' leftovers to 'bts' In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22276 ) Change subject: Rename 'bts_data' leftovers to 'bts' ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22276 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I9852bf439292d1abc70711bea65698b21bde0ee8 Gerrit-Change-Number: 22276 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 18 Jan 2021 20:39:28 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 20:40:25 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 18 Jan 2021 20:40:25 +0000 Subject: Change in osmo-pcu[master]: bts: combine bts_{init, cleanup} into consturctor/destructor methods In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22277 ) Change subject: bts: combine bts_{init,cleanup} into consturctor/destructor methods ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22277 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I73a9457d5c92f62261561ef6afe392953576aec4 Gerrit-Change-Number: 22277 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 18 Jan 2021 20:40:25 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 20:40:55 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 18 Jan 2021 20:40:55 +0000 Subject: Change in osmo-pcu[master]: Get rid of unused gsm_timer.{cpp,h} In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22280 ) Change subject: Get rid of unused gsm_timer.{cpp,h} ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22280 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I6d50a8c15c1de5e2a308a24b313a7776f94ae54f Gerrit-Change-Number: 22280 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 18 Jan 2021 20:40:55 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 20:42:53 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 18 Jan 2021 20:42:53 +0000 Subject: Change in libosmocore[master]: bssgp_rim: move bssgp_parse_rim_ri and bssgp_create_rim_ri to gprs_bs... In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21863 ) Change subject: bssgp_rim: move bssgp_parse_rim_ri and bssgp_create_rim_ri to gprs_bssgp_rim ...................................................................... Patch Set 12: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/21863/9/src/gb/gprs_bssgp_rim.c File src/gb/gprs_bssgp_rim.c: https://gerrit.osmocom.org/c/libosmocore/+/21863/9/src/gb/gprs_bssgp_rim.c at 127 PS9, Line 127: return ri->eutran.global_enb_id_len + 6; > Ah so in EUTRAN TAC actually replaces both LAC+RAC, right? I thought it was TAC only replacing RAC. [?] Its more like EUTRAN TAC replaces LAC and eNB ID replaces RAC. I have looked it up in 3GPP TS 24.301 Figure 9.9.3.32.1 and 3GPP TS 24.008 Figure 10.5.130/3GPP TS 24.008. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21863 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Icd667f41d5735de56cd9fb257670337c679dd258 Gerrit-Change-Number: 21863 Gerrit-PatchSet: 12 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 20:42:53 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Comment-In-Reply-To: dexter Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 20:59:35 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 18 Jan 2021 20:59:35 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: add utilities to send and parse BSSGP rim PDUs In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22046 ) Change subject: gprs_bssgp: add utilities to send and parse BSSGP rim PDUs ...................................................................... Patch Set 5: (3 comments) https://gerrit.osmocom.org/c/libosmocore/+/22046/5/include/osmocom/gprs/gprs_bssgp.h File include/osmocom/gprs/gprs_bssgp.h: https://gerrit.osmocom.org/c/libosmocore/+/22046/5/include/osmocom/gprs/gprs_bssgp.h at 50 PS5, Line 50: const uint8_t *rim_cont; > I still don't see why you don't want to use a struct holding a union of container types here, so the [?] Done https://gerrit.osmocom.org/c/libosmocore/+/22046/2/include/osmocom/gprs/gprs_bssgp.h File include/osmocom/gprs/gprs_bssgp.h: https://gerrit.osmocom.org/c/libosmocore/+/22046/2/include/osmocom/gprs/gprs_bssgp.h at 45 PS2, Line 45: struct bssgp_ran_information_pdu { > You could add a flag to the decode function to avoid decoding it optionally for instance. Done https://gerrit.osmocom.org/c/libosmocore/+/22046/5/include/osmocom/gprs/gprs_bssgp_rim.h File include/osmocom/gprs/gprs_bssgp_rim.h: https://gerrit.osmocom.org/c/libosmocore/+/22046/5/include/osmocom/gprs/gprs_bssgp_rim.h at 121 PS5, Line 121: struct bssgp_ran_inf_req_rim_cont { > Why isn't there a generic container struct containing in a union this struct here and other containe [?] Done -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22046 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I18134fd9938040d2facb6beee3732628b167ce8c Gerrit-Change-Number: 22046 Gerrit-PatchSet: 5 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 18 Jan 2021 20:59:35 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Comment-In-Reply-To: dexter Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 18 20:59:46 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 18 Jan 2021 20:59:46 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: add utilities to send and parse BSSGP rim PDUs In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, pespin, fixeria, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22046 to look at the new patch set (#6). Change subject: gprs_bssgp: add utilities to send and parse BSSGP rim PDUs ...................................................................... gprs_bssgp: add utilities to send and parse BSSGP rim PDUs At the moment libosmogb offers no convinient way to send RIM PDUs. Also parsing an incoming RIM messages into destination, source routing info and RIM container is not available. Change-Id: I18134fd9938040d2facb6beee3732628b167ce8c Related: SYS#5103 --- M include/osmocom/gprs/gprs_bssgp.h M include/osmocom/gprs/gprs_bssgp_rim.h M src/gb/gprs_bssgp.c M src/gb/gprs_bssgp_rim.c M src/gb/gprs_bssgp_util.c M src/gb/libosmogb.map 6 files changed, 247 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/46/22046/6 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22046 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I18134fd9938040d2facb6beee3732628b167ce8c Gerrit-Change-Number: 22046 Gerrit-PatchSet: 6 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Tue Jan 19 01:42:29 2021 From: admin at opensuse.org (OBS Notification) Date: Tue, 19 Jan 2021 01:42:29 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.10/x86_64 In-Reply-To: References: Message-ID: <60063918359c8_22be2aeefb5405f04551fc@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/xUbuntu_20.10/x86_64 Package network:osmocom:nightly/simtrace2 failed to build in xUbuntu_20.10/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 208s] [COMPILING apps/dfu/main.c] [ 209s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 209s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 209s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 209s] Memory region Used Size Region Size %age Used [ 209s] rom: 16580 B 16 KB 101.20% [ 209s] ram: 11672 B 48 KB 23.75/usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 209s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 209s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 209s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 209s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 209s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 209s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 196 bytes [ 209s] collect2: error: ld returned 1 exit status [ 209s] % [ 209s] make[2]: *** [Makefile:234: flash] Error 1 [ 209s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 209s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 209s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 209s] dh_auto_build: error: make -j1 returned exit code 2 [ 209s] make: *** [debian/rules:16: build] Error 25 [ 209s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 209s] ### VM INTERACTION START ### [ 213s] [ 194.886976] sysrq: Power Off [ 213s] [ 194.895810] reboot: Power down [ 213s] ### VM INTERACTION END ### [ 213s] [ 213s] lamb53 failed "build simtrace2_0.7.0.69.aadd.dsc" at Tue Jan 19 01:42:24 UTC 2021. [ 213s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Jan 19 01:46:12 2021 From: admin at opensuse.org (OBS Notification) Date: Tue, 19 Jan 2021 01:46:12 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <600639eb6dbae_22be2aeefb5405f0455493@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/xUbuntu_20.04/x86_64 Package network:osmocom:nightly/simtrace2 failed to build in xUbuntu_20.04/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 170s] [COMPILING libboard/qmod/source/wwan_perst.c] [ 170s] [COMPILING libboard/qmod/source/card_pres.c] [ 170s] [COMPILING libboard/qmod/source/wwan_led.c] [ 170s] [COMPILING libboard/qmod/source/i2c.c] [ 171s] [COMPILING libboard/qmod/source/board_qmod.c] [ 171s] [COMPILING apps/dfu/main.c] [ 171s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 171s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 171s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 171s] Memory region Used Size Region Size %age Used [ 171s] rom: 16588 B 16 KB 101.25% [ 171s] ram: 11672 B 48 KB 23.75/usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 171s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 204 bytes [ 171s] collect2: error: ld returned 1 exit status [ 171s] % [ 171s] make[2]: *** [Makefile:234: flash] Error 1 [ 171s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 171s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 171s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 171s] dh_auto_build: error: make -j1 returned exit code 2 [ 171s] make: *** [debian/rules:16: build] Error 25 [ 171s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 171s] ### VM INTERACTION START ### [ 174s] [ 161.509678] sysrq: Power Off [ 174s] [ 161.513627] reboot: Power down [ 174s] ### VM INTERACTION END ### [ 174s] [ 174s] lamb27 failed "build simtrace2_0.7.0.69.aadd.dsc" at Tue Jan 19 01:46:05 UTC 2021. [ 174s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Tue Jan 19 06:46:18 2021 From: gerrit-no-reply at lists.osmocom.org (keith) Date: Tue, 19 Jan 2021 06:46:18 +0000 Subject: Change in osmo-hlr[master]: Correct vty inline help for for show subscriber References: Message-ID: keith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-hlr/+/22310 ) Change subject: Correct vty inline help for for show subscriber ...................................................................... Correct vty inline help for for show subscriber Change-Id: I035435859b60ce6d54da307c0d6397d4bd515439 --- M src/hlr_vty_subscr.c 1 file changed, 3 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-hlr refs/changes/10/22310/1 diff --git a/src/hlr_vty_subscr.c b/src/hlr_vty_subscr.c index 3dbc383..f5066c1 100644 --- a/src/hlr_vty_subscr.c +++ b/src/hlr_vty_subscr.c @@ -188,6 +188,7 @@ #define SUBSCR_CMD "subscriber " #define SUBSCR_CMD_HELP "Subscriber management commands\n" +#define SUBSCR_SHOW_HELP "Show subscriber information\n" #define SUBSCR_ID "(imsi|msisdn|id|imei) IDENT" #define SUBSCR_ID_HELP \ @@ -207,7 +208,7 @@ DEFUN(subscriber_show, subscriber_show_cmd, SUBSCR "show", - SUBSCR_HELP "Show subscriber information\n") + SUBSCR_HELP SUBSCR_SHOW_HELP) { struct hlr_subscriber subscr; const char *id_type = argv[0]; @@ -222,7 +223,7 @@ ALIAS(subscriber_show, show_subscriber_cmd, "show " SUBSCR_CMD SUBSCR_ID, - SHOW_STR SUBSCR_CMD_HELP SUBSCR_ID_HELP); + SHOW_STR SUBSCR_SHOW_HELP SUBSCR_ID_HELP); DEFUN(subscriber_create, subscriber_create_cmd, -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/22310 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-Change-Id: I035435859b60ce6d54da307c0d6397d4bd515439 Gerrit-Change-Number: 22310 Gerrit-PatchSet: 1 Gerrit-Owner: keith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 06:46:19 2021 From: gerrit-no-reply at lists.osmocom.org (keith) Date: Tue, 19 Jan 2021 06:46:19 +0000 Subject: Change in osmo-hlr[master]: Add vty command to show summary of all or filtered subscribers References: Message-ID: keith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-hlr/+/22311 ) Change subject: Add vty command to show summary of all or filtered subscribers ...................................................................... Add vty command to show summary of all or filtered subscribers Adds the following commands: show subscribers all - Display summary of all entries in HLR show subscribers filter [....] As above but filter on show subscribers last seen - Display only subscribers with time since Last LU update seen entries and sorts by LU.. Change-Id: I7f0573381a6d0d13841ac6d42d50f0e8389decf4 --- M include/osmocom/hlr/db.h M src/db.c M src/db_hlr.c M src/hlr_vty_subscr.c 4 files changed, 219 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-hlr refs/changes/11/22311/1 diff --git a/include/osmocom/hlr/db.h b/include/osmocom/hlr/db.h index ca336a0..d5e7612 100644 --- a/include/osmocom/hlr/db.h +++ b/include/osmocom/hlr/db.h @@ -8,6 +8,13 @@ struct hlr; enum stmt_idx { + DB_STMT_SEL_ALL, + DB_STMT_SEL_ALL_ORDER_LAST_SEEN, + DB_STMT_SEL_FILTER, + DB_STMT_SEL_FILTER_MSISDN, + DB_STMT_SEL_FILTER_IMSI, + DB_STMT_SEL_FILTER_CS, + DB_STMT_SEL_FILTER_PS, DB_STMT_SEL_BY_IMSI, DB_STMT_SEL_BY_MSISDN, DB_STMT_SEL_BY_ID, @@ -148,6 +155,8 @@ int db_subscr_exists_by_imsi(struct db_context *dbc, const char *imsi); int db_subscr_exists_by_msisdn(struct db_context *dbc, const char *msisdn); +int db_subscrs_get_print(struct vty *vty, struct db_context *dbc, const char *type, const char *filter, + void (*dump_cb)(struct vty *, struct hlr_subscriber *subscr), int *count, const char **err); int db_subscr_get_by_imsi(struct db_context *dbc, const char *imsi, struct hlr_subscriber *subscr); int db_subscr_get_by_msisdn(struct db_context *dbc, const char *msisdn, diff --git a/src/db.c b/src/db.c index 5ec20e2..8cf0e50 100644 --- a/src/db.c +++ b/src/db.c @@ -51,6 +51,14 @@ "sgsn_via_proxy" static const char *stmt_sql[] = { + [DB_STMT_SEL_ALL] = "SELECT " SEL_COLUMNS " FROM subscriber;", + [DB_STMT_SEL_ALL_ORDER_LAST_SEEN] = "SELECT " SEL_COLUMNS " FROM subscriber " + "WHERE last_lu_seen IS NOT NULL ORDER BY last_lu_seen;", + [DB_STMT_SEL_FILTER] = "SELECT " SEL_COLUMNS " FROM subscriber WHERE msisdn LIKE $search ORDER BY msisdn", + [DB_STMT_SEL_FILTER_MSISDN] = "SELECT " SEL_COLUMNS " FROM subscriber WHERE msisdn LIKE $search ORDER BY msisdn", + [DB_STMT_SEL_FILTER_IMSI] = "SELECT " SEL_COLUMNS " FROM subscriber WHERE imsi LIKE $search ORDER BY imsi", + [DB_STMT_SEL_FILTER_CS] = "SELECT " SEL_COLUMNS " FROM subscriber WHERE nam_cs = $search ORDER BY last_lu_seen", + [DB_STMT_SEL_FILTER_PS] = "SELECT " SEL_COLUMNS " FROM subscriber WHERE nam_ps = $search ORDER BY last_lu_seen", [DB_STMT_SEL_BY_IMSI] = "SELECT " SEL_COLUMNS " FROM subscriber WHERE imsi = ?", [DB_STMT_SEL_BY_MSISDN] = "SELECT " SEL_COLUMNS " FROM subscriber WHERE msisdn = ?", [DB_STMT_SEL_BY_ID] = "SELECT " SEL_COLUMNS " FROM subscriber WHERE id = ?", diff --git a/src/db_hlr.c b/src/db_hlr.c index 6ba43c2..6a2e115 100644 --- a/src/db_hlr.c +++ b/src/db_hlr.c @@ -624,6 +624,95 @@ msisdn, err); return rc; } +/*! Retrieve subscriber data from the HLR database. + * \param[in,out] vty vty. + * \param[in,out] dbc database context. + * \param[in] filter_type ASCII string of identifier type to search. + * \param[in] filter ASCII string to search. + * \param[in] dump_cb pointer to vty print function. + * \param[in,out] count counter for number of matched subscribers. + * \param[in,our] err + * \returns 0 on success, -ENOENT if no subscriber was found, -EIO on + * database error. + */ +int db_subscrs_get_print(struct vty *vty, struct db_context *dbc, const char *filter_type, const char *filter, + void (*dump_cb)(struct vty *, struct hlr_subscriber *subscr), int *count, const char **err) +{ + sqlite3_stmt *stmt; + char search[256]; + int rc; + struct hlr_subscriber sub, *subscr; + subscr = ⊂ + bool show_ls = false; + + if (!filter_type) { + stmt = dbc->stmt[DB_STMT_SEL_ALL]; + } else if (strcmp(filter_type, "imsi") == 0) { + stmt = dbc->stmt[DB_STMT_SEL_FILTER_IMSI]; + } else if (strcmp(filter_type, "msisdn") == 0) { + stmt = dbc->stmt[DB_STMT_SEL_FILTER_MSISDN]; + } else if (strcmp(filter_type, "cs") == 0) { + stmt = dbc->stmt[DB_STMT_SEL_FILTER_CS]; + } else if (strcmp(filter_type, "ps") == 0) { + stmt = dbc->stmt[DB_STMT_SEL_FILTER_PS]; + } else if (strcmp(filter_type, "last_lu_seen") == 0) { + show_ls = true; + stmt = dbc->stmt[DB_STMT_SEL_ALL_ORDER_LAST_SEEN]; + } else { + return -EIO; + } + + if (filter && strcmp(filter_type, "last_lu_seen") != 0) { + if (strcmp(filter, "on") == 0) { + sprintf(search, "%s", "1"); + } else if (strcmp(filter, "off") == 0) { + sprintf(search, "%s", "0"); + } else { + sprintf(search, "%%%s%%", filter); + } + if (!db_bind_text(stmt, "$search", search)) { + *err = sqlite3_errmsg(dbc->db); + return -EIO; + } + } + + rc = sqlite3_step(stmt); + + if (rc == SQLITE_DONE) { + db_remove_reset(stmt); + *err = "No matching subscriber(s)"; + return -ENOENT; + } + + while (rc == SQLITE_ROW) { + *subscr = (struct hlr_subscriber){}; + subscr->id = sqlite3_column_int64(stmt, 0); + copy_sqlite3_text_to_buf(subscr->imsi, stmt, 1); + copy_sqlite3_text_to_buf(subscr->msisdn, stmt, 2); + copy_sqlite3_text_to_buf(subscr->imei, stmt, 3); + subscr->nam_cs = sqlite3_column_int(stmt, 9); + subscr->nam_ps = sqlite3_column_int(stmt, 10); + if (show_ls) + parse_last_lu_seen(&subscr->last_lu_seen, (const char *)sqlite3_column_text(stmt, 14), + subscr->imsi, "CS"); + dump_cb(vty, subscr); + rc = sqlite3_step(stmt); + (*count)++; + } + + db_remove_reset(stmt); + if (rc != SQLITE_DONE) { + *err = sqlite3_errmsg(dbc->db); + return -EIO; + } else if (rc == SQLITE_DONE) { + *err = NULL; + return 0; + } else { + *err = sqlite3_errmsg(dbc->db); + LOGP(DAUC, LOGL_ERROR, "Cannot read subscribers from db:: %s\n", *err); + return rc; + } +} /*! Retrieve subscriber data from the HLR database. * \param[in,out] dbc database context. diff --git a/src/hlr_vty_subscr.c b/src/hlr_vty_subscr.c index f5066c1..856586e 100644 --- a/src/hlr_vty_subscr.c +++ b/src/hlr_vty_subscr.c @@ -44,13 +44,14 @@ return buf; } -static void dump_last_lu_seen(struct vty *vty, const char *domain_label, time_t last_lu_seen) +static void dump_last_lu_seen(struct vty *vty, const char *domain_label, time_t last_lu_seen, bool only_age) { uint32_t age; char datebuf[32]; if (!last_lu_seen) return; - vty_out(vty, " last LU seen on %s: %s", domain_label, get_datestr(&last_lu_seen, datebuf, sizeof(datebuf))); + if (!only_age) + vty_out(vty, " last LU seen on %s: %s", domain_label, get_datestr(&last_lu_seen, datebuf, sizeof(datebuf))); if (!timestamp_age(&last_lu_seen, &age)) vty_out(vty, " (invalid timestamp)%s", VTY_NEWLINE); else { @@ -64,7 +65,10 @@ UNIT_AGO("h", 60*60); UNIT_AGO("m", 60); UNIT_AGO("s", 1); - vty_out(vty, " ago)%s", VTY_NEWLINE); + if (!only_age) + vty_out(vty, " ago)%s", VTY_NEWLINE); + else + vty_out(vty, " ago)"); #undef UNIT_AGO } } @@ -108,8 +112,8 @@ vty_out(vty, " PS disabled%s", VTY_NEWLINE); if (subscr->ms_purged_ps) vty_out(vty, " PS purged%s", VTY_NEWLINE); - dump_last_lu_seen(vty, "CS", subscr->last_lu_seen); - dump_last_lu_seen(vty, "PS", subscr->last_lu_seen_ps); + dump_last_lu_seen(vty, "CS", subscr->last_lu_seen, false); + dump_last_lu_seen(vty, "PS", subscr->last_lu_seen_ps, false); if (!*subscr->imsi) return; @@ -159,6 +163,27 @@ } } +static void subscr_dump_summary_vty(struct vty *vty, struct hlr_subscriber *subscr) +{ + vty_out(vty, "%-5"PRIu64" %-12s %-16s", subscr->id, + *subscr->msisdn ? subscr->msisdn : "none", + *subscr->imsi ? subscr->imsi : "none"); + + if (*subscr->imei) { + char checksum = osmo_luhn(subscr->imei, 14); + if (checksum == -EINVAL) + vty_out(vty, " %-14s (INVALID LENGTH!)", subscr->imei); + else + vty_out(vty, " %-14s%c", subscr->imei, checksum); + } else { + vty_out(vty," ------------- "); + } + vty_out(vty, " %-2s%-2s ", subscr->nam_cs ? "CS" : "", subscr->nam_ps ? "PS" : ""); + if (subscr->last_lu_seen) + dump_last_lu_seen(vty, "CS", subscr->last_lu_seen, true); + vty_out_newline(vty); +} + static int get_subscr_by_argv(struct vty *vty, const char *type, const char *id, struct hlr_subscriber *subscr) { char imei_buf[GSM23003_IMEI_NUM_DIGITS_NO_CHK+1]; @@ -186,11 +211,48 @@ return rc; } +static int get_subscrs(struct vty *vty, const char *filter_type, const char *filter) +{ + int rc = -1; + int count = 0; + const char *err; + bool show_ls = (filter_type && strcmp(filter_type, "last_lu_seen") == 0); + + vty_out(vty, "ID MSISDN IMSI IMEI NAM"); + if (show_ls) + vty_out(vty, " LAST SEEN"); + vty_out_newline(vty); + vty_out(vty, "----- ------------ ---------------- ---------------- -----"); + if (show_ls) + vty_out(vty, " ------------"); + vty_out_newline(vty); + rc = db_subscrs_get_print(vty, g_hlr->dbc, filter_type, filter, subscr_dump_summary_vty, &count, &err); + if (count > 40) { + vty_out(vty, "----- ------------ ---------------- ---------------- -----"); + if (show_ls) + vty_out(vty, " ------------"); + vty_out_newline(vty); + vty_out(vty, "ID MSISDN IMSI IMEI NAM"); + if (show_ls) + vty_out(vty, " LAST SEEN"); + vty_out_newline(vty); + } + if (count > 0) + vty_out(vty, " Subscribers Shown: %d%s", count, VTY_NEWLINE); + if (rc) + vty_out(vty, "%% %s%s", err, VTY_NEWLINE); + return rc; +} + + #define SUBSCR_CMD "subscriber " #define SUBSCR_CMD_HELP "Subscriber management commands\n" #define SUBSCR_SHOW_HELP "Show subscriber information\n" +#define SUBSCRS_SHOW_HELP "Show all subscribers (with filter possibility)\n" #define SUBSCR_ID "(imsi|msisdn|id|imei) IDENT" +#define SUBSCR_FILTER "(imsi|msisdn) FILTER" + #define SUBSCR_ID_HELP \ "Identify subscriber by IMSI\n" \ "Identify subscriber by MSISDN (phone number)\n" \ @@ -225,6 +287,48 @@ "show " SUBSCR_CMD SUBSCR_ID, SHOW_STR SUBSCR_SHOW_HELP SUBSCR_ID_HELP); +DEFUN(subscriber_show_all, + subscriber_show_all_cmd, + "show subscribers all", + SHOW_STR SUBSCRS_SHOW_HELP "Show summary of all subscribers\n") +{ + if (get_subscrs(vty, NULL, NULL)) + return CMD_WARNING; + + return CMD_SUCCESS; +} + +DEFUN(subscriber_show_filtered, + subscriber_show_filtered_cmd, + "show subscribers filter " SUBSCR_FILTER, + SHOW_STR SUBSCRS_SHOW_HELP "Show summary of subscribers with filter\n" + "Filter by IMSI\n" "Filter by MSISDN\n" "String to match in msisdn or imsi\n") +{ + const char *filter_type = argv[0]; + const char *filter = argv[1]; + + if (get_subscrs(vty, filter_type, filter)) + return CMD_WARNING; + + return CMD_SUCCESS; +} + +ALIAS(subscriber_show_filtered, subscriber_show_filtered_cmd2, + "show subscribers filter (cs|ps) (on|off)", + SHOW_STR SUBSCR_SHOW_HELP "Show summary of all subscribers\n" + "Show Subscribers with NAM CS In/active\n" "Show Subscribers with NAM PS In/active\n"); + +DEFUN(subscriber_show_order_last_seen, subscriber_show_order_last_seen_cmd, + "show subscribers last seen", + SHOW_STR SUBSCR_SHOW_HELP "Show Subscribers Ordered by Last Seen Time\n" + "Show Subscribers Ordered by Last Seen Time\n") +{ + if (get_subscrs(vty, "last_lu_seen", NULL)) + return CMD_WARNING; + + return CMD_SUCCESS; +} + DEFUN(subscriber_create, subscriber_create_cmd, SUBSCR_CMD "imsi IDENT create", @@ -679,6 +783,10 @@ void hlr_vty_subscriber_init(void) { install_element_ve(&subscriber_show_cmd); + install_element_ve(&subscriber_show_all_cmd); + install_element_ve(&subscriber_show_filtered_cmd); + install_element_ve(&subscriber_show_filtered_cmd2); + install_element_ve(&subscriber_show_order_last_seen_cmd); install_element_ve(&show_subscriber_cmd); install_element(ENABLE_NODE, &subscriber_create_cmd); install_element(ENABLE_NODE, &subscriber_delete_cmd); -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/22311 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-Change-Id: I7f0573381a6d0d13841ac6d42d50f0e8389decf4 Gerrit-Change-Number: 22311 Gerrit-PatchSet: 1 Gerrit-Owner: keith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 06:47:06 2021 From: gerrit-no-reply at lists.osmocom.org (keith) Date: Tue, 19 Jan 2021 06:47:06 +0000 Subject: Change in osmo-hlr[master]: Add vty command to show summary of all or filtered subscribers In-Reply-To: References: Message-ID: keith has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/osmo-hlr/+/22311 ) Change subject: Add vty command to show summary of all or filtered subscribers ...................................................................... Add vty command to show summary of all or filtered subscribers Adds the following commands: show subscribers all - Display summary of all entries in HLR show subscribers filter [....] As above but filter on search field/string show subscribers last seen - Display only subscribers with time since Last LU update seen entries and sorts by LU.. Change-Id: I7f0573381a6d0d13841ac6d42d50f0e8389decf4 --- M include/osmocom/hlr/db.h M src/db.c M src/db_hlr.c M src/hlr_vty_subscr.c 4 files changed, 219 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-hlr refs/changes/11/22311/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/22311 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-Change-Id: I7f0573381a6d0d13841ac6d42d50f0e8389decf4 Gerrit-Change-Number: 22311 Gerrit-PatchSet: 2 Gerrit-Owner: keith Gerrit-CC: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 06:48:22 2021 From: gerrit-no-reply at lists.osmocom.org (keith) Date: Tue, 19 Jan 2021 06:48:22 +0000 Subject: Change in osmo-hlr[master]: Add vty command to show summary of all or filtered subscribers In-Reply-To: References: Message-ID: keith has uploaded a new patch set (#3). ( https://gerrit.osmocom.org/c/osmo-hlr/+/22311 ) Change subject: Add vty command to show summary of all or filtered subscribers ...................................................................... Add vty command to show summary of all or filtered subscribers Adds the following commands: show subscribers all - Display summary of all entries in HLR show subscribers filter [....] As above but filter on search field/string show subscribers last seen - Display only subscribers with data in Last LU update field, and sorts by Last LU. Change-Id: I7f0573381a6d0d13841ac6d42d50f0e8389decf4 --- M include/osmocom/hlr/db.h M src/db.c M src/db_hlr.c M src/hlr_vty_subscr.c 4 files changed, 219 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-hlr refs/changes/11/22311/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/22311 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-Change-Id: I7f0573381a6d0d13841ac6d42d50f0e8389decf4 Gerrit-Change-Number: 22311 Gerrit-PatchSet: 3 Gerrit-Owner: keith Gerrit-CC: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 06:53:38 2021 From: gerrit-no-reply at lists.osmocom.org (keith) Date: Tue, 19 Jan 2021 06:53:38 +0000 Subject: Change in osmo-hlr[master]: Add vty command to show summary of all or filtered subscribers In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-hlr/+/22311 to look at the new patch set (#4). Change subject: Add vty command to show summary of all or filtered subscribers ...................................................................... Add vty command to show summary of all or filtered subscribers Adds the following commands: show subscribers all - Display summary of all entries in HLR show subscribers filter [....] As above but filter on search field/string show subscribers last seen - Display only subscribers with data in Last LU update field, and sorts by Last LU. Change-Id: I7f0573381a6d0d13841ac6d42d50f0e8389decf4 --- M include/osmocom/hlr/db.h M src/db.c M src/db_hlr.c M src/hlr_vty_subscr.c M tests/test_nodes.vty 5 files changed, 223 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-hlr refs/changes/11/22311/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/22311 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-Change-Id: I7f0573381a6d0d13841ac6d42d50f0e8389decf4 Gerrit-Change-Number: 22311 Gerrit-PatchSet: 4 Gerrit-Owner: keith Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 07:06:29 2021 From: gerrit-no-reply at lists.osmocom.org (keith) Date: Tue, 19 Jan 2021 07:06:29 +0000 Subject: Change in osmo-hlr[master]: Add vty command to show summary of all or filtered subscribers In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-hlr/+/22311 to look at the new patch set (#5). Change subject: Add vty command to show summary of all or filtered subscribers ...................................................................... Add vty command to show summary of all or filtered subscribers Adds the following commands: show subscribers all - Display summary of all entries in HLR show subscribers filter [....] As above but filter on search field/string show subscribers last seen - Display only subscribers with data in Last LU update field, and sorts by Last LU. Change-Id: I7f0573381a6d0d13841ac6d42d50f0e8389decf4 --- M include/osmocom/hlr/db.h M src/db.c M src/db_hlr.c M src/hlr_vty_subscr.c M tests/test_nodes.vty 5 files changed, 223 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-hlr refs/changes/11/22311/5 -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/22311 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-Change-Id: I7f0573381a6d0d13841ac6d42d50f0e8389decf4 Gerrit-Change-Number: 22311 Gerrit-PatchSet: 5 Gerrit-Owner: keith Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 07:18:50 2021 From: gerrit-no-reply at lists.osmocom.org (keith) Date: Tue, 19 Jan 2021 07:18:50 +0000 Subject: Change in osmo-hlr[master]: Correct vty inline help for show subscriber In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-hlr/+/22310 to look at the new patch set (#2). Change subject: Correct vty inline help for show subscriber ...................................................................... Correct vty inline help for show subscriber Change-Id: I035435859b60ce6d54da307c0d6397d4bd515439 --- M src/hlr_vty_subscr.c 1 file changed, 3 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-hlr refs/changes/10/22310/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/22310 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-Change-Id: I035435859b60ce6d54da307c0d6397d4bd515439 Gerrit-Change-Number: 22310 Gerrit-PatchSet: 2 Gerrit-Owner: keith Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 08:00:28 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 19 Jan 2021 08:00:28 +0000 Subject: Change in osmo-ci[master]: OBS: use _sourcedir to write rpmlintrc In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22283 ) Change subject: OBS: use _sourcedir to write rpmlintrc ...................................................................... Patch Set 1: Code-Review+2 1+1=2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22283 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I16e1b3fe297ab516ceff4742ff39633480f3720e Gerrit-Change-Number: 22283 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Reviewer: roox Gerrit-Comment-Date: Tue, 19 Jan 2021 08:00:28 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 08:00:31 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 19 Jan 2021 08:00:31 +0000 Subject: Change in osmo-ci[master]: OBS: use _sourcedir to write rpmlintrc In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22283 ) Change subject: OBS: use _sourcedir to write rpmlintrc ...................................................................... OBS: use _sourcedir to write rpmlintrc Change-Id: I16e1b3fe297ab516ceff4742ff39633480f3720e --- M scripts/common-obs.sh 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: pespin: Looks good to me, but someone else must approve roox: Looks good to me, but someone else must approve; Verified osmith: Looks good to me, approved diff --git a/scripts/common-obs.sh b/scripts/common-obs.sh index ace0e81..366d72e 100644 --- a/scripts/common-obs.sh +++ b/scripts/common-obs.sh @@ -85,7 +85,7 @@ # Instead of writing to the SOURCES dir, we could upload osmocom-rpmlintrc as # additional source for each package. But that's way more effort, not worth it. echo "setBadness('shlib-fixed-dependency', 0)" \\ - > /home/abuild/rpmbuild/SOURCES/osmocom-rpmlintrc + > "%{_sourcedir}/osmocom-rpmlintrc" EOF fi -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22283 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I16e1b3fe297ab516ceff4742ff39633480f3720e Gerrit-Change-Number: 22283 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Reviewer: roox Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 08:59:28 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 19 Jan 2021 08:59:28 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Use IMSI cache for PTP paging and implement DUMMY_PAGING_PS In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22298 to look at the new patch set (#2). Change subject: gbproxy: Use IMSI cache for PTP paging and implement DUMMY_PAGING_PS ...................................................................... gbproxy: Use IMSI cache for PTP paging and implement DUMMY_PAGING_PS Some code was missing to support PAGING_REJECT and DUMMY_PAGING_PS over both PTP and signalling. This commit adds the missing pieces, notably: * Use and route according to the IMSI cache for paging on PTP * Ensure DUMMY_PAGING_PS is broadcast if no routing area is included Change-Id: I7243e0d4470cb62fa6db36d26002ccd6542b5147 Related: OS#4951, OS#4472 --- M src/gbproxy/gb_proxy.c 1 file changed, 39 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/98/22298/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22298 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I7243e0d4470cb62fa6db36d26002ccd6542b5147 Gerrit-Change-Number: 22298 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-CC: lynxis lazus Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 08:59:36 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 19 Jan 2021 08:59:36 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Use IMSI cache for PTP paging and implement DUMMY_PAGING_PS In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22298 ) Change subject: gbproxy: Use IMSI cache for PTP paging and implement DUMMY_PAGING_PS ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-sgsn/+/22298/1/src/gbproxy/gb_proxy.c File src/gbproxy/gb_proxy.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/22298/1/src/gbproxy/gb_proxy.c at 436 PS1, Line 436: BSSGP_CAUSE_INV_MAND_INF > I would simply drop the message in such situations. [?] Ack -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22298 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I7243e0d4470cb62fa6db36d26002ccd6542b5147 Gerrit-Change-Number: 22298 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-CC: lynxis lazus Gerrit-Comment-Date: Tue, 19 Jan 2021 08:59:36 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: laforge Comment-In-Reply-To: daniel Comment-In-Reply-To: lynxis lazus Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 09:31:36 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 19 Jan 2021 09:31:36 +0000 Subject: Change in osmo-hlr[master]: Correct vty inline help for show subscriber In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-hlr/+/22310 ) Change subject: Correct vty inline help for show subscriber ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/22310 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-Change-Id: I035435859b60ce6d54da307c0d6397d4bd515439 Gerrit-Change-Number: 22310 Gerrit-PatchSet: 2 Gerrit-Owner: keith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 19 Jan 2021 09:31:36 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 09:39:22 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 19 Jan 2021 09:39:22 +0000 Subject: Change in libosmocore[master]: bssgp_rim: add encoder/decoder for NACC related RIM containers In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21862 ) Change subject: bssgp_rim: add encoder/decoder for NACC related RIM containers ...................................................................... Patch Set 13: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21862 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ibbc7fd67658e3040c12abb5706fe9d1f31894352 Gerrit-Change-Number: 21862 Gerrit-PatchSet: 13 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 19 Jan 2021 09:39:22 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 09:40:06 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 19 Jan 2021 09:40:06 +0000 Subject: Change in libosmocore[master]: bssgp_rim: move bssgp_parse_rim_ri and bssgp_create_rim_ri to gprs_bs... In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21863 ) Change subject: bssgp_rim: move bssgp_parse_rim_ri and bssgp_create_rim_ri to gprs_bssgp_rim ...................................................................... Patch Set 13: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21863 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Icd667f41d5735de56cd9fb257670337c679dd258 Gerrit-Change-Number: 21863 Gerrit-PatchSet: 13 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 19 Jan 2021 09:40:06 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 09:42:27 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 19 Jan 2021 09:42:27 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Use IMSI cache for PTP paging and implement DUMMY_PAGING_PS In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22298 ) Change subject: gbproxy: Use IMSI cache for PTP paging and implement DUMMY_PAGING_PS ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-sgsn/+/22298/2/src/gbproxy/gb_proxy.c File src/gbproxy/gb_proxy.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/22298/2/src/gbproxy/gb_proxy.c at 439 PS2, Line 439: PAGING REJECT/DUMMY PAGIN sorry for yet another review cycle - we can simply use the existing list of message type strings to stringify the correct name of the message, rather than leaving the user to guess which it was. osmo_tlv_prot_msg_name(&osmo_pdef_bssgp, bgph->pdu_type) should be the most modern+efficient variant, even avoiding value_string iteration. -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22298 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I7243e0d4470cb62fa6db36d26002ccd6542b5147 Gerrit-Change-Number: 22298 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-CC: lynxis lazus Gerrit-Comment-Date: Tue, 19 Jan 2021 09:42:27 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 09:42:32 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 19 Jan 2021 09:42:32 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Use IMSI cache for PTP paging and implement DUMMY_PAGING_PS In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22298 ) Change subject: gbproxy: Use IMSI cache for PTP paging and implement DUMMY_PAGING_PS ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22298 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I7243e0d4470cb62fa6db36d26002ccd6542b5147 Gerrit-Change-Number: 22298 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: lynxis lazus Gerrit-Comment-Date: Tue, 19 Jan 2021 09:42:32 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 09:44:02 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 19 Jan 2021 09:44:02 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: add utilities to send and parse BSSGP rim PDUs In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22046 ) Change subject: gprs_bssgp: add utilities to send and parse BSSGP rim PDUs ...................................................................... Patch Set 6: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22046 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I18134fd9938040d2facb6beee3732628b167ce8c Gerrit-Change-Number: 22046 Gerrit-PatchSet: 6 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 19 Jan 2021 09:44:02 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 09:44:09 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 19 Jan 2021 09:44:09 +0000 Subject: Change in libosmocore[master]: bssgp_rim: add encoder/decoder for NACC related RIM containers In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21862 ) Change subject: bssgp_rim: add encoder/decoder for NACC related RIM containers ...................................................................... bssgp_rim: add encoder/decoder for NACC related RIM containers BSSGP RIM uses a number of nested containers to signal RIM application specific payload information in a generic way. Lets add the container structurs required for NACC. Depends: libosmocore If48f412c32e8e5a3e604a78d12b74787a4786374 Change-Id: Ibbc7fd67658e3040c12abb5706fe9d1f31894352 Related: SYS#5103 --- M include/Makefile.am A include/osmocom/gprs/gprs_bssgp_rim.h M src/gb/Makefile.am A src/gb/gprs_bssgp_rim.c M src/gb/libosmogb.map M tests/Makefile.am A tests/gb/gprs_bssgp_rim_test.c A tests/gb/gprs_bssgp_rim_test.ok M tests/testsuite.at 9 files changed, 1,859 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, but someone else must approve pespin: Looks good to me, approved diff --git a/include/Makefile.am b/include/Makefile.am index c1ae644..10f0221 100644 --- a/include/Makefile.am +++ b/include/Makefile.am @@ -69,6 +69,7 @@ osmocom/gprs/gprs_bssgp.h \ osmocom/gprs/gprs_bssgp2.h \ osmocom/gprs/gprs_bssgp_bss.h \ + osmocom/gprs/gprs_bssgp_rim.h \ osmocom/gprs/gprs_msgb.h \ osmocom/gprs/gprs_ns.h \ osmocom/gprs/gprs_ns_frgre.h \ diff --git a/include/osmocom/gprs/gprs_bssgp_rim.h b/include/osmocom/gprs/gprs_bssgp_rim.h new file mode 100644 index 0000000..0612a91 --- /dev/null +++ b/include/osmocom/gprs/gprs_bssgp_rim.h @@ -0,0 +1,182 @@ +/*! \file gprs_bssgp.h + * GPRS BSSGP RIM protocol implementation as per 3GPP TS 48.018. */ +/* + * (C) 2020-2021 by sysmocom - s.f.m.c. GmbH + * Author: Philipp Maier + * + * All Rights Reserved + * + * SPDX-License-Identifier: GPL-2.0+ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#pragma once + +#include + +/* 3GPP TS 48.018, table 11.3.63.1.1: RAN-INFORMATION-REQUEST Application Container coding for NACC */ +struct bssgp_ran_inf_req_app_cont_nacc { + struct osmo_cell_global_id_ps reprt_cell; +}; + +int bssgp_dec_ran_inf_req_app_cont_nacc(struct bssgp_ran_inf_req_app_cont_nacc *cont, const uint8_t *buf, size_t len); +int bssgp_enc_ran_inf_req_app_cont_nacc(uint8_t *buf, size_t len, const struct bssgp_ran_inf_req_app_cont_nacc *cont); + +/* Length of NACC system information, see also: 3GPP TS 48.018 11.3.63.2.1 */ +#define BSSGP_RIM_SI_LEN 21 +#define BSSGP_RIM_PSI_LEN 22 + +/* 3GPP TS 48.018, table 11.3.63.2.1.a: RAN-INFORMATION Application Container coding for NACC */ +struct bssgp_ran_inf_app_cont_nacc { + struct osmo_cell_global_id_ps reprt_cell; + bool type_psi; + uint8_t num_si; + + /* Pointer to system information messages */ + const uint8_t *si[127]; +}; + +int bssgp_dec_ran_inf_app_cont_nacc(struct bssgp_ran_inf_app_cont_nacc *cont, const uint8_t *buf, size_t len); +int bssgp_enc_ran_inf_app_cont_nacc(uint8_t *buf, size_t len, const struct bssgp_ran_inf_app_cont_nacc *cont); + +/* 3GPP TS 48.018, table 11.3.64.1.b, NACC Cause coding */ +enum bssgp_nacc_cause { + BSSGP_NACC_CAUSE_UNSPEC, + BSSGP_NACC_CAUSE_SYNTAX_ERR, + BSSGP_NACC_CAUSE_RPRT_CELL_MISSMTCH, + BSSGP_NACC_CAUSE_SIPSI_TYPE_ERR, + BSSGP_NACC_CAUSE_SIPSI_LEN_ERR, + BSSGP_NACC_CAUSE_SIPSI_SET_ERR, +}; + +/* 3GPP TS 48.018, table 11.3.64.1.a, Application Error Container coding for NACC */ +struct bssgp_app_err_cont_nacc { + enum bssgp_nacc_cause nacc_cause; + + /* Pointer to errornous application container */ + const uint8_t *err_app_cont; + size_t err_app_cont_len; +}; + +int bssgp_dec_app_err_cont_nacc(struct bssgp_app_err_cont_nacc *cont, const uint8_t *buf, size_t len); +int bssgp_enc_app_err_cont_nacc(uint8_t *buf, size_t len, const struct bssgp_app_err_cont_nacc *cont); + +/* 3GPP TS 48.018, table 11.3.61.b: RIM Application Identity coding */ +enum bssgp_ran_inf_app_id { + BSSGP_RAN_INF_APP_ID_NACC = 1, + BSSGP_RAN_INF_APP_ID_SI3 = 2, + BSSGP_RAN_INF_APP_ID_MBMS = 3, + BSSGP_RAN_INF_APP_ID_SON = 4, + BSSGP_RAN_INF_APP_ID_UTRA_SI = 5, +}; + +/* 3GPP TS 48.018, table 11.3.62a.1.b: RAN-INFORMATION-REQUEST RIM Container Contents */ +struct bssgp_ran_inf_req_rim_cont { + enum bssgp_ran_inf_app_id app_id; + uint32_t seq_num; + struct bssgp_rim_pdu_ind pdu_ind; + uint8_t prot_ver; + + /* Nested application container */ + union { + struct bssgp_ran_inf_req_app_cont_nacc app_cont_nacc; + /* TODO: add containers for Si3, MBMS, SON, UTRA-SI */ + } u; + + /* Pointer to SON-transfer application identity, only present if app_id is indicating "son-transfer", + * see also 3GPP TS 48.018, section 11.3.108 and 3GPP TS 36.413 annex B.1.1 */ + const uint8_t *son_trans_app_id; + size_t son_trans_app_id_len; +}; + +int bssgp_dec_ran_inf_req_rim_cont(struct bssgp_ran_inf_req_rim_cont *cont, const uint8_t *buf, size_t len); +int bssgp_enc_ran_inf_req_rim_cont(uint8_t *buf, size_t len, const struct bssgp_ran_inf_req_rim_cont *cont); + +/* 3GPP TS 48.018, table 11.3.62a.2.b: RAN-INFORMATION RIM Container Contents */ +struct bssgp_ran_inf_rim_cont { + enum bssgp_ran_inf_app_id app_id; + uint32_t seq_num; + struct bssgp_rim_pdu_ind pdu_ind; + uint8_t prot_ver; + bool app_err; + + /* Nested application container */ + union { + struct bssgp_ran_inf_app_cont_nacc app_cont_nacc; + struct bssgp_app_err_cont_nacc app_err_cont_nacc; + /* TODO: add containers for Si3, MBMS, SON, UTRA-SI */ + } u; + + /* Pointer to SON-transfer application identity, only present if app_id is indicating "son-transfer", + * see also 3GPP TS 48.018, section 11.3.108 and 3GPP TS 36.413 annex B.1.1 */ + const uint8_t *son_trans_app_id; + size_t son_trans_app_id_len; +}; + +int bssgp_dec_ran_inf_rim_cont(struct bssgp_ran_inf_rim_cont *cont, const uint8_t *buf, size_t len); +int bssgp_enc_ran_inf_rim_cont(uint8_t *buf, size_t len, const struct bssgp_ran_inf_rim_cont *cont); + +/* 3GPP TS 48.018, table 11.3.62a.3.b: RAN-INFORMATION-ACK RIM Container Contents */ +struct bssgp_ran_inf_ack_rim_cont { + enum bssgp_ran_inf_app_id app_id; + uint32_t seq_num; + uint8_t prot_ver; + + /* Pointer to SON-transfer application identity, only present if app_id is indicating "son-transfer", + * see also 3GPP TS 48.018, section 11.3.108 and 3GPP TS 36.413 annex B.1.1 */ + const uint8_t *son_trans_app_id; + size_t son_trans_app_id_len; +}; + +int bssgp_dec_ran_inf_ack_rim_cont(struct bssgp_ran_inf_ack_rim_cont *cont, const uint8_t *buf, size_t len); +int bssgp_enc_ran_inf_ack_rim_cont(uint8_t *buf, size_t len, const struct bssgp_ran_inf_ack_rim_cont *cont); + +/* 3GPP TS 48.018, table 11.3.62a.4.b: RAN-INFORMATION-ERROR RIM Container Contents */ +struct bssgp_ran_inf_err_rim_cont { + enum bssgp_ran_inf_app_id app_id; + uint8_t cause; + uint8_t prot_ver; + + /* Pointer to (encoded) errornous PDU, + * see also: 3GPP TS 48.018, section 11.3.24 */ + const uint8_t *err_pdu; + size_t err_pdu_len; + + /* Pointer to SON-transfer application identity, only present if app_id is indicating "son-transfer", + * see also 3GPP TS 48.018, section 11.3.108 and 3GPP TS 36.413 annex B.1.1 */ + const uint8_t *son_trans_app_id; + size_t son_trans_app_id_len; +}; + +int bssgp_dec_ran_inf_err_rim_cont(struct bssgp_ran_inf_err_rim_cont *cont, const uint8_t *buf, size_t len); +int bssgp_enc_ran_inf_err_rim_cont(uint8_t *buf, size_t len, const struct bssgp_ran_inf_err_rim_cont *cont); + +/* 3GPP TS 48.018, table 11.3.62a.5.b: RAN-INFORMATION-APPLICATION-ERROR RIM Container Contents */ +struct bssgp_ran_inf_app_err_rim_cont { + enum bssgp_ran_inf_app_id app_id; + uint32_t seq_num; + struct bssgp_rim_pdu_ind pdu_ind; + uint8_t prot_ver; + + /* Nested application container */ + union { + struct bssgp_app_err_cont_nacc app_err_cont_nacc; + /* TODO: add containers for Si3, MBMS, SON, UTRA-SI */ + } u; +}; + +int bssgp_dec_ran_inf_app_err_rim_cont(struct bssgp_ran_inf_app_err_rim_cont *cont, const uint8_t *buf, size_t len); +int bssgp_enc_ran_inf_app_err_rim_cont(uint8_t *buf, size_t len, const struct bssgp_ran_inf_app_err_rim_cont *cont); diff --git a/src/gb/Makefile.am b/src/gb/Makefile.am index cbee333..031971b 100644 --- a/src/gb/Makefile.am +++ b/src/gb/Makefile.am @@ -22,7 +22,7 @@ $(top_builddir)/src/gsm/libosmogsm.la libosmogb_la_SOURCES = gprs_ns.c gprs_ns_frgre.c gprs_ns_vty.c gprs_ns_sns.c \ - gprs_bssgp.c gprs_bssgp_util.c gprs_bssgp_vty.c \ + gprs_bssgp.c gprs_bssgp_util.c gprs_bssgp_vty.c gprs_bssgp_rim.c \ gprs_bssgp_bss.c \ gprs_ns2.c gprs_ns2_udp.c gprs_ns2_frgre.c gprs_ns2_fr.c gprs_ns2_vc_fsm.c gprs_ns2_sns.c \ gprs_ns2_message.c gprs_ns2_vty.c gprs_ns2_vty2.c \ diff --git a/src/gb/gprs_bssgp_rim.c b/src/gb/gprs_bssgp_rim.c new file mode 100644 index 0000000..3ac405e --- /dev/null +++ b/src/gb/gprs_bssgp_rim.c @@ -0,0 +1,763 @@ +/*! \file gprs_bssgp.c + * GPRS BSSGP RIM protocol implementation as per 3GPP TS 48.018. */ +/* + * (C) 2020-2021 by sysmocom - s.f.m.c. GmbH + * Author: Philipp Maier + * + * All Rights Reserved + * + * SPDX-License-Identifier: GPL-2.0+ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include +#include +#include +#include + +/* TVLV IEs use a variable length field. To be sure we will do all buffer + * length checks with the maximum possible header length, which is + * 1 octet tag + 2 octets length = 3 */ +#define TVLV_HDR_MAXLEN 3 + +/* Usually RIM application containers and their surrounding RIM containers + * are not likely to exceed 128 octets, so the usual header length will be 2 */ +#define TVLV_HDR_LEN 2 + +/* The reporting cell identifier is encoded as a cell identifier IE + * (3GPP TS 48.018, sub-clause 11.3.9) but without IE and length octets. */ +#define REP_CELL_ID_LEN 8 + +/*! Decode a RAN Information Request Application Container for NACC (3GPP TS 48.018, section 11.3.63.1.1). + * \param[out] user provided memory for decoded data struct. + * \param[in] buf user provided memory with the encoded value data of the IE. + * \returns 0 on success, -EINVAL on error. */ +int bssgp_dec_ran_inf_req_app_cont_nacc(struct bssgp_ran_inf_req_app_cont_nacc *cont, const uint8_t *buf, size_t len) +{ + int rc; + + if (len < REP_CELL_ID_LEN) + return -EINVAL; + + rc = gsm0808_decode_cell_id_u((union gsm0808_cell_id_u*)&cont->reprt_cell, + CELL_IDENT_WHOLE_GLOBAL_PS, buf, len); + if (rc < 0) + return -EINVAL; + + return 0; +} + +/*! Encode a RAN Information Request Application Container for NACC (3GPP TS 48.018, section 11.3.63.1.1). + * \param[out] buf user provided memory for the generated value part of the IE. + * \param[in] cont user provided input data struct. + * \returns length of encoded octets, -EINVAL on error. */ +int bssgp_enc_ran_inf_req_app_cont_nacc(uint8_t *buf, size_t len, const struct bssgp_ran_inf_req_app_cont_nacc *cont) +{ + int rc; + struct gprs_ra_id *raid; + + if (len < REP_CELL_ID_LEN) + return -EINVAL; + + raid = (struct gprs_ra_id *)&cont->reprt_cell.rai; + rc = bssgp_create_cell_id(buf, raid, cont->reprt_cell.cell_identity); + if (rc < 0) + return -EINVAL; + return rc; +} + +/*! Decode a RAN Information Application Container (3GPP TS 48.018, section 11.3.63.2.1). + * \param[out] user provided memory for decoded data struct. + * \param[in] buf user provided memory with the encoded value data of the IE. + * \returns 0 on success, -EINVAL on error. */ +int bssgp_dec_ran_inf_app_cont_nacc(struct bssgp_ran_inf_app_cont_nacc *cont, const uint8_t *buf, size_t len) +{ + unsigned int i; + int remaining_buf_len; + int rc; + + /* The given buffer must at least contain a reporting cell identifer + * plus one octet that defines number/type of attached sysinfo messages. */ + if (len < REP_CELL_ID_LEN + 1) + return -EINVAL; + + rc = gsm0808_decode_cell_id_u((union gsm0808_cell_id_u*)&cont->reprt_cell, + CELL_IDENT_WHOLE_GLOBAL_PS, buf, len); + if (rc < 0) + return -EINVAL; + + buf += REP_CELL_ID_LEN; + + cont->type_psi = buf[0] & 1; + cont->num_si = buf[0] >> 1; + buf++; + + /* The number of sysinfo messages may be zero */ + if (cont->num_si == 0) + return 0; + + /* Check if the prospected system information messages fit in the + * remaining buffer space */ + remaining_buf_len = len - REP_CELL_ID_LEN - 1; + if (remaining_buf_len <= 0) + return -EINVAL; + if (cont->type_psi && remaining_buf_len / BSSGP_RIM_PSI_LEN < cont->num_si) + return -EINVAL; + else if (remaining_buf_len / BSSGP_RIM_SI_LEN < cont->num_si) + return -EINVAL; + + for (i = 0; i < cont->num_si; i++) { + cont->si[i] = buf; + if (cont->type_psi) + buf += BSSGP_RIM_PSI_LEN; + else + buf += BSSGP_RIM_SI_LEN; + } + + return 0; +} + +/*! Encode a RAN Information Application Container (3GPP TS 48.018, section 11.3.63.2.1). + * \param[out] buf user provided memory for the generated value part of the IE. + * \param[in] cont user provided input data struct. + * \returns length of encoded octets, -EINVAL on error. */ +int bssgp_enc_ran_inf_app_cont_nacc(uint8_t *buf, size_t len, const struct bssgp_ran_inf_app_cont_nacc *cont) +{ + uint8_t *buf_ptr = buf; + int rc; + unsigned int silen; + unsigned int i; + struct gprs_ra_id *raid; + + if (cont->type_psi) + silen = BSSGP_RIM_PSI_LEN; + else + silen = BSSGP_RIM_SI_LEN; + + /* The buffer must accept the reporting cell id, plus 1 byte to define + * the type and number of sysinfo messages. */ + if (len < REP_CELL_ID_LEN + 1 + silen * cont->num_si) + return -EINVAL; + + raid = (struct gprs_ra_id *)&cont->reprt_cell.rai; + rc = bssgp_create_cell_id(buf_ptr, raid, cont->reprt_cell.cell_identity); + if (rc < 0) + return -EINVAL; + buf_ptr += rc; + + buf_ptr[0] = 0x00; + if (cont->type_psi) + buf_ptr[0] |= 0x01; + buf_ptr[0] |= (cont->num_si << 1); + buf_ptr++; + + for (i = 0; i < cont->num_si; i++) { + memcpy(buf_ptr, cont->si[i], silen); + buf_ptr += silen; + } + + return (int)(buf_ptr - buf); +} + +/*! Decode a Application Error Container for NACC (3GPP TS 48.018, section 11.3.64.1). + * \param[out] user provided memory for decoded data struct. + * \param[in] buf user provided memory with the encoded value data of the IE. + * \returns 0 on success, -EINVAL on error. */ +int bssgp_dec_app_err_cont_nacc(struct bssgp_app_err_cont_nacc *cont, const uint8_t *buf, size_t len) +{ + /* The buffer must at least contain the NACC cause code, it should also + * contain the application container, but we won't error if it is missing. */ + if (len < 1) + return -EINVAL; + + cont->nacc_cause = buf[0]; + + if (len > 1) { + cont->err_app_cont = buf + 1; + cont->err_app_cont_len = len - 1; + } else { + cont->err_app_cont = NULL; + cont->err_app_cont_len = 0; + } + + return 0; +} + +/*! Encode Application Error Container for NACC (3GPP TS 48.018, section 11.3.64.1). + * \param[out] buf user provided memory for the generated value part of the IE. + * \param[in] cont user provided input data struct. + * \returns length of encoded octets, -EINVAL on error. */ +int bssgp_enc_app_err_cont_nacc(uint8_t *buf, size_t len, const struct bssgp_app_err_cont_nacc *cont) +{ + uint8_t *buf_ptr = buf; + + /* The buffer must accept the length of the application container and the NACC + * cause code, which is one octet in length. */ + if (len < cont->err_app_cont_len + 1) + return -EINVAL; + + buf_ptr[0] = cont->nacc_cause; + buf_ptr++; + + memcpy(buf_ptr, cont->err_app_cont, cont->err_app_cont_len); + buf_ptr += cont->err_app_cont_len; + + return (int)(buf_ptr - buf); +} + +/* The structs bssgp_ran_inf_req_rim_cont, bssgp_ran_inf_rim_cont and bssgp_ran_inf_app_err_rim_cont *cont + * share four common fields at the beginning, we use the following struct as parameter type for the common + * encoder/decoder functions. (See also 3GPP TS 48.018 table 11.3.62a.1.b, table 11.3.62a.2.b, and + * table 11.3.62a.5.b) */ +struct bssgp_ran_inf_x_cont { + enum bssgp_ran_inf_app_id app_id; + uint32_t seq_num; + struct bssgp_rim_pdu_ind pdu_ind; + uint8_t prot_ver; +}; + +static int dec_rim_cont_common(struct bssgp_ran_inf_x_cont *cont, struct tlv_parsed *tp) +{ + if (TLVP_PRES_LEN(tp, BSSGP_IE_RIM_APP_IDENTITY, sizeof(uint8_t))) + cont->app_id = TLVP_VAL(tp, BSSGP_IE_RIM_APP_IDENTITY)[0]; + else + return -EINVAL; + + if (TLVP_PRES_LEN(tp, BSSGP_IE_RIM_SEQ_NR, sizeof(cont->seq_num))) + cont->seq_num = tlvp_val32be(tp, BSSGP_IE_RIM_SEQ_NR); + else + return -EINVAL; + + if (TLVP_PRES_LEN(tp, BSSGP_IE_RIM_PDU_INDICATIONS, sizeof(cont->pdu_ind))) + memcpy(&cont->pdu_ind, TLVP_VAL(tp, BSSGP_IE_RIM_PDU_INDICATIONS), sizeof(cont->pdu_ind)); + else + return -EINVAL; + + if (TLVP_PRES_LEN(tp, BSSGP_IE_RIM_PROTOCOL_VERSION, sizeof(cont->prot_ver))) + cont->prot_ver = TLVP_VAL(tp, BSSGP_IE_RIM_PROTOCOL_VERSION)[0]; + else + cont->prot_ver = 1; + + return 0; +} + +static uint8_t *enc_rim_cont_common(uint8_t *buf, size_t len, const struct bssgp_ran_inf_x_cont *cont) +{ + + uint32_t seq_num = osmo_htonl(cont->seq_num); + uint8_t app_id_temp; + uint8_t *buf_ptr = buf; + + if (len < + TVLV_HDR_MAXLEN * 4 + sizeof(app_id_temp) + sizeof(seq_num) + sizeof(cont->pdu_ind) + + sizeof(cont->prot_ver)) + return NULL; + + app_id_temp = cont->app_id; + buf_ptr = tvlv_put(buf_ptr, BSSGP_IE_RIM_APP_IDENTITY, sizeof(app_id_temp), &app_id_temp); + buf_ptr = tvlv_put(buf_ptr, BSSGP_IE_RIM_SEQ_NR, sizeof(seq_num), (uint8_t *) & seq_num); + buf_ptr = tvlv_put(buf_ptr, BSSGP_IE_RIM_PDU_INDICATIONS, sizeof(cont->pdu_ind), (uint8_t *) & cont->pdu_ind); + if (cont->prot_ver > 0) + buf_ptr = tvlv_put(buf_ptr, BSSGP_IE_RIM_PROTOCOL_VERSION, sizeof(cont->prot_ver), &cont->prot_ver); + + return buf_ptr; +} + +/*! Decode a RAN Information Request RIM Container (3GPP TS 48.018, table 11.3.62a.1.b). + * \param[out] user provided memory for decoded data struct. + * \param[in] buf user provided memory with the encoded value data of the IE. + * \returns 0 on success, -EINVAL on error. */ +int bssgp_dec_ran_inf_req_rim_cont(struct bssgp_ran_inf_req_rim_cont *cont, const uint8_t *buf, size_t len) +{ + int rc; + struct tlv_parsed tp; + + memset(cont, 0, sizeof(*cont)); + + rc = tlv_parse(&tp, &tvlv_att_def, buf, len, 0, 0); + if (rc < 0) + return -EINVAL; + + rc = dec_rim_cont_common((struct bssgp_ran_inf_x_cont *)cont, &tp); + if (rc < 0) + return -EINVAL; + + if (TLVP_PRESENT(&tp, BSSGP_IE_RIM_REQ_APP_CONTAINER)) { + switch (cont->app_id) { + case BSSGP_RAN_INF_APP_ID_NACC: + rc = bssgp_dec_ran_inf_req_app_cont_nacc(&cont->u.app_cont_nacc, + TLVP_VAL(&tp, BSSGP_IE_RIM_REQ_APP_CONTAINER), + TLVP_LEN(&tp, BSSGP_IE_RIM_REQ_APP_CONTAINER)); + break; + case BSSGP_RAN_INF_APP_ID_SI3: + case BSSGP_RAN_INF_APP_ID_MBMS: + case BSSGP_RAN_INF_APP_ID_SON: + case BSSGP_RAN_INF_APP_ID_UTRA_SI: + /* TODO: add parsers for Si3, MBMS, SON, UTRA-SI app containers */ + return -EINVAL; + default: + return -EINVAL; + } + + if (rc < 0) + return rc; + } + + if (TLVP_PRES_LEN(&tp, BSSGP_IE_SON_TRANSFER_APP_ID, 1)) { + cont->son_trans_app_id = TLVP_VAL(&tp, BSSGP_IE_SON_TRANSFER_APP_ID); + cont->son_trans_app_id_len = TLVP_LEN(&tp, BSSGP_IE_SON_TRANSFER_APP_ID); + } + + return 0; +} + +/* Dub a TLVP header into a given buffer. The value part of the IE must start + * at the 2nd octet. Should the length field make a 3 octet TLVP header + * necessary (unlikely, but possible) the value part is moved ahead by one + * octet. The function returns a pointer to the end of value part. */ +static uint8_t *dub_tlvp_header(uint8_t *buf, uint8_t iei, uint16_t len) +{ + uint8_t *buf_ptr = buf; + + buf_ptr[0] = iei; + if (len <= TVLV_MAX_ONEBYTE) { + buf_ptr[1] = (uint8_t) len; + buf_ptr[1] |= 0x80; + buf_ptr += TVLV_HDR_LEN; + } else { + memmove(buf_ptr + 1, buf_ptr, len); + buf_ptr[1] = len >> 8; + buf_ptr[1] = len & 0xff; + buf_ptr += TVLV_HDR_MAXLEN; + } + buf_ptr += len; + + return buf_ptr; +} + +/*! Encode a RAN Information Request RIM Container (3GPP TS 48.018, table 11.3.62a.1.b). + * \param[out] buf user provided memory for the generated value part of the IE. + * \param[in] cont user provided input data struct. + * \returns length of encoded octets, -EINVAL on error. */ +int bssgp_enc_ran_inf_req_rim_cont(uint8_t *buf, size_t len, const struct bssgp_ran_inf_req_rim_cont *cont) +{ + uint8_t *buf_ptr = buf; + int app_cont_len = 0; + int remaining_buf_len; + + buf_ptr = enc_rim_cont_common(buf_ptr, len, (struct bssgp_ran_inf_x_cont *)cont); + if (!buf_ptr) + return -EINVAL; + + remaining_buf_len = len - (int)(buf_ptr - buf); + if (remaining_buf_len <= 0) + return -EINVAL; + + switch (cont->app_id) { + case BSSGP_RAN_INF_APP_ID_NACC: + app_cont_len = + bssgp_enc_ran_inf_req_app_cont_nacc(buf_ptr + TVLV_HDR_LEN, remaining_buf_len - TVLV_HDR_MAXLEN, + &cont->u.app_cont_nacc); + break; + case BSSGP_RAN_INF_APP_ID_SI3: + case BSSGP_RAN_INF_APP_ID_MBMS: + case BSSGP_RAN_INF_APP_ID_SON: + case BSSGP_RAN_INF_APP_ID_UTRA_SI: + /* TODO: add encoders for Si3, MBMS, SON, UTRA-SI app containers */ + return -EINVAL; + default: + return -EINVAL; + } + + if (app_cont_len < 0) + return -EINVAL; + buf_ptr = dub_tlvp_header(buf_ptr, BSSGP_IE_RIM_REQ_APP_CONTAINER, app_cont_len); + + remaining_buf_len = len - (int)(buf_ptr - buf); + if (remaining_buf_len < 0) + return -EINVAL; + + if (cont->son_trans_app_id && cont->son_trans_app_id_len > 0) { + if (remaining_buf_len < cont->son_trans_app_id_len + TVLV_HDR_MAXLEN) + return -EINVAL; + buf_ptr = + tvlv_put(buf_ptr, BSSGP_IE_SON_TRANSFER_APP_ID, cont->son_trans_app_id_len, cont->son_trans_app_id); + } + return (int)(buf_ptr - buf); +} + +/*! Decode a RAN Information RIM Container (3GPP TS 48.018, table 11.3.62a.2.b). + * \param[out] user provided memory for decoded data struct. + * \param[in] buf user provided memory with the encoded value data of the IE. + * \returns 0 on success, -EINVAL on error. */ +int bssgp_dec_ran_inf_rim_cont(struct bssgp_ran_inf_rim_cont *cont, const uint8_t *buf, size_t len) +{ + int rc; + struct tlv_parsed tp; + + memset(cont, 0, sizeof(*cont)); + + rc = tlv_parse(&tp, &tvlv_att_def, buf, len, 0, 0); + if (rc < 0) + return -EINVAL; + + rc = dec_rim_cont_common((struct bssgp_ran_inf_x_cont *)cont, &tp); + if (rc < 0) + return -EINVAL; + + if (TLVP_PRESENT(&tp, BSSGP_IE_RAN_INFO_APP_CONTAINER)) { + switch (cont->app_id) { + case BSSGP_RAN_INF_APP_ID_NACC: + rc = bssgp_dec_ran_inf_app_cont_nacc(&cont->u.app_cont_nacc, + TLVP_VAL(&tp, BSSGP_IE_RAN_INFO_APP_CONTAINER), + TLVP_LEN(&tp, BSSGP_IE_RAN_INFO_APP_CONTAINER)); + break; + case BSSGP_RAN_INF_APP_ID_SI3: + case BSSGP_RAN_INF_APP_ID_MBMS: + case BSSGP_RAN_INF_APP_ID_SON: + case BSSGP_RAN_INF_APP_ID_UTRA_SI: + /* TODO: add parsers for Si3, MBMS, SON, UTRA-SI app containers */ + return -EINVAL; + default: + return -EINVAL; + } + + if (rc < 0) + return rc; + } else if (TLVP_PRESENT(&tp, BSSGP_IE_APP_ERROR_CONTAINER)) { + switch (cont->app_id) { + case BSSGP_RAN_INF_APP_ID_NACC: + rc = bssgp_dec_app_err_cont_nacc(&cont->u.app_err_cont_nacc, + TLVP_VAL(&tp, BSSGP_IE_APP_ERROR_CONTAINER), TLVP_LEN(&tp, + BSSGP_IE_APP_ERROR_CONTAINER)); + break; + case BSSGP_RAN_INF_APP_ID_SI3: + case BSSGP_RAN_INF_APP_ID_MBMS: + case BSSGP_RAN_INF_APP_ID_SON: + case BSSGP_RAN_INF_APP_ID_UTRA_SI: + /* TODO: add parsers for Si3, MBMS, SON, UTRA-SI app containers */ + return -EINVAL; + default: + return -EINVAL; + } + if (rc < 0) + return rc; + cont->app_err = true; + } + + if (TLVP_PRES_LEN(&tp, BSSGP_IE_SON_TRANSFER_APP_ID, 1)) { + cont->son_trans_app_id = TLVP_VAL(&tp, BSSGP_IE_SON_TRANSFER_APP_ID); + cont->son_trans_app_id_len = TLVP_LEN(&tp, BSSGP_IE_SON_TRANSFER_APP_ID); + } + + return 0; +} + +/*! Encode a RAN Information RIM Container (3GPP TS 48.018, table 11.3.62a.2.b). + * \param[out] buf user provided memory for the generated value part of the IE. + * \param[in] cont user provided input data struct. + * \returns length of encoded octets, -EINVAL on error. */ +int bssgp_enc_ran_inf_rim_cont(uint8_t *buf, size_t len, const struct bssgp_ran_inf_rim_cont *cont) +{ + uint8_t *buf_ptr = buf; + int app_cont_len = 0; + int remaining_buf_len; + + buf_ptr = enc_rim_cont_common(buf_ptr, len, (struct bssgp_ran_inf_x_cont *)cont); + if (!buf_ptr) + return -EINVAL; + + remaining_buf_len = len - (int)(buf_ptr - buf); + if (remaining_buf_len <= 0) + return -EINVAL; + + if (cont->app_err) { + switch (cont->app_id) { + case BSSGP_RAN_INF_APP_ID_NACC: + app_cont_len = + bssgp_enc_app_err_cont_nacc(buf_ptr + TVLV_HDR_LEN, remaining_buf_len - TVLV_HDR_MAXLEN, + &cont->u.app_err_cont_nacc); + break; + case BSSGP_RAN_INF_APP_ID_SI3: + case BSSGP_RAN_INF_APP_ID_MBMS: + case BSSGP_RAN_INF_APP_ID_SON: + case BSSGP_RAN_INF_APP_ID_UTRA_SI: + /* TODO: add encoders for Si3, MBMS, SON, UTRA-SI app containers */ + return -EINVAL; + default: + return -EINVAL; + } + if (app_cont_len < 0) + return -EINVAL; + buf_ptr = dub_tlvp_header(buf_ptr, BSSGP_IE_APP_ERROR_CONTAINER, app_cont_len); + } else { + switch (cont->app_id) { + case BSSGP_RAN_INF_APP_ID_NACC: + app_cont_len = + bssgp_enc_ran_inf_app_cont_nacc(buf_ptr + TVLV_HDR_LEN, remaining_buf_len - TVLV_HDR_MAXLEN, + &cont->u.app_cont_nacc); + break; + case BSSGP_RAN_INF_APP_ID_SI3: + case BSSGP_RAN_INF_APP_ID_MBMS: + case BSSGP_RAN_INF_APP_ID_SON: + case BSSGP_RAN_INF_APP_ID_UTRA_SI: + /* TODO: add encoders for Si3, MBMS, SON, UTRA-SI app containers */ + return -EINVAL; + default: + return -EINVAL; + } + if (app_cont_len < 0) + return -EINVAL; + buf_ptr = dub_tlvp_header(buf_ptr, BSSGP_IE_RAN_INFO_APP_CONTAINER, app_cont_len); + } + + remaining_buf_len = len - (int)(buf_ptr - buf); + if (remaining_buf_len < 0) + return -EINVAL; + + if (cont->son_trans_app_id && cont->son_trans_app_id_len > 0) { + if (remaining_buf_len < cont->son_trans_app_id_len + TVLV_HDR_MAXLEN) + return -EINVAL; + buf_ptr = + tvlv_put(buf_ptr, BSSGP_IE_SON_TRANSFER_APP_ID, cont->son_trans_app_id_len, cont->son_trans_app_id); + } + return (int)(buf_ptr - buf); +} + +/*! Decode a RAN Information ACK RIM Container (3GPP TS 48.018, table 11.3.62a.3.b). + * \param[out] user provided memory for decoded data struct. + * \param[in] buf user provided memory with the encoded value data of the IE. + * \returns 0 on success, -EINVAL on error. */ +int bssgp_dec_ran_inf_ack_rim_cont(struct bssgp_ran_inf_ack_rim_cont *cont, const uint8_t *buf, size_t len) +{ + int rc; + struct tlv_parsed tp; + + memset(cont, 0, sizeof(*cont)); + + rc = tlv_parse(&tp, &tvlv_att_def, buf, len, 0, 0); + if (rc < 0) + return -EINVAL; + + if (TLVP_PRES_LEN(&tp, BSSGP_IE_RIM_APP_IDENTITY, sizeof(uint8_t))) + cont->app_id = TLVP_VAL(&tp, BSSGP_IE_RIM_APP_IDENTITY)[0]; + else + return -EINVAL; + + if (TLVP_PRES_LEN(&tp, BSSGP_IE_RIM_SEQ_NR, sizeof(cont->seq_num))) + cont->seq_num = tlvp_val32be(&tp, BSSGP_IE_RIM_SEQ_NR); + else + return -EINVAL; + + if (TLVP_PRES_LEN(&tp, BSSGP_IE_RIM_PROTOCOL_VERSION, sizeof(cont->prot_ver))) + cont->prot_ver = TLVP_VAL(&tp, BSSGP_IE_RIM_PROTOCOL_VERSION)[0]; + else + cont->prot_ver = 1; + + if (TLVP_PRES_LEN(&tp, BSSGP_IE_SON_TRANSFER_APP_ID, 1)) { + cont->son_trans_app_id = TLVP_VAL(&tp, BSSGP_IE_SON_TRANSFER_APP_ID); + cont->son_trans_app_id_len = TLVP_LEN(&tp, BSSGP_IE_SON_TRANSFER_APP_ID); + } + + return 0; +} + +/*! Encode a RAN Information ACK RIM Container (3GPP TS 48.018, table 11.3.62a.3.b). + * \param[out] buf user provided memory for the generated value part of the IE. + * \param[in] cont user provided input data struct. + * \returns length of encoded octets, -EINVAL on error. */ +int bssgp_enc_ran_inf_ack_rim_cont(uint8_t *buf, size_t len, const struct bssgp_ran_inf_ack_rim_cont *cont) +{ + uint8_t *buf_ptr = buf; + uint32_t seq_num = osmo_htonl(cont->seq_num); + uint8_t app_id_temp; + + if (len < + 4 * TVLV_HDR_MAXLEN + sizeof(app_id_temp) + sizeof(seq_num) + sizeof(cont->prot_ver) + + cont->son_trans_app_id_len) + return -EINVAL; + + app_id_temp = cont->app_id; + buf_ptr = tvlv_put(buf_ptr, BSSGP_IE_RIM_APP_IDENTITY, sizeof(app_id_temp), &app_id_temp); + buf_ptr = tvlv_put(buf_ptr, BSSGP_IE_RIM_SEQ_NR, sizeof(seq_num), (uint8_t *) & seq_num); + + if (cont->prot_ver > 0) + buf_ptr = tvlv_put(buf_ptr, BSSGP_IE_RIM_PROTOCOL_VERSION, sizeof(cont->prot_ver), &cont->prot_ver); + + if (cont->son_trans_app_id && cont->son_trans_app_id_len > 0) + buf_ptr = + tvlv_put(buf_ptr, BSSGP_IE_SON_TRANSFER_APP_ID, cont->son_trans_app_id_len, cont->son_trans_app_id); + + return (int)(buf_ptr - buf); +} + +/*! Decode a RAN Information Error RIM Container (3GPP TS 48.018, table 11.3.62a.4.b). + * \param[out] user provided memory for decoded data struct. + * \param[in] buf user provided memory with the encoded value data of the IE. + * \returns 0 on success, -EINVAL on error. */ +int bssgp_dec_ran_inf_err_rim_cont(struct bssgp_ran_inf_err_rim_cont *cont, const uint8_t *buf, size_t len) +{ + int rc; + struct tlv_parsed tp; + + memset(cont, 0, sizeof(*cont)); + + rc = tlv_parse(&tp, &tvlv_att_def, buf, len, 0, 0); + if (rc < 0) + return -EINVAL; + + if (TLVP_PRES_LEN(&tp, BSSGP_IE_RIM_APP_IDENTITY, sizeof(uint8_t))) + cont->app_id = TLVP_VAL(&tp, BSSGP_IE_RIM_APP_IDENTITY)[0]; + else + return -EINVAL; + + if (TLVP_PRES_LEN(&tp, BSSGP_IE_CAUSE, sizeof(cont->cause))) + cont->cause = TLVP_VAL(&tp, BSSGP_IE_CAUSE)[0]; + else + return -EINVAL; + + if (TLVP_PRES_LEN(&tp, BSSGP_IE_RIM_PROTOCOL_VERSION, sizeof(cont->prot_ver))) + cont->prot_ver = TLVP_VAL(&tp, BSSGP_IE_RIM_PROTOCOL_VERSION)[0]; + else + cont->prot_ver = 1; + + if (TLVP_PRESENT(&tp, BSSGP_IE_PDU_IN_ERROR)) { + cont->err_pdu = TLVP_VAL(&tp, BSSGP_IE_PDU_IN_ERROR); + cont->err_pdu_len = TLVP_LEN(&tp, BSSGP_IE_PDU_IN_ERROR); + } else { + return -EINVAL; + } + + if (TLVP_PRES_LEN(&tp, BSSGP_IE_SON_TRANSFER_APP_ID, 1)) { + cont->son_trans_app_id = TLVP_VAL(&tp, BSSGP_IE_SON_TRANSFER_APP_ID); + cont->son_trans_app_id_len = TLVP_LEN(&tp, BSSGP_IE_SON_TRANSFER_APP_ID); + } + + return 0; +} + +/*! Encode a RAN Information Error RIM Container (3GPP TS 48.018, table 11.3.62a.4.b). + * \param[out] buf user provided memory for the generated value part of the IE. + * \param[in] cont user provided input data struct. + * \returns length of encoded octets, -EINVAL on error. */ +int bssgp_enc_ran_inf_err_rim_cont(uint8_t *buf, size_t len, const struct bssgp_ran_inf_err_rim_cont *cont) +{ + uint8_t *buf_ptr = buf; + uint8_t app_id_temp; + + if (len < + TVLV_HDR_MAXLEN * 5 + sizeof(app_id_temp) + sizeof(cont->cause) + sizeof(cont->prot_ver) + + cont->err_pdu_len + cont->son_trans_app_id_len) + return -EINVAL; + + app_id_temp = cont->app_id; + buf_ptr = tvlv_put(buf_ptr, BSSGP_IE_RIM_APP_IDENTITY, sizeof(app_id_temp), &app_id_temp); + buf_ptr = tvlv_put(buf_ptr, BSSGP_IE_CAUSE, sizeof(cont->cause), &cont->cause); + + if (cont->prot_ver > 0) + buf_ptr = tvlv_put(buf_ptr, BSSGP_IE_RIM_PROTOCOL_VERSION, sizeof(cont->prot_ver), &cont->prot_ver); + + if (cont->err_pdu && cont->err_pdu_len > 0) + buf_ptr = tvlv_put(buf_ptr, BSSGP_IE_PDU_IN_ERROR, cont->err_pdu_len, cont->err_pdu); + else + return -EINVAL; + + if (cont->son_trans_app_id && cont->son_trans_app_id_len > 0) + buf_ptr = + tvlv_put(buf_ptr, BSSGP_IE_SON_TRANSFER_APP_ID, cont->son_trans_app_id_len, cont->son_trans_app_id); + + return (int)(buf_ptr - buf); +} + +/*! Decode a RAN Information Application Error RIM Container (3GPP TS 48.018, table 11.3.62a.5.b). + * \param[out] user provided memory for decoded data struct. + * \param[in] buf user provided memory with the encoded value data of the IE. + * \returns 0 on success, -EINVAL on error. */ +int bssgp_dec_ran_inf_app_err_rim_cont(struct bssgp_ran_inf_app_err_rim_cont *cont, const uint8_t *buf, size_t len) +{ + int rc; + struct tlv_parsed tp; + + memset(cont, 0, sizeof(*cont)); + + rc = tlv_parse(&tp, &tvlv_att_def, buf, len, 0, 0); + if (rc < 0) + return -EINVAL; + + rc = dec_rim_cont_common((struct bssgp_ran_inf_x_cont *)cont, &tp); + if (rc < 0) + return -EINVAL; + + switch (cont->app_id) { + case BSSGP_RAN_INF_APP_ID_NACC: + rc = bssgp_dec_app_err_cont_nacc(&cont->u.app_err_cont_nacc, + TLVP_VAL(&tp, BSSGP_IE_APP_ERROR_CONTAINER), TLVP_LEN(&tp, + BSSGP_IE_APP_ERROR_CONTAINER)); + break; + case BSSGP_RAN_INF_APP_ID_SI3: + case BSSGP_RAN_INF_APP_ID_MBMS: + case BSSGP_RAN_INF_APP_ID_SON: + case BSSGP_RAN_INF_APP_ID_UTRA_SI: + /* TODO: add parsers for Si3, MBMS, SON, UTRA-SI app containers */ + return -EINVAL; + default: + return -EINVAL; + } + if (rc < 0) + return rc; + + return 0; +} + +/*! Encode a RAN Information Application Error RIM Container (3GPP TS 48.018, table 11.3.62a.5.b). + * \param[out] buf user provided memory for the generated value part of the IE. + * \param[in] cont user provided input data struct. + * \returns length of encoded octets, -EINVAL on error. */ +int bssgp_enc_ran_inf_app_err_rim_cont(uint8_t *buf, size_t len, const struct bssgp_ran_inf_app_err_rim_cont *cont) +{ + uint8_t *buf_ptr = buf; + int app_cont_len = 0; + int remaining_buf_len; + + buf_ptr = enc_rim_cont_common(buf_ptr, len, (struct bssgp_ran_inf_x_cont *)cont); + if (!buf_ptr) + return -EINVAL; + + remaining_buf_len = len - (int)(buf_ptr - buf); + if (remaining_buf_len <= 0) + return -EINVAL; + + switch (cont->app_id) { + case BSSGP_RAN_INF_APP_ID_NACC: + app_cont_len = + bssgp_enc_app_err_cont_nacc(buf_ptr + TVLV_HDR_LEN, remaining_buf_len - TVLV_HDR_MAXLEN, + &cont->u.app_err_cont_nacc); + break; + case BSSGP_RAN_INF_APP_ID_SI3: + case BSSGP_RAN_INF_APP_ID_MBMS: + case BSSGP_RAN_INF_APP_ID_SON: + case BSSGP_RAN_INF_APP_ID_UTRA_SI: + /* TODO: add encoders for Si3, MBMS, SON, UTRA-SI app containers */ + return -EINVAL; + default: + return -EINVAL; + } + if (app_cont_len < 0) + return -EINVAL; + buf_ptr = dub_tlvp_header(buf_ptr, BSSGP_IE_APP_ERROR_CONTAINER, app_cont_len); + + return (int)(buf_ptr - buf); +} diff --git a/src/gb/libosmogb.map b/src/gb/libosmogb.map index 5c029b0..b012184 100644 --- a/src/gb/libosmogb.map +++ b/src/gb/libosmogb.map @@ -3,7 +3,23 @@ bssgp_cause_str; bssgp_create_cell_id; bssgp_create_rim_ri; +bssgp_dec_app_err_cont_nacc; +bssgp_dec_ran_inf_ack_rim_cont; +bssgp_dec_ran_inf_err_rim_cont; +bssgp_dec_ran_inf_req_app_cont_nacc; +bssgp_dec_ran_inf_req_rim_cont; +bssgp_dec_ran_inf_app_cont_nacc; +bssgp_dec_ran_inf_app_err_rim_cont; +bssgp_dec_ran_inf_rim_cont; bssgp_pdu_str; +bssgp_enc_app_err_cont_nacc; +bssgp_enc_ran_inf_ack_rim_cont; +bssgp_enc_ran_inf_err_rim_cont; +bssgp_enc_ran_inf_req_app_cont_nacc; +bssgp_enc_ran_inf_req_rim_cont; +bssgp_enc_ran_inf_app_cont_nacc; +bssgp_enc_ran_inf_app_err_rim_cont; +bssgp_enc_ran_inf_rim_cont; bssgp_fc_in; bssgp_fc_init; bssgp_fc_ms_init; diff --git a/tests/Makefile.am b/tests/Makefile.am index e0220bd..10306aa 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -75,7 +75,7 @@ endif if ENABLE_GB -check_PROGRAMS += gb/bssgp_fc_test gb/gprs_bssgp_test gb/gprs_ns_test gb/gprs_ns2_test fr/fr_test +check_PROGRAMS += gb/bssgp_fc_test gb/gprs_bssgp_test gb/gprs_bssgp_rim_test gb/gprs_ns_test gb/gprs_ns2_test fr/fr_test endif utils_utils_test_SOURCES = utils/utils_test.c @@ -176,6 +176,10 @@ $(top_builddir)/src/gsm/libosmogsm.la \ $(top_builddir)/src/gb/libosmogb.la +gb_gprs_bssgp_rim_test_SOURCES = gb/gprs_bssgp_rim_test.c +gb_gprs_bssgp_rim_test_LDADD = $(LDADD) $(top_builddir)/src/gb/libosmogb.la $(LIBRARY_DLSYM) \ + $(top_builddir)/src/gb/libosmogb.la + gb_gprs_ns_test_SOURCES = gb/gprs_ns_test.c gb_gprs_ns_test_LDADD = $(LDADD) $(top_builddir)/src/gb/libosmogb.la $(LIBRARY_DLSYM) \ $(top_builddir)/src/vty/libosmovty.la \ @@ -334,6 +338,7 @@ gsm0808/gsm0808_test.ok gb/bssgp_fc_tests.err \ gb/bssgp_fc_tests.ok gb/bssgp_fc_tests.sh \ gb/gprs_bssgp_test.ok gb/gprs_ns_test.ok gea/gea_test.ok \ + gb/gprs_bssgp_rim_test.ok \ gb/gprs_ns2_vty.vty gb/osmoappdesc.py gb/osmo-ns-dummy.cfg \ gb/gprs_ns2_test.ok \ gprs/gprs_test.ok kasumi/kasumi_test.ok \ diff --git a/tests/gb/gprs_bssgp_rim_test.c b/tests/gb/gprs_bssgp_rim_test.c new file mode 100644 index 0000000..8c6a00d --- /dev/null +++ b/tests/gb/gprs_bssgp_rim_test.c @@ -0,0 +1,664 @@ +/* Test routines for the BSSGP implementation in libosmogb + * + * (C) 2020 by sysmocom - s.f.m.c. GmbH + * Author: Philipp Maier + * + * Skeleton based on bssgp_fc_test.c + * (C) 2012 by Harald Welte + * + * SPDX-License-Identifier: GPL-2.0+ + */ + +#undef _GNU_SOURCE +#define _GNU_SOURCE + +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +void dump_bssgp_ran_inf_req_app_cont_nacc(struct bssgp_ran_inf_req_app_cont_nacc *app_cont) +{ + printf(" app_cont: bssgp_ran_inf_req_app_cont_nacc:\n"); + printf(" reprt_cell.rai.lac.plmn.mcc = %u\n", app_cont->reprt_cell.rai.lac.plmn.mcc); + printf(" reprt_cell.rai.lac.plmn.mnc = %u\n", app_cont->reprt_cell.rai.lac.plmn.mnc); + printf(" reprt_cell.rai.lac.plmn.mnc_3_digits = %u\n", app_cont->reprt_cell.rai.lac.plmn.mnc_3_digits); + printf(" reprt_cell.rai.lac.lac = %u\n", app_cont->reprt_cell.rai.lac.lac); + printf(" reprt_cell.rai.rac = %u\n", app_cont->reprt_cell.rai.rac); + printf(" reprt_cell.cell_identity = %04x\n", app_cont->reprt_cell.cell_identity); +} + +void dump_bssgp_ran_inf_req_rim_cont(struct bssgp_ran_inf_req_rim_cont *rim_cont) +{ + printf("bssgp_ran_inf_req_rim_cont:\n"); + printf(" app_id = %02x\n", rim_cont->app_id); + printf(" seq_num = %08x\n", rim_cont->seq_num); + printf(" pdu_ind.ack_requested = %u\n", rim_cont->pdu_ind.ack_requested); + printf(" pdu_ind.pdu_type_ext = %u\n", rim_cont->pdu_ind.pdu_type_ext); + printf(" prot_ver = %u\n", rim_cont->prot_ver); + switch (rim_cont->app_id) { + case BSSGP_RAN_INF_APP_ID_NACC: + dump_bssgp_ran_inf_req_app_cont_nacc(&rim_cont->u.app_cont_nacc); + break; + case BSSGP_RAN_INF_APP_ID_SI3: + case BSSGP_RAN_INF_APP_ID_MBMS: + case BSSGP_RAN_INF_APP_ID_SON: + case BSSGP_RAN_INF_APP_ID_UTRA_SI: + printf(" app_cont: (not implemented yet)\n"); + break; + default: + printf(" app_cont: (illegal application identifier)\n"); + } + if (rim_cont->son_trans_app_id) { + printf(" son_trans_app_id: %s\n", + osmo_hexdump_nospc(rim_cont->son_trans_app_id, rim_cont->son_trans_app_id_len)); + printf(" son_trans_app_id_len: %lu\n", rim_cont->son_trans_app_id_len); + } +} + +static void test_bssgp_dec_ran_inf_req_rim_cont_nacc() +{ + int rc; + struct bssgp_ran_inf_req_rim_cont rim_cont_dec; + uint8_t testvec[] = + { 0x4b, 0x81, 0x01, 0x4c, 0x84, 0x00, 0x00, 0x00, 0x01, 0x4f, 0x81, 0x02, 0x55, 0x81, 0x01, 0x4d, 0x88, + 0x62, 0xf2, 0x24, 0x33, 0x90, 0x00, 0x51, 0xe1 }; + + printf("----- %s START\n", __func__); + + rc = bssgp_dec_ran_inf_req_rim_cont(&rim_cont_dec, testvec, sizeof(testvec)); + printf("rc=%d, ", rc); + if (rc == 0) + dump_bssgp_ran_inf_req_rim_cont(&rim_cont_dec); + + printf("----- %s END\n", __func__); +} + +static void test_bssgp_enc_ran_inf_req_rim_cont_nacc() +{ + int rc; + struct bssgp_ran_inf_req_rim_cont rim_cont = { }; + uint8_t result[256]; + printf("----- %s START\n", __func__); + + rim_cont.app_id = BSSGP_RAN_INF_APP_ID_NACC; + rim_cont.seq_num = 1; + rim_cont.pdu_ind.ack_requested = 0; + rim_cont.pdu_ind.pdu_type_ext = 1; + rim_cont.prot_ver = 1; + rim_cont.son_trans_app_id = NULL; + rim_cont.son_trans_app_id_len = 0; + rim_cont.u.app_cont_nacc.reprt_cell.rai.lac.plmn.mcc = 262; + rim_cont.u.app_cont_nacc.reprt_cell.rai.lac.plmn.mnc = 42; + rim_cont.u.app_cont_nacc.reprt_cell.rai.lac.plmn.mnc_3_digits = 0; + rim_cont.u.app_cont_nacc.reprt_cell.rai.lac.lac = 13200; + rim_cont.u.app_cont_nacc.reprt_cell.rai.rac = 0; + rim_cont.u.app_cont_nacc.reprt_cell.cell_identity = 0x51e1; + + dump_bssgp_ran_inf_req_rim_cont(&rim_cont); + + rc = bssgp_enc_ran_inf_req_rim_cont(result, sizeof(result), &rim_cont); + printf("rc=%d, ", rc); + if (rc > 0) + printf("result=%s", osmo_hexdump_nospc(result, rc)); + printf("\n"); + printf("----- %s END\n", __func__); +} + +static void dump_bssgp_ran_inf_app_cont_nacc(struct bssgp_ran_inf_app_cont_nacc *app_cont) +{ + unsigned int i; + unsigned int silen; + printf(" app_cont: bssgp_ran_inf_app_cont_nacc:\n"); + printf(" reprt_cell.rai.lac.plmn.mcc = %u\n", app_cont->reprt_cell.rai.lac.plmn.mcc); + printf(" reprt_cell.rai.lac.plmn.mnc = %u\n", app_cont->reprt_cell.rai.lac.plmn.mnc); + printf(" reprt_cell.rai.lac.plmn.mnc_3_digits = %u\n", app_cont->reprt_cell.rai.lac.plmn.mnc_3_digits); + printf(" reprt_cell.rai.lac.lac = %u\n", app_cont->reprt_cell.rai.lac.lac); + printf(" reprt_cell.rai.rac = %u\n", app_cont->reprt_cell.rai.rac); + printf(" reprt_cell.cell_identity = %04x\n", app_cont->reprt_cell.cell_identity); + printf(" type_psi = %u\n", app_cont->type_psi); + printf(" num_si = %u\n", app_cont->num_si); + + if (app_cont->type_psi) + silen = 22; + else + silen = 21; + + for (i = 0; i < app_cont->num_si; i++) + printf(" si[%u] = %s\n", i, osmo_hexdump_nospc(app_cont->si[i], silen)); +} + +static void dump_bssgp_app_err_cont_nacc(struct bssgp_app_err_cont_nacc *app_cont) +{ + printf(" app_err_cont: bssgp_app_err_cont_nacc:\n"); + printf(" macc_cause = %02x\n", app_cont->nacc_cause); + if (app_cont->err_app_cont) { + printf(" err_app_cont: %s\n", osmo_hexdump_nospc(app_cont->err_app_cont, app_cont->err_app_cont_len)); + printf(" err_app_cont_len: %lu\n", app_cont->err_app_cont_len); + } +} + +static void dump_bssgp_ran_inf_rim_cont(struct bssgp_ran_inf_rim_cont *rim_cont) +{ + printf("bssgp_ran_inf_rim_cont:\n"); + printf(" app_id = %02x\n", rim_cont->app_id); + printf(" seq_num = %08x\n", rim_cont->seq_num); + printf(" pdu_ind.ack_requested = %u\n", rim_cont->pdu_ind.ack_requested); + printf(" pdu_ind.pdu_type_ext = %u\n", rim_cont->pdu_ind.pdu_type_ext); + printf(" prot_ver = %u\n", rim_cont->prot_ver); + printf(" app_err = %u\n", rim_cont->app_err); + if (rim_cont->app_err) { + switch (rim_cont->app_id) { + case BSSGP_RAN_INF_APP_ID_NACC: + dump_bssgp_app_err_cont_nacc(&rim_cont->u.app_err_cont_nacc); + break; + case BSSGP_RAN_INF_APP_ID_SI3: + case BSSGP_RAN_INF_APP_ID_MBMS: + case BSSGP_RAN_INF_APP_ID_SON: + case BSSGP_RAN_INF_APP_ID_UTRA_SI: + printf(" app_err_cont: (not implemented yet)\n"); + break; + default: + printf(" app_err_cont: (illegal application identifier)\n"); + } + } else { + switch (rim_cont->app_id) { + case BSSGP_RAN_INF_APP_ID_NACC: + dump_bssgp_ran_inf_app_cont_nacc(&rim_cont->u.app_cont_nacc); + break; + case BSSGP_RAN_INF_APP_ID_SI3: + case BSSGP_RAN_INF_APP_ID_MBMS: + case BSSGP_RAN_INF_APP_ID_SON: + case BSSGP_RAN_INF_APP_ID_UTRA_SI: + printf(" app_cont: (not implemented yet)\n"); + break; + default: + printf(" app_cont: (illegal application identifier)\n"); + } + } + if (rim_cont->son_trans_app_id) { + printf(" son_trans_app_id: %s\n", + osmo_hexdump_nospc(rim_cont->son_trans_app_id, rim_cont->son_trans_app_id_len)); + printf(" son_trans_app_id_len: %lu\n", rim_cont->son_trans_app_id_len); + } +} + +static void test_bssgp_dec_ran_inf_rim_cont_nacc() +{ + int rc; + struct bssgp_ran_inf_rim_cont rim_cont_dec; + uint8_t testvec[] = + { 0x4b, 0x81, 0x01, 0x4c, 0x84, 0x00, 0x00, 0x00, 0x02, 0x4f, 0x81, 0x02, 0x55, 0x81, 0x01, 0x4e, 0xc8, + 0x62, 0xf2, 0x24, 0x33, 0x4f, 0x00, 0x51, 0xe0, 0x06, 0x19, 0x8f, 0xb1, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x2b, 0x1b, 0x75, 0x30, 0x00, 0xf1, 0x10, + 0x23, 0x6e, + 0xc9, 0x03, 0x3c, 0x27, 0x47, 0x40, 0x79, 0x00, 0x00, 0x3c, 0x0b, 0x2b, 0x2b, 0x00, 0x90, 0x00, 0x18, + 0x5a, 0x6f, + 0xc9, 0xe0, 0x84, 0x10, 0xab, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b + }; + + printf("----- %s START\n", __func__); + + rc = bssgp_dec_ran_inf_rim_cont(&rim_cont_dec, testvec, sizeof(testvec)); + printf("rc=%d, ", rc); + if (rc == 0) + dump_bssgp_ran_inf_rim_cont(&rim_cont_dec); + + printf("----- %s END\n", __func__); +} + +static void test_bssgp_dec_ran_inf_rim_cont_err_nacc() +{ + int rc; + struct bssgp_ran_inf_rim_cont rim_cont_dec; + uint8_t testvec[] = + { 0x4b, 0x81, 0x01, 0x4c, 0x84, 0x00, 0x00, 0x00, 0x01, 0x4f, 0x81, 0x02, 0x55, 0x81, 0x01, 0x56, 0x86, + 0x01, 0xaa, 0xbb, 0xcc, 0xdd, 0xee }; + + printf("----- %s START\n", __func__); + + rc = bssgp_dec_ran_inf_rim_cont(&rim_cont_dec, testvec, sizeof(testvec)); + printf("rc=%d, ", rc); + if (rc == 0) + dump_bssgp_ran_inf_rim_cont(&rim_cont_dec); + + printf("----- %s END\n", __func__); +} + +static void test_bssgp_enc_ran_inf_rim_cont_nacc() +{ + int rc; + struct bssgp_ran_inf_rim_cont rim_cont = { }; + + uint8_t si1[] = + { 0x19, 0x8f, 0xb1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x79, 0x00, 0x00, 0x2b + }; + uint8_t si3[] = + { 0x1b, 0x75, 0x30, 0x00, 0xf1, 0x10, 0x23, 0x6e, 0xc9, 0x03, 0x3c, 0x27, 0x47, 0x40, 0x79, 0x00, 0x00, + 0x3c, 0x0b, 0x2b, 0x2b + }; + uint8_t si13[] = + { 0x00, 0x90, 0x00, 0x18, 0x5a, 0x6f, 0xc9, 0xe0, 0x84, 0x10, 0xab, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, + 0x2b, 0x2b, 0x2b, 0x2b + }; + + uint8_t result[256]; + printf("----- %s START\n", __func__); + + rim_cont.app_id = BSSGP_RAN_INF_APP_ID_NACC; + rim_cont.seq_num = 1; + rim_cont.pdu_ind.ack_requested = 0; + rim_cont.pdu_ind.pdu_type_ext = 1; + rim_cont.prot_ver = 1; + rim_cont.son_trans_app_id = NULL; + rim_cont.son_trans_app_id_len = 0; + rim_cont.app_err = false; + rim_cont.u.app_cont_nacc.reprt_cell.rai.lac.plmn.mcc = 262; + rim_cont.u.app_cont_nacc.reprt_cell.rai.lac.plmn.mnc = 42; + rim_cont.u.app_cont_nacc.reprt_cell.rai.lac.plmn.mnc_3_digits = 0; + rim_cont.u.app_cont_nacc.reprt_cell.rai.lac.lac = 13135; + rim_cont.u.app_cont_nacc.reprt_cell.rai.rac = 0; + rim_cont.u.app_cont_nacc.reprt_cell.cell_identity = 0x51e0; + rim_cont.u.app_cont_nacc.type_psi = 0; + rim_cont.u.app_cont_nacc.num_si = 3; + rim_cont.u.app_cont_nacc.si[0] = si1; + rim_cont.u.app_cont_nacc.si[1] = si3; + rim_cont.u.app_cont_nacc.si[2] = si13; + + dump_bssgp_ran_inf_rim_cont(&rim_cont); + + rc = bssgp_enc_ran_inf_rim_cont(result, sizeof(result), &rim_cont); + printf("rc=%d, ", rc); + if (rc > 0) + printf("result=%s", osmo_hexdump_nospc(result, rc)); + printf("\n"); + printf("----- %s END\n", __func__); +} + +static void test_bssgp_enc_ran_inf_rim_cont_err_nacc() +{ + int rc; + struct bssgp_ran_inf_rim_cont rim_cont = { }; + uint8_t err_app_cont[] = { 0xaa, 0xbb, 0xcc, 0xdd, 0xee }; + + uint8_t result[256]; + printf("----- %s START\n", __func__); + + rim_cont.app_id = BSSGP_RAN_INF_APP_ID_NACC; + rim_cont.seq_num = 1; + rim_cont.pdu_ind.ack_requested = 0; + rim_cont.pdu_ind.pdu_type_ext = 1; + rim_cont.prot_ver = 1; + rim_cont.son_trans_app_id = NULL; + rim_cont.son_trans_app_id_len = 0; + rim_cont.app_err = true; + rim_cont.u.app_err_cont_nacc.nacc_cause = BSSGP_NACC_CAUSE_SYNTAX_ERR; + rim_cont.u.app_err_cont_nacc.err_app_cont = err_app_cont; + rim_cont.u.app_err_cont_nacc.err_app_cont_len = sizeof(err_app_cont); + dump_bssgp_ran_inf_rim_cont(&rim_cont); + + rc = bssgp_enc_ran_inf_rim_cont(result, sizeof(result), &rim_cont); + printf("rc=%d, ", rc); + if (rc > 0) + printf("result=%s", osmo_hexdump_nospc(result, rc)); + printf("\n"); + printf("----- %s END\n", __func__); +} + +static void dump_bssgp_ran_inf_ack_rim_cont(struct bssgp_ran_inf_ack_rim_cont *rim_cont) +{ + printf("bssgp_ran_inf_ack_rim_cont:\n"); + printf(" app_id = %02x\n", rim_cont->app_id); + printf(" seq_num = %08x\n", rim_cont->seq_num); + printf(" prot_ver = %u\n", rim_cont->prot_ver); + if (rim_cont->son_trans_app_id) { + printf(" son_trans_app_id: %s\n", + osmo_hexdump_nospc(rim_cont->son_trans_app_id, rim_cont->son_trans_app_id_len)); + printf(" son_trans_app_id_len: %lu\n", rim_cont->son_trans_app_id_len); + } +} + +static void test_bssgp_dec_ran_inf_ack_rim_cont() +{ + int rc; + struct bssgp_ran_inf_ack_rim_cont rim_cont_dec; + uint8_t testvec[] = { 0x4b, 0x81, 0x01, 0x4c, 0x84, 0x00, 0x00, 0x00, 0x01, 0x55, 0x81, 0x01 }; + + printf("----- %s START\n", __func__); + + rc = bssgp_dec_ran_inf_ack_rim_cont(&rim_cont_dec, testvec, sizeof(testvec)); + printf("rc=%d, ", rc); + if (rc == 0) + dump_bssgp_ran_inf_ack_rim_cont(&rim_cont_dec); + + printf("----- %s END\n", __func__); +} + +static void test_bssgp_enc_ran_inf_ack_rim_cont() +{ + int rc; + struct bssgp_ran_inf_ack_rim_cont rim_cont = { }; + uint8_t result[256]; + printf("----- %s START\n", __func__); + + rim_cont.app_id = BSSGP_RAN_INF_APP_ID_NACC; + rim_cont.seq_num = 1; + rim_cont.prot_ver = 1; + rim_cont.son_trans_app_id = NULL; + rim_cont.son_trans_app_id_len = 0; + dump_bssgp_ran_inf_ack_rim_cont(&rim_cont); + + rc = bssgp_enc_ran_inf_ack_rim_cont(result, sizeof(result), &rim_cont); + printf("rc=%d, ", rc); + if (rc > 0) + printf("result=%s", osmo_hexdump_nospc(result, rc)); + printf("\n"); + printf("----- %s END\n", __func__); +} + +void dump_bssgp_ran_inf_err_rim_cont(struct bssgp_ran_inf_err_rim_cont *rim_cont) +{ + printf("bssgp_ran_inf_err_rim_cont:\n"); + printf(" app_id = %02x\n", rim_cont->app_id); + printf(" cause = %02x\n", rim_cont->cause); + printf(" prot_ver = %u\n", rim_cont->prot_ver); + if (rim_cont->err_pdu) { + printf(" err_pdu: %s\n", osmo_hexdump_nospc(rim_cont->err_pdu, rim_cont->err_pdu_len)); + printf(" err_pdu_len: %lu\n", rim_cont->err_pdu_len); + } + if (rim_cont->son_trans_app_id) { + printf(" son_trans_app_id: %s\n", + osmo_hexdump_nospc(rim_cont->son_trans_app_id, rim_cont->son_trans_app_id_len)); + printf(" son_trans_app_id_len: %lu\n", rim_cont->son_trans_app_id_len); + } +} + +static void test_bssgp_dec_ran_inf_err_rim_cont() +{ + int rc; + struct bssgp_ran_inf_err_rim_cont rim_cont_dec; + uint8_t testvec[] = + { 0x4b, 0x81, 0x17, 0x07, 0x81, 0x2b, 0x55, 0x81, 0x01, 0x15, 0x85, 0xaa, 0xbb, 0xcc, 0xdd, 0xee }; + + printf("----- %s START\n", __func__); + + rc = bssgp_dec_ran_inf_err_rim_cont(&rim_cont_dec, testvec, sizeof(testvec)); + printf("rc=%d, ", rc); + if (rc == 0) + dump_bssgp_ran_inf_err_rim_cont(&rim_cont_dec); + + printf("----- %s END\n", __func__); +} + +static void test_bssgp_enc_ran_inf_err_rim_cont() +{ + int rc; + struct bssgp_ran_inf_err_rim_cont rim_cont = { }; + uint8_t err_pdu[] = { 0xaa, 0xbb, 0xcc, 0xdd, 0xee }; + uint8_t result[256]; + printf("----- %s START\n", __func__); + + rim_cont.app_id = 23; + rim_cont.cause = 0x2b; + rim_cont.prot_ver = 1; + rim_cont.err_pdu = err_pdu; + rim_cont.err_pdu_len = sizeof(err_pdu); + rim_cont.son_trans_app_id = NULL; + rim_cont.son_trans_app_id_len = 0; + dump_bssgp_ran_inf_err_rim_cont(&rim_cont); + + rc = bssgp_enc_ran_inf_err_rim_cont(result, sizeof(result), &rim_cont); + printf("rc=%d, ", rc); + if (rc > 0) + printf("result=%s", osmo_hexdump_nospc(result, rc)); + printf("\n"); + printf("----- %s END\n", __func__); +} + +void dump_bssgp_ran_inf_app_err_rim_cont(struct bssgp_ran_inf_app_err_rim_cont *rim_cont) +{ + printf("bssgp_ran_inf_app_err_rim_cont:\n"); + printf(" app_id = %02x\n", rim_cont->app_id); + printf(" seq_num = %08x\n", rim_cont->seq_num); + printf(" pdu_ind.ack_requested = %u\n", rim_cont->pdu_ind.ack_requested); + printf(" pdu_ind.pdu_type_ext = %u\n", rim_cont->pdu_ind.pdu_type_ext); + printf(" prot_ver = %u\n", rim_cont->prot_ver); + switch (rim_cont->app_id) { + case BSSGP_RAN_INF_APP_ID_NACC: + dump_bssgp_app_err_cont_nacc(&rim_cont->u.app_err_cont_nacc); + break; + case BSSGP_RAN_INF_APP_ID_SI3: + case BSSGP_RAN_INF_APP_ID_MBMS: + case BSSGP_RAN_INF_APP_ID_SON: + case BSSGP_RAN_INF_APP_ID_UTRA_SI: + printf(" app_err_cont: (not implemented yet)\n"); + break; + default: + printf(" app_err_cont: (illegal application identifier)\n"); + } +} + +static void test_bssgp_dec_ran_inf_app_err_rim_cont_nacc() +{ + int rc; + struct bssgp_ran_inf_app_err_rim_cont rim_cont_dec; + uint8_t testvec[] = + { 0x4b, 0x81, 0x01, 0x4c, 0x84, 0x00, 0x00, 0x00, 0x01, 0x4f, 0x81, 0x02, 0x55, 0x81, 0x01, 0x56, 0x85, + 0xaa, 0xbb, 0xcc, 0xdd, 0xee + }; + + printf("----- %s START\n", __func__); + + rc = bssgp_dec_ran_inf_app_err_rim_cont(&rim_cont_dec, testvec, sizeof(testvec)); + printf("rc=%d, ", rc); + if (rc == 0) + dump_bssgp_ran_inf_app_err_rim_cont(&rim_cont_dec); + + printf("----- %s END\n", __func__); +} + +static void test_bssgp_enc_ran_inf_app_err_rim_cont_nacc() +{ + int rc; + struct bssgp_ran_inf_app_err_rim_cont rim_cont = { }; + uint8_t err_app_cont[] = { 0xaa, 0xbb, 0xcc, 0xdd, 0xee }; + uint8_t result[256]; + + printf("----- %s START\n", __func__); + rim_cont.app_id = BSSGP_RAN_INF_APP_ID_NACC; + rim_cont.seq_num = 1; + rim_cont.pdu_ind.ack_requested = 0; + rim_cont.pdu_ind.pdu_type_ext = 1; + rim_cont.prot_ver = 1; + rim_cont.u.app_err_cont_nacc.nacc_cause = BSSGP_NACC_CAUSE_SYNTAX_ERR; + rim_cont.u.app_err_cont_nacc.err_app_cont = err_app_cont; + rim_cont.u.app_err_cont_nacc.err_app_cont_len = sizeof(err_app_cont); + dump_bssgp_ran_inf_app_err_rim_cont(&rim_cont); + + rc = bssgp_enc_ran_inf_app_err_rim_cont(result, sizeof(result), &rim_cont); + printf("rc=%d, ", rc); + if (rc > 0) + printf("result=%s", osmo_hexdump_nospc(result, rc)); + printf("\n"); + printf("----- %s END\n", __func__); +} + +static void test_bssgp_dec_ran_inf_req_app_cont_nacc() +{ + int rc; + struct bssgp_ran_inf_req_app_cont_nacc app_cont_dec; + uint8_t testvec[] = { 0x62, 0xf2, 0x24, 0x33, 0x90, 0x00, 0x51, 0xe1 }; + + printf("----- %s START\n", __func__); + + rc = bssgp_dec_ran_inf_req_app_cont_nacc(&app_cont_dec, testvec, sizeof(testvec)); + printf("rc=%d, ", rc); + if (rc == 0) + dump_bssgp_ran_inf_req_app_cont_nacc(&app_cont_dec); + + printf("----- %s END\n", __func__); +} + +static void test_bssgp_enc_ran_inf_req_app_cont_nacc() +{ + int rc; + struct bssgp_ran_inf_req_app_cont_nacc app_cont = { }; + uint8_t result[256]; + printf("----- %s START\n", __func__); + + app_cont.reprt_cell.rai.lac.plmn.mcc = 262; + app_cont.reprt_cell.rai.lac.plmn.mnc = 42; + app_cont.reprt_cell.rai.lac.plmn.mnc_3_digits = 0; + app_cont.reprt_cell.rai.lac.lac = 13200; + app_cont.reprt_cell.rai.rac = 0; + app_cont.reprt_cell.cell_identity = 0x51e1; + dump_bssgp_ran_inf_req_app_cont_nacc(&app_cont); + + rc = bssgp_enc_ran_inf_req_app_cont_nacc(result, sizeof(result), &app_cont); + printf("rc=%d, ", rc); + if (rc > 0) + printf("result=%s", osmo_hexdump_nospc(result, rc)); + printf("\n"); + printf("----- %s END\n", __func__); +} + +static void test_bssgp_dec_ran_inf_app_cont_nacc() +{ + int rc; + struct bssgp_ran_inf_app_cont_nacc app_cont_dec; + uint8_t testvec[] = + { 0x62, 0xf2, 0x24, 0x33, 0x4f, 0x00, 0x51, 0xe0, 0x06, 0x19, 0x8f, 0xb1, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x2b, 0x1b, 0x75, 0x30, 0x00, 0xf1, 0x10, + 0x23, 0x6e, 0xc9, 0x03, 0x3c, 0x27, 0x47, 0x40, 0x79, 0x00, 0x00, 0x3c, 0x0b, 0x2b, 0x2b, 0x00, 0x90, 0x00, 0x18, + 0x5a, 0x6f, 0xc9, 0xe0, 0x84, 0x10, 0xab, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b }; + + printf("----- %s START\n", __func__); + + rc = bssgp_dec_ran_inf_app_cont_nacc(&app_cont_dec, testvec, sizeof(testvec)); + printf("rc=%d, ", rc); + if (rc == 0) + dump_bssgp_ran_inf_app_cont_nacc(&app_cont_dec); + + printf("----- %s END\n", __func__); +} + +static void test_bssgp_enc_ran_inf_app_cont_nacc() +{ + int rc; + struct bssgp_ran_inf_app_cont_nacc app_cont = { }; + + uint8_t si1[] = + { 0x19, 0x8f, 0xb1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x79, 0x00, 0x00, 0x2b }; + uint8_t si3[] = + { 0x1b, 0x75, 0x30, 0x00, 0xf1, 0x10, 0x23, 0x6e, 0xc9, 0x03, 0x3c, 0x27, 0x47, 0x40, 0x79, 0x00, 0x00, + 0x3c, 0x0b, 0x2b, 0x2b }; + uint8_t si13[] = + { 0x00, 0x90, 0x00, 0x18, 0x5a, 0x6f, 0xc9, 0xe0, 0x84, 0x10, 0xab, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, + 0x2b, 0x2b, 0x2b, 0x2b }; + + uint8_t result[256]; + printf("----- %s START\n", __func__); + + app_cont.reprt_cell.rai.lac.plmn.mcc = 262; + app_cont.reprt_cell.rai.lac.plmn.mnc = 42; + app_cont.reprt_cell.rai.lac.plmn.mnc_3_digits = 0; + app_cont.reprt_cell.rai.lac.lac = 13135; + app_cont.reprt_cell.rai.rac = 0; + app_cont.reprt_cell.cell_identity = 0x51e1; + app_cont.type_psi = false; + app_cont.num_si = 3; + app_cont.si[0] = si1; + app_cont.si[1] = si3; + app_cont.si[2] = si13; + dump_bssgp_ran_inf_app_cont_nacc(&app_cont); + + rc = bssgp_enc_ran_inf_app_cont_nacc(result, sizeof(result), &app_cont); + printf("rc=%d, ", rc); + if (rc > 0) + printf("result=%s", osmo_hexdump_nospc(result, rc)); + printf("\n"); + printf("----- %s END\n", __func__); +} + +static void test_bssgp_dec_app_err_cont_nacc() +{ + int rc; + struct bssgp_app_err_cont_nacc app_cont_dec; + uint8_t testvec[] = { 0x01, 0xaa, 0xbb, 0xcc, 0xdd, 0xee }; + + printf("----- %s START\n", __func__); + + rc = bssgp_dec_app_err_cont_nacc(&app_cont_dec, testvec, sizeof(testvec)); + printf("rc=%d, ", rc); + if (rc == 0) + dump_bssgp_app_err_cont_nacc(&app_cont_dec); + + printf("----- %s END\n", __func__); +} + +static void test_bssgp_enc_app_err_cont_nacc() +{ + int rc; + struct bssgp_app_err_cont_nacc app_cont = { }; + uint8_t err_app_cont[] = { 0xaa, 0xbb, 0xcc, 0xdd, 0xee }; + uint8_t result[256]; + printf("----- %s START\n", __func__); + + app_cont.nacc_cause = BSSGP_NACC_CAUSE_SYNTAX_ERR; + app_cont.err_app_cont = err_app_cont; + app_cont.err_app_cont_len = sizeof(err_app_cont); + dump_bssgp_app_err_cont_nacc(&app_cont); + + rc = bssgp_enc_app_err_cont_nacc(result, sizeof(result), &app_cont); + printf("rc=%d, ", rc); + if (rc > 0) + printf("result=%s", osmo_hexdump_nospc(result, rc)); + printf("\n"); + printf("----- %s END\n", __func__); +} + +int bssgp_prim_cb(struct osmo_prim_hdr *oph, void *ctx) +{ + return 0; +} + +int main(int argc, char **argv) +{ + printf("===== BSSGP RIM test START\n"); + + /* RIM containers */ + test_bssgp_dec_ran_inf_req_rim_cont_nacc(); + test_bssgp_enc_ran_inf_req_rim_cont_nacc(); + test_bssgp_dec_ran_inf_rim_cont_nacc(); + test_bssgp_dec_ran_inf_rim_cont_err_nacc(); + test_bssgp_enc_ran_inf_rim_cont_nacc(); + test_bssgp_enc_ran_inf_rim_cont_err_nacc(); + test_bssgp_dec_ran_inf_ack_rim_cont(); + test_bssgp_enc_ran_inf_ack_rim_cont(); + test_bssgp_dec_ran_inf_err_rim_cont(); + test_bssgp_enc_ran_inf_err_rim_cont(); + test_bssgp_dec_ran_inf_app_err_rim_cont_nacc(); + test_bssgp_enc_ran_inf_app_err_rim_cont_nacc(); + + /* Application containers */ + test_bssgp_dec_ran_inf_req_app_cont_nacc(); + test_bssgp_enc_ran_inf_req_app_cont_nacc(); + test_bssgp_dec_ran_inf_app_cont_nacc(); + test_bssgp_enc_ran_inf_app_cont_nacc(); + test_bssgp_dec_app_err_cont_nacc(); + test_bssgp_enc_app_err_cont_nacc(); + + printf("===== BSSGP RIM test END\n\n"); + + exit(EXIT_SUCCESS); +} diff --git a/tests/gb/gprs_bssgp_rim_test.ok b/tests/gb/gprs_bssgp_rim_test.ok new file mode 100644 index 0000000..d075ca3 --- /dev/null +++ b/tests/gb/gprs_bssgp_rim_test.ok @@ -0,0 +1,220 @@ +===== BSSGP RIM test START +----- test_bssgp_dec_ran_inf_req_rim_cont_nacc START +rc=0, bssgp_ran_inf_req_rim_cont: + app_id = 01 + seq_num = 00000001 + pdu_ind.ack_requested = 0 + pdu_ind.pdu_type_ext = 1 + prot_ver = 1 + app_cont: bssgp_ran_inf_req_app_cont_nacc: + reprt_cell.rai.lac.plmn.mcc = 262 + reprt_cell.rai.lac.plmn.mnc = 42 + reprt_cell.rai.lac.plmn.mnc_3_digits = 0 + reprt_cell.rai.lac.lac = 13200 + reprt_cell.rai.rac = 0 + reprt_cell.cell_identity = 51e1 +----- test_bssgp_dec_ran_inf_req_rim_cont_nacc END +----- test_bssgp_enc_ran_inf_req_rim_cont_nacc START +bssgp_ran_inf_req_rim_cont: + app_id = 01 + seq_num = 00000001 + pdu_ind.ack_requested = 0 + pdu_ind.pdu_type_ext = 1 + prot_ver = 1 + app_cont: bssgp_ran_inf_req_app_cont_nacc: + reprt_cell.rai.lac.plmn.mcc = 262 + reprt_cell.rai.lac.plmn.mnc = 42 + reprt_cell.rai.lac.plmn.mnc_3_digits = 0 + reprt_cell.rai.lac.lac = 13200 + reprt_cell.rai.rac = 0 + reprt_cell.cell_identity = 51e1 +rc=25, result=4b81014c84000000014f81025581014d8862f22433900051e1 +----- test_bssgp_enc_ran_inf_req_rim_cont_nacc END +----- test_bssgp_dec_ran_inf_rim_cont_nacc START +rc=0, bssgp_ran_inf_rim_cont: + app_id = 01 + seq_num = 00000002 + pdu_ind.ack_requested = 0 + pdu_ind.pdu_type_ext = 1 + prot_ver = 1 + app_err = 0 + app_cont: bssgp_ran_inf_app_cont_nacc: + reprt_cell.rai.lac.plmn.mcc = 262 + reprt_cell.rai.lac.plmn.mnc = 42 + reprt_cell.rai.lac.plmn.mnc_3_digits = 0 + reprt_cell.rai.lac.lac = 13135 + reprt_cell.rai.rac = 0 + reprt_cell.cell_identity = 51e0 + type_psi = 0 + num_si = 3 + si[0] = 198fb100000000000000000000000000007900002b + si[1] = 1b753000f110236ec9033c2747407900003c0b2b2b + si[2] = 009000185a6fc9e08410ab2b2b2b2b2b2b2b2b2b2b +----- test_bssgp_dec_ran_inf_rim_cont_nacc END +----- test_bssgp_dec_ran_inf_rim_cont_err_nacc START +rc=0, bssgp_ran_inf_rim_cont: + app_id = 01 + seq_num = 00000001 + pdu_ind.ack_requested = 0 + pdu_ind.pdu_type_ext = 1 + prot_ver = 1 + app_err = 1 + app_err_cont: bssgp_app_err_cont_nacc: + macc_cause = 01 + err_app_cont: aabbccddee + err_app_cont_len: 5 +----- test_bssgp_dec_ran_inf_rim_cont_err_nacc END +----- test_bssgp_enc_ran_inf_rim_cont_nacc START +bssgp_ran_inf_rim_cont: + app_id = 01 + seq_num = 00000001 + pdu_ind.ack_requested = 0 + pdu_ind.pdu_type_ext = 1 + prot_ver = 1 + app_err = 0 + app_cont: bssgp_ran_inf_app_cont_nacc: + reprt_cell.rai.lac.plmn.mcc = 262 + reprt_cell.rai.lac.plmn.mnc = 42 + reprt_cell.rai.lac.plmn.mnc_3_digits = 0 + reprt_cell.rai.lac.lac = 13135 + reprt_cell.rai.rac = 0 + reprt_cell.cell_identity = 51e0 + type_psi = 0 + num_si = 3 + si[0] = 198fb100000000000000000000000000007900002b + si[1] = 1b753000f110236ec9033c2747407900003c0b2b2b + si[2] = 009000185a6fc9e08410ab2b2b2b2b2b2b2b2b2b2b +rc=89, result=4b81014c84000000014f81025581014ec862f224334f0051e006198fb100000000000000000000000000007900002b1b753000f110236ec9033c2747407900003c0b2b2b009000185a6fc9e08410ab2b2b2b2b2b2b2b2b2b2b +----- test_bssgp_enc_ran_inf_rim_cont_nacc END +----- test_bssgp_enc_ran_inf_rim_cont_err_nacc START +bssgp_ran_inf_rim_cont: + app_id = 01 + seq_num = 00000001 + pdu_ind.ack_requested = 0 + pdu_ind.pdu_type_ext = 1 + prot_ver = 1 + app_err = 1 + app_err_cont: bssgp_app_err_cont_nacc: + macc_cause = 01 + err_app_cont: aabbccddee + err_app_cont_len: 5 +rc=23, result=4b81014c84000000014f8102558101568601aabbccddee +----- test_bssgp_enc_ran_inf_rim_cont_err_nacc END +----- test_bssgp_dec_ran_inf_ack_rim_cont START +rc=0, bssgp_ran_inf_ack_rim_cont: + app_id = 01 + seq_num = 00000001 + prot_ver = 1 +----- test_bssgp_dec_ran_inf_ack_rim_cont END +----- test_bssgp_enc_ran_inf_ack_rim_cont START +bssgp_ran_inf_ack_rim_cont: + app_id = 01 + seq_num = 00000001 + prot_ver = 1 +rc=12, result=4b81014c8400000001558101 +----- test_bssgp_enc_ran_inf_ack_rim_cont END +----- test_bssgp_dec_ran_inf_err_rim_cont START +rc=0, bssgp_ran_inf_err_rim_cont: + app_id = 17 + cause = 2b + prot_ver = 1 + err_pdu: aabbccddee + err_pdu_len: 5 +----- test_bssgp_dec_ran_inf_err_rim_cont END +----- test_bssgp_enc_ran_inf_err_rim_cont START +bssgp_ran_inf_err_rim_cont: + app_id = 17 + cause = 2b + prot_ver = 1 + err_pdu: aabbccddee + err_pdu_len: 5 +rc=16, result=4b811707812b5581011585aabbccddee +----- test_bssgp_enc_ran_inf_err_rim_cont END +----- test_bssgp_dec_ran_inf_app_err_rim_cont_nacc START +rc=0, bssgp_ran_inf_app_err_rim_cont: + app_id = 01 + seq_num = 00000001 + pdu_ind.ack_requested = 0 + pdu_ind.pdu_type_ext = 1 + prot_ver = 1 + app_err_cont: bssgp_app_err_cont_nacc: + macc_cause = aa + err_app_cont: bbccddee + err_app_cont_len: 4 +----- test_bssgp_dec_ran_inf_app_err_rim_cont_nacc END +----- test_bssgp_enc_ran_inf_app_err_rim_cont_nacc START +bssgp_ran_inf_app_err_rim_cont: + app_id = 01 + seq_num = 00000001 + pdu_ind.ack_requested = 0 + pdu_ind.pdu_type_ext = 1 + prot_ver = 1 + app_err_cont: bssgp_app_err_cont_nacc: + macc_cause = 01 + err_app_cont: aabbccddee + err_app_cont_len: 5 +rc=23, result=4b81014c84000000014f8102558101568601aabbccddee +----- test_bssgp_enc_ran_inf_app_err_rim_cont_nacc END +----- test_bssgp_dec_ran_inf_req_app_cont_nacc START +rc=0, app_cont: bssgp_ran_inf_req_app_cont_nacc: + reprt_cell.rai.lac.plmn.mcc = 262 + reprt_cell.rai.lac.plmn.mnc = 42 + reprt_cell.rai.lac.plmn.mnc_3_digits = 0 + reprt_cell.rai.lac.lac = 13200 + reprt_cell.rai.rac = 0 + reprt_cell.cell_identity = 51e1 +----- test_bssgp_dec_ran_inf_req_app_cont_nacc END +----- test_bssgp_enc_ran_inf_req_app_cont_nacc START + app_cont: bssgp_ran_inf_req_app_cont_nacc: + reprt_cell.rai.lac.plmn.mcc = 262 + reprt_cell.rai.lac.plmn.mnc = 42 + reprt_cell.rai.lac.plmn.mnc_3_digits = 0 + reprt_cell.rai.lac.lac = 13200 + reprt_cell.rai.rac = 0 + reprt_cell.cell_identity = 51e1 +rc=8, result=62f22433900051e1 +----- test_bssgp_enc_ran_inf_req_app_cont_nacc END +----- test_bssgp_dec_ran_inf_app_cont_nacc START +rc=0, app_cont: bssgp_ran_inf_app_cont_nacc: + reprt_cell.rai.lac.plmn.mcc = 262 + reprt_cell.rai.lac.plmn.mnc = 42 + reprt_cell.rai.lac.plmn.mnc_3_digits = 0 + reprt_cell.rai.lac.lac = 13135 + reprt_cell.rai.rac = 0 + reprt_cell.cell_identity = 51e0 + type_psi = 0 + num_si = 3 + si[0] = 198fb100000000000000000000000000007900002b + si[1] = 1b753000f110236ec9033c2747407900003c0b2b2b + si[2] = 009000185a6fc9e08410ab2b2b2b2b2b2b2b2b2b2b +----- test_bssgp_dec_ran_inf_app_cont_nacc END +----- test_bssgp_enc_ran_inf_app_cont_nacc START + app_cont: bssgp_ran_inf_app_cont_nacc: + reprt_cell.rai.lac.plmn.mcc = 262 + reprt_cell.rai.lac.plmn.mnc = 42 + reprt_cell.rai.lac.plmn.mnc_3_digits = 0 + reprt_cell.rai.lac.lac = 13135 + reprt_cell.rai.rac = 0 + reprt_cell.cell_identity = 51e1 + type_psi = 0 + num_si = 3 + si[0] = 198fb100000000000000000000000000007900002b + si[1] = 1b753000f110236ec9033c2747407900003c0b2b2b + si[2] = 009000185a6fc9e08410ab2b2b2b2b2b2b2b2b2b2b +rc=72, result=62f224334f0051e106198fb100000000000000000000000000007900002b1b753000f110236ec9033c2747407900003c0b2b2b009000185a6fc9e08410ab2b2b2b2b2b2b2b2b2b2b +----- test_bssgp_enc_ran_inf_app_cont_nacc END +----- test_bssgp_dec_app_err_cont_nacc START +rc=0, app_err_cont: bssgp_app_err_cont_nacc: + macc_cause = 01 + err_app_cont: aabbccddee + err_app_cont_len: 5 +----- test_bssgp_dec_app_err_cont_nacc END +----- test_bssgp_enc_app_err_cont_nacc START + app_err_cont: bssgp_app_err_cont_nacc: + macc_cause = 01 + err_app_cont: aabbccddee + err_app_cont_len: 5 +rc=6, result=01aabbccddee +----- test_bssgp_enc_app_err_cont_nacc END +===== BSSGP RIM test END + diff --git a/tests/testsuite.at b/tests/testsuite.at index 75ce039..d715a3e 100644 --- a/tests/testsuite.at +++ b/tests/testsuite.at @@ -215,6 +215,12 @@ AT_CHECK([$abs_top_builddir/tests/gb/gprs_bssgp_test], [0], [expout], [ignore]) AT_CLEANUP +AT_SETUP([gprs-bssgp-rim]) +AT_KEYWORDS([gprs-bssgp-rim]) +cat $abs_srcdir/gb/gprs_bssgp_rim_test.ok > expout +AT_CHECK([$abs_top_builddir/tests/gb/gprs_bssgp_rim_test], [0], [expout], [ignore]) +AT_CLEANUP + AT_SETUP([gprs-ns]) AT_KEYWORDS([gprs-ns]) cat $abs_srcdir/gb/gprs_ns_test.ok > expout -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21862 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ibbc7fd67658e3040c12abb5706fe9d1f31894352 Gerrit-Change-Number: 21862 Gerrit-PatchSet: 13 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 09:44:11 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 19 Jan 2021 09:44:11 +0000 Subject: Change in libosmocore[master]: bssgp_rim: move bssgp_parse_rim_ri and bssgp_create_rim_ri to gprs_bs... In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21863 ) Change subject: bssgp_rim: move bssgp_parse_rim_ri and bssgp_create_rim_ri to gprs_bssgp_rim ...................................................................... bssgp_rim: move bssgp_parse_rim_ri and bssgp_create_rim_ri to gprs_bssgp_rim The function bssgp_parse_rim_ri() and bssgp_create_rim_ri() are located in gprs_bssgp.c, since there is now a gprs_bssgp_rim.c module it makes more sense to put them there. Also adjust the code a bit so that its more intuitive to read. Change-Id: Icd667f41d5735de56cd9fb257670337c679dd258 Related: SYS#5103 --- M include/osmocom/gprs/gprs_bssgp.h M include/osmocom/gprs/gprs_bssgp_rim.h M src/gb/gprs_bssgp.c M src/gb/gprs_bssgp_rim.c M tests/gb/gprs_bssgp_rim_test.c M tests/gb/gprs_bssgp_rim_test.ok M tests/gb/gprs_bssgp_test.c M tests/gb/gprs_bssgp_test.ok 8 files changed, 312 insertions(+), 311 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved laforge: Looks good to me, but someone else must approve diff --git a/include/osmocom/gprs/gprs_bssgp.h b/include/osmocom/gprs/gprs_bssgp.h index d228c53..9255661 100644 --- a/include/osmocom/gprs/gprs_bssgp.h +++ b/include/osmocom/gprs/gprs_bssgp.h @@ -178,37 +178,6 @@ int bssgp_create_cell_id(uint8_t *buf, const struct gprs_ra_id *raid, uint16_t cid); -enum bssgp_rim_routing_info_discr { - BSSGP_RIM_ROUTING_INFO_GERAN, - BSSGP_RIM_ROUTING_INFO_UTRAN, - BSSGP_RIM_ROUTING_INFO_EUTRAN, -}; - -/*! BSSGP RIM Routing information, see also 3GPP TS 48.018, section 11.3.70 */ -struct bssgp_rim_routing_info { - enum bssgp_rim_routing_info_discr discr; - union { - struct { - struct gprs_ra_id raid; - uint16_t cid; - } geran; - struct { - struct gprs_ra_id raid; - uint16_t rncid; - } utran; - struct { - struct osmo_eutran_tai tai; - /* See also 3GPP TS 36.413 9.2.1.37 and 3GPP TS 36.401 */ - uint8_t global_enb_id[8]; - uint8_t global_enb_id_len; - } eutran; - }; -}; - -int bssgp_parse_rim_ri(struct bssgp_rim_routing_info *ri, const uint8_t *buf, - unsigned int len); -int bssgp_create_rim_ri(uint8_t *buf, const struct bssgp_rim_routing_info *ri); - /* Wrapper around TLV parser to parse BSSGP IEs */ static inline int bssgp_tlv_parse(struct tlv_parsed *tp, const uint8_t *buf, int len) { diff --git a/include/osmocom/gprs/gprs_bssgp_rim.h b/include/osmocom/gprs/gprs_bssgp_rim.h index 0612a91..7f3a0e4 100644 --- a/include/osmocom/gprs/gprs_bssgp_rim.h +++ b/include/osmocom/gprs/gprs_bssgp_rim.h @@ -27,6 +27,36 @@ #include +enum bssgp_rim_routing_info_discr { + BSSGP_RIM_ROUTING_INFO_GERAN, + BSSGP_RIM_ROUTING_INFO_UTRAN, + BSSGP_RIM_ROUTING_INFO_EUTRAN, +}; + +/*! BSSGP RIM Routing information, see also 3GPP TS 48.018, section 11.3.70 */ +struct bssgp_rim_routing_info { + enum bssgp_rim_routing_info_discr discr; + union { + struct { + struct gprs_ra_id raid; + uint16_t cid; + } geran; + struct { + struct gprs_ra_id raid; + uint16_t rncid; + } utran; + struct { + struct osmo_eutran_tai tai; + /* See also 3GPP TS 36.413 9.2.1.37 and 3GPP TS 36.401 */ + uint8_t global_enb_id[8]; + uint8_t global_enb_id_len; + } eutran; + }; +}; + +int bssgp_parse_rim_ri(struct bssgp_rim_routing_info *ri, const uint8_t *buf, unsigned int len); +int bssgp_create_rim_ri(uint8_t *buf, const struct bssgp_rim_routing_info *ri); + /* 3GPP TS 48.018, table 11.3.63.1.1: RAN-INFORMATION-REQUEST Application Container coding for NACC */ struct bssgp_ran_inf_req_app_cont_nacc { struct osmo_cell_global_id_ps reprt_cell; diff --git a/src/gb/gprs_bssgp.c b/src/gb/gprs_bssgp.c index 530c702..4551427 100644 --- a/src/gb/gprs_bssgp.c +++ b/src/gb/gprs_bssgp.c @@ -326,97 +326,6 @@ return 8; } -/*! Parse a RIM Routing information IE (3GPP TS 48.018, chapter 11.3.70). - * \param[out] ri user provided memory to store the parsed results. - * \param[in] buf input buffer of the value part of the IE. - * \returns length of parsed octets, -EINVAL on error. */ -int bssgp_parse_rim_ri(struct bssgp_rim_routing_info *ri, const uint8_t *buf, - unsigned int len) -{ - struct gprs_ra_id raid_temp; - - memset(ri, 0, sizeof(*ri)); - if (len < 2) - return -EINVAL; - - ri->discr = buf[0] & 0x0f; - - switch (ri->discr) { - case BSSGP_RIM_ROUTING_INFO_GERAN: - if (len < 9) - return -EINVAL; - ri->geran.cid = bssgp_parse_cell_id(&ri->geran.raid, buf + 1); - return 9; - case BSSGP_RIM_ROUTING_INFO_UTRAN: - if (len < 9) - return -EINVAL; - gsm48_parse_ra(&ri->utran.raid, buf + 1); - ri->utran.rncid = osmo_load16be(buf + 7); - return 9; - case BSSGP_RIM_ROUTING_INFO_EUTRAN: - if (len < 7 || len > 14) - return -EINVAL; - /* Note: 3GPP TS 24.301 Figure 9.9.3.32.1 and 3GPP TS 24.008 - * Figure 10.5.130 specify MCC/MNC encoding in the same way, - * so we can re-use gsm48_parse_ra() for that. */ - gsm48_parse_ra(&raid_temp, buf + 1); - ri->eutran.tai.mcc = raid_temp.mcc; - ri->eutran.tai.mnc = raid_temp.mnc; - ri->eutran.tai.mnc_3_digits = raid_temp.mnc_3_digits; - ri->eutran.tai.tac = osmo_load16be(buf + 4); - memcpy(ri->eutran.global_enb_id, buf + 6, len - 6); - ri->eutran.global_enb_id_len = len - 6; - return len; - default: - return -EINVAL; - } -} - -/*! Encode a RIM Routing information IE (3GPP TS 48.018, chapter 11.3.70). - * \param[out] buf user provided memory (at least 14 byte) for the generated value part of the IE. - * \param[in] ri user provided input data struct. - * \returns length of encoded octets, -EINVAL on error. */ -int bssgp_create_rim_ri(uint8_t *buf, const struct bssgp_rim_routing_info *ri) -{ - int rc; - struct gprs_ra_id raid_temp; - - buf[0] = ri->discr & 0x0f; - buf++; - - switch (ri->discr) { - case BSSGP_RIM_ROUTING_INFO_GERAN: - rc = bssgp_create_cell_id(buf, &ri->geran.raid, ri->geran.cid); - if (rc < 0) - return -EINVAL; - return rc + 1; - case BSSGP_RIM_ROUTING_INFO_UTRAN: - gsm48_encode_ra((struct gsm48_ra_id *)buf, &ri->utran.raid); - osmo_store16be(ri->utran.rncid, buf + 6); - return 9; - case BSSGP_RIM_ROUTING_INFO_EUTRAN: - /* Note: 3GPP TS 24.301 Figure 9.9.3.32.1 and 3GPP TS 24.008 - * Figure 10.5.130 specify MCC/MNC encoding in the same way, - * so we can re-use gsm48_encode_ra() for that. */ - raid_temp = (struct gprs_ra_id) { - .mcc = ri->eutran.tai.mcc, - .mnc = ri->eutran.tai.mnc, - .mnc_3_digits = ri->eutran.tai.mnc_3_digits, - /* TAC is encoded in the same way as LAC */ - .lac = ri->eutran.tai.tac, - }; - - gsm48_encode_ra((struct gsm48_ra_id *)buf, &raid_temp); - OSMO_ASSERT(ri->eutran.global_enb_id_len <= - sizeof(ri->eutran.global_enb_id)); - memcpy(buf + 5, ri->eutran.global_enb_id, - ri->eutran.global_enb_id_len); - return ri->eutran.global_enb_id_len + 6; - default: - return -EINVAL; - } -} - /* Chapter 8.4 BVC-Reset Procedure */ static int bssgp_rx_bvc_reset(struct msgb *msg, struct tlv_parsed *tp, uint16_t ns_bvci) diff --git a/src/gb/gprs_bssgp_rim.c b/src/gb/gprs_bssgp_rim.c index 3ac405e..0dc6d21 100644 --- a/src/gb/gprs_bssgp_rim.c +++ b/src/gb/gprs_bssgp_rim.c @@ -41,6 +41,97 @@ * (3GPP TS 48.018, sub-clause 11.3.9) but without IE and length octets. */ #define REP_CELL_ID_LEN 8 +/*! Parse a RIM Routing information IE (3GPP TS 48.018, chapter 11.3.70). + * \param[out] ri user provided memory to store the parsed results. + * \param[in] buf input buffer of the value part of the IE. + * \returns length of parsed octets, -EINVAL on error. */ +int bssgp_parse_rim_ri(struct bssgp_rim_routing_info *ri, const uint8_t *buf, + unsigned int len) +{ + struct gprs_ra_id raid_temp; + + memset(ri, 0, sizeof(*ri)); + if (len < 2) + return -EINVAL; + + ri->discr = buf[0] & 0x0f; + buf++; + + switch (ri->discr) { + case BSSGP_RIM_ROUTING_INFO_GERAN: + if (len < 9) + return -EINVAL; + ri->geran.cid = bssgp_parse_cell_id(&ri->geran.raid, buf); + return 9; + case BSSGP_RIM_ROUTING_INFO_UTRAN: + if (len < 9) + return -EINVAL; + gsm48_parse_ra(&ri->utran.raid, buf); + ri->utran.rncid = osmo_load16be(buf + 6); + return 9; + case BSSGP_RIM_ROUTING_INFO_EUTRAN: + if (len < 7 || len > 14) + return -EINVAL; + /* Note: 3GPP TS 24.301 Figure 9.9.3.32.1 and 3GPP TS 24.008 + * Figure 10.5.130 specify MCC/MNC encoding in the same way, + * so we can re-use gsm48_parse_ra() for that. */ + gsm48_parse_ra(&raid_temp, buf); + ri->eutran.tai.mcc = raid_temp.mcc; + ri->eutran.tai.mnc = raid_temp.mnc; + ri->eutran.tai.mnc_3_digits = raid_temp.mnc_3_digits; + ri->eutran.tai.tac = osmo_load16be(buf + 3); + memcpy(ri->eutran.global_enb_id, buf + 5, len - 6); + ri->eutran.global_enb_id_len = len - 6; + return len; + default: + return -EINVAL; + } +} + +/*! Encode a RIM Routing information IE (3GPP TS 48.018, chapter 11.3.70). + * \param[out] buf user provided memory (at least 14 byte) for the generated value part of the IE. + * \param[in] ri user provided input data struct. + * \returns length of encoded octets, -EINVAL on error. */ +int bssgp_create_rim_ri(uint8_t *buf, const struct bssgp_rim_routing_info *ri) +{ + int rc; + struct gprs_ra_id raid_temp; + + buf[0] = ri->discr & 0x0f; + buf++; + + switch (ri->discr) { + case BSSGP_RIM_ROUTING_INFO_GERAN: + rc = bssgp_create_cell_id(buf, &ri->geran.raid, ri->geran.cid); + if (rc < 0) + return -EINVAL; + return rc + 1; + case BSSGP_RIM_ROUTING_INFO_UTRAN: + gsm48_encode_ra((struct gsm48_ra_id *)buf, &ri->utran.raid); + osmo_store16be(ri->utran.rncid, buf + 6); + return 9; + case BSSGP_RIM_ROUTING_INFO_EUTRAN: + /* Note: 3GPP TS 24.301 Figure 9.9.3.32.1 and 3GPP TS 24.008 + * Figure 10.5.130 specify MCC/MNC encoding in the same way, + * so we can re-use gsm48_encode_ra() for that. */ + raid_temp = (struct gprs_ra_id) { + .mcc = ri->eutran.tai.mcc, + .mnc = ri->eutran.tai.mnc, + .mnc_3_digits = ri->eutran.tai.mnc_3_digits, + }; + + gsm48_encode_ra((struct gsm48_ra_id *)buf, &raid_temp); + osmo_store16be(ri->eutran.tai.tac, buf + 3); + OSMO_ASSERT(ri->eutran.global_enb_id_len <= + sizeof(ri->eutran.global_enb_id)); + memcpy(buf + 5, ri->eutran.global_enb_id, + ri->eutran.global_enb_id_len); + return ri->eutran.global_enb_id_len + 6; + default: + return -EINVAL; + } +} + /*! Decode a RAN Information Request Application Container for NACC (3GPP TS 48.018, section 11.3.63.1.1). * \param[out] user provided memory for decoded data struct. * \param[in] buf user provided memory with the encoded value data of the IE. diff --git a/tests/gb/gprs_bssgp_rim_test.c b/tests/gb/gprs_bssgp_rim_test.c index 8c6a00d..d08421b 100644 --- a/tests/gb/gprs_bssgp_rim_test.c +++ b/tests/gb/gprs_bssgp_rim_test.c @@ -24,6 +24,137 @@ #include #include +void dump_rim_ri(struct bssgp_rim_routing_info *ri) +{ + switch (ri->discr) { + case BSSGP_RIM_ROUTING_INFO_GERAN: + printf("GERAN cell identifier\n"); + printf(" * mcc: %u\n", ri->geran.raid.mcc); + printf(" mnc: %u\n", ri->geran.raid.mnc); + printf(" mnc 3 digits: %u\n", ri->geran.raid.mnc_3_digits); + printf(" lac: %u\n", ri->geran.raid.lac); + printf(" rac: %u\n", ri->geran.raid.rac); + printf(" * cell id: %04x\n", ri->geran.cid); + break; + case BSSGP_RIM_ROUTING_INFO_UTRAN: + printf("UTRAN RNC identifier\n"); + printf(" * mcc: %u\n", ri->utran.raid.mcc); + printf(" mnc: %u\n", ri->utran.raid.mnc); + printf(" mnc 3 digits: %u\n", ri->utran.raid.mnc_3_digits); + printf(" lac: %u\n", ri->utran.raid.lac); + printf(" rac: %u\n", ri->utran.raid.rac); + printf(" * rnc id: %04x\n", ri->utran.rncid); + break; + case BSSGP_RIM_ROUTING_INFO_EUTRAN: + printf("EUTRAN eNB identifier\n"); + printf(" * mcc: %u\n", ri->eutran.tai.mcc); + printf(" mnc: %u\n", ri->eutran.tai.mnc); + printf(" mnc 3 digits: %u\n", ri->eutran.tai.mnc_3_digits); + printf(" tac: %u\n", ri->eutran.tai.tac); + printf(" * global_enb_id: %s\n", + osmo_hexdump_nospc(ri->eutran.global_enb_id, + ri->eutran.global_enb_id_len)); + break; + default: + OSMO_ASSERT(false); + } +} + +static void test_bssgp_parse_rim_ri() +{ + int rc; + struct bssgp_rim_routing_info result; + uint8_t testvec_geran[] = + { 0x00, 0x62, 0xf2, 0x24, 0x33, 0x90, 0x00, 0x51, 0xe1 }; + uint8_t testvec_utran[] = + { 0x01, 0x62, 0xf2, 0x24, 0x33, 0x90, 0x00, 0x51, 0xe1 }; + uint8_t testvec_eutran[] = + { 0x02, 0x62, 0xf2, 0x24, 0x33, 0x90, 0x00, 0x51, 0xe1 }; + + printf("----- %s START\n", __func__); + + rc = bssgp_parse_rim_ri(&result, testvec_geran, + sizeof(testvec_geran)); + printf("rc=%d\n", rc); + dump_rim_ri(&result); + printf("\n"); + + rc = bssgp_parse_rim_ri(&result, testvec_utran, + sizeof(testvec_utran)); + printf("rc=%d\n", rc); + dump_rim_ri(&result); + printf("\n"); + + rc = bssgp_parse_rim_ri(&result, testvec_eutran, + sizeof(testvec_eutran)); + printf("rc=%d\n", rc); + dump_rim_ri(&result); + printf("\n"); + + printf("----- %s END\n", __func__); +} + +static void test_bssgp_create_rim_ri() +{ + int rc; + struct bssgp_rim_routing_info ri; + uint8_t result[15]; + + printf("----- %s START\n", __func__); + memset(&ri, 0, sizeof(ri)); + memset(result, 0, sizeof(result)); + ri.discr = BSSGP_RIM_ROUTING_INFO_GERAN; + + ri.geran.raid.mcc = 262; + ri.geran.raid.mnc = 42; + ri.geran.raid.mnc_3_digits = false; + ri.geran.raid.lac = 13200; + ri.geran.raid.rac = 0; + ri.geran.cid = 0x51e1; + dump_rim_ri(&ri); + rc = bssgp_create_rim_ri(result, &ri); + printf("rc=%d, ", rc); + if (rc > 0) + printf("result=%s", osmo_hexdump_nospc(result, rc)); + printf("\n\n"); + + memset(&ri, 0, sizeof(ri)); + memset(result, 0, sizeof(result)); + ri.discr = BSSGP_RIM_ROUTING_INFO_UTRAN; + ri.utran.raid.mcc = 262; + ri.utran.raid.mnc = 42; + ri.utran.raid.mnc_3_digits = 0; + ri.utran.raid.lac = 13200; + ri.utran.raid.rac = 0; + ri.utran.rncid = 0x51e1; + dump_rim_ri(&ri); + rc = bssgp_create_rim_ri(result, &ri); + printf("rc=%d, ", rc); + if (rc > 0) + printf("result=%s", osmo_hexdump_nospc(result, rc)); + printf("\n\n"); + + memset(&ri, 0, sizeof(ri)); + memset(result, 0, sizeof(result)); + ri.discr = BSSGP_RIM_ROUTING_INFO_EUTRAN; + ri.eutran.tai.mcc = 262; + ri.eutran.tai.mnc = 42; + ri.eutran.tai.mnc_3_digits = 0; + ri.eutran.tai.tac = 13200; + ri.eutran.global_enb_id[0] = 0x00; + ri.eutran.global_enb_id[1] = 0x51; + ri.eutran.global_enb_id[2] = 0xe1; + ri.eutran.global_enb_id_len = 3; + dump_rim_ri(&ri); + rc = bssgp_create_rim_ri(result, &ri); + printf("rc=%d, ", rc); + if (rc > 0) + printf("result=%s", osmo_hexdump_nospc(result, rc)); + printf("\n\n"); + + printf("----- %s END\n", __func__); +} + void dump_bssgp_ran_inf_req_app_cont_nacc(struct bssgp_ran_inf_req_app_cont_nacc *app_cont) { printf(" app_cont: bssgp_ran_inf_req_app_cont_nacc:\n"); @@ -636,6 +767,10 @@ { printf("===== BSSGP RIM test START\n"); + /* RIM routing information */ + test_bssgp_parse_rim_ri(); + test_bssgp_create_rim_ri(); + /* RIM containers */ test_bssgp_dec_ran_inf_req_rim_cont_nacc(); test_bssgp_enc_ran_inf_req_rim_cont_nacc(); diff --git a/tests/gb/gprs_bssgp_rim_test.ok b/tests/gb/gprs_bssgp_rim_test.ok index d075ca3..df5a41d 100644 --- a/tests/gb/gprs_bssgp_rim_test.ok +++ b/tests/gb/gprs_bssgp_rim_test.ok @@ -1,4 +1,60 @@ ===== BSSGP RIM test START +----- test_bssgp_parse_rim_ri START +rc=9 +GERAN cell identifier + * mcc: 262 + mnc: 42 + mnc 3 digits: 0 + lac: 13200 + rac: 0 + * cell id: 51e1 + +rc=9 +UTRAN RNC identifier + * mcc: 262 + mnc: 42 + mnc 3 digits: 0 + lac: 13200 + rac: 0 + * rnc id: 51e1 + +rc=9 +EUTRAN eNB identifier + * mcc: 262 + mnc: 42 + mnc 3 digits: 0 + tac: 13200 + * global_enb_id: 0051e1 + +----- test_bssgp_parse_rim_ri END +----- test_bssgp_create_rim_ri START +GERAN cell identifier + * mcc: 262 + mnc: 42 + mnc 3 digits: 0 + lac: 13200 + rac: 0 + * cell id: 51e1 +rc=9, result=0062f22433900051e1 + +UTRAN RNC identifier + * mcc: 262 + mnc: 42 + mnc 3 digits: 0 + lac: 13200 + rac: 0 + * rnc id: 51e1 +rc=9, result=0162f22433900051e1 + +EUTRAN eNB identifier + * mcc: 262 + mnc: 42 + mnc 3 digits: 0 + tac: 13200 + * global_enb_id: 0051e1 +rc=9, result=0262f22433900051e1 + +----- test_bssgp_create_rim_ri END ----- test_bssgp_dec_ran_inf_req_rim_cont_nacc START rc=0, bssgp_ran_inf_req_rim_cont: app_id = 01 diff --git a/tests/gb/gprs_bssgp_test.c b/tests/gb/gprs_bssgp_test.c index e1c920a..52e986e 100644 --- a/tests/gb/gprs_bssgp_test.c +++ b/tests/gb/gprs_bssgp_test.c @@ -289,137 +289,6 @@ printf("----- %s END\n", __func__); } -void dump_rim_ri(struct bssgp_rim_routing_info *ri) -{ - switch (ri->discr) { - case BSSGP_RIM_ROUTING_INFO_GERAN: - printf("GERAN cell identifier\n"); - printf(" * mcc: %u\n", ri->geran.raid.mcc); - printf(" mnc: %u\n", ri->geran.raid.mnc); - printf(" mnc 3 digits: %u\n", ri->geran.raid.mnc_3_digits); - printf(" lac: %u\n", ri->geran.raid.lac); - printf(" rac: %u\n", ri->geran.raid.rac); - printf(" * cell id: %04x\n", ri->geran.cid); - break; - case BSSGP_RIM_ROUTING_INFO_UTRAN: - printf("UTRAN RNC identifier\n"); - printf(" * mcc: %u\n", ri->utran.raid.mcc); - printf(" mnc: %u\n", ri->utran.raid.mnc); - printf(" mnc 3 digits: %u\n", ri->utran.raid.mnc_3_digits); - printf(" lac: %u\n", ri->utran.raid.lac); - printf(" rac: %u\n", ri->utran.raid.rac); - printf(" * rnc id: %04x\n", ri->utran.rncid); - break; - case BSSGP_RIM_ROUTING_INFO_EUTRAN: - printf("EUTRAN eNB identifier\n"); - printf(" * mcc: %u\n", ri->eutran.tai.mcc); - printf(" mnc: %u\n", ri->eutran.tai.mnc); - printf(" mnc 3 digits: %u\n", ri->eutran.tai.mnc_3_digits); - printf(" tac: %u\n", ri->eutran.tai.tac); - printf(" * global_enb_id: %s\n", - osmo_hexdump_nospc(ri->eutran.global_enb_id, - ri->eutran.global_enb_id_len)); - break; - default: - OSMO_ASSERT(false); - } -} - -static void test_bssgp_parse_rim_ri() -{ - int rc; - struct bssgp_rim_routing_info result; - uint8_t testvec_geran[] = - { 0x00, 0x62, 0xf2, 0x24, 0x33, 0x90, 0x00, 0x51, 0xe1 }; - uint8_t testvec_utran[] = - { 0x01, 0x62, 0xf2, 0x24, 0x33, 0x90, 0x00, 0x51, 0xe1 }; - uint8_t testvec_eutran[] = - { 0x02, 0x62, 0xf2, 0x24, 0x33, 0x90, 0x00, 0x51, 0xe1 }; - - printf("----- %s START\n", __func__); - - rc = bssgp_parse_rim_ri(&result, testvec_geran, - sizeof(testvec_geran)); - printf("rc=%d\n", rc); - dump_rim_ri(&result); - printf("\n"); - - rc = bssgp_parse_rim_ri(&result, testvec_utran, - sizeof(testvec_utran)); - printf("rc=%d\n", rc); - dump_rim_ri(&result); - printf("\n"); - - rc = bssgp_parse_rim_ri(&result, testvec_eutran, - sizeof(testvec_eutran)); - printf("rc=%d\n", rc); - dump_rim_ri(&result); - printf("\n"); - - printf("----- %s END\n", __func__); -} - -static void test_bssgp_create_rim_ri() -{ - int rc; - struct bssgp_rim_routing_info ri; - uint8_t result[15]; - - printf("----- %s START\n", __func__); - memset(&ri, 0, sizeof(ri)); - memset(result, 0, sizeof(result)); - ri.discr = BSSGP_RIM_ROUTING_INFO_GERAN; - - ri.geran.raid.mcc = 262; - ri.geran.raid.mnc = 42; - ri.geran.raid.mnc_3_digits = false; - ri.geran.raid.lac = 13200; - ri.geran.raid.rac = 0; - ri.geran.cid = 0x51e1; - dump_rim_ri(&ri); - rc = bssgp_create_rim_ri(result, &ri); - printf("rc=%d, ", rc); - if (rc > 0) - printf("result=%s", osmo_hexdump_nospc(result, rc)); - printf("\n\n"); - - memset(&ri, 0, sizeof(ri)); - memset(result, 0, sizeof(result)); - ri.discr = BSSGP_RIM_ROUTING_INFO_UTRAN; - ri.utran.raid.mcc = 262; - ri.utran.raid.mnc = 42; - ri.utran.raid.mnc_3_digits = 0; - ri.utran.raid.lac = 13200; - ri.utran.raid.rac = 0; - ri.utran.rncid = 0x51e1; - dump_rim_ri(&ri); - rc = bssgp_create_rim_ri(result, &ri); - printf("rc=%d, ", rc); - if (rc > 0) - printf("result=%s", osmo_hexdump_nospc(result, rc)); - printf("\n\n"); - - memset(&ri, 0, sizeof(ri)); - memset(result, 0, sizeof(result)); - ri.discr = BSSGP_RIM_ROUTING_INFO_EUTRAN; - ri.eutran.tai.mcc = 262; - ri.eutran.tai.mnc = 42; - ri.eutran.tai.mnc_3_digits = 0; - ri.eutran.tai.tac = 13200; - ri.eutran.global_enb_id[0] = 0x00; - ri.eutran.global_enb_id[1] = 0x51; - ri.eutran.global_enb_id[2] = 0xe1; - ri.eutran.global_enb_id_len = 3; - dump_rim_ri(&ri); - rc = bssgp_create_rim_ri(result, &ri); - printf("rc=%d, ", rc); - if (rc > 0) - printf("result=%s", osmo_hexdump_nospc(result, rc)); - printf("\n\n"); - - printf("----- %s END\n", __func__); -} - static struct log_info info = {}; int main(int argc, char **argv) @@ -448,8 +317,6 @@ test_bssgp_bad_reset(); test_bssgp_flow_control_bvc(); test_bssgp_msgb_copy(); - test_bssgp_parse_rim_ri(); - test_bssgp_create_rim_ri(); printf("===== BSSGP test END\n\n"); exit(EXIT_SUCCESS); diff --git a/tests/gb/gprs_bssgp_test.ok b/tests/gb/gprs_bssgp_test.ok index 744f1a7..c5b3e7d 100644 --- a/tests/gb/gprs_bssgp_test.ok +++ b/tests/gb/gprs_bssgp_test.ok @@ -17,61 +17,5 @@ Old msgb: [L3]> 22 04 82 00 02 07 81 08 New msgb: [L3]> 22 04 82 00 02 07 81 08 ----- test_bssgp_msgb_copy END ------ test_bssgp_parse_rim_ri START -rc=9 -GERAN cell identifier - * mcc: 262 - mnc: 42 - mnc 3 digits: 0 - lac: 13200 - rac: 0 - * cell id: 51e1 - -rc=9 -UTRAN RNC identifier - * mcc: 262 - mnc: 42 - mnc 3 digits: 0 - lac: 13200 - rac: 0 - * rnc id: 51e1 - -rc=9 -EUTRAN eNB identifier - * mcc: 262 - mnc: 42 - mnc 3 digits: 0 - tac: 13200 - * global_enb_id: 0051e1 - ------ test_bssgp_parse_rim_ri END ------ test_bssgp_create_rim_ri START -GERAN cell identifier - * mcc: 262 - mnc: 42 - mnc 3 digits: 0 - lac: 13200 - rac: 0 - * cell id: 51e1 -rc=9, result=0062f22433900051e1 - -UTRAN RNC identifier - * mcc: 262 - mnc: 42 - mnc 3 digits: 0 - lac: 13200 - rac: 0 - * rnc id: 51e1 -rc=9, result=0162f22433900051e1 - -EUTRAN eNB identifier - * mcc: 262 - mnc: 42 - mnc 3 digits: 0 - tac: 13200 - * global_enb_id: 0051e1 -rc=9, result=0262f22433900051e1 - ------ test_bssgp_create_rim_ri END ===== BSSGP test END -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21863 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Icd667f41d5735de56cd9fb257670337c679dd258 Gerrit-Change-Number: 21863 Gerrit-PatchSet: 13 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 09:46:42 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 19 Jan 2021 09:46:42 +0000 Subject: Change in osmo-hlr[master]: Add vty command to show summary of all or filtered subscribers In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-hlr/+/22311 ) Change subject: Add vty command to show summary of all or filtered subscribers ...................................................................... Patch Set 5: (1 comment) https://gerrit.osmocom.org/c/osmo-hlr/+/22311/5/tests/test_nodes.vty File tests/test_nodes.vty: https://gerrit.osmocom.org/c/osmo-hlr/+/22311/5/tests/test_nodes.vty at 17 PS5, Line 17: show subscribers filter (imsi|msisdn) FILTER : show subscribers filter (cs|ps) (on|off) I would actually go for just "show subscribers (imsi|msisdn) FILTER" without the "filter' part. The all|imsi|msisdn|cs|ps is a sufficient separator at the same level. It also matches semantics in other places of VTY interfaces of Osmocom programs, too. -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/22311 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-Change-Id: I7f0573381a6d0d13841ac6d42d50f0e8389decf4 Gerrit-Change-Number: 22311 Gerrit-PatchSet: 5 Gerrit-Owner: keith Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-Comment-Date: Tue, 19 Jan 2021 09:46:42 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 09:59:58 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 19 Jan 2021 09:59:58 +0000 Subject: Change in osmo-hlr[master]: Correct vty inline help for show subscriber In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-hlr/+/22310 ) Change subject: Correct vty inline help for show subscriber ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/22310 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-Change-Id: I035435859b60ce6d54da307c0d6397d4bd515439 Gerrit-Change-Number: 22310 Gerrit-PatchSet: 2 Gerrit-Owner: keith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 19 Jan 2021 09:59:58 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 10:05:34 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 19 Jan 2021 10:05:34 +0000 Subject: Change in osmo-pcu[master]: Fix configuration mess of initial_cs/mcs between PCUIF and VTY In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22195 ) Change subject: Fix configuration mess of initial_cs/mcs between PCUIF and VTY ...................................................................... Fix configuration mess of initial_cs/mcs between PCUIF and VTY Both values (optionally) set (forced) by VTY and the values received from PCUIF were stored in the same variable, meaning that for instance the PCUIF values wouldn't really be used if someone applied eg "no cs" during runtime. This commit does something similar to what was already done for the max_(m)cs fields. We store PCUIF values in one place and VTY ones in another place, and then trigger a bts object internal process to find out exactly which initial CS should it be using. Change-Id: I80a6ba401f9c0c85bdf6e0cc99a9d2008d31e1b0 --- M src/bts.cpp M src/bts.h M src/gprs_pcu.c M src/gprs_pcu.h M src/pcu_l1_if.cpp M src/pcu_vty.c 6 files changed, 110 insertions(+), 55 deletions(-) Approvals: Jenkins Builder: Verified osmith: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/src/bts.cpp b/src/bts.cpp index 92abdbf..a50e8ae 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -1172,6 +1172,62 @@ trx->pdch[i].unreserve(dir); } +void bts_recalc_initial_cs(struct gprs_rlcmac_bts *bts) +{ + uint8_t max_cs_dl, max_cs_ul; + + if (the_pcu->vty.force_initial_cs) { + bts->initial_cs_dl = the_pcu->vty.initial_cs_dl; + bts->initial_cs_ul = the_pcu->vty.initial_cs_ul; + return; + } + + max_cs_dl = bts->bts->max_cs_dl(); + if (bts->pcuif_info_ind.initial_cs > max_cs_dl) { + LOGP(DL1IF, LOGL_DEBUG, " downgrading initial_cs_dl to %d\n", max_cs_dl); + bts->initial_cs_dl = max_cs_dl; + } else { + bts->initial_cs_dl = bts->pcuif_info_ind.initial_cs; + } + if (bts->initial_cs_dl == 0) + bts->initial_cs_dl = 1; /* CS1 Must always be supported */ + + max_cs_ul = bts->bts->max_cs_ul(); + if (bts->pcuif_info_ind.initial_cs > max_cs_ul) { + LOGP(DL1IF, LOGL_DEBUG, " downgrading initial_cs_ul to %d\n", max_cs_ul); + bts->initial_cs_ul = max_cs_ul; + } else { + bts->initial_cs_ul = bts->pcuif_info_ind.initial_cs; + } + if (bts->initial_cs_ul == 0) + bts->initial_cs_ul = 1; /* CS1 Must always be supported */ +} +void bts_recalc_initial_mcs(struct gprs_rlcmac_bts *bts) +{ + uint8_t max_mcs_dl, max_mcs_ul; + + if (the_pcu->vty.force_initial_mcs) { + bts->initial_mcs_dl = the_pcu->vty.initial_mcs_dl; + bts->initial_mcs_ul = the_pcu->vty.initial_mcs_ul; + return; + } + + max_mcs_dl = bts->bts->max_mcs_dl(); + if (bts->pcuif_info_ind.initial_mcs > max_mcs_dl) { + LOGP(DL1IF, LOGL_DEBUG, " downgrading initial_mcs_dl to %d\n", max_mcs_dl); + bts->initial_mcs_dl = max_mcs_dl; + } else { + bts->initial_mcs_dl = bts->pcuif_info_ind.initial_mcs; + } + max_mcs_ul = bts->bts->max_mcs_ul(); + if (bts->pcuif_info_ind.initial_mcs > max_mcs_ul) { + LOGP(DL1IF, LOGL_DEBUG, " downgrading initial_mcs_ul to %d\n", max_mcs_ul); + bts->initial_mcs_ul = max_mcs_ul; + } else { + bts->initial_mcs_ul = bts->pcuif_info_ind.initial_mcs; + } +} + void bts_recalc_max_cs(struct gprs_rlcmac_bts *bts) { int i; diff --git a/src/bts.h b/src/bts.h index bf6e681..b1f73b4 100644 --- a/src/bts.h +++ b/src/bts.h @@ -87,6 +87,10 @@ uint8_t bsic; uint8_t cs_mask; /* Allowed CS mask from BTS */ uint16_t mcs_mask; /* Allowed MCS mask from BTS */ + struct { /* information stored from last received PCUIF info_ind message */ + uint8_t initial_cs; + uint8_t initial_mcs; + } pcuif_info_ind; uint8_t initial_cs_dl, initial_cs_ul; uint8_t initial_mcs_dl, initial_mcs_ul; /* Timer defintions */ @@ -399,6 +403,8 @@ struct gprs_rlcmac_bts *bts_main_data(); struct rate_ctr_group *bts_main_data_stats(); struct osmo_stat_item_group *bts_main_data_stat_items(); + void bts_recalc_initial_cs(struct gprs_rlcmac_bts *bts); + void bts_recalc_initial_mcs(struct gprs_rlcmac_bts *bts); void bts_recalc_max_cs(struct gprs_rlcmac_bts *bts); void bts_recalc_max_mcs(struct gprs_rlcmac_bts *bts); struct GprsMs *bts_ms_by_imsi(struct BTS *bts, const char *imsi); diff --git a/src/gprs_pcu.c b/src/gprs_pcu.c index 013c026..bc9b350 100644 --- a/src/gprs_pcu.c +++ b/src/gprs_pcu.c @@ -103,6 +103,24 @@ return pcu; } +void gprs_pcu_set_initial_cs(struct gprs_pcu *pcu, uint8_t cs_dl, uint8_t cs_ul) +{ + the_pcu->vty.initial_cs_dl = cs_dl; + the_pcu->vty.initial_cs_ul = cs_ul; + + /*TODO: once we support multiple bts, foreach(bts) apply */ + struct gprs_rlcmac_bts *bts = bts_data(pcu->bts); + bts_recalc_initial_cs(bts); +} +void gprs_pcu_set_initial_mcs(struct gprs_pcu *pcu, uint8_t mcs_dl, uint8_t mcs_ul) +{ + the_pcu->vty.initial_mcs_dl = mcs_dl; + the_pcu->vty.initial_mcs_ul = mcs_ul; + + /*TODO: once we support multiple bts, foreach(bts) apply */ + struct gprs_rlcmac_bts *bts = bts_data(pcu->bts); + bts_recalc_initial_mcs(bts); +} void gprs_pcu_set_max_cs(struct gprs_pcu *pcu, uint8_t cs_dl, uint8_t cs_ul) { diff --git a/src/gprs_pcu.h b/src/gprs_pcu.h index 8fc15dc..8913001 100644 --- a/src/gprs_pcu.h +++ b/src/gprs_pcu.h @@ -79,6 +79,8 @@ uint32_t fc_ms_leak_rate; bool force_initial_cs; /* false=use from BTS true=use from VTY */ bool force_initial_mcs; /* false=use from BTS true=use from VTY */ + uint8_t initial_cs_dl, initial_cs_ul; + uint8_t initial_mcs_dl, initial_mcs_ul; uint8_t max_cs_dl, max_cs_ul; uint8_t max_mcs_dl, max_mcs_ul; uint8_t force_two_phase; @@ -122,5 +124,7 @@ struct gprs_pcu *gprs_pcu_alloc(void *ctx); +void gprs_pcu_set_initial_cs(struct gprs_pcu *pcu, uint8_t cs_dl, uint8_t cs_ul); +void gprs_pcu_set_initial_mcs(struct gprs_pcu *pcu, uint8_t mcs_dl, uint8_t mcs_ul); void gprs_pcu_set_max_cs(struct gprs_pcu *pcu, uint8_t cs_dl, uint8_t cs_ul); void gprs_pcu_set_max_mcs(struct gprs_pcu *pcu, uint8_t mcs_dl, uint8_t mcs_ul); diff --git a/src/pcu_l1_if.cpp b/src/pcu_l1_if.cpp index 4a6c53e..a11ec7e 100644 --- a/src/pcu_l1_if.cpp +++ b/src/pcu_l1_if.cpp @@ -631,37 +631,13 @@ LOGP(DL1IF, LOGL_DEBUG, " initial_cs=%u%s\n", info_ind->initial_cs, the_pcu->vty.force_initial_cs ? " (VTY forced, ignoring)" : ""); - if (!the_pcu->vty.force_initial_cs) { - if (info_ind->initial_cs > bts->bts->max_cs_dl()) { - LOGP(DL1IF, LOGL_DEBUG, " downgrading initial_cs_dl to %d\n", bts->bts->max_cs_dl()); - bts->initial_cs_dl = bts->bts->max_cs_dl(); - } else { - bts->initial_cs_dl = info_ind->initial_cs; - } - if (info_ind->initial_cs > bts->bts->max_cs_ul()) { - LOGP(DL1IF, LOGL_DEBUG, " downgrading initial_cs_ul to %d\n", bts->bts->max_cs_ul()); - bts->initial_cs_ul = bts->bts->max_cs_ul(); - } else { - bts->initial_cs_ul = info_ind->initial_cs; - } - } + bts->pcuif_info_ind.initial_cs = info_ind->initial_cs; + bts_recalc_initial_cs(bts); LOGP(DL1IF, LOGL_DEBUG, " initial_mcs=%u%s\n", info_ind->initial_mcs, the_pcu->vty.force_initial_mcs ? " (VTY forced, ignoring)" : ""); - if (!the_pcu->vty.force_initial_mcs) { - if (info_ind->initial_mcs > bts->bts->max_mcs_dl()) { - LOGP(DL1IF, LOGL_DEBUG, " downgrading initial_mcs_dl to %d\n", bts->bts->max_mcs_dl()); - bts->initial_mcs_dl = bts->bts->max_mcs_dl(); - } else { - bts->initial_mcs_dl = info_ind->initial_mcs; - } - if (info_ind->initial_mcs > bts->bts->max_mcs_ul()) { - LOGP(DL1IF, LOGL_DEBUG, " downgrading initial_mcs_ul to %d\n", bts->bts->max_mcs_ul()); - bts->initial_mcs_ul = bts->bts->max_mcs_ul(); - } else { - bts->initial_mcs_ul = info_ind->initial_mcs; - } - } + bts->pcuif_info_ind.initial_mcs = info_ind->initial_mcs; + bts_recalc_initial_mcs(bts); pcu = gprs_bssgp_init( bts, diff --git a/src/pcu_vty.c b/src/pcu_vty.c index 0be914b..ed1a6a4 100644 --- a/src/pcu_vty.c +++ b/src/pcu_vty.c @@ -102,7 +102,6 @@ static int config_write_pcu(struct vty *vty) { - struct gprs_rlcmac_bts *bts = bts_main_data(); unsigned int i; vty_out(vty, "pcu%s", VTY_NEWLINE); @@ -121,12 +120,12 @@ vty_out(vty, " flow-control force-ms-leak-rate %d%s", the_pcu->vty.fc_ms_leak_rate, VTY_NEWLINE); if (the_pcu->vty.force_initial_cs) { - if (bts->initial_cs_ul == bts->initial_cs_dl) - vty_out(vty, " cs %d%s", bts->initial_cs_dl, + if (the_pcu->vty.initial_cs_ul == the_pcu->vty.initial_cs_dl) + vty_out(vty, " cs %d%s", the_pcu->vty.initial_cs_dl, VTY_NEWLINE); else - vty_out(vty, " cs %d %d%s", bts->initial_cs_dl, - bts->initial_cs_ul, VTY_NEWLINE); + vty_out(vty, " cs %d %d%s", the_pcu->vty.initial_cs_dl, + the_pcu->vty.initial_cs_ul, VTY_NEWLINE); } if (the_pcu->vty.max_cs_dl && the_pcu->vty.max_cs_ul) { if (the_pcu->vty.max_cs_ul == the_pcu->vty.max_cs_dl) @@ -178,12 +177,12 @@ VTY_NEWLINE); if (the_pcu->vty.force_initial_mcs) { - if (bts->initial_mcs_ul == bts->initial_mcs_dl) - vty_out(vty, " mcs %d%s", bts->initial_mcs_dl, + if (the_pcu->vty.initial_mcs_ul == the_pcu->vty.initial_mcs_dl) + vty_out(vty, " mcs %d%s", the_pcu->vty.initial_mcs_dl, VTY_NEWLINE); else - vty_out(vty, " mcs %d %d%s", bts->initial_mcs_dl, - bts->initial_mcs_ul, VTY_NEWLINE); + vty_out(vty, " mcs %d %d%s", the_pcu->vty.initial_mcs_dl, + the_pcu->vty.initial_mcs_ul, VTY_NEWLINE); } if (the_pcu->vty.max_mcs_dl && the_pcu->vty.max_mcs_ul) { @@ -411,16 +410,14 @@ "Use a different initial CS value for the uplink", CMD_ATTR_IMMEDIATE) { - struct gprs_rlcmac_bts *bts = bts_main_data(); - uint8_t cs = atoi(argv[0]); - - the_pcu->vty.force_initial_cs = true; - bts->initial_cs_dl = cs; + uint8_t cs_dl, cs_ul; + cs_dl = atoi(argv[0]); if (argc > 1) - bts->initial_cs_ul = atoi(argv[1]); + cs_ul = atoi(argv[1]); else - bts->initial_cs_ul = cs; - + cs_ul = cs_dl; + the_pcu->vty.force_initial_cs = true; + gprs_pcu_set_initial_cs(the_pcu, cs_dl, cs_ul); return CMD_SUCCESS; } @@ -431,7 +428,7 @@ CMD_ATTR_IMMEDIATE) { the_pcu->vty.force_initial_cs = false; - + gprs_pcu_set_initial_cs(the_pcu, 0, 0); return CMD_SUCCESS; } @@ -476,16 +473,14 @@ "Use a different initial MCS value for the uplink", CMD_ATTR_IMMEDIATE) { - struct gprs_rlcmac_bts *bts = bts_main_data(); - uint8_t mcs = atoi(argv[0]); - - the_pcu->vty.force_initial_mcs = true; - bts->initial_mcs_dl = mcs; + uint8_t mcs_dl, mcs_ul; + mcs_dl = atoi(argv[0]); if (argc > 1) - bts->initial_mcs_ul = atoi(argv[1]); + mcs_ul = atoi(argv[1]); else - bts->initial_mcs_ul = mcs; - + mcs_ul = mcs_dl; + the_pcu->vty.force_initial_mcs = true; + gprs_pcu_set_initial_mcs(the_pcu, mcs_dl, mcs_ul); return CMD_SUCCESS; } @@ -496,7 +491,7 @@ CMD_ATTR_IMMEDIATE) { the_pcu->vty.force_initial_mcs = false; - + gprs_pcu_set_initial_mcs(the_pcu, 0, 0); return CMD_SUCCESS; } -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22195 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I80a6ba401f9c0c85bdf6e0cc99a9d2008d31e1b0 Gerrit-Change-Number: 22195 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-CC: lynxis lazus Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 10:26:38 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 19 Jan 2021 10:26:38 +0000 Subject: Change in osmo-hlr[master]: Add vty command to show summary of all or filtered subscribers In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-hlr/+/22311 ) Change subject: Add vty command to show summary of all or filtered subscribers ...................................................................... Patch Set 5: (1 comment) https://gerrit.osmocom.org/c/osmo-hlr/+/22311/5/src/db_hlr.c File src/db_hlr.c: https://gerrit.osmocom.org/c/osmo-hlr/+/22311/5/src/db_hlr.c at 644 PS5, Line 644: subscr Why do you need this pointer? I think you can use 'sub' directly. -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/22311 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-Change-Id: I7f0573381a6d0d13841ac6d42d50f0e8389decf4 Gerrit-Change-Number: 22311 Gerrit-PatchSet: 5 Gerrit-Owner: keith Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-CC: laforge Gerrit-Comment-Date: Tue, 19 Jan 2021 10:26:38 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 10:29:32 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 19 Jan 2021 10:29:32 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Use IMSI cache for PTP paging and implement DUMMY_PAGING_PS In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22298 ) Change subject: gbproxy: Use IMSI cache for PTP paging and implement DUMMY_PAGING_PS ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22298 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I7243e0d4470cb62fa6db36d26002ccd6542b5147 Gerrit-Change-Number: 22298 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-CC: lynxis lazus Gerrit-Comment-Date: Tue, 19 Jan 2021 10:29:32 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 10:29:38 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 19 Jan 2021 10:29:38 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Use IMSI cache for PTP paging and implement DUMMY_PAGING_PS In-Reply-To: References: Message-ID: daniel has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22298 ) Change subject: gbproxy: Use IMSI cache for PTP paging and implement DUMMY_PAGING_PS ...................................................................... gbproxy: Use IMSI cache for PTP paging and implement DUMMY_PAGING_PS Some code was missing to support PAGING_REJECT and DUMMY_PAGING_PS over both PTP and signalling. This commit adds the missing pieces, notably: * Use and route according to the IMSI cache for paging on PTP * Ensure DUMMY_PAGING_PS is broadcast if no routing area is included Change-Id: I7243e0d4470cb62fa6db36d26002ccd6542b5147 Related: OS#4951, OS#4472 --- M src/gbproxy/gb_proxy.c 1 file changed, 39 insertions(+), 7 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, but someone else must approve daniel: Looks good to me, approved diff --git a/src/gbproxy/gb_proxy.c b/src/gbproxy/gb_proxy.c index d88b89b..b06850f 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -425,9 +425,21 @@ break; case BSSGP_PDUT_DUMMY_PAGING_PS_RESP: case BSSGP_PDUT_PAGING_PS_REJECT: - /* TODO: Implement via state tracking of PAGING-PS + DUMMY_PAGING_PS */ - LOGPBVC(bss_bvc, LOGL_ERROR, "Rx %s: Implementation missing\n", pdut_name); + { + /* Route according to IMSI<->NSE cache entry */ + struct osmo_mobile_identity mi; + const uint8_t *mi_data = TLVP_VAL(&tp, BSSGP_IE_IMSI); + uint8_t mi_len = TLVP_LEN(&tp, BSSGP_IE_IMSI); + osmo_mobile_identity_decode(&mi, mi_data, mi_len, false); + nse = gbproxy_nse_by_imsi(nse->cfg, mi.imsi); + if (nse) { + OSMO_ASSERT(nse->sgsn_facing); + rc = gbprox_relay2nse(msg, nse, ns_bvci); + } else { + LOGPBVC(bss_bvc, LOGL_ERROR, "Rx unmatched PAGING REJECT/DUMMY PAGING RESP with IMSI %s\n", mi.imsi); + } break; + } case BSSGP_PDUT_FLOW_CONTROL_BVC: osmo_fsm_inst_dispatch(bss_bvc->fi, BSSGP_BVCFSM_E_RX_FC_BVC, msg); break; @@ -513,9 +525,21 @@ switch (bgph->pdu_type) { case BSSGP_PDUT_FLOW_CONTROL_BVC_ACK: return osmo_fsm_inst_dispatch(sgsn_bvc->fi, BSSGP_BVCFSM_E_RX_FC_BVC_ACK, msg); - default: - return gbprox_relay2peer(msg, bss_bvc, bss_bvc->bvci); + case BSSGP_PDUT_DUMMY_PAGING_PS: + case BSSGP_PDUT_PAGING_PS: + { + /* Cache the IMSI<->NSE to route PAGING REJECT */ + struct osmo_mobile_identity mi; + const uint8_t *mi_data = TLVP_VAL(&tp, BSSGP_IE_IMSI); + uint8_t mi_len = TLVP_LEN(&tp, BSSGP_IE_IMSI); + osmo_mobile_identity_decode(&mi, mi_data, mi_len, false); + gbproxy_imsi_cache_update(nse, mi.imsi); + break; } + default: + break; + } + return gbprox_relay2peer(msg, bss_bvc, bss_bvc->bvci); } @@ -934,6 +958,7 @@ gbprox_bss2sgsn_tlli(from_bvc->cell, msg, &tlli, true); break; case BSSGP_PDUT_PAGING_PS_REJECT: + case BSSGP_PDUT_DUMMY_PAGING_PS_RESP: { /* Route according to IMSI<->NSE cache entry */ struct osmo_mobile_identity mi; @@ -944,6 +969,7 @@ if (!nse) { return bssgp_tx_status(BSSGP_CAUSE_INV_MAND_INF, NULL, msg); } + OSMO_ASSERT(nse->sgsn_facing); rc = gbprox_relay2nse(msg, nse, 0); break; } @@ -961,7 +987,7 @@ /* Receive paging request from SGSN, we need to relay to proper BSS */ static int gbprox_rx_paging(struct gbproxy_nse *sgsn_nse, struct msgb *msg, const char *pdut_name, - struct tlv_parsed *tp, uint16_t ns_bvci) + struct tlv_parsed *tp, uint16_t ns_bvci, bool broadcast) { struct gbproxy_config *cfg = sgsn_nse->cfg; struct gbproxy_bvc *sgsn_bvc, *bss_bvc; @@ -1014,7 +1040,7 @@ } } } - } else if (TLVP_PRES_LEN(tp, BSSGP_IE_BSS_AREA_ID, 1)) { + } else if (TLVP_PRES_LEN(tp, BSSGP_IE_BSS_AREA_ID, 1) || broadcast) { /* iterate over all bvcs and dispatch the paging to each matching one */ hash_for_each(cfg->bss_nses, i, nse, list) { hash_for_each(nse->bvcs, j, bss_bvc, list) { @@ -1079,6 +1105,7 @@ int rc = 0; int cause; int i; + bool paging_bc = false; snprintf(log_pfx, sizeof(log_pfx), "NSE(%05u/SGSN)-BVC(%05u/??)", nse->nsei, ns_bvci); @@ -1147,6 +1174,11 @@ if (sgsn_bvc->cell && sgsn_bvc->cell->bss_bvc) rc = gbprox_relay2peer(msg, sgsn_bvc->cell->bss_bvc, ns_bvci); break; + case BSSGP_PDUT_DUMMY_PAGING_PS: + /* Routing area is optional in dummy paging and we have nothing else to go by + * so in case it is missing we need to broadcast the paging */ + paging_bc = true; + /* fall through */ case BSSGP_PDUT_PAGING_PS: { /* Cache the IMSI<->NSE to route PAGING REJECT */ @@ -1159,7 +1191,7 @@ } case BSSGP_PDUT_PAGING_CS: /* process the paging request (LAI/RAI lookup) */ - rc = gbprox_rx_paging(nse, msg, pdut_name, &tp, ns_bvci); + rc = gbprox_rx_paging(nse, msg, pdut_name, &tp, ns_bvci, paging_bc); break; case BSSGP_PDUT_STATUS: /* Some exception has occurred */ -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22298 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I7243e0d4470cb62fa6db36d26002ccd6542b5147 Gerrit-Change-Number: 22298 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-CC: lynxis lazus Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 10:35:39 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 19 Jan 2021 10:35:39 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Use IMSI cache for PTP paging and implement DUMMY_PAGING_PS In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22298 ) Change subject: gbproxy: Use IMSI cache for PTP paging and implement DUMMY_PAGING_PS ...................................................................... Patch Set 2: (2 comments) https://gerrit.osmocom.org/c/osmo-sgsn/+/22298/1//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-sgsn/+/22298/1//COMMIT_MSG at 9 PS1, Line 9: > white space Done https://gerrit.osmocom.org/c/osmo-sgsn/+/22298/2/src/gbproxy/gb_proxy.c File src/gbproxy/gb_proxy.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/22298/2/src/gbproxy/gb_proxy.c at 439 PS2, Line 439: PAGING REJECT/DUMMY PAGIN > sorry for yet another review cycle - we can simply use the existing list of message type strings to [?] Sorry, got a bit carried away. Will submit it in a new patch. -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22298 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I7243e0d4470cb62fa6db36d26002ccd6542b5147 Gerrit-Change-Number: 22298 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-CC: lynxis lazus Gerrit-Comment-Date: Tue, 19 Jan 2021 10:35:39 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: laforge Comment-In-Reply-To: lynxis lazus Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 10:39:15 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 19 Jan 2021 10:39:15 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Print the correct message type for dummy paging/paging reject References: Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22312 ) Change subject: gbproxy: Print the correct message type for dummy paging/paging reject ...................................................................... gbproxy: Print the correct message type for dummy paging/paging reject Change-Id: I5337abb27587fa2e8320b5bfc3765c9de5c57f6c --- M src/gbproxy/gb_proxy.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/12/22312/1 diff --git a/src/gbproxy/gb_proxy.c b/src/gbproxy/gb_proxy.c index b06850f..edd9f29 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -436,7 +436,7 @@ OSMO_ASSERT(nse->sgsn_facing); rc = gbprox_relay2nse(msg, nse, ns_bvci); } else { - LOGPBVC(bss_bvc, LOGL_ERROR, "Rx unmatched PAGING REJECT/DUMMY PAGING RESP with IMSI %s\n", mi.imsi); + LOGPBVC(bss_bvc, LOGL_ERROR, "Rx unmatched %s with IMSI %s\n", pdut_name, mi.imsi); } break; } -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22312 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I5337abb27587fa2e8320b5bfc3765c9de5c57f6c Gerrit-Change-Number: 22312 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 10:50:22 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 19 Jan 2021 10:50:22 +0000 Subject: Change in osmo-bsc[master]: fix for test_dyn_ts_favor_moving_half_used_tch_h.ho_vty In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22261 ) Change subject: fix for test_dyn_ts_favor_moving_half_used_tch_h.ho_vty ...................................................................... Patch Set 1: Code-Review+2 combine -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22261 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I492ea095cf3e3c3fd186c889166c4ed93ab3a007 Gerrit-Change-Number: 22261 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 19 Jan 2021 10:50:22 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 10:50:42 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 19 Jan 2021 10:50:42 +0000 Subject: Change in osmo-bsc[master]: handover_tests.sh: update stdout/stderr only on capital -U arg In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22260 ) Change subject: handover_tests.sh: update stdout/stderr only on capital -U arg ...................................................................... handover_tests.sh: update stdout/stderr only on capital -U arg On -u, update the handover_tests.ok file that lists all tests that are expected to run. This is necessary for the regression tests to succeed. Update all the numerous test_*.ho_vty.{err,ok} files only when the update arg is a captial -U, because those are usually not interesting, except for manual comparison of test runs. Change-Id: Id280a8d084fd84b0b7486a5c8022e5b7a26f6095 --- M tests/handover/handover_tests.sh 1 file changed, 3 insertions(+), 3 deletions(-) Approvals: pespin: Looks good to me, but someone else must approve osmith: Looks good to me, approved Jenkins Builder: Verified diff --git a/tests/handover/handover_tests.sh b/tests/handover/handover_tests.sh index 240b789..4be0c10 100755 --- a/tests/handover/handover_tests.sh +++ b/tests/handover/handover_tests.sh @@ -6,7 +6,7 @@ test -d "$tests_dir" test -d "$build_dir" -if [ -n "$update" -a "x$update" != "x-u" ]; then +if [ -n "$update" -a "x$update" != "x-u" -a "x$update" != "x-U" ]; then echo "unknown argument: $update" exit 1 fi @@ -21,7 +21,7 @@ rc=$? expect_out="$test_path.ok" expect_err="$test_path.err" - if [ "x$rc" = "x0" -a "x$update" = "x-u" ]; then + if [ "x$rc" = "x0" -a "x$update" = "x-U" ]; then cp "$got_out" "$expect_out" cp "$got_err" "$expect_err" else @@ -50,7 +50,7 @@ set +e cat "$results" failed="$(grep FAIL "$results")" -if [ -z "$failed" -a "x$update" = "x-u" ]; then +if [ -z "$failed" -a "x$update" != "x" ]; then cp "$results" "$tests_dir"/handover_tests.ok fi rm "$results" -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22260 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Id280a8d084fd84b0b7486a5c8022e5b7a26f6095 Gerrit-Change-Number: 22260 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 10:50:42 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 19 Jan 2021 10:50:42 +0000 Subject: Change in osmo-bsc[master]: fix for test_dyn_ts_favor_moving_half_used_tch_h.ho_vty In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22261 ) Change subject: fix for test_dyn_ts_favor_moving_half_used_tch_h.ho_vty ...................................................................... fix for test_dyn_ts_favor_moving_half_used_tch_h.ho_vty So far, the test only works because osmo-bsc fails to notice that occupying the dynamic TS 1 as TCH/F does, overall, not free a TCH/H, but reduces available TCH/H from 5 to 4 (one TCH/H freed, but two TCH/H lost from occupying a dynamic TS). An upcoming patch will make osmo-bsc sensitive for these cross effects between TCH/F and TCH/H when dynamic timeslots are involved, hence this test needs to be stabilized. By using a static TCH/F for TS 1 instead of a dynamic timeslot, the dyn TS cross effect does not occur and this test actually makes sense. Change-Id: I492ea095cf3e3c3fd186c889166c4ed93ab3a007 --- M tests/handover/test_dyn_ts_favor_moving_half_used_tch_h.ho_vty 1 file changed, 6 insertions(+), 6 deletions(-) Approvals: neels: Looks good to me, approved pespin: Looks good to me, but someone else must approve osmith: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/tests/handover/test_dyn_ts_favor_moving_half_used_tch_h.ho_vty b/tests/handover/test_dyn_ts_favor_moving_half_used_tch_h.ho_vty index 3d1b009..b25cf96 100644 --- a/tests/handover/test_dyn_ts_favor_moving_half_used_tch_h.ho_vty +++ b/tests/handover/test_dyn_ts_favor_moving_half_used_tch_h.ho_vty @@ -2,23 +2,23 @@ # The algorithm should notice that this is about moving an lchan within the same cell, so all candidates will remain # with unchanged rxlev after a re-assignment; hence the current rxlev for each candidate should not make a difference. -create-bts trx-count 1 timeslots c+s4 dyn dyn dyn dyn dyn - - +create-bts trx-count 1 timeslots c+s4 TCH/F dyn dyn dyn dyn - - network handover2 min-free-slots tch/h 6 # Test with identical rxlev across lchans (trivial and unrealistic) -set-ts-use trx 0 0 states * pdch TCH/HH TCH/H- TCH/HH pdch - - +set-ts-use trx 0 0 states * - TCH/HH TCH/H- TCH/HH pdch - - meas-rep lchan * * * * rxlev 30 rxqual 0 ta 0 congestion-check expect-ho from lchan 0 0 3 0 to lchan 0 0 1 0 expect-ts-use trx 0 0 states * TCH/F TCH/HH pdch TCH/HH pdch - - # clear measurements for the next run -set-ts-use trx 0 0 states * pdch pdch pdch pdch pdch - - +set-ts-use trx 0 0 states * - pdch pdch pdch pdch - - # Check that a weaker rxlev coming up earlier in the congestion checking loop does not override the favored half-used # TCH/H -set-ts-use trx 0 0 states * pdch TCH/HH TCH/H- TCH/HH pdch - - +set-ts-use trx 0 0 states * - TCH/HH TCH/H- TCH/HH pdch - - meas-rep lchan 0 0 2 1 rxlev 30 rxqual 0 ta 0 meas-rep lchan 0 0 3 0 rxlev 31 rxqual 0 ta 0 meas-rep lchan 0 0 4 0 rxlev 32 rxqual 0 ta 0 @@ -28,11 +28,11 @@ expect-ts-use trx 0 0 states * TCH/F TCH/HH pdch TCH/HH pdch - - # clear measurements for the next run -set-ts-use trx 0 0 states * pdch pdch pdch pdch pdch - - +set-ts-use trx 0 0 states * - pdch pdch pdch pdch - - # Check that a weaker rxlev coming up later in the congestion checking loop does not override the favored half-used # TCH/H -set-ts-use trx 0 0 states * pdch TCH/HH TCH/H- TCH/HH pdch - - +set-ts-use trx 0 0 states * - TCH/HH TCH/H- TCH/HH pdch - - meas-rep lchan 0 0 2 1 rxlev 34 rxqual 0 ta 0 meas-rep lchan 0 0 3 0 rxlev 33 rxqual 0 ta 0 meas-rep lchan 0 0 4 0 rxlev 32 rxqual 0 ta 0 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22261 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I492ea095cf3e3c3fd186c889166c4ed93ab3a007 Gerrit-Change-Number: 22261 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 10:50:42 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 19 Jan 2021 10:50:42 +0000 Subject: Change in osmo-bsc[master]: cosmetic: in a ho test, use '*' instead of pdch In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22262 ) Change subject: cosmetic: in a ho test, use '*' instead of pdch ...................................................................... cosmetic: in a ho test, use '*' instead of pdch The idea is to avoid confusion between the static PDCH and the dynamic timeslots. The PDCH is always in 'pdch' mode, while the dynamic timeslots are 'pdch' when they are not occupied by any TCH. Change-Id: I1a12518d85ed891c491723e7f03f5bdd4fad980f --- M tests/handover/test_dyn_ts_amr_tch_f_to_h_congestion_assignment.ho_vty 1 file changed, 11 insertions(+), 11 deletions(-) Approvals: pespin: Looks good to me, but someone else must approve osmith: Looks good to me, approved Jenkins Builder: Verified diff --git a/tests/handover/test_dyn_ts_amr_tch_f_to_h_congestion_assignment.ho_vty b/tests/handover/test_dyn_ts_amr_tch_f_to_h_congestion_assignment.ho_vty index f94ad0e..85b00e8 100644 --- a/tests/handover/test_dyn_ts_amr_tch_f_to_h_congestion_assignment.ho_vty +++ b/tests/handover/test_dyn_ts_amr_tch_f_to_h_congestion_assignment.ho_vty @@ -19,59 +19,59 @@ create-ms bts 0 TCH/F AMR meas-rep lchan 0 0 5 0 rxlev 40 rxqual 0 ta 0 neighbors 30 -expect-ts-use trx 0 0 states * TCH/F TCH/F TCH/F TCH/F TCH/F pdch pdch +expect-ts-use trx 0 0 states * TCH/F TCH/F TCH/F TCH/F TCH/F pdch * congestion-check expect-ho from lchan 0 0 5 0 to lchan 0 0 6 0 -expect-ts-use trx 0 0 states * TCH/F TCH/F TCH/F TCH/F pdch TCH/H- pdch +expect-ts-use trx 0 0 states * TCH/F TCH/F TCH/F TCH/F pdch TCH/H- * congestion-check expect-ho from lchan 0 0 4 0 to lchan 0 0 6 1 -expect-ts-use trx 0 0 states * TCH/F TCH/F TCH/F pdch pdch TCH/HH pdch +expect-ts-use trx 0 0 states * TCH/F TCH/F TCH/F pdch pdch TCH/HH * congestion-check expect-no-chan create-ms bts 0 TCH/F AMR meas-rep lchan 0 0 4 0 rxlev 40 rxqual 0 ta 0 neighbors 30 -expect-ts-use trx 0 0 states * TCH/F TCH/F TCH/F TCH/F pdch TCH/HH pdch +expect-ts-use trx 0 0 states * TCH/F TCH/F TCH/F TCH/F pdch TCH/HH * congestion-check expect-ho from lchan 0 0 4 0 to lchan 0 0 5 0 -expect-ts-use trx 0 0 states * TCH/F TCH/F TCH/F pdch TCH/H- TCH/HH pdch +expect-ts-use trx 0 0 states * TCH/F TCH/F TCH/F pdch TCH/H- TCH/HH * congestion-check expect-ho from lchan 0 0 1 0 to lchan 0 0 5 1 -expect-ts-use trx 0 0 states * - TCH/F TCH/F pdch TCH/HH TCH/HH pdch +expect-ts-use trx 0 0 states * - TCH/F TCH/F pdch TCH/HH TCH/HH * congestion-check expect-no-chan create-ms bts 0 TCH/F AMR meas-rep lchan 0 0 1 0 rxlev 40 rxqual 0 ta 0 neighbors 30 -expect-ts-use trx 0 0 states * TCH/F TCH/F TCH/F pdch TCH/HH TCH/HH pdch +expect-ts-use trx 0 0 states * TCH/F TCH/F TCH/F pdch TCH/HH TCH/HH * congestion-check expect-ho from lchan 0 0 1 0 to lchan 0 0 4 0 -expect-ts-use trx 0 0 states * - TCH/F TCH/F TCH/H- TCH/HH TCH/HH pdch +expect-ts-use trx 0 0 states * - TCH/F TCH/F TCH/H- TCH/HH TCH/HH * congestion-check expect-ho from lchan 0 0 2 0 to lchan 0 0 4 1 -expect-ts-use trx 0 0 states * - - TCH/F TCH/HH TCH/HH TCH/HH pdch +expect-ts-use trx 0 0 states * - - TCH/F TCH/HH TCH/HH TCH/HH * congestion-check expect-no-chan create-ms bts 0 TCH/F AMR meas-rep lchan 0 0 1 0 rxlev 40 rxqual 0 ta 0 neighbors 30 -expect-ts-use trx 0 0 states * TCH/F - TCH/F TCH/HH TCH/HH TCH/HH pdch +expect-ts-use trx 0 0 states * TCH/F - TCH/F TCH/HH TCH/HH TCH/HH * congestion-check expect-no-chan create-ms bts 0 TCH/F AMR meas-rep lchan 0 0 2 0 rxlev 40 rxqual 0 ta 0 neighbors 30 -expect-ts-use trx 0 0 states * TCH/F TCH/F TCH/F TCH/HH TCH/HH TCH/HH pdch +expect-ts-use trx 0 0 states * TCH/F TCH/F TCH/F TCH/HH TCH/HH TCH/HH * congestion-check expect-no-chan -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22262 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I1a12518d85ed891c491723e7f03f5bdd4fad980f Gerrit-Change-Number: 22262 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 11:17:06 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 19 Jan 2021 11:17:06 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: add utilities to send and parse BSSGP rim PDUs In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22046 ) Change subject: gprs_bssgp: add utilities to send and parse BSSGP rim PDUs ...................................................................... Patch Set 6: (2 comments) https://gerrit.osmocom.org/c/libosmocore/+/22046/6/include/osmocom/gprs/gprs_bssgp.h File include/osmocom/gprs/gprs_bssgp.h: https://gerrit.osmocom.org/c/libosmocore/+/22046/6/include/osmocom/gprs/gprs_bssgp.h at 73 PS6, Line 73: in those two messages are not symmetric. One is encoding + transmitting, while the other is jsut decoding. I would argue we want at least an encode + decode function, while the transmit is more like an optional (but welcome additional) helper. So something like 'struct msgb *bssgp_encode_rim_pdu(const struct bssgp_ran_informatoin_pdu *)' is missing. The bssgp_tx_rim() can then simply call that function, set msgb_nsei and call bssgp_ns_send(). https://gerrit.osmocom.org/c/libosmocore/+/22046/6/src/gb/gprs_bssgp_util.c File src/gb/gprs_bssgp_util.c: https://gerrit.osmocom.org/c/libosmocore/+/22046/6/src/gb/gprs_bssgp_util.c at 701 PS6, Line 701: rc = why is this re-inventing a simplistic BSSGP message parser? We do have a "proper" BSSGP parser whihc validates the mandatory IEs and also validates the minimum length of all IEs: osmo_tlv_prot_parse(&osmo_pdef_bssgp, tp, ARAY_SIZE(tp), bgph->data, data_len, 0, 0, DBSSGP, __func__) One of the benefits of using that is that you don't need to check for PRES_LEN everywhere below, but can just use TLVP_PRES, as the minimum length is already ensured by the parser. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22046 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I18134fd9938040d2facb6beee3732628b167ce8c Gerrit-Change-Number: 22046 Gerrit-PatchSet: 6 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 19 Jan 2021 11:17:06 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 11:33:35 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 19 Jan 2021 11:33:35 +0000 Subject: Change in osmo-hlr[master]: Add vty command to show summary of all or filtered subscribers In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-hlr/+/22311 ) Change subject: Add vty command to show summary of all or filtered subscribers ...................................................................... Patch Set 5: (5 comments) one important element of reading from a database is to limit the amount of entries, i.e. we wouldn't want to dump the list of all subscribers of an entire continent by accident. So I guess the db_subscr_get() should have a 'limit' argument, or alternatively the get_cb() should be able to terminate reading from the DB by returning false, for example. If the get_cb() also gets an argument indicating the row nr within the filtered result, then the get_cb() could decide to drop out after, say, 1000 entries. Thinking: vty dumping more than (say) 1000 entries should be prevented anyway to make sure osmo-hlr doesn't miss out on handling sockets in time. https://gerrit.osmocom.org/c/osmo-hlr/+/22311/5/src/db_hlr.c File src/db_hlr.c: https://gerrit.osmocom.org/c/osmo-hlr/+/22311/5/src/db_hlr.c at 626 PS5, Line 626: } (add a blank line) https://gerrit.osmocom.org/c/osmo-hlr/+/22311/5/src/db_hlr.c at 638 PS5, Line 638: int db_subscrs_get_print(struct vty *vty, struct db_context *dbc, const char *filter_type, const char *filter, Good solution: in fact this uses a callback function -- which is more elegant than using the vty directly. So this function itself should not need to know what it is passing on to the callback function at all, and it also doesn't need to know whether the subscriber will be printed or what happens to it, i.e. there should be no mention of a 'struct vty' or 'vty' or 'print' here at all. instead, the usual pattern for this situation is to use a 'void *data' arg to be passed to the callback: int db_subscrs_get(struct db_context *dbc, [...], void (*get_cb)(struct hlr_subscriber *subscr, void *data), void *data) { ... get_cb(subscr, data); } Then a get_cb implementation could use the vty like this: void subscr_print_vty(struct hlr_subscriber *subscr, void *data) { struct vty *vty = data; vty_out(vty, "..."); } foo(struct vty *vty) { db_subscrs_get(dbc, [...], subscr_print_vty, vty); } Like this the db_subscrs_get() is the most generally useful naming and parameter typing, and you happen to use it for printing to vty. https://gerrit.osmocom.org/c/osmo-hlr/+/22311/5/src/db_hlr.c at 689 PS5, Line 689: subscr->id = sqlite3_column_int64(stmt, 0); (along with fixeria's comment: here you could do sub = (struct hlr_subscriber){ .id = sqlite3_column_int64(stmt, 0), } which would both zero init and set the id member) https://gerrit.osmocom.org/c/osmo-hlr/+/22311/5/src/hlr_vty_subscr.c File src/hlr_vty_subscr.c: https://gerrit.osmocom.org/c/osmo-hlr/+/22311/5/src/hlr_vty_subscr.c at 229 PS5, Line 229: rc = db_subscrs_get_print(vty, g_hlr->dbc, filter_type, filter, subscr_dump_summary_vty, &count, &err); to call the pre-existing subscr_dump_summary_vty(): to match the 'void *data' as I described before I'd suggest a simple shim function (which will most likely get optimized away by the compiler) to forward the callback: void print_vty_cb(struct hlr_subcsriber *subscr, void *data) { subscr_dump_summary_vty((struct vty*)data, subscr); } and then db_subscrs_get(g_hlr->dbc, ....., print_vty_cb, vty, &count, &err); https://gerrit.osmocom.org/c/osmo-hlr/+/22311/5/src/hlr_vty_subscr.c at 230 PS5, Line 230: if (count > 40) { hm, this code dup is not so nice. think: if someone modifies the column headers and tests only with < 40 entries, and never notices that the footer names were forgotten to be updated... Possibly that get_cb() could be passed an index number as well, and the headers could be printed before the first line and again every 40 lines? -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/22311 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-Change-Id: I7f0573381a6d0d13841ac6d42d50f0e8389decf4 Gerrit-Change-Number: 22311 Gerrit-PatchSet: 5 Gerrit-Owner: keith Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-CC: laforge Gerrit-CC: neels Gerrit-Comment-Date: Tue, 19 Jan 2021 11:33:35 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 13:10:58 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 19 Jan 2021 13:10:58 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Print the correct message type for dummy paging/paging reject In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22312 ) Change subject: gbproxy: Print the correct message type for dummy paging/paging reject ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22312 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I5337abb27587fa2e8320b5bfc3765c9de5c57f6c Gerrit-Change-Number: 22312 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Tue, 19 Jan 2021 13:10:58 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 13:11:02 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 19 Jan 2021 13:11:02 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Print the correct message type for dummy paging/paging reject In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22312 ) Change subject: gbproxy: Print the correct message type for dummy paging/paging reject ...................................................................... gbproxy: Print the correct message type for dummy paging/paging reject Change-Id: I5337abb27587fa2e8320b5bfc3765c9de5c57f6c --- M src/gbproxy/gb_proxy.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/gbproxy/gb_proxy.c b/src/gbproxy/gb_proxy.c index b06850f..edd9f29 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -436,7 +436,7 @@ OSMO_ASSERT(nse->sgsn_facing); rc = gbprox_relay2nse(msg, nse, ns_bvci); } else { - LOGPBVC(bss_bvc, LOGL_ERROR, "Rx unmatched PAGING REJECT/DUMMY PAGING RESP with IMSI %s\n", mi.imsi); + LOGPBVC(bss_bvc, LOGL_ERROR, "Rx unmatched %s with IMSI %s\n", pdut_name, mi.imsi); } break; } -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22312 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I5337abb27587fa2e8320b5bfc3765c9de5c57f6c Gerrit-Change-Number: 22312 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 13:42:09 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 19 Jan 2021 13:42:09 +0000 Subject: Change in docker-playground[master]: ttcn3-pcu-test/sns: add configuration for 2nd and 3rd nsvc In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22278 ) Change subject: ttcn3-pcu-test/sns: add configuration for 2nd and 3rd nsvc ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/docker-playground/+/22278/1//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/docker-playground/+/22278/1//COMMIT_MSG at 12 PS1, Line 12: osmo-ttcn3-hacks: c316572db111 ("RAW_NS: rework NS connection to use NS_Provider") Did you mean Required: I (repo)? -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22278 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I8020f808c06054ee38427de65b8c3867817d4ad2 Gerrit-Change-Number: 22278 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 19 Jan 2021 13:42:09 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 13:43:22 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 19 Jan 2021 13:43:22 +0000 Subject: Change in osmo-ttcn3-hacks[master]: NS_Emulation: Dynamically compute list of v4/v6 endpoints in SNS-CONFIG In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22303 ) Change subject: NS_Emulation: Dynamically compute list of v4/v6 endpoints in SNS-CONFIG ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22303 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I43fe5810b95ebbc9f848856803ac2c71f80d74f3 Gerrit-Change-Number: 22303 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Tue, 19 Jan 2021 13:43:22 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 13:49:17 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 19 Jan 2021 13:49:17 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Use separate NS-VC for data / signalling on SGSN side In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22306 ) Change subject: gbproxy: Use separate NS-VC for data / signalling on SGSN side ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22306/1/gbproxy/GBProxy_Tests.ttcn File gbproxy/GBProxy_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22306/1/gbproxy/GBProxy_Tests.ttcn at 88 PS1, Line 88: nsvci := 201 Should we change the naming here to have nsei 101, 201, ... and nsvci for 101 be 101, 102, ...? -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22306 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If0e404bdf2c30a5e18748695608611be83f61109 Gerrit-Change-Number: 22306 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Tue, 19 Jan 2021 13:49:17 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 13:50:10 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 19 Jan 2021 13:50:10 +0000 Subject: Change in libosmocore[master]: gprs_ns2: add assert on most bind calls In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22273 ) Change subject: gprs_ns2: add assert on most bind calls ...................................................................... Patch Set 7: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22273 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia4f8932263c60618c7f0dfc32d50ba5a8d57602b Gerrit-Change-Number: 22273 Gerrit-PatchSet: 7 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 19 Jan 2021 13:50:10 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 13:52:04 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 19 Jan 2021 13:52:04 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Move different network elements to different IPs In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22300 ) Change subject: gbproxy: Move different network elements to different IPs ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22300/1/gbproxy/osmo-gbproxy.cfg File gbproxy/osmo-gbproxy.cfg: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22300/1/gbproxy/osmo-gbproxy.cfg at 23 PS1, Line 23: ip-sns 127.0.0.11 8888 In that case I think we should keep the port the same. So 7777 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22300 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I1762bfc237e679ee21d0446596f2c4f56f735a9d Gerrit-Change-Number: 22300 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 19 Jan 2021 13:52:04 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 13:52:30 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 19 Jan 2021 13:52:30 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Osmocom_Types: fix formatting of log line (missing ", ") In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22301 ) Change subject: Osmocom_Types: fix formatting of log line (missing ", ") ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22301 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If4555cd2902e056b32e835daa741ee84b346b922 Gerrit-Change-Number: 22301 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 19 Jan 2021 13:52:30 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 13:56:14 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 19 Jan 2021 13:56:14 +0000 Subject: Change in osmo-bsc[master]: show bug: add test_dyn_ts_balance_congestion.ho_vty In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22268 ) Change subject: show bug: add test_dyn_ts_balance_congestion.ho_vty ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22268 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I34471fbd490a95253bd0709308a42cde2af6481c Gerrit-Change-Number: 22268 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 19 Jan 2021 13:56:14 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 13:56:30 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 19 Jan 2021 13:56:30 +0000 Subject: Change in osmo-bsc[master]: show bug: add test_dyn_ts_congestion_tch_f_vs_tch_h.ho_vty In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22263 ) Change subject: show bug: add test_dyn_ts_congestion_tch_f_vs_tch_h.ho_vty ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22263 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I3002797dea02dd0c10cfdd091ce73834a753e3a6 Gerrit-Change-Number: 22263 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 19 Jan 2021 13:56:30 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 13:56:37 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 19 Jan 2021 13:56:37 +0000 Subject: Change in osmo-bsc[master]: fixate test_dyn_ts_congestion_tch_f_vs_tch_h.ho_vty In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22264 ) Change subject: fixate test_dyn_ts_congestion_tch_f_vs_tch_h.ho_vty ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22264 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ifeaec39ecb64b476ff1438cf987ba0403489c43b Gerrit-Change-Number: 22264 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 19 Jan 2021 13:56:37 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 13:57:07 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 19 Jan 2021 13:57:07 +0000 Subject: Change in osmo-ttcn3-hacks[master]: NS_Emulation: Move SNS handling from NS-VC to NS-VCG In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22304 ) Change subject: NS_Emulation: Move SNS handling from NS-VC to NS-VCG ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22304 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ie0f4342a0346952d7c50ac36900148e311d4c782 Gerrit-Change-Number: 22304 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Tue, 19 Jan 2021 13:57:07 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 13:57:21 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 19 Jan 2021 13:57:21 +0000 Subject: Change in osmo-bsc[master]: hodec2: fix congestion resolution on dyn TS In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22265 ) Change subject: hodec2: fix congestion resolution on dyn TS ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22265 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I1536b60f03cb0aeb6ba14a72b518aec82fa572fe Gerrit-Change-Number: 22265 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 19 Jan 2021 13:57:21 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 13:57:33 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 19 Jan 2021 13:57:33 +0000 Subject: Change in osmo-bsc[master]: add test_dyn_ts_congestion_tch_f_vs_tch_h_2.ho_vty In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22266 ) Change subject: add test_dyn_ts_congestion_tch_f_vs_tch_h_2.ho_vty ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22266 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ib11d10f35f72a3dff65bb0c5e185fdda602ccd63 Gerrit-Change-Number: 22266 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 19 Jan 2021 13:57:33 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 13:58:11 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 19 Jan 2021 13:58:11 +0000 Subject: Change in osmo-bsc[master]: lchan_avail(): omit logging for handover decision 2 In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22267 ) Change subject: lchan_avail(): omit logging for handover decision 2 ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22267 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ia403f8fc853ca9ea9e81f7a7395df6b23845ebed Gerrit-Change-Number: 22267 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 19 Jan 2021 13:58:11 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 13:58:36 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 19 Jan 2021 13:58:36 +0000 Subject: Change in osmo-bsc[master]: hodec2: fix congestion balancing on dyn TS In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22269 ) Change subject: hodec2: fix congestion balancing on dyn TS ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22269 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I433df6f343650f9056b1bab926bc19ac1d867ad5 Gerrit-Change-Number: 22269 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 19 Jan 2021 13:58:36 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 13:59:52 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 19 Jan 2021 13:59:52 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Move different network elements to different IPs In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22300 ) Change subject: gbproxy: Move different network elements to different IPs ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22300/1/gbproxy/osmo-gbproxy.cfg File gbproxy/osmo-gbproxy.cfg: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22300/1/gbproxy/osmo-gbproxy.cfg at 23 PS1, Line 23: ip-sns 127.0.0.11 8888 > In that case I think we should keep the port the same. [?] I would argue the more fields are different, the better. Otherwise it's easy to misread something in wireshark. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22300 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I1762bfc237e679ee21d0446596f2c4f56f735a9d Gerrit-Change-Number: 22300 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 19 Jan 2021 13:59:52 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: daniel Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 14:03:21 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 19 Jan 2021 14:03:21 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Use separate NS-VC for data / signalling on SGSN side In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22306 ) Change subject: gbproxy: Use separate NS-VC for data / signalling on SGSN side ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22306/1/gbproxy/GBProxy_Tests.ttcn File gbproxy/GBProxy_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22306/1/gbproxy/GBProxy_Tests.ttcn at 88 PS1, Line 88: nsvci := 201 > Should we change the naming here to have nsei 101, 201, ... and nsvci for 101 be 101, 102, ... [?] I don't really care too much. My main concern when doing suhc kind of allocations is to not use the same number at several levels. So NSEI 101 with NSVCI 101 is a bad idea, as you would pass the test even if the code would once use the NSEI where the NSVCI is supposed to be used, and vice-versa. Still, some similarity maskes sense. But one could e.g. use NSE 1001 with NSVCI 1101, 1102, ... - in any case, it's outside of this patch. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22306 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If0e404bdf2c30a5e18748695608611be83f61109 Gerrit-Change-Number: 22306 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Tue, 19 Jan 2021 14:03:21 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: daniel Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 14:04:03 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 19 Jan 2021 14:04:03 +0000 Subject: Change in libosmocore[master]: gprs_ns2: add assert on most bind calls In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22273 ) Change subject: gprs_ns2: add assert on most bind calls ...................................................................... Patch Set 7: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22273 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia4f8932263c60618c7f0dfc32d50ba5a8d57602b Gerrit-Change-Number: 22273 Gerrit-PatchSet: 7 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 19 Jan 2021 14:04:03 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 14:04:18 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 19 Jan 2021 14:04:18 +0000 Subject: Change in libosmocore[master]: test: gprs_ns2: free the nsi after each test In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22272 ) Change subject: test: gprs_ns2: free the nsi after each test ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22272 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I700da48d7afe6b1a81484a0725faf0c56073446d Gerrit-Change-Number: 22272 Gerrit-PatchSet: 4 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 19 Jan 2021 14:04:18 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 14:04:19 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 19 Jan 2021 14:04:19 +0000 Subject: Change in osmo-ttcn3-hacks[master]: NS_Emulation: Respect data_weight==0 or signalling_weight==0 In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22305 ) Change subject: NS_Emulation: Respect data_weight==0 or signalling_weight==0 ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22305/1/gbproxy/GBProxy_Tests.ttcn File gbproxy/GBProxy_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22305/1/gbproxy/GBProxy_Tests.ttcn at 71 PS1, Line 71: data_weight := 0, Shouldn't you set data_weight 1 here (and below) as well and only change it in the next commit where you introduce the second NS-VC? -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22305 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I9798e639b4bc8658482945970775b012b5840779 Gerrit-Change-Number: 22305 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Tue, 19 Jan 2021 14:04:19 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 14:04:48 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 19 Jan 2021 14:04:48 +0000 Subject: Change in libosmocore[master]: gprs_ns2: allow to use free_vc() with NULL In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22274 ) Change subject: gprs_ns2: allow to use free_vc() with NULL ...................................................................... Patch Set 9: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22274 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If7b0c6916a29d4611d0a40c388414076eb83e6b5 Gerrit-Change-Number: 22274 Gerrit-PatchSet: 9 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 19 Jan 2021 14:04:48 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 14:05:04 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 19 Jan 2021 14:05:04 +0000 Subject: Change in libosmocore[master]: osmo-ns-dummy: don't leak primitive messages In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22291 ) Change subject: osmo-ns-dummy: don't leak primitive messages ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22291 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I2a7b19f019485c7b1f15baf20b62edc19b663415 Gerrit-Change-Number: 22291 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 19 Jan 2021 14:05:04 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 14:05:42 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 19 Jan 2021 14:05:42 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vc_fsm: rename all event to match RX_ or REQ_ In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22292 ) Change subject: gprs_ns2_vc_fsm: rename all event to match RX_ or REQ_ ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22292 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I341fa28fb671d439c050d985c88ece1521430a99 Gerrit-Change-Number: 22292 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 19 Jan 2021 14:05:42 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 14:06:27 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 19 Jan 2021 14:06:27 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vc_fsm: ensure all state is resetted via force_unconf In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22293 ) Change subject: gprs_ns2_vc_fsm: ensure all state is resetted via force_unconf ...................................................................... Patch Set 3: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/22293/3/src/gb/gprs_ns2_vc_fsm.c File src/gb/gprs_ns2_vc_fsm.c: https://gerrit.osmocom.org/c/libosmocore/+/22293/3/src/gb/gprs_ns2_vc_fsm.c at 60 PS3, Line 60: bool initiator; > what does true and false mean here? true == we are the 'initiator', false if not? Am I missing something? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22293 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I240225ce82fa27dfcb5b4b8e2981bb4d8cc4cd70 Gerrit-Change-Number: 22293 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 19 Jan 2021 14:06:27 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 14:07:10 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 19 Jan 2021 14:07:10 +0000 Subject: Change in libosmocore[master]: gprs_ns2: implement BLOCK/UNBLOCK of a NSVC by vty In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22210 ) Change subject: gprs_ns2: implement BLOCK/UNBLOCK of a NSVC by vty ...................................................................... Patch Set 13: (2 comments) https://gerrit.osmocom.org/c/libosmocore/+/22210/13/tests/gb/gprs_ns2_test.c File tests/gb/gprs_ns2_test.c: https://gerrit.osmocom.org/c/libosmocore/+/22210/13/tests/gb/gprs_ns2_test.c at 155 PS13, Line 155: nsvc[1] = ns2_vc_alloc(bind[0], nse, false, NS2_VC_MODE_ALIVE, NULL); Here aswell https://gerrit.osmocom.org/c/libosmocore/+/22210/13/tests/gb/gprs_ns2_test.c at 163 PS13, Line 163: nsvc[2] = ns2_vc_alloc(bind[1], nse, false, NS2_VC_MODE_ALIVE, NULL); Here aswell -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22210 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic0ce3c5fabc8644cc1ee71a8f6dd783fadf7b84d Gerrit-Change-Number: 22210 Gerrit-PatchSet: 13 Gerrit-Owner: lynxis lazus Gerrit-Assignee: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 19 Jan 2021 14:07:10 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 14:40:52 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 19 Jan 2021 14:40:52 +0000 Subject: Change in osmo-pcu[master]: Unify BTS into a C usable structure In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22196 ) Change subject: Unify BTS into a C usable structure ...................................................................... Patch Set 6: (9 comments) Found some minor things, otherwise +1. Well done, Pau! https://gerrit.osmocom.org/c/osmo-pcu/+/22196/6/src/bts.h File src/bts.h: https://gerrit.osmocom.org/c/osmo-pcu/+/22196/6/src/bts.h at 199 PS6, Line 199: uint16_t mcs_mask; /* Allowed MCS mask from struct gprs_rlcmac_bts */ "from BTS" -> "from struct gprs_rlcmac_bts" looks like unintentional replacement. Or if not, what do you mean with it? https://gerrit.osmocom.org/c/osmo-pcu/+/22196/6/src/bts.h at 227 PS6, Line 227: // BTS: Looks like this "// BTS:" comment separates old C and C++ code. Did you intend to leave that in? (if so: different comment style, make it more descriptive?) https://gerrit.osmocom.org/c/osmo-pcu/+/22196/6/src/bts.h at 264 PS6, Line 264: void bts_set_current_frame_number(struct gprs_rlcmac_bts *bts, int frame_number); What about the 'TODO: change the number to unsigned' comment that was removed? https://gerrit.osmocom.org/c/osmo-pcu/+/22196/6/src/bts.h at 271 PS6, Line 271: int bts_tfi_find_free(const struct gprs_rlcmac_bts *bts, enum gprs_rlcmac_tbf_direction dir, uint8_t *_trx, int8_t use_trx); (line > 120 characters) https://gerrit.osmocom.org/c/osmo-pcu/+/22196/6/src/bts.cpp File src/bts.cpp: https://gerrit.osmocom.org/c/osmo-pcu/+/22196/6/src/bts.cpp at 569 PS6, Line 569: int bts_tfi_find_free(const struct gprs_rlcmac_bts *bts, enum gprs_rlcmac_tbf_direction dir, uint8_t *_trx, int8_t use_trx) (line too long) https://gerrit.osmocom.org/c/osmo-pcu/+/22196/6/src/pdch.cpp File src/pdch.cpp: https://gerrit.osmocom.org/c/osmo-pcu/+/22196/6/src/pdch.cpp at 116 PS6, Line 116: static inline void sched_ul_ass_or_rej(struct gprs_rlcmac_bts *bts, gprs_rlcmac_bts *bts_data, struct gprs_rlcmac_dl_tbf *tbf) (long line) https://gerrit.osmocom.org/c/osmo-pcu/+/22196/6/src/pdch.cpp at 708 PS6, Line 708: bts_send_gsmtap_meas(bts(), PCU_GSMTAP_C_UL_CTRL, true, trx_no(), ts_no, GSMTAP_CHANNEL_PACCH, fn, data, data_len, meas); (while add it, add line breaks in both lines?) https://gerrit.osmocom.org/c/osmo-pcu/+/22196/6/tests/app_info/AppInfoTest.cpp File tests/app_info/AppInfoTest.cpp: https://gerrit.osmocom.org/c/osmo-pcu/+/22196/6/tests/app_info/AppInfoTest.cpp at 158 PS6, Line 158: /* FIXME: talloc report disabled, because bts_alloc_ms(bts, ) in prepare_bts_with_two_dl_tbf_subscr() causes leak */ (long line) https://gerrit.osmocom.org/c/osmo-pcu/+/22196/6/tests/tbf/TbfTest.cpp File tests/tbf/TbfTest.cpp: https://gerrit.osmocom.org/c/osmo-pcu/+/22196/6/tests/tbf/TbfTest.cpp at 2206 PS6, Line 2206: bts = bts; bts = bts ? ;) $ git grep -n 'bts = bts;' ... tests/alloc/AllocTest.cpp:467: bts = bts; tests/app_info/AppInfoTest.cpp:86: bts = bts; tests/edge/EdgeTest.cpp:1158: bts = bts; tests/tbf/TbfTest.cpp:487: bts = bts; tests/tbf/TbfTest.cpp:533: bts = bts; tests/tbf/TbfTest.cpp:692: bts = bts; tests/tbf/TbfTest.cpp:838: bts = bts; tests/tbf/TbfTest.cpp:1272: bts = bts; tests/tbf/TbfTest.cpp:1587: bts = bts; tests/tbf/TbfTest.cpp:2206: bts = bts; tests/tbf/TbfTest.cpp:2271: bts = bts; tests/tbf/TbfTest.cpp:2318: bts = bts; tests/tbf/TbfTest.cpp:2401: bts = bts; -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22196 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I7d12c896c5ded659ca9d3bff4cf3a3fc857db9dd Gerrit-Change-Number: 22196 Gerrit-PatchSet: 6 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 19 Jan 2021 14:40:52 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 14:45:39 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 19 Jan 2021 14:45:39 +0000 Subject: Change in osmo-pcu[master]: Get rid of bts singletons In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22275 ) Change subject: Get rid of bts singletons ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22275 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I9cf762b0d3cb9e2cc3582727e07fa82c8e183ec5 Gerrit-Change-Number: 22275 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 19 Jan 2021 14:45:39 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 14:49:52 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 19 Jan 2021 14:49:52 +0000 Subject: Change in osmo-pcu[master]: Rename 'bts_data' leftovers to 'bts' In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22276 ) Change subject: Rename 'bts_data' leftovers to 'bts' ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22276 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I9852bf439292d1abc70711bea65698b21bde0ee8 Gerrit-Change-Number: 22276 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 19 Jan 2021 14:49:52 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 14:53:18 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 19 Jan 2021 14:53:18 +0000 Subject: Change in osmo-pcu[master]: bts: combine bts_{init, cleanup} into consturctor/destructor methods In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22277 ) Change subject: bts: combine bts_{init,cleanup} into consturctor/destructor methods ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22277 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I73a9457d5c92f62261561ef6afe392953576aec4 Gerrit-Change-Number: 22277 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 19 Jan 2021 14:53:18 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 14:55:38 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 19 Jan 2021 14:55:38 +0000 Subject: Change in osmo-pcu[master]: Get rid of unused gsm_timer.{cpp,h} In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22280 ) Change subject: Get rid of unused gsm_timer.{cpp,h} ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22280 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I6d50a8c15c1de5e2a308a24b313a7776f94ae54f Gerrit-Change-Number: 22280 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 19 Jan 2021 14:55:38 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 15:03:41 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 19 Jan 2021 15:03:41 +0000 Subject: Change in libosmocore[master]: gprs_ns2: implement BLOCK/UNBLOCK of a NSVC by vty In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22210 ) Change subject: gprs_ns2: implement BLOCK/UNBLOCK of a NSVC by vty ...................................................................... Patch Set 13: (2 comments) https://gerrit.osmocom.org/c/libosmocore/+/22210/13/tests/gb/gprs_ns2_test.c File tests/gb/gprs_ns2_test.c: https://gerrit.osmocom.org/c/libosmocore/+/22210/13/tests/gb/gprs_ns2_test.c at 147 PS13, Line 147: nsvc[0] = ns2_vc_alloc(bind[0], nse, false, NS2_VC_MODE_ALIVE, NULL); > you miss passing idbuf here. i'll drop the snprintf line https://gerrit.osmocom.org/c/libosmocore/+/22210/13/tests/gb/gprs_ns2_test.c at 155 PS13, Line 155: nsvc[1] = ns2_vc_alloc(bind[0], nse, false, NS2_VC_MODE_ALIVE, NULL); > Here aswell no. i this was not my patch. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22210 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic0ce3c5fabc8644cc1ee71a8f6dd783fadf7b84d Gerrit-Change-Number: 22210 Gerrit-PatchSet: 13 Gerrit-Owner: lynxis lazus Gerrit-Assignee: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 19 Jan 2021 15:03:41 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Comment-In-Reply-To: daniel Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 15:05:07 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 19 Jan 2021 15:05:07 +0000 Subject: Change in osmo-pcu[master]: Convert gprs_bssgp_pcu.cpp to C In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22295 ) Change subject: Convert gprs_bssgp_pcu.cpp to C ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22295 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ic771a89fd78b5e66151a5384f0ff6a8895589466 Gerrit-Change-Number: 22295 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 19 Jan 2021 15:05:07 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 15:05:31 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 19 Jan 2021 15:05:31 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Ignore dummy rlcmac packets in f_ms_rx_pkt_ass_pacch References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22313 ) Change subject: pcu: Ignore dummy rlcmac packets in f_ms_rx_pkt_ass_pacch ...................................................................... pcu: Ignore dummy rlcmac packets in f_ms_rx_pkt_ass_pacch Allow ignoring for received dumy packets while waiting for a Pkt Ass on PACCH. This fixes some tests failing sometimes due to race condition where rlcmac packet is requested too quicky, after the PCU has received the BSSGP packet we sent to it. The function is splitted into an internal altestep + a wrap function which is compatible with tests already using it. Change-Id: I0a10d3a7383d8534e9263864b4130a96392e6198 --- M pcu/GPRS_Components.ttcn M pcu/PCU_Tests.ttcn 2 files changed, 53 insertions(+), 29 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/13/22313/1 diff --git a/pcu/GPRS_Components.ttcn b/pcu/GPRS_Components.ttcn index 16036ad..54839d4 100644 --- a/pcu/GPRS_Components.ttcn +++ b/pcu/GPRS_Components.ttcn @@ -498,38 +498,62 @@ function f_ms_rx_pkt_ass_pacch(inout GprsMS ms, out uint32_t poll_fn, template RlcmacDlBlock t_pkt_ass := ?, - template (value) TsTrxBtsNum nr := ts_TsTrxBtsNum) + template (value) TsTrxBtsNum nr := ts_TsTrxBtsNum, + boolean ignore_dummy := true) runs on MS_BTS_IFACE_CT return RlcmacDlBlock { var RlcmacDlBlock dl_block; - var uint32_t dl_fn; + BTS.send(ts_PCUIF_RTS_REQ(nr.bts_nr, nr.trx_nr, nr.ts_nr, + sapi := PCU_IF_SAPI_PDTCH, fn := 0, + arfcn := f_trxnr2arfcn(valueof(nr.trx_nr)), block_nr := nr.blk_nr)); + as_ms_rx_pkt_ass_pacch(ms, poll_fn, t_pkt_ass, nr, ignore_dummy, dl_block); + return dl_block; +} - f_rx_rlcmac_dl_block(dl_block, dl_fn, nr := nr); - if (not match(dl_block, t_pkt_ass)) { - setverdict(fail, "Failed to match Packet Assignment:", t_pkt_ass); - f_shutdown(__BFILE__, __LINE__); - } +altstep as_ms_rx_pkt_ass_pacch(inout GprsMS ms, out uint32_t poll_fn, + template RlcmacDlBlock t_pkt_ass := ?, + template (value) TsTrxBtsNum nr := ts_TsTrxBtsNum, + boolean ignore_dummy := true, + out RlcmacDlBlock dl_block) +runs on MS_BTS_IFACE_CT { + var PCUIF_Message pcu_msg; + [] BTS.receive(tr_PCUIF_DATA_REQ(nr.bts_nr, nr.trx_nr, nr.ts_nr, + sapi := PCU_IF_SAPI_PDTCH)) -> value pcu_msg { + var uint32_t dl_fn; + dl_block := dec_RlcmacDlBlock(pcu_msg.u.data_req.data); + if (ignore_dummy and match(dl_block, tr_RLCMAC_DUMMY_CTRL())) { + /* TODO: sleep? */ + BTS.send(ts_PCUIF_RTS_REQ(nr.bts_nr, nr.trx_nr, nr.ts_nr, + sapi := PCU_IF_SAPI_PDTCH, fn := 0, + arfcn := f_trxnr2arfcn(valueof(nr.trx_nr)), block_nr := nr.blk_nr)); + repeat; + } - poll_fn := f_rrbp_ack_fn(dl_fn, dl_block.ctrl.mac_hdr.rrbp); - - if (match(dl_block, tr_RLCMAC_UL_PACKET_ASS)) { - ms.ul_tbf := f_ultbf_new_from_ass_pacch(dl_block); - if (ms.ul_tbf.ass.pacch.identity.tlli.tlli != ms.tlli) { - setverdict(fail, "Wrong TLLI ", ms.ul_tbf.ass.pacch.identity.tlli, " received vs exp ", ms.tlli); - f_shutdown(__BFILE__, __LINE__); - } - } else if (match(dl_block, tr_RLCMAC_DL_PACKET_ASS)) { - ms.dl_tbf := f_dltbf_new_from_ass_pacch(dl_block); - if (ischosen(ms.dl_tbf.ass.pacch.tfi_or_tlli.tlli) and - ms.dl_tbf.ass.pacch.tfi_or_tlli.tlli.tlli != ms.tlli) { - setverdict(fail, "Wrong TLLI ", ms.dl_tbf.ass.pacch.tfi_or_tlli.tlli.tlli, " received vs exp ", ms.tlli); + if (not match(dl_block, t_pkt_ass)) { + setverdict(fail, "Failed to match Packet Assignment:", t_pkt_ass); f_shutdown(__BFILE__, __LINE__); } - } else { - setverdict(fail, "Should not happen:", dl_block); - f_shutdown(__BFILE__, __LINE__); - } - return dl_block; + dl_fn := pcu_msg.u.data_req.fn; + poll_fn := f_rrbp_ack_fn(dl_fn, dl_block.ctrl.mac_hdr.rrbp); + + if (match(dl_block, tr_RLCMAC_UL_PACKET_ASS)) { + ms.ul_tbf := f_ultbf_new_from_ass_pacch(dl_block); + if (ms.ul_tbf.ass.pacch.identity.tlli.tlli != ms.tlli) { + setverdict(fail, "Wrong TLLI ", ms.ul_tbf.ass.pacch.identity.tlli, " received vs exp ", ms.tlli); + f_shutdown(__BFILE__, __LINE__); + } + } else if (match(dl_block, tr_RLCMAC_DL_PACKET_ASS)) { + ms.dl_tbf := f_dltbf_new_from_ass_pacch(dl_block); + if (ischosen(ms.dl_tbf.ass.pacch.tfi_or_tlli.tlli) and + ms.dl_tbf.ass.pacch.tfi_or_tlli.tlli.tlli != ms.tlli) { + setverdict(fail, "Wrong TLLI ", ms.dl_tbf.ass.pacch.tfi_or_tlli.tlli.tlli, " received vs exp ", ms.tlli); + f_shutdown(__BFILE__, __LINE__); + } + } else { + setverdict(fail, "Should not happen:", dl_block); + f_shutdown(__BFILE__, __LINE__); + } + } } function f_ms_establish_ul_tbf(inout GprsMS ms, template (value) TsTrxBtsNum nr := ts_TsTrxBtsNum) diff --git a/pcu/PCU_Tests.ttcn b/pcu/PCU_Tests.ttcn index 13b33b2..7d569b1 100644 --- a/pcu/PCU_Tests.ttcn +++ b/pcu/PCU_Tests.ttcn @@ -3109,8 +3109,8 @@ f_ms_tx_ul_block(ms, ts_RLC_UL_CTRL_ACK(ts_RlcMacUlCtrl_PKT_RES_REQ(ms.tlli, omit))); /* Expect an RLC/MAC block with Packet Uplink Assignment on PACCH (see 11.2.29) */ - var RlcmacDlBlock blk := f_ms_rx_pkt_ass_pacch(ms, poll_fn, tr_RLCMAC_UL_PACKET_ASS); - var PacketUlAssignment ua := blk.ctrl.payload.u.ul_assignment; + f_ms_rx_pkt_ass_pacch(ms, poll_fn, tr_RLCMAC_UL_PACKET_ASS); + var PacketUlAssignment ua := ms.ul_tbf.ass.pacch; /* 3GPP TS 44.060, section 12.8 "Frequency Parameters" */ var template (omit) FrequencyParameters fp; @@ -3165,8 +3165,8 @@ BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data)); /* Expect an RLC/MAC block with Packet Downlink Assignment on PACCH (see 11.2.29) */ - dl_block := f_ms_rx_pkt_ass_pacch(ms, poll_fn, tr_RLCMAC_DL_PACKET_ASS); - var PacketDlAssignment da := dl_block.ctrl.payload.u.dl_assignment; + f_ms_rx_pkt_ass_pacch(ms, poll_fn, tr_RLCMAC_DL_PACKET_ASS); + var PacketDlAssignment da := ms.dl_tbf.ass.pacch; /* This is an optional IE, so it's worth to check its presence */ if (not ispresent(da.freq_par)) { -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22313 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I0a10d3a7383d8534e9263864b4130a96392e6198 Gerrit-Change-Number: 22313 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 15:06:35 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 19 Jan 2021 15:06:35 +0000 Subject: Change in libosmocore[master]: test: gprs_ns2: replace free_bind() with clear_pdus() In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22271 ) Change subject: test: gprs_ns2: replace free_bind() with clear_pdus() ...................................................................... test: gprs_ns2: replace free_bind() with clear_pdus() free_bind() should free up all driver specific state but NOT the bind itself. As the only thing left is clearing the pdus rename the function to it. Change-Id: Iac506734c93aca8be045ac13788d07d1bdc78eb3 --- M tests/gb/gprs_ns2_test.c 1 file changed, 4 insertions(+), 4 deletions(-) Approvals: daniel: Looks good to me, but someone else must approve pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/tests/gb/gprs_ns2_test.c b/tests/gb/gprs_ns2_test.c index 7c28dca..4c47b6a 100644 --- a/tests/gb/gprs_ns2_test.c +++ b/tests/gb/gprs_ns2_test.c @@ -44,15 +44,15 @@ return 0; } -void free_bind(struct gprs_ns2_vc_bind *bind) +static void clear_pdus(struct gprs_ns2_vc_bind *bind) { - OSMO_ASSERT(bind); - talloc_free(bind); + struct osmo_wqueue *queue = bind->priv; + osmo_wqueue_clear(queue); } struct gprs_ns2_vc_driver vc_driver_dummy = { .name = "GB UDP dummy", - .free_bind = free_bind, + .free_bind = clear_pdus, }; static int vc_sendmsg(struct gprs_ns2_vc *nsvc, struct msgb *msg) -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22271 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Iac506734c93aca8be045ac13788d07d1bdc78eb3 Gerrit-Change-Number: 22271 Gerrit-PatchSet: 5 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 15:06:35 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 19 Jan 2021 15:06:35 +0000 Subject: Change in libosmocore[master]: test: gprs_ns2: free the nsi after each test In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22272 ) Change subject: test: gprs_ns2: free the nsi after each test ...................................................................... test: gprs_ns2: free the nsi after each test Change-Id: I700da48d7afe6b1a81484a0725faf0c56073446d --- M tests/gb/gprs_ns2_test.c 1 file changed, 1 insertion(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/tests/gb/gprs_ns2_test.c b/tests/gb/gprs_ns2_test.c index 4c47b6a..bcfd460 100644 --- a/tests/gb/gprs_ns2_test.c +++ b/tests/gb/gprs_ns2_test.c @@ -142,6 +142,7 @@ ns2_nse_notify_unblocked(nsvc[1], false); OSMO_ASSERT(ns2_count_transfer_cap(nse, 0) == 42 + 23); + gprs_ns2_free(nsi); printf("--- Finish NSE transfer cap\n"); } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22272 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I700da48d7afe6b1a81484a0725faf0c56073446d Gerrit-Change-Number: 22272 Gerrit-PatchSet: 5 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 15:14:27 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 19 Jan 2021 15:14:27 +0000 Subject: Change in osmo-pcu[master]: Move tbf::free_all static methods to proper object files In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22296 ) Change subject: Move tbf::free_all static methods to proper object files ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22296 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ida715cbf384431d37b2b192fbd7882957c93a4d1 Gerrit-Change-Number: 22296 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 19 Jan 2021 15:14:27 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 15:16:31 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 19 Jan 2021 15:16:31 +0000 Subject: Change in osmo-pcu[master]: Convert osmo_bts_sock.cpp to C In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22297 ) Change subject: Convert osmo_bts_sock.cpp to C ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22297 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I8965b5cc5a713e64788b5b6aa183d3035341ddbb Gerrit-Change-Number: 22297 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 19 Jan 2021 15:16:31 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 15:29:31 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 19 Jan 2021 15:29:31 +0000 Subject: Change in osmo-pcu[master]: Unify BTS into a C usable structure In-Reply-To: References: Message-ID: Hello osmith, Jenkins Builder, laforge, lynxis lazus, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-pcu/+/22196 to look at the new patch set (#7). Change subject: Unify BTS into a C usable structure ...................................................................... Unify BTS into a C usable structure Previous work on BTS class started to get stuff out of the C++ struct into a C struct (BTS -> struct gprs_glcmac_bts) so that some parts of it were accessible from C code. Doing so, however, ended up being messy too, since all code needs to be switching from one object to another, which actually refer to the same logical component. Let's instead rejoin the structures and make sure the struct is accessible and usable from both C and C++ code by rewriting all methods to be C compatible and converting 3 allocated suboject as pointers. This way BTS can internally still use those C++ objects while providing a clean APi to both C and C++ code. Change-Id: I7d12c896c5ded659ca9d3bff4cf3a3fc857db9dd --- M src/bts.cpp M src/bts.h M src/encoding.cpp M src/gprs_bssgp_pcu.cpp M src/gprs_ms.c M src/gprs_ms.h M src/gprs_ms_storage.cpp M src/gprs_ms_storage.h M src/gprs_pcu.c M src/gprs_pcu.h M src/gprs_rlcmac_sched.cpp M src/gprs_rlcmac_ts_alloc.cpp M src/gsm_timer.cpp M src/llc.cpp M src/llc.h M src/pcu_l1_if.cpp M src/pcu_main.cpp M src/pcu_vty_functions.cpp M src/pdch.cpp M src/pdch.h M src/poll_controller.cpp M src/poll_controller.h M src/rlc.cpp M src/rlc.h M src/sba.cpp M src/sba.h M src/tbf.cpp M src/tbf.h M src/tbf_dl.cpp M src/tbf_dl.h M src/tbf_ul.cpp M src/tbf_ul.h M tests/alloc/AllocTest.cpp M tests/alloc/MslotTest.cpp M tests/app_info/AppInfoTest.cpp M tests/edge/EdgeTest.cpp M tests/emu/pcu_emu.cpp M tests/fn/FnTest.cpp M tests/ms/MsTest.cpp M tests/tbf/TbfTest.cpp M tests/types/TypesTest.cpp 41 files changed, 1,048 insertions(+), 1,194 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/96/22196/7 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22196 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I7d12c896c5ded659ca9d3bff4cf3a3fc857db9dd Gerrit-Change-Number: 22196 Gerrit-PatchSet: 7 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: osmith Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 15:33:55 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 19 Jan 2021 15:33:55 +0000 Subject: Change in osmo-pcu[master]: Unify BTS into a C usable structure In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22196 ) Change subject: Unify BTS into a C usable structure ...................................................................... Patch Set 7: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22196 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I7d12c896c5ded659ca9d3bff4cf3a3fc857db9dd Gerrit-Change-Number: 22196 Gerrit-PatchSet: 7 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 19 Jan 2021 15:33:55 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 15:44:58 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 19 Jan 2021 15:44:58 +0000 Subject: Change in docker-playground[master]: ttcn3-pcu-test/sns: add configuration for 2nd and 3rd nsvc In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22278 ) Change subject: ttcn3-pcu-test/sns: add configuration for 2nd and 3rd nsvc ...................................................................... Patch Set 1: Code-Review+2 1+1 = 2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22278 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I8020f808c06054ee38427de65b8c3867817d4ad2 Gerrit-Change-Number: 22278 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 19 Jan 2021 15:44:58 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 15:45:20 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 19 Jan 2021 15:45:20 +0000 Subject: Change in docker-playground[master]: ttcn3-pcu-test/sns: add configuration for 2nd and 3rd nsvc In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22278 ) Change subject: ttcn3-pcu-test/sns: add configuration for 2nd and 3rd nsvc ...................................................................... ttcn3-pcu-test/sns: add configuration for 2nd and 3rd nsvc With the change to NS_Provider the configruation has to be extended to also include the other nsvcs. osmo-ttcn3-hacks: c316572db111 ("RAW_NS: rework NS connection to use NS_Provider") Change-Id: I8020f808c06054ee38427de65b8c3867817d4ad2 --- M ttcn3-pcu-test/sns/PCU_Tests.cfg 1 file changed, 24 insertions(+), 0 deletions(-) Approvals: pespin: Looks good to me, but someone else must approve daniel: Looks good to me, but someone else must approve lynxis lazus: Looks good to me, approved; Verified diff --git a/ttcn3-pcu-test/sns/PCU_Tests.cfg b/ttcn3-pcu-test/sns/PCU_Tests.cfg index 9cd4b38..c6af8a6 100644 --- a/ttcn3-pcu-test/sns/PCU_Tests.cfg +++ b/ttcn3-pcu-test/sns/PCU_Tests.cfg @@ -22,6 +22,30 @@ } }, nsvci := 1234 + }, + { + provider := { + ip := { + address_family := AF_INET, + local_ip := "172.18.14.10", + local_udp_port := 23001, + remote_ip := "172.18.14.101", + remote_udp_port := 23000 + } + }, + nsvci := 1234 + }, + { + provider := { + ip := { + address_family := AF_INET, + local_ip := "172.18.14.10", + local_udp_port := 23002, + remote_ip := "172.18.14.101", + remote_udp_port := 23000 + } + }, + nsvci := 1234 } } } -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22278 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I8020f808c06054ee38427de65b8c3867817d4ad2 Gerrit-Change-Number: 22278 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 15:57:35 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Tue, 19 Jan 2021 15:57:35 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: add utilities to send and parse BSSGP rim PDUs In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, pespin, fixeria, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22046 to look at the new patch set (#7). Change subject: gprs_bssgp: add utilities to send and parse BSSGP rim PDUs ...................................................................... gprs_bssgp: add utilities to send and parse BSSGP rim PDUs At the moment libosmogb offers no convinient way to send RIM PDUs. Also parsing an incoming RIM messages into destination, source routing info and RIM container is not available. Change-Id: I18134fd9938040d2facb6beee3732628b167ce8c Related: SYS#5103 --- M include/osmocom/gprs/gprs_bssgp.h M include/osmocom/gprs/gprs_bssgp_rim.h M src/gb/gprs_bssgp.c M src/gb/gprs_bssgp_rim.c M src/gb/gprs_bssgp_util.c M src/gb/libosmogb.map 6 files changed, 263 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/46/22046/7 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22046 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I18134fd9938040d2facb6beee3732628b167ce8c Gerrit-Change-Number: 22046 Gerrit-PatchSet: 7 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 15:57:45 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Tue, 19 Jan 2021 15:57:45 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: add utilities to send and parse BSSGP rim PDUs In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22046 ) Change subject: gprs_bssgp: add utilities to send and parse BSSGP rim PDUs ...................................................................... Patch Set 6: (2 comments) Thanks for reviewing! https://gerrit.osmocom.org/c/libosmocore/+/22046/6/include/osmocom/gprs/gprs_bssgp.h File include/osmocom/gprs/gprs_bssgp.h: https://gerrit.osmocom.org/c/libosmocore/+/22046/6/include/osmocom/gprs/gprs_bssgp.h at 73 PS6, Line 73: in > those two messages are not symmetric. [?] Done https://gerrit.osmocom.org/c/libosmocore/+/22046/6/src/gb/gprs_bssgp_util.c File src/gb/gprs_bssgp_util.c: https://gerrit.osmocom.org/c/libosmocore/+/22046/6/src/gb/gprs_bssgp_util.c at 701 PS6, Line 701: rc = > why is this re-inventing a simplistic BSSGP message parser? We do have a "proper" BSSGP parser whih [?] Done -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22046 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I18134fd9938040d2facb6beee3732628b167ce8c Gerrit-Change-Number: 22046 Gerrit-PatchSet: 6 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 19 Jan 2021 15:57:45 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: laforge Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 16:12:52 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 19 Jan 2021 16:12:52 +0000 Subject: Change in osmo-pcu[master]: Allow multiple bts objects in PCU In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22309 ) Change subject: Allow multiple bts objects in PCU ...................................................................... Patch Set 4: Code-Review-1 (11 comments) https://gerrit.osmocom.org/c/osmo-pcu/+/22309/3/src/bts.cpp File src/bts.cpp: https://gerrit.osmocom.org/c/osmo-pcu/+/22309/3/src/bts.cpp at 1132 PS3, Line 1132: void bts_update_tbf_ta(struct gprs_rlcmac_bts *bts, const char *p, uint32_t fn, uint8_t trx_no, uint8_t ts, int8_t ta, bool is_rach) (line too long) https://gerrit.osmocom.org/c/osmo-pcu/+/22309/3/src/gprs_bssgp_pcu.c File src/gprs_bssgp_pcu.c: https://gerrit.osmocom.org/c/osmo-pcu/+/22309/3/src/gprs_bssgp_pcu.c at 213 PS3, Line 213: /* FIXME: look if MS is attached a specific BTS and then only page on that one? */ Sounds like looping over the attached BTS and their MS would solve it. Is this out of scope for this patch? (same with _ps below) https://gerrit.osmocom.org/c/osmo-pcu/+/22309/3/src/gprs_bssgp_pcu.c at 823 PS3, Line 823: bts = llist_first_entry_or_null(&the_pcu->bts_list, struct gprs_rlcmac_bts, list); Why not add bts as parameter to gprs_bssgp_pcu_rx_ptp()? https://gerrit.osmocom.org/c/osmo-pcu/+/22309/3/src/gprs_rlcmac.h File src/gprs_rlcmac.h: https://gerrit.osmocom.org/c/osmo-pcu/+/22309/3/src/gprs_rlcmac.h at 116 PS3, Line 116: (space) https://gerrit.osmocom.org/c/osmo-pcu/+/22309/3/src/osmo-bts-litecell15/lc15_l1_if.c File src/osmo-bts-litecell15/lc15_l1_if.c: https://gerrit.osmocom.org/c/osmo-pcu/+/22309/3/src/osmo-bts-litecell15/lc15_l1_if.c at 160 PS3, Line 160: bts = llist_first_entry_or_null(&the_pcu->bts_list, struct gprs_rlcmac_bts, list); add bts parameter instead, or at least a FIXME comment like above? Same with all other "bts = llist_first_entry_or_null" lines below / in other files. Alternatively / additionally to FIXME everywhere, maybe add a note in README under "Current limitations". https://gerrit.osmocom.org/c/osmo-pcu/+/22309/4/src/osmobts_sock.c File src/osmobts_sock.c: https://gerrit.osmocom.org/c/osmo-pcu/+/22309/4/src/osmobts_sock.c at 64 PS4, Line 64: bool retry = !llist_empty(&the_pcu->bts_list); I think the ! is wrong, shouldn't retry be true if the list is empty? https://gerrit.osmocom.org/c/osmo-pcu/+/22309/4/src/osmobts_sock.c at 114 PS4, Line 114: llist_for_each_entry(bts, &the_pcu->bts_list, list) { My understanding is, that if one bts closes the socket to the pcu, the pcu will give up completely, drop all bts and exit. So this could use another FIXME. https://gerrit.osmocom.org/c/osmo-pcu/+/22309/4/src/pcu_l1_if.h File src/pcu_l1_if.h: https://gerrit.osmocom.org/c/osmo-pcu/+/22309/4/src/pcu_l1_if.h at 159 PS4, Line 159: struct gprs_rlcmac_bts; its declared above already in the "ifdef __cplusplus" section. is that on purpose? https://gerrit.osmocom.org/c/osmo-pcu/+/22309/4/src/pcu_l1_if.cpp File src/pcu_l1_if.cpp: https://gerrit.osmocom.org/c/osmo-pcu/+/22309/4/src/pcu_l1_if.cpp at 845 PS4, Line 845: bts = gprs_pcu_get_bts_by_nr(the_pcu, pcu_prim->bts_nr); this is called twice: gprs_pcu_get_bts_by_nr(the_pcu, pcu_prim->bts_nr); https://gerrit.osmocom.org/c/osmo-pcu/+/22309/4/src/pcu_vty.c File src/pcu_vty.c: https://gerrit.osmocom.org/c/osmo-pcu/+/22309/4/src/pcu_vty.c at 1073 PS4, Line 1073: pcu_vty_show_tbf_all(vty, bts, flags); Print out the BTS number too? Otherwise it will just be "UL TBFs", "DL TBFs", "UL TBFs", ... https://gerrit.osmocom.org/c/osmo-pcu/+/22309/4/src/pcu_vty.c at 1085 PS4, Line 1085: pcu_vty_show_ms_all(vty, bts); How about extending show_ms() to mention the BTS number? -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22309 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I6b10913f46c19d438c4e250a436a7446694b725a Gerrit-Change-Number: 22309 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 19 Jan 2021 16:12:52 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 16:15:24 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 19 Jan 2021 16:15:24 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: add utilities to send and parse BSSGP rim PDUs In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22046 ) Change subject: gprs_bssgp: add utilities to send and parse BSSGP rim PDUs ...................................................................... Patch Set 7: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/22046/7/src/gb/gprs_bssgp_util.c File src/gb/gprs_bssgp_util.c: https://gerrit.osmocom.org/c/libosmocore/+/22046/7/src/gb/gprs_bssgp_util.c at 739 PS7, Line 739: bssgp_encode_rim_pdu I'm sorry, but why is this function not pushing the BSSGP header? IMHO, the encoder function should return a compete BSSGP message including its header. Thisis what we always have whenever we have an encoder function somewhere. I don't see a reason why the BSSGP header is pushed only in the transmit function? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22046 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I18134fd9938040d2facb6beee3732628b167ce8c Gerrit-Change-Number: 22046 Gerrit-PatchSet: 7 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 19 Jan 2021 16:15:24 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 16:23:21 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 19 Jan 2021 16:23:21 +0000 Subject: Change in osmo-pcu[master]: Move tbf::free_all static methods to proper object files In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22296 ) Change subject: Move tbf::free_all static methods to proper object files ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22296 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ida715cbf384431d37b2b192fbd7882957c93a4d1 Gerrit-Change-Number: 22296 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 19 Jan 2021 16:23:21 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 16:27:01 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 19 Jan 2021 16:27:01 +0000 Subject: Change in osmo-pcu[master]: Convert osmo_bts_sock.cpp to C In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22297 ) Change subject: Convert osmo_bts_sock.cpp to C ...................................................................... Patch Set 2: Code-Review+2 is there ever a point in using C++? -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22297 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I8965b5cc5a713e64788b5b6aa183d3035341ddbb Gerrit-Change-Number: 22297 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 19 Jan 2021 16:27:01 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 16:38:48 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Tue, 19 Jan 2021 16:38:48 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: add utilities to send and parse BSSGP rim PDUs In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, pespin, fixeria, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22046 to look at the new patch set (#8). Change subject: gprs_bssgp: add utilities to send and parse BSSGP rim PDUs ...................................................................... gprs_bssgp: add utilities to send and parse BSSGP rim PDUs At the moment libosmogb offers no convinient way to send RIM PDUs. Also parsing an incoming RIM messages into destination, source routing info and RIM container is not available. Change-Id: I18134fd9938040d2facb6beee3732628b167ce8c Related: SYS#5103 --- M include/osmocom/gprs/gprs_bssgp.h M include/osmocom/gprs/gprs_bssgp_rim.h M src/gb/gprs_bssgp.c M src/gb/gprs_bssgp_rim.c M src/gb/gprs_bssgp_util.c M src/gb/libosmogb.map 6 files changed, 265 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/46/22046/8 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22046 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I18134fd9938040d2facb6beee3732628b167ce8c Gerrit-Change-Number: 22046 Gerrit-PatchSet: 8 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 16:39:50 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Tue, 19 Jan 2021 16:39:50 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: add utilities to send and parse BSSGP rim PDUs In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22046 ) Change subject: gprs_bssgp: add utilities to send and parse BSSGP rim PDUs ...................................................................... Patch Set 8: (1 comment) I have changed it now. I hope its now better. https://gerrit.osmocom.org/c/libosmocore/+/22046/7/src/gb/gprs_bssgp_util.c File src/gb/gprs_bssgp_util.c: https://gerrit.osmocom.org/c/libosmocore/+/22046/7/src/gb/gprs_bssgp_util.c at 739 PS7, Line 739: bssgp_encode_rim_pdu > I'm sorry, but why is this function not pushing the BSSGP header? IMHO, the encoder function should [?] Done -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22046 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I18134fd9938040d2facb6beee3732628b167ce8c Gerrit-Change-Number: 22046 Gerrit-PatchSet: 8 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 19 Jan 2021 16:39:50 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: laforge Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 16:39:54 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 19 Jan 2021 16:39:54 +0000 Subject: Change in osmo-pcu[master]: Convert gprs_bssgp_pcu.cpp to C In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22295 ) Change subject: Convert gprs_bssgp_pcu.cpp to C ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22295 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ic771a89fd78b5e66151a5384f0ff6a8895589466 Gerrit-Change-Number: 22295 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 19 Jan 2021 16:39:54 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 16:40:05 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 19 Jan 2021 16:40:05 +0000 Subject: Change in osmo-pcu[master]: Unify BTS into a C usable structure In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22196 ) Change subject: Unify BTS into a C usable structure ...................................................................... Unify BTS into a C usable structure Previous work on BTS class started to get stuff out of the C++ struct into a C struct (BTS -> struct gprs_glcmac_bts) so that some parts of it were accessible from C code. Doing so, however, ended up being messy too, since all code needs to be switching from one object to another, which actually refer to the same logical component. Let's instead rejoin the structures and make sure the struct is accessible and usable from both C and C++ code by rewriting all methods to be C compatible and converting 3 allocated suboject as pointers. This way BTS can internally still use those C++ objects while providing a clean APi to both C and C++ code. Change-Id: I7d12c896c5ded659ca9d3bff4cf3a3fc857db9dd --- M src/bts.cpp M src/bts.h M src/encoding.cpp M src/gprs_bssgp_pcu.cpp M src/gprs_ms.c M src/gprs_ms.h M src/gprs_ms_storage.cpp M src/gprs_ms_storage.h M src/gprs_pcu.c M src/gprs_pcu.h M src/gprs_rlcmac_sched.cpp M src/gprs_rlcmac_ts_alloc.cpp M src/gsm_timer.cpp M src/llc.cpp M src/llc.h M src/pcu_l1_if.cpp M src/pcu_main.cpp M src/pcu_vty_functions.cpp M src/pdch.cpp M src/pdch.h M src/poll_controller.cpp M src/poll_controller.h M src/rlc.cpp M src/rlc.h M src/sba.cpp M src/sba.h M src/tbf.cpp M src/tbf.h M src/tbf_dl.cpp M src/tbf_dl.h M src/tbf_ul.cpp M src/tbf_ul.h M tests/alloc/AllocTest.cpp M tests/alloc/MslotTest.cpp M tests/app_info/AppInfoTest.cpp M tests/edge/EdgeTest.cpp M tests/emu/pcu_emu.cpp M tests/fn/FnTest.cpp M tests/ms/MsTest.cpp M tests/tbf/TbfTest.cpp M tests/types/TypesTest.cpp 41 files changed, 1,048 insertions(+), 1,194 deletions(-) Approvals: osmith: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/bts.cpp b/src/bts.cpp index a50e8ae..294739c 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -31,6 +31,8 @@ #include #include #include +#include +#include extern "C" { #include @@ -190,9 +192,20 @@ bts_stat_item_description, }; -static void bts_init(struct gprs_rlcmac_bts *bts, BTS* bts_obj) +static void bts_init(struct gprs_rlcmac_bts *bts, struct gprs_pcu *pcu) { - memset(bts, 0, sizeof(*bts)); + bts->pcu = pcu; + + bts->pollController = new PollController(*bts); + bts->sba = new SBAController(*bts); + bts->ms_store = new GprsMsStorage(bts); + + bts->cur_fn = 0; + bts->cur_blk_fn = -1; + bts->max_cs_dl = MAX_GPRS_CS; + bts->max_cs_ul = MAX_GPRS_CS; + bts->max_mcs_dl = MAX_EDGE_MCS; + bts->max_mcs_ul = MAX_EDGE_MCS; bts->initial_cs_dl = bts->initial_cs_ul = 1; bts->initial_mcs_dl = bts->initial_mcs_ul = 1; bts->cs_mask = 1 << 0; /* CS-1 always enabled by default */ @@ -202,15 +215,17 @@ bts->si13_is_set = false; bts->app_info = NULL; - bts->bts = bts_obj; bts->T_defs_bts = T_defs_bts; osmo_tdefs_reset(bts->T_defs_bts); + INIT_LLIST_HEAD(&bts->ul_tbfs); + INIT_LLIST_HEAD(&bts->dl_tbfs); + /* initialize back pointers */ for (size_t trx_no = 0; trx_no < ARRAY_SIZE(bts->trx); ++trx_no) { struct gprs_rlcmac_trx *trx = &bts->trx[trx_no]; trx->trx_no = trx_no; - trx->bts = bts_obj; + trx->bts = bts; for (size_t ts_no = 0; ts_no < ARRAY_SIZE(trx->pdch); ++ts_no) { struct gprs_rlcmac_pdch *pdch = &trx->pdch[ts_no]; @@ -219,89 +234,57 @@ pdch->trx = trx; } } -} - -BTS* BTS::main_bts() -{ - return the_pcu->bts; -} - -struct gprs_rlcmac_bts *BTS::bts_data() -{ - return &m_bts; -} - -struct gprs_rlcmac_bts *bts_main_data() -{ - return BTS::main_bts()->bts_data(); -} - -void bts_cleanup() -{ - return BTS::main_bts()->cleanup(); -} - -struct rate_ctr_group *bts_main_data_stats() -{ - return BTS::main_bts()->rate_counters(); -} - -BTS::BTS(struct gprs_pcu *pcu) - : pcu(pcu) - , m_cur_fn(0) - , m_cur_blk_fn(-1) - , m_max_cs_dl(MAX_GPRS_CS) - , m_max_cs_ul(MAX_GPRS_CS) - , m_max_mcs_dl(MAX_EDGE_MCS) - , m_max_mcs_ul(MAX_EDGE_MCS) - , m_pollController(*this) - , m_sba(*this) - , m_ms_store(this) -{ - bts_init(&m_bts, this); /* The static allocator might have already registered the counter group. If this happens and we still called explicitly (in tests/ for example) than just allocate the group with different index. This shall be removed once weget rid of BTS singleton */ if (rate_ctr_get_group_by_name_idx(bts_ctrg_desc.group_name_prefix, 0)) - m_ratectrs = rate_ctr_group_alloc(tall_pcu_ctx, &bts_ctrg_desc, 1); + bts->ratectrs = rate_ctr_group_alloc(tall_pcu_ctx, &bts_ctrg_desc, 1); else - m_ratectrs = rate_ctr_group_alloc(tall_pcu_ctx, &bts_ctrg_desc, 0); - OSMO_ASSERT(m_ratectrs); + bts->ratectrs = rate_ctr_group_alloc(tall_pcu_ctx, &bts_ctrg_desc, 0); + OSMO_ASSERT(bts->ratectrs); - m_statg = osmo_stat_item_group_alloc(tall_pcu_ctx, &bts_statg_desc, 0); - OSMO_ASSERT(m_statg); + bts->statg = osmo_stat_item_group_alloc(tall_pcu_ctx, &bts_statg_desc, 0); + OSMO_ASSERT(bts->statg); } -void BTS::cleanup() +struct gprs_rlcmac_bts *bts_main_data() +{ + return the_pcu->bts; +} + +struct rate_ctr_group *bts_main_data_stats() +{ + return bts_rate_counters(the_pcu->bts); +} + +static void bts_cleanup(gprs_rlcmac_bts *bts) { /* this can cause counter updates and must not be left to the * m_ms_store's destructor */ - m_ms_store.cleanup(); + bts->ms_store->cleanup(); + delete bts->ms_store; + delete bts->sba; + delete bts->pollController; - if (m_ratectrs) { - rate_ctr_group_free(m_ratectrs); - m_ratectrs = NULL; + if (bts->ratectrs) { + rate_ctr_group_free(bts->ratectrs); + bts->ratectrs = NULL; } - if (m_statg) { - osmo_stat_item_group_free(m_statg); - m_statg = NULL; + if (bts->statg) { + osmo_stat_item_group_free(bts->statg); + bts->statg = NULL; } - if (m_bts.app_info) { - msgb_free(m_bts.app_info); - m_bts.app_info = NULL; + if (bts->app_info) { + msgb_free(bts->app_info); + bts->app_info = NULL; } } -BTS::~BTS() -{ - cleanup(); -} - -void BTS::set_current_frame_number(int fn) +void bts_set_current_frame_number(struct gprs_rlcmac_bts *bts, int fn) { /* The UL frame numbers lag 3 behind the DL frames and the data * indication is only sent after all 4 frames of the block have been @@ -314,8 +297,8 @@ * Values up to 50 frames have been observed under load. */ const static int max_delay = 60; - m_cur_fn = fn; - m_pollController.expireTimedout(m_cur_fn, max_delay); + bts->cur_fn = fn; + bts->pollController->expireTimedout(bts->cur_fn, max_delay); } static inline int delta_fn(int fn, int to) @@ -323,7 +306,7 @@ return (fn + GSM_MAX_FN * 3 / 2 - to) % GSM_MAX_FN - GSM_MAX_FN/2; } -void BTS::set_current_block_frame_number(int fn, unsigned max_delay) +void bts_set_current_block_frame_number(struct gprs_rlcmac_bts *bts, int fn, unsigned max_delay) { int delay = 0; const int late_block_delay_thresh = 13; @@ -332,41 +315,41 @@ /* frame numbers in the received blocks are assumed to be strongly * monotonic. */ - if (m_cur_blk_fn >= 0) { - int delta = delta_fn(fn, m_cur_blk_fn); + if (bts->cur_blk_fn >= 0) { + int delta = delta_fn(fn, bts->cur_blk_fn); if (delta <= 0) return; } /* Check block delay vs. the current frame number */ - if (current_frame_number() != 0) - delay = delta_fn(fn, current_frame_number()); + if (bts_current_frame_number(bts) != 0) + delay = delta_fn(fn, bts_current_frame_number(bts)); if (delay <= -late_block_delay_thresh) { LOGP(DRLCMAC, LOGL_NOTICE, "Late RLC block, FN delta: %d FN: %d curFN: %d\n", - delay, fn, current_frame_number()); - do_rate_ctr_inc(CTR_RLC_LATE_BLOCK); + delay, fn, bts_current_frame_number(bts)); + bts_do_rate_ctr_inc(bts, CTR_RLC_LATE_BLOCK); } - m_cur_blk_fn = fn; + bts->cur_blk_fn = fn; if (delay < fn_update_ok_min_delay || delay > fn_update_ok_max_delay || - current_frame_number() == 0) - m_cur_fn = fn; + bts_current_frame_number(bts) == 0) + bts->cur_fn = fn; - m_pollController.expireTimedout(fn, max_delay); + bts->pollController->expireTimedout(fn, max_delay); } -int BTS::add_paging(uint8_t chan_needed, const struct osmo_mobile_identity *mi) +int bts_add_paging(struct gprs_rlcmac_bts *bts, uint8_t chan_needed, const struct osmo_mobile_identity *mi) { uint8_t l, trx, ts, any_tbf = 0; struct gprs_rlcmac_tbf *tbf; - LListHead *pos; + struct llist_item *pos; uint8_t slot_mask[8]; int8_t first_ts; /* must be signed */ - LListHead *tbfs_lists[] = { - &m_ul_tbfs, - &m_dl_tbfs, + struct llist_head *tbfs_lists[] = { + &bts->ul_tbfs, + &bts->dl_tbfs, NULL }; @@ -382,8 +365,8 @@ * Don't mark, if TBF uses a different slot that is already marked. */ memset(slot_mask, 0, sizeof(slot_mask)); for (l = 0; tbfs_lists[l]; l++) { - llist_for_each(pos, tbfs_lists[l]) { - tbf = pos->entry(); + llist_for_each_entry(pos, tbfs_lists[l], list) { + tbf = (struct gprs_rlcmac_tbf *)pos->entry; first_ts = -1; for (ts = 0; ts < 8; ts++) { if (tbf->pdch[ts]) { @@ -418,7 +401,7 @@ for (ts = 0; ts < 8; ts++) { if ((slot_mask[trx] & (1 << ts))) { /* schedule */ - if (!m_bts.trx[trx].pdch[ts].add_paging(chan_needed, mi)) + if (!bts->trx[trx].pdch[ts].add_paging(chan_needed, mi)) return -ENOMEM; LOGP(DRLCMAC, LOGL_INFO, "Paging on PACCH of TRX=%d TS=%d\n", trx, ts); @@ -433,8 +416,9 @@ return 0; } -void BTS::send_gsmtap_rach(enum pcu_gsmtap_category categ, uint8_t channel, - const struct rach_ind_params *rip) +void bts_send_gsmtap_rach(struct gprs_rlcmac_bts *bts, + enum pcu_gsmtap_category categ, uint8_t channel, + const struct rach_ind_params *rip) { struct pcu_l1_meas meas = { 0 }; uint8_t ra_buf[2]; @@ -450,37 +434,39 @@ ra_buf[0] = (uint8_t) (rip->ra & 0xff); } - send_gsmtap_meas(categ, true, rip->trx_nr, rip->ts_nr, channel, - rfn_to_fn(rip->rfn), ra_buf, + bts_send_gsmtap_meas(bts, categ, true, rip->trx_nr, rip->ts_nr, channel, + bts_rfn_to_fn(bts, rip->rfn), ra_buf, rip->is_11bit ? 2 : 1, &meas); } -void BTS::send_gsmtap(enum pcu_gsmtap_category categ, bool uplink, uint8_t trx_no, - uint8_t ts_no, uint8_t channel, uint32_t fn, - const uint8_t *data, unsigned int len) +void bts_send_gsmtap(struct gprs_rlcmac_bts *bts, + enum pcu_gsmtap_category categ, bool uplink, uint8_t trx_no, + uint8_t ts_no, uint8_t channel, uint32_t fn, + const uint8_t *data, unsigned int len) { struct pcu_l1_meas meas = { 0 }; - send_gsmtap_meas(categ, uplink, trx_no, ts_no, channel, fn, data, len, &meas); + bts_send_gsmtap_meas(bts, categ, uplink, trx_no, ts_no, channel, fn, data, len, &meas); } -void BTS::send_gsmtap_meas(enum pcu_gsmtap_category categ, bool uplink, uint8_t trx_no, - uint8_t ts_no, uint8_t channel, uint32_t fn, - const uint8_t *data, unsigned int len, struct pcu_l1_meas *meas) +void bts_send_gsmtap_meas(struct gprs_rlcmac_bts *bts, + enum pcu_gsmtap_category categ, bool uplink, uint8_t trx_no, + uint8_t ts_no, uint8_t channel, uint32_t fn, + const uint8_t *data, unsigned int len, struct pcu_l1_meas *meas) { uint16_t arfcn; /* check if category is activated at all */ - if (!(pcu->gsmtap_categ_mask & (1 << categ))) + if (!(bts->pcu->gsmtap_categ_mask & (1 << categ))) return; - arfcn = m_bts.trx[trx_no].arfcn; + arfcn = bts->trx[trx_no].arfcn; if (uplink) arfcn |= GSMTAP_ARFCN_F_UPLINK; /* GSMTAP needs the SNR here, but we only have C/I (meas->link_qual). Those are not the same, but there is no known way to convert them, let's pass C/I instead of nothing */ - gsmtap_send(pcu->gsmtap, arfcn, ts_no, channel, 0, fn, + gsmtap_send(bts->pcu->gsmtap, arfcn, ts_no, channel, 0, fn, meas->rssi, meas->link_qual, data, len); } @@ -493,48 +479,52 @@ return false; } -gprs_rlcmac_dl_tbf *BTS::dl_tbf_by_poll_fn(uint32_t fn, uint8_t trx, uint8_t ts) +struct gprs_rlcmac_dl_tbf *bts_dl_tbf_by_poll_fn(struct gprs_rlcmac_bts *bts, uint32_t fn, uint8_t trx, uint8_t ts) { - LListHead *pos; + struct llist_item *pos; + struct gprs_rlcmac_tbf *tbf; /* only one TBF can poll on specific TS/FN, because scheduler can only * schedule one downlink control block (with polling) at a FN per TS */ - llist_for_each(pos, &m_dl_tbfs) { - if (tbf_check(pos->entry(), fn, trx, ts)) - return as_dl_tbf(pos->entry()); + llist_for_each_entry(pos, &bts->dl_tbfs, list) { + tbf = (struct gprs_rlcmac_tbf *)pos->entry; + if (tbf_check(tbf, fn, trx, ts)) + return as_dl_tbf(tbf); } return NULL; } -gprs_rlcmac_ul_tbf *BTS::ul_tbf_by_poll_fn(uint32_t fn, uint8_t trx, uint8_t ts) +struct gprs_rlcmac_ul_tbf *bts_ul_tbf_by_poll_fn(struct gprs_rlcmac_bts *bts, uint32_t fn, uint8_t trx, uint8_t ts) { - LListHead *pos; + struct llist_item *pos; + struct gprs_rlcmac_tbf *tbf; /* only one TBF can poll on specific TS/FN, because scheduler can only * schedule one downlink control block (with polling) at a FN per TS */ - llist_for_each(pos, &m_ul_tbfs) { - if (tbf_check(pos->entry(), fn, trx, ts)) - return as_ul_tbf(pos->entry()); + llist_for_each_entry(pos, &bts->ul_tbfs, list) { + tbf = (struct gprs_rlcmac_tbf *)pos->entry; + if (tbf_check(tbf, fn, trx, ts)) + return as_ul_tbf(tbf); } return NULL; } /* lookup downlink TBF Entity (by TFI) */ -gprs_rlcmac_dl_tbf *BTS::dl_tbf_by_tfi(uint8_t tfi, uint8_t trx, uint8_t ts) +struct gprs_rlcmac_dl_tbf *bts_dl_tbf_by_tfi(struct gprs_rlcmac_bts *bts, uint8_t tfi, uint8_t trx, uint8_t ts) { if (trx >= 8 || ts >= 8) return NULL; - return m_bts.trx[trx].pdch[ts].dl_tbf_by_tfi(tfi); + return bts->trx[trx].pdch[ts].dl_tbf_by_tfi(tfi); } /* lookup uplink TBF Entity (by TFI) */ -gprs_rlcmac_ul_tbf *BTS::ul_tbf_by_tfi(uint8_t tfi, uint8_t trx, uint8_t ts) +struct gprs_rlcmac_ul_tbf *bts_ul_tbf_by_tfi(struct gprs_rlcmac_bts *bts, uint8_t tfi, uint8_t trx, uint8_t ts) { if (trx >= 8 || ts >= 8) return NULL; - return m_bts.trx[trx].pdch[ts].ul_tbf_by_tfi(tfi); + return bts->trx[trx].pdch[ts].ul_tbf_by_tfi(tfi); } static unsigned int trx_count_free_tfi(const struct gprs_rlcmac_trx *trx, enum gprs_rlcmac_tbf_direction dir, uint8_t *first_free_tfi) @@ -576,7 +566,8 @@ * that is currently not used in any PDCH of a the TRX with least TFIs currently * assigned. Negative values indicate errors. */ -int BTS::tfi_find_free(enum gprs_rlcmac_tbf_direction dir, uint8_t *_trx, int8_t use_trx) const +int bts_tfi_find_free(const struct gprs_rlcmac_bts *bts, enum gprs_rlcmac_tbf_direction dir, + uint8_t *_trx, int8_t use_trx) { uint8_t trx_from, trx_to, trx; uint8_t best_trx_nr = 0xff; @@ -594,7 +585,7 @@ for (trx = trx_from; trx <= trx_to; trx++) { uint8_t tmp_first_tfi; unsigned int tmp_cnt; - tmp_cnt = trx_count_free_tfi(&m_bts.trx[trx], dir, &tmp_first_tfi); + tmp_cnt = trx_count_free_tfi(&bts->trx[trx], dir, &tmp_first_tfi); if (tmp_cnt > best_cnt) { best_cnt = tmp_cnt; best_first_tfi = tmp_first_tfi; @@ -615,7 +606,7 @@ return best_first_tfi; } -int BTS::rcv_imm_ass_cnf(const uint8_t *data, uint32_t fn) +int bts_rcv_imm_ass_cnf(struct gprs_rlcmac_bts *bts, const uint8_t *data, uint32_t fn) { struct gprs_rlcmac_dl_tbf *dl_tbf = NULL; uint8_t plen; @@ -640,7 +631,7 @@ tlli |= (*data++) << 4; tlli |= (*data++) >> 4; - ms = ms_by_tlli(tlli); + ms = bts_ms_by_tlli(bts, tlli, GSM_RESERVED_TMSI); if (ms) dl_tbf = ms_dl_tbf(ms); if (!dl_tbf) { @@ -658,7 +649,7 @@ } /* Determine the full frame number from a relative frame number */ -uint32_t BTS::rfn_to_fn(int32_t rfn) +uint32_t bts_rfn_to_fn(const struct gprs_rlcmac_bts *bts, int32_t rfn) { int32_t m_cur_rfn; int32_t fn; @@ -682,11 +673,11 @@ /* Compute an internal relative frame number from the full internal frame number */ - m_cur_rfn = m_cur_fn % RFN_MODULUS; + m_cur_rfn = bts->cur_fn % RFN_MODULUS; /* Compute a "rounded" version of the internal frame number, which * exactly fits in the RFN_MODULUS raster */ - fn_rounded = m_cur_fn - m_cur_rfn; + fn_rounded = bts->cur_fn - m_cur_rfn; /* If the delta between the internal and the external relative frame * number exceeds a certain limit, we need to assume that the incoming @@ -695,7 +686,7 @@ if (abs(rfn - m_cur_rfn) > RFN_THRESHOLD) { LOGP(DRLCMAC, LOGL_DEBUG, "Race condition between rfn (%u) and m_cur_fn (%u) detected: rfn belongs to the previous modulus %u cycle, wrapping...\n", - rfn, m_cur_fn, RFN_MODULUS); + rfn, bts->cur_fn, RFN_MODULUS); if (fn_rounded < RFN_MODULUS) { LOGP(DRLCMAC, LOGL_DEBUG, "Cornercase detected: wrapping crosses %u border\n", @@ -819,7 +810,7 @@ return 0; } -int BTS::rcv_rach(const struct rach_ind_params *rip) +int bts_rcv_rach(struct gprs_rlcmac_bts *bts, const struct rach_ind_params *rip) { struct chan_req_params chan_req = { 0 }; struct gprs_rlcmac_ul_tbf *tbf = NULL; @@ -829,16 +820,16 @@ uint8_t tsc = 0; int plen, rc; - do_rate_ctr_inc(CTR_RACH_REQUESTS); + bts_do_rate_ctr_inc(bts, CTR_RACH_REQUESTS); if (rip->is_11bit) - do_rate_ctr_inc(CTR_11BIT_RACH_REQUESTS); + bts_do_rate_ctr_inc(bts, CTR_11BIT_RACH_REQUESTS); /* Determine full frame number */ - uint32_t Fn = rfn_to_fn(rip->rfn); + uint32_t Fn = bts_rfn_to_fn(bts, rip->rfn); uint8_t ta = qta2ta(rip->qta); - send_gsmtap_rach(PCU_GSMTAP_C_UL_RACH, GSMTAP_CHANNEL_RACH, rip); + bts_send_gsmtap_rach(bts, PCU_GSMTAP_C_UL_RACH, GSMTAP_CHANNEL_RACH, rip); LOGP(DRLCMAC, LOGL_DEBUG, "MS requests Uplink resource on CCCH/RACH: " "ra=0x%02x (%d bit) Fn=%u qta=%d\n", rip->ra, @@ -851,7 +842,7 @@ if (chan_req.single_block) LOGP(DRLCMAC, LOGL_DEBUG, "MS requests single block allocation\n"); - else if (pcu->vty.force_two_phase) { + else if (bts->pcu->vty.force_two_phase) { LOGP(DRLCMAC, LOGL_DEBUG, "MS requests single block allocation, " "but we force two phase access\n"); chan_req.single_block = true; @@ -864,7 +855,7 @@ /* Should we allocate a single block or an Uplink TBF? */ if (chan_req.single_block) { - rc = sba()->alloc(&trx_no, &ts_no, &sb_fn, ta); + rc = bts_sba(bts)->alloc(&trx_no, &ts_no, &sb_fn, ta); if (rc < 0) { LOGP(DRLCMAC, LOGL_NOTICE, "No PDCH resource for " "single block allocation: rc=%d\n", rc); @@ -872,12 +863,12 @@ goto send_imm_ass_rej; } - tsc = m_bts.trx[trx_no].pdch[ts_no].tsc; + tsc = bts->trx[trx_no].pdch[ts_no].tsc; LOGP(DRLCMAC, LOGL_DEBUG, "Allocated a single block at " "SBFn=%u TRX=%u TS=%u\n", sb_fn, trx_no, ts_no); } else { - GprsMs *ms = ms_alloc(0, chan_req.egprs_mslot_class); - tbf = tbf_alloc_ul_tbf(&m_bts, ms, -1, true); + GprsMs *ms = bts_alloc_ms(bts, 0, chan_req.egprs_mslot_class); + tbf = tbf_alloc_ul_tbf(bts, ms, -1, true); if (!tbf) { LOGP(DRLCMAC, LOGL_NOTICE, "No PDCH resource for Uplink TBF\n"); /* Send RR Immediate Assignment Reject */ @@ -905,18 +896,18 @@ LOGP(DRLCMAC, LOGL_DEBUG, "Tx Immediate Assignment Reject on AGCH\n"); plen = Encoding::write_immediate_assignment_reject( bv, rip->ra, Fn, rip->burst_type); - do_rate_ctr_inc(CTR_IMMEDIATE_ASSIGN_REJ); + bts_do_rate_ctr_inc(bts, CTR_IMMEDIATE_ASSIGN_REJ); } else { LOGP(DRLCMAC, LOGL_DEBUG, "Tx Immediate Assignment on AGCH: " "TRX=%u (ARFCN %u) TS=%u TA=%u TSC=%u TFI=%d USF=%d\n", - trx_no, m_bts.trx[trx_no].arfcn & ~ARFCN_FLAG_MASK, + trx_no, bts->trx[trx_no].arfcn & ~ARFCN_FLAG_MASK, ts_no, ta, tsc, tbf ? tbf->tfi() : -1, usf); plen = Encoding::write_immediate_assignment( - &m_bts.trx[trx_no].pdch[ts_no], tbf, bv, + &bts->trx[trx_no].pdch[ts_no], tbf, bv, false, rip->ra, Fn, ta, usf, false, sb_fn, - pcu->vty.alpha, pcu->vty.gamma, -1, + bts->pcu->vty.alpha, bts->pcu->vty.gamma, -1, rip->burst_type); - do_rate_ctr_inc(CTR_IMMEDIATE_ASSIGN_UL_TBF); + bts_do_rate_ctr_inc(bts, CTR_IMMEDIATE_ASSIGN_UL_TBF); } if (plen >= 0) @@ -937,14 +928,13 @@ 324, 350, 376, 402, }; -int BTS::rcv_ptcch_rach(const struct rach_ind_params *rip) +int bts_rcv_ptcch_rach(struct gprs_rlcmac_bts *bts, const struct rach_ind_params *rip) { - uint32_t fn416 = rfn_to_fn(rip->rfn) % 416; - struct gprs_rlcmac_bts *bts = bts_data(); + uint32_t fn416 = bts_rfn_to_fn(bts, rip->rfn) % 416; struct gprs_rlcmac_pdch *pdch; uint8_t ss; - send_gsmtap_rach(PCU_GSMTAP_C_UL_PTCCH, GSMTAP_CHANNEL_PTCCH, rip); + bts_send_gsmtap_rach(bts, PCU_GSMTAP_C_UL_PTCCH, GSMTAP_CHANNEL_PTCCH, rip); /* Prevent buffer overflow */ if (rip->trx_nr >= ARRAY_SIZE(bts->trx) || rip->ts_nr >= 8) { @@ -979,7 +969,7 @@ return 0; } -void BTS::snd_dl_ass(gprs_rlcmac_tbf *tbf, bool poll, uint16_t pgroup) +void bts_snd_dl_ass(struct gprs_rlcmac_bts *bts, struct gprs_rlcmac_tbf *tbf, bool poll, uint16_t pgroup) { uint8_t trx_no = tbf->trx->trx_no; uint8_t ts_no = tbf->first_ts; @@ -992,14 +982,14 @@ * so the assignment will not conflict with possible RACH requests. */ LOGP(DRLCMAC, LOGL_DEBUG, " - TRX=%d (%d) TS=%d TA=%d pollFN=%d\n", trx_no, tbf->trx->arfcn, ts_no, tbf->ta(), poll ? tbf->poll_fn : -1); - plen = Encoding::write_immediate_assignment(&m_bts.trx[trx_no].pdch[ts_no], + plen = Encoding::write_immediate_assignment(&bts->trx[trx_no].pdch[ts_no], tbf, immediate_assignment, true, 125, (tbf->pdch[ts_no]->last_rts_fn + 21216) % GSM_MAX_FN, tbf->ta(), 7, poll, tbf->poll_fn, - pcu->vty.alpha, pcu->vty.gamma, -1, + bts->pcu->vty.alpha, bts->pcu->vty.gamma, -1, GSM_L1_BURST_TYPE_ACCESS_0); if (plen >= 0) { - do_rate_ctr_inc(CTR_IMMEDIATE_ASSIGN_DL_TBF); + bts_do_rate_ctr_inc(bts, CTR_IMMEDIATE_ASSIGN_DL_TBF); pcu_l1if_tx_pch(immediate_assignment, plen, pgroup); } @@ -1007,70 +997,70 @@ } /* return maximum DL CS supported by BTS and allowed by VTY */ -uint8_t BTS::max_cs_dl(void) const +uint8_t bts_max_cs_dl(const struct gprs_rlcmac_bts* bts) { - return m_max_cs_dl; + return bts->max_cs_dl; } /* return maximum UL CS supported by BTS and allowed by VTY */ -uint8_t BTS::max_cs_ul(void) const +uint8_t bts_max_cs_ul(const struct gprs_rlcmac_bts* bts) { - return m_max_cs_ul; + return bts->max_cs_ul; } /* return maximum DL MCS supported by BTS and allowed by VTY */ -uint8_t BTS::max_mcs_dl(void) const +uint8_t bts_max_mcs_dl(const struct gprs_rlcmac_bts* bts) { - return m_max_mcs_dl; + return bts->max_mcs_dl; } /* return maximum UL MCS supported by BTS and allowed by VTY */ -uint8_t BTS::max_mcs_ul(void) const +uint8_t bts_max_mcs_ul(const struct gprs_rlcmac_bts* bts) { - return m_max_mcs_ul; + return bts->max_mcs_ul; } /* Set maximum DL CS supported by BTS and allowed by VTY */ -void BTS::set_max_cs_dl(uint8_t cs_dl) +void bts_set_max_cs_dl(struct gprs_rlcmac_bts* bts, uint8_t cs_dl) { - m_max_cs_dl = cs_dl; + bts->max_cs_dl = cs_dl; } /* Set maximum UL CS supported by BTS and allowed by VTY */ -void BTS::set_max_cs_ul(uint8_t cs_ul) +void bts_set_max_cs_ul(struct gprs_rlcmac_bts* bts, uint8_t cs_ul) { - m_max_cs_ul = cs_ul; + bts->max_cs_ul = cs_ul; } /* Set maximum DL MCS supported by BTS and allowed by VTY */ -void BTS::set_max_mcs_dl(uint8_t mcs_dl) +void bts_set_max_mcs_dl(struct gprs_rlcmac_bts* bts, uint8_t mcs_dl) { - m_max_mcs_dl = mcs_dl; + bts->max_mcs_dl = mcs_dl; } /* Set maximum UL MCS supported by BTS and allowed by VTY */ -void BTS::set_max_mcs_ul(uint8_t mcs_ul) +void bts_set_max_mcs_ul(struct gprs_rlcmac_bts* bts, uint8_t mcs_ul) { - m_max_mcs_ul = mcs_ul; + bts->max_mcs_ul = mcs_ul; } -bool BTS::cs_dl_is_supported(CodingScheme cs) +bool bts_cs_dl_is_supported(const struct gprs_rlcmac_bts* bts, CodingScheme cs) { OSMO_ASSERT(mcs_is_valid(cs)); uint8_t num = mcs_chan_code(cs); if (mcs_is_gprs(cs)) { - return (max_cs_dl() >= num) && (m_bts.cs_mask & (1U << num)); + return (bts_max_cs_dl(bts) >= num) && (bts->cs_mask & (1U << num)); } else { - return (max_mcs_dl() >= num) && (m_bts.mcs_mask & (1U << num)); + return (bts_max_mcs_dl(bts) >= num) && (bts->mcs_mask & (1U << num)); } } -GprsMs *BTS::ms_alloc(uint8_t ms_class, uint8_t egprs_ms_class) +GprsMs *bts_alloc_ms(struct gprs_rlcmac_bts* bts, uint8_t ms_class, uint8_t egprs_ms_class) { GprsMs *ms; - ms = ms_store().create_ms(); + ms = bts_ms_store(bts)->create_ms(); - ms_set_timeout(ms, osmo_tdef_get(pcu->T_defs, -2030, OSMO_TDEF_S, -1)); + ms_set_timeout(ms, osmo_tdef_get(bts->pcu->T_defs, -2030, OSMO_TDEF_S, -1)); ms_set_ms_class(ms, ms_class); ms_set_egprs_ms_class(ms, egprs_ms_class); @@ -1078,23 +1068,38 @@ } -static int bts_talloc_destructor(struct BTS* bts) +static int bts_talloc_destructor(struct gprs_rlcmac_bts* bts) { - bts->~BTS(); + bts_cleanup(bts); return 0; } -struct BTS* bts_alloc(struct gprs_pcu *pcu) +struct gprs_rlcmac_bts* bts_alloc(struct gprs_pcu *pcu) { - struct BTS* bts; - bts = talloc(pcu, struct BTS); + struct gprs_rlcmac_bts* bts; + bts = talloc_zero(pcu, struct gprs_rlcmac_bts); if (!bts) return bts; talloc_set_destructor(bts, bts_talloc_destructor); - new (bts) BTS(pcu); + bts_init(bts, pcu); return bts; } +struct SBAController *bts_sba(struct gprs_rlcmac_bts *bts) +{ + return bts->sba; +} + +struct GprsMsStorage *bts_ms_store(struct gprs_rlcmac_bts *bts) +{ + return bts->ms_store; +} + +struct GprsMs *bts_ms_by_tlli(struct gprs_rlcmac_bts *bts, uint32_t tlli, uint32_t old_tlli) +{ + return bts_ms_store(bts)->get_ms(tlli, old_tlli); +} + /* update TA based on TA provided by PH-DATA-IND */ void update_tbf_ta(struct gprs_rlcmac_ul_tbf *tbf, int8_t ta_delta) { @@ -1136,7 +1141,7 @@ void bts_update_tbf_ta(const char *p, uint32_t fn, uint8_t trx_no, uint8_t ts, int8_t ta, bool is_rach) { struct gprs_rlcmac_ul_tbf *tbf = - bts_main_data()->bts->ul_tbf_by_poll_fn(fn, trx_no, ts); + bts_ul_tbf_by_poll_fn(the_pcu->bts, fn, trx_no, ts); if (!tbf) LOGP(DL1IF, LOGL_DEBUG, "[%s] update TA = %u ignored due to " "unknown UL TBF on TRX = %d, TS = %d, FN = %d\n", @@ -1182,7 +1187,7 @@ return; } - max_cs_dl = bts->bts->max_cs_dl(); + max_cs_dl = bts_max_cs_dl(bts); if (bts->pcuif_info_ind.initial_cs > max_cs_dl) { LOGP(DL1IF, LOGL_DEBUG, " downgrading initial_cs_dl to %d\n", max_cs_dl); bts->initial_cs_dl = max_cs_dl; @@ -1192,7 +1197,7 @@ if (bts->initial_cs_dl == 0) bts->initial_cs_dl = 1; /* CS1 Must always be supported */ - max_cs_ul = bts->bts->max_cs_ul(); + max_cs_ul = bts_max_cs_ul(bts); if (bts->pcuif_info_ind.initial_cs > max_cs_ul) { LOGP(DL1IF, LOGL_DEBUG, " downgrading initial_cs_ul to %d\n", max_cs_ul); bts->initial_cs_ul = max_cs_ul; @@ -1212,14 +1217,14 @@ return; } - max_mcs_dl = bts->bts->max_mcs_dl(); + max_mcs_dl = bts_max_mcs_dl(bts); if (bts->pcuif_info_ind.initial_mcs > max_mcs_dl) { LOGP(DL1IF, LOGL_DEBUG, " downgrading initial_mcs_dl to %d\n", max_mcs_dl); bts->initial_mcs_dl = max_mcs_dl; } else { bts->initial_mcs_dl = bts->pcuif_info_ind.initial_mcs; } - max_mcs_ul = bts->bts->max_mcs_ul(); + max_mcs_ul = bts_max_mcs_ul(bts); if (bts->pcuif_info_ind.initial_mcs > max_mcs_ul) { LOGP(DL1IF, LOGL_DEBUG, " downgrading initial_mcs_ul to %d\n", max_mcs_ul); bts->initial_mcs_ul = max_mcs_ul; @@ -1232,7 +1237,7 @@ { int i; uint8_t cs_dl, cs_ul; - struct gprs_pcu *pcu = bts->bts->pcu; + struct gprs_pcu *pcu = bts->pcu; cs_dl = 0; for (i = pcu->vty.max_cs_dl - 1; i >= 0; i--) { @@ -1251,15 +1256,15 @@ } LOGP(DRLCMAC, LOGL_DEBUG, "New max CS: DL=%u UL=%u\n", cs_dl, cs_ul); - bts->bts->set_max_cs_dl(cs_dl); - bts->bts->set_max_cs_ul(cs_ul); + bts_set_max_cs_dl(bts, cs_dl); + bts_set_max_cs_ul(bts, cs_ul); } void bts_recalc_max_mcs(struct gprs_rlcmac_bts *bts) { int i; uint8_t mcs_dl, mcs_ul; - struct gprs_pcu *pcu = bts->bts->pcu; + struct gprs_pcu *pcu = bts->pcu; mcs_dl = 0; for (i = pcu->vty.max_mcs_dl - 1; i >= 0; i--) { @@ -1278,37 +1283,11 @@ } LOGP(DRLCMAC, LOGL_DEBUG, "New max MCS: DL=%u UL=%u\n", mcs_dl, mcs_ul); - bts->bts->set_max_mcs_dl(mcs_dl); - bts->bts->set_max_mcs_ul(mcs_ul); + bts_set_max_mcs_dl(bts, mcs_dl); + bts_set_max_mcs_ul(bts, mcs_ul); } - -struct gprs_rlcmac_bts *bts_data(struct BTS *bts) +struct GprsMs *bts_ms_by_imsi(struct gprs_rlcmac_bts *bts, const char *imsi) { - return &bts->m_bts; -} - -struct GprsMs *bts_ms_by_imsi(struct BTS *bts, const char *imsi) -{ - return bts->ms_by_imsi(imsi); -} - -uint8_t bts_max_cs_dl(const struct BTS *bts) -{ - return bts->max_cs_dl(); -} - -uint8_t bts_max_cs_ul(const struct BTS *bts) -{ - return bts->max_cs_ul(); -} - -uint8_t bts_max_mcs_dl(const struct BTS *bts) -{ - return bts->max_mcs_dl(); -} - -uint8_t bts_max_mcs_ul(const struct BTS *bts) -{ - return bts->max_mcs_ul(); + return bts_ms_store(bts)->get_ms(0, 0, imsi); } diff --git a/src/bts.h b/src/bts.h index b1f73b4..d316370 100644 --- a/src/bts.h +++ b/src/bts.h @@ -20,11 +20,13 @@ #pragma once +#include +#include +#include #ifdef __cplusplus extern "C" { #endif - #include #include #include @@ -40,21 +42,11 @@ } #endif -#ifdef __cplusplus -#include "poll_controller.h" -#include "sba.h" #include "tbf.h" -#include "gprs_ms_storage.h" #include "coding_scheme.h" -#include -#endif -#include -#include -#include - -struct BTS; struct GprsMs; +struct gprs_rlcmac_bts; struct gprs_rlcmac_trx { void *fl1h; @@ -62,11 +54,12 @@ struct gprs_rlcmac_pdch pdch[8]; /* back pointers */ - struct BTS *bts; + struct gprs_rlcmac_bts *bts; uint8_t trx_no; }; + #ifdef __cplusplus extern "C" { #endif @@ -78,48 +71,7 @@ } #endif -/** - * This is the data from C. As soon as our minimal compiler is gcc 4.7 - * we can start to compile pcu_vty.c with c++ and remove the split. - */ -struct gprs_rlcmac_bts { - bool active; - uint8_t bsic; - uint8_t cs_mask; /* Allowed CS mask from BTS */ - uint16_t mcs_mask; /* Allowed MCS mask from BTS */ - struct { /* information stored from last received PCUIF info_ind message */ - uint8_t initial_cs; - uint8_t initial_mcs; - } pcuif_info_ind; - uint8_t initial_cs_dl, initial_cs_ul; - uint8_t initial_mcs_dl, initial_mcs_ul; - /* Timer defintions */ - struct osmo_tdef *T_defs_bts; /* timers controlled by BTS, received through PCUIF */ - uint8_t n3101; - uint8_t n3103; - uint8_t n3105; - struct gprs_rlcmac_trx trx[8]; - uint8_t si13[GSM_MACBLOCK_LEN]; - bool si13_is_set; - - /* State for dynamic algorithm selection */ - int multislot_disabled; - - /** - * Point back to the C++ object. This is used during the transition - * period. - */ - struct BTS *bts; - - /* Packet Application Information (3GPP TS 44.060 11.2.47, usually ETWS primary message). We don't need to store - * more than one message, because they get sent so rarely. */ - struct msgb *app_info; - uint32_t app_info_pending; /* Count of MS with active TBF, to which we did not send app_info yet */ - - /* main nsei */ - struct gprs_ns2_nse *nse; -}; enum { CTR_TBF_DL_ALLOCATED, @@ -230,189 +182,159 @@ bool single_block; }; -#ifdef __cplusplus +struct PollController; +struct SBAController; +struct GprsMsStorage; +struct pcu_l1_meas; + /** * I represent a GSM BTS. I have one or more TRX, I know the current * GSM time and I have controllers that help with allocating resources * on my TRXs. */ -struct BTS { -public: - BTS(struct gprs_pcu *pcu); - ~BTS(); - void cleanup(); +struct gprs_rlcmac_bts { + bool active; + uint8_t bsic; + uint8_t cs_mask; /* Allowed CS mask from BTS */ + uint16_t mcs_mask; /* Allowed MCS mask from BTS */ + struct { /* information stored from last received PCUIF info_ind message */ + uint8_t initial_cs; + uint8_t initial_mcs; + } pcuif_info_ind; + uint8_t initial_cs_dl, initial_cs_ul; + uint8_t initial_mcs_dl, initial_mcs_ul; + /* Timer defintions */ + struct osmo_tdef *T_defs_bts; /* timers controlled by BTS, received through PCUIF */ + uint8_t n3101; + uint8_t n3103; + uint8_t n3105; + struct gprs_rlcmac_trx trx[8]; - static BTS* main_bts(); + uint8_t si13[GSM_MACBLOCK_LEN]; + bool si13_is_set; - struct gprs_rlcmac_bts *bts_data(); - SBAController *sba(); + /* State for dynamic algorithm selection */ + int multislot_disabled; - /** TODO: change the number to unsigned */ - void set_current_frame_number(int frame_number); - void set_current_block_frame_number(int frame_number, unsigned max_delay); - int current_frame_number() const; + /* Packet Application Information (3GPP TS 44.060 11.2.47, usually ETWS primary message). We don't need to store + * more than one message, because they get sent so rarely. */ + struct msgb *app_info; + uint32_t app_info_pending; /* Count of MS with active TBF, to which we did not send app_info yet */ - /** add paging to paging queue(s) */ - int add_paging(uint8_t chan_needed, const struct osmo_mobile_identity *mi); - - gprs_rlcmac_dl_tbf *dl_tbf_by_poll_fn(uint32_t fn, uint8_t trx, uint8_t ts); - gprs_rlcmac_ul_tbf *ul_tbf_by_poll_fn(uint32_t fn, uint8_t trx, uint8_t ts); - gprs_rlcmac_dl_tbf *dl_tbf_by_tfi(uint8_t tfi, uint8_t trx, uint8_t ts); - gprs_rlcmac_ul_tbf *ul_tbf_by_tfi(uint8_t tfi, uint8_t trx, uint8_t ts); - - int tfi_find_free(enum gprs_rlcmac_tbf_direction dir, uint8_t *_trx, int8_t use_trx) const; - - int rcv_imm_ass_cnf(const uint8_t *data, uint32_t fn); - - uint32_t rfn_to_fn(int32_t rfn); - int rcv_rach(const struct rach_ind_params *rip); - int rcv_ptcch_rach(const struct rach_ind_params *rip); - - void snd_dl_ass(gprs_rlcmac_tbf *tbf, bool poll, uint16_t pgroup); - - uint8_t max_cs_dl(void) const; - uint8_t max_cs_ul(void) const; - uint8_t max_mcs_dl(void) const; - uint8_t max_mcs_ul(void) const; - void set_max_cs_dl(uint8_t cs_dl); - void set_max_cs_ul(uint8_t cs_ul); - void set_max_mcs_dl(uint8_t mcs_dl); - void set_max_mcs_ul(uint8_t mcs_ul); - bool cs_dl_is_supported(CodingScheme cs); - - GprsMsStorage &ms_store(); - GprsMs *ms_by_tlli(uint32_t tlli, uint32_t old_tlli = GSM_RESERVED_TMSI); - GprsMs *ms_by_imsi(const char *imsi); - GprsMs *ms_alloc(uint8_t ms_class, uint8_t egprs_ms_class = 0); - - void send_gsmtap(enum pcu_gsmtap_category categ, bool uplink, uint8_t trx_no, - uint8_t ts_no, uint8_t channel, uint32_t fn, - const uint8_t *data, unsigned int len); - void send_gsmtap_meas(enum pcu_gsmtap_category categ, bool uplink, uint8_t trx_no, - uint8_t ts_no, uint8_t channel, uint32_t fn, - const uint8_t *data, unsigned int len, struct pcu_l1_meas *meas); - void send_gsmtap_rach(enum pcu_gsmtap_category categ, uint8_t channel, - const struct rach_ind_params *rip); - - /* - * Below for C interface for the VTY - */ - struct rate_ctr_group *rate_counters() const; - struct osmo_stat_item_group *stat_items() const; - void do_rate_ctr_inc(unsigned int ctr_id); - void do_rate_ctr_add(unsigned int ctr_id, int inc); - void stat_item_add(unsigned int stat_id, int inc); - - LListHead& ul_tbfs(); - LListHead& dl_tbfs(); - - struct gprs_rlcmac_bts m_bts; + /* main nsei */ + struct gprs_ns2_nse *nse; /* back pointer to PCU object */ struct gprs_pcu *pcu; -private: - int m_cur_fn; - int m_cur_blk_fn; - uint8_t m_max_cs_dl, m_max_cs_ul; - uint8_t m_max_mcs_dl, m_max_mcs_ul; - PollController m_pollController; - SBAController m_sba; - struct rate_ctr_group *m_ratectrs; - struct osmo_stat_item_group *m_statg; + int cur_fn; + int cur_blk_fn; + uint8_t max_cs_dl, max_cs_ul; + uint8_t max_mcs_dl, max_mcs_ul; + struct PollController *pollController; + struct SBAController *sba; + struct rate_ctr_group *ratectrs; + struct osmo_stat_item_group *statg; - GprsMsStorage m_ms_store; + struct GprsMsStorage *ms_store; /* list of uplink TBFs */ - LListHead m_ul_tbfs; + struct llist_head ul_tbfs; /* list of gprs_rlcmac_tbf */ /* list of downlink TBFs */ - LListHead m_dl_tbfs; - - /* disable copying to avoid slicing */ - BTS(const BTS&); - BTS& operator=(const BTS&); + struct llist_head dl_tbfs; /* list of gprs_rlcmac_tbf */ }; -inline int BTS::current_frame_number() const -{ - return m_cur_fn; -} - -inline SBAController *BTS::sba() -{ - return &m_sba; -} - -inline GprsMsStorage &BTS::ms_store() -{ - return m_ms_store; -} - -inline GprsMs *BTS::ms_by_tlli(uint32_t tlli, uint32_t old_tlli) -{ - return ms_store().get_ms(tlli, old_tlli); -} - -inline GprsMs *BTS::ms_by_imsi(const char *imsi) -{ - return ms_store().get_ms(0, 0, imsi); -} - -inline LListHead& BTS::ul_tbfs() -{ - return m_ul_tbfs; -} - -inline LListHead& BTS::dl_tbfs() -{ - return m_dl_tbfs; -} - -inline struct rate_ctr_group *BTS::rate_counters() const -{ - return m_ratectrs; -} - -inline struct osmo_stat_item_group *BTS::stat_items() const -{ - return m_statg; -} - -inline void BTS::do_rate_ctr_inc(unsigned int ctr_id) { - rate_ctr_inc(&m_ratectrs->ctr[ctr_id]); -} - -inline void BTS::do_rate_ctr_add(unsigned int ctr_id, int inc) { - rate_ctr_add(&m_ratectrs->ctr[ctr_id], inc); -} - -inline void BTS::stat_item_add(unsigned int stat_id, int inc) { - int32_t val = osmo_stat_item_get_last(m_statg->items[stat_id]); - osmo_stat_item_set(m_statg->items[stat_id], val + inc); -} - -struct gprs_pcu; -struct BTS* bts_alloc(struct gprs_pcu *pcu); -#endif - #ifdef __cplusplus extern "C" { #endif - void bts_cleanup(); - struct gprs_rlcmac_bts *bts_data(struct BTS *bts); - struct gprs_rlcmac_bts *bts_main_data(); - struct rate_ctr_group *bts_main_data_stats(); - struct osmo_stat_item_group *bts_main_data_stat_items(); - void bts_recalc_initial_cs(struct gprs_rlcmac_bts *bts); - void bts_recalc_initial_mcs(struct gprs_rlcmac_bts *bts); - void bts_recalc_max_cs(struct gprs_rlcmac_bts *bts); - void bts_recalc_max_mcs(struct gprs_rlcmac_bts *bts); - struct GprsMs *bts_ms_by_imsi(struct BTS *bts, const char *imsi); - uint8_t bts_max_cs_dl(const struct BTS *bts); - uint8_t bts_max_cs_ul(const struct BTS *bts); - uint8_t bts_max_mcs_dl(const struct BTS *bts); - uint8_t bts_max_mcs_ul(const struct BTS *bts); -#ifdef __cplusplus + +struct GprsMs *bts_alloc_ms(struct gprs_rlcmac_bts *bts, uint8_t ms_class, uint8_t egprs_ms_class); +int bts_add_paging(struct gprs_rlcmac_bts *bts, uint8_t chan_needed, const struct osmo_mobile_identity *mi); + +uint32_t bts_rfn_to_fn(const struct gprs_rlcmac_bts *bts, int32_t rfn); + +struct gprs_rlcmac_dl_tbf *bts_dl_tbf_by_poll_fn(struct gprs_rlcmac_bts *bts, uint32_t fn, uint8_t trx, uint8_t ts); +struct gprs_rlcmac_ul_tbf *bts_ul_tbf_by_poll_fn(struct gprs_rlcmac_bts *bts, uint32_t fn, uint8_t trx, uint8_t ts); +struct gprs_rlcmac_dl_tbf *bts_dl_tbf_by_tfi(struct gprs_rlcmac_bts *bts, uint8_t tfi, uint8_t trx, uint8_t ts); +struct gprs_rlcmac_ul_tbf *bts_ul_tbf_by_tfi(struct gprs_rlcmac_bts *bts, uint8_t tfi, uint8_t trx, uint8_t ts); + +void bts_snd_dl_ass(struct gprs_rlcmac_bts *bts, struct gprs_rlcmac_tbf *tbf, bool poll, uint16_t pgroup); + +/** TODO: change the number to unsigned */ +void bts_set_current_frame_number(struct gprs_rlcmac_bts *bts, int frame_number); +void bts_set_current_block_frame_number(struct gprs_rlcmac_bts *bts, int frame_number, unsigned max_delay); +static inline int bts_current_frame_number(const struct gprs_rlcmac_bts *bts) +{ + return bts->cur_fn; } +int bts_tfi_find_free(const struct gprs_rlcmac_bts *bts, enum gprs_rlcmac_tbf_direction dir, + uint8_t *_trx, int8_t use_trx); + +int bts_rcv_rach(struct gprs_rlcmac_bts *bts, const struct rach_ind_params *rip); +int bts_rcv_ptcch_rach(struct gprs_rlcmac_bts *bts, const struct rach_ind_params *rip); +int bts_rcv_imm_ass_cnf(struct gprs_rlcmac_bts *bts, const uint8_t *data, uint32_t fn); + +void bts_send_gsmtap(struct gprs_rlcmac_bts *bts, + enum pcu_gsmtap_category categ, bool uplink, uint8_t trx_no, + uint8_t ts_no, uint8_t channel, uint32_t fn, + const uint8_t *data, unsigned int len); +void bts_send_gsmtap_meas(struct gprs_rlcmac_bts *bts, + enum pcu_gsmtap_category categ, bool uplink, uint8_t trx_no, + uint8_t ts_no, uint8_t channel, uint32_t fn, + const uint8_t *data, unsigned int len, struct pcu_l1_meas *meas); +void bts_send_gsmtap_rach(struct gprs_rlcmac_bts *bts, + enum pcu_gsmtap_category categ, uint8_t channel, + const struct rach_ind_params *rip); + +struct SBAController *bts_sba(struct gprs_rlcmac_bts *bts); + +struct GprsMsStorage *bts_ms_store(struct gprs_rlcmac_bts *bts); + +struct GprsMs *bts_ms_by_tlli(struct gprs_rlcmac_bts *bts, uint32_t tlli, uint32_t old_tlli); + +static inline struct rate_ctr_group *bts_rate_counters(struct gprs_rlcmac_bts *bts) +{ + return bts->ratectrs; +} + +static inline struct osmo_stat_item_group *bts_stat_items(struct gprs_rlcmac_bts *bts) +{ + return bts->statg; +} + +static inline void bts_do_rate_ctr_inc(struct gprs_rlcmac_bts *bts, unsigned int ctr_id) { + rate_ctr_inc(&bts->ratectrs->ctr[ctr_id]); +} + +static inline void bts_do_rate_ctr_add(struct gprs_rlcmac_bts *bts, unsigned int ctr_id, int inc) { + rate_ctr_add(&bts->ratectrs->ctr[ctr_id], inc); +} + +static inline void bts_stat_item_add(struct gprs_rlcmac_bts *bts, unsigned int stat_id, int inc) { + int32_t val = osmo_stat_item_get_last(bts->statg->items[stat_id]); + osmo_stat_item_set(bts->statg->items[stat_id], val + inc); +} + +struct gprs_rlcmac_bts *bts_alloc(struct gprs_pcu *pcu); + +struct gprs_rlcmac_bts *bts_main_data(); +struct rate_ctr_group *bts_main_data_stats(); +struct osmo_stat_item_group *bts_main_data_stat_items(); +void bts_recalc_initial_cs(struct gprs_rlcmac_bts *bts); +void bts_recalc_initial_mcs(struct gprs_rlcmac_bts *bts); +void bts_recalc_max_cs(struct gprs_rlcmac_bts *bts); +void bts_recalc_max_mcs(struct gprs_rlcmac_bts *bts); +struct GprsMs *bts_ms_by_imsi(struct gprs_rlcmac_bts *bts, const char *imsi); +uint8_t bts_max_cs_dl(const struct gprs_rlcmac_bts *bts); +uint8_t bts_max_cs_ul(const struct gprs_rlcmac_bts *bts); +uint8_t bts_max_mcs_dl(const struct gprs_rlcmac_bts *bts); +uint8_t bts_max_mcs_ul(const struct gprs_rlcmac_bts *bts); +void bts_set_max_cs_dl(struct gprs_rlcmac_bts *bts, uint8_t cs_dl); +void bts_set_max_cs_ul(struct gprs_rlcmac_bts *bts, uint8_t cs_ul); +void bts_set_max_mcs_dl(struct gprs_rlcmac_bts *bts, uint8_t mcs_dl); +void bts_set_max_mcs_ul(struct gprs_rlcmac_bts *bts, uint8_t mcs_ul); +bool bts_cs_dl_is_supported(const struct gprs_rlcmac_bts *bts, enum CodingScheme cs); +#ifdef __cplusplus +} #endif diff --git a/src/encoding.cpp b/src/encoding.cpp index e7b1fb4..f605ca2 100644 --- a/src/encoding.cpp +++ b/src/encoding.cpp @@ -24,6 +24,7 @@ #include #include #include +#include #include #include diff --git a/src/gprs_bssgp_pcu.cpp b/src/gprs_bssgp_pcu.cpp index 1596d67..92fa845 100644 --- a/src/gprs_bssgp_pcu.cpp +++ b/src/gprs_bssgp_pcu.cpp @@ -34,6 +34,7 @@ #include #include #include "coding_scheme.h" + #include "tbf_dl.h" } /* Tuning parameters for BSSGP flow control */ @@ -208,7 +209,7 @@ if ((rc = get_paging_mi(&mi, tp)) > 0) return bssgp_tx_status((enum gprs_bssgp_cause) rc, NULL, msg); - return BTS::main_bts()->add_paging(tlvp_val8(tp, BSSGP_IE_CHAN_NEEDED, 0), &mi); + return bts_add_paging(the_pcu->bts, tlvp_val8(tp, BSSGP_IE_CHAN_NEEDED, 0), &mi); } static int gprs_bssgp_pcu_rx_paging_ps(struct msgb *msg, const struct tlv_parsed *tp) @@ -761,8 +762,8 @@ } else { /* We found "num" for free in the loop above */ } - } else if (bts->bts->max_mcs_dl()) { - num = bts->bts->max_mcs_dl(); + } else if (bts_max_mcs_dl(bts)) { + num = bts_max_mcs_dl(bts); } else { num = 9; } @@ -782,8 +783,8 @@ } } } - } else if (bts->bts->max_cs_dl()) { - num = bts->bts->max_cs_dl(); + } else if (bts_max_cs_dl(bts)) { + num = bts_max_cs_dl(bts); } if (!num) diff --git a/src/gprs_ms.c b/src/gprs_ms.c index 9d303d6..ea497a3 100644 --- a/src/gprs_ms.c +++ b/src/gprs_ms.c @@ -91,7 +91,7 @@ } static int ms_talloc_destructor(struct GprsMs *ms); -struct GprsMs *ms_alloc(struct BTS *bts, uint32_t tlli) +struct GprsMs *ms_alloc(struct gprs_rlcmac_bts *bts, uint32_t tlli) { struct GprsMs *ms = talloc_zero(tall_pcu_ctx, struct GprsMs); @@ -249,13 +249,13 @@ case GPRS: if (!mcs_is_gprs(ms->current_cs_ul)) { ms->current_cs_ul = mcs_get_gprs_by_num( - bts_data(ms->bts)->initial_cs_ul); + ms->bts->initial_cs_ul); if (!mcs_is_valid(ms->current_cs_ul)) ms->current_cs_ul = CS1; } if (!mcs_is_gprs(ms->current_cs_dl)) { ms->current_cs_dl = mcs_get_gprs_by_num( - bts_data(ms->bts)->initial_cs_dl); + ms->bts->initial_cs_dl); if (!mcs_is_valid(ms->current_cs_dl)) ms->current_cs_dl = CS1; } @@ -265,13 +265,13 @@ case EGPRS: if (!mcs_is_edge(ms->current_cs_ul)) { ms->current_cs_ul = mcs_get_egprs_by_num( - bts_data(ms->bts)->initial_mcs_ul); + ms->bts->initial_mcs_ul); if (!mcs_is_valid(ms->current_cs_ul)) ms->current_cs_ul = MCS1; } if (!mcs_is_edge(ms->current_cs_dl)) { ms->current_cs_dl = mcs_get_egprs_by_num( - bts_data(ms->bts)->initial_mcs_dl); + ms->bts->initial_mcs_dl); if (!mcs_is_valid(ms->current_cs_dl)) ms->current_cs_dl = MCS1; } diff --git a/src/gprs_ms.h b/src/gprs_ms.h index 6391f72..12809f1 100644 --- a/src/gprs_ms.h +++ b/src/gprs_ms.h @@ -49,7 +49,7 @@ MS_CTR_DL_CTRL_MSG_SCHED, }; -struct BTS; +struct gprs_rlcmac_bts; struct gprs_rlcmac_trx; struct GprsMs; @@ -63,7 +63,7 @@ struct gpr_ms_callback cb; bool app_info_pending; - struct BTS *bts; + struct gprs_rlcmac_bts *bts; struct gprs_rlcmac_ul_tbf *ul_tbf; struct gprs_rlcmac_dl_tbf *dl_tbf; struct llist_head old_tbfs; /* list of gprs_rlcmac_tbf */ @@ -102,7 +102,7 @@ struct rate_ctr_group *ctrs; }; -struct GprsMs *ms_alloc(struct BTS *bts, uint32_t tlli); +struct GprsMs *ms_alloc(struct gprs_rlcmac_bts *bts, uint32_t tlli); int ms_first_common_ts(const struct GprsMs *ms); void ms_set_reserved_slots(struct GprsMs *ms, struct gprs_rlcmac_trx *trx, diff --git a/src/gprs_ms_storage.cpp b/src/gprs_ms_storage.cpp index 6d5b09e..6245ed9 100644 --- a/src/gprs_ms_storage.cpp +++ b/src/gprs_ms_storage.cpp @@ -35,7 +35,7 @@ { llist_del(&ms->list); if (ms->bts) - ms->bts->stat_item_add(STAT_MS_PRESENT, -1); + bts_stat_item_add(ms->bts, STAT_MS_PRESENT, -1); if (ms_is_idle(ms)) talloc_free(ms); } @@ -50,7 +50,7 @@ .ms_active = ms_storage_ms_active_cb, }; -GprsMsStorage::GprsMsStorage(BTS *bts) : +GprsMsStorage::GprsMsStorage(struct gprs_rlcmac_bts *bts) : m_bts(bts) { INIT_LLIST_HEAD(&m_list); @@ -109,7 +109,7 @@ ms_set_callback(ms, &ms_storage_ms_cb); llist_add(&ms->list, &m_list); if (m_bts) - m_bts->stat_item_add(STAT_MS_PRESENT, 1); + bts_stat_item_add(m_bts, STAT_MS_PRESENT, 1); return ms; } diff --git a/src/gprs_ms_storage.h b/src/gprs_ms_storage.h index af49688..dcb6d8d 100644 --- a/src/gprs_ms_storage.h +++ b/src/gprs_ms_storage.h @@ -25,11 +25,11 @@ #include #include -struct BTS; +struct gprs_rlcmac_bts; -class GprsMsStorage { +struct GprsMsStorage { public: - GprsMsStorage(BTS *bts); + GprsMsStorage(struct gprs_rlcmac_bts *bts); ~GprsMsStorage(); void cleanup(); @@ -39,6 +39,6 @@ const struct llist_head* ms_list() const {return &m_list;} private: - BTS *m_bts; + struct gprs_rlcmac_bts *m_bts; struct llist_head m_list; /* list of struct GprsMs */ }; diff --git a/src/gprs_pcu.c b/src/gprs_pcu.c index bc9b350..b280652 100644 --- a/src/gprs_pcu.c +++ b/src/gprs_pcu.c @@ -109,8 +109,7 @@ the_pcu->vty.initial_cs_ul = cs_ul; /*TODO: once we support multiple bts, foreach(bts) apply */ - struct gprs_rlcmac_bts *bts = bts_data(pcu->bts); - bts_recalc_initial_cs(bts); + bts_recalc_initial_cs(pcu->bts); } void gprs_pcu_set_initial_mcs(struct gprs_pcu *pcu, uint8_t mcs_dl, uint8_t mcs_ul) { @@ -118,8 +117,7 @@ the_pcu->vty.initial_mcs_ul = mcs_ul; /*TODO: once we support multiple bts, foreach(bts) apply */ - struct gprs_rlcmac_bts *bts = bts_data(pcu->bts); - bts_recalc_initial_mcs(bts); + bts_recalc_initial_mcs(pcu->bts); } void gprs_pcu_set_max_cs(struct gprs_pcu *pcu, uint8_t cs_dl, uint8_t cs_ul) @@ -127,14 +125,12 @@ the_pcu->vty.max_cs_dl = cs_dl; the_pcu->vty.max_cs_ul = cs_ul; /*TODO: once we support multiple bts, foreach(bts) apply */ - struct gprs_rlcmac_bts *bts = bts_data(pcu->bts); - bts_recalc_max_cs(bts); + bts_recalc_max_cs(pcu->bts); } void gprs_pcu_set_max_mcs(struct gprs_pcu *pcu, uint8_t mcs_dl, uint8_t mcs_ul) { the_pcu->vty.max_mcs_dl = mcs_dl; the_pcu->vty.max_mcs_ul = mcs_ul; /* TODO: once we support multiple bts, foreach(bts) apply */ - struct gprs_rlcmac_bts *bts = bts_data(pcu->bts); - bts_recalc_max_mcs(bts); + bts_recalc_max_mcs(pcu->bts); } diff --git a/src/gprs_pcu.h b/src/gprs_pcu.h index 8913001..37f6e07 100644 --- a/src/gprs_pcu.h +++ b/src/gprs_pcu.h @@ -55,7 +55,6 @@ PCU_GSMTAP_C_UL_PTCCH = 21, /* uplink PTCCH bursts */ }; -struct BTS; struct gprs_rlcmac_bts; struct GprsMs; struct gprs_rlcmac_tbf; @@ -108,7 +107,7 @@ struct gsmtap_inst *gsmtap; uint32_t gsmtap_categ_mask; - struct BTS *bts; + struct gprs_rlcmac_bts *bts; struct gprs_ns2_inst *nsi; diff --git a/src/gprs_rlcmac_sched.cpp b/src/gprs_rlcmac_sched.cpp index b5709c9..39e22c0 100644 --- a/src/gprs_rlcmac_sched.cpp +++ b/src/gprs_rlcmac_sched.cpp @@ -41,13 +41,13 @@ struct gprs_rlcmac_ul_tbf *ul_ack; }; -static uint32_t sched_poll(BTS *bts, +static uint32_t sched_poll(struct gprs_rlcmac_bts *bts, uint8_t trx, uint8_t ts, uint32_t fn, uint8_t block_nr, struct tbf_sched_candidates *tbf_cand) { struct gprs_rlcmac_ul_tbf *ul_tbf; struct gprs_rlcmac_dl_tbf *dl_tbf; - LListHead *pos; + struct llist_item *pos; uint32_t poll_fn; /* check special TBF for events */ @@ -55,8 +55,8 @@ if ((block_nr % 3) == 2) poll_fn ++; poll_fn = poll_fn % GSM_MAX_FN; - llist_for_each(pos, &bts->ul_tbfs()) { - ul_tbf = as_ul_tbf(pos->entry()); + llist_for_each_entry(pos, &bts->ul_tbfs, list) { + ul_tbf = as_ul_tbf((struct gprs_rlcmac_tbf *)pos->entry); OSMO_ASSERT(ul_tbf); /* this trx, this ts */ if (ul_tbf->trx->trx_no != trx || !ul_tbf->is_control_ts(ts)) @@ -74,8 +74,8 @@ /* FIXME: Is this supposed to be fair? The last TBF for each wins? Maybe use llist_add_tail and skip once we have all states? */ } - llist_for_each(pos, &bts->dl_tbfs()) { - dl_tbf = as_dl_tbf(pos->entry()); + llist_for_each_entry(pos, &bts->dl_tbfs, list) { + dl_tbf = as_dl_tbf((struct gprs_rlcmac_tbf *)pos->entry); OSMO_ASSERT(dl_tbf); /* this trx, this ts */ if (dl_tbf->trx->trx_no != trx || !dl_tbf->is_control_ts(ts)) @@ -136,7 +136,7 @@ if (!tbf || !tbf->ms()->app_info_pending) return NULL; - bts_data = BTS::main_bts()->bts_data(); + bts_data = the_pcu->bts; if (bts_data->app_info) { LOGP(DRLCMACSCHED, LOGL_DEBUG, "Sending Packet Application Information message\n"); @@ -367,7 +367,7 @@ return msg; } -static inline void tap_n_acc(const struct msgb *msg, const struct gprs_rlcmac_bts *bts, uint8_t trx, uint8_t ts, +static inline void tap_n_acc(const struct msgb *msg, struct gprs_rlcmac_bts *bts, uint8_t trx, uint8_t ts, uint32_t fn, enum pcu_gsmtap_category cat) { if (!msg) @@ -375,19 +375,19 @@ switch(cat) { case PCU_GSMTAP_C_DL_CTRL: - bts->bts->do_rate_ctr_inc(CTR_RLC_SENT_CONTROL); - bts->bts->send_gsmtap(PCU_GSMTAP_C_DL_CTRL, false, trx, ts, GSMTAP_CHANNEL_PACCH, fn, msg->data, + bts_do_rate_ctr_inc(bts, CTR_RLC_SENT_CONTROL); + bts_send_gsmtap(bts, PCU_GSMTAP_C_DL_CTRL, false, trx, ts, GSMTAP_CHANNEL_PACCH, fn, msg->data, msg->len); break; case PCU_GSMTAP_C_DL_DATA_GPRS: case PCU_GSMTAP_C_DL_DATA_EGPRS: - bts->bts->do_rate_ctr_inc(CTR_RLC_SENT); - bts->bts->send_gsmtap(cat, false, trx, ts, GSMTAP_CHANNEL_PDTCH, fn, msg->data, + bts_do_rate_ctr_inc(bts, CTR_RLC_SENT); + bts_send_gsmtap(bts, cat, false, trx, ts, GSMTAP_CHANNEL_PDTCH, fn, msg->data, msg->len); break; case PCU_GSMTAP_C_DL_DUMMY: - bts->bts->do_rate_ctr_inc(CTR_RLC_SENT_DUMMY); - bts->bts->send_gsmtap(PCU_GSMTAP_C_DL_DUMMY, false, trx, ts, GSMTAP_CHANNEL_PACCH, fn, msg->data, + bts_do_rate_ctr_inc(bts, CTR_RLC_SENT_DUMMY); + bts_send_gsmtap(bts, PCU_GSMTAP_C_DL_DUMMY, false, trx, ts, GSMTAP_CHANNEL_PACCH, fn, msg->data, msg->len); break; default: @@ -438,7 +438,7 @@ req_mcs_kind = EGPRS; /* all kinds are fine */ } - poll_fn = sched_poll(bts->bts, trx, ts, fn, block_nr, &tbf_cand); + poll_fn = sched_poll(bts, trx, ts, fn, block_nr, &tbf_cand); /* check uplink resource for polling */ if (tbf_cand.poll) { LOGP(DRLCMACSCHED, LOGL_DEBUG, "Received RTS for PDCH: TRX=%d " @@ -447,7 +447,7 @@ block_nr, poll_fn, tbf_name(tbf_cand.poll)); usf = USF_UNUSED; /* else. check for sba */ - } else if ((sba_fn = bts->bts->sba()->sched(trx, ts, fn, block_nr)) != 0xffffffff) { +} else if ((sba_fn = bts_sba(bts)->sched(trx, ts, fn, block_nr)) != 0xffffffff) { LOGP(DRLCMACSCHED, LOGL_DEBUG, "Received RTS for PDCH: TRX=%d " "TS=%d FN=%d block_nr=%d scheduling free USF for " "single block allocation at FN=%d\n", trx, ts, fn, @@ -493,7 +493,7 @@ } /* msg is now available */ - bts->bts->do_rate_ctr_add(CTR_RLC_DL_BYTES, msg->data_len); + bts_do_rate_ctr_add(bts, CTR_RLC_DL_BYTES, msg->data_len); /* set USF */ OSMO_ASSERT(msgb_length(msg) > 0); diff --git a/src/gprs_rlcmac_ts_alloc.cpp b/src/gprs_rlcmac_ts_alloc.cpp index 7c2e828..f8b1c1f 100644 --- a/src/gprs_rlcmac_ts_alloc.cpp +++ b/src/gprs_rlcmac_ts_alloc.cpp @@ -305,7 +305,7 @@ * \param[out] trx_no_ TRX number on which TFI was found * \returns negative error code or 0 on success */ -static int tfi_find_free(const BTS *bts, const gprs_rlcmac_trx *trx, const GprsMs *ms, +static int tfi_find_free(const struct gprs_rlcmac_bts *bts, const gprs_rlcmac_trx *trx, const GprsMs *ms, enum gprs_rlcmac_tbf_direction dir, int8_t use_trx, uint8_t *trx_no_) { int tfi; @@ -323,7 +323,7 @@ if (use_trx == -1 && ms_current_trx(ms)) use_trx = ms_current_trx(ms)->trx_no; - tfi = bts->tfi_find_free(dir, &trx_no, use_trx); + tfi = bts_tfi_find_free(bts, dir, &trx_no, use_trx); if (tfi < 0) return -EBUSY; @@ -423,7 +423,7 @@ ms_set_reserved_slots(ms_, trx, 1 << ts, 1 << ts); tbf_->upgrade_to_multislot = 0; - bts->bts->do_rate_ctr_inc(CTR_TBF_ALLOC_ALGO_A); + bts_do_rate_ctr_inc(bts, CTR_TBF_ALLOC_ALGO_A); return 0; } @@ -888,7 +888,7 @@ trx = ms_current_trx(ms); /* Step 2a: Find usable TRX and TFI */ - tfi = tfi_find_free(bts->bts, trx, ms, tbf->direction, use_trx, &trx_no); + tfi = tfi_find_free(bts, trx, ms, tbf->direction, use_trx, &trx_no); if (tfi < 0) { LOGPAL(tbf, "B", single, use_trx, LOGL_NOTICE, "failed to allocate a TFI\n"); return tfi; @@ -966,7 +966,7 @@ else assign_ul_tbf_slots(as_ul_tbf(tbf_), trx, ul_slots, tfi, usf); - bts->bts->do_rate_ctr_inc(CTR_TBF_ALLOC_ALGO_B); + bts_do_rate_ctr_inc(bts, CTR_TBF_ALLOC_ALGO_B); return 0; } diff --git a/src/gsm_timer.cpp b/src/gsm_timer.cpp index cefe520..0627753 100644 --- a/src/gsm_timer.cpp +++ b/src/gsm_timer.cpp @@ -16,7 +16,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - + /* These store the amount of frame number that we wait until next timer expires. */ static int nearest; static int *nearest_p; @@ -45,7 +45,7 @@ */ int get_current_fn() { - return BTS::main_bts()->current_frame_number(); + return bts_current_frame_number(the_pcu->bts); } static void __add_gsm_timer(struct osmo_gsm_timer_list *timer) @@ -232,4 +232,3 @@ } /*! }@ */ - diff --git a/src/llc.cpp b/src/llc.cpp index 51cb15a..470e154 100644 --- a/src/llc.cpp +++ b/src/llc.cpp @@ -122,13 +122,13 @@ msgb_enqueue(&m_queue, llc_msg); } -void llc_queue_clear(struct gprs_llc_queue *q, struct BTS *bts) +void llc_queue_clear(struct gprs_llc_queue *q, struct gprs_rlcmac_bts *bts) { struct msgb *msg; while ((msg = msgb_dequeue(&q->m_queue))) { if (bts) - bts->do_rate_ctr_inc(CTR_LLC_FRAME_DROPPED); + bts_do_rate_ctr_inc(bts, CTR_LLC_FRAME_DROPPED); msgb_free(msg); } @@ -221,7 +221,7 @@ return msg; } -void gprs_llc_queue::calc_pdu_lifetime(BTS *bts, const uint16_t pdu_delay_csec, struct timespec *tv) +void gprs_llc_queue::calc_pdu_lifetime(struct gprs_rlcmac_bts *bts, const uint16_t pdu_delay_csec, struct timespec *tv) { uint16_t delay_csec; if (bts->pcu->vty.force_llc_lifetime) diff --git a/src/llc.h b/src/llc.h index 72fa62e..13662d8 100644 --- a/src/llc.h +++ b/src/llc.h @@ -32,7 +32,7 @@ #define LLC_MAX_LEN 1543 -struct BTS; +struct gprs_rlcmac_bts; /** * I represent the LLC data to a MS @@ -65,7 +65,7 @@ */ struct gprs_llc_queue { #ifdef __cplusplus - static void calc_pdu_lifetime(BTS *bts, const uint16_t pdu_delay_csec, + static void calc_pdu_lifetime(struct gprs_rlcmac_bts *bts, const uint16_t pdu_delay_csec, struct timespec *tv); static bool is_frame_expired(const struct timespec *now, const struct timespec *tv); @@ -84,7 +84,7 @@ extern "C" { #endif void llc_queue_init(struct gprs_llc_queue *q); -void llc_queue_clear(struct gprs_llc_queue *q, struct BTS *bts); +void llc_queue_clear(struct gprs_llc_queue *q, struct gprs_rlcmac_bts *bts); void llc_queue_move_and_merge(struct gprs_llc_queue *q, struct gprs_llc_queue *o); static inline uint16_t llc_chunk_size(const struct gprs_llc *llc) diff --git a/src/pcu_l1_if.cpp b/src/pcu_l1_if.cpp index a11ec7e..1a47b37 100644 --- a/src/pcu_l1_if.cpp +++ b/src/pcu_l1_if.cpp @@ -53,6 +53,7 @@ #include #include #include +#include // FIXME: move this, when changed from c++ to c. extern "C" { @@ -271,13 +272,13 @@ extern "C" void pcu_rx_block_time(uint16_t arfcn, uint32_t fn, uint8_t ts_no) { - BTS::main_bts()->set_current_block_frame_number(fn, 0); + bts_set_current_block_frame_number(the_pcu->bts,fn, 0); } extern "C" void pcu_rx_ra_time(uint16_t arfcn, uint32_t fn, uint8_t ts_no) { /* access bursts may arrive some bursts earlier */ - BTS::main_bts()->set_current_block_frame_number(fn, 5); + bts_set_current_block_frame_number(the_pcu->bts,fn, 5); } extern "C" int pcu_rx_data_ind_pdtch(uint8_t trx_no, uint8_t ts_no, uint8_t *data, @@ -368,7 +369,7 @@ switch (data_cnf->sapi) { case PCU_IF_SAPI_PCH: if (data_cnf->data[2] == 0x3f) - BTS::main_bts()->rcv_imm_ass_cnf(data_cnf->data, data_cnf->fn); + bts_rcv_imm_ass_cnf(the_pcu->bts, data_cnf->data, data_cnf->fn); break; default: LOGP(DL1IF, LOGL_ERROR, "Received PCU data confirm with " @@ -447,7 +448,7 @@ .qta = qta, }; - return BTS::main_bts()->rcv_ptcch_rach(&rip); + return bts_rcv_ptcch_rach(the_pcu->bts, &rip); } static int pcu_rx_rach_ind(const struct gsm_pcu_if_rach_ind *rach_ind) @@ -471,10 +472,10 @@ switch (rach_ind->sapi) { case PCU_IF_SAPI_RACH: - rc = BTS::main_bts()->rcv_rach(&rip); + rc = bts_rcv_rach(the_pcu->bts, &rip); break; case PCU_IF_SAPI_PTCCH: - rc = BTS::main_bts()->rcv_ptcch_rach(&rip); + rc = bts_rcv_ptcch_rach(the_pcu->bts, &rip); break; default: LOGP(DL1IF, LOGL_ERROR, "Received PCU rach request with " @@ -751,7 +752,7 @@ LOGP(DL1IF, LOGL_DEBUG, "Time indication received: %d\n", time_ind->fn % 52); - BTS::main_bts()->set_current_frame_number(time_ind->fn); + bts_set_current_frame_number(the_pcu->bts, time_ind->fn); return 0; } @@ -776,12 +777,12 @@ return -EINVAL; } - return BTS::main_bts()->add_paging(pag_req->chan_needed, &mi); + return bts_add_paging(the_pcu->bts, pag_req->chan_needed, &mi); } static int pcu_rx_susp_req(struct gsm_pcu_if_susp_req *susp_req) { - BTS *bts = BTS::main_bts(); + struct gprs_rlcmac_bts *bts = the_pcu->bts; struct bssgp_bvc_ctx *bctx = gprs_bssgp_pcu_current_bctx(); GprsMs *ms; struct gprs_rlcmac_dl_tbf *dl_tbf; @@ -793,7 +794,7 @@ LOGP(DL1IF, LOGL_INFO, "GPRS Suspend request received: TLLI=0x%08x RAI=%s\n", susp_req->tlli, osmo_rai_name(&ra_id)); - if ((ms = bts->ms_store().get_ms(susp_req->tlli))) { + if ((ms = bts_ms_store(bts)->get_ms(susp_req->tlli))) { /* We need to catch both pointers here since MS may become freed after first tbf_free(dl_tbf) if only DL TBF was available */ dl_tbf = ms_dl_tbf(ms); @@ -812,15 +813,15 @@ static int pcu_rx_app_info_req(struct gsm_pcu_if_app_info_req *app_info_req) { - BTS *bts = BTS::main_bts(); - struct gprs_rlcmac_bts *bts_data = bts->bts_data(); + struct gprs_rlcmac_bts *bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts_data = bts; struct llist_head *tmp; LOGP(DL1IF, LOGL_DEBUG, "Application Information Request received: type=0x%08x len=%i\n", app_info_req->application_type, app_info_req->len); bts_data->app_info_pending = 0; - llist_for_each(tmp, bts->ms_store().ms_list()) { + llist_for_each(tmp, bts_ms_store(bts)->ms_list()) { GprsMs *ms = llist_entry(tmp, typeof(*ms), list); if (!ms_dl_tbf(ms)) continue; diff --git a/src/pcu_main.cpp b/src/pcu_main.cpp index e953d43..8bb7c1f 100644 --- a/src/pcu_main.cpp +++ b/src/pcu_main.cpp @@ -342,7 +342,7 @@ pcu_l1if_close(); - bts_cleanup(); + TALLOC_FREE(the_pcu); talloc_report_full(tall_pcu_ctx, stderr); talloc_free(tall_pcu_ctx); diff --git a/src/pcu_vty_functions.cpp b/src/pcu_vty_functions.cpp index 0276b3e..0e9cc00 100644 --- a/src/pcu_vty_functions.cpp +++ b/src/pcu_vty_functions.cpp @@ -101,21 +101,23 @@ vty_out(vty, "%s%s", VTY_NEWLINE, VTY_NEWLINE); } -int pcu_vty_show_tbf_all(struct vty *vty, struct gprs_rlcmac_bts *bts_data, uint32_t flags) +int pcu_vty_show_tbf_all(struct vty *vty, struct gprs_rlcmac_bts *bts, uint32_t flags) { - BTS *bts = bts_data->bts; - LListHead *iter; + struct llist_item *iter; + struct gprs_rlcmac_tbf *tbf; vty_out(vty, "UL TBFs%s", VTY_NEWLINE); - llist_for_each(iter, &bts->ul_tbfs()) { - if (iter->entry()->state_flags & flags) - tbf_print_vty_info(vty, iter->entry()); + llist_for_each_entry(iter, &bts->ul_tbfs, list) { + tbf = (struct gprs_rlcmac_tbf *)iter->entry; + if (tbf->state_flags & flags) + tbf_print_vty_info(vty, tbf); } vty_out(vty, "%sDL TBFs%s", VTY_NEWLINE, VTY_NEWLINE); - llist_for_each(iter, &bts->dl_tbfs()) { - if (iter->entry()->state_flags & flags) - tbf_print_vty_info(vty, iter->entry()); + llist_for_each_entry(iter, &bts->dl_tbfs, list) { + tbf = (struct gprs_rlcmac_tbf *)iter->entry; + if (tbf->state_flags & flags) + tbf_print_vty_info(vty, tbf); } return CMD_SUCCESS; @@ -204,12 +206,11 @@ return CMD_SUCCESS; } -int pcu_vty_show_ms_all(struct vty *vty, struct gprs_rlcmac_bts *bts_data) +int pcu_vty_show_ms_all(struct vty *vty, struct gprs_rlcmac_bts *bts) { - BTS *bts = bts_data->bts; struct llist_head *tmp; - llist_for_each(tmp, bts->ms_store().ms_list()) { + llist_for_each(tmp, bts_ms_store(bts)->ms_list()) { GprsMs *ms_iter = llist_entry(tmp, typeof(*ms_iter), list); show_ms(vty, ms_iter); } @@ -217,11 +218,10 @@ return CMD_SUCCESS; } -int pcu_vty_show_ms_by_tlli(struct vty *vty, struct gprs_rlcmac_bts *bts_data, +int pcu_vty_show_ms_by_tlli(struct vty *vty, struct gprs_rlcmac_bts *bts, uint32_t tlli) { - BTS *bts = bts_data->bts; - GprsMs *ms = bts->ms_store().get_ms(tlli); + GprsMs *ms = bts_ms_store(bts)->get_ms(tlli); if (!ms) { vty_out(vty, "Unknown TLLI %08x.%s", tlli, VTY_NEWLINE); return CMD_WARNING; @@ -230,11 +230,10 @@ return show_ms(vty, ms); } -int pcu_vty_show_ms_by_imsi(struct vty *vty, struct gprs_rlcmac_bts *bts_data, +int pcu_vty_show_ms_by_imsi(struct vty *vty, struct gprs_rlcmac_bts *bts, const char *imsi) { - BTS *bts = bts_data->bts; - GprsMs *ms = bts->ms_store().get_ms(0, 0, imsi); + GprsMs *ms = bts_ms_store(bts)->get_ms(0, 0, imsi); if (!ms) { vty_out(vty, "Unknown IMSI '%s'.%s", imsi, VTY_NEWLINE); return CMD_WARNING; diff --git a/src/pdch.cpp b/src/pdch.cpp index 49cce8d..49f0b85 100644 --- a/src/pdch.cpp +++ b/src/pdch.cpp @@ -113,9 +113,9 @@ } } -static inline void sched_ul_ass_or_rej(BTS *bts, gprs_rlcmac_bts *bts_data, struct gprs_rlcmac_dl_tbf *tbf) +static inline void sched_ul_ass_or_rej(struct gprs_rlcmac_bts *bts, gprs_rlcmac_bts *bts_data, struct gprs_rlcmac_dl_tbf *tbf) { - bts->do_rate_ctr_inc(CTR_CHANNEL_REQUEST_DESCRIPTION); + bts_do_rate_ctr_inc(bts, CTR_CHANNEL_REQUEST_DESCRIPTION); /* This call will register the new TBF with the MS on success */ gprs_rlcmac_ul_tbf *ul_tbf = tbf_alloc_ul(bts_data, tbf->ms(), tbf->trx->trx_no, tbf->tlli()); @@ -158,7 +158,7 @@ while ((pag = dequeue_paging())) talloc_free(pag); - trx->bts->sba()->free_resources(this); + bts_sba(trx->bts)->free_resources(this); } struct gprs_rlcmac_paging *gprs_rlcmac_pdch::dequeue_paging() @@ -292,12 +292,12 @@ { struct gprs_rlcmac_tbf *tbf, *new_tbf; uint32_t tlli = packet->TLLI; - GprsMs *ms = bts()->ms_by_tlli(tlli); + GprsMs *ms = bts_ms_by_tlli(bts(), tlli, GSM_RESERVED_TMSI); gprs_rlcmac_ul_tbf *ul_tbf; - tbf = bts()->ul_tbf_by_poll_fn(fn, trx_no(), ts_no); + tbf = bts_ul_tbf_by_poll_fn(bts(), fn, trx_no(), ts_no); if (!tbf) - tbf = bts()->dl_tbf_by_poll_fn(fn, trx_no(), ts_no); + tbf = bts_dl_tbf_by_poll_fn(bts(), fn, trx_no(), ts_no); if (!tbf) { LOGP(DRLCMAC, LOGL_NOTICE, "PACKET CONTROL ACK with " @@ -410,7 +410,7 @@ char show_bits[RLC_GPRS_WS + 1]; tfi = ack_nack->DOWNLINK_TFI; - tbf = bts()->dl_tbf_by_poll_fn(fn, trx_no(), ts_no); + tbf = bts_dl_tbf_by_poll_fn(bts(), fn, trx_no(), ts_no); if (!tbf) { LOGP(DRLCMAC, LOGL_NOTICE, "PACKET DOWNLINK ACK with " "unknown FN=%u TFI=%d (TRX %d TS %d)\n", @@ -477,7 +477,7 @@ int bsn_begin, bsn_end; tfi = ack_nack->DOWNLINK_TFI; - tbf = bts()->dl_tbf_by_poll_fn(fn, trx_no(), ts_no); + tbf = bts_dl_tbf_by_poll_fn(bts(), fn, trx_no(), ts_no); if (!tbf) { LOGP(DRLCMAC, LOGL_NOTICE, "EGPRS PACKET DOWNLINK ACK with " "unknown FN=%u TFI=%d (TRX %d TS %d)\n", @@ -566,10 +566,10 @@ uint32_t tlli = request->ID.u.TLLI; bool ms_found = true; - GprsMs *ms = bts()->ms_by_tlli(tlli); + GprsMs *ms = bts_ms_by_tlli(bts(), tlli, GSM_RESERVED_TMSI); if (!ms) { ms_found = false; - ms = bts()->ms_alloc(0, 0); /* ms class updated later */ + ms = bts_alloc_ms(bts(), 0, 0); /* ms class updated later */ ms_set_tlli(ms, tlli); } ul_tbf = ms_ul_tbf(ms); /* hence ul_tbf may be NULL */ @@ -580,10 +580,10 @@ LOGP(DRLCMAC, LOGL_DEBUG, "MS requests UL TBF " "in packet resource request of single " "block, so we provide one:\n"); - sba = bts()->sba()->find(this, fn); + sba = bts_sba(bts())->find(this, fn); if (sba) { ms_set_ta(ms, sba->ta); - bts()->sba()->free_sba(sba); + bts_sba(bts())->free_sba(sba); } else if (!ul_tbf || !ul_tbf->state_is(GPRS_RLCMAC_FINISHED)) { LOGPTBFUL(ul_tbf, LOGL_NOTICE, "MS requests UL TBF in PACKET RESOURCE REQ of " @@ -640,7 +640,7 @@ if (request->ID.u.Global_TFI.UnionType) { struct gprs_rlcmac_dl_tbf *dl_tbf; int8_t tfi = request->ID.u.Global_TFI.u.DOWNLINK_TFI; - dl_tbf = bts()->dl_tbf_by_tfi(tfi, trx_no(), ts_no); + dl_tbf = bts_dl_tbf_by_tfi(bts(), tfi, trx_no(), ts_no); if (!dl_tbf) { LOGP(DRLCMAC, LOGL_NOTICE, "PACKET RESOURCE REQ unknown downlink TFI=%d\n", tfi); return; @@ -653,7 +653,7 @@ } else { struct gprs_rlcmac_ul_tbf *ul_tbf; int8_t tfi = request->ID.u.Global_TFI.u.UPLINK_TFI; - ul_tbf = bts()->ul_tbf_by_tfi(tfi, trx_no(), ts_no); + ul_tbf = bts_ul_tbf_by_tfi(bts(), tfi, trx_no(), ts_no); if (!ul_tbf) { LOGP(DRLCMAC, LOGL_NOTICE, "PACKET RESOURCE REQ unknown uplink TFI=%d\n", tfi); return; @@ -671,16 +671,16 @@ struct gprs_rlcmac_sba *sba; GprsMs *ms; - ms = bts()->ms_by_tlli(report->TLLI); + ms = bts_ms_by_tlli(bts(), report->TLLI, GSM_RESERVED_TMSI); if (!ms) { LOGP(DRLCMAC, LOGL_NOTICE, "MS send measurement " "but TLLI 0x%08x is unknown\n", report->TLLI); - ms = bts()->ms_alloc(0, 0); + ms = bts_alloc_ms(bts(), 0, 0); ms_set_tlli(ms, report->TLLI); } - if ((sba = bts()->sba()->find(this, fn))) { + if ((sba = bts_sba(bts())->find(this, fn))) { ms_set_ta(ms, sba->ta); - bts()->sba()->free_sba(sba); + bts_sba(bts())->free_sba(sba); } gprs_rlcmac_meas_rep(ms, report); } @@ -703,9 +703,9 @@ rc = decode_gsm_rlcmac_uplink(rlc_block, ul_control_block); if (ul_control_block->u.MESSAGE_TYPE == MT_PACKET_UPLINK_DUMMY_CONTROL_BLOCK) - bts()->send_gsmtap_meas(PCU_GSMTAP_C_UL_DUMMY, true, trx_no(), ts_no, GSMTAP_CHANNEL_PACCH, fn, data, data_len, meas); + bts_send_gsmtap_meas(bts(), PCU_GSMTAP_C_UL_DUMMY, true, trx_no(), ts_no, GSMTAP_CHANNEL_PACCH, fn, data, data_len, meas); else - bts()->send_gsmtap_meas(PCU_GSMTAP_C_UL_CTRL, true, trx_no(), ts_no, GSMTAP_CHANNEL_PACCH, fn, data, data_len, meas); + bts_send_gsmtap_meas(bts(), PCU_GSMTAP_C_UL_CTRL, true, trx_no(), ts_no, GSMTAP_CHANNEL_PACCH, fn, data, data_len, meas); if (rc < 0) { LOGP(DRLCMACUL, LOGL_ERROR, "Dropping Uplink Control Block with invalid " @@ -714,7 +714,7 @@ } LOGP(DRLCMAC, LOGL_DEBUG, "------------------------- RX : Uplink Control Block -------------------------\n"); - bts()->do_rate_ctr_inc(CTR_RLC_RECV_CONTROL); + bts_do_rate_ctr_inc(bts(), CTR_RLC_RECV_CONTROL); switch (ul_control_block->u.MESSAGE_TYPE) { case MT_PACKET_CONTROL_ACK: rcv_control_ack(&ul_control_block->u.Packet_Control_Acknowledgement, fn); @@ -735,7 +735,7 @@ /* ignoring it. change the SI to not force sending these? */ break; default: - bts()->do_rate_ctr_inc(CTR_DECODE_ERRORS); + bts_do_rate_ctr_inc(bts(), CTR_DECODE_ERRORS); LOGP(DRLCMAC, LOGL_NOTICE, "RX: [PCU <- BTS] unknown control block(%d) received\n", ul_control_block->u.MESSAGE_TYPE); @@ -752,13 +752,13 @@ { enum CodingScheme cs = mcs_get_by_size_ul(len); if (!cs) { - bts()->do_rate_ctr_inc(CTR_DECODE_ERRORS); + bts_do_rate_ctr_inc(bts(), CTR_DECODE_ERRORS); LOGP(DRLCMACUL, LOGL_ERROR, "Dropping data block with invalid " "length %d: %s\n", len, osmo_hexdump(data, len)); return -EINVAL; } - bts()->do_rate_ctr_add(CTR_RLC_UL_BYTES, len); + bts_do_rate_ctr_add(bts(), CTR_RLC_UL_BYTES, len); LOGP(DRLCMACUL, LOGL_DEBUG, "Got RLC block, coding scheme: %s, " "length: %d (%d))\n", mcs_name(cs), len, mcs_used_size_ul(cs)); @@ -769,7 +769,7 @@ if (mcs_is_edge(cs)) return rcv_data_block(data, len, fn, meas, cs); - bts()->do_rate_ctr_inc(CTR_DECODE_ERRORS); + bts_do_rate_ctr_inc(bts(), CTR_DECODE_ERRORS); LOGP(DRLCMACUL, LOGL_ERROR, "Unsupported coding scheme %s\n", mcs_name(cs)); return -EINVAL; @@ -788,11 +788,11 @@ * control blocks (see 44.060, section 10.3, 1st par.) */ if (mcs_is_edge(cs)) { - bts()->send_gsmtap_meas(PCU_GSMTAP_C_UL_DATA_EGPRS, true, + bts_send_gsmtap_meas(bts(), PCU_GSMTAP_C_UL_DATA_EGPRS, true, trx_no(), ts_no, GSMTAP_CHANNEL_PDTCH, fn, data, data_len, meas); } else { - bts()->send_gsmtap_meas(PCU_GSMTAP_C_UL_DATA_GPRS, true, + bts_send_gsmtap_meas(bts(), PCU_GSMTAP_C_UL_DATA_GPRS, true, trx_no(), ts_no, GSMTAP_CHANNEL_PDTCH, fn, data, data_len, meas); } @@ -804,7 +804,7 @@ LOGP(DRLCMACUL, LOGL_ERROR, "Got %s RLC block but header parsing has failed\n", mcs_name(cs)); - bts()->do_rate_ctr_inc(CTR_DECODE_ERRORS); + bts_do_rate_ctr_inc(bts(), CTR_DECODE_ERRORS); return rc; } @@ -974,7 +974,7 @@ m_num_reserved[dir] -= 1; } -inline BTS *gprs_rlcmac_pdch::bts() const +inline struct gprs_rlcmac_bts *gprs_rlcmac_pdch::bts() const { return trx->bts; } @@ -986,7 +986,7 @@ inline gprs_rlcmac_bts *gprs_rlcmac_pdch::bts_data() const { - return trx->bts->bts_data(); + return trx->bts; } /* PTCCH (Packet Timing Advance Control Channel) */ diff --git a/src/pdch.h b/src/pdch.h index 5185045..7a544fe 100644 --- a/src/pdch.h +++ b/src/pdch.h @@ -70,7 +70,7 @@ struct pcu_l1_meas *meas, enum CodingScheme cs); gprs_rlcmac_bts *bts_data() const; - BTS *bts() const; + struct gprs_rlcmac_bts *bts() const; uint8_t trx_no() const; struct gprs_rlcmac_ul_tbf *ul_tbf_by_tfi(uint8_t tfi); diff --git a/src/poll_controller.cpp b/src/poll_controller.cpp index ac79510..04ec4fd 100644 --- a/src/poll_controller.cpp +++ b/src/poll_controller.cpp @@ -24,6 +24,7 @@ #include #include #include +#include #include #include @@ -32,7 +33,7 @@ #include } -PollController::PollController(BTS& bts) +PollController::PollController(struct gprs_rlcmac_bts& bts) : m_bts(bts) {} @@ -51,26 +52,26 @@ struct gprs_rlcmac_dl_tbf *dl_tbf; struct gprs_rlcmac_ul_tbf *ul_tbf; struct gprs_rlcmac_sba *sba, *sba2; - LListHead *pos; + struct llist_item *pos; - llist_for_each(pos, &m_bts.ul_tbfs()) { - ul_tbf = as_ul_tbf(pos->entry()); + llist_for_each_entry(pos, &m_bts.ul_tbfs, list) { + ul_tbf = as_ul_tbf((struct gprs_rlcmac_tbf *)pos->entry); if (ul_tbf->poll_scheduled()) { if (elapsed_fn_check(max_delay, frame_number, ul_tbf->poll_fn)) ul_tbf->poll_timeout(); } } - llist_for_each(pos, &m_bts.dl_tbfs()) { - dl_tbf = as_dl_tbf(pos->entry()); + llist_for_each_entry(pos, &m_bts.dl_tbfs, list) { + dl_tbf = as_dl_tbf((struct gprs_rlcmac_tbf *)pos->entry); if (dl_tbf->poll_scheduled()) { if (elapsed_fn_check(max_delay, frame_number, dl_tbf->poll_fn)) dl_tbf->poll_timeout(); } } - llist_for_each_entry_safe(sba, sba2, &m_bts.sba()->m_sbas, list) { + llist_for_each_entry_safe(sba, sba2, &bts_sba(&m_bts)->m_sbas, list) { if (elapsed_fn_check(max_delay, frame_number, sba->fn)) { /* sba will be freed here */ - m_bts.sba()->timeout(sba); + bts_sba(&m_bts)->timeout(sba); } } diff --git a/src/poll_controller.h b/src/poll_controller.h index 65d1fee..8e709a3 100644 --- a/src/poll_controller.h +++ b/src/poll_controller.h @@ -21,22 +21,22 @@ #pragma once -struct BTS; +struct gprs_rlcmac_bts; /** * I belong to a BTS and I am responsible for finding TBFs and * SBAs that should have been polled and execute the timeout * action on them. */ -class PollController { +struct PollController { public: - PollController(BTS& bts); + PollController(struct gprs_rlcmac_bts& bts); /* check for poll timeout */ void expireTimedout(int frame_number, unsigned max_delay); private: - BTS& m_bts; + struct gprs_rlcmac_bts& m_bts; private: /* disable copying to avoid slicing */ diff --git a/src/rlc.cpp b/src/rlc.cpp index 8f56a8e..a2cc52c 100644 --- a/src/rlc.cpp +++ b/src/rlc.cpp @@ -127,7 +127,7 @@ return (ssn - 1 - bitnum); } -void gprs_rlc_dl_window::update(BTS *bts, const struct bitvec *rbb, +void gprs_rlc_dl_window::update(struct gprs_rlcmac_bts *bts, const struct bitvec *rbb, uint16_t first_bsn, uint16_t *lost, uint16_t *received) { @@ -154,13 +154,13 @@ } else { LOGP(DRLCMACDL, LOGL_DEBUG, "- got NACK for BSN=%d\n", bsn); m_v_b.mark_nacked(bsn); - bts->do_rate_ctr_inc(CTR_RLC_NACKED); + bts_do_rate_ctr_inc(bts, CTR_RLC_NACKED); *lost += 1; } } } -void gprs_rlc_dl_window::update(BTS *bts, char *show_rbb, uint16_t ssn, +void gprs_rlc_dl_window::update(struct gprs_rlcmac_bts *bts, char *show_rbb, uint16_t ssn, uint16_t *lost, uint16_t *received) { /* SSN - 1 is in range V(A)..V(S)-1 */ @@ -178,7 +178,7 @@ } else { LOGP(DRLCMACDL, LOGL_DEBUG, "- got NACK for BSN=%d\n", bsn); m_v_b.mark_nacked(bsn); - bts->do_rate_ctr_inc(CTR_RLC_NACKED); + bts_do_rate_ctr_inc(bts, CTR_RLC_NACKED); *lost += 1; } } diff --git a/src/rlc.h b/src/rlc.h index 707f305..eb79430 100644 --- a/src/rlc.h +++ b/src/rlc.h @@ -38,7 +38,7 @@ #define RLC_MAX_WS RLC_EGPRS_MAX_WS #define RLC_MAX_LEN 74 /* MCS-9 data unit */ -struct BTS; +struct gprs_rlcmac_bts; /* The state of a BSN in the send/receive window */ enum gprs_rlc_ul_bsn_state { @@ -307,9 +307,9 @@ /* Methods to manage reception */ int resend_needed() const; int mark_for_resend(); - void update(BTS *bts, char *show_rbb, uint16_t ssn, + void update(struct gprs_rlcmac_bts *bts, char *show_rbb, uint16_t ssn, uint16_t *lost, uint16_t *received); - void update(BTS *bts, const struct bitvec *rbb, + void update(struct gprs_rlcmac_bts *bts, const struct bitvec *rbb, uint16_t first_bsn, uint16_t *lost, uint16_t *received); int move_window(); diff --git a/src/sba.cpp b/src/sba.cpp index cc58405..53eb847 100644 --- a/src/sba.cpp +++ b/src/sba.cpp @@ -40,7 +40,7 @@ * This offset must be a multiple of 13. */ #define AGCH_START_OFFSET 52 -SBAController::SBAController(BTS &bts) +SBAController::SBAController(struct gprs_rlcmac_bts &bts) : m_bts(bts) { INIT_LLIST_HEAD(&m_sbas); @@ -64,7 +64,7 @@ for (trx = 0; trx < 8; trx++) { for (ts = 7; ts >= 0; ts--) { - pdch = &m_bts.bts_data()->trx[trx].pdch[ts]; + pdch = &m_bts.trx[trx].pdch[ts]; if (!pdch->is_enabled()) continue; break; @@ -86,7 +86,7 @@ sba->ta = ta; llist_add(&sba->list, &m_sbas); - m_bts.do_rate_ctr_inc(CTR_SBA_ALLOCATED); + bts_do_rate_ctr_inc(&m_bts, CTR_SBA_ALLOCATED); *_trx = trx; *_ts = ts; @@ -132,14 +132,14 @@ LOGP(DRLCMAC, LOGL_NOTICE, "Poll timeout for SBA (TRX=%u, TS=%u, FN=%u, TA=%u)\n", sba->trx_no, sba->ts_no, sba->fn, sba->ta); - m_bts.do_rate_ctr_inc(CTR_SBA_TIMEDOUT); + bts_do_rate_ctr_inc(&m_bts, CTR_SBA_TIMEDOUT); free_sba(sba); return 0; } void SBAController::free_sba(gprs_rlcmac_sba *sba) { - m_bts.do_rate_ctr_inc(CTR_SBA_FREED); + bts_do_rate_ctr_inc(&m_bts, CTR_SBA_FREED); llist_del(&sba->list); talloc_free(sba); } diff --git a/src/sba.h b/src/sba.h index 27dae21..a6e3f82 100644 --- a/src/sba.h +++ b/src/sba.h @@ -26,7 +26,7 @@ #include } -struct BTS; +struct gprs_rlcmac_bts; struct gprs_rlcmac_pdch; /* @@ -45,10 +45,10 @@ * * TODO: Add a flush method.. */ -class SBAController { +struct SBAController { friend class PollController; public: - SBAController(BTS &bts); + SBAController(struct gprs_rlcmac_bts &bts); int alloc(uint8_t *_trx, uint8_t *_ts, uint32_t *_fn, uint8_t ta); gprs_rlcmac_sba *find(uint8_t trx, uint8_t ts, uint32_t fn); @@ -62,6 +62,6 @@ void free_sba(gprs_rlcmac_sba *sba); private: - BTS &m_bts; + struct gprs_rlcmac_bts &m_bts; llist_head m_sbas; }; diff --git a/src/tbf.cpp b/src/tbf.cpp index 43c8cbf..05f4e2c 100644 --- a/src/tbf.cpp +++ b/src/tbf.cpp @@ -124,7 +124,7 @@ timespecclear(&rssi_tv); } -gprs_rlcmac_tbf::gprs_rlcmac_tbf(BTS *bts_, GprsMs *ms, gprs_rlcmac_tbf_direction dir) : +gprs_rlcmac_tbf::gprs_rlcmac_tbf(struct gprs_rlcmac_bts *bts_, GprsMs *ms, gprs_rlcmac_tbf_direction dir) : state_flags(0), direction(dir), trx(NULL), @@ -147,7 +147,6 @@ ul_ass_state(GPRS_RLCMAC_UL_ASS_NONE), ul_ack_state(GPRS_RLCMAC_UL_ACK_NONE), poll_state(GPRS_RLCMAC_POLL_NONE), - m_list(this), m_egprs_enabled(false) { /* The classes of these members do not have proper constructors yet. @@ -160,6 +159,9 @@ memset(&m_ms_list, 0, sizeof(m_ms_list)); m_ms_list.entry = this; + memset(&m_bts_list, 0, sizeof(m_bts_list)); + m_bts_list.entry = this; + m_rlc.init(); m_llc.init(); @@ -168,7 +170,7 @@ gprs_rlcmac_bts *gprs_rlcmac_tbf::bts_data() const { - return bts->bts_data(); + return bts; } uint32_t gprs_rlcmac_tbf::tlli() const @@ -245,7 +247,7 @@ if (!ms_check_tlli(ms(), tlli)) { GprsMs *old_ms; - old_ms = bts->ms_store().get_ms(tlli, 0, NULL); + old_ms = bts_ms_store(bts)->get_ms(tlli, 0, NULL); if (old_ms) ms_merge_and_clear_ms(ms(), old_ms); } @@ -274,9 +276,9 @@ /* update counters */ if (tbf->direction == GPRS_RLCMAC_UL_TBF) { gprs_rlcmac_ul_tbf *ul_tbf = as_ul_tbf(tbf); - tbf->bts->do_rate_ctr_inc(CTR_TBF_UL_FREED); + bts_do_rate_ctr_inc(tbf->bts, CTR_TBF_UL_FREED); if (tbf->state_is(GPRS_RLCMAC_FLOW)) - tbf->bts->do_rate_ctr_inc(CTR_TBF_UL_ABORTED); + bts_do_rate_ctr_inc(tbf->bts, CTR_TBF_UL_ABORTED); rate_ctr_group_free(ul_tbf->m_ul_egprs_ctrs); rate_ctr_group_free(ul_tbf->m_ul_gprs_ctrs); } else { @@ -286,9 +288,9 @@ } else { rate_ctr_group_free(dl_tbf->m_dl_gprs_ctrs); } - tbf->bts->do_rate_ctr_inc(CTR_TBF_DL_FREED); + bts_do_rate_ctr_inc(tbf->bts, CTR_TBF_DL_FREED); if (tbf->state_is(GPRS_RLCMAC_FLOW)) - tbf->bts->do_rate_ctr_inc(CTR_TBF_DL_ABORTED); + bts_do_rate_ctr_inc(tbf->bts, CTR_TBF_DL_ABORTED); } /* Give final measurement report */ @@ -304,7 +306,7 @@ tbf->stop_timers("freeing TBF"); /* TODO: Could/Should generate bssgp_tx_llc_discarded */ tbf_unlink_pdch(tbf); - llist_del(&tbf->list()); + llist_del(tbf_bts_list(tbf)); if (tbf->ms()) tbf->set_ms(NULL); @@ -326,7 +328,7 @@ int gprs_rlcmac_tbf::update() { - struct gprs_rlcmac_bts *bts_data = bts->bts_data(); + struct gprs_rlcmac_bts *bts_data = bts; int rc; if (direction != GPRS_RLCMAC_DL_TBF) @@ -399,13 +401,13 @@ switch(n) { case N3101: - chk = bts->bts_data()->n3101; + chk = bts->n3101; break; case N3103: - chk = bts->bts_data()->n3103; + chk = bts->n3103; break; case N3105: - chk = bts->bts_data()->n3105; + chk = bts->n3105; break; default: LOGPTBF(this, LOGL_ERROR, "unhandled counter %s\n", @@ -492,7 +494,7 @@ int microsec; struct osmo_tdef *tdef; - if (!(tdef = osmo_tdef_get_entry(bts->bts_data()->T_defs_bts, T))) + if (!(tdef = osmo_tdef_get_entry(bts->T_defs_bts, T))) tdef = osmo_tdef_get_entry(bts->pcu->T_defs, T); if (t >= T_MAX || !tdef) { @@ -563,7 +565,7 @@ LOGPTBF(this, LOGL_DEBUG, "Polling is already scheduled\n"); return -EBUSY; } - if (bts->sba()->find(trx->trx_no, ts, next_fn(fn, 13))) { + if (bts_sba(bts)->find(trx->trx_no, ts, next_fn(fn, 13))) { LOGPTBF(this, LOGL_DEBUG, "Polling is already scheduled " "for single block allocation at FN %d TS %d ...\n", new_poll_fn, ts); @@ -628,7 +630,7 @@ gprs_rlcmac_ul_tbf *ul_tbf = as_ul_tbf(this); LOGPTBF(this, LOGL_NOTICE, "poll timeout for FN=%d, TS=%d (curr FN %d)\n", - poll_fn, poll_ts, bts->current_frame_number()); + poll_fn, poll_ts, bts_current_frame_number(bts)); poll_state = GPRS_RLCMAC_POLL_NONE; @@ -644,11 +646,11 @@ "Timeout for polling PACKET CONTROL ACK for PACKET UPLINK ACK: %s\n", rlcmac_diag().c_str()); } - bts->do_rate_ctr_inc(CTR_RLC_ACK_TIMEDOUT); - bts->do_rate_ctr_inc(CTR_PUAN_POLL_TIMEDOUT); + bts_do_rate_ctr_inc(bts, CTR_RLC_ACK_TIMEDOUT); + bts_do_rate_ctr_inc(bts, CTR_PUAN_POLL_TIMEDOUT); if (state_is(GPRS_RLCMAC_FINISHED)) { if (ul_tbf->n_inc(N3103)) { - bts->do_rate_ctr_inc(CTR_PUAN_POLL_FAILED); + bts_do_rate_ctr_inc(bts, CTR_PUAN_POLL_FAILED); TBF_SET_STATE(ul_tbf, GPRS_RLCMAC_RELEASING); T_START(ul_tbf, T3169, 3169, "MAX N3103 reached", false); return; @@ -665,13 +667,13 @@ state_flags |= (1 << GPRS_RLCMAC_FLAG_TO_UL_ASS); } ul_ass_state = GPRS_RLCMAC_UL_ASS_NONE; - bts->do_rate_ctr_inc(CTR_RLC_ASS_TIMEDOUT); - bts->do_rate_ctr_inc(CTR_PUA_POLL_TIMEDOUT); + bts_do_rate_ctr_inc(bts, CTR_RLC_ASS_TIMEDOUT); + bts_do_rate_ctr_inc(bts, CTR_PUA_POLL_TIMEDOUT); if (n_inc(N3105)) { TBF_SET_STATE(this, GPRS_RLCMAC_RELEASING); T_START(this, T3195, 3195, "MAX N3105 reached", true); - bts->do_rate_ctr_inc(CTR_RLC_ASS_FAILED); - bts->do_rate_ctr_inc(CTR_PUA_POLL_FAILED); + bts_do_rate_ctr_inc(bts, CTR_RLC_ASS_FAILED); + bts_do_rate_ctr_inc(bts, CTR_PUA_POLL_FAILED); return; } /* reschedule UL assignment */ @@ -684,13 +686,13 @@ state_flags |= (1 << GPRS_RLCMAC_FLAG_TO_DL_ASS); } dl_ass_state = GPRS_RLCMAC_DL_ASS_NONE; - bts->do_rate_ctr_inc(CTR_RLC_ASS_TIMEDOUT); - bts->do_rate_ctr_inc(CTR_PDA_POLL_TIMEDOUT); + bts_do_rate_ctr_inc(bts, CTR_RLC_ASS_TIMEDOUT); + bts_do_rate_ctr_inc(bts, CTR_PDA_POLL_TIMEDOUT); if (n_inc(N3105)) { TBF_SET_STATE(this, GPRS_RLCMAC_RELEASING); T_START(this, T3195, 3195, "MAX N3105 reached", true); - bts->do_rate_ctr_inc(CTR_RLC_ASS_FAILED); - bts->do_rate_ctr_inc(CTR_PDA_POLL_FAILED); + bts_do_rate_ctr_inc(bts, CTR_RLC_ASS_FAILED); + bts_do_rate_ctr_inc(bts, CTR_PDA_POLL_FAILED); return; } /* reschedule DL assignment */ @@ -706,17 +708,17 @@ } if (dl_tbf->state_is(GPRS_RLCMAC_RELEASING)) - bts->do_rate_ctr_inc(CTR_RLC_REL_TIMEDOUT); + bts_do_rate_ctr_inc(bts, CTR_RLC_REL_TIMEDOUT); else { - bts->do_rate_ctr_inc(CTR_RLC_ACK_TIMEDOUT); - bts->do_rate_ctr_inc(CTR_PDAN_POLL_TIMEDOUT); + bts_do_rate_ctr_inc(bts, CTR_RLC_ACK_TIMEDOUT); + bts_do_rate_ctr_inc(bts, CTR_PDAN_POLL_TIMEDOUT); } if (dl_tbf->n_inc(N3105)) { TBF_SET_STATE(dl_tbf, GPRS_RLCMAC_RELEASING); T_START(dl_tbf, T3195, 3195, "MAX N3105 reached", true); - bts->do_rate_ctr_inc(CTR_PDAN_POLL_FAILED); - bts->do_rate_ctr_inc(CTR_RLC_ACK_FAILED); + bts_do_rate_ctr_inc(bts, CTR_PDAN_POLL_FAILED); + bts_do_rate_ctr_inc(bts, CTR_RLC_ACK_FAILED); return; } /* resend IMM.ASS on CCCH on timeout */ @@ -727,7 +729,7 @@ /* send immediate assignment */ if ((pgroup = imsi2paging_group(imsi())) > 999) LOGPTBF(dl_tbf, LOGL_ERROR, "IMSI to paging group failed! (%s)\n", imsi()); - dl_tbf->bts->snd_dl_ass(dl_tbf, false, pgroup); + bts_snd_dl_ass(dl_tbf->bts, dl_tbf, false, pgroup); dl_tbf->m_wait_confirm = 1; } } else @@ -736,7 +738,7 @@ int gprs_rlcmac_tbf::setup(int8_t use_trx, bool single_slot) { - struct gprs_rlcmac_bts *bts_data = bts->bts_data(); + struct gprs_rlcmac_bts *bts_data = bts; int rc; if (ms_mode(m_ms) != GPRS) @@ -935,7 +937,7 @@ goto free_ret; } LOGP(DTBF, LOGL_DEBUG, "------------------------- TX : Packet Downlink Assignment -------------------------\n"); - bts->do_rate_ctr_inc(CTR_PKT_DL_ASSIGNMENT); + bts_do_rate_ctr_inc(bts, CTR_PKT_DL_ASSIGNMENT); if (poll_ass_dl) { set_polling(new_poll_fn, ts, GPRS_RLCMAC_POLL_DL_ASS); @@ -970,7 +972,7 @@ Encoding::write_packet_access_reject( packet_access_rej, tlli()); - bts->do_rate_ctr_inc(CTR_PKT_ACCESS_REJ); + bts_do_rate_ctr_inc(bts, CTR_PKT_ACCESS_REJ); bitvec_pack(packet_access_rej, msgb_put(msg, GSM_MACBLOCK_LEN)); @@ -1039,7 +1041,7 @@ goto free_ret; } LOGP(DTBF, LOGL_DEBUG, "------------------------- TX : Packet Uplink Assignment -------------------------\n"); - bts->do_rate_ctr_inc(CTR_PKT_UL_ASSIGNMENT); + bts_do_rate_ctr_inc(bts, CTR_PKT_UL_ASSIGNMENT); set_polling(new_poll_fn, ts, GPRS_RLCMAC_POLL_UL_ASS); @@ -1076,9 +1078,9 @@ { struct gprs_rlcmac_dl_tbf *new_tbf = NULL; - bts->do_rate_ctr_inc(CTR_TBF_REUSED); + bts_do_rate_ctr_inc(bts, CTR_TBF_REUSED); - new_tbf = tbf_alloc_dl_tbf(bts->bts_data(), ms(), + new_tbf = tbf_alloc_dl_tbf(bts, ms(), this->trx->trx_no, false); if (!new_tbf) { @@ -1112,11 +1114,11 @@ void gprs_rlcmac_tbf::rotate_in_list() { - llist_del(&list()); + llist_del(tbf_bts_list((struct gprs_rlcmac_tbf *)this)); if (direction == GPRS_RLCMAC_UL_TBF) - llist_add(&list(), &bts->ul_tbfs()); + llist_add(tbf_bts_list((struct gprs_rlcmac_tbf *)this), &bts->ul_tbfs); else - llist_add(&list(), &bts->dl_tbfs()); + llist_add(tbf_bts_list((struct gprs_rlcmac_tbf *)this), &bts->dl_tbfs); } uint8_t gprs_rlcmac_tbf::tsc() const @@ -1186,6 +1188,11 @@ return &tbf->m_ms_list.list; } +struct llist_head *tbf_bts_list(struct gprs_rlcmac_tbf *tbf) +{ + return &tbf->m_bts_list.list; +} + struct GprsMs *tbf_ms(struct gprs_rlcmac_tbf *tbf) { return tbf->ms(); diff --git a/src/tbf.h b/src/tbf.h index d767547..cb4c9b9 100644 --- a/src/tbf.h +++ b/src/tbf.h @@ -196,6 +196,7 @@ enum gprs_rlcmac_tbf_direction tbf_direction(const struct gprs_rlcmac_tbf *tbf); void tbf_set_ms(struct gprs_rlcmac_tbf *tbf, struct GprsMs *ms); struct llist_head *tbf_ms_list(struct gprs_rlcmac_tbf *tbf); +struct llist_head *tbf_bts_list(struct gprs_rlcmac_tbf *tbf); struct GprsMs *tbf_ms(struct gprs_rlcmac_tbf *tbf); bool tbf_timers_pending(struct gprs_rlcmac_tbf *tbf, enum tbf_timers t); void tbf_free(struct gprs_rlcmac_tbf *tbf); @@ -212,7 +213,7 @@ #ifdef __cplusplus struct gprs_rlcmac_tbf { - gprs_rlcmac_tbf(BTS *bts_, GprsMs *ms, gprs_rlcmac_tbf_direction dir); + gprs_rlcmac_tbf(struct gprs_rlcmac_bts *bts_, GprsMs *ms, gprs_rlcmac_tbf_direction dir); virtual ~gprs_rlcmac_tbf() {} static void free_all(struct gprs_rlcmac_trx *trx); @@ -296,9 +297,6 @@ /* attempt to make things a bit more fair */ void rotate_in_list(); - LListHead& list(); - const LListHead& list() const; - uint32_t state_flags; enum gprs_rlcmac_tbf_direction direction; struct gprs_rlcmac_trx *trx; @@ -335,7 +333,7 @@ uint8_t upgrade_to_multislot; /* store the BTS this TBF belongs to */ - BTS *bts; + struct gprs_rlcmac_bts *bts; /* * private fields. We can't make it private as it is breaking the @@ -347,6 +345,7 @@ struct rate_ctr_group *m_ctrs; enum gprs_rlcmac_tbf_state state; struct llist_item m_ms_list; + struct llist_item m_bts_list; protected: gprs_rlcmac_bts *bts_data() const; @@ -364,7 +363,6 @@ enum gprs_rlcmac_tbf_ul_ass_state ul_ass_state; enum gprs_rlcmac_tbf_ul_ack_state ul_ack_state; enum gprs_rlcmac_tbf_poll_state poll_state; - LListHead m_list; bool m_egprs_enabled; struct osmo_timer_list Tarr[T_MAX]; uint8_t Narr[N_MAX]; @@ -522,16 +520,6 @@ return false; } -inline LListHead& gprs_rlcmac_tbf::list() -{ - return this->m_list; -} - -inline const LListHead& gprs_rlcmac_tbf::list() const -{ - return this->m_list; -} - inline GprsMs *gprs_rlcmac_tbf::ms() const { return m_ms; diff --git a/src/tbf_dl.cpp b/src/tbf_dl.cpp index ab34ea1..962c31d 100644 --- a/src/tbf_dl.cpp +++ b/src/tbf_dl.cpp @@ -139,7 +139,7 @@ return NULL; talloc_set_destructor(tbf, dl_tbf_dtor); - new (tbf) gprs_rlcmac_dl_tbf(bts->bts, ms); + new (tbf) gprs_rlcmac_dl_tbf(bts, ms); rc = tbf->setup(use_trx, single_slot); /* if no resource */ @@ -169,8 +169,8 @@ } } - llist_add(&tbf->list(), &bts->bts->dl_tbfs()); - tbf->bts->do_rate_ctr_inc(CTR_TBF_DL_ALLOCATED); + llist_add(tbf_bts_list((struct gprs_rlcmac_tbf *)tbf), &bts->dl_tbfs); + bts_do_rate_ctr_inc(tbf->bts, CTR_TBF_DL_ALLOCATED); tbf->m_last_dl_poll_fn = -1; tbf->m_last_dl_drained_fn = -1; @@ -181,7 +181,7 @@ return tbf; } -gprs_rlcmac_dl_tbf::gprs_rlcmac_dl_tbf(BTS *bts_, GprsMs *ms) : +gprs_rlcmac_dl_tbf::gprs_rlcmac_dl_tbf(struct gprs_rlcmac_bts *bts_, GprsMs *ms) : gprs_rlcmac_tbf(bts_, ms, GPRS_RLCMAC_DL_TBF), m_tx_counter(0), m_wait_confirm(0), @@ -289,10 +289,10 @@ GprsMs *ms, *ms_old; /* check for existing TBF */ - ms = bts->bts->ms_store().get_ms(tlli, tlli_old, imsi); + ms = bts_ms_store(bts)->get_ms(tlli, tlli_old, imsi); if (ms && strlen(ms_imsi(ms)) == 0) { - ms_old = bts->bts->ms_store().get_ms(0, 0, imsi); + ms_old = bts_ms_store(bts)->get_ms(0, 0, imsi); if (ms_old && ms_old != ms) { /* The TLLI has changed (RAU), so there are two MS * objects for the same MS */ @@ -317,7 +317,7 @@ } if (!ms) - ms = bts->bts->ms_alloc(ms_class, egprs_ms_class); + ms = bts_alloc_ms(bts, ms_class, egprs_ms_class); ms_set_imsi(ms, imsi); ms_confirm_tlli(ms, tlli); if (!ms_ms_class(ms) && ms_class) { @@ -391,12 +391,12 @@ break; } - bts->do_rate_ctr_inc(CTR_LLC_FRAME_TIMEDOUT); + bts_do_rate_ctr_inc(bts, CTR_LLC_FRAME_TIMEDOUT); drop_frame: frames++; octets += msg->len; msgb_free(msg); - bts->do_rate_ctr_inc(CTR_LLC_FRAME_DROPPED); + bts_do_rate_ctr_inc(bts, CTR_LLC_FRAME_DROPPED); continue; } @@ -463,9 +463,9 @@ * MCS1-4, because USF for GPRS-only MS will be sent */ force_cs = ms_current_cs_dl(m_ms); if (force_cs > MCS4) { - force_cs = bts->cs_dl_is_supported(MCS4) ? MCS4 : - bts->cs_dl_is_supported(MCS3) ? MCS3 : - bts->cs_dl_is_supported(MCS2) ? MCS2 : + force_cs = bts_cs_dl_is_supported(bts, MCS4) ? MCS4 : + bts_cs_dl_is_supported(bts, MCS3) ? MCS3 : + bts_cs_dl_is_supported(bts, MCS2) ? MCS2 : MCS1; LOGPTBFDL(this, LOGL_DEBUG, "Force downgrading DL %s -> %s due to USF for GPRS-only MS\n", @@ -515,7 +515,7 @@ LOGPTBFDL(this, LOGL_DEBUG, "Resending BSN %d\n", bsn); /* re-send block with negative aknowlegement */ m_window.m_v_b.mark_unacked(bsn); - bts->do_rate_ctr_inc(CTR_RLC_RESENT); + bts_do_rate_ctr_inc(bts, CTR_RLC_RESENT); } else if (state_is(GPRS_RLCMAC_FINISHED)) { /* If the TBF is in finished, we already sent all packages at least once. * If any packages could have been sent (because of unacked) it should have @@ -523,7 +523,7 @@ LOGPTBFDL(this, LOGL_DEBUG, "Restarting at BSN %d, because all blocks have been transmitted.\n", m_window.v_a()); - bts->do_rate_ctr_inc(CTR_RLC_RESTARTED); + bts_do_rate_ctr_inc(bts, CTR_RLC_RESTARTED); if (restart_bsn_cycle()) return take_next_bsn(fn, previous_bsn, req_mcs_kind, may_combine); } else if (dl_window_stalled()) { @@ -532,7 +532,7 @@ LOGPTBFDL(this, LOGL_NOTICE, "Restarting at BSN %d, because the window is stalled.\n", m_window.v_a()); - bts->do_rate_ctr_inc(CTR_RLC_STALLED); + bts_do_rate_ctr_inc(bts, CTR_RLC_STALLED); if (restart_bsn_cycle()) return take_next_bsn(fn, previous_bsn, req_mcs_kind, may_combine); } else if (have_data()) { @@ -551,7 +551,7 @@ LOGPTBFDL(this, LOGL_DEBUG, "Restarting at BSN %d, because all blocks have been transmitted (FLOW).\n", m_window.v_a()); - bts->do_rate_ctr_inc(CTR_RLC_RESTARTED); + bts_do_rate_ctr_inc(bts, CTR_RLC_RESTARTED); if (restart_bsn_cycle()) return take_next_bsn(fn, previous_bsn, req_mcs_kind, may_combine); } else { @@ -568,8 +568,8 @@ LOGPTBFDL(this, LOGL_DEBUG, "Nothing else to send, Re-transmit final block!\n"); bsn = m_window.v_s_mod(-1); - bts->do_rate_ctr_inc(CTR_RLC_FINAL_BLOCK_RESENT); - bts->do_rate_ctr_inc(CTR_RLC_RESENT); + bts_do_rate_ctr_inc(bts, CTR_RLC_FINAL_BLOCK_RESENT); + bts_do_rate_ctr_inc(bts, CTR_RLC_RESENT); } *may_combine = num_data_blocks(mcs_header_type(m_rlc.block(bsn)->cs_current_trans)) > 1; @@ -628,7 +628,7 @@ /* send immediate assignment */ if ((pgroup = imsi2paging_group(imsi())) > 999) LOGPTBFDL(this, LOGL_ERROR, "IMSI to paging group failed! (%s)\n", imsi()); - bts->snd_dl_ass(this, false, pgroup); + bts_snd_dl_ass(bts, this, false, pgroup); m_wait_confirm = 1; } } @@ -648,7 +648,7 @@ LOGPTBFDL(this, LOGL_DEBUG, "Dequeue next LLC (len=%d)\n", msg->len); m_llc.put_frame(msg->data, msg->len); - bts->do_rate_ctr_inc(CTR_LLC_FRAME_SCHED); + bts_do_rate_ctr_inc(bts, CTR_LLC_FRAME_SCHED); msgb_free(msg); m_last_dl_drained_fn = -1; } @@ -742,14 +742,14 @@ &m_llc, &write_offset, &num_chunks, data, is_final, &payload_written); if (payload_written > 0) - bts->do_rate_ctr_add(CTR_RLC_DL_PAYLOAD_BYTES, payload_written); + bts_do_rate_ctr_add(bts, CTR_RLC_DL_PAYLOAD_BYTES, payload_written); if (ar == Encoding::AR_NEED_MORE_BLOCKS) break; LOGPTBFDL(this, LOGL_DEBUG, "Complete DL frame, len=%d\n", llc_frame_length(&m_llc)); gprs_rlcmac_dl_bw(this, llc_frame_length(&m_llc)); - bts->do_rate_ctr_add(CTR_LLC_DL_BYTES, llc_frame_length(&m_llc)); + bts_do_rate_ctr_add(bts, CTR_LLC_DL_BYTES, llc_frame_length(&m_llc)); m_llc.reset(); if (is_final) { @@ -1472,15 +1472,15 @@ */ if (block_status_dl == EGPRS_RESEG_FIRST_SEG_SENT) { /* statistics */ - bts->do_rate_ctr_inc(CTR_SPB_DL_SECOND_SEGMENT); + bts_do_rate_ctr_inc(bts, CTR_SPB_DL_SECOND_SEGMENT); return EGPRS_RLCMAC_DL_SEC_SEG; } else if ((ht_cs_init == HEADER_EGPRS_DATA_TYPE_1) || (ht_cs_init == HEADER_EGPRS_DATA_TYPE_2)) { - bts->do_rate_ctr_inc(CTR_SPB_DL_FIRST_SEGMENT); + bts_do_rate_ctr_inc(bts, CTR_SPB_DL_FIRST_SEGMENT); return EGPRS_RLCMAC_DL_FIRST_SEG; } else if ((cs_init == MCS4) && (cs_current_trans == MCS1)) { - bts->do_rate_ctr_inc(CTR_SPB_DL_FIRST_SEGMENT); + bts_do_rate_ctr_inc(bts, CTR_SPB_DL_FIRST_SEGMENT); return EGPRS_RLCMAC_DL_FIRST_SEG; } } @@ -1490,7 +1490,7 @@ void gprs_rlcmac_dl_tbf::set_window_size() { - const struct gprs_rlcmac_bts *b = bts->bts_data(); + const struct gprs_rlcmac_bts *b = bts; uint16_t ws = egprs_window_size(b, dl_slots()); LOGPTBFDL(this, LOGL_INFO, "setting EGPRS DL window size to %u, base(%u) slots(%u) ws_pdch(%u)\n", @@ -1502,55 +1502,55 @@ { switch (cs) { case CS1: - bts->do_rate_ctr_inc(CTR_GPRS_DL_CS1); + bts_do_rate_ctr_inc(bts, CTR_GPRS_DL_CS1); rate_ctr_inc(&m_dl_gprs_ctrs->ctr[TBF_CTR_GPRS_DL_CS1]); break; case CS2: - bts->do_rate_ctr_inc(CTR_GPRS_DL_CS2); + bts_do_rate_ctr_inc(bts, CTR_GPRS_DL_CS2); rate_ctr_inc(&m_dl_gprs_ctrs->ctr[TBF_CTR_GPRS_DL_CS2]); break; case CS3: - bts->do_rate_ctr_inc(CTR_GPRS_DL_CS3); + bts_do_rate_ctr_inc(bts, CTR_GPRS_DL_CS3); rate_ctr_inc(&m_dl_gprs_ctrs->ctr[TBF_CTR_GPRS_DL_CS3]); break; case CS4: - bts->do_rate_ctr_inc(CTR_GPRS_DL_CS4); + bts_do_rate_ctr_inc(bts, CTR_GPRS_DL_CS4); rate_ctr_inc(&m_dl_gprs_ctrs->ctr[TBF_CTR_GPRS_DL_CS4]); break; case MCS1: - bts->do_rate_ctr_inc(CTR_EGPRS_DL_MCS1); + bts_do_rate_ctr_inc(bts, CTR_EGPRS_DL_MCS1); rate_ctr_inc(&m_dl_egprs_ctrs->ctr[TBF_CTR_EGPRS_DL_MCS1]); break; case MCS2: - bts->do_rate_ctr_inc(CTR_EGPRS_DL_MCS2); + bts_do_rate_ctr_inc(bts, CTR_EGPRS_DL_MCS2); rate_ctr_inc(&m_dl_egprs_ctrs->ctr[TBF_CTR_EGPRS_DL_MCS2]); break; case MCS3: - bts->do_rate_ctr_inc(CTR_EGPRS_DL_MCS3); + bts_do_rate_ctr_inc(bts, CTR_EGPRS_DL_MCS3); rate_ctr_inc(&m_dl_egprs_ctrs->ctr[TBF_CTR_EGPRS_DL_MCS3]); break; case MCS4: - bts->do_rate_ctr_inc(CTR_EGPRS_DL_MCS4); + bts_do_rate_ctr_inc(bts, CTR_EGPRS_DL_MCS4); rate_ctr_inc(&m_dl_egprs_ctrs->ctr[TBF_CTR_EGPRS_DL_MCS4]); break; case MCS5: - bts->do_rate_ctr_inc(CTR_EGPRS_DL_MCS5); + bts_do_rate_ctr_inc(bts, CTR_EGPRS_DL_MCS5); rate_ctr_inc(&m_dl_egprs_ctrs->ctr[TBF_CTR_EGPRS_DL_MCS5]); break; case MCS6: - bts->do_rate_ctr_inc(CTR_EGPRS_DL_MCS6); + bts_do_rate_ctr_inc(bts, CTR_EGPRS_DL_MCS6); rate_ctr_inc(&m_dl_egprs_ctrs->ctr[TBF_CTR_EGPRS_DL_MCS6]); break; case MCS7: - bts->do_rate_ctr_inc(CTR_EGPRS_DL_MCS7); + bts_do_rate_ctr_inc(bts, CTR_EGPRS_DL_MCS7); rate_ctr_inc(&m_dl_egprs_ctrs->ctr[TBF_CTR_EGPRS_DL_MCS7]); break; case MCS8: - bts->do_rate_ctr_inc(CTR_EGPRS_DL_MCS8); + bts_do_rate_ctr_inc(bts, CTR_EGPRS_DL_MCS8); rate_ctr_inc(&m_dl_egprs_ctrs->ctr[TBF_CTR_EGPRS_DL_MCS8]); break; case MCS9: - bts->do_rate_ctr_inc(CTR_EGPRS_DL_MCS9); + bts_do_rate_ctr_inc(bts, CTR_EGPRS_DL_MCS9); rate_ctr_inc(&m_dl_egprs_ctrs->ctr[TBF_CTR_EGPRS_DL_MCS9]); break; default: diff --git a/src/tbf_dl.h b/src/tbf_dl.h index 3cd88c9..e29bb3f 100644 --- a/src/tbf_dl.h +++ b/src/tbf_dl.h @@ -39,7 +39,7 @@ #define LOGPTBFDL(tbf, level, fmt, args...) LOGP(DTBFDL, level, "%s " fmt, tbf_name(tbf), ## args) struct gprs_rlcmac_dl_tbf : public gprs_rlcmac_tbf { - gprs_rlcmac_dl_tbf(BTS *bts, GprsMs *ms); + gprs_rlcmac_dl_tbf(struct gprs_rlcmac_bts *bts, GprsMs *ms); gprs_rlc_window *window(); void cleanup(); /* dispatch Unitdata.DL messages */ diff --git a/src/tbf_ul.cpp b/src/tbf_ul.cpp index 1f3cb01..0c59a50 100644 --- a/src/tbf_ul.cpp +++ b/src/tbf_ul.cpp @@ -111,7 +111,7 @@ if (!tbf) return NULL; talloc_set_destructor(tbf, ul_tbf_dtor); - new (tbf) gprs_rlcmac_ul_tbf(bts->bts, ms); + new (tbf) gprs_rlcmac_ul_tbf(bts, ms); rc = tbf->setup(use_trx, single_slot); @@ -134,8 +134,8 @@ return NULL; } - llist_add(&tbf->list(), &bts->bts->ul_tbfs()); - tbf->bts->do_rate_ctr_inc(CTR_TBF_UL_ALLOCATED); + llist_add_tail(tbf_bts_list(tbf), &bts->ul_tbfs); + bts_do_rate_ctr_inc(tbf->bts, CTR_TBF_UL_ALLOCATED); return tbf; } @@ -171,7 +171,7 @@ struct gprs_rlcmac_trx *trx = &bts->trx[trx_no]; if (!ms) - ms = bts->bts->ms_alloc(0, 0); + ms = bts_alloc_ms(bts, 0, 0); ms_set_tlli(ms, tlli); ul_tbf = talloc(tall_pcu_ctx, struct gprs_rlcmac_ul_tbf); @@ -179,10 +179,10 @@ return ul_tbf; talloc_set_destructor(ul_tbf, ul_tbf_dtor); - new (ul_tbf) gprs_rlcmac_ul_tbf(bts->bts, ms); + new (ul_tbf) gprs_rlcmac_ul_tbf(bts, ms); - llist_add(&ul_tbf->list(), &bts->bts->ul_tbfs()); - ul_tbf->bts->do_rate_ctr_inc(CTR_TBF_UL_ALLOCATED); + llist_add(tbf_bts_list((struct gprs_rlcmac_tbf *)ul_tbf), &bts->ul_tbfs); + bts_do_rate_ctr_inc(ul_tbf->bts, CTR_TBF_UL_ALLOCATED); TBF_SET_ASS_ON(ul_tbf, GPRS_RLCMAC_FLAG_PACCH, false); ms_attach_tbf(ms, ul_tbf); @@ -206,7 +206,7 @@ return ul_tbf; } -gprs_rlcmac_ul_tbf::gprs_rlcmac_ul_tbf(BTS *bts_, GprsMs *ms) : +gprs_rlcmac_ul_tbf::gprs_rlcmac_ul_tbf(struct gprs_rlcmac_bts *bts_, GprsMs *ms) : gprs_rlcmac_tbf(bts_, ms, GPRS_RLCMAC_UL_TBF), m_rx_counter(0), m_contention_resolution_done(0), @@ -243,7 +243,7 @@ frame = frames + i; if (frame->length) { - bts->do_rate_ctr_add(CTR_RLC_UL_PAYLOAD_BYTES, frame->length); + bts_do_rate_ctr_add(bts, CTR_RLC_UL_PAYLOAD_BYTES, frame->length); LOGPTBFUL(this, LOGL_DEBUG, "Frame %d " "starts at offset %d, " @@ -259,7 +259,7 @@ /* send frame to SGSN */ LOGPTBFUL(this, LOGL_DEBUG, "complete UL frame len=%d\n", llc_frame_length(&m_llc)); snd_ul_ud(); - bts->do_rate_ctr_add(CTR_LLC_UL_BYTES, llc_frame_length(&m_llc)); + bts_do_rate_ctr_add(bts, CTR_LLC_UL_BYTES, llc_frame_length(&m_llc)); m_llc.reset(); } } @@ -440,7 +440,7 @@ rdbi, rlc->cs, rlc_data, NULL, 0, &new_tlli); if (num_chunks < 0) { - bts->do_rate_ctr_inc(CTR_DECODE_ERRORS); + bts_do_rate_ctr_inc(bts, CTR_DECODE_ERRORS); LOGPTBFUL(this, LOGL_NOTICE, "Failed to decode TLLI of %s UL DATA TFI=%d.\n", mcs_name(rlc->cs), rlc->tfi); @@ -589,7 +589,7 @@ union split_block_status *spb_status = &block->spb_status; uint8_t *rlc_data = &block->block[0]; - bts->do_rate_ctr_inc(CTR_SPB_UL_SECOND_SEGMENT); + bts_do_rate_ctr_inc(bts, CTR_SPB_UL_SECOND_SEGMENT); if (spb_status->block_status_ul & EGPRS_RESEG_FIRST_SEG_RXD) { @@ -622,7 +622,7 @@ uint8_t *rlc_data = &block->block[0]; union split_block_status *spb_status = &block->spb_status; - bts->do_rate_ctr_inc(CTR_SPB_UL_FIRST_SEGMENT); + bts_do_rate_ctr_inc(bts, CTR_SPB_UL_FIRST_SEGMENT); if (spb_status->block_status_ul & EGPRS_RESEG_SECOND_SEG_RXD) { LOGPTBFUL(this, LOGL_DEBUG, @@ -702,55 +702,55 @@ { switch (cs) { case CS1: - bts->do_rate_ctr_inc(CTR_GPRS_UL_CS1); + bts_do_rate_ctr_inc(bts, CTR_GPRS_UL_CS1); rate_ctr_inc(&m_ul_gprs_ctrs->ctr[TBF_CTR_GPRS_UL_CS1]); break; case CS2: - bts->do_rate_ctr_inc(CTR_GPRS_UL_CS2); + bts_do_rate_ctr_inc(bts, CTR_GPRS_UL_CS2); rate_ctr_inc(&m_ul_gprs_ctrs->ctr[TBF_CTR_GPRS_UL_CS2]); break; case CS3: - bts->do_rate_ctr_inc(CTR_GPRS_UL_CS3); + bts_do_rate_ctr_inc(bts, CTR_GPRS_UL_CS3); rate_ctr_inc(&m_ul_gprs_ctrs->ctr[TBF_CTR_GPRS_UL_CS3]); break; case CS4: - bts->do_rate_ctr_inc(CTR_GPRS_UL_CS4); + bts_do_rate_ctr_inc(bts, CTR_GPRS_UL_CS4); rate_ctr_inc(&m_ul_gprs_ctrs->ctr[TBF_CTR_GPRS_UL_CS4]); break; case MCS1: - bts->do_rate_ctr_inc(CTR_EGPRS_UL_MCS1); + bts_do_rate_ctr_inc(bts, CTR_EGPRS_UL_MCS1); rate_ctr_inc(&m_ul_egprs_ctrs->ctr[TBF_CTR_EGPRS_UL_MCS1]); break; case MCS2: - bts->do_rate_ctr_inc(CTR_EGPRS_UL_MCS2); + bts_do_rate_ctr_inc(bts, CTR_EGPRS_UL_MCS2); rate_ctr_inc(&m_ul_egprs_ctrs->ctr[TBF_CTR_EGPRS_UL_MCS2]); break; case MCS3: - bts->do_rate_ctr_inc(CTR_EGPRS_UL_MCS3); + bts_do_rate_ctr_inc(bts, CTR_EGPRS_UL_MCS3); rate_ctr_inc(&m_ul_egprs_ctrs->ctr[TBF_CTR_EGPRS_UL_MCS3]); break; case MCS4: - bts->do_rate_ctr_inc(CTR_EGPRS_UL_MCS4); + bts_do_rate_ctr_inc(bts, CTR_EGPRS_UL_MCS4); rate_ctr_inc(&m_ul_egprs_ctrs->ctr[TBF_CTR_EGPRS_UL_MCS4]); break; case MCS5: - bts->do_rate_ctr_inc(CTR_EGPRS_UL_MCS5); + bts_do_rate_ctr_inc(bts, CTR_EGPRS_UL_MCS5); rate_ctr_inc(&m_ul_egprs_ctrs->ctr[TBF_CTR_EGPRS_UL_MCS5]); break; case MCS6: - bts->do_rate_ctr_inc(CTR_EGPRS_UL_MCS6); + bts_do_rate_ctr_inc(bts, CTR_EGPRS_UL_MCS6); rate_ctr_inc(&m_ul_egprs_ctrs->ctr[TBF_CTR_EGPRS_UL_MCS6]); break; case MCS7: - bts->do_rate_ctr_inc(CTR_EGPRS_UL_MCS7); + bts_do_rate_ctr_inc(bts, CTR_EGPRS_UL_MCS7); rate_ctr_inc(&m_ul_egprs_ctrs->ctr[TBF_CTR_EGPRS_UL_MCS7]); break; case MCS8: - bts->do_rate_ctr_inc(CTR_EGPRS_UL_MCS8); + bts_do_rate_ctr_inc(bts, CTR_EGPRS_UL_MCS8); rate_ctr_inc(&m_ul_egprs_ctrs->ctr[TBF_CTR_EGPRS_UL_MCS8]); break; case MCS9: - bts->do_rate_ctr_inc(CTR_EGPRS_UL_MCS9); + bts_do_rate_ctr_inc(bts, CTR_EGPRS_UL_MCS9); rate_ctr_inc(&m_ul_egprs_ctrs->ctr[TBF_CTR_EGPRS_UL_MCS9]); break; default: @@ -761,7 +761,7 @@ void gprs_rlcmac_ul_tbf::set_window_size() { - const struct gprs_rlcmac_bts *b = bts->bts_data(); + const struct gprs_rlcmac_bts *b = bts; uint16_t ws = egprs_window_size(b, ul_slots()); LOGPTBFUL(this, LOGL_INFO, "setting EGPRS UL window size to %u, base(%u) slots(%u) ws_pdch(%u)\n", ws, bts->pcu->vty.ws_base, pcu_bitcount(ul_slots()), bts->pcu->vty.ws_pdch); diff --git a/src/tbf_ul.h b/src/tbf_ul.h index 1d9cf50..8713596 100644 --- a/src/tbf_ul.h +++ b/src/tbf_ul.h @@ -50,7 +50,7 @@ #define LOGPTBFUL(tbf, level, fmt, args...) LOGP(DTBFUL, level, "%s " fmt, tbf_name(tbf), ## args) struct gprs_rlcmac_ul_tbf : public gprs_rlcmac_tbf { - gprs_rlcmac_ul_tbf(BTS *bts, GprsMs *ms); + gprs_rlcmac_ul_tbf(struct gprs_rlcmac_bts *bts, GprsMs *ms); gprs_rlc_window *window(); struct msgb *create_ul_ack(uint32_t fn, uint8_t ts); bool ctrl_ack_to_toggle(); diff --git a/tests/alloc/AllocTest.cpp b/tests/alloc/AllocTest.cpp index 249c268..20f5286 100644 --- a/tests/alloc/AllocTest.cpp +++ b/tests/alloc/AllocTest.cpp @@ -21,7 +21,9 @@ #include "gprs_debug.h" #include "tbf.h" #include "tbf_ul.h" +#include "tbf_dl.h" #include "bts.h" +#include "gprs_ms.h" #include #include @@ -51,17 +53,17 @@ return tbf_alloc_dl_tbf(bts, ms, use_trx, single_slot); } -static void check_tfi_usage(BTS *the_bts) +static void check_tfi_usage(struct gprs_rlcmac_bts *bts) { int pdch_no; struct gprs_rlcmac_tbf *tfi_usage[8][8][2][32] = {{{{NULL}}}}; - LListHead *tbf_lists[2] = { - &the_bts->ul_tbfs(), - &the_bts->dl_tbfs() + struct llist_head *tbf_lists[2] = { + &bts->ul_tbfs, + &bts->dl_tbfs }; - LListHead *pos; + struct llist_item *pos; gprs_rlcmac_tbf *tbf; unsigned list_idx; struct gprs_rlcmac_tbf **tbf_var; @@ -69,8 +71,8 @@ for (list_idx = 0; list_idx < ARRAY_SIZE(tbf_lists); list_idx += 1) { - llist_for_each(pos, tbf_lists[list_idx]) { - tbf = pos->entry(); + llist_for_each_entry(pos, tbf_lists[list_idx], list) { + tbf = (struct gprs_rlcmac_tbf *)pos->entry; for (pdch_no = 0; pdch_no < 8; pdch_no += 1) { struct gprs_rlcmac_pdch *pdch = tbf->pdch[pdch_no]; if (pdch == NULL) @@ -86,14 +88,14 @@ if (tbf->direction == GPRS_RLCMAC_DL_TBF) { OSMO_ASSERT(pdch->dl_tbf_by_tfi( tbf->tfi()) == tbf); - OSMO_ASSERT(the_bts->dl_tbf_by_tfi( + OSMO_ASSERT(bts_dl_tbf_by_tfi(bts, tbf->tfi(), tbf->trx->trx_no, pdch_no) == tbf); } else { OSMO_ASSERT(pdch->ul_tbf_by_tfi( tbf->tfi()) == tbf); - OSMO_ASSERT(the_bts->ul_tbf_by_tfi( + OSMO_ASSERT(bts_ul_tbf_by_tfi(bts, tbf->tfi(), tbf->trx->trx_no, pdch_no) == tbf); @@ -112,14 +114,12 @@ int tfi; int i; uint8_t used_trx, tmp_trx; - BTS the_bts(the_pcu); + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu); GprsMs *ms; - struct gprs_rlcmac_bts *bts; struct gprs_rlcmac_tbf *tbfs[32*8+1] = { 0, }; printf("Testing alloc_a direction(%d)\n", dir); - bts = the_bts.bts_data(); the_pcu->alloc_algorithm = alloc_algorithm_a; struct gprs_rlcmac_trx *trx = &bts->trx[0]; @@ -136,17 +136,17 @@ * least this part is working okay. */ for (i = 0; i < (int)ARRAY_SIZE(tbfs); ++i) { - ms = bts->bts->ms_alloc(0, 0); + ms = bts_alloc_ms(bts, 0, 0); tbfs[i] = tbf_alloc(bts, ms, dir, -1, 0); if (tbfs[i] == NULL) break; used_trx = tbfs[i]->trx->trx_no; - tfi = the_bts.tfi_find_free(dir, &tmp_trx, used_trx); + tfi = bts_tfi_find_free(bts, dir, &tmp_trx, used_trx); OSMO_ASSERT(tbfs[i]->tfi() != tfi); } - check_tfi_usage(&the_bts); + check_tfi_usage(bts); OSMO_ASSERT(i == count); @@ -154,10 +154,11 @@ if (tbfs[i]) tbf_free(tbfs[i]); - ms = bts->bts->ms_alloc(0, 0); + ms = bts_alloc_ms(bts, 0, 0); tbfs[0] = tbf_alloc(bts, ms, dir, -1, 0); OSMO_ASSERT(tbfs[0]); tbf_free(tbfs[0]); + talloc_free(bts); } static void test_alloc_a() @@ -205,8 +206,7 @@ static inline bool test_alloc_b_ul_dl(bool ts0, bool ts1, bool ts2, bool ts3, bool ts4, bool ts5, bool ts6, bool ts7, uint8_t ms_class, bool verbose) { - BTS the_bts(the_pcu); - struct gprs_rlcmac_bts *bts = the_bts.bts_data(); + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu); GprsMs *ms; gprs_rlcmac_ul_tbf *ul_tbf; gprs_rlcmac_dl_tbf *dl_tbf; @@ -218,7 +218,7 @@ enable_ts_on_bts(bts, ts0, ts1, ts2, ts3, ts4, ts5, ts6, ts7); - ms = the_bts.ms_alloc(ms_class, 0); + ms = bts_alloc_ms(bts, ms_class, 0); /* Avoid delaying free to avoid tons of to-be-freed ms objects queuing */ ms_set_timeout(ms, 0); ul_tbf = tbf_alloc_ul_tbf(bts, ms, -1, true); @@ -239,19 +239,18 @@ OSMO_ASSERT(dl_tbf->first_common_ts == ul_tbf->first_common_ts); - check_tfi_usage(&the_bts); + check_tfi_usage(bts); tbf_free(dl_tbf); tbf_free(ul_tbf); - + talloc_free(bts); return true; } static inline bool test_alloc_b_dl_ul(bool ts0, bool ts1, bool ts2, bool ts3, bool ts4, bool ts5, bool ts6, bool ts7, uint8_t ms_class, bool verbose) { - BTS the_bts(the_pcu); - struct gprs_rlcmac_bts *bts = the_bts.bts_data(); + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu); GprsMs *ms; gprs_rlcmac_ul_tbf *ul_tbf; gprs_rlcmac_dl_tbf *dl_tbf; @@ -263,7 +262,7 @@ enable_ts_on_bts(bts, ts0, ts1, ts2, ts3, ts4, ts5, ts6, ts7); - ms = the_bts.ms_alloc(ms_class, 0); + ms = bts_alloc_ms(bts, ms_class, 0); /* Avoid delaying free to avoid tons of to-be-freed ms objects queuing */ ms_set_timeout(ms, 0); dl_tbf = tbf_alloc_dl_tbf(bts, ms, -1, true); @@ -292,18 +291,17 @@ dump_assignment(dl_tbf, "DL", verbose); OSMO_ASSERT(dl_tbf->first_common_ts == ul_tbf->first_common_ts); - check_tfi_usage(&the_bts); + check_tfi_usage(bts); tbf_free(dl_tbf); tbf_free(ul_tbf); - + talloc_free(bts); return true; } static inline bool test_alloc_b_jolly(uint8_t ms_class) { - BTS the_bts(the_pcu); - struct gprs_rlcmac_bts *bts = the_bts.bts_data(); + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu); GprsMs *ms; int tfi; uint8_t trx_no; @@ -315,9 +313,9 @@ enable_ts_on_bts(bts, false, true, true, true, true, false, false, false); - tfi = the_bts.tfi_find_free(GPRS_RLCMAC_UL_TBF, &trx_no, -1); + tfi = bts_tfi_find_free(bts, GPRS_RLCMAC_UL_TBF, &trx_no, -1); OSMO_ASSERT(tfi >= 0); - ms = the_bts.ms_alloc(ms_class, 0); + ms = bts_alloc_ms(bts, ms_class, 0); /* Avoid delaying free to avoid tons of to-be-freed ms objects queuing */ ms_set_timeout(ms, 0); ul_tbf = tbf_alloc_ul_tbf(bts, ms, -1, false); @@ -338,11 +336,11 @@ OSMO_ASSERT(dl_tbf->first_common_ts == ul_tbf->first_common_ts); - check_tfi_usage(&the_bts); + check_tfi_usage(bts); tbf_free(dl_tbf); tbf_free(ul_tbf); - + talloc_free(bts); return true; } @@ -459,16 +457,13 @@ } } -static GprsMs *alloc_tbfs(BTS *the_bts, struct GprsMs *old_ms, enum test_mode mode) +static GprsMs *alloc_tbfs(struct gprs_rlcmac_bts *bts, struct GprsMs *old_ms, enum test_mode mode) { - struct gprs_rlcmac_bts *bts; struct GprsMs *ms, *new_ms; uint8_t trx_no = -1; OSMO_ASSERT(old_ms != NULL); - bts = the_bts->bts_data(); - gprs_rlcmac_tbf *tbf = NULL; if (ms_current_trx(old_ms)) @@ -517,12 +512,12 @@ case TEST_MODE_DL_AFTER_UL: case TEST_MODE_UL_AND_DL: - new_ms = alloc_tbfs(the_bts, ms, TEST_MODE_DL_ONLY); + new_ms = alloc_tbfs(bts, ms, TEST_MODE_DL_ONLY); break; case TEST_MODE_UL_AFTER_DL: case TEST_MODE_DL_AND_UL: - new_ms = alloc_tbfs(the_bts, ms, TEST_MODE_UL_ONLY); + new_ms = alloc_tbfs(bts, ms, TEST_MODE_UL_ONLY); break; } @@ -546,7 +541,7 @@ return new_ms; } -static unsigned alloc_many_tbfs(BTS *the_bts, unsigned min_class, +static unsigned alloc_many_tbfs(struct gprs_rlcmac_bts *bts, unsigned min_class, unsigned max_class, enum test_mode mode) { unsigned counter; @@ -566,11 +561,11 @@ enum gprs_rlcmac_tbf_direction dir; uint32_t tlli = counter + 0xc0000000; - ms = the_bts->ms_by_tlli(tlli); + ms = bts_ms_by_tlli(bts, tlli, GSM_RESERVED_TMSI); if (!ms) - ms = the_bts->ms_alloc(0, 0); + ms = bts_alloc_ms(bts, 0, 0); ms_set_ms_class(ms, ms_class); - ms = alloc_tbfs(the_bts, ms, mode); + ms = alloc_tbfs(bts, ms, mode); if (!ms) break; @@ -630,7 +625,7 @@ if (tfi >= 0) { OSMO_ASSERT(ms_current_trx(ms)); - tfi2 = the_bts->tfi_find_free(dir, &trx_no2, + tfi2 = bts_tfi_find_free(bts, dir, &trx_no2, ms_current_trx(ms)->trx_no); OSMO_ASSERT(tfi != tfi2); OSMO_ASSERT(tfi2 < 0 || @@ -649,15 +644,13 @@ unsigned max_class, enum test_mode mode, unsigned expect_num, const char *text) { - BTS the_bts(the_pcu); - struct gprs_rlcmac_bts *bts; + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu); struct gprs_rlcmac_trx *trx; unsigned counter; printf("Going to test assignment with many TBF, algorithm %s class %u..%u (%s)\n", text, min_class, max_class, test_mode_descr(mode)); - bts = the_bts.bts_data(); the_pcu->alloc_algorithm = algo; trx = &bts->trx[0]; @@ -667,7 +660,7 @@ trx->pdch[6].enable(); trx->pdch[7].enable(); - counter = alloc_many_tbfs(&the_bts, min_class, max_class, mode); + counter = alloc_many_tbfs(bts, min_class, max_class, mode); printf(" Successfully allocated %u UL TBFs, algorithm %s class %u..%u (%s)\n", counter, text, min_class, max_class, test_mode_descr(mode)); @@ -677,14 +670,14 @@ OSMO_ASSERT(counter == expect_num); - check_tfi_usage(&the_bts); + check_tfi_usage(bts); + talloc_free(bts); } static void test_many_connections(algo_t algo, unsigned expect_num, const char *text) { - BTS the_bts(the_pcu); - struct gprs_rlcmac_bts *bts; + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu); struct gprs_rlcmac_trx *trx; int counter1, counter2 = -1; unsigned i; @@ -697,7 +690,6 @@ printf("Going to test assignment with many connections, algorithm %s\n", text); - bts = the_bts.bts_data(); the_pcu->alloc_algorithm = algo; trx = &bts->trx[0]; @@ -708,11 +700,11 @@ trx->pdch[7].enable(); for (i = 0; i < ARRAY_SIZE(mode_seq); i += 1) { - counter1 = alloc_many_tbfs(&the_bts, 1, mslot_class_max(), mode_seq[i]); + counter1 = alloc_many_tbfs(bts, 1, mslot_class_max(), mode_seq[i]); fprintf(stderr, " Allocated %d TBFs (previously %d)\n", counter1, counter2); - check_tfi_usage(&the_bts); + check_tfi_usage(bts); /* This will stop earlier due to USF shortage */ if (mode_seq[i] == TEST_MODE_UL_ONLY) @@ -733,6 +725,7 @@ fprintf(stderr, " Expected %d TBFs (got %d) for algorithm %s\n", expect_num, counter1, text); OSMO_ASSERT(expect_num == (unsigned)counter1); + talloc_free(bts); } static inline void test_a_b_dyn(enum test_mode mode, uint8_t exp_A, uint8_t exp_B, uint8_t exp_dyn) @@ -761,9 +754,8 @@ static void test_2_consecutive_dl_tbfs() { - BTS the_bts(the_pcu); + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu); GprsMs *ms; - struct gprs_rlcmac_bts *bts; struct gprs_rlcmac_trx *trx; uint8_t ms_class = 11; uint8_t egprs_ms_class = 11; @@ -772,7 +764,6 @@ printf("Testing DL TS allocation for Multi UEs\n"); - bts = the_bts.bts_data(); the_pcu->alloc_algorithm = alloc_algorithm_b; trx = &bts->trx[0]; @@ -781,7 +772,7 @@ trx->pdch[6].enable(); trx->pdch[7].enable(); - ms = the_bts.ms_alloc(ms_class, egprs_ms_class); + ms = bts_alloc_ms(bts, ms_class, egprs_ms_class); dl_tbf1 = tbf_alloc_dl_tbf(bts, ms, 0, false); OSMO_ASSERT(dl_tbf1); @@ -792,7 +783,7 @@ OSMO_ASSERT(numTs1 == 4); printf("TBF1: numTs(%d)\n", numTs1); - ms = the_bts.ms_alloc(ms_class, egprs_ms_class); + ms = bts_alloc_ms(bts, ms_class, egprs_ms_class); dl_tbf2 = tbf_alloc_dl_tbf(bts, ms, 0, false); OSMO_ASSERT(dl_tbf2); @@ -810,6 +801,7 @@ tbf_free(dl_tbf1); tbf_free(dl_tbf2); + talloc_free(bts); } int main(int argc, char **argv) diff --git a/tests/alloc/MslotTest.cpp b/tests/alloc/MslotTest.cpp index e354641..b32a828 100644 --- a/tests/alloc/MslotTest.cpp +++ b/tests/alloc/MslotTest.cpp @@ -62,15 +62,12 @@ static inline void test_multislot_total_ascending(bool seq) { - BTS the_bts(the_pcu); - struct gprs_rlcmac_bts *bts; + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu); struct gprs_rlcmac_trx *trx; int i; printf("%s(): %s\n", __func__, seq ? "sequential" : "accumulative"); - bts = the_bts.bts_data(); - trx = &bts->trx[0]; for (i = 0; i < 8; i++) { @@ -79,19 +76,17 @@ test_all_classes(trx, seq); } + talloc_free(bts); } static inline void test_multislot_total_descending(bool seq) { - BTS the_bts(the_pcu); - struct gprs_rlcmac_bts *bts; + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu); struct gprs_rlcmac_trx *trx; int i; printf("%s(): %s\n", __func__, seq ? "sequential" : "accumulative"); - bts = the_bts.bts_data(); - trx = &bts->trx[0]; for (i = 7; i >= 0; i--) { @@ -100,18 +95,16 @@ test_all_classes(trx, seq); } + talloc_free(bts); } static inline void test_multislot_middle(bool seq) { - BTS the_bts(the_pcu); - struct gprs_rlcmac_bts *bts; + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu); struct gprs_rlcmac_trx *trx; printf("%s(): %s\n", __func__, seq ? "sequential" : "accumulative"); - bts = the_bts.bts_data(); - trx = &bts->trx[0]; trx->pdch[2].enable(); @@ -119,24 +112,23 @@ trx->pdch[4].enable(); test_all_classes(trx, seq); + talloc_free(bts); } static inline void test_multislot_ends(bool seq) { - BTS the_bts(the_pcu); - struct gprs_rlcmac_bts *bts; + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu); struct gprs_rlcmac_trx *trx; printf("%s(): %s\n", __func__, seq ? "sequential" : "accumulative"); - bts = the_bts.bts_data(); - trx = &bts->trx[0]; trx->pdch[0].enable(); trx->pdch[7].enable(); test_all_classes(trx, seq); + talloc_free(bts); } static inline void test_window_wrapper() diff --git a/tests/app_info/AppInfoTest.cpp b/tests/app_info/AppInfoTest.cpp index 962ead4..e0b2853 100644 --- a/tests/app_info/AppInfoTest.cpp +++ b/tests/app_info/AppInfoTest.cpp @@ -20,6 +20,7 @@ #include #include "gprs_rlcmac.h" #include "bts.h" +#include "tbf_dl.h" extern "C" { #include @@ -77,25 +78,23 @@ void prepare_bts_with_two_dl_tbf_subscr() { - BTS *bts = BTS::main_bts(); - struct gprs_rlcmac_bts *bts_data; + struct gprs_rlcmac_bts *bts = the_pcu->bts; struct gprs_rlcmac_trx *trx; fprintf(stderr, "--- %s ---\n", __func__); - bts_data = bts->bts_data(); the_pcu->alloc_algorithm = alloc_algorithm_b; - trx = bts_data->trx; + trx = bts->trx; trx->pdch[4].enable(); trx->pdch[5].enable(); trx->pdch[6].enable(); trx->pdch[7].enable(); - ms1 = bts->ms_alloc(10, 11); - tbf1 = tbf_alloc_dl_tbf(bts_data, ms1, 0, false); - ms2 = bts->ms_alloc(12, 13); - tbf2 = tbf_alloc_dl_tbf(bts_data, ms2, 0, false); + ms1 = bts_alloc_ms(bts, 10, 11); + tbf1 = tbf_alloc_dl_tbf(bts, ms1, 0, false); + ms2 = bts_alloc_ms(bts, 12, 13); + tbf2 = tbf_alloc_dl_tbf(bts, ms2, 0, false); fprintf(stderr, "\n"); } @@ -122,15 +121,15 @@ void test_sched_app_info_missing_app_info_in_bts(const struct gsm_pcu_if_app_info_req *req) { - struct gprs_rlcmac_bts *bts_data = BTS::main_bts()->bts_data(); + struct gprs_rlcmac_bts *bts = the_pcu->bts; struct gsm_pcu_if pcu_prim = {PCU_IF_MSG_APP_INFO_REQ, }; fprintf(stderr, "--- %s ---\n", __func__); pcu_prim.u.app_info_req = *req; pcu_rx(PCU_IF_MSG_APP_INFO_REQ, &pcu_prim); - msgb_free(bts_data->app_info); - bts_data->app_info = NULL; + msgb_free(bts->app_info); + bts->app_info = NULL; assert(sched_app_info(tbf1) == NULL); @@ -154,8 +153,8 @@ tbf_free(tbf1); tbf_free(tbf2); - BTS::main_bts()->cleanup(); - /* FIXME: talloc report disabled, because bts->ms_alloc() in prepare_bts_with_two_dl_tbf_subscr() causes leak */ + TALLOC_FREE(the_pcu->bts); + /* FIXME: talloc report disabled, because bts_alloc_ms(bts, ) in prepare_bts_with_two_dl_tbf_subscr() causes leak */ /* talloc_report_full(tall_pcu_ctx, stderr); */ talloc_free(the_pcu); talloc_free(tall_pcu_ctx); diff --git a/tests/edge/EdgeTest.cpp b/tests/edge/EdgeTest.cpp index c5ce730..d67646e 100644 --- a/tests/edge/EdgeTest.cpp +++ b/tests/edge/EdgeTest.cpp @@ -1151,19 +1151,17 @@ printf("=== end %s ===\n", __func__); } -static void setup_bts(BTS *the_bts, uint8_t ts_no, uint8_t cs = 1) +static void setup_bts(struct gprs_rlcmac_bts *bts, uint8_t ts_no, uint8_t cs = 1) { - gprs_rlcmac_bts *bts; gprs_rlcmac_trx *trx; - bts = the_bts->bts_data(); the_pcu->alloc_algorithm = alloc_algorithm_a; bts->initial_cs_dl = cs; bts->initial_cs_ul = cs; trx = &bts->trx[0]; trx->pdch[ts_no].enable(); } -static void uplink_header_type_2_parsing_test(BTS *the_bts, +static void uplink_header_type_2_parsing_test(struct gprs_rlcmac_bts *bts, uint8_t ts_no, uint32_t tlli, uint32_t *fn, uint16_t qta, uint8_t ms_class) { @@ -1254,7 +1252,7 @@ static void uplink_header_type2_test(void) { - BTS the_bts(the_pcu); + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu); int ts_no = 7; uint32_t fn = 2654218; uint16_t qta = 31; @@ -1262,14 +1260,15 @@ uint8_t ms_class = 1; printf("=== start %s ===\n", __func__); - setup_bts(&the_bts, ts_no, 10); + setup_bts(bts, ts_no, 10); - uplink_header_type_2_parsing_test(&the_bts, ts_no, + uplink_header_type_2_parsing_test(bts, ts_no, tlli, &fn, qta, ms_class); printf("=== end %s ===\n", __func__); + talloc_free(bts); } -static void uplink_header_type_1_parsing_test(BTS *the_bts, +static void uplink_header_type_1_parsing_test(struct gprs_rlcmac_bts *bts, uint8_t ts_no, uint32_t tlli, uint32_t *fn, uint16_t qta, uint8_t ms_class) { @@ -1371,7 +1370,7 @@ void uplink_header_type1_test(void) { - BTS the_bts(the_pcu); + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu); int ts_no = 7; uint32_t fn = 2654218; uint16_t qta = 31; @@ -1379,8 +1378,8 @@ uint8_t ms_class = 1; printf("=== start %s ===\n", __func__); - setup_bts(&the_bts, ts_no, 12); - uplink_header_type_1_parsing_test(&the_bts, ts_no, tlli, &fn, + setup_bts(bts, ts_no, 12); + uplink_header_type_1_parsing_test(bts, ts_no, tlli, &fn, qta, ms_class); printf("=== end %s ===\n", __func__); } diff --git a/tests/emu/pcu_emu.cpp b/tests/emu/pcu_emu.cpp index 2336e67..ab2804b 100644 --- a/tests/emu/pcu_emu.cpp +++ b/tests/emu/pcu_emu.cpp @@ -142,7 +142,7 @@ init_pcu(pcu); init_main_bts(); bssgp_set_bssgp_callback(gprs_gp_send_cb, pcu->nsi); - create_and_connect_bssgp(bts_data(pcu->bts), INADDR_LOOPBACK, 23000); + create_and_connect_bssgp(pcu->bts, INADDR_LOOPBACK, 23000); for (;;) osmo_select_main(0); diff --git a/tests/fn/FnTest.cpp b/tests/fn/FnTest.cpp index 3185bd5..dd30b34 100644 --- a/tests/fn/FnTest.cpp +++ b/tests/fn/FnTest.cpp @@ -36,24 +36,24 @@ int16_t spoof_mnc = 0, spoof_mcc = 0; bool spoof_mnc_3_digits = false; -static uint32_t calc_fn(BTS * bts, uint32_t rfn) +static uint32_t calc_fn(struct gprs_rlcmac_bts * bts, uint32_t rfn) { uint32_t fn; - fn = bts->rfn_to_fn(rfn); + fn = bts_rfn_to_fn(bts, rfn); printf("rfn=%i ==> fn=%i\n", rfn, fn); return fn; } -static void set_fn(BTS * bts, uint32_t fn) +static void set_fn(struct gprs_rlcmac_bts * bts, uint32_t fn) { printf("\n"); - bts->set_current_frame_number(fn); + bts_set_current_frame_number(bts, fn); printf("bts: fn=%i\n", fn); } static void run_test() { - BTS bts(the_pcu); + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu); uint32_t fn; printf("RFN_MODULUS=%i\n",RFN_MODULUS); @@ -63,20 +63,20 @@ /* Test with a collection of real world examples, * all all of them are not critical and do not * assume the occurence of any race contions */ - set_fn(&bts, 1320462); - fn = calc_fn(&bts, 5066); + set_fn(bts, 1320462); + fn = calc_fn(bts, 5066); OSMO_ASSERT(fn == 1320458); - set_fn(&bts, 8246); - fn = calc_fn(&bts, 8244); + set_fn(bts, 8246); + fn = calc_fn(bts, 8244); OSMO_ASSERT(fn == 8244); - set_fn(&bts, 10270); - fn = calc_fn(&bts, 10269); + set_fn(bts, 10270); + fn = calc_fn(bts, 10269); OSMO_ASSERT(fn == 10269); - set_fn(&bts, 311276); - fn = calc_fn(&bts, 14250); + set_fn(bts, 311276); + fn = calc_fn(bts, 14250); OSMO_ASSERT(fn == 311274); @@ -84,20 +84,20 @@ * just wrapped over a little bit above the * modulo 42432 raster, but the rach request * occurred before the wrapping */ - set_fn(&bts, RFN_MODULUS + 30); - fn = calc_fn(&bts, RFN_MODULUS - 10); + set_fn(bts, RFN_MODULUS + 30); + fn = calc_fn(bts, RFN_MODULUS - 10); OSMO_ASSERT(fn == 42422); - set_fn(&bts, RFN_MODULUS + 1); - fn = calc_fn(&bts, RFN_MODULUS - 1); + set_fn(bts, RFN_MODULUS + 1); + fn = calc_fn(bts, RFN_MODULUS - 1); OSMO_ASSERT(fn == 42431); - set_fn(&bts, RFN_MODULUS * 123 + 16); - fn = calc_fn(&bts, RFN_MODULUS - 4); + set_fn(bts, RFN_MODULUS * 123 + 16); + fn = calc_fn(bts, RFN_MODULUS - 4); OSMO_ASSERT(fn == 5219132); - set_fn(&bts, RFN_MODULUS * 123 + 451); - fn = calc_fn(&bts, RFN_MODULUS - 175); + set_fn(bts, RFN_MODULUS * 123 + 451); + fn = calc_fn(bts, RFN_MODULUS - 175); OSMO_ASSERT(fn == 5218961); @@ -105,41 +105,42 @@ * the BTS just wrapped its internal frame number * but we still get rach requests with high relative * frame numbers. */ - set_fn(&bts, 0); - fn = calc_fn(&bts, RFN_MODULUS - 13); + set_fn(bts, 0); + fn = calc_fn(bts, RFN_MODULUS - 13); OSMO_ASSERT(fn == 2715635); - set_fn(&bts, 453); - fn = calc_fn(&bts, RFN_MODULUS - 102); + set_fn(bts, 453); + fn = calc_fn(bts, RFN_MODULUS - 102); OSMO_ASSERT(fn == 2715546); - set_fn(&bts, 10); - fn = calc_fn(&bts, RFN_MODULUS - 10); + set_fn(bts, 10); + fn = calc_fn(bts, RFN_MODULUS - 10); OSMO_ASSERT(fn == 2715638); - set_fn(&bts, 23); - fn = calc_fn(&bts, RFN_MODULUS - 42); + set_fn(bts, 23); + fn = calc_fn(bts, RFN_MODULUS - 42); OSMO_ASSERT(fn == 2715606); /* Also check with some corner case * values where Fn and RFn reach its * maximum/minimum valid range */ - set_fn(&bts, GSM_MAX_FN); - fn = calc_fn(&bts, RFN_MODULUS-1); + set_fn(bts, GSM_MAX_FN); + fn = calc_fn(bts, RFN_MODULUS-1); OSMO_ASSERT(fn == GSM_MAX_FN-1); - set_fn(&bts, 0); - fn = calc_fn(&bts, RFN_MODULUS-1); + set_fn(bts, 0); + fn = calc_fn(bts, RFN_MODULUS-1); OSMO_ASSERT(fn == GSM_MAX_FN-1); - set_fn(&bts, GSM_MAX_FN); - fn = calc_fn(&bts, 0); + set_fn(bts, GSM_MAX_FN); + fn = calc_fn(bts, 0); OSMO_ASSERT(fn == GSM_MAX_FN); - set_fn(&bts, 0); - fn = calc_fn(&bts, 0); + set_fn(bts, 0); + fn = calc_fn(bts, 0); OSMO_ASSERT(fn == 0); + talloc_free(bts); } int main(int argc, char **argv) diff --git a/tests/ms/MsTest.cpp b/tests/ms/MsTest.cpp index d6c8f18..58579f8 100644 --- a/tests/ms/MsTest.cpp +++ b/tests/ms/MsTest.cpp @@ -51,18 +51,18 @@ uint32_t tlli = 0xffeeddbb; gprs_rlcmac_dl_tbf *dl_tbf; gprs_rlcmac_ul_tbf *ul_tbf; - BTS the_bts(the_pcu); + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu); GprsMs *ms; printf("=== start %s ===\n", __func__); - ms = ms_alloc(&the_bts, tlli); + ms = ms_alloc(bts, tlli); OSMO_ASSERT(ms_is_idle(ms)); dl_tbf = talloc_zero(tall_pcu_ctx, struct gprs_rlcmac_dl_tbf); - new (dl_tbf) gprs_rlcmac_dl_tbf(&the_bts, ms); + new (dl_tbf) gprs_rlcmac_dl_tbf(bts, ms); ul_tbf = talloc_zero(tall_pcu_ctx, struct gprs_rlcmac_ul_tbf); - new (ul_tbf) gprs_rlcmac_ul_tbf(&the_bts, ms); + new (ul_tbf) gprs_rlcmac_ul_tbf(bts, ms); ms_attach_tbf(ms, ul_tbf); OSMO_ASSERT(!ms_is_idle(ms)); @@ -88,7 +88,7 @@ talloc_free(dl_tbf); talloc_free(ul_tbf); - + talloc_free(bts); printf("=== end %s ===\n", __func__); } @@ -114,21 +114,21 @@ uint32_t tlli = 0xffeeddbb; gprs_rlcmac_dl_tbf *dl_tbf; gprs_rlcmac_ul_tbf *ul_tbf; - BTS the_bts(the_pcu); + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu); GprsMs *ms; last_cb = CB_UNKNOWN; printf("=== start %s ===\n", __func__); - ms = ms_alloc(&the_bts, tlli); + ms = ms_alloc(bts, tlli); ms_set_callback(ms, &ms_cb); OSMO_ASSERT(ms_is_idle(ms)); dl_tbf = talloc_zero(tall_pcu_ctx, struct gprs_rlcmac_dl_tbf); - new (dl_tbf) gprs_rlcmac_dl_tbf(&the_bts, ms); + new (dl_tbf) gprs_rlcmac_dl_tbf(bts, ms); ul_tbf = talloc_zero(tall_pcu_ctx, struct gprs_rlcmac_ul_tbf); - new (ul_tbf) gprs_rlcmac_ul_tbf(&the_bts, ms); + new (ul_tbf) gprs_rlcmac_ul_tbf(bts, ms); OSMO_ASSERT(last_cb == CB_UNKNOWN); @@ -163,7 +163,7 @@ talloc_free(dl_tbf); talloc_free(ul_tbf); - + talloc_free(bts); printf("=== end %s ===\n", __func__); } @@ -188,23 +188,23 @@ uint32_t tlli = 0xffeeddbb; gprs_rlcmac_dl_tbf *dl_tbf[2]; gprs_rlcmac_ul_tbf *ul_tbf; - BTS the_bts(the_pcu); + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu); GprsMs *ms; printf("=== start %s ===\n", __func__); - ms = ms_alloc(&the_bts, tlli); + ms = ms_alloc(bts, tlli); ms_set_callback(ms, &ms_replace_tbf_cb); OSMO_ASSERT(ms_is_idle(ms)); was_idle = false; dl_tbf[0] = talloc_zero(tall_pcu_ctx, struct gprs_rlcmac_dl_tbf); - new (dl_tbf[0]) gprs_rlcmac_dl_tbf(&the_bts, ms); + new (dl_tbf[0]) gprs_rlcmac_dl_tbf(bts, ms); dl_tbf[1] = talloc_zero(tall_pcu_ctx, struct gprs_rlcmac_dl_tbf); - new (dl_tbf[1]) gprs_rlcmac_dl_tbf(&the_bts, ms); + new (dl_tbf[1]) gprs_rlcmac_dl_tbf(bts, ms); ul_tbf = talloc_zero(tall_pcu_ctx, struct gprs_rlcmac_ul_tbf); - new (ul_tbf) gprs_rlcmac_ul_tbf(&the_bts, ms); + new (ul_tbf) gprs_rlcmac_ul_tbf(bts, ms); ms_attach_tbf(ms, dl_tbf[0]); OSMO_ASSERT(!ms_is_idle(ms)); @@ -253,7 +253,7 @@ talloc_free(dl_tbf[0]); talloc_free(dl_tbf[1]); talloc_free(ul_tbf); - + talloc_free(bts); printf("=== end %s ===\n", __func__); } @@ -262,12 +262,12 @@ uint32_t start_tlli = 0xaa000000; uint32_t new_ms_tlli = 0xff001111; uint32_t other_sgsn_tlli = 0xff00eeee; - BTS the_bts(the_pcu); + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu); GprsMs *ms; printf("=== start %s ===\n", __func__); - ms = ms_alloc(&the_bts, start_tlli); + ms = ms_alloc(bts, start_tlli); OSMO_ASSERT(ms_is_idle(ms)); @@ -347,7 +347,7 @@ OSMO_ASSERT(!ms_check_tlli(ms, start_tlli)); talloc_free(ms); - + talloc_free(bts); printf("=== end %s ===\n", __func__); } @@ -374,9 +374,9 @@ const char *imsi2 = "001001987654322"; gprs_rlcmac_ul_tbf *ul_tbf; - BTS the_bts(the_pcu); + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu); GprsMs *ms, *ms_tmp; - GprsMsStorage store(&the_bts); + GprsMsStorage store(bts); printf("=== start %s ===\n", __func__); @@ -420,7 +420,7 @@ ms = store.get_ms(tlli + 0); OSMO_ASSERT(ms != NULL); ul_tbf = talloc_zero(tall_pcu_ctx, struct gprs_rlcmac_ul_tbf); - new (ul_tbf) gprs_rlcmac_ul_tbf(&the_bts, ms); + new (ul_tbf) gprs_rlcmac_ul_tbf(bts, ms); ms_attach_tbf(ms, ul_tbf); ms_detach_tbf(ms, ul_tbf); ms = store.get_ms(tlli + 0); @@ -437,7 +437,7 @@ OSMO_ASSERT(ms == NULL); talloc_free(ul_tbf); - + talloc_free(bts); printf("=== end %s ===\n", __func__); } @@ -446,22 +446,22 @@ uint32_t tlli = 0xffeeddbb; gprs_rlcmac_dl_tbf *dl_tbf; gprs_rlcmac_ul_tbf *ul_tbf; - BTS the_bts(the_pcu); + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu); GprsMs *ms; last_cb = CB_UNKNOWN; printf("=== start %s ===\n", __func__); - ms = ms_alloc(&the_bts, tlli); + ms = ms_alloc(bts, tlli); ms_set_callback(ms, &ms_cb); ms_set_timeout(ms, 1); OSMO_ASSERT(ms_is_idle(ms)); dl_tbf = talloc_zero(tall_pcu_ctx, struct gprs_rlcmac_dl_tbf); - new (dl_tbf) gprs_rlcmac_dl_tbf(&the_bts, ms); + new (dl_tbf) gprs_rlcmac_dl_tbf(bts, ms); ul_tbf = talloc_zero(tall_pcu_ctx, struct gprs_rlcmac_ul_tbf); - new (ul_tbf) gprs_rlcmac_ul_tbf(&the_bts, ms); + new (ul_tbf) gprs_rlcmac_ul_tbf(bts, ms); OSMO_ASSERT(last_cb == CB_UNKNOWN); @@ -493,14 +493,13 @@ talloc_free(ms); talloc_free(dl_tbf); talloc_free(ul_tbf); - + talloc_free(bts); printf("=== end %s ===\n", __func__); } static void test_ms_cs_selection() { - BTS the_bts(the_pcu); - gprs_rlcmac_bts *bts = the_bts.bts_data(); + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu); uint32_t tlli = 0xffeeddbb; gprs_rlcmac_dl_tbf *dl_tbf; @@ -513,12 +512,12 @@ the_pcu->vty.cs_downgrade_threshold = 0; the_pcu->vty.cs_adj_lower_limit = 0; - ms = ms_alloc(&the_bts, tlli); + ms = ms_alloc(bts, tlli); OSMO_ASSERT(ms_is_idle(ms)); dl_tbf = talloc_zero(tall_pcu_ctx, struct gprs_rlcmac_dl_tbf); - new (dl_tbf) gprs_rlcmac_dl_tbf(&the_bts, ms); + new (dl_tbf) gprs_rlcmac_dl_tbf(bts, ms); ms_attach_tbf(ms, dl_tbf); OSMO_ASSERT(!ms_is_idle(ms)); @@ -530,7 +529,7 @@ OSMO_ASSERT(mcs_chan_code(ms_current_cs_dl(ms)) == 2); talloc_free(dl_tbf); - + talloc_free(bts); printf("=== end %s ===\n", __func__); } @@ -545,8 +544,7 @@ static void test_ms_mcs_mode() { - BTS the_bts(the_pcu); - gprs_rlcmac_bts *bts = the_bts.bts_data(); + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu); uint32_t tlli = 0xdeadbeef; gprs_rlcmac_dl_tbf *dl_tbf; @@ -554,18 +552,18 @@ printf("=== start %s ===\n", __func__); - ms1 = ms_alloc(&the_bts, tlli); + ms1 = ms_alloc(bts, tlli); dump_ms(ms1, "1: no BTS defaults "); bts->initial_cs_dl = 4; bts->initial_cs_ul = 1; the_pcu->vty.cs_downgrade_threshold = 0; - ms2 = ms_alloc(&the_bts, tlli + 1); + ms2 = ms_alloc(bts, tlli + 1); dump_ms(ms2, "2: with BTS defaults"); dl_tbf = talloc_zero(tall_pcu_ctx, struct gprs_rlcmac_dl_tbf); - new (dl_tbf) gprs_rlcmac_dl_tbf(&the_bts, ms2); + new (dl_tbf) gprs_rlcmac_dl_tbf(bts, ms2); ms_attach_tbf(ms2, dl_tbf); dump_ms(ms2, "2: after TBF attach "); @@ -599,7 +597,7 @@ dump_ms(ms2, "2: after mode set "); talloc_free(dl_tbf); - + talloc_free(bts); printf("=== end %s ===\n", __func__); } diff --git a/tests/tbf/TbfTest.cpp b/tests/tbf/TbfTest.cpp index 1b85201..ef26862 100644 --- a/tests/tbf/TbfTest.cpp +++ b/tests/tbf/TbfTest.cpp @@ -22,8 +22,11 @@ #include "bts.h" #include "tbf.h" +#include "tbf_dl.h" #include "tbf_ul.h" +#include "gprs_ms.h" #include "gprs_debug.h" +#include "gprs_ms_storage.h" #include "pcu_utils.h" #include "gprs_bssgp_pcu.h" #include "pcu_l1_if.h" @@ -54,7 +57,7 @@ /* Measurements shared by all unit tests */ static struct pcu_l1_meas meas; -static int bts_handle_rach(BTS *bts, uint16_t ra, uint32_t Fn, int16_t qta) +static int bts_handle_rach(struct gprs_rlcmac_bts *bts, uint16_t ra, uint32_t Fn, int16_t qta) { struct rach_ind_params rip = { .burst_type = GSM_L1_BURST_TYPE_ACCESS_0, @@ -66,7 +69,7 @@ .qta = qta, }; - return bts->rcv_rach(&rip); + return bts_rcv_rach(bts, &rip); } static void check_tbf(gprs_rlcmac_tbf *tbf) @@ -93,20 +96,20 @@ { the_pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu->bts = bts_alloc(the_pcu); - BTS *the_bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts = the_pcu->bts; GprsMs *ms, *ms_new; fprintf(stderr, "=== start %s ===\n", __func__); the_pcu->alloc_algorithm = alloc_algorithm_a; - the_bts->bts_data()->trx[0].pdch[2].enable(); - the_bts->bts_data()->trx[0].pdch[3].enable(); + bts->trx[0].pdch[2].enable(); + bts->trx[0].pdch[3].enable(); /* * Make a uplink and downlink allocation */ - ms = the_bts->ms_alloc(0, 0); - gprs_rlcmac_tbf *dl_tbf = tbf_alloc_dl_tbf(the_bts->bts_data(), + ms = bts_alloc_ms(bts, 0, 0); + gprs_rlcmac_tbf *dl_tbf = tbf_alloc_dl_tbf(bts, ms, 0, false); OSMO_ASSERT(dl_tbf != NULL); dl_tbf->update_ms(0x2342, GPRS_RLCMAC_DL_TBF); @@ -114,14 +117,14 @@ OSMO_ASSERT(ms_dl_tbf(ms) == dl_tbf); OSMO_ASSERT(dl_tbf->ms() == ms); - gprs_rlcmac_tbf *ul_tbf = tbf_alloc_ul_tbf(the_bts->bts_data(), + gprs_rlcmac_tbf *ul_tbf = tbf_alloc_ul_tbf(bts, ms, 0, false); OSMO_ASSERT(ul_tbf != NULL); ul_tbf->update_ms(0x2342, GPRS_RLCMAC_UL_TBF); OSMO_ASSERT(ms_ul_tbf(ms) == ul_tbf); OSMO_ASSERT(ul_tbf->ms() == ms); - OSMO_ASSERT(the_bts->ms_by_tlli(0x2342) == ms); + OSMO_ASSERT(bts_ms_by_tlli(bts, 0x2342, GSM_RESERVED_TMSI) == ms); /* * Now check.. that DL changes and that the timing advance @@ -130,20 +133,20 @@ dl_tbf->update_ms(0x4232, GPRS_RLCMAC_DL_TBF); /* It is still there, since the new TLLI has not been used for UL yet */ - ms_new = the_bts->ms_by_tlli(0x2342); + ms_new = bts_ms_by_tlli(bts, 0x2342, GSM_RESERVED_TMSI); OSMO_ASSERT(ms == ms_new); - ms_new = the_bts->ms_by_tlli(0x4232); + ms_new = bts_ms_by_tlli(bts, 0x4232, GSM_RESERVED_TMSI); OSMO_ASSERT(ms == ms_new); OSMO_ASSERT(ms_dl_tbf(ms) == dl_tbf); OSMO_ASSERT(ms_ul_tbf(ms) == ul_tbf); /* Now use the new TLLI for UL */ ul_tbf->update_ms(0x4232, GPRS_RLCMAC_UL_TBF); - ms_new = the_bts->ms_by_tlli(0x2342); + ms_new = bts_ms_by_tlli(bts, 0x2342, GSM_RESERVED_TMSI); OSMO_ASSERT(ms_new == NULL); - ms_new = the_bts->ms_by_tlli(0x4232); + ms_new = bts_ms_by_tlli(bts, 0x4232, GSM_RESERVED_TMSI); OSMO_ASSERT(ms_new != NULL); OSMO_ASSERT(ms_ta(ms_new) == 4); @@ -168,12 +171,10 @@ return 0; } -static void setup_bts(BTS *the_bts, uint8_t ts_no, uint8_t cs = 1) +static void setup_bts(struct gprs_rlcmac_bts *bts, uint8_t ts_no, uint8_t cs = 1) { - gprs_rlcmac_bts *bts; gprs_rlcmac_trx *trx; - bts = the_bts->bts_data(); the_pcu->alloc_algorithm = alloc_algorithm_a; bts->initial_cs_dl = cs; bts->initial_cs_ul = cs; @@ -182,22 +183,20 @@ trx = &bts->trx[0]; trx->pdch[ts_no].enable(); - the_bts->set_current_frame_number(DUMMY_FN); + bts_set_current_frame_number(bts, DUMMY_FN); } -static gprs_rlcmac_dl_tbf *create_dl_tbf(BTS *the_bts, uint8_t ms_class, +static gprs_rlcmac_dl_tbf *create_dl_tbf(struct gprs_rlcmac_bts *bts, uint8_t ms_class, uint8_t egprs_ms_class, uint8_t *trx_no_) { - gprs_rlcmac_bts *bts; int tfi; uint8_t trx_no; GprsMs *ms; gprs_rlcmac_dl_tbf *dl_tbf; - bts = the_bts->bts_data(); - ms = the_bts->ms_alloc(ms_class, egprs_ms_class); + ms = bts_alloc_ms(bts, ms_class, egprs_ms_class); - tfi = the_bts->tfi_find_free(GPRS_RLCMAC_DL_TBF, &trx_no, -1); + tfi = bts_tfi_find_free(bts, GPRS_RLCMAC_DL_TBF, &trx_no, -1); OSMO_ASSERT(tfi >= 0); dl_tbf = tbf_alloc_dl_tbf(bts, ms, trx_no, true); OSMO_ASSERT(dl_tbf); @@ -243,7 +242,7 @@ static void request_dl_rlc_block(struct gprs_rlcmac_tbf *tbf, uint32_t *fn, uint8_t *block_nr = NULL) { - request_dl_rlc_block(tbf->bts->bts_data(), tbf->trx->trx_no, + request_dl_rlc_block(tbf->bts, tbf->trx->trx_no, tbf->control_ts, fn, block_nr); } @@ -256,7 +255,7 @@ { the_pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu->bts = bts_alloc(the_pcu); - BTS *the_bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts = the_pcu->bts; uint8_t ts_no = 4; unsigned i; uint8_t ms_class = 45; @@ -273,8 +272,8 @@ gprs_rlcmac_dl_tbf *dl_tbf; gprs_rlcmac_tbf *new_tbf; - setup_bts(the_bts, ts_no); - dl_tbf = create_dl_tbf(the_bts, ms_class, 0, &trx_no); + setup_bts(bts, ts_no); + dl_tbf = create_dl_tbf(bts, ms_class, 0, &trx_no); dl_tbf->update_ms(tlli, GPRS_RLCMAC_DL_TBF); ms = dl_tbf->ms(); @@ -342,7 +341,7 @@ { the_pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu->bts = bts_alloc(the_pcu); - BTS *the_bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts = the_pcu->bts; uint8_t ts_no = 4; unsigned i; uint8_t ms_class = 45; @@ -357,10 +356,10 @@ fprintf(stderr, "=== start %s ===\n", __func__); - setup_bts(the_bts, ts_no); + setup_bts(bts, ts_no); OSMO_ASSERT(osmo_tdef_set(the_pcu->T_defs, -2031, 200, OSMO_TDEF_MS) == 0); - dl_tbf = create_dl_tbf(the_bts, ms_class, 0, &trx_no); + dl_tbf = create_dl_tbf(bts, ms_class, 0, &trx_no); dl_tbf->update_ms(tlli, GPRS_RLCMAC_DL_TBF); for (i = 0; i < sizeof(llc_data); i++) @@ -413,7 +412,7 @@ { the_pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu->bts = bts_alloc(the_pcu); - BTS *the_bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts = the_pcu->bts; uint8_t ts_no = 4; uint8_t ms_class = 45; uint8_t trx_no; @@ -423,27 +422,27 @@ fprintf(stderr, "=== start %s ===\n", __func__); - setup_bts(the_bts, ts_no); + setup_bts(bts, ts_no); - dl_tbf[0] = create_dl_tbf(the_bts, ms_class, 0, &trx_no); - dl_tbf[1] = create_dl_tbf(the_bts, ms_class, 0, &trx_no); + dl_tbf[0] = create_dl_tbf(bts, ms_class, 0, &trx_no); + dl_tbf[1] = create_dl_tbf(bts, ms_class, 0, &trx_no); dl_tbf[0]->update_ms(0xf1000001, GPRS_RLCMAC_DL_TBF); dl_tbf[1]->update_ms(0xf1000002, GPRS_RLCMAC_DL_TBF); ms_set_imsi(dl_tbf[0]->ms(), "001001000000001"); - ms1 = the_bts->ms_store().get_ms(0, 0, "001001000000001"); + ms1 = bts_ms_store(bts)->get_ms(0, 0, "001001000000001"); OSMO_ASSERT(ms1 != NULL); - ms2 = the_bts->ms_store().get_ms(0xf1000001); + ms2 = bts_ms_store(bts)->get_ms(0xf1000001); OSMO_ASSERT(ms2 != NULL); OSMO_ASSERT(strcmp(ms_imsi(ms2), "001001000000001") == 0); OSMO_ASSERT(ms1 == ms2); /* change the IMSI on TBF 0 */ ms_set_imsi(dl_tbf[0]->ms(), "001001000000002"); - ms1 = the_bts->ms_store().get_ms(0, 0, "001001000000001"); + ms1 = bts_ms_store(bts)->get_ms(0, 0, "001001000000001"); OSMO_ASSERT(ms1 == NULL); - ms1 = the_bts->ms_store().get_ms(0, 0, "001001000000002"); + ms1 = bts_ms_store(bts)->get_ms(0, 0, "001001000000002"); OSMO_ASSERT(ms1 != NULL); OSMO_ASSERT(strcmp(ms_imsi(ms2), "001001000000002") == 0); OSMO_ASSERT(ms1 == ms2); @@ -452,7 +451,7 @@ { ms_ref(ms2); ms_set_imsi(dl_tbf[1]->ms(), "001001000000002"); - ms1 = the_bts->ms_store().get_ms(0, 0, "001001000000002"); + ms1 = bts_ms_store(bts)->get_ms(0, 0, "001001000000002"); OSMO_ASSERT(ms1 != NULL); OSMO_ASSERT(ms1 != ms2); OSMO_ASSERT(strcmp(ms_imsi(ms1), "001001000000002") == 0); @@ -460,11 +459,11 @@ ms_unref(ms2); } - ms2 = the_bts->ms_store().get_ms(0xf1000001); + ms2 = bts_ms_store(bts)->get_ms(0xf1000001); OSMO_ASSERT(ms2 == NULL); tbf_free(dl_tbf[1]); - ms1 = the_bts->ms_store().get_ms(0, 0, "001001000000002"); + ms1 = bts_ms_store(bts)->get_ms(0, 0, "001001000000002"); OSMO_ASSERT(ms1 == NULL); TALLOC_FREE(the_pcu); @@ -475,8 +474,7 @@ { the_pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu->bts = bts_alloc(the_pcu); - BTS *the_bts = the_pcu->bts; - gprs_rlcmac_bts *bts; + struct gprs_rlcmac_bts *bts = the_pcu->bts; unsigned i; uint8_t ts_no = 4; uint8_t ms_class = 45; @@ -486,14 +484,13 @@ fprintf(stderr, "=== start %s ===\n", __func__); - bts = the_bts->bts_data(); - the_bts->pcu->nsi = gprs_ns2_instantiate(tall_pcu_ctx, gprs_ns_prim_cb, NULL); - if (!the_bts->pcu->nsi) { + bts->pcu->nsi = gprs_ns2_instantiate(tall_pcu_ctx, gprs_ns_prim_cb, NULL); + if (!bts->pcu->nsi) { LOGP(DBSSGP, LOGL_ERROR, "Failed to create NS instance\n"); abort(); } - setup_bts(the_bts, ts_no); + setup_bts(bts, ts_no); gprs_bssgp_init(bts, 1234, 1234, 1, 1, false, 0, 0, 0); for (i = 0; i < 1024; i++) { @@ -521,8 +518,7 @@ { the_pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu->bts = bts_alloc(the_pcu); - BTS *the_bts = the_pcu->bts; - gprs_rlcmac_bts *bts; + struct gprs_rlcmac_bts *bts = the_pcu->bts; uint8_t ts_no = 4; uint8_t ms_class = 45; int rc = 0; @@ -533,16 +529,15 @@ uint8_t buf[19]; - bts = the_bts->bts_data(); - the_bts->pcu->nsi = gprs_ns2_instantiate(tall_pcu_ctx, gprs_ns_prim_cb, NULL); - if (!the_bts->pcu->nsi) { + bts->pcu->nsi = gprs_ns2_instantiate(tall_pcu_ctx, gprs_ns_prim_cb, NULL); + if (!bts->pcu->nsi) { LOGP(DBSSGP, LOGL_ERROR, "Failed to create NS instance\n"); abort(); } fprintf(stderr, "=== start %s ===\n", __func__); - setup_bts(the_bts, ts_no); + setup_bts(bts, ts_no); /* keep the MS object 10 seconds */ OSMO_ASSERT(osmo_tdef_set(the_pcu->T_defs, -2030, 10, OSMO_TDEF_S) == 0); @@ -554,7 +549,7 @@ delay_csec, buf, sizeof(buf)); OSMO_ASSERT(rc >= 0); - ms = the_bts->ms_store().get_ms(0, 0, imsi); + ms = bts_ms_store(bts)->get_ms(0, 0, imsi); OSMO_ASSERT(ms != NULL); OSMO_ASSERT(ms_dl_tbf(ms) != NULL); ms_dl_tbf(ms)->set_ta(0); @@ -605,7 +600,7 @@ TALLOC_FREE(the_pcu); } -static gprs_rlcmac_ul_tbf *establish_ul_tbf_single_phase(BTS *the_bts, +static gprs_rlcmac_ul_tbf *establish_ul_tbf_single_phase(struct gprs_rlcmac_bts *bts, uint8_t ts_no, uint32_t tlli, uint32_t *fn, uint16_t qta) { GprsMs *ms; @@ -614,11 +609,11 @@ uint8_t trx_no = 0; struct gprs_rlcmac_pdch *pdch; - tfi = the_bts->tfi_find_free(GPRS_RLCMAC_UL_TBF, &trx_no, -1); + tfi = bts_tfi_find_free(bts, GPRS_RLCMAC_UL_TBF, &trx_no, -1); - bts_handle_rach(the_bts, 0x03, *fn, qta); + bts_handle_rach(bts, 0x03, *fn, qta); - ul_tbf = the_bts->ul_tbf_by_tfi(tfi, trx_no, ts_no); + ul_tbf = bts_ul_tbf_by_tfi(bts, tfi, trx_no, ts_no); OSMO_ASSERT(ul_tbf != NULL); OSMO_ASSERT(ul_tbf->ta() == qta / 4); @@ -631,16 +626,16 @@ uint8_t(tlli >> 8), uint8_t(tlli), /* TLLI */ }; - pdch = &the_bts->bts_data()->trx[trx_no].pdch[ts_no]; + pdch = &bts->trx[trx_no].pdch[ts_no]; pdch->rcv_block(&data_msg[0], sizeof(data_msg), *fn, &meas); - ms = the_bts->ms_by_tlli(tlli); + ms = bts_ms_by_tlli(bts, tlli, GSM_RESERVED_TMSI); OSMO_ASSERT(ms != NULL); return ul_tbf; } -static void send_ul_mac_block(BTS *the_bts, unsigned trx_no, unsigned ts_no, +static void send_ul_mac_block(struct gprs_rlcmac_bts *bts, unsigned trx_no, unsigned ts_no, RlcMacUplink_t *ulreq, unsigned fn) { bitvec *rlc_block; @@ -655,9 +650,9 @@ OSMO_ASSERT(size_t(num_bytes) < sizeof(buf)); bitvec_free(rlc_block); - the_bts->set_current_block_frame_number(fn, 0); + bts_set_current_block_frame_number(bts, fn, 0); - pdch = &the_bts->bts_data()->trx[trx_no].pdch[ts_no]; + pdch = &bts->trx[trx_no].pdch[ts_no]; pdch->rcv_block(&buf[0], num_bytes, fn, &meas); } @@ -678,7 +673,7 @@ &ulreq, tbf->poll_fn); } -static gprs_rlcmac_ul_tbf *puan_urbb_len_issue(BTS *the_bts, +static gprs_rlcmac_ul_tbf *puan_urbb_len_issue(struct gprs_rlcmac_bts *bts, uint8_t ts_no, uint32_t tlli, uint32_t *fn, uint16_t qta, uint8_t ms_class, uint8_t egprs_ms_class) { @@ -689,12 +684,9 @@ int tfi = 0; gprs_rlcmac_ul_tbf *ul_tbf; struct gprs_rlcmac_pdch *pdch; - gprs_rlcmac_bts *bts; RlcMacUplink_t ulreq = {0}; struct gprs_rlc_ul_header_egprs_3 *egprs3 = NULL; - bts = the_bts->bts_data(); - /* needed to set last_rts_fn in the PDCH object */ request_dl_rlc_block(bts, trx_no, ts_no, fn); @@ -702,10 +694,10 @@ * simulate RACH, this sends an Immediate * Assignment Uplink on the AGCH */ - bts_handle_rach(the_bts, 0x73, rach_fn, qta); + bts_handle_rach(bts, 0x73, rach_fn, qta); /* get next free TFI */ - tfi = the_bts->tfi_find_free(GPRS_RLCMAC_UL_TBF, &trx_no, -1); + tfi = bts_tfi_find_free(bts, GPRS_RLCMAC_UL_TBF, &trx_no, -1); /* fake a resource request */ ulreq.u.MESSAGE_TYPE = MT_PACKET_RESOURCE_REQUEST; @@ -733,10 +725,10 @@ Multislot_capability.EGPRS_multislot_class = ms_class; } - send_ul_mac_block(the_bts, trx_no, ts_no, &ulreq, sba_fn); + send_ul_mac_block(bts, trx_no, ts_no, &ulreq, sba_fn); /* check the TBF */ - ul_tbf = the_bts->ul_tbf_by_tfi(tfi, trx_no, ts_no); + ul_tbf = bts_ul_tbf_by_tfi(bts, tfi, trx_no, ts_no); OSMO_ASSERT(ul_tbf); OSMO_ASSERT(ul_tbf->ta() == qta / 4); @@ -755,10 +747,10 @@ 1, /* BSN:7, E:1 */ }; - pdch = &the_bts->bts_data()->trx[trx_no].pdch[ts_no]; + pdch = &bts->trx[trx_no].pdch[ts_no]; pdch->rcv_block(&data_msg[0], 23, *fn, &meas); - ms = the_bts->ms_by_tlli(tlli); + ms = bts_ms_by_tlli(bts, tlli, GSM_RESERVED_TMSI); OSMO_ASSERT(ms != NULL); OSMO_ASSERT(ms_ta(ms) == qta/4); OSMO_ASSERT(ms_ul_tbf(ms) == ul_tbf); @@ -825,7 +817,7 @@ return ul_tbf; } -static gprs_rlcmac_ul_tbf *establish_ul_tbf_two_phase_spb(BTS *the_bts, +static gprs_rlcmac_ul_tbf *establish_ul_tbf_two_phase_spb(struct gprs_rlcmac_bts *bts, uint8_t ts_no, uint32_t tlli, uint32_t *fn, uint16_t qta, uint8_t ms_class, uint8_t egprs_ms_class) { @@ -836,12 +828,9 @@ int tfi = 0, i = 0; gprs_rlcmac_ul_tbf *ul_tbf; struct gprs_rlcmac_pdch *pdch; - gprs_rlcmac_bts *bts; RlcMacUplink_t ulreq = {0}; struct gprs_rlc_ul_header_egprs_3 *egprs3 = NULL; - bts = the_bts->bts_data(); - /* needed to set last_rts_fn in the PDCH object */ request_dl_rlc_block(bts, trx_no, ts_no, fn); @@ -849,10 +838,10 @@ * simulate RACH, this sends an Immediate * Assignment Uplink on the AGCH */ - bts_handle_rach(the_bts, 0x73, rach_fn, qta); + bts_handle_rach(bts, 0x73, rach_fn, qta); /* get next free TFI */ - tfi = the_bts->tfi_find_free(GPRS_RLCMAC_UL_TBF, &trx_no, -1); + tfi = bts_tfi_find_free(bts, GPRS_RLCMAC_UL_TBF, &trx_no, -1); /* fake a resource request */ ulreq.u.MESSAGE_TYPE = MT_PACKET_RESOURCE_REQUEST; @@ -880,10 +869,10 @@ Multislot_capability.EGPRS_multislot_class = ms_class; } - send_ul_mac_block(the_bts, trx_no, ts_no, &ulreq, sba_fn); + send_ul_mac_block(bts, trx_no, ts_no, &ulreq, sba_fn); /* check the TBF */ - ul_tbf = the_bts->ul_tbf_by_tfi(tfi, trx_no, ts_no); + ul_tbf = bts_ul_tbf_by_tfi(bts, tfi, trx_no, ts_no); OSMO_ASSERT(ul_tbf != NULL); OSMO_ASSERT(ul_tbf->ta() == qta / 4); @@ -903,10 +892,10 @@ uint8_t(1), /* BSN:7, E:1 */ }; - pdch = &the_bts->bts_data()->trx[trx_no].pdch[ts_no]; + pdch = &bts->trx[trx_no].pdch[ts_no]; pdch->rcv_block(&data_msg[0], 23, *fn, &meas); - ms = the_bts->ms_by_tlli(tlli); + ms = bts_ms_by_tlli(bts, tlli, GSM_RESERVED_TMSI); OSMO_ASSERT(ms != NULL); OSMO_ASSERT(ms_ta(ms) == qta/4); OSMO_ASSERT(ms_ul_tbf(ms) == ul_tbf); @@ -1263,7 +1252,7 @@ return ul_tbf; } -static gprs_rlcmac_ul_tbf *establish_ul_tbf(BTS *the_bts, +static gprs_rlcmac_ul_tbf *establish_ul_tbf(struct gprs_rlcmac_bts *bts, uint8_t ts_no, uint32_t tlli, uint32_t *fn, uint16_t qta, uint8_t ms_class, uint8_t egprs_ms_class) { @@ -1272,11 +1261,8 @@ uint8_t trx_no = 0; int tfi = 0; gprs_rlcmac_ul_tbf *ul_tbf; - gprs_rlcmac_bts *bts; RlcMacUplink_t ulreq = {0}; - bts = the_bts->bts_data(); - /* needed to set last_rts_fn in the PDCH object */ request_dl_rlc_block(bts, trx_no, ts_no, fn); @@ -1284,10 +1270,10 @@ * simulate RACH, this sends an Immediate * Assignment Uplink on the AGCH */ - bts_handle_rach(the_bts, 0x73, rach_fn, qta); + bts_handle_rach(bts, 0x73, rach_fn, qta); /* get next free TFI */ - tfi = the_bts->tfi_find_free(GPRS_RLCMAC_UL_TBF, &trx_no, -1); + tfi = bts_tfi_find_free(bts, GPRS_RLCMAC_UL_TBF, &trx_no, -1); /* fake a resource request */ ulreq.u.MESSAGE_TYPE = MT_PACKET_RESOURCE_REQUEST; @@ -1314,10 +1300,10 @@ MS_RA_capability_value[0].u.Content. Multislot_capability.EGPRS_multislot_class = ms_class; } - send_ul_mac_block(the_bts, trx_no, ts_no, &ulreq, sba_fn); + send_ul_mac_block(bts, trx_no, ts_no, &ulreq, sba_fn); /* check the TBF */ - ul_tbf = the_bts->ul_tbf_by_tfi(tfi, trx_no, ts_no); + ul_tbf = bts_ul_tbf_by_tfi(bts, tfi, trx_no, ts_no); /* send packet uplink assignment */ *fn = sba_fn; request_dl_rlc_block(ul_tbf, fn); @@ -1330,7 +1316,7 @@ return ul_tbf; } -static gprs_rlcmac_ul_tbf *establish_ul_tbf_two_phase_puan_URBB_no_length(BTS *the_bts, +static gprs_rlcmac_ul_tbf *establish_ul_tbf_two_phase_puan_URBB_no_length(struct gprs_rlcmac_bts *bts, uint8_t ts_no, uint32_t tlli, uint32_t *fn, uint16_t qta, uint8_t ms_class, uint8_t egprs_ms_class, gprs_rlcmac_ul_tbf *ul_tbf) { @@ -1369,7 +1355,7 @@ data[5] = 0x0; data[6] = 0x2b; data[7] = 0x2b; - pdch = &the_bts->bts_data()->trx[trx_no].pdch[ts_no]; + pdch = &bts->trx[trx_no].pdch[ts_no]; pdch->rcv_block(&data[0], sizeof(data), *fn, &meas); } ul_tbf->create_ul_ack(*fn, ts_no); @@ -1394,7 +1380,7 @@ data[6] = 0x2b; data[7] = 0x2b; - pdch = &the_bts->bts_data()->trx[trx_no].pdch[ts_no]; + pdch = &bts->trx[trx_no].pdch[ts_no]; pdch->rcv_block(&data[0], sizeof(data), *fn, &meas); request_dl_rlc_block(ul_tbf, fn); @@ -1402,7 +1388,7 @@ check_tbf(ul_tbf); OSMO_ASSERT(ul_tbf->ul_ack_state_is(GPRS_RLCMAC_UL_ACK_NONE)); - ms = the_bts->ms_by_tlli(tlli); + ms = bts_ms_by_tlli(bts, tlli, GSM_RESERVED_TMSI); OSMO_ASSERT(ms != NULL); OSMO_ASSERT(ms_ta(ms) == qta/4); OSMO_ASSERT(ms_ul_tbf(ms) == ul_tbf); @@ -1410,7 +1396,7 @@ return ul_tbf; } -static gprs_rlcmac_ul_tbf *establish_ul_tbf_two_phase_puan_URBB_with_length(BTS *the_bts, +static gprs_rlcmac_ul_tbf *establish_ul_tbf_two_phase_puan_URBB_with_length(struct gprs_rlcmac_bts *bts, uint8_t ts_no, uint32_t tlli, uint32_t *fn, uint16_t qta, uint8_t ms_class, uint8_t egprs_ms_class, gprs_rlcmac_ul_tbf *ul_tbf) { @@ -1451,7 +1437,7 @@ data[5] = 0x0; data[6] = 0x2b; data[7] = 0x2b; - pdch = &the_bts->bts_data()->trx[trx_no].pdch[ts_no]; + pdch = &bts->trx[trx_no].pdch[ts_no]; pdch->rcv_block(&data[0], sizeof(data), *fn, &meas); } ul_tbf->create_ul_ack(*fn, ts_no); @@ -1476,7 +1462,7 @@ data[6] = 0x2b; data[7] = 0x2b; - pdch = &the_bts->bts_data()->trx[trx_no].pdch[ts_no]; + pdch = &bts->trx[trx_no].pdch[ts_no]; pdch->rcv_block(&data[0], sizeof(data), *fn, &meas); ul_tbf->create_ul_ack(*fn, ts_no); @@ -1485,7 +1471,7 @@ check_tbf(ul_tbf); OSMO_ASSERT(ul_tbf->ul_ack_state_is(GPRS_RLCMAC_UL_ACK_NONE)); - ms = the_bts->ms_by_tlli(tlli); + ms = bts_ms_by_tlli(bts, tlli, GSM_RESERVED_TMSI); OSMO_ASSERT(ms != NULL); OSMO_ASSERT(ms_ta(ms) == qta/4); OSMO_ASSERT(ms_ul_tbf(ms) == ul_tbf); @@ -1493,7 +1479,7 @@ return ul_tbf; } -static gprs_rlcmac_ul_tbf *establish_ul_tbf_two_phase_puan_CRBB(BTS *the_bts, +static gprs_rlcmac_ul_tbf *establish_ul_tbf_two_phase_puan_CRBB(struct gprs_rlcmac_bts *bts, uint8_t ts_no, uint32_t tlli, uint32_t *fn, uint16_t qta, uint8_t ms_class, uint8_t egprs_ms_class) { @@ -1504,7 +1490,7 @@ struct gprs_rlcmac_pdch *pdch; /* check the TBF */ - ul_tbf = the_bts->ul_tbf_by_tfi(tfi, trx_no, ts_no); + ul_tbf = bts_ul_tbf_by_tfi(bts, tfi, trx_no, ts_no); OSMO_ASSERT(ul_tbf); OSMO_ASSERT(ul_tbf->ta() == qta / 4); @@ -1537,7 +1523,7 @@ data[5] = 0x0; data[6] = 0x2b; data[7] = 0x2b; - pdch = &the_bts->bts_data()->trx[trx_no].pdch[ts_no]; + pdch = &bts->trx[trx_no].pdch[ts_no]; pdch->rcv_block(&data[0], sizeof(data), *fn, &meas); } ul_tbf->create_ul_ack(*fn, ts_no); @@ -1562,7 +1548,7 @@ data[6] = 0x2b; data[7] = 0x2b; - pdch = &the_bts->bts_data()->trx[trx_no].pdch[ts_no]; + pdch = &bts->trx[trx_no].pdch[ts_no]; pdch->rcv_block(&data[0], sizeof(data), *fn, &meas); request_dl_rlc_block(ul_tbf, fn); @@ -1570,14 +1556,14 @@ check_tbf(ul_tbf); OSMO_ASSERT(ul_tbf->ul_ack_state_is(GPRS_RLCMAC_UL_ACK_NONE)); - ms = the_bts->ms_by_tlli(tlli); + ms = bts_ms_by_tlli(bts, tlli, GSM_RESERVED_TMSI); OSMO_ASSERT(ms != NULL); OSMO_ASSERT(ms_ta(ms) == qta/4); OSMO_ASSERT(ms_ul_tbf(ms) == ul_tbf); return ul_tbf; } -static gprs_rlcmac_ul_tbf *establish_ul_tbf_two_phase(BTS *the_bts, +static gprs_rlcmac_ul_tbf *establish_ul_tbf_two_phase(struct gprs_rlcmac_bts *bts, uint8_t ts_no, uint32_t tlli, uint32_t *fn, uint16_t qta, uint8_t ms_class, uint8_t egprs_ms_class) { @@ -1588,19 +1574,16 @@ int tfi = 0; gprs_rlcmac_ul_tbf *ul_tbf; struct gprs_rlcmac_pdch *pdch; - gprs_rlcmac_bts *bts; RlcMacUplink_t ulreq = {0}; - bts = the_bts->bts_data(); - /* needed to set last_rts_fn in the PDCH object */ request_dl_rlc_block(bts, trx_no, ts_no, fn); /* simulate RACH, sends an Immediate Assignment Uplink on the AGCH */ - bts_handle_rach(the_bts, 0x73, rach_fn, qta); + bts_handle_rach(bts, 0x73, rach_fn, qta); /* get next free TFI */ - tfi = the_bts->tfi_find_free(GPRS_RLCMAC_UL_TBF, &trx_no, -1); + tfi = bts_tfi_find_free(bts, GPRS_RLCMAC_UL_TBF, &trx_no, -1); /* fake a resource request */ ulreq.u.MESSAGE_TYPE = MT_PACKET_RESOURCE_REQUEST; @@ -1627,10 +1610,10 @@ EGPRS_multislot_class = ms_class; } - send_ul_mac_block(the_bts, trx_no, ts_no, &ulreq, sba_fn); + send_ul_mac_block(bts, trx_no, ts_no, &ulreq, sba_fn); /* check the TBF */ - ul_tbf = the_bts->ul_tbf_by_tfi(tfi, trx_no, ts_no); + ul_tbf = bts_ul_tbf_by_tfi(bts, tfi, trx_no, ts_no); OSMO_ASSERT(ul_tbf != NULL); OSMO_ASSERT(ul_tbf->ta() == qta / 4); @@ -1650,10 +1633,10 @@ uint8_t(1), /* BSN:7, E:1 */ }; - pdch = &the_bts->bts_data()->trx[trx_no].pdch[ts_no]; + pdch = &bts->trx[trx_no].pdch[ts_no]; pdch->rcv_block(&data_msg[0], sizeof(data_msg), *fn, &meas); - ms = the_bts->ms_by_tlli(tlli); + ms = bts_ms_by_tlli(bts, tlli, GSM_RESERVED_TMSI); OSMO_ASSERT(ms != NULL); OSMO_ASSERT(ms_ta(ms) == qta/4); OSMO_ASSERT(ms_ul_tbf(ms) == ul_tbf); @@ -1661,34 +1644,34 @@ return ul_tbf; } -static void send_dl_data(BTS *the_bts, uint32_t tlli, const char *imsi, +static void send_dl_data(struct gprs_rlcmac_bts *bts, uint32_t tlli, const char *imsi, const uint8_t *data, unsigned data_size) { GprsMs *ms, *ms2; - ms = the_bts->ms_store().get_ms(tlli, 0, imsi); + ms = bts_ms_store(bts)->get_ms(tlli, 0, imsi); - gprs_rlcmac_dl_tbf::handle(the_bts->bts_data(), tlli, 0, imsi, 0, 0, + gprs_rlcmac_dl_tbf::handle(bts, tlli, 0, imsi, 0, 0, 1000, data, data_size); - ms = the_bts->ms_by_imsi(imsi); + ms = bts_ms_by_imsi(bts, imsi); OSMO_ASSERT(ms != NULL); OSMO_ASSERT(ms_dl_tbf(ms) != NULL); if (imsi[0] && strcmp(imsi, "000") != 0) { - ms2 = the_bts->ms_by_tlli(tlli); + ms2 = bts_ms_by_tlli(bts, tlli, GSM_RESERVED_TMSI); OSMO_ASSERT(ms == ms2); } } -static void transmit_dl_data(BTS *the_bts, uint32_t tlli, uint32_t *fn, +static void transmit_dl_data(struct gprs_rlcmac_bts *bts, uint32_t tlli, uint32_t *fn, uint8_t slots = 0xff) { gprs_rlcmac_dl_tbf *dl_tbf; GprsMs *ms; unsigned ts_no; - ms = the_bts->ms_by_tlli(tlli); + ms = bts_ms_by_tlli(bts, tlli, GSM_RESERVED_TMSI); OSMO_ASSERT(ms); dl_tbf = ms_dl_tbf(ms); OSMO_ASSERT(dl_tbf); @@ -1698,7 +1681,7 @@ for (ts_no = 0 ; ts_no < 8; ts_no += 1) { if (!(slots & (1 << ts_no))) continue; - gprs_rlcmac_rcv_rts_block(the_bts->bts_data(), + gprs_rlcmac_rcv_rts_block(bts, dl_tbf->trx->trx_no, ts_no, *fn, bn); } @@ -1717,7 +1700,7 @@ { the_pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu->bts = bts_alloc(the_pcu); - BTS *the_bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts = the_pcu->bts; int ts_no = 7; uint32_t fn = DUMMY_FN; /* 17,25,9 */ uint32_t tlli = 0xf1223344; @@ -1727,12 +1710,12 @@ fprintf(stderr, "=== start %s ===\n", __func__); - setup_bts(the_bts, ts_no); + setup_bts(bts, ts_no); - ul_tbf = establish_ul_tbf_single_phase(the_bts, ts_no, tlli, &fn, qta); + ul_tbf = establish_ul_tbf_single_phase(bts, ts_no, tlli, &fn, qta); print_ta_tlli(ul_tbf, true); - send_dl_data(the_bts, tlli, imsi, (const uint8_t *)"TEST", 4); + send_dl_data(bts, tlli, imsi, (const uint8_t *)"TEST", 4); fprintf(stderr, "=== end %s ===\n", __func__); TALLOC_FREE(the_pcu); @@ -1742,7 +1725,7 @@ { the_pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu->bts = bts_alloc(the_pcu); - BTS *the_bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts = the_pcu->bts; int ts_no = 7; uint32_t fn = 2654218; uint16_t qta = 31; @@ -1757,36 +1740,36 @@ memset(test_data, 1, sizeof(test_data)); - setup_bts(the_bts, ts_no, 4); - the_bts->bts_data()->initial_mcs_dl = 9; + setup_bts(bts, ts_no, 4); + bts->initial_mcs_dl = 9; the_pcu->vty.ws_base = 128; the_pcu->vty.ws_pdch = 64; - ul_tbf = establish_ul_tbf(the_bts, ts_no, tlli, &fn, qta, ms_class, egprs_ms_class); + ul_tbf = establish_ul_tbf(bts, ts_no, tlli, &fn, qta, ms_class, egprs_ms_class); /* Function to generate URBB with no length */ - ul_tbf = establish_ul_tbf_two_phase_puan_URBB_no_length(the_bts, ts_no, tlli, &fn, + ul_tbf = establish_ul_tbf_two_phase_puan_URBB_no_length(bts, ts_no, tlli, &fn, qta, ms_class, egprs_ms_class, ul_tbf); print_ta_tlli(ul_tbf, true); - send_dl_data(the_bts, tlli, imsi, test_data, sizeof(test_data)); + send_dl_data(bts, tlli, imsi, test_data, sizeof(test_data)); static_cast(ul_tbf->window())->reset_state(); /* Function to generate URBB with length */ - ul_tbf = establish_ul_tbf_two_phase_puan_URBB_with_length(the_bts, ts_no, tlli, &fn, + ul_tbf = establish_ul_tbf_two_phase_puan_URBB_with_length(bts, ts_no, tlli, &fn, qta, ms_class, egprs_ms_class, ul_tbf); print_ta_tlli(ul_tbf, true); - send_dl_data(the_bts, tlli, imsi, test_data, sizeof(test_data)); + send_dl_data(bts, tlli, imsi, test_data, sizeof(test_data)); static_cast(ul_tbf->window())->reset_state(); /* Function to generate CRBB */ the_pcu->vty.ws_base = 128; the_pcu->vty.ws_pdch = 64; - ul_tbf = establish_ul_tbf_two_phase_puan_CRBB(the_bts, ts_no, tlli, &fn, + ul_tbf = establish_ul_tbf_two_phase_puan_CRBB(bts, ts_no, tlli, &fn, qta, ms_class, egprs_ms_class); print_ta_tlli(ul_tbf, true); - send_dl_data(the_bts, tlli, imsi, test_data, sizeof(test_data)); + send_dl_data(bts, tlli, imsi, test_data, sizeof(test_data)); TALLOC_FREE(the_pcu); fprintf(stderr, "=== end %s ===\n", __func__); @@ -1798,16 +1781,16 @@ { the_pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu->bts = bts_alloc(the_pcu); - BTS *the_bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts = the_pcu->bts; uint32_t fn = 2654218; uint16_t qta = 31; int ts_no = 7; fprintf(stderr, "=== start %s ===\n", __func__); - setup_bts(the_bts, ts_no, 4); + setup_bts(bts, ts_no, 4); - the_bts->bts_data()->trx[0].pdch[ts_no].disable(); + bts->trx[0].pdch[ts_no].disable(); uint32_t rach_fn = fn - 51; @@ -1817,7 +1800,7 @@ * simulate RACH, sends an Immediate Assignment * Uplink reject on the AGCH */ - rc = bts_handle_rach(the_bts, 0x70, rach_fn, qta); + rc = bts_handle_rach(bts, 0x70, rach_fn, qta); OSMO_ASSERT(rc == -EINVAL); @@ -1832,14 +1815,14 @@ { the_pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu->bts = bts_alloc(the_pcu); - BTS *the_bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts = the_pcu->bts; uint32_t fn = 2654218; uint16_t qta = 31; int ts_no = 7; fprintf(stderr, "=== start %s ===\n", __func__); - setup_bts(the_bts, ts_no, 4); + setup_bts(bts, ts_no, 4); uint32_t rach_fn = fn - 51; @@ -1849,14 +1832,14 @@ * simulate RACH, sends an Immediate Assignment Uplink * reject on the AGCH */ - rc = bts_handle_rach(the_bts, 0x78, rach_fn, qta); - rc = bts_handle_rach(the_bts, 0x79, rach_fn, qta); - rc = bts_handle_rach(the_bts, 0x7a, rach_fn, qta); - rc = bts_handle_rach(the_bts, 0x7b, rach_fn, qta); - rc = bts_handle_rach(the_bts, 0x7c, rach_fn, qta); - rc = bts_handle_rach(the_bts, 0x7d, rach_fn, qta); - rc = bts_handle_rach(the_bts, 0x7e, rach_fn, qta); - rc = bts_handle_rach(the_bts, 0x7f, rach_fn, qta); + rc = bts_handle_rach(bts, 0x78, rach_fn, qta); + rc = bts_handle_rach(bts, 0x79, rach_fn, qta); + rc = bts_handle_rach(bts, 0x7a, rach_fn, qta); + rc = bts_handle_rach(bts, 0x7b, rach_fn, qta); + rc = bts_handle_rach(bts, 0x7c, rach_fn, qta); + rc = bts_handle_rach(bts, 0x7d, rach_fn, qta); + rc = bts_handle_rach(bts, 0x7e, rach_fn, qta); + rc = bts_handle_rach(bts, 0x7f, rach_fn, qta); OSMO_ASSERT(rc == -EBUSY); @@ -1874,7 +1857,7 @@ { the_pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu->bts = bts_alloc(the_pcu); - BTS *the_bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts = the_pcu->bts; int ts_no = 7; uint32_t fn = 2654218; uint16_t qta = 31; @@ -1885,13 +1868,13 @@ fprintf(stderr, "=== start %s ===\n", __func__); - setup_bts(the_bts, ts_no, 4); + setup_bts(bts, ts_no, 4); - ul_tbf = establish_ul_tbf_two_phase(the_bts, ts_no, tlli, &fn, qta, + ul_tbf = establish_ul_tbf_two_phase(bts, ts_no, tlli, &fn, qta, ms_class, 0); print_ta_tlli(ul_tbf, true); - send_dl_data(the_bts, tlli, imsi, (const uint8_t *)"TEST", 4); + send_dl_data(bts, tlli, imsi, (const uint8_t *)"TEST", 4); TALLOC_FREE(the_pcu); fprintf(stderr, "=== end %s ===\n", __func__); @@ -1907,7 +1890,7 @@ { the_pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu->bts = bts_alloc(the_pcu); - BTS *the_bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts = the_pcu->bts; int ts_no = 7; uint32_t fn = 2654218; uint16_t qta = 31; @@ -1920,15 +1903,15 @@ fprintf(stderr, "=== start %s ===\n", __func__); - setup_bts(the_bts, ts_no, 4); + setup_bts(bts, ts_no, 4); - ul_tbf = establish_ul_tbf_two_phase(the_bts, ts_no, tlli1, &fn, qta, + ul_tbf = establish_ul_tbf_two_phase(bts, ts_no, tlli1, &fn, qta, ms_class, 0); ms1 = ul_tbf->ms(); print_ta_tlli(ul_tbf, false); - send_dl_data(the_bts, tlli1, imsi, (const uint8_t *)"RAU_ACCEPT", 10); + send_dl_data(bts, tlli1, imsi, (const uint8_t *)"RAU_ACCEPT", 10); print_ms(ms1, true); /* Send Packet Downlink Assignment to MS */ @@ -1939,11 +1922,11 @@ /* Make sure the RAU Accept gets sent to the MS */ OSMO_ASSERT(llc_queue_size(ms_llc_queue(ms1)) == 1); - transmit_dl_data(the_bts, tlli1, &fn); + transmit_dl_data(bts, tlli1, &fn); OSMO_ASSERT(llc_queue_size(ms_llc_queue(ms1)) == 0); /* Now establish a new TBF for the RA UPDATE COMPLETE (new TLLI) */ - ul_tbf = establish_ul_tbf_two_phase(the_bts, ts_no, tlli2, &fn, qta, + ul_tbf = establish_ul_tbf_two_phase(bts, ts_no, tlli2, &fn, qta, ms_class, 0); ms2 = ul_tbf->ms(); @@ -1954,16 +1937,16 @@ /* Send some downlink data along with the new TLLI and the IMSI so that * the PCU can see, that both MS objects belong to same MS */ - send_dl_data(the_bts, tlli2, imsi, (const uint8_t *)"DATA", 4); + send_dl_data(bts, tlli2, imsi, (const uint8_t *)"DATA", 4); - ms = the_bts->ms_by_imsi(imsi); + ms = bts_ms_by_imsi(bts, imsi); OSMO_ASSERT(ms == ms2); print_ms(ms2, false); - ms = the_bts->ms_by_tlli(tlli1); + ms = bts_ms_by_tlli(bts, tlli1, GSM_RESERVED_TMSI); OSMO_ASSERT(ms == NULL); - ms = the_bts->ms_by_tlli(tlli2); + ms = bts_ms_by_tlli(bts, tlli2, GSM_RESERVED_TMSI); OSMO_ASSERT(ms == ms2); TALLOC_FREE(the_pcu); @@ -1974,7 +1957,7 @@ { the_pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu->bts = bts_alloc(the_pcu); - BTS *the_bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts = the_pcu->bts; int ts_no = 7; uint32_t fn = 2654218; uint16_t qta = 31; @@ -1987,16 +1970,16 @@ fprintf(stderr, "=== start %s ===\n", __func__); - setup_bts(the_bts, ts_no, 1); + setup_bts(bts, ts_no, 1); - ul_tbf = establish_ul_tbf_two_phase(the_bts, ts_no, tlli1, &fn, qta, + ul_tbf = establish_ul_tbf_two_phase(bts, ts_no, tlli1, &fn, qta, ms_class, 0); ms1 = ul_tbf->ms(); print_ta_tlli(ul_tbf, false); - send_dl_data(the_bts, tlli1, imsi, (const uint8_t *)"DATA 1 *************", 20); - send_dl_data(the_bts, tlli1, imsi, (const uint8_t *)"DATA 2 *************", 20); + send_dl_data(bts, tlli1, imsi, (const uint8_t *)"DATA 1 *************", 20); + send_dl_data(bts, tlli1, imsi, (const uint8_t *)"DATA 2 *************", 20); print_ms(ms1, true); OSMO_ASSERT(llc_queue_size(ms_llc_queue(ms1)) == 2); @@ -2005,11 +1988,11 @@ /* Get rid of old UL TBF */ tbf_free(ul_tbf); - ms = the_bts->ms_by_tlli(tlli1); + ms = bts_ms_by_tlli(bts, tlli1, GSM_RESERVED_TMSI); OSMO_ASSERT(ms1 == ms); /* Now establish a new UL TBF, this will consume one LLC packet */ - ul_tbf = establish_ul_tbf_two_phase(the_bts, ts_no, tlli1, &fn, qta, + ul_tbf = establish_ul_tbf_two_phase(bts, ts_no, tlli1, &fn, qta, ms_class, 0); ms2 = ul_tbf->ms(); @@ -2018,7 +2001,7 @@ /* This should be the same MS object */ OSMO_ASSERT(ms2 == ms1); - ms = the_bts->ms_by_tlli(tlli1); + ms = bts_ms_by_tlli(bts, tlli1, GSM_RESERVED_TMSI); OSMO_ASSERT(ms2 == ms); /* A DL TBF should still exist */ @@ -2036,7 +2019,7 @@ { the_pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu->bts = bts_alloc(the_pcu); - BTS *the_bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts = the_pcu->bts; int ts_no = 7; uint32_t fn = 2654218; uint16_t qta = 31; @@ -2049,16 +2032,16 @@ fprintf(stderr, "=== start %s ===\n", __func__); - setup_bts(the_bts, ts_no, 1); + setup_bts(bts, ts_no, 1); - ul_tbf = establish_ul_tbf_two_phase(the_bts, ts_no, tlli1, &fn, qta, + ul_tbf = establish_ul_tbf_two_phase(bts, ts_no, tlli1, &fn, qta, ms_class, 0); ms1 = ul_tbf->ms(); print_ta_tlli(ul_tbf, false); - send_dl_data(the_bts, tlli1, imsi, (const uint8_t *)"DATA 1 *************", 20); - send_dl_data(the_bts, tlli1, imsi, (const uint8_t *)"DATA 2 *************", 20); + send_dl_data(bts, tlli1, imsi, (const uint8_t *)"DATA 1 *************", 20); + send_dl_data(bts, tlli1, imsi, (const uint8_t *)"DATA 2 *************", 20); print_ms(ms1, true); OSMO_ASSERT(llc_queue_size(ms_llc_queue(ms1)) == 2); @@ -2067,11 +2050,11 @@ /* Get rid of old UL TBF */ tbf_free(ul_tbf); - ms = the_bts->ms_by_tlli(tlli1); + ms = bts_ms_by_tlli(bts, tlli1, GSM_RESERVED_TMSI); OSMO_ASSERT(ms1 == ms); /* Now establish a new UL TBF */ - ul_tbf = establish_ul_tbf_single_phase(the_bts, ts_no, tlli1, &fn, qta); + ul_tbf = establish_ul_tbf_single_phase(bts, ts_no, tlli1, &fn, qta); ms2 = ul_tbf->ms(); print_ms(ms2, false); @@ -2079,7 +2062,7 @@ /* There should be a different MS object */ OSMO_ASSERT(ms2 != ms1); - ms = the_bts->ms_by_tlli(tlli1); + ms = bts_ms_by_tlli(bts, tlli1, GSM_RESERVED_TMSI); OSMO_ASSERT(ms2 == ms); OSMO_ASSERT(ms1 != ms); @@ -2097,7 +2080,7 @@ { the_pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu->bts = bts_alloc(the_pcu); - BTS *the_bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts = the_pcu->bts; int ts_no = 7; uint32_t fn = 2654218; uint16_t qta = 31; @@ -2112,9 +2095,9 @@ fprintf(stderr, "=== start %s ===\n", __func__); - setup_bts(the_bts, ts_no, 1); + setup_bts(bts, ts_no, 1); - ul_tbf = establish_ul_tbf_two_phase(the_bts, ts_no, tlli1, &fn, qta, + ul_tbf = establish_ul_tbf_two_phase(bts, ts_no, tlli1, &fn, qta, ms_class, 0); ms1 = ul_tbf->ms(); @@ -2128,7 +2111,7 @@ rc = snprintf(buf, sizeof(buf), "LLC PACKET %02i", i); OSMO_ASSERT(rc > 0); - send_dl_data(the_bts, tlli1, imsi, (const uint8_t *)buf, rc); + send_dl_data(bts, tlli1, imsi, (const uint8_t *)buf, rc); } print_ms(ms1, true); @@ -2140,7 +2123,7 @@ send_control_ack(ul_tbf); /* Transmit all data */ - transmit_dl_data(the_bts, tlli1, &fn); + transmit_dl_data(bts, tlli1, &fn); OSMO_ASSERT(llc_queue_size(ms_llc_queue(ms1)) == 0); OSMO_ASSERT(ms_dl_tbf(ms1)); OSMO_ASSERT(ms_dl_tbf(ms1)->state_is(GPRS_RLCMAC_FINISHED)); @@ -2155,7 +2138,7 @@ rc = snprintf(buf, sizeof(buf), "LLC PACKET %02i (TBF 2)", i); OSMO_ASSERT(rc > 0); - send_dl_data(the_bts, tlli1, imsi, (const uint8_t *)buf, rc); + send_dl_data(bts, tlli1, imsi, (const uint8_t *)buf, rc); } /* Fake Final DL Ack/Nack */ @@ -2166,13 +2149,13 @@ ack->DOWNLINK_TFI = dl_tbf1->tfi(); ack->Ack_Nack_Description.FINAL_ACK_INDICATION = 1; - send_ul_mac_block(the_bts, 0, dl_tbf1->poll_ts, &ulreq, dl_tbf1->poll_fn); + send_ul_mac_block(bts, 0, dl_tbf1->poll_ts, &ulreq, dl_tbf1->poll_fn); OSMO_ASSERT(dl_tbf1->state_is(GPRS_RLCMAC_WAIT_RELEASE)); request_dl_rlc_block(dl_tbf1, &fn); - ms2 = the_bts->ms_by_tlli(tlli1); + ms2 = bts_ms_by_tlli(bts, tlli1, GSM_RESERVED_TMSI); OSMO_ASSERT(ms2 == ms1); OSMO_ASSERT(ms_dl_tbf(ms2)); OSMO_ASSERT(ms_dl_tbf(ms2)->state_is(GPRS_RLCMAC_ASSIGN)); @@ -2185,7 +2168,7 @@ OSMO_ASSERT(dl_tbf2->state_is(GPRS_RLCMAC_FLOW)); /* Transmit all data */ - transmit_dl_data(the_bts, tlli1, &fn); + transmit_dl_data(bts, tlli1, &fn); OSMO_ASSERT(llc_queue_size(ms_llc_queue(ms2)) == 0); OSMO_ASSERT(ms_dl_tbf(ms2)); OSMO_ASSERT(ms_dl_tbf(ms2)->state_is(GPRS_RLCMAC_FINISHED)); @@ -2198,8 +2181,7 @@ { the_pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu->bts = bts_alloc(the_pcu); - BTS *the_bts = the_pcu->bts; - gprs_rlcmac_bts *bts; + struct gprs_rlcmac_bts *bts = the_pcu->bts; uint8_t ts_no = 4; uint8_t ms_class = 45; int rc = 0; @@ -2211,14 +2193,13 @@ fprintf(stderr, "=== start %s ===\n", __func__); - bts = the_bts->bts_data(); - the_bts->pcu->nsi = gprs_ns2_instantiate(tall_pcu_ctx, gprs_ns_prim_cb, NULL); - if (!the_bts->pcu->nsi) { + bts->pcu->nsi = gprs_ns2_instantiate(tall_pcu_ctx, gprs_ns_prim_cb, NULL); + if (!bts->pcu->nsi) { LOGP(DBSSGP, LOGL_ERROR, "Failed to create NS instance\n"); abort(); } - setup_bts(the_bts, ts_no); + setup_bts(bts, ts_no); /* EGPRS-only */ @@ -2238,7 +2219,7 @@ static inline void ws_check(gprs_rlcmac_dl_tbf *dl_tbf, const char *test, uint8_t exp_slots, uint16_t exp_ws, bool free, bool end) { - gprs_rlcmac_bts *bts = dl_tbf->bts->bts_data(); + gprs_rlcmac_bts *bts = dl_tbf->bts; if (!dl_tbf) { fprintf(stderr, "%s(): FAILED (NULL TBF)\n", test); return; @@ -2268,8 +2249,7 @@ { the_pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu->bts = bts_alloc(the_pcu); - BTS *the_bts = the_pcu->bts; - gprs_rlcmac_bts *bts; + struct gprs_rlcmac_bts *bts = the_pcu->bts; GprsMs *ms; uint8_t ts_no = 4; uint8_t ms_class = 12; @@ -2277,14 +2257,13 @@ fprintf(stderr, "=== start %s ===\n", __func__); - bts = the_bts->bts_data(); - the_bts->pcu->nsi = gprs_ns2_instantiate(tall_pcu_ctx, gprs_ns_prim_cb, NULL); - if (!the_bts->pcu->nsi) { + bts->pcu->nsi = gprs_ns2_instantiate(tall_pcu_ctx, gprs_ns_prim_cb, NULL); + if (!bts->pcu->nsi) { LOGP(DBSSGP, LOGL_ERROR, "Failed to create NS instance\n"); abort(); } - setup_bts(the_bts, ts_no); + setup_bts(bts, ts_no); the_pcu->vty.ws_base = 128; the_pcu->vty.ws_pdch = 64; @@ -2297,7 +2276,7 @@ gprs_bssgp_init(bts, 4234, 4234, 1, 1, false, 0, 0, 0); /* Does no support EGPRS */ - ms = the_bts->ms_alloc(ms_class, 0); + ms = bts_alloc_ms(bts, ms_class, 0); dl_tbf = tbf_alloc_dl_tbf(bts, ms, 0, false); ws_check(dl_tbf, __func__, 4, 64, true, false); @@ -2305,7 +2284,7 @@ /* EGPRS-only */ /* Does support EGPRS */ - ms = the_bts->ms_alloc(ms_class, ms_class); + ms = bts_alloc_ms(bts, ms_class, ms_class); dl_tbf = tbf_alloc_dl_tbf(bts, ms, 0, false); ws_check(dl_tbf, __func__, 4, 128 + 4 * 64, true, true); @@ -2316,8 +2295,7 @@ { the_pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu->bts = bts_alloc(the_pcu); - BTS *the_bts = the_pcu->bts; - gprs_rlcmac_bts *bts; + struct gprs_rlcmac_bts *bts = the_pcu->bts; GprsMs *ms; uint8_t ts_no = 4; uint8_t ms_class = 11; @@ -2325,14 +2303,13 @@ fprintf(stderr, "=== start %s ===\n", __func__); - bts = the_bts->bts_data(); - the_bts->pcu->nsi = gprs_ns2_instantiate(tall_pcu_ctx, gprs_ns_prim_cb, NULL); - if (!the_bts->pcu->nsi) { + bts->pcu->nsi = gprs_ns2_instantiate(tall_pcu_ctx, gprs_ns_prim_cb, NULL); + if (!bts->pcu->nsi) { LOGP(DBSSGP, LOGL_ERROR, "Failed to create NS instance\n"); abort(); } - setup_bts(the_bts, ts_no); + setup_bts(bts, ts_no); the_pcu->vty.ws_base = 128; the_pcu->vty.ws_pdch = 64; @@ -2347,7 +2324,7 @@ /* EGPRS-only */ /* Does support EGPRS */ - ms = the_bts->ms_alloc(ms_class, ms_class); + ms = bts_alloc_ms(bts, ms_class, ms_class); dl_tbf = tbf_alloc_dl_tbf(bts, ms, 0, true); ws_check(dl_tbf, __func__, 1, 128 + 1 * 64, false, false); @@ -2363,7 +2340,7 @@ { the_pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu->bts = bts_alloc(the_pcu); - BTS *the_bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts = the_pcu->bts; int ts_no = 7; uint32_t fn = 2654218; uint16_t qta = 31; @@ -2378,20 +2355,20 @@ memset(test_data, 1, sizeof(test_data)); - setup_bts(the_bts, ts_no, 4); - the_bts->bts_data()->initial_mcs_dl = 9; + setup_bts(bts, ts_no, 4); + bts->initial_mcs_dl = 9; - ul_tbf = puan_urbb_len_issue(the_bts, ts_no, tlli, &fn, qta, + ul_tbf = puan_urbb_len_issue(bts, ts_no, tlli, &fn, qta, ms_class, egprs_ms_class); print_ta_tlli(ul_tbf, true); - send_dl_data(the_bts, tlli, imsi, test_data, sizeof(test_data)); + send_dl_data(bts, tlli, imsi, test_data, sizeof(test_data)); TALLOC_FREE(the_pcu); fprintf(stderr, "=== end %s ===\n", __func__); } -static gprs_rlcmac_ul_tbf *tbf_li_decoding(BTS *the_bts, +static gprs_rlcmac_ul_tbf *tbf_li_decoding(struct gprs_rlcmac_bts *bts, uint8_t ts_no, uint32_t tlli, uint32_t *fn, uint16_t qta, uint8_t ms_class, uint8_t egprs_ms_class) { @@ -2402,15 +2379,12 @@ int tfi = 0; gprs_rlcmac_ul_tbf *ul_tbf; struct gprs_rlcmac_pdch *pdch; - gprs_rlcmac_bts *bts; RlcMacUplink_t ulreq = {0}; struct gprs_rlc_ul_header_egprs_3 *egprs3 = NULL; Packet_Resource_Request_t *presreq = NULL; MS_Radio_Access_capability_t *pmsradiocap = NULL; Multislot_capability_t *pmultislotcap = NULL; - bts = the_bts->bts_data(); - /* needed to set last_rts_fn in the PDCH object */ request_dl_rlc_block(bts, trx_no, ts_no, fn); @@ -2418,10 +2392,10 @@ * simulate RACH, this sends an Immediate * Assignment Uplink on the AGCH */ - bts_handle_rach(the_bts, 0x73, rach_fn, qta); + bts_handle_rach(bts, 0x73, rach_fn, qta); /* get next free TFI */ - tfi = the_bts->tfi_find_free(GPRS_RLCMAC_UL_TBF, &trx_no, -1); + tfi = bts_tfi_find_free(bts, GPRS_RLCMAC_UL_TBF, &trx_no, -1); /* fake a resource request */ ulreq.u.MESSAGE_TYPE = MT_PACKET_RESOURCE_REQUEST; @@ -2444,10 +2418,10 @@ pmultislotcap->EGPRS_multislot_class = ms_class; } - send_ul_mac_block(the_bts, trx_no, ts_no, &ulreq, sba_fn); + send_ul_mac_block(bts, trx_no, ts_no, &ulreq, sba_fn); /* check the TBF */ - ul_tbf = the_bts->ul_tbf_by_tfi(tfi, trx_no, ts_no); + ul_tbf = bts_ul_tbf_by_tfi(bts, tfi, trx_no, ts_no); OSMO_ASSERT(ul_tbf); OSMO_ASSERT(ul_tbf->ta() == qta / 4); @@ -2462,9 +2436,9 @@ uint8_t data_msg[49] = {0}; - pdch = &the_bts->bts_data()->trx[trx_no].pdch[ts_no]; + pdch = &bts->trx[trx_no].pdch[ts_no]; - ms = the_bts->ms_by_tlli(tlli); + ms = bts_ms_by_tlli(bts, tlli, GSM_RESERVED_TMSI); OSMO_ASSERT(ms != NULL); OSMO_ASSERT(ms_ta(ms) == qta/4); OSMO_ASSERT(ms_ul_tbf(ms) == ul_tbf); @@ -2506,7 +2480,7 @@ { the_pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu->bts = bts_alloc(the_pcu); - BTS *the_bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts = the_pcu->bts; int ts_no = 7; uint32_t fn = 2654218; uint16_t qta = 31; @@ -2521,14 +2495,14 @@ memset(test_data, 1, sizeof(test_data)); - setup_bts(the_bts, ts_no, 4); - the_bts->bts_data()->initial_mcs_dl = 9; + setup_bts(bts, ts_no, 4); + bts->initial_mcs_dl = 9; - ul_tbf = tbf_li_decoding(the_bts, ts_no, tlli, &fn, qta, + ul_tbf = tbf_li_decoding(bts, ts_no, tlli, &fn, qta, ms_class, egprs_ms_class); print_ta_tlli(ul_tbf, true); - send_dl_data(the_bts, tlli, imsi, test_data, sizeof(test_data)); + send_dl_data(bts, tlli, imsi, test_data, sizeof(test_data)); TALLOC_FREE(the_pcu); fprintf(stderr, "=== end %s ===\n", __func__); @@ -2543,7 +2517,7 @@ { the_pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu->bts = bts_alloc(the_pcu); - BTS *the_bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts = the_pcu->bts; uint8_t ms_class = 11; uint8_t egprs_ms_class = 11; uint8_t trx_no; @@ -2564,7 +2538,7 @@ fprintf(stderr, "=== start %s ===\n", __func__); - setup_bts(the_bts, ts_no); + setup_bts(bts, ts_no); OSMO_ASSERT(osmo_tdef_set(the_pcu->T_defs, -2031, 200, OSMO_TDEF_MS) == 0); /* ARQ II */ the_pcu->vty.dl_arq_type = EGPRS_ARQ2; @@ -2579,7 +2553,7 @@ 0xff, 0xff, 0xfb, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; - dl_tbf = create_dl_tbf(the_bts, ms_class, egprs_ms_class, &trx_no); + dl_tbf = create_dl_tbf(bts, ms_class, egprs_ms_class, &trx_no); dl_tbf->update_ms(tlli, GPRS_RLCMAC_DL_TBF); prlcdlwindow = static_cast(dl_tbf->window()); prlcmvb = &prlcdlwindow->m_v_b; @@ -2635,7 +2609,7 @@ { the_pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu->bts = bts_alloc(the_pcu); - BTS *the_bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts = the_pcu->bts; int ts_no = 7; uint32_t fn = 2654218; uint16_t qta = 31; @@ -2650,14 +2624,14 @@ memset(test_data, 1, sizeof(test_data)); - setup_bts(the_bts, ts_no, 4); - the_bts->bts_data()->initial_mcs_dl = 9; + setup_bts(bts, ts_no, 4); + bts->initial_mcs_dl = 9; - ul_tbf = establish_ul_tbf_two_phase_spb(the_bts, ts_no, tlli, &fn, qta, + ul_tbf = establish_ul_tbf_two_phase_spb(bts, ts_no, tlli, &fn, qta, ms_class, egprs_ms_class); print_ta_tlli(ul_tbf, true); - send_dl_data(the_bts, tlli, imsi, test_data, sizeof(test_data)); + send_dl_data(bts, tlli, imsi, test_data, sizeof(test_data)); TALLOC_FREE(the_pcu); fprintf(stderr, "=== end %s ===\n", __func__); @@ -2667,7 +2641,7 @@ { the_pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu->bts = bts_alloc(the_pcu); - BTS *the_bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts = the_pcu->bts; int ts_no = 7; uint32_t fn = 2654218; uint16_t qta = 31; @@ -2682,20 +2656,20 @@ memset(test_data, 1, sizeof(test_data)); - setup_bts(the_bts, ts_no, 4); - the_bts->bts_data()->initial_mcs_dl = 9; + setup_bts(bts, ts_no, 4); + bts->initial_mcs_dl = 9; - ul_tbf = establish_ul_tbf_two_phase(the_bts, ts_no, tlli, &fn, qta, + ul_tbf = establish_ul_tbf_two_phase(bts, ts_no, tlli, &fn, qta, ms_class, egprs_ms_class); print_ta_tlli(ul_tbf, true); - send_dl_data(the_bts, tlli, imsi, test_data, sizeof(test_data)); + send_dl_data(bts, tlli, imsi, test_data, sizeof(test_data)); TALLOC_FREE(the_pcu); fprintf(stderr, "=== end %s ===\n", __func__); } -static void establish_and_use_egprs_dl_tbf(BTS *the_bts, int mcs) +static void establish_and_use_egprs_dl_tbf(struct gprs_rlcmac_bts *bts, int mcs) { unsigned i; uint8_t ms_class = 11; @@ -2712,9 +2686,9 @@ fprintf(stderr, "Testing MCS-%d\n", mcs); memset(test_data, 1, sizeof(test_data)); - the_bts->bts_data()->initial_mcs_dl = mcs; + bts->initial_mcs_dl = mcs; - dl_tbf = create_dl_tbf(the_bts, ms_class, egprs_ms_class, &trx_no); + dl_tbf = create_dl_tbf(bts, ms_class, egprs_ms_class, &trx_no); dl_tbf->update_ms(tlli, GPRS_RLCMAC_DL_TBF); for (i = 0; i < sizeof(llc_data); i++) @@ -2753,7 +2727,7 @@ tbf_free(dl_tbf); } -static gprs_rlcmac_dl_tbf *tbf_init(BTS *the_bts, +static gprs_rlcmac_dl_tbf *tbf_init(struct gprs_rlcmac_bts *bts, int mcs) { unsigned i; @@ -2766,9 +2740,9 @@ gprs_rlcmac_dl_tbf *dl_tbf; memset(test_data, 1, sizeof(test_data)); - the_bts->bts_data()->initial_mcs_dl = mcs; + bts->initial_mcs_dl = mcs; - dl_tbf = create_dl_tbf(the_bts, ms_class, egprs_ms_class, &trx_no); + dl_tbf = create_dl_tbf(bts, ms_class, egprs_ms_class, &trx_no); dl_tbf->update_ms(tlli, GPRS_RLCMAC_DL_TBF); for (i = 0; i < sizeof(test_data); i++) @@ -2830,7 +2804,7 @@ CHECK_NACKED(tbf, cs, 0); \ } while(0) -static void egprs_spb_to_normal_validation(BTS *the_bts, +static void egprs_spb_to_normal_validation(struct gprs_rlcmac_bts *bts, unsigned int mcs, unsigned int demanded_mcs) { uint32_t fn = 0; @@ -2842,7 +2816,7 @@ fprintf(stderr, "Testing retx for MCS %u to reseg_mcs %u\n", mcs, demanded_mcs); - dl_tbf = tbf_init(the_bts, mcs); + dl_tbf = tbf_init(bts, mcs); /* * Table 10.4.8a.3.1 of 44.060. @@ -2908,7 +2882,7 @@ tbf_cleanup(dl_tbf); } -static void establish_and_use_egprs_dl_tbf_for_spb(BTS *the_bts, +static void establish_and_use_egprs_dl_tbf_for_spb(struct gprs_rlcmac_bts *bts, unsigned int mcs, unsigned int demanded_mcs) { uint32_t fn = 0; @@ -2918,7 +2892,7 @@ fprintf(stderr, "Testing retx for MCS %u to reseg_mcs %u\n", mcs, demanded_mcs); - dl_tbf = tbf_init(the_bts, mcs); + dl_tbf = tbf_init(bts, mcs); /* * Table 10.4.8a.3.1 of 44.060. @@ -2995,7 +2969,7 @@ tbf_cleanup(dl_tbf); } -static void establish_and_use_egprs_dl_tbf_for_retx(BTS *the_bts, +static void establish_and_use_egprs_dl_tbf_for_retx(struct gprs_rlcmac_bts *bts, unsigned int mcs, unsigned int demanded_mcs) { uint32_t fn = 0; @@ -3004,7 +2978,7 @@ fprintf(stderr, "Testing retx for MCS %u - %u\n", mcs, demanded_mcs); - dl_tbf = tbf_init(the_bts, mcs); + dl_tbf = tbf_init(bts, mcs); /* For MCS reduction cases like MCS9->MCS6, MCS7->MCS5 * The MCS transition are referred from table Table 8.1.1.2 @@ -3091,26 +3065,26 @@ { the_pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu->bts = bts_alloc(the_pcu); - BTS *the_bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts = the_pcu->bts; uint8_t ts_no = 4; fprintf(stderr, "=== start %s ===\n", __func__); the_pcu->vty.cs_downgrade_threshold = 0; - setup_bts(the_bts, ts_no); + setup_bts(bts, ts_no); OSMO_ASSERT(osmo_tdef_set(the_pcu->T_defs, -2031, 200, OSMO_TDEF_MS) == 0); /* ARQ II */ the_pcu->vty.dl_arq_type = EGPRS_ARQ2; /* First parameter is current MCS, second one is demanded_mcs */ - establish_and_use_egprs_dl_tbf_for_retx(the_bts, 6, 6); - establish_and_use_egprs_dl_tbf_for_retx(the_bts, 1, 9); - establish_and_use_egprs_dl_tbf_for_retx(the_bts, 2, 8); - establish_and_use_egprs_dl_tbf_for_retx(the_bts, 5, 7); - establish_and_use_egprs_dl_tbf_for_retx(the_bts, 6, 9); - establish_and_use_egprs_dl_tbf_for_retx(the_bts, 7, 5); - establish_and_use_egprs_dl_tbf_for_retx(the_bts, 9, 6); + establish_and_use_egprs_dl_tbf_for_retx(bts, 6, 6); + establish_and_use_egprs_dl_tbf_for_retx(bts, 1, 9); + establish_and_use_egprs_dl_tbf_for_retx(bts, 2, 8); + establish_and_use_egprs_dl_tbf_for_retx(bts, 5, 7); + establish_and_use_egprs_dl_tbf_for_retx(bts, 6, 9); + establish_and_use_egprs_dl_tbf_for_retx(bts, 7, 5); + establish_and_use_egprs_dl_tbf_for_retx(bts, 9, 6); TALLOC_FREE(the_pcu); fprintf(stderr, "=== end %s ===\n", __func__); @@ -3120,13 +3094,13 @@ { the_pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu->bts = bts_alloc(the_pcu); - BTS *the_bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts = the_pcu->bts; uint8_t ts_no = 4; fprintf(stderr, "=== start %s ===\n", __func__); the_pcu->vty.cs_downgrade_threshold = 0; - setup_bts(the_bts, ts_no); + setup_bts(bts, ts_no); OSMO_ASSERT(osmo_tdef_set(the_pcu->T_defs, -2031, 200, OSMO_TDEF_MS) == 0); /* ARQ I resegmentation support */ @@ -3137,11 +3111,11 @@ * currently only MCS5->MCS2, MCS6->3, MCS4->MCS1 is tested in UT * rest scenarios has been integration tested */ - establish_and_use_egprs_dl_tbf_for_spb(the_bts, 6, 3); - establish_and_use_egprs_dl_tbf_for_spb(the_bts, 5, 2); - establish_and_use_egprs_dl_tbf_for_spb(the_bts, 4, 1); + establish_and_use_egprs_dl_tbf_for_spb(bts, 6, 3); + establish_and_use_egprs_dl_tbf_for_spb(bts, 5, 2); + establish_and_use_egprs_dl_tbf_for_spb(bts, 4, 1); /* check MCS6->(MCS3+MCS3)->MCS6 case */ - egprs_spb_to_normal_validation(the_bts, 6, 3); + egprs_spb_to_normal_validation(bts, 6, 3); TALLOC_FREE(the_pcu); fprintf(stderr, "=== end %s ===\n", __func__); @@ -3151,19 +3125,19 @@ { the_pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu->bts = bts_alloc(the_pcu); - BTS *the_bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts = the_pcu->bts; uint8_t ts_no = 4; int i; fprintf(stderr, "=== start %s ===\n", __func__); - setup_bts(the_bts, ts_no); + setup_bts(bts, ts_no); OSMO_ASSERT(osmo_tdef_set(the_pcu->T_defs, -2031, 200, OSMO_TDEF_MS) == 0); /* ARQ II */ the_pcu->vty.dl_arq_type = EGPRS_ARQ2; for (i = 1; i <= 9; i++) - establish_and_use_egprs_dl_tbf(the_bts, i); + establish_and_use_egprs_dl_tbf(bts, i); TALLOC_FREE(the_pcu); fprintf(stderr, "=== end %s ===\n", __func__); @@ -3175,7 +3149,7 @@ { the_pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu->bts = bts_alloc(the_pcu); - BTS *the_bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts = the_pcu->bts; uint32_t fn = 2654218; int ts_no = 7; uint8_t trx_no = 0; @@ -3184,11 +3158,11 @@ fprintf(stderr, "=== start %s ===\n", __func__); - setup_bts(the_bts, ts_no, 4); + setup_bts(bts, ts_no, 4); int rc = 0; - ul_tbf = handle_tbf_reject(the_bts->bts_data(), NULL, tlli, + ul_tbf = handle_tbf_reject(bts, NULL, tlli, trx_no, ts_no); OSMO_ASSERT(ul_tbf != 0); @@ -3196,7 +3170,7 @@ /* trigger packet access reject */ uint8_t bn = fn2bn(fn); - rc = gprs_rlcmac_rcv_rts_block(the_bts->bts_data(), + rc = gprs_rlcmac_rcv_rts_block(bts, trx_no, ts_no, fn, bn); OSMO_ASSERT(rc == 0); @@ -3211,7 +3185,7 @@ { the_pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu->bts = bts_alloc(the_pcu); - BTS *the_bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts = the_pcu->bts; uint32_t fn = 2654218; uint16_t qta = 31; int ts_no = 7; @@ -3228,20 +3202,20 @@ fprintf(stderr, "=== start %s ===\n", __func__); - setup_bts(the_bts, ts_no, 4); + setup_bts(bts, ts_no, 4); int rc = 0; /* * Trigger rach till resources(USF) exhaust */ - rc = bts_handle_rach(the_bts, 0x78, rach_fn, qta); - rc = bts_handle_rach(the_bts, 0x79, rach_fn, qta); - rc = bts_handle_rach(the_bts, 0x7a, rach_fn, qta); - rc = bts_handle_rach(the_bts, 0x7b, rach_fn, qta); - rc = bts_handle_rach(the_bts, 0x7c, rach_fn, qta); - rc = bts_handle_rach(the_bts, 0x7d, rach_fn, qta); - rc = bts_handle_rach(the_bts, 0x7e, rach_fn, qta); + rc = bts_handle_rach(bts, 0x78, rach_fn, qta); + rc = bts_handle_rach(bts, 0x79, rach_fn, qta); + rc = bts_handle_rach(bts, 0x7a, rach_fn, qta); + rc = bts_handle_rach(bts, 0x7b, rach_fn, qta); + rc = bts_handle_rach(bts, 0x7c, rach_fn, qta); + rc = bts_handle_rach(bts, 0x7d, rach_fn, qta); + rc = bts_handle_rach(bts, 0x7e, rach_fn, qta); /* fake a resource request */ ulreq.u.MESSAGE_TYPE = MT_PACKET_RESOURCE_REQUEST; @@ -3264,12 +3238,12 @@ pmultislotcap->EGPRS_multislot_class = egprs_ms_class; } - send_ul_mac_block(the_bts, trx_no, ts_no, &ulreq, sba_fn); + send_ul_mac_block(bts, trx_no, ts_no, &ulreq, sba_fn); /* trigger packet access reject */ uint8_t bn = fn2bn(fn); - rc = gprs_rlcmac_rcv_rts_block(the_bts->bts_data(), + rc = gprs_rlcmac_rcv_rts_block(bts, trx_no, ts_no, fn, bn); OSMO_ASSERT(rc == 0); @@ -3282,7 +3256,7 @@ { the_pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu->bts = bts_alloc(the_pcu); - BTS *the_bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts = the_pcu->bts; uint32_t tlli = 0xffeeddcc; static uint8_t exp[] = { 0x40, 0x84, 0x7f, 0xf7, 0x6e, 0xe6, 0x41, 0x4b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, @@ -3290,8 +3264,8 @@ }; fprintf(stderr, "=== start %s ===\n", __func__); - setup_bts(the_bts, 4); - static gprs_rlcmac_dl_tbf *dl_tbf = tbf_init(the_bts, 1); + setup_bts(bts, 4); + static gprs_rlcmac_dl_tbf *dl_tbf = tbf_init(bts, 1); dl_tbf->update_ms(tlli, GPRS_RLCMAC_DL_TBF); diff --git a/tests/types/TypesTest.cpp b/tests/types/TypesTest.cpp index 7e5d35a..2da6a64 100644 --- a/tests/types/TypesTest.cpp +++ b/tests/types/TypesTest.cpp @@ -23,6 +23,7 @@ #include "bts.h" #include "tbf.h" #include "tbf_ul.h" +#include "tbf_dl.h" #include "pcu_utils.h" #include "gprs_debug.h" #include "encoding.h" @@ -352,7 +353,7 @@ uint16_t lost = 0, recv = 0; char show_rbb[65]; uint8_t bits_data[8]; - BTS dummy_bts(the_pcu); + struct gprs_rlcmac_bts *dummy_bts = bts_alloc(the_pcu); gprs_rlc_dl_window dl_win; bitvec bits; int bsn_begin, bsn_end, num_blocks; @@ -391,7 +392,7 @@ Decoding::extract_rbb(&bits, show_rbb); printf("show_rbb: %s\n", show_rbb); - dl_win.update(&dummy_bts, &bits, 0, &lost, &recv); + dl_win.update(dummy_bts, &bits, 0, &lost, &recv); OSMO_ASSERT(lost == 0); OSMO_ASSERT(recv == 35); OSMO_ASSERT(bsn_begin == 0); @@ -423,7 +424,7 @@ printf("show_rbb: %s\n", show_rbb); lost = recv = 0; - dl_win.update(&dummy_bts, &bits, 0, &lost, &recv); + dl_win.update(dummy_bts, &bits, 0, &lost, &recv); OSMO_ASSERT(lost == 5); OSMO_ASSERT(recv == 3); OSMO_ASSERT(bitvec_get_bit_pos(&bits, 0) == 0); @@ -431,6 +432,7 @@ OSMO_ASSERT(bsn_begin == 35); OSMO_ASSERT(bsn_end == 43); OSMO_ASSERT(num_blocks == 8); + talloc_free(dummy_bts); } } @@ -669,12 +671,12 @@ fprintf(stderr, "############## test_egprs_ul_ack_nack\n"); - BTS the_bts(the_pcu); + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu); the_pcu->alloc_algorithm = alloc_algorithm_a; - the_bts.bts_data()->trx[0].pdch[4].enable(); + bts->trx[0].pdch[4].enable(); - GprsMs *ms = the_bts.ms_alloc(1, 1); - struct gprs_rlcmac_ul_tbf *tbf = tbf_alloc_ul_tbf(the_bts.bts_data(), ms, 0, true); + GprsMs *ms = bts_alloc_ms(bts, 1, 1); + struct gprs_rlcmac_ul_tbf *tbf = tbf_alloc_ul_tbf(bts, ms, 0, true); struct crbb_test crbb_test = {0}; bitvec *rbb = NULL; unsigned int rbb_size; @@ -722,6 +724,7 @@ extract_egprs_ul_ack_nack(tbf, dest, &ssn, &crbb_test, &rbb, false); check_egprs_bitmap(tbf, ssn, &crbb_test, rbb, &rbb_size); free_egprs_ul_ack_nack(&rbb, &crbb_test); + talloc_free(bts); } static void check_imm_ass(struct gprs_rlcmac_tbf *tbf, bool dl, enum ph_burst_type bt, const uint8_t *exp, uint8_t len, @@ -759,13 +762,13 @@ void test_immediate_assign_dl() { - BTS the_bts(the_pcu); + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu); the_pcu->alloc_algorithm = alloc_algorithm_a; - the_bts.bts_data()->trx[0].pdch[2].enable(); - the_bts.bts_data()->trx[0].pdch[3].enable(); - GprsMs *ms = the_bts.ms_alloc(1, 0); + bts->trx[0].pdch[2].enable(); + bts->trx[0].pdch[3].enable(); + GprsMs *ms = bts_alloc_ms(bts, 1, 0); - struct gprs_rlcmac_tbf *tbf = tbf_alloc_dl_tbf(the_bts.bts_data(), ms, 0, false); + struct gprs_rlcmac_tbf *tbf = tbf_alloc_dl_tbf(bts, ms, 0, false); static uint8_t res[] = { 0x06, 0x3f, /* Immediate Assignment Message Type */ 0x30, /* ?10.5.2.26 Page Mode and ?10.5.2.25b Dedicated mode/TBF */ @@ -779,17 +782,18 @@ 0xdf, 0xff, 0xff, 0xff, 0xf8, 0x17, 0x47, 0x08, 0x0b, 0x5b, 0x2b, 0x2b, }; check_imm_ass(tbf, true, GSM_L1_BURST_TYPE_ACCESS_2, res, sizeof(res), "ia_rest_downlink"); + talloc_free(bts); } void test_immediate_assign_ul0m() { - BTS the_bts(the_pcu); + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu); the_pcu->alloc_algorithm = alloc_algorithm_a; - the_bts.bts_data()->trx[0].pdch[4].enable(); - the_bts.bts_data()->trx[0].pdch[5].enable(); + bts->trx[0].pdch[4].enable(); + bts->trx[0].pdch[5].enable(); - GprsMs *ms = the_bts.ms_alloc(1, 0); - struct gprs_rlcmac_tbf *tbf = tbf_alloc_ul_tbf(the_bts.bts_data(), ms, 0, false); + GprsMs *ms = bts_alloc_ms(bts, 1, 0); + struct gprs_rlcmac_tbf *tbf = tbf_alloc_ul_tbf(bts, ms, 0, false); static uint8_t res[] = { 0x06, 0x3f, /* Immediate Assignment Message Type */ 0x10, /* ?10.5.2.26 Page Mode and ?10.5.2.25b Dedicated mode/TBF */ @@ -803,6 +807,7 @@ 0xc8, 0x02, 0x1b, 0xa2, 0x0b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, }; check_imm_ass(tbf, false, GSM_L1_BURST_TYPE_ACCESS_0, res, sizeof(res), "ia_rest_uplink(MBA)"); + talloc_free(bts); } void test_immediate_assign_ul0s() @@ -824,13 +829,13 @@ void test_immediate_assign_ul1s() { - BTS the_bts(the_pcu); + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu); the_pcu->alloc_algorithm = alloc_algorithm_a; - the_bts.bts_data()->trx[0].pdch[1].enable(); - the_bts.bts_data()->trx[0].pdch[2].enable(); + bts->trx[0].pdch[1].enable(); + bts->trx[0].pdch[2].enable(); - GprsMs *ms = the_bts.ms_alloc(1, 1); - struct gprs_rlcmac_tbf *tbf = tbf_alloc_ul_tbf(the_bts.bts_data(), ms, 0, false); + GprsMs *ms = bts_alloc_ms(bts, 1, 1); + struct gprs_rlcmac_tbf *tbf = tbf_alloc_ul_tbf(bts, ms, 0, false); static uint8_t res[] = { 0x06, 0x3f, /* Immediate Assignment Message Type */ 0x10, /* ?10.5.2.26 Page Mode and ?10.5.2.25b Dedicated mode/TBF */ @@ -844,6 +849,7 @@ 0x46, 0xa0, 0x08, 0x00, 0x17, 0x44, 0x0b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, }; check_imm_ass(tbf, false, GSM_L1_BURST_TYPE_ACCESS_1, res, sizeof(res), "ia_rest_egprs_uplink(SBA)"); + talloc_free(bts); } void test_immediate_assign_ul1m() -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22196 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I7d12c896c5ded659ca9d3bff4cf3a3fc857db9dd Gerrit-Change-Number: 22196 Gerrit-PatchSet: 7 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 16:40:06 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 19 Jan 2021 16:40:06 +0000 Subject: Change in osmo-pcu[master]: Get rid of bts singletons In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22275 ) Change subject: Get rid of bts singletons ...................................................................... Get rid of bts singletons There's no BTS single global object anymore, get rid of those APIs. Move users to use "pcu->bts", which will evolve to a linked list in the future. Change-Id: I9cf762b0d3cb9e2cc3582727e07fa82c8e183ec5 --- M src/bts.cpp M src/bts.h M src/gprs_bssgp_pcu.cpp M src/osmobts_sock.cpp M src/pcu_l1_if.cpp M src/pcu_vty.c M tests/emu/pcu_emu.cpp 7 files changed, 17 insertions(+), 30 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, but someone else must approve osmith: Looks good to me, approved diff --git a/src/bts.cpp b/src/bts.cpp index 294739c..92cbca5 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -249,16 +249,6 @@ OSMO_ASSERT(bts->statg); } -struct gprs_rlcmac_bts *bts_main_data() -{ - return the_pcu->bts; -} - -struct rate_ctr_group *bts_main_data_stats() -{ - return bts_rate_counters(the_pcu->bts); -} - static void bts_cleanup(gprs_rlcmac_bts *bts) { /* this can cause counter updates and must not be left to the diff --git a/src/bts.h b/src/bts.h index d316370..8d06939 100644 --- a/src/bts.h +++ b/src/bts.h @@ -318,9 +318,6 @@ struct gprs_rlcmac_bts *bts_alloc(struct gprs_pcu *pcu); -struct gprs_rlcmac_bts *bts_main_data(); -struct rate_ctr_group *bts_main_data_stats(); -struct osmo_stat_item_group *bts_main_data_stat_items(); void bts_recalc_initial_cs(struct gprs_rlcmac_bts *bts); void bts_recalc_initial_mcs(struct gprs_rlcmac_bts *bts); void bts_recalc_max_cs(struct gprs_rlcmac_bts *bts); diff --git a/src/gprs_bssgp_pcu.cpp b/src/gprs_bssgp_pcu.cpp index 92fa845..997cb1b 100644 --- a/src/gprs_bssgp_pcu.cpp +++ b/src/gprs_bssgp_pcu.cpp @@ -808,7 +808,7 @@ LOGP(DBSSGP, LOGL_ERROR, "No bctx\n"); return -EIO; } - bts = bts_main_data(); + bts = the_pcu->bts; max_cs_dl = max_coding_scheme_dl(bts); diff --git a/src/osmobts_sock.cpp b/src/osmobts_sock.cpp index 6addda6..d94c7e7 100644 --- a/src/osmobts_sock.cpp +++ b/src/osmobts_sock.cpp @@ -62,7 +62,7 @@ static void pcu_tx_txt_retry(void *_priv) { - struct gprs_rlcmac_bts *bts = bts_main_data(); + struct gprs_rlcmac_bts *bts = the_pcu->bts; if (bts->active) return; @@ -90,7 +90,7 @@ static void pcu_sock_close(int lost) { struct osmo_fd *bfd = &pcu_sock_state.conn_bfd; - struct gprs_rlcmac_bts *bts = bts_main_data(); + struct gprs_rlcmac_bts *bts = the_pcu->bts; uint8_t trx, ts; LOGP(DL1IF, LOGL_NOTICE, "PCU socket has %s connection\n", diff --git a/src/pcu_l1_if.cpp b/src/pcu_l1_if.cpp index 1a47b37..ce0f55e 100644 --- a/src/pcu_l1_if.cpp +++ b/src/pcu_l1_if.cpp @@ -201,7 +201,7 @@ uint32_t fn, uint8_t block_nr) { #ifdef ENABLE_DIRECT_PHY - struct gprs_rlcmac_bts *bts = bts_main_data(); + struct gprs_rlcmac_bts *bts = the_pcu->bts; if (bts->trx[trx].fl1h) { l1if_pdch_req(bts->trx[trx].fl1h, ts, 0, fn, arfcn, block_nr, @@ -286,13 +286,13 @@ { struct gprs_rlcmac_pdch *pdch; - pdch = &bts_main_data()->trx[trx_no].pdch[ts_no]; + pdch = &the_pcu->bts->trx[trx_no].pdch[ts_no]; return pdch->rcv_block(data, len, fn, meas); } static int pcu_rx_data_ind_bcch(uint8_t *data, uint8_t len) { - struct gprs_rlcmac_bts *bts = bts_main_data(); + struct gprs_rlcmac_bts *bts = the_pcu->bts; if (len == 0) { bts->si13_is_set = false; @@ -384,13 +384,13 @@ extern "C" int pcu_rx_rts_req_pdtch(uint8_t trx, uint8_t ts, uint32_t fn, uint8_t block_nr) { - return gprs_rlcmac_rcv_rts_block(bts_main_data(), + return gprs_rlcmac_rcv_rts_block(the_pcu->bts, trx, ts, fn, block_nr); } extern "C" int pcu_rx_rts_req_ptcch(uint8_t trx, uint8_t ts, uint32_t fn, uint8_t block_nr) { - struct gprs_rlcmac_bts *bts = bts_main_data(); + struct gprs_rlcmac_bts *bts = the_pcu->bts; struct gprs_rlcmac_pdch *pdch; /* Prevent buffer overflow */ @@ -544,7 +544,7 @@ static int pcu_rx_info_ind(const struct gsm_pcu_if_info_ind *info_ind) { - struct gprs_rlcmac_bts *bts = bts_main_data(); + struct gprs_rlcmac_bts *bts = the_pcu->bts; struct gprs_bssgp_pcu *pcu; int rc = 0; unsigned int trx_nr, ts_nr; diff --git a/src/pcu_vty.c b/src/pcu_vty.c index ed1a6a4..9beb4c1 100644 --- a/src/pcu_vty.c +++ b/src/pcu_vty.c @@ -753,7 +753,7 @@ "show bts statistics", SHOW_STR "BTS related functionality\nStatistics\n") { - vty_out_rate_ctr_group(vty, "", bts_main_data_stats()); + vty_out_rate_ctr_group(vty, "", bts_rate_counters(the_pcu->bts)); return CMD_SUCCESS; } @@ -762,7 +762,7 @@ "show bts pdch", SHOW_STR "BTS related functionality\nPDCH timeslots\n") { - return pcu_vty_show_bts_pdch(vty, bts_main_data()); + return pcu_vty_show_bts_pdch(vty, the_pcu->bts); } #define IDLE_TIME_STR "keep an idle DL TBF alive for the time given\n" @@ -1013,7 +1013,7 @@ SHOW_STR "Show BTS controlled timers\n" OSMO_TDEF_VTY_DOC_T) { - struct gprs_rlcmac_bts *bts = bts_main_data(); + struct gprs_rlcmac_bts *bts = the_pcu->bts; const char *T_arg = argc > 0 ? argv[0] : NULL; return osmo_tdef_vty_show_cmd(vty, bts->T_defs_bts, T_arg, NULL); } @@ -1047,7 +1047,7 @@ "TBFs allocated via CCCH\n" "TBFs allocated via PACCH\n") { - struct gprs_rlcmac_bts *bts = bts_main_data(); + struct gprs_rlcmac_bts *bts = the_pcu->bts; uint32_t flags = UINT32_MAX; if (argv[0][0] == 'c') @@ -1063,7 +1063,7 @@ "show ms all", SHOW_STR "information about MSs\n" "All TBFs\n") { - struct gprs_rlcmac_bts *bts = bts_main_data(); + struct gprs_rlcmac_bts *bts = the_pcu->bts; return pcu_vty_show_ms_all(vty, bts); } @@ -1072,7 +1072,7 @@ "show ms tlli TLLI", SHOW_STR "information about MSs\n" "Select MS by TLLI\n" "TLLI as hex\n") { - struct gprs_rlcmac_bts *bts = bts_main_data(); + struct gprs_rlcmac_bts *bts = the_pcu->bts; char *endp = NULL; unsigned long long tlli = strtoll(argv[0], &endp, 16); if ((endp != NULL && *endp != 0) || tlli > 0xffffffffULL) { @@ -1087,7 +1087,7 @@ "show ms imsi IMSI", SHOW_STR "information about MSs\n" "Select MS by IMSI\n" "IMSI\n") { - struct gprs_rlcmac_bts *bts = bts_main_data(); + struct gprs_rlcmac_bts *bts = the_pcu->bts; return pcu_vty_show_ms_by_imsi(vty, bts, argv[0]); } diff --git a/tests/emu/pcu_emu.cpp b/tests/emu/pcu_emu.cpp index ab2804b..d7b11ca 100644 --- a/tests/emu/pcu_emu.cpp +++ b/tests/emu/pcu_emu.cpp @@ -65,7 +65,7 @@ static void init_main_bts() { - struct gprs_rlcmac_bts *bts = bts_main_data(); + struct gprs_rlcmac_bts *bts = the_pcu->bts; bts->initial_cs_dl = bts->initial_cs_ul = 1; bts->cs_mask = 1 << 0; /* CS-1 always enabled by default */ bts->n3101 = 10; -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22275 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I9cf762b0d3cb9e2cc3582727e07fa82c8e183ec5 Gerrit-Change-Number: 22275 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 16:40:07 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 19 Jan 2021 16:40:07 +0000 Subject: Change in osmo-pcu[master]: Rename 'bts_data' leftovers to 'bts' In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22276 ) Change subject: Rename 'bts_data' leftovers to 'bts' ...................................................................... Rename 'bts_data' leftovers to 'bts' Before, we used tho have a BTs object split into 2 parts, a C gprs_rlcmac_bts struct and a C++ BTS struct, and "bts_data" naming was used to distinguish them in variable names. Nowadays the struct is finally combined into one, so there's no point in using this "bts_data" terminology, we use always "bts". Change-Id: I9852bf439292d1abc70711bea65698b21bde0ee8 --- M src/gprs_rlcmac_sched.cpp M src/gprs_rlcmac_ts_alloc.cpp M src/pcu_l1_if.cpp M src/pcu_vty_functions.cpp M src/pcu_vty_functions.h M src/pdch.cpp M src/pdch.h M src/tbf.cpp M src/tbf.h 9 files changed, 40 insertions(+), 55 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, but someone else must approve osmith: Looks good to me, approved diff --git a/src/gprs_rlcmac_sched.cpp b/src/gprs_rlcmac_sched.cpp index 39e22c0..40c194c 100644 --- a/src/gprs_rlcmac_sched.cpp +++ b/src/gprs_rlcmac_sched.cpp @@ -130,29 +130,29 @@ } struct msgb *sched_app_info(struct gprs_rlcmac_tbf *tbf) { - struct gprs_rlcmac_bts *bts_data; + struct gprs_rlcmac_bts *bts; struct msgb *msg = NULL; if (!tbf || !tbf->ms()->app_info_pending) return NULL; - bts_data = the_pcu->bts; + bts = the_pcu->bts; - if (bts_data->app_info) { + if (bts->app_info) { LOGP(DRLCMACSCHED, LOGL_DEBUG, "Sending Packet Application Information message\n"); - msg = msgb_copy(bts_data->app_info, "app_info_msg_sched"); + msg = msgb_copy(bts->app_info, "app_info_msg_sched"); } else LOGP(DRLCMACSCHED, LOGL_ERROR, "MS has app_info_pending flag set, but no Packet Application Information" " message stored in BTS!\n"); tbf->ms()->app_info_pending = false; - bts_data->app_info_pending--; + bts->app_info_pending--; - if (!bts_data->app_info_pending) { + if (!bts->app_info_pending) { LOGP(DRLCMACSCHED, LOGL_DEBUG, "Packet Application Information successfully sent to all MS with active" " TBF\n"); - msgb_free(bts_data->app_info); - bts_data->app_info = NULL; + msgb_free(bts->app_info); + bts->app_info = NULL; } return msg; } diff --git a/src/gprs_rlcmac_ts_alloc.cpp b/src/gprs_rlcmac_ts_alloc.cpp index f8b1c1f..4c68a87 100644 --- a/src/gprs_rlcmac_ts_alloc.cpp +++ b/src/gprs_rlcmac_ts_alloc.cpp @@ -239,7 +239,7 @@ attach_tbf_to_pdch(pdch, tbf); } -static int find_trx(const struct gprs_rlcmac_bts *bts_data, const GprsMs *ms, int8_t use_trx) +static int find_trx(const struct gprs_rlcmac_bts *bts, const GprsMs *ms, int8_t use_trx) { unsigned trx_no; unsigned ts; @@ -252,8 +252,8 @@ return use_trx; /* Find the first TRX that has a PDCH with a free UL and DL TFI */ - for (trx_no = 0; trx_no < ARRAY_SIZE(bts_data->trx); trx_no += 1) { - const struct gprs_rlcmac_trx *trx = &bts_data->trx[trx_no]; + for (trx_no = 0; trx_no < ARRAY_SIZE(bts->trx); trx_no += 1) { + const struct gprs_rlcmac_trx *trx = &bts->trx[trx_no]; for (ts = 0; ts < ARRAY_SIZE(trx->pdch); ts++) { const struct gprs_rlcmac_pdch *pdch = &trx->pdch[ts]; if (!pdch->is_enabled()) @@ -272,14 +272,14 @@ return -EBUSY; } -static bool idle_pdch_avail(const struct gprs_rlcmac_bts *bts_data) +static bool idle_pdch_avail(const struct gprs_rlcmac_bts *bts) { unsigned trx_no; unsigned ts; /* Find the first PDCH with an unused DL TS */ - for (trx_no = 0; trx_no < ARRAY_SIZE(bts_data->trx); trx_no += 1) { - const struct gprs_rlcmac_trx *trx = &bts_data->trx[trx_no]; + for (trx_no = 0; trx_no < ARRAY_SIZE(bts->trx); trx_no += 1) { + const struct gprs_rlcmac_trx *trx = &bts->trx[trx_no]; for (ts = 0; ts < ARRAY_SIZE(trx->pdch); ts++) { const struct gprs_rlcmac_pdch *pdch = &trx->pdch[ts]; if (!pdch->is_enabled()) diff --git a/src/pcu_l1_if.cpp b/src/pcu_l1_if.cpp index ce0f55e..e5ad1de 100644 --- a/src/pcu_l1_if.cpp +++ b/src/pcu_l1_if.cpp @@ -814,36 +814,35 @@ static int pcu_rx_app_info_req(struct gsm_pcu_if_app_info_req *app_info_req) { struct gprs_rlcmac_bts *bts = the_pcu->bts; - struct gprs_rlcmac_bts *bts_data = bts; struct llist_head *tmp; LOGP(DL1IF, LOGL_DEBUG, "Application Information Request received: type=0x%08x len=%i\n", app_info_req->application_type, app_info_req->len); - bts_data->app_info_pending = 0; + bts->app_info_pending = 0; llist_for_each(tmp, bts_ms_store(bts)->ms_list()) { GprsMs *ms = llist_entry(tmp, typeof(*ms), list); if (!ms_dl_tbf(ms)) continue; - bts_data->app_info_pending++; + bts->app_info_pending++; ms->app_info_pending = true; } - if (!bts_data->app_info_pending) { + if (!bts->app_info_pending) { LOGP(DL1IF, LOGL_NOTICE, "Packet Application Information will not be sent, no subscribers with active" " TBF\n"); return -1; } - if (bts_data->app_info) { + if (bts->app_info) { LOGP(DL1IF, LOGL_NOTICE, "Previous Packet Application Information was not sent to all subscribers," " overwriting with new one\n"); - msgb_free(bts_data->app_info); + msgb_free(bts->app_info); } LOGP(DL1IF, LOGL_INFO, "Sending Packet Application Information to %i subscribers with active TBF\n", - bts_data->app_info_pending); - bts_data->app_info = gprs_rlcmac_app_info_msg(app_info_req); + bts->app_info_pending); + bts->app_info = gprs_rlcmac_app_info_msg(app_info_req); return 0; } diff --git a/src/pcu_vty_functions.cpp b/src/pcu_vty_functions.cpp index 0e9cc00..231bce7 100644 --- a/src/pcu_vty_functions.cpp +++ b/src/pcu_vty_functions.cpp @@ -242,13 +242,13 @@ return show_ms(vty, ms); } -int pcu_vty_show_bts_pdch(struct vty *vty, const struct gprs_rlcmac_bts *bts_data) +int pcu_vty_show_bts_pdch(struct vty *vty, const struct gprs_rlcmac_bts *bts) { unsigned int trx_nr, ts_nr; - vty_out(vty, "BTS (%s)%s", bts_data->active ? "active" : "disabled", VTY_NEWLINE); - for (trx_nr = 0; trx_nr < ARRAY_SIZE(bts_data->trx); trx_nr++) { - const struct gprs_rlcmac_trx *trx = &bts_data->trx[trx_nr]; + vty_out(vty, "BTS (%s)%s", bts->active ? "active" : "disabled", VTY_NEWLINE); + for (trx_nr = 0; trx_nr < ARRAY_SIZE(bts->trx); trx_nr++) { + const struct gprs_rlcmac_trx *trx = &bts->trx[trx_nr]; for (ts_nr = 0; ts_nr < ARRAY_SIZE(trx->pdch); ts_nr++) { if (trx->pdch[ts_nr].is_enabled()) diff --git a/src/pcu_vty_functions.h b/src/pcu_vty_functions.h index 4528fb2..a68df27 100644 --- a/src/pcu_vty_functions.h +++ b/src/pcu_vty_functions.h @@ -27,13 +27,13 @@ struct vty; struct gprs_rlcmac_bts; -int pcu_vty_show_tbf_all(struct vty *vty, struct gprs_rlcmac_bts *bts_data, uint32_t flags); -int pcu_vty_show_ms_all(struct vty *vty, struct gprs_rlcmac_bts *bts_data); -int pcu_vty_show_ms_by_tlli(struct vty *vty, struct gprs_rlcmac_bts *bts_data, +int pcu_vty_show_tbf_all(struct vty *vty, struct gprs_rlcmac_bts *bts, uint32_t flags); +int pcu_vty_show_ms_all(struct vty *vty, struct gprs_rlcmac_bts *bts); +int pcu_vty_show_ms_by_tlli(struct vty *vty, struct gprs_rlcmac_bts *bts, uint32_t tlli); -int pcu_vty_show_ms_by_imsi(struct vty *vty, struct gprs_rlcmac_bts *bts_data, +int pcu_vty_show_ms_by_imsi(struct vty *vty, struct gprs_rlcmac_bts *bts, const char *imsi); -int pcu_vty_show_bts_pdch(struct vty *vty, const struct gprs_rlcmac_bts *bts_data); +int pcu_vty_show_bts_pdch(struct vty *vty, const struct gprs_rlcmac_bts *bts); #ifdef __cplusplus } #endif diff --git a/src/pdch.cpp b/src/pdch.cpp index 49f0b85..9dd4072 100644 --- a/src/pdch.cpp +++ b/src/pdch.cpp @@ -113,12 +113,12 @@ } } -static inline void sched_ul_ass_or_rej(struct gprs_rlcmac_bts *bts, gprs_rlcmac_bts *bts_data, struct gprs_rlcmac_dl_tbf *tbf) +static inline void sched_ul_ass_or_rej(struct gprs_rlcmac_bts *bts, struct gprs_rlcmac_dl_tbf *tbf) { bts_do_rate_ctr_inc(bts, CTR_CHANNEL_REQUEST_DESCRIPTION); /* This call will register the new TBF with the MS on success */ - gprs_rlcmac_ul_tbf *ul_tbf = tbf_alloc_ul(bts_data, tbf->ms(), tbf->trx->trx_no, tbf->tlli()); + gprs_rlcmac_ul_tbf *ul_tbf = tbf_alloc_ul(bts, tbf->ms(), tbf->trx->trx_no, tbf->tlli()); /* schedule uplink assignment or reject */ if (ul_tbf) { @@ -455,7 +455,7 @@ } /* check for channel request */ if (ack_nack->Exist_Channel_Request_Description) - sched_ul_ass_or_rej(bts(), bts_data(), tbf); + sched_ul_ass_or_rej(bts(), tbf); /* get measurements */ if (tbf->ms()) { @@ -545,7 +545,7 @@ /* check for channel request */ if (ack_nack->Exist_ChannelRequestDescription) - sched_ul_ass_or_rej(bts(), bts_data(), tbf); + sched_ul_ass_or_rej(bts(), tbf); /* get measurements */ if (tbf->ms()) { @@ -612,9 +612,9 @@ tbf_free(ul_tbf); } - ul_tbf = tbf_alloc_ul(bts_data(), ms, trx_no(), tlli); + ul_tbf = tbf_alloc_ul(bts(), ms, trx_no(), tlli); if (!ul_tbf) { - handle_tbf_reject(bts_data(), ms, tlli, + handle_tbf_reject(bts(), ms, tlli, trx_no(), ts_no); goto return_unref; } @@ -984,11 +984,6 @@ return trx->trx_no; } -inline gprs_rlcmac_bts *gprs_rlcmac_pdch::bts_data() const -{ - return trx->bts; -} - /* PTCCH (Packet Timing Advance Control Channel) */ void gprs_rlcmac_pdch::init_ptcch_msg(void) { diff --git a/src/pdch.h b/src/pdch.h index 7a544fe..2413ef7 100644 --- a/src/pdch.h +++ b/src/pdch.h @@ -69,7 +69,6 @@ int rcv_data_block(uint8_t *data, uint8_t data_len, uint32_t fn, struct pcu_l1_meas *meas, enum CodingScheme cs); - gprs_rlcmac_bts *bts_data() const; struct gprs_rlcmac_bts *bts() const; uint8_t trx_no() const; diff --git a/src/tbf.cpp b/src/tbf.cpp index 05f4e2c..3464242 100644 --- a/src/tbf.cpp +++ b/src/tbf.cpp @@ -168,11 +168,6 @@ m_name_buf[0] = '\0'; } -gprs_rlcmac_bts *gprs_rlcmac_tbf::bts_data() const -{ - return bts; -} - uint32_t gprs_rlcmac_tbf::tlli() const { return m_ms ? ms_tlli(m_ms) : GSM_RESERVED_TMSI; @@ -318,7 +313,7 @@ talloc_free(tbf); } -uint16_t egprs_window_size(const struct gprs_rlcmac_bts *bts_data, uint8_t slots) +uint16_t egprs_window_size(const struct gprs_rlcmac_bts *bts, uint8_t slots) { uint8_t num_pdch = pcu_bitcount(slots); @@ -328,7 +323,6 @@ int gprs_rlcmac_tbf::update() { - struct gprs_rlcmac_bts *bts_data = bts; int rc; if (direction != GPRS_RLCMAC_DL_TBF) @@ -337,7 +331,7 @@ LOGP(DTBF, LOGL_DEBUG, "********** DL-TBF update **********\n"); tbf_unlink_pdch(this); - rc = the_pcu->alloc_algorithm(bts_data, ms(), this, false, -1); + rc = the_pcu->alloc_algorithm(bts, ms(), this, false, -1); /* if no resource */ if (rc < 0) { LOGPTBF(this, LOGL_ERROR, "No resource after update???\n"); @@ -738,7 +732,6 @@ int gprs_rlcmac_tbf::setup(int8_t use_trx, bool single_slot) { - struct gprs_rlcmac_bts *bts_data = bts; int rc; if (ms_mode(m_ms) != GPRS) @@ -746,7 +739,7 @@ m_created_ts = time(NULL); /* select algorithm */ - rc = the_pcu->alloc_algorithm(bts_data, m_ms, this, single_slot, use_trx); + rc = the_pcu->alloc_algorithm(bts, m_ms, this, single_slot, use_trx); /* if no resource */ if (rc < 0) { return -1; diff --git a/src/tbf.h b/src/tbf.h index cb4c9b9..73266bf 100644 --- a/src/tbf.h +++ b/src/tbf.h @@ -348,7 +348,6 @@ struct llist_item m_bts_list; protected: - gprs_rlcmac_bts *bts_data() const; void merge_and_clear_ms(GprsMs *old_ms); gprs_llc_queue *llc_queue(); @@ -567,6 +566,6 @@ ((int)GPRS_RLCMAC_UL_TBF - (int)dir + (int)GPRS_RLCMAC_DL_TBF); } -uint16_t egprs_window_size(const struct gprs_rlcmac_bts *bts_data, uint8_t slots); +uint16_t egprs_window_size(const struct gprs_rlcmac_bts *bts, uint8_t slots); #endif -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22276 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I9852bf439292d1abc70711bea65698b21bde0ee8 Gerrit-Change-Number: 22276 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 16:40:07 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 19 Jan 2021 16:40:07 +0000 Subject: Change in osmo-pcu[master]: bts: combine bts_{init, cleanup} into consturctor/destructor methods In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22277 ) Change subject: bts: combine bts_{init,cleanup} into consturctor/destructor methods ...................................................................... bts: combine bts_{init,cleanup} into consturctor/destructor methods The bts_init/cleanup functions were kept during the C and C++ structure merge process to make the patch simpler. It's not needed anymore, let's move all the destructor logic into one function and keep that together. Change-Id: I73a9457d5c92f62261561ef6afe392953576aec4 --- M src/bts.cpp 1 file changed, 34 insertions(+), 43 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, but someone else must approve osmith: Looks good to me, approved diff --git a/src/bts.cpp b/src/bts.cpp index 92cbca5..0e08091 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -192,8 +192,40 @@ bts_stat_item_description, }; -static void bts_init(struct gprs_rlcmac_bts *bts, struct gprs_pcu *pcu) +static int bts_talloc_destructor(struct gprs_rlcmac_bts* bts) { + /* this can cause counter updates and must not be left to the + * m_ms_store's destructor */ + bts->ms_store->cleanup(); + delete bts->ms_store; + delete bts->sba; + delete bts->pollController; + + if (bts->ratectrs) { + rate_ctr_group_free(bts->ratectrs); + bts->ratectrs = NULL; + } + + if (bts->statg) { + osmo_stat_item_group_free(bts->statg); + bts->statg = NULL; + } + + if (bts->app_info) { + msgb_free(bts->app_info); + bts->app_info = NULL; + } + return 0; +} + +struct gprs_rlcmac_bts* bts_alloc(struct gprs_pcu *pcu) +{ + struct gprs_rlcmac_bts* bts; + bts = talloc_zero(pcu, struct gprs_rlcmac_bts); + if (!bts) + return bts; + talloc_set_destructor(bts, bts_talloc_destructor); + bts->pcu = pcu; bts->pollController = new PollController(*bts); @@ -247,31 +279,8 @@ bts->statg = osmo_stat_item_group_alloc(tall_pcu_ctx, &bts_statg_desc, 0); OSMO_ASSERT(bts->statg); -} -static void bts_cleanup(gprs_rlcmac_bts *bts) -{ - /* this can cause counter updates and must not be left to the - * m_ms_store's destructor */ - bts->ms_store->cleanup(); - delete bts->ms_store; - delete bts->sba; - delete bts->pollController; - - if (bts->ratectrs) { - rate_ctr_group_free(bts->ratectrs); - bts->ratectrs = NULL; - } - - if (bts->statg) { - osmo_stat_item_group_free(bts->statg); - bts->statg = NULL; - } - - if (bts->app_info) { - msgb_free(bts->app_info); - bts->app_info = NULL; - } + return bts; } void bts_set_current_frame_number(struct gprs_rlcmac_bts *bts, int fn) @@ -1057,24 +1066,6 @@ return ms; } - -static int bts_talloc_destructor(struct gprs_rlcmac_bts* bts) -{ - bts_cleanup(bts); - return 0; -} - -struct gprs_rlcmac_bts* bts_alloc(struct gprs_pcu *pcu) -{ - struct gprs_rlcmac_bts* bts; - bts = talloc_zero(pcu, struct gprs_rlcmac_bts); - if (!bts) - return bts; - talloc_set_destructor(bts, bts_talloc_destructor); - bts_init(bts, pcu); - return bts; -} - struct SBAController *bts_sba(struct gprs_rlcmac_bts *bts) { return bts->sba; -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22277 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I73a9457d5c92f62261561ef6afe392953576aec4 Gerrit-Change-Number: 22277 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 16:40:08 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 19 Jan 2021 16:40:08 +0000 Subject: Change in osmo-pcu[master]: Get rid of unused gsm_timer.{cpp,h} In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22280 ) Change subject: Get rid of unused gsm_timer.{cpp,h} ...................................................................... Get rid of unused gsm_timer.{cpp,h} Those files are not really being used other than for calling get_current_fn() which is just a placeholder to call bts_current_frame_number on the global bts object. Change-Id: I6d50a8c15c1de5e2a308a24b313a7776f94ae54f --- M debian/copyright M src/Makefile.am M src/gprs_rlcmac.h D src/gsm_timer.cpp D src/gsm_timer.h M src/pcu_l1_if.cpp M src/pcu_main.cpp M src/tbf.cpp M src/tbf.h 9 files changed, 7 insertions(+), 346 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, but someone else must approve osmith: Looks good to me, approved diff --git a/debian/copyright b/debian/copyright index 0069d0c..99ea408 100644 --- a/debian/copyright +++ b/debian/copyright @@ -34,8 +34,6 @@ src/gprs_debug.h src/pcu_main.cpp src/pcu_l1_if.h - src/gsm_timer.cpp - src/gsm_timer.h Copyright: 2012 Ivan Klyuchnikov License: GPL-2.0+ @@ -131,4 +129,3 @@ . On Debian systems, the complete text of the GNU General Public License Version 2 can be found in `/usr/share/common-licenses/GPL-2'. - diff --git a/src/Makefile.am b/src/Makefile.am index c9c7aa3..05fac55 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -50,7 +50,6 @@ gprs_ms.c \ gprs_ms_storage.cpp \ gprs_pcu.c \ - gsm_timer.cpp \ pcu_l1_if.cpp \ pcu_vty.c \ pcu_vty_functions.cpp \ @@ -87,7 +86,6 @@ gprs_ms_storage.h \ gprs_pcu.h \ pcu_l1_if.h \ - gsm_timer.h \ pcu_vty.h \ pcu_vty_functions.h \ mslot_class.h \ diff --git a/src/gprs_rlcmac.h b/src/gprs_rlcmac.h index 3d5ea99..d779d08 100644 --- a/src/gprs_rlcmac.h +++ b/src/gprs_rlcmac.h @@ -24,7 +24,6 @@ #include #ifdef __cplusplus -#include #include extern "C" { diff --git a/src/gsm_timer.cpp b/src/gsm_timer.cpp deleted file mode 100644 index 0627753..0000000 --- a/src/gsm_timer.cpp +++ /dev/null @@ -1,234 +0,0 @@ -/* gsm_timer.cpp - * - * Copyright (C) 2012 Ivan Klyuchnikov - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - */ - -/* These store the amount of frame number that we wait until next timer expires. */ -static int nearest; -static int *nearest_p; - -/*! \addtogroup gsm_timer - * @{ - */ - -/*! \file gsm_timer.cpp - */ - -#include -#include -#include -#include -#include -#include - - -static struct rb_root timer_root = RB_ROOT; - -/* - * TODO: make this depend on the BTS. This means that - * all time functions schedule based on the BTS they - * are scheduled on. - */ -int get_current_fn() -{ - return bts_current_frame_number(the_pcu->bts); -} - -static void __add_gsm_timer(struct osmo_gsm_timer_list *timer) -{ - struct rb_node **new_node = &(timer_root.rb_node); - struct rb_node *parent = NULL; - - while (*new_node) { - struct osmo_gsm_timer_list *this_timer; - - this_timer = container_of(*new_node, struct osmo_gsm_timer_list, node); - - parent = *new_node; - if (timer->fn < this_timer->fn) - new_node = &((*new_node)->rb_left); - else - new_node = &((*new_node)->rb_right); - } - - rb_link_node(&timer->node, parent, new_node); - rb_insert_color(&timer->node, &timer_root); -} - -/*! \brief add a new timer to the timer management - * \param[in] timer the timer that should be added - */ -void osmo_gsm_timer_add(struct osmo_gsm_timer_list *timer) -{ - osmo_gsm_timer_del(timer); - timer->active = 1; - INIT_LLIST_HEAD(&timer->list); - __add_gsm_timer(timer); -} - -/*! \brief schedule a gsm timer at a given future relative time - * \param[in] timer the to-be-added timer - * \param[in] number of frames from now - * - * This function can be used to (re-)schedule a given timer at a - * specified number of frames in the future. It will - * internally add it to the timer management data structures, thus - * osmo_timer_add() is automatically called. - */ -void -osmo_gsm_timer_schedule(struct osmo_gsm_timer_list *timer, int fn) -{ - int current_fn; - - current_fn = get_current_fn(); - timer->fn = current_fn + fn; - osmo_gsm_timer_add(timer); -} - -/*! \brief delete a gsm timer from timer management - * \param[in] timer the to-be-deleted timer - * - * This function can be used to delete a previously added/scheduled - * timer from the timer management code. - */ -void osmo_gsm_timer_del(struct osmo_gsm_timer_list *timer) -{ - if (timer->active) { - timer->active = 0; - rb_erase(&timer->node, &timer_root); - /* make sure this is not already scheduled for removal. */ - if (!llist_empty(&timer->list)) - llist_del_init(&timer->list); - } -} - -/*! \brief check if given timer is still pending - * \param[in] timer the to-be-checked timer - * \return 1 if pending, 0 otherwise - * - * This function can be used to determine whether a given timer - * has alredy expired (returns 0) or is still pending (returns 1) - */ -int osmo_gsm_timer_pending(struct osmo_gsm_timer_list *timer) -{ - return timer->active; -} - -/* - * if we have a nearest frame number return the delta between the current - * FN and the FN of the nearest timer. - * If the nearest timer timed out return NULL and then we will - * dispatch everything after the select - */ -int *osmo_gsm_timers_nearest(void) -{ - /* nearest_p is exactly what we need already: NULL if nothing is - * waiting, {0,0} if we must dispatch immediately, and the correct - * delay if we need to wait */ - return nearest_p; -} - -static void update_nearest(int *cand, int *current) -{ - if (*cand > *current) - nearest = *cand - *current; - else { - /* loop again inmediately */ - nearest = 0; - } - - nearest_p = &nearest; -} - -/* - * Find the nearest FN and update s_nearest_time - */ -void osmo_gsm_timers_prepare(void) -{ - struct rb_node *node; - int current_fn; - - current_fn = get_current_fn(); - - node = rb_first(&timer_root); - if (node) { - struct osmo_gsm_timer_list *this_timer; - this_timer = container_of(node, struct osmo_gsm_timer_list, node); - update_nearest(&this_timer->fn, ¤t_fn); - } else { - nearest_p = NULL; - } -} - -/* - * fire all timers... and remove them - */ -int osmo_gsm_timers_update(void) -{ - int current_fn; - struct rb_node *node; - struct llist_head timer_eviction_list; - struct osmo_gsm_timer_list *this_timer; - int work = 0; - - current_fn = get_current_fn(); - - INIT_LLIST_HEAD(&timer_eviction_list); - for (node = rb_first(&timer_root); node; node = rb_next(node)) { - this_timer = container_of(node, struct osmo_gsm_timer_list, node); - - if (this_timer->fn > current_fn) - break; - - llist_add(&this_timer->list, &timer_eviction_list); - } - - /* - * The callbacks might mess with our list and in this case - * even llist_for_each_entry_safe is not safe to use. To allow - * osmo_gsm_timer_del to be called from within the callback we need - * to restart the iteration for each element scheduled for removal. - * - * The problematic scenario is the following: Given two timers A - * and B that have expired at the same time. Thus, they are both - * in the eviction list in this order: A, then B. If we remove - * timer B from the A's callback, we continue with B in the next - * iteration step, leading to an access-after-release. - */ -restart: - llist_for_each_entry(this_timer, &timer_eviction_list, list) { - osmo_gsm_timer_del(this_timer); - this_timer->cb(this_timer->data); - work = 1; - goto restart; - } - - return work; -} - -int osmo_gsm_timers_check(void) -{ - struct rb_node *node; - int i = 0; - - for (node = rb_first(&timer_root); node; node = rb_next(node)) { - i++; - } - return i; -} - -/*! }@ */ diff --git a/src/gsm_timer.h b/src/gsm_timer.h deleted file mode 100644 index cfabd0c..0000000 --- a/src/gsm_timer.h +++ /dev/null @@ -1,90 +0,0 @@ -/* gsm_timer.h - * - * Copyright (C) 2012 Ivan Klyuchnikov - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - */ - -/*! \defgroup timer GSM timers - * @{ - */ - -/*! \file gsm_timer.h - * \brief GSM timer handling routines - */ -#ifndef GSM_TIMER_H -#define GSM_TIMER_H - -extern "C" { -#include -#include -} -/** - * Timer management: - * - Create a struct osmo_gsm_timer_list - * - Fill out timeout and use add_gsm_timer or - * use schedule_gsm_timer to schedule a timer in - * x frames from now... - * - Use del_gsm_timer to remove the timer - * - * Internally: - * - We hook into select.c to give a frame number of the - * nearest timer. On already passed timers we give - * it a 0 to immediately fire after the select. - * - update_gsm_timers will call the callbacks and remove - * the timers. - * - */ -/*! \brief A structure representing a single instance of a gsm timer */ -struct osmo_gsm_timer_list { - struct rb_node node; /*!< \brief rb-tree node header */ - struct llist_head list; /*!< \brief internal list header */ - int fn; /*!< \brief expiration frame number */ - unsigned int active : 1; /*!< \brief is it active? */ - - void (*cb)(void*); /*!< \brief call-back called at timeout */ - void *data; /*!< \brief user data for callback */ -}; - -/** - * timer management - */ - -void osmo_gsm_timer_add(struct osmo_gsm_timer_list *timer); - -void osmo_gsm_timer_schedule(struct osmo_gsm_timer_list *timer, int fn); - -void osmo_gsm_timer_del(struct osmo_gsm_timer_list *timer); - -int osmo_gsm_timer_pending(struct osmo_gsm_timer_list *timer); - - -/* - * internal timer list management - */ -int *osmo_gsm_timers_nearest(void); -void osmo_gsm_timers_prepare(void); -int osmo_gsm_timers_update(void); -int osmo_gsm_timers_check(void); - - -/* - * Get Current Frame Number - */ -int get_current_fn(); - -/*! }@ */ - -#endif // GSM_TIMER_H diff --git a/src/pcu_l1_if.cpp b/src/pcu_l1_if.cpp index e5ad1de..8847960 100644 --- a/src/pcu_l1_if.cpp +++ b/src/pcu_l1_if.cpp @@ -173,7 +173,7 @@ struct msgb *msg; struct gsm_pcu_if *pcu_prim; struct gsm_pcu_if_data *data_req; - int current_fn = get_current_fn(); + int current_fn = bts_current_frame_number(the_pcu->bts); LOGP(DL1IF, LOGL_DEBUG, "Sending data request: trx=%d ts=%d sapi=%d " "arfcn=%d fn=%d cur_fn=%d block=%d data=%s\n", trx, ts, sapi, arfcn, fn, current_fn, @@ -314,7 +314,7 @@ static int pcu_rx_data_ind(struct gsm_pcu_if_data *data_ind) { int rc; - int current_fn = get_current_fn(); + int current_fn = bts_current_frame_number(the_pcu->bts); struct pcu_l1_meas meas = {0}; uint8_t gsmtap_chantype; @@ -361,7 +361,7 @@ static int pcu_rx_data_cnf(struct gsm_pcu_if_data *data_cnf) { int rc = 0; - int current_fn = get_current_fn(); + int current_fn = bts_current_frame_number(the_pcu->bts); LOGP(DL1IF, LOGL_DEBUG, "Data confirm received: sapi=%d fn=%d cur_fn=%d\n", data_cnf->sapi, data_cnf->fn, current_fn); @@ -410,7 +410,7 @@ static int pcu_rx_rts_req(struct gsm_pcu_if_rts_req *rts_req) { int rc = 0; - int current_fn = get_current_fn(); + int current_fn = bts_current_frame_number(the_pcu->bts); LOGP(DL1IF, LOGL_DEBUG, "RTS request received: trx=%d ts=%d sapi=%d " "arfcn=%d fn=%d cur_fn=%d block=%d\n", rts_req->trx_nr, rts_req->ts_nr, @@ -454,7 +454,7 @@ static int pcu_rx_rach_ind(const struct gsm_pcu_if_rach_ind *rach_ind) { int rc = 0; - int current_fn = get_current_fn(); + int current_fn = bts_current_frame_number(the_pcu->bts); LOGP(DL1IF, LOGL_INFO, "RACH request received: sapi=%d " "qta=%d, ra=0x%02x, fn=%u, cur_fn=%d, is_11bit=%d\n", rach_ind->sapi, rach_ind->qta, diff --git a/src/pcu_main.cpp b/src/pcu_main.cpp index 8bb7c1f..23d16a3 100644 --- a/src/pcu_main.cpp +++ b/src/pcu_main.cpp @@ -19,7 +19,6 @@ #include #include -#include #include #include #include @@ -331,10 +330,6 @@ } while (!quit) { - osmo_gsm_timers_check(); - osmo_gsm_timers_prepare(); - osmo_gsm_timers_update(); - osmo_select_main(0); } diff --git a/src/tbf.cpp b/src/tbf.cpp index 3464242..859ebcd 100644 --- a/src/tbf.cpp +++ b/src/tbf.cpp @@ -34,7 +34,6 @@ #include #include #include -#include #include extern "C" { @@ -154,7 +153,6 @@ memset(&pdch, 0, sizeof(pdch)); memset(&Tarr, 0, sizeof(Tarr)); memset(&Narr, 0, sizeof(Narr)); - memset(&gsm_timer, 0, sizeof(gsm_timer)); memset(&m_ms_list, 0, sizeof(m_ms_list)); m_ms_list.entry = this; @@ -483,7 +481,7 @@ void gprs_rlcmac_tbf::t_start(enum tbf_timers t, int T, const char *reason, bool force, const char *file, unsigned line) { - int current_fn = get_current_fn(); + int current_fn = bts_current_frame_number(bts); int sec; int microsec; struct osmo_tdef *tdef; @@ -777,7 +775,7 @@ void gprs_rlcmac_tbf::handle_timeout() { - int current_fn = get_current_fn(); + int current_fn = bts_current_frame_number(bts); LOGPTBF(this, LOGL_DEBUG, "timer 0 expired. cur_fn=%d\n", current_fn); diff --git a/src/tbf.h b/src/tbf.h index 73266bf..460de70 100644 --- a/src/tbf.h +++ b/src/tbf.h @@ -27,7 +27,6 @@ #include "cxx_linuxlist.h" #include "pcu_utils.h" #include -#include #include struct bssgp_bvc_ctx; @@ -313,7 +312,6 @@ gprs_rlc m_rlc; - struct osmo_gsm_timer_list gsm_timer; unsigned int fT; /* fTxxxx number */ unsigned int num_fT_exp; /* number of consecutive fT expirations */ -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22280 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I6d50a8c15c1de5e2a308a24b313a7776f94ae54f Gerrit-Change-Number: 22280 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 16:40:09 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 19 Jan 2021 16:40:09 +0000 Subject: Change in osmo-pcu[master]: Convert gprs_bssgp_pcu.cpp to C In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22295 ) Change subject: Convert gprs_bssgp_pcu.cpp to C ...................................................................... Convert gprs_bssgp_pcu.cpp to C There's no real use of C++ in that file, and it causes problems when using llist_head entry macros in future patches adding initial support for multiple BTS in PCU object, so let's move it to plain C. Change-Id: Ic771a89fd78b5e66151a5384f0ff6a8895589466 --- M src/Makefile.am M src/decoding.cpp M src/decoding.h R src/gprs_bssgp_pcu.c M src/gprs_bssgp_pcu.h M src/gprs_rlcmac.h M src/pdch.cpp M src/rlc.h M src/tbf_dl.cpp M src/tbf_dl.h M tests/rlcmac/RLCMACTest.cpp M tests/tbf/TbfTest.cpp 12 files changed, 91 insertions(+), 59 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved osmith: Looks good to me, but someone else must approve diff --git a/src/Makefile.am b/src/Makefile.am index 05fac55..60f05a5 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -42,7 +42,7 @@ gprs_debug.cpp \ csn1.c \ gsm_rlcmac.c \ - gprs_bssgp_pcu.cpp \ + gprs_bssgp_pcu.c \ gprs_rlcmac.cpp \ gprs_rlcmac_sched.cpp \ gprs_rlcmac_meas.cpp \ diff --git a/src/decoding.cpp b/src/decoding.cpp index 0437994..e40496d 100644 --- a/src/decoding.cpp +++ b/src/decoding.cpp @@ -291,7 +291,7 @@ return num_chunks; } -uint8_t Decoding::get_ms_class_by_capability(MS_Radio_Access_capability_t *cap) +uint8_t get_ms_class_by_capability(MS_Radio_Access_capability_t *cap) { int i; @@ -306,7 +306,7 @@ return 0; } -uint8_t Decoding::get_egprs_ms_class_by_capability(MS_Radio_Access_capability_t *cap) +uint8_t get_egprs_ms_class_by_capability(MS_Radio_Access_capability_t *cap) { int i; diff --git a/src/decoding.h b/src/decoding.h index 23d3e17..28af3c4 100644 --- a/src/decoding.h +++ b/src/decoding.h @@ -19,16 +19,23 @@ */ #pragma once +#ifdef __cplusplus extern "C" { -#include "gsm_rlcmac.h" -} +#endif -#include "rlc.h" +#include "gsm_rlcmac.h" +#include "coding_scheme.h" + +#ifdef __cplusplus +} +#endif #include struct bitvec; +#ifdef __cplusplus + class Decoding { public: /* represents (parts) LLC PDUs within one RLC Data block */ @@ -42,8 +49,6 @@ const struct gprs_rlc_data_block_info *rdbi, enum CodingScheme cs, const uint8_t *data, RlcData *chunks, unsigned int chunks_size, uint32_t *tlli); - static uint8_t get_ms_class_by_capability(MS_Radio_Access_capability_t *cap); - static uint8_t get_egprs_ms_class_by_capability(MS_Radio_Access_capability_t *cap); static void extract_rbb(const uint8_t *rbb, char *extracted_rbb); static void extract_rbb(const struct bitvec *rbb, char *show_rbb); @@ -82,3 +87,16 @@ bitvec *bits, int *bsn_begin, int *bsn_end, gprs_rlc_dl_window *window); }; + +#endif /* #ifdef __cplusplus */ + +#ifdef __cplusplus +extern "C" { +#endif + +uint8_t get_ms_class_by_capability(MS_Radio_Access_capability_t *cap); +uint8_t get_egprs_ms_class_by_capability(MS_Radio_Access_capability_t *cap); + +#ifdef __cplusplus +} +#endif diff --git a/src/gprs_bssgp_pcu.cpp b/src/gprs_bssgp_pcu.c similarity index 97% rename from src/gprs_bssgp_pcu.cpp rename to src/gprs_bssgp_pcu.c index 997cb1b..288bc45 100644 --- a/src/gprs_bssgp_pcu.cpp +++ b/src/gprs_bssgp_pcu.c @@ -28,14 +28,15 @@ #include #include -extern "C" { - #include - #include - #include - #include - #include "coding_scheme.h" - #include "tbf_dl.h" -} +#include +#include +#include +#include +#include +#include "coding_scheme.h" +#include "tbf_dl.h" +#include "llc.h" +#include "gprs_rlcmac.h" /* Tuning parameters for BSSGP flow control */ #define FC_DEFAULT_LIFE_TIME_SECS 10 /* experimental value, 10s */ @@ -55,7 +56,7 @@ static int parse_ra_cap(struct tlv_parsed *tp, MS_Radio_Access_capability_t *rac) { - bitvec *block; + struct bitvec *block; uint8_t cap_len; uint8_t *cap; @@ -132,9 +133,8 @@ /* parse ms radio access capability */ if (parse_ra_cap(tp, &rac) >= 0) { /* Get the EGPRS class from the RA capability */ - ms_class = Decoding::get_ms_class_by_capability(&rac); - egprs_ms_class = - Decoding::get_egprs_ms_class_by_capability(&rac); + ms_class = get_ms_class_by_capability(&rac); + egprs_ms_class = get_egprs_ms_class_by_capability(&rac); LOGP(DBSSGP, LOGL_DEBUG, "Got downlink MS class %d/%d\n", ms_class, egprs_ms_class); } @@ -166,7 +166,7 @@ LOGP(DBSSGP, LOGL_INFO, "LLC [SGSN -> PCU] = TLLI: 0x%08x IMSI: %s len: %d\n", tlli, mi_imsi.imsi, len); - return gprs_rlcmac_dl_tbf::handle(the_pcu->bssgp.bts, tlli, tlli_old, mi_imsi.imsi, + return dl_tbf_handle(the_pcu->bssgp.bts, tlli, tlli_old, mi_imsi.imsi, ms_class, egprs_ms_class, delay_csec, data, len); } @@ -620,7 +620,7 @@ LOGP(DPCU, LOGL_DEBUG, "NS: %s Unknown prim %s / %d from NS\n", get_value_string(osmo_prim_op_names, oph->operation), - gprs_ns2_prim_str((gprs_ns2_prim) oph->primitive), oph->primitive); + gprs_ns2_prim_str((enum gprs_ns2_prim) oph->primitive), oph->primitive); break; } @@ -654,7 +654,7 @@ for (ts_no = 0; ts_no < ARRAY_SIZE(trx->pdch); ++ts_no) { const struct gprs_rlcmac_pdch *pdch = &trx->pdch[ts_no]; - if (pdch->is_enabled()) + if (pdch->m_is_enabled) num_pdch += 1; } } @@ -853,7 +853,7 @@ if (ms_leak_rate == 0) { int ms_num_pdch; - int max_pdch = gprs_alloc_max_dl_slots_per_ms(bts); + int max_pdch = gprs_alloc_max_dl_slots_per_ms(bts, 0); if (num_pdch < 0) num_pdch = count_pdch(bts); @@ -1029,8 +1029,9 @@ static int ns_conf_vc_cb(struct gprs_ns2_vc *nsvc, void *ctx) { struct nsvc_cb *data = (struct nsvc_cb *) ctx; + unsigned int i; - for (unsigned int i = 0; i < PCU_IF_NUM_NSVC; i++) { + for (i = 0; i < PCU_IF_NUM_NSVC; i++) { if (!(data->valid & (1 << i))) continue; if (data->found & (1 << i)) @@ -1070,7 +1071,8 @@ } else if (the_pcu->vty.ns_dialect == NS2_DIALECT_SNS) { /* SNS: check if the initial nsvc is the same, if not recreate it */ const struct osmo_sockaddr *initial = gprs_ns2_nse_sns_remote(bts->nse); - for (unsigned int i = 0; i < PCU_IF_NUM_NSVC; i++) { + unsigned int i; + for (i = 0; i < PCU_IF_NUM_NSVC; i++) { if (!(valid & (1 << i))) continue; diff --git a/src/gprs_bssgp_pcu.h b/src/gprs_bssgp_pcu.h index 080893f..df22541 100644 --- a/src/gprs_bssgp_pcu.h +++ b/src/gprs_bssgp_pcu.h @@ -21,7 +21,6 @@ #ifndef GPRS_BSSGP_PCU_H #define GPRS_BSSGP_PCU_H - #ifdef __cplusplus extern "C" { #endif @@ -40,6 +39,7 @@ #include #include +#include #define QOS_PROFILE 4 #define BSSGP_HDR_LEN 53 diff --git a/src/gprs_rlcmac.h b/src/gprs_rlcmac.h index d779d08..a5d1d30 100644 --- a/src/gprs_rlcmac.h +++ b/src/gprs_rlcmac.h @@ -22,16 +22,20 @@ #define GPRS_RLCMAC_H #include +#include -#ifdef __cplusplus #include +#ifdef __cplusplus extern "C" { +#endif #include #include #include +#include #include #include "gsm_rlcmac.h" +#ifdef __cplusplus } #endif @@ -92,17 +96,12 @@ int gprs_rlcmac_tx_ul_ud(gprs_rlcmac_tbf *tbf); -int gprs_rlcmac_paging_request(const struct osmo_mobile_identity *mi, uint16_t pgroup); - struct msgb *gprs_rlcmac_app_info_msg(const struct gsm_pcu_if_app_info_req *req); int gprs_rlcmac_rcv_rts_block(struct gprs_rlcmac_bts *bts, uint8_t trx, uint8_t ts, uint32_t fn, uint8_t block_nr); -int gprs_alloc_max_dl_slots_per_ms(const struct gprs_rlcmac_bts *bts, - uint8_t ms_class = 0); - extern "C" { #endif int alloc_algorithm_a(struct gprs_rlcmac_bts *bts, struct GprsMs *ms, struct gprs_rlcmac_tbf *tbf, bool single, @@ -113,8 +112,12 @@ int alloc_algorithm_dynamic(struct gprs_rlcmac_bts *bts, struct GprsMs *ms, struct gprs_rlcmac_tbf *tbf, bool single, int8_t use_trx); + +int gprs_rlcmac_paging_request(const struct osmo_mobile_identity *mi, uint16_t pgroup); +int gprs_alloc_max_dl_slots_per_ms(const struct gprs_rlcmac_bts *bts, uint8_t ms_class); #ifdef __cplusplus } #endif + #endif // GPRS_RLCMAC_H diff --git a/src/pdch.cpp b/src/pdch.cpp index 9dd4072..c48c63f 100644 --- a/src/pdch.cpp +++ b/src/pdch.cpp @@ -596,8 +596,8 @@ if (request->Exist_MS_Radio_Access_capability2) { uint8_t ms_class, egprs_ms_class; - ms_class = Decoding::get_ms_class_by_capability(&request->MS_Radio_Access_capability2); - egprs_ms_class = Decoding::get_egprs_ms_class_by_capability(&request->MS_Radio_Access_capability2); + ms_class = get_ms_class_by_capability(&request->MS_Radio_Access_capability2); + egprs_ms_class = get_egprs_ms_class_by_capability(&request->MS_Radio_Access_capability2); if (ms_class) ms_set_ms_class(ms, ms_class); if (egprs_ms_class) diff --git a/src/rlc.h b/src/rlc.h index eb79430..187a70e 100644 --- a/src/rlc.h +++ b/src/rlc.h @@ -18,13 +18,17 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #pragma once - +#ifdef __cplusplus extern "C" { -#include "coding_scheme.h" -} +#endif +#include "coding_scheme.h" #include +#ifdef __cplusplus +} +#endif + #include #include diff --git a/src/tbf_dl.cpp b/src/tbf_dl.cpp index 962c31d..87c897f 100644 --- a/src/tbf_dl.cpp +++ b/src/tbf_dl.cpp @@ -278,11 +278,11 @@ /** * TODO: split into unit test-able parts... */ -int gprs_rlcmac_dl_tbf::handle(struct gprs_rlcmac_bts *bts, - const uint32_t tlli, const uint32_t tlli_old, const char *imsi, - uint8_t ms_class, uint8_t egprs_ms_class, - const uint16_t delay_csec, - const uint8_t *data, const uint16_t len) +int dl_tbf_handle(struct gprs_rlcmac_bts *bts, + const uint32_t tlli, const uint32_t tlli_old, const char *imsi, + uint8_t ms_class, uint8_t egprs_ms_class, + const uint16_t delay_csec, + const uint8_t *data, const uint16_t len) { struct gprs_rlcmac_dl_tbf *dl_tbf = NULL; int rc; diff --git a/src/tbf_dl.h b/src/tbf_dl.h index e29bb3f..58d863b 100644 --- a/src/tbf_dl.h +++ b/src/tbf_dl.h @@ -23,6 +23,8 @@ #include "tbf.h" +#include + /* * TBF instance */ @@ -42,12 +44,6 @@ gprs_rlcmac_dl_tbf(struct gprs_rlcmac_bts *bts, GprsMs *ms); gprs_rlc_window *window(); void cleanup(); - /* dispatch Unitdata.DL messages */ - static int handle(struct gprs_rlcmac_bts *bts, - const uint32_t tlli, const uint32_t old_tlli, - const char *imsi, const uint8_t ms_class, - const uint8_t egprs_ms_class, const uint16_t delay_csec, - const uint8_t *data, const uint16_t len); int append_data(uint16_t pdu_delay_csec, const uint8_t *data, uint16_t len); @@ -151,7 +147,16 @@ #ifdef __cplusplus extern "C" { #endif +struct gprs_rlcmac_bts; + struct gprs_rlcmac_dl_tbf *as_dl_tbf(struct gprs_rlcmac_tbf *tbf); +/* dispatch Unitdata.DL messages */ +int dl_tbf_handle(struct gprs_rlcmac_bts *bts, + const uint32_t tlli, const uint32_t old_tlli, + const char *imsi, const uint8_t ms_class, + const uint8_t egprs_ms_class, const uint16_t delay_csec, + const uint8_t *data, const uint16_t len); + #ifdef __cplusplus } #endif diff --git a/tests/rlcmac/RLCMACTest.cpp b/tests/rlcmac/RLCMACTest.cpp index 140b2f2..c6ad192 100644 --- a/tests/rlcmac/RLCMACTest.cpp +++ b/tests/rlcmac/RLCMACTest.cpp @@ -259,8 +259,8 @@ OSMO_ASSERT(data.Count_MS_RA_capability_value == 1); /* Make sure GPRS / EGPRS multislot class is parsed correctly */ - printf("GPRS multislot class = %u\n", Decoding::get_ms_class_by_capability(&data)); - printf("EGPRS multislot class = %u\n", Decoding::get_egprs_ms_class_by_capability(&data)); + printf("GPRS multislot class = %u\n", get_ms_class_by_capability(&data)); + printf("EGPRS multislot class = %u\n", get_egprs_ms_class_by_capability(&data)); /* Test encoding of decoded MS RA Capability */ printf("=== Test encoding of MS RA Capability ===\n"); @@ -466,8 +466,8 @@ OSMO_ASSERT(data.Count_MS_RA_capability_value == 3); /* Make sure GPRS / EGPRS multislot class is parsed correctly */ - printf("GPRS multislot class = %u\n", Decoding::get_ms_class_by_capability(&data)); - printf("EGPRS multislot class = %u\n", Decoding::get_egprs_ms_class_by_capability(&data)); + printf("GPRS multislot class = %u\n", get_ms_class_by_capability(&data)); + printf("EGPRS multislot class = %u\n", get_egprs_ms_class_by_capability(&data)); bitvec_free(bv_dec); } diff --git a/tests/tbf/TbfTest.cpp b/tests/tbf/TbfTest.cpp index ef26862..fbcb503 100644 --- a/tests/tbf/TbfTest.cpp +++ b/tests/tbf/TbfTest.cpp @@ -500,7 +500,7 @@ snprintf(imsi, sizeof(imsi), "001001%09d", i); - rc = gprs_rlcmac_dl_tbf::handle(bts, tlli, 0, imsi, ms_class, 0, + rc = dl_tbf_handle(bts, tlli, 0, imsi, ms_class, 0, delay_csec, buf, sizeof(buf)); if (rc < 0) @@ -545,7 +545,7 @@ /* Handle LLC frame 1 */ memset(buf, 1, sizeof(buf)); - rc = gprs_rlcmac_dl_tbf::handle(bts, tlli, 0, imsi, ms_class, 0, + rc = dl_tbf_handle(bts, tlli, 0, imsi, ms_class, 0, delay_csec, buf, sizeof(buf)); OSMO_ASSERT(rc >= 0); @@ -556,7 +556,7 @@ /* Handle LLC frame 2 */ memset(buf, 2, sizeof(buf)); - rc = gprs_rlcmac_dl_tbf::handle(bts, tlli, 0, imsi, ms_class, 0, + rc = dl_tbf_handle(bts, tlli, 0, imsi, ms_class, 0, delay_csec, buf, sizeof(buf)); OSMO_ASSERT(rc >= 0); @@ -565,7 +565,7 @@ /* Handle LLC frame 3 */ memset(buf, 3, sizeof(buf)); - rc = gprs_rlcmac_dl_tbf::handle(bts, tlli, 0, imsi, ms_class, 0, + rc = dl_tbf_handle(bts, tlli, 0, imsi, ms_class, 0, delay_csec, buf, sizeof(buf)); OSMO_ASSERT(rc >= 0); @@ -1651,7 +1651,7 @@ ms = bts_ms_store(bts)->get_ms(tlli, 0, imsi); - gprs_rlcmac_dl_tbf::handle(bts, tlli, 0, imsi, 0, 0, + dl_tbf_handle(bts, tlli, 0, imsi, 0, 0, 1000, data, data_size); ms = bts_ms_by_imsi(bts, imsi); @@ -2206,7 +2206,7 @@ gprs_bssgp_init(bts, 3234, 3234, 1, 1, false, 0, 0, 0); /* Does not support EGPRS */ - rc = gprs_rlcmac_dl_tbf::handle(bts, tlli, 0, imsi, ms_class, 0, + rc = dl_tbf_handle(bts, tlli, 0, imsi, ms_class, 0, delay_csec, buf, sizeof(buf)); OSMO_ASSERT(rc == 0); -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22295 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ic771a89fd78b5e66151a5384f0ff6a8895589466 Gerrit-Change-Number: 22295 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 16:40:09 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 19 Jan 2021 16:40:09 +0000 Subject: Change in osmo-pcu[master]: Move tbf::free_all static methods to proper object files In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22296 ) Change subject: Move tbf::free_all static methods to proper object files ...................................................................... Move tbf::free_all static methods to proper object files Move each method to the object on which they operate, be it a trx or a pdch ts. Change-Id: Ida715cbf384431d37b2b192fbd7882957c93a4d1 --- M src/bts.cpp M src/bts.h M src/osmobts_sock.cpp M src/pdch.cpp M src/pdch.h M src/tbf.cpp M src/tbf.h 7 files changed, 31 insertions(+), 25 deletions(-) Approvals: Jenkins Builder: Verified neels: Looks good to me, approved osmith: Looks good to me, but someone else must approve diff --git a/src/bts.cpp b/src/bts.cpp index 0e08091..499c033 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -70,6 +70,12 @@ } } +void bts_trx_free_all_tbf(struct gprs_rlcmac_trx *trx) +{ + for (uint8_t ts = 0; ts < 8; ts++) + pdch_free_all_tbf(&trx->pdch[ts]); +} + static struct osmo_tdef T_defs_bts[] = { { .T=3142, .default_val=20, .unit=OSMO_TDEF_S, .desc="timer (s)", .val=0 }, { .T=3169, .default_val=5, .unit=OSMO_TDEF_S, .desc="Reuse of USF and TFI(s) after the MS uplink TBF assignment is invalid (s)", .val=0 }, diff --git a/src/bts.h b/src/bts.h index 8d06939..37fc5dc 100644 --- a/src/bts.h +++ b/src/bts.h @@ -65,6 +65,7 @@ #endif void bts_trx_reserve_slots(struct gprs_rlcmac_trx *trx, enum gprs_rlcmac_tbf_direction dir, uint8_t slots); void bts_trx_unreserve_slots(struct gprs_rlcmac_trx *trx, enum gprs_rlcmac_tbf_direction dir, uint8_t slots); +void bts_trx_free_all_tbf(struct gprs_rlcmac_trx *trx); void bts_update_tbf_ta(const char *p, uint32_t fn, uint8_t trx_no, uint8_t ts, int8_t ta, bool is_rach); #ifdef __cplusplus diff --git a/src/osmobts_sock.cpp b/src/osmobts_sock.cpp index d94c7e7..c68b7b9 100644 --- a/src/osmobts_sock.cpp +++ b/src/osmobts_sock.cpp @@ -118,7 +118,7 @@ bts->trx[trx].pdch[ts].disable(); /* FIXME: NOT ALL RESOURCES are freed in this case... inconsistent with the other code. Share the code with pcu_l1if.c for the reset. */ - gprs_rlcmac_tbf::free_all(&bts->trx[trx]); + bts_trx_free_all_tbf(&bts->trx[trx]); } gprs_bssgp_destroy(bts); diff --git a/src/pdch.cpp b/src/pdch.cpp index c48c63f..15fd139 100644 --- a/src/pdch.cpp +++ b/src/pdch.cpp @@ -152,7 +152,7 @@ return; /* kick all TBF on slot */ - gprs_rlcmac_tbf::free_all(this); + pdch_free_all_tbf(this); /* flush all pending paging messages */ while ((pag = dequeue_paging())) @@ -1017,3 +1017,17 @@ OSMO_ASSERT(tai < PTCCH_TAI_NUM); ptcch_msg[tai] = ta; } + +void pdch_free_all_tbf(struct gprs_rlcmac_pdch *pdch) +{ + for (uint8_t tfi = 0; tfi < 32; tfi++) { + struct gprs_rlcmac_tbf *tbf; + + tbf = pdch->ul_tbf_by_tfi(tfi); + if (tbf) + tbf_free(tbf); + tbf = pdch->dl_tbf_by_tfi(tfi); + if (tbf) + tbf_free(tbf); + } +} diff --git a/src/pdch.h b/src/pdch.h index 2413ef7..57e0f43 100644 --- a/src/pdch.h +++ b/src/pdch.h @@ -183,3 +183,11 @@ } #endif /* __cplusplus */ + +#ifdef __cplusplus +extern "C" { +#endif +void pdch_free_all_tbf(struct gprs_rlcmac_pdch *pdch); +#ifdef __cplusplus +} +#endif diff --git a/src/tbf.cpp b/src/tbf.cpp index 859ebcd..37af21f 100644 --- a/src/tbf.cpp +++ b/src/tbf.cpp @@ -1045,26 +1045,6 @@ return NULL; } -void gprs_rlcmac_tbf::free_all(struct gprs_rlcmac_trx *trx) -{ - for (uint8_t ts = 0; ts < 8; ts++) - free_all(&trx->pdch[ts]); -} - -void gprs_rlcmac_tbf::free_all(struct gprs_rlcmac_pdch *pdch) -{ - for (uint8_t tfi = 0; tfi < 32; tfi++) { - struct gprs_rlcmac_tbf *tbf; - - tbf = pdch->ul_tbf_by_tfi(tfi); - if (tbf) - tbf_free(tbf); - tbf = pdch->dl_tbf_by_tfi(tfi); - if (tbf) - tbf_free(tbf); - } -} - int gprs_rlcmac_tbf::establish_dl_tbf_on_pacch() { struct gprs_rlcmac_dl_tbf *new_tbf = NULL; diff --git a/src/tbf.h b/src/tbf.h index 460de70..d616076 100644 --- a/src/tbf.h +++ b/src/tbf.h @@ -215,9 +215,6 @@ gprs_rlcmac_tbf(struct gprs_rlcmac_bts *bts_, GprsMs *ms, gprs_rlcmac_tbf_direction dir); virtual ~gprs_rlcmac_tbf() {} - static void free_all(struct gprs_rlcmac_trx *trx); - static void free_all(struct gprs_rlcmac_pdch *pdch); - virtual gprs_rlc_window *window() = 0; int setup(int8_t use_trx, bool single_slot); -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22296 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ida715cbf384431d37b2b192fbd7882957c93a4d1 Gerrit-Change-Number: 22296 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 16:40:09 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 19 Jan 2021 16:40:09 +0000 Subject: Change in osmo-pcu[master]: Convert osmo_bts_sock.cpp to C In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22297 ) Change subject: Convert osmo_bts_sock.cpp to C ...................................................................... Convert osmo_bts_sock.cpp to C There's no real point in using C++ there, and using C++ makes the compiler fail to use llist_head in multi-bts patches added later due to: """ 'offsetof' within non-standard-layout type is conditionally-supported """ Change-Id: I8965b5cc5a713e64788b5b6aa183d3035341ddbb --- M src/Makefile.am R src/osmobts_sock.c M src/pcu_l1_if.h M src/pdch.cpp M src/pdch.h M tests/tbf/TbfTest.cpp 6 files changed, 17 insertions(+), 15 deletions(-) Approvals: Jenkins Builder: Verified neels: Looks good to me, approved osmith: Looks good to me, but someone else must approve diff --git a/src/Makefile.am b/src/Makefile.am index 60f05a5..de924a6 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -65,7 +65,7 @@ decoding.cpp \ llc.cpp \ rlc.cpp \ - osmobts_sock.cpp \ + osmobts_sock.c \ gprs_codel.c \ coding_scheme.c \ egprs_rlc_compression.cpp \ diff --git a/src/osmobts_sock.cpp b/src/osmobts_sock.c similarity index 98% rename from src/osmobts_sock.cpp rename to src/osmobts_sock.c index c68b7b9..ec9d7ce 100644 --- a/src/osmobts_sock.cpp +++ b/src/osmobts_sock.c @@ -25,13 +25,13 @@ #include #include #include -extern "C" { + #include #include #include #include #include -} + #include #include @@ -41,9 +41,7 @@ #include #include -extern "C" { int l1if_close_pdch(void *obj); -} /* * osmo-bts PCU socket functions @@ -115,7 +113,7 @@ } #endif for (ts = 0; ts < 8; ts++) - bts->trx[trx].pdch[ts].disable(); + pdch_disable(&bts->trx[trx].pdch[ts]); /* FIXME: NOT ALL RESOURCES are freed in this case... inconsistent with the other code. Share the code with pcu_l1if.c for the reset. */ bts_trx_free_all_tbf(&bts->trx[trx]); diff --git a/src/pcu_l1_if.h b/src/pcu_l1_if.h index 674ccca..8ef262c 100644 --- a/src/pcu_l1_if.h +++ b/src/pcu_l1_if.h @@ -150,19 +150,18 @@ void pcu_l1if_tx_agch(bitvec * block, int len); void pcu_l1if_tx_pch(bitvec * block, int plen, uint16_t pgroup); - -int pcu_tx_txt_ind(enum gsm_pcu_if_text_type t, const char *fmt, ...); - -int pcu_l1if_open(void); -void pcu_l1if_close(void); - -int pcu_rx(uint8_t msg_type, struct gsm_pcu_if *pcu_prim); -int pcu_sock_send(struct msgb *msg); #endif #ifdef __cplusplus extern "C" { #endif +int pcu_rx(uint8_t msg_type, struct gsm_pcu_if *pcu_prim); +int pcu_l1if_open(void); +void pcu_l1if_close(void); +int pcu_sock_send(struct msgb *msg); + +int pcu_tx_txt_ind(enum gsm_pcu_if_text_type t, const char *fmt, ...); + int pcu_rx_rts_req_pdtch(uint8_t trx, uint8_t ts, uint32_t fn, uint8_t block_nr); int pcu_rx_rts_req_ptcch(uint8_t trx, uint8_t ts, diff --git a/src/pdch.cpp b/src/pdch.cpp index 15fd139..5a329f3 100644 --- a/src/pdch.cpp +++ b/src/pdch.cpp @@ -1031,3 +1031,7 @@ tbf_free(tbf); } } + +void pdch_disable(struct gprs_rlcmac_pdch *pdch) { + pdch->disable(); +} diff --git a/src/pdch.h b/src/pdch.h index 57e0f43..8871986 100644 --- a/src/pdch.h +++ b/src/pdch.h @@ -188,6 +188,7 @@ extern "C" { #endif void pdch_free_all_tbf(struct gprs_rlcmac_pdch *pdch); +void pdch_disable(struct gprs_rlcmac_pdch *pdch); #ifdef __cplusplus } #endif diff --git a/tests/tbf/TbfTest.cpp b/tests/tbf/TbfTest.cpp index fbcb503..798dc3c 100644 --- a/tests/tbf/TbfTest.cpp +++ b/tests/tbf/TbfTest.cpp @@ -166,7 +166,7 @@ /* override, requires '-Wl,--wrap=pcu_sock_send' */ int __real_pcu_sock_send(struct msgb *msg); -int __wrap_pcu_sock_send(struct msgb *msg) +extern "C" int __wrap_pcu_sock_send(struct msgb *msg) { return 0; } -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22297 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I8965b5cc5a713e64788b5b6aa183d3035341ddbb Gerrit-Change-Number: 22297 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 16:44:10 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 19 Jan 2021 16:44:10 +0000 Subject: Change in osmo-bsc[master]: show bug: add test_dyn_ts_congestion_tch_f_vs_tch_h.ho_vty In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22263 ) Change subject: show bug: add test_dyn_ts_congestion_tch_f_vs_tch_h.ho_vty ...................................................................... show bug: add test_dyn_ts_congestion_tch_f_vs_tch_h.ho_vty Related: SYS#5297 Change-Id: I3002797dea02dd0c10cfdd091ce73834a753e3a6 --- M tests/handover/handover_tests.ok A tests/handover/test_dyn_ts_congestion_tch_f_vs_tch_h.ho_vty 2 files changed, 59 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve diff --git a/tests/handover/handover_tests.ok b/tests/handover/handover_tests.ok index d0c1c00..f9adca9 100644 --- a/tests/handover/handover_tests.ok +++ b/tests/handover/handover_tests.ok @@ -17,6 +17,7 @@ pass test_congestion_no_oscillation2.ho_vty pass test_disabled_ho_and_as.ho_vty pass test_dyn_ts_amr_tch_f_to_h_congestion_assignment.ho_vty +pass test_dyn_ts_congestion_tch_f_vs_tch_h.ho_vty pass test_dyn_ts_favor_half_used_tch_h_as_target.ho_vty pass test_dyn_ts_favor_moving_half_used_tch_h.ho_vty pass test_ho_to_better_cell.ho_vty diff --git a/tests/handover/test_dyn_ts_congestion_tch_f_vs_tch_h.ho_vty b/tests/handover/test_dyn_ts_congestion_tch_f_vs_tch_h.ho_vty new file mode 100644 index 0000000..1273d75 --- /dev/null +++ b/tests/handover/test_dyn_ts_congestion_tch_f_vs_tch_h.ho_vty @@ -0,0 +1,58 @@ +# If a handover from one TCH kind to the other occupies a dynamic timeslot, +# also adhere to congestion constraints of the other TCH kind, since taking up +# a dyn TS may reduce the available slot count for both kinds of TCH. + +create-bts trx-count 1 timeslots c+s4 TCH/F TCH/F TCH/F dyn dyn dyn PDCH +create-bts trx-count 1 timeslots c+s4 TCH/F TCH/F TCH/F dyn dyn dyn PDCH + +# A TCH/F has better rxlev at a neighbor, and the neighbor's TCH/F slots would +# not become congested. But taking up a neighbor's dynamic timeslot for TCH/F +# would reduce the TCH/H availability to cause congestion on TCH/H. No HO. + +network + handover2 min-free-slots tch/f 0 + handover2 min-free-slots tch/h 4 + +set-ts-use trx 0 0 states * TCH/F - - pdch pdch pdch * +set-ts-use trx 1 0 states * TCH/F TCH/F TCH/F TCH/HH pdch pdch * + +meas-rep lchan * * * * rxlev 40 rxqual 0 ta 0 neighbors 30 +expect-no-chan + +meas-rep lchan 0 0 1 0 rxlev 20 rxqual 0 ta 0 neighbors 40 +# FAIL: should not handover because that results in congestion on TCH/H in bts 1 +expect-ho from lchan 0 0 1 0 to lchan 1 0 5 0 + +expect-ts-use trx 0 0 states * - - - pdch pdch pdch * +expect-ts-use trx 1 0 states * TCH/F TCH/F TCH/F TCH/HH TCH/F pdch * +meas-rep lchan * * * * rxlev 40 rxqual 0 ta 0 neighbors 30 + +congestion-check +# FAIL: really weird: handover one TCH/H to the same cell to TCH/F, taking up another dyn TS. +# TCH/H congestion hence actually gets worse. +expect-ho from lchan 1 0 4 1 to lchan 1 0 6 0 +expect-ts-use trx 0 0 states * - - - pdch pdch pdch * +expect-ts-use trx 1 0 states * TCH/F TCH/F TCH/F TCH/H- TCH/F TCH/F * + +congestion-check +# more FAIL: TCH/H moves to worse bts 0 due to congestion +expect-ho from lchan 1 0 4 0 to lchan 0 0 4 0 +expect-ts-use trx 0 0 states * - - - TCH/H- pdch pdch * +expect-ts-use trx 1 0 states * TCH/F TCH/F TCH/F pdch TCH/F TCH/F * + +congestion-check +expect-no-chan + +meas-rep lchan 1 * * * rxlev 40 rxqual 0 ta 0 neighbors 30 +expect-no-chan + +meas-rep lchan 0 * * * rxlev 30 rxqual 0 ta 0 neighbors 40 +# FAIL: back to bts 1 because of rxlev, plus moving TCH/H to TCH/F!? +expect-ho from lchan 0 0 4 0 to lchan 1 0 4 0 + +expect-ts-use trx 0 0 states * - - - pdch pdch pdch * +expect-ts-use trx 1 0 states * TCH/F TCH/F TCH/F TCH/F TCH/F TCH/F * + +congestion-check +expect-no-chan +# Stable situation now only because TCH/F has min-free-slots set to 0 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22263 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I3002797dea02dd0c10cfdd091ce73834a753e3a6 Gerrit-Change-Number: 22263 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 16:44:12 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 19 Jan 2021 16:44:12 +0000 Subject: Change in osmo-bsc[master]: fixate test_dyn_ts_congestion_tch_f_vs_tch_h.ho_vty In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22264 ) Change subject: fixate test_dyn_ts_congestion_tch_f_vs_tch_h.ho_vty ...................................................................... fixate test_dyn_ts_congestion_tch_f_vs_tch_h.ho_vty The test shows a cascade of failures. When we fix the first failure, it will change the sequence of events that follow after that. But it will still be interesting to evaluate all the situations currently shown. Hence fixate each stage's initial situation, by duplicating the expect-ts-use with an identical set-ts-use. Then, when each individual scenario gets fixed, subsequent scenarios still remain unchanged. Change-Id: Ifeaec39ecb64b476ff1438cf987ba0403489c43b --- M tests/handover/test_dyn_ts_congestion_tch_f_vs_tch_h.ho_vty 1 file changed, 24 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve diff --git a/tests/handover/test_dyn_ts_congestion_tch_f_vs_tch_h.ho_vty b/tests/handover/test_dyn_ts_congestion_tch_f_vs_tch_h.ho_vty index 1273d75..bc2c884 100644 --- a/tests/handover/test_dyn_ts_congestion_tch_f_vs_tch_h.ho_vty +++ b/tests/handover/test_dyn_ts_congestion_tch_f_vs_tch_h.ho_vty @@ -25,6 +25,12 @@ expect-ts-use trx 0 0 states * - - - pdch pdch pdch * expect-ts-use trx 1 0 states * TCH/F TCH/F TCH/F TCH/HH TCH/F pdch * + + +### + +set-ts-use trx 0 0 states * - - - pdch pdch pdch * +set-ts-use trx 1 0 states * TCH/F TCH/F TCH/F TCH/HH TCH/F pdch * meas-rep lchan * * * * rxlev 40 rxqual 0 ta 0 neighbors 30 congestion-check @@ -34,12 +40,24 @@ expect-ts-use trx 0 0 states * - - - pdch pdch pdch * expect-ts-use trx 1 0 states * TCH/F TCH/F TCH/F TCH/H- TCH/F TCH/F * + +### + +set-ts-use trx 0 0 states * - - - pdch pdch pdch * +set-ts-use trx 1 0 states * TCH/F TCH/F TCH/F TCH/H- TCH/F TCH/F * + congestion-check # more FAIL: TCH/H moves to worse bts 0 due to congestion expect-ho from lchan 1 0 4 0 to lchan 0 0 4 0 expect-ts-use trx 0 0 states * - - - TCH/H- pdch pdch * expect-ts-use trx 1 0 states * TCH/F TCH/F TCH/F pdch TCH/F TCH/F * + +### + +set-ts-use trx 0 0 states * - - - TCH/H- pdch pdch * +set-ts-use trx 1 0 states * TCH/F TCH/F TCH/F pdch TCH/F TCH/F * + congestion-check expect-no-chan @@ -53,6 +71,12 @@ expect-ts-use trx 0 0 states * - - - pdch pdch pdch * expect-ts-use trx 1 0 states * TCH/F TCH/F TCH/F TCH/F TCH/F TCH/F * + +### + +set-ts-use trx 0 0 states * - - - pdch pdch pdch * +set-ts-use trx 1 0 states * TCH/F TCH/F TCH/F TCH/F TCH/F TCH/F * + congestion-check expect-no-chan # Stable situation now only because TCH/F has min-free-slots set to 0 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22264 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ifeaec39ecb64b476ff1438cf987ba0403489c43b Gerrit-Change-Number: 22264 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 16:44:13 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 19 Jan 2021 16:44:13 +0000 Subject: Change in osmo-bsc[master]: hodec2: fix congestion resolution on dyn TS In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22265 ) Change subject: hodec2: fix congestion resolution on dyn TS ...................................................................... hodec2: fix congestion resolution on dyn TS For handover algorithm 2, properly figure out what effects the target cell will see for the *other* TCH kind when a handover would occupy a dynamic timeslot. Before this, only TCH/F or TCH/H would be regarded at a time. This introduces detection of whether a dynamic timeslot would be occupied by a handover, and how losing one unused dynamic timeslot affects the congestion situation for the TCH kind that is not targeted by the handover. In other words, if a handover to TCH/F causes congestion in TCH/H because of a dynamic timeslot becoming occupied, the handover will not be performed. Before this, oscillation situations could occur. A subsequent patch will do the same for congestion balancing. Related: SYS#5297 Change-Id: I1536b60f03cb0aeb6ba14a72b518aec82fa572fe --- M src/osmo-bsc/handover_decision_2.c M tests/handover/test_dyn_ts_congestion_tch_f_vs_tch_h.ho_vty 2 files changed, 38 insertions(+), 20 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve diff --git a/src/osmo-bsc/handover_decision_2.c b/src/osmo-bsc/handover_decision_2.c index 0362c9b..92374e9 100644 --- a/src/osmo-bsc/handover_decision_2.c +++ b/src/osmo-bsc/handover_decision_2.c @@ -40,6 +40,7 @@ #include #include #include +#include #define LOGPHOBTS(bts, level, fmt, args...) \ LOGP(DHODEC, level, "(BTS %u) " fmt, bts->nr, ## args) @@ -118,6 +119,9 @@ int min_free_tchf; int free_tchh; int min_free_tchh; + /* Effects of occupying a dynamic timeslot: */ + int next_tchf_reduces_tchh; + int next_tchh_reduces_tchf; } target; }; @@ -637,11 +641,15 @@ /* the minimum free timeslots that are defined for this cell must * be maintained _after_ handover/assignment */ if (requirement & REQUIREMENT_A_TCHF) { - if (c->target.free_tchf - 1 >= c->target.min_free_tchf) + if ((c->target.free_tchf - 1) >= c->target.min_free_tchf + && (!c->target.next_tchf_reduces_tchh + || (c->target.free_tchh - c->target.next_tchf_reduces_tchh) >= c->target.min_free_tchh)) requirement |= REQUIREMENT_B_TCHF; } if (requirement & REQUIREMENT_A_TCHH) { - if (c->target.free_tchh - 1 >= c->target.min_free_tchh) + if ((c->target.free_tchh - 1) >= c->target.min_free_tchh + && (!c->target.next_tchh_reduces_tchf + || (c->target.free_tchf - c->target.next_tchh_reduces_tchf) >= c->target.min_free_tchf)) requirement |= REQUIREMENT_B_TCHH; } @@ -894,6 +902,8 @@ static void candidate_set_free_tch(struct ho_candidate *c) { + struct gsm_lchan *next_lchan; + c->current.free_tch = bts_count_free_ts(c->current.bts, c->current.lchan->ts->pchan_is); switch (c->current.lchan->ts->pchan_is) { case GSM_PCHAN_TCH_F: @@ -909,6 +919,22 @@ c->target.min_free_tchf = ho_get_hodec2_tchf_min_slots(c->target.bts->ho); c->target.free_tchh = bts_count_free_ts(c->target.bts, GSM_PCHAN_TCH_H); c->target.min_free_tchh = ho_get_hodec2_tchh_min_slots(c->target.bts->ho); + + /* Would the next TCH/F lchan occupy a dynamic timeslot that currently counts for free TCH/H timeslots? */ + next_lchan = lchan_avail_by_type(c->target.bts, GSM_LCHAN_TCH_F); + if (next_lchan && next_lchan->ts->pchan_on_init == GSM_PCHAN_TCH_F_TCH_H_PDCH) + c->target.next_tchf_reduces_tchh = 2; + else + c->target.next_tchf_reduces_tchh = 0; + + /* Would the next TCH/H lchan occupy a dynamic timeslot that currently counts for free TCH/F timeslots? + * Note that a dyn TS already in TCH/H mode (half occupied) would not reduce free TCH/F. */ + next_lchan = lchan_avail_by_type(c->target.bts, GSM_LCHAN_TCH_H); + if (next_lchan && next_lchan->ts->pchan_on_init == GSM_PCHAN_TCH_F_TCH_H_PDCH + && next_lchan->ts->pchan_is != GSM_PCHAN_TCH_H) + c->target.next_tchh_reduces_tchf = 1; + else + c->target.next_tchh_reduces_tchf = 0; } /* add candidate for re-assignment within the current cell */ diff --git a/tests/handover/test_dyn_ts_congestion_tch_f_vs_tch_h.ho_vty b/tests/handover/test_dyn_ts_congestion_tch_f_vs_tch_h.ho_vty index bc2c884..c5890a5 100644 --- a/tests/handover/test_dyn_ts_congestion_tch_f_vs_tch_h.ho_vty +++ b/tests/handover/test_dyn_ts_congestion_tch_f_vs_tch_h.ho_vty @@ -20,12 +20,8 @@ expect-no-chan meas-rep lchan 0 0 1 0 rxlev 20 rxqual 0 ta 0 neighbors 40 -# FAIL: should not handover because that results in congestion on TCH/H in bts 1 -expect-ho from lchan 0 0 1 0 to lchan 1 0 5 0 - -expect-ts-use trx 0 0 states * - - - pdch pdch pdch * -expect-ts-use trx 1 0 states * TCH/F TCH/F TCH/F TCH/HH TCH/F pdch * - +# no handover because that results in congestion on TCH/H in bts 1 +expect-no-chan ### @@ -34,11 +30,9 @@ meas-rep lchan * * * * rxlev 40 rxqual 0 ta 0 neighbors 30 congestion-check -# FAIL: really weird: handover one TCH/H to the same cell to TCH/F, taking up another dyn TS. -# TCH/H congestion hence actually gets worse. -expect-ho from lchan 1 0 4 1 to lchan 1 0 6 0 -expect-ts-use trx 0 0 states * - - - pdch pdch pdch * -expect-ts-use trx 1 0 states * TCH/F TCH/F TCH/F TCH/H- TCH/F TCH/F * +expect-ho from lchan 1 0 4 1 to lchan 0 0 4 0 +expect-ts-use trx 0 0 states * - - - TCH/H- pdch pdch * +expect-ts-use trx 1 0 states * TCH/F TCH/F TCH/F TCH/H- TCH/F pdch * ### @@ -65,12 +59,9 @@ expect-no-chan meas-rep lchan 0 * * * rxlev 30 rxqual 0 ta 0 neighbors 40 -# FAIL: back to bts 1 because of rxlev, plus moving TCH/H to TCH/F!? -expect-ho from lchan 0 0 4 0 to lchan 1 0 4 0 - -expect-ts-use trx 0 0 states * - - - pdch pdch pdch * -expect-ts-use trx 1 0 states * TCH/F TCH/F TCH/F TCH/F TCH/F TCH/F * - +# no HO because the target is congested on TCH/H. Moving to TCH/F would also +# reduce TCH/H lchans because it would convert another dyn TS. +expect-no-chan ### @@ -78,5 +69,6 @@ set-ts-use trx 1 0 states * TCH/F TCH/F TCH/F TCH/F TCH/F TCH/F * congestion-check +# FAIL: TCH/F occupy dynamic timeslots -- should hand over to bts 0 to free a +# dyn TS and reduce TCH/H congestion. expect-no-chan -# Stable situation now only because TCH/F has min-free-slots set to 0 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22265 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I1536b60f03cb0aeb6ba14a72b518aec82fa572fe Gerrit-Change-Number: 22265 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 16:44:13 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 19 Jan 2021 16:44:13 +0000 Subject: Change in osmo-bsc[master]: add test_dyn_ts_congestion_tch_f_vs_tch_h_2.ho_vty In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22266 ) Change subject: add test_dyn_ts_congestion_tch_f_vs_tch_h_2.ho_vty ...................................................................... add test_dyn_ts_congestion_tch_f_vs_tch_h_2.ho_vty Change-Id: Ib11d10f35f72a3dff65bb0c5e185fdda602ccd63 --- M tests/handover/handover_tests.ok A tests/handover/test_dyn_ts_congestion_tch_f_vs_tch_h_2.ho_vty 2 files changed, 35 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve diff --git a/tests/handover/handover_tests.ok b/tests/handover/handover_tests.ok index f9adca9..e1e35a9 100644 --- a/tests/handover/handover_tests.ok +++ b/tests/handover/handover_tests.ok @@ -18,6 +18,7 @@ pass test_disabled_ho_and_as.ho_vty pass test_dyn_ts_amr_tch_f_to_h_congestion_assignment.ho_vty pass test_dyn_ts_congestion_tch_f_vs_tch_h.ho_vty +pass test_dyn_ts_congestion_tch_f_vs_tch_h_2.ho_vty pass test_dyn_ts_favor_half_used_tch_h_as_target.ho_vty pass test_dyn_ts_favor_moving_half_used_tch_h.ho_vty pass test_ho_to_better_cell.ho_vty diff --git a/tests/handover/test_dyn_ts_congestion_tch_f_vs_tch_h_2.ho_vty b/tests/handover/test_dyn_ts_congestion_tch_f_vs_tch_h_2.ho_vty new file mode 100644 index 0000000..ef71d3e --- /dev/null +++ b/tests/handover/test_dyn_ts_congestion_tch_f_vs_tch_h_2.ho_vty @@ -0,0 +1,34 @@ +# If a handover from one TCH kind to the other occupies a dynamic timeslot, +# also adhere to congestion constraints of the other TCH kind, since taking up +# a dyn TS may reduce the available slot count for both kinds of TCH. + +create-bts trx-count 1 timeslots c+s4 TCH/F TCH/F TCH/F dyn dyn dyn PDCH +create-bts trx-count 1 timeslots c+s4 TCH/F TCH/F TCH/F dyn dyn dyn PDCH + +# A TCH/H has better rxlev at a neighbor, and the neighbor's TCH/H slots would +# not become congested. But taking up a neighbor's dynamic timeslot for TCH/H +# would reduce the TCH/F availability to cause congestion on TCH/F. No HO. + +network + handover2 min-free-slots tch/f 2 + handover2 min-free-slots tch/h 2 + +set-ts-use trx 0 0 states * - - - TCH/H- pdch pdch * +set-ts-use trx 1 0 states * TCH/F TCH/F TCH/F TCH/HH pdch pdch * + +meas-rep lchan * * * * rxlev 40 rxqual 0 ta 0 neighbors 30 +expect-no-chan + +meas-rep lchan 0 0 4 0 rxlev 20 rxqual 0 ta 0 neighbors 40 +# no handover because that results in congestion on TCH/F in bts 1 +expect-no-chan + + +# Now the same situation, except there already is a half occupied TCH/H, hence an added TCH/H would not change the TCH/F +# situation. The handover is performed. + +set-ts-use trx 0 0 states * - - - TCH/H- pdch pdch * +set-ts-use trx 1 0 states * TCH/F TCH/F TCH/F TCH/HH TCH/H- pdch * + +meas-rep lchan 0 0 4 0 rxlev 20 rxqual 0 ta 0 neighbors 40 +expect-ho from lchan 0 0 4 0 to lchan 1 0 5 1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22266 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ib11d10f35f72a3dff65bb0c5e185fdda602ccd63 Gerrit-Change-Number: 22266 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 16:44:14 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 19 Jan 2021 16:44:14 +0000 Subject: Change in osmo-bsc[master]: lchan_avail(): omit logging for handover decision 2 In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22267 ) Change subject: lchan_avail(): omit logging for handover decision 2 ...................................................................... lchan_avail(): omit logging for handover decision 2 Add bool log argument to lchan_avail_by_type() and omit logging when passed as false. From handover_decision_2.c, pass 'log' as false, from all other callers pass true, i.e. for unchanged behavior. Rationale: Usually, we use lchan_avail_by_type() to select a new lchan to initiate actual service. For that, it is interesting to see how osmo-bsc decides which lchan will be used. For handover decision 2, we since recently call lchan_avail_by_type() for each and every handover candidate, to determine whether it will occupy a dynamic timeslot or not (to know whether we would congest the other TCH kind). So this happens for each permutation of source lchan and target cell. That produces a lot of logging, out of proportion of being useful to the maintainer. Change-Id: Ia403f8fc853ca9ea9e81f7a7395df6b23845ebed --- M include/osmocom/bsc/lchan_select.h M src/osmo-bsc/abis_rsl.c M src/osmo-bsc/handover_decision_2.c M src/osmo-bsc/lchan_select.c 4 files changed, 25 insertions(+), 23 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve diff --git a/include/osmocom/bsc/lchan_select.h b/include/osmocom/bsc/lchan_select.h index 41e7015..11f63b0 100644 --- a/include/osmocom/bsc/lchan_select.h +++ b/include/osmocom/bsc/lchan_select.h @@ -4,4 +4,4 @@ struct gsm_lchan *lchan_select_by_type(struct gsm_bts *bts, enum gsm_chan_t type); struct gsm_lchan *lchan_select_by_chan_mode(struct gsm_bts *bts, enum gsm48_chan_mode chan_mode, enum channel_rate chan_rate); -struct gsm_lchan *lchan_avail_by_type(struct gsm_bts *bts, enum gsm_chan_t type); +struct gsm_lchan *lchan_avail_by_type(struct gsm_bts *bts, enum gsm_chan_t type, bool log); diff --git a/src/osmo-bsc/abis_rsl.c b/src/osmo-bsc/abis_rsl.c index a68c9fb..321bcb4 100644 --- a/src/osmo-bsc/abis_rsl.c +++ b/src/osmo-bsc/abis_rsl.c @@ -1610,12 +1610,12 @@ /* First check the situation on the BTS, if we have TCH/H or TCH/F resources available for another (EMERGENCY) * call. If yes, then no (further) action has to be carried out. */ - if (lchan_avail_by_type(rqd->bts, GSM_LCHAN_TCH_F)) { + if (lchan_avail_by_type(rqd->bts, GSM_LCHAN_TCH_F, true)) { LOG_BTS(rqd->bts, DRSL, LOGL_NOTICE, "CHAN RQD/EMERGENCY-PRIORITY: at least one TCH/F is (now) available!\n"); return false; } - if (lchan_avail_by_type(rqd->bts, GSM_LCHAN_TCH_H)) { + if (lchan_avail_by_type(rqd->bts, GSM_LCHAN_TCH_H, true)) { LOG_BTS(rqd->bts, DRSL, LOGL_NOTICE, "CHAN RQD/EMERGENCY-PRIORITY: at least one TCH/H is (now) available!\n"); return false; diff --git a/src/osmo-bsc/handover_decision_2.c b/src/osmo-bsc/handover_decision_2.c index 92374e9..598f05b 100644 --- a/src/osmo-bsc/handover_decision_2.c +++ b/src/osmo-bsc/handover_decision_2.c @@ -921,7 +921,7 @@ c->target.min_free_tchh = ho_get_hodec2_tchh_min_slots(c->target.bts->ho); /* Would the next TCH/F lchan occupy a dynamic timeslot that currently counts for free TCH/H timeslots? */ - next_lchan = lchan_avail_by_type(c->target.bts, GSM_LCHAN_TCH_F); + next_lchan = lchan_avail_by_type(c->target.bts, GSM_LCHAN_TCH_F, false); if (next_lchan && next_lchan->ts->pchan_on_init == GSM_PCHAN_TCH_F_TCH_H_PDCH) c->target.next_tchf_reduces_tchh = 2; else @@ -929,7 +929,7 @@ /* Would the next TCH/H lchan occupy a dynamic timeslot that currently counts for free TCH/F timeslots? * Note that a dyn TS already in TCH/H mode (half occupied) would not reduce free TCH/F. */ - next_lchan = lchan_avail_by_type(c->target.bts, GSM_LCHAN_TCH_H); + next_lchan = lchan_avail_by_type(c->target.bts, GSM_LCHAN_TCH_H, false); if (next_lchan && next_lchan->ts->pchan_on_init == GSM_PCHAN_TCH_F_TCH_H_PDCH && next_lchan->ts->pchan_is != GSM_PCHAN_TCH_H) c->target.next_tchh_reduces_tchf = 1; diff --git a/src/osmo-bsc/lchan_select.c b/src/osmo-bsc/lchan_select.c index 64f4939..626520c 100644 --- a/src/osmo-bsc/lchan_select.c +++ b/src/osmo-bsc/lchan_select.c @@ -32,13 +32,14 @@ static struct gsm_lchan * _lc_find_trx(struct gsm_bts_trx *trx, enum gsm_phys_chan_config pchan, - enum gsm_phys_chan_config as_pchan, bool allow_pchan_switch) + enum gsm_phys_chan_config as_pchan, bool allow_pchan_switch, bool log) { struct gsm_lchan *lchan; struct gsm_bts_trx_ts *ts; int j, start, stop, dir; #define LOGPLCHANALLOC(fmt, args...) \ + if (log) \ LOGP(DRLL, LOGL_DEBUG, "looking for lchan %s%s%s%s: " fmt, \ gsm_pchan_name(pchan), \ pchan == as_pchan ? "" : " as ", \ @@ -103,7 +104,7 @@ static struct gsm_lchan * _lc_dyn_find_bts(struct gsm_bts *bts, enum gsm_phys_chan_config pchan, - enum gsm_phys_chan_config dyn_as_pchan) + enum gsm_phys_chan_config dyn_as_pchan, bool log) { struct gsm_bts_trx *trx; struct gsm_lchan *lc; @@ -119,13 +120,13 @@ for (allow_pchan_switch = 0; allow_pchan_switch <= (try_pchan_switch ? 1 : 0); allow_pchan_switch++) { if (bts->chan_alloc_reverse) { llist_for_each_entry_reverse(trx, &bts->trx_list, list) { - lc = _lc_find_trx(trx, pchan, dyn_as_pchan, (bool)allow_pchan_switch); + lc = _lc_find_trx(trx, pchan, dyn_as_pchan, (bool)allow_pchan_switch, log); if (lc) return lc; } } else { llist_for_each_entry(trx, &bts->trx_list, list) { - lc = _lc_find_trx(trx, pchan, dyn_as_pchan, (bool)allow_pchan_switch); + lc = _lc_find_trx(trx, pchan, dyn_as_pchan, (bool)allow_pchan_switch, log); if (lc) return lc; } @@ -136,9 +137,9 @@ } static struct gsm_lchan * -_lc_find_bts(struct gsm_bts *bts, enum gsm_phys_chan_config pchan) +_lc_find_bts(struct gsm_bts *bts, enum gsm_phys_chan_config pchan, bool log) { - return _lc_dyn_find_bts(bts, pchan, pchan); + return _lc_dyn_find_bts(bts, pchan, pchan, log); } struct gsm_lchan *lchan_select_by_chan_mode(struct gsm_bts *bts, @@ -175,12 +176,13 @@ return lchan_select_by_type(bts, type); } -struct gsm_lchan *lchan_avail_by_type(struct gsm_bts *bts, enum gsm_chan_t type) +struct gsm_lchan *lchan_avail_by_type(struct gsm_bts *bts, enum gsm_chan_t type, bool log) { struct gsm_lchan *lchan = NULL; enum gsm_phys_chan_config first, first_cbch, second, second_cbch; - LOG_BTS(bts, DRLL, LOGL_DEBUG, "lchan_avail_by_type(%s)\n", gsm_lchant_name(type)); + if (log) + LOG_BTS(bts, DRLL, LOGL_DEBUG, "lchan_avail_by_type(%s)\n", gsm_lchant_name(type)); switch (type) { case GSM_LCHAN_SDCCH: @@ -196,20 +198,20 @@ second_cbch = GSM_PCHAN_SDCCH8_SACCH8C_CBCH; } - lchan = _lc_find_bts(bts, first); + lchan = _lc_find_bts(bts, first, log); if (lchan == NULL) - lchan = _lc_find_bts(bts, first_cbch); + lchan = _lc_find_bts(bts, first_cbch, log); if (lchan == NULL) - lchan = _lc_find_bts(bts, second); + lchan = _lc_find_bts(bts, second, log); if (lchan == NULL) - lchan = _lc_find_bts(bts, second_cbch); + lchan = _lc_find_bts(bts, second_cbch, log); break; case GSM_LCHAN_TCH_F: - lchan = _lc_find_bts(bts, GSM_PCHAN_TCH_F); + lchan = _lc_find_bts(bts, GSM_PCHAN_TCH_F, log); /* If we don't have TCH/F available, try dynamic TCH/F_PDCH */ if (!lchan) { lchan = _lc_dyn_find_bts(bts, GSM_PCHAN_TCH_F_PDCH, - GSM_PCHAN_TCH_F); + GSM_PCHAN_TCH_F, log); /* TCH/F_PDCH used as TCH/F -- here, type is already * set to GSM_LCHAN_TCH_F, but for clarity's sake... */ if (lchan) @@ -220,19 +222,19 @@ if (!lchan && bts->network->dyn_ts_allow_tch_f) { lchan = _lc_dyn_find_bts(bts, GSM_PCHAN_TCH_F_TCH_H_PDCH, - GSM_PCHAN_TCH_F); + GSM_PCHAN_TCH_F, log); if (lchan) type = GSM_LCHAN_TCH_F; } break; case GSM_LCHAN_TCH_H: - lchan = _lc_find_bts(bts, GSM_PCHAN_TCH_H); + lchan = _lc_find_bts(bts, GSM_PCHAN_TCH_H, log); /* No dedicated TCH/x available -- try fully dynamic * TCH/F_TCH/H_PDCH */ if (!lchan) { lchan = _lc_dyn_find_bts(bts, GSM_PCHAN_TCH_F_TCH_H_PDCH, - GSM_PCHAN_TCH_H); + GSM_PCHAN_TCH_H, log); if (lchan) type = GSM_LCHAN_TCH_H; } @@ -251,7 +253,7 @@ { struct gsm_lchan *lchan = NULL; - lchan = lchan_avail_by_type(bts, type); + lchan = lchan_avail_by_type(bts, type, true); LOG_BTS(bts, DRLL, LOGL_DEBUG, "lchan_select_by_type(%s)\n", gsm_lchant_name(type)); -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22267 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ia403f8fc853ca9ea9e81f7a7395df6b23845ebed Gerrit-Change-Number: 22267 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 16:44:14 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 19 Jan 2021 16:44:14 +0000 Subject: Change in osmo-bsc[master]: show bug: add test_dyn_ts_balance_congestion.ho_vty In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22268 ) Change subject: show bug: add test_dyn_ts_balance_congestion.ho_vty ...................................................................... show bug: add test_dyn_ts_balance_congestion.ho_vty Related: SYS#5298 Change-Id: I34471fbd490a95253bd0709308a42cde2af6481c --- M tests/handover/handover_tests.ok A tests/handover/test_dyn_ts_balance_congestion.ho_vty 2 files changed, 32 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve diff --git a/tests/handover/handover_tests.ok b/tests/handover/handover_tests.ok index e1e35a9..2658f8b 100644 --- a/tests/handover/handover_tests.ok +++ b/tests/handover/handover_tests.ok @@ -17,6 +17,7 @@ pass test_congestion_no_oscillation2.ho_vty pass test_disabled_ho_and_as.ho_vty pass test_dyn_ts_amr_tch_f_to_h_congestion_assignment.ho_vty +pass test_dyn_ts_balance_congestion.ho_vty pass test_dyn_ts_congestion_tch_f_vs_tch_h.ho_vty pass test_dyn_ts_congestion_tch_f_vs_tch_h_2.ho_vty pass test_dyn_ts_favor_half_used_tch_h_as_target.ho_vty diff --git a/tests/handover/test_dyn_ts_balance_congestion.ho_vty b/tests/handover/test_dyn_ts_balance_congestion.ho_vty new file mode 100644 index 0000000..ad9d6a5 --- /dev/null +++ b/tests/handover/test_dyn_ts_balance_congestion.ho_vty @@ -0,0 +1,31 @@ +# To balance congestion, consider cross effects between TCH/F and TCH/H when occupying a dynamic timeslot in the target: +# when balancing of TCH/F congestion would take up a dyn TS in the target, reducing TCH/H availability, the handover +# should not cause worse TCH/H congestion than in the source cell. + +create-bts trx-count 1 timeslots c+s4 TCH/F TCH/F TCH/F TCH/F TCH/F TCH/F PDCH +create-bts trx-count 1 timeslots c+s4 TCH/F TCH/F TCH/F TCH/F dyn dyn PDCH + +# for this test, avoid changing a TCH/F to a TCH/H by using a non-AMR codec +codec tch/f FR + +network + bts 0 + handover2 min-free-slots tch/f 2 + bts 1 + handover2 min-free-slots tch/f 4 + handover2 min-free-slots tch/h 4 + +set-ts-use trx 0 0 states * TCH/F TCH/F TCH/F TCH/F TCH/F TCH/F * +set-ts-use trx 1 0 states * TCH/F TCH/F TCH/F TCH/F pdch pdch * + +meas-rep lchan * * * * rxlev 40 rxqual 0 ta 0 neighbors 30 +expect-no-chan + +# bts 0 is full for TCH/F. Looking at TCH/F, by target_overbooked_after_ho==75% < current_overbooked_before_ho==100%, a +# congestion balancing to bts 1 would be performed. But the TCH/F on the target cell would occupy a dynamic timeslot. +# That would reduce the TCH/H free slots by two and cause TCH/H being overbooked by 50%. On the source cell, TCH/H is +# not congested. No handover is performed because 50% in the target is more congestion for TCH/H than 0% in the source +# cell. +congestion-check +# FAIL: should not increase TCH/H congestion by occupying a dyn TS +expect-ho from lchan 0 0 1 0 to lchan 1 0 5 0 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22268 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I34471fbd490a95253bd0709308a42cde2af6481c Gerrit-Change-Number: 22268 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 16:44:15 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 19 Jan 2021 16:44:15 +0000 Subject: Change in osmo-bsc[master]: hodec2: fix congestion balancing on dyn TS In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22269 ) Change subject: hodec2: fix congestion balancing on dyn TS ...................................................................... hodec2: fix congestion balancing on dyn TS When balancing congestion, not only look at TCH/F or TCH/H separately, but also to take into account the effects on the other TCH kind from using/freeing dynamic TS. Related: OS#5298 Change-Id: I433df6f343650f9056b1bab926bc19ac1d867ad5 --- M src/osmo-bsc/handover_decision_2.c M tests/handover/test_dyn_ts_balance_congestion.ho_vty 2 files changed, 109 insertions(+), 18 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve diff --git a/src/osmo-bsc/handover_decision_2.c b/src/osmo-bsc/handover_decision_2.c index 598f05b..0bfae9b 100644 --- a/src/osmo-bsc/handover_decision_2.c +++ b/src/osmo-bsc/handover_decision_2.c @@ -106,8 +106,18 @@ struct gsm_lchan *lchan; struct gsm_bts *bts; int rxlev; + /* free/min-free for the current TCH kind, same as either free_tch_f or free_tch_h below */ int free_tch; int min_free_tch; + /* free/min-free for the two TCH kinds, to calculate F<->H cross effects for dynamic timeslots */ + int free_tchf; + int min_free_tchf; + int free_tchh; + int min_free_tchh; + /* Effects of freeing a dynamic timeslot, i.e. turning it into PDCH mode and making available more free + * TCH: */ + int lchan_frees_tchf; + int lchan_frees_tchh; } current; struct { struct neighbor_ident_key nik; /* neighbor ARFCN+BSIC */ @@ -119,7 +129,8 @@ int min_free_tchf; int free_tchh; int min_free_tchh; - /* Effects of occupying a dynamic timeslot: */ + /* Effects of occupying a dynamic timeslot, i.e. turning from PDCH into a specific TCH kind, and + * reducing the number of free TCH for both TCH/F and TCH/H: */ int next_tchf_reduces_tchh; int next_tchh_reduces_tchf; } target; @@ -155,6 +166,17 @@ static void congestion_check_cb(void *arg); +static unsigned int ts_usage_count(struct gsm_bts_trx_ts *ts) +{ + struct gsm_lchan *lchan; + unsigned int count = 0; + ts_for_each_lchan(lchan, ts) { + if (lchan_state_is(lchan, LCHAN_ST_ESTABLISHED)) + count++; + } + return count; +} + /* This function gets called on ho2 init, whenever the congestion check interval is changed, and also * when the timer has fired to trigger again after the next congestion check timeout. */ static void reinit_congestion_timer(struct gsm_network *net) @@ -659,21 +681,75 @@ * congestion on the current cell, hence the - 1 on the target. */ current_overbooked = load_above_congestion(c->current.free_tch, c->current.min_free_tch); if (requirement & REQUIREMENT_A_TCHF) { + bool ok; int32_t target_overbooked = load_above_congestion(c->target.free_tchf - 1, c->target.min_free_tchf); LOGPHOLCHANTOBTS(c->current.lchan, c->target.bts, LOGL_DEBUG, "current overbooked = %s%%, TCH/F target overbooked after HO = %s%%\n", osmo_int_to_float_str_c(OTC_SELECT, current_overbooked, LOAD_PRECISION - 2), osmo_int_to_float_str_c(OTC_SELECT, target_overbooked, LOAD_PRECISION - 2)); - if (target_overbooked < current_overbooked) + ok = target_overbooked < current_overbooked; + /* Look at dynamic timeslot effects on TCH/H: */ + if (ok && c->target.next_tchf_reduces_tchh) { + /* Looking at the current TCH type and the target cell's TCH/F alone, congestion balancing + * should happen. However, what if the target TCH/F is a dynamic timeslot -- would that cause + * congestion on TCH/H above the current cell's TCH/H congestion? */ + int32_t current_tchh_overbooked = load_above_congestion(c->current.free_tchh, + c->current.min_free_tchh); + int32_t target_tchh_overbooked; + int target_free_tchh_after_ho = c->target.free_tchh - c->target.next_tchf_reduces_tchh; + /* If this is a re-assignment within the same cell, and if the current candidate would free a + * dynamic timeslot, then the target-overbooking after HO is reduced again by the freed dynamic + * TS. */ + if (c->current.bts == c->target.bts) + target_free_tchh_after_ho += c->current.lchan_frees_tchh; + target_tchh_overbooked = load_above_congestion(target_free_tchh_after_ho, + c->target.min_free_tchh); + LOGPHOLCHANTOBTS(c->current.lchan, c->target.bts, LOGL_DEBUG, + "dyn TS: current TCH/H overbooked = %s%%, TCH/H target overbooked after HO = %s%%\n", + osmo_int_to_float_str_c(OTC_SELECT, current_tchh_overbooked, LOAD_PRECISION - 2), + osmo_int_to_float_str_c(OTC_SELECT, target_tchh_overbooked, LOAD_PRECISION - 2)); + /* For the current TCH kind, a handover should only happen if things actually get better + * (condition is '<'). For dynamic timeslot cross effects TCH/F->TCH/H, it is fine to not make + * it worse. Hence the smaller-or-equal condition. */ + ok = target_tchh_overbooked <= current_tchh_overbooked; + } + if (ok) requirement |= REQUIREMENT_C_TCHF; } if (requirement & REQUIREMENT_A_TCHH) { + bool ok; int32_t target_overbooked = load_above_congestion(c->target.free_tchh - 1, c->target.min_free_tchh); LOGPHOLCHANTOBTS(c->current.lchan, c->target.bts, LOGL_DEBUG, "current overbooked = %s%%, TCH/H target overbooked after HO = %s%%\n", osmo_int_to_float_str_c(OTC_SELECT, current_overbooked, LOAD_PRECISION - 2), osmo_int_to_float_str_c(OTC_SELECT, target_overbooked, LOAD_PRECISION - 2)); - if (target_overbooked < current_overbooked) + ok = target_overbooked < current_overbooked; + /* Look at dynamic timeslot effects on TCH/F: */ + if (ok && c->target.next_tchh_reduces_tchf) { + /* Looking at the current TCH type and the target cell's TCH/H alone, congestion balancing + * should happen. However, what if the target TCH/H is a dynamic timeslot -- would that cause + * congestion on TCH/F above the current cell's TCH/F congestion? */ + int32_t current_tchf_overbooked = load_above_congestion(c->current.free_tchf, + c->current.min_free_tchf); + int32_t target_tchf_overbooked; + int target_free_tchf_after_ho = c->target.free_tchf - c->target.next_tchh_reduces_tchf; + /* If this is a re-assignment within the same cell, and if the current candidate would free a + * dynamic timeslot, then the target-overbooking after HO is reduced again by the freed dynamic + * TS. */ + if (c->current.bts == c->target.bts) + target_free_tchf_after_ho += c->current.lchan_frees_tchf; + target_tchf_overbooked = load_above_congestion(target_free_tchf_after_ho, + c->target.min_free_tchf); + LOGPHOLCHANTOBTS(c->current.lchan, c->target.bts, LOGL_DEBUG, + "dyn TS: current TCH/F overbooked = %s%%, TCH/F target overbooked after HO = %s%%\n", + osmo_int_to_float_str_c(OTC_SELECT, current_tchf_overbooked, LOAD_PRECISION - 2), + osmo_int_to_float_str_c(OTC_SELECT, target_tchf_overbooked, LOAD_PRECISION - 2)); + /* For the current TCH kind, a handover should only happen if things actually get better + * (condition is '<'). For dynamic timeslot cross effects TCH/H->TCH/F, it is fine to not make + * it worse. Hence the smaller-or-equal condition. */ + ok = target_tchf_overbooked <= current_tchf_overbooked; + } + if (ok) requirement |= REQUIREMENT_C_TCHH; } @@ -904,17 +980,37 @@ { struct gsm_lchan *next_lchan; - c->current.free_tch = bts_count_free_ts(c->current.bts, c->current.lchan->ts->pchan_is); + c->current.free_tchf = bts_count_free_ts(c->current.bts, GSM_PCHAN_TCH_F); + c->current.min_free_tchf = ho_get_hodec2_tchf_min_slots(c->current.bts->ho); + c->current.free_tchh = bts_count_free_ts(c->current.bts, GSM_PCHAN_TCH_H); + c->current.min_free_tchh = ho_get_hodec2_tchh_min_slots(c->current.bts->ho); switch (c->current.lchan->ts->pchan_is) { case GSM_PCHAN_TCH_F: - c->current.min_free_tch = ho_get_hodec2_tchf_min_slots(c->current.bts->ho); + c->current.free_tch = c->current.free_tchf; + c->current.min_free_tch = c->current.min_free_tchf; + c->current.lchan_frees_tchf = 1; + if (c->current.lchan->ts->pchan_on_init == GSM_PCHAN_TCH_F_TCH_H_PDCH) + c->current.lchan_frees_tchh = 2; + else + c->current.lchan_frees_tchh = 0; break; case GSM_PCHAN_TCH_H: - c->current.min_free_tch = ho_get_hodec2_tchh_min_slots(c->current.bts->ho); + c->current.free_tch = c->current.free_tchh; + c->current.min_free_tch = c->current.min_free_tchh; + c->current.lchan_frees_tchh = 1; + /* Freeing one of two TCH/H does not free a dyn TS and would not free a TCH/F. It has to be the last + * TCH/H of a dynamic timeslot that is freed to get a new TCH/F in the current cell from the handover. + * Hence the ts_usage_count() condition. */ + if (c->current.lchan->ts->pchan_on_init == GSM_PCHAN_TCH_F_TCH_H_PDCH + && ts_usage_count(c->current.lchan->ts) == 1) + c->current.lchan_frees_tchf = 1; + else + c->current.lchan_frees_tchf = 0; break; default: break; } + c->target.free_tchf = bts_count_free_ts(c->target.bts, GSM_PCHAN_TCH_F); c->target.min_free_tchf = ho_get_hodec2_tchf_min_slots(c->target.bts->ho); c->target.free_tchh = bts_count_free_ts(c->target.bts, GSM_PCHAN_TCH_H); @@ -1455,17 +1551,6 @@ || lchan->ts->pchan_on_init == GSM_PCHAN_TCH_F_PDCH; } -static unsigned int ts_usage_count(struct gsm_bts_trx_ts *ts) -{ - struct gsm_lchan *lchan; - unsigned int count = 0; - ts_for_each_lchan(lchan, ts) { - if (lchan_state_is(lchan, LCHAN_ST_ESTABLISHED)) - count++; - } - return count; -} - static bool is_upgrade_to_tchf(const struct ho_candidate *c, uint8_t for_requirement) { return c->current.lchan diff --git a/tests/handover/test_dyn_ts_balance_congestion.ho_vty b/tests/handover/test_dyn_ts_balance_congestion.ho_vty index ad9d6a5..2fa11b6 100644 --- a/tests/handover/test_dyn_ts_balance_congestion.ho_vty +++ b/tests/handover/test_dyn_ts_balance_congestion.ho_vty @@ -27,5 +27,11 @@ # not congested. No handover is performed because 50% in the target is more congestion for TCH/H than 0% in the source # cell. congestion-check -# FAIL: should not increase TCH/H congestion by occupying a dyn TS +expect-no-chan + +# If there is no constraint on TCH/H in the target cell, the handover does take place. +network + bts 1 + handover2 min-free-slots tch/h 2 +congestion-check expect-ho from lchan 0 0 1 0 to lchan 1 0 5 0 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22269 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I433df6f343650f9056b1bab926bc19ac1d867ad5 Gerrit-Change-Number: 22269 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 16:45:54 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 19 Jan 2021 16:45:54 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: add utilities to send and parse BSSGP rim PDUs In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22046 ) Change subject: gprs_bssgp: add utilities to send and parse BSSGP rim PDUs ...................................................................... Patch Set 8: (2 comments) sorry, two more minor issues. But then it's all good. https://gerrit.osmocom.org/c/libosmocore/+/22046/8/src/gb/gprs_bssgp_util.c File src/gb/gprs_bssgp_util.c: https://gerrit.osmocom.org/c/libosmocore/+/22046/8/src/gb/gprs_bssgp_util.c at 709 PS8, Line 709: LOGP(DLBSSGP, LOGL_DEBUG, "BSSGP RIM (NSEI=%u) unable to parse RIM container.\n", nsei); I understand that the "default" clause above has "return 0", as per the comment above the switch statement. But this clause is about an actual error code returned from one of the parser functions for the supported IEs. Shouldn't this be logged as NOTICE/ERROR and return rc instead of 0? https://gerrit.osmocom.org/c/libosmocore/+/22046/8/src/gb/gprs_bssgp_util.c at 725 PS8, Line 725: check for !msg and return NULL. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22046 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I18134fd9938040d2facb6beee3732628b167ce8c Gerrit-Change-Number: 22046 Gerrit-PatchSet: 8 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 19 Jan 2021 16:45:54 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 16:59:45 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 19 Jan 2021 16:59:45 +0000 Subject: Change in osmo-pcu[master]: Allow multiple bts objects in PCU In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22309 ) Change subject: Allow multiple bts objects in PCU ...................................................................... Patch Set 4: (9 comments) https://gerrit.osmocom.org/c/osmo-pcu/+/22309/3/src/gprs_bssgp_pcu.c File src/gprs_bssgp_pcu.c: https://gerrit.osmocom.org/c/osmo-pcu/+/22309/3/src/gprs_bssgp_pcu.c at 213 PS3, Line 213: /* FIXME: look if MS is attached a specific BTS and then only page on that one? */ > Sounds like looping over the attached BTS and their MS would solve it. [?] Yes it's out of the scope of this patch. This patch is not aiming at properly supporting multibts at runtime, simply adapting the code architecture for allowing it in the future. In the only event contemplated here (1 BTS), looping does 1 iteration so no change in behavior. This patch is already too big to try to do more stuff :) https://gerrit.osmocom.org/c/osmo-pcu/+/22309/3/src/gprs_bssgp_pcu.c at 823 PS3, Line 823: bts = llist_first_entry_or_null(&the_pcu->bts_list, struct gprs_rlcmac_bts, list); > Why not add bts as parameter to gprs_bssgp_pcu_rx_ptp()? because caller of this function, bvc_timeout(), is called in lots of places with NULL param where specific BTS object is not available. In any case, I put this here because this function is already super fucked up and should be completely rewritten independently of this patch (see FIXME below). I also remember myself seeing the calculations were wrong for other reasons in the past. So, to keep old behavior, the easiest here is to take the first BTS in list. https://gerrit.osmocom.org/c/osmo-pcu/+/22309/3/src/osmo-bts-litecell15/lc15_l1_if.c File src/osmo-bts-litecell15/lc15_l1_if.c: https://gerrit.osmocom.org/c/osmo-pcu/+/22309/3/src/osmo-bts-litecell15/lc15_l1_if.c at 160 PS3, Line 160: bts = llist_first_entry_or_null(&the_pcu->bts_list, struct gprs_rlcmac_bts, list); > add bts parameter instead, or at least a FIXME comment like above? [?] It's not a current limitation. If we are using the direct_phy backend, it means we are attached to the BTS directly, so there's only 1 BTS announced in PCUIF, and hence taking the first one is fine (because it's the only one to be ever available). Same applies for file sysmo_l1_if.c, oc2g_l1_if.c. https://gerrit.osmocom.org/c/osmo-pcu/+/22309/4/src/osmobts_sock.c File src/osmobts_sock.c: https://gerrit.osmocom.org/c/osmo-pcu/+/22309/4/src/osmobts_sock.c at 64 PS4, Line 64: bool retry = !llist_empty(&the_pcu->bts_list); > I think the ! is wrong, shouldn't retry be true if the list is empty? Indeed, thanks! In general is not a big issue because pcu_tx_txt_ind() is sent during successful port open in pcu_l1if_open(), but indeed you are right. https://gerrit.osmocom.org/c/osmo-pcu/+/22309/4/src/osmobts_sock.c at 114 PS4, Line 114: llist_for_each_entry(bts, &the_pcu->bts_list, list) { > My understanding is, that if one bts closes the socket to the pcu, the pcu will give up completely, [?] There's only 1 PCUIF unix socket, which can be connected to a BTS or a BSC. In the later, BSC sends several info_ind, one for each BTS. But in this patch, when the unix socket is closed, we want to drop all BTS. https://gerrit.osmocom.org/c/osmo-pcu/+/22309/4/src/pcu_l1_if.h File src/pcu_l1_if.h: https://gerrit.osmocom.org/c/osmo-pcu/+/22309/4/src/pcu_l1_if.h at 159 PS4, Line 159: struct gprs_rlcmac_bts; > its declared above already in the "ifdef __cplusplus" section. [?] Yes, because I need it on top of the pcu_l1if_tx_* functions, but if a C file is including this header, then I also need to put the struct gprs_rlcmac_bts here since the block above will not be seen by it. I agree some headers may look a bit messy but I expect them to become cleaner as more and more helper classes are moved to C over time. https://gerrit.osmocom.org/c/osmo-pcu/+/22309/4/src/pcu_l1_if.cpp File src/pcu_l1_if.cpp: https://gerrit.osmocom.org/c/osmo-pcu/+/22309/4/src/pcu_l1_if.cpp at 845 PS4, Line 845: bts = gprs_pcu_get_bts_by_nr(the_pcu, pcu_prim->bts_nr); > this is called twice: [?] Ack https://gerrit.osmocom.org/c/osmo-pcu/+/22309/4/src/pcu_vty.c File src/pcu_vty.c: https://gerrit.osmocom.org/c/osmo-pcu/+/22309/4/src/pcu_vty.c at 1073 PS4, Line 1073: pcu_vty_show_tbf_all(vty, bts, flags); > Print out the BTS number too? Otherwise it will just be "UL TBFs", "DL TBFs", "UL TBFs", ... Which is fine since I don't want to change current behavior in this code. This is printing TBFs, not BTS and its associated TBFs. If at all, one should decide whether it makes sense to print the BTS number inside each TBF block in pcu_vty_show_tbf_all(). But in any case, I'm not willing to change that here. https://gerrit.osmocom.org/c/osmo-pcu/+/22309/4/src/pcu_vty.c at 1085 PS4, Line 1085: pcu_vty_show_ms_all(vty, bts); > How about extending show_ms() to mention the BTS number? Same reason as above,this lists MS, I don't plan to change behavior here. -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22309 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I6b10913f46c19d438c4e250a436a7446694b725a Gerrit-Change-Number: 22309 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 19 Jan 2021 16:59:45 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: osmith Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 17:00:05 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 19 Jan 2021 17:00:05 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: WIP RIM support References: Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22314 ) Change subject: gbproxy: WIP RIM support ...................................................................... gbproxy: WIP RIM support Change-Id: I3403736eed9d6819634c26db0b90393ac6f4416a --- M include/osmocom/sgsn/gb_proxy.h M src/gbproxy/gb_proxy.c M src/gbproxy/gb_proxy_peer.c 3 files changed, 72 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/14/22314/1 diff --git a/include/osmocom/sgsn/gb_proxy.h b/include/osmocom/sgsn/gb_proxy.h index d988cae..f916b8f 100644 --- a/include/osmocom/sgsn/gb_proxy.h +++ b/include/osmocom/sgsn/gb_proxy.h @@ -8,6 +8,7 @@ #include #include #include +#include #include #include @@ -112,6 +113,10 @@ /* Routing Area that this BVC is part of (raw 04.08 encoding) */ uint8_t ra[6]; + struct { + struct gprs_ra_id raid; + uint16_t cid; + } id; /* pointer to the BSS-side BVC */ struct gbproxy_bvc *bss_bvc; @@ -264,6 +269,7 @@ struct gbproxy_cell *gbproxy_cell_alloc(struct gbproxy_config *cfg, uint16_t bvci); struct gbproxy_cell *gbproxy_cell_by_bvci(struct gbproxy_config *cfg, uint16_t bvci); +struct gbproxy_cell *gbproxy_cell_by_cellid(struct gbproxy_config *cfg, const struct gprs_ra_id *raid, uint16_t cid); void gbproxy_cell_free(struct gbproxy_cell *cell); bool gbproxy_cell_add_sgsn_bvc(struct gbproxy_cell *cell, struct gbproxy_bvc *bvc); diff --git a/src/gbproxy/gb_proxy.c b/src/gbproxy/gb_proxy.c index edd9f29..63153a0 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -944,9 +944,34 @@ case BSSGP_PDUT_RAN_INFO_ACK: case BSSGP_PDUT_RAN_INFO_ERROR: case BSSGP_PDUT_RAN_INFO_APP_ERROR: - /* FIXME: route based in RIM Routing IE */ - rc = bssgp_tx_status(BSSGP_CAUSE_PDU_INCOMP_FEAT, NULL, msg); + { + struct gbproxy_cell *cell; + struct gbproxy_sgsn *sgsn; + struct bssgp_rim_routing_info ri; + + /* TODO: Check the RIM src addr and insure it matches a Cell we have for this BSS */ + /* Reply with STATUS if BSSGP didn't negotiate RIM feature */ + /* FIXME: Check negotiated features + if (0) { + rc = bssgp_tx_status(BSSGP_CAUSE_PDU_INCOMP_FEAT, NULL, msg); + } */ + + rc = bssgp_parse_rim_ri(&ri, TLVP_VAL(&tp, BSSGP_IE_RIM_ROUTING_INFO), TLVP_LEN(&tp, BSSGP_IE_RIM_ROUTING_INFO)); + + /* Check RIM destination addr */ + if (ri.discr == BSSGP_RIM_ROUTING_INFO_GERAN) { + cell = gbproxy_cell_by_cellid(nse->cfg, &ri.geran.raid, ri.geran.cid); + if (cell) { + /* Destination is known by gbproxy, route directly */ + return gbprox_relay2peer(msg, cell->bss_bvc, 0); + } + } + /* Otherwise pass on to a RIM-capable SGSN */ + /* TODO: Check SGSN is RIM-capable */ + sgsn = gbproxy_select_sgsn(nse->cfg, NULL); + gbprox_relay2nse(msg, sgsn->nse, 0); break; + } case BSSGP_PDUT_LLC_DISCARD: case BSSGP_PDUT_FLUSH_LL_ACK: /* route based on BVCI + TLLI */ @@ -1242,9 +1267,33 @@ case BSSGP_PDUT_RAN_INFO_ACK: case BSSGP_PDUT_RAN_INFO_ERROR: case BSSGP_PDUT_RAN_INFO_APP_ERROR: - /* FIXME: route based in RIM Routing IE */ - rc = bssgp_tx_status(BSSGP_CAUSE_PDU_INCOMP_FEAT, NULL, msg); + { + struct gbproxy_cell *cell; + struct bssgp_rim_routing_info ri; + + /* TODO: Check the RIM src addr and insure it matches a Cell we have for this BSS */ + /* Reply with STATUS if BSSGP didn't negotiate RIM feature */ + /* FIXME: Check negotiated features + if (0) { + rc = bssgp_tx_status(BSSGP_CAUSE_PDU_INCOMP_FEAT, NULL, msg); + } */ + + rc = bssgp_parse_rim_ri(&ri, TLVP_VAL(&tp, BSSGP_IE_RIM_ROUTING_INFO), TLVP_LEN(&tp, BSSGP_IE_RIM_ROUTING_INFO)); + + /* Check RIM destination addr */ + if (ri.discr == BSSGP_RIM_ROUTING_INFO_GERAN) { + cell = gbproxy_cell_by_cellid(cfg, &ri.geran.raid, ri.geran.cid); + if (!cell) { + /* TODO: Log error */ + } else { + return gbprox_relay2peer(msg, cell->bss_bvc, 0); + } + } + /* If it's not a GERAN Cell or it's a Cell gbproxy doesn't know about: Return STATUS PDU with + * "Unknown Destination Address" */ + rc = bssgp_tx_status(BSSGP_CAUSE_UNKN_DST, NULL, msg); break; + } default: LOGPNSE(nse, LOGL_NOTICE, "Rx %s: Not supported\n", pdut_name); rate_ctr_inc(&cfg->ctrg->ctr[GBPROX_GLOB_CTR_PROTO_ERR_SGSN]); diff --git a/src/gbproxy/gb_proxy_peer.c b/src/gbproxy/gb_proxy_peer.c index 7d6ba86..dd914fa 100644 --- a/src/gbproxy/gb_proxy_peer.c +++ b/src/gbproxy/gb_proxy_peer.c @@ -206,6 +206,19 @@ return cell; } +struct gbproxy_cell *gbproxy_cell_by_cellid(struct gbproxy_config *cfg, const struct gprs_ra_id *raid, uint16_t cid) +{ + int i; + struct gbproxy_cell *cell; + + hash_for_each(cfg->cells, i, cell, list) { + if ((cell->id.cid == cid) && (!memcmp(&cell->id.raid, raid, sizeof(*raid)))) { + return cell; + } + } + return NULL; +} + void gbproxy_cell_free(struct gbproxy_cell *cell) { unsigned int i; -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22314 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I3403736eed9d6819634c26db0b90393ac6f4416a Gerrit-Change-Number: 22314 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 17:00:23 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 19 Jan 2021 17:00:23 +0000 Subject: Change in osmo-pcu[master]: Allow multiple bts objects in PCU In-Reply-To: References: Message-ID: Hello osmith, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-pcu/+/22309 to look at the new patch set (#5). Change subject: Allow multiple bts objects in PCU ...................................................................... Allow multiple bts objects in PCU This patch doesn't really tests whether osmo-pcu can work on a multi-bts environment, but it prepares the data structures to be able to do so at any later point in time. Change-Id: I6b10913f46c19d438c4e250a436a7446694b725a --- M src/bts.cpp M src/bts.h M src/gprs_bssgp_pcu.c M src/gprs_pcu.c M src/gprs_pcu.h M src/gprs_rlcmac.cpp M src/gprs_rlcmac.h M src/gprs_rlcmac_sched.cpp M src/osmo-bts-litecell15/lc15_l1_if.c M src/osmo-bts-oc2g/oc2g_l1_if.c M src/osmo-bts-sysmo/sysmo_l1_if.c M src/osmobts_sock.c M src/pcu_l1_if.cpp M src/pcu_l1_if.h M src/pcu_main.cpp M src/pcu_vty.c M src/pcu_vty_functions.cpp M tests/alloc/AllocTest.cpp M tests/alloc/MslotTest.cpp M tests/app_info/AppInfoTest.cpp M tests/edge/EdgeTest.cpp M tests/emu/pcu_emu.cpp M tests/fn/FnTest.cpp M tests/ms/MsTest.cpp M tests/tbf/TbfTest.cpp M tests/types/TypesTest.cpp 26 files changed, 354 insertions(+), 263 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/09/22309/5 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22309 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I6b10913f46c19d438c4e250a436a7446694b725a Gerrit-Change-Number: 22309 Gerrit-PatchSet: 5 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 17:04:16 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Tue, 19 Jan 2021 17:04:16 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: add utilities to send and parse BSSGP rim PDUs In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, pespin, fixeria, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22046 to look at the new patch set (#9). Change subject: gprs_bssgp: add utilities to send and parse BSSGP rim PDUs ...................................................................... gprs_bssgp: add utilities to send and parse BSSGP rim PDUs At the moment libosmogb offers no convinient way to send RIM PDUs. Also parsing an incoming RIM messages into destination, source routing info and RIM container is not available. Change-Id: I18134fd9938040d2facb6beee3732628b167ce8c Related: SYS#5103 --- M include/osmocom/gprs/gprs_bssgp.h M include/osmocom/gprs/gprs_bssgp_rim.h M src/gb/gprs_bssgp.c M src/gb/gprs_bssgp_rim.c M src/gb/gprs_bssgp_util.c M src/gb/libosmogb.map 6 files changed, 269 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/46/22046/9 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22046 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I18134fd9938040d2facb6beee3732628b167ce8c Gerrit-Change-Number: 22046 Gerrit-PatchSet: 9 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 17:04:59 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Tue, 19 Jan 2021 17:04:59 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: add utilities to send and parse BSSGP rim PDUs In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22046 ) Change subject: gprs_bssgp: add utilities to send and parse BSSGP rim PDUs ...................................................................... Patch Set 9: (2 comments) Its updated. https://gerrit.osmocom.org/c/libosmocore/+/22046/8/src/gb/gprs_bssgp_util.c File src/gb/gprs_bssgp_util.c: https://gerrit.osmocom.org/c/libosmocore/+/22046/8/src/gb/gprs_bssgp_util.c at 709 PS8, Line 709: LOGP(DLBSSGP, LOGL_DEBUG, "BSSGP RIM (NSEI=%u) unable to parse RIM container.\n", nsei); > I understand that the "default" clause above has "return 0", as per the comment above the switch sta [?] The reason for this is that it is not en error condition of the parser is unable to decode the RIM PDU. The result is then just that decoded_present = false. The API user must check this and see if this is is satisfactory. There are cases in which the decoded version of the RIM container is not necessarily needed. The idea behind this is that in osmo_sgen we just route the RIM container as it is, and we do not necessarly have parsers in libosmocore for each and every RIM application. What we could do is to extend bssgp_dec_ran_inf... functions in a way that they return -ENOTSUP when they hit an unsupported application container. Then we could distinguish here. https://gerrit.osmocom.org/c/libosmocore/+/22046/8/src/gb/gprs_bssgp_util.c at 725 PS8, Line 725: > check for !msg and return NULL. Done -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22046 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I18134fd9938040d2facb6beee3732628b167ce8c Gerrit-Change-Number: 22046 Gerrit-PatchSet: 9 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 19 Jan 2021 17:04:59 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: laforge Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 17:07:33 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 19 Jan 2021 17:07:33 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: add utilities to send and parse BSSGP rim PDUs In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22046 ) Change subject: gprs_bssgp: add utilities to send and parse BSSGP rim PDUs ...................................................................... Patch Set 9: Code-Review+2 (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/22046/8/src/gb/gprs_bssgp_util.c File src/gb/gprs_bssgp_util.c: https://gerrit.osmocom.org/c/libosmocore/+/22046/8/src/gb/gprs_bssgp_util.c at 709 PS8, Line 709: LOGP(DLBSSGP, LOGL_DEBUG, "BSSGP RIM (NSEI=%u) unable to parse RIM container.\n", nsei); > The reason for this is that it is not en error condition of the parser is unable to decode the RIM P [?] Ack -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22046 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I18134fd9938040d2facb6beee3732628b167ce8c Gerrit-Change-Number: 22046 Gerrit-PatchSet: 9 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 19 Jan 2021 17:07:33 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Comment-In-Reply-To: laforge Comment-In-Reply-To: dexter Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 17:11:05 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 19 Jan 2021 17:11:05 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: add utilities to send and parse BSSGP rim PDUs In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22046 ) Change subject: gprs_bssgp: add utilities to send and parse BSSGP rim PDUs ...................................................................... gprs_bssgp: add utilities to send and parse BSSGP rim PDUs At the moment libosmogb offers no convinient way to send RIM PDUs. Also parsing an incoming RIM messages into destination, source routing info and RIM container is not available. Change-Id: I18134fd9938040d2facb6beee3732628b167ce8c Related: SYS#5103 --- M include/osmocom/gprs/gprs_bssgp.h M include/osmocom/gprs/gprs_bssgp_rim.h M src/gb/gprs_bssgp.c M src/gb/gprs_bssgp_rim.c M src/gb/gprs_bssgp_util.c M src/gb/libosmogb.map 6 files changed, 269 insertions(+), 4 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmocom/gprs/gprs_bssgp.h b/include/osmocom/gprs/gprs_bssgp.h index 9255661..a7b363b 100644 --- a/include/osmocom/gprs/gprs_bssgp.h +++ b/include/osmocom/gprs/gprs_bssgp.h @@ -11,6 +11,7 @@ #include #include +#include /* gprs_bssgp_util.c */ @@ -41,6 +42,39 @@ /* Chapter 10.4.14: Status */ int bssgp_tx_status(uint8_t cause, uint16_t *bvci, struct msgb *orig_msg); +/* Chapter 10.6.1: RAN-INFORMATION-REQUEST */ +struct bssgp_ran_information_pdu { + struct bssgp_rim_routing_info routing_info_dest; + struct bssgp_rim_routing_info routing_info_src; + + /* Encoded variant of the RIM container */ + uint8_t rim_cont_iei; + const uint8_t *rim_cont; + unsigned int rim_cont_len; + + /* Decoded variant of the RIM container */ + bool decoded_present; + union { + struct bssgp_ran_inf_req_rim_cont req_rim_cont; + struct bssgp_ran_inf_rim_cont rim_cont; + struct bssgp_ran_inf_ack_rim_cont ack_rim_cont; + struct bssgp_ran_inf_err_rim_cont err_rim_cont; + struct bssgp_ran_inf_app_err_rim_cont app_err_rim_cont; + } decoded; + + /* When receiving a PDU from BSSGP the encoded variant of the RIM + * container will always be present. The decoded variant will be + * present in addition whenever BSSGP was able to decode the container. + * + * When sending a PDU to BSSGP, then the decoded variant is used when + * it is available. The encoded variant (if present) will be ignored + * then. */ +}; +int bssgp_tx_rim(const struct bssgp_ran_information_pdu *pdu, uint16_t nsei); + +int bssgp_parse_rim_pdu(struct bssgp_ran_information_pdu *pdu, const struct msgb *msg); +struct msgb *bssgp_encode_rim_pdu(const struct bssgp_ran_information_pdu *pdu); + enum bssgp_prim { PRIM_BSSGP_DL_UD, PRIM_BSSGP_UL_UD, @@ -75,6 +109,7 @@ struct { uint8_t suspend_ref; } resume; + struct bssgp_ran_information_pdu rim_pdu; } u; }; diff --git a/include/osmocom/gprs/gprs_bssgp_rim.h b/include/osmocom/gprs/gprs_bssgp_rim.h index 7f3a0e4..7e9efcd 100644 --- a/include/osmocom/gprs/gprs_bssgp_rim.h +++ b/include/osmocom/gprs/gprs_bssgp_rim.h @@ -54,6 +54,10 @@ }; }; +/* The encoded result of the rim routing information is, depending on the + * address type (discr) of variable length. */ +#define BSSGP_RIM_ROUTING_INFO_MAXLEN 14 + int bssgp_parse_rim_ri(struct bssgp_rim_routing_info *ri, const uint8_t *buf, unsigned int len); int bssgp_create_rim_ri(uint8_t *buf, const struct bssgp_rim_routing_info *ri); diff --git a/src/gb/gprs_bssgp.c b/src/gb/gprs_bssgp.c index 4551427..6fdacce 100644 --- a/src/gb/gprs_bssgp.c +++ b/src/gb/gprs_bssgp.c @@ -675,6 +675,8 @@ nmp.nsei = nsei; nmp.bvci = bvci; nmp.tp = tp; + if (bssgp_parse_rim_pdu(&nmp.u.rim_pdu, msg) < 0) + return bssgp_tx_status(BSSGP_CAUSE_MISSING_MAND_IE, NULL, msg); osmo_prim_init(&nmp.oph, SAP_BSSGP_RIM, prim, PRIM_OP_INDICATION, msg); bssgp_prim_cb(&nmp.oph, NULL); @@ -1111,7 +1113,7 @@ case BSSGP_PDUT_RAN_INFO_ACK: case BSSGP_PDUT_RAN_INFO_ERROR: case BSSGP_PDUT_RAN_INFO_APP_ERROR: - bssgp_rx_rim(msg, tp, bvci); + rc = bssgp_rx_rim(msg, tp, bvci); break; /* those only exist in the SGSN -> BSS direction */ diff --git a/src/gb/gprs_bssgp_rim.c b/src/gb/gprs_bssgp_rim.c index 0dc6d21..7094f5f 100644 --- a/src/gb/gprs_bssgp_rim.c +++ b/src/gb/gprs_bssgp_rim.c @@ -96,6 +96,7 @@ { int rc; struct gprs_ra_id raid_temp; + int len; buf[0] = ri->discr & 0x0f; buf++; @@ -105,11 +106,13 @@ rc = bssgp_create_cell_id(buf, &ri->geran.raid, ri->geran.cid); if (rc < 0) return -EINVAL; - return rc + 1; + len = rc + 1; + break; case BSSGP_RIM_ROUTING_INFO_UTRAN: gsm48_encode_ra((struct gsm48_ra_id *)buf, &ri->utran.raid); osmo_store16be(ri->utran.rncid, buf + 6); - return 9; + len = 9; + break; case BSSGP_RIM_ROUTING_INFO_EUTRAN: /* Note: 3GPP TS 24.301 Figure 9.9.3.32.1 and 3GPP TS 24.008 * Figure 10.5.130 specify MCC/MNC encoding in the same way, @@ -126,10 +129,14 @@ sizeof(ri->eutran.global_enb_id)); memcpy(buf + 5, ri->eutran.global_enb_id, ri->eutran.global_enb_id_len); - return ri->eutran.global_enb_id_len + 6; + len = ri->eutran.global_enb_id_len + 6; + break; default: return -EINVAL; } + + OSMO_ASSERT(len <= BSSGP_RIM_ROUTING_INFO_MAXLEN); + return len; } /*! Decode a RAN Information Request Application Container for NACC (3GPP TS 48.018, section 11.3.63.1.1). diff --git a/src/gb/gprs_bssgp_util.c b/src/gb/gprs_bssgp_util.c index 92896c1..d93c9df 100644 --- a/src/gb/gprs_bssgp_util.c +++ b/src/gb/gprs_bssgp_util.c @@ -588,3 +588,218 @@ return bssgp_ns_send(bssgp_ns_send_data, msg); } + +/* Chapter 10.6.1: RAN-INFORMATION-REQUEST */ +int bssgp_tx_rim(const struct bssgp_ran_information_pdu *pdu, uint16_t nsei) +{ + struct msgb *msg; + struct bssgp_normal_hdr *bgph; + + /* Encode RIM PDU into mesage buffer */ + msg = bssgp_encode_rim_pdu(pdu); + if (!msg) { + LOGP(DLBSSGP, LOGL_ERROR, + "BSSGP RIM (NSEI=%u) unable to encode BSSGP RIM PDU\n", nsei); + return -EINVAL; + } + + msgb_nsei(msg) = nsei; + msgb_bvci(msg) = 0; /* Signalling */ + + bgph = (struct bssgp_normal_hdr *)msgb_bssgph(msg); + DEBUGP(DLBSSGP, "BSSGP BVCI=0 Tx RIM-PDU:%s\n", bssgp_pdu_str(bgph->pdu_type)); + + return bssgp_ns_send(bssgp_ns_send_data, msg); +} + +/* Parse a given message buffer into a rim-pdu struct */ +int bssgp_parse_rim_pdu(struct bssgp_ran_information_pdu *pdu, const struct msgb *msg) +{ + struct tlv_parsed tp[2]; + struct bssgp_normal_hdr *bgph = (struct bssgp_normal_hdr *)msgb_bssgph(msg); + int data_len; + int rc; + uint16_t nsei = msgb_nsei(msg); + + memset(pdu, 0, sizeof(*pdu)); + + data_len = msgb_bssgp_len(msg) - sizeof(*bgph); + if (data_len < 0) + return -EINVAL; + + rc = osmo_tlv_prot_parse(&osmo_pdef_bssgp, tp, ARRAY_SIZE(tp), bgph->pdu_type, bgph->data, data_len, 0, 0, + DLBSSGP, __func__); + if (rc < 0) + return -EINVAL; + + if (TLVP_PRESENT(&tp[0], BSSGP_IE_RIM_ROUTING_INFO)) { + rc = bssgp_parse_rim_ri(&pdu->routing_info_dest, TLVP_VAL(&tp[0], BSSGP_IE_RIM_ROUTING_INFO), + TLVP_LEN(&tp[0], BSSGP_IE_RIM_ROUTING_INFO)); + if (rc < 0) { + LOGP(DLBSSGP, LOGL_ERROR, "BSSGP RIM (NSEI=%u) invalid Destination Cell Identifier IE\n", nsei); + return -EINVAL; + } + } else { + LOGP(DLBSSGP, LOGL_ERROR, "BSSGP RIM (NSEI=%u) missing Destination Cell Identifier IE\n", nsei); + return -EINVAL; + } + + if (TLVP_PRESENT(&tp[1], BSSGP_IE_RIM_ROUTING_INFO)) { + rc = bssgp_parse_rim_ri(&pdu->routing_info_src, TLVP_VAL(&tp[1], BSSGP_IE_RIM_ROUTING_INFO), + TLVP_LEN(&tp[1], BSSGP_IE_RIM_ROUTING_INFO)); + if (rc < 0) { + LOGP(DLBSSGP, LOGL_ERROR, "BSSGP RIM (NSEI=%u) invalid Destination Cell Identifier IE\n", nsei); + return -EINVAL; + } + } else { + LOGP(DLBSSGP, LOGL_ERROR, "BSSGP RIM (NSEI=%u) missing Source Cell Identifier IE\n", nsei); + return -EINVAL; + } + + if (TLVP_PRESENT(&tp[0], BSSGP_IE_RI_REQ_RIM_CONTAINER)) + pdu->rim_cont_iei = BSSGP_IE_RI_REQ_RIM_CONTAINER; + else if (TLVP_PRESENT(&tp[0], BSSGP_IE_RI_RIM_CONTAINER)) + pdu->rim_cont_iei = BSSGP_IE_RI_RIM_CONTAINER; + else if (TLVP_PRESENT(&tp[0], BSSGP_IE_RI_APP_ERROR_RIM_CONT)) + pdu->rim_cont_iei = BSSGP_IE_RI_APP_ERROR_RIM_CONT; + else if (TLVP_PRESENT(&tp[0], BSSGP_IE_RI_ACK_RIM_CONTAINER)) + pdu->rim_cont_iei = BSSGP_IE_RI_ACK_RIM_CONTAINER; + else if (TLVP_PRESENT(&tp[0], BSSGP_IE_RI_ERROR_RIM_COINTAINER)) + pdu->rim_cont_iei = BSSGP_IE_RI_ERROR_RIM_COINTAINER; + else { + LOGP(DLBSSGP, LOGL_ERROR, "BSSGP RIM (NSEI=%u) missing or wrong RIM Container IE\n", nsei); + return -EINVAL; + } + + pdu->rim_cont = TLVP_VAL(&tp[0], pdu->rim_cont_iei); + pdu->rim_cont_len = TLVP_LEN(&tp[0], pdu->rim_cont_iei); + + /* Make sure the rim container field is not empty */ + if (pdu->rim_cont_len < 1) + return -EINVAL; + if (!pdu->rim_cont) + return -EINVAL; + + /* Note: It is not an error if we fail to parse the RIM container, + * since there are applications where parsing the RIM container + * is not necessary (routing). It is up to the API user to check + * the results. */ + switch (pdu->rim_cont_iei) { + case BSSGP_IE_RI_REQ_RIM_CONTAINER: + rc = bssgp_dec_ran_inf_req_rim_cont(&pdu->decoded.req_rim_cont, pdu->rim_cont, pdu->rim_cont_len); + break; + case BSSGP_IE_RI_RIM_CONTAINER: + rc = bssgp_dec_ran_inf_rim_cont(&pdu->decoded.rim_cont, pdu->rim_cont, pdu->rim_cont_len); + break; + case BSSGP_IE_RI_APP_ERROR_RIM_CONT: + rc = bssgp_dec_ran_inf_app_err_rim_cont(&pdu->decoded.app_err_rim_cont, pdu->rim_cont, + pdu->rim_cont_len); + break; + case BSSGP_IE_RI_ACK_RIM_CONTAINER: + rc = bssgp_dec_ran_inf_ack_rim_cont(&pdu->decoded.ack_rim_cont, pdu->rim_cont, pdu->rim_cont_len); + break; + case BSSGP_IE_RI_ERROR_RIM_COINTAINER: + rc = bssgp_dec_ran_inf_err_rim_cont(&pdu->decoded.err_rim_cont, pdu->rim_cont, pdu->rim_cont_len); + break; + default: + LOGP(DLBSSGP, LOGL_DEBUG, "BSSGP RIM (NSEI=%u) cannot parse unknown RIM container.\n", nsei); + return 0; + } + if (rc < 0) { + LOGP(DLBSSGP, LOGL_DEBUG, "BSSGP RIM (NSEI=%u) unable to parse RIM container.\n", nsei); + return 0; + } + pdu->decoded_present = true; + + return 0; +} + +/* Encode a given rim-pdu struct into a message buffer */ +struct msgb *bssgp_encode_rim_pdu(const struct bssgp_ran_information_pdu *pdu) +{ + struct msgb *msg = bssgp_msgb_alloc(); + struct bssgp_normal_hdr *bgph; + uint8_t rim_ri_buf[BSSGP_RIM_ROUTING_INFO_MAXLEN]; + uint8_t *rim_cont_buf; + int rc; + + if (!msg) + return NULL; + bgph = (struct bssgp_normal_hdr *)msgb_put(msg, sizeof(*bgph)); + + /* Set PDU type based on RIM container type */ + switch (pdu->rim_cont_iei) { + case BSSGP_IE_RI_REQ_RIM_CONTAINER: + bgph->pdu_type = BSSGP_PDUT_RAN_INFO_REQ; + break; + case BSSGP_IE_RI_RIM_CONTAINER: + bgph->pdu_type = BSSGP_PDUT_RAN_INFO; + break; + case BSSGP_IE_RI_APP_ERROR_RIM_CONT: + bgph->pdu_type = BSSGP_PDUT_RAN_INFO_APP_ERROR; + break; + case BSSGP_IE_RI_ACK_RIM_CONTAINER: + bgph->pdu_type = BSSGP_PDUT_RAN_INFO_ACK; + break; + case BSSGP_IE_RI_ERROR_RIM_COINTAINER: + bgph->pdu_type = BSSGP_PDUT_RAN_INFO_ERROR; + break; + default: + /* The caller must correctly specify the container type! */ + OSMO_ASSERT(false); + } + + /* Put RIM routing information */ + rc = bssgp_create_rim_ri(rim_ri_buf, &pdu->routing_info_dest); + if (rc < 0 || rc > BSSGP_RIM_ROUTING_INFO_MAXLEN) + goto error; + msgb_tvlv_put(msg, BSSGP_IE_RIM_ROUTING_INFO, rc, rim_ri_buf); + rc = bssgp_create_rim_ri(rim_ri_buf, &pdu->routing_info_src); + if (rc < 0 || rc > BSSGP_RIM_ROUTING_INFO_MAXLEN) + goto error; + msgb_tvlv_put(msg, BSSGP_IE_RIM_ROUTING_INFO, rc, rim_ri_buf); + + /* Put RIM container */ + if (pdu->decoded_present) { + rim_cont_buf = talloc_zero_size(msg, msg->data_len); + if (!rim_cont_buf) + goto error; + + switch (pdu->rim_cont_iei) { + case BSSGP_IE_RI_REQ_RIM_CONTAINER: + rc = bssgp_enc_ran_inf_req_rim_cont(rim_cont_buf, msg->data_len, &pdu->decoded.req_rim_cont); + break; + case BSSGP_IE_RI_RIM_CONTAINER: + rc = bssgp_enc_ran_inf_rim_cont(rim_cont_buf, msg->data_len, &pdu->decoded.rim_cont); + break; + case BSSGP_IE_RI_APP_ERROR_RIM_CONT: + rc = bssgp_enc_ran_inf_app_err_rim_cont(rim_cont_buf, msg->data_len, + &pdu->decoded.app_err_rim_cont); + break; + case BSSGP_IE_RI_ACK_RIM_CONTAINER: + rc = bssgp_enc_ran_inf_ack_rim_cont(rim_cont_buf, msg->data_len, &pdu->decoded.ack_rim_cont); + break; + case BSSGP_IE_RI_ERROR_RIM_COINTAINER: + rc = bssgp_enc_ran_inf_err_rim_cont(rim_cont_buf, msg->data_len, &pdu->decoded.err_rim_cont); + break; + default: + /* The API user must set the iei properly! */ + OSMO_ASSERT(false); + } + if (rc < 0) + goto error; + + msgb_tvlv_put(msg, pdu->rim_cont_iei, rc, rim_cont_buf); + talloc_free(rim_cont_buf); + } else { + /* Make sure the RIM container is actually present. */ + OSMO_ASSERT(pdu->rim_cont_iei != 0 && pdu->rim_cont_len > 0 && pdu->rim_cont); + msgb_tvlv_put(msg, pdu->rim_cont_iei, pdu->rim_cont_len, pdu->rim_cont); + } + + return msg; +error: + talloc_free(rim_cont_buf); + msgb_free(msg); + return 0; +} diff --git a/src/gb/libosmogb.map b/src/gb/libosmogb.map index b012184..763ddc6 100644 --- a/src/gb/libosmogb.map +++ b/src/gb/libosmogb.map @@ -30,6 +30,7 @@ bssgp_msgb_tlli_put; bssgp_msgb_ra_put; bssgp_parse_cell_id; +bssgp_parse_rim_pdu; bssgp_parse_rim_ri; bssgp_set_bssgp_callback; bssgp_tx_bvc_block; @@ -48,6 +49,7 @@ bssgp_tx_resume; bssgp_tx_resume_ack; bssgp_tx_resume_nack; +bssgp_tx_rim; bssgp_tx_simple_bvci; bssgp_tx_status; bssgp_tx_suspend; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22046 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I18134fd9938040d2facb6beee3732628b167ce8c Gerrit-Change-Number: 22046 Gerrit-PatchSet: 9 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 17:11:30 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 19 Jan 2021 17:11:30 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: add utilities to send and parse BSSGP rim PDUs In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22046 ) Change subject: gprs_bssgp: add utilities to send and parse BSSGP rim PDUs ...................................................................... Patch Set 9: (2 comments) https://gerrit.osmocom.org/c/libosmocore/+/22046/9/src/gb/gprs_bssgp.c File src/gb/gprs_bssgp.c: https://gerrit.osmocom.org/c/libosmocore/+/22046/9/src/gb/gprs_bssgp.c at 678 PS9, Line 678: if (bssgp_parse_rim_pdu(&nmp.u.rim_pdu, msg) < 0) IIUC this means the container is never decoded here right? because decoded=false (memset(0)) https://gerrit.osmocom.org/c/libosmocore/+/22046/9/src/gb/gprs_bssgp_util.c File src/gb/gprs_bssgp_util.c: https://gerrit.osmocom.org/c/libosmocore/+/22046/9/src/gb/gprs_bssgp_util.c at 689 PS9, Line 689: rc = bssgp_dec_ran_inf_req_rim_cont(&pdu->decoded.req_rim_cont, pdu->rim_cont, pdu->rim_cont_len); This is wrong. If you fail to decode the container, you shouldn't return 0 (success) and set pdu->decoded_pesent=true below as you do. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22046 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I18134fd9938040d2facb6beee3732628b167ce8c Gerrit-Change-Number: 22046 Gerrit-PatchSet: 9 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 19 Jan 2021 17:11:30 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 17:18:21 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 19 Jan 2021 17:18:21 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Ignore dummy rlcmac packets in f_ms_rx_pkt_ass_pacch In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22313 ) Change subject: pcu: Ignore dummy rlcmac packets in f_ms_rx_pkt_ass_pacch ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22313 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I0a10d3a7383d8534e9263864b4130a96392e6198 Gerrit-Change-Number: 22313 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 19 Jan 2021 17:18:21 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 17:22:31 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 19 Jan 2021 17:22:31 +0000 Subject: Change in osmo-ttcn3-hacks[master]: NS_Emulation: Add CTRL port to administratively disable a NS-VC References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22315 ) Change subject: NS_Emulation: Add CTRL port to administratively disable a NS-VC ...................................................................... NS_Emulation: Add CTRL port to administratively disable a NS-VC This feature is useful in simulating intermittent or permanent transport network outage by simply halting processing of all rx+tx in the specified NS-VC until it is administratively re-enabled. Change-Id: I742ecf01de15e3edbf0719371f0217a5739b7c8e RelateD: OS#4521 --- M library/NS_Emulation.ttcnpp 1 file changed, 66 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/15/22315/1 diff --git a/library/NS_Emulation.ttcnpp b/library/NS_Emulation.ttcnpp index 61ebe95..dc8e0ec 100644 --- a/library/NS_Emulation.ttcnpp +++ b/library/NS_Emulation.ttcnpp @@ -107,6 +107,7 @@ } type enumerated NsvcState { + NSVC_S_DISABLED, /* administratively disabled */ NSVC_S_DEAD_BLOCKED, NSVC_S_WAIT_RESET, NSVC_S_ALIVE_BLOCKED, @@ -128,6 +129,25 @@ out NsUnitdataRequest; } with { extension "internal" }; + /* port from our (internal) point of view */ + type port NS_CTRL_SP_PT message { + in NsDisableVcRequest, + NsEnableVcRequest; + } with { extension "internal" }; + + /* port from the user point of view */ + type port NS_CTRL_PT message { + out NsEnableVcRequest, + NsDisableVcRequest; + } with { extension "internal" }; + + type record NsDisableVcRequest { + Nsvci nsvci + }; + type record NsEnableVcRequest { + Nsvci nsvci + }; + type component NS_Provider_CT { /* upper port, facing to NS_Emulation:NSCP */ port NS_PROVIDER_PT NSE; @@ -187,6 +207,9 @@ /* port towards the per-NSVC components */ port NSint_PT NSVC; + /* control port, used to manipulate at runtime */ + port NS_CTRL_SP_PT NS_CTRL; + /* all of the NS configuration a user passes to us */ var NSConfiguration g_config; var charstring g_id; @@ -239,7 +262,9 @@ }; type enumerated NsCtrlRequest { - StartAliveProcedure (0) + StartAliveProcedure (0), + DisableReq (1), /* administratively disable NS-VC */ + EnableReq (2) /* administratively enable NS-VC */ }; /* add one NSVC (component and table entry */ @@ -346,6 +371,8 @@ var NsStatusIndication rx_nssi; var NsUnitdataIndication rx_nsudi; var NsUnitdataRequest rx_nsudr; + var NsDisableVcRequest rx_disar; + var NsEnableVcRequest rx_enar; /* pass from NS-VCs up to user */ [] NSVC.receive(tr_NsStsInd(g_config.nsei, ?, ?, NSVC_S_ALIVE_UNBLOCKED)) -> value rx_nssi { /* check if this one is the first to be unblocked */ @@ -384,6 +411,14 @@ log2str("Received UnitDataInd for invalid NSEI: ", rx_nsudi)); } /* from user down to NS-VC */ + [] NS_CTRL.receive(NsDisableVcRequest:?) -> value rx_disar { + var integer nsvc_idx := f_nsvc_find_idx(rx_disar.nsvci); + NSVC.send(NsCtrlRequest:DisableReq) to g_nsvcs[nsvc_idx].vc_conn; + } + [] NS_CTRL.receive(NsEnableVcRequest:?) -> value rx_enar { + var integer nsvc_idx := f_nsvc_find_idx(rx_enar.nsvci); + NSVC.send(NsCtrlRequest:EnableReq) to g_nsvcs[nsvc_idx].vc_conn; + } [] NS_SP.receive(tr_NsUdReq(g_config.nsei, 0, ?, ?, *)) -> value rx_nsudr { /* load distribution function */ var integer nsvc_idx := g_unblocked_nsvcs_sig[rx_nsudr.lsp mod lengthof(g_unblocked_nsvcs_sig)]; @@ -577,6 +612,15 @@ var PDU_NS rf; var ASP_Event evt; + [] NS_SP.receive(NsCtrlRequest:DisableReq) { + /* To make NS-VCG remove us from list of active NS-VC */ + f_change_state(NSVC_S_DEAD_BLOCKED); + log("Disabling NSVC on user request"); + f_change_state(NSVC_S_DISABLED); + Tns_test.stop; + Tns_alive.stop; + } + /* transition to DEAD if t_alive times out */ [] Tns_alive.timeout { log("Tns-alive expired: changing to DEAD_BLOCKED + starting Tns-test"); @@ -618,6 +662,25 @@ } } + private altstep as_disabled() runs on NSVC_CT { + [g_config.handle_sns == true] NS_SP.receive(NsCtrlRequest:EnableReq) { + f_change_state(NSVC_S_ALIVE_UNBLOCKED); + f_sendAlive(); + Tns_test.start; + } + [g_config.handle_sns == false] NS_SP.receive(NsCtrlRequest:EnableReq) { + f_change_state(NSVC_S_DEAD_BLOCKED); + Tns_test.start; + } + /* drop any received messages while in this state */ + [] NSCP.receive { + log("Dropping inbound NS mesage as NS-VC is disabled"); + } + [] NS_SP.receive { + log("Dropping user primitive as NS-VC is disabled"); + } + } + private altstep as_handle_reset() runs on NSVC_CT { var PDU_NS rf; @@ -808,7 +871,8 @@ [vc_state == NSVC_S_WAIT_RESET] as_wait_reset(); [vc_state == NSVC_S_ALIVE_BLOCKED] as_alive_blocked(); [vc_state == NSVC_S_ALIVE_UNBLOCKED] as_alive_unblocked(); - [] as_allstate(); + [vc_state == NSVC_S_DISABLED] as_disabled(); + [vc_state != NSVC_S_DISABLED] as_allstate(); } } } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22315 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I742ecf01de15e3edbf0719371f0217a5739b7c8e Gerrit-Change-Number: 22315 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 17:30:14 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Tue, 19 Jan 2021 17:30:14 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: add utilities to send and parse BSSGP rim PDUs In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22046 ) Change subject: gprs_bssgp: add utilities to send and parse BSSGP rim PDUs ...................................................................... Patch Set 9: (2 comments) Thanks for merging. https://gerrit.osmocom.org/c/libosmocore/+/22046/9/src/gb/gprs_bssgp.c File src/gb/gprs_bssgp.c: https://gerrit.osmocom.org/c/libosmocore/+/22046/9/src/gb/gprs_bssgp.c at 678 PS9, Line 678: if (bssgp_parse_rim_pdu(&nmp.u.rim_pdu, msg) < 0) > IIUC this means the container is never decoded here right? because decoded=false (memset(0)) The decoded_present flag is not set by the parser, if decoded_present==true, then the user knows that the decoded information is available. https://gerrit.osmocom.org/c/libosmocore/+/22046/9/src/gb/gprs_bssgp_util.c File src/gb/gprs_bssgp_util.c: https://gerrit.osmocom.org/c/libosmocore/+/22046/9/src/gb/gprs_bssgp_util.c at 689 PS9, Line 689: rc = bssgp_dec_ran_inf_req_rim_cont(&pdu->decoded.req_rim_cont, pdu->rim_cont, pdu->rim_cont_len); > This is wrong. [?] in line 708 rc is checked, or do I overlook something here? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22046 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I18134fd9938040d2facb6beee3732628b167ce8c Gerrit-Change-Number: 22046 Gerrit-PatchSet: 9 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 19 Jan 2021 17:30:14 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 17:42:28 2021 From: gerrit-no-reply at lists.osmocom.org (keith) Date: Tue, 19 Jan 2021 17:42:28 +0000 Subject: Change in osmo-hlr[master]: Correct vty inline help for show subscriber In-Reply-To: References: Message-ID: keith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-hlr/+/22310 ) Change subject: Correct vty inline help for show subscriber ...................................................................... Correct vty inline help for show subscriber Change-Id: I035435859b60ce6d54da307c0d6397d4bd515439 --- M src/hlr_vty_subscr.c 1 file changed, 3 insertions(+), 2 deletions(-) Approvals: pespin: Looks good to me, but someone else must approve fixeria: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/hlr_vty_subscr.c b/src/hlr_vty_subscr.c index 3dbc383..f5066c1 100644 --- a/src/hlr_vty_subscr.c +++ b/src/hlr_vty_subscr.c @@ -188,6 +188,7 @@ #define SUBSCR_CMD "subscriber " #define SUBSCR_CMD_HELP "Subscriber management commands\n" +#define SUBSCR_SHOW_HELP "Show subscriber information\n" #define SUBSCR_ID "(imsi|msisdn|id|imei) IDENT" #define SUBSCR_ID_HELP \ @@ -207,7 +208,7 @@ DEFUN(subscriber_show, subscriber_show_cmd, SUBSCR "show", - SUBSCR_HELP "Show subscriber information\n") + SUBSCR_HELP SUBSCR_SHOW_HELP) { struct hlr_subscriber subscr; const char *id_type = argv[0]; @@ -222,7 +223,7 @@ ALIAS(subscriber_show, show_subscriber_cmd, "show " SUBSCR_CMD SUBSCR_ID, - SHOW_STR SUBSCR_CMD_HELP SUBSCR_ID_HELP); + SHOW_STR SUBSCR_SHOW_HELP SUBSCR_ID_HELP); DEFUN(subscriber_create, subscriber_create_cmd, -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/22310 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-Change-Id: I035435859b60ce6d54da307c0d6397d4bd515439 Gerrit-Change-Number: 22310 Gerrit-PatchSet: 2 Gerrit-Owner: keith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: keith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 18:20:10 2021 From: gerrit-no-reply at lists.osmocom.org (keith) Date: Tue, 19 Jan 2021 18:20:10 +0000 Subject: Change in osmo-hlr[master]: Add vty command to show summary of all or filtered subscribers In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-hlr/+/22311 to look at the new patch set (#6). Change subject: Add vty command to show summary of all or filtered subscribers ...................................................................... Add vty command to show summary of all or filtered subscribers Adds the following commands: show subscribers all - Display summary of all entries in HLR show subscribers filter [....] As above but filter on search field/string show subscribers last seen - Display only subscribers with data in Last LU update field, and sorts by Last LU. Change-Id: I7f0573381a6d0d13841ac6d42d50f0e8389decf4 --- M include/osmocom/hlr/db.h M src/db.c M src/db_hlr.c M src/hlr_vty_subscr.c M tests/test_nodes.vty 5 files changed, 226 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-hlr refs/changes/11/22311/6 -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/22311 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-Change-Id: I7f0573381a6d0d13841ac6d42d50f0e8389decf4 Gerrit-Change-Number: 22311 Gerrit-PatchSet: 6 Gerrit-Owner: keith Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-CC: laforge Gerrit-CC: neels Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 18:20:17 2021 From: gerrit-no-reply at lists.osmocom.org (keith) Date: Tue, 19 Jan 2021 18:20:17 +0000 Subject: Change in osmo-hlr[master]: Add vty command to show summary of all or filtered subscribers In-Reply-To: References: Message-ID: keith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-hlr/+/22311 ) Change subject: Add vty command to show summary of all or filtered subscribers ...................................................................... Patch Set 6: (7 comments) https://gerrit.osmocom.org/c/osmo-hlr/+/22311/5/src/db_hlr.c File src/db_hlr.c: https://gerrit.osmocom.org/c/osmo-hlr/+/22311/5/src/db_hlr.c at 626 PS5, Line 626: } > (add a blank line) Done https://gerrit.osmocom.org/c/osmo-hlr/+/22311/5/src/db_hlr.c at 638 PS5, Line 638: int db_subscrs_get_print(struct vty *vty, struct db_context *dbc, const char *filter_type, const char *filter, > Good solution: in fact this uses a callback function -- which is more elegant than using the vty dir [?] Done https://gerrit.osmocom.org/c/osmo-hlr/+/22311/5/src/db_hlr.c at 644 PS5, Line 644: subscr > Why do you need this pointer? I think you can use 'sub' directly. The code I modelled this on had a pointer to a hlr_subscriber struct passed in, so I was mimicking that. I think it might be OK now, but I'm never 100% sure. https://gerrit.osmocom.org/c/osmo-hlr/+/22311/5/src/db_hlr.c at 689 PS5, Line 689: subscr->id = sqlite3_column_int64(stmt, 0); > (along with fixeria's comment: here you could do [?] Does it zero init the entire struct? I sort of depend on that later https://gerrit.osmocom.org/c/osmo-hlr/+/22311/5/src/hlr_vty_subscr.c File src/hlr_vty_subscr.c: https://gerrit.osmocom.org/c/osmo-hlr/+/22311/5/src/hlr_vty_subscr.c at 229 PS5, Line 229: rc = db_subscrs_get_print(vty, g_hlr->dbc, filter_type, filter, subscr_dump_summary_vty, &count, &err); > to call the pre-existing subscr_dump_summary_vty(): to match the 'void *data' as I described before [?] No objection, but can I ask why, just to understand? Is it better to cast data to a vty struct this way rather than the declaration in: subscr_dump_summary_vty(struct hlr_subscriber *subscr, void *data) { struct vty *vty = data; ..... } https://gerrit.osmocom.org/c/osmo-hlr/+/22311/5/src/hlr_vty_subscr.c at 230 PS5, Line 230: if (count > 40) { > hm, this code dup is not so nice. [?] Yep... I was doubting it also, but given that the patch set was unlikely to attract +2 on first run, I left it for comments. 40 was just an arbitrary number - of course we have no idea what size the terminal is. All the same, if somebody modifies the header without modifying the footer, then they get a slap on the wrist...? I could just drop the footer, it's not like it's not obvious which column is which. I don't like reprinting the header, in can get in the way if one did want to copy rows from the terminal or screen scrape the vty (not suggesting I wanty to do this) https://gerrit.osmocom.org/c/osmo-hlr/+/22311/5/tests/test_nodes.vty File tests/test_nodes.vty: https://gerrit.osmocom.org/c/osmo-hlr/+/22311/5/tests/test_nodes.vty at 17 PS5, Line 17: show subscribers filter (imsi|msisdn) FILTER : show subscribers filter (cs|ps) (on|off) > I would actually go for just "show subscribers (imsi|msisdn) FILTER" without the "filter' part. [?] Done -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/22311 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-Change-Id: I7f0573381a6d0d13841ac6d42d50f0e8389decf4 Gerrit-Change-Number: 22311 Gerrit-PatchSet: 6 Gerrit-Owner: keith Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-CC: laforge Gerrit-CC: neels Gerrit-Comment-Date: Tue, 19 Jan 2021 18:20:17 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: neels Comment-In-Reply-To: laforge Comment-In-Reply-To: fixeria Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 18:25:38 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 19 Jan 2021 18:25:38 +0000 Subject: Change in libosmocore[master]: gprs_ns2: implement BLOCK/UNBLOCK of a NSVC by vty In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, daniel, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22210 to look at the new patch set (#14). Change subject: gprs_ns2: implement BLOCK/UNBLOCK of a NSVC by vty ...................................................................... gprs_ns2: implement BLOCK/UNBLOCK of a NSVC by vty The vty should be able to block or unblock a specific NSVC. Further more this case is special for the UNITDATA as those can be still received until the other side response to the BLOCK PDU. Related: OS#4939 Change-Id: Ic0ce3c5fabc8644cc1ee71a8f6dd783fadf7b84d --- M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_vc_fsm.c M src/gb/gprs_ns2_vty2.c M tests/gb/gprs_ns2_test.c M tests/gb/gprs_ns2_test.ok 5 files changed, 212 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/10/22210/14 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22210 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic0ce3c5fabc8644cc1ee71a8f6dd783fadf7b84d Gerrit-Change-Number: 22210 Gerrit-PatchSet: 14 Gerrit-Owner: lynxis lazus Gerrit-Assignee: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 18:25:38 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 19 Jan 2021 18:25:38 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vc_fsm: rename all event to match RX_ or REQ_ In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22292 to look at the new patch set (#4). Change subject: gprs_ns2_vc_fsm: rename all event to match RX_ or REQ_ ...................................................................... gprs_ns2_vc_fsm: rename all event to match RX_ or REQ_ Similiar to the BSSGP layer prefix events with RX if it's an received PDU or REQ if it's a request from the code. Change-Id: I341fa28fb671d439c050d985c88ece1521430a99 --- M src/gb/gprs_ns2_vc_fsm.c 1 file changed, 69 insertions(+), 69 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/92/22292/4 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22292 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I341fa28fb671d439c050d985c88ece1521430a99 Gerrit-Change-Number: 22292 Gerrit-PatchSet: 4 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 18:25:41 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 19 Jan 2021 18:25:41 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vc_fsm: fix transitions for ALIVE state References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22316 ) Change subject: gprs_ns2_vc_fsm: fix transitions for ALIVE state ...................................................................... gprs_ns2_vc_fsm: fix transitions for ALIVE state Alive can never reach RESET. However ALIVE -> ALIVE is allowed. Change-Id: Ic414d7ca96b1ec6db1665cd4c072c7ebbee787f1 --- M src/gb/gprs_ns2_vc_fsm.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/16/22316/1 diff --git a/src/gb/gprs_ns2_vc_fsm.c b/src/gb/gprs_ns2_vc_fsm.c index e5057d4..e7c959e 100644 --- a/src/gb/gprs_ns2_vc_fsm.c +++ b/src/gb/gprs_ns2_vc_fsm.c @@ -463,7 +463,7 @@ /* ST_ALIVE is only used on VC without RESET/BLOCK */ [GPRS_NS2_ST_ALIVE] = { .in_event_mask = S(GPRS_NS2_EV_RX_ALIVE_ACK), - .out_state_mask = S(GPRS_NS2_ST_RESET) | + .out_state_mask = S(GPRS_NS2_ST_ALIVE) | S(GPRS_NS2_ST_UNBLOCKED) | S(GPRS_NS2_ST_UNCONFIGURED), .name = "ALIVE", -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22316 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic414d7ca96b1ec6db1665cd4c072c7ebbee787f1 Gerrit-Change-Number: 22316 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 18:25:41 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 19 Jan 2021 18:25:41 +0000 Subject: Change in libosmocore[master]: gprs_ns2_message: remove wrong comment References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22317 ) Change subject: gprs_ns2_message: remove wrong comment ...................................................................... gprs_ns2_message: remove wrong comment It's a leftover from converting NS1 -> NS2 code Change-Id: I934c7905f8396e74bb1f14d68097c03463816720 --- M src/gb/gprs_ns2_message.c 1 file changed, 0 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/17/22317/1 diff --git a/src/gb/gprs_ns2_message.c b/src/gb/gprs_ns2_message.c index dd76c59..dd2ca27 100644 --- a/src/gb/gprs_ns2_message.c +++ b/src/gb/gprs_ns2_message.c @@ -256,7 +256,6 @@ if (!msg) return -ENOMEM; - /* be conservative and mark it as blocked even now! */ msg->l2h = msgb_put(msg, sizeof(*nsh)); nsh = (struct gprs_ns_hdr *) msg->l2h; nsh->pdu_type = NS_PDUT_BLOCK_ACK; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22317 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I934c7905f8396e74bb1f14d68097c03463816720 Gerrit-Change-Number: 22317 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 18:29:11 2021 From: gerrit-no-reply at lists.osmocom.org (keith) Date: Tue, 19 Jan 2021 18:29:11 +0000 Subject: Change in osmo-hlr[master]: Add vty command to show summary of all or filtered subscribers In-Reply-To: References: Message-ID: keith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-hlr/+/22311 ) Change subject: Add vty command to show summary of all or filtered subscribers ...................................................................... Patch Set 6: > Patch Set 5: > > (5 comments) > > one important element of reading from a database is to limit the amount of entries, .... I see your point. I did not think of an entire continent, but I guess a HLR can be huge! I'm not sure how to handle it, I don't want show subscribers all to NOT print all of them, but obviously I don't want it to print 20,000. As an operator if you knew there were 20,000 subs then you might not issue the command, but that is just the.. oh, I didn't expect you would do _THAT_! strategy. Is there any simple possibility to have this code attend to the main loop after printing say 100 subs? I guess not, right? I'd have to store the state someplace global and return to pick it up where left off? -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/22311 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-Change-Id: I7f0573381a6d0d13841ac6d42d50f0e8389decf4 Gerrit-Change-Number: 22311 Gerrit-PatchSet: 6 Gerrit-Owner: keith Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-CC: laforge Gerrit-CC: neels Gerrit-Comment-Date: Tue, 19 Jan 2021 18:29:11 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 18:31:08 2021 From: gerrit-no-reply at lists.osmocom.org (keith) Date: Tue, 19 Jan 2021 18:31:08 +0000 Subject: Change in osmo-hlr[master]: Add vty command to show summary of all or filtered subscribers In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-hlr/+/22311 to look at the new patch set (#7). Change subject: Add vty command to show summary of all or filtered subscribers ...................................................................... Add vty command to show summary of all or filtered subscribers Adds the following commands: show subscribers all - Display summary of all entries in HLR show subscribers (imsi|msisdn|cs|ps) ... As above but filter on search field/string show subscribers last seen - Display only subscribers with data in Last LU update field, and sorts by Last LU. Change-Id: I7f0573381a6d0d13841ac6d42d50f0e8389decf4 --- M include/osmocom/hlr/db.h M src/db.c M src/db_hlr.c M src/hlr_vty_subscr.c M tests/test_nodes.vty 5 files changed, 226 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-hlr refs/changes/11/22311/7 -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/22311 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-Change-Id: I7f0573381a6d0d13841ac6d42d50f0e8389decf4 Gerrit-Change-Number: 22311 Gerrit-PatchSet: 7 Gerrit-Owner: keith Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-CC: laforge Gerrit-CC: neels Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 18:32:46 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 19 Jan 2021 18:32:46 +0000 Subject: Change in libosmocore[master]: gprs_ns2: implement BLOCK/UNBLOCK of a NSVC by vty In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, daniel, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22210 to look at the new patch set (#15). Change subject: gprs_ns2: implement BLOCK/UNBLOCK of a NSVC by vty ...................................................................... gprs_ns2: implement BLOCK/UNBLOCK of a NSVC by vty The vty should be able to block or unblock a specific NSVC. Further more this case is special for the UNITDATA as those can be still received until the other side response to the BLOCK PDU. Related: OS#4939 Change-Id: Ic0ce3c5fabc8644cc1ee71a8f6dd783fadf7b84d --- M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_vc_fsm.c M src/gb/gprs_ns2_vty2.c M tests/gb/gprs_ns2_test.c M tests/gb/gprs_ns2_test.ok 5 files changed, 211 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/10/22210/15 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22210 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic0ce3c5fabc8644cc1ee71a8f6dd783fadf7b84d Gerrit-Change-Number: 22210 Gerrit-PatchSet: 15 Gerrit-Owner: lynxis lazus Gerrit-Assignee: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 18:33:14 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 19 Jan 2021 18:33:14 +0000 Subject: Change in libosmocore[master]: gprs_ns2: implement BLOCK/UNBLOCK of a NSVC by vty In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22210 ) Change subject: gprs_ns2: implement BLOCK/UNBLOCK of a NSVC by vty ...................................................................... Patch Set 15: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/22210/13/tests/gb/gprs_ns2_test.c File tests/gb/gprs_ns2_test.c: https://gerrit.osmocom.org/c/libosmocore/+/22210/13/tests/gb/gprs_ns2_test.c at 163 PS13, Line 163: nsvc[2] = ns2_vc_alloc(bind[1], nse, false, NS2_VC_MODE_ALIVE, NULL); > Here aswell i'll leave it as it is. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22210 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic0ce3c5fabc8644cc1ee71a8f6dd783fadf7b84d Gerrit-Change-Number: 22210 Gerrit-PatchSet: 15 Gerrit-Owner: lynxis lazus Gerrit-Assignee: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 19 Jan 2021 18:33:14 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: daniel Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 18:33:45 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 19 Jan 2021 18:33:45 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vc_fsm: rename all event to match RX_ or REQ_ In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22292 to look at the new patch set (#6). Change subject: gprs_ns2_vc_fsm: rename all event to match RX_ or REQ_ ...................................................................... gprs_ns2_vc_fsm: rename all event to match RX_ or REQ_ Similiar to the BSSGP layer prefix events with RX if it's an received PDU or REQ if it's a request from the code. Change-Id: I341fa28fb671d439c050d985c88ece1521430a99 --- M src/gb/gprs_ns2_vc_fsm.c 1 file changed, 69 insertions(+), 69 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/92/22292/6 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22292 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I341fa28fb671d439c050d985c88ece1521430a99 Gerrit-Change-Number: 22292 Gerrit-PatchSet: 6 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 18:33:45 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 19 Jan 2021 18:33:45 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vc_fsm: ensure all state is resetted via force_unconf In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22293 to look at the new patch set (#6). Change subject: gprs_ns2_vc_fsm: ensure all state is resetted via force_unconf ...................................................................... gprs_ns2_vc_fsm: ensure all state is resetted via force_unconf Change-Id: I240225ce82fa27dfcb5b4b8e2981bb4d8cc4cd70 --- M src/gb/gprs_ns2_vc_fsm.c 1 file changed, 8 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/93/22293/6 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22293 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I240225ce82fa27dfcb5b4b8e2981bb4d8cc4cd70 Gerrit-Change-Number: 22293 Gerrit-PatchSet: 6 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 18:33:45 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 19 Jan 2021 18:33:45 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vc_fsm: fix transitions for ALIVE state In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22316 to look at the new patch set (#3). Change subject: gprs_ns2_vc_fsm: fix transitions for ALIVE state ...................................................................... gprs_ns2_vc_fsm: fix transitions for ALIVE state Alive can never reach RESET. However ALIVE -> ALIVE is allowed. Change-Id: Ic414d7ca96b1ec6db1665cd4c072c7ebbee787f1 --- M src/gb/gprs_ns2_vc_fsm.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/16/22316/3 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22316 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic414d7ca96b1ec6db1665cd4c072c7ebbee787f1 Gerrit-Change-Number: 22316 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 18:33:45 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 19 Jan 2021 18:33:45 +0000 Subject: Change in libosmocore[master]: gprs_ns2_message: remove wrong comment In-Reply-To: References: Message-ID: lynxis lazus has uploaded a new patch set (#3). ( https://gerrit.osmocom.org/c/libosmocore/+/22317 ) Change subject: gprs_ns2_message: remove wrong comment ...................................................................... gprs_ns2_message: remove wrong comment It's a leftover from converting NS1 -> NS2 code Change-Id: I934c7905f8396e74bb1f14d68097c03463816720 --- M src/gb/gprs_ns2_message.c 1 file changed, 0 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/17/22317/3 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22317 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I934c7905f8396e74bb1f14d68097c03463816720 Gerrit-Change-Number: 22317 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 18:35:02 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 19 Jan 2021 18:35:02 +0000 Subject: Change in libosmocore[master]: gprs_ns2: rework logging of Rx and Tx NS PDU In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22294 ) Change subject: gprs_ns2: rework logging of Rx and Tx NS PDU ...................................................................... Set Ready For Review -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22294 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I34b8fde2955ecc010d1dcd9512e1bba9211e2c0d Gerrit-Change-Number: 22294 Gerrit-PatchSet: 6 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Tue, 19 Jan 2021 18:35:02 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 18:36:45 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 19 Jan 2021 18:36:45 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Move different network elements to different IPs In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22300 ) Change subject: gbproxy: Move different network elements to different IPs ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22300 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I1762bfc237e679ee21d0446596f2c4f56f735a9d Gerrit-Change-Number: 22300 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 19 Jan 2021 18:36:45 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 18:36:59 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 19 Jan 2021 18:36:59 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Change logging settings In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22302 ) Change subject: gbproxy: Change logging settings ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22302 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ib153cfdb337ea0d748aa18e2b8eb16db01d79edd Gerrit-Change-Number: 22302 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Tue, 19 Jan 2021 18:36:59 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 18:38:13 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 19 Jan 2021 18:38:13 +0000 Subject: Change in osmo-ttcn3-hacks[master]: NS_Emulation: Dynamically compute list of v4/v6 endpoints in SNS-CONFIG In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22303 ) Change subject: NS_Emulation: Dynamically compute list of v4/v6 endpoints in SNS-CONFIG ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22303 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I43fe5810b95ebbc9f848856803ac2c71f80d74f3 Gerrit-Change-Number: 22303 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Tue, 19 Jan 2021 18:38:13 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 18:44:23 2021 From: gerrit-no-reply at lists.osmocom.org (keith) Date: Tue, 19 Jan 2021 18:44:23 +0000 Subject: Change in osmo-hlr[master]: Add vty command to show summary of all or filtered subscribers In-Reply-To: References: Message-ID: keith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-hlr/+/22311 ) Change subject: Add vty command to show summary of all or filtered subscribers ...................................................................... Patch Set 7: What about scheduling a timer for a few ms later after printing every X records, then exiting? -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/22311 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-Change-Id: I7f0573381a6d0d13841ac6d42d50f0e8389decf4 Gerrit-Change-Number: 22311 Gerrit-PatchSet: 7 Gerrit-Owner: keith Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-CC: laforge Gerrit-CC: neels Gerrit-Comment-Date: Tue, 19 Jan 2021 18:44:23 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 18:44:29 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 19 Jan 2021 18:44:29 +0000 Subject: Change in libosmocore[master]: gprs_ns2: implement BLOCK/UNBLOCK of a NSVC by vty In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, daniel, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22210 to look at the new patch set (#17). Change subject: gprs_ns2: implement BLOCK/UNBLOCK of a NSVC by vty ...................................................................... gprs_ns2: implement BLOCK/UNBLOCK of a NSVC by vty The vty should be able to block or unblock a specific NSVC. Further more this case is special for the UNITDATA as those can be still received until the other side response to the BLOCK PDU. Related: OS#4939 Change-Id: Ic0ce3c5fabc8644cc1ee71a8f6dd783fadf7b84d --- M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_vc_fsm.c M src/gb/gprs_ns2_vty2.c M tests/gb/gprs_ns2_test.c M tests/gb/gprs_ns2_test.ok 5 files changed, 206 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/10/22210/17 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22210 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic0ce3c5fabc8644cc1ee71a8f6dd783fadf7b84d Gerrit-Change-Number: 22210 Gerrit-PatchSet: 17 Gerrit-Owner: lynxis lazus Gerrit-Assignee: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 18:44:30 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 19 Jan 2021 18:44:30 +0000 Subject: Change in libosmocore[master]: gprs_ns2: correct handle BLOCK message on initator References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22318 ) Change subject: gprs_ns2: correct handle BLOCK message on initator ...................................................................... gprs_ns2: correct handle BLOCK message on initator A BLOCK message can be received when waiting for a UNBLOCK message in state BLOCK Related: SYS#5208 Change-Id: Ie7b34b3ef04aa28304143191222324e1a3786cb2 --- M src/gb/gprs_ns2_vc_fsm.c 1 file changed, 4 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/18/22318/1 diff --git a/src/gb/gprs_ns2_vc_fsm.c b/src/gb/gprs_ns2_vc_fsm.c index 8604bbe..849e74f 100644 --- a/src/gb/gprs_ns2_vc_fsm.c +++ b/src/gb/gprs_ns2_vc_fsm.c @@ -345,6 +345,10 @@ } else { /* we are on the receiving end. The initiator who sent RESET is responsible to UNBLOCK! */ switch (event) { + case GPRS_NS2_EV_BLOCK: + ns2_tx_block_ack(priv->nsvc); + osmo_timer_del(&fi->timer); + break; case GPRS_NS2_EV_UNBLOCK: ns2_tx_unblock_ack(priv->nsvc); osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_UNBLOCKED, -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22318 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie7b34b3ef04aa28304143191222324e1a3786cb2 Gerrit-Change-Number: 22318 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 18:55:07 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 19 Jan 2021 18:55:07 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vc_fsm: ensure all state is resetted via force_unconf In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22293 ) Change subject: gprs_ns2_vc_fsm: ensure all state is resetted via force_unconf ...................................................................... Patch Set 7: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22293 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I240225ce82fa27dfcb5b4b8e2981bb4d8cc4cd70 Gerrit-Change-Number: 22293 Gerrit-PatchSet: 7 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 19 Jan 2021 18:55:07 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 18:55:44 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 19 Jan 2021 18:55:44 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vc_fsm: fix transitions for ALIVE state In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22316 ) Change subject: gprs_ns2_vc_fsm: fix transitions for ALIVE state ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22316 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic414d7ca96b1ec6db1665cd4c072c7ebbee787f1 Gerrit-Change-Number: 22316 Gerrit-PatchSet: 4 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 19 Jan 2021 18:55:44 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 18:56:07 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 19 Jan 2021 18:56:07 +0000 Subject: Change in libosmocore[master]: gprs_ns2_message: remove wrong comment In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22317 ) Change subject: gprs_ns2_message: remove wrong comment ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22317 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I934c7905f8396e74bb1f14d68097c03463816720 Gerrit-Change-Number: 22317 Gerrit-PatchSet: 4 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 19 Jan 2021 18:56:07 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 18:59:54 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 19 Jan 2021 18:59:54 +0000 Subject: Change in libosmocore[master]: gprs_ns2: rework logging of Rx and Tx NS PDU In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22294 ) Change subject: gprs_ns2: rework logging of Rx and Tx NS PDU ...................................................................... Patch Set 7: (1 comment) I find the macros introduced in this commit a bit strange. Why not use usual LOG macros we introduce with a fixed prefix and wahtever the user wants after it? https://gerrit.osmocom.org/c/libosmocore/+/22294/7/src/gb/gprs_ns2_internal.h File src/gb/gprs_ns2_internal.h: https://gerrit.osmocom.org/c/libosmocore/+/22294/7/src/gb/gprs_ns2_internal.h at 89 PS7, Line 89: #define LOG_NS_RX_MESSAGE(nsvc, pdu_type) LOG_NS_MESSAGE(true, nsvc, pdu_type) why not passing "RX" "TX" directly instead of true/false? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22294 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I34b8fde2955ecc010d1dcd9512e1bba9211e2c0d Gerrit-Change-Number: 22294 Gerrit-PatchSet: 7 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 19 Jan 2021 18:59:54 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 19:07:55 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Tue, 19 Jan 2021 19:07:55 +0000 Subject: Change in libosmocore[master]: gprs_bssgp_rim: Return with EOPNOTSUPP on unsupported containers References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22319 ) Change subject: gprs_bssgp_rim: Return with EOPNOTSUPP on unsupported containers ...................................................................... gprs_bssgp_rim: Return with EOPNOTSUPP on unsupported containers The current version of libosmocore only supports NACC related RIM application containers. If the parser detects a different application container it returns with EINVAL. Unfortunately this means that the caller can not distinguish if there is a lack of support or a real parsing error. Change-Id: Ib5ada3554c04259764352888cf95bc4460cb2a54 Related: SYS#5103 --- M src/gb/gprs_bssgp_rim.c 1 file changed, 8 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/19/22319/1 diff --git a/src/gb/gprs_bssgp_rim.c b/src/gb/gprs_bssgp_rim.c index 7094f5f..2096977 100644 --- a/src/gb/gprs_bssgp_rim.c +++ b/src/gb/gprs_bssgp_rim.c @@ -405,7 +405,7 @@ case BSSGP_RAN_INF_APP_ID_SON: case BSSGP_RAN_INF_APP_ID_UTRA_SI: /* TODO: add parsers for Si3, MBMS, SON, UTRA-SI app containers */ - return -EINVAL; + return -EOPNOTSUPP; default: return -EINVAL; } @@ -475,7 +475,7 @@ case BSSGP_RAN_INF_APP_ID_SON: case BSSGP_RAN_INF_APP_ID_UTRA_SI: /* TODO: add encoders for Si3, MBMS, SON, UTRA-SI app containers */ - return -EINVAL; + return -EOPNOTSUPP; default: return -EINVAL; } @@ -528,7 +528,7 @@ case BSSGP_RAN_INF_APP_ID_SON: case BSSGP_RAN_INF_APP_ID_UTRA_SI: /* TODO: add parsers for Si3, MBMS, SON, UTRA-SI app containers */ - return -EINVAL; + return -EOPNOTSUPP; default: return -EINVAL; } @@ -547,7 +547,7 @@ case BSSGP_RAN_INF_APP_ID_SON: case BSSGP_RAN_INF_APP_ID_UTRA_SI: /* TODO: add parsers for Si3, MBMS, SON, UTRA-SI app containers */ - return -EINVAL; + return -EOPNOTSUPP; default: return -EINVAL; } @@ -594,7 +594,7 @@ case BSSGP_RAN_INF_APP_ID_SON: case BSSGP_RAN_INF_APP_ID_UTRA_SI: /* TODO: add encoders for Si3, MBMS, SON, UTRA-SI app containers */ - return -EINVAL; + return -EOPNOTSUPP; default: return -EINVAL; } @@ -613,7 +613,7 @@ case BSSGP_RAN_INF_APP_ID_SON: case BSSGP_RAN_INF_APP_ID_UTRA_SI: /* TODO: add encoders for Si3, MBMS, SON, UTRA-SI app containers */ - return -EINVAL; + return -EOPNOTSUPP; default: return -EINVAL; } @@ -810,7 +810,7 @@ case BSSGP_RAN_INF_APP_ID_SON: case BSSGP_RAN_INF_APP_ID_UTRA_SI: /* TODO: add parsers for Si3, MBMS, SON, UTRA-SI app containers */ - return -EINVAL; + return -EOPNOTSUPP; default: return -EINVAL; } @@ -849,7 +849,7 @@ case BSSGP_RAN_INF_APP_ID_SON: case BSSGP_RAN_INF_APP_ID_UTRA_SI: /* TODO: add encoders for Si3, MBMS, SON, UTRA-SI app containers */ - return -EINVAL; + return -EOPNOTSUPP; default: return -EINVAL; } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22319 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ib5ada3554c04259764352888cf95bc4460cb2a54 Gerrit-Change-Number: 22319 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 19:07:55 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 19 Jan 2021 19:07:55 +0000 Subject: Change in libosmocore[master]: gprs_ns2: implement BLOCK/UNBLOCK of a NSVC by vty In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22210 ) Change subject: gprs_ns2: implement BLOCK/UNBLOCK of a NSVC by vty ...................................................................... Patch Set 17: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22210 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic0ce3c5fabc8644cc1ee71a8f6dd783fadf7b84d Gerrit-Change-Number: 22210 Gerrit-PatchSet: 17 Gerrit-Owner: lynxis lazus Gerrit-Assignee: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 19 Jan 2021 19:07:55 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 19:11:50 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 19 Jan 2021 19:11:50 +0000 Subject: Change in libosmocore[master]: gprs_ns2: correct handle BLOCK message on initator In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22318 ) Change subject: gprs_ns2: correct handle BLOCK message on initator ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/22318/1/src/gb/gprs_ns2_vc_fsm.c File src/gb/gprs_ns2_vc_fsm.c: https://gerrit.osmocom.org/c/libosmocore/+/22318/1/src/gb/gprs_ns2_vc_fsm.c at 350 PS1, Line 350: osmo_timer_del(&fi->timer); why is this timer deleting? it we are blocked I'd expect this to be a NOP, and simply send an ACK. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22318 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie7b34b3ef04aa28304143191222324e1a3786cb2 Gerrit-Change-Number: 22318 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 19 Jan 2021 19:11:50 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 19:12:46 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 19 Jan 2021 19:12:46 +0000 Subject: Change in libosmocore[master]: gprs_bssgp_rim: Return with EOPNOTSUPP on unsupported containers In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22319 ) Change subject: gprs_bssgp_rim: Return with EOPNOTSUPP on unsupported containers ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22319 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ib5ada3554c04259764352888cf95bc4460cb2a54 Gerrit-Change-Number: 22319 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Tue, 19 Jan 2021 19:12:46 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 19:19:11 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 19 Jan 2021 19:19:11 +0000 Subject: Change in libosmocore[master]: gprs_ns2: correct handle BLOCK message on initator In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22318 to look at the new patch set (#2). Change subject: gprs_ns2: correct handle BLOCK message on initator ...................................................................... gprs_ns2: correct handle BLOCK message on initator A BLOCK message can be received when waiting for a UNBLOCK message in state BLOCK Related: SYS#5208 Change-Id: Ie7b34b3ef04aa28304143191222324e1a3786cb2 --- M src/gb/gprs_ns2_vc_fsm.c 1 file changed, 3 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/18/22318/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22318 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie7b34b3ef04aa28304143191222324e1a3786cb2 Gerrit-Change-Number: 22318 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 19:21:22 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 19 Jan 2021 19:21:22 +0000 Subject: Change in libosmocore[master]: gprs_ns2: add assert on most bind calls In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22273 ) Change subject: gprs_ns2: add assert on most bind calls ...................................................................... gprs_ns2: add assert on most bind calls Add a OSMO_ASSERT to all bind calls which doesn't check if the bind is from the expected type. The only exception is rx and tx functions (hot path). Change-Id: Ia4f8932263c60618c7f0dfc32d50ba5a8d57602b --- M src/gb/gprs_ns2_fr.c M src/gb/gprs_ns2_udp.c 2 files changed, 19 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve daniel: Looks good to me, approved laforge: Looks good to me, approved diff --git a/src/gb/gprs_ns2_fr.c b/src/gb/gprs_ns2_fr.c index c1bed6c..7b9450c 100644 --- a/src/gb/gprs_ns2_fr.c +++ b/src/gb/gprs_ns2_fr.c @@ -106,6 +106,7 @@ if (!nsvc->priv) return; + OSMO_ASSERT(gprs_ns2_is_fr_bind(nsvc->bind)); talloc_free(nsvc->priv); nsvc->priv = NULL; } @@ -137,6 +138,7 @@ { struct priv_bind *priv; + OSMO_ASSERT(gprs_ns2_is_fr_bind(bind)); if (!bind) return; @@ -158,6 +160,7 @@ if (!priv) return NULL; + OSMO_ASSERT(gprs_ns2_is_fr_bind(bind)); nsvc->priv = priv; priv->dlci = dlci; priv->dlc = osmo_fr_dlc_alloc(privb->link, dlci); @@ -180,6 +183,7 @@ struct gprs_ns2_vc *nsvc; struct priv_vc *vcpriv; + OSMO_ASSERT(gprs_ns2_is_fr_bind(bind)); if (!result) return -EINVAL; @@ -740,6 +744,7 @@ struct priv_bind *bpriv = bind->priv; char idbuf[64]; + OSMO_ASSERT(gprs_ns2_is_fr_bind(bind)); nsvc = gprs_ns2_fr_nsvc_by_dlci(bind, dlci); if (nsvc) { goto err; @@ -780,7 +785,10 @@ { bool created_nse = false; struct gprs_ns2_vc *nsvc = NULL; - struct gprs_ns2_nse *nse = gprs_ns2_nse_by_nsei(bind->nsi, nsei); + struct gprs_ns2_nse *nse; + + OSMO_ASSERT(gprs_ns2_is_fr_bind(bind)); + nse = gprs_ns2_nse_by_nsei(bind->nsi, nsei); if (!nse) { nse = gprs_ns2_create_nse(bind->nsi, nsei, GPRS_NS2_LL_FR, NS2_DIALECT_STATIC_RESETBLOCK); if (!nse) @@ -812,6 +820,7 @@ struct gprs_ns2_vc *nsvc; struct priv_vc *vcpriv; + OSMO_ASSERT(gprs_ns2_is_fr_bind(bind)); llist_for_each_entry(nsvc, &bind->nsvc, blist) { vcpriv = nsvc->priv; diff --git a/src/gb/gprs_ns2_udp.c b/src/gb/gprs_ns2_udp.c index d93b66d..1037b19 100644 --- a/src/gb/gprs_ns2_udp.c +++ b/src/gb/gprs_ns2_udp.c @@ -63,6 +63,8 @@ if (!bind) return; + OSMO_ASSERT(gprs_ns2_is_ip_bind(bind)); + priv = bind->priv; osmo_fd_close(&priv->fd); @@ -74,6 +76,7 @@ if (!nsvc->priv) return; + OSMO_ASSERT(gprs_ns2_is_ip_bind(nsvc->bind)); talloc_free(nsvc->priv); nsvc->priv = NULL; } @@ -116,6 +119,8 @@ struct gprs_ns2_vc *nsvc; struct priv_vc *vcpriv; + OSMO_ASSERT(gprs_ns2_is_ip_bind(bind)); + llist_for_each_entry(nsvc, &bind->nsvc, blist) { vcpriv = nsvc->priv; if (vcpriv->remote.u.sa.sa_family != saddr->u.sa.sa_family) @@ -397,6 +402,8 @@ char *sockaddr_str; char idbuf[64]; + OSMO_ASSERT(gprs_ns2_is_ip_bind(bind)); + vc_mode = gprs_ns2_dialect_to_vc_mode(nse->dialect); if ((int) vc_mode == -1) { LOGP(DLNS, LOGL_ERROR, "Can not derive vc mode from dialect %d. Maybe libosmocore is too old.\n", @@ -492,6 +499,7 @@ const struct osmo_sockaddr *gprs_ns2_ip_bind_sockaddr(struct gprs_ns2_vc_bind *bind) { struct priv_bind *priv; + OSMO_ASSERT(gprs_ns2_is_ip_bind(bind)); priv = bind->priv; return &priv->addr; @@ -509,6 +517,7 @@ struct priv_bind *priv; int rc = 0; + OSMO_ASSERT(gprs_ns2_is_ip_bind(bind)); priv = bind->priv; if (dscp != priv->dscp) { -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22273 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia4f8932263c60618c7f0dfc32d50ba5a8d57602b Gerrit-Change-Number: 22273 Gerrit-PatchSet: 10 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 19:21:23 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 19 Jan 2021 19:21:23 +0000 Subject: Change in libosmocore[master]: gprs_ns2: allow to use free_vc() with NULL In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22274 ) Change subject: gprs_ns2: allow to use free_vc() with NULL ...................................................................... gprs_ns2: allow to use free_vc() with NULL Usually talloc_free() and other free functions in osmocom allows to be called with NULL which is then ignored. Change-Id: If7b0c6916a29d4611d0a40c388414076eb83e6b5 --- M src/gb/gprs_ns2_fr.c M src/gb/gprs_ns2_udp.c 2 files changed, 5 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve daniel: Looks good to me, approved diff --git a/src/gb/gprs_ns2_fr.c b/src/gb/gprs_ns2_fr.c index 7b9450c..a7455d7 100644 --- a/src/gb/gprs_ns2_fr.c +++ b/src/gb/gprs_ns2_fr.c @@ -101,7 +101,8 @@ static void free_vc(struct gprs_ns2_vc *nsvc) { - OSMO_ASSERT(nsvc); + if (!nsvc) + return; if (!nsvc->priv) return; diff --git a/src/gb/gprs_ns2_udp.c b/src/gb/gprs_ns2_udp.c index 1037b19..2a335c1 100644 --- a/src/gb/gprs_ns2_udp.c +++ b/src/gb/gprs_ns2_udp.c @@ -73,6 +73,9 @@ static void free_vc(struct gprs_ns2_vc *nsvc) { + if (!nsvc) + return; + if (!nsvc->priv) return; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22274 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If7b0c6916a29d4611d0a40c388414076eb83e6b5 Gerrit-Change-Number: 22274 Gerrit-PatchSet: 12 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 19:22:07 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 19 Jan 2021 19:22:07 +0000 Subject: Change in libosmocore[master]: gprs_ns2: correct handle BLOCK message on initator In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22318 ) Change subject: gprs_ns2: correct handle BLOCK message on initator ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/22318/1/src/gb/gprs_ns2_vc_fsm.c File src/gb/gprs_ns2_vc_fsm.c: https://gerrit.osmocom.org/c/libosmocore/+/22318/1/src/gb/gprs_ns2_vc_fsm.c at 350 PS1, Line 350: osmo_timer_del(&fi->timer); > why is this timer deleting? it we are blocked I'd expect this to be a NOP, and simply send an ACK. the timer doesn't need to be started. I've removed it. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22318 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie7b34b3ef04aa28304143191222324e1a3786cb2 Gerrit-Change-Number: 22318 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 19 Jan 2021 19:22:07 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 19:23:01 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 19 Jan 2021 19:23:01 +0000 Subject: Change in libosmocore[master]: gprs_ns2: correct handle BLOCK message on initator In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22318 ) Change subject: gprs_ns2: correct handle BLOCK message on initator ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22318 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie7b34b3ef04aa28304143191222324e1a3786cb2 Gerrit-Change-Number: 22318 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 19 Jan 2021 19:23:01 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 19:23:34 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 19 Jan 2021 19:23:34 +0000 Subject: Change in libosmocore[master]: gprs_ns2: rework logging of Rx and Tx NS PDU In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22294 ) Change subject: gprs_ns2: rework logging of Rx and Tx NS PDU ...................................................................... Patch Set 8: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/22294/7/src/gb/gprs_ns2_internal.h File src/gb/gprs_ns2_internal.h: https://gerrit.osmocom.org/c/libosmocore/+/22294/7/src/gb/gprs_ns2_internal.h at 89 PS7, Line 89: #define LOG_NS_RX_MESSAGE(nsvc, pdu_type) LOG_NS_MESSAGE(true, nsvc, pdu_type) > why not passing "RX" "TX" directly instead of true/false? That would be also possible. I don't have a strong opinion. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22294 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I34b8fde2955ecc010d1dcd9512e1bba9211e2c0d Gerrit-Change-Number: 22294 Gerrit-PatchSet: 8 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 19 Jan 2021 19:23:34 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 19:23:58 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 19 Jan 2021 19:23:58 +0000 Subject: Change in libosmocore[master]: osmo-ns-dummy: don't leak primitive messages In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22291 ) Change subject: osmo-ns-dummy: don't leak primitive messages ...................................................................... osmo-ns-dummy: don't leak primitive messages The message in the primitive must be freed by the user Change-Id: I2a7b19f019485c7b1f15baf20b62edc19b663415 --- M utils/osmo-ns-dummy.c 1 file changed, 3 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/utils/osmo-ns-dummy.c b/utils/osmo-ns-dummy.c index a2070ca..58e8152 100644 --- a/utils/osmo-ns-dummy.c +++ b/utils/osmo-ns-dummy.c @@ -188,6 +188,9 @@ /* called by the ns layer */ int gprs_ns_prim_cb(struct osmo_prim_hdr *oph, void *ctx) { + if (oph->msg) + msgb_free(oph->msg); + return 0; } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22291 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I2a7b19f019485c7b1f15baf20b62edc19b663415 Gerrit-Change-Number: 22291 Gerrit-PatchSet: 6 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 19:29:26 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 19 Jan 2021 19:29:26 +0000 Subject: Change in osmo-hlr[master]: Add vty command to show summary of all or filtered subscribers In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-hlr/+/22311 ) Change subject: Add vty command to show summary of all or filtered subscribers ...................................................................... Patch Set 7: > Patch Set 7: > > What about scheduling a timer for a few ms later after printing every X records, then exiting? This sounds like over-complication for no benefit to me. Even if you schedule the guard timer, it would never expire until you finish everything in the current select() loop iteration. -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/22311 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-Change-Id: I7f0573381a6d0d13841ac6d42d50f0e8389decf4 Gerrit-Change-Number: 22311 Gerrit-PatchSet: 7 Gerrit-Owner: keith Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-CC: laforge Gerrit-CC: neels Gerrit-Comment-Date: Tue, 19 Jan 2021 19:29:26 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 19:31:14 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 19 Jan 2021 19:31:14 +0000 Subject: Change in libosmocore[master]: gprs_ns2: rework logging of Rx and Tx NS PDU In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22294 ) Change subject: gprs_ns2: rework logging of Rx and Tx NS PDU ...................................................................... Patch Set 8: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/22294/7/src/gb/gprs_ns2_internal.h File src/gb/gprs_ns2_internal.h: https://gerrit.osmocom.org/c/libosmocore/+/22294/7/src/gb/gprs_ns2_internal.h at 89 PS7, Line 89: #define LOG_NS_RX_MESSAGE(nsvc, pdu_type) LOG_NS_MESSAGE(true, nsvc, pdu_type) > That would be also possible. I don't have a strong opinion. I do, given we call this on every message and that the macro takes care of setting it for us, it means we skip 1 parameter (can be inlined in the fmt parameter) -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22294 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I34b8fde2955ecc010d1dcd9512e1bba9211e2c0d Gerrit-Change-Number: 22294 Gerrit-PatchSet: 8 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 19 Jan 2021 19:31:14 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Comment-In-Reply-To: lynxis lazus Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 19:53:21 2021 From: gerrit-no-reply at lists.osmocom.org (keith) Date: Tue, 19 Jan 2021 19:53:21 +0000 Subject: Change in osmo-hlr[master]: Add vty command to show summary of all or filtered subscribers In-Reply-To: References: Message-ID: keith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-hlr/+/22311 ) Change subject: Add vty command to show summary of all or filtered subscribers ...................................................................... Patch Set 7: > Patch Set 7: > > > Patch Set 7: > > > > What about scheduling a timer for a few ms later after printing every X records, then exiting? > > This sounds like over-complication for no benefit to me. Even if you schedule the guard timer, it would never expire until you finish everything in the current select() loop iteration. Thanks, yes. I tried to figure out if it could be done, It looks like a lot for not much. Really not sure how to deal with this. I'm also not sure how the C implementation of sqlite3 works and what the implications doing SELECT * from ..... on a table with several hundred thousand records is. Should be sql also include LIMIT and OFFSET or is it just the blocking vty printing to be concerned about? -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/22311 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-Change-Id: I7f0573381a6d0d13841ac6d42d50f0e8389decf4 Gerrit-Change-Number: 22311 Gerrit-PatchSet: 7 Gerrit-Owner: keith Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-CC: laforge Gerrit-CC: neels Gerrit-Comment-Date: Tue, 19 Jan 2021 19:53:21 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 20:00:01 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 19 Jan 2021 20:00:01 +0000 Subject: Change in libosmocore[master]: vty/fsm_vty: Add vty_out_fsm2() + vty_out_fsm_inst2() with prefix References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22322 ) Change subject: vty/fsm_vty: Add vty_out_fsm2() + vty_out_fsm_inst2() with prefix ...................................................................... vty/fsm_vty: Add vty_out_fsm2() + vty_out_fsm_inst2() with prefix Callers other than "show fsm" / "show fsm-instances" may want to indent the output. Change-Id: I10e01ef91116369868cdb878a99634c8681728af --- M include/osmocom/vty/misc.h M src/vty/fsm_vty.c 2 files changed, 48 insertions(+), 26 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/22/22322/1 diff --git a/include/osmocom/vty/misc.h b/include/osmocom/vty/misc.h index 2ad9650..ea31c5b 100644 --- a/include/osmocom/vty/misc.h +++ b/include/osmocom/vty/misc.h @@ -28,7 +28,9 @@ struct osmo_fsm; struct osmo_fsm_inst; void vty_out_fsm(struct vty *vty, struct osmo_fsm *fsm); +void vty_out_fsm2(struct vty *vty, const char *prefix, struct osmo_fsm *fsm); void vty_out_fsm_inst(struct vty *vty, struct osmo_fsm_inst *fsmi); +void vty_out_fsm_inst2(struct vty *vty, const char *prefix, struct osmo_fsm_inst *fsmi); void osmo_fsm_vty_add_cmds(void); void osmo_talloc_vty_add_cmds(void); diff --git a/src/vty/fsm_vty.c b/src/vty/fsm_vty.c index 3169ee7..83a8e79 100644 --- a/src/vty/fsm_vty.c +++ b/src/vty/fsm_vty.c @@ -51,60 +51,80 @@ /*! Print information about a FSM [class] to the given VTY * \param vty The VTY to which to print + * \param[in] prefix prefix to print at start of each line (typically indenting) * \param[in] fsm The FSM class to print */ -void vty_out_fsm(struct vty *vty, struct osmo_fsm *fsm) +void vty_out_fsm2(struct vty *vty, const char *prefix, struct osmo_fsm *fsm) { unsigned int i; const struct value_string *evt_name; - vty_out(vty, "FSM Name: '%s', Log Subsys: '%s'%s", fsm->name, + vty_out(vty, "%sFSM Name: '%s', Log Subsys: '%s'%s", prefix, fsm->name, log_category_name(fsm->log_subsys), VTY_NEWLINE); /* list the events */ if (fsm->event_names) { for (evt_name = fsm->event_names; evt_name->str != NULL; evt_name++) { - vty_out(vty, " Event %02u (0x%08x): '%s'%s", evt_name->value, + vty_out(vty, "%s Event %02u (0x%08x): '%s'%s", prefix, evt_name->value, (1 << evt_name->value), evt_name->str, VTY_NEWLINE); } } else - vty_out(vty, " No event names are defined for this FSM! Please fix!%s", VTY_NEWLINE); + vty_out(vty, "%s No event names are defined for this FSM! Please fix!%s", prefix, VTY_NEWLINE); /* list the states */ - vty_out(vty, " Number of States: %u%s", fsm->num_states, VTY_NEWLINE); + vty_out(vty, "%s Number of States: %u%s", prefix, fsm->num_states, VTY_NEWLINE); for (i = 0; i < fsm->num_states; i++) { const struct osmo_fsm_state *state = &fsm->states[i]; - vty_out(vty, " State %-20s InEvtMask: 0x%08x, OutStateMask: 0x%08x%s", + vty_out(vty, "%s State %-20s InEvtMask: 0x%08x, OutStateMask: 0x%08x%s", prefix, state->name, state->in_event_mask, state->out_state_mask, VTY_NEWLINE); } } +/*! Print information about a FSM [class] to the given VTY + * \param vty The VTY to which to print + * \param[in] fsm The FSM class to print + */ +void vty_out_fsm(struct vty *vty, struct osmo_fsm *fsm) +{ + vty_out_fsm2(vty, "", fsm); +} + +/*! Print a FSM instance to the given VTY + * \param vty The VTY to which to print + * \param[in] prefix prefix to print at start of each line (typically indenting) + * \param[in] fsmi The FSM instance to print + */ +void vty_out_fsm_inst2(struct vty *vty, const char *prefix, struct osmo_fsm_inst *fsmi) +{ + struct osmo_fsm_inst *child; + + vty_out(vty, "%sFSM Instance Name: '%s', ID: '%s'%s", prefix, + fsmi->name, fsmi->id, VTY_NEWLINE); + vty_out(vty, "%s Log-Level: '%s', State: '%s'%s", prefix, + log_level_str(fsmi->log_level), + osmo_fsm_state_name(fsmi->fsm, fsmi->state), + VTY_NEWLINE); + if (fsmi->T) + vty_out(vty, "%s Timer: %u%s", prefix, fsmi->T, VTY_NEWLINE); + if (fsmi->proc.parent) { + vty_out(vty, "%s Parent: '%s', Term-Event: '%s'%s", prefix, + fsmi->proc.parent->name, + osmo_fsm_event_name(fsmi->proc.parent->fsm, + fsmi->proc.parent_term_event), + VTY_NEWLINE); + } + llist_for_each_entry(child, &fsmi->proc.children, proc.child) { + vty_out(vty, "%s Child: '%s'%s", prefix, child->name, VTY_NEWLINE); + } +} + /*! Print a FSM instance to the given VTY * \param vty The VTY to which to print * \param[in] fsmi The FSM instance to print */ void vty_out_fsm_inst(struct vty *vty, struct osmo_fsm_inst *fsmi) { - struct osmo_fsm_inst *child; - - vty_out(vty, "FSM Instance Name: '%s', ID: '%s'%s", - fsmi->name, fsmi->id, VTY_NEWLINE); - vty_out(vty, " Log-Level: '%s', State: '%s'%s", - log_level_str(fsmi->log_level), - osmo_fsm_state_name(fsmi->fsm, fsmi->state), - VTY_NEWLINE); - if (fsmi->T) - vty_out(vty, " Timer: %u%s", fsmi->T, VTY_NEWLINE); - if (fsmi->proc.parent) { - vty_out(vty, " Parent: '%s', Term-Event: '%s'%s", - fsmi->proc.parent->name, - osmo_fsm_event_name(fsmi->proc.parent->fsm, - fsmi->proc.parent_term_event), - VTY_NEWLINE); - } - llist_for_each_entry(child, &fsmi->proc.children, proc.child) { - vty_out(vty, " Child: '%s'%s", child->name, VTY_NEWLINE); - } + vty_out_fsm_inst2(vty, "", fsmi); } #define SH_FSM_STR SHOW_STR "Show information about finite state machines\n" -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22322 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I10e01ef91116369868cdb878a99634c8681728af Gerrit-Change-Number: 22322 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 20:00:02 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 19 Jan 2021 20:00:02 +0000 Subject: Change in libosmocore[master]: ns2: Properly indent VTY output References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22323 ) Change subject: ns2: Properly indent VTY output ...................................................................... ns2: Properly indent VTY output If multiple objects are printed in the VTY, only the first line of each object should be on the first character of the line, all others should be indented. With this patch the "snow ns entities" output becomes much more readable: OsmoGbProxy> show ns entities NSEI 00102: UDP, DEAD FSM Instance Name: 'GPRS-NS2-SNS-BSS(NSE00102-SNS)[0x6120000018a0]', ID: 'NSE00102-SNS' Log-Level: 'DEBUG', State: 'SIZE' Timer: 1 Maximum number of remote NS-VCs: 8, IPv4 Endpoints: 4, IPv6 Endpoints: 0 NSVCI none: UNCONFIGURED DYNAMIC data_weight=1 sig_weight=1 udp)[127.0.0.1]:23000<>[127.0.0.11]:8888 NSEI 00101: UDP, DEAD FSM Instance Name: 'GPRS-NS2-SNS-BSS(NSE00101-SNS)[0x6120000015a0]', ID: 'NSE00101-SNS' Log-Level: 'DEBUG', State: 'SIZE' Timer: 1 Maximum number of remote NS-VCs: 8, IPv4 Endpoints: 4, IPv6 Endpoints: 0 NSVCI none: UNCONFIGURED DYNAMIC data_weight=1 sig_weight=1 udp)[127.0.0.1]:23000<>[127.0.0.10]:7777 Change-Id: Id1b4c80a6caef410076a68b4301adaa01ba7e57a --- M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_sns.c M src/gb/gprs_ns2_vty.c M src/gb/gprs_ns2_vty2.c 4 files changed, 20 insertions(+), 19 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/23/22323/1 diff --git a/src/gb/gprs_ns2_internal.h b/src/gb/gprs_ns2_internal.h index 5404ed3..6cd2ea1 100644 --- a/src/gb/gprs_ns2_internal.h +++ b/src/gb/gprs_ns2_internal.h @@ -245,7 +245,7 @@ struct msgb *gprs_ns2_msgb_alloc(void); void gprs_ns2_sns_write_vty(struct vty *vty, const struct gprs_ns2_nse *nse); -void gprs_ns2_sns_dump_vty(struct vty *vty, const struct gprs_ns2_nse *nse, bool stats); +void gprs_ns2_sns_dump_vty(struct vty *vty, const char *prefix, const struct gprs_ns2_nse *nse, bool stats); void ns2_prim_status_ind(struct gprs_ns2_nse *nse, struct gprs_ns2_vc *nsvc, uint16_t bvci, diff --git a/src/gb/gprs_ns2_sns.c b/src/gb/gprs_ns2_sns.c index e574b44..72e4ea7 100644 --- a/src/gb/gprs_ns2_sns.c +++ b/src/gb/gprs_ns2_sns.c @@ -1499,28 +1499,29 @@ #include #include -static void vty_dump_sns_ip4(struct vty *vty, const struct gprs_ns_ie_ip4_elem *ip4) +static void vty_dump_sns_ip4(struct vty *vty, const char *prefix, const struct gprs_ns_ie_ip4_elem *ip4) { struct in_addr in = { .s_addr = ip4->ip_addr }; - vty_out(vty, " %s:%u, Signalling Weight: %u, Data Weight: %u%s", + vty_out(vty, "%s %s:%u, Signalling Weight: %u, Data Weight: %u%s", prefix, inet_ntoa(in), ntohs(ip4->udp_port), ip4->sig_weight, ip4->data_weight, VTY_NEWLINE); } -static void vty_dump_sns_ip6(struct vty *vty, const struct gprs_ns_ie_ip6_elem *ip6) +static void vty_dump_sns_ip6(struct vty *vty, const char *prefix, const struct gprs_ns_ie_ip6_elem *ip6) { char ip_addr[INET6_ADDRSTRLEN] = {}; if (!inet_ntop(AF_INET6, &ip6->ip_addr, ip_addr, (INET6_ADDRSTRLEN))) strcpy(ip_addr, "Invalid IPv6"); - vty_out(vty, " %s:%u, Signalling Weight: %u, Data Weight: %u%s", + vty_out(vty, "%s %s:%u, Signalling Weight: %u, Data Weight: %u%s", prefix, ip_addr, ntohs(ip6->udp_port), ip6->sig_weight, ip6->data_weight, VTY_NEWLINE); } /*! Dump the IP-SNS state to a vty. * \param[in] vty VTY to which the state shall be printed + * \param[in] prefix prefix to print at start of each line (typically indenting) * \param[in] nse NS Entity whose IP-SNS state shall be printed * \param[in] stats Whether or not statistics shall also be printed */ -void gprs_ns2_sns_dump_vty(struct vty *vty, const struct gprs_ns2_nse *nse, bool stats) +void gprs_ns2_sns_dump_vty(struct vty *vty, const char *prefix, const struct gprs_ns2_nse *nse, bool stats) { struct ns2_sns_state *gss; unsigned int i; @@ -1528,30 +1529,30 @@ if (!nse->bss_sns_fi) return; - vty_out_fsm_inst(vty, nse->bss_sns_fi); + vty_out_fsm_inst2(vty, prefix, nse->bss_sns_fi); gss = (struct ns2_sns_state *) nse->bss_sns_fi->priv; - vty_out(vty, "Maximum number of remote NS-VCs: %zu, IPv4 Endpoints: %zu, IPv6 Endpoints: %zu%s", - gss->num_max_nsvcs, gss->num_max_ip4_remote, gss->num_max_ip6_remote, VTY_NEWLINE); + vty_out(vty, "%sMaximum number of remote NS-VCs: %zu, IPv4 Endpoints: %zu, IPv6 Endpoints: %zu%s", + prefix, gss->num_max_nsvcs, gss->num_max_ip4_remote, gss->num_max_ip6_remote, VTY_NEWLINE); if (gss->num_ip4_local && gss->num_ip4_remote) { - vty_out(vty, "Local IPv4 Endpoints:%s", VTY_NEWLINE); + vty_out(vty, "%sLocal IPv4 Endpoints:%s", prefix, VTY_NEWLINE); for (i = 0; i < gss->num_ip4_local; i++) - vty_dump_sns_ip4(vty, &gss->ip4_local[i]); + vty_dump_sns_ip4(vty, prefix, &gss->ip4_local[i]); - vty_out(vty, "Remote IPv4 Endpoints:%s", VTY_NEWLINE); + vty_out(vty, "%sRemote IPv4 Endpoints:%s", prefix, VTY_NEWLINE); for (i = 0; i < gss->num_ip4_remote; i++) - vty_dump_sns_ip4(vty, &gss->ip4_remote[i]); + vty_dump_sns_ip4(vty, prefix, &gss->ip4_remote[i]); } if (gss->num_ip6_local && gss->num_ip6_remote) { - vty_out(vty, "Local IPv6 Endpoints:%s", VTY_NEWLINE); + vty_out(vty, "%sLocal IPv6 Endpoints:%s", prefix, VTY_NEWLINE); for (i = 0; i < gss->num_ip6_local; i++) - vty_dump_sns_ip6(vty, &gss->ip6_local[i]); + vty_dump_sns_ip6(vty, prefix, &gss->ip6_local[i]); - vty_out(vty, "Remote IPv6 Endpoints:%s", VTY_NEWLINE); + vty_out(vty, "%sRemote IPv6 Endpoints:%s", prefix, VTY_NEWLINE); for (i = 0; i < gss->num_ip6_remote; i++) - vty_dump_sns_ip6(vty, &gss->ip6_remote[i]); + vty_dump_sns_ip6(vty, prefix, &gss->ip6_remote[i]); } } diff --git a/src/gb/gprs_ns2_vty.c b/src/gb/gprs_ns2_vty.c index 065f3ad..36a7f78 100644 --- a/src/gb/gprs_ns2_vty.c +++ b/src/gb/gprs_ns2_vty.c @@ -298,7 +298,7 @@ vty_out(vty, "NSEI %05u: %s, %s%s", nse->nsei, gprs_ns2_lltype_str(nse->ll), nse->alive ? "ALIVE" : "DEAD", VTY_NEWLINE); - gprs_ns2_sns_dump_vty(vty, nse, stats); + gprs_ns2_sns_dump_vty(vty, " ", nse, stats); llist_for_each_entry(nsvc, &nse->nsvc, list) { if (persistent_only) { if (nsvc->persistent) diff --git a/src/gb/gprs_ns2_vty2.c b/src/gb/gprs_ns2_vty2.c index 5af8fbc..e501d19 100644 --- a/src/gb/gprs_ns2_vty2.c +++ b/src/gb/gprs_ns2_vty2.c @@ -1349,7 +1349,7 @@ vty_out(vty, "NSEI %05u: %s, %s%s", nse->nsei, gprs_ns2_lltype_str(nse->ll), nse->alive ? "ALIVE" : "DEAD", VTY_NEWLINE); - gprs_ns2_sns_dump_vty(vty, nse, stats); + gprs_ns2_sns_dump_vty(vty, " ", nse, stats); llist_for_each_entry(nsvc, &nse->nsvc, list) { if (persistent_only) { if (nsvc->persistent) -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22323 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Id1b4c80a6caef410076a68b4301adaa01ba7e57a Gerrit-Change-Number: 22323 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 20:13:05 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 19 Jan 2021 20:13:05 +0000 Subject: Change in libosmocore[master]: gprs_ns2: implement BLOCK/UNBLOCK of a NSVC by vty In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22210 ) Change subject: gprs_ns2: implement BLOCK/UNBLOCK of a NSVC by vty ...................................................................... Patch Set 17: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/22210/13/tests/gb/gprs_ns2_test.c File tests/gb/gprs_ns2_test.c: https://gerrit.osmocom.org/c/libosmocore/+/22210/13/tests/gb/gprs_ns2_test.c at 123 PS13, Line 123: char idbuf[32]; You could drop the idbuf then as well. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22210 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic0ce3c5fabc8644cc1ee71a8f6dd783fadf7b84d Gerrit-Change-Number: 22210 Gerrit-PatchSet: 17 Gerrit-Owner: lynxis lazus Gerrit-Assignee: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 19 Jan 2021 20:13:05 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 20:20:30 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 19 Jan 2021 20:20:30 +0000 Subject: Change in osmo-ttcn3-hacks[master]: NS_Emulation: Add CTRL port to administratively disable a NS-VC In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22315 ) Change subject: NS_Emulation: Add CTRL port to administratively disable a NS-VC ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22315 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I742ecf01de15e3edbf0719371f0217a5739b7c8e Gerrit-Change-Number: 22315 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Comment-Date: Tue, 19 Jan 2021 20:20:30 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 19 20:48:11 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 19 Jan 2021 20:48:11 +0000 Subject: Change in libosmocore[master]: gprs_ns2: implement BLOCK/UNBLOCK of a NSVC by vty In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22210 ) Change subject: gprs_ns2: implement BLOCK/UNBLOCK of a NSVC by vty ...................................................................... Patch Set 17: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/22210/13/tests/gb/gprs_ns2_test.c File tests/gb/gprs_ns2_test.c: https://gerrit.osmocom.org/c/libosmocore/+/22210/13/tests/gb/gprs_ns2_test.c at 123 PS13, Line 123: char idbuf[32]; > You could drop the idbuf then as well. already done. otherwise the build fails :) -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22210 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic0ce3c5fabc8644cc1ee71a8f6dd783fadf7b84d Gerrit-Change-Number: 22210 Gerrit-PatchSet: 17 Gerrit-Owner: lynxis lazus Gerrit-Assignee: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 19 Jan 2021 20:48:11 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: daniel Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Wed Jan 20 01:42:19 2021 From: admin at opensuse.org (OBS Notification) Date: Wed, 20 Jan 2021 01:42:19 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.10/x86_64 In-Reply-To: References: Message-ID: <60078a92e76a0_14492ad717ae65f05547e3@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/xUbuntu_20.10/x86_64 Package network:osmocom:nightly/simtrace2 failed to build in xUbuntu_20.10/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 132s] [COMPILING apps/dfu/main.c] [ 132s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 132s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 132s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 132s] Memory region Used Size Region Size %age Used [ 132s] rom: 16580 B 16 KB 101.20% [ 132s] ram: 11672 B 48 KB 23.75/usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 132s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 132s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 132s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 132s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 132s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 132s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 196 bytes [ 132s] collect2: error: ld returned 1 exit status [ 132s] % [ 132s] make[2]: *** [Makefile:234: flash] Error 1 [ 132s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 132s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 132s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 132s] dh_auto_build: error: make -j1 returned exit code 2 [ 132s] make: *** [debian/rules:16: build] Error 25 [ 132s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 132s] ### VM INTERACTION START ### [ 135s] [ 122.387176] sysrq: Power Off [ 135s] [ 122.395997] reboot: Power down [ 135s] ### VM INTERACTION END ### [ 135s] [ 135s] sheep82 failed "build simtrace2_0.7.0.69.aadd.dsc" at Wed Jan 20 01:42:02 UTC 2021. [ 135s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Jan 20 01:43:11 2021 From: admin at opensuse.org (OBS Notification) Date: Wed, 20 Jan 2021 01:43:11 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <60078ab4ee70a_14492ad717ae65f05560a8@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/xUbuntu_20.04/x86_64 Package network:osmocom:nightly/simtrace2 failed to build in xUbuntu_20.04/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 110s] [COMPILING libboard/qmod/source/wwan_perst.c] [ 110s] [COMPILING libboard/qmod/source/card_pres.c] [ 110s] [COMPILING libboard/qmod/source/wwan_led.c] [ 111s] [COMPILING libboard/qmod/source/i2c.c] [ 111s] [COMPILING libboard/qmod/source/board_qmod.c] [ 111s] [COMPILING apps/dfu/main.c] [ 111s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 111s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 111s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 111s] Memory region Used Size Region Size %age Used [ 111s] rom: 16588 B 16 KB 101.25% [ 111s] ram: 11672 B 48 KB 23.75/usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 111s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 204 bytes [ 111s] collect2: error: ld returned 1 exit status [ 111s] % [ 111s] make[2]: *** [Makefile:234: flash] Error 1 [ 111s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 111s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 111s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 111s] dh_auto_build: error: make -j1 returned exit code 2 [ 111s] make: *** [debian/rules:16: build] Error 25 [ 111s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 111s] ### VM INTERACTION START ### [ 114s] [ 108.473701] sysrq: Power Off [ 114s] [ 108.478852] reboot: Power down [ 115s] ### VM INTERACTION END ### [ 115s] [ 115s] goat15 failed "build simtrace2_0.7.0.69.aadd.dsc" at Wed Jan 20 01:43:02 UTC 2021. [ 115s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Wed Jan 20 09:26:41 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 20 Jan 2021 09:26:41 +0000 Subject: Change in libosmocore[master]: bssgp_rim: add encoder/decoder for NACC related RIM containers In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21862 ) Change subject: bssgp_rim: add encoder/decoder for NACC related RIM containers ...................................................................... Patch Set 13: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/21862/13/src/gb/gprs_bssgp_rim.c File src/gb/gprs_bssgp_rim.c: https://gerrit.osmocom.org/c/libosmocore/+/21862/13/src/gb/gprs_bssgp_rim.c at 343 PS13, Line 343: buf_ptr[1] = len & 0xff; Something is definitely wrong here: you store (x >> 8) and then overwrite it by (x & 0xff). I guess the second part should go to buf_ptr[2]? See CID#216670. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21862 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ibbc7fd67658e3040c12abb5706fe9d1f31894352 Gerrit-Change-Number: 21862 Gerrit-PatchSet: 13 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: fixeria Gerrit-Comment-Date: Wed, 20 Jan 2021 09:26:41 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 10:18:19 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 20 Jan 2021 10:18:19 +0000 Subject: Change in libosmocore[master]: vty/fsm_vty: Add vty_out_fsm2() + vty_out_fsm_inst2() with prefix In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22322 ) Change subject: vty/fsm_vty: Add vty_out_fsm2() + vty_out_fsm_inst2() with prefix ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22322 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I10e01ef91116369868cdb878a99634c8681728af Gerrit-Change-Number: 22322 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 20 Jan 2021 10:18:19 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 10:19:16 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 20 Jan 2021 10:19:16 +0000 Subject: Change in libosmocore[master]: ns2: Properly indent VTY output In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22323 ) Change subject: ns2: Properly indent VTY output ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22323 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Id1b4c80a6caef410076a68b4301adaa01ba7e57a Gerrit-Change-Number: 22323 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 20 Jan 2021 10:19:16 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 11:07:08 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 20 Jan 2021 11:07:08 +0000 Subject: Change in osmo-pcu[master]: Allow multiple bts objects in PCU In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22309 ) Change subject: Allow multiple bts objects in PCU ...................................................................... Patch Set 5: Code-Review+1 Thanks for the detailed explanations, looks good now :) -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22309 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I6b10913f46c19d438c4e250a436a7446694b725a Gerrit-Change-Number: 22309 Gerrit-PatchSet: 5 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Comment-Date: Wed, 20 Jan 2021 11:07:08 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 11:36:36 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 20 Jan 2021 11:36:36 +0000 Subject: Change in osmo-pcu[master]: Allow multiple bts objects in PCU In-Reply-To: References: Message-ID: Hello osmith, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-pcu/+/22309 to look at the new patch set (#6). Change subject: Allow multiple bts objects in PCU ...................................................................... Allow multiple bts objects in PCU This patch doesn't really tests whether osmo-pcu can work on a multi-bts environment, but it prepares the data structures to be able to do so at any later point in time. Change-Id: I6b10913f46c19d438c4e250a436a7446694b725a --- M README.md M src/bts.cpp M src/bts.h M src/gprs_bssgp_pcu.c M src/gprs_pcu.c M src/gprs_pcu.h M src/gprs_rlcmac.cpp M src/gprs_rlcmac.h M src/gprs_rlcmac_sched.cpp M src/osmo-bts-litecell15/lc15_l1_if.c M src/osmo-bts-oc2g/oc2g_l1_if.c M src/osmo-bts-sysmo/sysmo_l1_if.c M src/osmobts_sock.c M src/pcu_l1_if.cpp M src/pcu_l1_if.h M src/pcu_main.cpp M src/pcu_vty.c M src/pcu_vty_functions.cpp M tests/alloc/AllocTest.cpp M tests/alloc/MslotTest.cpp M tests/app_info/AppInfoTest.cpp M tests/edge/EdgeTest.cpp M tests/emu/pcu_emu.cpp M tests/fn/FnTest.cpp M tests/ms/MsTest.cpp M tests/tbf/TbfTest.cpp M tests/types/TypesTest.cpp 27 files changed, 355 insertions(+), 263 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/09/22309/6 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22309 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I6b10913f46c19d438c4e250a436a7446694b725a Gerrit-Change-Number: 22309 Gerrit-PatchSet: 6 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 11:37:15 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 20 Jan 2021 11:37:15 +0000 Subject: Change in osmo-pcu[master]: Allow multiple bts objects in PCU In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22309 ) Change subject: Allow multiple bts objects in PCU ...................................................................... Patch Set 6: I added an entry to README.md announcing multi-BTS support is not really tested and failures expected there. -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22309 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I6b10913f46c19d438c4e250a436a7446694b725a Gerrit-Change-Number: 22309 Gerrit-PatchSet: 6 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Comment-Date: Wed, 20 Jan 2021 11:37:15 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 11:38:06 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 20 Jan 2021 11:38:06 +0000 Subject: Change in osmo-pcu[master]: Allow multiple bts objects in PCU In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22309 ) Change subject: Allow multiple bts objects in PCU ...................................................................... Patch Set 6: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22309 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I6b10913f46c19d438c4e250a436a7446694b725a Gerrit-Change-Number: 22309 Gerrit-PatchSet: 6 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Comment-Date: Wed, 20 Jan 2021 11:38:06 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 11:45:10 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 20 Jan 2021 11:45:10 +0000 Subject: Change in osmo-pcu[master]: Allow multiple bts objects in PCU In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22309 ) Change subject: Allow multiple bts objects in PCU ...................................................................... Patch Set 6: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22309 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I6b10913f46c19d438c4e250a436a7446694b725a Gerrit-Change-Number: 22309 Gerrit-PatchSet: 6 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 20 Jan 2021 11:45:10 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 11:45:12 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 20 Jan 2021 11:45:12 +0000 Subject: Change in osmo-pcu[master]: Allow multiple bts objects in PCU In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22309 ) Change subject: Allow multiple bts objects in PCU ...................................................................... Allow multiple bts objects in PCU This patch doesn't really tests whether osmo-pcu can work on a multi-bts environment, but it prepares the data structures to be able to do so at any later point in time. Change-Id: I6b10913f46c19d438c4e250a436a7446694b725a --- M README.md M src/bts.cpp M src/bts.h M src/gprs_bssgp_pcu.c M src/gprs_pcu.c M src/gprs_pcu.h M src/gprs_rlcmac.cpp M src/gprs_rlcmac.h M src/gprs_rlcmac_sched.cpp M src/osmo-bts-litecell15/lc15_l1_if.c M src/osmo-bts-oc2g/oc2g_l1_if.c M src/osmo-bts-sysmo/sysmo_l1_if.c M src/osmobts_sock.c M src/pcu_l1_if.cpp M src/pcu_l1_if.h M src/pcu_main.cpp M src/pcu_vty.c M src/pcu_vty_functions.cpp M tests/alloc/AllocTest.cpp M tests/alloc/MslotTest.cpp M tests/app_info/AppInfoTest.cpp M tests/edge/EdgeTest.cpp M tests/emu/pcu_emu.cpp M tests/fn/FnTest.cpp M tests/ms/MsTest.cpp M tests/tbf/TbfTest.cpp M tests/types/TypesTest.cpp 27 files changed, 355 insertions(+), 263 deletions(-) Approvals: osmith: Looks good to me, but someone else must approve pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/README.md b/README.md index 65cf475..89c299c 100644 --- a/README.md +++ b/README.md @@ -82,3 +82,4 @@ * No half-duplex class support (only semi-duplex) * No TA loop * No power loop + * Multi-BTS support not tested diff --git a/src/bts.cpp b/src/bts.cpp index 499c033..b5bb3a2 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -221,10 +221,12 @@ msgb_free(bts->app_info); bts->app_info = NULL; } + + llist_del(&bts->list); return 0; } -struct gprs_rlcmac_bts* bts_alloc(struct gprs_pcu *pcu) +struct gprs_rlcmac_bts* bts_alloc(struct gprs_pcu *pcu, uint8_t bts_nr) { struct gprs_rlcmac_bts* bts; bts = talloc_zero(pcu, struct gprs_rlcmac_bts); @@ -233,6 +235,7 @@ talloc_set_destructor(bts, bts_talloc_destructor); bts->pcu = pcu; + bts->nr = bts_nr; bts->pollController = new PollController(*bts); bts->sba = new SBAController(*bts); @@ -286,6 +289,8 @@ bts->statg = osmo_stat_item_group_alloc(tall_pcu_ctx, &bts_statg_desc, 0); OSMO_ASSERT(bts->statg); + llist_add_tail(&bts->list, &pcu->bts_list); + return bts; } @@ -916,7 +921,7 @@ } if (plen >= 0) - pcu_l1if_tx_agch(bv, plen); + pcu_l1if_tx_agch(bts, bv, plen); else rc = plen; @@ -995,7 +1000,7 @@ GSM_L1_BURST_TYPE_ACCESS_0); if (plen >= 0) { bts_do_rate_ctr_inc(bts, CTR_IMMEDIATE_ASSIGN_DL_TBF); - pcu_l1if_tx_pch(immediate_assignment, plen, pgroup); + pcu_l1if_tx_pch(bts, immediate_assignment, plen, pgroup); } bitvec_free(immediate_assignment); @@ -1125,10 +1130,11 @@ } } -void bts_update_tbf_ta(const char *p, uint32_t fn, uint8_t trx_no, uint8_t ts, int8_t ta, bool is_rach) +void bts_update_tbf_ta(struct gprs_rlcmac_bts *bts, const char *p, uint32_t fn, + uint8_t trx_no, uint8_t ts, int8_t ta, bool is_rach) { struct gprs_rlcmac_ul_tbf *tbf = - bts_ul_tbf_by_poll_fn(the_pcu->bts, fn, trx_no, ts); + bts_ul_tbf_by_poll_fn(bts, fn, trx_no, ts); if (!tbf) LOGP(DL1IF, LOGL_DEBUG, "[%s] update TA = %u ignored due to " "unknown UL TBF on TRX = %d, TS = %d, FN = %d\n", diff --git a/src/bts.h b/src/bts.h index 37fc5dc..d1881b2 100644 --- a/src/bts.h +++ b/src/bts.h @@ -67,7 +67,8 @@ void bts_trx_unreserve_slots(struct gprs_rlcmac_trx *trx, enum gprs_rlcmac_tbf_direction dir, uint8_t slots); void bts_trx_free_all_tbf(struct gprs_rlcmac_trx *trx); -void bts_update_tbf_ta(const char *p, uint32_t fn, uint8_t trx_no, uint8_t ts, int8_t ta, bool is_rach); +void bts_update_tbf_ta(struct gprs_rlcmac_bts *bts, const char *p, uint32_t fn, + uint8_t trx_no, uint8_t ts, int8_t ta, bool is_rach); #ifdef __cplusplus } #endif @@ -194,6 +195,8 @@ * on my TRXs. */ struct gprs_rlcmac_bts { + uint8_t nr; /* bts_nr */ + struct llist_head list; /* queued in pcu->bts_list */ bool active; uint8_t bsic; uint8_t cs_mask; /* Allowed CS mask from BTS */ @@ -317,7 +320,7 @@ osmo_stat_item_set(bts->statg->items[stat_id], val + inc); } -struct gprs_rlcmac_bts *bts_alloc(struct gprs_pcu *pcu); +struct gprs_rlcmac_bts *bts_alloc(struct gprs_pcu *pcu, uint8_t bts_nr); void bts_recalc_initial_cs(struct gprs_rlcmac_bts *bts); void bts_recalc_initial_mcs(struct gprs_rlcmac_bts *bts); diff --git a/src/gprs_bssgp_pcu.c b/src/gprs_bssgp_pcu.c index 288bc45..956fb66 100644 --- a/src/gprs_bssgp_pcu.c +++ b/src/gprs_bssgp_pcu.c @@ -204,18 +204,24 @@ static int gprs_bssgp_pcu_rx_paging_cs(struct msgb *msg, const struct tlv_parsed *tp) { struct osmo_mobile_identity mi; + struct gprs_rlcmac_bts *bts; int rc; if ((rc = get_paging_mi(&mi, tp)) > 0) return bssgp_tx_status((enum gprs_bssgp_cause) rc, NULL, msg); - return bts_add_paging(the_pcu->bts, tlvp_val8(tp, BSSGP_IE_CHAN_NEEDED, 0), &mi); + /* FIXME: look if MS is attached a specific BTS and then only page on that one? */ + llist_for_each_entry(bts, &the_pcu->bts_list, list) { + bts_add_paging(bts, tlvp_val8(tp, BSSGP_IE_CHAN_NEEDED, 0), &mi); + } + return 0; } static int gprs_bssgp_pcu_rx_paging_ps(struct msgb *msg, const struct tlv_parsed *tp) { struct osmo_mobile_identity mi_imsi; struct osmo_mobile_identity paging_mi; + struct gprs_rlcmac_bts *bts; uint16_t pgroup; int rc; @@ -238,7 +244,11 @@ if ((rc = get_paging_mi(&paging_mi, tp)) > 0) return bssgp_tx_status((enum gprs_bssgp_cause) rc, NULL, msg); - return gprs_rlcmac_paging_request(&paging_mi, pgroup); + /* FIXME: look if MS is attached a specific BTS and then only page on that one? */ + llist_for_each_entry(bts, &the_pcu->bts_list, list) { + gprs_rlcmac_paging_request(bts, &paging_mi, pgroup); + } + return 0; } /* Receive a BSSGP PDU from a BSS on a PTP BVCI */ @@ -808,7 +818,13 @@ LOGP(DBSSGP, LOGL_ERROR, "No bctx\n"); return -EIO; } - bts = the_pcu->bts; + + /* FIXME: This calculation needs to be redone to support multiple BTS */ + bts = llist_first_entry_or_null(&the_pcu->bts_list, struct gprs_rlcmac_bts, list); + if (!bts) { + LOGP(DBSSGP, LOGL_ERROR, "No bts\n"); + return -EIO; + } max_cs_dl = max_coding_scheme_dl(bts); diff --git a/src/gprs_pcu.c b/src/gprs_pcu.c index b280652..d291e71 100644 --- a/src/gprs_pcu.c +++ b/src/gprs_pcu.c @@ -21,6 +21,7 @@ */ #include +#include #include "gprs_pcu.h" #include "bts.h" @@ -100,37 +101,63 @@ pcu->T_defs = T_defs_pcu; osmo_tdefs_reset(pcu->T_defs); + INIT_LLIST_HEAD(&pcu->bts_list); + return pcu; } +struct gprs_rlcmac_bts *gprs_pcu_get_bts_by_nr(struct gprs_pcu *pcu, uint8_t bts_nr) +{ + struct gprs_rlcmac_bts *pos; + llist_for_each_entry(pos, &pcu->bts_list, list) { + if (pos->nr == bts_nr) + return pos; + } + return NULL; +} + void gprs_pcu_set_initial_cs(struct gprs_pcu *pcu, uint8_t cs_dl, uint8_t cs_ul) { + struct gprs_rlcmac_bts *bts; + the_pcu->vty.initial_cs_dl = cs_dl; the_pcu->vty.initial_cs_ul = cs_ul; - /*TODO: once we support multiple bts, foreach(bts) apply */ - bts_recalc_initial_cs(pcu->bts); + llist_for_each_entry(bts, &pcu->bts_list, list) { + bts_recalc_initial_cs(bts); + } } void gprs_pcu_set_initial_mcs(struct gprs_pcu *pcu, uint8_t mcs_dl, uint8_t mcs_ul) { + struct gprs_rlcmac_bts *bts; + the_pcu->vty.initial_mcs_dl = mcs_dl; the_pcu->vty.initial_mcs_ul = mcs_ul; - /*TODO: once we support multiple bts, foreach(bts) apply */ - bts_recalc_initial_mcs(pcu->bts); + llist_for_each_entry(bts, &pcu->bts_list, list) { + bts_recalc_initial_mcs(bts); + } } void gprs_pcu_set_max_cs(struct gprs_pcu *pcu, uint8_t cs_dl, uint8_t cs_ul) { + struct gprs_rlcmac_bts *bts; + the_pcu->vty.max_cs_dl = cs_dl; the_pcu->vty.max_cs_ul = cs_ul; - /*TODO: once we support multiple bts, foreach(bts) apply */ - bts_recalc_max_cs(pcu->bts); + + llist_for_each_entry(bts, &pcu->bts_list, list) { + bts_recalc_max_cs(bts); + } } void gprs_pcu_set_max_mcs(struct gprs_pcu *pcu, uint8_t mcs_dl, uint8_t mcs_ul) { + struct gprs_rlcmac_bts *bts; + the_pcu->vty.max_mcs_dl = mcs_dl; the_pcu->vty.max_mcs_ul = mcs_ul; - /* TODO: once we support multiple bts, foreach(bts) apply */ - bts_recalc_max_mcs(pcu->bts); + + llist_for_each_entry(bts, &pcu->bts_list, list) { + bts_recalc_max_mcs(bts); + } } diff --git a/src/gprs_pcu.h b/src/gprs_pcu.h index 37f6e07..058d102 100644 --- a/src/gprs_pcu.h +++ b/src/gprs_pcu.h @@ -107,7 +107,7 @@ struct gsmtap_inst *gsmtap; uint32_t gsmtap_categ_mask; - struct gprs_rlcmac_bts *bts; + struct llist_head bts_list; /* list of gprs_rlcmac_tbf */ struct gprs_ns2_inst *nsi; @@ -123,6 +123,8 @@ struct gprs_pcu *gprs_pcu_alloc(void *ctx); +struct gprs_rlcmac_bts *gprs_pcu_get_bts_by_nr(struct gprs_pcu *pcu, uint8_t bts_nr); + void gprs_pcu_set_initial_cs(struct gprs_pcu *pcu, uint8_t cs_dl, uint8_t cs_ul); void gprs_pcu_set_initial_mcs(struct gprs_pcu *pcu, uint8_t mcs_dl, uint8_t mcs_ul); void gprs_pcu_set_max_cs(struct gprs_pcu *pcu, uint8_t cs_dl, uint8_t cs_ul); diff --git a/src/gprs_rlcmac.cpp b/src/gprs_rlcmac.cpp index 4fb75f7..71849b8 100644 --- a/src/gprs_rlcmac.cpp +++ b/src/gprs_rlcmac.cpp @@ -32,7 +32,8 @@ extern void *tall_pcu_ctx; -int gprs_rlcmac_paging_request(const struct osmo_mobile_identity *mi, uint16_t pgroup) +int gprs_rlcmac_paging_request(struct gprs_rlcmac_bts *bts, const struct osmo_mobile_identity *mi, + uint16_t pgroup) { if (log_check_level(DRLCMAC, LOGL_NOTICE)) { char str[64]; @@ -46,7 +47,7 @@ LOGP(DRLCMAC, LOGL_ERROR, "TX: [PCU -> BTS] Failed to encode Paging Request\n"); return -1; } - pcu_l1if_tx_pch(paging_request, plen, pgroup); + pcu_l1if_tx_pch(bts, paging_request, plen, pgroup); bitvec_free(paging_request); return 0; diff --git a/src/gprs_rlcmac.h b/src/gprs_rlcmac.h index a5d1d30..69fd6a4 100644 --- a/src/gprs_rlcmac.h +++ b/src/gprs_rlcmac.h @@ -113,7 +113,7 @@ int alloc_algorithm_dynamic(struct gprs_rlcmac_bts *bts, struct GprsMs *ms, struct gprs_rlcmac_tbf *tbf, bool single, int8_t use_trx); -int gprs_rlcmac_paging_request(const struct osmo_mobile_identity *mi, uint16_t pgroup); +int gprs_rlcmac_paging_request(struct gprs_rlcmac_bts *bts, const struct osmo_mobile_identity *mi, uint16_t pgroup); int gprs_alloc_max_dl_slots_per_ms(const struct gprs_rlcmac_bts *bts, uint8_t ms_class); #ifdef __cplusplus } diff --git a/src/gprs_rlcmac_sched.cpp b/src/gprs_rlcmac_sched.cpp index 40c194c..5640158 100644 --- a/src/gprs_rlcmac_sched.cpp +++ b/src/gprs_rlcmac_sched.cpp @@ -136,7 +136,7 @@ if (!tbf || !tbf->ms()->app_info_pending) return NULL; - bts = the_pcu->bts; + bts = tbf->bts; if (bts->app_info) { LOGP(DRLCMACSCHED, LOGL_DEBUG, "Sending Packet Application Information message\n"); @@ -506,7 +506,7 @@ tap_n_acc(msg, bts, trx, ts, fn, gsmtap_cat); /* send PDTCH/PACCH to L1 */ - pcu_l1if_tx_pdtch(msg, trx, ts, bts->trx[trx].arfcn, fn, block_nr); + pcu_l1if_tx_pdtch(msg, bts, trx, ts, bts->trx[trx].arfcn, fn, block_nr); return 0; } diff --git a/src/osmo-bts-litecell15/lc15_l1_if.c b/src/osmo-bts-litecell15/lc15_l1_if.c index bf2ecec..8f64863 100644 --- a/src/osmo-bts-litecell15/lc15_l1_if.c +++ b/src/osmo-bts-litecell15/lc15_l1_if.c @@ -148,6 +148,7 @@ GsmL1_PhReadyToSendInd_t *rts_ind) { struct gsm_time g_time; + struct gprs_rlcmac_bts *bts; int rc = 0; gsm_fn2gsmtime(&g_time, rts_ind->u32Fn); @@ -156,14 +157,17 @@ g_time.t1, g_time.t2, g_time.t3, get_value_string(lc15bts_l1sapi_names, rts_ind->sapi)); + bts = llist_first_entry_or_null(&the_pcu->bts_list, struct gprs_rlcmac_bts, list); + + switch (rts_ind->sapi) { case GsmL1_Sapi_Pdtch: case GsmL1_Sapi_Pacch: - rc = pcu_rx_rts_req_pdtch(fl1h->trx_no, rts_ind->u8Tn, + rc = pcu_rx_rts_req_pdtch(bts, fl1h->trx_no, rts_ind->u8Tn, rts_ind->u32Fn, rts_ind->u8BlockNbr); break; case GsmL1_Sapi_Ptcch: - rc = pcu_rx_rts_req_ptcch(fl1h->trx_no, rts_ind->u8Tn, + rc = pcu_rx_rts_req_ptcch(bts, fl1h->trx_no, rts_ind->u8Tn, rts_ind->u32Fn, rts_ind->u8BlockNbr); break; default: @@ -189,6 +193,7 @@ GsmL1_PhDataInd_t *data_ind, struct msgb *l1p_msg) { int rc = 0; + struct gprs_rlcmac_bts *bts; struct pcu_l1_meas meas = {0}; DEBUGP(DL1IF, "Rx PH-DATA.ind %s (hL2 %08x): %s\n", @@ -205,8 +210,10 @@ if (data_ind->msgUnitParam.u8Size == 0) return -1; + bts = llist_first_entry_or_null(&the_pcu->bts_list, struct gprs_rlcmac_bts, list); + get_meas(&meas, &data_ind->measParam); - bts_update_tbf_ta("PH-DATA", data_ind->u32Fn, fl1h->trx_no, + bts_update_tbf_ta(bts, "PH-DATA", data_ind->u32Fn, fl1h->trx_no, data_ind->u8Tn, sign_qta2ta(meas.bto), false); switch (data_ind->sapi) { @@ -217,7 +224,7 @@ != GsmL1_PdtchPlType_Full) break; /* PDTCH / PACCH frame handling */ - rc = pcu_rx_data_ind_pdtch(fl1h->trx_no, data_ind->u8Tn, + rc = pcu_rx_data_ind_pdtch(bts, fl1h->trx_no, data_ind->u8Tn, data_ind->msgUnitParam.u8Buffer + 1, data_ind->msgUnitParam.u8Size - 1, data_ind->u32Fn, @@ -243,19 +250,22 @@ static int handle_ph_ra_ind(struct lc15l1_hdl *fl1h, GsmL1_PhRaInd_t *ra_ind) { + struct gprs_rlcmac_bts *bts; if (ra_ind->measParam.fLinkQuality < MIN_QUAL_RACH) return 0; DEBUGP(DL1IF, "Rx PH-RA.ind"); + bts = llist_first_entry_or_null(&the_pcu->bts_list, struct gprs_rlcmac_bts, list); + switch (ra_ind->sapi) { case GsmL1_Sapi_Pdtch: case GsmL1_Sapi_Prach: - bts_update_tbf_ta("PH-RA", ra_ind->u32Fn, fl1h->trx_no, ra_ind->u8Tn, + bts_update_tbf_ta(bts, "PH-RA", ra_ind->u32Fn, fl1h->trx_no, ra_ind->u8Tn, qta2ta(ra_ind->measParam.i16BurstTiming), true); break; case GsmL1_Sapi_Ptcch: - pcu_rx_rach_ind_ptcch(fl1h->trx_no, ra_ind->u8Tn, ra_ind->u32Fn, + pcu_rx_rach_ind_ptcch(bts, fl1h->trx_no, ra_ind->u8Tn, ra_ind->u32Fn, ra_ind->measParam.i16BurstTiming); break; default: @@ -387,4 +397,3 @@ talloc_free(fl1h); return 0; } - diff --git a/src/osmo-bts-oc2g/oc2g_l1_if.c b/src/osmo-bts-oc2g/oc2g_l1_if.c index 0bfe0b9..d81bc4f 100644 --- a/src/osmo-bts-oc2g/oc2g_l1_if.c +++ b/src/osmo-bts-oc2g/oc2g_l1_if.c @@ -149,6 +149,7 @@ GsmL1_PhReadyToSendInd_t *rts_ind) { struct gsm_time g_time; + struct gprs_rlcmac_bts *bts; int rc = 0; gsm_fn2gsmtime(&g_time, rts_ind->u32Fn); @@ -157,14 +158,16 @@ g_time.t1, g_time.t2, g_time.t3, get_value_string(oc2gbts_l1sapi_names, rts_ind->sapi)); + bts = llist_first_entry_or_null(&the_pcu->bts_list, struct gprs_rlcmac_bts, list); + switch (rts_ind->sapi) { case GsmL1_Sapi_Pdtch: case GsmL1_Sapi_Pacch: - rc = pcu_rx_rts_req_pdtch(fl1h->trx_no, rts_ind->u8Tn, + rc = pcu_rx_rts_req_pdtch(bts, fl1h->trx_no, rts_ind->u8Tn, rts_ind->u32Fn, rts_ind->u8BlockNbr); break; case GsmL1_Sapi_Ptcch: - rc = pcu_rx_rts_req_ptcch(fl1h->trx_no, rts_ind->u8Tn, + rc = pcu_rx_rts_req_ptcch(bts, fl1h->trx_no, rts_ind->u8Tn, rts_ind->u32Fn, rts_ind->u8BlockNbr); break; default: @@ -190,6 +193,7 @@ GsmL1_PhDataInd_t *data_ind, struct msgb *l1p_msg) { int rc = 0; + struct gprs_rlcmac_bts *bts; struct pcu_l1_meas meas = {0}; DEBUGP(DL1IF, "Rx PH-DATA.ind %s (hL2 %08x): %s\n", @@ -206,13 +210,15 @@ if (data_ind->msgUnitParam.u8Size == 0) return -1; + bts = llist_first_entry_or_null(&the_pcu->bts_list, struct gprs_rlcmac_bts, list); + gsmtap_send(fl1h->gsmtap, data_ind->u16Arfcn | GSMTAP_ARFCN_F_UPLINK, data_ind->u8Tn, GSMTAP_CHANNEL_PACCH, 0, data_ind->u32Fn, 0, 0, data_ind->msgUnitParam.u8Buffer+1, data_ind->msgUnitParam.u8Size-1); get_meas(&meas, &data_ind->measParam); - bts_update_tbf_ta("PH-DATA", data_ind->u32Fn, fl1h->trx_no, + bts_update_tbf_ta(bts, "PH-DATA", data_ind->u32Fn, fl1h->trx_no, data_ind->u8Tn, sign_qta2ta(meas.bto), false); switch (data_ind->sapi) { @@ -223,7 +229,7 @@ != GsmL1_PdtchPlType_Full) break; /* PDTCH / PACCH frame handling */ - pcu_rx_data_ind_pdtch(fl1h->trx_no, data_ind->u8Tn, + pcu_rx_data_ind_pdtch(bts, fl1h->trx_no, data_ind->u8Tn, data_ind->msgUnitParam.u8Buffer + 1, data_ind->msgUnitParam.u8Size - 1, data_ind->u32Fn, @@ -242,19 +248,23 @@ static int handle_ph_ra_ind(struct oc2gl1_hdl *fl1h, GsmL1_PhRaInd_t *ra_ind) { + struct gprs_rlcmac_bts *bts; + if (ra_ind->measParam.fLinkQuality < MIN_QUAL_RACH) return 0; LOGP(DL1IF, LOGL_DEBUG, "PH-RA-IND L1 qta=%d\n", ra_ind->measParam.i16BurstTiming); + bts = llist_first_entry_or_null(&the_pcu->bts_list, struct gprs_rlcmac_bts, list); + switch (ra_ind->sapi) { case GsmL1_Sapi_Pdtch: case GsmL1_Sapi_Prach: - bts_update_tbf_ta("PH-RA", ra_ind->u32Fn, fl1h->trx_no, ra_ind->u8Tn, + bts_update_tbf_ta(bts, "PH-RA", ra_ind->u32Fn, fl1h->trx_no, ra_ind->u8Tn, qta2ta(ra_ind->measParam.i16BurstTiming), true); break; case GsmL1_Sapi_Ptcch: - pcu_rx_rach_ind_ptcch(fl1h->trx_no, ra_ind->u8Tn, ra_ind->u32Fn, + pcu_rx_rach_ind_ptcch(bts, fl1h->trx_no, ra_ind->u8Tn, ra_ind->u32Fn, ra_ind->measParam.i16BurstTiming); break; default: @@ -392,4 +402,3 @@ talloc_free(fl1h); return 0; } - diff --git a/src/osmo-bts-sysmo/sysmo_l1_if.c b/src/osmo-bts-sysmo/sysmo_l1_if.c index 7406bbf..f9db0b8 100644 --- a/src/osmo-bts-sysmo/sysmo_l1_if.c +++ b/src/osmo-bts-sysmo/sysmo_l1_if.c @@ -123,7 +123,7 @@ cr = prim_init(msgb_l1prim(msg), GsmL1_PrimId_MphConnectReq, fl1h); cr->u8Tn = ts; cr->logChComb = GsmL1_LogChComb_XIII; - + return l1if_req_pdch(fl1h, msg); } @@ -131,6 +131,7 @@ GsmL1_PhReadyToSendInd_t *rts_ind) { struct gsm_time g_time; + struct gprs_rlcmac_bts *bts; int rc = 0; gsm_fn2gsmtime(&g_time, rts_ind->u32Fn); @@ -139,14 +140,16 @@ g_time.t1, g_time.t2, g_time.t3, get_value_string(femtobts_l1sapi_names, rts_ind->sapi)); + bts = llist_first_entry_or_null(&the_pcu->bts_list, struct gprs_rlcmac_bts, list); + switch (rts_ind->sapi) { case GsmL1_Sapi_Pdtch: case GsmL1_Sapi_Pacch: - rc = pcu_rx_rts_req_pdtch(fl1h->trx_no, rts_ind->u8Tn, + rc = pcu_rx_rts_req_pdtch(bts, fl1h->trx_no, rts_ind->u8Tn, rts_ind->u32Fn, rts_ind->u8BlockNbr); break; case GsmL1_Sapi_Ptcch: - rc = pcu_rx_rts_req_ptcch(fl1h->trx_no, rts_ind->u8Tn, + rc = pcu_rx_rts_req_ptcch(bts, fl1h->trx_no, rts_ind->u8Tn, rts_ind->u32Fn, rts_ind->u8BlockNbr); break; default: @@ -172,6 +175,7 @@ GsmL1_PhDataInd_t *data_ind, struct msgb *l1p_msg) { int rc = 0; + struct gprs_rlcmac_bts *bts; struct pcu_l1_meas meas = {0}; DEBUGP(DL1IF, "Rx PH-DATA.ind %s (hL2 %08x): %s\n", @@ -180,7 +184,8 @@ osmo_hexdump(data_ind->msgUnitParam.u8Buffer, data_ind->msgUnitParam.u8Size)); - pcu_rx_block_time(data_ind->u16Arfcn, data_ind->u32Fn, data_ind->u8Tn); + bts = llist_first_entry_or_null(&the_pcu->bts_list, struct gprs_rlcmac_bts, list); + pcu_rx_block_time(bts, data_ind->u16Arfcn, data_ind->u32Fn, data_ind->u8Tn); /* * TODO: Add proper bad frame handling here. This could be used @@ -191,7 +196,7 @@ return -1; get_meas(&meas, &data_ind->measParam); - bts_update_tbf_ta("PH-DATA", data_ind->u32Fn, fl1h->trx_no, + bts_update_tbf_ta(bts, "PH-DATA", data_ind->u32Fn, fl1h->trx_no, data_ind->u8Tn, sign_qta2ta(meas.bto), false); switch (data_ind->sapi) { @@ -202,7 +207,7 @@ != GsmL1_PdtchPlType_Full) break; /* PDTCH / PACCH frame handling */ - pcu_rx_data_ind_pdtch(fl1h->trx_no, data_ind->u8Tn, + pcu_rx_data_ind_pdtch(bts, fl1h->trx_no, data_ind->u8Tn, data_ind->msgUnitParam.u8Buffer + 1, data_ind->msgUnitParam.u8Size - 1, data_ind->u32Fn, @@ -230,7 +235,10 @@ static int handle_ph_ra_ind(struct femtol1_hdl *fl1h, GsmL1_PhRaInd_t *ra_ind) { - pcu_rx_ra_time(ra_ind->u16Arfcn, ra_ind->u32Fn, ra_ind->u8Tn); + struct gprs_rlcmac_bts *bts; + bts = llist_first_entry_or_null(&the_pcu->bts_list, struct gprs_rlcmac_bts, list); + + pcu_rx_ra_time(bts, ra_ind->u16Arfcn, ra_ind->u32Fn, ra_ind->u8Tn); if (ra_ind->measParam.fLinkQuality < MIN_QUAL_RACH) return 0; @@ -240,11 +248,11 @@ switch (ra_ind->sapi) { case GsmL1_Sapi_Pdtch: case GsmL1_Sapi_Prach: - bts_update_tbf_ta("PH-RA", ra_ind->u32Fn, fl1h->trx_no, ra_ind->u8Tn, + bts_update_tbf_ta(bts, "PH-RA", ra_ind->u32Fn, fl1h->trx_no, ra_ind->u8Tn, qta2ta(ra_ind->measParam.i16BurstTiming), true); break; case GsmL1_Sapi_Ptcch: - pcu_rx_rach_ind_ptcch(fl1h->trx_no, ra_ind->u8Tn, ra_ind->u32Fn, + pcu_rx_rach_ind_ptcch(bts, fl1h->trx_no, ra_ind->u8Tn, ra_ind->u32Fn, ra_ind->measParam.i16BurstTiming); break; default: @@ -373,4 +381,3 @@ talloc_free(fl1h); return 0; } - diff --git a/src/osmobts_sock.c b/src/osmobts_sock.c index ec9d7ce..4e1171f 100644 --- a/src/osmobts_sock.c +++ b/src/osmobts_sock.c @@ -60,13 +60,20 @@ static void pcu_tx_txt_retry(void *_priv) { - struct gprs_rlcmac_bts *bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts; + bool retry = llist_empty(&the_pcu->bts_list); - if (bts->active) - return; + llist_for_each_entry(bts, &the_pcu->bts_list, list) { + if (bts->active) + continue; + retry = true; + pcu_tx_txt_ind(PCU_VERSION, "%s", PACKAGE_VERSION); + break; + } - pcu_tx_txt_ind(PCU_VERSION, "%s", PACKAGE_VERSION); - osmo_timer_schedule(&pcu_sock_state.timer, 5, 0); + /* If no BTS (or not all) yet active, retry */ + if (retry) + osmo_timer_schedule(&pcu_sock_state.timer, 5, 0); } int pcu_sock_send(struct msgb *msg) @@ -88,7 +95,7 @@ static void pcu_sock_close(int lost) { struct osmo_fd *bfd = &pcu_sock_state.conn_bfd; - struct gprs_rlcmac_bts *bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts; uint8_t trx, ts; LOGP(DL1IF, LOGL_NOTICE, "PCU socket has %s connection\n", @@ -104,22 +111,23 @@ msgb_free(msg); } - /* disable all slots, kick all TBFs */ - for (trx = 0; trx < 8; trx++) { + llist_for_each_entry(bts, &the_pcu->bts_list, list) { + /* disable all slots, kick all TBFs */ + for (trx = 0; trx < 8; trx++) { #ifdef ENABLE_DIRECT_PHY - if (bts->trx[trx].fl1h) { - l1if_close_pdch(bts->trx[trx].fl1h); - bts->trx[trx].fl1h = NULL; - } + if (bts->trx[trx].fl1h) { + l1if_close_pdch(bts->trx[trx].fl1h); + bts->trx[trx].fl1h = NULL; + } #endif - for (ts = 0; ts < 8; ts++) - pdch_disable(&bts->trx[trx].pdch[ts]); -/* FIXME: NOT ALL RESOURCES are freed in this case... inconsistent with the other code. Share the code with pcu_l1if.c -for the reset. */ - bts_trx_free_all_tbf(&bts->trx[trx]); + for (ts = 0; ts < 8; ts++) + pdch_disable(&bts->trx[trx].pdch[ts]); + /* FIXME: NOT ALL RESOURCES are freed in this case... inconsistent with the other code. Share the code with pcu_l1if.c + for the reset. */ + bts_trx_free_all_tbf(&bts->trx[trx]); + } + gprs_bssgp_destroy(bts); } - - gprs_bssgp_destroy(bts); exit(0); } diff --git a/src/pcu_l1_if.cpp b/src/pcu_l1_if.cpp index 8847960..24080f3 100644 --- a/src/pcu_l1_if.cpp +++ b/src/pcu_l1_if.cpp @@ -145,7 +145,7 @@ return pcu_sock_send(msg); } -static int pcu_tx_act_req(uint8_t trx, uint8_t ts, uint8_t activate) +static int pcu_tx_act_req(struct gprs_rlcmac_bts *bts, uint8_t trx, uint8_t ts, uint8_t activate) { struct msgb *msg; struct gsm_pcu_if *pcu_prim; @@ -154,7 +154,7 @@ LOGP(DL1IF, LOGL_INFO, "Sending %s request: trx=%d ts=%d\n", (activate) ? "activate" : "deactivate", trx, ts); - msg = pcu_msgb_alloc(PCU_IF_MSG_ACT_REQ, 0); + msg = pcu_msgb_alloc(PCU_IF_MSG_ACT_REQ, bts->nr); if (!msg) return -ENOMEM; pcu_prim = (struct gsm_pcu_if *) msg->data; @@ -166,20 +166,20 @@ return pcu_sock_send(msg); } -static int pcu_tx_data_req(uint8_t trx, uint8_t ts, uint8_t sapi, +static int pcu_tx_data_req(struct gprs_rlcmac_bts *bts, uint8_t trx, uint8_t ts, uint8_t sapi, uint16_t arfcn, uint32_t fn, uint8_t block_nr, uint8_t *data, uint8_t len) { struct msgb *msg; struct gsm_pcu_if *pcu_prim; struct gsm_pcu_if_data *data_req; - int current_fn = bts_current_frame_number(the_pcu->bts); + int current_fn = bts_current_frame_number(bts); LOGP(DL1IF, LOGL_DEBUG, "Sending data request: trx=%d ts=%d sapi=%d " "arfcn=%d fn=%d cur_fn=%d block=%d data=%s\n", trx, ts, sapi, arfcn, fn, current_fn, block_nr, osmo_hexdump(data, len)); - msg = pcu_msgb_alloc(PCU_IF_MSG_DATA_REQ, 0); + msg = pcu_msgb_alloc(PCU_IF_MSG_DATA_REQ, bts->nr); if (!msg) return -ENOMEM; pcu_prim = (struct gsm_pcu_if *) msg->data; @@ -197,12 +197,10 @@ return pcu_sock_send(msg); } -void pcu_l1if_tx_pdtch(msgb *msg, uint8_t trx, uint8_t ts, uint16_t arfcn, +void pcu_l1if_tx_pdtch(msgb *msg, struct gprs_rlcmac_bts *bts, uint8_t trx, uint8_t ts, uint16_t arfcn, uint32_t fn, uint8_t block_nr) { #ifdef ENABLE_DIRECT_PHY - struct gprs_rlcmac_bts *bts = the_pcu->bts; - if (bts->trx[trx].fl1h) { l1if_pdch_req(bts->trx[trx].fl1h, ts, 0, fn, arfcn, block_nr, msg->data, msg->len); @@ -210,7 +208,7 @@ return; } #endif - pcu_tx_data_req(trx, ts, PCU_IF_SAPI_PDTCH, arfcn, fn, block_nr, + pcu_tx_data_req(bts, trx, ts, PCU_IF_SAPI_PDTCH, arfcn, fn, block_nr, msg->data, msg->len); msgb_free(msg); } @@ -228,10 +226,10 @@ return; } #endif - pcu_tx_data_req(trx, ts, PCU_IF_SAPI_PTCCH, arfcn, fn, block_nr, data, data_len); + pcu_tx_data_req(bts, trx, ts, PCU_IF_SAPI_PTCCH, arfcn, fn, block_nr, data, data_len); } -void pcu_l1if_tx_agch(bitvec * block, int plen) +void pcu_l1if_tx_agch(struct gprs_rlcmac_bts *bts, bitvec * block, int plen) { uint8_t data[GSM_MACBLOCK_LEN]; /* prefix PLEN */ @@ -242,10 +240,10 @@ if (the_pcu->gsmtap_categ_mask & (1 << PCU_GSMTAP_C_DL_AGCH)) gsmtap_send(the_pcu->gsmtap, 0, 0, GSMTAP_CHANNEL_AGCH, 0, 0, 0, 0, data, GSM_MACBLOCK_LEN); - pcu_tx_data_req(0, 0, PCU_IF_SAPI_AGCH, 0, 0, 0, data, GSM_MACBLOCK_LEN); + pcu_tx_data_req(bts, 0, 0, PCU_IF_SAPI_AGCH, 0, 0, 0, data, GSM_MACBLOCK_LEN); } -void pcu_l1if_tx_pch(bitvec * block, int plen, uint16_t pgroup) +void pcu_l1if_tx_pch(struct gprs_rlcmac_bts *bts, bitvec * block, int plen, uint16_t pgroup) { uint8_t data[PAGING_GROUP_LEN + GSM_MACBLOCK_LEN]; int i; @@ -267,33 +265,31 @@ if (the_pcu->gsmtap_categ_mask & (1 << PCU_GSMTAP_C_DL_PCH)) gsmtap_send(the_pcu->gsmtap, 0, 0, GSMTAP_CHANNEL_PCH, 0, 0, 0, 0, data + 3, GSM_MACBLOCK_LEN); - pcu_tx_data_req(0, 0, PCU_IF_SAPI_PCH, 0, 0, 0, data, PAGING_GROUP_LEN + GSM_MACBLOCK_LEN); + pcu_tx_data_req(bts, 0, 0, PCU_IF_SAPI_PCH, 0, 0, 0, data, PAGING_GROUP_LEN + GSM_MACBLOCK_LEN); } -extern "C" void pcu_rx_block_time(uint16_t arfcn, uint32_t fn, uint8_t ts_no) +void pcu_rx_block_time(struct gprs_rlcmac_bts *bts, uint16_t arfcn, uint32_t fn, uint8_t ts_no) { - bts_set_current_block_frame_number(the_pcu->bts,fn, 0); + bts_set_current_block_frame_number(bts, fn, 0); } -extern "C" void pcu_rx_ra_time(uint16_t arfcn, uint32_t fn, uint8_t ts_no) +void pcu_rx_ra_time(struct gprs_rlcmac_bts *bts, uint16_t arfcn, uint32_t fn, uint8_t ts_no) { /* access bursts may arrive some bursts earlier */ - bts_set_current_block_frame_number(the_pcu->bts,fn, 5); + bts_set_current_block_frame_number(bts, fn, 5); } -extern "C" int pcu_rx_data_ind_pdtch(uint8_t trx_no, uint8_t ts_no, uint8_t *data, +int pcu_rx_data_ind_pdtch(struct gprs_rlcmac_bts *bts, uint8_t trx_no, uint8_t ts_no, uint8_t *data, uint8_t len, uint32_t fn, struct pcu_l1_meas *meas) { struct gprs_rlcmac_pdch *pdch; - pdch = &the_pcu->bts->trx[trx_no].pdch[ts_no]; + pdch = &bts->trx[trx_no].pdch[ts_no]; return pdch->rcv_block(data, len, fn, meas); } -static int pcu_rx_data_ind_bcch(uint8_t *data, uint8_t len) +static int pcu_rx_data_ind_bcch(struct gprs_rlcmac_bts *bts, uint8_t *data, uint8_t len) { - struct gprs_rlcmac_bts *bts = the_pcu->bts; - if (len == 0) { bts->si13_is_set = false; LOGP(DL1IF, LOGL_INFO, "Received PCU data indication with empty SI13: cache cleaned\n"); @@ -311,10 +307,10 @@ return 0; } -static int pcu_rx_data_ind(struct gsm_pcu_if_data *data_ind) +static int pcu_rx_data_ind(struct gprs_rlcmac_bts *bts, struct gsm_pcu_if_data *data_ind) { int rc; - int current_fn = bts_current_frame_number(the_pcu->bts); + int current_fn = bts_current_frame_number(bts); struct pcu_l1_meas meas = {0}; uint8_t gsmtap_chantype; @@ -334,13 +330,13 @@ LOGP(DL1IF, LOGL_DEBUG, "Data indication with raw measurements received: BER10k = %d, BTO = %d, Q = %d\n", data_ind->ber10k, data_ind->ta_offs_qbits, data_ind->lqual_cb); - rc = pcu_rx_data_ind_pdtch(data_ind->trx_nr, data_ind->ts_nr, + rc = pcu_rx_data_ind_pdtch(bts, data_ind->trx_nr, data_ind->ts_nr, data_ind->data, data_ind->len, data_ind->fn, &meas); gsmtap_chantype = GSMTAP_CHANNEL_PDTCH; break; case PCU_IF_SAPI_BCCH: - rc = pcu_rx_data_ind_bcch(data_ind->data, data_ind->len); + rc = pcu_rx_data_ind_bcch(bts, data_ind->data, data_ind->len); gsmtap_chantype = GSMTAP_CHANNEL_BCCH; break; default: @@ -358,10 +354,10 @@ return rc; } -static int pcu_rx_data_cnf(struct gsm_pcu_if_data *data_cnf) +static int pcu_rx_data_cnf(struct gprs_rlcmac_bts *bts, struct gsm_pcu_if_data *data_cnf) { int rc = 0; - int current_fn = bts_current_frame_number(the_pcu->bts); + int current_fn = bts_current_frame_number(bts); LOGP(DL1IF, LOGL_DEBUG, "Data confirm received: sapi=%d fn=%d cur_fn=%d\n", data_cnf->sapi, data_cnf->fn, current_fn); @@ -369,7 +365,7 @@ switch (data_cnf->sapi) { case PCU_IF_SAPI_PCH: if (data_cnf->data[2] == 0x3f) - bts_rcv_imm_ass_cnf(the_pcu->bts, data_cnf->data, data_cnf->fn); + bts_rcv_imm_ass_cnf(bts, data_cnf->data, data_cnf->fn); break; default: LOGP(DL1IF, LOGL_ERROR, "Received PCU data confirm with " @@ -381,16 +377,15 @@ } // FIXME: remove this, when changed from c++ to c. -extern "C" int pcu_rx_rts_req_pdtch(uint8_t trx, uint8_t ts, +int pcu_rx_rts_req_pdtch(struct gprs_rlcmac_bts *bts, uint8_t trx, uint8_t ts, uint32_t fn, uint8_t block_nr) { - return gprs_rlcmac_rcv_rts_block(the_pcu->bts, + return gprs_rlcmac_rcv_rts_block(bts, trx, ts, fn, block_nr); } -extern "C" int pcu_rx_rts_req_ptcch(uint8_t trx, uint8_t ts, +int pcu_rx_rts_req_ptcch(struct gprs_rlcmac_bts *bts, uint8_t trx, uint8_t ts, uint32_t fn, uint8_t block_nr) { - struct gprs_rlcmac_bts *bts = the_pcu->bts; struct gprs_rlcmac_pdch *pdch; /* Prevent buffer overflow */ @@ -407,10 +402,10 @@ return 0; } -static int pcu_rx_rts_req(struct gsm_pcu_if_rts_req *rts_req) +static int pcu_rx_rts_req(struct gprs_rlcmac_bts *bts, struct gsm_pcu_if_rts_req *rts_req) { int rc = 0; - int current_fn = bts_current_frame_number(the_pcu->bts); + int current_fn = bts_current_frame_number(bts); LOGP(DL1IF, LOGL_DEBUG, "RTS request received: trx=%d ts=%d sapi=%d " "arfcn=%d fn=%d cur_fn=%d block=%d\n", rts_req->trx_nr, rts_req->ts_nr, @@ -418,11 +413,11 @@ switch (rts_req->sapi) { case PCU_IF_SAPI_PDTCH: - pcu_rx_rts_req_pdtch(rts_req->trx_nr, rts_req->ts_nr, + pcu_rx_rts_req_pdtch(bts, rts_req->trx_nr, rts_req->ts_nr, rts_req->fn, rts_req->block_nr); break; case PCU_IF_SAPI_PTCCH: - pcu_rx_rts_req_ptcch(rts_req->trx_nr, rts_req->ts_nr, + pcu_rx_rts_req_ptcch(bts, rts_req->trx_nr, rts_req->ts_nr, rts_req->fn, rts_req->block_nr); break; default: @@ -435,7 +430,7 @@ } /* C -> C++ adapter for direct DSP access code (e.g. osmo-bts-sysmo) */ -extern "C" int pcu_rx_rach_ind_ptcch(uint8_t trx_nr, uint8_t ts_nr, uint32_t fn, int16_t qta) +extern "C" int pcu_rx_rach_ind_ptcch(struct gprs_rlcmac_bts *bts, uint8_t trx_nr, uint8_t ts_nr, uint32_t fn, int16_t qta) { struct rach_ind_params rip = { /* The content of RA is not of interest on PTCCH/U */ @@ -448,13 +443,13 @@ .qta = qta, }; - return bts_rcv_ptcch_rach(the_pcu->bts, &rip); + return bts_rcv_ptcch_rach(bts, &rip); } -static int pcu_rx_rach_ind(const struct gsm_pcu_if_rach_ind *rach_ind) +static int pcu_rx_rach_ind(struct gprs_rlcmac_bts *bts, const struct gsm_pcu_if_rach_ind *rach_ind) { int rc = 0; - int current_fn = bts_current_frame_number(the_pcu->bts); + int current_fn = bts_current_frame_number(bts); LOGP(DL1IF, LOGL_INFO, "RACH request received: sapi=%d " "qta=%d, ra=0x%02x, fn=%u, cur_fn=%d, is_11bit=%d\n", rach_ind->sapi, rach_ind->qta, @@ -472,10 +467,10 @@ switch (rach_ind->sapi) { case PCU_IF_SAPI_RACH: - rc = bts_rcv_rach(the_pcu->bts, &rip); + rc = bts_rcv_rach(bts, &rip); break; case PCU_IF_SAPI_PTCCH: - rc = bts_rcv_ptcch_rach(the_pcu->bts, &rip); + rc = bts_rcv_ptcch_rach(bts, &rip); break; default: LOGP(DL1IF, LOGL_ERROR, "Received PCU rach request with " @@ -542,9 +537,8 @@ return gprs_ns_config(bts, info_ind->nsei, local, remote, nsvci, valid); } -static int pcu_rx_info_ind(const struct gsm_pcu_if_info_ind *info_ind) +static int pcu_rx_info_ind(struct gprs_rlcmac_bts *bts, const struct gsm_pcu_if_info_ind *info_ind) { - struct gprs_rlcmac_bts *bts = the_pcu->bts; struct gprs_bssgp_pcu *pcu; int rc = 0; unsigned int trx_nr, ts_nr; @@ -704,7 +698,7 @@ l1if_connect_pdch( bts->trx[trx_nr].fl1h, ts_nr); #endif - pcu_tx_act_req(trx_nr, ts_nr, 1); + pcu_tx_act_req(bts, trx_nr, ts_nr, 1); pdch->enable(); } @@ -730,7 +724,7 @@ trx_nr, ts_nr, pdch->tsc, pdch->fh.enabled ? "yes" : "no"); } else { if (pdch->is_enabled()) { - pcu_tx_act_req(trx_nr, ts_nr, 0); + pcu_tx_act_req(bts, trx_nr, ts_nr, 0); pdch->free_resources(); pdch->disable(); } @@ -742,7 +736,7 @@ return rc; } -static int pcu_rx_time_ind(struct gsm_pcu_if_time_ind *time_ind) +static int pcu_rx_time_ind(struct gprs_rlcmac_bts *bts, struct gsm_pcu_if_time_ind *time_ind) { uint8_t fn13 = time_ind->fn % 13; @@ -752,11 +746,11 @@ LOGP(DL1IF, LOGL_DEBUG, "Time indication received: %d\n", time_ind->fn % 52); - bts_set_current_frame_number(the_pcu->bts, time_ind->fn); + bts_set_current_frame_number(bts, time_ind->fn); return 0; } -static int pcu_rx_pag_req(struct gsm_pcu_if_pag_req *pag_req) +static int pcu_rx_pag_req(struct gprs_rlcmac_bts *bts, struct gsm_pcu_if_pag_req *pag_req) { struct osmo_mobile_identity mi; int rc; @@ -777,12 +771,11 @@ return -EINVAL; } - return bts_add_paging(the_pcu->bts, pag_req->chan_needed, &mi); + return bts_add_paging(bts, pag_req->chan_needed, &mi); } -static int pcu_rx_susp_req(struct gsm_pcu_if_susp_req *susp_req) +static int pcu_rx_susp_req(struct gprs_rlcmac_bts *bts, struct gsm_pcu_if_susp_req *susp_req) { - struct gprs_rlcmac_bts *bts = the_pcu->bts; struct bssgp_bvc_ctx *bctx = gprs_bssgp_pcu_current_bctx(); GprsMs *ms; struct gprs_rlcmac_dl_tbf *dl_tbf; @@ -811,9 +804,8 @@ return bssgp_tx_suspend(bctx->nsei, susp_req->tlli, &ra_id); } -static int pcu_rx_app_info_req(struct gsm_pcu_if_app_info_req *app_info_req) +static int pcu_rx_app_info_req(struct gprs_rlcmac_bts *bts, struct gsm_pcu_if_app_info_req *app_info_req) { - struct gprs_rlcmac_bts *bts = the_pcu->bts; struct llist_head *tmp; LOGP(DL1IF, LOGL_DEBUG, "Application Information Request received: type=0x%08x len=%i\n", @@ -849,34 +841,43 @@ int pcu_rx(uint8_t msg_type, struct gsm_pcu_if *pcu_prim) { int rc = 0; + struct gprs_rlcmac_bts *bts = gprs_pcu_get_bts_by_nr(the_pcu, pcu_prim->bts_nr); + if (!bts) { + LOGP(DL1IF, LOGL_NOTICE, "Received message for new BTS%d\n", pcu_prim->bts_nr); + bts = bts_alloc(the_pcu, pcu_prim->bts_nr); + if (!bts) { + LOGP(DL1IF, LOGL_ERROR, "Failed to create object for BTS%d!\n", pcu_prim->bts_nr); + return -EAGAIN; + } + } switch (msg_type) { case PCU_IF_MSG_DATA_IND: - rc = pcu_rx_data_ind(&pcu_prim->u.data_ind); + rc = pcu_rx_data_ind(bts, &pcu_prim->u.data_ind); break; case PCU_IF_MSG_DATA_CNF: - rc = pcu_rx_data_cnf(&pcu_prim->u.data_cnf); + rc = pcu_rx_data_cnf(bts, &pcu_prim->u.data_cnf); break; case PCU_IF_MSG_RTS_REQ: - rc = pcu_rx_rts_req(&pcu_prim->u.rts_req); + rc = pcu_rx_rts_req(bts, &pcu_prim->u.rts_req); break; case PCU_IF_MSG_RACH_IND: - rc = pcu_rx_rach_ind(&pcu_prim->u.rach_ind); + rc = pcu_rx_rach_ind(bts, &pcu_prim->u.rach_ind); break; case PCU_IF_MSG_INFO_IND: - rc = pcu_rx_info_ind(&pcu_prim->u.info_ind); + rc = pcu_rx_info_ind(bts, &pcu_prim->u.info_ind); break; case PCU_IF_MSG_TIME_IND: - rc = pcu_rx_time_ind(&pcu_prim->u.time_ind); + rc = pcu_rx_time_ind(bts, &pcu_prim->u.time_ind); break; case PCU_IF_MSG_PAG_REQ: - rc = pcu_rx_pag_req(&pcu_prim->u.pag_req); + rc = pcu_rx_pag_req(bts, &pcu_prim->u.pag_req); break; case PCU_IF_MSG_SUSP_REQ: - rc = pcu_rx_susp_req(&pcu_prim->u.susp_req); + rc = pcu_rx_susp_req(bts, &pcu_prim->u.susp_req); break; case PCU_IF_MSG_APP_INFO_REQ: - rc = pcu_rx_app_info_req(&pcu_prim->u.app_info_req); + rc = pcu_rx_app_info_req(bts, &pcu_prim->u.app_info_req); break; default: LOGP(DL1IF, LOGL_ERROR, "Received unknown PCU msg type %d\n", diff --git a/src/pcu_l1_if.h b/src/pcu_l1_if.h index 8ef262c..e4a46a9 100644 --- a/src/pcu_l1_if.h +++ b/src/pcu_l1_if.h @@ -141,20 +141,23 @@ } #ifdef __cplusplus -void pcu_l1if_tx_pdtch(msgb *msg, uint8_t trx, uint8_t ts, uint16_t arfcn, - uint32_t fn, uint8_t block_nr); +struct gprs_rlcmac_bts; +void pcu_l1if_tx_pdtch(msgb *msg, struct gprs_rlcmac_bts *bts, uint8_t trx, uint8_t ts, + uint16_t arfcn, uint32_t fn, uint8_t block_nr); void pcu_l1if_tx_ptcch(struct gprs_rlcmac_bts *bts, uint8_t trx, uint8_t ts, uint16_t arfcn, uint32_t fn, uint8_t block_nr, uint8_t *data, size_t data_len); -void pcu_l1if_tx_agch(bitvec * block, int len); +void pcu_l1if_tx_agch(struct gprs_rlcmac_bts *bts, bitvec * block, int len); -void pcu_l1if_tx_pch(bitvec * block, int plen, uint16_t pgroup); +void pcu_l1if_tx_pch(struct gprs_rlcmac_bts *bts, bitvec * block, int plen, uint16_t pgroup); #endif #ifdef __cplusplus extern "C" { #endif +struct gprs_rlcmac_bts; + int pcu_rx(uint8_t msg_type, struct gsm_pcu_if *pcu_prim); int pcu_l1if_open(void); void pcu_l1if_close(void); @@ -162,17 +165,17 @@ int pcu_tx_txt_ind(enum gsm_pcu_if_text_type t, const char *fmt, ...); -int pcu_rx_rts_req_pdtch(uint8_t trx, uint8_t ts, +int pcu_rx_rts_req_pdtch(struct gprs_rlcmac_bts *bts, uint8_t trx, uint8_t ts, uint32_t fn, uint8_t block_nr); -int pcu_rx_rts_req_ptcch(uint8_t trx, uint8_t ts, +int pcu_rx_rts_req_ptcch(struct gprs_rlcmac_bts *bts, uint8_t trx, uint8_t ts, uint32_t fn, uint8_t block_nr); -int pcu_rx_rach_ind_ptcch(uint8_t trx_nr, uint8_t ts_nr, uint32_t fn, int16_t qta); -int pcu_rx_data_ind_pdtch(uint8_t trx, uint8_t ts, uint8_t *data, +int pcu_rx_rach_ind_ptcch(struct gprs_rlcmac_bts *bts, uint8_t trx_nr, uint8_t ts_nr, uint32_t fn, int16_t qta); +int pcu_rx_data_ind_pdtch(struct gprs_rlcmac_bts *bts, uint8_t trx, uint8_t ts, uint8_t *data, uint8_t len, uint32_t fn, struct pcu_l1_meas *meas); -void pcu_rx_block_time(uint16_t arfcn, uint32_t fn, uint8_t ts_no); -void pcu_rx_ra_time(uint16_t arfcn, uint32_t fn, uint8_t ts_no); +void pcu_rx_block_time(struct gprs_rlcmac_bts *bts, uint16_t arfcn, uint32_t fn, uint8_t ts_no); +void pcu_rx_ra_time(struct gprs_rlcmac_bts *bts, uint16_t arfcn, uint32_t fn, uint8_t ts_no); uint16_t imsi2paging_group(const char* imsi); #ifdef __cplusplus } diff --git a/src/pcu_main.cpp b/src/pcu_main.cpp index 23d16a3..ea7e341 100644 --- a/src/pcu_main.cpp +++ b/src/pcu_main.cpp @@ -237,8 +237,6 @@ pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu = pcu; /* globally avaialable object */ - pcu->bts = bts_alloc(pcu); - pcu->pcu_sock_path = talloc_strdup(tall_pcu_ctx, PCU_SOCK_DEFAULT); msgb_talloc_ctx_init(tall_pcu_ctx, 0); diff --git a/src/pcu_vty.c b/src/pcu_vty.c index 9beb4c1..288f241 100644 --- a/src/pcu_vty.c +++ b/src/pcu_vty.c @@ -4,6 +4,8 @@ #include #include #include +#include + #include #include #include @@ -753,7 +755,11 @@ "show bts statistics", SHOW_STR "BTS related functionality\nStatistics\n") { - vty_out_rate_ctr_group(vty, "", bts_rate_counters(the_pcu->bts)); + struct gprs_rlcmac_bts *bts; + llist_for_each_entry(bts, &the_pcu->bts_list, list) { + vty_out(vty, "BTS%" PRIu8 ":%s", bts->nr, VTY_NEWLINE); + vty_out_rate_ctr_group(vty, " ", bts_rate_counters(bts)); + } return CMD_SUCCESS; } @@ -762,7 +768,11 @@ "show bts pdch", SHOW_STR "BTS related functionality\nPDCH timeslots\n") { - return pcu_vty_show_bts_pdch(vty, the_pcu->bts); + struct gprs_rlcmac_bts *bts; + llist_for_each_entry(bts, &the_pcu->bts_list, list) { + pcu_vty_show_bts_pdch(vty, bts); + } + return CMD_SUCCESS; } #define IDLE_TIME_STR "keep an idle DL TBF alive for the time given\n" @@ -1013,9 +1023,13 @@ SHOW_STR "Show BTS controlled timers\n" OSMO_TDEF_VTY_DOC_T) { - struct gprs_rlcmac_bts *bts = the_pcu->bts; - const char *T_arg = argc > 0 ? argv[0] : NULL; - return osmo_tdef_vty_show_cmd(vty, bts->T_defs_bts, T_arg, NULL); + struct gprs_rlcmac_bts *bts; + llist_for_each_entry(bts, &the_pcu->bts_list, list) { + const char *T_arg = argc > 0 ? argv[0] : NULL; + vty_out(vty, "BTS%" PRIu8 ":%s", bts->nr, VTY_NEWLINE); + osmo_tdef_vty_show_cmd(vty, bts->T_defs_bts, T_arg, " "); + } + return CMD_SUCCESS; } DEFUN(show_timer, show_timer_cmd, @@ -1047,15 +1061,18 @@ "TBFs allocated via CCCH\n" "TBFs allocated via PACCH\n") { - struct gprs_rlcmac_bts *bts = the_pcu->bts; - uint32_t flags = UINT32_MAX; + struct gprs_rlcmac_bts *bts; + llist_for_each_entry(bts, &the_pcu->bts_list, list) { + uint32_t flags = UINT32_MAX; - if (argv[0][0] == 'c') - flags = (1 << GPRS_RLCMAC_FLAG_CCCH); - else if (argv[0][0] == 'p') - flags = (1 << GPRS_RLCMAC_FLAG_PACCH); + if (argv[0][0] == 'c') + flags = (1 << GPRS_RLCMAC_FLAG_CCCH); + else if (argv[0][0] == 'p') + flags = (1 << GPRS_RLCMAC_FLAG_PACCH); - return pcu_vty_show_tbf_all(vty, bts, flags); + pcu_vty_show_tbf_all(vty, bts, flags); + } + return CMD_SUCCESS; } DEFUN(show_ms_all, @@ -1063,8 +1080,11 @@ "show ms all", SHOW_STR "information about MSs\n" "All TBFs\n") { - struct gprs_rlcmac_bts *bts = the_pcu->bts; - return pcu_vty_show_ms_all(vty, bts); + struct gprs_rlcmac_bts *bts; + llist_for_each_entry(bts, &the_pcu->bts_list, list) { + pcu_vty_show_ms_all(vty, bts); + } + return CMD_SUCCESS; } DEFUN(show_ms_tlli, @@ -1072,14 +1092,17 @@ "show ms tlli TLLI", SHOW_STR "information about MSs\n" "Select MS by TLLI\n" "TLLI as hex\n") { - struct gprs_rlcmac_bts *bts = the_pcu->bts; - char *endp = NULL; - unsigned long long tlli = strtoll(argv[0], &endp, 16); - if ((endp != NULL && *endp != 0) || tlli > 0xffffffffULL) { - vty_out(vty, "Invalid TLLI.%s", VTY_NEWLINE); - return CMD_WARNING; + struct gprs_rlcmac_bts *bts; + llist_for_each_entry(bts, &the_pcu->bts_list, list) { + char *endp = NULL; + unsigned long long tlli = strtoll(argv[0], &endp, 16); + if ((endp != NULL && *endp != 0) || tlli > 0xffffffffULL) { + vty_out(vty, "Invalid TLLI.%s", VTY_NEWLINE); + return CMD_WARNING; + } + pcu_vty_show_ms_by_tlli(vty, bts, (uint32_t)tlli); } - return pcu_vty_show_ms_by_tlli(vty, bts, (uint32_t)tlli); + return CMD_SUCCESS; } DEFUN(show_ms_imsi, @@ -1087,8 +1110,11 @@ "show ms imsi IMSI", SHOW_STR "information about MSs\n" "Select MS by IMSI\n" "IMSI\n") { - struct gprs_rlcmac_bts *bts = the_pcu->bts; - return pcu_vty_show_ms_by_imsi(vty, bts, argv[0]); + struct gprs_rlcmac_bts *bts; + llist_for_each_entry(bts, &the_pcu->bts_list, list) { + pcu_vty_show_ms_by_imsi(vty, bts, argv[0]); + } + return CMD_SUCCESS; } static const char pcu_copyright[] = diff --git a/src/pcu_vty_functions.cpp b/src/pcu_vty_functions.cpp index 231bce7..48780c0 100644 --- a/src/pcu_vty_functions.cpp +++ b/src/pcu_vty_functions.cpp @@ -246,7 +246,7 @@ { unsigned int trx_nr, ts_nr; - vty_out(vty, "BTS (%s)%s", bts->active ? "active" : "disabled", VTY_NEWLINE); + vty_out(vty, "BTS%" PRIu8 " (%s)%s", bts->nr, bts->active ? "active" : "disabled", VTY_NEWLINE); for (trx_nr = 0; trx_nr < ARRAY_SIZE(bts->trx); trx_nr++) { const struct gprs_rlcmac_trx *trx = &bts->trx[trx_nr]; diff --git a/tests/alloc/AllocTest.cpp b/tests/alloc/AllocTest.cpp index 20f5286..ecc3e80 100644 --- a/tests/alloc/AllocTest.cpp +++ b/tests/alloc/AllocTest.cpp @@ -114,7 +114,7 @@ int tfi; int i; uint8_t used_trx, tmp_trx; - struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu); + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); GprsMs *ms; struct gprs_rlcmac_tbf *tbfs[32*8+1] = { 0, }; @@ -206,7 +206,7 @@ static inline bool test_alloc_b_ul_dl(bool ts0, bool ts1, bool ts2, bool ts3, bool ts4, bool ts5, bool ts6, bool ts7, uint8_t ms_class, bool verbose) { - struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu); + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); GprsMs *ms; gprs_rlcmac_ul_tbf *ul_tbf; gprs_rlcmac_dl_tbf *dl_tbf; @@ -250,7 +250,7 @@ static inline bool test_alloc_b_dl_ul(bool ts0, bool ts1, bool ts2, bool ts3, bool ts4, bool ts5, bool ts6, bool ts7, uint8_t ms_class, bool verbose) { - struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu); + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); GprsMs *ms; gprs_rlcmac_ul_tbf *ul_tbf; gprs_rlcmac_dl_tbf *dl_tbf; @@ -301,7 +301,7 @@ static inline bool test_alloc_b_jolly(uint8_t ms_class) { - struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu); + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); GprsMs *ms; int tfi; uint8_t trx_no; @@ -644,7 +644,7 @@ unsigned max_class, enum test_mode mode, unsigned expect_num, const char *text) { - struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu); + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); struct gprs_rlcmac_trx *trx; unsigned counter; @@ -677,7 +677,7 @@ static void test_many_connections(algo_t algo, unsigned expect_num, const char *text) { - struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu); + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); struct gprs_rlcmac_trx *trx; int counter1, counter2 = -1; unsigned i; @@ -754,7 +754,7 @@ static void test_2_consecutive_dl_tbfs() { - struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu); + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); GprsMs *ms; struct gprs_rlcmac_trx *trx; uint8_t ms_class = 11; diff --git a/tests/alloc/MslotTest.cpp b/tests/alloc/MslotTest.cpp index b32a828..96b82a5 100644 --- a/tests/alloc/MslotTest.cpp +++ b/tests/alloc/MslotTest.cpp @@ -62,7 +62,7 @@ static inline void test_multislot_total_ascending(bool seq) { - struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu); + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); struct gprs_rlcmac_trx *trx; int i; @@ -81,7 +81,7 @@ static inline void test_multislot_total_descending(bool seq) { - struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu); + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); struct gprs_rlcmac_trx *trx; int i; @@ -100,7 +100,7 @@ static inline void test_multislot_middle(bool seq) { - struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu); + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); struct gprs_rlcmac_trx *trx; printf("%s(): %s\n", __func__, seq ? "sequential" : "accumulative"); @@ -117,7 +117,7 @@ static inline void test_multislot_ends(bool seq) { - struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu); + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); struct gprs_rlcmac_trx *trx; printf("%s(): %s\n", __func__, seq ? "sequential" : "accumulative"); diff --git a/tests/app_info/AppInfoTest.cpp b/tests/app_info/AppInfoTest.cpp index e0b2853..f145fa5 100644 --- a/tests/app_info/AppInfoTest.cpp +++ b/tests/app_info/AppInfoTest.cpp @@ -78,7 +78,7 @@ void prepare_bts_with_two_dl_tbf_subscr() { - struct gprs_rlcmac_bts *bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts = gprs_pcu_get_bts_by_nr(the_pcu, 0); struct gprs_rlcmac_trx *trx; fprintf(stderr, "--- %s ---\n", __func__); @@ -121,7 +121,7 @@ void test_sched_app_info_missing_app_info_in_bts(const struct gsm_pcu_if_app_info_req *req) { - struct gprs_rlcmac_bts *bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts = gprs_pcu_get_bts_by_nr(the_pcu, 0); struct gsm_pcu_if pcu_prim = {PCU_IF_MSG_APP_INFO_REQ, }; fprintf(stderr, "--- %s ---\n", __func__); @@ -147,13 +147,18 @@ fprintf(stderr, "\n"); } -void cleanup() +extern "C" void cleanup() { fprintf(stderr, "--- %s ---\n", __func__); + struct gprs_rlcmac_bts *bts; + tbf_free(tbf1); tbf_free(tbf2); - TALLOC_FREE(the_pcu->bts); + + bts = gprs_pcu_get_bts_by_nr(the_pcu, 0); + talloc_free(bts); + /* FIXME: talloc report disabled, because bts_alloc_ms(bts, ) in prepare_bts_with_two_dl_tbf_subscr() causes leak */ /* talloc_report_full(tall_pcu_ctx, stderr); */ talloc_free(the_pcu); @@ -173,7 +178,7 @@ log_parse_category_mask(osmo_stderr_target, "DL1IF,1:DRLCMAC,3:DRLCMACSCHED,1"); the_pcu = gprs_pcu_alloc(tall_pcu_ctx); - the_pcu->bts = bts_alloc(the_pcu); + bts_alloc(the_pcu, 0); test_enc_zero_len(); test_enc(&req); diff --git a/tests/edge/EdgeTest.cpp b/tests/edge/EdgeTest.cpp index d67646e..6161e0e 100644 --- a/tests/edge/EdgeTest.cpp +++ b/tests/edge/EdgeTest.cpp @@ -1252,7 +1252,7 @@ static void uplink_header_type2_test(void) { - struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu); + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); int ts_no = 7; uint32_t fn = 2654218; uint16_t qta = 31; @@ -1370,7 +1370,7 @@ void uplink_header_type1_test(void) { - struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu); + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); int ts_no = 7; uint32_t fn = 2654218; uint16_t qta = 31; diff --git a/tests/emu/pcu_emu.cpp b/tests/emu/pcu_emu.cpp index d7b11ca..ef573a7 100644 --- a/tests/emu/pcu_emu.cpp +++ b/tests/emu/pcu_emu.cpp @@ -63,9 +63,8 @@ test_pdp_activation_data), }; -static void init_main_bts() +static void init_main_bts(struct gprs_rlcmac_bts *bts) { - struct gprs_rlcmac_bts *bts = the_pcu->bts; bts->initial_cs_dl = bts->initial_cs_ul = 1; bts->cs_mask = 1 << 0; /* CS-1 always enabled by default */ bts->n3101 = 10; @@ -119,7 +118,7 @@ { struct gprs_pcu *pcu = gprs_pcu_alloc(tall_pcu_ctx); the_pcu = pcu; /* globally avaialable object */ - pcu->bts = bts_alloc(pcu); + struct gprs_rlcmac_bts *bts = bts_alloc(pcu, 0); tall_pcu_ctx = talloc_named_const(NULL, 1, "moiji-mobile Emu-PCU context"); if (!tall_pcu_ctx) @@ -140,9 +139,9 @@ current_test = 0; init_pcu(pcu); - init_main_bts(); + init_main_bts(bts); bssgp_set_bssgp_callback(gprs_gp_send_cb, pcu->nsi); - create_and_connect_bssgp(pcu->bts, INADDR_LOOPBACK, 23000); + create_and_connect_bssgp(bts, INADDR_LOOPBACK, 23000); for (;;) osmo_select_main(0); diff --git a/tests/fn/FnTest.cpp b/tests/fn/FnTest.cpp index dd30b34..4281fc3 100644 --- a/tests/fn/FnTest.cpp +++ b/tests/fn/FnTest.cpp @@ -53,7 +53,7 @@ static void run_test() { - struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu); + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); uint32_t fn; printf("RFN_MODULUS=%i\n",RFN_MODULUS); diff --git a/tests/ms/MsTest.cpp b/tests/ms/MsTest.cpp index 58579f8..f459e99 100644 --- a/tests/ms/MsTest.cpp +++ b/tests/ms/MsTest.cpp @@ -51,7 +51,7 @@ uint32_t tlli = 0xffeeddbb; gprs_rlcmac_dl_tbf *dl_tbf; gprs_rlcmac_ul_tbf *ul_tbf; - struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu); + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); GprsMs *ms; printf("=== start %s ===\n", __func__); @@ -114,7 +114,7 @@ uint32_t tlli = 0xffeeddbb; gprs_rlcmac_dl_tbf *dl_tbf; gprs_rlcmac_ul_tbf *ul_tbf; - struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu); + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); GprsMs *ms; last_cb = CB_UNKNOWN; @@ -188,7 +188,7 @@ uint32_t tlli = 0xffeeddbb; gprs_rlcmac_dl_tbf *dl_tbf[2]; gprs_rlcmac_ul_tbf *ul_tbf; - struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu); + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); GprsMs *ms; printf("=== start %s ===\n", __func__); @@ -262,7 +262,7 @@ uint32_t start_tlli = 0xaa000000; uint32_t new_ms_tlli = 0xff001111; uint32_t other_sgsn_tlli = 0xff00eeee; - struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu); + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); GprsMs *ms; printf("=== start %s ===\n", __func__); @@ -374,7 +374,7 @@ const char *imsi2 = "001001987654322"; gprs_rlcmac_ul_tbf *ul_tbf; - struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu); + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); GprsMs *ms, *ms_tmp; GprsMsStorage store(bts); @@ -446,7 +446,7 @@ uint32_t tlli = 0xffeeddbb; gprs_rlcmac_dl_tbf *dl_tbf; gprs_rlcmac_ul_tbf *ul_tbf; - struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu); + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); GprsMs *ms; last_cb = CB_UNKNOWN; @@ -499,7 +499,7 @@ static void test_ms_cs_selection() { - struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu); + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); uint32_t tlli = 0xffeeddbb; gprs_rlcmac_dl_tbf *dl_tbf; @@ -544,7 +544,7 @@ static void test_ms_mcs_mode() { - struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu); + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); uint32_t tlli = 0xdeadbeef; gprs_rlcmac_dl_tbf *dl_tbf; diff --git a/tests/tbf/TbfTest.cpp b/tests/tbf/TbfTest.cpp index 798dc3c..24fd109 100644 --- a/tests/tbf/TbfTest.cpp +++ b/tests/tbf/TbfTest.cpp @@ -95,8 +95,7 @@ static void test_tbf_tlli_update() { the_pcu = gprs_pcu_alloc(tall_pcu_ctx); - the_pcu->bts = bts_alloc(the_pcu); - struct gprs_rlcmac_bts *bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); GprsMs *ms, *ms_new; fprintf(stderr, "=== start %s ===\n", __func__); @@ -254,8 +253,7 @@ static void test_tbf_final_ack(enum test_tbf_final_ack_mode test_mode) { the_pcu = gprs_pcu_alloc(tall_pcu_ctx); - the_pcu->bts = bts_alloc(the_pcu); - struct gprs_rlcmac_bts *bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); uint8_t ts_no = 4; unsigned i; uint8_t ms_class = 45; @@ -340,8 +338,7 @@ static void test_tbf_delayed_release() { the_pcu = gprs_pcu_alloc(tall_pcu_ctx); - the_pcu->bts = bts_alloc(the_pcu); - struct gprs_rlcmac_bts *bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); uint8_t ts_no = 4; unsigned i; uint8_t ms_class = 45; @@ -411,8 +408,7 @@ static void test_tbf_imsi() { the_pcu = gprs_pcu_alloc(tall_pcu_ctx); - the_pcu->bts = bts_alloc(the_pcu); - struct gprs_rlcmac_bts *bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); uint8_t ts_no = 4; uint8_t ms_class = 45; uint8_t trx_no; @@ -473,8 +469,7 @@ static void test_tbf_exhaustion() { the_pcu = gprs_pcu_alloc(tall_pcu_ctx); - the_pcu->bts = bts_alloc(the_pcu); - struct gprs_rlcmac_bts *bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); unsigned i; uint8_t ts_no = 4; uint8_t ms_class = 45; @@ -517,8 +512,7 @@ static void test_tbf_dl_llc_loss() { the_pcu = gprs_pcu_alloc(tall_pcu_ctx); - the_pcu->bts = bts_alloc(the_pcu); - struct gprs_rlcmac_bts *bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); uint8_t ts_no = 4; uint8_t ms_class = 45; int rc = 0; @@ -1699,8 +1693,7 @@ static void test_tbf_single_phase() { the_pcu = gprs_pcu_alloc(tall_pcu_ctx); - the_pcu->bts = bts_alloc(the_pcu); - struct gprs_rlcmac_bts *bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); int ts_no = 7; uint32_t fn = DUMMY_FN; /* 17,25,9 */ uint32_t tlli = 0xf1223344; @@ -1724,8 +1717,7 @@ static void test_tbf_egprs_two_phase_puan(void) { the_pcu = gprs_pcu_alloc(tall_pcu_ctx); - the_pcu->bts = bts_alloc(the_pcu); - struct gprs_rlcmac_bts *bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); int ts_no = 7; uint32_t fn = 2654218; uint16_t qta = 31; @@ -1780,8 +1772,7 @@ static void test_immediate_assign_rej_single_block() { the_pcu = gprs_pcu_alloc(tall_pcu_ctx); - the_pcu->bts = bts_alloc(the_pcu); - struct gprs_rlcmac_bts *bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); uint32_t fn = 2654218; uint16_t qta = 31; int ts_no = 7; @@ -1814,8 +1805,7 @@ static void test_immediate_assign_rej_multi_block() { the_pcu = gprs_pcu_alloc(tall_pcu_ctx); - the_pcu->bts = bts_alloc(the_pcu); - struct gprs_rlcmac_bts *bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); uint32_t fn = 2654218; uint16_t qta = 31; int ts_no = 7; @@ -1856,8 +1846,7 @@ static void test_tbf_two_phase() { the_pcu = gprs_pcu_alloc(tall_pcu_ctx); - the_pcu->bts = bts_alloc(the_pcu); - struct gprs_rlcmac_bts *bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); int ts_no = 7; uint32_t fn = 2654218; uint16_t qta = 31; @@ -1889,8 +1878,7 @@ static void test_tbf_ra_update_rach() { the_pcu = gprs_pcu_alloc(tall_pcu_ctx); - the_pcu->bts = bts_alloc(the_pcu); - struct gprs_rlcmac_bts *bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); int ts_no = 7; uint32_t fn = 2654218; uint16_t qta = 31; @@ -1956,8 +1944,7 @@ static void test_tbf_dl_flow_and_rach_two_phase() { the_pcu = gprs_pcu_alloc(tall_pcu_ctx); - the_pcu->bts = bts_alloc(the_pcu); - struct gprs_rlcmac_bts *bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); int ts_no = 7; uint32_t fn = 2654218; uint16_t qta = 31; @@ -2018,8 +2005,7 @@ static void test_tbf_dl_flow_and_rach_single_phase() { the_pcu = gprs_pcu_alloc(tall_pcu_ctx); - the_pcu->bts = bts_alloc(the_pcu); - struct gprs_rlcmac_bts *bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); int ts_no = 7; uint32_t fn = 2654218; uint16_t qta = 31; @@ -2079,8 +2065,7 @@ static void test_tbf_dl_reuse() { the_pcu = gprs_pcu_alloc(tall_pcu_ctx); - the_pcu->bts = bts_alloc(the_pcu); - struct gprs_rlcmac_bts *bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); int ts_no = 7; uint32_t fn = 2654218; uint16_t qta = 31; @@ -2180,8 +2165,7 @@ static void test_tbf_gprs_egprs() { the_pcu = gprs_pcu_alloc(tall_pcu_ctx); - the_pcu->bts = bts_alloc(the_pcu); - struct gprs_rlcmac_bts *bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); uint8_t ts_no = 4; uint8_t ms_class = 45; int rc = 0; @@ -2248,8 +2232,7 @@ static void test_tbf_ws() { the_pcu = gprs_pcu_alloc(tall_pcu_ctx); - the_pcu->bts = bts_alloc(the_pcu); - struct gprs_rlcmac_bts *bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); GprsMs *ms; uint8_t ts_no = 4; uint8_t ms_class = 12; @@ -2294,8 +2277,7 @@ static void test_tbf_update_ws(void) { the_pcu = gprs_pcu_alloc(tall_pcu_ctx); - the_pcu->bts = bts_alloc(the_pcu); - struct gprs_rlcmac_bts *bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); GprsMs *ms; uint8_t ts_no = 4; uint8_t ms_class = 11; @@ -2339,8 +2321,7 @@ static void test_tbf_puan_urbb_len(void) { the_pcu = gprs_pcu_alloc(tall_pcu_ctx); - the_pcu->bts = bts_alloc(the_pcu); - struct gprs_rlcmac_bts *bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); int ts_no = 7; uint32_t fn = 2654218; uint16_t qta = 31; @@ -2479,8 +2460,7 @@ static void test_tbf_li_decoding(void) { the_pcu = gprs_pcu_alloc(tall_pcu_ctx); - the_pcu->bts = bts_alloc(the_pcu); - struct gprs_rlcmac_bts *bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); int ts_no = 7; uint32_t fn = 2654218; uint16_t qta = 31; @@ -2516,8 +2496,7 @@ static void test_tbf_epdan_out_of_rx_window(void) { the_pcu = gprs_pcu_alloc(tall_pcu_ctx); - the_pcu->bts = bts_alloc(the_pcu); - struct gprs_rlcmac_bts *bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); uint8_t ms_class = 11; uint8_t egprs_ms_class = 11; uint8_t trx_no; @@ -2608,8 +2587,7 @@ static void test_tbf_egprs_two_phase_spb(void) { the_pcu = gprs_pcu_alloc(tall_pcu_ctx); - the_pcu->bts = bts_alloc(the_pcu); - struct gprs_rlcmac_bts *bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); int ts_no = 7; uint32_t fn = 2654218; uint16_t qta = 31; @@ -2640,8 +2618,7 @@ static void test_tbf_egprs_two_phase() { the_pcu = gprs_pcu_alloc(tall_pcu_ctx); - the_pcu->bts = bts_alloc(the_pcu); - struct gprs_rlcmac_bts *bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); int ts_no = 7; uint32_t fn = 2654218; uint16_t qta = 31; @@ -3064,8 +3041,7 @@ static void test_tbf_egprs_retx_dl(void) { the_pcu = gprs_pcu_alloc(tall_pcu_ctx); - the_pcu->bts = bts_alloc(the_pcu); - struct gprs_rlcmac_bts *bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); uint8_t ts_no = 4; fprintf(stderr, "=== start %s ===\n", __func__); @@ -3093,8 +3069,7 @@ static void test_tbf_egprs_spb_dl(void) { the_pcu = gprs_pcu_alloc(tall_pcu_ctx); - the_pcu->bts = bts_alloc(the_pcu); - struct gprs_rlcmac_bts *bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); uint8_t ts_no = 4; fprintf(stderr, "=== start %s ===\n", __func__); @@ -3124,8 +3099,7 @@ static void test_tbf_egprs_dl() { the_pcu = gprs_pcu_alloc(tall_pcu_ctx); - the_pcu->bts = bts_alloc(the_pcu); - struct gprs_rlcmac_bts *bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); uint8_t ts_no = 4; int i; @@ -3148,8 +3122,7 @@ static void test_packet_access_rej_prr_no_other_tbfs() { the_pcu = gprs_pcu_alloc(tall_pcu_ctx); - the_pcu->bts = bts_alloc(the_pcu); - struct gprs_rlcmac_bts *bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); uint32_t fn = 2654218; int ts_no = 7; uint8_t trx_no = 0; @@ -3184,8 +3157,7 @@ static void test_packet_access_rej_prr() { the_pcu = gprs_pcu_alloc(tall_pcu_ctx); - the_pcu->bts = bts_alloc(the_pcu); - struct gprs_rlcmac_bts *bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); uint32_t fn = 2654218; uint16_t qta = 31; int ts_no = 7; @@ -3255,8 +3227,7 @@ void test_packet_access_rej_epdan() { the_pcu = gprs_pcu_alloc(tall_pcu_ctx); - the_pcu->bts = bts_alloc(the_pcu); - struct gprs_rlcmac_bts *bts = the_pcu->bts; + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); uint32_t tlli = 0xffeeddcc; static uint8_t exp[] = { 0x40, 0x84, 0x7f, 0xf7, 0x6e, 0xe6, 0x41, 0x4b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, diff --git a/tests/types/TypesTest.cpp b/tests/types/TypesTest.cpp index 2da6a64..038d737 100644 --- a/tests/types/TypesTest.cpp +++ b/tests/types/TypesTest.cpp @@ -353,7 +353,7 @@ uint16_t lost = 0, recv = 0; char show_rbb[65]; uint8_t bits_data[8]; - struct gprs_rlcmac_bts *dummy_bts = bts_alloc(the_pcu); + struct gprs_rlcmac_bts *dummy_bts = bts_alloc(the_pcu, 0); gprs_rlc_dl_window dl_win; bitvec bits; int bsn_begin, bsn_end, num_blocks; @@ -671,7 +671,7 @@ fprintf(stderr, "############## test_egprs_ul_ack_nack\n"); - struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu); + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); the_pcu->alloc_algorithm = alloc_algorithm_a; bts->trx[0].pdch[4].enable(); @@ -762,7 +762,7 @@ void test_immediate_assign_dl() { - struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu); + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); the_pcu->alloc_algorithm = alloc_algorithm_a; bts->trx[0].pdch[2].enable(); bts->trx[0].pdch[3].enable(); @@ -787,7 +787,7 @@ void test_immediate_assign_ul0m() { - struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu); + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); the_pcu->alloc_algorithm = alloc_algorithm_a; bts->trx[0].pdch[4].enable(); bts->trx[0].pdch[5].enable(); @@ -829,7 +829,7 @@ void test_immediate_assign_ul1s() { - struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu); + struct gprs_rlcmac_bts *bts = bts_alloc(the_pcu, 0); the_pcu->alloc_algorithm = alloc_algorithm_a; bts->trx[0].pdch[1].enable(); bts->trx[0].pdch[2].enable(); -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22309 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I6b10913f46c19d438c4e250a436a7446694b725a Gerrit-Change-Number: 22309 Gerrit-PatchSet: 6 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 12:34:27 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 20 Jan 2021 12:34:27 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vc_fsm: ensure all state is resetted via force_unconf In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22293 to look at the new patch set (#9). Change subject: gprs_ns2_vc_fsm: ensure all state is resetted via force_unconf ...................................................................... gprs_ns2_vc_fsm: ensure all state is resetted via force_unconf Change-Id: I240225ce82fa27dfcb5b4b8e2981bb4d8cc4cd70 --- M src/gb/gprs_ns2_vc_fsm.c 1 file changed, 5 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/93/22293/9 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22293 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I240225ce82fa27dfcb5b4b8e2981bb4d8cc4cd70 Gerrit-Change-Number: 22293 Gerrit-PatchSet: 9 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 12:34:27 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 20 Jan 2021 12:34:27 +0000 Subject: Change in libosmocore[master]: gprs_ns2: rework logging of Rx and Tx NS PDU In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22294 to look at the new patch set (#9). Change subject: gprs_ns2: rework logging of Rx and Tx NS PDU ...................................................................... gprs_ns2: rework logging of Rx and Tx NS PDU Unify log messages so all log messages look similiar. Log also Rx PDUs. Ensure dropped Tx packets (BLOCK/RESET on SNS) contain *Tx*. Change-Id: I34b8fde2955ecc010d1dcd9512e1bba9211e2c0d --- M src/gb/gprs_ns2.c M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_message.c 3 files changed, 34 insertions(+), 28 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/94/22294/9 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22294 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I34b8fde2955ecc010d1dcd9512e1bba9211e2c0d Gerrit-Change-Number: 22294 Gerrit-PatchSet: 9 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 12:34:27 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 20 Jan 2021 12:34:27 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vc_fsm: fix transitions for ALIVE state In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22316 to look at the new patch set (#6). Change subject: gprs_ns2_vc_fsm: fix transitions for ALIVE state ...................................................................... gprs_ns2_vc_fsm: fix transitions for ALIVE state Alive can never reach RESET. However ALIVE -> ALIVE is allowed. Change-Id: Ic414d7ca96b1ec6db1665cd4c072c7ebbee787f1 --- M src/gb/gprs_ns2_vc_fsm.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/16/22316/6 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22316 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic414d7ca96b1ec6db1665cd4c072c7ebbee787f1 Gerrit-Change-Number: 22316 Gerrit-PatchSet: 6 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 12:34:27 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 20 Jan 2021 12:34:27 +0000 Subject: Change in libosmocore[master]: gprs_ns2_message: remove wrong comment In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22317 to look at the new patch set (#6). Change subject: gprs_ns2_message: remove wrong comment ...................................................................... gprs_ns2_message: remove wrong comment It's a leftover from converting NS1 -> NS2 code Change-Id: I934c7905f8396e74bb1f14d68097c03463816720 --- M src/gb/gprs_ns2_message.c 1 file changed, 0 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/17/22317/6 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22317 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I934c7905f8396e74bb1f14d68097c03463816720 Gerrit-Change-Number: 22317 Gerrit-PatchSet: 6 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 12:34:29 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 20 Jan 2021 12:34:29 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vc_fsm: in RESET accept RESET as ACK References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22324 ) Change subject: gprs_ns2_vc_fsm: in RESET accept RESET as ACK ...................................................................... gprs_ns2_vc_fsm: in RESET accept RESET as ACK When both side sends RESET at the same time 48.016 Change-Id: I49d2a4f257f45b7bc4f0a7a6c5b8381071893686 --- M src/gb/gprs_ns2_vc_fsm.c 1 file changed, 3 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/24/22324/1 diff --git a/src/gb/gprs_ns2_vc_fsm.c b/src/gb/gprs_ns2_vc_fsm.c index 60c46e6..04d95f4 100644 --- a/src/gb/gprs_ns2_vc_fsm.c +++ b/src/gb/gprs_ns2_vc_fsm.c @@ -272,6 +272,9 @@ if (priv->initiate_reset) { switch (event) { + case GPRS_NS2_EV_RX_RESET: + ns2_tx_reset_ack(priv->nsvc); + /* fall-through */ case GPRS_NS2_EV_RX_RESET_ACK: osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_BLOCKED, nsi->timeout[NS_TOUT_TNS_BLOCK], NS_TOUT_TNS_BLOCK); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22324 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I49d2a4f257f45b7bc4f0a7a6c5b8381071893686 Gerrit-Change-Number: 22324 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 12:34:30 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 20 Jan 2021 12:34:30 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vc_fsm: check NSEI match the NSE References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22325 ) Change subject: gprs_ns2_vc_fsm: check NSEI match the NSE ...................................................................... gprs_ns2_vc_fsm: check NSEI match the NSE The NSE must match the PDUs. The only exception is a RESET with dialect ipaccess. However those will be handled later. Change-Id: Ic8fc49d850490feb0ff69171a6b0881ae8696c0b --- M src/gb/gprs_ns2_vc_fsm.c 1 file changed, 10 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/25/22325/1 diff --git a/src/gb/gprs_ns2_vc_fsm.c b/src/gb/gprs_ns2_vc_fsm.c index 5de86f5..bae17cb 100644 --- a/src/gb/gprs_ns2_vc_fsm.c +++ b/src/gb/gprs_ns2_vc_fsm.c @@ -750,6 +750,7 @@ struct osmo_fsm_inst *fi = nsvc->fi; int rc = 0; uint8_t cause; + uint16_t nsei; /* TODO: 7.2: on UNBLOCK/BLOCK: check if NS-VCI is correct, * if not answer STATUS with "NS-VC unknown" */ @@ -763,6 +764,15 @@ } } + if (TLVP_PRESENT(tp, NS_IE_NSEI)) { + nsei = tlvp_val16be(tp, NS_IE_NSEI); + if (nsei != nsvc->nse->nsei) { + LOGP(DLNS, LOGL_ERROR, "NSEI=%05u Rx %s with wrong NSEI=%05u on NSVC %s. Ignoring PDU.\n", + nsvc->nse->nsei, get_value_string(gprs_ns_pdu_strings, nsh->pdu_type), nsei, gprs_ns2_ll_str(nsvc)); + goto out; + } + } + switch (nsh->pdu_type) { case NS_PDUT_RESET: osmo_fsm_inst_dispatch(fi, GPRS_NS2_EV_RX_RESET, tp); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22325 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic8fc49d850490feb0ff69171a6b0881ae8696c0b Gerrit-Change-Number: 22325 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 12:43:27 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 20 Jan 2021 12:43:27 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vc_fsm: in RESET accept RESET as ACK In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22324 ) Change subject: gprs_ns2_vc_fsm: in RESET accept RESET as ACK ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22324 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I49d2a4f257f45b7bc4f0a7a6c5b8381071893686 Gerrit-Change-Number: 22324 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 20 Jan 2021 12:43:27 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 12:43:55 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 20 Jan 2021 12:43:55 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vc_fsm: check NSEI match the NSE In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22325 ) Change subject: gprs_ns2_vc_fsm: check NSEI match the NSE ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22325 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic8fc49d850490feb0ff69171a6b0881ae8696c0b Gerrit-Change-Number: 22325 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 20 Jan 2021 12:43:55 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 12:50:09 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 20 Jan 2021 12:50:09 +0000 Subject: Change in osmo-pcu[master]: bts: Store lac/rac/ci from info_ind References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22326 ) Change subject: bts: Store lac/rac/ci from info_ind ...................................................................... bts: Store lac/rac/ci from info_ind Having those values at hand will be needed later for RIM / NACC related purposes. Change-Id: Ia3596e9e81cd71443be2cc6f2450bb7f91d2667d --- M src/bts.h M src/pcu_l1_if.cpp 2 files changed, 6 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/26/22326/1 diff --git a/src/bts.h b/src/bts.h index d1881b2..841b12e 100644 --- a/src/bts.h +++ b/src/bts.h @@ -199,6 +199,9 @@ struct llist_head list; /* queued in pcu->bts_list */ bool active; uint8_t bsic; + unsigned lac; + uint8_t rac; + unsigned cell_id; uint8_t cs_mask; /* Allowed CS mask from BTS */ uint16_t mcs_mask; /* Allowed MCS mask from BTS */ struct { /* information stored from last received PCUIF info_ind message */ diff --git a/src/pcu_l1_if.cpp b/src/pcu_l1_if.cpp index 24080f3..bf7da0e 100644 --- a/src/pcu_l1_if.cpp +++ b/src/pcu_l1_if.cpp @@ -603,6 +603,9 @@ LOGP(DL1IF, LOGL_DEBUG, " cv_countdown=%d\n", info_ind->cv_countdown); LOGP(DL1IF, LOGL_DEBUG, " dl_tbf_ext=%d\n", info_ind->dl_tbf_ext); LOGP(DL1IF, LOGL_DEBUG, " ul_tbf_ext=%d\n", info_ind->ul_tbf_ext); + bts->lac = info_ind->lac; + bts->rac = info_ind->rac; + bts->cell_id = info_ind->cell_id; bts->bsic = info_ind->bsic; bts->cs_mask = 1 << 0; /* We need at least 1 CS, let's enable CS1 */ -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22326 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ia3596e9e81cd71443be2cc6f2450bb7f91d2667d Gerrit-Change-Number: 22326 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 13:32:26 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 20 Jan 2021 13:32:26 +0000 Subject: Change in osmo-ci[master]: repo-install-test: tweak FEED syntax References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/22327 ) Change subject: repo-install-test: tweak FEED syntax ...................................................................... repo-install-test: tweak FEED syntax Use the shorter form, before adding another variable with default value. Related: OS#4733 Change-Id: Icb36da91a6dc52529c2087b0961c1b698076eea1 --- M scripts/repo-install-test.sh 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/27/22327/1 diff --git a/scripts/repo-install-test.sh b/scripts/repo-install-test.sh index 0c08e15..a30c36d 100755 --- a/scripts/repo-install-test.sh +++ b/scripts/repo-install-test.sh @@ -15,7 +15,7 @@ DISTRO="$1" docker_images_require "$DISTRO-repo-install-test" -[ -z "$FEED" ] && FEED="nightly" +FEED="${FEED:-nightly}" CONTAINER="$DISTRO-repo-install-test-$FEED" # Try to run "systemctl status" 10 times, kill the container on failure -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22327 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Icb36da91a6dc52529c2087b0961c1b698076eea1 Gerrit-Change-Number: 22327 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 13:32:27 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 20 Jan 2021 13:32:27 +0000 Subject: Change in osmo-ci[master]: repo-install-test: add PROJ variable References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/22328 ) Change subject: repo-install-test: add PROJ variable ...................................................................... repo-install-test: add PROJ variable Make debugging easier by having a PROJ variable that can be overridden by an environment variable of the same name. Pass it to docker and use it to generate all related URLs etc. Add functions in run-inside-docker.sh to convert the PROJ variable into the two other formates needed (with slashes, with underscore), so a future patch can use these functions with a different PROJ variable too. Related: OS#4733 Change-Id: I0ac05a79ad65b5664b5ba37227b65e3b1422a4bf --- M scripts/repo-install-test.sh M scripts/repo-install-test/run-inside-docker.sh 2 files changed, 29 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/28/22328/1 diff --git a/scripts/repo-install-test.sh b/scripts/repo-install-test.sh index a30c36d..a785b74 100755 --- a/scripts/repo-install-test.sh +++ b/scripts/repo-install-test.sh @@ -2,6 +2,7 @@ # Environment variables: # * INTERACTIVE: set to 1 to keep an interactive shell open after the script ran (for debugging) # * FEED: binary package feed (e.g. "latest", "nightly") +# * PROJ: OBS project namespace (e.g. "network:osmocom:latest") # * KEEP_CACHE: set to 1 to keep downloaded binary packages (for development) . "$(dirname "$0")/common.sh" @@ -16,6 +17,7 @@ docker_images_require "$DISTRO-repo-install-test" FEED="${FEED:-nightly}" +PROJ="${PROJ:-network:osmocom:$FEED}" CONTAINER="$DISTRO-repo-install-test-$FEED" # Try to run "systemctl status" 10 times, kill the container on failure @@ -54,6 +56,7 @@ -v "$OSMO_CI_DIR/scripts/repo-install-test:/repo-install-test:ro" \ --name "$CONTAINER" \ -e FEED="$FEED" \ + -e PROJ="$PROJ" \ -e DISTRO="$DISTRO" \ -e container=docker \ --tmpfs /run \ diff --git a/scripts/repo-install-test/run-inside-docker.sh b/scripts/repo-install-test/run-inside-docker.sh index 93e8b7f..f472645 100755 --- a/scripts/repo-install-test/run-inside-docker.sh +++ b/scripts/repo-install-test/run-inside-docker.sh @@ -1,6 +1,7 @@ #!/bin/sh -ex # Environment variables: # * FEED: binary package feed (e.g. "latest", "nightly") +# * PROJ: OBS project namespace (e.g. "network:osmocom:latest") # * KEEP_CACHE: set to 1 to keep downloaded binary packages (for development) # * DISTRO: linux distribution name (e.g. "debian", "centos") @@ -34,8 +35,18 @@ osmo-bts-virtual " -HTTP="http://download.opensuse.org/repositories/network:/osmocom:/$FEED/Debian_9.0/" -OBS="obs://build.opensuse.org/network:osmocom:$FEED/Debian_9.0" +# $1: OBS project (e.g. "network:osmocom:nightly" -> "network:/osmocom:/nightly") +proj_with_slashes() { + echo "$1" | sed "s.:.:/.g" +} + +# $1: OBS project (e.g. "network:osmocom:nightly" -> "network_osmocom_nightly") +proj_with_underscore() { + echo "$1" | tr : _ +} + +HTTP="http://download.opensuse.org/repositories/$(proj_with_slashes "$PROJ")/Debian_9.0/" +OBS="obs://build.opensuse.org/$PROJ/Debian_9.0" check_env() { if [ -n "$FEED" ]; then @@ -44,6 +55,12 @@ echo "ERROR: missing environment variable \$FEED!" exit 1 fi + if [ -n "$PROJ" ]; then + echo "Checking project: $PROJ" + else + echo "ERROR: missing environment variable \$PROJ!" + exit 1 + fi if [ -n "$DISTRO" ]; then echo "Linux distribution: $DISTRO" else @@ -60,16 +77,18 @@ } configure_osmocom_repo_centos8() { + local baseurl="https://download.opensuse.org/repositories/$(proj_with_slashes "$PROJ")/CentOS_8" + echo "Configuring Osmocom repository" # Generate this file, based on the feed: # https://download.opensuse.org/repositories/network:osmocom:latest/CentOS_8/network:osmocom:latest.repo - cat << EOF > /etc/yum.repos.d/network:osmocom:$FEED.repo -[network_osmocom_$FEED] + cat << EOF > "/etc/yum.repos.d/$PROJ.repo" +[$(proj_with_underscore "$PROJ")] name=$FEED packages of the Osmocom project (CentOS_8) type=rpm-md -baseurl=https://download.opensuse.org/repositories/network:/osmocom:/$FEED/CentOS_8/ +baseurl=$baseurl/ gpgcheck=1 -gpgkey=https://download.opensuse.org/repositories/network:/osmocom:/$FEED/CentOS_8/repodata/repomd.xml.key +gpgkey=$baseurl/repodata/repomd.xml.key enabled=1 EOF } @@ -124,7 +143,7 @@ # Get a list of all packages from the repository LANG=C.UTF-8 repoquery \ --quiet \ - --repoid="network_osmocom_$FEED" \ + --repoid="$(proj_with_underscore "$PROJ")" \ --archlist="x86_64,noarch" \ --qf="%{name}" \ > osmocom_packages_all.txt -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22328 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I0ac05a79ad65b5664b5ba37227b65e3b1422a4bf Gerrit-Change-Number: 22328 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 13:32:28 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 20 Jan 2021 13:32:28 +0000 Subject: Change in osmo-ci[master]: repo-install-test: make HTTP, OBS vars local References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/22329 ) Change subject: repo-install-test: make HTTP, OBS vars local ...................................................................... repo-install-test: make HTTP, OBS vars local Move the two debian-specific variables to the debian-related functions where they are used. Both are only used once, and having them global is misleading since the test isn't just for debian anymore, but also for centos8. Make the variables lowercase to indicate that they aren't used globally. Related: OS#4733 Change-Id: I1dfddbd9311d741c03ceedb12aee9aeae6abdab8 --- M scripts/repo-install-test/run-inside-docker.sh 1 file changed, 6 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/29/22329/1 diff --git a/scripts/repo-install-test/run-inside-docker.sh b/scripts/repo-install-test/run-inside-docker.sh index f472645..3c3245d 100755 --- a/scripts/repo-install-test/run-inside-docker.sh +++ b/scripts/repo-install-test/run-inside-docker.sh @@ -45,9 +45,6 @@ echo "$1" | tr : _ } -HTTP="http://download.opensuse.org/repositories/$(proj_with_slashes "$PROJ")/Debian_9.0/" -OBS="obs://build.opensuse.org/$PROJ/Debian_9.0" - check_env() { if [ -n "$FEED" ]; then echo "Checking feed: $FEED" @@ -70,8 +67,10 @@ } configure_osmocom_repo_debian() { + local http="http://download.opensuse.org/repositories/$(proj_with_slashes "$PROJ")/Debian_9.0/" + echo "Configuring Osmocom repository" - echo "deb $HTTP ./" \ + echo "deb $http ./" \ > /etc/apt/sources.list.d/osmocom-latest.list apt-get update } @@ -125,12 +124,14 @@ } install_repo_packages_debian() { + local obs="obs://build.opensuse.org/$PROJ/Debian_9.0" + echo "Installing all repository packages" # Get a list of all packages from the repository. Reference: # https://www.debian.org/doc/manuals/aptitude/ch02s04s05.en.html aptitude search -F%p \ - "?origin($OBS) ?architecture(native)" | sort \ + "?origin($obs) ?architecture(native)" | sort \ > osmocom_packages_all.txt filter_packages_txt -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22329 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I1dfddbd9311d741c03ceedb12aee9aeae6abdab8 Gerrit-Change-Number: 22329 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 13:32:28 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 20 Jan 2021 13:32:28 +0000 Subject: Change in osmo-ci[master]: repo-install-test: put $PROJ in sources.list name References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/22330 ) Change subject: repo-install-test: put $PROJ in sources.list name ...................................................................... repo-install-test: put $PROJ in sources.list name Don't call the file osmocom-latest regardless of the feed name. This becomes important in a future conflict test where we will have two repositories from two feeds configured. Related: OS#4733 Change-Id: I8926443a9ff70f285d9467d39658e64456972b07 --- M scripts/repo-install-test/run-inside-docker.sh 1 file changed, 1 insertion(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/30/22330/1 diff --git a/scripts/repo-install-test/run-inside-docker.sh b/scripts/repo-install-test/run-inside-docker.sh index 3c3245d..ee148c8 100755 --- a/scripts/repo-install-test/run-inside-docker.sh +++ b/scripts/repo-install-test/run-inside-docker.sh @@ -70,8 +70,7 @@ local http="http://download.opensuse.org/repositories/$(proj_with_slashes "$PROJ")/Debian_9.0/" echo "Configuring Osmocom repository" - echo "deb $http ./" \ - > /etc/apt/sources.list.d/osmocom-latest.list + echo "deb $http ./" > "/etc/apt/sources.list.d/$PROJ.list" apt-get update } -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22330 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I8926443a9ff70f285d9467d39658e64456972b07 Gerrit-Change-Number: 22330 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 13:32:28 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 20 Jan 2021 13:32:28 +0000 Subject: Change in osmo-ci[master]: repo-install-test: don't use $FEED in centos8 repo References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/22331 ) Change subject: repo-install-test: don't use $FEED in centos8 repo ...................................................................... repo-install-test: don't use $FEED in centos8 repo Use $PROJ instead of $FEED in the repository name, so we can add $PROJ as parameter to the repo configuration functions later without worrying about having a matching $FEED. Related: OS#4733 Change-Id: Ic316add6b2d9b6f50335cad762628bb16da61d82 --- M scripts/repo-install-test/run-inside-docker.sh 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/31/22331/1 diff --git a/scripts/repo-install-test/run-inside-docker.sh b/scripts/repo-install-test/run-inside-docker.sh index ee148c8..3dd3101 100755 --- a/scripts/repo-install-test/run-inside-docker.sh +++ b/scripts/repo-install-test/run-inside-docker.sh @@ -82,7 +82,7 @@ # https://download.opensuse.org/repositories/network:osmocom:latest/CentOS_8/network:osmocom:latest.repo cat << EOF > "/etc/yum.repos.d/$PROJ.repo" [$(proj_with_underscore "$PROJ")] -name=$FEED packages of the Osmocom project (CentOS_8) +name=$PROJ type=rpm-md baseurl=$baseurl/ gpgcheck=1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22331 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ic316add6b2d9b6f50335cad762628bb16da61d82 Gerrit-Change-Number: 22331 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 13:32:29 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 20 Jan 2021 13:32:29 +0000 Subject: Change in osmo-ci[master]: repo-install-test: download/add deb release key References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/22332 ) Change subject: repo-install-test: download/add deb release key ...................................................................... repo-install-test: download/add deb release key Download and add the release key for the debian repository from OBS. This is useful for manually testing the existing tests with a different PROJ for debugging, and it will be used by a future conflict test to install a second repository (e.g. nightly and latest at the same time). Note that this is not needed for rpm, because the dnf package manager automatically downloads the key if it is missing. Related: OS#4733 Change-Id: I91e7a208d8f5cb50f8baa2fde0eb979aae91da8f --- M scripts/repo-install-test/run-inside-docker.sh 1 file changed, 11 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/32/22332/1 diff --git a/scripts/repo-install-test/run-inside-docker.sh b/scripts/repo-install-test/run-inside-docker.sh index 3dd3101..652fcd1 100755 --- a/scripts/repo-install-test/run-inside-docker.sh +++ b/scripts/repo-install-test/run-inside-docker.sh @@ -67,10 +67,19 @@ } configure_osmocom_repo_debian() { - local http="http://download.opensuse.org/repositories/$(proj_with_slashes "$PROJ")/Debian_9.0/" + local obs_repo="download.opensuse.org/repositories/$(proj_with_slashes "$PROJ")/Debian_9.0/" + local release_key="/var/cache/apt/${PROJ}_Release.key" echo "Configuring Osmocom repository" - echo "deb $http ./" > "/etc/apt/sources.list.d/$PROJ.list" + echo "deb http://$obs_repo ./" > "/etc/apt/sources.list.d/$PROJ.list" + + # Add repository key + if ! [ -e "$release_key" ]; then + apt install -y wget + wget -O "$release_key" "https://$obs_repo/Release.key" + fi + apt-key add "$release_key" + apt-get update } -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22332 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I91e7a208d8f5cb50f8baa2fde0eb979aae91da8f Gerrit-Change-Number: 22332 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 13:32:29 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 20 Jan 2021 13:32:29 +0000 Subject: Change in osmo-ci[master]: repo-install-test: cfg_osmocom_repo: add PROJ arg References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/22333 ) Change subject: repo-install-test: cfg_osmocom_repo: add PROJ arg ...................................................................... repo-install-test: cfg_osmocom_repo: add PROJ arg Prepare for future conflicts test, which will configure repositories with a different PROJ. Related: OS#4733 Change-Id: Ib9946b5a02f8692efc8515907ba84048026474f9 --- M scripts/repo-install-test/run-inside-docker.sh 1 file changed, 12 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/33/22333/1 diff --git a/scripts/repo-install-test/run-inside-docker.sh b/scripts/repo-install-test/run-inside-docker.sh index 652fcd1..b10c97d 100755 --- a/scripts/repo-install-test/run-inside-docker.sh +++ b/scripts/repo-install-test/run-inside-docker.sh @@ -66,12 +66,14 @@ fi } +# $1: OBS project (e.g. "network:osmocom:nightly") configure_osmocom_repo_debian() { - local obs_repo="download.opensuse.org/repositories/$(proj_with_slashes "$PROJ")/Debian_9.0/" - local release_key="/var/cache/apt/${PROJ}_Release.key" + local proj="$1" + local obs_repo="download.opensuse.org/repositories/$(proj_with_slashes "$proj")/Debian_9.0/" + local release_key="/var/cache/apt/${proj}_Release.key" echo "Configuring Osmocom repository" - echo "deb http://$obs_repo ./" > "/etc/apt/sources.list.d/$PROJ.list" + echo "deb http://$obs_repo ./" > "/etc/apt/sources.list.d/$proj.list" # Add repository key if ! [ -e "$release_key" ]; then @@ -83,15 +85,17 @@ apt-get update } +# $1: OBS project (e.g. "network:osmocom:nightly") configure_osmocom_repo_centos8() { - local baseurl="https://download.opensuse.org/repositories/$(proj_with_slashes "$PROJ")/CentOS_8" + local proj="$1" + local baseurl="https://download.opensuse.org/repositories/$(proj_with_slashes "$proj")/CentOS_8" echo "Configuring Osmocom repository" # Generate this file, based on the feed: # https://download.opensuse.org/repositories/network:osmocom:latest/CentOS_8/network:osmocom:latest.repo - cat << EOF > "/etc/yum.repos.d/$PROJ.repo" -[$(proj_with_underscore "$PROJ")] -name=$PROJ + cat << EOF > "/etc/yum.repos.d/$proj.repo" +[$(proj_with_underscore "$proj")] +name=$proj type=rpm-md baseurl=$baseurl/ gpgcheck=1 @@ -239,7 +243,7 @@ check_env configure_keep_cache_${DISTRO} -configure_osmocom_repo_${DISTRO} +configure_osmocom_repo_${DISTRO} "$PROJ" install_repo_packages_${DISTRO} test_binaries services_check -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22333 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ib9946b5a02f8692efc8515907ba84048026474f9 Gerrit-Change-Number: 22333 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 13:32:29 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 20 Jan 2021 13:32:29 +0000 Subject: Change in osmo-ci[master]: repo-install-test: add TESTS variable References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/22334 ) Change subject: repo-install-test: add TESTS variable ...................................................................... repo-install-test: add TESTS variable Allow to enable only certain tests during development. Related: OS#4733 Change-Id: I8d817f47d790e4cdc25c5182a0e91b66a00fbf52 --- M scripts/repo-install-test.sh M scripts/repo-install-test/run-inside-docker.sh 2 files changed, 42 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/34/22334/1 diff --git a/scripts/repo-install-test.sh b/scripts/repo-install-test.sh index a785b74..71e55d7 100755 --- a/scripts/repo-install-test.sh +++ b/scripts/repo-install-test.sh @@ -4,6 +4,7 @@ # * FEED: binary package feed (e.g. "latest", "nightly") # * PROJ: OBS project namespace (e.g. "network:osmocom:latest") # * KEEP_CACHE: set to 1 to keep downloaded binary packages (for development) +# * TESTS: which tests to run (all by default, see below for possible values) . "$(dirname "$0")/common.sh" # Show usage @@ -20,6 +21,14 @@ PROJ="${PROJ:-network:osmocom:$FEED}" CONTAINER="$DISTRO-repo-install-test-$FEED" +if [ -z "$TESTS" ]; then + TESTS=" + install_repo_packages + test_binaries + services_check + " +fi + # Try to run "systemctl status" 10 times, kill the container on failure check_if_systemd_is_running() { for i in $(seq 1 10); do @@ -58,6 +67,7 @@ -e FEED="$FEED" \ -e PROJ="$PROJ" \ -e DISTRO="$DISTRO" \ + -e TESTS="$TESTS" \ -e container=docker \ --tmpfs /run \ --tmpfs /run/lock \ diff --git a/scripts/repo-install-test/run-inside-docker.sh b/scripts/repo-install-test/run-inside-docker.sh index b10c97d..79dd3cf 100755 --- a/scripts/repo-install-test/run-inside-docker.sh +++ b/scripts/repo-install-test/run-inside-docker.sh @@ -4,6 +4,7 @@ # * PROJ: OBS project namespace (e.g. "network:osmocom:latest") # * KEEP_CACHE: set to 1 to keep downloaded binary packages (for development) # * DISTRO: linux distribution name (e.g. "debian", "centos") +# * TESTS: which tests to run (see repo-install-test.sh) # Systemd services that must start up successfully after installing all packages (OS#3369) # Disabled services: @@ -64,6 +65,11 @@ echo "ERROR: missing environment variable \$DISTRO!" exit 1 fi + if [ -n "$TESTS" ]; then + echo "Enabled tests: $TESTS" + else + echo "ERROR: missing environment variable \$TESTS!" + fi } # $1: OBS project (e.g. "network:osmocom:nightly") @@ -244,6 +250,29 @@ check_env configure_keep_cache_${DISTRO} configure_osmocom_repo_${DISTRO} "$PROJ" -install_repo_packages_${DISTRO} -test_binaries -services_check + +for test in $TESTS; do + set +x + echo + echo "### Running test: $test ###" + echo + set -x + + case "$test" in + install_repo_packages) + install_repo_packages_${DISTRO} + ;; + test_binaries) + # install_repo_packages must run first! + test_binaries + ;; + services_check) + # install_repo_packages must run first! + services_check + ;; + *) + echo "ERROR: unknown test: $test" + exit 1 + ;; + esac +done -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22334 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I8d817f47d790e4cdc25c5182a0e91b66a00fbf52 Gerrit-Change-Number: 22334 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 13:32:30 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 20 Jan 2021 13:32:30 +0000 Subject: Change in osmo-ci[master]: repo-install-test: add test_conflict References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/22335 ) Change subject: repo-install-test: add test_conflict ...................................................................... repo-install-test: add test_conflict Install one Osmocom package from one package feed and attempt to install a second package from a different feed. Verify that the package manager exits with error and mentions the conflict in its output. Related: OS#4733 Change-Id: Icf2a3a1d1de2ff42b1dc9aadf2075e5e1ff40291 --- M scripts/repo-install-test.sh M scripts/repo-install-test/run-inside-docker.sh 2 files changed, 107 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/35/22335/1 diff --git a/scripts/repo-install-test.sh b/scripts/repo-install-test.sh index 71e55d7..7585509 100755 --- a/scripts/repo-install-test.sh +++ b/scripts/repo-install-test.sh @@ -3,6 +3,7 @@ # * INTERACTIVE: set to 1 to keep an interactive shell open after the script ran (for debugging) # * FEED: binary package feed (e.g. "latest", "nightly") # * PROJ: OBS project namespace (e.g. "network:osmocom:latest") +# * PROJ_CONFLICT: Conflicting OBS project namespace (e.g. "network:osmocom:nightly") # * KEEP_CACHE: set to 1 to keep downloaded binary packages (for development) # * TESTS: which tests to run (all by default, see below for possible values) . "$(dirname "$0")/common.sh" @@ -23,12 +24,31 @@ if [ -z "$TESTS" ]; then TESTS=" + test_conflict install_repo_packages test_binaries services_check " fi +if [ -z "$PROJ_CONFLICT" ]; then + case "$FEED" in + latest) + PROJ_CONFLICT="network:osmocom:nightly" + ;; + nightly) + PROJ_CONFLICT="network:osmocom:latest" + if [ "$DISTRO" = "centos8" ]; then + # Doesn't have packages built for "latest" yet + PROJ_CONFLICT="network:osmocom:next" + fi + ;; + next) + PROJ_CONFLICT="network:osmocom:nightly" + ;; + esac +fi + # Try to run "systemctl status" 10 times, kill the container on failure check_if_systemd_is_running() { for i in $(seq 1 10); do @@ -66,6 +86,7 @@ --name "$CONTAINER" \ -e FEED="$FEED" \ -e PROJ="$PROJ" \ + -e PROJ_CONFLICT="$PROJ_CONFLICT" \ -e DISTRO="$DISTRO" \ -e TESTS="$TESTS" \ -e container=docker \ diff --git a/scripts/repo-install-test/run-inside-docker.sh b/scripts/repo-install-test/run-inside-docker.sh index 79dd3cf..f7d1449 100755 --- a/scripts/repo-install-test/run-inside-docker.sh +++ b/scripts/repo-install-test/run-inside-docker.sh @@ -2,6 +2,7 @@ # Environment variables: # * FEED: binary package feed (e.g. "latest", "nightly") # * PROJ: OBS project namespace (e.g. "network:osmocom:latest") +# * PROJ_CONFLICT: Conflicting OBS project namespace (e.g. "network:osmocom:nightly") # * KEEP_CACHE: set to 1 to keep downloaded binary packages (for development) # * DISTRO: linux distribution name (e.g. "debian", "centos") # * TESTS: which tests to run (see repo-install-test.sh) @@ -59,6 +60,12 @@ echo "ERROR: missing environment variable \$PROJ!" exit 1 fi + if [ -n "$PROJ_CONFLICT" ]; then + echo "Checking conflicting project: $PROJ_CONFLICT" + else + echo "ERROR: missing environment variable \$PROJ_CONFLICT!" + exit 1 + fi if [ -n "$DISTRO" ]; then echo "Linux distribution: $DISTRO" else @@ -92,6 +99,12 @@ } # $1: OBS project (e.g. "network:osmocom:nightly") +configure_osmocom_repo_debian_remove() { + local proj="$1" + rm "/etc/apt/sources.list.d/$proj.list" +} + +# $1: OBS project (e.g. "network:osmocom:nightly") configure_osmocom_repo_centos8() { local proj="$1" local baseurl="https://download.opensuse.org/repositories/$(proj_with_slashes "$proj")/CentOS_8" @@ -110,6 +123,12 @@ EOF } +# $1: OBS project (e.g. "network:osmocom:nightly") +configure_osmocom_repo_centos8_remove() { + local proj="$1" + rm "/etc/yum.repos.d/$proj.repo" +} + configure_keep_cache_debian() { if [ -z "$KEEP_CACHE" ]; then return @@ -130,6 +149,70 @@ echo "keepcache=1" >> /etc/dnf/dnf.conf } +# $1: file +# $2-n: patterns to look for in file with grep +find_patterns_or_exit() { + local file="$1" + local pattern + shift + + for pattern in "$@"; do + if grep -q "$pattern" "$file"; then + continue + fi + + echo "ERROR: could not find pattern '$pattern' in file '$file'!" + exit 1 + done +} + +test_conflict_debian() { + apt-get -y install libosmocore + + configure_osmocom_repo_debian_remove "$PROJ" + configure_osmocom_repo_debian "$PROJ_CONFLICT" + + (apt-get -y install osmo-mgw 2>&1 && touch /tmp/fail) | tee /tmp/out + + if [ -e /tmp/fail ]; then + echo "ERROR: unexpected exit 0!" + exit 1 + fi + + find_patterns_or_exit \ + /tmp/out \ + "requested an impossible situation" \ + "^The following packages have unmet dependencies:" \ + "Depends: osmocom-" \ + "but it is not going to be installed" + + configure_osmocom_repo_debian_remove "$PROJ_CONFLICT" + configure_osmocom_repo_debian "$PROJ" +} + +test_conflict_centos8() { + dnf -y install libosmocore-devel + + configure_osmocom_repo_centos8_remove "$PROJ" + configure_osmocom_repo_centos8 "$PROJ_CONFLICT" + + (dnf -y install osmo-mgw 2>&1 && touch /tmp/fail) | tee /tmp/out + + if [ -e /tmp/fail ]; then + echo "ERROR: unexpected exit 0!" + exit 1 + fi + + find_patterns_or_exit \ + /tmp/out \ + "^Error:" \ + "but none of the providers can be installed" \ + "conflicts with osmocom-" + + configure_osmocom_repo_centos8_remove "$PROJ_CONFLICT" + configure_osmocom_repo_centos8 "$PROJ" +} + # Filter $PWD/osmocom_packages_all.txt through a blacklist_$DISTRO.txt and store the result in # $PWD/osmocom_packages.txt. filter_packages_txt() { @@ -259,6 +342,9 @@ set -x case "$test" in + test_conflict) + test_conflict_${DISTRO} + ;; install_repo_packages) install_repo_packages_${DISTRO} ;; -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22335 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Icf2a3a1d1de2ff42b1dc9aadf2075e5e1ff40291 Gerrit-Change-Number: 22335 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 13:38:08 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 20 Jan 2021 13:38:08 +0000 Subject: Change in osmo-ci[master]: repo-install-test: add test_conflict In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22335 ) Change subject: repo-install-test: add test_conflict ...................................................................... Patch Set 1: Verified+1 Jenkins jobs running test_conflict (from my branch): * https://jenkins.osmocom.org/jenkins/job/Osmocom-repo-install-centos8/57/ * https://jenkins.osmocom.org/jenkins/job/Osmocom-repo-install-debian/247/ -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22335 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Icf2a3a1d1de2ff42b1dc9aadf2075e5e1ff40291 Gerrit-Change-Number: 22335 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: osmith Gerrit-Comment-Date: Wed, 20 Jan 2021 13:38:08 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 13:45:16 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 20 Jan 2021 13:45:16 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Connect to RIM port from BSSGP_Emulation References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22336 ) Change subject: pcu: Connect to RIM port from BSSGP_Emulation ...................................................................... pcu: Connect to RIM port from BSSGP_Emulation It will be used in next commits to test RIM related topics (such as NACC). Change-Id: I8113d9ef5433ae0976227408133a53397aeae41a --- M pcu/SGSN_Components.ttcn 1 file changed, 3 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/36/22336/1 diff --git a/pcu/SGSN_Components.ttcn b/pcu/SGSN_Components.ttcn index 08d9231..a55d791 100644 --- a/pcu/SGSN_Components.ttcn +++ b/pcu/SGSN_Components.ttcn @@ -89,6 +89,7 @@ var NS_CT ns_component; var BSSGP_CT bssgp_component; port BSSGP_CT_PROC_PT PROC; + port BSSGP_PT RIM; var boolean g_initialized := false; } @@ -125,6 +126,8 @@ connect(self:BSSGP_PROC[i], vc_BVC:BSSGP_PROC); f_bssgp_client_register(mmctx.imsi, mmctx.tlli); } + /* connect RIM related port */ + connect(self:RIM, bssgp_component:RIM); connect(self:BSSGP_GLOBAL[0], bssgp_component:GLOBAL); } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22336 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I8113d9ef5433ae0976227408133a53397aeae41a Gerrit-Change-Number: 22336 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 14:00:52 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 20 Jan 2021 14:00:52 +0000 Subject: Change in libosmocore[master]: ns2: Unify logging context via log macros References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22337 ) Change subject: ns2: Unify logging context via log macros ...................................................................... ns2: Unify logging context via log macros Let's avoid open-coding the printing of log context and rather rely on log macros to prefix each log line with the relevant context. This helps log readability, log post processing whether by grep or more sophisticated tools. Change-Id: I946c0e77686d91efc5afb62031e1ac1033a9a586 --- M src/gb/gprs_ns2.c M src/gb/gprs_ns2_fr.c M src/gb/gprs_ns2_frgre.c M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_message.c M src/gb/gprs_ns2_sns.c M src/gb/gprs_ns2_udp.c M src/gb/gprs_ns2_vc_fsm.c 8 files changed, 112 insertions(+), 119 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/37/22337/1 diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c index dc8ad8e..ec60dbd 100644 --- a/src/gb/gprs_ns2.c +++ b/src/gb/gprs_ns2.c @@ -695,7 +695,7 @@ nse = gprs_ns2_nse_by_nsei(nsi, nsei); if (nse) { - LOGP(DLNS, LOGL_ERROR, "NSEI:%u Can not create a NSE with already taken NSEI\n", nsei); + LOGNSE(nse, LOGL_ERROR, "Can not create a NSE with already taken NSEI\n"); return nse; } @@ -885,8 +885,9 @@ } else { /* nsei already known */ if (nse->ll != bind->ll) { - LOGP(DLNS, LOGL_ERROR, "Received NS-RESET NS-VCI(%05u) with wrong linklayer(%s) for already known NSE(%05u/%s)\n", - nsei, gprs_ns2_lltype_str(bind->ll), nse->nsei, gprs_ns2_lltype_str(nse->ll)); + LOGNSE(nse, LOGL_ERROR, "Received NS-RESET NS-VCI(%05u) with wrong linklayer(%s)" + " for already known NSE(%s)\n", nsvci, gprs_ns2_lltype_str(bind->ll), + gprs_ns2_lltype_str(nse->ll)); return GPRS_NS2_CS_SKIPPED; } } @@ -894,8 +895,7 @@ nsvc = gprs_ns2_nsvc_by_nsvci(bind->nsi, nsvci); if (nsvc) { if (nsvc->persistent) { - LOGP(DLNS, LOGL_ERROR, "Received NS-RESET for a persistent NSE(%05u) NS-VCI(%05u) over wrong connection.\n", - nsei, nsvci); + LOGNSVC(nsvc, LOGL_ERROR, "Received NS-RESET for a persistent NSE over wrong connection.\n"); return GPRS_NS2_CS_SKIPPED; } /* destroy old dynamic nsvc */ @@ -904,8 +904,8 @@ /* do nse persistent check late to be more precise on the error message */ if (nse->persistent) { - LOGP(DLNS, LOGL_ERROR, "Received NS-RESET for a persistent NSE(%05u) but the unknown NS-VCI(%05u)\n", - nsei, nsvci); + LOGNSE(nse, LOGL_ERROR, "Received NS-RESET for a persistent NSE but the unknown " + "NS-VCI(%05u)\n", nsvci); return GPRS_NS2_CS_SKIPPED; } diff --git a/src/gb/gprs_ns2_fr.c b/src/gb/gprs_ns2_fr.c index a7455d7..274ed96 100644 --- a/src/gb/gprs_ns2_fr.c +++ b/src/gb/gprs_ns2_fr.c @@ -214,8 +214,7 @@ rc = recvfrom(bfd->fd, msg->data, NS_ALLOC_SIZE, 0, (struct sockaddr *)&sll, &sll_len); if (rc < 0) { - LOGP(DLNS, LOGL_ERROR, "recv error %s during NS-FR-GRE recv\n", - strerror(errno)); + LOGBIND(bind, LOGL_ERROR, "recv error %s during NS-FR-GRE recv\n", strerror(errno)); goto out_err; } else if (rc == 0) { goto out_err; @@ -273,8 +272,7 @@ struct priv_bind *priv = bind->priv; if (osmo_wqueue_enqueue(&priv->wqueue, msg)) { - LOGP(DLNS, LOGL_ERROR, "frame relay %s: failed to enqueue message\n", - priv->netif); + LOGBIND(bind, LOGL_ERROR, "frame relay %s: failed to enqueue message\n", priv->netif); msgb_free(msg); return -EINVAL; } @@ -303,7 +301,7 @@ return ifr.ifr_ifindex; } -static int open_socket(int ifindex) +static int open_socket(int ifindex, const struct gprs_ns2_vc_bind *nsbind) { struct sockaddr_ll addr; int fd, rc; @@ -315,7 +313,7 @@ fd = socket(AF_PACKET, SOCK_RAW, htons(ETH_P_HDLC)); if (fd < 0) { - LOGP(DLNS, LOGL_ERROR, "Can not create AF_PACKET socket. Are you root or have CAP_RAW_SOCKET?\n"); + LOGBIND(nsbind, LOGL_ERROR, "Can not create AF_PACKET socket. Are you root or have CAP_NET_RAW?\n"); return fd; } @@ -324,7 +322,7 @@ rc = bind(fd, (struct sockaddr *)&addr, sizeof(addr)); if (rc < 0) { - LOGP(DLNS, LOGL_ERROR, "Can not bind AF_PACKET socket to ifindex %d\n", ifindex); + LOGBIND(nsbind, LOGL_ERROR, "Can not bind AF_PACKET socket to ifindex %d\n", ifindex); close(fd); return rc; } @@ -410,8 +408,8 @@ struct priv_bind *bpriv = bind->priv; if (bpriv->if_running != if_running) { /* update running state */ - LOGP(DLNS, LOGL_NOTICE, "FR net-device '%s': Physical link state changed: %s\n", - ifname, if_running ? "UP" : "DOWN"); + LOGBIND(bind, LOGL_NOTICE, "FR net-device '%s': Physical link state changed: %s\n", + ifname, if_running ? "UP" : "DOWN"); bpriv->if_running = if_running; } } @@ -471,7 +469,7 @@ return rc; } -static int setup_device(const char *netif) +static int setup_device(const char *netif, const struct gprs_ns2_vc_bind *bind) { int sock, rc; char buffer[128]; @@ -480,8 +478,8 @@ sock = socket(PF_INET, SOCK_DGRAM, IPPROTO_IP); if (sock < 0) { - LOGP(DLNS, LOGL_ERROR, "%s: Unable to create socket: %s\n", - netif, strerror(errno)); + LOGBIND(bind, LOGL_ERROR, "%s: Unable to create socket: %s\n", + netif, strerror(errno)); return sock; } @@ -495,22 +493,22 @@ /* EINVAL is returned when no protocol has been set */ rc = ioctl(sock, SIOCWANDEV, &req); if (rc < 0 && errno != EINVAL) { - LOGP(DLNS, LOGL_ERROR, "%s: Unable to get FR protocol information: %s\n", - netif, strerror(errno)); + LOGBIND(bind, LOGL_ERROR, "%s: Unable to get FR protocol information: %s\n", + netif, strerror(errno)); goto err; } /* check if the device is good */ if (rc == 0 && req.ifr_settings.type == IF_PROTO_FR && fr->lmi == LMI_NONE) { - LOGP(DLNS, LOGL_NOTICE, "%s: has correct frame relay mode and lmi\n", netif); + LOGBIND(bind, LOGL_NOTICE, "%s: has correct frame relay mode and lmi\n", netif); goto ifup; } /* modify the device to match */ rc = set_ifupdown(netif, false); if (rc) { - LOGP(DLNS, LOGL_ERROR, "Unable to bring down the device %s: %s\n", - netif, strerror(errno)); + LOGBIND(bind, LOGL_ERROR, "Unable to bring down the device %s: %s\n", + netif, strerror(errno)); goto err; } @@ -533,19 +531,19 @@ /* monitored events count */ fr->n393 = 4; - LOGP(DLNS, LOGL_INFO, "%s: Setting frame relay related parameters\n", netif); + LOGBIND(bind, LOGL_INFO, "%s: Setting frame relay related parameters\n", netif); rc = ioctl(sock, SIOCWANDEV, &req); if (rc) { - LOGP(DLNS, LOGL_ERROR, "%s: Unable to set FR protocol on information: %s\n", - netif, strerror(errno)); + LOGBIND(bind, LOGL_ERROR, "%s: Unable to set FR protocol on information: %s\n", + netif, strerror(errno)); goto err; } ifup: rc = set_ifupdown(netif, true); if (rc) - LOGP(DLNS, LOGL_ERROR, "Unable to bring up the device %s: %s\n", - netif, strerror(errno)); + LOGBIND(bind, LOGL_ERROR, "Unable to bring up the device %s: %s\n", + netif, strerror(errno)); err: close(sock); return rc; @@ -622,18 +620,18 @@ priv->ifindex = rc = devname2ifindex(netif); if (rc < 0) { - LOGP(DLNS, LOGL_ERROR, "Can not get interface index for interface %s\n", netif); + LOGBIND(bind, LOGL_ERROR, "Can not get interface index for interface %s\n", netif); goto err_fr; } /* set protocol frame relay and lmi */ - rc = setup_device(priv->netif); + rc = setup_device(priv->netif, bind); if(rc < 0) { - LOGP(DLNS, LOGL_ERROR, "Failed to setup the interface %s for frame relay and lmi\n", netif); + LOGBIND(bind, LOGL_ERROR, "Failed to setup the interface %s for frame relay and lmi\n", netif); goto err_fr; } - rc = open_socket(priv->ifindex); + rc = open_socket(priv->ifindex, bind); if (rc < 0) goto err_fr; osmo_wqueue_init(&priv->wqueue, 10); diff --git a/src/gb/gprs_ns2_frgre.c b/src/gb/gprs_ns2_frgre.c index 86f0921..2812e12 100644 --- a/src/gb/gprs_ns2_frgre.c +++ b/src/gb/gprs_ns2_frgre.c @@ -180,26 +180,25 @@ inner_ip6h = (struct ip6_hdr *) ((uint8_t *)greh + sizeof(*greh)); if (gre_payload_len < sizeof(*ip6hdr) + sizeof(*inner_greh)) { - LOGP(DLNS, LOGL_ERROR, "GRE keepalive too short\n"); + LOGBIND(bind, LOGL_ERROR, "GRE keepalive too short\n"); return -EIO; } if (!memcmp(&inner_ip6h->ip6_src, &ip6hdr->ip6_src, sizeof(struct in6_addr)) || !memcmp(&inner_ip6h->ip6_dst, &ip6hdr->ip6_dst, sizeof(struct in6_addr))) { - LOGP(DLNS, LOGL_ERROR, - "GRE keepalive with wrong tunnel addresses\n"); + LOGBIND(bind, LOGL_ERROR, "GRE keepalive with wrong tunnel addresses\n"); return -EIO; } /* Are IPv6 extensions header are allowed in the *inner*? In the outer they are */ if (inner_ip6h->ip6_ctlun.ip6_un1.ip6_un1_nxt != IPPROTO_GRE) { - LOGP(DLNS, LOGL_ERROR, "GRE keepalive with wrong protocol\n"); + LOGBIND(bind, LOGL_ERROR, "GRE keepalive with wrong protocol\n"); return -EIO; } inner_greh = (struct gre_hdr *) ((uint8_t *)inner_ip6h + sizeof(struct ip6_hdr)); if (inner_greh->ptype != osmo_htons(GRE_PTYPE_KAR)) { - LOGP(DLNS, LOGL_ERROR, "GRE keepalive inner GRE type != 0\n"); + LOGBIND(bind, LOGL_ERROR, "GRE keepalive inner GRE type != 0\n"); return -EIO; } @@ -212,7 +211,7 @@ ia6 = ip6hdr->ip6_src; char ip6str[INET6_ADDRSTRLEN] = {}; inet_ntop(AF_INET6, &ia6, ip6str, INET6_ADDRSTRLEN); - LOGP(DLNS, LOGL_DEBUG, "GRE keepalive from %s, responding\n", ip6str); + LOGBIND(bind, LOGL_DEBUG, "GRE keepalive from %s, responding\n", ip6str); /* why does it reduce the gre_payload_len by the ipv6 header? * make it similiar to ipv4 even this seems to be wrong */ @@ -238,25 +237,24 @@ inner_iph = (struct iphdr *) ((uint8_t *)greh + sizeof(*greh)); if (gre_payload_len < inner_iph->ihl*4 + sizeof(*inner_greh)) { - LOGP(DLNS, LOGL_ERROR, "GRE keepalive too short\n"); + LOGBIND(bind, LOGL_ERROR, "GRE keepalive too short\n"); return -EIO; } if (inner_iph->saddr != iph->daddr || inner_iph->daddr != iph->saddr) { - LOGP(DLNS, LOGL_ERROR, - "GRE keepalive with wrong tunnel addresses\n"); + LOGBIND(bind, LOGL_ERROR, "GRE keepalive with wrong tunnel addresses\n"); return -EIO; } if (inner_iph->protocol != IPPROTO_GRE) { - LOGP(DLNS, LOGL_ERROR, "GRE keepalive with wrong protocol\n"); + LOGBIND(bind, LOGL_ERROR, "GRE keepalive with wrong protocol\n"); return -EIO; } inner_greh = (struct gre_hdr *) ((uint8_t *)inner_iph + iph->ihl*4); if (inner_greh->ptype != osmo_htons(GRE_PTYPE_KAR)) { - LOGP(DLNS, LOGL_ERROR, "GRE keepalive inner GRE type != 0\n"); + LOGBIND(bind, LOGL_ERROR, "GRE keepalive inner GRE type != 0\n"); return -EIO; } @@ -267,8 +265,7 @@ daddr.sin_port = IPPROTO_GRE; ia.s_addr = iph->saddr; - LOGP(DLNS, LOGL_DEBUG, "GRE keepalive from %s, responding\n", - inet_ntoa(ia)); + LOGBIND(bind, LOGL_DEBUG, "GRE keepalive from %s, responding\n", inet_ntoa(ia)); /* why does it reduce the gre_payload_len by the ipv4 header? */ return sendto(priv->fd.fd, inner_greh, @@ -277,7 +274,8 @@ } static struct msgb *read_nsfrgre_msg(struct osmo_fd *bfd, int *error, - struct osmo_sockaddr *saddr, uint16_t *dlci) + struct osmo_sockaddr *saddr, uint16_t *dlci, + const struct gprs_ns2_vc_bind *bind) { struct msgb *msg = msgb_alloc(NS_ALLOC_SIZE, "Gb/NS/FR/GRE Rx"); int ret = 0; @@ -296,8 +294,7 @@ ret = recvfrom(bfd->fd, msg->data, NS_ALLOC_SIZE, 0, &saddr->u.sa, &saddr_len); if (ret < 0) { - LOGP(DLNS, LOGL_ERROR, "recv error %s during NS-FR-GRE recv\n", - strerror(errno)); + LOGBIND(bind, LOGL_ERROR, "recv error %s during NS-FR-GRE recv\n", strerror(errno)); *error = ret; goto out_err; } else if (ret == 0) { @@ -323,7 +320,7 @@ /* TODO: add support for the extension headers */ if (msg->len < ip46hdr + sizeof(*greh) + 2) { - LOGP(DLNS, LOGL_ERROR, "Short IP packet: %u bytes\n", msg->len); + LOGBIND(bind, LOGL_ERROR, "Short IP packet: %u bytes\n", msg->len); *error = -EIO; goto out_err; } @@ -332,7 +329,7 @@ case AF_INET: iph = (struct iphdr *) msg->data; if (msg->len < (iph->ihl*4 + sizeof(*greh) + 2)) { - LOGP(DLNS, LOGL_ERROR, "Short IP packet: %u bytes\n", msg->len); + LOGBIND(bind, LOGL_ERROR, "Short IP packet: %u bytes\n", msg->len); *error = -EIO; goto out_err; } @@ -344,8 +341,7 @@ greh = (struct gre_hdr *) (msg->data + iph->ihl*4); if (greh->flags) { - LOGP(DLNS, LOGL_NOTICE, "Unknown GRE flags 0x%04x\n", - osmo_ntohs(greh->flags)); + LOGBIND(bind, LOGL_NOTICE, "Unknown GRE flags 0x%04x\n", osmo_ntohs(greh->flags)); } switch (osmo_ntohs(greh->ptype)) { @@ -362,29 +358,27 @@ /* continue as usual */ break; default: - LOGP(DLNS, LOGL_NOTICE, "Unknown GRE protocol 0x%04x != FR\n", - osmo_ntohs(greh->ptype)); + LOGBIND(bind, LOGL_NOTICE, "Unknown GRE protocol 0x%04x != FR\n", osmo_ntohs(greh->ptype)); *error = -EIO; goto out_err; break; } if (msg->len < sizeof(*greh) + 2) { - LOGP(DLNS, LOGL_ERROR, "Short FR header: %u bytes\n", msg->len); + LOGBIND(bind, LOGL_ERROR, "Short FR header: %u bytes\n", msg->len); *error = -EIO; goto out_err; } frh = (uint8_t *)greh + sizeof(*greh); if (frh[0] & 0x01) { - LOGP(DLNS, LOGL_NOTICE, "Unsupported single-byte FR address\n"); + LOGBIND(bind, LOGL_NOTICE, "Unsupported single-byte FR address\n"); *error = -EIO; goto out_err; } *dlci = ((frh[0] & 0xfc) << 2); if ((frh[1] & 0x0f) != 0x01) { - LOGP(DLNS, LOGL_NOTICE, "Unknown second FR octet 0x%02x\n", - frh[1]); + LOGBIND(bind, LOGL_NOTICE, "Unknown second FR octet 0x%02x\n", frh[1]); *error = -EIO; goto out_err; } @@ -430,13 +424,12 @@ struct msgb *reject; uint16_t dlci; - msg = read_nsfrgre_msg(bfd, &rc, &saddr, &dlci); + msg = read_nsfrgre_msg(bfd, &rc, &saddr, &dlci, bind); if (!msg) return rc; if (dlci == 0 || dlci == 1023) { - LOGP(DLNS, LOGL_INFO, "Received FR on LMI DLCI %u - ignoring\n", - dlci); + LOGBIND(bind, LOGL_INFO, "Received FR on LMI DLCI %u - ignoring\n", dlci); rc = 0; goto out; } @@ -603,8 +596,7 @@ rc = setsockopt(priv->fd.fd, IPPROTO_IP, IP_TOS, &dscp, sizeof(dscp)); if (rc < 0) - LOGP(DLNS, LOGL_ERROR, - "Failed to set the DSCP to %d with ret(%d) errno(%d)\n", + LOGBIND(bind, LOGL_ERROR, "Failed to set the DSCP to %d with ret(%d) errno(%d)\n", dscp, rc, errno); } diff --git a/src/gb/gprs_ns2_internal.h b/src/gb/gprs_ns2_internal.h index 6cd2ea1..48d6753 100644 --- a/src/gb/gprs_ns2_internal.h +++ b/src/gb/gprs_ns2_internal.h @@ -8,6 +8,24 @@ #include #include +#define LOGNSE(nse, lvl, fmt, args ...) \ + LOGP(DLNS, lvl, "NSE(%05u) " fmt, (nse)->nsei, ## args) + +#define LOGBIND(bind, lvl, fmt, args ...) \ + LOGP(DLNS, lvl, "BIND(%s) " fmt, (bind)->name, ## args) + + +#define LOGNSVC(nsvc, lvl, fmt, args ...) \ + do { \ + if ((nsvc)->nsvci_is_valid) { \ + LOGP(DLNS, lvl, "NSE(%05u)-NSVC(%05u) " fmt, \ + (nsvc)->nse->nsei, (nsvc)->nsvci, ## args); \ + } else { \ + LOGP(DLNS, lvl, "NSE(%05u)-NSVC(none) " fmt, \ + (nsvc)->nse->nsei, ## args); \ + } \ + } while (0) + struct osmo_fsm_inst; struct tlv_parsed; struct vty; diff --git a/src/gb/gprs_ns2_message.c b/src/gb/gprs_ns2_message.c index 6c7f08f..470ab8f 100644 --- a/src/gb/gprs_ns2_message.c +++ b/src/gb/gprs_ns2_message.c @@ -43,8 +43,7 @@ do { \ if (!nsvc->nse->bss_sns_fi) \ break; \ - LOGP(DLNS, LOGL_DEBUG, "NSEI=%u Rx invalid packet %s with SNS\n", \ - nsvc->nse->nsei, reason); \ + LOGNSVC(nsvc, LOGL_DEBUG, "invalid packet %s with SNS\n", reason); \ } while (0) enum ns_ctr { @@ -223,8 +222,7 @@ if (!msg) return -ENOMEM; - LOGP(DLNS, LOGL_INFO, "NSEI=%u Tx NS BLOCK (NSVCI=%u, cause=%s)\n", - nsvc->nse->nsei, nsvc->nsvci, gprs_ns2_cause_str(cause)); + LOGNSVC(nsvc, LOGL_INFO, "Tx NS BLOCK (cause=%s)\n", gprs_ns2_cause_str(cause)); rate_ctr_inc(&nsvc->ctrg->ctr[NS_CTR_BLOCKED]); @@ -256,7 +254,7 @@ if (!msg) return -ENOMEM; - LOGP(DLNS, LOGL_INFO, "NSEI=%u Tx NS BLOCK ACK (NSVCI=%u)\n", nsvc->nse->nsei, nsvc->nsvci); + LOGNSVC(nsvc, LOGL_INFO, "Tx NS BLOCK ACK\n"); /* be conservative and mark it as blocked even now! */ msg->l2h = msgb_put(msg, sizeof(*nsh)); @@ -288,8 +286,7 @@ if (!msg) return -ENOMEM; - LOGP(DLNS, LOGL_INFO, "NSEI=%u Tx NS RESET (NSVCI=%u, cause=%s)\n", - nsvc->nse->nsei, nsvc->nsvci, gprs_ns2_cause_str(cause)); + LOGNSVC(nsvc, LOGL_INFO, "Tx NS RESET (cause=%s)\n", gprs_ns2_cause_str(cause)); msg->l2h = msgb_put(msg, sizeof(*nsh)); nsh = (struct gprs_ns_hdr *) msg->l2h; @@ -329,8 +326,7 @@ nsh->pdu_type = NS_PDUT_RESET_ACK; - LOGP(DLNS, LOGL_INFO, "NSEI=%u Tx NS RESET ACK (NSVCI=%u)\n", - nsvc->nse->nsei, nsvc->nsvci); + LOGNSVC(nsvc, LOGL_INFO, "Tx NS RESET ACK\n"); msgb_tvlv_put(msg, NS_IE_VCI, 2, (uint8_t *)&nsvci); msgb_tvlv_put(msg, NS_IE_NSEI, 2, (uint8_t *)&nsei); @@ -348,8 +344,7 @@ ERR_IF_NSVC_USES_SNS(nsvc, "transmit NS UNBLOCK"); - LOGP(DLNS, LOGL_INFO, "NSEI=%u Tx NS UNBLOCK (NSVCI=%u)\n", - nsvc->nse->nsei, nsvc->nsvci); + LOGNSVC(nsvc, LOGL_INFO, "Tx NS UNBLOCK\n"); return ns2_tx_simple(nsvc, NS_PDUT_UNBLOCK); } @@ -365,8 +360,7 @@ ERR_IF_NSVC_USES_SNS(nsvc, "transmit NS UNBLOCK ACK"); - LOGP(DLNS, LOGL_INFO, "NSEI=%u Tx NS UNBLOCK (NSVCI=%u)\n", - nsvc->nse->nsei, nsvc->nsvci); + LOGNSVC(nsvc, LOGL_INFO, "Tx NS UNBLOCK_ACK\n"); return ns2_tx_simple(nsvc, NS_PDUT_UNBLOCK_ACK); } @@ -378,8 +372,7 @@ { log_set_context(LOG_CTX_GB_NSE, nsvc->nse); log_set_context(LOG_CTX_GB_NSVC, nsvc); - LOGP(DLNS, LOGL_DEBUG, "NSEI=%u Tx NS ALIVE (NSVCI=%u)\n", - nsvc->nse->nsei, nsvc->nsvci); + LOGNSVC(nsvc, LOGL_DEBUG, "Tx NS ALIVE\n"); return ns2_tx_simple(nsvc, NS_PDUT_ALIVE); } @@ -391,8 +384,7 @@ { log_set_context(LOG_CTX_GB_NSE, nsvc->nse); log_set_context(LOG_CTX_GB_NSVC, nsvc); - LOGP(DLNS, LOGL_DEBUG, "NSEI=%u Tx NS ALIVE_ACK (NSVCI=%u)\n", - nsvc->nse->nsei, nsvc->nsvci); + LOGNSVC(nsvc, LOGL_DEBUG, "Tx NS ALIVE_ACK\n"); return ns2_tx_simple(nsvc, NS_PDUT_ALIVE_ACK); } @@ -415,7 +407,7 @@ msg->l2h = msgb_push(msg, sizeof(*nsh) + 3); nsh = (struct gprs_ns_hdr *) msg->l2h; if (!nsh) { - LOGP(DLNS, LOGL_ERROR, "Not enough headroom for NS header\n"); + LOGNSVC(nsvc, LOGL_ERROR, "Not enough headroom for NS header\n"); msgb_free(msg); return -EIO; } @@ -449,8 +441,7 @@ if (!msg) return -ENOMEM; - LOGP(DLNS, LOGL_NOTICE, "NSEI=%u Tx NS STATUS (NSVCI=%u, cause=%s)\n", - nsvc->nse->nsei, nsvc->nsvci, gprs_ns2_cause_str(cause)); + LOGNSVC(nsvc, LOGL_NOTICE, "Tx NS STATUS (cause=%s)\n", gprs_ns2_cause_str(cause)); msg->l2h = msgb_put(msg, sizeof(*nsh)); nsh = (struct gprs_ns_hdr *) msg->l2h; @@ -513,8 +504,7 @@ return -ENOMEM; if (!nsvc->nse->bss_sns_fi) { - LOGP(DLNS, LOGL_ERROR, "NSEI=%u Cannot transmit SNS on NSVC without SNS active\n", - nsvc->nse->nsei); + LOGNSVC(nsvc, LOGL_ERROR, "Cannot transmit SNS on NSVC without SNS active\n"); msgb_free(msg); return -EIO; } @@ -572,8 +562,7 @@ return -ENOMEM; if (!nsvc->nse->bss_sns_fi) { - LOGP(DLNS, LOGL_ERROR, "NSEI=%u Cannot transmit SNS on NSVC without SNS active\n", - nsvc->nse->nsei); + LOGNSVC(nsvc, LOGL_ERROR, "Cannot transmit SNS on NSVC without SNS active\n"); msgb_free(msg); return -EIO; } @@ -621,8 +610,7 @@ return -ENOMEM; if (!nsvc->nse->bss_sns_fi) { - LOGP(DLNS, LOGL_ERROR, "NSEI=%u Cannot transmit SNS on NSVC without SNS active\n", - nsvc->nse->nsei); + LOGNSVC(nsvc, LOGL_ERROR, "Cannot transmit SNS on NSVC without SNS active\n"); msgb_free(msg); return -EIO; } @@ -667,8 +655,7 @@ return -ENOMEM; if (!nsvc->nse->bss_sns_fi) { - LOGP(DLNS, LOGL_ERROR, "NSEI=%u Cannot transmit SNS on NSVC without SNS active\n", - nsvc->nse->nsei); + LOGNSVC(nsvc, LOGL_ERROR, "Cannot transmit SNS on NSVC without SNS active\n"); msgb_free(msg); return -EIO; } @@ -707,8 +694,7 @@ return -ENOMEM; if (!nsvc->nse->bss_sns_fi) { - LOGP(DLNS, LOGL_ERROR, "NSEI=%u Cannot transmit SNS on NSVC without SNS active\n", - nsvc->nse->nsei); + LOGNSVC(nsvc, LOGL_ERROR, "Cannot transmit SNS on NSVC without SNS active\n"); msgb_free(msg); return -EIO; } diff --git a/src/gb/gprs_ns2_sns.c b/src/gb/gprs_ns2_sns.c index 72e4ea7..90d97b6 100644 --- a/src/gb/gprs_ns2_sns.c +++ b/src/gb/gprs_ns2_sns.c @@ -1447,17 +1447,17 @@ struct osmo_fsm_inst *fi; if (!nse->bss_sns_fi) { - LOGP(DLNS, LOGL_NOTICE, "NSEI=%u Rx %s for NS Instance that has no SNS!\n", - nsvc->nse->nsei, get_value_string(gprs_ns_pdu_strings, nsh->pdu_type)); + LOGNSVC(nsvc, LOGL_NOTICE, "Rx %s for NS Instance that has no SNS!\n", + get_value_string(gprs_ns_pdu_strings, nsh->pdu_type)); return -EINVAL; } - LOGP(DLNS, LOGL_DEBUG, "NSEI=%u Rx SNS PDU type %s\n", nsei, - get_value_string(gprs_ns_pdu_strings, nsh->pdu_type)); - /* FIXME: how to resolve SNS FSM Instance by NSEI (SGSN)? */ fi = nse->bss_sns_fi; + LOGPFSML(fi, LOGL_DEBUG, "NSEI=%u Rx SNS PDU type %s\n", nsei, + get_value_string(gprs_ns_pdu_strings, nsh->pdu_type)); + switch (nsh->pdu_type) { case SNS_PDUT_SIZE: osmo_fsm_inst_dispatch(fi, GPRS_SNS_EV_SIZE, tp); @@ -1484,12 +1484,12 @@ osmo_fsm_inst_dispatch(fi, GPRS_SNS_EV_CHANGE_WEIGHT, tp); break; case SNS_PDUT_ACK: - LOGP(DLNS, LOGL_NOTICE, "NSEI=%u Rx unsupported SNS PDU type %s\n", nsei, - get_value_string(gprs_ns_pdu_strings, nsh->pdu_type)); + LOGPFSML(fi, LOGL_NOTICE, "NSEI=%u Rx unsupported SNS PDU type %s\n", nsei, + get_value_string(gprs_ns_pdu_strings, nsh->pdu_type)); break; default: - LOGP(DLNS, LOGL_ERROR, "NSEI=%u Rx unknown SNS PDU type %s\n", nsei, - get_value_string(gprs_ns_pdu_strings, nsh->pdu_type)); + LOGPFSML(fi, LOGL_ERROR, "NSEI=%u Rx unknown SNS PDU type %s\n", nsei, + get_value_string(gprs_ns_pdu_strings, nsh->pdu_type)); return -EINVAL; } @@ -1663,7 +1663,7 @@ /* gprs_ns2_free_nsvcs() will trigger GPRS_SNS_EV_NO_NSVC on the last NS-VC * and restart SNS SIZE procedure which selects a new initial */ - LOGP(DLNS, LOGL_INFO, "Current in-use SNS endpoint is being removed." + LOGNSE(nse, LOGL_INFO, "Current in-use SNS endpoint is being removed." "Closing all NS-VC and restart SNS-SIZE procedure" "with a remaining SNS endpoint.\n"); diff --git a/src/gb/gprs_ns2_udp.c b/src/gb/gprs_ns2_udp.c index 2a335c1..8bfa184 100644 --- a/src/gb/gprs_ns2_udp.c +++ b/src/gb/gprs_ns2_udp.c @@ -168,8 +168,8 @@ } /* Read a single NS-over-IP message */ -static struct msgb *read_nsip_msg(struct osmo_fd *bfd, int *error, - struct osmo_sockaddr *saddr) +static struct msgb *read_nsip_msg(struct osmo_fd *bfd, int *error, struct osmo_sockaddr *saddr, + const struct gprs_ns2_vc_bind *bind) { struct msgb *msg = gprs_ns2_msgb_alloc(); int ret = 0; @@ -183,8 +183,8 @@ ret = recvfrom(bfd->fd, msg->data, NS_ALLOC_SIZE - NS_ALLOC_HEADROOM, 0, &saddr->u.sa, &saddr_len); if (ret < 0) { - LOGP(DLNS, LOGL_ERROR, "recv error %s during NSIP recvfrom %s\n", - strerror(errno), osmo_sock_get_name2(bfd->fd)); + LOGBIND(bind, LOGL_ERROR, "recv error %s during NSIP recvfrom %s\n", + strerror(errno), osmo_sock_get_name2(bfd->fd)); msgb_free(msg); *error = ret; return NULL; @@ -219,7 +219,7 @@ struct gprs_ns2_vc_bind *bind = bfd->data; struct osmo_sockaddr saddr; struct gprs_ns2_vc *nsvc; - struct msgb *msg = read_nsip_msg(bfd, &error, &saddr); + struct msgb *msg = read_nsip_msg(bfd, &error, &saddr, bind); struct msgb *reject; if (!msg) @@ -378,8 +378,7 @@ rc = setsockopt(priv->fd.fd, IPPROTO_IP, IP_TOS, &dscp, sizeof(dscp)); if (rc < 0) - LOGP(DLNS, LOGL_ERROR, - "Failed to set the DSCP to %d with ret(%d) errno(%d)\n", + LOGBIND(bind, LOGL_ERROR, "Failed to set the DSCP to %d with ret(%d) errno(%d)\n", dscp, rc, errno); } @@ -409,8 +408,8 @@ vc_mode = gprs_ns2_dialect_to_vc_mode(nse->dialect); if ((int) vc_mode == -1) { - LOGP(DLNS, LOGL_ERROR, "Can not derive vc mode from dialect %d. Maybe libosmocore is too old.\n", - nse->dialect); + LOGNSE(nse, LOGL_ERROR, "Can not derive vc mode from dialect %d. Maybe libosmocore is too old.\n", + nse->dialect); return NULL; } @@ -528,10 +527,10 @@ rc = setsockopt(priv->fd.fd, IPPROTO_IP, IP_TOS, &dscp, sizeof(dscp)); - if (rc < 0) - LOGP(DLNS, LOGL_ERROR, - "Failed to set the DSCP to %d with ret(%d) errno(%d)\n", - dscp, rc, errno); + if (rc < 0) { + LOGBIND(bind, LOGL_ERROR, "Failed to set the DSCP to %d with ret(%d) errno(%d)\n", + dscp, rc, errno); + } } return rc; diff --git a/src/gb/gprs_ns2_vc_fsm.c b/src/gb/gprs_ns2_vc_fsm.c index 641fcc3..8b9d265 100644 --- a/src/gb/gprs_ns2_vc_fsm.c +++ b/src/gb/gprs_ns2_vc_fsm.c @@ -707,8 +707,8 @@ osmo_fsm_inst_dispatch(fi, GPRS_NS2_EV_UNITDATA, msg); return 0; default: - LOGP(DLNS, LOGL_ERROR, "NSEI=%u Rx unknown NS PDU type %s\n", nsvc->nse->nsei, - get_value_string(gprs_ns_pdu_strings, nsh->pdu_type)); + LOGPFSML(fi, LOGL_ERROR, "NSEI=%u Rx unknown NS PDU type %s\n", nsvc->nse->nsei, + get_value_string(gprs_ns_pdu_strings, nsh->pdu_type)); return -EINVAL; } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22337 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I946c0e77686d91efc5afb62031e1ac1033a9a586 Gerrit-Change-Number: 22337 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 14:01:13 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 20 Jan 2021 14:01:13 +0000 Subject: Change in osmo-pcu[master]: WIP: Introduce NACC support References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22338 ) Change subject: WIP: Introduce NACC support ...................................................................... WIP: Introduce NACC support Change-Id: Ife6e4a086d58d49676d12b6984f63079ec472e79 --- M configure.ac M src/Makefile.am M src/bts.cpp M src/bts.h M src/encoding.cpp M src/encoding.h M src/gprs_bssgp_pcu.c M src/gprs_debug.cpp M src/gprs_debug.h M src/gprs_ms.c M src/gprs_ms.h M src/gprs_pcu.c M src/gprs_pcu.h M src/gprs_rlcmac_sched.cpp A src/nacc_fsm.c A src/nacc_fsm.h M src/pcu_vty.c M src/pdch.cpp M src/pdch.h M src/tbf.cpp M src/tbf.h M tests/Makefile.am 22 files changed, 826 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/38/22338/1 diff --git a/configure.ac b/configure.ac index 2e99a15..11de328 100644 --- a/configure.ac +++ b/configure.ac @@ -84,6 +84,7 @@ dnl checks for libraries PKG_CHECK_MODULES(LIBOSMOCORE, libosmocore >= 1.4.0) PKG_CHECK_MODULES(LIBOSMOVTY, libosmovty >= 1.4.0) +PKG_CHECK_MODULES(LIBOSMOCTRL, libosmoctrl >= 1.4.0) PKG_CHECK_MODULES(LIBOSMOGSM, libosmogsm >= 1.4.0) PKG_CHECK_MODULES(LIBOSMOGB, libosmogb >= 1.4.0) diff --git a/src/Makefile.am b/src/Makefile.am index de924a6..2228aee 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -19,7 +19,7 @@ # AUTOMAKE_OPTIONS = subdir-objects -AM_CPPFLAGS = -I$(top_srcdir)/include $(STD_DEFINES_AND_INCLUDES) $(LIBOSMOCORE_CFLAGS) $(LIBOSMOGB_CFLAGS) $(LIBOSMOGSM_CFLAGS) +AM_CPPFLAGS = -I$(top_srcdir)/include $(STD_DEFINES_AND_INCLUDES) $(LIBOSMOCORE_CFLAGS) $(LIBOSMOGB_CFLAGS) $(LIBOSMOCTRL_CFLAGS) $(LIBOSMOGSM_CFLAGS) if ENABLE_SYSMODSP AM_CPPFLAGS += -DENABLE_DIRECT_PHY @@ -54,6 +54,7 @@ pcu_vty.c \ pcu_vty_functions.cpp \ mslot_class.c \ + nacc_fsm.c \ tbf.cpp \ tbf_ul.cpp \ tbf_dl.cpp \ @@ -89,6 +90,7 @@ pcu_vty.h \ pcu_vty_functions.h \ mslot_class.h \ + nacc_fsm.h \ tbf.h \ tbf_ul.h \ tbf_dl.h \ @@ -141,6 +143,7 @@ libgprs.la \ $(LIBOSMOGB_LIBS) \ $(LIBOSMOCORE_LIBS) \ + $(LIBOSMOCTRL_LIBS) \ $(LIBOSMOGSM_LIBS) \ $(COMMON_LA) endif @@ -189,6 +192,7 @@ libgprs.la \ $(LIBOSMOGB_LIBS) \ $(LIBOSMOCORE_LIBS) \ + $(LIBOSMOCTRL_LIBS) \ $(LIBOSMOGSM_LIBS) \ $(COMMON_LA) diff --git a/src/bts.cpp b/src/bts.cpp index b5bb3a2..eb4bdd9 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -140,6 +140,9 @@ { "pkt:ul_assignment", "Packet UL Assignment "}, { "pkt:access_reject", "Packet Access Reject "}, { "pkt:dl_assignment", "Packet DL Assignment "}, + { "pkt:cell_chg_notification", "Packet Cell Change Notification"}, + { "pkt:cell_chg_continue", "Packet Cell Change Continue"}, + { "pkt:neigh_cell_data", "Packet Neighbour Cell Data"}, { "ul:control", "UL control Block "}, { "ul:assignment_poll_timeout", "UL Assign Timeout "}, { "ul:assignment_failed", "UL Assign Failed "}, diff --git a/src/bts.h b/src/bts.h index 7f437e3..cf16e66 100644 --- a/src/bts.h +++ b/src/bts.h @@ -2,6 +2,7 @@ * * Copyright (C) 2012 Ivan Klyuchnikov * Copyright (C) 2013 by Holger Hans Peter Freyther + * Copyright (C) 2021 by sysmocom - s.f.m.c. GmbH PAYLOAD_TYPE = 0x1; // RLC/MAC control block that does not include the optional octets of the RLC/MAC control header + block->RRBP = 0; // 0: N+13 + block->SP = 0; // RRBP field is valid + block->USF = 0x0; // Uplink state flag + + block->u.Packet_Neighbour_Cell_Data.MESSAGE_TYPE = MT_PACKET_NEIGHBOUR_CELL_DATA; + block->u.Packet_Neighbour_Cell_Data.PAGE_MODE = 0x0; // Normal Paging + + block->u.Packet_Neighbour_Cell_Data.Global_TFI.UnionType = tfi_is_dl; // 0=UPLINK TFI, 1=DL TFI + if (tfi_is_dl) { + block->u.Packet_Neighbour_Cell_Data.Global_TFI.u.DOWNLINK_TFI = tfi; + } else { + block->u.Packet_Neighbour_Cell_Data.Global_TFI.u.UPLINK_TFI = tfi; + } + block->u.Packet_Neighbour_Cell_Data.CONTAINER_ID = container_id; + block->u.Packet_Neighbour_Cell_Data.spare = 0; + block->u.Packet_Neighbour_Cell_Data.CONTAINER_INDEX = container_idx; + block->u.Packet_Neighbour_Cell_Data.Container = *container; +} + +void write_packet_cell_change_continue(RlcMacDownlink_t *block, + bool tfi_is_dl, uint8_t tfi, bool exist_id, + uint16_t arfcn, uint8_t bsic, uint8_t container_id) +{ + + block->PAYLOAD_TYPE = 0x1; // RLC/MAC control block that does not include the optional octets of the RLC/MAC control header + block->RRBP = 0; // 0: N+13 + block->SP = 0; // RRBP field is valid + block->USF = 0x0; // Uplink state flag + + block->u.Packet_Cell_Change_Continue.MESSAGE_TYPE = MT_PACKET_CELL_CHANGE_CONTINUE; + block->u.Packet_Cell_Change_Continue.PAGE_MODE = 0x0; // Normal Paging + + block->u.Packet_Cell_Change_Continue.Global_TFI.UnionType = tfi_is_dl; // 0=UPLINK TFI, 1=DL TFI + if (tfi_is_dl) { + block->u.Packet_Cell_Change_Continue.Global_TFI.u.DOWNLINK_TFI = tfi; + } else { + block->u.Packet_Cell_Change_Continue.Global_TFI.u.UPLINK_TFI = tfi; + } + + block->u.Packet_Cell_Change_Continue.Exist_ID = exist_id; + if (exist_id) { + block->u.Packet_Cell_Change_Continue.ARFCN = arfcn; + block->u.Packet_Cell_Change_Continue.BSIC = bsic; + } + block->u.Packet_Cell_Change_Continue.CONTAINER_ID = container_id; +} diff --git a/src/encoding.h b/src/encoding.h index da63a61..4ebfa35 100644 --- a/src/encoding.h +++ b/src/encoding.h @@ -22,17 +22,22 @@ #include +#ifdef __cplusplus extern "C" { +#endif #include #include "coding_scheme.h" #include "gsm_rlcmac.h" +#ifdef __cplusplus } +#endif struct gprs_rlcmac_tbf; struct bitvec; struct gprs_llc; struct gprs_rlc_data_block_info; +#ifdef __cplusplus /** * I help with encoding data into CSN1 messages. * TODO: Nobody can remember a function signature like this. One should @@ -108,3 +113,21 @@ const struct gprs_rlc_data_block_info *rdbi, int *offset, int *num_chunks, uint8_t *data_block); }; + +#endif /* ifdef __cplusplus */ + +#ifdef __cplusplus +extern "C" { +#endif + +void write_packet_neighbour_cell_data(RlcMacDownlink_t *block, + bool tfi_is_dl, uint8_t tfi, uint8_t container_id, + uint8_t container_idx, PNCDContainer_t *container); + +void write_packet_cell_change_continue(RlcMacDownlink_t *block, + bool tfi_is_dl, uint8_t tfi, bool exist_id, + uint16_t arfcn, uint8_t bsic, uint8_t container_id); + +#ifdef __cplusplus +} +#endif diff --git a/src/gprs_bssgp_pcu.c b/src/gprs_bssgp_pcu.c index 956fb66..9c05639 100644 --- a/src/gprs_bssgp_pcu.c +++ b/src/gprs_bssgp_pcu.c @@ -419,10 +419,22 @@ int rc = 0; struct bssgp_bvc_ctx *bctx; - if (pdu_type == BSSGP_PDUT_STATUS) + switch (pdu_type) { + case BSSGP_PDUT_STATUS: /* Pass the message to the generic BSSGP parser, which handles * STATUS and RESET messages in either direction. */ + case BSSGP_PDUT_RAN_INFO: + case BSSGP_PDUT_RAN_INFO_REQ: + case BSSGP_PDUT_RAN_INFO_ACK: + case BSSGP_PDUT_RAN_INFO_ERROR: + case BSSGP_PDUT_RAN_INFO_APP_ERROR: + /* Also pass all RIM related messages to the generic BSSGP + * parser so that it can deliver primitive to the RIM SAP + * (SAP_BSSGP_RIM) */ return bssgp_rcvmsg(msg); + default: + break; + } /* Identifiers from DOWN: NSEI, BVCI (both in msg->cb) */ @@ -542,6 +554,15 @@ } } +static void handle_rim(struct osmo_bssgp_prim *bp) +{ + /* TODO: handle RIM messages here. for RAN-INFORMATION answer, we + somehow need to match the RAN-INFORMATION-REQUEST that triggered it, + or feed it to all active FSMs and see if that matches internally and + can go forward. That's probably the best: fill into a cache and then + signal all existing NACC FSMs. */ +} + int bssgp_prim_cb(struct osmo_prim_hdr *oph, void *ctx) { struct osmo_bssgp_prim *bp; @@ -551,6 +572,8 @@ case SAP_BSSGP_NM: if (oph->primitive == PRIM_NM_STATUS) handle_nm_status(bp); + case SAP_BSSGP_RIM: + handle_rim(bp); break; default: break; diff --git a/src/gprs_debug.cpp b/src/gprs_debug.cpp index a790e3f..1cefa9b 100644 --- a/src/gprs_debug.cpp +++ b/src/gprs_debug.cpp @@ -119,6 +119,13 @@ .loglevel = LOGL_NOTICE, .enabled = 1, }, + [DNACC] = { + .name = "DNACC", + .color = "\033[1;37m", + .description = "Network Assisted Cell Change (NACC)", + .loglevel = LOGL_NOTICE, + .enabled = 1, + }, }; static int filter_fn(const struct log_context *ctx, diff --git a/src/gprs_debug.h b/src/gprs_debug.h index 84a0a07..23ea44d 100644 --- a/src/gprs_debug.h +++ b/src/gprs_debug.h @@ -46,6 +46,7 @@ DTBFUL, DNS, DPCU, + DNACC, aDebug_LastEntry }; diff --git a/src/gprs_ms.c b/src/gprs_ms.c index ea497a3..5d7afa1 100644 --- a/src/gprs_ms.c +++ b/src/gprs_ms.c @@ -26,6 +26,7 @@ #include "gprs_debug.h" #include "gprs_codel.h" #include "pcu_utils.h" +#include "nacc_fsm.h" #include @@ -902,3 +903,36 @@ return NULL; } + +int ms_nacc_start(struct GprsMs *ms, Packet_Cell_Change_Notification_t *notif) +{ + if (!ms->nacc) + ms->nacc = nacc_fsm_alloc(ms); + if (!ms->nacc) + return -EINVAL; + return osmo_fsm_inst_dispatch(ms->nacc->fi, NACC_EV_CELL_CHG_NOTIFICATION, notif); +} + +bool ms_nacc_rts(const struct GprsMs *ms) +{ + if (!ms->nacc) + return false; + if (ms->nacc->fi->state == NACC_ST_TX_NEIGHBOUR_DATA || + ms->nacc->fi->state == NACC_ST_TX_CELL_CHG_CONTINUE) + return true; + return false; +} + +struct msgb *ms_nacc_create_rlcmac_msg(struct GprsMs *ms, struct gprs_rlcmac_tbf *tbf) +{ + int rc; + struct nacc_ev_create_rlcmac_msg_ctx data_ctx; + + data_ctx.tbf = tbf; + data_ctx.msg = NULL; + + rc = osmo_fsm_inst_dispatch(ms->nacc->fi, NACC_EV_CREATE_RLCMAC_MSG, &data_ctx); + if (rc != 0 || !data_ctx.msg) + return NULL; + return data_ctx.msg; +} diff --git a/src/gprs_ms.h b/src/gprs_ms.h index 12809f1..6587231 100644 --- a/src/gprs_ms.h +++ b/src/gprs_ms.h @@ -40,6 +40,7 @@ #include #include "coding_scheme.h" +#include #include #include @@ -100,6 +101,7 @@ enum mcs_kind mode; struct rate_ctr_group *ctrs; + struct nacc_fsm_ctx *nacc; }; struct GprsMs *ms_alloc(struct gprs_rlcmac_bts *bts, uint32_t tlli); @@ -140,6 +142,10 @@ void ms_set_callback(struct GprsMs *ms, struct gpr_ms_callback *cb); +int ms_nacc_start(struct GprsMs *ms, Packet_Cell_Change_Notification_t *notif); +bool ms_nacc_rts(const struct GprsMs *ms); +struct msgb *ms_nacc_create_rlcmac_msg(struct GprsMs *ms, struct gprs_rlcmac_tbf *tbf); + static inline bool ms_is_idle(const struct GprsMs *ms) { return !ms->ul_tbf && !ms->dl_tbf && !ms->ref && llist_empty(&ms->old_tbfs); diff --git a/src/gprs_pcu.c b/src/gprs_pcu.c index d291e71..19fbf7d 100644 --- a/src/gprs_pcu.c +++ b/src/gprs_pcu.c @@ -22,6 +22,7 @@ #include #include +#include #include "gprs_pcu.h" #include "bts.h" @@ -97,6 +98,8 @@ pcu->vty.ws_pdch = 0; pcu->vty.llc_codel_interval_msec = LLC_CODEL_USE_DEFAULT; pcu->vty.llc_idle_ack_csec = 10; + pcu->vty.neigh_ctrl_addr = talloc_strdup(pcu, "127.0.0.1"); + pcu->vty.neigh_ctrl_port = OSMO_CTRL_PORT_BSC_NEIGH; pcu->T_defs = T_defs_pcu; osmo_tdefs_reset(pcu->T_defs); diff --git a/src/gprs_pcu.h b/src/gprs_pcu.h index 058d102..f9f9893 100644 --- a/src/gprs_pcu.h +++ b/src/gprs_pcu.h @@ -102,6 +102,9 @@ uint32_t llc_discard_csec; uint32_t llc_idle_ack_csec; uint32_t llc_codel_interval_msec; /* 0=disabled, -1=use default interval */ + /* Remote BSS resolution sevice (CTRL iface) */ + char *neigh_ctrl_addr; + uint16_t neigh_ctrl_port; } vty; struct gsmtap_inst *gsmtap; diff --git a/src/gprs_rlcmac_sched.cpp b/src/gprs_rlcmac_sched.cpp index 5640158..66e9c6b 100644 --- a/src/gprs_rlcmac_sched.cpp +++ b/src/gprs_rlcmac_sched.cpp @@ -38,6 +38,7 @@ struct gprs_rlcmac_tbf *poll; struct gprs_rlcmac_tbf *ul_ass; struct gprs_rlcmac_tbf *dl_ass; + struct gprs_rlcmac_tbf *nacc; struct gprs_rlcmac_ul_tbf *ul_ack; }; @@ -71,6 +72,9 @@ if (ul_tbf->ul_ass_state_is(GPRS_RLCMAC_UL_ASS_SEND_ASS) || ul_tbf->ul_ass_state_is(GPRS_RLCMAC_UL_ASS_SEND_ASS_REJ)) tbf_cand->ul_ass = ul_tbf; + /* NACC ready to send */ + if (ms_nacc_rts(ul_tbf->ms())) + tbf_cand->nacc = ul_tbf; /* FIXME: Is this supposed to be fair? The last TBF for each wins? Maybe use llist_add_tail and skip once we have all states? */ } @@ -88,6 +92,9 @@ if (dl_tbf->ul_ass_state_is(GPRS_RLCMAC_UL_ASS_SEND_ASS) || dl_tbf->ul_ass_state_is(GPRS_RLCMAC_UL_ASS_SEND_ASS_REJ)) tbf_cand->ul_ass = dl_tbf; + /* NACC ready to send */ + if (ms_nacc_rts(dl_tbf->ms())) + tbf_cand->nacc = dl_tbf; } return poll_fn; @@ -166,7 +173,8 @@ struct gprs_rlcmac_tbf *tbf = NULL; struct gprs_rlcmac_tbf *next_list[] = { tbfs->ul_ass, tbfs->dl_ass, - tbfs->ul_ack }; + tbfs->ul_ack, + tbfs->nacc }; /* Send Packet Application Information first (ETWS primary notifications) */ msg = sched_app_info(tbfs->dl_ass); @@ -194,6 +202,9 @@ msg = tbfs->dl_ass->create_dl_ass(fn, ts); else if (tbf == tbfs->ul_ack) msg = tbfs->ul_ack->create_ul_ack(fn, ts); + else if (tbf == tbfs->nacc) { + msg = ms_nacc_create_rlcmac_msg(tbf->ms(), tbf); + } /* else: if tbf/ms is pending to send tx_neigbhourData or tx_CellchangeContinue, send it */ if (!msg) { diff --git a/src/nacc_fsm.c b/src/nacc_fsm.c new file mode 100644 index 0000000..1ae417d --- /dev/null +++ b/src/nacc_fsm.c @@ -0,0 +1,538 @@ +#include + +#include + +#include +#include +#include + +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +#define X(s) (1 << (s)) + +#define nacc_fsm_state_chg(fi, NEXT_STATE) \ + osmo_fsm_inst_state_chg(fi, NEXT_STATE, 0, 0) + +const struct value_string nacc_fsm_event_names[] = { + { NACC_EV_CELL_CHG_NOTIFICATION, "CELL_CHG_NOTIFICATION" }, + { NACC_EV_RX_RESOLVE_RAC_CI, "RX_RESOLVE_RAC_CI" }, + { NACC_EV_SI_INFO_RECEIVED, "SI_INFO_RECEIVED" }, + { NACC_EV_CREATE_RLCMAC_MSG, "CREATE_RLCMAC_MSG" }, + { 0, NULL } +}; + +static struct msgb *create_packet_neighbour_cell_data(struct nacc_fsm_ctx *ctx, struct gprs_rlcmac_tbf *tbf) +{ + struct msgb *msg; + int rc; + RlcMacDownlink_t *mac_control_block; + struct GprsMs *ms = tbf_ms(tbf); + + msg = msgb_alloc(GSM_MACBLOCK_LEN, "neighbour_cell_data"); + if (!msg) + return NULL; + + /* Initialize a bit vector that uses allocated msgb as the data buffer. */ + struct bitvec bv = { + .data = msgb_put(msg, GSM_MACBLOCK_LEN), + .data_len = GSM_MACBLOCK_LEN, + }; + bitvec_unhex(&bv, DUMMY_VEC); + + mac_control_block = (RlcMacDownlink_t *)talloc_zero(ctx->ms, RlcMacDownlink_t); + + OSMO_ASSERT(tbf_is_tfi_assigned(tbf)); + uint8_t tfi_is_dl = tbf_direction(tbf) == GPRS_RLCMAC_DL_TBF; + uint8_t tfi = tbf_tfi(tbf); + uint8_t container_id = 0; /* FIXME: don't hardcode */ + uint8_t container_idx = 0; /* FIXME: don't hardcode */ + PNCDContainer_t container; + memset(&container, 0, sizeof(container)); + container.UnionType = 1; /* with ID */ + container.u.PNCD_Container_With_ID.ARFCN = ctx->req_arfcn; + container.u.PNCD_Container_With_ID.BSIC = ctx->req_bsic; + write_packet_neighbour_cell_data(mac_control_block, + tfi_is_dl, tfi, container_id, + container_idx, &container); + LOGP(DNACC, LOGL_DEBUG, "+++++++++++++++++++++++++ TX : Packet Neighbour Cell Data +++++++++++++++++++++++++\n"); + rc = encode_gsm_rlcmac_downlink(&bv, mac_control_block); + if (rc < 0) { + LOGP(DTBF, LOGL_ERROR, "Encoding of Packet Neighbour Cell Data failed (%d)\n", rc); + goto free_ret; + } + LOGP(DNACC, LOGL_DEBUG, "------------------------- TX : Packet Neighbour Cell Data -------------------------\n"); + rate_ctr_inc(&bts_rate_counters(ms->bts)->ctr[CTR_PKT_NEIGH_CELL_DATA]); + talloc_free(mac_control_block); + return msg; + +free_ret: + talloc_free(mac_control_block); + msgb_free(msg); + return NULL; +} + +static struct msgb *create_packet_cell_chg_continue(struct nacc_fsm_ctx *ctx, struct gprs_rlcmac_tbf *tbf) +{ + struct msgb *msg; + int rc; + RlcMacDownlink_t *mac_control_block; + struct GprsMs *ms = tbf_ms(tbf); + + msg = msgb_alloc(GSM_MACBLOCK_LEN, "pkt_cell_chg_continue"); + if (!msg) + return NULL; + + /* Initialize a bit vector that uses allocated msgb as the data buffer. */ + struct bitvec bv = { + .data = msgb_put(msg, GSM_MACBLOCK_LEN), + .data_len = GSM_MACBLOCK_LEN, + }; + bitvec_unhex(&bv, DUMMY_VEC); + + mac_control_block = (RlcMacDownlink_t *)talloc_zero(ctx->ms, RlcMacDownlink_t); + + OSMO_ASSERT(tbf_is_tfi_assigned(tbf)); + uint8_t tfi_is_dl = tbf_direction(tbf) == GPRS_RLCMAC_DL_TBF; + uint8_t tfi = tbf_tfi(tbf); + uint8_t container_id = 0; /* FIXME: don't hardcode */ + write_packet_cell_change_continue(mac_control_block, tfi_is_dl, tfi, true, + ctx->req_arfcn, ctx->req_bsic, container_id); + LOGP(DNACC, LOGL_DEBUG, "+++++++++++++++++++++++++ TX : Packet Cell Change Continue +++++++++++++++++++++++++\n"); + rc = encode_gsm_rlcmac_downlink(&bv, mac_control_block); + if (rc < 0) { + LOGP(DTBF, LOGL_ERROR, "Encoding of Packet Cell Change Continue failed (%d)\n", rc); + goto free_ret; + } + LOGP(DNACC, LOGL_DEBUG, "------------------------- TX : Packet Cell Change Continue -------------------------\n"); + rate_ctr_inc(&bts_rate_counters(ms->bts)->ctr[CTR_PKT_CELL_CHG_CONTINUE]); + talloc_free(mac_control_block); + return msg; + +free_ret: + talloc_free(mac_control_block); + msgb_free(msg); + return NULL; +} + +static void st_initial(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct nacc_fsm_ctx *ctx = (struct nacc_fsm_ctx *)fi->priv; + Packet_Cell_Change_Notification_t *notif; + + switch (event) { + case NACC_EV_CELL_CHG_NOTIFICATION: + notif = (Packet_Cell_Change_Notification_t *)data; + switch (notif->Target_Cell.UnionType) { + case 0: /* GSM */ + ctx->req_arfcn = notif->Target_Cell.u.Target_Cell_GSM_Notif.ARFCN; + ctx->req_bsic = notif->Target_Cell.u.Target_Cell_GSM_Notif.BSIC; + /* TODO: look up in resolution table whether we already have RAC+CI for ARFCN+BSIC */ + nacc_fsm_state_chg(fi, NACC_ST_WAIT_RESOLVE_RAC_CI); + break; + default: + LOGPFSML(fi, LOGL_NOTICE, "TargetCell type=0x%x not supported\n", + notif->Target_Cell.UnionType); + return; + } + break; + default: + OSMO_ASSERT(0); + } +} + +static void st_wait_resolve_rac_ci_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) +{ + struct nacc_fsm_ctx *ctx = (struct nacc_fsm_ctx *)fi->priv; + struct gprs_rlcmac_bts *bts = ctx->ms->bts; + struct ctrl_cmd *cmd; + int rc; + + cmd = ctrl_cmd_create(ctx, CTRL_TYPE_GET); + if (!cmd) { + LOGPFSML(fi, LOGL_ERROR, "CTRL msg creation failed\n"); + return; + } + + cmd->id = talloc_asprintf(cmd, "1"); + cmd->variable = talloc_asprintf(cmd, "neighbor_resolve_cgi_ps_from_lac_ci.%d.%d.%d.%d", + bts->cgi_ps.rai.lac.lac, bts->cgi_ps.cell_identity, + ctx->req_arfcn, ctx->req_bsic); + //rep->value = 0; + rc = ctrl_cmd_send(&ctx->neigh_ctrl_conn->write_queue, cmd); + if (rc) + LOGPFSML(fi, LOGL_ERROR, "CTRL msg sent failed: %d\n", rc); + talloc_free(cmd); +} + + +static void st_wait_resolve_rac_ci(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + //struct nacc_fsm_ctx *ctx = (struct nacc_fsm_ctx *)fi->priv; + + switch (event) { + case NACC_EV_CELL_CHG_NOTIFICATION: + break; + case NACC_EV_RX_RESOLVE_RAC_CI: + nacc_fsm_state_chg(fi, NACC_ST_WAIT_REQUEST_SI); + break; + default: + OSMO_ASSERT(0); + } +} + +static int fill_rim_ran_info_req(struct nacc_fsm_ctx *ctx, struct bssgp_ran_information_pdu *pdu) +{ + struct gprs_rlcmac_bts *bts = ctx->ms->bts; + + *pdu = (struct bssgp_ran_information_pdu){ + .routing_info_dest = { + .discr = BSSGP_RIM_ROUTING_INFO_GERAN, + .geran = { + .raid = { + .mcc = ctx->cgi_ps.rai.lac.plmn.mcc, + .mnc = ctx->cgi_ps.rai.lac.plmn.mnc, + .mnc_3_digits = ctx->cgi_ps.rai.lac.plmn.mnc_3_digits, + .lac = ctx->cgi_ps.rai.lac.lac, + .rac = ctx->cgi_ps.rai.rac, + }, + .cid = ctx->cgi_ps.cell_identity, + }, + }, + .routing_info_src = { + .discr = BSSGP_RIM_ROUTING_INFO_GERAN, + .geran = { + .raid = { /* TODO: fill properly */ + .mcc = bts->cgi_ps.rai.lac.plmn.mcc, + .mnc = bts->cgi_ps.rai.lac.plmn.mnc, + .mnc_3_digits = bts->cgi_ps.rai.lac.plmn.mnc_3_digits, + .lac = bts->cgi_ps.rai.lac.lac, + .rac = bts->cgi_ps.rai.rac, + }, + .cid = bts->cgi_ps.cell_identity, + }, + }, + .rim_cont_iei = BSSGP_IE_RI_REQ_RIM_CONTAINER, + .decoded_present = true, + .decoded = { + .req_rim_cont = { + .app_id = BSSGP_RAN_INF_APP_ID_NACC, + .seq_num = 1, + .pdu_ind = { + .ack_requested = 0, + .pdu_type_ext = 1, + }, + .prot_ver = 1, + .son_trans_app_id = NULL, + .son_trans_app_id_len = 0, + .u = { + .app_cont_nacc = { + .reprt_cell = ctx->cgi_ps, + }, + }, + }, + }, + }; + + return 0; +} + +/* At this point, we expect correct tgt cell info to be already in ctx->cgi_ps */ +static void st_wait_request_si_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) +{ + struct nacc_fsm_ctx *ctx = (struct nacc_fsm_ctx *)fi->priv; + struct bssgp_ran_information_pdu pdu; + int rc; + + if (fill_rim_ran_info_req(ctx, &pdu) < 0) { + osmo_fsm_inst_term(fi, OSMO_FSM_TERM_ERROR, NULL); + return; + } + + rc = bssgp_tx_rim(&pdu, gprs_ns2_nse_nsei(ctx->ms->bts->nse)); + if (rc < 0) { + LOGPFSML(fi, LOGL_ERROR, "Failed transmitting RIM PDU: %d\n", rc); + osmo_fsm_inst_term(fi, OSMO_FSM_TERM_ERROR, NULL); + return; + } + + osmo_fsm_inst_dispatch(fi, NACC_EV_SI_INFO_RECEIVED, NULL); +} + + +static void st_wait_request_si(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + //struct nacc_fsm_ctx *ctx = (struct nacc_fsm_ctx *)fi->priv; + + switch (event) { + case NACC_EV_SI_INFO_RECEIVED: + /* TODO: In here we'll parse RIM response */ + + /* Tell the PCU scheduler we are ready to go, from here one we + * are polled/driven by the scheduler */ + nacc_fsm_state_chg(fi, NACC_ST_TX_NEIGHBOUR_DATA); + break; + default: + OSMO_ASSERT(0); + } +} + + +static void st_tx_neighbour_data_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) +{ + /* At this point, we already received all required RIM messages or we + have them cached. We now wait for scheduler to ask us to construct + RLCMAC DL CTRL messages to move FSM states forward */ +} + +static void st_tx_neighbour_data(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct nacc_fsm_ctx *ctx = (struct nacc_fsm_ctx *)fi->priv; + struct nacc_ev_create_rlcmac_msg_ctx *data_ctx; + + switch (event) { + case NACC_EV_CREATE_RLCMAC_MSG: + data_ctx = (struct nacc_ev_create_rlcmac_msg_ctx *)data; + data_ctx->msg = create_packet_neighbour_cell_data(ctx, data_ctx->tbf); + /* TODO: logic if no more Neighbour cell data messages need to be send, then: */ + nacc_fsm_state_chg(fi, NACC_ST_TX_CELL_CHG_CONTINUE); + break; + default: + OSMO_ASSERT(0); + } +} + +static void st_cell_cgh_continue_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) +{ + /* At this point, we already sent all Pkt Cell Neighbour Change rlcmac + blocks, and we only need to wait to be scheduled again to send PKT + CELL CHANGE NOTIFICATION */ +} + +static void st_cell_cgh_continue(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct nacc_fsm_ctx *ctx = (struct nacc_fsm_ctx *)fi->priv; + struct nacc_ev_create_rlcmac_msg_ctx *data_ctx; + + switch (event) { + case NACC_EV_CREATE_RLCMAC_MSG: + data_ctx = (struct nacc_ev_create_rlcmac_msg_ctx *)data; + data_ctx->msg = create_packet_cell_chg_continue(ctx, data_ctx->tbf); + /* TODO: logic if no more Neighbour cell data messages need to be send, then: */ + nacc_fsm_state_chg(fi, NACC_ST_DONE); + break; + default: + OSMO_ASSERT(0); + } +} + + +static void st_done_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) +{ + osmo_fsm_inst_term(fi, OSMO_FSM_TERM_REGULAR, NULL); +} + +static void nacc_fsm_cleanup(struct osmo_fsm_inst *fi, enum osmo_fsm_term_cause cause) +{ + struct nacc_fsm_ctx *ctx = (struct nacc_fsm_ctx *)fi->priv; + /* afte rcleanup() finishes, FSM termination calls osmo_fsm_inst_free, + so we need to avoid double-freeing it during ctx talloc free + destructor */ + //talloc_reparent(ctx, ctx->ms, ctx->fi); + ctx->fi = NULL; + + /* remove references from owning MS and free entire ctx */ + ctx->ms->nacc = NULL; + talloc_free(ctx); +} + +static struct osmo_fsm_state nacc_fsm_states[] = { + [NACC_ST_INITIAL] = { + .in_event_mask = + X(NACC_EV_CELL_CHG_NOTIFICATION), + .out_state_mask = + X(NACC_ST_WAIT_RESOLVE_RAC_CI) | + X(NACC_ST_WAIT_REQUEST_SI) | + X(NACC_ST_TX_NEIGHBOUR_DATA), + .name = "INITIAL", + //.onenter = st_initial_on_enter, + .action = st_initial, + }, + [NACC_ST_WAIT_RESOLVE_RAC_CI] = { + .in_event_mask = + X(NACC_EV_RX_RESOLVE_RAC_CI), + .out_state_mask = + X(NACC_ST_WAIT_REQUEST_SI) | + X(NACC_ST_TX_CELL_CHG_CONTINUE), + .name = "WAIT_RESOLVE_RAC_CI", + .onenter = st_wait_resolve_rac_ci_on_enter, + .action = st_wait_resolve_rac_ci, + }, + [NACC_ST_WAIT_REQUEST_SI] = { + .in_event_mask = + X(NACC_EV_CELL_CHG_NOTIFICATION) | + X(NACC_EV_SI_INFO_RECEIVED), + .out_state_mask = + X(NACC_ST_TX_NEIGHBOUR_DATA), + .name = "WAIT_REQUEST_SI", + .onenter = st_wait_request_si_on_enter, + .action = st_wait_request_si, + }, + [NACC_ST_TX_NEIGHBOUR_DATA] = { + .in_event_mask = + X(NACC_EV_CELL_CHG_NOTIFICATION) | + X(NACC_EV_SI_INFO_RECEIVED) | + X(NACC_EV_CREATE_RLCMAC_MSG), + .out_state_mask = + X(NACC_ST_TX_CELL_CHG_CONTINUE), + .name = "TX_NEIGHBOUR_DATA", + .onenter = st_tx_neighbour_data_on_enter, + .action = st_tx_neighbour_data, + }, + [NACC_ST_TX_CELL_CHG_CONTINUE] = { + .in_event_mask = + X(NACC_EV_CELL_CHG_NOTIFICATION) | + X(NACC_EV_SI_INFO_RECEIVED) | + X(NACC_EV_CREATE_RLCMAC_MSG), + .out_state_mask = + X(NACC_ST_DONE), + .name = "TX_CELL_CHG_CONTINUE", + .onenter = st_cell_cgh_continue_on_enter, + .action = st_cell_cgh_continue, + }, + [NACC_ST_DONE] = { + .in_event_mask = 0, + .out_state_mask = 0, + .name = "DONE", + .onenter = st_done_on_enter, + }, +}; + +static struct osmo_fsm nacc_fsm = { + .name = "NACC", + .states = nacc_fsm_states, + .num_states = ARRAY_SIZE(nacc_fsm_states), + .cleanup = nacc_fsm_cleanup, + .log_subsys = DNACC, + .event_names = nacc_fsm_event_names, +}; + +static __attribute__((constructor)) void nacc_fsm_init(void) +{ + OSMO_ASSERT(osmo_fsm_register(&nacc_fsm) == 0); +} + +void nacc_fsm_ctrl_reply_cb(struct ctrl_handle *ctrl, struct ctrl_cmd *cmd, void *data) +{ + struct nacc_fsm_ctx *ctx = (struct nacc_fsm_ctx *)data; + char *tmp = NULL, *tok, *saveptr; + + LOGPFSML(ctx->fi, LOGL_NOTICE, "Received CTRL message: type=%d %s: %s\n", + cmd->type, cmd->variable, osmo_escape_str(cmd->reply, -1)); + + if (cmd->type != CTRL_TYPE_GET_REPLY || !cmd->reply) { + osmo_fsm_inst_term(ctx->fi, OSMO_FSM_TERM_ERROR, NULL); + return; + } + + /* TODO: Potentially validate cmd->variable contains same params as we + sent, and that cmd->id matches the original set. We may want to keep + the original cmd around by setting cmd->defer=1 when sending it. */ + + tmp = talloc_strdup(cmd, cmd->reply); + if (!tmp) + goto free_ret; + + if (!(tok = strtok_r(tmp, "-", &saveptr))) + goto free_ret; + ctx->cgi_ps.rai.lac.plmn.mcc = atoi(tok); + + if (!(tok = strtok_r(NULL, "-", &saveptr))) + goto free_ret; + ctx->cgi_ps.rai.lac.plmn.mnc = atoi(tok); + + if (!(tok = strtok_r(NULL, "-", &saveptr))) + goto free_ret; + ctx->cgi_ps.rai.lac.lac = atoi(tok); + + if (!(tok = strtok_r(NULL, "-", &saveptr))) + goto free_ret; + ctx->cgi_ps.rai.rac = atoi(tok); + + if (!(tok = strtok_r(NULL, "\0", &saveptr))) + goto free_ret; + ctx->cgi_ps.cell_identity = atoi(tok); + + // TODO: cache the cgi_ps so we can avoid requesting again same resolution + + osmo_fsm_inst_dispatch(ctx->fi, NACC_EV_RX_RESOLVE_RAC_CI, NULL); + return; + +free_ret: + talloc_free(tmp); + osmo_fsm_inst_term(ctx->fi, OSMO_FSM_TERM_ERROR, NULL); + return; +} + +static int nacc_fsm_ctx_talloc_destructor(struct nacc_fsm_ctx *ctx) +{ + if (ctx->fi) { + osmo_fsm_inst_free(ctx->fi); + ctx->fi = NULL; + } + + if (ctx->neigh_ctrl_conn) { + if (ctx->neigh_ctrl_conn->write_queue.bfd.fd != -1) { + close(ctx->neigh_ctrl_conn->write_queue.bfd.fd); + ctx->neigh_ctrl_conn->write_queue.bfd.fd = -1; + } + } + + return 0; +} + +struct nacc_fsm_ctx *nacc_fsm_alloc(struct GprsMs* ms) +{ + struct gprs_rlcmac_bts *bts = ms->bts; + struct gprs_pcu *pcu = bts->pcu; + struct nacc_fsm_ctx *ctx = talloc_zero(ms, struct nacc_fsm_ctx); + char buf[64]; + int rc; + + talloc_set_destructor(ctx, nacc_fsm_ctx_talloc_destructor); + + ctx->ms = ms; + + snprintf(buf, sizeof(buf), "TLLI-0x%08x", ms_tlli(ms)); + ctx->fi = osmo_fsm_inst_alloc(&nacc_fsm, ctx, ctx, LOGL_INFO, buf); + if (!ctx->fi) + goto free_ret; + + ctx->neigh_ctrl = ctrl_handle_alloc(ctx, ctx, NULL); + ctx->neigh_ctrl->reply_cb = nacc_fsm_ctrl_reply_cb; + ctx->neigh_ctrl_conn = osmo_ctrl_conn_alloc(ctx, ctx->neigh_ctrl); + if (!ctx->neigh_ctrl_conn) + goto free_ret; + + rc = osmo_sock_init2_ofd(&ctx->neigh_ctrl_conn->write_queue.bfd, AF_UNSPEC, SOCK_STREAM, IPPROTO_TCP, + NULL, 0, pcu->vty.neigh_ctrl_addr, pcu->vty.neigh_ctrl_port, + OSMO_SOCK_F_CONNECT); + if (rc < 0) { + LOGP(DNACC, LOGL_ERROR, "Can't connect to CTRL @ %s:%u\n", + pcu->vty.neigh_ctrl_addr, pcu->vty.neigh_ctrl_port); + goto free_ret; + } + + return ctx; +free_ret: + talloc_free(ctx); + return NULL; +} diff --git a/src/nacc_fsm.h b/src/nacc_fsm.h new file mode 100644 index 0000000..21c22ce --- /dev/null +++ b/src/nacc_fsm.h @@ -0,0 +1,41 @@ +#pragma once + +#include +#include + +struct GprsMs; +struct gprs_rlcmac_tbf; + +enum nacc_fsm_event { + NACC_EV_CELL_CHG_NOTIFICATION, /* data: Packet_Cell_Change_Notification_t* */ + NACC_EV_RX_RESOLVE_RAC_CI, /* data: ctrl msg resp */ + NACC_EV_SI_INFO_RECEIVED, + NACC_EV_CREATE_RLCMAC_MSG, +}; + +enum nacc_fsm_states { + NACC_ST_INITIAL, + NACC_ST_WAIT_RESOLVE_RAC_CI, + NACC_ST_WAIT_REQUEST_SI, + NACC_ST_TX_NEIGHBOUR_DATA, + NACC_ST_TX_CELL_CHG_CONTINUE, + NACC_ST_DONE, +}; + +struct nacc_fsm_ctx { + struct osmo_fsm_inst *fi; + struct GprsMs* ms; /* back pointer */ + struct ctrl_handle *neigh_ctrl; + struct ctrl_connection *neigh_ctrl_conn; + uint16_t req_arfcn; + uint8_t req_bsic; + struct osmo_cell_global_id_ps cgi_ps; /* target SGSN, resolved from req_{arfcn+bsic} */ +}; + +/* passed as data in NACC_EV_CREATE_RLCMAC_MSG */ +struct nacc_ev_create_rlcmac_msg_ctx { + struct gprs_rlcmac_tbf *tbf; /* target tbf to create messages for */ + struct msgb *msg; /* to be filled by FSM duringe event processing */ +}; + +struct nacc_fsm_ctx *nacc_fsm_alloc(struct GprsMs* ms); diff --git a/src/pcu_vty.c b/src/pcu_vty.c index 288f241..b7021c8 100644 --- a/src/pcu_vty.c +++ b/src/pcu_vty.c @@ -14,6 +14,7 @@ #include #include #include +#include #include #include #include "pcu_vty.h" @@ -1018,6 +1019,22 @@ return CMD_SUCCESS; } +DEFUN(cfg_neighbor_resolution, cfg_neighbor_resolution_cmd, + "neighbor resolution " VTY_IPV46_CMD " [<0-65535>]", + "Manage local and remote-BSS neighbor cells\n" + "Connect to Neighbor Resolution Service (CTRL interface) to given ip and port\n" + "IPv4 address to connect to\n" "IPv6 address to connect to\n" + "Port to connect to (default 4248)\n") +{ + osmo_talloc_replace_string(the_pcu, &the_pcu->vty.neigh_ctrl_addr, argv[0]); + if (argc > 1) + the_pcu->vty.neigh_ctrl_port = atoi(argv[1]); + else + the_pcu->vty.neigh_ctrl_port = OSMO_CTRL_PORT_BSC_NEIGH; + return CMD_SUCCESS; +} + + DEFUN(show_bts_timer, show_bts_timer_cmd, "show bts-timer " OSMO_TDEF_VTY_ARG_T_OPTIONAL, SHOW_STR "Show BTS controlled timers\n" @@ -1220,6 +1237,7 @@ install_element(PCU_NODE, &cfg_pcu_no_gsmtap_categ_cmd); install_element(PCU_NODE, &cfg_pcu_sock_cmd); install_element(PCU_NODE, &cfg_pcu_gb_dialect_cmd); + install_element(PCU_NODE, &cfg_neighbor_resolution_cmd); install_element(PCU_NODE, &cfg_pcu_timer_cmd); install_element_ve(&show_bts_stats_cmd); diff --git a/src/pdch.cpp b/src/pdch.cpp index 5a329f3..2028ba2 100644 --- a/src/pdch.cpp +++ b/src/pdch.cpp @@ -685,6 +685,33 @@ gprs_rlcmac_meas_rep(ms, report); } +void gprs_rlcmac_pdch::rcv_cell_change_notification(Packet_Cell_Change_Notification_t *notif, + uint32_t fn, struct pcu_l1_meas *meas) +{ + GprsMs *ms; + + bts_do_rate_ctr_inc(bts(), CTR_PKT_CELL_CHG_NOTIFICATION); + + if (notif->Global_TFI.UnionType == 0) { + struct gprs_rlcmac_ul_tbf *ul_tbf = ul_tbf_by_tfi(notif->Global_TFI.u.UPLINK_TFI); + if (!ul_tbf) { + LOGP(DRLCMAC, LOGL_NOTICE, "UL TBF TFI=0x%2x not found\n", notif->Global_TFI.u.UPLINK_TFI); + return; + } + ms = ul_tbf->ms(); + } else if (notif->Global_TFI.UnionType == 1) { + struct gprs_rlcmac_dl_tbf *dl_tbf = dl_tbf_by_tfi(notif->Global_TFI.u.DOWNLINK_TFI); + if (!dl_tbf) { + LOGP(DRLCMAC, LOGL_NOTICE, "DL TBF TFI=0x%2x not found\n", notif->Global_TFI.u.DOWNLINK_TFI); + return; + } + ms = dl_tbf->ms(); + } else { OSMO_ASSERT(0); } + + ms_update_l1_meas(ms, meas); + ms_nacc_start(ms, notif); +} + /* Received Uplink RLC control block. */ int gprs_rlcmac_pdch::rcv_control_block(const uint8_t *data, uint8_t data_len, uint32_t fn, struct pcu_l1_meas *meas, enum CodingScheme cs) @@ -734,6 +761,9 @@ case MT_PACKET_UPLINK_DUMMY_CONTROL_BLOCK: /* ignoring it. change the SI to not force sending these? */ break; + case MT_PACKET_CELL_CHANGE_NOTIFICATION: + rcv_cell_change_notification(&ul_control_block->u.Packet_Cell_Change_Notification, fn, meas); + break; default: bts_do_rate_ctr_inc(bts(), CTR_DECODE_ERRORS); LOGP(DRLCMAC, LOGL_NOTICE, diff --git a/src/pdch.h b/src/pdch.h index 8871986..d596531 100644 --- a/src/pdch.h +++ b/src/pdch.h @@ -139,6 +139,7 @@ void rcv_control_egprs_dl_ack_nack(EGPRS_PD_AckNack_t *, uint32_t fn, struct pcu_l1_meas *meas); void rcv_resource_request(Packet_Resource_Request_t *t, uint32_t fn, struct pcu_l1_meas *meas); void rcv_measurement_report(Packet_Measurement_Report_t *t, uint32_t fn); + void rcv_cell_change_notification(Packet_Cell_Change_Notification_t *, uint32_t fn, struct pcu_l1_meas *meas); gprs_rlcmac_tbf *tbf_from_list_by_tfi( LListHead *tbf_list, uint8_t tfi, enum gprs_rlcmac_tbf_direction dir); diff --git a/src/tbf.cpp b/src/tbf.cpp index 37af21f..5b2fe3d 100644 --- a/src/tbf.cpp +++ b/src/tbf.cpp @@ -1197,3 +1197,8 @@ { return tbf->is_tfi_assigned(); } + +uint8_t tbf_tfi(const struct gprs_rlcmac_tbf *tbf) +{ + return tbf->tfi(); +} diff --git a/src/tbf.h b/src/tbf.h index d616076..815d254 100644 --- a/src/tbf.h +++ b/src/tbf.h @@ -204,6 +204,7 @@ uint8_t tbf_dl_slots(const struct gprs_rlcmac_tbf *tbf); uint8_t tbf_ul_slots(const struct gprs_rlcmac_tbf *tbf); bool tbf_is_tfi_assigned(const struct gprs_rlcmac_tbf *tbf); +uint8_t tbf_tfi(const struct gprs_rlcmac_tbf *tbf); int tbf_assign_control_ts(struct gprs_rlcmac_tbf *tbf); #ifdef __cplusplus } diff --git a/tests/Makefile.am b/tests/Makefile.am index c599636..a7771b9 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -1,4 +1,4 @@ -AM_CPPFLAGS = $(STD_DEFINES_AND_INCLUDES) $(LIBOSMOCORE_CFLAGS) $(LIBOSMOGB_CFLAGS) $(LIBOSMOGSM_CFLAGS) -I$(top_srcdir)/src/ -I$(top_srcdir)/include/ +AM_CPPFLAGS = $(STD_DEFINES_AND_INCLUDES) $(LIBOSMOCORE_CFLAGS) $(LIBOSMOCTRL_CFLAGS) $(LIBOSMOGB_CFLAGS) $(LIBOSMOGSM_CFLAGS) -I$(top_srcdir)/src/ -I$(top_srcdir)/include/ AM_LDFLAGS = -lrt -no-install check_PROGRAMS = rlcmac/RLCMACTest alloc/AllocTest alloc/MslotTest tbf/TbfTest types/TypesTest ms/MsTest llist/LListTest llc/LlcTest codel/codel_test edge/EdgeTest bitcomp/BitcompTest fn/FnTest app_info/AppInfoTest @@ -15,6 +15,7 @@ $(top_builddir)/src/libgprs.la \ $(LIBOSMOGB_LIBS) \ $(LIBOSMOGSM_LIBS) \ + $(LIBOSMOCTRL_LIBS) \ $(LIBOSMOCORE_LIBS) \ $(COMMON_LA) @@ -23,6 +24,7 @@ $(top_builddir)/src/libgprs.la \ $(LIBOSMOGB_LIBS) \ $(LIBOSMOGSM_LIBS) \ + $(LIBOSMOCTRL_LIBS) \ $(LIBOSMOCORE_LIBS) \ $(COMMON_LA) @@ -31,6 +33,7 @@ $(top_builddir)/src/libgprs.la \ $(LIBOSMOGB_LIBS) \ $(LIBOSMOGSM_LIBS) \ + $(LIBOSMOCTRL_LIBS) \ $(LIBOSMOCORE_LIBS) \ $(COMMON_LA) tbf_TbfTest_LDFLAGS = -Wl,--wrap=pcu_sock_send @@ -38,6 +41,7 @@ bitcomp_BitcompTest_SOURCES = bitcomp/BitcompTest.cpp ../src/egprs_rlc_compression.cpp bitcomp_BitcompTest_LDADD = \ $(top_builddir)/src/libgprs.la \ + $(LIBOSMOCTRL_LIBS) \ $(LIBOSMOCORE_LIBS) \ $(COMMON_LA) @@ -46,6 +50,7 @@ $(top_builddir)/src/libgprs.la \ $(LIBOSMOGB_LIBS) \ $(LIBOSMOGSM_LIBS) \ + $(LIBOSMOCTRL_LIBS) \ $(LIBOSMOCORE_LIBS) \ $(COMMON_LA) @@ -56,6 +61,7 @@ $(top_builddir)/src/libgprs.la \ $(LIBOSMOGB_LIBS) \ $(LIBOSMOGSM_LIBS) \ + $(LIBOSMOCTRL_LIBS) \ $(LIBOSMOCORE_LIBS) \ $(COMMON_LA) @@ -64,6 +70,7 @@ $(top_builddir)/src/libgprs.la \ $(LIBOSMOGB_LIBS) \ $(LIBOSMOGSM_LIBS) \ + $(LIBOSMOCTRL_LIBS) \ $(LIBOSMOCORE_LIBS) \ $(COMMON_LA) @@ -72,6 +79,7 @@ $(top_builddir)/src/libgprs.la \ $(LIBOSMOGB_LIBS) \ $(LIBOSMOGSM_LIBS) \ + $(LIBOSMOCTRL_LIBS) \ $(LIBOSMOCORE_LIBS) \ $(COMMON_LA) @@ -83,6 +91,7 @@ $(top_builddir)/src/libgprs.la \ $(LIBOSMOGB_LIBS) \ $(LIBOSMOGSM_LIBS) \ + $(LIBOSMOCTRL_LIBS) \ $(LIBOSMOCORE_LIBS) \ $(COMMON_LA) @@ -97,6 +106,7 @@ codel_codel_test_SOURCES = codel/codel_test.c codel_codel_test_LDADD = \ $(top_builddir)/src/libgprs.la \ + $(LIBOSMOCTRL_LIBS) \ $(LIBOSMOCORE_LIBS) \ $(COMMON_LA) @@ -105,6 +115,7 @@ $(top_builddir)/src/libgprs.la \ $(LIBOSMOGB_LIBS) \ $(LIBOSMOGSM_LIBS) \ + $(LIBOSMOCTRL_LIBS) \ $(LIBOSMOCORE_LIBS) \ $(COMMON_LA) @@ -113,6 +124,7 @@ $(top_builddir)/src/libgprs.la \ $(LIBOSMOGB_LIBS) \ $(LIBOSMOGSM_LIBS) \ + $(LIBOSMOCTRL_LIBS) \ $(LIBOSMOCORE_LIBS) \ $(COMMON_LA) -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22338 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ife6e4a086d58d49676d12b6984f63079ec472e79 Gerrit-Change-Number: 22338 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 14:01:26 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 20 Jan 2021 14:01:26 +0000 Subject: Change in osmo-pcu[master]: bts: Store RAC+CI from info_ind In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22326 ) Change subject: bts: Store RAC+CI from info_ind ...................................................................... Patch Set 2: This change is ready for review. -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22326 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ia3596e9e81cd71443be2cc6f2450bb7f91d2667d Gerrit-Change-Number: 22326 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Wed, 20 Jan 2021 14:01:26 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 14:03:02 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 20 Jan 2021 14:03:02 +0000 Subject: Change in osmo-pcu[master]: bts: Store RAC+CI from info_ind In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22326 ) Change subject: bts: Store RAC+CI from info_ind ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22326 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ia3596e9e81cd71443be2cc6f2450bb7f91d2667d Gerrit-Change-Number: 22326 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 20 Jan 2021 14:03:02 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 14:03:05 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 20 Jan 2021 14:03:05 +0000 Subject: Change in osmo-pcu[master]: bts: Store RAC+CI from info_ind In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22326 ) Change subject: bts: Store RAC+CI from info_ind ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22326 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ia3596e9e81cd71443be2cc6f2450bb7f91d2667d Gerrit-Change-Number: 22326 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 20 Jan 2021 14:03:05 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 14:04:10 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 20 Jan 2021 14:04:10 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Connect to RIM port from BSSGP_Emulation In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22336 ) Change subject: pcu: Connect to RIM port from BSSGP_Emulation ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22336 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I8113d9ef5433ae0976227408133a53397aeae41a Gerrit-Change-Number: 22336 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 20 Jan 2021 14:04:10 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 14:05:35 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 20 Jan 2021 14:05:35 +0000 Subject: Change in libosmocore[master]: gprs_ns2: implement BLOCK/UNBLOCK of a NSVC by vty In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22210 ) Change subject: gprs_ns2: implement BLOCK/UNBLOCK of a NSVC by vty ...................................................................... Patch Set 17: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22210 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic0ce3c5fabc8644cc1ee71a8f6dd783fadf7b84d Gerrit-Change-Number: 22210 Gerrit-PatchSet: 17 Gerrit-Owner: lynxis lazus Gerrit-Assignee: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 20 Jan 2021 14:05:35 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 14:05:53 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 20 Jan 2021 14:05:53 +0000 Subject: Change in libosmocore[master]: gprs_ns2: correct handle BLOCK message on initator In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22318 ) Change subject: gprs_ns2: correct handle BLOCK message on initator ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22318 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie7b34b3ef04aa28304143191222324e1a3786cb2 Gerrit-Change-Number: 22318 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 20 Jan 2021 14:05:53 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 14:06:06 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 20 Jan 2021 14:06:06 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vc_fsm: rename all event to match RX_ or REQ_ In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22292 ) Change subject: gprs_ns2_vc_fsm: rename all event to match RX_ or REQ_ ...................................................................... Patch Set 8: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22292 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I341fa28fb671d439c050d985c88ece1521430a99 Gerrit-Change-Number: 22292 Gerrit-PatchSet: 8 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 20 Jan 2021 14:06:06 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 14:06:47 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 20 Jan 2021 14:06:47 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vc_fsm: ensure all state is resetted via force_unconf In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22293 ) Change subject: gprs_ns2_vc_fsm: ensure all state is resetted via force_unconf ...................................................................... Patch Set 9: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22293 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I240225ce82fa27dfcb5b4b8e2981bb4d8cc4cd70 Gerrit-Change-Number: 22293 Gerrit-PatchSet: 9 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 20 Jan 2021 14:06:47 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 14:06:51 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 20 Jan 2021 14:06:51 +0000 Subject: Change in libosmocore[master]: gprs_ns2: implement BLOCK/UNBLOCK of a NSVC by vty In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22210 ) Change subject: gprs_ns2: implement BLOCK/UNBLOCK of a NSVC by vty ...................................................................... gprs_ns2: implement BLOCK/UNBLOCK of a NSVC by vty The vty should be able to block or unblock a specific NSVC. Further more this case is special for the UNITDATA as those can be still received until the other side response to the BLOCK PDU. Related: OS#4939 Change-Id: Ic0ce3c5fabc8644cc1ee71a8f6dd783fadf7b84d --- M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_vc_fsm.c M src/gb/gprs_ns2_vty2.c M tests/gb/gprs_ns2_test.c M tests/gb/gprs_ns2_test.ok 5 files changed, 206 insertions(+), 8 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve daniel: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/src/gb/gprs_ns2_internal.h b/src/gb/gprs_ns2_internal.h index 5404ed3..cb5c2bd 100644 --- a/src/gb/gprs_ns2_internal.h +++ b/src/gb/gprs_ns2_internal.h @@ -318,6 +318,8 @@ int gprs_ns2_vc_rx(struct gprs_ns2_vc *nsvc, struct msgb *msg, struct tlv_parsed *tp); int gprs_ns2_vc_is_alive(struct gprs_ns2_vc *nsvc); int gprs_ns2_vc_is_unblocked(struct gprs_ns2_vc *nsvc); +int ns2_vc_block(struct gprs_ns2_vc *nsvc); +int ns2_vc_unblock(struct gprs_ns2_vc *nsvc); /* nse */ void ns2_nse_notify_unblocked(struct gprs_ns2_vc *nsvc, bool unblocked); diff --git a/src/gb/gprs_ns2_vc_fsm.c b/src/gb/gprs_ns2_vc_fsm.c index 641fcc3..8604bbe 100644 --- a/src/gb/gprs_ns2_vc_fsm.c +++ b/src/gb/gprs_ns2_vc_fsm.c @@ -59,6 +59,10 @@ * It can change during runtime. The side which blocks an unblocked side.*/ bool initiate_block; bool initiate_reset; + /* if blocked by O&M/vty */ + bool om_blocked; + /* if unitdata is forwarded to the user */ + bool accept_unitdata; /* the alive counter is present in all states */ struct { @@ -111,7 +115,9 @@ GPRS_NS2_EV_UNITDATA, - GPRS_NS2_EV_FORCE_UNCONFIGURED, /* called via vty for tests */ + GPRS_NS2_EV_FORCE_UNCONFIGURED, /* called via vty for tests */ + GPRS_NS2_EV_REQ_OM_BLOCK, /* vty cmd: block */ + GPRS_NS2_EV_REQ_OM_UNBLOCK, /* vty cmd: unblock*/ }; static const struct value_string gprs_ns2_vc_event_names[] = { @@ -127,6 +133,8 @@ { GPRS_NS2_EV_STATUS, "STATUS" }, { GPRS_NS2_EV_UNITDATA, "UNITDATA" }, { GPRS_NS2_EV_FORCE_UNCONFIGURED, "FORCE_UNCONFIGURED" }, + { GPRS_NS2_EV_REQ_OM_BLOCK, "REQ-O&M-BLOCK"}, + { GPRS_NS2_EV_REQ_OM_UNBLOCK, "REQ-O&M-UNBLOCK"}, { 0, NULL } }; @@ -245,6 +253,7 @@ if (old_state != GPRS_NS2_ST_RESET) priv->N = 0; + priv->accept_unitdata = false; if (priv->initiate_reset) ns2_tx_reset(priv->nsvc, NS_CAUSE_OM_INTERVENTION); @@ -283,8 +292,16 @@ if (old_state != GPRS_NS2_ST_BLOCKED) priv->N = 0; - if (priv->initiate_block) + if (priv->om_blocked) { + /* we are already blocked after a RESET */ + if (old_state == GPRS_NS2_ST_RESET) { + osmo_timer_del(&fi->timer); + } else { + ns2_tx_block(priv->nsvc, NS_CAUSE_OM_INTERVENTION); + } + } else if (priv->initiate_block) { ns2_tx_unblock(priv->nsvc); + } start_test_procedure(priv); } @@ -293,7 +310,24 @@ { struct gprs_ns2_vc_priv *priv = fi->priv; - if (priv->initiate_block) { + if (priv->om_blocked) { + switch (event) { + case GPRS_NS2_EV_BLOCK_ACK: + priv->accept_unitdata = false; + osmo_timer_del(&fi->timer); + break; + case GPRS_NS2_EV_BLOCK: + priv->accept_unitdata = false; + ns2_tx_block_ack(priv->nsvc); + osmo_timer_del(&fi->timer); + break; + case GPRS_NS2_EV_UNBLOCK: + priv->accept_unitdata = false; + ns2_tx_block(priv->nsvc, NS_CAUSE_OM_INTERVENTION); + osmo_timer_add(&fi->timer); + break; + } + } else if (priv->initiate_block) { switch (event) { case GPRS_NS2_EV_BLOCK: /* TODO: BLOCK is a UNBLOCK_NACK */ @@ -303,6 +337,7 @@ ns2_tx_unblock_ack(priv->nsvc); /* fall through */ case GPRS_NS2_EV_UNBLOCK_ACK: + priv->accept_unitdata = true; osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_UNBLOCKED, 0, NS_TOUT_TNS_TEST); break; @@ -325,6 +360,7 @@ struct gprs_ns2_vc *nsvc = priv->nsvc; struct gprs_ns2_nse *nse = nsvc->nse; + priv->accept_unitdata = true; ns2_nse_notify_unblocked(nsvc, true); ns2_prim_status_ind(nse, nsvc, 0, NS_AFF_CAUSE_VC_RECOVERY); } @@ -446,10 +482,19 @@ case GPRS_NS2_ST_BLOCKED: if (priv->initiate_block) { priv->N++; - if (priv->N <= nsi->timeout[NS_TOUT_TNS_BLOCK_RETRIES]) { - osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_BLOCKED, nsi->timeout[NS_TOUT_TNS_BLOCK], 0); + if (priv->om_blocked) { + if (priv->N <= nsi->timeout[NS_TOUT_TNS_BLOCK_RETRIES]) { + osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_BLOCKED, nsi->timeout[NS_TOUT_TNS_BLOCK], 0); + } else { + /* 7.2 stop accepting data when BLOCK PDU not responded */ + priv->accept_unitdata = false; + } } else { - osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_RESET, nsi->timeout[NS_TOUT_TNS_RESET], 0); + if (priv->N <= nsi->timeout[NS_TOUT_TNS_BLOCK_RETRIES]) { + osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_BLOCKED, nsi->timeout[NS_TOUT_TNS_BLOCK], 0); + } else { + osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_RESET, nsi->timeout[NS_TOUT_TNS_RESET], 0); + } } } break; @@ -550,7 +595,7 @@ switch (fi->state) { case GPRS_NS2_ST_BLOCKED: /* 7.2.1: the BLOCKED_ACK might be lost */ - if (priv->initiate_block) { + if (priv->accept_unitdata) { gprs_ns2_recv_unitdata(fi, msg); return; } @@ -576,6 +621,20 @@ return; } break; + case GPRS_NS2_EV_REQ_OM_BLOCK: + /* vty cmd: block */ + priv->initiate_block = true; + priv->om_blocked = true; + osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_BLOCKED, nsi->timeout[NS_TOUT_TNS_BLOCK], 0); + break; + case GPRS_NS2_EV_REQ_OM_UNBLOCK: + /* vty cmd: unblock*/ + if (!priv->om_blocked) + return; + priv->om_blocked = false; + if (fi->state == GPRS_NS2_ST_BLOCKED) + osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_BLOCKED, nsi->timeout[NS_TOUT_TNS_BLOCK], 0); + break; } } @@ -595,7 +654,9 @@ S(GPRS_NS2_EV_RESET) | S(GPRS_NS2_EV_ALIVE) | S(GPRS_NS2_EV_ALIVE_ACK) | - S(GPRS_NS2_EV_FORCE_UNCONFIGURED), + S(GPRS_NS2_EV_FORCE_UNCONFIGURED) | + S(GPRS_NS2_EV_REQ_OM_BLOCK) | + S(GPRS_NS2_EV_REQ_OM_UNBLOCK), .allstate_action = gprs_ns2_vc_fsm_allstate_action, .cleanup = gprs_ns2_vc_fsm_clean, .timer_cb = gprs_ns2_vc_fsm_timer_cb, @@ -653,6 +714,22 @@ return osmo_fsm_inst_dispatch(nsvc->fi, GPRS_NS2_EV_FORCE_UNCONFIGURED, NULL); } +/*! Block a NS-VC. + * \param nsvc the virtual circuit + * \return 0 on success; negative on error */ +int ns2_vc_block(struct gprs_ns2_vc *nsvc) +{ + return osmo_fsm_inst_dispatch(nsvc->fi, GPRS_NS2_EV_REQ_OM_BLOCK, NULL); +} + +/*! Unblock a NS-VC. + * \param nsvc the virtual circuit + * \return 0 on success; negative on error */ +int ns2_vc_unblock(struct gprs_ns2_vc *nsvc) +{ + return osmo_fsm_inst_dispatch(nsvc->fi, GPRS_NS2_EV_REQ_OM_UNBLOCK, NULL); +} + /*! entry point for messages from the driver/VL * \param nsvc virtual circuit on which the message was received * \param msg message that was received diff --git a/src/gb/gprs_ns2_vty2.c b/src/gb/gprs_ns2_vty2.c index 5af8fbc..94302ef 100644 --- a/src/gb/gprs_ns2_vty2.c +++ b/src/gb/gprs_ns2_vty2.c @@ -1503,6 +1503,33 @@ return CMD_SUCCESS; } +DEFUN(nsvc_block, nsvc_block_cmd, + "nsvc <0-65535> (block|unblock)", + "NS Virtual Connection\n" + NSVCI_STR + "Block a NSVC. As cause code O&M intervention will be used.\n" + "Unblock a NSVC. As cause code O&M intervention will be used.\n") +{ + struct gprs_ns2_inst *nsi = vty_nsi; + struct gprs_ns2_vc *nsvc; + + uint16_t id = atoi(argv[0]); + + nsvc = gprs_ns2_nsvc_by_nsvci(nsi, id); + if (!nsvc) { + vty_out(vty, "Could not find NSVCI %05u%s", id, VTY_NEWLINE); + return CMD_WARNING; + } + + if (!strcmp(argv[1], "block")) { + ns2_vc_block(nsvc); + } else { + ns2_vc_unblock(nsvc); + } + + return CMD_SUCCESS; +} + static void log_set_nse_filter(struct log_target *target, struct gprs_ns2_nse *nse) { @@ -1608,6 +1635,7 @@ install_lib_element_ve(&logging_fltr_nsvc_cmd); install_lib_element(ENABLE_NODE, &nsvc_force_unconf_cmd); + install_lib_element(ENABLE_NODE, &nsvc_block_cmd); install_lib_element(CFG_LOG_NODE, &logging_fltr_nse_cmd); install_lib_element(CFG_LOG_NODE, &logging_fltr_nsvc_cmd); diff --git a/tests/gb/gprs_ns2_test.c b/tests/gb/gprs_ns2_test.c index bcfd460..315a4d0 100644 --- a/tests/gb/gprs_ns2_test.c +++ b/tests/gb/gprs_ns2_test.c @@ -20,6 +20,7 @@ #include #include +#include #include #include #include @@ -44,6 +45,34 @@ return 0; } +static struct msgb *get_pdu(struct gprs_ns2_vc_bind *bind, enum ns_pdu_type pdu_type) +{ + struct gprs_ns_hdr *nsh; + struct osmo_wqueue *queue = bind->priv; + + while (!llist_empty(&queue->msg_queue)) { + struct msgb *msg = msgb_dequeue(&queue->msg_queue); + nsh = (struct gprs_ns_hdr *) msg->l2h; + if (nsh->pdu_type == pdu_type) + return msg; + msgb_free(msg); + } + + return NULL; +} + +static bool find_pdu(struct gprs_ns2_vc_bind *bind, enum ns_pdu_type pdu_type) +{ + struct msgb *msg; + msg = get_pdu(bind, pdu_type); + if (msg) { + msgb_free(msg); + return true; + } + + return false; +} + static void clear_pdus(struct gprs_ns2_vc_bind *bind) { struct osmo_wqueue *queue = bind->priv; @@ -147,6 +176,62 @@ } +/* setup NSE with 2x NSVCs. + * block 1x NSVC + * unblock 1x NSVC*/ +void test_block_unblock_nsvc(void *ctx) +{ + struct gprs_ns2_inst *nsi; + struct gprs_ns2_vc_bind *bind[2]; + struct gprs_ns2_nse *nse; + struct gprs_ns2_vc *nsvc[2]; + struct gprs_ns_hdr *nsh; + struct msgb *msg; + char idbuf[32]; + + printf("--- Testing NSE block unblock nsvc\n"); + printf("---- Create NSE + Binds\n"); + nsi = gprs_ns2_instantiate(ctx, ns_prim_cb, NULL); + bind[0] = dummy_bind(nsi, "bblock1"); + bind[1] = dummy_bind(nsi, "bblock2"); + nse = gprs_ns2_create_nse(nsi, 1001, GPRS_NS2_LL_UDP, NS2_DIALECT_STATIC_RESETBLOCK); + OSMO_ASSERT(nse); + + for (int i=0; i<2; i++) { + printf("---- Create NSVC[i]\n"); + snprintf(idbuf, sizeof(idbuf), "NSE%05u-dummy-%i", nse->nsei, i); + nsvc[i] = ns2_vc_alloc(bind[i], nse, false, NS2_VC_MODE_BLOCKRESET, idbuf); + OSMO_ASSERT(nsvc[i]); + nsvc[i]->fi->state = 3; /* HACK: 3 = GPRS_NS2_ST_UNBLOCKED */ + /* ensure the fi->state works correct */ + OSMO_ASSERT(gprs_ns2_vc_is_unblocked(nsvc[i])); + ns2_nse_notify_unblocked(nsvc[i], true); + } + + /* both nsvcs are unblocked and alive. Let's block it. */ + OSMO_ASSERT(!find_pdu(bind[0], NS_PDUT_BLOCK)); + clear_pdus(bind[0]); + ns2_vc_block(nsvc[0]); + OSMO_ASSERT(find_pdu(bind[0], NS_PDUT_BLOCK)); + /* state == BLOCKED */ + clear_pdus(bind[0]); + + /* now unblocking it */ + ns2_vc_unblock(nsvc[0]); + OSMO_ASSERT(find_pdu(bind[0], NS_PDUT_UNBLOCK)); + clear_pdus(bind[0]); + + msg = msgb_alloc_headroom(NS_ALLOC_SIZE, NS_ALLOC_HEADROOM, "test_unblock"); + msg->l2h = msgb_put(msg, sizeof(*nsh)); + nsh = (struct gprs_ns_hdr *) msg->l2h; + nsh->pdu_type = NS_PDUT_UNBLOCK_ACK; + ns2_recv_vc(nsvc[0], msg); + + OSMO_ASSERT(gprs_ns2_vc_is_unblocked(nsvc[0])); + gprs_ns2_free(nsi); + printf("--- Finish NSE block unblock nsvc\n"); +} + int main(int argc, char **argv) { void *ctx = talloc_named_const(NULL, 0, "gprs_ns2_test"); @@ -159,6 +244,7 @@ printf("===== NS2 protocol test START\n"); test_nse_transfer_cap(ctx); + test_block_unblock_nsvc(ctx); printf("===== NS2 protocol test END\n\n"); talloc_free(ctx); diff --git a/tests/gb/gprs_ns2_test.ok b/tests/gb/gprs_ns2_test.ok index 62bbbfe..27c72fa 100644 --- a/tests/gb/gprs_ns2_test.ok +++ b/tests/gb/gprs_ns2_test.ok @@ -6,5 +6,10 @@ ---- Test with NSVC[2] ---- Test with NSVC[1] removed --- Finish NSE transfer cap +--- Testing NSE block unblock nsvc +---- Create NSE + Binds +---- Create NSVC[i] +---- Create NSVC[i] +--- Finish NSE block unblock nsvc ===== NS2 protocol test END -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22210 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic0ce3c5fabc8644cc1ee71a8f6dd783fadf7b84d Gerrit-Change-Number: 22210 Gerrit-PatchSet: 17 Gerrit-Owner: lynxis lazus Gerrit-Assignee: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 14:06:51 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 20 Jan 2021 14:06:51 +0000 Subject: Change in libosmocore[master]: gprs_ns2: correct handle BLOCK message on initator In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22318 ) Change subject: gprs_ns2: correct handle BLOCK message on initator ...................................................................... gprs_ns2: correct handle BLOCK message on initator A BLOCK message can be received when waiting for a UNBLOCK message in state BLOCK Related: SYS#5208 Change-Id: Ie7b34b3ef04aa28304143191222324e1a3786cb2 --- M src/gb/gprs_ns2_vc_fsm.c 1 file changed, 3 insertions(+), 0 deletions(-) Approvals: pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/gb/gprs_ns2_vc_fsm.c b/src/gb/gprs_ns2_vc_fsm.c index 8604bbe..9f0c5f4 100644 --- a/src/gb/gprs_ns2_vc_fsm.c +++ b/src/gb/gprs_ns2_vc_fsm.c @@ -345,6 +345,9 @@ } else { /* we are on the receiving end. The initiator who sent RESET is responsible to UNBLOCK! */ switch (event) { + case GPRS_NS2_EV_BLOCK: + ns2_tx_block_ack(priv->nsvc); + break; case GPRS_NS2_EV_UNBLOCK: ns2_tx_unblock_ack(priv->nsvc); osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_UNBLOCKED, -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22318 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie7b34b3ef04aa28304143191222324e1a3786cb2 Gerrit-Change-Number: 22318 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 14:06:51 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 20 Jan 2021 14:06:51 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vc_fsm: rename all event to match RX_ or REQ_ In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22292 ) Change subject: gprs_ns2_vc_fsm: rename all event to match RX_ or REQ_ ...................................................................... gprs_ns2_vc_fsm: rename all event to match RX_ or REQ_ Similiar to the BSSGP layer prefix events with RX if it's an received PDU or REQ if it's a request from the code. Change-Id: I341fa28fb671d439c050d985c88ece1521430a99 --- M src/gb/gprs_ns2_vc_fsm.c 1 file changed, 69 insertions(+), 69 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/gb/gprs_ns2_vc_fsm.c b/src/gb/gprs_ns2_vc_fsm.c index 9f0c5f4..8a78e57 100644 --- a/src/gb/gprs_ns2_vc_fsm.c +++ b/src/gb/gprs_ns2_vc_fsm.c @@ -100,39 +100,39 @@ }; enum gprs_ns2_vc_event { - GPRS_NS2_EV_START, + GPRS_NS2_EV_REQ_START, /* received messages */ - GPRS_NS2_EV_RESET, - GPRS_NS2_EV_RESET_ACK, - GPRS_NS2_EV_UNBLOCK, - GPRS_NS2_EV_UNBLOCK_ACK, - GPRS_NS2_EV_BLOCK, - GPRS_NS2_EV_BLOCK_ACK, - GPRS_NS2_EV_ALIVE, - GPRS_NS2_EV_ALIVE_ACK, - GPRS_NS2_EV_STATUS, + GPRS_NS2_EV_RX_RESET, + GPRS_NS2_EV_RX_RESET_ACK, + GPRS_NS2_EV_RX_UNBLOCK, + GPRS_NS2_EV_RX_UNBLOCK_ACK, + GPRS_NS2_EV_RX_BLOCK, + GPRS_NS2_EV_RX_BLOCK_ACK, + GPRS_NS2_EV_RX_ALIVE, + GPRS_NS2_EV_RX_ALIVE_ACK, + GPRS_NS2_EV_RX_STATUS, - GPRS_NS2_EV_UNITDATA, + GPRS_NS2_EV_RX_UNITDATA, - GPRS_NS2_EV_FORCE_UNCONFIGURED, /* called via vty for tests */ - GPRS_NS2_EV_REQ_OM_BLOCK, /* vty cmd: block */ - GPRS_NS2_EV_REQ_OM_UNBLOCK, /* vty cmd: unblock*/ + GPRS_NS2_EV_REQ_FORCE_UNCONFIGURED, /* called via vty for tests */ + GPRS_NS2_EV_REQ_OM_BLOCK, /* vty cmd: block */ + GPRS_NS2_EV_REQ_OM_UNBLOCK, /* vty cmd: unblock*/ }; static const struct value_string gprs_ns2_vc_event_names[] = { - { GPRS_NS2_EV_START, "START" }, - { GPRS_NS2_EV_RESET, "RESET" }, - { GPRS_NS2_EV_RESET_ACK, "RESET_ACK" }, - { GPRS_NS2_EV_UNBLOCK, "UNBLOCK" }, - { GPRS_NS2_EV_UNBLOCK_ACK, "UNBLOCK_ACK" }, - { GPRS_NS2_EV_BLOCK, "BLOCK" }, - { GPRS_NS2_EV_BLOCK_ACK, "BLOCK_ACK" }, - { GPRS_NS2_EV_ALIVE, "ALIVE" }, - { GPRS_NS2_EV_ALIVE_ACK, "ALIVE_ACK" }, - { GPRS_NS2_EV_STATUS, "STATUS" }, - { GPRS_NS2_EV_UNITDATA, "UNITDATA" }, - { GPRS_NS2_EV_FORCE_UNCONFIGURED, "FORCE_UNCONFIGURED" }, + { GPRS_NS2_EV_REQ_START, "START" }, + { GPRS_NS2_EV_RX_RESET, "RESET" }, + { GPRS_NS2_EV_RX_RESET_ACK, "RESET_ACK" }, + { GPRS_NS2_EV_RX_UNBLOCK, "UNBLOCK" }, + { GPRS_NS2_EV_RX_UNBLOCK_ACK, "UNBLOCK_ACK" }, + { GPRS_NS2_EV_RX_BLOCK, "BLOCK" }, + { GPRS_NS2_EV_RX_BLOCK_ACK, "BLOCK_ACK" }, + { GPRS_NS2_EV_RX_ALIVE, "ALIVE" }, + { GPRS_NS2_EV_RX_ALIVE_ACK, "ALIVE_ACK" }, + { GPRS_NS2_EV_RX_STATUS, "STATUS" }, + { GPRS_NS2_EV_RX_UNITDATA, "UNITDATA" }, + { GPRS_NS2_EV_REQ_FORCE_UNCONFIGURED, "FORCE_UNCONFIGURED" }, { GPRS_NS2_EV_REQ_OM_BLOCK, "REQ-O&M-BLOCK"}, { GPRS_NS2_EV_REQ_OM_UNBLOCK, "REQ-O&M-UNBLOCK"}, { 0, NULL } @@ -229,7 +229,7 @@ struct gprs_ns2_inst *nsi = priv->nsvc->nse->nsi; switch (event) { - case GPRS_NS2_EV_START: + case GPRS_NS2_EV_REQ_START: switch (priv->nsvc->mode) { case NS2_VC_MODE_ALIVE: osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_ALIVE, nsi->timeout[NS_TOUT_TNS_ALIVE], NS_TOUT_TNS_ALIVE); @@ -268,7 +268,7 @@ if (priv->initiate_reset) { switch (event) { - case GPRS_NS2_EV_RESET_ACK: + case GPRS_NS2_EV_RX_RESET_ACK: osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_BLOCKED, nsi->timeout[NS_TOUT_TNS_BLOCK], NS_TOUT_TNS_BLOCK); break; @@ -276,7 +276,7 @@ } else { /* we are on the receiving end */ switch (event) { - case GPRS_NS2_EV_RESET: + case GPRS_NS2_EV_RX_RESET: ns2_tx_reset_ack(priv->nsvc); osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_BLOCKED, 0, 0); @@ -312,16 +312,16 @@ if (priv->om_blocked) { switch (event) { - case GPRS_NS2_EV_BLOCK_ACK: + case GPRS_NS2_EV_RX_BLOCK_ACK: priv->accept_unitdata = false; osmo_timer_del(&fi->timer); break; - case GPRS_NS2_EV_BLOCK: + case GPRS_NS2_EV_RX_BLOCK: priv->accept_unitdata = false; ns2_tx_block_ack(priv->nsvc); osmo_timer_del(&fi->timer); break; - case GPRS_NS2_EV_UNBLOCK: + case GPRS_NS2_EV_RX_UNBLOCK: priv->accept_unitdata = false; ns2_tx_block(priv->nsvc, NS_CAUSE_OM_INTERVENTION); osmo_timer_add(&fi->timer); @@ -329,14 +329,14 @@ } } else if (priv->initiate_block) { switch (event) { - case GPRS_NS2_EV_BLOCK: + case GPRS_NS2_EV_RX_BLOCK: /* TODO: BLOCK is a UNBLOCK_NACK */ ns2_tx_block_ack(priv->nsvc); break; - case GPRS_NS2_EV_UNBLOCK: + case GPRS_NS2_EV_RX_UNBLOCK: ns2_tx_unblock_ack(priv->nsvc); /* fall through */ - case GPRS_NS2_EV_UNBLOCK_ACK: + case GPRS_NS2_EV_RX_UNBLOCK_ACK: priv->accept_unitdata = true; osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_UNBLOCKED, 0, NS_TOUT_TNS_TEST); @@ -345,10 +345,10 @@ } else { /* we are on the receiving end. The initiator who sent RESET is responsible to UNBLOCK! */ switch (event) { - case GPRS_NS2_EV_BLOCK: + case GPRS_NS2_EV_RX_BLOCK: ns2_tx_block_ack(priv->nsvc); break; - case GPRS_NS2_EV_UNBLOCK: + case GPRS_NS2_EV_RX_UNBLOCK: ns2_tx_unblock_ack(priv->nsvc); osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_UNBLOCKED, 0, 0); @@ -373,10 +373,10 @@ struct gprs_ns2_vc_priv *priv = fi->priv; switch (event) { - case GPRS_NS2_EV_UNBLOCK: + case GPRS_NS2_EV_RX_UNBLOCK: ns2_tx_unblock_ack(priv->nsvc); break; - case GPRS_NS2_EV_BLOCK: + case GPRS_NS2_EV_RX_BLOCK: priv->initiate_block = false; ns2_tx_block_ack(priv->nsvc); osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_BLOCKED, @@ -388,7 +388,7 @@ static void gprs_ns2_st_alive(struct osmo_fsm_inst *fi, uint32_t event, void *data) { switch (event) { - case GPRS_NS2_EV_ALIVE_ACK: + case GPRS_NS2_EV_RX_ALIVE_ACK: osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_UNBLOCKED, 0, 0); break; } @@ -416,13 +416,13 @@ static const struct osmo_fsm_state gprs_ns2_vc_states[] = { [GPRS_NS2_ST_UNCONFIGURED] = { - .in_event_mask = S(GPRS_NS2_EV_START), + .in_event_mask = S(GPRS_NS2_EV_REQ_START), .out_state_mask = S(GPRS_NS2_ST_RESET) | S(GPRS_NS2_ST_ALIVE), .name = "UNCONFIGURED", .action = gprs_ns2_st_unconfigured, }, [GPRS_NS2_ST_RESET] = { - .in_event_mask = S(GPRS_NS2_EV_RESET_ACK) | S(GPRS_NS2_EV_RESET), + .in_event_mask = S(GPRS_NS2_EV_RX_RESET_ACK) | S(GPRS_NS2_EV_RX_RESET), .out_state_mask = S(GPRS_NS2_ST_RESET) | S(GPRS_NS2_ST_BLOCKED) | S(GPRS_NS2_ST_UNCONFIGURED), @@ -431,8 +431,8 @@ .onenter = gprs_ns2_st_reset_onenter, }, [GPRS_NS2_ST_BLOCKED] = { - .in_event_mask = S(GPRS_NS2_EV_BLOCK) | S(GPRS_NS2_EV_BLOCK_ACK) | - S(GPRS_NS2_EV_UNBLOCK) | S(GPRS_NS2_EV_UNBLOCK_ACK), + .in_event_mask = S(GPRS_NS2_EV_RX_BLOCK) | S(GPRS_NS2_EV_RX_BLOCK_ACK) | + S(GPRS_NS2_EV_RX_UNBLOCK) | S(GPRS_NS2_EV_RX_UNBLOCK_ACK), .out_state_mask = S(GPRS_NS2_ST_RESET) | S(GPRS_NS2_ST_UNBLOCKED) | S(GPRS_NS2_ST_BLOCKED) | @@ -442,8 +442,8 @@ .onenter = gprs_ns2_st_blocked_onenter, }, [GPRS_NS2_ST_UNBLOCKED] = { - .in_event_mask = S(GPRS_NS2_EV_BLOCK) | S(GPRS_NS2_EV_UNBLOCK_ACK) | - S(GPRS_NS2_EV_UNBLOCK), + .in_event_mask = S(GPRS_NS2_EV_RX_BLOCK) | S(GPRS_NS2_EV_RX_UNBLOCK_ACK) | + S(GPRS_NS2_EV_RX_UNBLOCK), .out_state_mask = S(GPRS_NS2_ST_RESET) | S(GPRS_NS2_ST_ALIVE) | S(GPRS_NS2_ST_BLOCKED) | S(GPRS_NS2_ST_UNCONFIGURED), @@ -454,7 +454,7 @@ /* ST_ALIVE is only used on VC without RESET/BLOCK */ [GPRS_NS2_ST_ALIVE] = { - .in_event_mask = S(GPRS_NS2_EV_ALIVE_ACK), + .in_event_mask = S(GPRS_NS2_EV_RX_ALIVE_ACK), .out_state_mask = S(GPRS_NS2_ST_RESET) | S(GPRS_NS2_ST_UNBLOCKED) | S(GPRS_NS2_ST_UNCONFIGURED), @@ -560,7 +560,7 @@ struct msgb *msg = data; switch (event) { - case GPRS_NS2_EV_RESET: + case GPRS_NS2_EV_RX_RESET: if (priv->nsvc->mode != NS2_VC_MODE_BLOCKRESET) break; @@ -572,7 +572,7 @@ /* pass the event down into FSM action */ gprs_ns2_st_reset(fi, event, data); break; - case GPRS_NS2_EV_ALIVE: + case GPRS_NS2_EV_RX_ALIVE: switch (fi->state) { case GPRS_NS2_ST_UNCONFIGURED: case GPRS_NS2_ST_RESET: @@ -582,14 +582,14 @@ ns2_tx_alive_ack(priv->nsvc); } break; - case GPRS_NS2_EV_ALIVE_ACK: + case GPRS_NS2_EV_RX_ALIVE_ACK: /* for VCs without RESET/BLOCK/UNBLOCK, the connections comes after ALIVE_ACK unblocked */ if (fi->state == GPRS_NS2_ST_ALIVE) gprs_ns2_st_alive(fi, event, data); else recv_test_procedure(fi); break; - case GPRS_NS2_EV_UNITDATA: + case GPRS_NS2_EV_RX_UNITDATA: /* UNITDATA has to handle the release of msg. * If send upwards (gprs_ns2_recv_unitdata) it must NOT free * the msg, the upper layer has to do it. @@ -616,11 +616,11 @@ msgb_free(msg); break; - case GPRS_NS2_EV_FORCE_UNCONFIGURED: + case GPRS_NS2_EV_REQ_FORCE_UNCONFIGURED: if (fi->state != GPRS_NS2_ST_UNCONFIGURED) { /* Force the NSVC back to its initial state */ osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_UNCONFIGURED, 0, 0); - osmo_fsm_inst_dispatch(fi, GPRS_NS2_EV_START, NULL); + osmo_fsm_inst_dispatch(fi, GPRS_NS2_EV_REQ_START, NULL); return; } break; @@ -653,11 +653,11 @@ .name = "GPRS-NS2-VC", .states = gprs_ns2_vc_states, .num_states = ARRAY_SIZE(gprs_ns2_vc_states), - .allstate_event_mask = S(GPRS_NS2_EV_UNITDATA) | - S(GPRS_NS2_EV_RESET) | - S(GPRS_NS2_EV_ALIVE) | - S(GPRS_NS2_EV_ALIVE_ACK) | - S(GPRS_NS2_EV_FORCE_UNCONFIGURED) | + .allstate_event_mask = S(GPRS_NS2_EV_RX_UNITDATA) | + S(GPRS_NS2_EV_RX_RESET) | + S(GPRS_NS2_EV_RX_ALIVE) | + S(GPRS_NS2_EV_RX_ALIVE_ACK) | + S(GPRS_NS2_EV_REQ_FORCE_UNCONFIGURED) | S(GPRS_NS2_EV_REQ_OM_BLOCK) | S(GPRS_NS2_EV_REQ_OM_UNBLOCK), .allstate_action = gprs_ns2_vc_fsm_allstate_action, @@ -705,7 +705,7 @@ { /* allows to call this function even for started nsvc by gprs_ns2_start_alive_all_nsvcs */ if (nsvc->fi->state == GPRS_NS2_ST_UNCONFIGURED) - return osmo_fsm_inst_dispatch(nsvc->fi, GPRS_NS2_EV_START, NULL); + return osmo_fsm_inst_dispatch(nsvc->fi, GPRS_NS2_EV_REQ_START, NULL); return 0; } @@ -714,7 +714,7 @@ * \return 0 on success; negative on error */ int gprs_ns2_vc_force_unconfigured(struct gprs_ns2_vc *nsvc) { - return osmo_fsm_inst_dispatch(nsvc->fi, GPRS_NS2_EV_FORCE_UNCONFIGURED, NULL); + return osmo_fsm_inst_dispatch(nsvc->fi, GPRS_NS2_EV_REQ_FORCE_UNCONFIGURED, NULL); } /*! Block a NS-VC. @@ -759,32 +759,32 @@ switch (nsh->pdu_type) { case NS_PDUT_RESET: - osmo_fsm_inst_dispatch(fi, GPRS_NS2_EV_RESET, tp); + osmo_fsm_inst_dispatch(fi, GPRS_NS2_EV_RX_RESET, tp); break; case NS_PDUT_RESET_ACK: - osmo_fsm_inst_dispatch(fi, GPRS_NS2_EV_RESET_ACK, tp); + osmo_fsm_inst_dispatch(fi, GPRS_NS2_EV_RX_RESET_ACK, tp); break; case NS_PDUT_BLOCK: - osmo_fsm_inst_dispatch(fi, GPRS_NS2_EV_BLOCK, tp); + osmo_fsm_inst_dispatch(fi, GPRS_NS2_EV_RX_BLOCK, tp); break; case NS_PDUT_BLOCK_ACK: - osmo_fsm_inst_dispatch(fi, GPRS_NS2_EV_BLOCK_ACK, tp); + osmo_fsm_inst_dispatch(fi, GPRS_NS2_EV_RX_BLOCK_ACK, tp); break; case NS_PDUT_UNBLOCK: - osmo_fsm_inst_dispatch(fi, GPRS_NS2_EV_UNBLOCK, tp); + osmo_fsm_inst_dispatch(fi, GPRS_NS2_EV_RX_UNBLOCK, tp); break; case NS_PDUT_UNBLOCK_ACK: - osmo_fsm_inst_dispatch(fi, GPRS_NS2_EV_UNBLOCK_ACK, tp); + osmo_fsm_inst_dispatch(fi, GPRS_NS2_EV_RX_UNBLOCK_ACK, tp); break; case NS_PDUT_ALIVE: - osmo_fsm_inst_dispatch(fi, GPRS_NS2_EV_ALIVE, tp); + osmo_fsm_inst_dispatch(fi, GPRS_NS2_EV_RX_ALIVE, tp); break; case NS_PDUT_ALIVE_ACK: - osmo_fsm_inst_dispatch(fi, GPRS_NS2_EV_ALIVE_ACK, tp); + osmo_fsm_inst_dispatch(fi, GPRS_NS2_EV_RX_ALIVE_ACK, tp); break; case NS_PDUT_UNITDATA: /* UNITDATA have to free msg because it might send the msg layer upwards */ - osmo_fsm_inst_dispatch(fi, GPRS_NS2_EV_UNITDATA, msg); + osmo_fsm_inst_dispatch(fi, GPRS_NS2_EV_RX_UNITDATA, msg); return 0; default: LOGP(DLNS, LOGL_ERROR, "NSEI=%u Rx unknown NS PDU type %s\n", nsvc->nse->nsei, -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22292 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I341fa28fb671d439c050d985c88ece1521430a99 Gerrit-Change-Number: 22292 Gerrit-PatchSet: 8 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 14:07:07 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 20 Jan 2021 14:07:07 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vc_fsm: in RESET accept RESET as ACK In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22324 ) Change subject: gprs_ns2_vc_fsm: in RESET accept RESET as ACK ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22324 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I49d2a4f257f45b7bc4f0a7a6c5b8381071893686 Gerrit-Change-Number: 22324 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 20 Jan 2021 14:07:07 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 14:08:58 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 20 Jan 2021 14:08:58 +0000 Subject: Change in libosmocore[master]: gprs_ns2: rework logging of Rx and Tx NS PDU In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22294 ) Change subject: gprs_ns2: rework logging of Rx and Tx NS PDU ...................................................................... Patch Set 9: unfortunately conflicts with my (later) https://gerrit.osmocom.org/c/libosmocore/+/22337 As your log macro is more specific than the general ones I introduce, I wuuld suppose it's best to rebase your change on top of mine? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22294 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I34b8fde2955ecc010d1dcd9512e1bba9211e2c0d Gerrit-Change-Number: 22294 Gerrit-PatchSet: 9 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 20 Jan 2021 14:08:58 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 14:09:18 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 20 Jan 2021 14:09:18 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vc_fsm: fix transitions for ALIVE state In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22316 ) Change subject: gprs_ns2_vc_fsm: fix transitions for ALIVE state ...................................................................... Patch Set 6: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22316 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic414d7ca96b1ec6db1665cd4c072c7ebbee787f1 Gerrit-Change-Number: 22316 Gerrit-PatchSet: 6 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 20 Jan 2021 14:09:18 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 14:09:39 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 20 Jan 2021 14:09:39 +0000 Subject: Change in libosmocore[master]: gprs_ns2_message: remove wrong comment In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22317 ) Change subject: gprs_ns2_message: remove wrong comment ...................................................................... Patch Set 6: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22317 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I934c7905f8396e74bb1f14d68097c03463816720 Gerrit-Change-Number: 22317 Gerrit-PatchSet: 6 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 20 Jan 2021 14:09:39 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 14:10:30 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 20 Jan 2021 14:10:30 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vc_fsm: check NSEI match the NSE In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22325 ) Change subject: gprs_ns2_vc_fsm: check NSEI match the NSE ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22325 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic8fc49d850490feb0ff69171a6b0881ae8696c0b Gerrit-Change-Number: 22325 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 20 Jan 2021 14:10:30 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 14:10:52 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 20 Jan 2021 14:10:52 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vc_fsm: ensure all state is resetted via force_unconf In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22293 ) Change subject: gprs_ns2_vc_fsm: ensure all state is resetted via force_unconf ...................................................................... Patch Set 9: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22293 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I240225ce82fa27dfcb5b4b8e2981bb4d8cc4cd70 Gerrit-Change-Number: 22293 Gerrit-PatchSet: 9 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 20 Jan 2021 14:10:52 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 14:10:57 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 20 Jan 2021 14:10:57 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vc_fsm: ensure all state is resetted via force_unconf In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22293 ) Change subject: gprs_ns2_vc_fsm: ensure all state is resetted via force_unconf ...................................................................... gprs_ns2_vc_fsm: ensure all state is resetted via force_unconf Change-Id: I240225ce82fa27dfcb5b4b8e2981bb4d8cc4cd70 --- M src/gb/gprs_ns2_vc_fsm.c 1 file changed, 5 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/gb/gprs_ns2_vc_fsm.c b/src/gb/gprs_ns2_vc_fsm.c index 8a78e57..60c46e6 100644 --- a/src/gb/gprs_ns2_vc_fsm.c +++ b/src/gb/gprs_ns2_vc_fsm.c @@ -57,6 +57,7 @@ int N; /* The initiator is responsible to UNBLOCK the VC. The BSS is usually the initiator. * It can change during runtime. The side which blocks an unblocked side.*/ + bool initiator; bool initiate_block; bool initiate_reset; /* if blocked by O&M/vty */ @@ -228,6 +229,9 @@ struct gprs_ns2_vc_priv *priv = fi->priv; struct gprs_ns2_inst *nsi = priv->nsvc->nse->nsi; + priv->initiate_reset = priv->initiate_block = priv->initiator; + priv->om_blocked = false; + switch (event) { case GPRS_NS2_EV_REQ_START: switch (priv->nsvc->mode) { @@ -690,8 +694,7 @@ nsvc->fi = fi; priv = fi->priv = talloc_zero(fi, struct gprs_ns2_vc_priv); priv->nsvc = nsvc; - priv->initiate_reset = initiator; - priv->initiate_block = initiator; + priv->initiator = initiator; osmo_timer_setup(&priv->alive.timer, alive_timeout_handler, fi); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22293 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I240225ce82fa27dfcb5b4b8e2981bb4d8cc4cd70 Gerrit-Change-Number: 22293 Gerrit-PatchSet: 9 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 14:10:58 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 20 Jan 2021 14:10:58 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vc_fsm: in RESET accept RESET as ACK In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22324 ) Change subject: gprs_ns2_vc_fsm: in RESET accept RESET as ACK ...................................................................... gprs_ns2_vc_fsm: in RESET accept RESET as ACK When both side sends RESET at the same time 48.016 Change-Id: I49d2a4f257f45b7bc4f0a7a6c5b8381071893686 --- M src/gb/gprs_ns2_vc_fsm.c 1 file changed, 3 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/src/gb/gprs_ns2_vc_fsm.c b/src/gb/gprs_ns2_vc_fsm.c index 60c46e6..04d95f4 100644 --- a/src/gb/gprs_ns2_vc_fsm.c +++ b/src/gb/gprs_ns2_vc_fsm.c @@ -272,6 +272,9 @@ if (priv->initiate_reset) { switch (event) { + case GPRS_NS2_EV_RX_RESET: + ns2_tx_reset_ack(priv->nsvc); + /* fall-through */ case GPRS_NS2_EV_RX_RESET_ACK: osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_BLOCKED, nsi->timeout[NS_TOUT_TNS_BLOCK], NS_TOUT_TNS_BLOCK); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22324 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I49d2a4f257f45b7bc4f0a7a6c5b8381071893686 Gerrit-Change-Number: 22324 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 14:11:49 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 20 Jan 2021 14:11:49 +0000 Subject: Change in osmo-ci[master]: repo-install-test: tweak FEED syntax In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22327 ) Change subject: repo-install-test: tweak FEED syntax ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22327 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Icb36da91a6dc52529c2087b0961c1b698076eea1 Gerrit-Change-Number: 22327 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 20 Jan 2021 14:11:49 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 14:12:20 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 20 Jan 2021 14:12:20 +0000 Subject: Change in osmo-ci[master]: repo-install-test: add PROJ variable In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22328 ) Change subject: repo-install-test: add PROJ variable ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22328 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I0ac05a79ad65b5664b5ba37227b65e3b1422a4bf Gerrit-Change-Number: 22328 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 20 Jan 2021 14:12:20 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 14:12:55 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 20 Jan 2021 14:12:55 +0000 Subject: Change in osmo-ci[master]: repo-install-test: make HTTP, OBS vars local In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22329 ) Change subject: repo-install-test: make HTTP, OBS vars local ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22329 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I1dfddbd9311d741c03ceedb12aee9aeae6abdab8 Gerrit-Change-Number: 22329 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 20 Jan 2021 14:12:55 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 14:13:19 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 20 Jan 2021 14:13:19 +0000 Subject: Change in osmo-ci[master]: repo-install-test: put $PROJ in sources.list name In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22330 ) Change subject: repo-install-test: put $PROJ in sources.list name ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22330 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I8926443a9ff70f285d9467d39658e64456972b07 Gerrit-Change-Number: 22330 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 20 Jan 2021 14:13:19 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 14:13:34 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 20 Jan 2021 14:13:34 +0000 Subject: Change in osmo-ci[master]: repo-install-test: don't use $FEED in centos8 repo In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22331 ) Change subject: repo-install-test: don't use $FEED in centos8 repo ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22331 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ic316add6b2d9b6f50335cad762628bb16da61d82 Gerrit-Change-Number: 22331 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 20 Jan 2021 14:13:34 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 14:14:38 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 20 Jan 2021 14:14:38 +0000 Subject: Change in osmo-ci[master]: repo-install-test: download/add deb release key In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22332 ) Change subject: repo-install-test: download/add deb release key ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-ci/+/22332/1/scripts/repo-install-test/run-inside-docker.sh File scripts/repo-install-test/run-inside-docker.sh: https://gerrit.osmocom.org/c/osmo-ci/+/22332/1/scripts/repo-install-test/run-inside-docker.sh at a70 PS1, Line 70: Debian_9 unrelated to this patch: IT might make sense to switch to Debian_10 Debian_9.0 is EOL at some point this year, AFAIR -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22332 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I91e7a208d8f5cb50f8baa2fde0eb979aae91da8f Gerrit-Change-Number: 22332 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 20 Jan 2021 14:14:38 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 14:14:56 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 20 Jan 2021 14:14:56 +0000 Subject: Change in osmo-ci[master]: repo-install-test: cfg_osmocom_repo: add PROJ arg In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22333 ) Change subject: repo-install-test: cfg_osmocom_repo: add PROJ arg ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22333 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ib9946b5a02f8692efc8515907ba84048026474f9 Gerrit-Change-Number: 22333 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 20 Jan 2021 14:14:56 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 14:15:08 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 20 Jan 2021 14:15:08 +0000 Subject: Change in osmo-ci[master]: repo-install-test: add TESTS variable In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22334 ) Change subject: repo-install-test: add TESTS variable ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22334 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I8d817f47d790e4cdc25c5182a0e91b66a00fbf52 Gerrit-Change-Number: 22334 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 20 Jan 2021 14:15:08 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 14:15:25 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 20 Jan 2021 14:15:25 +0000 Subject: Change in osmo-ci[master]: repo-install-test: add test_conflict In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22335 ) Change subject: repo-install-test: add test_conflict ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22335 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Icf2a3a1d1de2ff42b1dc9aadf2075e5e1ff40291 Gerrit-Change-Number: 22335 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Wed, 20 Jan 2021 14:15:25 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 14:18:35 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 20 Jan 2021 14:18:35 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Move different network elements to different IPs In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22300 ) Change subject: gbproxy: Move different network elements to different IPs ...................................................................... gbproxy: Move different network elements to different IPs * SGSN0: 127.0.0.10 * SGSN1: 127.0.0.11 * PCU0: 127.0.1.1 * PCU1: 127.0.2.1 * PCU3: 127.0.3.1 Change-Id: I1762bfc237e679ee21d0446596f2c4f56f735a9d --- M gbproxy/GBProxy_Tests.cfg M gbproxy/GBProxy_Tests.ttcn M gbproxy/osmo-gbproxy.cfg 3 files changed, 7 insertions(+), 49 deletions(-) Approvals: Jenkins Builder: Verified lynxis lazus: Looks good to me, approved pespin: Looks good to me, but someone else must approve diff --git a/gbproxy/GBProxy_Tests.cfg b/gbproxy/GBProxy_Tests.cfg index e1e1eff..d610e40 100644 --- a/gbproxy/GBProxy_Tests.cfg +++ b/gbproxy/GBProxy_Tests.cfg @@ -21,48 +21,6 @@ } -GBProxy_Tests.mp_nsconfig_pcu := { - { - handle_sns := false, - nsvc := { - { - provider := { - ip := { - local_ip := "127.0.0.1", - remote_ip := "127.0.0.1" - } - } - } - } - }, - { - handle_sns := false, - nsvc := { - { - provider := { - ip := { - local_ip := "127.0.0.1", - remote_ip := "127.0.0.1" - } - } - } - } - }, - { - handle_sns := false, - nsvc := { - { - provider := { - ip := { - local_ip := "127.0.0.1", - remote_ip := "127.0.0.1" - } - } - } - } - } -} - [MAIN_CONTROLLER] [EXECUTE] diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index 487a799..9fa9c4f 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -65,7 +65,7 @@ ip := { address_family := AF_INET, local_udp_port := 7777, - local_ip := "127.0.0.1", + local_ip := "127.0.0.10", remote_udp_port := 23000, remote_ip := "127.0.0.1" } @@ -83,7 +83,7 @@ ip := { address_family := AF_INET, local_udp_port := 8888, - local_ip := "127.0.0.1", + local_ip := "127.0.0.11", remote_udp_port := 23000, remote_ip := "127.0.0.1" } @@ -107,7 +107,7 @@ ip := { address_family := AF_INET, local_udp_port := 21010, - local_ip := "127.0.0.1", + local_ip := "127.0.1.1", remote_udp_port := 23000, remote_ip := "127.0.0.1" } @@ -126,7 +126,7 @@ ip := { address_family := AF_INET, local_udp_port := 21020, - local_ip := "127.0.0.1", + local_ip := "127.0.2.1", remote_udp_port := 23000, remote_ip := "127.0.0.1" } @@ -145,7 +145,7 @@ ip := { address_family := AF_INET, local_udp_port := 21030, - local_ip := "127.0.0.1", + local_ip := "127.0.3.1", remote_udp_port := 23000, remote_ip := "127.0.0.1" } diff --git a/gbproxy/osmo-gbproxy.cfg b/gbproxy/osmo-gbproxy.cfg index 5789e3a..6f4b1e7 100644 --- a/gbproxy/osmo-gbproxy.cfg +++ b/gbproxy/osmo-gbproxy.cfg @@ -18,9 +18,9 @@ listen 127.0.0.1 23000 accept-ipaccess nse 101 - ip-sns 127.0.0.1 7777 + ip-sns 127.0.0.10 7777 nse 102 - ip-sns 127.0.0.1 8888 + ip-sns 127.0.0.11 8888 timer tns-block 3 timer tns-block-retries 3 timer tns-reset 3 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22300 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I1762bfc237e679ee21d0446596f2c4f56f735a9d Gerrit-Change-Number: 22300 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 14:18:36 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 20 Jan 2021 14:18:36 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Osmocom_Types: fix formatting of log line (missing ", ") In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22301 ) Change subject: Osmocom_Types: fix formatting of log line (missing ", ") ...................................................................... Osmocom_Types: fix formatting of log line (missing ", ") Change-Id: If4555cd2902e056b32e835daa741ee84b346b922 --- M library/Osmocom_Types.ttcn 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve daniel: Looks good to me, approved diff --git a/library/Osmocom_Types.ttcn b/library/Osmocom_Types.ttcn index 1cba168..e813a11 100644 --- a/library/Osmocom_Types.ttcn +++ b/library/Osmocom_Types.ttcn @@ -278,7 +278,7 @@ log("f_gen_tmsi(suffix:=", suffix, ", nri_v:=", nri_v, ", nri_bitlen:=", nri_bitlen, ", base_tmsi:=", base_tmsi, ") -> prefix:=", prefix_bits, ", suffix:=", suffix_bits, - "total_bits:=", total_bits, " == ", tmsi); + ", total_bits:=", total_bits, " == ", tmsi); return tmsi; } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22301 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If4555cd2902e056b32e835daa741ee84b346b922 Gerrit-Change-Number: 22301 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 14:18:37 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 20 Jan 2021 14:18:37 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Change logging settings In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22302 ) Change subject: gbproxy: Change logging settings ...................................................................... gbproxy: Change logging settings Change-Id: Ib153cfdb337ea0d748aa18e2b8eb16db01d79edd --- M gbproxy/osmo-gbproxy.cfg 1 file changed, 10 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified lynxis lazus: Looks good to me, approved laforge: Looks good to me, approved diff --git a/gbproxy/osmo-gbproxy.cfg b/gbproxy/osmo-gbproxy.cfg index 6f4b1e7..53dc0f2 100644 --- a/gbproxy/osmo-gbproxy.cfg +++ b/gbproxy/osmo-gbproxy.cfg @@ -2,6 +2,16 @@ ! Osmocom Gb Proxy (0.9.0.404-6463) configuration saved from vty !! ! +log stderr + logging filter all 1 + logging color 1 + logging print category 1 + logging print category-hex 0 + logging timestamp 1 + logging print file 1 + logging level lns debug + logging level lbssgp debug + logging level gprs debug line vty no login ! -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22302 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ib153cfdb337ea0d748aa18e2b8eb16db01d79edd Gerrit-Change-Number: 22302 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 14:18:37 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 20 Jan 2021 14:18:37 +0000 Subject: Change in osmo-ttcn3-hacks[master]: NS_Emulation: Dynamically compute list of v4/v6 endpoints in SNS-CONFIG In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22303 ) Change subject: NS_Emulation: Dynamically compute list of v4/v6 endpoints in SNS-CONFIG ...................................................................... NS_Emulation: Dynamically compute list of v4/v6 endpoints in SNS-CONFIG Don't hard-code the assumption that we only have a single IP[v4] endpoint. Related: OS#4953 Change-Id: I43fe5810b95ebbc9f848856803ac2c71f80d74f3 --- M library/NS_Emulation.ttcnpp 1 file changed, 40 insertions(+), 3 deletions(-) Approvals: Jenkins Builder: Verified lynxis lazus: Looks good to me, approved daniel: Looks good to me, but someone else must approve diff --git a/library/NS_Emulation.ttcnpp b/library/NS_Emulation.ttcnpp index d6c7f61..7bede94 100644 --- a/library/NS_Emulation.ttcnpp +++ b/library/NS_Emulation.ttcnpp @@ -491,6 +491,42 @@ } } + /* generate a list of v4 + v6 endpoints based on the NSVConfigurations. This is not strictly + * accurate, as we should create a list of _endpoints_, while we actually create a list of + * NSVCs. Those are only identical as long as our peer only implements one endpoint */ + private function gen_sns_ip_elems(out template (omit) IP4_Elements v4_out, + out template (omit) IP6_Elements v6_out) runs on NSVC_CT { + var integer i; + var IP4_Elements v4 := {}; + var IP6_Elements v6 := {}; + + for (i := 0; i < lengthof(g_config.nsvc); i := i + 1) { + var NSVCConfiguration nsvc_cfg := g_config.nsvc[i]; + if (not ischosen(nsvc_cfg.provider.ip)) { + continue; + } + if (nsvc_cfg.provider.ip.address_family == AF_INET) { + v4 := v4 & { valueof(ts_SNS_IPv4(nsvc_cfg.provider.ip.local_ip, + nsvc_cfg.provider.ip.local_udp_port)) }; + } else if (nsvc_cfg.provider.ip.address_family == AF_INET6) { + v6 := v6 & { valueof(ts_SNS_IPv6(nsvc_cfg.provider.ip.local_ip, + nsvc_cfg.provider.ip.local_udp_port)) }; + } + } + + /* we must not return empty lists, but 'omit' as otherwise we get wrong SNS IEs */ + if (lengthof(v4) == 0) { + v4_out := omit; + } else { + v4_out := v4; + } + if (lengthof(v6) == 0) { + v6_out := omit; + } else { + v6_out := v6; + } + } + /* simple IP Sub-Network Service responder for the SGSN side. This is not a full implementation * of the protocol, merely sufficient to make the PCU/BSS side happy to proceed */ private altstep as_sns_sgsn() runs on NSVC_CT { @@ -513,9 +549,10 @@ /* blindly acknowledge whatever the PCU sends */ NSCP.send(ts_SNS_CONFIG_ACK(g_config.nsei, omit)); /* send a SNS-CONFIG in response and expect a SNS-CONFIG-ACK */ - var IP4_Elements v4 := { valueof(ts_SNS_IPv4(g_nsvc_config.provider.ip.local_ip, - g_nsvc_config.provider.ip.local_udp_port)) }; - NSCP.send(ts_SNS_CONFIG(g_config.nsei, true, v4)); + var template (omit) IP4_Elements v4; + var template (omit) IP6_Elements v6; + gen_sns_ip_elems(v4, v6); + NSCP.send(ts_SNS_CONFIG(g_config.nsei, true, v4, v6)); alt { [] NSCP.receive(tr_SNS_CONFIG_ACK(g_config.nsei, omit)) { /* success */ -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22303 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I43fe5810b95ebbc9f848856803ac2c71f80d74f3 Gerrit-Change-Number: 22303 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 14:18:54 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 20 Jan 2021 14:18:54 +0000 Subject: Change in osmo-ttcn3-hacks[master]: NS_Emulation: Move SNS handling from NS-VC to NS-VCG In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22304 ) Change subject: NS_Emulation: Move SNS handling from NS-VC to NS-VCG ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22304 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ie0f4342a0346952d7c50ac36900148e311d4c782 Gerrit-Change-Number: 22304 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Wed, 20 Jan 2021 14:18:54 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 14:18:55 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 20 Jan 2021 14:18:55 +0000 Subject: Change in osmo-ttcn3-hacks[master]: NS_Emulation: Move SNS handling from NS-VC to NS-VCG In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22304 ) Change subject: NS_Emulation: Move SNS handling from NS-VC to NS-VCG ...................................................................... NS_Emulation: Move SNS handling from NS-VC to NS-VCG We need to move the IP-SNS handling up one layer, as only the NS-VCG knows all the other NS-VCs, and after the SNS-CONFIG-ACK, we must mark all of our NS-VCs as alive and start the alive procedure. Related: OS#4953 Change-Id: Ie0f4342a0346952d7c50ac36900148e311d4c782 --- M library/NS_Emulation.ttcnpp M library/Osmocom_Gb_Types.ttcn 2 files changed, 159 insertions(+), 77 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved daniel: Looks good to me, but someone else must approve diff --git a/library/NS_Emulation.ttcnpp b/library/NS_Emulation.ttcnpp index 7bede94..03aeb6a 100644 --- a/library/NS_Emulation.ttcnpp +++ b/library/NS_Emulation.ttcnpp @@ -183,7 +183,7 @@ port NS_SP_PT NS_SP; /* port towards the per-NSVC components */ - port NS_PT NSVC; + port NSint_PT NSVC; /* all of the NS configuration a user passes to us */ var NSConfiguration g_config; @@ -202,6 +202,43 @@ type record of NsvcTableEntry NsvcTable; type record of integer ro_integer; + /* internal port from the NS-VC point of view */ + type port NSint_SP_PT message { + in NsUnitdataRequest, + SnsRequest, + NsCtrlRequest; + out NsUnitdataIndication, + SnsIndication, + NsStatusIndication; + } with { extension "internal" }; + + /* internal port from the NS-VCG point of view */ + type port NSint_PT message { + in ASP_Event, + NsStatusIndication, + SnsIndication, + NsUnitdataIndication; + out NsUnitdataRequest, + SnsRequest, + NsCtrlRequest; + } with { extension "internal" }; + + /* Used by NS-VC to report reception of a SNS PDU to NS-VCG */ + type record SnsIndication { + Nsvci nsvci, + PDU_NS ns + }; + + /* Used by NS-VCG to request transmission of a SNS PDU via a NS-VC */ + type record SnsRequest { + Nsvci nsvci, + PDU_NS ns + }; + + type enumerated NsCtrlRequest { + StartAliveProcedure (0) + }; + /* add one NSVC (component and table entry */ function f_nsvc_add(NSVCConfiguration nsvc_cfg) runs on NS_CT { var charstring nsvc_id := g_id & "-NSVCI" & int2str(nsvc_cfg.nsvci); @@ -320,6 +357,9 @@ [] NSVC.receive(tr_NsUdInd(g_config.nsei, ?, ?)) -> value rx_nsudi { NS_SP.send(rx_nsudi); } + + [g_config.handle_sns and g_config.role_sgsn] as_vcg_sns_sgsn(); + [] NSVC.receive(tr_NsUdInd(?, ?, ?)) -> value rx_nsudi { Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, log2str("Received UnitDataInd for invalid NSEI: ", rx_nsudi)); @@ -336,6 +376,92 @@ } } + /* generate a list of v4 + v6 endpoints based on the NSVConfigurations. This is not strictly + * accurate, as we should create a list of _endpoints_, while we actually create a list of + * NSVCs. Those are only identical as long as our peer only implements one endpoint */ + private function gen_sns_ip_elems(out template (omit) IP4_Elements v4_out, + out template (omit) IP6_Elements v6_out) runs on NS_CT { + var integer i; + var IP4_Elements v4 := {}; + var IP6_Elements v6 := {}; + + for (i := 0; i < lengthof(g_config.nsvc); i := i + 1) { + var NSVCConfiguration nsvc_cfg := g_config.nsvc[i]; + if (not ischosen(nsvc_cfg.provider.ip)) { + continue; + } + if (nsvc_cfg.provider.ip.address_family == AF_INET) { + v4 := v4 & { valueof(ts_SNS_IPv4(nsvc_cfg.provider.ip.local_ip, + nsvc_cfg.provider.ip.local_udp_port)) }; + } else if (nsvc_cfg.provider.ip.address_family == AF_INET6) { + v6 := v6 & { valueof(ts_SNS_IPv6(nsvc_cfg.provider.ip.local_ip, + nsvc_cfg.provider.ip.local_udp_port)) }; + } + } + + /* we must not return empty lists, but 'omit' as otherwise we get wrong SNS IEs */ + if (lengthof(v4) == 0) { + v4_out := omit; + } else { + v4_out := v4; + } + if (lengthof(v6) == 0) { + v6_out := omit; + } else { + v6_out := v6; + } + } + + /* simple IP Sub-Network Service responder for the SGSN side. This is not a full implementation + * of the protocol, merely sufficient to make the PCU/BSS side happy to proceed */ + private altstep as_vcg_sns_sgsn() runs on NS_CT { + var SnsIndication sind; + var NSVC_CT vc; + [] NSVC.receive(SnsIndication:{?, tr_SNS_SIZE(g_config.nsei)}) -> value sind sender vc { + /* blindly acknowledge whatever the PCU sends */ + NSVC.send(SnsRequest:{sind.nsvci, ts_SNS_SIZE_ACK(g_config.nsei, omit)}) to vc; + } + /* FIXME: We assume our peer has only one endpoint */ + [] NSVC.receive(SnsIndication:{?, tr_SNS_CONFIG(g_config.nsei, true, + {tr_SNS_IPv4(g_config.nsvc[0].provider.ip.remote_ip, + g_config.nsvc[0].provider.ip.remote_udp_port)})}) + -> value sind sender vc { + /* blindly acknowledge whatever the PCU sends */ + NSVC.send(SnsRequest:{sind.nsvci, ts_SNS_CONFIG_ACK(g_config.nsei, omit)}) to vc; + /* send a SNS-CONFIG in response and expect a SNS-CONFIG-ACK */ + var template (omit) IP4_Elements v4; + var template (omit) IP6_Elements v6; + gen_sns_ip_elems(v4, v6); + NSVC.send(SnsRequest:{sind.nsvci, + ts_SNS_CONFIG(g_config.nsei, true, v4, v6)}) to vc; + alt { + [] NSVC.receive(SnsIndication:{sind.nsvci, + tr_SNS_CONFIG_ACK(g_config.nsei, omit)}) from vc { + /* success */ + log("SNS Config succeeded. Sending Alive"); + /* inform all NS-VC that they are now considered alive */ + for (var integer i := 0; i < lengthof(g_nsvcs); i := i+1) { + NSVC.send(NsCtrlRequest:StartAliveProcedure) to g_nsvcs[i].vc_conn; + } + } + [] NSVC.receive(SnsIndication:{sind.nsvci, + tr_SNS_CONFIG_ACK(g_config.nsei, ?)}) from vc { + setverdict(fail, "Unexpected SNS-CONFIG-NACK"); + self.stop; + } + } + } + [] NSVC.receive(SnsIndication:{?, tr_SNS_CONFIG(g_config.nsei, false, ?)}) { /* ignore */} + [] NSVC.receive(SnsIndication:{?, tr_SNS_CONFIG(g_config.nsei, true, ?)}) { + setverdict(fail, "Unexpected SNS-CONFIG content"); + self.stop; + } + [] NSVC.receive(SnsIndication:{?, tr_SNS_CONFIG(?, ?, ?)}) { + setverdict(fail, "SNS-CONFIG from unexpected NSEI"); + self.stop; + } + } + /*********************************************************************** per-NSVC component. Exists once for each NS-VC in the NS-VCG ***********************************************************************/ @@ -349,7 +475,7 @@ #endif /* port towards the NS_CT */ - port NS_SP_PT NS_SP; + port NSint_SP_PT NS_SP; /* configuration passed by the user */ var NSVCConfiguration g_nsvc_config; @@ -454,7 +580,7 @@ [not g_config.handle_sns] as_handle_reset(); - [g_config.role_sgsn and g_config.handle_sns and ischosen(g_nsvc_config.provider.ip)] as_sns_sgsn(); + [g_config.handle_sns and ischosen(g_nsvc_config.provider.ip)] as_nsvc_sns(); /* default case of handling unknown PDUs */ [] NSCP.receive(PDU_NS: ?) -> value rf { @@ -491,90 +617,32 @@ } } - /* generate a list of v4 + v6 endpoints based on the NSVConfigurations. This is not strictly - * accurate, as we should create a list of _endpoints_, while we actually create a list of - * NSVCs. Those are only identical as long as our peer only implements one endpoint */ - private function gen_sns_ip_elems(out template (omit) IP4_Elements v4_out, - out template (omit) IP6_Elements v6_out) runs on NSVC_CT { - var integer i; - var IP4_Elements v4 := {}; - var IP6_Elements v6 := {}; - - for (i := 0; i < lengthof(g_config.nsvc); i := i + 1) { - var NSVCConfiguration nsvc_cfg := g_config.nsvc[i]; - if (not ischosen(nsvc_cfg.provider.ip)) { - continue; - } - if (nsvc_cfg.provider.ip.address_family == AF_INET) { - v4 := v4 & { valueof(ts_SNS_IPv4(nsvc_cfg.provider.ip.local_ip, - nsvc_cfg.provider.ip.local_udp_port)) }; - } else if (nsvc_cfg.provider.ip.address_family == AF_INET6) { - v6 := v6 & { valueof(ts_SNS_IPv6(nsvc_cfg.provider.ip.local_ip, - nsvc_cfg.provider.ip.local_udp_port)) }; - } - } - - /* we must not return empty lists, but 'omit' as otherwise we get wrong SNS IEs */ - if (lengthof(v4) == 0) { - v4_out := omit; - } else { - v4_out := v4; - } - if (lengthof(v6) == 0) { - v6_out := omit; - } else { - v6_out := v6; - } - } - - /* simple IP Sub-Network Service responder for the SGSN side. This is not a full implementation - * of the protocol, merely sufficient to make the PCU/BSS side happy to proceed */ - private altstep as_sns_sgsn() runs on NSVC_CT { + private altstep as_nsvc_sns() runs on NSVC_CT { var PDU_NS rf; + var SnsRequest sreq; [] NSCP.receive(NS_Provider_Evt:{link_status:=NS_PROV_LINK_STATUS_UP}) { log("Provider Link came up. Waiting for SNS Size"); - } + } - [] NSCP.receive(tr_SNS_SIZE(g_config.nsei)) -> value rf { - /* blindly acknowledge whatever the PCU sends */ - NSCP.send(ts_SNS_SIZE_ACK(g_config.nsei, omit)); + /* pass up to NS-VCG */ + [] NSCP.receive(tr_SNS(g_config.nsei)) -> value rf { + NS_SP.send(SnsIndication:{g_nsvc_config.nsvci, rf}); } - [] NSCP.receive(tr_SNS_SIZE(?)) { - setverdict(fail, "SNS-SIZE from unexpected NSEI"); + [] NSCP.receive(tr_SNS(?)) -> value rf { + setverdict(fail, "SNS from unexpected NSEI: ", rf); self.stop; } - [] NSCP.receive(tr_SNS_CONFIG(g_config.nsei, true, - {tr_SNS_IPv4(g_nsvc_config.provider.ip.remote_ip, - g_nsvc_config.provider.ip.remote_udp_port)})) -> value rf { - /* blindly acknowledge whatever the PCU sends */ - NSCP.send(ts_SNS_CONFIG_ACK(g_config.nsei, omit)); - /* send a SNS-CONFIG in response and expect a SNS-CONFIG-ACK */ - var template (omit) IP4_Elements v4; - var template (omit) IP6_Elements v6; - gen_sns_ip_elems(v4, v6); - NSCP.send(ts_SNS_CONFIG(g_config.nsei, true, v4, v6)); - alt { - [] NSCP.receive(tr_SNS_CONFIG_ACK(g_config.nsei, omit)) { - /* success */ - log("SNS Config succeeded. Sending Alive"); - f_change_state(NSVC_S_ALIVE_UNBLOCKED); - f_sendAlive(); - Tns_test.start; - } - [] NSCP.receive(tr_SNS_CONFIG_ACK(g_config.nsei, ?)) { - setverdict(fail, "Unexpected SNS-CONFIG-NACK"); - self.stop; - } - } + [] NS_SP.receive(SnsRequest:{g_nsvc_config.nsvci, ?}) -> value sreq { + NSCP.send(sreq.ns); } - [] NSCP.receive(tr_SNS_CONFIG(g_config.nsei, false, ?)) { /* ignore */} - [] NSCP.receive(tr_SNS_CONFIG(g_config.nsei, true, ?)) { - setverdict(fail, "Unexpected SNS-CONFIG content"); + [] NS_SP.receive(SnsRequest:?) -> value sreq { + setverdict(fail, "Unexpected SNS from NSVC: ", sreq); self.stop; } - [] NSCP.receive(tr_SNS_CONFIG(?, ?, ?)) { - setverdict(fail, "SNS-CONFIG from unexpected NSEI"); - self.stop; + [] NS_SP.receive(NsCtrlRequest:StartAliveProcedure) { + f_change_state(NSVC_S_ALIVE_UNBLOCKED); + f_sendAlive(); + Tns_test.start; } } diff --git a/library/Osmocom_Gb_Types.ttcn b/library/Osmocom_Gb_Types.ttcn index f97b9b0..9065097 100644 --- a/library/Osmocom_Gb_Types.ttcn +++ b/library/Osmocom_Gb_Types.ttcn @@ -531,6 +531,10 @@ var template ListofIP4Elements r; if (istemplatekind(elem, "omit")) { return omit; + } else if (istemplatekind(elem, "*")) { + return *; + } else if (istemplatekind(elem, "?")) { + return ?; } else { r := { iEI := '05'O, @@ -568,6 +572,8 @@ return omit; } else if (istemplatekind(elem, "*")) { return *; + } else if (istemplatekind(elem, "?")) { + return ?; } else { r := { iEI := '06'O, @@ -722,6 +728,14 @@ } } + template PDU_NS tr_SNS(template Nsei nsei) := ( tr_SNS_SIZE(nsei), + tr_SNS_SIZE_ACK(nsei, *), + tr_SNS_CONFIG(nsei, ?, *, *), + tr_SNS_CONFIG_ACK(nsei, *), + tr_SNS_ADD(nsei, ?, *, *), + tr_SNS_DEL(nsei, ?, *, *), + tr_SNS_CHG_WEIGHT(nsei, ?, *, *), + tr_SNS_ACK(nsei, ?, *, *, *) ) -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22304 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ie0f4342a0346952d7c50ac36900148e311d4c782 Gerrit-Change-Number: 22304 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 14:42:23 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 20 Jan 2021 14:42:23 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Connect to RIM port from BSSGP_Emulation In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22336 ) Change subject: pcu: Connect to RIM port from BSSGP_Emulation ...................................................................... pcu: Connect to RIM port from BSSGP_Emulation It will be used in next commits to test RIM related topics (such as NACC). Change-Id: I8113d9ef5433ae0976227408133a53397aeae41a --- M pcu/SGSN_Components.ttcn 1 file changed, 3 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/pcu/SGSN_Components.ttcn b/pcu/SGSN_Components.ttcn index 08d9231..a55d791 100644 --- a/pcu/SGSN_Components.ttcn +++ b/pcu/SGSN_Components.ttcn @@ -89,6 +89,7 @@ var NS_CT ns_component; var BSSGP_CT bssgp_component; port BSSGP_CT_PROC_PT PROC; + port BSSGP_PT RIM; var boolean g_initialized := false; } @@ -125,6 +126,8 @@ connect(self:BSSGP_PROC[i], vc_BVC:BSSGP_PROC); f_bssgp_client_register(mmctx.imsi, mmctx.tlli); } + /* connect RIM related port */ + connect(self:RIM, bssgp_component:RIM); connect(self:BSSGP_GLOBAL[0], bssgp_component:GLOBAL); } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22336 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I8113d9ef5433ae0976227408133a53397aeae41a Gerrit-Change-Number: 22336 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 14:50:28 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 20 Jan 2021 14:50:28 +0000 Subject: Change in libosmocore[master]: ns2: Unify logging context via log macros In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22337 ) Change subject: ns2: Unify logging context via log macros ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22337 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I946c0e77686d91efc5afb62031e1ac1033a9a586 Gerrit-Change-Number: 22337 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 20 Jan 2021 14:50:28 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 14:57:54 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 20 Jan 2021 14:57:54 +0000 Subject: Change in osmo-ttcn3-hacks[master]: NS_Emulation: Respect data_weight==0 or signalling_weight==0 In-Reply-To: References: Message-ID: Hello Jenkins Builder, daniel, lynxis lazus, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22305 to look at the new patch set (#3). Change subject: NS_Emulation: Respect data_weight==0 or signalling_weight==0 ...................................................................... NS_Emulation: Respect data_weight==0 or signalling_weight==0 * allow configuration of signalling + data weight for each NS-VC * advertise per-NSVC signalling/data weight in SNS-CONFIG * keep track of unblocked NS-VCS separately for data / signalling * transmit BVCI=0 traffic only over signalling NS-VC * transmit BVCI>0 traffic only over data NS-VC * accept incoming BVCI=0 traffic only if signalling_weight > 0 * accept incoming BVCI>0 traffic only if data_weight > 0 Related: OS#4953 Change-Id: I9798e639b4bc8658482945970775b012b5840779 --- M gbproxy/GBProxy_Tests.ttcn M library/NS_Emulation.ttcnpp M library/Osmocom_Gb_Types.ttcn M pcu/PCU_Tests.cfg M pcu/PCU_Tests_SNS.cfg M pcu/PCU_Tests_SNSv6.cfg M sgsn/SGSN_Tests.ttcn 7 files changed, 153 insertions(+), 33 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/05/22305/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22305 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I9798e639b4bc8658482945970775b012b5840779 Gerrit-Change-Number: 22305 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 14:57:54 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 20 Jan 2021 14:57:54 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Use separate NS-VC for data / signalling on SGSN side In-Reply-To: References: Message-ID: Hello Jenkins Builder, daniel, lynxis lazus, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22306 to look at the new patch set (#3). Change subject: gbproxy: Use separate NS-VC for data / signalling on SGSN side ...................................................................... gbproxy: Use separate NS-VC for data / signalling on SGSN side As we know, many production deployments have SGSN architectures with clear control / user plane split. In such situations, IP-SNS of the SGSN informs us of two (classes of) IP endpoints: some that have control_weight > 0 and data_weight 0 some that have control_weight 0 and data_weight > 0 Let's adjust the GBProxy_Tests.ttcn to use such a configuration for each of the two simulated SGSNs. Change-Id: If0e404bdf2c30a5e18748695608611be83f61109 Closes: OS#4953 --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 28 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/06/22306/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22306 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If0e404bdf2c30a5e18748695608611be83f61109 Gerrit-Change-Number: 22306 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 14:58:58 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 20 Jan 2021 14:58:58 +0000 Subject: Change in libosmocore[master]: vty/fsm_vty: Add vty_out_fsm2() + vty_out_fsm_inst2() with prefix In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22322 ) Change subject: vty/fsm_vty: Add vty_out_fsm2() + vty_out_fsm_inst2() with prefix ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22322 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I10e01ef91116369868cdb878a99634c8681728af Gerrit-Change-Number: 22322 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 20 Jan 2021 14:58:58 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 14:59:00 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 20 Jan 2021 14:59:00 +0000 Subject: Change in libosmocore[master]: ns2: Properly indent VTY output In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22323 ) Change subject: ns2: Properly indent VTY output ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22323 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Id1b4c80a6caef410076a68b4301adaa01ba7e57a Gerrit-Change-Number: 22323 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 20 Jan 2021 14:59:00 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 14:59:03 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 20 Jan 2021 14:59:03 +0000 Subject: Change in libosmocore[master]: vty/fsm_vty: Add vty_out_fsm2() + vty_out_fsm_inst2() with prefix In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22322 ) Change subject: vty/fsm_vty: Add vty_out_fsm2() + vty_out_fsm_inst2() with prefix ...................................................................... vty/fsm_vty: Add vty_out_fsm2() + vty_out_fsm_inst2() with prefix Callers other than "show fsm" / "show fsm-instances" may want to indent the output. Change-Id: I10e01ef91116369868cdb878a99634c8681728af --- M include/osmocom/vty/misc.h M src/vty/fsm_vty.c 2 files changed, 48 insertions(+), 26 deletions(-) Approvals: laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/include/osmocom/vty/misc.h b/include/osmocom/vty/misc.h index 2ad9650..ea31c5b 100644 --- a/include/osmocom/vty/misc.h +++ b/include/osmocom/vty/misc.h @@ -28,7 +28,9 @@ struct osmo_fsm; struct osmo_fsm_inst; void vty_out_fsm(struct vty *vty, struct osmo_fsm *fsm); +void vty_out_fsm2(struct vty *vty, const char *prefix, struct osmo_fsm *fsm); void vty_out_fsm_inst(struct vty *vty, struct osmo_fsm_inst *fsmi); +void vty_out_fsm_inst2(struct vty *vty, const char *prefix, struct osmo_fsm_inst *fsmi); void osmo_fsm_vty_add_cmds(void); void osmo_talloc_vty_add_cmds(void); diff --git a/src/vty/fsm_vty.c b/src/vty/fsm_vty.c index 3169ee7..83a8e79 100644 --- a/src/vty/fsm_vty.c +++ b/src/vty/fsm_vty.c @@ -51,60 +51,80 @@ /*! Print information about a FSM [class] to the given VTY * \param vty The VTY to which to print + * \param[in] prefix prefix to print at start of each line (typically indenting) * \param[in] fsm The FSM class to print */ -void vty_out_fsm(struct vty *vty, struct osmo_fsm *fsm) +void vty_out_fsm2(struct vty *vty, const char *prefix, struct osmo_fsm *fsm) { unsigned int i; const struct value_string *evt_name; - vty_out(vty, "FSM Name: '%s', Log Subsys: '%s'%s", fsm->name, + vty_out(vty, "%sFSM Name: '%s', Log Subsys: '%s'%s", prefix, fsm->name, log_category_name(fsm->log_subsys), VTY_NEWLINE); /* list the events */ if (fsm->event_names) { for (evt_name = fsm->event_names; evt_name->str != NULL; evt_name++) { - vty_out(vty, " Event %02u (0x%08x): '%s'%s", evt_name->value, + vty_out(vty, "%s Event %02u (0x%08x): '%s'%s", prefix, evt_name->value, (1 << evt_name->value), evt_name->str, VTY_NEWLINE); } } else - vty_out(vty, " No event names are defined for this FSM! Please fix!%s", VTY_NEWLINE); + vty_out(vty, "%s No event names are defined for this FSM! Please fix!%s", prefix, VTY_NEWLINE); /* list the states */ - vty_out(vty, " Number of States: %u%s", fsm->num_states, VTY_NEWLINE); + vty_out(vty, "%s Number of States: %u%s", prefix, fsm->num_states, VTY_NEWLINE); for (i = 0; i < fsm->num_states; i++) { const struct osmo_fsm_state *state = &fsm->states[i]; - vty_out(vty, " State %-20s InEvtMask: 0x%08x, OutStateMask: 0x%08x%s", + vty_out(vty, "%s State %-20s InEvtMask: 0x%08x, OutStateMask: 0x%08x%s", prefix, state->name, state->in_event_mask, state->out_state_mask, VTY_NEWLINE); } } +/*! Print information about a FSM [class] to the given VTY + * \param vty The VTY to which to print + * \param[in] fsm The FSM class to print + */ +void vty_out_fsm(struct vty *vty, struct osmo_fsm *fsm) +{ + vty_out_fsm2(vty, "", fsm); +} + +/*! Print a FSM instance to the given VTY + * \param vty The VTY to which to print + * \param[in] prefix prefix to print at start of each line (typically indenting) + * \param[in] fsmi The FSM instance to print + */ +void vty_out_fsm_inst2(struct vty *vty, const char *prefix, struct osmo_fsm_inst *fsmi) +{ + struct osmo_fsm_inst *child; + + vty_out(vty, "%sFSM Instance Name: '%s', ID: '%s'%s", prefix, + fsmi->name, fsmi->id, VTY_NEWLINE); + vty_out(vty, "%s Log-Level: '%s', State: '%s'%s", prefix, + log_level_str(fsmi->log_level), + osmo_fsm_state_name(fsmi->fsm, fsmi->state), + VTY_NEWLINE); + if (fsmi->T) + vty_out(vty, "%s Timer: %u%s", prefix, fsmi->T, VTY_NEWLINE); + if (fsmi->proc.parent) { + vty_out(vty, "%s Parent: '%s', Term-Event: '%s'%s", prefix, + fsmi->proc.parent->name, + osmo_fsm_event_name(fsmi->proc.parent->fsm, + fsmi->proc.parent_term_event), + VTY_NEWLINE); + } + llist_for_each_entry(child, &fsmi->proc.children, proc.child) { + vty_out(vty, "%s Child: '%s'%s", prefix, child->name, VTY_NEWLINE); + } +} + /*! Print a FSM instance to the given VTY * \param vty The VTY to which to print * \param[in] fsmi The FSM instance to print */ void vty_out_fsm_inst(struct vty *vty, struct osmo_fsm_inst *fsmi) { - struct osmo_fsm_inst *child; - - vty_out(vty, "FSM Instance Name: '%s', ID: '%s'%s", - fsmi->name, fsmi->id, VTY_NEWLINE); - vty_out(vty, " Log-Level: '%s', State: '%s'%s", - log_level_str(fsmi->log_level), - osmo_fsm_state_name(fsmi->fsm, fsmi->state), - VTY_NEWLINE); - if (fsmi->T) - vty_out(vty, " Timer: %u%s", fsmi->T, VTY_NEWLINE); - if (fsmi->proc.parent) { - vty_out(vty, " Parent: '%s', Term-Event: '%s'%s", - fsmi->proc.parent->name, - osmo_fsm_event_name(fsmi->proc.parent->fsm, - fsmi->proc.parent_term_event), - VTY_NEWLINE); - } - llist_for_each_entry(child, &fsmi->proc.children, proc.child) { - vty_out(vty, " Child: '%s'%s", child->name, VTY_NEWLINE); - } + vty_out_fsm_inst2(vty, "", fsmi); } #define SH_FSM_STR SHOW_STR "Show information about finite state machines\n" -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22322 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I10e01ef91116369868cdb878a99634c8681728af Gerrit-Change-Number: 22322 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 14:59:04 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 20 Jan 2021 14:59:04 +0000 Subject: Change in libosmocore[master]: ns2: Properly indent VTY output In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22323 ) Change subject: ns2: Properly indent VTY output ...................................................................... ns2: Properly indent VTY output If multiple objects are printed in the VTY, only the first line of each object should be on the first character of the line, all others should be indented. With this patch the "snow ns entities" output becomes much more readable: OsmoGbProxy> show ns entities NSEI 00102: UDP, DEAD FSM Instance Name: 'GPRS-NS2-SNS-BSS(NSE00102-SNS)[0x6120000018a0]', ID: 'NSE00102-SNS' Log-Level: 'DEBUG', State: 'SIZE' Timer: 1 Maximum number of remote NS-VCs: 8, IPv4 Endpoints: 4, IPv6 Endpoints: 0 NSVCI none: UNCONFIGURED DYNAMIC data_weight=1 sig_weight=1 udp)[127.0.0.1]:23000<>[127.0.0.11]:8888 NSEI 00101: UDP, DEAD FSM Instance Name: 'GPRS-NS2-SNS-BSS(NSE00101-SNS)[0x6120000015a0]', ID: 'NSE00101-SNS' Log-Level: 'DEBUG', State: 'SIZE' Timer: 1 Maximum number of remote NS-VCs: 8, IPv4 Endpoints: 4, IPv6 Endpoints: 0 NSVCI none: UNCONFIGURED DYNAMIC data_weight=1 sig_weight=1 udp)[127.0.0.1]:23000<>[127.0.0.10]:7777 Change-Id: Id1b4c80a6caef410076a68b4301adaa01ba7e57a --- M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_sns.c M src/gb/gprs_ns2_vty.c M src/gb/gprs_ns2_vty2.c 4 files changed, 20 insertions(+), 19 deletions(-) Approvals: laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/gb/gprs_ns2_internal.h b/src/gb/gprs_ns2_internal.h index cb5c2bd..ebb2e3b 100644 --- a/src/gb/gprs_ns2_internal.h +++ b/src/gb/gprs_ns2_internal.h @@ -245,7 +245,7 @@ struct msgb *gprs_ns2_msgb_alloc(void); void gprs_ns2_sns_write_vty(struct vty *vty, const struct gprs_ns2_nse *nse); -void gprs_ns2_sns_dump_vty(struct vty *vty, const struct gprs_ns2_nse *nse, bool stats); +void gprs_ns2_sns_dump_vty(struct vty *vty, const char *prefix, const struct gprs_ns2_nse *nse, bool stats); void ns2_prim_status_ind(struct gprs_ns2_nse *nse, struct gprs_ns2_vc *nsvc, uint16_t bvci, diff --git a/src/gb/gprs_ns2_sns.c b/src/gb/gprs_ns2_sns.c index e574b44..72e4ea7 100644 --- a/src/gb/gprs_ns2_sns.c +++ b/src/gb/gprs_ns2_sns.c @@ -1499,28 +1499,29 @@ #include #include -static void vty_dump_sns_ip4(struct vty *vty, const struct gprs_ns_ie_ip4_elem *ip4) +static void vty_dump_sns_ip4(struct vty *vty, const char *prefix, const struct gprs_ns_ie_ip4_elem *ip4) { struct in_addr in = { .s_addr = ip4->ip_addr }; - vty_out(vty, " %s:%u, Signalling Weight: %u, Data Weight: %u%s", + vty_out(vty, "%s %s:%u, Signalling Weight: %u, Data Weight: %u%s", prefix, inet_ntoa(in), ntohs(ip4->udp_port), ip4->sig_weight, ip4->data_weight, VTY_NEWLINE); } -static void vty_dump_sns_ip6(struct vty *vty, const struct gprs_ns_ie_ip6_elem *ip6) +static void vty_dump_sns_ip6(struct vty *vty, const char *prefix, const struct gprs_ns_ie_ip6_elem *ip6) { char ip_addr[INET6_ADDRSTRLEN] = {}; if (!inet_ntop(AF_INET6, &ip6->ip_addr, ip_addr, (INET6_ADDRSTRLEN))) strcpy(ip_addr, "Invalid IPv6"); - vty_out(vty, " %s:%u, Signalling Weight: %u, Data Weight: %u%s", + vty_out(vty, "%s %s:%u, Signalling Weight: %u, Data Weight: %u%s", prefix, ip_addr, ntohs(ip6->udp_port), ip6->sig_weight, ip6->data_weight, VTY_NEWLINE); } /*! Dump the IP-SNS state to a vty. * \param[in] vty VTY to which the state shall be printed + * \param[in] prefix prefix to print at start of each line (typically indenting) * \param[in] nse NS Entity whose IP-SNS state shall be printed * \param[in] stats Whether or not statistics shall also be printed */ -void gprs_ns2_sns_dump_vty(struct vty *vty, const struct gprs_ns2_nse *nse, bool stats) +void gprs_ns2_sns_dump_vty(struct vty *vty, const char *prefix, const struct gprs_ns2_nse *nse, bool stats) { struct ns2_sns_state *gss; unsigned int i; @@ -1528,30 +1529,30 @@ if (!nse->bss_sns_fi) return; - vty_out_fsm_inst(vty, nse->bss_sns_fi); + vty_out_fsm_inst2(vty, prefix, nse->bss_sns_fi); gss = (struct ns2_sns_state *) nse->bss_sns_fi->priv; - vty_out(vty, "Maximum number of remote NS-VCs: %zu, IPv4 Endpoints: %zu, IPv6 Endpoints: %zu%s", - gss->num_max_nsvcs, gss->num_max_ip4_remote, gss->num_max_ip6_remote, VTY_NEWLINE); + vty_out(vty, "%sMaximum number of remote NS-VCs: %zu, IPv4 Endpoints: %zu, IPv6 Endpoints: %zu%s", + prefix, gss->num_max_nsvcs, gss->num_max_ip4_remote, gss->num_max_ip6_remote, VTY_NEWLINE); if (gss->num_ip4_local && gss->num_ip4_remote) { - vty_out(vty, "Local IPv4 Endpoints:%s", VTY_NEWLINE); + vty_out(vty, "%sLocal IPv4 Endpoints:%s", prefix, VTY_NEWLINE); for (i = 0; i < gss->num_ip4_local; i++) - vty_dump_sns_ip4(vty, &gss->ip4_local[i]); + vty_dump_sns_ip4(vty, prefix, &gss->ip4_local[i]); - vty_out(vty, "Remote IPv4 Endpoints:%s", VTY_NEWLINE); + vty_out(vty, "%sRemote IPv4 Endpoints:%s", prefix, VTY_NEWLINE); for (i = 0; i < gss->num_ip4_remote; i++) - vty_dump_sns_ip4(vty, &gss->ip4_remote[i]); + vty_dump_sns_ip4(vty, prefix, &gss->ip4_remote[i]); } if (gss->num_ip6_local && gss->num_ip6_remote) { - vty_out(vty, "Local IPv6 Endpoints:%s", VTY_NEWLINE); + vty_out(vty, "%sLocal IPv6 Endpoints:%s", prefix, VTY_NEWLINE); for (i = 0; i < gss->num_ip6_local; i++) - vty_dump_sns_ip6(vty, &gss->ip6_local[i]); + vty_dump_sns_ip6(vty, prefix, &gss->ip6_local[i]); - vty_out(vty, "Remote IPv6 Endpoints:%s", VTY_NEWLINE); + vty_out(vty, "%sRemote IPv6 Endpoints:%s", prefix, VTY_NEWLINE); for (i = 0; i < gss->num_ip6_remote; i++) - vty_dump_sns_ip6(vty, &gss->ip6_remote[i]); + vty_dump_sns_ip6(vty, prefix, &gss->ip6_remote[i]); } } diff --git a/src/gb/gprs_ns2_vty.c b/src/gb/gprs_ns2_vty.c index 065f3ad..36a7f78 100644 --- a/src/gb/gprs_ns2_vty.c +++ b/src/gb/gprs_ns2_vty.c @@ -298,7 +298,7 @@ vty_out(vty, "NSEI %05u: %s, %s%s", nse->nsei, gprs_ns2_lltype_str(nse->ll), nse->alive ? "ALIVE" : "DEAD", VTY_NEWLINE); - gprs_ns2_sns_dump_vty(vty, nse, stats); + gprs_ns2_sns_dump_vty(vty, " ", nse, stats); llist_for_each_entry(nsvc, &nse->nsvc, list) { if (persistent_only) { if (nsvc->persistent) diff --git a/src/gb/gprs_ns2_vty2.c b/src/gb/gprs_ns2_vty2.c index 94302ef..db59717 100644 --- a/src/gb/gprs_ns2_vty2.c +++ b/src/gb/gprs_ns2_vty2.c @@ -1349,7 +1349,7 @@ vty_out(vty, "NSEI %05u: %s, %s%s", nse->nsei, gprs_ns2_lltype_str(nse->ll), nse->alive ? "ALIVE" : "DEAD", VTY_NEWLINE); - gprs_ns2_sns_dump_vty(vty, nse, stats); + gprs_ns2_sns_dump_vty(vty, " ", nse, stats); llist_for_each_entry(nsvc, &nse->nsvc, list) { if (persistent_only) { if (nsvc->persistent) -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22323 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Id1b4c80a6caef410076a68b4301adaa01ba7e57a Gerrit-Change-Number: 22323 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 14:59:28 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 20 Jan 2021 14:59:28 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vc_fsm: fix transitions for ALIVE state In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22316 ) Change subject: gprs_ns2_vc_fsm: fix transitions for ALIVE state ...................................................................... gprs_ns2_vc_fsm: fix transitions for ALIVE state Alive can never reach RESET. However ALIVE -> ALIVE is allowed. Change-Id: Ic414d7ca96b1ec6db1665cd4c072c7ebbee787f1 --- M src/gb/gprs_ns2_vc_fsm.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/gb/gprs_ns2_vc_fsm.c b/src/gb/gprs_ns2_vc_fsm.c index 04d95f4..5de86f5 100644 --- a/src/gb/gprs_ns2_vc_fsm.c +++ b/src/gb/gprs_ns2_vc_fsm.c @@ -462,7 +462,7 @@ /* ST_ALIVE is only used on VC without RESET/BLOCK */ [GPRS_NS2_ST_ALIVE] = { .in_event_mask = S(GPRS_NS2_EV_RX_ALIVE_ACK), - .out_state_mask = S(GPRS_NS2_ST_RESET) | + .out_state_mask = S(GPRS_NS2_ST_ALIVE) | S(GPRS_NS2_ST_UNBLOCKED) | S(GPRS_NS2_ST_UNCONFIGURED), .name = "ALIVE", -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22316 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic414d7ca96b1ec6db1665cd4c072c7ebbee787f1 Gerrit-Change-Number: 22316 Gerrit-PatchSet: 8 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 15:00:01 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 20 Jan 2021 15:00:01 +0000 Subject: Change in libosmocore[master]: gprs_bssgp_rim: fix bug in dub_tlvp_header() References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22339 ) Change subject: gprs_bssgp_rim: fix bug in dub_tlvp_header() ...................................................................... gprs_bssgp_rim: fix bug in dub_tlvp_header() When the length field is written the function writes the lower and the higher half of the length at the same position, so the higher half is overwritten with the lower half, this is wrong. Change-Id: I3cce0b2796793554a421fd3ce8e749c52d22eaea Related: CID#216670 Related: SYS#5103 --- M src/gb/gprs_bssgp_rim.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/39/22339/1 diff --git a/src/gb/gprs_bssgp_rim.c b/src/gb/gprs_bssgp_rim.c index 2096977..23fb3a0 100644 --- a/src/gb/gprs_bssgp_rim.c +++ b/src/gb/gprs_bssgp_rim.c @@ -438,7 +438,7 @@ } else { memmove(buf_ptr + 1, buf_ptr, len); buf_ptr[1] = len >> 8; - buf_ptr[1] = len & 0xff; + buf_ptr[2] = len & 0xff; buf_ptr += TVLV_HDR_MAXLEN; } buf_ptr += len; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22339 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I3cce0b2796793554a421fd3ce8e749c52d22eaea Gerrit-Change-Number: 22339 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 15:04:41 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 20 Jan 2021 15:04:41 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Ignore dummy rlcmac packets in f_ms_rx_pkt_ass_pacch In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22313 ) Change subject: pcu: Ignore dummy rlcmac packets in f_ms_rx_pkt_ass_pacch ...................................................................... Patch Set 1: (2 comments) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22313/1//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22313/1//COMMIT_MSG at 17 PS1, Line 17: Change-Id: I0a10d3a7383d8534e9263864b4130a96392e6198 Related: OS#4779? https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22313/1/pcu/GPRS_Components.ttcn File pcu/GPRS_Components.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22313/1/pcu/GPRS_Components.ttcn at 506 PS1, Line 506: sapi := PCU_IF_SAPI_PDTCH, fn := 0, Please fix spacing here, it's broken. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22313 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I0a10d3a7383d8534e9263864b4130a96392e6198 Gerrit-Change-Number: 22313 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: fixeria Gerrit-Comment-Date: Wed, 20 Jan 2021 15:04:41 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 15:07:32 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 20 Jan 2021 15:07:32 +0000 Subject: Change in libosmocore[master]: gprs_bssgp_rim: fix bug in dub_tlvp_header() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22339 ) Change subject: gprs_bssgp_rim: fix bug in dub_tlvp_header() ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22339 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I3cce0b2796793554a421fd3ce8e749c52d22eaea Gerrit-Change-Number: 22339 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 20 Jan 2021 15:07:32 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 15:08:34 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 20 Jan 2021 15:08:34 +0000 Subject: Change in osmo-pcu[master]: bts: Store RAC+CI from info_ind In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22326 ) Change subject: bts: Store RAC+CI from info_ind ...................................................................... bts: Store RAC+CI from info_ind Having those values at hand will be needed later for RIM / NACC related purposes. Change-Id: Ia3596e9e81cd71443be2cc6f2450bb7f91d2667d --- M src/bts.h M src/pcu_l1_if.cpp 2 files changed, 7 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/bts.h b/src/bts.h index d1881b2..7f437e3 100644 --- a/src/bts.h +++ b/src/bts.h @@ -198,6 +198,7 @@ uint8_t nr; /* bts_nr */ struct llist_head list; /* queued in pcu->bts_list */ bool active; + struct osmo_cell_global_id_ps cgi_ps; uint8_t bsic; uint8_t cs_mask; /* Allowed CS mask from BTS */ uint16_t mcs_mask; /* Allowed MCS mask from BTS */ diff --git a/src/pcu_l1_if.cpp b/src/pcu_l1_if.cpp index 24080f3..8ae74d5 100644 --- a/src/pcu_l1_if.cpp +++ b/src/pcu_l1_if.cpp @@ -603,6 +603,12 @@ LOGP(DL1IF, LOGL_DEBUG, " cv_countdown=%d\n", info_ind->cv_countdown); LOGP(DL1IF, LOGL_DEBUG, " dl_tbf_ext=%d\n", info_ind->dl_tbf_ext); LOGP(DL1IF, LOGL_DEBUG, " ul_tbf_ext=%d\n", info_ind->ul_tbf_ext); + bts->cgi_ps.rai.lac.plmn.mcc = info_ind->mcc; + bts->cgi_ps.rai.lac.plmn.mnc = info_ind->mnc; + bts->cgi_ps.rai.lac.plmn.mnc_3_digits = info_ind->mnc_3_digits; + bts->cgi_ps.rai.lac.lac = info_ind->lac; + bts->cgi_ps.rai.rac = info_ind->rac; + bts->cgi_ps.cell_identity = info_ind->cell_id; bts->bsic = info_ind->bsic; bts->cs_mask = 1 << 0; /* We need at least 1 CS, let's enable CS1 */ -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22326 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ia3596e9e81cd71443be2cc6f2450bb7f91d2667d Gerrit-Change-Number: 22326 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 15:10:06 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 20 Jan 2021 15:10:06 +0000 Subject: Change in osmo-ci[master]: repo-install-test: add test_conflict In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22335 ) Change subject: repo-install-test: add test_conflict ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22335 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Icf2a3a1d1de2ff42b1dc9aadf2075e5e1ff40291 Gerrit-Change-Number: 22335 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 20 Jan 2021 15:10:06 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 15:11:13 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 20 Jan 2021 15:11:13 +0000 Subject: Change in osmo-ci[master]: repo-install-test: add PROJ variable In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22328 ) Change subject: repo-install-test: add PROJ variable ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22328 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I0ac05a79ad65b5664b5ba37227b65e3b1422a4bf Gerrit-Change-Number: 22328 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 20 Jan 2021 15:11:13 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 15:11:50 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 20 Jan 2021 15:11:50 +0000 Subject: Change in osmo-ci[master]: repo-install-test: make HTTP, OBS vars local In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22329 ) Change subject: repo-install-test: make HTTP, OBS vars local ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22329 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I1dfddbd9311d741c03ceedb12aee9aeae6abdab8 Gerrit-Change-Number: 22329 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 20 Jan 2021 15:11:50 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 15:11:57 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 20 Jan 2021 15:11:57 +0000 Subject: Change in osmo-ci[master]: repo-install-test: make HTTP, OBS vars local In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22329 ) Change subject: repo-install-test: make HTTP, OBS vars local ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22329 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I1dfddbd9311d741c03ceedb12aee9aeae6abdab8 Gerrit-Change-Number: 22329 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 20 Jan 2021 15:11:57 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 15:12:18 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 20 Jan 2021 15:12:18 +0000 Subject: Change in osmo-ci[master]: repo-install-test: put $PROJ in sources.list name In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22330 ) Change subject: repo-install-test: put $PROJ in sources.list name ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22330 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I8926443a9ff70f285d9467d39658e64456972b07 Gerrit-Change-Number: 22330 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 20 Jan 2021 15:12:18 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 15:12:45 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 20 Jan 2021 15:12:45 +0000 Subject: Change in osmo-ci[master]: repo-install-test: don't use $FEED in centos8 repo In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22331 ) Change subject: repo-install-test: don't use $FEED in centos8 repo ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22331 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ic316add6b2d9b6f50335cad762628bb16da61d82 Gerrit-Change-Number: 22331 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 20 Jan 2021 15:12:45 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 15:12:50 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 20 Jan 2021 15:12:50 +0000 Subject: Change in osmo-ci[master]: repo-install-test: don't use $FEED in centos8 repo In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22331 ) Change subject: repo-install-test: don't use $FEED in centos8 repo ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22331 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ic316add6b2d9b6f50335cad762628bb16da61d82 Gerrit-Change-Number: 22331 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 20 Jan 2021 15:12:50 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 15:12:52 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 20 Jan 2021 15:12:52 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Ignore dummy rlcmac packets in f_ms_rx_pkt_ass_pacch In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22313 ) Change subject: pcu: Ignore dummy rlcmac packets in f_ms_rx_pkt_ass_pacch ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22313/1/pcu/GPRS_Components.ttcn File pcu/GPRS_Components.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22313/1/pcu/GPRS_Components.ttcn at 512 PS1, Line 512: as_ms_rx_pkt_ass_pacch I am sorry, but this altstep is pretty much useless for anything else than f_ms_rx_pkt_ass_pacch(). Imagine you have an 'alt' statement with several altsteps: alt { [] as_ms_rx_pkt_ass_pacch(...); [] as_ms_rx_pkt_foo(...); [] as_ms_rx_pkt_bar(...); } Due to 'repeat' statement in as_ms_rx_pkt_ass_pacch(), other altsteps will never be executed. This is a case where decmatch() would probably do the trick. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22313 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I0a10d3a7383d8534e9263864b4130a96392e6198 Gerrit-Change-Number: 22313 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: fixeria Gerrit-Comment-Date: Wed, 20 Jan 2021 15:12:52 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 15:13:27 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 20 Jan 2021 15:13:27 +0000 Subject: Change in osmo-ci[master]: repo-install-test: download/add deb release key In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22332 ) Change subject: repo-install-test: download/add deb release key ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22332 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I91e7a208d8f5cb50f8baa2fde0eb979aae91da8f Gerrit-Change-Number: 22332 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 20 Jan 2021 15:13:27 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 15:14:22 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 20 Jan 2021 15:14:22 +0000 Subject: Change in osmo-ci[master]: repo-install-test: cfg_osmocom_repo: add PROJ arg In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22333 ) Change subject: repo-install-test: cfg_osmocom_repo: add PROJ arg ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22333 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ib9946b5a02f8692efc8515907ba84048026474f9 Gerrit-Change-Number: 22333 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 20 Jan 2021 15:14:22 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 15:14:41 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 20 Jan 2021 15:14:41 +0000 Subject: Change in osmo-ci[master]: repo-install-test: add TESTS variable In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22334 ) Change subject: repo-install-test: add TESTS variable ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22334 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I8d817f47d790e4cdc25c5182a0e91b66a00fbf52 Gerrit-Change-Number: 22334 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 20 Jan 2021 15:14:41 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 15:24:16 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 20 Jan 2021 15:24:16 +0000 Subject: Change in libosmocore[master]: gprs_ns2: rework logging of Rx and Tx NS PDU In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22294 ) Change subject: gprs_ns2: rework logging of Rx and Tx NS PDU ...................................................................... Patch Set 9: > Patch Set 9: > > unfortunately conflicts with my (later) https://gerrit.osmocom.org/c/libosmocore/+/22337 > > As your log macro is more specific than the general ones I introduce, I wuuld suppose it's best to rebase your change on top of mine? ok. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22294 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I34b8fde2955ecc010d1dcd9512e1bba9211e2c0d Gerrit-Change-Number: 22294 Gerrit-PatchSet: 9 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 20 Jan 2021 15:24:16 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 15:31:05 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 20 Jan 2021 15:31:05 +0000 Subject: Change in libosmocore[master]: gprs_ns2_message: remove wrong comment In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22317 to look at the new patch set (#7). Change subject: gprs_ns2_message: remove wrong comment ...................................................................... gprs_ns2_message: remove wrong comment It's a leftover from converting NS1 -> NS2 code Change-Id: I934c7905f8396e74bb1f14d68097c03463816720 --- M src/gb/gprs_ns2_message.c 1 file changed, 0 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/17/22317/7 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22317 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I934c7905f8396e74bb1f14d68097c03463816720 Gerrit-Change-Number: 22317 Gerrit-PatchSet: 7 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 15:31:05 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 20 Jan 2021 15:31:05 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vc_fsm: check NSEI match the NSE In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22325 to look at the new patch set (#2). Change subject: gprs_ns2_vc_fsm: check NSEI match the NSE ...................................................................... gprs_ns2_vc_fsm: check NSEI match the NSE The NSE must match the PDUs. The only exception is a RESET with dialect ipaccess. However those will be handled later. Change-Id: Ic8fc49d850490feb0ff69171a6b0881ae8696c0b --- M src/gb/gprs_ns2_vc_fsm.c 1 file changed, 14 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/25/22325/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22325 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic8fc49d850490feb0ff69171a6b0881ae8696c0b Gerrit-Change-Number: 22325 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 15:31:05 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 20 Jan 2021 15:31:05 +0000 Subject: Change in libosmocore[master]: WIP: gprs_ns2: rework logging of Rx and Tx NS PDU In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22294 to look at the new patch set (#10). Change subject: WIP: gprs_ns2: rework logging of Rx and Tx NS PDU ...................................................................... WIP: gprs_ns2: rework logging of Rx and Tx NS PDU Unify log messages so all log messages look similiar. Log also Rx PDUs. Ensure dropped Tx packets (BLOCK/RESET on SNS) contain *Tx*. TODO: use LOGNSVC Change-Id: I34b8fde2955ecc010d1dcd9512e1bba9211e2c0d --- M src/gb/gprs_ns2.c M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_message.c 3 files changed, 33 insertions(+), 19 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/94/22294/10 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22294 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I34b8fde2955ecc010d1dcd9512e1bba9211e2c0d Gerrit-Change-Number: 22294 Gerrit-PatchSet: 10 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 15:31:07 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 20 Jan 2021 15:31:07 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vc_fsm: check NSVCI match the NSE References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22340 ) Change subject: gprs_ns2_vc_fsm: check NSVCI match the NSE ...................................................................... gprs_ns2_vc_fsm: check NSVCI match the NSE The NSVCI must match the PDUs. The only exception is a RESET with dialect ipaccess. However those will be handled later. Change-Id: I8518bdb03e9e33b04b77a2a346d04c5d29544a6c --- M src/gb/gprs_ns2_vc_fsm.c 1 file changed, 15 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/40/22340/1 diff --git a/src/gb/gprs_ns2_vc_fsm.c b/src/gb/gprs_ns2_vc_fsm.c index ca33ade..3d22fd6 100644 --- a/src/gb/gprs_ns2_vc_fsm.c +++ b/src/gb/gprs_ns2_vc_fsm.c @@ -750,11 +750,10 @@ struct osmo_fsm_inst *fi = nsvc->fi; int rc = 0; uint8_t cause; - uint16_t nsei; + uint16_t nsei, nsvci; /* TODO: 7.2: on UNBLOCK/BLOCK: check if NS-VCI is correct, * if not answer STATUS with "NS-VC unknown" */ - /* TODO: handle RESET with different VCI */ /* TODO: handle BLOCK/UNBLOCK/ALIVE with different VCI */ if (gprs_ns2_validate(nsvc, nsh->pdu_type, msg, tp, &cause)) { @@ -777,6 +776,20 @@ } } + if (nsvc->nsvci_is_valid && TLVP_PRESENT(tp, NS_IE_VCI)) { + nsvci = tlvp_val16be(tp, NS_IE_VCI); + if (nsvci != nsvc->nsvci) { + /* 48.016 ? 7.3.1 send RESET_ACK to wrong NSVCI + ignore */ + if (nsh->pdu_type == NS_PDUT_RESET) + ns2_tx_reset_ack(nsvc); + + LOGP(DLNS, LOGL_ERROR, "NSEI=%05u (NSVCI=%05u) Rx %s with wrong NSVCI=%05u. Ignoring PDU.\n", + nsvc->nse->nsei, nsvc->nsvci, + get_value_string(gprs_ns_pdu_strings, nsh->pdu_type), nsvci); + goto out; + } + } + switch (nsh->pdu_type) { case NS_PDUT_RESET: osmo_fsm_inst_dispatch(fi, GPRS_NS2_EV_RX_RESET, tp); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22340 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I8518bdb03e9e33b04b77a2a346d04c5d29544a6c Gerrit-Change-Number: 22340 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 15:32:21 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 20 Jan 2021 15:32:21 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vc_fsm: check NSEI match the NSE In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22325 ) Change subject: gprs_ns2_vc_fsm: check NSEI match the NSE ...................................................................... Patch Set 2: Code-Review-1 need to use LOGNSVC from laforge -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22325 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic8fc49d850490feb0ff69171a6b0881ae8696c0b Gerrit-Change-Number: 22325 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 20 Jan 2021 15:32:21 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 15:32:27 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 20 Jan 2021 15:32:27 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vc_fsm: check NSVCI match the NSE In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22340 ) Change subject: gprs_ns2_vc_fsm: check NSVCI match the NSE ...................................................................... Patch Set 1: Code-Review-1 need to use LOGNSVC from laforge -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22340 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I8518bdb03e9e33b04b77a2a346d04c5d29544a6c Gerrit-Change-Number: 22340 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: lynxis lazus Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Wed, 20 Jan 2021 15:32:27 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 15:32:31 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 20 Jan 2021 15:32:31 +0000 Subject: Change in libosmocore[master]: WIP: gprs_ns2: rework logging of Rx and Tx NS PDU In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22294 ) Change subject: WIP: gprs_ns2: rework logging of Rx and Tx NS PDU ...................................................................... Patch Set 10: need to use LOGNSVC from laforge -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22294 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I34b8fde2955ecc010d1dcd9512e1bba9211e2c0d Gerrit-Change-Number: 22294 Gerrit-PatchSet: 10 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 20 Jan 2021 15:32:31 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 15:32:37 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 20 Jan 2021 15:32:37 +0000 Subject: Change in osmo-ci[master]: repo-install-test: download/add deb release key In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22332 ) Change subject: repo-install-test: download/add deb release key ...................................................................... Patch Set 1: Verified+1 Code-Review+2 (1 comment) 1+1=2 https://gerrit.osmocom.org/c/osmo-ci/+/22332/1/scripts/repo-install-test/run-inside-docker.sh File scripts/repo-install-test/run-inside-docker.sh: https://gerrit.osmocom.org/c/osmo-ci/+/22332/1/scripts/repo-install-test/run-inside-docker.sh at a70 PS1, Line 70: Debian_9 > unrelated to this patch: IT might make sense to switch to Debian_10 Debian_9. [?] Right. I'll prepare a patch and test it, shouldn't be much effort. -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22332 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I91e7a208d8f5cb50f8baa2fde0eb979aae91da8f Gerrit-Change-Number: 22332 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 20 Jan 2021 15:32:37 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Comment-In-Reply-To: laforge Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 15:32:42 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 20 Jan 2021 15:32:42 +0000 Subject: Change in osmo-ci[master]: repo-install-test: tweak FEED syntax In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22327 ) Change subject: repo-install-test: tweak FEED syntax ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22327 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Icb36da91a6dc52529c2087b0961c1b698076eea1 Gerrit-Change-Number: 22327 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Wed, 20 Jan 2021 15:32:42 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 15:32:47 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 20 Jan 2021 15:32:47 +0000 Subject: Change in osmo-ci[master]: repo-install-test: add PROJ variable In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22328 ) Change subject: repo-install-test: add PROJ variable ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22328 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I0ac05a79ad65b5664b5ba37227b65e3b1422a4bf Gerrit-Change-Number: 22328 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 20 Jan 2021 15:32:47 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 15:32:49 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 20 Jan 2021 15:32:49 +0000 Subject: Change in osmo-ci[master]: repo-install-test: make HTTP, OBS vars local In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22329 ) Change subject: repo-install-test: make HTTP, OBS vars local ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22329 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I1dfddbd9311d741c03ceedb12aee9aeae6abdab8 Gerrit-Change-Number: 22329 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 20 Jan 2021 15:32:49 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 15:32:52 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 20 Jan 2021 15:32:52 +0000 Subject: Change in osmo-ci[master]: repo-install-test: put $PROJ in sources.list name In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22330 ) Change subject: repo-install-test: put $PROJ in sources.list name ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22330 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I8926443a9ff70f285d9467d39658e64456972b07 Gerrit-Change-Number: 22330 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 20 Jan 2021 15:32:52 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 15:32:54 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 20 Jan 2021 15:32:54 +0000 Subject: Change in osmo-ci[master]: repo-install-test: don't use $FEED in centos8 repo In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22331 ) Change subject: repo-install-test: don't use $FEED in centos8 repo ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22331 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ic316add6b2d9b6f50335cad762628bb16da61d82 Gerrit-Change-Number: 22331 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 20 Jan 2021 15:32:54 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 15:32:58 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 20 Jan 2021 15:32:58 +0000 Subject: Change in osmo-ci[master]: repo-install-test: cfg_osmocom_repo: add PROJ arg In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22333 ) Change subject: repo-install-test: cfg_osmocom_repo: add PROJ arg ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22333 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ib9946b5a02f8692efc8515907ba84048026474f9 Gerrit-Change-Number: 22333 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 20 Jan 2021 15:32:58 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 15:33:00 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 20 Jan 2021 15:33:00 +0000 Subject: Change in osmo-ci[master]: repo-install-test: add TESTS variable In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22334 ) Change subject: repo-install-test: add TESTS variable ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22334 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I8d817f47d790e4cdc25c5182a0e91b66a00fbf52 Gerrit-Change-Number: 22334 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 20 Jan 2021 15:33:00 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 15:33:10 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 20 Jan 2021 15:33:10 +0000 Subject: Change in osmo-ci[master]: repo-install-test: tweak FEED syntax In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22327 ) Change subject: repo-install-test: tweak FEED syntax ...................................................................... repo-install-test: tweak FEED syntax Use the shorter form, before adding another variable with default value. Related: OS#4733 Change-Id: Icb36da91a6dc52529c2087b0961c1b698076eea1 --- M scripts/repo-install-test.sh 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved osmith: Verified diff --git a/scripts/repo-install-test.sh b/scripts/repo-install-test.sh index 0c08e15..a30c36d 100755 --- a/scripts/repo-install-test.sh +++ b/scripts/repo-install-test.sh @@ -15,7 +15,7 @@ DISTRO="$1" docker_images_require "$DISTRO-repo-install-test" -[ -z "$FEED" ] && FEED="nightly" +FEED="${FEED:-nightly}" CONTAINER="$DISTRO-repo-install-test-$FEED" # Try to run "systemctl status" 10 times, kill the container on failure -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22327 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Icb36da91a6dc52529c2087b0961c1b698076eea1 Gerrit-Change-Number: 22327 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 15:33:10 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 20 Jan 2021 15:33:10 +0000 Subject: Change in osmo-ci[master]: repo-install-test: add PROJ variable In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22328 ) Change subject: repo-install-test: add PROJ variable ...................................................................... repo-install-test: add PROJ variable Make debugging easier by having a PROJ variable that can be overridden by an environment variable of the same name. Pass it to docker and use it to generate all related URLs etc. Add functions in run-inside-docker.sh to convert the PROJ variable into the two other formates needed (with slashes, with underscore), so a future patch can use these functions with a different PROJ variable too. Related: OS#4733 Change-Id: I0ac05a79ad65b5664b5ba37227b65e3b1422a4bf --- M scripts/repo-install-test.sh M scripts/repo-install-test/run-inside-docker.sh 2 files changed, 29 insertions(+), 7 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve pespin: Looks good to me, approved osmith: Verified diff --git a/scripts/repo-install-test.sh b/scripts/repo-install-test.sh index a30c36d..a785b74 100755 --- a/scripts/repo-install-test.sh +++ b/scripts/repo-install-test.sh @@ -2,6 +2,7 @@ # Environment variables: # * INTERACTIVE: set to 1 to keep an interactive shell open after the script ran (for debugging) # * FEED: binary package feed (e.g. "latest", "nightly") +# * PROJ: OBS project namespace (e.g. "network:osmocom:latest") # * KEEP_CACHE: set to 1 to keep downloaded binary packages (for development) . "$(dirname "$0")/common.sh" @@ -16,6 +17,7 @@ docker_images_require "$DISTRO-repo-install-test" FEED="${FEED:-nightly}" +PROJ="${PROJ:-network:osmocom:$FEED}" CONTAINER="$DISTRO-repo-install-test-$FEED" # Try to run "systemctl status" 10 times, kill the container on failure @@ -54,6 +56,7 @@ -v "$OSMO_CI_DIR/scripts/repo-install-test:/repo-install-test:ro" \ --name "$CONTAINER" \ -e FEED="$FEED" \ + -e PROJ="$PROJ" \ -e DISTRO="$DISTRO" \ -e container=docker \ --tmpfs /run \ diff --git a/scripts/repo-install-test/run-inside-docker.sh b/scripts/repo-install-test/run-inside-docker.sh index 93e8b7f..f472645 100755 --- a/scripts/repo-install-test/run-inside-docker.sh +++ b/scripts/repo-install-test/run-inside-docker.sh @@ -1,6 +1,7 @@ #!/bin/sh -ex # Environment variables: # * FEED: binary package feed (e.g. "latest", "nightly") +# * PROJ: OBS project namespace (e.g. "network:osmocom:latest") # * KEEP_CACHE: set to 1 to keep downloaded binary packages (for development) # * DISTRO: linux distribution name (e.g. "debian", "centos") @@ -34,8 +35,18 @@ osmo-bts-virtual " -HTTP="http://download.opensuse.org/repositories/network:/osmocom:/$FEED/Debian_9.0/" -OBS="obs://build.opensuse.org/network:osmocom:$FEED/Debian_9.0" +# $1: OBS project (e.g. "network:osmocom:nightly" -> "network:/osmocom:/nightly") +proj_with_slashes() { + echo "$1" | sed "s.:.:/.g" +} + +# $1: OBS project (e.g. "network:osmocom:nightly" -> "network_osmocom_nightly") +proj_with_underscore() { + echo "$1" | tr : _ +} + +HTTP="http://download.opensuse.org/repositories/$(proj_with_slashes "$PROJ")/Debian_9.0/" +OBS="obs://build.opensuse.org/$PROJ/Debian_9.0" check_env() { if [ -n "$FEED" ]; then @@ -44,6 +55,12 @@ echo "ERROR: missing environment variable \$FEED!" exit 1 fi + if [ -n "$PROJ" ]; then + echo "Checking project: $PROJ" + else + echo "ERROR: missing environment variable \$PROJ!" + exit 1 + fi if [ -n "$DISTRO" ]; then echo "Linux distribution: $DISTRO" else @@ -60,16 +77,18 @@ } configure_osmocom_repo_centos8() { + local baseurl="https://download.opensuse.org/repositories/$(proj_with_slashes "$PROJ")/CentOS_8" + echo "Configuring Osmocom repository" # Generate this file, based on the feed: # https://download.opensuse.org/repositories/network:osmocom:latest/CentOS_8/network:osmocom:latest.repo - cat << EOF > /etc/yum.repos.d/network:osmocom:$FEED.repo -[network_osmocom_$FEED] + cat << EOF > "/etc/yum.repos.d/$PROJ.repo" +[$(proj_with_underscore "$PROJ")] name=$FEED packages of the Osmocom project (CentOS_8) type=rpm-md -baseurl=https://download.opensuse.org/repositories/network:/osmocom:/$FEED/CentOS_8/ +baseurl=$baseurl/ gpgcheck=1 -gpgkey=https://download.opensuse.org/repositories/network:/osmocom:/$FEED/CentOS_8/repodata/repomd.xml.key +gpgkey=$baseurl/repodata/repomd.xml.key enabled=1 EOF } @@ -124,7 +143,7 @@ # Get a list of all packages from the repository LANG=C.UTF-8 repoquery \ --quiet \ - --repoid="network_osmocom_$FEED" \ + --repoid="$(proj_with_underscore "$PROJ")" \ --archlist="x86_64,noarch" \ --qf="%{name}" \ > osmocom_packages_all.txt -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22328 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I0ac05a79ad65b5664b5ba37227b65e3b1422a4bf Gerrit-Change-Number: 22328 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 15:33:12 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 20 Jan 2021 15:33:12 +0000 Subject: Change in osmo-ci[master]: repo-install-test: make HTTP, OBS vars local In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22329 ) Change subject: repo-install-test: make HTTP, OBS vars local ...................................................................... repo-install-test: make HTTP, OBS vars local Move the two debian-specific variables to the debian-related functions where they are used. Both are only used once, and having them global is misleading since the test isn't just for debian anymore, but also for centos8. Make the variables lowercase to indicate that they aren't used globally. Related: OS#4733 Change-Id: I1dfddbd9311d741c03ceedb12aee9aeae6abdab8 --- M scripts/repo-install-test/run-inside-docker.sh 1 file changed, 6 insertions(+), 5 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve pespin: Looks good to me, approved osmith: Verified diff --git a/scripts/repo-install-test/run-inside-docker.sh b/scripts/repo-install-test/run-inside-docker.sh index f472645..3c3245d 100755 --- a/scripts/repo-install-test/run-inside-docker.sh +++ b/scripts/repo-install-test/run-inside-docker.sh @@ -45,9 +45,6 @@ echo "$1" | tr : _ } -HTTP="http://download.opensuse.org/repositories/$(proj_with_slashes "$PROJ")/Debian_9.0/" -OBS="obs://build.opensuse.org/$PROJ/Debian_9.0" - check_env() { if [ -n "$FEED" ]; then echo "Checking feed: $FEED" @@ -70,8 +67,10 @@ } configure_osmocom_repo_debian() { + local http="http://download.opensuse.org/repositories/$(proj_with_slashes "$PROJ")/Debian_9.0/" + echo "Configuring Osmocom repository" - echo "deb $HTTP ./" \ + echo "deb $http ./" \ > /etc/apt/sources.list.d/osmocom-latest.list apt-get update } @@ -125,12 +124,14 @@ } install_repo_packages_debian() { + local obs="obs://build.opensuse.org/$PROJ/Debian_9.0" + echo "Installing all repository packages" # Get a list of all packages from the repository. Reference: # https://www.debian.org/doc/manuals/aptitude/ch02s04s05.en.html aptitude search -F%p \ - "?origin($OBS) ?architecture(native)" | sort \ + "?origin($obs) ?architecture(native)" | sort \ > osmocom_packages_all.txt filter_packages_txt -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22329 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I1dfddbd9311d741c03ceedb12aee9aeae6abdab8 Gerrit-Change-Number: 22329 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 15:33:12 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 20 Jan 2021 15:33:12 +0000 Subject: Change in osmo-ci[master]: repo-install-test: put $PROJ in sources.list name In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22330 ) Change subject: repo-install-test: put $PROJ in sources.list name ...................................................................... repo-install-test: put $PROJ in sources.list name Don't call the file osmocom-latest regardless of the feed name. This becomes important in a future conflict test where we will have two repositories from two feeds configured. Related: OS#4733 Change-Id: I8926443a9ff70f285d9467d39658e64456972b07 --- M scripts/repo-install-test/run-inside-docker.sh 1 file changed, 1 insertion(+), 2 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve pespin: Looks good to me, approved osmith: Verified diff --git a/scripts/repo-install-test/run-inside-docker.sh b/scripts/repo-install-test/run-inside-docker.sh index 3c3245d..ee148c8 100755 --- a/scripts/repo-install-test/run-inside-docker.sh +++ b/scripts/repo-install-test/run-inside-docker.sh @@ -70,8 +70,7 @@ local http="http://download.opensuse.org/repositories/$(proj_with_slashes "$PROJ")/Debian_9.0/" echo "Configuring Osmocom repository" - echo "deb $http ./" \ - > /etc/apt/sources.list.d/osmocom-latest.list + echo "deb $http ./" > "/etc/apt/sources.list.d/$PROJ.list" apt-get update } -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22330 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I8926443a9ff70f285d9467d39658e64456972b07 Gerrit-Change-Number: 22330 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 15:33:13 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 20 Jan 2021 15:33:13 +0000 Subject: Change in osmo-ci[master]: repo-install-test: don't use $FEED in centos8 repo In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22331 ) Change subject: repo-install-test: don't use $FEED in centos8 repo ...................................................................... repo-install-test: don't use $FEED in centos8 repo Use $PROJ instead of $FEED in the repository name, so we can add $PROJ as parameter to the repo configuration functions later without worrying about having a matching $FEED. Related: OS#4733 Change-Id: Ic316add6b2d9b6f50335cad762628bb16da61d82 --- M scripts/repo-install-test/run-inside-docker.sh 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: laforge: Looks good to me, but someone else must approve pespin: Looks good to me, approved osmith: Verified diff --git a/scripts/repo-install-test/run-inside-docker.sh b/scripts/repo-install-test/run-inside-docker.sh index ee148c8..3dd3101 100755 --- a/scripts/repo-install-test/run-inside-docker.sh +++ b/scripts/repo-install-test/run-inside-docker.sh @@ -82,7 +82,7 @@ # https://download.opensuse.org/repositories/network:osmocom:latest/CentOS_8/network:osmocom:latest.repo cat << EOF > "/etc/yum.repos.d/$PROJ.repo" [$(proj_with_underscore "$PROJ")] -name=$FEED packages of the Osmocom project (CentOS_8) +name=$PROJ type=rpm-md baseurl=$baseurl/ gpgcheck=1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22331 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ic316add6b2d9b6f50335cad762628bb16da61d82 Gerrit-Change-Number: 22331 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 15:33:14 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 20 Jan 2021 15:33:14 +0000 Subject: Change in osmo-ci[master]: repo-install-test: download/add deb release key In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22332 ) Change subject: repo-install-test: download/add deb release key ...................................................................... repo-install-test: download/add deb release key Download and add the release key for the debian repository from OBS. This is useful for manually testing the existing tests with a different PROJ for debugging, and it will be used by a future conflict test to install a second repository (e.g. nightly and latest at the same time). Note that this is not needed for rpm, because the dnf package manager automatically downloads the key if it is missing. Related: OS#4733 Change-Id: I91e7a208d8f5cb50f8baa2fde0eb979aae91da8f --- M scripts/repo-install-test/run-inside-docker.sh 1 file changed, 11 insertions(+), 2 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve pespin: Looks good to me, but someone else must approve osmith: Looks good to me, approved; Verified diff --git a/scripts/repo-install-test/run-inside-docker.sh b/scripts/repo-install-test/run-inside-docker.sh index 3dd3101..652fcd1 100755 --- a/scripts/repo-install-test/run-inside-docker.sh +++ b/scripts/repo-install-test/run-inside-docker.sh @@ -67,10 +67,19 @@ } configure_osmocom_repo_debian() { - local http="http://download.opensuse.org/repositories/$(proj_with_slashes "$PROJ")/Debian_9.0/" + local obs_repo="download.opensuse.org/repositories/$(proj_with_slashes "$PROJ")/Debian_9.0/" + local release_key="/var/cache/apt/${PROJ}_Release.key" echo "Configuring Osmocom repository" - echo "deb $http ./" > "/etc/apt/sources.list.d/$PROJ.list" + echo "deb http://$obs_repo ./" > "/etc/apt/sources.list.d/$PROJ.list" + + # Add repository key + if ! [ -e "$release_key" ]; then + apt install -y wget + wget -O "$release_key" "https://$obs_repo/Release.key" + fi + apt-key add "$release_key" + apt-get update } -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22332 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I91e7a208d8f5cb50f8baa2fde0eb979aae91da8f Gerrit-Change-Number: 22332 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 15:33:14 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 20 Jan 2021 15:33:14 +0000 Subject: Change in osmo-ci[master]: repo-install-test: cfg_osmocom_repo: add PROJ arg In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22333 ) Change subject: repo-install-test: cfg_osmocom_repo: add PROJ arg ...................................................................... repo-install-test: cfg_osmocom_repo: add PROJ arg Prepare for future conflicts test, which will configure repositories with a different PROJ. Related: OS#4733 Change-Id: Ib9946b5a02f8692efc8515907ba84048026474f9 --- M scripts/repo-install-test/run-inside-docker.sh 1 file changed, 12 insertions(+), 8 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve pespin: Looks good to me, approved osmith: Verified diff --git a/scripts/repo-install-test/run-inside-docker.sh b/scripts/repo-install-test/run-inside-docker.sh index 652fcd1..b10c97d 100755 --- a/scripts/repo-install-test/run-inside-docker.sh +++ b/scripts/repo-install-test/run-inside-docker.sh @@ -66,12 +66,14 @@ fi } +# $1: OBS project (e.g. "network:osmocom:nightly") configure_osmocom_repo_debian() { - local obs_repo="download.opensuse.org/repositories/$(proj_with_slashes "$PROJ")/Debian_9.0/" - local release_key="/var/cache/apt/${PROJ}_Release.key" + local proj="$1" + local obs_repo="download.opensuse.org/repositories/$(proj_with_slashes "$proj")/Debian_9.0/" + local release_key="/var/cache/apt/${proj}_Release.key" echo "Configuring Osmocom repository" - echo "deb http://$obs_repo ./" > "/etc/apt/sources.list.d/$PROJ.list" + echo "deb http://$obs_repo ./" > "/etc/apt/sources.list.d/$proj.list" # Add repository key if ! [ -e "$release_key" ]; then @@ -83,15 +85,17 @@ apt-get update } +# $1: OBS project (e.g. "network:osmocom:nightly") configure_osmocom_repo_centos8() { - local baseurl="https://download.opensuse.org/repositories/$(proj_with_slashes "$PROJ")/CentOS_8" + local proj="$1" + local baseurl="https://download.opensuse.org/repositories/$(proj_with_slashes "$proj")/CentOS_8" echo "Configuring Osmocom repository" # Generate this file, based on the feed: # https://download.opensuse.org/repositories/network:osmocom:latest/CentOS_8/network:osmocom:latest.repo - cat << EOF > "/etc/yum.repos.d/$PROJ.repo" -[$(proj_with_underscore "$PROJ")] -name=$PROJ + cat << EOF > "/etc/yum.repos.d/$proj.repo" +[$(proj_with_underscore "$proj")] +name=$proj type=rpm-md baseurl=$baseurl/ gpgcheck=1 @@ -239,7 +243,7 @@ check_env configure_keep_cache_${DISTRO} -configure_osmocom_repo_${DISTRO} +configure_osmocom_repo_${DISTRO} "$PROJ" install_repo_packages_${DISTRO} test_binaries services_check -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22333 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ib9946b5a02f8692efc8515907ba84048026474f9 Gerrit-Change-Number: 22333 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 15:33:15 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 20 Jan 2021 15:33:15 +0000 Subject: Change in osmo-ci[master]: repo-install-test: add TESTS variable In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22334 ) Change subject: repo-install-test: add TESTS variable ...................................................................... repo-install-test: add TESTS variable Allow to enable only certain tests during development. Related: OS#4733 Change-Id: I8d817f47d790e4cdc25c5182a0e91b66a00fbf52 --- M scripts/repo-install-test.sh M scripts/repo-install-test/run-inside-docker.sh 2 files changed, 42 insertions(+), 3 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve pespin: Looks good to me, approved osmith: Verified diff --git a/scripts/repo-install-test.sh b/scripts/repo-install-test.sh index a785b74..71e55d7 100755 --- a/scripts/repo-install-test.sh +++ b/scripts/repo-install-test.sh @@ -4,6 +4,7 @@ # * FEED: binary package feed (e.g. "latest", "nightly") # * PROJ: OBS project namespace (e.g. "network:osmocom:latest") # * KEEP_CACHE: set to 1 to keep downloaded binary packages (for development) +# * TESTS: which tests to run (all by default, see below for possible values) . "$(dirname "$0")/common.sh" # Show usage @@ -20,6 +21,14 @@ PROJ="${PROJ:-network:osmocom:$FEED}" CONTAINER="$DISTRO-repo-install-test-$FEED" +if [ -z "$TESTS" ]; then + TESTS=" + install_repo_packages + test_binaries + services_check + " +fi + # Try to run "systemctl status" 10 times, kill the container on failure check_if_systemd_is_running() { for i in $(seq 1 10); do @@ -58,6 +67,7 @@ -e FEED="$FEED" \ -e PROJ="$PROJ" \ -e DISTRO="$DISTRO" \ + -e TESTS="$TESTS" \ -e container=docker \ --tmpfs /run \ --tmpfs /run/lock \ diff --git a/scripts/repo-install-test/run-inside-docker.sh b/scripts/repo-install-test/run-inside-docker.sh index b10c97d..79dd3cf 100755 --- a/scripts/repo-install-test/run-inside-docker.sh +++ b/scripts/repo-install-test/run-inside-docker.sh @@ -4,6 +4,7 @@ # * PROJ: OBS project namespace (e.g. "network:osmocom:latest") # * KEEP_CACHE: set to 1 to keep downloaded binary packages (for development) # * DISTRO: linux distribution name (e.g. "debian", "centos") +# * TESTS: which tests to run (see repo-install-test.sh) # Systemd services that must start up successfully after installing all packages (OS#3369) # Disabled services: @@ -64,6 +65,11 @@ echo "ERROR: missing environment variable \$DISTRO!" exit 1 fi + if [ -n "$TESTS" ]; then + echo "Enabled tests: $TESTS" + else + echo "ERROR: missing environment variable \$TESTS!" + fi } # $1: OBS project (e.g. "network:osmocom:nightly") @@ -244,6 +250,29 @@ check_env configure_keep_cache_${DISTRO} configure_osmocom_repo_${DISTRO} "$PROJ" -install_repo_packages_${DISTRO} -test_binaries -services_check + +for test in $TESTS; do + set +x + echo + echo "### Running test: $test ###" + echo + set -x + + case "$test" in + install_repo_packages) + install_repo_packages_${DISTRO} + ;; + test_binaries) + # install_repo_packages must run first! + test_binaries + ;; + services_check) + # install_repo_packages must run first! + services_check + ;; + *) + echo "ERROR: unknown test: $test" + exit 1 + ;; + esac +done -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22334 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I8d817f47d790e4cdc25c5182a0e91b66a00fbf52 Gerrit-Change-Number: 22334 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 15:33:15 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 20 Jan 2021 15:33:15 +0000 Subject: Change in osmo-ci[master]: repo-install-test: add test_conflict In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22335 ) Change subject: repo-install-test: add test_conflict ...................................................................... repo-install-test: add test_conflict Install one Osmocom package from one package feed and attempt to install a second package from a different feed. Verify that the package manager exits with error and mentions the conflict in its output. Related: OS#4733 Change-Id: Icf2a3a1d1de2ff42b1dc9aadf2075e5e1ff40291 --- M scripts/repo-install-test.sh M scripts/repo-install-test/run-inside-docker.sh 2 files changed, 107 insertions(+), 0 deletions(-) Approvals: osmith: Verified laforge: Looks good to me, but someone else must approve pespin: Looks good to me, approved diff --git a/scripts/repo-install-test.sh b/scripts/repo-install-test.sh index 71e55d7..7585509 100755 --- a/scripts/repo-install-test.sh +++ b/scripts/repo-install-test.sh @@ -3,6 +3,7 @@ # * INTERACTIVE: set to 1 to keep an interactive shell open after the script ran (for debugging) # * FEED: binary package feed (e.g. "latest", "nightly") # * PROJ: OBS project namespace (e.g. "network:osmocom:latest") +# * PROJ_CONFLICT: Conflicting OBS project namespace (e.g. "network:osmocom:nightly") # * KEEP_CACHE: set to 1 to keep downloaded binary packages (for development) # * TESTS: which tests to run (all by default, see below for possible values) . "$(dirname "$0")/common.sh" @@ -23,12 +24,31 @@ if [ -z "$TESTS" ]; then TESTS=" + test_conflict install_repo_packages test_binaries services_check " fi +if [ -z "$PROJ_CONFLICT" ]; then + case "$FEED" in + latest) + PROJ_CONFLICT="network:osmocom:nightly" + ;; + nightly) + PROJ_CONFLICT="network:osmocom:latest" + if [ "$DISTRO" = "centos8" ]; then + # Doesn't have packages built for "latest" yet + PROJ_CONFLICT="network:osmocom:next" + fi + ;; + next) + PROJ_CONFLICT="network:osmocom:nightly" + ;; + esac +fi + # Try to run "systemctl status" 10 times, kill the container on failure check_if_systemd_is_running() { for i in $(seq 1 10); do @@ -66,6 +86,7 @@ --name "$CONTAINER" \ -e FEED="$FEED" \ -e PROJ="$PROJ" \ + -e PROJ_CONFLICT="$PROJ_CONFLICT" \ -e DISTRO="$DISTRO" \ -e TESTS="$TESTS" \ -e container=docker \ diff --git a/scripts/repo-install-test/run-inside-docker.sh b/scripts/repo-install-test/run-inside-docker.sh index 79dd3cf..f7d1449 100755 --- a/scripts/repo-install-test/run-inside-docker.sh +++ b/scripts/repo-install-test/run-inside-docker.sh @@ -2,6 +2,7 @@ # Environment variables: # * FEED: binary package feed (e.g. "latest", "nightly") # * PROJ: OBS project namespace (e.g. "network:osmocom:latest") +# * PROJ_CONFLICT: Conflicting OBS project namespace (e.g. "network:osmocom:nightly") # * KEEP_CACHE: set to 1 to keep downloaded binary packages (for development) # * DISTRO: linux distribution name (e.g. "debian", "centos") # * TESTS: which tests to run (see repo-install-test.sh) @@ -59,6 +60,12 @@ echo "ERROR: missing environment variable \$PROJ!" exit 1 fi + if [ -n "$PROJ_CONFLICT" ]; then + echo "Checking conflicting project: $PROJ_CONFLICT" + else + echo "ERROR: missing environment variable \$PROJ_CONFLICT!" + exit 1 + fi if [ -n "$DISTRO" ]; then echo "Linux distribution: $DISTRO" else @@ -92,6 +99,12 @@ } # $1: OBS project (e.g. "network:osmocom:nightly") +configure_osmocom_repo_debian_remove() { + local proj="$1" + rm "/etc/apt/sources.list.d/$proj.list" +} + +# $1: OBS project (e.g. "network:osmocom:nightly") configure_osmocom_repo_centos8() { local proj="$1" local baseurl="https://download.opensuse.org/repositories/$(proj_with_slashes "$proj")/CentOS_8" @@ -110,6 +123,12 @@ EOF } +# $1: OBS project (e.g. "network:osmocom:nightly") +configure_osmocom_repo_centos8_remove() { + local proj="$1" + rm "/etc/yum.repos.d/$proj.repo" +} + configure_keep_cache_debian() { if [ -z "$KEEP_CACHE" ]; then return @@ -130,6 +149,70 @@ echo "keepcache=1" >> /etc/dnf/dnf.conf } +# $1: file +# $2-n: patterns to look for in file with grep +find_patterns_or_exit() { + local file="$1" + local pattern + shift + + for pattern in "$@"; do + if grep -q "$pattern" "$file"; then + continue + fi + + echo "ERROR: could not find pattern '$pattern' in file '$file'!" + exit 1 + done +} + +test_conflict_debian() { + apt-get -y install libosmocore + + configure_osmocom_repo_debian_remove "$PROJ" + configure_osmocom_repo_debian "$PROJ_CONFLICT" + + (apt-get -y install osmo-mgw 2>&1 && touch /tmp/fail) | tee /tmp/out + + if [ -e /tmp/fail ]; then + echo "ERROR: unexpected exit 0!" + exit 1 + fi + + find_patterns_or_exit \ + /tmp/out \ + "requested an impossible situation" \ + "^The following packages have unmet dependencies:" \ + "Depends: osmocom-" \ + "but it is not going to be installed" + + configure_osmocom_repo_debian_remove "$PROJ_CONFLICT" + configure_osmocom_repo_debian "$PROJ" +} + +test_conflict_centos8() { + dnf -y install libosmocore-devel + + configure_osmocom_repo_centos8_remove "$PROJ" + configure_osmocom_repo_centos8 "$PROJ_CONFLICT" + + (dnf -y install osmo-mgw 2>&1 && touch /tmp/fail) | tee /tmp/out + + if [ -e /tmp/fail ]; then + echo "ERROR: unexpected exit 0!" + exit 1 + fi + + find_patterns_or_exit \ + /tmp/out \ + "^Error:" \ + "but none of the providers can be installed" \ + "conflicts with osmocom-" + + configure_osmocom_repo_centos8_remove "$PROJ_CONFLICT" + configure_osmocom_repo_centos8 "$PROJ" +} + # Filter $PWD/osmocom_packages_all.txt through a blacklist_$DISTRO.txt and store the result in # $PWD/osmocom_packages.txt. filter_packages_txt() { @@ -259,6 +342,9 @@ set -x case "$test" in + test_conflict) + test_conflict_${DISTRO} + ;; install_repo_packages) install_repo_packages_${DISTRO} ;; -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22335 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Icf2a3a1d1de2ff42b1dc9aadf2075e5e1ff40291 Gerrit-Change-Number: 22335 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 15:37:28 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 20 Jan 2021 15:37:28 +0000 Subject: Change in libosmocore[master]: gprs_ns2_message: remove wrong comment In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22317 ) Change subject: gprs_ns2_message: remove wrong comment ...................................................................... Patch Set 7: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22317 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I934c7905f8396e74bb1f14d68097c03463816720 Gerrit-Change-Number: 22317 Gerrit-PatchSet: 7 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 20 Jan 2021 15:37:28 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 16:07:17 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 20 Jan 2021 16:07:17 +0000 Subject: Change in libosmocore[master]: logging_vty: Fix saving of "logging print file .. last" References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22341 ) Change subject: logging_vty: Fix saving of "logging print file .. last" ...................................................................... logging_vty: Fix saving of "logging print file .. last" Back in 2018 in I393907b3c9e0cc1145e102328adad0a83ee13a9f Neels introduced "last" as an optional flag to log the file/line number at the end of the line, rather than at the end of the header. It seems nobody has been usingi this feature, or at least never tried to save a related config file, as there was no code whatsoever that would ever save this optional "last" flag. Change-Id: I7b6245256aecc425722242aaabc154ac58ba27a0 --- M src/vty/logging_vty.c 1 file changed, 2 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/41/22341/1 diff --git a/src/vty/logging_vty.c b/src/vty/logging_vty.c index 0282350..6a7a8f4 100644 --- a/src/vty/logging_vty.c +++ b/src/vty/logging_vty.c @@ -1010,8 +1010,9 @@ tgt->print_timestamp ? 1 : 0, VTY_NEWLINE); if (tgt->print_level) vty_out(vty, " logging print level 1%s", VTY_NEWLINE); - vty_out(vty, " logging print file %s%s", + vty_out(vty, " logging print file %s%s%s", get_value_string(logging_print_file_args, tgt->print_filename2), + tgt->print_filename_pos == LOG_FILENAME_POS_LINE_END ? " last" : "", VTY_NEWLINE); if (tgt->loglevel) { -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22341 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I7b6245256aecc425722242aaabc154ac58ba27a0 Gerrit-Change-Number: 22341 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 16:08:57 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 20 Jan 2021 16:08:57 +0000 Subject: Change in libosmocore[master]: gprs_bssgp_rim: Return with EOPNOTSUPP on unsupported containers In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22319 ) Change subject: gprs_bssgp_rim: Return with EOPNOTSUPP on unsupported containers ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22319 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ib5ada3554c04259764352888cf95bc4460cb2a54 Gerrit-Change-Number: 22319 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 20 Jan 2021 16:08:57 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 16:09:00 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 20 Jan 2021 16:09:00 +0000 Subject: Change in libosmocore[master]: gprs_bssgp_rim: Return with EOPNOTSUPP on unsupported containers In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22319 ) Change subject: gprs_bssgp_rim: Return with EOPNOTSUPP on unsupported containers ...................................................................... gprs_bssgp_rim: Return with EOPNOTSUPP on unsupported containers The current version of libosmocore only supports NACC related RIM application containers. If the parser detects a different application container it returns with EINVAL. Unfortunately this means that the caller can not distinguish if there is a lack of support or a real parsing error. Change-Id: Ib5ada3554c04259764352888cf95bc4460cb2a54 Related: SYS#5103 --- M src/gb/gprs_bssgp_rim.c 1 file changed, 8 insertions(+), 8 deletions(-) Approvals: laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/gb/gprs_bssgp_rim.c b/src/gb/gprs_bssgp_rim.c index 7094f5f..2096977 100644 --- a/src/gb/gprs_bssgp_rim.c +++ b/src/gb/gprs_bssgp_rim.c @@ -405,7 +405,7 @@ case BSSGP_RAN_INF_APP_ID_SON: case BSSGP_RAN_INF_APP_ID_UTRA_SI: /* TODO: add parsers for Si3, MBMS, SON, UTRA-SI app containers */ - return -EINVAL; + return -EOPNOTSUPP; default: return -EINVAL; } @@ -475,7 +475,7 @@ case BSSGP_RAN_INF_APP_ID_SON: case BSSGP_RAN_INF_APP_ID_UTRA_SI: /* TODO: add encoders for Si3, MBMS, SON, UTRA-SI app containers */ - return -EINVAL; + return -EOPNOTSUPP; default: return -EINVAL; } @@ -528,7 +528,7 @@ case BSSGP_RAN_INF_APP_ID_SON: case BSSGP_RAN_INF_APP_ID_UTRA_SI: /* TODO: add parsers for Si3, MBMS, SON, UTRA-SI app containers */ - return -EINVAL; + return -EOPNOTSUPP; default: return -EINVAL; } @@ -547,7 +547,7 @@ case BSSGP_RAN_INF_APP_ID_SON: case BSSGP_RAN_INF_APP_ID_UTRA_SI: /* TODO: add parsers for Si3, MBMS, SON, UTRA-SI app containers */ - return -EINVAL; + return -EOPNOTSUPP; default: return -EINVAL; } @@ -594,7 +594,7 @@ case BSSGP_RAN_INF_APP_ID_SON: case BSSGP_RAN_INF_APP_ID_UTRA_SI: /* TODO: add encoders for Si3, MBMS, SON, UTRA-SI app containers */ - return -EINVAL; + return -EOPNOTSUPP; default: return -EINVAL; } @@ -613,7 +613,7 @@ case BSSGP_RAN_INF_APP_ID_SON: case BSSGP_RAN_INF_APP_ID_UTRA_SI: /* TODO: add encoders for Si3, MBMS, SON, UTRA-SI app containers */ - return -EINVAL; + return -EOPNOTSUPP; default: return -EINVAL; } @@ -810,7 +810,7 @@ case BSSGP_RAN_INF_APP_ID_SON: case BSSGP_RAN_INF_APP_ID_UTRA_SI: /* TODO: add parsers for Si3, MBMS, SON, UTRA-SI app containers */ - return -EINVAL; + return -EOPNOTSUPP; default: return -EINVAL; } @@ -849,7 +849,7 @@ case BSSGP_RAN_INF_APP_ID_SON: case BSSGP_RAN_INF_APP_ID_UTRA_SI: /* TODO: add encoders for Si3, MBMS, SON, UTRA-SI app containers */ - return -EINVAL; + return -EOPNOTSUPP; default: return -EINVAL; } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22319 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ib5ada3554c04259764352888cf95bc4460cb2a54 Gerrit-Change-Number: 22319 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 16:10:11 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 20 Jan 2021 16:10:11 +0000 Subject: Change in libosmocore[master]: gprs_bssgp_rim: fix bug in dub_tlvp_header() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22339 ) Change subject: gprs_bssgp_rim: fix bug in dub_tlvp_header() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22339 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I3cce0b2796793554a421fd3ce8e749c52d22eaea Gerrit-Change-Number: 22339 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 20 Jan 2021 16:10:11 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 16:10:18 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 20 Jan 2021 16:10:18 +0000 Subject: Change in libosmocore[master]: gprs_bssgp_rim: fix bug in dub_tlvp_header() In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22339 ) Change subject: gprs_bssgp_rim: fix bug in dub_tlvp_header() ...................................................................... gprs_bssgp_rim: fix bug in dub_tlvp_header() When the length field is written the function writes the lower and the higher half of the length at the same position, so the higher half is overwritten with the lower half, this is wrong. Change-Id: I3cce0b2796793554a421fd3ce8e749c52d22eaea Related: CID#216670 Related: SYS#5103 --- M src/gb/gprs_bssgp_rim.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/gb/gprs_bssgp_rim.c b/src/gb/gprs_bssgp_rim.c index 2096977..23fb3a0 100644 --- a/src/gb/gprs_bssgp_rim.c +++ b/src/gb/gprs_bssgp_rim.c @@ -438,7 +438,7 @@ } else { memmove(buf_ptr + 1, buf_ptr, len); buf_ptr[1] = len >> 8; - buf_ptr[1] = len & 0xff; + buf_ptr[2] = len & 0xff; buf_ptr += TVLV_HDR_MAXLEN; } buf_ptr += len; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22339 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I3cce0b2796793554a421fd3ce8e749c52d22eaea Gerrit-Change-Number: 22339 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 16:20:03 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 20 Jan 2021 16:20:03 +0000 Subject: Change in osmo-hlr[master]: Add vty command to show summary of all or filtered subscribers In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-hlr/+/22311 ) Change subject: Add vty command to show summary of all or filtered subscribers ...................................................................... Patch Set 7: (7 comments) https://gerrit.osmocom.org/c/osmo-hlr/+/22311/7/src/db_hlr.c File src/db_hlr.c: https://gerrit.osmocom.org/c/osmo-hlr/+/22311/7/src/db_hlr.c at 629 PS7, Line 629: there is no vty argument in below function https://gerrit.osmocom.org/c/osmo-hlr/+/22311/7/src/db_hlr.c at 633 PS7, Line 633: it's now called get_cb? 'data' is missing. https://gerrit.osmocom.org/c/osmo-hlr/+/22311/7/src/hlr_vty_subscr.c File src/hlr_vty_subscr.c: https://gerrit.osmocom.org/c/osmo-hlr/+/22311/7/src/hlr_vty_subscr.c at 232 PS7, Line 232: vty_out(vty, "----- ------------ ---------------- ---------------- -----"); : if (show_ls) : vty_out(vty, " ------------"); : vty_out_newline(vty); : vty_out(vty, "ID MSISDN IMSI IMEI NAM"); : if (show_ls) : vty_out(vty, " LAST SEEN"); : vty_out_newline(vty); thisi s a repetition of the above. I suggest you factor that "print header" into a separate function and call it from a few lines above and from here. This way we don't have to edit two places if the table format ever changes. https://gerrit.osmocom.org/c/osmo-hlr/+/22311/7/src/hlr_vty_subscr.c at 251 PS7, Line 251: SUBSCR_SHOW_HELP you could add the SHOW_STR inside the definition of SUBSCR_SHOW_HELP, so you don't have to repeat it at every DEFUN below. However, you may intentionally not have wanted that, as the number of tokens/strings is harder to see? https://gerrit.osmocom.org/c/osmo-hlr/+/22311/7/src/hlr_vty_subscr.c at 305 PS7, Line 305: SHOW_STR SUBSCRS_SHOW_HELP "Show summary of subscribers with filter\n" : "Filter by IMSI\n" "Filter by MSISDN\n" "String to match in msisdn or imsi\n") it's odd that the command syntax is hidden in a #define whle the help strings are not. So it's hard to match both when looking at the code. Either use #defines for both and put them at the same location in the file, or list them explicitly here. https://gerrit.osmocom.org/c/osmo-hlr/+/22311/7/src/hlr_vty_subscr.c at 320 PS7, Line 320: Somehow the number of help strings doesn't match the number of tokens. You need 6 strings, I see 5 and some don't make sense. https://gerrit.osmocom.org/c/osmo-hlr/+/22311/7/src/hlr_vty_subscr.c at 323 PS7, Line 323: last seen if you do not expect other tokens after "last" (like "last created" or whatever), then please change to a single tokenm "last-seen". -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/22311 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-Change-Id: I7f0573381a6d0d13841ac6d42d50f0e8389decf4 Gerrit-Change-Number: 22311 Gerrit-PatchSet: 7 Gerrit-Owner: keith Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-CC: laforge Gerrit-CC: neels Gerrit-Comment-Date: Wed, 20 Jan 2021 16:20:03 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 16:42:17 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 20 Jan 2021 16:42:17 +0000 Subject: Change in libosmocore[master]: ns2: Unify logging context via log macros In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22337 ) Change subject: ns2: Unify logging context via log macros ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22337 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I946c0e77686d91efc5afb62031e1ac1033a9a586 Gerrit-Change-Number: 22337 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 20 Jan 2021 16:42:17 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 16:42:33 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 20 Jan 2021 16:42:33 +0000 Subject: Change in libosmocore[master]: gprs_ns2_message: remove wrong comment In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22317 ) Change subject: gprs_ns2_message: remove wrong comment ...................................................................... gprs_ns2_message: remove wrong comment It's a leftover from converting NS1 -> NS2 code Change-Id: I934c7905f8396e74bb1f14d68097c03463816720 --- M src/gb/gprs_ns2_message.c 1 file changed, 0 insertions(+), 1 deletion(-) Approvals: pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/gb/gprs_ns2_message.c b/src/gb/gprs_ns2_message.c index 6c7f08f..41605f4 100644 --- a/src/gb/gprs_ns2_message.c +++ b/src/gb/gprs_ns2_message.c @@ -258,7 +258,6 @@ LOGP(DLNS, LOGL_INFO, "NSEI=%u Tx NS BLOCK ACK (NSVCI=%u)\n", nsvc->nse->nsei, nsvc->nsvci); - /* be conservative and mark it as blocked even now! */ msg->l2h = msgb_put(msg, sizeof(*nsh)); nsh = (struct gprs_ns_hdr *) msg->l2h; nsh->pdu_type = NS_PDUT_BLOCK_ACK; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22317 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I934c7905f8396e74bb1f14d68097c03463816720 Gerrit-Change-Number: 22317 Gerrit-PatchSet: 8 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 16:42:34 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 20 Jan 2021 16:42:34 +0000 Subject: Change in libosmocore[master]: ns2: Unify logging context via log macros In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22337 ) Change subject: ns2: Unify logging context via log macros ...................................................................... ns2: Unify logging context via log macros Let's avoid open-coding the printing of log context and rather rely on log macros to prefix each log line with the relevant context. This helps log readability, log post processing whether by grep or more sophisticated tools. Change-Id: I946c0e77686d91efc5afb62031e1ac1033a9a586 --- M src/gb/gprs_ns2.c M src/gb/gprs_ns2_fr.c M src/gb/gprs_ns2_frgre.c M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_message.c M src/gb/gprs_ns2_sns.c M src/gb/gprs_ns2_udp.c M src/gb/gprs_ns2_vc_fsm.c 8 files changed, 112 insertions(+), 119 deletions(-) Approvals: lynxis lazus: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c index dc8ad8e..ec60dbd 100644 --- a/src/gb/gprs_ns2.c +++ b/src/gb/gprs_ns2.c @@ -695,7 +695,7 @@ nse = gprs_ns2_nse_by_nsei(nsi, nsei); if (nse) { - LOGP(DLNS, LOGL_ERROR, "NSEI:%u Can not create a NSE with already taken NSEI\n", nsei); + LOGNSE(nse, LOGL_ERROR, "Can not create a NSE with already taken NSEI\n"); return nse; } @@ -885,8 +885,9 @@ } else { /* nsei already known */ if (nse->ll != bind->ll) { - LOGP(DLNS, LOGL_ERROR, "Received NS-RESET NS-VCI(%05u) with wrong linklayer(%s) for already known NSE(%05u/%s)\n", - nsei, gprs_ns2_lltype_str(bind->ll), nse->nsei, gprs_ns2_lltype_str(nse->ll)); + LOGNSE(nse, LOGL_ERROR, "Received NS-RESET NS-VCI(%05u) with wrong linklayer(%s)" + " for already known NSE(%s)\n", nsvci, gprs_ns2_lltype_str(bind->ll), + gprs_ns2_lltype_str(nse->ll)); return GPRS_NS2_CS_SKIPPED; } } @@ -894,8 +895,7 @@ nsvc = gprs_ns2_nsvc_by_nsvci(bind->nsi, nsvci); if (nsvc) { if (nsvc->persistent) { - LOGP(DLNS, LOGL_ERROR, "Received NS-RESET for a persistent NSE(%05u) NS-VCI(%05u) over wrong connection.\n", - nsei, nsvci); + LOGNSVC(nsvc, LOGL_ERROR, "Received NS-RESET for a persistent NSE over wrong connection.\n"); return GPRS_NS2_CS_SKIPPED; } /* destroy old dynamic nsvc */ @@ -904,8 +904,8 @@ /* do nse persistent check late to be more precise on the error message */ if (nse->persistent) { - LOGP(DLNS, LOGL_ERROR, "Received NS-RESET for a persistent NSE(%05u) but the unknown NS-VCI(%05u)\n", - nsei, nsvci); + LOGNSE(nse, LOGL_ERROR, "Received NS-RESET for a persistent NSE but the unknown " + "NS-VCI(%05u)\n", nsvci); return GPRS_NS2_CS_SKIPPED; } diff --git a/src/gb/gprs_ns2_fr.c b/src/gb/gprs_ns2_fr.c index a7455d7..274ed96 100644 --- a/src/gb/gprs_ns2_fr.c +++ b/src/gb/gprs_ns2_fr.c @@ -214,8 +214,7 @@ rc = recvfrom(bfd->fd, msg->data, NS_ALLOC_SIZE, 0, (struct sockaddr *)&sll, &sll_len); if (rc < 0) { - LOGP(DLNS, LOGL_ERROR, "recv error %s during NS-FR-GRE recv\n", - strerror(errno)); + LOGBIND(bind, LOGL_ERROR, "recv error %s during NS-FR-GRE recv\n", strerror(errno)); goto out_err; } else if (rc == 0) { goto out_err; @@ -273,8 +272,7 @@ struct priv_bind *priv = bind->priv; if (osmo_wqueue_enqueue(&priv->wqueue, msg)) { - LOGP(DLNS, LOGL_ERROR, "frame relay %s: failed to enqueue message\n", - priv->netif); + LOGBIND(bind, LOGL_ERROR, "frame relay %s: failed to enqueue message\n", priv->netif); msgb_free(msg); return -EINVAL; } @@ -303,7 +301,7 @@ return ifr.ifr_ifindex; } -static int open_socket(int ifindex) +static int open_socket(int ifindex, const struct gprs_ns2_vc_bind *nsbind) { struct sockaddr_ll addr; int fd, rc; @@ -315,7 +313,7 @@ fd = socket(AF_PACKET, SOCK_RAW, htons(ETH_P_HDLC)); if (fd < 0) { - LOGP(DLNS, LOGL_ERROR, "Can not create AF_PACKET socket. Are you root or have CAP_RAW_SOCKET?\n"); + LOGBIND(nsbind, LOGL_ERROR, "Can not create AF_PACKET socket. Are you root or have CAP_NET_RAW?\n"); return fd; } @@ -324,7 +322,7 @@ rc = bind(fd, (struct sockaddr *)&addr, sizeof(addr)); if (rc < 0) { - LOGP(DLNS, LOGL_ERROR, "Can not bind AF_PACKET socket to ifindex %d\n", ifindex); + LOGBIND(nsbind, LOGL_ERROR, "Can not bind AF_PACKET socket to ifindex %d\n", ifindex); close(fd); return rc; } @@ -410,8 +408,8 @@ struct priv_bind *bpriv = bind->priv; if (bpriv->if_running != if_running) { /* update running state */ - LOGP(DLNS, LOGL_NOTICE, "FR net-device '%s': Physical link state changed: %s\n", - ifname, if_running ? "UP" : "DOWN"); + LOGBIND(bind, LOGL_NOTICE, "FR net-device '%s': Physical link state changed: %s\n", + ifname, if_running ? "UP" : "DOWN"); bpriv->if_running = if_running; } } @@ -471,7 +469,7 @@ return rc; } -static int setup_device(const char *netif) +static int setup_device(const char *netif, const struct gprs_ns2_vc_bind *bind) { int sock, rc; char buffer[128]; @@ -480,8 +478,8 @@ sock = socket(PF_INET, SOCK_DGRAM, IPPROTO_IP); if (sock < 0) { - LOGP(DLNS, LOGL_ERROR, "%s: Unable to create socket: %s\n", - netif, strerror(errno)); + LOGBIND(bind, LOGL_ERROR, "%s: Unable to create socket: %s\n", + netif, strerror(errno)); return sock; } @@ -495,22 +493,22 @@ /* EINVAL is returned when no protocol has been set */ rc = ioctl(sock, SIOCWANDEV, &req); if (rc < 0 && errno != EINVAL) { - LOGP(DLNS, LOGL_ERROR, "%s: Unable to get FR protocol information: %s\n", - netif, strerror(errno)); + LOGBIND(bind, LOGL_ERROR, "%s: Unable to get FR protocol information: %s\n", + netif, strerror(errno)); goto err; } /* check if the device is good */ if (rc == 0 && req.ifr_settings.type == IF_PROTO_FR && fr->lmi == LMI_NONE) { - LOGP(DLNS, LOGL_NOTICE, "%s: has correct frame relay mode and lmi\n", netif); + LOGBIND(bind, LOGL_NOTICE, "%s: has correct frame relay mode and lmi\n", netif); goto ifup; } /* modify the device to match */ rc = set_ifupdown(netif, false); if (rc) { - LOGP(DLNS, LOGL_ERROR, "Unable to bring down the device %s: %s\n", - netif, strerror(errno)); + LOGBIND(bind, LOGL_ERROR, "Unable to bring down the device %s: %s\n", + netif, strerror(errno)); goto err; } @@ -533,19 +531,19 @@ /* monitored events count */ fr->n393 = 4; - LOGP(DLNS, LOGL_INFO, "%s: Setting frame relay related parameters\n", netif); + LOGBIND(bind, LOGL_INFO, "%s: Setting frame relay related parameters\n", netif); rc = ioctl(sock, SIOCWANDEV, &req); if (rc) { - LOGP(DLNS, LOGL_ERROR, "%s: Unable to set FR protocol on information: %s\n", - netif, strerror(errno)); + LOGBIND(bind, LOGL_ERROR, "%s: Unable to set FR protocol on information: %s\n", + netif, strerror(errno)); goto err; } ifup: rc = set_ifupdown(netif, true); if (rc) - LOGP(DLNS, LOGL_ERROR, "Unable to bring up the device %s: %s\n", - netif, strerror(errno)); + LOGBIND(bind, LOGL_ERROR, "Unable to bring up the device %s: %s\n", + netif, strerror(errno)); err: close(sock); return rc; @@ -622,18 +620,18 @@ priv->ifindex = rc = devname2ifindex(netif); if (rc < 0) { - LOGP(DLNS, LOGL_ERROR, "Can not get interface index for interface %s\n", netif); + LOGBIND(bind, LOGL_ERROR, "Can not get interface index for interface %s\n", netif); goto err_fr; } /* set protocol frame relay and lmi */ - rc = setup_device(priv->netif); + rc = setup_device(priv->netif, bind); if(rc < 0) { - LOGP(DLNS, LOGL_ERROR, "Failed to setup the interface %s for frame relay and lmi\n", netif); + LOGBIND(bind, LOGL_ERROR, "Failed to setup the interface %s for frame relay and lmi\n", netif); goto err_fr; } - rc = open_socket(priv->ifindex); + rc = open_socket(priv->ifindex, bind); if (rc < 0) goto err_fr; osmo_wqueue_init(&priv->wqueue, 10); diff --git a/src/gb/gprs_ns2_frgre.c b/src/gb/gprs_ns2_frgre.c index 86f0921..2812e12 100644 --- a/src/gb/gprs_ns2_frgre.c +++ b/src/gb/gprs_ns2_frgre.c @@ -180,26 +180,25 @@ inner_ip6h = (struct ip6_hdr *) ((uint8_t *)greh + sizeof(*greh)); if (gre_payload_len < sizeof(*ip6hdr) + sizeof(*inner_greh)) { - LOGP(DLNS, LOGL_ERROR, "GRE keepalive too short\n"); + LOGBIND(bind, LOGL_ERROR, "GRE keepalive too short\n"); return -EIO; } if (!memcmp(&inner_ip6h->ip6_src, &ip6hdr->ip6_src, sizeof(struct in6_addr)) || !memcmp(&inner_ip6h->ip6_dst, &ip6hdr->ip6_dst, sizeof(struct in6_addr))) { - LOGP(DLNS, LOGL_ERROR, - "GRE keepalive with wrong tunnel addresses\n"); + LOGBIND(bind, LOGL_ERROR, "GRE keepalive with wrong tunnel addresses\n"); return -EIO; } /* Are IPv6 extensions header are allowed in the *inner*? In the outer they are */ if (inner_ip6h->ip6_ctlun.ip6_un1.ip6_un1_nxt != IPPROTO_GRE) { - LOGP(DLNS, LOGL_ERROR, "GRE keepalive with wrong protocol\n"); + LOGBIND(bind, LOGL_ERROR, "GRE keepalive with wrong protocol\n"); return -EIO; } inner_greh = (struct gre_hdr *) ((uint8_t *)inner_ip6h + sizeof(struct ip6_hdr)); if (inner_greh->ptype != osmo_htons(GRE_PTYPE_KAR)) { - LOGP(DLNS, LOGL_ERROR, "GRE keepalive inner GRE type != 0\n"); + LOGBIND(bind, LOGL_ERROR, "GRE keepalive inner GRE type != 0\n"); return -EIO; } @@ -212,7 +211,7 @@ ia6 = ip6hdr->ip6_src; char ip6str[INET6_ADDRSTRLEN] = {}; inet_ntop(AF_INET6, &ia6, ip6str, INET6_ADDRSTRLEN); - LOGP(DLNS, LOGL_DEBUG, "GRE keepalive from %s, responding\n", ip6str); + LOGBIND(bind, LOGL_DEBUG, "GRE keepalive from %s, responding\n", ip6str); /* why does it reduce the gre_payload_len by the ipv6 header? * make it similiar to ipv4 even this seems to be wrong */ @@ -238,25 +237,24 @@ inner_iph = (struct iphdr *) ((uint8_t *)greh + sizeof(*greh)); if (gre_payload_len < inner_iph->ihl*4 + sizeof(*inner_greh)) { - LOGP(DLNS, LOGL_ERROR, "GRE keepalive too short\n"); + LOGBIND(bind, LOGL_ERROR, "GRE keepalive too short\n"); return -EIO; } if (inner_iph->saddr != iph->daddr || inner_iph->daddr != iph->saddr) { - LOGP(DLNS, LOGL_ERROR, - "GRE keepalive with wrong tunnel addresses\n"); + LOGBIND(bind, LOGL_ERROR, "GRE keepalive with wrong tunnel addresses\n"); return -EIO; } if (inner_iph->protocol != IPPROTO_GRE) { - LOGP(DLNS, LOGL_ERROR, "GRE keepalive with wrong protocol\n"); + LOGBIND(bind, LOGL_ERROR, "GRE keepalive with wrong protocol\n"); return -EIO; } inner_greh = (struct gre_hdr *) ((uint8_t *)inner_iph + iph->ihl*4); if (inner_greh->ptype != osmo_htons(GRE_PTYPE_KAR)) { - LOGP(DLNS, LOGL_ERROR, "GRE keepalive inner GRE type != 0\n"); + LOGBIND(bind, LOGL_ERROR, "GRE keepalive inner GRE type != 0\n"); return -EIO; } @@ -267,8 +265,7 @@ daddr.sin_port = IPPROTO_GRE; ia.s_addr = iph->saddr; - LOGP(DLNS, LOGL_DEBUG, "GRE keepalive from %s, responding\n", - inet_ntoa(ia)); + LOGBIND(bind, LOGL_DEBUG, "GRE keepalive from %s, responding\n", inet_ntoa(ia)); /* why does it reduce the gre_payload_len by the ipv4 header? */ return sendto(priv->fd.fd, inner_greh, @@ -277,7 +274,8 @@ } static struct msgb *read_nsfrgre_msg(struct osmo_fd *bfd, int *error, - struct osmo_sockaddr *saddr, uint16_t *dlci) + struct osmo_sockaddr *saddr, uint16_t *dlci, + const struct gprs_ns2_vc_bind *bind) { struct msgb *msg = msgb_alloc(NS_ALLOC_SIZE, "Gb/NS/FR/GRE Rx"); int ret = 0; @@ -296,8 +294,7 @@ ret = recvfrom(bfd->fd, msg->data, NS_ALLOC_SIZE, 0, &saddr->u.sa, &saddr_len); if (ret < 0) { - LOGP(DLNS, LOGL_ERROR, "recv error %s during NS-FR-GRE recv\n", - strerror(errno)); + LOGBIND(bind, LOGL_ERROR, "recv error %s during NS-FR-GRE recv\n", strerror(errno)); *error = ret; goto out_err; } else if (ret == 0) { @@ -323,7 +320,7 @@ /* TODO: add support for the extension headers */ if (msg->len < ip46hdr + sizeof(*greh) + 2) { - LOGP(DLNS, LOGL_ERROR, "Short IP packet: %u bytes\n", msg->len); + LOGBIND(bind, LOGL_ERROR, "Short IP packet: %u bytes\n", msg->len); *error = -EIO; goto out_err; } @@ -332,7 +329,7 @@ case AF_INET: iph = (struct iphdr *) msg->data; if (msg->len < (iph->ihl*4 + sizeof(*greh) + 2)) { - LOGP(DLNS, LOGL_ERROR, "Short IP packet: %u bytes\n", msg->len); + LOGBIND(bind, LOGL_ERROR, "Short IP packet: %u bytes\n", msg->len); *error = -EIO; goto out_err; } @@ -344,8 +341,7 @@ greh = (struct gre_hdr *) (msg->data + iph->ihl*4); if (greh->flags) { - LOGP(DLNS, LOGL_NOTICE, "Unknown GRE flags 0x%04x\n", - osmo_ntohs(greh->flags)); + LOGBIND(bind, LOGL_NOTICE, "Unknown GRE flags 0x%04x\n", osmo_ntohs(greh->flags)); } switch (osmo_ntohs(greh->ptype)) { @@ -362,29 +358,27 @@ /* continue as usual */ break; default: - LOGP(DLNS, LOGL_NOTICE, "Unknown GRE protocol 0x%04x != FR\n", - osmo_ntohs(greh->ptype)); + LOGBIND(bind, LOGL_NOTICE, "Unknown GRE protocol 0x%04x != FR\n", osmo_ntohs(greh->ptype)); *error = -EIO; goto out_err; break; } if (msg->len < sizeof(*greh) + 2) { - LOGP(DLNS, LOGL_ERROR, "Short FR header: %u bytes\n", msg->len); + LOGBIND(bind, LOGL_ERROR, "Short FR header: %u bytes\n", msg->len); *error = -EIO; goto out_err; } frh = (uint8_t *)greh + sizeof(*greh); if (frh[0] & 0x01) { - LOGP(DLNS, LOGL_NOTICE, "Unsupported single-byte FR address\n"); + LOGBIND(bind, LOGL_NOTICE, "Unsupported single-byte FR address\n"); *error = -EIO; goto out_err; } *dlci = ((frh[0] & 0xfc) << 2); if ((frh[1] & 0x0f) != 0x01) { - LOGP(DLNS, LOGL_NOTICE, "Unknown second FR octet 0x%02x\n", - frh[1]); + LOGBIND(bind, LOGL_NOTICE, "Unknown second FR octet 0x%02x\n", frh[1]); *error = -EIO; goto out_err; } @@ -430,13 +424,12 @@ struct msgb *reject; uint16_t dlci; - msg = read_nsfrgre_msg(bfd, &rc, &saddr, &dlci); + msg = read_nsfrgre_msg(bfd, &rc, &saddr, &dlci, bind); if (!msg) return rc; if (dlci == 0 || dlci == 1023) { - LOGP(DLNS, LOGL_INFO, "Received FR on LMI DLCI %u - ignoring\n", - dlci); + LOGBIND(bind, LOGL_INFO, "Received FR on LMI DLCI %u - ignoring\n", dlci); rc = 0; goto out; } @@ -603,8 +596,7 @@ rc = setsockopt(priv->fd.fd, IPPROTO_IP, IP_TOS, &dscp, sizeof(dscp)); if (rc < 0) - LOGP(DLNS, LOGL_ERROR, - "Failed to set the DSCP to %d with ret(%d) errno(%d)\n", + LOGBIND(bind, LOGL_ERROR, "Failed to set the DSCP to %d with ret(%d) errno(%d)\n", dscp, rc, errno); } diff --git a/src/gb/gprs_ns2_internal.h b/src/gb/gprs_ns2_internal.h index ebb2e3b..7183bd8 100644 --- a/src/gb/gprs_ns2_internal.h +++ b/src/gb/gprs_ns2_internal.h @@ -8,6 +8,24 @@ #include #include +#define LOGNSE(nse, lvl, fmt, args ...) \ + LOGP(DLNS, lvl, "NSE(%05u) " fmt, (nse)->nsei, ## args) + +#define LOGBIND(bind, lvl, fmt, args ...) \ + LOGP(DLNS, lvl, "BIND(%s) " fmt, (bind)->name, ## args) + + +#define LOGNSVC(nsvc, lvl, fmt, args ...) \ + do { \ + if ((nsvc)->nsvci_is_valid) { \ + LOGP(DLNS, lvl, "NSE(%05u)-NSVC(%05u) " fmt, \ + (nsvc)->nse->nsei, (nsvc)->nsvci, ## args); \ + } else { \ + LOGP(DLNS, lvl, "NSE(%05u)-NSVC(none) " fmt, \ + (nsvc)->nse->nsei, ## args); \ + } \ + } while (0) + struct osmo_fsm_inst; struct tlv_parsed; struct vty; diff --git a/src/gb/gprs_ns2_message.c b/src/gb/gprs_ns2_message.c index 41605f4..9559229 100644 --- a/src/gb/gprs_ns2_message.c +++ b/src/gb/gprs_ns2_message.c @@ -43,8 +43,7 @@ do { \ if (!nsvc->nse->bss_sns_fi) \ break; \ - LOGP(DLNS, LOGL_DEBUG, "NSEI=%u Rx invalid packet %s with SNS\n", \ - nsvc->nse->nsei, reason); \ + LOGNSVC(nsvc, LOGL_DEBUG, "invalid packet %s with SNS\n", reason); \ } while (0) enum ns_ctr { @@ -223,8 +222,7 @@ if (!msg) return -ENOMEM; - LOGP(DLNS, LOGL_INFO, "NSEI=%u Tx NS BLOCK (NSVCI=%u, cause=%s)\n", - nsvc->nse->nsei, nsvc->nsvci, gprs_ns2_cause_str(cause)); + LOGNSVC(nsvc, LOGL_INFO, "Tx NS BLOCK (cause=%s)\n", gprs_ns2_cause_str(cause)); rate_ctr_inc(&nsvc->ctrg->ctr[NS_CTR_BLOCKED]); @@ -256,7 +254,7 @@ if (!msg) return -ENOMEM; - LOGP(DLNS, LOGL_INFO, "NSEI=%u Tx NS BLOCK ACK (NSVCI=%u)\n", nsvc->nse->nsei, nsvc->nsvci); + LOGNSVC(nsvc, LOGL_INFO, "Tx NS BLOCK ACK\n"); msg->l2h = msgb_put(msg, sizeof(*nsh)); nsh = (struct gprs_ns_hdr *) msg->l2h; @@ -287,8 +285,7 @@ if (!msg) return -ENOMEM; - LOGP(DLNS, LOGL_INFO, "NSEI=%u Tx NS RESET (NSVCI=%u, cause=%s)\n", - nsvc->nse->nsei, nsvc->nsvci, gprs_ns2_cause_str(cause)); + LOGNSVC(nsvc, LOGL_INFO, "Tx NS RESET (cause=%s)\n", gprs_ns2_cause_str(cause)); msg->l2h = msgb_put(msg, sizeof(*nsh)); nsh = (struct gprs_ns_hdr *) msg->l2h; @@ -328,8 +325,7 @@ nsh->pdu_type = NS_PDUT_RESET_ACK; - LOGP(DLNS, LOGL_INFO, "NSEI=%u Tx NS RESET ACK (NSVCI=%u)\n", - nsvc->nse->nsei, nsvc->nsvci); + LOGNSVC(nsvc, LOGL_INFO, "Tx NS RESET ACK\n"); msgb_tvlv_put(msg, NS_IE_VCI, 2, (uint8_t *)&nsvci); msgb_tvlv_put(msg, NS_IE_NSEI, 2, (uint8_t *)&nsei); @@ -347,8 +343,7 @@ ERR_IF_NSVC_USES_SNS(nsvc, "transmit NS UNBLOCK"); - LOGP(DLNS, LOGL_INFO, "NSEI=%u Tx NS UNBLOCK (NSVCI=%u)\n", - nsvc->nse->nsei, nsvc->nsvci); + LOGNSVC(nsvc, LOGL_INFO, "Tx NS UNBLOCK\n"); return ns2_tx_simple(nsvc, NS_PDUT_UNBLOCK); } @@ -364,8 +359,7 @@ ERR_IF_NSVC_USES_SNS(nsvc, "transmit NS UNBLOCK ACK"); - LOGP(DLNS, LOGL_INFO, "NSEI=%u Tx NS UNBLOCK (NSVCI=%u)\n", - nsvc->nse->nsei, nsvc->nsvci); + LOGNSVC(nsvc, LOGL_INFO, "Tx NS UNBLOCK_ACK\n"); return ns2_tx_simple(nsvc, NS_PDUT_UNBLOCK_ACK); } @@ -377,8 +371,7 @@ { log_set_context(LOG_CTX_GB_NSE, nsvc->nse); log_set_context(LOG_CTX_GB_NSVC, nsvc); - LOGP(DLNS, LOGL_DEBUG, "NSEI=%u Tx NS ALIVE (NSVCI=%u)\n", - nsvc->nse->nsei, nsvc->nsvci); + LOGNSVC(nsvc, LOGL_DEBUG, "Tx NS ALIVE\n"); return ns2_tx_simple(nsvc, NS_PDUT_ALIVE); } @@ -390,8 +383,7 @@ { log_set_context(LOG_CTX_GB_NSE, nsvc->nse); log_set_context(LOG_CTX_GB_NSVC, nsvc); - LOGP(DLNS, LOGL_DEBUG, "NSEI=%u Tx NS ALIVE_ACK (NSVCI=%u)\n", - nsvc->nse->nsei, nsvc->nsvci); + LOGNSVC(nsvc, LOGL_DEBUG, "Tx NS ALIVE_ACK\n"); return ns2_tx_simple(nsvc, NS_PDUT_ALIVE_ACK); } @@ -414,7 +406,7 @@ msg->l2h = msgb_push(msg, sizeof(*nsh) + 3); nsh = (struct gprs_ns_hdr *) msg->l2h; if (!nsh) { - LOGP(DLNS, LOGL_ERROR, "Not enough headroom for NS header\n"); + LOGNSVC(nsvc, LOGL_ERROR, "Not enough headroom for NS header\n"); msgb_free(msg); return -EIO; } @@ -448,8 +440,7 @@ if (!msg) return -ENOMEM; - LOGP(DLNS, LOGL_NOTICE, "NSEI=%u Tx NS STATUS (NSVCI=%u, cause=%s)\n", - nsvc->nse->nsei, nsvc->nsvci, gprs_ns2_cause_str(cause)); + LOGNSVC(nsvc, LOGL_NOTICE, "Tx NS STATUS (cause=%s)\n", gprs_ns2_cause_str(cause)); msg->l2h = msgb_put(msg, sizeof(*nsh)); nsh = (struct gprs_ns_hdr *) msg->l2h; @@ -512,8 +503,7 @@ return -ENOMEM; if (!nsvc->nse->bss_sns_fi) { - LOGP(DLNS, LOGL_ERROR, "NSEI=%u Cannot transmit SNS on NSVC without SNS active\n", - nsvc->nse->nsei); + LOGNSVC(nsvc, LOGL_ERROR, "Cannot transmit SNS on NSVC without SNS active\n"); msgb_free(msg); return -EIO; } @@ -571,8 +561,7 @@ return -ENOMEM; if (!nsvc->nse->bss_sns_fi) { - LOGP(DLNS, LOGL_ERROR, "NSEI=%u Cannot transmit SNS on NSVC without SNS active\n", - nsvc->nse->nsei); + LOGNSVC(nsvc, LOGL_ERROR, "Cannot transmit SNS on NSVC without SNS active\n"); msgb_free(msg); return -EIO; } @@ -620,8 +609,7 @@ return -ENOMEM; if (!nsvc->nse->bss_sns_fi) { - LOGP(DLNS, LOGL_ERROR, "NSEI=%u Cannot transmit SNS on NSVC without SNS active\n", - nsvc->nse->nsei); + LOGNSVC(nsvc, LOGL_ERROR, "Cannot transmit SNS on NSVC without SNS active\n"); msgb_free(msg); return -EIO; } @@ -666,8 +654,7 @@ return -ENOMEM; if (!nsvc->nse->bss_sns_fi) { - LOGP(DLNS, LOGL_ERROR, "NSEI=%u Cannot transmit SNS on NSVC without SNS active\n", - nsvc->nse->nsei); + LOGNSVC(nsvc, LOGL_ERROR, "Cannot transmit SNS on NSVC without SNS active\n"); msgb_free(msg); return -EIO; } @@ -706,8 +693,7 @@ return -ENOMEM; if (!nsvc->nse->bss_sns_fi) { - LOGP(DLNS, LOGL_ERROR, "NSEI=%u Cannot transmit SNS on NSVC without SNS active\n", - nsvc->nse->nsei); + LOGNSVC(nsvc, LOGL_ERROR, "Cannot transmit SNS on NSVC without SNS active\n"); msgb_free(msg); return -EIO; } diff --git a/src/gb/gprs_ns2_sns.c b/src/gb/gprs_ns2_sns.c index 72e4ea7..90d97b6 100644 --- a/src/gb/gprs_ns2_sns.c +++ b/src/gb/gprs_ns2_sns.c @@ -1447,17 +1447,17 @@ struct osmo_fsm_inst *fi; if (!nse->bss_sns_fi) { - LOGP(DLNS, LOGL_NOTICE, "NSEI=%u Rx %s for NS Instance that has no SNS!\n", - nsvc->nse->nsei, get_value_string(gprs_ns_pdu_strings, nsh->pdu_type)); + LOGNSVC(nsvc, LOGL_NOTICE, "Rx %s for NS Instance that has no SNS!\n", + get_value_string(gprs_ns_pdu_strings, nsh->pdu_type)); return -EINVAL; } - LOGP(DLNS, LOGL_DEBUG, "NSEI=%u Rx SNS PDU type %s\n", nsei, - get_value_string(gprs_ns_pdu_strings, nsh->pdu_type)); - /* FIXME: how to resolve SNS FSM Instance by NSEI (SGSN)? */ fi = nse->bss_sns_fi; + LOGPFSML(fi, LOGL_DEBUG, "NSEI=%u Rx SNS PDU type %s\n", nsei, + get_value_string(gprs_ns_pdu_strings, nsh->pdu_type)); + switch (nsh->pdu_type) { case SNS_PDUT_SIZE: osmo_fsm_inst_dispatch(fi, GPRS_SNS_EV_SIZE, tp); @@ -1484,12 +1484,12 @@ osmo_fsm_inst_dispatch(fi, GPRS_SNS_EV_CHANGE_WEIGHT, tp); break; case SNS_PDUT_ACK: - LOGP(DLNS, LOGL_NOTICE, "NSEI=%u Rx unsupported SNS PDU type %s\n", nsei, - get_value_string(gprs_ns_pdu_strings, nsh->pdu_type)); + LOGPFSML(fi, LOGL_NOTICE, "NSEI=%u Rx unsupported SNS PDU type %s\n", nsei, + get_value_string(gprs_ns_pdu_strings, nsh->pdu_type)); break; default: - LOGP(DLNS, LOGL_ERROR, "NSEI=%u Rx unknown SNS PDU type %s\n", nsei, - get_value_string(gprs_ns_pdu_strings, nsh->pdu_type)); + LOGPFSML(fi, LOGL_ERROR, "NSEI=%u Rx unknown SNS PDU type %s\n", nsei, + get_value_string(gprs_ns_pdu_strings, nsh->pdu_type)); return -EINVAL; } @@ -1663,7 +1663,7 @@ /* gprs_ns2_free_nsvcs() will trigger GPRS_SNS_EV_NO_NSVC on the last NS-VC * and restart SNS SIZE procedure which selects a new initial */ - LOGP(DLNS, LOGL_INFO, "Current in-use SNS endpoint is being removed." + LOGNSE(nse, LOGL_INFO, "Current in-use SNS endpoint is being removed." "Closing all NS-VC and restart SNS-SIZE procedure" "with a remaining SNS endpoint.\n"); diff --git a/src/gb/gprs_ns2_udp.c b/src/gb/gprs_ns2_udp.c index 2a335c1..8bfa184 100644 --- a/src/gb/gprs_ns2_udp.c +++ b/src/gb/gprs_ns2_udp.c @@ -168,8 +168,8 @@ } /* Read a single NS-over-IP message */ -static struct msgb *read_nsip_msg(struct osmo_fd *bfd, int *error, - struct osmo_sockaddr *saddr) +static struct msgb *read_nsip_msg(struct osmo_fd *bfd, int *error, struct osmo_sockaddr *saddr, + const struct gprs_ns2_vc_bind *bind) { struct msgb *msg = gprs_ns2_msgb_alloc(); int ret = 0; @@ -183,8 +183,8 @@ ret = recvfrom(bfd->fd, msg->data, NS_ALLOC_SIZE - NS_ALLOC_HEADROOM, 0, &saddr->u.sa, &saddr_len); if (ret < 0) { - LOGP(DLNS, LOGL_ERROR, "recv error %s during NSIP recvfrom %s\n", - strerror(errno), osmo_sock_get_name2(bfd->fd)); + LOGBIND(bind, LOGL_ERROR, "recv error %s during NSIP recvfrom %s\n", + strerror(errno), osmo_sock_get_name2(bfd->fd)); msgb_free(msg); *error = ret; return NULL; @@ -219,7 +219,7 @@ struct gprs_ns2_vc_bind *bind = bfd->data; struct osmo_sockaddr saddr; struct gprs_ns2_vc *nsvc; - struct msgb *msg = read_nsip_msg(bfd, &error, &saddr); + struct msgb *msg = read_nsip_msg(bfd, &error, &saddr, bind); struct msgb *reject; if (!msg) @@ -378,8 +378,7 @@ rc = setsockopt(priv->fd.fd, IPPROTO_IP, IP_TOS, &dscp, sizeof(dscp)); if (rc < 0) - LOGP(DLNS, LOGL_ERROR, - "Failed to set the DSCP to %d with ret(%d) errno(%d)\n", + LOGBIND(bind, LOGL_ERROR, "Failed to set the DSCP to %d with ret(%d) errno(%d)\n", dscp, rc, errno); } @@ -409,8 +408,8 @@ vc_mode = gprs_ns2_dialect_to_vc_mode(nse->dialect); if ((int) vc_mode == -1) { - LOGP(DLNS, LOGL_ERROR, "Can not derive vc mode from dialect %d. Maybe libosmocore is too old.\n", - nse->dialect); + LOGNSE(nse, LOGL_ERROR, "Can not derive vc mode from dialect %d. Maybe libosmocore is too old.\n", + nse->dialect); return NULL; } @@ -528,10 +527,10 @@ rc = setsockopt(priv->fd.fd, IPPROTO_IP, IP_TOS, &dscp, sizeof(dscp)); - if (rc < 0) - LOGP(DLNS, LOGL_ERROR, - "Failed to set the DSCP to %d with ret(%d) errno(%d)\n", - dscp, rc, errno); + if (rc < 0) { + LOGBIND(bind, LOGL_ERROR, "Failed to set the DSCP to %d with ret(%d) errno(%d)\n", + dscp, rc, errno); + } } return rc; diff --git a/src/gb/gprs_ns2_vc_fsm.c b/src/gb/gprs_ns2_vc_fsm.c index 5de86f5..fc2a86a 100644 --- a/src/gb/gprs_ns2_vc_fsm.c +++ b/src/gb/gprs_ns2_vc_fsm.c @@ -793,8 +793,8 @@ osmo_fsm_inst_dispatch(fi, GPRS_NS2_EV_RX_UNITDATA, msg); return 0; default: - LOGP(DLNS, LOGL_ERROR, "NSEI=%u Rx unknown NS PDU type %s\n", nsvc->nse->nsei, - get_value_string(gprs_ns_pdu_strings, nsh->pdu_type)); + LOGPFSML(fi, LOGL_ERROR, "NSEI=%u Rx unknown NS PDU type %s\n", nsvc->nse->nsei, + get_value_string(gprs_ns_pdu_strings, nsh->pdu_type)); return -EINVAL; } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22337 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I946c0e77686d91efc5afb62031e1ac1033a9a586 Gerrit-Change-Number: 22337 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 17:50:39 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Wed, 20 Jan 2021 17:50:39 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Use separate NS-VC for data / signalling on SGSN side In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22306 ) Change subject: gbproxy: Use separate NS-VC for data / signalling on SGSN side ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22306 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If0e404bdf2c30a5e18748695608611be83f61109 Gerrit-Change-Number: 22306 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Wed, 20 Jan 2021 17:50:39 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 17:52:16 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Wed, 20 Jan 2021 17:52:16 +0000 Subject: Change in osmo-ttcn3-hacks[master]: NS_Emulation: Respect data_weight==0 or signalling_weight==0 In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22305 ) Change subject: NS_Emulation: Respect data_weight==0 or signalling_weight==0 ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22305 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I9798e639b4bc8658482945970775b012b5840779 Gerrit-Change-Number: 22305 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Wed, 20 Jan 2021 17:52:16 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 18:05:49 2021 From: gerrit-no-reply at lists.osmocom.org (roh) Date: Wed, 20 Jan 2021 18:05:49 +0000 Subject: Change in pysim[master]: Readme.md: update debian deps, add python3-yaml References: Message-ID: roh has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/22342 ) Change subject: Readme.md: update debian deps, add python3-yaml ...................................................................... Readme.md: update debian deps, add python3-yaml Change-Id: Ic0d53ec3f312afee9d28f2f63d35e5c56dfd4686 --- M README.md 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/42/22342/1 diff --git a/README.md b/README.md index 105ca3f..3234665 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ Example for Debian: - apt-get install python3-pyscard python3-serial python3-pip + apt-get install python3-pyscard python3-serial python3-pip python3-yaml pip3 install pytlv -- To view, visit https://gerrit.osmocom.org/c/pysim/+/22342 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ic0d53ec3f312afee9d28f2f63d35e5c56dfd4686 Gerrit-Change-Number: 22342 Gerrit-PatchSet: 1 Gerrit-Owner: roh Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 18:06:14 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 20 Jan 2021 18:06:14 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vc_fsm: check NSEI match the NSE In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22325 to look at the new patch set (#3). Change subject: gprs_ns2_vc_fsm: check NSEI match the NSE ...................................................................... gprs_ns2_vc_fsm: check NSEI match the NSE The NSE must match the PDUs. The only exception is a RESET with dialect ipaccess. However those will be handled later. Change-Id: Ic8fc49d850490feb0ff69171a6b0881ae8696c0b --- M src/gb/gprs_ns2_vc_fsm.c 1 file changed, 14 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/25/22325/3 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22325 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic8fc49d850490feb0ff69171a6b0881ae8696c0b Gerrit-Change-Number: 22325 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 18:06:14 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 20 Jan 2021 18:06:14 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vc_fsm: check NSVCI match the NSE In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22340 to look at the new patch set (#2). Change subject: gprs_ns2_vc_fsm: check NSVCI match the NSE ...................................................................... gprs_ns2_vc_fsm: check NSVCI match the NSE The NSVCI must match the PDUs. The only exception is a RESET with dialect ipaccess. However those will be handled later. Change-Id: I8518bdb03e9e33b04b77a2a346d04c5d29544a6c --- M src/gb/gprs_ns2_vc_fsm.c 1 file changed, 14 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/40/22340/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22340 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I8518bdb03e9e33b04b77a2a346d04c5d29544a6c Gerrit-Change-Number: 22340 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 18:06:14 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 20 Jan 2021 18:06:14 +0000 Subject: Change in libosmocore[master]: gprs_ns2: rework logging of Rx and Tx NS PDU In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22294 to look at the new patch set (#11). Change subject: gprs_ns2: rework logging of Rx and Tx NS PDU ...................................................................... gprs_ns2: rework logging of Rx and Tx NS PDU Unify log messages so all log messages look similiar. Log also Rx PDUs. Ensure dropped Tx packets (BLOCK/RESET on SNS) contain *Tx*. Change-Id: I34b8fde2955ecc010d1dcd9512e1bba9211e2c0d --- M src/gb/gprs_ns2.c M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_message.c M src/gb/gprs_ns2_vc_fsm.c 4 files changed, 26 insertions(+), 24 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/94/22294/11 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22294 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I34b8fde2955ecc010d1dcd9512e1bba9211e2c0d Gerrit-Change-Number: 22294 Gerrit-PatchSet: 11 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 18:06:17 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 20 Jan 2021 18:06:17 +0000 Subject: Change in libosmocore[master]: gprs_ns2: inform the NS user (BSSGP) about the MTU of a NSE References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22343 ) Change subject: gprs_ns2: inform the NS user (BSSGP) about the MTU of a NSE ...................................................................... gprs_ns2: inform the NS user (BSSGP) about the MTU of a NSE The BSSGP need to know the MTU of the BSSGP layer. The MTU can be 0 if the NSE doesn't contain any NSVC. Every status indication will contain the mtu value. The MTU in the status indication contain the maximum transfer unit of a BSSGP message. From NS side the maximum SDU. Change-Id: I5016b295db6185ec131d83089cf6c806e34ef1b6 --- M include/osmocom/gprs/gprs_ns2.h M src/gb/gprs_ns2.c M src/gb/gprs_ns2_fr.c M src/gb/gprs_ns2_frgre.c M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_udp.c 6 files changed, 65 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/43/22343/1 diff --git a/include/osmocom/gprs/gprs_ns2.h b/include/osmocom/gprs/gprs_ns2.h index 1b20298..cf2f86c 100644 --- a/include/osmocom/gprs/gprs_ns2.h +++ b/include/osmocom/gprs/gprs_ns2.h @@ -135,6 +135,8 @@ /* Only true on the first time it's available. * Allow the BSSGP layer to reset persistent NSE */ bool first; + /* MTU of a BSSGP PDU. It's the lowest MTU of all (alive & dead) NSVCs */ + int mtu; } status; } u; }; diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c index 0c1d564..87cb0ad 100644 --- a/src/gb/gprs_ns2.c +++ b/src/gb/gprs_ns2.c @@ -474,6 +474,7 @@ nsp.u.status.transfer = ns2_count_transfer_cap(nse, bvci); nsp.u.status.first = nse->first; nsp.u.status.persistent = nse->persistent; + nsp.u.status.mtu = nse->mtu - 4; /* 1b NS PDU type, 1b NS SDU control, 2b BVCI */ if (nsvc) nsp.u.status.nsvc = gprs_ns2_ll_str_buf(nsvc_str, sizeof(nsvc_str), nsvc); @@ -519,6 +520,7 @@ llist_add(&nsvc->list, &nse->nsvc); llist_add(&nsvc->blist, &bind->nsvc); + ns2_nse_update_mtu(nse); return nsvc; @@ -717,6 +719,7 @@ nse->nsei = nsei; nse->nsi = nsi; nse->first = true; + nse->mtu = 0; llist_add(&nse->list, &nsi->nse); INIT_LLIST_HEAD(&nse->nsvc); @@ -1316,6 +1319,26 @@ array[i] = bind; } +void ns2_nse_update_mtu(struct gprs_ns2_nse *nse) +{ + struct gprs_ns2_vc *nsvc; + int mtu = 0; + + if (llist_empty(&nse->nsvc)) { + nse->mtu = 0; + return; + } + + llist_for_each_entry(nsvc, &nse->nsvc, list) { + if (mtu == 0) + mtu = nsvc->bind->mtu; + else if (mtu > nsvc->bind->mtu) + mtu = nsvc->bind->mtu; + } + + nse->mtu = mtu; +} + /*! calculate the transfer capabilities for a nse * \param nse the nse to count the transfer capability * \param bvci a bvci - unused diff --git a/src/gb/gprs_ns2_fr.c b/src/gb/gprs_ns2_fr.c index 274ed96..00efd8a 100644 --- a/src/gb/gprs_ns2_fr.c +++ b/src/gb/gprs_ns2_fr.c @@ -592,6 +592,9 @@ bind->free_vc = free_vc; bind->dump_vty = dump_vty; bind->nsi = nsi; + /* 48.016 ? 6.1.4.2 default maximum information field size of 1600 octets + * FR has 2 byte header */ + bind->mtu = 1600 - 2; priv = bind->priv = talloc_zero(bind, struct priv_bind); if (!priv) { rc = -ENOSPC; diff --git a/src/gb/gprs_ns2_frgre.c b/src/gb/gprs_ns2_frgre.c index 2812e12..1529b48 100644 --- a/src/gb/gprs_ns2_frgre.c +++ b/src/gb/gprs_ns2_frgre.c @@ -568,6 +568,8 @@ bind->send_vc = frgre_vc_sendmsg; bind->free_vc = free_vc; bind->nsi = nsi; + /* TODO: update mtu similiar to UDP - GRE header */ + bind->mtu = 1500; priv = bind->priv = talloc_zero(bind, struct priv_bind); if (!priv) { diff --git a/src/gb/gprs_ns2_internal.h b/src/gb/gprs_ns2_internal.h index af8c5f0..42499db 100644 --- a/src/gb/gprs_ns2_internal.h +++ b/src/gb/gprs_ns2_internal.h @@ -167,6 +167,9 @@ /*! sum of all the signalling weight of _active_ NS-VCs */ uint32_t sum_sig_weight; + + /*! MTU of a NS PDU. This is the lowest MTU of all NSVCs */ + int mtu; }; /*! Structure representing a single NS-VC */ @@ -232,6 +235,9 @@ /*! transfer capability in mbit */ int transfer_capability; + /*! MTU of a NS PDU on this bind. */ + int mtu; + /*! which link-layer are we based on? */ enum gprs_ns2_ll ll; @@ -276,6 +282,7 @@ uint16_t bvci, enum gprs_ns2_affecting_cause cause); void ns2_nse_notify_alive(struct gprs_ns2_vc *nsvc, bool alive); +void ns2_nse_update_mtu(struct gprs_ns2_nse *nse); /* message */ int gprs_ns2_validate(struct gprs_ns2_vc *nsvc, diff --git a/src/gb/gprs_ns2_udp.c b/src/gb/gprs_ns2_udp.c index 8bfa184..c468015 100644 --- a/src/gb/gprs_ns2_udp.c +++ b/src/gb/gprs_ns2_udp.c @@ -111,6 +111,32 @@ } } +#define SIZE_IPV4_HEADER 20 +#define SIZE_IPV6_HEADER 23 +#define SIZE_UDP_HEADER 8 + +static void update_mtu(struct gprs_ns2_vc_bind *bind) { + struct priv_bind *priv; + /* TODO: replace 1500 (default ethernet mtu) with interface mtu */ + int mtu = 1500; + + OSMO_ASSERT(gprs_ns2_is_ip_bind(bind)); + + priv = bind->priv; + switch (priv->addr.u.sa.sa_family) { + case AF_INET: + mtu -= SIZE_IPV4_HEADER + SIZE_UDP_HEADER; + break; + case AF_INET6: + mtu -= SIZE_IPV6_HEADER + SIZE_UDP_HEADER; + break; + default: + break; + } + + bind->mtu = mtu; +} + /*! Find a NS-VC by its remote socket address. * \param[in] bind in which to search @@ -382,6 +408,8 @@ dscp, rc, errno); } + update_mtu(bind); + llist_add(&bind->list, &nsi->binding); if (result) *result = bind; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22343 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I5016b295db6185ec131d83089cf6c806e34ef1b6 Gerrit-Change-Number: 22343 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 18:09:30 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 20 Jan 2021 18:09:30 +0000 Subject: Change in libosmocore[master]: gprs_ns2: inform the NS user (BSSGP) about the MTU of a NSE In-Reply-To: References: Message-ID: Hello laforge, daniel, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22343 to look at the new patch set (#2). Change subject: gprs_ns2: inform the NS user (BSSGP) about the MTU of a NSE ...................................................................... gprs_ns2: inform the NS user (BSSGP) about the MTU of a NSE The BSSGP need to know the MTU of the BSSGP layer. The MTU can be 0 if the NSE doesn't contain any NSVC. Every status indication will contain the mtu value. The MTU in the status indication contain the maximum transfer unit of a BSSGP message. From NS side the maximum SDU. Related: OS#4889 Change-Id: I5016b295db6185ec131d83089cf6c806e34ef1b6 --- M include/osmocom/gprs/gprs_ns2.h M src/gb/gprs_ns2.c M src/gb/gprs_ns2_fr.c M src/gb/gprs_ns2_frgre.c M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_udp.c 6 files changed, 65 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/43/22343/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22343 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I5016b295db6185ec131d83089cf6c806e34ef1b6 Gerrit-Change-Number: 22343 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-CC: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 18:11:33 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 20 Jan 2021 18:11:33 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Introduce NS test cases In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22091 ) Change subject: Introduce NS test cases ...................................................................... Patch Set 9: This change is ready for review. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22091 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ic619a374b88879d3116f8f28afb14401c3e3192b Gerrit-Change-Number: 22091 Gerrit-PatchSet: 9 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 20 Jan 2021 18:11:33 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 19:24:43 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 20 Jan 2021 19:24:43 +0000 Subject: Change in pysim[master]: Readme.md: update debian deps, add python3-yaml In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/22342 ) Change subject: Readme.md: update debian deps, add python3-yaml ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/22342 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ic0d53ec3f312afee9d28f2f63d35e5c56dfd4686 Gerrit-Change-Number: 22342 Gerrit-PatchSet: 1 Gerrit-Owner: roh Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 20 Jan 2021 19:24:43 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 19:24:44 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 20 Jan 2021 19:24:44 +0000 Subject: Change in pysim[master]: Readme.md: update debian deps, add python3-yaml In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/22342 ) Change subject: Readme.md: update debian deps, add python3-yaml ...................................................................... Readme.md: update debian deps, add python3-yaml Change-Id: Ic0d53ec3f312afee9d28f2f63d35e5c56dfd4686 --- M README.md 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/README.md b/README.md index 105ca3f..3234665 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ Example for Debian: - apt-get install python3-pyscard python3-serial python3-pip + apt-get install python3-pyscard python3-serial python3-pip python3-yaml pip3 install pytlv -- To view, visit https://gerrit.osmocom.org/c/pysim/+/22342 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ic0d53ec3f312afee9d28f2f63d35e5c56dfd4686 Gerrit-Change-Number: 22342 Gerrit-PatchSet: 1 Gerrit-Owner: roh Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 19:25:09 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 20 Jan 2021 19:25:09 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vc_fsm: check NSEI match the NSE In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22325 ) Change subject: gprs_ns2_vc_fsm: check NSEI match the NSE ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22325 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic8fc49d850490feb0ff69171a6b0881ae8696c0b Gerrit-Change-Number: 22325 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 20 Jan 2021 19:25:09 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 19:25:33 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 20 Jan 2021 19:25:33 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vc_fsm: check NSVCI match the NSE In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22340 ) Change subject: gprs_ns2_vc_fsm: check NSVCI match the NSE ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22340 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I8518bdb03e9e33b04b77a2a346d04c5d29544a6c Gerrit-Change-Number: 22340 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Wed, 20 Jan 2021 19:25:33 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 19:25:44 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 20 Jan 2021 19:25:44 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vc_fsm: check NSEI match the NSE In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22325 ) Change subject: gprs_ns2_vc_fsm: check NSEI match the NSE ...................................................................... gprs_ns2_vc_fsm: check NSEI match the NSE The NSE must match the PDUs. The only exception is a RESET with dialect ipaccess. However those will be handled later. Change-Id: Ic8fc49d850490feb0ff69171a6b0881ae8696c0b --- M src/gb/gprs_ns2_vc_fsm.c 1 file changed, 14 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/gb/gprs_ns2_vc_fsm.c b/src/gb/gprs_ns2_vc_fsm.c index fc2a86a..3ec6909 100644 --- a/src/gb/gprs_ns2_vc_fsm.c +++ b/src/gb/gprs_ns2_vc_fsm.c @@ -750,6 +750,7 @@ struct osmo_fsm_inst *fi = nsvc->fi; int rc = 0; uint8_t cause; + uint16_t nsei; /* TODO: 7.2: on UNBLOCK/BLOCK: check if NS-VCI is correct, * if not answer STATUS with "NS-VC unknown" */ @@ -763,6 +764,19 @@ } } + if (TLVP_PRESENT(tp, NS_IE_NSEI)) { + nsei = tlvp_val16be(tp, NS_IE_NSEI); + if (nsei != nsvc->nse->nsei) { + /* 48.016 ? 7.3.1 send, RESET_ACK to wrong NSVCI + ignore */ + if (nsh->pdu_type == NS_PDUT_RESET) + ns2_tx_reset_ack(nsvc); + + LOGNSVC(nsvc, LOGL_ERROR, "Rx %s with wrong NSEI=%05u. Ignoring PDU.\n", + get_value_string(gprs_ns_pdu_strings, nsh->pdu_type), nsei); + goto out; + } + } + switch (nsh->pdu_type) { case NS_PDUT_RESET: osmo_fsm_inst_dispatch(fi, GPRS_NS2_EV_RX_RESET, tp); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22325 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic8fc49d850490feb0ff69171a6b0881ae8696c0b Gerrit-Change-Number: 22325 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 19:25:45 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 20 Jan 2021 19:25:45 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vc_fsm: check NSVCI match the NSE In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22340 ) Change subject: gprs_ns2_vc_fsm: check NSVCI match the NSE ...................................................................... gprs_ns2_vc_fsm: check NSVCI match the NSE The NSVCI must match the PDUs. The only exception is a RESET with dialect ipaccess. However those will be handled later. Change-Id: I8518bdb03e9e33b04b77a2a346d04c5d29544a6c --- M src/gb/gprs_ns2_vc_fsm.c 1 file changed, 14 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/gb/gprs_ns2_vc_fsm.c b/src/gb/gprs_ns2_vc_fsm.c index 3ec6909..d4f4320 100644 --- a/src/gb/gprs_ns2_vc_fsm.c +++ b/src/gb/gprs_ns2_vc_fsm.c @@ -750,11 +750,10 @@ struct osmo_fsm_inst *fi = nsvc->fi; int rc = 0; uint8_t cause; - uint16_t nsei; + uint16_t nsei, nsvci; /* TODO: 7.2: on UNBLOCK/BLOCK: check if NS-VCI is correct, * if not answer STATUS with "NS-VC unknown" */ - /* TODO: handle RESET with different VCI */ /* TODO: handle BLOCK/UNBLOCK/ALIVE with different VCI */ if (gprs_ns2_validate(nsvc, nsh->pdu_type, msg, tp, &cause)) { @@ -777,6 +776,19 @@ } } + if (nsvc->nsvci_is_valid && TLVP_PRESENT(tp, NS_IE_VCI)) { + nsvci = tlvp_val16be(tp, NS_IE_VCI); + if (nsvci != nsvc->nsvci) { + /* 48.016 ? 7.3.1 send RESET_ACK to wrong NSVCI + ignore */ + if (nsh->pdu_type == NS_PDUT_RESET) + ns2_tx_reset_ack(nsvc); + + LOGNSVC(nsvc, LOGL_ERROR, "Rx %s with wrong NSVCI=%05u. Ignoring PDU.\n", + get_value_string(gprs_ns_pdu_strings, nsh->pdu_type), nsvci); + goto out; + } + } + switch (nsh->pdu_type) { case NS_PDUT_RESET: osmo_fsm_inst_dispatch(fi, GPRS_NS2_EV_RX_RESET, tp); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22340 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I8518bdb03e9e33b04b77a2a346d04c5d29544a6c Gerrit-Change-Number: 22340 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 20:48:42 2021 From: gerrit-no-reply at lists.osmocom.org (keith) Date: Wed, 20 Jan 2021 20:48:42 +0000 Subject: Change in osmo-hlr[master]: Add vty command to show summary of all or filtered subscribers In-Reply-To: References: Message-ID: keith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-hlr/+/22311 ) Change subject: Add vty command to show summary of all or filtered subscribers ...................................................................... Patch Set 7: (6 comments) https://gerrit.osmocom.org/c/osmo-hlr/+/22311/7/src/db_hlr.c File src/db_hlr.c: https://gerrit.osmocom.org/c/osmo-hlr/+/22311/7/src/db_hlr.c at 633 PS7, Line 633: > it's now called get_cb? 'data' is missing. meh, sorry. forgot to update these.. https://gerrit.osmocom.org/c/osmo-hlr/+/22311/7/src/hlr_vty_subscr.c File src/hlr_vty_subscr.c: https://gerrit.osmocom.org/c/osmo-hlr/+/22311/7/src/hlr_vty_subscr.c at 232 PS7, Line 232: vty_out(vty, "----- ------------ ---------------- ---------------- -----"); : if (show_ls) : vty_out(vty, " ------------"); : vty_out_newline(vty); : vty_out(vty, "ID MSISDN IMSI IMEI NAM"); : if (show_ls) : vty_out(vty, " LAST SEEN"); : vty_out_newline(vty); > thisi s a repetition of the above. [?] Well, it is and it isn't... the first one has the text above the lines.. the footer is reversed. But far too much attention to visual detail maybe? I guess the function could accept a header/footer arg and reverse the output based on this.. https://gerrit.osmocom.org/c/osmo-hlr/+/22311/7/src/hlr_vty_subscr.c at 251 PS7, Line 251: SUBSCR_SHOW_HELP > you could add the SHOW_STR inside the definition of SUBSCR_SHOW_HELP, so you don't have to repeat it [?] Yeah, I think this can be optimised more, but I was not sure as it does get hard to read. https://gerrit.osmocom.org/c/osmo-hlr/+/22311/7/src/hlr_vty_subscr.c at 305 PS7, Line 305: SHOW_STR SUBSCRS_SHOW_HELP "Show summary of subscribers with filter\n" : "Filter by IMSI\n" "Filter by MSISDN\n" "String to match in msisdn or imsi\n") > it's odd that the command syntax is hidden in a #define whle the help strings are not. [?] My understanding of the existing logic (the code before I edited it) was that anything appearing more than once was #define'd and anything appearing ONLY ONCE was just strings in the DEFUN. It seemed to make sense as eliminates duplication. I tried to follow the same logic. https://gerrit.osmocom.org/c/osmo-hlr/+/22311/7/src/hlr_vty_subscr.c at 320 PS7, Line 320: > Somehow the number of help strings doesn't match the number of tokens. [?] Ah, I messed up somewhere.. Which part does not make sense? The way I wrote In/Active? https://gerrit.osmocom.org/c/osmo-hlr/+/22311/7/src/hlr_vty_subscr.c at 323 PS7, Line 323: last seen > if you do not expect other tokens after "last" (like "last created" or whatever), then please change [?] Yes. I guess it would be nice to get some feedback on anything people might like to see here, so it could be integrated in this patch set. -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/22311 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-Change-Id: I7f0573381a6d0d13841ac6d42d50f0e8389decf4 Gerrit-Change-Number: 22311 Gerrit-PatchSet: 7 Gerrit-Owner: keith Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-CC: laforge Gerrit-CC: neels Gerrit-Comment-Date: Wed, 20 Jan 2021 20:48:42 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: laforge Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 21:35:50 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 20 Jan 2021 21:35:50 +0000 Subject: Change in osmo-bts[master]: vty: fix error messages in lchan specific commands References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/22344 ) Change subject: vty: fix error messages in lchan specific commands ...................................................................... vty: fix error messages in lchan specific commands Change-Id: Ic0fba0605fc8a3ffa044f65fdad03b95e7cd8331 --- M src/common/vty.c 1 file changed, 3 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/44/22344/1 diff --git a/src/common/vty.c b/src/common/vty.c index 689ae58..a0ebfae 100644 --- a/src/common/vty.c +++ b/src/common/vty.c @@ -1965,7 +1965,7 @@ lchan = resolve_lchan(net, argv, 0); if (!lchan) { - vty_out(vty, "%% can't find BTS%s", VTY_NEWLINE); + vty_out(vty, "%% Could not resolve logical channel%s", VTY_NEWLINE); return CMD_WARNING; } if (!lchan->abis_ip.rtp_socket) { @@ -1996,7 +1996,7 @@ lchan = resolve_lchan(net, argv, 0); if (!lchan) { - vty_out(vty, "%% can't find BTS%s", VTY_NEWLINE); + vty_out(vty, "%% Could not resolve logical channel%s", VTY_NEWLINE); return CMD_WARNING; } lchan->loopback = 1; @@ -2014,7 +2014,7 @@ lchan = resolve_lchan(net, argv, 0); if (!lchan) { - vty_out(vty, "%% can't find BTS%s", VTY_NEWLINE); + vty_out(vty, "%% Could not resolve logical channel%s", VTY_NEWLINE); return CMD_WARNING; } lchan->loopback = 0; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22344 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic0fba0605fc8a3ffa044f65fdad03b95e7cd8331 Gerrit-Change-Number: 22344 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 21:35:51 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 20 Jan 2021 21:35:51 +0000 Subject: Change in osmo-bts[master]: vty: add macro for 'bts <0-0> trx <0-0> ts <0-7> lchan <0-1>' References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/22345 ) Change subject: vty: add macro for 'bts <0-0> trx <0-0> ts <0-7> lchan <0-1>' ...................................................................... vty: add macro for 'bts <0-0> trx <0-0> ts <0-7> lchan <0-1>' Change-Id: If8e1ee87366a0d301e21161f2d9ddde8383cb744 --- M src/common/vty.c 1 file changed, 5 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/45/22345/1 diff --git a/src/common/vty.c b/src/common/vty.c index a0ebfae..09c0a98 100644 --- a/src/common/vty.c +++ b/src/common/vty.c @@ -1792,6 +1792,8 @@ return &ts->lchan[lchan_nr]; } +#define BTS_T_T_L_CMD \ + "bts <0-0> trx <0-0> ts <0-7> lchan <0-1>" #define BTS_T_T_L_STR \ "BTS related commands\n" \ "BTS number\n" \ @@ -1955,7 +1957,7 @@ DEFUN(bts_t_t_l_jitter_buf, bts_t_t_l_jitter_buf_cmd, - "bts <0-0> trx <0-0> ts <0-7> lchan <0-1> rtp jitter-buffer <0-10000>", + BTS_T_T_L_CMD " rtp jitter-buffer <0-10000>", BTS_T_T_L_STR "RTP settings\n" "Jitter buffer\n" "Size of jitter buffer in (ms)\n") { @@ -1988,7 +1990,7 @@ DEFUN(bts_t_t_l_loopback, bts_t_t_l_loopback_cmd, - "bts <0-0> trx <0-0> ts <0-7> lchan <0-1> loopback", + BTS_T_T_L_CMD " loopback", BTS_T_T_L_STR "Set loopback\n") { struct gsm_network *net = gsmnet_from_vty(vty); @@ -2006,7 +2008,7 @@ DEFUN(no_bts_t_t_l_loopback, no_bts_t_t_l_loopback_cmd, - "no bts <0-0> trx <0-0> ts <0-7> lchan <0-1> loopback", + "no " BTS_T_T_L_CMD " loopback", NO_STR BTS_T_T_L_STR "Set loopback\n") { struct gsm_network *net = gsmnet_from_vty(vty); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22345 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: If8e1ee87366a0d301e21161f2d9ddde8383cb744 Gerrit-Change-Number: 22345 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 21:35:51 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 20 Jan 2021 21:35:51 +0000 Subject: Change in osmo-bts[master]: vty: extend trx / lchan number range in BTS_T_T_L_CMD References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/22346 ) Change subject: vty: extend trx / lchan number range in BTS_T_T_L_CMD ...................................................................... vty: extend trx / lchan number range in BTS_T_T_L_CMD Change-Id: I8d8a4c46909daa0f2682d9662db8dffb4fbd8422 --- M src/common/vty.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/46/22346/1 diff --git a/src/common/vty.c b/src/common/vty.c index 09c0a98..846ba4a 100644 --- a/src/common/vty.c +++ b/src/common/vty.c @@ -1793,7 +1793,7 @@ } #define BTS_T_T_L_CMD \ - "bts <0-0> trx <0-0> ts <0-7> lchan <0-1>" + "bts <0-0> trx <0-255> ts <0-7> lchan <0-7>" #define BTS_T_T_L_STR \ "BTS related commands\n" \ "BTS number\n" \ -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22346 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8d8a4c46909daa0f2682d9662db8dffb4fbd8422 Gerrit-Change-Number: 22346 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 21:35:51 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 20 Jan 2021 21:35:51 +0000 Subject: Change in osmo-bts[master]: vty: make commands related to the loopback mode hidden References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/22347 ) Change subject: vty: make commands related to the loopback mode hidden ...................................................................... vty: make commands related to the loopback mode hidden The loopback mode was added for testing, and may be dangerous if enabled in production. Let's make it appear only in hidden mode, and take this chance to indicate that it applies immediately. Change-Id: I3f68acd7f2b0231f78516f59fb5e8ef56fb69dbf --- M src/common/vty.c 1 file changed, 10 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/47/22347/1 diff --git a/src/common/vty.c b/src/common/vty.c index 846ba4a..fd8b3c8 100644 --- a/src/common/vty.c +++ b/src/common/vty.c @@ -1988,10 +1988,11 @@ return CMD_SUCCESS; } -DEFUN(bts_t_t_l_loopback, - bts_t_t_l_loopback_cmd, - BTS_T_T_L_CMD " loopback", - BTS_T_T_L_STR "Set loopback\n") +DEFUN_ATTR(bts_t_t_l_loopback, + bts_t_t_l_loopback_cmd, + BTS_T_T_L_CMD " loopback", + BTS_T_T_L_STR "Set loopback\n", + CMD_ATTR_HIDDEN | CMD_ATTR_IMMEDIATE) { struct gsm_network *net = gsmnet_from_vty(vty); struct gsm_lchan *lchan; @@ -2006,10 +2007,11 @@ return CMD_SUCCESS; } -DEFUN(no_bts_t_t_l_loopback, - no_bts_t_t_l_loopback_cmd, - "no " BTS_T_T_L_CMD " loopback", - NO_STR BTS_T_T_L_STR "Set loopback\n") +DEFUN_ATTR(no_bts_t_t_l_loopback, + no_bts_t_t_l_loopback_cmd, + "no " BTS_T_T_L_CMD " loopback", + NO_STR BTS_T_T_L_STR "Set loopback\n", + CMD_ATTR_HIDDEN | CMD_ATTR_IMMEDIATE) { struct gsm_network *net = gsmnet_from_vty(vty); struct gsm_lchan *lchan; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22347 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I3f68acd7f2b0231f78516f59fb5e8ef56fb69dbf Gerrit-Change-Number: 22347 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 21:35:52 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 20 Jan 2021 21:35:52 +0000 Subject: Change in osmo-bts[master]: vty: add expert commands for MS/BS power control References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/22348 ) Change subject: vty: add expert commands for MS/BS power control ...................................................................... vty: add expert commands for MS/BS power control These new commands are useful for debugging MS/BS power control loops, e.g. one can change power control mode, overwrite the current BS power reduction or MS power level at run-time. Change-Id: I1ebb033b02c2bc3b1fa7de874e0035a07297f266 Related: SYS#4918 --- M src/common/vty.c 1 file changed, 76 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/48/22348/1 diff --git a/src/common/vty.c b/src/common/vty.c index fd8b3c8..636f205 100644 --- a/src/common/vty.c +++ b/src/common/vty.c @@ -2026,6 +2026,80 @@ return CMD_SUCCESS; } +#define LCHAN_PWR_CTRL_CMD \ + BTS_T_T_L_CMD " (bs-power-ctrl|ms-power-ctrl)" +#define LCHAN_PWR_CTRL_STR \ + BTS_T_T_L_STR "BS power control\n" "MS power control\n" + +DEFUN_ATTR(bts_t_t_l_power_ctrl_mode, + bts_t_t_l_power_ctrl_mode_cmd, + LCHAN_PWR_CTRL_CMD " mode (static|dynamic)", + LCHAN_PWR_CTRL_STR "Change power control mode\n" + "Disable the power control loop\n" + "Enable the power control loop\n", + CMD_ATTR_HIDDEN | CMD_ATTR_IMMEDIATE) +{ + struct gsm_network *net = gsmnet_from_vty(vty); + const struct gsm_power_ctrl_params *params; + struct lchan_power_ctrl_state *state; + const char **args = argv + 4; + struct gsm_lchan *lchan; + + lchan = resolve_lchan(net, argv, 0); + if (!lchan) { + vty_out(vty, "%% Could not resolve logical channel%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (strcmp(args[0], "bs-power-ctrl") == 0) { + params = &lchan->bs_dpc_params; + state = &lchan->bs_power_ctrl; + } else { /* ms-power-ctrl */ + params = &lchan->ms_dpc_params; + state = &lchan->ms_power_ctrl; + } + + if (strcmp(args[1], "dynamic") == 0) + state->dpc_params = params; + else + state->dpc_params = NULL; + + return CMD_SUCCESS; +} + +DEFUN_ATTR(bts_t_t_l_power_ctrl_current_max, + bts_t_t_l_power_ctrl_current_max_cmd, + LCHAN_PWR_CTRL_CMD " value (current|max) <0-255>", + LCHAN_PWR_CTRL_STR "Change current power value\n" + "Current value (for both dynamic and static modes)\n" + "Maximum value (for dynamic mode only)\n" + "BS power reduction (in dB) or MS power level\n", + CMD_ATTR_HIDDEN | CMD_ATTR_IMMEDIATE) +{ + struct gsm_network *net = gsmnet_from_vty(vty); + struct lchan_power_ctrl_state *state; + const char **args = argv + 4; + struct gsm_lchan *lchan; + + lchan = resolve_lchan(net, argv, 0); + if (!lchan) { + vty_out(vty, "%% Could not resolve logical channel%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (strcmp(args[0], "bs-power-ctrl") == 0) + state = &lchan->bs_power_ctrl; + else /* ms-power-ctrl */ + state = &lchan->ms_power_ctrl; + + if (strcmp(args[1], "current") == 0) + state->current = atoi(args[2]); + else + state->max = atoi(args[2]); + + return CMD_SUCCESS; +} + DEFUN(logging_fltr_l1_sapi, logging_fltr_l1_sapi_cmd, "HIDDEN", "HIDDEN") { int sapi = get_string_value(l1sap_common_sapi_names, argv[0]); @@ -2155,6 +2229,8 @@ install_element(ENABLE_NODE, &bts_t_t_l_jitter_buf_cmd); install_element(ENABLE_NODE, &bts_t_t_l_loopback_cmd); install_element(ENABLE_NODE, &no_bts_t_t_l_loopback_cmd); + install_element(ENABLE_NODE, &bts_t_t_l_power_ctrl_mode_cmd); + install_element(ENABLE_NODE, &bts_t_t_l_power_ctrl_current_max_cmd); install_element(ENABLE_NODE, &test_send_failure_event_report_cmd); install_element(ENABLE_NODE, &radio_link_timeout_cmd); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22348 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I1ebb033b02c2bc3b1fa7de874e0035a07297f266 Gerrit-Change-Number: 22348 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 21:55:39 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 20 Jan 2021 21:55:39 +0000 Subject: Change in osmo-hlr[master]: Add vty command to show summary of all or filtered subscribers In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-hlr/+/22311 ) Change subject: Add vty command to show summary of all or filtered subscribers ...................................................................... Patch Set 7: (4 comments) https://gerrit.osmocom.org/c/osmo-hlr/+/22311/7/src/hlr_vty_subscr.c File src/hlr_vty_subscr.c: https://gerrit.osmocom.org/c/osmo-hlr/+/22311/7/src/hlr_vty_subscr.c at 232 PS7, Line 232: vty_out(vty, "----- ------------ ---------------- ---------------- -----"); : if (show_ls) : vty_out(vty, " ------------"); : vty_out_newline(vty); : vty_out(vty, "ID MSISDN IMSI IMEI NAM"); : if (show_ls) : vty_out(vty, " LAST SEEN"); : vty_out_newline(vty); > Well, it is and it isn't... the first one has the text above the lines.. the footer is reversed. [?] yes, please go for that function, if required with reversed lines. Or two separate functions that you call in different order. I just don't want to see those strings copy+pasted at two locations. https://gerrit.osmocom.org/c/osmo-hlr/+/22311/7/src/hlr_vty_subscr.c at 251 PS7, Line 251: SUBSCR_SHOW_HELP > Yeah, I think this can be optimised more, but I was not sure as it does get hard to read. works for me. https://gerrit.osmocom.org/c/osmo-hlr/+/22311/7/src/hlr_vty_subscr.c at 320 PS7, Line 320: > Ah, I messed up somewhere.. [?] This doesn't make sense: show -> SHOW_STR subscribers -> SUBSCR_SHOW_HELP cs -> Show summary of all Subscribers ps -> Show Subscribers with NAM CS In/active on -> Show Subscribers with NAM PS In/active\n" off -> no help even if you remove the "Show summary of all Subscribers" string (it is not "all", after all) then still you are missing the ON/OFF help. https://gerrit.osmocom.org/c/osmo-hlr/+/22311/7/src/hlr_vty_subscr.c at 323 PS7, Line 323: last seen > Yes. [?] I personally don't think there are other tokens after last and hence would like to see last-seen. -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/22311 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-Change-Id: I7f0573381a6d0d13841ac6d42d50f0e8389decf4 Gerrit-Change-Number: 22311 Gerrit-PatchSet: 7 Gerrit-Owner: keith Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-CC: laforge Gerrit-CC: neels Gerrit-Comment-Date: Wed, 20 Jan 2021 21:55:39 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: laforge Comment-In-Reply-To: keith Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 22:02:36 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 20 Jan 2021 22:02:36 +0000 Subject: Change in libosmocore[master]: gprs_ns2: inform the NS user (BSSGP) about the MTU of a NSE In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22343 ) Change subject: gprs_ns2: inform the NS user (BSSGP) about the MTU of a NSE ...................................................................... Patch Set 2: Code-Review-1 (3 comments) https://gerrit.osmocom.org/c/libosmocore/+/22343/2/src/gb/gprs_ns2_frgre.c File src/gb/gprs_ns2_frgre.c: https://gerrit.osmocom.org/c/libosmocore/+/22343/2/src/gb/gprs_ns2_frgre.c at 572 PS2, Line 572: 1500 I think this changes from current behavior. I think the old code would simply IP-fragment, which is actually intended in that situation. What matters here is not the MTU of the Ethernet device, but what kind of UDP packet payload size we can transmit. https://gerrit.osmocom.org/c/libosmocore/+/22343/2/src/gb/gprs_ns2_internal.h File src/gb/gprs_ns2_internal.h: https://gerrit.osmocom.org/c/libosmocore/+/22343/2/src/gb/gprs_ns2_internal.h at 240 PS2, Line 240: is there a reason to use a signed value? like negative having a special meaning? If yes, please docuemnt in comment, if not I'd suggest unsigned int. https://gerrit.osmocom.org/c/libosmocore/+/22343/2/src/gb/gprs_ns2_udp.c File src/gb/gprs_ns2_udp.c: https://gerrit.osmocom.org/c/libosmocore/+/22343/2/src/gb/gprs_ns2_udp.c at 121 PS2, Line 121: int also here I'm not sure if we really should worry about the MTU of the ethernet. In the end, we have potentially larger BSSGP frames and there is no way to influence the size of the upper layer frames. Think of a PDP context with MTU 1500 (or close to that), plus the LLC, SNDCP, BSSGP overhead -> boom. Yes, we may end up generating IP fragments. But then, the bandwidth of GPRS is ultra low, so what do we care about some more packets in the core network over wired interfaces that likely have more than a thousand time more bandwidth than our radio interface. If we enforce staying within the MTU of the ethernet device, we would start dropping packets with no way to inform this up the protocol stack so that the LLC/SNDCP XID exchange could negotiate smaller packet sizes. - i.e. we'd effectively break the network completely. I think the only situation wherer the MTU matters is in the case of FR, where we have a fixed, well-known MTU and no support from the transport (FR) to do segmentation / fragmentation by itself. Luckily it's 1600, and hence we do have some room for BSSGP/LLC/SNDCP overhead -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22343 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I5016b295db6185ec131d83089cf6c806e34ef1b6 Gerrit-Change-Number: 22343 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 20 Jan 2021 22:02:36 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 22:04:06 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 20 Jan 2021 22:04:06 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Introduce NS test cases In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22091 ) Change subject: Introduce NS test cases ...................................................................... Patch Set 9: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22091 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ic619a374b88879d3116f8f28afb14401c3e3192b Gerrit-Change-Number: 22091 Gerrit-PatchSet: 9 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 20 Jan 2021 22:04:06 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 22:04:23 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 20 Jan 2021 22:04:23 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Introduce NS test cases In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22091 ) Change subject: Introduce NS test cases ...................................................................... Patch Set 9: yay, more low-level tests! -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22091 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ic619a374b88879d3116f8f28afb14401c3e3192b Gerrit-Change-Number: 22091 Gerrit-PatchSet: 9 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 20 Jan 2021 22:04:23 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 22:04:50 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 20 Jan 2021 22:04:50 +0000 Subject: Change in osmo-bts[master]: power_control: print current RxLev and lower/upper thresholds In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/22117 ) Change subject: power_control: print current RxLev and lower/upper thresholds ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22117 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I5f8c987054b2b01acdb9f525d06ca15bbc577070 Gerrit-Change-Number: 22117 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 20 Jan 2021 22:04:50 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 22:04:55 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 20 Jan 2021 22:04:55 +0000 Subject: Change in osmo-bts[master]: power_control: print current RxLev and lower/upper thresholds In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/22117 ) Change subject: power_control: print current RxLev and lower/upper thresholds ...................................................................... power_control: print current RxLev and lower/upper thresholds This makes the logging messages easier to read and understand. Change-Id: I5f8c987054b2b01acdb9f525d06ca15bbc577070 Related: SYS#4918 --- M src/common/power_control.c M tests/power/bs_power_loop_test.err 2 files changed, 65 insertions(+), 60 deletions(-) Approvals: laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/common/power_control.c b/src/common/power_control.c index 6620add..97baeb7 100644 --- a/src/common/power_control.c +++ b/src/common/power_control.c @@ -316,19 +316,24 @@ if (new < 0) new = 0; - /* FIXME: this is only needed for logging, print thresholds instead */ - int target_dbm = rxlev2dbm(CALC_TARGET(params->rxlev_meas)); - if (state->current != new) { LOGPLCHAN(lchan, DLOOP, LOGL_INFO, "Changing Downlink attenuation: " - "%u -> %u dB (maximum %u dB, target %d dBm, delta %d dB)\n", - state->current, new, state->max, target_dbm, delta); + "%u -> %u dB (maximum %u dB, delta %d dB, " + "RxLev current %u (%d dBm), thresholds %u .. %u)\n", + state->current, new, state->max, + delta, rxlev, rxlev2dbm(rxlev), + params->rxlev_meas.lower_thresh, + params->rxlev_meas.upper_thresh); state->current = new; return 1; } else { LOGPLCHAN(lchan, DLOOP, LOGL_INFO, "Keeping Downlink attenuation " - "at %u dB (maximum %u dB, target %d dBm, delta %d dB)\n", - state->current, state->max, target_dbm, delta); + "at %u dB (maximum %u dB, delta %d dB, " + "RxLev current %u (%d dBm), thresholds %u .. %u)\n", + state->current, state->max, + delta, rxlev, rxlev2dbm(rxlev), + params->rxlev_meas.lower_thresh, + params->rxlev_meas.upper_thresh); return 0; } } diff --git a/tests/power/bs_power_loop_test.err b/tests/power/bs_power_loop_test.err index e7ba310..db02199 100644 --- a/tests/power/bs_power_loop_test.err +++ b/tests/power/bs_power_loop_test.err @@ -1,69 +1,69 @@ (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, target -80 dBm, delta 0 dB) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, target -80 dBm, delta 0 dB) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, target -80 dBm, delta 0 dB) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, target -80 dBm, delta 0 dB) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 0 -> 2 dB (maximum 20 dB, target -80 dBm, delta -2 dB) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 0 -> 2 dB (maximum 20 dB, delta -2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 2 -> 4 dB (maximum 20 dB, target -80 dBm, delta -2 dB) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 2 -> 4 dB (maximum 20 dB, delta -2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 4 -> 6 dB (maximum 20 dB, target -80 dBm, delta -2 dB) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 4 -> 6 dB (maximum 20 dB, delta -2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 6 -> 8 dB (maximum 20 dB, target -80 dBm, delta -2 dB) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 6 -> 8 dB (maximum 20 dB, delta -2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 8 -> 10 dB (maximum 20 dB, target -80 dBm, delta -2 dB) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 8 -> 10 dB (maximum 20 dB, delta -2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 10 -> 12 dB (maximum 20 dB, target -80 dBm, delta -2 dB) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 10 -> 12 dB (maximum 20 dB, delta -2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 12 -> 14 dB (maximum 20 dB, target -80 dBm, delta -2 dB) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 12 -> 14 dB (maximum 20 dB, delta -2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 14 -> 16 dB (maximum 20 dB, target -80 dBm, delta -2 dB) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 14 -> 16 dB (maximum 20 dB, delta -2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 16 -> 18 dB (maximum 20 dB, target -80 dBm, delta -2 dB) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 16 -> 18 dB (maximum 20 dB, delta -2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 18 -> 20 dB (maximum 20 dB, target -80 dBm, delta -2 dB) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 18 -> 20 dB (maximum 20 dB, delta -2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 20 dB (maximum 20 dB, target -80 dBm, delta -2 dB) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 20 dB (maximum 20 dB, delta -2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 20 dB (maximum 20 dB, target -80 dBm, delta -2 dB) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 20 dB (maximum 20 dB, delta -2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 20 -> 16 dB (maximum 20 dB, target -80 dBm, delta 4 dB) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 20 -> 16 dB (maximum 20 dB, delta 4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 16 -> 12 dB (maximum 20 dB, target -80 dBm, delta 4 dB) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 16 -> 12 dB (maximum 20 dB, delta 4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 12 -> 8 dB (maximum 20 dB, target -80 dBm, delta 4 dB) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 12 -> 8 dB (maximum 20 dB, delta 4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 8 -> 4 dB (maximum 20 dB, target -80 dBm, delta 4 dB) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 8 -> 4 dB (maximum 20 dB, delta 4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 4 -> 0 dB (maximum 20 dB, target -80 dBm, delta 4 dB) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 4 -> 0 dB (maximum 20 dB, delta 4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, target -80 dBm, delta 4 dB) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, delta 4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, target -80 dBm, delta 4 dB) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, delta 4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, target -80 dBm, delta 0 dB) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, target -80 dBm, delta 0 dB) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(00), RXQUAL-FULL(7), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is enabled => using SUB -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, target -80 dBm, delta 0 dB) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(3), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is enabled => using SUB -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, target -80 dBm, delta 0 dB) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(63), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is enabled => using SUB -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, target -80 dBm, delta 0 dB) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, target -80 dBm, delta 0 dB) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, target -80 dBm, delta 0 dB) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(1), RXLEV-SUB(30), RXQUAL-SUB(1), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, target -80 dBm, delta 0 dB) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(2), RXLEV-SUB(30), RXQUAL-SUB(2), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, target -80 dBm, delta 0 dB) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(3), RXLEV-SUB(30), RXQUAL-SUB(3), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, target -80 dBm, delta 0 dB) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(4), RXLEV-SUB(30), RXQUAL-SUB(4), DTx is disabled => using FULL (bts=0,trx=0,ts=0,ss=0) Reducing Downlink attenuation: 16 -> 12 dB due to RxQual 4 worse than L_RXQUAL_XX_P 3 (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(34), RXQUAL-FULL(5), RXLEV-SUB(34), RXQUAL-SUB(5), DTx is disabled => using FULL @@ -74,46 +74,46 @@ (bts=0,trx=0,ts=0,ss=0) Reducing Downlink attenuation: 4 -> 0 dB due to RxQual 7 worse than L_RXQUAL_XX_P 3 (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(46), RXQUAL-FULL(7), RXLEV-SUB(46), RXQUAL-SUB(7), DTx is disabled => using FULL (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(46), RXQUAL-FULL(0), RXLEV-SUB(46), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 0 -> 2 dB (maximum 20 dB, target -80 dBm, delta -2 dB) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 0 -> 2 dB (maximum 20 dB, delta -2 dB, RxLev current 46 (-64 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(44), RXQUAL-FULL(0), RXLEV-SUB(44), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 2 -> 4 dB (maximum 20 dB, target -80 dBm, delta -2 dB) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 2 -> 4 dB (maximum 20 dB, delta -2 dB, RxLev current 44 (-66 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(42), RXQUAL-FULL(0), RXLEV-SUB(42), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 4 -> 6 dB (maximum 20 dB, target -80 dBm, delta -2 dB) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 4 -> 6 dB (maximum 20 dB, delta -2 dB, RxLev current 42 (-68 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(7), RXLEV-SUB(30), RXQUAL-SUB(7), DTx is disabled => using FULL (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(7), RXLEV-SUB(30), RXQUAL-SUB(7), DTx is disabled => using FULL (bts=0,trx=0,ts=0,ss=0) The measurement results are not valid (bts=0,trx=0,ts=0,ss=0) The measurement results are not valid (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, target -80 dBm, delta 0 dB) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, target -80 dBm, delta 0 dB) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, target -80 dBm, delta 0 dB) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(31), RXQUAL-FULL(0), RXLEV-SUB(31), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 12 -> 13 dB (maximum 16 dB, target -80 dBm, delta -1 dB) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 12 -> 13 dB (maximum 16 dB, delta -1 dB, RxLev current 31 (-79 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(28), RXQUAL-FULL(0), RXLEV-SUB(28), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 13 -> 11 dB (maximum 16 dB, target -80 dBm, delta 2 dB) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 13 -> 11 dB (maximum 16 dB, delta 2 dB, RxLev current 28 (-82 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(33), RXQUAL-FULL(0), RXLEV-SUB(33), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 11 -> 13 dB (maximum 16 dB, target -80 dBm, delta -2 dB) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 11 -> 13 dB (maximum 16 dB, delta -2 dB, RxLev current 33 (-77 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(28), RXQUAL-FULL(0), RXLEV-SUB(28), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 13 -> 11 dB (maximum 16 dB, target -80 dBm, delta 2 dB) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 13 -> 11 dB (maximum 16 dB, delta 2 dB, RxLev current 28 (-82 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(31), RXQUAL-FULL(0), RXLEV-SUB(31), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 11 dB (maximum 16 dB, target -80 dBm, delta 0 dB) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 11 dB (maximum 16 dB, delta 0 dB, RxLev current 31 (-79 dBm), thresholds 27 .. 33) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(28), RXQUAL-FULL(0), RXLEV-SUB(28), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 11 dB (maximum 16 dB, target -80 dBm, delta 0 dB) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 11 dB (maximum 16 dB, delta 0 dB, RxLev current 28 (-82 dBm), thresholds 27 .. 33) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(33), RXQUAL-FULL(0), RXLEV-SUB(33), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 11 dB (maximum 16 dB, target -80 dBm, delta 0 dB) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 11 dB (maximum 16 dB, delta 0 dB, RxLev current 33 (-77 dBm), thresholds 27 .. 33) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(28), RXQUAL-FULL(0), RXLEV-SUB(28), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 11 dB (maximum 16 dB, target -80 dBm, delta 0 dB) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 11 dB (maximum 16 dB, delta 0 dB, RxLev current 28 (-82 dBm), thresholds 27 .. 33) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 30 dB, target -80 dBm, delta 0 dB) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 30 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 30 dB, target -80 dBm, delta 0 dB) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 30 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(26), RXQUAL-FULL(0), RXLEV-SUB(26), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 16 -> 14 dB (maximum 30 dB, target -80 dBm, delta 2 dB) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 16 -> 14 dB (maximum 30 dB, delta 2 dB, RxLev current 26 (-84 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(26), RXQUAL-FULL(0), RXLEV-SUB(26), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 14 -> 11 dB (maximum 30 dB, target -80 dBm, delta 3 dB) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 14 -> 11 dB (maximum 30 dB, delta 3 dB, RxLev current 26 (-84 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(35), RXQUAL-FULL(0), RXLEV-SUB(35), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 11 -> 12 dB (maximum 30 dB, target -80 dBm, delta -1 dB) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 11 -> 12 dB (maximum 30 dB, delta -1 dB, RxLev current 35 (-75 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(35), RXQUAL-FULL(0), RXLEV-SUB(35), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 12 -> 14 dB (maximum 30 dB, target -80 dBm, delta -2 dB) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 12 -> 14 dB (maximum 30 dB, delta -2 dB, RxLev current 35 (-75 dBm), thresholds 30 .. 30) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22117 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I5f8c987054b2b01acdb9f525d06ca15bbc577070 Gerrit-Change-Number: 22117 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 22:04:56 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 20 Jan 2021 22:04:56 +0000 Subject: Change in osmo-bts[master]: power_control: fix: properly print 'delta' applied to attenuation In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/22118 ) Change subject: power_control: fix: properly print 'delta' applied to attenuation ...................................................................... power_control: fix: properly print 'delta' applied to attenuation Change-Id: I178df05c1a4cb982279b21d07bd69f75b44928da Related: SYS#4918 --- M src/common/power_control.c M tests/power/bs_power_loop_test.err 2 files changed, 32 insertions(+), 32 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/common/power_control.c b/src/common/power_control.c index 97baeb7..2948861 100644 --- a/src/common/power_control.c +++ b/src/common/power_control.c @@ -321,7 +321,7 @@ "%u -> %u dB (maximum %u dB, delta %d dB, " "RxLev current %u (%d dBm), thresholds %u .. %u)\n", state->current, new, state->max, - delta, rxlev, rxlev2dbm(rxlev), + -delta, rxlev, rxlev2dbm(rxlev), params->rxlev_meas.lower_thresh, params->rxlev_meas.upper_thresh); state->current = new; @@ -331,7 +331,7 @@ "at %u dB (maximum %u dB, delta %d dB, " "RxLev current %u (%d dBm), thresholds %u .. %u)\n", state->current, state->max, - delta, rxlev, rxlev2dbm(rxlev), + -delta, rxlev, rxlev2dbm(rxlev), params->rxlev_meas.lower_thresh, params->rxlev_meas.upper_thresh); return 0; diff --git a/tests/power/bs_power_loop_test.err b/tests/power/bs_power_loop_test.err index db02199..2b1e0a9 100644 --- a/tests/power/bs_power_loop_test.err +++ b/tests/power/bs_power_loop_test.err @@ -7,43 +7,43 @@ (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL (bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 0 -> 2 dB (maximum 20 dB, delta -2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 0 -> 2 dB (maximum 20 dB, delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 2 -> 4 dB (maximum 20 dB, delta -2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 2 -> 4 dB (maximum 20 dB, delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 4 -> 6 dB (maximum 20 dB, delta -2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 4 -> 6 dB (maximum 20 dB, delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 6 -> 8 dB (maximum 20 dB, delta -2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 6 -> 8 dB (maximum 20 dB, delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 8 -> 10 dB (maximum 20 dB, delta -2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 8 -> 10 dB (maximum 20 dB, delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 10 -> 12 dB (maximum 20 dB, delta -2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 10 -> 12 dB (maximum 20 dB, delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 12 -> 14 dB (maximum 20 dB, delta -2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 12 -> 14 dB (maximum 20 dB, delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 14 -> 16 dB (maximum 20 dB, delta -2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 14 -> 16 dB (maximum 20 dB, delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 16 -> 18 dB (maximum 20 dB, delta -2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 16 -> 18 dB (maximum 20 dB, delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 18 -> 20 dB (maximum 20 dB, delta -2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 18 -> 20 dB (maximum 20 dB, delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 20 dB (maximum 20 dB, delta -2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 20 dB (maximum 20 dB, delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 20 dB (maximum 20 dB, delta -2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 20 dB (maximum 20 dB, delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 20 -> 16 dB (maximum 20 dB, delta 4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 20 -> 16 dB (maximum 20 dB, delta -4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 16 -> 12 dB (maximum 20 dB, delta 4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 16 -> 12 dB (maximum 20 dB, delta -4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 12 -> 8 dB (maximum 20 dB, delta 4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 12 -> 8 dB (maximum 20 dB, delta -4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 8 -> 4 dB (maximum 20 dB, delta 4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 8 -> 4 dB (maximum 20 dB, delta -4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 4 -> 0 dB (maximum 20 dB, delta 4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 4 -> 0 dB (maximum 20 dB, delta -4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, delta 4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, delta -4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, delta 4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, delta -4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL (bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL @@ -74,11 +74,11 @@ (bts=0,trx=0,ts=0,ss=0) Reducing Downlink attenuation: 4 -> 0 dB due to RxQual 7 worse than L_RXQUAL_XX_P 3 (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(46), RXQUAL-FULL(7), RXLEV-SUB(46), RXQUAL-SUB(7), DTx is disabled => using FULL (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(46), RXQUAL-FULL(0), RXLEV-SUB(46), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 0 -> 2 dB (maximum 20 dB, delta -2 dB, RxLev current 46 (-64 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 0 -> 2 dB (maximum 20 dB, delta 2 dB, RxLev current 46 (-64 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(44), RXQUAL-FULL(0), RXLEV-SUB(44), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 2 -> 4 dB (maximum 20 dB, delta -2 dB, RxLev current 44 (-66 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 2 -> 4 dB (maximum 20 dB, delta 2 dB, RxLev current 44 (-66 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(42), RXQUAL-FULL(0), RXLEV-SUB(42), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 4 -> 6 dB (maximum 20 dB, delta -2 dB, RxLev current 42 (-68 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 4 -> 6 dB (maximum 20 dB, delta 2 dB, RxLev current 42 (-68 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(7), RXLEV-SUB(30), RXQUAL-SUB(7), DTx is disabled => using FULL (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(7), RXLEV-SUB(30), RXQUAL-SUB(7), DTx is disabled => using FULL (bts=0,trx=0,ts=0,ss=0) The measurement results are not valid @@ -90,13 +90,13 @@ (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL (bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(31), RXQUAL-FULL(0), RXLEV-SUB(31), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 12 -> 13 dB (maximum 16 dB, delta -1 dB, RxLev current 31 (-79 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 12 -> 13 dB (maximum 16 dB, delta 1 dB, RxLev current 31 (-79 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(28), RXQUAL-FULL(0), RXLEV-SUB(28), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 13 -> 11 dB (maximum 16 dB, delta 2 dB, RxLev current 28 (-82 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 13 -> 11 dB (maximum 16 dB, delta -2 dB, RxLev current 28 (-82 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(33), RXQUAL-FULL(0), RXLEV-SUB(33), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 11 -> 13 dB (maximum 16 dB, delta -2 dB, RxLev current 33 (-77 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 11 -> 13 dB (maximum 16 dB, delta 2 dB, RxLev current 33 (-77 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(28), RXQUAL-FULL(0), RXLEV-SUB(28), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 13 -> 11 dB (maximum 16 dB, delta 2 dB, RxLev current 28 (-82 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 13 -> 11 dB (maximum 16 dB, delta -2 dB, RxLev current 28 (-82 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(31), RXQUAL-FULL(0), RXLEV-SUB(31), RXQUAL-SUB(0), DTx is disabled => using FULL (bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 11 dB (maximum 16 dB, delta 0 dB, RxLev current 31 (-79 dBm), thresholds 27 .. 33) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(28), RXQUAL-FULL(0), RXLEV-SUB(28), RXQUAL-SUB(0), DTx is disabled => using FULL @@ -110,10 +110,10 @@ (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL (bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 30 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(26), RXQUAL-FULL(0), RXLEV-SUB(26), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 16 -> 14 dB (maximum 30 dB, delta 2 dB, RxLev current 26 (-84 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 16 -> 14 dB (maximum 30 dB, delta -2 dB, RxLev current 26 (-84 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(26), RXQUAL-FULL(0), RXLEV-SUB(26), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 14 -> 11 dB (maximum 30 dB, delta 3 dB, RxLev current 26 (-84 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 14 -> 11 dB (maximum 30 dB, delta -3 dB, RxLev current 26 (-84 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(35), RXQUAL-FULL(0), RXLEV-SUB(35), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 11 -> 12 dB (maximum 30 dB, delta -1 dB, RxLev current 35 (-75 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 11 -> 12 dB (maximum 30 dB, delta 1 dB, RxLev current 35 (-75 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(35), RXQUAL-FULL(0), RXLEV-SUB(35), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 12 -> 14 dB (maximum 30 dB, delta -2 dB, RxLev current 35 (-75 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 12 -> 14 dB (maximum 30 dB, delta 2 dB, RxLev current 35 (-75 dBm), thresholds 30 .. 30) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22118 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I178df05c1a4cb982279b21d07bd69f75b44928da Gerrit-Change-Number: 22118 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 22:05:29 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 20 Jan 2021 22:05:29 +0000 Subject: Change in osmo-bts[master]: vty: fix error messages in lchan specific commands In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/22344 ) Change subject: vty: fix error messages in lchan specific commands ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22344 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic0fba0605fc8a3ffa044f65fdad03b95e7cd8331 Gerrit-Change-Number: 22344 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 20 Jan 2021 22:05:29 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 22:05:43 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 20 Jan 2021 22:05:43 +0000 Subject: Change in osmo-bts[master]: vty: add macro for 'bts <0-0> trx <0-0> ts <0-7> lchan <0-1>' In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/22345 ) Change subject: vty: add macro for 'bts <0-0> trx <0-0> ts <0-7> lchan <0-1>' ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22345 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: If8e1ee87366a0d301e21161f2d9ddde8383cb744 Gerrit-Change-Number: 22345 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 20 Jan 2021 22:05:43 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 22:06:03 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 20 Jan 2021 22:06:03 +0000 Subject: Change in osmo-bts[master]: vty: extend trx / lchan number range in BTS_T_T_L_CMD In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/22346 ) Change subject: vty: extend trx / lchan number range in BTS_T_T_L_CMD ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22346 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8d8a4c46909daa0f2682d9662db8dffb4fbd8422 Gerrit-Change-Number: 22346 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 20 Jan 2021 22:06:03 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 22:06:08 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 20 Jan 2021 22:06:08 +0000 Subject: Change in osmo-bts[master]: vty: fix error messages in lchan specific commands In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/22344 ) Change subject: vty: fix error messages in lchan specific commands ...................................................................... vty: fix error messages in lchan specific commands Change-Id: Ic0fba0605fc8a3ffa044f65fdad03b95e7cd8331 --- M src/common/vty.c 1 file changed, 3 insertions(+), 3 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/common/vty.c b/src/common/vty.c index 689ae58..a0ebfae 100644 --- a/src/common/vty.c +++ b/src/common/vty.c @@ -1965,7 +1965,7 @@ lchan = resolve_lchan(net, argv, 0); if (!lchan) { - vty_out(vty, "%% can't find BTS%s", VTY_NEWLINE); + vty_out(vty, "%% Could not resolve logical channel%s", VTY_NEWLINE); return CMD_WARNING; } if (!lchan->abis_ip.rtp_socket) { @@ -1996,7 +1996,7 @@ lchan = resolve_lchan(net, argv, 0); if (!lchan) { - vty_out(vty, "%% can't find BTS%s", VTY_NEWLINE); + vty_out(vty, "%% Could not resolve logical channel%s", VTY_NEWLINE); return CMD_WARNING; } lchan->loopback = 1; @@ -2014,7 +2014,7 @@ lchan = resolve_lchan(net, argv, 0); if (!lchan) { - vty_out(vty, "%% can't find BTS%s", VTY_NEWLINE); + vty_out(vty, "%% Could not resolve logical channel%s", VTY_NEWLINE); return CMD_WARNING; } lchan->loopback = 0; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22344 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic0fba0605fc8a3ffa044f65fdad03b95e7cd8331 Gerrit-Change-Number: 22344 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 22:06:09 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 20 Jan 2021 22:06:09 +0000 Subject: Change in osmo-bts[master]: vty: add macro for 'bts <0-0> trx <0-0> ts <0-7> lchan <0-1>' In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/22345 ) Change subject: vty: add macro for 'bts <0-0> trx <0-0> ts <0-7> lchan <0-1>' ...................................................................... vty: add macro for 'bts <0-0> trx <0-0> ts <0-7> lchan <0-1>' Change-Id: If8e1ee87366a0d301e21161f2d9ddde8383cb744 --- M src/common/vty.c 1 file changed, 5 insertions(+), 3 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/common/vty.c b/src/common/vty.c index a0ebfae..09c0a98 100644 --- a/src/common/vty.c +++ b/src/common/vty.c @@ -1792,6 +1792,8 @@ return &ts->lchan[lchan_nr]; } +#define BTS_T_T_L_CMD \ + "bts <0-0> trx <0-0> ts <0-7> lchan <0-1>" #define BTS_T_T_L_STR \ "BTS related commands\n" \ "BTS number\n" \ @@ -1955,7 +1957,7 @@ DEFUN(bts_t_t_l_jitter_buf, bts_t_t_l_jitter_buf_cmd, - "bts <0-0> trx <0-0> ts <0-7> lchan <0-1> rtp jitter-buffer <0-10000>", + BTS_T_T_L_CMD " rtp jitter-buffer <0-10000>", BTS_T_T_L_STR "RTP settings\n" "Jitter buffer\n" "Size of jitter buffer in (ms)\n") { @@ -1988,7 +1990,7 @@ DEFUN(bts_t_t_l_loopback, bts_t_t_l_loopback_cmd, - "bts <0-0> trx <0-0> ts <0-7> lchan <0-1> loopback", + BTS_T_T_L_CMD " loopback", BTS_T_T_L_STR "Set loopback\n") { struct gsm_network *net = gsmnet_from_vty(vty); @@ -2006,7 +2008,7 @@ DEFUN(no_bts_t_t_l_loopback, no_bts_t_t_l_loopback_cmd, - "no bts <0-0> trx <0-0> ts <0-7> lchan <0-1> loopback", + "no " BTS_T_T_L_CMD " loopback", NO_STR BTS_T_T_L_STR "Set loopback\n") { struct gsm_network *net = gsmnet_from_vty(vty); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22345 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: If8e1ee87366a0d301e21161f2d9ddde8383cb744 Gerrit-Change-Number: 22345 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 22:06:10 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 20 Jan 2021 22:06:10 +0000 Subject: Change in osmo-bts[master]: vty: extend trx / lchan number range in BTS_T_T_L_CMD In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/22346 ) Change subject: vty: extend trx / lchan number range in BTS_T_T_L_CMD ...................................................................... vty: extend trx / lchan number range in BTS_T_T_L_CMD Change-Id: I8d8a4c46909daa0f2682d9662db8dffb4fbd8422 --- M src/common/vty.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/common/vty.c b/src/common/vty.c index 09c0a98..846ba4a 100644 --- a/src/common/vty.c +++ b/src/common/vty.c @@ -1793,7 +1793,7 @@ } #define BTS_T_T_L_CMD \ - "bts <0-0> trx <0-0> ts <0-7> lchan <0-1>" + "bts <0-0> trx <0-255> ts <0-7> lchan <0-7>" #define BTS_T_T_L_STR \ "BTS related commands\n" \ "BTS number\n" \ -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22346 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8d8a4c46909daa0f2682d9662db8dffb4fbd8422 Gerrit-Change-Number: 22346 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 22:07:03 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 20 Jan 2021 22:07:03 +0000 Subject: Change in osmo-bts[master]: vty: make commands related to the loopback mode hidden In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/22347 ) Change subject: vty: make commands related to the loopback mode hidden ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/22347/1/src/common/vty.c File src/common/vty.c: https://gerrit.osmocom.org/c/osmo-bts/+/22347/1/src/common/vty.c at 2014 PS1, Line 2014: CMD_ATTR_IMMEDIATE I think the IMMEDIATE is bogus, as this is not a configuration command. Anything that's outside of CONFIG_NODE by definition is always immediate, right? -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22347 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I3f68acd7f2b0231f78516f59fb5e8ef56fb69dbf Gerrit-Change-Number: 22347 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-Comment-Date: Wed, 20 Jan 2021 22:07:03 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 22:07:32 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 20 Jan 2021 22:07:32 +0000 Subject: Change in osmo-bts[master]: vty: add expert commands for MS/BS power control In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/22348 ) Change subject: vty: add expert commands for MS/BS power control ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22348 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I1ebb033b02c2bc3b1fa7de874e0035a07297f266 Gerrit-Change-Number: 22348 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: laforge Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Wed, 20 Jan 2021 22:07:32 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 22:45:09 2021 From: gerrit-no-reply at lists.osmocom.org (keith) Date: Wed, 20 Jan 2021 22:45:09 +0000 Subject: Change in osmo-hlr[master]: Add vty command to show summary of all or filtered subscribers In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-hlr/+/22311 to look at the new patch set (#8). Change subject: Add vty command to show summary of all or filtered subscribers ...................................................................... Add vty command to show summary of all or filtered subscribers Adds the following commands: show subscribers all - Display summary of all entries in HLR show subscribers (imsi|msisdn|cs|ps) ... As above but filter on search field/string show subscribers last seen - Display only subscribers with data in Last LU update field, and sorts by Last LU. Change-Id: I7f0573381a6d0d13841ac6d42d50f0e8389decf4 --- M include/osmocom/hlr/db.h M src/db.c M src/db_hlr.c M src/hlr_vty_subscr.c M tests/test_nodes.vty 5 files changed, 230 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-hlr refs/changes/11/22311/8 -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/22311 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-Change-Id: I7f0573381a6d0d13841ac6d42d50f0e8389decf4 Gerrit-Change-Number: 22311 Gerrit-PatchSet: 8 Gerrit-Owner: keith Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-CC: laforge Gerrit-CC: neels Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 22:45:47 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 20 Jan 2021 22:45:47 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vc_fsm: fix nullpointer dereference when sending uintdata References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22349 ) Change subject: gprs_ns2_vc_fsm: fix nullpointer dereference when sending uintdata ...................................................................... gprs_ns2_vc_fsm: fix nullpointer dereference when sending uintdata the function gprs_ns2_vc_rx() is called from gprs_ns2.c with tp=NULL. This leads into a null pointer dereference because gprs_ns2_vc_rx() is accessing tp several times. tp is also handed up into the FSM, with the exception of unitdata. Apparently for unitdata tp does not exist, so we can move up the part where unitdata is handed up into the FSM and after that we can check if tp is NULL to make sure the code which is accessing it is not executed. Change-Id: I7d7c95604ba4af4ed4b6019f1d432970225f8d7a --- M src/gb/gprs_ns2_vc_fsm.c 1 file changed, 12 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/49/22349/1 diff --git a/src/gb/gprs_ns2_vc_fsm.c b/src/gb/gprs_ns2_vc_fsm.c index d4f4320..7ea7192 100644 --- a/src/gb/gprs_ns2_vc_fsm.c +++ b/src/gb/gprs_ns2_vc_fsm.c @@ -756,6 +756,18 @@ * if not answer STATUS with "NS-VC unknown" */ /* TODO: handle BLOCK/UNBLOCK/ALIVE with different VCI */ + if (nsh->pdu_type == NS_PDUT_UNITDATA) { + /* UNITDATA have to free msg because it might send the msg layer upwards */ + osmo_fsm_inst_dispatch(fi, GPRS_NS2_EV_RX_UNITDATA, msg); + return 0; + } + + if (!tp) { + LOGPFSML(fi, LOGL_ERROR, "NSEI=%u Rx %s without TLV IEs\n", nsvc->nse->nsei, + get_value_string(gprs_ns_pdu_strings, nsh->pdu_type)); + goto out; + } + if (gprs_ns2_validate(nsvc, nsh->pdu_type, msg, tp, &cause)) { if (nsh->pdu_type != NS_PDUT_STATUS) { rc = ns2_tx_status(nsvc, cause, 0, msg); @@ -814,10 +826,6 @@ case NS_PDUT_ALIVE_ACK: osmo_fsm_inst_dispatch(fi, GPRS_NS2_EV_RX_ALIVE_ACK, tp); break; - case NS_PDUT_UNITDATA: - /* UNITDATA have to free msg because it might send the msg layer upwards */ - osmo_fsm_inst_dispatch(fi, GPRS_NS2_EV_RX_UNITDATA, msg); - return 0; default: LOGPFSML(fi, LOGL_ERROR, "NSEI=%u Rx unknown NS PDU type %s\n", nsvc->nse->nsei, get_value_string(gprs_ns_pdu_strings, nsh->pdu_type)); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22349 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I7d7c95604ba4af4ed4b6019f1d432970225f8d7a Gerrit-Change-Number: 22349 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 22:51:17 2021 From: gerrit-no-reply at lists.osmocom.org (keith) Date: Wed, 20 Jan 2021 22:51:17 +0000 Subject: Change in osmo-hlr[master]: Add vty command to show summary of all or filtered subscribers In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-hlr/+/22311 to look at the new patch set (#9). Change subject: Add vty command to show summary of all or filtered subscribers ...................................................................... Add vty command to show summary of all or filtered subscribers Adds the following commands: show subscribers all - Display summary of all entries in HLR show subscribers (imsi|msisdn|cs|ps) ... As above but filter on search field/string show subscribers last seen - Display only subscribers with data in Last LU update field, and sorts by Last LU. Change-Id: I7f0573381a6d0d13841ac6d42d50f0e8389decf4 --- M include/osmocom/hlr/db.h M src/db.c M src/db_hlr.c M src/hlr_vty_subscr.c M tests/test_nodes.vty 5 files changed, 230 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-hlr refs/changes/11/22311/9 -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/22311 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-Change-Id: I7f0573381a6d0d13841ac6d42d50f0e8389decf4 Gerrit-Change-Number: 22311 Gerrit-PatchSet: 9 Gerrit-Owner: keith Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-CC: laforge Gerrit-CC: neels Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 22:52:51 2021 From: gerrit-no-reply at lists.osmocom.org (keith) Date: Wed, 20 Jan 2021 22:52:51 +0000 Subject: Change in osmo-hlr[master]: Add vty command to show summary of all or filtered subscribers In-Reply-To: References: Message-ID: keith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-hlr/+/22311 ) Change subject: Add vty command to show summary of all or filtered subscribers ...................................................................... Patch Set 9: (7 comments) https://gerrit.osmocom.org/c/osmo-hlr/+/22311/7/src/db_hlr.c File src/db_hlr.c: https://gerrit.osmocom.org/c/osmo-hlr/+/22311/7/src/db_hlr.c at 629 PS7, Line 629: > there is no vty argument in below function Done https://gerrit.osmocom.org/c/osmo-hlr/+/22311/7/src/db_hlr.c at 633 PS7, Line 633: > meh, sorry. forgot to update these.. Done https://gerrit.osmocom.org/c/osmo-hlr/+/22311/7/src/hlr_vty_subscr.c File src/hlr_vty_subscr.c: https://gerrit.osmocom.org/c/osmo-hlr/+/22311/7/src/hlr_vty_subscr.c at 232 PS7, Line 232: vty_out(vty, "----- ------------ ---------------- ---------------- -----"); : if (show_ls) : vty_out(vty, " ------------"); : vty_out_newline(vty); : vty_out(vty, "ID MSISDN IMSI IMEI NAM"); : if (show_ls) : vty_out(vty, " LAST SEEN"); : vty_out_newline(vty); > yes, please go for that function, if required with reversed lines. [?] Done https://gerrit.osmocom.org/c/osmo-hlr/+/22311/7/src/hlr_vty_subscr.c at 251 PS7, Line 251: SUBSCR_SHOW_HELP > works for me. Ack https://gerrit.osmocom.org/c/osmo-hlr/+/22311/7/src/hlr_vty_subscr.c at 305 PS7, Line 305: SHOW_STR SUBSCRS_SHOW_HELP "Show summary of subscribers with filter\n" : "Filter by IMSI\n" "Filter by MSISDN\n" "String to match in msisdn or imsi\n") > My understanding of the existing logic (the code before I edited it) was that anything appearing mor [?] Ack https://gerrit.osmocom.org/c/osmo-hlr/+/22311/7/src/hlr_vty_subscr.c at 320 PS7, Line 320: > This doesn't make sense: [?] Done https://gerrit.osmocom.org/c/osmo-hlr/+/22311/7/src/hlr_vty_subscr.c at 323 PS7, Line 323: last seen > I personally don't think there are other tokens after last and hence would like to see last-seen. Done -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/22311 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-Change-Id: I7f0573381a6d0d13841ac6d42d50f0e8389decf4 Gerrit-Change-Number: 22311 Gerrit-PatchSet: 9 Gerrit-Owner: keith Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-CC: laforge Gerrit-CC: neels Gerrit-Comment-Date: Wed, 20 Jan 2021 22:52:51 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: laforge Comment-In-Reply-To: keith Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 22:52:54 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 20 Jan 2021 22:52:54 +0000 Subject: Change in osmo-bts[master]: vty: make commands related to the loopback mode hidden In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/22347 ) Change subject: vty: make commands related to the loopback mode hidden ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/22347/1/src/common/vty.c File src/common/vty.c: https://gerrit.osmocom.org/c/osmo-bts/+/22347/1/src/common/vty.c at 2014 PS1, Line 2014: CMD_ATTR_IMMEDIATE > I think the IMMEDIATE is bogus, as this is not a configuration command. [?] Ack -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22347 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I3f68acd7f2b0231f78516f59fb5e8ef56fb69dbf Gerrit-Change-Number: 22347 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-Comment-Date: Wed, 20 Jan 2021 22:52:54 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: laforge Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 22:54:49 2021 From: gerrit-no-reply at lists.osmocom.org (keith) Date: Wed, 20 Jan 2021 22:54:49 +0000 Subject: Change in osmo-hlr[master]: Add vty command to show summary of all or filtered subscribers In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-hlr/+/22311 to look at the new patch set (#10). Change subject: Add vty command to show summary of all or filtered subscribers ...................................................................... Add vty command to show summary of all or filtered subscribers Adds the following commands: show subscribers all - Display summary of all entries in HLR show subscribers (imsi|msisdn|cs|ps) ... As above but filter on search field/string show subscribers last seen - Display only subscribers with data in Last LU update field, and sorts by Last LU. Change-Id: I7f0573381a6d0d13841ac6d42d50f0e8389decf4 --- M include/osmocom/hlr/db.h M src/db.c M src/db_hlr.c M src/hlr_vty_subscr.c M tests/test_nodes.vty 5 files changed, 230 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-hlr refs/changes/11/22311/10 -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/22311 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-Change-Id: I7f0573381a6d0d13841ac6d42d50f0e8389decf4 Gerrit-Change-Number: 22311 Gerrit-PatchSet: 10 Gerrit-Owner: keith Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-CC: laforge Gerrit-CC: neels Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 22:55:05 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 20 Jan 2021 22:55:05 +0000 Subject: Change in osmo-bts[master]: vty: make commands related to the loopback mode hidden In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/22347 to look at the new patch set (#2). Change subject: vty: make commands related to the loopback mode hidden ...................................................................... vty: make commands related to the loopback mode hidden The loopback mode was added for testing, and may be dangerous if enabled in production. Let's make it appear only in expert mode. Change-Id: I3f68acd7f2b0231f78516f59fb5e8ef56fb69dbf --- M src/common/vty.c 1 file changed, 10 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/47/22347/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22347 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I3f68acd7f2b0231f78516f59fb5e8ef56fb69dbf Gerrit-Change-Number: 22347 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 22:55:05 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 20 Jan 2021 22:55:05 +0000 Subject: Change in osmo-bts[master]: vty: add expert commands for MS/BS power control In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/22348 to look at the new patch set (#2). Change subject: vty: add expert commands for MS/BS power control ...................................................................... vty: add expert commands for MS/BS power control These new commands are useful for debugging MS/BS power control loops, e.g. one can change power control mode, overwrite the current BS power reduction or MS power level at run-time. Change-Id: I1ebb033b02c2bc3b1fa7de874e0035a07297f266 Related: SYS#4918 --- M src/common/vty.c 1 file changed, 76 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/48/22348/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22348 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I1ebb033b02c2bc3b1fa7de874e0035a07297f266 Gerrit-Change-Number: 22348 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 22:58:03 2021 From: gerrit-no-reply at lists.osmocom.org (keith) Date: Wed, 20 Jan 2021 22:58:03 +0000 Subject: Change in osmo-hlr[master]: Add vty command to show summary of all or filtered subscribers In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-hlr/+/22311 to look at the new patch set (#11). Change subject: Add vty command to show summary of all or filtered subscribers ...................................................................... Add vty command to show summary of all or filtered subscribers Adds the following commands: show subscribers all - Display summary of all entries in HLR show subscribers (imsi|msisdn|cs|ps) ... As above but filter on search field/string show subscribers last seen - Display only subscribers with data in Last LU update field, and sorts by Last LU. Change-Id: I7f0573381a6d0d13841ac6d42d50f0e8389decf4 --- M include/osmocom/hlr/db.h M src/db.c M src/db_hlr.c M src/hlr_vty_subscr.c M tests/test_nodes.vty 5 files changed, 228 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-hlr refs/changes/11/22311/11 -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/22311 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-Change-Id: I7f0573381a6d0d13841ac6d42d50f0e8389decf4 Gerrit-Change-Number: 22311 Gerrit-PatchSet: 11 Gerrit-Owner: keith Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-CC: neels Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 23:01:06 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 20 Jan 2021 23:01:06 +0000 Subject: Change in libosmocore[master]: logging_vty: Fix saving of "logging print file .. last" In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22341 ) Change subject: logging_vty: Fix saving of "logging print file .. last" ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22341 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I7b6245256aecc425722242aaabc154ac58ba27a0 Gerrit-Change-Number: 22341 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 20 Jan 2021 23:01:06 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 23:32:49 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 20 Jan 2021 23:32:49 +0000 Subject: Change in osmo-trx[master]: Transceiver: fix integer division in addRadioVector() References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-trx/+/22350 ) Change subject: Transceiver: fix integer division in addRadioVector() ...................................................................... Transceiver: fix integer division in addRadioVector() By default, C/C++ compiler does assume integer division. The lack of explicit cast to 'double' causes the transceiver to ignore non-decimal attenuation values (x % 10 > 0): txFullScale * 10 ^ ( -3 / 10) == txFullScale * 10 ^ 0 == txFullScale * 1.0 txFullScale * 10 ^ ( -8 / 10) == txFullScale * 10 ^ 0 == txFullScale * 1.0 txFullScale * 10 ^ (-10 / 10) == txFullScale * 10 ^ -1 == txFullScale * 0.1 txFullScale * 10 ^ (-18 / 10) == txFullScale * 10 ^ -1 == txFullScale * 0.1 Change-Id: I85b1063f57f630d90c6da32827bec4a05afc6514 Related: SYS#4918 --- M Transceiver52M/Transceiver.cpp 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/50/22350/1 diff --git a/Transceiver52M/Transceiver.cpp b/Transceiver52M/Transceiver.cpp index 9c93e98..3188c70 100644 --- a/Transceiver52M/Transceiver.cpp +++ b/Transceiver52M/Transceiver.cpp @@ -396,7 +396,7 @@ else burst = modulateBurst(bits, 8 + (wTime.TN() % 4 == 0), cfg->tx_sps); - scaleVector(*burst, txFullScale * pow(10, -RSSI / 10)); + scaleVector(*burst, txFullScale * pow(10, (double) -RSSI / 10)); radio_burst = new radioVector(wTime, burst); -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/22350 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I85b1063f57f630d90c6da32827bec4a05afc6514 Gerrit-Change-Number: 22350 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 20 23:57:12 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 20 Jan 2021 23:57:12 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vc_fsm: fix nullpointer dereference when sending uintdata In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22349 ) Change subject: gprs_ns2_vc_fsm: fix nullpointer dereference when sending uintdata ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/22349/1/src/gb/gprs_ns2_vc_fsm.c File src/gb/gprs_ns2_vc_fsm.c: https://gerrit.osmocom.org/c/libosmocore/+/22349/1/src/gb/gprs_ns2_vc_fsm.c at 765 PS1, Line 765: if (!tp) { do OSMO_ASSERT(tp). A NULL tp should never happen except for UNITDATA. Only UNITDATA is special. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22349 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I7d7c95604ba4af4ed4b6019f1d432970225f8d7a Gerrit-Change-Number: 22349 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Wed, 20 Jan 2021 23:57:12 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 21 00:01:55 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Thu, 21 Jan 2021 00:01:55 +0000 Subject: Change in osmo-trx[master]: Transceiver: fix integer division in addRadioVector() In-Reply-To: References: Message-ID: Hoernchen has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/22350 ) Change subject: Transceiver: fix integer division in addRadioVector() ...................................................................... Patch Set 1: Code-Review+1 There is this great interactive c++ shell that can be used to learn stuff like casts called "cling": https://root.cern/cling/ -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/22350 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I85b1063f57f630d90c6da32827bec4a05afc6514 Gerrit-Change-Number: 22350 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Thu, 21 Jan 2021 00:01:55 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Thu Jan 21 01:34:45 2021 From: admin at opensuse.org (OBS Notification) Date: Thu, 21 Jan 2021 01:34:45 +0000 Subject: Build failure of network:osmocom:nightly/libosmocore in Debian_8.0/i586 In-Reply-To: References: Message-ID: <6008da4863d88_37872b20fd6105f03091b8@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libosmocore/Debian_8.0/i586 Package network:osmocom:nightly/libosmocore failed to build in Debian_8.0/i586 Check out the package for editing: osc checkout network:osmocom:nightly libosmocore Last lines of build log: [ 256s] Makefile:2098: recipe for target 'gb/gprs_ns2_test.o' failed [ 256s] make[6]: *** [gb/gprs_ns2_test.o] Error 1 [ 256s] make[6]: Leaving directory '/usr/src/packages/BUILD/tests' [ 256s] Makefile:2303: recipe for target 'check-am' failed [ 256s] make[5]: *** [check-am] Error 2 [ 256s] make[5]: Leaving directory '/usr/src/packages/BUILD/tests' [ 256s] Makefile:2306: recipe for target 'check' failed [ 256s] make[4]: *** [check] Error 2 [ 256s] make[4]: Leaving directory '/usr/src/packages/BUILD/tests' [ 256s] Makefile:693: recipe for target 'check-recursive' failed [ 256s] make[3]: *** [check-recursive] Error 1 [ 256s] make[3]: Leaving directory '/usr/src/packages/BUILD' [ 256s] Makefile:984: recipe for target 'check' failed [ 256s] make[2]: *** [check] Error 2 [ 256s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 256s] dh_auto_test: make -j1 check returned exit code 2 [ 256s] debian/rules:26: recipe for target 'override_dh_auto_test' failed [ 256s] make[1]: *** [override_dh_auto_test] Error 1 [ 256s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 256s] debian/rules:15: recipe for target 'build' failed [ 256s] make: *** [build] Error 2 [ 256s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 256s] ### VM INTERACTION START ### [ 257s] Powering off. [ 257s] [ 250.986861] reboot: Power down [ 257s] ### VM INTERACTION END ### [ 257s] [ 257s] build84 failed "build libosmocore_1.4.0.394.9c1e.dsc" at Thu Jan 21 01:34:42 UTC 2021. [ 257s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Jan 21 01:39:52 2021 From: admin at opensuse.org (OBS Notification) Date: Thu, 21 Jan 2021 01:39:52 +0000 Subject: Build failure of network:osmocom:nightly/libosmocore in Debian_8.0/x86_64 In-Reply-To: References: Message-ID: <6008db759a20_37872b20fd6105f03104e7@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libosmocore/Debian_8.0/x86_64 Package network:osmocom:nightly/libosmocore failed to build in Debian_8.0/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly libosmocore Last lines of build log: [ 352s] Makefile:2098: recipe for target 'gb/gprs_ns2_test.o' failed [ 352s] make[6]: *** [gb/gprs_ns2_test.o] Error 1 [ 352s] make[6]: Leaving directory '/usr/src/packages/BUILD/tests' [ 352s] Makefile:2303: recipe for target 'check-am' failed [ 352s] make[5]: *** [check-am] Error 2 [ 352s] make[5]: Leaving directory '/usr/src/packages/BUILD/tests' [ 352s] Makefile:2306: recipe for target 'check' failed [ 352s] make[4]: *** [check] Error 2 [ 352s] make[4]: Leaving directory '/usr/src/packages/BUILD/tests' [ 352s] Makefile:693: recipe for target 'check-recursive' failed [ 352s] make[3]: *** [check-recursive] Error 1 [ 352s] make[3]: Leaving directory '/usr/src/packages/BUILD' [ 352s] Makefile:984: recipe for target 'check' failed [ 352s] make[2]: *** [check] Error 2 [ 352s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 352s] dh_auto_test: make -j1 check returned exit code 2 [ 352s] debian/rules:26: recipe for target 'override_dh_auto_test' failed [ 352s] make[1]: *** [override_dh_auto_test] Error 1 [ 352s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 352s] debian/rules:15: recipe for target 'build' failed [ 352s] make: *** [build] Error 2 [ 352s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 352s] ### VM INTERACTION START ### [ 353s] Powering off. [ 353s] [ 343.555656] reboot: Power down [ 353s] ### VM INTERACTION END ### [ 353s] [ 353s] lamb59 failed "build libosmocore_1.4.0.394.9c1e.dsc" at Thu Jan 21 01:39:31 UTC 2021. [ 353s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Jan 21 02:55:17 2021 From: admin at opensuse.org (OBS Notification) Date: Thu, 21 Jan 2021 02:55:17 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.10/x86_64 In-Reply-To: References: Message-ID: <6008ed24ca353_37872b20fd6105f03497cf@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/xUbuntu_20.10/x86_64 Package network:osmocom:nightly/simtrace2 failed to build in xUbuntu_20.10/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 169s] [COMPILING apps/dfu/main.c] [ 170s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 170s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 170s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 170s] Memory region Used Size Region Size %age Used [ 170s] rom: 16580 B 16 KB 101.20% [ 170s] ram: 11672 B 48 KB 23.75/usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 170s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 170s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 170s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 170s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 170s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 170s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 196 bytes [ 170s] collect2: error: ld returned 1 exit status [ 170s] % [ 170s] make[2]: *** [Makefile:234: flash] Error 1 [ 170s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 170s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 170s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 170s] dh_auto_build: error: make -j1 returned exit code 2 [ 170s] make: *** [debian/rules:16: build] Error 25 [ 170s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 170s] ### VM INTERACTION START ### [ 173s] [ 160.527918] sysrq: Power Off [ 173s] [ 160.532820] reboot: Power down [ 173s] ### VM INTERACTION END ### [ 173s] [ 173s] lamb61 failed "build simtrace2_0.7.0.69.aadd.dsc" at Thu Jan 21 02:55:01 UTC 2021. [ 173s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Jan 21 03:03:57 2021 From: admin at opensuse.org (OBS Notification) Date: Thu, 21 Jan 2021 03:03:57 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <6008ef3eac7d2_37872b20fd6105f0361659@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/xUbuntu_20.04/x86_64 Package network:osmocom:nightly/simtrace2 failed to build in xUbuntu_20.04/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 118s] [COMPILING libboard/qmod/source/wwan_perst.c] [ 119s] [COMPILING libboard/qmod/source/card_pres.c] [ 119s] [COMPILING libboard/qmod/source/wwan_led.c] [ 119s] [COMPILING libboard/qmod/source/i2c.c] [ 119s] [COMPILING libboard/qmod/source/board_qmod.c] [ 119s] [COMPILING apps/dfu/main.c] [ 119s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 119s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 119s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 120s] Memory region Used Size Region Size %age Used [ 120s] rom: 16588 B 16 KB 101.25% [ 120s] ram: 11672 B 48 KB 23.75/usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 120s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 204 bytes [ 120s] collect2: error: ld returned 1 exit status [ 120s] % [ 120s] make[2]: *** [Makefile:234: flash] Error 1 [ 120s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 120s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 120s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 120s] dh_auto_build: error: make -j1 returned exit code 2 [ 120s] make: *** [debian/rules:16: build] Error 25 [ 120s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 120s] ### VM INTERACTION START ### [ 123s] [ 114.519909] sysrq: Power Off [ 123s] [ 114.526053] reboot: Power down [ 123s] ### VM INTERACTION END ### [ 123s] [ 123s] goat09 failed "build simtrace2_0.7.0.69.aadd.dsc" at Thu Jan 21 03:03:37 UTC 2021. [ 123s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Thu Jan 21 04:58:34 2021 From: gerrit-no-reply at lists.osmocom.org (herlesupreeth) Date: Thu, 21 Jan 2021 04:58:34 +0000 Subject: Change in pysim[master]: pySim-read.py: Add support for reading USIM+ISIM data from third-part... References: Message-ID: herlesupreeth has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/22351 ) Change subject: pySim-read.py: Add support for reading USIM+ISIM data from third-party UICC ...................................................................... pySim-read.py: Add support for reading USIM+ISIM data from third-party UICC Change-Id: Id8b95630e90cb5833482da2690e423e7adefb95b --- M pySim-read.py 1 file changed, 7 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/51/22351/1 diff --git a/pySim-read.py b/pySim-read.py index b94e709..2ec80c4 100755 --- a/pySim-read.py +++ b/pySim-read.py @@ -33,7 +33,7 @@ from pySim.ts_31_103 import EF_IST_map, EF_ISIM_ADF_map from pySim.commands import SimCardCommands -from pySim.cards import card_detect, Card +from pySim.cards import card_detect, Card, UsimCard, IsimCard from pySim.utils import h2b, swap_nibbles, rpad, dec_imsi, dec_iccid, dec_msisdn from pySim.utils import format_xplmn_w_act, dec_spn, dec_st, init_reader, dec_addr_tlv from pySim.utils import h2s, format_ePDGSelection @@ -250,6 +250,9 @@ # Check whether we have th AID of USIM, if so select it by its AID # EF.UST - File Id in ADF USIM : 6f38 if '9000' == card.select_adf_by_aid(): + # Select USIM profile + card = UsimCard(scc) + # EF.EHPLMN if card.file_exists(EF_USIM_ADF_map['EHPLMN']): (res, sw) = card.read_ehplmn() @@ -296,6 +299,9 @@ # Select ISIM application by its AID if '9000' == card.select_adf_by_aid(adf="isim"): + # Select USIM profile + card = IsimCard(scc) + #EF.P-CSCF - P-CSCF Address try: if card.file_exists(EF_ISIM_ADF_map['PCSCF']): -- To view, visit https://gerrit.osmocom.org/c/pysim/+/22351 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Id8b95630e90cb5833482da2690e423e7adefb95b Gerrit-Change-Number: 22351 Gerrit-PatchSet: 1 Gerrit-Owner: herlesupreeth Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 21 05:13:28 2021 From: gerrit-no-reply at lists.osmocom.org (herlesupreeth) Date: Thu, 21 Jan 2021 05:13:28 +0000 Subject: Change in pysim[master]: pySim-read.py: Add support for reading USIM+ISIM data from third-part... In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/pysim/+/22351 to look at the new patch set (#2). Change subject: pySim-read.py: Add support for reading USIM+ISIM data from third-party UICC ...................................................................... pySim-read.py: Add support for reading USIM+ISIM data from third-party UICC Change-Id: Id8b95630e90cb5833482da2690e423e7adefb95b --- M pySim-read.py 1 file changed, 25 insertions(+), 19 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/51/22351/2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/22351 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Id8b95630e90cb5833482da2690e423e7adefb95b Gerrit-Change-Number: 22351 Gerrit-PatchSet: 2 Gerrit-Owner: herlesupreeth Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 21 07:50:45 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 21 Jan 2021 07:50:45 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Introduce NS test cases In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22091 ) Change subject: Introduce NS test cases ...................................................................... Patch Set 9: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22091/9/ns/NS_Tests.ttcn File ns/NS_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22091/9/ns/NS_Tests.ttcn at 4 PS9, Line 4: de > -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22091 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ic619a374b88879d3116f8f28afb14401c3e3192b Gerrit-Change-Number: 22091 Gerrit-PatchSet: 9 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 21 Jan 2021 07:50:45 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 21 08:31:28 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 21 Jan 2021 08:31:28 +0000 Subject: Change in libosmocore[master]: gprs_ns2: rework logging of Rx and Tx NS PDU In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22294 ) Change subject: gprs_ns2: rework logging of Rx and Tx NS PDU ...................................................................... Patch Set 11: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/22294/11/src/gb/gprs_ns2_internal.h File src/gb/gprs_ns2_internal.h: https://gerrit.osmocom.org/c/libosmocore/+/22294/11/src/gb/gprs_ns2_internal.h at 33 PS11, Line 33: #define LOG_NS_TX_MESSAGE(nsvc, pdu_type) LOG_NS_MESSAGE(nsvc, "Tx", pdu_type, LOGL_INFO, "\n") Could you log NS_PDUT_UNITDATA as LOGL_DEBUG, but everything else INFO? Otherwise I fear the logs are too verbose. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22294 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I34b8fde2955ecc010d1dcd9512e1bba9211e2c0d Gerrit-Change-Number: 22294 Gerrit-PatchSet: 11 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 21 Jan 2021 08:31:28 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 21 08:51:20 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 21 Jan 2021 08:51:20 +0000 Subject: Change in libosmocore[master]: gprs_ns2: inform the NS user (BSSGP) about the MTU of a NSE In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22343 ) Change subject: gprs_ns2: inform the NS user (BSSGP) about the MTU of a NSE ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/22343/2/src/gb/gprs_ns2_udp.c File src/gb/gprs_ns2_udp.c: https://gerrit.osmocom.org/c/libosmocore/+/22343/2/src/gb/gprs_ns2_udp.c at 121 PS2, Line 121: int > also here I'm not sure if we really should worry about the MTU of the ethernet. [?] In that case do we really have to pass the MTU though a status primitive or could we just have hard-coded values per nse->ll + a function to query those? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22343 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I5016b295db6185ec131d83089cf6c806e34ef1b6 Gerrit-Change-Number: 22343 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 21 Jan 2021 08:51:20 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: laforge Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 21 09:23:41 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 21 Jan 2021 09:23:41 +0000 Subject: Change in libosmocore[master]: gprs_ns2_test: Fix compilation on Debian 8 References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22352 ) Change subject: gprs_ns2_test: Fix compilation on Debian 8 ...................................................................... gprs_ns2_test: Fix compilation on Debian 8 [ 352s] gb/gprs_ns2_test.c: In function 'test_block_unblock_nsvc': [ 352s] gb/gprs_ns2_test.c:200:2: error: 'for' loop initial declarations are only allowed in C99 or C11 mode [ 352s] for (int i=0; i<2; i++) { [ 352s] ^ [ 352s] gb/gprs_ns2_test.c:200:2: note: use option -std=c99, -std=gnu99, -std=c11 or -std=gnu11 to compile your code Change-Id: I72310886bef4db635078b75715c9d98ee45391cc --- M tests/gb/gprs_ns2_test.c 1 file changed, 2 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/52/22352/1 diff --git a/tests/gb/gprs_ns2_test.c b/tests/gb/gprs_ns2_test.c index 315a4d0..44c9ce4 100644 --- a/tests/gb/gprs_ns2_test.c +++ b/tests/gb/gprs_ns2_test.c @@ -188,6 +188,7 @@ struct gprs_ns_hdr *nsh; struct msgb *msg; char idbuf[32]; + int i; printf("--- Testing NSE block unblock nsvc\n"); printf("---- Create NSE + Binds\n"); @@ -197,7 +198,7 @@ nse = gprs_ns2_create_nse(nsi, 1001, GPRS_NS2_LL_UDP, NS2_DIALECT_STATIC_RESETBLOCK); OSMO_ASSERT(nse); - for (int i=0; i<2; i++) { + for (i=0; i<2; i++) { printf("---- Create NSVC[i]\n"); snprintf(idbuf, sizeof(idbuf), "NSE%05u-dummy-%i", nse->nsei, i); nsvc[i] = ns2_vc_alloc(bind[i], nse, false, NS2_VC_MODE_BLOCKRESET, idbuf); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22352 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I72310886bef4db635078b75715c9d98ee45391cc Gerrit-Change-Number: 22352 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 21 09:27:04 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 21 Jan 2021 09:27:04 +0000 Subject: Change in libosmocore[master]: gprs_ns2_test: Fix compilation on Debian 8 In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22352 ) Change subject: gprs_ns2_test: Fix compilation on Debian 8 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22352 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I72310886bef4db635078b75715c9d98ee45391cc Gerrit-Change-Number: 22352 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Thu, 21 Jan 2021 09:27:04 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 21 09:27:09 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 21 Jan 2021 09:27:09 +0000 Subject: Change in libosmocore[master]: logging_vty: Fix saving of "logging print file .. last" In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22341 ) Change subject: logging_vty: Fix saving of "logging print file .. last" ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22341 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I7b6245256aecc425722242aaabc154ac58ba27a0 Gerrit-Change-Number: 22341 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 21 Jan 2021 09:27:09 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 21 09:27:09 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 21 Jan 2021 09:27:09 +0000 Subject: Change in libosmocore[master]: logging_vty: Fix saving of "logging print file .. last" In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22341 ) Change subject: logging_vty: Fix saving of "logging print file .. last" ...................................................................... Patch Set 2: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22341 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I7b6245256aecc425722242aaabc154ac58ba27a0 Gerrit-Change-Number: 22341 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 21 Jan 2021 09:27:09 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 21 09:27:12 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 21 Jan 2021 09:27:12 +0000 Subject: Change in libosmocore[master]: logging_vty: Fix saving of "logging print file .. last" In-Reply-To: References: Message-ID: laforge has removed a vote from this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22341 ) Change subject: logging_vty: Fix saving of "logging print file .. last" ...................................................................... Removed Verified+1 by laforge -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22341 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I7b6245256aecc425722242aaabc154ac58ba27a0 Gerrit-Change-Number: 22341 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-MessageType: deleteVote -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 21 09:29:37 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 21 Jan 2021 09:29:37 +0000 Subject: Change in libosmocore[master]: gprs_ns2: rework logging of Rx and Tx NS PDU In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22294 ) Change subject: gprs_ns2: rework logging of Rx and Tx NS PDU ...................................................................... Patch Set 11: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/22294/11/src/gb/gprs_ns2_internal.h File src/gb/gprs_ns2_internal.h: https://gerrit.osmocom.org/c/libosmocore/+/22294/11/src/gb/gprs_ns2_internal.h at 33 PS11, Line 33: #define LOG_NS_TX_MESSAGE(nsvc, pdu_type) LOG_NS_MESSAGE(nsvc, "Tx", pdu_type, LOGL_INFO, "\n") > Could you log NS_PDUT_UNITDATA as LOGL_DEBUG, but everything else INFO? Otherwise I fear the logs ar [?] we could also introduce separate logging sub-systems for data and user plane? Or have log filters for that? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22294 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I34b8fde2955ecc010d1dcd9512e1bba9211e2c0d Gerrit-Change-Number: 22294 Gerrit-PatchSet: 11 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 21 Jan 2021 09:29:37 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: daniel Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 21 09:32:54 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 21 Jan 2021 09:32:54 +0000 Subject: Change in libosmocore[master]: gprs_ns2: inform the NS user (BSSGP) about the MTU of a NSE In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22343 ) Change subject: gprs_ns2: inform the NS user (BSSGP) about the MTU of a NSE ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/22343/2/src/gb/gprs_ns2_udp.c File src/gb/gprs_ns2_udp.c: https://gerrit.osmocom.org/c/libosmocore/+/22343/2/src/gb/gprs_ns2_udp.c at 121 PS2, Line 121: int > In that case do we really have to pass the MTU though a status primitive or could we just have hard- [?] I don't really have a preference either way. I think for the SGSN it is useful to be able to determine it _somehow_, so it can use it for the related SNDCP/LLC XID to ensure no "un-transport-able" NS frames. I don't expect it to change at runtime, unless somebody would switch from FR to IP transport (or vice-versa) at runtime, which is probably the most unlikely of all events ;) The other part where the MTU is needed to be known is inside the NS2 code when generating NS-STATUS, as the inner PDU may need to be truncated. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22343 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I5016b295db6185ec131d83089cf6c806e34ef1b6 Gerrit-Change-Number: 22343 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 21 Jan 2021 09:32:54 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: laforge Comment-In-Reply-To: daniel Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 21 09:38:08 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 21 Jan 2021 09:38:08 +0000 Subject: Change in osmo-trx[master]: Transceiver: fix integer division in addRadioVector() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/22350 ) Change subject: Transceiver: fix integer division in addRadioVector() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/22350 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I85b1063f57f630d90c6da32827bec4a05afc6514 Gerrit-Change-Number: 22350 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 21 Jan 2021 09:38:08 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 21 09:38:10 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 21 Jan 2021 09:38:10 +0000 Subject: Change in osmo-trx[master]: Transceiver: fix integer division in addRadioVector() In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/22350 ) Change subject: Transceiver: fix integer division in addRadioVector() ...................................................................... Transceiver: fix integer division in addRadioVector() By default, C/C++ compiler does assume integer division. The lack of explicit cast to 'double' causes the transceiver to ignore non-decimal attenuation values (x % 10 > 0): txFullScale * 10 ^ ( -3 / 10) == txFullScale * 10 ^ 0 == txFullScale * 1.0 txFullScale * 10 ^ ( -8 / 10) == txFullScale * 10 ^ 0 == txFullScale * 1.0 txFullScale * 10 ^ (-10 / 10) == txFullScale * 10 ^ -1 == txFullScale * 0.1 txFullScale * 10 ^ (-18 / 10) == txFullScale * 10 ^ -1 == txFullScale * 0.1 Change-Id: I85b1063f57f630d90c6da32827bec4a05afc6514 Related: SYS#4918 --- M Transceiver52M/Transceiver.cpp 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified Hoernchen: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/Transceiver52M/Transceiver.cpp b/Transceiver52M/Transceiver.cpp index 9c93e98..3188c70 100644 --- a/Transceiver52M/Transceiver.cpp +++ b/Transceiver52M/Transceiver.cpp @@ -396,7 +396,7 @@ else burst = modulateBurst(bits, 8 + (wTime.TN() % 4 == 0), cfg->tx_sps); - scaleVector(*burst, txFullScale * pow(10, -RSSI / 10)); + scaleVector(*burst, txFullScale * pow(10, (double) -RSSI / 10)); radio_burst = new radioVector(wTime, burst); -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/22350 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I85b1063f57f630d90c6da32827bec4a05afc6514 Gerrit-Change-Number: 22350 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 21 09:40:28 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 21 Jan 2021 09:40:28 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vc_fsm: fix nullpointer dereference when sending uintdata In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22349 ) Change subject: gprs_ns2_vc_fsm: fix nullpointer dereference when sending uintdata ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/22349/1/src/gb/gprs_ns2_vc_fsm.c File src/gb/gprs_ns2_vc_fsm.c: https://gerrit.osmocom.org/c/libosmocore/+/22349/1/src/gb/gprs_ns2_vc_fsm.c at 759 PS1, Line 759: if (nsh->pdu_type == NS_PDUT_UNITDATA) { : /* UNITDATA have to free msg because it might send the msg layer upwards */ : osmo_fsm_inst_dispatch(fi, GPRS_NS2_EV_RX_UNITDATA, msg); : return 0; : } why are we moving this block before the call to gprs_ns2_validate() ? If the validation fails, why is that so? I think we need to fix the validation (or the message, if it really is wrong) rather than bypassing validation completely. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22349 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I7d7c95604ba4af4ed4b6019f1d432970225f8d7a Gerrit-Change-Number: 22349 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus Gerrit-CC: laforge Gerrit-Comment-Date: Thu, 21 Jan 2021 09:40:28 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 21 09:40:49 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 21 Jan 2021 09:40:49 +0000 Subject: Change in osmo-bts[master]: vty: make commands related to the loopback mode hidden In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/22347 ) Change subject: vty: make commands related to the loopback mode hidden ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22347 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I3f68acd7f2b0231f78516f59fb5e8ef56fb69dbf Gerrit-Change-Number: 22347 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 21 Jan 2021 09:40:49 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 21 09:41:05 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 21 Jan 2021 09:41:05 +0000 Subject: Change in osmo-bts[master]: vty: add expert commands for MS/BS power control In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/22348 ) Change subject: vty: add expert commands for MS/BS power control ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22348 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I1ebb033b02c2bc3b1fa7de874e0035a07297f266 Gerrit-Change-Number: 22348 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 21 Jan 2021 09:41:05 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 21 09:41:07 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 21 Jan 2021 09:41:07 +0000 Subject: Change in osmo-bts[master]: vty: make commands related to the loopback mode hidden In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/22347 ) Change subject: vty: make commands related to the loopback mode hidden ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22347 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I3f68acd7f2b0231f78516f59fb5e8ef56fb69dbf Gerrit-Change-Number: 22347 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 21 Jan 2021 09:41:07 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 21 09:41:10 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 21 Jan 2021 09:41:10 +0000 Subject: Change in osmo-bts[master]: vty: make commands related to the loopback mode hidden In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/22347 ) Change subject: vty: make commands related to the loopback mode hidden ...................................................................... vty: make commands related to the loopback mode hidden The loopback mode was added for testing, and may be dangerous if enabled in production. Let's make it appear only in expert mode. Change-Id: I3f68acd7f2b0231f78516f59fb5e8ef56fb69dbf --- M src/common/vty.c 1 file changed, 10 insertions(+), 8 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/common/vty.c b/src/common/vty.c index 846ba4a..07244e7 100644 --- a/src/common/vty.c +++ b/src/common/vty.c @@ -1988,10 +1988,11 @@ return CMD_SUCCESS; } -DEFUN(bts_t_t_l_loopback, - bts_t_t_l_loopback_cmd, - BTS_T_T_L_CMD " loopback", - BTS_T_T_L_STR "Set loopback\n") +DEFUN_ATTR(bts_t_t_l_loopback, + bts_t_t_l_loopback_cmd, + BTS_T_T_L_CMD " loopback", + BTS_T_T_L_STR "Set loopback\n", + CMD_ATTR_HIDDEN) { struct gsm_network *net = gsmnet_from_vty(vty); struct gsm_lchan *lchan; @@ -2006,10 +2007,11 @@ return CMD_SUCCESS; } -DEFUN(no_bts_t_t_l_loopback, - no_bts_t_t_l_loopback_cmd, - "no " BTS_T_T_L_CMD " loopback", - NO_STR BTS_T_T_L_STR "Set loopback\n") +DEFUN_ATTR(no_bts_t_t_l_loopback, + no_bts_t_t_l_loopback_cmd, + "no " BTS_T_T_L_CMD " loopback", + NO_STR BTS_T_T_L_STR "Set loopback\n", + CMD_ATTR_HIDDEN) { struct gsm_network *net = gsmnet_from_vty(vty); struct gsm_lchan *lchan; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22347 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I3f68acd7f2b0231f78516f59fb5e8ef56fb69dbf Gerrit-Change-Number: 22347 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 21 09:41:10 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 21 Jan 2021 09:41:10 +0000 Subject: Change in osmo-bts[master]: vty: add expert commands for MS/BS power control In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/22348 ) Change subject: vty: add expert commands for MS/BS power control ...................................................................... vty: add expert commands for MS/BS power control These new commands are useful for debugging MS/BS power control loops, e.g. one can change power control mode, overwrite the current BS power reduction or MS power level at run-time. Change-Id: I1ebb033b02c2bc3b1fa7de874e0035a07297f266 Related: SYS#4918 --- M src/common/vty.c 1 file changed, 76 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/common/vty.c b/src/common/vty.c index 07244e7..9dd0c1a 100644 --- a/src/common/vty.c +++ b/src/common/vty.c @@ -2026,6 +2026,80 @@ return CMD_SUCCESS; } +#define LCHAN_PWR_CTRL_CMD \ + BTS_T_T_L_CMD " (bs-power-ctrl|ms-power-ctrl)" +#define LCHAN_PWR_CTRL_STR \ + BTS_T_T_L_STR "BS power control\n" "MS power control\n" + +DEFUN_ATTR(bts_t_t_l_power_ctrl_mode, + bts_t_t_l_power_ctrl_mode_cmd, + LCHAN_PWR_CTRL_CMD " mode (static|dynamic)", + LCHAN_PWR_CTRL_STR "Change power control mode\n" + "Disable the power control loop\n" + "Enable the power control loop\n", + CMD_ATTR_HIDDEN) +{ + struct gsm_network *net = gsmnet_from_vty(vty); + const struct gsm_power_ctrl_params *params; + struct lchan_power_ctrl_state *state; + const char **args = argv + 4; + struct gsm_lchan *lchan; + + lchan = resolve_lchan(net, argv, 0); + if (!lchan) { + vty_out(vty, "%% Could not resolve logical channel%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (strcmp(args[0], "bs-power-ctrl") == 0) { + params = &lchan->bs_dpc_params; + state = &lchan->bs_power_ctrl; + } else { /* ms-power-ctrl */ + params = &lchan->ms_dpc_params; + state = &lchan->ms_power_ctrl; + } + + if (strcmp(args[1], "dynamic") == 0) + state->dpc_params = params; + else + state->dpc_params = NULL; + + return CMD_SUCCESS; +} + +DEFUN_ATTR(bts_t_t_l_power_ctrl_current_max, + bts_t_t_l_power_ctrl_current_max_cmd, + LCHAN_PWR_CTRL_CMD " value (current|max) <0-255>", + LCHAN_PWR_CTRL_STR "Change current power value\n" + "Current value (for both dynamic and static modes)\n" + "Maximum value (for dynamic mode only)\n" + "BS power reduction (in dB) or MS power level\n", + CMD_ATTR_HIDDEN) +{ + struct gsm_network *net = gsmnet_from_vty(vty); + struct lchan_power_ctrl_state *state; + const char **args = argv + 4; + struct gsm_lchan *lchan; + + lchan = resolve_lchan(net, argv, 0); + if (!lchan) { + vty_out(vty, "%% Could not resolve logical channel%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (strcmp(args[0], "bs-power-ctrl") == 0) + state = &lchan->bs_power_ctrl; + else /* ms-power-ctrl */ + state = &lchan->ms_power_ctrl; + + if (strcmp(args[1], "current") == 0) + state->current = atoi(args[2]); + else + state->max = atoi(args[2]); + + return CMD_SUCCESS; +} + DEFUN(logging_fltr_l1_sapi, logging_fltr_l1_sapi_cmd, "HIDDEN", "HIDDEN") { int sapi = get_string_value(l1sap_common_sapi_names, argv[0]); @@ -2155,6 +2229,8 @@ install_element(ENABLE_NODE, &bts_t_t_l_jitter_buf_cmd); install_element(ENABLE_NODE, &bts_t_t_l_loopback_cmd); install_element(ENABLE_NODE, &no_bts_t_t_l_loopback_cmd); + install_element(ENABLE_NODE, &bts_t_t_l_power_ctrl_mode_cmd); + install_element(ENABLE_NODE, &bts_t_t_l_power_ctrl_current_max_cmd); install_element(ENABLE_NODE, &test_send_failure_event_report_cmd); install_element(ENABLE_NODE, &radio_link_timeout_cmd); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22348 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I1ebb033b02c2bc3b1fa7de874e0035a07297f266 Gerrit-Change-Number: 22348 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 21 09:41:23 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 21 Jan 2021 09:41:23 +0000 Subject: Change in libosmocore[master]: logging_vty: Fix saving of "logging print file .. last" In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22341 ) Change subject: logging_vty: Fix saving of "logging print file .. last" ...................................................................... logging_vty: Fix saving of "logging print file .. last" Back in 2018 in I393907b3c9e0cc1145e102328adad0a83ee13a9f Neels introduced "last" as an optional flag to log the file/line number at the end of the line, rather than at the end of the header. It seems nobody has been usingi this feature, or at least never tried to save a related config file, as there was no code whatsoever that would ever save this optional "last" flag. Change-Id: I7b6245256aecc425722242aaabc154ac58ba27a0 --- M src/vty/logging_vty.c 1 file changed, 2 insertions(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/vty/logging_vty.c b/src/vty/logging_vty.c index 0282350..6a7a8f4 100644 --- a/src/vty/logging_vty.c +++ b/src/vty/logging_vty.c @@ -1010,8 +1010,9 @@ tgt->print_timestamp ? 1 : 0, VTY_NEWLINE); if (tgt->print_level) vty_out(vty, " logging print level 1%s", VTY_NEWLINE); - vty_out(vty, " logging print file %s%s", + vty_out(vty, " logging print file %s%s%s", get_value_string(logging_print_file_args, tgt->print_filename2), + tgt->print_filename_pos == LOG_FILENAME_POS_LINE_END ? " last" : "", VTY_NEWLINE); if (tgt->loglevel) { -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22341 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I7b6245256aecc425722242aaabc154ac58ba27a0 Gerrit-Change-Number: 22341 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 21 09:41:23 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 21 Jan 2021 09:41:23 +0000 Subject: Change in libosmocore[master]: gprs_ns2_test: Fix compilation on Debian 8 In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22352 ) Change subject: gprs_ns2_test: Fix compilation on Debian 8 ...................................................................... gprs_ns2_test: Fix compilation on Debian 8 [ 352s] gb/gprs_ns2_test.c: In function 'test_block_unblock_nsvc': [ 352s] gb/gprs_ns2_test.c:200:2: error: 'for' loop initial declarations are only allowed in C99 or C11 mode [ 352s] for (int i=0; i<2; i++) { [ 352s] ^ [ 352s] gb/gprs_ns2_test.c:200:2: note: use option -std=c99, -std=gnu99, -std=c11 or -std=gnu11 to compile your code Change-Id: I72310886bef4db635078b75715c9d98ee45391cc --- M tests/gb/gprs_ns2_test.c 1 file changed, 2 insertions(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/tests/gb/gprs_ns2_test.c b/tests/gb/gprs_ns2_test.c index 315a4d0..44c9ce4 100644 --- a/tests/gb/gprs_ns2_test.c +++ b/tests/gb/gprs_ns2_test.c @@ -188,6 +188,7 @@ struct gprs_ns_hdr *nsh; struct msgb *msg; char idbuf[32]; + int i; printf("--- Testing NSE block unblock nsvc\n"); printf("---- Create NSE + Binds\n"); @@ -197,7 +198,7 @@ nse = gprs_ns2_create_nse(nsi, 1001, GPRS_NS2_LL_UDP, NS2_DIALECT_STATIC_RESETBLOCK); OSMO_ASSERT(nse); - for (int i=0; i<2; i++) { + for (i=0; i<2; i++) { printf("---- Create NSVC[i]\n"); snprintf(idbuf, sizeof(idbuf), "NSE%05u-dummy-%i", nse->nsei, i); nsvc[i] = ns2_vc_alloc(bind[i], nse, false, NS2_VC_MODE_BLOCKRESET, idbuf); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22352 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I72310886bef4db635078b75715c9d98ee45391cc Gerrit-Change-Number: 22352 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 21 09:42:21 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 21 Jan 2021 09:42:21 +0000 Subject: Change in osmo-ttcn3-hacks[master]: NS_Emulation: Respect data_weight==0 or signalling_weight==0 In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22305 ) Change subject: NS_Emulation: Respect data_weight==0 or signalling_weight==0 ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22305/1/gbproxy/GBProxy_Tests.ttcn File gbproxy/GBProxy_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22305/1/gbproxy/GBProxy_Tests.ttcn at 71 PS1, Line 71: data_weight := 0, > Shouldn't you set data_weight 1 here (and below) as well and only change it in the next commit where [?] Ack -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22305 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I9798e639b4bc8658482945970775b012b5840779 Gerrit-Change-Number: 22305 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Thu, 21 Jan 2021 09:42:21 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: daniel Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 21 09:42:26 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 21 Jan 2021 09:42:26 +0000 Subject: Change in osmo-ttcn3-hacks[master]: NS_Emulation: Respect data_weight==0 or signalling_weight==0 In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22305 ) Change subject: NS_Emulation: Respect data_weight==0 or signalling_weight==0 ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22305 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I9798e639b4bc8658482945970775b012b5840779 Gerrit-Change-Number: 22305 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Thu, 21 Jan 2021 09:42:26 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 21 09:42:33 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 21 Jan 2021 09:42:33 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Use separate NS-VC for data / signalling on SGSN side In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22306 ) Change subject: gbproxy: Use separate NS-VC for data / signalling on SGSN side ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22306 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If0e404bdf2c30a5e18748695608611be83f61109 Gerrit-Change-Number: 22306 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Thu, 21 Jan 2021 09:42:33 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 21 09:42:35 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 21 Jan 2021 09:42:35 +0000 Subject: Change in osmo-ttcn3-hacks[master]: NS_Emulation: Add CTRL port to administratively disable a NS-VC In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22315 ) Change subject: NS_Emulation: Add CTRL port to administratively disable a NS-VC ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22315 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I742ecf01de15e3edbf0719371f0217a5739b7c8e Gerrit-Change-Number: 22315 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 21 Jan 2021 09:42:35 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 21 09:42:48 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 21 Jan 2021 09:42:48 +0000 Subject: Change in osmo-ttcn3-hacks[master]: NS_Emulation: Respect data_weight==0 or signalling_weight==0 In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22305 ) Change subject: NS_Emulation: Respect data_weight==0 or signalling_weight==0 ...................................................................... NS_Emulation: Respect data_weight==0 or signalling_weight==0 * allow configuration of signalling + data weight for each NS-VC * advertise per-NSVC signalling/data weight in SNS-CONFIG * keep track of unblocked NS-VCS separately for data / signalling * transmit BVCI=0 traffic only over signalling NS-VC * transmit BVCI>0 traffic only over data NS-VC * accept incoming BVCI=0 traffic only if signalling_weight > 0 * accept incoming BVCI>0 traffic only if data_weight > 0 Related: OS#4953 Change-Id: I9798e639b4bc8658482945970775b012b5840779 --- M gbproxy/GBProxy_Tests.ttcn M library/NS_Emulation.ttcnpp M library/Osmocom_Gb_Types.ttcn M pcu/PCU_Tests.cfg M pcu/PCU_Tests_SNS.cfg M pcu/PCU_Tests_SNSv6.cfg M sgsn/SGSN_Tests.ttcn 7 files changed, 153 insertions(+), 33 deletions(-) Approvals: Jenkins Builder: Verified daniel: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index 9fa9c4f..e1d2e59 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -67,11 +67,14 @@ local_udp_port := 7777, local_ip := "127.0.0.10", remote_udp_port := 23000, - remote_ip := "127.0.0.1" + remote_ip := "127.0.0.1", + data_weight := 1, + signalling_weight := 1 } }, nsvci := 101 } + } }, { nsei := 102, @@ -85,7 +88,9 @@ local_udp_port := 8888, local_ip := "127.0.0.11", remote_udp_port := 23000, - remote_ip := "127.0.0.1" + remote_ip := "127.0.0.1", + data_weight := 1, + signalling_weight := 1 } }, nsvci := 102 @@ -109,7 +114,9 @@ local_udp_port := 21010, local_ip := "127.0.1.1", remote_udp_port := 23000, - remote_ip := "127.0.0.1" + remote_ip := "127.0.0.1", + data_weight := 1, + signalling_weight := 1 } }, nsvci := 2101 @@ -128,7 +135,9 @@ local_udp_port := 21020, local_ip := "127.0.2.1", remote_udp_port := 23000, - remote_ip := "127.0.0.1" + remote_ip := "127.0.0.1", + data_weight := 1, + signalling_weight := 1 } }, nsvci := 2102 @@ -147,7 +156,9 @@ local_udp_port := 21030, local_ip := "127.0.3.1", remote_udp_port := 23000, - remote_ip := "127.0.0.1" + remote_ip := "127.0.0.1", + data_weight := 1, + signalling_weight := 1 } }, nsvci := 2103 diff --git a/library/NS_Emulation.ttcnpp b/library/NS_Emulation.ttcnpp index 03aeb6a..61ebe95 100644 --- a/library/NS_Emulation.ttcnpp +++ b/library/NS_Emulation.ttcnpp @@ -1,5 +1,5 @@ /* GPRS-NS Emulation in TTCN-3 - * (C) 2018-2020 Harald Welte + * (C) 2018-2021 Harald Welte * contributions by sysmocom - s.f.m.c. GmbH * All rights reserved. * @@ -152,7 +152,9 @@ PortNumber local_udp_port, charstring local_ip, PortNumber remote_udp_port, - charstring remote_ip + charstring remote_ip, + uint8_t data_weight, + uint8_t signalling_weight }; type record NSVCConfigurationFR { charstring netdev, /* HDLC net-device for AF_PACKET socket */ @@ -192,10 +194,11 @@ /* references to the per-NSVC components */ var NsvcTable g_nsvcs := {}; /* list of indexes to g_nsvcs[] of currently unblocked NSVCs */ - var ro_integer g_unblocked_nsvcs := {}; + var ro_integer g_unblocked_nsvcs_sig := {}; + var ro_integer g_unblocked_nsvcs_data := {}; }; type record NsvcTableEntry { - Nsvci nsvci, + NSVCConfiguration cfg, NSVC_CT vc_conn, NsvcState state }; @@ -244,7 +247,7 @@ var charstring nsvc_id := g_id & "-NSVCI" & int2str(nsvc_cfg.nsvci); var NsvcTableEntry te; - te.nsvci := nsvc_cfg.nsvci; + te.cfg := nsvc_cfg; te.vc_conn := NSVC_CT.create(nsvc_id); te.state := NSVC_S_DEAD_BLOCKED; @@ -258,7 +261,7 @@ function f_nsvc_find_idx(Nsvci nsvci) runs on NS_CT return integer { var integer i; for (i := 0; i < lengthof(g_nsvcs); i := i+1) { - if (g_nsvcs[i].nsvci == nsvci) { + if (g_nsvcs[i].cfg.nsvci == nsvci) { return i; } } @@ -281,16 +284,32 @@ } if (g_nsvcs[i].state != NSVC_S_ALIVE_UNBLOCKED and state == NSVC_S_ALIVE_UNBLOCKED) { /* add index to list of unblocked NSVCs */ - g_unblocked_nsvcs := g_unblocked_nsvcs & {i}; + if (not ischosen(g_nsvcs[i].cfg.provider.ip) or + g_nsvcs[i].cfg.provider.ip.signalling_weight > 0) { + g_unblocked_nsvcs_sig := g_unblocked_nsvcs_sig & {i}; + } + if (not ischosen(g_nsvcs[i].cfg.provider.ip) or + g_nsvcs[i].cfg.provider.ip.data_weight > 0) { + g_unblocked_nsvcs_data := g_unblocked_nsvcs_data & {i}; + } } else if (g_nsvcs[i].state == NSVC_S_ALIVE_UNBLOCKED and state != NSVC_S_ALIVE_UNBLOCKED) { /* remove index to list of unblocked NSVCs */ - var ro_integer new_unblocked_nsvcs := {}; - for (var integer j := 0; j < lengthof(g_unblocked_nsvcs); j := j+1) { - if (g_unblocked_nsvcs[j] != i) { - new_unblocked_nsvcs := new_unblocked_nsvcs & {j}; + var ro_integer new_unblocked_nsvcs_sig := {}; + for (var integer j := 0; j < lengthof(g_unblocked_nsvcs_sig); j := j+1) { + if (g_unblocked_nsvcs_sig[j] != i) { + new_unblocked_nsvcs_sig := new_unblocked_nsvcs_sig & {j}; } } - g_unblocked_nsvcs := new_unblocked_nsvcs; + g_unblocked_nsvcs_sig := new_unblocked_nsvcs_sig; + + var ro_integer new_unblocked_nsvcs_data := {}; + for (var integer j := 0; j < lengthof(g_unblocked_nsvcs_data); j := j+1) { + if (g_unblocked_nsvcs_data[j] != i) { + new_unblocked_nsvcs_data := new_unblocked_nsvcs_data & {j}; + } + } + g_unblocked_nsvcs_data := new_unblocked_nsvcs_data; + } g_nsvcs[i].state := state; } @@ -365,11 +384,17 @@ log2str("Received UnitDataInd for invalid NSEI: ", rx_nsudi)); } /* from user down to NS-VC */ - [] NS_SP.receive(tr_NsUdReq(g_config.nsei, ?, ?, ?, *)) -> value rx_nsudr { + [] NS_SP.receive(tr_NsUdReq(g_config.nsei, 0, ?, ?, *)) -> value rx_nsudr { /* load distribution function */ - var integer nsvc_idx := g_unblocked_nsvcs[rx_nsudr.lsp mod lengthof(g_unblocked_nsvcs)]; + var integer nsvc_idx := g_unblocked_nsvcs_sig[rx_nsudr.lsp mod lengthof(g_unblocked_nsvcs_sig)]; NSVC.send(rx_nsudr) to g_nsvcs[nsvc_idx].vc_conn; } + [] NS_SP.receive(tr_NsUdReq(g_config.nsei, ?, ?, ?, *)) -> value rx_nsudr { + /* load distribution function */ + var integer nsvc_idx := g_unblocked_nsvcs_data[rx_nsudr.lsp mod lengthof(g_unblocked_nsvcs_data)]; + NSVC.send(rx_nsudr) to g_nsvcs[nsvc_idx].vc_conn; + } + [] NS_SP.receive(tr_NsUdReq(?, ?, ?, ?, *)) -> value rx_nsudr { Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, log2str("Received NsUnitdataReq for invalid NSEI: ", rx_nsudr)); @@ -392,10 +417,14 @@ } if (nsvc_cfg.provider.ip.address_family == AF_INET) { v4 := v4 & { valueof(ts_SNS_IPv4(nsvc_cfg.provider.ip.local_ip, - nsvc_cfg.provider.ip.local_udp_port)) }; + nsvc_cfg.provider.ip.local_udp_port, + nsvc_cfg.provider.ip.signalling_weight, + nsvc_cfg.provider.ip.data_weight)) }; } else if (nsvc_cfg.provider.ip.address_family == AF_INET6) { v6 := v6 & { valueof(ts_SNS_IPv6(nsvc_cfg.provider.ip.local_ip, - nsvc_cfg.provider.ip.local_udp_port)) }; + nsvc_cfg.provider.ip.local_udp_port, + nsvc_cfg.provider.ip.signalling_weight, + nsvc_cfg.provider.ip.data_weight)) }; } } @@ -690,18 +719,66 @@ /* tolerate a late NS-UNBLOCK-ACK from peer */ [] NSCP.receive(t_NS_UNBLOCK_ACK) -> value rf { } + + [not ischosen(g_nsvc_config.provider.ip) or + g_nsvc_config.provider.ip.data_weight > 0] as_alive_unblocked_data(); + + [not ischosen(g_nsvc_config.provider.ip) or + g_nsvc_config.provider.ip.signalling_weight > 0] as_alive_unblocked_sig(); + + /* catch any violations of above rule */ + [ischosen(g_nsvc_config.provider.ip)] NSCP.receive(tr_NS_UNITDATA(?, ?, ?)) -> value rf { + Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, + log2str("Unexpected Rx NS-UNITDATA on NSVC with data_weight=", + g_nsvc_config.provider.ip.data_weight, ", sig_weight=", + g_nsvc_config.provider.ip.signalling_weight, ": ", rf)); + } + [ischosen(g_nsvc_config.provider.ip)] NS_SP.receive(tr_NsUdReq(g_config.nsei, ?, ?, *, *)) -> value ud_req { + Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, + log2str("Unexpected Rx TX-UNITDATA on NSVC with data_weight=", + g_nsvc_config.provider.ip.data_weight, ", sig_weight=", + g_nsvc_config.provider.ip.signalling_weight, ": ", ud_req)); + } + } + + /* user data transfer; only permitted for some NS-VC */ + private altstep as_alive_unblocked_data() runs on NSVC_CT { + var NsUnitdataRequest ud_req; + var PDU_NS rf; /* NS-UNITDATA PDU from network to NS-UNITDATA.ind to user */ - [] NSCP.receive(tr_NS_UNITDATA(?, ?, ?)) -> value rf { + [] NSCP.receive(tr_NS_UNITDATA_User(?, ?)) -> value rf { NS_SP.send(ts_NsUdInd(g_config.nsei, g_nsvc_config.nsvci, oct2int(rf.pDU_NS_Unitdata.bVCI), rf.pDU_NS_Unitdata.nS_SDU)); } /* NS-UNITDATA.req from user to NS-UNITDATA PDU on network */ - [] NS_SP.receive(tr_NsUdReq(g_config.nsei, ?, ?, ?, omit)) -> value ud_req { + [] NS_SP.receive(tr_NsUdReq(g_config.nsei, t_BssgpBvciUser, ?, ?, omit)) -> value ud_req { /* using raw octetstring PDU */ NSCP.send(ts_NS_UNITDATA(t_SduCtrlB, ud_req.bvci, ud_req.sdu)); } - [] NS_SP.receive(tr_NsUdReq(g_config.nsei, ?, ?, omit, ?)) -> value ud_req { + [] NS_SP.receive(tr_NsUdReq(g_config.nsei, t_BssgpBvciUser, ?, omit, ?)) -> value ud_req { + /* using decoded BSSGP PDU that we need to encode first */ + var octetstring enc := enc_PDU_BSSGP(ud_req.bssgp); + NSCP.send(ts_NS_UNITDATA(t_SduCtrlB, ud_req.bvci, enc)); + } + } + + /* signalling (BVCI=0) transfer; only permitted for some NS-VC */ + private altstep as_alive_unblocked_sig() runs on NSVC_CT { + var NsUnitdataRequest ud_req; + var PDU_NS rf; + /* NS-UNITDATA PDU from network to NS-UNITDATA.ind to user */ + [] NSCP.receive(tr_NS_UNITDATA(?, 0, ?)) -> value rf { + NS_SP.send(ts_NsUdInd(g_config.nsei, g_nsvc_config.nsvci, + oct2int(rf.pDU_NS_Unitdata.bVCI), + rf.pDU_NS_Unitdata.nS_SDU)); + } + /* NS-UNITDATA.req from user to NS-UNITDATA PDU on network */ + [] NS_SP.receive(tr_NsUdReq(g_config.nsei, 0, ?, ?, omit)) -> value ud_req { + /* using raw octetstring PDU */ + NSCP.send(ts_NS_UNITDATA(t_SduCtrlB, ud_req.bvci, ud_req.sdu)); + } + [] NS_SP.receive(tr_NsUdReq(g_config.nsei, 0, ?, omit, ?)) -> value ud_req { /* using decoded BSSGP PDU that we need to encode first */ var octetstring enc := enc_PDU_BSSGP(ud_req.bssgp); NSCP.send(ts_NS_UNITDATA(t_SduCtrlB, ud_req.bvci, enc)); diff --git a/library/Osmocom_Gb_Types.ttcn b/library/Osmocom_Gb_Types.ttcn index 9065097..9e4d702 100644 --- a/library/Osmocom_Gb_Types.ttcn +++ b/library/Osmocom_Gb_Types.ttcn @@ -14,6 +14,8 @@ type uint16_t Nsei; type uint16_t BssgpBvci; + template (present) BssgpBvci t_BssgpBvciUser := complement (0); + /* TS 48.016 10.3.7 */ type enumerated NsPduType { NS_PDUT_NS_UNITDATA ('00000000'B), @@ -407,6 +409,14 @@ nS_SDU := sdu } } + template PDU_NS tr_NS_UNITDATA_User(template NS_SDU_ControlBits bits, template octetstring sdu) := { + pDU_NS_Unitdata := { + nsPduType := '00'O, + nS_SDU_ControlBits := bits, + bVCI := complement ('0000'O), + nS_SDU := sdu + } + } diff --git a/pcu/PCU_Tests.cfg b/pcu/PCU_Tests.cfg index 13bedec..dfebb40 100644 --- a/pcu/PCU_Tests.cfg +++ b/pcu/PCU_Tests.cfg @@ -18,7 +18,9 @@ local_ip := "127.0.0.1", local_udp_port := 23000, remote_ip := "127.0.0.1", - remote_udp_port := 22000 + remote_udp_port := 22000, + data_weight := 1, + signalling_weight := 1 } }, nsvci := 1234 @@ -30,7 +32,10 @@ local_ip := "127.0.0.1", local_udp_port := 23001, remote_ip := "127.0.0.1", - remote_udp_port := 22000 + remote_udp_port := 22000, + data_weight := 1, + signalling_weight := 1 + } } }, nsvci := 1234 @@ -42,7 +47,10 @@ local_ip := "127.0.0.1", local_udp_port := 23002, remote_ip := "127.0.0.1", - remote_udp_port := 22000 + remote_udp_port := 22000, + data_weight := 1, + signalling_weight := 1 + } } }, nsvci := 1234 diff --git a/pcu/PCU_Tests_SNS.cfg b/pcu/PCU_Tests_SNS.cfg index ab589c5..c36edac 100644 --- a/pcu/PCU_Tests_SNS.cfg +++ b/pcu/PCU_Tests_SNS.cfg @@ -17,7 +17,9 @@ local_ip := "127.0.0.1", local_udp_port := 23000, remote_ip := "127.0.0.1", - remote_udp_port := 22000 + remote_udp_port := 22000, + data_weight := 1, + signalling_weight := 1 } }, nsvci := 1234 @@ -29,7 +31,9 @@ local_ip := "127.0.0.1", local_udp_port := 23001, remote_ip := "127.0.0.1", - remote_udp_port := 22000 + remote_udp_port := 22000, + data_weight := 1, + signalling_weight := 1 } }, nsvci := 1234 @@ -41,7 +45,9 @@ local_ip := "127.0.0.1", local_udp_port := 23002, remote_ip := "127.0.0.1", - remote_udp_port := 22000 + remote_udp_port := 22000, + data_weight := 1, + signalling_weight := 1 } }, nsvci := 1234 diff --git a/pcu/PCU_Tests_SNSv6.cfg b/pcu/PCU_Tests_SNSv6.cfg index cae9a75..3747f0a 100644 --- a/pcu/PCU_Tests_SNSv6.cfg +++ b/pcu/PCU_Tests_SNSv6.cfg @@ -18,6 +18,8 @@ local_udp_port := 23000, remote_ip := "::1", remote_udp_port := 22000, + data_weight := 1, + signalling_weight := 1 } }, nsvci := 1234 diff --git a/sgsn/SGSN_Tests.ttcn b/sgsn/SGSN_Tests.ttcn index fe31ffc..7d47a1f 100644 --- a/sgsn/SGSN_Tests.ttcn +++ b/sgsn/SGSN_Tests.ttcn @@ -80,7 +80,9 @@ local_udp_port := 21010, local_ip := "127.0.0.1", remote_udp_port := 23000, - remote_ip := "127.0.0.1" + remote_ip := "127.0.0.1", + data_weight := 1, + signalling_weight := 1 } }, nsvci := 97 @@ -99,7 +101,9 @@ local_udp_port := 21011, local_ip := "127.0.0.1", remote_udp_port := 23000, - remote_ip := "127.0.0.1" + remote_ip := "127.0.0.1", + data_weight := 1, + signalling_weight := 1 } }, nsvci := 98 @@ -118,7 +122,9 @@ local_udp_port := 21012, local_ip := "127.0.0.1", remote_udp_port := 23000, - remote_ip := "127.0.0.1" + remote_ip := "127.0.0.1", + data_weight := 1, + signalling_weight := 1 } }, nsvci := 99 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22305 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I9798e639b4bc8658482945970775b012b5840779 Gerrit-Change-Number: 22305 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 21 09:42:48 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 21 Jan 2021 09:42:48 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Use separate NS-VC for data / signalling on SGSN side In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22306 ) Change subject: gbproxy: Use separate NS-VC for data / signalling on SGSN side ...................................................................... gbproxy: Use separate NS-VC for data / signalling on SGSN side As we know, many production deployments have SGSN architectures with clear control / user plane split. In such situations, IP-SNS of the SGSN informs us of two (classes of) IP endpoints: some that have control_weight > 0 and data_weight 0 some that have control_weight 0 and data_weight > 0 Let's adjust the GBProxy_Tests.ttcn to use such a configuration for each of the two simulated SGSNs. Change-Id: If0e404bdf2c30a5e18748695608611be83f61109 Closes: OS#4953 --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 28 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified daniel: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index e1d2e59..e3e61f4 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -68,11 +68,24 @@ local_ip := "127.0.0.10", remote_udp_port := 23000, remote_ip := "127.0.0.1", - data_weight := 1, + data_weight := 0, signalling_weight := 1 } }, nsvci := 101 + }, { + provider := { + ip := { + address_family := AF_INET, + local_udp_port := 7770, + local_ip := "127.0.0.10", + remote_udp_port := 23000, + remote_ip := "127.0.0.1", + data_weight := 1, + signalling_weight := 0 + } + }, + nsvci := 201 } } @@ -89,11 +102,24 @@ local_ip := "127.0.0.11", remote_udp_port := 23000, remote_ip := "127.0.0.1", - data_weight := 1, + data_weight := 0, signalling_weight := 1 } }, nsvci := 102 + }, { + provider := { + ip := { + address_family := AF_INET, + local_udp_port := 8880, + local_ip := "127.0.0.11", + remote_udp_port := 23000, + remote_ip := "127.0.0.1", + data_weight := 1, + signalling_weight := 0 + } + }, + nsvci := 202 } } } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22306 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If0e404bdf2c30a5e18748695608611be83f61109 Gerrit-Change-Number: 22306 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 21 09:43:10 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 21 Jan 2021 09:43:10 +0000 Subject: Change in docker-playground[master]: gbproxy, pcu, sgsn: Update config files In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22307 ) Change subject: gbproxy,pcu,sgsn: Update config files ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22307 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Ic607b3edc3bf724a8b2dbd6be8c806002c229509 Gerrit-Change-Number: 22307 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 21 Jan 2021 09:43:10 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 21 09:43:18 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 21 Jan 2021 09:43:18 +0000 Subject: Change in docker-playground[master]: gbproxy: Use separate NS-VC for data + signaling In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22308 ) Change subject: gbproxy: Use separate NS-VC for data + signaling ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22308 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I58f8a6d1c8d01551d366bd7d0dbfb892cce512ae Gerrit-Change-Number: 22308 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 21 Jan 2021 09:43:18 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 21 09:43:20 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 21 Jan 2021 09:43:20 +0000 Subject: Change in docker-playground[master]: gbproxy, pcu, sgsn: Update config files In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22307 ) Change subject: gbproxy,pcu,sgsn: Update config files ...................................................................... gbproxy,pcu,sgsn: Update config files In upstream I9798e639b4bc8658482945970775b012b5840779 we introduce two additional fields per NSVC (data_weight, signalling_weight). Make sure those are specified everywhere. Related: OS#4953 Requires: osmo-ttcn3-hacks.git I9798e639b4bc8658482945970775b012b5840779 Change-Id: Ic607b3edc3bf724a8b2dbd6be8c806002c229509 --- M ttcn3-gbproxy-test-fr/GBProxy_Tests.cfg M ttcn3-gbproxy-test/GBProxy_Tests.cfg M ttcn3-pcu-test/PCU_Tests.cfg M ttcn3-pcu-test/sns/PCU_Tests.cfg M ttcn3-sgsn-test/SGSN_Tests.cfg 5 files changed, 36 insertions(+), 12 deletions(-) Approvals: laforge: Looks good to me, approved; Verified pespin: Looks good to me, but someone else must approve diff --git a/ttcn3-gbproxy-test-fr/GBProxy_Tests.cfg b/ttcn3-gbproxy-test-fr/GBProxy_Tests.cfg index ce4c698..146d1e4 100644 --- a/ttcn3-gbproxy-test-fr/GBProxy_Tests.cfg +++ b/ttcn3-gbproxy-test-fr/GBProxy_Tests.cfg @@ -23,7 +23,9 @@ address_family := AF_INET, local_ip := "172.18.25.103", local_udp_port := 23000, - remote_ip := "172.18.25.10" + remote_ip := "172.18.25.10", + data_weight := 1, + signalling_weight := 1 } } } @@ -37,7 +39,9 @@ address_family := AF_INET, local_ip := "172.18.25.103", local_udp_port := 24000, - remote_ip := "172.18.25.10" + remote_ip := "172.18.25.10", + data_weight := 1, + signalling_weight := 1 } } } diff --git a/ttcn3-gbproxy-test/GBProxy_Tests.cfg b/ttcn3-gbproxy-test/GBProxy_Tests.cfg index e19084a..89f4fa7 100644 --- a/ttcn3-gbproxy-test/GBProxy_Tests.cfg +++ b/ttcn3-gbproxy-test/GBProxy_Tests.cfg @@ -22,7 +22,9 @@ address_family := AF_INET, local_ip := "172.18.24.103", local_udp_port := 23000, - remote_ip := "172.18.24.10" + remote_ip := "172.18.24.10", + data_weight := 1, + signalling_weight := 1 } } } @@ -36,7 +38,9 @@ address_family := AF_INET, local_ip := "172.18.24.103", local_udp_port := 24000, - remote_ip := "172.18.24.10" + remote_ip := "172.18.24.10", + data_weight := 1, + signalling_weight := 1 } } } @@ -51,7 +55,9 @@ ip := { address_family := AF_INET, local_ip := "172.18.24.103", - remote_ip := "172.18.24.10" + remote_ip := "172.18.24.10", + data_weight := 1, + signalling_weight := 1 } } } @@ -63,7 +69,9 @@ ip := { address_family := AF_INET, local_ip := "172.18.24.103", - remote_ip := "172.18.24.10" + remote_ip := "172.18.24.10", + data_weight := 1, + signalling_weight := 1 } } } @@ -75,7 +83,9 @@ ip := { address_family := AF_INET, local_ip := "172.18.24.103", - remote_ip := "172.18.24.10" + remote_ip := "172.18.24.10", + data_weight := 1, + signalling_weight := 1 } } } diff --git a/ttcn3-pcu-test/PCU_Tests.cfg b/ttcn3-pcu-test/PCU_Tests.cfg index 9e69f86..89ed220 100644 --- a/ttcn3-pcu-test/PCU_Tests.cfg +++ b/ttcn3-pcu-test/PCU_Tests.cfg @@ -25,7 +25,9 @@ local_ip := "172.18.13.10", local_udp_port := 23000, remote_ip := "172.18.13.101", - remote_udp_port := 23000 + remote_udp_port := 23000, + data_weight := 1, + signalling_weight := 1 } }, nsvci := 1234 diff --git a/ttcn3-pcu-test/sns/PCU_Tests.cfg b/ttcn3-pcu-test/sns/PCU_Tests.cfg index c6af8a6..7efb2cb 100644 --- a/ttcn3-pcu-test/sns/PCU_Tests.cfg +++ b/ttcn3-pcu-test/sns/PCU_Tests.cfg @@ -18,7 +18,9 @@ local_ip := "172.18.14.10", local_udp_port := 23000, remote_ip := "172.18.14.101", - remote_udp_port := 23000 + remote_udp_port := 23000, + data_weight := 1, + signalling_weight := 1 } }, nsvci := 1234 diff --git a/ttcn3-sgsn-test/SGSN_Tests.cfg b/ttcn3-sgsn-test/SGSN_Tests.cfg index b77fffd..b127dd8 100644 --- a/ttcn3-sgsn-test/SGSN_Tests.cfg +++ b/ttcn3-sgsn-test/SGSN_Tests.cfg @@ -20,7 +20,9 @@ ip := { address_family := AF_INET, local_ip := "172.18.8.103", - remote_ip := "172.18.8.10" + remote_ip := "172.18.8.10", + data_weight := 1, + signalling_weight := 1 } } } @@ -33,7 +35,9 @@ ip := { address_family := AF_INET, local_ip := "172.18.8.103", - remote_ip := "172.18.8.10" + remote_ip := "172.18.8.10", + data_weight := 1, + signalling_weight := 1 } } } @@ -46,7 +50,9 @@ ip := { address_family := AF_INET, local_ip := "172.18.8.103", - remote_ip := "172.18.8.10" + remote_ip := "172.18.8.10", + data_weight := 1, + signalling_weight := 1 } } } -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22307 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Ic607b3edc3bf724a8b2dbd6be8c806002c229509 Gerrit-Change-Number: 22307 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 21 09:43:20 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 21 Jan 2021 09:43:20 +0000 Subject: Change in docker-playground[master]: gbproxy: Use separate NS-VC for data + signaling In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22308 ) Change subject: gbproxy: Use separate NS-VC for data + signaling ...................................................................... gbproxy: Use separate NS-VC for data + signaling This follows the change implemented in osmo-ttcn3-hacks.git If0e404bdf2c30a5e18748695608611be83f61109 to use data-only and signalling-only NS-VCs on the SGSN side Change-Id: I58f8a6d1c8d01551d366bd7d0dbfb892cce512ae Requires: osmo-ttcn3-hacks.git If0e404bdf2c30a5e18748695608611be83f61109 Related: OS#4953 --- M ttcn3-gbproxy-test-fr/GBProxy_Tests.cfg M ttcn3-gbproxy-test/GBProxy_Tests.cfg 2 files changed, 44 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved; Verified pespin: Looks good to me, but someone else must approve diff --git a/ttcn3-gbproxy-test-fr/GBProxy_Tests.cfg b/ttcn3-gbproxy-test-fr/GBProxy_Tests.cfg index 146d1e4..8a95e2e 100644 --- a/ttcn3-gbproxy-test-fr/GBProxy_Tests.cfg +++ b/ttcn3-gbproxy-test-fr/GBProxy_Tests.cfg @@ -25,6 +25,17 @@ local_udp_port := 23000, remote_ip := "172.18.25.10", data_weight := 1, + signalling_weight := 0 + } + } + }, { + provider := { + ip := { + address_family := AF_INET, + local_ip := "172.18.25.103", + local_udp_port := 23000, + remote_ip := "172.18.25.10", + data_weight := 0, signalling_weight := 1 } } @@ -41,6 +52,17 @@ local_udp_port := 24000, remote_ip := "172.18.25.10", data_weight := 1, + signalling_weight := 0 + } + } + }, { + provider := { + ip := { + address_family := AF_INET, + local_ip := "172.18.25.103", + local_udp_port := 24000, + remote_ip := "172.18.25.10", + data_weight := 0, signalling_weight := 1 } } diff --git a/ttcn3-gbproxy-test/GBProxy_Tests.cfg b/ttcn3-gbproxy-test/GBProxy_Tests.cfg index 89f4fa7..8638586 100644 --- a/ttcn3-gbproxy-test/GBProxy_Tests.cfg +++ b/ttcn3-gbproxy-test/GBProxy_Tests.cfg @@ -24,6 +24,17 @@ local_udp_port := 23000, remote_ip := "172.18.24.10", data_weight := 1, + signalling_weight := 0 + } + } + }, { + provider := { + ip := { + address_family := AF_INET, + local_ip := "172.18.24.103", + local_udp_port := 23000, + remote_ip := "172.18.24.10", + data_weight := 0, signalling_weight := 1 } } @@ -40,6 +51,17 @@ local_udp_port := 24000, remote_ip := "172.18.24.10", data_weight := 1, + signalling_weight := 0 + } + } + }, { + provider := { + ip := { + address_family := AF_INET, + local_ip := "172.18.24.103", + local_udp_port := 24000, + remote_ip := "172.18.24.10", + data_weight := 0, signalling_weight := 1 } } -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22308 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I58f8a6d1c8d01551d366bd7d0dbfb892cce512ae Gerrit-Change-Number: 22308 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 21 09:47:36 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 21 Jan 2021 09:47:36 +0000 Subject: Change in osmo-ci[master]: Cosmetic: jobs/obs: update repo-install-test name References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/22353 ) Change subject: Cosmetic: jobs/obs: update repo-install-test name ...................................................................... Cosmetic: jobs/obs: update repo-install-test name Change-Id: Ic5712173ec79d286fb3591364636a38f6af74503 --- M jobs/osmocom-obs.yml 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/53/22353/1 diff --git a/jobs/osmocom-obs.yml b/jobs/osmocom-obs.yml index 8152d63..4d165d6 100644 --- a/jobs/osmocom-obs.yml +++ b/jobs/osmocom-obs.yml @@ -36,7 +36,7 @@ git-config-name: 'Jenkins Builder' git-config-email: 'jenkins at osmocom.org' triggers: - - timed: "H 00 * * *" # run before osmocom-debian-install.yml + - timed: "H 00 * * *" # run before repo-install-test.yml publishers: - email: -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22353 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ic5712173ec79d286fb3591364636a38f6af74503 Gerrit-Change-Number: 22353 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 21 09:47:37 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 21 Jan 2021 09:47:37 +0000 Subject: Change in osmo-ci[master]: jobs/repo-install-test: run a few hours later References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/22354 ) Change subject: jobs/repo-install-test: run a few hours later ...................................................................... jobs/repo-install-test: run a few hours later Give OBS more time to build the repository, before verifying that we can install all packages from the repository. Apparently, OBS publishes the repository in WIP state, before all packages for a distribution have been built. This leads to problems in the "nightly" and "next" repositories. In contrary to "latest", we do not bump soname versions when doing ABI changes, so we require the user to have all installed Osmocom packages built from the same timestamp. With recent changes in the OBS scripts, we enforce this by having all packages built from the same timestamp depend on the exact version of a dummy package with that timestamp as version. The repo-install-test installs all packages from the binary repository, and so it fails, as it should, if the repository is in an inconsistent state with some packages built today and some packages built yesterday. Related: OS#4733 Change-Id: I8df9b449d6213b5dca6fd9bf5c06b5c96d468f66 --- M jobs/repo-install-test.yml 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/54/22354/1 diff --git a/jobs/repo-install-test.yml b/jobs/repo-install-test.yml index d16b852..2c26490 100644 --- a/jobs/repo-install-test.yml +++ b/jobs/repo-install-test.yml @@ -59,7 +59,7 @@ git-config-name: 'Jenkins Builder' git-config-email: 'jenkins at osmocom.org' triggers: - - timed: "H 04 * * *" # run after osmocom-obs.yml + - timed: "H 10 * * *" # run after osmocom-obs.yml publishers: - email: -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22354 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I8df9b449d6213b5dca6fd9bf5c06b5c96d468f66 Gerrit-Change-Number: 22354 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 21 09:50:42 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 21 Jan 2021 09:50:42 +0000 Subject: Change in osmo-ci[master]: Cosmetic: jobs/obs: update repo-install-test name In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22353 ) Change subject: Cosmetic: jobs/obs: update repo-install-test name ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22353 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ic5712173ec79d286fb3591364636a38f6af74503 Gerrit-Change-Number: 22353 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 21 Jan 2021 09:50:42 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 21 09:52:41 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 21 Jan 2021 09:52:41 +0000 Subject: Change in osmo-ci[master]: jobs/repo-install-test: run a few hours later In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22354 ) Change subject: jobs/repo-install-test: run a few hours later ...................................................................... Patch Set 1: Verified+1 Nightly failing with some packages from yesterday and some from today: https://jenkins.osmocom.org/jenkins/job/Osmocom-repo-install-debian/feed=nightly,label=build2-deb9build-ansible/248/console The following packages have unmet dependencies: libosmo-netif-doc : Depends: osmocom-nightly (= 1.0.0.202101210126) but 1.0.0.202101200126 is to be installed libosmo-sigtran-doc : Depends: osmocom-nightly (= 1.0.0.202101210126) but 1.0.0.202101200126 is to be installed libosmocodec-doc : Depends: osmocom-nightly (= 1.0.0.202101210126) but 1.0.0.202101200126 is to be installed libosmocoding-doc : Depends: osmocom-nightly (= 1.0.0.202101210126) but 1.0.0.202101200126 is to be installed libosmocore-doc : Depends: osmocom-nightly (= 1.0.0.202101210126) but 1.0.0.202101200126 is to be installed libosmoctrl-doc : Depends: osmocom-nightly (= 1.0.0.202101210126) but 1.0.0.202101200126 is to be installed ... Then running the job later, succeeding: https://jenkins.osmocom.org/jenkins/job/Osmocom-repo-install-debian/feed=nightly,label=build2-deb9build-ansible/249/console -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22354 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I8df9b449d6213b5dca6fd9bf5c06b5c96d468f66 Gerrit-Change-Number: 22354 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 21 Jan 2021 09:52:41 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 21 10:50:53 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 21 Jan 2021 10:50:53 +0000 Subject: Change in libosmocore[master]: configure.ac: set -std=gnu89 References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22355 ) Change subject: configure.ac: set -std=gnu89 ...................................................................... configure.ac: set -std=gnu89 Avoid using different dialects by accident (and resulting compiler errors if compiler assumes a different dialect), like in I72310886bef4db635078b75715c9d98ee45391cc. Related: https://lists.osmocom.org/pipermail/openbsc/2019-September/013030.html Related: osmo-pcu Ia57ba101627e3cc0babeca82631e207a3e2e0960 Change-Id: Id79b13d3c498acb565f91eba650328fccb5a13ef --- M configure.ac 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/55/22355/1 diff --git a/configure.ac b/configure.ac index 32ea7ca..e8b8582 100644 --- a/configure.ac +++ b/configure.ac @@ -8,6 +8,8 @@ AM_INIT_AUTOMAKE([foreign dist-bzip2 no-dist-gzip 1.6 subdir-objects]) AC_CONFIG_TESTDIR(tests) +CFLAGS="$CFLAGS -std=gnu89" + dnl kernel style compile messages m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22355 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Id79b13d3c498acb565f91eba650328fccb5a13ef Gerrit-Change-Number: 22355 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 21 11:00:37 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 21 Jan 2021 11:00:37 +0000 Subject: Change in libosmocore[master]: tests/*: fix control reaches end of non-void func References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22356 ) Change subject: tests/*: fix control reaches end of non-void func ...................................................................... tests/*: fix control reaches end of non-void func Prepare to set -std=gnu89 in a future commit, which will cause gcc warn about "control reaches end of non-void function" in main(). Change-Id: I7c33cac30e5859060f083813d8433011f5eaf0d0 --- M tests/i460_mux/i460_mux_test.c M tests/it_q/it_q_test.c 2 files changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/56/22356/1 diff --git a/tests/i460_mux/i460_mux_test.c b/tests/i460_mux/i460_mux_test.c index 9d5fcf7..7695cb4 100644 --- a/tests/i460_mux/i460_mux_test.c +++ b/tests/i460_mux/i460_mux_test.c @@ -395,4 +395,5 @@ test_16k_subchan(); test_8k_subchan(); test_unused_subchan(); + return 0; } diff --git a/tests/it_q/it_q_test.c b/tests/it_q/it_q_test.c index 0d75452..28e32d8 100644 --- a/tests/it_q/it_q_test.c +++ b/tests/it_q/it_q_test.c @@ -116,4 +116,5 @@ tc_alloc(); tc_queue_length(); tc_eventfd(); + return 0; } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22356 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I7c33cac30e5859060f083813d8433011f5eaf0d0 Gerrit-Change-Number: 22356 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 21 11:23:47 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 21 Jan 2021 11:23:47 +0000 Subject: Change in osmo-ci[master]: Cosmetic: jobs/obs: update repo-install-test name In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22353 ) Change subject: Cosmetic: jobs/obs: update repo-install-test name ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22353 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ic5712173ec79d286fb3591364636a38f6af74503 Gerrit-Change-Number: 22353 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 21 Jan 2021 11:23:47 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 21 11:24:22 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 21 Jan 2021 11:24:22 +0000 Subject: Change in osmo-ci[master]: jobs/repo-install-test: run a few hours later In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22354 ) Change subject: jobs/repo-install-test: run a few hours later ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22354 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I8df9b449d6213b5dca6fd9bf5c06b5c96d468f66 Gerrit-Change-Number: 22354 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 21 Jan 2021 11:24:22 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 21 11:24:26 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 21 Jan 2021 11:24:26 +0000 Subject: Change in osmo-ci[master]: jobs/repo-install-test: run a few hours later In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22354 ) Change subject: jobs/repo-install-test: run a few hours later ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22354 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I8df9b449d6213b5dca6fd9bf5c06b5c96d468f66 Gerrit-Change-Number: 22354 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 21 Jan 2021 11:24:26 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 21 11:25:20 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 21 Jan 2021 11:25:20 +0000 Subject: Change in libosmocore[master]: configure.ac: set -std=gnu89 In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22355 ) Change subject: configure.ac: set -std=gnu89 ...................................................................... Patch Set 2: I'm looking into why it fails to build for arm now. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22355 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Id79b13d3c498acb565f91eba650328fccb5a13ef Gerrit-Change-Number: 22355 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Thu, 21 Jan 2021 11:25:20 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 21 11:27:27 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 21 Jan 2021 11:27:27 +0000 Subject: Change in libosmocore[master]: tests/*: fix control reaches end of non-void func In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22356 ) Change subject: tests/*: fix control reaches end of non-void func ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22356 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I7c33cac30e5859060f083813d8433011f5eaf0d0 Gerrit-Change-Number: 22356 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 21 Jan 2021 11:27:27 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 21 11:48:55 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 21 Jan 2021 11:48:55 +0000 Subject: Change in libosmocore[master]: Revert "gprs_ns2_vc_fsm: check NSVCI match the NSE" References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22357 ) Change subject: Revert "gprs_ns2_vc_fsm: check NSVCI match the NSE" ...................................................................... Revert "gprs_ns2_vc_fsm: check NSVCI match the NSE" This reverts commit 9c1e04e5802dfa25fcab3ca2c947897a1b7e7485. Related: OS#4965 Change-Id: Ic26e6ee8c225266dc31850e38976460cb0e81ebd --- M src/gb/gprs_ns2_vc_fsm.c 1 file changed, 2 insertions(+), 14 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/57/22357/1 diff --git a/src/gb/gprs_ns2_vc_fsm.c b/src/gb/gprs_ns2_vc_fsm.c index d4f4320..3ec6909 100644 --- a/src/gb/gprs_ns2_vc_fsm.c +++ b/src/gb/gprs_ns2_vc_fsm.c @@ -750,10 +750,11 @@ struct osmo_fsm_inst *fi = nsvc->fi; int rc = 0; uint8_t cause; - uint16_t nsei, nsvci; + uint16_t nsei; /* TODO: 7.2: on UNBLOCK/BLOCK: check if NS-VCI is correct, * if not answer STATUS with "NS-VC unknown" */ + /* TODO: handle RESET with different VCI */ /* TODO: handle BLOCK/UNBLOCK/ALIVE with different VCI */ if (gprs_ns2_validate(nsvc, nsh->pdu_type, msg, tp, &cause)) { @@ -776,19 +777,6 @@ } } - if (nsvc->nsvci_is_valid && TLVP_PRESENT(tp, NS_IE_VCI)) { - nsvci = tlvp_val16be(tp, NS_IE_VCI); - if (nsvci != nsvc->nsvci) { - /* 48.016 ? 7.3.1 send RESET_ACK to wrong NSVCI + ignore */ - if (nsh->pdu_type == NS_PDUT_RESET) - ns2_tx_reset_ack(nsvc); - - LOGNSVC(nsvc, LOGL_ERROR, "Rx %s with wrong NSVCI=%05u. Ignoring PDU.\n", - get_value_string(gprs_ns_pdu_strings, nsh->pdu_type), nsvci); - goto out; - } - } - switch (nsh->pdu_type) { case NS_PDUT_RESET: osmo_fsm_inst_dispatch(fi, GPRS_NS2_EV_RX_RESET, tp); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22357 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic26e6ee8c225266dc31850e38976460cb0e81ebd Gerrit-Change-Number: 22357 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 21 11:48:56 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 21 Jan 2021 11:48:56 +0000 Subject: Change in libosmocore[master]: Revert "gprs_ns2_vc_fsm: check NSEI match the NSE" References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22358 ) Change subject: Revert "gprs_ns2_vc_fsm: check NSEI match the NSE" ...................................................................... Revert "gprs_ns2_vc_fsm: check NSEI match the NSE" This reverts commit 842599ca6252b9d65504fbe55148c6aad86f7025. Closes: OS#4965 Change-Id: I96882961e179bb63e3f4095571135244148dde20 --- M src/gb/gprs_ns2_vc_fsm.c 1 file changed, 0 insertions(+), 14 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/58/22358/1 diff --git a/src/gb/gprs_ns2_vc_fsm.c b/src/gb/gprs_ns2_vc_fsm.c index 3ec6909..fc2a86a 100644 --- a/src/gb/gprs_ns2_vc_fsm.c +++ b/src/gb/gprs_ns2_vc_fsm.c @@ -750,7 +750,6 @@ struct osmo_fsm_inst *fi = nsvc->fi; int rc = 0; uint8_t cause; - uint16_t nsei; /* TODO: 7.2: on UNBLOCK/BLOCK: check if NS-VCI is correct, * if not answer STATUS with "NS-VC unknown" */ @@ -764,19 +763,6 @@ } } - if (TLVP_PRESENT(tp, NS_IE_NSEI)) { - nsei = tlvp_val16be(tp, NS_IE_NSEI); - if (nsei != nsvc->nse->nsei) { - /* 48.016 ? 7.3.1 send, RESET_ACK to wrong NSVCI + ignore */ - if (nsh->pdu_type == NS_PDUT_RESET) - ns2_tx_reset_ack(nsvc); - - LOGNSVC(nsvc, LOGL_ERROR, "Rx %s with wrong NSEI=%05u. Ignoring PDU.\n", - get_value_string(gprs_ns_pdu_strings, nsh->pdu_type), nsei); - goto out; - } - } - switch (nsh->pdu_type) { case NS_PDUT_RESET: osmo_fsm_inst_dispatch(fi, GPRS_NS2_EV_RX_RESET, tp); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22358 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I96882961e179bb63e3f4095571135244148dde20 Gerrit-Change-Number: 22358 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 21 11:50:52 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 21 Jan 2021 11:50:52 +0000 Subject: Change in libosmocore[master]: Revert "gprs_ns2_vc_fsm: check NSVCI match the NSE" In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22357 ) Change subject: Revert "gprs_ns2_vc_fsm: check NSVCI match the NSE" ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22357 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic26e6ee8c225266dc31850e38976460cb0e81ebd Gerrit-Change-Number: 22357 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Thu, 21 Jan 2021 11:50:52 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 21 11:51:11 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 21 Jan 2021 11:51:11 +0000 Subject: Change in libosmocore[master]: Revert "gprs_ns2_vc_fsm: check NSEI match the NSE" In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22358 ) Change subject: Revert "gprs_ns2_vc_fsm: check NSEI match the NSE" ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22358 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I96882961e179bb63e3f4095571135244148dde20 Gerrit-Change-Number: 22358 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Thu, 21 Jan 2021 11:51:11 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 21 11:55:38 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 21 Jan 2021 11:55:38 +0000 Subject: Change in libosmocore[master]: Revert "gprs_ns2_vc_fsm: check NSVCI match the NSE" In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22357 ) Change subject: Revert "gprs_ns2_vc_fsm: check NSVCI match the NSE" ...................................................................... Revert "gprs_ns2_vc_fsm: check NSVCI match the NSE" This reverts commit 9c1e04e5802dfa25fcab3ca2c947897a1b7e7485. Related: OS#4965 Change-Id: Ic26e6ee8c225266dc31850e38976460cb0e81ebd --- M src/gb/gprs_ns2_vc_fsm.c 1 file changed, 2 insertions(+), 14 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/gb/gprs_ns2_vc_fsm.c b/src/gb/gprs_ns2_vc_fsm.c index d4f4320..3ec6909 100644 --- a/src/gb/gprs_ns2_vc_fsm.c +++ b/src/gb/gprs_ns2_vc_fsm.c @@ -750,10 +750,11 @@ struct osmo_fsm_inst *fi = nsvc->fi; int rc = 0; uint8_t cause; - uint16_t nsei, nsvci; + uint16_t nsei; /* TODO: 7.2: on UNBLOCK/BLOCK: check if NS-VCI is correct, * if not answer STATUS with "NS-VC unknown" */ + /* TODO: handle RESET with different VCI */ /* TODO: handle BLOCK/UNBLOCK/ALIVE with different VCI */ if (gprs_ns2_validate(nsvc, nsh->pdu_type, msg, tp, &cause)) { @@ -776,19 +777,6 @@ } } - if (nsvc->nsvci_is_valid && TLVP_PRESENT(tp, NS_IE_VCI)) { - nsvci = tlvp_val16be(tp, NS_IE_VCI); - if (nsvci != nsvc->nsvci) { - /* 48.016 ? 7.3.1 send RESET_ACK to wrong NSVCI + ignore */ - if (nsh->pdu_type == NS_PDUT_RESET) - ns2_tx_reset_ack(nsvc); - - LOGNSVC(nsvc, LOGL_ERROR, "Rx %s with wrong NSVCI=%05u. Ignoring PDU.\n", - get_value_string(gprs_ns_pdu_strings, nsh->pdu_type), nsvci); - goto out; - } - } - switch (nsh->pdu_type) { case NS_PDUT_RESET: osmo_fsm_inst_dispatch(fi, GPRS_NS2_EV_RX_RESET, tp); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22357 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic26e6ee8c225266dc31850e38976460cb0e81ebd Gerrit-Change-Number: 22357 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 21 11:55:39 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 21 Jan 2021 11:55:39 +0000 Subject: Change in libosmocore[master]: Revert "gprs_ns2_vc_fsm: check NSEI match the NSE" In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22358 ) Change subject: Revert "gprs_ns2_vc_fsm: check NSEI match the NSE" ...................................................................... Revert "gprs_ns2_vc_fsm: check NSEI match the NSE" This reverts commit 842599ca6252b9d65504fbe55148c6aad86f7025. Closes: OS#4965 Change-Id: I96882961e179bb63e3f4095571135244148dde20 --- M src/gb/gprs_ns2_vc_fsm.c 1 file changed, 0 insertions(+), 14 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/gb/gprs_ns2_vc_fsm.c b/src/gb/gprs_ns2_vc_fsm.c index 3ec6909..fc2a86a 100644 --- a/src/gb/gprs_ns2_vc_fsm.c +++ b/src/gb/gprs_ns2_vc_fsm.c @@ -750,7 +750,6 @@ struct osmo_fsm_inst *fi = nsvc->fi; int rc = 0; uint8_t cause; - uint16_t nsei; /* TODO: 7.2: on UNBLOCK/BLOCK: check if NS-VCI is correct, * if not answer STATUS with "NS-VC unknown" */ @@ -764,19 +763,6 @@ } } - if (TLVP_PRESENT(tp, NS_IE_NSEI)) { - nsei = tlvp_val16be(tp, NS_IE_NSEI); - if (nsei != nsvc->nse->nsei) { - /* 48.016 ? 7.3.1 send, RESET_ACK to wrong NSVCI + ignore */ - if (nsh->pdu_type == NS_PDUT_RESET) - ns2_tx_reset_ack(nsvc); - - LOGNSVC(nsvc, LOGL_ERROR, "Rx %s with wrong NSEI=%05u. Ignoring PDU.\n", - get_value_string(gprs_ns_pdu_strings, nsh->pdu_type), nsei); - goto out; - } - } - switch (nsh->pdu_type) { case NS_PDUT_RESET: osmo_fsm_inst_dispatch(fi, GPRS_NS2_EV_RX_RESET, tp); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22358 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I96882961e179bb63e3f4095571135244148dde20 Gerrit-Change-Number: 22358 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 21 12:09:37 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 21 Jan 2021 12:09:37 +0000 Subject: Change in libosmocore[master]: configure.ac: set -std=gnu89 In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22355 ) Change subject: configure.ac: set -std=gnu89 ...................................................................... Patch Set 2: > Patch Set 2: > > Just in case you didn't see it, there was also a recent thread about it in ML: > > https://lists.osmocom.org/pipermail/openbsc/2021-January/013360.html > > I think it probably makes sense to keep an older std for libosmocore since it's morprobable to have that in embedded systems which may lack proper/updated C compiler. Thanks, I didn't see this thread. Adding lynxis as reviewer. lynxis recommended c99 in the thread. Personally I don't have a strong opinion on which standard to use, but I would welcome if we do decide on one, at least for the purpose to avoid build failures on OBS. Right now we are enforcing gnu89 indirectly by correcting whenever debian 8 fails to build on OBS, which has it set as default, and we do have gnu89 set as standard in osmo-pcu already (see related patch). -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22355 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Id79b13d3c498acb565f91eba650328fccb5a13ef Gerrit-Change-Number: 22355 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-CC: lynxis lazus Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 21 Jan 2021 12:09:37 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 21 12:13:42 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 21 Jan 2021 12:13:42 +0000 Subject: Change in libosmocore[master]: tests/*: fix control reaches end of non-void func In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22356 ) Change subject: tests/*: fix control reaches end of non-void func ...................................................................... tests/*: fix control reaches end of non-void func Prepare to set -std=gnu89 in a future commit, which will cause gcc warn about "control reaches end of non-void function" in main(). Change-Id: I7c33cac30e5859060f083813d8433011f5eaf0d0 --- M tests/i460_mux/i460_mux_test.c M tests/it_q/it_q_test.c 2 files changed, 2 insertions(+), 0 deletions(-) Approvals: pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/tests/i460_mux/i460_mux_test.c b/tests/i460_mux/i460_mux_test.c index 9d5fcf7..7695cb4 100644 --- a/tests/i460_mux/i460_mux_test.c +++ b/tests/i460_mux/i460_mux_test.c @@ -395,4 +395,5 @@ test_16k_subchan(); test_8k_subchan(); test_unused_subchan(); + return 0; } diff --git a/tests/it_q/it_q_test.c b/tests/it_q/it_q_test.c index 0d75452..28e32d8 100644 --- a/tests/it_q/it_q_test.c +++ b/tests/it_q/it_q_test.c @@ -116,4 +116,5 @@ tc_alloc(); tc_queue_length(); tc_eventfd(); + return 0; } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22356 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I7c33cac30e5859060f083813d8433011f5eaf0d0 Gerrit-Change-Number: 22356 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Thu Jan 21 12:47:34 2021 From: admin at opensuse.org (OBS Notification) Date: Thu, 21 Jan 2021 12:47:34 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.10/x86_64 In-Reply-To: References: Message-ID: <600978043d882_5172adeb84245fc3579c1@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/xUbuntu_20.10/x86_64 Package network:osmocom:nightly/simtrace2 failed to build in xUbuntu_20.10/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 165s] [COMPILING apps/dfu/main.c] [ 165s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 165s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 165s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 165s] Memory region Used Size Region Size %age Used [ 165s] rom: 16580 B 16 KB 101.20% [ 165s] ram: 11672 B 48 KB 23.75/usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 165s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 165s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 165s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 165s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 165s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 165s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 196 bytes [ 165s] collect2: error: ld returned 1 exit status [ 165s] % [ 165s] make[2]: *** [Makefile:234: flash] Error 1 [ 165s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 165s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 165s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 165s] dh_auto_build: error: make -j1 returned exit code 2 [ 165s] make: *** [debian/rules:16: build] Error 25 [ 165s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 165s] ### VM INTERACTION START ### [ 169s] [ 155.484005] sysrq: Power Off [ 169s] [ 155.491003] reboot: Power down [ 169s] ### VM INTERACTION END ### [ 169s] [ 169s] lamb11 failed "build simtrace2_0.7.0.69.aadd.dsc" at Thu Jan 21 12:47:26 UTC 2021. [ 169s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Thu Jan 21 12:49:47 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 21 Jan 2021 12:49:47 +0000 Subject: Change in libosmocore[master]: configure.ac: set -std=gnu89 In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22355 ) Change subject: configure.ac: set -std=gnu89 ...................................................................... Patch Set 3: I think C99 with GNU extensions (gnu99) is a good choice today. C89 would really only matter if we'd be intrested in supporting super ancient compiler versions. We use several C99 bits anyway, such as __func__ or stdbool.h. So we might as well explicitly ask for it. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22355 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Id79b13d3c498acb565f91eba650328fccb5a13ef Gerrit-Change-Number: 22355 Gerrit-PatchSet: 3 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-CC: lynxis lazus Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 21 Jan 2021 12:49:47 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Thu Jan 21 12:49:34 2021 From: admin at opensuse.org (OBS Notification) Date: Thu, 21 Jan 2021 12:49:34 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <6009787c6e3cb_5172adeb84245fc360231@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/xUbuntu_20.04/x86_64 Package network:osmocom:nightly/simtrace2 failed to build in xUbuntu_20.04/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 270s] [COMPILING libboard/qmod/source/wwan_perst.c] [ 270s] [COMPILING libboard/qmod/source/card_pres.c] [ 270s] [COMPILING libboard/qmod/source/wwan_led.c] [ 270s] [COMPILING libboard/qmod/source/i2c.c] [ 270s] [COMPILING libboard/qmod/source/board_qmod.c] [ 270s] [COMPILING apps/dfu/main.c] [ 270s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 271s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 271s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 271s] Memory region Used Size Region Size %age Used [ 271s] rom: 16588 B 16 KB 101.25% [ 271s] ram: 11672 B 48 KB 23.75/usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 271s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 204 bytes [ 271s] collect2: error: ld returned 1 exit status [ 271s] % [ 271s] make[2]: *** [Makefile:234: flash] Error 1 [ 271s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 271s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 271s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 271s] dh_auto_build: error: make -j1 returned exit code 2 [ 271s] make: *** [debian/rules:16: build] Error 25 [ 271s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 271s] ### VM INTERACTION START ### [ 274s] [ 258.156194] sysrq: Power Off [ 274s] [ 258.160922] reboot: Power down [ 274s] ### VM INTERACTION END ### [ 274s] [ 274s] lamb07 failed "build simtrace2_0.7.0.69.aadd.dsc" at Thu Jan 21 12:49:17 UTC 2021. [ 274s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Thu Jan 21 12:50:27 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 21 Jan 2021 12:50:27 +0000 Subject: Change in osmo-ci[master]: jobs/repo-install-test: run a few hours later In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22354 ) Change subject: jobs/repo-install-test: run a few hours later ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22354 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I8df9b449d6213b5dca6fd9bf5c06b5c96d468f66 Gerrit-Change-Number: 22354 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 21 Jan 2021 12:50:27 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 21 12:50:40 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 21 Jan 2021 12:50:40 +0000 Subject: Change in osmo-ci[master]: Cosmetic: jobs/obs: update repo-install-test name In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22353 ) Change subject: Cosmetic: jobs/obs: update repo-install-test name ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22353 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ic5712173ec79d286fb3591364636a38f6af74503 Gerrit-Change-Number: 22353 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 21 Jan 2021 12:50:40 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 21 12:50:51 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 21 Jan 2021 12:50:51 +0000 Subject: Change in osmo-ci[master]: Cosmetic: jobs/obs: update repo-install-test name In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22353 ) Change subject: Cosmetic: jobs/obs: update repo-install-test name ...................................................................... Cosmetic: jobs/obs: update repo-install-test name Change-Id: Ic5712173ec79d286fb3591364636a38f6af74503 --- M jobs/osmocom-obs.yml 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: osmith: Verified pespin: Looks good to me, approved laforge: Looks good to me, approved diff --git a/jobs/osmocom-obs.yml b/jobs/osmocom-obs.yml index 8152d63..4d165d6 100644 --- a/jobs/osmocom-obs.yml +++ b/jobs/osmocom-obs.yml @@ -36,7 +36,7 @@ git-config-name: 'Jenkins Builder' git-config-email: 'jenkins at osmocom.org' triggers: - - timed: "H 00 * * *" # run before osmocom-debian-install.yml + - timed: "H 00 * * *" # run before repo-install-test.yml publishers: - email: -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22353 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ic5712173ec79d286fb3591364636a38f6af74503 Gerrit-Change-Number: 22353 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 21 12:50:51 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 21 Jan 2021 12:50:51 +0000 Subject: Change in osmo-ci[master]: jobs/repo-install-test: run a few hours later In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22354 ) Change subject: jobs/repo-install-test: run a few hours later ...................................................................... jobs/repo-install-test: run a few hours later Give OBS more time to build the repository, before verifying that we can install all packages from the repository. Apparently, OBS publishes the repository in WIP state, before all packages for a distribution have been built. This leads to problems in the "nightly" and "next" repositories. In contrary to "latest", we do not bump soname versions when doing ABI changes, so we require the user to have all installed Osmocom packages built from the same timestamp. With recent changes in the OBS scripts, we enforce this by having all packages built from the same timestamp depend on the exact version of a dummy package with that timestamp as version. The repo-install-test installs all packages from the binary repository, and so it fails, as it should, if the repository is in an inconsistent state with some packages built today and some packages built yesterday. Related: OS#4733 Change-Id: I8df9b449d6213b5dca6fd9bf5c06b5c96d468f66 --- M jobs/repo-install-test.yml 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: osmith: Verified pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/jobs/repo-install-test.yml b/jobs/repo-install-test.yml index d16b852..2c26490 100644 --- a/jobs/repo-install-test.yml +++ b/jobs/repo-install-test.yml @@ -59,7 +59,7 @@ git-config-name: 'Jenkins Builder' git-config-email: 'jenkins at osmocom.org' triggers: - - timed: "H 04 * * *" # run after osmocom-obs.yml + - timed: "H 10 * * *" # run after osmocom-obs.yml publishers: - email: -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22354 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I8df9b449d6213b5dca6fd9bf5c06b5c96d468f66 Gerrit-Change-Number: 22354 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 21 13:44:23 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 21 Jan 2021 13:44:23 +0000 Subject: Change in libosmocore[master]: configure.ac: set -std=gnu99 In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22355 to look at the new patch set (#4). Change subject: configure.ac: set -std=gnu99 ...................................................................... configure.ac: set -std=gnu99 Avoid using different dialects by accident (and resulting compiler errors if compiler assumes a different dialect), like in I72310886bef4db635078b75715c9d98ee45391cc. Related: https://lists.osmocom.org/pipermail/openbsc/2019-September/013030.html Related: https://lists.osmocom.org/pipermail/openbsc/2021-January/013360.html Related: osmo-pcu Ia57ba101627e3cc0babeca82631e207a3e2e0960 Change-Id: Id79b13d3c498acb565f91eba650328fccb5a13ef --- M configure.ac 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/55/22355/4 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22355 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Id79b13d3c498acb565f91eba650328fccb5a13ef Gerrit-Change-Number: 22355 Gerrit-PatchSet: 4 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-CC: lynxis lazus Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 21 13:45:47 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 21 Jan 2021 13:45:47 +0000 Subject: Change in libosmocore[master]: configure.ac: set -std=gnu99 In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22355 ) Change subject: configure.ac: set -std=gnu99 ...................................................................... Patch Set 4: Changed to gnu99. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22355 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Id79b13d3c498acb565f91eba650328fccb5a13ef Gerrit-Change-Number: 22355 Gerrit-PatchSet: 4 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-CC: lynxis lazus Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 21 Jan 2021 13:45:47 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 21 15:13:09 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 21 Jan 2021 15:13:09 +0000 Subject: Change in libosmocore[master]: configure.ac: set -std=gnu99 In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22355 ) Change subject: configure.ac: set -std=gnu99 ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22355 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Id79b13d3c498acb565f91eba650328fccb5a13ef Gerrit-Change-Number: 22355 Gerrit-PatchSet: 4 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-CC: lynxis lazus Gerrit-Comment-Date: Thu, 21 Jan 2021 15:13:09 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 21 15:44:42 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 21 Jan 2021 15:44:42 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Ignore dummy rlcmac packets in f_ms_rx_pkt_ass_pacch In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22313 ) Change subject: pcu: Ignore dummy rlcmac packets in f_ms_rx_pkt_ass_pacch ...................................................................... Patch Set 1: (2 comments) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22313/1/pcu/GPRS_Components.ttcn File pcu/GPRS_Components.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22313/1/pcu/GPRS_Components.ttcn at 506 PS1, Line 506: sapi := PCU_IF_SAPI_PDTCH, fn := 0, > Please fix spacing here, it's broken. Ack https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22313/1/pcu/GPRS_Components.ttcn at 512 PS1, Line 512: as_ms_rx_pkt_ass_pacch > I am sorry, but this altstep is pretty much useless for anything else than f_ms_rx_pkt_ass_pacch(). [?] I agree it's of now use *now*, but I'm already redoing it as a first step / test for follow-up patches where I start using the new BTS port which allows for matching different RLCMAC block types directly on receive(). So let's go for merging this patch now and get rid of sporadic failures, and I'll finish working on the other patches implementing the new BTS port when I find some time. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22313 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I0a10d3a7383d8534e9263864b4130a96392e6198 Gerrit-Change-Number: 22313 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: fixeria Gerrit-Comment-Date: Thu, 21 Jan 2021 15:44:42 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: fixeria Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 21 15:46:15 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 21 Jan 2021 15:46:15 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Ignore dummy rlcmac packets in f_ms_rx_pkt_ass_pacch In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22313 to look at the new patch set (#2). Change subject: pcu: Ignore dummy rlcmac packets in f_ms_rx_pkt_ass_pacch ...................................................................... pcu: Ignore dummy rlcmac packets in f_ms_rx_pkt_ass_pacch Allow ignoring for received dumy packets while waiting for a Pkt Ass on PACCH. This fixes some tests failing sometimes due to race condition where rlcmac packet is requested too quicky, after the PCU has received the BSSGP packet we sent to it. The function is splitted into an internal altestep + a wrap function which is compatible with tests already using it. Related: OS#4779 Change-Id: I0a10d3a7383d8534e9263864b4130a96392e6198 --- M pcu/GPRS_Components.ttcn M pcu/PCU_Tests.ttcn 2 files changed, 54 insertions(+), 29 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/13/22313/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22313 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I0a10d3a7383d8534e9263864b4130a96392e6198 Gerrit-Change-Number: 22313 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: fixeria Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 21 15:59:58 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 21 Jan 2021 15:59:58 +0000 Subject: Change in osmo-bts[master]: power_control: add test for inc / red step size limitations References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/22359 ) Change subject: power_control: add test for inc / red step size limitations ...................................................................... power_control: add test for inc / red step size limitations Change-Id: Ic2d4e144b0319d86daa9fbe38727b892081f0c37 Related: SYS#4918 --- M tests/power/bs_power_loop_test.c M tests/power/bs_power_loop_test.err M tests/power/bs_power_loop_test.ok 3 files changed, 189 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/59/22359/1 diff --git a/tests/power/bs_power_loop_test.c b/tests/power/bs_power_loop_test.c index 7301b7f..5271324 100644 --- a/tests/power/bs_power_loop_test.c +++ b/tests/power/bs_power_loop_test.c @@ -56,6 +56,7 @@ PWR_TEST_ST_IND_MEAS = 0, PWR_TEST_ST_IND_DUMMY, PWR_TEST_ST_SET_STATE, + PWR_TEST_ST_SET_STEP_SIZE, PWR_TEST_ST_SET_RXLEV_PARAMS, PWR_TEST_ST_ENABLE_DTXD, PWR_TEST_ST_DISABLE_DPC, @@ -78,6 +79,11 @@ uint8_t rxlev_sub; bool invalid; } meas; + /* Increase / reduce step size */ + struct { + uint8_t inc; + uint8_t red; + } step_size; }; /* Expected Tx power reduction */ uint8_t exp_txred; @@ -153,6 +159,12 @@ printf("#%02u %s() <- Dynamic power control is disabled\n", n, __func__); lchan->bs_power_ctrl.dpc_params = NULL; return 0; /* we're done */ + case PWR_TEST_ST_SET_STEP_SIZE: + printf("#%02u %s() <- Set step size: inc %u dB, red %u dB\n", + n, __func__, step->step_size.inc, step->step_size.red); + lchan->bs_dpc_params.inc_step_size_db = step->step_size.inc; + lchan->bs_dpc_params.red_step_size_db = step->step_size.red; + return 0; /* we're done */ case PWR_TEST_ST_SET_RXLEV_PARAMS: printf("#%02u %s() <- (Re)set RxLev params (thresh %u .. %u, " "averaging is %sabled)\n", @@ -274,6 +286,60 @@ { .meas = DL_MEAS_FULL_SUB(0, 10), .exp_txred = 0 }, /* min */ }; +/* Verify that delta values never exceed the corresponding step size, + * but still can be smaller than the step size if the target is close. */ +static const struct power_test_step TC_inc_red_step_size[] = { + /* Initial state: 0 dB, up to 20 dB */ + { .type = PWR_TEST_ST_SET_STATE, + .state = { .current = 0, .max = 2 * 10 } }, + + { .type = PWR_TEST_ST_SET_STEP_SIZE, + .step_size = { .inc = 6, .red = 4 } }, + + /* MS indicates high RxLev values (-50 dBm), red step is 4 dB */ + { .meas = DL_MEAS_FULL_SUB(0, 60), .exp_txred = 4 }, + { .meas = DL_MEAS_FULL_SUB(0, 60), .exp_txred = 8 }, + { .meas = DL_MEAS_FULL_SUB(0, 60), .exp_txred = 12 }, + { .meas = DL_MEAS_FULL_SUB(0, 60), .exp_txred = 16 }, + { .meas = DL_MEAS_FULL_SUB(0, 60), .exp_txred = 20 }, /* max */ + { .meas = DL_MEAS_FULL_SUB(0, 60), .exp_txred = 20 }, /* max */ + + /* MS indicates low RxLev values (-100 dBm), inc step is 6 dB */ + { .meas = DL_MEAS_FULL_SUB(0, 10), .exp_txred = 14 }, + { .meas = DL_MEAS_FULL_SUB(0, 10), .exp_txred = 8 }, + { .meas = DL_MEAS_FULL_SUB(0, 10), .exp_txred = 2 }, + { .meas = DL_MEAS_FULL_SUB(0, 10), .exp_txred = 0 }, /* min */ + { .meas = DL_MEAS_FULL_SUB(0, 10), .exp_txred = 0 }, /* min */ + + /* Reset state: current 10 dB, up to 20 dB */ + { .type = PWR_TEST_ST_SET_STATE, + .state = { .current = 10, .max = 2 * 10 } }, + + /* Let's say the current value is now 1 dB greater than the target (current red 10 dB) */ + { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET + 1), .exp_txred = 10 + 1 }, + { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET + 0), .exp_txred = 10 + 1 }, + /* Let's say the current value is now 2 dB greater than the target (current red 11 dB) */ + { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET + 2), .exp_txred = 11 + 2 }, + { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET + 0), .exp_txred = 11 + 2 }, + /* Let's say the current value is now 3 dB greater than the target (current red 13 dB) */ + { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET + 3), .exp_txred = 13 + 3 }, + { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET + 0), .exp_txred = 13 + 3 }, + + /* Reset state: current 10 dB, up to 20 dB */ + { .type = PWR_TEST_ST_SET_STATE, + .state = { .current = 10, .max = 2 * 10 } }, + + /* Let's say the current value is now 1 dB lower than the target (current red 10 dB) */ + { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET - 1), .exp_txred = 10 - 1 }, + { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET - 0), .exp_txred = 10 - 1 }, + /* Let's say the current value is now 3 dB lower than the target (current red 9 dB) */ + { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET - 3), .exp_txred = 9 - 3 }, + { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET - 0), .exp_txred = 9 - 3 }, + /* Let's say the current value is now 5 dB lower than the target (current red 6 dB) */ + { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET - 5), .exp_txred = 6 - 5 }, + { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET - 0), .exp_txred = 6 - 5 }, +}; + /* Verify that the logic picks the 'SUB' values in DTXd mode. */ static const struct power_test_step TC_dtxd_mode[] = { /* Initial state: 0 dB, up to 20 dB */ @@ -417,6 +483,7 @@ exec_test(TC_fixed_mode); exec_test(TC_rxlev_target); exec_test(TC_rxlev_max_min); /* FIXME */ + exec_test(TC_inc_red_step_size); exec_test(TC_dtxd_mode); exec_test(TC_rxqual_ber); diff --git a/tests/power/bs_power_loop_test.err b/tests/power/bs_power_loop_test.err index 2b1e0a9..c3fb816 100644 --- a/tests/power/bs_power_loop_test.err +++ b/tests/power/bs_power_loop_test.err @@ -44,6 +44,52 @@ (bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, delta -4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL (bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, delta -4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 0 -> 4 dB (maximum 20 dB, delta 4 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 4 -> 8 dB (maximum 20 dB, delta 4 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 8 -> 12 dB (maximum 20 dB, delta 4 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 12 -> 16 dB (maximum 20 dB, delta 4 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 16 -> 20 dB (maximum 20 dB, delta 4 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 20 dB (maximum 20 dB, delta 4 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 20 -> 14 dB (maximum 20 dB, delta -6 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 14 -> 8 dB (maximum 20 dB, delta -6 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 8 -> 2 dB (maximum 20 dB, delta -6 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 2 -> 0 dB (maximum 20 dB, delta -6 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, delta -6 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(31), RXQUAL-FULL(0), RXLEV-SUB(31), RXQUAL-SUB(0), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 10 -> 11 dB (maximum 20 dB, delta 1 dB, RxLev current 31 (-79 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 11 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(32), RXQUAL-FULL(0), RXLEV-SUB(32), RXQUAL-SUB(0), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 11 -> 13 dB (maximum 20 dB, delta 2 dB, RxLev current 32 (-78 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 13 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(33), RXQUAL-FULL(0), RXLEV-SUB(33), RXQUAL-SUB(0), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 13 -> 16 dB (maximum 20 dB, delta 3 dB, RxLev current 33 (-77 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(29), RXQUAL-FULL(0), RXLEV-SUB(29), RXQUAL-SUB(0), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 10 -> 9 dB (maximum 20 dB, delta -1 dB, RxLev current 29 (-81 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 9 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(27), RXQUAL-FULL(0), RXLEV-SUB(27), RXQUAL-SUB(0), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 9 -> 6 dB (maximum 20 dB, delta -3 dB, RxLev current 27 (-83 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 6 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(25), RXQUAL-FULL(0), RXLEV-SUB(25), RXQUAL-SUB(0), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 6 -> 1 dB (maximum 20 dB, delta -5 dB, RxLev current 25 (-85 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 1 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL (bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL diff --git a/tests/power/bs_power_loop_test.ok b/tests/power/bs_power_loop_test.ok index 19ec249..4371c9d 100644 --- a/tests/power/bs_power_loop_test.ok +++ b/tests/power/bs_power_loop_test.ok @@ -97,6 +97,82 @@ #19 lchan_bs_pwr_ctrl() -> BS power reduction: 0 -> 0 (expected 0) Test case verdict: SUCCESS +Starting test case 'TC_inc_red_step_size' +#00 exec_power_step() <- State (re)set (current 0 dB, max 20 dB) +#01 exec_power_step() <- Set step size: inc 6 dB, red 4 dB +#02 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0) +#02 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 3c 3c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +#02 lchan_bs_pwr_ctrl() -> BS power reduction: 0 -> 4 (expected 4) +#03 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0) +#03 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 3c 3c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +#03 lchan_bs_pwr_ctrl() -> BS power reduction: 4 -> 8 (expected 8) +#04 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0) +#04 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 3c 3c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +#04 lchan_bs_pwr_ctrl() -> BS power reduction: 8 -> 12 (expected 12) +#05 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0) +#05 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 3c 3c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +#05 lchan_bs_pwr_ctrl() -> BS power reduction: 12 -> 16 (expected 16) +#06 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0) +#06 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 3c 3c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +#06 lchan_bs_pwr_ctrl() -> BS power reduction: 16 -> 20 (expected 20) +#07 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0) +#07 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 3c 3c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +#07 lchan_bs_pwr_ctrl() -> BS power reduction: 20 -> 20 (expected 20) +#08 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0) +#08 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 0a 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +#08 lchan_bs_pwr_ctrl() -> BS power reduction: 20 -> 14 (expected 14) +#09 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0) +#09 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 0a 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +#09 lchan_bs_pwr_ctrl() -> BS power reduction: 14 -> 8 (expected 8) +#10 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0) +#10 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 0a 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +#10 lchan_bs_pwr_ctrl() -> BS power reduction: 8 -> 2 (expected 2) +#11 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0) +#11 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 0a 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +#11 lchan_bs_pwr_ctrl() -> BS power reduction: 2 -> 0 (expected 0) +#12 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0) +#12 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 0a 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +#12 lchan_bs_pwr_ctrl() -> BS power reduction: 0 -> 0 (expected 0) +#13 exec_power_step() <- State (re)set (current 10 dB, max 20 dB) +#14 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(31), RXQUAL-FULL(0), RXLEV-SUB(31), RXQUAL-SUB(0) +#14 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 1f 1f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +#14 lchan_bs_pwr_ctrl() -> BS power reduction: 10 -> 11 (expected 11) +#15 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0) +#15 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 1e 1e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +#15 lchan_bs_pwr_ctrl() -> BS power reduction: 11 -> 11 (expected 11) +#16 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(32), RXQUAL-FULL(0), RXLEV-SUB(32), RXQUAL-SUB(0) +#16 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 20 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +#16 lchan_bs_pwr_ctrl() -> BS power reduction: 11 -> 13 (expected 13) +#17 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0) +#17 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 1e 1e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +#17 lchan_bs_pwr_ctrl() -> BS power reduction: 13 -> 13 (expected 13) +#18 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(33), RXQUAL-FULL(0), RXLEV-SUB(33), RXQUAL-SUB(0) +#18 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 21 21 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +#18 lchan_bs_pwr_ctrl() -> BS power reduction: 13 -> 16 (expected 16) +#19 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0) +#19 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 1e 1e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +#19 lchan_bs_pwr_ctrl() -> BS power reduction: 16 -> 16 (expected 16) +#20 exec_power_step() <- State (re)set (current 10 dB, max 20 dB) +#21 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(29), RXQUAL-FULL(0), RXLEV-SUB(29), RXQUAL-SUB(0) +#21 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 1d 1d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +#21 lchan_bs_pwr_ctrl() -> BS power reduction: 10 -> 9 (expected 9) +#22 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0) +#22 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 1e 1e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +#22 lchan_bs_pwr_ctrl() -> BS power reduction: 9 -> 9 (expected 9) +#23 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(27), RXQUAL-FULL(0), RXLEV-SUB(27), RXQUAL-SUB(0) +#23 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 1b 1b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +#23 lchan_bs_pwr_ctrl() -> BS power reduction: 9 -> 6 (expected 6) +#24 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0) +#24 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 1e 1e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +#24 lchan_bs_pwr_ctrl() -> BS power reduction: 6 -> 6 (expected 6) +#25 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(25), RXQUAL-FULL(0), RXLEV-SUB(25), RXQUAL-SUB(0) +#25 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 19 19 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +#25 lchan_bs_pwr_ctrl() -> BS power reduction: 6 -> 1 (expected 1) +#26 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0) +#26 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 1e 1e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +#26 lchan_bs_pwr_ctrl() -> BS power reduction: 1 -> 1 (expected 1) +Test case verdict: SUCCESS + Starting test case 'TC_dtxd_mode' #00 exec_power_step() <- State (re)set (current 0 dB, max 20 dB) #01 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22359 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic2d4e144b0319d86daa9fbe38727b892081f0c37 Gerrit-Change-Number: 22359 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 21 16:08:11 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 21 Jan 2021 16:08:11 +0000 Subject: Change in osmo-bts[master]: power_control: add test for inc / red step size limitations In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/22359 ) Change subject: power_control: add test for inc / red step size limitations ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22359 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic2d4e144b0319d86daa9fbe38727b892081f0c37 Gerrit-Change-Number: 22359 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 21 Jan 2021 16:08:11 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 21 17:03:20 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 21 Jan 2021 17:03:20 +0000 Subject: Change in osmo-pcu[master]: Get rid of singleton gprs_bssgp_pcu_current_bctx() References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22360 ) Change subject: Get rid of singleton gprs_bssgp_pcu_current_bctx() ...................................................................... Get rid of singleton gprs_bssgp_pcu_current_bctx() Access it from existing pointers instead. Change-Id: I77455da5221090ebea142ecd49d5dba0065bfc5c --- M src/gprs_bssgp_pcu.c M src/gprs_bssgp_pcu.h M src/pcu_l1_if.cpp M src/tbf_dl.cpp M src/tbf_ul.cpp 5 files changed, 4 insertions(+), 10 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/60/22360/1 diff --git a/src/gprs_bssgp_pcu.c b/src/gprs_bssgp_pcu.c index 956fb66..c5cc39d 100644 --- a/src/gprs_bssgp_pcu.c +++ b/src/gprs_bssgp_pcu.c @@ -515,7 +515,7 @@ if (!TLVP_PRESENT(bp->tp, BSSGP_IE_BVCI)) return; - if (gprs_bssgp_pcu_current_bctx()->bvci != bp->bvci) { + if (the_pcu->bssgp.bctx->bvci != bp->bvci) { LOGP(DPCU, LOGL_NOTICE, "Received BSSGP STATUS message for an unknown BVCI (%d), " "ignored\n", @@ -1181,11 +1181,6 @@ bts->nse = NULL; } -struct bssgp_bvc_ctx *gprs_bssgp_pcu_current_bctx(void) -{ - return the_pcu->bssgp.bctx; -} - void gprs_bssgp_update_frames_sent() { the_pcu->bssgp.queue_frames_sent += 1; diff --git a/src/gprs_bssgp_pcu.h b/src/gprs_bssgp_pcu.h index df22541..4b0e0aa 100644 --- a/src/gprs_bssgp_pcu.h +++ b/src/gprs_bssgp_pcu.h @@ -78,7 +78,6 @@ }; int gprs_gp_send_cb(void *ctx, struct msgb *msg); -struct bssgp_bvc_ctx *gprs_bssgp_pcu_current_bctx(void); int gprs_ns_prim_cb(struct osmo_prim_hdr *oph, void *ctx); void gprs_bssgp_update_queue_delay(const struct timespec *tv_recv, const struct timespec *tv_now); diff --git a/src/pcu_l1_if.cpp b/src/pcu_l1_if.cpp index 8ae74d5..d7590e1 100644 --- a/src/pcu_l1_if.cpp +++ b/src/pcu_l1_if.cpp @@ -782,7 +782,7 @@ static int pcu_rx_susp_req(struct gprs_rlcmac_bts *bts, struct gsm_pcu_if_susp_req *susp_req) { - struct bssgp_bvc_ctx *bctx = gprs_bssgp_pcu_current_bctx(); + struct bssgp_bvc_ctx *bctx = bts->pcu->bssgp.bctx; GprsMs *ms; struct gprs_rlcmac_dl_tbf *dl_tbf; struct gprs_rlcmac_ul_tbf *ul_tbf; diff --git a/src/tbf_dl.cpp b/src/tbf_dl.cpp index 87c897f..de43349 100644 --- a/src/tbf_dl.cpp +++ b/src/tbf_dl.cpp @@ -641,7 +641,7 @@ return; /* dequeue next LLC frame, if any */ - msg = llc_dequeue(gprs_bssgp_pcu_current_bctx()); + msg = llc_dequeue(bts->pcu->bssgp.bctx); if (!msg) return; diff --git a/src/tbf_ul.cpp b/src/tbf_ul.cpp index 0c59a50..a5fc376 100644 --- a/src/tbf_ul.cpp +++ b/src/tbf_ul.cpp @@ -560,7 +560,7 @@ uint8_t qos_profile[3]; struct msgb *llc_pdu; unsigned msg_len = NS_HDR_LEN + BSSGP_HDR_LEN + llc_frame_length(&m_llc); - struct bssgp_bvc_ctx *bctx = gprs_bssgp_pcu_current_bctx(); + struct bssgp_bvc_ctx *bctx = bts->pcu->bssgp.bctx; LOGP(DBSSGP, LOGL_INFO, "LLC [PCU -> SGSN] %s len=%d\n", tbf_name(this), llc_frame_length(&m_llc)); if (!bctx) { -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22360 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I77455da5221090ebea142ecd49d5dba0065bfc5c Gerrit-Change-Number: 22360 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 21 17:12:41 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 21 Jan 2021 17:12:41 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Fix pooling expectations of TC_bvc_reset_*_from_bss References: Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22361 ) Change subject: gbproxy: Fix pooling expectations of TC_bvc_reset_*_from_bss ...................................................................... gbproxy: Fix pooling expectations of TC_bvc_reset_*_from_bss With pooling enabled these tests now need to verify that the reset/block is propagated to all SGSNs in the pool. Change-Id: I34ed4bffce564dbaf08f9388bd5247351dd0725e Fixes: OS#4964 --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 61 insertions(+), 16 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/61/22361/1 diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index e3e61f4..ddcd9cb 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -342,6 +342,7 @@ var boolean g_use_echo := false; var ro_integer g_roi := {}; + var roro_integer g_roroi := {}; timer g_Tguard; }; @@ -2464,7 +2465,14 @@ /*********************************************************************** * BVC-RESET procedure ***********************************************************************/ - +private altstep as_count_bvc_reset(integer sgsn_idx, BssgpBvci bvci, inout roro_integer roroi) +runs on test_CT { + var BSSGP_BVC_CT sgsn_bvc_ct := f_get_sgsn_bvc_ct(sgsn_idx, bvci); + [] SGSN_MGMT.receive(BssgpResetIndication:{bvci}) from sgsn_bvc_ct { + roroi[sgsn_idx] := roroi[sgsn_idx] & { bvci }; + repeat; + } +} private altstep as_ignore_status(BSSGP_BVC_MGMT_PT pt) { [] pt.receive(BssgpStatusIndication:?) { repeat; } } @@ -2481,22 +2489,51 @@ var BSSGP_BVC_CT pcu_bvc_ct := g_pcu[pcu_idx].vc_BSSGP_BVC[bvc_idx]; var BssgpBvcConfig bvc_cfg := g_pcu[pcu_idx].cfg.bvc[bvc_idx]; var Nsei nsei_pcu := g_pcu[pcu_idx].cfg.nsei; - var BSSGP_BVC_CT sgsn_bvc_ct := f_get_sgsn_bvc_ct(0, bvc_cfg.bvci); - var default d; + var ro_default defaults; + var integer i; SGSN_MGMT.clear; PCU_MGMT.clear; + for (i := 0; i < lengthof(mp_nsconfig_sgsn); i := i+1) { + g_roroi[i] := {}; + } + /* block the PTP BVC from the PCU side */ PCU_MGMT.send(BssgpResetRequest:{cause:=BSSGP_CAUSE_OM_INTERVENTION}) to pcu_bvc_ct; + /* expect state on both PCU and SGSN side to change */ - d := activate(as_ignore_status(SGSN_MGMT)); - interleave { - [] PCU_MGMT.receive(tr_BssgpStsInd(nsei_pcu, bvc_cfg.bvci, BVC_S_BLOCKED)) from pcu_bvc_ct; - [] SGSN_MGMT.receive(BssgpResetIndication:{bvc_cfg.bvci}) from sgsn_bvc_ct; + defaults := { activate(as_ignore_status(SGSN_MGMT)) }; + + /* Activate altsteps: One for each SGSN */ + for (i := 0; i < lengthof(g_sgsn); i := i+1) { + var default d := activate(as_count_bvc_reset(i, bvc_cfg.bvci, g_roroi)); + defaults := defaults & { d }; } - deactivate(d); + + timer T := 3.0; + T.start; + alt { + [] PCU_MGMT.receive(tr_BssgpStsInd(nsei_pcu, bvc_cfg.bvci, BVC_S_BLOCKED)) from pcu_bvc_ct { + g_roi := g_roi & { bvc_cfg.bvci }; + repeat; + } + [] T.timeout; + } + + for (i := 0; i < lengthof(defaults); i := i+1) { + deactivate(defaults[i]); + } + + /* Check if BVC-RESET was received at all SGSNs */ + for (i := 0; i < lengthof(g_sgsn); i := i+1) { + if (not ro_integer_contains(g_roroi[i], bvc_cfg.bvci)) { + setverdict(fail, "Missing SGSN[", i, "] BVC-BLOCK of BVCI=", bvc_cfg.bvci); + } + } + setverdict(pass); + f_cleanup(); } /* Send a BVC-RESET for a PTP BVC from the BSS side: expect it to propagate */ testcase TC_bvc_reset_ptp_from_bss() runs on test_CT @@ -2507,11 +2544,11 @@ f_cleanup(); } -private altstep as_count_bvc_block(integer sgsn_idx, BssgpBvci bvci, inout ro_integer roi) +private altstep as_count_bvc_block(integer sgsn_idx, BssgpBvci bvci, inout roro_integer roroi) runs on test_CT { var BSSGP_BVC_CT sgsn_bvc_ct := f_get_sgsn_bvc_ct(sgsn_idx, bvci); [] SGSN_MGMT.receive(tr_BssgpStsInd(?, bvci, BVC_S_BLOCKED)) from sgsn_bvc_ct { - roi := roi & { bvci }; + roroi[sgsn_idx] := roroi[sgsn_idx] & { bvci }; repeat; } } @@ -2521,15 +2558,21 @@ f_init(); f_sleep(3.0); + for (var integer i := 0; i < lengthof(mp_nsconfig_sgsn); i := i+1) { + g_roroi[i] := {}; + } + /* Start BVC-RESET procedure for BVCI=0 */ PCU_MGMT.send(BssgpResetRequest:{cause:=BSSGP_CAUSE_OM_INTERVENTION}) to g_pcu[0].vc_BSSGP; - /* Activate altsteps: One for each PTP BVC within that PCUs NSE */ + /* Activate altsteps: One for each PTP BVC and SGSN within that PCUs NSE */ var ro_default defaults := {}; for (var integer i := 0; i < lengthof(g_pcu[0].cfg.bvc); i := i+1) { var BssgpBvcConfig bvcc := g_pcu[0].cfg.bvc[i]; - var default d := activate(as_count_bvc_block(0, bvcc.bvci, g_roi)); - defaults := defaults & { d }; + for (var integer j := 0; j < lengthof(g_sgsn); j := j+1) { + var default d := activate(as_count_bvc_block(j, bvcc.bvci, g_roroi)); + defaults := defaults & { d }; + } } timer T := 3.0; @@ -2545,11 +2588,13 @@ deactivate(defaults[i]); } - /* check if BVC-block was received on all expected BVC */ + /* check if BVC-block was received on all expected BVC/SGSN */ for (var integer i := 0; i < lengthof(g_pcu[0].cfg.bvc); i := i+1) { var BssgpBvcConfig bvcc := g_pcu[0].cfg.bvc[i]; - if (not ro_integer_contains(g_roi, bvcc.bvci)) { - setverdict(fail, "Missing SGSN-side BVC-BLOCK of BVCI=", bvcc.bvci); + for (var integer j := 0; j < lengthof(g_sgsn); j := j+1) { + if (not ro_integer_contains(g_roroi[j], bvcc.bvci)) { + setverdict(fail, "Missing SGSN[", j, "] BVC-BLOCK of BVCI=", bvcc.bvci); + } } } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22361 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I34ed4bffce564dbaf08f9388bd5247351dd0725e Gerrit-Change-Number: 22361 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 21 17:21:50 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 21 Jan 2021 17:21:50 +0000 Subject: Change in libosmocore[master]: bssgp_rim: add encoder/decoder for NACC related RIM containers In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/21862 ) Change subject: bssgp_rim: add encoder/decoder for NACC related RIM containers ...................................................................... Patch Set 13: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/21862/13/src/gb/gprs_bssgp_rim.c File src/gb/gprs_bssgp_rim.c: https://gerrit.osmocom.org/c/libosmocore/+/21862/13/src/gb/gprs_bssgp_rim.c at 343 PS13, Line 343: buf_ptr[1] = len & 0xff; > Something is definitely wrong here: you store (x >> 8) and then overwrite it by (x & 0xff). [?] Thanks for pointing this out. This is a bug. A fix is already merged, see: I3cce0b2796793554a421fd3ce8e749c52d22eaea -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/21862 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ibbc7fd67658e3040c12abb5706fe9d1f31894352 Gerrit-Change-Number: 21862 Gerrit-PatchSet: 13 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: fixeria Gerrit-Comment-Date: Thu, 21 Jan 2021 17:21:50 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: fixeria Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 21 17:49:37 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 21 Jan 2021 17:49:37 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Improve log messages in gbproxy_select_sgsn References: Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22362 ) Change subject: gbproxy: Improve log messages in gbproxy_select_sgsn ...................................................................... gbproxy: Improve log messages in gbproxy_select_sgsn Change-Id: Id7bc755b90c35ed7c8cfa8408073e2866d639f2d Related: OS#4954 --- M src/gbproxy/gb_proxy.c 1 file changed, 3 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/62/22362/1 diff --git a/src/gbproxy/gb_proxy.c b/src/gbproxy/gb_proxy.c index edd9f29..be8602e 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -251,8 +251,10 @@ } } else { /* We couldn't get the NRI from the TLLI */ - LOGP(DGPRS, LOGL_ERROR, "Could not extract NRI from local TLLI %u\n", *tlli); + LOGP(DGPRS, LOGL_ERROR, "Could not extract NRI from local TLLI %08x\n", *tlli); } + } else { + LOGP(DGPRS, LOGL_INFO, "TLLI %08x is neither local nor foreign\n"); } } -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22362 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Id7bc755b90c35ed7c8cfa8408073e2866d639f2d Gerrit-Change-Number: 22362 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 21 17:49:38 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 21 Jan 2021 17:49:38 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Fix radio status routing by TMSI References: Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22363 ) Change subject: gbproxy: Fix radio status routing by TMSI ...................................................................... gbproxy: Fix radio status routing by TMSI If a radio status message contains a TMSI it should be routed as if it was a TLLI. Convert the TMSI to (foreign) TLLI so NRI-routing works. Both foreign and local TLLIs are routed the same. Fixes: OS#4954 Change-Id: Ifd64f02fa16b44f8e2e19eb8ba973f50a829ead5 --- M src/gbproxy/gb_proxy.c 1 file changed, 2 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/63/22363/1 diff --git a/src/gbproxy/gb_proxy.c b/src/gbproxy/gb_proxy.c index be8602e..99efa4e 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -417,11 +417,12 @@ } else if (TLVP_PRESENT(&tp, BSSGP_IE_TMSI)) { /* we treat the TMSI like a TLLI and extract the NRI from it */ tlli = osmo_load32be(TLVP_VAL(&tp, BSSGP_IE_TMSI)); + /* Convert the TMSI into a FOREIGN TLLI so it is routed appropriately */ + tlli = gprs_tmsi2tlli(tlli, TLLI_FOREIGN); rc = gbprox_bss2sgsn_tlli(bss_bvc->cell, msg, &tlli, false); } else if (TLVP_PRESENT(&tp, BSSGP_IE_IMSI)) { /* FIXME: Use the IMSI as selector? */ rc = gbprox_bss2sgsn_tlli(bss_bvc->cell, msg, NULL, false); - /* rc = gbprox_bss2sgsn_hashed(bss_bvc->cell, msg, NULL); */ } else LOGPBVC(bss_bvc, LOGL_ERROR, "Rx RADIO-STATUS without any of the conditional IEs\n"); break; -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22363 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ifd64f02fa16b44f8e2e19eb8ba973f50a829ead5 Gerrit-Change-Number: 22363 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 21 17:51:32 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 21 Jan 2021 17:51:32 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Fix radio status routing by TMSI In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22363 ) Change subject: gbproxy: Fix radio status routing by TMSI ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-sgsn/+/22363/1/src/gbproxy/gb_proxy.c File src/gbproxy/gb_proxy.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/22363/1/src/gbproxy/gb_proxy.c at a424 PS1, Line 424: /* rc = gbprox_bss2sgsn_hashed(bss_bvc->cell, msg, NULL); */ non-related -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22363 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ifd64f02fa16b44f8e2e19eb8ba973f50a829ead5 Gerrit-Change-Number: 22363 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Thu, 21 Jan 2021 17:51:32 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 21 17:52:44 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 21 Jan 2021 17:52:44 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Improve log messages in gbproxy_select_sgsn In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22362 ) Change subject: gbproxy: Improve log messages in gbproxy_select_sgsn ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-sgsn/+/22362/1/src/gbproxy/gb_proxy.c File src/gbproxy/gb_proxy.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/22362/1/src/gbproxy/gb_proxy.c at 257 PS1, Line 257: LOGP(DGPRS, LOGL_INFO, "TLLI %08x is neither local nor foreign\n"); so it's trapped at the airport? -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22362 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Id7bc755b90c35ed7c8cfa8408073e2866d639f2d Gerrit-Change-Number: 22362 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Thu, 21 Jan 2021 17:52:44 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 21 17:55:32 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 21 Jan 2021 17:55:32 +0000 Subject: Change in osmo-pcu[master]: Initial handling support for RIM messages References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22364 ) Change subject: Initial handling support for RIM messages ...................................................................... Initial handling support for RIM messages This code doesn't do anything yet app-related with the received RIM messages, but already provides the initial infrastructure to handle them in the future, and does first checkings. Related: SYS#5103 Change-Id: Ia0ade0e97ea781ec655439c008b6cefaf3e90dec --- M src/Makefile.am M src/gprs_bssgp_pcu.c A src/gprs_bssgp_rim.c A src/gprs_bssgp_rim.h M src/gprs_debug.cpp M src/gprs_debug.h M src/gprs_pcu.c M src/gprs_pcu.h 8 files changed, 230 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/64/22364/1 diff --git a/src/Makefile.am b/src/Makefile.am index de924a6..f85a456 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -43,6 +43,7 @@ csn1.c \ gsm_rlcmac.c \ gprs_bssgp_pcu.c \ + gprs_bssgp_rim.c \ gprs_rlcmac.cpp \ gprs_rlcmac_sched.cpp \ gprs_rlcmac_meas.cpp \ @@ -81,6 +82,7 @@ csn1.h \ gsm_rlcmac.h \ gprs_bssgp_pcu.h \ + gprs_bssgp_rim.h \ gprs_rlcmac.h \ gprs_ms.h \ gprs_ms_storage.h \ diff --git a/src/gprs_bssgp_pcu.c b/src/gprs_bssgp_pcu.c index c5cc39d..c24aa4d 100644 --- a/src/gprs_bssgp_pcu.c +++ b/src/gprs_bssgp_pcu.c @@ -20,6 +20,7 @@ #include #include +#include #include #include #include @@ -419,10 +420,22 @@ int rc = 0; struct bssgp_bvc_ctx *bctx; - if (pdu_type == BSSGP_PDUT_STATUS) + switch (pdu_type) { + case BSSGP_PDUT_STATUS: /* Pass the message to the generic BSSGP parser, which handles * STATUS and RESET messages in either direction. */ + case BSSGP_PDUT_RAN_INFO: + case BSSGP_PDUT_RAN_INFO_REQ: + case BSSGP_PDUT_RAN_INFO_ACK: + case BSSGP_PDUT_RAN_INFO_ERROR: + case BSSGP_PDUT_RAN_INFO_APP_ERROR: + /* Also pass all RIM related messages to the generic BSSGP + * parser so that it can deliver primitive to the RIM SAP + * (SAP_BSSGP_RIM) */ return bssgp_rcvmsg(msg); + default: + break; + } /* Identifiers from DOWN: NSEI, BVCI (both in msg->cb) */ @@ -551,7 +564,8 @@ case SAP_BSSGP_NM: if (oph->primitive == PRIM_NM_STATUS) handle_nm_status(bp); - break; + case SAP_BSSGP_RIM: + return handle_rim(bp); default: break; } diff --git a/src/gprs_bssgp_rim.c b/src/gprs_bssgp_rim.c new file mode 100644 index 0000000..8cb330f --- /dev/null +++ b/src/gprs_bssgp_rim.c @@ -0,0 +1,169 @@ +/* gprs_bssgp_pcu.cpp + * + * Copyright (C) 2021 by sysmocom - s.f.m.c. GmbH + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + +#include +#include +#include +#include +#include +#include + +#include "gprs_debug.h" +#include "gprs_pcu.h" + +static inline void gprs_ra_id_ci_to_cgi_ps(struct osmo_cell_global_id_ps *cgi_ps, + struct gprs_ra_id *raid, uint16_t cid) +{ + *cgi_ps = (struct osmo_cell_global_id_ps) { + .rai.lac.plmn.mcc = raid->mcc, + .rai.lac.plmn.mnc = raid->mnc, + .rai.lac.plmn.mnc_3_digits = raid->mnc_3_digits, + .rai.lac.lac = raid->lac, + .rai.rac = raid->rac, + .cell_identity = cid, + }; +} + +/* Mirror RIM routing information of a given PDU, see also 3GPP TS 48.018, section 8c.1.4.3 */ +static void mirror_rim_routing_info(struct bssgp_ran_information_pdu *resp_pdu, + struct bssgp_ran_information_pdu *req_pdu) +{ + memcpy(&resp_pdu->routing_info_dest, &req_pdu->routing_info_src, sizeof(resp_pdu->routing_info_dest)); + memcpy(&resp_pdu->routing_info_src, &req_pdu->routing_info_dest, sizeof(resp_pdu->routing_info_src)); +} + +/* Format a RAN INFORMATION ERROR PDU */ +static void format_response_pdu_err(struct bssgp_ran_information_pdu *resp_pdu, + struct bssgp_ran_information_pdu *req_pdu) +{ + memset(resp_pdu, 0, sizeof(*resp_pdu)); + mirror_rim_routing_info(resp_pdu, req_pdu); + + resp_pdu->decoded.err_rim_cont = (struct bssgp_ran_inf_err_rim_cont) { + .app_id = BSSGP_RAN_INF_APP_ID_NACC, + .prot_ver = 1, + .err_pdu = req_pdu->rim_cont, + .err_pdu_len = req_pdu->rim_cont_len, + }; + + resp_pdu->decoded_present = true; + resp_pdu->rim_cont_iei = BSSGP_IE_RI_ERROR_RIM_COINTAINER; +} + +/* Check if the application ID in the request PDU is actually BSSGP_RAN_INF_APP_ID_NACC */ +static enum bssgp_ran_inf_app_id *get_app_id(struct bssgp_ran_information_pdu *pdu) +{ + switch (pdu->rim_cont_iei) { + case BSSGP_IE_RI_REQ_RIM_CONTAINER: + return &pdu->decoded.req_rim_cont.app_id; + case BSSGP_IE_RI_RIM_CONTAINER: + return &pdu->decoded.rim_cont.app_id; + case BSSGP_IE_RI_APP_ERROR_RIM_CONT: + return &pdu->decoded.app_err_rim_cont.app_id; + case BSSGP_IE_RI_ACK_RIM_CONTAINER: + return &pdu->decoded.ack_rim_cont.app_id; + case BSSGP_IE_RI_ERROR_RIM_COINTAINER: + return &pdu->decoded.err_rim_cont.app_id; + default: + return NULL; + } +} + +/* Check if the application ID in the request PDU is of a certian type */ +static bool match_app_id(struct bssgp_ran_information_pdu *pdu, enum bssgp_ran_inf_app_id exp_app_id) +{ + enum bssgp_ran_inf_app_id *app_id = get_app_id(pdu); + if (app_id && *app_id == exp_app_id) + return true; + return false; +} + +int handle_rim(struct osmo_bssgp_prim *bp) +{ + struct msgb *msg = bp->oph.msg; + uint16_t nsei = msgb_nsei(msg); + struct bssgp_ran_information_pdu *pdu = &bp->u.rim_pdu; + struct bssgp_ran_information_pdu resp_pdu; + struct osmo_cell_global_id_ps dst_addr; + struct gprs_rlcmac_bts *bts; + + /* At the moment we only support GERAN, so we block all other network + * types here. */ + if (pdu->routing_info_dest.discr != BSSGP_RIM_ROUTING_INFO_GERAN) { + LOGP(DRIM, LOGL_ERROR, + "BSSGP RIM (NSEI=%u) only GERAN supported, destination cell is not a GERAN cell -- rejected.\n", + nsei); + return bssgp_tx_status(BSSGP_CAUSE_UNKN_RIM_AI, NULL, msg); + } + if (pdu->routing_info_src.discr != BSSGP_RIM_ROUTING_INFO_GERAN) { + LOGP(DRIM, LOGL_ERROR, + "BSSGP RIM (NSEI=%u) only GERAN supported, source cell is not a GERAN cell -- rejected.\n", nsei); + return bssgp_tx_status(BSSGP_CAUSE_UNKN_RIM_AI, NULL, msg); + } + + /* Check if the RIM pdu is really addressed to this PCU, see also + * 3GPP TS 48.018, section 8c.3.1.2 */ + gprs_ra_id_ci_to_cgi_ps(&dst_addr, &pdu->routing_info_dest.geran.raid, + pdu->routing_info_dest.geran.cid); + bts = gprs_pcu_get_bts_by_cgi_ps(the_pcu, &dst_addr); + if (!bts) { + LOGP(DRIM, LOGL_ERROR, "BSSGP RIM (NSEI=%u) cell %s unknown to this pcu\n", + nsei, osmo_cgi_ps_name(&dst_addr)); + return bssgp_tx_status(BSSGP_CAUSE_UNKN_DST, NULL, msg); + } + + /* Check if the incoming RIM PDU is parseable, if not we must report + * an error to the controlling BSS 3GPP TS 48.018, 8c.3.4 and 8c.3.4.2 */ + if (!pdu->decoded_present) { + LOGP(DRIM, LOGL_ERROR, "BSSGP RIM (NSEI=%u) errornous RIM PDU received -- rejected.\n", nsei); + format_response_pdu_err(&resp_pdu, pdu); + return 0; + } + + /* Check if the RIM container inside the incoming RIM PDU has the correct + * application ID */ + if (!match_app_id(pdu, BSSGP_RAN_INF_APP_ID_NACC)) { + LOGP(DRIM, LOGL_ERROR, + "BSSGP RIM (NSEI=%u) RIM PDU with unknown/wrong application ID received -- rejected.\n", nsei); + format_response_pdu_err(&resp_pdu, pdu); + return 0; + } + + /* Handle incoming RIM container */ + switch (pdu->rim_cont_iei) { + case BSSGP_IE_RI_REQ_RIM_CONTAINER: + LOGP(DRIM, LOGL_NOTICE, "BSSGP RIM (NSEI=%u) responding to RAN INFORMATION REQUEST not yet implemented!\n", nsei); + break; + case BSSGP_IE_RI_RIM_CONTAINER: + LOGP(DRIM, LOGL_NOTICE, "BSSGP RIM (NSEI=%u) responding to RAN INFORMATION not yet implemented!\n", nsei); + break; + case BSSGP_IE_RI_APP_ERROR_RIM_CONT: + case BSSGP_IE_RI_ACK_RIM_CONTAINER: + case BSSGP_IE_RI_ERROR_RIM_COINTAINER: + LOGP(DRIM, LOGL_ERROR, "BSSGP RIM (NSEI=%u) RIM PDU not handled by this application\n", nsei); + return -EINVAL; + default: + /* This should never happen. If the RIM PDU is parsed correctly, then the rim_cont_iei will + * be set to one of the cases above and if parsing failes this switch statement is guarded + * by the check on decoded_present above */ + OSMO_ASSERT(false); + } + + return 0; +} diff --git a/src/gprs_bssgp_rim.h b/src/gprs_bssgp_rim.h new file mode 100644 index 0000000..5fac56f --- /dev/null +++ b/src/gprs_bssgp_rim.h @@ -0,0 +1,24 @@ +/* gprs_bssgp_rim.h + * + * Copyright (C) 2021 by sysmocom - s.f.m.c. GmbH + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + +#pragma once + +struct osmo_bssgp_prim; + +int handle_rim(struct osmo_bssgp_prim *bp); diff --git a/src/gprs_debug.cpp b/src/gprs_debug.cpp index a790e3f..669ea27 100644 --- a/src/gprs_debug.cpp +++ b/src/gprs_debug.cpp @@ -119,6 +119,13 @@ .loglevel = LOGL_NOTICE, .enabled = 1, }, + [DRIM] = { + .name = "DRIM", + .color = "\033[1;38m", + .description = "RAN Information Management (RIM)", + .loglevel = LOGL_NOTICE, + .enabled = 1, + }, }; static int filter_fn(const struct log_context *ctx, diff --git a/src/gprs_debug.h b/src/gprs_debug.h index 84a0a07..8df405a 100644 --- a/src/gprs_debug.h +++ b/src/gprs_debug.h @@ -46,6 +46,7 @@ DTBFUL, DNS, DPCU, + DRIM, aDebug_LastEntry }; diff --git a/src/gprs_pcu.c b/src/gprs_pcu.c index d291e71..32259b8 100644 --- a/src/gprs_pcu.c +++ b/src/gprs_pcu.c @@ -116,6 +116,16 @@ return NULL; } +struct gprs_rlcmac_bts *gprs_pcu_get_bts_by_cgi_ps(struct gprs_pcu *pcu, struct osmo_cell_global_id_ps *cgi_ps) +{ + struct gprs_rlcmac_bts *pos; + llist_for_each_entry(pos, &pcu->bts_list, list) { + if (memcmp(&pos->cgi_ps, cgi_ps, sizeof(*cgi_ps)) == 0) + return pos; + } + return NULL; +} + void gprs_pcu_set_initial_cs(struct gprs_pcu *pcu, uint8_t cs_dl, uint8_t cs_ul) { struct gprs_rlcmac_bts *bts; diff --git a/src/gprs_pcu.h b/src/gprs_pcu.h index 058d102..a1cd1ed 100644 --- a/src/gprs_pcu.h +++ b/src/gprs_pcu.h @@ -124,6 +124,7 @@ struct gprs_pcu *gprs_pcu_alloc(void *ctx); struct gprs_rlcmac_bts *gprs_pcu_get_bts_by_nr(struct gprs_pcu *pcu, uint8_t bts_nr); +struct gprs_rlcmac_bts *gprs_pcu_get_bts_by_cgi_ps(struct gprs_pcu *pcu, struct osmo_cell_global_id_ps *cgi_ps); void gprs_pcu_set_initial_cs(struct gprs_pcu *pcu, uint8_t cs_dl, uint8_t cs_ul); void gprs_pcu_set_initial_mcs(struct gprs_pcu *pcu, uint8_t mcs_dl, uint8_t mcs_ul); -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22364 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ia0ade0e97ea781ec655439c008b6cefaf3e90dec Gerrit-Change-Number: 22364 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 21 17:59:24 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 21 Jan 2021 17:59:24 +0000 Subject: Change in osmo-pcu[master]: Initial handling support for RIM messages In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22364 ) Change subject: Initial handling support for RIM messages ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22364 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ia0ade0e97ea781ec655439c008b6cefaf3e90dec Gerrit-Change-Number: 22364 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: dexter Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Thu, 21 Jan 2021 17:59:24 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 21 19:54:26 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 21 Jan 2021 19:54:26 +0000 Subject: Change in docker-playground[master]: osmo-gbproxy: fix configuration References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/22365 ) Change subject: osmo-gbproxy: fix configuration ...................................................................... osmo-gbproxy: fix configuration also, only change those values from their default values that are neccessary to change; fall-back on the defaults whenever possible. Change-Id: I5fba21ddf1854ed2b4f829785ab016dfa284456e --- M ttcn3-gbproxy-test-fr/GBProxy_Tests.cfg M ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg M ttcn3-gbproxy-test/GBProxy_Tests.cfg M ttcn3-gbproxy-test/osmo-gbproxy.cfg 4 files changed, 15 insertions(+), 56 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/65/22365/1 diff --git a/ttcn3-gbproxy-test-fr/GBProxy_Tests.cfg b/ttcn3-gbproxy-test-fr/GBProxy_Tests.cfg index 8a95e2e..361b32c 100644 --- a/ttcn3-gbproxy-test-fr/GBProxy_Tests.cfg +++ b/ttcn3-gbproxy-test-fr/GBProxy_Tests.cfg @@ -20,23 +20,15 @@ { provider := { ip := { - address_family := AF_INET, local_ip := "172.18.25.103", - local_udp_port := 23000, - remote_ip := "172.18.25.10", - data_weight := 1, - signalling_weight := 0 + remote_ip := "172.18.25.10" } } }, { provider := { ip := { - address_family := AF_INET, local_ip := "172.18.25.103", - local_udp_port := 23000, - remote_ip := "172.18.25.10", - data_weight := 0, - signalling_weight := 1 + remote_ip := "172.18.25.10" } } } @@ -47,23 +39,15 @@ { provider := { ip := { - address_family := AF_INET, local_ip := "172.18.25.103", - local_udp_port := 24000, - remote_ip := "172.18.25.10", - data_weight := 1, - signalling_weight := 0 + remote_ip := "172.18.25.10" } } }, { provider := { ip := { - address_family := AF_INET, local_ip := "172.18.25.103", - local_udp_port := 24000, - remote_ip := "172.18.25.10", - data_weight := 0, - signalling_weight := 1 + remote_ip := "172.18.25.10" } } } diff --git a/ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg b/ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg index a4a241d..7d26b3c 100644 --- a/ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg +++ b/ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg @@ -31,9 +31,9 @@ bind udp local listen 172.18.25.10 23000 nse 101 - ip-sns 172.18.25.103 23000 + ip-sns 172.18.25.103 7777 nse 102 - ip-sns 172.18.25.103 24000 + ip-sns 172.18.25.103 8888 bind fr hdlcnet1 fr hdlcnet1 frnet bind fr hdlcnet2 diff --git a/ttcn3-gbproxy-test/GBProxy_Tests.cfg b/ttcn3-gbproxy-test/GBProxy_Tests.cfg index 8638586..3ad875c 100644 --- a/ttcn3-gbproxy-test/GBProxy_Tests.cfg +++ b/ttcn3-gbproxy-test/GBProxy_Tests.cfg @@ -19,23 +19,15 @@ { provider := { ip := { - address_family := AF_INET, local_ip := "172.18.24.103", - local_udp_port := 23000, - remote_ip := "172.18.24.10", - data_weight := 1, - signalling_weight := 0 + remote_ip := "172.18.24.10" } } }, { provider := { ip := { - address_family := AF_INET, local_ip := "172.18.24.103", - local_udp_port := 23000, - remote_ip := "172.18.24.10", - data_weight := 0, - signalling_weight := 1 + remote_ip := "172.18.24.10" } } } @@ -46,23 +38,15 @@ { provider := { ip := { - address_family := AF_INET, local_ip := "172.18.24.103", - local_udp_port := 24000, - remote_ip := "172.18.24.10", - data_weight := 1, - signalling_weight := 0 + remote_ip := "172.18.24.10" } } }, { provider := { ip := { - address_family := AF_INET, local_ip := "172.18.24.103", - local_udp_port := 24000, - remote_ip := "172.18.24.10", - data_weight := 0, - signalling_weight := 1 + remote_ip := "172.18.24.10" } } } @@ -75,11 +59,8 @@ { provider := { ip := { - address_family := AF_INET, local_ip := "172.18.24.103", - remote_ip := "172.18.24.10", - data_weight := 1, - signalling_weight := 1 + remote_ip := "172.18.24.10" } } } @@ -89,11 +70,8 @@ { provider := { ip := { - address_family := AF_INET, local_ip := "172.18.24.103", - remote_ip := "172.18.24.10", - data_weight := 1, - signalling_weight := 1 + remote_ip := "172.18.24.10" } } } @@ -103,11 +81,8 @@ { provider := { ip := { - address_family := AF_INET, local_ip := "172.18.24.103", - remote_ip := "172.18.24.10", - data_weight := 1, - signalling_weight := 1 + remote_ip := "172.18.24.10" } } } diff --git a/ttcn3-gbproxy-test/osmo-gbproxy.cfg b/ttcn3-gbproxy-test/osmo-gbproxy.cfg index 743e6dc..6f49f06 100644 --- a/ttcn3-gbproxy-test/osmo-gbproxy.cfg +++ b/ttcn3-gbproxy-test/osmo-gbproxy.cfg @@ -32,9 +32,9 @@ listen 172.18.24.10 23000 accept-ipaccess nse 101 - ip-sns 172.18.24.103 23000 + ip-sns 172.18.24.103 7777 nse 102 - ip-sns 172.18.24.103 24000 + ip-sns 172.18.24.103 8888 timer tns-block 3 timer tns-block-retries 3 timer tns-reset 3 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22365 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I5fba21ddf1854ed2b4f829785ab016dfa284456e Gerrit-Change-Number: 22365 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 21 19:54:51 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 21 Jan 2021 19:54:51 +0000 Subject: Change in docker-playground[master]: osmo-gbproxy: fix configuration In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22365 ) Change subject: osmo-gbproxy: fix configuration ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22365 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I5fba21ddf1854ed2b4f829785ab016dfa284456e Gerrit-Change-Number: 22365 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 21 Jan 2021 19:54:51 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 21 19:54:54 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 21 Jan 2021 19:54:54 +0000 Subject: Change in docker-playground[master]: osmo-gbproxy: fix configuration In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22365 ) Change subject: osmo-gbproxy: fix configuration ...................................................................... osmo-gbproxy: fix configuration also, only change those values from their default values that are neccessary to change; fall-back on the defaults whenever possible. Change-Id: I5fba21ddf1854ed2b4f829785ab016dfa284456e --- M ttcn3-gbproxy-test-fr/GBProxy_Tests.cfg M ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg M ttcn3-gbproxy-test/GBProxy_Tests.cfg M ttcn3-gbproxy-test/osmo-gbproxy.cfg 4 files changed, 15 insertions(+), 56 deletions(-) Approvals: laforge: Looks good to me, approved; Verified diff --git a/ttcn3-gbproxy-test-fr/GBProxy_Tests.cfg b/ttcn3-gbproxy-test-fr/GBProxy_Tests.cfg index 8a95e2e..361b32c 100644 --- a/ttcn3-gbproxy-test-fr/GBProxy_Tests.cfg +++ b/ttcn3-gbproxy-test-fr/GBProxy_Tests.cfg @@ -20,23 +20,15 @@ { provider := { ip := { - address_family := AF_INET, local_ip := "172.18.25.103", - local_udp_port := 23000, - remote_ip := "172.18.25.10", - data_weight := 1, - signalling_weight := 0 + remote_ip := "172.18.25.10" } } }, { provider := { ip := { - address_family := AF_INET, local_ip := "172.18.25.103", - local_udp_port := 23000, - remote_ip := "172.18.25.10", - data_weight := 0, - signalling_weight := 1 + remote_ip := "172.18.25.10" } } } @@ -47,23 +39,15 @@ { provider := { ip := { - address_family := AF_INET, local_ip := "172.18.25.103", - local_udp_port := 24000, - remote_ip := "172.18.25.10", - data_weight := 1, - signalling_weight := 0 + remote_ip := "172.18.25.10" } } }, { provider := { ip := { - address_family := AF_INET, local_ip := "172.18.25.103", - local_udp_port := 24000, - remote_ip := "172.18.25.10", - data_weight := 0, - signalling_weight := 1 + remote_ip := "172.18.25.10" } } } diff --git a/ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg b/ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg index a4a241d..7d26b3c 100644 --- a/ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg +++ b/ttcn3-gbproxy-test-fr/osmo-gbproxy.cfg @@ -31,9 +31,9 @@ bind udp local listen 172.18.25.10 23000 nse 101 - ip-sns 172.18.25.103 23000 + ip-sns 172.18.25.103 7777 nse 102 - ip-sns 172.18.25.103 24000 + ip-sns 172.18.25.103 8888 bind fr hdlcnet1 fr hdlcnet1 frnet bind fr hdlcnet2 diff --git a/ttcn3-gbproxy-test/GBProxy_Tests.cfg b/ttcn3-gbproxy-test/GBProxy_Tests.cfg index 8638586..3ad875c 100644 --- a/ttcn3-gbproxy-test/GBProxy_Tests.cfg +++ b/ttcn3-gbproxy-test/GBProxy_Tests.cfg @@ -19,23 +19,15 @@ { provider := { ip := { - address_family := AF_INET, local_ip := "172.18.24.103", - local_udp_port := 23000, - remote_ip := "172.18.24.10", - data_weight := 1, - signalling_weight := 0 + remote_ip := "172.18.24.10" } } }, { provider := { ip := { - address_family := AF_INET, local_ip := "172.18.24.103", - local_udp_port := 23000, - remote_ip := "172.18.24.10", - data_weight := 0, - signalling_weight := 1 + remote_ip := "172.18.24.10" } } } @@ -46,23 +38,15 @@ { provider := { ip := { - address_family := AF_INET, local_ip := "172.18.24.103", - local_udp_port := 24000, - remote_ip := "172.18.24.10", - data_weight := 1, - signalling_weight := 0 + remote_ip := "172.18.24.10" } } }, { provider := { ip := { - address_family := AF_INET, local_ip := "172.18.24.103", - local_udp_port := 24000, - remote_ip := "172.18.24.10", - data_weight := 0, - signalling_weight := 1 + remote_ip := "172.18.24.10" } } } @@ -75,11 +59,8 @@ { provider := { ip := { - address_family := AF_INET, local_ip := "172.18.24.103", - remote_ip := "172.18.24.10", - data_weight := 1, - signalling_weight := 1 + remote_ip := "172.18.24.10" } } } @@ -89,11 +70,8 @@ { provider := { ip := { - address_family := AF_INET, local_ip := "172.18.24.103", - remote_ip := "172.18.24.10", - data_weight := 1, - signalling_weight := 1 + remote_ip := "172.18.24.10" } } } @@ -103,11 +81,8 @@ { provider := { ip := { - address_family := AF_INET, local_ip := "172.18.24.103", - remote_ip := "172.18.24.10", - data_weight := 1, - signalling_weight := 1 + remote_ip := "172.18.24.10" } } } diff --git a/ttcn3-gbproxy-test/osmo-gbproxy.cfg b/ttcn3-gbproxy-test/osmo-gbproxy.cfg index 743e6dc..6f49f06 100644 --- a/ttcn3-gbproxy-test/osmo-gbproxy.cfg +++ b/ttcn3-gbproxy-test/osmo-gbproxy.cfg @@ -32,9 +32,9 @@ listen 172.18.24.10 23000 accept-ipaccess nse 101 - ip-sns 172.18.24.103 23000 + ip-sns 172.18.24.103 7777 nse 102 - ip-sns 172.18.24.103 24000 + ip-sns 172.18.24.103 8888 timer tns-block 3 timer tns-block-retries 3 timer tns-reset 3 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22365 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I5fba21ddf1854ed2b4f829785ab016dfa284456e Gerrit-Change-Number: 22365 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 21 20:00:31 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 21 Jan 2021 20:00:31 +0000 Subject: Change in docker-playground[master]: ttcn3-gbproxy-test: s/sgsn/gbproxy/ References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/22366 ) Change subject: ttcn3-gbproxy-test: s/sgsn/gbproxy/ ...................................................................... ttcn3-gbproxy-test: s/sgsn/gbproxy/ the jenkins.sh script was copied from the SGSN test suite and still mentioned sgsn at several places when actually intending to mention gbproxy. Change-Id: I8709121d8501da4afc1c8dda70356096d331a9b0 --- M ttcn3-gbproxy-test/jenkins.sh 1 file changed, 7 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/66/22366/1 diff --git a/ttcn3-gbproxy-test/jenkins.sh b/ttcn3-gbproxy-test/jenkins.sh index 8150430..2120f90 100755 --- a/ttcn3-gbproxy-test/jenkins.sh +++ b/ttcn3-gbproxy-test/jenkins.sh @@ -15,8 +15,8 @@ cp GBProxy_Tests.cfg $VOL_BASE_DIR/gbproxy-tester/ -mkdir $VOL_BASE_DIR/sgsn -cp osmo-gbproxy.cfg $VOL_BASE_DIR/sgsn/ +mkdir $VOL_BASE_DIR/gbproxy +cp osmo-gbproxy.cfg $VOL_BASE_DIR/gbproxy/ # Disable features not in latest yet if [ "$IMAGE_SUFFIX" = "latest" ]; then @@ -25,17 +25,17 @@ mkdir $VOL_BASE_DIR/unix -echo Starting container with SGSN +echo Starting container with gbproxy docker run --rm \ $(docker_network_params $SUBNET 10) \ --ulimit core=-1 \ - -v $VOL_BASE_DIR/sgsn:/data \ - --name ${BUILD_TAG}-sgsn -d \ + -v $VOL_BASE_DIR/gbproxy:/data \ + --name ${BUILD_TAG}-gbproxy -d \ $DOCKER_ARGS \ $REPO_USER/osmo-sgsn-$IMAGE_SUFFIX \ /bin/sh -c "osmo-gbproxy -c /data/osmo-gbproxy.cfg >/data/osmo-gbproxy.log 2>&1" -echo Starting container with SGSN testsuite +echo Starting container with gbproxy testsuite docker run --rm \ $(docker_network_params $SUBNET 103) \ --ulimit core=-1 \ @@ -57,7 +57,7 @@ $REPO_USER/ttcn3-gbproxy-test echo Stopping containers -docker container kill ${BUILD_TAG}-sgsn +docker container kill ${BUILD_TAG}-gbproxy network_remove collect_logs -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22366 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I8709121d8501da4afc1c8dda70356096d331a9b0 Gerrit-Change-Number: 22366 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 21 20:04:12 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 21 Jan 2021 20:04:12 +0000 Subject: Change in osmo-bts[master]: pcu_sock: send SI1, SI3 and SI3 along with PCUIF info indication References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/22367 ) Change subject: pcu_sock: send SI1, SI3 and SI3 along with PCUIF info indication ...................................................................... pcu_sock: send SI1, SI3 and SI3 along with PCUIF info indication The new version (0x0b) of the PCUIF offers fields to transfer system information 1, 3 and 13 with the info indication that is sent by osmo-bts on startup. The system information is needed by the NACC RIM application which runs inside osmo-pcu. Depends osmo-pcu TODO!!!!!!!!!!!!!!!!! Change-Id: I1726c9e29cc59c499dfabbdaf63c0f1a09984764 Related: SYS#5103 Change-Id: Ie8c3467b6cf8b8bfdeee9a281412d814cbc379b8 --- M include/osmo-bts/pcuif_proto.h M src/common/pcu_sock.c 2 files changed, 25 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/67/22367/1 diff --git a/include/osmo-bts/pcuif_proto.h b/include/osmo-bts/pcuif_proto.h index 8f72602..7c48835 100644 --- a/include/osmo-bts/pcuif_proto.h +++ b/include/osmo-bts/pcuif_proto.h @@ -6,7 +6,7 @@ #define PCU_SOCK_DEFAULT "/tmp/pcu_bts" -#define PCU_IF_VERSION 0x0a +#define PCU_IF_VERSION 0x0b #define TXT_MAX_LEN 128 /* msg_type */ @@ -175,6 +175,13 @@ struct in_addr v4; struct in6_addr v6; } remote_ip[2]; + /* RIM */ + uint8_t si1[GSM_MACBLOCK_LEN]; + uint8_t si1_is_set; + uint8_t si3[GSM_MACBLOCK_LEN]; + uint8_t si3_is_set; + uint8_t si13[GSM_MACBLOCK_LEN]; + uint8_t si13_is_set; } __attribute__ ((packed)); struct gsm_pcu_if_act_req { diff --git a/src/common/pcu_sock.c b/src/common/pcu_sock.c index 0466698..b5c5f4b 100644 --- a/src/common/pcu_sock.c +++ b/src/common/pcu_sock.c @@ -348,6 +348,23 @@ } } + /* RIM */ + if (GSM_BTS_HAS_SI(bts, SYSINFO_TYPE_1)) { + memcpy(info_ind->si1, GSM_BTS_SI(bts, SYSINFO_TYPE_1), + sizeof(info_ind->si1)); + info_ind->si1_is_set = true; + } + if (GSM_BTS_HAS_SI(bts, SYSINFO_TYPE_3)) { + memcpy(info_ind->si3, GSM_BTS_SI(bts, SYSINFO_TYPE_3), + sizeof(info_ind->si3)); + info_ind->si3_is_set = true; + } + if (GSM_BTS_HAS_SI(bts, SYSINFO_TYPE_13)) { + memcpy(info_ind->si13, GSM_BTS_SI(bts, SYSINFO_TYPE_13), + sizeof(info_ind->si13)); + info_ind->si13_is_set = true; + } + llist_for_each_entry(trx, &bts->trx_list, list) { if (trx->nr >= ARRAY_SIZE(info_ind->trx)) { LOGPTRX(trx, DPCU, LOGL_NOTICE, "PCU interface (version %u) " -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22367 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ie8c3467b6cf8b8bfdeee9a281412d814cbc379b8 Gerrit-Change-Number: 22367 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 21 20:07:26 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 21 Jan 2021 20:07:26 +0000 Subject: Change in osmo-sgsn[master]: sgsn_rim: Add routing for (GERAN) BSSGP RIM messages In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22110 to look at the new patch set (#4). Change subject: sgsn_rim: Add routing for (GERAN) BSSGP RIM messages ...................................................................... sgsn_rim: Add routing for (GERAN) BSSGP RIM messages The SGSN currently does not forward BSSGP RIM messages. Related: SYS#5103 Depends: libosmocore Icd667f41d5735de56cd9fb257670337c679dd258 Change-Id: I6fde8ab8955660b48000ca1b650cfc7c7b2e24ba --- M include/osmocom/sgsn/Makefile.am M include/osmocom/sgsn/debug.h A include/osmocom/sgsn/sgsn_rim.h M src/sgsn/Makefile.am M src/sgsn/sgsn_main.c A src/sgsn/sgsn_rim.c 6 files changed, 73 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/10/22110/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22110 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I6fde8ab8955660b48000ca1b650cfc7c7b2e24ba Gerrit-Change-Number: 22110 Gerrit-PatchSet: 4 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 21 20:34:33 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 21 Jan 2021 20:34:33 +0000 Subject: Change in osmo-sgsn[master]: sgsn_rim: Add routing for (GERAN) BSSGP RIM messages In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22110 ) Change subject: sgsn_rim: Add routing for (GERAN) BSSGP RIM messages ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22110 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I6fde8ab8955660b48000ca1b650cfc7c7b2e24ba Gerrit-Change-Number: 22110 Gerrit-PatchSet: 4 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 21 Jan 2021 20:34:33 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 21 20:34:52 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 21 Jan 2021 20:34:52 +0000 Subject: Change in docker-playground[master]: ttcn3-gbproxy-test: s/sgsn/gbproxy/ In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22366 ) Change subject: ttcn3-gbproxy-test: s/sgsn/gbproxy/ ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22366 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I8709121d8501da4afc1c8dda70356096d331a9b0 Gerrit-Change-Number: 22366 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 21 Jan 2021 20:34:52 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 21 21:54:48 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 21 Jan 2021 21:54:48 +0000 Subject: Change in osmo-pcu[master]: gprs_bssgp_rim: add serving BSS NACC application References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22368 ) Change subject: gprs_bssgp_rim: add serving BSS NACC application ...................................................................... gprs_bssgp_rim: add serving BSS NACC application Answer an incoming RAN INFORMATION REQUEST RIM PDU with RAN INFORMATION PDU that contains system information type 1, 3 and 13 Depends: osmo-pcu TODO!!!!!!!!!!!!!!! Change-Id: Id72118120c14984d2fb1b918b41fac4868150d41 Related: SYS#5103 --- M include/osmocom/pcu/pcuif_proto.h M src/bts.h M src/gprs_bssgp_rim.c M src/pcu_l1_if.cpp 4 files changed, 100 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/68/22368/1 diff --git a/include/osmocom/pcu/pcuif_proto.h b/include/osmocom/pcu/pcuif_proto.h index cdd73d9..6ac9a02 100644 --- a/include/osmocom/pcu/pcuif_proto.h +++ b/include/osmocom/pcu/pcuif_proto.h @@ -1,12 +1,13 @@ #ifndef _PCUIF_PROTO_H #define _PCUIF_PROTO_H +#include #include #include #define PCU_SOCK_DEFAULT "/tmp/pcu_bts" -#define PCU_IF_VERSION 0x0a +#define PCU_IF_VERSION 0x0b #define TXT_MAX_LEN 128 /* msg_type */ @@ -177,6 +178,13 @@ struct in_addr v4; struct in6_addr v6; } remote_ip[PCU_IF_NUM_NSVC]; + /* RIM */ + uint8_t si1[GSM_MACBLOCK_LEN]; + uint8_t si1_is_set; + uint8_t si3[GSM_MACBLOCK_LEN]; + uint8_t si3_is_set; + uint8_t si13[GSM_MACBLOCK_LEN]; + uint8_t si13_is_set; } __attribute__ ((packed)); struct gsm_pcu_if_act_req { diff --git a/src/bts.h b/src/bts.h index 7f437e3..195c44f 100644 --- a/src/bts.h +++ b/src/bts.h @@ -215,6 +215,10 @@ uint8_t n3105; struct gprs_rlcmac_trx trx[8]; + uint8_t si1[GSM_MACBLOCK_LEN]; + bool si1_is_set; + uint8_t si3[GSM_MACBLOCK_LEN]; + bool si3_is_set; uint8_t si13[GSM_MACBLOCK_LEN]; bool si13_is_set; diff --git a/src/gprs_bssgp_rim.c b/src/gprs_bssgp_rim.c index 8cb330f..3d4b7a9 100644 --- a/src/gprs_bssgp_rim.c +++ b/src/gprs_bssgp_rim.c @@ -23,6 +23,9 @@ #include #include #include +#include +#include +#include #include "gprs_debug.h" #include "gprs_pcu.h" @@ -48,6 +51,60 @@ memcpy(&resp_pdu->routing_info_src, &req_pdu->routing_info_dest, sizeof(resp_pdu->routing_info_src)); } +/* Fill NACC application container with data (cell identifier, sysinfo) */ +static void fill_app_cont_nacc(struct bssgp_ran_inf_app_cont_nacc *app_cont, const struct gprs_rlcmac_bts *bts) +{ + struct bssgp_bvc_ctx *bctx = gprs_bssgp_pcu_current_bctx(); + + app_cont->reprt_cell.rai.lac.plmn.mcc = bctx->ra_id.mcc; + app_cont->reprt_cell.rai.lac.plmn.mnc = bctx->ra_id.mnc; + app_cont->reprt_cell.rai.lac.plmn.mnc_3_digits = bctx->ra_id.mnc_3_digits; + app_cont->reprt_cell.rai.lac.lac = bctx->ra_id.lac; + app_cont->reprt_cell.rai.rac = bctx->ra_id.rac; + app_cont->reprt_cell.cell_identity = bctx->cell_id; + app_cont->num_si = 0; + + if (bts->si1_is_set) { + app_cont->si[app_cont->num_si] = bts->si1 + 2; + app_cont->num_si++; + } + + if (bts->si3_is_set) { + app_cont->si[app_cont->num_si] = bts->si3 + 2; + app_cont->num_si++; + } + + if (bts->si13_is_set) { + app_cont->si[app_cont->num_si] = bts->si13 + 2; + app_cont->num_si++; + } + + /* Note: It is possible that the resulting PDU will not contain any system information, even if this is + * an unlikely case since the BTS immediately updates the system information after startup. The + * specification permits to send zero system information, see also: 3GPP TS 48.018 section 11.3.63.2.1 */ +} + +/* Format a RAN INFORMATION PDU that contains the requested system information */ +static void format_response_pdu(struct bssgp_ran_information_pdu *resp_pdu, struct bssgp_ran_information_pdu *req_pdu, + const struct gprs_rlcmac_bts *bts) +{ + memset(resp_pdu, 0, sizeof(*resp_pdu)); + mirror_rim_routing_info(resp_pdu, req_pdu); + + resp_pdu->decoded.rim_cont = (struct bssgp_ran_inf_rim_cont) { + .app_id = BSSGP_RAN_INF_APP_ID_NACC, + .seq_num = 1, /* single report has only one message in response */ + .pdu_ind = { + .pdu_type_ext = RIM_PDU_TYPE_SING_REP, + }, + .prot_ver = 1, + }; + + fill_app_cont_nacc(&resp_pdu->decoded.rim_cont.u.app_cont_nacc, bts); + resp_pdu->decoded_present = true; + resp_pdu->rim_cont_iei = BSSGP_IE_RI_RIM_CONTAINER; +} + /* Format a RAN INFORMATION ERROR PDU */ static void format_response_pdu_err(struct bssgp_ran_information_pdu *resp_pdu, struct bssgp_ran_information_pdu *req_pdu) @@ -148,7 +205,9 @@ /* Handle incoming RIM container */ switch (pdu->rim_cont_iei) { case BSSGP_IE_RI_REQ_RIM_CONTAINER: - LOGP(DRIM, LOGL_NOTICE, "BSSGP RIM (NSEI=%u) responding to RAN INFORMATION REQUEST not yet implemented!\n", nsei); + LOGP(DRIM, LOGL_NOTICE, "BSSGP RIM (NSEI=%u) responding to RAN INFORMATION REQUEST ...\n", nsei); + format_response_pdu(&resp_pdu, pdu, bts); + bssgp_tx_rim(&resp_pdu, nsei); break; case BSSGP_IE_RI_RIM_CONTAINER: LOGP(DRIM, LOGL_NOTICE, "BSSGP RIM (NSEI=%u) responding to RAN INFORMATION not yet implemented!\n", nsei); diff --git a/src/pcu_l1_if.cpp b/src/pcu_l1_if.cpp index 8ae74d5..7054d1b 100644 --- a/src/pcu_l1_if.cpp +++ b/src/pcu_l1_if.cpp @@ -656,6 +656,33 @@ goto bssgp_failed; } + if (info_ind->si1_is_set) { + LOGP(DL1IF, LOGL_DEBUG, " si1=%s\n", osmo_hexdump_nospc(info_ind->si1, GSM_MACBLOCK_LEN)); + memcpy(bts->si1, info_ind->si1, GSM_MACBLOCK_LEN); + bts->si1_is_set = true; + } else { + LOGP(DL1IF, LOGL_DEBUG, " si1=(not set)\n"); + bts->si1_is_set = false; + } + + if (info_ind->si3_is_set) { + LOGP(DL1IF, LOGL_DEBUG, " si3=%s\n", osmo_hexdump_nospc(info_ind->si3, GSM_MACBLOCK_LEN)); + memcpy(bts->si3, info_ind->si3, GSM_MACBLOCK_LEN); + bts->si3_is_set = true; + } else { + LOGP(DL1IF, LOGL_DEBUG, " si3=(not set)\n"); + bts->si3_is_set = false; + } + + if (info_ind->si13_is_set) { + LOGP(DL1IF, LOGL_DEBUG, " si13=%s\n", osmo_hexdump_nospc(info_ind->si13, GSM_MACBLOCK_LEN)); + memcpy(bts->si13, info_ind->si13, GSM_MACBLOCK_LEN); + bts->si13_is_set = true; + } else { + LOGP(DL1IF, LOGL_DEBUG, " si13=(not set)\n"); + bts->si13_is_set = false; + } + if (info_ind->t3142) { /* if timer values are set */ osmo_tdef_set(bts->T_defs_bts, 3142, info_ind->t3142, OSMO_TDEF_S); osmo_tdef_set(bts->T_defs_bts, 3169, info_ind->t3169, OSMO_TDEF_S); -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22368 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Id72118120c14984d2fb1b918b41fac4868150d41 Gerrit-Change-Number: 22368 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 21 21:57:56 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 21 Jan 2021 21:57:56 +0000 Subject: Change in osmo-pcu[master]: Initial handling support for RIM messages In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22364 ) Change subject: Initial handling support for RIM messages ...................................................................... Patch Set 2: Code-Review+2 I have now re-inserted the related bits that add the serving BSS part of the RIM code. See also: https://gerrit.osmocom.org/c/osmo-pcu/+/22368 So far everything looks good. My TTCN3 tests pass as they should. -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22364 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ia0ade0e97ea781ec655439c008b6cefaf3e90dec Gerrit-Change-Number: 22364 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Comment-Date: Thu, 21 Jan 2021 21:57:56 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 21 22:14:57 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 21 Jan 2021 22:14:57 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vc_fsm: fix nullpointer dereference when sending uintdata In-Reply-To: References: Message-ID: Hello Jenkins Builder, lynxis lazus, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22349 to look at the new patch set (#2). Change subject: gprs_ns2_vc_fsm: fix nullpointer dereference when sending uintdata ...................................................................... gprs_ns2_vc_fsm: fix nullpointer dereference when sending uintdata the function gprs_ns2_vc_rx() is called from gprs_ns2.c with tp=NULL. This leads into a null pointer dereference because gprs_ns2_vc_rx() is accessing tp several times. tp is also handed up into the FSM, with the exception of unitdata. Apparently for unitdata tp does not exist, so we can move up the part where unitdata is handed up into the FSM and after that we can check if tp is NULL to make sure the code which is accessing it is not executed. Change-Id: I7d7c95604ba4af4ed4b6019f1d432970225f8d7a --- M src/gb/gprs_ns2_vc_fsm.c 1 file changed, 10 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/49/22349/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22349 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I7d7c95604ba4af4ed4b6019f1d432970225f8d7a Gerrit-Change-Number: 22349 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Assignee: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus Gerrit-CC: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 21 22:15:13 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 21 Jan 2021 22:15:13 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vc_fsm: fix nullpointer dereference when sending uintdata In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22349 ) Change subject: gprs_ns2_vc_fsm: fix nullpointer dereference when sending uintdata ...................................................................... Patch Set 2: (2 comments) https://gerrit.osmocom.org/c/libosmocore/+/22349/1/src/gb/gprs_ns2_vc_fsm.c File src/gb/gprs_ns2_vc_fsm.c: https://gerrit.osmocom.org/c/libosmocore/+/22349/1/src/gb/gprs_ns2_vc_fsm.c at 759 PS1, Line 759: if (nsh->pdu_type == NS_PDUT_UNITDATA) { : /* UNITDATA have to free msg because it might send the msg layer upwards */ : osmo_fsm_inst_dispatch(fi, GPRS_NS2_EV_RX_UNITDATA, msg); : return 0; : } > why are we moving this block before the call to gprs_ns2_validate() ? If the validation fails, why i [?] I have moved it since gprs_ns2_validate() also get a tp pointer, which is NULL on unit-data. gprs_ns2_validate() would segfault then. (See also gprs_ns2.c line 1102, however I do not know if this is allowed though) https://gerrit.osmocom.org/c/libosmocore/+/22349/1/src/gb/gprs_ns2_vc_fsm.c at 765 PS1, Line 765: if (!tp) { > do OSMO_ASSERT(tp). A NULL tp should never happen except for UNITDATA. Only UNITDATA is special. Done -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22349 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I7d7c95604ba4af4ed4b6019f1d432970225f8d7a Gerrit-Change-Number: 22349 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Assignee: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus Gerrit-CC: laforge Gerrit-Comment-Date: Thu, 21 Jan 2021 22:15:13 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: laforge Comment-In-Reply-To: lynxis lazus Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 00:01:54 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 22 Jan 2021 00:01:54 +0000 Subject: Change in osmo-bts[master]: pcu_sock: send SI1, SI3 and SI3 along with PCUIF info indication In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/22367 ) Change subject: pcu_sock: send SI1, SI3 and SI3 along with PCUIF info indication ...................................................................... Patch Set 2: This change is ready for review. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22367 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ie8c3467b6cf8b8bfdeee9a281412d814cbc379b8 Gerrit-Change-Number: 22367 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Fri, 22 Jan 2021 00:01:54 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 00:02:55 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 22 Jan 2021 00:02:55 +0000 Subject: Change in osmo-pcu[master]: gprs_bssgp_rim: add serving BSS NACC application In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22368 ) Change subject: gprs_bssgp_rim: add serving BSS NACC application ...................................................................... Patch Set 2: This change is ready for review. -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22368 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Id72118120c14984d2fb1b918b41fac4868150d41 Gerrit-Change-Number: 22368 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 22 Jan 2021 00:02:55 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 00:03:41 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 22 Jan 2021 00:03:41 +0000 Subject: Change in osmo-ttcn3-hacks[master]: PCU_Tests: add testcase TC_rim_ran_info_req_single_rep and _no_si References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369 ) Change subject: PCU_Tests: add testcase TC_rim_ran_info_req_single_rep and _no_si ...................................................................... PCU_Tests: add testcase TC_rim_ran_info_req_single_rep and _no_si Perform a full RAN information request (single report) against the PCU and check the results. Also test what happens when the request is issued at a time where osmo-bts has no system information available. Depends: osmo-pcu Id72118120c14984d2fb1b918b41fac4868150d41 Depends: osmo-bts I1726c9e29cc59c499dfabbdaf63c0f1a09984764 Related: SYS#5103 Change-Id: I9054ab0e969c0fbfdc671c92d44cc61360959adc --- M library/Osmocom_Gb_Types.ttcn M library/PCUIF_Types.ttcn M pcu/PCU_Tests.ttcn M pcu/PCU_Tests_SNS.cfg M pcu/PCU_Tests_SNSv6.cfg 5 files changed, 288 insertions(+), 9 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/69/22369/1 diff --git a/library/Osmocom_Gb_Types.ttcn b/library/Osmocom_Gb_Types.ttcn index 9065097..5d753b2 100644 --- a/library/Osmocom_Gb_Types.ttcn +++ b/library/Osmocom_Gb_Types.ttcn @@ -2493,7 +2493,14 @@ }, rIMApplicationIdentity := app_id } - + template RIM_Application_Identity tr_RIM_Application_Identity(template OCT1 app_id := ?) := { + iEI := '4B'O, + ext := '1'B, + lengthIndicator := { + length1 := 1 + }, + rIMApplicationIdentity := app_id + } /* 3GPP TS 48.018 11.3.62 */ template (value) RIM_Sequence_Number ts_RIM_Sequence_Number(integer seq) := { @@ -2504,6 +2511,20 @@ }, rIMSequenceNumber := int2oct(seq, 4) } + function tr_RIM_Sequence_Number(template integer seq := ?) return template RIM_Sequence_Number { + var template RIM_Sequence_Number ret; + ret.iEI := '4C'O; + ret.ext := '1'B; + ret.lengthIndicator := { length1 := 4 }; + if (istemplatekind(seq, "*")) { + ret.rIMSequenceNumber := *; + } else if (istemplatekind(seq, "?")) { + ret.rIMSequenceNumber := ?; + } else { + ret.rIMSequenceNumber := int2oct(valueof(seq), 4); + } + return ret; + } /* 3GPP TS 48.018 11.3.62a.1 */ template (value) RAN_Information_Request_RIM_Container @@ -2567,10 +2588,34 @@ applContainer_or_ApplErrContainer := app_cont_or_app_err, sON_Transfer_Application_Identity := son_app_id } + template RAN_Information_RIM_Container + tr_RAN_Information_RIM_Container(template RIM_Application_Identity app_id := ?, + template RIM_Sequence_Number seq := ?, + template RIM_PDU_Indications ind := ?, + template RIM_Protocol_Version_Number ver := omit, + template ApplContainer_or_ApplErrContainer app_cont_or_app_err := omit, + template SON_Transfer_Application_Identity_TLV son_app_id := omit) := { + + iEI := '58'O, + ext := '1'B, + lengthIndicator := { + length1 := ? + }, + rIM_Application_Identity := app_id, + rIM_Sequence_Number := seq, + rIM_PDU_Indications := ind, + rIM_Protocol_Version_Number := ver, + applContainer_or_ApplErrContainer := app_cont_or_app_err, + sON_Transfer_Application_Identity := son_app_id + } template (value) ApplContainer_or_ApplErrContainer tsu_ApplContainer_or_ApplErrContainer_NACC(template (value) ApplContainer_or_ApplErrContainer_NACC cont) := { nacc := cont } + template ApplContainer_or_ApplErrContainer + tru_ApplContainer_or_ApplErrContainer_NACC(template ApplContainer_or_ApplErrContainer_NACC cont := ?) := { + nacc := cont + } template (value) ApplContainer_or_ApplErrContainer tsu_ApplContainer_or_ApplErrContainer_SI3(template (value) ApplContainer_or_ApplErrContainer_SI3 cont) := { si3 := cont @@ -2583,6 +2628,10 @@ tsu_ApplContainer_NACC(template (value) BssgpCellId cid, boolean psi_type, integer si_psi_num, octetstring si_psi) := { application_Container := ts_RAN_Information_Application_Container_NACC(cid, psi_type, si_psi_num, si_psi) } + template ApplContainer_or_ApplErrContainer_NACC + tru_ApplContainer_NACC(template BssgpCellId cid := ?, template boolean psi_type := ?, template integer si_psi_num := ?, template octetstring si_psi := ?) := { + application_Container := tr_RAN_Information_Application_Container_NACC(cid, psi_type, si_psi_num, si_psi) + } template (value) ApplContainer_or_ApplErrContainer_NACC tsu_ApplErrContainer_NACC(template (value) BssgpCellId cid, integer cause, @@ -2744,6 +2793,31 @@ number_of_SI_PSI := int2bit(si_psi_num, 7), sI_PSI := si_psi } + function tr_RAN_Information_Application_Container_NACC(template BssgpCellId cid := ?, template boolean psi_type := ?, + template integer si_psi_num := ?, template octetstring si_psi := ?) + return template RAN_Information_Application_Container_NACC { + var template RAN_Information_Application_Container_NACC ret; + ret.iEI := '4E'O; + ret.ext := '1'B; + ret.lengthIndicator := { length1 := ? }; + ret.reporting_Cell_Identifier := t_Cell_Identifier_V(cid); + if (istemplatekind(psi_type, "*")) { + ret.typeBit := *; + } else if (istemplatekind(psi_type, "?")) { + ret.typeBit := ?; + } else { + ret.typeBit := bool2bit(valueof(psi_type)); + } + if (istemplatekind(si_psi_num, "*")) { + ret.number_of_SI_PSI := *; + } else if (istemplatekind(si_psi_num, "?")) { + ret.number_of_SI_PSI := ?; + } else { + ret.number_of_SI_PSI := int2bit(valueof(si_psi_num), 7); + } + ret.sI_PSI := si_psi; + return ret; + } /* 3GPP TS 48.018 11.3.63.2.2 */ template (value) RAN_Information_Application_Container_SI3 @@ -2981,6 +3055,28 @@ pDU_Type_Extension := type_ext, reserved := '0000'B } + function tr_RIM_PDU_Indications(template boolean ack := ?, template BIT3 type_ext := ?) return template RIM_PDU_Indications { + var template RIM_PDU_Indications ret; + ret.iEI := '4F'O; + ret.ext := '1'B; + ret.lengthIndicator := { length1 := 1 }; + if (istemplatekind(ack, "*")) { + ret.ack := *; + } else if (istemplatekind(ack, "?")) { + ret.ack := ?; + } else { + ret.ack := bool2bit(valueof(ack)); + } + if (istemplatekind(type_ext, "*")) { + ret.pDU_Type_Extension := *; + } else if (istemplatekind(type_ext, "?")) { + ret.pDU_Type_Extension := ?; + } else { + ret.pDU_Type_Extension := valueof(type_ext); + } + ret.reserved := '0000'B; + return ret; + } /* 3GPP TS 48.018 11.3.67 */ template (value) RIM_Protocol_Version_Number ts_RIM_Protocol_Version_Number(integer ver) := { @@ -2991,6 +3087,20 @@ }, rIMProtocolVersionNumber := int2oct(ver, 1) } + function tr_RIM_Protocol_Version_Number(template integer ver := ?) return template RIM_Protocol_Version_Number { + var template RIM_Protocol_Version_Number ret; + ret.iEI := '55'O; + ret.ext := '1'B; + ret.lengthIndicator := { length1 := 1 }; + if (istemplatekind(ver, "*")) { + ret.rIMProtocolVersionNumber := *; + } else if (istemplatekind(ver, "?")) { + ret.rIMProtocolVersionNumber := ?; + } else { + ret.rIMProtocolVersionNumber := int2oct(valueof(ver), 1); + } + return ret; + } /* 3GPP TS 48.018 11.3.70 */ const HEX1 RIM_ADDR_GERAN_CELL_ID := '0'H; diff --git a/library/PCUIF_Types.ttcn b/library/PCUIF_Types.ttcn index d6e0867..6c1ec32 100644 --- a/library/PCUIF_Types.ttcn +++ b/library/PCUIF_Types.ttcn @@ -215,12 +215,19 @@ record length(2) of uint16_t nsvci, record length(2) of uint16_t local_port, record length(2) of uint16_t remote_port, - PCUIF_RemoteAddr remote_addr + PCUIF_RemoteAddr remote_addr, + + record length(23) of uint8_t si1, + uint8_t si1_is_set, + record length(23) of uint8_t si3, + uint8_t si3_is_set, + record length(23) of uint8_t si13, + uint8_t si13_is_set } with { - /* NOTE: TITAN is not smart enough to handle 'version < 10' and 'version > 9', + /* NOTE: TITAN is not smart enough to handle 'version < 11' and 'version > 10', * so we cannot support more than two versions at the same time here. Sigh. */ - variant (trx) "CROSSTAG(v09, version = 9; v10, version = 10)" - variant (remote_addr) "CROSSTAG(v09, version = 9; v10, version = 10)" + variant (trx) "CROSSTAG(v09, version = 10; v10, version = 11)" + variant (remote_addr) "CROSSTAG(v09, version = 10; v10, version = 11)" }; type union PCUIF_RemoteAddr { @@ -908,7 +915,13 @@ nsvci := ?, local_port := ?, remote_port := ?, - remote_addr := ? + remote_addr := ?, + si1 := ?, + si1_is_set := ?, + si3 := ?, + si3_is_set := ?, + si13 := ?, + si13_is_set := ? } } } diff --git a/pcu/PCU_Tests.ttcn b/pcu/PCU_Tests.ttcn index 13b33b2..325197c 100644 --- a/pcu/PCU_Tests.ttcn +++ b/pcu/PCU_Tests.ttcn @@ -102,7 +102,13 @@ local_port := { mp_nsconfig.nsvc[0].provider.ip.remote_udp_port, 0 }, remote_port := { mp_nsconfig.nsvc[0].provider.ip.local_udp_port, 0 }, remote_addr := f_PCUIF_ver_INFO_RemoteAddr( - f_PCUIF_AF2addr_type(mp_nsconfig.nsvc[0].provider.ip.address_family), mp_nsconfig.nsvc[0].provider.ip.local_ip) + f_PCUIF_AF2addr_type(mp_nsconfig.nsvc[0].provider.ip.address_family), mp_nsconfig.nsvc[0].provider.ip.local_ip), + si1 := { 85, 6, 25, 143, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 121, 0, 0, 43 }, + si1_is_set := 1, + si3 := { 73, 6, 27, 117, 48, 0, 241, 16, 35, 110, 201, 3, 60, 39, 71, 64, 121, 0, 0, 60, 11, 43, 43 }, + si3_is_set := 1, + si13 := { 1, 6, 0, 144, 0, 24, 90, 111, 201, 224, 132, 16, 171, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43 }, + si13_is_set := 1 } type record lqual_range { @@ -3566,6 +3572,153 @@ f_shutdown(__BFILE__, __LINE__, final := true); } +/* Send a RIM RAN info request to the PCU and verify the response, we expect + * getting the system information back which we have transfered to the PCU via + * PCUIF on startup. */ +testcase TC_rim_ran_info_req_single_rep() runs on RAW_PCU_Test_CT { + const BssgpBvci bvci := mp_gb_cfg.bvc[0].bvci; + var PCUIF_info_ind info_ind; + timer T := 2.0; + + /* Initialize NS/BSSGP side */ + f_init_bssgp(); + + /* Initialize the PCU interface abstraction */ + f_init_raw(testcasename()); + + /* Establish BSSGP connection to the PCU */ + f_bssgp_establish(); + + var template RIM_Routing_Address dst_addr; + var template RIM_Routing_Address src_addr; + var template RAN_Information_Request_RIM_Container req_cont; + var template PDU_BSSGP bssgp_rim_pdu; + var template PDU_BSSGP bssgp_rim_pdu_expect; + var template RAN_Information_RIM_Container rim_cont_expect; + + var BssgpCellId src_cid := {ra_id := { lai := { mcc_mnc := '262F42'H, lac := 12345}, rac := 0 }, cell_id := 20962 }; + src_addr := t_RIM_Routing_Address_cid(src_cid); + dst_addr := t_RIM_Routing_Address_cid(mp_gb_cfg.bvc[0].cell_id); + + var octetstring si1_expect := '198fb100000000000000000000000000007900002b'O; + var octetstring si3_expect := '1b753000f110236ec9033c2747407900003c0b2b2b'O; + var octetstring si13_expect := '009000185a6fc9e08410ab2b2b2b2b2b2b2b2b2b2b'O; + var octetstring si_expect := si1_expect & si3_expect & si13_expect; + + req_cont := ts_RAN_Information_Request_RIM_Container(ts_RIM_Application_Identity(RIM_APP_ID_NACC), + ts_RIM_Sequence_Number(1), + ts_RIM_PDU_Indications(false, RIM_PDU_TYPE_SING_REP), + ts_RIM_Protocol_Version_Number(1), + tsu_RAN_Information_Request_Application_Container_NACC(mp_gb_cfg.bvc[0].cell_id), + omit); + bssgp_rim_pdu := ts_RAN_INFORMATION_REQUEST(ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, dst_addr), + ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, src_addr), + req_cont); + + rim_cont_expect := tr_RAN_Information_RIM_Container(tr_RIM_Application_Identity(RIM_APP_ID_NACC), + tr_RIM_Sequence_Number(1), + tr_RIM_PDU_Indications(false, RIM_PDU_TYPE_SING_REP), + tr_RIM_Protocol_Version_Number(1), + tru_ApplContainer_or_ApplErrContainer_NACC(tru_ApplContainer_NACC(mp_gb_cfg.bvc[0].cell_id, false, 3, si_expect)), + omit); + + bssgp_rim_pdu_expect := tr_PDU_BSSGP_RAN_INFORMATION(tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, src_addr), + tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, dst_addr), + rim_cont_expect); + RIM.send(bssgp_rim_pdu); + T.start; + alt { + [] RIM.receive(bssgp_rim_pdu_expect) { } + [] RIM.receive { + setverdict(fail, "Unexpected BSSGP RIM PDU received"); + } + [] T.timeout { + setverdict(fail, "No BSSGP RIM PDU received"); + mtc.stop; + } + } + + /* FIXME: work around a race condition between PCUIF and BSSGP */ + f_sleep(0.2); /* i.e. give the IUT some time to process everything */ + + f_shutdown(__BFILE__, __LINE__, final := true); +} + +/* Same as above, but in this case we simulate the rare case in which the PCU + * has no system information available. We expect getting a response back but + * with no system information inside. */ +testcase TC_rim_ran_info_req_single_rep_no_si() runs on RAW_PCU_Test_CT { + var template PCUIF_info_ind info_ind := ts_PCUIF_INFO_default; + var PCUIF_Message pcu_msg; + timer T := 2.0; + + /* Initialize NS/BSSGP side */ + f_init_bssgp(); + + /* Initialize the PCU interface abstraction */ + f_init_raw(testcasename()); + + /* Establish BSSGP connection to the PCU */ + f_bssgp_establish(); + + /* Invalidate the system information inside the PCU */ + info_ind.si1_is_set := 0; + info_ind.si3_is_set := 0; + info_ind.si13_is_set := 0; + BTS.send(ts_PCUIF_INFO_IND(0, info_ind)); + f_pcuif_rx_data_req(pcu_msg); + + var template RIM_Routing_Address dst_addr; + var template RIM_Routing_Address src_addr; + var template RAN_Information_Request_RIM_Container req_cont; + var template PDU_BSSGP bssgp_rim_pdu; + var template PDU_BSSGP bssgp_rim_pdu_expect; + var template RAN_Information_RIM_Container rim_cont_expect; + + var BssgpCellId src_cid := {ra_id := { lai := { mcc_mnc := '262F42'H, lac := 12345}, rac := 0 }, cell_id := 20962 }; + src_addr := t_RIM_Routing_Address_cid(src_cid); + dst_addr := t_RIM_Routing_Address_cid(mp_gb_cfg.bvc[0].cell_id); + + req_cont := ts_RAN_Information_Request_RIM_Container(ts_RIM_Application_Identity(RIM_APP_ID_NACC), + ts_RIM_Sequence_Number(1), + ts_RIM_PDU_Indications(false, RIM_PDU_TYPE_SING_REP), + ts_RIM_Protocol_Version_Number(1), + tsu_RAN_Information_Request_Application_Container_NACC(mp_gb_cfg.bvc[0].cell_id), + omit); + bssgp_rim_pdu := ts_RAN_INFORMATION_REQUEST(ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, dst_addr), + ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, src_addr), + req_cont); + + + rim_cont_expect := tr_RAN_Information_RIM_Container(tr_RIM_Application_Identity(RIM_APP_ID_NACC), + tr_RIM_Sequence_Number(1), + tr_RIM_PDU_Indications(false, RIM_PDU_TYPE_SING_REP), + tr_RIM_Protocol_Version_Number(1), + tru_ApplContainer_or_ApplErrContainer_NACC(tru_ApplContainer_NACC(mp_gb_cfg.bvc[0].cell_id, false, 0, ''O)), + omit); + + bssgp_rim_pdu_expect := tr_PDU_BSSGP_RAN_INFORMATION(tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, src_addr), + tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, dst_addr), + rim_cont_expect); + RIM.send(bssgp_rim_pdu); + T.start; + alt { + [] RIM.receive(bssgp_rim_pdu_expect) { } + [] RIM.receive { + setverdict(fail, "Unexpected BSSGP RIM PDU received"); + } + [] T.timeout { + setverdict(fail, "No BSSGP RIM PDU received"); + mtc.stop; + } + } + + /* FIXME: work around a race condition between PCUIF and BSSGP */ + f_sleep(0.2); /* i.e. give the IUT some time to process everything */ + + f_shutdown(__BFILE__, __LINE__, final := true); +} + control { execute( TC_pcuif_suspend() ); execute( TC_pcuif_suspend_active_tbf() ); @@ -3639,6 +3792,9 @@ execute( TC_multiplex_dl_gprs_egprs() ); execute( TC_pcuif_info_ind_subsequent() ); + + execute( TC_rim_ran_info_req_single_rep() ); + execute( TC_rim_ran_info_req_single_rep_no_si() ); } } diff --git a/pcu/PCU_Tests_SNS.cfg b/pcu/PCU_Tests_SNS.cfg index ab589c5..334a6eb 100644 --- a/pcu/PCU_Tests_SNS.cfg +++ b/pcu/PCU_Tests_SNS.cfg @@ -48,7 +48,7 @@ } } } -PCUIF_Types.mp_pcuif_version := 10 +PCUIF_Types.mp_pcuif_version := 11 [TESTPORT_PARAMETERS] diff --git a/pcu/PCU_Tests_SNSv6.cfg b/pcu/PCU_Tests_SNSv6.cfg index cae9a75..707db4f 100644 --- a/pcu/PCU_Tests_SNSv6.cfg +++ b/pcu/PCU_Tests_SNSv6.cfg @@ -24,7 +24,7 @@ } } } -PCUIF_Types.mp_pcuif_version := 10 +PCUIF_Types.mp_pcuif_version := 11 [TESTPORT_PARAMETERS] -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I9054ab0e969c0fbfdc671c92d44cc61360959adc Gerrit-Change-Number: 22369 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 01:25:52 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 22 Jan 2021 01:25:52 +0000 Subject: Change in osmo-bts[master]: pcu_sock: send SI1, SI3 and SI3 along with PCUIF info indication In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/22367 ) Change subject: pcu_sock: send SI1, SI3 and SI3 along with PCUIF info indication ...................................................................... Patch Set 2: Maybe using a separate message type for delivering System Information would be easier? This would not require you to bump the protocol version and care about backwards compatibility in ttcn3-pcu-test. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22367 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ie8c3467b6cf8b8bfdeee9a281412d814cbc379b8 Gerrit-Change-Number: 22367 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: fixeria Gerrit-Comment-Date: Fri, 22 Jan 2021 01:25:52 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 01:26:45 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 22 Jan 2021 01:26:45 +0000 Subject: Change in osmo-bts[master]: pcu_sock: send SI1, SI3 and SI3 along with PCUIF info indication In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/22367 ) Change subject: pcu_sock: send SI1, SI3 and SI3 along with PCUIF info indication ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/22367/2//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-bts/+/22367/2//COMMIT_MSG at 18 PS2, Line 18: Change-Id: Ie8c3467b6cf8b8bfdeee9a281412d814cbc379b8 Two Change-Ids? How do you do that? :D -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22367 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ie8c3467b6cf8b8bfdeee9a281412d814cbc379b8 Gerrit-Change-Number: 22367 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: fixeria Gerrit-Comment-Date: Fri, 22 Jan 2021 01:26:45 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 01:29:03 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 22 Jan 2021 01:29:03 +0000 Subject: Change in osmo-ttcn3-hacks[master]: PCU_Tests: add testcase TC_rim_ran_info_req_single_rep and _no_si In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369 ) Change subject: PCU_Tests: add testcase TC_rim_ran_info_req_single_rep and _no_si ...................................................................... Patch Set 1: Code-Review-2 We cannot just bump the protocol version here, as we also need to test the 'latest' osmo-pcu. See my comments to the related changes for osmo-pcu. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I9054ab0e969c0fbfdc671c92d44cc61360959adc Gerrit-Change-Number: 22369 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Fri, 22 Jan 2021 01:29:03 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 01:30:31 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 22 Jan 2021 01:30:31 +0000 Subject: Change in osmo-ttcn3-hacks[master]: PCU_Tests: add testcase TC_rim_ran_info_req_single_rep and _no_si In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369 ) Change subject: PCU_Tests: add testcase TC_rim_ran_info_req_single_rep and _no_si ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369/1/library/PCUIF_Types.ttcn File library/PCUIF_Types.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369/1/library/PCUIF_Types.ttcn at 220 PS1, Line 220: record length(23) of uint8_t Also, this is basically 'octetstring'? -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I9054ab0e969c0fbfdc671c92d44cc61360959adc Gerrit-Change-Number: 22369 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Fri, 22 Jan 2021 01:30:31 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Fri Jan 22 01:56:55 2021 From: admin at opensuse.org (OBS Notification) Date: Fri, 22 Jan 2021 01:56:55 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.10/x86_64 In-Reply-To: References: Message-ID: <600a30efa5e87_5172adeb84245fc848636@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/xUbuntu_20.10/x86_64 Package network:osmocom:nightly/simtrace2 failed to build in xUbuntu_20.10/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 301s] [COMPILING apps/dfu/main.c] [ 301s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 301s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 301s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 302s] Memory region Used Size Region Size %age Used [ 302s] rom: 16580 B 16 KB 101.20% [ 302s] ram: 11672 B 48 KB 23.75/usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 302s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 302s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 302s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 302s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 302s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 302s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 196 bytes [ 302s] collect2: error: ld returned 1 exit status [ 302s] % [ 302s] make[2]: *** [Makefile:234: flash] Error 1 [ 302s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 302s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 302s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 302s] dh_auto_build: error: make -j1 returned exit code 2 [ 302s] make: *** [debian/rules:16: build] Error 25 [ 302s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 302s] ### VM INTERACTION START ### [ 305s] [ 250.595882] sysrq: Power Off [ 305s] [ 250.636891] reboot: Power down [ 305s] ### VM INTERACTION END ### [ 305s] [ 305s] lamb16 failed "build simtrace2_0.7.0.69.aadd.dsc" at Fri Jan 22 01:56:41 UTC 2021. [ 305s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Jan 22 01:58:03 2021 From: admin at opensuse.org (OBS Notification) Date: Fri, 22 Jan 2021 01:58:03 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <600a3146959a0_5172adeb84245fc848749@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/xUbuntu_20.04/x86_64 Package network:osmocom:nightly/simtrace2 failed to build in xUbuntu_20.04/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 283s] [COMPILING libboard/qmod/source/wwan_perst.c] [ 283s] [COMPILING libboard/qmod/source/card_pres.c] [ 284s] [COMPILING libboard/qmod/source/wwan_led.c] [ 284s] [COMPILING libboard/qmod/source/i2c.c] [ 284s] [COMPILING libboard/qmod/source/board_qmod.c] [ 284s] [COMPILING apps/dfu/main.c] [ 285s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 285s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 285s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 286s] Memory region Used Size Region Size %age Used [ 286s] rom: 16588 B 16 KB 101.25% [ 286s] ram: 11672 B 48 KB 23.75/usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 286s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 204 bytes [ 286s] collect2: error: ld returned 1 exit status [ 286s] % [ 286s] make[2]: *** [Makefile:234: flash] Error 1 [ 286s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 286s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 286s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 286s] dh_auto_build: error: make -j1 returned exit code 2 [ 286s] make: *** [debian/rules:16: build] Error 25 [ 286s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 286s] ### VM INTERACTION START ### [ 289s] [ 270.828229] sysrq: Power Off [ 289s] [ 270.844828] reboot: Power down [ 289s] ### VM INTERACTION END ### [ 289s] [ 289s] cloud102 failed "build simtrace2_0.7.0.69.aadd.dsc" at Fri Jan 22 01:57:46 UTC 2021. [ 289s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Fri Jan 22 10:05:30 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 22 Jan 2021 10:05:30 +0000 Subject: Change in osmo-pcu[master]: Initial handling support for RIM messages In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22364 ) Change subject: Initial handling support for RIM messages ...................................................................... Patch Set 2: Code-Review-1 (9 comments) sorry, I do think there needs to be some improvement https://gerrit.osmocom.org/c/osmo-pcu/+/22364/2/src/gprs_bssgp_rim.c File src/gprs_bssgp_rim.c: https://gerrit.osmocom.org/c/osmo-pcu/+/22364/2/src/gprs_bssgp_rim.c at 31 PS2, Line 31: struct gprs_ra_id *raid, uint16_t cid) input parameter 'raid' should be const https://gerrit.osmocom.org/c/osmo-pcu/+/22364/2/src/gprs_bssgp_rim.c at 45 PS2, Line 45: struct bssgp_ran_information_pdu *req_pdu) input parameter 'req_pdu' should be const https://gerrit.osmocom.org/c/osmo-pcu/+/22364/2/src/gprs_bssgp_rim.c at 53 PS2, Line 53: struct bssgp_ran_information_pdu *req_pdu) input parameter 'req_pdu' should be const https://gerrit.osmocom.org/c/osmo-pcu/+/22364/2/src/gprs_bssgp_rim.c at 70 PS2, Line 70: static enum bssgp_ran_inf_app_id *get_app_id(struct bssgp_ran_information_pdu *pdu) input parameter 'pdu' should be const https://gerrit.osmocom.org/c/osmo-pcu/+/22364/2/src/gprs_bssgp_rim.c at 89 PS2, Line 89: static bool match_app_id(struct bssgp_ran_information_pdu *pdu, enum bssgp_ran_inf_app_id exp_app_id) input parameter (and then also the local variable) should be const https://gerrit.osmocom.org/c/osmo-pcu/+/22364/2/src/gprs_bssgp_rim.c at 105 PS2, Line 105: should we OSMO_ASSERT that the SAP/type really is the RIM sap and we didn't get handled some completely different osmo_bssgp_prim here? https://gerrit.osmocom.org/c/osmo-pcu/+/22364/2/src/gprs_bssgp_rim.c at 110 PS2, Line 110: "BSSGP RIM (NSEI=%u) only GERAN supported, destination cell is not a GERAN cell -- rejected.\n", do you notice that every of your log lines starts with "BSSGP RIM (NSEI=%u)"? Please #define a LOGRIM(nsei, level, ...) macro t o avoid re-defining that formatting over and over again. Passing the sub-system to that macro is no long er necessary, it can use DRIM hard-coded. https://gerrit.osmocom.org/c/osmo-pcu/+/22364/2/src/gprs_bssgp_rim.c at 116 PS2, Line 116: Why should an UMTS or LTE cell not be able to ask us for NACC related information? As far as I undertand, they use the exact same messages in case they want to tell a UE (over UTRAN/EUTRAN) about SI of a GERAN neighbor cell. For the PCU nothing changes, except that the (opaque) source is of a different type. WE shouldn't care and simply copy the "source" to the "destination" when responding and let the SGSN figure out what to do with it. https://gerrit.osmocom.org/c/osmo-pcu/+/22364/2/src/gprs_bssgp_rim.c at 128 PS2, Line 128: retu is BSSGP STATUS really the proper response here? IMHO this is one layer too low. Isn't that what the RIM ERROR, or in this case probably even the RIM APPLICATION ERROR is for? Sending a BSSGP status will end up with the SGSN, who has no clue what the contents of that message was. Sending a RIM specific error or application error will be routed back to whoever send us the request. And that is the entity that should be notified, as it sent us a non-matching cell-id. -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22364 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ia0ade0e97ea781ec655439c008b6cefaf3e90dec Gerrit-Change-Number: 22364 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 22 Jan 2021 10:05:30 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 10:07:04 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 22 Jan 2021 10:07:04 +0000 Subject: Change in osmo-pcu[master]: gprs_bssgp_rim: add serving BSS NACC application In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22368 ) Change subject: gprs_bssgp_rim: add serving BSS NACC application ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22368 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Id72118120c14984d2fb1b918b41fac4868150d41 Gerrit-Change-Number: 22368 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 22 Jan 2021 10:07:04 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 10:12:22 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 22 Jan 2021 10:12:22 +0000 Subject: Change in osmo-ttcn3-hacks[master]: PCU_Tests: add testcase TC_rim_ran_info_req_single_rep and _no_si In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369 ) Change subject: PCU_Tests: add testcase TC_rim_ran_info_req_single_rep and _no_si ...................................................................... Patch Set 1: (2 comments) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369/1/library/PCUIF_Types.ttcn File library/PCUIF_Types.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369/1/library/PCUIF_Types.ttcn at 220 PS1, Line 220: record length(23) of uint8_t > Also, this is basically 'octetstring'? yes, it should be an "octetstring length (23)", see how we define e.g. OCT4 in General_Types.ttcn https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369/1/pcu/PCU_Tests.ttcn File pcu/PCU_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369/1/pcu/PCU_Tests.ttcn at 106 PS1, Line 106: s once you use proper octet strings here, I expect you should be able to derive si1_expect etc. below from here? Simply use a sub-string? -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I9054ab0e969c0fbfdc671c92d44cc61360959adc Gerrit-Change-Number: 22369 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-CC: laforge Gerrit-Comment-Date: Fri, 22 Jan 2021 10:12:22 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: fixeria Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 10:20:02 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 22 Jan 2021 10:20:02 +0000 Subject: Change in osmo-bts[master]: pcu_sock: send SI1, SI3 and SI3 along with PCUIF info indication In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/22367 ) Change subject: pcu_sock: send SI1, SI3 and SI3 along with PCUIF info indication ...................................................................... Patch Set 2: Code-Review-1 (2 comments) -1 just for the tow Change-Ids. Not sure what this might mess up. https://gerrit.osmocom.org/c/osmo-bts/+/22367/2//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-bts/+/22367/2//COMMIT_MSG at 11 PS2, Line 11: osmo-bts on startup. The system information is needed by the NACC RIM This is not just at start-up, but at any later time: * SI might not yet be received from BSC once the PCU connects * SI can be changed at any time by BSC durign runtime In each of those instances, the PCU copies of the SI needs to be updated. I think this already should work via S_NEW_SYSINFO and pcu_if_signal_cb() but we will need tests for that https://gerrit.osmocom.org/c/osmo-bts/+/22367/2//COMMIT_MSG at 18 PS2, Line 18: Change-Id: Ie8c3467b6cf8b8bfdeee9a281412d814cbc379b8 > Two Change-Ids? How do you do that? :D Ack -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22367 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ie8c3467b6cf8b8bfdeee9a281412d814cbc379b8 Gerrit-Change-Number: 22367 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: fixeria Gerrit-Comment-Date: Fri, 22 Jan 2021 10:20:02 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Comment-In-Reply-To: fixeria Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 11:07:12 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 22 Jan 2021 11:07:12 +0000 Subject: Change in docker-playground[master]: debian-repo-install-test: remove Release.key References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/22370 ) Change subject: debian-repo-install-test: remove Release.key ...................................................................... debian-repo-install-test: remove Release.key Make debian-repo-install-test simpler before copying it for debian10. Don't install Release.key, as it is getting downloaded on demand in the related repo-install-test script since osmo-ci I91e7a208d8f5cb50f8baa2fde0eb979aae91da8f. Related: OS#4969 Change-Id: Ia2ba9de264531502e2b0b9f42d7a4ecd34375851 --- M debian-repo-install-test/Dockerfile D debian-repo-install-test/Release.key 2 files changed, 1 insertion(+), 25 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/70/22370/1 diff --git a/debian-repo-install-test/Dockerfile b/debian-repo-install-test/Dockerfile index e12da75..c8c87df 100644 --- a/debian-repo-install-test/Dockerfile +++ b/debian-repo-install-test/Dockerfile @@ -3,12 +3,8 @@ ARG UPSTREAM_DISTRO=debian:stretch FROM ${REGISTRY}/${UPSTREAM_DISTRO} -COPY Release.key /tmp/Release.key - RUN apt-get update && \ apt-get install -y --no-install-recommends \ aptitude \ gnupg \ - systemd && \ - apt-key add /tmp/Release.key && \ - rm /tmp/Release.key + systemd diff --git a/debian-repo-install-test/Release.key b/debian-repo-install-test/Release.key deleted file mode 100644 index a737316..0000000 --- a/debian-repo-install-test/Release.key +++ /dev/null @@ -1,20 +0,0 @@ ------BEGIN PGP PUBLIC KEY BLOCK----- -Version: GnuPG v1.4.5 (GNU/Linux) - -mQENBFJBt/wBCADAht3d/ilNuyzaXYw/QwTRvmjyoDvfXw+H/3Fvk1zlDZoiKPPc -a1wCVBINUZl7vYM2OXqbJwYa++JP2Q48xKSvC6thbRc/YLievkbcvTemf7IaREfl -CTjoYpoqXHa9kHMw1aALDm8CNU88jZmnV7v9L6hKkbYDxie+jpoj7D6B9JlxgNJ4 -5dQyRNsFGVcIl4Vplt1HyGc5Q5nQI/VgS2rlF/IOXmhRQBc4LEDdU8R2IKnkU4ee -S7TWanAigGAQhxGuCkS39/CWzc1DhLhjlNhBl/+RTPejkqJtAy00ZLps3+RqUN1Y -CU/Fsr7aRlYVGqQ/BlptwV0XQ2VVYJX2oEBBABEBAAG0MG5ldHdvcmsgT0JTIFBy -b2plY3QgPG5ldHdvcmtAYnVpbGQub3BlbnN1c2Uub3JnPokBPAQTAQIAJgUCXm/4 -pgIbAwUJEEzwqgYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJEGLrGgkXKA3f/1AH -/A7WVSpfM4wV/DMqZPTsSjChB4JyDotxpV7qHZzBC5aaP2dINZyi9PayIwZWbvCY -VKvt+Fw8oCGC9F9mdh10Xe+ElHeVNSihzABPuu1RkRkb1nvkymScy0yxydodYOBi -K4WQ+BhpijXWmYvOekIwbS5Hi9BHpfgK4TinK0xsvh1bVLeQJ8YjrnNFIAR2CnBa -X7Y72Up/kKL08DdQzuS+mKrJtAQlGMtIsukWC2ajYQMkNwm8Gvhpn8za113dCkBW -XAFnlQqQobKwC7b19QgEtJI/YpGSrRc6WaZxPyAjscbWQlFEAB900sVj4BWT55ig -7O2uSdsCVhTuU7T0ztwsgvmIRgQTEQIABgUCUkG3/AAKCRA7MBG3a51lIzhdAJ9v -d6XPffMZRcCGgDEY5OaTn/MsCQCgrXbeZpFJgnirSrc8rRonvzYFiF4= -=/Tek ------END PGP PUBLIC KEY BLOCK----- -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22370 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Ia2ba9de264531502e2b0b9f42d7a4ecd34375851 Gerrit-Change-Number: 22370 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 11:07:13 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 22 Jan 2021 11:07:13 +0000 Subject: Change in docker-playground[master]: rename {debian => debian9}-repo-install-test References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/22371 ) Change subject: rename {debian => debian9}-repo-install-test ...................................................................... rename {debian => debian9}-repo-install-test Prepare to add debian10-repo-install-test. Make it consistent with centos8-repo-install-test. Related: OS#4969 Change-Id: I2ea18997019ebaa013c258996f5131386bcd6426 --- R debian9-repo-install-test/Dockerfile R debian9-repo-install-test/Makefile 2 files changed, 0 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/71/22371/1 diff --git a/debian-repo-install-test/Dockerfile b/debian9-repo-install-test/Dockerfile similarity index 100% rename from debian-repo-install-test/Dockerfile rename to debian9-repo-install-test/Dockerfile diff --git a/debian-repo-install-test/Makefile b/debian9-repo-install-test/Makefile similarity index 100% rename from debian-repo-install-test/Makefile rename to debian9-repo-install-test/Makefile -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22371 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I2ea18997019ebaa013c258996f5131386bcd6426 Gerrit-Change-Number: 22371 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 11:07:13 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 22 Jan 2021 11:07:13 +0000 Subject: Change in docker-playground[master]: debian10-repo-install-test: new container References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/22372 ) Change subject: debian10-repo-install-test: new container ...................................................................... debian10-repo-install-test: new container Related: OS#4969 Change-Id: I7addb30aa3f8564dcbdc3f6cf2e2e0cfdf4dd02d --- A debian10-repo-install-test/Dockerfile A debian10-repo-install-test/Makefile M jenkins-common.sh 3 files changed, 15 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/72/22372/1 diff --git a/debian10-repo-install-test/Dockerfile b/debian10-repo-install-test/Dockerfile new file mode 100644 index 0000000..212cdc9 --- /dev/null +++ b/debian10-repo-install-test/Dockerfile @@ -0,0 +1,13 @@ +ARG USER +ARG REGISTRY=docker.io +ARG UPSTREAM_DISTRO=debian:buster +FROM ${REGISTRY}/${UPSTREAM_DISTRO} + +# ca-certificates: needed for limesuite-images post-install script + +RUN apt-get update && \ + apt-get install -y --no-install-recommends \ + aptitude \ + ca-certificates \ + gnupg \ + systemd diff --git a/debian10-repo-install-test/Makefile b/debian10-repo-install-test/Makefile new file mode 100644 index 0000000..8d0e10b --- /dev/null +++ b/debian10-repo-install-test/Makefile @@ -0,0 +1 @@ +include ../make/Makefile diff --git a/jenkins-common.sh b/jenkins-common.sh index e172a4f..1cfbbfc 100644 --- a/jenkins-common.sh +++ b/jenkins-common.sh @@ -22,6 +22,7 @@ case "$1" in osmo-*-centos8) echo "centos:centos8"; ;; centos8-*) echo "centos:centos8" ;; + debian10-*) echo "debian:buster" ;; *) echo "debian:stretch" ;; esac } -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22372 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I7addb30aa3f8564dcbdc3f6cf2e2e0cfdf4dd02d Gerrit-Change-Number: 22372 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 11:07:31 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 22 Jan 2021 11:07:31 +0000 Subject: Change in osmo-ci[master]: repo-install-test: print successful test msg References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/22373 ) Change subject: repo-install-test: print successful test msg ...................................................................... repo-install-test: print successful test msg Change-Id: Idfb75b0461a352ae1703f3c8452cd3afc3320049 --- M scripts/repo-install-test/run-inside-docker.sh 1 file changed, 6 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/73/22373/1 diff --git a/scripts/repo-install-test/run-inside-docker.sh b/scripts/repo-install-test/run-inside-docker.sh index f7d1449..dddad30 100755 --- a/scripts/repo-install-test/run-inside-docker.sh +++ b/scripts/repo-install-test/run-inside-docker.sh @@ -361,4 +361,10 @@ exit 1 ;; esac + + set +x + echo + echo "### Test successful: $test ###" + echo + set -x done -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22373 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Idfb75b0461a352ae1703f3c8452cd3afc3320049 Gerrit-Change-Number: 22373 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 11:07:32 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 22 Jan 2021 11:07:32 +0000 Subject: Change in osmo-ci[master]: repo-install-test: no distro version in function References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/22374 ) Change subject: repo-install-test: no distro version in function ...................................................................... repo-install-test: no distro version in function Instead of calling various foo_debian and foo_centos8 versions with foo_$DISTRO, create new foo functions that call the right distro-specific function based on debian* or centos* being in DISTRO. Rename all foo_centos8 functions to foo_centos. This is in preparation to run this script with debian10 too, not just debian9. This can also be used to test a different centos version in the future. Related: OS#4969 Change-Id: Ibb9f93af16af7ebe947f7efcd4e709f3e62d12c0 --- M scripts/repo-install-test/run-inside-docker.sh 1 file changed, 60 insertions(+), 18 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/74/22374/1 diff --git a/scripts/repo-install-test/run-inside-docker.sh b/scripts/repo-install-test/run-inside-docker.sh index dddad30..2e9d6a8 100755 --- a/scripts/repo-install-test/run-inside-docker.sh +++ b/scripts/repo-install-test/run-inside-docker.sh @@ -105,7 +105,7 @@ } # $1: OBS project (e.g. "network:osmocom:nightly") -configure_osmocom_repo_centos8() { +configure_osmocom_repo_centos() { local proj="$1" local baseurl="https://download.opensuse.org/repositories/$(proj_with_slashes "$proj")/CentOS_8" @@ -124,16 +124,24 @@ } # $1: OBS project (e.g. "network:osmocom:nightly") -configure_osmocom_repo_centos8_remove() { +configure_osmocom_repo_centos_remove() { local proj="$1" rm "/etc/yum.repos.d/$proj.repo" } -configure_keep_cache_debian() { - if [ -z "$KEEP_CACHE" ]; then - return - fi +# $1: OBS project (e.g. "network:osmocom:nightly") +configure_osmocom_repo() { + case "$DISTRO" in + debian*) + configure_osmocom_repo_debian "$@" + ;; + centos*) + configure_osmocom_repo_centos "$@" + ;; + esac +} +configure_keep_cache_debian() { rm /etc/apt/apt.conf.d/docker-clean # "apt" will actually remove the cache by default, even if "apt-get" keeps it. @@ -142,11 +150,23 @@ > /etc/apt/apt.conf.d/01keep-debs } -configure_keep_cache_centos8() { +configure_keep_cache_centos() { + echo "keepcache=1" >> /etc/dnf/dnf.conf +} + +configure_keep_cache() { if [ -z "$KEEP_CACHE" ]; then return fi - echo "keepcache=1" >> /etc/dnf/dnf.conf + + case "$DISTRO" in + debian*) + configure_keep_cache_debian + ;; + centos*) + configure_keep_cache_centos + ;; + esac } # $1: file @@ -190,11 +210,11 @@ configure_osmocom_repo_debian "$PROJ" } -test_conflict_centos8() { +test_conflict_centos() { dnf -y install libosmocore-devel - configure_osmocom_repo_centos8_remove "$PROJ" - configure_osmocom_repo_centos8 "$PROJ_CONFLICT" + configure_osmocom_repo_centos_remove "$PROJ" + configure_osmocom_repo_centos "$PROJ_CONFLICT" (dnf -y install osmo-mgw 2>&1 && touch /tmp/fail) | tee /tmp/out @@ -209,8 +229,19 @@ "but none of the providers can be installed" \ "conflicts with osmocom-" - configure_osmocom_repo_centos8_remove "$PROJ_CONFLICT" - configure_osmocom_repo_centos8 "$PROJ" + configure_osmocom_repo_centos_remove "$PROJ_CONFLICT" + configure_osmocom_repo_centos "$PROJ" +} + +test_conflict() { + case "$DISTRO" in + debian*) + test_conflict_debian + ;; + centos*) + test_conflict_centos + ;; + esac } # Filter $PWD/osmocom_packages_all.txt through a blacklist_$DISTRO.txt and store the result in @@ -239,7 +270,7 @@ apt install -y $(cat osmocom_packages.txt) } -install_repo_packages_centos8() { +install_repo_packages_centos() { echo "Installing all repository packages" # Get a list of all packages from the repository @@ -254,6 +285,17 @@ dnf install -y $(cat osmocom_packages.txt) } +install_repo_packages() { + case "$DISTRO" in + debian*) + install_repo_packages_debian + ;; + centos*) + install_repo_packages_centos + ;; + esac +} + test_binaries_version() { # Make sure --version runs and does not output UNKNOWN failed="" @@ -331,8 +373,8 @@ } check_env -configure_keep_cache_${DISTRO} -configure_osmocom_repo_${DISTRO} "$PROJ" +configure_keep_cache +configure_osmocom_repo "$PROJ" for test in $TESTS; do set +x @@ -343,10 +385,10 @@ case "$test" in test_conflict) - test_conflict_${DISTRO} + test_conflict ;; install_repo_packages) - install_repo_packages_${DISTRO} + install_repo_packages ;; test_binaries) # install_repo_packages must run first! -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22374 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ibb9f93af16af7ebe947f7efcd4e709f3e62d12c0 Gerrit-Change-Number: 22374 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 11:07:32 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 22 Jan 2021 11:07:32 +0000 Subject: Change in osmo-ci[master]: repo-install-test: verify DISTRO argument References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/22375 ) Change subject: repo-install-test: verify DISTRO argument ...................................................................... repo-install-test: verify DISTRO argument Keep list of supported distros in one place in repo-install-test.sh. Related: OS#4969 Change-Id: I1aa2564ff861d81a866302e44a1f99ff876c7b31 --- M scripts/repo-install-test.sh 1 file changed, 15 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/75/22375/1 diff --git a/scripts/repo-install-test.sh b/scripts/repo-install-test.sh index 7585509..f4dcf1d 100755 --- a/scripts/repo-install-test.sh +++ b/scripts/repo-install-test.sh @@ -9,13 +9,25 @@ . "$(dirname "$0")/common.sh" # Show usage -if [ "$#" -ne 1 ]; then +check_usage() { + local i + for i in $DISTROS; do + if [ "$DISTRO" = "$i" ]; then + return + fi + done echo "usage: repo-install-test.sh DISTRO" - echo "DISTRO: debian or centos8" + echo "DISTRO: one of: $DISTROS" exit 1 -fi +} DISTRO="$1" +DISTROS=" + centos8 + debian +" + +check_usage docker_images_require "$DISTRO-repo-install-test" FEED="${FEED:-nightly}" -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22375 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I1aa2564ff861d81a866302e44a1f99ff876c7b31 Gerrit-Change-Number: 22375 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 11:07:33 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 22 Jan 2021 11:07:33 +0000 Subject: Change in osmo-ci[master]: repo-install-test: resolve distro obs dir in func References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/22376 ) Change subject: repo-install-test: resolve distro obs dir in func ...................................................................... repo-install-test: resolve distro obs dir in func Instead of hardcoding CentOS_8 in the centos code path, and Debian_9.0 in the debian code path, resolve the proper OBS directory based on $DISTRO. Related: OS#4969 Change-Id: Ie537e8befeebd7958b2a1fe8f6fd54587cfcb1b6 --- M scripts/repo-install-test/run-inside-docker.sh 1 file changed, 20 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/76/22376/1 diff --git a/scripts/repo-install-test/run-inside-docker.sh b/scripts/repo-install-test/run-inside-docker.sh index 2e9d6a8..355b668 100755 --- a/scripts/repo-install-test/run-inside-docker.sh +++ b/scripts/repo-install-test/run-inside-docker.sh @@ -37,6 +37,23 @@ osmo-bts-virtual " +distro_obsdir() { + case "$DISTRO" in + centos8) + echo "CentOS_8" + ;; + debian) + echo "Debian_9.0" + ;; + *) + echo "ERROR: unknown obsdir for '$DISTRO'." >&2 + exit 1 + ;; + esac +} + +DISTRO_OBSDIR="$(distro_obsdir)" + # $1: OBS project (e.g. "network:osmocom:nightly" -> "network:/osmocom:/nightly") proj_with_slashes() { echo "$1" | sed "s.:.:/.g" @@ -82,7 +99,7 @@ # $1: OBS project (e.g. "network:osmocom:nightly") configure_osmocom_repo_debian() { local proj="$1" - local obs_repo="download.opensuse.org/repositories/$(proj_with_slashes "$proj")/Debian_9.0/" + local obs_repo="download.opensuse.org/repositories/$(proj_with_slashes "$proj")/$DISTRO_OBSDIR/" local release_key="/var/cache/apt/${proj}_Release.key" echo "Configuring Osmocom repository" @@ -107,7 +124,7 @@ # $1: OBS project (e.g. "network:osmocom:nightly") configure_osmocom_repo_centos() { local proj="$1" - local baseurl="https://download.opensuse.org/repositories/$(proj_with_slashes "$proj")/CentOS_8" + local baseurl="https://download.opensuse.org/repositories/$(proj_with_slashes "$proj")/$DISTRO_OBSDIR" echo "Configuring Osmocom repository" # Generate this file, based on the feed: @@ -256,7 +273,7 @@ } install_repo_packages_debian() { - local obs="obs://build.opensuse.org/$PROJ/Debian_9.0" + local obs="obs://build.opensuse.org/$PROJ/$DISTRO_OBSDIR" echo "Installing all repository packages" -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22376 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ie537e8befeebd7958b2a1fe8f6fd54587cfcb1b6 Gerrit-Change-Number: 22376 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 11:07:33 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 22 Jan 2021 11:07:33 +0000 Subject: Change in osmo-ci[master]: Cosmetic: repo-install-test: fix DISTRO comment References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/22377 ) Change subject: Cosmetic: repo-install-test: fix DISTRO comment ...................................................................... Cosmetic: repo-install-test: fix DISTRO comment A valid example is "centos8", with the version, not "centos". Remove the debian example, as we'll require a version with that later on as well. Related: OS#4969 Change-Id: Ie8c2c86bc77606b1d2d4339751521139de22db04 --- M scripts/repo-install-test/run-inside-docker.sh 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/77/22377/1 diff --git a/scripts/repo-install-test/run-inside-docker.sh b/scripts/repo-install-test/run-inside-docker.sh index 355b668..8fa3a66 100755 --- a/scripts/repo-install-test/run-inside-docker.sh +++ b/scripts/repo-install-test/run-inside-docker.sh @@ -4,7 +4,7 @@ # * PROJ: OBS project namespace (e.g. "network:osmocom:latest") # * PROJ_CONFLICT: Conflicting OBS project namespace (e.g. "network:osmocom:nightly") # * KEEP_CACHE: set to 1 to keep downloaded binary packages (for development) -# * DISTRO: linux distribution name (e.g. "debian", "centos") +# * DISTRO: linux distribution name (e.g. "centos8") # * TESTS: which tests to run (see repo-install-test.sh) # Systemd services that must start up successfully after installing all packages (OS#3369) -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22377 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ie8c2c86bc77606b1d2d4339751521139de22db04 Gerrit-Change-Number: 22377 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 11:07:33 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 22 Jan 2021 11:07:33 +0000 Subject: Change in osmo-ci[master]: repo-install-test: rename 'debian' to 'debian9' References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/22378 ) Change subject: repo-install-test: rename 'debian' to 'debian9' ...................................................................... repo-install-test: rename 'debian' to 'debian9' Related: OS#4969 Depends: docker-playground I2ea18997019ebaa013c258996f5131386bcd6426 Change-Id: Iaa2202cca4072b4dc0309e011aba6cb33ed5b8aa --- M jobs/repo-install-test.yml M scripts/repo-install-test.sh R scripts/repo-install-test/blacklist_debian9.txt M scripts/repo-install-test/run-inside-docker.sh 4 files changed, 3 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/78/22378/1 diff --git a/jobs/repo-install-test.yml b/jobs/repo-install-test.yml index 2c26490..bde6054 100644 --- a/jobs/repo-install-test.yml +++ b/jobs/repo-install-test.yml @@ -4,7 +4,7 @@ jobs: - Osmocom-repo-install-{distro} distro: - - debian: + - debian9: feeds: !!python/tuple [nightly, latest] - centos8: feeds: !!python/tuple [next, nightly] diff --git a/scripts/repo-install-test.sh b/scripts/repo-install-test.sh index f4dcf1d..b593733 100755 --- a/scripts/repo-install-test.sh +++ b/scripts/repo-install-test.sh @@ -24,7 +24,7 @@ DISTRO="$1" DISTROS=" centos8 - debian + debian9 " check_usage diff --git a/scripts/repo-install-test/blacklist_debian.txt b/scripts/repo-install-test/blacklist_debian9.txt similarity index 100% rename from scripts/repo-install-test/blacklist_debian.txt rename to scripts/repo-install-test/blacklist_debian9.txt diff --git a/scripts/repo-install-test/run-inside-docker.sh b/scripts/repo-install-test/run-inside-docker.sh index 8fa3a66..3a06277 100755 --- a/scripts/repo-install-test/run-inside-docker.sh +++ b/scripts/repo-install-test/run-inside-docker.sh @@ -42,7 +42,7 @@ centos8) echo "CentOS_8" ;; - debian) + debian9) echo "Debian_9.0" ;; *) -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22378 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Iaa2202cca4072b4dc0309e011aba6cb33ed5b8aa Gerrit-Change-Number: 22378 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 11:07:33 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 22 Jan 2021 11:07:33 +0000 Subject: Change in osmo-ci[master]: repo-install-test: add 'debian10' References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/22379 ) Change subject: repo-install-test: add 'debian10' ...................................................................... repo-install-test: add 'debian10' Related: OS#4969 Depends: docker-playground I7addb30aa3f8564dcbdc3f6cf2e2e0cfdf4dd02d Change-Id: If0fc12464b571dc42b33f2a077c77ea6e5120b8d --- M jobs/repo-install-test.yml M scripts/repo-install-test.sh A scripts/repo-install-test/blacklist_debian10.txt M scripts/repo-install-test/run-inside-docker.sh 4 files changed, 71 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/79/22379/1 diff --git a/jobs/repo-install-test.yml b/jobs/repo-install-test.yml index bde6054..425357d 100644 --- a/jobs/repo-install-test.yml +++ b/jobs/repo-install-test.yml @@ -4,10 +4,12 @@ jobs: - Osmocom-repo-install-{distro} distro: - - debian9: - feeds: !!python/tuple [nightly, latest] - centos8: feeds: !!python/tuple [next, nightly] + - debian9: + feeds: !!python/tuple [nightly, latest] + - debian10: + feeds: !!python/tuple [nightly, latest] - job-template: name: Osmocom-repo-install-{distro} diff --git a/scripts/repo-install-test.sh b/scripts/repo-install-test.sh index b593733..b9be8b6 100755 --- a/scripts/repo-install-test.sh +++ b/scripts/repo-install-test.sh @@ -25,6 +25,7 @@ DISTROS=" centos8 debian9 + debian10 " check_usage diff --git a/scripts/repo-install-test/blacklist_debian10.txt b/scripts/repo-install-test/blacklist_debian10.txt new file mode 100644 index 0000000..6570de6 --- /dev/null +++ b/scripts/repo-install-test/blacklist_debian10.txt @@ -0,0 +1,63 @@ +# These packages will not get explicitly installed in this test. +# Package lines must have nothing but the package (no comment, +# no additional space etc). + +# OpenBSC +# This is legacy, we aren't really interested in testing openbsc.git +# derived packages. Packages are found in openbsc/debian/control. +openbsc-dev +osmo-bsc-mgcp +osmo-bsc-mgcp-dbg +osmocom-bs11-utils +osmocom-bs11-utils-dbg +osmocom-bsc-nat +osmocom-bsc-nat-dbg +osmocom-bsc-sccplite +osmocom-bsc-sccplite-dbg +osmocom-ipaccess-utils +osmocom-ipaccess-utils-dbg +osmocom-nitb +osmocom-nitb-dbg + +# SoapySDR is not used anymore (see OS#3542) +soapysdr-module-lms7 +soapysdr0.6-module-lms7 +soapysdr0.6-module-lms7-dbgsym +soapysdr0.7-module-lms7 +soapysdr0.7-module-lms7-dbgsym + +# Depends on specific verions 0.5.4.38.0847 of rtl-sdr, which we won't install +librtlsdr0-dbgsym +rtl-sdr-dbgsym + +# Depends on mongodb, which was droppend from debian 10 onwards +open5gs +open5gs-amf +open5gs-amf-dbgsym +open5gs-ausf +open5gs-ausf-dbgsym +open5gs-common +open5gs-common-dbgsym +open5gs-dbg +open5gs-hss +open5gs-hss-dbgsym +open5gs-mme +open5gs-mme-dbgsym +open5gs-nrf +open5gs-nrf-dbgsym +open5gs-pcf +open5gs-pcf-dbgsym +open5gs-pcrf +open5gs-pcrf-dbgsym +open5gs-sgwc +open5gs-sgwc-dbgsym +open5gs-sgwu +open5gs-sgwu-dbgsym +open5gs-smf +open5gs-smf-dbgsym +open5gs-udm +open5gs-udm-dbgsym +open5gs-udr +open5gs-udr-dbgsym +open5gs-upf +open5gs-upf-dbgsym diff --git a/scripts/repo-install-test/run-inside-docker.sh b/scripts/repo-install-test/run-inside-docker.sh index 3a06277..f05f01c 100755 --- a/scripts/repo-install-test/run-inside-docker.sh +++ b/scripts/repo-install-test/run-inside-docker.sh @@ -45,6 +45,9 @@ debian9) echo "Debian_9.0" ;; + debian10) + echo "Debian_10" + ;; *) echo "ERROR: unknown obsdir for '$DISTRO'." >&2 exit 1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22379 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: If0fc12464b571dc42b33f2a077c77ea6e5120b8d Gerrit-Change-Number: 22379 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 11:19:36 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 22 Jan 2021 11:19:36 +0000 Subject: Change in osmo-ci[master]: repo-install-test: download/add deb release key In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22332 ) Change subject: repo-install-test: download/add deb release key ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-ci/+/22332/1/scripts/repo-install-test/run-inside-docker.sh File scripts/repo-install-test/run-inside-docker.sh: https://gerrit.osmocom.org/c/osmo-ci/+/22332/1/scripts/repo-install-test/run-inside-docker.sh at a70 PS1, Line 70: Debian_9 > unrelated to this patch: IT might make sense to switch to Debian_10 Debian_9.0 is EOL at some point this year, AFAIR -> https://osmocom.org/issues/4969 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22332 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I91e7a208d8f5cb50f8baa2fde0eb979aae91da8f Gerrit-Change-Number: 22332 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 22 Jan 2021 11:19:36 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: osmith Comment-In-Reply-To: laforge Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 11:36:55 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 22 Jan 2021 11:36:55 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Improve log messages in gbproxy_select_sgsn In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22362 ) Change subject: gbproxy: Improve log messages in gbproxy_select_sgsn ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-sgsn/+/22362/1/src/gbproxy/gb_proxy.c File src/gbproxy/gb_proxy.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/22362/1/src/gbproxy/gb_proxy.c at 257 PS1, Line 257: LOGP(DGPRS, LOGL_INFO, "TLLI %08x is neither local nor foreign\n"); > so it's trapped at the airport? Yeah, as you can see from the missing argument. I clarified the message (I hope) -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22362 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Id7bc755b90c35ed7c8cfa8408073e2866d639f2d Gerrit-Change-Number: 22362 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 22 Jan 2021 11:36:55 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 11:42:23 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 22 Jan 2021 11:42:23 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Improve log messages in gbproxy_select_sgsn In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, pespin, lynxis lazus, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22362 to look at the new patch set (#2). Change subject: gbproxy: Improve log messages in gbproxy_select_sgsn ...................................................................... gbproxy: Improve log messages in gbproxy_select_sgsn Change-Id: Id7bc755b90c35ed7c8cfa8408073e2866d639f2d Related: OS#4954 --- M src/gbproxy/gb_proxy.c 1 file changed, 3 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/62/22362/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22362 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Id7bc755b90c35ed7c8cfa8408073e2866d639f2d Gerrit-Change-Number: 22362 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 11:42:23 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 22 Jan 2021 11:42:23 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Fix radio status routing by TMSI In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, pespin, lynxis lazus, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22363 to look at the new patch set (#2). Change subject: gbproxy: Fix radio status routing by TMSI ...................................................................... gbproxy: Fix radio status routing by TMSI If a radio status message contains a TMSI it should be routed as if it was a TLLI. Convert the TMSI to (foreign) TLLI so NRI-routing works. Both foreign and local TLLIs are routed the same. Fixes: OS#4954 Change-Id: Ifd64f02fa16b44f8e2e19eb8ba973f50a829ead5 --- M src/gbproxy/gb_proxy.c 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/63/22363/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22363 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ifd64f02fa16b44f8e2e19eb8ba973f50a829ead5 Gerrit-Change-Number: 22363 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 11:43:49 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 22 Jan 2021 11:43:49 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Fix radio status routing by TMSI In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22363 ) Change subject: gbproxy: Fix radio status routing by TMSI ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-sgsn/+/22363/1/src/gbproxy/gb_proxy.c File src/gbproxy/gb_proxy.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/22363/1/src/gbproxy/gb_proxy.c at a424 PS1, Line 424: /* rc = gbprox_bss2sgsn_hashed(bss_bvc->cell, msg, NULL); */ > non-related ack -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22363 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ifd64f02fa16b44f8e2e19eb8ba973f50a829ead5 Gerrit-Change-Number: 22363 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 22 Jan 2021 11:43:49 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 13:05:15 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 22 Jan 2021 13:05:15 +0000 Subject: Change in osmo-pcu[master]: gprs_bssgp_rim: add serving BSS NACC application In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22368 ) Change subject: gprs_bssgp_rim: add serving BSS NACC application ...................................................................... Patch Set 2: (2 comments) https://gerrit.osmocom.org/c/osmo-pcu/+/22368/2/src/gprs_bssgp_rim.c File src/gprs_bssgp_rim.c: https://gerrit.osmocom.org/c/osmo-pcu/+/22368/2/src/gprs_bssgp_rim.c at 59 PS2, Line 59: app_cont->reprt_cell.rai.lac.plmn.mcc = bctx->ra_id.mcc; gprs_ra_id_ci_to_cgi_ps(&app_cont->reprt_cell, bctx->ra_id, bctx->cell_id); https://gerrit.osmocom.org/c/osmo-pcu/+/22368/2/src/pcu_l1_if.cpp File src/pcu_l1_if.cpp: https://gerrit.osmocom.org/c/osmo-pcu/+/22368/2/src/pcu_l1_if.cpp at 660 PS2, Line 660: LOGP(DL1IF, LOGL_DEBUG, " si1=%s\n", osmo_hexdump_nospc(info_ind->si1, GSM_MACBLOCK_LEN)); better use sizeof(info_ind->si1) everywhere, we don't really car about the real size here. -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22368 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Id72118120c14984d2fb1b918b41fac4868150d41 Gerrit-Change-Number: 22368 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 22 Jan 2021 13:05:15 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 13:09:07 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 22 Jan 2021 13:09:07 +0000 Subject: Change in docker-playground[master]: debian-repo-install-test: remove Release.key In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22370 ) Change subject: debian-repo-install-test: remove Release.key ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22370 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Ia2ba9de264531502e2b0b9f42d7a4ecd34375851 Gerrit-Change-Number: 22370 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 22 Jan 2021 13:09:07 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 13:09:23 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 22 Jan 2021 13:09:23 +0000 Subject: Change in docker-playground[master]: rename {debian => debian9}-repo-install-test In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22371 ) Change subject: rename {debian => debian9}-repo-install-test ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22371 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I2ea18997019ebaa013c258996f5131386bcd6426 Gerrit-Change-Number: 22371 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 22 Jan 2021 13:09:23 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 13:09:59 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 22 Jan 2021 13:09:59 +0000 Subject: Change in docker-playground[master]: debian10-repo-install-test: new container In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22372 ) Change subject: debian10-repo-install-test: new container ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22372 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I7addb30aa3f8564dcbdc3f6cf2e2e0cfdf4dd02d Gerrit-Change-Number: 22372 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 22 Jan 2021 13:09:59 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 13:10:33 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 22 Jan 2021 13:10:33 +0000 Subject: Change in osmo-ci[master]: repo-install-test: print successful test msg In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22373 ) Change subject: repo-install-test: print successful test msg ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22373 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Idfb75b0461a352ae1703f3c8452cd3afc3320049 Gerrit-Change-Number: 22373 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 22 Jan 2021 13:10:33 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 13:11:15 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 22 Jan 2021 13:11:15 +0000 Subject: Change in osmo-ci[master]: repo-install-test: no distro version in function In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22374 ) Change subject: repo-install-test: no distro version in function ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22374 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ibb9f93af16af7ebe947f7efcd4e709f3e62d12c0 Gerrit-Change-Number: 22374 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 22 Jan 2021 13:11:15 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 13:12:20 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 22 Jan 2021 13:12:20 +0000 Subject: Change in osmo-ci[master]: repo-install-test: verify DISTRO argument In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22375 ) Change subject: repo-install-test: verify DISTRO argument ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-ci/+/22375/1/scripts/repo-install-test.sh File scripts/repo-install-test.sh: https://gerrit.osmocom.org/c/osmo-ci/+/22375/1/scripts/repo-install-test.sh at 25 PS1, Line 25: DISTROS=" having the DISTROS gloval var below the place where it's used feels a bit strange. -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22375 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I1aa2564ff861d81a866302e44a1f99ff876c7b31 Gerrit-Change-Number: 22375 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 22 Jan 2021 13:12:20 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 13:12:44 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 22 Jan 2021 13:12:44 +0000 Subject: Change in osmo-ci[master]: repo-install-test: resolve distro obs dir in func In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22376 ) Change subject: repo-install-test: resolve distro obs dir in func ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22376 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ie537e8befeebd7958b2a1fe8f6fd54587cfcb1b6 Gerrit-Change-Number: 22376 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 22 Jan 2021 13:12:44 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 13:13:02 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 22 Jan 2021 13:13:02 +0000 Subject: Change in osmo-ci[master]: Cosmetic: repo-install-test: fix DISTRO comment In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22377 ) Change subject: Cosmetic: repo-install-test: fix DISTRO comment ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22377 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ie8c2c86bc77606b1d2d4339751521139de22db04 Gerrit-Change-Number: 22377 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 22 Jan 2021 13:13:02 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 13:13:23 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 22 Jan 2021 13:13:23 +0000 Subject: Change in osmo-ci[master]: repo-install-test: rename 'debian' to 'debian9' In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22378 ) Change subject: repo-install-test: rename 'debian' to 'debian9' ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22378 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Iaa2202cca4072b4dc0309e011aba6cb33ed5b8aa Gerrit-Change-Number: 22378 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 22 Jan 2021 13:13:23 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 13:14:45 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 22 Jan 2021 13:14:45 +0000 Subject: Change in osmo-ci[master]: repo-install-test: add 'debian10' In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22379 ) Change subject: repo-install-test: add 'debian10' ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22379 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: If0fc12464b571dc42b33f2a077c77ea6e5120b8d Gerrit-Change-Number: 22379 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 22 Jan 2021 13:14:45 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 13:16:59 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 22 Jan 2021 13:16:59 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Improve log messages in gbproxy_select_sgsn In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22362 ) Change subject: gbproxy: Improve log messages in gbproxy_select_sgsn ...................................................................... Patch Set 2: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-sgsn/+/22362/1/src/gbproxy/gb_proxy.c File src/gbproxy/gb_proxy.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/22362/1/src/gbproxy/gb_proxy.c at 257 PS1, Line 257: LOGP(DGPRS, LOGL_INFO, "TLLI %08x is neither local nor foreign\n"); > Yeah, as you can see from the missing argument. [?] well the question was more in the sense as: if it's not local nor foreign, what's it's type? is that a bug? or is there a 3rd type? -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22362 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Id7bc755b90c35ed7c8cfa8408073e2866d639f2d Gerrit-Change-Number: 22362 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 22 Jan 2021 13:16:59 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Comment-In-Reply-To: pespin Comment-In-Reply-To: daniel Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 13:17:29 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 22 Jan 2021 13:17:29 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Fix radio status routing by TMSI In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22363 ) Change subject: gbproxy: Fix radio status routing by TMSI ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22363 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ifd64f02fa16b44f8e2e19eb8ba973f50a829ead5 Gerrit-Change-Number: 22363 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 22 Jan 2021 13:17:29 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 13:25:32 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 22 Jan 2021 13:25:32 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Improve log messages in gbproxy_select_sgsn In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22362 ) Change subject: gbproxy: Improve log messages in gbproxy_select_sgsn ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-sgsn/+/22362/1/src/gbproxy/gb_proxy.c File src/gbproxy/gb_proxy.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/22362/1/src/gbproxy/gb_proxy.c at 257 PS1, Line 257: LOGP(DGPRS, LOGL_INFO, "TLLI %08x is neither local nor foreign\n"); > well the question was more in the sense as: if it's not local nor foreign, what's it's type? is that [?] Ah, sorry. There are other types like random, auxiliary, reserved, .. According to 3GPP TS 23.236 Ch 5.3.2 only local and foreign TLLIs should be routed according to their NRI. -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22362 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Id7bc755b90c35ed7c8cfa8408073e2866d639f2d Gerrit-Change-Number: 22362 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 22 Jan 2021 13:25:32 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Comment-In-Reply-To: daniel Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 13:26:26 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 22 Jan 2021 13:26:26 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Improve log messages in gbproxy_select_sgsn In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22362 ) Change subject: gbproxy: Improve log messages in gbproxy_select_sgsn ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-sgsn/+/22362/1/src/gbproxy/gb_proxy.c File src/gbproxy/gb_proxy.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/22362/1/src/gbproxy/gb_proxy.c at 257 PS1, Line 257: LOGP(DGPRS, LOGL_INFO, "TLLI %08x is neither local nor foreign\n"); > Ah, sorry. There are other types like random, auxiliary, reserved, .. [?] Ok, thanks, I was unaware of those :) -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22362 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Id7bc755b90c35ed7c8cfa8408073e2866d639f2d Gerrit-Change-Number: 22362 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 22 Jan 2021 13:26:26 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Comment-In-Reply-To: daniel Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 13:48:44 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 22 Jan 2021 13:48:44 +0000 Subject: Change in osmo-pcu[master]: Initial handling support for RIM messages In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22364 ) Change subject: Initial handling support for RIM messages ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-pcu/+/22364/2/src/gprs_bssgp_rim.c File src/gprs_bssgp_rim.c: https://gerrit.osmocom.org/c/osmo-pcu/+/22364/2/src/gprs_bssgp_rim.c at 128 PS2, Line 128: retu > is BSSGP STATUS really the proper response here? IMHO this is one layer too low. [?] I'm resubmitting the math fixing all the comments except this, one. I'm leaving pmaier take care of this one in a follow-up patch. I mainly took most of the code from one of his branches, polished it up and submitted this patch, since we both need this code. -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22364 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ia0ade0e97ea781ec655439c008b6cefaf3e90dec Gerrit-Change-Number: 22364 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 22 Jan 2021 13:48:44 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: laforge Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 13:49:37 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 22 Jan 2021 13:49:37 +0000 Subject: Change in osmo-pcu[master]: Initial handling support for RIM messages In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-pcu/+/22364 to look at the new patch set (#3). Change subject: Initial handling support for RIM messages ...................................................................... Initial handling support for RIM messages This code doesn't do anything yet app-related with the received RIM messages, but already provides the initial infrastructure to handle them in the future, and does first checkings. Related: SYS#5103 Change-Id: Ia0ade0e97ea781ec655439c008b6cefaf3e90dec --- M src/Makefile.am M src/gprs_bssgp_pcu.c A src/gprs_bssgp_rim.c A src/gprs_bssgp_rim.h M src/gprs_debug.cpp M src/gprs_debug.h M src/gprs_pcu.c M src/gprs_pcu.h 8 files changed, 228 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/64/22364/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22364 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ia0ade0e97ea781ec655439c008b6cefaf3e90dec Gerrit-Change-Number: 22364 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 14:04:57 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 22 Jan 2021 14:04:57 +0000 Subject: Change in osmo-pcu[master]: Get rid of singleton gprs_bssgp_pcu_current_bctx() In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22360 ) Change subject: Get rid of singleton gprs_bssgp_pcu_current_bctx() ...................................................................... Patch Set 1: Code-Review+1 Diff looks good. I like that "bts->pcu->bssgp.bctx" is actually shorter than the whole function call ;) -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22360 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I77455da5221090ebea142ecd49d5dba0065bfc5c Gerrit-Change-Number: 22360 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Comment-Date: Fri, 22 Jan 2021 14:04:57 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 14:41:21 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 22 Jan 2021 14:41:21 +0000 Subject: Change in osmo-pcu[master]: Initial handling support for RIM messages In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22364 ) Change subject: Initial handling support for RIM messages ...................................................................... Patch Set 3: Code-Review-1 (4 comments) https://gerrit.osmocom.org/c/osmo-pcu/+/22364/3/src/gprs_bssgp_pcu.c File src/gprs_bssgp_pcu.c: https://gerrit.osmocom.org/c/osmo-pcu/+/22364/3/src/gprs_bssgp_pcu.c at a554 PS3, Line 554: break; Looks like this break was not removed intentionally, handle_rim() will assert on SAP_BSSGP_NM. https://gerrit.osmocom.org/c/osmo-pcu/+/22364/3/src/gprs_bssgp_rim.c File src/gprs_bssgp_rim.c: https://gerrit.osmocom.org/c/osmo-pcu/+/22364/3/src/gprs_bssgp_rim.c at 91 PS3, Line 91: certian (certain) https://gerrit.osmocom.org/c/osmo-pcu/+/22364/3/src/gprs_bssgp_rim.c at 127 PS3, Line 127: /* FIXME: send RIM error instead */ If I read the spec right (8c.3.1.2 as mentioned above), it wants you to send a STATUS PDU, not a RIM PDU. That would mean the fixme isn't needed. EDIT: just saw the discussion before, maybe elaborate in the FIXME why we want a RIM PDU instead of STATUS PDU then, although spec says otherwise? https://gerrit.osmocom.org/c/osmo-pcu/+/22364/3/src/gprs_bssgp_rim.c at 161 PS3, Line 161: failes (fails) -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22364 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ia0ade0e97ea781ec655439c008b6cefaf3e90dec Gerrit-Change-Number: 22364 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Fri, 22 Jan 2021 14:41:21 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 15:37:53 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 22 Jan 2021 15:37:53 +0000 Subject: Change in osmo-pcu[master]: Initial handling support for RIM messages In-Reply-To: References: Message-ID: dexter has uploaded a new patch set (#4) to the change originally created by pespin. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22364 ) Change subject: Initial handling support for RIM messages ...................................................................... Initial handling support for RIM messages This code doesn't do anything yet app-related with the received RIM messages, but already provides the initial infrastructure to handle them in the future, and does first checkings. Related: SYS#5103 Change-Id: Ia0ade0e97ea781ec655439c008b6cefaf3e90dec --- M src/Makefile.am M src/gprs_bssgp_pcu.c A src/gprs_bssgp_rim.c A src/gprs_bssgp_rim.h M src/gprs_debug.cpp M src/gprs_debug.h M src/gprs_pcu.c M src/gprs_pcu.h 8 files changed, 230 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/64/22364/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22364 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ia0ade0e97ea781ec655439c008b6cefaf3e90dec Gerrit-Change-Number: 22364 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 15:39:03 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 22 Jan 2021 15:39:03 +0000 Subject: Change in osmo-pcu[master]: Initial handling support for RIM messages In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22364 ) Change subject: Initial handling support for RIM messages ...................................................................... Patch Set 3: (6 comments) Thanks for reviewing. I have now reworked the missing bits. https://gerrit.osmocom.org/c/osmo-pcu/+/22364/3/src/gprs_bssgp_pcu.c File src/gprs_bssgp_pcu.c: https://gerrit.osmocom.org/c/osmo-pcu/+/22364/3/src/gprs_bssgp_pcu.c at a554 PS3, Line 554: break; > Looks like this break was not removed intentionally, handle_rim() will assert on SAP_BSSGP_NM. yes, it probably makes no sense to let PDUs for NM into the RIM handlers... https://gerrit.osmocom.org/c/osmo-pcu/+/22364/2/src/gprs_bssgp_rim.c File src/gprs_bssgp_rim.c: https://gerrit.osmocom.org/c/osmo-pcu/+/22364/2/src/gprs_bssgp_rim.c at 116 PS2, Line 116: > Why should an UMTS or LTE cell not be able to ask us for NACC related information? As far as I under [?] Thats indeed true. I will drop the check for the source. https://gerrit.osmocom.org/c/osmo-pcu/+/22364/2/src/gprs_bssgp_rim.c at 128 PS2, Line 128: retu > I'm resubmitting the math fixing all the comments except this, one. [?] This is indeed a bit confisuing, I added a comment to explain it a bit better. https://gerrit.osmocom.org/c/osmo-pcu/+/22364/3/src/gprs_bssgp_rim.c File src/gprs_bssgp_rim.c: https://gerrit.osmocom.org/c/osmo-pcu/+/22364/3/src/gprs_bssgp_rim.c at 91 PS3, Line 91: certian > (certain) Done https://gerrit.osmocom.org/c/osmo-pcu/+/22364/3/src/gprs_bssgp_rim.c at 127 PS3, Line 127: /* FIXME: send RIM error instead */ > If I read the spec right (8c.3.1. [?] I have put a spec ref now. This indeed a bit confusing. The RIM container is more like a payload that is handled by the various RIM applications, but when a RIM PDU is routed the layer responsible for routing is not looking into the container, so if the routing destination is wrong, you would expect the error message from the routing layer, not from the RIM application and as there is no cause code IE or something but only the routing information IEs in above the RIM container, BSSGP is used for that. Thats at least how I explain it to me. https://gerrit.osmocom.org/c/osmo-pcu/+/22364/3/src/gprs_bssgp_rim.c at 161 PS3, Line 161: failes > (fails) Done -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22364 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ia0ade0e97ea781ec655439c008b6cefaf3e90dec Gerrit-Change-Number: 22364 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Fri, 22 Jan 2021 15:39:03 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: osmith Comment-In-Reply-To: laforge Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 15:49:18 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 22 Jan 2021 15:49:18 +0000 Subject: Change in osmo-pcu[master]: Get rid of singleton gprs_bssgp_pcu_current_bctx() In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22360 ) Change subject: Get rid of singleton gprs_bssgp_pcu_current_bctx() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22360 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I77455da5221090ebea142ecd49d5dba0065bfc5c Gerrit-Change-Number: 22360 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: osmith Gerrit-Comment-Date: Fri, 22 Jan 2021 15:49:18 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 15:49:39 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 22 Jan 2021 15:49:39 +0000 Subject: Change in osmo-pcu[master]: Get rid of singleton gprs_bssgp_pcu_current_bctx() In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22360 ) Change subject: Get rid of singleton gprs_bssgp_pcu_current_bctx() ...................................................................... Get rid of singleton gprs_bssgp_pcu_current_bctx() Access it from existing pointers instead. Change-Id: I77455da5221090ebea142ecd49d5dba0065bfc5c --- M src/gprs_bssgp_pcu.c M src/gprs_bssgp_pcu.h M src/pcu_l1_if.cpp M src/tbf_dl.cpp M src/tbf_ul.cpp 5 files changed, 4 insertions(+), 10 deletions(-) Approvals: Jenkins Builder: Verified osmith: Looks good to me, but someone else must approve dexter: Looks good to me, approved diff --git a/src/gprs_bssgp_pcu.c b/src/gprs_bssgp_pcu.c index 956fb66..c5cc39d 100644 --- a/src/gprs_bssgp_pcu.c +++ b/src/gprs_bssgp_pcu.c @@ -515,7 +515,7 @@ if (!TLVP_PRESENT(bp->tp, BSSGP_IE_BVCI)) return; - if (gprs_bssgp_pcu_current_bctx()->bvci != bp->bvci) { + if (the_pcu->bssgp.bctx->bvci != bp->bvci) { LOGP(DPCU, LOGL_NOTICE, "Received BSSGP STATUS message for an unknown BVCI (%d), " "ignored\n", @@ -1181,11 +1181,6 @@ bts->nse = NULL; } -struct bssgp_bvc_ctx *gprs_bssgp_pcu_current_bctx(void) -{ - return the_pcu->bssgp.bctx; -} - void gprs_bssgp_update_frames_sent() { the_pcu->bssgp.queue_frames_sent += 1; diff --git a/src/gprs_bssgp_pcu.h b/src/gprs_bssgp_pcu.h index df22541..4b0e0aa 100644 --- a/src/gprs_bssgp_pcu.h +++ b/src/gprs_bssgp_pcu.h @@ -78,7 +78,6 @@ }; int gprs_gp_send_cb(void *ctx, struct msgb *msg); -struct bssgp_bvc_ctx *gprs_bssgp_pcu_current_bctx(void); int gprs_ns_prim_cb(struct osmo_prim_hdr *oph, void *ctx); void gprs_bssgp_update_queue_delay(const struct timespec *tv_recv, const struct timespec *tv_now); diff --git a/src/pcu_l1_if.cpp b/src/pcu_l1_if.cpp index 8ae74d5..d7590e1 100644 --- a/src/pcu_l1_if.cpp +++ b/src/pcu_l1_if.cpp @@ -782,7 +782,7 @@ static int pcu_rx_susp_req(struct gprs_rlcmac_bts *bts, struct gsm_pcu_if_susp_req *susp_req) { - struct bssgp_bvc_ctx *bctx = gprs_bssgp_pcu_current_bctx(); + struct bssgp_bvc_ctx *bctx = bts->pcu->bssgp.bctx; GprsMs *ms; struct gprs_rlcmac_dl_tbf *dl_tbf; struct gprs_rlcmac_ul_tbf *ul_tbf; diff --git a/src/tbf_dl.cpp b/src/tbf_dl.cpp index 87c897f..de43349 100644 --- a/src/tbf_dl.cpp +++ b/src/tbf_dl.cpp @@ -641,7 +641,7 @@ return; /* dequeue next LLC frame, if any */ - msg = llc_dequeue(gprs_bssgp_pcu_current_bctx()); + msg = llc_dequeue(bts->pcu->bssgp.bctx); if (!msg) return; diff --git a/src/tbf_ul.cpp b/src/tbf_ul.cpp index 0c59a50..a5fc376 100644 --- a/src/tbf_ul.cpp +++ b/src/tbf_ul.cpp @@ -560,7 +560,7 @@ uint8_t qos_profile[3]; struct msgb *llc_pdu; unsigned msg_len = NS_HDR_LEN + BSSGP_HDR_LEN + llc_frame_length(&m_llc); - struct bssgp_bvc_ctx *bctx = gprs_bssgp_pcu_current_bctx(); + struct bssgp_bvc_ctx *bctx = bts->pcu->bssgp.bctx; LOGP(DBSSGP, LOGL_INFO, "LLC [PCU -> SGSN] %s len=%d\n", tbf_name(this), llc_frame_length(&m_llc)); if (!bctx) { -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22360 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I77455da5221090ebea142ecd49d5dba0065bfc5c Gerrit-Change-Number: 22360 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 15:50:47 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 22 Jan 2021 15:50:47 +0000 Subject: Change in osmo-pcu[master]: Initial handling support for RIM messages In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22364 ) Change subject: Initial handling support for RIM messages ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22364 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ia0ade0e97ea781ec655439c008b6cefaf3e90dec Gerrit-Change-Number: 22364 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 22 Jan 2021 15:50:47 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 16:22:07 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 22 Jan 2021 16:22:07 +0000 Subject: Change in libosmocore[master]: gprs_bssgp_rim: add value strings for enum bssgp_nacc_cause References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22380 ) Change subject: gprs_bssgp_rim: add value strings for enum bssgp_nacc_cause ...................................................................... gprs_bssgp_rim: add value strings for enum bssgp_nacc_cause Change-Id: I3354699555569c2b0bd1b4313cffd32a0cbeffe9 Related: SYS#5103 --- M include/osmocom/gprs/gprs_bssgp_rim.h M src/gb/gprs_bssgp_rim.c M src/gb/libosmogb.map 3 files changed, 18 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/80/22380/1 diff --git a/include/osmocom/gprs/gprs_bssgp_rim.h b/include/osmocom/gprs/gprs_bssgp_rim.h index 7e9efcd..5e5966e 100644 --- a/include/osmocom/gprs/gprs_bssgp_rim.h +++ b/include/osmocom/gprs/gprs_bssgp_rim.h @@ -96,6 +96,12 @@ BSSGP_NACC_CAUSE_SIPSI_SET_ERR, }; +extern const struct value_string bssgp_nacc_cause_strs[]; + +/*! Obtain a human-readable string for NACC Cause code */ +static inline const char *bssgp_nacc_cause_str(enum bssgp_nacc_cause val) +{ return get_value_string(bssgp_nacc_cause_strs, val); } + /* 3GPP TS 48.018, table 11.3.64.1.a, Application Error Container coding for NACC */ struct bssgp_app_err_cont_nacc { enum bssgp_nacc_cause nacc_cause; diff --git a/src/gb/gprs_bssgp_rim.c b/src/gb/gprs_bssgp_rim.c index 23fb3a0..7d6c2f2 100644 --- a/src/gb/gprs_bssgp_rim.c +++ b/src/gb/gprs_bssgp_rim.c @@ -270,6 +270,17 @@ return (int)(buf_ptr - buf); } +/* 3GPP TS 48.018, table 11.3.64.1.b, NACC Cause coding */ +const struct value_string bssgp_nacc_cause_strs[] = { + { BSSGP_NACC_CAUSE_UNSPEC, "unspecified error" }, + { BSSGP_NACC_CAUSE_SYNTAX_ERR, "syntax error in app. container" }, + { BSSGP_NACC_CAUSE_RPRT_CELL_MISSMTCH, "reporting cell id. mismatch" }, + { BSSGP_NACC_CAUSE_SIPSI_TYPE_ERR, "SI/PSI type error" }, + { BSSGP_NACC_CAUSE_SIPSI_LEN_ERR, "SI/PSI inconsistent length" }, + { BSSGP_NACC_CAUSE_SIPSI_SET_ERR, "inconsistent set of msg" }, + { 0, NULL } +}; + /*! Decode a Application Error Container for NACC (3GPP TS 48.018, section 11.3.64.1). * \param[out] user provided memory for decoded data struct. * \param[in] buf user provided memory with the encoded value data of the IE. diff --git a/src/gb/libosmogb.map b/src/gb/libosmogb.map index 763ddc6..dc9df3a 100644 --- a/src/gb/libosmogb.map +++ b/src/gb/libosmogb.map @@ -29,6 +29,7 @@ bssgp_msgb_copy; bssgp_msgb_tlli_put; bssgp_msgb_ra_put; +bssgp_nacc_cause_strs; bssgp_parse_cell_id; bssgp_parse_rim_pdu; bssgp_parse_rim_ri; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22380 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I3354699555569c2b0bd1b4313cffd32a0cbeffe9 Gerrit-Change-Number: 22380 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 16:29:53 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 22 Jan 2021 16:29:53 +0000 Subject: Change in libosmocore[master]: gprs_bssgp_rim: add value strings for enum bssgp_nacc_cause In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22380 ) Change subject: gprs_bssgp_rim: add value strings for enum bssgp_nacc_cause ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/22380/1/src/gb/gprs_bssgp_rim.c File src/gb/gprs_bssgp_rim.c: https://gerrit.osmocom.org/c/libosmocore/+/22380/1/src/gb/gprs_bssgp_rim.c at 278 PS1, Line 278: { BSSGP_NACC_CAUSE_SIPSI_TYPE_ERR, "SI/PSI type error" }, are those dots in the string expected? they look confusing to me. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22380 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I3354699555569c2b0bd1b4313cffd32a0cbeffe9 Gerrit-Change-Number: 22380 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Fri, 22 Jan 2021 16:29:53 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 16:44:23 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 22 Jan 2021 16:44:23 +0000 Subject: Change in osmo-pcu[master]: Initial handling support for RIM messages In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22364 ) Change subject: Initial handling support for RIM messages ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22364 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ia0ade0e97ea781ec655439c008b6cefaf3e90dec Gerrit-Change-Number: 22364 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 22 Jan 2021 16:44:23 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 16:50:54 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 22 Jan 2021 16:50:54 +0000 Subject: Change in osmo-pcu[master]: Initial handling support for RIM messages In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22364 ) Change subject: Initial handling support for RIM messages ...................................................................... Initial handling support for RIM messages This code doesn't do anything yet app-related with the received RIM messages, but already provides the initial infrastructure to handle them in the future, and does first checkings. Related: SYS#5103 Change-Id: Ia0ade0e97ea781ec655439c008b6cefaf3e90dec --- M src/Makefile.am M src/gprs_bssgp_pcu.c A src/gprs_bssgp_rim.c A src/gprs_bssgp_rim.h M src/gprs_debug.cpp M src/gprs_debug.h M src/gprs_pcu.c M src/gprs_pcu.h 8 files changed, 230 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve osmith: Looks good to me, approved diff --git a/src/Makefile.am b/src/Makefile.am index de924a6..f85a456 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -43,6 +43,7 @@ csn1.c \ gsm_rlcmac.c \ gprs_bssgp_pcu.c \ + gprs_bssgp_rim.c \ gprs_rlcmac.cpp \ gprs_rlcmac_sched.cpp \ gprs_rlcmac_meas.cpp \ @@ -81,6 +82,7 @@ csn1.h \ gsm_rlcmac.h \ gprs_bssgp_pcu.h \ + gprs_bssgp_rim.h \ gprs_rlcmac.h \ gprs_ms.h \ gprs_ms_storage.h \ diff --git a/src/gprs_bssgp_pcu.c b/src/gprs_bssgp_pcu.c index c5cc39d..81a6518 100644 --- a/src/gprs_bssgp_pcu.c +++ b/src/gprs_bssgp_pcu.c @@ -20,6 +20,7 @@ #include #include +#include #include #include #include @@ -419,10 +420,22 @@ int rc = 0; struct bssgp_bvc_ctx *bctx; - if (pdu_type == BSSGP_PDUT_STATUS) + switch (pdu_type) { + case BSSGP_PDUT_STATUS: /* Pass the message to the generic BSSGP parser, which handles * STATUS and RESET messages in either direction. */ + case BSSGP_PDUT_RAN_INFO: + case BSSGP_PDUT_RAN_INFO_REQ: + case BSSGP_PDUT_RAN_INFO_ACK: + case BSSGP_PDUT_RAN_INFO_ERROR: + case BSSGP_PDUT_RAN_INFO_APP_ERROR: + /* Also pass all RIM related messages to the generic BSSGP + * parser so that it can deliver primitive to the RIM SAP + * (SAP_BSSGP_RIM) */ return bssgp_rcvmsg(msg); + default: + break; + } /* Identifiers from DOWN: NSEI, BVCI (both in msg->cb) */ @@ -552,6 +565,8 @@ if (oph->primitive == PRIM_NM_STATUS) handle_nm_status(bp); break; + case SAP_BSSGP_RIM: + return handle_rim(bp); default: break; } diff --git a/src/gprs_bssgp_rim.c b/src/gprs_bssgp_rim.c new file mode 100644 index 0000000..cf43a8f --- /dev/null +++ b/src/gprs_bssgp_rim.c @@ -0,0 +1,169 @@ +/* gprs_bssgp_pcu.cpp + * + * Copyright (C) 2021 by sysmocom - s.f.m.c. GmbH + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + +#include +#include +#include +#include +#include +#include + +#include "gprs_debug.h" +#include "gprs_pcu.h" + +#define LOGPRIM(nsei, level, fmt, args...) \ + LOGP(DRIM, level, "(NSEI=%u) " fmt, nsei, ## args) + +static inline void gprs_ra_id_ci_to_cgi_ps(struct osmo_cell_global_id_ps *cgi_ps, + const struct gprs_ra_id *raid, uint16_t cid) +{ + *cgi_ps = (struct osmo_cell_global_id_ps) { + .rai.lac.plmn.mcc = raid->mcc, + .rai.lac.plmn.mnc = raid->mnc, + .rai.lac.plmn.mnc_3_digits = raid->mnc_3_digits, + .rai.lac.lac = raid->lac, + .rai.rac = raid->rac, + .cell_identity = cid, + }; +} + +/* Mirror RIM routing information of a given PDU, see also 3GPP TS 48.018, section 8c.1.4.3 */ +static void mirror_rim_routing_info(struct bssgp_ran_information_pdu *to_pdu, + const struct bssgp_ran_information_pdu *from_pdu) +{ + memcpy(&to_pdu->routing_info_dest, &from_pdu->routing_info_src, sizeof(to_pdu->routing_info_dest)); + memcpy(&to_pdu->routing_info_src, &from_pdu->routing_info_dest, sizeof(to_pdu->routing_info_src)); +} + +/* Format a RAN INFORMATION ERROR PDU */ +static void format_response_pdu_err(struct bssgp_ran_information_pdu *resp_pdu, + const struct bssgp_ran_information_pdu *req_pdu) +{ + memset(resp_pdu, 0, sizeof(*resp_pdu)); + mirror_rim_routing_info(resp_pdu, req_pdu); + + resp_pdu->decoded.err_rim_cont = (struct bssgp_ran_inf_err_rim_cont) { + .app_id = BSSGP_RAN_INF_APP_ID_NACC, + .prot_ver = 1, + .err_pdu = req_pdu->rim_cont, + .err_pdu_len = req_pdu->rim_cont_len, + }; + + resp_pdu->decoded_present = true; + resp_pdu->rim_cont_iei = BSSGP_IE_RI_ERROR_RIM_COINTAINER; +} + +/* Check if the application ID in the request PDU is actually BSSGP_RAN_INF_APP_ID_NACC */ +static const enum bssgp_ran_inf_app_id *get_app_id(const struct bssgp_ran_information_pdu *pdu) +{ + switch (pdu->rim_cont_iei) { + case BSSGP_IE_RI_REQ_RIM_CONTAINER: + return &pdu->decoded.req_rim_cont.app_id; + case BSSGP_IE_RI_RIM_CONTAINER: + return &pdu->decoded.rim_cont.app_id; + case BSSGP_IE_RI_APP_ERROR_RIM_CONT: + return &pdu->decoded.app_err_rim_cont.app_id; + case BSSGP_IE_RI_ACK_RIM_CONTAINER: + return &pdu->decoded.ack_rim_cont.app_id; + case BSSGP_IE_RI_ERROR_RIM_COINTAINER: + return &pdu->decoded.err_rim_cont.app_id; + default: + return NULL; + } +} + +/* Check if the application ID in the request PDU is of a certain type */ +static bool match_app_id(const struct bssgp_ran_information_pdu *pdu, enum bssgp_ran_inf_app_id exp_app_id) +{ + const enum bssgp_ran_inf_app_id *app_id = get_app_id(pdu); + if (app_id && *app_id == exp_app_id) + return true; + return false; +} + +int handle_rim(struct osmo_bssgp_prim *bp) +{ + struct msgb *msg = bp->oph.msg; + uint16_t nsei = msgb_nsei(msg); + struct bssgp_ran_information_pdu *pdu = &bp->u.rim_pdu; + struct bssgp_ran_information_pdu resp_pdu; + struct osmo_cell_global_id_ps dst_addr; + struct gprs_rlcmac_bts *bts; + + OSMO_ASSERT (bp->oph.sap == SAP_BSSGP_RIM); + + /* At the moment we only support GERAN, so we block all other network + * types here. */ + if (pdu->routing_info_dest.discr != BSSGP_RIM_ROUTING_INFO_GERAN) { + LOGPRIM(nsei, LOGL_ERROR, + "Only GERAN supported, destination cell is not a GERAN cell -- rejected.\n"); + return bssgp_tx_status(BSSGP_CAUSE_UNKN_RIM_AI, NULL, msg); + } + + /* Check if the RIM pdu is really addressed to this PCU. In case we + * receive a RIM PDU for a cell that is not parented by this PCU we + * are supposed to reject it with a BSSGP STATUS. + * see also: 3GPP TS 48.018, section 8c.3.1.2 */ + gprs_ra_id_ci_to_cgi_ps(&dst_addr, &pdu->routing_info_dest.geran.raid, + pdu->routing_info_dest.geran.cid); + bts = gprs_pcu_get_bts_by_cgi_ps(the_pcu, &dst_addr); + if (!bts) { + LOGPRIM(nsei, LOGL_ERROR, "Cell %s unknown to this pcu\n", + osmo_cgi_ps_name(&dst_addr)); + return bssgp_tx_status(BSSGP_CAUSE_UNKN_DST, NULL, msg); + } + + /* Check if the incoming RIM PDU is parseable, if not we must report + * an error to the controlling BSS 3GPP TS 48.018, 8c.3.4 and 8c.3.4.2 */ + if (!pdu->decoded_present) { + LOGPRIM(nsei, LOGL_ERROR, "Errornous RIM PDU received -- rejected.\n"); + format_response_pdu_err(&resp_pdu, pdu); + return 0; + } + + /* Check if the RIM container inside the incoming RIM PDU has the correct + * application ID */ + if (!match_app_id(pdu, BSSGP_RAN_INF_APP_ID_NACC)) { + LOGPRIM(nsei, LOGL_ERROR, "RIM PDU with unknown/wrong application ID received -- rejected.\n"); + format_response_pdu_err(&resp_pdu, pdu); + return 0; + } + + /* Handle incoming RIM container */ + switch (pdu->rim_cont_iei) { + case BSSGP_IE_RI_REQ_RIM_CONTAINER: + LOGPRIM(nsei, LOGL_NOTICE, "Responding to RAN INFORMATION REQUEST not yet implemented!\n"); + break; + case BSSGP_IE_RI_RIM_CONTAINER: + LOGPRIM(nsei, LOGL_NOTICE, "Responding to RAN INFORMATION not yet implemented!\n"); + break; + case BSSGP_IE_RI_APP_ERROR_RIM_CONT: + case BSSGP_IE_RI_ACK_RIM_CONTAINER: + case BSSGP_IE_RI_ERROR_RIM_COINTAINER: + LOGPRIM(nsei, LOGL_ERROR, "RIM PDU not handled by this application\n"); + return -EINVAL; + default: + /* This should never happen. If the RIM PDU is parsed correctly, then the rim_cont_iei will + * be set to one of the cases above and if parsing fails this switch statement is guarded + * by the check on decoded_present above */ + OSMO_ASSERT(false); + } + + return 0; +} diff --git a/src/gprs_bssgp_rim.h b/src/gprs_bssgp_rim.h new file mode 100644 index 0000000..5fac56f --- /dev/null +++ b/src/gprs_bssgp_rim.h @@ -0,0 +1,24 @@ +/* gprs_bssgp_rim.h + * + * Copyright (C) 2021 by sysmocom - s.f.m.c. GmbH + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + +#pragma once + +struct osmo_bssgp_prim; + +int handle_rim(struct osmo_bssgp_prim *bp); diff --git a/src/gprs_debug.cpp b/src/gprs_debug.cpp index a790e3f..669ea27 100644 --- a/src/gprs_debug.cpp +++ b/src/gprs_debug.cpp @@ -119,6 +119,13 @@ .loglevel = LOGL_NOTICE, .enabled = 1, }, + [DRIM] = { + .name = "DRIM", + .color = "\033[1;38m", + .description = "RAN Information Management (RIM)", + .loglevel = LOGL_NOTICE, + .enabled = 1, + }, }; static int filter_fn(const struct log_context *ctx, diff --git a/src/gprs_debug.h b/src/gprs_debug.h index 84a0a07..8df405a 100644 --- a/src/gprs_debug.h +++ b/src/gprs_debug.h @@ -46,6 +46,7 @@ DTBFUL, DNS, DPCU, + DRIM, aDebug_LastEntry }; diff --git a/src/gprs_pcu.c b/src/gprs_pcu.c index d291e71..32259b8 100644 --- a/src/gprs_pcu.c +++ b/src/gprs_pcu.c @@ -116,6 +116,16 @@ return NULL; } +struct gprs_rlcmac_bts *gprs_pcu_get_bts_by_cgi_ps(struct gprs_pcu *pcu, struct osmo_cell_global_id_ps *cgi_ps) +{ + struct gprs_rlcmac_bts *pos; + llist_for_each_entry(pos, &pcu->bts_list, list) { + if (memcmp(&pos->cgi_ps, cgi_ps, sizeof(*cgi_ps)) == 0) + return pos; + } + return NULL; +} + void gprs_pcu_set_initial_cs(struct gprs_pcu *pcu, uint8_t cs_dl, uint8_t cs_ul) { struct gprs_rlcmac_bts *bts; diff --git a/src/gprs_pcu.h b/src/gprs_pcu.h index 058d102..a1cd1ed 100644 --- a/src/gprs_pcu.h +++ b/src/gprs_pcu.h @@ -124,6 +124,7 @@ struct gprs_pcu *gprs_pcu_alloc(void *ctx); struct gprs_rlcmac_bts *gprs_pcu_get_bts_by_nr(struct gprs_pcu *pcu, uint8_t bts_nr); +struct gprs_rlcmac_bts *gprs_pcu_get_bts_by_cgi_ps(struct gprs_pcu *pcu, struct osmo_cell_global_id_ps *cgi_ps); void gprs_pcu_set_initial_cs(struct gprs_pcu *pcu, uint8_t cs_dl, uint8_t cs_ul); void gprs_pcu_set_initial_mcs(struct gprs_pcu *pcu, uint8_t mcs_dl, uint8_t mcs_ul); -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22364 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ia0ade0e97ea781ec655439c008b6cefaf3e90dec Gerrit-Change-Number: 22364 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 16:52:33 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 22 Jan 2021 16:52:33 +0000 Subject: Change in libosmocore[master]: gsm: Add missing osmo_*_cmp symbols to libosmogsm.map References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22381 ) Change subject: gsm: Add missing osmo_*_cmp symbols to libosmogsm.map ...................................................................... gsm: Add missing osmo_*_cmp symbols to libosmogsm.map Change-Id: I8ff677aa381118466d065abee7db20b15880352f --- M src/gsm/libosmogsm.map 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/81/22381/1 diff --git a/src/gsm/libosmogsm.map b/src/gsm/libosmogsm.map index eceb1c1..de9a595 100644 --- a/src/gsm/libosmogsm.map +++ b/src/gsm/libosmogsm.map @@ -406,6 +406,7 @@ osmo_plmn_name_buf; osmo_plmn_name_c; osmo_plmn_name2; +osmo_lai_cmp; osmo_lai_name; osmo_lai_name_buf; osmo_lai_name_c; @@ -415,6 +416,7 @@ osmo_rai_name2; osmo_rai_name2_buf; osmo_rai_name2_c; +osmo_cgi_cmp; osmo_cgi_name; osmo_cgi_name_buf; osmo_cgi_name_c; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22381 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I8ff677aa381118466d065abee7db20b15880352f Gerrit-Change-Number: 22381 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 16:52:33 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 22 Jan 2021 16:52:33 +0000 Subject: Change in libosmocore[master]: gsm: Introduce osmo_{rai, cgi_ps}_cmp() APIs References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22382 ) Change subject: gsm: Introduce osmo_{rai,cgi_ps}_cmp() APIs ...................................................................... gsm: Introduce osmo_{rai,cgi_ps}_cmp() APIs Similar to what we already have for other data types, such as osmo_lai_cmp or osmo_cgi_cmp. Change-Id: I00e329bc5be8674b30267dec238e7656ddfc21db --- M include/osmocom/gsm/gsm23003.h M src/gsm/gsm23003.c M src/gsm/libosmogsm.map 3 files changed, 38 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/82/22382/1 diff --git a/include/osmocom/gsm/gsm23003.h b/include/osmocom/gsm/gsm23003.h index fbe0ca0..487379a 100644 --- a/include/osmocom/gsm/gsm23003.h +++ b/include/osmocom/gsm/gsm23003.h @@ -157,7 +157,9 @@ int osmo_mnc_cmp(uint16_t a_mnc, bool a_mnc_3_digits, uint16_t b_mnc, bool b_mnc_3_digits); int osmo_plmn_cmp(const struct osmo_plmn_id *a, const struct osmo_plmn_id *b); int osmo_lai_cmp(const struct osmo_location_area_id *a, const struct osmo_location_area_id *b); +int osmo_rai_cmp(const struct osmo_routing_area_id *a, const struct osmo_routing_area_id *b); int osmo_cgi_cmp(const struct osmo_cell_global_id *a, const struct osmo_cell_global_id *b); +int osmo_cgi_ps_cmp(const struct osmo_cell_global_id_ps *a, const struct osmo_cell_global_id_ps *b); int osmo_gen_home_network_domain(char *out, const struct osmo_plmn_id *plmn); int osmo_parse_home_network_domain(struct osmo_plmn_id *out, const char *in); diff --git a/src/gsm/gsm23003.c b/src/gsm/gsm23003.c index ae498fa..505c401 100644 --- a/src/gsm/gsm23003.c +++ b/src/gsm/gsm23003.c @@ -565,6 +565,23 @@ return 0; } +/* Compare two RAI. + * The order of comparison is MCC, MNC, LAC, RAC. See also osmo_lac_cmp(). + * \param a[in] "Left" side RAI. + * \param b[in] "Right" side RAI. + * \returns 0 if the RAI are equal, -1 if a < b, 1 if a > b. */ +int osmo_rai_cmp(const struct osmo_routing_area_id *a, const struct osmo_routing_area_id *b) +{ + int rc = osmo_lai_cmp(&a->lac, &b->lac); + if (rc) + return rc; + if (a->rac < b->rac) + return -1; + if (a->rac > b->rac) + return 1; + return 0; +} + /* Compare two CGI. * The order of comparison is MCC, MNC, LAC, CI. See also osmo_lai_cmp(). * \param a[in] "Left" side CGI. @@ -582,6 +599,23 @@ return 0; } +/* Compare two CGI-PS. + * The order of comparison is MCC, MNC, LAC, RAC, CI. See also osmo_rai_cmp(). + * \param a[in] "Left" side CGI-PS. + * \param b[in] "Right" side CGI-PS. + * \returns 0 if the CGI are equal, -1 if a < b, 1 if a > b. */ +int osmo_cgi_ps_cmp(const struct osmo_cell_global_id_ps *a, const struct osmo_cell_global_id_ps *b) +{ + int rc = osmo_rai_cmp(&a->rai, &b->rai); + if (rc) + return rc; + if (a->cell_identity < b->cell_identity) + return -1; + if (a->cell_identity > b->cell_identity) + return 1; + return 0; +} + /*! Generate TS 23.003 Section 19.2 Home Network Realm/Domain (text form) * \param out[out] caller-provided output buffer, at least 33 bytes long * \param plmn[in] Osmocom representation of PLMN ID (MCC + MNC) diff --git a/src/gsm/libosmogsm.map b/src/gsm/libosmogsm.map index de9a595..c314c20 100644 --- a/src/gsm/libosmogsm.map +++ b/src/gsm/libosmogsm.map @@ -410,6 +410,7 @@ osmo_lai_name; osmo_lai_name_buf; osmo_lai_name_c; +osmo_rai_cmp; osmo_rai_name; osmo_rai_name_buf; osmo_rai_name_c; @@ -421,6 +422,7 @@ osmo_cgi_name_buf; osmo_cgi_name_c; osmo_cgi_name2; +osmo_cgi_ps_cmp; osmo_cgi_ps_name; osmo_cgi_ps_name_buf; osmo_cgi_ps_name_c; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22382 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I00e329bc5be8674b30267dec238e7656ddfc21db Gerrit-Change-Number: 22382 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 16:53:24 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 22 Jan 2021 16:53:24 +0000 Subject: Change in libosmocore[master]: gsm: Introduce osmo_{rai, cgi_ps}_cmp() APIs In-Reply-To: References: Message-ID: pespin has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/libosmocore/+/22382 ) Change subject: gsm: Introduce osmo_{rai,cgi_ps}_cmp() APIs ...................................................................... gsm: Introduce osmo_{rai,cgi_ps}_cmp() APIs Similar to what we already have for other data types, such as osmo_lai_cmp or osmo_cgi_cmp. Change-Id: I00e329bc5be8674b30267dec238e7656ddfc21db --- M TODO-RELEASE M include/osmocom/gsm/gsm23003.h M src/gsm/gsm23003.c M src/gsm/libosmogsm.map 4 files changed, 39 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/82/22382/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22382 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I00e329bc5be8674b30267dec238e7656ddfc21db Gerrit-Change-Number: 22382 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-CC: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 16:53:28 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 22 Jan 2021 16:53:28 +0000 Subject: Change in osmo-pcu[master]: gprs_pcu: Use libosmocore osmo_cgi_ps_cmp API References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22383 ) Change subject: gprs_pcu: Use libosmocore osmo_cgi_ps_cmp API ...................................................................... gprs_pcu: Use libosmocore osmo_cgi_ps_cmp API it was noticed that gprs_pcu_get_bts_by_cgi_ps() sometimes failed to return the BTS even if the CGI-PS fields matched, probably due to memcmp checking too padding bytes which may not be zero-initialized in one of the two memory regions being checked. Let's be on the safe side and use libosmocore APIs to check them. Depends: libosmcoore.git Change-Id I00e329bc5be8674b30267dec238e7656ddfc21db Change-Id: I7c8ee2c447634e45b367bb8f84adf0140ae48591 --- M src/gprs_pcu.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/83/22383/1 diff --git a/src/gprs_pcu.c b/src/gprs_pcu.c index 32259b8..2f18dfd 100644 --- a/src/gprs_pcu.c +++ b/src/gprs_pcu.c @@ -120,7 +120,7 @@ { struct gprs_rlcmac_bts *pos; llist_for_each_entry(pos, &pcu->bts_list, list) { - if (memcmp(&pos->cgi_ps, cgi_ps, sizeof(*cgi_ps)) == 0) + if (osmo_cgi_ps_cmp(&pos->cgi_ps, cgi_ps) == 0) return pos; } return NULL; -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22383 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I7c8ee2c447634e45b367bb8f84adf0140ae48591 Gerrit-Change-Number: 22383 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 16:56:24 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 22 Jan 2021 16:56:24 +0000 Subject: Change in osmo-pcu[master]: gprs_pcu: Use libosmocore osmo_cgi_ps_cmp API In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22383 ) Change subject: gprs_pcu: Use libosmocore osmo_cgi_ps_cmp API ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22383 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I7c8ee2c447634e45b367bb8f84adf0140ae48591 Gerrit-Change-Number: 22383 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: dexter Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Fri, 22 Jan 2021 16:56:24 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 17:17:51 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 22 Jan 2021 17:17:51 +0000 Subject: Change in osmo-pcu[master]: gprs_pcu: Use libosmocore osmo_cgi_ps_cmp API In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22383 ) Change subject: gprs_pcu: Use libosmocore osmo_cgi_ps_cmp API ...................................................................... Patch Set 1: Expected failure due to missing APIs still not merged (in gerrit). Need jenkinsr etrigger once they are merged. -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22383 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I7c8ee2c447634e45b367bb8f84adf0140ae48591 Gerrit-Change-Number: 22383 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: osmith Gerrit-Comment-Date: Fri, 22 Jan 2021 17:17:51 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 17:19:10 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 22 Jan 2021 17:19:10 +0000 Subject: Change in libosmocore[master]: gprs_bssgp_rim: add value strings for enum bssgp_nacc_cause In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22380 to look at the new patch set (#2). Change subject: gprs_bssgp_rim: add value strings for enum bssgp_nacc_cause ...................................................................... gprs_bssgp_rim: add value strings for enum bssgp_nacc_cause Change-Id: I3354699555569c2b0bd1b4313cffd32a0cbeffe9 Related: SYS#5103 --- M include/osmocom/gprs/gprs_bssgp_rim.h M src/gb/gprs_bssgp_rim.c M src/gb/libosmogb.map 3 files changed, 18 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/80/22380/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22380 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I3354699555569c2b0bd1b4313cffd32a0cbeffe9 Gerrit-Change-Number: 22380 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 17:19:10 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 22 Jan 2021 17:19:10 +0000 Subject: Change in libosmocore[master]: gprs_bssgp_rim: add value strings for enum bssgp_ran_inf_app_id References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22384 ) Change subject: gprs_bssgp_rim: add value strings for enum bssgp_ran_inf_app_id ...................................................................... gprs_bssgp_rim: add value strings for enum bssgp_ran_inf_app_id Change-Id: I581d1176f82d6657d6136c32daa9c76dffb802a6 Related: SYS#5103 --- M include/osmocom/gprs/gprs_bssgp_rim.h M src/gb/gprs_bssgp_rim.c M src/gb/libosmogb.map 3 files changed, 17 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/84/22384/1 diff --git a/include/osmocom/gprs/gprs_bssgp_rim.h b/include/osmocom/gprs/gprs_bssgp_rim.h index 5e5966e..48bf047 100644 --- a/include/osmocom/gprs/gprs_bssgp_rim.h +++ b/include/osmocom/gprs/gprs_bssgp_rim.h @@ -123,6 +123,12 @@ BSSGP_RAN_INF_APP_ID_UTRA_SI = 5, }; +extern const struct value_string bssgp_ran_inf_app_id_strs[]; + +/*! Obtain a human-readable string for RIM Application Identity code */ +static inline const char *bssgp_ran_inf_app_id_str(enum bssgp_ran_inf_app_id val) +{ return get_value_string(bssgp_ran_inf_app_id_strs, val); } + /* 3GPP TS 48.018, table 11.3.62a.1.b: RAN-INFORMATION-REQUEST RIM Container Contents */ struct bssgp_ran_inf_req_rim_cont { enum bssgp_ran_inf_app_id app_id; diff --git a/src/gb/gprs_bssgp_rim.c b/src/gb/gprs_bssgp_rim.c index 67e0116..9ebdbc5 100644 --- a/src/gb/gprs_bssgp_rim.c +++ b/src/gb/gprs_bssgp_rim.c @@ -385,6 +385,16 @@ return buf_ptr; } +/* 3GPP TS 48.018, table 11.3.61.b: RIM Application Identity coding */ +const struct value_string bssgp_nacc_cause_strs[] = { + { BSSGP_RAN_INF_APP_ID_NACC, "Network Assisted Cell Change (NACC)" }, + { BSSGP_RAN_INF_APP_ID_SI3, "System Information 3 (SI3)" }, + { BSSGP_RAN_INF_APP_ID_MBMS, "MBMS data channel" }, + { BSSGP_RAN_INF_APP_ID_SON, "SON Transfer" }, + { BSSGP_RAN_INF_APP_ID_UTRA_SI, "UTRA System Information (UTRA SI)" }, + { 0, NULL } +}; + /*! Decode a RAN Information Request RIM Container (3GPP TS 48.018, table 11.3.62a.1.b). * \param[out] user provided memory for decoded data struct. * \param[in] buf user provided memory with the encoded value data of the IE. diff --git a/src/gb/libosmogb.map b/src/gb/libosmogb.map index dc9df3a..23d52a2 100644 --- a/src/gb/libosmogb.map +++ b/src/gb/libosmogb.map @@ -33,6 +33,7 @@ bssgp_parse_cell_id; bssgp_parse_rim_pdu; bssgp_parse_rim_ri; +bssgp_ran_inf_app_id_strs; bssgp_set_bssgp_callback; bssgp_tx_bvc_block; bssgp_tx_bvc_reset; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22384 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I581d1176f82d6657d6136c32daa9c76dffb802a6 Gerrit-Change-Number: 22384 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 17:19:24 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 22 Jan 2021 17:19:24 +0000 Subject: Change in libosmocore[master]: gprs_bssgp_rim: add value strings for enum bssgp_nacc_cause In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22380 ) Change subject: gprs_bssgp_rim: add value strings for enum bssgp_nacc_cause ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/22380/1/src/gb/gprs_bssgp_rim.c File src/gb/gprs_bssgp_rim.c: https://gerrit.osmocom.org/c/libosmocore/+/22380/1/src/gb/gprs_bssgp_rim.c at 278 PS1, Line 278: { BSSGP_NACC_CAUSE_SIPSI_TYPE_ERR, "SI/PSI type error" }, > are those dots in the string expected? they look confusing to me. Done -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22380 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I3354699555569c2b0bd1b4313cffd32a0cbeffe9 Gerrit-Change-Number: 22380 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Fri, 22 Jan 2021 17:19:24 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 17:20:32 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 22 Jan 2021 17:20:32 +0000 Subject: Change in libosmocore[master]: gprs_bssgp_rim: add value strings for enum bssgp_ran_inf_app_id In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22384 ) Change subject: gprs_bssgp_rim: add value strings for enum bssgp_ran_inf_app_id ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22384 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I581d1176f82d6657d6136c32daa9c76dffb802a6 Gerrit-Change-Number: 22384 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Fri, 22 Jan 2021 17:20:32 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 17:20:50 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 22 Jan 2021 17:20:50 +0000 Subject: Change in libosmocore[master]: gprs_bssgp_rim: add value strings for enum bssgp_nacc_cause In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22380 ) Change subject: gprs_bssgp_rim: add value strings for enum bssgp_nacc_cause ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22380 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I3354699555569c2b0bd1b4313cffd32a0cbeffe9 Gerrit-Change-Number: 22380 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 22 Jan 2021 17:20:50 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 17:25:16 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 22 Jan 2021 17:25:16 +0000 Subject: Change in libosmocore[master]: gprs_bssgp_rim: add value strings for enum bssgp_ran_inf_app_id In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22384 ) Change subject: gprs_bssgp_rim: add value strings for enum bssgp_ran_inf_app_id ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/22384/1/src/gb/gprs_bssgp_rim.c File src/gb/gprs_bssgp_rim.c: https://gerrit.osmocom.org/c/libosmocore/+/22384/1/src/gb/gprs_bssgp_rim.c at 389 PS1, Line 389: const struct value_string bssgp_nacc_cause_strs[] = { oops, will fix this in the next push -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22384 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I581d1176f82d6657d6136c32daa9c76dffb802a6 Gerrit-Change-Number: 22384 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 22 Jan 2021 17:25:16 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 17:29:26 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 22 Jan 2021 17:29:26 +0000 Subject: Change in libosmocore[master]: gprs_bssgp_rim: add value strings for enum bssgp_ran_inf_app_id In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22384 ) Change subject: gprs_bssgp_rim: add value strings for enum bssgp_ran_inf_app_id ...................................................................... Patch Set 1: Code-Review-1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22384 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I581d1176f82d6657d6136c32daa9c76dffb802a6 Gerrit-Change-Number: 22384 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 22 Jan 2021 17:29:26 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 17:39:28 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 22 Jan 2021 17:39:28 +0000 Subject: Change in osmo-pcu[master]: WIP: Introduce NACC support References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22385 ) Change subject: WIP: Introduce NACC support ...................................................................... WIP: Introduce NACC support TODO: timeout timers to abort NACC? Change-Id: Id35f40d05f3e081f32fddbf1fa34cb338db452ca --- M configure.ac M src/Makefile.am M src/bts.cpp M src/bts.h M src/encoding.cpp M src/encoding.h M src/gprs_bssgp_rim.c M src/gprs_debug.cpp M src/gprs_debug.h M src/gprs_ms.c M src/gprs_ms.h M src/gprs_pcu.c M src/gprs_pcu.h M src/gprs_rlcmac_sched.cpp A src/nacc_fsm.c A src/nacc_fsm.h A src/neigh_cache.c A src/neigh_cache.h M src/pcu_vty.c M src/pdch.cpp M src/pdch.h M src/tbf.cpp M src/tbf.h M tests/Makefile.am 24 files changed, 1,347 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/85/22385/1 diff --git a/configure.ac b/configure.ac index 2e99a15..11de328 100644 --- a/configure.ac +++ b/configure.ac @@ -84,6 +84,7 @@ dnl checks for libraries PKG_CHECK_MODULES(LIBOSMOCORE, libosmocore >= 1.4.0) PKG_CHECK_MODULES(LIBOSMOVTY, libosmovty >= 1.4.0) +PKG_CHECK_MODULES(LIBOSMOCTRL, libosmoctrl >= 1.4.0) PKG_CHECK_MODULES(LIBOSMOGSM, libosmogsm >= 1.4.0) PKG_CHECK_MODULES(LIBOSMOGB, libosmogb >= 1.4.0) diff --git a/src/Makefile.am b/src/Makefile.am index f85a456..eefbea1 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -19,7 +19,7 @@ # AUTOMAKE_OPTIONS = subdir-objects -AM_CPPFLAGS = -I$(top_srcdir)/include $(STD_DEFINES_AND_INCLUDES) $(LIBOSMOCORE_CFLAGS) $(LIBOSMOGB_CFLAGS) $(LIBOSMOGSM_CFLAGS) +AM_CPPFLAGS = -I$(top_srcdir)/include $(STD_DEFINES_AND_INCLUDES) $(LIBOSMOCORE_CFLAGS) $(LIBOSMOGB_CFLAGS) $(LIBOSMOCTRL_CFLAGS) $(LIBOSMOGSM_CFLAGS) if ENABLE_SYSMODSP AM_CPPFLAGS += -DENABLE_DIRECT_PHY @@ -55,6 +55,8 @@ pcu_vty.c \ pcu_vty_functions.cpp \ mslot_class.c \ + nacc_fsm.c \ + neigh_cache.c \ tbf.cpp \ tbf_ul.cpp \ tbf_dl.cpp \ @@ -91,6 +93,8 @@ pcu_vty.h \ pcu_vty_functions.h \ mslot_class.h \ + nacc_fsm.h \ + neigh_cache.h \ tbf.h \ tbf_ul.h \ tbf_dl.h \ @@ -143,6 +147,7 @@ libgprs.la \ $(LIBOSMOGB_LIBS) \ $(LIBOSMOCORE_LIBS) \ + $(LIBOSMOCTRL_LIBS) \ $(LIBOSMOGSM_LIBS) \ $(COMMON_LA) endif @@ -191,6 +196,7 @@ libgprs.la \ $(LIBOSMOGB_LIBS) \ $(LIBOSMOCORE_LIBS) \ + $(LIBOSMOCTRL_LIBS) \ $(LIBOSMOGSM_LIBS) \ $(COMMON_LA) diff --git a/src/bts.cpp b/src/bts.cpp index b5bb3a2..fb7de64 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -140,6 +140,9 @@ { "pkt:ul_assignment", "Packet UL Assignment "}, { "pkt:access_reject", "Packet Access Reject "}, { "pkt:dl_assignment", "Packet DL Assignment "}, + { "pkt:cell_chg_notification", "Packet Cell Change Notification"}, + { "pkt:cell_chg_continue", "Packet Cell Change Continue"}, + { "pkt:neigh_cell_data", "Packet Neighbour Cell Data"}, { "ul:control", "UL control Block "}, { "ul:assignment_poll_timeout", "UL Assign Timeout "}, { "ul:assignment_failed", "UL Assign Failed "}, @@ -1284,3 +1287,8 @@ { return bts_ms_store(bts)->get_ms(0, 0, imsi); } + +const struct llist_head* bts_ms_list(struct gprs_rlcmac_bts *bts) +{ + return bts_ms_store(bts)->ms_list(); +} diff --git a/src/bts.h b/src/bts.h index 7f437e3..ea15caf 100644 --- a/src/bts.h +++ b/src/bts.h @@ -2,6 +2,7 @@ * * Copyright (C) 2012 Ivan Klyuchnikov * Copyright (C) 2013 by Holger Hans Peter Freyther + * Copyright (C) 2021 by sysmocom - s.f.m.c. GmbH PAYLOAD_TYPE = 0x1; // RLC/MAC control block that does not include the optional octets of the RLC/MAC control header + block->RRBP = 0; // 0: N+13 + block->SP = 0; // RRBP field is valid + block->USF = 0x0; // Uplink state flag + + block->u.Packet_Neighbour_Cell_Data.MESSAGE_TYPE = MT_PACKET_NEIGHBOUR_CELL_DATA; + block->u.Packet_Neighbour_Cell_Data.PAGE_MODE = 0x0; // Normal Paging + + block->u.Packet_Neighbour_Cell_Data.Global_TFI.UnionType = tfi_is_dl; // 0=UPLINK TFI, 1=DL TFI + if (tfi_is_dl) { + block->u.Packet_Neighbour_Cell_Data.Global_TFI.u.DOWNLINK_TFI = tfi; + } else { + block->u.Packet_Neighbour_Cell_Data.Global_TFI.u.UPLINK_TFI = tfi; + } + block->u.Packet_Neighbour_Cell_Data.CONTAINER_ID = container_id; + block->u.Packet_Neighbour_Cell_Data.spare = 0; + block->u.Packet_Neighbour_Cell_Data.CONTAINER_INDEX = container_idx; + block->u.Packet_Neighbour_Cell_Data.Container = *container; +} + +void write_packet_cell_change_continue(RlcMacDownlink_t *block, + bool tfi_is_dl, uint8_t tfi, bool exist_id, + uint16_t arfcn, uint8_t bsic, uint8_t container_id) +{ + + block->PAYLOAD_TYPE = 0x1; // RLC/MAC control block that does not include the optional octets of the RLC/MAC control header + block->RRBP = 0; // 0: N+13 + block->SP = 0; // RRBP field is valid + block->USF = 0x0; // Uplink state flag + + block->u.Packet_Cell_Change_Continue.MESSAGE_TYPE = MT_PACKET_CELL_CHANGE_CONTINUE; + block->u.Packet_Cell_Change_Continue.PAGE_MODE = 0x0; // Normal Paging + + block->u.Packet_Cell_Change_Continue.Global_TFI.UnionType = tfi_is_dl; // 0=UPLINK TFI, 1=DL TFI + if (tfi_is_dl) { + block->u.Packet_Cell_Change_Continue.Global_TFI.u.DOWNLINK_TFI = tfi; + } else { + block->u.Packet_Cell_Change_Continue.Global_TFI.u.UPLINK_TFI = tfi; + } + + block->u.Packet_Cell_Change_Continue.Exist_ID = exist_id; + if (exist_id) { + block->u.Packet_Cell_Change_Continue.ARFCN = arfcn; + block->u.Packet_Cell_Change_Continue.BSIC = bsic; + } + block->u.Packet_Cell_Change_Continue.CONTAINER_ID = container_id; +} diff --git a/src/encoding.h b/src/encoding.h index da63a61..4ebfa35 100644 --- a/src/encoding.h +++ b/src/encoding.h @@ -22,17 +22,22 @@ #include +#ifdef __cplusplus extern "C" { +#endif #include #include "coding_scheme.h" #include "gsm_rlcmac.h" +#ifdef __cplusplus } +#endif struct gprs_rlcmac_tbf; struct bitvec; struct gprs_llc; struct gprs_rlc_data_block_info; +#ifdef __cplusplus /** * I help with encoding data into CSN1 messages. * TODO: Nobody can remember a function signature like this. One should @@ -108,3 +113,21 @@ const struct gprs_rlc_data_block_info *rdbi, int *offset, int *num_chunks, uint8_t *data_block); }; + +#endif /* ifdef __cplusplus */ + +#ifdef __cplusplus +extern "C" { +#endif + +void write_packet_neighbour_cell_data(RlcMacDownlink_t *block, + bool tfi_is_dl, uint8_t tfi, uint8_t container_id, + uint8_t container_idx, PNCDContainer_t *container); + +void write_packet_cell_change_continue(RlcMacDownlink_t *block, + bool tfi_is_dl, uint8_t tfi, bool exist_id, + uint16_t arfcn, uint8_t bsic, uint8_t container_id); + +#ifdef __cplusplus +} +#endif diff --git a/src/gprs_bssgp_rim.c b/src/gprs_bssgp_rim.c index cf43a8f..3c273ec 100644 --- a/src/gprs_bssgp_rim.c +++ b/src/gprs_bssgp_rim.c @@ -26,6 +26,9 @@ #include "gprs_debug.h" #include "gprs_pcu.h" +#include "bts.h" +#include "gprs_ms.h" +#include "nacc_fsm.h" #define LOGPRIM(nsei, level, fmt, args...) \ LOGP(DRIM, level, "(NSEI=%u) " fmt, nsei, ## args) @@ -97,6 +100,51 @@ return false; } +static int handle_ran_info_response(struct osmo_bssgp_prim *bp, struct gprs_rlcmac_bts *bts) +{ + struct msgb *msg = bp->oph.msg; + struct bssgp_ran_information_pdu *pdu = &bp->u.rim_pdu; + struct bssgp_ran_inf_rim_cont *ran_info = &pdu->decoded.rim_cont; + struct bssgp_ran_inf_app_cont_nacc *nacc; + struct si_cache_value val; + struct si_cache_entry *entry; + struct llist_head *tmp; + int i; + + if (ran_info->app_err) { + LOGP(DRIM, LOGL_ERROR, + "RAN-INFO answered with an app error! cause=0x%x\n", + ran_info->u.app_err_cont_nacc.nacc_cause); + return bssgp_tx_status(BSSGP_CAUSE_UNKN_RIM_AI, NULL, msg); + } + + nacc = &ran_info->u.app_cont_nacc; + + LOGP(DRIM, LOGL_INFO, "Received RAN-INFO type=%sBCCH num_si=%d\n", + nacc->type_psi ? "B" : "", nacc->num_si); + + val.type_psi = nacc->type_psi; + val.si_len = 0; + for (i = 0; i < nacc->num_si; i++) { + size_t len = val.type_psi ? BSSGP_RIM_PSI_LEN : BSSGP_RIM_SI_LEN; + memcpy(&val.si_buf[val.si_len], nacc->si[i], len); + val.si_len += len; + } + entry = si_cache_add(bts->pcu->si_cache, &nacc->reprt_cell, &val); + + llist_for_each(tmp, bts_ms_list(bts)) { + struct GprsMs *ms = llist_entry(tmp, typeof(*ms), list); + if (!ms->nacc) + continue; + if (ms->nacc->fi->state != NACC_ST_WAIT_REQUEST_SI) + continue; + if (memcmp(&nacc->reprt_cell, &ms->nacc->cgi_ps, sizeof(nacc->reprt_cell)) != 0) + continue; + osmo_fsm_inst_dispatch(ms->nacc->fi, NACC_EV_SI_INFO_RECEIVED, entry); + } + return 0; +} + int handle_rim(struct osmo_bssgp_prim *bp) { struct msgb *msg = bp->oph.msg; @@ -151,8 +199,7 @@ LOGPRIM(nsei, LOGL_NOTICE, "Responding to RAN INFORMATION REQUEST not yet implemented!\n"); break; case BSSGP_IE_RI_RIM_CONTAINER: - LOGPRIM(nsei, LOGL_NOTICE, "Responding to RAN INFORMATION not yet implemented!\n"); - break; + return handle_ran_info_response(bp, bts); case BSSGP_IE_RI_APP_ERROR_RIM_CONT: case BSSGP_IE_RI_ACK_RIM_CONTAINER: case BSSGP_IE_RI_ERROR_RIM_COINTAINER: diff --git a/src/gprs_debug.cpp b/src/gprs_debug.cpp index 669ea27..0cbc488 100644 --- a/src/gprs_debug.cpp +++ b/src/gprs_debug.cpp @@ -119,6 +119,13 @@ .loglevel = LOGL_NOTICE, .enabled = 1, }, + [DNACC] = { + .name = "DNACC", + .color = "\033[1;37m", + .description = "Network Assisted Cell Change (NACC)", + .loglevel = LOGL_NOTICE, + .enabled = 1, + }, [DRIM] = { .name = "DRIM", .color = "\033[1;38m", diff --git a/src/gprs_debug.h b/src/gprs_debug.h index 8df405a..cebeabc 100644 --- a/src/gprs_debug.h +++ b/src/gprs_debug.h @@ -46,6 +46,7 @@ DTBFUL, DNS, DPCU, + DNACC, DRIM, aDebug_LastEntry }; diff --git a/src/gprs_ms.c b/src/gprs_ms.c index ea497a3..5d7afa1 100644 --- a/src/gprs_ms.c +++ b/src/gprs_ms.c @@ -26,6 +26,7 @@ #include "gprs_debug.h" #include "gprs_codel.h" #include "pcu_utils.h" +#include "nacc_fsm.h" #include @@ -902,3 +903,36 @@ return NULL; } + +int ms_nacc_start(struct GprsMs *ms, Packet_Cell_Change_Notification_t *notif) +{ + if (!ms->nacc) + ms->nacc = nacc_fsm_alloc(ms); + if (!ms->nacc) + return -EINVAL; + return osmo_fsm_inst_dispatch(ms->nacc->fi, NACC_EV_CELL_CHG_NOTIFICATION, notif); +} + +bool ms_nacc_rts(const struct GprsMs *ms) +{ + if (!ms->nacc) + return false; + if (ms->nacc->fi->state == NACC_ST_TX_NEIGHBOUR_DATA || + ms->nacc->fi->state == NACC_ST_TX_CELL_CHG_CONTINUE) + return true; + return false; +} + +struct msgb *ms_nacc_create_rlcmac_msg(struct GprsMs *ms, struct gprs_rlcmac_tbf *tbf) +{ + int rc; + struct nacc_ev_create_rlcmac_msg_ctx data_ctx; + + data_ctx.tbf = tbf; + data_ctx.msg = NULL; + + rc = osmo_fsm_inst_dispatch(ms->nacc->fi, NACC_EV_CREATE_RLCMAC_MSG, &data_ctx); + if (rc != 0 || !data_ctx.msg) + return NULL; + return data_ctx.msg; +} diff --git a/src/gprs_ms.h b/src/gprs_ms.h index 12809f1..6587231 100644 --- a/src/gprs_ms.h +++ b/src/gprs_ms.h @@ -40,6 +40,7 @@ #include #include "coding_scheme.h" +#include #include #include @@ -100,6 +101,7 @@ enum mcs_kind mode; struct rate_ctr_group *ctrs; + struct nacc_fsm_ctx *nacc; }; struct GprsMs *ms_alloc(struct gprs_rlcmac_bts *bts, uint32_t tlli); @@ -140,6 +142,10 @@ void ms_set_callback(struct GprsMs *ms, struct gpr_ms_callback *cb); +int ms_nacc_start(struct GprsMs *ms, Packet_Cell_Change_Notification_t *notif); +bool ms_nacc_rts(const struct GprsMs *ms); +struct msgb *ms_nacc_create_rlcmac_msg(struct GprsMs *ms, struct gprs_rlcmac_tbf *tbf); + static inline bool ms_is_idle(const struct GprsMs *ms) { return !ms->ul_tbf && !ms->dl_tbf && !ms->ref && llist_empty(&ms->old_tbfs); diff --git a/src/gprs_pcu.c b/src/gprs_pcu.c index 2f18dfd..9679914 100644 --- a/src/gprs_pcu.c +++ b/src/gprs_pcu.c @@ -22,6 +22,7 @@ #include #include +#include #include "gprs_pcu.h" #include "bts.h" @@ -40,12 +41,20 @@ { .T=0, .default_val=0, .unit=OSMO_TDEF_S, .desc=NULL, .val=0 } /* empty item at the end */ }; +static int gprs_pcu_talloc_destructor(struct gprs_pcu *pcu) +{ + neigh_cache_free(pcu->neigh_cache); + si_cache_free(pcu->si_cache); + return 0; +} + struct gprs_pcu *gprs_pcu_alloc(void *ctx) { struct gprs_pcu *pcu; pcu = (struct gprs_pcu *)talloc_zero(ctx, struct gprs_pcu); OSMO_ASSERT(pcu); + talloc_set_destructor(pcu, gprs_pcu_talloc_destructor); pcu->vty.fc_interval = 1; pcu->vty.max_cs_ul = MAX_GPRS_CS; @@ -97,12 +106,17 @@ pcu->vty.ws_pdch = 0; pcu->vty.llc_codel_interval_msec = LLC_CODEL_USE_DEFAULT; pcu->vty.llc_idle_ack_csec = 10; + pcu->vty.neigh_ctrl_addr = talloc_strdup(pcu, "127.0.0.1"); + pcu->vty.neigh_ctrl_port = OSMO_CTRL_PORT_BSC_NEIGH; pcu->T_defs = T_defs_pcu; osmo_tdefs_reset(pcu->T_defs); INIT_LLIST_HEAD(&pcu->bts_list); + pcu->neigh_cache = neigh_cache_alloc(pcu); + pcu->si_cache = si_cache_alloc(pcu); + return pcu; } diff --git a/src/gprs_pcu.h b/src/gprs_pcu.h index a1cd1ed..8e18f89 100644 --- a/src/gprs_pcu.h +++ b/src/gprs_pcu.h @@ -29,6 +29,8 @@ #include "gprs_bssgp_pcu.h" #include "coding_scheme.h" +#include "neigh_cache.h" + #define LLC_CODEL_DISABLE 0 #define LLC_CODEL_USE_DEFAULT (-1) @@ -102,6 +104,9 @@ uint32_t llc_discard_csec; uint32_t llc_idle_ack_csec; uint32_t llc_codel_interval_msec; /* 0=disabled, -1=use default interval */ + /* Remote BSS resolution sevice (CTRL iface) */ + char *neigh_ctrl_addr; + uint16_t neigh_ctrl_port; } vty; struct gsmtap_inst *gsmtap; @@ -116,6 +121,9 @@ struct gprs_bssgp_pcu bssgp; struct osmo_tdef *T_defs; /* timers controlled by PCU */ + + struct neigh_cache *neigh_cache; /* ARFC+BSIC -> CGI PS cache */ + struct si_cache *si_cache; /* ARFC+BSIC -> CGI PS cache */ }; diff --git a/src/gprs_rlcmac_sched.cpp b/src/gprs_rlcmac_sched.cpp index 5640158..66e9c6b 100644 --- a/src/gprs_rlcmac_sched.cpp +++ b/src/gprs_rlcmac_sched.cpp @@ -38,6 +38,7 @@ struct gprs_rlcmac_tbf *poll; struct gprs_rlcmac_tbf *ul_ass; struct gprs_rlcmac_tbf *dl_ass; + struct gprs_rlcmac_tbf *nacc; struct gprs_rlcmac_ul_tbf *ul_ack; }; @@ -71,6 +72,9 @@ if (ul_tbf->ul_ass_state_is(GPRS_RLCMAC_UL_ASS_SEND_ASS) || ul_tbf->ul_ass_state_is(GPRS_RLCMAC_UL_ASS_SEND_ASS_REJ)) tbf_cand->ul_ass = ul_tbf; + /* NACC ready to send */ + if (ms_nacc_rts(ul_tbf->ms())) + tbf_cand->nacc = ul_tbf; /* FIXME: Is this supposed to be fair? The last TBF for each wins? Maybe use llist_add_tail and skip once we have all states? */ } @@ -88,6 +92,9 @@ if (dl_tbf->ul_ass_state_is(GPRS_RLCMAC_UL_ASS_SEND_ASS) || dl_tbf->ul_ass_state_is(GPRS_RLCMAC_UL_ASS_SEND_ASS_REJ)) tbf_cand->ul_ass = dl_tbf; + /* NACC ready to send */ + if (ms_nacc_rts(dl_tbf->ms())) + tbf_cand->nacc = dl_tbf; } return poll_fn; @@ -166,7 +173,8 @@ struct gprs_rlcmac_tbf *tbf = NULL; struct gprs_rlcmac_tbf *next_list[] = { tbfs->ul_ass, tbfs->dl_ass, - tbfs->ul_ack }; + tbfs->ul_ack, + tbfs->nacc }; /* Send Packet Application Information first (ETWS primary notifications) */ msg = sched_app_info(tbfs->dl_ass); @@ -194,6 +202,9 @@ msg = tbfs->dl_ass->create_dl_ass(fn, ts); else if (tbf == tbfs->ul_ack) msg = tbfs->ul_ack->create_ul_ack(fn, ts); + else if (tbf == tbfs->nacc) { + msg = ms_nacc_create_rlcmac_msg(tbf->ms(), tbf); + } /* else: if tbf/ms is pending to send tx_neigbhourData or tx_CellchangeContinue, send it */ if (!msg) { diff --git a/src/nacc_fsm.c b/src/nacc_fsm.c new file mode 100644 index 0000000..1a60792 --- /dev/null +++ b/src/nacc_fsm.c @@ -0,0 +1,633 @@ +/* nacc_fsm.c + * + * Copyright (C) 2021 by sysmocom - s.f.m.c. GmbH + * Author: Pau Espin Pedrol + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + +#include + +#include + +#include +#include +#include + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +#define X(s) (1 << (s)) + +#define nacc_fsm_state_chg(fi, NEXT_STATE) \ + osmo_fsm_inst_state_chg(fi, NEXT_STATE, 0, 0) + +const struct value_string nacc_fsm_event_names[] = { + { NACC_EV_CELL_CHG_NOTIFICATION, "CELL_CHG_NOTIFICATION" }, + { NACC_EV_RX_RESOLVE_RAC_CI, "RX_RESOLVE_RAC_CI" }, + { NACC_EV_SI_INFO_RECEIVED, "SI_INFO_RECEIVED" }, + { NACC_EV_CREATE_RLCMAC_MSG, "CREATE_RLCMAC_MSG" }, + { 0, NULL } +}; + +/* TS 44 060 11.2.9e Packet Neighbour Cell Data */ +static struct msgb *create_packet_neighbour_cell_data(struct nacc_fsm_ctx *ctx, struct gprs_rlcmac_tbf *tbf) +{ + struct msgb *msg; + int rc; + RlcMacDownlink_t *mac_control_block; + struct GprsMs *ms = tbf_ms(tbf); + OSMO_ASSERT(tbf_is_tfi_assigned(tbf)); + uint8_t tfi_is_dl = tbf_direction(tbf) == GPRS_RLCMAC_DL_TBF; + uint8_t tfi = tbf_tfi(tbf); + uint8_t container_id = 0; + PNCDContainer_t container; + size_t max_len, len_to_write; + uint8_t *cont_buf; + uint8_t si_type = ctx->si_info.type_psi ? 0x01 : 0x0; + + memset(&container, 0, sizeof(container)); + if (ctx->container_idx == 0) { + container.UnionType = 1; /* with ID */ + container.u.PNCD_Container_With_ID.ARFCN = ctx->neigh_key.tgt_arfcn; + container.u.PNCD_Container_With_ID.BSIC = ctx->neigh_key.tgt_bsic; + cont_buf = &container.u.PNCD_Container_With_ID.CONTAINER[0]; + max_len = sizeof(container.u.PNCD_Container_With_ID.CONTAINER) - 1; + } else { + container.UnionType = 0; /* without ID */ + cont_buf = &container.u.PNCD_Container_Without_ID.CONTAINER[0]; + max_len = sizeof(container.u.PNCD_Container_Without_ID.CONTAINER) - 1; + } + + len_to_write = ctx->si_info.si_len - ctx->si_info_bytes_sent; + + if (len_to_write == 0) { + /* We sent all info on last message filing it exactly, we now send a zeroed one to finish */ + ctx->all_si_info_sent = true; + *cont_buf = (si_type << 5) | 0x00; + } else if (len_to_write >= max_len) { + /* We fill the rlcmac block, we'll need more messages */ + *cont_buf = (si_type << 5) | 0x1F; + memcpy(cont_buf + 1, &ctx->si_info.si_buf[ctx->si_info_bytes_sent], max_len); + ctx->si_info_bytes_sent += max_len; + } else { + /* Last block, we don't fill it exactly */ + ctx->all_si_info_sent = true; + *cont_buf = (si_type << 5) | (len_to_write & 0x1F); + memcpy(cont_buf + 1, &ctx->si_info.si_buf[ctx->si_info_bytes_sent], len_to_write); + ctx->si_info_bytes_sent += len_to_write; + } + + msg = msgb_alloc(GSM_MACBLOCK_LEN, "neighbour_cell_data"); + if (!msg) + return NULL; + + /* Initialize a bit vector that uses allocated msgb as the data buffer. */ + struct bitvec bv = { + .data = msgb_put(msg, GSM_MACBLOCK_LEN), + .data_len = GSM_MACBLOCK_LEN, + }; + bitvec_unhex(&bv, DUMMY_VEC); + + mac_control_block = (RlcMacDownlink_t *)talloc_zero(ctx->ms, RlcMacDownlink_t); + + write_packet_neighbour_cell_data(mac_control_block, + tfi_is_dl, tfi, container_id, + ctx->container_idx, &container); + LOGP(DNACC, LOGL_DEBUG, "+++++++++++++++++++++++++ TX : Packet Neighbour Cell Data +++++++++++++++++++++++++\n"); + rc = encode_gsm_rlcmac_downlink(&bv, mac_control_block); + if (rc < 0) { + LOGP(DTBF, LOGL_ERROR, "Encoding of Packet Neighbour Cell Data failed (%d)\n", rc); + goto free_ret; + } + LOGP(DNACC, LOGL_DEBUG, "------------------------- TX : Packet Neighbour Cell Data -------------------------\n"); + rate_ctr_inc(&bts_rate_counters(ms->bts)->ctr[CTR_PKT_NEIGH_CELL_DATA]); + talloc_free(mac_control_block); + + ctx->container_idx++; + + return msg; + +free_ret: + talloc_free(mac_control_block); + msgb_free(msg); + return NULL; +} + +static struct msgb *create_packet_cell_chg_continue(struct nacc_fsm_ctx *ctx, struct gprs_rlcmac_tbf *tbf) +{ + struct msgb *msg; + int rc; + RlcMacDownlink_t *mac_control_block; + struct GprsMs *ms = tbf_ms(tbf); + + msg = msgb_alloc(GSM_MACBLOCK_LEN, "pkt_cell_chg_continue"); + if (!msg) + return NULL; + + /* Initialize a bit vector that uses allocated msgb as the data buffer. */ + struct bitvec bv = { + .data = msgb_put(msg, GSM_MACBLOCK_LEN), + .data_len = GSM_MACBLOCK_LEN, + }; + bitvec_unhex(&bv, DUMMY_VEC); + + mac_control_block = (RlcMacDownlink_t *)talloc_zero(ctx->ms, RlcMacDownlink_t); + + OSMO_ASSERT(tbf_is_tfi_assigned(tbf)); + uint8_t tfi_is_dl = tbf_direction(tbf) == GPRS_RLCMAC_DL_TBF; + uint8_t tfi = tbf_tfi(tbf); + uint8_t container_id = 0; + write_packet_cell_change_continue(mac_control_block, tfi_is_dl, tfi, true, + ctx->neigh_key.tgt_arfcn, ctx->neigh_key.tgt_bsic, container_id); + LOGP(DNACC, LOGL_DEBUG, "+++++++++++++++++++++++++ TX : Packet Cell Change Continue +++++++++++++++++++++++++\n"); + rc = encode_gsm_rlcmac_downlink(&bv, mac_control_block); + if (rc < 0) { + LOGP(DTBF, LOGL_ERROR, "Encoding of Packet Cell Change Continue failed (%d)\n", rc); + goto free_ret; + } + LOGP(DNACC, LOGL_DEBUG, "------------------------- TX : Packet Cell Change Continue -------------------------\n"); + rate_ctr_inc(&bts_rate_counters(ms->bts)->ctr[CTR_PKT_CELL_CHG_CONTINUE]); + talloc_free(mac_control_block); + return msg; + +free_ret: + talloc_free(mac_control_block); + msgb_free(msg); + return NULL; +} + +static int fill_rim_ran_info_req(struct nacc_fsm_ctx *ctx, struct bssgp_ran_information_pdu *pdu) +{ + struct gprs_rlcmac_bts *bts = ctx->ms->bts; + + *pdu = (struct bssgp_ran_information_pdu){ + .routing_info_dest = { + .discr = BSSGP_RIM_ROUTING_INFO_GERAN, + .geran = { + .raid = { + .mcc = ctx->cgi_ps.rai.lac.plmn.mcc, + .mnc = ctx->cgi_ps.rai.lac.plmn.mnc, + .mnc_3_digits = ctx->cgi_ps.rai.lac.plmn.mnc_3_digits, + .lac = ctx->cgi_ps.rai.lac.lac, + .rac = ctx->cgi_ps.rai.rac, + }, + .cid = ctx->cgi_ps.cell_identity, + }, + }, + .routing_info_src = { + .discr = BSSGP_RIM_ROUTING_INFO_GERAN, + .geran = { + .raid = { /* TODO: fill properly */ + .mcc = bts->cgi_ps.rai.lac.plmn.mcc, + .mnc = bts->cgi_ps.rai.lac.plmn.mnc, + .mnc_3_digits = bts->cgi_ps.rai.lac.plmn.mnc_3_digits, + .lac = bts->cgi_ps.rai.lac.lac, + .rac = bts->cgi_ps.rai.rac, + }, + .cid = bts->cgi_ps.cell_identity, + }, + }, + .rim_cont_iei = BSSGP_IE_RI_REQ_RIM_CONTAINER, + .decoded_present = true, + .decoded = { + .req_rim_cont = { + .app_id = BSSGP_RAN_INF_APP_ID_NACC, + .seq_num = 1, + .pdu_ind = { + .ack_requested = 0, + .pdu_type_ext = 1, + }, + .prot_ver = 1, + .son_trans_app_id = NULL, + .son_trans_app_id_len = 0, + .u = { + .app_cont_nacc = { + .reprt_cell = ctx->cgi_ps, + }, + }, + }, + }, + }; + + return 0; +} + + +//////////////// +// FSM states // +//////////////// + +static void st_initial(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct nacc_fsm_ctx *ctx = (struct nacc_fsm_ctx *)fi->priv; + struct gprs_rlcmac_bts *bts = ctx->ms->bts; + Packet_Cell_Change_Notification_t *notif; + + switch (event) { + case NACC_EV_CELL_CHG_NOTIFICATION: + notif = (Packet_Cell_Change_Notification_t *)data; + switch (notif->Target_Cell.UnionType) { + case 0: /* GSM */ + ctx->neigh_key.local_lac = bts->cgi_ps.rai.lac.lac; + ctx->neigh_key.local_ci = bts->cgi_ps.cell_identity; + ctx->neigh_key.tgt_arfcn = notif->Target_Cell.u.Target_Cell_GSM_Notif.ARFCN; + ctx->neigh_key.tgt_bsic = notif->Target_Cell.u.Target_Cell_GSM_Notif.BSIC; + nacc_fsm_state_chg(fi, NACC_ST_WAIT_RESOLVE_RAC_CI); + break; + default: + LOGPFSML(fi, LOGL_NOTICE, "TargetCell type=0x%x not supported\n", + notif->Target_Cell.UnionType); + return; + } + break; + default: + OSMO_ASSERT(0); + } +} + +static void st_wait_resolve_rac_ci_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) +{ + struct nacc_fsm_ctx *ctx = (struct nacc_fsm_ctx *)fi->priv; + struct gprs_rlcmac_bts *bts = ctx->ms->bts; + struct gprs_pcu *pcu = bts->pcu; + const struct osmo_cell_global_id_ps *cgi_ps; + struct ctrl_cmd *cmd; + int rc; + + /* First try to find the value in the cache */ + cgi_ps = neigh_cache_lookup_value(pcu->neigh_cache, &ctx->neigh_key); + if (cgi_ps) { + ctx->cgi_ps = *cgi_ps; + nacc_fsm_state_chg(fi, NACC_ST_WAIT_REQUEST_SI); + return; + } + + /* CGI-PS not in cache, resolve it using BSC Neighbor Resolution CTRL interface */ + cmd = ctrl_cmd_create(ctx, CTRL_TYPE_GET); + if (!cmd) { + LOGPFSML(fi, LOGL_ERROR, "CTRL msg creation failed\n"); + osmo_fsm_inst_term(fi, OSMO_FSM_TERM_ERROR, NULL); + return; + } + + cmd->id = talloc_asprintf(cmd, "1"); + cmd->variable = talloc_asprintf(cmd, "neighbor_resolve_cgi_ps_from_lac_ci.%d.%d.%d.%d", + ctx->neigh_key.local_lac, ctx->neigh_key.local_ci, + ctx->neigh_key.tgt_arfcn, ctx->neigh_key.tgt_bsic); + rc = ctrl_cmd_send(&ctx->neigh_ctrl_conn->write_queue, cmd); + if (rc) + LOGPFSML(fi, LOGL_ERROR, "CTRL msg sent failed: %d\n", rc); + talloc_free(cmd); +} + + +static void st_wait_resolve_rac_ci(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + switch (event) { + case NACC_EV_CELL_CHG_NOTIFICATION: + break; + case NACC_EV_RX_RESOLVE_RAC_CI: + /* Assumption: ctx->cgi_ps has been filled by caller of the event */ + nacc_fsm_state_chg(fi, NACC_ST_WAIT_REQUEST_SI); + break; + default: + OSMO_ASSERT(0); + } +} + +/* At this point, we expect correct tgt cell info to be already in ctx->cgi_ps */ +static void st_wait_request_si_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) +{ + struct nacc_fsm_ctx *ctx = (struct nacc_fsm_ctx *)fi->priv; + struct gprs_rlcmac_bts *bts = ctx->ms->bts; + struct gprs_pcu *pcu = bts->pcu; + struct bssgp_ran_information_pdu pdu; + const struct si_cache_value *si; + int rc; + + /* First check if we have SI info for the target cell in cache */ + si = si_cache_lookup_value(pcu->si_cache, &ctx->cgi_ps); + if (si) { + /* Copy info since cache can be deleted at any point */ + memcpy(&ctx->si_info, si, sizeof(ctx->si_info)); + /* Tell the PCU scheduler we are ready to go, from here one we + * are polled/driven by the scheduler */ + nacc_fsm_state_chg(fi, NACC_ST_TX_NEIGHBOUR_DATA); + return; + } + + /* SI info not in cache, resolve it using RIM procedure against SGSN */ + if (fill_rim_ran_info_req(ctx, &pdu) < 0) { + osmo_fsm_inst_term(fi, OSMO_FSM_TERM_ERROR, NULL); + return; + } + + rc = bssgp_tx_rim(&pdu, gprs_ns2_nse_nsei(ctx->ms->bts->nse)); + if (rc < 0) { + LOGPFSML(fi, LOGL_ERROR, "Failed transmitting RIM PDU: %d\n", rc); + osmo_fsm_inst_term(fi, OSMO_FSM_TERM_ERROR, NULL); + return; + } +} + + +static void st_wait_request_si(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct nacc_fsm_ctx *ctx = (struct nacc_fsm_ctx *)fi->priv; + struct si_cache_entry *entry; + + switch (event) { + case NACC_EV_SI_INFO_RECEIVED: + entry = (struct si_cache_entry *)data; + /* Copy info since cache can be deleted at any point */ + memcpy(&ctx->si_info, &entry->value, sizeof(ctx->si_info)); + /* Tell the PCU scheduler we are ready to go, from here one we + * are polled/driven by the scheduler */ + nacc_fsm_state_chg(fi, NACC_ST_TX_NEIGHBOUR_DATA); + break; + default: + OSMO_ASSERT(0); + } +} + + +static void st_tx_neighbour_data_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) +{ + /* At this point, we already received all required RIM messages or we + have them cached. We now wait for scheduler to ask us to construct + RLCMAC DL CTRL messages to move FSM states forward */ +} + +static void st_tx_neighbour_data(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct nacc_fsm_ctx *ctx = (struct nacc_fsm_ctx *)fi->priv; + struct nacc_ev_create_rlcmac_msg_ctx *data_ctx; + + switch (event) { + case NACC_EV_CREATE_RLCMAC_MSG: + data_ctx = (struct nacc_ev_create_rlcmac_msg_ctx *)data; + data_ctx->msg = create_packet_neighbour_cell_data(ctx, data_ctx->tbf); + if (!data_ctx->msg) { + osmo_fsm_inst_term(fi, OSMO_FSM_TERM_ERROR, NULL); + return; + } + if (ctx->all_si_info_sent) /* DONE */ + nacc_fsm_state_chg(fi, NACC_ST_TX_CELL_CHG_CONTINUE); + break; + default: + OSMO_ASSERT(0); + } +} + +static void st_cell_cgh_continue_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) +{ + /* At this point, we already sent all Pkt Cell Neighbour Change rlcmac + blocks, and we only need to wait to be scheduled again to send PKT + CELL CHANGE NOTIFICATION */ +} + +static void st_cell_cgh_continue(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct nacc_fsm_ctx *ctx = (struct nacc_fsm_ctx *)fi->priv; + struct nacc_ev_create_rlcmac_msg_ctx *data_ctx; + + switch (event) { + case NACC_EV_CREATE_RLCMAC_MSG: + data_ctx = (struct nacc_ev_create_rlcmac_msg_ctx *)data; + data_ctx->msg = create_packet_cell_chg_continue(ctx, data_ctx->tbf); + /* TODO: logic if no more Neighbour cell data messages need to be send, then: */ + nacc_fsm_state_chg(fi, NACC_ST_DONE); + break; + default: + OSMO_ASSERT(0); + } +} + + +static void st_done_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) +{ + osmo_fsm_inst_term(fi, OSMO_FSM_TERM_REGULAR, NULL); +} + +static void nacc_fsm_cleanup(struct osmo_fsm_inst *fi, enum osmo_fsm_term_cause cause) +{ + struct nacc_fsm_ctx *ctx = (struct nacc_fsm_ctx *)fi->priv; + /* after cleanup() finishes, FSM termination calls osmo_fsm_inst_free, + so we need to avoid double-freeing it during ctx talloc free + destructor */ + talloc_reparent(ctx, ctx->ms, ctx->fi); + ctx->fi = NULL; + + /* remove references from owning MS and free entire ctx */ + ctx->ms->nacc = NULL; + talloc_free(ctx); +} + +static struct osmo_fsm_state nacc_fsm_states[] = { + [NACC_ST_INITIAL] = { + .in_event_mask = + X(NACC_EV_CELL_CHG_NOTIFICATION), + .out_state_mask = + X(NACC_ST_WAIT_RESOLVE_RAC_CI) | + X(NACC_ST_TX_NEIGHBOUR_DATA), + .name = "INITIAL", + //.onenter = st_initial_on_enter, + .action = st_initial, + }, + [NACC_ST_WAIT_RESOLVE_RAC_CI] = { + .in_event_mask = + X(NACC_EV_RX_RESOLVE_RAC_CI), + .out_state_mask = + X(NACC_ST_WAIT_REQUEST_SI) | + X(NACC_ST_TX_CELL_CHG_CONTINUE), + .name = "WAIT_RESOLVE_RAC_CI", + .onenter = st_wait_resolve_rac_ci_on_enter, + .action = st_wait_resolve_rac_ci, + }, + [NACC_ST_WAIT_REQUEST_SI] = { + .in_event_mask = + X(NACC_EV_CELL_CHG_NOTIFICATION) | + X(NACC_EV_SI_INFO_RECEIVED), + .out_state_mask = + X(NACC_ST_TX_NEIGHBOUR_DATA), + .name = "WAIT_REQUEST_SI", + .onenter = st_wait_request_si_on_enter, + .action = st_wait_request_si, + }, + [NACC_ST_TX_NEIGHBOUR_DATA] = { + .in_event_mask = + X(NACC_EV_CELL_CHG_NOTIFICATION) | + X(NACC_EV_SI_INFO_RECEIVED) | + X(NACC_EV_CREATE_RLCMAC_MSG), + .out_state_mask = + X(NACC_ST_TX_CELL_CHG_CONTINUE), + .name = "TX_NEIGHBOUR_DATA", + .onenter = st_tx_neighbour_data_on_enter, + .action = st_tx_neighbour_data, + }, + [NACC_ST_TX_CELL_CHG_CONTINUE] = { + .in_event_mask = + X(NACC_EV_CELL_CHG_NOTIFICATION) | + X(NACC_EV_SI_INFO_RECEIVED) | + X(NACC_EV_CREATE_RLCMAC_MSG), + .out_state_mask = + X(NACC_ST_DONE), + .name = "TX_CELL_CHG_CONTINUE", + .onenter = st_cell_cgh_continue_on_enter, + .action = st_cell_cgh_continue, + }, + [NACC_ST_DONE] = { + .in_event_mask = 0, + .out_state_mask = 0, + .name = "DONE", + .onenter = st_done_on_enter, + }, +}; + +static struct osmo_fsm nacc_fsm = { + .name = "NACC", + .states = nacc_fsm_states, + .num_states = ARRAY_SIZE(nacc_fsm_states), + .cleanup = nacc_fsm_cleanup, + .log_subsys = DNACC, + .event_names = nacc_fsm_event_names, +}; + +static __attribute__((constructor)) void nacc_fsm_init(void) +{ + OSMO_ASSERT(osmo_fsm_register(&nacc_fsm) == 0); +} + +void nacc_fsm_ctrl_reply_cb(struct ctrl_handle *ctrl, struct ctrl_cmd *cmd, void *data) +{ + struct nacc_fsm_ctx *ctx = (struct nacc_fsm_ctx *)data; + char *tmp = NULL, *tok, *saveptr; + + LOGPFSML(ctx->fi, LOGL_NOTICE, "Received CTRL message: type=%d %s: %s\n", + cmd->type, cmd->variable, osmo_escape_str(cmd->reply, -1)); + + if (cmd->type != CTRL_TYPE_GET_REPLY || !cmd->reply) { + osmo_fsm_inst_term(ctx->fi, OSMO_FSM_TERM_ERROR, NULL); + return; + } + + /* TODO: Potentially validate cmd->variable contains same params as we + sent, and that cmd->id matches the original set. We may want to keep + the original cmd around by setting cmd->defer=1 when sending it. */ + + tmp = talloc_strdup(cmd, cmd->reply); + if (!tmp) + goto free_ret; + + if (!(tok = strtok_r(tmp, "-", &saveptr))) + goto free_ret; + ctx->cgi_ps.rai.lac.plmn.mcc = atoi(tok); + + if (!(tok = strtok_r(NULL, "-", &saveptr))) + goto free_ret; + ctx->cgi_ps.rai.lac.plmn.mnc = atoi(tok); + + if (!(tok = strtok_r(NULL, "-", &saveptr))) + goto free_ret; + ctx->cgi_ps.rai.lac.lac = atoi(tok); + + if (!(tok = strtok_r(NULL, "-", &saveptr))) + goto free_ret; + ctx->cgi_ps.rai.rac = atoi(tok); + + if (!(tok = strtok_r(NULL, "\0", &saveptr))) + goto free_ret; + ctx->cgi_ps.cell_identity = atoi(tok); + + // TODO: cache the cgi_ps so we can avoid requesting again same resolution + neigh_cache_add(ctx->ms->bts->pcu->neigh_cache, &ctx->neigh_key, &ctx->cgi_ps); + + osmo_fsm_inst_dispatch(ctx->fi, NACC_EV_RX_RESOLVE_RAC_CI, NULL); + return; + +free_ret: + talloc_free(tmp); + osmo_fsm_inst_term(ctx->fi, OSMO_FSM_TERM_ERROR, NULL); + return; +} + +static int nacc_fsm_ctx_talloc_destructor(struct nacc_fsm_ctx *ctx) +{ + if (ctx->fi) { + osmo_fsm_inst_free(ctx->fi); + ctx->fi = NULL; + } + + if (ctx->neigh_ctrl_conn) { + if (ctx->neigh_ctrl_conn->write_queue.bfd.fd != -1) { + osmo_wqueue_clear(&ctx->neigh_ctrl_conn->write_queue); + osmo_fd_unregister(&ctx->neigh_ctrl_conn->write_queue.bfd); + close(ctx->neigh_ctrl_conn->write_queue.bfd.fd); + ctx->neigh_ctrl_conn->write_queue.bfd.fd = -1; + } + } + + return 0; +} + +struct nacc_fsm_ctx *nacc_fsm_alloc(struct GprsMs* ms) +{ + struct gprs_rlcmac_bts *bts = ms->bts; + struct gprs_pcu *pcu = bts->pcu; + struct nacc_fsm_ctx *ctx = talloc_zero(ms, struct nacc_fsm_ctx); + char buf[64]; + int rc; + + talloc_set_destructor(ctx, nacc_fsm_ctx_talloc_destructor); + + ctx->ms = ms; + + snprintf(buf, sizeof(buf), "TLLI-0x%08x", ms_tlli(ms)); + ctx->fi = osmo_fsm_inst_alloc(&nacc_fsm, ctx, ctx, LOGL_INFO, buf); + if (!ctx->fi) + goto free_ret; + + ctx->neigh_ctrl = ctrl_handle_alloc(ctx, ctx, NULL); + ctx->neigh_ctrl->reply_cb = nacc_fsm_ctrl_reply_cb; + ctx->neigh_ctrl_conn = osmo_ctrl_conn_alloc(ctx, ctx->neigh_ctrl); + if (!ctx->neigh_ctrl_conn) + goto free_ret; + + rc = osmo_sock_init2_ofd(&ctx->neigh_ctrl_conn->write_queue.bfd, + AF_UNSPEC, SOCK_STREAM, IPPROTO_TCP, + NULL, 0, pcu->vty.neigh_ctrl_addr, pcu->vty.neigh_ctrl_port, + OSMO_SOCK_F_CONNECT); + if (rc < 0) { + LOGP(DNACC, LOGL_ERROR, "Can't connect to CTRL @ %s:%u\n", + pcu->vty.neigh_ctrl_addr, pcu->vty.neigh_ctrl_port); + goto free_ret; + } + llist_add(&ctx->neigh_ctrl_conn->list_entry, &ctx->neigh_ctrl->ccon_list); + + return ctx; +free_ret: + talloc_free(ctx); + return NULL; +} diff --git a/src/nacc_fsm.h b/src/nacc_fsm.h new file mode 100644 index 0000000..d660454 --- /dev/null +++ b/src/nacc_fsm.h @@ -0,0 +1,65 @@ +/* nacc_fsm.h + * + * Copyright (C) 2021 by sysmocom - s.f.m.c. GmbH + * Author: Pau Espin Pedrol + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ +#pragma once + +#include +#include + +#include + +struct GprsMs; +struct gprs_rlcmac_tbf; + +enum nacc_fsm_event { + NACC_EV_CELL_CHG_NOTIFICATION, /* data: Packet_Cell_Change_Notification_t* */ + NACC_EV_RX_RESOLVE_RAC_CI, + NACC_EV_SI_INFO_RECEIVED, /* data: struct si_cache_entry* */ + NACC_EV_CREATE_RLCMAC_MSG, /* data: struct nacc_ev_create_rlcmac_msg_ctx* */ +}; + +enum nacc_fsm_states { + NACC_ST_INITIAL, + NACC_ST_WAIT_RESOLVE_RAC_CI, + NACC_ST_WAIT_REQUEST_SI, + NACC_ST_TX_NEIGHBOUR_DATA, + NACC_ST_TX_CELL_CHG_CONTINUE, + NACC_ST_DONE, +}; + +struct nacc_fsm_ctx { + struct osmo_fsm_inst *fi; + struct GprsMs* ms; /* back pointer */ + struct ctrl_handle *neigh_ctrl; + struct ctrl_connection *neigh_ctrl_conn; + struct neigh_cache_entry_key neigh_key; /* target cell info from MS */ + struct osmo_cell_global_id_ps cgi_ps; /* target cell info resolved from req_{arfcn+bsic} */ + struct si_cache_value si_info; /* SI info resolved from SGSN, to be sent to MS */ + size_t si_info_bytes_sent; /* How many bytes out of si_info->si_len were already sent to MS */ + size_t container_idx; /* Next container_idx to assign when sending Packet Neighbor Data message */ + bool all_si_info_sent; /* Did we already encode all the SI info? */ +}; + +/* passed as data in NACC_EV_CREATE_RLCMAC_MSG */ +struct nacc_ev_create_rlcmac_msg_ctx { + struct gprs_rlcmac_tbf *tbf; /* target tbf to create messages for */ + struct msgb *msg; /* to be filled by FSM during event processing */ +}; + +struct nacc_fsm_ctx *nacc_fsm_alloc(struct GprsMs* ms); diff --git a/src/neigh_cache.c b/src/neigh_cache.c new file mode 100644 index 0000000..cf77dc8 --- /dev/null +++ b/src/neigh_cache.c @@ -0,0 +1,254 @@ +/* si_cache.c + * + * Copyright (C) 2021 by sysmocom - s.f.m.c. GmbH + * Author: Pau Espin Pedrol + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + +#include +#include + +#include + +#include + +#define KEEP_TIME_DEFAULT_SEC 5 + +/*TODO: add a timer to the_pcu T_defs, pass value to struct neigh_cache instead of KEEP_TIME_DEFAULT_SEC */ + +static void neigh_cache_schedule_cleanup(struct neigh_cache *cache); +static void neigh_cache_cleanup_cb(void *data) { + struct timespec now, threshold; + struct neigh_cache *cache = (struct neigh_cache *)data; + struct neigh_cache_entry *it, *tmp; + + osmo_clock_gettime(CLOCK_MONOTONIC, &now); + + /* Instead of adding keep_time_intval to each, substract it from now once */ + timespecsub(&now, &cache->keep_time_intval, &threshold); + + llist_for_each_entry_safe(it, tmp, &cache->list, list) { + if (timespeccmp(&threshold, &it->update_ts, >)) + break; + llist_del(&it->list); + talloc_free(it); + } + + neigh_cache_schedule_cleanup(cache); +} + +static void neigh_cache_schedule_cleanup(struct neigh_cache *cache) { + struct neigh_cache_entry *it; + struct timespec now, threshold, result; + + /* First item is the one with oldest update_ts */ + it = llist_first_entry_or_null(&cache->list, struct neigh_cache_entry, list); + if (!it) + return; + + osmo_clock_gettime(CLOCK_MONOTONIC, &now); + + timespecadd(&it->update_ts, &cache->keep_time_intval, &threshold); + + if (timespeccmp(&now, &threshold, >=)) { + /* Too late, let's flush now synchonously */ + neigh_cache_cleanup_cb(cache); + } else { + timespecsub(&threshold, &now, &result); + osmo_timer_schedule(&cache->cleanup_timer, result.tv_sec, result.tv_nsec*1000); + } +} + +struct neigh_cache *neigh_cache_alloc(void *ctx) +{ + struct neigh_cache *cache = talloc_zero(ctx, struct neigh_cache); + INIT_LLIST_HEAD(&cache->list); + osmo_timer_setup(&cache->cleanup_timer, neigh_cache_cleanup_cb, cache); + cache->keep_time_intval = (struct timespec){ .tv_sec = KEEP_TIME_DEFAULT_SEC, .tv_nsec = 0}; + return cache; + +} +struct neigh_cache_entry *neigh_cache_add(struct neigh_cache *cache, + const struct neigh_cache_entry_key *key, + const struct osmo_cell_global_id_ps *value) +{ + struct neigh_cache_entry *it; + + /* First check if it already exists. If so, simply update timer+value */ + it = neigh_cache_lookup_entry(cache, key); + if (!it) { + it = talloc_zero(cache, struct neigh_cache_entry); + } else { + /* remove item, we'll add it to the end to have them sorted by last update */ + llist_del(&it->list); + } + + it->value = *value; + memcpy(&it->value, value, sizeof(it->value)); + OSMO_ASSERT(osmo_clock_gettime(CLOCK_MONOTONIC, &it->update_ts) == 0); + llist_add_tail(&it->list, &cache->list); + neigh_cache_schedule_cleanup(cache); + return it; +} + +struct neigh_cache_entry *neigh_cache_lookup_entry(struct neigh_cache *cache, + const struct neigh_cache_entry_key *key) +{ + struct neigh_cache_entry *tmp; + llist_for_each_entry(tmp, &cache->list, list) { + if (memcmp(&tmp->key, key, sizeof(*key)) == 0) + return tmp; + } + return NULL; +} + +const struct osmo_cell_global_id_ps *neigh_cache_lookup_value(struct neigh_cache *cache, + const struct neigh_cache_entry_key *key) +{ + struct neigh_cache_entry *it = neigh_cache_lookup_entry(cache, key); + if (it) + return &it->value; + return NULL; +} + +void neigh_cache_free(struct neigh_cache *cache) +{ + struct neigh_cache_entry *it, *tmp; + if (!cache) + return; + + llist_for_each_entry_safe(it, tmp, &cache->list, list) { + llist_del(&it->list); + talloc_free(it); + } + osmo_timer_del(&cache->cleanup_timer); + talloc_free(cache); +} + + +//////////////////// +// SI CACHE +/////////////////// + +/*TODO: add a timer to the_pcu T_defs, pass value to struct neigh_cache instead of KEEP_TIME_DEFAULT_SEC */ + +static void si_cache_schedule_cleanup(struct si_cache *cache); +static void si_cache_cleanup_cb(void *data) { + struct timespec now, threshold; + struct si_cache *cache = (struct si_cache *)data; + struct si_cache_entry *it, *tmp; + + osmo_clock_gettime(CLOCK_MONOTONIC, &now); + + /* Instead of adding keep_time_intval to each, substract it from now once */ + timespecsub(&now, &cache->keep_time_intval, &threshold); + + llist_for_each_entry_safe(it, tmp, &cache->list, list) { + if (timespeccmp(&threshold, &it->update_ts, >)) + break; + llist_del(&it->list); + talloc_free(it); + } + + si_cache_schedule_cleanup(cache); +} + +static void si_cache_schedule_cleanup(struct si_cache *cache) { + struct si_cache_entry *it; + struct timespec now, threshold, result; + + /* First item is the one with oldest update_ts */ + it = llist_first_entry_or_null(&cache->list, struct si_cache_entry, list); + if (!it) + return; + + osmo_clock_gettime(CLOCK_MONOTONIC, &now); + + timespecadd(&it->update_ts, &cache->keep_time_intval, &threshold); + + if (timespeccmp(&now, &threshold, >=)) { + /* Too late, let's flush now synchonously */ + si_cache_cleanup_cb(cache); + } else { + timespecsub(&threshold, &now, &result); + osmo_timer_schedule(&cache->cleanup_timer, result.tv_sec, result.tv_nsec*1000); + } +} + +struct si_cache *si_cache_alloc(void *ctx) +{ + struct si_cache *cache = talloc_zero(ctx, struct si_cache); + INIT_LLIST_HEAD(&cache->list); + osmo_timer_setup(&cache->cleanup_timer, si_cache_cleanup_cb, cache); + cache->keep_time_intval = (struct timespec){ .tv_sec = KEEP_TIME_DEFAULT_SEC, .tv_nsec = 0}; + return cache; +} +struct si_cache_entry *si_cache_add(struct si_cache *cache, + const struct osmo_cell_global_id_ps *key, + const struct si_cache_value *value) +{ + struct si_cache_entry *it; + + /* First check if it already exists. If so, simply update timer+value */ + it = si_cache_lookup_entry(cache, key); + if (!it) { + it = talloc_zero(cache, struct si_cache_entry); + } else { + /* remove item, we'll add it to the end to have them sorted by last update */ + llist_del(&it->list); + } + + it->value = *value; + memcpy(&it->value, value, sizeof(it->value)); + OSMO_ASSERT(osmo_clock_gettime(CLOCK_MONOTONIC, &it->update_ts) == 0); + llist_add_tail(&it->list, &cache->list); + si_cache_schedule_cleanup(cache); + return it; +} + +struct si_cache_entry *si_cache_lookup_entry(struct si_cache *cache, + const struct osmo_cell_global_id_ps *key) +{ + struct si_cache_entry *tmp; + llist_for_each_entry(tmp, &cache->list, list) { + if (memcmp(&tmp->key, key, sizeof(*key)) == 0) + return tmp; + } + return NULL; +} + +const struct si_cache_value *si_cache_lookup_value(struct si_cache *cache, + const struct osmo_cell_global_id_ps *key) +{ + struct si_cache_entry *it = si_cache_lookup_entry(cache, key); + if (it) + return &it->value; + return NULL; +} + +void si_cache_free(struct si_cache *cache) +{ + struct si_cache_entry *it, *tmp; + if (!cache) + return; + + llist_for_each_entry_safe(it, tmp, &cache->list, list) { + llist_del(&it->list); + talloc_free(it); + } + osmo_timer_del(&cache->cleanup_timer); + talloc_free(cache); +} diff --git a/src/neigh_cache.h b/src/neigh_cache.h new file mode 100644 index 0000000..68f5a5d --- /dev/null +++ b/src/neigh_cache.h @@ -0,0 +1,99 @@ +/* neigh_cache.h + * + * Copyright (C) 2021 by sysmocom - s.f.m.c. GmbH + * Author: Pau Espin Pedrol + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ +#pragma once + +#include + +#include +#include + +#include + +//////////////////// +// NEIGH CACHE +/////////////////// + +/* ARFC+BSIC -> CGI PS cache */ +struct neigh_cache { + struct llist_head list; /* list of neigh_cache_entry items */ + struct osmo_timer_list cleanup_timer; /* Timer removing too-old entries */ + struct timespec keep_time_intval; +}; + +struct neigh_cache_entry_key { + uint16_t local_lac; + uint16_t local_ci; + uint16_t tgt_arfcn; + uint8_t tgt_bsic; +}; + +struct neigh_cache_entry { + struct llist_head list; /* to be included in neigh_cache->list */ + //struct neigh_cache *cache; /* backpointer */ + struct timespec update_ts; + struct neigh_cache_entry_key key; + struct osmo_cell_global_id_ps value; +}; + +struct neigh_cache *neigh_cache_alloc(void *ctx); +struct neigh_cache_entry *neigh_cache_add(struct neigh_cache *cache, + const struct neigh_cache_entry_key *key, + const struct osmo_cell_global_id_ps *value); +struct neigh_cache_entry *neigh_cache_lookup_entry(struct neigh_cache *cache, + const struct neigh_cache_entry_key *key); +const struct osmo_cell_global_id_ps *neigh_cache_lookup_value(struct neigh_cache *cache, + const struct neigh_cache_entry_key *key); +void neigh_cache_free(struct neigh_cache *cache); + + +//////////////////// +// SI CACHE +/////////////////// + +/* CGI-PS-> SI cache */ +struct si_cache { + struct llist_head list; /* list of si_cache_entry items */ + struct osmo_timer_list cleanup_timer; /* Timer removing too-old entries */ + struct timespec keep_time_intval; +}; + +struct si_cache_value { + char si_buf[512]; + size_t si_len; + bool type_psi; +}; + +struct si_cache_entry { + struct llist_head list; /* to be included in si_cache->list */ + //struct si_cache *cache; /* backpointer */ + struct timespec update_ts; + struct osmo_cell_global_id_ps key; + struct si_cache_value value; +}; + +struct si_cache *si_cache_alloc(void *ctx); +struct si_cache_entry *si_cache_add(struct si_cache *cache, + const struct osmo_cell_global_id_ps *key, + const struct si_cache_value *value); +struct si_cache_entry *si_cache_lookup_entry(struct si_cache *cache, + const struct osmo_cell_global_id_ps *key); +const struct si_cache_value *si_cache_lookup_value(struct si_cache *cache, + const struct osmo_cell_global_id_ps *key); +void si_cache_free(struct si_cache *cache); diff --git a/src/pcu_vty.c b/src/pcu_vty.c index 288f241..b7021c8 100644 --- a/src/pcu_vty.c +++ b/src/pcu_vty.c @@ -14,6 +14,7 @@ #include #include #include +#include #include #include #include "pcu_vty.h" @@ -1018,6 +1019,22 @@ return CMD_SUCCESS; } +DEFUN(cfg_neighbor_resolution, cfg_neighbor_resolution_cmd, + "neighbor resolution " VTY_IPV46_CMD " [<0-65535>]", + "Manage local and remote-BSS neighbor cells\n" + "Connect to Neighbor Resolution Service (CTRL interface) to given ip and port\n" + "IPv4 address to connect to\n" "IPv6 address to connect to\n" + "Port to connect to (default 4248)\n") +{ + osmo_talloc_replace_string(the_pcu, &the_pcu->vty.neigh_ctrl_addr, argv[0]); + if (argc > 1) + the_pcu->vty.neigh_ctrl_port = atoi(argv[1]); + else + the_pcu->vty.neigh_ctrl_port = OSMO_CTRL_PORT_BSC_NEIGH; + return CMD_SUCCESS; +} + + DEFUN(show_bts_timer, show_bts_timer_cmd, "show bts-timer " OSMO_TDEF_VTY_ARG_T_OPTIONAL, SHOW_STR "Show BTS controlled timers\n" @@ -1220,6 +1237,7 @@ install_element(PCU_NODE, &cfg_pcu_no_gsmtap_categ_cmd); install_element(PCU_NODE, &cfg_pcu_sock_cmd); install_element(PCU_NODE, &cfg_pcu_gb_dialect_cmd); + install_element(PCU_NODE, &cfg_neighbor_resolution_cmd); install_element(PCU_NODE, &cfg_pcu_timer_cmd); install_element_ve(&show_bts_stats_cmd); diff --git a/src/pdch.cpp b/src/pdch.cpp index 5a329f3..2028ba2 100644 --- a/src/pdch.cpp +++ b/src/pdch.cpp @@ -685,6 +685,33 @@ gprs_rlcmac_meas_rep(ms, report); } +void gprs_rlcmac_pdch::rcv_cell_change_notification(Packet_Cell_Change_Notification_t *notif, + uint32_t fn, struct pcu_l1_meas *meas) +{ + GprsMs *ms; + + bts_do_rate_ctr_inc(bts(), CTR_PKT_CELL_CHG_NOTIFICATION); + + if (notif->Global_TFI.UnionType == 0) { + struct gprs_rlcmac_ul_tbf *ul_tbf = ul_tbf_by_tfi(notif->Global_TFI.u.UPLINK_TFI); + if (!ul_tbf) { + LOGP(DRLCMAC, LOGL_NOTICE, "UL TBF TFI=0x%2x not found\n", notif->Global_TFI.u.UPLINK_TFI); + return; + } + ms = ul_tbf->ms(); + } else if (notif->Global_TFI.UnionType == 1) { + struct gprs_rlcmac_dl_tbf *dl_tbf = dl_tbf_by_tfi(notif->Global_TFI.u.DOWNLINK_TFI); + if (!dl_tbf) { + LOGP(DRLCMAC, LOGL_NOTICE, "DL TBF TFI=0x%2x not found\n", notif->Global_TFI.u.DOWNLINK_TFI); + return; + } + ms = dl_tbf->ms(); + } else { OSMO_ASSERT(0); } + + ms_update_l1_meas(ms, meas); + ms_nacc_start(ms, notif); +} + /* Received Uplink RLC control block. */ int gprs_rlcmac_pdch::rcv_control_block(const uint8_t *data, uint8_t data_len, uint32_t fn, struct pcu_l1_meas *meas, enum CodingScheme cs) @@ -734,6 +761,9 @@ case MT_PACKET_UPLINK_DUMMY_CONTROL_BLOCK: /* ignoring it. change the SI to not force sending these? */ break; + case MT_PACKET_CELL_CHANGE_NOTIFICATION: + rcv_cell_change_notification(&ul_control_block->u.Packet_Cell_Change_Notification, fn, meas); + break; default: bts_do_rate_ctr_inc(bts(), CTR_DECODE_ERRORS); LOGP(DRLCMAC, LOGL_NOTICE, diff --git a/src/pdch.h b/src/pdch.h index 8871986..d596531 100644 --- a/src/pdch.h +++ b/src/pdch.h @@ -139,6 +139,7 @@ void rcv_control_egprs_dl_ack_nack(EGPRS_PD_AckNack_t *, uint32_t fn, struct pcu_l1_meas *meas); void rcv_resource_request(Packet_Resource_Request_t *t, uint32_t fn, struct pcu_l1_meas *meas); void rcv_measurement_report(Packet_Measurement_Report_t *t, uint32_t fn); + void rcv_cell_change_notification(Packet_Cell_Change_Notification_t *, uint32_t fn, struct pcu_l1_meas *meas); gprs_rlcmac_tbf *tbf_from_list_by_tfi( LListHead *tbf_list, uint8_t tfi, enum gprs_rlcmac_tbf_direction dir); diff --git a/src/tbf.cpp b/src/tbf.cpp index 37af21f..5b2fe3d 100644 --- a/src/tbf.cpp +++ b/src/tbf.cpp @@ -1197,3 +1197,8 @@ { return tbf->is_tfi_assigned(); } + +uint8_t tbf_tfi(const struct gprs_rlcmac_tbf *tbf) +{ + return tbf->tfi(); +} diff --git a/src/tbf.h b/src/tbf.h index d616076..815d254 100644 --- a/src/tbf.h +++ b/src/tbf.h @@ -204,6 +204,7 @@ uint8_t tbf_dl_slots(const struct gprs_rlcmac_tbf *tbf); uint8_t tbf_ul_slots(const struct gprs_rlcmac_tbf *tbf); bool tbf_is_tfi_assigned(const struct gprs_rlcmac_tbf *tbf); +uint8_t tbf_tfi(const struct gprs_rlcmac_tbf *tbf); int tbf_assign_control_ts(struct gprs_rlcmac_tbf *tbf); #ifdef __cplusplus } diff --git a/tests/Makefile.am b/tests/Makefile.am index c599636..a7771b9 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -1,4 +1,4 @@ -AM_CPPFLAGS = $(STD_DEFINES_AND_INCLUDES) $(LIBOSMOCORE_CFLAGS) $(LIBOSMOGB_CFLAGS) $(LIBOSMOGSM_CFLAGS) -I$(top_srcdir)/src/ -I$(top_srcdir)/include/ +AM_CPPFLAGS = $(STD_DEFINES_AND_INCLUDES) $(LIBOSMOCORE_CFLAGS) $(LIBOSMOCTRL_CFLAGS) $(LIBOSMOGB_CFLAGS) $(LIBOSMOGSM_CFLAGS) -I$(top_srcdir)/src/ -I$(top_srcdir)/include/ AM_LDFLAGS = -lrt -no-install check_PROGRAMS = rlcmac/RLCMACTest alloc/AllocTest alloc/MslotTest tbf/TbfTest types/TypesTest ms/MsTest llist/LListTest llc/LlcTest codel/codel_test edge/EdgeTest bitcomp/BitcompTest fn/FnTest app_info/AppInfoTest @@ -15,6 +15,7 @@ $(top_builddir)/src/libgprs.la \ $(LIBOSMOGB_LIBS) \ $(LIBOSMOGSM_LIBS) \ + $(LIBOSMOCTRL_LIBS) \ $(LIBOSMOCORE_LIBS) \ $(COMMON_LA) @@ -23,6 +24,7 @@ $(top_builddir)/src/libgprs.la \ $(LIBOSMOGB_LIBS) \ $(LIBOSMOGSM_LIBS) \ + $(LIBOSMOCTRL_LIBS) \ $(LIBOSMOCORE_LIBS) \ $(COMMON_LA) @@ -31,6 +33,7 @@ $(top_builddir)/src/libgprs.la \ $(LIBOSMOGB_LIBS) \ $(LIBOSMOGSM_LIBS) \ + $(LIBOSMOCTRL_LIBS) \ $(LIBOSMOCORE_LIBS) \ $(COMMON_LA) tbf_TbfTest_LDFLAGS = -Wl,--wrap=pcu_sock_send @@ -38,6 +41,7 @@ bitcomp_BitcompTest_SOURCES = bitcomp/BitcompTest.cpp ../src/egprs_rlc_compression.cpp bitcomp_BitcompTest_LDADD = \ $(top_builddir)/src/libgprs.la \ + $(LIBOSMOCTRL_LIBS) \ $(LIBOSMOCORE_LIBS) \ $(COMMON_LA) @@ -46,6 +50,7 @@ $(top_builddir)/src/libgprs.la \ $(LIBOSMOGB_LIBS) \ $(LIBOSMOGSM_LIBS) \ + $(LIBOSMOCTRL_LIBS) \ $(LIBOSMOCORE_LIBS) \ $(COMMON_LA) @@ -56,6 +61,7 @@ $(top_builddir)/src/libgprs.la \ $(LIBOSMOGB_LIBS) \ $(LIBOSMOGSM_LIBS) \ + $(LIBOSMOCTRL_LIBS) \ $(LIBOSMOCORE_LIBS) \ $(COMMON_LA) @@ -64,6 +70,7 @@ $(top_builddir)/src/libgprs.la \ $(LIBOSMOGB_LIBS) \ $(LIBOSMOGSM_LIBS) \ + $(LIBOSMOCTRL_LIBS) \ $(LIBOSMOCORE_LIBS) \ $(COMMON_LA) @@ -72,6 +79,7 @@ $(top_builddir)/src/libgprs.la \ $(LIBOSMOGB_LIBS) \ $(LIBOSMOGSM_LIBS) \ + $(LIBOSMOCTRL_LIBS) \ $(LIBOSMOCORE_LIBS) \ $(COMMON_LA) @@ -83,6 +91,7 @@ $(top_builddir)/src/libgprs.la \ $(LIBOSMOGB_LIBS) \ $(LIBOSMOGSM_LIBS) \ + $(LIBOSMOCTRL_LIBS) \ $(LIBOSMOCORE_LIBS) \ $(COMMON_LA) @@ -97,6 +106,7 @@ codel_codel_test_SOURCES = codel/codel_test.c codel_codel_test_LDADD = \ $(top_builddir)/src/libgprs.la \ + $(LIBOSMOCTRL_LIBS) \ $(LIBOSMOCORE_LIBS) \ $(COMMON_LA) @@ -105,6 +115,7 @@ $(top_builddir)/src/libgprs.la \ $(LIBOSMOGB_LIBS) \ $(LIBOSMOGSM_LIBS) \ + $(LIBOSMOCTRL_LIBS) \ $(LIBOSMOCORE_LIBS) \ $(COMMON_LA) @@ -113,6 +124,7 @@ $(top_builddir)/src/libgprs.la \ $(LIBOSMOGB_LIBS) \ $(LIBOSMOGSM_LIBS) \ + $(LIBOSMOCTRL_LIBS) \ $(LIBOSMOCORE_LIBS) \ $(COMMON_LA) -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22385 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Id35f40d05f3e081f32fddbf1fa34cb338db452ca Gerrit-Change-Number: 22385 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 17:39:31 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 22 Jan 2021 17:39:31 +0000 Subject: Change in libosmocore[master]: gprs_bssgp_rim: add value strings for enum bssgp_ran_inf_app_id In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22384 to look at the new patch set (#2). Change subject: gprs_bssgp_rim: add value strings for enum bssgp_ran_inf_app_id ...................................................................... gprs_bssgp_rim: add value strings for enum bssgp_ran_inf_app_id Change-Id: I581d1176f82d6657d6136c32daa9c76dffb802a6 Related: SYS#5103 --- M include/osmocom/gprs/gprs_bssgp_rim.h M src/gb/gprs_bssgp_rim.c M src/gb/libosmogb.map 3 files changed, 17 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/84/22384/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22384 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I581d1176f82d6657d6136c32daa9c76dffb802a6 Gerrit-Change-Number: 22384 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 17:39:32 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 22 Jan 2021 17:39:32 +0000 Subject: Change in libosmocore[master]: gprs_bssgp_rim: add value strings for enum bssgp_rim_routing_info_discr References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22386 ) Change subject: gprs_bssgp_rim: add value strings for enum bssgp_rim_routing_info_discr ...................................................................... gprs_bssgp_rim: add value strings for enum bssgp_rim_routing_info_discr Change-Id: Idd06d2e3df0d60409a89a474018a9d97f7772090 Related: SYS#5103 --- M include/osmocom/gprs/gprs_bssgp_rim.h M src/gb/gprs_bssgp_rim.c M src/gb/libosmogb.map 3 files changed, 14 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/86/22386/1 diff --git a/include/osmocom/gprs/gprs_bssgp_rim.h b/include/osmocom/gprs/gprs_bssgp_rim.h index 48bf047..0810c8e 100644 --- a/include/osmocom/gprs/gprs_bssgp_rim.h +++ b/include/osmocom/gprs/gprs_bssgp_rim.h @@ -33,6 +33,12 @@ BSSGP_RIM_ROUTING_INFO_EUTRAN, }; +extern const struct value_string bssgp_rim_routing_info_discr_strs[]; + +/*! Obtain a human-readable string for NACC Cause code */ +static inline const char *bssgp_rim_routing_info_discr_str(enum bssgp_rim_routing_info_discr val) +{ return get_value_string(bssgp_rim_routing_info_discr_strs, val); } + /*! BSSGP RIM Routing information, see also 3GPP TS 48.018, section 11.3.70 */ struct bssgp_rim_routing_info { enum bssgp_rim_routing_info_discr discr; diff --git a/src/gb/gprs_bssgp_rim.c b/src/gb/gprs_bssgp_rim.c index 5ef8375..844268a 100644 --- a/src/gb/gprs_bssgp_rim.c +++ b/src/gb/gprs_bssgp_rim.c @@ -41,6 +41,13 @@ * (3GPP TS 48.018, sub-clause 11.3.9) but without IE and length octets. */ #define REP_CELL_ID_LEN 8 +const struct value_string bssgp_rim_routing_info_discr_strs[] = { + { BSSGP_RIM_ROUTING_INFO_GERAN, "GERAN cell" }, + { BSSGP_RIM_ROUTING_INFO_UTRAN, "UTRAN RNC" }, + { BSSGP_RIM_ROUTING_INFO_EUTRAN, "E-UTRAN eNodeB/HeNB" }, + { 0, NULL } +}; + /*! Parse a RIM Routing information IE (3GPP TS 48.018, chapter 11.3.70). * \param[out] ri user provided memory to store the parsed results. * \param[in] buf input buffer of the value part of the IE. diff --git a/src/gb/libosmogb.map b/src/gb/libosmogb.map index 23d52a2..b4d7fdb 100644 --- a/src/gb/libosmogb.map +++ b/src/gb/libosmogb.map @@ -34,6 +34,7 @@ bssgp_parse_rim_pdu; bssgp_parse_rim_ri; bssgp_ran_inf_app_id_strs; +bssgp_rim_routing_info_discr_strs; bssgp_set_bssgp_callback; bssgp_tx_bvc_block; bssgp_tx_bvc_reset; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22386 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Idd06d2e3df0d60409a89a474018a9d97f7772090 Gerrit-Change-Number: 22386 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 17:50:11 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 22 Jan 2021 17:50:11 +0000 Subject: Change in osmo-pcu[master]: Introduce NACC support In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-pcu/+/22385 to look at the new patch set (#2). Change subject: Introduce NACC support ...................................................................... Introduce NACC support A new nacc_fsm is introduced per MS object, with its partner priv structure struct nacc_fsm_ctx, which exists and is available in the MS object only during the duration of the NACC procedure. The NACC context is created on an MS whenever a Pkt Cell Change Notification is received on Uplink RLCMAC, which asks for neighbor information of a given ARFCN+BSIC. First, the target ARFCN+BSIC needs to be translated into a CGI-PS (RAC+CI) address. That's done by asking the BSC through the Neighbour Resolution Service available in osmo-bsc using the CTRL interface. Once the CGI-PS of the target cell is known, PCU starts a RIM RAN-INFO request against the SGSN (which will route the request as needed), and wait for a response containing the SI bits from the target cell. After the SI bis are received, the scheduler is isntructed to eventually poll a TBF for the MS originating the MS, so that we can send the SI bits encapsulated into multiple Packet Neighbor Cell Data messages on the downlink. One all the SI bits are sent, the scheduler is instructed to send a Packet Cell Change Continue message. Once the message above has been sent, the FSM autodestroys itself. Caches are also introduced in this patch which allows for re-using recently known translations ARFCN+BSIC -> CGI-PS and CGI-PS -> SI_INFO respectively. Change-Id: Id35f40d05f3e081f32fddbf1fa34cb338db452ca --- M configure.ac M src/Makefile.am M src/bts.cpp M src/bts.h M src/encoding.cpp M src/encoding.h M src/gprs_bssgp_rim.c M src/gprs_debug.cpp M src/gprs_debug.h M src/gprs_ms.c M src/gprs_ms.h M src/gprs_pcu.c M src/gprs_pcu.h M src/gprs_rlcmac_sched.cpp A src/nacc_fsm.c A src/nacc_fsm.h A src/neigh_cache.c A src/neigh_cache.h M src/pcu_vty.c M src/pdch.cpp M src/pdch.h M src/tbf.cpp M src/tbf.h M tests/Makefile.am 24 files changed, 1,347 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/85/22385/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22385 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Id35f40d05f3e081f32fddbf1fa34cb338db452ca Gerrit-Change-Number: 22385 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 17:50:47 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 22 Jan 2021 17:50:47 +0000 Subject: Change in libosmocore[master]: gprs_bssgp_rim: add value strings for enum bssgp_ran_inf_app_id In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22384 ) Change subject: gprs_bssgp_rim: add value strings for enum bssgp_ran_inf_app_id ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22384 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I581d1176f82d6657d6136c32daa9c76dffb802a6 Gerrit-Change-Number: 22384 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 22 Jan 2021 17:50:47 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 17:51:16 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 22 Jan 2021 17:51:16 +0000 Subject: Change in libosmocore[master]: gprs_bssgp_rim: add value strings for enum bssgp_rim_routing_info_discr In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22386 ) Change subject: gprs_bssgp_rim: add value strings for enum bssgp_rim_routing_info_discr ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22386 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Idd06d2e3df0d60409a89a474018a9d97f7772090 Gerrit-Change-Number: 22386 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 22 Jan 2021 17:51:16 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 17:52:27 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 22 Jan 2021 17:52:27 +0000 Subject: Change in osmo-ttcn3-hacks[master]: rlcmac: introduce initial support for NACC related messages In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22058 to look at the new patch set (#3). Change subject: rlcmac: introduce initial support for NACC related messages ...................................................................... rlcmac: introduce initial support for NACC related messages Change-Id: I4d2f123479c34e6afffe0bc8d91409e6b0529a62 --- M library/RLCMAC_CSN1_Templates.ttcn M library/RLCMAC_CSN1_Types.ttcn 2 files changed, 171 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/58/22058/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22058 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I4d2f123479c34e6afffe0bc8d91409e6b0529a62 Gerrit-Change-Number: 22058 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 17:52:27 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 22 Jan 2021 17:52:27 +0000 Subject: Change in osmo-ttcn3-hacks[master]: WIP: NACC References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22387 ) Change subject: WIP: NACC ...................................................................... WIP: NACC Change-Id: I951db4af731e5a7c207f0f407dd78d166e2d3d26 --- M pcu/PCU_Tests.ttcn M pcu/gen_links.sh M pcu/osmo-pcu.cfg M pcu/regen_makefile.sh 4 files changed, 188 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/87/22387/1 diff --git a/pcu/PCU_Tests.ttcn b/pcu/PCU_Tests.ttcn index 13b33b2..469c581 100644 --- a/pcu/PCU_Tests.ttcn +++ b/pcu/PCU_Tests.ttcn @@ -56,6 +56,10 @@ import from StatsD_CodecPort_CtrlFunct all; import from StatsD_Checker all; +import from IPA_Emulation all; +import from Osmocom_CTRL_Adapter all; +import from Osmocom_CTRL_Functions all; + modulepar { charstring mp_pcu_sock_path := PCU_SOCK_DEFAULT; @@ -63,6 +67,9 @@ charstring mp_pcu_statsd_ip := "127.0.0.1"; integer mp_pcu_statsd_port := 8125; + + charstring mp_ctrl_neigh_ip := "127.0.0.1"; + integer mp_ctrl_neigh_port := 4248; } @@ -111,7 +118,7 @@ uint8_t high } -type component RAW_PCU_Test_CT extends bssgp_CT, MS_BTS_IFACE_CT, StatsD_ConnHdlr { +type component RAW_PCU_Test_CT extends bssgp_CT, MS_BTS_IFACE_CT, StatsD_ConnHdlr, CTRL_Adapter_CT { /* PCU interface abstraction component */ var RAW_PCUIF_CT vc_PCUIF; @@ -3566,6 +3573,179 @@ f_shutdown(__BFILE__, __LINE__, final := true); } +/* Handle groups of PKT NEIGHBOUR CELL DATA packets */ +private function f_handle_pkt_neighbor_cell_data(inout GprsMS ms, octetstring exp_si) +runs on RAW_PCU_Test_CT { + var RlcmacDlBlock dl_block; + var uint32_t sched_fn; + var integer i := 0; + var uint5_t exp_container_idx := 0; + var integer si_offset := 0; + var integer len; + var octetstring exp_si_chunk; + var GlobalTfi gtfi := { is_dl_tfi := false, tfi := ms.ul_tbf.tfi }; + + while (true) { + f_rx_rlcmac_dl_block(dl_block, sched_fn); + if (not match(dl_block, tr_RLCMAC_DUMMY_CTRL())) { + break; + } + if (i > 50) { + setverdict(fail, "Rx unexpected DL block: ", dl_block); + f_shutdown(__BFILE__, __LINE__); + return; + } + i := i + 1; + } + + while (true) { + var template RlcmacDlCtrlMsg exp_msg; exp_msg := + tr_RlcMacDlCtrl_PKT_NEIGH_CELL_DATA(gtfi, exp_container_idx); + + /* Make sure last Dl block is a Pkt Neighbour Cell Data */ + if (not match(dl_block, tr_RLCMAC_DL_CTRL(?, exp_msg))) { + setverdict(fail, "Rx unexpected DL block: ", dl_block, " vs exp ", tr_RLCMAC_DL_CTRL(?, exp_msg)); + f_shutdown(__BFILE__, __LINE__); + return; + } + var PacketNeighbourCellData neigh_data := dl_block.ctrl.payload.u.neighbour_cell_data; + var PacketNeighbourCellDataContainer cont := neigh_data.container_list[0]; + + if (cont.cd_length == 31) { /* continues on next message */ + len := lengthof(cont.container_data); + exp_si_chunk := substr(exp_si, si_offset, len); + if (cont.container_data != exp_si_chunk) { + setverdict(fail, "Rx unexpected SI chunk at offset ", si_offset, ": ", + cont.container_data, " vs exp ", exp_si_chunk); + f_shutdown(__BFILE__, __LINE__); + return; + } + si_offset := si_offset + len; + } else if (cont.cd_length == 0) { + /* we are done */ + if (si_offset != lengthof(exp_si)) { + setverdict(fail, "Rx unexpectd SI length ", si_offset, + " vs exp ", lengthof(exp_si)); + f_shutdown(__BFILE__, __LINE__); + } + break; + } else { /* data length, last message */ + len := cont.cd_length; + exp_si_chunk := substr(exp_si, si_offset, len); + if (cont.container_data != exp_si_chunk) { + setverdict(fail, "Rx unexpected SI chunk at offset ", si_offset, ": ", + cont.container_data, " vs exp ", exp_si_chunk); + f_shutdown(__BFILE__, __LINE__); + return; + } + si_offset := si_offset + len; + /* we are done */ + if (si_offset != lengthof(exp_si)) { + setverdict(fail, "Rx unexpectd SI length ", si_offset, + " vs exp ", lengthof(exp_si)); + f_shutdown(__BFILE__, __LINE__); + } + break; + } + + exp_container_idx := exp_container_idx + 1; + f_rx_rlcmac_dl_block(dl_block, sched_fn); + } + return; +} + +/* Verify PCU handles Network Assisted Cell Change Cell Change (NACC, TS 44.060 sec 8.8). */ +testcase TC_nacc() runs on RAW_PCU_Test_CT { + var RlcmacDlBlock dl_block; + var EgprsChCodingCommand last_ch_coding; + var PollFnCtx pollctx; + var uint32_t sched_fn; + var GprsMS ms; + var template (value) RlcmacUlCtrlMsg cell_chf_notif; + var MultislotCap_GPRS mscap_gprs := { + gprsmultislotclass := '00011'B, + gprsextendeddynalloccap := '0'B + }; + var MSRadioAccessCapabilityV ms_racap := { valueof(ts_RaCapRec('0001'B /* E-GSM */, mscap_gprs, omit)) }; + var PCUIF_info_ind info_ind := valueof(ts_PCUIF_INFO_default); + var GsmArfcn req_arfcn := 862; + var uint6_t req_bsic := 43; + var BssgpCellId src := valueof(ts_BssgpCellId(ts_RAI(ts_LAI('262F42'H, /* TODO: encode from info_ind */ + info_ind.lac), + info_ind.rac), + info_ind.cell_id)); + var BssgpCellId dst := valueof(ts_BssgpCellId(ts_RAI(ts_LAI('023F43'H, /* Decided by test itself (emulating BSC) */ + 423), + 2), + 5)); + var template RIM_Routing_Address src_addr := t_RIM_Routing_Address_cid(src); + var template RIM_Routing_Address dst_addr := t_RIM_Routing_Address_cid(dst); + var octetstring si1 := '198fb100000000000000000000000000007900002b'O; + var octetstring si3 := '1b753000f110236ec9033c2747407900003c0b2b2b'O; + var octetstring si13 := '009000185a6fc9e08410ab2b2b2b2b2b2b2b2b2b2b'O; + var octetstring si := si1 & si3 & si13; + var template RAN_Information_RIM_Container res_cont; + res_cont := ts_RAN_Information_RIM_Container(ts_RIM_Application_Identity(RIM_APP_ID_NACC), + ts_RIM_Sequence_Number(2), + ts_RIM_PDU_Indications(false, RIM_PDU_TYPE_SING_REP), + ts_RIM_Protocol_Version_Number(1), + tsu_ApplContainer_or_ApplErrContainer_NACC(tsu_ApplContainer_NACC(dst, false, 3, si)), + omit); + + /* Initialize osmo-bsc emulation neighbor resolution CTRL port */ + f_ipa_ctrl_start_server(mp_ctrl_neigh_ip, mp_ctrl_neigh_port); + + /* Initialize NS/BSSGP side */ + f_init_bssgp(); + /* Initialize GPRS MS side */ + f_init_gprs_ms(); + ms := g_ms[0]; /* We only use first MS in this test */ + + /* Initialize the PCU interface abstraction */ + f_init_raw(testcasename(), info_ind); + + /* Establish BSSGP connection to the PCU */ + f_bssgp_establish(); + f_bssgp_client_llgmm_assign(TLLI_UNUSED, ms.tlli); + + /* Send PACKET RESOURCE REQUEST */ + pollctx := f_ms_establish_ul_tbf_2phase_access(ms, ts_RlcMacUlCtrl_PKT_RES_REQ(ms.tlli, ms_racap)); + /* Pkt Uplink Assignment above sets poll+rrbp requesting PACKET CONTROL ACK */ + f_ms_tx_ul_block(ms, ts_RLCMAC_CTRL_ACK(ms.tlli), pollctx.fn, nr := pollctx.tstrxbts); + + /* Start NACC from MS side */ + cell_chf_notif := ts_RlcMacUlCtrl_PKT_CELL_CHG_NOTIF(ms.ul_tbf.tfi, req_arfcn, req_bsic); + f_ms_tx_ul_block(ms, ts_RLC_UL_CTRL_ACK(cell_chf_notif), 0, nr := f_ms_tx_TsTrxBtsNum(ms)); + + /* osmo-pcu should now ask for resolution: */ + f_ipa_ctrl_wait_link_up(); + var charstring ctrl_var := "neighbor_resolve_cgi_ps_from_lac_ci." & + int2str(info_ind.lac) & "." & + int2str(info_ind.cell_id) & "." & + int2str(req_arfcn) & "." & + int2str(req_bsic); + f_ctrl_exp_get(IPA_CTRL, ctrl_var, "023-43-423-2-5"); + + /* RIM procedure: */ + RIM.receive(tr_RAN_INFORMATION_REQUEST(tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, dst_addr), + tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, src_addr), + tr_RAN_Information_Request_RIM_Container)); + RIM.send(ts_PDU_BSSGP_RAN_INFORMATION(ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, src_addr), + ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, dst_addr), + res_cont)); + + /* Announce SI back to MS, continue NACC procedure */ + f_handle_pkt_neighbor_cell_data(ms, si); + + /* Obtain a Downlink block and make sure it is a Pkt Cell Chg Continue */ + f_rx_rlcmac_dl_block(dl_block, sched_fn); + if (not match(dl_block, tr_RLCMAC_DL_CTRL(?, tr_RlcMacDlCtrl_PKT_CELL_CHG_CONTINUE))) { + setverdict(fail, "Rx unexpected DL block: ", dl_block); + } + + f_shutdown(__BFILE__, __LINE__, final := true); +} + control { execute( TC_pcuif_suspend() ); execute( TC_pcuif_suspend_active_tbf() ); @@ -3639,6 +3819,7 @@ execute( TC_multiplex_dl_gprs_egprs() ); execute( TC_pcuif_info_ind_subsequent() ); + execute( TC_nacc() ); } } diff --git a/pcu/gen_links.sh b/pcu/gen_links.sh index 2e581d9..98a9ff3 100755 --- a/pcu/gen_links.sh +++ b/pcu/gen_links.sh @@ -55,6 +55,9 @@ FILES+="BSSGP_Emulation.ttcnpp Osmocom_Gb_Types.ttcn " FILES+="LLC_Templates.ttcn L3_Templates.ttcn L3_Common.ttcn " FILES+="PCUIF_Types.ttcn PCUIF_CodecPort.ttcn RAW_NS.ttcnpp " +# IPA_Emulation + dependencies +FILES+="IPA_Types.ttcn IPA_Emulation.ttcnpp IPA_CodecPort.ttcn IPA_CodecPort_CtrlFunct.ttcn IPA_CodecPort_CtrlFunctDef.cc " +FILES+="Osmocom_CTRL_Types.ttcn Osmocom_CTRL_Functions.ttcn Osmocom_CTRL_Adapter.ttcn " gen_links $DIR $FILES ignore_pp_results diff --git a/pcu/osmo-pcu.cfg b/pcu/osmo-pcu.cfg index 12dc577..892dd79 100644 --- a/pcu/osmo-pcu.cfg +++ b/pcu/osmo-pcu.cfg @@ -30,3 +30,4 @@ alpha 0 gamma 0 pcu-socket /tmp/pcu_bts + neighbor resolution 127.0.0.1 diff --git a/pcu/regen_makefile.sh b/pcu/regen_makefile.sh index ca51452..8bb0598 100755 --- a/pcu/regen_makefile.sh +++ b/pcu/regen_makefile.sh @@ -1,7 +1,7 @@ #!/bin/sh -FILES="*.ttcn *.ttcnpp BSSGP_EncDec.cc IPL4asp_PT.cc IPL4asp_discovery.cc TCCConversion.cc TCCInterface.cc UD_PT.cc RLCMAC_EncDec.cc LLC_EncDec.cc TELNETasp_PT.cc Native_FunctionDefs.cc StatsD_CodecPort_CtrlFunctdef.cc" +FILES="*.ttcn *.ttcnpp BSSGP_EncDec.cc IPL4asp_PT.cc IPL4asp_discovery.cc TCCConversion.cc TCCInterface.cc UD_PT.cc RLCMAC_EncDec.cc LLC_EncDec.cc TELNETasp_PT.cc IPA_CodecPort_CtrlFunctDef.cc Native_FunctionDefs.cc StatsD_CodecPort_CtrlFunctdef.cc" -export CPPFLAGS_TTCN3="-DBSSGP_EM_L3" +export CPPFLAGS_TTCN3="-DIPA_EMULATION_CTRL -DBSSGP_EM_L3" ../regen-makefile.sh PCU_Tests.ttcn $FILES -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22387 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I951db4af731e5a7c207f0f407dd78d166e2d3d26 Gerrit-Change-Number: 22387 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 17:56:58 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 22 Jan 2021 17:56:58 +0000 Subject: Change in osmo-ttcn3-hacks[master]: WIP: NACC In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22387 ) Change subject: WIP: NACC ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22387/1/pcu/PCU_Tests.ttcn File pcu/PCU_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22387/1/pcu/PCU_Tests.ttcn at 3673 PS1, Line 3673: var BssgpCellId src := valueof(ts_BssgpCellId(ts_RAI(ts_LAI('262F42'H, /* TODO: encode from info_ind */ self note: I still need to add some sort of function "convert_plmn_to_hexstr(integer mcc, integer mnc)" here, and pass values from ts_PCUIF_INFO_default. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22387 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I951db4af731e5a7c207f0f407dd78d166e2d3d26 Gerrit-Change-Number: 22387 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Fri, 22 Jan 2021 17:56:58 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 18:19:58 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 22 Jan 2021 18:19:58 +0000 Subject: Change in libosmocore[master]: gsm: Add missing osmo_*_cmp symbols to libosmogsm.map In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22381 ) Change subject: gsm: Add missing osmo_*_cmp symbols to libosmogsm.map ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22381 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I8ff677aa381118466d065abee7db20b15880352f Gerrit-Change-Number: 22381 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: osmith Gerrit-Comment-Date: Fri, 22 Jan 2021 18:19:58 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 18:23:22 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 22 Jan 2021 18:23:22 +0000 Subject: Change in osmo-pcu[master]: Introduce NACC support In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22385 ) Change subject: Introduce NACC support ...................................................................... Patch Set 2: Code-Review-1 (3 comments) I found a few things: https://gerrit.osmocom.org/c/osmo-pcu/+/22385/2/src/gprs_bssgp_rim.c File src/gprs_bssgp_rim.c: https://gerrit.osmocom.org/c/osmo-pcu/+/22385/2/src/gprs_bssgp_rim.c at 118 PS2, Line 118: return bssgp_tx_status(BSSGP_CAUSE_UNKN_RIM_AI, NULL, msg); I believe this is wrong. This flag indicates an application error, there is nothing wrong with the routing or so. When I get 3GPP TS 48.018 8c.2.4.3 right, than there is nothing much you cen do other than ending the procedure. https://gerrit.osmocom.org/c/osmo-pcu/+/22385/2/src/nacc_fsm.c File src/nacc_fsm.c: https://gerrit.osmocom.org/c/osmo-pcu/+/22385/2/src/nacc_fsm.c at 202 PS2, Line 202: .raid = { /* TODO: fill properly */ What exactly is not properly filled? https://gerrit.osmocom.org/c/osmo-pcu/+/22385/2/src/nacc_fsm.c at 220 PS2, Line 220: .pdu_type_ext = 1, There is an enum bssgp_rim_pdu_type for pdu_type_ext in gsm_08_18.h. (use RIM_PDU_TYPE_SING_REP) -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22385 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Id35f40d05f3e081f32fddbf1fa34cb338db452ca Gerrit-Change-Number: 22385 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Comment-Date: Fri, 22 Jan 2021 18:23:22 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 18:26:59 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 22 Jan 2021 18:26:59 +0000 Subject: Change in libosmocore[master]: gsm: Introduce osmo_{rai, cgi_ps}_cmp() APIs In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22382 ) Change subject: gsm: Introduce osmo_{rai,cgi_ps}_cmp() APIs ...................................................................... Patch Set 2: (1 comment) Typo in comment, looks good otherwise. https://gerrit.osmocom.org/c/libosmocore/+/22382/2/src/gsm/gsm23003.c File src/gsm/gsm23003.c: https://gerrit.osmocom.org/c/libosmocore/+/22382/2/src/gsm/gsm23003.c at 569 PS2, Line 569: osmo_lac_cmp osmo_lai_cmp -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22382 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I00e329bc5be8674b30267dec238e7656ddfc21db Gerrit-Change-Number: 22382 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: osmith Gerrit-Comment-Date: Fri, 22 Jan 2021 18:26:59 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 18:28:19 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 22 Jan 2021 18:28:19 +0000 Subject: Change in osmo-pcu[master]: gprs_pcu: Use libosmocore osmo_cgi_ps_cmp API In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22383 ) Change subject: gprs_pcu: Use libosmocore osmo_cgi_ps_cmp API ...................................................................... Patch Set 1: Code-Review+2 (1 comment) https://gerrit.osmocom.org/c/osmo-pcu/+/22383/1//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-pcu/+/22383/1//COMMIT_MSG at 15 PS1, Line 15: libosmcoore (libosmocore) -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22383 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I7c8ee2c447634e45b367bb8f84adf0140ae48591 Gerrit-Change-Number: 22383 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: osmith Gerrit-Comment-Date: Fri, 22 Jan 2021 18:28:19 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 19:06:54 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 22 Jan 2021 19:06:54 +0000 Subject: Change in libosmocore[master]: gsm: Add missing osmo_*_cmp symbols to libosmogsm.map In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22381 ) Change subject: gsm: Add missing osmo_*_cmp symbols to libosmogsm.map ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22381 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I8ff677aa381118466d065abee7db20b15880352f Gerrit-Change-Number: 22381 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: osmith Gerrit-Comment-Date: Fri, 22 Jan 2021 19:06:54 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 19:07:36 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 22 Jan 2021 19:07:36 +0000 Subject: Change in libosmocore[master]: gsm: Introduce osmo_{rai, cgi_ps}_cmp() APIs In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22382 ) Change subject: gsm: Introduce osmo_{rai,cgi_ps}_cmp() APIs ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22382 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I00e329bc5be8674b30267dec238e7656ddfc21db Gerrit-Change-Number: 22382 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: osmith Gerrit-Comment-Date: Fri, 22 Jan 2021 19:07:36 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 19:16:28 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 22 Jan 2021 19:16:28 +0000 Subject: Change in osmo-cbc[master]: Add simplistic cbc-apitool.py as example on how to use the REST API References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22388 ) Change subject: Add simplistic cbc-apitool.py as example on how to use the REST API ...................................................................... Add simplistic cbc-apitool.py as example on how to use the REST API Change-Id: I6cbc30a3f8bf833fea785437488aed8b8af2fcbc --- M contrib/Makefile.am A contrib/cbc-apitool.py 2 files changed, 132 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-cbc refs/changes/88/22388/1 diff --git a/contrib/Makefile.am b/contrib/Makefile.am index 3439c97..928af00 100644 --- a/contrib/Makefile.am +++ b/contrib/Makefile.am @@ -1 +1,4 @@ SUBDIRS = systemd + +EXTRA_DIST = cbc-apitool.py \ + $(NULL) diff --git a/contrib/cbc-apitool.py b/contrib/cbc-apitool.py new file mode 100755 index 0000000..1b68386 --- /dev/null +++ b/contrib/cbc-apitool.py @@ -0,0 +1,129 @@ +#!/usr/bin/env python3 +# +# (C) 2020 by Harald Welte +# +# SPDX-License-Identifier: MIT +# +# This is a simplistic program to show how the REST API of osmo-cbc can be used to +# create and delete Cell Broadcast Messages +# +# A lot of the parameters are currently hard-coded, see the 'js' variable definitions +# below. + +import sys +import argparse +import requests + + +def build_url(suffix): + BASE_PATH= "/api/ecbe/v1" + return "http://%s:%u%s%s" % (server_host, server_port, BASE_PATH, suffix) + + +def rest_post(suffix, js = None): + url = build_url(suffix) + if verbose: + print("POST %s (%s)" % (url, str(js))) + resp = requests.post(url, json=js) + if not resp.ok: + print("POST failed") + +def rest_delete(suffix, js = None): + url = build_url(suffix) + if verbose: + print("DELETE %s (%s)" % (url, str(js))) + resp = requests.delete(url, json=js) + if not resp.ok: + print("DELETE failed " + str(resp)) + + + +def main(argv): + global server_port, server_host, verbose + + parser = argparse.ArgumentParser() + parser.add_argument("-H", "--host", help="Host to connect to", default="localhost") + parser.add_argument("-p", "--port", help="TCP port to connect to", default=12345) + parser.add_argument("-v", "--verbose", help="increase output verbosity", action='count', default=0) + + group = parser.add_mutually_exclusive_group() + group.add_argument("-c", "--create-cbs", type=int, nargs=1, metavar=('msg_id')) + group.add_argument("-e", "--create-etws", type=int, nargs=1, metavar=('msg_id')) + group.add_argument("-d", "--delete", type=int, nargs=1, metavar=('msg_id')) + + args = parser.parse_args() + + server_host = args.host + server_port = args.port + verbose = args.verbose + + if args.create_cbs: + js = { + 'cbe_name': "cbc_apitool", + 'category': "normal", + 'repetition_period': 5, + 'num_of_bcast': 888, + 'scope': { + 'scope_plmn': { } + }, + 'smscb_message': { + 'message_id': int(args.create_cbs[0]), + 'serial_nr': { + 'serial_nr_decoded': { + 'geo_scope': "plmn_wide", + 'msg_code': 768, + 'update_nr': 0 + } + }, + 'payload': { + 'payload_decoded': { + 'character_set': "gsm", + #'language': 'en', + #'data_utf8': "Mahlzeit!" + 'data_utf8': "Mahlzeit1 Mahlzeit2 Mahlzeit3 Mahlzeit4 Mahlzeit5 Mahlzeit6 Mahlzeit7 Mahlzeit8" + #'data_utf8': "Mahlzeit1 Mahlzeit2 Mahlzeit3 Mahlzeit4 Mahlzeit5 Mahlzeit6 Mahlzeit7 Mahlzeit8 Mahlzeit9 Mahlzeit10 Mahlzeti11 Mahlzeit12 Mahlzeit13 Mahlzeit14 Mahlzeit15 Mahlzeit16 Mahlzeit17 Mahlzeit18 Mahlzeit19 Mahlzeit20 Mahlzeit21 Mahlzeit22 Mahlzeit23 Mahlzeit24 Mahlzeit25 Mahlzeit26 Mahlzeit27 Mahlzeit28" + } + } + } + } + rest_post("/message", js); + + elif args.create_etws: + js = { + 'cbe_name': "cbc_apitool", + 'category': "normal", + 'repetition_period': 5, + 'num_of_bcast': 999, + 'scope': { + 'scope_plmn': { } + }, + 'smscb_message': { + 'message_id': int(args.create_etws[0]), + 'serial_nr': { + 'serial_nr_decoded': { + 'geo_scope': "plmn_wide", + 'msg_code': 768, + 'update_nr': 0 + } + }, + 'payload': { + 'payload_etws': { + 'warning_type': { + 'warning_type_decoded': 'earthquake' + }, + 'emergency_user_alert': True, + 'popup_on_display': True + } + } + } + } + rest_post("/message", js); + + elif args.delete: + rest_delete("/message/%u" % (args.delete[0])) + else: + print("No operation?!"); + + +if __name__ == "__main__": + main(sys.argv) -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22388 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: I6cbc30a3f8bf833fea785437488aed8b8af2fcbc Gerrit-Change-Number: 22388 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 19:16:29 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 22 Jan 2021 19:16:29 +0000 Subject: Change in osmo-cbc[master]: Add RPM spec file References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22389 ) Change subject: Add RPM spec file ...................................................................... Add RPM spec file Change-Id: I79e04228e8034e0d50a44f54c36363074fc01995 --- M .gitignore M Makefile.am M configure.ac A contrib/osmo-cbc.spec.in 4 files changed, 96 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-cbc refs/changes/89/22389/1 diff --git a/.gitignore b/.gitignore index 925f48d..d2b3af9 100644 --- a/.gitignore +++ b/.gitignore @@ -58,3 +58,5 @@ doc/manuals/common doc/manuals/build doc/manuals/vty/cbc_vty_reference.xml + +contrib/osmo-cbc.spec diff --git a/Makefile.am b/Makefile.am index d292296..7a549f2 100644 --- a/Makefile.am +++ b/Makefile.am @@ -3,7 +3,7 @@ AM_CPPFLAGS = $(all_includes) -I$(top_srcdir)/include SUBDIRS = src doc contrib tests -EXTRA_DIST = .version git-version-gen +EXTRA_DIST = .version git-version-gen contrib/osmo-cbc.spec.in AM_DISTCHECK_CONFIGURE_FLAGS = \ --with-systemdsystemunitdir=$$dc_install_base/$(systemdsystemunitdir) diff --git a/configure.ac b/configure.ac index 342eb84..2a141a6 100644 --- a/configure.ac +++ b/configure.ac @@ -168,6 +168,7 @@ AC_OUTPUT( src/Makefile contrib/Makefile + contrib/osmo-cbc.spec tests/Makefile doc/Makefile doc/examples/Makefile diff --git a/contrib/osmo-cbc.spec.in b/contrib/osmo-cbc.spec.in new file mode 100644 index 0000000..ca876c8 --- /dev/null +++ b/contrib/osmo-cbc.spec.in @@ -0,0 +1,92 @@ +# +# spec file for package osmo-cbc +# +# Copyright (c) 2021, Harald Welte +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +## Disable LTO for now since it breaks compilation of the tests +## https://osmocom.org/issues/4113 +%define _lto_cflags %{nil} + +Name: osmo-cbc +Version: @VERSION@ +Release: 0 +Summary: OsmoCBC: Osmocom's Cell Broadcast Centre for 3GPP mobile networks +License: AGPL-3.0-or-later AND GPL-2.0-or-later +Group: Hardware/Mobile +URL: https://osmocom.org/projects/osmo-cbc +Source: %{name}-%{version}.tar.xz +BuildRequires: automake >= 1.9 +BuildRequires: libtool >= 2 +BuildRequires: pkgconfig >= 0.20 +%if 0%{?suse_version} +BuildRequires: systemd-rpm-macros +%endif +BuildRequires: pkgconfig(libcrypto) >= 0.9.5 +BuildRequires: pkgconfig(libosmo-mgcp-client) >= 1.5.0 +BuildRequires: pkgconfig(libosmo-netif) >= 0.6.0 +BuildRequires: pkgconfig(libosmo-sccp) >= 0.10.0 +BuildRequires: pkgconfig(libosmo-sigtran) >= 0.10.0 +BuildRequires: pkgconfig(libosmoabis) >= 0.6.0 +BuildRequires: pkgconfig(libosmocore) >= 1.2.0 +BuildRequires: pkgconfig(libosmoctrl) >= 1.2.0 +BuildRequires: pkgconfig(libosmogb) +BuildRequires: pkgconfig(libosmogsm) >= 1.2.0 +BuildRequires: pkgconfig(libosmovty) >= 1.2.0 +BuildRequires: pkgconfig(talloc) +%{?systemd_requires} + +%description +OsmoCBC: Osmocom's Cell Broadcast Centre for 3GPP mobile networks. + +%prep +%setup -q + +%build +echo "%{version}" >.tarball-version +autoreconf -fi +%configure \ + --docdir=%{_docdir}/%{name} \ + --with-systemdsystemunitdir=%{_unitdir} +make %{?_smp_mflags} + +%install +%make_install + +%if 0%{?suse_version} +%preun +%service_del_preun %{name}.service + +%postun +%service_del_postun %{name}.service + +%pre +%service_add_pre %{name}.service + +%post +%service_add_post %{name}.service +%endif + +%check +make %{?_smp_mflags} check || (find . -name testsuite.log -exec cat {} +) + +%files +%license COPYING +%doc AUTHORS README +%{_bindir}/osmo-cbc +%dir %{_docdir}/%{name}/examples +%dir %{_docdir}/%{name}/examples/osmo-cbc +%{_docdir}/%{name}/examples/osmo-cbc/osmo-cbc*.cfg +%dir %{_sysconfdir}/osmocom +%config(noreplace) %{_sysconfdir}/osmocom/osmo-cbc.cfg +%{_unitdir}/%{name}.service + +%changelog -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22389 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: I79e04228e8034e0d50a44f54c36363074fc01995 Gerrit-Change-Number: 22389 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 19:16:29 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 22 Jan 2021 19:16:29 +0000 Subject: Change in osmo-cbc[master]: Add README.md file References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22390 ) Change subject: Add README.md file ...................................................................... Add README.md file Change-Id: Ib2a019290a80d67e26875d972f6a8ee700f73bb6 --- M Makefile.am A README.md 2 files changed, 70 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-cbc refs/changes/90/22390/1 diff --git a/Makefile.am b/Makefile.am index 7a549f2..4037bb1 100644 --- a/Makefile.am +++ b/Makefile.am @@ -3,7 +3,7 @@ AM_CPPFLAGS = $(all_includes) -I$(top_srcdir)/include SUBDIRS = src doc contrib tests -EXTRA_DIST = .version git-version-gen contrib/osmo-cbc.spec.in +EXTRA_DIST = .version README.md git-version-gen contrib/osmo-cbc.spec.in AM_DISTCHECK_CONFIGURE_FLAGS = \ --with-systemdsystemunitdir=$$dc_install_base/$(systemdsystemunitdir) diff --git a/README.md b/README.md new file mode 100644 index 0000000..12a6b1f --- /dev/null +++ b/README.md @@ -0,0 +1,69 @@ +osmo-cbc - Osmocom Cell Broadcast Centre +======================================== + +This repository contains a C-language implementation of a minimal +3GPP Cell Broadcast Centre (CBC). It is part of the +[Osmocom](https://osmocom.org/) Open Source Mobile Communications +project. + +A Cell Broadcast Centre is the central network element of a cellular network +for distribution of Cell Broadcast and Emergency messages. + +This code implements + * the CBSP protocol on the CBC-BSC interface + * a custom HTTP/REST based interface for external users to create/delete CBS messages + +We plan to add support for the following features in the future: + * the SABP protocol on the CBC-RNC (or CBC-HNBGW) interface for UMTS support + * the SBcAP protocol on the CBC-MME interface for LTE support + +Homepage +-------- + +The official homepage of the project is +https://osmocom.org/projects/osmo-cbc/wiki + +GIT Repository +-------------- + +You can clone from the official osmo-cbc.git repository using + + git clone https://git.osmocom.org/osmo-cbc.git + +There is a cgit interface at https://git.osmocom.org/osmo-cbc/ + +Documentation +------------- + +User Manuals and VTY reference manuals are [optionally] built in PDF form +as part of the build process. + +Pre-rendered PDF version of the current "master" can be found at +[User Manual](https://ftp.osmocom.org/docs/latest/osmocbc-usermanual.pdf) +as well as the [VTY Reference Manual for osmo-cbc](https://ftp.osmocom.org/docs/latest/osmocbc-vty-reference.pdf) + +Mailing List +------------ + +Discussions related to osmo-cbc are happening on the +openbsc at lists.osmocom.org mailing list, please see +https://lists.osmocom.org/mailman/listinfo/openbsc for subscription +options and the list archive. + +Please observe the [Osmocom Mailing List +Rules](https://osmocom.org/projects/cellular-infrastructure/wiki/Mailing_List_Rules) +when posting. + +Contributing +------------ + +Our coding standards are described at +https://osmocom.org/projects/cellular-infrastructure/wiki/Coding_standards + +We us a gerrit based patch submission/review process for managing +contributions. Please see +https://osmocom.org/projects/cellular-infrastructure/wiki/Gerrit for +more details + +The current patch queue for osmo-cbc can be seen at +https://gerrit.osmocom.org/#/q/project:osmo-cbc+status:open -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22390 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: Ib2a019290a80d67e26875d972f6a8ee700f73bb6 Gerrit-Change-Number: 22390 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 19:31:37 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 22 Jan 2021 19:31:37 +0000 Subject: Change in libosmocore[master]: gsm: Add missing osmo_*_cmp symbols to libosmogsm.map In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22381 ) Change subject: gsm: Add missing osmo_*_cmp symbols to libosmogsm.map ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22381 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I8ff677aa381118466d065abee7db20b15880352f Gerrit-Change-Number: 22381 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 22 Jan 2021 19:31:37 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 19:31:39 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 22 Jan 2021 19:31:39 +0000 Subject: Change in libosmocore[master]: gsm: Add missing osmo_*_cmp symbols to libosmogsm.map In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22381 ) Change subject: gsm: Add missing osmo_*_cmp symbols to libosmogsm.map ...................................................................... gsm: Add missing osmo_*_cmp symbols to libosmogsm.map Change-Id: I8ff677aa381118466d065abee7db20b15880352f --- M src/gsm/libosmogsm.map 1 file changed, 2 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified osmith: Looks good to me, but someone else must approve dexter: Looks good to me, but someone else must approve pespin: Looks good to me, approved diff --git a/src/gsm/libosmogsm.map b/src/gsm/libosmogsm.map index eceb1c1..de9a595 100644 --- a/src/gsm/libosmogsm.map +++ b/src/gsm/libosmogsm.map @@ -406,6 +406,7 @@ osmo_plmn_name_buf; osmo_plmn_name_c; osmo_plmn_name2; +osmo_lai_cmp; osmo_lai_name; osmo_lai_name_buf; osmo_lai_name_c; @@ -415,6 +416,7 @@ osmo_rai_name2; osmo_rai_name2_buf; osmo_rai_name2_c; +osmo_cgi_cmp; osmo_cgi_name; osmo_cgi_name_buf; osmo_cgi_name_c; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22381 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I8ff677aa381118466d065abee7db20b15880352f Gerrit-Change-Number: 22381 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 19:32:49 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 22 Jan 2021 19:32:49 +0000 Subject: Change in libosmocore[master]: gsm: Introduce osmo_{rai, cgi_ps}_cmp() APIs In-Reply-To: References: Message-ID: Hello osmith, Jenkins Builder, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22382 to look at the new patch set (#3). Change subject: gsm: Introduce osmo_{rai,cgi_ps}_cmp() APIs ...................................................................... gsm: Introduce osmo_{rai,cgi_ps}_cmp() APIs Similar to what we already have for other data types, such as osmo_lai_cmp or osmo_cgi_cmp. Change-Id: I00e329bc5be8674b30267dec238e7656ddfc21db --- M TODO-RELEASE M include/osmocom/gsm/gsm23003.h M src/gsm/gsm23003.c M src/gsm/libosmogsm.map 4 files changed, 39 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/82/22382/3 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22382 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I00e329bc5be8674b30267dec238e7656ddfc21db Gerrit-Change-Number: 22382 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: osmith Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 19:35:41 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 22 Jan 2021 19:35:41 +0000 Subject: Change in osmo-cbc[master]: Add simplistic cbc-apitool.py as example on how to use the REST API In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22388 ) Change subject: Add simplistic cbc-apitool.py as example on how to use the REST API ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22388 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: I6cbc30a3f8bf833fea785437488aed8b8af2fcbc Gerrit-Change-Number: 22388 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 22 Jan 2021 19:35:41 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 19:36:41 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 22 Jan 2021 19:36:41 +0000 Subject: Change in osmo-cbc[master]: Add RPM spec file In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22389 ) Change subject: Add RPM spec file ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22389 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: I79e04228e8034e0d50a44f54c36363074fc01995 Gerrit-Change-Number: 22389 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 22 Jan 2021 19:36:41 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 19:37:57 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 22 Jan 2021 19:37:57 +0000 Subject: Change in osmo-cbc[master]: Add README.md file In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22390 ) Change subject: Add README.md file ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22390 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: Ib2a019290a80d67e26875d972f6a8ee700f73bb6 Gerrit-Change-Number: 22390 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 22 Jan 2021 19:37:57 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 19:39:18 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 22 Jan 2021 19:39:18 +0000 Subject: Change in libosmocore[master]: gsm: Introduce osmo_{rai, cgi_ps}_cmp() APIs In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22382 ) Change subject: gsm: Introduce osmo_{rai,cgi_ps}_cmp() APIs ...................................................................... Patch Set 3: Code-Review+2 Fixed the typo, re-applying votes & merging. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22382 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I00e329bc5be8674b30267dec238e7656ddfc21db Gerrit-Change-Number: 22382 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 22 Jan 2021 19:39:18 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 19:39:28 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 22 Jan 2021 19:39:28 +0000 Subject: Change in libosmocore[master]: gsm: Introduce osmo_{rai, cgi_ps}_cmp() APIs In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22382 ) Change subject: gsm: Introduce osmo_{rai,cgi_ps}_cmp() APIs ...................................................................... gsm: Introduce osmo_{rai,cgi_ps}_cmp() APIs Similar to what we already have for other data types, such as osmo_lai_cmp or osmo_cgi_cmp. Change-Id: I00e329bc5be8674b30267dec238e7656ddfc21db --- M TODO-RELEASE M include/osmocom/gsm/gsm23003.h M src/gsm/gsm23003.c M src/gsm/libosmogsm.map 4 files changed, 39 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/TODO-RELEASE b/TODO-RELEASE index 501f25b..e1b1507 100644 --- a/TODO-RELEASE +++ b/TODO-RELEASE @@ -13,3 +13,4 @@ libosmovty ABI change struct cmd_element: add a field for program specific attributes libosmovty ABI change struct vty_app_info: optional program specific attributes description libosmoctrl ABI change struct ctrl_handle changed size (new field "reply_cb" at the end) +libosmogsm new API osmo_rai_cmp(), osmo_cgi_ps_cmp() diff --git a/include/osmocom/gsm/gsm23003.h b/include/osmocom/gsm/gsm23003.h index fbe0ca0..487379a 100644 --- a/include/osmocom/gsm/gsm23003.h +++ b/include/osmocom/gsm/gsm23003.h @@ -157,7 +157,9 @@ int osmo_mnc_cmp(uint16_t a_mnc, bool a_mnc_3_digits, uint16_t b_mnc, bool b_mnc_3_digits); int osmo_plmn_cmp(const struct osmo_plmn_id *a, const struct osmo_plmn_id *b); int osmo_lai_cmp(const struct osmo_location_area_id *a, const struct osmo_location_area_id *b); +int osmo_rai_cmp(const struct osmo_routing_area_id *a, const struct osmo_routing_area_id *b); int osmo_cgi_cmp(const struct osmo_cell_global_id *a, const struct osmo_cell_global_id *b); +int osmo_cgi_ps_cmp(const struct osmo_cell_global_id_ps *a, const struct osmo_cell_global_id_ps *b); int osmo_gen_home_network_domain(char *out, const struct osmo_plmn_id *plmn); int osmo_parse_home_network_domain(struct osmo_plmn_id *out, const char *in); diff --git a/src/gsm/gsm23003.c b/src/gsm/gsm23003.c index ae498fa..c2b3de8 100644 --- a/src/gsm/gsm23003.c +++ b/src/gsm/gsm23003.c @@ -565,6 +565,23 @@ return 0; } +/* Compare two RAI. + * The order of comparison is MCC, MNC, LAC, RAC. See also osmo_lai_cmp(). + * \param a[in] "Left" side RAI. + * \param b[in] "Right" side RAI. + * \returns 0 if the RAI are equal, -1 if a < b, 1 if a > b. */ +int osmo_rai_cmp(const struct osmo_routing_area_id *a, const struct osmo_routing_area_id *b) +{ + int rc = osmo_lai_cmp(&a->lac, &b->lac); + if (rc) + return rc; + if (a->rac < b->rac) + return -1; + if (a->rac > b->rac) + return 1; + return 0; +} + /* Compare two CGI. * The order of comparison is MCC, MNC, LAC, CI. See also osmo_lai_cmp(). * \param a[in] "Left" side CGI. @@ -582,6 +599,23 @@ return 0; } +/* Compare two CGI-PS. + * The order of comparison is MCC, MNC, LAC, RAC, CI. See also osmo_rai_cmp(). + * \param a[in] "Left" side CGI-PS. + * \param b[in] "Right" side CGI-PS. + * \returns 0 if the CGI are equal, -1 if a < b, 1 if a > b. */ +int osmo_cgi_ps_cmp(const struct osmo_cell_global_id_ps *a, const struct osmo_cell_global_id_ps *b) +{ + int rc = osmo_rai_cmp(&a->rai, &b->rai); + if (rc) + return rc; + if (a->cell_identity < b->cell_identity) + return -1; + if (a->cell_identity > b->cell_identity) + return 1; + return 0; +} + /*! Generate TS 23.003 Section 19.2 Home Network Realm/Domain (text form) * \param out[out] caller-provided output buffer, at least 33 bytes long * \param plmn[in] Osmocom representation of PLMN ID (MCC + MNC) diff --git a/src/gsm/libosmogsm.map b/src/gsm/libosmogsm.map index de9a595..c314c20 100644 --- a/src/gsm/libosmogsm.map +++ b/src/gsm/libosmogsm.map @@ -410,6 +410,7 @@ osmo_lai_name; osmo_lai_name_buf; osmo_lai_name_c; +osmo_rai_cmp; osmo_rai_name; osmo_rai_name_buf; osmo_rai_name_c; @@ -421,6 +422,7 @@ osmo_cgi_name_buf; osmo_cgi_name_c; osmo_cgi_name2; +osmo_cgi_ps_cmp; osmo_cgi_ps_name; osmo_cgi_ps_name_buf; osmo_cgi_ps_name_c; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22382 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I00e329bc5be8674b30267dec238e7656ddfc21db Gerrit-Change-Number: 22382 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 19:44:45 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 22 Jan 2021 19:44:45 +0000 Subject: Change in osmo-pcu[master]: Introduce NACC support In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22385 ) Change subject: Introduce NACC support ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-pcu/+/22385/2/src/gprs_bssgp_rim.c File src/gprs_bssgp_rim.c: https://gerrit.osmocom.org/c/osmo-pcu/+/22385/2/src/gprs_bssgp_rim.c at 118 PS2, Line 118: return bssgp_tx_status(BSSGP_CAUSE_UNKN_RIM_AI, NULL, msg); > I believe this is wrong. [?] what do you mean exactly with "ending the procedure"? drop the message and do nothing? -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22385 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Id35f40d05f3e081f32fddbf1fa34cb338db452ca Gerrit-Change-Number: 22385 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Comment-Date: Fri, 22 Jan 2021 19:44:45 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: dexter Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 19:45:29 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 22 Jan 2021 19:45:29 +0000 Subject: Change in osmo-pcu[master]: gprs_pcu: Use libosmocore osmo_cgi_ps_cmp API In-Reply-To: References: Message-ID: Hello osmith, Jenkins Builder, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-pcu/+/22383 to look at the new patch set (#2). Change subject: gprs_pcu: Use libosmocore osmo_cgi_ps_cmp API ...................................................................... gprs_pcu: Use libosmocore osmo_cgi_ps_cmp API it was noticed that gprs_pcu_get_bts_by_cgi_ps() sometimes failed to return the BTS even if the CGI-PS fields matched, probably due to memcmp checking too padding bytes which may not be zero-initialized in one of the two memory regions being checked. Let's be on the safe side and use libosmocore APIs to check them. Depends: libosmocore.git Change-Id I00e329bc5be8674b30267dec238e7656ddfc21db Change-Id: I7c8ee2c447634e45b367bb8f84adf0140ae48591 --- M src/gprs_pcu.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/83/22383/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22383 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I7c8ee2c447634e45b367bb8f84adf0140ae48591 Gerrit-Change-Number: 22383 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: osmith Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 19:45:29 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 22 Jan 2021 19:45:29 +0000 Subject: Change in osmo-pcu[master]: Introduce NACC support In-Reply-To: References: Message-ID: Hello Jenkins Builder, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-pcu/+/22385 to look at the new patch set (#3). Change subject: Introduce NACC support ...................................................................... Introduce NACC support A new nacc_fsm is introduced per MS object, with its partner priv structure struct nacc_fsm_ctx, which exists and is available in the MS object only during the duration of the NACC procedure. The NACC context is created on an MS whenever a Pkt Cell Change Notification is received on Uplink RLCMAC, which asks for neighbor information of a given ARFCN+BSIC. First, the target ARFCN+BSIC needs to be translated into a CGI-PS (RAC+CI) address. That's done by asking the BSC through the Neighbour Resolution Service available in osmo-bsc using the CTRL interface. Once the CGI-PS of the target cell is known, PCU starts a RIM RAN-INFO request against the SGSN (which will route the request as needed), and wait for a response containing the SI bits from the target cell. After the SI bis are received, the scheduler is isntructed to eventually poll a TBF for the MS originating the MS, so that we can send the SI bits encapsulated into multiple Packet Neighbor Cell Data messages on the downlink. One all the SI bits are sent, the scheduler is instructed to send a Packet Cell Change Continue message. Once the message above has been sent, the FSM autodestroys itself. Caches are also introduced in this patch which allows for re-using recently known translations ARFCN+BSIC -> CGI-PS and CGI-PS -> SI_INFO respectively. Change-Id: Id35f40d05f3e081f32fddbf1fa34cb338db452ca --- M configure.ac M src/Makefile.am M src/bts.cpp M src/bts.h M src/encoding.cpp M src/encoding.h M src/gprs_bssgp_rim.c M src/gprs_debug.cpp M src/gprs_debug.h M src/gprs_ms.c M src/gprs_ms.h M src/gprs_pcu.c M src/gprs_pcu.h M src/gprs_rlcmac_sched.cpp A src/nacc_fsm.c A src/nacc_fsm.h A src/neigh_cache.c A src/neigh_cache.h M src/pcu_vty.c M src/pdch.cpp M src/pdch.h M src/tbf.cpp M src/tbf.h M tests/Makefile.am 24 files changed, 1,346 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/85/22385/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22385 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Id35f40d05f3e081f32fddbf1fa34cb338db452ca Gerrit-Change-Number: 22385 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 19:49:04 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 22 Jan 2021 19:49:04 +0000 Subject: Change in osmo-pcu[master]: WIP: Implement NACC In-Reply-To: References: Message-ID: pespin has abandoned this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/21745 ) Change subject: WIP: Implement NACC ...................................................................... Abandoned superseeded by https://gerrit.osmocom.org/c/osmo-pcu/+/22385 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/21745 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Icac5cfe93bcad0e18e5c9380d4e82233856633aa Gerrit-Change-Number: 21745 Gerrit-PatchSet: 5 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-MessageType: abandon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 19:49:25 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 22 Jan 2021 19:49:25 +0000 Subject: Change in osmo-pcu[master]: WIP: Introduce NACC support In-Reply-To: References: Message-ID: pespin has abandoned this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22338 ) Change subject: WIP: Introduce NACC support ...................................................................... Abandoned Superseeded by https://gerrit.osmocom.org/c/osmo-pcu/+/22385 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22338 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ife6e4a086d58d49676d12b6984f63079ec472e79 Gerrit-Change-Number: 22338 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: abandon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 19:51:14 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 22 Jan 2021 19:51:14 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Introduce test TC_mt_ping_pong_with_dl_racap_egprs_only In-Reply-To: References: Message-ID: pespin has abandoned this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/16687 ) Change subject: pcu: Introduce test TC_mt_ping_pong_with_dl_racap_egprs_only ...................................................................... Abandoned -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/16687 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I96e0d28bed749ef657f0b68d0beee3f8471ab3e0 Gerrit-Change-Number: 16687 Gerrit-PatchSet: 6 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: abandon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 19:53:31 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 22 Jan 2021 19:53:31 +0000 Subject: Change in osmo-cbc[master]: Add simplistic cbc-apitool.py as example on how to use the REST API In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22388 ) Change subject: Add simplistic cbc-apitool.py as example on how to use the REST API ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22388 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: I6cbc30a3f8bf833fea785437488aed8b8af2fcbc Gerrit-Change-Number: 22388 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 22 Jan 2021 19:53:31 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 19:53:35 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 22 Jan 2021 19:53:35 +0000 Subject: Change in osmo-cbc[master]: Add RPM spec file In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22389 ) Change subject: Add RPM spec file ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22389 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: I79e04228e8034e0d50a44f54c36363074fc01995 Gerrit-Change-Number: 22389 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 22 Jan 2021 19:53:35 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 19:53:42 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 22 Jan 2021 19:53:42 +0000 Subject: Change in osmo-cbc[master]: Add README.md file In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22390 ) Change subject: Add README.md file ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22390 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: Ib2a019290a80d67e26875d972f6a8ee700f73bb6 Gerrit-Change-Number: 22390 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 22 Jan 2021 19:53:42 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 19:53:43 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 22 Jan 2021 19:53:43 +0000 Subject: Change in osmo-cbc[master]: Add simplistic cbc-apitool.py as example on how to use the REST API In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22388 ) Change subject: Add simplistic cbc-apitool.py as example on how to use the REST API ...................................................................... Add simplistic cbc-apitool.py as example on how to use the REST API Change-Id: I6cbc30a3f8bf833fea785437488aed8b8af2fcbc --- M contrib/Makefile.am A contrib/cbc-apitool.py 2 files changed, 132 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/contrib/Makefile.am b/contrib/Makefile.am index 3439c97..928af00 100644 --- a/contrib/Makefile.am +++ b/contrib/Makefile.am @@ -1 +1,4 @@ SUBDIRS = systemd + +EXTRA_DIST = cbc-apitool.py \ + $(NULL) diff --git a/contrib/cbc-apitool.py b/contrib/cbc-apitool.py new file mode 100755 index 0000000..1b68386 --- /dev/null +++ b/contrib/cbc-apitool.py @@ -0,0 +1,129 @@ +#!/usr/bin/env python3 +# +# (C) 2020 by Harald Welte +# +# SPDX-License-Identifier: MIT +# +# This is a simplistic program to show how the REST API of osmo-cbc can be used to +# create and delete Cell Broadcast Messages +# +# A lot of the parameters are currently hard-coded, see the 'js' variable definitions +# below. + +import sys +import argparse +import requests + + +def build_url(suffix): + BASE_PATH= "/api/ecbe/v1" + return "http://%s:%u%s%s" % (server_host, server_port, BASE_PATH, suffix) + + +def rest_post(suffix, js = None): + url = build_url(suffix) + if verbose: + print("POST %s (%s)" % (url, str(js))) + resp = requests.post(url, json=js) + if not resp.ok: + print("POST failed") + +def rest_delete(suffix, js = None): + url = build_url(suffix) + if verbose: + print("DELETE %s (%s)" % (url, str(js))) + resp = requests.delete(url, json=js) + if not resp.ok: + print("DELETE failed " + str(resp)) + + + +def main(argv): + global server_port, server_host, verbose + + parser = argparse.ArgumentParser() + parser.add_argument("-H", "--host", help="Host to connect to", default="localhost") + parser.add_argument("-p", "--port", help="TCP port to connect to", default=12345) + parser.add_argument("-v", "--verbose", help="increase output verbosity", action='count', default=0) + + group = parser.add_mutually_exclusive_group() + group.add_argument("-c", "--create-cbs", type=int, nargs=1, metavar=('msg_id')) + group.add_argument("-e", "--create-etws", type=int, nargs=1, metavar=('msg_id')) + group.add_argument("-d", "--delete", type=int, nargs=1, metavar=('msg_id')) + + args = parser.parse_args() + + server_host = args.host + server_port = args.port + verbose = args.verbose + + if args.create_cbs: + js = { + 'cbe_name': "cbc_apitool", + 'category': "normal", + 'repetition_period': 5, + 'num_of_bcast': 888, + 'scope': { + 'scope_plmn': { } + }, + 'smscb_message': { + 'message_id': int(args.create_cbs[0]), + 'serial_nr': { + 'serial_nr_decoded': { + 'geo_scope': "plmn_wide", + 'msg_code': 768, + 'update_nr': 0 + } + }, + 'payload': { + 'payload_decoded': { + 'character_set': "gsm", + #'language': 'en', + #'data_utf8': "Mahlzeit!" + 'data_utf8': "Mahlzeit1 Mahlzeit2 Mahlzeit3 Mahlzeit4 Mahlzeit5 Mahlzeit6 Mahlzeit7 Mahlzeit8" + #'data_utf8': "Mahlzeit1 Mahlzeit2 Mahlzeit3 Mahlzeit4 Mahlzeit5 Mahlzeit6 Mahlzeit7 Mahlzeit8 Mahlzeit9 Mahlzeit10 Mahlzeti11 Mahlzeit12 Mahlzeit13 Mahlzeit14 Mahlzeit15 Mahlzeit16 Mahlzeit17 Mahlzeit18 Mahlzeit19 Mahlzeit20 Mahlzeit21 Mahlzeit22 Mahlzeit23 Mahlzeit24 Mahlzeit25 Mahlzeit26 Mahlzeit27 Mahlzeit28" + } + } + } + } + rest_post("/message", js); + + elif args.create_etws: + js = { + 'cbe_name': "cbc_apitool", + 'category': "normal", + 'repetition_period': 5, + 'num_of_bcast': 999, + 'scope': { + 'scope_plmn': { } + }, + 'smscb_message': { + 'message_id': int(args.create_etws[0]), + 'serial_nr': { + 'serial_nr_decoded': { + 'geo_scope': "plmn_wide", + 'msg_code': 768, + 'update_nr': 0 + } + }, + 'payload': { + 'payload_etws': { + 'warning_type': { + 'warning_type_decoded': 'earthquake' + }, + 'emergency_user_alert': True, + 'popup_on_display': True + } + } + } + } + rest_post("/message", js); + + elif args.delete: + rest_delete("/message/%u" % (args.delete[0])) + else: + print("No operation?!"); + + +if __name__ == "__main__": + main(sys.argv) -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22388 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: I6cbc30a3f8bf833fea785437488aed8b8af2fcbc Gerrit-Change-Number: 22388 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 19:53:44 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 22 Jan 2021 19:53:44 +0000 Subject: Change in osmo-cbc[master]: Add RPM spec file In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22389 ) Change subject: Add RPM spec file ...................................................................... Add RPM spec file Change-Id: I79e04228e8034e0d50a44f54c36363074fc01995 --- M .gitignore M Makefile.am M configure.ac A contrib/osmo-cbc.spec.in 4 files changed, 96 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/.gitignore b/.gitignore index 925f48d..d2b3af9 100644 --- a/.gitignore +++ b/.gitignore @@ -58,3 +58,5 @@ doc/manuals/common doc/manuals/build doc/manuals/vty/cbc_vty_reference.xml + +contrib/osmo-cbc.spec diff --git a/Makefile.am b/Makefile.am index d292296..7a549f2 100644 --- a/Makefile.am +++ b/Makefile.am @@ -3,7 +3,7 @@ AM_CPPFLAGS = $(all_includes) -I$(top_srcdir)/include SUBDIRS = src doc contrib tests -EXTRA_DIST = .version git-version-gen +EXTRA_DIST = .version git-version-gen contrib/osmo-cbc.spec.in AM_DISTCHECK_CONFIGURE_FLAGS = \ --with-systemdsystemunitdir=$$dc_install_base/$(systemdsystemunitdir) diff --git a/configure.ac b/configure.ac index 342eb84..2a141a6 100644 --- a/configure.ac +++ b/configure.ac @@ -168,6 +168,7 @@ AC_OUTPUT( src/Makefile contrib/Makefile + contrib/osmo-cbc.spec tests/Makefile doc/Makefile doc/examples/Makefile diff --git a/contrib/osmo-cbc.spec.in b/contrib/osmo-cbc.spec.in new file mode 100644 index 0000000..ca876c8 --- /dev/null +++ b/contrib/osmo-cbc.spec.in @@ -0,0 +1,92 @@ +# +# spec file for package osmo-cbc +# +# Copyright (c) 2021, Harald Welte +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +## Disable LTO for now since it breaks compilation of the tests +## https://osmocom.org/issues/4113 +%define _lto_cflags %{nil} + +Name: osmo-cbc +Version: @VERSION@ +Release: 0 +Summary: OsmoCBC: Osmocom's Cell Broadcast Centre for 3GPP mobile networks +License: AGPL-3.0-or-later AND GPL-2.0-or-later +Group: Hardware/Mobile +URL: https://osmocom.org/projects/osmo-cbc +Source: %{name}-%{version}.tar.xz +BuildRequires: automake >= 1.9 +BuildRequires: libtool >= 2 +BuildRequires: pkgconfig >= 0.20 +%if 0%{?suse_version} +BuildRequires: systemd-rpm-macros +%endif +BuildRequires: pkgconfig(libcrypto) >= 0.9.5 +BuildRequires: pkgconfig(libosmo-mgcp-client) >= 1.5.0 +BuildRequires: pkgconfig(libosmo-netif) >= 0.6.0 +BuildRequires: pkgconfig(libosmo-sccp) >= 0.10.0 +BuildRequires: pkgconfig(libosmo-sigtran) >= 0.10.0 +BuildRequires: pkgconfig(libosmoabis) >= 0.6.0 +BuildRequires: pkgconfig(libosmocore) >= 1.2.0 +BuildRequires: pkgconfig(libosmoctrl) >= 1.2.0 +BuildRequires: pkgconfig(libosmogb) +BuildRequires: pkgconfig(libosmogsm) >= 1.2.0 +BuildRequires: pkgconfig(libosmovty) >= 1.2.0 +BuildRequires: pkgconfig(talloc) +%{?systemd_requires} + +%description +OsmoCBC: Osmocom's Cell Broadcast Centre for 3GPP mobile networks. + +%prep +%setup -q + +%build +echo "%{version}" >.tarball-version +autoreconf -fi +%configure \ + --docdir=%{_docdir}/%{name} \ + --with-systemdsystemunitdir=%{_unitdir} +make %{?_smp_mflags} + +%install +%make_install + +%if 0%{?suse_version} +%preun +%service_del_preun %{name}.service + +%postun +%service_del_postun %{name}.service + +%pre +%service_add_pre %{name}.service + +%post +%service_add_post %{name}.service +%endif + +%check +make %{?_smp_mflags} check || (find . -name testsuite.log -exec cat {} +) + +%files +%license COPYING +%doc AUTHORS README +%{_bindir}/osmo-cbc +%dir %{_docdir}/%{name}/examples +%dir %{_docdir}/%{name}/examples/osmo-cbc +%{_docdir}/%{name}/examples/osmo-cbc/osmo-cbc*.cfg +%dir %{_sysconfdir}/osmocom +%config(noreplace) %{_sysconfdir}/osmocom/osmo-cbc.cfg +%{_unitdir}/%{name}.service + +%changelog -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22389 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: I79e04228e8034e0d50a44f54c36363074fc01995 Gerrit-Change-Number: 22389 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 19:53:45 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 22 Jan 2021 19:53:45 +0000 Subject: Change in osmo-cbc[master]: Add README.md file In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22390 ) Change subject: Add README.md file ...................................................................... Add README.md file Change-Id: Ib2a019290a80d67e26875d972f6a8ee700f73bb6 --- M Makefile.am A README.md 2 files changed, 70 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/Makefile.am b/Makefile.am index 7a549f2..4037bb1 100644 --- a/Makefile.am +++ b/Makefile.am @@ -3,7 +3,7 @@ AM_CPPFLAGS = $(all_includes) -I$(top_srcdir)/include SUBDIRS = src doc contrib tests -EXTRA_DIST = .version git-version-gen contrib/osmo-cbc.spec.in +EXTRA_DIST = .version README.md git-version-gen contrib/osmo-cbc.spec.in AM_DISTCHECK_CONFIGURE_FLAGS = \ --with-systemdsystemunitdir=$$dc_install_base/$(systemdsystemunitdir) diff --git a/README.md b/README.md new file mode 100644 index 0000000..12a6b1f --- /dev/null +++ b/README.md @@ -0,0 +1,69 @@ +osmo-cbc - Osmocom Cell Broadcast Centre +======================================== + +This repository contains a C-language implementation of a minimal +3GPP Cell Broadcast Centre (CBC). It is part of the +[Osmocom](https://osmocom.org/) Open Source Mobile Communications +project. + +A Cell Broadcast Centre is the central network element of a cellular network +for distribution of Cell Broadcast and Emergency messages. + +This code implements + * the CBSP protocol on the CBC-BSC interface + * a custom HTTP/REST based interface for external users to create/delete CBS messages + +We plan to add support for the following features in the future: + * the SABP protocol on the CBC-RNC (or CBC-HNBGW) interface for UMTS support + * the SBcAP protocol on the CBC-MME interface for LTE support + +Homepage +-------- + +The official homepage of the project is +https://osmocom.org/projects/osmo-cbc/wiki + +GIT Repository +-------------- + +You can clone from the official osmo-cbc.git repository using + + git clone https://git.osmocom.org/osmo-cbc.git + +There is a cgit interface at https://git.osmocom.org/osmo-cbc/ + +Documentation +------------- + +User Manuals and VTY reference manuals are [optionally] built in PDF form +as part of the build process. + +Pre-rendered PDF version of the current "master" can be found at +[User Manual](https://ftp.osmocom.org/docs/latest/osmocbc-usermanual.pdf) +as well as the [VTY Reference Manual for osmo-cbc](https://ftp.osmocom.org/docs/latest/osmocbc-vty-reference.pdf) + +Mailing List +------------ + +Discussions related to osmo-cbc are happening on the +openbsc at lists.osmocom.org mailing list, please see +https://lists.osmocom.org/mailman/listinfo/openbsc for subscription +options and the list archive. + +Please observe the [Osmocom Mailing List +Rules](https://osmocom.org/projects/cellular-infrastructure/wiki/Mailing_List_Rules) +when posting. + +Contributing +------------ + +Our coding standards are described at +https://osmocom.org/projects/cellular-infrastructure/wiki/Coding_standards + +We us a gerrit based patch submission/review process for managing +contributions. Please see +https://osmocom.org/projects/cellular-infrastructure/wiki/Gerrit for +more details + +The current patch queue for osmo-cbc can be seen at +https://gerrit.osmocom.org/#/q/project:osmo-cbc+status:open -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22390 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: Ib2a019290a80d67e26875d972f6a8ee700f73bb6 Gerrit-Change-Number: 22390 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 19:57:56 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 22 Jan 2021 19:57:56 +0000 Subject: Change in osmo-sgsn[master]: sgsn_rim: Add routing for (GERAN) BSSGP RIM messages In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22110 ) Change subject: sgsn_rim: Add routing for (GERAN) BSSGP RIM messages ...................................................................... Patch Set 4: (2 comments) I would also add some logging. * LOGL_DEBUG whenever RIM is received + transmitted? * LOGL_NOTICE whenever a destination cannot be found? https://gerrit.osmocom.org/c/osmo-sgsn/+/22110/4/src/sgsn/sgsn_rim.c File src/sgsn/sgsn_rim.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/22110/4/src/sgsn/sgsn_rim.c at 49 PS4, Line 49: retu shouldn't we return a RIM-ERROR or RIM-APPLICATION-ERROR here? IMHO RIM is really one layer above/inside BSSGP, so a BSSGP STATUS doesn't look like the best response. https://gerrit.osmocom.org/c/osmo-sgsn/+/22110/4/src/sgsn/sgsn_rim.c at 54 PS4, Line 54: retu likewise here. Isn't there some RIM specific error we can return indicationg that the destination doesn't exist? -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22110 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I6fde8ab8955660b48000ca1b650cfc7c7b2e24ba Gerrit-Change-Number: 22110 Gerrit-PatchSet: 4 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Fri, 22 Jan 2021 19:57:56 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 19:58:44 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 22 Jan 2021 19:58:44 +0000 Subject: Change in libosmocore[master]: gprs_bssgp_rim: add value strings for enum bssgp_nacc_cause In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22380 ) Change subject: gprs_bssgp_rim: add value strings for enum bssgp_nacc_cause ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22380 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I3354699555569c2b0bd1b4313cffd32a0cbeffe9 Gerrit-Change-Number: 22380 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 22 Jan 2021 19:58:44 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 19:59:05 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 22 Jan 2021 19:59:05 +0000 Subject: Change in libosmocore[master]: gprs_bssgp_rim: add value strings for enum bssgp_ran_inf_app_id In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22384 ) Change subject: gprs_bssgp_rim: add value strings for enum bssgp_ran_inf_app_id ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22384 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I581d1176f82d6657d6136c32daa9c76dffb802a6 Gerrit-Change-Number: 22384 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 22 Jan 2021 19:59:05 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 19:59:24 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 22 Jan 2021 19:59:24 +0000 Subject: Change in libosmocore[master]: gprs_bssgp_rim: add value strings for enum bssgp_rim_routing_info_discr In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22386 ) Change subject: gprs_bssgp_rim: add value strings for enum bssgp_rim_routing_info_discr ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22386 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Idd06d2e3df0d60409a89a474018a9d97f7772090 Gerrit-Change-Number: 22386 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 22 Jan 2021 19:59:24 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 19:59:31 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 22 Jan 2021 19:59:31 +0000 Subject: Change in libosmocore[master]: gprs_bssgp_rim: add value strings for enum bssgp_nacc_cause In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22380 ) Change subject: gprs_bssgp_rim: add value strings for enum bssgp_nacc_cause ...................................................................... gprs_bssgp_rim: add value strings for enum bssgp_nacc_cause Change-Id: I3354699555569c2b0bd1b4313cffd32a0cbeffe9 Related: SYS#5103 --- M include/osmocom/gprs/gprs_bssgp_rim.h M src/gb/gprs_bssgp_rim.c M src/gb/libosmogb.map 3 files changed, 18 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/include/osmocom/gprs/gprs_bssgp_rim.h b/include/osmocom/gprs/gprs_bssgp_rim.h index 7e9efcd..5e5966e 100644 --- a/include/osmocom/gprs/gprs_bssgp_rim.h +++ b/include/osmocom/gprs/gprs_bssgp_rim.h @@ -96,6 +96,12 @@ BSSGP_NACC_CAUSE_SIPSI_SET_ERR, }; +extern const struct value_string bssgp_nacc_cause_strs[]; + +/*! Obtain a human-readable string for NACC Cause code */ +static inline const char *bssgp_nacc_cause_str(enum bssgp_nacc_cause val) +{ return get_value_string(bssgp_nacc_cause_strs, val); } + /* 3GPP TS 48.018, table 11.3.64.1.a, Application Error Container coding for NACC */ struct bssgp_app_err_cont_nacc { enum bssgp_nacc_cause nacc_cause; diff --git a/src/gb/gprs_bssgp_rim.c b/src/gb/gprs_bssgp_rim.c index 23fb3a0..67e0116 100644 --- a/src/gb/gprs_bssgp_rim.c +++ b/src/gb/gprs_bssgp_rim.c @@ -270,6 +270,17 @@ return (int)(buf_ptr - buf); } +/* 3GPP TS 48.018, table 11.3.64.1.b, NACC Cause coding */ +const struct value_string bssgp_nacc_cause_strs[] = { + { BSSGP_NACC_CAUSE_UNSPEC, "unspecified error" }, + { BSSGP_NACC_CAUSE_SYNTAX_ERR, "syntax error in app container" }, + { BSSGP_NACC_CAUSE_RPRT_CELL_MISSMTCH, "reporting cell id mismatch" }, + { BSSGP_NACC_CAUSE_SIPSI_TYPE_ERR, "SI/PSI type error" }, + { BSSGP_NACC_CAUSE_SIPSI_LEN_ERR, "SI/PSI inconsistent length" }, + { BSSGP_NACC_CAUSE_SIPSI_SET_ERR, "inconsistent set of msg" }, + { 0, NULL } +}; + /*! Decode a Application Error Container for NACC (3GPP TS 48.018, section 11.3.64.1). * \param[out] user provided memory for decoded data struct. * \param[in] buf user provided memory with the encoded value data of the IE. diff --git a/src/gb/libosmogb.map b/src/gb/libosmogb.map index 763ddc6..dc9df3a 100644 --- a/src/gb/libosmogb.map +++ b/src/gb/libosmogb.map @@ -29,6 +29,7 @@ bssgp_msgb_copy; bssgp_msgb_tlli_put; bssgp_msgb_ra_put; +bssgp_nacc_cause_strs; bssgp_parse_cell_id; bssgp_parse_rim_pdu; bssgp_parse_rim_ri; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22380 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I3354699555569c2b0bd1b4313cffd32a0cbeffe9 Gerrit-Change-Number: 22380 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 19:59:32 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 22 Jan 2021 19:59:32 +0000 Subject: Change in libosmocore[master]: gprs_bssgp_rim: add value strings for enum bssgp_ran_inf_app_id In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22384 ) Change subject: gprs_bssgp_rim: add value strings for enum bssgp_ran_inf_app_id ...................................................................... gprs_bssgp_rim: add value strings for enum bssgp_ran_inf_app_id Change-Id: I581d1176f82d6657d6136c32daa9c76dffb802a6 Related: SYS#5103 --- M include/osmocom/gprs/gprs_bssgp_rim.h M src/gb/gprs_bssgp_rim.c M src/gb/libosmogb.map 3 files changed, 17 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/include/osmocom/gprs/gprs_bssgp_rim.h b/include/osmocom/gprs/gprs_bssgp_rim.h index 5e5966e..48bf047 100644 --- a/include/osmocom/gprs/gprs_bssgp_rim.h +++ b/include/osmocom/gprs/gprs_bssgp_rim.h @@ -123,6 +123,12 @@ BSSGP_RAN_INF_APP_ID_UTRA_SI = 5, }; +extern const struct value_string bssgp_ran_inf_app_id_strs[]; + +/*! Obtain a human-readable string for RIM Application Identity code */ +static inline const char *bssgp_ran_inf_app_id_str(enum bssgp_ran_inf_app_id val) +{ return get_value_string(bssgp_ran_inf_app_id_strs, val); } + /* 3GPP TS 48.018, table 11.3.62a.1.b: RAN-INFORMATION-REQUEST RIM Container Contents */ struct bssgp_ran_inf_req_rim_cont { enum bssgp_ran_inf_app_id app_id; diff --git a/src/gb/gprs_bssgp_rim.c b/src/gb/gprs_bssgp_rim.c index 67e0116..5ef8375 100644 --- a/src/gb/gprs_bssgp_rim.c +++ b/src/gb/gprs_bssgp_rim.c @@ -385,6 +385,16 @@ return buf_ptr; } +/* 3GPP TS 48.018, table 11.3.61.b: RIM Application Identity coding */ +const struct value_string bssgp_ran_inf_app_id_strs[] = { + { BSSGP_RAN_INF_APP_ID_NACC, "Network Assisted Cell Change (NACC)" }, + { BSSGP_RAN_INF_APP_ID_SI3, "System Information 3 (SI3)" }, + { BSSGP_RAN_INF_APP_ID_MBMS, "MBMS data channel" }, + { BSSGP_RAN_INF_APP_ID_SON, "SON Transfer" }, + { BSSGP_RAN_INF_APP_ID_UTRA_SI, "UTRA System Information (UTRA SI)" }, + { 0, NULL } +}; + /*! Decode a RAN Information Request RIM Container (3GPP TS 48.018, table 11.3.62a.1.b). * \param[out] user provided memory for decoded data struct. * \param[in] buf user provided memory with the encoded value data of the IE. diff --git a/src/gb/libosmogb.map b/src/gb/libosmogb.map index dc9df3a..23d52a2 100644 --- a/src/gb/libosmogb.map +++ b/src/gb/libosmogb.map @@ -33,6 +33,7 @@ bssgp_parse_cell_id; bssgp_parse_rim_pdu; bssgp_parse_rim_ri; +bssgp_ran_inf_app_id_strs; bssgp_set_bssgp_callback; bssgp_tx_bvc_block; bssgp_tx_bvc_reset; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22384 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I581d1176f82d6657d6136c32daa9c76dffb802a6 Gerrit-Change-Number: 22384 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 19:59:32 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 22 Jan 2021 19:59:32 +0000 Subject: Change in libosmocore[master]: gprs_bssgp_rim: add value strings for enum bssgp_rim_routing_info_discr In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22386 ) Change subject: gprs_bssgp_rim: add value strings for enum bssgp_rim_routing_info_discr ...................................................................... gprs_bssgp_rim: add value strings for enum bssgp_rim_routing_info_discr Change-Id: Idd06d2e3df0d60409a89a474018a9d97f7772090 Related: SYS#5103 --- M include/osmocom/gprs/gprs_bssgp_rim.h M src/gb/gprs_bssgp_rim.c M src/gb/libosmogb.map 3 files changed, 14 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/include/osmocom/gprs/gprs_bssgp_rim.h b/include/osmocom/gprs/gprs_bssgp_rim.h index 48bf047..0810c8e 100644 --- a/include/osmocom/gprs/gprs_bssgp_rim.h +++ b/include/osmocom/gprs/gprs_bssgp_rim.h @@ -33,6 +33,12 @@ BSSGP_RIM_ROUTING_INFO_EUTRAN, }; +extern const struct value_string bssgp_rim_routing_info_discr_strs[]; + +/*! Obtain a human-readable string for NACC Cause code */ +static inline const char *bssgp_rim_routing_info_discr_str(enum bssgp_rim_routing_info_discr val) +{ return get_value_string(bssgp_rim_routing_info_discr_strs, val); } + /*! BSSGP RIM Routing information, see also 3GPP TS 48.018, section 11.3.70 */ struct bssgp_rim_routing_info { enum bssgp_rim_routing_info_discr discr; diff --git a/src/gb/gprs_bssgp_rim.c b/src/gb/gprs_bssgp_rim.c index 5ef8375..844268a 100644 --- a/src/gb/gprs_bssgp_rim.c +++ b/src/gb/gprs_bssgp_rim.c @@ -41,6 +41,13 @@ * (3GPP TS 48.018, sub-clause 11.3.9) but without IE and length octets. */ #define REP_CELL_ID_LEN 8 +const struct value_string bssgp_rim_routing_info_discr_strs[] = { + { BSSGP_RIM_ROUTING_INFO_GERAN, "GERAN cell" }, + { BSSGP_RIM_ROUTING_INFO_UTRAN, "UTRAN RNC" }, + { BSSGP_RIM_ROUTING_INFO_EUTRAN, "E-UTRAN eNodeB/HeNB" }, + { 0, NULL } +}; + /*! Parse a RIM Routing information IE (3GPP TS 48.018, chapter 11.3.70). * \param[out] ri user provided memory to store the parsed results. * \param[in] buf input buffer of the value part of the IE. diff --git a/src/gb/libosmogb.map b/src/gb/libosmogb.map index 23d52a2..b4d7fdb 100644 --- a/src/gb/libosmogb.map +++ b/src/gb/libosmogb.map @@ -34,6 +34,7 @@ bssgp_parse_rim_pdu; bssgp_parse_rim_ri; bssgp_ran_inf_app_id_strs; +bssgp_rim_routing_info_discr_strs; bssgp_set_bssgp_callback; bssgp_tx_bvc_block; bssgp_tx_bvc_reset; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22386 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Idd06d2e3df0d60409a89a474018a9d97f7772090 Gerrit-Change-Number: 22386 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 20:00:40 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 22 Jan 2021 20:00:40 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Fix pooling expectations of TC_bvc_reset_*_from_bss In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22361 ) Change subject: gbproxy: Fix pooling expectations of TC_bvc_reset_*_from_bss ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22361 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I34ed4bffce564dbaf08f9388bd5247351dd0725e Gerrit-Change-Number: 22361 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Fri, 22 Jan 2021 20:00:40 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 20:00:43 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 22 Jan 2021 20:00:43 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Fix pooling expectations of TC_bvc_reset_*_from_bss In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22361 ) Change subject: gbproxy: Fix pooling expectations of TC_bvc_reset_*_from_bss ...................................................................... gbproxy: Fix pooling expectations of TC_bvc_reset_*_from_bss With pooling enabled these tests now need to verify that the reset/block is propagated to all SGSNs in the pool. Change-Id: I34ed4bffce564dbaf08f9388bd5247351dd0725e Fixes: OS#4964 --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 61 insertions(+), 16 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index e3e61f4..ddcd9cb 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -342,6 +342,7 @@ var boolean g_use_echo := false; var ro_integer g_roi := {}; + var roro_integer g_roroi := {}; timer g_Tguard; }; @@ -2464,7 +2465,14 @@ /*********************************************************************** * BVC-RESET procedure ***********************************************************************/ - +private altstep as_count_bvc_reset(integer sgsn_idx, BssgpBvci bvci, inout roro_integer roroi) +runs on test_CT { + var BSSGP_BVC_CT sgsn_bvc_ct := f_get_sgsn_bvc_ct(sgsn_idx, bvci); + [] SGSN_MGMT.receive(BssgpResetIndication:{bvci}) from sgsn_bvc_ct { + roroi[sgsn_idx] := roroi[sgsn_idx] & { bvci }; + repeat; + } +} private altstep as_ignore_status(BSSGP_BVC_MGMT_PT pt) { [] pt.receive(BssgpStatusIndication:?) { repeat; } } @@ -2481,22 +2489,51 @@ var BSSGP_BVC_CT pcu_bvc_ct := g_pcu[pcu_idx].vc_BSSGP_BVC[bvc_idx]; var BssgpBvcConfig bvc_cfg := g_pcu[pcu_idx].cfg.bvc[bvc_idx]; var Nsei nsei_pcu := g_pcu[pcu_idx].cfg.nsei; - var BSSGP_BVC_CT sgsn_bvc_ct := f_get_sgsn_bvc_ct(0, bvc_cfg.bvci); - var default d; + var ro_default defaults; + var integer i; SGSN_MGMT.clear; PCU_MGMT.clear; + for (i := 0; i < lengthof(mp_nsconfig_sgsn); i := i+1) { + g_roroi[i] := {}; + } + /* block the PTP BVC from the PCU side */ PCU_MGMT.send(BssgpResetRequest:{cause:=BSSGP_CAUSE_OM_INTERVENTION}) to pcu_bvc_ct; + /* expect state on both PCU and SGSN side to change */ - d := activate(as_ignore_status(SGSN_MGMT)); - interleave { - [] PCU_MGMT.receive(tr_BssgpStsInd(nsei_pcu, bvc_cfg.bvci, BVC_S_BLOCKED)) from pcu_bvc_ct; - [] SGSN_MGMT.receive(BssgpResetIndication:{bvc_cfg.bvci}) from sgsn_bvc_ct; + defaults := { activate(as_ignore_status(SGSN_MGMT)) }; + + /* Activate altsteps: One for each SGSN */ + for (i := 0; i < lengthof(g_sgsn); i := i+1) { + var default d := activate(as_count_bvc_reset(i, bvc_cfg.bvci, g_roroi)); + defaults := defaults & { d }; } - deactivate(d); + + timer T := 3.0; + T.start; + alt { + [] PCU_MGMT.receive(tr_BssgpStsInd(nsei_pcu, bvc_cfg.bvci, BVC_S_BLOCKED)) from pcu_bvc_ct { + g_roi := g_roi & { bvc_cfg.bvci }; + repeat; + } + [] T.timeout; + } + + for (i := 0; i < lengthof(defaults); i := i+1) { + deactivate(defaults[i]); + } + + /* Check if BVC-RESET was received at all SGSNs */ + for (i := 0; i < lengthof(g_sgsn); i := i+1) { + if (not ro_integer_contains(g_roroi[i], bvc_cfg.bvci)) { + setverdict(fail, "Missing SGSN[", i, "] BVC-BLOCK of BVCI=", bvc_cfg.bvci); + } + } + setverdict(pass); + f_cleanup(); } /* Send a BVC-RESET for a PTP BVC from the BSS side: expect it to propagate */ testcase TC_bvc_reset_ptp_from_bss() runs on test_CT @@ -2507,11 +2544,11 @@ f_cleanup(); } -private altstep as_count_bvc_block(integer sgsn_idx, BssgpBvci bvci, inout ro_integer roi) +private altstep as_count_bvc_block(integer sgsn_idx, BssgpBvci bvci, inout roro_integer roroi) runs on test_CT { var BSSGP_BVC_CT sgsn_bvc_ct := f_get_sgsn_bvc_ct(sgsn_idx, bvci); [] SGSN_MGMT.receive(tr_BssgpStsInd(?, bvci, BVC_S_BLOCKED)) from sgsn_bvc_ct { - roi := roi & { bvci }; + roroi[sgsn_idx] := roroi[sgsn_idx] & { bvci }; repeat; } } @@ -2521,15 +2558,21 @@ f_init(); f_sleep(3.0); + for (var integer i := 0; i < lengthof(mp_nsconfig_sgsn); i := i+1) { + g_roroi[i] := {}; + } + /* Start BVC-RESET procedure for BVCI=0 */ PCU_MGMT.send(BssgpResetRequest:{cause:=BSSGP_CAUSE_OM_INTERVENTION}) to g_pcu[0].vc_BSSGP; - /* Activate altsteps: One for each PTP BVC within that PCUs NSE */ + /* Activate altsteps: One for each PTP BVC and SGSN within that PCUs NSE */ var ro_default defaults := {}; for (var integer i := 0; i < lengthof(g_pcu[0].cfg.bvc); i := i+1) { var BssgpBvcConfig bvcc := g_pcu[0].cfg.bvc[i]; - var default d := activate(as_count_bvc_block(0, bvcc.bvci, g_roi)); - defaults := defaults & { d }; + for (var integer j := 0; j < lengthof(g_sgsn); j := j+1) { + var default d := activate(as_count_bvc_block(j, bvcc.bvci, g_roroi)); + defaults := defaults & { d }; + } } timer T := 3.0; @@ -2545,11 +2588,13 @@ deactivate(defaults[i]); } - /* check if BVC-block was received on all expected BVC */ + /* check if BVC-block was received on all expected BVC/SGSN */ for (var integer i := 0; i < lengthof(g_pcu[0].cfg.bvc); i := i+1) { var BssgpBvcConfig bvcc := g_pcu[0].cfg.bvc[i]; - if (not ro_integer_contains(g_roi, bvcc.bvci)) { - setverdict(fail, "Missing SGSN-side BVC-BLOCK of BVCI=", bvcc.bvci); + for (var integer j := 0; j < lengthof(g_sgsn); j := j+1) { + if (not ro_integer_contains(g_roroi[j], bvcc.bvci)) { + setverdict(fail, "Missing SGSN[", j, "] BVC-BLOCK of BVCI=", bvcc.bvci); + } } } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22361 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I34ed4bffce564dbaf08f9388bd5247351dd0725e Gerrit-Change-Number: 22361 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 20:01:16 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 22 Jan 2021 20:01:16 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Fix radio status routing by TMSI In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22363 ) Change subject: gbproxy: Fix radio status routing by TMSI ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22363 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ifd64f02fa16b44f8e2e19eb8ba973f50a829ead5 Gerrit-Change-Number: 22363 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 22 Jan 2021 20:01:16 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 20:01:58 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 22 Jan 2021 20:01:58 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Improve log messages in gbproxy_select_sgsn In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22362 ) Change subject: gbproxy: Improve log messages in gbproxy_select_sgsn ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22362 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Id7bc755b90c35ed7c8cfa8408073e2866d639f2d Gerrit-Change-Number: 22362 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 22 Jan 2021 20:01:58 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 20:02:02 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 22 Jan 2021 20:02:02 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Improve log messages in gbproxy_select_sgsn In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22362 ) Change subject: gbproxy: Improve log messages in gbproxy_select_sgsn ...................................................................... gbproxy: Improve log messages in gbproxy_select_sgsn Change-Id: Id7bc755b90c35ed7c8cfa8408073e2866d639f2d Related: OS#4954 --- M src/gbproxy/gb_proxy.c 1 file changed, 3 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/src/gbproxy/gb_proxy.c b/src/gbproxy/gb_proxy.c index edd9f29..b573adc 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -251,8 +251,10 @@ } } else { /* We couldn't get the NRI from the TLLI */ - LOGP(DGPRS, LOGL_ERROR, "Could not extract NRI from local TLLI %u\n", *tlli); + LOGP(DGPRS, LOGL_ERROR, "Could not extract NRI from local TLLI %08x\n", *tlli); } + } else { + LOGP(DGPRS, LOGL_INFO, "TLLI %08x is neither local nor foreign, not routing by NRI\n", *tlli); } } -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22362 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Id7bc755b90c35ed7c8cfa8408073e2866d639f2d Gerrit-Change-Number: 22362 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 20:02:02 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 22 Jan 2021 20:02:02 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Fix radio status routing by TMSI In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22363 ) Change subject: gbproxy: Fix radio status routing by TMSI ...................................................................... gbproxy: Fix radio status routing by TMSI If a radio status message contains a TMSI it should be routed as if it was a TLLI. Convert the TMSI to (foreign) TLLI so NRI-routing works. Both foreign and local TLLIs are routed the same. Fixes: OS#4954 Change-Id: Ifd64f02fa16b44f8e2e19eb8ba973f50a829ead5 --- M src/gbproxy/gb_proxy.c 1 file changed, 2 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/src/gbproxy/gb_proxy.c b/src/gbproxy/gb_proxy.c index b573adc..1dc3114 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -417,6 +417,8 @@ } else if (TLVP_PRESENT(&tp, BSSGP_IE_TMSI)) { /* we treat the TMSI like a TLLI and extract the NRI from it */ tlli = osmo_load32be(TLVP_VAL(&tp, BSSGP_IE_TMSI)); + /* Convert the TMSI into a FOREIGN TLLI so it is routed appropriately */ + tlli = gprs_tmsi2tlli(tlli, TLLI_FOREIGN); rc = gbprox_bss2sgsn_tlli(bss_bvc->cell, msg, &tlli, false); } else if (TLVP_PRESENT(&tp, BSSGP_IE_IMSI)) { /* FIXME: Use the IMSI as selector? */ -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22363 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ifd64f02fa16b44f8e2e19eb8ba973f50a829ead5 Gerrit-Change-Number: 22363 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 20:08:37 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 22 Jan 2021 20:08:37 +0000 Subject: Change in osmo-pcu[master]: Introduce NACC support In-Reply-To: References: Message-ID: Hello Jenkins Builder, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-pcu/+/22385 to look at the new patch set (#4). Change subject: Introduce NACC support ...................................................................... Introduce NACC support A new nacc_fsm is introduced per MS object, with its partner priv structure struct nacc_fsm_ctx, which exists and is available in the MS object only during the duration of the NACC procedure. The NACC context is created on an MS whenever a Pkt Cell Change Notification is received on Uplink RLCMAC, which asks for neighbor information of a given ARFCN+BSIC. First, the target ARFCN+BSIC needs to be translated into a CGI-PS (RAC+CI) address. That's done by asking the BSC through the Neighbour Resolution Service available in osmo-bsc using the CTRL interface. Once the CGI-PS of the target cell is known, PCU starts a RIM RAN-INFO request against the SGSN (which will route the request as needed), and wait for a response containing the SI bits from the target cell. After the SI bis are received, the scheduler is isntructed to eventually poll a TBF for the MS originating the MS, so that we can send the SI bits encapsulated into multiple Packet Neighbor Cell Data messages on the downlink. One all the SI bits are sent, the scheduler is instructed to send a Packet Cell Change Continue message. Once the message above has been sent, the FSM autodestroys itself. Caches are also introduced in this patch which allows for re-using recently known translations ARFCN+BSIC -> CGI-PS and CGI-PS -> SI_INFO respectively. Change-Id: Id35f40d05f3e081f32fddbf1fa34cb338db452ca --- M configure.ac M src/Makefile.am M src/bts.cpp M src/bts.h M src/encoding.cpp M src/encoding.h M src/gprs_bssgp_rim.c M src/gprs_debug.cpp M src/gprs_debug.h M src/gprs_ms.c M src/gprs_ms.h M src/gprs_pcu.c M src/gprs_pcu.h M src/gprs_rlcmac_sched.cpp A src/nacc_fsm.c A src/nacc_fsm.h A src/neigh_cache.c A src/neigh_cache.h M src/pcu_vty.c M src/pdch.cpp M src/pdch.h M src/tbf.cpp M src/tbf.h M tests/Makefile.am 24 files changed, 1,346 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/85/22385/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22385 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Id35f40d05f3e081f32fddbf1fa34cb338db452ca Gerrit-Change-Number: 22385 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 20:13:19 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 22 Jan 2021 20:13:19 +0000 Subject: Change in osmo-pcu[master]: gprs_pcu: Use libosmocore osmo_cgi_ps_cmp API In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22383 ) Change subject: gprs_pcu: Use libosmocore osmo_cgi_ps_cmp API ...................................................................... Patch Set 2: Code-Review+2 Fixed the typo, reapplying the +2 and merging. -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22383 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I7c8ee2c447634e45b367bb8f84adf0140ae48591 Gerrit-Change-Number: 22383 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 22 Jan 2021 20:13:19 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 20:13:21 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 22 Jan 2021 20:13:21 +0000 Subject: Change in osmo-pcu[master]: gprs_pcu: Use libosmocore osmo_cgi_ps_cmp API In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22383 ) Change subject: gprs_pcu: Use libosmocore osmo_cgi_ps_cmp API ...................................................................... gprs_pcu: Use libosmocore osmo_cgi_ps_cmp API it was noticed that gprs_pcu_get_bts_by_cgi_ps() sometimes failed to return the BTS even if the CGI-PS fields matched, probably due to memcmp checking too padding bytes which may not be zero-initialized in one of the two memory regions being checked. Let's be on the safe side and use libosmocore APIs to check them. Depends: libosmocore.git Change-Id I00e329bc5be8674b30267dec238e7656ddfc21db Change-Id: I7c8ee2c447634e45b367bb8f84adf0140ae48591 --- M src/gprs_pcu.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/gprs_pcu.c b/src/gprs_pcu.c index 32259b8..2f18dfd 100644 --- a/src/gprs_pcu.c +++ b/src/gprs_pcu.c @@ -120,7 +120,7 @@ { struct gprs_rlcmac_bts *pos; llist_for_each_entry(pos, &pcu->bts_list, list) { - if (memcmp(&pos->cgi_ps, cgi_ps, sizeof(*cgi_ps)) == 0) + if (osmo_cgi_ps_cmp(&pos->cgi_ps, cgi_ps) == 0) return pos; } return NULL; -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22383 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I7c8ee2c447634e45b367bb8f84adf0140ae48591 Gerrit-Change-Number: 22383 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 20:22:05 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 22 Jan 2021 20:22:05 +0000 Subject: Change in osmo-pcu[master]: Introduce NACC support In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22385 ) Change subject: Introduce NACC support ...................................................................... Patch Set 3: (11 comments) https://gerrit.osmocom.org/c/osmo-pcu/+/22385/3//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-pcu/+/22385/3//COMMIT_MSG at 25 PS3, Line 25: bis bits? not sure what you meant here. Siomply "the SI are received"? https://gerrit.osmocom.org/c/osmo-pcu/+/22385/3//COMMIT_MSG at 26 PS3, Line 26: the MS originating the MS The MS orignating the MS? you mean originating the CCN? https://gerrit.osmocom.org/c/osmo-pcu/+/22385/3/src/gprs_bssgp_rim.c File src/gprs_bssgp_rim.c: https://gerrit.osmocom.org/c/osmo-pcu/+/22385/3/src/gprs_bssgp_rim.c at 104 PS3, Line 104: { should the 'bp' possibly be 'const' here, like all of the pointers derived from it below as local variables? https://gerrit.osmocom.org/c/osmo-pcu/+/22385/3/src/gprs_bssgp_rim.c at 112 PS3, Line 112: possibly some OSMO_ASSERT that it is the right type of osmo_bssgp_prim? https://gerrit.osmocom.org/c/osmo-pcu/+/22385/3/src/gprs_bssgp_rim.c at 115 PS3, Line 115: RAN the message doesnt say 'rx' or 'tx' or the like, so it's unclear whether "answered" menas we answered it, or somebody answered something we sent. https://gerrit.osmocom.org/c/osmo-pcu/+/22385/3/src/gprs_bssgp_rim.c at 116 PS3, Line 116: nacc_cause we just added value_string arrays for those cause values, please use. https://gerrit.osmocom.org/c/osmo-pcu/+/22385/3/src/gprs_bssgp_rim.c at 123 PS3, Line 123: B P instead of B, I guess? https://gerrit.osmocom.org/c/osmo-pcu/+/22385/3/src/gprs_ms.c File src/gprs_ms.c: https://gerrit.osmocom.org/c/osmo-pcu/+/22385/3/src/gprs_ms.c at 912 PS3, Line 912: EINVAL an allocation failure is not ENOMEM? https://gerrit.osmocom.org/c/osmo-pcu/+/22385/3/src/nacc_fsm.h File src/nacc_fsm.h: https://gerrit.osmocom.org/c/osmo-pcu/+/22385/3/src/nacc_fsm.h at 30 PS3, Line 30: enum nacc_fsm_event { I would appraciate some clarity in event nameing. Ideally the name should clearly state if the event is the indication that something was received (like ...RX_IND_...) or that the event requests the FSM to TX something or the like. Also, I think RX_RESOLVE_RAC_CI and SI_INFO_RECEIVED are inconsistent. If they both relate to receiving something, they both should either be RX_... or ...RECEIVED. Yes, details, but they help immensely anyone who did not write (or not remember writing) the code :) https://gerrit.osmocom.org/c/osmo-pcu/+/22385/3/src/nacc_fsm.c File src/nacc_fsm.c: https://gerrit.osmocom.org/c/osmo-pcu/+/22385/3/src/nacc_fsm.c at 376 PS3, Line 376: st_tx_neighbour_data_on_enter why do we have empty onenter functions (also further below)? They just add one function call + return without benefit? https://gerrit.osmocom.org/c/osmo-pcu/+/22385/3/src/neigh_cache.h File src/neigh_cache.h: https://gerrit.osmocom.org/c/osmo-pcu/+/22385/3/src/neigh_cache.h at 78 PS3, Line 78: char whi is this a 512 character text string and not a uint8_t of MAC_BLOCK_LEN (23 bytes)? Or are you storing all the SI in there? Then why one long buffer instread of several byte-arrays, one for each SI type? -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22385 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Id35f40d05f3e081f32fddbf1fa34cb338db452ca Gerrit-Change-Number: 22385 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-CC: laforge Gerrit-Comment-Date: Fri, 22 Jan 2021 20:22:05 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 20:24:47 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 22 Jan 2021 20:24:47 +0000 Subject: Change in osmo-pcu[master]: gprs_pcu: Use libosmocore osmo_cgi_ps_cmp API In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22383 ) Change subject: gprs_pcu: Use libosmocore osmo_cgi_ps_cmp API ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22383 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I7c8ee2c447634e45b367bb8f84adf0140ae48591 Gerrit-Change-Number: 22383 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 22 Jan 2021 20:24:47 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 20:25:31 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 22 Jan 2021 20:25:31 +0000 Subject: Change in osmo-ttcn3-hacks[master]: rlcmac: introduce initial support for NACC related messages In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22058 ) Change subject: rlcmac: introduce initial support for NACC related messages ...................................................................... Patch Set 3: Code-Review-1 still has the hard-coded bsic/rxlev, so setting -1 to not forget about it -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22058 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I4d2f123479c34e6afffe0bc8d91409e6b0529a62 Gerrit-Change-Number: 22058 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 22 Jan 2021 20:25:31 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 20:31:32 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 22 Jan 2021 20:31:32 +0000 Subject: Change in osmo-ttcn3-hacks[master]: WIP: NACC In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22387 ) Change subject: WIP: NACC ...................................................................... Patch Set 1: (2 comments) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22387/1/pcu/PCU_Tests.ttcn File pcu/PCU_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22387/1/pcu/PCU_Tests.ttcn at 3658 PS1, Line 3658: TC_nacc might make sense to give the test a more specific name, as for sure we will have many more tests. The name should at the very least imply that it is about "outbound" NACC. Also, the comment above should indicate that. Of course all NACC tests will tet NACC - but is it inbound/outbound? successful or error case? ... https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22387/1/pcu/PCU_Tests.ttcn at 3673 PS1, Line 3673: var BssgpCellId src := valueof(ts_BssgpCellId(ts_RAI(ts_LAI('262F42'H, /* TODO: encode from info_ind */ > self note: I still need to add some sort of function "convert_plmn_to_hexstr(integer mcc, integer mn [?] I guess something like oct2hex(f_enc_mcc_mnc(mcc, mnc)) should work and f_enc_mcc_mnc() must be made non-private and moved from BSSMAP_Templates.ttcn to a more general module. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22387 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I951db4af731e5a7c207f0f407dd78d166e2d3d26 Gerrit-Change-Number: 22387 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-Comment-Date: Fri, 22 Jan 2021 20:31:32 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 20:32:49 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 22 Jan 2021 20:32:49 +0000 Subject: Change in docker-playground[master]: debian-repo-install-test: remove Release.key In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22370 ) Change subject: debian-repo-install-test: remove Release.key ...................................................................... Patch Set 1: Code-Review+1 having the key locally has the nice side-effect of breaking should the upstream key ever hcange unexpectedly for some reason. but yes, it doesn't need to be in this unrelated test. -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22370 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Ia2ba9de264531502e2b0b9f42d7a4ecd34375851 Gerrit-Change-Number: 22370 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 22 Jan 2021 20:32:49 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 20:33:06 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 22 Jan 2021 20:33:06 +0000 Subject: Change in docker-playground[master]: rename {debian => debian9}-repo-install-test In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22371 ) Change subject: rename {debian => debian9}-repo-install-test ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22371 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I2ea18997019ebaa013c258996f5131386bcd6426 Gerrit-Change-Number: 22371 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 22 Jan 2021 20:33:06 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 20:33:27 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 22 Jan 2021 20:33:27 +0000 Subject: Change in docker-playground[master]: debian10-repo-install-test: new container In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22372 ) Change subject: debian10-repo-install-test: new container ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22372 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I7addb30aa3f8564dcbdc3f6cf2e2e0cfdf4dd02d Gerrit-Change-Number: 22372 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 22 Jan 2021 20:33:27 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 20:33:47 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 22 Jan 2021 20:33:47 +0000 Subject: Change in osmo-ci[master]: repo-install-test: print successful test msg In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22373 ) Change subject: repo-install-test: print successful test msg ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22373 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Idfb75b0461a352ae1703f3c8452cd3afc3320049 Gerrit-Change-Number: 22373 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 22 Jan 2021 20:33:47 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 20:34:17 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 22 Jan 2021 20:34:17 +0000 Subject: Change in osmo-ci[master]: repo-install-test: no distro version in function In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22374 ) Change subject: repo-install-test: no distro version in function ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22374 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ibb9f93af16af7ebe947f7efcd4e709f3e62d12c0 Gerrit-Change-Number: 22374 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 22 Jan 2021 20:34:17 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 20:35:06 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 22 Jan 2021 20:35:06 +0000 Subject: Change in osmo-ci[master]: repo-install-test: resolve distro obs dir in func In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22376 ) Change subject: repo-install-test: resolve distro obs dir in func ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22376 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ie537e8befeebd7958b2a1fe8f6fd54587cfcb1b6 Gerrit-Change-Number: 22376 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 22 Jan 2021 20:35:06 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 20:35:22 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 22 Jan 2021 20:35:22 +0000 Subject: Change in osmo-ci[master]: Cosmetic: repo-install-test: fix DISTRO comment In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22377 ) Change subject: Cosmetic: repo-install-test: fix DISTRO comment ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22377 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ie8c2c86bc77606b1d2d4339751521139de22db04 Gerrit-Change-Number: 22377 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 22 Jan 2021 20:35:22 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 20:35:35 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 22 Jan 2021 20:35:35 +0000 Subject: Change in osmo-ci[master]: repo-install-test: rename 'debian' to 'debian9' In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22378 ) Change subject: repo-install-test: rename 'debian' to 'debian9' ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22378 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Iaa2202cca4072b4dc0309e011aba6cb33ed5b8aa Gerrit-Change-Number: 22378 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 22 Jan 2021 20:35:35 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 20:36:08 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 22 Jan 2021 20:36:08 +0000 Subject: Change in osmo-ci[master]: repo-install-test: add 'debian10' In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22379 ) Change subject: repo-install-test: add 'debian10' ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22379 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: If0fc12464b571dc42b33f2a077c77ea6e5120b8d Gerrit-Change-Number: 22379 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 22 Jan 2021 20:36:08 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 20:38:07 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 22 Jan 2021 20:38:07 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Ignore dummy rlcmac packets in f_ms_rx_pkt_ass_pacch In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22313 ) Change subject: pcu: Ignore dummy rlcmac packets in f_ms_rx_pkt_ass_pacch ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22313 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I0a10d3a7383d8534e9263864b4130a96392e6198 Gerrit-Change-Number: 22313 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: fixeria Gerrit-Comment-Date: Fri, 22 Jan 2021 20:38:07 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 20:38:58 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 22 Jan 2021 20:38:58 +0000 Subject: Change in osmo-bts[master]: power_control: add test for inc / red step size limitations In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/22359 ) Change subject: power_control: add test for inc / red step size limitations ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22359 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic2d4e144b0319d86daa9fbe38727b892081f0c37 Gerrit-Change-Number: 22359 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 22 Jan 2021 20:38:58 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 20:39:04 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 22 Jan 2021 20:39:04 +0000 Subject: Change in osmo-bts[master]: power_control: add test for inc / red step size limitations In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/22359 ) Change subject: power_control: add test for inc / red step size limitations ...................................................................... power_control: add test for inc / red step size limitations Change-Id: Ic2d4e144b0319d86daa9fbe38727b892081f0c37 Related: SYS#4918 --- M tests/power/bs_power_loop_test.c M tests/power/bs_power_loop_test.err M tests/power/bs_power_loop_test.ok 3 files changed, 189 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/tests/power/bs_power_loop_test.c b/tests/power/bs_power_loop_test.c index 7301b7f..5271324 100644 --- a/tests/power/bs_power_loop_test.c +++ b/tests/power/bs_power_loop_test.c @@ -56,6 +56,7 @@ PWR_TEST_ST_IND_MEAS = 0, PWR_TEST_ST_IND_DUMMY, PWR_TEST_ST_SET_STATE, + PWR_TEST_ST_SET_STEP_SIZE, PWR_TEST_ST_SET_RXLEV_PARAMS, PWR_TEST_ST_ENABLE_DTXD, PWR_TEST_ST_DISABLE_DPC, @@ -78,6 +79,11 @@ uint8_t rxlev_sub; bool invalid; } meas; + /* Increase / reduce step size */ + struct { + uint8_t inc; + uint8_t red; + } step_size; }; /* Expected Tx power reduction */ uint8_t exp_txred; @@ -153,6 +159,12 @@ printf("#%02u %s() <- Dynamic power control is disabled\n", n, __func__); lchan->bs_power_ctrl.dpc_params = NULL; return 0; /* we're done */ + case PWR_TEST_ST_SET_STEP_SIZE: + printf("#%02u %s() <- Set step size: inc %u dB, red %u dB\n", + n, __func__, step->step_size.inc, step->step_size.red); + lchan->bs_dpc_params.inc_step_size_db = step->step_size.inc; + lchan->bs_dpc_params.red_step_size_db = step->step_size.red; + return 0; /* we're done */ case PWR_TEST_ST_SET_RXLEV_PARAMS: printf("#%02u %s() <- (Re)set RxLev params (thresh %u .. %u, " "averaging is %sabled)\n", @@ -274,6 +286,60 @@ { .meas = DL_MEAS_FULL_SUB(0, 10), .exp_txred = 0 }, /* min */ }; +/* Verify that delta values never exceed the corresponding step size, + * but still can be smaller than the step size if the target is close. */ +static const struct power_test_step TC_inc_red_step_size[] = { + /* Initial state: 0 dB, up to 20 dB */ + { .type = PWR_TEST_ST_SET_STATE, + .state = { .current = 0, .max = 2 * 10 } }, + + { .type = PWR_TEST_ST_SET_STEP_SIZE, + .step_size = { .inc = 6, .red = 4 } }, + + /* MS indicates high RxLev values (-50 dBm), red step is 4 dB */ + { .meas = DL_MEAS_FULL_SUB(0, 60), .exp_txred = 4 }, + { .meas = DL_MEAS_FULL_SUB(0, 60), .exp_txred = 8 }, + { .meas = DL_MEAS_FULL_SUB(0, 60), .exp_txred = 12 }, + { .meas = DL_MEAS_FULL_SUB(0, 60), .exp_txred = 16 }, + { .meas = DL_MEAS_FULL_SUB(0, 60), .exp_txred = 20 }, /* max */ + { .meas = DL_MEAS_FULL_SUB(0, 60), .exp_txred = 20 }, /* max */ + + /* MS indicates low RxLev values (-100 dBm), inc step is 6 dB */ + { .meas = DL_MEAS_FULL_SUB(0, 10), .exp_txred = 14 }, + { .meas = DL_MEAS_FULL_SUB(0, 10), .exp_txred = 8 }, + { .meas = DL_MEAS_FULL_SUB(0, 10), .exp_txred = 2 }, + { .meas = DL_MEAS_FULL_SUB(0, 10), .exp_txred = 0 }, /* min */ + { .meas = DL_MEAS_FULL_SUB(0, 10), .exp_txred = 0 }, /* min */ + + /* Reset state: current 10 dB, up to 20 dB */ + { .type = PWR_TEST_ST_SET_STATE, + .state = { .current = 10, .max = 2 * 10 } }, + + /* Let's say the current value is now 1 dB greater than the target (current red 10 dB) */ + { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET + 1), .exp_txred = 10 + 1 }, + { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET + 0), .exp_txred = 10 + 1 }, + /* Let's say the current value is now 2 dB greater than the target (current red 11 dB) */ + { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET + 2), .exp_txred = 11 + 2 }, + { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET + 0), .exp_txred = 11 + 2 }, + /* Let's say the current value is now 3 dB greater than the target (current red 13 dB) */ + { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET + 3), .exp_txred = 13 + 3 }, + { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET + 0), .exp_txred = 13 + 3 }, + + /* Reset state: current 10 dB, up to 20 dB */ + { .type = PWR_TEST_ST_SET_STATE, + .state = { .current = 10, .max = 2 * 10 } }, + + /* Let's say the current value is now 1 dB lower than the target (current red 10 dB) */ + { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET - 1), .exp_txred = 10 - 1 }, + { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET - 0), .exp_txred = 10 - 1 }, + /* Let's say the current value is now 3 dB lower than the target (current red 9 dB) */ + { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET - 3), .exp_txred = 9 - 3 }, + { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET - 0), .exp_txred = 9 - 3 }, + /* Let's say the current value is now 5 dB lower than the target (current red 6 dB) */ + { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET - 5), .exp_txred = 6 - 5 }, + { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET - 0), .exp_txred = 6 - 5 }, +}; + /* Verify that the logic picks the 'SUB' values in DTXd mode. */ static const struct power_test_step TC_dtxd_mode[] = { /* Initial state: 0 dB, up to 20 dB */ @@ -417,6 +483,7 @@ exec_test(TC_fixed_mode); exec_test(TC_rxlev_target); exec_test(TC_rxlev_max_min); /* FIXME */ + exec_test(TC_inc_red_step_size); exec_test(TC_dtxd_mode); exec_test(TC_rxqual_ber); diff --git a/tests/power/bs_power_loop_test.err b/tests/power/bs_power_loop_test.err index 2b1e0a9..c3fb816 100644 --- a/tests/power/bs_power_loop_test.err +++ b/tests/power/bs_power_loop_test.err @@ -44,6 +44,52 @@ (bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, delta -4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL (bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, delta -4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 0 -> 4 dB (maximum 20 dB, delta 4 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 4 -> 8 dB (maximum 20 dB, delta 4 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 8 -> 12 dB (maximum 20 dB, delta 4 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 12 -> 16 dB (maximum 20 dB, delta 4 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 16 -> 20 dB (maximum 20 dB, delta 4 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 20 dB (maximum 20 dB, delta 4 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 20 -> 14 dB (maximum 20 dB, delta -6 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 14 -> 8 dB (maximum 20 dB, delta -6 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 8 -> 2 dB (maximum 20 dB, delta -6 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 2 -> 0 dB (maximum 20 dB, delta -6 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, delta -6 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(31), RXQUAL-FULL(0), RXLEV-SUB(31), RXQUAL-SUB(0), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 10 -> 11 dB (maximum 20 dB, delta 1 dB, RxLev current 31 (-79 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 11 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(32), RXQUAL-FULL(0), RXLEV-SUB(32), RXQUAL-SUB(0), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 11 -> 13 dB (maximum 20 dB, delta 2 dB, RxLev current 32 (-78 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 13 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(33), RXQUAL-FULL(0), RXLEV-SUB(33), RXQUAL-SUB(0), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 13 -> 16 dB (maximum 20 dB, delta 3 dB, RxLev current 33 (-77 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(29), RXQUAL-FULL(0), RXLEV-SUB(29), RXQUAL-SUB(0), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 10 -> 9 dB (maximum 20 dB, delta -1 dB, RxLev current 29 (-81 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 9 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(27), RXQUAL-FULL(0), RXLEV-SUB(27), RXQUAL-SUB(0), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 9 -> 6 dB (maximum 20 dB, delta -3 dB, RxLev current 27 (-83 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 6 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(25), RXQUAL-FULL(0), RXLEV-SUB(25), RXQUAL-SUB(0), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 6 -> 1 dB (maximum 20 dB, delta -5 dB, RxLev current 25 (-85 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 1 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL (bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL diff --git a/tests/power/bs_power_loop_test.ok b/tests/power/bs_power_loop_test.ok index 19ec249..4371c9d 100644 --- a/tests/power/bs_power_loop_test.ok +++ b/tests/power/bs_power_loop_test.ok @@ -97,6 +97,82 @@ #19 lchan_bs_pwr_ctrl() -> BS power reduction: 0 -> 0 (expected 0) Test case verdict: SUCCESS +Starting test case 'TC_inc_red_step_size' +#00 exec_power_step() <- State (re)set (current 0 dB, max 20 dB) +#01 exec_power_step() <- Set step size: inc 6 dB, red 4 dB +#02 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0) +#02 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 3c 3c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +#02 lchan_bs_pwr_ctrl() -> BS power reduction: 0 -> 4 (expected 4) +#03 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0) +#03 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 3c 3c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +#03 lchan_bs_pwr_ctrl() -> BS power reduction: 4 -> 8 (expected 8) +#04 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0) +#04 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 3c 3c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +#04 lchan_bs_pwr_ctrl() -> BS power reduction: 8 -> 12 (expected 12) +#05 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0) +#05 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 3c 3c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +#05 lchan_bs_pwr_ctrl() -> BS power reduction: 12 -> 16 (expected 16) +#06 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0) +#06 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 3c 3c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +#06 lchan_bs_pwr_ctrl() -> BS power reduction: 16 -> 20 (expected 20) +#07 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0) +#07 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 3c 3c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +#07 lchan_bs_pwr_ctrl() -> BS power reduction: 20 -> 20 (expected 20) +#08 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0) +#08 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 0a 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +#08 lchan_bs_pwr_ctrl() -> BS power reduction: 20 -> 14 (expected 14) +#09 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0) +#09 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 0a 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +#09 lchan_bs_pwr_ctrl() -> BS power reduction: 14 -> 8 (expected 8) +#10 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0) +#10 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 0a 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +#10 lchan_bs_pwr_ctrl() -> BS power reduction: 8 -> 2 (expected 2) +#11 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0) +#11 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 0a 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +#11 lchan_bs_pwr_ctrl() -> BS power reduction: 2 -> 0 (expected 0) +#12 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0) +#12 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 0a 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +#12 lchan_bs_pwr_ctrl() -> BS power reduction: 0 -> 0 (expected 0) +#13 exec_power_step() <- State (re)set (current 10 dB, max 20 dB) +#14 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(31), RXQUAL-FULL(0), RXLEV-SUB(31), RXQUAL-SUB(0) +#14 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 1f 1f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +#14 lchan_bs_pwr_ctrl() -> BS power reduction: 10 -> 11 (expected 11) +#15 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0) +#15 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 1e 1e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +#15 lchan_bs_pwr_ctrl() -> BS power reduction: 11 -> 11 (expected 11) +#16 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(32), RXQUAL-FULL(0), RXLEV-SUB(32), RXQUAL-SUB(0) +#16 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 20 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +#16 lchan_bs_pwr_ctrl() -> BS power reduction: 11 -> 13 (expected 13) +#17 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0) +#17 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 1e 1e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +#17 lchan_bs_pwr_ctrl() -> BS power reduction: 13 -> 13 (expected 13) +#18 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(33), RXQUAL-FULL(0), RXLEV-SUB(33), RXQUAL-SUB(0) +#18 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 21 21 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +#18 lchan_bs_pwr_ctrl() -> BS power reduction: 13 -> 16 (expected 16) +#19 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0) +#19 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 1e 1e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +#19 lchan_bs_pwr_ctrl() -> BS power reduction: 16 -> 16 (expected 16) +#20 exec_power_step() <- State (re)set (current 10 dB, max 20 dB) +#21 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(29), RXQUAL-FULL(0), RXLEV-SUB(29), RXQUAL-SUB(0) +#21 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 1d 1d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +#21 lchan_bs_pwr_ctrl() -> BS power reduction: 10 -> 9 (expected 9) +#22 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0) +#22 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 1e 1e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +#22 lchan_bs_pwr_ctrl() -> BS power reduction: 9 -> 9 (expected 9) +#23 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(27), RXQUAL-FULL(0), RXLEV-SUB(27), RXQUAL-SUB(0) +#23 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 1b 1b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +#23 lchan_bs_pwr_ctrl() -> BS power reduction: 9 -> 6 (expected 6) +#24 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0) +#24 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 1e 1e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +#24 lchan_bs_pwr_ctrl() -> BS power reduction: 6 -> 6 (expected 6) +#25 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(25), RXQUAL-FULL(0), RXLEV-SUB(25), RXQUAL-SUB(0) +#25 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 19 19 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +#25 lchan_bs_pwr_ctrl() -> BS power reduction: 6 -> 1 (expected 1) +#26 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0) +#26 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 1e 1e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +#26 lchan_bs_pwr_ctrl() -> BS power reduction: 1 -> 1 (expected 1) +Test case verdict: SUCCESS + Starting test case 'TC_dtxd_mode' #00 exec_power_step() <- State (re)set (current 0 dB, max 20 dB) #01 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22359 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic2d4e144b0319d86daa9fbe38727b892081f0c37 Gerrit-Change-Number: 22359 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 20:42:17 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 22 Jan 2021 20:42:17 +0000 Subject: Change in osmo-pcu[master]: gprs_bssgp_rim: add serving BSS NACC application In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22368 ) Change subject: gprs_bssgp_rim: add serving BSS NACC application ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-pcu/+/22368/2/src/gprs_bssgp_rim.c File src/gprs_bssgp_rim.c: https://gerrit.osmocom.org/c/osmo-pcu/+/22368/2/src/gprs_bssgp_rim.c at 208 PS2, Line 208: BSSGP RIM (NSEI=%u) we just had this in the review of another patch; please introduce and use something like #define LOGPRIM(nsei, lvl, fmt, args ...) LOGP(DRIM, lvl, "BSSGP RIM (NSEI=%u) " fmt, nsei, ## args) As there is already code in master that open-codes this in every log statement, please submit an incremental patch on top which cleans this up, for all of the code. Thanks. -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22368 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Id72118120c14984d2fb1b918b41fac4868150d41 Gerrit-Change-Number: 22368 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 22 Jan 2021 20:42:17 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 20:46:17 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 22 Jan 2021 20:46:17 +0000 Subject: Change in osmo-bts[master]: l1sap: include Uplink RSSI and C/I in GSMTAP packets In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21935 ) Change subject: l1sap: include Uplink RSSI and C/I in GSMTAP packets ...................................................................... Patch Set 2: > Patch Set 2: > > I don't know what to do here, osmo-trx can't really measure the rssi because even though uhd exposes it as a sensor and reading it takes multiple timeslots so it's useless, while snr was never really properly specified, is it rssi of used ts vs rssi of unused ts? is it supposed to be c/i? The proprietary PHY backends of osmo-bts (sysmo, lc15, oc2g at least) expose C/I. And IIRC, C/I is laso computed by osmo-bts-trx on a per-burst basis, as we use it for rate adaptation in osmo-pcu. I think the main concern here is whether or not we should abuse a GSMTAP field specified and named for RSSI and now fill it with something else (C/I). I'm not fundamentally opposed, I'm just saying it's incorrect... -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21935 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic48283fa76b682aee151a94ef7274ac96545e087 Gerrit-Change-Number: 21935 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Fri, 22 Jan 2021 20:46:17 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 20:46:48 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 22 Jan 2021 20:46:48 +0000 Subject: Change in osmo-bsc[master]: bsc_vty: fix acch_repetition ber threshold strings In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22120 ) Change subject: bsc_vty: fix acch_repetition ber threshold strings ...................................................................... bsc_vty: fix acch_repetition ber threshold strings When setting the BER threshold for ACCH repetition the VTY displays wrong threshold values in the online help. Change-Id: I4c89ad130da328aba99663e5a2931a4007772bca Related: SYS#5114 --- M src/osmo-bsc/bsc_vty.c 1 file changed, 8 insertions(+), 7 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve fixeria: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c index 5b4417e..4781217 100644 --- a/src/osmo-bsc/bsc_vty.c +++ b/src/osmo-bsc/bsc_vty.c @@ -2832,13 +2832,14 @@ REP_ACCH_STR "Set UL-SACCH/DL-FACCH rxqual threshold-ber\n" "0 disabled (always on)\n" - "1 0.26% to 0.30% BER\n" - "2 0.51% to 0.64% BER\n" - "3 1.0% to 1.3% BER\n" - "4 1.9% to 2.7% BER (default)\n" - "5 3.8% to 5.4% BER\n" - "6 7.6% to 11.0% BER\n" - "7 Greater than 15.0% BER\n") + "1 BER >= 0.2%\n" + "2 BER >= 0.4%\n" + "3 BER >= 0.8%\n" + "4 BER >= 1.6%\n" + "5 BER >= 3.2%\n" + "6 BER >= 6.4%\n" + "7 BER >= 12.8%\n") + /* See also: GSM 05.08, section 8.2.4 */ { struct gsm_bts *bts = vty->index; -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22120 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I4c89ad130da328aba99663e5a2931a4007772bca Gerrit-Change-Number: 22120 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 22 20:48:51 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 22 Jan 2021 20:48:51 +0000 Subject: Change in osmo-hlr[master]: Add vty command to show summary of all or filtered subscribers In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-hlr/+/22311 ) Change subject: Add vty command to show summary of all or filtered subscribers ...................................................................... Patch Set 11: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/22311 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-Change-Id: I7f0573381a6d0d13841ac6d42d50f0e8389decf4 Gerrit-Change-Number: 22311 Gerrit-PatchSet: 11 Gerrit-Owner: keith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: neels Gerrit-Comment-Date: Fri, 22 Jan 2021 20:48:51 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Sat Jan 23 01:44:02 2021 From: admin at opensuse.org (OBS Notification) Date: Sat, 23 Jan 2021 01:44:02 +0000 Subject: Build failure of network:osmocom:nightly/osmo-cbc in openSUSE_Tumbleweed/i586 In-Reply-To: References: Message-ID: <600b7f81eddea_5172adeb84245fc181842@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-cbc/openSUSE_Tumbleweed/i586 Package network:osmocom:nightly/osmo-cbc failed to build in openSUSE_Tumbleweed/i586 Check out the package for editing: osc checkout network:osmocom:nightly osmo-cbc Last lines of build log: [ 34s] checking for i586-suse-linux-gnu-pkg-config... /usr/bin/i586-suse-linux-gnu-pkg-config [ 34s] checking pkg-config is at least version 0.20... yes [ 34s] checking for LIBOSMOCORE... yes [ 34s] checking for LIBOSMOVTY... yes [ 34s] checking for LIBOSMOGSM... yes [ 34s] checking for LIBOSMONETIF... yes [ 34s] checking for ULFIUS... no [ 34s] configure: error: Package requirements (libulfius) were not met: [ 34s] [ 34s] Package 'libulfius', required by 'virtual:world', not found [ 34s] [ 34s] Consider adjusting the PKG_CONFIG_PATH environment variable if you [ 34s] installed software in a non-standard prefix. [ 34s] [ 34s] Alternatively, you may set the environment variables ULFIUS_CFLAGS [ 34s] and ULFIUS_LIBS to avoid the need to call pkg-config. [ 34s] See the pkg-config man page for more details. [ 34s] error: Bad exit status from /var/tmp/rpm-tmp.BAPdRV (%build) [ 34s] [ 34s] [ 34s] RPM build errors: [ 34s] Bad exit status from /var/tmp/rpm-tmp.BAPdRV (%build) [ 34s] ### VM INTERACTION START ### [ 37s] [ 31.676629] sysrq: Power Off [ 37s] [ 31.686100] reboot: Power down [ 37s] ### VM INTERACTION END ### [ 37s] [ 37s] sheep81 failed "build osmo-cbc.spec" at Sat Jan 23 01:43:46 UTC 2021. [ 37s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Jan 23 02:16:53 2021 From: admin at opensuse.org (OBS Notification) Date: Sat, 23 Jan 2021 02:16:53 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <600b87219ece2_5172adeb84245fc1832339@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/xUbuntu_20.04/x86_64 Package network:osmocom:nightly/simtrace2 failed to build in xUbuntu_20.04/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 186s] [COMPILING libboard/qmod/source/wwan_perst.c] [ 186s] [COMPILING libboard/qmod/source/card_pres.c] [ 186s] [COMPILING libboard/qmod/source/wwan_led.c] [ 187s] [COMPILING libboard/qmod/source/i2c.c] [ 187s] [COMPILING libboard/qmod/source/board_qmod.c] [ 187s] [COMPILING apps/dfu/main.c] [ 187s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 187s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 187s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 188s] Memory region Used Size Region Size %age Used [ 188s] rom: 16588 B 16 KB 101.25% [ 188s] ram: 11672 B 48 KB 23.75/usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 188s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 204 bytes [ 188s] collect2: error: ld returned 1 exit status [ 188s] % [ 188s] make[2]: *** [Makefile:234: flash] Error 1 [ 188s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 188s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 188s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 188s] dh_auto_build: error: make -j1 returned exit code 2 [ 188s] make: *** [debian/rules:16: build] Error 25 [ 188s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 188s] ### VM INTERACTION START ### [ 191s] [ 179.498625] sysrq: Power Off [ 191s] [ 179.504551] reboot: Power down [ 191s] ### VM INTERACTION END ### [ 191s] [ 191s] lamb15 failed "build simtrace2_0.7.0.69.aadd.dsc" at Sat Jan 23 02:16:49 UTC 2021. [ 191s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Jan 23 02:23:10 2021 From: admin at opensuse.org (OBS Notification) Date: Sat, 23 Jan 2021 02:23:10 +0000 Subject: Build failure of network:osmocom:nightly/osmo-cbc in openSUSE_Leap_15.1/x86_64 In-Reply-To: References: Message-ID: <600b88a69c816_5172adeb84245fc1834899@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-cbc/openSUSE_Leap_15.1/x86_64 Package network:osmocom:nightly/osmo-cbc failed to build in openSUSE_Leap_15.1/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-cbc Last lines of build log: [ 38s] checking for x86_64-suse-linux-gnu-pkg-config... /usr/bin/x86_64-suse-linux-gnu-pkg-config [ 38s] checking pkg-config is at least version 0.20... yes [ 38s] checking for libosmocore >= 1.0.0... yes [ 38s] checking for libosmovty >= 1.0.0... yes [ 38s] checking for libosmogsm >= 1.0.0... yes [ 38s] checking for libosmo-netif >= 0.4.0... yes [ 38s] checking for libulfius... no [ 38s] configure: error: Package requirements (libulfius) were not met: [ 38s] [ 38s] No package 'libulfius' found [ 38s] [ 38s] Consider adjusting the PKG_CONFIG_PATH environment variable if you [ 38s] installed software in a non-standard prefix. [ 38s] [ 38s] Alternatively, you may set the environment variables ULFIUS_CFLAGS [ 38s] and ULFIUS_LIBS to avoid the need to call pkg-config. [ 38s] See the pkg-config man page for more details. [ 38s] error: Bad exit status from /var/tmp/rpm-tmp.oupRsQ (%build) [ 38s] [ 38s] [ 38s] RPM build errors: [ 38s] Bad exit status from /var/tmp/rpm-tmp.oupRsQ (%build) [ 38s] ### VM INTERACTION START ### [ 41s] [ 35.235099] sysrq: SysRq : Power Off [ 41s] [ 35.244286] reboot: Power down [ 41s] ### VM INTERACTION END ### [ 41s] [ 41s] sheep84 failed "build osmo-cbc.spec" at Sat Jan 23 02:23:04 UTC 2021. [ 41s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Jan 23 02:24:36 2021 From: admin at opensuse.org (OBS Notification) Date: Sat, 23 Jan 2021 02:24:36 +0000 Subject: Build failure of network:osmocom:nightly/osmo-cbc in openSUSE_Tumbleweed/x86_64 In-Reply-To: References: Message-ID: <600b88fc5d6fc_5172adeb84245fc1835826@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-cbc/openSUSE_Tumbleweed/x86_64 Package network:osmocom:nightly/osmo-cbc failed to build in openSUSE_Tumbleweed/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-cbc Last lines of build log: [ 46s] checking for x86_64-suse-linux-gnu-pkg-config... /usr/bin/x86_64-suse-linux-gnu-pkg-config [ 46s] checking pkg-config is at least version 0.20... yes [ 46s] checking for LIBOSMOCORE... yes [ 46s] checking for LIBOSMOVTY... yes [ 46s] checking for LIBOSMOGSM... yes [ 46s] checking for LIBOSMONETIF... yes [ 46s] checking for ULFIUS... no [ 46s] configure: error: Package requirements (libulfius) were not met: [ 46s] [ 46s] Package 'libulfius', required by 'virtual:world', not found [ 46s] [ 46s] Consider adjusting the PKG_CONFIG_PATH environment variable if you [ 46s] installed software in a non-standard prefix. [ 46s] [ 46s] Alternatively, you may set the environment variables ULFIUS_CFLAGS [ 46s] and ULFIUS_LIBS to avoid the need to call pkg-config. [ 46s] See the pkg-config man page for more details. [ 47s] error: Bad exit status from /var/tmp/rpm-tmp.kI0WUj (%build) [ 47s] [ 47s] [ 47s] RPM build errors: [ 47s] Bad exit status from /var/tmp/rpm-tmp.kI0WUj (%build) [ 47s] ### VM INTERACTION START ### [ 50s] [ 41.776262] sysrq: Power Off [ 50s] [ 41.796305] reboot: Power down [ 50s] ### VM INTERACTION END ### [ 50s] [ 50s] lamb20 failed "build osmo-cbc.spec" at Sat Jan 23 02:24:28 UTC 2021. [ 50s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Jan 23 02:26:19 2021 From: admin at opensuse.org (OBS Notification) Date: Sat, 23 Jan 2021 02:26:19 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.10/x86_64 In-Reply-To: References: Message-ID: <600b895c8390d_5172adeb84245fc183651@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/xUbuntu_20.10/x86_64 Package network:osmocom:nightly/simtrace2 failed to build in xUbuntu_20.10/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 118s] [COMPILING apps/dfu/main.c] [ 118s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 118s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 118s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 118s] Memory region Used Size Region Size %age Used [ 118s] rom: 16580 B 16 KB 101.20% [ 118s] ram: 11672 B 48 KB 23.75/usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 118s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 118s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 118s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 118s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 118s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 118s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 196 bytes [ 118s] collect2: error: ld returned 1 exit status [ 118s] % [ 118s] make[2]: *** [Makefile:234: flash] Error 1 [ 118s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 118s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 118s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 118s] dh_auto_build: error: make -j1 returned exit code 2 [ 118s] make: *** [debian/rules:16: build] Error 25 [ 118s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 118s] ### VM INTERACTION START ### [ 121s] [ 109.987095] sysrq: Power Off [ 121s] [ 109.992827] reboot: Power down [ 121s] ### VM INTERACTION END ### [ 121s] [ 121s] sheep87 failed "build simtrace2_0.7.0.69.aadd.dsc" at Sat Jan 23 02:26:10 UTC 2021. [ 121s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Jan 23 02:35:36 2021 From: admin at opensuse.org (OBS Notification) Date: Sat, 23 Jan 2021 02:35:36 +0000 Subject: Build failure of network:osmocom:nightly/osmo-cbc in openSUSE_Leap_15.2/x86_64 In-Reply-To: References: Message-ID: <600b8b91dcc76_5172adeb84245fc184143b@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-cbc/openSUSE_Leap_15.2/x86_64 Package network:osmocom:nightly/osmo-cbc failed to build in openSUSE_Leap_15.2/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-cbc Last lines of build log: [ 39s] checking for x86_64-suse-linux-gnu-pkg-config... /usr/bin/x86_64-suse-linux-gnu-pkg-config [ 39s] checking pkg-config is at least version 0.20... yes [ 39s] checking for libosmocore >= 1.0.0... yes [ 39s] checking for libosmovty >= 1.0.0... yes [ 39s] checking for libosmogsm >= 1.0.0... yes [ 39s] checking for libosmo-netif >= 0.4.0... yes [ 39s] checking for libulfius... no [ 39s] configure: error: Package requirements (libulfius) were not met: [ 39s] [ 39s] No package 'libulfius' found [ 39s] [ 39s] Consider adjusting the PKG_CONFIG_PATH environment variable if you [ 39s] installed software in a non-standard prefix. [ 39s] [ 39s] Alternatively, you may set the environment variables ULFIUS_CFLAGS [ 39s] and ULFIUS_LIBS to avoid the need to call pkg-config. [ 39s] See the pkg-config man page for more details. [ 39s] error: Bad exit status from /var/tmp/rpm-tmp.6cdXTI (%build) [ 39s] [ 39s] [ 39s] RPM build errors: [ 39s] Bad exit status from /var/tmp/rpm-tmp.6cdXTI (%build) [ 39s] ### VM INTERACTION START ### [ 43s] [ 35.216481] sysrq: Power Off [ 43s] [ 35.220741] reboot: Power down [ 43s] ### VM INTERACTION END ### [ 43s] [ 43s] sheep87 failed "build osmo-cbc.spec" at Sat Jan 23 02:35:23 UTC 2021. [ 43s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Jan 23 02:44:46 2021 From: admin at opensuse.org (OBS Notification) Date: Sat, 23 Jan 2021 02:44:46 +0000 Subject: Build failure of network:osmocom:nightly/osmo-cbc in CentOS_8/x86_64 In-Reply-To: References: Message-ID: <600b8db01d33e_5172adeb84245fc18467ad@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-cbc/CentOS_8/x86_64 Package network:osmocom:nightly/osmo-cbc failed to build in CentOS_8/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-cbc Last lines of build log: [ 124s] checking for x86_64-redhat-linux-gnu-pkg-config... /usr/bin/x86_64-redhat-linux-gnu-pkg-config [ 124s] checking pkg-config is at least version 0.20... yes [ 124s] checking for LIBOSMOCORE... yes [ 124s] checking for LIBOSMOVTY... yes [ 124s] checking for LIBOSMOGSM... yes [ 124s] checking for LIBOSMONETIF... yes [ 124s] checking for ULFIUS... no [ 124s] configure: error: Package requirements (libulfius) were not met: [ 124s] [ 124s] Package 'libulfius', required by 'virtual:world', not found [ 124s] [ 124s] Consider adjusting the PKG_CONFIG_PATH environment variable if you [ 124s] installed software in a non-standard prefix. [ 124s] [ 124s] Alternatively, you may set the environment variables ULFIUS_CFLAGS [ 124s] and ULFIUS_LIBS to avoid the need to call pkg-config. [ 124s] See the pkg-config man page for more details. [ 124s] error: Bad exit status from /var/tmp/rpm-tmp.TyzUQ3 (%build) [ 124s] [ 124s] [ 124s] RPM build errors: [ 124s] Bad exit status from /var/tmp/rpm-tmp.TyzUQ3 (%build) [ 124s] ### VM INTERACTION START ### [ 125s] Powering off. [ 125s] [ 95.882592] reboot: Power down [ 125s] ### VM INTERACTION END ### [ 125s] [ 125s] cloud119 failed "build osmo-cbc.spec" at Sat Jan 23 02:44:35 UTC 2021. [ 125s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Jan 23 03:43:19 2021 From: admin at opensuse.org (OBS Notification) Date: Sat, 23 Jan 2021 03:43:19 +0000 Subject: Build failure of network:osmocom:nightly/osmo-cbc in openSUSE_Leap_15.1_ARM/aarch64 In-Reply-To: References: Message-ID: <600b9b674c38c_5172adeb84245fc1890643@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-cbc/openSUSE_Leap_15.1_ARM/aarch64 Package network:osmocom:nightly/osmo-cbc failed to build in openSUSE_Leap_15.1_ARM/aarch64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-cbc Last lines of build log: [ 68s] checking for aarch64-suse-linux-gnu-pkg-config... /usr/bin/aarch64-suse-linux-gnu-pkg-config [ 68s] checking pkg-config is at least version 0.20... yes [ 68s] checking for libosmocore >= 1.0.0... yes [ 68s] checking for libosmovty >= 1.0.0... yes [ 68s] checking for libosmogsm >= 1.0.0... yes [ 69s] checking for libosmo-netif >= 0.4.0... yes [ 69s] checking for libulfius... no [ 69s] configure: error: Package requirements (libulfius) were not met: [ 69s] [ 69s] No package 'libulfius' found [ 69s] [ 69s] Consider adjusting the PKG_CONFIG_PATH environment variable if you [ 69s] installed software in a non-standard prefix. [ 69s] [ 69s] Alternatively, you may set the environment variables ULFIUS_CFLAGS [ 69s] and ULFIUS_LIBS to avoid the need to call pkg-config. [ 69s] See the pkg-config man page for more details. [ 69s] error: Bad exit status from /var/tmp/rpm-tmp.Y3AK6u (%build) [ 69s] [ 69s] [ 69s] RPM build errors: [ 69s] Bad exit status from /var/tmp/rpm-tmp.Y3AK6u (%build) [ 69s] ### VM INTERACTION START ### [ 72s] [ 51.743647] sysrq: SysRq : Power Off [ 72s] [ 51.745075] reboot: Power down [ 72s] ### VM INTERACTION END ### [ 72s] [ 72s] obs-arm-9 failed "build osmo-cbc.spec" at Sat Jan 23 03:43:02 UTC 2021. [ 72s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Jan 23 04:15:02 2021 From: admin at opensuse.org (OBS Notification) Date: Sat, 23 Jan 2021 04:15:02 +0000 Subject: Build failure of network:osmocom:nightly/osmo-cbc in CentOS_8/aarch64 In-Reply-To: References: Message-ID: <600ba2e4540ed_5172adeb84245fc191832@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-cbc/CentOS_8/aarch64 Package network:osmocom:nightly/osmo-cbc failed to build in CentOS_8/aarch64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-cbc Last lines of build log: [ 468s] checking for aarch64-redhat-linux-gnu-pkg-config... /usr/bin/aarch64-redhat-linux-gnu-pkg-config [ 468s] checking pkg-config is at least version 0.20... yes [ 468s] checking for LIBOSMOCORE... yes [ 468s] checking for LIBOSMOVTY... yes [ 468s] checking for LIBOSMOGSM... yes [ 468s] checking for LIBOSMONETIF... yes [ 468s] checking for ULFIUS... no [ 468s] configure: error: Package requirements (libulfius) were not met: [ 468s] [ 468s] Package 'libulfius', required by 'virtual:world', not found [ 468s] [ 468s] Consider adjusting the PKG_CONFIG_PATH environment variable if you [ 468s] installed software in a non-standard prefix. [ 468s] [ 468s] Alternatively, you may set the environment variables ULFIUS_CFLAGS [ 468s] and ULFIUS_LIBS to avoid the need to call pkg-config. [ 468s] See the pkg-config man page for more details. [ 469s] error: Bad exit status from /var/tmp/rpm-tmp.MWJoUX (%build) [ 469s] [ 469s] [ 469s] RPM build errors: [ 469s] Bad exit status from /var/tmp/rpm-tmp.MWJoUX (%build) [ 469s] ### VM INTERACTION START ### [ 470s] Powering off. [ 470s] [ 343.620120] reboot: Power down [ 470s] ### VM INTERACTION END ### [ 470s] [ 470s] obs-arm-3 failed "build osmo-cbc.spec" at Sat Jan 23 04:14:50 UTC 2021. [ 470s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Jan 23 04:57:53 2021 From: admin at opensuse.org (OBS Notification) Date: Sat, 23 Jan 2021 04:57:53 +0000 Subject: Build failure of network:osmocom:nightly/osmo-cbc in openSUSE_Factory_ARM/aarch64 In-Reply-To: References: Message-ID: <600bacde7ffb4_5172adeb84245fc195404b@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-cbc/openSUSE_Factory_ARM/aarch64 Package network:osmocom:nightly/osmo-cbc failed to build in openSUSE_Factory_ARM/aarch64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-cbc Last lines of build log: [ 132s] checking for aarch64-suse-linux-gnu-pkg-config... /usr/bin/aarch64-suse-linux-gnu-pkg-config [ 132s] checking pkg-config is at least version 0.20... yes [ 132s] checking for LIBOSMOCORE... yes [ 133s] checking for LIBOSMOVTY... yes [ 133s] checking for LIBOSMOGSM... yes [ 133s] checking for LIBOSMONETIF... yes [ 133s] checking for ULFIUS... no [ 133s] configure: error: Package requirements (libulfius) were not met: [ 133s] [ 133s] Package 'libulfius', required by 'virtual:world', not found [ 133s] [ 133s] Consider adjusting the PKG_CONFIG_PATH environment variable if you [ 133s] installed software in a non-standard prefix. [ 133s] [ 133s] Alternatively, you may set the environment variables ULFIUS_CFLAGS [ 133s] and ULFIUS_LIBS to avoid the need to call pkg-config. [ 133s] See the pkg-config man page for more details. [ 133s] error: Bad exit status from /var/tmp/rpm-tmp.EyIHVU (%build) [ 133s] [ 133s] [ 133s] RPM build errors: [ 133s] Bad exit status from /var/tmp/rpm-tmp.EyIHVU (%build) [ 133s] ### VM INTERACTION START ### [ 136s] [ 100.916110] sysrq: Power Off [ 136s] [ 100.930420] reboot: Power down [ 136s] ### VM INTERACTION END ### [ 136s] [ 136s] obs-arm-3 failed "build osmo-cbc.spec" at Sat Jan 23 04:57:45 UTC 2021. [ 136s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Jan 23 08:31:43 2021 From: admin at opensuse.org (OBS Notification) Date: Sat, 23 Jan 2021 08:31:43 +0000 Subject: Build failure of network:osmocom:nightly/osmo-cbc in openSUSE_Leap_15.1_ARM/armv7l In-Reply-To: References: Message-ID: <600bdf075ac4a_5172adeb84245fc2131541@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-cbc/openSUSE_Leap_15.1_ARM/armv7l Package network:osmocom:nightly/osmo-cbc failed to build in openSUSE_Leap_15.1_ARM/armv7l Check out the package for editing: osc checkout network:osmocom:nightly osmo-cbc Last lines of build log: [ 134s] checking for armv7hl-suse-linux-gnueabi-pkg-config... /usr/bin/armv7hl-suse-linux-gnueabi-pkg-config [ 134s] checking pkg-config is at least version 0.20... yes [ 134s] checking for libosmocore >= 1.0.0... yes [ 134s] checking for libosmovty >= 1.0.0... yes [ 134s] checking for libosmogsm >= 1.0.0... yes [ 134s] checking for libosmo-netif >= 0.4.0... yes [ 134s] checking for libulfius... no [ 135s] configure: error: Package requirements (libulfius) were not met: [ 135s] [ 135s] No package 'libulfius' found [ 135s] [ 135s] Consider adjusting the PKG_CONFIG_PATH environment variable if you [ 135s] installed software in a non-standard prefix. [ 135s] [ 135s] Alternatively, you may set the environment variables ULFIUS_CFLAGS [ 135s] and ULFIUS_LIBS to avoid the need to call pkg-config. [ 135s] See the pkg-config man page for more details. [ 135s] error: Bad exit status from /var/tmp/rpm-tmp.QJQubA (%build) [ 135s] [ 135s] [ 135s] RPM build errors: [ 135s] Bad exit status from /var/tmp/rpm-tmp.QJQubA (%build) [ 135s] ### VM INTERACTION START ### [ 138s] [ 109.517066] sysrq: SysRq : Power Off [ 138s] [ 109.530725] reboot: Power down [ 138s] ### VM INTERACTION END ### [ 138s] [ 138s] obs-arm-5 failed "build osmo-cbc.spec" at Sat Jan 23 08:31:39 UTC 2021. [ 138s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Jan 23 09:56:18 2021 From: admin at opensuse.org (OBS Notification) Date: Sat, 23 Jan 2021 09:56:18 +0000 Subject: Build failure of network:osmocom:nightly/osmo-cbc in openSUSE_Factory_ARM/armv7l In-Reply-To: References: Message-ID: <600bf2d0c25c7_5172adeb84245fc214861e@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-cbc/openSUSE_Factory_ARM/armv7l Package network:osmocom:nightly/osmo-cbc failed to build in openSUSE_Factory_ARM/armv7l Check out the package for editing: osc checkout network:osmocom:nightly osmo-cbc Last lines of build log: [ 82s] checking for armv7hl-suse-linux-gnueabi-pkg-config... /usr/bin/armv7hl-suse-linux-gnueabi-pkg-config [ 82s] checking pkg-config is at least version 0.20... yes [ 82s] checking for LIBOSMOCORE... yes [ 82s] checking for LIBOSMOVTY... yes [ 82s] checking for LIBOSMOGSM... yes [ 82s] checking for LIBOSMONETIF... yes [ 82s] checking for ULFIUS... no [ 82s] configure: error: Package requirements (libulfius) were not met: [ 82s] [ 82s] Package 'libulfius', required by 'virtual:world', not found [ 82s] [ 82s] Consider adjusting the PKG_CONFIG_PATH environment variable if you [ 82s] installed software in a non-standard prefix. [ 82s] [ 82s] Alternatively, you may set the environment variables ULFIUS_CFLAGS [ 82s] and ULFIUS_LIBS to avoid the need to call pkg-config. [ 82s] See the pkg-config man page for more details. [ 82s] error: Bad exit status from /var/tmp/rpm-tmp.01lbIx (%build) [ 82s] [ 82s] [ 82s] RPM build errors: [ 82s] Bad exit status from /var/tmp/rpm-tmp.01lbIx (%build) [ 82s] ### VM INTERACTION START ### [ 85s] [ 66.755665] sysrq: Power Off [ 85s] [ 66.757583] reboot: Power down [ 85s] ### VM INTERACTION END ### [ 85s] [ 85s] armbuild01 failed "build osmo-cbc.spec" at Sat Jan 23 09:56:11 UTC 2021. [ 85s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Sat Jan 23 13:58:09 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 23 Jan 2021 13:58:09 +0000 Subject: Change in osmo-cbc[master]: debian/osmo-cbc.install: Fix typo (extra apostrophe at EOL) References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22391 ) Change subject: debian/osmo-cbc.install: Fix typo (extra apostrophe at EOL) ...................................................................... debian/osmo-cbc.install: Fix typo (extra apostrophe at EOL) Change-Id: Iebd5e3ca1e3c1f998c112f9c5f5fdcf5e0d24f35 --- M debian/osmo-cbc.install 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-cbc refs/changes/91/22391/1 diff --git a/debian/osmo-cbc.install b/debian/osmo-cbc.install index cbe4f22..76373fd 100644 --- a/debian/osmo-cbc.install +++ b/debian/osmo-cbc.install @@ -1,4 +1,4 @@ /etc/osmocom/osmo-cbc.cfg lib/systemd/system/osmo-cbc.service usr/bin/osmo-cbc -usr/share/doc/osmo-cbc/examples/osmo-cbc/*.cfg usr/share/doc/osmo-bsc/examples` +usr/share/doc/osmo-cbc/examples/osmo-cbc/*.cfg usr/share/doc/osmo-bsc/examples -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22391 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: Iebd5e3ca1e3c1f998c112f9c5f5fdcf5e0d24f35 Gerrit-Change-Number: 22391 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 23 15:31:13 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Sat, 23 Jan 2021 15:31:13 +0000 Subject: Change in osmo-pcu[master]: Introduce NACC support In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22385 ) Change subject: Introduce NACC support ...................................................................... Patch Set 4: (1 comment) https://gerrit.osmocom.org/c/osmo-pcu/+/22385/4/src/gprs_bssgp_rim.c File src/gprs_bssgp_rim.c: https://gerrit.osmocom.org/c/osmo-pcu/+/22385/4/src/gprs_bssgp_rim.c at 126 PS4, Line 126: val.si_len = 0; The serving BSS may also respond with no system information. num_si is then set to 0. I think it make sense to add those zero entries to the cache as well since it conforms to the state at the requested PCU. Anyway, I just wanted to make sure that you are aware that this might happen. -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22385 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Id35f40d05f3e081f32fddbf1fa34cb338db452ca Gerrit-Change-Number: 22385 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-CC: laforge Gerrit-Comment-Date: Sat, 23 Jan 2021 15:31:13 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 23 16:15:15 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 23 Jan 2021 16:15:15 +0000 Subject: Change in osmo-bts[master]: l1sap: include Uplink RSSI and C/I in GSMTAP packets In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/21935 ) Change subject: l1sap: include Uplink RSSI and C/I in GSMTAP packets ...................................................................... Patch Set 2: Ok, let's then start with RSSI and postpone sending C/I (probably until GSMTAPv2). -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21935 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic48283fa76b682aee151a94ef7274ac96545e087 Gerrit-Change-Number: 21935 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Sat, 23 Jan 2021 16:15:15 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 23 16:35:09 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 23 Jan 2021 16:35:09 +0000 Subject: Change in osmo-bts[master]: l1sap: include Uplink C/I in GSMTAP packets In-Reply-To: References: Message-ID: Hello Jenkins Builder, Hoernchen, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/21935 to look at the new patch set (#3). Change subject: l1sap: include Uplink C/I in GSMTAP packets ...................................................................... l1sap: include Uplink C/I in GSMTAP packets Since we don't yet handle Uplink noise measurements, we don't know the actual Signal-Noise-Ratio. However, we do know C/I (Carrier- Interference-Ratio), so let's send it instead of SNR. Change-Id: Ic48283fa76b682aee151a94ef7274ac96545e087 Related: SYS#5073 --- M src/common/l1sap.c 1 file changed, 4 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/35/21935/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/21935 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic48283fa76b682aee151a94ef7274ac96545e087 Gerrit-Change-Number: 21935 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 23 16:35:11 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 23 Jan 2021 16:35:11 +0000 Subject: Change in osmo-bts[master]: l1sap: fix gsmtap_ph_{data, pdch, rach}(): use 'const' References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/22392 ) Change subject: l1sap: fix gsmtap_ph_{data,pdch,rach}(): use 'const' ...................................................................... l1sap: fix gsmtap_ph_{data,pdch,rach}(): use 'const' Change-Id: If353ba78b59af2b0a62bbd0c812a46990b07776f --- M src/common/l1sap.c 1 file changed, 9 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/92/22392/1 diff --git a/src/common/l1sap.c b/src/common/l1sap.c index 439db03..eb610dc 100644 --- a/src/common/l1sap.c +++ b/src/common/l1sap.c @@ -368,8 +368,9 @@ }; /* send primitive as gsmtap */ -static int gsmtap_ph_data(struct osmo_phsap_prim *l1sap, uint8_t *chan_type, - uint8_t *ss, uint32_t fn, uint8_t **data, unsigned int *len, +static int gsmtap_ph_data(const struct osmo_phsap_prim *l1sap, + uint8_t *chan_type, uint8_t *ss, uint32_t fn, + uint8_t **data, unsigned int *len, uint8_t num_agch) { struct msgb *msg = l1sap->oph.msg; @@ -411,8 +412,9 @@ return 0; } -static int gsmtap_pdch(struct osmo_phsap_prim *l1sap, uint8_t *chan_type, - uint8_t *ss, uint32_t fn, uint8_t **data, unsigned int *len) +static int gsmtap_pdch(const struct osmo_phsap_prim *l1sap, + uint8_t *chan_type, uint8_t *ss, uint32_t fn, + uint8_t **data, unsigned int *len) { struct msgb *msg = l1sap->oph.msg; @@ -430,8 +432,9 @@ return 0; } -static int gsmtap_ph_rach(struct osmo_phsap_prim *l1sap, uint8_t *chan_type, - uint8_t *tn, uint8_t *ss, uint32_t *fn, uint8_t **data, unsigned int *len) +static int gsmtap_ph_rach(const struct osmo_phsap_prim *l1sap, uint8_t *chan_type, + uint8_t *tn, uint8_t *ss, uint32_t *fn, + uint8_t **data, unsigned int *len) { uint8_t chan_nr = l1sap->u.rach_ind.chan_nr; static uint8_t ra_buf[2]; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22392 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: If353ba78b59af2b0a62bbd0c812a46990b07776f Gerrit-Change-Number: 22392 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 23 16:35:12 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 23 Jan 2021 16:35:12 +0000 Subject: Change in osmo-bts[master]: l1sap: include Uplink RSSI in GSMTAP packets References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/22393 ) Change subject: l1sap: include Uplink RSSI in GSMTAP packets ...................................................................... l1sap: include Uplink RSSI in GSMTAP packets Change-Id: I99a257c0320b08b62270a35796bee7f8e862e3ab Related: SYS#5073 --- M src/common/l1sap.c 1 file changed, 5 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/93/22393/1 diff --git a/src/common/l1sap.c b/src/common/l1sap.c index eb610dc..1542c8a 100644 --- a/src/common/l1sap.c +++ b/src/common/l1sap.c @@ -505,6 +505,7 @@ uint8_t chan_type = 0, tn = 0, ss = 0; uint32_t fn; uint16_t uplink = GSMTAP_ARFCN_F_UPLINK; + int8_t signal_dbm; int rc; if (!gsmtap) @@ -523,10 +524,12 @@ else rc = gsmtap_ph_data(l1sap, &chan_type, &ss, fn, &data, &len, num_agch(trx, "GSMTAP")); + signal_dbm = l1sap->u.data.rssi; break; case OSMO_PRIM(PRIM_PH_RACH, PRIM_OP_INDICATION): rc = gsmtap_ph_rach(l1sap, &chan_type, &tn, &ss, &fn, &data, &len); + signal_dbm = l1sap->u.rach_ind.rssi; break; default: rc = -ENOTSUP; @@ -550,8 +553,8 @@ if (is_fill_frame(chan_type, data, len)) return 0; - gsmtap_send(gsmtap, trx->arfcn | uplink, tn, chan_type, ss, fn, 0, 0, - data, len); + gsmtap_send(gsmtap, trx->arfcn | uplink, tn, chan_type, ss, fn, + signal_dbm, 0 /* TODO: SNR */, data, len); return 0; } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22393 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I99a257c0320b08b62270a35796bee7f8e862e3ab Gerrit-Change-Number: 22393 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 23 17:00:00 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 23 Jan 2021 17:00:00 +0000 Subject: Change in osmo-cbc[master]: debian/osmo-cbc.install: Fix typo (extra apostrophe at EOL) In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22391 ) Change subject: debian/osmo-cbc.install: Fix typo (extra apostrophe at EOL) ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22391 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: Iebd5e3ca1e3c1f998c112f9c5f5fdcf5e0d24f35 Gerrit-Change-Number: 22391 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Sat, 23 Jan 2021 17:00:00 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 23 19:25:00 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Sat, 23 Jan 2021 19:25:00 +0000 Subject: Change in osmo-bts[master]: l1sap: fix gsmtap_ph_{data, pdch, rach}(): use 'const' In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/22392 ) Change subject: l1sap: fix gsmtap_ph_{data,pdch,rach}(): use 'const' ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22392 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: If353ba78b59af2b0a62bbd0c812a46990b07776f Gerrit-Change-Number: 22392 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 23 Jan 2021 19:25:00 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 23 19:27:13 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Sat, 23 Jan 2021 19:27:13 +0000 Subject: Change in osmo-bts[master]: l1sap: include Uplink RSSI in GSMTAP packets In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/22393 ) Change subject: l1sap: include Uplink RSSI in GSMTAP packets ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22393 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I99a257c0320b08b62270a35796bee7f8e862e3ab Gerrit-Change-Number: 22393 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 23 Jan 2021 19:27:13 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 23 20:04:27 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 23 Jan 2021 20:04:27 +0000 Subject: Change in osmo-pcu[master]: Introduce NACC support In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22385 ) Change subject: Introduce NACC support ...................................................................... Patch Set 4: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-pcu/+/22385/4/src/gprs_bssgp_rim.c File src/gprs_bssgp_rim.c: https://gerrit.osmocom.org/c/osmo-pcu/+/22385/4/src/gprs_bssgp_rim.c at 123 PS4, Line 123: B BBCCH? -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22385 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Id35f40d05f3e081f32fddbf1fa34cb338db452ca Gerrit-Change-Number: 22385 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-CC: laforge Gerrit-Comment-Date: Sat, 23 Jan 2021 20:04:27 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 23 20:54:23 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 23 Jan 2021 20:54:23 +0000 Subject: Change in osmo-cbc[master]: charset: Fix padding of USSD messages in 7bit GSM alphabet References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22394 ) Change subject: charset: Fix padding of USSD messages in 7bit GSM alphabet ...................................................................... charset: Fix padding of USSD messages in 7bit GSM alphabet USSD messages are sent in pages of 82 bytes, and there is no way to indicate a shorter payload length inside the page. Hence, we always must pad up to the end of the page, using characters. Change-Id: I9950431e920579e6c3a0d12348573f51d21739ec --- M src/charset.c 1 file changed, 30 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-cbc refs/changes/94/22394/1 diff --git a/src/charset.c b/src/charset.c index 444743b..efaff8e 100644 --- a/src/charset.c +++ b/src/charset.c @@ -26,13 +26,40 @@ #include "charset.h" +/* pad the entire "remainder" of a buffer with repeated instances of the given pad character */ +static void pad_with_septets(uint8_t *buf, size_t buf_len, int num_septets, char pad_char) +{ + unsigned int bit_offset; + + for (bit_offset = num_septets * 7; bit_offset + 7 <= buf_len * 8; bit_offset += 7) { + unsigned int byte_offset = bit_offset / 8; + unsigned int bits = bit_offset % 8; + + /* put one more septet */ + buf[byte_offset] |= ((pad_char << bits) & 0xff); + if (bits > 1) + buf[byte_offset+1] = (pad_char) >> (8-bits); + } +} + + /* return number of output bytes written */ int charset_utf8_to_gsm7(uint8_t *out, size_t out_len, const char *in, size_t in_len) { - int octets; + int octets, num_septets, num_bits, num_bytes_used; + /* FIXME: implement this for 'escape' characters outside 7bit alphabet */ - gsm_7bit_encode_n_ussd(out, out_len, in, &octets); - return octets; + num_septets = gsm_7bit_encode_n(out, out_len, in, &octets); + num_bits = num_septets * 7; + + /* we need to pad the entire remainder of the message with */ + pad_with_septets(out, out_len, num_septets, '\r'); + + /* return actual number of output octets used, excluding any padding */ + num_bytes_used = num_bits/8; + if (num_bits % 8) + num_bytes_used++; + return num_bytes_used; } /* return number of output bytes written */ -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22394 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: I9950431e920579e6c3a0d12348573f51d21739ec Gerrit-Change-Number: 22394 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 23 20:54:23 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 23 Jan 2021 20:54:23 +0000 Subject: Change in osmo-cbc[master]: spec file: Add missing libulfius dependency References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22395 ) Change subject: spec file: Add missing libulfius dependency ...................................................................... spec file: Add missing libulfius dependency Change-Id: I2ebef5f5e2d749af094d31cac493dcb5ac2d7866 --- M contrib/osmo-cbc.spec.in 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-cbc refs/changes/95/22395/1 diff --git a/contrib/osmo-cbc.spec.in b/contrib/osmo-cbc.spec.in index ca876c8..a241d0e 100644 --- a/contrib/osmo-cbc.spec.in +++ b/contrib/osmo-cbc.spec.in @@ -42,6 +42,7 @@ BuildRequires: pkgconfig(libosmogsm) >= 1.2.0 BuildRequires: pkgconfig(libosmovty) >= 1.2.0 BuildRequires: pkgconfig(talloc) +BuildRequires: pkgconfig(libulfius) %{?systemd_requires} %description -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22395 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: I2ebef5f5e2d749af094d31cac493dcb5ac2d7866 Gerrit-Change-Number: 22395 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 23 20:56:59 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 23 Jan 2021 20:56:59 +0000 Subject: Change in osmo-cbc[master]: charset: Fix padding of USSD messages in 7bit GSM alphabet In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22394 ) Change subject: charset: Fix padding of USSD messages in 7bit GSM alphabet ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22394 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: I9950431e920579e6c3a0d12348573f51d21739ec Gerrit-Change-Number: 22394 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 23 Jan 2021 20:56:59 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 23 20:57:02 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 23 Jan 2021 20:57:02 +0000 Subject: Change in osmo-cbc[master]: spec file: Add missing libulfius dependency In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22395 ) Change subject: spec file: Add missing libulfius dependency ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22395 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: I2ebef5f5e2d749af094d31cac493dcb5ac2d7866 Gerrit-Change-Number: 22395 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 23 Jan 2021 20:57:02 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 23 20:57:04 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 23 Jan 2021 20:57:04 +0000 Subject: Change in osmo-cbc[master]: debian/osmo-cbc.install: Fix typo (extra apostrophe at EOL) In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22391 ) Change subject: debian/osmo-cbc.install: Fix typo (extra apostrophe at EOL) ...................................................................... debian/osmo-cbc.install: Fix typo (extra apostrophe at EOL) Change-Id: Iebd5e3ca1e3c1f998c112f9c5f5fdcf5e0d24f35 --- M debian/osmo-cbc.install 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, approved diff --git a/debian/osmo-cbc.install b/debian/osmo-cbc.install index cbe4f22..76373fd 100644 --- a/debian/osmo-cbc.install +++ b/debian/osmo-cbc.install @@ -1,4 +1,4 @@ /etc/osmocom/osmo-cbc.cfg lib/systemd/system/osmo-cbc.service usr/bin/osmo-cbc -usr/share/doc/osmo-cbc/examples/osmo-cbc/*.cfg usr/share/doc/osmo-bsc/examples` +usr/share/doc/osmo-cbc/examples/osmo-cbc/*.cfg usr/share/doc/osmo-bsc/examples -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22391 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: Iebd5e3ca1e3c1f998c112f9c5f5fdcf5e0d24f35 Gerrit-Change-Number: 22391 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 23 20:57:05 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 23 Jan 2021 20:57:05 +0000 Subject: Change in osmo-cbc[master]: charset: Fix padding of USSD messages in 7bit GSM alphabet In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22394 ) Change subject: charset: Fix padding of USSD messages in 7bit GSM alphabet ...................................................................... charset: Fix padding of USSD messages in 7bit GSM alphabet USSD messages are sent in pages of 82 bytes, and there is no way to indicate a shorter payload length inside the page. Hence, we always must pad up to the end of the page, using characters. Change-Id: I9950431e920579e6c3a0d12348573f51d21739ec --- M src/charset.c 1 file changed, 30 insertions(+), 3 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/charset.c b/src/charset.c index 444743b..efaff8e 100644 --- a/src/charset.c +++ b/src/charset.c @@ -26,13 +26,40 @@ #include "charset.h" +/* pad the entire "remainder" of a buffer with repeated instances of the given pad character */ +static void pad_with_septets(uint8_t *buf, size_t buf_len, int num_septets, char pad_char) +{ + unsigned int bit_offset; + + for (bit_offset = num_septets * 7; bit_offset + 7 <= buf_len * 8; bit_offset += 7) { + unsigned int byte_offset = bit_offset / 8; + unsigned int bits = bit_offset % 8; + + /* put one more septet */ + buf[byte_offset] |= ((pad_char << bits) & 0xff); + if (bits > 1) + buf[byte_offset+1] = (pad_char) >> (8-bits); + } +} + + /* return number of output bytes written */ int charset_utf8_to_gsm7(uint8_t *out, size_t out_len, const char *in, size_t in_len) { - int octets; + int octets, num_septets, num_bits, num_bytes_used; + /* FIXME: implement this for 'escape' characters outside 7bit alphabet */ - gsm_7bit_encode_n_ussd(out, out_len, in, &octets); - return octets; + num_septets = gsm_7bit_encode_n(out, out_len, in, &octets); + num_bits = num_septets * 7; + + /* we need to pad the entire remainder of the message with */ + pad_with_septets(out, out_len, num_septets, '\r'); + + /* return actual number of output octets used, excluding any padding */ + num_bytes_used = num_bits/8; + if (num_bits % 8) + num_bytes_used++; + return num_bytes_used; } /* return number of output bytes written */ -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22394 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: I9950431e920579e6c3a0d12348573f51d21739ec Gerrit-Change-Number: 22394 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 23 20:57:05 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 23 Jan 2021 20:57:05 +0000 Subject: Change in osmo-cbc[master]: spec file: Add missing libulfius dependency In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22395 ) Change subject: spec file: Add missing libulfius dependency ...................................................................... spec file: Add missing libulfius dependency Change-Id: I2ebef5f5e2d749af094d31cac493dcb5ac2d7866 --- M contrib/osmo-cbc.spec.in 1 file changed, 1 insertion(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/contrib/osmo-cbc.spec.in b/contrib/osmo-cbc.spec.in index ca876c8..a241d0e 100644 --- a/contrib/osmo-cbc.spec.in +++ b/contrib/osmo-cbc.spec.in @@ -42,6 +42,7 @@ BuildRequires: pkgconfig(libosmogsm) >= 1.2.0 BuildRequires: pkgconfig(libosmovty) >= 1.2.0 BuildRequires: pkgconfig(talloc) +BuildRequires: pkgconfig(libulfius) %{?systemd_requires} %description -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22395 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: I2ebef5f5e2d749af094d31cac493dcb5ac2d7866 Gerrit-Change-Number: 22395 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 23 20:57:39 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 23 Jan 2021 20:57:39 +0000 Subject: Change in osmo-bts[master]: l1sap: include Uplink RSSI in GSMTAP packets In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/22393 ) Change subject: l1sap: include Uplink RSSI in GSMTAP packets ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22393 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I99a257c0320b08b62270a35796bee7f8e862e3ab Gerrit-Change-Number: 22393 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 23 Jan 2021 20:57:39 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 23 20:58:07 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 23 Jan 2021 20:58:07 +0000 Subject: Change in osmo-bts[master]: l1sap: fix gsmtap_ph_{data, pdch, rach}(): use 'const' In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/22392 ) Change subject: l1sap: fix gsmtap_ph_{data,pdch,rach}(): use 'const' ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22392 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: If353ba78b59af2b0a62bbd0c812a46990b07776f Gerrit-Change-Number: 22392 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 23 Jan 2021 20:58:07 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 23 20:58:14 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 23 Jan 2021 20:58:14 +0000 Subject: Change in osmo-bts[master]: l1sap: fix gsmtap_ph_{data, pdch, rach}(): use 'const' In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/22392 ) Change subject: l1sap: fix gsmtap_ph_{data,pdch,rach}(): use 'const' ...................................................................... l1sap: fix gsmtap_ph_{data,pdch,rach}(): use 'const' Change-Id: If353ba78b59af2b0a62bbd0c812a46990b07776f --- M src/common/l1sap.c 1 file changed, 9 insertions(+), 6 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/src/common/l1sap.c b/src/common/l1sap.c index 439db03..eb610dc 100644 --- a/src/common/l1sap.c +++ b/src/common/l1sap.c @@ -368,8 +368,9 @@ }; /* send primitive as gsmtap */ -static int gsmtap_ph_data(struct osmo_phsap_prim *l1sap, uint8_t *chan_type, - uint8_t *ss, uint32_t fn, uint8_t **data, unsigned int *len, +static int gsmtap_ph_data(const struct osmo_phsap_prim *l1sap, + uint8_t *chan_type, uint8_t *ss, uint32_t fn, + uint8_t **data, unsigned int *len, uint8_t num_agch) { struct msgb *msg = l1sap->oph.msg; @@ -411,8 +412,9 @@ return 0; } -static int gsmtap_pdch(struct osmo_phsap_prim *l1sap, uint8_t *chan_type, - uint8_t *ss, uint32_t fn, uint8_t **data, unsigned int *len) +static int gsmtap_pdch(const struct osmo_phsap_prim *l1sap, + uint8_t *chan_type, uint8_t *ss, uint32_t fn, + uint8_t **data, unsigned int *len) { struct msgb *msg = l1sap->oph.msg; @@ -430,8 +432,9 @@ return 0; } -static int gsmtap_ph_rach(struct osmo_phsap_prim *l1sap, uint8_t *chan_type, - uint8_t *tn, uint8_t *ss, uint32_t *fn, uint8_t **data, unsigned int *len) +static int gsmtap_ph_rach(const struct osmo_phsap_prim *l1sap, uint8_t *chan_type, + uint8_t *tn, uint8_t *ss, uint32_t *fn, + uint8_t **data, unsigned int *len) { uint8_t chan_nr = l1sap->u.rach_ind.chan_nr; static uint8_t ra_buf[2]; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22392 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: If353ba78b59af2b0a62bbd0c812a46990b07776f Gerrit-Change-Number: 22392 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 23 20:58:15 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 23 Jan 2021 20:58:15 +0000 Subject: Change in osmo-bts[master]: l1sap: include Uplink RSSI in GSMTAP packets In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/22393 ) Change subject: l1sap: include Uplink RSSI in GSMTAP packets ...................................................................... l1sap: include Uplink RSSI in GSMTAP packets Change-Id: I99a257c0320b08b62270a35796bee7f8e862e3ab Related: SYS#5073 --- M src/common/l1sap.c 1 file changed, 5 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/src/common/l1sap.c b/src/common/l1sap.c index eb610dc..1542c8a 100644 --- a/src/common/l1sap.c +++ b/src/common/l1sap.c @@ -505,6 +505,7 @@ uint8_t chan_type = 0, tn = 0, ss = 0; uint32_t fn; uint16_t uplink = GSMTAP_ARFCN_F_UPLINK; + int8_t signal_dbm; int rc; if (!gsmtap) @@ -523,10 +524,12 @@ else rc = gsmtap_ph_data(l1sap, &chan_type, &ss, fn, &data, &len, num_agch(trx, "GSMTAP")); + signal_dbm = l1sap->u.data.rssi; break; case OSMO_PRIM(PRIM_PH_RACH, PRIM_OP_INDICATION): rc = gsmtap_ph_rach(l1sap, &chan_type, &tn, &ss, &fn, &data, &len); + signal_dbm = l1sap->u.rach_ind.rssi; break; default: rc = -ENOTSUP; @@ -550,8 +553,8 @@ if (is_fill_frame(chan_type, data, len)) return 0; - gsmtap_send(gsmtap, trx->arfcn | uplink, tn, chan_type, ss, fn, 0, 0, - data, len); + gsmtap_send(gsmtap, trx->arfcn | uplink, tn, chan_type, ss, fn, + signal_dbm, 0 /* TODO: SNR */, data, len); return 0; } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22393 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I99a257c0320b08b62270a35796bee7f8e862e3ab Gerrit-Change-Number: 22393 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 23 21:08:20 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 23 Jan 2021 21:08:20 +0000 Subject: Change in osmo-pcu[master]: Introduce NACC support In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22385 ) Change subject: Introduce NACC support ...................................................................... Patch Set 4: -Code-Review I just noticed all Laf0rge's comments. -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22385 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Id35f40d05f3e081f32fddbf1fa34cb338db452ca Gerrit-Change-Number: 22385 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-CC: laforge Gerrit-Comment-Date: Sat, 23 Jan 2021 21:08:20 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 23 22:49:09 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 23 Jan 2021 22:49:09 +0000 Subject: Change in osmo-cbc[master]: cbc-apitool.py: Generalize, make parameters configurable References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22396 ) Change subject: cbc-apitool.py: Generalize, make parameters configurable ...................................................................... cbc-apitool.py: Generalize, make parameters configurable Do away with most of the hard-coded defaults and allow user to specify a variety of parameters via the command line. Also, start to use argparse subparsers for better usability Change-Id: Ib7b8121676bef9310f219affc6f3cc76b6986b2a --- M contrib/cbc-apitool.py 1 file changed, 99 insertions(+), 72 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-cbc refs/changes/96/22396/1 diff --git a/contrib/cbc-apitool.py b/contrib/cbc-apitool.py index 1b68386..c7ebcfa 100755 --- a/contrib/cbc-apitool.py +++ b/contrib/cbc-apitool.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 # -# (C) 2020 by Harald Welte +# (C) 2020-2021 by Harald Welte # # SPDX-License-Identifier: MIT # @@ -25,18 +25,89 @@ if verbose: print("POST %s (%s)" % (url, str(js))) resp = requests.post(url, json=js) + if verbose: + print("-> %s" % (resp)) if not resp.ok: print("POST failed") + return resp def rest_delete(suffix, js = None): url = build_url(suffix) if verbose: print("DELETE %s (%s)" % (url, str(js))) resp = requests.delete(url, json=js) + if verbose: + print("-> %s" % (resp)) if not resp.ok: print("DELETE failed " + str(resp)) + return resp +def do_create_cbs(args): + js = { + 'cbe_name': "cbc_apitool", + 'category': "normal", + 'repetition_period': args.repetition_period, + 'num_of_bcast': args.num_of_bcast, + 'scope': { + 'scope_plmn': { } + }, + 'smscb_message': { + 'message_id': args.msg_id, + 'serial_nr': { + 'serial_nr_decoded': { + 'geo_scope': "plmn_wide", + 'msg_code': args.msg_code, + 'update_nr': args.update_nr + } + }, + 'payload': { + 'payload_decoded': { + 'character_set': "gsm", + #'language': 'en', + 'data_utf8': args.payload_data_utf8, + #'data_utf8': "Mahlzeit1 Mahlzeit2 Mahlzeit3 Mahlzeit4 Mahlzeit5 Mahlzeit6 Mahlzeit7 Mahlzeit8" + #'data_utf8': "Mahlzeit1 Mahlzeit2 Mahlzeit3 Mahlzeit4 Mahlzeit5 Mahlzeit6 Mahlzeit7 Mahlzeit8 Mahlzeit9 Mahlzeit10 Mahlzeti11 Mahlzeit12 Mahlzeit13 Mahlzeit14 Mahlzeit15 Mahlzeit16 Mahlzeit17 Mahlzeit18 Mahlzeit19 Mahlzeit20 Mahlzeit21 Mahlzeit22 Mahlzeit23 Mahlzeit24 Mahlzeit25 Mahlzeit26 Mahlzeit27 Mahlzeit28" + } + } + } + } + rest_post("/message", js); + +def do_create_etws(args): + js = { + 'cbe_name': "cbc_apitool", + 'category': "normal", + 'repetition_period': args.repetition_period, + 'num_of_bcast': args.num_of_bcast, + 'scope': { + 'scope_plmn': { } + }, + 'smscb_message': { + 'message_id': args.msg_id, + 'serial_nr': { + 'serial_nr_decoded': { + 'geo_scope': "plmn_wide", + 'msg_code': args.msg_code, + 'update_nr': args.update_nr + } + }, + 'payload': { + 'payload_etws': { + 'warning_type': { + 'warning_type_decoded': 'earthquake' + }, + 'emergency_user_alert': True, + 'popup_on_display': True + } + } + } + } + rest_post("/message", js); + + +def do_delete(args): + rest_delete("/message/%u" % (args.msg_id)) def main(argv): global server_port, server_host, verbose @@ -46,83 +117,39 @@ parser.add_argument("-p", "--port", help="TCP port to connect to", default=12345) parser.add_argument("-v", "--verbose", help="increase output verbosity", action='count', default=0) - group = parser.add_mutually_exclusive_group() - group.add_argument("-c", "--create-cbs", type=int, nargs=1, metavar=('msg_id')) - group.add_argument("-e", "--create-etws", type=int, nargs=1, metavar=('msg_id')) - group.add_argument("-d", "--delete", type=int, nargs=1, metavar=('msg_id')) + subparsers = parser.add_subparsers(required=True) - args = parser.parse_args() + parser_c_cbs = subparsers.add_parser('create-cbs', help='Create a new CBS message') + parser_c_cbs.add_argument("--msg-id", type=int, help='Message Identifier', required=True) + parser_c_cbs.add_argument("--msg-code", type=int, help='Message Code', default=768) + parser_c_cbs.add_argument("--update-nr", type=int, help='Update Number', default=0) + parser_c_cbs.add_argument("--repetition-period", type=int, help='Repetition Period', default=5) + parser_c_cbs.add_argument("--num-of-bcast", type=int, help='Number of Broadcasts', default=999) + parser_c_cbs.add_argument("--payload-data-utf8", type=str, help='Payload Data in UTF8', required=True) + parser_c_cbs.set_defaults(func=do_create_cbs) + + parser_c_etws = subparsers.add_parser('create-etws', help='Create a new ETWS message') + parser_c_etws.add_argument("--msg-id", type=int, help='Message Identifier', required=True) + parser_c_etws.add_argument("--msg-code", type=int, help='Message Code', default=768) + parser_c_etws.add_argument("--update-nr", type=int, help='Update Number', default=0) + parser_c_etws.add_argument("--repetition-period", type=int, help='Repetition Period', default=5) + parser_c_etws.add_argument("--num-of-bcast", type=int, help='Number of Broadcasts', default=999) + parser_c_etws.set_defaults(func=do_create_etws) + + parser_delete = subparsers.add_parser('delete', help='Delete a message') + parser_delete.add_argument("--msg-id", type=int, help='Message Identifier', required=True) + parser_delete.set_defaults(func=do_delete) + + argv = sys.argv + if len(sys.argv) == 1: + argv = ['-h'] + args = parser.parse_args(argv) server_host = args.host server_port = args.port verbose = args.verbose - if args.create_cbs: - js = { - 'cbe_name': "cbc_apitool", - 'category': "normal", - 'repetition_period': 5, - 'num_of_bcast': 888, - 'scope': { - 'scope_plmn': { } - }, - 'smscb_message': { - 'message_id': int(args.create_cbs[0]), - 'serial_nr': { - 'serial_nr_decoded': { - 'geo_scope': "plmn_wide", - 'msg_code': 768, - 'update_nr': 0 - } - }, - 'payload': { - 'payload_decoded': { - 'character_set': "gsm", - #'language': 'en', - #'data_utf8': "Mahlzeit!" - 'data_utf8': "Mahlzeit1 Mahlzeit2 Mahlzeit3 Mahlzeit4 Mahlzeit5 Mahlzeit6 Mahlzeit7 Mahlzeit8" - #'data_utf8': "Mahlzeit1 Mahlzeit2 Mahlzeit3 Mahlzeit4 Mahlzeit5 Mahlzeit6 Mahlzeit7 Mahlzeit8 Mahlzeit9 Mahlzeit10 Mahlzeti11 Mahlzeit12 Mahlzeit13 Mahlzeit14 Mahlzeit15 Mahlzeit16 Mahlzeit17 Mahlzeit18 Mahlzeit19 Mahlzeit20 Mahlzeit21 Mahlzeit22 Mahlzeit23 Mahlzeit24 Mahlzeit25 Mahlzeit26 Mahlzeit27 Mahlzeit28" - } - } - } - } - rest_post("/message", js); - - elif args.create_etws: - js = { - 'cbe_name': "cbc_apitool", - 'category': "normal", - 'repetition_period': 5, - 'num_of_bcast': 999, - 'scope': { - 'scope_plmn': { } - }, - 'smscb_message': { - 'message_id': int(args.create_etws[0]), - 'serial_nr': { - 'serial_nr_decoded': { - 'geo_scope': "plmn_wide", - 'msg_code': 768, - 'update_nr': 0 - } - }, - 'payload': { - 'payload_etws': { - 'warning_type': { - 'warning_type_decoded': 'earthquake' - }, - 'emergency_user_alert': True, - 'popup_on_display': True - } - } - } - } - rest_post("/message", js); - - elif args.delete: - rest_delete("/message/%u" % (args.delete[0])) - else: - print("No operation?!"); + args.func(args) if __name__ == "__main__": -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22396 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: Ib7b8121676bef9310f219affc6f3cc76b6986b2a Gerrit-Change-Number: 22396 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 23 23:10:32 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 23 Jan 2021 23:10:32 +0000 Subject: Change in osmo-cbc[master]: osmo-cbc.spec: Don't depend on libosmo-mgcp-client References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22397 ) Change subject: osmo-cbc.spec: Don't depend on libosmo-mgcp-client ...................................................................... osmo-cbc.spec: Don't depend on libosmo-mgcp-client The CBC has nothing to do with MGCP Change-Id: Ie2f1f67d8141b2437e723fb27e1d1c3225156a91 --- M contrib/osmo-cbc.spec.in 1 file changed, 0 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-cbc refs/changes/97/22397/1 diff --git a/contrib/osmo-cbc.spec.in b/contrib/osmo-cbc.spec.in index a241d0e..b44b4fe 100644 --- a/contrib/osmo-cbc.spec.in +++ b/contrib/osmo-cbc.spec.in @@ -31,7 +31,6 @@ BuildRequires: systemd-rpm-macros %endif BuildRequires: pkgconfig(libcrypto) >= 0.9.5 -BuildRequires: pkgconfig(libosmo-mgcp-client) >= 1.5.0 BuildRequires: pkgconfig(libosmo-netif) >= 0.6.0 BuildRequires: pkgconfig(libosmo-sccp) >= 0.10.0 BuildRequires: pkgconfig(libosmo-sigtran) >= 0.10.0 -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22397 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: Ie2f1f67d8141b2437e723fb27e1d1c3225156a91 Gerrit-Change-Number: 22397 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 23 23:10:33 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 23 Jan 2021 23:10:33 +0000 Subject: Change in osmo-cbc[master]: osmo-cbc.spec: No AUTHORS file; correct name of README.md References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22398 ) Change subject: osmo-cbc.spec: No AUTHORS file; correct name of README.md ...................................................................... osmo-cbc.spec: No AUTHORS file; correct name of README.md Change-Id: Ia53e6d1fe785e6bfc92f305963cf06b760f30edd --- M contrib/osmo-cbc.spec.in 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-cbc refs/changes/98/22398/1 diff --git a/contrib/osmo-cbc.spec.in b/contrib/osmo-cbc.spec.in index b44b4fe..bd90c51 100644 --- a/contrib/osmo-cbc.spec.in +++ b/contrib/osmo-cbc.spec.in @@ -80,7 +80,7 @@ %files %license COPYING -%doc AUTHORS README +%doc README.md %{_bindir}/osmo-cbc %dir %{_docdir}/%{name}/examples %dir %{_docdir}/%{name}/examples/osmo-cbc -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22398 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: Ia53e6d1fe785e6bfc92f305963cf06b760f30edd Gerrit-Change-Number: 22398 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 23 23:10:48 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 23 Jan 2021 23:10:48 +0000 Subject: Change in osmo-cbc[master]: cbc-apitool.py: Generalize, make parameters configurable In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22396 ) Change subject: cbc-apitool.py: Generalize, make parameters configurable ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22396 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: Ib7b8121676bef9310f219affc6f3cc76b6986b2a Gerrit-Change-Number: 22396 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 23 Jan 2021 23:10:48 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 23 23:10:55 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 23 Jan 2021 23:10:55 +0000 Subject: Change in osmo-cbc[master]: osmo-cbc.spec: Don't depend on libosmo-mgcp-client In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22397 ) Change subject: osmo-cbc.spec: Don't depend on libosmo-mgcp-client ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22397 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: Ie2f1f67d8141b2437e723fb27e1d1c3225156a91 Gerrit-Change-Number: 22397 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Sat, 23 Jan 2021 23:10:55 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 23 23:11:00 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 23 Jan 2021 23:11:00 +0000 Subject: Change in osmo-cbc[master]: osmo-cbc.spec: No AUTHORS file; correct name of README.md In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22398 ) Change subject: osmo-cbc.spec: No AUTHORS file; correct name of README.md ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22398 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: Ia53e6d1fe785e6bfc92f305963cf06b760f30edd Gerrit-Change-Number: 22398 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Sat, 23 Jan 2021 23:11:00 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 23 23:11:03 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 23 Jan 2021 23:11:03 +0000 Subject: Change in osmo-cbc[master]: cbc-apitool.py: Generalize, make parameters configurable In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22396 ) Change subject: cbc-apitool.py: Generalize, make parameters configurable ...................................................................... cbc-apitool.py: Generalize, make parameters configurable Do away with most of the hard-coded defaults and allow user to specify a variety of parameters via the command line. Also, start to use argparse subparsers for better usability Change-Id: Ib7b8121676bef9310f219affc6f3cc76b6986b2a --- M contrib/cbc-apitool.py 1 file changed, 99 insertions(+), 72 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/contrib/cbc-apitool.py b/contrib/cbc-apitool.py index 1b68386..c7ebcfa 100755 --- a/contrib/cbc-apitool.py +++ b/contrib/cbc-apitool.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 # -# (C) 2020 by Harald Welte +# (C) 2020-2021 by Harald Welte # # SPDX-License-Identifier: MIT # @@ -25,18 +25,89 @@ if verbose: print("POST %s (%s)" % (url, str(js))) resp = requests.post(url, json=js) + if verbose: + print("-> %s" % (resp)) if not resp.ok: print("POST failed") + return resp def rest_delete(suffix, js = None): url = build_url(suffix) if verbose: print("DELETE %s (%s)" % (url, str(js))) resp = requests.delete(url, json=js) + if verbose: + print("-> %s" % (resp)) if not resp.ok: print("DELETE failed " + str(resp)) + return resp +def do_create_cbs(args): + js = { + 'cbe_name': "cbc_apitool", + 'category': "normal", + 'repetition_period': args.repetition_period, + 'num_of_bcast': args.num_of_bcast, + 'scope': { + 'scope_plmn': { } + }, + 'smscb_message': { + 'message_id': args.msg_id, + 'serial_nr': { + 'serial_nr_decoded': { + 'geo_scope': "plmn_wide", + 'msg_code': args.msg_code, + 'update_nr': args.update_nr + } + }, + 'payload': { + 'payload_decoded': { + 'character_set': "gsm", + #'language': 'en', + 'data_utf8': args.payload_data_utf8, + #'data_utf8': "Mahlzeit1 Mahlzeit2 Mahlzeit3 Mahlzeit4 Mahlzeit5 Mahlzeit6 Mahlzeit7 Mahlzeit8" + #'data_utf8': "Mahlzeit1 Mahlzeit2 Mahlzeit3 Mahlzeit4 Mahlzeit5 Mahlzeit6 Mahlzeit7 Mahlzeit8 Mahlzeit9 Mahlzeit10 Mahlzeti11 Mahlzeit12 Mahlzeit13 Mahlzeit14 Mahlzeit15 Mahlzeit16 Mahlzeit17 Mahlzeit18 Mahlzeit19 Mahlzeit20 Mahlzeit21 Mahlzeit22 Mahlzeit23 Mahlzeit24 Mahlzeit25 Mahlzeit26 Mahlzeit27 Mahlzeit28" + } + } + } + } + rest_post("/message", js); + +def do_create_etws(args): + js = { + 'cbe_name': "cbc_apitool", + 'category': "normal", + 'repetition_period': args.repetition_period, + 'num_of_bcast': args.num_of_bcast, + 'scope': { + 'scope_plmn': { } + }, + 'smscb_message': { + 'message_id': args.msg_id, + 'serial_nr': { + 'serial_nr_decoded': { + 'geo_scope': "plmn_wide", + 'msg_code': args.msg_code, + 'update_nr': args.update_nr + } + }, + 'payload': { + 'payload_etws': { + 'warning_type': { + 'warning_type_decoded': 'earthquake' + }, + 'emergency_user_alert': True, + 'popup_on_display': True + } + } + } + } + rest_post("/message", js); + + +def do_delete(args): + rest_delete("/message/%u" % (args.msg_id)) def main(argv): global server_port, server_host, verbose @@ -46,83 +117,39 @@ parser.add_argument("-p", "--port", help="TCP port to connect to", default=12345) parser.add_argument("-v", "--verbose", help="increase output verbosity", action='count', default=0) - group = parser.add_mutually_exclusive_group() - group.add_argument("-c", "--create-cbs", type=int, nargs=1, metavar=('msg_id')) - group.add_argument("-e", "--create-etws", type=int, nargs=1, metavar=('msg_id')) - group.add_argument("-d", "--delete", type=int, nargs=1, metavar=('msg_id')) + subparsers = parser.add_subparsers(required=True) - args = parser.parse_args() + parser_c_cbs = subparsers.add_parser('create-cbs', help='Create a new CBS message') + parser_c_cbs.add_argument("--msg-id", type=int, help='Message Identifier', required=True) + parser_c_cbs.add_argument("--msg-code", type=int, help='Message Code', default=768) + parser_c_cbs.add_argument("--update-nr", type=int, help='Update Number', default=0) + parser_c_cbs.add_argument("--repetition-period", type=int, help='Repetition Period', default=5) + parser_c_cbs.add_argument("--num-of-bcast", type=int, help='Number of Broadcasts', default=999) + parser_c_cbs.add_argument("--payload-data-utf8", type=str, help='Payload Data in UTF8', required=True) + parser_c_cbs.set_defaults(func=do_create_cbs) + + parser_c_etws = subparsers.add_parser('create-etws', help='Create a new ETWS message') + parser_c_etws.add_argument("--msg-id", type=int, help='Message Identifier', required=True) + parser_c_etws.add_argument("--msg-code", type=int, help='Message Code', default=768) + parser_c_etws.add_argument("--update-nr", type=int, help='Update Number', default=0) + parser_c_etws.add_argument("--repetition-period", type=int, help='Repetition Period', default=5) + parser_c_etws.add_argument("--num-of-bcast", type=int, help='Number of Broadcasts', default=999) + parser_c_etws.set_defaults(func=do_create_etws) + + parser_delete = subparsers.add_parser('delete', help='Delete a message') + parser_delete.add_argument("--msg-id", type=int, help='Message Identifier', required=True) + parser_delete.set_defaults(func=do_delete) + + argv = sys.argv + if len(sys.argv) == 1: + argv = ['-h'] + args = parser.parse_args(argv) server_host = args.host server_port = args.port verbose = args.verbose - if args.create_cbs: - js = { - 'cbe_name': "cbc_apitool", - 'category': "normal", - 'repetition_period': 5, - 'num_of_bcast': 888, - 'scope': { - 'scope_plmn': { } - }, - 'smscb_message': { - 'message_id': int(args.create_cbs[0]), - 'serial_nr': { - 'serial_nr_decoded': { - 'geo_scope': "plmn_wide", - 'msg_code': 768, - 'update_nr': 0 - } - }, - 'payload': { - 'payload_decoded': { - 'character_set': "gsm", - #'language': 'en', - #'data_utf8': "Mahlzeit!" - 'data_utf8': "Mahlzeit1 Mahlzeit2 Mahlzeit3 Mahlzeit4 Mahlzeit5 Mahlzeit6 Mahlzeit7 Mahlzeit8" - #'data_utf8': "Mahlzeit1 Mahlzeit2 Mahlzeit3 Mahlzeit4 Mahlzeit5 Mahlzeit6 Mahlzeit7 Mahlzeit8 Mahlzeit9 Mahlzeit10 Mahlzeti11 Mahlzeit12 Mahlzeit13 Mahlzeit14 Mahlzeit15 Mahlzeit16 Mahlzeit17 Mahlzeit18 Mahlzeit19 Mahlzeit20 Mahlzeit21 Mahlzeit22 Mahlzeit23 Mahlzeit24 Mahlzeit25 Mahlzeit26 Mahlzeit27 Mahlzeit28" - } - } - } - } - rest_post("/message", js); - - elif args.create_etws: - js = { - 'cbe_name': "cbc_apitool", - 'category': "normal", - 'repetition_period': 5, - 'num_of_bcast': 999, - 'scope': { - 'scope_plmn': { } - }, - 'smscb_message': { - 'message_id': int(args.create_etws[0]), - 'serial_nr': { - 'serial_nr_decoded': { - 'geo_scope': "plmn_wide", - 'msg_code': 768, - 'update_nr': 0 - } - }, - 'payload': { - 'payload_etws': { - 'warning_type': { - 'warning_type_decoded': 'earthquake' - }, - 'emergency_user_alert': True, - 'popup_on_display': True - } - } - } - } - rest_post("/message", js); - - elif args.delete: - rest_delete("/message/%u" % (args.delete[0])) - else: - print("No operation?!"); + args.func(args) if __name__ == "__main__": -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22396 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: Ib7b8121676bef9310f219affc6f3cc76b6986b2a Gerrit-Change-Number: 22396 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 23 23:11:04 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 23 Jan 2021 23:11:04 +0000 Subject: Change in osmo-cbc[master]: osmo-cbc.spec: Don't depend on libosmo-mgcp-client In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22397 ) Change subject: osmo-cbc.spec: Don't depend on libosmo-mgcp-client ...................................................................... osmo-cbc.spec: Don't depend on libosmo-mgcp-client The CBC has nothing to do with MGCP Change-Id: Ie2f1f67d8141b2437e723fb27e1d1c3225156a91 --- M contrib/osmo-cbc.spec.in 1 file changed, 0 insertions(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved; Verified diff --git a/contrib/osmo-cbc.spec.in b/contrib/osmo-cbc.spec.in index a241d0e..b44b4fe 100644 --- a/contrib/osmo-cbc.spec.in +++ b/contrib/osmo-cbc.spec.in @@ -31,7 +31,6 @@ BuildRequires: systemd-rpm-macros %endif BuildRequires: pkgconfig(libcrypto) >= 0.9.5 -BuildRequires: pkgconfig(libosmo-mgcp-client) >= 1.5.0 BuildRequires: pkgconfig(libosmo-netif) >= 0.6.0 BuildRequires: pkgconfig(libosmo-sccp) >= 0.10.0 BuildRequires: pkgconfig(libosmo-sigtran) >= 0.10.0 -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22397 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: Ie2f1f67d8141b2437e723fb27e1d1c3225156a91 Gerrit-Change-Number: 22397 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-CC: Jenkins Builder Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 23 23:11:04 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 23 Jan 2021 23:11:04 +0000 Subject: Change in osmo-cbc[master]: osmo-cbc.spec: No AUTHORS file; correct name of README.md In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22398 ) Change subject: osmo-cbc.spec: No AUTHORS file; correct name of README.md ...................................................................... osmo-cbc.spec: No AUTHORS file; correct name of README.md Change-Id: Ia53e6d1fe785e6bfc92f305963cf06b760f30edd --- M contrib/osmo-cbc.spec.in 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved; Verified diff --git a/contrib/osmo-cbc.spec.in b/contrib/osmo-cbc.spec.in index b44b4fe..bd90c51 100644 --- a/contrib/osmo-cbc.spec.in +++ b/contrib/osmo-cbc.spec.in @@ -80,7 +80,7 @@ %files %license COPYING -%doc AUTHORS README +%doc README.md %{_bindir}/osmo-cbc %dir %{_docdir}/%{name}/examples %dir %{_docdir}/%{name}/examples/osmo-cbc -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22398 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: Ia53e6d1fe785e6bfc92f305963cf06b760f30edd Gerrit-Change-Number: 22398 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-CC: Jenkins Builder Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Sun Jan 24 01:38:12 2021 From: admin at opensuse.org (OBS Notification) Date: Sun, 24 Jan 2021 01:38:12 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <600ccf98519e5_5172adeb84245fc24153fd@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/xUbuntu_20.04/x86_64 Package network:osmocom:nightly/simtrace2 failed to build in xUbuntu_20.04/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 118s] [COMPILING libboard/qmod/source/wwan_perst.c] [ 118s] [COMPILING libboard/qmod/source/card_pres.c] [ 118s] [COMPILING libboard/qmod/source/wwan_led.c] [ 118s] [COMPILING libboard/qmod/source/i2c.c] [ 118s] [COMPILING libboard/qmod/source/board_qmod.c] [ 119s] [COMPILING apps/dfu/main.c] [ 119s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 119s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 119s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 119s] Memory region Used Size Region Size %age Used [ 119s] rom: 16588 B 16 KB 101.25% [ 119s] ram: 11672 B 48 KB 23.75/usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 119s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 204 bytes [ 119s] collect2: error: ld returned 1 exit status [ 119s] % [ 119s] make[2]: *** [Makefile:234: flash] Error 1 [ 119s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 119s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 119s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 119s] dh_auto_build: error: make -j1 returned exit code 2 [ 119s] make: *** [debian/rules:16: build] Error 25 [ 119s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 119s] ### VM INTERACTION START ### [ 122s] [ 113.373545] sysrq: Power Off [ 122s] [ 113.379165] reboot: Power down [ 122s] ### VM INTERACTION END ### [ 122s] [ 122s] goat07 failed "build simtrace2_0.7.0.69.aadd.dsc" at Sun Jan 24 01:38:06 UTC 2021. [ 122s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sun Jan 24 01:39:38 2021 From: admin at opensuse.org (OBS Notification) Date: Sun, 24 Jan 2021 01:39:38 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.10/x86_64 In-Reply-To: References: Message-ID: <600ccff1dbcbc_5172adeb84245fc2415620@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/xUbuntu_20.10/x86_64 Package network:osmocom:nightly/simtrace2 failed to build in xUbuntu_20.10/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 128s] [COMPILING apps/dfu/main.c] [ 129s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 129s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 129s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 129s] Memory region Used Size Region Size %age Used [ 129s] rom: 16580 B 16 KB 101.20% [ 129s] ram: 11672 B 48 KB 23.75/usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 129s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 129s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 129s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 129s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 129s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 129s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 196 bytes [ 129s] collect2: error: ld returned 1 exit status [ 129s] % [ 129s] make[2]: *** [Makefile:234: flash] Error 1 [ 129s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 129s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 129s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 129s] dh_auto_build: error: make -j1 returned exit code 2 [ 129s] make: *** [debian/rules:16: build] Error 25 [ 129s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 129s] ### VM INTERACTION START ### [ 132s] [ 121.781065] sysrq: Power Off [ 132s] [ 121.783778] reboot: Power down [ 132s] ### VM INTERACTION END ### [ 132s] [ 132s] old-atreju3 failed "build simtrace2_0.7.0.69.aadd.dsc" at Sun Jan 24 01:39:29 UTC 2021. [ 132s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Sun Jan 24 11:11:42 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 24 Jan 2021 11:11:42 +0000 Subject: Change in osmo-cbc[master]: manual: Chapters on configuration + vty introspection References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22399 ) Change subject: manual: Chapters on configuration + vty introspection ...................................................................... manual: Chapters on configuration + vty introspection Change-Id: I9af54ffc6f967702e8f66265dc15b35bbc173c4b --- A doc/manuals/chapters/configuration.adoc A doc/manuals/chapters/introspection.adoc M doc/manuals/osmocbc-usermanual.adoc 3 files changed, 142 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-cbc refs/changes/99/22399/1 diff --git a/doc/manuals/chapters/configuration.adoc b/doc/manuals/chapters/configuration.adoc new file mode 100644 index 0000000..31a5370 --- /dev/null +++ b/doc/manuals/chapters/configuration.adoc @@ -0,0 +1,47 @@ +[[configuration]] +== CBSP / Peer Configuration + +CBSP is the BSC-CBC interface within the 3GPP architecture. It serves +to communicate CSB and ETWS messages from the CBC to the BSC, who then +subsequently distributes it among the (matching) cells within the BSC +coverage area. + +=== Configuring the CBSP connections + +According to 3GPP TS 48.049, a BSC typically operates as a TCP server, +and the CBC connects as TCP client. This would require the CBC to have +out-of-band knowledge of all the BSCs in the network (and their IP +addresses). + +In order to comply with the specifications, OsmoCBC supports this mode +of operation as CBSP TCP client. However, to make network operation and +configuration more simple, it also can operate in TCP server mode, +accepting incoming connections from the BSCs. This way the BSCs need to +know the CBC IP address, but not vice-versa. + +The CBC related configuration of OsmoBSC can be found in the `cbc` configuration +node of the VTY interface. + +The default port number for the CBSP server is 48049, according to the CBSP +specification. + +.Example: Configure TCP server mode and allow arbitrary BSCs to connect +---- +cbc + unknown-peers accept +---- + + +.Example: Configure TCP client mode and define each BSC +---- +cbc + peer my-bsc-1 + protocol cbsp + remote-port 46133 + remote-ip 1.2.3.4 + peer my-bsc-2 + remote-port 46133 + remote-ip 1.2.3.4 +---- + +For more details on the available configuration commands, please check the OsmoCBC VTY Reference. diff --git a/doc/manuals/chapters/introspection.adoc b/doc/manuals/chapters/introspection.adoc new file mode 100644 index 0000000..c070cc3 --- /dev/null +++ b/doc/manuals/chapters/introspection.adoc @@ -0,0 +1,91 @@ +== Introspection using the VTY + +OsmoCBC offers a VTY interface on TCP port 4264. Like all Osmocom VTY interfaces, +it is normally bound only to the loopback address 127.0.0.1. You can change this +via the configuration. + +The actual IP/Port is printed to the log at startup time: + +---- +20210124110559489 DLGLOBAL NOTICE Available via telnet 127.0.0.1 4264 (telnet_interface.c:104) +---- + +=== Peer State + +Using the `show peers` command, you can check on the state of all configured and/or connected +peers: + +.Example: Showing a list of all peers +---- +OsmoCBC> show peers +|Name | IP | Port | Proto | State | +|--------------------|----------------|------|-------|---------------------| +|ttcn3 | 127.0.0.1 | 9999 | CBSP | | +|local-bsc | 127.0.0.1 | 46133| CBSP | IDLE | +---- + +=== CBS Messages + +Using `show messages cbs`, a list of all current CBS messages can be obtained. + +.Example: Showing a list of all CBS messages +---- +OsmoCBC> show messages cbs +|MsgId|SerNo| CBE Name | Category |Period|E|DCS| +|-----|-----|--------------------|-------------|------|-|---| +| 04D2| 7000|cbc_apitool |Normal | 5 |N| 0f| +---- + +Using `show message 1234`, details about a specific CBS message can be obtained: + +.Example: Showing details about a single CBS message +---- +OsmoCBC> show message id 1234 +Message ID 04D2, Serial Number 7000, State: ACTIVE + Created by CBE 'cbc_apitool' at Sun Jan 24 11:10:31 2021 + Repetition Period: 5 ( 9.41s), Number of broadcasts: 999 + Warning Period: 4294967295s + DCS: 0x0f, Number of pages: 1, User Data Bytes: 7 + Page 0: cd309aad2fa7e98d46a3d168341a8d46a3d168341a8d46a3d168341a8d46a3d168341a8d46a3d168341a8d46a3d168341a8d46a3d168341a8d46a3d168341a8d46a3d168341a8d46a3d168341a8d46a3d168 + Peer: 'ttcn3', State: ACTIVE + Cells Installed: + Cells Failed: + Number of Broadcasts Completed: + Peer: 'local-bsc', State: ACTIVE + Cells Installed: + CGI 901-70-1-1234 + Cells Failed: + Number of Broadcasts Completed: +---- + + +=== ETWS Messages + +Using `show messages etws` a list of all current ETWS messages can be obtained. + +.Example: Showing a list of all ETWS messages +---- +OsmoCBC> show messages etws +|MsgId|SerNo| CBE Name | Category |Period|E|Warning Type| +|-----|-----|--------------------|-------------|------|-|------------| +| 03E8| 7000|cbc_apitool |Normal | 5 |N| 0000| +---- + +.Example: Showing details of one single ETWS message +---- +OsmoCBC> show message id 1000 +Message ID 03E8, Serial Number 7000, State: ACTIVE + Created by CBE 'cbc_apitool' at Sun Jan 24 11:14:42 2021 + Repetition Period: 5 ( 9.41s), Number of broadcasts: 999 + ETWS Warning Type Value: 0x00, User Alert: On, Popup: On + Security: 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + Peer: 'ttcn3', State: ACTIVE + Cells Installed: + Cells Failed: + Number of Broadcasts Completed: + Peer: 'local-bsc', State: ACTIVE + Cells Installed: + CGI 901-70-1-1234 + Cells Failed: + Number of Broadcasts Completed: +---- diff --git a/doc/manuals/osmocbc-usermanual.adoc b/doc/manuals/osmocbc-usermanual.adoc index 391a9f1..967ec96 100644 --- a/doc/manuals/osmocbc-usermanual.adoc +++ b/doc/manuals/osmocbc-usermanual.adoc @@ -12,6 +12,10 @@ include::{srcdir}/chapters/running.adoc[] +include::{srcdir}/chapters/configuration.adoc[] + +include::{srcdir}/chapters/introspection.adoc[] + include::./common/chapters/counters-overview.adoc[] include::{srcdir}/chapters/counters.adoc[] -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22399 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: I9af54ffc6f967702e8f66265dc15b35bbc173c4b Gerrit-Change-Number: 22399 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 24 11:11:43 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 24 Jan 2021 11:11:43 +0000 Subject: Change in osmo-cbc[master]: vty: Allow IPv6 address for peer remote-ip References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22400 ) Change subject: vty: Allow IPv6 address for peer remote-ip ...................................................................... vty: Allow IPv6 address for peer remote-ip Change-Id: Iafb2da2357b09c6e2c9a5199c947358650cced18 --- M src/cbc_vty.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-cbc refs/changes/00/22400/1 diff --git a/src/cbc_vty.c b/src/cbc_vty.c index 323497c..3466428 100644 --- a/src/cbc_vty.c +++ b/src/cbc_vty.c @@ -377,7 +377,7 @@ DEFUN(cfg_peer_remote_ip, cfg_peer_remote_ip_cmd, - "remote-ip A.B.C.D", + "remote-ip (A.B.C.D|X:X::X:X)", "Configure remote IP of peer\n" "Remote IP address of peer\n") { -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22400 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: Iafb2da2357b09c6e2c9a5199c947358650cced18 Gerrit-Change-Number: 22400 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 24 11:11:43 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 24 Jan 2021 11:11:43 +0000 Subject: Change in osmo-cbc[master]: Make CBSP local bind IP+port VTY-configurable References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22401 ) Change subject: Make CBSP local bind IP+port VTY-configurable ...................................................................... Make CBSP local bind IP+port VTY-configurable Change-Id: I9ba3f4cf129d6df4468defc92697f1df62348719 --- M doc/manuals/chapters/configuration.adoc M src/cbc_data.h M src/cbc_main.c M src/cbc_vty.c 4 files changed, 74 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-cbc refs/changes/01/22401/1 diff --git a/doc/manuals/chapters/configuration.adoc b/doc/manuals/chapters/configuration.adoc index 31a5370..c205d91 100644 --- a/doc/manuals/chapters/configuration.adoc +++ b/doc/manuals/chapters/configuration.adoc @@ -45,3 +45,18 @@ ---- For more details on the available configuration commands, please check the OsmoCBC VTY Reference. + +=== Configuring the IP/Port for CBSP to bind to + +It can be configure to which IP and TCP port the CBSP protocol binds to. + +The default is to bind to the 3GPP standard port number 48049 for CBSP at the +loopback IP address 127.0.0.1. + +.Example: Configure CBSP to bind to 127.0.0.1:48049 +---- +cbc + cbsp + local-ip 127.0.0.1 + local-port 48049 +---- diff --git a/src/cbc_data.h b/src/cbc_data.h index 7900fbc..76fdfad 100644 --- a/src/cbc_data.h +++ b/src/cbc_data.h @@ -165,6 +165,10 @@ struct cbc { struct { bool permit_unknown_peers; + struct { + char *local_host; + int local_port; + } cbsp; } config; struct llist_head messages; /* cbc_message.list */ diff --git a/src/cbc_main.c b/src/cbc_main.c index 06969e7..168fd7d 100644 --- a/src/cbc_main.c +++ b/src/cbc_main.c @@ -219,6 +219,8 @@ INIT_LLIST_HEAD(&g_cbc->peers); INIT_LLIST_HEAD(&g_cbc->messages); INIT_LLIST_HEAD(&g_cbc->expired_messages); + g_cbc->config.cbsp.local_host = talloc_strdup(g_cbc, "127.0.0.1"); + g_cbc->config.cbsp.local_port = CBSP_TCP_PORT; cbc_vty_init(); @@ -240,7 +242,8 @@ exit(1); } - cbsp_cbc_create(tall_cbc_ctx, NULL, -1, &cbc_client_rx_cb); + cbsp_cbc_create(tall_cbc_ctx, g_cbc->config.cbsp.local_host, g_cbc->config.cbsp.local_port, + &cbc_client_rx_cb); rest_api_init(tall_rest_ctx, 12345); diff --git a/src/cbc_vty.c b/src/cbc_vty.c index 3466428..b1aa34f 100644 --- a/src/cbc_vty.c +++ b/src/cbc_vty.c @@ -267,6 +267,7 @@ enum cbc_vty_node { CBC_NODE = _LAST_OSMOVTY_NODE + 1, PEER_NODE, + CBSP_NODE, }; static struct cmd_node cbc_node = { @@ -310,6 +311,51 @@ return CMD_SUCCESS; } +DEFUN(cfg_cbsp, cfg_cbsp_cmd, + "cbsp", + "Cell Broadcast Service Protocol\n") +{ + vty->node = CBSP_NODE; + return CMD_SUCCESS; +} + + +/* CBSP */ + +static struct cmd_node cbsp_node = { + CBSP_NODE, + "%s(config-cbsp)# ", + 1, +}; + +static int config_write_cbsp(struct vty *vty) +{ + vty_out(vty, " cbsp%s", VTY_NEWLINE); + vty_out(vty, " local-ip %s%s", g_cbc->config.cbsp.local_host, VTY_NEWLINE); + vty_out(vty, " local-port %u%s", g_cbc->config.cbsp.local_port, VTY_NEWLINE); + + return CMD_SUCCESS; +} + +DEFUN(cfg_cbsp_local_ip, cfg_cbsp_local_ip_cmd, + "local-ip (A.B.C.D|X:X::X:X)", + "Local IP address for CBSP\n" + "Local IPv4 address for CBSP\n" "Local IPv6 address for CBSP\n") +{ + osmo_talloc_replace_string(g_cbc, &g_cbc->config.cbsp.local_host, argv[0]); + return CMD_SUCCESS; +} + +DEFUN(cfg_cbsp_local_port, cfg_cbsp_local_port_cmd, + "local-port <0-65535>", + "Local TCP port for CBSP\n" + "Local TCP port for CBSP\n") +{ + g_cbc->config.cbsp.local_port = atoi(argv[0]); + return CMD_SUCCESS; +} + + /* PEER */ DEFUN(cfg_cbc_peer, cfg_cbc_peer_cmd, @@ -418,6 +464,11 @@ install_node(&cbc_node, config_write_cbc); install_lib_element(CBC_NODE, &cfg_permit_unknown_peers_cmd); + install_lib_element(CBC_NODE, &cfg_cbsp_cmd); + install_node(&cbsp_node, config_write_cbsp); + install_lib_element(CBSP_NODE, &cfg_cbsp_local_ip_cmd); + install_lib_element(CBSP_NODE, &cfg_cbsp_local_port_cmd); + install_lib_element(CBC_NODE, &cfg_cbc_peer_cmd); install_lib_element(CBC_NODE, &cfg_cbc_no_peer_cmd); install_node(&peer_node, config_write_peer); -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22401 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: I9ba3f4cf129d6df4468defc92697f1df62348719 Gerrit-Change-Number: 22401 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 24 11:11:44 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 24 Jan 2021 11:11:44 +0000 Subject: Change in osmo-cbc[master]: Make ECBE (REST interface) local bind IP + port VTY-configurable References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22402 ) Change subject: Make ECBE (REST interface) local bind IP + port VTY-configurable ...................................................................... Make ECBE (REST interface) local bind IP + port VTY-configurable Change-Id: I656d0d1c7b21db90b62e71109d9844476a2e3215 --- M doc/manuals/chapters/configuration.adoc M src/cbc_data.h M src/cbc_main.c M src/cbc_vty.c M src/internal.h M src/rest_api.c 6 files changed, 105 insertions(+), 13 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-cbc refs/changes/02/22402/1 diff --git a/doc/manuals/chapters/configuration.adoc b/doc/manuals/chapters/configuration.adoc index c205d91..095aed5 100644 --- a/doc/manuals/chapters/configuration.adoc +++ b/doc/manuals/chapters/configuration.adoc @@ -1,12 +1,14 @@ [[configuration]] -== CBSP / Peer Configuration +== Configuration + +=== CBSP / Peer Configuration CBSP is the BSC-CBC interface within the 3GPP architecture. It serves to communicate CSB and ETWS messages from the CBC to the BSC, who then subsequently distributes it among the (matching) cells within the BSC coverage area. -=== Configuring the CBSP connections +==== Configuring the CBSP connections According to 3GPP TS 48.049, a BSC typically operates as a TCP server, and the CBC connects as TCP client. This would require the CBC to have @@ -46,7 +48,7 @@ For more details on the available configuration commands, please check the OsmoCBC VTY Reference. -=== Configuring the IP/Port for CBSP to bind to +==== Configuring the IP/Port for CBSP to bind to It can be configure to which IP and TCP port the CBSP protocol binds to. @@ -60,3 +62,20 @@ local-ip 127.0.0.1 local-port 48049 ---- + +=== ECBE (REST Interface) Configuration + +==== Configuring the IP/Port for ECBE to bind to + +It can be configure to which IP and TCP port the ECBE REST Interface binds to. + +The default is to bind to is the non-standard port number 12349 at the +loopback IP address 127.0.0.1. + +.Example: Configure ECBE REST interface to bind to 127.0.0.1:8080 +---- +cbc + ecbe + local-ip 127.0.0.1 + local-port 8080 +---- diff --git a/src/cbc_data.h b/src/cbc_data.h index 76fdfad..e88ae45 100644 --- a/src/cbc_data.h +++ b/src/cbc_data.h @@ -169,6 +169,10 @@ char *local_host; int local_port; } cbsp; + struct { + char *local_host; + int local_port; + } ecbe; } config; struct llist_head messages; /* cbc_message.list */ diff --git a/src/cbc_main.c b/src/cbc_main.c index 168fd7d..ff696bd 100644 --- a/src/cbc_main.c +++ b/src/cbc_main.c @@ -1,6 +1,6 @@ /* Osmocom CBC (Cell Broacast Centre) */ -/* (C) 2019 by Harald Welte +/* (C) 2019-2021 by Harald Welte * All Rights Reserved * * SPDX-License-Identifier: AGPL-3.0+ @@ -221,6 +221,8 @@ INIT_LLIST_HEAD(&g_cbc->expired_messages); g_cbc->config.cbsp.local_host = talloc_strdup(g_cbc, "127.0.0.1"); g_cbc->config.cbsp.local_port = CBSP_TCP_PORT; + g_cbc->config.ecbe.local_host = talloc_strdup(g_cbc, "127.0.0.1"); + g_cbc->config.ecbe.local_port = 12345; cbc_vty_init(); @@ -245,7 +247,7 @@ cbsp_cbc_create(tall_cbc_ctx, g_cbc->config.cbsp.local_host, g_cbc->config.cbsp.local_port, &cbc_client_rx_cb); - rest_api_init(tall_rest_ctx, 12345); + rest_api_init(tall_rest_ctx, g_cbc->config.ecbe.local_host, g_cbc->config.ecbe.local_port); LOGP(DREST, LOGL_INFO, "Main thread tid: %lu\n", pthread_self()); g_cbc->it_q.rest2main = osmo_it_q_alloc(g_cbc, "rest2main", 10, rest2main_read_cb, NULL); diff --git a/src/cbc_vty.c b/src/cbc_vty.c index b1aa34f..98e2703 100644 --- a/src/cbc_vty.c +++ b/src/cbc_vty.c @@ -1,6 +1,6 @@ /* Osmocom CBC (Cell Broacast Centre) */ -/* (C) 2019 by Harald Welte +/* (C) 2019-2021 by Harald Welte * All Rights Reserved * * SPDX-License-Identifier: AGPL-3.0+ @@ -268,6 +268,7 @@ CBC_NODE = _LAST_OSMOVTY_NODE + 1, PEER_NODE, CBSP_NODE, + ECBE_NODE, }; static struct cmd_node cbc_node = { @@ -319,6 +320,14 @@ return CMD_SUCCESS; } +DEFUN(cfg_ecbe, cfg_ecbe_cmd, + "ecbe", + "External CBS Entity (REST Interface)\n") +{ + vty->node = ECBE_NODE; + return CMD_SUCCESS; +} + /* CBSP */ @@ -356,6 +365,43 @@ } +/* ECBE */ + +static struct cmd_node ecbe_node = { + ECBE_NODE, + "%s(config-ecbe)# ", + 1, +}; + +static int config_write_ecbe(struct vty *vty) +{ + vty_out(vty, " ecbe%s", VTY_NEWLINE); + vty_out(vty, " local-ip %s%s", g_cbc->config.ecbe.local_host, VTY_NEWLINE); + vty_out(vty, " local-port %u%s", g_cbc->config.ecbe.local_port, VTY_NEWLINE); + + return CMD_SUCCESS; +} + +DEFUN(cfg_ecbe_local_ip, cfg_ecbe_local_ip_cmd, + "local-ip (A.B.C.D|X:X::X:X)", + "Local IP address for CBSP\n" + "Local IPv4 address for ECBE REST Interface\n" + "Local IPv6 address for ECBE REST Interface\n") +{ + osmo_talloc_replace_string(g_cbc, &g_cbc->config.ecbe.local_host, argv[0]); + return CMD_SUCCESS; +} + +DEFUN(cfg_ecbe_local_port, cfg_ecbe_local_port_cmd, + "local-port <0-65535>", + "Local TCP port for ECBE RESET Interface\n" + "Local TCP port for ECBE RESET Interface\n") +{ + g_cbc->config.ecbe.local_port = atoi(argv[0]); + return CMD_SUCCESS; +} + + /* PEER */ DEFUN(cfg_cbc_peer, cfg_cbc_peer_cmd, @@ -469,6 +515,11 @@ install_lib_element(CBSP_NODE, &cfg_cbsp_local_ip_cmd); install_lib_element(CBSP_NODE, &cfg_cbsp_local_port_cmd); + install_lib_element(CBC_NODE, &cfg_ecbe_cmd); + install_node(&ecbe_node, config_write_ecbe); + install_lib_element(ECBE_NODE, &cfg_ecbe_local_ip_cmd); + install_lib_element(ECBE_NODE, &cfg_ecbe_local_port_cmd); + install_lib_element(CBC_NODE, &cfg_cbc_peer_cmd); install_lib_element(CBC_NODE, &cfg_cbc_no_peer_cmd); install_node(&peer_node, config_write_peer); diff --git a/src/internal.h b/src/internal.h index e493c86..29093b5 100644 --- a/src/internal.h +++ b/src/internal.h @@ -25,7 +25,7 @@ /* rest_api.c */ -int rest_api_init(void *ctx, uint16_t port); +int rest_api_init(void *ctx, const char *bind_addr, uint16_t port); void rest_api_fin(void); /* cbc_vty.c */ diff --git a/src/rest_api.c b/src/rest_api.c index 9473a01..b8eedfe 100644 --- a/src/rest_api.c +++ b/src/rest_api.c @@ -1,6 +1,6 @@ /* Osmocom CBC (Cell Broacast Centre) */ -/* (C) 2019-2020 by Harald Welte +/* (C) 2019-2021 by Harald Welte * All Rights Reserved * * SPDX-License-Identifier: AGPL-3.0+ @@ -31,6 +31,7 @@ #include #include +#include #include @@ -677,8 +678,9 @@ } #endif -int rest_api_init(void *ctx, uint16_t port) +int rest_api_init(void *ctx, const char *bind_addr, uint16_t port) { + struct osmo_sockaddr_str sastr; int i; #ifdef ULFIUS_MALLOC_NOT_BROKEN @@ -687,18 +689,32 @@ o_set_alloc_funcs(my_o_malloc, my_o_realloc, my_o_free); #endif - if (ulfius_init_instance(&g_instance, port, NULL, NULL) != U_OK) - return -1; + OSMO_STRLCPY_ARRAY(sastr.ip, bind_addr); + sastr.port = port; + + if (strchr(bind_addr, ':')) { + struct sockaddr_in6 sin6; + sastr.af = AF_INET6; + osmo_sockaddr_str_to_sockaddr_in6(&sastr, &sin6); + if (ulfius_init_instance_ipv6(&g_instance, port, &sin6, U_USE_IPV6, NULL) != U_OK) + return -1; + } else { + struct sockaddr_in sin; + sastr.af = AF_INET; + osmo_sockaddr_str_to_sockaddr_in(&sastr, &sin); + if (ulfius_init_instance(&g_instance, port, &sin, NULL) != U_OK) + return -1; + } g_instance.mhd_response_copy_data = 1; for (i = 0; i < ARRAY_SIZE(api_endpoints); i++) ulfius_add_endpoint(&g_instance, &api_endpoints[i]); if (ulfius_start_framework(&g_instance) != U_OK) { - LOGP(DREST, LOGL_FATAL, "Cannot start REST API on port %u\n", port); + LOGP(DREST, LOGL_FATAL, "Cannot start ECBE REST API at %s:%u\n", bind_addr, port); return -1; } - LOGP(DREST, LOGL_NOTICE, "Started REST API on port %u\n", port); + LOGP(DREST, LOGL_NOTICE, "Started ECBE REST API at %s:%u\n", bind_addr, port); return 0; } -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22402 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: I656d0d1c7b21db90b62e71109d9844476a2e3215 Gerrit-Change-Number: 22402 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 24 11:11:44 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 24 Jan 2021 11:11:44 +0000 Subject: Change in osmo-cbc[master]: terminate if CBSP or ECBE ports cannot be bound References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22403 ) Change subject: terminate if CBSP or ECBE ports cannot be bound ...................................................................... terminate if CBSP or ECBE ports cannot be bound Change-Id: I748648a0bd5a06da26cddc34ff0d9b6000e71370 --- M src/cbc_main.c 1 file changed, 10 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-cbc refs/changes/03/22403/1 diff --git a/src/cbc_main.c b/src/cbc_main.c index ff696bd..bf29a1a 100644 --- a/src/cbc_main.c +++ b/src/cbc_main.c @@ -244,10 +244,17 @@ exit(1); } - cbsp_cbc_create(tall_cbc_ctx, g_cbc->config.cbsp.local_host, g_cbc->config.cbsp.local_port, - &cbc_client_rx_cb); + if (cbsp_cbc_create(tall_cbc_ctx, g_cbc->config.cbsp.local_host, g_cbc->config.cbsp.local_port, + &cbc_client_rx_cb) == NULL) { + perror("Error binidng CBSP port\n"); + exit(1); + } - rest_api_init(tall_rest_ctx, g_cbc->config.ecbe.local_host, g_cbc->config.ecbe.local_port); + rc = rest_api_init(tall_rest_ctx, g_cbc->config.ecbe.local_host, g_cbc->config.ecbe.local_port); + if (rc < 0) { + perror("Error binidng ECBE port\n"); + exit(1); + } LOGP(DREST, LOGL_INFO, "Main thread tid: %lu\n", pthread_self()); g_cbc->it_q.rest2main = osmo_it_q_alloc(g_cbc, "rest2main", 10, rest2main_read_cb, NULL); -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22403 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: I748648a0bd5a06da26cddc34ff0d9b6000e71370 Gerrit-Change-Number: 22403 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 24 12:54:53 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 24 Jan 2021 12:54:53 +0000 Subject: Change in osmo-cbc[master]: cbc-apitool: Fix parsing if no argument is goven References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22404 ) Change subject: cbc-apitool: Fix parsing if no argument is goven ...................................................................... cbc-apitool: Fix parsing if no argument is goven Change-Id: I3abd7a22dc5df2bf7c926fb0e1ba09e60628f55d --- M contrib/cbc-apitool.py 1 file changed, 3 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-cbc refs/changes/04/22404/1 diff --git a/contrib/cbc-apitool.py b/contrib/cbc-apitool.py index c7ebcfa..7d0fedf 100755 --- a/contrib/cbc-apitool.py +++ b/contrib/cbc-apitool.py @@ -142,8 +142,9 @@ argv = sys.argv if len(sys.argv) == 1: - argv = ['-h'] - args = parser.parse_args(argv) + args = parser.parse_args(['-h']) + else: + args = parser.parse_args() server_host = args.host server_port = args.port -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22404 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: I3abd7a22dc5df2bf7c926fb0e1ba09e60628f55d Gerrit-Change-Number: 22404 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 24 12:54:53 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 24 Jan 2021 12:54:53 +0000 Subject: Change in osmo-cbc[master]: manual: Document ECBE; include JSON schema; cross-references References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22405 ) Change subject: manual: Document ECBE; include JSON schema; cross-references ...................................................................... manual: Document ECBE; include JSON schema; cross-references Change-Id: I358f72331aa9832cc56c67396eb41b62307a3258 --- M doc/manuals/chapters/configuration.adoc A doc/manuals/chapters/ecbe-rest-interface.adoc M doc/manuals/chapters/overview.adoc M doc/manuals/osmocbc-usermanual.adoc 4 files changed, 62 insertions(+), 22 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-cbc refs/changes/05/22405/1 diff --git a/doc/manuals/chapters/configuration.adoc b/doc/manuals/chapters/configuration.adoc index 095aed5..5abb3a8 100644 --- a/doc/manuals/chapters/configuration.adoc +++ b/doc/manuals/chapters/configuration.adoc @@ -8,6 +8,7 @@ subsequently distributes it among the (matching) cells within the BSC coverage area. +[[config-cbsp]] ==== Configuring the CBSP connections According to 3GPP TS 48.049, a BSC typically operates as a TCP server, @@ -63,6 +64,7 @@ local-port 48049 ---- +[[config-ecbe]] === ECBE (REST Interface) Configuration ==== Configuring the IP/Port for ECBE to bind to diff --git a/doc/manuals/chapters/ecbe-rest-interface.adoc b/doc/manuals/chapters/ecbe-rest-interface.adoc new file mode 100644 index 0000000..7f3e77f --- /dev/null +++ b/doc/manuals/chapters/ecbe-rest-interface.adoc @@ -0,0 +1,49 @@ +[[ecbe]] +== ECBE REST interface + +The ECBE (External Cell Broadcast Entity) REST interface is specified in +the JSON schema files `cbc.schema.json` and `smscb.schema.json`, which +are part of the OsmoCBC distribution. + +The REST interface binds to the IP and TCP port as configured and +can be reached at `http://IP:PORT/api/ecbe/v1` + +NOTE:: It is your responsibility to properly secure access to the REST +interface endpoint to ensure only legitimate users can access it. This +may be achieved via packet filtering and a reverse HTTP proxy. + +=== API endpoints + +==== `POST /api/ecbe/v1/message` + +This command is used to create a new SMSCB or ETWS message inside the CBC. +The `cbc_messsage` type as specified in the JSON schema (<>). + +==== `DELETE /api/ecbe/v1/message/:message_id` + +This command is used to delete an existing SMSCB or ETWS message from the CBC. + +The `:message_id` parameter is the decimal integer representation of the +cbc_message.smscb.message_id that was specified when creating the +message via the POST command stated above. + +[[ecbe-json]] +=== JSON Schema + +==== `cbc.schema.json` + +This is the main JSOM schema for osmo-cbc. In many places, it +references `smscb.schema.json` described further below. + +---- +include::../../../cbc.schema.json[] +---- + +==== `smscb.schema.json` + +This JSON schema describes a lot of the basic data types relevant for +SMSCB. It is used heavily by `cbc.schema.json` described above. + +---- +include::../../../smscb.schema.json[] +---- diff --git a/doc/manuals/chapters/overview.adoc b/doc/manuals/chapters/overview.adoc index 2077878..3063ff7 100644 --- a/doc/manuals/chapters/overview.adoc +++ b/doc/manuals/chapters/overview.adoc @@ -49,29 +49,16 @@ the CBC doesn't need to know each and every BSC in the network. It simply only accepts incoming CBSP connections. +For more information, see <> on how CBSP is configured. -=== REST interface +=== ECBE REST interface -The REST interface is specified in the JSON schema files -`cbc.schema.json` and `smscb.schema.json`, which are part of the OsmoCBC -distribution. +3GPP does not specify the external interface by which competent +authorities can submit SMSCB and/or ETWS messages to a CBC. -The REST interface currently binds to TCP port 12345 (on INADRR_ANY) and -can be reached at http://localhost:1234/api/ecbe/v1" +Hence, a non-standard, Osmocom specific HTTP/REST/JSON based interface +is offered for external entities to create and delete SMSCB and ETWS +messages within the CBC. This interface is called ECBE. -NOTE:: It is your responsibility to properly secure access to the REST -interface endpoint to ensure only legitimate users can access it. This -may be achieved via packet filtering and a reverse HTTP proxy. - -==== POST /api/ecbe/v1/message - -This command is used to create a new SMSCB or ETWS message inside the CBC. -The `cbc_messsage` type as specified in the JSON schema. - -==== DELETE /api/ecbe/v1/message/:message_id - -This command is used to delete an existing SMSCB or ETWS message from the CBC. - -The `:message_id` parameter is the decimal integer representation of the -cbc_message.smscb.message_id that was specified when creating the -message via the POST command stated above. +For more information, see <> on the ECBE API definition and <> +on how it is configured. diff --git a/doc/manuals/osmocbc-usermanual.adoc b/doc/manuals/osmocbc-usermanual.adoc index 967ec96..e08586d 100644 --- a/doc/manuals/osmocbc-usermanual.adoc +++ b/doc/manuals/osmocbc-usermanual.adoc @@ -16,6 +16,8 @@ include::{srcdir}/chapters/introspection.adoc[] +include::{srcdir}/chapters/ecbe-rest-interface.adoc[] + include::./common/chapters/counters-overview.adoc[] include::{srcdir}/chapters/counters.adoc[] -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22405 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: I358f72331aa9832cc56c67396eb41b62307a3258 Gerrit-Change-Number: 22405 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 24 12:54:53 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 24 Jan 2021 12:54:53 +0000 Subject: Change in osmo-cbc[master]: manual: Add dotty graph on position of CBC in network References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22406 ) Change subject: manual: Add dotty graph on position of CBC in network ...................................................................... manual: Add dotty graph on position of CBC in network Change-Id: I0216ebb34b2efc218628341495d026bf4ec0f026 --- M doc/manuals/Makefile.am M doc/manuals/chapters/overview.adoc A doc/manuals/images/cbc-in-network.dot 3 files changed, 24 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-cbc refs/changes/06/22406/1 diff --git a/doc/manuals/Makefile.am b/doc/manuals/Makefile.am index ef90e2b..9de94bb 100644 --- a/doc/manuals/Makefile.am +++ b/doc/manuals/Makefile.am @@ -3,6 +3,7 @@ osmocbc-vty-reference.xml \ regen_doc.sh \ chapters \ + images \ vty if BUILD_MANUALS diff --git a/doc/manuals/chapters/overview.adoc b/doc/manuals/chapters/overview.adoc index 3063ff7..c862197 100644 --- a/doc/manuals/chapters/overview.adoc +++ b/doc/manuals/chapters/overview.adoc @@ -10,6 +10,12 @@ authorities for civil protection, and the various components within the 3GPP network to actually deliver those broadcast and/or emergency messages. +.Role of the CBC inside the 3GPP network architecture +[graphviz] +---- +include::../images/cbc-in-network.dot[] +---- + [[about]] === About OsmoCBC diff --git a/doc/manuals/images/cbc-in-network.dot b/doc/manuals/images/cbc-in-network.dot new file mode 100644 index 0000000..960156c --- /dev/null +++ b/doc/manuals/images/cbc-in-network.dot @@ -0,0 +1,17 @@ +digraph G { + rankdir = RL; + CBC [color=red]; + CBE -> CBC [label="REST/JSON"]; + CBC -> BSC [label="CBSP"]; + CBC -> RNC [label="SABP"]; + CBC -> MME [label="SBc-AP"]; + + BSC -> BTS [label="A-bis RSL"]; + RNC -> NodeB [label="Iub"]; + MME -> eNodeB [label="S1-AP"]; + + BTS -> UE [label="CBCH"]; + NodeB -> UE [label="BMC/CTCH"]; + eNodeB -> UE [label="SIB10/11/12"]; + +} -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22406 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: I0216ebb34b2efc218628341495d026bf4ec0f026 Gerrit-Change-Number: 22406 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 24 12:57:41 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 24 Jan 2021 12:57:41 +0000 Subject: Change in osmo-cbc[master]: manual: Chapters on configuration + vty introspection In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22399 ) Change subject: manual: Chapters on configuration + vty introspection ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22399 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: I9af54ffc6f967702e8f66265dc15b35bbc173c4b Gerrit-Change-Number: 22399 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 24 Jan 2021 12:57:41 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 24 12:57:48 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 24 Jan 2021 12:57:48 +0000 Subject: Change in osmo-cbc[master]: vty: Allow IPv6 address for peer remote-ip In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22400 ) Change subject: vty: Allow IPv6 address for peer remote-ip ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22400 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: Iafb2da2357b09c6e2c9a5199c947358650cced18 Gerrit-Change-Number: 22400 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 24 Jan 2021 12:57:48 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 24 12:58:00 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 24 Jan 2021 12:58:00 +0000 Subject: Change in osmo-cbc[master]: Make CBSP local bind IP+port VTY-configurable In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22401 ) Change subject: Make CBSP local bind IP+port VTY-configurable ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22401 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: I9ba3f4cf129d6df4468defc92697f1df62348719 Gerrit-Change-Number: 22401 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 24 Jan 2021 12:58:00 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 24 13:06:02 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 24 Jan 2021 13:06:02 +0000 Subject: Change in osmo-cbc[master]: manual: Chapters on configuration + vty introspection In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22399 ) Change subject: manual: Chapters on configuration + vty introspection ...................................................................... manual: Chapters on configuration + vty introspection Change-Id: I9af54ffc6f967702e8f66265dc15b35bbc173c4b --- A doc/manuals/chapters/configuration.adoc A doc/manuals/chapters/introspection.adoc M doc/manuals/osmocbc-usermanual.adoc 3 files changed, 142 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/doc/manuals/chapters/configuration.adoc b/doc/manuals/chapters/configuration.adoc new file mode 100644 index 0000000..31a5370 --- /dev/null +++ b/doc/manuals/chapters/configuration.adoc @@ -0,0 +1,47 @@ +[[configuration]] +== CBSP / Peer Configuration + +CBSP is the BSC-CBC interface within the 3GPP architecture. It serves +to communicate CSB and ETWS messages from the CBC to the BSC, who then +subsequently distributes it among the (matching) cells within the BSC +coverage area. + +=== Configuring the CBSP connections + +According to 3GPP TS 48.049, a BSC typically operates as a TCP server, +and the CBC connects as TCP client. This would require the CBC to have +out-of-band knowledge of all the BSCs in the network (and their IP +addresses). + +In order to comply with the specifications, OsmoCBC supports this mode +of operation as CBSP TCP client. However, to make network operation and +configuration more simple, it also can operate in TCP server mode, +accepting incoming connections from the BSCs. This way the BSCs need to +know the CBC IP address, but not vice-versa. + +The CBC related configuration of OsmoBSC can be found in the `cbc` configuration +node of the VTY interface. + +The default port number for the CBSP server is 48049, according to the CBSP +specification. + +.Example: Configure TCP server mode and allow arbitrary BSCs to connect +---- +cbc + unknown-peers accept +---- + + +.Example: Configure TCP client mode and define each BSC +---- +cbc + peer my-bsc-1 + protocol cbsp + remote-port 46133 + remote-ip 1.2.3.4 + peer my-bsc-2 + remote-port 46133 + remote-ip 1.2.3.4 +---- + +For more details on the available configuration commands, please check the OsmoCBC VTY Reference. diff --git a/doc/manuals/chapters/introspection.adoc b/doc/manuals/chapters/introspection.adoc new file mode 100644 index 0000000..c070cc3 --- /dev/null +++ b/doc/manuals/chapters/introspection.adoc @@ -0,0 +1,91 @@ +== Introspection using the VTY + +OsmoCBC offers a VTY interface on TCP port 4264. Like all Osmocom VTY interfaces, +it is normally bound only to the loopback address 127.0.0.1. You can change this +via the configuration. + +The actual IP/Port is printed to the log at startup time: + +---- +20210124110559489 DLGLOBAL NOTICE Available via telnet 127.0.0.1 4264 (telnet_interface.c:104) +---- + +=== Peer State + +Using the `show peers` command, you can check on the state of all configured and/or connected +peers: + +.Example: Showing a list of all peers +---- +OsmoCBC> show peers +|Name | IP | Port | Proto | State | +|--------------------|----------------|------|-------|---------------------| +|ttcn3 | 127.0.0.1 | 9999 | CBSP | | +|local-bsc | 127.0.0.1 | 46133| CBSP | IDLE | +---- + +=== CBS Messages + +Using `show messages cbs`, a list of all current CBS messages can be obtained. + +.Example: Showing a list of all CBS messages +---- +OsmoCBC> show messages cbs +|MsgId|SerNo| CBE Name | Category |Period|E|DCS| +|-----|-----|--------------------|-------------|------|-|---| +| 04D2| 7000|cbc_apitool |Normal | 5 |N| 0f| +---- + +Using `show message 1234`, details about a specific CBS message can be obtained: + +.Example: Showing details about a single CBS message +---- +OsmoCBC> show message id 1234 +Message ID 04D2, Serial Number 7000, State: ACTIVE + Created by CBE 'cbc_apitool' at Sun Jan 24 11:10:31 2021 + Repetition Period: 5 ( 9.41s), Number of broadcasts: 999 + Warning Period: 4294967295s + DCS: 0x0f, Number of pages: 1, User Data Bytes: 7 + Page 0: cd309aad2fa7e98d46a3d168341a8d46a3d168341a8d46a3d168341a8d46a3d168341a8d46a3d168341a8d46a3d168341a8d46a3d168341a8d46a3d168341a8d46a3d168341a8d46a3d168341a8d46a3d168 + Peer: 'ttcn3', State: ACTIVE + Cells Installed: + Cells Failed: + Number of Broadcasts Completed: + Peer: 'local-bsc', State: ACTIVE + Cells Installed: + CGI 901-70-1-1234 + Cells Failed: + Number of Broadcasts Completed: +---- + + +=== ETWS Messages + +Using `show messages etws` a list of all current ETWS messages can be obtained. + +.Example: Showing a list of all ETWS messages +---- +OsmoCBC> show messages etws +|MsgId|SerNo| CBE Name | Category |Period|E|Warning Type| +|-----|-----|--------------------|-------------|------|-|------------| +| 03E8| 7000|cbc_apitool |Normal | 5 |N| 0000| +---- + +.Example: Showing details of one single ETWS message +---- +OsmoCBC> show message id 1000 +Message ID 03E8, Serial Number 7000, State: ACTIVE + Created by CBE 'cbc_apitool' at Sun Jan 24 11:14:42 2021 + Repetition Period: 5 ( 9.41s), Number of broadcasts: 999 + ETWS Warning Type Value: 0x00, User Alert: On, Popup: On + Security: 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + Peer: 'ttcn3', State: ACTIVE + Cells Installed: + Cells Failed: + Number of Broadcasts Completed: + Peer: 'local-bsc', State: ACTIVE + Cells Installed: + CGI 901-70-1-1234 + Cells Failed: + Number of Broadcasts Completed: +---- diff --git a/doc/manuals/osmocbc-usermanual.adoc b/doc/manuals/osmocbc-usermanual.adoc index 391a9f1..967ec96 100644 --- a/doc/manuals/osmocbc-usermanual.adoc +++ b/doc/manuals/osmocbc-usermanual.adoc @@ -12,6 +12,10 @@ include::{srcdir}/chapters/running.adoc[] +include::{srcdir}/chapters/configuration.adoc[] + +include::{srcdir}/chapters/introspection.adoc[] + include::./common/chapters/counters-overview.adoc[] include::{srcdir}/chapters/counters.adoc[] -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22399 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: I9af54ffc6f967702e8f66265dc15b35bbc173c4b Gerrit-Change-Number: 22399 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 24 13:06:04 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 24 Jan 2021 13:06:04 +0000 Subject: Change in osmo-cbc[master]: vty: Allow IPv6 address for peer remote-ip In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22400 ) Change subject: vty: Allow IPv6 address for peer remote-ip ...................................................................... vty: Allow IPv6 address for peer remote-ip Change-Id: Iafb2da2357b09c6e2c9a5199c947358650cced18 --- M src/cbc_vty.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/cbc_vty.c b/src/cbc_vty.c index 323497c..3466428 100644 --- a/src/cbc_vty.c +++ b/src/cbc_vty.c @@ -377,7 +377,7 @@ DEFUN(cfg_peer_remote_ip, cfg_peer_remote_ip_cmd, - "remote-ip A.B.C.D", + "remote-ip (A.B.C.D|X:X::X:X)", "Configure remote IP of peer\n" "Remote IP address of peer\n") { -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22400 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: Iafb2da2357b09c6e2c9a5199c947358650cced18 Gerrit-Change-Number: 22400 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 24 13:06:05 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 24 Jan 2021 13:06:05 +0000 Subject: Change in osmo-cbc[master]: Make CBSP local bind IP+port VTY-configurable In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22401 ) Change subject: Make CBSP local bind IP+port VTY-configurable ...................................................................... Make CBSP local bind IP+port VTY-configurable Change-Id: I9ba3f4cf129d6df4468defc92697f1df62348719 --- M doc/manuals/chapters/configuration.adoc M src/cbc_data.h M src/cbc_main.c M src/cbc_vty.c 4 files changed, 74 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/doc/manuals/chapters/configuration.adoc b/doc/manuals/chapters/configuration.adoc index 31a5370..c205d91 100644 --- a/doc/manuals/chapters/configuration.adoc +++ b/doc/manuals/chapters/configuration.adoc @@ -45,3 +45,18 @@ ---- For more details on the available configuration commands, please check the OsmoCBC VTY Reference. + +=== Configuring the IP/Port for CBSP to bind to + +It can be configure to which IP and TCP port the CBSP protocol binds to. + +The default is to bind to the 3GPP standard port number 48049 for CBSP at the +loopback IP address 127.0.0.1. + +.Example: Configure CBSP to bind to 127.0.0.1:48049 +---- +cbc + cbsp + local-ip 127.0.0.1 + local-port 48049 +---- diff --git a/src/cbc_data.h b/src/cbc_data.h index 7900fbc..76fdfad 100644 --- a/src/cbc_data.h +++ b/src/cbc_data.h @@ -165,6 +165,10 @@ struct cbc { struct { bool permit_unknown_peers; + struct { + char *local_host; + int local_port; + } cbsp; } config; struct llist_head messages; /* cbc_message.list */ diff --git a/src/cbc_main.c b/src/cbc_main.c index 06969e7..168fd7d 100644 --- a/src/cbc_main.c +++ b/src/cbc_main.c @@ -219,6 +219,8 @@ INIT_LLIST_HEAD(&g_cbc->peers); INIT_LLIST_HEAD(&g_cbc->messages); INIT_LLIST_HEAD(&g_cbc->expired_messages); + g_cbc->config.cbsp.local_host = talloc_strdup(g_cbc, "127.0.0.1"); + g_cbc->config.cbsp.local_port = CBSP_TCP_PORT; cbc_vty_init(); @@ -240,7 +242,8 @@ exit(1); } - cbsp_cbc_create(tall_cbc_ctx, NULL, -1, &cbc_client_rx_cb); + cbsp_cbc_create(tall_cbc_ctx, g_cbc->config.cbsp.local_host, g_cbc->config.cbsp.local_port, + &cbc_client_rx_cb); rest_api_init(tall_rest_ctx, 12345); diff --git a/src/cbc_vty.c b/src/cbc_vty.c index 3466428..b1aa34f 100644 --- a/src/cbc_vty.c +++ b/src/cbc_vty.c @@ -267,6 +267,7 @@ enum cbc_vty_node { CBC_NODE = _LAST_OSMOVTY_NODE + 1, PEER_NODE, + CBSP_NODE, }; static struct cmd_node cbc_node = { @@ -310,6 +311,51 @@ return CMD_SUCCESS; } +DEFUN(cfg_cbsp, cfg_cbsp_cmd, + "cbsp", + "Cell Broadcast Service Protocol\n") +{ + vty->node = CBSP_NODE; + return CMD_SUCCESS; +} + + +/* CBSP */ + +static struct cmd_node cbsp_node = { + CBSP_NODE, + "%s(config-cbsp)# ", + 1, +}; + +static int config_write_cbsp(struct vty *vty) +{ + vty_out(vty, " cbsp%s", VTY_NEWLINE); + vty_out(vty, " local-ip %s%s", g_cbc->config.cbsp.local_host, VTY_NEWLINE); + vty_out(vty, " local-port %u%s", g_cbc->config.cbsp.local_port, VTY_NEWLINE); + + return CMD_SUCCESS; +} + +DEFUN(cfg_cbsp_local_ip, cfg_cbsp_local_ip_cmd, + "local-ip (A.B.C.D|X:X::X:X)", + "Local IP address for CBSP\n" + "Local IPv4 address for CBSP\n" "Local IPv6 address for CBSP\n") +{ + osmo_talloc_replace_string(g_cbc, &g_cbc->config.cbsp.local_host, argv[0]); + return CMD_SUCCESS; +} + +DEFUN(cfg_cbsp_local_port, cfg_cbsp_local_port_cmd, + "local-port <0-65535>", + "Local TCP port for CBSP\n" + "Local TCP port for CBSP\n") +{ + g_cbc->config.cbsp.local_port = atoi(argv[0]); + return CMD_SUCCESS; +} + + /* PEER */ DEFUN(cfg_cbc_peer, cfg_cbc_peer_cmd, @@ -418,6 +464,11 @@ install_node(&cbc_node, config_write_cbc); install_lib_element(CBC_NODE, &cfg_permit_unknown_peers_cmd); + install_lib_element(CBC_NODE, &cfg_cbsp_cmd); + install_node(&cbsp_node, config_write_cbsp); + install_lib_element(CBSP_NODE, &cfg_cbsp_local_ip_cmd); + install_lib_element(CBSP_NODE, &cfg_cbsp_local_port_cmd); + install_lib_element(CBC_NODE, &cfg_cbc_peer_cmd); install_lib_element(CBC_NODE, &cfg_cbc_no_peer_cmd); install_node(&peer_node, config_write_peer); -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22401 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: I9ba3f4cf129d6df4468defc92697f1df62348719 Gerrit-Change-Number: 22401 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 24 13:06:12 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 24 Jan 2021 13:06:12 +0000 Subject: Change in osmo-cbc[master]: Make ECBE (REST interface) local bind IP + port VTY-configurable In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-cbc/+/22402 to look at the new patch set (#2). Change subject: Make ECBE (REST interface) local bind IP + port VTY-configurable ...................................................................... Make ECBE (REST interface) local bind IP + port VTY-configurable Change-Id: I656d0d1c7b21db90b62e71109d9844476a2e3215 --- M doc/manuals/chapters/configuration.adoc M src/cbc_data.h M src/cbc_main.c M src/cbc_vty.c M src/internal.h M src/rest_api.c 6 files changed, 110 insertions(+), 13 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-cbc refs/changes/02/22402/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22402 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: I656d0d1c7b21db90b62e71109d9844476a2e3215 Gerrit-Change-Number: 22402 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 24 13:40:32 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 24 Jan 2021 13:40:32 +0000 Subject: Change in osmo-cbc[master]: Make ECBE (REST interface) local bind IP + port VTY-configurable In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22402 ) Change subject: Make ECBE (REST interface) local bind IP + port VTY-configurable ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22402 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: I656d0d1c7b21db90b62e71109d9844476a2e3215 Gerrit-Change-Number: 22402 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 24 Jan 2021 13:40:32 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 24 13:40:35 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 24 Jan 2021 13:40:35 +0000 Subject: Change in osmo-cbc[master]: terminate if CBSP or ECBE ports cannot be bound In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22403 ) Change subject: terminate if CBSP or ECBE ports cannot be bound ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22403 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: I748648a0bd5a06da26cddc34ff0d9b6000e71370 Gerrit-Change-Number: 22403 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 24 Jan 2021 13:40:35 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 24 13:40:38 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 24 Jan 2021 13:40:38 +0000 Subject: Change in osmo-cbc[master]: cbc-apitool: Fix parsing if no argument is goven In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22404 ) Change subject: cbc-apitool: Fix parsing if no argument is goven ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22404 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: I3abd7a22dc5df2bf7c926fb0e1ba09e60628f55d Gerrit-Change-Number: 22404 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 24 Jan 2021 13:40:38 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 24 13:40:43 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 24 Jan 2021 13:40:43 +0000 Subject: Change in osmo-cbc[master]: Make ECBE (REST interface) local bind IP + port VTY-configurable In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22402 ) Change subject: Make ECBE (REST interface) local bind IP + port VTY-configurable ...................................................................... Make ECBE (REST interface) local bind IP + port VTY-configurable Change-Id: I656d0d1c7b21db90b62e71109d9844476a2e3215 --- M doc/manuals/chapters/configuration.adoc M src/cbc_data.h M src/cbc_main.c M src/cbc_vty.c M src/internal.h M src/rest_api.c 6 files changed, 110 insertions(+), 13 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/doc/manuals/chapters/configuration.adoc b/doc/manuals/chapters/configuration.adoc index c205d91..095aed5 100644 --- a/doc/manuals/chapters/configuration.adoc +++ b/doc/manuals/chapters/configuration.adoc @@ -1,12 +1,14 @@ [[configuration]] -== CBSP / Peer Configuration +== Configuration + +=== CBSP / Peer Configuration CBSP is the BSC-CBC interface within the 3GPP architecture. It serves to communicate CSB and ETWS messages from the CBC to the BSC, who then subsequently distributes it among the (matching) cells within the BSC coverage area. -=== Configuring the CBSP connections +==== Configuring the CBSP connections According to 3GPP TS 48.049, a BSC typically operates as a TCP server, and the CBC connects as TCP client. This would require the CBC to have @@ -46,7 +48,7 @@ For more details on the available configuration commands, please check the OsmoCBC VTY Reference. -=== Configuring the IP/Port for CBSP to bind to +==== Configuring the IP/Port for CBSP to bind to It can be configure to which IP and TCP port the CBSP protocol binds to. @@ -60,3 +62,20 @@ local-ip 127.0.0.1 local-port 48049 ---- + +=== ECBE (REST Interface) Configuration + +==== Configuring the IP/Port for ECBE to bind to + +It can be configure to which IP and TCP port the ECBE REST Interface binds to. + +The default is to bind to is the non-standard port number 12349 at the +loopback IP address 127.0.0.1. + +.Example: Configure ECBE REST interface to bind to 127.0.0.1:8080 +---- +cbc + ecbe + local-ip 127.0.0.1 + local-port 8080 +---- diff --git a/src/cbc_data.h b/src/cbc_data.h index 76fdfad..e88ae45 100644 --- a/src/cbc_data.h +++ b/src/cbc_data.h @@ -169,6 +169,10 @@ char *local_host; int local_port; } cbsp; + struct { + char *local_host; + int local_port; + } ecbe; } config; struct llist_head messages; /* cbc_message.list */ diff --git a/src/cbc_main.c b/src/cbc_main.c index 168fd7d..ff696bd 100644 --- a/src/cbc_main.c +++ b/src/cbc_main.c @@ -1,6 +1,6 @@ /* Osmocom CBC (Cell Broacast Centre) */ -/* (C) 2019 by Harald Welte +/* (C) 2019-2021 by Harald Welte * All Rights Reserved * * SPDX-License-Identifier: AGPL-3.0+ @@ -221,6 +221,8 @@ INIT_LLIST_HEAD(&g_cbc->expired_messages); g_cbc->config.cbsp.local_host = talloc_strdup(g_cbc, "127.0.0.1"); g_cbc->config.cbsp.local_port = CBSP_TCP_PORT; + g_cbc->config.ecbe.local_host = talloc_strdup(g_cbc, "127.0.0.1"); + g_cbc->config.ecbe.local_port = 12345; cbc_vty_init(); @@ -245,7 +247,7 @@ cbsp_cbc_create(tall_cbc_ctx, g_cbc->config.cbsp.local_host, g_cbc->config.cbsp.local_port, &cbc_client_rx_cb); - rest_api_init(tall_rest_ctx, 12345); + rest_api_init(tall_rest_ctx, g_cbc->config.ecbe.local_host, g_cbc->config.ecbe.local_port); LOGP(DREST, LOGL_INFO, "Main thread tid: %lu\n", pthread_self()); g_cbc->it_q.rest2main = osmo_it_q_alloc(g_cbc, "rest2main", 10, rest2main_read_cb, NULL); diff --git a/src/cbc_vty.c b/src/cbc_vty.c index b1aa34f..98e2703 100644 --- a/src/cbc_vty.c +++ b/src/cbc_vty.c @@ -1,6 +1,6 @@ /* Osmocom CBC (Cell Broacast Centre) */ -/* (C) 2019 by Harald Welte +/* (C) 2019-2021 by Harald Welte * All Rights Reserved * * SPDX-License-Identifier: AGPL-3.0+ @@ -268,6 +268,7 @@ CBC_NODE = _LAST_OSMOVTY_NODE + 1, PEER_NODE, CBSP_NODE, + ECBE_NODE, }; static struct cmd_node cbc_node = { @@ -319,6 +320,14 @@ return CMD_SUCCESS; } +DEFUN(cfg_ecbe, cfg_ecbe_cmd, + "ecbe", + "External CBS Entity (REST Interface)\n") +{ + vty->node = ECBE_NODE; + return CMD_SUCCESS; +} + /* CBSP */ @@ -356,6 +365,43 @@ } +/* ECBE */ + +static struct cmd_node ecbe_node = { + ECBE_NODE, + "%s(config-ecbe)# ", + 1, +}; + +static int config_write_ecbe(struct vty *vty) +{ + vty_out(vty, " ecbe%s", VTY_NEWLINE); + vty_out(vty, " local-ip %s%s", g_cbc->config.ecbe.local_host, VTY_NEWLINE); + vty_out(vty, " local-port %u%s", g_cbc->config.ecbe.local_port, VTY_NEWLINE); + + return CMD_SUCCESS; +} + +DEFUN(cfg_ecbe_local_ip, cfg_ecbe_local_ip_cmd, + "local-ip (A.B.C.D|X:X::X:X)", + "Local IP address for CBSP\n" + "Local IPv4 address for ECBE REST Interface\n" + "Local IPv6 address for ECBE REST Interface\n") +{ + osmo_talloc_replace_string(g_cbc, &g_cbc->config.ecbe.local_host, argv[0]); + return CMD_SUCCESS; +} + +DEFUN(cfg_ecbe_local_port, cfg_ecbe_local_port_cmd, + "local-port <0-65535>", + "Local TCP port for ECBE RESET Interface\n" + "Local TCP port for ECBE RESET Interface\n") +{ + g_cbc->config.ecbe.local_port = atoi(argv[0]); + return CMD_SUCCESS; +} + + /* PEER */ DEFUN(cfg_cbc_peer, cfg_cbc_peer_cmd, @@ -469,6 +515,11 @@ install_lib_element(CBSP_NODE, &cfg_cbsp_local_ip_cmd); install_lib_element(CBSP_NODE, &cfg_cbsp_local_port_cmd); + install_lib_element(CBC_NODE, &cfg_ecbe_cmd); + install_node(&ecbe_node, config_write_ecbe); + install_lib_element(ECBE_NODE, &cfg_ecbe_local_ip_cmd); + install_lib_element(ECBE_NODE, &cfg_ecbe_local_port_cmd); + install_lib_element(CBC_NODE, &cfg_cbc_peer_cmd); install_lib_element(CBC_NODE, &cfg_cbc_no_peer_cmd); install_node(&peer_node, config_write_peer); diff --git a/src/internal.h b/src/internal.h index e493c86..29093b5 100644 --- a/src/internal.h +++ b/src/internal.h @@ -25,7 +25,7 @@ /* rest_api.c */ -int rest_api_init(void *ctx, uint16_t port); +int rest_api_init(void *ctx, const char *bind_addr, uint16_t port); void rest_api_fin(void); /* cbc_vty.c */ diff --git a/src/rest_api.c b/src/rest_api.c index 9473a01..91e7d40 100644 --- a/src/rest_api.c +++ b/src/rest_api.c @@ -1,6 +1,6 @@ /* Osmocom CBC (Cell Broacast Centre) */ -/* (C) 2019-2020 by Harald Welte +/* (C) 2019-2021 by Harald Welte * All Rights Reserved * * SPDX-License-Identifier: AGPL-3.0+ @@ -31,6 +31,7 @@ #include #include +#include #include @@ -677,8 +678,9 @@ } #endif -int rest_api_init(void *ctx, uint16_t port) +int rest_api_init(void *ctx, const char *bind_addr, uint16_t port) { + struct osmo_sockaddr_str sastr; int i; #ifdef ULFIUS_MALLOC_NOT_BROKEN @@ -687,18 +689,37 @@ o_set_alloc_funcs(my_o_malloc, my_o_realloc, my_o_free); #endif - if (ulfius_init_instance(&g_instance, port, NULL, NULL) != U_OK) - return -1; + OSMO_STRLCPY_ARRAY(sastr.ip, bind_addr); + sastr.port = port; + + if (strchr(bind_addr, ':')) { +#if (ULFIUS_VERSION_MAJOR > 2) || (ULFIUS_VERSION_MAJOR == 2) && (ULFIUS_VERSION_MINOR >= 6) + struct sockaddr_in6 sin6; + sastr.af = AF_INET6; + osmo_sockaddr_str_to_sockaddr_in6(&sastr, &sin6); + if (ulfius_init_instance_ipv6(&g_instance, port, &sin6, U_USE_IPV6, NULL) != U_OK) + return -1; +#else + LOGP(DREST, LOGL_FATAL, "IPv6 requires ulfius version >= 2.6\n"); + return -2; +#endif + } else { + struct sockaddr_in sin; + sastr.af = AF_INET; + osmo_sockaddr_str_to_sockaddr_in(&sastr, &sin); + if (ulfius_init_instance(&g_instance, port, &sin, NULL) != U_OK) + return -1; + } g_instance.mhd_response_copy_data = 1; for (i = 0; i < ARRAY_SIZE(api_endpoints); i++) ulfius_add_endpoint(&g_instance, &api_endpoints[i]); if (ulfius_start_framework(&g_instance) != U_OK) { - LOGP(DREST, LOGL_FATAL, "Cannot start REST API on port %u\n", port); + LOGP(DREST, LOGL_FATAL, "Cannot start ECBE REST API at %s:%u\n", bind_addr, port); return -1; } - LOGP(DREST, LOGL_NOTICE, "Started REST API on port %u\n", port); + LOGP(DREST, LOGL_NOTICE, "Started ECBE REST API at %s:%u\n", bind_addr, port); return 0; } -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22402 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: I656d0d1c7b21db90b62e71109d9844476a2e3215 Gerrit-Change-Number: 22402 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 24 13:40:44 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 24 Jan 2021 13:40:44 +0000 Subject: Change in osmo-cbc[master]: terminate if CBSP or ECBE ports cannot be bound In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22403 ) Change subject: terminate if CBSP or ECBE ports cannot be bound ...................................................................... terminate if CBSP or ECBE ports cannot be bound Change-Id: I748648a0bd5a06da26cddc34ff0d9b6000e71370 --- M src/cbc_main.c 1 file changed, 10 insertions(+), 3 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/cbc_main.c b/src/cbc_main.c index ff696bd..bf29a1a 100644 --- a/src/cbc_main.c +++ b/src/cbc_main.c @@ -244,10 +244,17 @@ exit(1); } - cbsp_cbc_create(tall_cbc_ctx, g_cbc->config.cbsp.local_host, g_cbc->config.cbsp.local_port, - &cbc_client_rx_cb); + if (cbsp_cbc_create(tall_cbc_ctx, g_cbc->config.cbsp.local_host, g_cbc->config.cbsp.local_port, + &cbc_client_rx_cb) == NULL) { + perror("Error binidng CBSP port\n"); + exit(1); + } - rest_api_init(tall_rest_ctx, g_cbc->config.ecbe.local_host, g_cbc->config.ecbe.local_port); + rc = rest_api_init(tall_rest_ctx, g_cbc->config.ecbe.local_host, g_cbc->config.ecbe.local_port); + if (rc < 0) { + perror("Error binidng ECBE port\n"); + exit(1); + } LOGP(DREST, LOGL_INFO, "Main thread tid: %lu\n", pthread_self()); g_cbc->it_q.rest2main = osmo_it_q_alloc(g_cbc, "rest2main", 10, rest2main_read_cb, NULL); -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22403 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: I748648a0bd5a06da26cddc34ff0d9b6000e71370 Gerrit-Change-Number: 22403 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 24 13:40:45 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 24 Jan 2021 13:40:45 +0000 Subject: Change in osmo-cbc[master]: cbc-apitool: Fix parsing if no argument is goven In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22404 ) Change subject: cbc-apitool: Fix parsing if no argument is goven ...................................................................... cbc-apitool: Fix parsing if no argument is goven Change-Id: I3abd7a22dc5df2bf7c926fb0e1ba09e60628f55d --- M contrib/cbc-apitool.py 1 file changed, 3 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/contrib/cbc-apitool.py b/contrib/cbc-apitool.py index c7ebcfa..7d0fedf 100755 --- a/contrib/cbc-apitool.py +++ b/contrib/cbc-apitool.py @@ -142,8 +142,9 @@ argv = sys.argv if len(sys.argv) == 1: - argv = ['-h'] - args = parser.parse_args(argv) + args = parser.parse_args(['-h']) + else: + args = parser.parse_args() server_host = args.host server_port = args.port -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22404 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: I3abd7a22dc5df2bf7c926fb0e1ba09e60628f55d Gerrit-Change-Number: 22404 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 24 13:48:41 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 24 Jan 2021 13:48:41 +0000 Subject: Change in osmo-cbc[master]: manual: Document ECBE; include JSON schema; cross-references In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-cbc/+/22405 to look at the new patch set (#3). Change subject: manual: Document ECBE; include JSON schema; cross-references ...................................................................... manual: Document ECBE; include JSON schema; cross-references Change-Id: I358f72331aa9832cc56c67396eb41b62307a3258 --- M contrib/osmo-cbc.spec.in M doc/manuals/chapters/configuration.adoc A doc/manuals/chapters/ecbe-rest-interface.adoc M doc/manuals/chapters/overview.adoc M doc/manuals/osmocbc-usermanual.adoc 5 files changed, 70 insertions(+), 22 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-cbc refs/changes/05/22405/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22405 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: I358f72331aa9832cc56c67396eb41b62307a3258 Gerrit-Change-Number: 22405 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 24 13:48:43 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 24 Jan 2021 13:48:43 +0000 Subject: Change in osmo-cbc[master]: manual: Document cbc-apitool.py References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22407 ) Change subject: manual: Document cbc-apitool.py ...................................................................... manual: Document cbc-apitool.py Change-Id: I2a65e7a582c8bb72d80731fb6e77a796ae4f9b4c --- A doc/manuals/chapters/cbc-apitool.adoc M doc/manuals/osmocbc-usermanual.adoc 2 files changed, 81 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-cbc refs/changes/07/22407/1 diff --git a/doc/manuals/chapters/cbc-apitool.adoc b/doc/manuals/chapters/cbc-apitool.adoc new file mode 100644 index 0000000..145d845 --- /dev/null +++ b/doc/manuals/chapters/cbc-apitool.adoc @@ -0,0 +1,79 @@ +[[apitool]] +== `cbc-apitool.py` + +`cbc-apitool.py` is a very simple/basic python3 script that can be used +to demonstrate the use of the ECBE REST interface (<>) from the +command line. + +It uses the python3 standard librariy `requests` in order to issue ECBE +API request over HTTP towards osmo-cbc. + +`cbc-apitool.py` has a couple of sub-commands, each of which offer + +=== Common options + +*-h, --help*:: + Print a short help message about the supported common options. +*-H, --host HOST*:: + Remote host name/IP to which to connect (typically your ECBE + bind address of osmo-cbc). Default: 127.0.0.1. +*-p, --port PORT*:: + Remote TCP port number to which to connect (typically your ECBE + bind address of osmo-cbc). Default: 12345 +*-v, --verbose*:: + Print some more verbose information like the HTTP requests + and responses during execution. + + +=== `create-cbs`: Creating a new CBS message + +You can create a new CBS message using `cbc-apitool create-cbs`. + +==== `create-cbs` Options + +*-h, --help*:: + Print a short help message about the supported create-cbs options. +*--msg-id MSG_ID*:: + Specify the message ID of the to-be-created CBS + message. Range: 0..65535 +*--msg-code MSG_CODE*:: + Specify the message code (part of the serial number). Range: + 0..1023. Default: 768 +*--update-nr UPDATE_NR*:: + Specify the update number (part of the serial number). Range: + 0..15. Default: 0 +*--repetition-period REPETITION_PERIOD*:: + How frequently this message shall be repeated (in number of CBCH + slots). Default: 5 +*--num-of-bcast NUM_OF_BCAST*:: + Number of times this message shall be broadcast (Default: 999). +*--payload-data-utf8 PAYLOAD_DATA_UTF8*:: + Payload data (typically text message) in UTF8 encoding. Will be + transcoded to 7bit GSM alphabet internally. + + +==== `create-etws` Options + +*-h, --help*:: + Print a short help message about the supported create-cbs options. +*--msg-id MSG_ID*:: + Specify the message ID of the to-be-created CBS + message. Range: 0..65535 +*--msg-code MSG_CODE*:: + Specify the message code (part of the serial number). Range: + 0..1023. Default: 768 +*--update-nr UPDATE_NR*:: + Specify the update number (part of the serial number). Range: + 0..15. Default: 0 +*--repetition-period REPETITION_PERIOD*:: + How frequently this message shall be repeated (in number of CBCH + slots). Default: 5 +*--num-of-bcast NUM_OF_BCAST*:: + Number of times this message shall be broadcast (Default: 999). + + +==== `delete` Options + +*--msg-id MSG_ID*:: + Specify the message ID of the to-be-created CBS + message. Range: 0..65535 diff --git a/doc/manuals/osmocbc-usermanual.adoc b/doc/manuals/osmocbc-usermanual.adoc index e08586d..31406dd 100644 --- a/doc/manuals/osmocbc-usermanual.adoc +++ b/doc/manuals/osmocbc-usermanual.adoc @@ -18,6 +18,8 @@ include::{srcdir}/chapters/ecbe-rest-interface.adoc[] +include::{srcdir}/chapters/cbc-apitool.adoc[] + include::./common/chapters/counters-overview.adoc[] include::{srcdir}/chapters/counters.adoc[] -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22407 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: I2a65e7a582c8bb72d80731fb6e77a796ae4f9b4c Gerrit-Change-Number: 22407 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 24 13:48:44 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 24 Jan 2021 13:48:44 +0000 Subject: Change in osmo-cbc[master]: debian: Package cbc-apitool.py as a sub-package References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22408 ) Change subject: debian: Package cbc-apitool.py as a sub-package ...................................................................... debian: Package cbc-apitool.py as a sub-package We don't want osmo-cbc to depend on python3 at runtime, so let's use a sub-package for osmo-cbc-apitool.py Change-Id: Id16613811993a2baa06ebc2da6c6591ace70a3f9 --- M debian/control A debian/osmo-cbc-utils.install M debian/rules 3 files changed, 10 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-cbc refs/changes/08/22408/1 diff --git a/debian/control b/debian/control index f2c7c7f..9fcafc8 100644 --- a/debian/control +++ b/debian/control @@ -27,6 +27,12 @@ Depends: ${misc:Depends}, ${shlibs:Depends} Description: OsmoCBC: Osmocom's Cell Broadcast Center +Package: osmo-cbc-utils +Architecture: any +Multi-Arch: foreign +Depends: ${misc:Depends}, ${shlibs:Depends}, python3 +Description: Utilities for OsmoCBC: Osmocom's Cell Broadcast Center + Package: osmo-cbc-dbg Section: debug Architecture: any diff --git a/debian/osmo-cbc-utils.install b/debian/osmo-cbc-utils.install new file mode 100644 index 0000000..102de7c --- /dev/null +++ b/debian/osmo-cbc-utils.install @@ -0,0 +1 @@ +usr/bin/cbc-apitool.py diff --git a/debian/rules b/debian/rules index c57fa05..7d40e3d 100755 --- a/debian/rules +++ b/debian/rules @@ -50,8 +50,9 @@ dh_auto_configure -- $(CONFIGURE_FLAGS) # # Do not install libtool archive, python .pyc .pyo -#override_dh_install: -# dh_install --list-missing -X.la -X.pyc -X.pyo +override_dh_install: + install -m 755 contrib/cbc-apitool.py debian/tmp/usr/bin/cbc-apitool.py + dh_install # See https://www.debian.org/doc/manuals/developers-reference/best-pkging-practices.html#bpp-dbg override_dh_strip: -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22408 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: Id16613811993a2baa06ebc2da6c6591ace70a3f9 Gerrit-Change-Number: 22408 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 24 13:55:33 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 24 Jan 2021 13:55:33 +0000 Subject: Change in osmo-cbc[master]: manual: Document ECBE; include JSON schema; cross-references In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-cbc/+/22405 to look at the new patch set (#4). Change subject: manual: Document ECBE; include JSON schema; cross-references ...................................................................... manual: Document ECBE; include JSON schema; cross-references Change-Id: I358f72331aa9832cc56c67396eb41b62307a3258 --- M doc/manuals/chapters/configuration.adoc A doc/manuals/chapters/ecbe-rest-interface.adoc M doc/manuals/chapters/overview.adoc M doc/manuals/osmocbc-usermanual.adoc 4 files changed, 62 insertions(+), 22 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-cbc refs/changes/05/22405/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22405 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: I358f72331aa9832cc56c67396eb41b62307a3258 Gerrit-Change-Number: 22405 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 24 14:02:39 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 24 Jan 2021 14:02:39 +0000 Subject: Change in osmo-cbc[master]: Makefile.am: cosmetic changes References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22409 ) Change subject: Makefile.am: cosmetic changes ...................................................................... Makefile.am: cosmetic changes Change-Id: Ib667fcf37413d15cd9b1cf53931e3360214b049e --- M Makefile.am 1 file changed, 5 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-cbc refs/changes/09/22409/1 diff --git a/Makefile.am b/Makefile.am index 4037bb1..04a6023 100644 --- a/Makefile.am +++ b/Makefile.am @@ -3,7 +3,11 @@ AM_CPPFLAGS = $(all_includes) -I$(top_srcdir)/include SUBDIRS = src doc contrib tests -EXTRA_DIST = .version README.md git-version-gen contrib/osmo-cbc.spec.in +EXTRA_DIST = .version \ + README.md \ + git-version-gen \ + contrib/osmo-cbc.spec.in \ + $(NULL) AM_DISTCHECK_CONFIGURE_FLAGS = \ --with-systemdsystemunitdir=$$dc_install_base/$(systemdsystemunitdir) -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22409 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: Ib667fcf37413d15cd9b1cf53931e3360214b049e Gerrit-Change-Number: 22409 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 24 14:02:40 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 24 Jan 2021 14:02:40 +0000 Subject: Change in osmo-cbc[master]: Makefile.am: add *.json to EXTRA_DIST References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22410 ) Change subject: Makefile.am: add *.json to EXTRA_DIST ...................................................................... Makefile.am: add *.json to EXTRA_DIST Otherwise the source tarballs would not contain the json schema Change-Id: I1a3685bcff0e50a644e904c221d7d285f6215da1 --- M Makefile.am 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-cbc refs/changes/10/22410/1 diff --git a/Makefile.am b/Makefile.am index 04a6023..bb8a7fa 100644 --- a/Makefile.am +++ b/Makefile.am @@ -7,6 +7,7 @@ README.md \ git-version-gen \ contrib/osmo-cbc.spec.in \ + *.json \ $(NULL) AM_DISTCHECK_CONFIGURE_FLAGS = \ -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22410 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: I1a3685bcff0e50a644e904c221d7d285f6215da1 Gerrit-Change-Number: 22410 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 24 14:27:21 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 24 Jan 2021 14:27:21 +0000 Subject: Change in docker-playground[master]: ttcn3-pcu-test-sns: fix DTE 'Encoding an unbound integer value' References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/22411 ) Change subject: ttcn3-pcu-test-sns: fix DTE 'Encoding an unbound integer value' ...................................................................... ttcn3-pcu-test-sns: fix DTE 'Encoding an unbound integer value' Starting from build #245 [1] all test cases fail due to DTE: RAW_NS.ttcnpp:62 Dynamic test case error: Text encoder: Encoding an unbound integer value. This happens because fields 'data_weight' and 'signalling_weight' are both unbound for two additional NS providers. Fix this. [1] https://jenkins.osmocom.org/jenkins/view/TTCN3-centos/job/TTCN3-centos-pcu-test-sns/245/ Change-Id: I401f53bddd81e8386c01392d9a59c3b5ca8e9802 Fixes: Ic607b3edc3bf724a8b2dbd6be8c806002c229509 --- M ttcn3-pcu-test/sns/PCU_Tests.cfg 1 file changed, 4 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/11/22411/1 diff --git a/ttcn3-pcu-test/sns/PCU_Tests.cfg b/ttcn3-pcu-test/sns/PCU_Tests.cfg index 7efb2cb..604f50c 100644 --- a/ttcn3-pcu-test/sns/PCU_Tests.cfg +++ b/ttcn3-pcu-test/sns/PCU_Tests.cfg @@ -33,6 +33,8 @@ local_udp_port := 23001, remote_ip := "172.18.14.101", remote_udp_port := 23000 + data_weight := 1, + signalling_weight := 1 } }, nsvci := 1234 @@ -45,6 +47,8 @@ local_udp_port := 23002, remote_ip := "172.18.14.101", remote_udp_port := 23000 + data_weight := 1, + signalling_weight := 1 } }, nsvci := 1234 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22411 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I401f53bddd81e8386c01392d9a59c3b5ca8e9802 Gerrit-Change-Number: 22411 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 24 14:54:09 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 24 Jan 2021 14:54:09 +0000 Subject: Change in osmo-cbc[master]: Makefile.am: cosmetic changes In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22409 ) Change subject: Makefile.am: cosmetic changes ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22409 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: Ib667fcf37413d15cd9b1cf53931e3360214b049e Gerrit-Change-Number: 22409 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 24 Jan 2021 14:54:09 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 24 14:54:12 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 24 Jan 2021 14:54:12 +0000 Subject: Change in osmo-cbc[master]: Makefile.am: cosmetic changes In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22409 ) Change subject: Makefile.am: cosmetic changes ...................................................................... Makefile.am: cosmetic changes Change-Id: Ib667fcf37413d15cd9b1cf53931e3360214b049e --- M Makefile.am 1 file changed, 5 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/Makefile.am b/Makefile.am index 4037bb1..04a6023 100644 --- a/Makefile.am +++ b/Makefile.am @@ -3,7 +3,11 @@ AM_CPPFLAGS = $(all_includes) -I$(top_srcdir)/include SUBDIRS = src doc contrib tests -EXTRA_DIST = .version README.md git-version-gen contrib/osmo-cbc.spec.in +EXTRA_DIST = .version \ + README.md \ + git-version-gen \ + contrib/osmo-cbc.spec.in \ + $(NULL) AM_DISTCHECK_CONFIGURE_FLAGS = \ --with-systemdsystemunitdir=$$dc_install_base/$(systemdsystemunitdir) -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22409 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: Ib667fcf37413d15cd9b1cf53931e3360214b049e Gerrit-Change-Number: 22409 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 24 14:54:55 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 24 Jan 2021 14:54:55 +0000 Subject: Change in osmo-cbc[master]: Makefile.am: add *.json to EXTRA_DIST In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-cbc/+/22410 to look at the new patch set (#2). Change subject: Makefile.am: add *.json to EXTRA_DIST ...................................................................... Makefile.am: add *.json to EXTRA_DIST Otherwise the source tarballs would not contain the json schema Change-Id: I1a3685bcff0e50a644e904c221d7d285f6215da1 --- M Makefile.am 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-cbc refs/changes/10/22410/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22410 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: I1a3685bcff0e50a644e904c221d7d285f6215da1 Gerrit-Change-Number: 22410 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 24 14:59:01 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 24 Jan 2021 14:59:01 +0000 Subject: Change in osmo-cbc[master]: manual: Document ECBE; include JSON schema; cross-references In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22405 ) Change subject: manual: Document ECBE; include JSON schema; cross-references ...................................................................... Patch Set 6: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22405 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: I358f72331aa9832cc56c67396eb41b62307a3258 Gerrit-Change-Number: 22405 Gerrit-PatchSet: 6 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 24 Jan 2021 14:59:01 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 24 14:59:04 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 24 Jan 2021 14:59:04 +0000 Subject: Change in osmo-cbc[master]: Makefile.am: add *.json to EXTRA_DIST In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22410 ) Change subject: Makefile.am: add *.json to EXTRA_DIST ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22410 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: I1a3685bcff0e50a644e904c221d7d285f6215da1 Gerrit-Change-Number: 22410 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 24 Jan 2021 14:59:04 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 24 14:59:13 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 24 Jan 2021 14:59:13 +0000 Subject: Change in osmo-cbc[master]: Makefile.am: add *.json to EXTRA_DIST In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22410 ) Change subject: Makefile.am: add *.json to EXTRA_DIST ...................................................................... Makefile.am: add *.json to EXTRA_DIST Otherwise the source tarballs would not contain the json schema Change-Id: I1a3685bcff0e50a644e904c221d7d285f6215da1 --- M Makefile.am 1 file changed, 2 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/Makefile.am b/Makefile.am index 04a6023..52fa70c 100644 --- a/Makefile.am +++ b/Makefile.am @@ -7,6 +7,8 @@ README.md \ git-version-gen \ contrib/osmo-cbc.spec.in \ + cbc.schema.json \ + smscb.schema.json \ $(NULL) AM_DISTCHECK_CONFIGURE_FLAGS = \ -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22410 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: I1a3685bcff0e50a644e904c221d7d285f6215da1 Gerrit-Change-Number: 22410 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 24 14:59:13 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 24 Jan 2021 14:59:13 +0000 Subject: Change in osmo-cbc[master]: manual: Document ECBE; include JSON schema; cross-references In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22405 ) Change subject: manual: Document ECBE; include JSON schema; cross-references ...................................................................... manual: Document ECBE; include JSON schema; cross-references Change-Id: I358f72331aa9832cc56c67396eb41b62307a3258 --- M doc/manuals/chapters/configuration.adoc A doc/manuals/chapters/ecbe-rest-interface.adoc M doc/manuals/chapters/overview.adoc M doc/manuals/osmocbc-usermanual.adoc 4 files changed, 62 insertions(+), 22 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/doc/manuals/chapters/configuration.adoc b/doc/manuals/chapters/configuration.adoc index 095aed5..5abb3a8 100644 --- a/doc/manuals/chapters/configuration.adoc +++ b/doc/manuals/chapters/configuration.adoc @@ -8,6 +8,7 @@ subsequently distributes it among the (matching) cells within the BSC coverage area. +[[config-cbsp]] ==== Configuring the CBSP connections According to 3GPP TS 48.049, a BSC typically operates as a TCP server, @@ -63,6 +64,7 @@ local-port 48049 ---- +[[config-ecbe]] === ECBE (REST Interface) Configuration ==== Configuring the IP/Port for ECBE to bind to diff --git a/doc/manuals/chapters/ecbe-rest-interface.adoc b/doc/manuals/chapters/ecbe-rest-interface.adoc new file mode 100644 index 0000000..2c03880 --- /dev/null +++ b/doc/manuals/chapters/ecbe-rest-interface.adoc @@ -0,0 +1,49 @@ +[[ecbe]] +== ECBE REST interface + +The ECBE (External Cell Broadcast Entity) REST interface is specified in +the JSON schema files `cbc.schema.json` and `smscb.schema.json`, which +are part of the OsmoCBC distribution. + +The REST interface binds to the IP and TCP port as configured and +can be reached at `http://IP:PORT/api/ecbe/v1` + +NOTE:: It is your responsibility to properly secure access to the REST +interface endpoint to ensure only legitimate users can access it. This +may be achieved via packet filtering and a reverse HTTP proxy. + +=== API endpoints + +==== `POST /api/ecbe/v1/message` + +This command is used to create a new SMSCB or ETWS message inside the CBC. +The `cbc_messsage` type as specified in the JSON schema (<>). + +==== `DELETE /api/ecbe/v1/message/:message_id` + +This command is used to delete an existing SMSCB or ETWS message from the CBC. + +The `:message_id` parameter is the decimal integer representation of the +cbc_message.smscb.message_id that was specified when creating the +message via the POST command stated above. + +[[ecbe-json]] +=== JSON Schema + +==== `cbc.schema.json` + +This is the main JSOM schema for osmo-cbc. In many places, it +references `smscb.schema.json` described further below. + +---- +include::{srcdir}/../../cbc.schema.json[] +---- + +==== `smscb.schema.json` + +This JSON schema describes a lot of the basic data types relevant for +SMSCB. It is used heavily by `cbc.schema.json` described above. + +---- +include::{srcdir}/../../smscb.schema.json[] +---- diff --git a/doc/manuals/chapters/overview.adoc b/doc/manuals/chapters/overview.adoc index 2077878..3063ff7 100644 --- a/doc/manuals/chapters/overview.adoc +++ b/doc/manuals/chapters/overview.adoc @@ -49,29 +49,16 @@ the CBC doesn't need to know each and every BSC in the network. It simply only accepts incoming CBSP connections. +For more information, see <> on how CBSP is configured. -=== REST interface +=== ECBE REST interface -The REST interface is specified in the JSON schema files -`cbc.schema.json` and `smscb.schema.json`, which are part of the OsmoCBC -distribution. +3GPP does not specify the external interface by which competent +authorities can submit SMSCB and/or ETWS messages to a CBC. -The REST interface currently binds to TCP port 12345 (on INADRR_ANY) and -can be reached at http://localhost:1234/api/ecbe/v1" +Hence, a non-standard, Osmocom specific HTTP/REST/JSON based interface +is offered for external entities to create and delete SMSCB and ETWS +messages within the CBC. This interface is called ECBE. -NOTE:: It is your responsibility to properly secure access to the REST -interface endpoint to ensure only legitimate users can access it. This -may be achieved via packet filtering and a reverse HTTP proxy. - -==== POST /api/ecbe/v1/message - -This command is used to create a new SMSCB or ETWS message inside the CBC. -The `cbc_messsage` type as specified in the JSON schema. - -==== DELETE /api/ecbe/v1/message/:message_id - -This command is used to delete an existing SMSCB or ETWS message from the CBC. - -The `:message_id` parameter is the decimal integer representation of the -cbc_message.smscb.message_id that was specified when creating the -message via the POST command stated above. +For more information, see <> on the ECBE API definition and <> +on how it is configured. diff --git a/doc/manuals/osmocbc-usermanual.adoc b/doc/manuals/osmocbc-usermanual.adoc index 967ec96..e08586d 100644 --- a/doc/manuals/osmocbc-usermanual.adoc +++ b/doc/manuals/osmocbc-usermanual.adoc @@ -16,6 +16,8 @@ include::{srcdir}/chapters/introspection.adoc[] +include::{srcdir}/chapters/ecbe-rest-interface.adoc[] + include::./common/chapters/counters-overview.adoc[] include::{srcdir}/chapters/counters.adoc[] -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22405 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: I358f72331aa9832cc56c67396eb41b62307a3258 Gerrit-Change-Number: 22405 Gerrit-PatchSet: 6 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 24 14:59:20 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 24 Jan 2021 14:59:20 +0000 Subject: Change in osmo-cbc[master]: WIP spec References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22412 ) Change subject: WIP spec ...................................................................... WIP spec Change-Id: Id1ba3a26f3b40a42c69c61e844f00f2ddc70941b --- M contrib/osmo-cbc.spec.in 1 file changed, 9 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-cbc refs/changes/12/22412/1 diff --git a/contrib/osmo-cbc.spec.in b/contrib/osmo-cbc.spec.in index bd90c51..621052e 100644 --- a/contrib/osmo-cbc.spec.in +++ b/contrib/osmo-cbc.spec.in @@ -47,6 +47,11 @@ %description OsmoCBC: Osmocom's Cell Broadcast Centre for 3GPP mobile networks. +%package osmo-cbc-utils +Summary: CLI utility to interface osmo-cbc REST interface +License: AGPL-3.0-or-later +Group: Productivity/Telephony/Utilities + %prep %setup -q @@ -60,6 +65,7 @@ %install %make_install +install -m 755 contrib/cbc-apitooo.py %{buildroot}/usr/bin/cbc-apitool.py %if 0%{?suse_version} %preun @@ -89,4 +95,7 @@ %config(noreplace) %{_sysconfdir}/osmocom/osmo-cbc.cfg %{_unitdir}/%{name}.service +%files osmo-cbc-utils +%{_bindir}/cbc-apitool.py + %changelog -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22412 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: Id1ba3a26f3b40a42c69c61e844f00f2ddc70941b Gerrit-Change-Number: 22412 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 24 14:59:21 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 24 Jan 2021 14:59:21 +0000 Subject: Change in osmo-cbc[master]: osmo-cbc.spec: License is AGPLv3-or-later + MIT References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22413 ) Change subject: osmo-cbc.spec: License is AGPLv3-or-later + MIT ...................................................................... osmo-cbc.spec: License is AGPLv3-or-later + MIT Change-Id: Id193997a2883189a2f3451203523a901f9f64fd4 --- M contrib/osmo-cbc.spec.in 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-cbc refs/changes/13/22413/1 diff --git a/contrib/osmo-cbc.spec.in b/contrib/osmo-cbc.spec.in index 621052e..8a86329 100644 --- a/contrib/osmo-cbc.spec.in +++ b/contrib/osmo-cbc.spec.in @@ -20,7 +20,7 @@ Version: @VERSION@ Release: 0 Summary: OsmoCBC: Osmocom's Cell Broadcast Centre for 3GPP mobile networks -License: AGPL-3.0-or-later AND GPL-2.0-or-later +License: AGPL-3.0-or-later Group: Hardware/Mobile URL: https://osmocom.org/projects/osmo-cbc Source: %{name}-%{version}.tar.xz @@ -49,7 +49,7 @@ %package osmo-cbc-utils Summary: CLI utility to interface osmo-cbc REST interface -License: AGPL-3.0-or-later +License: MIT Group: Productivity/Telephony/Utilities %prep -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22413 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: Id193997a2883189a2f3451203523a901f9f64fd4 Gerrit-Change-Number: 22413 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 24 15:06:21 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 24 Jan 2021 15:06:21 +0000 Subject: Change in osmo-cbc[master]: manual: Add dotty graph on position of CBC in network In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22406 ) Change subject: manual: Add dotty graph on position of CBC in network ...................................................................... Patch Set 6: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22406 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: I0216ebb34b2efc218628341495d026bf4ec0f026 Gerrit-Change-Number: 22406 Gerrit-PatchSet: 6 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 24 Jan 2021 15:06:21 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 24 15:06:27 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 24 Jan 2021 15:06:27 +0000 Subject: Change in osmo-cbc[master]: manual: Document cbc-apitool.py In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22407 ) Change subject: manual: Document cbc-apitool.py ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22407 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: I2a65e7a582c8bb72d80731fb6e77a796ae4f9b4c Gerrit-Change-Number: 22407 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 24 Jan 2021 15:06:27 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 24 15:06:29 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 24 Jan 2021 15:06:29 +0000 Subject: Change in osmo-cbc[master]: debian: Package cbc-apitool.py as a sub-package In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22408 ) Change subject: debian: Package cbc-apitool.py as a sub-package ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22408 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: Id16613811993a2baa06ebc2da6c6591ace70a3f9 Gerrit-Change-Number: 22408 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 24 Jan 2021 15:06:29 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 24 15:06:31 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 24 Jan 2021 15:06:31 +0000 Subject: Change in osmo-cbc[master]: manual: Add dotty graph on position of CBC in network In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22406 ) Change subject: manual: Add dotty graph on position of CBC in network ...................................................................... manual: Add dotty graph on position of CBC in network Change-Id: I0216ebb34b2efc218628341495d026bf4ec0f026 --- M doc/manuals/Makefile.am M doc/manuals/chapters/overview.adoc A doc/manuals/images/cbc-in-network.dot 3 files changed, 24 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/doc/manuals/Makefile.am b/doc/manuals/Makefile.am index ef90e2b..9de94bb 100644 --- a/doc/manuals/Makefile.am +++ b/doc/manuals/Makefile.am @@ -3,6 +3,7 @@ osmocbc-vty-reference.xml \ regen_doc.sh \ chapters \ + images \ vty if BUILD_MANUALS diff --git a/doc/manuals/chapters/overview.adoc b/doc/manuals/chapters/overview.adoc index 3063ff7..c862197 100644 --- a/doc/manuals/chapters/overview.adoc +++ b/doc/manuals/chapters/overview.adoc @@ -10,6 +10,12 @@ authorities for civil protection, and the various components within the 3GPP network to actually deliver those broadcast and/or emergency messages. +.Role of the CBC inside the 3GPP network architecture +[graphviz] +---- +include::../images/cbc-in-network.dot[] +---- + [[about]] === About OsmoCBC diff --git a/doc/manuals/images/cbc-in-network.dot b/doc/manuals/images/cbc-in-network.dot new file mode 100644 index 0000000..960156c --- /dev/null +++ b/doc/manuals/images/cbc-in-network.dot @@ -0,0 +1,17 @@ +digraph G { + rankdir = RL; + CBC [color=red]; + CBE -> CBC [label="REST/JSON"]; + CBC -> BSC [label="CBSP"]; + CBC -> RNC [label="SABP"]; + CBC -> MME [label="SBc-AP"]; + + BSC -> BTS [label="A-bis RSL"]; + RNC -> NodeB [label="Iub"]; + MME -> eNodeB [label="S1-AP"]; + + BTS -> UE [label="CBCH"]; + NodeB -> UE [label="BMC/CTCH"]; + eNodeB -> UE [label="SIB10/11/12"]; + +} -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22406 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: I0216ebb34b2efc218628341495d026bf4ec0f026 Gerrit-Change-Number: 22406 Gerrit-PatchSet: 6 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 24 15:06:32 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 24 Jan 2021 15:06:32 +0000 Subject: Change in osmo-cbc[master]: manual: Document cbc-apitool.py In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22407 ) Change subject: manual: Document cbc-apitool.py ...................................................................... manual: Document cbc-apitool.py Change-Id: I2a65e7a582c8bb72d80731fb6e77a796ae4f9b4c --- A doc/manuals/chapters/cbc-apitool.adoc M doc/manuals/osmocbc-usermanual.adoc 2 files changed, 81 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/doc/manuals/chapters/cbc-apitool.adoc b/doc/manuals/chapters/cbc-apitool.adoc new file mode 100644 index 0000000..145d845 --- /dev/null +++ b/doc/manuals/chapters/cbc-apitool.adoc @@ -0,0 +1,79 @@ +[[apitool]] +== `cbc-apitool.py` + +`cbc-apitool.py` is a very simple/basic python3 script that can be used +to demonstrate the use of the ECBE REST interface (<>) from the +command line. + +It uses the python3 standard librariy `requests` in order to issue ECBE +API request over HTTP towards osmo-cbc. + +`cbc-apitool.py` has a couple of sub-commands, each of which offer + +=== Common options + +*-h, --help*:: + Print a short help message about the supported common options. +*-H, --host HOST*:: + Remote host name/IP to which to connect (typically your ECBE + bind address of osmo-cbc). Default: 127.0.0.1. +*-p, --port PORT*:: + Remote TCP port number to which to connect (typically your ECBE + bind address of osmo-cbc). Default: 12345 +*-v, --verbose*:: + Print some more verbose information like the HTTP requests + and responses during execution. + + +=== `create-cbs`: Creating a new CBS message + +You can create a new CBS message using `cbc-apitool create-cbs`. + +==== `create-cbs` Options + +*-h, --help*:: + Print a short help message about the supported create-cbs options. +*--msg-id MSG_ID*:: + Specify the message ID of the to-be-created CBS + message. Range: 0..65535 +*--msg-code MSG_CODE*:: + Specify the message code (part of the serial number). Range: + 0..1023. Default: 768 +*--update-nr UPDATE_NR*:: + Specify the update number (part of the serial number). Range: + 0..15. Default: 0 +*--repetition-period REPETITION_PERIOD*:: + How frequently this message shall be repeated (in number of CBCH + slots). Default: 5 +*--num-of-bcast NUM_OF_BCAST*:: + Number of times this message shall be broadcast (Default: 999). +*--payload-data-utf8 PAYLOAD_DATA_UTF8*:: + Payload data (typically text message) in UTF8 encoding. Will be + transcoded to 7bit GSM alphabet internally. + + +==== `create-etws` Options + +*-h, --help*:: + Print a short help message about the supported create-cbs options. +*--msg-id MSG_ID*:: + Specify the message ID of the to-be-created CBS + message. Range: 0..65535 +*--msg-code MSG_CODE*:: + Specify the message code (part of the serial number). Range: + 0..1023. Default: 768 +*--update-nr UPDATE_NR*:: + Specify the update number (part of the serial number). Range: + 0..15. Default: 0 +*--repetition-period REPETITION_PERIOD*:: + How frequently this message shall be repeated (in number of CBCH + slots). Default: 5 +*--num-of-bcast NUM_OF_BCAST*:: + Number of times this message shall be broadcast (Default: 999). + + +==== `delete` Options + +*--msg-id MSG_ID*:: + Specify the message ID of the to-be-created CBS + message. Range: 0..65535 diff --git a/doc/manuals/osmocbc-usermanual.adoc b/doc/manuals/osmocbc-usermanual.adoc index e08586d..31406dd 100644 --- a/doc/manuals/osmocbc-usermanual.adoc +++ b/doc/manuals/osmocbc-usermanual.adoc @@ -18,6 +18,8 @@ include::{srcdir}/chapters/ecbe-rest-interface.adoc[] +include::{srcdir}/chapters/cbc-apitool.adoc[] + include::./common/chapters/counters-overview.adoc[] include::{srcdir}/chapters/counters.adoc[] -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22407 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: I2a65e7a582c8bb72d80731fb6e77a796ae4f9b4c Gerrit-Change-Number: 22407 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 24 15:06:32 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 24 Jan 2021 15:06:32 +0000 Subject: Change in osmo-cbc[master]: debian: Package cbc-apitool.py as a sub-package In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22408 ) Change subject: debian: Package cbc-apitool.py as a sub-package ...................................................................... debian: Package cbc-apitool.py as a sub-package We don't want osmo-cbc to depend on python3 at runtime, so let's use a sub-package for osmo-cbc-apitool.py Change-Id: Id16613811993a2baa06ebc2da6c6591ace70a3f9 --- M debian/control A debian/osmo-cbc-utils.install M debian/rules 3 files changed, 10 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/debian/control b/debian/control index f2c7c7f..9fcafc8 100644 --- a/debian/control +++ b/debian/control @@ -27,6 +27,12 @@ Depends: ${misc:Depends}, ${shlibs:Depends} Description: OsmoCBC: Osmocom's Cell Broadcast Center +Package: osmo-cbc-utils +Architecture: any +Multi-Arch: foreign +Depends: ${misc:Depends}, ${shlibs:Depends}, python3 +Description: Utilities for OsmoCBC: Osmocom's Cell Broadcast Center + Package: osmo-cbc-dbg Section: debug Architecture: any diff --git a/debian/osmo-cbc-utils.install b/debian/osmo-cbc-utils.install new file mode 100644 index 0000000..102de7c --- /dev/null +++ b/debian/osmo-cbc-utils.install @@ -0,0 +1 @@ +usr/bin/cbc-apitool.py diff --git a/debian/rules b/debian/rules index c57fa05..7d40e3d 100755 --- a/debian/rules +++ b/debian/rules @@ -50,8 +50,9 @@ dh_auto_configure -- $(CONFIGURE_FLAGS) # # Do not install libtool archive, python .pyc .pyo -#override_dh_install: -# dh_install --list-missing -X.la -X.pyc -X.pyo +override_dh_install: + install -m 755 contrib/cbc-apitool.py debian/tmp/usr/bin/cbc-apitool.py + dh_install # See https://www.debian.org/doc/manuals/developers-reference/best-pkging-practices.html#bpp-dbg override_dh_strip: -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22408 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: Id16613811993a2baa06ebc2da6c6591ace70a3f9 Gerrit-Change-Number: 22408 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 24 15:11:29 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 24 Jan 2021 15:11:29 +0000 Subject: Change in docker-playground[master]: ttcn3-pcu-test-sns: fix DTE 'Encoding an unbound integer value' In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22411 ) Change subject: ttcn3-pcu-test-sns: fix DTE 'Encoding an unbound integer value' ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22411 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I401f53bddd81e8386c01392d9a59c3b5ca8e9802 Gerrit-Change-Number: 22411 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 24 Jan 2021 15:11:29 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 24 15:11:33 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 24 Jan 2021 15:11:33 +0000 Subject: Change in docker-playground[master]: ttcn3-pcu-test-sns: fix DTE 'Encoding an unbound integer value' In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22411 ) Change subject: ttcn3-pcu-test-sns: fix DTE 'Encoding an unbound integer value' ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22411 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I401f53bddd81e8386c01392d9a59c3b5ca8e9802 Gerrit-Change-Number: 22411 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 24 Jan 2021 15:11:33 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 24 15:11:35 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 24 Jan 2021 15:11:35 +0000 Subject: Change in docker-playground[master]: ttcn3-pcu-test-sns: fix DTE 'Encoding an unbound integer value' In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22411 ) Change subject: ttcn3-pcu-test-sns: fix DTE 'Encoding an unbound integer value' ...................................................................... ttcn3-pcu-test-sns: fix DTE 'Encoding an unbound integer value' Starting from build #245 [1] all test cases fail due to DTE: RAW_NS.ttcnpp:62 Dynamic test case error: Text encoder: Encoding an unbound integer value. This happens because fields 'data_weight' and 'signalling_weight' are both unbound for two additional NS providers. Fix this. [1] https://jenkins.osmocom.org/jenkins/view/TTCN3-centos/job/TTCN3-centos-pcu-test-sns/245/ Change-Id: I401f53bddd81e8386c01392d9a59c3b5ca8e9802 Fixes: Ic607b3edc3bf724a8b2dbd6be8c806002c229509 --- M ttcn3-pcu-test/sns/PCU_Tests.cfg 1 file changed, 4 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved; Verified diff --git a/ttcn3-pcu-test/sns/PCU_Tests.cfg b/ttcn3-pcu-test/sns/PCU_Tests.cfg index 7efb2cb..604f50c 100644 --- a/ttcn3-pcu-test/sns/PCU_Tests.cfg +++ b/ttcn3-pcu-test/sns/PCU_Tests.cfg @@ -33,6 +33,8 @@ local_udp_port := 23001, remote_ip := "172.18.14.101", remote_udp_port := 23000 + data_weight := 1, + signalling_weight := 1 } }, nsvci := 1234 @@ -45,6 +47,8 @@ local_udp_port := 23002, remote_ip := "172.18.14.101", remote_udp_port := 23000 + data_weight := 1, + signalling_weight := 1 } }, nsvci := 1234 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22411 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I401f53bddd81e8386c01392d9a59c3b5ca8e9802 Gerrit-Change-Number: 22411 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 24 15:11:50 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 24 Jan 2021 15:11:50 +0000 Subject: Change in osmo-cbc[master]: contrib/osmo-cbc.spec: Add sub-package osmo-cbc-utils In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-cbc/+/22412 to look at the new patch set (#2). Change subject: contrib/osmo-cbc.spec: Add sub-package osmo-cbc-utils ...................................................................... contrib/osmo-cbc.spec: Add sub-package osmo-cbc-utils This sub-package contains cbc-apitool.py Change-Id: Id1ba3a26f3b40a42c69c61e844f00f2ddc70941b --- M contrib/osmo-cbc.spec.in 1 file changed, 12 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-cbc refs/changes/12/22412/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22412 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: Id1ba3a26f3b40a42c69c61e844f00f2ddc70941b Gerrit-Change-Number: 22412 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 24 15:12:15 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 24 Jan 2021 15:12:15 +0000 Subject: Change in osmo-cbc[master]: contrib/osmo-cbc.spec: Add sub-package osmo-cbc-utils In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22412 ) Change subject: contrib/osmo-cbc.spec: Add sub-package osmo-cbc-utils ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22412 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: Id1ba3a26f3b40a42c69c61e844f00f2ddc70941b Gerrit-Change-Number: 22412 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 24 Jan 2021 15:12:15 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 24 15:12:27 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 24 Jan 2021 15:12:27 +0000 Subject: Change in osmo-cbc[master]: osmo-cbc.spec: License is AGPLv3-or-later + MIT In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22413 ) Change subject: osmo-cbc.spec: License is AGPLv3-or-later + MIT ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22413 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: Id193997a2883189a2f3451203523a901f9f64fd4 Gerrit-Change-Number: 22413 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 24 Jan 2021 15:12:27 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 24 15:14:52 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 24 Jan 2021 15:14:52 +0000 Subject: Change in osmo-cbc[master]: contrib/osmo-cbc.spec: Add sub-package osmo-cbc-utils In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22412 ) Change subject: contrib/osmo-cbc.spec: Add sub-package osmo-cbc-utils ...................................................................... contrib/osmo-cbc.spec: Add sub-package osmo-cbc-utils This sub-package contains cbc-apitool.py Change-Id: Id1ba3a26f3b40a42c69c61e844f00f2ddc70941b --- M contrib/osmo-cbc.spec.in 1 file changed, 12 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/contrib/osmo-cbc.spec.in b/contrib/osmo-cbc.spec.in index bd90c51..5ed5fc9 100644 --- a/contrib/osmo-cbc.spec.in +++ b/contrib/osmo-cbc.spec.in @@ -47,6 +47,14 @@ %description OsmoCBC: Osmocom's Cell Broadcast Centre for 3GPP mobile networks. +%package utils +Summary: CLI utility to interface osmo-cbc REST interface +License: AGPL-3.0-or-later +Group: Productivity/Telephony/Utilities + +%description utils +CLI utility to interface with the osmo-cbc REST interface (ECBE). + %prep %setup -q @@ -60,6 +68,7 @@ %install %make_install +install -m 755 contrib/cbc-apitool.py %{buildroot}/usr/bin/cbc-apitool.py %if 0%{?suse_version} %preun @@ -89,4 +98,7 @@ %config(noreplace) %{_sysconfdir}/osmocom/osmo-cbc.cfg %{_unitdir}/%{name}.service +%files utils +%{_bindir}/cbc-apitool.py + %changelog -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22412 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: Id1ba3a26f3b40a42c69c61e844f00f2ddc70941b Gerrit-Change-Number: 22412 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 24 15:14:52 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 24 Jan 2021 15:14:52 +0000 Subject: Change in osmo-cbc[master]: osmo-cbc.spec: License is AGPLv3-or-later + MIT In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22413 ) Change subject: osmo-cbc.spec: License is AGPLv3-or-later + MIT ...................................................................... osmo-cbc.spec: License is AGPLv3-or-later + MIT Change-Id: Id193997a2883189a2f3451203523a901f9f64fd4 --- M contrib/osmo-cbc.spec.in 1 file changed, 2 insertions(+), 2 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/contrib/osmo-cbc.spec.in b/contrib/osmo-cbc.spec.in index 5ed5fc9..f22212b 100644 --- a/contrib/osmo-cbc.spec.in +++ b/contrib/osmo-cbc.spec.in @@ -20,7 +20,7 @@ Version: @VERSION@ Release: 0 Summary: OsmoCBC: Osmocom's Cell Broadcast Centre for 3GPP mobile networks -License: AGPL-3.0-or-later AND GPL-2.0-or-later +License: AGPL-3.0-or-later Group: Hardware/Mobile URL: https://osmocom.org/projects/osmo-cbc Source: %{name}-%{version}.tar.xz @@ -49,7 +49,7 @@ %package utils Summary: CLI utility to interface osmo-cbc REST interface -License: AGPL-3.0-or-later +License: MIT Group: Productivity/Telephony/Utilities %description utils -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22413 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: Id193997a2883189a2f3451203523a901f9f64fd4 Gerrit-Change-Number: 22413 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 24 15:16:38 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 24 Jan 2021 15:16:38 +0000 Subject: =?UTF-8?Q?Change_in_osmo-cbc=5Bmaster=5D=3A_Bump_version=3A_0=2E1=2E0=2E25-287a_=E2=86=92_0=2E2=2E0?= References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22414 ) Change subject: Bump version: 0.1.0.25-287a ? 0.2.0 ...................................................................... Bump version: 0.1.0.25-287a ? 0.2.0 Change-Id: I01298571913ea29cb98b58cdc0b1f92352622585 --- M debian/changelog 1 file changed, 30 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-cbc refs/changes/14/22414/1 diff --git a/debian/changelog b/debian/changelog index 4ccda63..5a86382 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,5 +1,33 @@ -osmo-cbc (0.1) UNRELEASED; urgency=medium +osmo-cbc (0.2.0) unstable; urgency=medium + [ Harald Welte ] * Initial release. + * add link to upstream bug related to custom malloc/free + * Add simplistic cbc-apitool.py as example on how to use the REST API + * Add RPM spec file + * Add README.md file + * debian/osmo-cbc.install: Fix typo (extra apostrophe at EOL) + * charset: Fix padding of USSD messages in 7bit GSM alphabet + * spec file: Add missing libulfius dependency + * cbc-apitool.py: Generalize, make parameters configurable + * osmo-cbc.spec: Don't depend on libosmo-mgcp-client + * osmo-cbc.spec: No AUTHORS file; correct name of README.md + * manual: Chapters on configuration + vty introspection + * vty: Allow IPv6 address for peer remote-ip + * Make CBSP local bind IP+port VTY-configurable + * Make ECBE (REST interface) local bind IP + port VTY-configurable + * terminate if CBSP or ECBE ports cannot be bound + * cbc-apitool: Fix parsing if no argument is goven + * Makefile.am: cosmetic changes + * Makefile.am: add *.json to EXTRA_DIST + * manual: Document ECBE; include JSON schema; cross-references + * manual: Add dotty graph on position of CBC in network + * manual: Document cbc-apitool.py + * debian: Package cbc-apitool.py as a sub-package + * contrib/osmo-cbc.spec: Add sub-package osmo-cbc-utils + * osmo-cbc.spec: License is AGPLv3-or-later + MIT - -- Harald Welte Wed, 06 Jan 2021 12:13:12 +0100 + [ Oliver Smith ] + * contrib/jenkins: don't build osmo-gsm-manuals + + -- Harald Welte Sun, 24 Jan 2021 16:15:49 +0100 -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22414 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: I01298571913ea29cb98b58cdc0b1f92352622585 Gerrit-Change-Number: 22414 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 24 15:16:52 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 24 Jan 2021 15:16:52 +0000 Subject: =?UTF-8?Q?Change_in_osmo-cbc=5Bmaster=5D=3A_Bump_version=3A_0=2E1=2E0=2E25-287a_=E2=86=92_0=2E2=2E0?= In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22414 ) Change subject: Bump version: 0.1.0.25-287a ? 0.2.0 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22414 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: I01298571913ea29cb98b58cdc0b1f92352622585 Gerrit-Change-Number: 22414 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Sun, 24 Jan 2021 15:16:52 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 24 15:25:49 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 24 Jan 2021 15:25:49 +0000 Subject: Change in osmo-bts[master]: power_control: clarify the meaning of 'delta' in logging messages References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/22415 ) Change subject: power_control: clarify the meaning of 'delta' in logging messages ...................................................................... power_control: clarify the meaning of 'delta' in logging messages One part of the algorithm simply provides a _suggested_ 'delta' that needs to be applied to the current power level, while the other part ensures that this suggested value does not exceed the limits. Thus it's possible that some logging messages would state that the power reduction value remains unchanged, while the 'detla' != 0. Change-Id: I7496a158b9ac6074a965056d708d8078a98cb1aa Related: SYS#4918 --- M src/common/power_control.c M tests/power/bs_power_loop_test.err 2 files changed, 78 insertions(+), 78 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/15/22415/1 diff --git a/src/common/power_control.c b/src/common/power_control.c index 2948861..be74a41 100644 --- a/src/common/power_control.c +++ b/src/common/power_control.c @@ -318,7 +318,7 @@ if (state->current != new) { LOGPLCHAN(lchan, DLOOP, LOGL_INFO, "Changing Downlink attenuation: " - "%u -> %u dB (maximum %u dB, delta %d dB, " + "%u -> %u dB (maximum %u dB, suggested delta %d dB, " "RxLev current %u (%d dBm), thresholds %u .. %u)\n", state->current, new, state->max, -delta, rxlev, rxlev2dbm(rxlev), @@ -328,7 +328,7 @@ return 1; } else { LOGPLCHAN(lchan, DLOOP, LOGL_INFO, "Keeping Downlink attenuation " - "at %u dB (maximum %u dB, delta %d dB, " + "at %u dB (maximum %u dB, suggested delta %d dB, " "RxLev current %u (%d dBm), thresholds %u .. %u)\n", state->current, state->max, -delta, rxlev, rxlev2dbm(rxlev), diff --git a/tests/power/bs_power_loop_test.err b/tests/power/bs_power_loop_test.err index c3fb816..7fcfb1e 100644 --- a/tests/power/bs_power_loop_test.err +++ b/tests/power/bs_power_loop_test.err @@ -1,115 +1,115 @@ (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 0 -> 2 dB (maximum 20 dB, delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 0 -> 2 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 2 -> 4 dB (maximum 20 dB, delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 2 -> 4 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 4 -> 6 dB (maximum 20 dB, delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 4 -> 6 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 6 -> 8 dB (maximum 20 dB, delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 6 -> 8 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 8 -> 10 dB (maximum 20 dB, delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 8 -> 10 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 10 -> 12 dB (maximum 20 dB, delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 10 -> 12 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 12 -> 14 dB (maximum 20 dB, delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 12 -> 14 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 14 -> 16 dB (maximum 20 dB, delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 14 -> 16 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 16 -> 18 dB (maximum 20 dB, delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 16 -> 18 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 18 -> 20 dB (maximum 20 dB, delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 18 -> 20 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 20 dB (maximum 20 dB, delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 20 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 20 dB (maximum 20 dB, delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 20 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 20 -> 16 dB (maximum 20 dB, delta -4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 20 -> 16 dB (maximum 20 dB, suggested delta -4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 16 -> 12 dB (maximum 20 dB, delta -4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 16 -> 12 dB (maximum 20 dB, suggested delta -4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 12 -> 8 dB (maximum 20 dB, delta -4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 12 -> 8 dB (maximum 20 dB, suggested delta -4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 8 -> 4 dB (maximum 20 dB, delta -4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 8 -> 4 dB (maximum 20 dB, suggested delta -4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 4 -> 0 dB (maximum 20 dB, delta -4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 4 -> 0 dB (maximum 20 dB, suggested delta -4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, delta -4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, suggested delta -4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, delta -4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, suggested delta -4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 0 -> 4 dB (maximum 20 dB, delta 4 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 0 -> 4 dB (maximum 20 dB, suggested delta 4 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 4 -> 8 dB (maximum 20 dB, delta 4 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 4 -> 8 dB (maximum 20 dB, suggested delta 4 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 8 -> 12 dB (maximum 20 dB, delta 4 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 8 -> 12 dB (maximum 20 dB, suggested delta 4 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 12 -> 16 dB (maximum 20 dB, delta 4 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 12 -> 16 dB (maximum 20 dB, suggested delta 4 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 16 -> 20 dB (maximum 20 dB, delta 4 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 16 -> 20 dB (maximum 20 dB, suggested delta 4 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 20 dB (maximum 20 dB, delta 4 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 20 dB (maximum 20 dB, suggested delta 4 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 20 -> 14 dB (maximum 20 dB, delta -6 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 20 -> 14 dB (maximum 20 dB, suggested delta -6 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 14 -> 8 dB (maximum 20 dB, delta -6 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 14 -> 8 dB (maximum 20 dB, suggested delta -6 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 8 -> 2 dB (maximum 20 dB, delta -6 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 8 -> 2 dB (maximum 20 dB, suggested delta -6 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 2 -> 0 dB (maximum 20 dB, delta -6 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 2 -> 0 dB (maximum 20 dB, suggested delta -6 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, delta -6 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, suggested delta -6 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(31), RXQUAL-FULL(0), RXLEV-SUB(31), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 10 -> 11 dB (maximum 20 dB, delta 1 dB, RxLev current 31 (-79 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 10 -> 11 dB (maximum 20 dB, suggested delta 1 dB, RxLev current 31 (-79 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 11 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 11 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(32), RXQUAL-FULL(0), RXLEV-SUB(32), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 11 -> 13 dB (maximum 20 dB, delta 2 dB, RxLev current 32 (-78 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 11 -> 13 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 32 (-78 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 13 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 13 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(33), RXQUAL-FULL(0), RXLEV-SUB(33), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 13 -> 16 dB (maximum 20 dB, delta 3 dB, RxLev current 33 (-77 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 13 -> 16 dB (maximum 20 dB, suggested delta 3 dB, RxLev current 33 (-77 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(29), RXQUAL-FULL(0), RXLEV-SUB(29), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 10 -> 9 dB (maximum 20 dB, delta -1 dB, RxLev current 29 (-81 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 10 -> 9 dB (maximum 20 dB, suggested delta -1 dB, RxLev current 29 (-81 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 9 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 9 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(27), RXQUAL-FULL(0), RXLEV-SUB(27), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 9 -> 6 dB (maximum 20 dB, delta -3 dB, RxLev current 27 (-83 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 9 -> 6 dB (maximum 20 dB, suggested delta -3 dB, RxLev current 27 (-83 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 6 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 6 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(25), RXQUAL-FULL(0), RXLEV-SUB(25), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 6 -> 1 dB (maximum 20 dB, delta -5 dB, RxLev current 25 (-85 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 6 -> 1 dB (maximum 20 dB, suggested delta -5 dB, RxLev current 25 (-85 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 1 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 1 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(00), RXQUAL-FULL(7), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is enabled => using SUB -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(3), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is enabled => using SUB -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(63), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is enabled => using SUB -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(1), RXLEV-SUB(30), RXQUAL-SUB(1), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(2), RXLEV-SUB(30), RXQUAL-SUB(2), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(3), RXLEV-SUB(30), RXQUAL-SUB(3), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(4), RXLEV-SUB(30), RXQUAL-SUB(4), DTx is disabled => using FULL (bts=0,trx=0,ts=0,ss=0) Reducing Downlink attenuation: 16 -> 12 dB due to RxQual 4 worse than L_RXQUAL_XX_P 3 (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(34), RXQUAL-FULL(5), RXLEV-SUB(34), RXQUAL-SUB(5), DTx is disabled => using FULL @@ -120,46 +120,46 @@ (bts=0,trx=0,ts=0,ss=0) Reducing Downlink attenuation: 4 -> 0 dB due to RxQual 7 worse than L_RXQUAL_XX_P 3 (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(46), RXQUAL-FULL(7), RXLEV-SUB(46), RXQUAL-SUB(7), DTx is disabled => using FULL (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(46), RXQUAL-FULL(0), RXLEV-SUB(46), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 0 -> 2 dB (maximum 20 dB, delta 2 dB, RxLev current 46 (-64 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 0 -> 2 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 46 (-64 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(44), RXQUAL-FULL(0), RXLEV-SUB(44), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 2 -> 4 dB (maximum 20 dB, delta 2 dB, RxLev current 44 (-66 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 2 -> 4 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 44 (-66 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(42), RXQUAL-FULL(0), RXLEV-SUB(42), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 4 -> 6 dB (maximum 20 dB, delta 2 dB, RxLev current 42 (-68 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 4 -> 6 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 42 (-68 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(7), RXLEV-SUB(30), RXQUAL-SUB(7), DTx is disabled => using FULL (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(7), RXLEV-SUB(30), RXQUAL-SUB(7), DTx is disabled => using FULL (bts=0,trx=0,ts=0,ss=0) The measurement results are not valid (bts=0,trx=0,ts=0,ss=0) The measurement results are not valid (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(31), RXQUAL-FULL(0), RXLEV-SUB(31), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 12 -> 13 dB (maximum 16 dB, delta 1 dB, RxLev current 31 (-79 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 12 -> 13 dB (maximum 16 dB, suggested delta 1 dB, RxLev current 31 (-79 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(28), RXQUAL-FULL(0), RXLEV-SUB(28), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 13 -> 11 dB (maximum 16 dB, delta -2 dB, RxLev current 28 (-82 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 13 -> 11 dB (maximum 16 dB, suggested delta -2 dB, RxLev current 28 (-82 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(33), RXQUAL-FULL(0), RXLEV-SUB(33), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 11 -> 13 dB (maximum 16 dB, delta 2 dB, RxLev current 33 (-77 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 11 -> 13 dB (maximum 16 dB, suggested delta 2 dB, RxLev current 33 (-77 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(28), RXQUAL-FULL(0), RXLEV-SUB(28), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 13 -> 11 dB (maximum 16 dB, delta -2 dB, RxLev current 28 (-82 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 13 -> 11 dB (maximum 16 dB, suggested delta -2 dB, RxLev current 28 (-82 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(31), RXQUAL-FULL(0), RXLEV-SUB(31), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 11 dB (maximum 16 dB, delta 0 dB, RxLev current 31 (-79 dBm), thresholds 27 .. 33) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 11 dB (maximum 16 dB, suggested delta 0 dB, RxLev current 31 (-79 dBm), thresholds 27 .. 33) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(28), RXQUAL-FULL(0), RXLEV-SUB(28), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 11 dB (maximum 16 dB, delta 0 dB, RxLev current 28 (-82 dBm), thresholds 27 .. 33) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 11 dB (maximum 16 dB, suggested delta 0 dB, RxLev current 28 (-82 dBm), thresholds 27 .. 33) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(33), RXQUAL-FULL(0), RXLEV-SUB(33), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 11 dB (maximum 16 dB, delta 0 dB, RxLev current 33 (-77 dBm), thresholds 27 .. 33) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 11 dB (maximum 16 dB, suggested delta 0 dB, RxLev current 33 (-77 dBm), thresholds 27 .. 33) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(28), RXQUAL-FULL(0), RXLEV-SUB(28), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 11 dB (maximum 16 dB, delta 0 dB, RxLev current 28 (-82 dBm), thresholds 27 .. 33) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 11 dB (maximum 16 dB, suggested delta 0 dB, RxLev current 28 (-82 dBm), thresholds 27 .. 33) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 30 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 30 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 30 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 30 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(26), RXQUAL-FULL(0), RXLEV-SUB(26), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 16 -> 14 dB (maximum 30 dB, delta -2 dB, RxLev current 26 (-84 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 16 -> 14 dB (maximum 30 dB, suggested delta -2 dB, RxLev current 26 (-84 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(26), RXQUAL-FULL(0), RXLEV-SUB(26), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 14 -> 11 dB (maximum 30 dB, delta -3 dB, RxLev current 26 (-84 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 14 -> 11 dB (maximum 30 dB, suggested delta -3 dB, RxLev current 26 (-84 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(35), RXQUAL-FULL(0), RXLEV-SUB(35), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 11 -> 12 dB (maximum 30 dB, delta 1 dB, RxLev current 35 (-75 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 11 -> 12 dB (maximum 30 dB, suggested delta 1 dB, RxLev current 35 (-75 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(35), RXQUAL-FULL(0), RXLEV-SUB(35), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 12 -> 14 dB (maximum 30 dB, delta 2 dB, RxLev current 35 (-75 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 12 -> 14 dB (maximum 30 dB, suggested delta 2 dB, RxLev current 35 (-75 dBm), thresholds 30 .. 30) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22415 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I7496a158b9ac6074a965056d708d8078a98cb1aa Gerrit-Change-Number: 22415 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 24 15:59:13 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 24 Jan 2021 15:59:13 +0000 Subject: =?UTF-8?Q?Change_in_osmo-cbc=5Bmaster=5D=3A_Bump_version=3A_0=2E1=2E0=2E25-287a_=E2=86=92_0=2E2=2E0?= In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22414 ) Change subject: Bump version: 0.1.0.25-287a ? 0.2.0 ...................................................................... Bump version: 0.1.0.25-287a ? 0.2.0 Change-Id: I01298571913ea29cb98b58cdc0b1f92352622585 --- M debian/changelog 1 file changed, 30 insertions(+), 2 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/debian/changelog b/debian/changelog index 4ccda63..5a86382 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,5 +1,33 @@ -osmo-cbc (0.1) UNRELEASED; urgency=medium +osmo-cbc (0.2.0) unstable; urgency=medium + [ Harald Welte ] * Initial release. + * add link to upstream bug related to custom malloc/free + * Add simplistic cbc-apitool.py as example on how to use the REST API + * Add RPM spec file + * Add README.md file + * debian/osmo-cbc.install: Fix typo (extra apostrophe at EOL) + * charset: Fix padding of USSD messages in 7bit GSM alphabet + * spec file: Add missing libulfius dependency + * cbc-apitool.py: Generalize, make parameters configurable + * osmo-cbc.spec: Don't depend on libosmo-mgcp-client + * osmo-cbc.spec: No AUTHORS file; correct name of README.md + * manual: Chapters on configuration + vty introspection + * vty: Allow IPv6 address for peer remote-ip + * Make CBSP local bind IP+port VTY-configurable + * Make ECBE (REST interface) local bind IP + port VTY-configurable + * terminate if CBSP or ECBE ports cannot be bound + * cbc-apitool: Fix parsing if no argument is goven + * Makefile.am: cosmetic changes + * Makefile.am: add *.json to EXTRA_DIST + * manual: Document ECBE; include JSON schema; cross-references + * manual: Add dotty graph on position of CBC in network + * manual: Document cbc-apitool.py + * debian: Package cbc-apitool.py as a sub-package + * contrib/osmo-cbc.spec: Add sub-package osmo-cbc-utils + * osmo-cbc.spec: License is AGPLv3-or-later + MIT - -- Harald Welte Wed, 06 Jan 2021 12:13:12 +0100 + [ Oliver Smith ] + * contrib/jenkins: don't build osmo-gsm-manuals + + -- Harald Welte Sun, 24 Jan 2021 16:15:49 +0100 -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22414 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: I01298571913ea29cb98b58cdc0b1f92352622585 Gerrit-Change-Number: 22414 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 24 19:16:46 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 24 Jan 2021 19:16:46 +0000 Subject: Change in osmo-bts[master]: power_control: clarify the meaning of 'delta' in logging messages In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/22415 ) Change subject: power_control: clarify the meaning of 'delta' in logging messages ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22415 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I7496a158b9ac6074a965056d708d8078a98cb1aa Gerrit-Change-Number: 22415 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 24 Jan 2021 19:16:46 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 24 19:16:48 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 24 Jan 2021 19:16:48 +0000 Subject: Change in osmo-bts[master]: power_control: clarify the meaning of 'delta' in logging messages In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/22415 ) Change subject: power_control: clarify the meaning of 'delta' in logging messages ...................................................................... power_control: clarify the meaning of 'delta' in logging messages One part of the algorithm simply provides a _suggested_ 'delta' that needs to be applied to the current power level, while the other part ensures that this suggested value does not exceed the limits. Thus it's possible that some logging messages would state that the power reduction value remains unchanged, while the 'detla' != 0. Change-Id: I7496a158b9ac6074a965056d708d8078a98cb1aa Related: SYS#4918 --- M src/common/power_control.c M tests/power/bs_power_loop_test.err 2 files changed, 78 insertions(+), 78 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/common/power_control.c b/src/common/power_control.c index 2948861..be74a41 100644 --- a/src/common/power_control.c +++ b/src/common/power_control.c @@ -318,7 +318,7 @@ if (state->current != new) { LOGPLCHAN(lchan, DLOOP, LOGL_INFO, "Changing Downlink attenuation: " - "%u -> %u dB (maximum %u dB, delta %d dB, " + "%u -> %u dB (maximum %u dB, suggested delta %d dB, " "RxLev current %u (%d dBm), thresholds %u .. %u)\n", state->current, new, state->max, -delta, rxlev, rxlev2dbm(rxlev), @@ -328,7 +328,7 @@ return 1; } else { LOGPLCHAN(lchan, DLOOP, LOGL_INFO, "Keeping Downlink attenuation " - "at %u dB (maximum %u dB, delta %d dB, " + "at %u dB (maximum %u dB, suggested delta %d dB, " "RxLev current %u (%d dBm), thresholds %u .. %u)\n", state->current, state->max, -delta, rxlev, rxlev2dbm(rxlev), diff --git a/tests/power/bs_power_loop_test.err b/tests/power/bs_power_loop_test.err index c3fb816..7fcfb1e 100644 --- a/tests/power/bs_power_loop_test.err +++ b/tests/power/bs_power_loop_test.err @@ -1,115 +1,115 @@ (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 0 -> 2 dB (maximum 20 dB, delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 0 -> 2 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 2 -> 4 dB (maximum 20 dB, delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 2 -> 4 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 4 -> 6 dB (maximum 20 dB, delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 4 -> 6 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 6 -> 8 dB (maximum 20 dB, delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 6 -> 8 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 8 -> 10 dB (maximum 20 dB, delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 8 -> 10 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 10 -> 12 dB (maximum 20 dB, delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 10 -> 12 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 12 -> 14 dB (maximum 20 dB, delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 12 -> 14 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 14 -> 16 dB (maximum 20 dB, delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 14 -> 16 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 16 -> 18 dB (maximum 20 dB, delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 16 -> 18 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 18 -> 20 dB (maximum 20 dB, delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 18 -> 20 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 20 dB (maximum 20 dB, delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 20 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 20 dB (maximum 20 dB, delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 20 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 20 -> 16 dB (maximum 20 dB, delta -4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 20 -> 16 dB (maximum 20 dB, suggested delta -4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 16 -> 12 dB (maximum 20 dB, delta -4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 16 -> 12 dB (maximum 20 dB, suggested delta -4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 12 -> 8 dB (maximum 20 dB, delta -4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 12 -> 8 dB (maximum 20 dB, suggested delta -4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 8 -> 4 dB (maximum 20 dB, delta -4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 8 -> 4 dB (maximum 20 dB, suggested delta -4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 4 -> 0 dB (maximum 20 dB, delta -4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 4 -> 0 dB (maximum 20 dB, suggested delta -4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, delta -4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, suggested delta -4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, delta -4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, suggested delta -4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 0 -> 4 dB (maximum 20 dB, delta 4 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 0 -> 4 dB (maximum 20 dB, suggested delta 4 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 4 -> 8 dB (maximum 20 dB, delta 4 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 4 -> 8 dB (maximum 20 dB, suggested delta 4 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 8 -> 12 dB (maximum 20 dB, delta 4 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 8 -> 12 dB (maximum 20 dB, suggested delta 4 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 12 -> 16 dB (maximum 20 dB, delta 4 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 12 -> 16 dB (maximum 20 dB, suggested delta 4 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 16 -> 20 dB (maximum 20 dB, delta 4 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 16 -> 20 dB (maximum 20 dB, suggested delta 4 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 20 dB (maximum 20 dB, delta 4 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 20 dB (maximum 20 dB, suggested delta 4 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 20 -> 14 dB (maximum 20 dB, delta -6 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 20 -> 14 dB (maximum 20 dB, suggested delta -6 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 14 -> 8 dB (maximum 20 dB, delta -6 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 14 -> 8 dB (maximum 20 dB, suggested delta -6 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 8 -> 2 dB (maximum 20 dB, delta -6 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 8 -> 2 dB (maximum 20 dB, suggested delta -6 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 2 -> 0 dB (maximum 20 dB, delta -6 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 2 -> 0 dB (maximum 20 dB, suggested delta -6 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, delta -6 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, suggested delta -6 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(31), RXQUAL-FULL(0), RXLEV-SUB(31), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 10 -> 11 dB (maximum 20 dB, delta 1 dB, RxLev current 31 (-79 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 10 -> 11 dB (maximum 20 dB, suggested delta 1 dB, RxLev current 31 (-79 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 11 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 11 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(32), RXQUAL-FULL(0), RXLEV-SUB(32), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 11 -> 13 dB (maximum 20 dB, delta 2 dB, RxLev current 32 (-78 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 11 -> 13 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 32 (-78 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 13 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 13 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(33), RXQUAL-FULL(0), RXLEV-SUB(33), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 13 -> 16 dB (maximum 20 dB, delta 3 dB, RxLev current 33 (-77 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 13 -> 16 dB (maximum 20 dB, suggested delta 3 dB, RxLev current 33 (-77 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(29), RXQUAL-FULL(0), RXLEV-SUB(29), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 10 -> 9 dB (maximum 20 dB, delta -1 dB, RxLev current 29 (-81 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 10 -> 9 dB (maximum 20 dB, suggested delta -1 dB, RxLev current 29 (-81 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 9 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 9 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(27), RXQUAL-FULL(0), RXLEV-SUB(27), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 9 -> 6 dB (maximum 20 dB, delta -3 dB, RxLev current 27 (-83 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 9 -> 6 dB (maximum 20 dB, suggested delta -3 dB, RxLev current 27 (-83 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 6 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 6 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(25), RXQUAL-FULL(0), RXLEV-SUB(25), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 6 -> 1 dB (maximum 20 dB, delta -5 dB, RxLev current 25 (-85 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 6 -> 1 dB (maximum 20 dB, suggested delta -5 dB, RxLev current 25 (-85 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 1 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 1 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(00), RXQUAL-FULL(7), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is enabled => using SUB -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(3), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is enabled => using SUB -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(63), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is enabled => using SUB -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(1), RXLEV-SUB(30), RXQUAL-SUB(1), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(2), RXLEV-SUB(30), RXQUAL-SUB(2), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(3), RXLEV-SUB(30), RXQUAL-SUB(3), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(4), RXLEV-SUB(30), RXQUAL-SUB(4), DTx is disabled => using FULL (bts=0,trx=0,ts=0,ss=0) Reducing Downlink attenuation: 16 -> 12 dB due to RxQual 4 worse than L_RXQUAL_XX_P 3 (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(34), RXQUAL-FULL(5), RXLEV-SUB(34), RXQUAL-SUB(5), DTx is disabled => using FULL @@ -120,46 +120,46 @@ (bts=0,trx=0,ts=0,ss=0) Reducing Downlink attenuation: 4 -> 0 dB due to RxQual 7 worse than L_RXQUAL_XX_P 3 (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(46), RXQUAL-FULL(7), RXLEV-SUB(46), RXQUAL-SUB(7), DTx is disabled => using FULL (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(46), RXQUAL-FULL(0), RXLEV-SUB(46), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 0 -> 2 dB (maximum 20 dB, delta 2 dB, RxLev current 46 (-64 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 0 -> 2 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 46 (-64 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(44), RXQUAL-FULL(0), RXLEV-SUB(44), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 2 -> 4 dB (maximum 20 dB, delta 2 dB, RxLev current 44 (-66 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 2 -> 4 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 44 (-66 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(42), RXQUAL-FULL(0), RXLEV-SUB(42), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 4 -> 6 dB (maximum 20 dB, delta 2 dB, RxLev current 42 (-68 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 4 -> 6 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 42 (-68 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(7), RXLEV-SUB(30), RXQUAL-SUB(7), DTx is disabled => using FULL (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(7), RXLEV-SUB(30), RXQUAL-SUB(7), DTx is disabled => using FULL (bts=0,trx=0,ts=0,ss=0) The measurement results are not valid (bts=0,trx=0,ts=0,ss=0) The measurement results are not valid (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(31), RXQUAL-FULL(0), RXLEV-SUB(31), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 12 -> 13 dB (maximum 16 dB, delta 1 dB, RxLev current 31 (-79 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 12 -> 13 dB (maximum 16 dB, suggested delta 1 dB, RxLev current 31 (-79 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(28), RXQUAL-FULL(0), RXLEV-SUB(28), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 13 -> 11 dB (maximum 16 dB, delta -2 dB, RxLev current 28 (-82 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 13 -> 11 dB (maximum 16 dB, suggested delta -2 dB, RxLev current 28 (-82 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(33), RXQUAL-FULL(0), RXLEV-SUB(33), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 11 -> 13 dB (maximum 16 dB, delta 2 dB, RxLev current 33 (-77 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 11 -> 13 dB (maximum 16 dB, suggested delta 2 dB, RxLev current 33 (-77 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(28), RXQUAL-FULL(0), RXLEV-SUB(28), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 13 -> 11 dB (maximum 16 dB, delta -2 dB, RxLev current 28 (-82 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 13 -> 11 dB (maximum 16 dB, suggested delta -2 dB, RxLev current 28 (-82 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(31), RXQUAL-FULL(0), RXLEV-SUB(31), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 11 dB (maximum 16 dB, delta 0 dB, RxLev current 31 (-79 dBm), thresholds 27 .. 33) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 11 dB (maximum 16 dB, suggested delta 0 dB, RxLev current 31 (-79 dBm), thresholds 27 .. 33) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(28), RXQUAL-FULL(0), RXLEV-SUB(28), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 11 dB (maximum 16 dB, delta 0 dB, RxLev current 28 (-82 dBm), thresholds 27 .. 33) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 11 dB (maximum 16 dB, suggested delta 0 dB, RxLev current 28 (-82 dBm), thresholds 27 .. 33) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(33), RXQUAL-FULL(0), RXLEV-SUB(33), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 11 dB (maximum 16 dB, delta 0 dB, RxLev current 33 (-77 dBm), thresholds 27 .. 33) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 11 dB (maximum 16 dB, suggested delta 0 dB, RxLev current 33 (-77 dBm), thresholds 27 .. 33) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(28), RXQUAL-FULL(0), RXLEV-SUB(28), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 11 dB (maximum 16 dB, delta 0 dB, RxLev current 28 (-82 dBm), thresholds 27 .. 33) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 11 dB (maximum 16 dB, suggested delta 0 dB, RxLev current 28 (-82 dBm), thresholds 27 .. 33) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 30 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 30 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 30 dB, delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 30 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(26), RXQUAL-FULL(0), RXLEV-SUB(26), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 16 -> 14 dB (maximum 30 dB, delta -2 dB, RxLev current 26 (-84 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 16 -> 14 dB (maximum 30 dB, suggested delta -2 dB, RxLev current 26 (-84 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(26), RXQUAL-FULL(0), RXLEV-SUB(26), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 14 -> 11 dB (maximum 30 dB, delta -3 dB, RxLev current 26 (-84 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 14 -> 11 dB (maximum 30 dB, suggested delta -3 dB, RxLev current 26 (-84 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(35), RXQUAL-FULL(0), RXLEV-SUB(35), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 11 -> 12 dB (maximum 30 dB, delta 1 dB, RxLev current 35 (-75 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 11 -> 12 dB (maximum 30 dB, suggested delta 1 dB, RxLev current 35 (-75 dBm), thresholds 30 .. 30) (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(35), RXQUAL-FULL(0), RXLEV-SUB(35), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 12 -> 14 dB (maximum 30 dB, delta 2 dB, RxLev current 35 (-75 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 12 -> 14 dB (maximum 30 dB, suggested delta 2 dB, RxLev current 35 (-75 dBm), thresholds 30 .. 30) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22415 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I7496a158b9ac6074a965056d708d8078a98cb1aa Gerrit-Change-Number: 22415 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 24 22:29:18 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 24 Jan 2021 22:29:18 +0000 Subject: Change in osmo-cbc[master]: VTY: don't save dynamically-allocated "unknown" peers References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22416 ) Change subject: VTY: don't save dynamically-allocated "unknown" peers ...................................................................... VTY: don't save dynamically-allocated "unknown" peers The VTY code should write/save only those peers that were configured using the VTY. Closes: OS#4929 Change-Id: If02694be4e4cb9cb27e7d9d07e533bfed4a999a9 --- M src/cbc_data.h M src/cbc_vty.c M src/cbsp_server.c 3 files changed, 7 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-cbc refs/changes/16/22416/1 diff --git a/src/cbc_data.h b/src/cbc_data.h index e88ae45..d6fc3d2 100644 --- a/src/cbc_data.h +++ b/src/cbc_data.h @@ -26,6 +26,7 @@ char *remote_host; /* remote IP address in string format */ int remote_port; /* remote port number or -1 for random */ + bool unknown_dynamic_peer; /* dynamic/unknown peer; not saved in VTY */ enum cbc_peer_protocol proto; union { diff --git a/src/cbc_vty.c b/src/cbc_vty.c index 98e2703..9a36aa4 100644 --- a/src/cbc_vty.c +++ b/src/cbc_vty.c @@ -494,8 +494,12 @@ static int config_write_peer(struct vty *vty) { struct cbc_peer *peer; - llist_for_each_entry(peer, &g_cbc->peers, list) + llist_for_each_entry(peer, &g_cbc->peers, list) { + /* only save those configured via the VTY, not the "unknown" peers */ + if (peer->unknown_dynamic_peer) + continue; write_one_peer(vty, peer); + } return CMD_SUCCESS; } diff --git a/src/cbsp_server.c b/src/cbsp_server.c index 8a62790..3aa6332 100644 --- a/src/cbsp_server.c +++ b/src/cbsp_server.c @@ -150,6 +150,7 @@ remote_ip, remote_port); client->peer = cbc_peer_create(NULL, CBC_PEER_PROTO_CBSP); OSMO_ASSERT(client->peer); + client->peer->unknown_dynamic_peer = true; } else { LOGPCC(client, LOGL_NOTICE, "Rejecting unknown CBSP peer %s:%d (not permitted)\n", remote_ip, remote_port); -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22416 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: If02694be4e4cb9cb27e7d9d07e533bfed4a999a9 Gerrit-Change-Number: 22416 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Mon Jan 25 01:35:26 2021 From: admin at opensuse.org (OBS Notification) Date: Mon, 25 Jan 2021 01:35:26 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <600e20639fbd6_5172adeb84245fc27067d7@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/xUbuntu_20.04/x86_64 Package network:osmocom:nightly/simtrace2 failed to build in xUbuntu_20.04/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 113s] [COMPILING libboard/qmod/source/wwan_perst.c] [ 113s] [COMPILING libboard/qmod/source/card_pres.c] [ 113s] [COMPILING libboard/qmod/source/wwan_led.c] [ 113s] [COMPILING libboard/qmod/source/i2c.c] [ 113s] [COMPILING libboard/qmod/source/board_qmod.c] [ 113s] [COMPILING apps/dfu/main.c] [ 113s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 113s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 114s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 114s] Memory region Used Size Region Size %age Used [ 114s] rom: 16588 B 16 KB 101.25% [ 114s] ram: 11672 B 48 KB 23.75/usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 114s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 204 bytes [ 114s] collect2: error: ld returned 1 exit status [ 114s] % [ 114s] make[2]: *** [Makefile:234: flash] Error 1 [ 114s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 114s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 114s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 114s] dh_auto_build: error: make -j1 returned exit code 2 [ 114s] make: *** [debian/rules:16: build] Error 25 [ 114s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 114s] ### VM INTERACTION START ### [ 117s] [ 108.613692] sysrq: Power Off [ 117s] [ 108.617197] reboot: Power down [ 117s] ### VM INTERACTION END ### [ 117s] [ 117s] sheep88 failed "build simtrace2_0.7.0.69.aadd.dsc" at Mon Jan 25 01:35:16 UTC 2021. [ 117s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jan 25 01:35:43 2021 From: admin at opensuse.org (OBS Notification) Date: Mon, 25 Jan 2021 01:35:43 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.10/x86_64 In-Reply-To: References: Message-ID: <600e20828b43b_5172adeb84245fc270685e@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/xUbuntu_20.10/x86_64 Package network:osmocom:nightly/simtrace2 failed to build in xUbuntu_20.10/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 127s] [COMPILING apps/dfu/main.c] [ 128s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 128s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 128s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 128s] Memory region Used Size Region Size %age Used [ 128s] rom: 16580 B 16 KB 101.20% [ 128s] ram: 11672 B 48 KB 23.75/usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 128s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 128s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 128s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 128s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 128s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 128s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 196 bytes [ 128s] collect2: error: ld returned 1 exit status [ 128s] % [ 128s] make[2]: *** [Makefile:234: flash] Error 1 [ 128s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 128s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 128s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 128s] dh_auto_build: error: make -j1 returned exit code 2 [ 128s] make: *** [debian/rules:16: build] Error 25 [ 128s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 128s] ### VM INTERACTION START ### [ 131s] [ 119.781673] sysrq: Power Off [ 131s] [ 119.785169] reboot: Power down [ 131s] ### VM INTERACTION END ### [ 131s] [ 131s] old-atreju5 failed "build simtrace2_0.7.0.69.aadd.dsc" at Mon Jan 25 01:35:32 UTC 2021. [ 131s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Mon Jan 25 08:54:49 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 25 Jan 2021 08:54:49 +0000 Subject: Change in docker-playground[master]: ttcn3-pcu-test-sns: Fix syntax errors in config file of previous commit References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/22417 ) Change subject: ttcn3-pcu-test-sns: Fix syntax errors in config file of previous commit ...................................................................... ttcn3-pcu-test-sns: Fix syntax errors in config file of previous commit Change-Id: Ia291579d792019779ca40bc3cc1955dede6aa2e0 Fixes: I401f53bddd81e8386c01392d9a59c3b5ca8e9802 --- M ttcn3-pcu-test/sns/PCU_Tests.cfg 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/17/22417/1 diff --git a/ttcn3-pcu-test/sns/PCU_Tests.cfg b/ttcn3-pcu-test/sns/PCU_Tests.cfg index 604f50c..3d9fdf6 100644 --- a/ttcn3-pcu-test/sns/PCU_Tests.cfg +++ b/ttcn3-pcu-test/sns/PCU_Tests.cfg @@ -32,7 +32,7 @@ local_ip := "172.18.14.10", local_udp_port := 23001, remote_ip := "172.18.14.101", - remote_udp_port := 23000 + remote_udp_port := 23000, data_weight := 1, signalling_weight := 1 } @@ -46,7 +46,7 @@ local_ip := "172.18.14.10", local_udp_port := 23002, remote_ip := "172.18.14.101", - remote_udp_port := 23000 + remote_udp_port := 23000, data_weight := 1, signalling_weight := 1 } -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22417 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Ia291579d792019779ca40bc3cc1955dede6aa2e0 Gerrit-Change-Number: 22417 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 08:55:19 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 25 Jan 2021 08:55:19 +0000 Subject: Change in docker-playground[master]: ttcn3-pcu-test-sns: Fix syntax errors in config file of previous commit In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22417 ) Change subject: ttcn3-pcu-test-sns: Fix syntax errors in config file of previous commit ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22417 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Ia291579d792019779ca40bc3cc1955dede6aa2e0 Gerrit-Change-Number: 22417 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 25 Jan 2021 08:55:19 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 08:55:27 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 25 Jan 2021 08:55:27 +0000 Subject: Change in docker-playground[master]: ttcn3-pcu-test-sns: Fix syntax errors in config file of previous commit In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22417 ) Change subject: ttcn3-pcu-test-sns: Fix syntax errors in config file of previous commit ...................................................................... ttcn3-pcu-test-sns: Fix syntax errors in config file of previous commit Change-Id: Ia291579d792019779ca40bc3cc1955dede6aa2e0 Fixes: I401f53bddd81e8386c01392d9a59c3b5ca8e9802 --- M ttcn3-pcu-test/sns/PCU_Tests.cfg 1 file changed, 2 insertions(+), 2 deletions(-) Approvals: laforge: Looks good to me, approved; Verified diff --git a/ttcn3-pcu-test/sns/PCU_Tests.cfg b/ttcn3-pcu-test/sns/PCU_Tests.cfg index 604f50c..3d9fdf6 100644 --- a/ttcn3-pcu-test/sns/PCU_Tests.cfg +++ b/ttcn3-pcu-test/sns/PCU_Tests.cfg @@ -32,7 +32,7 @@ local_ip := "172.18.14.10", local_udp_port := 23001, remote_ip := "172.18.14.101", - remote_udp_port := 23000 + remote_udp_port := 23000, data_weight := 1, signalling_weight := 1 } @@ -46,7 +46,7 @@ local_ip := "172.18.14.10", local_udp_port := 23002, remote_ip := "172.18.14.101", - remote_udp_port := 23000 + remote_udp_port := 23000, data_weight := 1, signalling_weight := 1 } -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22417 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Ia291579d792019779ca40bc3cc1955dede6aa2e0 Gerrit-Change-Number: 22417 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 09:18:24 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 25 Jan 2021 09:18:24 +0000 Subject: Change in libosmocore[master]: gprs_ns2: rework logging of Rx and Tx NS PDU In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22294 ) Change subject: gprs_ns2: rework logging of Rx and Tx NS PDU ...................................................................... Patch Set 11: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/22294/11/src/gb/gprs_ns2_internal.h File src/gb/gprs_ns2_internal.h: https://gerrit.osmocom.org/c/libosmocore/+/22294/11/src/gb/gprs_ns2_internal.h at 33 PS11, Line 33: #define LOG_NS_TX_MESSAGE(nsvc, pdu_type) LOG_NS_MESSAGE(nsvc, "Tx", pdu_type, LOGL_INFO, "\n") > we could also introduce separate logging sub-systems for data and user plane? Or have log filters f [?] Separate subsystems would be good, yeah. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22294 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I34b8fde2955ecc010d1dcd9512e1bba9211e2c0d Gerrit-Change-Number: 22294 Gerrit-PatchSet: 11 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 25 Jan 2021 09:18:24 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: laforge Comment-In-Reply-To: daniel Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 09:22:46 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 25 Jan 2021 09:22:46 +0000 Subject: Change in docker-playground[master]: debian-repo-install-test: remove Release.key In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22370 ) Change subject: debian-repo-install-test: remove Release.key ...................................................................... Patch Set 1: Verified+1 Code-Review+2 1+1=2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22370 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Ia2ba9de264531502e2b0b9f42d7a4ecd34375851 Gerrit-Change-Number: 22370 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 25 Jan 2021 09:22:46 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 09:23:12 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 25 Jan 2021 09:23:12 +0000 Subject: Change in docker-playground[master]: rename {debian => debian9}-repo-install-test In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22371 ) Change subject: rename {debian => debian9}-repo-install-test ...................................................................... Patch Set 1: Verified+1 Code-Review+2 1+1=2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22371 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I2ea18997019ebaa013c258996f5131386bcd6426 Gerrit-Change-Number: 22371 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 25 Jan 2021 09:23:12 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 09:23:58 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 25 Jan 2021 09:23:58 +0000 Subject: Change in docker-playground[master]: debian10-repo-install-test: new container In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22372 ) Change subject: debian10-repo-install-test: new container ...................................................................... Patch Set 1: Verified+1 Code-Review+2 1+1=2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22372 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I7addb30aa3f8564dcbdc3f6cf2e2e0cfdf4dd02d Gerrit-Change-Number: 22372 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 25 Jan 2021 09:23:58 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 09:24:03 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 25 Jan 2021 09:24:03 +0000 Subject: Change in docker-playground[master]: debian-repo-install-test: remove Release.key In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22370 ) Change subject: debian-repo-install-test: remove Release.key ...................................................................... debian-repo-install-test: remove Release.key Make debian-repo-install-test simpler before copying it for debian10. Don't install Release.key, as it is getting downloaded on demand in the related repo-install-test script since osmo-ci I91e7a208d8f5cb50f8baa2fde0eb979aae91da8f. Related: OS#4969 Change-Id: Ia2ba9de264531502e2b0b9f42d7a4ecd34375851 --- M debian-repo-install-test/Dockerfile D debian-repo-install-test/Release.key 2 files changed, 1 insertion(+), 25 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve pespin: Looks good to me, but someone else must approve osmith: Looks good to me, approved; Verified diff --git a/debian-repo-install-test/Dockerfile b/debian-repo-install-test/Dockerfile index e12da75..c8c87df 100644 --- a/debian-repo-install-test/Dockerfile +++ b/debian-repo-install-test/Dockerfile @@ -3,12 +3,8 @@ ARG UPSTREAM_DISTRO=debian:stretch FROM ${REGISTRY}/${UPSTREAM_DISTRO} -COPY Release.key /tmp/Release.key - RUN apt-get update && \ apt-get install -y --no-install-recommends \ aptitude \ gnupg \ - systemd && \ - apt-key add /tmp/Release.key && \ - rm /tmp/Release.key + systemd diff --git a/debian-repo-install-test/Release.key b/debian-repo-install-test/Release.key deleted file mode 100644 index a737316..0000000 --- a/debian-repo-install-test/Release.key +++ /dev/null @@ -1,20 +0,0 @@ ------BEGIN PGP PUBLIC KEY BLOCK----- -Version: GnuPG v1.4.5 (GNU/Linux) - -mQENBFJBt/wBCADAht3d/ilNuyzaXYw/QwTRvmjyoDvfXw+H/3Fvk1zlDZoiKPPc -a1wCVBINUZl7vYM2OXqbJwYa++JP2Q48xKSvC6thbRc/YLievkbcvTemf7IaREfl -CTjoYpoqXHa9kHMw1aALDm8CNU88jZmnV7v9L6hKkbYDxie+jpoj7D6B9JlxgNJ4 -5dQyRNsFGVcIl4Vplt1HyGc5Q5nQI/VgS2rlF/IOXmhRQBc4LEDdU8R2IKnkU4ee -S7TWanAigGAQhxGuCkS39/CWzc1DhLhjlNhBl/+RTPejkqJtAy00ZLps3+RqUN1Y -CU/Fsr7aRlYVGqQ/BlptwV0XQ2VVYJX2oEBBABEBAAG0MG5ldHdvcmsgT0JTIFBy -b2plY3QgPG5ldHdvcmtAYnVpbGQub3BlbnN1c2Uub3JnPokBPAQTAQIAJgUCXm/4 -pgIbAwUJEEzwqgYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJEGLrGgkXKA3f/1AH -/A7WVSpfM4wV/DMqZPTsSjChB4JyDotxpV7qHZzBC5aaP2dINZyi9PayIwZWbvCY -VKvt+Fw8oCGC9F9mdh10Xe+ElHeVNSihzABPuu1RkRkb1nvkymScy0yxydodYOBi -K4WQ+BhpijXWmYvOekIwbS5Hi9BHpfgK4TinK0xsvh1bVLeQJ8YjrnNFIAR2CnBa -X7Y72Up/kKL08DdQzuS+mKrJtAQlGMtIsukWC2ajYQMkNwm8Gvhpn8za113dCkBW -XAFnlQqQobKwC7b19QgEtJI/YpGSrRc6WaZxPyAjscbWQlFEAB900sVj4BWT55ig -7O2uSdsCVhTuU7T0ztwsgvmIRgQTEQIABgUCUkG3/AAKCRA7MBG3a51lIzhdAJ9v -d6XPffMZRcCGgDEY5OaTn/MsCQCgrXbeZpFJgnirSrc8rRonvzYFiF4= -=/Tek ------END PGP PUBLIC KEY BLOCK----- -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22370 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: Ia2ba9de264531502e2b0b9f42d7a4ecd34375851 Gerrit-Change-Number: 22370 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 09:24:03 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 25 Jan 2021 09:24:03 +0000 Subject: Change in docker-playground[master]: rename {debian => debian9}-repo-install-test In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22371 ) Change subject: rename {debian => debian9}-repo-install-test ...................................................................... rename {debian => debian9}-repo-install-test Prepare to add debian10-repo-install-test. Make it consistent with centos8-repo-install-test. Related: OS#4969 Change-Id: I2ea18997019ebaa013c258996f5131386bcd6426 --- R debian9-repo-install-test/Dockerfile R debian9-repo-install-test/Makefile 2 files changed, 0 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve pespin: Looks good to me, but someone else must approve osmith: Looks good to me, approved; Verified diff --git a/debian-repo-install-test/Dockerfile b/debian9-repo-install-test/Dockerfile similarity index 100% rename from debian-repo-install-test/Dockerfile rename to debian9-repo-install-test/Dockerfile diff --git a/debian-repo-install-test/Makefile b/debian9-repo-install-test/Makefile similarity index 100% rename from debian-repo-install-test/Makefile rename to debian9-repo-install-test/Makefile -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22371 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I2ea18997019ebaa013c258996f5131386bcd6426 Gerrit-Change-Number: 22371 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 09:24:04 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 25 Jan 2021 09:24:04 +0000 Subject: Change in docker-playground[master]: debian10-repo-install-test: new container In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22372 ) Change subject: debian10-repo-install-test: new container ...................................................................... debian10-repo-install-test: new container Related: OS#4969 Change-Id: I7addb30aa3f8564dcbdc3f6cf2e2e0cfdf4dd02d --- A debian10-repo-install-test/Dockerfile A debian10-repo-install-test/Makefile M jenkins-common.sh 3 files changed, 15 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve pespin: Looks good to me, but someone else must approve osmith: Looks good to me, approved; Verified diff --git a/debian10-repo-install-test/Dockerfile b/debian10-repo-install-test/Dockerfile new file mode 100644 index 0000000..212cdc9 --- /dev/null +++ b/debian10-repo-install-test/Dockerfile @@ -0,0 +1,13 @@ +ARG USER +ARG REGISTRY=docker.io +ARG UPSTREAM_DISTRO=debian:buster +FROM ${REGISTRY}/${UPSTREAM_DISTRO} + +# ca-certificates: needed for limesuite-images post-install script + +RUN apt-get update && \ + apt-get install -y --no-install-recommends \ + aptitude \ + ca-certificates \ + gnupg \ + systemd diff --git a/debian10-repo-install-test/Makefile b/debian10-repo-install-test/Makefile new file mode 100644 index 0000000..8d0e10b --- /dev/null +++ b/debian10-repo-install-test/Makefile @@ -0,0 +1 @@ +include ../make/Makefile diff --git a/jenkins-common.sh b/jenkins-common.sh index e172a4f..1cfbbfc 100644 --- a/jenkins-common.sh +++ b/jenkins-common.sh @@ -22,6 +22,7 @@ case "$1" in osmo-*-centos8) echo "centos:centos8"; ;; centos8-*) echo "centos:centos8" ;; + debian10-*) echo "debian:buster" ;; *) echo "debian:stretch" ;; esac } -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22372 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I7addb30aa3f8564dcbdc3f6cf2e2e0cfdf4dd02d Gerrit-Change-Number: 22372 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 09:26:05 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 25 Jan 2021 09:26:05 +0000 Subject: Change in osmo-ci[master]: repo-install-test: verify DISTRO argument In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22375 ) Change subject: repo-install-test: verify DISTRO argument ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-ci/+/22375/1/scripts/repo-install-test.sh File scripts/repo-install-test.sh: https://gerrit.osmocom.org/c/osmo-ci/+/22375/1/scripts/repo-install-test.sh at 25 PS1, Line 25: DISTROS=" > having the DISTROS gloval var below the place where it's used feels a bit strange. I'll switch it around before merging. No other comments and this is trivial, so I'll give it +2 then. -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22375 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I1aa2564ff861d81a866302e44a1f99ff876c7b31 Gerrit-Change-Number: 22375 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 25 Jan 2021 09:26:05 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 09:32:19 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 25 Jan 2021 09:32:19 +0000 Subject: Change in osmo-cbc[master]: VTY: don't save dynamically-allocated "unknown" peers In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22416 ) Change subject: VTY: don't save dynamically-allocated "unknown" peers ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22416 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: If02694be4e4cb9cb27e7d9d07e533bfed4a999a9 Gerrit-Change-Number: 22416 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 25 Jan 2021 09:32:19 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 09:32:52 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 25 Jan 2021 09:32:52 +0000 Subject: Change in osmo-ci[master]: repo-install-test: verify DISTRO argument In-Reply-To: References: Message-ID: Hello pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ci/+/22375 to look at the new patch set (#2). Change subject: repo-install-test: verify DISTRO argument ...................................................................... repo-install-test: verify DISTRO argument Keep list of supported distros in one place in repo-install-test.sh. Related: OS#4969 Change-Id: I1aa2564ff861d81a866302e44a1f99ff876c7b31 --- M scripts/repo-install-test.sh 1 file changed, 18 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/75/22375/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22375 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I1aa2564ff861d81a866302e44a1f99ff876c7b31 Gerrit-Change-Number: 22375 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 09:32:52 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 25 Jan 2021 09:32:52 +0000 Subject: Change in osmo-ci[master]: repo-install-test: rename 'debian' to 'debian9' In-Reply-To: References: Message-ID: Hello laforge, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ci/+/22378 to look at the new patch set (#2). Change subject: repo-install-test: rename 'debian' to 'debian9' ...................................................................... repo-install-test: rename 'debian' to 'debian9' Related: OS#4969 Depends: docker-playground I2ea18997019ebaa013c258996f5131386bcd6426 Change-Id: Iaa2202cca4072b4dc0309e011aba6cb33ed5b8aa --- M jobs/repo-install-test.yml M scripts/repo-install-test.sh R scripts/repo-install-test/blacklist_debian9.txt M scripts/repo-install-test/run-inside-docker.sh 4 files changed, 3 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/78/22378/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22378 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Iaa2202cca4072b4dc0309e011aba6cb33ed5b8aa Gerrit-Change-Number: 22378 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 09:32:52 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 25 Jan 2021 09:32:52 +0000 Subject: Change in osmo-ci[master]: repo-install-test: add 'debian10' In-Reply-To: References: Message-ID: Hello laforge, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ci/+/22379 to look at the new patch set (#2). Change subject: repo-install-test: add 'debian10' ...................................................................... repo-install-test: add 'debian10' Related: OS#4969 Depends: docker-playground I7addb30aa3f8564dcbdc3f6cf2e2e0cfdf4dd02d Change-Id: If0fc12464b571dc42b33f2a077c77ea6e5120b8d --- M jobs/repo-install-test.yml M scripts/repo-install-test.sh A scripts/repo-install-test/blacklist_debian10.txt M scripts/repo-install-test/run-inside-docker.sh 4 files changed, 71 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/79/22379/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22379 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: If0fc12464b571dc42b33f2a077c77ea6e5120b8d Gerrit-Change-Number: 22379 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 09:34:01 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 25 Jan 2021 09:34:01 +0000 Subject: Change in osmo-ci[master]: repo-install-test: verify DISTRO argument In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22375 ) Change subject: repo-install-test: verify DISTRO argument ...................................................................... Patch Set 2: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22375 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I1aa2564ff861d81a866302e44a1f99ff876c7b31 Gerrit-Change-Number: 22375 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 25 Jan 2021 09:34:01 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 09:34:19 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 25 Jan 2021 09:34:19 +0000 Subject: Change in osmo-ci[master]: repo-install-test: resolve distro obs dir in func In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22376 ) Change subject: repo-install-test: resolve distro obs dir in func ...................................................................... Patch Set 2: Verified+1 Code-Review+2 1+1=2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22376 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ie537e8befeebd7958b2a1fe8f6fd54587cfcb1b6 Gerrit-Change-Number: 22376 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 25 Jan 2021 09:34:19 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 09:34:30 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 25 Jan 2021 09:34:30 +0000 Subject: Change in osmo-ci[master]: Cosmetic: repo-install-test: fix DISTRO comment In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22377 ) Change subject: Cosmetic: repo-install-test: fix DISTRO comment ...................................................................... Patch Set 2: Verified+1 Code-Review+2 1+1=2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22377 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ie8c2c86bc77606b1d2d4339751521139de22db04 Gerrit-Change-Number: 22377 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 25 Jan 2021 09:34:30 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 09:34:56 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 25 Jan 2021 09:34:56 +0000 Subject: Change in osmo-ci[master]: repo-install-test: rename 'debian' to 'debian9' In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22378 ) Change subject: repo-install-test: rename 'debian' to 'debian9' ...................................................................... Patch Set 2: Verified+1 Code-Review+2 1+1=2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22378 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Iaa2202cca4072b4dc0309e011aba6cb33ed5b8aa Gerrit-Change-Number: 22378 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 25 Jan 2021 09:34:56 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 09:35:39 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 25 Jan 2021 09:35:39 +0000 Subject: Change in osmo-ci[master]: repo-install-test: add 'debian10' In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22379 ) Change subject: repo-install-test: add 'debian10' ...................................................................... Patch Set 2: Verified+1 Code-Review+2 1+1=2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22379 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: If0fc12464b571dc42b33f2a077c77ea6e5120b8d Gerrit-Change-Number: 22379 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 25 Jan 2021 09:35:39 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 09:36:14 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 25 Jan 2021 09:36:14 +0000 Subject: Change in osmo-ci[master]: repo-install-test: no distro version in function In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22374 ) Change subject: repo-install-test: no distro version in function ...................................................................... Patch Set 1: Verified+1 Code-Review+2 1+1=2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22374 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ibb9f93af16af7ebe947f7efcd4e709f3e62d12c0 Gerrit-Change-Number: 22374 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 25 Jan 2021 09:36:14 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 09:36:24 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 25 Jan 2021 09:36:24 +0000 Subject: Change in osmo-ci[master]: repo-install-test: print successful test msg In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22373 ) Change subject: repo-install-test: print successful test msg ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22373 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Idfb75b0461a352ae1703f3c8452cd3afc3320049 Gerrit-Change-Number: 22373 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 25 Jan 2021 09:36:24 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 09:36:31 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 25 Jan 2021 09:36:31 +0000 Subject: Change in osmo-ci[master]: repo-install-test: print successful test msg In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22373 ) Change subject: repo-install-test: print successful test msg ...................................................................... repo-install-test: print successful test msg Change-Id: Idfb75b0461a352ae1703f3c8452cd3afc3320049 --- M scripts/repo-install-test/run-inside-docker.sh 1 file changed, 6 insertions(+), 0 deletions(-) Approvals: pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved osmith: Verified diff --git a/scripts/repo-install-test/run-inside-docker.sh b/scripts/repo-install-test/run-inside-docker.sh index f7d1449..dddad30 100755 --- a/scripts/repo-install-test/run-inside-docker.sh +++ b/scripts/repo-install-test/run-inside-docker.sh @@ -361,4 +361,10 @@ exit 1 ;; esac + + set +x + echo + echo "### Test successful: $test ###" + echo + set -x done -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22373 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Idfb75b0461a352ae1703f3c8452cd3afc3320049 Gerrit-Change-Number: 22373 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 09:36:33 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 25 Jan 2021 09:36:33 +0000 Subject: Change in osmo-ci[master]: repo-install-test: no distro version in function In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22374 ) Change subject: repo-install-test: no distro version in function ...................................................................... repo-install-test: no distro version in function Instead of calling various foo_debian and foo_centos8 versions with foo_$DISTRO, create new foo functions that call the right distro-specific function based on debian* or centos* being in DISTRO. Rename all foo_centos8 functions to foo_centos. This is in preparation to run this script with debian10 too, not just debian9. This can also be used to test a different centos version in the future. Related: OS#4969 Change-Id: Ibb9f93af16af7ebe947f7efcd4e709f3e62d12c0 --- M scripts/repo-install-test/run-inside-docker.sh 1 file changed, 60 insertions(+), 18 deletions(-) Approvals: pespin: Looks good to me, but someone else must approve laforge: Looks good to me, but someone else must approve osmith: Looks good to me, approved; Verified diff --git a/scripts/repo-install-test/run-inside-docker.sh b/scripts/repo-install-test/run-inside-docker.sh index dddad30..2e9d6a8 100755 --- a/scripts/repo-install-test/run-inside-docker.sh +++ b/scripts/repo-install-test/run-inside-docker.sh @@ -105,7 +105,7 @@ } # $1: OBS project (e.g. "network:osmocom:nightly") -configure_osmocom_repo_centos8() { +configure_osmocom_repo_centos() { local proj="$1" local baseurl="https://download.opensuse.org/repositories/$(proj_with_slashes "$proj")/CentOS_8" @@ -124,16 +124,24 @@ } # $1: OBS project (e.g. "network:osmocom:nightly") -configure_osmocom_repo_centos8_remove() { +configure_osmocom_repo_centos_remove() { local proj="$1" rm "/etc/yum.repos.d/$proj.repo" } -configure_keep_cache_debian() { - if [ -z "$KEEP_CACHE" ]; then - return - fi +# $1: OBS project (e.g. "network:osmocom:nightly") +configure_osmocom_repo() { + case "$DISTRO" in + debian*) + configure_osmocom_repo_debian "$@" + ;; + centos*) + configure_osmocom_repo_centos "$@" + ;; + esac +} +configure_keep_cache_debian() { rm /etc/apt/apt.conf.d/docker-clean # "apt" will actually remove the cache by default, even if "apt-get" keeps it. @@ -142,11 +150,23 @@ > /etc/apt/apt.conf.d/01keep-debs } -configure_keep_cache_centos8() { +configure_keep_cache_centos() { + echo "keepcache=1" >> /etc/dnf/dnf.conf +} + +configure_keep_cache() { if [ -z "$KEEP_CACHE" ]; then return fi - echo "keepcache=1" >> /etc/dnf/dnf.conf + + case "$DISTRO" in + debian*) + configure_keep_cache_debian + ;; + centos*) + configure_keep_cache_centos + ;; + esac } # $1: file @@ -190,11 +210,11 @@ configure_osmocom_repo_debian "$PROJ" } -test_conflict_centos8() { +test_conflict_centos() { dnf -y install libosmocore-devel - configure_osmocom_repo_centos8_remove "$PROJ" - configure_osmocom_repo_centos8 "$PROJ_CONFLICT" + configure_osmocom_repo_centos_remove "$PROJ" + configure_osmocom_repo_centos "$PROJ_CONFLICT" (dnf -y install osmo-mgw 2>&1 && touch /tmp/fail) | tee /tmp/out @@ -209,8 +229,19 @@ "but none of the providers can be installed" \ "conflicts with osmocom-" - configure_osmocom_repo_centos8_remove "$PROJ_CONFLICT" - configure_osmocom_repo_centos8 "$PROJ" + configure_osmocom_repo_centos_remove "$PROJ_CONFLICT" + configure_osmocom_repo_centos "$PROJ" +} + +test_conflict() { + case "$DISTRO" in + debian*) + test_conflict_debian + ;; + centos*) + test_conflict_centos + ;; + esac } # Filter $PWD/osmocom_packages_all.txt through a blacklist_$DISTRO.txt and store the result in @@ -239,7 +270,7 @@ apt install -y $(cat osmocom_packages.txt) } -install_repo_packages_centos8() { +install_repo_packages_centos() { echo "Installing all repository packages" # Get a list of all packages from the repository @@ -254,6 +285,17 @@ dnf install -y $(cat osmocom_packages.txt) } +install_repo_packages() { + case "$DISTRO" in + debian*) + install_repo_packages_debian + ;; + centos*) + install_repo_packages_centos + ;; + esac +} + test_binaries_version() { # Make sure --version runs and does not output UNKNOWN failed="" @@ -331,8 +373,8 @@ } check_env -configure_keep_cache_${DISTRO} -configure_osmocom_repo_${DISTRO} "$PROJ" +configure_keep_cache +configure_osmocom_repo "$PROJ" for test in $TESTS; do set +x @@ -343,10 +385,10 @@ case "$test" in test_conflict) - test_conflict_${DISTRO} + test_conflict ;; install_repo_packages) - install_repo_packages_${DISTRO} + install_repo_packages ;; test_binaries) # install_repo_packages must run first! -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22374 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ibb9f93af16af7ebe947f7efcd4e709f3e62d12c0 Gerrit-Change-Number: 22374 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 09:36:34 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 25 Jan 2021 09:36:34 +0000 Subject: Change in osmo-ci[master]: repo-install-test: verify DISTRO argument In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22375 ) Change subject: repo-install-test: verify DISTRO argument ...................................................................... repo-install-test: verify DISTRO argument Keep list of supported distros in one place in repo-install-test.sh. Related: OS#4969 Change-Id: I1aa2564ff861d81a866302e44a1f99ff876c7b31 --- M scripts/repo-install-test.sh 1 file changed, 18 insertions(+), 7 deletions(-) Approvals: osmith: Looks good to me, approved; Verified diff --git a/scripts/repo-install-test.sh b/scripts/repo-install-test.sh index 7585509..88253a3 100755 --- a/scripts/repo-install-test.sh +++ b/scripts/repo-install-test.sh @@ -8,14 +8,25 @@ # * TESTS: which tests to run (all by default, see below for possible values) . "$(dirname "$0")/common.sh" -# Show usage -if [ "$#" -ne 1 ]; then - echo "usage: repo-install-test.sh DISTRO" - echo "DISTRO: debian or centos8" - exit 1 -fi - DISTRO="$1" +DISTROS=" + centos8 + debian +" + +check_usage() { + local i + for i in $DISTROS; do + if [ "$DISTRO" = "$i" ]; then + return + fi + done + echo "usage: repo-install-test.sh DISTRO" + echo "DISTRO: one of: $DISTROS" + exit 1 +} + +check_usage docker_images_require "$DISTRO-repo-install-test" FEED="${FEED:-nightly}" -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22375 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I1aa2564ff861d81a866302e44a1f99ff876c7b31 Gerrit-Change-Number: 22375 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 09:36:34 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 25 Jan 2021 09:36:34 +0000 Subject: Change in osmo-ci[master]: repo-install-test: resolve distro obs dir in func In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22376 ) Change subject: repo-install-test: resolve distro obs dir in func ...................................................................... repo-install-test: resolve distro obs dir in func Instead of hardcoding CentOS_8 in the centos code path, and Debian_9.0 in the debian code path, resolve the proper OBS directory based on $DISTRO. Related: OS#4969 Change-Id: Ie537e8befeebd7958b2a1fe8f6fd54587cfcb1b6 --- M scripts/repo-install-test/run-inside-docker.sh 1 file changed, 20 insertions(+), 3 deletions(-) Approvals: osmith: Looks good to me, approved; Verified pespin: Looks good to me, but someone else must approve laforge: Looks good to me, but someone else must approve diff --git a/scripts/repo-install-test/run-inside-docker.sh b/scripts/repo-install-test/run-inside-docker.sh index 2e9d6a8..355b668 100755 --- a/scripts/repo-install-test/run-inside-docker.sh +++ b/scripts/repo-install-test/run-inside-docker.sh @@ -37,6 +37,23 @@ osmo-bts-virtual " +distro_obsdir() { + case "$DISTRO" in + centos8) + echo "CentOS_8" + ;; + debian) + echo "Debian_9.0" + ;; + *) + echo "ERROR: unknown obsdir for '$DISTRO'." >&2 + exit 1 + ;; + esac +} + +DISTRO_OBSDIR="$(distro_obsdir)" + # $1: OBS project (e.g. "network:osmocom:nightly" -> "network:/osmocom:/nightly") proj_with_slashes() { echo "$1" | sed "s.:.:/.g" @@ -82,7 +99,7 @@ # $1: OBS project (e.g. "network:osmocom:nightly") configure_osmocom_repo_debian() { local proj="$1" - local obs_repo="download.opensuse.org/repositories/$(proj_with_slashes "$proj")/Debian_9.0/" + local obs_repo="download.opensuse.org/repositories/$(proj_with_slashes "$proj")/$DISTRO_OBSDIR/" local release_key="/var/cache/apt/${proj}_Release.key" echo "Configuring Osmocom repository" @@ -107,7 +124,7 @@ # $1: OBS project (e.g. "network:osmocom:nightly") configure_osmocom_repo_centos() { local proj="$1" - local baseurl="https://download.opensuse.org/repositories/$(proj_with_slashes "$proj")/CentOS_8" + local baseurl="https://download.opensuse.org/repositories/$(proj_with_slashes "$proj")/$DISTRO_OBSDIR" echo "Configuring Osmocom repository" # Generate this file, based on the feed: @@ -256,7 +273,7 @@ } install_repo_packages_debian() { - local obs="obs://build.opensuse.org/$PROJ/Debian_9.0" + local obs="obs://build.opensuse.org/$PROJ/$DISTRO_OBSDIR" echo "Installing all repository packages" -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22376 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ie537e8befeebd7958b2a1fe8f6fd54587cfcb1b6 Gerrit-Change-Number: 22376 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 09:36:35 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 25 Jan 2021 09:36:35 +0000 Subject: Change in osmo-ci[master]: Cosmetic: repo-install-test: fix DISTRO comment In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22377 ) Change subject: Cosmetic: repo-install-test: fix DISTRO comment ...................................................................... Cosmetic: repo-install-test: fix DISTRO comment A valid example is "centos8", with the version, not "centos". Remove the debian example, as we'll require a version with that later on as well. Related: OS#4969 Change-Id: Ie8c2c86bc77606b1d2d4339751521139de22db04 --- M scripts/repo-install-test/run-inside-docker.sh 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: osmith: Looks good to me, approved; Verified pespin: Looks good to me, but someone else must approve laforge: Looks good to me, but someone else must approve diff --git a/scripts/repo-install-test/run-inside-docker.sh b/scripts/repo-install-test/run-inside-docker.sh index 355b668..8fa3a66 100755 --- a/scripts/repo-install-test/run-inside-docker.sh +++ b/scripts/repo-install-test/run-inside-docker.sh @@ -4,7 +4,7 @@ # * PROJ: OBS project namespace (e.g. "network:osmocom:latest") # * PROJ_CONFLICT: Conflicting OBS project namespace (e.g. "network:osmocom:nightly") # * KEEP_CACHE: set to 1 to keep downloaded binary packages (for development) -# * DISTRO: linux distribution name (e.g. "debian", "centos") +# * DISTRO: linux distribution name (e.g. "centos8") # * TESTS: which tests to run (see repo-install-test.sh) # Systemd services that must start up successfully after installing all packages (OS#3369) -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22377 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ie8c2c86bc77606b1d2d4339751521139de22db04 Gerrit-Change-Number: 22377 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 09:36:35 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 25 Jan 2021 09:36:35 +0000 Subject: Change in osmo-ci[master]: repo-install-test: rename 'debian' to 'debian9' In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22378 ) Change subject: repo-install-test: rename 'debian' to 'debian9' ...................................................................... repo-install-test: rename 'debian' to 'debian9' Related: OS#4969 Depends: docker-playground I2ea18997019ebaa013c258996f5131386bcd6426 Change-Id: Iaa2202cca4072b4dc0309e011aba6cb33ed5b8aa --- M jobs/repo-install-test.yml M scripts/repo-install-test.sh R scripts/repo-install-test/blacklist_debian9.txt M scripts/repo-install-test/run-inside-docker.sh 4 files changed, 3 insertions(+), 3 deletions(-) Approvals: osmith: Looks good to me, approved; Verified diff --git a/jobs/repo-install-test.yml b/jobs/repo-install-test.yml index 2c26490..bde6054 100644 --- a/jobs/repo-install-test.yml +++ b/jobs/repo-install-test.yml @@ -4,7 +4,7 @@ jobs: - Osmocom-repo-install-{distro} distro: - - debian: + - debian9: feeds: !!python/tuple [nightly, latest] - centos8: feeds: !!python/tuple [next, nightly] diff --git a/scripts/repo-install-test.sh b/scripts/repo-install-test.sh index 88253a3..8cf91f7 100755 --- a/scripts/repo-install-test.sh +++ b/scripts/repo-install-test.sh @@ -11,7 +11,7 @@ DISTRO="$1" DISTROS=" centos8 - debian + debian9 " check_usage() { diff --git a/scripts/repo-install-test/blacklist_debian.txt b/scripts/repo-install-test/blacklist_debian9.txt similarity index 100% rename from scripts/repo-install-test/blacklist_debian.txt rename to scripts/repo-install-test/blacklist_debian9.txt diff --git a/scripts/repo-install-test/run-inside-docker.sh b/scripts/repo-install-test/run-inside-docker.sh index 8fa3a66..3a06277 100755 --- a/scripts/repo-install-test/run-inside-docker.sh +++ b/scripts/repo-install-test/run-inside-docker.sh @@ -42,7 +42,7 @@ centos8) echo "CentOS_8" ;; - debian) + debian9) echo "Debian_9.0" ;; *) -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22378 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Iaa2202cca4072b4dc0309e011aba6cb33ed5b8aa Gerrit-Change-Number: 22378 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 09:36:36 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 25 Jan 2021 09:36:36 +0000 Subject: Change in osmo-ci[master]: repo-install-test: add 'debian10' In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22379 ) Change subject: repo-install-test: add 'debian10' ...................................................................... repo-install-test: add 'debian10' Related: OS#4969 Depends: docker-playground I7addb30aa3f8564dcbdc3f6cf2e2e0cfdf4dd02d Change-Id: If0fc12464b571dc42b33f2a077c77ea6e5120b8d --- M jobs/repo-install-test.yml M scripts/repo-install-test.sh A scripts/repo-install-test/blacklist_debian10.txt M scripts/repo-install-test/run-inside-docker.sh 4 files changed, 71 insertions(+), 2 deletions(-) Approvals: osmith: Looks good to me, approved; Verified diff --git a/jobs/repo-install-test.yml b/jobs/repo-install-test.yml index bde6054..425357d 100644 --- a/jobs/repo-install-test.yml +++ b/jobs/repo-install-test.yml @@ -4,10 +4,12 @@ jobs: - Osmocom-repo-install-{distro} distro: - - debian9: - feeds: !!python/tuple [nightly, latest] - centos8: feeds: !!python/tuple [next, nightly] + - debian9: + feeds: !!python/tuple [nightly, latest] + - debian10: + feeds: !!python/tuple [nightly, latest] - job-template: name: Osmocom-repo-install-{distro} diff --git a/scripts/repo-install-test.sh b/scripts/repo-install-test.sh index 8cf91f7..d13cfc8 100755 --- a/scripts/repo-install-test.sh +++ b/scripts/repo-install-test.sh @@ -12,6 +12,7 @@ DISTROS=" centos8 debian9 + debian10 " check_usage() { diff --git a/scripts/repo-install-test/blacklist_debian10.txt b/scripts/repo-install-test/blacklist_debian10.txt new file mode 100644 index 0000000..6570de6 --- /dev/null +++ b/scripts/repo-install-test/blacklist_debian10.txt @@ -0,0 +1,63 @@ +# These packages will not get explicitly installed in this test. +# Package lines must have nothing but the package (no comment, +# no additional space etc). + +# OpenBSC +# This is legacy, we aren't really interested in testing openbsc.git +# derived packages. Packages are found in openbsc/debian/control. +openbsc-dev +osmo-bsc-mgcp +osmo-bsc-mgcp-dbg +osmocom-bs11-utils +osmocom-bs11-utils-dbg +osmocom-bsc-nat +osmocom-bsc-nat-dbg +osmocom-bsc-sccplite +osmocom-bsc-sccplite-dbg +osmocom-ipaccess-utils +osmocom-ipaccess-utils-dbg +osmocom-nitb +osmocom-nitb-dbg + +# SoapySDR is not used anymore (see OS#3542) +soapysdr-module-lms7 +soapysdr0.6-module-lms7 +soapysdr0.6-module-lms7-dbgsym +soapysdr0.7-module-lms7 +soapysdr0.7-module-lms7-dbgsym + +# Depends on specific verions 0.5.4.38.0847 of rtl-sdr, which we won't install +librtlsdr0-dbgsym +rtl-sdr-dbgsym + +# Depends on mongodb, which was droppend from debian 10 onwards +open5gs +open5gs-amf +open5gs-amf-dbgsym +open5gs-ausf +open5gs-ausf-dbgsym +open5gs-common +open5gs-common-dbgsym +open5gs-dbg +open5gs-hss +open5gs-hss-dbgsym +open5gs-mme +open5gs-mme-dbgsym +open5gs-nrf +open5gs-nrf-dbgsym +open5gs-pcf +open5gs-pcf-dbgsym +open5gs-pcrf +open5gs-pcrf-dbgsym +open5gs-sgwc +open5gs-sgwc-dbgsym +open5gs-sgwu +open5gs-sgwu-dbgsym +open5gs-smf +open5gs-smf-dbgsym +open5gs-udm +open5gs-udm-dbgsym +open5gs-udr +open5gs-udr-dbgsym +open5gs-upf +open5gs-upf-dbgsym diff --git a/scripts/repo-install-test/run-inside-docker.sh b/scripts/repo-install-test/run-inside-docker.sh index 3a06277..f05f01c 100755 --- a/scripts/repo-install-test/run-inside-docker.sh +++ b/scripts/repo-install-test/run-inside-docker.sh @@ -45,6 +45,9 @@ debian9) echo "Debian_9.0" ;; + debian10) + echo "Debian_10" + ;; *) echo "ERROR: unknown obsdir for '$DISTRO'." >&2 exit 1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22379 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: If0fc12464b571dc42b33f2a077c77ea6e5120b8d Gerrit-Change-Number: 22379 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 10:22:38 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 25 Jan 2021 10:22:38 +0000 Subject: Change in osmo-pcu[master]: ms: Drop always-false check References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22418 ) Change subject: ms: Drop always-false check ...................................................................... ms: Drop always-false check MS is always assigned to a BTS, since it's set during MS constructor. Hence, the check removed in this patch would never hold true (and if it did, it'd be a bug). Change-Id: I86a71c64623f7bec031226938a54306148370ffb --- M src/gprs_ms.c 1 file changed, 0 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/18/22418/1 diff --git a/src/gprs_ms.c b/src/gprs_ms.c index ea497a3..daa3223 100644 --- a/src/gprs_ms.c +++ b/src/gprs_ms.c @@ -242,9 +242,6 @@ { ms->mode = mode; - if (!ms->bts) - return; - switch (ms->mode) { case GPRS: if (!mcs_is_gprs(ms->current_cs_ul)) { -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22418 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I86a71c64623f7bec031226938a54306148370ffb Gerrit-Change-Number: 22418 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 10:33:47 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 25 Jan 2021 10:33:47 +0000 Subject: Change in osmo-pcu[master]: sched: Check if egprs is enabled in TBF rather than MS being egprs ca... References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22419 ) Change subject: sched: Check if egprs is enabled in TBF rather than MS being egprs capable ...................................................................... sched: Check if egprs is enabled in TBF rather than MS being egprs capable It could happen as of current implementation that a TBF was created as GPRS due to the MS being non-egprs, and later on the MS was upgraded to EGPRS due to newly received information from the MS. Hence, in order to infer if the data block is EGPRS or GPRS, let's better check for the TBF info, which is the one really mandating the kind of dl block to generate. Change-Id: I49720fb3a69ca972cd1973de937ac8ee77615431 --- M src/gprs_rlcmac_sched.cpp 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/19/22419/1 diff --git a/src/gprs_rlcmac_sched.cpp b/src/gprs_rlcmac_sched.cpp index 5640158..49a8ff2 100644 --- a/src/gprs_rlcmac_sched.cpp +++ b/src/gprs_rlcmac_sched.cpp @@ -341,7 +341,7 @@ pdch->next_dl_tfi = (prio_tfi + 1) & 31; /* generate DL data block */ msg = prio_tbf->create_dl_acked_block(fn, ts, req_mcs_kind); - *is_egprs = ms_mode(prio_tbf->ms()) != GPRS; + *is_egprs = prio_tbf->is_egprs_enabled(); } return msg; -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22419 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I49720fb3a69ca972cd1973de937ac8ee77615431 Gerrit-Change-Number: 22419 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 10:38:44 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 25 Jan 2021 10:38:44 +0000 Subject: Change in osmo-pcu[master]: tbf: Drop always-true condition checking for MS References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22420 ) Change subject: tbf: Drop always-true condition checking for MS ...................................................................... tbf: Drop always-true condition checking for MS TBF is always attached to an MS object (despite the MS object can change over time due to MS objects being merged when found duplicate upon receiving new info). Hence, it makes no sense to check if the TBF is attached. If it's not, then it's a bug. Change-Id: If292a53a09a64664031e756bff4735b9c6ee8651 --- M src/tbf.cpp 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/20/22420/1 diff --git a/src/tbf.cpp b/src/tbf.cpp index 37af21f..cfc13df 100644 --- a/src/tbf.cpp +++ b/src/tbf.cpp @@ -196,9 +196,9 @@ enum CodingScheme cs; if (direction == GPRS_RLCMAC_UL_TBF) - cs = m_ms ? ms_current_cs_ul(m_ms) : UNKNOWN; + cs = ms_current_cs_ul(m_ms); else - cs = m_ms ? ms_current_cs_dl(m_ms) : UNKNOWN; + cs = ms_current_cs_dl(m_ms); return cs; } -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22420 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: If292a53a09a64664031e756bff4735b9c6ee8651 Gerrit-Change-Number: 22420 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 10:39:31 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 25 Jan 2021 10:39:31 +0000 Subject: Change in osmo-pcu[master]: tbf: Drop always-true condition checking for MS In-Reply-To: References: Message-ID: pespin has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/osmo-pcu/+/22420 ) Change subject: tbf: Drop always-true condition checking for MS ...................................................................... tbf: Drop always-true condition checking for MS TBF is always attached to an MS object (despite the MS object can change over time due to MS objects being merged when found duplicate upon receiving new info). Hence, it makes no sense to check if the TBF is attached. If it's not, then it's a bug. Change-Id: If292a53a09a64664031e756bff4735b9c6ee8651 --- M src/tbf.cpp 1 file changed, 4 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/20/22420/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22420 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: If292a53a09a64664031e756bff4735b9c6ee8651 Gerrit-Change-Number: 22420 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-CC: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 11:28:14 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 25 Jan 2021 11:28:14 +0000 Subject: Change in osmo-pcu[master]: tbf: Drop always-true condition checking for MS In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-pcu/+/22420 to look at the new patch set (#3). Change subject: tbf: Drop always-true condition checking for MS ...................................................................... tbf: Drop always-true condition checking for MS TBF is always attached to an MS object (despite the MS object can change over time due to MS objects being merged when found duplicate upon receiving new info). Hence, it makes no sense to check if the TBF isctually, the TBF can be detached from an MS under some situations, The TBF can sometimes be detached from an MS, for eg. when switching from one MS object to another due to them being merged after we found duplicate objects upon receiving new information from it, but that change is instantaneous so it shouldn't be a problem. The only other way where an MS can be detached from an MS is during the end of its (or the MS) life, where it is not sending data anymore. Hence, it is safe to drop those checks for MS not being null. Those being trigger, it should be considered a bug. Change-Id: If292a53a09a64664031e756bff4735b9c6ee8651 --- M src/tbf.cpp 1 file changed, 3 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/20/22420/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22420 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: If292a53a09a64664031e756bff4735b9c6ee8651 Gerrit-Change-Number: 22420 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 12:35:09 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 25 Jan 2021 12:35:09 +0000 Subject: Change in libosmocore[master]: configure.ac: set -std=gnu99 In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22355 ) Change subject: configure.ac: set -std=gnu99 ...................................................................... Patch Set 4: The SGSN already uses gnu11. I would argue let's use everywhere the same standard. Or do you have an argument against gnu11? If so let's change it first in the SGSN. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22355 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Id79b13d3c498acb565f91eba650328fccb5a13ef Gerrit-Change-Number: 22355 Gerrit-PatchSet: 4 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-CC: lynxis lazus Gerrit-Comment-Date: Mon, 25 Jan 2021 12:35:09 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 12:41:38 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 25 Jan 2021 12:41:38 +0000 Subject: Change in libosmocore[master]: configure.ac: set -std=gnu99 In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22355 ) Change subject: configure.ac: set -std=gnu99 ...................................................................... Patch Set 4: > Patch Set 4: > > The SGSN already uses gnu11. I would argue let's use everywhere the same standard. > Or do you have an argument against gnu11? If so let's change it first in the SGSN. I would argue to go to gnu99 everywhere, including the SGSN. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22355 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Id79b13d3c498acb565f91eba650328fccb5a13ef Gerrit-Change-Number: 22355 Gerrit-PatchSet: 4 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-CC: lynxis lazus Gerrit-Comment-Date: Mon, 25 Jan 2021 12:41:38 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 12:42:02 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 25 Jan 2021 12:42:02 +0000 Subject: Change in osmo-cbc[master]: VTY: don't save dynamically-allocated "unknown" peers In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22416 ) Change subject: VTY: don't save dynamically-allocated "unknown" peers ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22416 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: If02694be4e4cb9cb27e7d9d07e533bfed4a999a9 Gerrit-Change-Number: 22416 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 25 Jan 2021 12:42:02 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 12:42:04 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 25 Jan 2021 12:42:04 +0000 Subject: Change in osmo-cbc[master]: VTY: don't save dynamically-allocated "unknown" peers In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22416 ) Change subject: VTY: don't save dynamically-allocated "unknown" peers ...................................................................... VTY: don't save dynamically-allocated "unknown" peers The VTY code should write/save only those peers that were configured using the VTY. Closes: OS#4929 Change-Id: If02694be4e4cb9cb27e7d9d07e533bfed4a999a9 --- M src/cbc_data.h M src/cbc_vty.c M src/cbsp_server.c 3 files changed, 7 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/src/cbc_data.h b/src/cbc_data.h index e88ae45..d6fc3d2 100644 --- a/src/cbc_data.h +++ b/src/cbc_data.h @@ -26,6 +26,7 @@ char *remote_host; /* remote IP address in string format */ int remote_port; /* remote port number or -1 for random */ + bool unknown_dynamic_peer; /* dynamic/unknown peer; not saved in VTY */ enum cbc_peer_protocol proto; union { diff --git a/src/cbc_vty.c b/src/cbc_vty.c index 98e2703..9a36aa4 100644 --- a/src/cbc_vty.c +++ b/src/cbc_vty.c @@ -494,8 +494,12 @@ static int config_write_peer(struct vty *vty) { struct cbc_peer *peer; - llist_for_each_entry(peer, &g_cbc->peers, list) + llist_for_each_entry(peer, &g_cbc->peers, list) { + /* only save those configured via the VTY, not the "unknown" peers */ + if (peer->unknown_dynamic_peer) + continue; write_one_peer(vty, peer); + } return CMD_SUCCESS; } diff --git a/src/cbsp_server.c b/src/cbsp_server.c index 8a62790..3aa6332 100644 --- a/src/cbsp_server.c +++ b/src/cbsp_server.c @@ -150,6 +150,7 @@ remote_ip, remote_port); client->peer = cbc_peer_create(NULL, CBC_PEER_PROTO_CBSP); OSMO_ASSERT(client->peer); + client->peer->unknown_dynamic_peer = true; } else { LOGPCC(client, LOGL_NOTICE, "Rejecting unknown CBSP peer %s:%d (not permitted)\n", remote_ip, remote_port); -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22416 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: If02694be4e4cb9cb27e7d9d07e533bfed4a999a9 Gerrit-Change-Number: 22416 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 12:42:22 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 25 Jan 2021 12:42:22 +0000 Subject: Change in osmo-pcu[master]: ms: Drop always-false check In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22418 ) Change subject: ms: Drop always-false check ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22418 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I86a71c64623f7bec031226938a54306148370ffb Gerrit-Change-Number: 22418 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 25 Jan 2021 12:42:22 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 12:43:15 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 25 Jan 2021 12:43:15 +0000 Subject: Change in osmo-pcu[master]: sched: Check if egprs is enabled in TBF rather than MS being egprs ca... In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22419 ) Change subject: sched: Check if egprs is enabled in TBF rather than MS being egprs capable ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-pcu/+/22419/1//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-pcu/+/22419/1//COMMIT_MSG at 15 PS1, Line 15: should probably be Related: OS#4973 ? -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22419 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I49720fb3a69ca972cd1973de937ac8ee77615431 Gerrit-Change-Number: 22419 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 25 Jan 2021 12:43:15 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 12:44:33 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 25 Jan 2021 12:44:33 +0000 Subject: Change in osmo-pcu[master]: tbf: Drop always-true condition checking for MS In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22420 ) Change subject: tbf: Drop always-true condition checking for MS ...................................................................... Patch Set 3: (2 comments) https://gerrit.osmocom.org/c/osmo-pcu/+/22420/3//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-pcu/+/22420/3//COMMIT_MSG at 12 PS3, Line 12: isctually ? https://gerrit.osmocom.org/c/osmo-pcu/+/22420/3//COMMIT_MSG at 21 PS3, Line 21: Hence, it is safe to drop those checks for MS not being null. Those you could also OSMO_ASSERT(m_ms) instead. Not saying you must... -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22420 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: If292a53a09a64664031e756bff4735b9c6ee8651 Gerrit-Change-Number: 22420 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-Comment-Date: Mon, 25 Jan 2021 12:44:33 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 12:44:48 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 25 Jan 2021 12:44:48 +0000 Subject: Change in osmo-pcu[master]: ms: Drop always-false check In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22418 ) Change subject: ms: Drop always-false check ...................................................................... Patch Set 1: you could also OSMO_ASSERT(ms-->bts) instead. Not saying you must... -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22418 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I86a71c64623f7bec031226938a54306148370ffb Gerrit-Change-Number: 22418 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 25 Jan 2021 12:44:48 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 12:47:55 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 25 Jan 2021 12:47:55 +0000 Subject: Change in docker-playground[master]: ttcn3-gbproxy-test: s/sgsn/gbproxy/ In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22366 ) Change subject: ttcn3-gbproxy-test: s/sgsn/gbproxy/ ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22366 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I8709121d8501da4afc1c8dda70356096d331a9b0 Gerrit-Change-Number: 22366 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 25 Jan 2021 12:47:55 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 12:48:04 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 25 Jan 2021 12:48:04 +0000 Subject: Change in docker-playground[master]: ttcn3-gbproxy-test: s/sgsn/gbproxy/ In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22366 ) Change subject: ttcn3-gbproxy-test: s/sgsn/gbproxy/ ...................................................................... Patch Set 2: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22366 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I8709121d8501da4afc1c8dda70356096d331a9b0 Gerrit-Change-Number: 22366 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 25 Jan 2021 12:48:04 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 12:48:06 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 25 Jan 2021 12:48:06 +0000 Subject: Change in docker-playground[master]: ttcn3-gbproxy-test: s/sgsn/gbproxy/ In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22366 ) Change subject: ttcn3-gbproxy-test: s/sgsn/gbproxy/ ...................................................................... ttcn3-gbproxy-test: s/sgsn/gbproxy/ the jenkins.sh script was copied from the SGSN test suite and still mentioned sgsn at several places when actually intending to mention gbproxy. Change-Id: I8709121d8501da4afc1c8dda70356096d331a9b0 --- M ttcn3-gbproxy-test/jenkins.sh 1 file changed, 7 insertions(+), 7 deletions(-) Approvals: laforge: Looks good to me, approved; Verified pespin: Looks good to me, but someone else must approve diff --git a/ttcn3-gbproxy-test/jenkins.sh b/ttcn3-gbproxy-test/jenkins.sh index 8150430..2120f90 100755 --- a/ttcn3-gbproxy-test/jenkins.sh +++ b/ttcn3-gbproxy-test/jenkins.sh @@ -15,8 +15,8 @@ cp GBProxy_Tests.cfg $VOL_BASE_DIR/gbproxy-tester/ -mkdir $VOL_BASE_DIR/sgsn -cp osmo-gbproxy.cfg $VOL_BASE_DIR/sgsn/ +mkdir $VOL_BASE_DIR/gbproxy +cp osmo-gbproxy.cfg $VOL_BASE_DIR/gbproxy/ # Disable features not in latest yet if [ "$IMAGE_SUFFIX" = "latest" ]; then @@ -25,17 +25,17 @@ mkdir $VOL_BASE_DIR/unix -echo Starting container with SGSN +echo Starting container with gbproxy docker run --rm \ $(docker_network_params $SUBNET 10) \ --ulimit core=-1 \ - -v $VOL_BASE_DIR/sgsn:/data \ - --name ${BUILD_TAG}-sgsn -d \ + -v $VOL_BASE_DIR/gbproxy:/data \ + --name ${BUILD_TAG}-gbproxy -d \ $DOCKER_ARGS \ $REPO_USER/osmo-sgsn-$IMAGE_SUFFIX \ /bin/sh -c "osmo-gbproxy -c /data/osmo-gbproxy.cfg >/data/osmo-gbproxy.log 2>&1" -echo Starting container with SGSN testsuite +echo Starting container with gbproxy testsuite docker run --rm \ $(docker_network_params $SUBNET 103) \ --ulimit core=-1 \ @@ -57,7 +57,7 @@ $REPO_USER/ttcn3-gbproxy-test echo Stopping containers -docker container kill ${BUILD_TAG}-sgsn +docker container kill ${BUILD_TAG}-gbproxy network_remove collect_logs -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22366 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I8709121d8501da4afc1c8dda70356096d331a9b0 Gerrit-Change-Number: 22366 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 12:48:38 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 25 Jan 2021 12:48:38 +0000 Subject: Change in osmo-ttcn3-hacks[master]: NS_Emulation: Add CTRL port to administratively disable a NS-VC In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22315 ) Change subject: NS_Emulation: Add CTRL port to administratively disable a NS-VC ...................................................................... NS_Emulation: Add CTRL port to administratively disable a NS-VC This feature is useful in simulating intermittent or permanent transport network outage by simply halting processing of all rx+tx in the specified NS-VC until it is administratively re-enabled. Change-Id: I742ecf01de15e3edbf0719371f0217a5739b7c8e RelateD: OS#4521 --- M library/NS_Emulation.ttcnpp 1 file changed, 66 insertions(+), 2 deletions(-) Approvals: laforge: Looks good to me, approved daniel: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/library/NS_Emulation.ttcnpp b/library/NS_Emulation.ttcnpp index 61ebe95..dc8e0ec 100644 --- a/library/NS_Emulation.ttcnpp +++ b/library/NS_Emulation.ttcnpp @@ -107,6 +107,7 @@ } type enumerated NsvcState { + NSVC_S_DISABLED, /* administratively disabled */ NSVC_S_DEAD_BLOCKED, NSVC_S_WAIT_RESET, NSVC_S_ALIVE_BLOCKED, @@ -128,6 +129,25 @@ out NsUnitdataRequest; } with { extension "internal" }; + /* port from our (internal) point of view */ + type port NS_CTRL_SP_PT message { + in NsDisableVcRequest, + NsEnableVcRequest; + } with { extension "internal" }; + + /* port from the user point of view */ + type port NS_CTRL_PT message { + out NsEnableVcRequest, + NsDisableVcRequest; + } with { extension "internal" }; + + type record NsDisableVcRequest { + Nsvci nsvci + }; + type record NsEnableVcRequest { + Nsvci nsvci + }; + type component NS_Provider_CT { /* upper port, facing to NS_Emulation:NSCP */ port NS_PROVIDER_PT NSE; @@ -187,6 +207,9 @@ /* port towards the per-NSVC components */ port NSint_PT NSVC; + /* control port, used to manipulate at runtime */ + port NS_CTRL_SP_PT NS_CTRL; + /* all of the NS configuration a user passes to us */ var NSConfiguration g_config; var charstring g_id; @@ -239,7 +262,9 @@ }; type enumerated NsCtrlRequest { - StartAliveProcedure (0) + StartAliveProcedure (0), + DisableReq (1), /* administratively disable NS-VC */ + EnableReq (2) /* administratively enable NS-VC */ }; /* add one NSVC (component and table entry */ @@ -346,6 +371,8 @@ var NsStatusIndication rx_nssi; var NsUnitdataIndication rx_nsudi; var NsUnitdataRequest rx_nsudr; + var NsDisableVcRequest rx_disar; + var NsEnableVcRequest rx_enar; /* pass from NS-VCs up to user */ [] NSVC.receive(tr_NsStsInd(g_config.nsei, ?, ?, NSVC_S_ALIVE_UNBLOCKED)) -> value rx_nssi { /* check if this one is the first to be unblocked */ @@ -384,6 +411,14 @@ log2str("Received UnitDataInd for invalid NSEI: ", rx_nsudi)); } /* from user down to NS-VC */ + [] NS_CTRL.receive(NsDisableVcRequest:?) -> value rx_disar { + var integer nsvc_idx := f_nsvc_find_idx(rx_disar.nsvci); + NSVC.send(NsCtrlRequest:DisableReq) to g_nsvcs[nsvc_idx].vc_conn; + } + [] NS_CTRL.receive(NsEnableVcRequest:?) -> value rx_enar { + var integer nsvc_idx := f_nsvc_find_idx(rx_enar.nsvci); + NSVC.send(NsCtrlRequest:EnableReq) to g_nsvcs[nsvc_idx].vc_conn; + } [] NS_SP.receive(tr_NsUdReq(g_config.nsei, 0, ?, ?, *)) -> value rx_nsudr { /* load distribution function */ var integer nsvc_idx := g_unblocked_nsvcs_sig[rx_nsudr.lsp mod lengthof(g_unblocked_nsvcs_sig)]; @@ -577,6 +612,15 @@ var PDU_NS rf; var ASP_Event evt; + [] NS_SP.receive(NsCtrlRequest:DisableReq) { + /* To make NS-VCG remove us from list of active NS-VC */ + f_change_state(NSVC_S_DEAD_BLOCKED); + log("Disabling NSVC on user request"); + f_change_state(NSVC_S_DISABLED); + Tns_test.stop; + Tns_alive.stop; + } + /* transition to DEAD if t_alive times out */ [] Tns_alive.timeout { log("Tns-alive expired: changing to DEAD_BLOCKED + starting Tns-test"); @@ -618,6 +662,25 @@ } } + private altstep as_disabled() runs on NSVC_CT { + [g_config.handle_sns == true] NS_SP.receive(NsCtrlRequest:EnableReq) { + f_change_state(NSVC_S_ALIVE_UNBLOCKED); + f_sendAlive(); + Tns_test.start; + } + [g_config.handle_sns == false] NS_SP.receive(NsCtrlRequest:EnableReq) { + f_change_state(NSVC_S_DEAD_BLOCKED); + Tns_test.start; + } + /* drop any received messages while in this state */ + [] NSCP.receive { + log("Dropping inbound NS mesage as NS-VC is disabled"); + } + [] NS_SP.receive { + log("Dropping user primitive as NS-VC is disabled"); + } + } + private altstep as_handle_reset() runs on NSVC_CT { var PDU_NS rf; @@ -808,7 +871,8 @@ [vc_state == NSVC_S_WAIT_RESET] as_wait_reset(); [vc_state == NSVC_S_ALIVE_BLOCKED] as_alive_blocked(); [vc_state == NSVC_S_ALIVE_UNBLOCKED] as_alive_unblocked(); - [] as_allstate(); + [vc_state == NSVC_S_DISABLED] as_disabled(); + [vc_state != NSVC_S_DISABLED] as_allstate(); } } } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22315 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I742ecf01de15e3edbf0719371f0217a5739b7c8e Gerrit-Change-Number: 22315 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 13:15:02 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 25 Jan 2021 13:15:02 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Introduce NS test cases In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, daniel, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22091 to look at the new patch set (#10). Change subject: Introduce NS test cases ...................................................................... Introduce NS test cases Related: SYS#5208 Change-Id: Ic619a374b88879d3116f8f28afb14401c3e3192b --- M library/Osmocom_Gb_Types.ttcn M library/RAW_NS.ttcnpp A ns/NS_Tests.default A ns/NS_Tests.fr.cfg A ns/NS_Tests.ttcn A ns/NS_Tests.udp.cfg A ns/expected-results.xml A ns/gen_links.sh A ns/osmo-ns.fr.cfg A ns/osmo-ns.udp.cfg A ns/regen_makefile.sh 11 files changed, 857 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/91/22091/10 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22091 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ic619a374b88879d3116f8f28afb14401c3e3192b Gerrit-Change-Number: 22091 Gerrit-PatchSet: 10 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 13:16:47 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 25 Jan 2021 13:16:47 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Introduce NS test cases In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22091 ) Change subject: Introduce NS test cases ...................................................................... Patch Set 10: Code-Review+2 (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22091/9/ns/NS_Tests.ttcn File ns/NS_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22091/9/ns/NS_Tests.ttcn at 4 PS9, Line 4: de > > Done -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22091 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ic619a374b88879d3116f8f28afb14401c3e3192b Gerrit-Change-Number: 22091 Gerrit-PatchSet: 10 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 25 Jan 2021 13:16:47 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Comment-In-Reply-To: daniel Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 13:18:19 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 25 Jan 2021 13:18:19 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Introduce NS test cases In-Reply-To: References: Message-ID: daniel has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22091 ) Change subject: Introduce NS test cases ...................................................................... Introduce NS test cases Related: SYS#5208 Change-Id: Ic619a374b88879d3116f8f28afb14401c3e3192b --- M library/Osmocom_Gb_Types.ttcn M library/RAW_NS.ttcnpp A ns/NS_Tests.default A ns/NS_Tests.fr.cfg A ns/NS_Tests.ttcn A ns/NS_Tests.udp.cfg A ns/expected-results.xml A ns/gen_links.sh A ns/osmo-ns.fr.cfg A ns/osmo-ns.udp.cfg A ns/regen_makefile.sh 11 files changed, 857 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified daniel: Looks good to me, approved diff --git a/library/Osmocom_Gb_Types.ttcn b/library/Osmocom_Gb_Types.ttcn index 9e4d702..2bbc508 100644 --- a/library/Osmocom_Gb_Types.ttcn +++ b/library/Osmocom_Gb_Types.ttcn @@ -16,6 +16,14 @@ template (present) BssgpBvci t_BssgpBvciUser := complement (0); + type enumerated OsmoNsDialect { + NS2_DIALECT_UNDEF ('00'H), + NS2_DIALECT_STATIC_ALIVE ('01'H), + NS2_DIALECT_STATIC_RESETBLOCK ('02'H), + NS2_DIALECT_IPACCESS ('03'H), + NS2_DIALECT_SNS ('04'H) + }; + /* TS 48.016 10.3.7 */ type enumerated NsPduType { NS_PDUT_NS_UNITDATA ('00000000'B), diff --git a/library/RAW_NS.ttcnpp b/library/RAW_NS.ttcnpp index c8fc518..81836c7 100644 --- a/library/RAW_NS.ttcnpp +++ b/library/RAW_NS.ttcnpp @@ -257,4 +257,13 @@ } } +/* Receive a NS-BLOCK and ACK it */ +public altstep as_rx_ns_block_ack(boolean oneshot := false, integer idx := 0, template NsCause cause := *, template Nsvci nsvci := *) runs on RAW_NS_CT { + var PDU_NS ns_rf; + [] NSCP[idx].receive(tr_NS_BLOCK(cause, nsvci)) -> value ns_rf { + NSCP[idx].send(ts_NS_BLOCK_ACK(oct2int(ns_rf.pDU_NS_Block.nS_VCI.nS_VCI))); + if (not oneshot) { repeat; } + } +} + } diff --git a/ns/NS_Tests.default b/ns/NS_Tests.default new file mode 100644 index 0000000..951c1c2 --- /dev/null +++ b/ns/NS_Tests.default @@ -0,0 +1,27 @@ +[ORDERED_INCLUDE] +# Common configuration, shared between test suites +"../Common.cfg" + +[LOGGING] +#*.FileMask := LOG_ALL +ConsoleMask := ERROR | WARNING | TESTCASE | TIMEROP_START | USER + +[MODULE_PARAMETERS] +Osmocom_VTY_Functions.mp_prompt_prefix := "OsmoNSdummy"; +StatsD_Checker.mp_enable_stats := true; + +[TESTPORT_PARAMETERS] +*.NSVTY.CTRL_MODE := "client" +*.NSVTY.CTRL_HOSTNAME := "127.0.0.1" +*.NSVTY.CTRL_PORTNUM := "4240" +*.NSVTY.CTRL_LOGIN_SKIPPED := "yes" +*.NSVTY.CTRL_DETECT_SERVER_DISCONNECTED := "yes" +*.NSVTY.CTRL_READMODE := "buffered" +*.NSVTY.CTRL_CLIENT_CLEANUP_LINEFEED := "yes" +*.NSVTY.CTRL_DETECT_CONNECTION_ESTABLISHMENT_RESULT := "yes" +*.NSVTY.PROMPT1 := "OsmoNSdummy> " +*.STATSVTY.PROMPT1 := "OsmoNSdummy> " + +[MAIN_CONTROLLER] + +[EXECUTE] diff --git a/ns/NS_Tests.fr.cfg b/ns/NS_Tests.fr.cfg new file mode 100644 index 0000000..91fb5c5 --- /dev/null +++ b/ns/NS_Tests.fr.cfg @@ -0,0 +1,57 @@ +[ORDERED_INCLUDE] +# Common configuration, shared between test suites +"../Common.cfg" +# testsuite specific configuration, not expected to change +"./NS_Tests.default" + +[LOGGING] + +[MODULE_PARAMETERS] +NS_Tests.mp_dialect := NS2_DIALECT_IPACCESS +NS_Tests.mp_nsconfig := { + nsei := 2001, + role_sgsn := false, + handle_sns := false, + nsvc := { + { + provider := { + fr := { + netdev := "hdlc1", + dlci := 16 + } + }, + nsvci := 1 + }, { + provider := { + fr := { + netdev := "hdlc2", + dlci := 17 + } + }, + nsvci := 2 + }, { + provider := { + fr := { + netdev := "hdlc3", + dlci := 18 + } + }, + nsvci := 3 + }, { + provider := { + fr := { + netdev := "hdlc4", + dlci := 19 + } + }, + nsvci := 4 + } + } +} + +[TESTPORT_PARAMETERS] + +[MAIN_CONTROLLER] + +[EXECUTE] +NS_Tests.control diff --git a/ns/NS_Tests.ttcn b/ns/NS_Tests.ttcn new file mode 100644 index 0000000..ef8be2a --- /dev/null +++ b/ns/NS_Tests.ttcn @@ -0,0 +1,500 @@ +module NS_Tests { + +/* Osmocom NS test suite for NS over framerelay or udp ip.access style in TTCN-3 + * (C) 2021 sysmocom s.f.m.c. GmbH + * Author: Alexander Couzens + * All rights reserved. + * + * Released under the terms of GNU General Public License, Version 2 or + * (at your option) any later version. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +import from General_Types all; +import from Osmocom_Types all; +import from Osmocom_Gb_Types all; +import from NS_Types all; +import from BSSGP_Types all; +import from UD_Types all; +import from NS_Emulation all; +import from Native_Functions all; +import from IPL4asp_Types all; +import from RAW_NS all; +import from Osmocom_VTY_Functions all; +import from TELNETasp_PortType all; + +modulepar { + OsmoNsDialect mp_dialect := NS2_DIALECT_IPACCESS; + NSConfiguration mp_nsconfig := { + nsei := 96, + role_sgsn := false, + handle_sns := false, + nsvc := { + { + provider := { + ip := { + address_family := AF_INET, + local_udp_port := 21000, + local_ip := "127.0.0.1", + remote_udp_port := 23000, + remote_ip := "127.0.0.1" + } + }, + nsvci := 97 + } + } + }; +} + +type component RAW_Test_CT extends RAW_NS_CT { + port TELNETasp_PT NSVTY; +} + +private function f_init_vty() runs on RAW_Test_CT { + map(self:NSVTY, system:NSVTY); + f_vty_set_prompts(NSVTY); + f_vty_transceive(NSVTY, "enable"); + f_vty_transceive(NSVTY, "nsvc nsei " & int2str(mp_nsconfig.nsei) & " force-unconfigured"); +} + +/* ensure no matching message is received within 'tout' */ +function f_ensure_no_ns(integer idx := 0, boolean answer_alive := false, float tout := 3.0) +runs on RAW_Test_CT { + var PDU_NS nrf; + + timer T := tout; + var default d := activate(ax_rx_fail_on_any_ns(idx)); + T.start; + alt { + [answer_alive] as_rx_alive_tx_ack(); + [] T.timeout { + setverdict(pass); + } + } + deactivate(d); +} + +function f_fails_except_reset(integer idx := 0, float tout := 15.0) +runs on RAW_Test_CT { + var PDU_NS nrf; + timer T := 15.0; + T.start; + alt { + [] NSCP[idx].receive(tr_NS_RESET(*, *, *)) { + repeat; + } + [] NSCP[idx].receive(PDU_NS: ?) -> value nrf { + setverdict(fail, "Received unexpected NS: ", nrf); + mtc.stop; + } + [] T.timeout { + setverdict(pass); + } + } +} + +testcase TC_tx_reset() runs on RAW_Test_CT { + f_init_vty(); + f_init_ns_codec(mp_nsconfig, guard_secs := 10.0); + + /* do a NS Reset procedure */ + f_outgoing_ns_reset(); + + setverdict(pass); + f_sleep(1.0); +} + +testcase TC_tx_reset_tx_alive() runs on RAW_Test_CT { + f_init_vty(); + f_init_ns_codec(mp_nsconfig, guard_secs := 10.0); + + /* do a NS Reset procedure */ + f_outgoing_ns_reset(); + + /* check outgoing NS procedure */ + f_outgoing_ns_alive(); + + setverdict(pass); + f_sleep(1.0); +} + +testcase TC_tx_reset_rx_alive() runs on RAW_Test_CT { + f_init_vty(); + f_init_ns_codec(mp_nsconfig, guard_secs := 10.0); + + /* do a NS Reset procedure */ + f_outgoing_ns_reset(); + + activate(as_rx_ns_unblock_ack()); + /* check outgoing NS procedure */ + as_rx_alive_tx_ack(oneshot := true); + + setverdict(pass); + f_sleep(1.0); +} + +/* 48.016 7.2 unblock procedure + * + * TTCN -> NS: reset + * TTCN <- NS: reset ack + * TTCN -> NS: unblock + * TTCN <- NS: unblock ack + */ +testcase TC_tx_unblock() runs on RAW_Test_CT { + f_init_vty(); + f_init_ns_codec(mp_nsconfig, guard_secs := 30.0); + + /* do a NS Reset procedure */ + f_outgoing_ns_reset(); + /* send alive acks */ + activate(as_rx_alive_tx_ack()); + + f_outgoing_ns_unblock(); + setverdict(pass); + f_sleep(1.0); +} + +/* 48.016 7.2 tx unblock retries + * + * TTCN -> NS: reset + * TTCN <- NS: reset ack + * TTCN -> NS: unblock + * TTCN <- NS: unblock ack + * TTCN -> NS: unblock + * TTCN <- NS: unblock ack + * TTCN -> NS: unblock + * TTCN <- NS: unblock ack + */ +testcase TC_tx_unblock_retries() runs on RAW_Test_CT { + f_init_vty(); + f_init_ns_codec(mp_nsconfig, guard_secs := 30.0); + + /* do a NS Reset procedure */ + f_outgoing_ns_reset(); + /* send alive acks */ + activate(as_rx_alive_tx_ack()); + + f_outgoing_ns_unblock(); + f_outgoing_ns_unblock(); + f_outgoing_ns_unblock(); + setverdict(pass); + f_sleep(1.0); +} + +/* 48.016 7.2 block procedure + * + * TTCN -> NS: reset + * TTCN <- NS: reset ack + * TTCN -> NS: unblock + * TTCN <- NS: unblock ack + * TTCN -> NS: block + * TTCN <- NS: block ack + */ +testcase TC_tx_block() runs on RAW_Test_CT { + f_init_vty(); + f_init_ns_codec(mp_nsconfig, guard_secs := 30.0); + + /* do a NS Reset procedure */ + f_outgoing_ns_reset(); + activate(as_rx_alive_tx_ack()); + + f_outgoing_ns_unblock(); + f_sleep(1.0); + + f_outgoing_ns_block(NS_CAUSE_EQUIPMENT_FAILURE); + setverdict(pass); + f_sleep(1.0); +} + +/* 48.016 7.2 block procedure by vty + * + * TTCN -> NS: reset + * TTCN <- NS: reset ack + * TTCN -> NS: unblock + * TTCN <- NS: unblock ack + * vty: block nsvc + * TTCN <- NS: block + * TTCN -> NS: block ack + */ +function tx_block_by_vty(float guard_secs := 30.0) runs on RAW_Test_CT { + f_init_vty(); + f_init_ns_codec(mp_nsconfig, guard_secs := guard_secs); + + /* do a NS Reset procedure */ + f_outgoing_ns_reset(); + activate(as_rx_alive_tx_ack()); + + f_outgoing_ns_unblock(); + f_sleep(1.0); + + f_vty_transceive(NSVTY, "nsvc " & int2str(mp_nsconfig.nsvc[0].nsvci) & " block"); + + alt { + [] as_rx_ns_block_ack(oneshot := true, nsvci := mp_nsconfig.nsvc[0].nsvci); + } + setverdict(pass); +} + +testcase TC_tx_block_by_vty() runs on RAW_Test_CT { + tx_block_by_vty(30.0); + f_sleep(1.0); +} + +/* 48.016 7.2 block precedure by vty and reset the NSVC. + * The NSVC should be still blocked after the reset. + */ +testcase TC_tx_block_by_vty_reset() runs on RAW_Test_CT { + timer T := 10.0; + + tx_block_by_vty(60.0); + f_outgoing_ns_reset(); + + var default d := activate(ax_rx_fail_on_any_ns()); + T.start; + alt { + [] as_rx_alive_tx_ack(); + [] T.timeout { setverdict(pass); } + } + deactivate(d); +} + +/* 48.016 7.4.1 ignore unexpected NS_ALIVE ACK */ +testcase TC_no_reset_alive_ack() runs on RAW_Test_CT { + f_init_vty(); + f_init_ns_codec(mp_nsconfig, guard_secs := 30.0); + + NSCP[0].send(t_NS_ALIVE_ACK); + f_fails_except_reset(); + setverdict(pass); + f_sleep(1.0); +} + +/* 48.016 7.3.1 NS_RESET with wrong nsei */ +testcase TC_reset_wrong_nsei() runs on RAW_Test_CT { + f_init_vty(); + f_init_ns_codec(mp_nsconfig, guard_secs := 30.0); + + NSCP[0].send(ts_NS_RESET(NS_CAUSE_EQUIPMENT_FAILURE, g_nsconfig.nsvc[0].nsvci, g_nsconfig.nsei + 20)); + NSCP[0].receive(tr_NS_RESET_ACK(g_nsconfig.nsvc[0].nsvci, g_nsconfig.nsei)); + f_fails_except_reset(); + setverdict(pass); + f_sleep(1.0); +} + +/* 48.016 7.3.1 NS_RESET with wrong nsvci */ +testcase TC_reset_wrong_nsvci() runs on RAW_Test_CT { + f_init_vty(); + f_init_ns_codec(mp_nsconfig, guard_secs := 30.0); + + NSCP[0].send(ts_NS_RESET(NS_CAUSE_EQUIPMENT_FAILURE, g_nsconfig.nsvc[0].nsvci + 20, g_nsconfig.nsei)); + NSCP[0].receive(tr_NS_RESET_ACK(g_nsconfig.nsvc[0].nsvci, g_nsconfig.nsei)); + f_fails_except_reset(); + setverdict(pass); + f_sleep(1.0); +} + +/* 48.016 7.3.1 NS_RESET with wrong nsvci + nsei */ +testcase TC_reset_wrong_nsei_nsvci() runs on RAW_Test_CT { + f_init_vty(); + f_init_ns_codec(mp_nsconfig, guard_secs := 30.0); + + NSCP[0].send(ts_NS_RESET(NS_CAUSE_EQUIPMENT_FAILURE, g_nsconfig.nsvc[0].nsvci + 20, g_nsconfig.nsei + 20)); + NSCP[0].receive(tr_NS_RESET_ACK(g_nsconfig.nsvc[0].nsvci, g_nsconfig.nsei)); + f_fails_except_reset(); + setverdict(pass); + f_sleep(1.0); +} + +/* 48.016 7.3.1 NS_RESET_ACK with wrong nsei */ +testcase TC_reset_ack_wrong_nsei() runs on RAW_Test_CT { + f_init_vty(); + f_init_ns_codec(mp_nsconfig, guard_secs := 30.0); + + NSCP[0].receive(tr_NS_RESET(*, g_nsconfig.nsvc[0].nsvci, g_nsconfig.nsei)); + NSCP[0].send(ts_NS_RESET_ACK(g_nsconfig.nsvc[0].nsvci, g_nsconfig.nsei + 20)); + f_fails_except_reset(); + setverdict(pass); + f_sleep(1.0); +} + +/* 48.016 7.3.1 NS_RESET_ACK with wrong nsvci */ +testcase TC_reset_ack_wrong_nsvci() runs on RAW_Test_CT { + f_init_vty(); + f_init_ns_codec(mp_nsconfig, guard_secs := 30.0); + + NSCP[0].receive(tr_NS_RESET(*, g_nsconfig.nsvc[0].nsvci, g_nsconfig.nsei)); + NSCP[0].send(ts_NS_RESET_ACK(g_nsconfig.nsvc[0].nsvci + 20, g_nsconfig.nsei)); + f_fails_except_reset(); + setverdict(pass); + f_sleep(1.0); +} + +/* 48.016 7.3.1 NS_RESET_ACK with wrong nsvci + nsei */ +testcase TC_reset_ack_wrong_nsei_nsvci() runs on RAW_Test_CT { + f_init_vty(); + f_init_ns_codec(mp_nsconfig, guard_secs := 30.0); + + NSCP[0].receive(tr_NS_RESET(*, g_nsconfig.nsvc[0].nsvci, g_nsconfig.nsei)); + NSCP[0].send(ts_NS_RESET_ACK(g_nsconfig.nsvc[0].nsvci + 20, g_nsconfig.nsei + 20)); + f_fails_except_reset(); + setverdict(pass); + f_sleep(1.0); +} + +/* 48.016 7.3.1 ignore unexpected NS_RESET_ACK after NS_RESET+ALIVE */ +testcase TC_ignore_reset_ack() runs on RAW_Test_CT { + f_init_vty(); + f_init_ns_codec(mp_nsconfig, guard_secs := 30.0); + + /* do a NS Reset procedure */ + f_outgoing_ns_reset(); + + /* unblock and alive */ + alt { + [] as_rx_ns_unblock_ack(oneshot := true); + [] as_rx_alive_tx_ack(); + } + + NSCP[0].send(ts_NS_RESET_ACK(g_nsconfig.nsvc[0].nsvci, g_nsconfig.nsei)); + f_ensure_no_ns(answer_alive := true, tout := 15.0); + setverdict(pass); + f_sleep(1.0); +} + +/* 48.016 7.3 NS_RESET retries */ +testcase TC_reset_retries() runs on RAW_Test_CT { + var integer reset := 0; + + f_init_vty(); + f_init_ns_codec(mp_nsconfig, guard_secs := 30.0); + + alt { + [] NSCP[0].receive(tr_NS_RESET(*, *, *)) { + reset := reset + 1; + if (reset <= 3) { + repeat; + } else { + setverdict(pass); + } + } + } + + f_sleep(1.0); +} + +/* 48.016 behave RESET_ACK got dropped + * TTCN -> NS: reset + * TTCN <- NS: reset ack + * TTCN <- NS: unblock + * TTCN -> NS: reset + * TTCN <- NS: reset ack + * TTCN <- NS: unblock + */ +testcase TC_reset_on_block_reset() runs on RAW_Test_CT { + var integer i := 0; + + f_init_vty(); + f_init_ns_codec(mp_nsconfig, guard_secs := 30.0); + + f_outgoing_ns_reset(); + activate(as_rx_alive_tx_ack()); + + alt { + [] NSCP[0].receive(t_NS_UNBLOCK) { + NSCP[0].send(ts_NS_RESET(NS_CAUSE_EQUIPMENT_FAILURE, g_nsconfig.nsvc[0].nsvci, g_nsconfig.nsei)); + i := i + 1; + if (i < 3) { + repeat; + } else { + setverdict(pass); + } + } + [] NSCP[0].receive(tr_NS_RESET_ACK(g_nsconfig.nsvc[0].nsvci, g_nsconfig.nsei)) { repeat; } + } + + f_sleep(1.0); +} + +/* 48.016 7.4 test procedure for frame relay with a single nsvci */ +function f_alive_retries_single(boolean reset := false) runs on RAW_Test_CT { + f_init_vty(); + f_init_ns_codec(mp_nsconfig, guard_secs := 60.0); + + /* do a NS Reset procedure */ + f_outgoing_ns_reset(); + + alt { + [] as_rx_ns_unblock_ack(oneshot := true); + [] as_rx_alive_tx_ack(); + } + + /* wait for one alive and answer it */ + as_rx_alive_tx_ack(oneshot := true); + NSCP[0].receive(t_NS_ALIVE); + NSCP[0].receive(t_NS_ALIVE); + NSCP[0].receive(t_NS_ALIVE); + NSCP[0].receive(t_NS_ALIVE); + if (reset) { + NSCP[0].receive(tr_NS_RESET(*, g_nsconfig.nsvc[0].nsvci, g_nsconfig.nsei)); + } else { + f_ensure_no_ns(tout := 10.0); + } + + setverdict(pass); + f_sleep(1.0); +} + +testcase TC_alive_retries_single_reset() runs on RAW_Test_CT { + f_alive_retries_single(reset := true); +} + +testcase TC_alive_retries_single_no_resp() runs on RAW_Test_CT { + f_alive_retries_single(reset := false); +} + +control { + execute( TC_tx_reset() ); + + /* 48.016 7.2 Block procedure */ + execute( TC_tx_block() ); + execute( TC_tx_block_by_vty() ); + execute( TC_tx_block_by_vty_reset() ); + // execute( TC_block_other_nsvc() ); // reset, unblock, sleep(1), block over another nsvci + /* 48.016 7.2 Unblock procedure */ + execute( TC_tx_unblock() ); + execute( TC_tx_unblock_retries() ); + // execute( TC_rx_unblock_tx_unblock() ); // wait for an rx unblock pdu, send an unblock pdu, expect unblock ack pdu + // execute( TC_unblockable() ); // block a NS-VCI via vty, try block procedure + + /* 48.016 7.2.1 Block Abnormal Condition */ + /* 48.016 7.2.1 Unblock Abnormal Condition */ + + /* 48.016 7.3.1 Abnormal Condition */ + if (mp_dialect == NS2_DIALECT_STATIC_RESETBLOCK) { + execute( TC_reset_wrong_nsei() ); + execute( TC_reset_wrong_nsvci() ); + execute( TC_reset_wrong_nsei_nsvci() ); + execute( TC_reset_ack_wrong_nsei() ); + execute( TC_reset_ack_wrong_nsvci() ); + execute( TC_reset_ack_wrong_nsei_nsvci() ); + execute( TC_reset_retries() ); + execute( TC_reset_on_block_reset() ); + } + execute( TC_ignore_reset_ack() ); + + /* 48.016 7.4 Test procedure on frame relay */ + execute( TC_tx_reset_tx_alive() ); + execute( TC_tx_reset_rx_alive() ); + + /* 48.016 7.4.1 Abnormal Condition */ + if (mp_dialect == NS2_DIALECT_STATIC_RESETBLOCK) { + // execute( TC_alive_retries_multi() ); // check if alive retries works and block over an alive nsvc + execute( TC_alive_retries_single_reset() ); + } else if (mp_dialect == NS2_DIALECT_IPACCESS) { + execute( TC_alive_retries_single_no_resp() ); + } + execute( TC_no_reset_alive_ack() ); +} + +} diff --git a/ns/NS_Tests.udp.cfg b/ns/NS_Tests.udp.cfg new file mode 100644 index 0000000..f040998 --- /dev/null +++ b/ns/NS_Tests.udp.cfg @@ -0,0 +1,34 @@ +[ORDERED_INCLUDE] +# Common configuration, shared between test suites +"../Common.cfg" +# testsuite specific configuration, not expected to change +"./NS_Tests.default" + +[LOGGING] + +[MODULE_PARAMETERS] +NS_Tests.mp_nsconfig := { + nsei := 1234, + nsvc := { + { + provider := { + ip := { + address_family := AF_INET, + local_ip := "127.0.0.1", + local_udp_port := 22000, + remote_ip := "127.0.0.1", + remote_udp_port := 23000 + } + }, + nsvci := 1234 + } + } +} +NS_Tests.mp_dialect := NS2_DIALECT_STATIC_RESETBLOCK + +[TESTPORT_PARAMETERS] + +[MAIN_CONTROLLER] + +[EXECUTE] +NS_Tests.control diff --git a/ns/expected-results.xml b/ns/expected-results.xml new file mode 100644 index 0000000..459744d --- /dev/null +++ b/ns/expected-results.xml @@ -0,0 +1,4 @@ + + + + diff --git a/ns/gen_links.sh b/ns/gen_links.sh new file mode 100755 index 0000000..6ebee9d --- /dev/null +++ b/ns/gen_links.sh @@ -0,0 +1,61 @@ +#!/bin/bash + +BASEDIR=../deps + +. ../gen_links.sh.inc + +DIR=$BASEDIR/titan.TestPorts.UNIX_DOMAIN_SOCKETasp/src +FILES="UD_PT.cc UD_PT.hh UD_PortType.ttcn UD_Types.ttcn" +gen_links $DIR $FILES + +DIR=$BASEDIR/titan.Libraries.TCCUsefulFunctions/src +FILES="TCCInterface_Functions.ttcn TCCConversion_Functions.ttcn TCCConversion.cc TCCInterface.cc TCCInterface_ip.h" +gen_links $DIR $FILES + +DIR=$BASEDIR/titan.TestPorts.Common_Components.Socket-API/src +FILES="Socket_API_Definitions.ttcn" +gen_links $DIR $FILES + +DIR=$BASEDIR/titan.TestPorts.IPL4asp/src +FILES="IPL4asp_Functions.ttcn IPL4asp_PT.cc IPL4asp_PT.hh IPL4asp_PortType.ttcn IPL4asp_Types.ttcn IPL4asp_discovery.cc IPL4asp_protocol_L234.hh" +gen_links $DIR $FILES + +DIR=$BASEDIR/titan.ProtocolModules.NS_v7.3.0/src +FILES="NS_Types.ttcn" +gen_links $DIR $FILES + +DIR=$BASEDIR/titan.ProtocolModules.BSSGP_v13.0.0/src +FILES="BSSGP_EncDec.cc BSSGP_Types.ttcn" +gen_links $DIR $FILES + +DIR=$BASEDIR/titan.ProtocolModules.MobileL3_v13.4.0/src +FILES="MobileL3_CC_Types.ttcn MobileL3_CommonIE_Types.ttcn MobileL3_GMM_SM_Types.ttcn MobileL3_MM_Types.ttcn MobileL3_RRM_Types.ttcn MobileL3_SMS_Types.ttcn MobileL3_SS_Types.ttcn MobileL3_Types.ttcn" +gen_links $DIR $FILES + +DIR=$BASEDIR/titan.ProtocolModules.LLC_v7.1.0/src +FILES="LLC_EncDec.cc LLC_Types.ttcn" +gen_links $DIR $FILES + +DIR=$BASEDIR/titan.ProtocolModules.SNDCP_v7.0.0/src +FILES="SNDCP_Types.ttcn" +gen_links $DIR $FILES + +DIR=$BASEDIR/titan.TestPorts.AF_PACKET/src +FILES="AF_PACKET_PT.cc AF_PACKET_PT.hh AF_PACKET_PortType.ttcn AF_PACKET_PortTypes.ttcn " +FILES+="FrameRelay_Types.ttcn FrameRelay_CodecPort.ttcn FrameRelay_Emulation.ttcn Q931_Types.ttcn Q933_Types.ttcn " +gen_links $DIR $FILES + +DIR=$BASEDIR/titan.TestPorts.TELNETasp/src +FILES="TELNETasp_PT.cc TELNETasp_PT.hh TELNETasp_PortType.ttcn" +gen_links $DIR $FILES + +DIR=../library +FILES="Misc_Helpers.ttcn General_Types.ttcn Osmocom_VTY_Functions.ttcn Native_Functions.ttcn Native_FunctionDefs.cc GSM_Types.ttcn GSM_RR_Types.ttcn Osmocom_Types.ttcn RLCMAC_Templates.ttcn RLCMAC_Types.ttcn RLCMAC_CSN1_Templates.ttcn RLCMAC_CSN1_Types.ttcn RLCMAC_EncDec.cc " +FILES+="StatsD_Types.ttcn StatsD_CodecPort.ttcn StatsD_CodecPort_CtrlFunct.ttcn StatsD_CodecPort_CtrlFunctdef.cc StatsD_Checker.ttcn " +FILES+="NS_Provider_IPL4.ttcn NS_Provider_FR.ttcn NS_Emulation.ttcnpp " +FILES+="BSSGP_Emulation.ttcnpp Osmocom_Gb_Types.ttcn " +FILES+="LLC_Templates.ttcn L3_Templates.ttcn L3_Common.ttcn " +FILES+="PCUIF_Types.ttcn PCUIF_CodecPort.ttcn RAW_NS.ttcnpp " +gen_links $DIR $FILES + +ignore_pp_results diff --git a/ns/osmo-ns.fr.cfg b/ns/osmo-ns.fr.cfg new file mode 100644 index 0000000..d1109ab --- /dev/null +++ b/ns/osmo-ns.fr.cfg @@ -0,0 +1,55 @@ +log gsmtap 127.0.0.1 + logging level set-all debug + +log stderr + logging filter all 1 + logging print level 1 + logging print category 1 + logging print category-hex 0 + logging print file basename last + logging print extended-timestamp 1 + logging level set-all debug +! +stats interval 0 +stats reporter statsd + prefix TTCN3 + level subscriber + remote-ip 127.0.0.1 + remote-port 8125 + flush-period 1 + mtu 1024 + enable + +line vty + no login + bind 127.0.0.1 + +ns + bind fr hdlcnet1 + fr hdlcnet1 frnet + bind fr hdlcnet2 + fr hdlcnet2 frnet + bind fr hdlcnet3 + fr hdlcnet3 frnet + bind fr hdlcnet4 + fr hdlcnet4 frnet + bind fr hdlcnet5 + fr hdlcnet5 frnet + bind fr hdlcnet6 + fr hdlcnet6 frnet + bind fr hdlcnet7 + fr hdlcnet7 frnet + bind fr hdlcnet8 + fr hdlcnet8 frnet + nse 2001 + nsvc fr hdlcnet1 dlci 16 nsvci 1 + nsvc fr hdlcnet2 dlci 17 nsvci 2 + nsvc fr hdlcnet3 dlci 18 nsvci 3 + nsvc fr hdlcnet4 dlci 19 nsvci 4 + nse 2002 + nsvc fr hdlcnet5 dlci 20 nsvci 5 + nsvc fr hdlcnet6 dlci 21 nsvci 6 + nse 2003 + nsvc fr hdlcnet7 dlci 22 nsvci 7 + nsvc fr hdlcnet8 dlci 23 nsvci 8 + diff --git a/ns/osmo-ns.udp.cfg b/ns/osmo-ns.udp.cfg new file mode 100644 index 0000000..28237c5 --- /dev/null +++ b/ns/osmo-ns.udp.cfg @@ -0,0 +1,93 @@ +! +! OsmoNSdummy (1.4.0.326-f57c-dirty) configuration saved from vty +!! +! +log stderr + logging filter all 1 + logging color 0 + logging print category-hex 0 + logging print category 1 + logging print extended-timestamp 1 + logging print level 1 + logging print file basename + logging level force-all info + logging level lglobal debug + logging level llapd debug + logging level linp debug + logging level lmux debug + logging level lmi debug + logging level lmib debug + logging level lsms debug + logging level lctrl debug + logging level lgtp debug + logging level lstats debug + logging level lgsup debug + logging level loap debug + logging level lss7 debug + logging level lsccp debug + logging level lsua debug + logging level lm3ua debug + logging level lmgcp debug + logging level ljibuf debug + logging level lrspro debug + logging level lns debug + logging level lbssgp debug +log gsmtap 127.0.0.1 + logging filter all 0 + logging color 1 + logging print category-hex 1 + logging print category 0 + logging timestamp 0 + logging print file 1 + logging level lglobal debug + logging level llapd debug + logging level linp debug + logging level lmux debug + logging level lmi debug + logging level lmib debug + logging level lsms debug + logging level lctrl debug + logging level lgtp debug + logging level lstats debug + logging level lgsup debug + logging level loap debug + logging level lss7 debug + logging level lsccp debug + logging level lsua debug + logging level lm3ua debug + logging level lmgcp debug + logging level ljibuf debug + logging level lrspro debug + logging level lns debug + logging level lbssgp debug +! +stats reporter statsd + disable + remote-ip 127.0.0.1 + remote-port 8125 + mtu 1024 + level subscriber + prefix TTCN3 + flush-period 1 + enable +stats interval 0 +! +line vty + no login +! +ns + timer tns-block 3 + timer tns-block-retries 3 + timer tns-reset 3 + timer tns-reset-retries 3 + timer tns-test 12 + timer tns-alive 3 + timer tns-alive-retries 3 + timer tsns-prov 3 + timer tsns-size-retries 3 + timer tsns-config-retries 3 + bind udp local + listen 127.0.0.1 23000 + accept-ipaccess + nse 1234 + nsvc ipa local 127.0.0.1 22000 nsvci 1234 diff --git a/ns/regen_makefile.sh b/ns/regen_makefile.sh new file mode 100755 index 0000000..fece5d8 --- /dev/null +++ b/ns/regen_makefile.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +FILES="*.ttcn *.ttcnpp BSSGP_EncDec.cc IPL4asp_PT.cc IPL4asp_discovery.cc TCCConversion.cc TCCInterface.cc UD_PT.cc RLCMAC_EncDec.cc LLC_EncDec.cc TELNETasp_PT.cc Native_FunctionDefs.cc StatsD_CodecPort_CtrlFunctdef.cc " + +FILES+="AF_PACKET_PT.cc AF_PACKET_PT.hh " + +export CPPFLAGS_TTCN3="-DBSSGP_EM_L3 -DNS_EMULATION_FR" + +../regen-makefile.sh NS_Tests.ttcn $FILES -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22091 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ic619a374b88879d3116f8f28afb14401c3e3192b Gerrit-Change-Number: 22091 Gerrit-PatchSet: 10 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 13:39:18 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 25 Jan 2021 13:39:18 +0000 Subject: Change in osmo-pcu[master]: encoding: fix typos References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22421 ) Change subject: encoding: fix typos ...................................................................... encoding: fix typos Change-Id: I0867935ad08d6e49c62e061742d3d76eeac35844 --- M src/encoding.cpp 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/21/22421/1 diff --git a/src/encoding.cpp b/src/encoding.cpp index f605ca2..7995e11 100644 --- a/src/encoding.cpp +++ b/src/encoding.cpp @@ -628,7 +628,7 @@ if (!use_egprs) { PUA_GPRS_t *gprs = &pua->u.PUA_GPRS_Struct; - /* Use the commanded CS/MSC value during the content resolution */ + /* Use the commanded CS/MCS value during the content resolution */ gprs->CHANNEL_CODING_COMMAND = mcs_chan_code(tbf->current_cs()); gprs->TLLI_BLOCK_CHANNEL_CODING = 0x01; // ^^^ @@ -645,7 +645,7 @@ PUA_EGPRS_00_t *egprs = &pua->u.PUA_EGPRS_Struct.u.PUA_EGPRS_00; pua->u.PUA_EGPRS_Struct.UnionType = 0x00; // 'Normal' EGPRS, not EGPRS2 - /* Use the commanded CS/MSC value during the content resolution */ + /* Use the commanded CS/MCS value during the content resolution */ egprs->EGPRS_CHANNEL_CODING_COMMAND = mcs_chan_code(tbf->current_cs()); egprs->TLLI_BLOCK_CHANNEL_CODING = 0x01; // ^^^ egprs->RESEGMENT = 0x01; // Enable segmentation -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22421 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I0867935ad08d6e49c62e061742d3d76eeac35844 Gerrit-Change-Number: 22421 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 13:39:35 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 25 Jan 2021 13:39:35 +0000 Subject: Change in osmo-pcu[master]: encoding: fix typos in comment In-Reply-To: References: Message-ID: pespin has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/osmo-pcu/+/22421 ) Change subject: encoding: fix typos in comment ...................................................................... encoding: fix typos in comment Change-Id: I0867935ad08d6e49c62e061742d3d76eeac35844 --- M src/encoding.cpp 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/21/22421/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22421 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I0867935ad08d6e49c62e061742d3d76eeac35844 Gerrit-Change-Number: 22421 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-CC: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 14:37:10 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 25 Jan 2021 14:37:10 +0000 Subject: Change in libosmocore[master]: tests: gprs_ns2: add unitdata unit test References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22422 ) Change subject: tests: gprs_ns2: add unitdata unit test ...................................................................... tests: gprs_ns2: add unitdata unit test test sending unitdata over a alive and blocked NSVC. Change-Id: I2c44b711d004d2ca08e05d4f54519ad8dbd77c27 --- M tests/gb/gprs_ns2_test.c M tests/gb/gprs_ns2_test.ok 2 files changed, 148 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/22/22422/1 diff --git a/tests/gb/gprs_ns2_test.c b/tests/gb/gprs_ns2_test.c index 44c9ce4..10f430d 100644 --- a/tests/gb/gprs_ns2_test.c +++ b/tests/gb/gprs_ns2_test.c @@ -39,9 +39,18 @@ } static struct log_info info = {}; +static struct osmo_wqueue *unitdata = NULL; static int ns_prim_cb(struct osmo_prim_hdr *oph, void *ctx) { + OSMO_ASSERT(oph->sap == SAP_NS); + if (oph->msg) { + if (oph->primitive == PRIM_NS_UNIT_DATA) { + osmo_wqueue_enqueue(unitdata, oph->msg); + } else { + msgb_free(oph->msg); + } + } return 0; } @@ -114,6 +123,46 @@ return bind; } +static void free_loopback(struct gprs_ns2_vc_bind *bind) {} + +struct gprs_ns2_vc_driver vc_driver_loopback = { + .name = "loopback dummy", + .free_bind = free_loopback, +}; + +/* loopback the msg */ +static int loopback_sendmsg(struct gprs_ns2_vc *nsvc, struct msgb *msg) +{ + struct gprs_ns2_vc *target = nsvc->priv; + return ns2_recv_vc(target, msg); +} + +/* create a loopback nsvc object which can be used with ns2_tx_* functions. it's not fully registered etc. */ +static struct gprs_ns2_vc *loopback_nsvc(struct gprs_ns2_vc_bind *bind, struct gprs_ns2_vc *target) +{ + struct gprs_ns2_vc *nsvc = talloc_zero(bind, struct gprs_ns2_vc); + memcpy(nsvc, target, sizeof(struct gprs_ns2_vc)); + nsvc->bind = bind; + nsvc->priv = target; + return nsvc; +} + +/* a loop back bind to use the tx_ functions from gprs_ns2_message.c */ +static struct gprs_ns2_vc_bind *loopback_bind(struct gprs_ns2_inst *nsi, const char *name) +{ + struct gprs_ns2_vc_bind *bind = talloc_zero(nsi, struct gprs_ns2_vc_bind); + OSMO_ASSERT(bind); + bind->name = talloc_strdup(bind, name); + bind->driver = &vc_driver_loopback; + bind->ll = GPRS_NS2_LL_UDP; + bind->transfer_capability = 99; + bind->nsi = nsi; + bind->send_vc = loopback_sendmsg; + INIT_LLIST_HEAD(&bind->nsvc); + llist_add(&bind->list, &nsi->binding); + return bind; +} + void test_nse_transfer_cap(void *ctx) { struct gprs_ns2_inst *nsi; @@ -233,6 +282,93 @@ printf("--- Finish NSE block unblock nsvc\n"); } +static struct msgb *generate_unitdata(const char *msgname) +{ + struct gprs_ns_hdr *nsh; + struct msgb *msg = msgb_alloc_headroom(NS_ALLOC_SIZE, NS_ALLOC_HEADROOM, msgname); + OSMO_ASSERT(msg); + + msg->l2h = msgb_put(msg, sizeof(*nsh) + 6); + nsh = (struct gprs_ns_hdr *) msg->l2h; + nsh->pdu_type = NS_PDUT_UNITDATA; + nsh->data[0] = 0; /* sdu control */ + nsh->data[1] = 0; /* msb bvci */ + nsh->data[2] = 12; /* lsb bvci */ + nsh->data[3] = 0xab; /* first data byte */ + nsh->data[4] = 0xcd; + nsh->data[5] = 0xef; + + return msg; +} + +void test_unitdata(void *ctx) +{ + struct gprs_ns2_inst *nsi; + struct gprs_ns2_vc_bind *bind[2]; + struct gprs_ns2_vc_bind *loopbind; + struct gprs_ns2_nse *nse; + struct gprs_ns2_vc *nsvc[2]; + struct gprs_ns2_vc *loop[2]; + + struct msgb *msg, *other; + char idbuf[32]; + int i; + + printf("--- Testing unitdata test\n"); + osmo_wqueue_clear(unitdata); + printf("---- Create NSE + Binds\n"); + nsi = gprs_ns2_instantiate(ctx, ns_prim_cb, NULL); + bind[0] = dummy_bind(nsi, "bblock1"); + bind[1] = dummy_bind(nsi, "bblock2"); + loopbind = loopback_bind(nsi, "loopback"); + nse = gprs_ns2_create_nse(nsi, 1004, GPRS_NS2_LL_UDP, NS2_DIALECT_STATIC_RESETBLOCK); + OSMO_ASSERT(nse); + + for (i=0; i<2; i++) { + printf("---- Create NSVC[%d]\n", i); + snprintf(idbuf, sizeof(idbuf), "NSE%05u-dummy-%i", nse->nsei, i); + nsvc[i] = ns2_vc_alloc(bind[i], nse, false, NS2_VC_MODE_BLOCKRESET, idbuf); + loop[i] = loopback_nsvc(loopbind, nsvc[i]); + OSMO_ASSERT(nsvc[i]); + gprs_ns2_vc_fsm_start(nsvc[i]); + OSMO_ASSERT(!gprs_ns2_vc_is_unblocked(nsvc[i])); + ns2_tx_reset(loop[i], NS_CAUSE_OM_INTERVENTION); + ns2_tx_unblock(loop[i]); + OSMO_ASSERT(gprs_ns2_vc_is_unblocked(nsvc[i])); + } + + /* both nsvcs are unblocked and alive */ + printf("---- Send UNITDATA to NSVC[0]\n"); + msg = generate_unitdata("test_unitdata"); + ns2_recv_vc(nsvc[0], msg); + other = msgb_dequeue(&unitdata->msg_queue); + OSMO_ASSERT(msg == other); + other = msgb_dequeue(&unitdata->msg_queue); + OSMO_ASSERT(NULL == other); + + printf("---- Send Block NSVC[0]\n"); + ns2_vc_block(nsvc[0]); + ns2_tx_block_ack(loop[0]); + + /* try to receive a unitdata - this should be dropped & freed by NS */ + printf("---- Try to receive over blocked NSVC[0]\n"); + ns2_recv_vc(nsvc[0], msg); + other = msgb_dequeue(&unitdata->msg_queue); + OSMO_ASSERT(NULL == other); + + /* nsvc[1] should be still good */ + printf("---- Receive over NSVC[1]\n"); + msg = generate_unitdata("test_unitdata2"); + ns2_recv_vc(nsvc[1], msg); + other = msgb_dequeue(&unitdata->msg_queue); + OSMO_ASSERT(msg == other); + msgb_free(msg); + + gprs_ns2_free(nsi); + printf("--- Finish unitdata test\n"); +} + + int main(int argc, char **argv) { void *ctx = talloc_named_const(NULL, 0, "gprs_ns2_test"); @@ -241,11 +377,14 @@ log_set_print_filename(osmo_stderr_target, 0); log_set_print_filename(osmo_stderr_target, 0); log_set_log_level(osmo_stderr_target, LOGL_INFO); + unitdata = talloc_zero(ctx, struct osmo_wqueue); + osmo_wqueue_init(unitdata, 100); setlinebuf(stdout); printf("===== NS2 protocol test START\n"); test_nse_transfer_cap(ctx); test_block_unblock_nsvc(ctx); + test_unitdata(ctx); printf("===== NS2 protocol test END\n\n"); talloc_free(ctx); diff --git a/tests/gb/gprs_ns2_test.ok b/tests/gb/gprs_ns2_test.ok index 27c72fa..7d12325 100644 --- a/tests/gb/gprs_ns2_test.ok +++ b/tests/gb/gprs_ns2_test.ok @@ -11,5 +11,14 @@ ---- Create NSVC[i] ---- Create NSVC[i] --- Finish NSE block unblock nsvc +--- Testing unitdata test +---- Create NSE + Binds +---- Create NSVC[0] +---- Create NSVC[1] +---- Send UNITDATA to NSVC[0] +---- Send Block NSVC[0] +---- Try to receive over blocked NSVC[0] +---- Receive over NSVC[1] +--- Finish unitdata test ===== NS2 protocol test END -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22422 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I2c44b711d004d2ca08e05d4f54519ad8dbd77c27 Gerrit-Change-Number: 22422 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 14:37:10 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 25 Jan 2021 14:37:10 +0000 Subject: Change in libosmocore[master]: gprs_ns2: always pass a tp to gprs_ns2_vc_rx References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22423 ) Change subject: gprs_ns2: always pass a tp to gprs_ns2_vc_rx ...................................................................... gprs_ns2: always pass a tp to gprs_ns2_vc_rx In preparation of checking the NSEI/NSVCI in ns2_vc_rx. It makes the function less error prone as the *tp is always defined. Change-Id: I3cd6ed20cdc1390075669e1d0101154c51f3997f --- M src/gb/gprs_ns2.c 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/23/22423/1 diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c index ec60dbd..451290b 100644 --- a/src/gb/gprs_ns2.c +++ b/src/gb/gprs_ns2.c @@ -1047,7 +1047,7 @@ struct msgb *msg) { struct gprs_ns_hdr *nsh = (struct gprs_ns_hdr *) msg->l2h; - struct tlv_parsed tp; + struct tlv_parsed tp = { }; int rc = 0; log_set_context(LOG_CTX_GB_NSE, nsvc->nse); @@ -1099,7 +1099,7 @@ break; case NS_PDUT_UNITDATA: - rc = gprs_ns2_vc_rx(nsvc, msg, NULL); + rc = gprs_ns2_vc_rx(nsvc, msg, &tp); break; default: rc = ns2_tlv_parse(&tp, nsh->data, -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22423 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I3cd6ed20cdc1390075669e1d0101154c51f3997f Gerrit-Change-Number: 22423 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 14:37:10 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 25 Jan 2021 14:37:10 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vc_fsm: check NSEI match the NSE References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22424 ) Change subject: gprs_ns2_vc_fsm: check NSEI match the NSE ...................................................................... gprs_ns2_vc_fsm: check NSEI match the NSE The NSE must match the PDUs. The only exception is a RESET with dialect ipaccess. However those will be handled later. Change-Id: I00bc04f3f46f5ae8ddd8b4b7d5479fb8e6463e1e --- M src/gb/gprs_ns2_vc_fsm.c 1 file changed, 14 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/24/22424/1 diff --git a/src/gb/gprs_ns2_vc_fsm.c b/src/gb/gprs_ns2_vc_fsm.c index fc2a86a..3ec6909 100644 --- a/src/gb/gprs_ns2_vc_fsm.c +++ b/src/gb/gprs_ns2_vc_fsm.c @@ -750,6 +750,7 @@ struct osmo_fsm_inst *fi = nsvc->fi; int rc = 0; uint8_t cause; + uint16_t nsei; /* TODO: 7.2: on UNBLOCK/BLOCK: check if NS-VCI is correct, * if not answer STATUS with "NS-VC unknown" */ @@ -763,6 +764,19 @@ } } + if (TLVP_PRESENT(tp, NS_IE_NSEI)) { + nsei = tlvp_val16be(tp, NS_IE_NSEI); + if (nsei != nsvc->nse->nsei) { + /* 48.016 ? 7.3.1 send, RESET_ACK to wrong NSVCI + ignore */ + if (nsh->pdu_type == NS_PDUT_RESET) + ns2_tx_reset_ack(nsvc); + + LOGNSVC(nsvc, LOGL_ERROR, "Rx %s with wrong NSEI=%05u. Ignoring PDU.\n", + get_value_string(gprs_ns_pdu_strings, nsh->pdu_type), nsei); + goto out; + } + } + switch (nsh->pdu_type) { case NS_PDUT_RESET: osmo_fsm_inst_dispatch(fi, GPRS_NS2_EV_RX_RESET, tp); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22424 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I00bc04f3f46f5ae8ddd8b4b7d5479fb8e6463e1e Gerrit-Change-Number: 22424 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 14:37:11 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 25 Jan 2021 14:37:11 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vc_fsm: check NSVCI match the NSE References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22425 ) Change subject: gprs_ns2_vc_fsm: check NSVCI match the NSE ...................................................................... gprs_ns2_vc_fsm: check NSVCI match the NSE The NSVCI must match the PDUs. The only exception is a RESET with dialect ipaccess. However those will be handled later. Change-Id: I0ebdd4f4135b03a7d44a93aff3846c8ec19f333b --- M src/gb/gprs_ns2_vc_fsm.c 1 file changed, 14 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/25/22425/1 diff --git a/src/gb/gprs_ns2_vc_fsm.c b/src/gb/gprs_ns2_vc_fsm.c index 3ec6909..d4f4320 100644 --- a/src/gb/gprs_ns2_vc_fsm.c +++ b/src/gb/gprs_ns2_vc_fsm.c @@ -750,11 +750,10 @@ struct osmo_fsm_inst *fi = nsvc->fi; int rc = 0; uint8_t cause; - uint16_t nsei; + uint16_t nsei, nsvci; /* TODO: 7.2: on UNBLOCK/BLOCK: check if NS-VCI is correct, * if not answer STATUS with "NS-VC unknown" */ - /* TODO: handle RESET with different VCI */ /* TODO: handle BLOCK/UNBLOCK/ALIVE with different VCI */ if (gprs_ns2_validate(nsvc, nsh->pdu_type, msg, tp, &cause)) { @@ -777,6 +776,19 @@ } } + if (nsvc->nsvci_is_valid && TLVP_PRESENT(tp, NS_IE_VCI)) { + nsvci = tlvp_val16be(tp, NS_IE_VCI); + if (nsvci != nsvc->nsvci) { + /* 48.016 ? 7.3.1 send RESET_ACK to wrong NSVCI + ignore */ + if (nsh->pdu_type == NS_PDUT_RESET) + ns2_tx_reset_ack(nsvc); + + LOGNSVC(nsvc, LOGL_ERROR, "Rx %s with wrong NSVCI=%05u. Ignoring PDU.\n", + get_value_string(gprs_ns_pdu_strings, nsh->pdu_type), nsvci); + goto out; + } + } + switch (nsh->pdu_type) { case NS_PDUT_RESET: osmo_fsm_inst_dispatch(fi, GPRS_NS2_EV_RX_RESET, tp); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22425 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I0ebdd4f4135b03a7d44a93aff3846c8ec19f333b Gerrit-Change-Number: 22425 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 14:40:27 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 25 Jan 2021 14:40:27 +0000 Subject: Change in libosmocore[master]: gprs_ns2: inform the NS user (BSSGP) about the MTU of a NSE In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22343 ) Change subject: gprs_ns2: inform the NS user (BSSGP) about the MTU of a NSE ...................................................................... Patch Set 3: I'll postpone this commit for 1 or 2 days until I'm more clear about this. I could add a flag which states the mtu as hard limit or soft limit. FR => hard limit, UDP => soft limit. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22343 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I5016b295db6185ec131d83089cf6c806e34ef1b6 Gerrit-Change-Number: 22343 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 25 Jan 2021 14:40:27 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 15:02:17 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 25 Jan 2021 15:02:17 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Ignore dummy rlcmac packets in f_ms_rx_pkt_ass_pacch In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22313 ) Change subject: pcu: Ignore dummy rlcmac packets in f_ms_rx_pkt_ass_pacch ...................................................................... Patch Set 2: So is there somebody against merging this patch now? can I merge it in order to have more consistent results in jenkins? -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22313 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I0a10d3a7383d8534e9263864b4130a96392e6198 Gerrit-Change-Number: 22313 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-CC: fixeria Gerrit-Comment-Date: Mon, 25 Jan 2021 15:02:17 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 15:14:15 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 25 Jan 2021 15:14:15 +0000 Subject: Change in osmo-pcu[master]: ms: Drop always-false check In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22418 ) Change subject: ms: Drop always-false check ...................................................................... Patch Set 1: > you could also OSMO_ASSERT(ms-->bts) instead. Not saying you must... TBH I don't think it's necessary, being the case it'd crash in hundreds of different places and it should really not happen. -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22418 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I86a71c64623f7bec031226938a54306148370ffb Gerrit-Change-Number: 22418 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 25 Jan 2021 15:14:15 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 15:15:11 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 25 Jan 2021 15:15:11 +0000 Subject: Change in osmo-ttcn3-hacks[master]: PCU_Tests: add testcase TC_rim_ran_info_req_single_rep and _no_si In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369 ) Change subject: PCU_Tests: add testcase TC_rim_ran_info_req_single_rep and _no_si ...................................................................... Patch Set 1: > Patch Set 1: Code-Review-2 > > We cannot just bump the protocol version here, as we also need to test the 'latest' osmo-pcu. See my comments to the related changes for osmo-pcu. I have seen we have a module parameter for the version number and we always support the current version number and the latest. If we can not bumb the version number here, where else can we bump it and don't we have to bump it if we modify indications? -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I9054ab0e969c0fbfdc671c92d44cc61360959adc Gerrit-Change-Number: 22369 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-CC: laforge Gerrit-Comment-Date: Mon, 25 Jan 2021 15:15:11 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 15:17:27 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 25 Jan 2021 15:17:27 +0000 Subject: Change in osmo-pcu[master]: sched: Check if egprs is enabled in TBF rather than MS being egprs ca... In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22419 ) Change subject: sched: Check if egprs is enabled in TBF rather than MS being egprs capable ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-pcu/+/22419/1//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-pcu/+/22419/1//COMMIT_MSG at 15 PS1, Line 15: > should probably be Related: OS#4973 ? Well this is not really causing the issue shown in OS#4973, though the topic is of course related in some way. I just stumbled into it when looking at code and things that could be wrong. That flag is basically only used to know whether we scheduled a DL CS1-4 block in order to count up to 18 (since we must send a DL block every 18th which all GPRs-only MS can fully-decode). Fix for OS#4973 is coming soon in another patch :) -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22419 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I49720fb3a69ca972cd1973de937ac8ee77615431 Gerrit-Change-Number: 22419 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 25 Jan 2021 15:17:27 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: laforge Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 15:30:12 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 25 Jan 2021 15:30:12 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vc_fsm: fix nullpointer dereference when sending uintdata In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22349 ) Change subject: gprs_ns2_vc_fsm: fix nullpointer dereference when sending uintdata ...................................................................... Patch Set 5: I've created an alternative commit to replace this one as https://gerrit.osmocom.org/c/libosmocore/+/22423/1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22349 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I7d7c95604ba4af4ed4b6019f1d432970225f8d7a Gerrit-Change-Number: 22349 Gerrit-PatchSet: 5 Gerrit-Owner: dexter Gerrit-Assignee: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus Gerrit-CC: laforge Gerrit-Comment-Date: Mon, 25 Jan 2021 15:30:12 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 15:32:18 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 25 Jan 2021 15:32:18 +0000 Subject: Change in osmo-ttcn3-hacks[master]: PCU_Tests: add testcase TC_rim_ran_info_req_single_rep and _no_si In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369 ) Change subject: PCU_Tests: add testcase TC_rim_ran_info_req_single_rep and _no_si ...................................................................... Patch Set 1: Hi Philipp, > Patch Set 1: > > > Patch Set 1: Code-Review-2 > > > > We cannot just bump the protocol version here, as we also need to test the 'latest' osmo-pcu. See my comments to the related changes for osmo-pcu. > > I have seen we have a module parameter for the version number and we always support the current version number and the latest. If we can not bumb the version number here, where else can we bump it and don't we have to bump it if we modify indications? bumping the version is not enough, you also need to change the protocol definition in a way that it's possible to encode/decode messages for the old and the new versions. It would be a lot easier to introduce a new PCUIF message for sending System Information, instead of (ab)using INFO.ind for that. This way you can keep using the current protocol version, older IUT would just ignore/reject these new messages. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I9054ab0e969c0fbfdc671c92d44cc61360959adc Gerrit-Change-Number: 22369 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-CC: laforge Gerrit-Comment-Date: Mon, 25 Jan 2021 15:32:18 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 15:36:03 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 25 Jan 2021 15:36:03 +0000 Subject: Change in osmo-ttcn3-hacks[master]: PCU_Tests: add testcase TC_rim_ran_info_req_single_rep and _no_si In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369 ) Change subject: PCU_Tests: add testcase TC_rim_ran_info_req_single_rep and _no_si ...................................................................... Patch Set 1: Something like: record PCUIF_SI_ind { uint8_t si_type, uint8_t si_len, octetstring si } with { variant (si_len) "LENGTHTO(si)" }; -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I9054ab0e969c0fbfdc671c92d44cc61360959adc Gerrit-Change-Number: 22369 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-CC: laforge Gerrit-Comment-Date: Mon, 25 Jan 2021 15:36:03 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 15:37:24 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 25 Jan 2021 15:37:24 +0000 Subject: Change in libosmocore[master]: tests: gprs_ns2: add unitdata unit test In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22422 ) Change subject: tests: gprs_ns2: add unitdata unit test ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22422 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I2c44b711d004d2ca08e05d4f54519ad8dbd77c27 Gerrit-Change-Number: 22422 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Comment-Date: Mon, 25 Jan 2021 15:37:24 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 15:38:06 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 25 Jan 2021 15:38:06 +0000 Subject: Change in libosmocore[master]: gprs_ns2: drop GPRS_ prefix of gprs_ns2_cs References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22426 ) Change subject: gprs_ns2: drop GPRS_ prefix of gprs_ns2_cs ...................................................................... gprs_ns2: drop GPRS_ prefix of gprs_ns2_cs gprs_ns2_cs is a privat enum while GPRS_ should only used for public enums. Change-Id: I79be92ca716366c2e07ea061c08d95bea817a8c7 --- M src/gb/gprs_ns2.c M src/gb/gprs_ns2_frgre.c M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_udp.c 4 files changed, 38 insertions(+), 38 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/26/22426/1 diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c index 451290b..2c417f2 100644 --- a/src/gb/gprs_ns2.c +++ b/src/gb/gprs_ns2.c @@ -778,11 +778,11 @@ * \param[out] reject A message filled to be sent back. Only used in failure cases. * \param[out] success A pointer which will be set to the new VC on success * \return enum value indicating the status, e.g. GPRS_NS2_CS_CREATED */ -enum gprs_ns2_cs ns2_create_vc(struct gprs_ns2_vc_bind *bind, - struct msgb *msg, - const char *logname, - struct msgb **reject, - struct gprs_ns2_vc **success) +enum ns2_cs ns2_create_vc(struct gprs_ns2_vc_bind *bind, + struct msgb *msg, + const char *logname, + struct msgb **reject, + struct gprs_ns2_vc **success) { struct gprs_ns_hdr *nsh = (struct gprs_ns_hdr *)msg->l2h; struct tlv_parsed tp; @@ -797,7 +797,7 @@ int rc, tlv; if (msg->len < sizeof(struct gprs_ns_hdr)) - return GPRS_NS2_CS_ERROR; + return NS2_CS_ERROR; /* parse the tlv early to allow reject status msg to * work with valid tp. @@ -812,19 +812,19 @@ LOGP(DLNS, LOGL_INFO, "Ignoring NS STATUS from %s " "for non-existing NS-VC\n", logname); - return GPRS_NS2_CS_SKIPPED; + return NS2_CS_SKIPPED; case NS_PDUT_ALIVE_ACK: /* Ignore this, see 3GPP TS 08.16, 7.4.1 */ LOGP(DLNS, LOGL_INFO, "Ignoring NS ALIVE ACK from %s " "for non-existing NS-VC\n", logname); - return GPRS_NS2_CS_SKIPPED; + return NS2_CS_SKIPPED; case NS_PDUT_RESET_ACK: /* Ignore this, see 3GPP TS 08.16, 7.3.1 */ LOGP(DLNS, LOGL_INFO, "Ignoring NS RESET ACK from %s " "for non-existing NS-VC\n", logname); - return GPRS_NS2_CS_SKIPPED; + return NS2_CS_SKIPPED; case NS_PDUT_RESET: /* accept PDU RESET when vc_mode matches */ if (bind->accept_ipaccess) { @@ -835,12 +835,12 @@ rc = reject_status_msg(msg, &tp, reject, NS_CAUSE_PDU_INCOMP_PSTATE); if (rc < 0) LOGP(DLNS, LOGL_ERROR, "Failed to generate reject message (%d)\n", rc); - return GPRS_NS2_CS_REJECTED; + return NS2_CS_REJECTED; default: rc = reject_status_msg(msg, &tp, reject, NS_CAUSE_PDU_INCOMP_PSTATE); if (rc < 0) LOGP(DLNS, LOGL_ERROR, "Failed to generate reject message (%d)\n", rc); - return GPRS_NS2_CS_REJECTED; + return NS2_CS_REJECTED; } if (tlv < 0) { @@ -852,7 +852,7 @@ rc = reject_status_msg(msg, &tp, reject, NS_CAUSE_PROTO_ERR_UNSPEC); if (rc < 0) LOGP(DLNS, LOGL_ERROR, "Failed to generate reject message (%d)\n", rc); - return GPRS_NS2_CS_REJECTED; + return NS2_CS_REJECTED; } if (!TLVP_PRES_LEN(&tp, NS_IE_CAUSE, 1) || @@ -861,7 +861,7 @@ rc = reject_status_msg(msg, &tp, reject, NS_CAUSE_MISSING_ESSENT_IE); if (rc < 0) LOGP(DLNS, LOGL_ERROR, "Failed to generate reject message (%d)\n", rc); - return GPRS_NS2_CS_REJECTED; + return NS2_CS_REJECTED; } nsei = tlvp_val16be(&tp, NS_IE_NSEI); @@ -872,15 +872,15 @@ if (!nse) { /* only create nse for udp & ipaccess */ if (bind->ll != GPRS_NS2_LL_UDP || dialect != NS2_DIALECT_IPACCESS) - return GPRS_NS2_CS_SKIPPED; + return NS2_CS_SKIPPED; if (!bind->nsi->create_nse || !bind->accept_ipaccess) - return GPRS_NS2_CS_SKIPPED; + return NS2_CS_SKIPPED; nse = gprs_ns2_create_nse(bind->nsi, nsei, bind->ll, dialect); if (!nse) { LOGP(DLNS, LOGL_ERROR, "Failed to create NSE(%05u)\n", nsei); - return GPRS_NS2_CS_ERROR; + return NS2_CS_ERROR; } } else { /* nsei already known */ @@ -888,7 +888,7 @@ LOGNSE(nse, LOGL_ERROR, "Received NS-RESET NS-VCI(%05u) with wrong linklayer(%s)" " for already known NSE(%s)\n", nsvci, gprs_ns2_lltype_str(bind->ll), gprs_ns2_lltype_str(nse->ll)); - return GPRS_NS2_CS_SKIPPED; + return NS2_CS_SKIPPED; } } @@ -896,7 +896,7 @@ if (nsvc) { if (nsvc->persistent) { LOGNSVC(nsvc, LOGL_ERROR, "Received NS-RESET for a persistent NSE over wrong connection.\n"); - return GPRS_NS2_CS_SKIPPED; + return NS2_CS_SKIPPED; } /* destroy old dynamic nsvc */ gprs_ns2_free_nsvc(nsvc); @@ -906,7 +906,7 @@ if (nse->persistent) { LOGNSE(nse, LOGL_ERROR, "Received NS-RESET for a persistent NSE but the unknown " "NS-VCI(%05u)\n", nsvci); - return GPRS_NS2_CS_SKIPPED; + return NS2_CS_SKIPPED; } nsvci = tlvp_val16be(&tp, NS_IE_VCI); @@ -915,14 +915,14 @@ nse->nsei, nsvci); nsvc = ns2_vc_alloc(bind, nse, false, vc_mode, idbuf); if (!nsvc) - return GPRS_NS2_CS_SKIPPED; + return NS2_CS_SKIPPED; nsvc->nsvci = nsvci; nsvc->nsvci_is_valid = true; *success = nsvc; - return GPRS_NS2_CS_CREATED; + return NS2_CS_CREATED; } /*! Create, and connect an inactive, new IP-based NS-VC diff --git a/src/gb/gprs_ns2_frgre.c b/src/gb/gprs_ns2_frgre.c index 2812e12..da7e53f 100644 --- a/src/gb/gprs_ns2_frgre.c +++ b/src/gb/gprs_ns2_frgre.c @@ -439,17 +439,17 @@ /* VC not found */ rc = ns2_create_vc(bind, msg, "newconnection", &reject, &nsvc); switch (rc) { - case GPRS_NS2_CS_FOUND: + case NS2_CS_FOUND: break; - case GPRS_NS2_CS_ERROR: - case GPRS_NS2_CS_SKIPPED: + case NS2_CS_ERROR: + case NS2_CS_SKIPPED: rc = 0; goto out; - case GPRS_NS2_CS_REJECTED: + case NS2_CS_REJECTED: /* nsip_sendmsg will free reject */ rc = frgre_sendmsg(bind, reject, &saddr); goto out; - case GPRS_NS2_CS_CREATED: + case NS2_CS_CREATED: frgre_alloc_vc(bind, nsvc, &saddr, dlci); gprs_ns2_vc_fsm_start(nsvc); break; diff --git a/src/gb/gprs_ns2_internal.h b/src/gb/gprs_ns2_internal.h index 7183bd8..a36396f 100644 --- a/src/gb/gprs_ns2_internal.h +++ b/src/gb/gprs_ns2_internal.h @@ -77,12 +77,12 @@ }; /*! Osmocom NS2 VC create status */ -enum gprs_ns2_cs { - GPRS_NS2_CS_CREATED, /*!< A NSVC object has been created */ - GPRS_NS2_CS_FOUND, /*!< A NSVC object has been found */ - GPRS_NS2_CS_REJECTED, /*!< Rejected and answered message */ - GPRS_NS2_CS_SKIPPED, /*!< Skipped message */ - GPRS_NS2_CS_ERROR, /*!< Failed to process message */ +enum ns2_cs { + NS2_CS_CREATED, /*!< A NSVC object has been created */ + NS2_CS_FOUND, /*!< A NSVC object has been found */ + NS2_CS_REJECTED, /*!< Rejected and answered message */ + NS2_CS_SKIPPED, /*!< Skipped message */ + NS2_CS_ERROR, /*!< Failed to process message */ }; @@ -245,7 +245,7 @@ void (*free_bind)(struct gprs_ns2_vc_bind *driver); }; -enum gprs_ns2_cs ns2_create_vc(struct gprs_ns2_vc_bind *bind, +enum ns2_cs ns2_create_vc(struct gprs_ns2_vc_bind *bind, struct msgb *msg, const char *logname, struct msgb **reject, diff --git a/src/gb/gprs_ns2_udp.c b/src/gb/gprs_ns2_udp.c index 8bfa184..6ee6eb2 100644 --- a/src/gb/gprs_ns2_udp.c +++ b/src/gb/gprs_ns2_udp.c @@ -231,17 +231,17 @@ /* VC not found */ rc = ns2_create_vc(bind, msg, "newconnection", &reject, &nsvc); switch (rc) { - case GPRS_NS2_CS_FOUND: + case NS2_CS_FOUND: break; - case GPRS_NS2_CS_ERROR: - case GPRS_NS2_CS_SKIPPED: + case NS2_CS_ERROR: + case NS2_CS_SKIPPED: rc = 0; goto out; - case GPRS_NS2_CS_REJECTED: + case NS2_CS_REJECTED: /* nsip_sendmsg will free reject */ rc = nsip_sendmsg(bind, reject, &saddr); goto out; - case GPRS_NS2_CS_CREATED: + case NS2_CS_CREATED: ns2_driver_alloc_vc(bind, nsvc, &saddr); gprs_ns2_vc_fsm_start(nsvc); break; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22426 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I79be92ca716366c2e07ea061c08d95bea817a8c7 Gerrit-Change-Number: 22426 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 15:38:06 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 25 Jan 2021 15:38:06 +0000 Subject: Change in libosmocore[master]: gprs_ns2: drop prefix of all internal exposed function References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22427 ) Change subject: gprs_ns2: drop prefix of all internal exposed function ...................................................................... gprs_ns2: drop prefix of all internal exposed function All functions which are exposed by gprs_ns2_internal.h should not contain the public prefix gprs_. Internal function should only contain ns2_ prefix. Change-Id: Icecc5a918902cd10efac72bbac20780d39aab272 --- M src/gb/gprs_ns2.c M src/gb/gprs_ns2_fr.c M src/gb/gprs_ns2_frgre.c M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_message.c M src/gb/gprs_ns2_sns.c M src/gb/gprs_ns2_udp.c M src/gb/gprs_ns2_vc_fsm.c M src/gb/gprs_ns2_vty.c M src/gb/gprs_ns2_vty2.c M tests/gb/gprs_ns2_test.c 11 files changed, 84 insertions(+), 86 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/27/22427/1 diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c index 2c417f2..811294b 100644 --- a/src/gb/gprs_ns2.c +++ b/src/gb/gprs_ns2.c @@ -318,7 +318,7 @@ llist_for_each_entry(tmp, &nse->nsvc, list) { if (tmp->sig_weight == 0) continue; - if (!gprs_ns2_vc_is_unblocked(tmp)) + if (!ns2_vc_is_unblocked(tmp)) continue; if (tmp->sig_counter == 0) { last = tmp; @@ -354,7 +354,7 @@ uint32_t i = 0; llist_for_each_entry(tmp, &nse->nsvc, list) { - if (!gprs_ns2_vc_is_unblocked(tmp)) + if (!ns2_vc_is_unblocked(tmp)) continue; if (i == mod) return tmp; @@ -370,7 +370,7 @@ struct gprs_ns2_vc *nsvc = NULL, *tmp; llist_for_each_entry(tmp, &nse->nsvc, list) { - if (!gprs_ns2_vc_is_unblocked(tmp)) + if (!ns2_vc_is_unblocked(tmp)) continue; if (tmp->data_weight == 0) continue; @@ -512,7 +512,7 @@ nsvc->statg = osmo_stat_item_group_alloc(nsvc, &nsvc_statg_desc, bind->nsi->rate_ctr_idx); if (!nsvc->statg) goto err_group; - if (!gprs_ns2_vc_fsm_alloc(nsvc, id, initiater)) + if (!ns2_vc_fsm_alloc(nsvc, id, initiater)) goto err_statg; bind->nsi->rate_ctr_idx++; @@ -577,7 +577,7 @@ } /*! Allocate a message buffer for use with the NS2 stack. */ -struct msgb *gprs_ns2_msgb_alloc(void) +struct msgb *ns2_msgb_alloc(void) { struct msgb *msg = msgb_alloc_headroom(NS_ALLOC_SIZE, NS_ALLOC_HEADROOM, "GPRS/NS"); @@ -596,7 +596,7 @@ * \return 0 on success */ static int reject_status_msg(struct msgb *orig_msg, struct tlv_parsed *tp, struct msgb **reject, enum ns_cause cause) { - struct msgb *msg = gprs_ns2_msgb_alloc(); + struct msgb *msg = ns2_msgb_alloc(); struct gprs_ns_hdr *nsh; bool have_vci = false; uint8_t _cause = cause; @@ -910,7 +910,7 @@ } nsvci = tlvp_val16be(&tp, NS_IE_VCI); - vc_mode = gprs_ns2_dialect_to_vc_mode(dialect); + vc_mode = ns2_dialect_to_vc_mode(dialect); snprintf(idbuf, sizeof(idbuf), "%s-NSE%05u-NSVC%05u", gprs_ns2_lltype_str(nse->ll), nse->nsei, nsvci); nsvc = ns2_vc_alloc(bind, nse, false, vc_mode, idbuf); @@ -938,7 +938,7 @@ { struct gprs_ns2_vc *nsvc; - nsvc = gprs_ns2_ip_bind_connect(bind, nse, remote); + nsvc = ns2_ip_bind_connect(bind, nse, remote); if (!nsvc) return NULL; @@ -966,7 +966,7 @@ if (!nsvc) return NULL; - gprs_ns2_vc_fsm_start(nsvc); + ns2_vc_fsm_start(nsvc); return nsvc; } @@ -1066,7 +1066,7 @@ return rc; } /* All sub-network service related message types */ - rc = gprs_ns2_sns_rx(nsvc, msg, &tp); + rc = ns2_sns_rx(nsvc, msg, &tp); break; case SNS_PDUT_ACK: case SNS_PDUT_ADD: @@ -1083,7 +1083,7 @@ tp.lv[NS_IE_NSEI].len = 2; tp.lv[NS_IE_TRANS_ID].val = nsh->data+4; tp.lv[NS_IE_TRANS_ID].len = 1; - rc = gprs_ns2_sns_rx(nsvc, msg, &tp); + rc = ns2_sns_rx(nsvc, msg, &tp); break; case SNS_PDUT_CONFIG_ACK: case SNS_PDUT_SIZE: @@ -1095,11 +1095,11 @@ return rc; } /* All sub-network service related message types */ - rc = gprs_ns2_sns_rx(nsvc, msg, &tp); + rc = ns2_sns_rx(nsvc, msg, &tp); break; case NS_PDUT_UNITDATA: - rc = gprs_ns2_vc_rx(nsvc, msg, &tp); + rc = ns2_vc_rx(nsvc, msg, &tp); break; default: rc = ns2_tlv_parse(&tp, nsh->data, @@ -1110,7 +1110,7 @@ ns2_tx_status(nsvc, NS_CAUSE_PROTO_ERR_UNSPEC, 0, msg); return rc; } - rc = gprs_ns2_vc_rx(nsvc, msg, &tp); + rc = ns2_vc_rx(nsvc, msg, &tp); break; } @@ -1127,7 +1127,7 @@ nse->sum_sig_weight = 0; llist_for_each_entry(nsvc, &nse->nsvc, list) { - if (!gprs_ns2_vc_is_unblocked(nsvc)) + if (!ns2_vc_is_unblocked(nsvc)) continue; nse->nsvc_count++; @@ -1231,7 +1231,7 @@ if (nsvc->sns_only) continue; - gprs_ns2_vc_fsm_start(nsvc); + ns2_vc_fsm_start(nsvc); } } @@ -1269,8 +1269,7 @@ * \param[in] name The unique bind name to search for * \return the bind or NULL if not found */ -struct gprs_ns2_vc_bind *gprs_ns2_bind_by_name( - struct gprs_ns2_inst *nsi, const char *name) +struct gprs_ns2_vc_bind *gprs_ns2_bind_by_name(struct gprs_ns2_inst *nsi, const char *name) { struct gprs_ns2_vc_bind *bind; @@ -1282,8 +1281,7 @@ return NULL; } -enum gprs_ns2_vc_mode gprs_ns2_dialect_to_vc_mode( - enum gprs_ns2_dialect dialect) +enum gprs_ns2_vc_mode ns2_dialect_to_vc_mode(enum gprs_ns2_dialect dialect) { switch (dialect) { case NS2_DIALECT_SNS: @@ -1335,7 +1333,7 @@ return 0; llist_for_each_entry(nsvc, &nse->nsvc, list) { - if (gprs_ns2_vc_is_unblocked(nsvc)) + if (ns2_vc_is_unblocked(nsvc)) active_nsvcs++; } /* an alive nse should always have active_nsvcs */ @@ -1346,7 +1344,7 @@ return -ENOMEM; llist_for_each_entry(nsvc, &nse->nsvc, list) { - if (!gprs_ns2_vc_is_unblocked(nsvc)) + if (!ns2_vc_is_unblocked(nsvc)) continue; add_bind_array(active_binds, nsvc->bind, active_nsvcs); } diff --git a/src/gb/gprs_ns2_fr.c b/src/gb/gprs_ns2_fr.c index 274ed96..8ad44ac 100644 --- a/src/gb/gprs_ns2_fr.c +++ b/src/gb/gprs_ns2_fr.c @@ -762,7 +762,7 @@ nsvc->nsvci = nsvci; nsvc->nsvci_is_valid = true; - gprs_ns2_vc_fsm_start(nsvc); + ns2_vc_fsm_start(nsvc); return nsvc; diff --git a/src/gb/gprs_ns2_frgre.c b/src/gb/gprs_ns2_frgre.c index da7e53f..cc8500f 100644 --- a/src/gb/gprs_ns2_frgre.c +++ b/src/gb/gprs_ns2_frgre.c @@ -451,7 +451,7 @@ goto out; case NS2_CS_CREATED: frgre_alloc_vc(bind, nsvc, &saddr, dlci); - gprs_ns2_vc_fsm_start(nsvc); + ns2_vc_fsm_start(nsvc); break; } } diff --git a/src/gb/gprs_ns2_internal.h b/src/gb/gprs_ns2_internal.h index a36396f..027071d 100644 --- a/src/gb/gprs_ns2_internal.h +++ b/src/gb/gprs_ns2_internal.h @@ -260,10 +260,10 @@ enum gprs_ns2_vc_mode vc_mode, const char *id); -struct msgb *gprs_ns2_msgb_alloc(void); +struct msgb *ns2_msgb_alloc(void); -void gprs_ns2_sns_write_vty(struct vty *vty, const struct gprs_ns2_nse *nse); -void gprs_ns2_sns_dump_vty(struct vty *vty, const char *prefix, const struct gprs_ns2_nse *nse, bool stats); +void ns2_sns_write_vty(struct vty *vty, const struct gprs_ns2_nse *nse); +void ns2_sns_dump_vty(struct vty *vty, const char *prefix, const struct gprs_ns2_nse *nse, bool stats); void ns2_prim_status_ind(struct gprs_ns2_nse *nse, struct gprs_ns2_vc *nsvc, uint16_t bvci, @@ -271,11 +271,11 @@ void ns2_nse_notify_alive(struct gprs_ns2_vc *nsvc, bool alive); /* message */ -int gprs_ns2_validate(struct gprs_ns2_vc *nsvc, - uint8_t pdu_type, - struct msgb *msg, - struct tlv_parsed *tp, - uint8_t *cause); +int ns2_validate(struct gprs_ns2_vc *nsvc, + uint8_t pdu_type, + struct msgb *msg, + struct tlv_parsed *tp, + uint8_t *cause); /* SNS messages */ int ns2_tx_sns_ack(struct gprs_ns2_vc *nsvc, uint8_t trans_id, uint8_t *cause, @@ -314,33 +314,33 @@ uint16_t bvci, struct msgb *orig_msg); /* driver */ -struct gprs_ns2_vc *gprs_ns2_ip_bind_connect(struct gprs_ns2_vc_bind *bind, - struct gprs_ns2_nse *nse, - const struct osmo_sockaddr *remote); +struct gprs_ns2_vc *ns2_ip_bind_connect(struct gprs_ns2_vc_bind *bind, + struct gprs_ns2_nse *nse, + const struct osmo_sockaddr *remote); int ns2_ip_count_bind(struct gprs_ns2_inst *nsi, struct osmo_sockaddr *remote); struct gprs_ns2_vc_bind *ns2_ip_get_bind_by_index(struct gprs_ns2_inst *nsi, struct osmo_sockaddr *remote, int index); /* sns */ -int gprs_ns2_sns_rx(struct gprs_ns2_vc *nsvc, struct msgb *msg, struct tlv_parsed *tp); +int ns2_sns_rx(struct gprs_ns2_vc *nsvc, struct msgb *msg, struct tlv_parsed *tp); struct osmo_fsm_inst *ns2_sns_bss_fsm_alloc(struct gprs_ns2_nse *nse, const char *id); void ns2_sns_free_nsvc(struct gprs_ns2_vc *nsvc); /* vc */ -struct osmo_fsm_inst *gprs_ns2_vc_fsm_alloc(struct gprs_ns2_vc *nsvc, +struct osmo_fsm_inst *ns2_vc_fsm_alloc(struct gprs_ns2_vc *nsvc, const char *id, bool initiate); -int gprs_ns2_vc_fsm_start(struct gprs_ns2_vc *nsvc); -int gprs_ns2_vc_force_unconfigured(struct gprs_ns2_vc *nsvc); -int gprs_ns2_vc_rx(struct gprs_ns2_vc *nsvc, struct msgb *msg, struct tlv_parsed *tp); -int gprs_ns2_vc_is_alive(struct gprs_ns2_vc *nsvc); -int gprs_ns2_vc_is_unblocked(struct gprs_ns2_vc *nsvc); +int ns2_vc_fsm_start(struct gprs_ns2_vc *nsvc); +int ns2_vc_force_unconfigured(struct gprs_ns2_vc *nsvc); +int ns2_vc_rx(struct gprs_ns2_vc *nsvc, struct msgb *msg, struct tlv_parsed *tp); +int ns2_vc_is_alive(struct gprs_ns2_vc *nsvc); +int ns2_vc_is_unblocked(struct gprs_ns2_vc *nsvc); int ns2_vc_block(struct gprs_ns2_vc *nsvc); int ns2_vc_unblock(struct gprs_ns2_vc *nsvc); /* nse */ void ns2_nse_notify_unblocked(struct gprs_ns2_vc *nsvc, bool unblocked); -enum gprs_ns2_vc_mode gprs_ns2_dialect_to_vc_mode(enum gprs_ns2_dialect dialect); +enum gprs_ns2_vc_mode ns2_dialect_to_vc_mode(enum gprs_ns2_dialect dialect); int ns2_count_transfer_cap(struct gprs_ns2_nse *nse, uint16_t bvci); diff --git a/src/gb/gprs_ns2_message.c b/src/gb/gprs_ns2_message.c index 9559229..a185f3b 100644 --- a/src/gb/gprs_ns2_message.c +++ b/src/gb/gprs_ns2_message.c @@ -149,11 +149,11 @@ return 0; } -int gprs_ns2_validate(struct gprs_ns2_vc *nsvc, - uint8_t pdu_type, - struct msgb *msg, - struct tlv_parsed *tp, - uint8_t *cause) +int ns2_validate(struct gprs_ns2_vc *nsvc, + uint8_t pdu_type, + struct msgb *msg, + struct tlv_parsed *tp, + uint8_t *cause) { switch (pdu_type) { case NS_PDUT_RESET: @@ -186,7 +186,7 @@ /* transmit functions */ static int ns2_tx_simple(struct gprs_ns2_vc *nsvc, uint8_t pdu_type) { - struct msgb *msg = gprs_ns2_msgb_alloc(); + struct msgb *msg = ns2_msgb_alloc(); struct gprs_ns_hdr *nsh; log_set_context(LOG_CTX_GB_NSE, nsvc->nse); @@ -218,7 +218,7 @@ ERR_IF_NSVC_USES_SNS(nsvc, "transmit NS BLOCK"); - msg = gprs_ns2_msgb_alloc(); + msg = ns2_msgb_alloc(); if (!msg) return -ENOMEM; @@ -250,7 +250,7 @@ ERR_IF_NSVC_USES_SNS(nsvc, "transmit NS BLOCK ACK"); - msg = gprs_ns2_msgb_alloc(); + msg = ns2_msgb_alloc(); if (!msg) return -ENOMEM; @@ -281,7 +281,7 @@ ERR_IF_NSVC_USES_SNS(nsvc, "transmit NS RESET"); - msg = gprs_ns2_msgb_alloc(); + msg = ns2_msgb_alloc(); if (!msg) return -ENOMEM; @@ -313,7 +313,7 @@ ERR_IF_NSVC_USES_SNS(nsvc, "transmit NS RESET ACK"); - msg = gprs_ns2_msgb_alloc(); + msg = ns2_msgb_alloc(); if (!msg) return -ENOMEM; @@ -428,7 +428,7 @@ int ns2_tx_status(struct gprs_ns2_vc *nsvc, uint8_t cause, uint16_t bvci, struct msgb *orig_msg) { - struct msgb *msg = gprs_ns2_msgb_alloc(); + struct msgb *msg = ns2_msgb_alloc(); struct gprs_ns_hdr *nsh; uint16_t nsvci = osmo_htons(nsvc->nsvci); @@ -495,7 +495,7 @@ if (!nsvc) return -1; - msg = gprs_ns2_msgb_alloc(); + msg = ns2_msgb_alloc(); log_set_context(LOG_CTX_GB_NSE, nsvc->nse); log_set_context(LOG_CTX_GB_NSVC, nsvc); @@ -553,7 +553,7 @@ if (!nsvc) return -1; - msg = gprs_ns2_msgb_alloc(); + msg = ns2_msgb_alloc(); log_set_context(LOG_CTX_GB_NSE, nsvc->nse); log_set_context(LOG_CTX_GB_NSVC, nsvc); @@ -602,7 +602,7 @@ if (!nsvc) return -1; - msg = gprs_ns2_msgb_alloc(); + msg = ns2_msgb_alloc(); log_set_context(LOG_CTX_GB_NSE, nsvc->nse); log_set_context(LOG_CTX_GB_NSVC, nsvc); if (!msg) @@ -646,7 +646,7 @@ if (!nsvc) return -1; - msg = gprs_ns2_msgb_alloc(); + msg = ns2_msgb_alloc(); log_set_context(LOG_CTX_GB_NSE, nsvc->nse); log_set_context(LOG_CTX_GB_NSVC, nsvc); @@ -683,7 +683,7 @@ * \returns 0 on success; negative in case of error */ int ns2_tx_sns_size_ack(struct gprs_ns2_vc *nsvc, uint8_t *cause) { - struct msgb *msg = gprs_ns2_msgb_alloc(); + struct msgb *msg = ns2_msgb_alloc(); struct gprs_ns_hdr *nsh; uint16_t nsei; diff --git a/src/gb/gprs_ns2_sns.c b/src/gb/gprs_ns2_sns.c index 90d97b6..2dc6524 100644 --- a/src/gb/gprs_ns2_sns.c +++ b/src/gb/gprs_ns2_sns.c @@ -246,7 +246,7 @@ if (nse->alive) { /* choose a different sns nsvc */ llist_for_each_entry(tmp, &nse->nsvc, list) { - if (gprs_ns2_vc_is_unblocked(tmp)) + if (ns2_vc_is_unblocked(tmp)) gss->sns_nsvc = tmp; } } else { @@ -743,7 +743,7 @@ /* setup the NSVC */ if (!gss->sns_nsvc) { - gss->sns_nsvc = gprs_ns2_ip_bind_connect(bind, gss->nse, remote); + gss->sns_nsvc = ns2_ip_bind_connect(bind, gss->nse, remote); if (!gss->sns_nsvc) return; gss->sns_nsvc->sns_only = true; @@ -1439,7 +1439,7 @@ * \param[in] msg message buffer of the IP-SNS message * \param[in] tp parsed TLV structure of message * \retruns 0 on success; negative on error */ -int gprs_ns2_sns_rx(struct gprs_ns2_vc *nsvc, struct msgb *msg, struct tlv_parsed *tp) +int ns2_sns_rx(struct gprs_ns2_vc *nsvc, struct msgb *msg, struct tlv_parsed *tp) { struct gprs_ns2_nse *nse = nsvc->nse; struct gprs_ns_hdr *nsh = (struct gprs_ns_hdr *) msg->l2h; @@ -1521,7 +1521,7 @@ * \param[in] prefix prefix to print at start of each line (typically indenting) * \param[in] nse NS Entity whose IP-SNS state shall be printed * \param[in] stats Whether or not statistics shall also be printed */ -void gprs_ns2_sns_dump_vty(struct vty *vty, const char *prefix, const struct gprs_ns2_nse *nse, bool stats) +void ns2_sns_dump_vty(struct vty *vty, const char *prefix, const struct gprs_ns2_nse *nse, bool stats) { struct ns2_sns_state *gss; unsigned int i; @@ -1559,7 +1559,7 @@ /*! write IP-SNS to a vty * \param[in] vty VTY to which the state shall be printed * \param[in] nse NS Entity whose IP-SNS state shall be printed */ -void gprs_ns2_sns_write_vty(struct vty *vty, const struct gprs_ns2_nse *nse) +void ns2_sns_write_vty(struct vty *vty, const struct gprs_ns2_nse *nse) { struct ns2_sns_state *gss; struct osmo_sockaddr_str addr_str; diff --git a/src/gb/gprs_ns2_udp.c b/src/gb/gprs_ns2_udp.c index 6ee6eb2..e1ffad6 100644 --- a/src/gb/gprs_ns2_udp.c +++ b/src/gb/gprs_ns2_udp.c @@ -171,7 +171,7 @@ static struct msgb *read_nsip_msg(struct osmo_fd *bfd, int *error, struct osmo_sockaddr *saddr, const struct gprs_ns2_vc_bind *bind) { - struct msgb *msg = gprs_ns2_msgb_alloc(); + struct msgb *msg = ns2_msgb_alloc(); int ret = 0; socklen_t saddr_len = sizeof(*saddr); @@ -243,7 +243,7 @@ goto out; case NS2_CS_CREATED: ns2_driver_alloc_vc(bind, nsvc, &saddr); - gprs_ns2_vc_fsm_start(nsvc); + ns2_vc_fsm_start(nsvc); break; } } @@ -394,9 +394,9 @@ * \param[in] nse NS entity to be used for the new NS-VC * \param[in] remote remote address to connect to * \return pointer to newly-allocated and connected NS-VC; NULL on error */ -struct gprs_ns2_vc *gprs_ns2_ip_bind_connect(struct gprs_ns2_vc_bind *bind, - struct gprs_ns2_nse *nse, - const struct osmo_sockaddr *remote) +struct gprs_ns2_vc *ns2_ip_bind_connect(struct gprs_ns2_vc_bind *bind, + struct gprs_ns2_nse *nse, + const struct osmo_sockaddr *remote) { struct gprs_ns2_vc *nsvc; struct priv_vc *priv; @@ -406,7 +406,7 @@ OSMO_ASSERT(gprs_ns2_is_ip_bind(bind)); - vc_mode = gprs_ns2_dialect_to_vc_mode(nse->dialect); + vc_mode = ns2_dialect_to_vc_mode(nse->dialect); if ((int) vc_mode == -1) { LOGNSE(nse, LOGL_ERROR, "Can not derive vc mode from dialect %d. Maybe libosmocore is too old.\n", nse->dialect); diff --git a/src/gb/gprs_ns2_vc_fsm.c b/src/gb/gprs_ns2_vc_fsm.c index d4f4320..d18983a 100644 --- a/src/gb/gprs_ns2_vc_fsm.c +++ b/src/gb/gprs_ns2_vc_fsm.c @@ -684,7 +684,7 @@ * \param initiator initiator is the site which starts the connection. Usually the BSS. * \return NULL on error, otherwise the fsm */ -struct osmo_fsm_inst *gprs_ns2_vc_fsm_alloc(struct gprs_ns2_vc *nsvc, +struct osmo_fsm_inst *ns2_vc_fsm_alloc(struct gprs_ns2_vc *nsvc, const char *id, bool initiator) { struct osmo_fsm_inst *fi; @@ -707,7 +707,7 @@ /*! Start a NS-VC FSM. * \param nsvc the virtual circuit * \return 0 on success; negative on error */ -int gprs_ns2_vc_fsm_start(struct gprs_ns2_vc *nsvc) +int ns2_vc_fsm_start(struct gprs_ns2_vc *nsvc) { /* allows to call this function even for started nsvc by gprs_ns2_start_alive_all_nsvcs */ if (nsvc->fi->state == GPRS_NS2_ST_UNCONFIGURED) @@ -718,7 +718,7 @@ /*! Reset a NS-VC FSM. * \param nsvc the virtual circuit * \return 0 on success; negative on error */ -int gprs_ns2_vc_force_unconfigured(struct gprs_ns2_vc *nsvc) +int ns2_vc_force_unconfigured(struct gprs_ns2_vc *nsvc) { return osmo_fsm_inst_dispatch(nsvc->fi, GPRS_NS2_EV_REQ_FORCE_UNCONFIGURED, NULL); } @@ -744,7 +744,7 @@ * \param msg message that was received * \param tp parsed TLVs of the received message * \return 0 on success; negative on error */ -int gprs_ns2_vc_rx(struct gprs_ns2_vc *nsvc, struct msgb *msg, struct tlv_parsed *tp) +int ns2_vc_rx(struct gprs_ns2_vc *nsvc, struct msgb *msg, struct tlv_parsed *tp) { struct gprs_ns_hdr *nsh = (struct gprs_ns_hdr *) msg->l2h; struct osmo_fsm_inst *fi = nsvc->fi; @@ -756,7 +756,7 @@ * if not answer STATUS with "NS-VC unknown" */ /* TODO: handle BLOCK/UNBLOCK/ALIVE with different VCI */ - if (gprs_ns2_validate(nsvc, nsh->pdu_type, msg, tp, &cause)) { + if (ns2_validate(nsvc, nsh->pdu_type, msg, tp, &cause)) { if (nsh->pdu_type != NS_PDUT_STATUS) { rc = ns2_tx_status(nsvc, cause, 0, msg); goto out; @@ -831,7 +831,7 @@ } /*! is the given NS-VC unblocked? */ -int gprs_ns2_vc_is_unblocked(struct gprs_ns2_vc *nsvc) +int ns2_vc_is_unblocked(struct gprs_ns2_vc *nsvc) { return (nsvc->fi->state == GPRS_NS2_ST_UNBLOCKED); } diff --git a/src/gb/gprs_ns2_vty.c b/src/gb/gprs_ns2_vty.c index 36a7f78..d6674ff 100644 --- a/src/gb/gprs_ns2_vty.c +++ b/src/gb/gprs_ns2_vty.c @@ -298,7 +298,7 @@ vty_out(vty, "NSEI %05u: %s, %s%s", nse->nsei, gprs_ns2_lltype_str(nse->ll), nse->alive ? "ALIVE" : "DEAD", VTY_NEWLINE); - gprs_ns2_sns_dump_vty(vty, " ", nse, stats); + ns2_sns_dump_vty(vty, " ", nse, stats); llist_for_each_entry(nsvc, &nse->nsvc, list) { if (persistent_only) { if (nsvc->persistent) @@ -418,7 +418,7 @@ static int nsvc_force_unconf_cb(struct gprs_ns2_vc *nsvc, void *ctx) { - gprs_ns2_vc_force_unconfigured(nsvc); + ns2_vc_force_unconfigured(nsvc); return 0; } diff --git a/src/gb/gprs_ns2_vty2.c b/src/gb/gprs_ns2_vty2.c index db59717..43dd263 100644 --- a/src/gb/gprs_ns2_vty2.c +++ b/src/gb/gprs_ns2_vty2.c @@ -391,7 +391,7 @@ vty_out(vty, " nse %u%s", nse->nsei, VTY_NEWLINE); switch (nse->dialect) { case NS2_DIALECT_SNS: - gprs_ns2_sns_write_vty(vty, nse); + ns2_sns_write_vty(vty, nse); break; default: llist_for_each_entry(nsvc, &nse->nsvc, list) { @@ -1349,7 +1349,7 @@ vty_out(vty, "NSEI %05u: %s, %s%s", nse->nsei, gprs_ns2_lltype_str(nse->ll), nse->alive ? "ALIVE" : "DEAD", VTY_NEWLINE); - gprs_ns2_sns_dump_vty(vty, " ", nse, stats); + ns2_sns_dump_vty(vty, " ", nse, stats); llist_for_each_entry(nsvc, &nse->nsvc, list) { if (persistent_only) { if (nsvc->persistent) @@ -1469,7 +1469,7 @@ static int nsvc_force_unconf_cb(struct gprs_ns2_vc *nsvc, void *ctx) { - gprs_ns2_vc_force_unconfigured(nsvc); + ns2_vc_force_unconfigured(nsvc); return 0; } diff --git a/tests/gb/gprs_ns2_test.c b/tests/gb/gprs_ns2_test.c index 10f430d..335a079 100644 --- a/tests/gb/gprs_ns2_test.c +++ b/tests/gb/gprs_ns2_test.c @@ -254,7 +254,7 @@ OSMO_ASSERT(nsvc[i]); nsvc[i]->fi->state = 3; /* HACK: 3 = GPRS_NS2_ST_UNBLOCKED */ /* ensure the fi->state works correct */ - OSMO_ASSERT(gprs_ns2_vc_is_unblocked(nsvc[i])); + OSMO_ASSERT(ns2_vc_is_unblocked(nsvc[i])); ns2_nse_notify_unblocked(nsvc[i], true); } @@ -277,7 +277,7 @@ nsh->pdu_type = NS_PDUT_UNBLOCK_ACK; ns2_recv_vc(nsvc[0], msg); - OSMO_ASSERT(gprs_ns2_vc_is_unblocked(nsvc[0])); + OSMO_ASSERT(ns2_vc_is_unblocked(nsvc[0])); gprs_ns2_free(nsi); printf("--- Finish NSE block unblock nsvc\n"); } @@ -330,11 +330,11 @@ nsvc[i] = ns2_vc_alloc(bind[i], nse, false, NS2_VC_MODE_BLOCKRESET, idbuf); loop[i] = loopback_nsvc(loopbind, nsvc[i]); OSMO_ASSERT(nsvc[i]); - gprs_ns2_vc_fsm_start(nsvc[i]); - OSMO_ASSERT(!gprs_ns2_vc_is_unblocked(nsvc[i])); + ns2_vc_fsm_start(nsvc[i]); + OSMO_ASSERT(!ns2_vc_is_unblocked(nsvc[i])); ns2_tx_reset(loop[i], NS_CAUSE_OM_INTERVENTION); ns2_tx_unblock(loop[i]); - OSMO_ASSERT(gprs_ns2_vc_is_unblocked(nsvc[i])); + OSMO_ASSERT(ns2_vc_is_unblocked(nsvc[i])); } /* both nsvcs are unblocked and alive */ -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22427 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Icecc5a918902cd10efac72bbac20780d39aab272 Gerrit-Change-Number: 22427 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 15:38:07 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 25 Jan 2021 15:38:07 +0000 Subject: Change in libosmocore[master]: gprs_ns2: drop the public prefix gprs_ from all static functions/stru... References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22428 ) Change subject: gprs_ns2: drop the public prefix gprs_ from all static functions/structs/.. ...................................................................... gprs_ns2: drop the public prefix gprs_ from all static functions/structs/.. Change-Id: I6ba0599e5a6d6fabf93851dd3ec7716f2ef2d840 --- M src/gb/gprs_ns2_frgre.c M src/gb/gprs_ns2_message.c M src/gb/gprs_ns2_vc_fsm.c 3 files changed, 53 insertions(+), 53 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/28/22428/1 diff --git a/src/gb/gprs_ns2_frgre.c b/src/gb/gprs_ns2_frgre.c index cc8500f..5047af0 100644 --- a/src/gb/gprs_ns2_frgre.c +++ b/src/gb/gprs_ns2_frgre.c @@ -393,9 +393,9 @@ return NULL; } -static int gprs_ns2_find_vc_by_dlci(struct gprs_ns2_vc_bind *bind, - uint16_t dlci, - struct gprs_ns2_vc **result) +static int ns2_find_vc_by_dlci(struct gprs_ns2_vc_bind *bind, + uint16_t dlci, + struct gprs_ns2_vc **result) { struct gprs_ns2_vc *nsvc; struct priv_vc *vcpriv; @@ -434,7 +434,7 @@ goto out; } - rc = gprs_ns2_find_vc_by_dlci(bind, dlci, &nsvc); + rc = ns2_find_vc_by_dlci(bind, dlci, &nsvc); if (rc) { /* VC not found */ rc = ns2_create_vc(bind, msg, "newconnection", &reject, &nsvc); diff --git a/src/gb/gprs_ns2_message.c b/src/gb/gprs_ns2_message.c index a185f3b..c525dd7 100644 --- a/src/gb/gprs_ns2_message.c +++ b/src/gb/gprs_ns2_message.c @@ -63,7 +63,7 @@ -static int gprs_ns2_validate_reset(struct gprs_ns2_vc *nsvc, struct msgb *msg, struct tlv_parsed *tp, uint8_t *cause) +static int ns2_validate_reset(struct gprs_ns2_vc *nsvc, struct msgb *msg, struct tlv_parsed *tp, uint8_t *cause) { if (!TLVP_PRES_LEN(tp, NS_IE_CAUSE, 1) || !TLVP_PRES_LEN(tp, NS_IE_VCI, 2) || !TLVP_PRES_LEN(tp, NS_IE_NSEI, 2)) { @@ -74,7 +74,7 @@ return 0; } -static int gprs_ns2_validate_reset_ack(struct gprs_ns2_vc *nsvc, struct msgb *msg, struct tlv_parsed *tp, uint8_t *cause) +static int ns2_validate_reset_ack(struct gprs_ns2_vc *nsvc, struct msgb *msg, struct tlv_parsed *tp, uint8_t *cause) { if (!TLVP_PRES_LEN(tp, NS_IE_VCI, 2) || !TLVP_PRES_LEN(tp, NS_IE_NSEI, 2)) { *cause = NS_CAUSE_MISSING_ESSENT_IE; @@ -84,7 +84,7 @@ return 0; } -static int gprs_ns2_validate_block(struct gprs_ns2_vc *nsvc, struct msgb *msg, struct tlv_parsed *tp, uint8_t *cause) +static int ns2_validate_block(struct gprs_ns2_vc *nsvc, struct msgb *msg, struct tlv_parsed *tp, uint8_t *cause) { if (!TLVP_PRES_LEN(tp, NS_IE_VCI, 2) || !TLVP_PRES_LEN(tp, NS_IE_CAUSE, 1)) { *cause = NS_CAUSE_MISSING_ESSENT_IE; @@ -94,7 +94,7 @@ return 0; } -static int gprs_ns2_validate_block_ack(struct gprs_ns2_vc *nsvc, struct msgb *msg, struct tlv_parsed *tp, uint8_t *cause) +static int ns2_validate_block_ack(struct gprs_ns2_vc *nsvc, struct msgb *msg, struct tlv_parsed *tp, uint8_t *cause) { if (!TLVP_PRES_LEN(tp, NS_IE_VCI, 2)) { *cause = NS_CAUSE_MISSING_ESSENT_IE; @@ -104,7 +104,7 @@ return 0; } -static int gprs_ns2_validate_status(struct gprs_ns2_vc *nsvc, struct msgb *msg, struct tlv_parsed *tp, uint8_t *cause) +static int ns2_validate_status(struct gprs_ns2_vc *nsvc, struct msgb *msg, struct tlv_parsed *tp, uint8_t *cause) { if (!TLVP_PRES_LEN(tp, NS_IE_CAUSE, 1)) { @@ -157,15 +157,15 @@ { switch (pdu_type) { case NS_PDUT_RESET: - return gprs_ns2_validate_reset(nsvc, msg, tp, cause); + return ns2_validate_reset(nsvc, msg, tp, cause); case NS_PDUT_RESET_ACK: - return gprs_ns2_validate_reset_ack(nsvc, msg, tp, cause); + return ns2_validate_reset_ack(nsvc, msg, tp, cause); case NS_PDUT_BLOCK: - return gprs_ns2_validate_block(nsvc, msg, tp, cause); + return ns2_validate_block(nsvc, msg, tp, cause); case NS_PDUT_BLOCK_ACK: - return gprs_ns2_validate_block_ack(nsvc, msg, tp, cause); + return ns2_validate_block_ack(nsvc, msg, tp, cause); case NS_PDUT_STATUS: - return gprs_ns2_validate_status(nsvc, msg, tp, cause); + return ns2_validate_status(nsvc, msg, tp, cause); /* following PDUs doesn't have any payloads */ case NS_PDUT_ALIVE: diff --git a/src/gb/gprs_ns2_vc_fsm.c b/src/gb/gprs_ns2_vc_fsm.c index d18983a..7ee29a1 100644 --- a/src/gb/gprs_ns2_vc_fsm.c +++ b/src/gb/gprs_ns2_vc_fsm.c @@ -121,7 +121,7 @@ GPRS_NS2_EV_REQ_OM_UNBLOCK, /* vty cmd: unblock*/ }; -static const struct value_string gprs_ns2_vc_event_names[] = { +static const struct value_string ns2_vc_event_names[] = { { GPRS_NS2_EV_REQ_START, "START" }, { GPRS_NS2_EV_RX_RESET, "RESET" }, { GPRS_NS2_EV_RX_RESET_ACK, "RESET_ACK" }, @@ -224,7 +224,7 @@ } } -static void gprs_ns2_st_unconfigured(struct osmo_fsm_inst *fi, uint32_t event, void *data) +static void ns2_st_unconfigured(struct osmo_fsm_inst *fi, uint32_t event, void *data) { struct gprs_ns2_vc_priv *priv = fi->priv; struct gprs_ns2_inst *nsi = priv->nsvc->nse->nsi; @@ -250,7 +250,7 @@ } -static void gprs_ns2_st_reset_onenter(struct osmo_fsm_inst *fi, uint32_t old_state) +static void ns2_st_reset_onenter(struct osmo_fsm_inst *fi, uint32_t old_state) { struct gprs_ns2_vc_priv *priv = fi->priv; @@ -265,7 +265,7 @@ ns2_nse_notify_unblocked(priv->nsvc, false); } -static void gprs_ns2_st_reset(struct osmo_fsm_inst *fi, uint32_t event, void *data) +static void ns2_st_reset(struct osmo_fsm_inst *fi, uint32_t event, void *data) { struct gprs_ns2_inst *nsi = ns_inst_from_fi(fi); struct gprs_ns2_vc_priv *priv = fi->priv; @@ -292,7 +292,7 @@ } } -static void gprs_ns2_st_blocked_onenter(struct osmo_fsm_inst *fi, uint32_t old_state) +static void ns2_st_blocked_onenter(struct osmo_fsm_inst *fi, uint32_t old_state) { struct gprs_ns2_vc_priv *priv = fi->priv; @@ -313,7 +313,7 @@ start_test_procedure(priv); } -static void gprs_ns2_st_blocked(struct osmo_fsm_inst *fi, uint32_t event, void *data) +static void ns2_st_blocked(struct osmo_fsm_inst *fi, uint32_t event, void *data) { struct gprs_ns2_vc_priv *priv = fi->priv; @@ -364,7 +364,7 @@ } } -static void gprs_ns2_st_unblocked_on_enter(struct osmo_fsm_inst *fi, uint32_t old_state) +static void ns2_st_unblocked_on_enter(struct osmo_fsm_inst *fi, uint32_t old_state) { struct gprs_ns2_vc_priv *priv = fi->priv; struct gprs_ns2_vc *nsvc = priv->nsvc; @@ -375,7 +375,7 @@ ns2_prim_status_ind(nse, nsvc, 0, NS_AFF_CAUSE_VC_RECOVERY); } -static void gprs_ns2_st_unblocked(struct osmo_fsm_inst *fi, uint32_t event, void *data) +static void ns2_st_unblocked(struct osmo_fsm_inst *fi, uint32_t event, void *data) { struct gprs_ns2_vc_priv *priv = fi->priv; @@ -392,7 +392,7 @@ } } -static void gprs_ns2_st_alive(struct osmo_fsm_inst *fi, uint32_t event, void *data) +static void ns2_st_alive(struct osmo_fsm_inst *fi, uint32_t event, void *data) { switch (event) { case GPRS_NS2_EV_RX_ALIVE_ACK: @@ -401,7 +401,7 @@ } } -static void gprs_ns2_st_alive_onenter(struct osmo_fsm_inst *fi, uint32_t old_state) +static void ns2_st_alive_onenter(struct osmo_fsm_inst *fi, uint32_t old_state) { struct gprs_ns2_vc_priv *priv = fi->priv; struct gprs_ns2_inst *nsi = ns_inst_from_fi(fi); @@ -416,17 +416,17 @@ ns2_nse_notify_unblocked(priv->nsvc, false); } -static void gprs_ns2_st_alive_onleave(struct osmo_fsm_inst *fi, uint32_t next_state) +static void ns2_st_alive_onleave(struct osmo_fsm_inst *fi, uint32_t next_state) { start_test_procedure(fi->priv); } -static const struct osmo_fsm_state gprs_ns2_vc_states[] = { +static const struct osmo_fsm_state ns2_vc_states[] = { [GPRS_NS2_ST_UNCONFIGURED] = { .in_event_mask = S(GPRS_NS2_EV_REQ_START), .out_state_mask = S(GPRS_NS2_ST_RESET) | S(GPRS_NS2_ST_ALIVE), .name = "UNCONFIGURED", - .action = gprs_ns2_st_unconfigured, + .action = ns2_st_unconfigured, }, [GPRS_NS2_ST_RESET] = { .in_event_mask = S(GPRS_NS2_EV_RX_RESET_ACK) | S(GPRS_NS2_EV_RX_RESET), @@ -434,8 +434,8 @@ S(GPRS_NS2_ST_BLOCKED) | S(GPRS_NS2_ST_UNCONFIGURED), .name = "RESET", - .action = gprs_ns2_st_reset, - .onenter = gprs_ns2_st_reset_onenter, + .action = ns2_st_reset, + .onenter = ns2_st_reset_onenter, }, [GPRS_NS2_ST_BLOCKED] = { .in_event_mask = S(GPRS_NS2_EV_RX_BLOCK) | S(GPRS_NS2_EV_RX_BLOCK_ACK) | @@ -445,8 +445,8 @@ S(GPRS_NS2_ST_BLOCKED) | S(GPRS_NS2_ST_UNCONFIGURED), .name = "BLOCKED", - .action = gprs_ns2_st_blocked, - .onenter = gprs_ns2_st_blocked_onenter, + .action = ns2_st_blocked, + .onenter = ns2_st_blocked_onenter, }, [GPRS_NS2_ST_UNBLOCKED] = { .in_event_mask = S(GPRS_NS2_EV_RX_BLOCK) | S(GPRS_NS2_EV_RX_UNBLOCK_ACK) | @@ -455,8 +455,8 @@ S(GPRS_NS2_ST_BLOCKED) | S(GPRS_NS2_ST_UNCONFIGURED), .name = "UNBLOCKED", - .action = gprs_ns2_st_unblocked, - .onenter = gprs_ns2_st_unblocked_on_enter, + .action = ns2_st_unblocked, + .onenter = ns2_st_unblocked_on_enter, }, /* ST_ALIVE is only used on VC without RESET/BLOCK */ @@ -466,13 +466,13 @@ S(GPRS_NS2_ST_UNBLOCKED) | S(GPRS_NS2_ST_UNCONFIGURED), .name = "ALIVE", - .action = gprs_ns2_st_alive, - .onenter = gprs_ns2_st_alive_onenter, - .onleave = gprs_ns2_st_alive_onleave, + .action = ns2_st_alive, + .onenter = ns2_st_alive_onenter, + .onleave = ns2_st_alive_onleave, }, }; -static int gprs_ns2_vc_fsm_timer_cb(struct osmo_fsm_inst *fi) +static int ns2_vc_fsm_timer_cb(struct osmo_fsm_inst *fi) { struct gprs_ns2_inst *nsi = ns_inst_from_fi(fi); struct gprs_ns2_vc_priv *priv = fi->priv; @@ -524,7 +524,7 @@ return 0; } -static void gprs_ns2_recv_unitdata(struct osmo_fsm_inst *fi, +static void ns2_recv_unitdata(struct osmo_fsm_inst *fi, struct msgb *msg) { struct gprs_ns2_vc_priv *priv = fi->priv; @@ -558,7 +558,7 @@ nsi->cb(&nsp.oph, nsi->cb_data); } -static void gprs_ns2_vc_fsm_allstate_action(struct osmo_fsm_inst *fi, +static void ns2_vc_fsm_allstate_action(struct osmo_fsm_inst *fi, uint32_t event, void *data) { @@ -577,7 +577,7 @@ osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_RESET, nsi->timeout[NS_TOUT_TNS_RESET], NS_TOUT_TNS_RESET); } /* pass the event down into FSM action */ - gprs_ns2_st_reset(fi, event, data); + ns2_st_reset(fi, event, data); break; case GPRS_NS2_EV_RX_ALIVE: switch (fi->state) { @@ -592,7 +592,7 @@ case GPRS_NS2_EV_RX_ALIVE_ACK: /* for VCs without RESET/BLOCK/UNBLOCK, the connections comes after ALIVE_ACK unblocked */ if (fi->state == GPRS_NS2_ST_ALIVE) - gprs_ns2_st_alive(fi, event, data); + ns2_st_alive(fi, event, data); else recv_test_procedure(fi); break; @@ -606,7 +606,7 @@ case GPRS_NS2_ST_BLOCKED: /* 7.2.1: the BLOCKED_ACK might be lost */ if (priv->accept_unitdata) { - gprs_ns2_recv_unitdata(fi, msg); + ns2_recv_unitdata(fi, msg); return; } @@ -617,7 +617,7 @@ /* ALIVE can receive UNITDATA if the ALIVE_ACK is lost */ case GPRS_NS2_ST_ALIVE: case GPRS_NS2_ST_UNBLOCKED: - gprs_ns2_recv_unitdata(fi, msg); + ns2_recv_unitdata(fi, msg); return; } @@ -648,7 +648,7 @@ } } -static void gprs_ns2_vc_fsm_clean(struct osmo_fsm_inst *fi, +static void ns2_vc_fsm_clean(struct osmo_fsm_inst *fi, enum osmo_fsm_term_cause cause) { struct gprs_ns2_vc_priv *priv = fi->priv; @@ -656,10 +656,10 @@ osmo_timer_del(&priv->alive.timer); } -static struct osmo_fsm gprs_ns2_vc_fsm = { +static struct osmo_fsm ns2_vc_fsm = { .name = "GPRS-NS2-VC", - .states = gprs_ns2_vc_states, - .num_states = ARRAY_SIZE(gprs_ns2_vc_states), + .states = ns2_vc_states, + .num_states = ARRAY_SIZE(ns2_vc_states), .allstate_event_mask = S(GPRS_NS2_EV_RX_UNITDATA) | S(GPRS_NS2_EV_RX_RESET) | S(GPRS_NS2_EV_RX_ALIVE) | @@ -667,11 +667,11 @@ S(GPRS_NS2_EV_REQ_FORCE_UNCONFIGURED) | S(GPRS_NS2_EV_REQ_OM_BLOCK) | S(GPRS_NS2_EV_REQ_OM_UNBLOCK), - .allstate_action = gprs_ns2_vc_fsm_allstate_action, - .cleanup = gprs_ns2_vc_fsm_clean, - .timer_cb = gprs_ns2_vc_fsm_timer_cb, + .allstate_action = ns2_vc_fsm_allstate_action, + .cleanup = ns2_vc_fsm_clean, + .timer_cb = ns2_vc_fsm_timer_cb, /* .log_subsys = DNS, "is not constant" */ - .event_names = gprs_ns2_vc_event_names, + .event_names = ns2_vc_event_names, .pre_term = NULL, .log_subsys = DLNS, }; @@ -690,7 +690,7 @@ struct osmo_fsm_inst *fi; struct gprs_ns2_vc_priv *priv; - fi = osmo_fsm_inst_alloc(&gprs_ns2_vc_fsm, nsvc, NULL, LOGL_DEBUG, id); + fi = osmo_fsm_inst_alloc(&ns2_vc_fsm, nsvc, NULL, LOGL_DEBUG, id); if (!fi) return fi; @@ -839,5 +839,5 @@ /* initialize osmo_ctx on main tread */ static __attribute__((constructor)) void on_dso_load_ctx(void) { - OSMO_ASSERT(osmo_fsm_register(&gprs_ns2_vc_fsm) == 0); + OSMO_ASSERT(osmo_fsm_register(&ns2_vc_fsm) == 0); } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22428 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I6ba0599e5a6d6fabf93851dd3ec7716f2ef2d840 Gerrit-Change-Number: 22428 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 15:38:08 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 25 Jan 2021 15:38:08 +0000 Subject: Change in libosmocore[master]: gprs_ns2: refactor: ensure all enums have GPRS_NS2_ References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22429 ) Change subject: gprs_ns2: refactor: ensure all enums have GPRS_NS2_ ...................................................................... gprs_ns2: refactor: ensure all enums have GPRS_NS2_ Change-Id: I548ff12f7277cbb7e1a630a3dc02b738ce89be72 --- M include/osmocom/gprs/gprs_ns2.h M src/gb/gprs_bssgp2.c M src/gb/gprs_ns2.c M src/gb/gprs_ns2_fr.c M src/gb/gprs_ns2_sns.c M src/gb/gprs_ns2_udp.c M src/gb/gprs_ns2_vc_fsm.c M src/gb/gprs_ns2_vty.c M src/gb/gprs_ns2_vty2.c M tests/gb/gprs_ns2_test.c 10 files changed, 123 insertions(+), 123 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/29/22429/1 diff --git a/include/osmocom/gprs/gprs_ns2.h b/include/osmocom/gprs/gprs_ns2.h index 1b20298..7ceea43 100644 --- a/include/osmocom/gprs/gprs_ns2.h +++ b/include/osmocom/gprs/gprs_ns2.h @@ -26,18 +26,18 @@ /*! The VC will use RESET/BLOCK/UNBLOCK to start the connection and do ALIVE/ACK. * This is what is needed for Frame Relay transport, and if you use a R97/R99 Gb * interface over an IP transport (never standardized by 3GPP) */ - NS2_VC_MODE_BLOCKRESET, + GPRS_NS2_VC_MODE_BLOCKRESET, /*! The VC will only use ALIVE/ACK (no RESET/BLOCK/UNBLOCK), which is for Gb-IP * interface compliant to 3GPP Rel=4 or later. */ - NS2_VC_MODE_ALIVE, + GPRS_NS2_VC_MODE_ALIVE, }; enum gprs_ns2_dialect { - NS2_DIALECT_UNDEF, - NS2_DIALECT_STATIC_ALIVE, - NS2_DIALECT_STATIC_RESETBLOCK, - NS2_DIALECT_IPACCESS, - NS2_DIALECT_SNS, + GPRS_NS2_DIALECT_UNDEF, + GPRS_NS2_DIALECT_STATIC_ALIVE, + GPRS_NS2_DIALECT_STATIC_RESETBLOCK, + GPRS_NS2_DIALECT_IPACCESS, + GPRS_NS2_DIALECT_SNS, }; /*! Osmocom NS link layer types */ @@ -50,9 +50,9 @@ /*! Osmocom NS primitives according to 48.016 5.2 Service primitves */ enum gprs_ns2_prim { - PRIM_NS_UNIT_DATA, - PRIM_NS_CONGESTION, - PRIM_NS_STATUS, + GPRS_NS2_PRIM_UNIT_DATA, + GPRS_NS2_PRIM_CONGESTION, + GPRS_NS2_PRIM_NS_STATUS, }; extern const struct value_string gprs_ns2_prim_strs[]; @@ -68,22 +68,22 @@ /*! Osmocom NS primitives according to 48.016 5.2.2.4 Service primitves */ enum gprs_ns2_congestion_cause { - NS_CONG_CAUSE_BACKWARD_BEGIN, - NS_CONG_CAUSE_BACKWARD_END, - NS_CONG_CAUSE_FORWARD_BEGIN, - NS_CONG_CAUSE_FORWARD_END, + GPRS_NS2_CONG_CAUSE_BACKWARD_BEGIN, + GPRS_NS2_CONG_CAUSE_BACKWARD_END, + GPRS_NS2_CONG_CAUSE_FORWARD_BEGIN, + GPRS_NS2_CONG_CAUSE_FORWARD_END, }; /*! Osmocom NS primitives according to 48.016 5.2.2.6 Service primitves */ enum gprs_ns2_affecting_cause { - NS_AFF_CAUSE_VC_FAILURE, - NS_AFF_CAUSE_VC_RECOVERY, - NS_AFF_CAUSE_FAILURE, - NS_AFF_CAUSE_RECOVERY, + GPRS_NS2_AFF_CAUSE_VC_FAILURE, + GPRS_NS2_AFF_CAUSE_VC_RECOVERY, + GPRS_NS2_AFF_CAUSE_FAILURE, + GPRS_NS2_AFF_CAUSE_RECOVERY, /* osmocom own causes */ - NS_AFF_CAUSE_SNS_CONFIGURED, - NS_AFF_CAUSE_SNS_FAILURE, - NS_AFF_CAUSE_SNS_NO_ENDPOINTS, + GPRS_NS2_AFF_CAUSE_SNS_CONFIGURED, + GPRS_NS2_AFF_CAUSE_SNS_FAILURE, + GPRS_NS2_AFF_CAUSE_SNS_NO_ENDPOINTS, }; extern const struct value_string gprs_ns2_aff_cause_prim_strs[]; @@ -94,9 +94,9 @@ /*! Osmocom NS primitives according to 48.016 5.2.2.7 Service primitves */ enum gprs_ns2_change_ip_endpoint { - NS_ENDPOINT_NO_CHANGE, - NS_ENDPOINT_REQUEST_CHANGE, - NS_ENDPOINT_CONFIRM_CHANGE, + GRPS_NS2_ENDPOINT_NO_CHANGE, + GPRS_NS2_ENDPOINT_REQUEST_CHANGE, + GPRS_NS2_ENDPOINT_CONFIRM_CHANGE, }; extern const struct value_string gprs_ns2_cause_strs[]; diff --git a/src/gb/gprs_bssgp2.c b/src/gb/gprs_bssgp2.c index 5a8d41f..0f519ad 100644 --- a/src/gb/gprs_bssgp2.c +++ b/src/gb/gprs_bssgp2.c @@ -52,7 +52,7 @@ nsp.nsei = nsei; nsp.u.unitdata.link_selector = lsp; - osmo_prim_init(&nsp.oph, SAP_NS, PRIM_NS_UNIT_DATA, PRIM_OP_REQUEST, msg); + osmo_prim_init(&nsp.oph, SAP_NS, GPRS_NS2_PRIM_UNIT_DATA, PRIM_OP_REQUEST, msg); rc = gprs_ns2_recv_prim(nsi, &nsp.oph); return rc; diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c index 811294b..9682544 100644 --- a/src/gb/gprs_ns2.c +++ b/src/gb/gprs_ns2.c @@ -196,19 +196,19 @@ }; const struct value_string gprs_ns2_aff_cause_prim_strs[] = { - { NS_AFF_CAUSE_VC_FAILURE, "NSVC failure" }, - { NS_AFF_CAUSE_VC_RECOVERY, "NSVC recovery" }, - { NS_AFF_CAUSE_FAILURE, "NSE failure" }, - { NS_AFF_CAUSE_RECOVERY, "NSE recovery" }, - { NS_AFF_CAUSE_SNS_CONFIGURED, "NSE SNS configured" }, - { NS_AFF_CAUSE_SNS_FAILURE, "NSE SNS failure" }, + { GPRS_NS2_AFF_CAUSE_VC_FAILURE, "NSVC failure" }, + { GPRS_NS2_AFF_CAUSE_VC_RECOVERY, "NSVC recovery" }, + { GPRS_NS2_AFF_CAUSE_FAILURE, "NSE failure" }, + { GPRS_NS2_AFF_CAUSE_RECOVERY, "NSE recovery" }, + { GPRS_NS2_AFF_CAUSE_SNS_CONFIGURED, "NSE SNS configured" }, + { GPRS_NS2_AFF_CAUSE_SNS_FAILURE, "NSE SNS failure" }, { 0, NULL } }; const struct value_string gprs_ns2_prim_strs[] = { - { PRIM_NS_UNIT_DATA, "UNIT DATA" }, - { PRIM_NS_CONGESTION, "CONGESTION" }, - { PRIM_NS_STATUS, "STATUS" }, + { GPRS_NS2_PRIM_UNIT_DATA, "UNIT DATA" }, + { GPRS_NS2_PRIM_CONGESTION, "CONGESTION" }, + { GPRS_NS2_PRIM_NS_STATUS, "STATUS" }, { 0, NULL } }; @@ -429,7 +429,7 @@ nsp = container_of(oph, struct osmo_gprs_ns2_prim, oph); - if (oph->operation != PRIM_OP_REQUEST || oph->primitive != PRIM_NS_UNIT_DATA) + if (oph->operation != PRIM_OP_REQUEST || oph->primitive != GPRS_NS2_PRIM_UNIT_DATA) return -EINVAL; if (!oph->msg) @@ -448,9 +448,9 @@ if (!nsvc) return 0; - if (nsp->u.unitdata.change == NS_ENDPOINT_REQUEST_CHANGE) + if (nsp->u.unitdata.change == GPRS_NS2_ENDPOINT_REQUEST_CHANGE) sducontrol = 1; - else if (nsp->u.unitdata.change == NS_ENDPOINT_CONFIRM_CHANGE) + else if (nsp->u.unitdata.change == GPRS_NS2_ENDPOINT_CONFIRM_CHANGE) sducontrol = 2; return ns2_tx_unit_data(nsvc, bvci, sducontrol, oph->msg); @@ -477,7 +477,7 @@ if (nsvc) nsp.u.status.nsvc = gprs_ns2_ll_str_buf(nsvc_str, sizeof(nsvc_str), nsvc); - osmo_prim_init(&nsp.oph, SAP_NS, PRIM_NS_STATUS, + osmo_prim_init(&nsp.oph, SAP_NS, GPRS_NS2_PRIM_NS_STATUS, PRIM_OP_INDICATION, NULL); nse->nsi->cb(&nsp.oph, nse->nsi->cb_data); } @@ -539,7 +539,7 @@ if (!nsvc) return; - ns2_prim_status_ind(nsvc->nse, nsvc, 0, NS_AFF_CAUSE_VC_FAILURE); + ns2_prim_status_ind(nsvc->nse, nsvc, 0, GPRS_NS2_AFF_CAUSE_VC_FAILURE); llist_del(&nsvc->list); llist_del(&nsvc->blist); @@ -703,7 +703,7 @@ if (!nse) return NULL; - if (dialect == NS2_DIALECT_SNS) { + if (dialect == GPRS_NS2_DIALECT_SNS) { snprintf(sns, sizeof(sns), "NSE%05u-SNS", nsei); nse->bss_sns_fi = ns2_sns_bss_fsm_alloc(nse, sns); if (!nse->bss_sns_fi) { @@ -741,7 +741,7 @@ nse->alive = false; gprs_ns2_free_nsvcs(nse); - ns2_prim_status_ind(nse, NULL, 0, NS_AFF_CAUSE_FAILURE); + ns2_prim_status_ind(nse, NULL, 0, GPRS_NS2_AFF_CAUSE_FAILURE); llist_del(&nse->list); if (nse->bss_sns_fi) @@ -828,7 +828,7 @@ case NS_PDUT_RESET: /* accept PDU RESET when vc_mode matches */ if (bind->accept_ipaccess) { - dialect = NS2_DIALECT_IPACCESS; + dialect = GPRS_NS2_DIALECT_IPACCESS; break; } @@ -871,7 +871,7 @@ nse = gprs_ns2_nse_by_nsei(bind->nsi, nsei); if (!nse) { /* only create nse for udp & ipaccess */ - if (bind->ll != GPRS_NS2_LL_UDP || dialect != NS2_DIALECT_IPACCESS) + if (bind->ll != GPRS_NS2_LL_UDP || dialect != GPRS_NS2_DIALECT_IPACCESS) return NS2_CS_SKIPPED; if (!bind->nsi->create_nse || !bind->accept_ipaccess) @@ -942,7 +942,7 @@ if (!nsvc) return NULL; - if (nsvc->mode == NS2_VC_MODE_BLOCKRESET) { + if (nsvc->mode == GPRS_NS2_VC_MODE_BLOCKRESET) { nsvc->nsvci = nsvci; nsvc->nsvci_is_valid = true; } @@ -1151,7 +1151,7 @@ /* wait until both data_weight and sig_weight are != 0 before declaring NSE as alive */ if (unblocked && nse->sum_data_weight && nse->sum_sig_weight) { nse->alive = true; - ns2_prim_status_ind(nse, NULL, 0, NS_AFF_CAUSE_RECOVERY); + ns2_prim_status_ind(nse, NULL, 0, GPRS_NS2_AFF_CAUSE_RECOVERY); nse->first = false; return; } @@ -1159,7 +1159,7 @@ if (nse->alive && (nse->sum_data_weight == 0 || nse->sum_sig_weight == 0)) { /* nse became unavailable */ nse->alive = false; - ns2_prim_status_ind(nse, NULL, 0, NS_AFF_CAUSE_FAILURE); + ns2_prim_status_ind(nse, NULL, 0, GPRS_NS2_AFF_CAUSE_FAILURE); } } @@ -1284,12 +1284,12 @@ enum gprs_ns2_vc_mode ns2_dialect_to_vc_mode(enum gprs_ns2_dialect dialect) { switch (dialect) { - case NS2_DIALECT_SNS: - case NS2_DIALECT_STATIC_ALIVE: - return NS2_VC_MODE_ALIVE; - case NS2_DIALECT_STATIC_RESETBLOCK: - case NS2_DIALECT_IPACCESS: - return NS2_VC_MODE_BLOCKRESET; + case GPRS_NS2_DIALECT_SNS: + case GPRS_NS2_DIALECT_STATIC_ALIVE: + return GPRS_NS2_VC_MODE_ALIVE; + case GPRS_NS2_DIALECT_STATIC_RESETBLOCK: + case GPRS_NS2_DIALECT_IPACCESS: + return GPRS_NS2_VC_MODE_BLOCKRESET; default: return -1; } diff --git a/src/gb/gprs_ns2_fr.c b/src/gb/gprs_ns2_fr.c index 8ad44ac..1c88db6 100644 --- a/src/gb/gprs_ns2_fr.c +++ b/src/gb/gprs_ns2_fr.c @@ -751,7 +751,7 @@ snprintf(idbuf, sizeof(idbuf), "%s-%s-DLCI%u-NSE%05u-NSVC%05u", gprs_ns2_lltype_str(nse->ll), bpriv->netif, dlci, nse->nsei, nsvci); - nsvc = ns2_vc_alloc(bind, nse, true, NS2_VC_MODE_BLOCKRESET, idbuf); + nsvc = ns2_vc_alloc(bind, nse, true, GPRS_NS2_VC_MODE_BLOCKRESET, idbuf); if (!nsvc) goto err; @@ -789,7 +789,7 @@ OSMO_ASSERT(gprs_ns2_is_fr_bind(bind)); nse = gprs_ns2_nse_by_nsei(bind->nsi, nsei); if (!nse) { - nse = gprs_ns2_create_nse(bind->nsi, nsei, GPRS_NS2_LL_FR, NS2_DIALECT_STATIC_RESETBLOCK); + nse = gprs_ns2_create_nse(bind->nsi, nsei, GPRS_NS2_LL_FR, GPRS_NS2_DIALECT_STATIC_RESETBLOCK); if (!nse) return NULL; created_nse = true; diff --git a/src/gb/gprs_ns2_sns.c b/src/gb/gprs_ns2_sns.c index 2dc6524..427a153 100644 --- a/src/gb/gprs_ns2_sns.c +++ b/src/gb/gprs_ns2_sns.c @@ -713,7 +713,7 @@ /* on a generic failure, the timer callback will recover */ if (old_state != GPRS_SNS_ST_UNCONFIGURED) - ns2_prim_status_ind(gss->nse, NULL, 0, NS_AFF_CAUSE_SNS_FAILURE); + ns2_prim_status_ind(gss->nse, NULL, 0, GPRS_NS2_AFF_CAUSE_SNS_FAILURE); ns2_clear_ipv46_entries(gss); @@ -1265,7 +1265,7 @@ static void ns2_sns_st_configured_onenter(struct osmo_fsm_inst *fi, uint32_t old_state) { struct gprs_ns2_nse *nse = nse_inst_from_fi(fi); - ns2_prim_status_ind(nse, NULL, 0, NS_AFF_CAUSE_SNS_CONFIGURED); + ns2_prim_status_ind(nse, NULL, 0, GPRS_NS2_AFF_CAUSE_SNS_CONFIGURED); } static const struct osmo_fsm_state ns2_sns_bss_states[] = { @@ -1369,7 +1369,7 @@ /* Choose the next sns endpoint. */ if (llist_empty(&gss->sns_endpoints)) { gss->initial = NULL; - ns2_prim_status_ind(gss->nse, NULL, 0, NS_AFF_CAUSE_SNS_NO_ENDPOINTS); + ns2_prim_status_ind(gss->nse, NULL, 0, GPRS_NS2_AFF_CAUSE_SNS_NO_ENDPOINTS); osmo_fsm_inst_state_chg(fi, GPRS_SNS_ST_UNCONFIGURED, 0, 3); return; } else if (!gss->initial) { @@ -1606,7 +1606,7 @@ return -EINVAL; } - if (nse->dialect != NS2_DIALECT_SNS) { + if (nse->dialect != GPRS_NS2_DIALECT_SNS) { return -EINVAL; } @@ -1645,7 +1645,7 @@ return -EINVAL; } - if (nse->dialect != NS2_DIALECT_SNS) { + if (nse->dialect != GPRS_NS2_DIALECT_SNS) { return -EINVAL; } @@ -1698,7 +1698,7 @@ return -EINVAL; } - if (nse->dialect != NS2_DIALECT_SNS) { + if (nse->dialect != GPRS_NS2_DIALECT_SNS) { return -EINVAL; } diff --git a/src/gb/gprs_ns2_udp.c b/src/gb/gprs_ns2_udp.c index e1ffad6..43ece13 100644 --- a/src/gb/gprs_ns2_udp.c +++ b/src/gb/gprs_ns2_udp.c @@ -488,7 +488,7 @@ if (osmo_sockaddr_cmp(remote, &vpriv->remote)) return false; - if (nsvc->mode == NS2_VC_MODE_BLOCKRESET) + if (nsvc->mode == GPRS_NS2_VC_MODE_BLOCKRESET) if (nsvc->nsvci != nsvci) return false; diff --git a/src/gb/gprs_ns2_vc_fsm.c b/src/gb/gprs_ns2_vc_fsm.c index 7ee29a1..457a41f 100644 --- a/src/gb/gprs_ns2_vc_fsm.c +++ b/src/gb/gprs_ns2_vc_fsm.c @@ -212,7 +212,7 @@ osmo_timer_schedule(&priv->alive.timer, nsi->timeout[NS_TOUT_TNS_ALIVE], 0); } else { /* lost connection */ - if (priv->nsvc->mode == NS2_VC_MODE_BLOCKRESET) { + if (priv->nsvc->mode == GPRS_NS2_VC_MODE_BLOCKRESET) { osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_RESET, nsi->timeout[NS_TOUT_TNS_RESET], 0); } else { osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_ALIVE, nsi->timeout[NS_TOUT_TNS_ALIVE], 0); @@ -235,10 +235,10 @@ switch (event) { case GPRS_NS2_EV_REQ_START: switch (priv->nsvc->mode) { - case NS2_VC_MODE_ALIVE: + case GPRS_NS2_VC_MODE_ALIVE: osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_ALIVE, nsi->timeout[NS_TOUT_TNS_ALIVE], NS_TOUT_TNS_ALIVE); break; - case NS2_VC_MODE_BLOCKRESET: + case GPRS_NS2_VC_MODE_BLOCKRESET: osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_RESET, nsi->timeout[NS_TOUT_TNS_RESET], NS_TOUT_TNS_RESET); break; } @@ -372,7 +372,7 @@ priv->accept_unitdata = true; ns2_nse_notify_unblocked(nsvc, true); - ns2_prim_status_ind(nse, nsvc, 0, NS_AFF_CAUSE_VC_RECOVERY); + ns2_prim_status_ind(nse, nsvc, 0, GPRS_NS2_AFF_CAUSE_VC_RECOVERY); } static void ns2_st_unblocked(struct osmo_fsm_inst *fi, uint32_t event, void *data) @@ -551,9 +551,9 @@ /* 10.3.9 NS SDU Control Bits */ if (nsh->data[0] & 0x1) - nsp.u.unitdata.change = NS_ENDPOINT_REQUEST_CHANGE; + nsp.u.unitdata.change = GPRS_NS2_ENDPOINT_REQUEST_CHANGE; - osmo_prim_init(&nsp.oph, SAP_NS, PRIM_NS_UNIT_DATA, + osmo_prim_init(&nsp.oph, SAP_NS, GPRS_NS2_PRIM_UNIT_DATA, PRIM_OP_INDICATION, msg); nsi->cb(&nsp.oph, nsi->cb_data); } @@ -568,7 +568,7 @@ switch (event) { case GPRS_NS2_EV_RX_RESET: - if (priv->nsvc->mode != NS2_VC_MODE_BLOCKRESET) + if (priv->nsvc->mode != GPRS_NS2_VC_MODE_BLOCKRESET) break; /* move the FSM into reset */ diff --git a/src/gb/gprs_ns2_vty.c b/src/gb/gprs_ns2_vty.c index d6674ff..f803655 100644 --- a/src/gb/gprs_ns2_vty.c +++ b/src/gb/gprs_ns2_vty.c @@ -212,7 +212,7 @@ priv.dscp, VTY_NEWLINE); vty_out(vty, " encapsulation udp use-reset-block-unblock %s%s", - priv.vc_mode == NS2_VC_MODE_BLOCKRESET ? "enabled" : "disabled", VTY_NEWLINE); + priv.vc_mode == GPRS_NS2_VC_MODE_BLOCKRESET ? "enabled" : "disabled", VTY_NEWLINE); llist_for_each_entry(vtyvc, &priv.vtyvc, list) { vty_out(vty, " nse %u nsvci %u%s", @@ -440,7 +440,7 @@ return CMD_WARNING; } - if (nse->dialect == NS2_DIALECT_SNS) { + if (nse->dialect == GPRS_NS2_DIALECT_SNS) { gprs_ns2_free_nsvcs(nse); } else { /* Perform the operation for all nsvc */ @@ -718,9 +718,9 @@ enum gprs_ns2_vc_mode vc_mode; if (!strcmp(argv[0], "enabled")) - vc_mode = NS2_VC_MODE_BLOCKRESET; + vc_mode = GPRS_NS2_VC_MODE_BLOCKRESET; else - vc_mode = NS2_VC_MODE_ALIVE; + vc_mode = GPRS_NS2_VC_MODE_ALIVE; priv.vc_mode = vc_mode; @@ -831,7 +831,7 @@ vty_nsi = nsi; memset(&priv, 0, sizeof(struct ns2_vty_priv)); INIT_LLIST_HEAD(&priv.vtyvc); - priv.vc_mode = NS2_VC_MODE_BLOCKRESET; + priv.vc_mode = GPRS_NS2_VC_MODE_BLOCKRESET; if (default_bind) memcpy(&priv.udp, default_bind, sizeof(*default_bind)); @@ -888,7 +888,7 @@ struct gprs_ns2_nse *nse; struct gprs_ns2_vc *nsvc; struct osmo_sockaddr sockaddr; - enum gprs_ns2_dialect dialect = NS2_DIALECT_UNDEF; + enum gprs_ns2_dialect dialect = GPRS_NS2_DIALECT_UNDEF; int rc = 0; if (!vty_nsi) @@ -906,7 +906,7 @@ return -1; } - bind->accept_ipaccess = priv.vc_mode == NS2_VC_MODE_BLOCKRESET; + bind->accept_ipaccess = priv.vc_mode == GPRS_NS2_VC_MODE_BLOCKRESET; } /* create vcs */ @@ -914,10 +914,10 @@ /* validate settings */ switch (vtyvc->ll) { case GPRS_NS2_LL_UDP: - if (priv.vc_mode == NS2_VC_MODE_BLOCKRESET) - dialect = NS2_DIALECT_IPACCESS; + if (priv.vc_mode == GPRS_NS2_VC_MODE_BLOCKRESET) + dialect = GPRS_NS2_DIALECT_IPACCESS; else - dialect = NS2_DIALECT_STATIC_ALIVE; + dialect = GPRS_NS2_DIALECT_STATIC_ALIVE; if (strlen(vtyvc->remote.ip) == 0) { /* Invalid IP for VC */ continue; @@ -934,10 +934,10 @@ } break; case GPRS_NS2_LL_FR: - dialect = NS2_DIALECT_STATIC_RESETBLOCK; + dialect = GPRS_NS2_DIALECT_STATIC_RESETBLOCK; break; case GPRS_NS2_LL_FR_GRE: - dialect = NS2_DIALECT_STATIC_RESETBLOCK; + dialect = GPRS_NS2_DIALECT_STATIC_RESETBLOCK; continue; case GPRS_NS2_LL_UNDEF: /* should not happen */ diff --git a/src/gb/gprs_ns2_vty2.c b/src/gb/gprs_ns2_vty2.c index 43dd263..31aff3e 100644 --- a/src/gb/gprs_ns2_vty2.c +++ b/src/gb/gprs_ns2_vty2.c @@ -171,7 +171,7 @@ nse = gprs_ns2_nse_by_nsei(vty_nsi, nsei); if (!nse) { - nse = gprs_ns2_create_nse(vty_nsi, nsei, GPRS_NS2_LL_UNDEF, NS2_DIALECT_UNDEF); + nse = gprs_ns2_create_nse(vty_nsi, nsei, GPRS_NS2_LL_UNDEF, GPRS_NS2_DIALECT_UNDEF); if (!nse) { vty_out(vty, "Failed to create NSE!%s", VTY_NEWLINE); return CMD_ERR_INCOMPLETE; @@ -345,7 +345,7 @@ break; case GPRS_NS2_LL_UDP: switch (nsvc->nse->dialect) { - case NS2_DIALECT_IPACCESS: + case GPRS_NS2_DIALECT_IPACCESS: addr = gprs_ns2_ip_vc_remote(nsvc); if (!addr) break; @@ -355,7 +355,7 @@ nsvc->bind->name, addr_str.ip, addr_str.port, nsvc->nsvci, VTY_NEWLINE); break; - case NS2_DIALECT_STATIC_ALIVE: + case GPRS_NS2_DIALECT_STATIC_ALIVE: addr = gprs_ns2_ip_vc_remote(nsvc); if (!addr) break; @@ -390,7 +390,7 @@ vty_out(vty, " nse %u%s", nse->nsei, VTY_NEWLINE); switch (nse->dialect) { - case NS2_DIALECT_SNS: + case GPRS_NS2_DIALECT_SNS: ns2_sns_write_vty(vty, nse); break; default: @@ -709,7 +709,7 @@ goto err; } - if (nse->dialect != NS2_DIALECT_STATIC_RESETBLOCK && nse->dialect != NS2_DIALECT_UNDEF) { + if (nse->dialect != GPRS_NS2_DIALECT_STATIC_RESETBLOCK && nse->dialect != GPRS_NS2_DIALECT_UNDEF) { vty_out(vty, "Can not mix NS-VC with different dialects%s", VTY_NEWLINE); goto err; } @@ -719,8 +719,8 @@ ll_modified = true; } - if (nse->dialect == NS2_DIALECT_UNDEF) { - nse->dialect = NS2_DIALECT_STATIC_RESETBLOCK; + if (nse->dialect == GPRS_NS2_DIALECT_UNDEF) { + nse->dialect = GPRS_NS2_DIALECT_STATIC_RESETBLOCK; dialect_modified = true; } @@ -755,7 +755,7 @@ if (ll_modified) nse->ll = GPRS_NS2_LL_UNDEF; if (dialect_modified) - nse->dialect = NS2_DIALECT_UNDEF; + nse->dialect = GPRS_NS2_DIALECT_UNDEF; return CMD_WARNING; } @@ -806,7 +806,7 @@ gprs_ns2_free_nsvc(nsvc); if (llist_empty(&nse->nsvc)) { nse->ll = GPRS_NS2_LL_UNDEF; - nse->dialect = NS2_DIALECT_UNDEF; + nse->dialect = GPRS_NS2_DIALECT_UNDEF; } return CMD_SUCCESS; @@ -825,15 +825,15 @@ uint16_t nsvci = atoi(argv[0]); switch (nse->dialect) { - case NS2_DIALECT_SNS: - case NS2_DIALECT_STATIC_ALIVE: + case GPRS_NS2_DIALECT_SNS: + case GPRS_NS2_DIALECT_STATIC_ALIVE: vty_out(vty, "NSE doesn't support NSVCI.%s", VTY_NEWLINE); return CMD_WARNING; - case NS2_DIALECT_UNDEF: + case GPRS_NS2_DIALECT_UNDEF: vty_out(vty, "No NSVCs configured%s", VTY_NEWLINE); return CMD_WARNING; - case NS2_DIALECT_IPACCESS: - case NS2_DIALECT_STATIC_RESETBLOCK: + case GPRS_NS2_DIALECT_IPACCESS: + case GPRS_NS2_DIALECT_STATIC_RESETBLOCK: break; } @@ -852,7 +852,7 @@ gprs_ns2_free_nsvc(nsvc); if (llist_empty(&nse->nsvc)) { nse->ll = GPRS_NS2_LL_UNDEF; - nse->dialect = NS2_DIALECT_UNDEF; + nse->dialect = GPRS_NS2_DIALECT_UNDEF; } return CMD_SUCCESS; @@ -883,8 +883,8 @@ ll_modified = true; } - if (nse->dialect == NS2_DIALECT_UNDEF) { - nse->dialect = NS2_DIALECT_STATIC_ALIVE; + if (nse->dialect == GPRS_NS2_DIALECT_UNDEF) { + nse->dialect = GPRS_NS2_DIALECT_STATIC_ALIVE; dialect_modified = true; } @@ -893,7 +893,7 @@ goto err; } - if (nse->dialect != NS2_DIALECT_STATIC_ALIVE) { + if (nse->dialect != GPRS_NS2_DIALECT_STATIC_ALIVE) { vty_out(vty, "Can not mix NS-VC with different dialects%s", VTY_NEWLINE); goto err; } @@ -934,7 +934,7 @@ if (ll_modified) nse->ll = GPRS_NS2_LL_UNDEF; if (dialect_modified) - nse->dialect = NS2_DIALECT_UNDEF; + nse->dialect = GPRS_NS2_DIALECT_UNDEF; return CMD_WARNING; } @@ -961,7 +961,7 @@ return CMD_WARNING; } - if (nse->dialect != NS2_DIALECT_STATIC_ALIVE) { + if (nse->dialect != GPRS_NS2_DIALECT_STATIC_ALIVE) { vty_out(vty, "This NSE doesn't support UDP with dialect static alive.%s", VTY_NEWLINE); return CMD_WARNING; } @@ -1010,7 +1010,7 @@ gprs_ns2_free_nsvc(nsvc); if (llist_empty(&nse->nsvc)) { nse->ll = GPRS_NS2_LL_UNDEF; - nse->dialect = NS2_DIALECT_UNDEF; + nse->dialect = GPRS_NS2_DIALECT_UNDEF; } return CMD_SUCCESS; @@ -1044,8 +1044,8 @@ ll_modified = true; } - if (nse->dialect == NS2_DIALECT_UNDEF) { - nse->dialect = NS2_DIALECT_IPACCESS; + if (nse->dialect == GPRS_NS2_DIALECT_UNDEF) { + nse->dialect = GPRS_NS2_DIALECT_IPACCESS; dialect_modified = true; } @@ -1054,7 +1054,7 @@ goto err; } - if (nse->dialect != NS2_DIALECT_IPACCESS) { + if (nse->dialect != GPRS_NS2_DIALECT_IPACCESS) { vty_out(vty, "Can not mix NS-VC with different dialects%s", VTY_NEWLINE); goto err; } @@ -1095,7 +1095,7 @@ if (ll_modified) nse->ll = GPRS_NS2_LL_UNDEF; if (dialect_modified) - nse->dialect = NS2_DIALECT_UNDEF; + nse->dialect = GPRS_NS2_DIALECT_UNDEF; return CMD_WARNING; } @@ -1125,7 +1125,7 @@ return CMD_WARNING; } - if (nse->dialect != NS2_DIALECT_IPACCESS) { + if (nse->dialect != GPRS_NS2_DIALECT_IPACCESS) { vty_out(vty, "This NSE doesn't support UDP with dialect ipaccess.%s", VTY_NEWLINE); return CMD_WARNING; } @@ -1185,7 +1185,7 @@ gprs_ns2_free_nsvc(nsvc); if (llist_empty(&nse->nsvc)) { nse->ll = GPRS_NS2_LL_UNDEF; - nse->dialect = NS2_DIALECT_UNDEF; + nse->dialect = GPRS_NS2_DIALECT_UNDEF; } return CMD_SUCCESS; @@ -1213,13 +1213,13 @@ ll_modified = true; } - if (nse->dialect == NS2_DIALECT_UNDEF) { + if (nse->dialect == GPRS_NS2_DIALECT_UNDEF) { char sns[16]; snprintf(sns, sizeof(sns), "NSE%05u-SNS", nse->nsei); nse->bss_sns_fi = ns2_sns_bss_fsm_alloc(nse, sns); if (!nse->bss_sns_fi) goto err; - nse->dialect = NS2_DIALECT_SNS; + nse->dialect = GPRS_NS2_DIALECT_SNS; dialect_modified = true; } @@ -1228,7 +1228,7 @@ goto err; } - if (nse->dialect != NS2_DIALECT_SNS) { + if (nse->dialect != GPRS_NS2_DIALECT_SNS) { vty_out(vty, "Can not mix NS-VC with different dialects%s", VTY_NEWLINE); goto err; } @@ -1259,7 +1259,7 @@ if (ll_modified) nse->ll = GPRS_NS2_LL_UNDEF; if (dialect_modified) - nse->dialect = NS2_DIALECT_UNDEF; + nse->dialect = GPRS_NS2_DIALECT_UNDEF; return CMD_WARNING; } @@ -1282,7 +1282,7 @@ return CMD_WARNING; } - if (nse->dialect != NS2_DIALECT_SNS) { + if (nse->dialect != GPRS_NS2_DIALECT_SNS) { vty_out(vty, "This NSE doesn't support UDP with dialect ip-sns.%s", VTY_NEWLINE); return CMD_WARNING; } @@ -1313,7 +1313,7 @@ osmo_fsm_inst_term(nse->bss_sns_fi, OSMO_FSM_TERM_REQUEST, NULL); nse->bss_sns_fi = NULL; nse->ll = GPRS_NS2_LL_UNDEF; - nse->dialect = NS2_DIALECT_UNDEF; + nse->dialect = GPRS_NS2_DIALECT_UNDEF; } return CMD_SUCCESS; @@ -1493,7 +1493,7 @@ if (!nse->persistent) { gprs_ns2_free_nse(nse); - } else if (nse->dialect == NS2_DIALECT_SNS) { + } else if (nse->dialect == GPRS_NS2_DIALECT_SNS) { gprs_ns2_free_nsvcs(nse); } else { /* Perform the operation for all nsvc */ diff --git a/tests/gb/gprs_ns2_test.c b/tests/gb/gprs_ns2_test.c index 335a079..9e4e02f 100644 --- a/tests/gb/gprs_ns2_test.c +++ b/tests/gb/gprs_ns2_test.c @@ -45,7 +45,7 @@ { OSMO_ASSERT(oph->sap == SAP_NS); if (oph->msg) { - if (oph->primitive == PRIM_NS_UNIT_DATA) { + if (oph->primitive == GPRS_NS2_PRIM_UNIT_DATA) { osmo_wqueue_enqueue(unitdata, oph->msg); } else { msgb_free(oph->msg); @@ -187,11 +187,11 @@ bind[0] = dummy_bind(nsi, "transfercap1"); bind[1] = dummy_bind(nsi, "transfercap2"); bind[1]->transfer_capability = 23; - nse = gprs_ns2_create_nse(nsi, 1001, GPRS_NS2_LL_UDP, NS2_DIALECT_STATIC_ALIVE); + nse = gprs_ns2_create_nse(nsi, 1001, GPRS_NS2_LL_UDP, GPRS_NS2_DIALECT_STATIC_ALIVE); OSMO_ASSERT(nse); printf("---- Test with NSVC[0]\n"); - nsvc[0] = ns2_vc_alloc(bind[0], nse, false, NS2_VC_MODE_ALIVE, NULL); + nsvc[0] = ns2_vc_alloc(bind[0], nse, false, GPRS_NS2_VC_MODE_ALIVE, NULL); OSMO_ASSERT(nsvc[0]); OSMO_ASSERT(ns2_count_transfer_cap(nse, 0) == 0); nsvc[0]->fi->state = 3; /* HACK: 3 = GPRS_NS2_ST_UNBLOCKED */ @@ -199,7 +199,7 @@ OSMO_ASSERT(ns2_count_transfer_cap(nse, 0) == 42); printf("---- Test with NSVC[1]\n"); - nsvc[1] = ns2_vc_alloc(bind[0], nse, false, NS2_VC_MODE_ALIVE, NULL); + nsvc[1] = ns2_vc_alloc(bind[0], nse, false, GPRS_NS2_VC_MODE_ALIVE, NULL); OSMO_ASSERT(nsvc[1]); OSMO_ASSERT(ns2_count_transfer_cap(nse, 0) == 42); nsvc[1]->fi->state = 3; /* HACK: 3 = GPRS_NS2_ST_UNBLOCKED */ @@ -207,7 +207,7 @@ OSMO_ASSERT(ns2_count_transfer_cap(nse, 0) == 42); printf("---- Test with NSVC[2]\n"); - nsvc[2] = ns2_vc_alloc(bind[1], nse, false, NS2_VC_MODE_ALIVE, NULL); + nsvc[2] = ns2_vc_alloc(bind[1], nse, false, GPRS_NS2_VC_MODE_ALIVE, NULL); OSMO_ASSERT(nsvc[2]); OSMO_ASSERT(ns2_count_transfer_cap(nse, 0) == 42); nsvc[2]->fi->state = 3; /* HACK: 3 = GPRS_NS2_ST_UNBLOCKED */ @@ -244,13 +244,13 @@ nsi = gprs_ns2_instantiate(ctx, ns_prim_cb, NULL); bind[0] = dummy_bind(nsi, "bblock1"); bind[1] = dummy_bind(nsi, "bblock2"); - nse = gprs_ns2_create_nse(nsi, 1001, GPRS_NS2_LL_UDP, NS2_DIALECT_STATIC_RESETBLOCK); + nse = gprs_ns2_create_nse(nsi, 1001, GPRS_NS2_LL_UDP, GPRS_NS2_DIALECT_STATIC_RESETBLOCK); OSMO_ASSERT(nse); for (i=0; i<2; i++) { printf("---- Create NSVC[i]\n"); snprintf(idbuf, sizeof(idbuf), "NSE%05u-dummy-%i", nse->nsei, i); - nsvc[i] = ns2_vc_alloc(bind[i], nse, false, NS2_VC_MODE_BLOCKRESET, idbuf); + nsvc[i] = ns2_vc_alloc(bind[i], nse, false, GPRS_NS2_VC_MODE_BLOCKRESET, idbuf); OSMO_ASSERT(nsvc[i]); nsvc[i]->fi->state = 3; /* HACK: 3 = GPRS_NS2_ST_UNBLOCKED */ /* ensure the fi->state works correct */ @@ -321,13 +321,13 @@ bind[0] = dummy_bind(nsi, "bblock1"); bind[1] = dummy_bind(nsi, "bblock2"); loopbind = loopback_bind(nsi, "loopback"); - nse = gprs_ns2_create_nse(nsi, 1004, GPRS_NS2_LL_UDP, NS2_DIALECT_STATIC_RESETBLOCK); + nse = gprs_ns2_create_nse(nsi, 1004, GPRS_NS2_LL_UDP, GPRS_NS2_DIALECT_STATIC_RESETBLOCK); OSMO_ASSERT(nse); for (i=0; i<2; i++) { printf("---- Create NSVC[%d]\n", i); snprintf(idbuf, sizeof(idbuf), "NSE%05u-dummy-%i", nse->nsei, i); - nsvc[i] = ns2_vc_alloc(bind[i], nse, false, NS2_VC_MODE_BLOCKRESET, idbuf); + nsvc[i] = ns2_vc_alloc(bind[i], nse, false, GPRS_NS2_VC_MODE_BLOCKRESET, idbuf); loop[i] = loopback_nsvc(loopbind, nsvc[i]); OSMO_ASSERT(nsvc[i]); ns2_vc_fsm_start(nsvc[i]); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22429 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I548ff12f7277cbb7e1a630a3dc02b738ce89be72 Gerrit-Change-Number: 22429 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 15:38:08 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 25 Jan 2021 15:38:08 +0000 Subject: Change in libosmocore[master]: gprs_ns2: drop gprs_ns2_vty, rename vty2 -> vty References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22430 ) Change subject: gprs_ns2: drop gprs_ns2_vty, rename vty2 -> vty ...................................................................... gprs_ns2: drop gprs_ns2_vty, rename vty2 -> vty Drop the vty(1) code and replace it with vty2. The vty(1) was only used as intermediate to not develop a vty while developing a new code base behind. Users of gprs_ns2_ has to use the new vty code. Change-Id: I8c3f2afecc74b78f7f914f7dce166cbcb63444eb --- M include/osmocom/gprs/gprs_ns2.h M src/gb/Makefile.am M src/gb/gprs_ns2_vty.c D src/gb/gprs_ns2_vty2.c M src/gb/libosmogb.map M utils/osmo-ns-dummy.c 6 files changed, 1,309 insertions(+), 2,317 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/30/22430/1 diff --git a/include/osmocom/gprs/gprs_ns2.h b/include/osmocom/gprs/gprs_ns2.h index 7ceea43..9440e6c 100644 --- a/include/osmocom/gprs/gprs_ns2.h +++ b/include/osmocom/gprs/gprs_ns2.h @@ -261,11 +261,6 @@ const char *gprs_ns2_nsvc_state_name(struct gprs_ns2_vc *nsvc); /* vty */ -int gprs_ns2_vty_init(struct gprs_ns2_inst *nsi, - const struct osmo_sockaddr_str *default_bind); -int gprs_ns2_vty_create(); - -/* vty 2 */ -int gprs_ns2_vty2_init(struct gprs_ns2_inst *nsi); +int gprs_ns2_vty_init(struct gprs_ns2_inst *nsi); /*! @} */ diff --git a/src/gb/Makefile.am b/src/gb/Makefile.am index 031971b..d0db814 100644 --- a/src/gb/Makefile.am +++ b/src/gb/Makefile.am @@ -25,7 +25,7 @@ gprs_bssgp.c gprs_bssgp_util.c gprs_bssgp_vty.c gprs_bssgp_rim.c \ gprs_bssgp_bss.c \ gprs_ns2.c gprs_ns2_udp.c gprs_ns2_frgre.c gprs_ns2_fr.c gprs_ns2_vc_fsm.c gprs_ns2_sns.c \ - gprs_ns2_message.c gprs_ns2_vty.c gprs_ns2_vty2.c \ + gprs_ns2_message.c gprs_ns2_vty.c \ gprs_bssgp2.c bssgp_bvc_fsm.c \ common_vty.c frame_relay.c diff --git a/src/gb/gprs_ns2_vty.c b/src/gb/gprs_ns2_vty.c index f803655..b6ae5b4 100644 --- a/src/gb/gprs_ns2_vty.c +++ b/src/gb/gprs_ns2_vty.c @@ -1,9 +1,7 @@ /*! \file gprs_ns2_vty.c * VTY interface for our GPRS Networks Service (NS) implementation. */ -/* (C) 2009-2014 by Harald Welte - * (C) 2016-2017 by sysmocom - s.f.m.c. GmbH - * (C) 2020 by sysmocom - s.f.m.c. GmbH +/* (C) 2020 by sysmocom - s.f.m.c. GmbH * Author: Alexander Couzens * * All Rights Reserved @@ -33,67 +31,44 @@ #include #include -#include #include #include -#include -#include -#include -#include -#include #include +#include +#include +#include +#include +#include #include #include #include #include -#include #include #include -#include #include +#include +#include #include "gprs_ns2_internal.h" #define SHOW_NS_STR "Display information about the NS protocol\n" - -struct ns2_vty_priv { - /* global listen */ - struct osmo_sockaddr_str udp; - struct osmo_sockaddr_str frgreaddr; - int dscp; - enum gprs_ns2_vc_mode vc_mode; - bool frgre; - - struct llist_head vtyvc; -}; - -struct ns2_vty_vc { - struct llist_head list; - - struct osmo_sockaddr_str remote; - enum gprs_ns2_ll ll; - - /* old vty code doesnt support multiple NSVCI per NSEI */ - uint16_t nsei; - uint16_t nsvci; - uint16_t frdlci; - - struct { - enum osmo_fr_role role; - } fr; - - char netif[IF_NAMESIZE]; - - bool remote_end_is_sgsn; - bool configured; -}; +#define NSVCI_STR "NS Virtual Connection ID (NS-VCI)\n" +#define DLCI_STR "Data Link connection identifier\n" static struct gprs_ns2_inst *vty_nsi = NULL; -static struct ns2_vty_priv priv; static struct osmo_fr_network *vty_fr_network = NULL; +static struct llist_head binds; -/* FIXME: this should go to some common file as it is copied - * in vty_interface.c of the BSC */ +struct vty_bind { + struct llist_head list; + const char *name; + enum gprs_ns2_ll ll; + int dscp; + bool accept_ipaccess; + bool accept_sns; +}; + +/* TODO: this should into osmo timer */ static const struct value_string gprs_ns_timer_strs[] = { { 0, "tns-block" }, { 1, "tns-block-retries" }, @@ -108,28 +83,51 @@ { 0, NULL } }; -static void log_set_nse_filter(struct log_target *target, - struct gprs_ns2_nse *nse) +const struct value_string vty_fr_role_names[] = { + { FR_ROLE_USER_EQUIPMENT, "fr" }, + { FR_ROLE_NETWORK_EQUIPMENT, "frnet" }, + { 0, NULL } +}; + +const struct value_string vty_ll_names[] = { + { GPRS_NS2_LL_FR, "fr" }, + { GPRS_NS2_LL_FR_GRE, "frgre" }, + { GPRS_NS2_LL_UDP, "udp" }, + { 0, NULL } +}; + +static struct vty_bind *vty_bind_by_name(const char *name) { - if (nse) { - target->filter_map |= (1 << LOG_FLT_GB_NSE); - target->filter_data[LOG_FLT_GB_NSE] = nse; - } else if (target->filter_data[LOG_FLT_GB_NSE]) { - target->filter_map = ~(1 << LOG_FLT_GB_NSE); - target->filter_data[LOG_FLT_GB_NSE] = NULL; + struct vty_bind *vbind; + llist_for_each_entry(vbind, &binds, list) { + if (!strncmp(vbind->name, name, strlen(vbind->name))) + return vbind; } + return NULL; } -static void log_set_nsvc_filter(struct log_target *target, - struct gprs_ns2_vc *nsvc) +static struct vty_bind *vty_bind_alloc(const char *name) { - if (nsvc) { - target->filter_map |= (1 << LOG_FLT_GB_NSVC); - target->filter_data[LOG_FLT_GB_NSVC] = nsvc; - } else if (target->filter_data[LOG_FLT_GB_NSVC]) { - target->filter_map = ~(1 << LOG_FLT_GB_NSVC); - target->filter_data[LOG_FLT_GB_NSVC] = NULL; + struct vty_bind *vbind = talloc_zero(vty_nsi, struct vty_bind); + if (!vbind) + return NULL; + + vbind->name = talloc_strdup(vty_nsi, name); + if (!vbind->name) { + talloc_free(vbind); + return NULL; } + + llist_add(&vbind->list, &binds); + return vbind; +} + +static void vty_bind_free(struct vty_bind *vbind) +{ + if (!vbind) + return; + + llist_del(&vbind->list); } static struct cmd_node ns_node = { @@ -138,130 +136,6 @@ 1, }; -static struct ns2_vty_vc *vtyvc_alloc(uint16_t nsei) { - struct ns2_vty_vc *vtyvc = talloc_zero(vty_nsi, struct ns2_vty_vc); - if (!vtyvc) - return vtyvc; - - vtyvc->nsei = nsei; - - llist_add(&vtyvc->list, &priv.vtyvc); - - return vtyvc; -} - -static void ns2_vc_free(struct ns2_vty_vc *vtyvc) { - if (!vtyvc) - return; - - llist_del(&vtyvc->list); - talloc_free(vtyvc); -} - -static struct ns2_vty_vc *vtyvc_by_nsei(uint16_t nsei, bool alloc_missing) { - struct ns2_vty_vc *vtyvc; - - llist_for_each_entry(vtyvc, &priv.vtyvc, list) { - if (vtyvc->nsei == nsei) - return vtyvc; - } - - if (!alloc_missing) - return NULL; - - vtyvc = vtyvc_alloc(nsei); - if (!vtyvc) - return vtyvc; - - vtyvc->nsei = nsei; - return vtyvc; -} - -static int config_write_ns(struct vty *vty) -{ - struct ns2_vty_vc *vtyvc; - unsigned int i; - struct osmo_sockaddr_str sockstr; - - vty_out(vty, "ns%s", VTY_NEWLINE); - - /* global configuration must be written first, as some of it may be - * relevant when creating the NSE/NSVC later below */ - - vty_out(vty, " encapsulation framerelay-gre enabled %u%s", - priv.frgre ? 1 : 0, VTY_NEWLINE); - - if (priv.frgre) { - if (strlen(priv.frgreaddr.ip)) { - vty_out(vty, " encapsulation framerelay-gre local-ip %s%s", - sockstr.ip, VTY_NEWLINE); - } - } else { - if (strlen(priv.udp.ip)) { - vty_out(vty, " encapsulation udp local-ip %s%s", - priv.udp.ip, VTY_NEWLINE); - } - - if (priv.udp.port) - vty_out(vty, " encapsulation udp local-port %u%s", - priv.udp.port, VTY_NEWLINE); - } - - if (priv.dscp) - vty_out(vty, " encapsulation udp dscp %d%s", - priv.dscp, VTY_NEWLINE); - - vty_out(vty, " encapsulation udp use-reset-block-unblock %s%s", - priv.vc_mode == GPRS_NS2_VC_MODE_BLOCKRESET ? "enabled" : "disabled", VTY_NEWLINE); - - llist_for_each_entry(vtyvc, &priv.vtyvc, list) { - vty_out(vty, " nse %u nsvci %u%s", - vtyvc->nsei, vtyvc->nsvci, VTY_NEWLINE); - - vty_out(vty, " nse %u remote-role %s%s", - vtyvc->nsei, vtyvc->remote_end_is_sgsn ? "sgsn" : "bss", - VTY_NEWLINE); - - switch (vtyvc->ll) { - case GPRS_NS2_LL_UDP: - vty_out(vty, " nse %u encapsulation udp%s", vtyvc->nsei, VTY_NEWLINE); - vty_out(vty, " nse %u remote-ip %s%s", - vtyvc->nsei, - vtyvc->remote.ip, - VTY_NEWLINE); - vty_out(vty, " nse %u remote-port %u%s", - vtyvc->nsei, vtyvc->remote.port, - VTY_NEWLINE); - break; - case GPRS_NS2_LL_FR_GRE: - vty_out(vty, " nse %u encapsulation framerelay-gre%s", - vtyvc->nsei, VTY_NEWLINE); - vty_out(vty, " nse %u remote-ip %s%s", - vtyvc->nsei, - vtyvc->remote.ip, - VTY_NEWLINE); - vty_out(vty, " nse %u fr-dlci %u%s", - vtyvc->nsei, vtyvc->frdlci, - VTY_NEWLINE); - break; - case GPRS_NS2_LL_FR: - vty_out(vty, " nse %u fr %s dlci %u%s", - vtyvc->nsei, vtyvc->netif, vtyvc->frdlci, - VTY_NEWLINE); - break; - default: - break; - } - } - - for (i = 0; i < ARRAY_SIZE(vty_nsi->timeout); i++) - vty_out(vty, " timer %s %u%s", - get_value_string(gprs_ns_timer_strs, i), - vty_nsi->timeout[i], VTY_NEWLINE); - - return CMD_SUCCESS; -} - DEFUN(cfg_ns, cfg_ns_cmd, "ns", "Configure the GPRS Network Service") @@ -270,6 +144,1183 @@ return CMD_SUCCESS; } +DEFUN(cfg_ns_timer, cfg_ns_timer_cmd, + "timer " NS_TIMERS " <0-65535>", + "Network Service Timer\n" + NS_TIMERS_HELP "Timer Value\n") +{ + int idx = get_string_value(gprs_ns_timer_strs, argv[0]); + int val = atoi(argv[1]); + + if (idx < 0 || idx >= ARRAY_SIZE(vty_nsi->timeout)) + return CMD_WARNING; + + vty_nsi->timeout[idx] = val; + + return CMD_SUCCESS; +} + +DEFUN(cfg_ns_nsei, cfg_ns_nsei_cmd, + "nse <0-65535>", + "Persistent NS Entity\n" + "NS Entity ID (NSEI)\n" + ) +{ + struct gprs_ns2_nse *nse; + uint16_t nsei = atoi(argv[0]); + + nse = gprs_ns2_nse_by_nsei(vty_nsi, nsei); + if (!nse) { + nse = gprs_ns2_create_nse(vty_nsi, nsei, GPRS_NS2_LL_UNDEF, GPRS_NS2_DIALECT_UNDEF); + if (!nse) { + vty_out(vty, "Failed to create NSE!%s", VTY_NEWLINE); + return CMD_ERR_INCOMPLETE; + } + nse->persistent = true; + } + + if (!nse->persistent) { + /* TODO: should the dynamic NSE removed? */ + vty_out(vty, "A dynamic NSE with the specified NSEI already exists%s", VTY_NEWLINE); + return CMD_ERR_INCOMPLETE; + } + + vty->node = L_NS_NSE_NODE; + vty->index = nse; + + return CMD_SUCCESS; +} + +DEFUN(cfg_no_ns_nsei, cfg_no_ns_nsei_cmd, + "no nse <0-65535>", + NO_STR + "Delete a Persistent NS Entity\n" + "NS Entity ID (NSEI)\n" + ) +{ + struct gprs_ns2_nse *nse; + uint16_t nsei = atoi(argv[0]); + + nse = gprs_ns2_nse_by_nsei(vty_nsi, nsei); + if (!nse) { + vty_out(vty, "Can not find NS Entity %s%s", argv[0], VTY_NEWLINE); + return CMD_ERR_NOTHING_TODO; + } + + if (!nse->persistent) { + vty_out(vty, "Ignoring non-persistent NS Entity%s", VTY_NEWLINE); + return CMD_WARNING; + } + + vty_out(vty, "Deleting NS Entity %u%s", nse->nsei, VTY_NEWLINE); + gprs_ns2_free_nse(nse); + return CMD_SUCCESS; +} + +/* TODO: add fr/gre */ +DEFUN(cfg_ns_bind, cfg_ns_bind_cmd, + "bind (fr|udp) ID", + "Binding\n" + "Frame Relay\n" "UDP/IP\n" + "a unique identifier for this bind to reference NS-VCs\n" + ) +{ + const char *nstype = argv[0]; + const char *name = argv[1]; + struct vty_bind *vbind; + enum gprs_ns2_ll ll; + int rc; + + rc = get_string_value(vty_ll_names, nstype); + if (rc < 0) + return CMD_WARNING; + ll = (enum gprs_ns2_ll) rc; + + if (!osmo_identifier_valid(name)) { + vty_out(vty, "Invalid ID. The ID should be only alphanumeric.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + vbind = vty_bind_by_name(name); + if (vbind) { + if (vbind->ll != ll) { + vty_out(vty, "A bind with the specified ID already exists with a different type (fr|frgre|udp)!%s", + VTY_NEWLINE); + return CMD_WARNING; + } + } else { + vbind = vty_bind_alloc(name); + if (!vbind) { + vty_out(vty, "Can not create bind - out of memory%s", VTY_NEWLINE); + return CMD_WARNING; + } + vbind->ll = ll; + } + + vty->index = vbind; + vty->node = L_NS_BIND_NODE; + + return CMD_SUCCESS; +} + +DEFUN(cfg_no_ns_bind, cfg_no_ns_bind_cmd, + "no bind ID", + NO_STR + "Delete a binding\n" + "a unique identifier for this bind to reference NS-VCs\n" + ) +{ + struct vty_bind *vbind; + struct gprs_ns2_vc_bind *bind; + const char *name = argv[0]; + + vbind = vty_bind_by_name(name); + if (!vbind) { + vty_out(vty, "bind %s does not exist!%s", name, VTY_NEWLINE); + return CMD_WARNING; + } + vty_bind_free(vbind); + bind = gprs_ns2_bind_by_name(vty_nsi, name); + if (bind) + bind->driver->free_bind(bind); + return CMD_SUCCESS; +} + + +static void config_write_vbind(struct vty *vty, struct vty_bind *vbind) +{ + struct gprs_ns2_vc_bind *bind; + const struct osmo_sockaddr *addr; + struct osmo_sockaddr_str addr_str; + const char *netif, *frrole_str, *llstr; + enum osmo_fr_role frrole; + + llstr = get_value_string_or_null(vty_ll_names, vbind->ll); + if (!llstr) + return; + vty_out(vty, " bind %s %s%s", llstr, vbind->name, VTY_NEWLINE); + + bind = gprs_ns2_bind_by_name(vty_nsi, vbind->name); + switch (vbind->ll) { + case GPRS_NS2_LL_FR: + if (bind) { + netif = gprs_ns2_fr_bind_netif(bind); + if (!netif) + return; + frrole = gprs_ns2_fr_bind_role(bind); + if ((int) frrole == -1) + return; + frrole_str = get_value_string_or_null(vty_fr_role_names, frrole); + if (netif && frrole_str) + vty_out(vty, " fr %s %s%s", netif, frrole_str, VTY_NEWLINE); + } + break; + case GPRS_NS2_LL_UDP: + if (bind) { + addr = gprs_ns2_ip_bind_sockaddr(bind); + if (!osmo_sockaddr_str_from_sockaddr(&addr_str, &addr->u.sas)) { + vty_out(vty, " listen %s %u%s", addr_str.ip, addr_str.port, + VTY_NEWLINE); + } + } + if (vbind->accept_ipaccess) + vty_out(vty, " accept-ipaccess%s", VTY_NEWLINE); + if (vbind->dscp) + vty_out(vty, " dscp %u%s", vbind->dscp, VTY_NEWLINE); + break; + default: + return; + } +} + +static void config_write_nsvc(struct vty *vty, const struct gprs_ns2_vc *nsvc) +{ + const char *netif; + uint16_t dlci; + const struct osmo_sockaddr *addr; + struct osmo_sockaddr_str addr_str; + + switch (nsvc->nse->ll) { + case GPRS_NS2_LL_UNDEF: + break; + case GPRS_NS2_LL_UDP: + switch (nsvc->nse->dialect) { + case GPRS_NS2_DIALECT_IPACCESS: + addr = gprs_ns2_ip_vc_remote(nsvc); + if (!addr) + break; + if (osmo_sockaddr_str_from_sockaddr(&addr_str, &addr->u.sas)) + break; + vty_out(vty, " nsvc ipa %s %s %u nsvci %u%s", + nsvc->bind->name, addr_str.ip, addr_str.port, + nsvc->nsvci, VTY_NEWLINE); + break; + case GPRS_NS2_DIALECT_STATIC_ALIVE: + addr = gprs_ns2_ip_vc_remote(nsvc); + if (!addr) + break; + if (osmo_sockaddr_str_from_sockaddr(&addr_str, &addr->u.sas)) + break; + vty_out(vty, " nsvc udp %s %s %u%s", + nsvc->bind->name, addr_str.ip, addr_str.port, VTY_NEWLINE); + break; + default: + break; + } + break; + case GPRS_NS2_LL_FR: + netif = gprs_ns2_fr_bind_netif(nsvc->bind); + if (!netif) + break; + dlci = gprs_ns2_fr_nsvc_dlci(nsvc); + if (!dlci) + break; + OSMO_ASSERT(nsvc->nsvci_is_valid); + vty_out(vty, " nsvc fr %s dlci %u nsvci %u%s", + netif, dlci, nsvc->nsvci, VTY_NEWLINE); + break; + case GPRS_NS2_LL_FR_GRE: + break; + } +} + +static void _config_write_ns_nse(struct vty *vty, struct gprs_ns2_nse *nse) +{ + struct gprs_ns2_vc *nsvc; + + vty_out(vty, " nse %u%s", nse->nsei, VTY_NEWLINE); + switch (nse->dialect) { + case GPRS_NS2_DIALECT_SNS: + ns2_sns_write_vty(vty, nse); + break; + default: + llist_for_each_entry(nsvc, &nse->nsvc, list) { + config_write_nsvc(vty, nsvc); + } + break; + } +} + +static int config_write_ns(struct vty *vty) +{ + unsigned int i; + + vty_out(vty, "ns%s", VTY_NEWLINE); + + for (i = 0; i < ARRAY_SIZE(vty_nsi->timeout); i++) + vty_out(vty, " timer %s %u%s", + get_value_string(gprs_ns_timer_strs, i), + vty_nsi->timeout[i], VTY_NEWLINE); + + return 0; +} + +static int config_write_ns_nse(struct vty *vty) +{ + struct gprs_ns2_nse *nse; + + llist_for_each_entry(nse, &vty_nsi->nse, list) { + if (!nse->persistent) + continue; + + _config_write_ns_nse(vty, nse); + } + + return 0; +} + +static int config_write_ns_bind(struct vty *vty) +{ + struct vty_bind *vbind; + + llist_for_each_entry(vbind, &binds, list) { + config_write_vbind(vty, vbind); + } + + return 0; +} + +static struct cmd_node ns_bind_node = { + L_NS_BIND_NODE, + "%s(config-ns-bind)# ", + 1, +}; + +DEFUN(cfg_ns_bind_listen, cfg_ns_bind_listen_cmd, + "listen " VTY_IPV46_CMD " <1-65535>", + "Binding\n" + "IPv4 Address\n" "IPv6 Address\n" + "Port\n" + ) +{ + struct vty_bind *vbind = vty->index; + struct gprs_ns2_vc_bind *bind; + + const char *addr_str = argv[0]; + unsigned int port = atoi(argv[1]); + struct osmo_sockaddr_str sockaddr_str; + struct osmo_sockaddr sockaddr; + + if (vbind->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "listen can be only used with UDP bind%s", + VTY_NEWLINE); + return CMD_WARNING; + } + + if (osmo_sockaddr_str_from_str(&sockaddr_str, addr_str, port)) { + vty_out(vty, "Can not parse the Address %s %s%s", argv[0], argv[1], VTY_NEWLINE); + return CMD_WARNING; + } + osmo_sockaddr_str_to_sockaddr(&sockaddr_str, &sockaddr.u.sas); + if (gprs_ns2_ip_bind_by_sockaddr(vty_nsi, &sockaddr)) { + vty_out(vty, "A bind with the specified address already exists!%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (gprs_ns2_ip_bind(vty_nsi, vbind->name, &sockaddr, vbind->dscp, &bind) != 0) { + vty_out(vty, "Failed to create the bind!%s", VTY_NEWLINE); + return CMD_WARNING; + } + + bind->accept_ipaccess = vbind->accept_ipaccess; + bind->accept_sns = vbind->accept_sns; + + return CMD_SUCCESS; +} + +DEFUN(cfg_no_ns_bind_listen, cfg_no_ns_bind_listen_cmd, + "no listen", + NO_STR + "Delete a IP/Port assignment\n" + ) +{ + struct vty_bind *vbind = vty->index; + struct gprs_ns2_vc_bind *bind; + + if (vbind->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "no listen can be only used with UDP bind%s", VTY_NEWLINE); + return CMD_WARNING; + } + + bind = gprs_ns2_bind_by_name(vty_nsi, vbind->name); + if (!bind) + return CMD_ERR_NOTHING_TODO; + + OSMO_ASSERT(bind->ll != GPRS_NS2_LL_UDP); + bind->driver->free_bind(bind); + return CMD_SUCCESS; +} + +DEFUN(cfg_ns_bind_dscp, cfg_ns_bind_dscp_cmd, + "dscp <0-255>", + "Set DSCP/TOS on the UDP socket\n" "DSCP Value\n") +{ + struct vty_bind *vbind = vty->index; + struct gprs_ns2_vc_bind *bind; + uint16_t dscp = atoi(argv[0]); + + if (vbind->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "dscp can be only used with UDP bind%s", + VTY_NEWLINE); + return CMD_WARNING; + } + + vbind->dscp = dscp; + bind = gprs_ns2_bind_by_name(vty_nsi, vbind->name); + if (bind) + gprs_ns2_ip_bind_set_dscp(bind, dscp); + + return CMD_SUCCESS; +} + +DEFUN(cfg_no_ns_bind_dscp, cfg_no_ns_bind_dscp_cmd, + "no dscp", + "Set DSCP/TOS on the UDP socket\n" "DSCP Value\n") +{ + struct vty_bind *vbind = vty->index; + struct gprs_ns2_vc_bind *bind; + uint16_t dscp = 0; + + if (vbind->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "dscp can be only used with UDP bind%s", + VTY_NEWLINE); + return CMD_WARNING; + } + + vbind->dscp = dscp; + bind = gprs_ns2_bind_by_name(vty_nsi, vbind->name); + if (bind) + gprs_ns2_ip_bind_set_dscp(bind, dscp); + + return CMD_SUCCESS; +} + +DEFUN(cfg_ns_bind_ipaccess, cfg_ns_bind_ipaccess_cmd, + "accept-ipaccess", + "Allow to create dynamic NS Entity by NS Reset PDU on UDP (ip.access style)\n" + ) +{ + struct vty_bind *vbind = vty->index; + struct gprs_ns2_vc_bind *bind; + + if (vbind->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "accept-ipaccess can be only used with UDP bind%s", + VTY_NEWLINE); + return CMD_WARNING; + } + + vbind->accept_ipaccess = true; + bind = gprs_ns2_bind_by_name(vty_nsi, vbind->name); + if (bind) + bind->accept_ipaccess = true; + + return CMD_SUCCESS; +} + +DEFUN(cfg_no_ns_bind_ipaccess, cfg_no_ns_bind_ipaccess_cmd, + "no accept-ipaccess", + NO_STR + "Reject NS Reset PDU on UDP (ip.access style)\n" + ) +{ + struct vty_bind *vbind = vty->index; + struct gprs_ns2_vc_bind *bind; + + if (vbind->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "no accept-ipaccess can be only used with UDP bind%s", + VTY_NEWLINE); + return CMD_WARNING; + } + + vbind->accept_ipaccess = false; + bind = gprs_ns2_bind_by_name(vty_nsi, vbind->name); + if (bind) + bind->accept_ipaccess = false; + + return CMD_SUCCESS; +} + + +DEFUN(cfg_ns_bind_fr, cfg_ns_bind_fr_cmd, + "fr NETIF (fr|frnet)", + "frame relay\n" + IFNAME_STR + "fr (user) is used by BSS or SGSN attached to UNI of a FR network\n" + "frnet (network) is used by SGSN if BSS is directly attached\n" + ) +{ + struct vty_bind *vbind = vty->index; + struct gprs_ns2_vc_bind *bind; + const char *netif = argv[0]; + const char *role = argv[1]; + + int rc = 0; + enum osmo_fr_role frrole; + + if (vbind->ll != GPRS_NS2_LL_FR) { + vty_out(vty, "fr can be only used with frame relay bind%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (!strcmp(role, "fr")) + frrole = FR_ROLE_USER_EQUIPMENT; + else if (!strcmp(role, "frnet")) + frrole = FR_ROLE_NETWORK_EQUIPMENT; + else + return CMD_WARNING; + + bind = gprs_ns2_fr_bind_by_netif(vty_nsi, netif); + if (bind) { + vty_out(vty, "Interface %s already used.%s", netif, VTY_NEWLINE); + return CMD_WARNING; + } + + rc = gprs_ns2_fr_bind(vty_nsi, vbind->name, netif, vty_fr_network, frrole, &bind); + if (rc < 0) { + LOGP(DLNS, LOGL_ERROR, "Failed to bind interface %s on fr. Err: %d\n", netif, rc); + return CMD_WARNING; + } + + return CMD_SUCCESS; +} + +DEFUN(cfg_no_ns_bind_fr, cfg_no_ns_bind_fr_cmd, + "no fr NETIF", + NO_STR + "Delete a frame relay link\n" + "Delete a frame relay link\n" + IFNAME_STR + ) +{ + struct vty_bind *vbind = vty->index; + struct gprs_ns2_vc_bind *bind; + const char *netif = argv[0]; + + if (vbind->ll != GPRS_NS2_LL_FR) { + vty_out(vty, "fr can be only used with frame relay bind%s", + VTY_NEWLINE); + return CMD_WARNING; + } + + bind = gprs_ns2_fr_bind_by_netif(vty_nsi, netif); + if (!bind) { + vty_out(vty, "Interface not found.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (strcmp(bind->name, vbind->name)) { + vty_out(vty, "The specified interface is not bound to this bind.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + bind->driver->free_bind(bind); + return CMD_SUCCESS; +} + + +static struct cmd_node ns_nse_node = { + L_NS_NSE_NODE, + "%s(config-ns-nse)# ", + 1, +}; + +DEFUN(cfg_ns_nse_nsvc_fr, cfg_ns_nse_nsvc_fr_cmd, + "nsvc fr NETIF dlci <16-1007> nsvci <0-65535>", + "NS Virtual Connection\n" + "frame relay\n" + "frame relay interface. Must be registered via fr vty\n" + NSVCI_STR + NSVCI_STR + DLCI_STR + DLCI_STR + ) +{ + struct gprs_ns2_vc_bind *bind; + struct gprs_ns2_vc *nsvc; + struct gprs_ns2_nse *nse = vty->index; + const char *netif = argv[0]; + uint16_t dlci = atoi(argv[1]); + uint16_t nsvci = atoi(argv[2]); + bool dialect_modified = false; + bool ll_modified = false; + + if (nse->ll != GPRS_NS2_LL_FR && nse->ll != GPRS_NS2_LL_UNDEF) { + vty_out(vty, "Can not mix NS-VC with different link layer%s", VTY_NEWLINE); + goto err; + } + + if (nse->dialect != GPRS_NS2_DIALECT_STATIC_RESETBLOCK && nse->dialect != GPRS_NS2_DIALECT_UNDEF) { + vty_out(vty, "Can not mix NS-VC with different dialects%s", VTY_NEWLINE); + goto err; + } + + if (nse->ll == GPRS_NS2_LL_UNDEF) { + nse->ll = GPRS_NS2_LL_FR; + ll_modified = true; + } + + if (nse->dialect == GPRS_NS2_DIALECT_UNDEF) { + nse->dialect = GPRS_NS2_DIALECT_STATIC_RESETBLOCK; + dialect_modified = true; + } + + + bind = gprs_ns2_fr_bind_by_netif(vty_nsi, netif); + if (!bind) { + vty_out(vty, "Can not find fr interface \"%s\". Please configure it via fr vty.%s", + netif, VTY_NEWLINE); + goto err; + } + + if (gprs_ns2_fr_nsvc_by_dlci(bind, dlci)) { + vty_out(vty, "A NS-VC with the specified DLCI already exist!%s", VTY_NEWLINE); + goto err; + } + + if (gprs_ns2_nsvc_by_nsvci(vty_nsi, nsvci)) { + vty_out(vty, "A NS-VC with the specified NS-VCI already exist!%s", VTY_NEWLINE); + goto err; + } + + nsvc = gprs_ns2_fr_connect(bind, nse, nsvci, dlci); + if (!nsvc) { + /* Could not create NS-VC, connect failed */ + vty_out(vty, "Failed to create the NS-VC%s", VTY_NEWLINE); + goto err; + } + nsvc->persistent = true; + return CMD_SUCCESS; + +err: + if (ll_modified) + nse->ll = GPRS_NS2_LL_UNDEF; + if (dialect_modified) + nse->dialect = GPRS_NS2_DIALECT_UNDEF; + + return CMD_WARNING; +} + +DEFUN(cfg_no_ns_nse_nsvc_fr_dlci, cfg_no_ns_nse_nsvc_fr_dlci_cmd, + "no nsvc fr NETIF dlci <16-1007>", + NO_STR + "Delete frame relay NS-VC\n" + "frame relay\n" + "frame relay interface. Must be registered via fr vty\n" + DLCI_STR + DLCI_STR + ) +{ + struct gprs_ns2_vc_bind *bind; + struct gprs_ns2_vc *nsvc; + struct gprs_ns2_nse *nse = vty->index; + const char *netif = argv[0]; + uint16_t dlci = atoi(argv[1]); + + if (nse->ll != GPRS_NS2_LL_FR) { + vty_out(vty, "This NSE doesn't support frame relay.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + bind = gprs_ns2_fr_bind_by_netif(vty_nsi, netif); + if (!bind) { + vty_out(vty, "Can not find fr interface \"%s\"%s", + netif, VTY_NEWLINE); + return CMD_ERR_NOTHING_TODO; + } + + nsvc = gprs_ns2_fr_nsvc_by_dlci(bind, dlci); + if (!nsvc) { + vty_out(vty, "Can not find a NS-VC on fr interface %s with dlci %u%s", + netif, dlci, VTY_NEWLINE); + return CMD_WARNING; + } + + if (nse != nsvc->nse) { + vty_out(vty, "The specified NS-VC is not a part of the NSE %u!%s" + "To remove this NS-VC go to the vty node 'nse %u'%s", + nse->nsei, VTY_NEWLINE, + nsvc->nse->nsei, VTY_NEWLINE); + return CMD_WARNING; + } + + gprs_ns2_free_nsvc(nsvc); + if (llist_empty(&nse->nsvc)) { + nse->ll = GPRS_NS2_LL_UNDEF; + nse->dialect = GPRS_NS2_DIALECT_UNDEF; + } + + return CMD_SUCCESS; +} + +DEFUN(cfg_no_ns_nse_nsvci, cfg_no_ns_nse_nsvci_cmd, + "no nsvc nsvci <0-65535>", + NO_STR + "Delete NSVC\n" + NSVCI_STR + NSVCI_STR + ) +{ + struct gprs_ns2_vc *nsvc; + struct gprs_ns2_nse *nse = vty->index; + uint16_t nsvci = atoi(argv[0]); + + switch (nse->dialect) { + case GPRS_NS2_DIALECT_SNS: + case GPRS_NS2_DIALECT_STATIC_ALIVE: + vty_out(vty, "NSE doesn't support NSVCI.%s", VTY_NEWLINE); + return CMD_WARNING; + case GPRS_NS2_DIALECT_UNDEF: + vty_out(vty, "No NSVCs configured%s", VTY_NEWLINE); + return CMD_WARNING; + case GPRS_NS2_DIALECT_IPACCESS: + case GPRS_NS2_DIALECT_STATIC_RESETBLOCK: + break; + } + + nsvc = gprs_ns2_nsvc_by_nsvci(vty_nsi, nsvci); + if (!nsvc) { + vty_out(vty, "Can not find NS-VC with NS-VCI %u%s", nsvci, VTY_NEWLINE); + return CMD_WARNING; + } + + if (nse != nsvc->nse) { + vty_out(vty, "NS-VC with NS-VCI %u is not part of this NSE!%s", + nsvci, VTY_NEWLINE); + return CMD_WARNING; + } + + gprs_ns2_free_nsvc(nsvc); + if (llist_empty(&nse->nsvc)) { + nse->ll = GPRS_NS2_LL_UNDEF; + nse->dialect = GPRS_NS2_DIALECT_UNDEF; + } + + return CMD_SUCCESS; +} + +DEFUN(cfg_ns_nse_nsvc_udp, cfg_ns_nse_nsvc_udp_cmd, + "nsvc udp BIND " VTY_IPV46_CMD " <1-65535>", + "NS Virtual Connection\n" + "NS over UDP\n" + "A unique bind identifier created by ns bind\n" + "Remote IPv4 Address\n" "Remote IPv6 Address\n" + "Remote UDP Port\n" + ) +{ + struct gprs_ns2_vc_bind *bind; + struct gprs_ns2_vc *nsvc; + struct gprs_ns2_nse *nse = vty->index; + bool dialect_modified = false; + bool ll_modified = false; + + const char *bind_name = argv[0]; + struct osmo_sockaddr_str remote_str; + struct osmo_sockaddr remote; + uint16_t port = atoi(argv[2]); + + if (nse->ll == GPRS_NS2_LL_UNDEF) { + nse->ll = GPRS_NS2_LL_UDP; + ll_modified = true; + } + + if (nse->dialect == GPRS_NS2_DIALECT_UNDEF) { + nse->dialect = GPRS_NS2_DIALECT_STATIC_ALIVE; + dialect_modified = true; + } + + if (nse->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "Can not mix NS-VC with different link layer%s", VTY_NEWLINE); + goto err; + } + + if (nse->dialect != GPRS_NS2_DIALECT_STATIC_ALIVE) { + vty_out(vty, "Can not mix NS-VC with different dialects%s", VTY_NEWLINE); + goto err; + } + + if (osmo_sockaddr_str_from_str(&remote_str, argv[1], port)) { + vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); + goto err; + } + + if (osmo_sockaddr_str_to_sockaddr(&remote_str, &remote.u.sas)) { + vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); + goto err; + } + + bind = gprs_ns2_bind_by_name(vty_nsi, bind_name); + if (!bind) { + vty_out(vty, "Can not find bind with name %s%s", + bind_name, VTY_NEWLINE); + goto err; + } + + if (bind->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "Bind %s is not an UDP bind.%s", + bind_name, VTY_NEWLINE); + goto err; + } + + nsvc = gprs_ns2_ip_connect(bind, &remote, nse, 0); + if (!nsvc) { + vty_out(vty, "Can not create NS-VC.%s", VTY_NEWLINE); + goto err; + } + nsvc->persistent = true; + + return CMD_SUCCESS; + +err: + if (ll_modified) + nse->ll = GPRS_NS2_LL_UNDEF; + if (dialect_modified) + nse->dialect = GPRS_NS2_DIALECT_UNDEF; + return CMD_WARNING; +} + +DEFUN(cfg_no_ns_nse_nsvc_udp, cfg_no_ns_nse_nsvc_udp_cmd, + "no nsvc udp BIND " VTY_IPV46_CMD " <1-65535>", + NO_STR + "Delete a NS Virtual Connection\n" + "NS over UDP\n" + "A unique bind identifier created by ns bind\n" + "Remote IPv4 Address\n" "Remote IPv6 Address\n" + "Remote UDP Port\n" + ) +{ + struct gprs_ns2_vc_bind *bind; + struct gprs_ns2_vc *nsvc; + struct gprs_ns2_nse *nse = vty->index; + const char *bind_name = argv[0]; + struct osmo_sockaddr_str remote_str; + struct osmo_sockaddr remote; + uint16_t port = atoi(argv[2]); + + if (nse->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "This NSE doesn't support UDP.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (nse->dialect != GPRS_NS2_DIALECT_STATIC_ALIVE) { + vty_out(vty, "This NSE doesn't support UDP with dialect static alive.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + bind = gprs_ns2_bind_by_name(vty_nsi, bind_name); + if (!bind) { + vty_out(vty, "Can not find bind with name %s%s", + bind_name, VTY_NEWLINE); + return CMD_WARNING; + } + + if (bind->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "Bind %s is not an UDP bind.%s", + bind_name, VTY_NEWLINE); + return CMD_WARNING; + } + + if (osmo_sockaddr_str_from_str(&remote_str, argv[1], port)) { + vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (osmo_sockaddr_str_to_sockaddr(&remote_str, &remote.u.sas)) { + vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + nsvc = gprs_ns2_nsvc_by_sockaddr_bind(bind, &remote); + if (!nsvc) { + vty_out(vty, "Can not find NS-VC with remote %s:%u%s", + remote_str.ip, remote_str.port, VTY_NEWLINE); + return CMD_WARNING; + } + + if (!nsvc->persistent) { + vty_out(vty, "NS-VC with remote %s:%u is a dynamic NS-VC. Not configured by vty.%s", + remote_str.ip, remote_str.port, VTY_NEWLINE); + return CMD_WARNING; + } + + if (nsvc->nse != nse) { + vty_out(vty, "NS-VC is not part of this NSE!%s", VTY_NEWLINE); + return CMD_WARNING; + } + + gprs_ns2_free_nsvc(nsvc); + if (llist_empty(&nse->nsvc)) { + nse->ll = GPRS_NS2_LL_UNDEF; + nse->dialect = GPRS_NS2_DIALECT_UNDEF; + } + + return CMD_SUCCESS; +} + +DEFUN(cfg_ns_nse_nsvc_ipa, cfg_ns_nse_nsvc_ipa_cmd, + "nsvc ipa BIND " VTY_IPV46_CMD " <1-65535> nsvci <0-65535>" , + "NS Virtual Connection\n" + "NS over UDP ip.access style (uses RESET/BLOCK)\n" + "A unique bind identifier created by ns bind\n" + "Remote IPv4 Address\n" "Remote IPv6 Address\n" + "Remote UDP Port\n" + NSVCI_STR + NSVCI_STR + ) +{ + struct gprs_ns2_vc_bind *bind; + struct gprs_ns2_vc *nsvc; + struct gprs_ns2_nse *nse = vty->index; + bool dialect_modified = false; + bool ll_modified = false; + + const char *bind_name = argv[0]; + struct osmo_sockaddr_str remote_str; + struct osmo_sockaddr remote; + uint16_t port = atoi(argv[2]); + uint16_t nsvci = atoi(argv[3]); + + if (nse->ll == GPRS_NS2_LL_UNDEF) { + nse->ll = GPRS_NS2_LL_UDP; + ll_modified = true; + } + + if (nse->dialect == GPRS_NS2_DIALECT_UNDEF) { + nse->dialect = GPRS_NS2_DIALECT_IPACCESS; + dialect_modified = true; + } + + if (nse->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "Can not mix NS-VC with different link layer%s", VTY_NEWLINE); + goto err; + } + + if (nse->dialect != GPRS_NS2_DIALECT_IPACCESS) { + vty_out(vty, "Can not mix NS-VC with different dialects%s", VTY_NEWLINE); + goto err; + } + + if (osmo_sockaddr_str_from_str(&remote_str, argv[1], port)) { + vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); + goto err; + } + + if (osmo_sockaddr_str_to_sockaddr(&remote_str, &remote.u.sas)) { + vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); + goto err; + } + + bind = gprs_ns2_bind_by_name(vty_nsi, bind_name); + if (!bind) { + vty_out(vty, "Can not find bind with name %s%s", + bind_name, VTY_NEWLINE); + goto err; + } + + if (bind->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "Bind %s is not an UDP bind.%s", + bind_name, VTY_NEWLINE); + goto err; + } + + nsvc = gprs_ns2_ip_connect(bind, &remote, nse, nsvci); + if (!nsvc) { + vty_out(vty, "Can not create NS-VC.%s", VTY_NEWLINE); + goto err; + } + nsvc->persistent = true; + + return CMD_SUCCESS; + +err: + if (ll_modified) + nse->ll = GPRS_NS2_LL_UNDEF; + if (dialect_modified) + nse->dialect = GPRS_NS2_DIALECT_UNDEF; + return CMD_WARNING; +} + +DEFUN(cfg_no_ns_nse_nsvc_ipa, cfg_no_ns_nse_nsvc_ipa_cmd, + "no nsvc ipa BIND " VTY_IPV46_CMD " <1-65535> nsvci <0-65535>", + NO_STR + "Delete a NS Virtual Connection\n" + "NS over UDP\n" + "A unique bind identifier created by ns bind\n" + "Remote IPv4 Address\n" "Remote IPv6 Address\n" + "Remote UDP Port\n" + NSVCI_STR + NSVCI_STR + ) +{ + struct gprs_ns2_vc_bind *bind; + struct gprs_ns2_vc *nsvc; + struct gprs_ns2_nse *nse = vty->index; + const char *bind_name = argv[0]; + struct osmo_sockaddr_str remote_str; + struct osmo_sockaddr remote; + uint16_t port = atoi(argv[2]); + uint16_t nsvci = atoi(argv[3]); + + if (nse->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "This NSE doesn't support UDP.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (nse->dialect != GPRS_NS2_DIALECT_IPACCESS) { + vty_out(vty, "This NSE doesn't support UDP with dialect ipaccess.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + bind = gprs_ns2_bind_by_name(vty_nsi, bind_name); + if (!bind) { + vty_out(vty, "Can not find bind with name %s%s", + bind_name, VTY_NEWLINE); + return CMD_WARNING; + } + + if (bind->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "Bind %s is not an UDP bind.%s", + bind_name, VTY_NEWLINE); + return CMD_WARNING; + } + + if (osmo_sockaddr_str_from_str(&remote_str, argv[1], port)) { + vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (osmo_sockaddr_str_to_sockaddr(&remote_str, &remote.u.sas)) { + vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + nsvc = gprs_ns2_nsvc_by_sockaddr_bind(bind, &remote); + if (!nsvc) { + vty_out(vty, "Can not find NS-VC with remote %s:%u%s", + remote_str.ip, remote_str.port, VTY_NEWLINE); + return CMD_WARNING; + } + + if (!nsvc->persistent) { + vty_out(vty, "NS-VC with remote %s:%u is a dynamic NS-VC. Not configured by vty.%s", + remote_str.ip, remote_str.port, VTY_NEWLINE); + return CMD_WARNING; + } + + if (nsvc->nse != nse) { + vty_out(vty, "NS-VC is not part of this NSE!%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (!nsvc->nsvci_is_valid) { + vty_out(vty, "NS-VC doesn't have a nsvci!%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (nsvc->nsvci != nsvci) { + vty_out(vty, "NS-VC has a different nsvci (%u)!%s", + nsvc->nsvci, VTY_NEWLINE); + return CMD_WARNING; + } + + gprs_ns2_free_nsvc(nsvc); + if (llist_empty(&nse->nsvc)) { + nse->ll = GPRS_NS2_LL_UNDEF; + nse->dialect = GPRS_NS2_DIALECT_UNDEF; + } + + return CMD_SUCCESS; +} + +DEFUN(cfg_ns_nse_ip_sns, cfg_ns_nse_ip_sns_cmd, + "ip-sns " VTY_IPV46_CMD " <1-65535>", + "SNS Initial Endpoint\n" + "SGSN IPv4 Address\n" "SGSN IPv6 Address\n" + "SGSN UDP Port\n" + ) +{ + struct gprs_ns2_nse *nse = vty->index; + bool dialect_modified = false; + bool ll_modified = false; + int rc; + + /* argv[0] */ + struct osmo_sockaddr_str remote_str; + struct osmo_sockaddr remote; + uint16_t port = atoi(argv[1]); + + if (nse->ll == GPRS_NS2_LL_UNDEF) { + nse->ll = GPRS_NS2_LL_UDP; + ll_modified = true; + } + + if (nse->dialect == GPRS_NS2_DIALECT_UNDEF) { + char sns[16]; + snprintf(sns, sizeof(sns), "NSE%05u-SNS", nse->nsei); + nse->bss_sns_fi = ns2_sns_bss_fsm_alloc(nse, sns); + if (!nse->bss_sns_fi) + goto err; + nse->dialect = GPRS_NS2_DIALECT_SNS; + dialect_modified = true; + } + + if (nse->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "Can not mix NS-VC with different link layer%s", VTY_NEWLINE); + goto err; + } + + if (nse->dialect != GPRS_NS2_DIALECT_SNS) { + vty_out(vty, "Can not mix NS-VC with different dialects%s", VTY_NEWLINE); + goto err; + } + + if (osmo_sockaddr_str_from_str(&remote_str, argv[0], port)) { + vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); + goto err; + } + + if (osmo_sockaddr_str_to_sockaddr(&remote_str, &remote.u.sas)) { + vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); + goto err; + } + + rc = gprs_ns2_sns_add_endpoint(nse, &remote); + switch (rc) { + case 0: + return CMD_SUCCESS; + case -EADDRINUSE: + vty_out(vty, "Specified SNS endpoint already part of the NSE.%s", VTY_NEWLINE); + return CMD_WARNING; + default: + vty_out(vty, "Can not add specified SNS endpoint.%s", VTY_NEWLINE); + return CMD_WARNING; + } + +err: + if (ll_modified) + nse->ll = GPRS_NS2_LL_UNDEF; + if (dialect_modified) + nse->dialect = GPRS_NS2_DIALECT_UNDEF; + return CMD_WARNING; +} + +DEFUN(cfg_no_ns_nse_ip_sns, cfg_no_ns_nse_ip_sns_cmd, + "no ip-sns " VTY_IPV46_CMD " <1-65535>", + NO_STR + "Delete a SNS Initial Endpoint\n" + "SGSN IPv4 Address\n" "SGSN IPv6 Address\n" + "SGSN UDP Port\n" + ) +{ + struct gprs_ns2_nse *nse = vty->index; + struct osmo_sockaddr_str remote_str; /* argv[0] */ + struct osmo_sockaddr remote; + uint16_t port = atoi(argv[1]); + int count; + + if (nse->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "This NSE doesn't support UDP.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (nse->dialect != GPRS_NS2_DIALECT_SNS) { + vty_out(vty, "This NSE doesn't support UDP with dialect ip-sns.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (osmo_sockaddr_str_from_str(&remote_str, argv[0], port)) { + vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (osmo_sockaddr_str_to_sockaddr(&remote_str, &remote.u.sas)) { + vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (gprs_ns2_sns_del_endpoint(nse, &remote)) { + vty_out(vty, "Can not remove specified SNS endpoint.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + count = gprs_ns2_sns_count(nse); + if (count > 0) { + /* there are other sns endpoints */ + return CMD_SUCCESS; + } else if (count < 0) { + OSMO_ASSERT(0); + } else { + /* clean up nse to allow other nsvc commands */ + osmo_fsm_inst_term(nse->bss_sns_fi, OSMO_FSM_TERM_REQUEST, NULL); + nse->bss_sns_fi = NULL; + nse->ll = GPRS_NS2_LL_UNDEF; + nse->dialect = GPRS_NS2_DIALECT_UNDEF; + } + + return CMD_SUCCESS; +} + + +/* non-config commands */ static void dump_nsvc(struct vty *vty, struct gprs_ns2_vc *nsvc, bool stats) { char nsvci_str[32]; @@ -440,7 +1491,9 @@ return CMD_WARNING; } - if (nse->dialect == GPRS_NS2_DIALECT_SNS) { + if (!nse->persistent) { + gprs_ns2_free_nse(nse); + } else if (nse->dialect == GPRS_NS2_DIALECT_SNS) { gprs_ns2_free_nsvcs(nse); } else { /* Perform the operation for all nsvc */ @@ -450,310 +1503,57 @@ return CMD_SUCCESS; } -#define NSE_CMD_STR "Persistent NS Entity\n" "NS Entity ID (NSEI)\n" - -DEFUN(cfg_nse_fr, cfg_nse_fr_cmd, - "nse <0-65535> nsvci <0-65535> (fr|frnet) NETIF dlci <0-1023>", - NSE_CMD_STR - "NS Virtual Connection\n" - "NS Virtual Connection ID (NSVCI)\n" - "Frame Relay User-Side\n" - "Frame Relay Network-Side\n" - IFNAME_STR - "Data Link connection identifier\n" - "Data Link connection identifier\n" - ) +DEFUN(nsvc_block, nsvc_block_cmd, + "nsvc <0-65535> (block|unblock)", + "NS Virtual Connection\n" + NSVCI_STR + "Block a NSVC. As cause code O&M intervention will be used.\n" + "Unblock a NSVC. As cause code O&M intervention will be used.\n") { - struct ns2_vty_vc *vtyvc; + struct gprs_ns2_inst *nsi = vty_nsi; + struct gprs_ns2_vc *nsvc; - uint16_t nsei = atoi(argv[0]); - uint16_t nsvci = atoi(argv[1]); - const char *role = argv[2]; - const char *name = argv[3]; - uint16_t dlci = atoi(argv[4]); + uint16_t id = atoi(argv[0]); - vtyvc = vtyvc_by_nsei(nsei, true); - if (!vtyvc) { - vty_out(vty, "Can not allocate space %s", VTY_NEWLINE); + nsvc = gprs_ns2_nsvc_by_nsvci(nsi, id); + if (!nsvc) { + vty_out(vty, "Could not find NSVCI %05u%s", id, VTY_NEWLINE); return CMD_WARNING; } - if (!strcmp(role, "fr")) - vtyvc->fr.role = FR_ROLE_USER_EQUIPMENT; - else if (!strcmp(role, "frnet")) - vtyvc->fr.role = FR_ROLE_NETWORK_EQUIPMENT; - - osmo_strlcpy(vtyvc->netif, name, sizeof(vtyvc->netif)); - vtyvc->frdlci = dlci; - vtyvc->nsvci = nsvci; - vtyvc->ll = GPRS_NS2_LL_FR; - - return CMD_SUCCESS; -} - -DEFUN(cfg_nse_nsvc, cfg_nse_nsvci_cmd, - "nse <0-65535> nsvci <0-65535>", - NSE_CMD_STR - "NS Virtual Connection\n" - "NS Virtual Connection ID (NSVCI)\n" - ) -{ - struct ns2_vty_vc *vtyvc; - - uint16_t nsei = atoi(argv[0]); - uint16_t nsvci = atoi(argv[1]); - - vtyvc = vtyvc_by_nsei(nsei, true); - if (!vtyvc) { - vty_out(vty, "Can not allocate space %s", VTY_NEWLINE); - return CMD_WARNING; - } - - vtyvc->nsvci = nsvci; - - return CMD_SUCCESS; -} - -DEFUN(cfg_nse_remoteip, cfg_nse_remoteip_cmd, - "nse <0-65535> remote-ip " VTY_IPV46_CMD, - NSE_CMD_STR - "Remote IP Address\n" - "Remote IPv4 Address\n" - "Remote IPv6 Address\n") -{ - uint16_t nsei = atoi(argv[0]); - struct ns2_vty_vc *vtyvc; - - vtyvc = vtyvc_by_nsei(nsei, true); - if (!vtyvc) { - vty_out(vty, "Can not allocate space %s", VTY_NEWLINE); - return CMD_WARNING; - } - - osmo_sockaddr_str_from_str2(&vtyvc->remote, argv[1]); - - return CMD_SUCCESS; -} - -DEFUN(cfg_nse_remoteport, cfg_nse_remoteport_cmd, - "nse <0-65535> remote-port <0-65535>", - NSE_CMD_STR - "Remote UDP Port\n" - "Remote UDP Port Number\n") -{ - uint16_t nsei = atoi(argv[0]); - uint16_t port = atoi(argv[1]); - struct ns2_vty_vc *vtyvc; - - vtyvc = vtyvc_by_nsei(nsei, true); - if (!vtyvc) { - vty_out(vty, "Can not allocate space %s", VTY_NEWLINE); - return CMD_WARNING; - } - - vtyvc->remote.port = port; - - return CMD_SUCCESS; -} - -DEFUN(cfg_nse_fr_dlci, cfg_nse_fr_dlci_cmd, - "nse <0-65535> nsvci <0-65535> fr-dlci <16-1007>", - NSE_CMD_STR - "NS Virtual Connection\n" - "NS Virtual Connection ID (NSVCI)\n" - "Frame Relay DLCI\n" - "Frame Relay DLCI Number\n") -{ - uint16_t nsei = atoi(argv[0]); - uint16_t nsvci = atoi(argv[1]); - uint16_t dlci = atoi(argv[2]); - struct ns2_vty_vc *vtyvc; - - vtyvc = vtyvc_by_nsei(nsei, true); - if (!vtyvc) { - vty_out(vty, "Can not allocate space %s", VTY_NEWLINE); - return CMD_WARNING; - } - - vtyvc->frdlci = dlci; - vtyvc->nsvci = nsvci; - - return CMD_SUCCESS; -} - -DEFUN(cfg_nse_encaps, cfg_nse_encaps_cmd, - "nse <0-65535> encapsulation (udp|framerelay-gre)", - NSE_CMD_STR - "Encapsulation for NS\n" - "UDP/IP Encapsulation\n" "Frame-Relay/GRE/IP Encapsulation\n") -{ - uint16_t nsei = atoi(argv[0]); - struct ns2_vty_vc *vtyvc; - - vtyvc = vtyvc_by_nsei(nsei, true); - if (!vtyvc) { - vty_out(vty, "Can not allocate space %s", VTY_NEWLINE); - return CMD_WARNING; - } - - if (!strcmp(argv[1], "udp")) - vtyvc->ll = GPRS_NS2_LL_UDP; - else - vtyvc->ll = GPRS_NS2_LL_FR_GRE; - - return CMD_SUCCESS; -} - -DEFUN(cfg_nse_remoterole, cfg_nse_remoterole_cmd, - "nse <0-65535> remote-role (sgsn|bss)", - NSE_CMD_STR - "Remote NSE Role\n" - "Remote Peer is SGSN\n" - "Remote Peer is BSS\n") -{ - uint16_t nsei = atoi(argv[0]); - struct ns2_vty_vc *vtyvc; - - vtyvc = vtyvc_by_nsei(nsei, true); - if (!vtyvc) { - vty_out(vty, "Can not allocate space %s", VTY_NEWLINE); - return CMD_WARNING; - } - - if (!strcmp(argv[1], "sgsn")) - vtyvc->remote_end_is_sgsn = 1; - else - vtyvc->remote_end_is_sgsn = 0; - - return CMD_SUCCESS; -} - -DEFUN(cfg_no_nse, cfg_no_nse_cmd, - "no nse <0-65535>", - "Delete Persistent NS Entity\n" - "Delete " NSE_CMD_STR) -{ - uint16_t nsei = atoi(argv[0]); - struct ns2_vty_vc *vtyvc; - - vtyvc = vtyvc_by_nsei(nsei, false); - if (!vtyvc) { - vty_out(vty, "The NSE %d does not exists.%s", nsei, VTY_NEWLINE); - return CMD_WARNING; - } - - ns2_vc_free(vtyvc); - - return CMD_SUCCESS; -} - -DEFUN(cfg_ns_timer, cfg_ns_timer_cmd, - "timer " NS_TIMERS " <0-65535>", - "Network Service Timer\n" - NS_TIMERS_HELP "Timer Value\n") -{ - int idx = get_string_value(gprs_ns_timer_strs, argv[0]); - int val = atoi(argv[1]); - - if (idx < 0 || idx >= ARRAY_SIZE(vty_nsi->timeout)) - return CMD_WARNING; - - vty_nsi->timeout[idx] = val; - - return CMD_SUCCESS; -} - -#define ENCAPS_STR "NS encapsulation options\n" - -DEFUN(cfg_nsip_local_ip, cfg_nsip_local_ip_cmd, - "encapsulation udp local-ip " VTY_IPV46_CMD, - ENCAPS_STR "NS over UDP Encapsulation\n" - "Set the IP address on which we listen for NS/UDP\n" - "IPv4 Address\n" - "IPv6 Address\n") -{ - osmo_sockaddr_str_from_str2(&priv.udp, argv[0]); - - return CMD_SUCCESS; -} - -DEFUN(cfg_nsip_local_port, cfg_nsip_local_port_cmd, - "encapsulation udp local-port <0-65535>", - ENCAPS_STR "NS over UDP Encapsulation\n" - "Set the UDP port on which we listen for NS/UDP\n" - "UDP port number\n") -{ - unsigned int port = atoi(argv[0]); - - priv.udp.port = port; - - return CMD_SUCCESS; -} - -DEFUN(cfg_nsip_dscp, cfg_nsip_dscp_cmd, - "encapsulation udp dscp <0-255>", - ENCAPS_STR "NS over UDP Encapsulation\n" - "Set DSCP/TOS on the UDP socket\n" "DSCP Value\n") -{ - int dscp = atoi(argv[0]); - struct gprs_ns2_vc_bind *bind; - - priv.dscp = dscp; - - llist_for_each_entry(bind, &vty_nsi->binding, list) { - if (gprs_ns2_is_ip_bind(bind)) - gprs_ns2_ip_bind_set_dscp(bind, dscp); + if (!strcmp(argv[1], "block")) { + ns2_vc_block(nsvc); + } else { + ns2_vc_unblock(nsvc); } return CMD_SUCCESS; } -DEFUN(cfg_nsip_res_block_unblock, cfg_nsip_res_block_unblock_cmd, - "encapsulation udp use-reset-block-unblock (enabled|disabled)", - ENCAPS_STR "NS over UDP Encapsulation\n" - "Use NS-{RESET,BLOCK,UNBLOCK} procedures in violation of 3GPP TS 48.016\n" - "Enable NS-{RESET,BLOCK,UNBLOCK}\n" - "Disable NS-{RESET,BLOCK,UNBLOCK}\n") +static void log_set_nse_filter(struct log_target *target, + struct gprs_ns2_nse *nse) { - enum gprs_ns2_vc_mode vc_mode; - - if (!strcmp(argv[0], "enabled")) - vc_mode = GPRS_NS2_VC_MODE_BLOCKRESET; - else - vc_mode = GPRS_NS2_VC_MODE_ALIVE; - - priv.vc_mode = vc_mode; - - return CMD_SUCCESS; + if (nse) { + target->filter_map |= (1 << LOG_FLT_GB_NSE); + target->filter_data[LOG_FLT_GB_NSE] = nse; + } else if (target->filter_data[LOG_FLT_GB_NSE]) { + target->filter_map = ~(1 << LOG_FLT_GB_NSE); + target->filter_data[LOG_FLT_GB_NSE] = NULL; + } } -DEFUN(cfg_frgre_local_ip, cfg_frgre_local_ip_cmd, - "encapsulation framerelay-gre local-ip " VTY_IPV46_CMD, - ENCAPS_STR "NS over Frame Relay over GRE Encapsulation\n" - "Set the IP address on which we listen for NS/FR/GRE\n" - "IPv4 Address\n" - "IPv6 Address\n") +static void log_set_nsvc_filter(struct log_target *target, + struct gprs_ns2_vc *nsvc) { - osmo_sockaddr_str_from_str2(&priv.frgreaddr, argv[0]); - - return CMD_SUCCESS; + if (nsvc) { + target->filter_map |= (1 << LOG_FLT_GB_NSVC); + target->filter_data[LOG_FLT_GB_NSVC] = nsvc; + } else if (target->filter_data[LOG_FLT_GB_NSVC]) { + target->filter_map = ~(1 << LOG_FLT_GB_NSVC); + target->filter_data[LOG_FLT_GB_NSVC] = NULL; + } } -DEFUN(cfg_frgre_enable, cfg_frgre_enable_cmd, - "encapsulation framerelay-gre enabled (1|0)", - ENCAPS_STR "NS over Frame Relay over GRE Encapsulation\n" - "Enable or disable Frame Relay over GRE\n" - "Enable\n" "Disable\n") -{ - int enabled = atoi(argv[0]); - - priv.frgre = enabled; - - return CMD_SUCCESS; -} - -/* TODO: allow vty to reset/block/unblock nsvc/nsei */ - DEFUN(logging_fltr_nse, logging_fltr_nse_cmd, "logging filter nse nsei <0-65535>", @@ -817,29 +1617,14 @@ return CMD_SUCCESS; } -/** - * gprs_ns2_vty_init initialize the vty - * \param[inout] nsi - * \param[in] default_bind set the default address to bind to. Can be NULL. - * \return 0 on success - */ -int gprs_ns2_vty_init(struct gprs_ns2_inst *nsi, - const struct osmo_sockaddr_str *default_bind) +int gprs_ns2_vty_init(struct gprs_ns2_inst *nsi) { - static bool vty_elements_installed = false; - vty_nsi = nsi; - memset(&priv, 0, sizeof(struct ns2_vty_priv)); - INIT_LLIST_HEAD(&priv.vtyvc); - priv.vc_mode = GPRS_NS2_VC_MODE_BLOCKRESET; - if (default_bind) - memcpy(&priv.udp, default_bind, sizeof(*default_bind)); + INIT_LLIST_HEAD(&binds); - /* Regression test code may call this function repeatedly, so make sure - * that VTY elements are not duplicated, which would assert. */ - if (vty_elements_installed) - return 0; - vty_elements_installed = true; + vty_fr_network = osmo_fr_network_alloc(nsi); + if (!vty_fr_network) + return -ENOMEM; install_lib_element_ve(&show_ns_cmd); install_lib_element_ve(&show_ns_binds_cmd); @@ -850,152 +1635,42 @@ install_lib_element_ve(&logging_fltr_nsvc_cmd); install_lib_element(ENABLE_NODE, &nsvc_force_unconf_cmd); + install_lib_element(ENABLE_NODE, &nsvc_block_cmd); install_lib_element(CFG_LOG_NODE, &logging_fltr_nse_cmd); install_lib_element(CFG_LOG_NODE, &logging_fltr_nsvc_cmd); install_lib_element(CONFIG_NODE, &cfg_ns_cmd); + install_node(&ns_node, config_write_ns); - install_lib_element(L_NS_NODE, &cfg_nse_fr_cmd); - install_lib_element(L_NS_NODE, &cfg_nse_nsvci_cmd); - install_lib_element(L_NS_NODE, &cfg_nse_remoteip_cmd); - install_lib_element(L_NS_NODE, &cfg_nse_remoteport_cmd); - install_lib_element(L_NS_NODE, &cfg_nse_fr_dlci_cmd); - install_lib_element(L_NS_NODE, &cfg_nse_encaps_cmd); - install_lib_element(L_NS_NODE, &cfg_nse_remoterole_cmd); - install_lib_element(L_NS_NODE, &cfg_no_nse_cmd); + /* TODO: convert into osmo timer */ install_lib_element(L_NS_NODE, &cfg_ns_timer_cmd); - install_lib_element(L_NS_NODE, &cfg_nsip_local_ip_cmd); - install_lib_element(L_NS_NODE, &cfg_nsip_local_port_cmd); - install_lib_element(L_NS_NODE, &cfg_nsip_dscp_cmd); - install_lib_element(L_NS_NODE, &cfg_nsip_res_block_unblock_cmd); - install_lib_element(L_NS_NODE, &cfg_frgre_enable_cmd); - install_lib_element(L_NS_NODE, &cfg_frgre_local_ip_cmd); + install_lib_element(L_NS_NODE, &cfg_ns_nsei_cmd); + install_lib_element(L_NS_NODE, &cfg_no_ns_nsei_cmd); + install_lib_element(L_NS_NODE, &cfg_ns_bind_cmd); + install_lib_element(L_NS_NODE, &cfg_no_ns_bind_cmd); - /* TODO: nsvc/nsei command to reset states or reset/block/unblock nsei/nsvcs */ + install_node(&ns_bind_node, config_write_ns_bind); + install_lib_element(L_NS_BIND_NODE, &cfg_ns_bind_listen_cmd); + install_lib_element(L_NS_BIND_NODE, &cfg_no_ns_bind_listen_cmd); + install_lib_element(L_NS_BIND_NODE, &cfg_ns_bind_dscp_cmd); + install_lib_element(L_NS_BIND_NODE, &cfg_no_ns_bind_dscp_cmd); + install_lib_element(L_NS_BIND_NODE, &cfg_ns_bind_ipaccess_cmd); + install_lib_element(L_NS_BIND_NODE, &cfg_no_ns_bind_ipaccess_cmd); + install_lib_element(L_NS_BIND_NODE, &cfg_ns_bind_fr_cmd); + install_lib_element(L_NS_BIND_NODE, &cfg_no_ns_bind_fr_cmd); + /* TODO: accept-ip-sns when SGSN SNS has been implemented */ - return 0; -} - -/*! - * \brief gprs_ns2_vty_create parse the vty tree into ns nodes - * It has to be in different steps to ensure the bind is created before creating VCs. - * \return 0 on success - */ -int gprs_ns2_vty_create() { - struct ns2_vty_vc *vtyvc; - struct gprs_ns2_vc_bind *bind, *fr; - struct gprs_ns2_nse *nse; - struct gprs_ns2_vc *nsvc; - struct osmo_sockaddr sockaddr; - enum gprs_ns2_dialect dialect = GPRS_NS2_DIALECT_UNDEF; - int rc = 0; - - if (!vty_nsi) - return -1; - - /* create binds, only support a single bind. either FR or UDP */ - if (priv.frgre) { - /* TODO not yet supported !*/ - return -1; - } else { - /* UDP */ - osmo_sockaddr_str_to_sockaddr(&priv.udp, &sockaddr.u.sas); - if (gprs_ns2_ip_bind(vty_nsi, "vtybind", &sockaddr, priv.dscp, &bind)) { - /* TODO: could not bind on the specific address */ - return -1; - } - - bind->accept_ipaccess = priv.vc_mode == GPRS_NS2_VC_MODE_BLOCKRESET; - } - - /* create vcs */ - llist_for_each_entry(vtyvc, &priv.vtyvc, list) { - /* validate settings */ - switch (vtyvc->ll) { - case GPRS_NS2_LL_UDP: - if (priv.vc_mode == GPRS_NS2_VC_MODE_BLOCKRESET) - dialect = GPRS_NS2_DIALECT_IPACCESS; - else - dialect = GPRS_NS2_DIALECT_STATIC_ALIVE; - if (strlen(vtyvc->remote.ip) == 0) { - /* Invalid IP for VC */ - continue; - } - - if (!vtyvc->remote.port) { - /* Invalid port for VC */ - continue; - } - - if (osmo_sockaddr_str_to_sockaddr(&vtyvc->remote, &sockaddr.u.sas)) { - /* Invalid sockaddr for VC */ - continue; - } - break; - case GPRS_NS2_LL_FR: - dialect = GPRS_NS2_DIALECT_STATIC_RESETBLOCK; - break; - case GPRS_NS2_LL_FR_GRE: - dialect = GPRS_NS2_DIALECT_STATIC_RESETBLOCK; - continue; - case GPRS_NS2_LL_UNDEF: - /* should not happen */ - OSMO_ASSERT(false); - } - - nse = gprs_ns2_nse_by_nsei(vty_nsi, vtyvc->nsei); - if (!nse) { - nse = gprs_ns2_create_nse(vty_nsi, vtyvc->nsei, vtyvc->ll, dialect); - if (!nse) { - /* Could not create NSE for VTY */ - continue; - } - } - nse->persistent = true; - - switch (vtyvc->ll) { - case GPRS_NS2_LL_UDP: - nsvc = gprs_ns2_ip_connect(bind, - &sockaddr, - nse, - vtyvc->nsvci); - if (!nsvc) { - /* Could not create NSVC, connect failed */ - continue; - } - nsvc->persistent = true; - break; - case GPRS_NS2_LL_FR: { - if (vty_fr_network == NULL) { - /* TODO: add a switch for BSS/SGSN/gbproxy */ - vty_fr_network = osmo_fr_network_alloc(vty_nsi); - } - fr = gprs_ns2_fr_bind_by_netif( - vty_nsi, - vtyvc->netif); - if (!fr) { - rc = gprs_ns2_fr_bind(vty_nsi, vtyvc->netif, vtyvc->netif, vty_fr_network, vtyvc->fr.role, &fr); - if (rc < 0) { - LOGP(DLNS, LOGL_ERROR, "Can not create fr bind on device %s err: %d\n", vtyvc->netif, rc); - return rc; - } - } - - nsvc = gprs_ns2_fr_connect(fr, nse, vtyvc->nsvci, vtyvc->frdlci); - if (!nsvc) { - /* Could not create NSVC, connect failed */ - continue; - } - nsvc->persistent = true; - break; - } - case GPRS_NS2_LL_FR_GRE: - case GPRS_NS2_LL_UNDEF: - continue; - } - } - + install_node(&ns_nse_node, config_write_ns_nse); + install_lib_element(L_NS_NSE_NODE, &cfg_ns_nse_nsvc_fr_cmd); + install_lib_element(L_NS_NSE_NODE, &cfg_no_ns_nse_nsvci_cmd); + install_lib_element(L_NS_NSE_NODE, &cfg_no_ns_nse_nsvc_fr_dlci_cmd); + install_lib_element(L_NS_NSE_NODE, &cfg_ns_nse_nsvc_udp_cmd); + install_lib_element(L_NS_NSE_NODE, &cfg_no_ns_nse_nsvc_udp_cmd); + install_lib_element(L_NS_NSE_NODE, &cfg_ns_nse_nsvc_ipa_cmd); + install_lib_element(L_NS_NSE_NODE, &cfg_no_ns_nse_nsvc_ipa_cmd); + install_lib_element(L_NS_NSE_NODE, &cfg_ns_nse_ip_sns_cmd); + install_lib_element(L_NS_NSE_NODE, &cfg_no_ns_nse_ip_sns_cmd); return 0; } diff --git a/src/gb/gprs_ns2_vty2.c b/src/gb/gprs_ns2_vty2.c deleted file mode 100644 index 31aff3e..0000000 --- a/src/gb/gprs_ns2_vty2.c +++ /dev/null @@ -1,1676 +0,0 @@ -/*! \file gprs_ns2_vty.c - * VTY interface for our GPRS Networks Service (NS) implementation. */ - -/* (C) 2020 by sysmocom - s.f.m.c. GmbH - * Author: Alexander Couzens - * - * All Rights Reserved - * - * SPDX-License-Identifier: GPL-2.0+ - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - */ - -#include -#include -#include -#include - -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "gprs_ns2_internal.h" - -#define SHOW_NS_STR "Display information about the NS protocol\n" -#define NSVCI_STR "NS Virtual Connection ID (NS-VCI)\n" -#define DLCI_STR "Data Link connection identifier\n" - -static struct gprs_ns2_inst *vty_nsi = NULL; -static struct osmo_fr_network *vty_fr_network = NULL; -static struct llist_head binds; - -struct vty_bind { - struct llist_head list; - const char *name; - enum gprs_ns2_ll ll; - int dscp; - bool accept_ipaccess; - bool accept_sns; -}; - -/* TODO: this should into osmo timer */ -static const struct value_string gprs_ns_timer_strs[] = { - { 0, "tns-block" }, - { 1, "tns-block-retries" }, - { 2, "tns-reset" }, - { 3, "tns-reset-retries" }, - { 4, "tns-test" }, - { 5, "tns-alive" }, - { 6, "tns-alive-retries" }, - { 7, "tsns-prov" }, - { 8, "tsns-size-retries" }, - { 9, "tsns-config-retries" }, - { 0, NULL } -}; - -const struct value_string vty_fr_role_names[] = { - { FR_ROLE_USER_EQUIPMENT, "fr" }, - { FR_ROLE_NETWORK_EQUIPMENT, "frnet" }, - { 0, NULL } -}; - -const struct value_string vty_ll_names[] = { - { GPRS_NS2_LL_FR, "fr" }, - { GPRS_NS2_LL_FR_GRE, "frgre" }, - { GPRS_NS2_LL_UDP, "udp" }, - { 0, NULL } -}; - -static struct vty_bind *vty_bind_by_name(const char *name) -{ - struct vty_bind *vbind; - llist_for_each_entry(vbind, &binds, list) { - if (!strncmp(vbind->name, name, strlen(vbind->name))) - return vbind; - } - return NULL; -} - -static struct vty_bind *vty_bind_alloc(const char *name) -{ - struct vty_bind *vbind = talloc_zero(vty_nsi, struct vty_bind); - if (!vbind) - return NULL; - - vbind->name = talloc_strdup(vty_nsi, name); - if (!vbind->name) { - talloc_free(vbind); - return NULL; - } - - llist_add(&vbind->list, &binds); - return vbind; -} - -static void vty_bind_free(struct vty_bind *vbind) -{ - if (!vbind) - return; - - llist_del(&vbind->list); -} - -static struct cmd_node ns_node = { - L_NS_NODE, - "%s(config-ns)# ", - 1, -}; - -DEFUN(cfg_ns, cfg_ns_cmd, - "ns", - "Configure the GPRS Network Service") -{ - vty->node = L_NS_NODE; - return CMD_SUCCESS; -} - -DEFUN(cfg_ns_timer, cfg_ns_timer_cmd, - "timer " NS_TIMERS " <0-65535>", - "Network Service Timer\n" - NS_TIMERS_HELP "Timer Value\n") -{ - int idx = get_string_value(gprs_ns_timer_strs, argv[0]); - int val = atoi(argv[1]); - - if (idx < 0 || idx >= ARRAY_SIZE(vty_nsi->timeout)) - return CMD_WARNING; - - vty_nsi->timeout[idx] = val; - - return CMD_SUCCESS; -} - -DEFUN(cfg_ns_nsei, cfg_ns_nsei_cmd, - "nse <0-65535>", - "Persistent NS Entity\n" - "NS Entity ID (NSEI)\n" - ) -{ - struct gprs_ns2_nse *nse; - uint16_t nsei = atoi(argv[0]); - - nse = gprs_ns2_nse_by_nsei(vty_nsi, nsei); - if (!nse) { - nse = gprs_ns2_create_nse(vty_nsi, nsei, GPRS_NS2_LL_UNDEF, GPRS_NS2_DIALECT_UNDEF); - if (!nse) { - vty_out(vty, "Failed to create NSE!%s", VTY_NEWLINE); - return CMD_ERR_INCOMPLETE; - } - nse->persistent = true; - } - - if (!nse->persistent) { - /* TODO: should the dynamic NSE removed? */ - vty_out(vty, "A dynamic NSE with the specified NSEI already exists%s", VTY_NEWLINE); - return CMD_ERR_INCOMPLETE; - } - - vty->node = L_NS_NSE_NODE; - vty->index = nse; - - return CMD_SUCCESS; -} - -DEFUN(cfg_no_ns_nsei, cfg_no_ns_nsei_cmd, - "no nse <0-65535>", - NO_STR - "Delete a Persistent NS Entity\n" - "NS Entity ID (NSEI)\n" - ) -{ - struct gprs_ns2_nse *nse; - uint16_t nsei = atoi(argv[0]); - - nse = gprs_ns2_nse_by_nsei(vty_nsi, nsei); - if (!nse) { - vty_out(vty, "Can not find NS Entity %s%s", argv[0], VTY_NEWLINE); - return CMD_ERR_NOTHING_TODO; - } - - if (!nse->persistent) { - vty_out(vty, "Ignoring non-persistent NS Entity%s", VTY_NEWLINE); - return CMD_WARNING; - } - - vty_out(vty, "Deleting NS Entity %u%s", nse->nsei, VTY_NEWLINE); - gprs_ns2_free_nse(nse); - return CMD_SUCCESS; -} - -/* TODO: add fr/gre */ -DEFUN(cfg_ns_bind, cfg_ns_bind_cmd, - "bind (fr|udp) ID", - "Binding\n" - "Frame Relay\n" "UDP/IP\n" - "a unique identifier for this bind to reference NS-VCs\n" - ) -{ - const char *nstype = argv[0]; - const char *name = argv[1]; - struct vty_bind *vbind; - enum gprs_ns2_ll ll; - int rc; - - rc = get_string_value(vty_ll_names, nstype); - if (rc < 0) - return CMD_WARNING; - ll = (enum gprs_ns2_ll) rc; - - if (!osmo_identifier_valid(name)) { - vty_out(vty, "Invalid ID. The ID should be only alphanumeric.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - vbind = vty_bind_by_name(name); - if (vbind) { - if (vbind->ll != ll) { - vty_out(vty, "A bind with the specified ID already exists with a different type (fr|frgre|udp)!%s", - VTY_NEWLINE); - return CMD_WARNING; - } - } else { - vbind = vty_bind_alloc(name); - if (!vbind) { - vty_out(vty, "Can not create bind - out of memory%s", VTY_NEWLINE); - return CMD_WARNING; - } - vbind->ll = ll; - } - - vty->index = vbind; - vty->node = L_NS_BIND_NODE; - - return CMD_SUCCESS; -} - -DEFUN(cfg_no_ns_bind, cfg_no_ns_bind_cmd, - "no bind ID", - NO_STR - "Delete a binding\n" - "a unique identifier for this bind to reference NS-VCs\n" - ) -{ - struct vty_bind *vbind; - struct gprs_ns2_vc_bind *bind; - const char *name = argv[0]; - - vbind = vty_bind_by_name(name); - if (!vbind) { - vty_out(vty, "bind %s does not exist!%s", name, VTY_NEWLINE); - return CMD_WARNING; - } - vty_bind_free(vbind); - bind = gprs_ns2_bind_by_name(vty_nsi, name); - if (bind) - bind->driver->free_bind(bind); - return CMD_SUCCESS; -} - - -static void config_write_vbind(struct vty *vty, struct vty_bind *vbind) -{ - struct gprs_ns2_vc_bind *bind; - const struct osmo_sockaddr *addr; - struct osmo_sockaddr_str addr_str; - const char *netif, *frrole_str, *llstr; - enum osmo_fr_role frrole; - - llstr = get_value_string_or_null(vty_ll_names, vbind->ll); - if (!llstr) - return; - vty_out(vty, " bind %s %s%s", llstr, vbind->name, VTY_NEWLINE); - - bind = gprs_ns2_bind_by_name(vty_nsi, vbind->name); - switch (vbind->ll) { - case GPRS_NS2_LL_FR: - if (bind) { - netif = gprs_ns2_fr_bind_netif(bind); - if (!netif) - return; - frrole = gprs_ns2_fr_bind_role(bind); - if ((int) frrole == -1) - return; - frrole_str = get_value_string_or_null(vty_fr_role_names, frrole); - if (netif && frrole_str) - vty_out(vty, " fr %s %s%s", netif, frrole_str, VTY_NEWLINE); - } - break; - case GPRS_NS2_LL_UDP: - if (bind) { - addr = gprs_ns2_ip_bind_sockaddr(bind); - if (!osmo_sockaddr_str_from_sockaddr(&addr_str, &addr->u.sas)) { - vty_out(vty, " listen %s %u%s", addr_str.ip, addr_str.port, - VTY_NEWLINE); - } - } - if (vbind->accept_ipaccess) - vty_out(vty, " accept-ipaccess%s", VTY_NEWLINE); - if (vbind->dscp) - vty_out(vty, " dscp %u%s", vbind->dscp, VTY_NEWLINE); - break; - default: - return; - } -} - -static void config_write_nsvc(struct vty *vty, const struct gprs_ns2_vc *nsvc) -{ - const char *netif; - uint16_t dlci; - const struct osmo_sockaddr *addr; - struct osmo_sockaddr_str addr_str; - - switch (nsvc->nse->ll) { - case GPRS_NS2_LL_UNDEF: - break; - case GPRS_NS2_LL_UDP: - switch (nsvc->nse->dialect) { - case GPRS_NS2_DIALECT_IPACCESS: - addr = gprs_ns2_ip_vc_remote(nsvc); - if (!addr) - break; - if (osmo_sockaddr_str_from_sockaddr(&addr_str, &addr->u.sas)) - break; - vty_out(vty, " nsvc ipa %s %s %u nsvci %u%s", - nsvc->bind->name, addr_str.ip, addr_str.port, - nsvc->nsvci, VTY_NEWLINE); - break; - case GPRS_NS2_DIALECT_STATIC_ALIVE: - addr = gprs_ns2_ip_vc_remote(nsvc); - if (!addr) - break; - if (osmo_sockaddr_str_from_sockaddr(&addr_str, &addr->u.sas)) - break; - vty_out(vty, " nsvc udp %s %s %u%s", - nsvc->bind->name, addr_str.ip, addr_str.port, VTY_NEWLINE); - break; - default: - break; - } - break; - case GPRS_NS2_LL_FR: - netif = gprs_ns2_fr_bind_netif(nsvc->bind); - if (!netif) - break; - dlci = gprs_ns2_fr_nsvc_dlci(nsvc); - if (!dlci) - break; - OSMO_ASSERT(nsvc->nsvci_is_valid); - vty_out(vty, " nsvc fr %s dlci %u nsvci %u%s", - netif, dlci, nsvc->nsvci, VTY_NEWLINE); - break; - case GPRS_NS2_LL_FR_GRE: - break; - } -} - -static void _config_write_ns_nse(struct vty *vty, struct gprs_ns2_nse *nse) -{ - struct gprs_ns2_vc *nsvc; - - vty_out(vty, " nse %u%s", nse->nsei, VTY_NEWLINE); - switch (nse->dialect) { - case GPRS_NS2_DIALECT_SNS: - ns2_sns_write_vty(vty, nse); - break; - default: - llist_for_each_entry(nsvc, &nse->nsvc, list) { - config_write_nsvc(vty, nsvc); - } - break; - } -} - -static int config_write_ns(struct vty *vty) -{ - unsigned int i; - - vty_out(vty, "ns%s", VTY_NEWLINE); - - for (i = 0; i < ARRAY_SIZE(vty_nsi->timeout); i++) - vty_out(vty, " timer %s %u%s", - get_value_string(gprs_ns_timer_strs, i), - vty_nsi->timeout[i], VTY_NEWLINE); - - return 0; -} - -static int config_write_ns_nse(struct vty *vty) -{ - struct gprs_ns2_nse *nse; - - llist_for_each_entry(nse, &vty_nsi->nse, list) { - if (!nse->persistent) - continue; - - _config_write_ns_nse(vty, nse); - } - - return 0; -} - -static int config_write_ns_bind(struct vty *vty) -{ - struct vty_bind *vbind; - - llist_for_each_entry(vbind, &binds, list) { - config_write_vbind(vty, vbind); - } - - return 0; -} - -static struct cmd_node ns_bind_node = { - L_NS_BIND_NODE, - "%s(config-ns-bind)# ", - 1, -}; - -DEFUN(cfg_ns_bind_listen, cfg_ns_bind_listen_cmd, - "listen " VTY_IPV46_CMD " <1-65535>", - "Binding\n" - "IPv4 Address\n" "IPv6 Address\n" - "Port\n" - ) -{ - struct vty_bind *vbind = vty->index; - struct gprs_ns2_vc_bind *bind; - - const char *addr_str = argv[0]; - unsigned int port = atoi(argv[1]); - struct osmo_sockaddr_str sockaddr_str; - struct osmo_sockaddr sockaddr; - - if (vbind->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "listen can be only used with UDP bind%s", - VTY_NEWLINE); - return CMD_WARNING; - } - - if (osmo_sockaddr_str_from_str(&sockaddr_str, addr_str, port)) { - vty_out(vty, "Can not parse the Address %s %s%s", argv[0], argv[1], VTY_NEWLINE); - return CMD_WARNING; - } - osmo_sockaddr_str_to_sockaddr(&sockaddr_str, &sockaddr.u.sas); - if (gprs_ns2_ip_bind_by_sockaddr(vty_nsi, &sockaddr)) { - vty_out(vty, "A bind with the specified address already exists!%s", VTY_NEWLINE); - return CMD_WARNING; - } - - if (gprs_ns2_ip_bind(vty_nsi, vbind->name, &sockaddr, vbind->dscp, &bind) != 0) { - vty_out(vty, "Failed to create the bind!%s", VTY_NEWLINE); - return CMD_WARNING; - } - - bind->accept_ipaccess = vbind->accept_ipaccess; - bind->accept_sns = vbind->accept_sns; - - return CMD_SUCCESS; -} - -DEFUN(cfg_no_ns_bind_listen, cfg_no_ns_bind_listen_cmd, - "no listen", - NO_STR - "Delete a IP/Port assignment\n" - ) -{ - struct vty_bind *vbind = vty->index; - struct gprs_ns2_vc_bind *bind; - - if (vbind->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "no listen can be only used with UDP bind%s", VTY_NEWLINE); - return CMD_WARNING; - } - - bind = gprs_ns2_bind_by_name(vty_nsi, vbind->name); - if (!bind) - return CMD_ERR_NOTHING_TODO; - - OSMO_ASSERT(bind->ll != GPRS_NS2_LL_UDP); - bind->driver->free_bind(bind); - return CMD_SUCCESS; -} - -DEFUN(cfg_ns_bind_dscp, cfg_ns_bind_dscp_cmd, - "dscp <0-255>", - "Set DSCP/TOS on the UDP socket\n" "DSCP Value\n") -{ - struct vty_bind *vbind = vty->index; - struct gprs_ns2_vc_bind *bind; - uint16_t dscp = atoi(argv[0]); - - if (vbind->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "dscp can be only used with UDP bind%s", - VTY_NEWLINE); - return CMD_WARNING; - } - - vbind->dscp = dscp; - bind = gprs_ns2_bind_by_name(vty_nsi, vbind->name); - if (bind) - gprs_ns2_ip_bind_set_dscp(bind, dscp); - - return CMD_SUCCESS; -} - -DEFUN(cfg_no_ns_bind_dscp, cfg_no_ns_bind_dscp_cmd, - "no dscp", - "Set DSCP/TOS on the UDP socket\n" "DSCP Value\n") -{ - struct vty_bind *vbind = vty->index; - struct gprs_ns2_vc_bind *bind; - uint16_t dscp = 0; - - if (vbind->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "dscp can be only used with UDP bind%s", - VTY_NEWLINE); - return CMD_WARNING; - } - - vbind->dscp = dscp; - bind = gprs_ns2_bind_by_name(vty_nsi, vbind->name); - if (bind) - gprs_ns2_ip_bind_set_dscp(bind, dscp); - - return CMD_SUCCESS; -} - -DEFUN(cfg_ns_bind_ipaccess, cfg_ns_bind_ipaccess_cmd, - "accept-ipaccess", - "Allow to create dynamic NS Entity by NS Reset PDU on UDP (ip.access style)\n" - ) -{ - struct vty_bind *vbind = vty->index; - struct gprs_ns2_vc_bind *bind; - - if (vbind->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "accept-ipaccess can be only used with UDP bind%s", - VTY_NEWLINE); - return CMD_WARNING; - } - - vbind->accept_ipaccess = true; - bind = gprs_ns2_bind_by_name(vty_nsi, vbind->name); - if (bind) - bind->accept_ipaccess = true; - - return CMD_SUCCESS; -} - -DEFUN(cfg_no_ns_bind_ipaccess, cfg_no_ns_bind_ipaccess_cmd, - "no accept-ipaccess", - NO_STR - "Reject NS Reset PDU on UDP (ip.access style)\n" - ) -{ - struct vty_bind *vbind = vty->index; - struct gprs_ns2_vc_bind *bind; - - if (vbind->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "no accept-ipaccess can be only used with UDP bind%s", - VTY_NEWLINE); - return CMD_WARNING; - } - - vbind->accept_ipaccess = false; - bind = gprs_ns2_bind_by_name(vty_nsi, vbind->name); - if (bind) - bind->accept_ipaccess = false; - - return CMD_SUCCESS; -} - - -DEFUN(cfg_ns_bind_fr, cfg_ns_bind_fr_cmd, - "fr NETIF (fr|frnet)", - "frame relay\n" - IFNAME_STR - "fr (user) is used by BSS or SGSN attached to UNI of a FR network\n" - "frnet (network) is used by SGSN if BSS is directly attached\n" - ) -{ - struct vty_bind *vbind = vty->index; - struct gprs_ns2_vc_bind *bind; - const char *netif = argv[0]; - const char *role = argv[1]; - - int rc = 0; - enum osmo_fr_role frrole; - - if (vbind->ll != GPRS_NS2_LL_FR) { - vty_out(vty, "fr can be only used with frame relay bind%s", VTY_NEWLINE); - return CMD_WARNING; - } - - if (!strcmp(role, "fr")) - frrole = FR_ROLE_USER_EQUIPMENT; - else if (!strcmp(role, "frnet")) - frrole = FR_ROLE_NETWORK_EQUIPMENT; - else - return CMD_WARNING; - - bind = gprs_ns2_fr_bind_by_netif(vty_nsi, netif); - if (bind) { - vty_out(vty, "Interface %s already used.%s", netif, VTY_NEWLINE); - return CMD_WARNING; - } - - rc = gprs_ns2_fr_bind(vty_nsi, vbind->name, netif, vty_fr_network, frrole, &bind); - if (rc < 0) { - LOGP(DLNS, LOGL_ERROR, "Failed to bind interface %s on fr. Err: %d\n", netif, rc); - return CMD_WARNING; - } - - return CMD_SUCCESS; -} - -DEFUN(cfg_no_ns_bind_fr, cfg_no_ns_bind_fr_cmd, - "no fr NETIF", - NO_STR - "Delete a frame relay link\n" - "Delete a frame relay link\n" - IFNAME_STR - ) -{ - struct vty_bind *vbind = vty->index; - struct gprs_ns2_vc_bind *bind; - const char *netif = argv[0]; - - if (vbind->ll != GPRS_NS2_LL_FR) { - vty_out(vty, "fr can be only used with frame relay bind%s", - VTY_NEWLINE); - return CMD_WARNING; - } - - bind = gprs_ns2_fr_bind_by_netif(vty_nsi, netif); - if (!bind) { - vty_out(vty, "Interface not found.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - if (strcmp(bind->name, vbind->name)) { - vty_out(vty, "The specified interface is not bound to this bind.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - bind->driver->free_bind(bind); - return CMD_SUCCESS; -} - - -static struct cmd_node ns_nse_node = { - L_NS_NSE_NODE, - "%s(config-ns-nse)# ", - 1, -}; - -DEFUN(cfg_ns_nse_nsvc_fr, cfg_ns_nse_nsvc_fr_cmd, - "nsvc fr NETIF dlci <16-1007> nsvci <0-65535>", - "NS Virtual Connection\n" - "frame relay\n" - "frame relay interface. Must be registered via fr vty\n" - NSVCI_STR - NSVCI_STR - DLCI_STR - DLCI_STR - ) -{ - struct gprs_ns2_vc_bind *bind; - struct gprs_ns2_vc *nsvc; - struct gprs_ns2_nse *nse = vty->index; - const char *netif = argv[0]; - uint16_t dlci = atoi(argv[1]); - uint16_t nsvci = atoi(argv[2]); - bool dialect_modified = false; - bool ll_modified = false; - - if (nse->ll != GPRS_NS2_LL_FR && nse->ll != GPRS_NS2_LL_UNDEF) { - vty_out(vty, "Can not mix NS-VC with different link layer%s", VTY_NEWLINE); - goto err; - } - - if (nse->dialect != GPRS_NS2_DIALECT_STATIC_RESETBLOCK && nse->dialect != GPRS_NS2_DIALECT_UNDEF) { - vty_out(vty, "Can not mix NS-VC with different dialects%s", VTY_NEWLINE); - goto err; - } - - if (nse->ll == GPRS_NS2_LL_UNDEF) { - nse->ll = GPRS_NS2_LL_FR; - ll_modified = true; - } - - if (nse->dialect == GPRS_NS2_DIALECT_UNDEF) { - nse->dialect = GPRS_NS2_DIALECT_STATIC_RESETBLOCK; - dialect_modified = true; - } - - - bind = gprs_ns2_fr_bind_by_netif(vty_nsi, netif); - if (!bind) { - vty_out(vty, "Can not find fr interface \"%s\". Please configure it via fr vty.%s", - netif, VTY_NEWLINE); - goto err; - } - - if (gprs_ns2_fr_nsvc_by_dlci(bind, dlci)) { - vty_out(vty, "A NS-VC with the specified DLCI already exist!%s", VTY_NEWLINE); - goto err; - } - - if (gprs_ns2_nsvc_by_nsvci(vty_nsi, nsvci)) { - vty_out(vty, "A NS-VC with the specified NS-VCI already exist!%s", VTY_NEWLINE); - goto err; - } - - nsvc = gprs_ns2_fr_connect(bind, nse, nsvci, dlci); - if (!nsvc) { - /* Could not create NS-VC, connect failed */ - vty_out(vty, "Failed to create the NS-VC%s", VTY_NEWLINE); - goto err; - } - nsvc->persistent = true; - return CMD_SUCCESS; - -err: - if (ll_modified) - nse->ll = GPRS_NS2_LL_UNDEF; - if (dialect_modified) - nse->dialect = GPRS_NS2_DIALECT_UNDEF; - - return CMD_WARNING; -} - -DEFUN(cfg_no_ns_nse_nsvc_fr_dlci, cfg_no_ns_nse_nsvc_fr_dlci_cmd, - "no nsvc fr NETIF dlci <16-1007>", - NO_STR - "Delete frame relay NS-VC\n" - "frame relay\n" - "frame relay interface. Must be registered via fr vty\n" - DLCI_STR - DLCI_STR - ) -{ - struct gprs_ns2_vc_bind *bind; - struct gprs_ns2_vc *nsvc; - struct gprs_ns2_nse *nse = vty->index; - const char *netif = argv[0]; - uint16_t dlci = atoi(argv[1]); - - if (nse->ll != GPRS_NS2_LL_FR) { - vty_out(vty, "This NSE doesn't support frame relay.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - bind = gprs_ns2_fr_bind_by_netif(vty_nsi, netif); - if (!bind) { - vty_out(vty, "Can not find fr interface \"%s\"%s", - netif, VTY_NEWLINE); - return CMD_ERR_NOTHING_TODO; - } - - nsvc = gprs_ns2_fr_nsvc_by_dlci(bind, dlci); - if (!nsvc) { - vty_out(vty, "Can not find a NS-VC on fr interface %s with dlci %u%s", - netif, dlci, VTY_NEWLINE); - return CMD_WARNING; - } - - if (nse != nsvc->nse) { - vty_out(vty, "The specified NS-VC is not a part of the NSE %u!%s" - "To remove this NS-VC go to the vty node 'nse %u'%s", - nse->nsei, VTY_NEWLINE, - nsvc->nse->nsei, VTY_NEWLINE); - return CMD_WARNING; - } - - gprs_ns2_free_nsvc(nsvc); - if (llist_empty(&nse->nsvc)) { - nse->ll = GPRS_NS2_LL_UNDEF; - nse->dialect = GPRS_NS2_DIALECT_UNDEF; - } - - return CMD_SUCCESS; -} - -DEFUN(cfg_no_ns_nse_nsvci, cfg_no_ns_nse_nsvci_cmd, - "no nsvc nsvci <0-65535>", - NO_STR - "Delete NSVC\n" - NSVCI_STR - NSVCI_STR - ) -{ - struct gprs_ns2_vc *nsvc; - struct gprs_ns2_nse *nse = vty->index; - uint16_t nsvci = atoi(argv[0]); - - switch (nse->dialect) { - case GPRS_NS2_DIALECT_SNS: - case GPRS_NS2_DIALECT_STATIC_ALIVE: - vty_out(vty, "NSE doesn't support NSVCI.%s", VTY_NEWLINE); - return CMD_WARNING; - case GPRS_NS2_DIALECT_UNDEF: - vty_out(vty, "No NSVCs configured%s", VTY_NEWLINE); - return CMD_WARNING; - case GPRS_NS2_DIALECT_IPACCESS: - case GPRS_NS2_DIALECT_STATIC_RESETBLOCK: - break; - } - - nsvc = gprs_ns2_nsvc_by_nsvci(vty_nsi, nsvci); - if (!nsvc) { - vty_out(vty, "Can not find NS-VC with NS-VCI %u%s", nsvci, VTY_NEWLINE); - return CMD_WARNING; - } - - if (nse != nsvc->nse) { - vty_out(vty, "NS-VC with NS-VCI %u is not part of this NSE!%s", - nsvci, VTY_NEWLINE); - return CMD_WARNING; - } - - gprs_ns2_free_nsvc(nsvc); - if (llist_empty(&nse->nsvc)) { - nse->ll = GPRS_NS2_LL_UNDEF; - nse->dialect = GPRS_NS2_DIALECT_UNDEF; - } - - return CMD_SUCCESS; -} - -DEFUN(cfg_ns_nse_nsvc_udp, cfg_ns_nse_nsvc_udp_cmd, - "nsvc udp BIND " VTY_IPV46_CMD " <1-65535>", - "NS Virtual Connection\n" - "NS over UDP\n" - "A unique bind identifier created by ns bind\n" - "Remote IPv4 Address\n" "Remote IPv6 Address\n" - "Remote UDP Port\n" - ) -{ - struct gprs_ns2_vc_bind *bind; - struct gprs_ns2_vc *nsvc; - struct gprs_ns2_nse *nse = vty->index; - bool dialect_modified = false; - bool ll_modified = false; - - const char *bind_name = argv[0]; - struct osmo_sockaddr_str remote_str; - struct osmo_sockaddr remote; - uint16_t port = atoi(argv[2]); - - if (nse->ll == GPRS_NS2_LL_UNDEF) { - nse->ll = GPRS_NS2_LL_UDP; - ll_modified = true; - } - - if (nse->dialect == GPRS_NS2_DIALECT_UNDEF) { - nse->dialect = GPRS_NS2_DIALECT_STATIC_ALIVE; - dialect_modified = true; - } - - if (nse->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "Can not mix NS-VC with different link layer%s", VTY_NEWLINE); - goto err; - } - - if (nse->dialect != GPRS_NS2_DIALECT_STATIC_ALIVE) { - vty_out(vty, "Can not mix NS-VC with different dialects%s", VTY_NEWLINE); - goto err; - } - - if (osmo_sockaddr_str_from_str(&remote_str, argv[1], port)) { - vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); - goto err; - } - - if (osmo_sockaddr_str_to_sockaddr(&remote_str, &remote.u.sas)) { - vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); - goto err; - } - - bind = gprs_ns2_bind_by_name(vty_nsi, bind_name); - if (!bind) { - vty_out(vty, "Can not find bind with name %s%s", - bind_name, VTY_NEWLINE); - goto err; - } - - if (bind->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "Bind %s is not an UDP bind.%s", - bind_name, VTY_NEWLINE); - goto err; - } - - nsvc = gprs_ns2_ip_connect(bind, &remote, nse, 0); - if (!nsvc) { - vty_out(vty, "Can not create NS-VC.%s", VTY_NEWLINE); - goto err; - } - nsvc->persistent = true; - - return CMD_SUCCESS; - -err: - if (ll_modified) - nse->ll = GPRS_NS2_LL_UNDEF; - if (dialect_modified) - nse->dialect = GPRS_NS2_DIALECT_UNDEF; - return CMD_WARNING; -} - -DEFUN(cfg_no_ns_nse_nsvc_udp, cfg_no_ns_nse_nsvc_udp_cmd, - "no nsvc udp BIND " VTY_IPV46_CMD " <1-65535>", - NO_STR - "Delete a NS Virtual Connection\n" - "NS over UDP\n" - "A unique bind identifier created by ns bind\n" - "Remote IPv4 Address\n" "Remote IPv6 Address\n" - "Remote UDP Port\n" - ) -{ - struct gprs_ns2_vc_bind *bind; - struct gprs_ns2_vc *nsvc; - struct gprs_ns2_nse *nse = vty->index; - const char *bind_name = argv[0]; - struct osmo_sockaddr_str remote_str; - struct osmo_sockaddr remote; - uint16_t port = atoi(argv[2]); - - if (nse->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "This NSE doesn't support UDP.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - if (nse->dialect != GPRS_NS2_DIALECT_STATIC_ALIVE) { - vty_out(vty, "This NSE doesn't support UDP with dialect static alive.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - bind = gprs_ns2_bind_by_name(vty_nsi, bind_name); - if (!bind) { - vty_out(vty, "Can not find bind with name %s%s", - bind_name, VTY_NEWLINE); - return CMD_WARNING; - } - - if (bind->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "Bind %s is not an UDP bind.%s", - bind_name, VTY_NEWLINE); - return CMD_WARNING; - } - - if (osmo_sockaddr_str_from_str(&remote_str, argv[1], port)) { - vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - if (osmo_sockaddr_str_to_sockaddr(&remote_str, &remote.u.sas)) { - vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - nsvc = gprs_ns2_nsvc_by_sockaddr_bind(bind, &remote); - if (!nsvc) { - vty_out(vty, "Can not find NS-VC with remote %s:%u%s", - remote_str.ip, remote_str.port, VTY_NEWLINE); - return CMD_WARNING; - } - - if (!nsvc->persistent) { - vty_out(vty, "NS-VC with remote %s:%u is a dynamic NS-VC. Not configured by vty.%s", - remote_str.ip, remote_str.port, VTY_NEWLINE); - return CMD_WARNING; - } - - if (nsvc->nse != nse) { - vty_out(vty, "NS-VC is not part of this NSE!%s", VTY_NEWLINE); - return CMD_WARNING; - } - - gprs_ns2_free_nsvc(nsvc); - if (llist_empty(&nse->nsvc)) { - nse->ll = GPRS_NS2_LL_UNDEF; - nse->dialect = GPRS_NS2_DIALECT_UNDEF; - } - - return CMD_SUCCESS; -} - -DEFUN(cfg_ns_nse_nsvc_ipa, cfg_ns_nse_nsvc_ipa_cmd, - "nsvc ipa BIND " VTY_IPV46_CMD " <1-65535> nsvci <0-65535>" , - "NS Virtual Connection\n" - "NS over UDP ip.access style (uses RESET/BLOCK)\n" - "A unique bind identifier created by ns bind\n" - "Remote IPv4 Address\n" "Remote IPv6 Address\n" - "Remote UDP Port\n" - NSVCI_STR - NSVCI_STR - ) -{ - struct gprs_ns2_vc_bind *bind; - struct gprs_ns2_vc *nsvc; - struct gprs_ns2_nse *nse = vty->index; - bool dialect_modified = false; - bool ll_modified = false; - - const char *bind_name = argv[0]; - struct osmo_sockaddr_str remote_str; - struct osmo_sockaddr remote; - uint16_t port = atoi(argv[2]); - uint16_t nsvci = atoi(argv[3]); - - if (nse->ll == GPRS_NS2_LL_UNDEF) { - nse->ll = GPRS_NS2_LL_UDP; - ll_modified = true; - } - - if (nse->dialect == GPRS_NS2_DIALECT_UNDEF) { - nse->dialect = GPRS_NS2_DIALECT_IPACCESS; - dialect_modified = true; - } - - if (nse->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "Can not mix NS-VC with different link layer%s", VTY_NEWLINE); - goto err; - } - - if (nse->dialect != GPRS_NS2_DIALECT_IPACCESS) { - vty_out(vty, "Can not mix NS-VC with different dialects%s", VTY_NEWLINE); - goto err; - } - - if (osmo_sockaddr_str_from_str(&remote_str, argv[1], port)) { - vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); - goto err; - } - - if (osmo_sockaddr_str_to_sockaddr(&remote_str, &remote.u.sas)) { - vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); - goto err; - } - - bind = gprs_ns2_bind_by_name(vty_nsi, bind_name); - if (!bind) { - vty_out(vty, "Can not find bind with name %s%s", - bind_name, VTY_NEWLINE); - goto err; - } - - if (bind->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "Bind %s is not an UDP bind.%s", - bind_name, VTY_NEWLINE); - goto err; - } - - nsvc = gprs_ns2_ip_connect(bind, &remote, nse, nsvci); - if (!nsvc) { - vty_out(vty, "Can not create NS-VC.%s", VTY_NEWLINE); - goto err; - } - nsvc->persistent = true; - - return CMD_SUCCESS; - -err: - if (ll_modified) - nse->ll = GPRS_NS2_LL_UNDEF; - if (dialect_modified) - nse->dialect = GPRS_NS2_DIALECT_UNDEF; - return CMD_WARNING; -} - -DEFUN(cfg_no_ns_nse_nsvc_ipa, cfg_no_ns_nse_nsvc_ipa_cmd, - "no nsvc ipa BIND " VTY_IPV46_CMD " <1-65535> nsvci <0-65535>", - NO_STR - "Delete a NS Virtual Connection\n" - "NS over UDP\n" - "A unique bind identifier created by ns bind\n" - "Remote IPv4 Address\n" "Remote IPv6 Address\n" - "Remote UDP Port\n" - NSVCI_STR - NSVCI_STR - ) -{ - struct gprs_ns2_vc_bind *bind; - struct gprs_ns2_vc *nsvc; - struct gprs_ns2_nse *nse = vty->index; - const char *bind_name = argv[0]; - struct osmo_sockaddr_str remote_str; - struct osmo_sockaddr remote; - uint16_t port = atoi(argv[2]); - uint16_t nsvci = atoi(argv[3]); - - if (nse->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "This NSE doesn't support UDP.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - if (nse->dialect != GPRS_NS2_DIALECT_IPACCESS) { - vty_out(vty, "This NSE doesn't support UDP with dialect ipaccess.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - bind = gprs_ns2_bind_by_name(vty_nsi, bind_name); - if (!bind) { - vty_out(vty, "Can not find bind with name %s%s", - bind_name, VTY_NEWLINE); - return CMD_WARNING; - } - - if (bind->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "Bind %s is not an UDP bind.%s", - bind_name, VTY_NEWLINE); - return CMD_WARNING; - } - - if (osmo_sockaddr_str_from_str(&remote_str, argv[1], port)) { - vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - if (osmo_sockaddr_str_to_sockaddr(&remote_str, &remote.u.sas)) { - vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - nsvc = gprs_ns2_nsvc_by_sockaddr_bind(bind, &remote); - if (!nsvc) { - vty_out(vty, "Can not find NS-VC with remote %s:%u%s", - remote_str.ip, remote_str.port, VTY_NEWLINE); - return CMD_WARNING; - } - - if (!nsvc->persistent) { - vty_out(vty, "NS-VC with remote %s:%u is a dynamic NS-VC. Not configured by vty.%s", - remote_str.ip, remote_str.port, VTY_NEWLINE); - return CMD_WARNING; - } - - if (nsvc->nse != nse) { - vty_out(vty, "NS-VC is not part of this NSE!%s", VTY_NEWLINE); - return CMD_WARNING; - } - - if (!nsvc->nsvci_is_valid) { - vty_out(vty, "NS-VC doesn't have a nsvci!%s", VTY_NEWLINE); - return CMD_WARNING; - } - - if (nsvc->nsvci != nsvci) { - vty_out(vty, "NS-VC has a different nsvci (%u)!%s", - nsvc->nsvci, VTY_NEWLINE); - return CMD_WARNING; - } - - gprs_ns2_free_nsvc(nsvc); - if (llist_empty(&nse->nsvc)) { - nse->ll = GPRS_NS2_LL_UNDEF; - nse->dialect = GPRS_NS2_DIALECT_UNDEF; - } - - return CMD_SUCCESS; -} - -DEFUN(cfg_ns_nse_ip_sns, cfg_ns_nse_ip_sns_cmd, - "ip-sns " VTY_IPV46_CMD " <1-65535>", - "SNS Initial Endpoint\n" - "SGSN IPv4 Address\n" "SGSN IPv6 Address\n" - "SGSN UDP Port\n" - ) -{ - struct gprs_ns2_nse *nse = vty->index; - bool dialect_modified = false; - bool ll_modified = false; - int rc; - - /* argv[0] */ - struct osmo_sockaddr_str remote_str; - struct osmo_sockaddr remote; - uint16_t port = atoi(argv[1]); - - if (nse->ll == GPRS_NS2_LL_UNDEF) { - nse->ll = GPRS_NS2_LL_UDP; - ll_modified = true; - } - - if (nse->dialect == GPRS_NS2_DIALECT_UNDEF) { - char sns[16]; - snprintf(sns, sizeof(sns), "NSE%05u-SNS", nse->nsei); - nse->bss_sns_fi = ns2_sns_bss_fsm_alloc(nse, sns); - if (!nse->bss_sns_fi) - goto err; - nse->dialect = GPRS_NS2_DIALECT_SNS; - dialect_modified = true; - } - - if (nse->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "Can not mix NS-VC with different link layer%s", VTY_NEWLINE); - goto err; - } - - if (nse->dialect != GPRS_NS2_DIALECT_SNS) { - vty_out(vty, "Can not mix NS-VC with different dialects%s", VTY_NEWLINE); - goto err; - } - - if (osmo_sockaddr_str_from_str(&remote_str, argv[0], port)) { - vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); - goto err; - } - - if (osmo_sockaddr_str_to_sockaddr(&remote_str, &remote.u.sas)) { - vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); - goto err; - } - - rc = gprs_ns2_sns_add_endpoint(nse, &remote); - switch (rc) { - case 0: - return CMD_SUCCESS; - case -EADDRINUSE: - vty_out(vty, "Specified SNS endpoint already part of the NSE.%s", VTY_NEWLINE); - return CMD_WARNING; - default: - vty_out(vty, "Can not add specified SNS endpoint.%s", VTY_NEWLINE); - return CMD_WARNING; - } - -err: - if (ll_modified) - nse->ll = GPRS_NS2_LL_UNDEF; - if (dialect_modified) - nse->dialect = GPRS_NS2_DIALECT_UNDEF; - return CMD_WARNING; -} - -DEFUN(cfg_no_ns_nse_ip_sns, cfg_no_ns_nse_ip_sns_cmd, - "no ip-sns " VTY_IPV46_CMD " <1-65535>", - NO_STR - "Delete a SNS Initial Endpoint\n" - "SGSN IPv4 Address\n" "SGSN IPv6 Address\n" - "SGSN UDP Port\n" - ) -{ - struct gprs_ns2_nse *nse = vty->index; - struct osmo_sockaddr_str remote_str; /* argv[0] */ - struct osmo_sockaddr remote; - uint16_t port = atoi(argv[1]); - int count; - - if (nse->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "This NSE doesn't support UDP.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - if (nse->dialect != GPRS_NS2_DIALECT_SNS) { - vty_out(vty, "This NSE doesn't support UDP with dialect ip-sns.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - if (osmo_sockaddr_str_from_str(&remote_str, argv[0], port)) { - vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - if (osmo_sockaddr_str_to_sockaddr(&remote_str, &remote.u.sas)) { - vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - if (gprs_ns2_sns_del_endpoint(nse, &remote)) { - vty_out(vty, "Can not remove specified SNS endpoint.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - count = gprs_ns2_sns_count(nse); - if (count > 0) { - /* there are other sns endpoints */ - return CMD_SUCCESS; - } else if (count < 0) { - OSMO_ASSERT(0); - } else { - /* clean up nse to allow other nsvc commands */ - osmo_fsm_inst_term(nse->bss_sns_fi, OSMO_FSM_TERM_REQUEST, NULL); - nse->bss_sns_fi = NULL; - nse->ll = GPRS_NS2_LL_UNDEF; - nse->dialect = GPRS_NS2_DIALECT_UNDEF; - } - - return CMD_SUCCESS; -} - - -/* non-config commands */ -static void dump_nsvc(struct vty *vty, struct gprs_ns2_vc *nsvc, bool stats) -{ - char nsvci_str[32]; - - if (nsvc->nsvci_is_valid) - snprintf(nsvci_str, sizeof(nsvci_str), "%05u", nsvc->nsvci); - else - snprintf(nsvci_str, sizeof(nsvci_str), "none"); - - vty_out(vty, " NSVCI %s: %s %s data_weight=%u sig_weight=%u %s%s", nsvci_str, - osmo_fsm_inst_state_name(nsvc->fi), - nsvc->persistent ? "PERSIST" : "DYNAMIC", - nsvc->data_weight, nsvc->sig_weight, - gprs_ns2_ll_str(nsvc), VTY_NEWLINE); - - if (stats) { - vty_out_rate_ctr_group(vty, " ", nsvc->ctrg); - vty_out_stat_item_group(vty, " ", nsvc->statg); - } -} - -static void dump_nse(struct vty *vty, const struct gprs_ns2_nse *nse, bool stats, bool persistent_only) -{ - struct gprs_ns2_vc *nsvc; - - vty_out(vty, "NSEI %05u: %s, %s%s", nse->nsei, gprs_ns2_lltype_str(nse->ll), - nse->alive ? "ALIVE" : "DEAD", VTY_NEWLINE); - - ns2_sns_dump_vty(vty, " ", nse, stats); - llist_for_each_entry(nsvc, &nse->nsvc, list) { - if (persistent_only) { - if (nsvc->persistent) - dump_nsvc(vty, nsvc, stats); - } else { - dump_nsvc(vty, nsvc, stats); - } - } -} - -static void dump_bind(struct vty *vty, const struct gprs_ns2_vc_bind *bind, bool stats) -{ - if (bind->dump_vty) - bind->dump_vty(bind, vty, stats); -} - -static void dump_ns_bind(struct vty *vty, const struct gprs_ns2_inst *nsi, bool stats) -{ - struct gprs_ns2_vc_bind *bind; - - llist_for_each_entry(bind, &nsi->binding, list) { - dump_bind(vty, bind, stats); - } -} - - -static void dump_ns_entities(struct vty *vty, const struct gprs_ns2_inst *nsi, bool stats, bool persistent_only) -{ - struct gprs_ns2_nse *nse; - - llist_for_each_entry(nse, &nsi->nse, list) { - dump_nse(vty, nse, stats, persistent_only); - } -} - -/* Backwards compatibility, among other things for the TestVTYGbproxy which expects - * 'show ns' to output something about binds */ -DEFUN_HIDDEN(show_ns, show_ns_cmd, "show ns", - SHOW_STR SHOW_NS_STR) -{ - dump_ns_entities(vty, vty_nsi, false, false); - dump_ns_bind(vty, vty_nsi, false); - return CMD_SUCCESS; -} - - -DEFUN(show_ns_binds, show_ns_binds_cmd, "show ns binds [stats]", - SHOW_STR SHOW_NS_STR - "Display information about the NS protocol binds\n" - "Include statistic\n") -{ - bool stats = false; - if (argc > 0) - stats = true; - - dump_ns_bind(vty, vty_nsi, stats); - return CMD_SUCCESS; -} - -DEFUN(show_ns_entities, show_ns_entities_cmd, "show ns entities [stats]", - SHOW_STR SHOW_NS_STR - "Display information about the NS protocol entities (NSEs)\n" - "Include statistics\n") -{ - bool stats = false; - if (argc > 0) - stats = true; - - dump_ns_entities(vty, vty_nsi, stats, false); - return CMD_SUCCESS; -} - -DEFUN(show_ns_pers, show_ns_pers_cmd, "show ns persistent", - SHOW_STR SHOW_NS_STR - "Show only persistent NS\n") -{ - dump_ns_entities(vty, vty_nsi, true, true); - return CMD_SUCCESS; -} - -DEFUN(show_nse, show_nse_cmd, "show ns (nsei|nsvc) <0-65535> [stats]", - SHOW_STR SHOW_NS_STR - "Select one NSE by its NSE Identifier\n" - "Select one NSE by its NS-VC Identifier\n" - "The Identifier of selected type\n" - "Include Statistics\n") -{ - struct gprs_ns2_inst *nsi = vty_nsi; - struct gprs_ns2_nse *nse; - struct gprs_ns2_vc *nsvc; - uint16_t id = atoi(argv[1]); - bool show_stats = false; - - if (argc >= 3) - show_stats = true; - - if (!strcmp(argv[0], "nsei")) { - nse = gprs_ns2_nse_by_nsei(nsi, id); - if (!nse) { - return CMD_WARNING; - } - - dump_nse(vty, nse, show_stats, false); - } else { - nsvc = gprs_ns2_nsvc_by_nsvci(nsi, id); - - if (!nsvc) { - vty_out(vty, "No such NS Entity%s", VTY_NEWLINE); - return CMD_WARNING; - } - - dump_nsvc(vty, nsvc, show_stats); - } - - return CMD_SUCCESS; -} - -static int nsvc_force_unconf_cb(struct gprs_ns2_vc *nsvc, void *ctx) -{ - ns2_vc_force_unconfigured(nsvc); - return 0; -} - -DEFUN_HIDDEN(nsvc_force_unconf, nsvc_force_unconf_cmd, - "nsvc nsei <0-65535> force-unconfigured", - "NS Virtual Connection\n" - "The NSEI\n" - "Reset the NSVCs back to initial state\n" - ) -{ - struct gprs_ns2_inst *nsi = vty_nsi; - struct gprs_ns2_nse *nse; - - uint16_t id = atoi(argv[0]); - - nse = gprs_ns2_nse_by_nsei(nsi, id); - if (!nse) { - vty_out(vty, "Could not find NSE for NSEI %u%s", id, VTY_NEWLINE); - return CMD_WARNING; - } - - if (!nse->persistent) { - gprs_ns2_free_nse(nse); - } else if (nse->dialect == GPRS_NS2_DIALECT_SNS) { - gprs_ns2_free_nsvcs(nse); - } else { - /* Perform the operation for all nsvc */ - gprs_ns2_nse_foreach_nsvc(nse, nsvc_force_unconf_cb, NULL); - } - - return CMD_SUCCESS; -} - -DEFUN(nsvc_block, nsvc_block_cmd, - "nsvc <0-65535> (block|unblock)", - "NS Virtual Connection\n" - NSVCI_STR - "Block a NSVC. As cause code O&M intervention will be used.\n" - "Unblock a NSVC. As cause code O&M intervention will be used.\n") -{ - struct gprs_ns2_inst *nsi = vty_nsi; - struct gprs_ns2_vc *nsvc; - - uint16_t id = atoi(argv[0]); - - nsvc = gprs_ns2_nsvc_by_nsvci(nsi, id); - if (!nsvc) { - vty_out(vty, "Could not find NSVCI %05u%s", id, VTY_NEWLINE); - return CMD_WARNING; - } - - if (!strcmp(argv[1], "block")) { - ns2_vc_block(nsvc); - } else { - ns2_vc_unblock(nsvc); - } - - return CMD_SUCCESS; -} - -static void log_set_nse_filter(struct log_target *target, - struct gprs_ns2_nse *nse) -{ - if (nse) { - target->filter_map |= (1 << LOG_FLT_GB_NSE); - target->filter_data[LOG_FLT_GB_NSE] = nse; - } else if (target->filter_data[LOG_FLT_GB_NSE]) { - target->filter_map = ~(1 << LOG_FLT_GB_NSE); - target->filter_data[LOG_FLT_GB_NSE] = NULL; - } -} - -static void log_set_nsvc_filter(struct log_target *target, - struct gprs_ns2_vc *nsvc) -{ - if (nsvc) { - target->filter_map |= (1 << LOG_FLT_GB_NSVC); - target->filter_data[LOG_FLT_GB_NSVC] = nsvc; - } else if (target->filter_data[LOG_FLT_GB_NSVC]) { - target->filter_map = ~(1 << LOG_FLT_GB_NSVC); - target->filter_data[LOG_FLT_GB_NSVC] = NULL; - } -} - -DEFUN(logging_fltr_nse, - logging_fltr_nse_cmd, - "logging filter nse nsei <0-65535>", - LOGGING_STR FILTER_STR - "Filter based on NS Entity\n" - "Identify NSE by NSEI\n" - "Numeric identifier\n") -{ - struct log_target *tgt; - struct gprs_ns2_nse *nse; - uint16_t id = atoi(argv[0]); - - log_tgt_mutex_lock(); - tgt = osmo_log_vty2tgt(vty); - if (!tgt) { - log_tgt_mutex_unlock(); - return CMD_WARNING; - } - - nse = gprs_ns2_nse_by_nsei(vty_nsi, id); - if (!nse) { - vty_out(vty, "No NSE by that identifier%s", VTY_NEWLINE); - log_tgt_mutex_unlock(); - return CMD_WARNING; - } - - log_set_nse_filter(tgt, nse); - log_tgt_mutex_unlock(); - return CMD_SUCCESS; -} - -/* TODO: add filter for single connection by description */ -DEFUN(logging_fltr_nsvc, - logging_fltr_nsvc_cmd, - "logging filter nsvc nsvci <0-65535>", - LOGGING_STR FILTER_STR - "Filter based on NS Virtual Connection\n" - "Identify NS-VC by NSVCI\n" - "Numeric identifier\n") -{ - struct log_target *tgt; - struct gprs_ns2_vc *nsvc; - uint16_t id = atoi(argv[0]); - - log_tgt_mutex_lock(); - tgt = osmo_log_vty2tgt(vty); - if (!tgt) { - log_tgt_mutex_unlock(); - return CMD_WARNING; - } - - nsvc = gprs_ns2_nsvc_by_nsvci(vty_nsi, id); - if (!nsvc) { - vty_out(vty, "No NS-VC by that identifier%s", VTY_NEWLINE); - log_tgt_mutex_unlock(); - return CMD_WARNING; - } - - log_set_nsvc_filter(tgt, nsvc); - log_tgt_mutex_unlock(); - return CMD_SUCCESS; -} - -int gprs_ns2_vty2_init(struct gprs_ns2_inst *nsi) -{ - vty_nsi = nsi; - INIT_LLIST_HEAD(&binds); - - vty_fr_network = osmo_fr_network_alloc(nsi); - if (!vty_fr_network) - return -ENOMEM; - - install_lib_element_ve(&show_ns_cmd); - install_lib_element_ve(&show_ns_binds_cmd); - install_lib_element_ve(&show_ns_entities_cmd); - install_lib_element_ve(&show_ns_pers_cmd); - install_lib_element_ve(&show_nse_cmd); - install_lib_element_ve(&logging_fltr_nse_cmd); - install_lib_element_ve(&logging_fltr_nsvc_cmd); - - install_lib_element(ENABLE_NODE, &nsvc_force_unconf_cmd); - install_lib_element(ENABLE_NODE, &nsvc_block_cmd); - - install_lib_element(CFG_LOG_NODE, &logging_fltr_nse_cmd); - install_lib_element(CFG_LOG_NODE, &logging_fltr_nsvc_cmd); - - install_lib_element(CONFIG_NODE, &cfg_ns_cmd); - - install_node(&ns_node, config_write_ns); - /* TODO: convert into osmo timer */ - install_lib_element(L_NS_NODE, &cfg_ns_timer_cmd); - install_lib_element(L_NS_NODE, &cfg_ns_nsei_cmd); - install_lib_element(L_NS_NODE, &cfg_no_ns_nsei_cmd); - install_lib_element(L_NS_NODE, &cfg_ns_bind_cmd); - install_lib_element(L_NS_NODE, &cfg_no_ns_bind_cmd); - - install_node(&ns_bind_node, config_write_ns_bind); - install_lib_element(L_NS_BIND_NODE, &cfg_ns_bind_listen_cmd); - install_lib_element(L_NS_BIND_NODE, &cfg_no_ns_bind_listen_cmd); - install_lib_element(L_NS_BIND_NODE, &cfg_ns_bind_dscp_cmd); - install_lib_element(L_NS_BIND_NODE, &cfg_no_ns_bind_dscp_cmd); - install_lib_element(L_NS_BIND_NODE, &cfg_ns_bind_ipaccess_cmd); - install_lib_element(L_NS_BIND_NODE, &cfg_no_ns_bind_ipaccess_cmd); - install_lib_element(L_NS_BIND_NODE, &cfg_ns_bind_fr_cmd); - install_lib_element(L_NS_BIND_NODE, &cfg_no_ns_bind_fr_cmd); - /* TODO: accept-ip-sns when SGSN SNS has been implemented */ - - install_node(&ns_nse_node, config_write_ns_nse); - install_lib_element(L_NS_NSE_NODE, &cfg_ns_nse_nsvc_fr_cmd); - install_lib_element(L_NS_NSE_NODE, &cfg_no_ns_nse_nsvci_cmd); - install_lib_element(L_NS_NSE_NODE, &cfg_no_ns_nse_nsvc_fr_dlci_cmd); - install_lib_element(L_NS_NSE_NODE, &cfg_ns_nse_nsvc_udp_cmd); - install_lib_element(L_NS_NSE_NODE, &cfg_no_ns_nse_nsvc_udp_cmd); - install_lib_element(L_NS_NSE_NODE, &cfg_ns_nse_nsvc_ipa_cmd); - install_lib_element(L_NS_NSE_NODE, &cfg_no_ns_nse_nsvc_ipa_cmd); - install_lib_element(L_NS_NSE_NODE, &cfg_ns_nse_ip_sns_cmd); - install_lib_element(L_NS_NSE_NODE, &cfg_no_ns_nse_ip_sns_cmd); - - return 0; -} diff --git a/src/gb/libosmogb.map b/src/gb/libosmogb.map index b4d7fdb..f60575d 100644 --- a/src/gb/libosmogb.map +++ b/src/gb/libosmogb.map @@ -183,9 +183,7 @@ gprs_ns2_start_alive_all_nsvcs; gprs_ns2_sns_add_endpoint; gprs_ns2_sns_del_endpoint; -gprs_ns2_vty_create; gprs_ns2_vty_init; -gprs_ns2_vty2_init; gprs_nsvc_create2; gprs_nsvc_delete; diff --git a/utils/osmo-ns-dummy.c b/utils/osmo-ns-dummy.c index 58e8152..33949d3 100644 --- a/utils/osmo-ns-dummy.c +++ b/utils/osmo-ns-dummy.c @@ -230,7 +230,7 @@ } gprs_ns2_dynamic_create_nse(nsi, true); - gprs_ns2_vty2_init(nsi); + gprs_ns2_vty_init(nsi); rc = vty_read_config_file(config_file, NULL); if (rc < 0 && config_given) { fprintf(stderr, "Failed to parse the config file: '%s'\n", -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22430 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I8c3f2afecc74b78f7f914f7dce166cbcb63444eb Gerrit-Change-Number: 22430 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 15:48:12 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 25 Jan 2021 15:48:12 +0000 Subject: Change in libosmocore[master]: gprs_ns2: drop prefix of all internal exposed function In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22427 ) Change subject: gprs_ns2: drop prefix of all internal exposed function ...................................................................... Patch Set 1: Code-Review+1 (2 comments) https://gerrit.osmocom.org/c/libosmocore/+/22427/1/src/gb/gprs_ns2.c File src/gb/gprs_ns2.c: https://gerrit.osmocom.org/c/libosmocore/+/22427/1/src/gb/gprs_ns2.c at 1272 PS1, Line 1272: struct gprs_ns2_vc_bind *gprs_ns2_bind_by_name(struct gprs_ns2_inst *nsi, const char *name) Unrelated WS change https://gerrit.osmocom.org/c/libosmocore/+/22427/1/src/gb/gprs_ns2.c at 1284 PS1, Line 1284: enum gprs_ns2_vc_mode ns2_dialect_to_vc_mode(enum gprs_ns2_dialect dialect) Unrelated WS change -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22427 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Icecc5a918902cd10efac72bbac20780d39aab272 Gerrit-Change-Number: 22427 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Comment-Date: Mon, 25 Jan 2021 15:48:12 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 15:48:25 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 25 Jan 2021 15:48:25 +0000 Subject: Change in libosmocore[master]: gprs_ns2: drop GPRS_ prefix of gprs_ns2_cs In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22426 ) Change subject: gprs_ns2: drop GPRS_ prefix of gprs_ns2_cs ...................................................................... Patch Set 1: If jenkins is happy I'm happy -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22426 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I79be92ca716366c2e07ea061c08d95bea817a8c7 Gerrit-Change-Number: 22426 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-CC: daniel Gerrit-Comment-Date: Mon, 25 Jan 2021 15:48:25 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 15:49:21 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 25 Jan 2021 15:49:21 +0000 Subject: Change in libosmocore[master]: gprs_ns2: drop the public prefix gprs_ from all static functions/stru... In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22428 ) Change subject: gprs_ns2: drop the public prefix gprs_ from all static functions/structs/.. ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22428 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I6ba0599e5a6d6fabf93851dd3ec7716f2ef2d840 Gerrit-Change-Number: 22428 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Comment-Date: Mon, 25 Jan 2021 15:49:21 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 15:51:19 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 25 Jan 2021 15:51:19 +0000 Subject: Change in libosmocore[master]: gprs_ns2: refactor: ensure all enums have GPRS_NS2_ In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22429 ) Change subject: gprs_ns2: refactor: ensure all enums have GPRS_NS2_ ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22429 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I548ff12f7277cbb7e1a630a3dc02b738ce89be72 Gerrit-Change-Number: 22429 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Comment-Date: Mon, 25 Jan 2021 15:51:19 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 16:00:51 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 25 Jan 2021 16:00:51 +0000 Subject: Change in libosmocore[master]: gprs_ns2: drop GPRS_ prefix of gprs_ns2_cs In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22426 ) Change subject: gprs_ns2: drop GPRS_ prefix of gprs_ns2_cs ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22426 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I79be92ca716366c2e07ea061c08d95bea817a8c7 Gerrit-Change-Number: 22426 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Comment-Date: Mon, 25 Jan 2021 16:00:51 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 16:05:10 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 25 Jan 2021 16:05:10 +0000 Subject: Change in libosmocore[master]: gprs_ns2: drop gprs_ns2_vty, rename vty2 -> vty In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22430 ) Change subject: gprs_ns2: drop gprs_ns2_vty, rename vty2 -> vty ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22430 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I8c3f2afecc74b78f7f914f7dce166cbcb63444eb Gerrit-Change-Number: 22430 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Comment-Date: Mon, 25 Jan 2021 16:05:10 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 16:05:42 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 25 Jan 2021 16:05:42 +0000 Subject: Change in libosmocore[master]: gprs_ns2: always pass a tp to gprs_ns2_vc_rx In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22423 ) Change subject: gprs_ns2: always pass a tp to gprs_ns2_vc_rx ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22423 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I3cd6ed20cdc1390075669e1d0101154c51f3997f Gerrit-Change-Number: 22423 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 25 Jan 2021 16:05:42 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 16:05:59 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 25 Jan 2021 16:05:59 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vc_fsm: check NSEI match the NSE In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22424 ) Change subject: gprs_ns2_vc_fsm: check NSEI match the NSE ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22424 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I00bc04f3f46f5ae8ddd8b4b7d5479fb8e6463e1e Gerrit-Change-Number: 22424 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Comment-Date: Mon, 25 Jan 2021 16:05:59 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 16:06:16 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 25 Jan 2021 16:06:16 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vc_fsm: check NSVCI match the NSE In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22425 ) Change subject: gprs_ns2_vc_fsm: check NSVCI match the NSE ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22425 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I0ebdd4f4135b03a7d44a93aff3846c8ec19f333b Gerrit-Change-Number: 22425 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Comment-Date: Mon, 25 Jan 2021 16:06:16 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 16:20:52 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 25 Jan 2021 16:20:52 +0000 Subject: Change in osmo-bts[master]: pcu_sock: send SI1, SI3 and SI3 along with PCUIF info indication In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/22367 ) Change subject: pcu_sock: send SI1, SI3 and SI3 along with PCUIF info indication ...................................................................... Patch Set 2: This change is ready for review. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22367 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ie8c3467b6cf8b8bfdeee9a281412d814cbc379b8 Gerrit-Change-Number: 22367 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: fixeria Gerrit-Comment-Date: Mon, 25 Jan 2021 16:20:52 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 16:32:16 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 25 Jan 2021 16:32:16 +0000 Subject: Change in osmo-ttcn3-hacks[master]: PCU_Tests: add testcase TC_rim_ran_info_req_single_rep and _no_si In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369 ) Change subject: PCU_Tests: add testcase TC_rim_ran_info_req_single_rep and _no_si ...................................................................... Patch Set 1: (1 comment) > Patch Set 1: > > Something like: > > record PCUIF_SI_ind { > uint8_t si_type, > uint8_t si_len, > octetstring si > } with { > variant (si_len) "LENGTHTO(si)" > }; I start to understand the problem - fine with me. I will update the current state anyway. https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369/1/library/PCUIF_Types.ttcn File library/PCUIF_Types.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369/1/library/PCUIF_Types.ttcn at 220 PS1, Line 220: record length(23) of uint8_t > yes, it should be an "octetstring length (23)", see how we define e.g. OCT4 in General_Types. [?] Done -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I9054ab0e969c0fbfdc671c92d44cc61360959adc Gerrit-Change-Number: 22369 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-CC: laforge Gerrit-Comment-Date: Mon, 25 Jan 2021 16:32:16 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: laforge Comment-In-Reply-To: fixeria Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 16:42:19 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 25 Jan 2021 16:42:19 +0000 Subject: Change in osmo-ttcn3-hacks[master]: PCU_Tests: add testcase TC_rim_ran_info_req_single_rep and _no_si In-Reply-To: References: Message-ID: Hello Jenkins Builder, fixeria, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369 to look at the new patch set (#2). Change subject: PCU_Tests: add testcase TC_rim_ran_info_req_single_rep and _no_si ...................................................................... PCU_Tests: add testcase TC_rim_ran_info_req_single_rep and _no_si Perform a full RAN information request (single report) against the PCU and check the results. Also test what happens when the request is issued at a time where osmo-bts has no system information available. Depends: osmo-pcu Id72118120c14984d2fb1b918b41fac4868150d41 Depends: osmo-bts I1726c9e29cc59c499dfabbdaf63c0f1a09984764 Related: SYS#5103 Change-Id: I9054ab0e969c0fbfdc671c92d44cc61360959adc --- M bts/BTS_Tests.default M library/Osmocom_Gb_Types.ttcn M library/PCUIF_Types.ttcn M pcu/PCU_Tests.ttcn M pcu/PCU_Tests_SNS.cfg M pcu/PCU_Tests_SNSv6.cfg 6 files changed, 291 insertions(+), 12 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/69/22369/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I9054ab0e969c0fbfdc671c92d44cc61360959adc Gerrit-Change-Number: 22369 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-CC: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 16:42:20 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 25 Jan 2021 16:42:20 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BTS_Tests: check if si1, si3, si13 are updated via PCUIF References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22431 ) Change subject: BTS_Tests: check if si1,si3,si13 are updated via PCUIF ...................................................................... BTS_Tests: check if si1,si3,si13 are updated via PCUIF The BSC can update the system information at any time. In the case of SI1, SI3, SI14 it is important that the changes are propergated to the PCU as well. Related: SYS#5103 Change-Id: I6ec543b3cb33d82c442083b52c991add71b34644 --- M bts/BTS_Tests.ttcn M library/General_Types.ttcn 2 files changed, 54 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/31/22431/1 diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn index c843032..506bf99 100644 --- a/bts/BTS_Tests.ttcn +++ b/bts/BTS_Tests.ttcn @@ -7200,6 +7200,59 @@ vc_conn.done; } +/* Check that if the system informatio (si1, si3, si13, required for RIM) is + * correctly propergated to the PCU after updating it via RSL */ +testcase TC_si_update_pcuif() runs on test_CT { + f_init(); + + var octetstring si1 := '5506198fb100000000000000000000000000007900002b'O; + var octetstring si3 := '49061b753000f110236ec9033c2747407900003c0b2b2b'O; + var octetstring si13 := '0106009000185a6fc9e08410ab2b2b2b2b2b2b2b2b2b2b'O; + + /* Update system information via PCUIF info indication */ + si_cfg.si1_present := true; + f_rsl_bcch_fill_raw(RSL_SYSTEM_INFO_1, si1); + f_rsl_bcch_fill_raw(RSL_SYSTEM_INFO_3, si3); + si_cfg.si13_present := true; + f_rsl_bcch_fill_raw(RSL_SYSTEM_INFO_13, si13); + + /* See if the new system information is forwarded to the PCU */ + timer T := 2.0; + T.start; + alt { + [] as_pcu_info_ind(PCU, g_pcu_conn_id, g_pcu_last_info) { repeat; } + [] PCU.receive { + /* Let through everything that we do not need. */ + repeat; + } + [] T.timeout {} + } + + /* Check if the system information we got matches what we just set */ + if (g_pcu_last_info.u.info_ind.si1_is_set != 1) { + setverdict(fail, "SI1 not set"); + } + if (g_pcu_last_info.u.info_ind.si1 != si1) { + setverdict(fail, "contents of SI1 do not match expected value"); + } + + if (g_pcu_last_info.u.info_ind.si3_is_set != 1) { + setverdict(fail, "SI3 not set"); + } + if (g_pcu_last_info.u.info_ind.si3 != si3) { + setverdict(fail, "contents of SI3 do not match expected value"); + } + + if (g_pcu_last_info.u.info_ind.si13_is_set != 1) { + setverdict(fail, "SI13 not set"); + } + if (g_pcu_last_info.u.info_ind.si13 != si13) { + setverdict(fail, "contents of SI13 do not match expected value"); + } + + Misc_Helpers.f_shutdown(__BFILE__, __LINE__); +} + /* test generation of RLL ERR IND based on Um errors (TS 48.058 3.9) */ /* protocol error as per 44.006 */ /* link layer failure (repetition of I-frame N200 times without ACK */ diff --git a/library/General_Types.ttcn b/library/General_Types.ttcn index 40f0770..7d1ffaa 100644 --- a/library/General_Types.ttcn +++ b/library/General_Types.ttcn @@ -239,6 +239,7 @@ type octetstring OCT18 length(18) with { variant "FIELDLENGTH(18)" }; type octetstring OCT19 length(19) with { variant "FIELDLENGTH(19)" }; type octetstring OCT20 length(20) with { variant "FIELDLENGTH(20)" }; + type octetstring OCT23 length(23) with { variant "FIELDLENGTH(23)" }; type octetstring OCT22 length(22) with { variant "FIELDLENGTH(22)" }; type octetstring OCT32 length(32) with { variant "FIELDLENGTH(32)" }; type octetstring OCT34 length(34) with { variant "FIELDLENGTH(34)" }; -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22431 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I6ec543b3cb33d82c442083b52c991add71b34644 Gerrit-Change-Number: 22431 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 17:00:56 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 25 Jan 2021 17:00:56 +0000 Subject: Change in osmo-bsc[master]: select_best_cipher(): Prefer A5/1 over A5/2 References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22432 ) Change subject: select_best_cipher(): Prefer A5/1 over A5/2 ...................................................................... select_best_cipher(): Prefer A5/1 over A5/2 We cannot simply use the highest 'x' in A5/x codecs. For A5/7 through A5/3, larger 'x' means better. But: A5/1 is better than A5/2, so we need to prefer the former over the latter. Change-Id: I399fff8d07d1bfcbc6b385e90914ff6d9e00eb73 Closes: OS#4975 --- M src/osmo-bsc/osmo_bsc_bssap.c 1 file changed, 7 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/32/22432/1 diff --git a/src/osmo-bsc/osmo_bsc_bssap.c b/src/osmo-bsc/osmo_bsc_bssap.c index 63dee9e..9d78153 100644 --- a/src/osmo-bsc/osmo_bsc_bssap.c +++ b/src/osmo-bsc/osmo_bsc_bssap.c @@ -402,12 +402,16 @@ /* select the best cipher permitted by the intersection of both masks */ static int select_best_cipher(uint8_t msc_mask, uint8_t bsc_mask) { + /* A5/7 ... A5/3: We assume higher is better, + * but: A5/1 is better than A5/2, which is better than A5/0 */ + const uint8_t codec_strength[8] = { 7, 6, 5, 4, 3, 1, 2, 0 }; uint8_t intersection = msc_mask & bsc_mask; int i; - for (i = 7; i >= 0; i--) { - if (intersection & (1 << i)) - return i; + for (i = 0; i < ARRAY_SIZE(codec_strength); i++) { + uint8_t codec = codec_strength[i]; + if (intersection & (1 << codec)) + return codec; } return -1; } -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22432 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I399fff8d07d1bfcbc6b385e90914ff6d9e00eb73 Gerrit-Change-Number: 22432 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 17:12:42 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 25 Jan 2021 17:12:42 +0000 Subject: Change in osmo-bsc[master]: select_best_cipher(): Prefer A5/1 over A5/2 In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22432 ) Change subject: select_best_cipher(): Prefer A5/1 over A5/2 ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22432 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I399fff8d07d1bfcbc6b385e90914ff6d9e00eb73 Gerrit-Change-Number: 22432 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 25 Jan 2021 17:12:42 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 17:14:32 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 25 Jan 2021 17:14:32 +0000 Subject: Change in osmo-pcu[master]: tbf: Drop always-true condition checking for MS In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-pcu/+/22420 to look at the new patch set (#4). Change subject: tbf: Drop always-true condition checking for MS ...................................................................... tbf: Drop always-true condition checking for MS The TBF can sometimes be detached from an MS, for eg. when switching from one MS object to another due to them being merged after we found duplicate objects upon receiving new information from it, but that change is instantaneous so it shouldn't be a problem. The only other way where an MS can be detached from an MS is during the end of its (or the MS) life, where it is not sending data anymore. Hence, it is safe to drop those checks for MS not being null. Those being trigger, it should be considered a bug. Change-Id: If292a53a09a64664031e756bff4735b9c6ee8651 --- M src/tbf.cpp 1 file changed, 3 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/20/22420/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22420 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: If292a53a09a64664031e756bff4735b9c6ee8651 Gerrit-Change-Number: 22420 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 17:14:32 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 25 Jan 2021 17:14:32 +0000 Subject: Change in osmo-pcu[master]: encoding: fix typos in comment In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-pcu/+/22421 to look at the new patch set (#3). Change subject: encoding: fix typos in comment ...................................................................... encoding: fix typos in comment Change-Id: I0867935ad08d6e49c62e061742d3d76eeac35844 --- M src/encoding.cpp 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/21/22421/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22421 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I0867935ad08d6e49c62e061742d3d76eeac35844 Gerrit-Change-Number: 22421 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 17:14:34 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 25 Jan 2021 17:14:34 +0000 Subject: Change in osmo-pcu[master]: ms: Set proper initial MCS values setting mode EGPRS_GMSK References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22433 ) Change subject: ms: Set proper initial MCS values setting mode EGPRS_GMSK ...................................................................... ms: Set proper initial MCS values setting mode EGPRS_GMSK Before this patch, shared logic with EGPRS case would allow keeping MCS>4. Change-Id: I94cbf0c120fd37deb2dfd077d35b3811c7da0675 --- M src/gprs_ms.c M tests/ms/MsTest.ok 2 files changed, 15 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/33/22433/1 diff --git a/src/gprs_ms.c b/src/gprs_ms.c index daa3223..f157d13 100644 --- a/src/gprs_ms.c +++ b/src/gprs_ms.c @@ -259,6 +259,19 @@ break; case EGPRS_GMSK: + if (!mcs_is_edge_gmsk(ms->current_cs_ul)) { + ms->current_cs_ul = mcs_get_egprs_by_num( + ms->bts->initial_mcs_ul); + if (!mcs_is_valid(ms->current_cs_ul)) + ms->current_cs_ul = MCS1; + } + if (!mcs_is_edge_gmsk(ms->current_cs_dl)) { + ms->current_cs_dl = mcs_get_egprs_by_num( + ms->bts->initial_mcs_dl); + if (!mcs_is_valid(ms->current_cs_dl)) + ms->current_cs_dl = MCS1; + } + break; case EGPRS: if (!mcs_is_edge(ms->current_cs_ul)) { ms->current_cs_ul = mcs_get_egprs_by_num( diff --git a/tests/ms/MsTest.ok b/tests/ms/MsTest.ok index 11766b8..3e5cdab 100644 --- a/tests/ms/MsTest.ok +++ b/tests/ms/MsTest.ok @@ -26,8 +26,8 @@ 2: after mode set MS DL MCS-1/MCS-9, UL MCS-1/MCS-9, mode EGPRS, 1: after MCS set MS DL MCS-7/MCS-9, UL MCS-1/MCS-9, mode EGPRS, 2: after MCS set MS DL MCS-8/MCS-9, UL MCS-1/MCS-9, mode EGPRS, -1: after mode set MS DL MCS-7/MCS-9, UL MCS-1/MCS-9, mode EGPRS_GMSK-only, -2: after mode set MS DL MCS-8/MCS-9, UL MCS-1/MCS-9, mode EGPRS_GMSK-only, +1: after mode set MS DL MCS-1/MCS-9, UL MCS-1/MCS-9, mode EGPRS_GMSK-only, +2: after mode set MS DL MCS-1/MCS-9, UL MCS-1/MCS-9, mode EGPRS_GMSK-only, 1: after mode set MS DL CS-4/CS-4, UL CS-1/CS-4, mode GPRS, 2: after mode set MS DL CS-4/CS-4, UL CS-1/CS-4, mode GPRS, === end test_ms_mcs_mode === -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22433 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I94cbf0c120fd37deb2dfd077d35b3811c7da0675 Gerrit-Change-Number: 22433 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 17:14:34 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 25 Jan 2021 17:14:34 +0000 Subject: Change in osmo-pcu[master]: ms: Properly handle EGPRS_GMSK mode in ms_max_cs_dl/ul() References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22434 ) Change subject: ms: Properly handle EGPRS_GMSK mode in ms_max_cs_dl/ul() ...................................................................... ms: Properly handle EGPRS_GMSK mode in ms_max_cs_dl/ul() Change-Id: Ied3e02a12145112fafa12282ed7aefa5b0fa6eb6 --- M src/gprs_ms.c M tests/ms/MsTest.ok 2 files changed, 12 insertions(+), 20 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/34/22434/1 diff --git a/src/gprs_ms.c b/src/gprs_ms.c index f157d13..0c4db89 100644 --- a/src/gprs_ms.c +++ b/src/gprs_ms.c @@ -632,6 +632,7 @@ enum CodingScheme ms_max_cs_ul(const struct GprsMs *ms) { + enum CodingScheme cs; OSMO_ASSERT(ms->bts != NULL); if (mcs_is_gprs(ms->current_cs_ul)) { @@ -642,15 +643,10 @@ return mcs_get_gprs_by_num(bts_max_cs_ul(ms->bts)); } - if (!mcs_is_edge(ms->current_cs_ul)) - return UNKNOWN; - - if (bts_max_mcs_ul(ms->bts)) - return mcs_get_egprs_by_num(bts_max_mcs_ul(ms->bts)); - else if (bts_max_cs_ul(ms->bts)) - return mcs_get_gprs_by_num(bts_max_cs_ul(ms->bts)); - - return MCS4; + cs = mcs_get_egprs_by_num(bts_max_mcs_ul(ms->bts)); + if (ms_mode(ms) == EGPRS_GMSK && cs > MCS4) + cs = MCS4; + return cs; } void ms_set_current_cs_dl(struct GprsMs *ms, enum CodingScheme scheme) @@ -660,6 +656,7 @@ enum CodingScheme ms_max_cs_dl(const struct GprsMs *ms) { + enum CodingScheme cs; OSMO_ASSERT(ms->bts != NULL); if (mcs_is_gprs(ms->current_cs_dl)) { @@ -670,15 +667,10 @@ return mcs_get_gprs_by_num(bts_max_cs_dl(ms->bts)); } - if (!mcs_is_edge(ms->current_cs_dl)) - return UNKNOWN; - - if (bts_max_mcs_dl(ms->bts)) - return mcs_get_egprs_by_num(bts_max_mcs_dl(ms->bts)); - else if (bts_max_cs_dl(ms->bts)) - return mcs_get_gprs_by_num(bts_max_cs_dl(ms->bts)); - - return MCS4; + cs = mcs_get_egprs_by_num(bts_max_mcs_dl(ms->bts)); + if (ms_mode(ms) == EGPRS_GMSK && cs > MCS4) + cs = MCS4; + return cs; } void ms_update_cs_ul(struct GprsMs *ms, const struct pcu_l1_meas *meas) diff --git a/tests/ms/MsTest.ok b/tests/ms/MsTest.ok index 3e5cdab..98e345c 100644 --- a/tests/ms/MsTest.ok +++ b/tests/ms/MsTest.ok @@ -26,8 +26,8 @@ 2: after mode set MS DL MCS-1/MCS-9, UL MCS-1/MCS-9, mode EGPRS, 1: after MCS set MS DL MCS-7/MCS-9, UL MCS-1/MCS-9, mode EGPRS, 2: after MCS set MS DL MCS-8/MCS-9, UL MCS-1/MCS-9, mode EGPRS, -1: after mode set MS DL MCS-1/MCS-9, UL MCS-1/MCS-9, mode EGPRS_GMSK-only, -2: after mode set MS DL MCS-1/MCS-9, UL MCS-1/MCS-9, mode EGPRS_GMSK-only, +1: after mode set MS DL MCS-1/MCS-4, UL MCS-1/MCS-4, mode EGPRS_GMSK-only, +2: after mode set MS DL MCS-1/MCS-4, UL MCS-1/MCS-4, mode EGPRS_GMSK-only, 1: after mode set MS DL CS-4/CS-4, UL CS-1/CS-4, mode GPRS, 2: after mode set MS DL CS-4/CS-4, UL CS-1/CS-4, mode GPRS, === end test_ms_mcs_mode === -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22434 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ied3e02a12145112fafa12282ed7aefa5b0fa6eb6 Gerrit-Change-Number: 22434 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 17:14:34 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 25 Jan 2021 17:14:34 +0000 Subject: Change in osmo-pcu[master]: Fix Dl EGPRS data blocks being generated occasionally on GPRS TBFs References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22435 ) Change subject: Fix Dl EGPRS data blocks being generated occasionally on GPRS TBFs ...................................................................... Fix Dl EGPRS data blocks being generated occasionally on GPRS TBFs Under some circumstances, it could happen that a DL TBF is created as a GPRS TBF due to not yet having enough information of the MS, and only after the TBF is created the PCU gains that information and upgrades the MS mode to "EGPRS". Hence, there's the possibility to run into a situation where a GPRS TBF is attached to a EGPRS MS. It may also happen sometimes that despite the TBF and the MS be EGPRS, there's need to further limit the DL MCS to use, eg. MCS1-4 (GMSK). As a result, when asking for the current DL (M)CS to use, we must tell the MS which kind of limitations we want to apply. The later reasoning was already implemented when GPRS+EGPRS multiplexing was added, but the former was not being checked. Hence, by further spreading through the call stack the "req_kind_mode" we match both cases. Related: OS#4973 Change-Id: Ic0276ce045660713129f0c72f1158a3321c5977f --- M src/gprs_ms.c M src/gprs_ms.h M src/pcu_vty_functions.cpp M src/tbf.cpp M src/tbf_dl.cpp M tests/ms/MsTest.cpp 6 files changed, 62 insertions(+), 36 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/35/22435/1 diff --git a/src/gprs_ms.c b/src/gprs_ms.c index 0c4db89..3948abf 100644 --- a/src/gprs_ms.c +++ b/src/gprs_ms.c @@ -778,13 +778,46 @@ } } -enum CodingScheme ms_current_cs_dl(const struct GprsMs *ms) +/* req_mcs_kind acts as a set filter, where EGPRS means any and GPRS is the most restrictive */ +enum CodingScheme ms_current_cs_dl(const struct GprsMs *ms, enum mcs_kind req_mcs_kind) { - enum CodingScheme cs = ms->current_cs_dl; + enum CodingScheme orig_cs = ms->current_cs_dl; + struct gprs_rlcmac_bts *bts = ms->bts; size_t unencoded_octets; + enum CodingScheme cs; - if (!ms->bts) - return cs; + /* It could be that a TBF requests a GPRS CS despite the MS currently + being upgraded to EGPRS (hence reporting MCS). That could happen + because the TBF was created early in the process where we didn't have + yet enough information about the MS, and only AFTER it was created we + upgraded the MS to be EGPRS capable. + As a result, when the MS is queried for the target CS here, we could be + returning an MCS despite the current TBF being established as GPRS, + but we rather stick to the TBF type we assigned to the MS rather than + magically sending EGPRS data blocks to a GPRS TBF. + It could also be that the caller requests specific MCS kind + explicitly too due to scheduling restrictions (GPRS+EGPRS multiplexing). */ + if (req_mcs_kind == EGPRS_GMSK && mcs_is_edge(orig_cs) && orig_cs > MCS4) { + cs = bts_cs_dl_is_supported(bts, MCS4) ? MCS4 : + bts_cs_dl_is_supported(bts, MCS3) ? MCS3 : + bts_cs_dl_is_supported(bts, MCS2) ? MCS2 : + MCS1; + } else if (req_mcs_kind == GPRS && mcs_is_edge(orig_cs)) { /* GPRS */ + int i; + cs = orig_cs > MCS4 ? MCS4 : orig_cs; + cs -= (MCS1 - CS1); /* MCSx -> CSx */ + /* Find suitable CS starting from equivalent MCS which is supported by BTS: */ + for (i = mcs_chan_code(cs); !bts_cs_dl_is_supported(bts, CS1 + i); i--); + OSMO_ASSERT(i >= 0 && i <= 3); /* CS1 is always supported */ + cs = CS1 + i; + } else { + cs = orig_cs; + } + + if (orig_cs != cs) + LOGPMS(ms, DRLCMACDL, LOGL_INFO, "MS (mode=%s) suggests transmitting " + "DL %s, downgrade to %s in order to match TBF & scheduler requirements\n", + mode_name(ms_mode(ms)), mcs_name(orig_cs), mcs_name(cs)); unencoded_octets = llc_queue_octets(&ms->llc_queue); diff --git a/src/gprs_ms.h b/src/gprs_ms.h index 12809f1..39d65de 100644 --- a/src/gprs_ms.h +++ b/src/gprs_ms.h @@ -114,7 +114,7 @@ void ms_set_egprs_ms_class(struct GprsMs *ms, uint8_t ms_class_); void ms_set_ta(struct GprsMs *ms, uint8_t ta_); -enum CodingScheme ms_current_cs_dl(const struct GprsMs *ms); +enum CodingScheme ms_current_cs_dl(const struct GprsMs *ms, enum mcs_kind req_mcs_kind); enum CodingScheme ms_max_cs_ul(const struct GprsMs *ms); enum CodingScheme ms_max_cs_dl(const struct GprsMs *ms); void ms_set_current_cs_dl(struct GprsMs *ms, enum CodingScheme scheme); diff --git a/src/pcu_vty_functions.cpp b/src/pcu_vty_functions.cpp index 48780c0..c2250d9 100644 --- a/src/pcu_vty_functions.cpp +++ b/src/pcu_vty_functions.cpp @@ -133,7 +133,7 @@ vty_out(vty, " Timing advance (TA): %d%s", ms_ta(ms), VTY_NEWLINE); vty_out(vty, " Coding scheme uplink: %s%s", mcs_name(ms_current_cs_ul(ms)), VTY_NEWLINE); - vty_out(vty, " Coding scheme downlink: %s%s", mcs_name(ms_current_cs_dl(ms)), + vty_out(vty, " Coding scheme downlink: %s%s", mcs_name(ms_current_cs_dl(ms, ms_mode(ms))), VTY_NEWLINE); vty_out(vty, " Mode: %s%s", mode_name(ms_mode(ms)), VTY_NEWLINE); vty_out(vty, " MS class: %d%s", ms_ms_class(ms), VTY_NEWLINE); diff --git a/src/tbf.cpp b/src/tbf.cpp index 248e8ef..d2d55f2 100644 --- a/src/tbf.cpp +++ b/src/tbf.cpp @@ -194,11 +194,12 @@ enum CodingScheme gprs_rlcmac_tbf::current_cs() const { enum CodingScheme cs; + enum mcs_kind req_mcs_kind = is_egprs_enabled() ? EGPRS : GPRS; if (direction == GPRS_RLCMAC_UL_TBF) cs = ms_current_cs_ul(m_ms); else - cs = ms_current_cs_dl(m_ms); + cs = ms_current_cs_dl(m_ms, req_mcs_kind); return cs; } diff --git a/src/tbf_dl.cpp b/src/tbf_dl.cpp index de43349..9562d86 100644 --- a/src/tbf_dl.cpp +++ b/src/tbf_dl.cpp @@ -448,29 +448,24 @@ { int bsn; int data_len2, force_data_len = -1; - enum CodingScheme force_cs = UNKNOWN; + enum CodingScheme tx_cs; + + /* Scheduler may be fine with sending any kind of data, but if + the selected TBF is GPRS-only, then let's filter out EGPRS + here */ + if (!is_egprs_enabled()) + req_mcs_kind = GPRS; /* search for a nacked or resend marked bsn */ bsn = m_window.resend_needed(); if (previous_bsn >= 0) { - force_cs = m_rlc.block(previous_bsn)->cs_current_trans; - if (!mcs_is_edge(force_cs)) + tx_cs = m_rlc.block(previous_bsn)->cs_current_trans; + if (!mcs_is_edge(tx_cs)) return -1; force_data_len = m_rlc.block(previous_bsn)->len; - } else if (bsn < 0 && is_egprs_enabled() && req_mcs_kind == EGPRS_GMSK) { - /* New data to be sent for EGPRS TBF but we are required to downgrade to - * MCS1-4, because USF for GPRS-only MS will be sent */ - force_cs = ms_current_cs_dl(m_ms); - if (force_cs > MCS4) { - force_cs = bts_cs_dl_is_supported(bts, MCS4) ? MCS4 : - bts_cs_dl_is_supported(bts, MCS3) ? MCS3 : - bts_cs_dl_is_supported(bts, MCS2) ? MCS2 : - MCS1; - LOGPTBFDL(this, LOGL_DEBUG, - "Force downgrading DL %s -> %s due to USF for GPRS-only MS\n", - mcs_name(ms_current_cs_dl(m_ms)), mcs_name(force_cs)); - } + } else { + tx_cs = ms_current_cs_dl(ms(), req_mcs_kind); } if (bsn >= 0) { @@ -484,15 +479,14 @@ if (is_egprs_enabled()) { /* Table 8.1.1.2 and Table 8.1.1.1 of 44.060 */ - m_rlc.block(bsn)->cs_current_trans = get_retx_mcs(m_rlc.block(bsn)->cs_init, - ms_current_cs_dl(ms()), + m_rlc.block(bsn)->cs_current_trans = get_retx_mcs(m_rlc.block(bsn)->cs_init, tx_cs, bts->pcu->vty.dl_arq_type == EGPRS_ARQ1); LOGPTBFDL(this, LOGL_DEBUG, "initial_cs_dl(%s) last_mcs(%s) demanded_mcs(%s) cs_trans(%s) arq_type(%d) bsn(%d)\n", mcs_name(m_rlc.block(bsn)->cs_init), mcs_name(m_rlc.block(bsn)->cs_last), - mcs_name(ms_current_cs_dl(ms())), + mcs_name(tx_cs), mcs_name(m_rlc.block(bsn)->cs_current_trans), the_pcu->vty.dl_arq_type, bsn); @@ -537,14 +531,12 @@ return take_next_bsn(fn, previous_bsn, req_mcs_kind, may_combine); } else if (have_data()) { /* The window has space left, generate new bsn */ - enum CodingScheme new_cs; - new_cs = force_cs ? force_cs : current_cs(); LOGPTBFDL(this, LOGL_DEBUG, "Sending new block at BSN %d, CS=%s%s\n", - m_window.v_s(), mcs_name(new_cs), - force_cs ? " (forced)" : ""); + m_window.v_s(), mcs_name(tx_cs), + force_data_len != -1 ? " (forced)" : ""); - bsn = create_new_bsn(fn, new_cs); + bsn = create_new_bsn(fn, tx_cs); } else if (bts->pcu->vty.dl_tbf_preemptive_retransmission && !m_window.window_empty()) { /* The window contains unacked packages, but not acked. * Mark unacked bsns as RESEND */ @@ -558,8 +550,8 @@ /* Nothing left to send, create dummy LLC commands */ LOGPTBFDL(this, LOGL_DEBUG, "Sending new dummy block at BSN %d, CS=%s\n", - m_window.v_s(), mcs_name(current_cs())); - bsn = create_new_bsn(fn, current_cs()); + m_window.v_s(), mcs_name(tx_cs)); + bsn = create_new_bsn(fn, tx_cs); /* Don't send a second block, so don't set cs_current_trans */ } diff --git a/tests/ms/MsTest.cpp b/tests/ms/MsTest.cpp index f459e99..677c695 100644 --- a/tests/ms/MsTest.cpp +++ b/tests/ms/MsTest.cpp @@ -522,11 +522,11 @@ OSMO_ASSERT(!ms_is_idle(ms)); - OSMO_ASSERT(mcs_chan_code(ms_current_cs_dl(ms)) == 3); + OSMO_ASSERT(mcs_chan_code(ms_current_cs_dl(ms, ms_mode(ms))) == 3); the_pcu->vty.cs_downgrade_threshold = 200; - OSMO_ASSERT(mcs_chan_code(ms_current_cs_dl(ms)) == 2); + OSMO_ASSERT(mcs_chan_code(ms_current_cs_dl(ms, ms_mode(ms))) == 2); talloc_free(dl_tbf); talloc_free(bts); @@ -536,7 +536,7 @@ static void dump_ms(const GprsMs *ms, const char *pref) { printf("%s MS DL %s/%s, UL %s/%s, mode %s, <%s>\n", pref, - mcs_name(ms_current_cs_dl(ms)), mcs_name(ms_max_cs_dl(ms)), + mcs_name(ms_current_cs_dl(ms, ms_mode(ms))), mcs_name(ms_max_cs_dl(ms)), mcs_name(ms_current_cs_ul(ms)), mcs_name(ms_max_cs_ul(ms)), mode_name(ms_mode(ms)), ms_is_idle(ms) ? "IDLE" : "ACTIVE"); -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22435 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ic0276ce045660713129f0c72f1158a3321c5977f Gerrit-Change-Number: 22435 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 17:14:35 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 25 Jan 2021 17:14:35 +0000 Subject: Change in osmo-pcu[master]: sched: Avoid picking TBF with nacked dl blocks when GMSK is required References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22436 ) Change subject: sched: Avoid picking TBF with nacked dl blocks when GMSK is required ...................................................................... sched: Avoid picking TBF with nacked dl blocks when GMSK is required Sine we don't yet implement properly all resegmentation of blocks from same MCS family type, when requiring a GMSK DL block (due to GPRS+EGPRS multiplexing limitations) we need to skip retransmitions, otherwise we'd be incorrectly picking a DL block which was already built with a potentially higher MCS value. The "DL_PRIO_NEW_DATA" prio serves two purposes: * There's new data to send * There's some nacked data to be retransmitted The later has later on priority when the tbf is selected (see gprs_rlcmac_dl_tbf::take_next_bsn()). Until now we were handling correctly the case where the tbf was skipped in case the prio was to resend unacked data (DL_PRIO_SENT_DATA), but was incorrectly selected when it'd send nacked data. Let's fix it by specifically checking w->resend_needed() < 0. Change-Id: I253de8e1a190a9adb56160f38892c9e43e2c0272 --- M src/gprs_rlcmac_sched.cpp 1 file changed, 3 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/36/22436/1 diff --git a/src/gprs_rlcmac_sched.cpp b/src/gprs_rlcmac_sched.cpp index 49a8ff2..8404456 100644 --- a/src/gprs_rlcmac_sched.cpp +++ b/src/gprs_rlcmac_sched.cpp @@ -282,6 +282,7 @@ struct msgb *msg = NULL; struct gprs_rlcmac_dl_tbf *tbf, *prio_tbf = NULL; enum tbf_dl_prio prio, max_prio = DL_PRIO_NONE; + const gprs_rlc_dl_window *w; uint8_t i, tfi, prio_tfi; int age; @@ -319,8 +320,9 @@ /* If a GPRS (CS1-4/MCS1-4) Dl block is required, downgrade MCS * below instead of skipping. However, downgrade can only be * done on new data BSNs (not yet sent) and control blocks. */ + w = static_cast(tbf->window()); if (req_mcs_kind == EGPRS_GMSK && tbf->is_egprs_enabled() && - (prio !=DL_PRIO_CONTROL && prio != DL_PRIO_NEW_DATA)) { + (prio !=DL_PRIO_CONTROL && !(prio == DL_PRIO_NEW_DATA && w->resend_needed() < 0))) { LOGP(DRLCMACSCHED, LOGL_DEBUG, "Cannot downgrade EGPRS TBF with prio %d\n", prio); continue; } -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22436 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I253de8e1a190a9adb56160f38892c9e43e2c0272 Gerrit-Change-Number: 22436 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 17:15:03 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 25 Jan 2021 17:15:03 +0000 Subject: Change in libosmocore[master]: tests: gprs_ns2: add unitdata unit test In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22422 ) Change subject: tests: gprs_ns2: add unitdata unit test ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22422 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I2c44b711d004d2ca08e05d4f54519ad8dbd77c27 Gerrit-Change-Number: 22422 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 25 Jan 2021 17:15:03 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 17:15:25 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 25 Jan 2021 17:15:25 +0000 Subject: Change in libosmocore[master]: gprs_ns2: always pass a tp to gprs_ns2_vc_rx In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22423 ) Change subject: gprs_ns2: always pass a tp to gprs_ns2_vc_rx ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22423 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I3cd6ed20cdc1390075669e1d0101154c51f3997f Gerrit-Change-Number: 22423 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 25 Jan 2021 17:15:25 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 17:15:45 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 25 Jan 2021 17:15:45 +0000 Subject: Change in libosmocore[master]: tests: gprs_ns2: add unitdata unit test In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22422 ) Change subject: tests: gprs_ns2: add unitdata unit test ...................................................................... tests: gprs_ns2: add unitdata unit test test sending unitdata over a alive and blocked NSVC. Change-Id: I2c44b711d004d2ca08e05d4f54519ad8dbd77c27 --- M tests/gb/gprs_ns2_test.c M tests/gb/gprs_ns2_test.ok 2 files changed, 148 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified daniel: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/tests/gb/gprs_ns2_test.c b/tests/gb/gprs_ns2_test.c index 44c9ce4..10f430d 100644 --- a/tests/gb/gprs_ns2_test.c +++ b/tests/gb/gprs_ns2_test.c @@ -39,9 +39,18 @@ } static struct log_info info = {}; +static struct osmo_wqueue *unitdata = NULL; static int ns_prim_cb(struct osmo_prim_hdr *oph, void *ctx) { + OSMO_ASSERT(oph->sap == SAP_NS); + if (oph->msg) { + if (oph->primitive == PRIM_NS_UNIT_DATA) { + osmo_wqueue_enqueue(unitdata, oph->msg); + } else { + msgb_free(oph->msg); + } + } return 0; } @@ -114,6 +123,46 @@ return bind; } +static void free_loopback(struct gprs_ns2_vc_bind *bind) {} + +struct gprs_ns2_vc_driver vc_driver_loopback = { + .name = "loopback dummy", + .free_bind = free_loopback, +}; + +/* loopback the msg */ +static int loopback_sendmsg(struct gprs_ns2_vc *nsvc, struct msgb *msg) +{ + struct gprs_ns2_vc *target = nsvc->priv; + return ns2_recv_vc(target, msg); +} + +/* create a loopback nsvc object which can be used with ns2_tx_* functions. it's not fully registered etc. */ +static struct gprs_ns2_vc *loopback_nsvc(struct gprs_ns2_vc_bind *bind, struct gprs_ns2_vc *target) +{ + struct gprs_ns2_vc *nsvc = talloc_zero(bind, struct gprs_ns2_vc); + memcpy(nsvc, target, sizeof(struct gprs_ns2_vc)); + nsvc->bind = bind; + nsvc->priv = target; + return nsvc; +} + +/* a loop back bind to use the tx_ functions from gprs_ns2_message.c */ +static struct gprs_ns2_vc_bind *loopback_bind(struct gprs_ns2_inst *nsi, const char *name) +{ + struct gprs_ns2_vc_bind *bind = talloc_zero(nsi, struct gprs_ns2_vc_bind); + OSMO_ASSERT(bind); + bind->name = talloc_strdup(bind, name); + bind->driver = &vc_driver_loopback; + bind->ll = GPRS_NS2_LL_UDP; + bind->transfer_capability = 99; + bind->nsi = nsi; + bind->send_vc = loopback_sendmsg; + INIT_LLIST_HEAD(&bind->nsvc); + llist_add(&bind->list, &nsi->binding); + return bind; +} + void test_nse_transfer_cap(void *ctx) { struct gprs_ns2_inst *nsi; @@ -233,6 +282,93 @@ printf("--- Finish NSE block unblock nsvc\n"); } +static struct msgb *generate_unitdata(const char *msgname) +{ + struct gprs_ns_hdr *nsh; + struct msgb *msg = msgb_alloc_headroom(NS_ALLOC_SIZE, NS_ALLOC_HEADROOM, msgname); + OSMO_ASSERT(msg); + + msg->l2h = msgb_put(msg, sizeof(*nsh) + 6); + nsh = (struct gprs_ns_hdr *) msg->l2h; + nsh->pdu_type = NS_PDUT_UNITDATA; + nsh->data[0] = 0; /* sdu control */ + nsh->data[1] = 0; /* msb bvci */ + nsh->data[2] = 12; /* lsb bvci */ + nsh->data[3] = 0xab; /* first data byte */ + nsh->data[4] = 0xcd; + nsh->data[5] = 0xef; + + return msg; +} + +void test_unitdata(void *ctx) +{ + struct gprs_ns2_inst *nsi; + struct gprs_ns2_vc_bind *bind[2]; + struct gprs_ns2_vc_bind *loopbind; + struct gprs_ns2_nse *nse; + struct gprs_ns2_vc *nsvc[2]; + struct gprs_ns2_vc *loop[2]; + + struct msgb *msg, *other; + char idbuf[32]; + int i; + + printf("--- Testing unitdata test\n"); + osmo_wqueue_clear(unitdata); + printf("---- Create NSE + Binds\n"); + nsi = gprs_ns2_instantiate(ctx, ns_prim_cb, NULL); + bind[0] = dummy_bind(nsi, "bblock1"); + bind[1] = dummy_bind(nsi, "bblock2"); + loopbind = loopback_bind(nsi, "loopback"); + nse = gprs_ns2_create_nse(nsi, 1004, GPRS_NS2_LL_UDP, NS2_DIALECT_STATIC_RESETBLOCK); + OSMO_ASSERT(nse); + + for (i=0; i<2; i++) { + printf("---- Create NSVC[%d]\n", i); + snprintf(idbuf, sizeof(idbuf), "NSE%05u-dummy-%i", nse->nsei, i); + nsvc[i] = ns2_vc_alloc(bind[i], nse, false, NS2_VC_MODE_BLOCKRESET, idbuf); + loop[i] = loopback_nsvc(loopbind, nsvc[i]); + OSMO_ASSERT(nsvc[i]); + gprs_ns2_vc_fsm_start(nsvc[i]); + OSMO_ASSERT(!gprs_ns2_vc_is_unblocked(nsvc[i])); + ns2_tx_reset(loop[i], NS_CAUSE_OM_INTERVENTION); + ns2_tx_unblock(loop[i]); + OSMO_ASSERT(gprs_ns2_vc_is_unblocked(nsvc[i])); + } + + /* both nsvcs are unblocked and alive */ + printf("---- Send UNITDATA to NSVC[0]\n"); + msg = generate_unitdata("test_unitdata"); + ns2_recv_vc(nsvc[0], msg); + other = msgb_dequeue(&unitdata->msg_queue); + OSMO_ASSERT(msg == other); + other = msgb_dequeue(&unitdata->msg_queue); + OSMO_ASSERT(NULL == other); + + printf("---- Send Block NSVC[0]\n"); + ns2_vc_block(nsvc[0]); + ns2_tx_block_ack(loop[0]); + + /* try to receive a unitdata - this should be dropped & freed by NS */ + printf("---- Try to receive over blocked NSVC[0]\n"); + ns2_recv_vc(nsvc[0], msg); + other = msgb_dequeue(&unitdata->msg_queue); + OSMO_ASSERT(NULL == other); + + /* nsvc[1] should be still good */ + printf("---- Receive over NSVC[1]\n"); + msg = generate_unitdata("test_unitdata2"); + ns2_recv_vc(nsvc[1], msg); + other = msgb_dequeue(&unitdata->msg_queue); + OSMO_ASSERT(msg == other); + msgb_free(msg); + + gprs_ns2_free(nsi); + printf("--- Finish unitdata test\n"); +} + + int main(int argc, char **argv) { void *ctx = talloc_named_const(NULL, 0, "gprs_ns2_test"); @@ -241,11 +377,14 @@ log_set_print_filename(osmo_stderr_target, 0); log_set_print_filename(osmo_stderr_target, 0); log_set_log_level(osmo_stderr_target, LOGL_INFO); + unitdata = talloc_zero(ctx, struct osmo_wqueue); + osmo_wqueue_init(unitdata, 100); setlinebuf(stdout); printf("===== NS2 protocol test START\n"); test_nse_transfer_cap(ctx); test_block_unblock_nsvc(ctx); + test_unitdata(ctx); printf("===== NS2 protocol test END\n\n"); talloc_free(ctx); diff --git a/tests/gb/gprs_ns2_test.ok b/tests/gb/gprs_ns2_test.ok index 27c72fa..7d12325 100644 --- a/tests/gb/gprs_ns2_test.ok +++ b/tests/gb/gprs_ns2_test.ok @@ -11,5 +11,14 @@ ---- Create NSVC[i] ---- Create NSVC[i] --- Finish NSE block unblock nsvc +--- Testing unitdata test +---- Create NSE + Binds +---- Create NSVC[0] +---- Create NSVC[1] +---- Send UNITDATA to NSVC[0] +---- Send Block NSVC[0] +---- Try to receive over blocked NSVC[0] +---- Receive over NSVC[1] +--- Finish unitdata test ===== NS2 protocol test END -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22422 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I2c44b711d004d2ca08e05d4f54519ad8dbd77c27 Gerrit-Change-Number: 22422 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 17:15:46 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 25 Jan 2021 17:15:46 +0000 Subject: Change in libosmocore[master]: gprs_ns2: always pass a tp to gprs_ns2_vc_rx In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22423 ) Change subject: gprs_ns2: always pass a tp to gprs_ns2_vc_rx ...................................................................... gprs_ns2: always pass a tp to gprs_ns2_vc_rx In preparation of checking the NSEI/NSVCI in ns2_vc_rx. It makes the function less error prone as the *tp is always defined. Change-Id: I3cd6ed20cdc1390075669e1d0101154c51f3997f --- M src/gb/gprs_ns2.c 1 file changed, 2 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified daniel: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c index ec60dbd..451290b 100644 --- a/src/gb/gprs_ns2.c +++ b/src/gb/gprs_ns2.c @@ -1047,7 +1047,7 @@ struct msgb *msg) { struct gprs_ns_hdr *nsh = (struct gprs_ns_hdr *) msg->l2h; - struct tlv_parsed tp; + struct tlv_parsed tp = { }; int rc = 0; log_set_context(LOG_CTX_GB_NSE, nsvc->nse); @@ -1099,7 +1099,7 @@ break; case NS_PDUT_UNITDATA: - rc = gprs_ns2_vc_rx(nsvc, msg, NULL); + rc = gprs_ns2_vc_rx(nsvc, msg, &tp); break; default: rc = ns2_tlv_parse(&tp, nsh->data, -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22423 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I3cd6ed20cdc1390075669e1d0101154c51f3997f Gerrit-Change-Number: 22423 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 17:15:53 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 25 Jan 2021 17:15:53 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vc_fsm: check NSEI match the NSE In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22424 ) Change subject: gprs_ns2_vc_fsm: check NSEI match the NSE ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22424 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I00bc04f3f46f5ae8ddd8b4b7d5479fb8e6463e1e Gerrit-Change-Number: 22424 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 25 Jan 2021 17:15:53 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 17:16:17 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 25 Jan 2021 17:16:17 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vc_fsm: check NSVCI match the NSE In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22425 ) Change subject: gprs_ns2_vc_fsm: check NSVCI match the NSE ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22425 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I0ebdd4f4135b03a7d44a93aff3846c8ec19f333b Gerrit-Change-Number: 22425 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 25 Jan 2021 17:16:17 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 17:17:28 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 25 Jan 2021 17:17:28 +0000 Subject: Change in libosmocore[master]: gprs_ns2: rework logging of Rx and Tx NS PDU In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22294 ) Change subject: gprs_ns2: rework logging of Rx and Tx NS PDU ...................................................................... Patch Set 12: Code-Review+1 no feedback rgarding the comments of daniel and me? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22294 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I34b8fde2955ecc010d1dcd9512e1bba9211e2c0d Gerrit-Change-Number: 22294 Gerrit-PatchSet: 12 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 25 Jan 2021 17:17:28 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 17:19:46 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 25 Jan 2021 17:19:46 +0000 Subject: Change in libosmocore[master]: gprs_ns2: drop GPRS_ prefix of gprs_ns2_cs In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22426 ) Change subject: gprs_ns2: drop GPRS_ prefix of gprs_ns2_cs ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22426 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I79be92ca716366c2e07ea061c08d95bea817a8c7 Gerrit-Change-Number: 22426 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 25 Jan 2021 17:19:46 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 17:20:15 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 25 Jan 2021 17:20:15 +0000 Subject: Change in libosmocore[master]: gprs_ns2: drop prefix of all internal exposed function In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22427 ) Change subject: gprs_ns2: drop prefix of all internal exposed function ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22427 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Icecc5a918902cd10efac72bbac20780d39aab272 Gerrit-Change-Number: 22427 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 25 Jan 2021 17:20:15 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 17:20:37 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 25 Jan 2021 17:20:37 +0000 Subject: Change in libosmocore[master]: gprs_ns2: drop the public prefix gprs_ from all static functions/stru... In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22428 ) Change subject: gprs_ns2: drop the public prefix gprs_ from all static functions/structs/.. ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22428 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I6ba0599e5a6d6fabf93851dd3ec7716f2ef2d840 Gerrit-Change-Number: 22428 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 25 Jan 2021 17:20:37 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 17:21:32 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 25 Jan 2021 17:21:32 +0000 Subject: Change in libosmocore[master]: gprs_ns2: refactor: ensure all enums have GPRS_NS2_ In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22429 ) Change subject: gprs_ns2: refactor: ensure all enums have GPRS_NS2_ ...................................................................... Patch Set 1: Verified-1 changelog should have a BIG FAT WARNING that this breaks API and hence must not be merged unless tightly synchronized between libosmocore, osmo-pcu, osmo-sgsn, ... -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22429 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I548ff12f7277cbb7e1a630a3dc02b738ce89be72 Gerrit-Change-Number: 22429 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 25 Jan 2021 17:21:32 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 17:21:33 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 25 Jan 2021 17:21:33 +0000 Subject: Change in libosmocore[master]: gprs_ns2: refactor: ensure all enums have GPRS_NS2_ In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22429 ) Change subject: gprs_ns2: refactor: ensure all enums have GPRS_NS2_ ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22429 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I548ff12f7277cbb7e1a630a3dc02b738ce89be72 Gerrit-Change-Number: 22429 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 25 Jan 2021 17:21:33 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 17:23:04 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 25 Jan 2021 17:23:04 +0000 Subject: Change in libosmocore[master]: gprs_ns2: drop gprs_ns2_vty, rename vty2 -> vty In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22430 ) Change subject: gprs_ns2: drop gprs_ns2_vty, rename vty2 -> vty ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22430 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I8c3f2afecc74b78f7f914f7dce166cbcb63444eb Gerrit-Change-Number: 22430 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 25 Jan 2021 17:23:04 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 17:23:07 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 25 Jan 2021 17:23:07 +0000 Subject: Change in libosmocore[master]: gprs_ns2: drop gprs_ns2_vty, rename vty2 -> vty In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22430 ) Change subject: gprs_ns2: drop gprs_ns2_vty, rename vty2 -> vty ...................................................................... Patch Set 1: Code-Review-1 equally, this needs a BIG FAT WARNING. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22430 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I8c3f2afecc74b78f7f914f7dce166cbcb63444eb Gerrit-Change-Number: 22430 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 25 Jan 2021 17:23:07 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 17:23:24 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 25 Jan 2021 17:23:24 +0000 Subject: Change in libosmocore[master]: gprs_ns2: refactor: ensure all enums have GPRS_NS2_ In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22429 ) Change subject: gprs_ns2: refactor: ensure all enums have GPRS_NS2_ ...................................................................... Patch Set 1: -Verified Code-Review-1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22429 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I548ff12f7277cbb7e1a630a3dc02b738ce89be72 Gerrit-Change-Number: 22429 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 25 Jan 2021 17:23:24 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 17:24:46 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 25 Jan 2021 17:24:46 +0000 Subject: Change in osmo-pcu[master]: tbf: Drop always-true condition checking for MS In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22420 ) Change subject: tbf: Drop always-true condition checking for MS ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22420 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: If292a53a09a64664031e756bff4735b9c6ee8651 Gerrit-Change-Number: 22420 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 25 Jan 2021 17:24:46 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 17:24:59 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 25 Jan 2021 17:24:59 +0000 Subject: Change in osmo-pcu[master]: encoding: fix typos in comment In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22421 ) Change subject: encoding: fix typos in comment ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22421 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I0867935ad08d6e49c62e061742d3d76eeac35844 Gerrit-Change-Number: 22421 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 25 Jan 2021 17:24:59 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 17:25:32 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 25 Jan 2021 17:25:32 +0000 Subject: Change in osmo-pcu[master]: ms: Set proper initial MCS values setting mode EGPRS_GMSK In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22433 ) Change subject: ms: Set proper initial MCS values setting mode EGPRS_GMSK ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22433 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I94cbf0c120fd37deb2dfd077d35b3811c7da0675 Gerrit-Change-Number: 22433 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: laforge Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Mon, 25 Jan 2021 17:25:32 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 17:25:47 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 25 Jan 2021 17:25:47 +0000 Subject: Change in libosmocore[master]: gprs_ns2: refactor: ensure all enums have GPRS_NS2_ In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22429 ) Change subject: gprs_ns2: refactor: ensure all enums have GPRS_NS2_ ...................................................................... Patch Set 1: >From nightly builds point of view indeed it needs some sincronization. From ABI breakage on users I'd say we don't care much since this part of the code was never released. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22429 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I548ff12f7277cbb7e1a630a3dc02b738ce89be72 Gerrit-Change-Number: 22429 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 25 Jan 2021 17:25:47 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 17:26:23 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 25 Jan 2021 17:26:23 +0000 Subject: Change in osmo-pcu[master]: ms: Properly handle EGPRS_GMSK mode in ms_max_cs_dl/ul() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22434 ) Change subject: ms: Properly handle EGPRS_GMSK mode in ms_max_cs_dl/ul() ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22434 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ied3e02a12145112fafa12282ed7aefa5b0fa6eb6 Gerrit-Change-Number: 22434 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: laforge Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Mon, 25 Jan 2021 17:26:23 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 17:28:02 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 25 Jan 2021 17:28:02 +0000 Subject: Change in osmo-pcu[master]: Fix Dl EGPRS data blocks being generated occasionally on GPRS TBFs In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22435 ) Change subject: Fix Dl EGPRS data blocks being generated occasionally on GPRS TBFs ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22435 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ic0276ce045660713129f0c72f1158a3321c5977f Gerrit-Change-Number: 22435 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: laforge Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Mon, 25 Jan 2021 17:28:02 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 17:29:13 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 25 Jan 2021 17:29:13 +0000 Subject: Change in osmo-pcu[master]: sched: Avoid picking TBF with nacked dl blocks when GMSK is required In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22436 ) Change subject: sched: Avoid picking TBF with nacked dl blocks when GMSK is required ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22436 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I253de8e1a190a9adb56160f38892c9e43e2c0272 Gerrit-Change-Number: 22436 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 25 Jan 2021 17:29:13 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 17:55:38 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 25 Jan 2021 17:55:38 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: TC_bssgp_dl_unitdata_with_invalid_imsi: Expect BSSGP STATUS on c... References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22437 ) Change subject: pcu: TC_bssgp_dl_unitdata_with_invalid_imsi: Expect BSSGP STATUS on correct port ...................................................................... pcu: TC_bssgp_dl_unitdata_with_invalid_imsi: Expect BSSGP STATUS on correct port Change-Id: I0457302fef24a362f0720247ea653b06af9e1c87 --- M pcu/PCU_Tests.ttcn 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/37/22437/1 diff --git a/pcu/PCU_Tests.ttcn b/pcu/PCU_Tests.ttcn index 13b33b2..cf50ba2 100644 --- a/pcu/PCU_Tests.ttcn +++ b/pcu/PCU_Tests.ttcn @@ -2613,7 +2613,7 @@ /* Now SGSN sends some DL data with an invalid IMSI */ BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data, imsi := ts_BSSGP_IMSI('1122'H))); - BSSGP_SIG[0].receive(tr_BSSGP_STATUS(omit, BSSGP_CAUSE_CONDITIONAL_IE_ERROR, ?)); + BSSGP_GLOBAL[0].receive(tr_BSSGP_STATUS(omit, BSSGP_CAUSE_CONDITIONAL_IE_ERROR, ?)); /* TODO: make sure no data is sent over PCU -> MS */ -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22437 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I0457302fef24a362f0720247ea653b06af9e1c87 Gerrit-Change-Number: 22437 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 17:57:27 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 25 Jan 2021 17:57:27 +0000 Subject: Change in osmo-bsc[master]: select_best_cipher(): Prefer A5/1 over A5/2 In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22432 ) Change subject: select_best_cipher(): Prefer A5/1 over A5/2 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22432 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I399fff8d07d1bfcbc6b385e90914ff6d9e00eb73 Gerrit-Change-Number: 22432 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 25 Jan 2021 17:57:27 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 18:00:16 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 25 Jan 2021 18:00:16 +0000 Subject: Change in osmo-bts[master]: pcu_sock: send SI1, SI3 and SI3 along with PCUIF info indication In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/22367 ) Change subject: pcu_sock: send SI1, SI3 and SI3 along with PCUIF info indication ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/22367/3/TODO-RELEASE File TODO-RELEASE: https://gerrit.osmocom.org/c/osmo-bts/+/22367/3/TODO-RELEASE at 2 PS3, Line 2: * increment PCUIF version number That's not something we really need to do when we do a release right? -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22367 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ie8c3467b6cf8b8bfdeee9a281412d814cbc379b8 Gerrit-Change-Number: 22367 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: fixeria Gerrit-Comment-Date: Mon, 25 Jan 2021 18:00:16 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 18:04:38 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 25 Jan 2021 18:04:38 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BTS_Tests: check if si1, si3, si13 are updated via PCUIF In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22431 ) Change subject: BTS_Tests: check if si1,si3,si13 are updated via PCUIF ...................................................................... Patch Set 1: (2 comments) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22431/1/bts/BTS_Tests.ttcn File bts/BTS_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22431/1/bts/BTS_Tests.ttcn at 7203 PS1, Line 7203: /* Check that if the system informatio (si1, si3, si13, required for RIM) is information (...) changes https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22431/1/bts/BTS_Tests.ttcn at 7204 PS1, Line 7204: * correctly propergated to the PCU after updating it via RSL */ propergated! Properly gated! I like the construction. And then you have propergateways, and so on :D -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22431 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I6ec543b3cb33d82c442083b52c991add71b34644 Gerrit-Change-Number: 22431 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 25 Jan 2021 18:04:38 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 18:12:10 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 25 Jan 2021 18:12:10 +0000 Subject: Change in osmo-ttcn3-hacks[master]: PCU_Tests: add testcase TC_rim_ran_info_req_single_rep and _no_si In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369 ) Change subject: PCU_Tests: add testcase TC_rim_ran_info_req_single_rep and _no_si ...................................................................... Patch Set 2: Code-Review-1 (4 comments) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369/2/library/Osmocom_Gb_Types.ttcn File library/Osmocom_Gb_Types.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369/2/library/Osmocom_Gb_Types.ttcn at 2814 PS2, Line 2814: function tr_RAN_Information_Application_Container_NACC(template BssgpCellId cid := ?, template boolean psi_type := ?, You probably want to push all these templates and functions as a separate patch https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369/2/library/PCUIF_Types.ttcn File library/PCUIF_Types.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369/2/library/PCUIF_Types.ttcn at 229 PS2, Line 229: variant (trx) "CROSSTAG(v09, version = 10; v10, version = 11)" these lines changed here look wrong to me. https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369/2/pcu/PCU_Tests.ttcn File pcu/PCU_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369/2/pcu/PCU_Tests.ttcn at 3659 PS2, Line 3659: f_init_raw(testcasename()); you can pass info_ind as a second parameter here, no need to do the BTS.send() below. https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369/2/pcu/PCU_Tests.ttcn at 3717 PS2, Line 3717: f_sleep(0.2); /* i.e. give the IUT some time to process everything */ which is exactly the problem you are having here? BTW, since you are not using rlcmac or itneracting with any MS at all here, I'd say the test maybe belongs more to the PCU_Tests_NS or similar rather than here? -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I9054ab0e969c0fbfdc671c92d44cc61360959adc Gerrit-Change-Number: 22369 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Mon, 25 Jan 2021 18:12:10 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 18:58:12 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 25 Jan 2021 18:58:12 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vc_fsm: check NSEI match the NSE In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22424 ) Change subject: gprs_ns2_vc_fsm: check NSEI match the NSE ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22424 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I00bc04f3f46f5ae8ddd8b4b7d5479fb8e6463e1e Gerrit-Change-Number: 22424 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Mon, 25 Jan 2021 18:58:12 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 18:58:22 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 25 Jan 2021 18:58:22 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vc_fsm: check NSEI match the NSE In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22424 ) Change subject: gprs_ns2_vc_fsm: check NSEI match the NSE ...................................................................... Patch Set 1: 1+1=2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22424 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I00bc04f3f46f5ae8ddd8b4b7d5479fb8e6463e1e Gerrit-Change-Number: 22424 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Mon, 25 Jan 2021 18:58:22 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 18:58:26 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 25 Jan 2021 18:58:26 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vc_fsm: check NSVCI match the NSE In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22425 ) Change subject: gprs_ns2_vc_fsm: check NSVCI match the NSE ...................................................................... Patch Set 1: Code-Review+2 1+1=2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22425 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I0ebdd4f4135b03a7d44a93aff3846c8ec19f333b Gerrit-Change-Number: 22425 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Mon, 25 Jan 2021 18:58:26 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 18:58:36 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 25 Jan 2021 18:58:36 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vc_fsm: check NSEI match the NSE In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22424 ) Change subject: gprs_ns2_vc_fsm: check NSEI match the NSE ...................................................................... gprs_ns2_vc_fsm: check NSEI match the NSE The NSE must match the PDUs. The only exception is a RESET with dialect ipaccess. However those will be handled later. Change-Id: I00bc04f3f46f5ae8ddd8b4b7d5479fb8e6463e1e --- M src/gb/gprs_ns2_vc_fsm.c 1 file changed, 14 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified daniel: Looks good to me, but someone else must approve laforge: Looks good to me, but someone else must approve lynxis lazus: Looks good to me, approved diff --git a/src/gb/gprs_ns2_vc_fsm.c b/src/gb/gprs_ns2_vc_fsm.c index fc2a86a..3ec6909 100644 --- a/src/gb/gprs_ns2_vc_fsm.c +++ b/src/gb/gprs_ns2_vc_fsm.c @@ -750,6 +750,7 @@ struct osmo_fsm_inst *fi = nsvc->fi; int rc = 0; uint8_t cause; + uint16_t nsei; /* TODO: 7.2: on UNBLOCK/BLOCK: check if NS-VCI is correct, * if not answer STATUS with "NS-VC unknown" */ @@ -763,6 +764,19 @@ } } + if (TLVP_PRESENT(tp, NS_IE_NSEI)) { + nsei = tlvp_val16be(tp, NS_IE_NSEI); + if (nsei != nsvc->nse->nsei) { + /* 48.016 ? 7.3.1 send, RESET_ACK to wrong NSVCI + ignore */ + if (nsh->pdu_type == NS_PDUT_RESET) + ns2_tx_reset_ack(nsvc); + + LOGNSVC(nsvc, LOGL_ERROR, "Rx %s with wrong NSEI=%05u. Ignoring PDU.\n", + get_value_string(gprs_ns_pdu_strings, nsh->pdu_type), nsei); + goto out; + } + } + switch (nsh->pdu_type) { case NS_PDUT_RESET: osmo_fsm_inst_dispatch(fi, GPRS_NS2_EV_RX_RESET, tp); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22424 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I00bc04f3f46f5ae8ddd8b4b7d5479fb8e6463e1e Gerrit-Change-Number: 22424 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 18:58:37 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 25 Jan 2021 18:58:37 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vc_fsm: check NSVCI match the NSE In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22425 ) Change subject: gprs_ns2_vc_fsm: check NSVCI match the NSE ...................................................................... gprs_ns2_vc_fsm: check NSVCI match the NSE The NSVCI must match the PDUs. The only exception is a RESET with dialect ipaccess. However those will be handled later. Change-Id: I0ebdd4f4135b03a7d44a93aff3846c8ec19f333b --- M src/gb/gprs_ns2_vc_fsm.c 1 file changed, 14 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified daniel: Looks good to me, but someone else must approve laforge: Looks good to me, but someone else must approve lynxis lazus: Looks good to me, approved diff --git a/src/gb/gprs_ns2_vc_fsm.c b/src/gb/gprs_ns2_vc_fsm.c index 3ec6909..d4f4320 100644 --- a/src/gb/gprs_ns2_vc_fsm.c +++ b/src/gb/gprs_ns2_vc_fsm.c @@ -750,11 +750,10 @@ struct osmo_fsm_inst *fi = nsvc->fi; int rc = 0; uint8_t cause; - uint16_t nsei; + uint16_t nsei, nsvci; /* TODO: 7.2: on UNBLOCK/BLOCK: check if NS-VCI is correct, * if not answer STATUS with "NS-VC unknown" */ - /* TODO: handle RESET with different VCI */ /* TODO: handle BLOCK/UNBLOCK/ALIVE with different VCI */ if (gprs_ns2_validate(nsvc, nsh->pdu_type, msg, tp, &cause)) { @@ -777,6 +776,19 @@ } } + if (nsvc->nsvci_is_valid && TLVP_PRESENT(tp, NS_IE_VCI)) { + nsvci = tlvp_val16be(tp, NS_IE_VCI); + if (nsvci != nsvc->nsvci) { + /* 48.016 ? 7.3.1 send RESET_ACK to wrong NSVCI + ignore */ + if (nsh->pdu_type == NS_PDUT_RESET) + ns2_tx_reset_ack(nsvc); + + LOGNSVC(nsvc, LOGL_ERROR, "Rx %s with wrong NSVCI=%05u. Ignoring PDU.\n", + get_value_string(gprs_ns_pdu_strings, nsh->pdu_type), nsvci); + goto out; + } + } + switch (nsh->pdu_type) { case NS_PDUT_RESET: osmo_fsm_inst_dispatch(fi, GPRS_NS2_EV_RX_RESET, tp); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22425 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I0ebdd4f4135b03a7d44a93aff3846c8ec19f333b Gerrit-Change-Number: 22425 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 18:59:22 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 25 Jan 2021 18:59:22 +0000 Subject: Change in libosmocore[master]: gprs_ns2: drop the public prefix gprs_ from all static functions/stru... In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22428 ) Change subject: gprs_ns2: drop the public prefix gprs_ from all static functions/structs/.. ...................................................................... Patch Set 1: Code-Review+2 1+1=2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22428 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I6ba0599e5a6d6fabf93851dd3ec7716f2ef2d840 Gerrit-Change-Number: 22428 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Mon, 25 Jan 2021 18:59:22 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 18:59:26 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 25 Jan 2021 18:59:26 +0000 Subject: Change in libosmocore[master]: gprs_ns2: drop prefix of all internal exposed function In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22427 ) Change subject: gprs_ns2: drop prefix of all internal exposed function ...................................................................... Patch Set 1: 1+1=2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22427 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Icecc5a918902cd10efac72bbac20780d39aab272 Gerrit-Change-Number: 22427 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 25 Jan 2021 18:59:26 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 18:59:42 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 25 Jan 2021 18:59:42 +0000 Subject: Change in libosmocore[master]: gprs_ns2: drop prefix of all internal exposed function In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22427 ) Change subject: gprs_ns2: drop prefix of all internal exposed function ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22427 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Icecc5a918902cd10efac72bbac20780d39aab272 Gerrit-Change-Number: 22427 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Mon, 25 Jan 2021 18:59:42 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 18:59:59 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 25 Jan 2021 18:59:59 +0000 Subject: Change in libosmocore[master]: gprs_ns2: drop GPRS_ prefix of gprs_ns2_cs In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22426 ) Change subject: gprs_ns2: drop GPRS_ prefix of gprs_ns2_cs ...................................................................... gprs_ns2: drop GPRS_ prefix of gprs_ns2_cs gprs_ns2_cs is a privat enum while GPRS_ should only used for public enums. Change-Id: I79be92ca716366c2e07ea061c08d95bea817a8c7 --- M src/gb/gprs_ns2.c M src/gb/gprs_ns2_frgre.c M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_udp.c 4 files changed, 38 insertions(+), 38 deletions(-) Approvals: Jenkins Builder: Verified daniel: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c index 451290b..2c417f2 100644 --- a/src/gb/gprs_ns2.c +++ b/src/gb/gprs_ns2.c @@ -778,11 +778,11 @@ * \param[out] reject A message filled to be sent back. Only used in failure cases. * \param[out] success A pointer which will be set to the new VC on success * \return enum value indicating the status, e.g. GPRS_NS2_CS_CREATED */ -enum gprs_ns2_cs ns2_create_vc(struct gprs_ns2_vc_bind *bind, - struct msgb *msg, - const char *logname, - struct msgb **reject, - struct gprs_ns2_vc **success) +enum ns2_cs ns2_create_vc(struct gprs_ns2_vc_bind *bind, + struct msgb *msg, + const char *logname, + struct msgb **reject, + struct gprs_ns2_vc **success) { struct gprs_ns_hdr *nsh = (struct gprs_ns_hdr *)msg->l2h; struct tlv_parsed tp; @@ -797,7 +797,7 @@ int rc, tlv; if (msg->len < sizeof(struct gprs_ns_hdr)) - return GPRS_NS2_CS_ERROR; + return NS2_CS_ERROR; /* parse the tlv early to allow reject status msg to * work with valid tp. @@ -812,19 +812,19 @@ LOGP(DLNS, LOGL_INFO, "Ignoring NS STATUS from %s " "for non-existing NS-VC\n", logname); - return GPRS_NS2_CS_SKIPPED; + return NS2_CS_SKIPPED; case NS_PDUT_ALIVE_ACK: /* Ignore this, see 3GPP TS 08.16, 7.4.1 */ LOGP(DLNS, LOGL_INFO, "Ignoring NS ALIVE ACK from %s " "for non-existing NS-VC\n", logname); - return GPRS_NS2_CS_SKIPPED; + return NS2_CS_SKIPPED; case NS_PDUT_RESET_ACK: /* Ignore this, see 3GPP TS 08.16, 7.3.1 */ LOGP(DLNS, LOGL_INFO, "Ignoring NS RESET ACK from %s " "for non-existing NS-VC\n", logname); - return GPRS_NS2_CS_SKIPPED; + return NS2_CS_SKIPPED; case NS_PDUT_RESET: /* accept PDU RESET when vc_mode matches */ if (bind->accept_ipaccess) { @@ -835,12 +835,12 @@ rc = reject_status_msg(msg, &tp, reject, NS_CAUSE_PDU_INCOMP_PSTATE); if (rc < 0) LOGP(DLNS, LOGL_ERROR, "Failed to generate reject message (%d)\n", rc); - return GPRS_NS2_CS_REJECTED; + return NS2_CS_REJECTED; default: rc = reject_status_msg(msg, &tp, reject, NS_CAUSE_PDU_INCOMP_PSTATE); if (rc < 0) LOGP(DLNS, LOGL_ERROR, "Failed to generate reject message (%d)\n", rc); - return GPRS_NS2_CS_REJECTED; + return NS2_CS_REJECTED; } if (tlv < 0) { @@ -852,7 +852,7 @@ rc = reject_status_msg(msg, &tp, reject, NS_CAUSE_PROTO_ERR_UNSPEC); if (rc < 0) LOGP(DLNS, LOGL_ERROR, "Failed to generate reject message (%d)\n", rc); - return GPRS_NS2_CS_REJECTED; + return NS2_CS_REJECTED; } if (!TLVP_PRES_LEN(&tp, NS_IE_CAUSE, 1) || @@ -861,7 +861,7 @@ rc = reject_status_msg(msg, &tp, reject, NS_CAUSE_MISSING_ESSENT_IE); if (rc < 0) LOGP(DLNS, LOGL_ERROR, "Failed to generate reject message (%d)\n", rc); - return GPRS_NS2_CS_REJECTED; + return NS2_CS_REJECTED; } nsei = tlvp_val16be(&tp, NS_IE_NSEI); @@ -872,15 +872,15 @@ if (!nse) { /* only create nse for udp & ipaccess */ if (bind->ll != GPRS_NS2_LL_UDP || dialect != NS2_DIALECT_IPACCESS) - return GPRS_NS2_CS_SKIPPED; + return NS2_CS_SKIPPED; if (!bind->nsi->create_nse || !bind->accept_ipaccess) - return GPRS_NS2_CS_SKIPPED; + return NS2_CS_SKIPPED; nse = gprs_ns2_create_nse(bind->nsi, nsei, bind->ll, dialect); if (!nse) { LOGP(DLNS, LOGL_ERROR, "Failed to create NSE(%05u)\n", nsei); - return GPRS_NS2_CS_ERROR; + return NS2_CS_ERROR; } } else { /* nsei already known */ @@ -888,7 +888,7 @@ LOGNSE(nse, LOGL_ERROR, "Received NS-RESET NS-VCI(%05u) with wrong linklayer(%s)" " for already known NSE(%s)\n", nsvci, gprs_ns2_lltype_str(bind->ll), gprs_ns2_lltype_str(nse->ll)); - return GPRS_NS2_CS_SKIPPED; + return NS2_CS_SKIPPED; } } @@ -896,7 +896,7 @@ if (nsvc) { if (nsvc->persistent) { LOGNSVC(nsvc, LOGL_ERROR, "Received NS-RESET for a persistent NSE over wrong connection.\n"); - return GPRS_NS2_CS_SKIPPED; + return NS2_CS_SKIPPED; } /* destroy old dynamic nsvc */ gprs_ns2_free_nsvc(nsvc); @@ -906,7 +906,7 @@ if (nse->persistent) { LOGNSE(nse, LOGL_ERROR, "Received NS-RESET for a persistent NSE but the unknown " "NS-VCI(%05u)\n", nsvci); - return GPRS_NS2_CS_SKIPPED; + return NS2_CS_SKIPPED; } nsvci = tlvp_val16be(&tp, NS_IE_VCI); @@ -915,14 +915,14 @@ nse->nsei, nsvci); nsvc = ns2_vc_alloc(bind, nse, false, vc_mode, idbuf); if (!nsvc) - return GPRS_NS2_CS_SKIPPED; + return NS2_CS_SKIPPED; nsvc->nsvci = nsvci; nsvc->nsvci_is_valid = true; *success = nsvc; - return GPRS_NS2_CS_CREATED; + return NS2_CS_CREATED; } /*! Create, and connect an inactive, new IP-based NS-VC diff --git a/src/gb/gprs_ns2_frgre.c b/src/gb/gprs_ns2_frgre.c index 2812e12..da7e53f 100644 --- a/src/gb/gprs_ns2_frgre.c +++ b/src/gb/gprs_ns2_frgre.c @@ -439,17 +439,17 @@ /* VC not found */ rc = ns2_create_vc(bind, msg, "newconnection", &reject, &nsvc); switch (rc) { - case GPRS_NS2_CS_FOUND: + case NS2_CS_FOUND: break; - case GPRS_NS2_CS_ERROR: - case GPRS_NS2_CS_SKIPPED: + case NS2_CS_ERROR: + case NS2_CS_SKIPPED: rc = 0; goto out; - case GPRS_NS2_CS_REJECTED: + case NS2_CS_REJECTED: /* nsip_sendmsg will free reject */ rc = frgre_sendmsg(bind, reject, &saddr); goto out; - case GPRS_NS2_CS_CREATED: + case NS2_CS_CREATED: frgre_alloc_vc(bind, nsvc, &saddr, dlci); gprs_ns2_vc_fsm_start(nsvc); break; diff --git a/src/gb/gprs_ns2_internal.h b/src/gb/gprs_ns2_internal.h index 7183bd8..a36396f 100644 --- a/src/gb/gprs_ns2_internal.h +++ b/src/gb/gprs_ns2_internal.h @@ -77,12 +77,12 @@ }; /*! Osmocom NS2 VC create status */ -enum gprs_ns2_cs { - GPRS_NS2_CS_CREATED, /*!< A NSVC object has been created */ - GPRS_NS2_CS_FOUND, /*!< A NSVC object has been found */ - GPRS_NS2_CS_REJECTED, /*!< Rejected and answered message */ - GPRS_NS2_CS_SKIPPED, /*!< Skipped message */ - GPRS_NS2_CS_ERROR, /*!< Failed to process message */ +enum ns2_cs { + NS2_CS_CREATED, /*!< A NSVC object has been created */ + NS2_CS_FOUND, /*!< A NSVC object has been found */ + NS2_CS_REJECTED, /*!< Rejected and answered message */ + NS2_CS_SKIPPED, /*!< Skipped message */ + NS2_CS_ERROR, /*!< Failed to process message */ }; @@ -245,7 +245,7 @@ void (*free_bind)(struct gprs_ns2_vc_bind *driver); }; -enum gprs_ns2_cs ns2_create_vc(struct gprs_ns2_vc_bind *bind, +enum ns2_cs ns2_create_vc(struct gprs_ns2_vc_bind *bind, struct msgb *msg, const char *logname, struct msgb **reject, diff --git a/src/gb/gprs_ns2_udp.c b/src/gb/gprs_ns2_udp.c index 8bfa184..6ee6eb2 100644 --- a/src/gb/gprs_ns2_udp.c +++ b/src/gb/gprs_ns2_udp.c @@ -231,17 +231,17 @@ /* VC not found */ rc = ns2_create_vc(bind, msg, "newconnection", &reject, &nsvc); switch (rc) { - case GPRS_NS2_CS_FOUND: + case NS2_CS_FOUND: break; - case GPRS_NS2_CS_ERROR: - case GPRS_NS2_CS_SKIPPED: + case NS2_CS_ERROR: + case NS2_CS_SKIPPED: rc = 0; goto out; - case GPRS_NS2_CS_REJECTED: + case NS2_CS_REJECTED: /* nsip_sendmsg will free reject */ rc = nsip_sendmsg(bind, reject, &saddr); goto out; - case GPRS_NS2_CS_CREATED: + case NS2_CS_CREATED: ns2_driver_alloc_vc(bind, nsvc, &saddr); gprs_ns2_vc_fsm_start(nsvc); break; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22426 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I79be92ca716366c2e07ea061c08d95bea817a8c7 Gerrit-Change-Number: 22426 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 19:00:00 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 25 Jan 2021 19:00:00 +0000 Subject: Change in libosmocore[master]: gprs_ns2: drop prefix of all internal exposed function In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22427 ) Change subject: gprs_ns2: drop prefix of all internal exposed function ...................................................................... gprs_ns2: drop prefix of all internal exposed function All functions which are exposed by gprs_ns2_internal.h should not contain the public prefix gprs_. Internal function should only contain ns2_ prefix. Change-Id: Icecc5a918902cd10efac72bbac20780d39aab272 --- M src/gb/gprs_ns2.c M src/gb/gprs_ns2_fr.c M src/gb/gprs_ns2_frgre.c M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_message.c M src/gb/gprs_ns2_sns.c M src/gb/gprs_ns2_udp.c M src/gb/gprs_ns2_vc_fsm.c M src/gb/gprs_ns2_vty.c M src/gb/gprs_ns2_vty2.c M tests/gb/gprs_ns2_test.c 11 files changed, 84 insertions(+), 86 deletions(-) Approvals: Jenkins Builder: Verified daniel: Looks good to me, but someone else must approve laforge: Looks good to me, but someone else must approve lynxis lazus: Looks good to me, approved diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c index 2c417f2..811294b 100644 --- a/src/gb/gprs_ns2.c +++ b/src/gb/gprs_ns2.c @@ -318,7 +318,7 @@ llist_for_each_entry(tmp, &nse->nsvc, list) { if (tmp->sig_weight == 0) continue; - if (!gprs_ns2_vc_is_unblocked(tmp)) + if (!ns2_vc_is_unblocked(tmp)) continue; if (tmp->sig_counter == 0) { last = tmp; @@ -354,7 +354,7 @@ uint32_t i = 0; llist_for_each_entry(tmp, &nse->nsvc, list) { - if (!gprs_ns2_vc_is_unblocked(tmp)) + if (!ns2_vc_is_unblocked(tmp)) continue; if (i == mod) return tmp; @@ -370,7 +370,7 @@ struct gprs_ns2_vc *nsvc = NULL, *tmp; llist_for_each_entry(tmp, &nse->nsvc, list) { - if (!gprs_ns2_vc_is_unblocked(tmp)) + if (!ns2_vc_is_unblocked(tmp)) continue; if (tmp->data_weight == 0) continue; @@ -512,7 +512,7 @@ nsvc->statg = osmo_stat_item_group_alloc(nsvc, &nsvc_statg_desc, bind->nsi->rate_ctr_idx); if (!nsvc->statg) goto err_group; - if (!gprs_ns2_vc_fsm_alloc(nsvc, id, initiater)) + if (!ns2_vc_fsm_alloc(nsvc, id, initiater)) goto err_statg; bind->nsi->rate_ctr_idx++; @@ -577,7 +577,7 @@ } /*! Allocate a message buffer for use with the NS2 stack. */ -struct msgb *gprs_ns2_msgb_alloc(void) +struct msgb *ns2_msgb_alloc(void) { struct msgb *msg = msgb_alloc_headroom(NS_ALLOC_SIZE, NS_ALLOC_HEADROOM, "GPRS/NS"); @@ -596,7 +596,7 @@ * \return 0 on success */ static int reject_status_msg(struct msgb *orig_msg, struct tlv_parsed *tp, struct msgb **reject, enum ns_cause cause) { - struct msgb *msg = gprs_ns2_msgb_alloc(); + struct msgb *msg = ns2_msgb_alloc(); struct gprs_ns_hdr *nsh; bool have_vci = false; uint8_t _cause = cause; @@ -910,7 +910,7 @@ } nsvci = tlvp_val16be(&tp, NS_IE_VCI); - vc_mode = gprs_ns2_dialect_to_vc_mode(dialect); + vc_mode = ns2_dialect_to_vc_mode(dialect); snprintf(idbuf, sizeof(idbuf), "%s-NSE%05u-NSVC%05u", gprs_ns2_lltype_str(nse->ll), nse->nsei, nsvci); nsvc = ns2_vc_alloc(bind, nse, false, vc_mode, idbuf); @@ -938,7 +938,7 @@ { struct gprs_ns2_vc *nsvc; - nsvc = gprs_ns2_ip_bind_connect(bind, nse, remote); + nsvc = ns2_ip_bind_connect(bind, nse, remote); if (!nsvc) return NULL; @@ -966,7 +966,7 @@ if (!nsvc) return NULL; - gprs_ns2_vc_fsm_start(nsvc); + ns2_vc_fsm_start(nsvc); return nsvc; } @@ -1066,7 +1066,7 @@ return rc; } /* All sub-network service related message types */ - rc = gprs_ns2_sns_rx(nsvc, msg, &tp); + rc = ns2_sns_rx(nsvc, msg, &tp); break; case SNS_PDUT_ACK: case SNS_PDUT_ADD: @@ -1083,7 +1083,7 @@ tp.lv[NS_IE_NSEI].len = 2; tp.lv[NS_IE_TRANS_ID].val = nsh->data+4; tp.lv[NS_IE_TRANS_ID].len = 1; - rc = gprs_ns2_sns_rx(nsvc, msg, &tp); + rc = ns2_sns_rx(nsvc, msg, &tp); break; case SNS_PDUT_CONFIG_ACK: case SNS_PDUT_SIZE: @@ -1095,11 +1095,11 @@ return rc; } /* All sub-network service related message types */ - rc = gprs_ns2_sns_rx(nsvc, msg, &tp); + rc = ns2_sns_rx(nsvc, msg, &tp); break; case NS_PDUT_UNITDATA: - rc = gprs_ns2_vc_rx(nsvc, msg, &tp); + rc = ns2_vc_rx(nsvc, msg, &tp); break; default: rc = ns2_tlv_parse(&tp, nsh->data, @@ -1110,7 +1110,7 @@ ns2_tx_status(nsvc, NS_CAUSE_PROTO_ERR_UNSPEC, 0, msg); return rc; } - rc = gprs_ns2_vc_rx(nsvc, msg, &tp); + rc = ns2_vc_rx(nsvc, msg, &tp); break; } @@ -1127,7 +1127,7 @@ nse->sum_sig_weight = 0; llist_for_each_entry(nsvc, &nse->nsvc, list) { - if (!gprs_ns2_vc_is_unblocked(nsvc)) + if (!ns2_vc_is_unblocked(nsvc)) continue; nse->nsvc_count++; @@ -1231,7 +1231,7 @@ if (nsvc->sns_only) continue; - gprs_ns2_vc_fsm_start(nsvc); + ns2_vc_fsm_start(nsvc); } } @@ -1269,8 +1269,7 @@ * \param[in] name The unique bind name to search for * \return the bind or NULL if not found */ -struct gprs_ns2_vc_bind *gprs_ns2_bind_by_name( - struct gprs_ns2_inst *nsi, const char *name) +struct gprs_ns2_vc_bind *gprs_ns2_bind_by_name(struct gprs_ns2_inst *nsi, const char *name) { struct gprs_ns2_vc_bind *bind; @@ -1282,8 +1281,7 @@ return NULL; } -enum gprs_ns2_vc_mode gprs_ns2_dialect_to_vc_mode( - enum gprs_ns2_dialect dialect) +enum gprs_ns2_vc_mode ns2_dialect_to_vc_mode(enum gprs_ns2_dialect dialect) { switch (dialect) { case NS2_DIALECT_SNS: @@ -1335,7 +1333,7 @@ return 0; llist_for_each_entry(nsvc, &nse->nsvc, list) { - if (gprs_ns2_vc_is_unblocked(nsvc)) + if (ns2_vc_is_unblocked(nsvc)) active_nsvcs++; } /* an alive nse should always have active_nsvcs */ @@ -1346,7 +1344,7 @@ return -ENOMEM; llist_for_each_entry(nsvc, &nse->nsvc, list) { - if (!gprs_ns2_vc_is_unblocked(nsvc)) + if (!ns2_vc_is_unblocked(nsvc)) continue; add_bind_array(active_binds, nsvc->bind, active_nsvcs); } diff --git a/src/gb/gprs_ns2_fr.c b/src/gb/gprs_ns2_fr.c index 274ed96..8ad44ac 100644 --- a/src/gb/gprs_ns2_fr.c +++ b/src/gb/gprs_ns2_fr.c @@ -762,7 +762,7 @@ nsvc->nsvci = nsvci; nsvc->nsvci_is_valid = true; - gprs_ns2_vc_fsm_start(nsvc); + ns2_vc_fsm_start(nsvc); return nsvc; diff --git a/src/gb/gprs_ns2_frgre.c b/src/gb/gprs_ns2_frgre.c index da7e53f..cc8500f 100644 --- a/src/gb/gprs_ns2_frgre.c +++ b/src/gb/gprs_ns2_frgre.c @@ -451,7 +451,7 @@ goto out; case NS2_CS_CREATED: frgre_alloc_vc(bind, nsvc, &saddr, dlci); - gprs_ns2_vc_fsm_start(nsvc); + ns2_vc_fsm_start(nsvc); break; } } diff --git a/src/gb/gprs_ns2_internal.h b/src/gb/gprs_ns2_internal.h index a36396f..027071d 100644 --- a/src/gb/gprs_ns2_internal.h +++ b/src/gb/gprs_ns2_internal.h @@ -260,10 +260,10 @@ enum gprs_ns2_vc_mode vc_mode, const char *id); -struct msgb *gprs_ns2_msgb_alloc(void); +struct msgb *ns2_msgb_alloc(void); -void gprs_ns2_sns_write_vty(struct vty *vty, const struct gprs_ns2_nse *nse); -void gprs_ns2_sns_dump_vty(struct vty *vty, const char *prefix, const struct gprs_ns2_nse *nse, bool stats); +void ns2_sns_write_vty(struct vty *vty, const struct gprs_ns2_nse *nse); +void ns2_sns_dump_vty(struct vty *vty, const char *prefix, const struct gprs_ns2_nse *nse, bool stats); void ns2_prim_status_ind(struct gprs_ns2_nse *nse, struct gprs_ns2_vc *nsvc, uint16_t bvci, @@ -271,11 +271,11 @@ void ns2_nse_notify_alive(struct gprs_ns2_vc *nsvc, bool alive); /* message */ -int gprs_ns2_validate(struct gprs_ns2_vc *nsvc, - uint8_t pdu_type, - struct msgb *msg, - struct tlv_parsed *tp, - uint8_t *cause); +int ns2_validate(struct gprs_ns2_vc *nsvc, + uint8_t pdu_type, + struct msgb *msg, + struct tlv_parsed *tp, + uint8_t *cause); /* SNS messages */ int ns2_tx_sns_ack(struct gprs_ns2_vc *nsvc, uint8_t trans_id, uint8_t *cause, @@ -314,33 +314,33 @@ uint16_t bvci, struct msgb *orig_msg); /* driver */ -struct gprs_ns2_vc *gprs_ns2_ip_bind_connect(struct gprs_ns2_vc_bind *bind, - struct gprs_ns2_nse *nse, - const struct osmo_sockaddr *remote); +struct gprs_ns2_vc *ns2_ip_bind_connect(struct gprs_ns2_vc_bind *bind, + struct gprs_ns2_nse *nse, + const struct osmo_sockaddr *remote); int ns2_ip_count_bind(struct gprs_ns2_inst *nsi, struct osmo_sockaddr *remote); struct gprs_ns2_vc_bind *ns2_ip_get_bind_by_index(struct gprs_ns2_inst *nsi, struct osmo_sockaddr *remote, int index); /* sns */ -int gprs_ns2_sns_rx(struct gprs_ns2_vc *nsvc, struct msgb *msg, struct tlv_parsed *tp); +int ns2_sns_rx(struct gprs_ns2_vc *nsvc, struct msgb *msg, struct tlv_parsed *tp); struct osmo_fsm_inst *ns2_sns_bss_fsm_alloc(struct gprs_ns2_nse *nse, const char *id); void ns2_sns_free_nsvc(struct gprs_ns2_vc *nsvc); /* vc */ -struct osmo_fsm_inst *gprs_ns2_vc_fsm_alloc(struct gprs_ns2_vc *nsvc, +struct osmo_fsm_inst *ns2_vc_fsm_alloc(struct gprs_ns2_vc *nsvc, const char *id, bool initiate); -int gprs_ns2_vc_fsm_start(struct gprs_ns2_vc *nsvc); -int gprs_ns2_vc_force_unconfigured(struct gprs_ns2_vc *nsvc); -int gprs_ns2_vc_rx(struct gprs_ns2_vc *nsvc, struct msgb *msg, struct tlv_parsed *tp); -int gprs_ns2_vc_is_alive(struct gprs_ns2_vc *nsvc); -int gprs_ns2_vc_is_unblocked(struct gprs_ns2_vc *nsvc); +int ns2_vc_fsm_start(struct gprs_ns2_vc *nsvc); +int ns2_vc_force_unconfigured(struct gprs_ns2_vc *nsvc); +int ns2_vc_rx(struct gprs_ns2_vc *nsvc, struct msgb *msg, struct tlv_parsed *tp); +int ns2_vc_is_alive(struct gprs_ns2_vc *nsvc); +int ns2_vc_is_unblocked(struct gprs_ns2_vc *nsvc); int ns2_vc_block(struct gprs_ns2_vc *nsvc); int ns2_vc_unblock(struct gprs_ns2_vc *nsvc); /* nse */ void ns2_nse_notify_unblocked(struct gprs_ns2_vc *nsvc, bool unblocked); -enum gprs_ns2_vc_mode gprs_ns2_dialect_to_vc_mode(enum gprs_ns2_dialect dialect); +enum gprs_ns2_vc_mode ns2_dialect_to_vc_mode(enum gprs_ns2_dialect dialect); int ns2_count_transfer_cap(struct gprs_ns2_nse *nse, uint16_t bvci); diff --git a/src/gb/gprs_ns2_message.c b/src/gb/gprs_ns2_message.c index 9559229..a185f3b 100644 --- a/src/gb/gprs_ns2_message.c +++ b/src/gb/gprs_ns2_message.c @@ -149,11 +149,11 @@ return 0; } -int gprs_ns2_validate(struct gprs_ns2_vc *nsvc, - uint8_t pdu_type, - struct msgb *msg, - struct tlv_parsed *tp, - uint8_t *cause) +int ns2_validate(struct gprs_ns2_vc *nsvc, + uint8_t pdu_type, + struct msgb *msg, + struct tlv_parsed *tp, + uint8_t *cause) { switch (pdu_type) { case NS_PDUT_RESET: @@ -186,7 +186,7 @@ /* transmit functions */ static int ns2_tx_simple(struct gprs_ns2_vc *nsvc, uint8_t pdu_type) { - struct msgb *msg = gprs_ns2_msgb_alloc(); + struct msgb *msg = ns2_msgb_alloc(); struct gprs_ns_hdr *nsh; log_set_context(LOG_CTX_GB_NSE, nsvc->nse); @@ -218,7 +218,7 @@ ERR_IF_NSVC_USES_SNS(nsvc, "transmit NS BLOCK"); - msg = gprs_ns2_msgb_alloc(); + msg = ns2_msgb_alloc(); if (!msg) return -ENOMEM; @@ -250,7 +250,7 @@ ERR_IF_NSVC_USES_SNS(nsvc, "transmit NS BLOCK ACK"); - msg = gprs_ns2_msgb_alloc(); + msg = ns2_msgb_alloc(); if (!msg) return -ENOMEM; @@ -281,7 +281,7 @@ ERR_IF_NSVC_USES_SNS(nsvc, "transmit NS RESET"); - msg = gprs_ns2_msgb_alloc(); + msg = ns2_msgb_alloc(); if (!msg) return -ENOMEM; @@ -313,7 +313,7 @@ ERR_IF_NSVC_USES_SNS(nsvc, "transmit NS RESET ACK"); - msg = gprs_ns2_msgb_alloc(); + msg = ns2_msgb_alloc(); if (!msg) return -ENOMEM; @@ -428,7 +428,7 @@ int ns2_tx_status(struct gprs_ns2_vc *nsvc, uint8_t cause, uint16_t bvci, struct msgb *orig_msg) { - struct msgb *msg = gprs_ns2_msgb_alloc(); + struct msgb *msg = ns2_msgb_alloc(); struct gprs_ns_hdr *nsh; uint16_t nsvci = osmo_htons(nsvc->nsvci); @@ -495,7 +495,7 @@ if (!nsvc) return -1; - msg = gprs_ns2_msgb_alloc(); + msg = ns2_msgb_alloc(); log_set_context(LOG_CTX_GB_NSE, nsvc->nse); log_set_context(LOG_CTX_GB_NSVC, nsvc); @@ -553,7 +553,7 @@ if (!nsvc) return -1; - msg = gprs_ns2_msgb_alloc(); + msg = ns2_msgb_alloc(); log_set_context(LOG_CTX_GB_NSE, nsvc->nse); log_set_context(LOG_CTX_GB_NSVC, nsvc); @@ -602,7 +602,7 @@ if (!nsvc) return -1; - msg = gprs_ns2_msgb_alloc(); + msg = ns2_msgb_alloc(); log_set_context(LOG_CTX_GB_NSE, nsvc->nse); log_set_context(LOG_CTX_GB_NSVC, nsvc); if (!msg) @@ -646,7 +646,7 @@ if (!nsvc) return -1; - msg = gprs_ns2_msgb_alloc(); + msg = ns2_msgb_alloc(); log_set_context(LOG_CTX_GB_NSE, nsvc->nse); log_set_context(LOG_CTX_GB_NSVC, nsvc); @@ -683,7 +683,7 @@ * \returns 0 on success; negative in case of error */ int ns2_tx_sns_size_ack(struct gprs_ns2_vc *nsvc, uint8_t *cause) { - struct msgb *msg = gprs_ns2_msgb_alloc(); + struct msgb *msg = ns2_msgb_alloc(); struct gprs_ns_hdr *nsh; uint16_t nsei; diff --git a/src/gb/gprs_ns2_sns.c b/src/gb/gprs_ns2_sns.c index 90d97b6..2dc6524 100644 --- a/src/gb/gprs_ns2_sns.c +++ b/src/gb/gprs_ns2_sns.c @@ -246,7 +246,7 @@ if (nse->alive) { /* choose a different sns nsvc */ llist_for_each_entry(tmp, &nse->nsvc, list) { - if (gprs_ns2_vc_is_unblocked(tmp)) + if (ns2_vc_is_unblocked(tmp)) gss->sns_nsvc = tmp; } } else { @@ -743,7 +743,7 @@ /* setup the NSVC */ if (!gss->sns_nsvc) { - gss->sns_nsvc = gprs_ns2_ip_bind_connect(bind, gss->nse, remote); + gss->sns_nsvc = ns2_ip_bind_connect(bind, gss->nse, remote); if (!gss->sns_nsvc) return; gss->sns_nsvc->sns_only = true; @@ -1439,7 +1439,7 @@ * \param[in] msg message buffer of the IP-SNS message * \param[in] tp parsed TLV structure of message * \retruns 0 on success; negative on error */ -int gprs_ns2_sns_rx(struct gprs_ns2_vc *nsvc, struct msgb *msg, struct tlv_parsed *tp) +int ns2_sns_rx(struct gprs_ns2_vc *nsvc, struct msgb *msg, struct tlv_parsed *tp) { struct gprs_ns2_nse *nse = nsvc->nse; struct gprs_ns_hdr *nsh = (struct gprs_ns_hdr *) msg->l2h; @@ -1521,7 +1521,7 @@ * \param[in] prefix prefix to print at start of each line (typically indenting) * \param[in] nse NS Entity whose IP-SNS state shall be printed * \param[in] stats Whether or not statistics shall also be printed */ -void gprs_ns2_sns_dump_vty(struct vty *vty, const char *prefix, const struct gprs_ns2_nse *nse, bool stats) +void ns2_sns_dump_vty(struct vty *vty, const char *prefix, const struct gprs_ns2_nse *nse, bool stats) { struct ns2_sns_state *gss; unsigned int i; @@ -1559,7 +1559,7 @@ /*! write IP-SNS to a vty * \param[in] vty VTY to which the state shall be printed * \param[in] nse NS Entity whose IP-SNS state shall be printed */ -void gprs_ns2_sns_write_vty(struct vty *vty, const struct gprs_ns2_nse *nse) +void ns2_sns_write_vty(struct vty *vty, const struct gprs_ns2_nse *nse) { struct ns2_sns_state *gss; struct osmo_sockaddr_str addr_str; diff --git a/src/gb/gprs_ns2_udp.c b/src/gb/gprs_ns2_udp.c index 6ee6eb2..e1ffad6 100644 --- a/src/gb/gprs_ns2_udp.c +++ b/src/gb/gprs_ns2_udp.c @@ -171,7 +171,7 @@ static struct msgb *read_nsip_msg(struct osmo_fd *bfd, int *error, struct osmo_sockaddr *saddr, const struct gprs_ns2_vc_bind *bind) { - struct msgb *msg = gprs_ns2_msgb_alloc(); + struct msgb *msg = ns2_msgb_alloc(); int ret = 0; socklen_t saddr_len = sizeof(*saddr); @@ -243,7 +243,7 @@ goto out; case NS2_CS_CREATED: ns2_driver_alloc_vc(bind, nsvc, &saddr); - gprs_ns2_vc_fsm_start(nsvc); + ns2_vc_fsm_start(nsvc); break; } } @@ -394,9 +394,9 @@ * \param[in] nse NS entity to be used for the new NS-VC * \param[in] remote remote address to connect to * \return pointer to newly-allocated and connected NS-VC; NULL on error */ -struct gprs_ns2_vc *gprs_ns2_ip_bind_connect(struct gprs_ns2_vc_bind *bind, - struct gprs_ns2_nse *nse, - const struct osmo_sockaddr *remote) +struct gprs_ns2_vc *ns2_ip_bind_connect(struct gprs_ns2_vc_bind *bind, + struct gprs_ns2_nse *nse, + const struct osmo_sockaddr *remote) { struct gprs_ns2_vc *nsvc; struct priv_vc *priv; @@ -406,7 +406,7 @@ OSMO_ASSERT(gprs_ns2_is_ip_bind(bind)); - vc_mode = gprs_ns2_dialect_to_vc_mode(nse->dialect); + vc_mode = ns2_dialect_to_vc_mode(nse->dialect); if ((int) vc_mode == -1) { LOGNSE(nse, LOGL_ERROR, "Can not derive vc mode from dialect %d. Maybe libosmocore is too old.\n", nse->dialect); diff --git a/src/gb/gprs_ns2_vc_fsm.c b/src/gb/gprs_ns2_vc_fsm.c index d4f4320..d18983a 100644 --- a/src/gb/gprs_ns2_vc_fsm.c +++ b/src/gb/gprs_ns2_vc_fsm.c @@ -684,7 +684,7 @@ * \param initiator initiator is the site which starts the connection. Usually the BSS. * \return NULL on error, otherwise the fsm */ -struct osmo_fsm_inst *gprs_ns2_vc_fsm_alloc(struct gprs_ns2_vc *nsvc, +struct osmo_fsm_inst *ns2_vc_fsm_alloc(struct gprs_ns2_vc *nsvc, const char *id, bool initiator) { struct osmo_fsm_inst *fi; @@ -707,7 +707,7 @@ /*! Start a NS-VC FSM. * \param nsvc the virtual circuit * \return 0 on success; negative on error */ -int gprs_ns2_vc_fsm_start(struct gprs_ns2_vc *nsvc) +int ns2_vc_fsm_start(struct gprs_ns2_vc *nsvc) { /* allows to call this function even for started nsvc by gprs_ns2_start_alive_all_nsvcs */ if (nsvc->fi->state == GPRS_NS2_ST_UNCONFIGURED) @@ -718,7 +718,7 @@ /*! Reset a NS-VC FSM. * \param nsvc the virtual circuit * \return 0 on success; negative on error */ -int gprs_ns2_vc_force_unconfigured(struct gprs_ns2_vc *nsvc) +int ns2_vc_force_unconfigured(struct gprs_ns2_vc *nsvc) { return osmo_fsm_inst_dispatch(nsvc->fi, GPRS_NS2_EV_REQ_FORCE_UNCONFIGURED, NULL); } @@ -744,7 +744,7 @@ * \param msg message that was received * \param tp parsed TLVs of the received message * \return 0 on success; negative on error */ -int gprs_ns2_vc_rx(struct gprs_ns2_vc *nsvc, struct msgb *msg, struct tlv_parsed *tp) +int ns2_vc_rx(struct gprs_ns2_vc *nsvc, struct msgb *msg, struct tlv_parsed *tp) { struct gprs_ns_hdr *nsh = (struct gprs_ns_hdr *) msg->l2h; struct osmo_fsm_inst *fi = nsvc->fi; @@ -756,7 +756,7 @@ * if not answer STATUS with "NS-VC unknown" */ /* TODO: handle BLOCK/UNBLOCK/ALIVE with different VCI */ - if (gprs_ns2_validate(nsvc, nsh->pdu_type, msg, tp, &cause)) { + if (ns2_validate(nsvc, nsh->pdu_type, msg, tp, &cause)) { if (nsh->pdu_type != NS_PDUT_STATUS) { rc = ns2_tx_status(nsvc, cause, 0, msg); goto out; @@ -831,7 +831,7 @@ } /*! is the given NS-VC unblocked? */ -int gprs_ns2_vc_is_unblocked(struct gprs_ns2_vc *nsvc) +int ns2_vc_is_unblocked(struct gprs_ns2_vc *nsvc) { return (nsvc->fi->state == GPRS_NS2_ST_UNBLOCKED); } diff --git a/src/gb/gprs_ns2_vty.c b/src/gb/gprs_ns2_vty.c index 36a7f78..d6674ff 100644 --- a/src/gb/gprs_ns2_vty.c +++ b/src/gb/gprs_ns2_vty.c @@ -298,7 +298,7 @@ vty_out(vty, "NSEI %05u: %s, %s%s", nse->nsei, gprs_ns2_lltype_str(nse->ll), nse->alive ? "ALIVE" : "DEAD", VTY_NEWLINE); - gprs_ns2_sns_dump_vty(vty, " ", nse, stats); + ns2_sns_dump_vty(vty, " ", nse, stats); llist_for_each_entry(nsvc, &nse->nsvc, list) { if (persistent_only) { if (nsvc->persistent) @@ -418,7 +418,7 @@ static int nsvc_force_unconf_cb(struct gprs_ns2_vc *nsvc, void *ctx) { - gprs_ns2_vc_force_unconfigured(nsvc); + ns2_vc_force_unconfigured(nsvc); return 0; } diff --git a/src/gb/gprs_ns2_vty2.c b/src/gb/gprs_ns2_vty2.c index db59717..43dd263 100644 --- a/src/gb/gprs_ns2_vty2.c +++ b/src/gb/gprs_ns2_vty2.c @@ -391,7 +391,7 @@ vty_out(vty, " nse %u%s", nse->nsei, VTY_NEWLINE); switch (nse->dialect) { case NS2_DIALECT_SNS: - gprs_ns2_sns_write_vty(vty, nse); + ns2_sns_write_vty(vty, nse); break; default: llist_for_each_entry(nsvc, &nse->nsvc, list) { @@ -1349,7 +1349,7 @@ vty_out(vty, "NSEI %05u: %s, %s%s", nse->nsei, gprs_ns2_lltype_str(nse->ll), nse->alive ? "ALIVE" : "DEAD", VTY_NEWLINE); - gprs_ns2_sns_dump_vty(vty, " ", nse, stats); + ns2_sns_dump_vty(vty, " ", nse, stats); llist_for_each_entry(nsvc, &nse->nsvc, list) { if (persistent_only) { if (nsvc->persistent) @@ -1469,7 +1469,7 @@ static int nsvc_force_unconf_cb(struct gprs_ns2_vc *nsvc, void *ctx) { - gprs_ns2_vc_force_unconfigured(nsvc); + ns2_vc_force_unconfigured(nsvc); return 0; } diff --git a/tests/gb/gprs_ns2_test.c b/tests/gb/gprs_ns2_test.c index 10f430d..335a079 100644 --- a/tests/gb/gprs_ns2_test.c +++ b/tests/gb/gprs_ns2_test.c @@ -254,7 +254,7 @@ OSMO_ASSERT(nsvc[i]); nsvc[i]->fi->state = 3; /* HACK: 3 = GPRS_NS2_ST_UNBLOCKED */ /* ensure the fi->state works correct */ - OSMO_ASSERT(gprs_ns2_vc_is_unblocked(nsvc[i])); + OSMO_ASSERT(ns2_vc_is_unblocked(nsvc[i])); ns2_nse_notify_unblocked(nsvc[i], true); } @@ -277,7 +277,7 @@ nsh->pdu_type = NS_PDUT_UNBLOCK_ACK; ns2_recv_vc(nsvc[0], msg); - OSMO_ASSERT(gprs_ns2_vc_is_unblocked(nsvc[0])); + OSMO_ASSERT(ns2_vc_is_unblocked(nsvc[0])); gprs_ns2_free(nsi); printf("--- Finish NSE block unblock nsvc\n"); } @@ -330,11 +330,11 @@ nsvc[i] = ns2_vc_alloc(bind[i], nse, false, NS2_VC_MODE_BLOCKRESET, idbuf); loop[i] = loopback_nsvc(loopbind, nsvc[i]); OSMO_ASSERT(nsvc[i]); - gprs_ns2_vc_fsm_start(nsvc[i]); - OSMO_ASSERT(!gprs_ns2_vc_is_unblocked(nsvc[i])); + ns2_vc_fsm_start(nsvc[i]); + OSMO_ASSERT(!ns2_vc_is_unblocked(nsvc[i])); ns2_tx_reset(loop[i], NS_CAUSE_OM_INTERVENTION); ns2_tx_unblock(loop[i]); - OSMO_ASSERT(gprs_ns2_vc_is_unblocked(nsvc[i])); + OSMO_ASSERT(ns2_vc_is_unblocked(nsvc[i])); } /* both nsvcs are unblocked and alive */ -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22427 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Icecc5a918902cd10efac72bbac20780d39aab272 Gerrit-Change-Number: 22427 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 19:00:01 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 25 Jan 2021 19:00:01 +0000 Subject: Change in libosmocore[master]: gprs_ns2: drop the public prefix gprs_ from all static functions/stru... In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22428 ) Change subject: gprs_ns2: drop the public prefix gprs_ from all static functions/structs/.. ...................................................................... gprs_ns2: drop the public prefix gprs_ from all static functions/structs/.. Change-Id: I6ba0599e5a6d6fabf93851dd3ec7716f2ef2d840 --- M src/gb/gprs_ns2_frgre.c M src/gb/gprs_ns2_message.c M src/gb/gprs_ns2_vc_fsm.c 3 files changed, 53 insertions(+), 53 deletions(-) Approvals: Jenkins Builder: Verified daniel: Looks good to me, but someone else must approve laforge: Looks good to me, but someone else must approve lynxis lazus: Looks good to me, approved diff --git a/src/gb/gprs_ns2_frgre.c b/src/gb/gprs_ns2_frgre.c index cc8500f..5047af0 100644 --- a/src/gb/gprs_ns2_frgre.c +++ b/src/gb/gprs_ns2_frgre.c @@ -393,9 +393,9 @@ return NULL; } -static int gprs_ns2_find_vc_by_dlci(struct gprs_ns2_vc_bind *bind, - uint16_t dlci, - struct gprs_ns2_vc **result) +static int ns2_find_vc_by_dlci(struct gprs_ns2_vc_bind *bind, + uint16_t dlci, + struct gprs_ns2_vc **result) { struct gprs_ns2_vc *nsvc; struct priv_vc *vcpriv; @@ -434,7 +434,7 @@ goto out; } - rc = gprs_ns2_find_vc_by_dlci(bind, dlci, &nsvc); + rc = ns2_find_vc_by_dlci(bind, dlci, &nsvc); if (rc) { /* VC not found */ rc = ns2_create_vc(bind, msg, "newconnection", &reject, &nsvc); diff --git a/src/gb/gprs_ns2_message.c b/src/gb/gprs_ns2_message.c index a185f3b..c525dd7 100644 --- a/src/gb/gprs_ns2_message.c +++ b/src/gb/gprs_ns2_message.c @@ -63,7 +63,7 @@ -static int gprs_ns2_validate_reset(struct gprs_ns2_vc *nsvc, struct msgb *msg, struct tlv_parsed *tp, uint8_t *cause) +static int ns2_validate_reset(struct gprs_ns2_vc *nsvc, struct msgb *msg, struct tlv_parsed *tp, uint8_t *cause) { if (!TLVP_PRES_LEN(tp, NS_IE_CAUSE, 1) || !TLVP_PRES_LEN(tp, NS_IE_VCI, 2) || !TLVP_PRES_LEN(tp, NS_IE_NSEI, 2)) { @@ -74,7 +74,7 @@ return 0; } -static int gprs_ns2_validate_reset_ack(struct gprs_ns2_vc *nsvc, struct msgb *msg, struct tlv_parsed *tp, uint8_t *cause) +static int ns2_validate_reset_ack(struct gprs_ns2_vc *nsvc, struct msgb *msg, struct tlv_parsed *tp, uint8_t *cause) { if (!TLVP_PRES_LEN(tp, NS_IE_VCI, 2) || !TLVP_PRES_LEN(tp, NS_IE_NSEI, 2)) { *cause = NS_CAUSE_MISSING_ESSENT_IE; @@ -84,7 +84,7 @@ return 0; } -static int gprs_ns2_validate_block(struct gprs_ns2_vc *nsvc, struct msgb *msg, struct tlv_parsed *tp, uint8_t *cause) +static int ns2_validate_block(struct gprs_ns2_vc *nsvc, struct msgb *msg, struct tlv_parsed *tp, uint8_t *cause) { if (!TLVP_PRES_LEN(tp, NS_IE_VCI, 2) || !TLVP_PRES_LEN(tp, NS_IE_CAUSE, 1)) { *cause = NS_CAUSE_MISSING_ESSENT_IE; @@ -94,7 +94,7 @@ return 0; } -static int gprs_ns2_validate_block_ack(struct gprs_ns2_vc *nsvc, struct msgb *msg, struct tlv_parsed *tp, uint8_t *cause) +static int ns2_validate_block_ack(struct gprs_ns2_vc *nsvc, struct msgb *msg, struct tlv_parsed *tp, uint8_t *cause) { if (!TLVP_PRES_LEN(tp, NS_IE_VCI, 2)) { *cause = NS_CAUSE_MISSING_ESSENT_IE; @@ -104,7 +104,7 @@ return 0; } -static int gprs_ns2_validate_status(struct gprs_ns2_vc *nsvc, struct msgb *msg, struct tlv_parsed *tp, uint8_t *cause) +static int ns2_validate_status(struct gprs_ns2_vc *nsvc, struct msgb *msg, struct tlv_parsed *tp, uint8_t *cause) { if (!TLVP_PRES_LEN(tp, NS_IE_CAUSE, 1)) { @@ -157,15 +157,15 @@ { switch (pdu_type) { case NS_PDUT_RESET: - return gprs_ns2_validate_reset(nsvc, msg, tp, cause); + return ns2_validate_reset(nsvc, msg, tp, cause); case NS_PDUT_RESET_ACK: - return gprs_ns2_validate_reset_ack(nsvc, msg, tp, cause); + return ns2_validate_reset_ack(nsvc, msg, tp, cause); case NS_PDUT_BLOCK: - return gprs_ns2_validate_block(nsvc, msg, tp, cause); + return ns2_validate_block(nsvc, msg, tp, cause); case NS_PDUT_BLOCK_ACK: - return gprs_ns2_validate_block_ack(nsvc, msg, tp, cause); + return ns2_validate_block_ack(nsvc, msg, tp, cause); case NS_PDUT_STATUS: - return gprs_ns2_validate_status(nsvc, msg, tp, cause); + return ns2_validate_status(nsvc, msg, tp, cause); /* following PDUs doesn't have any payloads */ case NS_PDUT_ALIVE: diff --git a/src/gb/gprs_ns2_vc_fsm.c b/src/gb/gprs_ns2_vc_fsm.c index d18983a..7ee29a1 100644 --- a/src/gb/gprs_ns2_vc_fsm.c +++ b/src/gb/gprs_ns2_vc_fsm.c @@ -121,7 +121,7 @@ GPRS_NS2_EV_REQ_OM_UNBLOCK, /* vty cmd: unblock*/ }; -static const struct value_string gprs_ns2_vc_event_names[] = { +static const struct value_string ns2_vc_event_names[] = { { GPRS_NS2_EV_REQ_START, "START" }, { GPRS_NS2_EV_RX_RESET, "RESET" }, { GPRS_NS2_EV_RX_RESET_ACK, "RESET_ACK" }, @@ -224,7 +224,7 @@ } } -static void gprs_ns2_st_unconfigured(struct osmo_fsm_inst *fi, uint32_t event, void *data) +static void ns2_st_unconfigured(struct osmo_fsm_inst *fi, uint32_t event, void *data) { struct gprs_ns2_vc_priv *priv = fi->priv; struct gprs_ns2_inst *nsi = priv->nsvc->nse->nsi; @@ -250,7 +250,7 @@ } -static void gprs_ns2_st_reset_onenter(struct osmo_fsm_inst *fi, uint32_t old_state) +static void ns2_st_reset_onenter(struct osmo_fsm_inst *fi, uint32_t old_state) { struct gprs_ns2_vc_priv *priv = fi->priv; @@ -265,7 +265,7 @@ ns2_nse_notify_unblocked(priv->nsvc, false); } -static void gprs_ns2_st_reset(struct osmo_fsm_inst *fi, uint32_t event, void *data) +static void ns2_st_reset(struct osmo_fsm_inst *fi, uint32_t event, void *data) { struct gprs_ns2_inst *nsi = ns_inst_from_fi(fi); struct gprs_ns2_vc_priv *priv = fi->priv; @@ -292,7 +292,7 @@ } } -static void gprs_ns2_st_blocked_onenter(struct osmo_fsm_inst *fi, uint32_t old_state) +static void ns2_st_blocked_onenter(struct osmo_fsm_inst *fi, uint32_t old_state) { struct gprs_ns2_vc_priv *priv = fi->priv; @@ -313,7 +313,7 @@ start_test_procedure(priv); } -static void gprs_ns2_st_blocked(struct osmo_fsm_inst *fi, uint32_t event, void *data) +static void ns2_st_blocked(struct osmo_fsm_inst *fi, uint32_t event, void *data) { struct gprs_ns2_vc_priv *priv = fi->priv; @@ -364,7 +364,7 @@ } } -static void gprs_ns2_st_unblocked_on_enter(struct osmo_fsm_inst *fi, uint32_t old_state) +static void ns2_st_unblocked_on_enter(struct osmo_fsm_inst *fi, uint32_t old_state) { struct gprs_ns2_vc_priv *priv = fi->priv; struct gprs_ns2_vc *nsvc = priv->nsvc; @@ -375,7 +375,7 @@ ns2_prim_status_ind(nse, nsvc, 0, NS_AFF_CAUSE_VC_RECOVERY); } -static void gprs_ns2_st_unblocked(struct osmo_fsm_inst *fi, uint32_t event, void *data) +static void ns2_st_unblocked(struct osmo_fsm_inst *fi, uint32_t event, void *data) { struct gprs_ns2_vc_priv *priv = fi->priv; @@ -392,7 +392,7 @@ } } -static void gprs_ns2_st_alive(struct osmo_fsm_inst *fi, uint32_t event, void *data) +static void ns2_st_alive(struct osmo_fsm_inst *fi, uint32_t event, void *data) { switch (event) { case GPRS_NS2_EV_RX_ALIVE_ACK: @@ -401,7 +401,7 @@ } } -static void gprs_ns2_st_alive_onenter(struct osmo_fsm_inst *fi, uint32_t old_state) +static void ns2_st_alive_onenter(struct osmo_fsm_inst *fi, uint32_t old_state) { struct gprs_ns2_vc_priv *priv = fi->priv; struct gprs_ns2_inst *nsi = ns_inst_from_fi(fi); @@ -416,17 +416,17 @@ ns2_nse_notify_unblocked(priv->nsvc, false); } -static void gprs_ns2_st_alive_onleave(struct osmo_fsm_inst *fi, uint32_t next_state) +static void ns2_st_alive_onleave(struct osmo_fsm_inst *fi, uint32_t next_state) { start_test_procedure(fi->priv); } -static const struct osmo_fsm_state gprs_ns2_vc_states[] = { +static const struct osmo_fsm_state ns2_vc_states[] = { [GPRS_NS2_ST_UNCONFIGURED] = { .in_event_mask = S(GPRS_NS2_EV_REQ_START), .out_state_mask = S(GPRS_NS2_ST_RESET) | S(GPRS_NS2_ST_ALIVE), .name = "UNCONFIGURED", - .action = gprs_ns2_st_unconfigured, + .action = ns2_st_unconfigured, }, [GPRS_NS2_ST_RESET] = { .in_event_mask = S(GPRS_NS2_EV_RX_RESET_ACK) | S(GPRS_NS2_EV_RX_RESET), @@ -434,8 +434,8 @@ S(GPRS_NS2_ST_BLOCKED) | S(GPRS_NS2_ST_UNCONFIGURED), .name = "RESET", - .action = gprs_ns2_st_reset, - .onenter = gprs_ns2_st_reset_onenter, + .action = ns2_st_reset, + .onenter = ns2_st_reset_onenter, }, [GPRS_NS2_ST_BLOCKED] = { .in_event_mask = S(GPRS_NS2_EV_RX_BLOCK) | S(GPRS_NS2_EV_RX_BLOCK_ACK) | @@ -445,8 +445,8 @@ S(GPRS_NS2_ST_BLOCKED) | S(GPRS_NS2_ST_UNCONFIGURED), .name = "BLOCKED", - .action = gprs_ns2_st_blocked, - .onenter = gprs_ns2_st_blocked_onenter, + .action = ns2_st_blocked, + .onenter = ns2_st_blocked_onenter, }, [GPRS_NS2_ST_UNBLOCKED] = { .in_event_mask = S(GPRS_NS2_EV_RX_BLOCK) | S(GPRS_NS2_EV_RX_UNBLOCK_ACK) | @@ -455,8 +455,8 @@ S(GPRS_NS2_ST_BLOCKED) | S(GPRS_NS2_ST_UNCONFIGURED), .name = "UNBLOCKED", - .action = gprs_ns2_st_unblocked, - .onenter = gprs_ns2_st_unblocked_on_enter, + .action = ns2_st_unblocked, + .onenter = ns2_st_unblocked_on_enter, }, /* ST_ALIVE is only used on VC without RESET/BLOCK */ @@ -466,13 +466,13 @@ S(GPRS_NS2_ST_UNBLOCKED) | S(GPRS_NS2_ST_UNCONFIGURED), .name = "ALIVE", - .action = gprs_ns2_st_alive, - .onenter = gprs_ns2_st_alive_onenter, - .onleave = gprs_ns2_st_alive_onleave, + .action = ns2_st_alive, + .onenter = ns2_st_alive_onenter, + .onleave = ns2_st_alive_onleave, }, }; -static int gprs_ns2_vc_fsm_timer_cb(struct osmo_fsm_inst *fi) +static int ns2_vc_fsm_timer_cb(struct osmo_fsm_inst *fi) { struct gprs_ns2_inst *nsi = ns_inst_from_fi(fi); struct gprs_ns2_vc_priv *priv = fi->priv; @@ -524,7 +524,7 @@ return 0; } -static void gprs_ns2_recv_unitdata(struct osmo_fsm_inst *fi, +static void ns2_recv_unitdata(struct osmo_fsm_inst *fi, struct msgb *msg) { struct gprs_ns2_vc_priv *priv = fi->priv; @@ -558,7 +558,7 @@ nsi->cb(&nsp.oph, nsi->cb_data); } -static void gprs_ns2_vc_fsm_allstate_action(struct osmo_fsm_inst *fi, +static void ns2_vc_fsm_allstate_action(struct osmo_fsm_inst *fi, uint32_t event, void *data) { @@ -577,7 +577,7 @@ osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_RESET, nsi->timeout[NS_TOUT_TNS_RESET], NS_TOUT_TNS_RESET); } /* pass the event down into FSM action */ - gprs_ns2_st_reset(fi, event, data); + ns2_st_reset(fi, event, data); break; case GPRS_NS2_EV_RX_ALIVE: switch (fi->state) { @@ -592,7 +592,7 @@ case GPRS_NS2_EV_RX_ALIVE_ACK: /* for VCs without RESET/BLOCK/UNBLOCK, the connections comes after ALIVE_ACK unblocked */ if (fi->state == GPRS_NS2_ST_ALIVE) - gprs_ns2_st_alive(fi, event, data); + ns2_st_alive(fi, event, data); else recv_test_procedure(fi); break; @@ -606,7 +606,7 @@ case GPRS_NS2_ST_BLOCKED: /* 7.2.1: the BLOCKED_ACK might be lost */ if (priv->accept_unitdata) { - gprs_ns2_recv_unitdata(fi, msg); + ns2_recv_unitdata(fi, msg); return; } @@ -617,7 +617,7 @@ /* ALIVE can receive UNITDATA if the ALIVE_ACK is lost */ case GPRS_NS2_ST_ALIVE: case GPRS_NS2_ST_UNBLOCKED: - gprs_ns2_recv_unitdata(fi, msg); + ns2_recv_unitdata(fi, msg); return; } @@ -648,7 +648,7 @@ } } -static void gprs_ns2_vc_fsm_clean(struct osmo_fsm_inst *fi, +static void ns2_vc_fsm_clean(struct osmo_fsm_inst *fi, enum osmo_fsm_term_cause cause) { struct gprs_ns2_vc_priv *priv = fi->priv; @@ -656,10 +656,10 @@ osmo_timer_del(&priv->alive.timer); } -static struct osmo_fsm gprs_ns2_vc_fsm = { +static struct osmo_fsm ns2_vc_fsm = { .name = "GPRS-NS2-VC", - .states = gprs_ns2_vc_states, - .num_states = ARRAY_SIZE(gprs_ns2_vc_states), + .states = ns2_vc_states, + .num_states = ARRAY_SIZE(ns2_vc_states), .allstate_event_mask = S(GPRS_NS2_EV_RX_UNITDATA) | S(GPRS_NS2_EV_RX_RESET) | S(GPRS_NS2_EV_RX_ALIVE) | @@ -667,11 +667,11 @@ S(GPRS_NS2_EV_REQ_FORCE_UNCONFIGURED) | S(GPRS_NS2_EV_REQ_OM_BLOCK) | S(GPRS_NS2_EV_REQ_OM_UNBLOCK), - .allstate_action = gprs_ns2_vc_fsm_allstate_action, - .cleanup = gprs_ns2_vc_fsm_clean, - .timer_cb = gprs_ns2_vc_fsm_timer_cb, + .allstate_action = ns2_vc_fsm_allstate_action, + .cleanup = ns2_vc_fsm_clean, + .timer_cb = ns2_vc_fsm_timer_cb, /* .log_subsys = DNS, "is not constant" */ - .event_names = gprs_ns2_vc_event_names, + .event_names = ns2_vc_event_names, .pre_term = NULL, .log_subsys = DLNS, }; @@ -690,7 +690,7 @@ struct osmo_fsm_inst *fi; struct gprs_ns2_vc_priv *priv; - fi = osmo_fsm_inst_alloc(&gprs_ns2_vc_fsm, nsvc, NULL, LOGL_DEBUG, id); + fi = osmo_fsm_inst_alloc(&ns2_vc_fsm, nsvc, NULL, LOGL_DEBUG, id); if (!fi) return fi; @@ -839,5 +839,5 @@ /* initialize osmo_ctx on main tread */ static __attribute__((constructor)) void on_dso_load_ctx(void) { - OSMO_ASSERT(osmo_fsm_register(&gprs_ns2_vc_fsm) == 0); + OSMO_ASSERT(osmo_fsm_register(&ns2_vc_fsm) == 0); } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22428 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I6ba0599e5a6d6fabf93851dd3ec7716f2ef2d840 Gerrit-Change-Number: 22428 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 19:07:35 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 25 Jan 2021 19:07:35 +0000 Subject: Change in libosmocore[master]: gprs_ns2: refactor: ensure all enums have GPRS_NS2_ In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, pespin, daniel, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22429 to look at the new patch set (#2). Change subject: gprs_ns2: refactor: ensure all enums have GPRS_NS2_ ...................................................................... gprs_ns2: refactor: ensure all enums have GPRS_NS2_ All public enum should have the prefix GPRS_NS2_. API change which must be synchronized with osmo-pcu, osmo-gbproxy, osmo-sgsn. Change-Id: I548ff12f7277cbb7e1a630a3dc02b738ce89be72 --- M include/osmocom/gprs/gprs_ns2.h M src/gb/gprs_bssgp2.c M src/gb/gprs_ns2.c M src/gb/gprs_ns2_fr.c M src/gb/gprs_ns2_sns.c M src/gb/gprs_ns2_udp.c M src/gb/gprs_ns2_vc_fsm.c M src/gb/gprs_ns2_vty.c M src/gb/gprs_ns2_vty2.c M tests/gb/gprs_ns2_test.c 10 files changed, 123 insertions(+), 123 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/29/22429/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22429 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I548ff12f7277cbb7e1a630a3dc02b738ce89be72 Gerrit-Change-Number: 22429 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 19:07:35 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 25 Jan 2021 19:07:35 +0000 Subject: Change in libosmocore[master]: gprs_ns2: drop gprs_ns2_vty, rename vty2 -> vty In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, pespin, daniel, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22430 to look at the new patch set (#2). Change subject: gprs_ns2: drop gprs_ns2_vty, rename vty2 -> vty ...................................................................... gprs_ns2: drop gprs_ns2_vty, rename vty2 -> vty Drop the vty(1) code and replace it with vty2. The vty(1) was only used as intermediate to not develop a vty while developing a new code base behind. Users of gprs_ns2_ has to use the new vty code. API change which must be synchronized with osmo-pcu, osmo-gbproxy, osmo-sgsn. Change-Id: I8c3f2afecc74b78f7f914f7dce166cbcb63444eb --- M include/osmocom/gprs/gprs_ns2.h M src/gb/Makefile.am M src/gb/gprs_ns2_vty.c D src/gb/gprs_ns2_vty2.c M src/gb/libosmogb.map M utils/osmo-ns-dummy.c 6 files changed, 1,309 insertions(+), 2,317 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/30/22430/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22430 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I8c3f2afecc74b78f7f914f7dce166cbcb63444eb Gerrit-Change-Number: 22430 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 19:11:34 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 25 Jan 2021 19:11:34 +0000 Subject: Change in libosmocore[master]: gprs_ns2: refactor: ensure all enums have GPRS_NS2_ In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, pespin, daniel, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22429 to look at the new patch set (#3). Change subject: gprs_ns2: refactor: ensure all enums have GPRS_NS2_ ...................................................................... gprs_ns2: refactor: ensure all enums have GPRS_NS2_ All public enum should have the prefix GPRS_NS2_. API change which must be synchronized with osmo-pcu, osmo-gbproxy, osmo-sgsn. Change-Id: I548ff12f7277cbb7e1a630a3dc02b738ce89be72 --- M include/osmocom/gprs/gprs_ns2.h M src/gb/gprs_bssgp2.c M src/gb/gprs_ns2.c M src/gb/gprs_ns2_fr.c M src/gb/gprs_ns2_sns.c M src/gb/gprs_ns2_udp.c M src/gb/gprs_ns2_vc_fsm.c M src/gb/gprs_ns2_vty.c M src/gb/gprs_ns2_vty2.c M tests/gb/gprs_ns2_test.c 10 files changed, 123 insertions(+), 123 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/29/22429/3 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22429 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I548ff12f7277cbb7e1a630a3dc02b738ce89be72 Gerrit-Change-Number: 22429 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 19:11:34 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 25 Jan 2021 19:11:34 +0000 Subject: Change in libosmocore[master]: gprs_ns2: drop gprs_ns2_vty, rename vty2 -> vty In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, pespin, daniel, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22430 to look at the new patch set (#3). Change subject: gprs_ns2: drop gprs_ns2_vty, rename vty2 -> vty ...................................................................... gprs_ns2: drop gprs_ns2_vty, rename vty2 -> vty Drop the vty(1) code and replace it with vty2. The vty(1) was only used as intermediate to not develop a vty while developing a new code base behind. Users of gprs_ns2_ has to use the new vty code. API change which must be synchronized with osmo-pcu, osmo-gbproxy, osmo-sgsn. Change-Id: I8c3f2afecc74b78f7f914f7dce166cbcb63444eb --- M include/osmocom/gprs/gprs_ns2.h M src/gb/Makefile.am M src/gb/gprs_ns2_vty.c D src/gb/gprs_ns2_vty2.c M src/gb/libosmogb.map M utils/osmo-ns-dummy.c 6 files changed, 1,309 insertions(+), 2,317 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/30/22430/3 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22430 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I8c3f2afecc74b78f7f914f7dce166cbcb63444eb Gerrit-Change-Number: 22430 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 19:24:48 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 25 Jan 2021 19:24:48 +0000 Subject: Change in libosmocore[master]: gprs_ns2: refactor: ensure all enums have GPRS_NS2_ In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, pespin, daniel, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22429 to look at the new patch set (#4). Change subject: gprs_ns2: refactor: ensure all enums have GPRS_NS2_ ...................................................................... gprs_ns2: refactor: ensure all enums have GPRS_NS2_ All public enum should have the prefix GPRS_NS2_. API change which must be synchronized with osmo-pcu, osmo-gbproxy, osmo-sgsn. Change-Id: I548ff12f7277cbb7e1a630a3dc02b738ce89be72 --- M include/osmocom/gprs/gprs_ns2.h M src/gb/gprs_bssgp2.c M src/gb/gprs_ns2.c M src/gb/gprs_ns2_fr.c M src/gb/gprs_ns2_sns.c M src/gb/gprs_ns2_udp.c M src/gb/gprs_ns2_vc_fsm.c M src/gb/gprs_ns2_vty.c M src/gb/gprs_ns2_vty2.c M tests/gb/gprs_ns2_test.c 10 files changed, 123 insertions(+), 123 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/29/22429/4 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22429 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I548ff12f7277cbb7e1a630a3dc02b738ce89be72 Gerrit-Change-Number: 22429 Gerrit-PatchSet: 4 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 19:25:37 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 25 Jan 2021 19:25:37 +0000 Subject: Change in libosmocore[master]: gprs_ns2: refactor: ensure all enums have GPRS_NS2_ In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, pespin, daniel, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22429 to look at the new patch set (#5). Change subject: gprs_ns2: refactor: ensure all enums have GPRS_NS2_ ...................................................................... gprs_ns2: refactor: ensure all enums have GPRS_NS2_ All public enum should have the prefix GPRS_NS2_. API change which must be synchronized with osmo-pcu, osmo-gbproxy, osmo-sgsn. Change-Id: I548ff12f7277cbb7e1a630a3dc02b738ce89be72 --- M include/osmocom/gprs/gprs_ns2.h M src/gb/gprs_bssgp2.c M src/gb/gprs_ns2.c M src/gb/gprs_ns2_fr.c M src/gb/gprs_ns2_sns.c M src/gb/gprs_ns2_udp.c M src/gb/gprs_ns2_vc_fsm.c M src/gb/gprs_ns2_vty.c M src/gb/gprs_ns2_vty2.c M tests/gb/gprs_ns2_test.c 10 files changed, 123 insertions(+), 123 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/29/22429/5 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22429 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I548ff12f7277cbb7e1a630a3dc02b738ce89be72 Gerrit-Change-Number: 22429 Gerrit-PatchSet: 5 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 21:37:34 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 25 Jan 2021 21:37:34 +0000 Subject: Change in libosmocore[master]: gprs_ns2: drop gprs_ns2_vty, rename vty2 -> vty In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22430 ) Change subject: gprs_ns2: drop gprs_ns2_vty, rename vty2 -> vty ...................................................................... Patch Set 5: Code-Review+1 Not sure if it's big and fat enough -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22430 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I8c3f2afecc74b78f7f914f7dce166cbcb63444eb Gerrit-Change-Number: 22430 Gerrit-PatchSet: 5 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 25 Jan 2021 21:37:34 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 21:37:43 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 25 Jan 2021 21:37:43 +0000 Subject: Change in libosmocore[master]: gprs_ns2: refactor: ensure all enums have GPRS_NS2_ In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22429 ) Change subject: gprs_ns2: refactor: ensure all enums have GPRS_NS2_ ...................................................................... Patch Set 5: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22429 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I548ff12f7277cbb7e1a630a3dc02b738ce89be72 Gerrit-Change-Number: 22429 Gerrit-PatchSet: 5 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 25 Jan 2021 21:37:43 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 22:04:34 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 25 Jan 2021 22:04:34 +0000 Subject: Change in libosmocore[master]: gprs_bssgp_rim: add functions to convert a RIM-RI to a string References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22438 ) Change subject: gprs_bssgp_rim: add functions to convert a RIM-RI to a string ...................................................................... gprs_bssgp_rim: add functions to convert a RIM-RI to a string RIM routing formation structs can contain different variants of address identifiers, so it is difficult for an API user to pick the _name() function to generate a human readable string. Lets add bssgp_rim_ri_name() and bssgp_rim_ri_name_buf() to make printing a routing identifier easier. Change-Id: Idca6bdccffe663aea71a0183ca3ea5bb5b59e702 Related: SYS#5103 --- M include/osmocom/gprs/gprs_bssgp_rim.h M src/gb/gprs_bssgp_rim.c M src/gb/libosmogb.map 3 files changed, 64 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/38/22438/1 diff --git a/include/osmocom/gprs/gprs_bssgp_rim.h b/include/osmocom/gprs/gprs_bssgp_rim.h index 0810c8e..432805c 100644 --- a/include/osmocom/gprs/gprs_bssgp_rim.h +++ b/include/osmocom/gprs/gprs_bssgp_rim.h @@ -64,6 +64,8 @@ * address type (discr) of variable length. */ #define BSSGP_RIM_ROUTING_INFO_MAXLEN 14 +char *bssgp_rim_ri_name_buf(char *buf, size_t buf_len, const struct bssgp_rim_routing_info *ri); +char *bssgp_rim_ri_name(const struct bssgp_rim_routing_info *ri); int bssgp_parse_rim_ri(struct bssgp_rim_routing_info *ri, const uint8_t *buf, unsigned int len); int bssgp_create_rim_ri(uint8_t *buf, const struct bssgp_rim_routing_info *ri); diff --git a/src/gb/gprs_bssgp_rim.c b/src/gb/gprs_bssgp_rim.c index 844268a..d89e526 100644 --- a/src/gb/gprs_bssgp_rim.c +++ b/src/gb/gprs_bssgp_rim.c @@ -146,6 +146,66 @@ return len; } +/*! Encode a RIM Routing information into a human readable string. + * \param[buf] user provided string buffer to store the resulting string. + * \param[buf_len] maximum length of string buffer. + * \param[in] ri user provided input data struct. + * \returns pointer to the beginning of the resulting string stored in string buffer. */ +char *bssgp_rim_ri_name_buf(char *buf, size_t buf_len, const struct bssgp_rim_routing_info *ri) +{ + static __thread char rai_buf[32]; + static __thread char plmn_buf[16]; + static __thread char en_bid_buf[16]; + struct osmo_plmn_id plmn; + struct osmo_routing_area_id rai; + + if (!ri) + return NULL; + + switch (ri->discr) { + case BSSGP_RIM_ROUTING_INFO_GERAN: + rai.rac = ri->geran.raid.rac; + rai.lac.lac = ri->geran.raid.lac; + rai.lac.plmn.mcc = ri->geran.raid.mcc; + rai.lac.plmn.mnc_3_digits = ri->geran.raid.mnc_3_digits; + rai.lac.plmn.mnc = ri->geran.raid.mnc; + snprintf(buf, buf_len, "%s-%s-%u", bssgp_rim_routing_info_discr_str(ri->discr), + osmo_rai_name2_buf(rai_buf, sizeof(rai_buf), &rai), ri->geran.cid); + break; + case BSSGP_RIM_ROUTING_INFO_UTRAN: + rai.rac = ri->utran.raid.rac; + rai.lac.lac = ri->utran.raid.lac; + rai.lac.plmn.mcc = ri->utran.raid.mcc; + rai.lac.plmn.mnc_3_digits = ri->utran.raid.mnc_3_digits; + rai.lac.plmn.mnc = ri->utran.raid.mnc; + snprintf(buf, buf_len, "%s-%s-%u", bssgp_rim_routing_info_discr_str(ri->discr), + osmo_rai_name2_buf(rai_buf, sizeof(rai_buf), &rai), ri->utran.rncid); + break; + case BSSGP_RIM_ROUTING_INFO_EUTRAN: + plmn.mcc = ri->eutran.tai.mcc; + plmn.mnc = ri->eutran.tai.mnc; + plmn.mnc_3_digits = ri->eutran.tai.mnc_3_digits; + snprintf(buf, buf_len, "%s-%s-%u-%s", bssgp_rim_routing_info_discr_str(ri->discr), + osmo_plmn_name_buf(plmn_buf, sizeof(plmn_buf), &plmn), ri->eutran.tai.tac, + osmo_hexdump_buf(en_bid_buf, sizeof(en_bid_buf), ri->eutran.global_enb_id, + ri->eutran.global_enb_id_len, "", false)); + break; + default: + snprintf(buf, buf_len, "invalid"); + } + + return buf; +} + +/*! Encode a RIM Routing information into a human readable string. + * \param[in] ri user provided input data struct. + * \returns pointer to the resulting string. */ +char *bssgp_rim_ri_name(const struct bssgp_rim_routing_info *ri) +{ + static __thread char rim_ri_buf[64]; + return bssgp_rim_ri_name_buf(rim_ri_buf, sizeof(rim_ri_buf), ri); +} + /*! Decode a RAN Information Request Application Container for NACC (3GPP TS 48.018, section 11.3.63.1.1). * \param[out] user provided memory for decoded data struct. * \param[in] buf user provided memory with the encoded value data of the IE. diff --git a/src/gb/libosmogb.map b/src/gb/libosmogb.map index b4d7fdb..c6bbc78 100644 --- a/src/gb/libosmogb.map +++ b/src/gb/libosmogb.map @@ -35,6 +35,8 @@ bssgp_parse_rim_ri; bssgp_ran_inf_app_id_strs; bssgp_rim_routing_info_discr_strs; +bssgp_rim_ri_name_buf; +bssgp_rim_ri_name; bssgp_set_bssgp_callback; bssgp_tx_bvc_block; bssgp_tx_bvc_reset; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22438 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Idca6bdccffe663aea71a0183ca3ea5bb5b59e702 Gerrit-Change-Number: 22438 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 22:04:35 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 25 Jan 2021 22:04:35 +0000 Subject: Change in libosmocore[master]: gprs_bssgp_rim: cosmetic: connect routing identifier strings with "-" References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22439 ) Change subject: gprs_bssgp_rim: cosmetic: connect routing identifier strings with "-" ...................................................................... gprs_bssgp_rim: cosmetic: connect routing identifier strings with "-" The bssgp_rim_routing_info_discr_strs string list contains whitespaces, when the whitespaces are replaced with a "-" the log output looks better Change-Id: I26facd3dc160603da89dcd787cccf78b19a20f02 Related: SYS#5103 --- M src/gb/gprs_bssgp_rim.c 1 file changed, 3 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/39/22439/1 diff --git a/src/gb/gprs_bssgp_rim.c b/src/gb/gprs_bssgp_rim.c index d89e526..45547c0 100644 --- a/src/gb/gprs_bssgp_rim.c +++ b/src/gb/gprs_bssgp_rim.c @@ -42,9 +42,9 @@ #define REP_CELL_ID_LEN 8 const struct value_string bssgp_rim_routing_info_discr_strs[] = { - { BSSGP_RIM_ROUTING_INFO_GERAN, "GERAN cell" }, - { BSSGP_RIM_ROUTING_INFO_UTRAN, "UTRAN RNC" }, - { BSSGP_RIM_ROUTING_INFO_EUTRAN, "E-UTRAN eNodeB/HeNB" }, + { BSSGP_RIM_ROUTING_INFO_GERAN, "GERAN-cell" }, + { BSSGP_RIM_ROUTING_INFO_UTRAN, "UTRAN-RNC" }, + { BSSGP_RIM_ROUTING_INFO_EUTRAN, "E-UTRAN-eNodeB/HeNB" }, { 0, NULL } }; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22439 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I26facd3dc160603da89dcd787cccf78b19a20f02 Gerrit-Change-Number: 22439 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 22:04:36 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 25 Jan 2021 22:04:36 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: log source and destination RIM routing information References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22440 ) Change subject: gprs_bssgp: log source and destination RIM routing information ...................................................................... gprs_bssgp: log source and destination RIM routing information Whenever a RIM PDU is received, log to which RIM routing information (address) it is going to and where it is comming from. Change-Id: Ia08d3b162a4f6257cccaa7f0764fa7ea498355ef Related: SYS#5103 --- M src/gb/gprs_bssgp.c M src/gb/gprs_bssgp_util.c 2 files changed, 12 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/40/22440/1 diff --git a/src/gb/gprs_bssgp.c b/src/gb/gprs_bssgp.c index 6fdacce..1fb32f7 100644 --- a/src/gb/gprs_bssgp.c +++ b/src/gb/gprs_bssgp.c @@ -653,8 +653,8 @@ uint16_t nsei = msgb_nsei(msg); struct bssgp_normal_hdr *bgph = (struct bssgp_normal_hdr *)msgb_bssgph(msg); enum bssgp_prim prim; - - DEBUGP(DLBSSGP, "BSSGP BVCI=%u Rx RIM-PDU:%s\n", bvci, bssgp_pdu_str(bgph->pdu_type)); + char routing_info_src_str[64]; + char routing_info_dest_str[64]; /* Specify PRIM type based on the RIM PDU */ switch (bgph->pdu_type) { @@ -677,6 +677,10 @@ nmp.tp = tp; if (bssgp_parse_rim_pdu(&nmp.u.rim_pdu, msg) < 0) return bssgp_tx_status(BSSGP_CAUSE_MISSING_MAND_IE, NULL, msg); + bssgp_rim_ri_name_buf(routing_info_src_str, sizeof(routing_info_src_str), &nmp.u.rim_pdu.routing_info_src); + bssgp_rim_ri_name_buf(routing_info_dest_str, sizeof(routing_info_dest_str), &nmp.u.rim_pdu.routing_info_dest); + DEBUGP(DLBSSGP, "BSSGP BVCI=%u Rx RIM-PDU:%s, src=%s, dest=%s\n", + bvci, bssgp_pdu_str(bgph->pdu_type), routing_info_src_str, routing_info_dest_str); osmo_prim_init(&nmp.oph, SAP_BSSGP_RIM, prim, PRIM_OP_INDICATION, msg); bssgp_prim_cb(&nmp.oph, NULL); diff --git a/src/gb/gprs_bssgp_util.c b/src/gb/gprs_bssgp_util.c index d93c9df..94fb434 100644 --- a/src/gb/gprs_bssgp_util.c +++ b/src/gb/gprs_bssgp_util.c @@ -594,6 +594,8 @@ { struct msgb *msg; struct bssgp_normal_hdr *bgph; + char routing_info_src_str[64]; + char routing_info_dest_str[64]; /* Encode RIM PDU into mesage buffer */ msg = bssgp_encode_rim_pdu(pdu); @@ -607,7 +609,10 @@ msgb_bvci(msg) = 0; /* Signalling */ bgph = (struct bssgp_normal_hdr *)msgb_bssgph(msg); - DEBUGP(DLBSSGP, "BSSGP BVCI=0 Tx RIM-PDU:%s\n", bssgp_pdu_str(bgph->pdu_type)); + bssgp_rim_ri_name_buf(routing_info_src_str, sizeof(routing_info_src_str), &pdu->routing_info_src); + bssgp_rim_ri_name_buf(routing_info_dest_str, sizeof(routing_info_dest_str), &pdu->routing_info_dest); + DEBUGP(DLBSSGP, "BSSGP BVCI=0 Tx RIM-PDU:%s, src=%s, dest=%s\n", + bssgp_pdu_str(bgph->pdu_type), routing_info_src_str, routing_info_dest_str); return bssgp_ns_send(bssgp_ns_send_data, msg); } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22440 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia08d3b162a4f6257cccaa7f0764fa7ea498355ef Gerrit-Change-Number: 22440 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 22:19:09 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 25 Jan 2021 22:19:09 +0000 Subject: Change in osmo-sgsn[master]: sgsn_rim: Add routing for (GERAN) BSSGP RIM messages In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22110 to look at the new patch set (#5). Change subject: sgsn_rim: Add routing for (GERAN) BSSGP RIM messages ...................................................................... sgsn_rim: Add routing for (GERAN) BSSGP RIM messages The SGSN currently does not forward BSSGP RIM messages. Related: SYS#5103 Depends: libosmocore Icd667f41d5735de56cd9fb257670337c679dd258 Change-Id: I6fde8ab8955660b48000ca1b650cfc7c7b2e24ba --- M include/osmocom/sgsn/Makefile.am M include/osmocom/sgsn/debug.h A include/osmocom/sgsn/sgsn_rim.h M src/sgsn/Makefile.am M src/sgsn/sgsn_main.c A src/sgsn/sgsn_rim.c 6 files changed, 81 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/10/22110/5 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22110 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I6fde8ab8955660b48000ca1b650cfc7c7b2e24ba Gerrit-Change-Number: 22110 Gerrit-PatchSet: 5 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 22:20:08 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 25 Jan 2021 22:20:08 +0000 Subject: Change in osmo-sgsn[master]: sgsn_rim: Add routing for (GERAN) BSSGP RIM messages In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22110 ) Change subject: sgsn_rim: Add routing for (GERAN) BSSGP RIM messages ...................................................................... Patch Set 5: (2 comments) https://gerrit.osmocom.org/c/osmo-sgsn/+/22110/4/src/sgsn/sgsn_rim.c File src/sgsn/sgsn_rim.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/22110/4/src/sgsn/sgsn_rim.c at 49 PS4, Line 49: retu > shouldn't we return a RIM-ERROR or RIM-APPLICATION-ERROR here? IMHO RIM is really one layer above/i [?] I think this is correct (see spec ref below). Its probably a bit odd to say the address is invalid because we do not support GERAN, but I couldn't find a better cause code. Also I think that RIM-ERROR or RIM-APPLICATION-ERROR are used by the application to communicate errors. https://gerrit.osmocom.org/c/osmo-sgsn/+/22110/4/src/sgsn/sgsn_rim.c at 54 PS4, Line 54: retu > likewise here. [?] This should be correct as it is, done on BSSGP level. The spec says: 3GPP TS 48.018 8c.3.1.3 If an SGSN receives from a BSS a RIM PDU with an invalid destination address, the PDU shall be discarded and a STATUS PDU with the cause value set to "Unknown Destination address" shall be sent back to the BSS. -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22110 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I6fde8ab8955660b48000ca1b650cfc7c7b2e24ba Gerrit-Change-Number: 22110 Gerrit-PatchSet: 5 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Mon, 25 Jan 2021 22:20:08 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: laforge Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jan 25 22:54:37 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 25 Jan 2021 22:54:37 +0000 Subject: Change in osmo-pcu[master]: gprs_bssgp_rim: add serving BSS NACC application In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-pcu/+/22368 to look at the new patch set (#3). Change subject: gprs_bssgp_rim: add serving BSS NACC application ...................................................................... gprs_bssgp_rim: add serving BSS NACC application Answer an incoming RAN INFORMATION REQUEST RIM PDU with RAN INFORMATION PDU that contains system information type 1, 3 and 13 Depends: osmo-bts I1726c9e29cc59c499dfabbdaf63c0f1a09984764 Change-Id: Id72118120c14984d2fb1b918b41fac4868150d41 Related: SYS#5103 --- M TODO-RELEASE M include/osmocom/pcu/pcuif_proto.h M src/bts.h M src/gprs_bssgp_rim.c M src/pcu_l1_if.cpp 5 files changed, 97 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/68/22368/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22368 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Id72118120c14984d2fb1b918b41fac4868150d41 Gerrit-Change-Number: 22368 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Tue Jan 26 01:38:09 2021 From: admin at opensuse.org (OBS Notification) Date: Tue, 26 Jan 2021 01:38:09 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <600f7290b4e7d_5a6e2b0de994e5e035557@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/xUbuntu_20.04/x86_64 Package network:osmocom:nightly/simtrace2 failed to build in xUbuntu_20.04/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 116s] [COMPILING libboard/qmod/source/wwan_perst.c] [ 116s] [COMPILING libboard/qmod/source/card_pres.c] [ 116s] [COMPILING libboard/qmod/source/wwan_led.c] [ 116s] [COMPILING libboard/qmod/source/i2c.c] [ 117s] [COMPILING libboard/qmod/source/board_qmod.c] [ 117s] [COMPILING apps/dfu/main.c] [ 117s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 117s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 117s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 117s] Memory region Used Size Region Size %age Used [ 117s] rom: 16588 B 16 KB 101.25% [ 117s] ram: 11672 B 48 KB 23.75/usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 117s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 204 bytes [ 117s] collect2: error: ld returned 1 exit status [ 117s] % [ 117s] make[2]: *** [Makefile:234: flash] Error 1 [ 117s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 117s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 117s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 117s] dh_auto_build: error: make -j1 returned exit code 2 [ 117s] make: *** [debian/rules:16: build] Error 25 [ 117s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 117s] ### VM INTERACTION START ### [ 120s] [ 110.057419] sysrq: Power Off [ 120s] [ 110.060648] reboot: Power down [ 120s] ### VM INTERACTION END ### [ 120s] [ 120s] sheep86 failed "build simtrace2_0.7.0.69.aadd.dsc" at Tue Jan 26 01:38:04 UTC 2021. [ 120s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Jan 26 01:42:27 2021 From: admin at opensuse.org (OBS Notification) Date: Tue, 26 Jan 2021 01:42:27 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.10/x86_64 In-Reply-To: References: Message-ID: <600f739dafb0b_5a6e2b0de994e5e03562a7@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/xUbuntu_20.10/x86_64 Package network:osmocom:nightly/simtrace2 failed to build in xUbuntu_20.10/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 174s] [COMPILING apps/dfu/main.c] [ 174s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 174s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 174s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 175s] Memory region Used Size Region Size %age Used [ 175s] rom: 16580 B 16 KB 101.20% [ 175s] ram: 11672 B 48 KB 23.75/usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 175s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 175s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 175s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 175s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 175s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 175s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 196 bytes [ 175s] collect2: error: ld returned 1 exit status [ 175s] % [ 175s] make[2]: *** [Makefile:234: flash] Error 1 [ 175s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 175s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 175s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 175s] dh_auto_build: error: make -j1 returned exit code 2 [ 175s] make: *** [debian/rules:16: build] Error 25 [ 175s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 175s] ### VM INTERACTION START ### [ 178s] [ 164.611173] sysrq: Power Off [ 178s] [ 164.616039] reboot: Power down [ 178s] ### VM INTERACTION END ### [ 178s] [ 178s] lamb74 failed "build simtrace2_0.7.0.69.aadd.dsc" at Tue Jan 26 01:42:13 UTC 2021. [ 178s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Tue Jan 26 10:51:03 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 26 Jan 2021 10:51:03 +0000 Subject: Change in libosmocore[master]: gprs_ns2: refactor: ensure all enums have GPRS_NS2_ In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22429 ) Change subject: gprs_ns2: refactor: ensure all enums have GPRS_NS2_ ...................................................................... Patch Set 5: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22429 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I548ff12f7277cbb7e1a630a3dc02b738ce89be72 Gerrit-Change-Number: 22429 Gerrit-PatchSet: 5 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 26 Jan 2021 10:51:03 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 10:53:52 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 26 Jan 2021 10:53:52 +0000 Subject: Change in libosmocore[master]: gprs_bssgp_rim: add functions to convert a RIM-RI to a string In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22438 ) Change subject: gprs_bssgp_rim: add functions to convert a RIM-RI to a string ...................................................................... Patch Set 1: Code-Review-1 (2 comments) https://gerrit.osmocom.org/c/libosmocore/+/22438/1/src/gb/gprs_bssgp_rim.c File src/gb/gprs_bssgp_rim.c: https://gerrit.osmocom.org/c/libosmocore/+/22438/1/src/gb/gprs_bssgp_rim.c at 156 PS1, Line 156: static __thread char rai_buf[32]; why don't you allocate these in the stack? https://gerrit.osmocom.org/c/libosmocore/+/22438/1/src/gb/gprs_bssgp_rim.c at 173 PS1, Line 173: osmo_rai_name2_buf(rai_buf, sizeof(rai_buf), &rai), ri->geran.cid); There's osmo_cgi_ps_name family of APIs for this -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22438 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Idca6bdccffe663aea71a0183ca3ea5bb5b59e702 Gerrit-Change-Number: 22438 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 26 Jan 2021 10:53:52 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 10:55:11 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 26 Jan 2021 10:55:11 +0000 Subject: Change in libosmocore[master]: gprs_bssgp_rim: add functions to convert a RIM-RI to a string In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22438 ) Change subject: gprs_bssgp_rim: add functions to convert a RIM-RI to a string ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/22438/1/src/gb/gprs_bssgp_rim.c File src/gb/gprs_bssgp_rim.c: https://gerrit.osmocom.org/c/libosmocore/+/22438/1/src/gb/gprs_bssgp_rim.c at 158 PS1, Line 158: static __thread char en_bid_buf[16]; You have 2 buffers but you use up to 2 only in each branch, so you can declare only 2 buffers. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22438 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Idca6bdccffe663aea71a0183ca3ea5bb5b59e702 Gerrit-Change-Number: 22438 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 26 Jan 2021 10:55:11 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 10:55:45 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 26 Jan 2021 10:55:45 +0000 Subject: Change in libosmocore[master]: gprs_bssgp_rim: cosmetic: connect routing identifier strings with "-" In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22439 ) Change subject: gprs_bssgp_rim: cosmetic: connect routing identifier strings with "-" ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22439 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I26facd3dc160603da89dcd787cccf78b19a20f02 Gerrit-Change-Number: 22439 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 26 Jan 2021 10:55:45 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 10:57:27 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 26 Jan 2021 10:57:27 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: log source and destination RIM routing information In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22440 ) Change subject: gprs_bssgp: log source and destination RIM routing information ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/22440/1/src/gb/gprs_bssgp.c File src/gb/gprs_bssgp.c: https://gerrit.osmocom.org/c/libosmocore/+/22440/1/src/gb/gprs_bssgp.c at 680 PS1, Line 680: bssgp_rim_ri_name_buf(routing_info_src_str, sizeof(routing_info_src_str), &nmp.u.rim_pdu.routing_info_src); Better move this inside the DEBUGP params, I think then they don't get executed if loglevel is > DEBUG. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22440 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia08d3b162a4f6257cccaa7f0764fa7ea498355ef Gerrit-Change-Number: 22440 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 26 Jan 2021 10:57:27 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 11:14:07 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 26 Jan 2021 11:14:07 +0000 Subject: Change in osmo-pcu[master]: Introduce NACC support In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22385 ) Change subject: Introduce NACC support ...................................................................... Patch Set 4: (1 comment) https://gerrit.osmocom.org/c/osmo-pcu/+/22385/4/src/gprs_bssgp_rim.c File src/gprs_bssgp_rim.c: https://gerrit.osmocom.org/c/osmo-pcu/+/22385/4/src/gprs_bssgp_rim.c at 126 PS4, Line 126: val.si_len = 0; > The serving BSS may also respond with no system information. num_si is then set to 0. [?] Thanks for the point. I think it's already being handled in the current code version though right? -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22385 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Id35f40d05f3e081f32fddbf1fa34cb338db452ca Gerrit-Change-Number: 22385 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-CC: laforge Gerrit-Comment-Date: Tue, 26 Jan 2021 11:14:07 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: dexter Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 11:16:41 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 26 Jan 2021 11:16:41 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Ignore dummy rlcmac packets in f_ms_rx_pkt_ass_pacch In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22313 ) Change subject: pcu: Ignore dummy rlcmac packets in f_ms_rx_pkt_ass_pacch ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22313/2/pcu/GPRS_Components.ttcn File pcu/GPRS_Components.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22313/2/pcu/GPRS_Components.ttcn at 526 PS2, Line 526: BTS.send(ts_PCUIF_RTS_REQ(nr.bts_nr, nr.trx_nr, nr.ts_nr, Why is it necessary to send this again, isn't it enough to send it once in f_ms_rx_pkt_ass_pacch? -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22313 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I0a10d3a7383d8534e9263864b4130a96392e6198 Gerrit-Change-Number: 22313 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-CC: fixeria Gerrit-Comment-Date: Tue, 26 Jan 2021 11:16:41 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 11:32:39 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 26 Jan 2021 11:32:39 +0000 Subject: Change in osmo-pcu[master]: sched: Check if egprs is enabled in TBF rather than MS being egprs ca... In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22419 ) Change subject: sched: Check if egprs is enabled in TBF rather than MS being egprs capable ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22419 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I49720fb3a69ca972cd1973de937ac8ee77615431 Gerrit-Change-Number: 22419 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 26 Jan 2021 11:32:39 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 11:37:23 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 26 Jan 2021 11:37:23 +0000 Subject: Change in osmo-pcu[master]: tbf: Drop always-true condition checking for MS In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22420 ) Change subject: tbf: Drop always-true condition checking for MS ...................................................................... Patch Set 4: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-pcu/+/22420/4//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-pcu/+/22420/4//COMMIT_MSG at 13 PS4, Line 13: an MS a TBF -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22420 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: If292a53a09a64664031e756bff4735b9c6ee8651 Gerrit-Change-Number: 22420 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 26 Jan 2021 11:37:23 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 11:38:00 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 26 Jan 2021 11:38:00 +0000 Subject: Change in osmo-pcu[master]: encoding: fix typos in comment In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22421 ) Change subject: encoding: fix typos in comment ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22421 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I0867935ad08d6e49c62e061742d3d76eeac35844 Gerrit-Change-Number: 22421 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 26 Jan 2021 11:38:00 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 11:40:47 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 26 Jan 2021 11:40:47 +0000 Subject: Change in osmo-pcu[master]: ms: Set proper initial MCS values setting mode EGPRS_GMSK In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22433 ) Change subject: ms: Set proper initial MCS values setting mode EGPRS_GMSK ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22433 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I94cbf0c120fd37deb2dfd077d35b3811c7da0675 Gerrit-Change-Number: 22433 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 26 Jan 2021 11:40:47 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 11:45:53 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 26 Jan 2021 11:45:53 +0000 Subject: Change in osmo-pcu[master]: ms: Properly handle EGPRS_GMSK mode in ms_max_cs_dl/ul() In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22434 ) Change subject: ms: Properly handle EGPRS_GMSK mode in ms_max_cs_dl/ul() ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22434 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ied3e02a12145112fafa12282ed7aefa5b0fa6eb6 Gerrit-Change-Number: 22434 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 26 Jan 2021 11:45:53 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 12:04:38 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 26 Jan 2021 12:04:38 +0000 Subject: Change in osmo-pcu[master]: Fix Dl EGPRS data blocks being generated occasionally on GPRS TBFs In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22435 ) Change subject: Fix Dl EGPRS data blocks being generated occasionally on GPRS TBFs ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-pcu/+/22435/1/src/tbf_dl.cpp File src/tbf_dl.cpp: https://gerrit.osmocom.org/c/osmo-pcu/+/22435/1/src/tbf_dl.cpp at 537 PS1, Line 537: forced The meaning of "forced" changed here so make it more explicit like "forced data len"? Also it seems like an unrelated change, maybe put it into a separate commit that explains why you changed it? -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22435 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ic0276ce045660713129f0c72f1158a3321c5977f Gerrit-Change-Number: 22435 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 26 Jan 2021 12:04:38 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 12:08:27 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 26 Jan 2021 12:08:27 +0000 Subject: Change in libosmocore[master]: gprs_bssgp_prim.h: Add missing includes References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22441 ) Change subject: gprs_bssgp_prim.h: Add missing includes ...................................................................... gprs_bssgp_prim.h: Add missing includes Includes for struct gprs_ra_id and osmo_eutran_tai were missing. Change-Id: I1c068b6841561003d4d7722daa6c2abb21363dda --- M include/osmocom/gprs/gprs_bssgp_rim.h 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/41/22441/1 diff --git a/include/osmocom/gprs/gprs_bssgp_rim.h b/include/osmocom/gprs/gprs_bssgp_rim.h index 0810c8e..55341de 100644 --- a/include/osmocom/gprs/gprs_bssgp_rim.h +++ b/include/osmocom/gprs/gprs_bssgp_rim.h @@ -25,7 +25,9 @@ #pragma once +#include #include +#include enum bssgp_rim_routing_info_discr { BSSGP_RIM_ROUTING_INFO_GERAN, -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22441 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I1c068b6841561003d4d7722daa6c2abb21363dda Gerrit-Change-Number: 22441 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 12:11:02 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 26 Jan 2021 12:11:02 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Ignore dummy rlcmac packets in f_ms_rx_pkt_ass_pacch In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22313 ) Change subject: pcu: Ignore dummy rlcmac packets in f_ms_rx_pkt_ass_pacch ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22313/2/pcu/GPRS_Components.ttcn File pcu/GPRS_Components.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22313/2/pcu/GPRS_Components.ttcn at 526 PS2, Line 526: BTS.send(ts_PCUIF_RTS_REQ(nr.bts_nr, nr.trx_nr, nr.ts_nr, > Why is it necessary to send this again, isn't it enough to send it once in f_ms_rx_pkt_ass_pacch? No, you basically poll for a message, PCU sends one (dummy block in this case), then you need to pool again to get next message. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22313 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I0a10d3a7383d8534e9263864b4130a96392e6198 Gerrit-Change-Number: 22313 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-CC: fixeria Gerrit-Comment-Date: Tue, 26 Jan 2021 12:11:02 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: osmith Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 12:19:03 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 26 Jan 2021 12:19:03 +0000 Subject: Change in osmo-pcu[master]: Fix Dl EGPRS data blocks being generated occasionally on GPRS TBFs In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22435 ) Change subject: Fix Dl EGPRS data blocks being generated occasionally on GPRS TBFs ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-pcu/+/22435/1/src/tbf_dl.cpp File src/tbf_dl.cpp: https://gerrit.osmocom.org/c/osmo-pcu/+/22435/1/src/tbf_dl.cpp at 537 PS1, Line 537: forced > The meaning of "forced" changed here so make it more explicit like "forced data len"? [?] It's not really unrelated, I had to change it also because I was changing and fixing how the CS/MCS requirements are passed, it doesn't make sense moving it to another commit imho. It's true that the condition in which this "forced" flag is printed changed a bit, but not the meaning of it. The important thing here is to remark that the CS/MCS to use was forced rather than its length. I'm simply reusing the fact that this variable is != -1 only when that happened (see start of the function). The change in conditions for this variable to be changed is that it's no longer printed in the case where the CS/MCS was downgraded to meet scheduler requirements, but with the extension I think it's fine not printing force there, and only when we force the CS because it's the 2nd BSN encapsulated inside the same RLCMAC block. -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22435 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ic0276ce045660713129f0c72f1158a3321c5977f Gerrit-Change-Number: 22435 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 26 Jan 2021 12:19:03 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: osmith Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 12:19:22 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 26 Jan 2021 12:19:22 +0000 Subject: Change in osmo-pcu[master]: tbf: Drop always-true condition checking for MS In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22420 ) Change subject: tbf: Drop always-true condition checking for MS ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22420 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: If292a53a09a64664031e756bff4735b9c6ee8651 Gerrit-Change-Number: 22420 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 26 Jan 2021 12:19:22 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 12:19:26 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 26 Jan 2021 12:19:26 +0000 Subject: Change in osmo-pcu[master]: ms: Set proper initial MCS values setting mode EGPRS_GMSK In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22433 ) Change subject: ms: Set proper initial MCS values setting mode EGPRS_GMSK ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22433 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I94cbf0c120fd37deb2dfd077d35b3811c7da0675 Gerrit-Change-Number: 22433 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 26 Jan 2021 12:19:26 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 12:19:29 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 26 Jan 2021 12:19:29 +0000 Subject: Change in osmo-pcu[master]: ms: Properly handle EGPRS_GMSK mode in ms_max_cs_dl/ul() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22434 ) Change subject: ms: Properly handle EGPRS_GMSK mode in ms_max_cs_dl/ul() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22434 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ied3e02a12145112fafa12282ed7aefa5b0fa6eb6 Gerrit-Change-Number: 22434 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 26 Jan 2021 12:19:29 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 12:19:32 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 26 Jan 2021 12:19:32 +0000 Subject: Change in osmo-pcu[master]: ms: Drop always-false check In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22418 ) Change subject: ms: Drop always-false check ...................................................................... ms: Drop always-false check MS is always assigned to a BTS, since it's set during MS constructor. Hence, the check removed in this patch would never hold true (and if it did, it'd be a bug). Change-Id: I86a71c64623f7bec031226938a54306148370ffb --- M src/gprs_ms.c 1 file changed, 0 insertions(+), 3 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/gprs_ms.c b/src/gprs_ms.c index ea497a3..daa3223 100644 --- a/src/gprs_ms.c +++ b/src/gprs_ms.c @@ -242,9 +242,6 @@ { ms->mode = mode; - if (!ms->bts) - return; - switch (ms->mode) { case GPRS: if (!mcs_is_gprs(ms->current_cs_ul)) { -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22418 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I86a71c64623f7bec031226938a54306148370ffb Gerrit-Change-Number: 22418 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 12:19:33 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 26 Jan 2021 12:19:33 +0000 Subject: Change in osmo-pcu[master]: sched: Check if egprs is enabled in TBF rather than MS being egprs ca... In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22419 ) Change subject: sched: Check if egprs is enabled in TBF rather than MS being egprs capable ...................................................................... sched: Check if egprs is enabled in TBF rather than MS being egprs capable It could happen as of current implementation that a TBF was created as GPRS due to the MS being non-egprs, and later on the MS was upgraded to EGPRS due to newly received information from the MS. Hence, in order to infer if the data block is EGPRS or GPRS, let's better check for the TBF info, which is the one really mandating the kind of dl block to generate. Change-Id: I49720fb3a69ca972cd1973de937ac8ee77615431 --- M src/gprs_rlcmac_sched.cpp 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, but someone else must approve osmith: Looks good to me, approved diff --git a/src/gprs_rlcmac_sched.cpp b/src/gprs_rlcmac_sched.cpp index 5640158..49a8ff2 100644 --- a/src/gprs_rlcmac_sched.cpp +++ b/src/gprs_rlcmac_sched.cpp @@ -341,7 +341,7 @@ pdch->next_dl_tfi = (prio_tfi + 1) & 31; /* generate DL data block */ msg = prio_tbf->create_dl_acked_block(fn, ts, req_mcs_kind); - *is_egprs = ms_mode(prio_tbf->ms()) != GPRS; + *is_egprs = prio_tbf->is_egprs_enabled(); } return msg; -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22419 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I49720fb3a69ca972cd1973de937ac8ee77615431 Gerrit-Change-Number: 22419 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 12:19:34 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 26 Jan 2021 12:19:34 +0000 Subject: Change in osmo-pcu[master]: tbf: Drop always-true condition checking for MS In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22420 ) Change subject: tbf: Drop always-true condition checking for MS ...................................................................... tbf: Drop always-true condition checking for MS The TBF can sometimes be detached from an MS, for eg. when switching from one MS object to another due to them being merged after we found duplicate objects upon receiving new information from it, but that change is instantaneous so it shouldn't be a problem. The only other way where an MS can be detached from an MS is during the end of its (or the MS) life, where it is not sending data anymore. Hence, it is safe to drop those checks for MS not being null. Those being trigger, it should be considered a bug. Change-Id: If292a53a09a64664031e756bff4735b9c6ee8651 --- M src/tbf.cpp 1 file changed, 3 insertions(+), 3 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve osmith: Looks good to me, but someone else must approve pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/tbf.cpp b/src/tbf.cpp index 37af21f..248e8ef 100644 --- a/src/tbf.cpp +++ b/src/tbf.cpp @@ -196,16 +196,16 @@ enum CodingScheme cs; if (direction == GPRS_RLCMAC_UL_TBF) - cs = m_ms ? ms_current_cs_ul(m_ms) : UNKNOWN; + cs = ms_current_cs_ul(m_ms); else - cs = m_ms ? ms_current_cs_dl(m_ms) : UNKNOWN; + cs = ms_current_cs_dl(m_ms); return cs; } gprs_llc_queue *gprs_rlcmac_tbf::llc_queue() { - return m_ms ? ms_llc_queue(m_ms) : NULL; + return ms_llc_queue(m_ms); } const gprs_llc_queue *gprs_rlcmac_tbf::llc_queue() const -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22420 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: If292a53a09a64664031e756bff4735b9c6ee8651 Gerrit-Change-Number: 22420 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 12:19:34 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 26 Jan 2021 12:19:34 +0000 Subject: Change in osmo-pcu[master]: encoding: fix typos in comment In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22421 ) Change subject: encoding: fix typos in comment ...................................................................... encoding: fix typos in comment Change-Id: I0867935ad08d6e49c62e061742d3d76eeac35844 --- M src/encoding.cpp 1 file changed, 2 insertions(+), 2 deletions(-) Approvals: laforge: Looks good to me, approved osmith: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/encoding.cpp b/src/encoding.cpp index f605ca2..7995e11 100644 --- a/src/encoding.cpp +++ b/src/encoding.cpp @@ -628,7 +628,7 @@ if (!use_egprs) { PUA_GPRS_t *gprs = &pua->u.PUA_GPRS_Struct; - /* Use the commanded CS/MSC value during the content resolution */ + /* Use the commanded CS/MCS value during the content resolution */ gprs->CHANNEL_CODING_COMMAND = mcs_chan_code(tbf->current_cs()); gprs->TLLI_BLOCK_CHANNEL_CODING = 0x01; // ^^^ @@ -645,7 +645,7 @@ PUA_EGPRS_00_t *egprs = &pua->u.PUA_EGPRS_Struct.u.PUA_EGPRS_00; pua->u.PUA_EGPRS_Struct.UnionType = 0x00; // 'Normal' EGPRS, not EGPRS2 - /* Use the commanded CS/MSC value during the content resolution */ + /* Use the commanded CS/MCS value during the content resolution */ egprs->EGPRS_CHANNEL_CODING_COMMAND = mcs_chan_code(tbf->current_cs()); egprs->TLLI_BLOCK_CHANNEL_CODING = 0x01; // ^^^ egprs->RESEGMENT = 0x01; // Enable segmentation -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22421 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I0867935ad08d6e49c62e061742d3d76eeac35844 Gerrit-Change-Number: 22421 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 12:19:35 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 26 Jan 2021 12:19:35 +0000 Subject: Change in osmo-pcu[master]: ms: Set proper initial MCS values setting mode EGPRS_GMSK In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22433 ) Change subject: ms: Set proper initial MCS values setting mode EGPRS_GMSK ...................................................................... ms: Set proper initial MCS values setting mode EGPRS_GMSK Before this patch, shared logic with EGPRS case would allow keeping MCS>4. Change-Id: I94cbf0c120fd37deb2dfd077d35b3811c7da0675 --- M src/gprs_ms.c M tests/ms/MsTest.ok 2 files changed, 15 insertions(+), 2 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve osmith: Looks good to me, but someone else must approve pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/gprs_ms.c b/src/gprs_ms.c index daa3223..f157d13 100644 --- a/src/gprs_ms.c +++ b/src/gprs_ms.c @@ -259,6 +259,19 @@ break; case EGPRS_GMSK: + if (!mcs_is_edge_gmsk(ms->current_cs_ul)) { + ms->current_cs_ul = mcs_get_egprs_by_num( + ms->bts->initial_mcs_ul); + if (!mcs_is_valid(ms->current_cs_ul)) + ms->current_cs_ul = MCS1; + } + if (!mcs_is_edge_gmsk(ms->current_cs_dl)) { + ms->current_cs_dl = mcs_get_egprs_by_num( + ms->bts->initial_mcs_dl); + if (!mcs_is_valid(ms->current_cs_dl)) + ms->current_cs_dl = MCS1; + } + break; case EGPRS: if (!mcs_is_edge(ms->current_cs_ul)) { ms->current_cs_ul = mcs_get_egprs_by_num( diff --git a/tests/ms/MsTest.ok b/tests/ms/MsTest.ok index 11766b8..3e5cdab 100644 --- a/tests/ms/MsTest.ok +++ b/tests/ms/MsTest.ok @@ -26,8 +26,8 @@ 2: after mode set MS DL MCS-1/MCS-9, UL MCS-1/MCS-9, mode EGPRS, 1: after MCS set MS DL MCS-7/MCS-9, UL MCS-1/MCS-9, mode EGPRS, 2: after MCS set MS DL MCS-8/MCS-9, UL MCS-1/MCS-9, mode EGPRS, -1: after mode set MS DL MCS-7/MCS-9, UL MCS-1/MCS-9, mode EGPRS_GMSK-only, -2: after mode set MS DL MCS-8/MCS-9, UL MCS-1/MCS-9, mode EGPRS_GMSK-only, +1: after mode set MS DL MCS-1/MCS-9, UL MCS-1/MCS-9, mode EGPRS_GMSK-only, +2: after mode set MS DL MCS-1/MCS-9, UL MCS-1/MCS-9, mode EGPRS_GMSK-only, 1: after mode set MS DL CS-4/CS-4, UL CS-1/CS-4, mode GPRS, 2: after mode set MS DL CS-4/CS-4, UL CS-1/CS-4, mode GPRS, === end test_ms_mcs_mode === -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22433 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I94cbf0c120fd37deb2dfd077d35b3811c7da0675 Gerrit-Change-Number: 22433 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 12:19:35 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 26 Jan 2021 12:19:35 +0000 Subject: Change in osmo-pcu[master]: ms: Properly handle EGPRS_GMSK mode in ms_max_cs_dl/ul() In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22434 ) Change subject: ms: Properly handle EGPRS_GMSK mode in ms_max_cs_dl/ul() ...................................................................... ms: Properly handle EGPRS_GMSK mode in ms_max_cs_dl/ul() Change-Id: Ied3e02a12145112fafa12282ed7aefa5b0fa6eb6 --- M src/gprs_ms.c M tests/ms/MsTest.ok 2 files changed, 12 insertions(+), 20 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve osmith: Looks good to me, but someone else must approve pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/gprs_ms.c b/src/gprs_ms.c index f157d13..0c4db89 100644 --- a/src/gprs_ms.c +++ b/src/gprs_ms.c @@ -632,6 +632,7 @@ enum CodingScheme ms_max_cs_ul(const struct GprsMs *ms) { + enum CodingScheme cs; OSMO_ASSERT(ms->bts != NULL); if (mcs_is_gprs(ms->current_cs_ul)) { @@ -642,15 +643,10 @@ return mcs_get_gprs_by_num(bts_max_cs_ul(ms->bts)); } - if (!mcs_is_edge(ms->current_cs_ul)) - return UNKNOWN; - - if (bts_max_mcs_ul(ms->bts)) - return mcs_get_egprs_by_num(bts_max_mcs_ul(ms->bts)); - else if (bts_max_cs_ul(ms->bts)) - return mcs_get_gprs_by_num(bts_max_cs_ul(ms->bts)); - - return MCS4; + cs = mcs_get_egprs_by_num(bts_max_mcs_ul(ms->bts)); + if (ms_mode(ms) == EGPRS_GMSK && cs > MCS4) + cs = MCS4; + return cs; } void ms_set_current_cs_dl(struct GprsMs *ms, enum CodingScheme scheme) @@ -660,6 +656,7 @@ enum CodingScheme ms_max_cs_dl(const struct GprsMs *ms) { + enum CodingScheme cs; OSMO_ASSERT(ms->bts != NULL); if (mcs_is_gprs(ms->current_cs_dl)) { @@ -670,15 +667,10 @@ return mcs_get_gprs_by_num(bts_max_cs_dl(ms->bts)); } - if (!mcs_is_edge(ms->current_cs_dl)) - return UNKNOWN; - - if (bts_max_mcs_dl(ms->bts)) - return mcs_get_egprs_by_num(bts_max_mcs_dl(ms->bts)); - else if (bts_max_cs_dl(ms->bts)) - return mcs_get_gprs_by_num(bts_max_cs_dl(ms->bts)); - - return MCS4; + cs = mcs_get_egprs_by_num(bts_max_mcs_dl(ms->bts)); + if (ms_mode(ms) == EGPRS_GMSK && cs > MCS4) + cs = MCS4; + return cs; } void ms_update_cs_ul(struct GprsMs *ms, const struct pcu_l1_meas *meas) diff --git a/tests/ms/MsTest.ok b/tests/ms/MsTest.ok index 3e5cdab..98e345c 100644 --- a/tests/ms/MsTest.ok +++ b/tests/ms/MsTest.ok @@ -26,8 +26,8 @@ 2: after mode set MS DL MCS-1/MCS-9, UL MCS-1/MCS-9, mode EGPRS, 1: after MCS set MS DL MCS-7/MCS-9, UL MCS-1/MCS-9, mode EGPRS, 2: after MCS set MS DL MCS-8/MCS-9, UL MCS-1/MCS-9, mode EGPRS, -1: after mode set MS DL MCS-1/MCS-9, UL MCS-1/MCS-9, mode EGPRS_GMSK-only, -2: after mode set MS DL MCS-1/MCS-9, UL MCS-1/MCS-9, mode EGPRS_GMSK-only, +1: after mode set MS DL MCS-1/MCS-4, UL MCS-1/MCS-4, mode EGPRS_GMSK-only, +2: after mode set MS DL MCS-1/MCS-4, UL MCS-1/MCS-4, mode EGPRS_GMSK-only, 1: after mode set MS DL CS-4/CS-4, UL CS-1/CS-4, mode GPRS, 2: after mode set MS DL CS-4/CS-4, UL CS-1/CS-4, mode GPRS, === end test_ms_mcs_mode === -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22434 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ied3e02a12145112fafa12282ed7aefa5b0fa6eb6 Gerrit-Change-Number: 22434 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 12:33:06 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 26 Jan 2021 12:33:06 +0000 Subject: Change in osmo-pcu[master]: Introduce NACC support In-Reply-To: References: Message-ID: Hello Jenkins Builder, fixeria, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-pcu/+/22385 to look at the new patch set (#5). Change subject: Introduce NACC support ...................................................................... Introduce NACC support A new nacc_fsm is introduced per MS object, with its partner priv structure struct nacc_fsm_ctx, which exists and is available in the MS object only during the duration of the NACC procedure. The NACC context is created on an MS whenever a Pkt Cell Change Notification is received on Uplink RLCMAC, which asks for neighbor information of a given ARFCN+BSIC. First, the target ARFCN+BSIC needs to be translated into a CGI-PS (RAC+CI) address. That's done by asking the BSC through the Neighbour Resolution Service available in osmo-bsc using the CTRL interface. Once the CGI-PS of the target cell is known, PCU starts a RIM RAN-INFO request against the SGSN (which will route the request as needed), and wait for a response containing the SI bits from the target cell. After the SI are received, the scheduler is instructed to eventually poll a TBF for the MS originating the CCN, so that we can send the SI encapsulated into multiple Packet Neighbor Cell Data messages on the downlink. One all the SI bits are sent, the scheduler is instructed to send a Packet Cell Change Continue message. Once the message above has been sent, the FSM autodestroys itself. Caches are also introduced in this patch which allows for re-using recently known translations ARFCN+BSIC -> CGI-PS and CGI-PS -> SI_INFO respectively. Change-Id: Id35f40d05f3e081f32fddbf1fa34cb338db452ca --- M configure.ac M src/Makefile.am M src/bts.cpp M src/bts.h M src/encoding.cpp M src/encoding.h M src/gprs_bssgp_rim.c M src/gprs_debug.cpp M src/gprs_debug.h M src/gprs_ms.c M src/gprs_ms.h M src/gprs_pcu.c M src/gprs_pcu.h M src/gprs_rlcmac_sched.cpp A src/nacc_fsm.c A src/nacc_fsm.h A src/neigh_cache.c A src/neigh_cache.h M src/pcu_vty.c M src/pdch.cpp M src/pdch.h M src/tbf.cpp M src/tbf.h M tests/Makefile.am 24 files changed, 1,360 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/85/22385/5 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22385 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Id35f40d05f3e081f32fddbf1fa34cb338db452ca Gerrit-Change-Number: 22385 Gerrit-PatchSet: 5 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-CC: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 12:40:26 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 26 Jan 2021 12:40:26 +0000 Subject: Change in osmo-pcu[master]: sched: Avoid picking TBF with nacked dl blocks when GMSK is required In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22436 ) Change subject: sched: Avoid picking TBF with nacked dl blocks when GMSK is required ...................................................................... Patch Set 1: (3 comments) https://gerrit.osmocom.org/c/osmo-pcu/+/22436/1//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-pcu/+/22436/1//COMMIT_MSG at 19 PS1, Line 19: later on priority (can you avoid using 'later' twice with different meaning to make it more readable?) https://gerrit.osmocom.org/c/osmo-pcu/+/22436/1/src/gprs_rlcmac_sched.cpp File src/gprs_rlcmac_sched.cpp: https://gerrit.osmocom.org/c/osmo-pcu/+/22436/1/src/gprs_rlcmac_sched.cpp at 325 PS1, Line 325: (prio !=DL_PRIO_CONTROL && !(prio == DL_PRIO_NEW_DATA && w->resend_needed() < 0))) { The if gets very complex. How about refactoring this into a function instead? Something like this (if using it, make sure that all the true / false are right, it's just a draft): bool can_downgrade(tbf, req_msc_kind, prio) { if (req_msc_kind == ...) return true; if (!tbf->is_egprs_enabled()) return true; switch (prio) { case DL_PRIO_CONTROL: return false; case DL_PRIO_NEW_DATA: return w->resend_needed(); } return false; } https://gerrit.osmocom.org/c/osmo-pcu/+/22436/1/src/gprs_rlcmac_sched.cpp at 325 PS1, Line 325: =D (missing space, fix it while at it?) -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22436 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I253de8e1a190a9adb56160f38892c9e43e2c0272 Gerrit-Change-Number: 22436 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 26 Jan 2021 12:40:26 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 12:42:25 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 26 Jan 2021 12:42:25 +0000 Subject: Change in libosmocore[master]: gprs_bssgp_prim.h: Add missing includes In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22441 ) Change subject: gprs_bssgp_prim.h: Add missing includes ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22441 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I1c068b6841561003d4d7722daa6c2abb21363dda Gerrit-Change-Number: 22441 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 26 Jan 2021 12:42:25 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 12:42:40 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 26 Jan 2021 12:42:40 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Ignore dummy rlcmac packets in f_ms_rx_pkt_ass_pacch In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22313 ) Change subject: pcu: Ignore dummy rlcmac packets in f_ms_rx_pkt_ass_pacch ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22313 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I0a10d3a7383d8534e9263864b4130a96392e6198 Gerrit-Change-Number: 22313 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-CC: fixeria Gerrit-Comment-Date: Tue, 26 Jan 2021 12:42:40 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 12:45:33 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 26 Jan 2021 12:45:33 +0000 Subject: Change in libosmocore[master]: gprs_bssgp_prim.h: Add missing includes In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22441 ) Change subject: gprs_bssgp_prim.h: Add missing includes ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22441 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I1c068b6841561003d4d7722daa6c2abb21363dda Gerrit-Change-Number: 22441 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 26 Jan 2021 12:45:33 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 12:45:36 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 26 Jan 2021 12:45:36 +0000 Subject: Change in libosmocore[master]: gprs_bssgp_prim.h: Add missing includes In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22441 ) Change subject: gprs_bssgp_prim.h: Add missing includes ...................................................................... gprs_bssgp_prim.h: Add missing includes Includes for struct gprs_ra_id and osmo_eutran_tai were missing. Change-Id: I1c068b6841561003d4d7722daa6c2abb21363dda --- M include/osmocom/gprs/gprs_bssgp_rim.h 1 file changed, 2 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, but someone else must approve pespin: Looks good to me, approved diff --git a/include/osmocom/gprs/gprs_bssgp_rim.h b/include/osmocom/gprs/gprs_bssgp_rim.h index 0810c8e..55341de 100644 --- a/include/osmocom/gprs/gprs_bssgp_rim.h +++ b/include/osmocom/gprs/gprs_bssgp_rim.h @@ -25,7 +25,9 @@ #pragma once +#include #include +#include enum bssgp_rim_routing_info_discr { BSSGP_RIM_ROUTING_INFO_GERAN, -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22441 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I1c068b6841561003d4d7722daa6c2abb21363dda Gerrit-Change-Number: 22441 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 12:45:49 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 26 Jan 2021 12:45:49 +0000 Subject: Change in osmo-pcu[master]: Fix Dl EGPRS data blocks being generated occasionally on GPRS TBFs In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22435 ) Change subject: Fix Dl EGPRS data blocks being generated occasionally on GPRS TBFs ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-pcu/+/22435/1/src/tbf_dl.cpp File src/tbf_dl.cpp: https://gerrit.osmocom.org/c/osmo-pcu/+/22435/1/src/tbf_dl.cpp at 537 PS1, Line 537: forced > It's not really unrelated, I had to change it also because I was changing and fixing how the CS/MCS [?] Thanks for the detailed explanation, makes sense! -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22435 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ic0276ce045660713129f0c72f1158a3321c5977f Gerrit-Change-Number: 22435 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 26 Jan 2021 12:45:49 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Comment-In-Reply-To: osmith Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 12:46:56 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 26 Jan 2021 12:46:56 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Ignore dummy rlcmac packets in f_ms_rx_pkt_ass_pacch In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22313 ) Change subject: pcu: Ignore dummy rlcmac packets in f_ms_rx_pkt_ass_pacch ...................................................................... pcu: Ignore dummy rlcmac packets in f_ms_rx_pkt_ass_pacch Allow ignoring for received dumy packets while waiting for a Pkt Ass on PACCH. This fixes some tests failing sometimes due to race condition where rlcmac packet is requested too quicky, after the PCU has received the BSSGP packet we sent to it. The function is splitted into an internal altestep + a wrap function which is compatible with tests already using it. Related: OS#4779 Change-Id: I0a10d3a7383d8534e9263864b4130a96392e6198 --- M pcu/GPRS_Components.ttcn M pcu/PCU_Tests.ttcn 2 files changed, 54 insertions(+), 29 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve osmith: Looks good to me, approved Jenkins Builder: Verified diff --git a/pcu/GPRS_Components.ttcn b/pcu/GPRS_Components.ttcn index 16036ad..a76deaa 100644 --- a/pcu/GPRS_Components.ttcn +++ b/pcu/GPRS_Components.ttcn @@ -498,38 +498,63 @@ function f_ms_rx_pkt_ass_pacch(inout GprsMS ms, out uint32_t poll_fn, template RlcmacDlBlock t_pkt_ass := ?, - template (value) TsTrxBtsNum nr := ts_TsTrxBtsNum) + template (value) TsTrxBtsNum nr := ts_TsTrxBtsNum, + boolean ignore_dummy := true) runs on MS_BTS_IFACE_CT return RlcmacDlBlock { var RlcmacDlBlock dl_block; - var uint32_t dl_fn; + BTS.send(ts_PCUIF_RTS_REQ(nr.bts_nr, nr.trx_nr, nr.ts_nr, + sapi := PCU_IF_SAPI_PDTCH, fn := 0, + arfcn := f_trxnr2arfcn(valueof(nr.trx_nr)), + block_nr := nr.blk_nr)); + as_ms_rx_pkt_ass_pacch(ms, poll_fn, t_pkt_ass, nr, ignore_dummy, dl_block); + return dl_block; +} - f_rx_rlcmac_dl_block(dl_block, dl_fn, nr := nr); - if (not match(dl_block, t_pkt_ass)) { - setverdict(fail, "Failed to match Packet Assignment:", t_pkt_ass); - f_shutdown(__BFILE__, __LINE__); - } +altstep as_ms_rx_pkt_ass_pacch(inout GprsMS ms, out uint32_t poll_fn, + template RlcmacDlBlock t_pkt_ass := ?, + template (value) TsTrxBtsNum nr := ts_TsTrxBtsNum, + boolean ignore_dummy := true, + out RlcmacDlBlock dl_block) +runs on MS_BTS_IFACE_CT { + var PCUIF_Message pcu_msg; + [] BTS.receive(tr_PCUIF_DATA_REQ(nr.bts_nr, nr.trx_nr, nr.ts_nr, + sapi := PCU_IF_SAPI_PDTCH)) -> value pcu_msg { + var uint32_t dl_fn; + dl_block := dec_RlcmacDlBlock(pcu_msg.u.data_req.data); + if (ignore_dummy and match(dl_block, tr_RLCMAC_DUMMY_CTRL())) { + /* TODO: sleep? */ + BTS.send(ts_PCUIF_RTS_REQ(nr.bts_nr, nr.trx_nr, nr.ts_nr, + sapi := PCU_IF_SAPI_PDTCH, fn := 0, + arfcn := f_trxnr2arfcn(valueof(nr.trx_nr)), block_nr := nr.blk_nr)); + repeat; + } - poll_fn := f_rrbp_ack_fn(dl_fn, dl_block.ctrl.mac_hdr.rrbp); - - if (match(dl_block, tr_RLCMAC_UL_PACKET_ASS)) { - ms.ul_tbf := f_ultbf_new_from_ass_pacch(dl_block); - if (ms.ul_tbf.ass.pacch.identity.tlli.tlli != ms.tlli) { - setverdict(fail, "Wrong TLLI ", ms.ul_tbf.ass.pacch.identity.tlli, " received vs exp ", ms.tlli); - f_shutdown(__BFILE__, __LINE__); - } - } else if (match(dl_block, tr_RLCMAC_DL_PACKET_ASS)) { - ms.dl_tbf := f_dltbf_new_from_ass_pacch(dl_block); - if (ischosen(ms.dl_tbf.ass.pacch.tfi_or_tlli.tlli) and - ms.dl_tbf.ass.pacch.tfi_or_tlli.tlli.tlli != ms.tlli) { - setverdict(fail, "Wrong TLLI ", ms.dl_tbf.ass.pacch.tfi_or_tlli.tlli.tlli, " received vs exp ", ms.tlli); + if (not match(dl_block, t_pkt_ass)) { + setverdict(fail, "Failed to match Packet Assignment:", t_pkt_ass); f_shutdown(__BFILE__, __LINE__); } - } else { - setverdict(fail, "Should not happen:", dl_block); - f_shutdown(__BFILE__, __LINE__); - } - return dl_block; + dl_fn := pcu_msg.u.data_req.fn; + poll_fn := f_rrbp_ack_fn(dl_fn, dl_block.ctrl.mac_hdr.rrbp); + + if (match(dl_block, tr_RLCMAC_UL_PACKET_ASS)) { + ms.ul_tbf := f_ultbf_new_from_ass_pacch(dl_block); + if (ms.ul_tbf.ass.pacch.identity.tlli.tlli != ms.tlli) { + setverdict(fail, "Wrong TLLI ", ms.ul_tbf.ass.pacch.identity.tlli, " received vs exp ", ms.tlli); + f_shutdown(__BFILE__, __LINE__); + } + } else if (match(dl_block, tr_RLCMAC_DL_PACKET_ASS)) { + ms.dl_tbf := f_dltbf_new_from_ass_pacch(dl_block); + if (ischosen(ms.dl_tbf.ass.pacch.tfi_or_tlli.tlli) and + ms.dl_tbf.ass.pacch.tfi_or_tlli.tlli.tlli != ms.tlli) { + setverdict(fail, "Wrong TLLI ", ms.dl_tbf.ass.pacch.tfi_or_tlli.tlli.tlli, " received vs exp ", ms.tlli); + f_shutdown(__BFILE__, __LINE__); + } + } else { + setverdict(fail, "Should not happen:", dl_block); + f_shutdown(__BFILE__, __LINE__); + } + } } function f_ms_establish_ul_tbf(inout GprsMS ms, template (value) TsTrxBtsNum nr := ts_TsTrxBtsNum) diff --git a/pcu/PCU_Tests.ttcn b/pcu/PCU_Tests.ttcn index 13b33b2..7d569b1 100644 --- a/pcu/PCU_Tests.ttcn +++ b/pcu/PCU_Tests.ttcn @@ -3109,8 +3109,8 @@ f_ms_tx_ul_block(ms, ts_RLC_UL_CTRL_ACK(ts_RlcMacUlCtrl_PKT_RES_REQ(ms.tlli, omit))); /* Expect an RLC/MAC block with Packet Uplink Assignment on PACCH (see 11.2.29) */ - var RlcmacDlBlock blk := f_ms_rx_pkt_ass_pacch(ms, poll_fn, tr_RLCMAC_UL_PACKET_ASS); - var PacketUlAssignment ua := blk.ctrl.payload.u.ul_assignment; + f_ms_rx_pkt_ass_pacch(ms, poll_fn, tr_RLCMAC_UL_PACKET_ASS); + var PacketUlAssignment ua := ms.ul_tbf.ass.pacch; /* 3GPP TS 44.060, section 12.8 "Frequency Parameters" */ var template (omit) FrequencyParameters fp; @@ -3165,8 +3165,8 @@ BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data)); /* Expect an RLC/MAC block with Packet Downlink Assignment on PACCH (see 11.2.29) */ - dl_block := f_ms_rx_pkt_ass_pacch(ms, poll_fn, tr_RLCMAC_DL_PACKET_ASS); - var PacketDlAssignment da := dl_block.ctrl.payload.u.dl_assignment; + f_ms_rx_pkt_ass_pacch(ms, poll_fn, tr_RLCMAC_DL_PACKET_ASS); + var PacketDlAssignment da := ms.dl_tbf.ass.pacch; /* This is an optional IE, so it's worth to check its presence */ if (not ispresent(da.freq_par)) { -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22313 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I0a10d3a7383d8534e9263864b4130a96392e6198 Gerrit-Change-Number: 22313 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-CC: fixeria Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 12:47:19 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 26 Jan 2021 12:47:19 +0000 Subject: Change in osmo-pcu[master]: Fix Dl EGPRS data blocks being generated occasionally on GPRS TBFs In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22435 ) Change subject: Fix Dl EGPRS data blocks being generated occasionally on GPRS TBFs ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22435 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ic0276ce045660713129f0c72f1158a3321c5977f Gerrit-Change-Number: 22435 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 26 Jan 2021 12:47:19 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 12:47:28 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 26 Jan 2021 12:47:28 +0000 Subject: Change in osmo-pcu[master]: Fix Dl EGPRS data blocks being generated occasionally on GPRS TBFs In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22435 ) Change subject: Fix Dl EGPRS data blocks being generated occasionally on GPRS TBFs ...................................................................... Fix Dl EGPRS data blocks being generated occasionally on GPRS TBFs Under some circumstances, it could happen that a DL TBF is created as a GPRS TBF due to not yet having enough information of the MS, and only after the TBF is created the PCU gains that information and upgrades the MS mode to "EGPRS". Hence, there's the possibility to run into a situation where a GPRS TBF is attached to a EGPRS MS. It may also happen sometimes that despite the TBF and the MS be EGPRS, there's need to further limit the DL MCS to use, eg. MCS1-4 (GMSK). As a result, when asking for the current DL (M)CS to use, we must tell the MS which kind of limitations we want to apply. The later reasoning was already implemented when GPRS+EGPRS multiplexing was added, but the former was not being checked. Hence, by further spreading through the call stack the "req_kind_mode" we match both cases. Related: OS#4973 Change-Id: Ic0276ce045660713129f0c72f1158a3321c5977f --- M src/gprs_ms.c M src/gprs_ms.h M src/pcu_vty_functions.cpp M src/tbf.cpp M src/tbf_dl.cpp M tests/ms/MsTest.cpp 6 files changed, 62 insertions(+), 36 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve osmith: Looks good to me, but someone else must approve pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/gprs_ms.c b/src/gprs_ms.c index 0c4db89..3948abf 100644 --- a/src/gprs_ms.c +++ b/src/gprs_ms.c @@ -778,13 +778,46 @@ } } -enum CodingScheme ms_current_cs_dl(const struct GprsMs *ms) +/* req_mcs_kind acts as a set filter, where EGPRS means any and GPRS is the most restrictive */ +enum CodingScheme ms_current_cs_dl(const struct GprsMs *ms, enum mcs_kind req_mcs_kind) { - enum CodingScheme cs = ms->current_cs_dl; + enum CodingScheme orig_cs = ms->current_cs_dl; + struct gprs_rlcmac_bts *bts = ms->bts; size_t unencoded_octets; + enum CodingScheme cs; - if (!ms->bts) - return cs; + /* It could be that a TBF requests a GPRS CS despite the MS currently + being upgraded to EGPRS (hence reporting MCS). That could happen + because the TBF was created early in the process where we didn't have + yet enough information about the MS, and only AFTER it was created we + upgraded the MS to be EGPRS capable. + As a result, when the MS is queried for the target CS here, we could be + returning an MCS despite the current TBF being established as GPRS, + but we rather stick to the TBF type we assigned to the MS rather than + magically sending EGPRS data blocks to a GPRS TBF. + It could also be that the caller requests specific MCS kind + explicitly too due to scheduling restrictions (GPRS+EGPRS multiplexing). */ + if (req_mcs_kind == EGPRS_GMSK && mcs_is_edge(orig_cs) && orig_cs > MCS4) { + cs = bts_cs_dl_is_supported(bts, MCS4) ? MCS4 : + bts_cs_dl_is_supported(bts, MCS3) ? MCS3 : + bts_cs_dl_is_supported(bts, MCS2) ? MCS2 : + MCS1; + } else if (req_mcs_kind == GPRS && mcs_is_edge(orig_cs)) { /* GPRS */ + int i; + cs = orig_cs > MCS4 ? MCS4 : orig_cs; + cs -= (MCS1 - CS1); /* MCSx -> CSx */ + /* Find suitable CS starting from equivalent MCS which is supported by BTS: */ + for (i = mcs_chan_code(cs); !bts_cs_dl_is_supported(bts, CS1 + i); i--); + OSMO_ASSERT(i >= 0 && i <= 3); /* CS1 is always supported */ + cs = CS1 + i; + } else { + cs = orig_cs; + } + + if (orig_cs != cs) + LOGPMS(ms, DRLCMACDL, LOGL_INFO, "MS (mode=%s) suggests transmitting " + "DL %s, downgrade to %s in order to match TBF & scheduler requirements\n", + mode_name(ms_mode(ms)), mcs_name(orig_cs), mcs_name(cs)); unencoded_octets = llc_queue_octets(&ms->llc_queue); diff --git a/src/gprs_ms.h b/src/gprs_ms.h index 12809f1..39d65de 100644 --- a/src/gprs_ms.h +++ b/src/gprs_ms.h @@ -114,7 +114,7 @@ void ms_set_egprs_ms_class(struct GprsMs *ms, uint8_t ms_class_); void ms_set_ta(struct GprsMs *ms, uint8_t ta_); -enum CodingScheme ms_current_cs_dl(const struct GprsMs *ms); +enum CodingScheme ms_current_cs_dl(const struct GprsMs *ms, enum mcs_kind req_mcs_kind); enum CodingScheme ms_max_cs_ul(const struct GprsMs *ms); enum CodingScheme ms_max_cs_dl(const struct GprsMs *ms); void ms_set_current_cs_dl(struct GprsMs *ms, enum CodingScheme scheme); diff --git a/src/pcu_vty_functions.cpp b/src/pcu_vty_functions.cpp index 48780c0..c2250d9 100644 --- a/src/pcu_vty_functions.cpp +++ b/src/pcu_vty_functions.cpp @@ -133,7 +133,7 @@ vty_out(vty, " Timing advance (TA): %d%s", ms_ta(ms), VTY_NEWLINE); vty_out(vty, " Coding scheme uplink: %s%s", mcs_name(ms_current_cs_ul(ms)), VTY_NEWLINE); - vty_out(vty, " Coding scheme downlink: %s%s", mcs_name(ms_current_cs_dl(ms)), + vty_out(vty, " Coding scheme downlink: %s%s", mcs_name(ms_current_cs_dl(ms, ms_mode(ms))), VTY_NEWLINE); vty_out(vty, " Mode: %s%s", mode_name(ms_mode(ms)), VTY_NEWLINE); vty_out(vty, " MS class: %d%s", ms_ms_class(ms), VTY_NEWLINE); diff --git a/src/tbf.cpp b/src/tbf.cpp index 248e8ef..d2d55f2 100644 --- a/src/tbf.cpp +++ b/src/tbf.cpp @@ -194,11 +194,12 @@ enum CodingScheme gprs_rlcmac_tbf::current_cs() const { enum CodingScheme cs; + enum mcs_kind req_mcs_kind = is_egprs_enabled() ? EGPRS : GPRS; if (direction == GPRS_RLCMAC_UL_TBF) cs = ms_current_cs_ul(m_ms); else - cs = ms_current_cs_dl(m_ms); + cs = ms_current_cs_dl(m_ms, req_mcs_kind); return cs; } diff --git a/src/tbf_dl.cpp b/src/tbf_dl.cpp index de43349..9562d86 100644 --- a/src/tbf_dl.cpp +++ b/src/tbf_dl.cpp @@ -448,29 +448,24 @@ { int bsn; int data_len2, force_data_len = -1; - enum CodingScheme force_cs = UNKNOWN; + enum CodingScheme tx_cs; + + /* Scheduler may be fine with sending any kind of data, but if + the selected TBF is GPRS-only, then let's filter out EGPRS + here */ + if (!is_egprs_enabled()) + req_mcs_kind = GPRS; /* search for a nacked or resend marked bsn */ bsn = m_window.resend_needed(); if (previous_bsn >= 0) { - force_cs = m_rlc.block(previous_bsn)->cs_current_trans; - if (!mcs_is_edge(force_cs)) + tx_cs = m_rlc.block(previous_bsn)->cs_current_trans; + if (!mcs_is_edge(tx_cs)) return -1; force_data_len = m_rlc.block(previous_bsn)->len; - } else if (bsn < 0 && is_egprs_enabled() && req_mcs_kind == EGPRS_GMSK) { - /* New data to be sent for EGPRS TBF but we are required to downgrade to - * MCS1-4, because USF for GPRS-only MS will be sent */ - force_cs = ms_current_cs_dl(m_ms); - if (force_cs > MCS4) { - force_cs = bts_cs_dl_is_supported(bts, MCS4) ? MCS4 : - bts_cs_dl_is_supported(bts, MCS3) ? MCS3 : - bts_cs_dl_is_supported(bts, MCS2) ? MCS2 : - MCS1; - LOGPTBFDL(this, LOGL_DEBUG, - "Force downgrading DL %s -> %s due to USF for GPRS-only MS\n", - mcs_name(ms_current_cs_dl(m_ms)), mcs_name(force_cs)); - } + } else { + tx_cs = ms_current_cs_dl(ms(), req_mcs_kind); } if (bsn >= 0) { @@ -484,15 +479,14 @@ if (is_egprs_enabled()) { /* Table 8.1.1.2 and Table 8.1.1.1 of 44.060 */ - m_rlc.block(bsn)->cs_current_trans = get_retx_mcs(m_rlc.block(bsn)->cs_init, - ms_current_cs_dl(ms()), + m_rlc.block(bsn)->cs_current_trans = get_retx_mcs(m_rlc.block(bsn)->cs_init, tx_cs, bts->pcu->vty.dl_arq_type == EGPRS_ARQ1); LOGPTBFDL(this, LOGL_DEBUG, "initial_cs_dl(%s) last_mcs(%s) demanded_mcs(%s) cs_trans(%s) arq_type(%d) bsn(%d)\n", mcs_name(m_rlc.block(bsn)->cs_init), mcs_name(m_rlc.block(bsn)->cs_last), - mcs_name(ms_current_cs_dl(ms())), + mcs_name(tx_cs), mcs_name(m_rlc.block(bsn)->cs_current_trans), the_pcu->vty.dl_arq_type, bsn); @@ -537,14 +531,12 @@ return take_next_bsn(fn, previous_bsn, req_mcs_kind, may_combine); } else if (have_data()) { /* The window has space left, generate new bsn */ - enum CodingScheme new_cs; - new_cs = force_cs ? force_cs : current_cs(); LOGPTBFDL(this, LOGL_DEBUG, "Sending new block at BSN %d, CS=%s%s\n", - m_window.v_s(), mcs_name(new_cs), - force_cs ? " (forced)" : ""); + m_window.v_s(), mcs_name(tx_cs), + force_data_len != -1 ? " (forced)" : ""); - bsn = create_new_bsn(fn, new_cs); + bsn = create_new_bsn(fn, tx_cs); } else if (bts->pcu->vty.dl_tbf_preemptive_retransmission && !m_window.window_empty()) { /* The window contains unacked packages, but not acked. * Mark unacked bsns as RESEND */ @@ -558,8 +550,8 @@ /* Nothing left to send, create dummy LLC commands */ LOGPTBFDL(this, LOGL_DEBUG, "Sending new dummy block at BSN %d, CS=%s\n", - m_window.v_s(), mcs_name(current_cs())); - bsn = create_new_bsn(fn, current_cs()); + m_window.v_s(), mcs_name(tx_cs)); + bsn = create_new_bsn(fn, tx_cs); /* Don't send a second block, so don't set cs_current_trans */ } diff --git a/tests/ms/MsTest.cpp b/tests/ms/MsTest.cpp index f459e99..677c695 100644 --- a/tests/ms/MsTest.cpp +++ b/tests/ms/MsTest.cpp @@ -522,11 +522,11 @@ OSMO_ASSERT(!ms_is_idle(ms)); - OSMO_ASSERT(mcs_chan_code(ms_current_cs_dl(ms)) == 3); + OSMO_ASSERT(mcs_chan_code(ms_current_cs_dl(ms, ms_mode(ms))) == 3); the_pcu->vty.cs_downgrade_threshold = 200; - OSMO_ASSERT(mcs_chan_code(ms_current_cs_dl(ms)) == 2); + OSMO_ASSERT(mcs_chan_code(ms_current_cs_dl(ms, ms_mode(ms))) == 2); talloc_free(dl_tbf); talloc_free(bts); @@ -536,7 +536,7 @@ static void dump_ms(const GprsMs *ms, const char *pref) { printf("%s MS DL %s/%s, UL %s/%s, mode %s, <%s>\n", pref, - mcs_name(ms_current_cs_dl(ms)), mcs_name(ms_max_cs_dl(ms)), + mcs_name(ms_current_cs_dl(ms, ms_mode(ms))), mcs_name(ms_max_cs_dl(ms)), mcs_name(ms_current_cs_ul(ms)), mcs_name(ms_max_cs_ul(ms)), mode_name(ms_mode(ms)), ms_is_idle(ms) ? "IDLE" : "ACTIVE"); -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22435 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ic0276ce045660713129f0c72f1158a3321c5977f Gerrit-Change-Number: 22435 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 13:16:08 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 26 Jan 2021 13:16:08 +0000 Subject: Change in osmo-pcu[master]: sched: Avoid picking TBF with nacked dl blocks when GMSK is required In-Reply-To: References: Message-ID: Hello osmith, Jenkins Builder, laforge, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-pcu/+/22436 to look at the new patch set (#2). Change subject: sched: Avoid picking TBF with nacked dl blocks when GMSK is required ...................................................................... sched: Avoid picking TBF with nacked dl blocks when GMSK is required Sine we don't yet implement properly all resegmentation of blocks from same MCS family type, when requiring a GMSK DL block (due to GPRS+EGPRS multiplexing limitations) we need to skip retransmitions, otherwise we'd be incorrectly picking a DL block which was already built with a potentially higher MCS value. The "DL_PRIO_NEW_DATA" prio serves two purposes: * There's new data to send * There's some nacked data to be retransmitted The 2nd purpose has, later on, more priority over the 1st one when the tbf is selected (see gprs_rlcmac_dl_tbf::take_next_bsn()). Until now we were handling correctly the case where the tbf was skipped in case the prio was to resend unacked data (DL_PRIO_SENT_DATA), but was incorrectly selected when it'd send nacked data. Let's fix it by specifically checking w->resend_needed() < 0. Change-Id: I253de8e1a190a9adb56160f38892c9e43e2c0272 --- M src/gprs_rlcmac_sched.cpp 1 file changed, 27 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/36/22436/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22436 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I253de8e1a190a9adb56160f38892c9e43e2c0272 Gerrit-Change-Number: 22436 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 14:20:01 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Tue, 26 Jan 2021 14:20:01 +0000 Subject: Change in libosmocore[master]: gprs_bssgp_rim: add functions to convert a RIM-RI to a string In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22438 to look at the new patch set (#2). Change subject: gprs_bssgp_rim: add functions to convert a RIM-RI to a string ...................................................................... gprs_bssgp_rim: add functions to convert a RIM-RI to a string RIM routing formation structs can contain different variants of address identifiers, so it is difficult for an API user to pick the _name() function to generate a human readable string. Lets add bssgp_rim_ri_name() and bssgp_rim_ri_name_buf() to make printing a routing identifier easier. Change-Id: Idca6bdccffe663aea71a0183ca3ea5bb5b59e702 Related: SYS#5103 --- M include/osmocom/gprs/gprs_bssgp_rim.h M src/gb/gprs_bssgp_rim.c M src/gb/libosmogb.map 3 files changed, 66 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/38/22438/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22438 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Idca6bdccffe663aea71a0183ca3ea5bb5b59e702 Gerrit-Change-Number: 22438 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 14:20:01 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Tue, 26 Jan 2021 14:20:01 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: log source and destination RIM routing information In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22440 to look at the new patch set (#2). Change subject: gprs_bssgp: log source and destination RIM routing information ...................................................................... gprs_bssgp: log source and destination RIM routing information Whenever a RIM PDU is received, log to which RIM routing information (address) it is going to and where it is comming from. Change-Id: Ia08d3b162a4f6257cccaa7f0764fa7ea498355ef Related: SYS#5103 --- M src/gb/gprs_bssgp.c M src/gb/gprs_bssgp_util.c 2 files changed, 16 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/40/22440/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22440 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia08d3b162a4f6257cccaa7f0764fa7ea498355ef Gerrit-Change-Number: 22440 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 14:20:03 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Tue, 26 Jan 2021 14:20:03 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: move struct bssgp_ran_information_pdu to gprs_bssgp_rim.h References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22442 ) Change subject: gprs_bssgp: move struct bssgp_ran_information_pdu to gprs_bssgp_rim.h ...................................................................... gprs_bssgp: move struct bssgp_ran_information_pdu to gprs_bssgp_rim.h Change-Id: Icda279452962b06e552cb1361d2a27b7dc8a6b04 Related: SYS#5103 --- M include/osmocom/gprs/gprs_bssgp.h M include/osmocom/gprs/gprs_bssgp_rim.h 2 files changed, 29 insertions(+), 28 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/42/22442/1 diff --git a/include/osmocom/gprs/gprs_bssgp.h b/include/osmocom/gprs/gprs_bssgp.h index a7b363b..59d5e9f 100644 --- a/include/osmocom/gprs/gprs_bssgp.h +++ b/include/osmocom/gprs/gprs_bssgp.h @@ -42,34 +42,6 @@ /* Chapter 10.4.14: Status */ int bssgp_tx_status(uint8_t cause, uint16_t *bvci, struct msgb *orig_msg); -/* Chapter 10.6.1: RAN-INFORMATION-REQUEST */ -struct bssgp_ran_information_pdu { - struct bssgp_rim_routing_info routing_info_dest; - struct bssgp_rim_routing_info routing_info_src; - - /* Encoded variant of the RIM container */ - uint8_t rim_cont_iei; - const uint8_t *rim_cont; - unsigned int rim_cont_len; - - /* Decoded variant of the RIM container */ - bool decoded_present; - union { - struct bssgp_ran_inf_req_rim_cont req_rim_cont; - struct bssgp_ran_inf_rim_cont rim_cont; - struct bssgp_ran_inf_ack_rim_cont ack_rim_cont; - struct bssgp_ran_inf_err_rim_cont err_rim_cont; - struct bssgp_ran_inf_app_err_rim_cont app_err_rim_cont; - } decoded; - - /* When receiving a PDU from BSSGP the encoded variant of the RIM - * container will always be present. The decoded variant will be - * present in addition whenever BSSGP was able to decode the container. - * - * When sending a PDU to BSSGP, then the decoded variant is used when - * it is available. The encoded variant (if present) will be ignored - * then. */ -}; int bssgp_tx_rim(const struct bssgp_ran_information_pdu *pdu, uint16_t nsei); int bssgp_parse_rim_pdu(struct bssgp_ran_information_pdu *pdu, const struct msgb *msg); diff --git a/include/osmocom/gprs/gprs_bssgp_rim.h b/include/osmocom/gprs/gprs_bssgp_rim.h index effb136..ca75ee5 100644 --- a/include/osmocom/gprs/gprs_bssgp_rim.h +++ b/include/osmocom/gprs/gprs_bssgp_rim.h @@ -236,3 +236,32 @@ int bssgp_dec_ran_inf_app_err_rim_cont(struct bssgp_ran_inf_app_err_rim_cont *cont, const uint8_t *buf, size_t len); int bssgp_enc_ran_inf_app_err_rim_cont(uint8_t *buf, size_t len, const struct bssgp_ran_inf_app_err_rim_cont *cont); + +/* Chapter 10.6.1: RAN-INFORMATION-REQUEST */ +struct bssgp_ran_information_pdu { + struct bssgp_rim_routing_info routing_info_dest; + struct bssgp_rim_routing_info routing_info_src; + + /* Encoded variant of the RIM container */ + uint8_t rim_cont_iei; + const uint8_t *rim_cont; + unsigned int rim_cont_len; + + /* Decoded variant of the RIM container */ + bool decoded_present; + union { + struct bssgp_ran_inf_req_rim_cont req_rim_cont; + struct bssgp_ran_inf_rim_cont rim_cont; + struct bssgp_ran_inf_ack_rim_cont ack_rim_cont; + struct bssgp_ran_inf_err_rim_cont err_rim_cont; + struct bssgp_ran_inf_app_err_rim_cont app_err_rim_cont; + } decoded; + + /* When receiving a PDU from BSSGP the encoded variant of the RIM + * container will always be present. The decoded variant will be + * present in addition whenever BSSGP was able to decode the container. + * + * When sending a PDU to BSSGP, then the decoded variant is used when + * it is available. The encoded variant (if present) will be ignored + * then. */ +}; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22442 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Icda279452962b06e552cb1361d2a27b7dc8a6b04 Gerrit-Change-Number: 22442 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 14:29:58 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 26 Jan 2021 14:29:58 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: log source and destination RIM routing information In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22440 ) Change subject: gprs_bssgp: log source and destination RIM routing information ...................................................................... Patch Set 2: Code-Review-1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22440 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia08d3b162a4f6257cccaa7f0764fa7ea498355ef Gerrit-Change-Number: 22440 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 26 Jan 2021 14:29:58 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 14:30:30 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 26 Jan 2021 14:30:30 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: move struct bssgp_ran_information_pdu to gprs_bssgp_rim.h In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22442 ) Change subject: gprs_bssgp: move struct bssgp_ran_information_pdu to gprs_bssgp_rim.h ...................................................................... Patch Set 1: (2 comments) https://gerrit.osmocom.org/c/libosmocore/+/22442/1/include/osmocom/gprs/gprs_bssgp.h File include/osmocom/gprs/gprs_bssgp.h: https://gerrit.osmocom.org/c/libosmocore/+/22442/1/include/osmocom/gprs/gprs_bssgp.h at 45 PS1, Line 45: int bssgp_tx_rim(const struct bssgp_ran_information_pdu *pdu, uint16_t nsei); What about this? https://gerrit.osmocom.org/c/libosmocore/+/22442/1/include/osmocom/gprs/gprs_bssgp.h at 47 PS1, Line 47: int bssgp_parse_rim_pdu(struct bssgp_ran_information_pdu *pdu, const struct msgb *msg); What about this? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22442 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Icda279452962b06e552cb1361d2a27b7dc8a6b04 Gerrit-Change-Number: 22442 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 26 Jan 2021 14:30:30 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 14:31:56 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 26 Jan 2021 14:31:56 +0000 Subject: Change in libosmocore[master]: gprs_bssgp_rim: add functions to convert a RIM-RI to a string In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22438 ) Change subject: gprs_bssgp_rim: add functions to convert a RIM-RI to a string ...................................................................... Patch Set 2: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/22438/2/src/gb/gprs_bssgp_rim.c File src/gb/gprs_bssgp_rim.c: https://gerrit.osmocom.org/c/libosmocore/+/22438/2/src/gb/gprs_bssgp_rim.c at 205 PS2, Line 205: char *bssgp_rim_ri_name(const struct bssgp_rim_routing_info *ri) I would return a 'const char *' here as the user is not suppoed to modify the returned buffer contents. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22438 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Idca6bdccffe663aea71a0183ca3ea5bb5b59e702 Gerrit-Change-Number: 22438 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 26 Jan 2021 14:31:56 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 14:32:34 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 26 Jan 2021 14:32:34 +0000 Subject: Change in libosmocore[master]: gprs_bssgp_rim: cosmetic: connect routing identifier strings with "-" In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22439 ) Change subject: gprs_bssgp_rim: cosmetic: connect routing identifier strings with "-" ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22439 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I26facd3dc160603da89dcd787cccf78b19a20f02 Gerrit-Change-Number: 22439 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 26 Jan 2021 14:32:34 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 14:34:15 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 26 Jan 2021 14:34:15 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: log source and destination RIM routing information In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22440 ) Change subject: gprs_bssgp: log source and destination RIM routing information ...................................................................... Patch Set 2: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/22440/2/src/gb/gprs_bssgp.c File src/gb/gprs_bssgp.c: https://gerrit.osmocom.org/c/libosmocore/+/22440/2/src/gb/gprs_bssgp.c at 681 PS2, Line 681: bssgp_rim_ri_name_buf as those functions return a pointer, you could have simply moved them into the DEBUGP(), as pespin suggested. But the current approach is also ok. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22440 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia08d3b162a4f6257cccaa7f0764fa7ea498355ef Gerrit-Change-Number: 22440 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 26 Jan 2021 14:34:15 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 14:35:18 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 26 Jan 2021 14:35:18 +0000 Subject: Change in libosmocore[master]: gprs_ns2: drop gprs_ns2_vty, rename vty2 -> vty In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22430 ) Change subject: gprs_ns2: drop gprs_ns2_vty, rename vty2 -> vty ...................................................................... Patch Set 5: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22430 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I8c3f2afecc74b78f7f914f7dce166cbcb63444eb Gerrit-Change-Number: 22430 Gerrit-PatchSet: 5 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 26 Jan 2021 14:35:18 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 14:47:22 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 26 Jan 2021 14:47:22 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Increemnt many timeouts from 1s to 2s. References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22443 ) Change subject: gbproxy: Increemnt many timeouts from 1s to 2s. ...................................................................... gbproxy: Increemnt many timeouts from 1s to 2s. Sending a message [even over a real or simulated E1 line] should always be less than 1s end-to-end. But just to see if increasing the timeouts to 2s will result in less test failures, let's change from 1s to 2s. Change-Id: Iebb43283ad7c267c6ed7f49989ec453be38956a9 --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 8 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/43/22443/1 diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index ddcd9cb..df27a3d 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -804,7 +804,7 @@ integer pcu_idx := 0, boolean use_sig := false) runs on BSSGP_ConnHdlr { var integer sgsn_idx := g_pars.sgsn_idx; var PDU_BSSGP rx; - timer T := 1.0; + timer T := 2.0; if (use_sig) { PCU_SIG[pcu_idx].send(tx); @@ -841,7 +841,7 @@ runs on BSSGP_ConnHdlr return integer { var integer rx_idx := -1; var PDU_BSSGP rx; - timer T := 1.0; + timer T := 2.0; if (use_sig) { PCU_SIG[pcu_idx].send(tx); @@ -878,7 +878,7 @@ integer pcu_idx := 0, boolean use_sig := false) runs on BSSGP_ConnHdlr { var integer sgsn_idx := g_pars.sgsn_idx; var PDU_BSSGP rx; - timer T := 1.0; + timer T := 2.0; if (use_sig) { SGSN_SIG[sgsn_idx].send(tx); @@ -975,7 +975,7 @@ integer pcu_idx := 0, integer sgsn_idx := 0) runs on GlobalTest_CT { var integer rx_idx; var PDU_BSSGP rx; - timer T := 1.0; + timer T := 2.0; G_PCU[pcu_idx].send(tx); T.start; @@ -1002,7 +1002,7 @@ integer sgsn_idx := 0, integer pcu_idx := 0) runs on GlobalTest_CT { var integer rx_idx; var PDU_BSSGP rx; - timer T := 1.0; + timer T := 2.0; G_SGSN[sgsn_idx].send(tx); T.start; @@ -2819,7 +2819,7 @@ friend function f_rim_pcu2sgsn(template (value) PDU_BSSGP tx, template (present) PDU_BSSGP exp_rx, integer pcu_idx := 0) runs on GlobalTest_CT { var PDU_BSSGP rx; - timer T := 1.0; + timer T := 2.0; RIM_PCU[pcu_idx].send(tx); T.start; @@ -2842,7 +2842,7 @@ friend function f_rim_sgsn2pcu(template (value) PDU_BSSGP tx, template (present) PDU_BSSGP exp_rx, integer sgsn_idx := 0, integer pcu_idx := 0) runs on GlobalTest_CT { var PDU_BSSGP rx; - timer T := 1.0; + timer T := 2.0; RIM_SGSN[sgsn_idx].send(tx); T.start; @@ -2866,7 +2866,7 @@ integer src_pcu_idx, integer dst_pcu_idx) runs on GlobalTest_CT { var integer rx_idx; var PDU_BSSGP rx; - timer T := 1.0; + timer T := 2.0; RIM_PCU[src_pcu_idx].send(tx); T.start; -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22443 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Iebb43283ad7c267c6ed7f49989ec453be38956a9 Gerrit-Change-Number: 22443 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 14:47:23 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 26 Jan 2021 14:47:23 +0000 Subject: Change in osmo-ttcn3-hacks[master]: fr-net: Fix regen_makefile.sh References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22444 ) Change subject: fr-net: Fix regen_makefile.sh ...................................................................... fr-net: Fix regen_makefile.sh regen-makefile.sh should not include generated c++ code. Change-Id: I0fecfb0d3c33f8d87923d4843fee718916001978 --- M fr-net/regen_makefile.sh 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/44/22444/1 diff --git a/fr-net/regen_makefile.sh b/fr-net/regen_makefile.sh index 6aaf577..e2c143d 100755 --- a/fr-net/regen_makefile.sh +++ b/fr-net/regen_makefile.sh @@ -3,7 +3,7 @@ FILES="*.ttcn *.ttcnpp BSSGP_EncDec.cc IPL4asp_PT.cc IPL4asp_discovery.cc TCCConversion.cc TCCInterface.cc " FILES+="AF_PACKET_PT.cc " FILES+="Native_FunctionDefs.cc " -FILES+="LLC_EncDec.cc LLC_Types.cc TELNETasp_PT.cc " +FILES+="LLC_EncDec.cc TELNETasp_PT.cc " export CPPFLAGS_TTCN3="-DNS_EMULATION_FR" -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22444 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I0fecfb0d3c33f8d87923d4843fee718916001978 Gerrit-Change-Number: 22444 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 14:47:23 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 26 Jan 2021 14:47:23 +0000 Subject: Change in osmo-ttcn3-hacks[master]: fr-net: use 'hdlcnet1' as default netdev References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22445 ) Change subject: fr-net: use 'hdlcnet1' as default netdev ...................................................................... fr-net: use 'hdlcnet1' as default netdev The gbproxy tests and our scripts have started to use hdlc0..7 paired with hdlcnet0..7. Let's adjust fr-net to also use 'hdlcnet1' as the pairing 'fr' test uses 'hdlc1' Change-Id: If456a575cc2ae0ab2fc63730b329131dfcc70a47 --- M fr-net/FRNET_Tests.ttcn 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/45/22445/1 diff --git a/fr-net/FRNET_Tests.ttcn b/fr-net/FRNET_Tests.ttcn index 94b32dc..3943ff1 100644 --- a/fr-net/FRNET_Tests.ttcn +++ b/fr-net/FRNET_Tests.ttcn @@ -18,7 +18,7 @@ { provider := { fr := { - netdev := "hdlc2", + netdev := "hdlcnet1", dlci := 123 } }, -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22445 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If456a575cc2ae0ab2fc63730b329131dfcc70a47 Gerrit-Change-Number: 22445 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 14:51:17 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 26 Jan 2021 14:51:17 +0000 Subject: Change in osmo-ttcn3-hacks[master]: fr-net: Fix regen_makefile.sh In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22444 ) Change subject: fr-net: Fix regen_makefile.sh ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22444 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I0fecfb0d3c33f8d87923d4843fee718916001978 Gerrit-Change-Number: 22444 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 26 Jan 2021 14:51:17 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 14:51:26 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 26 Jan 2021 14:51:26 +0000 Subject: Change in osmo-ttcn3-hacks[master]: fr-net: use 'hdlcnet1' as default netdev In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22445 ) Change subject: fr-net: use 'hdlcnet1' as default netdev ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22445 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If456a575cc2ae0ab2fc63730b329131dfcc70a47 Gerrit-Change-Number: 22445 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 26 Jan 2021 14:51:26 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 14:51:44 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 26 Jan 2021 14:51:44 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Increemnt many timeouts from 1s to 2s. In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22443 ) Change subject: gbproxy: Increemnt many timeouts from 1s to 2s. ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22443 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Iebb43283ad7c267c6ed7f49989ec453be38956a9 Gerrit-Change-Number: 22443 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 26 Jan 2021 14:51:44 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 14:55:34 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 26 Jan 2021 14:55:34 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Increemnt many timeouts from 1s to 2s. In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22443 ) Change subject: gbproxy: Increemnt many timeouts from 1s to 2s. ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22443 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Iebb43283ad7c267c6ed7f49989ec453be38956a9 Gerrit-Change-Number: 22443 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 26 Jan 2021 14:55:34 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 14:55:45 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 26 Jan 2021 14:55:45 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Increemnt many timeouts from 1s to 2s. In-Reply-To: References: Message-ID: daniel has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22443 ) Change subject: gbproxy: Increemnt many timeouts from 1s to 2s. ...................................................................... gbproxy: Increemnt many timeouts from 1s to 2s. Sending a message [even over a real or simulated E1 line] should always be less than 1s end-to-end. But just to see if increasing the timeouts to 2s will result in less test failures, let's change from 1s to 2s. Change-Id: Iebb43283ad7c267c6ed7f49989ec453be38956a9 --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 8 insertions(+), 8 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve daniel: Looks good to me, approved diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index ddcd9cb..df27a3d 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -804,7 +804,7 @@ integer pcu_idx := 0, boolean use_sig := false) runs on BSSGP_ConnHdlr { var integer sgsn_idx := g_pars.sgsn_idx; var PDU_BSSGP rx; - timer T := 1.0; + timer T := 2.0; if (use_sig) { PCU_SIG[pcu_idx].send(tx); @@ -841,7 +841,7 @@ runs on BSSGP_ConnHdlr return integer { var integer rx_idx := -1; var PDU_BSSGP rx; - timer T := 1.0; + timer T := 2.0; if (use_sig) { PCU_SIG[pcu_idx].send(tx); @@ -878,7 +878,7 @@ integer pcu_idx := 0, boolean use_sig := false) runs on BSSGP_ConnHdlr { var integer sgsn_idx := g_pars.sgsn_idx; var PDU_BSSGP rx; - timer T := 1.0; + timer T := 2.0; if (use_sig) { SGSN_SIG[sgsn_idx].send(tx); @@ -975,7 +975,7 @@ integer pcu_idx := 0, integer sgsn_idx := 0) runs on GlobalTest_CT { var integer rx_idx; var PDU_BSSGP rx; - timer T := 1.0; + timer T := 2.0; G_PCU[pcu_idx].send(tx); T.start; @@ -1002,7 +1002,7 @@ integer sgsn_idx := 0, integer pcu_idx := 0) runs on GlobalTest_CT { var integer rx_idx; var PDU_BSSGP rx; - timer T := 1.0; + timer T := 2.0; G_SGSN[sgsn_idx].send(tx); T.start; @@ -2819,7 +2819,7 @@ friend function f_rim_pcu2sgsn(template (value) PDU_BSSGP tx, template (present) PDU_BSSGP exp_rx, integer pcu_idx := 0) runs on GlobalTest_CT { var PDU_BSSGP rx; - timer T := 1.0; + timer T := 2.0; RIM_PCU[pcu_idx].send(tx); T.start; @@ -2842,7 +2842,7 @@ friend function f_rim_sgsn2pcu(template (value) PDU_BSSGP tx, template (present) PDU_BSSGP exp_rx, integer sgsn_idx := 0, integer pcu_idx := 0) runs on GlobalTest_CT { var PDU_BSSGP rx; - timer T := 1.0; + timer T := 2.0; RIM_SGSN[sgsn_idx].send(tx); T.start; @@ -2866,7 +2866,7 @@ integer src_pcu_idx, integer dst_pcu_idx) runs on GlobalTest_CT { var integer rx_idx; var PDU_BSSGP rx; - timer T := 1.0; + timer T := 2.0; RIM_PCU[src_pcu_idx].send(tx); T.start; -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22443 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Iebb43283ad7c267c6ed7f49989ec453be38956a9 Gerrit-Change-Number: 22443 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 15:10:51 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 26 Jan 2021 15:10:51 +0000 Subject: Change in libosmocore[master]: WIP: Tracing References: Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22446 ) Change subject: WIP: Tracing ...................................................................... WIP: Tracing Change-Id: I78945ab2bde7c93e9461dc446809f7cbd6493100 --- M include/osmocom/core/fsm.h M include/osmocom/core/logging.h M include/osmocom/core/tdef.h M src/fsm.c M src/gb/gprs_ns2_vc_fsm.c M src/logging.c M src/tdef.c 7 files changed, 160 insertions(+), 52 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/46/22446/1 diff --git a/include/osmocom/core/fsm.h b/include/osmocom/core/fsm.h index 77ebe7c..9ff5873 100644 --- a/include/osmocom/core/fsm.h +++ b/include/osmocom/core/fsm.h @@ -202,6 +202,34 @@ #define OSMO_T_FMT "%c%u" #define OSMO_T_FMT_ARGS(T) ((T) >= 0 ? 'T' : 'X'), ((T) >= 0 ? T : -T) +/* FSM Tracing Macros */ +#define TRACEPFSMENTSRC(fi, file, line, func, fmt, args...) \ + TRACEPSRC((fi)->fsm->log_subsys, TRACEOP_ENTFUN, \ + file, line, func, \ + "fsminst=%p name=%s id=%s state=%s%s" fmt, fi, \ + (fi)->fsm->name, (fi)->id, \ + osmo_fsm_state_name((fi)->fsm, (fi)->state), \ + fmt[0] ? " " : "", ## args) +#define TRACEPFSMEXTSRC(fi, file, line, func, fmt, args...) \ + TRACEPSRC((fi)->fsm->log_subsys, TRACEOP_EXTFUN, \ + file, line, func, fmt, ##args) +#define TRACEPFSMATTRSRC(fi, file, line, func, fmt, args...) \ + TRACEPSRC((fi)->fsm->log_subsys, TRACEOP_ATTR, \ + file, line, func, fmt, ##args) + +#define TRACEPFSMENT(fi, fmt, args...) \ + TRACEP((fi)->fsm->log_subsys, TRACEOP_ENTFUN, \ + "fsminst=%p name=%s id=%s state=%s%s" fmt, fi, \ + (fi)->fsm->name, (fi)->id, \ + osmo_fsm_state_name((fi)->fsm, (fi)->state), \ + fmt[0] ? " " : "", ## args) + +#define TRACEPFSMEXT(fi, fmt, args...) \ + TRACEP((fi)->fsm->log_subsys, TRACEOP_EXTFUN, fmt, ##args) + +#define TRACEPFSMATTR(fi, fmt, args...) \ + TRACEP((fi)->fsm->log_subsys, TRACEOP_ATTR, fmt, ##args) + int osmo_fsm_register(struct osmo_fsm *fsm); void osmo_fsm_unregister(struct osmo_fsm *fsm); struct osmo_fsm *osmo_fsm_find_by_name(const char *name); @@ -240,17 +268,17 @@ */ #define osmo_fsm_inst_state_chg(fi, new_state, timeout_secs, T) \ _osmo_fsm_inst_state_chg(fi, new_state, timeout_secs, T, \ - __FILE__, __LINE__) + __FILE__, __LINE__, __func__) int _osmo_fsm_inst_state_chg(struct osmo_fsm_inst *fi, uint32_t new_state, unsigned long timeout_secs, int T, - const char *file, int line); + const char *file, int line, const char *func); #define osmo_fsm_inst_state_chg_ms(fi, new_state, timeout_ms, T) \ _osmo_fsm_inst_state_chg_ms(fi, new_state, timeout_ms, T, \ - __FILE__, __LINE__) + __FILE__, __LINE__, __func__) int _osmo_fsm_inst_state_chg_ms(struct osmo_fsm_inst *fi, uint32_t new_state, unsigned long timeout_ms, int T, - const char *file, int line); + const char *file, int line, const char *func); /*! perform a state change while keeping the current timer running. * @@ -263,9 +291,9 @@ */ #define osmo_fsm_inst_state_chg_keep_timer(fi, new_state) \ _osmo_fsm_inst_state_chg_keep_timer(fi, new_state, \ - __FILE__, __LINE__) + __FILE__, __LINE__, __func__) int _osmo_fsm_inst_state_chg_keep_timer(struct osmo_fsm_inst *fi, uint32_t new_state, - const char *file, int line); + const char *file, int line, const char *func); /*! perform a state change while keeping the current timer if running, or starting a timer otherwise. * @@ -277,17 +305,17 @@ */ #define osmo_fsm_inst_state_chg_keep_or_start_timer(fi, new_state, timeout_secs, T) \ _osmo_fsm_inst_state_chg_keep_or_start_timer(fi, new_state, timeout_secs, T, \ - __FILE__, __LINE__) + __FILE__, __LINE__, __func__) int _osmo_fsm_inst_state_chg_keep_or_start_timer(struct osmo_fsm_inst *fi, uint32_t new_state, unsigned long timeout_secs, int T, - const char *file, int line); + const char *file, int line, const char *func); #define osmo_fsm_inst_state_chg_keep_or_start_timer_ms(fi, new_state, timeout_ms, T) \ _osmo_fsm_inst_state_chg_keep_or_start_timer_ms(fi, new_state, timeout_ms, T, \ - __FILE__, __LINE__) + __FILE__, __LINE__, __func__) int _osmo_fsm_inst_state_chg_keep_or_start_timer_ms(struct osmo_fsm_inst *fi, uint32_t new_state, unsigned long timeout_ms, int T, - const char *file, int line); + const char *file, int line, const char *func); /*! dispatch an event to an osmocom finite state machine instance @@ -297,9 +325,9 @@ * purposes. See there for documentation. */ #define osmo_fsm_inst_dispatch(fi, event, data) \ - _osmo_fsm_inst_dispatch(fi, event, data, __FILE__, __LINE__) + _osmo_fsm_inst_dispatch(fi, event, data, __FILE__, __LINE__, __func__) int _osmo_fsm_inst_dispatch(struct osmo_fsm_inst *fi, uint32_t event, void *data, - const char *file, int line); + const char *file, int line, const char *func); /*! Terminate FSM instance with given cause * @@ -308,10 +336,10 @@ * See there for documentation. */ #define osmo_fsm_inst_term(fi, cause, data) \ - _osmo_fsm_inst_term(fi, cause, data, __FILE__, __LINE__) + _osmo_fsm_inst_term(fi, cause, data, __FILE__, __LINE__, __func__) void _osmo_fsm_inst_term(struct osmo_fsm_inst *fi, enum osmo_fsm_term_cause cause, void *data, - const char *file, int line); + const char *file, int line, const char *func); /*! Terminate all child FSM instances of an FSM instance. * @@ -320,11 +348,11 @@ * purposes. See there for documentation. */ #define osmo_fsm_inst_term_children(fi, cause, data) \ - _osmo_fsm_inst_term_children(fi, cause, data, __FILE__, __LINE__) + _osmo_fsm_inst_term_children(fi, cause, data, __FILE__, __LINE__, __func__) void _osmo_fsm_inst_term_children(struct osmo_fsm_inst *fi, enum osmo_fsm_term_cause cause, void *data, - const char *file, int line); + const char *file, int line, const char *func); /*! dispatch an event to all children of an osmocom finite state machine instance * @@ -333,8 +361,8 @@ * purposes. See there for documentation. */ #define osmo_fsm_inst_broadcast_children(fi, cause, data) \ - _osmo_fsm_inst_broadcast_children(fi, cause, data, __FILE__, __LINE__) + _osmo_fsm_inst_broadcast_children(fi, cause, data, __FILE__, __LINE__, __func__) void _osmo_fsm_inst_broadcast_children(struct osmo_fsm_inst *fi, uint32_t event, - void *data, const char *file, int line); + void *data, const char *file, int line, const char *func); /*! @} */ diff --git a/include/osmocom/core/logging.h b/include/osmocom/core/logging.h index c7f89de..d27c4a3 100644 --- a/include/osmocom/core/logging.h +++ b/include/osmocom/core/logging.h @@ -50,10 +50,7 @@ * \param[in] args variable argument list */ #define LOGPC(ss, level, fmt, args...) \ - do { \ - if (log_check_level(ss, level)) \ - logp2(ss, level, __FILE__, __LINE__, 1, fmt, ##args); \ - } while(0) + LOGPSRCC(ss, level, NULL, 0, 1, fmt, ##args) /*! Log through the Osmocom logging framework with explicit source. * If caller_file is passed as NULL, __FILE__ and __LINE__ are used @@ -85,6 +82,7 @@ */ #define LOGPSRCC(ss, level, caller_file, caller_line, cont, fmt, args...) \ do { \ + TRACEPEVTSRC(ss, level, caller_file, caller_line, __func__, fmt, ##args); \ if (log_check_level(ss, level)) {\ if (caller_file) \ logp2(ss, level, caller_file, caller_line, cont, fmt, ##args); \ @@ -93,6 +91,33 @@ }\ } while(0) +#define TRACEOP_ENTFUN "ENTER" +#define TRACEOP_EXTFUN "EXIT" +#define TRACEOP_ATTR "ATTR" +#define TRACEOP_EVT "EVT" + +#define TRACEP(ss, oper, fmt, args...) \ + TRACEPSRC(ss, oper, NULL, 0, (const char *)NULL, fmt, ##args) +#define TRACEPSRC(ss, oper, caller_file, caller_line, caller_func, fmt, args...) \ + do { \ + if (log_check_level(DLTRACE, LOGL_DEBUG)) {\ + if (caller_file) \ + logp2(DLTRACE, LOGL_DEBUG, caller_file, caller_line, 0, "[" oper " func=%s ss=%02x]%s" fmt, caller_func, ss, fmt[0]?" ":"", ##args); \ + else \ + logp2(DLTRACE, LOGL_DEBUG, __FILE__, __LINE__, 0, "[" oper " func=%s ss=%02x]%s" fmt, __func__, ss, fmt[0]?" ":"", ##args); \ + }\ + } while(0) + +#define TRACEPENTFUN(ss, fmt, args...) \ + TRACEP(ss, TRACEOP_ENTFUN, fmt, ##args) +#define TRACEPEXTFUN(ss, fmt, args...) \ + TRACEP(ss, TRACEOP_EXTFUN, fmt, ##args) +#define TRACEPATTR(ss, fmt, args...) \ + TRACEP(ss, TRACEOP_ATTR, fmt, ##args) +#define TRACEPEVTSRC(ss, level, caller_file, caller_line, caller_func, fmt, args...) \ + TRACEPSRC(ss, TRACEOP_EVT, caller_file, caller_line, caller_func, "level=%02x " fmt, level, ##args) + + /*! different log levels */ #define LOGL_DEBUG 1 /*!< debugging information */ #define LOGL_INFO 3 /*!< general information */ @@ -122,7 +147,8 @@ #define DLRSPRO -19 /*!< Osmocom Remote SIM Protocol */ #define DLNS -20 /*!< Osmocom NS layer */ #define DLBSSGP -21 /*!< Osmocom BSSGP layer */ -#define OSMO_NUM_DLIB 21 /*!< Number of logging sub-systems in libraries */ +#define DLTRACE -22 /*!< Osmocom Tracing messages (intended for GSMTAP logging) */ +#define OSMO_NUM_DLIB 22 /*!< Number of logging sub-systems in libraries */ /* Colors that can be used in log_info_cat.color */ #define OSMO_LOGCOLOR_NORMAL NULL diff --git a/include/osmocom/core/tdef.h b/include/osmocom/core/tdef.h index 627ba3f..a589d43 100644 --- a/include/osmocom/core/tdef.h +++ b/include/osmocom/core/tdef.h @@ -159,11 +159,11 @@ */ #define osmo_tdef_fsm_inst_state_chg(fi, state, timeouts_array, tdefs, default_timeout) \ _osmo_tdef_fsm_inst_state_chg(fi, state, timeouts_array, tdefs, default_timeout, \ - __FILE__, __LINE__) + __FILE__, __LINE__, __func__) int _osmo_tdef_fsm_inst_state_chg(struct osmo_fsm_inst *fi, uint32_t state, const struct osmo_tdef_state_timeout *timeouts_array, const struct osmo_tdef *tdefs, unsigned long default_timeout, - const char *file, int line); + const char *file, int line, const char *func); /*! Manage timer definitions in named groups. * This should be defined as an array with the final element kept fully zero-initialized, diff --git a/src/fsm.c b/src/fsm.c index f1dbb41..ebb9f97 100644 --- a/src/fsm.c +++ b/src/fsm.c @@ -319,14 +319,17 @@ struct osmo_fsm *fsm = fi->fsm; int32_t T = fi->T; + TRACEPFSMENT(fi, "timer=" OSMO_T_FMT, OSMO_T_FMT_ARGS(fi->T)); LOGPFSM(fi, "Timeout of " OSMO_T_FMT "\n", OSMO_T_FMT_ARGS(fi->T)); if (fsm->timer_cb) { int rc = fsm->timer_cb(fi); - if (rc != 1) + if (rc != 1) { /* We don't actually know whether fi exists anymore. * Make sure to not access it and return right away. */ + TRACEPFSMEXT(fi, ""); return; + } /* The timer_cb told us to terminate, so we can safely assume * that fi still exists. */ LOGPFSM(fi, "timer_cb requested termination\n"); @@ -335,6 +338,7 @@ /* if timer_cb returns 1 or there is no timer_cb */ osmo_fsm_inst_term(fi, OSMO_FSM_TERM_TIMEOUT, &T); + TRACEPFSMEXT(fi, ""); } /*! Change id of the FSM instance @@ -453,6 +457,7 @@ fsm_free_or_steal(fi); return NULL; } + TRACEPFSMENT(fi, "fsm_alloc=1 fsm_parent=%p", ctx); INIT_LLIST_HEAD(&fi->proc.children); INIT_LLIST_HEAD(&fi->proc.child); @@ -460,6 +465,7 @@ LOGPFSM(fi, "Allocated\n"); + TRACEPFSMEXT(fi, "status=ok"); return fi; } @@ -479,19 +485,20 @@ uint32_t parent_term_event) { struct osmo_fsm_inst *fi; + TRACEPFSMENT(parent, ""); fi = osmo_fsm_inst_alloc(fsm, parent, NULL, parent->log_level, parent->id); if (!fi) { /* indicate immediate termination to caller */ osmo_fsm_inst_dispatch(parent, parent_term_event, NULL); + TRACEPFSMEXT(fi, "status=error"); return NULL; } - LOGPFSM(fi, "is child of %s\n", osmo_fsm_inst_name(parent)); osmo_fsm_inst_change_parent(fi, parent, parent_term_event); - + TRACEPFSMEXT(fi, "status=ok"); return fi; } @@ -540,6 +547,9 @@ */ void osmo_fsm_inst_free(struct osmo_fsm_inst *fi) { + uint32_t ss = fi->fsm->log_subsys; + TRACEPFSMENT(fi, "fsm_free=1"); + osmo_timer_del(&fi->timer); llist_del(&fi->list); @@ -554,6 +564,7 @@ LOGPFSM(fi, "Deferring deallocation\n"); /* Don't free anything yet. Exit. */ + TRACEPFSMEXT(fi, "status=ok"); return; } @@ -574,6 +585,8 @@ fsm_free_or_steal(fi); } fsm_term_safely.root_fi = NULL; + + TRACEP(ss, TRACEOP_EXTFUN, "status=ok"); } /*! get human-readable name of FSM event @@ -623,17 +636,20 @@ static int state_chg(struct osmo_fsm_inst *fi, uint32_t new_state, bool keep_timer, unsigned long timeout_ms, int T, - const char *file, int line) + const char *file, int line, const char *func) { struct osmo_fsm *fsm = fi->fsm; uint32_t old_state = fi->state; const struct osmo_fsm_state *st = &fsm->states[fi->state]; struct timeval remaining; + TRACEPFSMENTSRC(fi, file, line, func, "new_state=%s T=%u tout_ms=%lu", osmo_fsm_state_name(fsm, new_state), T, timeout_ms); + if (fi->proc.terminating) { LOGPFSMSRC(fi, file, line, "FSM instance already terminating, not changing state to %s\n", osmo_fsm_state_name(fsm, new_state)); + TRACEPFSMEXTSRC(fi, file, line, func, "status=error"); return -EINVAL; } @@ -642,6 +658,7 @@ LOGPFSMLSRC(fi, LOGL_ERROR, file, line, "transition to state %s not permitted!\n", osmo_fsm_state_name(fsm, new_state)); + TRACEPFSMEXTSRC(fi, file, line, func, "status=error Invalid transition"); return -EPERM; } @@ -698,6 +715,7 @@ if (st->onenter) st->onenter(fi, old_state); + TRACEPFSMEXTSRC(fi, file, line, func, "status=ok"); return 0; } @@ -743,15 +761,15 @@ */ int _osmo_fsm_inst_state_chg(struct osmo_fsm_inst *fi, uint32_t new_state, unsigned long timeout_secs, int T, - const char *file, int line) + const char *file, int line, const char *func) { - return state_chg(fi, new_state, false, timeout_secs*1000, T, file, line); + return state_chg(fi, new_state, false, timeout_secs*1000, T, file, line, func); } int _osmo_fsm_inst_state_chg_ms(struct osmo_fsm_inst *fi, uint32_t new_state, unsigned long timeout_ms, int T, - const char *file, int line) + const char *file, int line, const char *func) { - return state_chg(fi, new_state, false, timeout_ms, T, file, line); + return state_chg(fi, new_state, false, timeout_ms, T, file, line, func); } /*! perform a state change while keeping the current timer running. @@ -774,9 +792,9 @@ * \returns 0 on success; negative on error */ int _osmo_fsm_inst_state_chg_keep_timer(struct osmo_fsm_inst *fi, uint32_t new_state, - const char *file, int line) + const char *file, int line, const char *func) { - return state_chg(fi, new_state, true, 0, 0, file, line); + return state_chg(fi, new_state, true, 0, 0, file, line, func); } /*! perform a state change while keeping the current timer if running, or starting a timer otherwise. @@ -803,15 +821,15 @@ */ int _osmo_fsm_inst_state_chg_keep_or_start_timer(struct osmo_fsm_inst *fi, uint32_t new_state, unsigned long timeout_secs, int T, - const char *file, int line) + const char *file, int line, const char* func) { - return state_chg(fi, new_state, true, timeout_secs*1000, T, file, line); + return state_chg(fi, new_state, true, timeout_secs*1000, T, file, line, func); } int _osmo_fsm_inst_state_chg_keep_or_start_timer_ms(struct osmo_fsm_inst *fi, uint32_t new_state, unsigned long timeout_ms, int T, - const char *file, int line) + const char *file, int line, const char *func) { - return state_chg(fi, new_state, true, timeout_ms, T, file, line); + return state_chg(fi, new_state, true, timeout_ms, T, file, line, func); } @@ -833,7 +851,7 @@ * \returns 0 in case of success; negative on error */ int _osmo_fsm_inst_dispatch(struct osmo_fsm_inst *fi, uint32_t event, void *data, - const char *file, int line) + const char *file, int line, const char *func) { struct osmo_fsm *fsm; const struct osmo_fsm_state *fs; @@ -847,11 +865,13 @@ } fsm = fi->fsm; + TRACEPFSMENTSRC(fi, file, line, func, "event=%s", osmo_fsm_event_name(fsm, event)); if (fi->proc.terminating) { LOGPFSMSRC(fi, file, line, "FSM instance already terminating, not dispatching event %s\n", osmo_fsm_event_name(fsm, event)); + TRACEPFSMEXTSRC(fi, file, line, func, "status=error"); return -EINVAL; } @@ -863,6 +883,7 @@ if (((1 << event) & fsm->allstate_event_mask) && fsm->allstate_action) { fsm->allstate_action(fi, event, data); + TRACEPFSMEXTSRC(fi, file, line, func, "status=ok"); return 0; } @@ -870,12 +891,14 @@ LOGPFSMLSRC(fi, LOGL_ERROR, file, line, "Event %s not permitted\n", osmo_fsm_event_name(fsm, event)); + TRACEPFSMEXTSRC(fi, file, line, func, "status=error"); return -1; } if (fs->action) fs->action(fi, event, data); + TRACEPFSMEXTSRC(fi, file, line, func, "status=ok"); return 0; } @@ -897,7 +920,7 @@ */ void _osmo_fsm_inst_term(struct osmo_fsm_inst *fi, enum osmo_fsm_term_cause cause, void *data, - const char *file, int line) + const char *file, int line, const char *func) { struct osmo_fsm_inst *parent; uint32_t parent_term_event = fi->proc.parent_term_event; @@ -934,7 +957,7 @@ fi->fsm->pre_term(fi, cause); _osmo_fsm_inst_term_children(fi, OSMO_FSM_TERM_PARENT, NULL, - file, line); + file, line, func); /* delete ourselves from the parent */ parent = fi->proc.parent; @@ -962,7 +985,7 @@ /* indicate our termination to the parent */ if (parent && cause != OSMO_FSM_TERM_PARENT) _osmo_fsm_inst_dispatch(parent, parent_term_event, data, - file, line); + file, line, func); /* Newer, safe deallocation: free only after the parent_term_event was dispatched, to catch all termination * cascades, and free all FSM instances at once. (If fsm_term_safely is enabled, depth will *always* be > 0 @@ -988,7 +1011,7 @@ void _osmo_fsm_inst_term_children(struct osmo_fsm_inst *fi, enum osmo_fsm_term_cause cause, void *data, - const char *file, int line) + const char *file, int line, const char *func) { struct osmo_fsm_inst *first_child, *last_seen_first_child; @@ -1012,7 +1035,7 @@ /* terminate child */ _osmo_fsm_inst_term(first_child, cause, data, - file, line); + file, line, func); } } @@ -1028,11 +1051,11 @@ */ void _osmo_fsm_inst_broadcast_children(struct osmo_fsm_inst *fi, uint32_t event, void *data, - const char *file, int line) + const char *file, int line, const char *func) { struct osmo_fsm_inst *child, *tmp; llist_for_each_entry_safe(child, tmp, &fi->proc.children, proc.child) { - _osmo_fsm_inst_dispatch(child, event, data, file, line); + _osmo_fsm_inst_dispatch(child, event, data, file, line, func); } } diff --git a/src/gb/gprs_ns2_vc_fsm.c b/src/gb/gprs_ns2_vc_fsm.c index 7ee29a1..764445a 100644 --- a/src/gb/gprs_ns2_vc_fsm.c +++ b/src/gb/gprs_ns2_vc_fsm.c @@ -46,6 +46,7 @@ #include #include "gprs_ns2_internal.h" +#include "osmocom/core/logging.h" #define S(x) (1 << (x)) @@ -477,6 +478,7 @@ struct gprs_ns2_inst *nsi = ns_inst_from_fi(fi); struct gprs_ns2_vc_priv *priv = fi->priv; + TRACEPFSMENT(fi, "nsei=%05u", priv->nsvc->nse->nsei); switch (fi->state) { case GPRS_NS2_ST_RESET: if (priv->initiate_reset) { @@ -521,6 +523,7 @@ } break; } + TRACEPFSMEXT(fi, "status=ok"); return 0; } @@ -533,8 +536,11 @@ struct osmo_gprs_ns2_prim nsp = {}; uint16_t bvci; + TRACEPFSMENT(fi, "nsei=%05u", priv->nsvc->nse->nsei); + if (msgb_l2len(msg) < sizeof(*nsh) + 3) { msgb_free(msg); + TRACEPFSMEXT(fi, "status=error Message too small"); return; } @@ -549,6 +555,7 @@ nsp.bvci = bvci; nsp.nsei = priv->nsvc->nse->nsei; + TRACEPATTR(DNS, "bvci=%05u", bvci); /* 10.3.9 NS SDU Control Bits */ if (nsh->data[0] & 0x1) nsp.u.unitdata.change = NS_ENDPOINT_REQUEST_CHANGE; @@ -556,6 +563,7 @@ osmo_prim_init(&nsp.oph, SAP_NS, PRIM_NS_UNIT_DATA, PRIM_OP_INDICATION, msg); nsi->cb(&nsp.oph, nsi->cb_data); + TRACEPFSMEXT(fi, "status=ok"); } static void ns2_vc_fsm_allstate_action(struct osmo_fsm_inst *fi, @@ -566,6 +574,8 @@ struct gprs_ns2_inst *nsi = ns_inst_from_fi(fi); struct msgb *msg = data; + TRACEPFSMENT(fi, "nsei=%05u", priv->nsvc->nse->nsei); + switch (event) { case GPRS_NS2_EV_RX_RESET: if (priv->nsvc->mode != NS2_VC_MODE_BLOCKRESET) @@ -607,6 +617,8 @@ /* 7.2.1: the BLOCKED_ACK might be lost */ if (priv->accept_unitdata) { ns2_recv_unitdata(fi, msg); + TRACEPFSMEXT(fi, "status=ok"); + return; } @@ -618,6 +630,7 @@ case GPRS_NS2_ST_ALIVE: case GPRS_NS2_ST_UNBLOCKED: ns2_recv_unitdata(fi, msg); + TRACEPFSMEXT(fi, "status=ok"); return; } @@ -628,6 +641,7 @@ /* Force the NSVC back to its initial state */ osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_UNCONFIGURED, 0, 0); osmo_fsm_inst_dispatch(fi, GPRS_NS2_EV_REQ_START, NULL); + TRACEPFSMEXT(fi, "status=ok"); return; } break; @@ -646,6 +660,7 @@ osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_BLOCKED, nsi->timeout[NS_TOUT_TNS_BLOCK], 0); break; } + TRACEPFSMEXT(fi, ""); } static void ns2_vc_fsm_clean(struct osmo_fsm_inst *fi, @@ -694,6 +709,8 @@ if (!fi) return fi; + TRACEPFSMENT(fi, "nsei=%05u", nsvc->nse->nsei); + nsvc->fi = fi; priv = fi->priv = talloc_zero(fi, struct gprs_ns2_vc_priv); priv->nsvc = nsvc; @@ -701,6 +718,8 @@ osmo_timer_setup(&priv->alive.timer, alive_timeout_handler, fi); + TRACEPFSMEXT(fi, "status=ok"); + return fi; } @@ -752,6 +771,8 @@ uint8_t cause; uint16_t nsei, nsvci; + TRACEPFSMENT(fi, "nsei=%05u span.kind=server", nsvc->nse->nsei); + /* TODO: 7.2: on UNBLOCK/BLOCK: check if NS-VCI is correct, * if not answer STATUS with "NS-VC unknown" */ /* TODO: handle BLOCK/UNBLOCK/ALIVE with different VCI */ @@ -817,16 +838,20 @@ case NS_PDUT_UNITDATA: /* UNITDATA have to free msg because it might send the msg layer upwards */ osmo_fsm_inst_dispatch(fi, GPRS_NS2_EV_RX_UNITDATA, msg); + TRACEPFSMEXT(fi, "status=ok"); return 0; default: LOGPFSML(fi, LOGL_ERROR, "NSEI=%u Rx unknown NS PDU type %s\n", nsvc->nse->nsei, get_value_string(gprs_ns_pdu_strings, nsh->pdu_type)); + TRACEPFSMEXT(fi, "status=error NSEI unknown"); return -EINVAL; } out: msgb_free(msg); + TRACEPFSMEXT(fi, "status=ok"); + return rc; } diff --git a/src/logging.c b/src/logging.c index 60dba64..3462112 100644 --- a/src/logging.c +++ b/src/logging.c @@ -263,6 +263,12 @@ .enabled = 1, .loglevel = LOGL_NOTICE, .color = "\033[38;5;59m", }, + [INT2IDX(DLTRACE)] = { + .name = "DLTRACE", + .description = "Machine-parsable trace messages (for use with GSMTAP logging)", + .enabled = 0, .loglevel = LOGL_NOTICE, + .color = "", + }, }; void assert_loginfo(const char *src) diff --git a/src/tdef.c b/src/tdef.c index 897a92f..3cd9696 100644 --- a/src/tdef.c +++ b/src/tdef.c @@ -332,29 +332,29 @@ int _osmo_tdef_fsm_inst_state_chg(struct osmo_fsm_inst *fi, uint32_t state, const struct osmo_tdef_state_timeout *timeouts_array, const struct osmo_tdef *tdefs, unsigned long default_timeout, - const char *file, int line) + const char *file, int line, const char *func) { const struct osmo_tdef_state_timeout *t = osmo_tdef_get_state_timeout(state, timeouts_array); unsigned long val = 0; /* No timeout defined for this state? */ if (!t) - return _osmo_fsm_inst_state_chg(fi, state, 0, 0, file, line); + return _osmo_fsm_inst_state_chg(fi, state, 0, 0, file, line, func); if (t->T) val = osmo_tdef_get(tdefs, t->T, OSMO_TDEF_S, default_timeout); if (t->keep_timer) { if (t->T) - return _osmo_fsm_inst_state_chg_keep_or_start_timer(fi, state, val, t->T, file, line); + return _osmo_fsm_inst_state_chg_keep_or_start_timer(fi, state, val, t->T, file, line, func); else - return _osmo_fsm_inst_state_chg_keep_timer(fi, state, file, line); + return _osmo_fsm_inst_state_chg_keep_timer(fi, state, file, line, func); } /* val is always initialized here, because if t->keep_timer is false, t->T must be != 0. * Otherwise osmo_tdef_get_state_timeout() would have returned NULL. */ OSMO_ASSERT(t->T); - return _osmo_fsm_inst_state_chg(fi, state, val, t->T, file, line); + return _osmo_fsm_inst_state_chg(fi, state, val, t->T, file, line, func); } const struct value_string osmo_tdef_unit_names[] = { -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22446 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I78945ab2bde7c93e9461dc446809f7cbd6493100 Gerrit-Change-Number: 22446 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 15:10:51 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 26 Jan 2021 15:10:51 +0000 Subject: Change in libosmocore[master]: WIP mtu support References: Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22447 ) Change subject: WIP mtu support ...................................................................... WIP mtu support Change-Id: Iaf621da527ace8b3fcaa8f51f5e8b4f26fdae9b7 --- M include/osmocom/gprs/bssgp_bvc_fsm.h M include/osmocom/gprs/gprs_bssgp2.h M src/gb/bssgp_bvc_fsm.c M src/gb/gprs_bssgp2.c 4 files changed, 29 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/47/22447/1 diff --git a/include/osmocom/gprs/bssgp_bvc_fsm.h b/include/osmocom/gprs/bssgp_bvc_fsm.h index e69c205..9d37c3d 100644 --- a/include/osmocom/gprs/bssgp_bvc_fsm.h +++ b/include/osmocom/gprs/bssgp_bvc_fsm.h @@ -30,6 +30,7 @@ BSSGP_BVCFSM_E_REQ_UNBLOCK, BSSGP_BVCFSM_E_REQ_RESET, /* data: uint8_t *cause */ BSSGP_BVCFSM_E_REQ_FC_BVC, /* data: struct bssgp2_flow_ctrl */ + BSSGP_BVCFSM_E_REQ_STATUS, /* data: struct bssgp2_status */ }; struct bssgp_bvc_fsm_ops { @@ -64,3 +65,5 @@ uint32_t bssgp_bvc_get_features_advertised(struct osmo_fsm_inst *fi); uint32_t bssgp_bvc_get_features_received(struct osmo_fsm_inst *fi); uint32_t bssgp_bvc_get_features_negotiated(struct osmo_fsm_inst *fi); + +void bssgp_bvc_fsm_set_mtu(struct osmo_fsm_inst *fi, uint16_t mtu); \ No newline at end of file diff --git a/include/osmocom/gprs/gprs_bssgp2.h b/include/osmocom/gprs/gprs_bssgp2.h index bf814cb..2396bea 100644 --- a/include/osmocom/gprs/gprs_bssgp2.h +++ b/include/osmocom/gprs/gprs_bssgp2.h @@ -4,6 +4,9 @@ #include #include +/* Set a conservative MTU as default (Ethernet MTU of 1500 - IPv6 Header - UDP Header */ +#define DEFAULT_BSSGP_MTU (1500 - 40 - 8) + struct bssgp2_flow_ctrl; struct gprs_ns2_inst; struct gprs_ra_id; @@ -38,6 +41,12 @@ } u; }; +struct bssgp2_status { + uint8_t cause; + /* Only used if cause is "BVCI blocked" or "BVCI unknown" */ + const uint16_t *bvci; + const struct msgb *orig_msg; +}; int bssgp2_nsi_tx_ptp(struct gprs_ns2_inst *nsi, uint16_t nsei, uint16_t bvci, struct msgb *msg, uint32_t lsp); @@ -59,7 +68,7 @@ struct msgb *bssgp2_enc_bvc_reset_ack(uint16_t bvci, const struct gprs_ra_id *ra_id, uint16_t cell_id, const uint8_t *feat_bm, const uint8_t *ext_feat_bm); -struct msgb *bssgp2_enc_status(uint8_t cause, const uint16_t *bvci, const struct msgb *orig_msg); +struct msgb *bssgp2_enc_status(uint8_t cause, const uint16_t *bvci, const struct msgb *orig_msg, uint16_t mtu); int bssgp2_dec_fc_bvc(struct bssgp2_flow_ctrl *fc, const struct tlv_parsed *tp); diff --git a/src/gb/bssgp_bvc_fsm.c b/src/gb/bssgp_bvc_fsm.c index 6de0028..8db8866 100644 --- a/src/gb/bssgp_bvc_fsm.c +++ b/src/gb/bssgp_bvc_fsm.c @@ -116,6 +116,8 @@ /* NSEI of the underlying NS Entity */ uint16_t nsei; + /* MTU of the underlying NS Entity */ + uint16_t mtu; /* BVCI of this BVC */ uint16_t bvci; @@ -236,7 +238,7 @@ if (cause == BSSGP_CAUSE_UNKNOWN_BVCI || cause == BSSGP_CAUSE_BVCI_BLOCKED) bvci = &bfp->bvci; - tx = bssgp2_enc_status(cause, bvci, rx); + tx = bssgp2_enc_status(cause, bvci, rx, bfp->mtu); if (msgb_bvci(rx) == 0) fi_tx_sig(fi, tx); @@ -666,6 +668,7 @@ bfp->role_sgsn = role_sgsn; bfp->nsei = nsei; bfp->bvci = bvci; + bfp->mtu = DEFAULT_BSSGP_MTU; return fi; } diff --git a/src/gb/gprs_bssgp2.c b/src/gb/gprs_bssgp2.c index 5a8d41f..5ae31e7 100644 --- a/src/gb/gprs_bssgp2.c +++ b/src/gb/gprs_bssgp2.c @@ -217,8 +217,9 @@ /*! Encode BSSGP STATUS PDU as per TS 48.018 Section 10.4.14. * \param[in] cause BSSGP Cause value * \param[in] bvci optional BVCI - only encoded if non-NULL - * \param[in] msg optional message buffer containing PDU in error - only encoded if non-NULL */ -struct msgb *bssgp2_enc_status(uint8_t cause, const uint16_t *bvci, const struct msgb *orig_msg) + * \param[in] msg optional message buffer containing PDU in error - only encoded if non-NULL + * \param[in] mtu Maximum size the NS layer accepts as payload */ +struct msgb *bssgp2_enc_status(uint8_t cause, const uint16_t *bvci, const struct msgb *orig_msg, uint16_t mtu) { struct msgb *msg = bssgp_msgb_alloc(); struct bssgp_normal_hdr *bgph; @@ -229,12 +230,19 @@ bgph = (struct bssgp_normal_hdr *) msgb_put(msg, sizeof(*bgph)); bgph->pdu_type = BSSGP_PDUT_STATUS; msgb_tvlv_put(msg, BSSGP_IE_CAUSE, 1, &cause); + /* FIXME: Require/encode BVCI only if cause is BVCI unknown/blocked + * See 3GPP TS 48.018 Ch. 10.4.14 */ if (bvci) { uint16_t _bvci = osmo_htons(*bvci); msgb_tvlv_put(msg, BSSGP_IE_BVCI, 2, (uint8_t *) &_bvci); } - if (orig_msg) - msgb_tvlv_put(msg, BSSGP_IE_PDU_IN_ERROR, msgb_bssgp_len(orig_msg), msgb_bssgph(orig_msg)); + if (orig_msg) { + uint16_t len; + /* Calculate how long the orig_msg may be */ + mtu = mtu - msgb_length(msg); + len = OSMO_MIN(msgb_bssgp_len(orig_msg), mtu); + msgb_tvlv_put(msg, BSSGP_IE_PDU_IN_ERROR, len, msgb_bssgph(orig_msg)); + } return msg; } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22447 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Iaf621da527ace8b3fcaa8f51f5e8b4f26fdae9b7 Gerrit-Change-Number: 22447 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 15:10:52 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 26 Jan 2021 15:10:52 +0000 Subject: Change in libosmocore[master]: ns2: Fix assert when removing a bind listen References: Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22448 ) Change subject: ns2: Fix assert when removing a bind listen ...................................................................... ns2: Fix assert when removing a bind listen Change-Id: I3edd1e838f7516d9224045710047419039aa0ec0 Fixes: OS#4977 --- M src/gb/gprs_ns2_vty2.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/48/22448/1 diff --git a/src/gb/gprs_ns2_vty2.c b/src/gb/gprs_ns2_vty2.c index 43dd263..58b7fb3 100644 --- a/src/gb/gprs_ns2_vty2.c +++ b/src/gb/gprs_ns2_vty2.c @@ -506,7 +506,7 @@ if (!bind) return CMD_ERR_NOTHING_TODO; - OSMO_ASSERT(bind->ll != GPRS_NS2_LL_UDP); + OSMO_ASSERT(bind->ll == GPRS_NS2_LL_UDP); bind->driver->free_bind(bind); return CMD_SUCCESS; } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22448 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I3edd1e838f7516d9224045710047419039aa0ec0 Gerrit-Change-Number: 22448 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 15:11:39 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 26 Jan 2021 15:11:39 +0000 Subject: Change in libosmocore[master]: WIP: Tracing In-Reply-To: References: Message-ID: daniel has abandoned this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22446 ) Change subject: WIP: Tracing ...................................................................... Abandoned -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22446 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I78945ab2bde7c93e9461dc446809f7cbd6493100 Gerrit-Change-Number: 22446 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: abandon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 15:11:45 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 26 Jan 2021 15:11:45 +0000 Subject: Change in libosmocore[master]: WIP mtu support In-Reply-To: References: Message-ID: daniel has abandoned this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22447 ) Change subject: WIP mtu support ...................................................................... Abandoned -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22447 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Iaf621da527ace8b3fcaa8f51f5e8b4f26fdae9b7 Gerrit-Change-Number: 22447 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: abandon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 15:17:18 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 26 Jan 2021 15:17:18 +0000 Subject: Change in osmo-pcu[master]: sched: Avoid picking TBF with nacked dl blocks when GMSK is required In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22436 ) Change subject: sched: Avoid picking TBF with nacked dl blocks when GMSK is required ...................................................................... Patch Set 2: Code-Review+2 (1 comment) Now it's much easier to understand, thanks! https://gerrit.osmocom.org/c/osmo-pcu/+/22436/2/src/gprs_rlcmac_sched.cpp File src/gprs_rlcmac_sched.cpp: https://gerrit.osmocom.org/c/osmo-pcu/+/22436/2/src/gprs_rlcmac_sched.cpp at 348 PS2, Line 348: LOGP(DRLCMACSCHED, LOGL_DEBUG, "%s Cannot downgrade EGPRS TBF with prio %d\n", tbf_name(tbf), prio); (line length) -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22436 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I253de8e1a190a9adb56160f38892c9e43e2c0272 Gerrit-Change-Number: 22436 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 26 Jan 2021 15:17:18 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 15:20:13 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Tue, 26 Jan 2021 15:20:13 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: log source and destination RIM routing information In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22440 to look at the new patch set (#3). Change subject: gprs_bssgp: log source and destination RIM routing information ...................................................................... gprs_bssgp: log source and destination RIM routing information Whenever a RIM PDU is received, log to which RIM routing information (address) it is going to and where it is comming from. Change-Id: Ia08d3b162a4f6257cccaa7f0764fa7ea498355ef Related: SYS#5103 --- M src/gb/gprs_bssgp.c M src/gb/gprs_bssgp_util.c 2 files changed, 12 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/40/22440/3 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22440 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia08d3b162a4f6257cccaa7f0764fa7ea498355ef Gerrit-Change-Number: 22440 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 15:20:33 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Tue, 26 Jan 2021 15:20:33 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: log source and destination RIM routing information In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22440 ) Change subject: gprs_bssgp: log source and destination RIM routing information ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/22440/1/src/gb/gprs_bssgp.c File src/gb/gprs_bssgp.c: https://gerrit.osmocom.org/c/libosmocore/+/22440/1/src/gb/gprs_bssgp.c at 680 PS1, Line 680: bssgp_rim_ri_name_buf(routing_info_src_str, sizeof(routing_info_src_str), &nmp.u.rim_pdu.routing_info_src); > Better move this inside the DEBUGP params, I think then they don't get executed if loglevel is > DEB [?] Done -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22440 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia08d3b162a4f6257cccaa7f0764fa7ea498355ef Gerrit-Change-Number: 22440 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 26 Jan 2021 15:20:33 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 15:20:41 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Tue, 26 Jan 2021 15:20:41 +0000 Subject: Change in libosmocore[master]: gprs_bssgp_rim: add functions to convert a RIM-RI to a string In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22438 ) Change subject: gprs_bssgp_rim: add functions to convert a RIM-RI to a string ...................................................................... Patch Set 2: (3 comments) https://gerrit.osmocom.org/c/libosmocore/+/22438/1/src/gb/gprs_bssgp_rim.c File src/gb/gprs_bssgp_rim.c: https://gerrit.osmocom.org/c/libosmocore/+/22438/1/src/gb/gprs_bssgp_rim.c at 156 PS1, Line 156: static __thread char rai_buf[32]; > why don't you allocate these in the stack? oh, now I see, thats of course unnecessary. https://gerrit.osmocom.org/c/libosmocore/+/22438/1/src/gb/gprs_bssgp_rim.c at 158 PS1, Line 158: static __thread char en_bid_buf[16]; > You have 2 buffers but you use up to 2 only in each branch, so you can declare only 2 buffers. I want to have dedicated buffers to make the code more readable, now they are on the stack, so I think we can afford that extra memory now. https://gerrit.osmocom.org/c/libosmocore/+/22438/1/src/gb/gprs_bssgp_rim.c at 173 PS1, Line 173: osmo_rai_name2_buf(rai_buf, sizeof(rai_buf), &rai), ri->geran.cid); > There's osmo_cgi_ps_name family of APIs for this Done -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22438 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Idca6bdccffe663aea71a0183ca3ea5bb5b59e702 Gerrit-Change-Number: 22438 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 26 Jan 2021 15:20:41 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 15:23:49 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Tue, 26 Jan 2021 15:23:49 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: move struct bssgp_ran_information_pdu to gprs_bssgp_rim.h In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22442 ) Change subject: gprs_bssgp: move struct bssgp_ran_information_pdu to gprs_bssgp_rim.h ...................................................................... Patch Set 2: (2 comments) https://gerrit.osmocom.org/c/libosmocore/+/22442/1/include/osmocom/gprs/gprs_bssgp.h File include/osmocom/gprs/gprs_bssgp.h: https://gerrit.osmocom.org/c/libosmocore/+/22442/1/include/osmocom/gprs/gprs_bssgp.h at 45 PS1, Line 45: int bssgp_tx_rim(const struct bssgp_ran_information_pdu *pdu, uint16_t nsei); > What about this? Will be moved in a follow up patch, lets first get https://gerrit.osmocom.org/c/libosmocore/+/22440/3 clean so that we do not run into problems with merge conflicts. https://gerrit.osmocom.org/c/libosmocore/+/22442/1/include/osmocom/gprs/gprs_bssgp.h at 47 PS1, Line 47: int bssgp_parse_rim_pdu(struct bssgp_ran_information_pdu *pdu, const struct msgb *msg); > What about this? (see above) -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22442 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Icda279452962b06e552cb1361d2a27b7dc8a6b04 Gerrit-Change-Number: 22442 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 26 Jan 2021 15:23:49 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 15:24:55 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Tue, 26 Jan 2021 15:24:55 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: log source and destination RIM routing information In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22440 ) Change subject: gprs_bssgp: log source and destination RIM routing information ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/22440/2/src/gb/gprs_bssgp.c File src/gb/gprs_bssgp.c: https://gerrit.osmocom.org/c/libosmocore/+/22440/2/src/gb/gprs_bssgp.c at 681 PS2, Line 681: bssgp_rim_ri_name_buf > as those functions return a pointer, you could have simply moved them into the DEBUGP(), as pespin s [?] Done -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22440 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia08d3b162a4f6257cccaa7f0764fa7ea498355ef Gerrit-Change-Number: 22440 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 26 Jan 2021 15:24:55 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: laforge Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 15:26:50 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 26 Jan 2021 15:26:50 +0000 Subject: Change in osmo-pcu[master]: sched: Avoid picking TBF with nacked dl blocks when GMSK is required In-Reply-To: References: Message-ID: Hello osmith, Jenkins Builder, laforge, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-pcu/+/22436 to look at the new patch set (#3). Change subject: sched: Avoid picking TBF with nacked dl blocks when GMSK is required ...................................................................... sched: Avoid picking TBF with nacked dl blocks when GMSK is required Sine we don't yet implement properly all resegmentation of blocks from same MCS family type, when requiring a GMSK DL block (due to GPRS+EGPRS multiplexing limitations) we need to skip retransmitions, otherwise we'd be incorrectly picking a DL block which was already built with a potentially higher MCS value. The "DL_PRIO_NEW_DATA" prio serves two purposes: * There's new data to send * There's some nacked data to be retransmitted The 2nd purpose has, later on, more priority over the 1st one when the tbf is selected (see gprs_rlcmac_dl_tbf::take_next_bsn()). Until now we were handling correctly the case where the tbf was skipped in case the prio was to resend unacked data (DL_PRIO_SENT_DATA), but was incorrectly selected when it'd send nacked data. Let's fix it by specifically checking w->resend_needed() < 0. Change-Id: I253de8e1a190a9adb56160f38892c9e43e2c0272 --- M src/gprs_rlcmac_sched.cpp 1 file changed, 28 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/36/22436/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22436 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I253de8e1a190a9adb56160f38892c9e43e2c0272 Gerrit-Change-Number: 22436 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 15:27:20 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 26 Jan 2021 15:27:20 +0000 Subject: Change in osmo-pcu[master]: sched: Avoid picking TBF with nacked dl blocks when GMSK is required In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22436 ) Change subject: sched: Avoid picking TBF with nacked dl blocks when GMSK is required ...................................................................... Patch Set 3: Code-Review+2 Applied new line as requested, reapplying +2. -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22436 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I253de8e1a190a9adb56160f38892c9e43e2c0272 Gerrit-Change-Number: 22436 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 26 Jan 2021 15:27:20 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 15:35:30 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 26 Jan 2021 15:35:30 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: log source and destination RIM routing information In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22440 ) Change subject: gprs_bssgp: log source and destination RIM routing information ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22440 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia08d3b162a4f6257cccaa7f0764fa7ea498355ef Gerrit-Change-Number: 22440 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 26 Jan 2021 15:35:30 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 15:36:36 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 26 Jan 2021 15:36:36 +0000 Subject: Change in libosmocore[master]: gprs_bssgp_rim: add functions to convert a RIM-RI to a string In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22438 ) Change subject: gprs_bssgp_rim: add functions to convert a RIM-RI to a string ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/22438/2/src/gb/gprs_bssgp_rim.c File src/gb/gprs_bssgp_rim.c: https://gerrit.osmocom.org/c/libosmocore/+/22438/2/src/gb/gprs_bssgp_rim.c at 205 PS2, Line 205: char *bssgp_rim_ri_name(const struct bssgp_rim_routing_info *ri) > I would return a 'const char *' here as the user is not suppoed to modify the returned buffer conten [?] This has not been resolved. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22438 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Idca6bdccffe663aea71a0183ca3ea5bb5b59e702 Gerrit-Change-Number: 22438 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 26 Jan 2021 15:36:36 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: laforge Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 15:37:35 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 26 Jan 2021 15:37:35 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: move struct bssgp_ran_information_pdu to gprs_bssgp_rim.h In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22442 ) Change subject: gprs_bssgp: move struct bssgp_ran_information_pdu to gprs_bssgp_rim.h ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22442 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Icda279452962b06e552cb1361d2a27b7dc8a6b04 Gerrit-Change-Number: 22442 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 26 Jan 2021 15:37:35 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 15:39:03 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Tue, 26 Jan 2021 15:39:03 +0000 Subject: Change in libosmocore[master]: gprs_bssgp_rim: add functions to convert a RIM-RI to a string In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22438 to look at the new patch set (#3). Change subject: gprs_bssgp_rim: add functions to convert a RIM-RI to a string ...................................................................... gprs_bssgp_rim: add functions to convert a RIM-RI to a string RIM routing formation structs can contain different variants of address identifiers, so it is difficult for an API user to pick the _name() function to generate a human readable string. Lets add bssgp_rim_ri_name() and bssgp_rim_ri_name_buf() to make printing a routing identifier easier. Change-Id: Idca6bdccffe663aea71a0183ca3ea5bb5b59e702 Related: SYS#5103 --- M include/osmocom/gprs/gprs_bssgp_rim.h M src/gb/gprs_bssgp_rim.c M src/gb/libosmogb.map 3 files changed, 66 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/38/22438/3 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22438 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Idca6bdccffe663aea71a0183ca3ea5bb5b59e702 Gerrit-Change-Number: 22438 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 15:39:31 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Tue, 26 Jan 2021 15:39:31 +0000 Subject: Change in libosmocore[master]: gprs_bssgp_rim: add functions to convert a RIM-RI to a string In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22438 ) Change subject: gprs_bssgp_rim: add functions to convert a RIM-RI to a string ...................................................................... Patch Set 3: (1 comment) I have updated it now https://gerrit.osmocom.org/c/libosmocore/+/22438/2/src/gb/gprs_bssgp_rim.c File src/gb/gprs_bssgp_rim.c: https://gerrit.osmocom.org/c/libosmocore/+/22438/2/src/gb/gprs_bssgp_rim.c at 205 PS2, Line 205: char *bssgp_rim_ri_name(const struct bssgp_rim_routing_info *ri) > I would return a 'const char *' here as the user is not suppoed to modify the returned buffer conten [?] Done -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22438 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Idca6bdccffe663aea71a0183ca3ea5bb5b59e702 Gerrit-Change-Number: 22438 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 26 Jan 2021 15:39:31 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: laforge Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 15:42:43 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 26 Jan 2021 15:42:43 +0000 Subject: Change in osmo-pcu[master]: sched: Avoid picking TBF with nacked dl blocks when GMSK is required In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22436 ) Change subject: sched: Avoid picking TBF with nacked dl blocks when GMSK is required ...................................................................... sched: Avoid picking TBF with nacked dl blocks when GMSK is required Sine we don't yet implement properly all resegmentation of blocks from same MCS family type, when requiring a GMSK DL block (due to GPRS+EGPRS multiplexing limitations) we need to skip retransmitions, otherwise we'd be incorrectly picking a DL block which was already built with a potentially higher MCS value. The "DL_PRIO_NEW_DATA" prio serves two purposes: * There's new data to send * There's some nacked data to be retransmitted The 2nd purpose has, later on, more priority over the 1st one when the tbf is selected (see gprs_rlcmac_dl_tbf::take_next_bsn()). Until now we were handling correctly the case where the tbf was skipped in case the prio was to resend unacked data (DL_PRIO_SENT_DATA), but was incorrectly selected when it'd send nacked data. Let's fix it by specifically checking w->resend_needed() < 0. Change-Id: I253de8e1a190a9adb56160f38892c9e43e2c0272 --- M src/gprs_rlcmac_sched.cpp 1 file changed, 28 insertions(+), 3 deletions(-) Approvals: pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/gprs_rlcmac_sched.cpp b/src/gprs_rlcmac_sched.cpp index 49a8ff2..6dea949 100644 --- a/src/gprs_rlcmac_sched.cpp +++ b/src/gprs_rlcmac_sched.cpp @@ -275,6 +275,31 @@ return DL_PRIO_NONE; } +/* Check if next data block of a TBF can be encoded in GMSK [(M)CS1-4]. */ +static bool can_produce_gmsk_data_block_next(struct gprs_rlcmac_dl_tbf *tbf, enum tbf_dl_prio prio) +{ + const gprs_rlc_dl_window *w; + + /* GPRS TBFs can always send GMSK */ + if (!tbf->is_egprs_enabled()) + return true; + + switch (prio) { + case DL_PRIO_CONTROL: + /* Control blocks are always CS-1 */ + return true; + case DL_PRIO_NEW_DATA: + /* We can send any new data (no block generated yet) using any + * MCS. However, we don't (yet) support resegmenting already + * sent blocks (NACKed blocks in this case) into lower MCS of + * the same family. See OS#4966 */ + w = static_cast(tbf->window()); + return w->resend_needed() < 0; + default: + return false; + } +} + static struct msgb *sched_select_downlink(struct gprs_rlcmac_bts *bts, uint8_t trx, uint8_t ts, uint32_t fn, uint8_t block_nr, struct gprs_rlcmac_pdch *pdch, enum mcs_kind req_mcs_kind, bool *is_egprs) @@ -319,9 +344,9 @@ /* If a GPRS (CS1-4/MCS1-4) Dl block is required, downgrade MCS * below instead of skipping. However, downgrade can only be * done on new data BSNs (not yet sent) and control blocks. */ - if (req_mcs_kind == EGPRS_GMSK && tbf->is_egprs_enabled() && - (prio !=DL_PRIO_CONTROL && prio != DL_PRIO_NEW_DATA)) { - LOGP(DRLCMACSCHED, LOGL_DEBUG, "Cannot downgrade EGPRS TBF with prio %d\n", prio); + if (req_mcs_kind == EGPRS_GMSK && !can_produce_gmsk_data_block_next(tbf, prio)) { + LOGP(DRLCMACSCHED, LOGL_DEBUG, "%s Cannot downgrade EGPRS TBF with prio %d\n", + tbf_name(tbf), prio); continue; } -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22436 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I253de8e1a190a9adb56160f38892c9e43e2c0272 Gerrit-Change-Number: 22436 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 15:43:54 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 26 Jan 2021 15:43:54 +0000 Subject: Change in libosmocore[master]: gprs_bssgp_rim: add functions to convert a RIM-RI to a string In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22438 ) Change subject: gprs_bssgp_rim: add functions to convert a RIM-RI to a string ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22438 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Idca6bdccffe663aea71a0183ca3ea5bb5b59e702 Gerrit-Change-Number: 22438 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 26 Jan 2021 15:43:54 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 15:50:43 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 26 Jan 2021 15:50:43 +0000 Subject: Change in libosmocore[master]: ns2: Fix assert when removing a bind listen In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22448 ) Change subject: ns2: Fix assert when removing a bind listen ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22448 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I3edd1e838f7516d9224045710047419039aa0ec0 Gerrit-Change-Number: 22448 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 26 Jan 2021 15:50:43 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 15:59:13 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 26 Jan 2021 15:59:13 +0000 Subject: Change in osmo-ttcn3-hacks[master]: rlcmac: introduce initial support for NACC related messages In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22058 to look at the new patch set (#4). Change subject: rlcmac: introduce initial support for NACC related messages ...................................................................... rlcmac: introduce initial support for NACC related messages Change-Id: I4d2f123479c34e6afffe0bc8d91409e6b0529a62 --- M library/RLCMAC_CSN1_Templates.ttcn M library/RLCMAC_CSN1_Types.ttcn 2 files changed, 163 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/58/22058/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22058 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I4d2f123479c34e6afffe0bc8d91409e6b0529a62 Gerrit-Change-Number: 22058 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 15:59:13 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 26 Jan 2021 15:59:13 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Introduce test TC_nacc_outbound_success In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22387 to look at the new patch set (#2). Change subject: pcu: Introduce test TC_nacc_outbound_success ...................................................................... pcu: Introduce test TC_nacc_outbound_success Change-Id: I951db4af731e5a7c207f0f407dd78d166e2d3d26 --- M library/GSM_Types.ttcn M pcu/PCU_Tests.ttcn M pcu/gen_links.sh M pcu/osmo-pcu.cfg M pcu/regen_makefile.sh 5 files changed, 204 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/87/22387/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22387 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I951db4af731e5a7c207f0f407dd78d166e2d3d26 Gerrit-Change-Number: 22387 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 17:01:03 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Tue, 26 Jan 2021 17:01:03 +0000 Subject: Change in osmo-pcu[master]: Introduce NACC support In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22385 ) Change subject: Introduce NACC support ...................................................................... Patch Set 7: (1 comment) https://gerrit.osmocom.org/c/osmo-pcu/+/22385/4/src/gprs_bssgp_rim.c File src/gprs_bssgp_rim.c: https://gerrit.osmocom.org/c/osmo-pcu/+/22385/4/src/gprs_bssgp_rim.c at 126 PS4, Line 126: val.si_len = 0; > Thanks for the point. [?] As far as I can tell the way how you handle it is correct. The lower layers fine with that anyway. -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22385 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Id35f40d05f3e081f32fddbf1fa34cb338db452ca Gerrit-Change-Number: 22385 Gerrit-PatchSet: 7 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-CC: laforge Gerrit-Comment-Date: Tue, 26 Jan 2021 17:01:03 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Comment-In-Reply-To: dexter Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 18:02:44 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 26 Jan 2021 18:02:44 +0000 Subject: Change in osmo-pcu[master]: Introduce NACC support In-Reply-To: References: Message-ID: Hello Jenkins Builder, fixeria, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-pcu/+/22385 to look at the new patch set (#8). Change subject: Introduce NACC support ...................................................................... Introduce NACC support A new nacc_fsm is introduced per MS object, with its partner priv structure struct nacc_fsm_ctx, which exists and is available in the MS object only during the duration of the NACC procedure. The NACC context is created on an MS whenever a Pkt Cell Change Notification is received on Uplink RLCMAC, which asks for neighbor information of a given ARFCN+BSIC. First, the target ARFCN+BSIC needs to be translated into a CGI-PS (RAC+CI) address. That's done by asking the BSC through the Neighbour Resolution Service available in osmo-bsc using the CTRL interface. Once the CGI-PS of the target cell is known, PCU starts a RIM RAN-INFO request against the SGSN (which will route the request as needed), and wait for a response containing the SI bits from the target cell. After the SI are received, the scheduler is instructed to eventually poll a TBF for the MS originating the CCN, so that we can send the SI encapsulated into multiple Packet Neighbor Cell Data messages on the downlink. One all the SI bits are sent, the scheduler is instructed to send a Packet Cell Change Continue message. Once the message above has been sent, the FSM autodestroys itself. Caches are also introduced in this patch which allows for re-using recently known translations ARFCN+BSIC -> CGI-PS and CGI-PS -> SI_INFO respectively. Change-Id: Id35f40d05f3e081f32fddbf1fa34cb338db452ca --- M configure.ac M src/Makefile.am M src/bts.cpp M src/bts.h M src/encoding.cpp M src/encoding.h M src/gprs_bssgp_rim.c M src/gprs_debug.cpp M src/gprs_debug.h M src/gprs_ms.c M src/gprs_ms.h M src/gprs_pcu.c M src/gprs_pcu.h M src/gprs_rlcmac_sched.cpp A src/nacc_fsm.c A src/nacc_fsm.h A src/neigh_cache.c A src/neigh_cache.h M src/pcu_vty.c M src/pdch.cpp M src/pdch.h M src/tbf.cpp M src/tbf.h M tests/Makefile.am 24 files changed, 1,357 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/85/22385/8 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22385 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Id35f40d05f3e081f32fddbf1fa34cb338db452ca Gerrit-Change-Number: 22385 Gerrit-PatchSet: 8 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-CC: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 19:33:48 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 26 Jan 2021 19:33:48 +0000 Subject: Change in osmo-pcu[master]: Introduce NACC support In-Reply-To: References: Message-ID: Hello Jenkins Builder, fixeria, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-pcu/+/22385 to look at the new patch set (#9). Change subject: Introduce NACC support ...................................................................... Introduce NACC support A new nacc_fsm is introduced per MS object, with its partner priv structure struct nacc_fsm_ctx, which exists and is available in the MS object only during the duration of the NACC procedure. The NACC context is created on an MS whenever a Pkt Cell Change Notification is received on Uplink RLCMAC, which asks for neighbor information of a given ARFCN+BSIC. First, the target ARFCN+BSIC needs to be translated into a CGI-PS (RAC+CI) address. That's done by asking the BSC through the Neighbour Resolution Service available in osmo-bsc using the CTRL interface. Once the CGI-PS of the target cell is known, PCU starts a RIM RAN-INFO request against the SGSN (which will route the request as needed), and wait for a response containing the SI bits from the target cell. After the SI are received, the scheduler is instructed to eventually poll a TBF for the MS originating the CCN, so that we can send the SI encapsulated into multiple Packet Neighbor Cell Data messages on the downlink. One all the SI bits are sent, the scheduler is instructed to send a Packet Cell Change Continue message. Once the message above has been sent, the FSM autodestroys itself. Caches are also introduced in this patch which allows for re-using recently known translations ARFCN+BSIC -> CGI-PS and CGI-PS -> SI_INFO respectively. Change-Id: Id35f40d05f3e081f32fddbf1fa34cb338db452ca --- M configure.ac M src/Makefile.am M src/bts.cpp M src/bts.h M src/encoding.cpp M src/encoding.h M src/gprs_bssgp_rim.c M src/gprs_debug.cpp M src/gprs_debug.h M src/gprs_ms.c M src/gprs_ms.h M src/gprs_pcu.c M src/gprs_pcu.h M src/gprs_rlcmac_sched.cpp A src/nacc_fsm.c A src/nacc_fsm.h A src/neigh_cache.c A src/neigh_cache.h M src/pcu_vty.c M src/pdch.cpp M src/pdch.h M src/tbf.cpp M src/tbf.h M tests/Makefile.am 24 files changed, 1,357 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/85/22385/9 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22385 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Id35f40d05f3e081f32fddbf1fa34cb338db452ca Gerrit-Change-Number: 22385 Gerrit-PatchSet: 9 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-CC: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 19:33:49 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 26 Jan 2021 19:33:49 +0000 Subject: Change in osmo-pcu[master]: NACC: allow setting keep time for entries in neigh and si cache References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22449 ) Change subject: NACC: allow setting keep time for entries in neigh and si cache ...................................................................... NACC: allow setting keep time for entries in neigh and si cache Related: SYS#4909 Change-Id: Ifa336aa27dd88ff5b78dbc5a2799740f542bb369 --- M src/gprs_pcu.c M src/gprs_pcu.h M src/neigh_cache.c M src/neigh_cache.h M src/pcu_vty.c 5 files changed, 45 insertions(+), 15 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/49/22449/1 diff --git a/src/gprs_pcu.c b/src/gprs_pcu.c index 9679914..f1079b8 100644 --- a/src/gprs_pcu.c +++ b/src/gprs_pcu.c @@ -33,6 +33,8 @@ { .T=1, .default_val=30, .unit=OSMO_TDEF_S, .desc="BSSGP (un)blocking procedures timer (s)", .val=0 }, { .T=2, .default_val=30, .unit=OSMO_TDEF_S, .desc="BSSGP reset procedure timer (s)", .val=0 }, { .T=3190, .default_val=5, .unit=OSMO_TDEF_S, .desc="Return to packet idle mode after Packet DL Assignment on CCCH (s)", .val=0}, + { .T=PCU_TDEF_NEIGH_CACHE_ALIVE, .default_val=5, .unit=OSMO_TDEF_S, .desc="[ARFCN+BSIC]->[RAC+CI] resolution cache entry storage timeout (s)", .val=0 }, + { .T=PCU_TDEF_SI_CACHE_ALIVE, .default_val=5, .unit=OSMO_TDEF_S, .desc="[RAC+CI]->[SI] resolution cache entry storage timeout (s)", .val=0 }, { .T=-2000, .default_val=2, .unit=OSMO_TDEF_MS, .desc="Tbf reject for PRR timer (ms)", .val=0 }, { .T=-2001, .default_val=2, .unit=OSMO_TDEF_S, .desc="PACCH assignment timer (s)", .val=0 }, { .T=-2002, .default_val=200, .unit=OSMO_TDEF_MS, .desc="Waiting after IMM.ASS confirm timer (ms)", .val=0 }, @@ -114,8 +116,8 @@ INIT_LLIST_HEAD(&pcu->bts_list); - pcu->neigh_cache = neigh_cache_alloc(pcu); - pcu->si_cache = si_cache_alloc(pcu); + pcu->neigh_cache = neigh_cache_alloc(pcu, osmo_tdef_get(pcu->T_defs, PCU_TDEF_NEIGH_CACHE_ALIVE, OSMO_TDEF_S, -1)); + pcu->si_cache = si_cache_alloc(pcu, osmo_tdef_get(pcu->T_defs, PCU_TDEF_SI_CACHE_ALIVE, OSMO_TDEF_S, -1)); return pcu; } diff --git a/src/gprs_pcu.h b/src/gprs_pcu.h index 8e18f89..4f22f68 100644 --- a/src/gprs_pcu.h +++ b/src/gprs_pcu.h @@ -37,6 +37,9 @@ #define MAX_EDGE_MCS 9 #define MAX_GPRS_CS 4 +#define PCU_TDEF_NEIGH_CACHE_ALIVE (-10) +#define PCU_TDEF_SI_CACHE_ALIVE (-11) + /* see bts->gsmtap_categ_mask */ enum pcu_gsmtap_category { PCU_GSMTAP_C_DL_UNKNOWN = 0, /* unknown or undecodable downlink blocks */ diff --git a/src/neigh_cache.c b/src/neigh_cache.c index cf77dc8..f5cdc55 100644 --- a/src/neigh_cache.c +++ b/src/neigh_cache.c @@ -25,10 +25,6 @@ #include -#define KEEP_TIME_DEFAULT_SEC 5 - -/*TODO: add a timer to the_pcu T_defs, pass value to struct neigh_cache instead of KEEP_TIME_DEFAULT_SEC */ - static void neigh_cache_schedule_cleanup(struct neigh_cache *cache); static void neigh_cache_cleanup_cb(void *data) { struct timespec now, threshold; @@ -72,15 +68,22 @@ } } -struct neigh_cache *neigh_cache_alloc(void *ctx) +struct neigh_cache *neigh_cache_alloc(void *ctx, unsigned int keep_time_sec) { struct neigh_cache *cache = talloc_zero(ctx, struct neigh_cache); INIT_LLIST_HEAD(&cache->list); osmo_timer_setup(&cache->cleanup_timer, neigh_cache_cleanup_cb, cache); - cache->keep_time_intval = (struct timespec){ .tv_sec = KEEP_TIME_DEFAULT_SEC, .tv_nsec = 0}; + cache->keep_time_intval = (struct timespec){ .tv_sec = keep_time_sec, .tv_nsec = 0}; return cache; } + +void neigh_cache_set_keep_time_interval(struct neigh_cache *cache, unsigned int keep_time_sec) +{ + cache->keep_time_intval = (struct timespec){ .tv_sec = keep_time_sec, .tv_nsec = 0}; + neigh_cache_schedule_cleanup(cache); +} + struct neigh_cache_entry *neigh_cache_add(struct neigh_cache *cache, const struct neigh_cache_entry_key *key, const struct osmo_cell_global_id_ps *value) @@ -143,8 +146,6 @@ // SI CACHE /////////////////// -/*TODO: add a timer to the_pcu T_defs, pass value to struct neigh_cache instead of KEEP_TIME_DEFAULT_SEC */ - static void si_cache_schedule_cleanup(struct si_cache *cache); static void si_cache_cleanup_cb(void *data) { struct timespec now, threshold; @@ -188,14 +189,21 @@ } } -struct si_cache *si_cache_alloc(void *ctx) +struct si_cache *si_cache_alloc(void *ctx, unsigned int keep_time_sec) { struct si_cache *cache = talloc_zero(ctx, struct si_cache); INIT_LLIST_HEAD(&cache->list); osmo_timer_setup(&cache->cleanup_timer, si_cache_cleanup_cb, cache); - cache->keep_time_intval = (struct timespec){ .tv_sec = KEEP_TIME_DEFAULT_SEC, .tv_nsec = 0}; + cache->keep_time_intval = (struct timespec){ .tv_sec = keep_time_sec, .tv_nsec = 0}; return cache; } + +void si_cache_set_keep_time_interval(struct si_cache *cache, unsigned int keep_time_sec) +{ + cache->keep_time_intval = (struct timespec){ .tv_sec = keep_time_sec, .tv_nsec = 0}; + si_cache_schedule_cleanup(cache); +} + struct si_cache_entry *si_cache_add(struct si_cache *cache, const struct osmo_cell_global_id_ps *key, const struct si_cache_value *value) diff --git a/src/neigh_cache.h b/src/neigh_cache.h index 4e7bb2c..bee388f 100644 --- a/src/neigh_cache.h +++ b/src/neigh_cache.h @@ -52,7 +52,8 @@ struct osmo_cell_global_id_ps value; }; -struct neigh_cache *neigh_cache_alloc(void *ctx); +struct neigh_cache *neigh_cache_alloc(void *ctx, unsigned int keep_time_sec); +void neigh_cache_set_keep_time_interval(struct neigh_cache *cache, unsigned int keep_time_sec); struct neigh_cache_entry *neigh_cache_add(struct neigh_cache *cache, const struct neigh_cache_entry_key *key, const struct osmo_cell_global_id_ps *value); @@ -87,7 +88,8 @@ struct si_cache_value value; }; -struct si_cache *si_cache_alloc(void *ctx); +struct si_cache *si_cache_alloc(void *ctx, unsigned int keep_time_sec); +void si_cache_set_keep_time_interval(struct si_cache *cache, unsigned int keep_time_sec); struct si_cache_entry *si_cache_add(struct si_cache *cache, const struct osmo_cell_global_id_ps *key, const struct si_cache_value *value); diff --git a/src/pcu_vty.c b/src/pcu_vty.c index b7021c8..60fbc7d 100644 --- a/src/pcu_vty.c +++ b/src/pcu_vty.c @@ -1064,10 +1064,25 @@ OSMO_TDEF_VTY_DOC_SET, CMD_ATTR_IMMEDIATE) { + int rc; + struct osmo_tdef *t; /* If any arguments are missing, redirect to 'show' */ if (argc < 2) return show_timer(self, vty, argc, argv); - return osmo_tdef_vty_set_cmd(vty, the_pcu->T_defs, argv); + if ((rc = osmo_tdef_vty_set_cmd(vty, the_pcu->T_defs, argv)) != CMD_SUCCESS) + return rc; + t = osmo_tdef_vty_parse_T_arg(vty, the_pcu->T_defs, argv[0]); + switch (t->T) { + case PCU_TDEF_NEIGH_CACHE_ALIVE: + neigh_cache_set_keep_time_interval(the_pcu->neigh_cache, t->val); + break; + case PCU_TDEF_SI_CACHE_ALIVE: + si_cache_set_keep_time_interval(the_pcu->si_cache, t->val); + break; + default: + break; + } + return CMD_SUCCESS; } DEFUN(show_tbf, -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22449 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ifa336aa27dd88ff5b78dbc5a2799740f542bb369 Gerrit-Change-Number: 22449 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 19:33:49 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 26 Jan 2021 19:33:49 +0000 Subject: Change in osmo-pcu[master]: NACC: Configure neighbor and SI resolution timeout values References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22450 ) Change subject: NACC: Configure neighbor and SI resolution timeout values ...................................................................... NACC: Configure neighbor and SI resolution timeout values Upon timeout, we move directly to NACC_ST_TX_CELL_CHG_CONTINUE in order to submit a Cell Change Continue against the MS without providing any Packet Neighbor Cell Data beforehand, as per spec that's probably the best we can do in this scenario (TS 44.060): """ 1) The network responds with a PACKET CELL CHANGE CONTINUE message. If a mobile station as response to a PACKET CELL CHANGE NOTIFICATION message receives a PACKET CELL CHANGE CONTINUE message without receiving any neighbour cell system information, the mobile station shall stop timer T3208, stop timer T3210 if still running, leave CCN mode and continue cell reselection in NC0/NC1 mode. """ Related: SYS#4909 Change-Id: Ia9932ab082ec095294e85dc4d532046970e17986 --- M src/gprs_pcu.c M src/gprs_pcu.h M src/nacc_fsm.c 3 files changed, 37 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/50/22450/1 diff --git a/src/gprs_pcu.c b/src/gprs_pcu.c index f1079b8..34cd794 100644 --- a/src/gprs_pcu.c +++ b/src/gprs_pcu.c @@ -33,6 +33,8 @@ { .T=1, .default_val=30, .unit=OSMO_TDEF_S, .desc="BSSGP (un)blocking procedures timer (s)", .val=0 }, { .T=2, .default_val=30, .unit=OSMO_TDEF_S, .desc="BSSGP reset procedure timer (s)", .val=0 }, { .T=3190, .default_val=5, .unit=OSMO_TDEF_S, .desc="Return to packet idle mode after Packet DL Assignment on CCCH (s)", .val=0}, + { .T=PCU_TDEF_NEIGH_RESOLVE_TO, .default_val=1000, .unit=OSMO_TDEF_MS, .desc="[ARFCN+BSIC]->[RAC+CI] resolution timeout (ms)", .val=0 }, + { .T=PCU_TDEF_SI_RESOLVE_TO, .default_val=1000, .unit=OSMO_TDEF_MS, .desc="RIM RAN-INFO response timeout (ms)", .val=0 }, { .T=PCU_TDEF_NEIGH_CACHE_ALIVE, .default_val=5, .unit=OSMO_TDEF_S, .desc="[ARFCN+BSIC]->[RAC+CI] resolution cache entry storage timeout (s)", .val=0 }, { .T=PCU_TDEF_SI_CACHE_ALIVE, .default_val=5, .unit=OSMO_TDEF_S, .desc="[RAC+CI]->[SI] resolution cache entry storage timeout (s)", .val=0 }, { .T=-2000, .default_val=2, .unit=OSMO_TDEF_MS, .desc="Tbf reject for PRR timer (ms)", .val=0 }, diff --git a/src/gprs_pcu.h b/src/gprs_pcu.h index 4f22f68..9f75fb8 100644 --- a/src/gprs_pcu.h +++ b/src/gprs_pcu.h @@ -37,6 +37,8 @@ #define MAX_EDGE_MCS 9 #define MAX_GPRS_CS 4 +#define PCU_TDEF_NEIGH_RESOLVE_TO (-1) +#define PCU_TDEF_SI_RESOLVE_TO (-2) #define PCU_TDEF_NEIGH_CACHE_ALIVE (-10) #define PCU_TDEF_SI_CACHE_ALIVE (-11) diff --git a/src/nacc_fsm.c b/src/nacc_fsm.c index 9d216e5..a86a57d 100644 --- a/src/nacc_fsm.c +++ b/src/nacc_fsm.c @@ -40,8 +40,24 @@ #define X(s) (1 << (s)) +static const struct osmo_tdef_state_timeout nacc_fsm_timeouts[32] = { + [NACC_ST_INITIAL] = {}, + [NACC_ST_WAIT_RESOLVE_RAC_CI] = { .T = PCU_TDEF_NEIGH_RESOLVE_TO }, + [NACC_ST_WAIT_REQUEST_SI] = { .T = PCU_TDEF_SI_RESOLVE_TO }, + [NACC_ST_TX_NEIGHBOUR_DATA] = {}, + [NACC_ST_TX_CELL_CHG_CONTINUE] = {}, + [NACC_ST_DONE] = {}, +}; + +/* Transition to a state, using the T timer defined in assignment_fsm_timeouts. + * The actual timeout value is in turn obtained from conn->T_defs. + * Assumes local variable fi exists. */ + #define nacc_fsm_state_chg(fi, NEXT_STATE) \ - osmo_fsm_inst_state_chg(fi, NEXT_STATE, 0, 0) + osmo_tdef_fsm_inst_state_chg(fi, NEXT_STATE, \ + nacc_fsm_timeouts, \ + ((struct nacc_fsm_ctx*)(fi->priv))->ms->bts->pcu->T_defs, \ + -1) const struct value_string nacc_fsm_event_names[] = { { NACC_EV_RX_CELL_CHG_NOTIFICATION, "RX_CELL_CHG_NOTIFICATION" }, @@ -450,6 +466,17 @@ talloc_free(ctx); } +static int nacc_fsm_timer_cb(struct osmo_fsm_inst *fi) +{ + switch (fi->T) { + case PCU_TDEF_NEIGH_RESOLVE_TO: + case PCU_TDEF_SI_RESOLVE_TO: + nacc_fsm_state_chg(fi, NACC_ST_TX_CELL_CHG_CONTINUE); + break; + } + return 0; +} + static struct osmo_fsm_state nacc_fsm_states[] = { [NACC_ST_INITIAL] = { .in_event_mask = @@ -463,7 +490,8 @@ .in_event_mask = X(NACC_EV_RX_RAC_CI), .out_state_mask = - X(NACC_ST_WAIT_REQUEST_SI), + X(NACC_ST_WAIT_REQUEST_SI) | + X(NACC_ST_TX_CELL_CHG_CONTINUE), .name = "WAIT_RESOLVE_RAC_CI", .onenter = st_wait_resolve_rac_ci_on_enter, .action = st_wait_resolve_rac_ci, @@ -473,7 +501,8 @@ X(NACC_EV_RX_CELL_CHG_NOTIFICATION) | X(NACC_EV_RX_SI), .out_state_mask = - X(NACC_ST_TX_NEIGHBOUR_DATA), + X(NACC_ST_TX_NEIGHBOUR_DATA) | + X(NACC_ST_TX_CELL_CHG_CONTINUE), .name = "WAIT_REQUEST_SI", .onenter = st_wait_request_si_on_enter, .action = st_wait_request_si, @@ -510,6 +539,7 @@ .name = "NACC", .states = nacc_fsm_states, .num_states = ARRAY_SIZE(nacc_fsm_states), + .timer_cb = nacc_fsm_timer_cb, .cleanup = nacc_fsm_cleanup, .log_subsys = DNACC, .event_names = nacc_fsm_event_names, -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22450 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ia9932ab082ec095294e85dc4d532046970e17986 Gerrit-Change-Number: 22450 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 19:33:49 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 26 Jan 2021 19:33:49 +0000 Subject: Change in osmo-pcu[master]: NACC: Send only Pkt Cell Chg Continue if SI retrieve fails References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22451 ) Change subject: NACC: Send only Pkt Cell Chg Continue if SI retrieve fails ...................................................................... NACC: Send only Pkt Cell Chg Continue if SI retrieve fails If fore some reason we fail to fetch SI of target cell, we move directly to NACC_ST_TX_CELL_CHG_CONTINUE in order to submit a Cell Change Continue against the MS without providing any Packet Neighbor Cell Data beforehand, as per spec that's probably the best we can do in this scenario (TS 44.060): """ 1) The network responds with a PACKET CELL CHANGE CONTINUE message. If a mobile station as response to a PACKET CELL CHANGE NOTIFICATION message receives a PACKET CELL CHANGE CONTINUE message without receiving any neighbour cell system information, the mobile station shall stop timer T3208, stop timer T3210 if still running, leave CCN mode and continue cell reselection in NC0/NC1 mode. """ This commit also fixes a use-after-free triggered by TTCN3 test TC_nacc_outbound_rac_ci-resolve_fail_parse_response, where the "cmd" pointer passed to nacc_fsm_ctrl_reply_cb() was freed during FSM termination (its talloc ctx was under ctx->neigh_ctrl_conn) and the libosmocore code calling that callback was later on accessing cmd->defer. Since due to this change the FSM is no longer syncrhonously freed, the issue is gone. Related: SYS#4909 Change-Id: Ie3f12a08ad611b1086d3f4ab7c3d34af43c07961 --- M src/nacc_fsm.c 1 file changed, 5 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/51/22451/1 diff --git a/src/nacc_fsm.c b/src/nacc_fsm.c index a86a57d..c3464c8 100644 --- a/src/nacc_fsm.c +++ b/src/nacc_fsm.c @@ -324,7 +324,7 @@ err_term: talloc_free(cmd); - osmo_fsm_inst_term(fi, OSMO_FSM_TERM_ERROR, NULL); + nacc_fsm_state_chg(fi, NACC_ST_TX_CELL_CHG_CONTINUE); } @@ -365,14 +365,14 @@ /* SI info not in cache, resolve it using RIM procedure against SGSN */ if (fill_rim_ran_info_req(ctx, &pdu) < 0) { - osmo_fsm_inst_term(fi, OSMO_FSM_TERM_ERROR, NULL); + nacc_fsm_state_chg(fi, NACC_ST_TX_CELL_CHG_CONTINUE); return; } rc = bssgp_tx_rim(&pdu, gprs_ns2_nse_nsei(ctx->ms->bts->nse)); if (rc < 0) { LOGPFSML(fi, LOGL_ERROR, "Failed transmitting RIM PDU: %d\n", rc); - osmo_fsm_inst_term(fi, OSMO_FSM_TERM_ERROR, NULL); + nacc_fsm_state_chg(fi, NACC_ST_TX_CELL_CHG_CONTINUE); return; } } @@ -559,7 +559,7 @@ cmd->type, cmd->variable, osmo_escape_str(cmd->reply, -1)); if (cmd->type != CTRL_TYPE_GET_REPLY || !cmd->reply) { - osmo_fsm_inst_term(ctx->fi, OSMO_FSM_TERM_ERROR, NULL); + nacc_fsm_state_chg(ctx->fi, NACC_ST_TX_CELL_CHG_CONTINUE); return; } @@ -599,7 +599,7 @@ free_ret: talloc_free(tmp); - osmo_fsm_inst_term(ctx->fi, OSMO_FSM_TERM_ERROR, NULL); + nacc_fsm_state_chg(ctx->fi, NACC_ST_TX_CELL_CHG_CONTINUE); return; } -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22451 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ie3f12a08ad611b1086d3f4ab7c3d34af43c07961 Gerrit-Change-Number: 22451 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 19:34:01 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 26 Jan 2021 19:34:01 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Introduce test TC_nacc_outbound_success In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22387 to look at the new patch set (#3). Change subject: pcu: Introduce test TC_nacc_outbound_success ...................................................................... pcu: Introduce test TC_nacc_outbound_success Related: SYS#4909 Change-Id: I951db4af731e5a7c207f0f407dd78d166e2d3d26 --- M library/GSM_Types.ttcn M pcu/PCU_Tests.ttcn M pcu/gen_links.sh M pcu/osmo-pcu.cfg M pcu/regen_makefile.sh 5 files changed, 203 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/87/22387/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22387 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I951db4af731e5a7c207f0f407dd78d166e2d3d26 Gerrit-Change-Number: 22387 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 19:34:02 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 26 Jan 2021 19:34:02 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Introduce test TC_nacc_outbound_rac_ci_resolve_timeout References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22452 ) Change subject: pcu: Introduce test TC_nacc_outbound_rac_ci_resolve_timeout ...................................................................... pcu: Introduce test TC_nacc_outbound_rac_ci_resolve_timeout Related: SYS#4909 Change-Id: Ia09fbfe9aba34a51e0715d1c307de280e3ae0249 --- M pcu/PCU_Tests.ttcn 1 file changed, 67 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/52/22452/1 diff --git a/pcu/PCU_Tests.ttcn b/pcu/PCU_Tests.ttcn index 843e14e..9b58b2e 100644 --- a/pcu/PCU_Tests.ttcn +++ b/pcu/PCU_Tests.ttcn @@ -3745,6 +3745,72 @@ f_shutdown(__BFILE__, __LINE__, final := true); } +/* Verify PCU transmits Pkt Cell Change Continue if RAC+CI resolution fails during outbound NACC procedure */ +testcase TC_nacc_outbound_rac_ci_resolve_timeout() runs on RAW_PCU_Test_CT { + var RlcmacDlBlock dl_block; + var PollFnCtx pollctx; + var uint32_t sched_fn; + var GprsMS ms; + var template (value) RlcmacUlCtrlMsg cell_chf_notif; + var PCUIF_info_ind info_ind := valueof(ts_PCUIF_INFO_default); + var MultislotCap_GPRS mscap_gprs := { + gprsmultislotclass := '00011'B, + gprsextendeddynalloccap := '0'B + }; + var MSRadioAccessCapabilityV ms_racap := { valueof(ts_RaCapRec('0001'B /* E-GSM */, mscap_gprs, omit)) }; + var GsmArfcn req_arfcn := 862; + var uint6_t req_bsic := 43; + + /* Initialize osmo-bsc emulation neighbor resolution CTRL port */ + f_ipa_ctrl_start_server(mp_ctrl_neigh_ip, mp_ctrl_neigh_port); + + /* Initialize NS/BSSGP side */ + f_init_bssgp(); + /* Initialize GPRS MS side */ + f_init_gprs_ms(); + ms := g_ms[0]; /* We only use first MS in this test */ + + /* Initialize the PCU interface abstraction */ + f_init_raw(testcasename(), info_ind); + + /* Establish BSSGP connection to the PCU */ + f_bssgp_establish(); + f_bssgp_client_llgmm_assign(TLLI_UNUSED, ms.tlli); + + /* Send PACKET RESOURCE REQUEST */ + pollctx := f_ms_establish_ul_tbf_2phase_access(ms, ts_RlcMacUlCtrl_PKT_RES_REQ(ms.tlli, ms_racap)); + /* Pkt Uplink Assignment above sets poll+rrbp requesting PACKET CONTROL ACK */ + f_ms_tx_ul_block(ms, ts_RLCMAC_CTRL_ACK(ms.tlli), pollctx.fn, nr := pollctx.tstrxbts); + + /* Start NACC from MS side */ + cell_chf_notif := ts_RlcMacUlCtrl_PKT_CELL_CHG_NOTIF(ms.ul_tbf.tfi, req_arfcn, req_bsic); + f_ms_tx_ul_block(ms, ts_RLC_UL_CTRL_ACK(cell_chf_notif), 0, nr := f_ms_tx_TsTrxBtsNum(ms)); + + /* osmo-pcu should now ask for resolution: */ + f_ipa_ctrl_wait_link_up(); + var charstring ctrl_var := "neighbor_resolve_cgi_ps_from_lac_ci." & + int2str(info_ind.lac) & "." & + int2str(info_ind.cell_id) & "." & + int2str(req_arfcn) & "." & + int2str(req_bsic); + /* we receive RAC+CI resolution request, but we never answer to it, timeout should occur */ + f_ctrl_exp_get(IPA_CTRL, ctrl_var, omit); + + /* Wait until we receive something non-dummy */ + while (true) { + f_rx_rlcmac_dl_block(dl_block, sched_fn); + if (not match(dl_block, tr_RLCMAC_DUMMY_CTRL())) { + break; + } + } + /* Make sure it is a Pkt Cell Chg Continue */ + if (not match(dl_block, tr_RLCMAC_DL_CTRL(?, tr_RlcMacDlCtrl_PKT_CELL_CHG_CONTINUE))) { + setverdict(fail, "Rx unexpected DL block: ", dl_block); + } + + f_shutdown(__BFILE__, __LINE__, final := true); +} + control { execute( TC_pcuif_suspend() ); execute( TC_pcuif_suspend_active_tbf() ); @@ -3819,6 +3885,7 @@ execute( TC_pcuif_info_ind_subsequent() ); execute( TC_nacc_outbound_success() ); + execute( TC_nacc_outbound_rac_ci_resolve_timeout() ); } } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22452 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ia09fbfe9aba34a51e0715d1c307de280e3ae0249 Gerrit-Change-Number: 22452 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 19:34:02 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 26 Jan 2021 19:34:02 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Introduce test TC_nacc_outbound_si_resolve_timeout References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22453 ) Change subject: pcu: Introduce test TC_nacc_outbound_si_resolve_timeout ...................................................................... pcu: Introduce test TC_nacc_outbound_si_resolve_timeout Related: SYS#4909 Change-Id: If0032b940685efaaa8f65357c56c3383fab3e283 --- M pcu/PCU_Tests.ttcn 1 file changed, 82 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/53/22453/1 diff --git a/pcu/PCU_Tests.ttcn b/pcu/PCU_Tests.ttcn index 9b58b2e..173f8ff 100644 --- a/pcu/PCU_Tests.ttcn +++ b/pcu/PCU_Tests.ttcn @@ -3811,6 +3811,87 @@ f_shutdown(__BFILE__, __LINE__, final := true); } +/* Verify PCU transmits Pkt Cell Change Continue if SI resolution fails during outbound NACC procedure */ +testcase TC_nacc_outbound_si_resolve_timeout() runs on RAW_PCU_Test_CT { + var RlcmacDlBlock dl_block; + var PollFnCtx pollctx; + var uint32_t sched_fn; + var GprsMS ms; + var template (value) RlcmacUlCtrlMsg cell_chf_notif; + var PCUIF_info_ind info_ind := valueof(ts_PCUIF_INFO_default); + var MultislotCap_GPRS mscap_gprs := { + gprsmultislotclass := '00011'B, + gprsextendeddynalloccap := '0'B + }; + var MSRadioAccessCapabilityV ms_racap := { valueof(ts_RaCapRec('0001'B /* E-GSM */, mscap_gprs, omit)) }; + var GsmArfcn req_arfcn := 862; + var uint6_t req_bsic := 43; + var BssgpCellId src := valueof(ts_BssgpCellId(ts_RAI(ts_LAI(f_enc_BcdMccMnc(info_ind.mcc, info_ind.mnc, info_ind.mnc_3_digits == 1), /* '262F42'H */ + info_ind.lac), + info_ind.rac), + info_ind.cell_id)); + var BssgpCellId dst := valueof(ts_BssgpCellId(ts_RAI(ts_LAI('023F43'H, /* Decided by test itself (emulating BSC) */ + 423), + 2), + 5)); + var template RIM_Routing_Address src_addr := t_RIM_Routing_Address_cid(src); + var template RIM_Routing_Address dst_addr := t_RIM_Routing_Address_cid(dst); + + /* Initialize osmo-bsc emulation neighbor resolution CTRL port */ + f_ipa_ctrl_start_server(mp_ctrl_neigh_ip, mp_ctrl_neigh_port); + + /* Initialize NS/BSSGP side */ + f_init_bssgp(); + /* Initialize GPRS MS side */ + f_init_gprs_ms(); + ms := g_ms[0]; /* We only use first MS in this test */ + + /* Initialize the PCU interface abstraction */ + f_init_raw(testcasename(), info_ind); + + /* Establish BSSGP connection to the PCU */ + f_bssgp_establish(); + f_bssgp_client_llgmm_assign(TLLI_UNUSED, ms.tlli); + + /* Send PACKET RESOURCE REQUEST */ + pollctx := f_ms_establish_ul_tbf_2phase_access(ms, ts_RlcMacUlCtrl_PKT_RES_REQ(ms.tlli, ms_racap)); + /* Pkt Uplink Assignment above sets poll+rrbp requesting PACKET CONTROL ACK */ + f_ms_tx_ul_block(ms, ts_RLCMAC_CTRL_ACK(ms.tlli), pollctx.fn, nr := pollctx.tstrxbts); + + /* Start NACC from MS side */ + cell_chf_notif := ts_RlcMacUlCtrl_PKT_CELL_CHG_NOTIF(ms.ul_tbf.tfi, req_arfcn, req_bsic); + f_ms_tx_ul_block(ms, ts_RLC_UL_CTRL_ACK(cell_chf_notif), 0, nr := f_ms_tx_TsTrxBtsNum(ms)); + + /* osmo-pcu should now ask for resolution: */ + f_ipa_ctrl_wait_link_up(); + var charstring ctrl_var := "neighbor_resolve_cgi_ps_from_lac_ci." & + int2str(info_ind.lac) & "." & + int2str(info_ind.cell_id) & "." & + int2str(req_arfcn) & "." & + int2str(req_bsic); + f_ctrl_exp_get(IPA_CTRL, ctrl_var, "023-43-423-2-5"); + + /* RIM procedure: */ + RIM.receive(tr_RAN_INFORMATION_REQUEST(tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, dst_addr), + tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, src_addr), + tr_RAN_Information_Request_RIM_Container)); + /* We never answer the RIM procude -> PCU timeouts and should send Pkt Cell Chg continue */ + + /* Wait until we receive something non-dummy */ + while (true) { + f_rx_rlcmac_dl_block(dl_block, sched_fn); + if (not match(dl_block, tr_RLCMAC_DUMMY_CTRL())) { + break; + } + } + /* Make sure it is a Pkt Cell Chg Continue */ + if (not match(dl_block, tr_RLCMAC_DL_CTRL(?, tr_RlcMacDlCtrl_PKT_CELL_CHG_CONTINUE))) { + setverdict(fail, "Rx unexpected DL block: ", dl_block); + } + + f_shutdown(__BFILE__, __LINE__, final := true); +} + control { execute( TC_pcuif_suspend() ); execute( TC_pcuif_suspend_active_tbf() ); @@ -3886,6 +3967,7 @@ execute( TC_pcuif_info_ind_subsequent() ); execute( TC_nacc_outbound_success() ); execute( TC_nacc_outbound_rac_ci_resolve_timeout() ); + execute( TC_nacc_outbound_si_resolve_timeout() ); } } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22453 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If0032b940685efaaa8f65357c56c3383fab3e283 Gerrit-Change-Number: 22453 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 19:34:03 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 26 Jan 2021 19:34:03 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Introduce test TC_nacc_outbound_rac_ci_resolve_fail_parse_response References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22454 ) Change subject: pcu: Introduce test TC_nacc_outbound_rac_ci_resolve_fail_parse_response ...................................................................... pcu: Introduce test TC_nacc_outbound_rac_ci_resolve_fail_parse_response Related: SYS#4909 Change-Id: If7efddb1ae2ccb580fe85c8df45c9ccdb818c6f3 --- M pcu/PCU_Tests.ttcn 1 file changed, 67 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/54/22454/1 diff --git a/pcu/PCU_Tests.ttcn b/pcu/PCU_Tests.ttcn index 173f8ff..de21b63 100644 --- a/pcu/PCU_Tests.ttcn +++ b/pcu/PCU_Tests.ttcn @@ -3811,6 +3811,72 @@ f_shutdown(__BFILE__, __LINE__, final := true); } +/* Verify PCU transmits Pkt Cell Change Continue if RAC+CI resolution fails during outbound NACC procedure */ +testcase TC_nacc_outbound_rac_ci_resolve_fail_parse_response() runs on RAW_PCU_Test_CT { + var RlcmacDlBlock dl_block; + var PollFnCtx pollctx; + var uint32_t sched_fn; + var GprsMS ms; + var template (value) RlcmacUlCtrlMsg cell_chf_notif; + var PCUIF_info_ind info_ind := valueof(ts_PCUIF_INFO_default); + var MultislotCap_GPRS mscap_gprs := { + gprsmultislotclass := '00011'B, + gprsextendeddynalloccap := '0'B + }; + var MSRadioAccessCapabilityV ms_racap := { valueof(ts_RaCapRec('0001'B /* E-GSM */, mscap_gprs, omit)) }; + var GsmArfcn req_arfcn := 862; + var uint6_t req_bsic := 43; + + /* Initialize osmo-bsc emulation neighbor resolution CTRL port */ + f_ipa_ctrl_start_server(mp_ctrl_neigh_ip, mp_ctrl_neigh_port); + + /* Initialize NS/BSSGP side */ + f_init_bssgp(); + /* Initialize GPRS MS side */ + f_init_gprs_ms(); + ms := g_ms[0]; /* We only use first MS in this test */ + + /* Initialize the PCU interface abstraction */ + f_init_raw(testcasename(), info_ind); + + /* Establish BSSGP connection to the PCU */ + f_bssgp_establish(); + f_bssgp_client_llgmm_assign(TLLI_UNUSED, ms.tlli); + + /* Send PACKET RESOURCE REQUEST */ + pollctx := f_ms_establish_ul_tbf_2phase_access(ms, ts_RlcMacUlCtrl_PKT_RES_REQ(ms.tlli, ms_racap)); + /* Pkt Uplink Assignment above sets poll+rrbp requesting PACKET CONTROL ACK */ + f_ms_tx_ul_block(ms, ts_RLCMAC_CTRL_ACK(ms.tlli), pollctx.fn, nr := pollctx.tstrxbts); + + /* Start NACC from MS side */ + cell_chf_notif := ts_RlcMacUlCtrl_PKT_CELL_CHG_NOTIF(ms.ul_tbf.tfi, req_arfcn, req_bsic); + f_ms_tx_ul_block(ms, ts_RLC_UL_CTRL_ACK(cell_chf_notif), 0, nr := f_ms_tx_TsTrxBtsNum(ms)); + + /* osmo-pcu should now ask for resolution: */ + f_ipa_ctrl_wait_link_up(); + var charstring ctrl_var := "neighbor_resolve_cgi_ps_from_lac_ci." & + int2str(info_ind.lac) & "." & + int2str(info_ind.cell_id) & "." & + int2str(req_arfcn) & "." & + int2str(req_bsic); + /* we receive RAC+CI resolution request and we send incorrectlt formated response */ + f_ctrl_exp_get(IPA_CTRL, ctrl_var, "foobar-error"); + + /* Wait until we receive something non-dummy */ + while (true) { + f_rx_rlcmac_dl_block(dl_block, sched_fn); + if (not match(dl_block, tr_RLCMAC_DUMMY_CTRL())) { + break; + } + } + /* Make sure it is a Pkt Cell Chg Continue */ + if (not match(dl_block, tr_RLCMAC_DL_CTRL(?, tr_RlcMacDlCtrl_PKT_CELL_CHG_CONTINUE))) { + setverdict(fail, "Rx unexpected DL block: ", dl_block); + } + + f_shutdown(__BFILE__, __LINE__, final := true); +} + /* Verify PCU transmits Pkt Cell Change Continue if SI resolution fails during outbound NACC procedure */ testcase TC_nacc_outbound_si_resolve_timeout() runs on RAW_PCU_Test_CT { var RlcmacDlBlock dl_block; @@ -3967,6 +4033,7 @@ execute( TC_pcuif_info_ind_subsequent() ); execute( TC_nacc_outbound_success() ); execute( TC_nacc_outbound_rac_ci_resolve_timeout() ); + execute( TC_nacc_outbound_rac_ci_resolve_fail_parse_response() ); execute( TC_nacc_outbound_si_resolve_timeout() ); } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22454 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If7efddb1ae2ccb580fe85c8df45c9ccdb818c6f3 Gerrit-Change-Number: 22454 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 19:52:53 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Tue, 26 Jan 2021 19:52:53 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: agregate RIM related code in gprs_bssgp_rim.c In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22442 to look at the new patch set (#4). Change subject: gprs_bssgp: agregate RIM related code in gprs_bssgp_rim.c ...................................................................... gprs_bssgp: agregate RIM related code in gprs_bssgp_rim.c gprs_bssgp and gprs_bssgp_util.c also contains code related to send and receive RIM PDUs via BSSGP and also code to encode and decode RAN INFORMATION PDUs. Lets move this to gprs_bssgp_rim.c Change-Id: Icda279452962b06e552cb1361d2a27b7dc8a6b04 Related: SYS#5103 --- M include/osmocom/gprs/gprs_bssgp.h M include/osmocom/gprs/gprs_bssgp_rim.h M src/gb/gprs_bssgp.c M src/gb/gprs_bssgp_internal.h M src/gb/gprs_bssgp_rim.c M src/gb/gprs_bssgp_util.c 6 files changed, 307 insertions(+), 293 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/42/22442/4 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22442 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Icda279452962b06e552cb1361d2a27b7dc8a6b04 Gerrit-Change-Number: 22442 Gerrit-PatchSet: 4 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 19:53:45 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Tue, 26 Jan 2021 19:53:45 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: agregate RIM related code in gprs_bssgp_rim.c In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22442 ) Change subject: gprs_bssgp: agregate RIM related code in gprs_bssgp_rim.c ...................................................................... Patch Set 4: With this patch now everything RIM related should be aggregated in gprs_bssgp_rim.c as discussed. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22442 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Icda279452962b06e552cb1361d2a27b7dc8a6b04 Gerrit-Change-Number: 22442 Gerrit-PatchSet: 4 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 26 Jan 2021 19:53:45 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 21:20:41 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Tue, 26 Jan 2021 21:20:41 +0000 Subject: Change in osmo-bsc[master]: abis_rsl: check if emergency calling is disabled before premption References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22455 ) Change subject: abis_rsl: check if emergency calling is disabled before premption ...................................................................... abis_rsl: check if emergency calling is disabled before premption If an emergency call arrives at the BSC while all TCH are busy, one TCH is cleared in favor of the emergency call. However, if emergency calls are disabled (system information), it is still possible that an MS might try an emergency call anyway or that due to interference a regular call might look like an emergency call (channel request reason). In those cases the preemption must not happen and the emergency call must be rejected. Change-Id: I1af1f4fefcbe6a886bb5396901ce0cb2368a0e19 Related: OS#4976 --- M src/osmo-bsc/abis_rsl.c 1 file changed, 12 insertions(+), 10 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/55/22455/1 diff --git a/src/osmo-bsc/abis_rsl.c b/src/osmo-bsc/abis_rsl.c index 321bcb4..9f25483 100644 --- a/src/osmo-bsc/abis_rsl.c +++ b/src/osmo-bsc/abis_rsl.c @@ -1684,6 +1684,18 @@ return; } + /* Block emergency calls if we explicitly disable them via sysinfo. */ + if (rqd->reason == GSM_CHREQ_REASON_EMERG) { + if (bts->si_common.rach_control.t2 & 0x4) { + LOG_BTS(bts, DRSL, LOGL_NOTICE, "CHAN RQD: MS attempts EMERGENCY CALL although EMERGENCY CALLS " + "are not allowed in sysinfo (spec violation by MS!)\n"); + rsl_tx_imm_ass_rej(bts, &rqd->ref); + llist_del(&rqd->entry); + talloc_free(rqd); + return; + } + } + /* Ensure that emergency calls will get priority over regular calls, however releasing * lchan in favor of an emergency call may take some time, so we exit here. The lchan_fsm * will poll again when an lchan becomes available. */ @@ -1702,16 +1714,6 @@ * - If there is still no channel available, try a TCH/F. * */ - if (rqd->reason == GSM_CHREQ_REASON_EMERG) { - if (bts->si_common.rach_control.t2 & 0x4) { - LOG_BTS(bts, DRSL, LOGL_NOTICE, "CHAN RQD: MS attempts EMERGENCY CALL although EMERGENCY CALLS " - "are not allowed in sysinfo (spec violation by MS!)\n"); - rsl_tx_imm_ass_rej(bts, &rqd->ref); - llist_del(&rqd->entry); - talloc_free(rqd); - return; - } - } /* Emergency calls will be put on a free TCH/H or TCH/F directly in the code below, all other channel requests * will get an SDCCH first (if possible). */ -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22455 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I1af1f4fefcbe6a886bb5396901ce0cb2368a0e19 Gerrit-Change-Number: 22455 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 21:42:17 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Tue, 26 Jan 2021 21:42:17 +0000 Subject: Change in osmo-bsc[master]: abis_rsl: check if emergency calling is disabled before premption In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bsc/+/22455 to look at the new patch set (#2). Change subject: abis_rsl: check if emergency calling is disabled before premption ...................................................................... abis_rsl: check if emergency calling is disabled before premption If an emergency call arrives at the BSC while all TCH are busy, one TCH is cleared in favor of the emergency call. However, if emergency calls are disabled (system information), it is still possible that an MS might try an emergency call anyway or that due to interference a regular call might look like an emergency call (channel request reason). In those cases the preemption must not happen and the emergency call must be rejected. Change-Id: I1af1f4fefcbe6a886bb5396901ce0cb2368a0e19 Related: OS#4976 --- M src/osmo-bsc/abis_rsl.c 1 file changed, 11 insertions(+), 10 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/55/22455/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22455 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I1af1f4fefcbe6a886bb5396901ce0cb2368a0e19 Gerrit-Change-Number: 22455 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jan 26 22:34:03 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 26 Jan 2021 22:34:03 +0000 Subject: Change in osmo-bsc[master]: abis_rsl: check if emergency calling is disabled before premption In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22455 ) Change subject: abis_rsl: check if emergency calling is disabled before premption ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22455 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I1af1f4fefcbe6a886bb5396901ce0cb2368a0e19 Gerrit-Change-Number: 22455 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 26 Jan 2021 22:34:03 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 00:07:50 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 27 Jan 2021 00:07:50 +0000 Subject: Change in osmo-trx[master]: Transceiver: use proper factor for amplitude scaling References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-trx/+/22456 ) Change subject: Transceiver: use proper factor for amplitude scaling ...................................................................... Transceiver: use proper factor for amplitude scaling In Transceiver::addRadioVector() we scale the I/Q samples by scaling the output voltage of the DAC. A relative factor/divisor/ration in the voltage domain cannot be used 1:1 in the power domain. There exist two similar formulas: a) X_dB = 10 * log10(X_lin / X_ref) b) Y_db = 20 * log10(Y_lin / Y_ref) both of them are correct, and according to [1]: a) If you convert a quantity X that relates to power or energy, => the factor is 10. b) If you convert a quantity Y that relates to amplitude, => the factor is 20. Therefore we should be using 20 instead of 10. This change makes osmo-trx apply per-lchan attenuation values correctly. Otherwise it would double the values indicated in TRXD messages. [1] https://dspillustrations.com/pages/posts/misc/decibel-conversion-factor-10-or-factor-20.html Change-Id: I98bc00bd25df4913d45e55eb008d715aca76fc7c Related: SYS#4918 --- M Transceiver52M/Transceiver.cpp 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/56/22456/1 diff --git a/Transceiver52M/Transceiver.cpp b/Transceiver52M/Transceiver.cpp index 3188c70..6de266c 100644 --- a/Transceiver52M/Transceiver.cpp +++ b/Transceiver52M/Transceiver.cpp @@ -396,7 +396,7 @@ else burst = modulateBurst(bits, 8 + (wTime.TN() % 4 == 0), cfg->tx_sps); - scaleVector(*burst, txFullScale * pow(10, (double) -RSSI / 10)); + scaleVector(*burst, txFullScale * pow(10, (double) -RSSI / 20)); radio_burst = new radioVector(wTime, burst); -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/22456 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I98bc00bd25df4913d45e55eb008d715aca76fc7c Gerrit-Change-Number: 22456 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 09:52:11 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 27 Jan 2021 09:52:11 +0000 Subject: Change in osmo-ttcn3-hacks[master]: fr-net: Fix regen_makefile.sh In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22444 ) Change subject: fr-net: Fix regen_makefile.sh ...................................................................... fr-net: Fix regen_makefile.sh regen-makefile.sh should not include generated c++ code. Change-Id: I0fecfb0d3c33f8d87923d4843fee718916001978 --- M fr-net/regen_makefile.sh 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/fr-net/regen_makefile.sh b/fr-net/regen_makefile.sh index 6aaf577..e2c143d 100755 --- a/fr-net/regen_makefile.sh +++ b/fr-net/regen_makefile.sh @@ -3,7 +3,7 @@ FILES="*.ttcn *.ttcnpp BSSGP_EncDec.cc IPL4asp_PT.cc IPL4asp_discovery.cc TCCConversion.cc TCCInterface.cc " FILES+="AF_PACKET_PT.cc " FILES+="Native_FunctionDefs.cc " -FILES+="LLC_EncDec.cc LLC_Types.cc TELNETasp_PT.cc " +FILES+="LLC_EncDec.cc TELNETasp_PT.cc " export CPPFLAGS_TTCN3="-DNS_EMULATION_FR" -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22444 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I0fecfb0d3c33f8d87923d4843fee718916001978 Gerrit-Change-Number: 22444 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 09:52:12 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 27 Jan 2021 09:52:12 +0000 Subject: Change in osmo-ttcn3-hacks[master]: fr-net: use 'hdlcnet1' as default netdev In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22445 ) Change subject: fr-net: use 'hdlcnet1' as default netdev ...................................................................... fr-net: use 'hdlcnet1' as default netdev The gbproxy tests and our scripts have started to use hdlc0..7 paired with hdlcnet0..7. Let's adjust fr-net to also use 'hdlcnet1' as the pairing 'fr' test uses 'hdlc1' Change-Id: If456a575cc2ae0ab2fc63730b329131dfcc70a47 --- M fr-net/FRNET_Tests.ttcn 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/fr-net/FRNET_Tests.ttcn b/fr-net/FRNET_Tests.ttcn index 94b32dc..3943ff1 100644 --- a/fr-net/FRNET_Tests.ttcn +++ b/fr-net/FRNET_Tests.ttcn @@ -18,7 +18,7 @@ { provider := { fr := { - netdev := "hdlc2", + netdev := "hdlcnet1", dlci := 123 } }, -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22445 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If456a575cc2ae0ab2fc63730b329131dfcc70a47 Gerrit-Change-Number: 22445 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 09:52:35 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 27 Jan 2021 09:52:35 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Use Misc_Helpers.f_shutdown() whenever applicable References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22459 ) Change subject: gbproxy: Use Misc_Helpers.f_shutdown() whenever applicable ...................................................................... gbproxy: Use Misc_Helpers.f_shutdown() whenever applicable This should avoid some of the "known" races during shut-down Change-Id: I4fdd47e9c5887597dca89580f856ddc6cd8f54f1 --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 43 insertions(+), 56 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/59/22459/1 diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index df27a3d..4879521 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -592,8 +592,7 @@ repeat; } [] SGSN_MGMT.receive { - setverdict(fail, "Received unexpected message on SGSN_MGMT"); - mtc.stop; + f_shutdown(__FILE__, __LINE__, fail, "Received unexpected message on SGSN_MGMT"); } [] PCU_MGMT.receive(BssgpStatusIndication:{*, ?, BVC_S_UNBLOCKED}) -> value bsi { @@ -606,8 +605,7 @@ repeat; } [] PCU_MGMT.receive { - setverdict(fail, "Received unexpected message on PCU_MGMT"); - mtc.stop; + f_shutdown(__FILE__, __LINE__, fail, "Received unexpected message on PCU_MGMT"); } [] T.timeout { @@ -622,8 +620,8 @@ for (var integer j := 0; j < lengthof(g_sgsn[i].cfg.bvc); j := j+1) { var BssgpBvci bvci := g_sgsn[i].cfg.bvc[j].bvci; if (not ro_integer_contains(bvci_unblocked[i], bvci)) { - setverdict(fail, "SGSN ", i, " BVCI=", bvci, " was not unblocked during start-up"); - mtc.stop; + f_shutdown(__FILE__, __LINE__, fail, + log2str("SGSN ", i, " BVCI=", bvci, " was not unblocked during start-up")); } } } @@ -742,8 +740,7 @@ private altstep as_gTguard(timer Tguard) { [] Tguard.timeout { - setverdict(fail, "Tguard timeout"); - mtc.stop; + f_shutdown(__FILE__, __LINE__, fail, "Tguard timeout"); } } @@ -821,16 +818,16 @@ setverdict(pass); } [] SGSN_PTP[sgsn_idx].receive(PDU_BSSGP:?) -> value rx { - setverdict(fail, "Unexpected BSSGP on SGSN[", sgsn_idx, "] side: ", rx); - mtc.stop; + f_shutdown(__FILE__, __LINE__, fail, + log2str("Unexpected BSSGP on SGSN[", sgsn_idx, "] side: ", rx)); } [] SGSN_SIG[sgsn_idx].receive(PDU_BSSGP:?) -> value rx { - setverdict(fail, "Unexpected SIG BSSGP on SGSN[", sgsn_idx, "] side: ", rx); - mtc.stop; + f_shutdown(__FILE__, __LINE__, fail, + log2str("Unexpected SIG BSSGP on SGSN[", sgsn_idx, "] side: ", rx)); } [] T.timeout { - setverdict(fail, "Timeout waiting for BSSGP on SGSN[", sgsn_idx, "] side: ", exp_rx); - mtc.stop; + f_shutdown(__FILE__, __LINE__, fail, + log2str("Timeout waiting for BSSGP on SGSN[", sgsn_idx, "] side: ", exp_rx)); } } } @@ -858,16 +855,16 @@ setverdict(pass); } [] any from SGSN_PTP.receive(PDU_BSSGP:?) -> value rx @index value rx_idx { - setverdict(fail, "Unexpected BSSGP on SGSN[", rx_idx, "] side: ", rx); - mtc.stop; + f_shutdown(__FILE__, __LINE__, fail, + log2str("Unexpected BSSGP on SGSN[", rx_idx, "] side: ", rx)); } [] any from SGSN_SIG.receive(PDU_BSSGP:?) -> value rx @index value rx_idx { - setverdict(fail, "Unexpected SIG BSSGP on SGSN[", rx_idx, "] side: ", rx); - mtc.stop; + f_shutdown(__FILE__, __LINE__, fail, + log2str("Unexpected SIG BSSGP on SGSN[", rx_idx, "] side: ", rx)); } [] T.timeout { - setverdict(fail, "Timeout waiting for BSSGP on SGSN side: ", exp_rx); - mtc.stop; + f_shutdown(__FILE__, __LINE__, fail, + log2str("Timeout waiting for BSSGP on SGSN side: ", exp_rx)); } } return rx_idx; @@ -895,16 +892,14 @@ setverdict(pass); } [] PCU_PTP[pcu_idx].receive(PDU_BSSGP:?) -> value rx { - setverdict(fail, "Unexpected BSSGP on PCU side: ", rx); - mtc.stop; + f_shutdown(__FILE__, __LINE__, fail, log2str("Unexpected BSSGP on PCU side: ", rx)); } [] PCU_SIG[pcu_idx].receive(PDU_BSSGP:?) -> value rx { - setverdict(fail, "Unexpected SIG BSSGP on PCU side: ", rx); - mtc.stop; + f_shutdown(__FILE__, __LINE__, fail, log2str("Unexpected SIG BSSGP on PCU side: ", rx)); } [] T.timeout { - setverdict(fail, "Timeout waiting for BSSGP on PCU side: ", exp_rx); - mtc.stop; + f_shutdown(__FILE__, __LINE__, fail, + log2str("Timeout waiting for BSSGP on PCU side: ", exp_rx)); } } } @@ -987,12 +982,10 @@ setverdict(fail, "BSSGP arrived on wrong SGSN[", rx_idx, "] instead of SGSN[", sgsn_idx, "]"); } [] G_SGSN[sgsn_idx].receive(PDU_BSSGP:?) -> value rx { - setverdict(fail, "Unexpected BSSGP on SGSN side: ", rx); - mtc.stop; + f_shutdown(__FILE__, __LINE__, fail, log2str("Unexpected BSSGP on SGSN side: ", rx)); } [] T.timeout { - setverdict(fail, "Timeout waiting for BSSGP on SGSN side: ", exp_rx); - mtc.stop; + f_shutdown(__FILE__, __LINE__, fail, log2str("Timeout waiting for BSSGP on SGSN side: ", exp_rx)); } } } @@ -1014,12 +1007,10 @@ setverdict(fail, "BSSGP arrived on wrong PCU[", rx_idx, "] instead of PCU[", pcu_idx, "]"); } [] G_PCU[pcu_idx].receive(PDU_BSSGP:?) -> value rx { - setverdict(fail, "Unexpected BSSGP on PCU side: ", rx); - mtc.stop; + f_shutdown(__FILE__, __LINE__, fail, log2str("Unexpected BSSGP on PCU side: ", rx)); } [] T.timeout { - setverdict(fail, "Timeout waiting for BSSGP on PCU side: ", exp_rx); - mtc.stop; + f_shutdown(__FILE__, __LINE__, fail, log2str("Timeout waiting for BSSGP on PCU side: ", exp_rx)); } } } @@ -1061,12 +1052,12 @@ return rx_pdu.pDU_BSSGP_SUSPEND_ACK.suspend_Reference_Number.suspend_Reference_Number_value; } [] PCU_SIG[ran_idx].receive(tr_BSSGP_SUSPEND_NACK(g_pars.tlli, bvcc.cell_id.ra_id, ?)) -> value rx_pdu { - setverdict(fail, "SUSPEND-NACK in response to SUSPEND for TLLI ", g_pars.tlli); - mtc.stop; + f_shutdown(__FILE__, __LINE__, fail, + log2str("SUSPEND-NACK in response to SUSPEND for TLLI ", g_pars.tlli)); } [] T.timeout { - setverdict(fail, "No SUSPEND-ACK in response to SUSPEND for TLLI ", g_pars.tlli); - mtc.stop; + f_shutdown(__FILE__, __LINE__, fail, + log2str("No SUSPEND-ACK in response to SUSPEND for TLLI ", g_pars.tlli)); } } return '00'O; @@ -1080,12 +1071,12 @@ alt { [] PCU_SIG[ran_idx].receive(tr_BSSGP_RESUME_ACK(g_pars.tlli, bvcc.cell_id.ra_id)); [] PCU_SIG[ran_idx].receive(tr_BSSGP_RESUME_NACK(g_pars.tlli, bvcc.cell_id.ra_id, ?)) { - setverdict(fail, "RESUME-NACK in response to RESUME for TLLI ", g_pars.tlli); - mtc.stop; + f_shutdown(__FILE__, __LINE__, fail, + log2str("RESUME-NACK in response to RESUME for TLLI ", g_pars.tlli)); } [] T.timeout { - setverdict(fail, "No RESUME-ACK in response to SUSPEND for TLLI ", g_pars.tlli); - mtc.stop; + f_shutdown(__FILE__, __LINE__, fail, + log2str("No RESUME-ACK in response to SUSPEND for TLLI ", g_pars.tlli)); } } } @@ -1399,8 +1390,7 @@ [] NS.receive(NsUnitdataIndication:{0,?,?,*,*}) { repeat; } /* signaling BVC */ [] NS.receive(NsStatusIndication:?) { repeat; } [] NS.receive { - setverdict(fail, "Rx unexpected NS"); - mtc.stop; + f_shutdown(__FILE__, __LINE__, fail, "Rx unexpected NS"); } [] T.timeout { } @@ -2828,12 +2818,11 @@ setverdict(pass); } [] any from RIM_SGSN.receive(PDU_BSSGP:?) -> value rx { - setverdict(fail, "Unexpected BSSGP on SGSN side: ", rx); - mtc.stop; + f_shutdown(__FILE__, __LINE__, fail, log2str("Unexpected BSSGP on SGSN side: ", rx)); } [] T.timeout { - setverdict(fail, "Timeout waiting for BSSGP on SGSN side: ", exp_rx); - mtc.stop; + f_shutdown(__FILE__, __LINE__, fail, + log2str("Timeout waiting for BSSGP on SGSN side: ", exp_rx)); } } } @@ -2851,12 +2840,11 @@ setverdict(pass); } [] RIM_PCU[pcu_idx].receive(PDU_BSSGP:?) -> value rx { - setverdict(fail, "Unexpected BSSGP on PCU side: ", rx); - mtc.stop; + f_shutdown(__FILE__, __LINE__, fail, log2str("Unexpected BSSGP on PCU side: ", rx)); } [] T.timeout { - setverdict(fail, "Timeout waiting for BSSGP on PCU side: ", exp_rx); - mtc.stop; + f_shutdown(__FILE__, __LINE__, fail, + log2str("Timeout waiting for BSSGP on PCU side: ", exp_rx)); } } } @@ -2881,12 +2869,11 @@ setverdict(fail, "Received RIM on SGSN but expected it on other PCU"); } [] any from RIM_SGSN.receive(PDU_BSSGP:?) -> value rx { - setverdict(fail, "Unexpected BSSGP on SGSN side: ", rx); - mtc.stop; + f_shutdown(__FILE__, __LINE__, fail, log2str("Unexpected BSSGP on SGSN side: ", rx)); } [] T.timeout { - setverdict(fail, "Timeout waiting for BSSGP on SGSN side: ", exp_rx); - mtc.stop; + f_shutdown(__FILE__, __LINE__, fail, + log2str("Timeout waiting for BSSGP on SGSN side: ", exp_rx)); } } } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22459 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I4fdd47e9c5887597dca89580f856ddc6cd8f54f1 Gerrit-Change-Number: 22459 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 09:54:56 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 27 Jan 2021 09:54:56 +0000 Subject: Change in osmo-trx[master]: Transceiver: use proper factor for amplitude scaling In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/22456 ) Change subject: Transceiver: use proper factor for amplitude scaling ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/22456 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I98bc00bd25df4913d45e55eb008d715aca76fc7c Gerrit-Change-Number: 22456 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 27 Jan 2021 09:54:56 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 09:55:44 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 27 Jan 2021 09:55:44 +0000 Subject: Change in osmo-bsc[master]: abis_rsl: check if emergency calling is disabled before premption In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22455 ) Change subject: abis_rsl: check if emergency calling is disabled before premption ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22455 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I1af1f4fefcbe6a886bb5396901ce0cb2368a0e19 Gerrit-Change-Number: 22455 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 27 Jan 2021 09:55:44 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 09:55:59 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 27 Jan 2021 09:55:59 +0000 Subject: Change in osmo-bsc[master]: abis_rsl: check if emergency calling is disabled before premption In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22455 ) Change subject: abis_rsl: check if emergency calling is disabled before premption ...................................................................... abis_rsl: check if emergency calling is disabled before premption If an emergency call arrives at the BSC while all TCH are busy, one TCH is cleared in favor of the emergency call. However, if emergency calls are disabled (system information), it is still possible that an MS might try an emergency call anyway or that due to interference a regular call might look like an emergency call (channel request reason). In those cases the preemption must not happen and the emergency call must be rejected. Change-Id: I1af1f4fefcbe6a886bb5396901ce0cb2368a0e19 Related: OS#4976 --- M src/osmo-bsc/abis_rsl.c 1 file changed, 11 insertions(+), 10 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/src/osmo-bsc/abis_rsl.c b/src/osmo-bsc/abis_rsl.c index 321bcb4..388e2fc 100644 --- a/src/osmo-bsc/abis_rsl.c +++ b/src/osmo-bsc/abis_rsl.c @@ -1546,6 +1546,17 @@ break; } + /* Block emergency calls if we explicitly disable them via sysinfo. */ + if (rqd->reason == GSM_CHREQ_REASON_EMERG) { + if (bts->si_common.rach_control.t2 & 0x4) { + LOG_BTS(bts, DRSL, LOGL_NOTICE, "CHAN RQD: MS attempts EMERGENCY CALL although EMERGENCY CALLS " + "are not allowed in sysinfo (spec violation by MS!)\n"); + rsl_tx_imm_ass_rej(bts, &rqd->ref); + talloc_free(rqd); + return 0; + } + } + /* Enqueue request */ llist_add_tail(&rqd->entry, &bts->chan_rqd_queue); @@ -1702,16 +1713,6 @@ * - If there is still no channel available, try a TCH/F. * */ - if (rqd->reason == GSM_CHREQ_REASON_EMERG) { - if (bts->si_common.rach_control.t2 & 0x4) { - LOG_BTS(bts, DRSL, LOGL_NOTICE, "CHAN RQD: MS attempts EMERGENCY CALL although EMERGENCY CALLS " - "are not allowed in sysinfo (spec violation by MS!)\n"); - rsl_tx_imm_ass_rej(bts, &rqd->ref); - llist_del(&rqd->entry); - talloc_free(rqd); - return; - } - } /* Emergency calls will be put on a free TCH/H or TCH/F directly in the code below, all other channel requests * will get an SDCCH first (if possible). */ -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22455 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I1af1f4fefcbe6a886bb5396901ce0cb2368a0e19 Gerrit-Change-Number: 22455 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 09:58:48 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 27 Jan 2021 09:58:48 +0000 Subject: Change in osmo-ttcn3-hacks[master]: rlcmac: introduce initial support for NACC related messages In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22058 ) Change subject: rlcmac: introduce initial support for NACC related messages ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22058 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I4d2f123479c34e6afffe0bc8d91409e6b0529a62 Gerrit-Change-Number: 22058 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 27 Jan 2021 09:58:48 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 10:05:27 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 27 Jan 2021 10:05:27 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Introduce test TC_nacc_outbound_success In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22387 ) Change subject: pcu: Introduce test TC_nacc_outbound_success ...................................................................... Patch Set 3: Code-Review+1 (3 comments) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22387/3/library/GSM_Types.ttcn File library/GSM_Types.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22387/3/library/GSM_Types.ttcn at 425 PS3, Line 425: bcdmccmnc := str2hex(mcc_str[0]) & str2hex(mcc_str[1]) & str2hex(mnc_str[2]) & why not one "mncc_str_hex := str2hex(mncc_str)" above and then avoid calling that function 9 times - plus make the code more readable? https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22387/3/pcu/PCU_Tests.ttcn File pcu/PCU_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22387/3/pcu/PCU_Tests.ttcn at 3588 PS3, Line 3588: while (true) { : f_rx_rlcmac_dl_block(dl_block, sched_fn); : if (not match(dl_block, tr_RLCMAC_DUMMY_CTRL())) { : break; : } : if (i > 50) { : setverdict(fail, "Rx unexpected DL block: ", dl_block); : f_shutdown(__BFILE__, __LINE__); : return; : } : i := i + 1; : } does it make sense to factor this out into a separate function? something in principle like "wait_for(rx_template, max_num_iterations)" https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22387/3/pcu/PCU_Tests.ttcn at 3609 PS3, Line 3609: return I guess that's not needed anywhere after f_shutdown()? -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22387 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I951db4af731e5a7c207f0f407dd78d166e2d3d26 Gerrit-Change-Number: 22387 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 27 Jan 2021 10:05:27 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 10:10:55 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 27 Jan 2021 10:10:55 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Introduce test TC_nacc_outbound_rac_ci_resolve_timeout In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22452 ) Change subject: pcu: Introduce test TC_nacc_outbound_rac_ci_resolve_timeout ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22452/1/pcu/PCU_Tests.ttcn File pcu/PCU_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22452/1/pcu/PCU_Tests.ttcn at 3801 PS1, Line 3801: f_rx_rlcmac_dl_block(dl_block, sched_fn); is this guarded by a timeout? un-bounded loops always make me uneasy ;) -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22452 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ia09fbfe9aba34a51e0715d1c307de280e3ae0249 Gerrit-Change-Number: 22452 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 27 Jan 2021 10:10:55 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 10:11:40 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 27 Jan 2021 10:11:40 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Introduce test TC_nacc_outbound_si_resolve_timeout In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22453 ) Change subject: pcu: Introduce test TC_nacc_outbound_si_resolve_timeout ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22453/1/pcu/PCU_Tests.ttcn File pcu/PCU_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22453/1/pcu/PCU_Tests.ttcn at 3882 PS1, Line 3882: f_rx_rlcmac_dl_block(dl_block, sched_fn); like in te other case: is there a guard timer running here? -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22453 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If0032b940685efaaa8f65357c56c3383fab3e283 Gerrit-Change-Number: 22453 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-Comment-Date: Wed, 27 Jan 2021 10:11:40 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 10:12:01 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 27 Jan 2021 10:12:01 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Introduce test TC_nacc_outbound_rac_ci_resolve_fail_parse_response In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22454 ) Change subject: pcu: Introduce test TC_nacc_outbound_rac_ci_resolve_fail_parse_response ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22454/1/pcu/PCU_Tests.ttcn File pcu/PCU_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22454/1/pcu/PCU_Tests.ttcn at 3868 PS1, Line 3868: if (not match(dl_block, tr_RLCMAC_DUMMY_CTRL())) { and once more the question about unbounded loops... -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22454 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If7efddb1ae2ccb580fe85c8df45c9ccdb818c6f3 Gerrit-Change-Number: 22454 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-Comment-Date: Wed, 27 Jan 2021 10:12:01 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Wed Jan 27 10:32:28 2021 From: admin at opensuse.org (OBS Notification) Date: Wed, 27 Jan 2021 10:32:28 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in xUbuntu_19.04/x86_64 In-Reply-To: References: Message-ID: <6011414652130_7ea62ae3667d05f4525116@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-pcu/xUbuntu_19.04/x86_64 Package network:osmocom:nightly/osmo-pcu failed to build in xUbuntu_19.04/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-pcu Last lines of build log: /var/cache/obs/worker/root_5/.pkgs/libosmocore-dev.deb: Input/output error (worker was wildcard2:5) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Jan 27 10:34:45 2021 From: admin at opensuse.org (OBS Notification) Date: Wed, 27 Jan 2021 10:34:45 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <601141db97dc3_7ea62ae3667d05f4525941@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/xUbuntu_20.04/x86_64 Package network:osmocom:nightly/simtrace2 failed to build in xUbuntu_20.04/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 116s] [COMPILING libboard/qmod/source/wwan_perst.c] [ 116s] [COMPILING libboard/qmod/source/card_pres.c] [ 116s] [COMPILING libboard/qmod/source/wwan_led.c] [ 117s] [COMPILING libboard/qmod/source/i2c.c] [ 117s] [COMPILING libboard/qmod/source/board_qmod.c] [ 117s] [COMPILING apps/dfu/main.c] [ 117s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 117s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 117s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 117s] Memory region Used Size Region Size %age Used [ 117s] rom: 16588 B 16 KB 101.25% [ 117s] ram: 11672 B 48 KB 23.75/usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 117s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 204 bytes [ 117s] collect2: error: ld returned 1 exit status [ 117s] % [ 117s] make[2]: *** [Makefile:234: flash] Error 1 [ 117s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 117s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 117s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 117s] dh_auto_build: error: make -j1 returned exit code 2 [ 117s] make: *** [debian/rules:16: build] Error 25 [ 117s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 117s] ### VM INTERACTION START ### [ 120s] [ 109.627407] sysrq: Power Off [ 120s] [ 109.630948] reboot: Power down [ 120s] ### VM INTERACTION END ### [ 120s] [ 120s] sheep86 failed "build simtrace2_0.7.0.69.aadd.dsc" at Wed Jan 27 10:34:40 UTC 2021. [ 120s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Jan 27 10:35:54 2021 From: admin at opensuse.org (OBS Notification) Date: Wed, 27 Jan 2021 10:35:54 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.10/x86_64 In-Reply-To: References: Message-ID: <60114217583b8_7ea62ae3667d05f4526187@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/xUbuntu_20.10/x86_64 Package network:osmocom:nightly/simtrace2 failed to build in xUbuntu_20.10/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 112s] [COMPILING apps/dfu/main.c] [ 112s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 112s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 112s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 112s] Memory region Used Size Region Size %age Used [ 112s] rom: 16580 B 16 KB 101.20% [ 112s] ram: 11672 B 48 KB 23.75/usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 112s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 112s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 112s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 112s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 112s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 112s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 196 bytes [ 112s] collect2: error: ld returned 1 exit status [ 112s] % [ 112s] make[2]: *** [Makefile:234: flash] Error 1 [ 112s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 112s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 112s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 112s] dh_auto_build: error: make -j1 returned exit code 2 [ 112s] make: *** [debian/rules:16: build] Error 25 [ 112s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 112s] ### VM INTERACTION START ### [ 115s] [ 106.172639] sysrq: Power Off [ 115s] [ 106.176056] reboot: Power down [ 115s] ### VM INTERACTION END ### [ 115s] [ 115s] sheep87 failed "build simtrace2_0.7.0.69.aadd.dsc" at Wed Jan 27 10:35:39 UTC 2021. [ 115s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Jan 27 10:36:28 2021 From: admin at opensuse.org (OBS Notification) Date: Wed, 27 Jan 2021 10:36:28 +0000 Subject: Build failure of network:osmocom:nightly/osmo-bts in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <6011423472fdf_7ea62ae3667d05f452623e@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-bts/Debian_Unstable/x86_64 Package network:osmocom:nightly/osmo-bts failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-bts Last lines of build log: /var/cache/obs/worker/root_5/.pkgs/libosmocore-dev.deb: Input/output error (worker was wildcard2:5) -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Wed Jan 27 10:59:22 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 27 Jan 2021 10:59:22 +0000 Subject: Change in osmo-pcu[master]: Introduce NACC support In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22385 ) Change subject: Introduce NACC support ...................................................................... Patch Set 9: (13 comments) https://gerrit.osmocom.org/c/osmo-pcu/+/22385/9/src/gprs_bssgp_rim.c File src/gprs_bssgp_rim.c: https://gerrit.osmocom.org/c/osmo-pcu/+/22385/9/src/gprs_bssgp_rim.c at 142 PS9, Line 142: "Rx RAN-INFO with an app error! cause: %s\n", I think all of those log messages about incoming RIM should always print a stringified verson of the source address, as otherwise it will be pretty difficult to debug in any real workld network, where tons of other cells will be sending us RIM requests https://gerrit.osmocom.org/c/osmo-pcu/+/22385/9/src/nacc_fsm.c File src/nacc_fsm.c: https://gerrit.osmocom.org/c/osmo-pcu/+/22385/9/src/nacc_fsm.c at 55 PS9, Line 55: static struct msgb *create_packet_neighbour_cell_data(struct nacc_fsm_ctx *ctx, struct gprs_rlcmac_tbf *tbf) const for tbf? or is it written to? https://gerrit.osmocom.org/c/osmo-pcu/+/22385/9/src/nacc_fsm.c at 139 PS9, Line 139: static struct msgb *create_packet_cell_chg_continue(struct nacc_fsm_ctx *ctx, struct gprs_rlcmac_tbf *tbf) same here: const? https://gerrit.osmocom.org/c/osmo-pcu/+/22385/9/src/nacc_fsm.c at 182 PS9, Line 182: static int fill_rim_ran_info_req(struct nacc_fsm_ctx *ctx, struct bssgp_ran_information_pdu *pdu) const for the 'ctx'? usually output argument as first argument (unless pcu uses different conventions) https://gerrit.osmocom.org/c/osmo-pcu/+/22385/9/src/neigh_cache.h File src/neigh_cache.h: https://gerrit.osmocom.org/c/osmo-pcu/+/22385/9/src/neigh_cache.h at 49 PS9, Line 49: struct llist_head list; /* to be included in neigh_cache->list */ could possibly go for hashtable right away, now that we have it in libosmocore? https://gerrit.osmocom.org/c/osmo-pcu/+/22385/9/src/neigh_cache.h at 72 PS9, Line 72: struct llist_head list; /* list of si_cache_entry items */ likewise, could use hashtable.h https://gerrit.osmocom.org/c/osmo-pcu/+/22385/9/src/neigh_cache.c File src/neigh_cache.c: https://gerrit.osmocom.org/c/osmo-pcu/+/22385/9/src/neigh_cache.c at 33 PS9, Line 33: static void neigh_cache_cleanup_cb(void *data) { we normally have '{' on a separate line in C... https://gerrit.osmocom.org/c/osmo-pcu/+/22385/9/src/neigh_cache.c at 53 PS9, Line 53: static void neigh_cache_schedule_cleanup(struct neigh_cache *cache) { we normally have '{' on a separate line in C... https://gerrit.osmocom.org/c/osmo-pcu/+/22385/9/src/neigh_cache.c at 93 PS9, Line 93: it = talloc_zero(cache, struct neigh_cache_entry); no OSMO_ASSERT() or NULL check after allocation https://gerrit.osmocom.org/c/osmo-pcu/+/22385/9/src/neigh_cache.c at 149 PS9, Line 149: static void si_cache_cleanup_cb(void *data) { see above https://gerrit.osmocom.org/c/osmo-pcu/+/22385/9/src/neigh_cache.c at 169 PS9, Line 169: static void si_cache_schedule_cleanup(struct si_cache *cache) { style, see above https://gerrit.osmocom.org/c/osmo-pcu/+/22385/9/src/neigh_cache.c at 193 PS9, Line 193: struct si_cache *cache = talloc_zero(ctx, struct si_cache); no ASSERT or NULL check after allocation https://gerrit.osmocom.org/c/osmo-pcu/+/22385/9/src/neigh_cache.c at 208 PS9, Line 208: it = talloc_zero(cache, struct si_cache_entry); no ASSERT or NULL check after allocation -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22385 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Id35f40d05f3e081f32fddbf1fa34cb338db452ca Gerrit-Change-Number: 22385 Gerrit-PatchSet: 9 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-CC: laforge Gerrit-Comment-Date: Wed, 27 Jan 2021 10:59:22 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 10:59:42 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 27 Jan 2021 10:59:42 +0000 Subject: Change in osmo-pcu[master]: NACC: allow setting keep time for entries in neigh and si cache In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22449 ) Change subject: NACC: allow setting keep time for entries in neigh and si cache ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22449 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ifa336aa27dd88ff5b78dbc5a2799740f542bb369 Gerrit-Change-Number: 22449 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 27 Jan 2021 10:59:42 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 11:00:06 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 27 Jan 2021 11:00:06 +0000 Subject: Change in osmo-pcu[master]: NACC: Configure neighbor and SI resolution timeout values In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22450 ) Change subject: NACC: Configure neighbor and SI resolution timeout values ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22450 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ia9932ab082ec095294e85dc4d532046970e17986 Gerrit-Change-Number: 22450 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 27 Jan 2021 11:00:06 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 11:00:35 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 27 Jan 2021 11:00:35 +0000 Subject: Change in osmo-pcu[master]: NACC: Send only Pkt Cell Chg Continue if SI retrieve fails In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22451 ) Change subject: NACC: Send only Pkt Cell Chg Continue if SI retrieve fails ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22451 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ie3f12a08ad611b1086d3f4ab7c3d34af43c07961 Gerrit-Change-Number: 22451 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 27 Jan 2021 11:00:35 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 11:15:29 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 27 Jan 2021 11:15:29 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: agregate RIM related code in gprs_bssgp_rim.c In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22442 ) Change subject: gprs_bssgp: agregate RIM related code in gprs_bssgp_rim.c ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22442 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Icda279452962b06e552cb1361d2a27b7dc8a6b04 Gerrit-Change-Number: 22442 Gerrit-PatchSet: 4 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 27 Jan 2021 11:15:29 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 11:16:00 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 27 Jan 2021 11:16:00 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Use Misc_Helpers.f_shutdown() whenever applicable In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22459 ) Change subject: gbproxy: Use Misc_Helpers.f_shutdown() whenever applicable ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22459 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I4fdd47e9c5887597dca89580f856ddc6cd8f54f1 Gerrit-Change-Number: 22459 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 27 Jan 2021 11:16:00 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 11:25:50 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 27 Jan 2021 11:25:50 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Introduce test TC_nacc_outbound_success In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22387 ) Change subject: pcu: Introduce test TC_nacc_outbound_success ...................................................................... Patch Set 3: (3 comments) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22387/3/library/GSM_Types.ttcn File library/GSM_Types.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22387/3/library/GSM_Types.ttcn at 425 PS3, Line 425: bcdmccmnc := str2hex(mcc_str[0]) & str2hex(mcc_str[1]) & str2hex(mnc_str[2]) & > why not one "mncc_str_hex := str2hex(mncc_str)" above and then avoid calling that function 9 times - [?] I'll try that. TBH I personally find this hexstrings a bit confusing to work with, specially how they get converted from other types, probably because I'm not used to them. https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22387/3/pcu/PCU_Tests.ttcn File pcu/PCU_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22387/3/pcu/PCU_Tests.ttcn at 3588 PS3, Line 3588: while (true) { : f_rx_rlcmac_dl_block(dl_block, sched_fn); : if (not match(dl_block, tr_RLCMAC_DUMMY_CTRL())) { : break; : } : if (i > 50) { : setverdict(fail, "Rx unexpected DL block: ", dl_block); : f_shutdown(__BFILE__, __LINE__); : return; : } : i := i + 1; : } > does it make sense to factor this out into a separate function? something in principle like "wait_fo [?] Fine. These will be removed anyway once I continue with the work to move all this stuff to altsteps. https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22387/3/pcu/PCU_Tests.ttcn at 3609 PS3, Line 3609: return > I guess that's not needed anywhere after f_shutdown()? Ack -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22387 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I951db4af731e5a7c207f0f407dd78d166e2d3d26 Gerrit-Change-Number: 22387 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 27 Jan 2021 11:25:50 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: laforge Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 11:26:48 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 27 Jan 2021 11:26:48 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Introduce test TC_nacc_outbound_rac_ci_resolve_timeout In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22452 ) Change subject: pcu: Introduce test TC_nacc_outbound_rac_ci_resolve_timeout ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22452/1/pcu/PCU_Tests.ttcn File pcu/PCU_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22452/1/pcu/PCU_Tests.ttcn at 3801 PS1, Line 3801: f_rx_rlcmac_dl_block(dl_block, sched_fn); > is this guarded by a timeout? un-bounded loops always make me uneasy ;) Yes there's a global T_Guard, IIRC I checked that a few days ago to make sure. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22452 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ia09fbfe9aba34a51e0715d1c307de280e3ae0249 Gerrit-Change-Number: 22452 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 27 Jan 2021 11:26:48 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: laforge Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 11:34:40 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 27 Jan 2021 11:34:40 +0000 Subject: Change in osmo-pcu[master]: Introduce NACC support In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22385 ) Change subject: Introduce NACC support ...................................................................... Patch Set 9: (7 comments) https://gerrit.osmocom.org/c/osmo-pcu/+/22385/9/src/gprs_bssgp_rim.c File src/gprs_bssgp_rim.c: https://gerrit.osmocom.org/c/osmo-pcu/+/22385/9/src/gprs_bssgp_rim.c at 142 PS9, Line 142: "Rx RAN-INFO with an app error! cause: %s\n", > I think all of those log messages about incoming RIM should always print a stringified verson of the [?] Ack https://gerrit.osmocom.org/c/osmo-pcu/+/22385/9/src/nacc_fsm.c File src/nacc_fsm.c: https://gerrit.osmocom.org/c/osmo-pcu/+/22385/9/src/nacc_fsm.c at 55 PS9, Line 55: static struct msgb *create_packet_neighbour_cell_data(struct nacc_fsm_ctx *ctx, struct gprs_rlcmac_tbf *tbf) > const for tbf? or is it written to? I'll check if any function requires it to be non-null, it could be. https://gerrit.osmocom.org/c/osmo-pcu/+/22385/9/src/nacc_fsm.c at 182 PS9, Line 182: static int fill_rim_ran_info_req(struct nacc_fsm_ctx *ctx, struct bssgp_ran_information_pdu *pdu) > const for the 'ctx'? usually output argument as first argument (unless pcu uses different convention [?] const: ack. order: it's arguable, I was keeping the "ctx" as first param as in object oriented, but I don't have a strong opinion here given that's a static helper. https://gerrit.osmocom.org/c/osmo-pcu/+/22385/9/src/neigh_cache.h File src/neigh_cache.h: https://gerrit.osmocom.org/c/osmo-pcu/+/22385/9/src/neigh_cache.h at 49 PS9, Line 49: struct llist_head list; /* to be included in neigh_cache->list */ > could possibly go for hashtable right away, now that we have it in libosmocore? I would then need to hash quite complex keys, I'll have a look but I think I'll leave it as it is. I'm not saying I'm not changing it, but I have plenty of things to do still for this task so I'm leaving this for the end. https://gerrit.osmocom.org/c/osmo-pcu/+/22385/9/src/neigh_cache.c File src/neigh_cache.c: https://gerrit.osmocom.org/c/osmo-pcu/+/22385/9/src/neigh_cache.c at 33 PS9, Line 33: static void neigh_cache_cleanup_cb(void *data) { > we normally have '{' on a separate line in C... Ack https://gerrit.osmocom.org/c/osmo-pcu/+/22385/9/src/neigh_cache.c at 53 PS9, Line 53: static void neigh_cache_schedule_cleanup(struct neigh_cache *cache) { > we normally have '{' on a separate line in C... Ack https://gerrit.osmocom.org/c/osmo-pcu/+/22385/9/src/neigh_cache.c at 93 PS9, Line 93: it = talloc_zero(cache, struct neigh_cache_entry); > no OSMO_ASSERT() or NULL check after allocation Usual rant about whether malloc can fail or not :P I'll add it. -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22385 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Id35f40d05f3e081f32fddbf1fa34cb338db452ca Gerrit-Change-Number: 22385 Gerrit-PatchSet: 9 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-CC: laforge Gerrit-Comment-Date: Wed, 27 Jan 2021 11:34:40 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: laforge Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 11:58:53 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 27 Jan 2021 11:58:53 +0000 Subject: Change in libosmocore[master]: gprs_bssgp_rim: add functions to convert a RIM-RI to a string In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22438 ) Change subject: gprs_bssgp_rim: add functions to convert a RIM-RI to a string ...................................................................... gprs_bssgp_rim: add functions to convert a RIM-RI to a string RIM routing formation structs can contain different variants of address identifiers, so it is difficult for an API user to pick the _name() function to generate a human readable string. Lets add bssgp_rim_ri_name() and bssgp_rim_ri_name_buf() to make printing a routing identifier easier. Change-Id: Idca6bdccffe663aea71a0183ca3ea5bb5b59e702 Related: SYS#5103 --- M include/osmocom/gprs/gprs_bssgp_rim.h M src/gb/gprs_bssgp_rim.c M src/gb/libosmogb.map 3 files changed, 66 insertions(+), 0 deletions(-) Approvals: pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmocom/gprs/gprs_bssgp_rim.h b/include/osmocom/gprs/gprs_bssgp_rim.h index 55341de..418c1bd 100644 --- a/include/osmocom/gprs/gprs_bssgp_rim.h +++ b/include/osmocom/gprs/gprs_bssgp_rim.h @@ -66,6 +66,8 @@ * address type (discr) of variable length. */ #define BSSGP_RIM_ROUTING_INFO_MAXLEN 14 +char *bssgp_rim_ri_name_buf(char *buf, size_t buf_len, const struct bssgp_rim_routing_info *ri); +const char *bssgp_rim_ri_name(const struct bssgp_rim_routing_info *ri); int bssgp_parse_rim_ri(struct bssgp_rim_routing_info *ri, const uint8_t *buf, unsigned int len); int bssgp_create_rim_ri(uint8_t *buf, const struct bssgp_rim_routing_info *ri); diff --git a/src/gb/gprs_bssgp_rim.c b/src/gb/gprs_bssgp_rim.c index 844268a..15d6e22 100644 --- a/src/gb/gprs_bssgp_rim.c +++ b/src/gb/gprs_bssgp_rim.c @@ -146,6 +146,68 @@ return len; } +/*! Encode a RIM Routing information into a human readable string. + * \param[buf] user provided string buffer to store the resulting string. + * \param[buf_len] maximum length of string buffer. + * \param[in] ri user provided input data struct. + * \returns pointer to the beginning of the resulting string stored in string buffer. */ +char *bssgp_rim_ri_name_buf(char *buf, size_t buf_len, const struct bssgp_rim_routing_info *ri) +{ + char plmn_str[16]; + char enb_id_str[16]; + char g_id_ps_str[32]; + struct osmo_plmn_id plmn; + struct osmo_cell_global_id_ps g_id_ps; + + if (!ri) + return NULL; + + switch (ri->discr) { + case BSSGP_RIM_ROUTING_INFO_GERAN: + g_id_ps.rai.rac = ri->geran.raid.rac; + g_id_ps.rai.lac.lac = ri->geran.raid.lac; + g_id_ps.rai.lac.plmn.mcc = ri->geran.raid.mcc; + g_id_ps.rai.lac.plmn.mnc_3_digits = ri->geran.raid.mnc_3_digits; + g_id_ps.rai.lac.plmn.mnc = ri->geran.raid.mnc; + g_id_ps.cell_identity = ri->geran.cid; + snprintf(buf, buf_len, "%s-%s", bssgp_rim_routing_info_discr_str(ri->discr), + osmo_cgi_ps_name_buf(g_id_ps_str, sizeof(g_id_ps_str), &g_id_ps)); + break; + case BSSGP_RIM_ROUTING_INFO_UTRAN: + g_id_ps.rai.rac = ri->utran.raid.rac; + g_id_ps.rai.lac.lac = ri->utran.raid.lac; + g_id_ps.rai.lac.plmn.mcc = ri->utran.raid.mcc; + g_id_ps.rai.lac.plmn.mnc_3_digits = ri->utran.raid.mnc_3_digits; + g_id_ps.rai.lac.plmn.mnc = ri->utran.raid.mnc; + g_id_ps.cell_identity = ri->utran.rncid; + snprintf(buf, buf_len, "%s-%s", bssgp_rim_routing_info_discr_str(ri->discr), + osmo_cgi_ps_name_buf(g_id_ps_str, sizeof(g_id_ps_str), &g_id_ps)); + break; + case BSSGP_RIM_ROUTING_INFO_EUTRAN: + plmn.mcc = ri->eutran.tai.mcc; + plmn.mnc = ri->eutran.tai.mnc; + plmn.mnc_3_digits = ri->eutran.tai.mnc_3_digits; + snprintf(buf, buf_len, "%s-%s-%u-%s", bssgp_rim_routing_info_discr_str(ri->discr), + osmo_plmn_name_buf(plmn_str, sizeof(plmn_str), &plmn), ri->eutran.tai.tac, + osmo_hexdump_buf(enb_id_str, sizeof(enb_id_str), ri->eutran.global_enb_id, + ri->eutran.global_enb_id_len, "", false)); + break; + default: + snprintf(buf, buf_len, "invalid"); + } + + return buf; +} + +/*! Encode a RIM Routing information into a human readable string. + * \param[in] ri user provided input data struct. + * \returns pointer to the resulting string. */ +const char *bssgp_rim_ri_name(const struct bssgp_rim_routing_info *ri) +{ + static __thread char rim_ri_buf[64]; + return bssgp_rim_ri_name_buf(rim_ri_buf, sizeof(rim_ri_buf), ri); +} + /*! Decode a RAN Information Request Application Container for NACC (3GPP TS 48.018, section 11.3.63.1.1). * \param[out] user provided memory for decoded data struct. * \param[in] buf user provided memory with the encoded value data of the IE. diff --git a/src/gb/libosmogb.map b/src/gb/libosmogb.map index b4d7fdb..c6bbc78 100644 --- a/src/gb/libosmogb.map +++ b/src/gb/libosmogb.map @@ -35,6 +35,8 @@ bssgp_parse_rim_ri; bssgp_ran_inf_app_id_strs; bssgp_rim_routing_info_discr_strs; +bssgp_rim_ri_name_buf; +bssgp_rim_ri_name; bssgp_set_bssgp_callback; bssgp_tx_bvc_block; bssgp_tx_bvc_reset; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22438 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Idca6bdccffe663aea71a0183ca3ea5bb5b59e702 Gerrit-Change-Number: 22438 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 11:59:02 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 27 Jan 2021 11:59:02 +0000 Subject: Change in libosmocore[master]: gprs_bssgp_rim: cosmetic: connect routing identifier strings with "-" In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22439 ) Change subject: gprs_bssgp_rim: cosmetic: connect routing identifier strings with "-" ...................................................................... gprs_bssgp_rim: cosmetic: connect routing identifier strings with "-" The bssgp_rim_routing_info_discr_strs string list contains whitespaces, when the whitespaces are replaced with a "-" the log output looks better Change-Id: I26facd3dc160603da89dcd787cccf78b19a20f02 Related: SYS#5103 --- M src/gb/gprs_bssgp_rim.c 1 file changed, 3 insertions(+), 3 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve diff --git a/src/gb/gprs_bssgp_rim.c b/src/gb/gprs_bssgp_rim.c index 15d6e22..25f9406 100644 --- a/src/gb/gprs_bssgp_rim.c +++ b/src/gb/gprs_bssgp_rim.c @@ -42,9 +42,9 @@ #define REP_CELL_ID_LEN 8 const struct value_string bssgp_rim_routing_info_discr_strs[] = { - { BSSGP_RIM_ROUTING_INFO_GERAN, "GERAN cell" }, - { BSSGP_RIM_ROUTING_INFO_UTRAN, "UTRAN RNC" }, - { BSSGP_RIM_ROUTING_INFO_EUTRAN, "E-UTRAN eNodeB/HeNB" }, + { BSSGP_RIM_ROUTING_INFO_GERAN, "GERAN-cell" }, + { BSSGP_RIM_ROUTING_INFO_UTRAN, "UTRAN-RNC" }, + { BSSGP_RIM_ROUTING_INFO_EUTRAN, "E-UTRAN-eNodeB/HeNB" }, { 0, NULL } }; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22439 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I26facd3dc160603da89dcd787cccf78b19a20f02 Gerrit-Change-Number: 22439 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 11:59:24 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 27 Jan 2021 11:59:24 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: log source and destination RIM routing information In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22440 ) Change subject: gprs_bssgp: log source and destination RIM routing information ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22440 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia08d3b162a4f6257cccaa7f0764fa7ea498355ef Gerrit-Change-Number: 22440 Gerrit-PatchSet: 4 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 27 Jan 2021 11:59:24 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 11:59:27 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 27 Jan 2021 11:59:27 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: log source and destination RIM routing information In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22440 ) Change subject: gprs_bssgp: log source and destination RIM routing information ...................................................................... gprs_bssgp: log source and destination RIM routing information Whenever a RIM PDU is received, log to which RIM routing information (address) it is going to and where it is comming from. Change-Id: Ia08d3b162a4f6257cccaa7f0764fa7ea498355ef Related: SYS#5103 --- M src/gb/gprs_bssgp.c M src/gb/gprs_bssgp_util.c 2 files changed, 12 insertions(+), 3 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/src/gb/gprs_bssgp.c b/src/gb/gprs_bssgp.c index 6fdacce..4154c4b 100644 --- a/src/gb/gprs_bssgp.c +++ b/src/gb/gprs_bssgp.c @@ -653,8 +653,8 @@ uint16_t nsei = msgb_nsei(msg); struct bssgp_normal_hdr *bgph = (struct bssgp_normal_hdr *)msgb_bssgph(msg); enum bssgp_prim prim; - - DEBUGP(DLBSSGP, "BSSGP BVCI=%u Rx RIM-PDU:%s\n", bvci, bssgp_pdu_str(bgph->pdu_type)); + char ri_src_str[64]; + char ri_dest_str[64]; /* Specify PRIM type based on the RIM PDU */ switch (bgph->pdu_type) { @@ -677,6 +677,10 @@ nmp.tp = tp; if (bssgp_parse_rim_pdu(&nmp.u.rim_pdu, msg) < 0) return bssgp_tx_status(BSSGP_CAUSE_MISSING_MAND_IE, NULL, msg); + DEBUGP(DLBSSGP, "BSSGP BVCI=%u Rx RIM-PDU:%s, src=%s, dest=%s\n", + bvci, bssgp_pdu_str(bgph->pdu_type), + bssgp_rim_ri_name_buf(ri_src_str, sizeof(ri_src_str), &nmp.u.rim_pdu.routing_info_src), + bssgp_rim_ri_name_buf(ri_dest_str, sizeof(ri_dest_str), &nmp.u.rim_pdu.routing_info_dest)); osmo_prim_init(&nmp.oph, SAP_BSSGP_RIM, prim, PRIM_OP_INDICATION, msg); bssgp_prim_cb(&nmp.oph, NULL); diff --git a/src/gb/gprs_bssgp_util.c b/src/gb/gprs_bssgp_util.c index d93c9df..e00aed9 100644 --- a/src/gb/gprs_bssgp_util.c +++ b/src/gb/gprs_bssgp_util.c @@ -594,6 +594,8 @@ { struct msgb *msg; struct bssgp_normal_hdr *bgph; + char ri_src_str[64]; + char ri_dest_str[64]; /* Encode RIM PDU into mesage buffer */ msg = bssgp_encode_rim_pdu(pdu); @@ -607,7 +609,10 @@ msgb_bvci(msg) = 0; /* Signalling */ bgph = (struct bssgp_normal_hdr *)msgb_bssgph(msg); - DEBUGP(DLBSSGP, "BSSGP BVCI=0 Tx RIM-PDU:%s\n", bssgp_pdu_str(bgph->pdu_type)); + DEBUGP(DLBSSGP, "BSSGP BVCI=0 Tx RIM-PDU:%s, src=%s, dest=%s\n", + bssgp_pdu_str(bgph->pdu_type), + bssgp_rim_ri_name_buf(ri_src_str, sizeof(ri_src_str), &pdu->routing_info_src), + bssgp_rim_ri_name_buf(ri_dest_str, sizeof(ri_dest_str), &pdu->routing_info_dest)); return bssgp_ns_send(bssgp_ns_send_data, msg); } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22440 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia08d3b162a4f6257cccaa7f0764fa7ea498355ef Gerrit-Change-Number: 22440 Gerrit-PatchSet: 4 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 12:38:58 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 27 Jan 2021 12:38:58 +0000 Subject: Change in osmo-pcu[master]: Introduce NACC support In-Reply-To: References: Message-ID: Hello Jenkins Builder, fixeria, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-pcu/+/22385 to look at the new patch set (#10). Change subject: Introduce NACC support ...................................................................... Introduce NACC support A new nacc_fsm is introduced per MS object, with its partner priv structure struct nacc_fsm_ctx, which exists and is available in the MS object only during the duration of the NACC procedure. The NACC context is created on an MS whenever a Pkt Cell Change Notification is received on Uplink RLCMAC, which asks for neighbor information of a given ARFCN+BSIC. First, the target ARFCN+BSIC needs to be translated into a CGI-PS (RAC+CI) address. That's done by asking the BSC through the Neighbour Resolution Service available in osmo-bsc using the CTRL interface. Once the CGI-PS of the target cell is known, PCU starts a RIM RAN-INFO request against the SGSN (which will route the request as needed), and wait for a response containing the SI bits from the target cell. After the SI are received, the scheduler is instructed to eventually poll a TBF for the MS originating the CCN, so that we can send the SI encapsulated into multiple Packet Neighbor Cell Data messages on the downlink. One all the SI bits are sent, the scheduler is instructed to send a Packet Cell Change Continue message. Once the message above has been sent, the FSM autodestroys itself. Caches are also introduced in this patch which allows for re-using recently known translations ARFCN+BSIC -> CGI-PS and CGI-PS -> SI_INFO respectively. Change-Id: Id35f40d05f3e081f32fddbf1fa34cb338db452ca --- M configure.ac M src/Makefile.am M src/bts.cpp M src/bts.h M src/encoding.cpp M src/encoding.h M src/gprs_bssgp_rim.c M src/gprs_debug.cpp M src/gprs_debug.h M src/gprs_ms.c M src/gprs_ms.h M src/gprs_pcu.c M src/gprs_pcu.h M src/gprs_rlcmac_sched.cpp A src/nacc_fsm.c A src/nacc_fsm.h A src/neigh_cache.c A src/neigh_cache.h M src/pcu_vty.c M src/pdch.cpp M src/pdch.h M src/tbf.cpp M src/tbf.h M tests/Makefile.am 24 files changed, 1,372 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/85/22385/10 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22385 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Id35f40d05f3e081f32fddbf1fa34cb338db452ca Gerrit-Change-Number: 22385 Gerrit-PatchSet: 10 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-CC: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 12:39:00 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 27 Jan 2021 12:39:00 +0000 Subject: Change in osmo-pcu[master]: tbf: Make tbf_ms() param const References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22460 ) Change subject: tbf: Make tbf_ms() param const ...................................................................... tbf: Make tbf_ms() param const Change-Id: I041c564b15d17d05ce97ea0085fcd9192a346578 --- M src/tbf.cpp M src/tbf.h 2 files changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/60/22460/1 diff --git a/src/tbf.cpp b/src/tbf.cpp index d2d55f2..0fec476 100644 --- a/src/tbf.cpp +++ b/src/tbf.cpp @@ -1165,7 +1165,7 @@ return &tbf->m_bts_list.list; } -struct GprsMs *tbf_ms(struct gprs_rlcmac_tbf *tbf) +struct GprsMs *tbf_ms(const struct gprs_rlcmac_tbf *tbf) { return tbf->ms(); } diff --git a/src/tbf.h b/src/tbf.h index d616076..983d38c 100644 --- a/src/tbf.h +++ b/src/tbf.h @@ -196,7 +196,7 @@ void tbf_set_ms(struct gprs_rlcmac_tbf *tbf, struct GprsMs *ms); struct llist_head *tbf_ms_list(struct gprs_rlcmac_tbf *tbf); struct llist_head *tbf_bts_list(struct gprs_rlcmac_tbf *tbf); -struct GprsMs *tbf_ms(struct gprs_rlcmac_tbf *tbf); +struct GprsMs *tbf_ms(const struct gprs_rlcmac_tbf *tbf); bool tbf_timers_pending(struct gprs_rlcmac_tbf *tbf, enum tbf_timers t); void tbf_free(struct gprs_rlcmac_tbf *tbf); struct gprs_llc *tbf_llc(struct gprs_rlcmac_tbf *tbf); -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22460 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I041c564b15d17d05ce97ea0085fcd9192a346578 Gerrit-Change-Number: 22460 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 12:50:46 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Wed, 27 Jan 2021 12:50:46 +0000 Subject: Change in osmo-trx[master]: Transceiver: use proper factor for amplitude scaling In-Reply-To: References: Message-ID: Hoernchen has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/22456 ) Change subject: Transceiver: use proper factor for amplitude scaling ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/22456 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I98bc00bd25df4913d45e55eb008d715aca76fc7c Gerrit-Change-Number: 22456 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 27 Jan 2021 12:50:46 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 13:22:24 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 27 Jan 2021 13:22:24 +0000 Subject: Change in osmo-trx[master]: Transceiver: use proper factor for amplitude scaling In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/22456 ) Change subject: Transceiver: use proper factor for amplitude scaling ...................................................................... Transceiver: use proper factor for amplitude scaling In Transceiver::addRadioVector() we scale the I/Q samples by scaling the output voltage of the DAC. A relative factor/divisor/ration in the voltage domain cannot be used 1:1 in the power domain. There exist two similar formulas: a) X_dB = 10 * log10(X_lin / X_ref) b) Y_db = 20 * log10(Y_lin / Y_ref) both of them are correct, and according to [1]: a) If you convert a quantity X that relates to power or energy, => the factor is 10. b) If you convert a quantity Y that relates to amplitude, => the factor is 20. Therefore we should be using 20 instead of 10. This change makes osmo-trx apply per-lchan attenuation values correctly. Otherwise it would double the values indicated in TRXD messages. [1] https://dspillustrations.com/pages/posts/misc/decibel-conversion-factor-10-or-factor-20.html Change-Id: I98bc00bd25df4913d45e55eb008d715aca76fc7c Related: SYS#4918 --- M Transceiver52M/Transceiver.cpp 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, but someone else must approve Hoernchen: Looks good to me, approved diff --git a/Transceiver52M/Transceiver.cpp b/Transceiver52M/Transceiver.cpp index 3188c70..6de266c 100644 --- a/Transceiver52M/Transceiver.cpp +++ b/Transceiver52M/Transceiver.cpp @@ -396,7 +396,7 @@ else burst = modulateBurst(bits, 8 + (wTime.TN() % 4 == 0), cfg->tx_sps); - scaleVector(*burst, txFullScale * pow(10, (double) -RSSI / 10)); + scaleVector(*burst, txFullScale * pow(10, (double) -RSSI / 20)); radio_burst = new radioVector(wTime, burst); -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/22456 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I98bc00bd25df4913d45e55eb008d715aca76fc7c Gerrit-Change-Number: 22456 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 13:55:21 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 27 Jan 2021 13:55:21 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: agregate RIM related code in gprs_bssgp_rim.c In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22442 ) Change subject: gprs_bssgp: agregate RIM related code in gprs_bssgp_rim.c ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22442 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Icda279452962b06e552cb1361d2a27b7dc8a6b04 Gerrit-Change-Number: 22442 Gerrit-PatchSet: 4 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 27 Jan 2021 13:55:21 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 14:57:44 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 27 Jan 2021 14:57:44 +0000 Subject: Change in osmo-ttcn3-hacks[master]: PCU_Tests: add testcase TC_rim_ran_info_req_single_rep and _no_si In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, fixeria, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369 to look at the new patch set (#3). Change subject: PCU_Tests: add testcase TC_rim_ran_info_req_single_rep and _no_si ...................................................................... PCU_Tests: add testcase TC_rim_ran_info_req_single_rep and _no_si Perform a full RAN information request (single report) against the PCU and check the results. Also test what happens when the request is issued at a time where osmo-bts has no system information available. Depends: osmo-pcu Id72118120c14984d2fb1b918b41fac4868150d41 Depends: osmo-bts I1726c9e29cc59c499dfabbdaf63c0f1a09984764 Related: SYS#5103 Change-Id: I9054ab0e969c0fbfdc671c92d44cc61360959adc --- M bts/BTS_Tests.default M library/PCUIF_Types.ttcn M pcu/PCU_Tests.default M pcu/PCU_Tests.ttcn M pcu/PCU_Tests_SNS.cfg M pcu/PCU_Tests_SNSv6.cfg 6 files changed, 176 insertions(+), 11 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/69/22369/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I9054ab0e969c0fbfdc671c92d44cc61360959adc Gerrit-Change-Number: 22369 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 14:57:44 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 27 Jan 2021 14:57:44 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BTS_Tests: check if si1, si3, si13 are updated via PCUIF In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22431 to look at the new patch set (#2). Change subject: BTS_Tests: check if si1,si3,si13 are updated via PCUIF ...................................................................... BTS_Tests: check if si1,si3,si13 are updated via PCUIF The BSC can update the system information at any time. In the case of SI1, SI3, SI14 it is important that the changes are propagated to the PCU as well. Related: SYS#5103 Change-Id: I6ec543b3cb33d82c442083b52c991add71b34644 --- M bts/BTS_Tests.ttcn M library/General_Types.ttcn 2 files changed, 58 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/31/22431/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22431 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I6ec543b3cb33d82c442083b52c991add71b34644 Gerrit-Change-Number: 22431 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 14:57:46 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 27 Jan 2021 14:57:46 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Osmocom_Gb_types: add minimum requred tr_ templates for RAN INF References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22461 ) Change subject: Osmocom_Gb_types: add minimum requred tr_ templates for RAN INF ...................................................................... Osmocom_Gb_types: add minimum requred tr_ templates for RAN INF When testing the serving BSS part of the RIM application in osmo-pcu, we will need receiving templates that allow us to verify the response (RAN INFORMATION) rim container. Change-Id: I964d7504f3c4aeaa4ce537316b3140e8b893003d Related: SYS#5103 --- M library/Osmocom_Gb_Types.ttcn 1 file changed, 111 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/61/22461/1 diff --git a/library/Osmocom_Gb_Types.ttcn b/library/Osmocom_Gb_Types.ttcn index 2bbc508..97412b8 100644 --- a/library/Osmocom_Gb_Types.ttcn +++ b/library/Osmocom_Gb_Types.ttcn @@ -2511,7 +2511,14 @@ }, rIMApplicationIdentity := app_id } - + template RIM_Application_Identity tr_RIM_Application_Identity(template OCT1 app_id := ?) := { + iEI := '4B'O, + ext := '1'B, + lengthIndicator := { + length1 := 1 + }, + rIMApplicationIdentity := app_id + } /* 3GPP TS 48.018 11.3.62 */ template (value) RIM_Sequence_Number ts_RIM_Sequence_Number(integer seq) := { @@ -2522,6 +2529,20 @@ }, rIMSequenceNumber := int2oct(seq, 4) } + function tr_RIM_Sequence_Number(template integer seq := ?) return template RIM_Sequence_Number { + var template RIM_Sequence_Number ret; + ret.iEI := '4C'O; + ret.ext := '1'B; + ret.lengthIndicator := { length1 := 4 }; + if (istemplatekind(seq, "*")) { + ret.rIMSequenceNumber := *; + } else if (istemplatekind(seq, "?")) { + ret.rIMSequenceNumber := ?; + } else { + ret.rIMSequenceNumber := int2oct(valueof(seq), 4); + } + return ret; + } /* 3GPP TS 48.018 11.3.62a.1 */ template (value) RAN_Information_Request_RIM_Container @@ -2585,10 +2606,34 @@ applContainer_or_ApplErrContainer := app_cont_or_app_err, sON_Transfer_Application_Identity := son_app_id } + template RAN_Information_RIM_Container + tr_RAN_Information_RIM_Container(template RIM_Application_Identity app_id := ?, + template RIM_Sequence_Number seq := ?, + template RIM_PDU_Indications ind := ?, + template RIM_Protocol_Version_Number ver := omit, + template ApplContainer_or_ApplErrContainer app_cont_or_app_err := omit, + template SON_Transfer_Application_Identity_TLV son_app_id := omit) := { + + iEI := '58'O, + ext := '1'B, + lengthIndicator := { + length1 := ? + }, + rIM_Application_Identity := app_id, + rIM_Sequence_Number := seq, + rIM_PDU_Indications := ind, + rIM_Protocol_Version_Number := ver, + applContainer_or_ApplErrContainer := app_cont_or_app_err, + sON_Transfer_Application_Identity := son_app_id + } template (value) ApplContainer_or_ApplErrContainer tsu_ApplContainer_or_ApplErrContainer_NACC(template (value) ApplContainer_or_ApplErrContainer_NACC cont) := { nacc := cont } + template ApplContainer_or_ApplErrContainer + tru_ApplContainer_or_ApplErrContainer_NACC(template ApplContainer_or_ApplErrContainer_NACC cont := ?) := { + nacc := cont + } template (value) ApplContainer_or_ApplErrContainer tsu_ApplContainer_or_ApplErrContainer_SI3(template (value) ApplContainer_or_ApplErrContainer_SI3 cont) := { si3 := cont @@ -2601,6 +2646,10 @@ tsu_ApplContainer_NACC(template (value) BssgpCellId cid, boolean psi_type, integer si_psi_num, octetstring si_psi) := { application_Container := ts_RAN_Information_Application_Container_NACC(cid, psi_type, si_psi_num, si_psi) } + template ApplContainer_or_ApplErrContainer_NACC + tru_ApplContainer_NACC(template BssgpCellId cid := ?, template boolean psi_type := ?, template integer si_psi_num := ?, template octetstring si_psi := ?) := { + application_Container := tr_RAN_Information_Application_Container_NACC(cid, psi_type, si_psi_num, si_psi) + } template (value) ApplContainer_or_ApplErrContainer_NACC tsu_ApplErrContainer_NACC(template (value) BssgpCellId cid, integer cause, @@ -2762,6 +2811,31 @@ number_of_SI_PSI := int2bit(si_psi_num, 7), sI_PSI := si_psi } + function tr_RAN_Information_Application_Container_NACC(template BssgpCellId cid := ?, template boolean psi_type := ?, + template integer si_psi_num := ?, template octetstring si_psi := ?) + return template RAN_Information_Application_Container_NACC { + var template RAN_Information_Application_Container_NACC ret; + ret.iEI := '4E'O; + ret.ext := '1'B; + ret.lengthIndicator := { length1 := ? }; + ret.reporting_Cell_Identifier := t_Cell_Identifier_V(cid); + if (istemplatekind(psi_type, "*")) { + ret.typeBit := *; + } else if (istemplatekind(psi_type, "?")) { + ret.typeBit := ?; + } else { + ret.typeBit := bool2bit(valueof(psi_type)); + } + if (istemplatekind(si_psi_num, "*")) { + ret.number_of_SI_PSI := *; + } else if (istemplatekind(si_psi_num, "?")) { + ret.number_of_SI_PSI := ?; + } else { + ret.number_of_SI_PSI := int2bit(valueof(si_psi_num), 7); + } + ret.sI_PSI := si_psi; + return ret; + } /* 3GPP TS 48.018 11.3.63.2.2 */ template (value) RAN_Information_Application_Container_SI3 @@ -2999,6 +3073,28 @@ pDU_Type_Extension := type_ext, reserved := '0000'B } + function tr_RIM_PDU_Indications(template boolean ack := ?, template BIT3 type_ext := ?) return template RIM_PDU_Indications { + var template RIM_PDU_Indications ret; + ret.iEI := '4F'O; + ret.ext := '1'B; + ret.lengthIndicator := { length1 := 1 }; + if (istemplatekind(ack, "*")) { + ret.ack := *; + } else if (istemplatekind(ack, "?")) { + ret.ack := ?; + } else { + ret.ack := bool2bit(valueof(ack)); + } + if (istemplatekind(type_ext, "*")) { + ret.pDU_Type_Extension := *; + } else if (istemplatekind(type_ext, "?")) { + ret.pDU_Type_Extension := ?; + } else { + ret.pDU_Type_Extension := valueof(type_ext); + } + ret.reserved := '0000'B; + return ret; + } /* 3GPP TS 48.018 11.3.67 */ template (value) RIM_Protocol_Version_Number ts_RIM_Protocol_Version_Number(integer ver) := { @@ -3009,6 +3105,20 @@ }, rIMProtocolVersionNumber := int2oct(ver, 1) } + function tr_RIM_Protocol_Version_Number(template integer ver := ?) return template RIM_Protocol_Version_Number { + var template RIM_Protocol_Version_Number ret; + ret.iEI := '55'O; + ret.ext := '1'B; + ret.lengthIndicator := { length1 := 1 }; + if (istemplatekind(ver, "*")) { + ret.rIMProtocolVersionNumber := *; + } else if (istemplatekind(ver, "?")) { + ret.rIMProtocolVersionNumber := ?; + } else { + ret.rIMProtocolVersionNumber := int2oct(valueof(ver), 1); + } + return ret; + } /* 3GPP TS 48.018 11.3.70 */ const HEX1 RIM_ADDR_GERAN_CELL_ID := '0'H; -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22461 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I964d7504f3c4aeaa4ce537316b3140e8b893003d Gerrit-Change-Number: 22461 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 14:58:10 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 27 Jan 2021 14:58:10 +0000 Subject: Change in osmo-ttcn3-hacks[master]: PCU_Tests: add testcase TC_rim_ran_info_req_single_rep and _no_si In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369 ) Change subject: PCU_Tests: add testcase TC_rim_ran_info_req_single_rep and _no_si ...................................................................... Patch Set 3: (4 comments) > Patch Set 1: Code-Review-2 > > We cannot just bump the protocol version here, as we also need to test the 'latest' osmo-pcu. See my comments to the related changes for osmo-pcu. https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369/2/library/Osmocom_Gb_Types.ttcn File library/Osmocom_Gb_Types.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369/2/library/Osmocom_Gb_Types.ttcn at 2814 PS2, Line 2814: function tr_RAN_Information_Application_Container_NACC(template BssgpCellId cid := ?, template boolean psi_type := ?, > You probably want to push all these templates and functions as a separate patch Done https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369/2/library/PCUIF_Types.ttcn File library/PCUIF_Types.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369/2/library/PCUIF_Types.ttcn at 229 PS2, Line 229: variant (trx) "CROSSTAG(v09, version = 10; v10, version = 11)" > these lines changed here look wrong to me. I think I understand this now. This selects which specific type versions of trx and remote address we use. When version = 9, then pick trx type v09. In contrast to the comment above, the manual says that we can have N key = constant pairs and this means we can support N PCUIF versions, but all must be listed here. I have now added a version 11 that uses trx and remote_addr type v10. Also see jenkins.sh docker-playground/ttcn3-pcu-test, there we set mp_pcuif_version := 9 if we are on latest. https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369/2/pcu/PCU_Tests.ttcn File pcu/PCU_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369/2/pcu/PCU_Tests.ttcn at 3659 PS2, Line 3659: f_init_raw(testcasename()); > you can pass info_ind as a second parameter here, no need to do the BTS.send() below. Done https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369/2/pcu/PCU_Tests.ttcn at 3717 PS2, Line 3717: f_sleep(0.2); /* i.e. give the IUT some time to process everything */ > which is exactly the problem you are having here? [?] I copied this from other tests that use PCUIF, but it seems not to be necessary in my case because when I remove it the tests still work fine. PCU_Tests_NS seems to lack stuff I need, I will keep the testcases here. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I9054ab0e969c0fbfdc671c92d44cc61360959adc Gerrit-Change-Number: 22369 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Wed, 27 Jan 2021 14:58:10 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 14:58:30 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 27 Jan 2021 14:58:30 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BTS_Tests: check if si1, si3, si13 are updated via PCUIF In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22431 ) Change subject: BTS_Tests: check if si1,si3,si13 are updated via PCUIF ...................................................................... Patch Set 2: (2 comments) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22431/1/bts/BTS_Tests.ttcn File bts/BTS_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22431/1/bts/BTS_Tests.ttcn at 7203 PS1, Line 7203: /* Check that if the system informatio (si1, si3, si13, required for RIM) is > information (... [?] Done https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22431/1/bts/BTS_Tests.ttcn at 7204 PS1, Line 7204: * correctly propergated to the PCU after updating it via RSL */ > propergated! Properly gated! I like the construction. [?] Done -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22431 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I6ec543b3cb33d82c442083b52c991add71b34644 Gerrit-Change-Number: 22431 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 27 Jan 2021 14:58:30 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 14:59:42 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 27 Jan 2021 14:59:42 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Introduce test TC_nacc_outbound_success In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22387 to look at the new patch set (#4). Change subject: pcu: Introduce test TC_nacc_outbound_success ...................................................................... pcu: Introduce test TC_nacc_outbound_success Related: SYS#4909 Change-Id: I951db4af731e5a7c207f0f407dd78d166e2d3d26 --- M library/GSM_Types.ttcn M pcu/PCU_Tests.ttcn M pcu/gen_links.sh M pcu/osmo-pcu.cfg M pcu/regen_makefile.sh 5 files changed, 205 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/87/22387/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22387 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I951db4af731e5a7c207f0f407dd78d166e2d3d26 Gerrit-Change-Number: 22387 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 14:59:42 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 27 Jan 2021 14:59:42 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Introduce test TC_nacc_outbound_rac_ci_resolve_timeout In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22452 to look at the new patch set (#2). Change subject: pcu: Introduce test TC_nacc_outbound_rac_ci_resolve_timeout ...................................................................... pcu: Introduce test TC_nacc_outbound_rac_ci_resolve_timeout Related: SYS#4909 Change-Id: Ia09fbfe9aba34a51e0715d1c307de280e3ae0249 --- M pcu/PCU_Tests.ttcn 1 file changed, 63 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/52/22452/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22452 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ia09fbfe9aba34a51e0715d1c307de280e3ae0249 Gerrit-Change-Number: 22452 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 14:59:42 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 27 Jan 2021 14:59:42 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Introduce test TC_nacc_outbound_si_resolve_timeout In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22453 to look at the new patch set (#2). Change subject: pcu: Introduce test TC_nacc_outbound_si_resolve_timeout ...................................................................... pcu: Introduce test TC_nacc_outbound_si_resolve_timeout Related: SYS#4909 Change-Id: If0032b940685efaaa8f65357c56c3383fab3e283 --- M pcu/PCU_Tests.ttcn 1 file changed, 77 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/53/22453/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22453 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If0032b940685efaaa8f65357c56c3383fab3e283 Gerrit-Change-Number: 22453 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 14:59:42 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 27 Jan 2021 14:59:42 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Introduce test TC_nacc_outbound_rac_ci_resolve_fail_parse_response In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22454 to look at the new patch set (#2). Change subject: pcu: Introduce test TC_nacc_outbound_rac_ci_resolve_fail_parse_response ...................................................................... pcu: Introduce test TC_nacc_outbound_rac_ci_resolve_fail_parse_response Related: SYS#4909 Change-Id: If7efddb1ae2ccb580fe85c8df45c9ccdb818c6f3 --- M pcu/PCU_Tests.ttcn 1 file changed, 62 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/54/22454/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22454 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If7efddb1ae2ccb580fe85c8df45c9ccdb818c6f3 Gerrit-Change-Number: 22454 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 15:06:17 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 27 Jan 2021 15:06:17 +0000 Subject: Change in osmo-bts[master]: pcu_sock: send SI1, SI3 and SI3 along with PCUIF info indication In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/22367 ) Change subject: pcu_sock: send SI1, SI3 and SI3 along with PCUIF info indication ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/22367/3/TODO-RELEASE File TODO-RELEASE: https://gerrit.osmocom.org/c/osmo-bts/+/22367/3/TODO-RELEASE at 2 PS3, Line 2: * increment PCUIF version number > That's not something we really need to do when we do a release right? Incrementing the version number makes the pcu incompatible with the current bts and vice versa if both sides do not increment at the time. Wenn we release we must keep an eye on this. However, I do not know if this is off-topic in TODO_RELEASE, i don't know. Do you think I should remove this point from TODO_RELEASE? -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22367 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ie8c3467b6cf8b8bfdeee9a281412d814cbc379b8 Gerrit-Change-Number: 22367 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: fixeria Gerrit-Comment-Date: Wed, 27 Jan 2021 15:06:17 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 15:07:48 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 27 Jan 2021 15:07:48 +0000 Subject: Change in osmo-pcu[master]: gprs_bssgp_rim: add serving BSS NACC application In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22368 ) Change subject: gprs_bssgp_rim: add serving BSS NACC application ...................................................................... Patch Set 3: (2 comments) https://gerrit.osmocom.org/c/osmo-pcu/+/22368/2/src/gprs_bssgp_rim.c File src/gprs_bssgp_rim.c: https://gerrit.osmocom.org/c/osmo-pcu/+/22368/2/src/gprs_bssgp_rim.c at 208 PS2, Line 208: BSSGP RIM (NSEI=%u) > we just had this in the review of another patch; please introduce and use something like #define LOG [?] Done https://gerrit.osmocom.org/c/osmo-pcu/+/22368/2/src/pcu_l1_if.cpp File src/pcu_l1_if.cpp: https://gerrit.osmocom.org/c/osmo-pcu/+/22368/2/src/pcu_l1_if.cpp at 660 PS2, Line 660: LOGP(DL1IF, LOGL_DEBUG, " si1=%s\n", osmo_hexdump_nospc(info_ind->si1, GSM_MACBLOCK_LEN)); > better use sizeof(info_ind->si1) everywhere, we don't really car about the real size here. Done -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22368 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Id72118120c14984d2fb1b918b41fac4868150d41 Gerrit-Change-Number: 22368 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 27 Jan 2021 15:07:48 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: laforge Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 15:09:20 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 27 Jan 2021 15:09:20 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BTS_Tests: check if si1, si3, si13 are updated via PCUIF In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22431 ) Change subject: BTS_Tests: check if si1,si3,si13 are updated via PCUIF ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22431/2/bts/BTS_Tests.ttcn File bts/BTS_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22431/2/bts/BTS_Tests.ttcn at 7203 PS2, Line 7203: /* Check that if the system information (si1, si3, si13, required for RIM) is the "if" here should be removed. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22431 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I6ec543b3cb33d82c442083b52c991add71b34644 Gerrit-Change-Number: 22431 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 27 Jan 2021 15:09:20 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 15:09:39 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 27 Jan 2021 15:09:39 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BTS_Tests: check if si1, si3, si13 are updated via PCUIF In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22431 ) Change subject: BTS_Tests: check if si1,si3,si13 are updated via PCUIF ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22431 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I6ec543b3cb33d82c442083b52c991add71b34644 Gerrit-Change-Number: 22431 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 27 Jan 2021 15:09:39 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 15:10:48 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 27 Jan 2021 15:10:48 +0000 Subject: Change in osmo-bts[master]: pcu_sock: send SI1, SI3 and SI3 along with PCUIF info indication In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/22367 ) Change subject: pcu_sock: send SI1, SI3 and SI3 along with PCUIF info indication ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/22367/3/TODO-RELEASE File TODO-RELEASE: https://gerrit.osmocom.org/c/osmo-bts/+/22367/3/TODO-RELEASE at 2 PS3, Line 2: * increment PCUIF version number > Incrementing the version number makes the pcu incompatible with the current bts and vice versa if bo [?] I think it's confusing since it's not simething I really need to care about when releasing (since the version is already bumped in this same commit). -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22367 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ie8c3467b6cf8b8bfdeee9a281412d814cbc379b8 Gerrit-Change-Number: 22367 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: fixeria Gerrit-Comment-Date: Wed, 27 Jan 2021 15:10:48 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Comment-In-Reply-To: dexter Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 15:12:37 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 27 Jan 2021 15:12:37 +0000 Subject: Change in osmo-pcu[master]: gprs_bssgp_rim: add serving BSS NACC application In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22368 ) Change subject: gprs_bssgp_rim: add serving BSS NACC application ...................................................................... Patch Set 4: (1 comment) https://gerrit.osmocom.org/c/osmo-pcu/+/22368/4/TODO-RELEASE File TODO-RELEASE: https://gerrit.osmocom.org/c/osmo-pcu/+/22368/4/TODO-RELEASE at 12 PS4, Line 12: osmo-pcu increment PCUIF version number again I think this is confusing here from release point of view since I need to do nothing regarding this line upon creating new release. -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22368 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Id72118120c14984d2fb1b918b41fac4868150d41 Gerrit-Change-Number: 22368 Gerrit-PatchSet: 4 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 27 Jan 2021 15:12:37 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 15:23:46 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 27 Jan 2021 15:23:46 +0000 Subject: Change in osmo-ttcn3-hacks[master]: PCU_Tests: add testcase TC_rim_ran_info_req_single_rep and _no_si In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369 ) Change subject: PCU_Tests: add testcase TC_rim_ran_info_req_single_rep and _no_si ...................................................................... Patch Set 3: I still don't like this approach, sorry. And still don't understand why you prefer it. Just imagine that we would need to send another type of System Information, e.g. SI4. This would require you to bump the protocol version again. If it's possible to avoid bumping the version, I would definitely avoid doing it. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I9054ab0e969c0fbfdc671c92d44cc61360959adc Gerrit-Change-Number: 22369 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Wed, 27 Jan 2021 15:23:46 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 15:35:15 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 27 Jan 2021 15:35:15 +0000 Subject: Change in osmo-ttcn3-hacks[master]: PCU_Tests: add testcase TC_rim_ran_info_req_single_rep and _no_si In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369 ) Change subject: PCU_Tests: add testcase TC_rim_ran_info_req_single_rep and _no_si ...................................................................... Patch Set 3: (3 comments) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369/2/library/PCUIF_Types.ttcn File library/PCUIF_Types.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369/2/library/PCUIF_Types.ttcn at 229 PS2, Line 229: variant (trx) "CROSSTAG(v09, version = 10; v10, version = 11)" > I think I understand this now. [?] This is basically the backwards compatibility logic. And I agree with Pau, the changes look wrong. Since PCUIFv10 we should use record 'v10' in the union, before PCUIFv10 it's 'v09'. Why do you make PCUIFv10 use record 'v09'? This is wrong. Did you try to run other test cases? https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369/2/library/PCUIF_Types.ttcn at 919 PS2, Line 919: ? '?' implies that the field is always present (not omit). This would break PCUIFv10. https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369/2/pcu/PCU_Tests.ttcn File pcu/PCU_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369/2/pcu/PCU_Tests.ttcn at 106 PS2, Line 106: si1 := '5506198fb100000000000000000000000000007900002b'O, We do have records for SI1 and SI3 in 'library/GSM_SystemInformation.ttcn', adding a new one for SI4 should be trivial, so why do we have magic octetstrings here? Check SystemInformationConfig_default in BSC_Tests for example. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I9054ab0e969c0fbfdc671c92d44cc61360959adc Gerrit-Change-Number: 22369 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Wed, 27 Jan 2021 15:35:15 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Comment-In-Reply-To: dexter Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 15:39:15 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 27 Jan 2021 15:39:15 +0000 Subject: Change in osmo-ttcn3-hacks[master]: PCU_Tests: add testcase TC_rim_ran_info_req_single_rep and _no_si In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369 ) Change subject: PCU_Tests: add testcase TC_rim_ran_info_req_single_rep and _no_si ...................................................................... Patch Set 3: > Patch Set 3: > > I still don't like this approach, sorry. And still don't understand why you prefer it. Just imagine that we would need to send another type of System Information, e.g. SI4. This would require you to bump the protocol version again. If it's possible to avoid bumping the version, I would definitely avoid doing it. You can easily support new and old versions (be backward compatible) if you add the fields at the end of the struct, I see no problem there. Older implementations won't see those fields and won't access them. The only benefit I see in adding a new message type to send SI information is that if they change more frequently, then we don't need to send the entire info_ind to the pcu and make it parse all of it again. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I9054ab0e969c0fbfdc671c92d44cc61360959adc Gerrit-Change-Number: 22369 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Wed, 27 Jan 2021 15:39:15 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 15:55:26 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 27 Jan 2021 15:55:26 +0000 Subject: Change in libosmocore[master]: ctrl_connection: Initialize write_queue.bfd.fd to -1 during allocation References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22462 ) Change subject: ctrl_connection: Initialize write_queue.bfd.fd to -1 during allocation ...................................................................... ctrl_connection: Initialize write_queue.bfd.fd to -1 during allocation Otherwise fd is set to 0 by default, let's avoid accidentally closing it if something goes wrong. Change-Id: I98f744d2880fbb883719cdf1d3eb31f2b22a13b6 --- M src/ctrl/control_if.c 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/62/22462/1 diff --git a/src/ctrl/control_if.c b/src/ctrl/control_if.c index 9e3e3a9..5eb81c7 100644 --- a/src/ctrl/control_if.c +++ b/src/ctrl/control_if.c @@ -514,6 +514,7 @@ INIT_LLIST_HEAD(&ccon->def_cmds); ccon->write_queue.bfd.data = data; + ccon->write_queue.bfd.fd = -1; ccon->write_queue.write_cb = control_write_cb; ccon->write_queue.read_cb = handle_control_read; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22462 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I98f744d2880fbb883719cdf1d3eb31f2b22a13b6 Gerrit-Change-Number: 22462 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 17:06:33 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 27 Jan 2021 17:06:33 +0000 Subject: Change in gapk[master]: configure.ac: set -std=gnu11 References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/gapk/+/22463 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... configure.ac: set -std=gnu11 Change-Id: I7d4c4e1f3663e448c5d044ccb4bbd3e813898f23 --- M configure.ac 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/gapk refs/changes/63/22463/1 diff --git a/configure.ac b/configure.ac index 44a7cff..b16acc8 100644 --- a/configure.ac +++ b/configure.ac @@ -6,6 +6,8 @@ AM_INIT_AUTOMAKE([dist-bzip2 subdir-objects]) LT_INIT([disable-static]) +CFLAGS="$CFLAGS -std=gnu11" + # kernel style compile messages m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) -- To view, visit https://gerrit.osmocom.org/c/gapk/+/22463 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: gapk Gerrit-Branch: master Gerrit-Change-Id: I7d4c4e1f3663e448c5d044ccb4bbd3e813898f23 Gerrit-Change-Number: 22463 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 17:06:36 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 27 Jan 2021 17:06:36 +0000 Subject: Change in libgtpnl[master]: configure.ac: set -std=gnu11 References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/libgtpnl/+/22464 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... configure.ac: set -std=gnu11 Change-Id: Iea60698b4cb0f9c04a6f75cc4ca2ea5fbb84bae8 --- M configure.ac 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libgtpnl refs/changes/64/22464/1 diff --git a/configure.ac b/configure.ac index 6962261..eb35f57 100644 --- a/configure.ac +++ b/configure.ac @@ -13,6 +13,8 @@ RELMAKE='-include osmo-release.mk' AC_SUBST([RELMAKE]) +CFLAGS="$CFLAGS -std=gnu11" + dnl kernel style compile messages m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) -- To view, visit https://gerrit.osmocom.org/c/libgtpnl/+/22464 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libgtpnl Gerrit-Branch: master Gerrit-Change-Id: Iea60698b4cb0f9c04a6f75cc4ca2ea5fbb84bae8 Gerrit-Change-Number: 22464 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 17:07:43 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 27 Jan 2021 17:07:43 +0000 Subject: Change in libosmo-abis[master]: configure.ac: set -std=gnu11 References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmo-abis/+/22465 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... configure.ac: set -std=gnu11 Change-Id: Ib920af17b9a0b5d6ea5f4db33faab3a2dcf8fbbe --- M configure.ac 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-abis refs/changes/65/22465/1 diff --git a/configure.ac b/configure.ac index a7dde2f..6a3bc4b 100644 --- a/configure.ac +++ b/configure.ac @@ -8,6 +8,8 @@ AM_INIT_AUTOMAKE([foreign dist-bzip2 no-dist-gzip 1.6 subdir-objects]) AC_CONFIG_TESTDIR(tests) +CFLAGS="$CFLAGS -std=gnu11" + dnl kernel style compile messages m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) -- To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/22465 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Change-Id: Ib920af17b9a0b5d6ea5f4db33faab3a2dcf8fbbe Gerrit-Change-Number: 22465 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 17:07:44 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 27 Jan 2021 17:07:44 +0000 Subject: Change in libosmo-netif[master]: configure.ac: set -std=gnu11 References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmo-netif/+/22466 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... configure.ac: set -std=gnu11 Change-Id: Ia646e72ce58de331c325b75e94fa1539acd5930b --- M configure.ac 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-netif refs/changes/66/22466/1 diff --git a/configure.ac b/configure.ac index 4c0e0b4..36c2f49 100644 --- a/configure.ac +++ b/configure.ac @@ -8,6 +8,8 @@ AM_INIT_AUTOMAKE([subdir-objects dist-bzip2]) AC_CONFIG_TESTDIR(tests) +CFLAGS="$CFLAGS -std=gnu11" + dnl kernel style compile messages m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) -- To view, visit https://gerrit.osmocom.org/c/libosmo-netif/+/22466 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-Change-Id: Ia646e72ce58de331c325b75e94fa1539acd5930b Gerrit-Change-Number: 22466 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 17:07:44 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 27 Jan 2021 17:07:44 +0000 Subject: Change in libosmo-sccp[master]: configure.ac: set -std=gnu11 References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/22467 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... configure.ac: set -std=gnu11 Change-Id: Iabe929a29a3c7fed2726329215097f7254cf20ca --- M configure.ac 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-sccp refs/changes/67/22467/1 diff --git a/configure.ac b/configure.ac index 725014d..cd79231 100644 --- a/configure.ac +++ b/configure.ac @@ -9,6 +9,8 @@ AM_INIT_AUTOMAKE([dist-bzip2]) AC_CONFIG_TESTDIR(tests) +CFLAGS="$CFLAGS -std=gnu11" + dnl kernel style compile messages m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/22467 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: Iabe929a29a3c7fed2726329215097f7254cf20ca Gerrit-Change-Number: 22467 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 17:07:45 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 27 Jan 2021 17:07:45 +0000 Subject: Change in libosmocore[master]: configure.ac: set -std=gnu11 In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22355 to look at the new patch set (#5). Change subject: configure.ac: set -std=gnu11 ...................................................................... configure.ac: set -std=gnu11 Avoid using different dialects by accident (and resulting compiler errors if compiler assumes a different dialect), like in I72310886bef4db635078b75715c9d98ee45391cc. Related: https://lists.osmocom.org/pipermail/openbsc/2019-September/013030.html Related: https://lists.osmocom.org/pipermail/openbsc/2021-January/013360.html Related: osmo-pcu Ia57ba101627e3cc0babeca82631e207a3e2e0960 Change-Id: Id79b13d3c498acb565f91eba650328fccb5a13ef --- M configure.ac 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/55/22355/5 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22355 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Id79b13d3c498acb565f91eba650328fccb5a13ef Gerrit-Change-Number: 22355 Gerrit-PatchSet: 5 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-CC: lynxis lazus Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 17:07:46 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 27 Jan 2021 17:07:46 +0000 Subject: Change in libtelnet[master]: configure.ac: set -std=gnu11 References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/libtelnet/+/22468 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... configure.ac: set -std=gnu11 Change-Id: Ief41cc4fc2e3d763a4b84f427496a5611f3c90c5 --- M configure.ac 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libtelnet refs/changes/68/22468/1 diff --git a/configure.ac b/configure.ac index 16489f4..6b85c74 100644 --- a/configure.ac +++ b/configure.ac @@ -2,6 +2,8 @@ AM_INIT_AUTOMAKE +CFLAGS="$CFLAGS -std=gnu11" + AC_PROG_CC AC_PROG_LIBTOOL -- To view, visit https://gerrit.osmocom.org/c/libtelnet/+/22468 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libtelnet Gerrit-Branch: master Gerrit-Change-Id: Ief41cc4fc2e3d763a4b84f427496a5611f3c90c5 Gerrit-Change-Number: 22468 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 17:07:46 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 27 Jan 2021 17:07:46 +0000 Subject: Change in libusrp[master]: configure.ac: set -std=gnu11 References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/libusrp/+/22469 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... configure.ac: set -std=gnu11 Change-Id: I9245df7569f0fed936d5e1a1783fc40203cecba1 --- M configure.ac 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libusrp refs/changes/69/22469/1 diff --git a/configure.ac b/configure.ac index 0b38b93..bcc95e6 100644 --- a/configure.ac +++ b/configure.ac @@ -7,6 +7,8 @@ AC_CONFIG_MACRO_DIRS([m4]) +CFLAGS="$CFLAGS -std=gnu11" + dnl include release helper RELMAKE='-include osmo-release.mk' AC_SUBST([RELMAKE]) -- To view, visit https://gerrit.osmocom.org/c/libusrp/+/22469 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libusrp Gerrit-Branch: master Gerrit-Change-Id: I9245df7569f0fed936d5e1a1783fc40203cecba1 Gerrit-Change-Number: 22469 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 17:07:47 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 27 Jan 2021 17:07:47 +0000 Subject: Change in osmo-bsc[master]: configure.ac: set -std=gnu11 References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22470 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... configure.ac: set -std=gnu11 Change-Id: I61ee711de5303691c2f8881b66d4614d11850be2 --- M configure.ac 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/70/22470/1 diff --git a/configure.ac b/configure.ac index f1f17b8..343c031 100644 --- a/configure.ac +++ b/configure.ac @@ -9,6 +9,8 @@ AM_INIT_AUTOMAKE([dist-bzip2]) AC_CONFIG_TESTDIR(tests) +CFLAGS="$CFLAGS -std=gnu11" + dnl kernel style compile messages m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22470 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I61ee711de5303691c2f8881b66d4614d11850be2 Gerrit-Change-Number: 22470 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 17:07:48 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 27 Jan 2021 17:07:48 +0000 Subject: Change in osmo-bts[master]: configure.ac: set -std=gnu11 References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/22471 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... configure.ac: set -std=gnu11 Change-Id: I234394b2c8bec2a3920fd57bee238b99e4e60c22 --- M configure.ac 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/71/22471/1 diff --git a/configure.ac b/configure.ac index 58a7e38..249a81a 100644 --- a/configure.ac +++ b/configure.ac @@ -9,6 +9,8 @@ AM_INIT_AUTOMAKE([dist-bzip2]) AC_CONFIG_TESTDIR(tests) +CFLAGS="$CFLAGS -std=gnu11" + dnl kernel style compile messages m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22471 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I234394b2c8bec2a3920fd57bee238b99e4e60c22 Gerrit-Change-Number: 22471 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 17:07:50 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 27 Jan 2021 17:07:50 +0000 Subject: Change in osmo-cbc[master]: configure.ac: set -std=gnu11 References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22472 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... configure.ac: set -std=gnu11 Change-Id: I8fe45ab98a2a000a428a17d586f4dd4f1ba5f2d6 --- M configure.ac 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-cbc refs/changes/72/22472/1 diff --git a/configure.ac b/configure.ac index 342eb84..2accd12 100644 --- a/configure.ac +++ b/configure.ac @@ -9,6 +9,8 @@ AM_INIT_AUTOMAKE([dist-bzip2]) AC_CONFIG_TESTDIR(tests) +CFLAGS="$CFLAGS -std=gnu11" + dnl kernel style compile messages m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22472 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: I8fe45ab98a2a000a428a17d586f4dd4f1ba5f2d6 Gerrit-Change-Number: 22472 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 17:07:50 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 27 Jan 2021 17:07:50 +0000 Subject: Change in osmo-e1-recorder[master]: configure.ac: set -std=gnu11 References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-e1-recorder/+/22473 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... configure.ac: set -std=gnu11 Change-Id: I19674944cea499d450571a7c6e47ab5676dc4b21 --- M configure.ac 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1-recorder refs/changes/73/22473/1 diff --git a/configure.ac b/configure.ac index dd26f5a..e986809 100644 --- a/configure.ac +++ b/configure.ac @@ -9,6 +9,8 @@ AM_INIT_AUTOMAKE([dist-bzip2]) AC_CONFIG_TESTDIR(tests) +CFLAGS="$CFLAGS -std=gnu11" + dnl kernel style compile messages m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-recorder/+/22473 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1-recorder Gerrit-Branch: master Gerrit-Change-Id: I19674944cea499d450571a7c6e47ab5676dc4b21 Gerrit-Change-Number: 22473 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 17:07:51 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 27 Jan 2021 17:07:51 +0000 Subject: Change in osmo-e1d[master]: configure.ac: set -std=gnu11 References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-e1d/+/22474 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... configure.ac: set -std=gnu11 Change-Id: Ib2356c2158b5aaa27cb4692de0f92d09d0bfca06 --- M configure.ac 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-e1d refs/changes/74/22474/1 diff --git a/configure.ac b/configure.ac index 548cc68..a7e4952 100644 --- a/configure.ac +++ b/configure.ac @@ -10,6 +10,8 @@ AM_INIT_AUTOMAKE([foreign dist-bzip2 no-dist-gzip 1.9]) +CFLAGS="$CFLAGS -std=gnu11" + dnl kernel style compile messages m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/22474 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: Ib2356c2158b5aaa27cb4692de0f92d09d0bfca06 Gerrit-Change-Number: 22474 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 17:07:51 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 27 Jan 2021 17:07:51 +0000 Subject: Change in osmo-el2tpd[master]: configure.ac: set -std=gnu11 References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-el2tpd/+/22475 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... configure.ac: set -std=gnu11 Change-Id: I924b20265af945f5687d473b06f546ed9ac0c09b --- M configure.ac 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-el2tpd refs/changes/75/22475/1 diff --git a/configure.ac b/configure.ac index 92c1b62..3719d12 100644 --- a/configure.ac +++ b/configure.ac @@ -9,6 +9,8 @@ AM_INIT_AUTOMAKE([foreign dist-bzip2 no-dist-gzip 1.9]) +CFLAGS="$CFLAGS -std=gnu11" + dnl kernel style compile messages m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) -- To view, visit https://gerrit.osmocom.org/c/osmo-el2tpd/+/22475 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-el2tpd Gerrit-Branch: master Gerrit-Change-Id: I924b20265af945f5687d473b06f546ed9ac0c09b Gerrit-Change-Number: 22475 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 17:07:52 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 27 Jan 2021 17:07:52 +0000 Subject: Change in osmo-ggsn[master]: configure.ac: set -std=gnu11 References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ggsn/+/22476 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... configure.ac: set -std=gnu11 Change-Id: I7fed7d43242f804e6d2b005277c5b2b1bd197aa8 --- M configure.ac 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ggsn refs/changes/76/22476/1 diff --git a/configure.ac b/configure.ac index 9d8b4bf..a1c7180 100644 --- a/configure.ac +++ b/configure.ac @@ -9,6 +9,8 @@ AC_CONFIG_TESTDIR(tests) AC_CANONICAL_HOST +CFLAGS="$CFLAGS -std=gnu11" + dnl kernel style compile messages m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) -- To view, visit https://gerrit.osmocom.org/c/osmo-ggsn/+/22476 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ggsn Gerrit-Branch: master Gerrit-Change-Id: I7fed7d43242f804e6d2b005277c5b2b1bd197aa8 Gerrit-Change-Number: 22476 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 17:07:53 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 27 Jan 2021 17:07:53 +0000 Subject: Change in osmo-hlr[master]: configure.ac: set -std=gnu11 References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-hlr/+/22477 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... configure.ac: set -std=gnu11 Change-Id: I5ea5365338248e29591a40ec1e19db95f8ae6877 --- M configure.ac 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-hlr refs/changes/77/22477/1 diff --git a/configure.ac b/configure.ac index 341e925..748ca56 100644 --- a/configure.ac +++ b/configure.ac @@ -12,6 +12,8 @@ AC_CONFIG_TESTDIR(tests) +CFLAGS="$CFLAGS -std=gnu11" + dnl kernel style compile messages m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/22477 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-Change-Id: I5ea5365338248e29591a40ec1e19db95f8ae6877 Gerrit-Change-Number: 22477 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 17:07:55 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 27 Jan 2021 17:07:55 +0000 Subject: Change in osmo-iuh[master]: configure.ac: set -std=gnu11 References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-iuh/+/22478 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... configure.ac: set -std=gnu11 Change-Id: I4bf2f1cb724bc3e3c56d5a5c1270bb152b0e6e0a --- M configure.ac 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-iuh refs/changes/78/22478/1 diff --git a/configure.ac b/configure.ac index c186855..d82c78f 100644 --- a/configure.ac +++ b/configure.ac @@ -13,6 +13,8 @@ AC_CONFIG_TESTDIR(src/tests) +CFLAGS="$CFLAGS -std=gnu11" + dnl kernel style compile messages m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) -- To view, visit https://gerrit.osmocom.org/c/osmo-iuh/+/22478 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: master Gerrit-Change-Id: I4bf2f1cb724bc3e3c56d5a5c1270bb152b0e6e0a Gerrit-Change-Number: 22478 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 17:07:56 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 27 Jan 2021 17:07:56 +0000 Subject: Change in osmo-mgw[master]: configure.ac: set -std=gnu11 References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-mgw/+/22479 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... configure.ac: set -std=gnu11 Change-Id: Ic2a1f20be65810a86cdc36aaa459819146a0bfcc --- M configure.ac 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/79/22479/1 diff --git a/configure.ac b/configure.ac index 83885d4..85b46eb 100644 --- a/configure.ac +++ b/configure.ac @@ -9,6 +9,8 @@ AM_INIT_AUTOMAKE([dist-bzip2]) AC_CONFIG_TESTDIR(tests) +CFLAGS="$CFLAGS -std=gnu11" + dnl kernel style compile messages m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/22479 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ic2a1f20be65810a86cdc36aaa459819146a0bfcc Gerrit-Change-Number: 22479 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 17:07:56 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 27 Jan 2021 17:07:56 +0000 Subject: Change in osmo-msc[master]: configure.ac: set -std=gnu11 References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-msc/+/22480 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... configure.ac: set -std=gnu11 Change-Id: Ie93915f06a8907a80b4f081a00c1cde395015595 --- M configure.ac 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/80/22480/1 diff --git a/configure.ac b/configure.ac index eea7f4b..ee4b33b 100644 --- a/configure.ac +++ b/configure.ac @@ -9,6 +9,8 @@ AM_INIT_AUTOMAKE([dist-bzip2]) AC_CONFIG_TESTDIR(tests) +CFLAGS="$CFLAGS -std=gnu11" + dnl kernel style compile messages m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/22480 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: Ie93915f06a8907a80b4f081a00c1cde395015595 Gerrit-Change-Number: 22480 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 17:07:57 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 27 Jan 2021 17:07:57 +0000 Subject: Change in osmo-pcap[master]: configure.ac: set -std=gnu11 References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcap/+/22481 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... configure.ac: set -std=gnu11 Change-Id: I52c86f461edd96d810fb85a60c68be581caa1799 --- M configure.ac 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcap refs/changes/81/22481/1 diff --git a/configure.ac b/configure.ac index 111d477..6660bf1 100644 --- a/configure.ac +++ b/configure.ac @@ -6,6 +6,8 @@ AM_INIT_AUTOMAKE([dist-bzip2]) AC_CONFIG_TESTDIR(tests) +CFLAGS="$CFLAGS -std=gnu11" + dnl kernel style compile messages m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) -- To view, visit https://gerrit.osmocom.org/c/osmo-pcap/+/22481 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcap Gerrit-Branch: master Gerrit-Change-Id: I52c86f461edd96d810fb85a60c68be581caa1799 Gerrit-Change-Number: 22481 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 17:07:58 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 27 Jan 2021 17:07:58 +0000 Subject: Change in osmo-pcu[master]: configure.ac: set -std=gnu11 References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22482 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... configure.ac: set -std=gnu11 Change-Id: Iac2c0b14252c46aec2b00d46800fcc9f87a5a586 --- M configure.ac 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/82/22482/1 diff --git a/configure.ac b/configure.ac index 2e99a15..66b3595 100644 --- a/configure.ac +++ b/configure.ac @@ -10,7 +10,7 @@ AC_CONFIG_TESTDIR(tests) CXXFLAGS="$CXXFLAGS -std=gnu++03" -CFLAGS="$CFLAGS -std=gnu89" +CFLAGS="$CFLAGS -std=gnu11" dnl kernel style compile messages m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22482 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Iac2c0b14252c46aec2b00d46800fcc9f87a5a586 Gerrit-Change-Number: 22482 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 17:08:00 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 27 Jan 2021 17:08:00 +0000 Subject: Change in osmo-remsim[master]: configure.ac: set -std=gnu11 References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-remsim/+/22483 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... configure.ac: set -std=gnu11 Change-Id: I1c3682bfd50cfb43df041b6ca9a1cc7472a862dd --- M configure.ac 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-remsim refs/changes/83/22483/1 diff --git a/configure.ac b/configure.ac index 5833d0d..8592dd4 100644 --- a/configure.ac +++ b/configure.ac @@ -11,6 +11,7 @@ dnl tar-ustar: some asn1 filenames surpass the 99 char limit of tar, so we need dnl to make tar allow longer filenames. +CFLAGS="$CFLAGS -std=gnu11" dnl kernel style compile messages m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) -- To view, visit https://gerrit.osmocom.org/c/osmo-remsim/+/22483 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-remsim Gerrit-Branch: master Gerrit-Change-Id: I1c3682bfd50cfb43df041b6ca9a1cc7472a862dd Gerrit-Change-Number: 22483 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 17:08:01 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 27 Jan 2021 17:08:01 +0000 Subject: Change in osmo-sip-connector[master]: configure.ac: set -std=gnu11 References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sip-connector/+/22484 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... configure.ac: set -std=gnu11 Change-Id: Ic95981af622dd713638bec775514dc4ef25594d4 --- M configure.ac 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sip-connector refs/changes/84/22484/1 diff --git a/configure.ac b/configure.ac index 39d10f1..10a6392 100644 --- a/configure.ac +++ b/configure.ac @@ -18,6 +18,8 @@ RELMAKE='-include osmo-release.mk' AC_SUBST([RELMAKE]) +CFLAGS="$CFLAGS -std=gnu11" + dnl kernel style compile messages m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) AC_PROG_CC -- To view, visit https://gerrit.osmocom.org/c/osmo-sip-connector/+/22484 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sip-connector Gerrit-Branch: master Gerrit-Change-Id: Ic95981af622dd713638bec775514dc4ef25594d4 Gerrit-Change-Number: 22484 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 17:08:02 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 27 Jan 2021 17:08:02 +0000 Subject: Change in osmo-sysmon[master]: configure.ac: set -std=gnu11 References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sysmon/+/22485 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... configure.ac: set -std=gnu11 Change-Id: I708fe349fd506613af0e62a62bf6cbe611a06eef --- M configure.ac 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sysmon refs/changes/85/22485/1 diff --git a/configure.ac b/configure.ac index 4682931..63615b8 100644 --- a/configure.ac +++ b/configure.ac @@ -8,6 +8,8 @@ AM_INIT_AUTOMAKE([dist-bzip2 foreign]) +CFLAGS="$CFLAGS -std=gnu11" + dnl kernel style compile messages m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) -- To view, visit https://gerrit.osmocom.org/c/osmo-sysmon/+/22485 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sysmon Gerrit-Branch: master Gerrit-Change-Id: I708fe349fd506613af0e62a62bf6cbe611a06eef Gerrit-Change-Number: 22485 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 17:08:02 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 27 Jan 2021 17:08:02 +0000 Subject: Change in osmo-trx[master]: configure.ac: set -std=gnu11 References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-trx/+/22486 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... configure.ac: set -std=gnu11 Change-Id: Ie95876d1d2ebf31ff588999d85584f6981522fa8 --- M configure.ac 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/86/22486/1 diff --git a/configure.ac b/configure.ac index 4ad344d..7f6aef7 100644 --- a/configure.ac +++ b/configure.ac @@ -34,6 +34,8 @@ AM_INIT_AUTOMAKE([foreign subdir-objects]) +CFLAGS="$CFLAGS -std=gnu11" + dnl Linux kernel KBuild style compile messages m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/22486 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: Ie95876d1d2ebf31ff588999d85584f6981522fa8 Gerrit-Change-Number: 22486 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 17:10:16 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 27 Jan 2021 17:10:16 +0000 Subject: Change in libosmocore[master]: configure.ac: set -std=gnu11 In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22355 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... Patch Set 5: Uploaded patches to set gnu11 everywhere, as discussed in team meeting. https://gerrit.osmocom.org/q/topic:cstd -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22355 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Id79b13d3c498acb565f91eba650328fccb5a13ef Gerrit-Change-Number: 22355 Gerrit-PatchSet: 5 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-CC: lynxis lazus Gerrit-Comment-Date: Wed, 27 Jan 2021 17:10:16 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 18:24:22 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 27 Jan 2021 18:24:22 +0000 Subject: Change in osmo-el2tpd[master]: configure.ac: set -std=gnu11 In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-el2tpd/+/22475 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-el2tpd/+/22475 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-el2tpd Gerrit-Branch: master Gerrit-Change-Id: I924b20265af945f5687d473b06f546ed9ac0c09b Gerrit-Change-Number: 22475 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Wed, 27 Jan 2021 18:24:22 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 18:24:26 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 27 Jan 2021 18:24:26 +0000 Subject: Change in osmo-sip-connector[master]: configure.ac: set -std=gnu11 In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sip-connector/+/22484 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sip-connector/+/22484 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sip-connector Gerrit-Branch: master Gerrit-Change-Id: Ic95981af622dd713638bec775514dc4ef25594d4 Gerrit-Change-Number: 22484 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Wed, 27 Jan 2021 18:24:26 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 18:24:33 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 27 Jan 2021 18:24:33 +0000 Subject: Change in libosmocore[master]: configure.ac: set -std=gnu11 In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22355 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22355 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Id79b13d3c498acb565f91eba650328fccb5a13ef Gerrit-Change-Number: 22355 Gerrit-PatchSet: 5 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Wed, 27 Jan 2021 18:24:33 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 18:24:45 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 27 Jan 2021 18:24:45 +0000 Subject: Change in osmo-ggsn[master]: configure.ac: set -std=gnu11 In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ggsn/+/22476 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ggsn/+/22476 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ggsn Gerrit-Branch: master Gerrit-Change-Id: I7fed7d43242f804e6d2b005277c5b2b1bd197aa8 Gerrit-Change-Number: 22476 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Wed, 27 Jan 2021 18:24:45 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 18:24:57 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 27 Jan 2021 18:24:57 +0000 Subject: Change in osmo-bsc[master]: configure.ac: set -std=gnu11 In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22470 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... Patch Set 1: Code-Review+2 4 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22470 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I61ee711de5303691c2f8881b66d4614d11850be2 Gerrit-Change-Number: 22470 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Wed, 27 Jan 2021 18:24:57 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 18:34:51 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 27 Jan 2021 18:34:51 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Introduce test TC_nacc_outbound_success_twice References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22487 ) Change subject: pcu: Introduce test TC_nacc_outbound_success_twice ...................................................................... pcu: Introduce test TC_nacc_outbound_success_twice Change-Id: Ia7b1584b3f7abfa2697a1f155c8b7788a3b0722e --- M pcu/PCU_Tests.ttcn 1 file changed, 145 insertions(+), 50 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/87/22487/1 diff --git a/pcu/PCU_Tests.ttcn b/pcu/PCU_Tests.ttcn index 9b17f6f..316ab65 100644 --- a/pcu/PCU_Tests.ttcn +++ b/pcu/PCU_Tests.ttcn @@ -112,6 +112,12 @@ f_PCUIF_AF2addr_type(mp_nsconfig.nsvc[0].provider.ip.address_family), mp_nsconfig.nsvc[0].provider.ip.local_ip) } +/* Passed in RAN-INFO message from emulated neighbor using RIM */ +const octetstring si1_default := '198fb100000000000000000000000000007900002b'O; +const octetstring si3_default := '1b753000f110236ec9033c2747407900003c0b2b2b'O; +const octetstring si13_default := '009000185a6fc9e08410ab2b2b2b2b2b2b2b2b2b2b'O; +const octetstring si_default := si1_default & si3_default & si13_default; + type record lqual_range { /* component reference to the IPA_Client component used for RSL */ uint8_t low, @@ -197,6 +203,24 @@ f_vty_config2(PCUVTY, {"pcu"}, cmd); } +private function f_pcuvty_flush_neigh_caches() runs on RAW_PCU_Test_CT { + f_pcuvty_set_neigh_caches(0, 0); +} + +private function f_pcuvty_set_neigh_caches(integer neigh_cache_secs := -1, integer si_cache_secs := -1) +runs on RAW_PCU_Test_CT { + if (neigh_cache_secs == -1) { + f_vty_config2(PCUVTY, {"pcu"}, "timer X10 default"); + } else { + f_vty_config2(PCUVTY, {"pcu"}, "timer X10 " & int2str(neigh_cache_secs)); + } + if (si_cache_secs == -1) { + f_vty_config2(PCUVTY, {"pcu"}, "timer X11 default"); + } else { + f_vty_config2(PCUVTY, {"pcu"}, "timer X11 " & int2str(si_cache_secs)); + } +} + private function f_init_vty(charstring id, boolean egprs_only) runs on RAW_PCU_Test_CT { map(self:PCUVTY, system:PCUVTY); f_vty_set_prompts(PCUVTY); @@ -3660,42 +3684,80 @@ return; } +/* Start NACC from MS side */ +private function f_outbound_nacc_success(inout GprsMS ms, PCUIF_info_ind info_ind, + boolean exp_rac_ci_query := true, boolean exp_si_query := true) +runs on RAW_PCU_Test_CT { + var template (value) RlcmacUlCtrlMsg cell_chf_notif; + var RlcmacDlBlock dl_block; + var uint32_t sched_fn; + var GsmArfcn req_arfcn := 862; + var uint6_t req_bsic := 43; + + /* Start NACC from MS side */ + cell_chf_notif := ts_RlcMacUlCtrl_PKT_CELL_CHG_NOTIF(ms.ul_tbf.tfi, req_arfcn, req_bsic); + f_ms_tx_ul_block(ms, ts_RLC_UL_CTRL_ACK(cell_chf_notif), 0, nr := f_ms_tx_TsTrxBtsNum(ms)); + + if (exp_rac_ci_query == true) { + /* osmo-pcu should now ask for resolution: */ + f_ipa_ctrl_wait_link_up(); + var charstring ctrl_var := "neighbor_resolve_cgi_ps_from_lac_ci." & + int2str(info_ind.lac) & "." & + int2str(info_ind.cell_id) & "." & + int2str(req_arfcn) & "." & + int2str(req_bsic); + f_ctrl_exp_get(IPA_CTRL, ctrl_var, "023-43-423-2-5"); + } + + if (exp_si_query == true) { + /* RIM procedure: */ + var BssgpCellId src := valueof(ts_BssgpCellId(ts_RAI(ts_LAI(f_enc_BcdMccMnc(info_ind.mcc, info_ind.mnc, info_ind.mnc_3_digits == 1), /* '262F42'H */ + info_ind.lac), + info_ind.rac), + info_ind.cell_id)); + var BssgpCellId dst := valueof(ts_BssgpCellId(ts_RAI(ts_LAI('023F43'H, /* Decided by test itself (emulating BSC) */ + 423), + 2), + 5)); + var template RIM_Routing_Address src_addr := t_RIM_Routing_Address_cid(src); + var template RIM_Routing_Address dst_addr := t_RIM_Routing_Address_cid(dst); + var template RAN_Information_RIM_Container res_cont; + res_cont := ts_RAN_Information_RIM_Container(ts_RIM_Application_Identity(RIM_APP_ID_NACC), + ts_RIM_Sequence_Number(2), + ts_RIM_PDU_Indications(false, RIM_PDU_TYPE_SING_REP), + ts_RIM_Protocol_Version_Number(1), + tsu_ApplContainer_or_ApplErrContainer_NACC(tsu_ApplContainer_NACC(dst, false, 3, si_default)), + omit); + RIM.receive(tr_RAN_INFORMATION_REQUEST(tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, dst_addr), + tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, src_addr), + tr_RAN_Information_Request_RIM_Container)); + RIM.send(ts_PDU_BSSGP_RAN_INFORMATION(ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, src_addr), + ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, dst_addr), + res_cont)); + } + + /* Announce SI back to MS, continue NACC procedure */ + f_handle_pkt_neighbor_cell_data(ms, si_default); + + /* Obtain a Downlink block and make sure it is a Pkt Cell Chg Continue */ + f_rx_rlcmac_dl_block(dl_block, sched_fn); + if (not match(dl_block, tr_RLCMAC_DL_CTRL(?, tr_RlcMacDlCtrl_PKT_CELL_CHG_CONTINUE))) { + setverdict(fail, "Rx unexpected DL block: ", dl_block); + f_shutdown(__BFILE__, __LINE__); + } + +} + /* Verify PCU handles outbound Network Assisted Cell Change Cell Change (NACC, TS 44.060 sec 8.8). */ testcase TC_nacc_outbound_success() runs on RAW_PCU_Test_CT { - var RlcmacDlBlock dl_block; var PollFnCtx pollctx; - var uint32_t sched_fn; var GprsMS ms; - var template (value) RlcmacUlCtrlMsg cell_chf_notif; var PCUIF_info_ind info_ind := valueof(ts_PCUIF_INFO_default); var MultislotCap_GPRS mscap_gprs := { gprsmultislotclass := '00011'B, gprsextendeddynalloccap := '0'B }; var MSRadioAccessCapabilityV ms_racap := { valueof(ts_RaCapRec('0001'B /* E-GSM */, mscap_gprs, omit)) }; - var GsmArfcn req_arfcn := 862; - var uint6_t req_bsic := 43; - var BssgpCellId src := valueof(ts_BssgpCellId(ts_RAI(ts_LAI(f_enc_BcdMccMnc(info_ind.mcc, info_ind.mnc, info_ind.mnc_3_digits == 1), /* '262F42'H */ - info_ind.lac), - info_ind.rac), - info_ind.cell_id)); - var BssgpCellId dst := valueof(ts_BssgpCellId(ts_RAI(ts_LAI('023F43'H, /* Decided by test itself (emulating BSC) */ - 423), - 2), - 5)); - var template RIM_Routing_Address src_addr := t_RIM_Routing_Address_cid(src); - var template RIM_Routing_Address dst_addr := t_RIM_Routing_Address_cid(dst); - var octetstring si1 := '198fb100000000000000000000000000007900002b'O; - var octetstring si3 := '1b753000f110236ec9033c2747407900003c0b2b2b'O; - var octetstring si13 := '009000185a6fc9e08410ab2b2b2b2b2b2b2b2b2b2b'O; - var octetstring si := si1 & si3 & si13; - var template RAN_Information_RIM_Container res_cont; - res_cont := ts_RAN_Information_RIM_Container(ts_RIM_Application_Identity(RIM_APP_ID_NACC), - ts_RIM_Sequence_Number(2), - ts_RIM_PDU_Indications(false, RIM_PDU_TYPE_SING_REP), - ts_RIM_Protocol_Version_Number(1), - tsu_ApplContainer_or_ApplErrContainer_NACC(tsu_ApplContainer_NACC(dst, false, 3, si)), - omit); /* Initialize osmo-bsc emulation neighbor resolution CTRL port */ f_ipa_ctrl_start_server(mp_ctrl_neigh_ip, mp_ctrl_neigh_port); @@ -3709,6 +3771,9 @@ /* Initialize the PCU interface abstraction */ f_init_raw(testcasename(), info_ind); + /* Make sure we are not affected by full cache from previous tests */ + f_pcuvty_flush_neigh_caches(); + /* Establish BSSGP connection to the PCU */ f_bssgp_establish(); f_bssgp_client_llgmm_assign(TLLI_UNUSED, ms.tlli); @@ -3719,34 +3784,54 @@ f_ms_tx_ul_block(ms, ts_RLCMAC_CTRL_ACK(ms.tlli), pollctx.fn, nr := pollctx.tstrxbts); /* Start NACC from MS side */ - cell_chf_notif := ts_RlcMacUlCtrl_PKT_CELL_CHG_NOTIF(ms.ul_tbf.tfi, req_arfcn, req_bsic); - f_ms_tx_ul_block(ms, ts_RLC_UL_CTRL_ACK(cell_chf_notif), 0, nr := f_ms_tx_TsTrxBtsNum(ms)); + f_outbound_nacc_success(ms, info_ind); - /* osmo-pcu should now ask for resolution: */ - f_ipa_ctrl_wait_link_up(); - var charstring ctrl_var := "neighbor_resolve_cgi_ps_from_lac_ci." & - int2str(info_ind.lac) & "." & - int2str(info_ind.cell_id) & "." & - int2str(req_arfcn) & "." & - int2str(req_bsic); - f_ctrl_exp_get(IPA_CTRL, ctrl_var, "023-43-423-2-5"); + f_shutdown(__BFILE__, __LINE__, final := true); +} - /* RIM procedure: */ - RIM.receive(tr_RAN_INFORMATION_REQUEST(tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, dst_addr), - tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, src_addr), - tr_RAN_Information_Request_RIM_Container)); - RIM.send(ts_PDU_BSSGP_RAN_INFORMATION(ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, src_addr), - ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, dst_addr), - res_cont)); +/* Verify PCU handles outbound Network Assisted Cell Change Cell Change (NACC, TS 44.060 sec 8.8) twice, the second time using the caches */ +testcase TC_nacc_outbound_success_twice() runs on RAW_PCU_Test_CT { + var PollFnCtx pollctx; + var GprsMS ms; + var PCUIF_info_ind info_ind := valueof(ts_PCUIF_INFO_default); + var MultislotCap_GPRS mscap_gprs := { + gprsmultislotclass := '00011'B, + gprsextendeddynalloccap := '0'B + }; + var MSRadioAccessCapabilityV ms_racap := { valueof(ts_RaCapRec('0001'B /* E-GSM */, mscap_gprs, omit)) }; + var template (value) RlcmacUlCtrlMsg cell_chf_notif; - /* Announce SI back to MS, continue NACC procedure */ - f_handle_pkt_neighbor_cell_data(ms, si); + /* Initialize osmo-bsc emulation neighbor resolution CTRL port */ + f_ipa_ctrl_start_server(mp_ctrl_neigh_ip, mp_ctrl_neigh_port); - /* Obtain a Downlink block and make sure it is a Pkt Cell Chg Continue */ - f_rx_rlcmac_dl_block(dl_block, sched_fn); - if (not match(dl_block, tr_RLCMAC_DL_CTRL(?, tr_RlcMacDlCtrl_PKT_CELL_CHG_CONTINUE))) { - setverdict(fail, "Rx unexpected DL block: ", dl_block); - } + /* Initialize NS/BSSGP side */ + f_init_bssgp(); + /* Initialize GPRS MS side */ + f_init_gprs_ms(); + ms := g_ms[0]; /* We only use first MS in this test */ + + /* Initialize the PCU interface abstraction */ + f_init_raw(testcasename(), info_ind); + + /* Make sure we are not affected by full cache from previous tests */ + f_pcuvty_flush_neigh_caches(); + /* Set timeout values for caches so that entries will be in cache during second try */ + f_pcuvty_set_neigh_caches(10, 10); + + /* Establish BSSGP connection to the PCU */ + f_bssgp_establish(); + f_bssgp_client_llgmm_assign(TLLI_UNUSED, ms.tlli); + + /* Send PACKET RESOURCE REQUEST */ + pollctx := f_ms_establish_ul_tbf_2phase_access(ms, ts_RlcMacUlCtrl_PKT_RES_REQ(ms.tlli, ms_racap)); + /* Pkt Uplink Assignment above sets poll+rrbp requesting PACKET CONTROL ACK */ + f_ms_tx_ul_block(ms, ts_RLCMAC_CTRL_ACK(ms.tlli), pollctx.fn, nr := pollctx.tstrxbts); + + /* Start NACC from MS side */ + f_outbound_nacc_success(ms, info_ind); + + /* First NACC procedure is done, let's try to start a new one now that previous queries are cached: */ + f_outbound_nacc_success(ms, info_ind, false, false); f_shutdown(__BFILE__, __LINE__, final := true); } @@ -3779,6 +3864,9 @@ /* Initialize the PCU interface abstraction */ f_init_raw(testcasename(), info_ind); + /* Make sure we are not affected by full cache from previous tests */ + f_pcuvty_flush_neigh_caches(); + /* Establish BSSGP connection to the PCU */ f_bssgp_establish(); f_bssgp_client_llgmm_assign(TLLI_UNUSED, ms.tlli); @@ -3840,6 +3928,9 @@ /* Initialize the PCU interface abstraction */ f_init_raw(testcasename(), info_ind); + /* Make sure we are not affected by full cache from previous tests */ + f_pcuvty_flush_neigh_caches(); + /* Establish BSSGP connection to the PCU */ f_bssgp_establish(); f_bssgp_client_llgmm_assign(TLLI_UNUSED, ms.tlli); @@ -3911,6 +4002,9 @@ /* Initialize the PCU interface abstraction */ f_init_raw(testcasename(), info_ind); + /* Make sure we are not affected by full cache from previous tests */ + f_pcuvty_flush_neigh_caches(); + /* Establish BSSGP connection to the PCU */ f_bssgp_establish(); f_bssgp_client_llgmm_assign(TLLI_UNUSED, ms.tlli); @@ -4023,6 +4117,7 @@ execute( TC_pcuif_info_ind_subsequent() ); execute( TC_nacc_outbound_success() ); + execute( TC_nacc_outbound_success_twice() ); execute( TC_nacc_outbound_rac_ci_resolve_timeout() ); execute( TC_nacc_outbound_rac_ci_resolve_fail_parse_response() ); execute( TC_nacc_outbound_si_resolve_timeout() ); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22487 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ia7b1584b3f7abfa2697a1f155c8b7788a3b0722e Gerrit-Change-Number: 22487 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 18:34:51 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 27 Jan 2021 18:34:51 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Introduce test TC_nacc_outbound_rac_ci_resolve_conn_refused References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22488 ) Change subject: pcu: Introduce test TC_nacc_outbound_rac_ci_resolve_conn_refused ...................................................................... pcu: Introduce test TC_nacc_outbound_rac_ci_resolve_conn_refused Change-Id: Ia0452879edb958098598e9e1c943f4e1e458a9bf --- M pcu/PCU_Tests.ttcn 1 file changed, 57 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/88/22488/1 diff --git a/pcu/PCU_Tests.ttcn b/pcu/PCU_Tests.ttcn index 316ab65..6a78975 100644 --- a/pcu/PCU_Tests.ttcn +++ b/pcu/PCU_Tests.ttcn @@ -3837,6 +3837,62 @@ } /* Verify PCU transmits Pkt Cell Change Continue if RAC+CI resolution fails during outbound NACC procedure */ +testcase TC_nacc_outbound_rac_ci_resolve_conn_refused() runs on RAW_PCU_Test_CT { + var RlcmacDlBlock dl_block; + var PollFnCtx pollctx; + var uint32_t sched_fn; + var GprsMS ms; + var template (value) RlcmacUlCtrlMsg cell_chf_notif; + var PCUIF_info_ind info_ind := valueof(ts_PCUIF_INFO_default); + var MultislotCap_GPRS mscap_gprs := { + gprsmultislotclass := '00011'B, + gprsextendeddynalloccap := '0'B + }; + var MSRadioAccessCapabilityV ms_racap := { valueof(ts_RaCapRec('0001'B /* E-GSM */, mscap_gprs, omit)) }; + var GsmArfcn req_arfcn := 862; + var uint6_t req_bsic := 43; + + /* In here we explicitly avoid starting osmo-bsc emulation neighbor + * resolution CTRL port, to trigger Conn Refused by socket: + * f_ipa_ctrl_start_server(mp_ctrl_neigh_ip, mp_ctrl_neigh_port); + */ + + /* Initialize NS/BSSGP side */ + f_init_bssgp(); + /* Initialize GPRS MS side */ + f_init_gprs_ms(); + ms := g_ms[0]; /* We only use first MS in this test */ + + /* Initialize the PCU interface abstraction */ + f_init_raw(testcasename(), info_ind); + + /* Make sure we are not affected by full cache from previous tests */ + f_pcuvty_flush_neigh_caches(); + + /* Establish BSSGP connection to the PCU */ + f_bssgp_establish(); + f_bssgp_client_llgmm_assign(TLLI_UNUSED, ms.tlli); + + /* Send PACKET RESOURCE REQUEST */ + pollctx := f_ms_establish_ul_tbf_2phase_access(ms, ts_RlcMacUlCtrl_PKT_RES_REQ(ms.tlli, ms_racap)); + /* Pkt Uplink Assignment above sets poll+rrbp requesting PACKET CONTROL ACK */ + f_ms_tx_ul_block(ms, ts_RLCMAC_CTRL_ACK(ms.tlli), pollctx.fn, nr := pollctx.tstrxbts); + + /* Start NACC from MS side */ + cell_chf_notif := ts_RlcMacUlCtrl_PKT_CELL_CHG_NOTIF(ms.ul_tbf.tfi, req_arfcn, req_bsic); + f_ms_tx_ul_block(ms, ts_RLC_UL_CTRL_ACK(cell_chf_notif), 0, nr := f_ms_tx_TsTrxBtsNum(ms)); + + /* Wait until we receive something non-dummy */ + dl_block := f_skip_dummy(0); + /* Make sure it is a Pkt Cell Chg Continue */ + if (not match(dl_block, tr_RLCMAC_DL_CTRL(?, tr_RlcMacDlCtrl_PKT_CELL_CHG_CONTINUE))) { + setverdict(fail, "Rx unexpected DL block: ", dl_block); + } + + f_shutdown(__BFILE__, __LINE__, final := true); +} + +/* Verify PCU transmits Pkt Cell Change Continue if RAC+CI resolution fails during outbound NACC procedure */ testcase TC_nacc_outbound_rac_ci_resolve_timeout() runs on RAW_PCU_Test_CT { var RlcmacDlBlock dl_block; var PollFnCtx pollctx; @@ -4118,6 +4174,7 @@ execute( TC_pcuif_info_ind_subsequent() ); execute( TC_nacc_outbound_success() ); execute( TC_nacc_outbound_success_twice() ); + execute( TC_nacc_outbound_rac_ci_resolve_conn_refused() ); execute( TC_nacc_outbound_rac_ci_resolve_timeout() ); execute( TC_nacc_outbound_rac_ci_resolve_fail_parse_response() ); execute( TC_nacc_outbound_si_resolve_timeout() ); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22488 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ia0452879edb958098598e9e1c943f4e1e458a9bf Gerrit-Change-Number: 22488 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 18:34:59 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 27 Jan 2021 18:34:59 +0000 Subject: Change in osmo-pcu[master]: NACC: allow setting keep time for entries in neigh and si cache In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-pcu/+/22449 to look at the new patch set (#3). Change subject: NACC: allow setting keep time for entries in neigh and si cache ...................................................................... NACC: allow setting keep time for entries in neigh and si cache Related: SYS#4909 Change-Id: Ifa336aa27dd88ff5b78dbc5a2799740f542bb369 --- M src/gprs_pcu.c M src/gprs_pcu.h M src/neigh_cache.c M src/neigh_cache.h M src/pcu_vty.c 5 files changed, 45 insertions(+), 15 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/49/22449/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22449 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ifa336aa27dd88ff5b78dbc5a2799740f542bb369 Gerrit-Change-Number: 22449 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 18:35:00 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 27 Jan 2021 18:35:00 +0000 Subject: Change in osmo-pcu[master]: NACC: Fix crash freeing struct if CTRL conn was refused during alloc References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22489 ) Change subject: NACC: Fix crash freeing struct if CTRL conn was refused during alloc ...................................................................... NACC: Fix crash freeing struct if CTRL conn was refused during alloc Older versions of osmo_ctrl_conn_alloc() may not properly initialize write_queue.bfd.fd to -1, which means if osmo_sock_init2_ofd() failed during nacc_fsm_alloc(), the destructor would wrongly enter the conditon where the whole structure is set and unregister the unregistered fd. Related: libosmocore Change-Id I98f744d2880fbb883719cdf1d3eb31f2b22a13b6 Related: SYS#4909 Change-Id: I253bd9087b1f7ab039aa1127e9dc586f5106905a --- M src/nacc_fsm.c 1 file changed, 3 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/89/22489/1 diff --git a/src/nacc_fsm.c b/src/nacc_fsm.c index 0a20ae6..b8350a6 100644 --- a/src/nacc_fsm.c +++ b/src/nacc_fsm.c @@ -623,6 +623,9 @@ ctx->neigh_ctrl_conn = osmo_ctrl_conn_alloc(ctx, ctx->neigh_ctrl); if (!ctx->neigh_ctrl_conn) goto free_ret; + /* Older versions of osmo_ctrl_conn_alloc didn't properly initialize fd to -1, + * so make sure to do it here otherwise fd may be valid fd 0 and cause trouble */ + ctx->neigh_ctrl_conn->write_queue.bfd.fd = -1; llist_add(&ctx->neigh_ctrl_conn->list_entry, &ctx->neigh_ctrl->ccon_list); rc = osmo_sock_init2_ofd(&ctx->neigh_ctrl_conn->write_queue.bfd, -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22489 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I253bd9087b1f7ab039aa1127e9dc586f5106905a Gerrit-Change-Number: 22489 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 18:35:01 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 27 Jan 2021 18:35:01 +0000 Subject: Change in osmo-pcu[master]: NACC: delay CTRL conn socket init until it's needed References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22490 ) Change subject: NACC: delay CTRL conn socket init until it's needed ...................................................................... NACC: delay CTRL conn socket init until it's needed This way, we don't open a socket and do the IPA handshake in the event the request is already cached. Related: SYS#4909 Change-Id: Ib1ea85e1196c8b9dc40c8837ab5d4a54f2a1f2d4 --- M src/nacc_fsm.c 1 file changed, 11 insertions(+), 14 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/90/22490/1 diff --git a/src/nacc_fsm.c b/src/nacc_fsm.c index b8350a6..5e8d51b 100644 --- a/src/nacc_fsm.c +++ b/src/nacc_fsm.c @@ -279,7 +279,7 @@ struct gprs_rlcmac_bts *bts = ctx->ms->bts; struct gprs_pcu *pcu = bts->pcu; const struct osmo_cell_global_id_ps *cgi_ps; - struct ctrl_cmd *cmd; + struct ctrl_cmd *cmd = NULL; int rc; /* First try to find the value in the cache */ @@ -295,6 +295,16 @@ LOGPFSML(fi, LOGL_DEBUG, "No CGI-PS found in cache, resolving " NEIGH_CACHE_ENTRY_KEY_FMT "...\n", NEIGH_CACHE_ENTRY_KEY_ARGS(&ctx->neigh_key)); + rc = osmo_sock_init2_ofd(&ctx->neigh_ctrl_conn->write_queue.bfd, + AF_UNSPEC, SOCK_STREAM, IPPROTO_TCP, + NULL, 0, pcu->vty.neigh_ctrl_addr, pcu->vty.neigh_ctrl_port, + OSMO_SOCK_F_CONNECT); + if (rc < 0) { + LOGPFSML(fi, LOGL_ERROR, "Can't connect to CTRL @ %s:%u\n", + pcu->vty.neigh_ctrl_addr, pcu->vty.neigh_ctrl_port); + goto err_term; + } + cmd = ctrl_cmd_create(ctx, CTRL_TYPE_GET); if (!cmd) { LOGPFSML(fi, LOGL_ERROR, "CTRL msg creation failed\n"); @@ -603,11 +613,8 @@ struct nacc_fsm_ctx *nacc_fsm_alloc(struct GprsMs* ms) { - struct gprs_rlcmac_bts *bts = ms->bts; - struct gprs_pcu *pcu = bts->pcu; struct nacc_fsm_ctx *ctx = talloc_zero(ms, struct nacc_fsm_ctx); char buf[64]; - int rc; talloc_set_destructor(ctx, nacc_fsm_ctx_talloc_destructor); @@ -628,16 +635,6 @@ ctx->neigh_ctrl_conn->write_queue.bfd.fd = -1; llist_add(&ctx->neigh_ctrl_conn->list_entry, &ctx->neigh_ctrl->ccon_list); - rc = osmo_sock_init2_ofd(&ctx->neigh_ctrl_conn->write_queue.bfd, - AF_UNSPEC, SOCK_STREAM, IPPROTO_TCP, - NULL, 0, pcu->vty.neigh_ctrl_addr, pcu->vty.neigh_ctrl_port, - OSMO_SOCK_F_CONNECT); - if (rc < 0) { - LOGP(DNACC, LOGL_ERROR, "Can't connect to CTRL @ %s:%u\n", - pcu->vty.neigh_ctrl_addr, pcu->vty.neigh_ctrl_port); - goto free_ret; - } - return ctx; free_ret: talloc_free(ctx); -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22490 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ib1ea85e1196c8b9dc40c8837ab5d4a54f2a1f2d4 Gerrit-Change-Number: 22490 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 18:35:04 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Wed, 27 Jan 2021 18:35:04 +0000 Subject: Change in osmo-sgsn[master]: manual/gbproxy: Update data model References: Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22491 ) Change subject: manual/gbproxy: Update data model ...................................................................... manual/gbproxy: Update data model Related: SYS#5115, SYS#5005 Change-Id: Icb9095f4002f2a0a4562fccecae109075cb93c7b --- M doc/manuals/chapters/gbproxy-overview.adoc 1 file changed, 44 insertions(+), 77 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/91/22491/1 diff --git a/doc/manuals/chapters/gbproxy-overview.adoc b/doc/manuals/chapters/gbproxy-overview.adoc index 1564157..9795dc5 100644 --- a/doc/manuals/chapters/gbproxy-overview.adoc +++ b/doc/manuals/chapters/gbproxy-overview.adoc @@ -1,6 +1,10 @@ [[chapter_overview]] == Overview +IMPORTANT: If you have used an earlier version of OsmoGbProxy please note +that support for various features such as PLMN/APN patching, support for a +secondary SGSN has been removed. + === About OsmoGbProxy OsmoGbProxy is the Osmocom proxy for the 3GPP Gb interface. The Gb @@ -15,7 +19,7 @@ OsmoGbProxy aggregates many PCU-facing Gb connections into one Gb connection to the SGSN. This is achieved by -* maintaining sepaate NS-VCs on the PCU side and on the SGSN side +* maintaining separate NS-VCs on the PCU side and on the SGSN side * more or less transparently routing BSSGP peer-to-peer Virtual Circuits (BVCs) through the proxy * having some special handling for the signaling BVC (BVCI=0) which is @@ -28,101 +32,64 @@ This contains the parsed configuration of the OsmoGbProxy. -==== gproxy_peer +==== gproxy_nse -A "peer" is any remote NS-entity that the proxy interacts with. A peer -includes information about: +The remote NS-entity that the proxy interacts with. Includes +information about: * the [unique] NSEI of the peer -* the [unique] BVCI of the peer * the Routeing Area (RA) of the peer +* which side this NSE is facing - SGSN or BSS +* the list of BVCs in this NSE -==== gbproxy_tlli_state +==== gbproxy_bvc -One of the (unique) TLLI of any of the subscribers/UEs attached to any of -the BTSs/PCUs served by the proxy. +A ptp-BVC on an NSE -==== gbproxy_link_info +* the BVCI of this BVC +* the routing area of this BVC +* the BVC state machine -One of the [unique] subscribers/connections that are served through this -proxy. The information includes +==== gbproxy_cell -* the TLLI on BSS side -* the TLLI on SGSN side (may be different due to P-TMSI rewriting) -* the NSEI of the SGSN for this link -* a timestamp when we last conversed with this subscriber -* state related to IMSI acquisition -** a temporary queue of stored messages (until IMSI acquisition succeeds) -** N(U) rewriting state (inserting IDENTTIY REQ changes LLC sequence numbers) +This contains a view of the cell and its associated BVCs -==== gbproxy_match +* the unique BVCI of this cell +* the routing area of this cell +* one bss-side BVC +* one BVC per SGSN in the pool -A single matching rule against which IMSIs are matched. The matching rule -is expressed as regular expression. There can be one such matching rule for -each +==== gbproxy_sgsn -* routing between two different SGSNs, see below -* patching of messages (e.g. APN, PLMN) +Represents one SGSN in the pool. Contains: +* the NSE belonging to this SGSN +* a (configurable) name of the SGSN +* pool-related configuration of the SGSNs -=== Advanced Features +==== IMSI cache -==== PLMN patching +In order to route messages to the correct BSS or SGSN OsmoGbProxy +sometimes needs to cache where messages came from. -This feature permits to modify the PLMN inside any BSSGP messages -containing the Routing Area ID (RAID). +In BSS->SGSN direction the IMSI-cache is needed for -The configured core-mcc and core-mnc will be used towards the SGSN, -irrespective of which MCC/MNC the PCU is using/reporting on Gb. +* paging ps reject +* dummy paging response -==== APN patching +when SGSN-pooling is enabled and multiple SGSNs are configured. The IMSI +contained in a paging ps or dummy paging message is cached together with +the originating SGSN/NSE. The answer, which also contains the IMSI, is +then routed back to the original SGSN. -This will transparently re-write the APN name inside SM ACTIVATE PDP -REQUEST messages on the way from the MS to the SGSN. The patching is -performed based on matching on the IMSI of the subscriber. +==== TLLI cache -The configured core-apn will be used towards the SGSN, irrespective -of which APN the MS is requesting in its Layer3 signaling. +In SGSN->BSS direction OsmoGbProxy needs a TLLI cache to correctly route the +following messages: -APN patching can only be performed if no GPRS encryption is enabled in -the network! +* suspend ack/nack +* resume ack/nack -APN patching is useful in case a valid APN cannot reliably be -provisioned via other means, such as via the SIM Card, OTA-DM or via -CAMEL rewriting in the SGSN. - -==== P-TMSI patching - -This feature transparently rewrite the P-TMSI between MS and SGSN. This -is required when using the Secondary SGSN support, as both SGSNs could -allocate overlapping TMSIs and we must make sure they're unique across -both SGSNs. - -P-TMSI patching is required by (and hence automatically enablede if -secondary SGSN support is enabled. - -P-TMSI patching can only be performed if no GPRS encryption is enabled in -the network! - -==== IMSI Acquisition - -This is a special feature where the proxy will by itself inject GMM IDENTITY -REQUEST messages for the IMSI into the downlink BSSGP traffic in order -to establish the IMSI of subscribers for which it is not otherwise known - -IMSI acquisition is automatically enabled if secondary SGSN support is -enabled. - -==== Secondary SGSN Support - -This allows the proxy to connect not only to one SGSN, but to two -different SGSNs. IMSI matching rules are applied to determine which of -the SGSNs is to be used for traffic of this subscriber. - -One possible use case of this feature is to have a "local break-out" for -subscribers who are native to this network (and hence save -latencies/overhead of back-hauling all related traffic via the -SGSN+GGSN) while at the same time maintaining the classic behavior for -inbound roaming subscribers, where the roaming agreements mandate that -data traffic is brought back to the GGSN in the HPLMN via the SGSN of -the VPLMN. +Suspend/resume are sent over the signalling BVC to the SGSN. OsmoGbProxy saves +the TLLI->NSE association in the TLLI cache and routes the ack/nack back to +the signalling BVC of the originating NSE. \ No newline at end of file -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22491 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Icb9095f4002f2a0a4562fccecae109075cb93c7b Gerrit-Change-Number: 22491 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 18:35:06 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Wed, 27 Jan 2021 18:35:06 +0000 Subject: Change in osmo-sgsn[master]: Rename OsmoGbPROXY -> *Proxy References: Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22492 ) Change subject: Rename OsmoGbPROXY -> *Proxy ...................................................................... Rename OsmoGbPROXY -> *Proxy Change-Id: I7542ac1d5242f1784146de2df7cecaf70fe93c6c Related: SYS#5115, SYS#5005 --- M doc/manuals/chapters/gbproxy-configuration.adoc M doc/manuals/chapters/gbproxy-control.adoc M doc/manuals/chapters/gbproxy-running.adoc M doc/manuals/osmogbproxy-usermanual.adoc 4 files changed, 5 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/92/22492/1 diff --git a/doc/manuals/chapters/gbproxy-configuration.adoc b/doc/manuals/chapters/gbproxy-configuration.adoc index e61af48..057d1ca 100644 --- a/doc/manuals/chapters/gbproxy-configuration.adoc +++ b/doc/manuals/chapters/gbproxy-configuration.adoc @@ -1,4 +1,4 @@ -== Configuring OsmoGbPROXY +== Configuring OsmoGbProxy TBD. Unfortunately this chapter of the manual still needs to be written. Osmocom has very limited funding and support resources; Feel free to help diff --git a/doc/manuals/chapters/gbproxy-control.adoc b/doc/manuals/chapters/gbproxy-control.adoc index afe23ad..2f83e6a 100644 --- a/doc/manuals/chapters/gbproxy-control.adoc +++ b/doc/manuals/chapters/gbproxy-control.adoc @@ -3,7 +3,7 @@ The actual protocol is described in <>, the variables common to all programs using it are described in <>. Here we -describe variables specific to OsmoGbPROXY. +describe variables specific to OsmoGbProxy. .Variables available over control interface [options="header",width="100%",cols="20%,5%,5%,50%,20%"] diff --git a/doc/manuals/chapters/gbproxy-running.adoc b/doc/manuals/chapters/gbproxy-running.adoc index 9182b48..1f6b6a1 100644 --- a/doc/manuals/chapters/gbproxy-running.adoc +++ b/doc/manuals/chapters/gbproxy-running.adoc @@ -1,6 +1,6 @@ -== Running OsmoGbPROXY +== Running OsmoGbProxy -The OsmoGbPROXY executable (`osmo-gbproxy`) offers the following command-line +The OsmoGbProxy executable (`osmo-gbproxy`) offers the following command-line options: diff --git a/doc/manuals/osmogbproxy-usermanual.adoc b/doc/manuals/osmogbproxy-usermanual.adoc index c93ebec..d19bdd4 100644 --- a/doc/manuals/osmogbproxy-usermanual.adoc +++ b/doc/manuals/osmogbproxy-usermanual.adoc @@ -1,6 +1,6 @@ :gfdl-enabled: -OsmoGbPROXY User Manual +OsmoGbProxy User Manual ======================= Harald Welte -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22492 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I7542ac1d5242f1784146de2df7cecaf70fe93c6c Gerrit-Change-Number: 22492 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 18:35:06 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Wed, 27 Jan 2021 18:35:06 +0000 Subject: Change in osmo-sgsn[master]: manuals/gbproxy: Update configuration chapter References: Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22493 ) Change subject: manuals/gbproxy: Update configuration chapter ...................................................................... manuals/gbproxy: Update configuration chapter Change-Id: I01f8d47f9fa384a2528ddf2e6c936ff28d11409e Related: SYS#5115, SYS#5005 --- M doc/manuals/chapters/gbproxy-configuration.adoc 1 file changed, 37 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/93/22493/1 diff --git a/doc/manuals/chapters/gbproxy-configuration.adoc b/doc/manuals/chapters/gbproxy-configuration.adoc index 057d1ca..20b21d6 100644 --- a/doc/manuals/chapters/gbproxy-configuration.adoc +++ b/doc/manuals/chapters/gbproxy-configuration.adoc @@ -1,10 +1,43 @@ == Configuring OsmoGbProxy -TBD. Unfortunately this chapter of the manual still needs to be written. -Osmocom has very limited funding and support resources; Feel free to help -us completing this documentation by contributing with code, documentation -or by supporting the developers financially. +OsmoGbProxy requires very little configuration, most is the configuration of +the NS links. +Most config options specific to OsmoGbProxy are related to SGSN pooling and +telling the proxy which NSE(s) it should use to talk to the SGSN(s). +=== Configure the Network Service (NS) + +A detailed description of the NS configuration can be found in <>. +The following config snippets assume the SGSN(s) (NSEI 101 and 102) are using +IP-SNS and listen on 10.0.1.1:23000 and 10.0.1.2:23000 respectively. + +This would be the NS config for the SGSN(s): + +.Example: NS configuration example (SGSN) +---- +ns + bind udp local + listen 127.0.0.1 23000 <1> + nse 101 <2> + ip-sns 127.0.0.2 23001 <3> + nse 102 + ip-sns 127.0.0.2 23002 +---- +<1> Define the local IP/port from which to connect +<2> Define an NSE with NSEI +<3> Use IP-SNS to connect to the SGSN + +=== Configure an SGSN + +Configuration of a single (non-pooling) SGSN is rather simple. + +.Example: SGSN configuration example +---- +sgsn 101 <1> + name Main SGSN <2> +---- +<1> Each SGSN is identified by its NSEI (same as in the NS configuration) +<2> An SGSN can optionally have a name. If none is set a default name will be used. === SGSN pool support -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22493 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I01f8d47f9fa384a2528ddf2e6c936ff28d11409e Gerrit-Change-Number: 22493 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 18:35:06 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Wed, 27 Jan 2021 18:35:06 +0000 Subject: Change in osmo-sgsn[master]: manuals/gbproxy: Add osmo-bsc MSC pooling chapter from Neels as a base References: Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22494 ) Change subject: manuals/gbproxy: Add osmo-bsc MSC pooling chapter from Neels as a base ...................................................................... manuals/gbproxy: Add osmo-bsc MSC pooling chapter from Neels as a base Related: SYS#5115, SYS#5005 Change-Id: I930f5df847ea6f40d0ee0c75dd25b6dd20e00839 --- A doc/manuals/chapters/gbproxy-sgsnpool.adoc 1 file changed, 213 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/94/22494/1 diff --git a/doc/manuals/chapters/gbproxy-sgsnpool.adoc b/doc/manuals/chapters/gbproxy-sgsnpool.adoc new file mode 100644 index 0000000..923a088 --- /dev/null +++ b/doc/manuals/chapters/gbproxy-sgsnpool.adoc @@ -0,0 +1,213 @@ +== MSC Pooling + +MSC pooling is described in 3GPP TS 23.236 <<3gpp-ts-23-236>>, and is supported +by OsmoBSC since mid 2020. + +The aim of MSC pooling is to distribute load from a BSC across multiple MSCs, +which are equivalent and redundant infrastructure for the same core network. + +The main mechanism for MSC pooling is the TMSI identity, which an MSC hands out +to its attached subscribers. Typically 10 bits of the TMSI are designated as a +Network Resource Identifier (NRI) that identifies the originating MSC, and +allows OsmoBSC to direct a subscriber back to the same MSC instance that +previously negotiated the IMSI Attach procedure. Typically, the full NRI value +range available is divided into N even ranges, where each MSC is assigned one +NRI range. + +Subscribers attaching without a TMSI identity, or those with unknown NRI value, +are evenly distributed across MSC instances. OsmoBSC uses a round-robin +approach to distribute load across all connected MSCs. + +A Paging Response from a subscriber is always returned back to whichever MSC +initiated the Paging, regardless of the Mobile Identity used. + +Finally, a NULL-NRI is a special NRI value that indicates that the MSC wishes +to offload this subscriber to a different MSC. A NULL-NRI is an arbitrary NRI +value that is chosen distinctly for each PLMN served by a BSC, so that a +subscriber can be reassigned within that PLMN. Upon (periodic) Location +Updating, an offloading MSC hands out a NULL-NRI value in the assigned TMSI, +along with a non-broadcast LAI. The subscriber will notice the LAI mismatch, +and immediately re-attempt the attach using the TMSI containing the NULL-NRI. +The BSC recognises the NULL-NRI and redirects the subscriber to one of the +other MSCs. A prerequisite for this to work well is that the particular MSC is +previously marked as not accepting new subscribers, in the BSC's configuration. + +The mechanisms described above make up the NAS node selection function +implemented in the BSC. + +3GPP TS 23.236 also defines that an offloading MSC hands subscriber information +to the newly assigned MSC, which takes place outside the scope of the BSC. + +=== Configuring MSC Pooling + +The NRI ranges assigned to each MSC must match in the BSC and the MSC +configuration. If MSC and BSC had inconsistent NRI value ranges configured, +attached subscribers would be redirected MSC instances that did not perform the +attach, possibly rendering the core network unusable. + +==== Connecting Multiple MSCs + +The `cs7 instance` configuration defines the SCCP addresses to reach the MSCs +at. In addition, each MSC is configured by its own `msc` section in the +configuration. An example osmo-bsc.cfg serving three MSCs: + +---- +cs7 instance 0 + # SCCP address book entries for the three MSCs + sccp-address my-msc-0 + point-code 0.23.0 + sccp-address my-msc-1 + point-code 0.23.1 + sccp-address my-msc-2 + point-code 0.23.2 + +# assign each MSC configuration its remote SCCP address +msc 0 + msc-addr my-msc-0 +msc 1 + msc-addr my-msc-1 +msc 2 + msc-addr my-msc-2 + +# configure NRI value ranges +network + nri bitlen 10 + nri null add 0 +msc 0 + nri add 1 341 +msc 1 + nri add 342 682 +msc 2 + nri add 683 1023 +---- + +==== NRI Value Bit Length + +In OsmoBSC, the NRI value's bit length is freely configurable from 1 to 15 +bits. 3GPP TS 23.236 suggests a typical bit length of 10, which is OsmoBSC's +default. The NRI bit length must be identical across the entire MSC pool. + +Change the NRI value bit length in OsmoBSC's VTY configuration like this: + +---- +network + nri bitlen 10 +---- + +In the TMSI bits, regardless of the NRI bit length, the NRI value always starts +just after the most significant octet of a TMSI (most significant bit at TMSI's +bit 23). + +==== NULL-NRI + +Since OsmoBSC supports serving only one PLMN, NULL-NRI are configured globally. +Even though 3GPP TS 23.236 indicates that there is a single NULL-NRI per PLMN, +OsmoBSC allows configuring multiple NULL-NRI values. + +---- +network + nri null add 0 + nri null add 423 +---- + +==== Assigning NRI Ranges to MSCs + +Each MSC configured in OsmoBSC must be assigned a distinct NRI value range. +Overlapping NRI value ranges will cause failure to serve subscribers. + +NRI values are typically configured in ranges, here dividing a 10bit range +(0..1023) into three equal ranges, while leaving 0 available to be configured +as NULL-NRI: + +---- +msc 0 + nri add 1 341 +msc 1 + nri add 342 684 +msc 2 + nri add 685 1023 +---- + +NRI can also be assigned in single values: + +---- +msc 0 + nri add 23 +---- + +Ranges can be constructed arbitrarily by a sequence of `add` and `del` +configurations, here a contrived example: + +---- +msc 0 + nri add 0 342 + nri del 23 + nri del 42 235 + nri add 1000 1023 +---- + +To view the current NRI config in a running OsmoBSC instance, use the +`show nri` command, here showing the result of the contrived example: + +---- +OsmoBSC(config-msc)# show nri +msc 0 + nri add 0 22 + nri add 24 41 + nri add 236 342 + nri add 1000 1023 +---- + +On the VIEW and ENABLE VTY nodes, `show nri` shows all MSCs: + +---- +OsmoBSC> show nri +msc 0 + nri add 1 341 +msc 1 + nri add 342 684 +msc 2 + nri add 685 1023 +---- + +When configuring overlapping NRI value ranges across MSCs, the telnet VTY warns +about it, and starting OsmoBSC with such a configuration will fail: + +---- +msc 0 + nri add 1 511 +msc 1 + nri add 512 1023 +msc 2 + nri add 500 555 +---- + +This results in: + +---- +$ osmo-bsc +DMSC ERROR msc 2: NRI range [500..555] overlaps between msc 2 and msc 0. For overlaps, msc 0 has higher priority than msc 2 +DMSC ERROR msc 2: NRI range [500..555] overlaps between msc 2 and msc 1. For overlaps, msc 1 has higher priority than msc 2 +---- + +==== MSC Offloading + +To effectively offload a particular MSC, it must be marked as no longer taking +new subscribers in OsmoBSC. This can be achieved in the telnet VTY by: + +---- +msc 0 + no allow-attach +---- + +This MSC will, as long as it is connected, continue to serve subscribers +already attached to it: those that yield an NRI matching this MSC, and those +that are being paged by this MSC. But OsmoBSC will no longer direct new +subscribers to this MSC. + +To re-enable an MSC for attaching new subscribers: + +---- +msc 0 + allow-attach +---- -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22494 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I930f5df847ea6f40d0ee0c75dd25b6dd20e00839 Gerrit-Change-Number: 22494 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 18:35:07 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Wed, 27 Jan 2021 18:35:07 +0000 Subject: Change in osmo-sgsn[master]: manuals/gbproxy: MSC -> SGSN for pooling chapter References: Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22495 ) Change subject: manuals/gbproxy: MSC -> SGSN for pooling chapter ...................................................................... manuals/gbproxy: MSC -> SGSN for pooling chapter Mostly just change the chapter so it makes sense for gbproxy. Some todos are still left Change-Id: I905835c2be7be43fe376fbc9d743107948c7e6d4 Related: SYS#5115, SYS#5005 --- M doc/manuals/chapters/gbproxy-sgsnpool.adoc 1 file changed, 85 insertions(+), 104 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/95/22495/1 diff --git a/doc/manuals/chapters/gbproxy-sgsnpool.adoc b/doc/manuals/chapters/gbproxy-sgsnpool.adoc index 923a088..c600bcf 100644 --- a/doc/manuals/chapters/gbproxy-sgsnpool.adoc +++ b/doc/manuals/chapters/gbproxy-sgsnpool.adoc @@ -1,96 +1,87 @@ -== MSC Pooling +== SGSN Pooling -MSC pooling is described in 3GPP TS 23.236 <<3gpp-ts-23-236>>, and is supported -by OsmoBSC since mid 2020. +SGSN pooling is described in 3GPP TS 23.236 <<3gpp-ts-23-236>>, and is supported +by OsmoGbProxy since early 2021. -The aim of MSC pooling is to distribute load from a BSC across multiple MSCs, +The aim of SGSN pooling is to distribute load from a BSS across multiple SGSNs, which are equivalent and redundant infrastructure for the same core network. -The main mechanism for MSC pooling is the TMSI identity, which an MSC hands out -to its attached subscribers. Typically 10 bits of the TMSI are designated as a -Network Resource Identifier (NRI) that identifies the originating MSC, and -allows OsmoBSC to direct a subscriber back to the same MSC instance that -previously negotiated the IMSI Attach procedure. Typically, the full NRI value -range available is divided into N even ranges, where each MSC is assigned one +The main mechanism for SGSN pooling is the TLLI/P-TMSI, which an SGSN hands out +to its attached subscribers. Typically 10 bits of the P-TMSI are designated as a +Network Resource Identifier (NRI) that identifies the originating SGSN, and +allows OsmoGbProxy to direct a subscriber back to the same SGSN instance that +previously negotiated the Attach procedure. Typically, the full NRI value +range available is divided into N even ranges, where each SGSN is assigned one NRI range. -Subscribers attaching without a TMSI identity, or those with unknown NRI value, -are evenly distributed across MSC instances. OsmoBSC uses a round-robin -approach to distribute load across all connected MSCs. +Subscribers attaching without a TLLI, or those with unknown NRI value, +are evenly distributed across SGSN instances. OsmoGbProxy uses a hash-based +approach to distribute load across all connected SGSNs. -A Paging Response from a subscriber is always returned back to whichever MSC +A Paging Response from a subscriber is always returned back to whichever SGSN initiated the Paging, regardless of the Mobile Identity used. -Finally, a NULL-NRI is a special NRI value that indicates that the MSC wishes -to offload this subscriber to a different MSC. A NULL-NRI is an arbitrary NRI -value that is chosen distinctly for each PLMN served by a BSC, so that a +Finally, a NULL-NRI is a special NRI value that indicates that the SGSN wishes +to offload this subscriber to a different SGSN. A NULL-NRI is an arbitrary NRI +value that is chosen distinctly for each PLMN served by a BSS, so that a subscriber can be reassigned within that PLMN. Upon (periodic) Location -Updating, an offloading MSC hands out a NULL-NRI value in the assigned TMSI, +Updating, an offloading SGSN hands out a NULL-NRI value in the assigned TLLI, along with a non-broadcast LAI. The subscriber will notice the LAI mismatch, -and immediately re-attempt the attach using the TMSI containing the NULL-NRI. -The BSC recognises the NULL-NRI and redirects the subscriber to one of the -other MSCs. A prerequisite for this to work well is that the particular MSC is -previously marked as not accepting new subscribers, in the BSC's configuration. +and immediately re-attempt the attach using the TLLI containing the NULL-NRI. +OsmoGbProxy recognises the NULL-NRI and redirects the subscriber to one of the +other SGSNs. A prerequisite for this to work well is that the particular SGSN is +previously marked as not accepting new subscribers, in OsmoGbProxy's configuration. The mechanisms described above make up the NAS node selection function -implemented in the BSC. +implemented in OsmoGbProxy. -3GPP TS 23.236 also defines that an offloading MSC hands subscriber information -to the newly assigned MSC, which takes place outside the scope of the BSC. +3GPP TS 23.236 also defines that an offloading SGSN hands subscriber information +to the newly assigned SGSN, which takes place outside the scope of OsmoGbProxy. -=== Configuring MSC Pooling +=== Configuring SGSN Pooling -The NRI ranges assigned to each MSC must match in the BSC and the MSC -configuration. If MSC and BSC had inconsistent NRI value ranges configured, -attached subscribers would be redirected MSC instances that did not perform the +The NRI ranges assigned to each SGSN must match in the OsmoGbProxy and the SGSN +configuration. If inconsistent NRI value ranges are configured, +attached subscribers would be redirected to SGSN instances that did not perform the attach, possibly rendering the core network unusable. -==== Connecting Multiple MSCs - -The `cs7 instance` configuration defines the SCCP addresses to reach the MSCs -at. In addition, each MSC is configured by its own `msc` section in the -configuration. An example osmo-bsc.cfg serving three MSCs: +==== Connecting Multiple SGSNs ---- -cs7 instance 0 - # SCCP address book entries for the three MSCs - sccp-address my-msc-0 - point-code 0.23.0 - sccp-address my-msc-1 - point-code 0.23.1 - sccp-address my-msc-2 - point-code 0.23.2 - -# assign each MSC configuration its remote SCCP address -msc 0 - msc-addr my-msc-0 -msc 1 - msc-addr my-msc-1 -msc 2 - msc-addr my-msc-2 - +# Configure the Network Service +ns + bind udp sgsn + listen 10.0.0.1 23000 + nse 1 + ip-sns 10.0.1.1 23000 + ip-sns 10.0.1.1 23001 + nse 2 + ip-sns 10.0.1.2 23000 + nse 3 + ip-sns 10.0.1.3 23000 # configure NRI value ranges -network +gbproxy nri bitlen 10 nri null add 0 -msc 0 +sgsn 1 nri add 1 341 -msc 1 +sgsn 2 nri add 342 682 -msc 2 +sgsn 3 nri add 683 1023 ---- ==== NRI Value Bit Length -In OsmoBSC, the NRI value's bit length is freely configurable from 1 to 15 -bits. 3GPP TS 23.236 suggests a typical bit length of 10, which is OsmoBSC's -default. The NRI bit length must be identical across the entire MSC pool. +In OsmGbProxy, the NRI value's bit length is freely configurable from 0 to 15 +bits. 3GPP TS 23.236 suggests a typical bit length of 10. Setting the length +to 0 disables SGSN pooling, this is also the default. +The NRI bit length must be identical across the entire SGSN pool. -Change the NRI value bit length in OsmoBSC's VTY configuration like this: +Change the NRI value bit length in OsmoGbProxy's VTY configuration like this: ---- -network +gbproxy nri bitlen 10 ---- @@ -100,9 +91,9 @@ ==== NULL-NRI -Since OsmoBSC supports serving only one PLMN, NULL-NRI are configured globally. +Since OsmoGbProxy supports serving only one PLMN, NULL-NRI are configured globally. Even though 3GPP TS 23.236 indicates that there is a single NULL-NRI per PLMN, -OsmoBSC allows configuring multiple NULL-NRI values. +OsmoGbProxy allows configuring multiple NULL-NRI values. ---- network @@ -110,9 +101,9 @@ nri null add 423 ---- -==== Assigning NRI Ranges to MSCs +==== Assigning NRI Ranges to SGSNs -Each MSC configured in OsmoBSC must be assigned a distinct NRI value range. +Each SGSN configured in OsmoGbProxy must be assigned a distinct NRI value range. Overlapping NRI value ranges will cause failure to serve subscribers. NRI values are typically configured in ranges, here dividing a 10bit range @@ -120,18 +111,18 @@ as NULL-NRI: ---- -msc 0 +sgsn nsei 1 nri add 1 341 -msc 1 +sgsn nsei 2 nri add 342 684 -msc 2 +sgsn nsei 3 nri add 685 1023 ---- NRI can also be assigned in single values: ---- -msc 0 +sgsn nsei 1 nri add 23 ---- @@ -139,75 +130,65 @@ configurations, here a contrived example: ---- -msc 0 +sgsn nsei 1 nri add 0 342 nri del 23 nri del 42 235 nri add 1000 1023 ---- -To view the current NRI config in a running OsmoBSC instance, use the -`show nri` command, here showing the result of the contrived example: +On the VIEW and ENABLE VTY nodes, `show nri all` shows all SGSNs: ---- -OsmoBSC(config-msc)# show nri -msc 0 - nri add 0 22 - nri add 24 41 - nri add 236 342 - nri add 1000 1023 ----- - -On the VIEW and ENABLE VTY nodes, `show nri` shows all MSCs: - ----- -OsmoBSC> show nri -msc 0 +OsmoGbProxy> show nri all +sgsn nsei 1 nri add 1 341 -msc 1 +sgsn nsei 2 nri add 342 684 -msc 2 +sgsn nsei 3 nri add 685 1023 ---- -When configuring overlapping NRI value ranges across MSCs, the telnet VTY warns -about it, and starting OsmoBSC with such a configuration will fail: +When configuring overlapping NRI value ranges across SGSNs, the telnet VTY warns +about it, and starting OsmoGbProxy with such a configuration will fail: ---- -msc 0 +sgsn nsei 1 nri add 1 511 -msc 1 +sgsn nsei 2 nri add 512 1023 -msc 2 +sgsn nsei 3 nri add 500 555 ---- This results in: ---- -$ osmo-bsc -DMSC ERROR msc 2: NRI range [500..555] overlaps between msc 2 and msc 0. For overlaps, msc 0 has higher priority than msc 2 -DMSC ERROR msc 2: NRI range [500..555] overlaps between msc 2 and msc 1. For overlaps, msc 1 has higher priority than msc 2 +$ osmo-gbproxy +% Warning: NSE(00003/SGSN): NRI range [500..555] overlaps between NSE 00003 and NSE 00001. For overlaps, NSE 00001 has higher priority than NSE 00003 +% Warning: NSE(00003/SGSN): NRI range [500..555] overlaps between NSE 00003 and NSE 00002. For overlaps, NSE 00002 has higher priority than NSE 00003 ---- -==== MSC Offloading +==== SGSN Offloading -To effectively offload a particular MSC, it must be marked as no longer taking -new subscribers in OsmoBSC. This can be achieved in the telnet VTY by: +To effectively offload a particular SGSN, it must be marked as no longer taking +new subscribers in OsmoGbProxy. This can be achieved in the telnet VTY by: ---- -msc 0 +sgsn nsei 1 no allow-attach ---- -This MSC will, as long as it is connected, continue to serve subscribers -already attached to it: those that yield an NRI matching this MSC, and those -that are being paged by this MSC. But OsmoBSC will no longer direct new -subscribers to this MSC. +This SGSN will, as long as it is connected, continue to serve subscribers +already attached to it: those that yield an NRI matching this SGSN, and those +that are being paged by this SGSN. But OsmoGbProxy will no longer direct new +subscribers to this SGSN. -To re-enable an MSC for attaching new subscribers: +TODO: Is paging response relevant for SGSN? + +To re-enable an SGSN for attaching new subscribers: ---- -msc 0 +sgsn nsei 1 allow-attach ---- -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22495 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I905835c2be7be43fe376fbc9d743107948c7e6d4 Gerrit-Change-Number: 22495 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 18:35:07 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Wed, 27 Jan 2021 18:35:07 +0000 Subject: Change in osmo-sgsn[master]: manuals/gbproxy: Move pooling to separate chapter References: Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22496 ) Change subject: manuals/gbproxy: Move pooling to separate chapter ...................................................................... manuals/gbproxy: Move pooling to separate chapter Change-Id: Ie2ad652c8261ce56cb2ed1a6f16a81486ccdf063 Related: SYS#5115, SYS#5005 --- M doc/manuals/chapters/gbproxy-configuration.adoc M doc/manuals/chapters/gbproxy-sgsnpool.adoc 2 files changed, 25 insertions(+), 24 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/96/22496/1 diff --git a/doc/manuals/chapters/gbproxy-configuration.adoc b/doc/manuals/chapters/gbproxy-configuration.adoc index 20b21d6..cde3f44 100644 --- a/doc/manuals/chapters/gbproxy-configuration.adoc +++ b/doc/manuals/chapters/gbproxy-configuration.adoc @@ -39,27 +39,3 @@ <1> Each SGSN is identified by its NSEI (same as in the NS configuration) <2> An SGSN can optionally have a name. If none is set a default name will be used. -=== SGSN pool support - -In a SGSN pool, osmo-gbproxy is facing the problem of dividing the downlink -capacity of a cell towards the SGSN. The BSS advertises the per-BVC capacity -by means of the BSSGP FLOW-CONTROL-BVC messages, but as there are multiple -SGSN in a pool, they all have to share / divide that total capacity. - -By default, osmo-gbproxy advertises the full capacity to _each_ of the SGSN -pool members, which results in significant over-provisioning and can lead to -overload situations. - -The administrator can configure the _percentage_ of the overall BSS-advertised -capacity that shall be reported to each pool member SGSN using the -`pool bvc-flow-control-ratio <1-100>` configuration command. - -A setting of 100 means that each pool member is informed of 100% of the -BSS side capacity. - -A setting of 25 means that each pool member is informed of 25% of the -BSS side capacity. This would make most sense in a set-up with four -SGSN of equal share. - -More complex capacity division schemes are so far not supported by -osmo-gbproxy. diff --git a/doc/manuals/chapters/gbproxy-sgsnpool.adoc b/doc/manuals/chapters/gbproxy-sgsnpool.adoc index c600bcf..61806af 100644 --- a/doc/manuals/chapters/gbproxy-sgsnpool.adoc +++ b/doc/manuals/chapters/gbproxy-sgsnpool.adoc @@ -192,3 +192,28 @@ sgsn nsei 1 allow-attach ---- + +==== Traffic allocation + +In a SGSN pool, osmo-gbproxy is facing the problem of dividing the downlink +capacity of a cell towards the SGSN. The BSS advertises the per-BVC capacity +by means of the BSSGP FLOW-CONTROL-BVC messages, but as there are multiple +SGSN in a pool, they all have to share / divide that total capacity. + +By default, osmo-gbproxy advertises the full capacity to _each_ of the SGSN +pool members, which results in significant over-provisioning and can lead to +overload situations. + +The administrator can configure the _percentage_ of the overall BSS-advertised +capacity that shall be reported to each pool member SGSN using the +`pool bvc-flow-control-ratio <1-100>` configuration command. + +A setting of 100 means that each pool member is informed of 100% of the +BSS side capacity. + +A setting of 25 means that each pool member is informed of 25% of the +BSS side capacity. This would make most sense in a set-up with four +SGSN of equal share. + +More complex capacity division schemes are so far not supported by +osmo-gbproxy. -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22496 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ie2ad652c8261ce56cb2ed1a6f16a81486ccdf063 Gerrit-Change-Number: 22496 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 18:35:10 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 27 Jan 2021 18:35:10 +0000 Subject: Change in osmo-pcu[master]: Introduce NACC support In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22385 ) Change subject: Introduce NACC support ...................................................................... Patch Set 11: This change is ready for review. -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22385 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Id35f40d05f3e081f32fddbf1fa34cb338db452ca Gerrit-Change-Number: 22385 Gerrit-PatchSet: 11 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-CC: laforge Gerrit-Comment-Date: Wed, 27 Jan 2021 18:35:10 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 18:38:00 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Wed, 27 Jan 2021 18:38:00 +0000 Subject: Change in libgtpnl[master]: configure.ac: set -std=gnu11 In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libgtpnl/+/22464 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libgtpnl/+/22464 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libgtpnl Gerrit-Branch: master Gerrit-Change-Id: Iea60698b4cb0f9c04a6f75cc4ca2ea5fbb84bae8 Gerrit-Change-Number: 22464 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Comment-Date: Wed, 27 Jan 2021 18:38:00 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 18:38:03 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Wed, 27 Jan 2021 18:38:03 +0000 Subject: Change in gapk[master]: configure.ac: set -std=gnu11 In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/gapk/+/22463 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/gapk/+/22463 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: gapk Gerrit-Branch: master Gerrit-Change-Id: I7d4c4e1f3663e448c5d044ccb4bbd3e813898f23 Gerrit-Change-Number: 22463 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Comment-Date: Wed, 27 Jan 2021 18:38:03 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 18:38:05 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Wed, 27 Jan 2021 18:38:05 +0000 Subject: Change in libtelnet[master]: configure.ac: set -std=gnu11 In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libtelnet/+/22468 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libtelnet/+/22468 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libtelnet Gerrit-Branch: master Gerrit-Change-Id: Ief41cc4fc2e3d763a4b84f427496a5611f3c90c5 Gerrit-Change-Number: 22468 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Comment-Date: Wed, 27 Jan 2021 18:38:05 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 18:38:08 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Wed, 27 Jan 2021 18:38:08 +0000 Subject: Change in libosmo-netif[master]: configure.ac: set -std=gnu11 In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-netif/+/22466 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmo-netif/+/22466 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-Change-Id: Ia646e72ce58de331c325b75e94fa1539acd5930b Gerrit-Change-Number: 22466 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Comment-Date: Wed, 27 Jan 2021 18:38:08 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 18:38:52 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Wed, 27 Jan 2021 18:38:52 +0000 Subject: Change in libgtpnl[master]: configure.ac: set -std=gnu11 In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libgtpnl/+/22464 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... Patch Set 1: -Code-Review -- To view, visit https://gerrit.osmocom.org/c/libgtpnl/+/22464 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libgtpnl Gerrit-Branch: master Gerrit-Change-Id: Iea60698b4cb0f9c04a6f75cc4ca2ea5fbb84bae8 Gerrit-Change-Number: 22464 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Comment-Date: Wed, 27 Jan 2021 18:38:52 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 18:39:22 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Wed, 27 Jan 2021 18:39:22 +0000 Subject: Change in libosmo-abis[master]: configure.ac: set -std=gnu11 In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-abis/+/22465 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/22465 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Change-Id: Ib920af17b9a0b5d6ea5f4db33faab3a2dcf8fbbe Gerrit-Change-Number: 22465 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Comment-Date: Wed, 27 Jan 2021 18:39:22 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 18:39:42 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Wed, 27 Jan 2021 18:39:42 +0000 Subject: Change in gapk[master]: configure.ac: set -std=gnu11 In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/gapk/+/22463 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... Patch Set 1: -Code-Review -- To view, visit https://gerrit.osmocom.org/c/gapk/+/22463 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: gapk Gerrit-Branch: master Gerrit-Change-Id: I7d4c4e1f3663e448c5d044ccb4bbd3e813898f23 Gerrit-Change-Number: 22463 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Comment-Date: Wed, 27 Jan 2021 18:39:42 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 18:40:49 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Wed, 27 Jan 2021 18:40:49 +0000 Subject: Change in osmo-pcu[master]: configure.ac: set -std=gnu11 In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22482 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22482 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Iac2c0b14252c46aec2b00d46800fcc9f87a5a586 Gerrit-Change-Number: 22482 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Comment-Date: Wed, 27 Jan 2021 18:40:49 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 18:40:54 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Wed, 27 Jan 2021 18:40:54 +0000 Subject: Change in osmo-iuh[master]: configure.ac: set -std=gnu11 In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-iuh/+/22478 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-iuh/+/22478 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: master Gerrit-Change-Id: I4bf2f1cb724bc3e3c56d5a5c1270bb152b0e6e0a Gerrit-Change-Number: 22478 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Comment-Date: Wed, 27 Jan 2021 18:40:54 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 18:40:58 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Wed, 27 Jan 2021 18:40:58 +0000 Subject: Change in osmo-msc[master]: configure.ac: set -std=gnu11 In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/22480 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/22480 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: Ie93915f06a8907a80b4f081a00c1cde395015595 Gerrit-Change-Number: 22480 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Comment-Date: Wed, 27 Jan 2021 18:40:58 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 18:41:00 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Wed, 27 Jan 2021 18:41:00 +0000 Subject: Change in osmo-bts[master]: configure.ac: set -std=gnu11 In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/22471 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22471 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I234394b2c8bec2a3920fd57bee238b99e4e60c22 Gerrit-Change-Number: 22471 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Comment-Date: Wed, 27 Jan 2021 18:41:00 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 18:41:02 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Wed, 27 Jan 2021 18:41:02 +0000 Subject: Change in osmo-hlr[master]: configure.ac: set -std=gnu11 In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-hlr/+/22477 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/22477 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-Change-Id: I5ea5365338248e29591a40ec1e19db95f8ae6877 Gerrit-Change-Number: 22477 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Comment-Date: Wed, 27 Jan 2021 18:41:02 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 18:41:12 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Wed, 27 Jan 2021 18:41:12 +0000 Subject: Change in osmo-mgw[master]: configure.ac: set -std=gnu11 In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/22479 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/22479 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ic2a1f20be65810a86cdc36aaa459819146a0bfcc Gerrit-Change-Number: 22479 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Comment-Date: Wed, 27 Jan 2021 18:41:12 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 18:41:22 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Wed, 27 Jan 2021 18:41:22 +0000 Subject: Change in osmo-sysmon[master]: configure.ac: set -std=gnu11 In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sysmon/+/22485 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sysmon/+/22485 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sysmon Gerrit-Branch: master Gerrit-Change-Id: I708fe349fd506613af0e62a62bf6cbe611a06eef Gerrit-Change-Number: 22485 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Comment-Date: Wed, 27 Jan 2021 18:41:22 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 18:41:32 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Wed, 27 Jan 2021 18:41:32 +0000 Subject: Change in libosmo-sccp[master]: configure.ac: set -std=gnu11 In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/22467 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/22467 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: Iabe929a29a3c7fed2726329215097f7254cf20ca Gerrit-Change-Number: 22467 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Comment-Date: Wed, 27 Jan 2021 18:41:32 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 18:41:42 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Wed, 27 Jan 2021 18:41:42 +0000 Subject: Change in osmo-pcap[master]: configure.ac: set -std=gnu11 In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcap/+/22481 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcap/+/22481 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcap Gerrit-Branch: master Gerrit-Change-Id: I52c86f461edd96d810fb85a60c68be581caa1799 Gerrit-Change-Number: 22481 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Comment-Date: Wed, 27 Jan 2021 18:41:42 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 18:49:10 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 27 Jan 2021 18:49:10 +0000 Subject: Change in libusrp[master]: configure.ac: set -std=gnu11 In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libusrp/+/22469 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libusrp/+/22469 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libusrp Gerrit-Branch: master Gerrit-Change-Id: I9245df7569f0fed936d5e1a1783fc40203cecba1 Gerrit-Change-Number: 22469 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 27 Jan 2021 18:49:10 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 18:49:25 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 27 Jan 2021 18:49:25 +0000 Subject: Change in osmo-e1-recorder[master]: configure.ac: set -std=gnu11 In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1-recorder/+/22473 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-recorder/+/22473 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1-recorder Gerrit-Branch: master Gerrit-Change-Id: I19674944cea499d450571a7c6e47ab5676dc4b21 Gerrit-Change-Number: 22473 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 27 Jan 2021 18:49:25 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 18:49:38 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 27 Jan 2021 18:49:38 +0000 Subject: Change in osmo-cbc[master]: configure.ac: set -std=gnu11 In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22472 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22472 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: I8fe45ab98a2a000a428a17d586f4dd4f1ba5f2d6 Gerrit-Change-Number: 22472 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 27 Jan 2021 18:49:38 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 18:49:56 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 27 Jan 2021 18:49:56 +0000 Subject: Change in osmo-e1d[master]: configure.ac: set -std=gnu11 In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/22474 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/22474 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: Ib2356c2158b5aaa27cb4692de0f92d09d0bfca06 Gerrit-Change-Number: 22474 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 27 Jan 2021 18:49:56 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 18:50:07 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 27 Jan 2021 18:50:07 +0000 Subject: Change in osmo-remsim[master]: configure.ac: set -std=gnu11 In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-remsim/+/22483 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-remsim/+/22483 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-remsim Gerrit-Branch: master Gerrit-Change-Id: I1c3682bfd50cfb43df041b6ca9a1cc7472a862dd Gerrit-Change-Number: 22483 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 27 Jan 2021 18:50:07 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 18:50:44 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 27 Jan 2021 18:50:44 +0000 Subject: Change in osmo-trx[master]: configure.ac: set -std=gnu11 In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/22486 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/22486 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: Ie95876d1d2ebf31ff588999d85584f6981522fa8 Gerrit-Change-Number: 22486 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 27 Jan 2021 18:50:44 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 18:56:19 2021 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Wed, 27 Jan 2021 18:56:19 +0000 Subject: Change in osmo-e1d[master]: configure.ac: set -std=gnu11 In-Reply-To: References: Message-ID: tnt has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/22474 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/22474 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: Ib2356c2158b5aaa27cb4692de0f92d09d0bfca06 Gerrit-Change-Number: 22474 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-Comment-Date: Wed, 27 Jan 2021 18:56:19 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 20:10:29 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 27 Jan 2021 20:10:29 +0000 Subject: Change in libosmocore[master]: ns2: remove api call gprs_ns2_dynamic_create_nse References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22498 ) Change subject: ns2: remove api call gprs_ns2_dynamic_create_nse ...................................................................... ns2: remove api call gprs_ns2_dynamic_create_nse The call was only introduced as workaround for the first implementation of vty. There is no need for this anymore. The configuration can just add "accept-ipaccess" to the bind to allow creation of dynamic ipaccess NSE. Change-Id: Ie924ead6da17657f3da334068c8ada82c8845495 --- M include/osmocom/gprs/gprs_ns2.h M src/gb/gprs_ns2.c M src/gb/gprs_ns2_internal.h 3 files changed, 1 insertion(+), 17 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/98/22498/1 diff --git a/include/osmocom/gprs/gprs_ns2.h b/include/osmocom/gprs/gprs_ns2.h index 24f45c9..042e19b 100644 --- a/include/osmocom/gprs/gprs_ns2.h +++ b/include/osmocom/gprs/gprs_ns2.h @@ -142,7 +142,6 @@ /* instance */ struct gprs_ns2_inst *gprs_ns2_instantiate(void *ctx, osmo_prim_cb cb, void *cb_data); void gprs_ns2_free(struct gprs_ns2_inst *inst); -int gprs_ns2_dynamic_create_nse(struct gprs_ns2_inst *nsi, bool create_nse); /* Entrypoint for primitives from the NS USER */ int gprs_ns2_recv_prim(struct gprs_ns2_inst *nsi, struct osmo_prim_hdr *oph); diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c index 7e273fb..be35513 100644 --- a/src/gb/gprs_ns2.c +++ b/src/gb/gprs_ns2.c @@ -874,7 +874,7 @@ if (bind->ll != GPRS_NS2_LL_UDP || dialect != GPRS_NS2_DIALECT_IPACCESS) return NS2_CS_SKIPPED; - if (!bind->nsi->create_nse || !bind->accept_ipaccess) + if (!bind->accept_ipaccess) return NS2_CS_SKIPPED; nse = gprs_ns2_create_nse(bind->nsi, nsei, bind->ll, dialect); @@ -1208,18 +1208,6 @@ talloc_free(nsi); } -/*! Configure whether a NS Instance should dynamically create NSEs based on incoming traffic. - * \param nsi the instance to modify - * \param create_nse if NSE can be created on receiving package. SGSN set this. - * \return 0 on success; negative on error - */ -int gprs_ns2_dynamic_create_nse(struct gprs_ns2_inst *nsi, bool create_nse) -{ - nsi->create_nse = create_nse; - - return 0; -} - /*! Start the NS-ALIVE FSM in all NS-VCs of given NSE. * \param[in] nse NS Entity in whihc to start NS-ALIVE FSMs */ void gprs_ns2_start_alive_all_nsvcs(struct gprs_ns2_nse *nse) diff --git a/src/gb/gprs_ns2_internal.h b/src/gb/gprs_ns2_internal.h index 027071d..0574cb2 100644 --- a/src/gb/gprs_ns2_internal.h +++ b/src/gb/gprs_ns2_internal.h @@ -108,9 +108,6 @@ /*! linked lists of all NSVC in this instance */ struct llist_head nse; - /*! create dynamic NSE on receiving packages */ - bool create_nse; - uint16_t timeout[NS_TIMERS_COUNT]; /*! workaround for rate counter until rate counter accepts char str as index */ -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22498 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie924ead6da17657f3da334068c8ada82c8845495 Gerrit-Change-Number: 22498 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 20:10:30 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 27 Jan 2021 20:10:30 +0000 Subject: Change in osmo-sgsn[master]: follow libosmocore/gprs_ns2 API changes of GPRS enums References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22499 ) Change subject: follow libosmocore/gprs_ns2 API changes of GPRS enums ...................................................................... follow libosmocore/gprs_ns2 API changes of GPRS enums All gprs_ns2 enums have now GPRS_NS2 as prefix. API change which must be synchronized with libosmocore Depends-on: I548ff12f7277cbb7e1a630a3dc02b738ce89be72 (libosmocore) Change-Id: I1af704cdd62ddaff4304479b837dc185b80d7dd6 --- M src/gbproxy/gb_proxy.c M src/sgsn/gprs_gb.c 2 files changed, 20 insertions(+), 20 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/99/22499/1 diff --git a/src/gbproxy/gb_proxy.c b/src/gbproxy/gb_proxy.c index 1dc3114..1d29b64 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -168,7 +168,7 @@ if (gprs_gb_parse_tlli(msgb_data(msg), msgb_length(msg), &tlli) == 1) nsp.u.unitdata.link_selector = tlli; - osmo_prim_init(&nsp.oph, SAP_NS, PRIM_NS_UNIT_DATA, + osmo_prim_init(&nsp.oph, SAP_NS, GPRS_NS2_PRIM_UNIT_DATA, PRIM_OP_REQUEST, msg); rc = gprs_ns2_recv_prim(nsi, &nsp.oph); /* FIXME: We need a counter group for gbproxy_nse */ @@ -1279,7 +1279,7 @@ nsp.bvci = msgb_bvci(msg); nsp.nsei = msgb_nsei(msg); - osmo_prim_init(&nsp.oph, SAP_NS, PRIM_NS_UNIT_DATA, PRIM_OP_REQUEST, msg); + osmo_prim_init(&nsp.oph, SAP_NS, GPRS_NS2_PRIM_UNIT_DATA, PRIM_OP_REQUEST, msg); rc = gprs_ns2_recv_prim(nsi, &nsp.oph); return rc; @@ -1321,13 +1321,13 @@ } /* TODO: What about handling: - * NS_AFF_CAUSE_VC_FAILURE, - NS_AFF_CAUSE_VC_RECOVERY, - NS_AFF_CAUSE_FAILURE, - NS_AFF_CAUSE_RECOVERY, + * GPRS_NS2_AFF_CAUSE_VC_FAILURE, + GPRS_NS2_AFF_CAUSE_VC_RECOVERY, + GPRS_NS2_AFF_CAUSE_FAILURE, + GPRS_NS2_AFF_CAUSE_RECOVERY, osmocom own causes - NS_AFF_CAUSE_SNS_CONFIGURED, - NS_AFF_CAUSE_SNS_FAILURE, + GPRS_NS2_AFF_CAUSE_SNS_CONFIGURED, + GPRS_NS2_AFF_CAUSE_SNS_FAILURE, */ void gprs_ns_prim_status_cb(struct gbproxy_config *cfg, struct osmo_gprs_ns2_prim *nsp) @@ -1340,11 +1340,11 @@ struct gbproxy_nse *sgsn_nse; switch (nsp->u.status.cause) { - case NS_AFF_CAUSE_SNS_FAILURE: - case NS_AFF_CAUSE_SNS_CONFIGURED: + case GPRS_NS2_AFF_CAUSE_SNS_FAILURE: + case GPRS_NS2_AFF_CAUSE_SNS_CONFIGURED: break; - case NS_AFF_CAUSE_RECOVERY: + case GPRS_NS2_AFF_CAUSE_RECOVERY: LOGP(DGPRS, LOGL_NOTICE, "NS-NSE %d became available\n", nsp->nsei); sgsn_nse = gbproxy_nse_by_nsei(cfg, nsp->nsei, NSE_F_SGSN); if (sgsn_nse) { @@ -1354,7 +1354,7 @@ osmo_fsm_inst_dispatch(bvc->fi, BSSGP_BVCFSM_E_REQ_RESET, &cause); } break; - case NS_AFF_CAUSE_FAILURE: + case GPRS_NS2_AFF_CAUSE_FAILURE: #if 0 if (gbproxy_is_sgsn_nsei(cfg, nsp->nsei)) { /* sgsn */ @@ -1408,7 +1408,7 @@ } switch (oph->primitive) { - case PRIM_NS_UNIT_DATA: + case GPRS_NS2_PRIM_UNIT_DATA: /* hand the message into the BSSGP implementation */ msgb_bssgph(oph->msg) = oph->msg->l3h; @@ -1420,7 +1420,7 @@ rc = gbprox_rcvmsg(cfg, oph->msg); msgb_free(oph->msg); break; - case PRIM_NS_STATUS: + case GPRS_NS2_PRIM_STATUS: gprs_ns_prim_status_cb(cfg, nsp); break; default: diff --git a/src/sgsn/gprs_gb.c b/src/sgsn/gprs_gb.c index c7d5c28..2585d6d 100644 --- a/src/sgsn/gprs_gb.c +++ b/src/sgsn/gprs_gb.c @@ -114,17 +114,17 @@ struct osmo_gprs_ns2_prim nsp = {}; nsp.nsei = msgb_nsei(msg); nsp.bvci = msgb_bvci(msg); - osmo_prim_init(&nsp.oph, SAP_NS, PRIM_NS_UNIT_DATA, PRIM_OP_REQUEST, msg); + osmo_prim_init(&nsp.oph, SAP_NS, GPRS_NS2_PRIM_UNIT_DATA, PRIM_OP_REQUEST, msg); return gprs_ns2_recv_prim(nsi, &nsp.oph); } void gprs_ns_prim_status_cb(struct osmo_gprs_ns2_prim *nsp) { switch (nsp->u.status.cause) { - case NS_AFF_CAUSE_SNS_CONFIGURED: + case GPRS_NS2_AFF_CAUSE_SNS_CONFIGURED: LOGP(DGPRS, LOGL_NOTICE, "NS-E %d SNS configured.\n", nsp->nsei); break; - case NS_AFF_CAUSE_RECOVERY: + case GPRS_NS2_AFF_CAUSE_RECOVERY: LOGP(DGPRS, LOGL_NOTICE, "NS-E %d became available\n", nsp->nsei); /* workaround for broken BSS which doesn't respond correct to BSSGP status message. * Sent a BSSGP Reset when a persistent NSVC comes up for the first time. */ @@ -135,7 +135,7 @@ bssgp_tx_bvc_reset2(&bctx, BVCI_SIGNALLING, BSSGP_CAUSE_EQUIP_FAIL, false); } break; - case NS_AFF_CAUSE_FAILURE: + case GPRS_NS2_AFF_CAUSE_FAILURE: LOGP(DGPRS, LOGL_NOTICE, "NS-E %d became unavailable\n", nsp->nsei); break; default: @@ -164,7 +164,7 @@ } switch (oph->primitive) { - case PRIM_NS_UNIT_DATA: + case GPRS_NS2_PRIM_UNIT_DATA: /* hand the message into the BSSGP implementation */ /* add required msg fields for Gb layer */ msgb_bssgph(oph->msg) = oph->msg->l3h; @@ -172,7 +172,7 @@ msgb_nsei(oph->msg) = nsp->nsei; rc = bssgp_rcvmsg(oph->msg); break; - case PRIM_NS_STATUS: + case GPRS_NS2_PRIM_STATUS: gprs_ns_prim_status_cb(nsp); break; default: -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22499 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I1af704cdd62ddaff4304479b837dc185b80d7dd6 Gerrit-Change-Number: 22499 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 20:10:31 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 27 Jan 2021 20:10:31 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: follow gprs_ns2 API vty changes References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22500 ) Change subject: gbproxy: follow gprs_ns2 API vty changes ...................................................................... gbproxy: follow gprs_ns2 API vty changes The gprs_ns2_vty2 has been renamed to gprs_ns2_vty. The old vty has been complete dropped. API change which must be synchronized with libosmocore Depends-on: I8c3f2afecc74b78f7f914f7dce166cbcb63444eb (libosmocore) Change-Id: If5bd6b86e130772e6c93d640b0c637985416136d --- M src/gbproxy/gb_proxy_main.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/00/22500/1 diff --git a/src/gbproxy/gb_proxy_main.c b/src/gbproxy/gb_proxy_main.c index 37afb5e..4608ab9 100644 --- a/src/gbproxy/gb_proxy_main.c +++ b/src/gbproxy/gb_proxy_main.c @@ -289,7 +289,7 @@ exit(1); } - gprs_ns2_vty2_init(gbcfg->nsi); + gprs_ns2_vty_init(gbcfg->nsi); logging_vty_add_deprecated_subsys(tall_sgsn_ctx, "bssgp"); gprs_ns2_dynamic_create_nse(gbcfg->nsi, true); -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22500 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: If5bd6b86e130772e6c93d640b0c637985416136d Gerrit-Change-Number: 22500 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 20:10:31 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 27 Jan 2021 20:10:31 +0000 Subject: Change in osmo-sgsn[master]: sgsn: migrate to the new gprs_ns2_vty configuration References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22501 ) Change subject: sgsn: migrate to the new gprs_ns2_vty configuration ...................................................................... sgsn: migrate to the new gprs_ns2_vty configuration Change the whole vty configuration for NS to be more flexible and support more setups. Old configuration are invalid. API change which must be synchronized with libosmocore Depends-on: I8c3f2afecc74b78f7f914f7dce166cbcb63444eb (libosmocore) Change-Id: Ie9306ab4d4738c2c57a69987086e22771b30657e --- M TODO-RELEASE M doc/examples/osmo-sgsn/osmo-sgsn-accept-all.cfg M doc/examples/osmo-sgsn/osmo-sgsn.cfg M doc/examples/osmo-sgsn/osmo-sgsn_custom-sccp.cfg M src/sgsn/sgsn_main.c 5 files changed, 11 insertions(+), 21 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/01/22501/1 diff --git a/TODO-RELEASE b/TODO-RELEASE index 1e409b5..5514897 100644 --- a/TODO-RELEASE +++ b/TODO-RELEASE @@ -1,3 +1,4 @@ #component what description / commit summary line manual needs common chapter cs7-config.adoc, vty_cpu_sched.adoc from osmo-gsm-manuals > 0.3.0 configure.ac libosmocore depend on next released libosmocore after 1.4.x with hashtable support +sgsn vty/config change the configuration of the vty config. old configuration are invalid. diff --git a/doc/examples/osmo-sgsn/osmo-sgsn-accept-all.cfg b/doc/examples/osmo-sgsn/osmo-sgsn-accept-all.cfg index 85112f4..7abe7b3 100644 --- a/doc/examples/osmo-sgsn/osmo-sgsn-accept-all.cfg +++ b/doc/examples/osmo-sgsn/osmo-sgsn-accept-all.cfg @@ -21,9 +21,9 @@ timer tns-test 30 timer tns-alive 3 timer tns-alive-retries 10 - encapsulation udp local-ip 127.0.0.1 - encapsulation udp local-port 23000 - encapsulation framerelay-gre enabled 0 + bind udp local + listen 127.0.0.1 23000 + accept-ipaccess ! bssgp ! diff --git a/doc/examples/osmo-sgsn/osmo-sgsn.cfg b/doc/examples/osmo-sgsn/osmo-sgsn.cfg index 3be4d49..11413c1 100644 --- a/doc/examples/osmo-sgsn/osmo-sgsn.cfg +++ b/doc/examples/osmo-sgsn/osmo-sgsn.cfg @@ -23,9 +23,9 @@ timer tns-test 30 timer tns-alive 3 timer tns-alive-retries 10 - encapsulation udp local-ip 127.0.0.1 - encapsulation udp local-port 23000 - encapsulation framerelay-gre enabled 0 + bind udp local + listen 127.0.0.1 23000 + accept-ipaccess ! bssgp ! diff --git a/doc/examples/osmo-sgsn/osmo-sgsn_custom-sccp.cfg b/doc/examples/osmo-sgsn/osmo-sgsn_custom-sccp.cfg index f60c076..fd5a205 100644 --- a/doc/examples/osmo-sgsn/osmo-sgsn_custom-sccp.cfg +++ b/doc/examples/osmo-sgsn/osmo-sgsn_custom-sccp.cfg @@ -31,9 +31,9 @@ timer tns-test 30 timer tns-alive 3 timer tns-alive-retries 10 - encapsulation udp local-ip 127.0.0.1 - encapsulation udp local-port 23000 - encapsulation framerelay-gre enabled 0 + bind udp local + listen 127.0.0.1 23000 + accept-ipaccess ! bssgp ! diff --git a/src/sgsn/sgsn_main.c b/src/sgsn/sgsn_main.c index 19039f6..f6eac60 100644 --- a/src/sgsn/sgsn_main.c +++ b/src/sgsn/sgsn_main.c @@ -328,11 +328,6 @@ int main(int argc, char **argv) { int rc; - struct osmo_sockaddr_str bind_address = { - .af = AF_INET, - .ip = "0.0.0.0", - .port = 23000, - }; #if BUILD_IU struct osmo_sccp_instance *sccp; #endif @@ -402,7 +397,7 @@ sgsn_inst_init(sgsn); - gprs_ns2_vty_init(sgsn_nsi, &bind_address); + gprs_ns2_vty_init(sgsn_nsi); bssgp_vty_init(); gprs_llc_vty_init(); gprs_sndcp_vty_init(); @@ -449,12 +444,6 @@ exit(2); } - rc = gprs_ns2_vty_create(); - if (rc < 0) { - LOGP(DGPRS, LOGL_FATAL, "Cannot bind/listen on NSIP socket\n"); - exit(2); - } - gprs_ns2_dynamic_create_nse(sgsn_nsi, true); if (sgsn->cfg.dynamic_lookup) { -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22501 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ie9306ab4d4738c2c57a69987086e22771b30657e Gerrit-Change-Number: 22501 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 20:10:31 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 27 Jan 2021 20:10:31 +0000 Subject: Change in osmo-sgsn[master]: sgsn: follow libosmocore/gprs_ns2 API changes (gprs_ns2_dynamic_creat... References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22502 ) Change subject: sgsn: follow libosmocore/gprs_ns2 API changes (gprs_ns2_dynamic_create_nse) ...................................................................... sgsn: follow libosmocore/gprs_ns2 API changes (gprs_ns2_dynamic_create_nse) The call gprs_ns2_dynamic_create_nse has been removed because it was a workaround for the old/dropped vty api. Depends-on: Ie924ead6da17657f3da334068c8ada82c8845495 (libosmocore) Change-Id: Ie636cfd18d6d43da0e42f2c2de68dfa5c571d55c --- M src/sgsn/sgsn_main.c 1 file changed, 0 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/02/22502/1 diff --git a/src/sgsn/sgsn_main.c b/src/sgsn/sgsn_main.c index f6eac60..075d59c 100644 --- a/src/sgsn/sgsn_main.c +++ b/src/sgsn/sgsn_main.c @@ -444,8 +444,6 @@ exit(2); } - gprs_ns2_dynamic_create_nse(sgsn_nsi, true); - if (sgsn->cfg.dynamic_lookup) { if (sgsn_ares_init(sgsn) != 0) { LOGP(DGPRS, LOGL_FATAL, -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22502 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ie636cfd18d6d43da0e42f2c2de68dfa5c571d55c Gerrit-Change-Number: 22502 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 20:10:38 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 27 Jan 2021 20:10:38 +0000 Subject: Change in libosmocore[master]: gprs_ns2: remove api call gprs_ns2_dynamic_create_nse In-Reply-To: References: Message-ID: lynxis lazus has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/libosmocore/+/22498 ) Change subject: gprs_ns2: remove api call gprs_ns2_dynamic_create_nse ...................................................................... gprs_ns2: remove api call gprs_ns2_dynamic_create_nse The call was only introduced as workaround for the first implementation of vty. There is no need for this anymore. The configuration can just add "accept-ipaccess" to the bind to allow creation of dynamic ipaccess NSE. Change-Id: Ie924ead6da17657f3da334068c8ada82c8845495 --- M include/osmocom/gprs/gprs_ns2.h M src/gb/gprs_ns2.c M src/gb/gprs_ns2_internal.h 3 files changed, 1 insertion(+), 17 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/98/22498/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22498 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie924ead6da17657f3da334068c8ada82c8845495 Gerrit-Change-Number: 22498 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 20:12:52 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 27 Jan 2021 20:12:52 +0000 Subject: Change in osmo-ttcn3-hacks[master]: sgsn: change to the new vty configuration References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22503 ) Change subject: sgsn: change to the new vty configuration ...................................................................... sgsn: change to the new vty configuration Needs to be synchronized with the SGSN change Depends-on: If5bd6b86e130772e6c93d640b0c637985416136d (osmo-sgsn) Change-Id: I37d010bc4ae553c30feb2ebd2be66d23b96bf42a --- M sgsn/SGSN_Tests_NS.ttcn M sgsn/osmo-sgsn.cfg 2 files changed, 3 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/03/22503/1 diff --git a/sgsn/SGSN_Tests_NS.ttcn b/sgsn/SGSN_Tests_NS.ttcn index 9ef2dfb..dd68b05 100644 --- a/sgsn/SGSN_Tests_NS.ttcn +++ b/sgsn/SGSN_Tests_NS.ttcn @@ -23,7 +23,6 @@ testcase TC_NS_connect_reset() runs on RAW_Test_CT { f_init_vty(); f_init_ns_codec(mp_nsconfig[0], guard_secs := 10.0); - f_vty_config(SGSNVTY, "ns", "encapsulation udp use-reset-block-unblock enabled"); /* Send a NS-ALIVE */ f_outgoing_ns_reset(); @@ -35,7 +34,6 @@ testcase TC_NS_connect_alive() runs on RAW_Test_CT { f_init_vty(); f_init_ns_codec(mp_nsconfig[0], guard_secs := 10.0); - f_vty_config(SGSNVTY, "ns", "encapsulation udp use-reset-block-unblock disabled"); /* Send a NS-ALIVE */ NSCP[0].send(t_NS_ALIVE); diff --git a/sgsn/osmo-sgsn.cfg b/sgsn/osmo-sgsn.cfg index 7ac50bc..c03c9a3 100644 --- a/sgsn/osmo-sgsn.cfg +++ b/sgsn/osmo-sgsn.cfg @@ -47,9 +47,9 @@ timer tns-test 30 timer tns-alive 3 timer tns-alive-retries 10 - encapsulation udp local-ip 127.0.0.10 - encapsulation udp local-port 23000 - encapsulation framerelay-gre enabled 0 + bind udp local10 + listen 127.0.0.10 23000 + accept-ipaccess bssgp sgsn gtp local-ip 127.0.0.10 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22503 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I37d010bc4ae553c30feb2ebd2be66d23b96bf42a Gerrit-Change-Number: 22503 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 20:12:52 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 27 Jan 2021 20:12:52 +0000 Subject: Change in osmo-ttcn3-hacks[master]: sgsn: NS: disable broken test TC_NS_connect_alive References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22504 ) Change subject: sgsn: NS: disable broken test TC_NS_connect_alive ...................................................................... sgsn: NS: disable broken test TC_NS_connect_alive The test case needs a static configuration via vty. Change-Id: Ib3f13000276fff2e1178ee460367129718153cb5 --- M sgsn/SGSN_Tests_NS.ttcn 1 file changed, 2 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/04/22504/1 diff --git a/sgsn/SGSN_Tests_NS.ttcn b/sgsn/SGSN_Tests_NS.ttcn index dd68b05..98d8b8b 100644 --- a/sgsn/SGSN_Tests_NS.ttcn +++ b/sgsn/SGSN_Tests_NS.ttcn @@ -31,6 +31,8 @@ f_clean_ns_codec(); } +/* disabled test because the test is broken. + * TODO: create a static NSVC for this test case via vty */ testcase TC_NS_connect_alive() runs on RAW_Test_CT { f_init_vty(); f_init_ns_codec(mp_nsconfig[0], guard_secs := 10.0); @@ -48,7 +50,6 @@ } control { - execute( TC_NS_connect_alive() ); execute( TC_NS_connect_reset() ); } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22504 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ib3f13000276fff2e1178ee460367129718153cb5 Gerrit-Change-Number: 22504 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 20:21:33 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 27 Jan 2021 20:21:33 +0000 Subject: Change in docker-playground[master]: sgsn: change configuration to the new NS2 References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/22505 ) Change subject: sgsn: change configuration to the new NS2 ...................................................................... sgsn: change configuration to the new NS2 The configuration of the SGSN has changed when using the new NS2 configuration. Depends-on: Ie9306ab4d4738c2c57a69987086e22771b30657e (osmo-sgsn) Change-Id: I65fb4e52d22617cf8488d8ab77c970f84995560d --- M osmo-sgsn-master/osmo-sgsn.cfg M ttcn3-sgsn-test/jenkins.sh M ttcn3-sgsn-test/osmo-sgsn.cfg A ttcn3-sgsn-test/osmo-sgsn.latest.cfg 4 files changed, 112 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/05/22505/1 diff --git a/osmo-sgsn-master/osmo-sgsn.cfg b/osmo-sgsn-master/osmo-sgsn.cfg index b39a83e..6b72a8f 100644 --- a/osmo-sgsn-master/osmo-sgsn.cfg +++ b/osmo-sgsn-master/osmo-sgsn.cfg @@ -18,7 +18,6 @@ timer tns-test 30 timer tns-alive 3 timer tns-alive-retries 10 - encapsulation udp local-ip 127.0.0.1 - encapsulation udp local-port 23000 - encapsulation framerelay-gre enabled 0 + bind udp local + liasten 127.0.0.1 23000 bssgp diff --git a/ttcn3-sgsn-test/jenkins.sh b/ttcn3-sgsn-test/jenkins.sh index 5d55093..bd6bf28 100755 --- a/ttcn3-sgsn-test/jenkins.sh +++ b/ttcn3-sgsn-test/jenkins.sh @@ -19,10 +19,13 @@ mkdir $VOL_BASE_DIR/stp cp osmo-stp.cfg $VOL_BASE_DIR/stp/ -# Disable IPv6 until libosmo-sccp.git release > 1.3.0 is available if [ "$IMAGE_SUFFIX" = "latest" ]; then + # Disable IPv6 until libosmo-sccp.git release > 1.3.0 is available sed "/fd02:db8/d" -i $VOL_BASE_DIR/stp/osmo-stp.cfg sed "/fd02:db8/d" -i $VOL_BASE_DIR/sgsn/osmo-sgsn.cfg + + # latest doesn't use yet the NS2 code + cp osmo-sgsn.latest.cfg "$VOL_BASE_DIR/sgsn/osmo-sgsn.cfg" fi mkdir $VOL_BASE_DIR/unix diff --git a/ttcn3-sgsn-test/osmo-sgsn.cfg b/ttcn3-sgsn-test/osmo-sgsn.cfg index e571315..b587fa8 100644 --- a/ttcn3-sgsn-test/osmo-sgsn.cfg +++ b/ttcn3-sgsn-test/osmo-sgsn.cfg @@ -71,9 +71,9 @@ timer tns-test 30 timer tns-alive 3 timer tns-alive-retries 10 - encapsulation udp local-ip 172.18.8.10 - encapsulation udp local-port 23000 - encapsulation framerelay-gre enabled 0 + bind udp local + listen 172.18.8.10 23000 + accept-ipaccess bssgp sgsn gtp local-ip 172.18.8.10 diff --git a/ttcn3-sgsn-test/osmo-sgsn.latest.cfg b/ttcn3-sgsn-test/osmo-sgsn.latest.cfg new file mode 100644 index 0000000..e571315 --- /dev/null +++ b/ttcn3-sgsn-test/osmo-sgsn.latest.cfg @@ -0,0 +1,103 @@ +! +! OsmoSGSN (1.2.0.46-e77e-dirty) configuration saved from vty +!! +! +log gsmtap 172.18.8.103 + logging level set-all debug + logging filter all 1 +! +log stderr + logging filter all 1 + logging color 1 + logging print category 1 + logging timestamp 1 + logging print extended-timestamp 1 + logging print file 1 + logging level all everything + logging level mm debug + logging level pag notice + logging level meas notice + logging level ref notice + logging level gprs debug + logging level ns info + logging level bssgp info + logging level llc debug + logging level sndcp debug + logging level slhc notice + logging level ranap info + logging level sua info + logging level v42bis info + logging level lglobal info + logging level llapd notice + logging level linp notice + logging level lmux notice + logging level lmi notice + logging level lmib notice + logging level lsms notice + logging level lctrl notice + logging level lgtp debug + logging level lstats notice + logging level lgsup debug + logging level loap notice + logging level lss7 notice + logging level lsccp info + logging level lsua notice + logging level lm3ua notice + logging level lmgcp notice +! +stats interval 5 +! +line vty + no login + bind 0.0.0.0 +ctrl + bind 0.0.0.0 +! +cs7 instance 0 + point-code 0.23.4 + asp asp-clnt-OsmoSGSN-A 2905 0 m3ua + local-ip 172.18.8.10 + local-ip fd02:db8:8::10 + remote-ip 172.18.8.200 + remote-ip fd02:db8:8::200 + as as-clnt-OsmoSGSN-A m3ua + asp asp-clnt-OsmoSGSN-A + routing-key 3 0.23.4 +ns + timer tns-block 3 + timer tns-block-retries 3 + timer tns-reset 3 + timer tns-reset-retries 3 + timer tns-test 30 + timer tns-alive 3 + timer tns-alive-retries 10 + encapsulation udp local-ip 172.18.8.10 + encapsulation udp local-port 23000 + encapsulation framerelay-gre enabled 0 +bssgp +sgsn + gtp local-ip 172.18.8.10 + ggsn 0 remote-ip 172.18.8.103 + ggsn 0 gtp-version 1 + gsup remote-ip 172.18.8.103 + gsup remote-port 4222 + auth-policy remote + gsup oap-id 0 + ! apn * ggsn 0 + no cdr filename + no cdr trap + cdr interval 600 + timer t3312 600 + timer t3322 6 + timer t3350 6 + timer t3360 6 + timer t3370 6 + timer t3313 30 + timer t3314 44 + timer t3316 44 + timer t3385 8 + timer t3386 8 + timer t3395 8 + timer t3397 8 + no compression rfc1144 + no compression v42bis -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22505 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I65fb4e52d22617cf8488d8ab77c970f84995560d Gerrit-Change-Number: 22505 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 20:24:05 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 27 Jan 2021 20:24:05 +0000 Subject: Change in osmo-pcu[master]: follow gprs_ns2 API enum changes References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22506 ) Change subject: follow gprs_ns2 API enum changes ...................................................................... follow gprs_ns2 API enum changes All gprs_ns2 enums have now GPRS_NS2 as prefix. Depends-on: I548ff12f7277cbb7e1a630a3dc02b738ce89be72 (libosmocore) Change-Id: Ifdc7956318c07d680feab33c22bc2c6f20927bf9 --- M src/gprs_bssgp_pcu.c M src/gprs_pcu.c M src/pcu_vty.c 3 files changed, 14 insertions(+), 14 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/06/22506/1 diff --git a/src/gprs_bssgp_pcu.c b/src/gprs_bssgp_pcu.c index 81a6518..a6b6f7e 100644 --- a/src/gprs_bssgp_pcu.c +++ b/src/gprs_bssgp_pcu.c @@ -576,10 +576,10 @@ void gprs_ns_prim_status_cb(struct osmo_gprs_ns2_prim *nsp) { switch (nsp->u.status.cause) { - case NS_AFF_CAUSE_SNS_CONFIGURED: + case GPRS_NS2_AFF_CAUSE_SNS_CONFIGURED: LOGP(DPCU, LOGL_NOTICE, "NS-NSE %d SNS configured.\n", nsp->nsei); break; - case NS_AFF_CAUSE_RECOVERY: + case GPRS_NS2_AFF_CAUSE_RECOVERY: LOGP(DPCU, LOGL_NOTICE, "NS-NSE %d became available\n", nsp->nsei); if (!the_pcu->bssgp.nsvc_unblocked) { the_pcu->bssgp.bvc_sig_reset = 0; @@ -588,7 +588,7 @@ bvc_timeout(NULL); } break; - case NS_AFF_CAUSE_FAILURE: + case GPRS_NS2_AFF_CAUSE_FAILURE: LOGP(DPCU, LOGL_NOTICE, "NS-NSE %d became unavailable\n", nsp->nsei); if (the_pcu->bssgp.nsvc_unblocked) { the_pcu->bssgp.nsvc_unblocked = 0; @@ -598,7 +598,7 @@ the_pcu->bssgp.bvc_unblocked = 0; } break; - case NS_AFF_CAUSE_SNS_FAILURE: + case GPRS_NS2_AFF_CAUSE_SNS_FAILURE: break; default: LOGP(DPCU, LOGL_DEBUG, @@ -628,7 +628,7 @@ } switch (oph->primitive) { - case PRIM_NS_UNIT_DATA: + case GPRS_NS2_PRIM_UNIT_DATA: /* hand the message into the BSSGP implementation */ /* add required msg fields for Gb layer */ msgb_bssgph(oph->msg) = oph->msg->l3h; @@ -636,10 +636,10 @@ msgb_nsei(oph->msg) = nsp->nsei; rc = gprs_bssgp_pcu_rcvmsg(oph->msg); break; - case PRIM_NS_STATUS: + case GPRS_NS2_PRIM_STATUS: gprs_ns_prim_status_cb(nsp); break; - case PRIM_NS_CONGESTION: + case GPRS_NS2_PRIM_CONGESTION: break; default: LOGP(DPCU, LOGL_DEBUG, @@ -663,7 +663,7 @@ struct osmo_gprs_ns2_prim nsp = {}; nsp.nsei = msgb_nsei(msg); nsp.bvci = msgb_bvci(msg); - osmo_prim_init(&nsp.oph, SAP_NS, PRIM_NS_UNIT_DATA, + osmo_prim_init(&nsp.oph, SAP_NS, GPRS_NS2_PRIM_UNIT_DATA, PRIM_OP_REQUEST, msg); return gprs_ns2_recv_prim(nsi, &nsp.oph); } @@ -1029,7 +1029,7 @@ continue; /* FIXME: for SNS we just use the first successful NS-VC instead of all for the initial connect */ - if (the_pcu->vty.ns_dialect == NS2_DIALECT_SNS) { + if (the_pcu->vty.ns_dialect == GPRS_NS2_DIALECT_SNS) { rc = gprs_ns2_sns_add_endpoint(bts->nse, &remote[i]); if (!rc) return rc; @@ -1099,7 +1099,7 @@ gprs_ns2_free_nses(the_pcu->nsi); gprs_ns2_free_binds(the_pcu->nsi); rc = ns_create_nsvc(bts, nsei, local, remote, nsvci, valid); - } else if (the_pcu->vty.ns_dialect == NS2_DIALECT_SNS) { + } else if (the_pcu->vty.ns_dialect == GPRS_NS2_DIALECT_SNS) { /* SNS: check if the initial nsvc is the same, if not recreate it */ const struct osmo_sockaddr *initial = gprs_ns2_nse_sns_remote(bts->nse); unsigned int i; diff --git a/src/gprs_pcu.c b/src/gprs_pcu.c index 2f18dfd..0786199 100644 --- a/src/gprs_pcu.c +++ b/src/gprs_pcu.c @@ -91,7 +91,7 @@ pcu->vty.mcs_lqual_ranges[7].high = 24; pcu->vty.mcs_lqual_ranges[8].low = 23; pcu->vty.mcs_lqual_ranges[8].high = 256; - pcu->vty.ns_dialect = NS2_DIALECT_IPACCESS; + pcu->vty.ns_dialect = GPRS_NS2_DIALECT_IPACCESS; /* TODO: increase them when CRBB decoding is implemented */ pcu->vty.ws_base = 64; pcu->vty.ws_pdch = 0; diff --git a/src/pcu_vty.c b/src/pcu_vty.c index 288f241..4b502c9 100644 --- a/src/pcu_vty.c +++ b/src/pcu_vty.c @@ -244,7 +244,7 @@ } } - if (the_pcu->vty.ns_dialect == NS2_DIALECT_SNS) + if (the_pcu->vty.ns_dialect == GPRS_NS2_DIALECT_SNS) vty_out(vty, " gb-dialect ip-sns%s", VTY_NEWLINE); else vty_out(vty, " gb-dialect classic%s", VTY_NEWLINE); @@ -1010,9 +1010,9 @@ "Modern Gb interface with IP-SNS (Sub Network Service) and dynamic configuration\n") { if (!strcmp(argv[0], "ip-sns")) { - the_pcu->vty.ns_dialect = NS2_DIALECT_SNS; + the_pcu->vty.ns_dialect = GPRS_NS2_DIALECT_SNS; } else { - the_pcu->vty.ns_dialect = NS2_DIALECT_IPACCESS; + the_pcu->vty.ns_dialect = GPRS_NS2_DIALECT_IPACCESS; } return CMD_SUCCESS; -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22506 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ifdc7956318c07d680feab33c22bc2c6f20927bf9 Gerrit-Change-Number: 22506 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 20:24:05 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 27 Jan 2021 20:24:05 +0000 Subject: Change in osmo-pcu[master]: gprs_ns2: migrate to the new vty syntax References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22507 ) Change subject: gprs_ns2: migrate to the new vty syntax ...................................................................... gprs_ns2: migrate to the new vty syntax This also changes the vty configuration. Depends-on: I8c3f2afecc74b78f7f914f7dce166cbcb63444eb (libosmocore) Change-Id: I14af821a8d1fda670643c3d5f81299a3abf3c583 --- M src/pcu_main.cpp 1 file changed, 1 insertion(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/07/22507/1 diff --git a/src/pcu_main.cpp b/src/pcu_main.cpp index ea7e341..003cabb 100644 --- a/src/pcu_main.cpp +++ b/src/pcu_main.cpp @@ -270,7 +270,7 @@ exit(1); } bssgp_set_bssgp_callback(gprs_gp_send_cb, pcu->nsi); - gprs_ns2_vty_init(pcu->nsi, NULL); + gprs_ns2_vty_init(pcu->nsi); rc = vty_read_config_file(config_file, NULL); if (rc < 0 && config_given) { @@ -282,8 +282,6 @@ fprintf(stderr, "No config file: '%s' Using default config.\n", config_file); - gprs_ns2_vty_create(); - rc = telnet_init_dynif(tall_pcu_ctx, NULL, vty_get_bind_addr(), OSMO_VTY_PORT_PCU); if (rc < 0) { -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22507 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I14af821a8d1fda670643c3d5f81299a3abf3c583 Gerrit-Change-Number: 22507 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 20:25:11 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 27 Jan 2021 20:25:11 +0000 Subject: Change in docker-playground[master]: sgsn: change configuration to the new NS2 In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22505 ) Change subject: sgsn: change configuration to the new NS2 ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22505 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I65fb4e52d22617cf8488d8ab77c970f84995560d Gerrit-Change-Number: 22505 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 27 Jan 2021 20:25:11 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 20:25:30 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 27 Jan 2021 20:25:30 +0000 Subject: Change in osmo-pcu[master]: follow gprs_ns2 API enum changes In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22506 ) Change subject: follow gprs_ns2 API enum changes ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22506 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ifdc7956318c07d680feab33c22bc2c6f20927bf9 Gerrit-Change-Number: 22506 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: laforge Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Wed, 27 Jan 2021 20:25:30 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 20:27:23 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 27 Jan 2021 20:27:23 +0000 Subject: Change in osmo-pcu[master]: gprs_ns2: migrate to the new vty syntax In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22507 ) Change subject: gprs_ns2: migrate to the new vty syntax ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-pcu/+/22507/1//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-pcu/+/22507/1//COMMIT_MSG at 1 PS1, Line 1: Parent: 81e9d4a3 (follow gprs_ns2 API enum changes) we need more context in the commitlog. The user - who is not expected to follow each and every gerrit comment review - would certianly appreciate a link to some kind of information source related to the change. Like a wiki page describing the changes in principle, or mentioning the chatpter of the user manual that documents the changes, or some redmine issue that at least describes what's happening, ... -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22507 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I14af821a8d1fda670643c3d5f81299a3abf3c583 Gerrit-Change-Number: 22507 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-CC: Jenkins Builder Gerrit-CC: laforge Gerrit-Comment-Date: Wed, 27 Jan 2021 20:27:23 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 20:27:24 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 27 Jan 2021 20:27:24 +0000 Subject: Change in libosmocore[master]: gprs_ns2: remove api call gprs_ns2_dynamic_create_nse In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22498 to look at the new patch set (#3). Change subject: gprs_ns2: remove api call gprs_ns2_dynamic_create_nse ...................................................................... gprs_ns2: remove api call gprs_ns2_dynamic_create_nse The call was only introduced as workaround for the first implementation of vty. There is no need for this anymore. The configuration can just add "accept-ipaccess" to the bind to allow creation of dynamic ipaccess NSE. Change-Id: Ie924ead6da17657f3da334068c8ada82c8845495 --- M include/osmocom/gprs/gprs_ns2.h M src/gb/gprs_ns2.c M src/gb/gprs_ns2_internal.h M src/gb/libosmogb.map M utils/osmo-ns-dummy.c 5 files changed, 1 insertion(+), 19 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/98/22498/3 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22498 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie924ead6da17657f3da334068c8ada82c8845495 Gerrit-Change-Number: 22498 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 20:27:58 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 27 Jan 2021 20:27:58 +0000 Subject: Change in osmo-sgsn[master]: sgsn: migrate to the new gprs_ns2_vty configuration In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22501 ) Change subject: sgsn: migrate to the new gprs_ns2_vty configuration ...................................................................... Patch Set 1: we need more context in the commitlog. The user - who is not expected to follow each and every gerrit comment review - would certianly appreciate a link to some kind of information source related to the change. Like a wiki page describing the changes in principle, or mentioning the chatpter of the user manual that documents the changes, or some redmine issue that at least describes what's happening, ... -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22501 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ie9306ab4d4738c2c57a69987086e22771b30657e Gerrit-Change-Number: 22501 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-Comment-Date: Wed, 27 Jan 2021 20:27:58 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 20:28:08 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 27 Jan 2021 20:28:08 +0000 Subject: Change in docker-playground[master]: sgsn: change configuration to the new NS2 In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22505 ) Change subject: sgsn: change configuration to the new NS2 ...................................................................... Patch Set 1: we need more context in the commitlog. The user - who is not expected to follow each and every gerrit comment review - would certianly appreciate a link to some kind of information source related to the change. Like a wiki page describing the changes in principle, or mentioning the chatpter of the user manual that documents the changes, or some redmine issue that at least describes what's happening, ... -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22505 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I65fb4e52d22617cf8488d8ab77c970f84995560d Gerrit-Change-Number: 22505 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 27 Jan 2021 20:28:08 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 20:30:31 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 27 Jan 2021 20:30:31 +0000 Subject: Change in osmo-pcu[master]: gprs_ns2: migrate to the new vty syntax In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22507 ) Change subject: gprs_ns2: migrate to the new vty syntax ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-pcu/+/22507/1//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-pcu/+/22507/1//COMMIT_MSG at 1 PS1, Line 1: Parent: 81e9d4a3 (follow gprs_ns2 API enum changes) > we need more context in the commitlog. [?] for the PCU I would remove most of the NS configuration (except for the timer). Where should the wiki page? In libosmocore context? Or in the PCU context? IMHO: it's much more important for the SGSN. -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22507 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I14af821a8d1fda670643c3d5f81299a3abf3c583 Gerrit-Change-Number: 22507 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-Comment-Date: Wed, 27 Jan 2021 20:30:31 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: laforge Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 20:52:16 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 27 Jan 2021 20:52:16 +0000 Subject: Change in libosmocore[master]: gprs_ns2: introduce gprs_ns2_vty_init_reduced() for the PCU References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22508 ) Change subject: gprs_ns2: introduce gprs_ns2_vty_init_reduced() for the PCU ...................................................................... gprs_ns2: introduce gprs_ns2_vty_init_reduced() for the PCU The gprs_ns2_vty_init_reduced() call initialized the ns2 vty without configuration nodes (except timeout). The PCU can be only configured by the BTS/BSC. It should not configured by vty. Change-Id: I4437da74bd48ba64d3f16ea67afc26c45b6d3ac9 --- M src/gb/gprs_ns2_vty.c M src/gb/libosmogb.map 2 files changed, 17 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/08/22508/1 diff --git a/src/gb/gprs_ns2_vty.c b/src/gb/gprs_ns2_vty.c index b6ae5b4..9db8173 100644 --- a/src/gb/gprs_ns2_vty.c +++ b/src/gb/gprs_ns2_vty.c @@ -1617,7 +1617,12 @@ return CMD_SUCCESS; } -int gprs_ns2_vty_init(struct gprs_ns2_inst *nsi) +/*! initialized a reduced vty interface which excludes the configuration nodes besides timeouts. + * This can be used by the PCU which can be only configured by the BTS/BSC and not by the vty. + * \param[in] nsi NS instance on which we operate + * \return 0 on success. + */ +int gprs_ns2_vty_init_reduced(struct gprs_ns2_inst *nsi) { vty_nsi = nsi; INIT_LLIST_HEAD(&binds); @@ -1645,6 +1650,16 @@ install_node(&ns_node, config_write_ns); /* TODO: convert into osmo timer */ install_lib_element(L_NS_NODE, &cfg_ns_timer_cmd); + + return 0; +} + +int gprs_ns2_vty_init(struct gprs_ns2_inst *nsi) +{ + int rc = gprs_ns2_vty_init_reduced(nsi); + if (rc) + return rc; + install_lib_element(L_NS_NODE, &cfg_ns_nsei_cmd); install_lib_element(L_NS_NODE, &cfg_no_ns_nsei_cmd); install_lib_element(L_NS_NODE, &cfg_ns_bind_cmd); diff --git a/src/gb/libosmogb.map b/src/gb/libosmogb.map index 71be117..a3171d0 100644 --- a/src/gb/libosmogb.map +++ b/src/gb/libosmogb.map @@ -185,6 +185,7 @@ gprs_ns2_sns_add_endpoint; gprs_ns2_sns_del_endpoint; gprs_ns2_vty_init; +gprs_ns2_vty_init_reduced; gprs_nsvc_create2; gprs_nsvc_delete; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22508 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4437da74bd48ba64d3f16ea67afc26c45b6d3ac9 Gerrit-Change-Number: 22508 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 22:54:31 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 27 Jan 2021 22:54:31 +0000 Subject: Change in osmo-ttcn3-hacks[master]: PCU_Tests: add testcase TC_rim_ran_info_req_single_rep and _no_si In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369 ) Change subject: PCU_Tests: add testcase TC_rim_ran_info_req_single_rep and _no_si ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369/2/library/PCUIF_Types.ttcn File library/PCUIF_Types.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369/2/library/PCUIF_Types.ttcn at 229 PS2, Line 229: variant (trx) "CROSSTAG(v09, version = 10; v10, version = 11)" > This is basically the backwards compatibility logic. And I agree with Pau, the changes look wrong. [?] Can you have a look if it is now better in patchset 3? -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I9054ab0e969c0fbfdc671c92d44cc61360959adc Gerrit-Change-Number: 22369 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Wed, 27 Jan 2021 22:54:31 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: fixeria Comment-In-Reply-To: pespin Comment-In-Reply-To: dexter Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 22:57:31 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 27 Jan 2021 22:57:31 +0000 Subject: Change in osmo-ttcn3-hacks[master]: PCU_Tests: add testcase TC_rim_ran_info_req_single_rep and _no_si In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369 ) Change subject: PCU_Tests: add testcase TC_rim_ran_info_req_single_rep and _no_si ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369/2/library/PCUIF_Types.ttcn File library/PCUIF_Types.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369/2/library/PCUIF_Types.ttcn at 229 PS2, Line 229: variant (trx) "CROSSTAG(v09, version = 10; v10, version = 11)" > Can you have a look if it is now better in patchset 3? Oh, I was looking at the patchset 2 all the time... Sorry. Yep, it's better there. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I9054ab0e969c0fbfdc671c92d44cc61360959adc Gerrit-Change-Number: 22369 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Wed, 27 Jan 2021 22:57:31 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: fixeria Comment-In-Reply-To: pespin Comment-In-Reply-To: dexter Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 22:58:32 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 27 Jan 2021 22:58:32 +0000 Subject: Change in osmo-ttcn3-hacks[master]: PCU_Tests: add testcase TC_rim_ran_info_req_single_rep and _no_si In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369 ) Change subject: PCU_Tests: add testcase TC_rim_ran_info_req_single_rep and _no_si ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369/3/library/PCUIF_Types.ttcn File library/PCUIF_Types.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369/3/library/PCUIF_Types.ttcn at 347 PS3, Line 347: case else { len := 0; } version 11 is missing here -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I9054ab0e969c0fbfdc671c92d44cc61360959adc Gerrit-Change-Number: 22369 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Wed, 27 Jan 2021 22:58:32 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 23:21:05 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 27 Jan 2021 23:21:05 +0000 Subject: Change in osmo-bts[master]: chan activ: activate DL SACCH only when TA is known References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/22509 ) Change subject: chan activ: activate DL SACCH only when TA is known ...................................................................... chan activ: activate DL SACCH only when TA is known A channel activation for handover to another cell does not know the Timing Advance until the handover RACH is received. It does not make much sense to enable downlink SACCH without an accurate TA. If the BSC omits the Access Delay IE (a.k.a. the Timing Advance), do not enable downlink SACCH. This is expected to happen only for inter-cell handover. In all other situations, the TA should be known either from a Channel Request RACH for Immediate Assignment, or from the previous lchan on the same cell upon Assignment / intra-cell handover. Related: OS#4008 OS#4009 SYS#5192 Change-Id: I170b63c9856230d5f1a10654a9d950ada8e730d7 --- M src/common/rsl.c 1 file changed, 14 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/09/22509/1 diff --git a/src/common/rsl.c b/src/common/rsl.c index b4df22c..cbd6d41 100644 --- a/src/common/rsl.c +++ b/src/common/rsl.c @@ -1545,11 +1545,23 @@ } /* Indicate which SAPIs should be enabled before the first RACH is received, for handover. See 3GPP TS 48.058 - * 4.1.3 and 4.1.4. */ + * 4.1.3 and 4.1.4. + * + * | | Access || transmit | activate | This implementation + * | MS Power | Delay || on main channel | dl SACCH | activates DL SACCH + * ----------------------------------------------------------------------------------------- + * async ho no * --> yes no no + * async ho yes * --> yes may be started no + * async ho yes yes --> yes may be started yes + * sync ho no no --> yes no no + * sync ho yes no --> yes may be started no + * sync ho yes yes --> yes shall be started yes + */ switch (type) { case RSL_ACT_INTER_ASYNC: case RSL_ACT_INTER_SYNC: - lchan->want_dl_sacch_active = TLVP_PRES_LEN(&tp, RSL_IE_MS_POWER, 1); + lchan->want_dl_sacch_active = (TLVP_PRES_LEN(&tp, RSL_IE_MS_POWER, 1) + && TLVP_PRES_LEN(&tp, RSL_IE_ACCESS_DELAY, 1)) break; default: lchan->want_dl_sacch_active = true; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22509 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I170b63c9856230d5f1a10654a9d950ada8e730d7 Gerrit-Change-Number: 22509 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 23:26:12 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 27 Jan 2021 23:26:12 +0000 Subject: Change in osmo-bsc[master]: lchan assignment when RTP is set up: don't break on Mode Modify References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22510 ) Change subject: lchan assignment when RTP is set up: don't break on Mode Modify ...................................................................... lchan assignment when RTP is set up: don't break on Mode Modify Change-Id: I06d3f35fcc71d77e1f30c2b15ab221ef7d5f7f27 --- M src/osmo-bsc/assignment_fsm.c 1 file changed, 6 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/10/22510/1 diff --git a/src/osmo-bsc/assignment_fsm.c b/src/osmo-bsc/assignment_fsm.c index 6dba214..83822a1 100644 --- a/src/osmo-bsc/assignment_fsm.c +++ b/src/osmo-bsc/assignment_fsm.c @@ -434,8 +434,12 @@ return; /* There may be an already existing lchan, if yes, try to work with - * the existing lchan. */ - if (reuse_existing_lchan(conn)) { + * the existing lchan. + * If an RTP FSM is already set up for the lchan, Mode Modify is not yet supported -- see handling of + * LCHAN_EV_REQUEST_MODE_MODIFY in lchan_fsm.c. To not break the lchan, do not even attempt to re-use an lchan + * that already has an RTP stream set up, rather establish a new lchan (that transition is well implemented). */ + if (reuse_existing_lchan(conn) + && !conn->lchan->fi_rtp) { /* If the requested mode and the current TCH mode matches up, just send the * assignment complete directly and be done with the assignment procedure. */ -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22510 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I06d3f35fcc71d77e1f30c2b15ab221ef7d5f7f27 Gerrit-Change-Number: 22510 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 23:26:13 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 27 Jan 2021 23:26:13 +0000 Subject: Change in osmo-bsc[master]: rename lchan->rqd_ta to last_ta References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22511 ) Change subject: rename lchan->rqd_ta to last_ta ...................................................................... rename lchan->rqd_ta to last_ta Originally, the lchan stored only the Timing Advance from the initial channel request, hence it was called rqd_ta. Since quite a while now, rqd_ta also stores the most recent Timing Advance from each received Measurement Report. So rename to last_ta. This is cosmetic preparation for an upcoming patch that clarifies whether the Timing Advance is already known for Channel Activation. Change-Id: I1049526a173819baeb4978db5bf018ba3f1006a0 --- M include/osmocom/bsc/gsm_data.h M src/osmo-bsc/abis_rsl.c M src/osmo-bsc/handover_decision_2.c M src/osmo-bsc/lchan_fsm.c M src/osmo-bsc/lcs_loc_req.c M src/osmo-bsc/lcs_ta_req.c 6 files changed, 12 insertions(+), 12 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/11/22511/1 diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h index 8b53902..98822fb 100644 --- a/include/osmocom/bsc/gsm_data.h +++ b/include/osmocom/bsc/gsm_data.h @@ -657,7 +657,7 @@ } ass_compl; } abis_ip; - uint8_t rqd_ta; + uint8_t last_ta; /* table of neighbor cell measurements */ struct neigh_meas_proc neigh_meas[MAX_NEIGH_MEAS]; diff --git a/src/osmo-bsc/abis_rsl.c b/src/osmo-bsc/abis_rsl.c index 388e2fc..5bd53f1 100644 --- a/src/osmo-bsc/abis_rsl.c +++ b/src/osmo-bsc/abis_rsl.c @@ -541,7 +541,7 @@ return rc; } - ta = lchan->rqd_ta; + ta = lchan->last_ta; /* BS11 requires TA shifted by 2 bits */ if (bts->type == GSM_BTS_TYPE_BS11) @@ -1135,8 +1135,8 @@ if (msg->lchan->ts->trx->bts->type == GSM_BTS_TYPE_BS11 || msg->lchan->ts->trx->bts->type == GSM_BTS_TYPE_NOKIA_SITE) mr->ms_l1.ta >>= 2; - /* store TA for next assignment/handover */ - mr->lchan->rqd_ta = mr->ms_l1.ta; + /* store TA for handover decision, and for intra-cell re-assignment */ + mr->lchan->last_ta = mr->ms_l1.ta; } if (TLVP_PRESENT(&tp, RSL_IE_L3_INFO)) { msg->l3h = (uint8_t *) TLVP_VAL(&tp, RSL_IE_L3_INFO); @@ -1744,7 +1744,7 @@ OSMO_ASSERT(lchan->rqd_ref); *(lchan->rqd_ref) = rqd->ref; - lchan->rqd_ta = rqd->ta; + lchan->last_ta = rqd->ta; LOG_LCHAN(lchan, LOGL_DEBUG, "MS: Channel Request: reason=%s ra=0x%02x ta=%d\n", gsm_chreq_name(rqd->reason), rqd->ref.ra, rqd->ta); @@ -1776,7 +1776,7 @@ /* use request reference extracted from CHAN_RQD */ memcpy(&ia->req_ref, lchan->rqd_ref, sizeof(ia->req_ref)); - ia->timing_advance = lchan->rqd_ta; + ia->timing_advance = lchan->last_ta; if (!lchan->ts->hopping.enabled) { ia->mob_alloc_len = 0; } else { diff --git a/src/osmo-bsc/handover_decision_2.c b/src/osmo-bsc/handover_decision_2.c index 0bfae9b..d5f0e14 100644 --- a/src/osmo-bsc/handover_decision_2.c +++ b/src/osmo-bsc/handover_decision_2.c @@ -1521,10 +1521,10 @@ /* Max Distance */ if (lchan->meas_rep_count > 0 - && lchan->rqd_ta > ho_get_hodec2_max_distance(bts->ho)) { + && lchan->last_ta > ho_get_hodec2_max_distance(bts->ho)) { global_ho_reason = HO_REASON_MAX_DISTANCE; LOGPHOLCHAN(lchan, LOGL_NOTICE, "TA is TOO HIGH: %u > %d\n", - lchan->rqd_ta, ho_get_hodec2_max_distance(bts->ho)); + lchan->last_ta, ho_get_hodec2_max_distance(bts->ho)); /* start penalty timer to prevent coming back too * early. it must be started before selecting a better cell, * so there is no assignment selected, due to running diff --git a/src/osmo-bsc/lchan_fsm.c b/src/osmo-bsc/lchan_fsm.c index 5054096..80ac1a1 100644 --- a/src/osmo-bsc/lchan_fsm.c +++ b/src/osmo-bsc/lchan_fsm.c @@ -580,7 +580,7 @@ ms_power_dbm = ms_pwr_dbm(bts->band, old_lchan->ms_power); lchan_update_ms_power_ctrl_level(lchan, ms_power_dbm >= 0 ? ms_power_dbm : bts->ms_max_power); lchan->bs_power = old_lchan->bs_power; - lchan->rqd_ta = old_lchan->rqd_ta; + lchan->last_ta = old_lchan->last_ta; } else { lchan_update_ms_power_ctrl_level(lchan, bts->ms_max_power); /* Upon last entering the UNUSED state, from lchan_reset(): diff --git a/src/osmo-bsc/lcs_loc_req.c b/src/osmo-bsc/lcs_loc_req.c index ca5c7b9..39bc341 100644 --- a/src/osmo-bsc/lcs_loc_req.c +++ b/src/osmo-bsc/lcs_loc_req.c @@ -313,7 +313,7 @@ plr.bssmap_le.perform_loc_req.apdu = (struct bsslap_pdu){ .msg_type = BSSLAP_MSGT_TA_LAYER3, .ta_layer3 = { - .ta = lchan->rqd_ta, + .ta = lchan->last_ta, }, }; } else { @@ -365,7 +365,7 @@ .msg_type = BSSLAP_MSGT_RESET, .reset = { .cell_id = lchan->ts->trx->bts->cell_identity, - .ta = lchan->rqd_ta, + .ta = lchan->last_ta, .cause = BSSLAP_CAUSE_INTRA_BSS_HO, }, }; diff --git a/src/osmo-bsc/lcs_ta_req.c b/src/osmo-bsc/lcs_ta_req.c index 97d6eb5..3b859a7 100644 --- a/src/osmo-bsc/lcs_ta_req.c +++ b/src/osmo-bsc/lcs_ta_req.c @@ -210,7 +210,7 @@ .msg_type = BSSLAP_MSGT_TA_RESPONSE, .ta_response = { .cell_id = lchan->ts->trx->bts->cell_identity, - .ta = lchan->rqd_ta, + .ta = lchan->last_ta, }, }, }, -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22511 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I1049526a173819baeb4978db5bf018ba3f1006a0 Gerrit-Change-Number: 22511 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jan 27 23:26:13 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 27 Jan 2021 23:26:13 +0000 Subject: Change in osmo-bsc[master]: lchan activation: indicate whether TA is known References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22512 ) Change subject: lchan activation: indicate whether TA is known ...................................................................... lchan activation: indicate whether TA is known On lchan activation, we already know the Timing Advance in most situations: from the Channel Request RACH, or from a previous lchan in the same cell. Place this information in lchan->activate.info.ta. So far, the lchan->last_ta (until recently called rqd_ta) was used to store the initial TA for channel activation -- move the initial TA to lchan->activate.info.ta, for proper scoping. Only an inter-cell handover does not yet know a Timing Advance (until the Handover Detection RACH is received), so indicate activate.info.ta_known = false for that case. If ta_known is false, do not include an Access Delay IE in the Channel Activation message, ensuring that the BTS does not use an arbitrary TA that is likely inaccurate. The effect for OsmoBTS is that we will *not* start the downlink SACCH on channel activation for inter-cell handover, but will wait for a HO RACH first, and then use the correct TA when enabling downlink SACCH. Related: OS#4008 SYS#5192 Change-Id: I986bf93e8acd6aef7eaf63ac962480b680aa894f --- M include/osmocom/bsc/gsm_data.h M src/osmo-bsc/abis_rsl.c M src/osmo-bsc/assignment_fsm.c M src/osmo-bsc/handover_fsm.c M src/osmo-bsc/lchan_fsm.c 5 files changed, 28 insertions(+), 11 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/12/22512/1 diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h index 98822fb..2082971 100644 --- a/include/osmocom/bsc/gsm_data.h +++ b/include/osmocom/bsc/gsm_data.h @@ -571,6 +571,8 @@ /* During intra-BSC handover, we keep the MGW endpoint intact and just re-route to the new lchan. This * activate_info is for the new lchan, the re_use_mgw_endpoint_from_lchan points at the old lchan. */ struct gsm_lchan *re_use_mgw_endpoint_from_lchan; + bool ta_known; + uint8_t ta; }; struct gsm_lchan { diff --git a/src/osmo-bsc/abis_rsl.c b/src/osmo-bsc/abis_rsl.c index 5bd53f1..63ca58f 100644 --- a/src/osmo-bsc/abis_rsl.c +++ b/src/osmo-bsc/abis_rsl.c @@ -521,7 +521,6 @@ struct msgb *msg; int rc; uint8_t *len; - uint8_t ta; struct rsl_ie_chan_mode cm; struct gsm48_chan_desc cd; @@ -541,12 +540,6 @@ return rc; } - ta = lchan->last_ta; - - /* BS11 requires TA shifted by 2 bits */ - if (bts->type == GSM_BTS_TYPE_BS11) - ta <<= 2; - memset(&cd, 0, sizeof(cd)); gsm48_lchan2chan_desc(&cd, lchan); @@ -601,7 +594,13 @@ if (bts->ms_power_ctrl.mode != GSM_PWR_CTRL_MODE_NONE) msgb_tv_put(msg, RSL_IE_MS_POWER, lchan->ms_power); - msgb_tv_put(msg, RSL_IE_TIMING_ADVANCE, ta); + if (lchan->activate.info.ta_known) { + uint8_t ta = lchan->activate.info.ta; + /* BS11 requires TA shifted by 2 bits */ + if (bts->type == GSM_BTS_TYPE_BS11) + ta <<= 2; + msgb_tv_put(msg, RSL_IE_TIMING_ADVANCE, ta); + } /* BS/MS Power Control Parameters (if supported by BTS model) */ add_power_control_params(msg, RSL_IE_BS_POWER_PARAM, lchan); @@ -1744,13 +1743,14 @@ OSMO_ASSERT(lchan->rqd_ref); *(lchan->rqd_ref) = rqd->ref; - lchan->last_ta = rqd->ta; LOG_LCHAN(lchan, LOGL_DEBUG, "MS: Channel Request: reason=%s ra=0x%02x ta=%d\n", gsm_chreq_name(rqd->reason), rqd->ref.ra, rqd->ta); info = (struct lchan_activate_info){ .activ_for = FOR_MS_CHANNEL_REQUEST, .chan_mode = GSM48_CMODE_SIGN, + .ta = rqd->ta, + .ta_known = true, }; lchan_activate(lchan, &info); diff --git a/src/osmo-bsc/assignment_fsm.c b/src/osmo-bsc/assignment_fsm.c index 83822a1..b938ded 100644 --- a/src/osmo-bsc/assignment_fsm.c +++ b/src/osmo-bsc/assignment_fsm.c @@ -478,6 +478,8 @@ .requires_voice_stream = conn->assignment.requires_voice_stream, .msc_assigned_cic = req->msc_assigned_cic, .re_use_mgw_endpoint_from_lchan = conn->lchan, + .ta = conn->lchan->last_ta, + .ta_known = true, }; osmo_fsm_inst_dispatch(conn->lchan->fi, LCHAN_EV_REQUEST_MODE_MODIFY, &info); @@ -553,6 +555,8 @@ .requires_voice_stream = conn->assignment.requires_voice_stream, .msc_assigned_cic = req->msc_assigned_cic, .re_use_mgw_endpoint_from_lchan = conn->lchan, + .ta = conn->lchan->last_ta, + .ta_known = true, }; lchan_activate(conn->assignment.new_lchan, &info); } diff --git a/src/osmo-bsc/handover_fsm.c b/src/osmo-bsc/handover_fsm.c index 573f249..8747b80 100644 --- a/src/osmo-bsc/handover_fsm.c +++ b/src/osmo-bsc/handover_fsm.c @@ -408,6 +408,13 @@ .s15_s0 = conn->lchan->activate.info.s15_s0, }; + /* For intra-cell handover, we know the accurate Timing Advance from the previous lchan. For inter-cell + * handover, no Timing Advance for the new cell is known, so leave it unset. */ + if (ho->new_bts == bts) { + info.ta = conn->lchan->last_ta; + info.ta_known = true; + } + lchan_activate(ho->new_lchan, &info); } diff --git a/src/osmo-bsc/lchan_fsm.c b/src/osmo-bsc/lchan_fsm.c index 80ac1a1..d3a2d57 100644 --- a/src/osmo-bsc/lchan_fsm.c +++ b/src/osmo-bsc/lchan_fsm.c @@ -580,7 +580,6 @@ ms_power_dbm = ms_pwr_dbm(bts->band, old_lchan->ms_power); lchan_update_ms_power_ctrl_level(lchan, ms_power_dbm >= 0 ? ms_power_dbm : bts->ms_max_power); lchan->bs_power = old_lchan->bs_power; - lchan->last_ta = old_lchan->last_ta; } else { lchan_update_ms_power_ctrl_level(lchan, bts->ms_max_power); /* Upon last entering the UNUSED state, from lchan_reset(): @@ -702,8 +701,13 @@ lchan->encr = lchan->activate.info.encr; rc = rsl_tx_chan_activ(lchan, act_type, ho_ref); - if (rc) + if (rc) { lchan_fail_to(LCHAN_ST_UNUSED, "Tx Chan Activ failed: %s (%d)", strerror(-rc), rc); + return; + } + + if (lchan->activate.info.ta_known) + lchan->last_ta = lchan->activate.info.ta; } static void lchan_fsm_post_activ_ack(struct osmo_fsm_inst *fi); -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22512 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I986bf93e8acd6aef7eaf63ac962480b680aa894f Gerrit-Change-Number: 22512 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Thu Jan 28 04:15:45 2021 From: admin at opensuse.org (OBS Notification) Date: Thu, 28 Jan 2021 04:15:45 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <60123a89c1fb3_7ea62ae3667d05f49151b8@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/xUbuntu_20.04/x86_64 Package network:osmocom:nightly/simtrace2 failed to build in xUbuntu_20.04/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 174s] [COMPILING libboard/qmod/source/wwan_perst.c] [ 174s] [COMPILING libboard/qmod/source/card_pres.c] [ 174s] [COMPILING libboard/qmod/source/wwan_led.c] [ 174s] [COMPILING libboard/qmod/source/i2c.c] [ 174s] [COMPILING libboard/qmod/source/board_qmod.c] [ 174s] [COMPILING apps/dfu/main.c] [ 174s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 175s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 175s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 175s] Memory region Used Size Region Size %age Used [ 175s] rom: 16588 B 16 KB 101.25% [ 175s] ram: 11672 B 48 KB 23.75/usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 175s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 204 bytes [ 175s] collect2: error: ld returned 1 exit status [ 175s] % [ 175s] make[2]: *** [Makefile:234: flash] Error 1 [ 175s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 175s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 175s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 175s] dh_auto_build: error: make -j1 returned exit code 2 [ 175s] make: *** [debian/rules:16: build] Error 25 [ 175s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 175s] ### VM INTERACTION START ### [ 178s] [ 166.897305] sysrq: Power Off [ 178s] [ 166.903378] reboot: Power down [ 178s] ### VM INTERACTION END ### [ 178s] [ 178s] lamb12 failed "build simtrace2_0.7.0.69.aadd.dsc" at Thu Jan 28 04:15:28 UTC 2021. [ 178s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Jan 28 04:17:45 2021 From: admin at opensuse.org (OBS Notification) Date: Thu, 28 Jan 2021 04:17:45 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.10/x86_64 In-Reply-To: References: Message-ID: <60123b04ceaf6_7ea62ae3667d05f491640@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/xUbuntu_20.10/x86_64 Package network:osmocom:nightly/simtrace2 failed to build in xUbuntu_20.10/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 269s] [COMPILING apps/dfu/main.c] [ 269s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 269s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 269s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 270s] Memory region Used Size Region Size %age Used [ 270s] rom: 16580 B 16 KB 101.20% [ 270s] ram: 11672 B 48 KB 23.75/usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 270s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 270s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 270s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 270s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 270s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 270s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 196 bytes [ 270s] collect2: error: ld returned 1 exit status [ 270s] % [ 270s] make[2]: *** [Makefile:234: flash] Error 1 [ 270s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 270s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 270s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 270s] dh_auto_build: error: make -j1 returned exit code 2 [ 270s] make: *** [debian/rules:16: build] Error 25 [ 270s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 270s] ### VM INTERACTION START ### [ 273s] [ 258.993859] sysrq: Power Off [ 273s] [ 259.032030] reboot: Power down [ 273s] ### VM INTERACTION END ### [ 273s] [ 273s] lamb60 failed "build simtrace2_0.7.0.69.aadd.dsc" at Thu Jan 28 04:17:39 UTC 2021. [ 273s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Thu Jan 28 09:26:47 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 28 Jan 2021 09:26:47 +0000 Subject: Change in libosmocore[master]: configure.ac: set -std=gnu11 In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22355 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... configure.ac: set -std=gnu11 Avoid using different dialects by accident (and resulting compiler errors if compiler assumes a different dialect), like in I72310886bef4db635078b75715c9d98ee45391cc. Related: https://lists.osmocom.org/pipermail/openbsc/2019-September/013030.html Related: https://lists.osmocom.org/pipermail/openbsc/2021-January/013360.html Related: osmo-pcu Ia57ba101627e3cc0babeca82631e207a3e2e0960 Change-Id: Id79b13d3c498acb565f91eba650328fccb5a13ef --- M configure.ac 1 file changed, 2 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified lynxis lazus: Looks good to me, approved diff --git a/configure.ac b/configure.ac index 32ea7ca..2077570 100644 --- a/configure.ac +++ b/configure.ac @@ -8,6 +8,8 @@ AM_INIT_AUTOMAKE([foreign dist-bzip2 no-dist-gzip 1.6 subdir-objects]) AC_CONFIG_TESTDIR(tests) +CFLAGS="$CFLAGS -std=gnu11" + dnl kernel style compile messages m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22355 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Id79b13d3c498acb565f91eba650328fccb5a13ef Gerrit-Change-Number: 22355 Gerrit-PatchSet: 5 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 09:27:57 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 28 Jan 2021 09:27:57 +0000 Subject: Change in osmo-pcap[master]: configure.ac: set -std=gnu11 In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcap/+/22481 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... configure.ac: set -std=gnu11 Change-Id: I52c86f461edd96d810fb85a60c68be581caa1799 --- M configure.ac 1 file changed, 2 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified daniel: Looks good to me, approved diff --git a/configure.ac b/configure.ac index 111d477..6660bf1 100644 --- a/configure.ac +++ b/configure.ac @@ -6,6 +6,8 @@ AM_INIT_AUTOMAKE([dist-bzip2]) AC_CONFIG_TESTDIR(tests) +CFLAGS="$CFLAGS -std=gnu11" + dnl kernel style compile messages m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) -- To view, visit https://gerrit.osmocom.org/c/osmo-pcap/+/22481 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcap Gerrit-Branch: master Gerrit-Change-Id: I52c86f461edd96d810fb85a60c68be581caa1799 Gerrit-Change-Number: 22481 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 09:28:00 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 28 Jan 2021 09:28:00 +0000 Subject: Change in libosmo-sccp[master]: configure.ac: set -std=gnu11 In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/22467 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... configure.ac: set -std=gnu11 Change-Id: Iabe929a29a3c7fed2726329215097f7254cf20ca --- M configure.ac 1 file changed, 2 insertions(+), 0 deletions(-) Approvals: daniel: Looks good to me, approved Jenkins Builder: Verified diff --git a/configure.ac b/configure.ac index 725014d..cd79231 100644 --- a/configure.ac +++ b/configure.ac @@ -9,6 +9,8 @@ AM_INIT_AUTOMAKE([dist-bzip2]) AC_CONFIG_TESTDIR(tests) +CFLAGS="$CFLAGS -std=gnu11" + dnl kernel style compile messages m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) -- To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/22467 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-Change-Id: Iabe929a29a3c7fed2726329215097f7254cf20ca Gerrit-Change-Number: 22467 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 09:28:04 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 28 Jan 2021 09:28:04 +0000 Subject: Change in osmo-sysmon[master]: configure.ac: set -std=gnu11 In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sysmon/+/22485 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... configure.ac: set -std=gnu11 Change-Id: I708fe349fd506613af0e62a62bf6cbe611a06eef --- M configure.ac 1 file changed, 2 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified daniel: Looks good to me, approved diff --git a/configure.ac b/configure.ac index 4682931..63615b8 100644 --- a/configure.ac +++ b/configure.ac @@ -8,6 +8,8 @@ AM_INIT_AUTOMAKE([dist-bzip2 foreign]) +CFLAGS="$CFLAGS -std=gnu11" + dnl kernel style compile messages m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) -- To view, visit https://gerrit.osmocom.org/c/osmo-sysmon/+/22485 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sysmon Gerrit-Branch: master Gerrit-Change-Id: I708fe349fd506613af0e62a62bf6cbe611a06eef Gerrit-Change-Number: 22485 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 09:28:08 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 28 Jan 2021 09:28:08 +0000 Subject: Change in osmo-mgw[master]: configure.ac: set -std=gnu11 In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/22479 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... configure.ac: set -std=gnu11 Change-Id: Ic2a1f20be65810a86cdc36aaa459819146a0bfcc --- M configure.ac 1 file changed, 2 insertions(+), 0 deletions(-) Approvals: daniel: Looks good to me, approved Jenkins Builder: Verified diff --git a/configure.ac b/configure.ac index 83885d4..85b46eb 100644 --- a/configure.ac +++ b/configure.ac @@ -9,6 +9,8 @@ AM_INIT_AUTOMAKE([dist-bzip2]) AC_CONFIG_TESTDIR(tests) +CFLAGS="$CFLAGS -std=gnu11" + dnl kernel style compile messages m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/22479 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ic2a1f20be65810a86cdc36aaa459819146a0bfcc Gerrit-Change-Number: 22479 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 09:28:12 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 28 Jan 2021 09:28:12 +0000 Subject: Change in osmo-hlr[master]: configure.ac: set -std=gnu11 In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-hlr/+/22477 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... configure.ac: set -std=gnu11 Change-Id: I5ea5365338248e29591a40ec1e19db95f8ae6877 --- M configure.ac 1 file changed, 2 insertions(+), 0 deletions(-) Approvals: daniel: Looks good to me, approved Jenkins Builder: Verified diff --git a/configure.ac b/configure.ac index 341e925..748ca56 100644 --- a/configure.ac +++ b/configure.ac @@ -12,6 +12,8 @@ AC_CONFIG_TESTDIR(tests) +CFLAGS="$CFLAGS -std=gnu11" + dnl kernel style compile messages m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/22477 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-Change-Id: I5ea5365338248e29591a40ec1e19db95f8ae6877 Gerrit-Change-Number: 22477 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 09:28:22 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 28 Jan 2021 09:28:22 +0000 Subject: Change in osmo-bts[master]: configure.ac: set -std=gnu11 In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/22471 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... configure.ac: set -std=gnu11 Change-Id: I234394b2c8bec2a3920fd57bee238b99e4e60c22 --- M configure.ac 1 file changed, 2 insertions(+), 0 deletions(-) Approvals: daniel: Looks good to me, approved Jenkins Builder: Verified diff --git a/configure.ac b/configure.ac index 58a7e38..249a81a 100644 --- a/configure.ac +++ b/configure.ac @@ -9,6 +9,8 @@ AM_INIT_AUTOMAKE([dist-bzip2]) AC_CONFIG_TESTDIR(tests) +CFLAGS="$CFLAGS -std=gnu11" + dnl kernel style compile messages m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22471 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I234394b2c8bec2a3920fd57bee238b99e4e60c22 Gerrit-Change-Number: 22471 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 09:28:26 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 28 Jan 2021 09:28:26 +0000 Subject: Change in osmo-msc[master]: configure.ac: set -std=gnu11 In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/22480 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... configure.ac: set -std=gnu11 Change-Id: Ie93915f06a8907a80b4f081a00c1cde395015595 --- M configure.ac 1 file changed, 2 insertions(+), 0 deletions(-) Approvals: daniel: Looks good to me, approved Jenkins Builder: Verified diff --git a/configure.ac b/configure.ac index eea7f4b..ee4b33b 100644 --- a/configure.ac +++ b/configure.ac @@ -9,6 +9,8 @@ AM_INIT_AUTOMAKE([dist-bzip2]) AC_CONFIG_TESTDIR(tests) +CFLAGS="$CFLAGS -std=gnu11" + dnl kernel style compile messages m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/22480 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: Ie93915f06a8907a80b4f081a00c1cde395015595 Gerrit-Change-Number: 22480 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 09:28:31 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 28 Jan 2021 09:28:31 +0000 Subject: Change in osmo-iuh[master]: configure.ac: set -std=gnu11 In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-iuh/+/22478 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... configure.ac: set -std=gnu11 Change-Id: I4bf2f1cb724bc3e3c56d5a5c1270bb152b0e6e0a --- M configure.ac 1 file changed, 2 insertions(+), 0 deletions(-) Approvals: daniel: Looks good to me, approved Jenkins Builder: Verified diff --git a/configure.ac b/configure.ac index c186855..d82c78f 100644 --- a/configure.ac +++ b/configure.ac @@ -13,6 +13,8 @@ AC_CONFIG_TESTDIR(src/tests) +CFLAGS="$CFLAGS -std=gnu11" + dnl kernel style compile messages m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) -- To view, visit https://gerrit.osmocom.org/c/osmo-iuh/+/22478 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: master Gerrit-Change-Id: I4bf2f1cb724bc3e3c56d5a5c1270bb152b0e6e0a Gerrit-Change-Number: 22478 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 09:28:34 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 28 Jan 2021 09:28:34 +0000 Subject: Change in osmo-pcu[master]: configure.ac: set -std=gnu11 In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22482 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... configure.ac: set -std=gnu11 Change-Id: Iac2c0b14252c46aec2b00d46800fcc9f87a5a586 --- M configure.ac 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: daniel: Looks good to me, approved Jenkins Builder: Verified diff --git a/configure.ac b/configure.ac index 2e99a15..66b3595 100644 --- a/configure.ac +++ b/configure.ac @@ -10,7 +10,7 @@ AC_CONFIG_TESTDIR(tests) CXXFLAGS="$CXXFLAGS -std=gnu++03" -CFLAGS="$CFLAGS -std=gnu89" +CFLAGS="$CFLAGS -std=gnu11" dnl kernel style compile messages m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22482 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Iac2c0b14252c46aec2b00d46800fcc9f87a5a586 Gerrit-Change-Number: 22482 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 09:28:38 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 28 Jan 2021 09:28:38 +0000 Subject: Change in libosmo-abis[master]: configure.ac: set -std=gnu11 In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/libosmo-abis/+/22465 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... configure.ac: set -std=gnu11 Change-Id: Ib920af17b9a0b5d6ea5f4db33faab3a2dcf8fbbe --- M configure.ac 1 file changed, 2 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified daniel: Looks good to me, approved diff --git a/configure.ac b/configure.ac index a7dde2f..6a3bc4b 100644 --- a/configure.ac +++ b/configure.ac @@ -8,6 +8,8 @@ AM_INIT_AUTOMAKE([foreign dist-bzip2 no-dist-gzip 1.6 subdir-objects]) AC_CONFIG_TESTDIR(tests) +CFLAGS="$CFLAGS -std=gnu11" + dnl kernel style compile messages m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) -- To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/22465 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Change-Id: Ib920af17b9a0b5d6ea5f4db33faab3a2dcf8fbbe Gerrit-Change-Number: 22465 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 09:28:43 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 28 Jan 2021 09:28:43 +0000 Subject: Change in libosmo-netif[master]: configure.ac: set -std=gnu11 In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/libosmo-netif/+/22466 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... configure.ac: set -std=gnu11 Change-Id: Ia646e72ce58de331c325b75e94fa1539acd5930b --- M configure.ac 1 file changed, 2 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified daniel: Looks good to me, approved diff --git a/configure.ac b/configure.ac index 4c0e0b4..36c2f49 100644 --- a/configure.ac +++ b/configure.ac @@ -8,6 +8,8 @@ AM_INIT_AUTOMAKE([subdir-objects dist-bzip2]) AC_CONFIG_TESTDIR(tests) +CFLAGS="$CFLAGS -std=gnu11" + dnl kernel style compile messages m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) -- To view, visit https://gerrit.osmocom.org/c/libosmo-netif/+/22466 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-Change-Id: Ia646e72ce58de331c325b75e94fa1539acd5930b Gerrit-Change-Number: 22466 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 09:28:47 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 28 Jan 2021 09:28:47 +0000 Subject: Change in libtelnet[master]: configure.ac: set -std=gnu11 In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/libtelnet/+/22468 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... configure.ac: set -std=gnu11 Change-Id: Ief41cc4fc2e3d763a4b84f427496a5611f3c90c5 --- M configure.ac 1 file changed, 2 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified daniel: Looks good to me, approved diff --git a/configure.ac b/configure.ac index 16489f4..6b85c74 100644 --- a/configure.ac +++ b/configure.ac @@ -2,6 +2,8 @@ AM_INIT_AUTOMAKE +CFLAGS="$CFLAGS -std=gnu11" + AC_PROG_CC AC_PROG_LIBTOOL -- To view, visit https://gerrit.osmocom.org/c/libtelnet/+/22468 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libtelnet Gerrit-Branch: master Gerrit-Change-Id: Ief41cc4fc2e3d763a4b84f427496a5611f3c90c5 Gerrit-Change-Number: 22468 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 09:28:52 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 28 Jan 2021 09:28:52 +0000 Subject: Change in osmo-bsc[master]: configure.ac: set -std=gnu11 In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22470 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... configure.ac: set -std=gnu11 Change-Id: I61ee711de5303691c2f8881b66d4614d11850be2 --- M configure.ac 1 file changed, 2 insertions(+), 0 deletions(-) Approvals: lynxis lazus: Looks good to me, approved Jenkins Builder: Verified diff --git a/configure.ac b/configure.ac index f1f17b8..343c031 100644 --- a/configure.ac +++ b/configure.ac @@ -9,6 +9,8 @@ AM_INIT_AUTOMAKE([dist-bzip2]) AC_CONFIG_TESTDIR(tests) +CFLAGS="$CFLAGS -std=gnu11" + dnl kernel style compile messages m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22470 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I61ee711de5303691c2f8881b66d4614d11850be2 Gerrit-Change-Number: 22470 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: osmith Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 09:28:56 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 28 Jan 2021 09:28:56 +0000 Subject: Change in osmo-ggsn[master]: configure.ac: set -std=gnu11 In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ggsn/+/22476 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... configure.ac: set -std=gnu11 Change-Id: I7fed7d43242f804e6d2b005277c5b2b1bd197aa8 --- M configure.ac 1 file changed, 2 insertions(+), 0 deletions(-) Approvals: lynxis lazus: Looks good to me, approved Jenkins Builder: Verified diff --git a/configure.ac b/configure.ac index 9d8b4bf..a1c7180 100644 --- a/configure.ac +++ b/configure.ac @@ -9,6 +9,8 @@ AC_CONFIG_TESTDIR(tests) AC_CANONICAL_HOST +CFLAGS="$CFLAGS -std=gnu11" + dnl kernel style compile messages m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) -- To view, visit https://gerrit.osmocom.org/c/osmo-ggsn/+/22476 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ggsn Gerrit-Branch: master Gerrit-Change-Id: I7fed7d43242f804e6d2b005277c5b2b1bd197aa8 Gerrit-Change-Number: 22476 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: osmith Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 09:29:00 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 28 Jan 2021 09:29:00 +0000 Subject: Change in osmo-sip-connector[master]: configure.ac: set -std=gnu11 In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sip-connector/+/22484 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... configure.ac: set -std=gnu11 Change-Id: Ic95981af622dd713638bec775514dc4ef25594d4 --- M configure.ac 1 file changed, 2 insertions(+), 0 deletions(-) Approvals: lynxis lazus: Looks good to me, approved Jenkins Builder: Verified diff --git a/configure.ac b/configure.ac index 39d10f1..10a6392 100644 --- a/configure.ac +++ b/configure.ac @@ -18,6 +18,8 @@ RELMAKE='-include osmo-release.mk' AC_SUBST([RELMAKE]) +CFLAGS="$CFLAGS -std=gnu11" + dnl kernel style compile messages m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) AC_PROG_CC -- To view, visit https://gerrit.osmocom.org/c/osmo-sip-connector/+/22484 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sip-connector Gerrit-Branch: master Gerrit-Change-Id: Ic95981af622dd713638bec775514dc4ef25594d4 Gerrit-Change-Number: 22484 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: osmith Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 09:29:07 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 28 Jan 2021 09:29:07 +0000 Subject: Change in osmo-el2tpd[master]: configure.ac: set -std=gnu11 In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-el2tpd/+/22475 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... configure.ac: set -std=gnu11 Change-Id: I924b20265af945f5687d473b06f546ed9ac0c09b --- M configure.ac 1 file changed, 2 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified lynxis lazus: Looks good to me, approved diff --git a/configure.ac b/configure.ac index 92c1b62..3719d12 100644 --- a/configure.ac +++ b/configure.ac @@ -9,6 +9,8 @@ AM_INIT_AUTOMAKE([foreign dist-bzip2 no-dist-gzip 1.9]) +CFLAGS="$CFLAGS -std=gnu11" + dnl kernel style compile messages m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) -- To view, visit https://gerrit.osmocom.org/c/osmo-el2tpd/+/22475 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-el2tpd Gerrit-Branch: master Gerrit-Change-Id: I924b20265af945f5687d473b06f546ed9ac0c09b Gerrit-Change-Number: 22475 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: osmith Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 09:29:26 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 28 Jan 2021 09:29:26 +0000 Subject: Change in osmo-e1d[master]: configure.ac: set -std=gnu11 In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/22474 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/22474 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: Ib2356c2158b5aaa27cb4692de0f92d09d0bfca06 Gerrit-Change-Number: 22474 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-Comment-Date: Thu, 28 Jan 2021 09:29:26 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 09:29:28 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 28 Jan 2021 09:29:28 +0000 Subject: Change in osmo-e1d[master]: configure.ac: set -std=gnu11 In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-e1d/+/22474 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... configure.ac: set -std=gnu11 Change-Id: Ib2356c2158b5aaa27cb4692de0f92d09d0bfca06 --- M configure.ac 1 file changed, 2 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve tnt: Looks good to me, but someone else must approve osmith: Looks good to me, approved diff --git a/configure.ac b/configure.ac index 548cc68..a7e4952 100644 --- a/configure.ac +++ b/configure.ac @@ -10,6 +10,8 @@ AM_INIT_AUTOMAKE([foreign dist-bzip2 no-dist-gzip 1.9]) +CFLAGS="$CFLAGS -std=gnu11" + dnl kernel style compile messages m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) -- To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/22474 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1d Gerrit-Branch: master Gerrit-Change-Id: Ib2356c2158b5aaa27cb4692de0f92d09d0bfca06 Gerrit-Change-Number: 22474 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Reviewer: tnt Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 10:44:49 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 28 Jan 2021 10:44:49 +0000 Subject: Change in libusrp[master]: configure.ac: set -std=gnu11 In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libusrp/+/22469 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libusrp/+/22469 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libusrp Gerrit-Branch: master Gerrit-Change-Id: I9245df7569f0fed936d5e1a1783fc40203cecba1 Gerrit-Change-Number: 22469 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 28 Jan 2021 10:44:49 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 10:44:58 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 28 Jan 2021 10:44:58 +0000 Subject: Change in osmo-e1-recorder[master]: configure.ac: set -std=gnu11 In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1-recorder/+/22473 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-recorder/+/22473 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1-recorder Gerrit-Branch: master Gerrit-Change-Id: I19674944cea499d450571a7c6e47ab5676dc4b21 Gerrit-Change-Number: 22473 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 28 Jan 2021 10:44:58 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 10:45:04 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 28 Jan 2021 10:45:04 +0000 Subject: Change in osmo-cbc[master]: configure.ac: set -std=gnu11 In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22472 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22472 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: I8fe45ab98a2a000a428a17d586f4dd4f1ba5f2d6 Gerrit-Change-Number: 22472 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 28 Jan 2021 10:45:04 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 10:45:13 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 28 Jan 2021 10:45:13 +0000 Subject: Change in osmo-remsim[master]: configure.ac: set -std=gnu11 In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-remsim/+/22483 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-remsim/+/22483 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-remsim Gerrit-Branch: master Gerrit-Change-Id: I1c3682bfd50cfb43df041b6ca9a1cc7472a862dd Gerrit-Change-Number: 22483 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 28 Jan 2021 10:45:13 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 10:45:20 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 28 Jan 2021 10:45:20 +0000 Subject: Change in osmo-trx[master]: configure.ac: set -std=gnu11 In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/22486 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/22486 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: Ie95876d1d2ebf31ff588999d85584f6981522fa8 Gerrit-Change-Number: 22486 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 28 Jan 2021 10:45:20 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 10:47:50 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 28 Jan 2021 10:47:50 +0000 Subject: Change in libusrp[master]: configure.ac: set -std=gnu11 In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/libusrp/+/22469 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libusrp/+/22469 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libusrp Gerrit-Branch: master Gerrit-Change-Id: I9245df7569f0fed936d5e1a1783fc40203cecba1 Gerrit-Change-Number: 22469 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 28 Jan 2021 10:47:50 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 10:47:52 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 28 Jan 2021 10:47:52 +0000 Subject: Change in libusrp[master]: configure.ac: set -std=gnu11 In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/libusrp/+/22469 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... configure.ac: set -std=gnu11 Change-Id: I9245df7569f0fed936d5e1a1783fc40203cecba1 --- M configure.ac 1 file changed, 2 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve daniel: Looks good to me, but someone else must approve osmith: Looks good to me, approved diff --git a/configure.ac b/configure.ac index 0b38b93..bcc95e6 100644 --- a/configure.ac +++ b/configure.ac @@ -7,6 +7,8 @@ AC_CONFIG_MACRO_DIRS([m4]) +CFLAGS="$CFLAGS -std=gnu11" + dnl include release helper RELMAKE='-include osmo-release.mk' AC_SUBST([RELMAKE]) -- To view, visit https://gerrit.osmocom.org/c/libusrp/+/22469 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libusrp Gerrit-Branch: master Gerrit-Change-Id: I9245df7569f0fed936d5e1a1783fc40203cecba1 Gerrit-Change-Number: 22469 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 10:48:33 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 28 Jan 2021 10:48:33 +0000 Subject: Change in osmo-trx[master]: configure.ac: set -std=gnu11 In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/22486 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/22486 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: Ie95876d1d2ebf31ff588999d85584f6981522fa8 Gerrit-Change-Number: 22486 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 28 Jan 2021 10:48:33 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 10:48:35 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 28 Jan 2021 10:48:35 +0000 Subject: Change in osmo-trx[master]: configure.ac: set -std=gnu11 In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/22486 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... configure.ac: set -std=gnu11 Change-Id: Ie95876d1d2ebf31ff588999d85584f6981522fa8 --- M configure.ac 1 file changed, 2 insertions(+), 0 deletions(-) Approvals: daniel: Looks good to me, but someone else must approve pespin: Looks good to me, but someone else must approve osmith: Looks good to me, approved Jenkins Builder: Verified diff --git a/configure.ac b/configure.ac index 4ad344d..7f6aef7 100644 --- a/configure.ac +++ b/configure.ac @@ -34,6 +34,8 @@ AM_INIT_AUTOMAKE([foreign subdir-objects]) +CFLAGS="$CFLAGS -std=gnu11" + dnl Linux kernel KBuild style compile messages m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/22486 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: Ie95876d1d2ebf31ff588999d85584f6981522fa8 Gerrit-Change-Number: 22486 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 10:48:40 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 28 Jan 2021 10:48:40 +0000 Subject: Change in osmo-remsim[master]: configure.ac: set -std=gnu11 In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-remsim/+/22483 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-remsim/+/22483 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-remsim Gerrit-Branch: master Gerrit-Change-Id: I1c3682bfd50cfb43df041b6ca9a1cc7472a862dd Gerrit-Change-Number: 22483 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 28 Jan 2021 10:48:40 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 10:48:42 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 28 Jan 2021 10:48:42 +0000 Subject: Change in osmo-remsim[master]: configure.ac: set -std=gnu11 In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-remsim/+/22483 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... configure.ac: set -std=gnu11 Change-Id: I1c3682bfd50cfb43df041b6ca9a1cc7472a862dd --- M configure.ac 1 file changed, 1 insertion(+), 0 deletions(-) Approvals: daniel: Looks good to me, but someone else must approve pespin: Looks good to me, but someone else must approve osmith: Looks good to me, approved Jenkins Builder: Verified diff --git a/configure.ac b/configure.ac index 5833d0d..8592dd4 100644 --- a/configure.ac +++ b/configure.ac @@ -11,6 +11,7 @@ dnl tar-ustar: some asn1 filenames surpass the 99 char limit of tar, so we need dnl to make tar allow longer filenames. +CFLAGS="$CFLAGS -std=gnu11" dnl kernel style compile messages m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) -- To view, visit https://gerrit.osmocom.org/c/osmo-remsim/+/22483 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-remsim Gerrit-Branch: master Gerrit-Change-Id: I1c3682bfd50cfb43df041b6ca9a1cc7472a862dd Gerrit-Change-Number: 22483 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 10:48:45 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 28 Jan 2021 10:48:45 +0000 Subject: Change in osmo-cbc[master]: configure.ac: set -std=gnu11 In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22472 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22472 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: I8fe45ab98a2a000a428a17d586f4dd4f1ba5f2d6 Gerrit-Change-Number: 22472 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 28 Jan 2021 10:48:45 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 10:48:47 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 28 Jan 2021 10:48:47 +0000 Subject: Change in osmo-cbc[master]: configure.ac: set -std=gnu11 In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/22472 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... configure.ac: set -std=gnu11 Change-Id: I8fe45ab98a2a000a428a17d586f4dd4f1ba5f2d6 --- M configure.ac 1 file changed, 2 insertions(+), 0 deletions(-) Approvals: daniel: Looks good to me, but someone else must approve pespin: Looks good to me, but someone else must approve osmith: Looks good to me, approved Jenkins Builder: Verified diff --git a/configure.ac b/configure.ac index 2a141a6..a2d9288 100644 --- a/configure.ac +++ b/configure.ac @@ -9,6 +9,8 @@ AM_INIT_AUTOMAKE([dist-bzip2]) AC_CONFIG_TESTDIR(tests) +CFLAGS="$CFLAGS -std=gnu11" + dnl kernel style compile messages m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) -- To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/22472 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-cbc Gerrit-Branch: master Gerrit-Change-Id: I8fe45ab98a2a000a428a17d586f4dd4f1ba5f2d6 Gerrit-Change-Number: 22472 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 10:48:50 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 28 Jan 2021 10:48:50 +0000 Subject: Change in osmo-e1-recorder[master]: configure.ac: set -std=gnu11 In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-e1-recorder/+/22473 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-recorder/+/22473 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1-recorder Gerrit-Branch: master Gerrit-Change-Id: I19674944cea499d450571a7c6e47ab5676dc4b21 Gerrit-Change-Number: 22473 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 28 Jan 2021 10:48:50 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 10:48:52 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 28 Jan 2021 10:48:52 +0000 Subject: Change in osmo-e1-recorder[master]: configure.ac: set -std=gnu11 In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-e1-recorder/+/22473 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... configure.ac: set -std=gnu11 Change-Id: I19674944cea499d450571a7c6e47ab5676dc4b21 --- M configure.ac 1 file changed, 2 insertions(+), 0 deletions(-) Approvals: daniel: Looks good to me, but someone else must approve pespin: Looks good to me, but someone else must approve osmith: Looks good to me, approved Jenkins Builder: Verified diff --git a/configure.ac b/configure.ac index dd26f5a..e986809 100644 --- a/configure.ac +++ b/configure.ac @@ -9,6 +9,8 @@ AM_INIT_AUTOMAKE([dist-bzip2]) AC_CONFIG_TESTDIR(tests) +CFLAGS="$CFLAGS -std=gnu11" + dnl kernel style compile messages m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) -- To view, visit https://gerrit.osmocom.org/c/osmo-e1-recorder/+/22473 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-e1-recorder Gerrit-Branch: master Gerrit-Change-Id: I19674944cea499d450571a7c6e47ab5676dc4b21 Gerrit-Change-Number: 22473 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 11:47:55 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 28 Jan 2021 11:47:55 +0000 Subject: Change in osmo-sgsn[master]: manual/gbproxy: Update data model In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22491 ) Change subject: manual/gbproxy: Update data model ...................................................................... Patch Set 1: (2 comments) https://gerrit.osmocom.org/c/osmo-sgsn/+/22491/1/doc/manuals/chapters/gbproxy-overview.adoc File doc/manuals/chapters/gbproxy-overview.adoc: https://gerrit.osmocom.org/c/osmo-sgsn/+/22491/1/doc/manuals/chapters/gbproxy-overview.adoc at a68 PS1, Line 68: === Advanced Features You are also dropping no-longer supported features here, this doesn't seem to match the commit description. https://gerrit.osmocom.org/c/osmo-sgsn/+/22491/1/doc/manuals/chapters/gbproxy-overview.adoc at 35 PS1, Line 35: ==== gproxy_nse should this be "gbproxy_nse"? -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22491 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Icb9095f4002f2a0a4562fccecae109075cb93c7b Gerrit-Change-Number: 22491 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 28 Jan 2021 11:47:55 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 11:50:18 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 28 Jan 2021 11:50:18 +0000 Subject: Change in osmo-sgsn[master]: Rename OsmoGbPROXY -> *Proxy In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22492 ) Change subject: Rename OsmoGbPROXY -> *Proxy ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-sgsn/+/22492/1/doc/manuals/osmogbproxy-usermanual.adoc File doc/manuals/osmogbproxy-usermanual.adoc: https://gerrit.osmocom.org/c/osmo-sgsn/+/22492/1/doc/manuals/osmogbproxy-usermanual.adoc at 3 PS1, Line 3: OsmoGbProxy User Manual You can also define a variable here and use it in all files to be sure same naming is used, see as an example in osmo-gsm-tester/doc/manuals/osmo-gsm-tester-manual.adoc: 1::app-name: Osmo-GSM-Tester 3:{app-name} Manual -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22492 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I7542ac1d5242f1784146de2df7cecaf70fe93c6c Gerrit-Change-Number: 22492 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 28 Jan 2021 11:50:18 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 11:53:25 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 28 Jan 2021 11:53:25 +0000 Subject: Change in osmo-sgsn[master]: manuals/gbproxy: Update configuration chapter In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22493 ) Change subject: manuals/gbproxy: Update configuration chapter ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-sgsn/+/22493/1/doc/manuals/chapters/gbproxy-configuration.adoc File doc/manuals/chapters/gbproxy-configuration.adoc: https://gerrit.osmocom.org/c/osmo-sgsn/+/22493/1/doc/manuals/chapters/gbproxy-configuration.adoc at 3 PS1, Line 3: OsmoGbProxy requires very little configuration, most is the configuration of can "most" be used like this? or you need to write "most of it is" or "the most being" ? -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22493 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I01f8d47f9fa384a2528ddf2e6c936ff28d11409e Gerrit-Change-Number: 22493 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 28 Jan 2021 11:53:25 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 11:54:48 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 28 Jan 2021 11:54:48 +0000 Subject: Change in osmo-sgsn[master]: manuals/gbproxy: Add osmo-bsc MSC pooling chapter from Neels as a base In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22494 ) Change subject: manuals/gbproxy: Add osmo-bsc MSC pooling chapter from Neels as a base ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22494 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I930f5df847ea6f40d0ee0c75dd25b6dd20e00839 Gerrit-Change-Number: 22494 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 28 Jan 2021 11:54:48 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 11:55:19 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 28 Jan 2021 11:55:19 +0000 Subject: Change in osmo-sgsn[master]: manuals/gbproxy: MSC -> SGSN for pooling chapter In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22495 ) Change subject: manuals/gbproxy: MSC -> SGSN for pooling chapter ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22495 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I905835c2be7be43fe376fbc9d743107948c7e6d4 Gerrit-Change-Number: 22495 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 28 Jan 2021 11:55:19 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 11:55:37 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 28 Jan 2021 11:55:37 +0000 Subject: Change in osmo-sgsn[master]: manuals/gbproxy: Move pooling to separate chapter In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22496 ) Change subject: manuals/gbproxy: Move pooling to separate chapter ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22496 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ie2ad652c8261ce56cb2ed1a6f16a81486ccdf063 Gerrit-Change-Number: 22496 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 28 Jan 2021 11:55:37 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 11:56:30 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 28 Jan 2021 11:56:30 +0000 Subject: Change in libosmocore[master]: gprs_ns2: refactor: ensure all enums have GPRS_NS2_ In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22429 ) Change subject: gprs_ns2: refactor: ensure all enums have GPRS_NS2_ ...................................................................... Patch Set 6: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22429 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I548ff12f7277cbb7e1a630a3dc02b738ce89be72 Gerrit-Change-Number: 22429 Gerrit-PatchSet: 6 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 28 Jan 2021 11:56:30 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 11:56:32 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 28 Jan 2021 11:56:32 +0000 Subject: Change in libosmocore[master]: gprs_ns2: drop gprs_ns2_vty, rename vty2 -> vty In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22430 ) Change subject: gprs_ns2: drop gprs_ns2_vty, rename vty2 -> vty ...................................................................... Patch Set 6: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22430 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I8c3f2afecc74b78f7f914f7dce166cbcb63444eb Gerrit-Change-Number: 22430 Gerrit-PatchSet: 6 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 28 Jan 2021 11:56:32 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 11:56:37 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 28 Jan 2021 11:56:37 +0000 Subject: Change in libosmocore[master]: gprs_ns2: refactor: ensure all enums have GPRS_NS2_ In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22429 ) Change subject: gprs_ns2: refactor: ensure all enums have GPRS_NS2_ ...................................................................... gprs_ns2: refactor: ensure all enums have GPRS_NS2_ All public enum should have the prefix GPRS_NS2_. API change which must be synchronized with osmo-pcu, osmo-gbproxy, osmo-sgsn. Change-Id: I548ff12f7277cbb7e1a630a3dc02b738ce89be72 --- M include/osmocom/gprs/gprs_ns2.h M src/gb/gprs_bssgp2.c M src/gb/gprs_ns2.c M src/gb/gprs_ns2_fr.c M src/gb/gprs_ns2_sns.c M src/gb/gprs_ns2_udp.c M src/gb/gprs_ns2_vc_fsm.c M src/gb/gprs_ns2_vty.c M src/gb/gprs_ns2_vty2.c M tests/gb/gprs_ns2_test.c 10 files changed, 123 insertions(+), 123 deletions(-) Approvals: daniel: Looks good to me, but someone else must approve pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmocom/gprs/gprs_ns2.h b/include/osmocom/gprs/gprs_ns2.h index 1b20298..df682db 100644 --- a/include/osmocom/gprs/gprs_ns2.h +++ b/include/osmocom/gprs/gprs_ns2.h @@ -26,18 +26,18 @@ /*! The VC will use RESET/BLOCK/UNBLOCK to start the connection and do ALIVE/ACK. * This is what is needed for Frame Relay transport, and if you use a R97/R99 Gb * interface over an IP transport (never standardized by 3GPP) */ - NS2_VC_MODE_BLOCKRESET, + GPRS_NS2_VC_MODE_BLOCKRESET, /*! The VC will only use ALIVE/ACK (no RESET/BLOCK/UNBLOCK), which is for Gb-IP * interface compliant to 3GPP Rel=4 or later. */ - NS2_VC_MODE_ALIVE, + GPRS_NS2_VC_MODE_ALIVE, }; enum gprs_ns2_dialect { - NS2_DIALECT_UNDEF, - NS2_DIALECT_STATIC_ALIVE, - NS2_DIALECT_STATIC_RESETBLOCK, - NS2_DIALECT_IPACCESS, - NS2_DIALECT_SNS, + GPRS_NS2_DIALECT_UNDEF, + GPRS_NS2_DIALECT_STATIC_ALIVE, + GPRS_NS2_DIALECT_STATIC_RESETBLOCK, + GPRS_NS2_DIALECT_IPACCESS, + GPRS_NS2_DIALECT_SNS, }; /*! Osmocom NS link layer types */ @@ -50,9 +50,9 @@ /*! Osmocom NS primitives according to 48.016 5.2 Service primitves */ enum gprs_ns2_prim { - PRIM_NS_UNIT_DATA, - PRIM_NS_CONGESTION, - PRIM_NS_STATUS, + GPRS_NS2_PRIM_UNIT_DATA, + GPRS_NS2_PRIM_CONGESTION, + GPRS_NS2_PRIM_STATUS, }; extern const struct value_string gprs_ns2_prim_strs[]; @@ -68,22 +68,22 @@ /*! Osmocom NS primitives according to 48.016 5.2.2.4 Service primitves */ enum gprs_ns2_congestion_cause { - NS_CONG_CAUSE_BACKWARD_BEGIN, - NS_CONG_CAUSE_BACKWARD_END, - NS_CONG_CAUSE_FORWARD_BEGIN, - NS_CONG_CAUSE_FORWARD_END, + GPRS_NS2_CONG_CAUSE_BACKWARD_BEGIN, + GPRS_NS2_CONG_CAUSE_BACKWARD_END, + GPRS_NS2_CONG_CAUSE_FORWARD_BEGIN, + GPRS_NS2_CONG_CAUSE_FORWARD_END, }; /*! Osmocom NS primitives according to 48.016 5.2.2.6 Service primitves */ enum gprs_ns2_affecting_cause { - NS_AFF_CAUSE_VC_FAILURE, - NS_AFF_CAUSE_VC_RECOVERY, - NS_AFF_CAUSE_FAILURE, - NS_AFF_CAUSE_RECOVERY, + GPRS_NS2_AFF_CAUSE_VC_FAILURE, + GPRS_NS2_AFF_CAUSE_VC_RECOVERY, + GPRS_NS2_AFF_CAUSE_FAILURE, + GPRS_NS2_AFF_CAUSE_RECOVERY, /* osmocom own causes */ - NS_AFF_CAUSE_SNS_CONFIGURED, - NS_AFF_CAUSE_SNS_FAILURE, - NS_AFF_CAUSE_SNS_NO_ENDPOINTS, + GPRS_NS2_AFF_CAUSE_SNS_CONFIGURED, + GPRS_NS2_AFF_CAUSE_SNS_FAILURE, + GPRS_NS2_AFF_CAUSE_SNS_NO_ENDPOINTS, }; extern const struct value_string gprs_ns2_aff_cause_prim_strs[]; @@ -94,9 +94,9 @@ /*! Osmocom NS primitives according to 48.016 5.2.2.7 Service primitves */ enum gprs_ns2_change_ip_endpoint { - NS_ENDPOINT_NO_CHANGE, - NS_ENDPOINT_REQUEST_CHANGE, - NS_ENDPOINT_CONFIRM_CHANGE, + GRPS_NS2_ENDPOINT_NO_CHANGE, + GPRS_NS2_ENDPOINT_REQUEST_CHANGE, + GPRS_NS2_ENDPOINT_CONFIRM_CHANGE, }; extern const struct value_string gprs_ns2_cause_strs[]; diff --git a/src/gb/gprs_bssgp2.c b/src/gb/gprs_bssgp2.c index 5a8d41f..0f519ad 100644 --- a/src/gb/gprs_bssgp2.c +++ b/src/gb/gprs_bssgp2.c @@ -52,7 +52,7 @@ nsp.nsei = nsei; nsp.u.unitdata.link_selector = lsp; - osmo_prim_init(&nsp.oph, SAP_NS, PRIM_NS_UNIT_DATA, PRIM_OP_REQUEST, msg); + osmo_prim_init(&nsp.oph, SAP_NS, GPRS_NS2_PRIM_UNIT_DATA, PRIM_OP_REQUEST, msg); rc = gprs_ns2_recv_prim(nsi, &nsp.oph); return rc; diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c index 811294b..7e273fb 100644 --- a/src/gb/gprs_ns2.c +++ b/src/gb/gprs_ns2.c @@ -196,19 +196,19 @@ }; const struct value_string gprs_ns2_aff_cause_prim_strs[] = { - { NS_AFF_CAUSE_VC_FAILURE, "NSVC failure" }, - { NS_AFF_CAUSE_VC_RECOVERY, "NSVC recovery" }, - { NS_AFF_CAUSE_FAILURE, "NSE failure" }, - { NS_AFF_CAUSE_RECOVERY, "NSE recovery" }, - { NS_AFF_CAUSE_SNS_CONFIGURED, "NSE SNS configured" }, - { NS_AFF_CAUSE_SNS_FAILURE, "NSE SNS failure" }, + { GPRS_NS2_AFF_CAUSE_VC_FAILURE, "NSVC failure" }, + { GPRS_NS2_AFF_CAUSE_VC_RECOVERY, "NSVC recovery" }, + { GPRS_NS2_AFF_CAUSE_FAILURE, "NSE failure" }, + { GPRS_NS2_AFF_CAUSE_RECOVERY, "NSE recovery" }, + { GPRS_NS2_AFF_CAUSE_SNS_CONFIGURED, "NSE SNS configured" }, + { GPRS_NS2_AFF_CAUSE_SNS_FAILURE, "NSE SNS failure" }, { 0, NULL } }; const struct value_string gprs_ns2_prim_strs[] = { - { PRIM_NS_UNIT_DATA, "UNIT DATA" }, - { PRIM_NS_CONGESTION, "CONGESTION" }, - { PRIM_NS_STATUS, "STATUS" }, + { GPRS_NS2_PRIM_UNIT_DATA, "UNIT DATA" }, + { GPRS_NS2_PRIM_CONGESTION, "CONGESTION" }, + { GPRS_NS2_PRIM_STATUS, "STATUS" }, { 0, NULL } }; @@ -429,7 +429,7 @@ nsp = container_of(oph, struct osmo_gprs_ns2_prim, oph); - if (oph->operation != PRIM_OP_REQUEST || oph->primitive != PRIM_NS_UNIT_DATA) + if (oph->operation != PRIM_OP_REQUEST || oph->primitive != GPRS_NS2_PRIM_UNIT_DATA) return -EINVAL; if (!oph->msg) @@ -448,9 +448,9 @@ if (!nsvc) return 0; - if (nsp->u.unitdata.change == NS_ENDPOINT_REQUEST_CHANGE) + if (nsp->u.unitdata.change == GPRS_NS2_ENDPOINT_REQUEST_CHANGE) sducontrol = 1; - else if (nsp->u.unitdata.change == NS_ENDPOINT_CONFIRM_CHANGE) + else if (nsp->u.unitdata.change == GPRS_NS2_ENDPOINT_CONFIRM_CHANGE) sducontrol = 2; return ns2_tx_unit_data(nsvc, bvci, sducontrol, oph->msg); @@ -477,7 +477,7 @@ if (nsvc) nsp.u.status.nsvc = gprs_ns2_ll_str_buf(nsvc_str, sizeof(nsvc_str), nsvc); - osmo_prim_init(&nsp.oph, SAP_NS, PRIM_NS_STATUS, + osmo_prim_init(&nsp.oph, SAP_NS, GPRS_NS2_PRIM_STATUS, PRIM_OP_INDICATION, NULL); nse->nsi->cb(&nsp.oph, nse->nsi->cb_data); } @@ -539,7 +539,7 @@ if (!nsvc) return; - ns2_prim_status_ind(nsvc->nse, nsvc, 0, NS_AFF_CAUSE_VC_FAILURE); + ns2_prim_status_ind(nsvc->nse, nsvc, 0, GPRS_NS2_AFF_CAUSE_VC_FAILURE); llist_del(&nsvc->list); llist_del(&nsvc->blist); @@ -703,7 +703,7 @@ if (!nse) return NULL; - if (dialect == NS2_DIALECT_SNS) { + if (dialect == GPRS_NS2_DIALECT_SNS) { snprintf(sns, sizeof(sns), "NSE%05u-SNS", nsei); nse->bss_sns_fi = ns2_sns_bss_fsm_alloc(nse, sns); if (!nse->bss_sns_fi) { @@ -741,7 +741,7 @@ nse->alive = false; gprs_ns2_free_nsvcs(nse); - ns2_prim_status_ind(nse, NULL, 0, NS_AFF_CAUSE_FAILURE); + ns2_prim_status_ind(nse, NULL, 0, GPRS_NS2_AFF_CAUSE_FAILURE); llist_del(&nse->list); if (nse->bss_sns_fi) @@ -828,7 +828,7 @@ case NS_PDUT_RESET: /* accept PDU RESET when vc_mode matches */ if (bind->accept_ipaccess) { - dialect = NS2_DIALECT_IPACCESS; + dialect = GPRS_NS2_DIALECT_IPACCESS; break; } @@ -871,7 +871,7 @@ nse = gprs_ns2_nse_by_nsei(bind->nsi, nsei); if (!nse) { /* only create nse for udp & ipaccess */ - if (bind->ll != GPRS_NS2_LL_UDP || dialect != NS2_DIALECT_IPACCESS) + if (bind->ll != GPRS_NS2_LL_UDP || dialect != GPRS_NS2_DIALECT_IPACCESS) return NS2_CS_SKIPPED; if (!bind->nsi->create_nse || !bind->accept_ipaccess) @@ -942,7 +942,7 @@ if (!nsvc) return NULL; - if (nsvc->mode == NS2_VC_MODE_BLOCKRESET) { + if (nsvc->mode == GPRS_NS2_VC_MODE_BLOCKRESET) { nsvc->nsvci = nsvci; nsvc->nsvci_is_valid = true; } @@ -1151,7 +1151,7 @@ /* wait until both data_weight and sig_weight are != 0 before declaring NSE as alive */ if (unblocked && nse->sum_data_weight && nse->sum_sig_weight) { nse->alive = true; - ns2_prim_status_ind(nse, NULL, 0, NS_AFF_CAUSE_RECOVERY); + ns2_prim_status_ind(nse, NULL, 0, GPRS_NS2_AFF_CAUSE_RECOVERY); nse->first = false; return; } @@ -1159,7 +1159,7 @@ if (nse->alive && (nse->sum_data_weight == 0 || nse->sum_sig_weight == 0)) { /* nse became unavailable */ nse->alive = false; - ns2_prim_status_ind(nse, NULL, 0, NS_AFF_CAUSE_FAILURE); + ns2_prim_status_ind(nse, NULL, 0, GPRS_NS2_AFF_CAUSE_FAILURE); } } @@ -1284,12 +1284,12 @@ enum gprs_ns2_vc_mode ns2_dialect_to_vc_mode(enum gprs_ns2_dialect dialect) { switch (dialect) { - case NS2_DIALECT_SNS: - case NS2_DIALECT_STATIC_ALIVE: - return NS2_VC_MODE_ALIVE; - case NS2_DIALECT_STATIC_RESETBLOCK: - case NS2_DIALECT_IPACCESS: - return NS2_VC_MODE_BLOCKRESET; + case GPRS_NS2_DIALECT_SNS: + case GPRS_NS2_DIALECT_STATIC_ALIVE: + return GPRS_NS2_VC_MODE_ALIVE; + case GPRS_NS2_DIALECT_STATIC_RESETBLOCK: + case GPRS_NS2_DIALECT_IPACCESS: + return GPRS_NS2_VC_MODE_BLOCKRESET; default: return -1; } diff --git a/src/gb/gprs_ns2_fr.c b/src/gb/gprs_ns2_fr.c index 8ad44ac..1c88db6 100644 --- a/src/gb/gprs_ns2_fr.c +++ b/src/gb/gprs_ns2_fr.c @@ -751,7 +751,7 @@ snprintf(idbuf, sizeof(idbuf), "%s-%s-DLCI%u-NSE%05u-NSVC%05u", gprs_ns2_lltype_str(nse->ll), bpriv->netif, dlci, nse->nsei, nsvci); - nsvc = ns2_vc_alloc(bind, nse, true, NS2_VC_MODE_BLOCKRESET, idbuf); + nsvc = ns2_vc_alloc(bind, nse, true, GPRS_NS2_VC_MODE_BLOCKRESET, idbuf); if (!nsvc) goto err; @@ -789,7 +789,7 @@ OSMO_ASSERT(gprs_ns2_is_fr_bind(bind)); nse = gprs_ns2_nse_by_nsei(bind->nsi, nsei); if (!nse) { - nse = gprs_ns2_create_nse(bind->nsi, nsei, GPRS_NS2_LL_FR, NS2_DIALECT_STATIC_RESETBLOCK); + nse = gprs_ns2_create_nse(bind->nsi, nsei, GPRS_NS2_LL_FR, GPRS_NS2_DIALECT_STATIC_RESETBLOCK); if (!nse) return NULL; created_nse = true; diff --git a/src/gb/gprs_ns2_sns.c b/src/gb/gprs_ns2_sns.c index 2dc6524..427a153 100644 --- a/src/gb/gprs_ns2_sns.c +++ b/src/gb/gprs_ns2_sns.c @@ -713,7 +713,7 @@ /* on a generic failure, the timer callback will recover */ if (old_state != GPRS_SNS_ST_UNCONFIGURED) - ns2_prim_status_ind(gss->nse, NULL, 0, NS_AFF_CAUSE_SNS_FAILURE); + ns2_prim_status_ind(gss->nse, NULL, 0, GPRS_NS2_AFF_CAUSE_SNS_FAILURE); ns2_clear_ipv46_entries(gss); @@ -1265,7 +1265,7 @@ static void ns2_sns_st_configured_onenter(struct osmo_fsm_inst *fi, uint32_t old_state) { struct gprs_ns2_nse *nse = nse_inst_from_fi(fi); - ns2_prim_status_ind(nse, NULL, 0, NS_AFF_CAUSE_SNS_CONFIGURED); + ns2_prim_status_ind(nse, NULL, 0, GPRS_NS2_AFF_CAUSE_SNS_CONFIGURED); } static const struct osmo_fsm_state ns2_sns_bss_states[] = { @@ -1369,7 +1369,7 @@ /* Choose the next sns endpoint. */ if (llist_empty(&gss->sns_endpoints)) { gss->initial = NULL; - ns2_prim_status_ind(gss->nse, NULL, 0, NS_AFF_CAUSE_SNS_NO_ENDPOINTS); + ns2_prim_status_ind(gss->nse, NULL, 0, GPRS_NS2_AFF_CAUSE_SNS_NO_ENDPOINTS); osmo_fsm_inst_state_chg(fi, GPRS_SNS_ST_UNCONFIGURED, 0, 3); return; } else if (!gss->initial) { @@ -1606,7 +1606,7 @@ return -EINVAL; } - if (nse->dialect != NS2_DIALECT_SNS) { + if (nse->dialect != GPRS_NS2_DIALECT_SNS) { return -EINVAL; } @@ -1645,7 +1645,7 @@ return -EINVAL; } - if (nse->dialect != NS2_DIALECT_SNS) { + if (nse->dialect != GPRS_NS2_DIALECT_SNS) { return -EINVAL; } @@ -1698,7 +1698,7 @@ return -EINVAL; } - if (nse->dialect != NS2_DIALECT_SNS) { + if (nse->dialect != GPRS_NS2_DIALECT_SNS) { return -EINVAL; } diff --git a/src/gb/gprs_ns2_udp.c b/src/gb/gprs_ns2_udp.c index e1ffad6..43ece13 100644 --- a/src/gb/gprs_ns2_udp.c +++ b/src/gb/gprs_ns2_udp.c @@ -488,7 +488,7 @@ if (osmo_sockaddr_cmp(remote, &vpriv->remote)) return false; - if (nsvc->mode == NS2_VC_MODE_BLOCKRESET) + if (nsvc->mode == GPRS_NS2_VC_MODE_BLOCKRESET) if (nsvc->nsvci != nsvci) return false; diff --git a/src/gb/gprs_ns2_vc_fsm.c b/src/gb/gprs_ns2_vc_fsm.c index 7ee29a1..457a41f 100644 --- a/src/gb/gprs_ns2_vc_fsm.c +++ b/src/gb/gprs_ns2_vc_fsm.c @@ -212,7 +212,7 @@ osmo_timer_schedule(&priv->alive.timer, nsi->timeout[NS_TOUT_TNS_ALIVE], 0); } else { /* lost connection */ - if (priv->nsvc->mode == NS2_VC_MODE_BLOCKRESET) { + if (priv->nsvc->mode == GPRS_NS2_VC_MODE_BLOCKRESET) { osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_RESET, nsi->timeout[NS_TOUT_TNS_RESET], 0); } else { osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_ALIVE, nsi->timeout[NS_TOUT_TNS_ALIVE], 0); @@ -235,10 +235,10 @@ switch (event) { case GPRS_NS2_EV_REQ_START: switch (priv->nsvc->mode) { - case NS2_VC_MODE_ALIVE: + case GPRS_NS2_VC_MODE_ALIVE: osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_ALIVE, nsi->timeout[NS_TOUT_TNS_ALIVE], NS_TOUT_TNS_ALIVE); break; - case NS2_VC_MODE_BLOCKRESET: + case GPRS_NS2_VC_MODE_BLOCKRESET: osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_RESET, nsi->timeout[NS_TOUT_TNS_RESET], NS_TOUT_TNS_RESET); break; } @@ -372,7 +372,7 @@ priv->accept_unitdata = true; ns2_nse_notify_unblocked(nsvc, true); - ns2_prim_status_ind(nse, nsvc, 0, NS_AFF_CAUSE_VC_RECOVERY); + ns2_prim_status_ind(nse, nsvc, 0, GPRS_NS2_AFF_CAUSE_VC_RECOVERY); } static void ns2_st_unblocked(struct osmo_fsm_inst *fi, uint32_t event, void *data) @@ -551,9 +551,9 @@ /* 10.3.9 NS SDU Control Bits */ if (nsh->data[0] & 0x1) - nsp.u.unitdata.change = NS_ENDPOINT_REQUEST_CHANGE; + nsp.u.unitdata.change = GPRS_NS2_ENDPOINT_REQUEST_CHANGE; - osmo_prim_init(&nsp.oph, SAP_NS, PRIM_NS_UNIT_DATA, + osmo_prim_init(&nsp.oph, SAP_NS, GPRS_NS2_PRIM_UNIT_DATA, PRIM_OP_INDICATION, msg); nsi->cb(&nsp.oph, nsi->cb_data); } @@ -568,7 +568,7 @@ switch (event) { case GPRS_NS2_EV_RX_RESET: - if (priv->nsvc->mode != NS2_VC_MODE_BLOCKRESET) + if (priv->nsvc->mode != GPRS_NS2_VC_MODE_BLOCKRESET) break; /* move the FSM into reset */ diff --git a/src/gb/gprs_ns2_vty.c b/src/gb/gprs_ns2_vty.c index d6674ff..f803655 100644 --- a/src/gb/gprs_ns2_vty.c +++ b/src/gb/gprs_ns2_vty.c @@ -212,7 +212,7 @@ priv.dscp, VTY_NEWLINE); vty_out(vty, " encapsulation udp use-reset-block-unblock %s%s", - priv.vc_mode == NS2_VC_MODE_BLOCKRESET ? "enabled" : "disabled", VTY_NEWLINE); + priv.vc_mode == GPRS_NS2_VC_MODE_BLOCKRESET ? "enabled" : "disabled", VTY_NEWLINE); llist_for_each_entry(vtyvc, &priv.vtyvc, list) { vty_out(vty, " nse %u nsvci %u%s", @@ -440,7 +440,7 @@ return CMD_WARNING; } - if (nse->dialect == NS2_DIALECT_SNS) { + if (nse->dialect == GPRS_NS2_DIALECT_SNS) { gprs_ns2_free_nsvcs(nse); } else { /* Perform the operation for all nsvc */ @@ -718,9 +718,9 @@ enum gprs_ns2_vc_mode vc_mode; if (!strcmp(argv[0], "enabled")) - vc_mode = NS2_VC_MODE_BLOCKRESET; + vc_mode = GPRS_NS2_VC_MODE_BLOCKRESET; else - vc_mode = NS2_VC_MODE_ALIVE; + vc_mode = GPRS_NS2_VC_MODE_ALIVE; priv.vc_mode = vc_mode; @@ -831,7 +831,7 @@ vty_nsi = nsi; memset(&priv, 0, sizeof(struct ns2_vty_priv)); INIT_LLIST_HEAD(&priv.vtyvc); - priv.vc_mode = NS2_VC_MODE_BLOCKRESET; + priv.vc_mode = GPRS_NS2_VC_MODE_BLOCKRESET; if (default_bind) memcpy(&priv.udp, default_bind, sizeof(*default_bind)); @@ -888,7 +888,7 @@ struct gprs_ns2_nse *nse; struct gprs_ns2_vc *nsvc; struct osmo_sockaddr sockaddr; - enum gprs_ns2_dialect dialect = NS2_DIALECT_UNDEF; + enum gprs_ns2_dialect dialect = GPRS_NS2_DIALECT_UNDEF; int rc = 0; if (!vty_nsi) @@ -906,7 +906,7 @@ return -1; } - bind->accept_ipaccess = priv.vc_mode == NS2_VC_MODE_BLOCKRESET; + bind->accept_ipaccess = priv.vc_mode == GPRS_NS2_VC_MODE_BLOCKRESET; } /* create vcs */ @@ -914,10 +914,10 @@ /* validate settings */ switch (vtyvc->ll) { case GPRS_NS2_LL_UDP: - if (priv.vc_mode == NS2_VC_MODE_BLOCKRESET) - dialect = NS2_DIALECT_IPACCESS; + if (priv.vc_mode == GPRS_NS2_VC_MODE_BLOCKRESET) + dialect = GPRS_NS2_DIALECT_IPACCESS; else - dialect = NS2_DIALECT_STATIC_ALIVE; + dialect = GPRS_NS2_DIALECT_STATIC_ALIVE; if (strlen(vtyvc->remote.ip) == 0) { /* Invalid IP for VC */ continue; @@ -934,10 +934,10 @@ } break; case GPRS_NS2_LL_FR: - dialect = NS2_DIALECT_STATIC_RESETBLOCK; + dialect = GPRS_NS2_DIALECT_STATIC_RESETBLOCK; break; case GPRS_NS2_LL_FR_GRE: - dialect = NS2_DIALECT_STATIC_RESETBLOCK; + dialect = GPRS_NS2_DIALECT_STATIC_RESETBLOCK; continue; case GPRS_NS2_LL_UNDEF: /* should not happen */ diff --git a/src/gb/gprs_ns2_vty2.c b/src/gb/gprs_ns2_vty2.c index 43dd263..31aff3e 100644 --- a/src/gb/gprs_ns2_vty2.c +++ b/src/gb/gprs_ns2_vty2.c @@ -171,7 +171,7 @@ nse = gprs_ns2_nse_by_nsei(vty_nsi, nsei); if (!nse) { - nse = gprs_ns2_create_nse(vty_nsi, nsei, GPRS_NS2_LL_UNDEF, NS2_DIALECT_UNDEF); + nse = gprs_ns2_create_nse(vty_nsi, nsei, GPRS_NS2_LL_UNDEF, GPRS_NS2_DIALECT_UNDEF); if (!nse) { vty_out(vty, "Failed to create NSE!%s", VTY_NEWLINE); return CMD_ERR_INCOMPLETE; @@ -345,7 +345,7 @@ break; case GPRS_NS2_LL_UDP: switch (nsvc->nse->dialect) { - case NS2_DIALECT_IPACCESS: + case GPRS_NS2_DIALECT_IPACCESS: addr = gprs_ns2_ip_vc_remote(nsvc); if (!addr) break; @@ -355,7 +355,7 @@ nsvc->bind->name, addr_str.ip, addr_str.port, nsvc->nsvci, VTY_NEWLINE); break; - case NS2_DIALECT_STATIC_ALIVE: + case GPRS_NS2_DIALECT_STATIC_ALIVE: addr = gprs_ns2_ip_vc_remote(nsvc); if (!addr) break; @@ -390,7 +390,7 @@ vty_out(vty, " nse %u%s", nse->nsei, VTY_NEWLINE); switch (nse->dialect) { - case NS2_DIALECT_SNS: + case GPRS_NS2_DIALECT_SNS: ns2_sns_write_vty(vty, nse); break; default: @@ -709,7 +709,7 @@ goto err; } - if (nse->dialect != NS2_DIALECT_STATIC_RESETBLOCK && nse->dialect != NS2_DIALECT_UNDEF) { + if (nse->dialect != GPRS_NS2_DIALECT_STATIC_RESETBLOCK && nse->dialect != GPRS_NS2_DIALECT_UNDEF) { vty_out(vty, "Can not mix NS-VC with different dialects%s", VTY_NEWLINE); goto err; } @@ -719,8 +719,8 @@ ll_modified = true; } - if (nse->dialect == NS2_DIALECT_UNDEF) { - nse->dialect = NS2_DIALECT_STATIC_RESETBLOCK; + if (nse->dialect == GPRS_NS2_DIALECT_UNDEF) { + nse->dialect = GPRS_NS2_DIALECT_STATIC_RESETBLOCK; dialect_modified = true; } @@ -755,7 +755,7 @@ if (ll_modified) nse->ll = GPRS_NS2_LL_UNDEF; if (dialect_modified) - nse->dialect = NS2_DIALECT_UNDEF; + nse->dialect = GPRS_NS2_DIALECT_UNDEF; return CMD_WARNING; } @@ -806,7 +806,7 @@ gprs_ns2_free_nsvc(nsvc); if (llist_empty(&nse->nsvc)) { nse->ll = GPRS_NS2_LL_UNDEF; - nse->dialect = NS2_DIALECT_UNDEF; + nse->dialect = GPRS_NS2_DIALECT_UNDEF; } return CMD_SUCCESS; @@ -825,15 +825,15 @@ uint16_t nsvci = atoi(argv[0]); switch (nse->dialect) { - case NS2_DIALECT_SNS: - case NS2_DIALECT_STATIC_ALIVE: + case GPRS_NS2_DIALECT_SNS: + case GPRS_NS2_DIALECT_STATIC_ALIVE: vty_out(vty, "NSE doesn't support NSVCI.%s", VTY_NEWLINE); return CMD_WARNING; - case NS2_DIALECT_UNDEF: + case GPRS_NS2_DIALECT_UNDEF: vty_out(vty, "No NSVCs configured%s", VTY_NEWLINE); return CMD_WARNING; - case NS2_DIALECT_IPACCESS: - case NS2_DIALECT_STATIC_RESETBLOCK: + case GPRS_NS2_DIALECT_IPACCESS: + case GPRS_NS2_DIALECT_STATIC_RESETBLOCK: break; } @@ -852,7 +852,7 @@ gprs_ns2_free_nsvc(nsvc); if (llist_empty(&nse->nsvc)) { nse->ll = GPRS_NS2_LL_UNDEF; - nse->dialect = NS2_DIALECT_UNDEF; + nse->dialect = GPRS_NS2_DIALECT_UNDEF; } return CMD_SUCCESS; @@ -883,8 +883,8 @@ ll_modified = true; } - if (nse->dialect == NS2_DIALECT_UNDEF) { - nse->dialect = NS2_DIALECT_STATIC_ALIVE; + if (nse->dialect == GPRS_NS2_DIALECT_UNDEF) { + nse->dialect = GPRS_NS2_DIALECT_STATIC_ALIVE; dialect_modified = true; } @@ -893,7 +893,7 @@ goto err; } - if (nse->dialect != NS2_DIALECT_STATIC_ALIVE) { + if (nse->dialect != GPRS_NS2_DIALECT_STATIC_ALIVE) { vty_out(vty, "Can not mix NS-VC with different dialects%s", VTY_NEWLINE); goto err; } @@ -934,7 +934,7 @@ if (ll_modified) nse->ll = GPRS_NS2_LL_UNDEF; if (dialect_modified) - nse->dialect = NS2_DIALECT_UNDEF; + nse->dialect = GPRS_NS2_DIALECT_UNDEF; return CMD_WARNING; } @@ -961,7 +961,7 @@ return CMD_WARNING; } - if (nse->dialect != NS2_DIALECT_STATIC_ALIVE) { + if (nse->dialect != GPRS_NS2_DIALECT_STATIC_ALIVE) { vty_out(vty, "This NSE doesn't support UDP with dialect static alive.%s", VTY_NEWLINE); return CMD_WARNING; } @@ -1010,7 +1010,7 @@ gprs_ns2_free_nsvc(nsvc); if (llist_empty(&nse->nsvc)) { nse->ll = GPRS_NS2_LL_UNDEF; - nse->dialect = NS2_DIALECT_UNDEF; + nse->dialect = GPRS_NS2_DIALECT_UNDEF; } return CMD_SUCCESS; @@ -1044,8 +1044,8 @@ ll_modified = true; } - if (nse->dialect == NS2_DIALECT_UNDEF) { - nse->dialect = NS2_DIALECT_IPACCESS; + if (nse->dialect == GPRS_NS2_DIALECT_UNDEF) { + nse->dialect = GPRS_NS2_DIALECT_IPACCESS; dialect_modified = true; } @@ -1054,7 +1054,7 @@ goto err; } - if (nse->dialect != NS2_DIALECT_IPACCESS) { + if (nse->dialect != GPRS_NS2_DIALECT_IPACCESS) { vty_out(vty, "Can not mix NS-VC with different dialects%s", VTY_NEWLINE); goto err; } @@ -1095,7 +1095,7 @@ if (ll_modified) nse->ll = GPRS_NS2_LL_UNDEF; if (dialect_modified) - nse->dialect = NS2_DIALECT_UNDEF; + nse->dialect = GPRS_NS2_DIALECT_UNDEF; return CMD_WARNING; } @@ -1125,7 +1125,7 @@ return CMD_WARNING; } - if (nse->dialect != NS2_DIALECT_IPACCESS) { + if (nse->dialect != GPRS_NS2_DIALECT_IPACCESS) { vty_out(vty, "This NSE doesn't support UDP with dialect ipaccess.%s", VTY_NEWLINE); return CMD_WARNING; } @@ -1185,7 +1185,7 @@ gprs_ns2_free_nsvc(nsvc); if (llist_empty(&nse->nsvc)) { nse->ll = GPRS_NS2_LL_UNDEF; - nse->dialect = NS2_DIALECT_UNDEF; + nse->dialect = GPRS_NS2_DIALECT_UNDEF; } return CMD_SUCCESS; @@ -1213,13 +1213,13 @@ ll_modified = true; } - if (nse->dialect == NS2_DIALECT_UNDEF) { + if (nse->dialect == GPRS_NS2_DIALECT_UNDEF) { char sns[16]; snprintf(sns, sizeof(sns), "NSE%05u-SNS", nse->nsei); nse->bss_sns_fi = ns2_sns_bss_fsm_alloc(nse, sns); if (!nse->bss_sns_fi) goto err; - nse->dialect = NS2_DIALECT_SNS; + nse->dialect = GPRS_NS2_DIALECT_SNS; dialect_modified = true; } @@ -1228,7 +1228,7 @@ goto err; } - if (nse->dialect != NS2_DIALECT_SNS) { + if (nse->dialect != GPRS_NS2_DIALECT_SNS) { vty_out(vty, "Can not mix NS-VC with different dialects%s", VTY_NEWLINE); goto err; } @@ -1259,7 +1259,7 @@ if (ll_modified) nse->ll = GPRS_NS2_LL_UNDEF; if (dialect_modified) - nse->dialect = NS2_DIALECT_UNDEF; + nse->dialect = GPRS_NS2_DIALECT_UNDEF; return CMD_WARNING; } @@ -1282,7 +1282,7 @@ return CMD_WARNING; } - if (nse->dialect != NS2_DIALECT_SNS) { + if (nse->dialect != GPRS_NS2_DIALECT_SNS) { vty_out(vty, "This NSE doesn't support UDP with dialect ip-sns.%s", VTY_NEWLINE); return CMD_WARNING; } @@ -1313,7 +1313,7 @@ osmo_fsm_inst_term(nse->bss_sns_fi, OSMO_FSM_TERM_REQUEST, NULL); nse->bss_sns_fi = NULL; nse->ll = GPRS_NS2_LL_UNDEF; - nse->dialect = NS2_DIALECT_UNDEF; + nse->dialect = GPRS_NS2_DIALECT_UNDEF; } return CMD_SUCCESS; @@ -1493,7 +1493,7 @@ if (!nse->persistent) { gprs_ns2_free_nse(nse); - } else if (nse->dialect == NS2_DIALECT_SNS) { + } else if (nse->dialect == GPRS_NS2_DIALECT_SNS) { gprs_ns2_free_nsvcs(nse); } else { /* Perform the operation for all nsvc */ diff --git a/tests/gb/gprs_ns2_test.c b/tests/gb/gprs_ns2_test.c index 335a079..9e4e02f 100644 --- a/tests/gb/gprs_ns2_test.c +++ b/tests/gb/gprs_ns2_test.c @@ -45,7 +45,7 @@ { OSMO_ASSERT(oph->sap == SAP_NS); if (oph->msg) { - if (oph->primitive == PRIM_NS_UNIT_DATA) { + if (oph->primitive == GPRS_NS2_PRIM_UNIT_DATA) { osmo_wqueue_enqueue(unitdata, oph->msg); } else { msgb_free(oph->msg); @@ -187,11 +187,11 @@ bind[0] = dummy_bind(nsi, "transfercap1"); bind[1] = dummy_bind(nsi, "transfercap2"); bind[1]->transfer_capability = 23; - nse = gprs_ns2_create_nse(nsi, 1001, GPRS_NS2_LL_UDP, NS2_DIALECT_STATIC_ALIVE); + nse = gprs_ns2_create_nse(nsi, 1001, GPRS_NS2_LL_UDP, GPRS_NS2_DIALECT_STATIC_ALIVE); OSMO_ASSERT(nse); printf("---- Test with NSVC[0]\n"); - nsvc[0] = ns2_vc_alloc(bind[0], nse, false, NS2_VC_MODE_ALIVE, NULL); + nsvc[0] = ns2_vc_alloc(bind[0], nse, false, GPRS_NS2_VC_MODE_ALIVE, NULL); OSMO_ASSERT(nsvc[0]); OSMO_ASSERT(ns2_count_transfer_cap(nse, 0) == 0); nsvc[0]->fi->state = 3; /* HACK: 3 = GPRS_NS2_ST_UNBLOCKED */ @@ -199,7 +199,7 @@ OSMO_ASSERT(ns2_count_transfer_cap(nse, 0) == 42); printf("---- Test with NSVC[1]\n"); - nsvc[1] = ns2_vc_alloc(bind[0], nse, false, NS2_VC_MODE_ALIVE, NULL); + nsvc[1] = ns2_vc_alloc(bind[0], nse, false, GPRS_NS2_VC_MODE_ALIVE, NULL); OSMO_ASSERT(nsvc[1]); OSMO_ASSERT(ns2_count_transfer_cap(nse, 0) == 42); nsvc[1]->fi->state = 3; /* HACK: 3 = GPRS_NS2_ST_UNBLOCKED */ @@ -207,7 +207,7 @@ OSMO_ASSERT(ns2_count_transfer_cap(nse, 0) == 42); printf("---- Test with NSVC[2]\n"); - nsvc[2] = ns2_vc_alloc(bind[1], nse, false, NS2_VC_MODE_ALIVE, NULL); + nsvc[2] = ns2_vc_alloc(bind[1], nse, false, GPRS_NS2_VC_MODE_ALIVE, NULL); OSMO_ASSERT(nsvc[2]); OSMO_ASSERT(ns2_count_transfer_cap(nse, 0) == 42); nsvc[2]->fi->state = 3; /* HACK: 3 = GPRS_NS2_ST_UNBLOCKED */ @@ -244,13 +244,13 @@ nsi = gprs_ns2_instantiate(ctx, ns_prim_cb, NULL); bind[0] = dummy_bind(nsi, "bblock1"); bind[1] = dummy_bind(nsi, "bblock2"); - nse = gprs_ns2_create_nse(nsi, 1001, GPRS_NS2_LL_UDP, NS2_DIALECT_STATIC_RESETBLOCK); + nse = gprs_ns2_create_nse(nsi, 1001, GPRS_NS2_LL_UDP, GPRS_NS2_DIALECT_STATIC_RESETBLOCK); OSMO_ASSERT(nse); for (i=0; i<2; i++) { printf("---- Create NSVC[i]\n"); snprintf(idbuf, sizeof(idbuf), "NSE%05u-dummy-%i", nse->nsei, i); - nsvc[i] = ns2_vc_alloc(bind[i], nse, false, NS2_VC_MODE_BLOCKRESET, idbuf); + nsvc[i] = ns2_vc_alloc(bind[i], nse, false, GPRS_NS2_VC_MODE_BLOCKRESET, idbuf); OSMO_ASSERT(nsvc[i]); nsvc[i]->fi->state = 3; /* HACK: 3 = GPRS_NS2_ST_UNBLOCKED */ /* ensure the fi->state works correct */ @@ -321,13 +321,13 @@ bind[0] = dummy_bind(nsi, "bblock1"); bind[1] = dummy_bind(nsi, "bblock2"); loopbind = loopback_bind(nsi, "loopback"); - nse = gprs_ns2_create_nse(nsi, 1004, GPRS_NS2_LL_UDP, NS2_DIALECT_STATIC_RESETBLOCK); + nse = gprs_ns2_create_nse(nsi, 1004, GPRS_NS2_LL_UDP, GPRS_NS2_DIALECT_STATIC_RESETBLOCK); OSMO_ASSERT(nse); for (i=0; i<2; i++) { printf("---- Create NSVC[%d]\n", i); snprintf(idbuf, sizeof(idbuf), "NSE%05u-dummy-%i", nse->nsei, i); - nsvc[i] = ns2_vc_alloc(bind[i], nse, false, NS2_VC_MODE_BLOCKRESET, idbuf); + nsvc[i] = ns2_vc_alloc(bind[i], nse, false, GPRS_NS2_VC_MODE_BLOCKRESET, idbuf); loop[i] = loopback_nsvc(loopbind, nsvc[i]); OSMO_ASSERT(nsvc[i]); ns2_vc_fsm_start(nsvc[i]); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22429 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I548ff12f7277cbb7e1a630a3dc02b738ce89be72 Gerrit-Change-Number: 22429 Gerrit-PatchSet: 7 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 11:56:38 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 28 Jan 2021 11:56:38 +0000 Subject: Change in libosmocore[master]: gprs_ns2: drop gprs_ns2_vty, rename vty2 -> vty In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22430 ) Change subject: gprs_ns2: drop gprs_ns2_vty, rename vty2 -> vty ...................................................................... gprs_ns2: drop gprs_ns2_vty, rename vty2 -> vty Drop the vty(1) code and replace it with vty2. The vty(1) was only used as intermediate to not develop a vty while developing a new code base behind. Users of gprs_ns2_ has to use the new vty code. API change which must be synchronized with osmo-pcu, osmo-gbproxy, osmo-sgsn. Change-Id: I8c3f2afecc74b78f7f914f7dce166cbcb63444eb --- M include/osmocom/gprs/gprs_ns2.h M src/gb/Makefile.am M src/gb/gprs_ns2_vty.c D src/gb/gprs_ns2_vty2.c M src/gb/libosmogb.map M utils/osmo-ns-dummy.c 6 files changed, 1,309 insertions(+), 2,317 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve daniel: Looks good to me, but someone else must approve pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmocom/gprs/gprs_ns2.h b/include/osmocom/gprs/gprs_ns2.h index df682db..24f45c9 100644 --- a/include/osmocom/gprs/gprs_ns2.h +++ b/include/osmocom/gprs/gprs_ns2.h @@ -261,11 +261,6 @@ const char *gprs_ns2_nsvc_state_name(struct gprs_ns2_vc *nsvc); /* vty */ -int gprs_ns2_vty_init(struct gprs_ns2_inst *nsi, - const struct osmo_sockaddr_str *default_bind); -int gprs_ns2_vty_create(); - -/* vty 2 */ -int gprs_ns2_vty2_init(struct gprs_ns2_inst *nsi); +int gprs_ns2_vty_init(struct gprs_ns2_inst *nsi); /*! @} */ diff --git a/src/gb/Makefile.am b/src/gb/Makefile.am index 031971b..d0db814 100644 --- a/src/gb/Makefile.am +++ b/src/gb/Makefile.am @@ -25,7 +25,7 @@ gprs_bssgp.c gprs_bssgp_util.c gprs_bssgp_vty.c gprs_bssgp_rim.c \ gprs_bssgp_bss.c \ gprs_ns2.c gprs_ns2_udp.c gprs_ns2_frgre.c gprs_ns2_fr.c gprs_ns2_vc_fsm.c gprs_ns2_sns.c \ - gprs_ns2_message.c gprs_ns2_vty.c gprs_ns2_vty2.c \ + gprs_ns2_message.c gprs_ns2_vty.c \ gprs_bssgp2.c bssgp_bvc_fsm.c \ common_vty.c frame_relay.c diff --git a/src/gb/gprs_ns2_vty.c b/src/gb/gprs_ns2_vty.c index f803655..b6ae5b4 100644 --- a/src/gb/gprs_ns2_vty.c +++ b/src/gb/gprs_ns2_vty.c @@ -1,9 +1,7 @@ /*! \file gprs_ns2_vty.c * VTY interface for our GPRS Networks Service (NS) implementation. */ -/* (C) 2009-2014 by Harald Welte - * (C) 2016-2017 by sysmocom - s.f.m.c. GmbH - * (C) 2020 by sysmocom - s.f.m.c. GmbH +/* (C) 2020 by sysmocom - s.f.m.c. GmbH * Author: Alexander Couzens * * All Rights Reserved @@ -33,67 +31,44 @@ #include #include -#include #include #include -#include -#include -#include -#include -#include #include +#include +#include +#include +#include +#include #include #include #include #include -#include #include #include -#include #include +#include +#include #include "gprs_ns2_internal.h" #define SHOW_NS_STR "Display information about the NS protocol\n" - -struct ns2_vty_priv { - /* global listen */ - struct osmo_sockaddr_str udp; - struct osmo_sockaddr_str frgreaddr; - int dscp; - enum gprs_ns2_vc_mode vc_mode; - bool frgre; - - struct llist_head vtyvc; -}; - -struct ns2_vty_vc { - struct llist_head list; - - struct osmo_sockaddr_str remote; - enum gprs_ns2_ll ll; - - /* old vty code doesnt support multiple NSVCI per NSEI */ - uint16_t nsei; - uint16_t nsvci; - uint16_t frdlci; - - struct { - enum osmo_fr_role role; - } fr; - - char netif[IF_NAMESIZE]; - - bool remote_end_is_sgsn; - bool configured; -}; +#define NSVCI_STR "NS Virtual Connection ID (NS-VCI)\n" +#define DLCI_STR "Data Link connection identifier\n" static struct gprs_ns2_inst *vty_nsi = NULL; -static struct ns2_vty_priv priv; static struct osmo_fr_network *vty_fr_network = NULL; +static struct llist_head binds; -/* FIXME: this should go to some common file as it is copied - * in vty_interface.c of the BSC */ +struct vty_bind { + struct llist_head list; + const char *name; + enum gprs_ns2_ll ll; + int dscp; + bool accept_ipaccess; + bool accept_sns; +}; + +/* TODO: this should into osmo timer */ static const struct value_string gprs_ns_timer_strs[] = { { 0, "tns-block" }, { 1, "tns-block-retries" }, @@ -108,28 +83,51 @@ { 0, NULL } }; -static void log_set_nse_filter(struct log_target *target, - struct gprs_ns2_nse *nse) +const struct value_string vty_fr_role_names[] = { + { FR_ROLE_USER_EQUIPMENT, "fr" }, + { FR_ROLE_NETWORK_EQUIPMENT, "frnet" }, + { 0, NULL } +}; + +const struct value_string vty_ll_names[] = { + { GPRS_NS2_LL_FR, "fr" }, + { GPRS_NS2_LL_FR_GRE, "frgre" }, + { GPRS_NS2_LL_UDP, "udp" }, + { 0, NULL } +}; + +static struct vty_bind *vty_bind_by_name(const char *name) { - if (nse) { - target->filter_map |= (1 << LOG_FLT_GB_NSE); - target->filter_data[LOG_FLT_GB_NSE] = nse; - } else if (target->filter_data[LOG_FLT_GB_NSE]) { - target->filter_map = ~(1 << LOG_FLT_GB_NSE); - target->filter_data[LOG_FLT_GB_NSE] = NULL; + struct vty_bind *vbind; + llist_for_each_entry(vbind, &binds, list) { + if (!strncmp(vbind->name, name, strlen(vbind->name))) + return vbind; } + return NULL; } -static void log_set_nsvc_filter(struct log_target *target, - struct gprs_ns2_vc *nsvc) +static struct vty_bind *vty_bind_alloc(const char *name) { - if (nsvc) { - target->filter_map |= (1 << LOG_FLT_GB_NSVC); - target->filter_data[LOG_FLT_GB_NSVC] = nsvc; - } else if (target->filter_data[LOG_FLT_GB_NSVC]) { - target->filter_map = ~(1 << LOG_FLT_GB_NSVC); - target->filter_data[LOG_FLT_GB_NSVC] = NULL; + struct vty_bind *vbind = talloc_zero(vty_nsi, struct vty_bind); + if (!vbind) + return NULL; + + vbind->name = talloc_strdup(vty_nsi, name); + if (!vbind->name) { + talloc_free(vbind); + return NULL; } + + llist_add(&vbind->list, &binds); + return vbind; +} + +static void vty_bind_free(struct vty_bind *vbind) +{ + if (!vbind) + return; + + llist_del(&vbind->list); } static struct cmd_node ns_node = { @@ -138,130 +136,6 @@ 1, }; -static struct ns2_vty_vc *vtyvc_alloc(uint16_t nsei) { - struct ns2_vty_vc *vtyvc = talloc_zero(vty_nsi, struct ns2_vty_vc); - if (!vtyvc) - return vtyvc; - - vtyvc->nsei = nsei; - - llist_add(&vtyvc->list, &priv.vtyvc); - - return vtyvc; -} - -static void ns2_vc_free(struct ns2_vty_vc *vtyvc) { - if (!vtyvc) - return; - - llist_del(&vtyvc->list); - talloc_free(vtyvc); -} - -static struct ns2_vty_vc *vtyvc_by_nsei(uint16_t nsei, bool alloc_missing) { - struct ns2_vty_vc *vtyvc; - - llist_for_each_entry(vtyvc, &priv.vtyvc, list) { - if (vtyvc->nsei == nsei) - return vtyvc; - } - - if (!alloc_missing) - return NULL; - - vtyvc = vtyvc_alloc(nsei); - if (!vtyvc) - return vtyvc; - - vtyvc->nsei = nsei; - return vtyvc; -} - -static int config_write_ns(struct vty *vty) -{ - struct ns2_vty_vc *vtyvc; - unsigned int i; - struct osmo_sockaddr_str sockstr; - - vty_out(vty, "ns%s", VTY_NEWLINE); - - /* global configuration must be written first, as some of it may be - * relevant when creating the NSE/NSVC later below */ - - vty_out(vty, " encapsulation framerelay-gre enabled %u%s", - priv.frgre ? 1 : 0, VTY_NEWLINE); - - if (priv.frgre) { - if (strlen(priv.frgreaddr.ip)) { - vty_out(vty, " encapsulation framerelay-gre local-ip %s%s", - sockstr.ip, VTY_NEWLINE); - } - } else { - if (strlen(priv.udp.ip)) { - vty_out(vty, " encapsulation udp local-ip %s%s", - priv.udp.ip, VTY_NEWLINE); - } - - if (priv.udp.port) - vty_out(vty, " encapsulation udp local-port %u%s", - priv.udp.port, VTY_NEWLINE); - } - - if (priv.dscp) - vty_out(vty, " encapsulation udp dscp %d%s", - priv.dscp, VTY_NEWLINE); - - vty_out(vty, " encapsulation udp use-reset-block-unblock %s%s", - priv.vc_mode == GPRS_NS2_VC_MODE_BLOCKRESET ? "enabled" : "disabled", VTY_NEWLINE); - - llist_for_each_entry(vtyvc, &priv.vtyvc, list) { - vty_out(vty, " nse %u nsvci %u%s", - vtyvc->nsei, vtyvc->nsvci, VTY_NEWLINE); - - vty_out(vty, " nse %u remote-role %s%s", - vtyvc->nsei, vtyvc->remote_end_is_sgsn ? "sgsn" : "bss", - VTY_NEWLINE); - - switch (vtyvc->ll) { - case GPRS_NS2_LL_UDP: - vty_out(vty, " nse %u encapsulation udp%s", vtyvc->nsei, VTY_NEWLINE); - vty_out(vty, " nse %u remote-ip %s%s", - vtyvc->nsei, - vtyvc->remote.ip, - VTY_NEWLINE); - vty_out(vty, " nse %u remote-port %u%s", - vtyvc->nsei, vtyvc->remote.port, - VTY_NEWLINE); - break; - case GPRS_NS2_LL_FR_GRE: - vty_out(vty, " nse %u encapsulation framerelay-gre%s", - vtyvc->nsei, VTY_NEWLINE); - vty_out(vty, " nse %u remote-ip %s%s", - vtyvc->nsei, - vtyvc->remote.ip, - VTY_NEWLINE); - vty_out(vty, " nse %u fr-dlci %u%s", - vtyvc->nsei, vtyvc->frdlci, - VTY_NEWLINE); - break; - case GPRS_NS2_LL_FR: - vty_out(vty, " nse %u fr %s dlci %u%s", - vtyvc->nsei, vtyvc->netif, vtyvc->frdlci, - VTY_NEWLINE); - break; - default: - break; - } - } - - for (i = 0; i < ARRAY_SIZE(vty_nsi->timeout); i++) - vty_out(vty, " timer %s %u%s", - get_value_string(gprs_ns_timer_strs, i), - vty_nsi->timeout[i], VTY_NEWLINE); - - return CMD_SUCCESS; -} - DEFUN(cfg_ns, cfg_ns_cmd, "ns", "Configure the GPRS Network Service") @@ -270,6 +144,1183 @@ return CMD_SUCCESS; } +DEFUN(cfg_ns_timer, cfg_ns_timer_cmd, + "timer " NS_TIMERS " <0-65535>", + "Network Service Timer\n" + NS_TIMERS_HELP "Timer Value\n") +{ + int idx = get_string_value(gprs_ns_timer_strs, argv[0]); + int val = atoi(argv[1]); + + if (idx < 0 || idx >= ARRAY_SIZE(vty_nsi->timeout)) + return CMD_WARNING; + + vty_nsi->timeout[idx] = val; + + return CMD_SUCCESS; +} + +DEFUN(cfg_ns_nsei, cfg_ns_nsei_cmd, + "nse <0-65535>", + "Persistent NS Entity\n" + "NS Entity ID (NSEI)\n" + ) +{ + struct gprs_ns2_nse *nse; + uint16_t nsei = atoi(argv[0]); + + nse = gprs_ns2_nse_by_nsei(vty_nsi, nsei); + if (!nse) { + nse = gprs_ns2_create_nse(vty_nsi, nsei, GPRS_NS2_LL_UNDEF, GPRS_NS2_DIALECT_UNDEF); + if (!nse) { + vty_out(vty, "Failed to create NSE!%s", VTY_NEWLINE); + return CMD_ERR_INCOMPLETE; + } + nse->persistent = true; + } + + if (!nse->persistent) { + /* TODO: should the dynamic NSE removed? */ + vty_out(vty, "A dynamic NSE with the specified NSEI already exists%s", VTY_NEWLINE); + return CMD_ERR_INCOMPLETE; + } + + vty->node = L_NS_NSE_NODE; + vty->index = nse; + + return CMD_SUCCESS; +} + +DEFUN(cfg_no_ns_nsei, cfg_no_ns_nsei_cmd, + "no nse <0-65535>", + NO_STR + "Delete a Persistent NS Entity\n" + "NS Entity ID (NSEI)\n" + ) +{ + struct gprs_ns2_nse *nse; + uint16_t nsei = atoi(argv[0]); + + nse = gprs_ns2_nse_by_nsei(vty_nsi, nsei); + if (!nse) { + vty_out(vty, "Can not find NS Entity %s%s", argv[0], VTY_NEWLINE); + return CMD_ERR_NOTHING_TODO; + } + + if (!nse->persistent) { + vty_out(vty, "Ignoring non-persistent NS Entity%s", VTY_NEWLINE); + return CMD_WARNING; + } + + vty_out(vty, "Deleting NS Entity %u%s", nse->nsei, VTY_NEWLINE); + gprs_ns2_free_nse(nse); + return CMD_SUCCESS; +} + +/* TODO: add fr/gre */ +DEFUN(cfg_ns_bind, cfg_ns_bind_cmd, + "bind (fr|udp) ID", + "Binding\n" + "Frame Relay\n" "UDP/IP\n" + "a unique identifier for this bind to reference NS-VCs\n" + ) +{ + const char *nstype = argv[0]; + const char *name = argv[1]; + struct vty_bind *vbind; + enum gprs_ns2_ll ll; + int rc; + + rc = get_string_value(vty_ll_names, nstype); + if (rc < 0) + return CMD_WARNING; + ll = (enum gprs_ns2_ll) rc; + + if (!osmo_identifier_valid(name)) { + vty_out(vty, "Invalid ID. The ID should be only alphanumeric.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + vbind = vty_bind_by_name(name); + if (vbind) { + if (vbind->ll != ll) { + vty_out(vty, "A bind with the specified ID already exists with a different type (fr|frgre|udp)!%s", + VTY_NEWLINE); + return CMD_WARNING; + } + } else { + vbind = vty_bind_alloc(name); + if (!vbind) { + vty_out(vty, "Can not create bind - out of memory%s", VTY_NEWLINE); + return CMD_WARNING; + } + vbind->ll = ll; + } + + vty->index = vbind; + vty->node = L_NS_BIND_NODE; + + return CMD_SUCCESS; +} + +DEFUN(cfg_no_ns_bind, cfg_no_ns_bind_cmd, + "no bind ID", + NO_STR + "Delete a binding\n" + "a unique identifier for this bind to reference NS-VCs\n" + ) +{ + struct vty_bind *vbind; + struct gprs_ns2_vc_bind *bind; + const char *name = argv[0]; + + vbind = vty_bind_by_name(name); + if (!vbind) { + vty_out(vty, "bind %s does not exist!%s", name, VTY_NEWLINE); + return CMD_WARNING; + } + vty_bind_free(vbind); + bind = gprs_ns2_bind_by_name(vty_nsi, name); + if (bind) + bind->driver->free_bind(bind); + return CMD_SUCCESS; +} + + +static void config_write_vbind(struct vty *vty, struct vty_bind *vbind) +{ + struct gprs_ns2_vc_bind *bind; + const struct osmo_sockaddr *addr; + struct osmo_sockaddr_str addr_str; + const char *netif, *frrole_str, *llstr; + enum osmo_fr_role frrole; + + llstr = get_value_string_or_null(vty_ll_names, vbind->ll); + if (!llstr) + return; + vty_out(vty, " bind %s %s%s", llstr, vbind->name, VTY_NEWLINE); + + bind = gprs_ns2_bind_by_name(vty_nsi, vbind->name); + switch (vbind->ll) { + case GPRS_NS2_LL_FR: + if (bind) { + netif = gprs_ns2_fr_bind_netif(bind); + if (!netif) + return; + frrole = gprs_ns2_fr_bind_role(bind); + if ((int) frrole == -1) + return; + frrole_str = get_value_string_or_null(vty_fr_role_names, frrole); + if (netif && frrole_str) + vty_out(vty, " fr %s %s%s", netif, frrole_str, VTY_NEWLINE); + } + break; + case GPRS_NS2_LL_UDP: + if (bind) { + addr = gprs_ns2_ip_bind_sockaddr(bind); + if (!osmo_sockaddr_str_from_sockaddr(&addr_str, &addr->u.sas)) { + vty_out(vty, " listen %s %u%s", addr_str.ip, addr_str.port, + VTY_NEWLINE); + } + } + if (vbind->accept_ipaccess) + vty_out(vty, " accept-ipaccess%s", VTY_NEWLINE); + if (vbind->dscp) + vty_out(vty, " dscp %u%s", vbind->dscp, VTY_NEWLINE); + break; + default: + return; + } +} + +static void config_write_nsvc(struct vty *vty, const struct gprs_ns2_vc *nsvc) +{ + const char *netif; + uint16_t dlci; + const struct osmo_sockaddr *addr; + struct osmo_sockaddr_str addr_str; + + switch (nsvc->nse->ll) { + case GPRS_NS2_LL_UNDEF: + break; + case GPRS_NS2_LL_UDP: + switch (nsvc->nse->dialect) { + case GPRS_NS2_DIALECT_IPACCESS: + addr = gprs_ns2_ip_vc_remote(nsvc); + if (!addr) + break; + if (osmo_sockaddr_str_from_sockaddr(&addr_str, &addr->u.sas)) + break; + vty_out(vty, " nsvc ipa %s %s %u nsvci %u%s", + nsvc->bind->name, addr_str.ip, addr_str.port, + nsvc->nsvci, VTY_NEWLINE); + break; + case GPRS_NS2_DIALECT_STATIC_ALIVE: + addr = gprs_ns2_ip_vc_remote(nsvc); + if (!addr) + break; + if (osmo_sockaddr_str_from_sockaddr(&addr_str, &addr->u.sas)) + break; + vty_out(vty, " nsvc udp %s %s %u%s", + nsvc->bind->name, addr_str.ip, addr_str.port, VTY_NEWLINE); + break; + default: + break; + } + break; + case GPRS_NS2_LL_FR: + netif = gprs_ns2_fr_bind_netif(nsvc->bind); + if (!netif) + break; + dlci = gprs_ns2_fr_nsvc_dlci(nsvc); + if (!dlci) + break; + OSMO_ASSERT(nsvc->nsvci_is_valid); + vty_out(vty, " nsvc fr %s dlci %u nsvci %u%s", + netif, dlci, nsvc->nsvci, VTY_NEWLINE); + break; + case GPRS_NS2_LL_FR_GRE: + break; + } +} + +static void _config_write_ns_nse(struct vty *vty, struct gprs_ns2_nse *nse) +{ + struct gprs_ns2_vc *nsvc; + + vty_out(vty, " nse %u%s", nse->nsei, VTY_NEWLINE); + switch (nse->dialect) { + case GPRS_NS2_DIALECT_SNS: + ns2_sns_write_vty(vty, nse); + break; + default: + llist_for_each_entry(nsvc, &nse->nsvc, list) { + config_write_nsvc(vty, nsvc); + } + break; + } +} + +static int config_write_ns(struct vty *vty) +{ + unsigned int i; + + vty_out(vty, "ns%s", VTY_NEWLINE); + + for (i = 0; i < ARRAY_SIZE(vty_nsi->timeout); i++) + vty_out(vty, " timer %s %u%s", + get_value_string(gprs_ns_timer_strs, i), + vty_nsi->timeout[i], VTY_NEWLINE); + + return 0; +} + +static int config_write_ns_nse(struct vty *vty) +{ + struct gprs_ns2_nse *nse; + + llist_for_each_entry(nse, &vty_nsi->nse, list) { + if (!nse->persistent) + continue; + + _config_write_ns_nse(vty, nse); + } + + return 0; +} + +static int config_write_ns_bind(struct vty *vty) +{ + struct vty_bind *vbind; + + llist_for_each_entry(vbind, &binds, list) { + config_write_vbind(vty, vbind); + } + + return 0; +} + +static struct cmd_node ns_bind_node = { + L_NS_BIND_NODE, + "%s(config-ns-bind)# ", + 1, +}; + +DEFUN(cfg_ns_bind_listen, cfg_ns_bind_listen_cmd, + "listen " VTY_IPV46_CMD " <1-65535>", + "Binding\n" + "IPv4 Address\n" "IPv6 Address\n" + "Port\n" + ) +{ + struct vty_bind *vbind = vty->index; + struct gprs_ns2_vc_bind *bind; + + const char *addr_str = argv[0]; + unsigned int port = atoi(argv[1]); + struct osmo_sockaddr_str sockaddr_str; + struct osmo_sockaddr sockaddr; + + if (vbind->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "listen can be only used with UDP bind%s", + VTY_NEWLINE); + return CMD_WARNING; + } + + if (osmo_sockaddr_str_from_str(&sockaddr_str, addr_str, port)) { + vty_out(vty, "Can not parse the Address %s %s%s", argv[0], argv[1], VTY_NEWLINE); + return CMD_WARNING; + } + osmo_sockaddr_str_to_sockaddr(&sockaddr_str, &sockaddr.u.sas); + if (gprs_ns2_ip_bind_by_sockaddr(vty_nsi, &sockaddr)) { + vty_out(vty, "A bind with the specified address already exists!%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (gprs_ns2_ip_bind(vty_nsi, vbind->name, &sockaddr, vbind->dscp, &bind) != 0) { + vty_out(vty, "Failed to create the bind!%s", VTY_NEWLINE); + return CMD_WARNING; + } + + bind->accept_ipaccess = vbind->accept_ipaccess; + bind->accept_sns = vbind->accept_sns; + + return CMD_SUCCESS; +} + +DEFUN(cfg_no_ns_bind_listen, cfg_no_ns_bind_listen_cmd, + "no listen", + NO_STR + "Delete a IP/Port assignment\n" + ) +{ + struct vty_bind *vbind = vty->index; + struct gprs_ns2_vc_bind *bind; + + if (vbind->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "no listen can be only used with UDP bind%s", VTY_NEWLINE); + return CMD_WARNING; + } + + bind = gprs_ns2_bind_by_name(vty_nsi, vbind->name); + if (!bind) + return CMD_ERR_NOTHING_TODO; + + OSMO_ASSERT(bind->ll != GPRS_NS2_LL_UDP); + bind->driver->free_bind(bind); + return CMD_SUCCESS; +} + +DEFUN(cfg_ns_bind_dscp, cfg_ns_bind_dscp_cmd, + "dscp <0-255>", + "Set DSCP/TOS on the UDP socket\n" "DSCP Value\n") +{ + struct vty_bind *vbind = vty->index; + struct gprs_ns2_vc_bind *bind; + uint16_t dscp = atoi(argv[0]); + + if (vbind->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "dscp can be only used with UDP bind%s", + VTY_NEWLINE); + return CMD_WARNING; + } + + vbind->dscp = dscp; + bind = gprs_ns2_bind_by_name(vty_nsi, vbind->name); + if (bind) + gprs_ns2_ip_bind_set_dscp(bind, dscp); + + return CMD_SUCCESS; +} + +DEFUN(cfg_no_ns_bind_dscp, cfg_no_ns_bind_dscp_cmd, + "no dscp", + "Set DSCP/TOS on the UDP socket\n" "DSCP Value\n") +{ + struct vty_bind *vbind = vty->index; + struct gprs_ns2_vc_bind *bind; + uint16_t dscp = 0; + + if (vbind->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "dscp can be only used with UDP bind%s", + VTY_NEWLINE); + return CMD_WARNING; + } + + vbind->dscp = dscp; + bind = gprs_ns2_bind_by_name(vty_nsi, vbind->name); + if (bind) + gprs_ns2_ip_bind_set_dscp(bind, dscp); + + return CMD_SUCCESS; +} + +DEFUN(cfg_ns_bind_ipaccess, cfg_ns_bind_ipaccess_cmd, + "accept-ipaccess", + "Allow to create dynamic NS Entity by NS Reset PDU on UDP (ip.access style)\n" + ) +{ + struct vty_bind *vbind = vty->index; + struct gprs_ns2_vc_bind *bind; + + if (vbind->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "accept-ipaccess can be only used with UDP bind%s", + VTY_NEWLINE); + return CMD_WARNING; + } + + vbind->accept_ipaccess = true; + bind = gprs_ns2_bind_by_name(vty_nsi, vbind->name); + if (bind) + bind->accept_ipaccess = true; + + return CMD_SUCCESS; +} + +DEFUN(cfg_no_ns_bind_ipaccess, cfg_no_ns_bind_ipaccess_cmd, + "no accept-ipaccess", + NO_STR + "Reject NS Reset PDU on UDP (ip.access style)\n" + ) +{ + struct vty_bind *vbind = vty->index; + struct gprs_ns2_vc_bind *bind; + + if (vbind->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "no accept-ipaccess can be only used with UDP bind%s", + VTY_NEWLINE); + return CMD_WARNING; + } + + vbind->accept_ipaccess = false; + bind = gprs_ns2_bind_by_name(vty_nsi, vbind->name); + if (bind) + bind->accept_ipaccess = false; + + return CMD_SUCCESS; +} + + +DEFUN(cfg_ns_bind_fr, cfg_ns_bind_fr_cmd, + "fr NETIF (fr|frnet)", + "frame relay\n" + IFNAME_STR + "fr (user) is used by BSS or SGSN attached to UNI of a FR network\n" + "frnet (network) is used by SGSN if BSS is directly attached\n" + ) +{ + struct vty_bind *vbind = vty->index; + struct gprs_ns2_vc_bind *bind; + const char *netif = argv[0]; + const char *role = argv[1]; + + int rc = 0; + enum osmo_fr_role frrole; + + if (vbind->ll != GPRS_NS2_LL_FR) { + vty_out(vty, "fr can be only used with frame relay bind%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (!strcmp(role, "fr")) + frrole = FR_ROLE_USER_EQUIPMENT; + else if (!strcmp(role, "frnet")) + frrole = FR_ROLE_NETWORK_EQUIPMENT; + else + return CMD_WARNING; + + bind = gprs_ns2_fr_bind_by_netif(vty_nsi, netif); + if (bind) { + vty_out(vty, "Interface %s already used.%s", netif, VTY_NEWLINE); + return CMD_WARNING; + } + + rc = gprs_ns2_fr_bind(vty_nsi, vbind->name, netif, vty_fr_network, frrole, &bind); + if (rc < 0) { + LOGP(DLNS, LOGL_ERROR, "Failed to bind interface %s on fr. Err: %d\n", netif, rc); + return CMD_WARNING; + } + + return CMD_SUCCESS; +} + +DEFUN(cfg_no_ns_bind_fr, cfg_no_ns_bind_fr_cmd, + "no fr NETIF", + NO_STR + "Delete a frame relay link\n" + "Delete a frame relay link\n" + IFNAME_STR + ) +{ + struct vty_bind *vbind = vty->index; + struct gprs_ns2_vc_bind *bind; + const char *netif = argv[0]; + + if (vbind->ll != GPRS_NS2_LL_FR) { + vty_out(vty, "fr can be only used with frame relay bind%s", + VTY_NEWLINE); + return CMD_WARNING; + } + + bind = gprs_ns2_fr_bind_by_netif(vty_nsi, netif); + if (!bind) { + vty_out(vty, "Interface not found.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (strcmp(bind->name, vbind->name)) { + vty_out(vty, "The specified interface is not bound to this bind.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + bind->driver->free_bind(bind); + return CMD_SUCCESS; +} + + +static struct cmd_node ns_nse_node = { + L_NS_NSE_NODE, + "%s(config-ns-nse)# ", + 1, +}; + +DEFUN(cfg_ns_nse_nsvc_fr, cfg_ns_nse_nsvc_fr_cmd, + "nsvc fr NETIF dlci <16-1007> nsvci <0-65535>", + "NS Virtual Connection\n" + "frame relay\n" + "frame relay interface. Must be registered via fr vty\n" + NSVCI_STR + NSVCI_STR + DLCI_STR + DLCI_STR + ) +{ + struct gprs_ns2_vc_bind *bind; + struct gprs_ns2_vc *nsvc; + struct gprs_ns2_nse *nse = vty->index; + const char *netif = argv[0]; + uint16_t dlci = atoi(argv[1]); + uint16_t nsvci = atoi(argv[2]); + bool dialect_modified = false; + bool ll_modified = false; + + if (nse->ll != GPRS_NS2_LL_FR && nse->ll != GPRS_NS2_LL_UNDEF) { + vty_out(vty, "Can not mix NS-VC with different link layer%s", VTY_NEWLINE); + goto err; + } + + if (nse->dialect != GPRS_NS2_DIALECT_STATIC_RESETBLOCK && nse->dialect != GPRS_NS2_DIALECT_UNDEF) { + vty_out(vty, "Can not mix NS-VC with different dialects%s", VTY_NEWLINE); + goto err; + } + + if (nse->ll == GPRS_NS2_LL_UNDEF) { + nse->ll = GPRS_NS2_LL_FR; + ll_modified = true; + } + + if (nse->dialect == GPRS_NS2_DIALECT_UNDEF) { + nse->dialect = GPRS_NS2_DIALECT_STATIC_RESETBLOCK; + dialect_modified = true; + } + + + bind = gprs_ns2_fr_bind_by_netif(vty_nsi, netif); + if (!bind) { + vty_out(vty, "Can not find fr interface \"%s\". Please configure it via fr vty.%s", + netif, VTY_NEWLINE); + goto err; + } + + if (gprs_ns2_fr_nsvc_by_dlci(bind, dlci)) { + vty_out(vty, "A NS-VC with the specified DLCI already exist!%s", VTY_NEWLINE); + goto err; + } + + if (gprs_ns2_nsvc_by_nsvci(vty_nsi, nsvci)) { + vty_out(vty, "A NS-VC with the specified NS-VCI already exist!%s", VTY_NEWLINE); + goto err; + } + + nsvc = gprs_ns2_fr_connect(bind, nse, nsvci, dlci); + if (!nsvc) { + /* Could not create NS-VC, connect failed */ + vty_out(vty, "Failed to create the NS-VC%s", VTY_NEWLINE); + goto err; + } + nsvc->persistent = true; + return CMD_SUCCESS; + +err: + if (ll_modified) + nse->ll = GPRS_NS2_LL_UNDEF; + if (dialect_modified) + nse->dialect = GPRS_NS2_DIALECT_UNDEF; + + return CMD_WARNING; +} + +DEFUN(cfg_no_ns_nse_nsvc_fr_dlci, cfg_no_ns_nse_nsvc_fr_dlci_cmd, + "no nsvc fr NETIF dlci <16-1007>", + NO_STR + "Delete frame relay NS-VC\n" + "frame relay\n" + "frame relay interface. Must be registered via fr vty\n" + DLCI_STR + DLCI_STR + ) +{ + struct gprs_ns2_vc_bind *bind; + struct gprs_ns2_vc *nsvc; + struct gprs_ns2_nse *nse = vty->index; + const char *netif = argv[0]; + uint16_t dlci = atoi(argv[1]); + + if (nse->ll != GPRS_NS2_LL_FR) { + vty_out(vty, "This NSE doesn't support frame relay.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + bind = gprs_ns2_fr_bind_by_netif(vty_nsi, netif); + if (!bind) { + vty_out(vty, "Can not find fr interface \"%s\"%s", + netif, VTY_NEWLINE); + return CMD_ERR_NOTHING_TODO; + } + + nsvc = gprs_ns2_fr_nsvc_by_dlci(bind, dlci); + if (!nsvc) { + vty_out(vty, "Can not find a NS-VC on fr interface %s with dlci %u%s", + netif, dlci, VTY_NEWLINE); + return CMD_WARNING; + } + + if (nse != nsvc->nse) { + vty_out(vty, "The specified NS-VC is not a part of the NSE %u!%s" + "To remove this NS-VC go to the vty node 'nse %u'%s", + nse->nsei, VTY_NEWLINE, + nsvc->nse->nsei, VTY_NEWLINE); + return CMD_WARNING; + } + + gprs_ns2_free_nsvc(nsvc); + if (llist_empty(&nse->nsvc)) { + nse->ll = GPRS_NS2_LL_UNDEF; + nse->dialect = GPRS_NS2_DIALECT_UNDEF; + } + + return CMD_SUCCESS; +} + +DEFUN(cfg_no_ns_nse_nsvci, cfg_no_ns_nse_nsvci_cmd, + "no nsvc nsvci <0-65535>", + NO_STR + "Delete NSVC\n" + NSVCI_STR + NSVCI_STR + ) +{ + struct gprs_ns2_vc *nsvc; + struct gprs_ns2_nse *nse = vty->index; + uint16_t nsvci = atoi(argv[0]); + + switch (nse->dialect) { + case GPRS_NS2_DIALECT_SNS: + case GPRS_NS2_DIALECT_STATIC_ALIVE: + vty_out(vty, "NSE doesn't support NSVCI.%s", VTY_NEWLINE); + return CMD_WARNING; + case GPRS_NS2_DIALECT_UNDEF: + vty_out(vty, "No NSVCs configured%s", VTY_NEWLINE); + return CMD_WARNING; + case GPRS_NS2_DIALECT_IPACCESS: + case GPRS_NS2_DIALECT_STATIC_RESETBLOCK: + break; + } + + nsvc = gprs_ns2_nsvc_by_nsvci(vty_nsi, nsvci); + if (!nsvc) { + vty_out(vty, "Can not find NS-VC with NS-VCI %u%s", nsvci, VTY_NEWLINE); + return CMD_WARNING; + } + + if (nse != nsvc->nse) { + vty_out(vty, "NS-VC with NS-VCI %u is not part of this NSE!%s", + nsvci, VTY_NEWLINE); + return CMD_WARNING; + } + + gprs_ns2_free_nsvc(nsvc); + if (llist_empty(&nse->nsvc)) { + nse->ll = GPRS_NS2_LL_UNDEF; + nse->dialect = GPRS_NS2_DIALECT_UNDEF; + } + + return CMD_SUCCESS; +} + +DEFUN(cfg_ns_nse_nsvc_udp, cfg_ns_nse_nsvc_udp_cmd, + "nsvc udp BIND " VTY_IPV46_CMD " <1-65535>", + "NS Virtual Connection\n" + "NS over UDP\n" + "A unique bind identifier created by ns bind\n" + "Remote IPv4 Address\n" "Remote IPv6 Address\n" + "Remote UDP Port\n" + ) +{ + struct gprs_ns2_vc_bind *bind; + struct gprs_ns2_vc *nsvc; + struct gprs_ns2_nse *nse = vty->index; + bool dialect_modified = false; + bool ll_modified = false; + + const char *bind_name = argv[0]; + struct osmo_sockaddr_str remote_str; + struct osmo_sockaddr remote; + uint16_t port = atoi(argv[2]); + + if (nse->ll == GPRS_NS2_LL_UNDEF) { + nse->ll = GPRS_NS2_LL_UDP; + ll_modified = true; + } + + if (nse->dialect == GPRS_NS2_DIALECT_UNDEF) { + nse->dialect = GPRS_NS2_DIALECT_STATIC_ALIVE; + dialect_modified = true; + } + + if (nse->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "Can not mix NS-VC with different link layer%s", VTY_NEWLINE); + goto err; + } + + if (nse->dialect != GPRS_NS2_DIALECT_STATIC_ALIVE) { + vty_out(vty, "Can not mix NS-VC with different dialects%s", VTY_NEWLINE); + goto err; + } + + if (osmo_sockaddr_str_from_str(&remote_str, argv[1], port)) { + vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); + goto err; + } + + if (osmo_sockaddr_str_to_sockaddr(&remote_str, &remote.u.sas)) { + vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); + goto err; + } + + bind = gprs_ns2_bind_by_name(vty_nsi, bind_name); + if (!bind) { + vty_out(vty, "Can not find bind with name %s%s", + bind_name, VTY_NEWLINE); + goto err; + } + + if (bind->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "Bind %s is not an UDP bind.%s", + bind_name, VTY_NEWLINE); + goto err; + } + + nsvc = gprs_ns2_ip_connect(bind, &remote, nse, 0); + if (!nsvc) { + vty_out(vty, "Can not create NS-VC.%s", VTY_NEWLINE); + goto err; + } + nsvc->persistent = true; + + return CMD_SUCCESS; + +err: + if (ll_modified) + nse->ll = GPRS_NS2_LL_UNDEF; + if (dialect_modified) + nse->dialect = GPRS_NS2_DIALECT_UNDEF; + return CMD_WARNING; +} + +DEFUN(cfg_no_ns_nse_nsvc_udp, cfg_no_ns_nse_nsvc_udp_cmd, + "no nsvc udp BIND " VTY_IPV46_CMD " <1-65535>", + NO_STR + "Delete a NS Virtual Connection\n" + "NS over UDP\n" + "A unique bind identifier created by ns bind\n" + "Remote IPv4 Address\n" "Remote IPv6 Address\n" + "Remote UDP Port\n" + ) +{ + struct gprs_ns2_vc_bind *bind; + struct gprs_ns2_vc *nsvc; + struct gprs_ns2_nse *nse = vty->index; + const char *bind_name = argv[0]; + struct osmo_sockaddr_str remote_str; + struct osmo_sockaddr remote; + uint16_t port = atoi(argv[2]); + + if (nse->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "This NSE doesn't support UDP.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (nse->dialect != GPRS_NS2_DIALECT_STATIC_ALIVE) { + vty_out(vty, "This NSE doesn't support UDP with dialect static alive.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + bind = gprs_ns2_bind_by_name(vty_nsi, bind_name); + if (!bind) { + vty_out(vty, "Can not find bind with name %s%s", + bind_name, VTY_NEWLINE); + return CMD_WARNING; + } + + if (bind->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "Bind %s is not an UDP bind.%s", + bind_name, VTY_NEWLINE); + return CMD_WARNING; + } + + if (osmo_sockaddr_str_from_str(&remote_str, argv[1], port)) { + vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (osmo_sockaddr_str_to_sockaddr(&remote_str, &remote.u.sas)) { + vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + nsvc = gprs_ns2_nsvc_by_sockaddr_bind(bind, &remote); + if (!nsvc) { + vty_out(vty, "Can not find NS-VC with remote %s:%u%s", + remote_str.ip, remote_str.port, VTY_NEWLINE); + return CMD_WARNING; + } + + if (!nsvc->persistent) { + vty_out(vty, "NS-VC with remote %s:%u is a dynamic NS-VC. Not configured by vty.%s", + remote_str.ip, remote_str.port, VTY_NEWLINE); + return CMD_WARNING; + } + + if (nsvc->nse != nse) { + vty_out(vty, "NS-VC is not part of this NSE!%s", VTY_NEWLINE); + return CMD_WARNING; + } + + gprs_ns2_free_nsvc(nsvc); + if (llist_empty(&nse->nsvc)) { + nse->ll = GPRS_NS2_LL_UNDEF; + nse->dialect = GPRS_NS2_DIALECT_UNDEF; + } + + return CMD_SUCCESS; +} + +DEFUN(cfg_ns_nse_nsvc_ipa, cfg_ns_nse_nsvc_ipa_cmd, + "nsvc ipa BIND " VTY_IPV46_CMD " <1-65535> nsvci <0-65535>" , + "NS Virtual Connection\n" + "NS over UDP ip.access style (uses RESET/BLOCK)\n" + "A unique bind identifier created by ns bind\n" + "Remote IPv4 Address\n" "Remote IPv6 Address\n" + "Remote UDP Port\n" + NSVCI_STR + NSVCI_STR + ) +{ + struct gprs_ns2_vc_bind *bind; + struct gprs_ns2_vc *nsvc; + struct gprs_ns2_nse *nse = vty->index; + bool dialect_modified = false; + bool ll_modified = false; + + const char *bind_name = argv[0]; + struct osmo_sockaddr_str remote_str; + struct osmo_sockaddr remote; + uint16_t port = atoi(argv[2]); + uint16_t nsvci = atoi(argv[3]); + + if (nse->ll == GPRS_NS2_LL_UNDEF) { + nse->ll = GPRS_NS2_LL_UDP; + ll_modified = true; + } + + if (nse->dialect == GPRS_NS2_DIALECT_UNDEF) { + nse->dialect = GPRS_NS2_DIALECT_IPACCESS; + dialect_modified = true; + } + + if (nse->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "Can not mix NS-VC with different link layer%s", VTY_NEWLINE); + goto err; + } + + if (nse->dialect != GPRS_NS2_DIALECT_IPACCESS) { + vty_out(vty, "Can not mix NS-VC with different dialects%s", VTY_NEWLINE); + goto err; + } + + if (osmo_sockaddr_str_from_str(&remote_str, argv[1], port)) { + vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); + goto err; + } + + if (osmo_sockaddr_str_to_sockaddr(&remote_str, &remote.u.sas)) { + vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); + goto err; + } + + bind = gprs_ns2_bind_by_name(vty_nsi, bind_name); + if (!bind) { + vty_out(vty, "Can not find bind with name %s%s", + bind_name, VTY_NEWLINE); + goto err; + } + + if (bind->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "Bind %s is not an UDP bind.%s", + bind_name, VTY_NEWLINE); + goto err; + } + + nsvc = gprs_ns2_ip_connect(bind, &remote, nse, nsvci); + if (!nsvc) { + vty_out(vty, "Can not create NS-VC.%s", VTY_NEWLINE); + goto err; + } + nsvc->persistent = true; + + return CMD_SUCCESS; + +err: + if (ll_modified) + nse->ll = GPRS_NS2_LL_UNDEF; + if (dialect_modified) + nse->dialect = GPRS_NS2_DIALECT_UNDEF; + return CMD_WARNING; +} + +DEFUN(cfg_no_ns_nse_nsvc_ipa, cfg_no_ns_nse_nsvc_ipa_cmd, + "no nsvc ipa BIND " VTY_IPV46_CMD " <1-65535> nsvci <0-65535>", + NO_STR + "Delete a NS Virtual Connection\n" + "NS over UDP\n" + "A unique bind identifier created by ns bind\n" + "Remote IPv4 Address\n" "Remote IPv6 Address\n" + "Remote UDP Port\n" + NSVCI_STR + NSVCI_STR + ) +{ + struct gprs_ns2_vc_bind *bind; + struct gprs_ns2_vc *nsvc; + struct gprs_ns2_nse *nse = vty->index; + const char *bind_name = argv[0]; + struct osmo_sockaddr_str remote_str; + struct osmo_sockaddr remote; + uint16_t port = atoi(argv[2]); + uint16_t nsvci = atoi(argv[3]); + + if (nse->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "This NSE doesn't support UDP.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (nse->dialect != GPRS_NS2_DIALECT_IPACCESS) { + vty_out(vty, "This NSE doesn't support UDP with dialect ipaccess.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + bind = gprs_ns2_bind_by_name(vty_nsi, bind_name); + if (!bind) { + vty_out(vty, "Can not find bind with name %s%s", + bind_name, VTY_NEWLINE); + return CMD_WARNING; + } + + if (bind->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "Bind %s is not an UDP bind.%s", + bind_name, VTY_NEWLINE); + return CMD_WARNING; + } + + if (osmo_sockaddr_str_from_str(&remote_str, argv[1], port)) { + vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (osmo_sockaddr_str_to_sockaddr(&remote_str, &remote.u.sas)) { + vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + nsvc = gprs_ns2_nsvc_by_sockaddr_bind(bind, &remote); + if (!nsvc) { + vty_out(vty, "Can not find NS-VC with remote %s:%u%s", + remote_str.ip, remote_str.port, VTY_NEWLINE); + return CMD_WARNING; + } + + if (!nsvc->persistent) { + vty_out(vty, "NS-VC with remote %s:%u is a dynamic NS-VC. Not configured by vty.%s", + remote_str.ip, remote_str.port, VTY_NEWLINE); + return CMD_WARNING; + } + + if (nsvc->nse != nse) { + vty_out(vty, "NS-VC is not part of this NSE!%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (!nsvc->nsvci_is_valid) { + vty_out(vty, "NS-VC doesn't have a nsvci!%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (nsvc->nsvci != nsvci) { + vty_out(vty, "NS-VC has a different nsvci (%u)!%s", + nsvc->nsvci, VTY_NEWLINE); + return CMD_WARNING; + } + + gprs_ns2_free_nsvc(nsvc); + if (llist_empty(&nse->nsvc)) { + nse->ll = GPRS_NS2_LL_UNDEF; + nse->dialect = GPRS_NS2_DIALECT_UNDEF; + } + + return CMD_SUCCESS; +} + +DEFUN(cfg_ns_nse_ip_sns, cfg_ns_nse_ip_sns_cmd, + "ip-sns " VTY_IPV46_CMD " <1-65535>", + "SNS Initial Endpoint\n" + "SGSN IPv4 Address\n" "SGSN IPv6 Address\n" + "SGSN UDP Port\n" + ) +{ + struct gprs_ns2_nse *nse = vty->index; + bool dialect_modified = false; + bool ll_modified = false; + int rc; + + /* argv[0] */ + struct osmo_sockaddr_str remote_str; + struct osmo_sockaddr remote; + uint16_t port = atoi(argv[1]); + + if (nse->ll == GPRS_NS2_LL_UNDEF) { + nse->ll = GPRS_NS2_LL_UDP; + ll_modified = true; + } + + if (nse->dialect == GPRS_NS2_DIALECT_UNDEF) { + char sns[16]; + snprintf(sns, sizeof(sns), "NSE%05u-SNS", nse->nsei); + nse->bss_sns_fi = ns2_sns_bss_fsm_alloc(nse, sns); + if (!nse->bss_sns_fi) + goto err; + nse->dialect = GPRS_NS2_DIALECT_SNS; + dialect_modified = true; + } + + if (nse->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "Can not mix NS-VC with different link layer%s", VTY_NEWLINE); + goto err; + } + + if (nse->dialect != GPRS_NS2_DIALECT_SNS) { + vty_out(vty, "Can not mix NS-VC with different dialects%s", VTY_NEWLINE); + goto err; + } + + if (osmo_sockaddr_str_from_str(&remote_str, argv[0], port)) { + vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); + goto err; + } + + if (osmo_sockaddr_str_to_sockaddr(&remote_str, &remote.u.sas)) { + vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); + goto err; + } + + rc = gprs_ns2_sns_add_endpoint(nse, &remote); + switch (rc) { + case 0: + return CMD_SUCCESS; + case -EADDRINUSE: + vty_out(vty, "Specified SNS endpoint already part of the NSE.%s", VTY_NEWLINE); + return CMD_WARNING; + default: + vty_out(vty, "Can not add specified SNS endpoint.%s", VTY_NEWLINE); + return CMD_WARNING; + } + +err: + if (ll_modified) + nse->ll = GPRS_NS2_LL_UNDEF; + if (dialect_modified) + nse->dialect = GPRS_NS2_DIALECT_UNDEF; + return CMD_WARNING; +} + +DEFUN(cfg_no_ns_nse_ip_sns, cfg_no_ns_nse_ip_sns_cmd, + "no ip-sns " VTY_IPV46_CMD " <1-65535>", + NO_STR + "Delete a SNS Initial Endpoint\n" + "SGSN IPv4 Address\n" "SGSN IPv6 Address\n" + "SGSN UDP Port\n" + ) +{ + struct gprs_ns2_nse *nse = vty->index; + struct osmo_sockaddr_str remote_str; /* argv[0] */ + struct osmo_sockaddr remote; + uint16_t port = atoi(argv[1]); + int count; + + if (nse->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "This NSE doesn't support UDP.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (nse->dialect != GPRS_NS2_DIALECT_SNS) { + vty_out(vty, "This NSE doesn't support UDP with dialect ip-sns.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (osmo_sockaddr_str_from_str(&remote_str, argv[0], port)) { + vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (osmo_sockaddr_str_to_sockaddr(&remote_str, &remote.u.sas)) { + vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (gprs_ns2_sns_del_endpoint(nse, &remote)) { + vty_out(vty, "Can not remove specified SNS endpoint.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + count = gprs_ns2_sns_count(nse); + if (count > 0) { + /* there are other sns endpoints */ + return CMD_SUCCESS; + } else if (count < 0) { + OSMO_ASSERT(0); + } else { + /* clean up nse to allow other nsvc commands */ + osmo_fsm_inst_term(nse->bss_sns_fi, OSMO_FSM_TERM_REQUEST, NULL); + nse->bss_sns_fi = NULL; + nse->ll = GPRS_NS2_LL_UNDEF; + nse->dialect = GPRS_NS2_DIALECT_UNDEF; + } + + return CMD_SUCCESS; +} + + +/* non-config commands */ static void dump_nsvc(struct vty *vty, struct gprs_ns2_vc *nsvc, bool stats) { char nsvci_str[32]; @@ -440,7 +1491,9 @@ return CMD_WARNING; } - if (nse->dialect == GPRS_NS2_DIALECT_SNS) { + if (!nse->persistent) { + gprs_ns2_free_nse(nse); + } else if (nse->dialect == GPRS_NS2_DIALECT_SNS) { gprs_ns2_free_nsvcs(nse); } else { /* Perform the operation for all nsvc */ @@ -450,310 +1503,57 @@ return CMD_SUCCESS; } -#define NSE_CMD_STR "Persistent NS Entity\n" "NS Entity ID (NSEI)\n" - -DEFUN(cfg_nse_fr, cfg_nse_fr_cmd, - "nse <0-65535> nsvci <0-65535> (fr|frnet) NETIF dlci <0-1023>", - NSE_CMD_STR - "NS Virtual Connection\n" - "NS Virtual Connection ID (NSVCI)\n" - "Frame Relay User-Side\n" - "Frame Relay Network-Side\n" - IFNAME_STR - "Data Link connection identifier\n" - "Data Link connection identifier\n" - ) +DEFUN(nsvc_block, nsvc_block_cmd, + "nsvc <0-65535> (block|unblock)", + "NS Virtual Connection\n" + NSVCI_STR + "Block a NSVC. As cause code O&M intervention will be used.\n" + "Unblock a NSVC. As cause code O&M intervention will be used.\n") { - struct ns2_vty_vc *vtyvc; + struct gprs_ns2_inst *nsi = vty_nsi; + struct gprs_ns2_vc *nsvc; - uint16_t nsei = atoi(argv[0]); - uint16_t nsvci = atoi(argv[1]); - const char *role = argv[2]; - const char *name = argv[3]; - uint16_t dlci = atoi(argv[4]); + uint16_t id = atoi(argv[0]); - vtyvc = vtyvc_by_nsei(nsei, true); - if (!vtyvc) { - vty_out(vty, "Can not allocate space %s", VTY_NEWLINE); + nsvc = gprs_ns2_nsvc_by_nsvci(nsi, id); + if (!nsvc) { + vty_out(vty, "Could not find NSVCI %05u%s", id, VTY_NEWLINE); return CMD_WARNING; } - if (!strcmp(role, "fr")) - vtyvc->fr.role = FR_ROLE_USER_EQUIPMENT; - else if (!strcmp(role, "frnet")) - vtyvc->fr.role = FR_ROLE_NETWORK_EQUIPMENT; - - osmo_strlcpy(vtyvc->netif, name, sizeof(vtyvc->netif)); - vtyvc->frdlci = dlci; - vtyvc->nsvci = nsvci; - vtyvc->ll = GPRS_NS2_LL_FR; - - return CMD_SUCCESS; -} - -DEFUN(cfg_nse_nsvc, cfg_nse_nsvci_cmd, - "nse <0-65535> nsvci <0-65535>", - NSE_CMD_STR - "NS Virtual Connection\n" - "NS Virtual Connection ID (NSVCI)\n" - ) -{ - struct ns2_vty_vc *vtyvc; - - uint16_t nsei = atoi(argv[0]); - uint16_t nsvci = atoi(argv[1]); - - vtyvc = vtyvc_by_nsei(nsei, true); - if (!vtyvc) { - vty_out(vty, "Can not allocate space %s", VTY_NEWLINE); - return CMD_WARNING; - } - - vtyvc->nsvci = nsvci; - - return CMD_SUCCESS; -} - -DEFUN(cfg_nse_remoteip, cfg_nse_remoteip_cmd, - "nse <0-65535> remote-ip " VTY_IPV46_CMD, - NSE_CMD_STR - "Remote IP Address\n" - "Remote IPv4 Address\n" - "Remote IPv6 Address\n") -{ - uint16_t nsei = atoi(argv[0]); - struct ns2_vty_vc *vtyvc; - - vtyvc = vtyvc_by_nsei(nsei, true); - if (!vtyvc) { - vty_out(vty, "Can not allocate space %s", VTY_NEWLINE); - return CMD_WARNING; - } - - osmo_sockaddr_str_from_str2(&vtyvc->remote, argv[1]); - - return CMD_SUCCESS; -} - -DEFUN(cfg_nse_remoteport, cfg_nse_remoteport_cmd, - "nse <0-65535> remote-port <0-65535>", - NSE_CMD_STR - "Remote UDP Port\n" - "Remote UDP Port Number\n") -{ - uint16_t nsei = atoi(argv[0]); - uint16_t port = atoi(argv[1]); - struct ns2_vty_vc *vtyvc; - - vtyvc = vtyvc_by_nsei(nsei, true); - if (!vtyvc) { - vty_out(vty, "Can not allocate space %s", VTY_NEWLINE); - return CMD_WARNING; - } - - vtyvc->remote.port = port; - - return CMD_SUCCESS; -} - -DEFUN(cfg_nse_fr_dlci, cfg_nse_fr_dlci_cmd, - "nse <0-65535> nsvci <0-65535> fr-dlci <16-1007>", - NSE_CMD_STR - "NS Virtual Connection\n" - "NS Virtual Connection ID (NSVCI)\n" - "Frame Relay DLCI\n" - "Frame Relay DLCI Number\n") -{ - uint16_t nsei = atoi(argv[0]); - uint16_t nsvci = atoi(argv[1]); - uint16_t dlci = atoi(argv[2]); - struct ns2_vty_vc *vtyvc; - - vtyvc = vtyvc_by_nsei(nsei, true); - if (!vtyvc) { - vty_out(vty, "Can not allocate space %s", VTY_NEWLINE); - return CMD_WARNING; - } - - vtyvc->frdlci = dlci; - vtyvc->nsvci = nsvci; - - return CMD_SUCCESS; -} - -DEFUN(cfg_nse_encaps, cfg_nse_encaps_cmd, - "nse <0-65535> encapsulation (udp|framerelay-gre)", - NSE_CMD_STR - "Encapsulation for NS\n" - "UDP/IP Encapsulation\n" "Frame-Relay/GRE/IP Encapsulation\n") -{ - uint16_t nsei = atoi(argv[0]); - struct ns2_vty_vc *vtyvc; - - vtyvc = vtyvc_by_nsei(nsei, true); - if (!vtyvc) { - vty_out(vty, "Can not allocate space %s", VTY_NEWLINE); - return CMD_WARNING; - } - - if (!strcmp(argv[1], "udp")) - vtyvc->ll = GPRS_NS2_LL_UDP; - else - vtyvc->ll = GPRS_NS2_LL_FR_GRE; - - return CMD_SUCCESS; -} - -DEFUN(cfg_nse_remoterole, cfg_nse_remoterole_cmd, - "nse <0-65535> remote-role (sgsn|bss)", - NSE_CMD_STR - "Remote NSE Role\n" - "Remote Peer is SGSN\n" - "Remote Peer is BSS\n") -{ - uint16_t nsei = atoi(argv[0]); - struct ns2_vty_vc *vtyvc; - - vtyvc = vtyvc_by_nsei(nsei, true); - if (!vtyvc) { - vty_out(vty, "Can not allocate space %s", VTY_NEWLINE); - return CMD_WARNING; - } - - if (!strcmp(argv[1], "sgsn")) - vtyvc->remote_end_is_sgsn = 1; - else - vtyvc->remote_end_is_sgsn = 0; - - return CMD_SUCCESS; -} - -DEFUN(cfg_no_nse, cfg_no_nse_cmd, - "no nse <0-65535>", - "Delete Persistent NS Entity\n" - "Delete " NSE_CMD_STR) -{ - uint16_t nsei = atoi(argv[0]); - struct ns2_vty_vc *vtyvc; - - vtyvc = vtyvc_by_nsei(nsei, false); - if (!vtyvc) { - vty_out(vty, "The NSE %d does not exists.%s", nsei, VTY_NEWLINE); - return CMD_WARNING; - } - - ns2_vc_free(vtyvc); - - return CMD_SUCCESS; -} - -DEFUN(cfg_ns_timer, cfg_ns_timer_cmd, - "timer " NS_TIMERS " <0-65535>", - "Network Service Timer\n" - NS_TIMERS_HELP "Timer Value\n") -{ - int idx = get_string_value(gprs_ns_timer_strs, argv[0]); - int val = atoi(argv[1]); - - if (idx < 0 || idx >= ARRAY_SIZE(vty_nsi->timeout)) - return CMD_WARNING; - - vty_nsi->timeout[idx] = val; - - return CMD_SUCCESS; -} - -#define ENCAPS_STR "NS encapsulation options\n" - -DEFUN(cfg_nsip_local_ip, cfg_nsip_local_ip_cmd, - "encapsulation udp local-ip " VTY_IPV46_CMD, - ENCAPS_STR "NS over UDP Encapsulation\n" - "Set the IP address on which we listen for NS/UDP\n" - "IPv4 Address\n" - "IPv6 Address\n") -{ - osmo_sockaddr_str_from_str2(&priv.udp, argv[0]); - - return CMD_SUCCESS; -} - -DEFUN(cfg_nsip_local_port, cfg_nsip_local_port_cmd, - "encapsulation udp local-port <0-65535>", - ENCAPS_STR "NS over UDP Encapsulation\n" - "Set the UDP port on which we listen for NS/UDP\n" - "UDP port number\n") -{ - unsigned int port = atoi(argv[0]); - - priv.udp.port = port; - - return CMD_SUCCESS; -} - -DEFUN(cfg_nsip_dscp, cfg_nsip_dscp_cmd, - "encapsulation udp dscp <0-255>", - ENCAPS_STR "NS over UDP Encapsulation\n" - "Set DSCP/TOS on the UDP socket\n" "DSCP Value\n") -{ - int dscp = atoi(argv[0]); - struct gprs_ns2_vc_bind *bind; - - priv.dscp = dscp; - - llist_for_each_entry(bind, &vty_nsi->binding, list) { - if (gprs_ns2_is_ip_bind(bind)) - gprs_ns2_ip_bind_set_dscp(bind, dscp); + if (!strcmp(argv[1], "block")) { + ns2_vc_block(nsvc); + } else { + ns2_vc_unblock(nsvc); } return CMD_SUCCESS; } -DEFUN(cfg_nsip_res_block_unblock, cfg_nsip_res_block_unblock_cmd, - "encapsulation udp use-reset-block-unblock (enabled|disabled)", - ENCAPS_STR "NS over UDP Encapsulation\n" - "Use NS-{RESET,BLOCK,UNBLOCK} procedures in violation of 3GPP TS 48.016\n" - "Enable NS-{RESET,BLOCK,UNBLOCK}\n" - "Disable NS-{RESET,BLOCK,UNBLOCK}\n") +static void log_set_nse_filter(struct log_target *target, + struct gprs_ns2_nse *nse) { - enum gprs_ns2_vc_mode vc_mode; - - if (!strcmp(argv[0], "enabled")) - vc_mode = GPRS_NS2_VC_MODE_BLOCKRESET; - else - vc_mode = GPRS_NS2_VC_MODE_ALIVE; - - priv.vc_mode = vc_mode; - - return CMD_SUCCESS; + if (nse) { + target->filter_map |= (1 << LOG_FLT_GB_NSE); + target->filter_data[LOG_FLT_GB_NSE] = nse; + } else if (target->filter_data[LOG_FLT_GB_NSE]) { + target->filter_map = ~(1 << LOG_FLT_GB_NSE); + target->filter_data[LOG_FLT_GB_NSE] = NULL; + } } -DEFUN(cfg_frgre_local_ip, cfg_frgre_local_ip_cmd, - "encapsulation framerelay-gre local-ip " VTY_IPV46_CMD, - ENCAPS_STR "NS over Frame Relay over GRE Encapsulation\n" - "Set the IP address on which we listen for NS/FR/GRE\n" - "IPv4 Address\n" - "IPv6 Address\n") +static void log_set_nsvc_filter(struct log_target *target, + struct gprs_ns2_vc *nsvc) { - osmo_sockaddr_str_from_str2(&priv.frgreaddr, argv[0]); - - return CMD_SUCCESS; + if (nsvc) { + target->filter_map |= (1 << LOG_FLT_GB_NSVC); + target->filter_data[LOG_FLT_GB_NSVC] = nsvc; + } else if (target->filter_data[LOG_FLT_GB_NSVC]) { + target->filter_map = ~(1 << LOG_FLT_GB_NSVC); + target->filter_data[LOG_FLT_GB_NSVC] = NULL; + } } -DEFUN(cfg_frgre_enable, cfg_frgre_enable_cmd, - "encapsulation framerelay-gre enabled (1|0)", - ENCAPS_STR "NS over Frame Relay over GRE Encapsulation\n" - "Enable or disable Frame Relay over GRE\n" - "Enable\n" "Disable\n") -{ - int enabled = atoi(argv[0]); - - priv.frgre = enabled; - - return CMD_SUCCESS; -} - -/* TODO: allow vty to reset/block/unblock nsvc/nsei */ - DEFUN(logging_fltr_nse, logging_fltr_nse_cmd, "logging filter nse nsei <0-65535>", @@ -817,29 +1617,14 @@ return CMD_SUCCESS; } -/** - * gprs_ns2_vty_init initialize the vty - * \param[inout] nsi - * \param[in] default_bind set the default address to bind to. Can be NULL. - * \return 0 on success - */ -int gprs_ns2_vty_init(struct gprs_ns2_inst *nsi, - const struct osmo_sockaddr_str *default_bind) +int gprs_ns2_vty_init(struct gprs_ns2_inst *nsi) { - static bool vty_elements_installed = false; - vty_nsi = nsi; - memset(&priv, 0, sizeof(struct ns2_vty_priv)); - INIT_LLIST_HEAD(&priv.vtyvc); - priv.vc_mode = GPRS_NS2_VC_MODE_BLOCKRESET; - if (default_bind) - memcpy(&priv.udp, default_bind, sizeof(*default_bind)); + INIT_LLIST_HEAD(&binds); - /* Regression test code may call this function repeatedly, so make sure - * that VTY elements are not duplicated, which would assert. */ - if (vty_elements_installed) - return 0; - vty_elements_installed = true; + vty_fr_network = osmo_fr_network_alloc(nsi); + if (!vty_fr_network) + return -ENOMEM; install_lib_element_ve(&show_ns_cmd); install_lib_element_ve(&show_ns_binds_cmd); @@ -850,152 +1635,42 @@ install_lib_element_ve(&logging_fltr_nsvc_cmd); install_lib_element(ENABLE_NODE, &nsvc_force_unconf_cmd); + install_lib_element(ENABLE_NODE, &nsvc_block_cmd); install_lib_element(CFG_LOG_NODE, &logging_fltr_nse_cmd); install_lib_element(CFG_LOG_NODE, &logging_fltr_nsvc_cmd); install_lib_element(CONFIG_NODE, &cfg_ns_cmd); + install_node(&ns_node, config_write_ns); - install_lib_element(L_NS_NODE, &cfg_nse_fr_cmd); - install_lib_element(L_NS_NODE, &cfg_nse_nsvci_cmd); - install_lib_element(L_NS_NODE, &cfg_nse_remoteip_cmd); - install_lib_element(L_NS_NODE, &cfg_nse_remoteport_cmd); - install_lib_element(L_NS_NODE, &cfg_nse_fr_dlci_cmd); - install_lib_element(L_NS_NODE, &cfg_nse_encaps_cmd); - install_lib_element(L_NS_NODE, &cfg_nse_remoterole_cmd); - install_lib_element(L_NS_NODE, &cfg_no_nse_cmd); + /* TODO: convert into osmo timer */ install_lib_element(L_NS_NODE, &cfg_ns_timer_cmd); - install_lib_element(L_NS_NODE, &cfg_nsip_local_ip_cmd); - install_lib_element(L_NS_NODE, &cfg_nsip_local_port_cmd); - install_lib_element(L_NS_NODE, &cfg_nsip_dscp_cmd); - install_lib_element(L_NS_NODE, &cfg_nsip_res_block_unblock_cmd); - install_lib_element(L_NS_NODE, &cfg_frgre_enable_cmd); - install_lib_element(L_NS_NODE, &cfg_frgre_local_ip_cmd); + install_lib_element(L_NS_NODE, &cfg_ns_nsei_cmd); + install_lib_element(L_NS_NODE, &cfg_no_ns_nsei_cmd); + install_lib_element(L_NS_NODE, &cfg_ns_bind_cmd); + install_lib_element(L_NS_NODE, &cfg_no_ns_bind_cmd); - /* TODO: nsvc/nsei command to reset states or reset/block/unblock nsei/nsvcs */ + install_node(&ns_bind_node, config_write_ns_bind); + install_lib_element(L_NS_BIND_NODE, &cfg_ns_bind_listen_cmd); + install_lib_element(L_NS_BIND_NODE, &cfg_no_ns_bind_listen_cmd); + install_lib_element(L_NS_BIND_NODE, &cfg_ns_bind_dscp_cmd); + install_lib_element(L_NS_BIND_NODE, &cfg_no_ns_bind_dscp_cmd); + install_lib_element(L_NS_BIND_NODE, &cfg_ns_bind_ipaccess_cmd); + install_lib_element(L_NS_BIND_NODE, &cfg_no_ns_bind_ipaccess_cmd); + install_lib_element(L_NS_BIND_NODE, &cfg_ns_bind_fr_cmd); + install_lib_element(L_NS_BIND_NODE, &cfg_no_ns_bind_fr_cmd); + /* TODO: accept-ip-sns when SGSN SNS has been implemented */ - return 0; -} - -/*! - * \brief gprs_ns2_vty_create parse the vty tree into ns nodes - * It has to be in different steps to ensure the bind is created before creating VCs. - * \return 0 on success - */ -int gprs_ns2_vty_create() { - struct ns2_vty_vc *vtyvc; - struct gprs_ns2_vc_bind *bind, *fr; - struct gprs_ns2_nse *nse; - struct gprs_ns2_vc *nsvc; - struct osmo_sockaddr sockaddr; - enum gprs_ns2_dialect dialect = GPRS_NS2_DIALECT_UNDEF; - int rc = 0; - - if (!vty_nsi) - return -1; - - /* create binds, only support a single bind. either FR or UDP */ - if (priv.frgre) { - /* TODO not yet supported !*/ - return -1; - } else { - /* UDP */ - osmo_sockaddr_str_to_sockaddr(&priv.udp, &sockaddr.u.sas); - if (gprs_ns2_ip_bind(vty_nsi, "vtybind", &sockaddr, priv.dscp, &bind)) { - /* TODO: could not bind on the specific address */ - return -1; - } - - bind->accept_ipaccess = priv.vc_mode == GPRS_NS2_VC_MODE_BLOCKRESET; - } - - /* create vcs */ - llist_for_each_entry(vtyvc, &priv.vtyvc, list) { - /* validate settings */ - switch (vtyvc->ll) { - case GPRS_NS2_LL_UDP: - if (priv.vc_mode == GPRS_NS2_VC_MODE_BLOCKRESET) - dialect = GPRS_NS2_DIALECT_IPACCESS; - else - dialect = GPRS_NS2_DIALECT_STATIC_ALIVE; - if (strlen(vtyvc->remote.ip) == 0) { - /* Invalid IP for VC */ - continue; - } - - if (!vtyvc->remote.port) { - /* Invalid port for VC */ - continue; - } - - if (osmo_sockaddr_str_to_sockaddr(&vtyvc->remote, &sockaddr.u.sas)) { - /* Invalid sockaddr for VC */ - continue; - } - break; - case GPRS_NS2_LL_FR: - dialect = GPRS_NS2_DIALECT_STATIC_RESETBLOCK; - break; - case GPRS_NS2_LL_FR_GRE: - dialect = GPRS_NS2_DIALECT_STATIC_RESETBLOCK; - continue; - case GPRS_NS2_LL_UNDEF: - /* should not happen */ - OSMO_ASSERT(false); - } - - nse = gprs_ns2_nse_by_nsei(vty_nsi, vtyvc->nsei); - if (!nse) { - nse = gprs_ns2_create_nse(vty_nsi, vtyvc->nsei, vtyvc->ll, dialect); - if (!nse) { - /* Could not create NSE for VTY */ - continue; - } - } - nse->persistent = true; - - switch (vtyvc->ll) { - case GPRS_NS2_LL_UDP: - nsvc = gprs_ns2_ip_connect(bind, - &sockaddr, - nse, - vtyvc->nsvci); - if (!nsvc) { - /* Could not create NSVC, connect failed */ - continue; - } - nsvc->persistent = true; - break; - case GPRS_NS2_LL_FR: { - if (vty_fr_network == NULL) { - /* TODO: add a switch for BSS/SGSN/gbproxy */ - vty_fr_network = osmo_fr_network_alloc(vty_nsi); - } - fr = gprs_ns2_fr_bind_by_netif( - vty_nsi, - vtyvc->netif); - if (!fr) { - rc = gprs_ns2_fr_bind(vty_nsi, vtyvc->netif, vtyvc->netif, vty_fr_network, vtyvc->fr.role, &fr); - if (rc < 0) { - LOGP(DLNS, LOGL_ERROR, "Can not create fr bind on device %s err: %d\n", vtyvc->netif, rc); - return rc; - } - } - - nsvc = gprs_ns2_fr_connect(fr, nse, vtyvc->nsvci, vtyvc->frdlci); - if (!nsvc) { - /* Could not create NSVC, connect failed */ - continue; - } - nsvc->persistent = true; - break; - } - case GPRS_NS2_LL_FR_GRE: - case GPRS_NS2_LL_UNDEF: - continue; - } - } - + install_node(&ns_nse_node, config_write_ns_nse); + install_lib_element(L_NS_NSE_NODE, &cfg_ns_nse_nsvc_fr_cmd); + install_lib_element(L_NS_NSE_NODE, &cfg_no_ns_nse_nsvci_cmd); + install_lib_element(L_NS_NSE_NODE, &cfg_no_ns_nse_nsvc_fr_dlci_cmd); + install_lib_element(L_NS_NSE_NODE, &cfg_ns_nse_nsvc_udp_cmd); + install_lib_element(L_NS_NSE_NODE, &cfg_no_ns_nse_nsvc_udp_cmd); + install_lib_element(L_NS_NSE_NODE, &cfg_ns_nse_nsvc_ipa_cmd); + install_lib_element(L_NS_NSE_NODE, &cfg_no_ns_nse_nsvc_ipa_cmd); + install_lib_element(L_NS_NSE_NODE, &cfg_ns_nse_ip_sns_cmd); + install_lib_element(L_NS_NSE_NODE, &cfg_no_ns_nse_ip_sns_cmd); return 0; } diff --git a/src/gb/gprs_ns2_vty2.c b/src/gb/gprs_ns2_vty2.c deleted file mode 100644 index 31aff3e..0000000 --- a/src/gb/gprs_ns2_vty2.c +++ /dev/null @@ -1,1676 +0,0 @@ -/*! \file gprs_ns2_vty.c - * VTY interface for our GPRS Networks Service (NS) implementation. */ - -/* (C) 2020 by sysmocom - s.f.m.c. GmbH - * Author: Alexander Couzens - * - * All Rights Reserved - * - * SPDX-License-Identifier: GPL-2.0+ - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - */ - -#include -#include -#include -#include - -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "gprs_ns2_internal.h" - -#define SHOW_NS_STR "Display information about the NS protocol\n" -#define NSVCI_STR "NS Virtual Connection ID (NS-VCI)\n" -#define DLCI_STR "Data Link connection identifier\n" - -static struct gprs_ns2_inst *vty_nsi = NULL; -static struct osmo_fr_network *vty_fr_network = NULL; -static struct llist_head binds; - -struct vty_bind { - struct llist_head list; - const char *name; - enum gprs_ns2_ll ll; - int dscp; - bool accept_ipaccess; - bool accept_sns; -}; - -/* TODO: this should into osmo timer */ -static const struct value_string gprs_ns_timer_strs[] = { - { 0, "tns-block" }, - { 1, "tns-block-retries" }, - { 2, "tns-reset" }, - { 3, "tns-reset-retries" }, - { 4, "tns-test" }, - { 5, "tns-alive" }, - { 6, "tns-alive-retries" }, - { 7, "tsns-prov" }, - { 8, "tsns-size-retries" }, - { 9, "tsns-config-retries" }, - { 0, NULL } -}; - -const struct value_string vty_fr_role_names[] = { - { FR_ROLE_USER_EQUIPMENT, "fr" }, - { FR_ROLE_NETWORK_EQUIPMENT, "frnet" }, - { 0, NULL } -}; - -const struct value_string vty_ll_names[] = { - { GPRS_NS2_LL_FR, "fr" }, - { GPRS_NS2_LL_FR_GRE, "frgre" }, - { GPRS_NS2_LL_UDP, "udp" }, - { 0, NULL } -}; - -static struct vty_bind *vty_bind_by_name(const char *name) -{ - struct vty_bind *vbind; - llist_for_each_entry(vbind, &binds, list) { - if (!strncmp(vbind->name, name, strlen(vbind->name))) - return vbind; - } - return NULL; -} - -static struct vty_bind *vty_bind_alloc(const char *name) -{ - struct vty_bind *vbind = talloc_zero(vty_nsi, struct vty_bind); - if (!vbind) - return NULL; - - vbind->name = talloc_strdup(vty_nsi, name); - if (!vbind->name) { - talloc_free(vbind); - return NULL; - } - - llist_add(&vbind->list, &binds); - return vbind; -} - -static void vty_bind_free(struct vty_bind *vbind) -{ - if (!vbind) - return; - - llist_del(&vbind->list); -} - -static struct cmd_node ns_node = { - L_NS_NODE, - "%s(config-ns)# ", - 1, -}; - -DEFUN(cfg_ns, cfg_ns_cmd, - "ns", - "Configure the GPRS Network Service") -{ - vty->node = L_NS_NODE; - return CMD_SUCCESS; -} - -DEFUN(cfg_ns_timer, cfg_ns_timer_cmd, - "timer " NS_TIMERS " <0-65535>", - "Network Service Timer\n" - NS_TIMERS_HELP "Timer Value\n") -{ - int idx = get_string_value(gprs_ns_timer_strs, argv[0]); - int val = atoi(argv[1]); - - if (idx < 0 || idx >= ARRAY_SIZE(vty_nsi->timeout)) - return CMD_WARNING; - - vty_nsi->timeout[idx] = val; - - return CMD_SUCCESS; -} - -DEFUN(cfg_ns_nsei, cfg_ns_nsei_cmd, - "nse <0-65535>", - "Persistent NS Entity\n" - "NS Entity ID (NSEI)\n" - ) -{ - struct gprs_ns2_nse *nse; - uint16_t nsei = atoi(argv[0]); - - nse = gprs_ns2_nse_by_nsei(vty_nsi, nsei); - if (!nse) { - nse = gprs_ns2_create_nse(vty_nsi, nsei, GPRS_NS2_LL_UNDEF, GPRS_NS2_DIALECT_UNDEF); - if (!nse) { - vty_out(vty, "Failed to create NSE!%s", VTY_NEWLINE); - return CMD_ERR_INCOMPLETE; - } - nse->persistent = true; - } - - if (!nse->persistent) { - /* TODO: should the dynamic NSE removed? */ - vty_out(vty, "A dynamic NSE with the specified NSEI already exists%s", VTY_NEWLINE); - return CMD_ERR_INCOMPLETE; - } - - vty->node = L_NS_NSE_NODE; - vty->index = nse; - - return CMD_SUCCESS; -} - -DEFUN(cfg_no_ns_nsei, cfg_no_ns_nsei_cmd, - "no nse <0-65535>", - NO_STR - "Delete a Persistent NS Entity\n" - "NS Entity ID (NSEI)\n" - ) -{ - struct gprs_ns2_nse *nse; - uint16_t nsei = atoi(argv[0]); - - nse = gprs_ns2_nse_by_nsei(vty_nsi, nsei); - if (!nse) { - vty_out(vty, "Can not find NS Entity %s%s", argv[0], VTY_NEWLINE); - return CMD_ERR_NOTHING_TODO; - } - - if (!nse->persistent) { - vty_out(vty, "Ignoring non-persistent NS Entity%s", VTY_NEWLINE); - return CMD_WARNING; - } - - vty_out(vty, "Deleting NS Entity %u%s", nse->nsei, VTY_NEWLINE); - gprs_ns2_free_nse(nse); - return CMD_SUCCESS; -} - -/* TODO: add fr/gre */ -DEFUN(cfg_ns_bind, cfg_ns_bind_cmd, - "bind (fr|udp) ID", - "Binding\n" - "Frame Relay\n" "UDP/IP\n" - "a unique identifier for this bind to reference NS-VCs\n" - ) -{ - const char *nstype = argv[0]; - const char *name = argv[1]; - struct vty_bind *vbind; - enum gprs_ns2_ll ll; - int rc; - - rc = get_string_value(vty_ll_names, nstype); - if (rc < 0) - return CMD_WARNING; - ll = (enum gprs_ns2_ll) rc; - - if (!osmo_identifier_valid(name)) { - vty_out(vty, "Invalid ID. The ID should be only alphanumeric.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - vbind = vty_bind_by_name(name); - if (vbind) { - if (vbind->ll != ll) { - vty_out(vty, "A bind with the specified ID already exists with a different type (fr|frgre|udp)!%s", - VTY_NEWLINE); - return CMD_WARNING; - } - } else { - vbind = vty_bind_alloc(name); - if (!vbind) { - vty_out(vty, "Can not create bind - out of memory%s", VTY_NEWLINE); - return CMD_WARNING; - } - vbind->ll = ll; - } - - vty->index = vbind; - vty->node = L_NS_BIND_NODE; - - return CMD_SUCCESS; -} - -DEFUN(cfg_no_ns_bind, cfg_no_ns_bind_cmd, - "no bind ID", - NO_STR - "Delete a binding\n" - "a unique identifier for this bind to reference NS-VCs\n" - ) -{ - struct vty_bind *vbind; - struct gprs_ns2_vc_bind *bind; - const char *name = argv[0]; - - vbind = vty_bind_by_name(name); - if (!vbind) { - vty_out(vty, "bind %s does not exist!%s", name, VTY_NEWLINE); - return CMD_WARNING; - } - vty_bind_free(vbind); - bind = gprs_ns2_bind_by_name(vty_nsi, name); - if (bind) - bind->driver->free_bind(bind); - return CMD_SUCCESS; -} - - -static void config_write_vbind(struct vty *vty, struct vty_bind *vbind) -{ - struct gprs_ns2_vc_bind *bind; - const struct osmo_sockaddr *addr; - struct osmo_sockaddr_str addr_str; - const char *netif, *frrole_str, *llstr; - enum osmo_fr_role frrole; - - llstr = get_value_string_or_null(vty_ll_names, vbind->ll); - if (!llstr) - return; - vty_out(vty, " bind %s %s%s", llstr, vbind->name, VTY_NEWLINE); - - bind = gprs_ns2_bind_by_name(vty_nsi, vbind->name); - switch (vbind->ll) { - case GPRS_NS2_LL_FR: - if (bind) { - netif = gprs_ns2_fr_bind_netif(bind); - if (!netif) - return; - frrole = gprs_ns2_fr_bind_role(bind); - if ((int) frrole == -1) - return; - frrole_str = get_value_string_or_null(vty_fr_role_names, frrole); - if (netif && frrole_str) - vty_out(vty, " fr %s %s%s", netif, frrole_str, VTY_NEWLINE); - } - break; - case GPRS_NS2_LL_UDP: - if (bind) { - addr = gprs_ns2_ip_bind_sockaddr(bind); - if (!osmo_sockaddr_str_from_sockaddr(&addr_str, &addr->u.sas)) { - vty_out(vty, " listen %s %u%s", addr_str.ip, addr_str.port, - VTY_NEWLINE); - } - } - if (vbind->accept_ipaccess) - vty_out(vty, " accept-ipaccess%s", VTY_NEWLINE); - if (vbind->dscp) - vty_out(vty, " dscp %u%s", vbind->dscp, VTY_NEWLINE); - break; - default: - return; - } -} - -static void config_write_nsvc(struct vty *vty, const struct gprs_ns2_vc *nsvc) -{ - const char *netif; - uint16_t dlci; - const struct osmo_sockaddr *addr; - struct osmo_sockaddr_str addr_str; - - switch (nsvc->nse->ll) { - case GPRS_NS2_LL_UNDEF: - break; - case GPRS_NS2_LL_UDP: - switch (nsvc->nse->dialect) { - case GPRS_NS2_DIALECT_IPACCESS: - addr = gprs_ns2_ip_vc_remote(nsvc); - if (!addr) - break; - if (osmo_sockaddr_str_from_sockaddr(&addr_str, &addr->u.sas)) - break; - vty_out(vty, " nsvc ipa %s %s %u nsvci %u%s", - nsvc->bind->name, addr_str.ip, addr_str.port, - nsvc->nsvci, VTY_NEWLINE); - break; - case GPRS_NS2_DIALECT_STATIC_ALIVE: - addr = gprs_ns2_ip_vc_remote(nsvc); - if (!addr) - break; - if (osmo_sockaddr_str_from_sockaddr(&addr_str, &addr->u.sas)) - break; - vty_out(vty, " nsvc udp %s %s %u%s", - nsvc->bind->name, addr_str.ip, addr_str.port, VTY_NEWLINE); - break; - default: - break; - } - break; - case GPRS_NS2_LL_FR: - netif = gprs_ns2_fr_bind_netif(nsvc->bind); - if (!netif) - break; - dlci = gprs_ns2_fr_nsvc_dlci(nsvc); - if (!dlci) - break; - OSMO_ASSERT(nsvc->nsvci_is_valid); - vty_out(vty, " nsvc fr %s dlci %u nsvci %u%s", - netif, dlci, nsvc->nsvci, VTY_NEWLINE); - break; - case GPRS_NS2_LL_FR_GRE: - break; - } -} - -static void _config_write_ns_nse(struct vty *vty, struct gprs_ns2_nse *nse) -{ - struct gprs_ns2_vc *nsvc; - - vty_out(vty, " nse %u%s", nse->nsei, VTY_NEWLINE); - switch (nse->dialect) { - case GPRS_NS2_DIALECT_SNS: - ns2_sns_write_vty(vty, nse); - break; - default: - llist_for_each_entry(nsvc, &nse->nsvc, list) { - config_write_nsvc(vty, nsvc); - } - break; - } -} - -static int config_write_ns(struct vty *vty) -{ - unsigned int i; - - vty_out(vty, "ns%s", VTY_NEWLINE); - - for (i = 0; i < ARRAY_SIZE(vty_nsi->timeout); i++) - vty_out(vty, " timer %s %u%s", - get_value_string(gprs_ns_timer_strs, i), - vty_nsi->timeout[i], VTY_NEWLINE); - - return 0; -} - -static int config_write_ns_nse(struct vty *vty) -{ - struct gprs_ns2_nse *nse; - - llist_for_each_entry(nse, &vty_nsi->nse, list) { - if (!nse->persistent) - continue; - - _config_write_ns_nse(vty, nse); - } - - return 0; -} - -static int config_write_ns_bind(struct vty *vty) -{ - struct vty_bind *vbind; - - llist_for_each_entry(vbind, &binds, list) { - config_write_vbind(vty, vbind); - } - - return 0; -} - -static struct cmd_node ns_bind_node = { - L_NS_BIND_NODE, - "%s(config-ns-bind)# ", - 1, -}; - -DEFUN(cfg_ns_bind_listen, cfg_ns_bind_listen_cmd, - "listen " VTY_IPV46_CMD " <1-65535>", - "Binding\n" - "IPv4 Address\n" "IPv6 Address\n" - "Port\n" - ) -{ - struct vty_bind *vbind = vty->index; - struct gprs_ns2_vc_bind *bind; - - const char *addr_str = argv[0]; - unsigned int port = atoi(argv[1]); - struct osmo_sockaddr_str sockaddr_str; - struct osmo_sockaddr sockaddr; - - if (vbind->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "listen can be only used with UDP bind%s", - VTY_NEWLINE); - return CMD_WARNING; - } - - if (osmo_sockaddr_str_from_str(&sockaddr_str, addr_str, port)) { - vty_out(vty, "Can not parse the Address %s %s%s", argv[0], argv[1], VTY_NEWLINE); - return CMD_WARNING; - } - osmo_sockaddr_str_to_sockaddr(&sockaddr_str, &sockaddr.u.sas); - if (gprs_ns2_ip_bind_by_sockaddr(vty_nsi, &sockaddr)) { - vty_out(vty, "A bind with the specified address already exists!%s", VTY_NEWLINE); - return CMD_WARNING; - } - - if (gprs_ns2_ip_bind(vty_nsi, vbind->name, &sockaddr, vbind->dscp, &bind) != 0) { - vty_out(vty, "Failed to create the bind!%s", VTY_NEWLINE); - return CMD_WARNING; - } - - bind->accept_ipaccess = vbind->accept_ipaccess; - bind->accept_sns = vbind->accept_sns; - - return CMD_SUCCESS; -} - -DEFUN(cfg_no_ns_bind_listen, cfg_no_ns_bind_listen_cmd, - "no listen", - NO_STR - "Delete a IP/Port assignment\n" - ) -{ - struct vty_bind *vbind = vty->index; - struct gprs_ns2_vc_bind *bind; - - if (vbind->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "no listen can be only used with UDP bind%s", VTY_NEWLINE); - return CMD_WARNING; - } - - bind = gprs_ns2_bind_by_name(vty_nsi, vbind->name); - if (!bind) - return CMD_ERR_NOTHING_TODO; - - OSMO_ASSERT(bind->ll != GPRS_NS2_LL_UDP); - bind->driver->free_bind(bind); - return CMD_SUCCESS; -} - -DEFUN(cfg_ns_bind_dscp, cfg_ns_bind_dscp_cmd, - "dscp <0-255>", - "Set DSCP/TOS on the UDP socket\n" "DSCP Value\n") -{ - struct vty_bind *vbind = vty->index; - struct gprs_ns2_vc_bind *bind; - uint16_t dscp = atoi(argv[0]); - - if (vbind->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "dscp can be only used with UDP bind%s", - VTY_NEWLINE); - return CMD_WARNING; - } - - vbind->dscp = dscp; - bind = gprs_ns2_bind_by_name(vty_nsi, vbind->name); - if (bind) - gprs_ns2_ip_bind_set_dscp(bind, dscp); - - return CMD_SUCCESS; -} - -DEFUN(cfg_no_ns_bind_dscp, cfg_no_ns_bind_dscp_cmd, - "no dscp", - "Set DSCP/TOS on the UDP socket\n" "DSCP Value\n") -{ - struct vty_bind *vbind = vty->index; - struct gprs_ns2_vc_bind *bind; - uint16_t dscp = 0; - - if (vbind->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "dscp can be only used with UDP bind%s", - VTY_NEWLINE); - return CMD_WARNING; - } - - vbind->dscp = dscp; - bind = gprs_ns2_bind_by_name(vty_nsi, vbind->name); - if (bind) - gprs_ns2_ip_bind_set_dscp(bind, dscp); - - return CMD_SUCCESS; -} - -DEFUN(cfg_ns_bind_ipaccess, cfg_ns_bind_ipaccess_cmd, - "accept-ipaccess", - "Allow to create dynamic NS Entity by NS Reset PDU on UDP (ip.access style)\n" - ) -{ - struct vty_bind *vbind = vty->index; - struct gprs_ns2_vc_bind *bind; - - if (vbind->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "accept-ipaccess can be only used with UDP bind%s", - VTY_NEWLINE); - return CMD_WARNING; - } - - vbind->accept_ipaccess = true; - bind = gprs_ns2_bind_by_name(vty_nsi, vbind->name); - if (bind) - bind->accept_ipaccess = true; - - return CMD_SUCCESS; -} - -DEFUN(cfg_no_ns_bind_ipaccess, cfg_no_ns_bind_ipaccess_cmd, - "no accept-ipaccess", - NO_STR - "Reject NS Reset PDU on UDP (ip.access style)\n" - ) -{ - struct vty_bind *vbind = vty->index; - struct gprs_ns2_vc_bind *bind; - - if (vbind->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "no accept-ipaccess can be only used with UDP bind%s", - VTY_NEWLINE); - return CMD_WARNING; - } - - vbind->accept_ipaccess = false; - bind = gprs_ns2_bind_by_name(vty_nsi, vbind->name); - if (bind) - bind->accept_ipaccess = false; - - return CMD_SUCCESS; -} - - -DEFUN(cfg_ns_bind_fr, cfg_ns_bind_fr_cmd, - "fr NETIF (fr|frnet)", - "frame relay\n" - IFNAME_STR - "fr (user) is used by BSS or SGSN attached to UNI of a FR network\n" - "frnet (network) is used by SGSN if BSS is directly attached\n" - ) -{ - struct vty_bind *vbind = vty->index; - struct gprs_ns2_vc_bind *bind; - const char *netif = argv[0]; - const char *role = argv[1]; - - int rc = 0; - enum osmo_fr_role frrole; - - if (vbind->ll != GPRS_NS2_LL_FR) { - vty_out(vty, "fr can be only used with frame relay bind%s", VTY_NEWLINE); - return CMD_WARNING; - } - - if (!strcmp(role, "fr")) - frrole = FR_ROLE_USER_EQUIPMENT; - else if (!strcmp(role, "frnet")) - frrole = FR_ROLE_NETWORK_EQUIPMENT; - else - return CMD_WARNING; - - bind = gprs_ns2_fr_bind_by_netif(vty_nsi, netif); - if (bind) { - vty_out(vty, "Interface %s already used.%s", netif, VTY_NEWLINE); - return CMD_WARNING; - } - - rc = gprs_ns2_fr_bind(vty_nsi, vbind->name, netif, vty_fr_network, frrole, &bind); - if (rc < 0) { - LOGP(DLNS, LOGL_ERROR, "Failed to bind interface %s on fr. Err: %d\n", netif, rc); - return CMD_WARNING; - } - - return CMD_SUCCESS; -} - -DEFUN(cfg_no_ns_bind_fr, cfg_no_ns_bind_fr_cmd, - "no fr NETIF", - NO_STR - "Delete a frame relay link\n" - "Delete a frame relay link\n" - IFNAME_STR - ) -{ - struct vty_bind *vbind = vty->index; - struct gprs_ns2_vc_bind *bind; - const char *netif = argv[0]; - - if (vbind->ll != GPRS_NS2_LL_FR) { - vty_out(vty, "fr can be only used with frame relay bind%s", - VTY_NEWLINE); - return CMD_WARNING; - } - - bind = gprs_ns2_fr_bind_by_netif(vty_nsi, netif); - if (!bind) { - vty_out(vty, "Interface not found.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - if (strcmp(bind->name, vbind->name)) { - vty_out(vty, "The specified interface is not bound to this bind.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - bind->driver->free_bind(bind); - return CMD_SUCCESS; -} - - -static struct cmd_node ns_nse_node = { - L_NS_NSE_NODE, - "%s(config-ns-nse)# ", - 1, -}; - -DEFUN(cfg_ns_nse_nsvc_fr, cfg_ns_nse_nsvc_fr_cmd, - "nsvc fr NETIF dlci <16-1007> nsvci <0-65535>", - "NS Virtual Connection\n" - "frame relay\n" - "frame relay interface. Must be registered via fr vty\n" - NSVCI_STR - NSVCI_STR - DLCI_STR - DLCI_STR - ) -{ - struct gprs_ns2_vc_bind *bind; - struct gprs_ns2_vc *nsvc; - struct gprs_ns2_nse *nse = vty->index; - const char *netif = argv[0]; - uint16_t dlci = atoi(argv[1]); - uint16_t nsvci = atoi(argv[2]); - bool dialect_modified = false; - bool ll_modified = false; - - if (nse->ll != GPRS_NS2_LL_FR && nse->ll != GPRS_NS2_LL_UNDEF) { - vty_out(vty, "Can not mix NS-VC with different link layer%s", VTY_NEWLINE); - goto err; - } - - if (nse->dialect != GPRS_NS2_DIALECT_STATIC_RESETBLOCK && nse->dialect != GPRS_NS2_DIALECT_UNDEF) { - vty_out(vty, "Can not mix NS-VC with different dialects%s", VTY_NEWLINE); - goto err; - } - - if (nse->ll == GPRS_NS2_LL_UNDEF) { - nse->ll = GPRS_NS2_LL_FR; - ll_modified = true; - } - - if (nse->dialect == GPRS_NS2_DIALECT_UNDEF) { - nse->dialect = GPRS_NS2_DIALECT_STATIC_RESETBLOCK; - dialect_modified = true; - } - - - bind = gprs_ns2_fr_bind_by_netif(vty_nsi, netif); - if (!bind) { - vty_out(vty, "Can not find fr interface \"%s\". Please configure it via fr vty.%s", - netif, VTY_NEWLINE); - goto err; - } - - if (gprs_ns2_fr_nsvc_by_dlci(bind, dlci)) { - vty_out(vty, "A NS-VC with the specified DLCI already exist!%s", VTY_NEWLINE); - goto err; - } - - if (gprs_ns2_nsvc_by_nsvci(vty_nsi, nsvci)) { - vty_out(vty, "A NS-VC with the specified NS-VCI already exist!%s", VTY_NEWLINE); - goto err; - } - - nsvc = gprs_ns2_fr_connect(bind, nse, nsvci, dlci); - if (!nsvc) { - /* Could not create NS-VC, connect failed */ - vty_out(vty, "Failed to create the NS-VC%s", VTY_NEWLINE); - goto err; - } - nsvc->persistent = true; - return CMD_SUCCESS; - -err: - if (ll_modified) - nse->ll = GPRS_NS2_LL_UNDEF; - if (dialect_modified) - nse->dialect = GPRS_NS2_DIALECT_UNDEF; - - return CMD_WARNING; -} - -DEFUN(cfg_no_ns_nse_nsvc_fr_dlci, cfg_no_ns_nse_nsvc_fr_dlci_cmd, - "no nsvc fr NETIF dlci <16-1007>", - NO_STR - "Delete frame relay NS-VC\n" - "frame relay\n" - "frame relay interface. Must be registered via fr vty\n" - DLCI_STR - DLCI_STR - ) -{ - struct gprs_ns2_vc_bind *bind; - struct gprs_ns2_vc *nsvc; - struct gprs_ns2_nse *nse = vty->index; - const char *netif = argv[0]; - uint16_t dlci = atoi(argv[1]); - - if (nse->ll != GPRS_NS2_LL_FR) { - vty_out(vty, "This NSE doesn't support frame relay.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - bind = gprs_ns2_fr_bind_by_netif(vty_nsi, netif); - if (!bind) { - vty_out(vty, "Can not find fr interface \"%s\"%s", - netif, VTY_NEWLINE); - return CMD_ERR_NOTHING_TODO; - } - - nsvc = gprs_ns2_fr_nsvc_by_dlci(bind, dlci); - if (!nsvc) { - vty_out(vty, "Can not find a NS-VC on fr interface %s with dlci %u%s", - netif, dlci, VTY_NEWLINE); - return CMD_WARNING; - } - - if (nse != nsvc->nse) { - vty_out(vty, "The specified NS-VC is not a part of the NSE %u!%s" - "To remove this NS-VC go to the vty node 'nse %u'%s", - nse->nsei, VTY_NEWLINE, - nsvc->nse->nsei, VTY_NEWLINE); - return CMD_WARNING; - } - - gprs_ns2_free_nsvc(nsvc); - if (llist_empty(&nse->nsvc)) { - nse->ll = GPRS_NS2_LL_UNDEF; - nse->dialect = GPRS_NS2_DIALECT_UNDEF; - } - - return CMD_SUCCESS; -} - -DEFUN(cfg_no_ns_nse_nsvci, cfg_no_ns_nse_nsvci_cmd, - "no nsvc nsvci <0-65535>", - NO_STR - "Delete NSVC\n" - NSVCI_STR - NSVCI_STR - ) -{ - struct gprs_ns2_vc *nsvc; - struct gprs_ns2_nse *nse = vty->index; - uint16_t nsvci = atoi(argv[0]); - - switch (nse->dialect) { - case GPRS_NS2_DIALECT_SNS: - case GPRS_NS2_DIALECT_STATIC_ALIVE: - vty_out(vty, "NSE doesn't support NSVCI.%s", VTY_NEWLINE); - return CMD_WARNING; - case GPRS_NS2_DIALECT_UNDEF: - vty_out(vty, "No NSVCs configured%s", VTY_NEWLINE); - return CMD_WARNING; - case GPRS_NS2_DIALECT_IPACCESS: - case GPRS_NS2_DIALECT_STATIC_RESETBLOCK: - break; - } - - nsvc = gprs_ns2_nsvc_by_nsvci(vty_nsi, nsvci); - if (!nsvc) { - vty_out(vty, "Can not find NS-VC with NS-VCI %u%s", nsvci, VTY_NEWLINE); - return CMD_WARNING; - } - - if (nse != nsvc->nse) { - vty_out(vty, "NS-VC with NS-VCI %u is not part of this NSE!%s", - nsvci, VTY_NEWLINE); - return CMD_WARNING; - } - - gprs_ns2_free_nsvc(nsvc); - if (llist_empty(&nse->nsvc)) { - nse->ll = GPRS_NS2_LL_UNDEF; - nse->dialect = GPRS_NS2_DIALECT_UNDEF; - } - - return CMD_SUCCESS; -} - -DEFUN(cfg_ns_nse_nsvc_udp, cfg_ns_nse_nsvc_udp_cmd, - "nsvc udp BIND " VTY_IPV46_CMD " <1-65535>", - "NS Virtual Connection\n" - "NS over UDP\n" - "A unique bind identifier created by ns bind\n" - "Remote IPv4 Address\n" "Remote IPv6 Address\n" - "Remote UDP Port\n" - ) -{ - struct gprs_ns2_vc_bind *bind; - struct gprs_ns2_vc *nsvc; - struct gprs_ns2_nse *nse = vty->index; - bool dialect_modified = false; - bool ll_modified = false; - - const char *bind_name = argv[0]; - struct osmo_sockaddr_str remote_str; - struct osmo_sockaddr remote; - uint16_t port = atoi(argv[2]); - - if (nse->ll == GPRS_NS2_LL_UNDEF) { - nse->ll = GPRS_NS2_LL_UDP; - ll_modified = true; - } - - if (nse->dialect == GPRS_NS2_DIALECT_UNDEF) { - nse->dialect = GPRS_NS2_DIALECT_STATIC_ALIVE; - dialect_modified = true; - } - - if (nse->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "Can not mix NS-VC with different link layer%s", VTY_NEWLINE); - goto err; - } - - if (nse->dialect != GPRS_NS2_DIALECT_STATIC_ALIVE) { - vty_out(vty, "Can not mix NS-VC with different dialects%s", VTY_NEWLINE); - goto err; - } - - if (osmo_sockaddr_str_from_str(&remote_str, argv[1], port)) { - vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); - goto err; - } - - if (osmo_sockaddr_str_to_sockaddr(&remote_str, &remote.u.sas)) { - vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); - goto err; - } - - bind = gprs_ns2_bind_by_name(vty_nsi, bind_name); - if (!bind) { - vty_out(vty, "Can not find bind with name %s%s", - bind_name, VTY_NEWLINE); - goto err; - } - - if (bind->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "Bind %s is not an UDP bind.%s", - bind_name, VTY_NEWLINE); - goto err; - } - - nsvc = gprs_ns2_ip_connect(bind, &remote, nse, 0); - if (!nsvc) { - vty_out(vty, "Can not create NS-VC.%s", VTY_NEWLINE); - goto err; - } - nsvc->persistent = true; - - return CMD_SUCCESS; - -err: - if (ll_modified) - nse->ll = GPRS_NS2_LL_UNDEF; - if (dialect_modified) - nse->dialect = GPRS_NS2_DIALECT_UNDEF; - return CMD_WARNING; -} - -DEFUN(cfg_no_ns_nse_nsvc_udp, cfg_no_ns_nse_nsvc_udp_cmd, - "no nsvc udp BIND " VTY_IPV46_CMD " <1-65535>", - NO_STR - "Delete a NS Virtual Connection\n" - "NS over UDP\n" - "A unique bind identifier created by ns bind\n" - "Remote IPv4 Address\n" "Remote IPv6 Address\n" - "Remote UDP Port\n" - ) -{ - struct gprs_ns2_vc_bind *bind; - struct gprs_ns2_vc *nsvc; - struct gprs_ns2_nse *nse = vty->index; - const char *bind_name = argv[0]; - struct osmo_sockaddr_str remote_str; - struct osmo_sockaddr remote; - uint16_t port = atoi(argv[2]); - - if (nse->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "This NSE doesn't support UDP.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - if (nse->dialect != GPRS_NS2_DIALECT_STATIC_ALIVE) { - vty_out(vty, "This NSE doesn't support UDP with dialect static alive.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - bind = gprs_ns2_bind_by_name(vty_nsi, bind_name); - if (!bind) { - vty_out(vty, "Can not find bind with name %s%s", - bind_name, VTY_NEWLINE); - return CMD_WARNING; - } - - if (bind->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "Bind %s is not an UDP bind.%s", - bind_name, VTY_NEWLINE); - return CMD_WARNING; - } - - if (osmo_sockaddr_str_from_str(&remote_str, argv[1], port)) { - vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - if (osmo_sockaddr_str_to_sockaddr(&remote_str, &remote.u.sas)) { - vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - nsvc = gprs_ns2_nsvc_by_sockaddr_bind(bind, &remote); - if (!nsvc) { - vty_out(vty, "Can not find NS-VC with remote %s:%u%s", - remote_str.ip, remote_str.port, VTY_NEWLINE); - return CMD_WARNING; - } - - if (!nsvc->persistent) { - vty_out(vty, "NS-VC with remote %s:%u is a dynamic NS-VC. Not configured by vty.%s", - remote_str.ip, remote_str.port, VTY_NEWLINE); - return CMD_WARNING; - } - - if (nsvc->nse != nse) { - vty_out(vty, "NS-VC is not part of this NSE!%s", VTY_NEWLINE); - return CMD_WARNING; - } - - gprs_ns2_free_nsvc(nsvc); - if (llist_empty(&nse->nsvc)) { - nse->ll = GPRS_NS2_LL_UNDEF; - nse->dialect = GPRS_NS2_DIALECT_UNDEF; - } - - return CMD_SUCCESS; -} - -DEFUN(cfg_ns_nse_nsvc_ipa, cfg_ns_nse_nsvc_ipa_cmd, - "nsvc ipa BIND " VTY_IPV46_CMD " <1-65535> nsvci <0-65535>" , - "NS Virtual Connection\n" - "NS over UDP ip.access style (uses RESET/BLOCK)\n" - "A unique bind identifier created by ns bind\n" - "Remote IPv4 Address\n" "Remote IPv6 Address\n" - "Remote UDP Port\n" - NSVCI_STR - NSVCI_STR - ) -{ - struct gprs_ns2_vc_bind *bind; - struct gprs_ns2_vc *nsvc; - struct gprs_ns2_nse *nse = vty->index; - bool dialect_modified = false; - bool ll_modified = false; - - const char *bind_name = argv[0]; - struct osmo_sockaddr_str remote_str; - struct osmo_sockaddr remote; - uint16_t port = atoi(argv[2]); - uint16_t nsvci = atoi(argv[3]); - - if (nse->ll == GPRS_NS2_LL_UNDEF) { - nse->ll = GPRS_NS2_LL_UDP; - ll_modified = true; - } - - if (nse->dialect == GPRS_NS2_DIALECT_UNDEF) { - nse->dialect = GPRS_NS2_DIALECT_IPACCESS; - dialect_modified = true; - } - - if (nse->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "Can not mix NS-VC with different link layer%s", VTY_NEWLINE); - goto err; - } - - if (nse->dialect != GPRS_NS2_DIALECT_IPACCESS) { - vty_out(vty, "Can not mix NS-VC with different dialects%s", VTY_NEWLINE); - goto err; - } - - if (osmo_sockaddr_str_from_str(&remote_str, argv[1], port)) { - vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); - goto err; - } - - if (osmo_sockaddr_str_to_sockaddr(&remote_str, &remote.u.sas)) { - vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); - goto err; - } - - bind = gprs_ns2_bind_by_name(vty_nsi, bind_name); - if (!bind) { - vty_out(vty, "Can not find bind with name %s%s", - bind_name, VTY_NEWLINE); - goto err; - } - - if (bind->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "Bind %s is not an UDP bind.%s", - bind_name, VTY_NEWLINE); - goto err; - } - - nsvc = gprs_ns2_ip_connect(bind, &remote, nse, nsvci); - if (!nsvc) { - vty_out(vty, "Can not create NS-VC.%s", VTY_NEWLINE); - goto err; - } - nsvc->persistent = true; - - return CMD_SUCCESS; - -err: - if (ll_modified) - nse->ll = GPRS_NS2_LL_UNDEF; - if (dialect_modified) - nse->dialect = GPRS_NS2_DIALECT_UNDEF; - return CMD_WARNING; -} - -DEFUN(cfg_no_ns_nse_nsvc_ipa, cfg_no_ns_nse_nsvc_ipa_cmd, - "no nsvc ipa BIND " VTY_IPV46_CMD " <1-65535> nsvci <0-65535>", - NO_STR - "Delete a NS Virtual Connection\n" - "NS over UDP\n" - "A unique bind identifier created by ns bind\n" - "Remote IPv4 Address\n" "Remote IPv6 Address\n" - "Remote UDP Port\n" - NSVCI_STR - NSVCI_STR - ) -{ - struct gprs_ns2_vc_bind *bind; - struct gprs_ns2_vc *nsvc; - struct gprs_ns2_nse *nse = vty->index; - const char *bind_name = argv[0]; - struct osmo_sockaddr_str remote_str; - struct osmo_sockaddr remote; - uint16_t port = atoi(argv[2]); - uint16_t nsvci = atoi(argv[3]); - - if (nse->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "This NSE doesn't support UDP.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - if (nse->dialect != GPRS_NS2_DIALECT_IPACCESS) { - vty_out(vty, "This NSE doesn't support UDP with dialect ipaccess.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - bind = gprs_ns2_bind_by_name(vty_nsi, bind_name); - if (!bind) { - vty_out(vty, "Can not find bind with name %s%s", - bind_name, VTY_NEWLINE); - return CMD_WARNING; - } - - if (bind->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "Bind %s is not an UDP bind.%s", - bind_name, VTY_NEWLINE); - return CMD_WARNING; - } - - if (osmo_sockaddr_str_from_str(&remote_str, argv[1], port)) { - vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - if (osmo_sockaddr_str_to_sockaddr(&remote_str, &remote.u.sas)) { - vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - nsvc = gprs_ns2_nsvc_by_sockaddr_bind(bind, &remote); - if (!nsvc) { - vty_out(vty, "Can not find NS-VC with remote %s:%u%s", - remote_str.ip, remote_str.port, VTY_NEWLINE); - return CMD_WARNING; - } - - if (!nsvc->persistent) { - vty_out(vty, "NS-VC with remote %s:%u is a dynamic NS-VC. Not configured by vty.%s", - remote_str.ip, remote_str.port, VTY_NEWLINE); - return CMD_WARNING; - } - - if (nsvc->nse != nse) { - vty_out(vty, "NS-VC is not part of this NSE!%s", VTY_NEWLINE); - return CMD_WARNING; - } - - if (!nsvc->nsvci_is_valid) { - vty_out(vty, "NS-VC doesn't have a nsvci!%s", VTY_NEWLINE); - return CMD_WARNING; - } - - if (nsvc->nsvci != nsvci) { - vty_out(vty, "NS-VC has a different nsvci (%u)!%s", - nsvc->nsvci, VTY_NEWLINE); - return CMD_WARNING; - } - - gprs_ns2_free_nsvc(nsvc); - if (llist_empty(&nse->nsvc)) { - nse->ll = GPRS_NS2_LL_UNDEF; - nse->dialect = GPRS_NS2_DIALECT_UNDEF; - } - - return CMD_SUCCESS; -} - -DEFUN(cfg_ns_nse_ip_sns, cfg_ns_nse_ip_sns_cmd, - "ip-sns " VTY_IPV46_CMD " <1-65535>", - "SNS Initial Endpoint\n" - "SGSN IPv4 Address\n" "SGSN IPv6 Address\n" - "SGSN UDP Port\n" - ) -{ - struct gprs_ns2_nse *nse = vty->index; - bool dialect_modified = false; - bool ll_modified = false; - int rc; - - /* argv[0] */ - struct osmo_sockaddr_str remote_str; - struct osmo_sockaddr remote; - uint16_t port = atoi(argv[1]); - - if (nse->ll == GPRS_NS2_LL_UNDEF) { - nse->ll = GPRS_NS2_LL_UDP; - ll_modified = true; - } - - if (nse->dialect == GPRS_NS2_DIALECT_UNDEF) { - char sns[16]; - snprintf(sns, sizeof(sns), "NSE%05u-SNS", nse->nsei); - nse->bss_sns_fi = ns2_sns_bss_fsm_alloc(nse, sns); - if (!nse->bss_sns_fi) - goto err; - nse->dialect = GPRS_NS2_DIALECT_SNS; - dialect_modified = true; - } - - if (nse->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "Can not mix NS-VC with different link layer%s", VTY_NEWLINE); - goto err; - } - - if (nse->dialect != GPRS_NS2_DIALECT_SNS) { - vty_out(vty, "Can not mix NS-VC with different dialects%s", VTY_NEWLINE); - goto err; - } - - if (osmo_sockaddr_str_from_str(&remote_str, argv[0], port)) { - vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); - goto err; - } - - if (osmo_sockaddr_str_to_sockaddr(&remote_str, &remote.u.sas)) { - vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); - goto err; - } - - rc = gprs_ns2_sns_add_endpoint(nse, &remote); - switch (rc) { - case 0: - return CMD_SUCCESS; - case -EADDRINUSE: - vty_out(vty, "Specified SNS endpoint already part of the NSE.%s", VTY_NEWLINE); - return CMD_WARNING; - default: - vty_out(vty, "Can not add specified SNS endpoint.%s", VTY_NEWLINE); - return CMD_WARNING; - } - -err: - if (ll_modified) - nse->ll = GPRS_NS2_LL_UNDEF; - if (dialect_modified) - nse->dialect = GPRS_NS2_DIALECT_UNDEF; - return CMD_WARNING; -} - -DEFUN(cfg_no_ns_nse_ip_sns, cfg_no_ns_nse_ip_sns_cmd, - "no ip-sns " VTY_IPV46_CMD " <1-65535>", - NO_STR - "Delete a SNS Initial Endpoint\n" - "SGSN IPv4 Address\n" "SGSN IPv6 Address\n" - "SGSN UDP Port\n" - ) -{ - struct gprs_ns2_nse *nse = vty->index; - struct osmo_sockaddr_str remote_str; /* argv[0] */ - struct osmo_sockaddr remote; - uint16_t port = atoi(argv[1]); - int count; - - if (nse->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "This NSE doesn't support UDP.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - if (nse->dialect != GPRS_NS2_DIALECT_SNS) { - vty_out(vty, "This NSE doesn't support UDP with dialect ip-sns.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - if (osmo_sockaddr_str_from_str(&remote_str, argv[0], port)) { - vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - if (osmo_sockaddr_str_to_sockaddr(&remote_str, &remote.u.sas)) { - vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - if (gprs_ns2_sns_del_endpoint(nse, &remote)) { - vty_out(vty, "Can not remove specified SNS endpoint.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - count = gprs_ns2_sns_count(nse); - if (count > 0) { - /* there are other sns endpoints */ - return CMD_SUCCESS; - } else if (count < 0) { - OSMO_ASSERT(0); - } else { - /* clean up nse to allow other nsvc commands */ - osmo_fsm_inst_term(nse->bss_sns_fi, OSMO_FSM_TERM_REQUEST, NULL); - nse->bss_sns_fi = NULL; - nse->ll = GPRS_NS2_LL_UNDEF; - nse->dialect = GPRS_NS2_DIALECT_UNDEF; - } - - return CMD_SUCCESS; -} - - -/* non-config commands */ -static void dump_nsvc(struct vty *vty, struct gprs_ns2_vc *nsvc, bool stats) -{ - char nsvci_str[32]; - - if (nsvc->nsvci_is_valid) - snprintf(nsvci_str, sizeof(nsvci_str), "%05u", nsvc->nsvci); - else - snprintf(nsvci_str, sizeof(nsvci_str), "none"); - - vty_out(vty, " NSVCI %s: %s %s data_weight=%u sig_weight=%u %s%s", nsvci_str, - osmo_fsm_inst_state_name(nsvc->fi), - nsvc->persistent ? "PERSIST" : "DYNAMIC", - nsvc->data_weight, nsvc->sig_weight, - gprs_ns2_ll_str(nsvc), VTY_NEWLINE); - - if (stats) { - vty_out_rate_ctr_group(vty, " ", nsvc->ctrg); - vty_out_stat_item_group(vty, " ", nsvc->statg); - } -} - -static void dump_nse(struct vty *vty, const struct gprs_ns2_nse *nse, bool stats, bool persistent_only) -{ - struct gprs_ns2_vc *nsvc; - - vty_out(vty, "NSEI %05u: %s, %s%s", nse->nsei, gprs_ns2_lltype_str(nse->ll), - nse->alive ? "ALIVE" : "DEAD", VTY_NEWLINE); - - ns2_sns_dump_vty(vty, " ", nse, stats); - llist_for_each_entry(nsvc, &nse->nsvc, list) { - if (persistent_only) { - if (nsvc->persistent) - dump_nsvc(vty, nsvc, stats); - } else { - dump_nsvc(vty, nsvc, stats); - } - } -} - -static void dump_bind(struct vty *vty, const struct gprs_ns2_vc_bind *bind, bool stats) -{ - if (bind->dump_vty) - bind->dump_vty(bind, vty, stats); -} - -static void dump_ns_bind(struct vty *vty, const struct gprs_ns2_inst *nsi, bool stats) -{ - struct gprs_ns2_vc_bind *bind; - - llist_for_each_entry(bind, &nsi->binding, list) { - dump_bind(vty, bind, stats); - } -} - - -static void dump_ns_entities(struct vty *vty, const struct gprs_ns2_inst *nsi, bool stats, bool persistent_only) -{ - struct gprs_ns2_nse *nse; - - llist_for_each_entry(nse, &nsi->nse, list) { - dump_nse(vty, nse, stats, persistent_only); - } -} - -/* Backwards compatibility, among other things for the TestVTYGbproxy which expects - * 'show ns' to output something about binds */ -DEFUN_HIDDEN(show_ns, show_ns_cmd, "show ns", - SHOW_STR SHOW_NS_STR) -{ - dump_ns_entities(vty, vty_nsi, false, false); - dump_ns_bind(vty, vty_nsi, false); - return CMD_SUCCESS; -} - - -DEFUN(show_ns_binds, show_ns_binds_cmd, "show ns binds [stats]", - SHOW_STR SHOW_NS_STR - "Display information about the NS protocol binds\n" - "Include statistic\n") -{ - bool stats = false; - if (argc > 0) - stats = true; - - dump_ns_bind(vty, vty_nsi, stats); - return CMD_SUCCESS; -} - -DEFUN(show_ns_entities, show_ns_entities_cmd, "show ns entities [stats]", - SHOW_STR SHOW_NS_STR - "Display information about the NS protocol entities (NSEs)\n" - "Include statistics\n") -{ - bool stats = false; - if (argc > 0) - stats = true; - - dump_ns_entities(vty, vty_nsi, stats, false); - return CMD_SUCCESS; -} - -DEFUN(show_ns_pers, show_ns_pers_cmd, "show ns persistent", - SHOW_STR SHOW_NS_STR - "Show only persistent NS\n") -{ - dump_ns_entities(vty, vty_nsi, true, true); - return CMD_SUCCESS; -} - -DEFUN(show_nse, show_nse_cmd, "show ns (nsei|nsvc) <0-65535> [stats]", - SHOW_STR SHOW_NS_STR - "Select one NSE by its NSE Identifier\n" - "Select one NSE by its NS-VC Identifier\n" - "The Identifier of selected type\n" - "Include Statistics\n") -{ - struct gprs_ns2_inst *nsi = vty_nsi; - struct gprs_ns2_nse *nse; - struct gprs_ns2_vc *nsvc; - uint16_t id = atoi(argv[1]); - bool show_stats = false; - - if (argc >= 3) - show_stats = true; - - if (!strcmp(argv[0], "nsei")) { - nse = gprs_ns2_nse_by_nsei(nsi, id); - if (!nse) { - return CMD_WARNING; - } - - dump_nse(vty, nse, show_stats, false); - } else { - nsvc = gprs_ns2_nsvc_by_nsvci(nsi, id); - - if (!nsvc) { - vty_out(vty, "No such NS Entity%s", VTY_NEWLINE); - return CMD_WARNING; - } - - dump_nsvc(vty, nsvc, show_stats); - } - - return CMD_SUCCESS; -} - -static int nsvc_force_unconf_cb(struct gprs_ns2_vc *nsvc, void *ctx) -{ - ns2_vc_force_unconfigured(nsvc); - return 0; -} - -DEFUN_HIDDEN(nsvc_force_unconf, nsvc_force_unconf_cmd, - "nsvc nsei <0-65535> force-unconfigured", - "NS Virtual Connection\n" - "The NSEI\n" - "Reset the NSVCs back to initial state\n" - ) -{ - struct gprs_ns2_inst *nsi = vty_nsi; - struct gprs_ns2_nse *nse; - - uint16_t id = atoi(argv[0]); - - nse = gprs_ns2_nse_by_nsei(nsi, id); - if (!nse) { - vty_out(vty, "Could not find NSE for NSEI %u%s", id, VTY_NEWLINE); - return CMD_WARNING; - } - - if (!nse->persistent) { - gprs_ns2_free_nse(nse); - } else if (nse->dialect == GPRS_NS2_DIALECT_SNS) { - gprs_ns2_free_nsvcs(nse); - } else { - /* Perform the operation for all nsvc */ - gprs_ns2_nse_foreach_nsvc(nse, nsvc_force_unconf_cb, NULL); - } - - return CMD_SUCCESS; -} - -DEFUN(nsvc_block, nsvc_block_cmd, - "nsvc <0-65535> (block|unblock)", - "NS Virtual Connection\n" - NSVCI_STR - "Block a NSVC. As cause code O&M intervention will be used.\n" - "Unblock a NSVC. As cause code O&M intervention will be used.\n") -{ - struct gprs_ns2_inst *nsi = vty_nsi; - struct gprs_ns2_vc *nsvc; - - uint16_t id = atoi(argv[0]); - - nsvc = gprs_ns2_nsvc_by_nsvci(nsi, id); - if (!nsvc) { - vty_out(vty, "Could not find NSVCI %05u%s", id, VTY_NEWLINE); - return CMD_WARNING; - } - - if (!strcmp(argv[1], "block")) { - ns2_vc_block(nsvc); - } else { - ns2_vc_unblock(nsvc); - } - - return CMD_SUCCESS; -} - -static void log_set_nse_filter(struct log_target *target, - struct gprs_ns2_nse *nse) -{ - if (nse) { - target->filter_map |= (1 << LOG_FLT_GB_NSE); - target->filter_data[LOG_FLT_GB_NSE] = nse; - } else if (target->filter_data[LOG_FLT_GB_NSE]) { - target->filter_map = ~(1 << LOG_FLT_GB_NSE); - target->filter_data[LOG_FLT_GB_NSE] = NULL; - } -} - -static void log_set_nsvc_filter(struct log_target *target, - struct gprs_ns2_vc *nsvc) -{ - if (nsvc) { - target->filter_map |= (1 << LOG_FLT_GB_NSVC); - target->filter_data[LOG_FLT_GB_NSVC] = nsvc; - } else if (target->filter_data[LOG_FLT_GB_NSVC]) { - target->filter_map = ~(1 << LOG_FLT_GB_NSVC); - target->filter_data[LOG_FLT_GB_NSVC] = NULL; - } -} - -DEFUN(logging_fltr_nse, - logging_fltr_nse_cmd, - "logging filter nse nsei <0-65535>", - LOGGING_STR FILTER_STR - "Filter based on NS Entity\n" - "Identify NSE by NSEI\n" - "Numeric identifier\n") -{ - struct log_target *tgt; - struct gprs_ns2_nse *nse; - uint16_t id = atoi(argv[0]); - - log_tgt_mutex_lock(); - tgt = osmo_log_vty2tgt(vty); - if (!tgt) { - log_tgt_mutex_unlock(); - return CMD_WARNING; - } - - nse = gprs_ns2_nse_by_nsei(vty_nsi, id); - if (!nse) { - vty_out(vty, "No NSE by that identifier%s", VTY_NEWLINE); - log_tgt_mutex_unlock(); - return CMD_WARNING; - } - - log_set_nse_filter(tgt, nse); - log_tgt_mutex_unlock(); - return CMD_SUCCESS; -} - -/* TODO: add filter for single connection by description */ -DEFUN(logging_fltr_nsvc, - logging_fltr_nsvc_cmd, - "logging filter nsvc nsvci <0-65535>", - LOGGING_STR FILTER_STR - "Filter based on NS Virtual Connection\n" - "Identify NS-VC by NSVCI\n" - "Numeric identifier\n") -{ - struct log_target *tgt; - struct gprs_ns2_vc *nsvc; - uint16_t id = atoi(argv[0]); - - log_tgt_mutex_lock(); - tgt = osmo_log_vty2tgt(vty); - if (!tgt) { - log_tgt_mutex_unlock(); - return CMD_WARNING; - } - - nsvc = gprs_ns2_nsvc_by_nsvci(vty_nsi, id); - if (!nsvc) { - vty_out(vty, "No NS-VC by that identifier%s", VTY_NEWLINE); - log_tgt_mutex_unlock(); - return CMD_WARNING; - } - - log_set_nsvc_filter(tgt, nsvc); - log_tgt_mutex_unlock(); - return CMD_SUCCESS; -} - -int gprs_ns2_vty2_init(struct gprs_ns2_inst *nsi) -{ - vty_nsi = nsi; - INIT_LLIST_HEAD(&binds); - - vty_fr_network = osmo_fr_network_alloc(nsi); - if (!vty_fr_network) - return -ENOMEM; - - install_lib_element_ve(&show_ns_cmd); - install_lib_element_ve(&show_ns_binds_cmd); - install_lib_element_ve(&show_ns_entities_cmd); - install_lib_element_ve(&show_ns_pers_cmd); - install_lib_element_ve(&show_nse_cmd); - install_lib_element_ve(&logging_fltr_nse_cmd); - install_lib_element_ve(&logging_fltr_nsvc_cmd); - - install_lib_element(ENABLE_NODE, &nsvc_force_unconf_cmd); - install_lib_element(ENABLE_NODE, &nsvc_block_cmd); - - install_lib_element(CFG_LOG_NODE, &logging_fltr_nse_cmd); - install_lib_element(CFG_LOG_NODE, &logging_fltr_nsvc_cmd); - - install_lib_element(CONFIG_NODE, &cfg_ns_cmd); - - install_node(&ns_node, config_write_ns); - /* TODO: convert into osmo timer */ - install_lib_element(L_NS_NODE, &cfg_ns_timer_cmd); - install_lib_element(L_NS_NODE, &cfg_ns_nsei_cmd); - install_lib_element(L_NS_NODE, &cfg_no_ns_nsei_cmd); - install_lib_element(L_NS_NODE, &cfg_ns_bind_cmd); - install_lib_element(L_NS_NODE, &cfg_no_ns_bind_cmd); - - install_node(&ns_bind_node, config_write_ns_bind); - install_lib_element(L_NS_BIND_NODE, &cfg_ns_bind_listen_cmd); - install_lib_element(L_NS_BIND_NODE, &cfg_no_ns_bind_listen_cmd); - install_lib_element(L_NS_BIND_NODE, &cfg_ns_bind_dscp_cmd); - install_lib_element(L_NS_BIND_NODE, &cfg_no_ns_bind_dscp_cmd); - install_lib_element(L_NS_BIND_NODE, &cfg_ns_bind_ipaccess_cmd); - install_lib_element(L_NS_BIND_NODE, &cfg_no_ns_bind_ipaccess_cmd); - install_lib_element(L_NS_BIND_NODE, &cfg_ns_bind_fr_cmd); - install_lib_element(L_NS_BIND_NODE, &cfg_no_ns_bind_fr_cmd); - /* TODO: accept-ip-sns when SGSN SNS has been implemented */ - - install_node(&ns_nse_node, config_write_ns_nse); - install_lib_element(L_NS_NSE_NODE, &cfg_ns_nse_nsvc_fr_cmd); - install_lib_element(L_NS_NSE_NODE, &cfg_no_ns_nse_nsvci_cmd); - install_lib_element(L_NS_NSE_NODE, &cfg_no_ns_nse_nsvc_fr_dlci_cmd); - install_lib_element(L_NS_NSE_NODE, &cfg_ns_nse_nsvc_udp_cmd); - install_lib_element(L_NS_NSE_NODE, &cfg_no_ns_nse_nsvc_udp_cmd); - install_lib_element(L_NS_NSE_NODE, &cfg_ns_nse_nsvc_ipa_cmd); - install_lib_element(L_NS_NSE_NODE, &cfg_no_ns_nse_nsvc_ipa_cmd); - install_lib_element(L_NS_NSE_NODE, &cfg_ns_nse_ip_sns_cmd); - install_lib_element(L_NS_NSE_NODE, &cfg_no_ns_nse_ip_sns_cmd); - - return 0; -} diff --git a/src/gb/libosmogb.map b/src/gb/libosmogb.map index c6bbc78..fa05b97 100644 --- a/src/gb/libosmogb.map +++ b/src/gb/libosmogb.map @@ -185,9 +185,7 @@ gprs_ns2_start_alive_all_nsvcs; gprs_ns2_sns_add_endpoint; gprs_ns2_sns_del_endpoint; -gprs_ns2_vty_create; gprs_ns2_vty_init; -gprs_ns2_vty2_init; gprs_nsvc_create2; gprs_nsvc_delete; diff --git a/utils/osmo-ns-dummy.c b/utils/osmo-ns-dummy.c index 58e8152..33949d3 100644 --- a/utils/osmo-ns-dummy.c +++ b/utils/osmo-ns-dummy.c @@ -230,7 +230,7 @@ } gprs_ns2_dynamic_create_nse(nsi, true); - gprs_ns2_vty2_init(nsi); + gprs_ns2_vty_init(nsi); rc = vty_read_config_file(config_file, NULL); if (rc < 0 && config_given) { fprintf(stderr, "Failed to parse the config file: '%s'\n", -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22430 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I8c3f2afecc74b78f7f914f7dce166cbcb63444eb Gerrit-Change-Number: 22430 Gerrit-PatchSet: 7 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 12:03:40 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 28 Jan 2021 12:03:40 +0000 Subject: Change in osmo-ttcn3-hacks[master]: PCU_Tests: add testcase TC_rim_ran_info_req_single_rep and _no_si In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369 ) Change subject: PCU_Tests: add testcase TC_rim_ran_info_req_single_rep and _no_si ...................................................................... Patch Set 3: (2 comments) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369/3/pcu/PCU_Tests.ttcn File pcu/PCU_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369/3/pcu/PCU_Tests.ttcn at 3603 PS3, Line 3603: var octetstring si1_expect := '198fb100000000000000000000000000007900002b'O; fyi, I'm adding these as global "const si*_default" in some of my gerrit patches for PCU_Tests (still not merged). https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369/3/pcu/PCU_Tests.ttcn at 3785 PS3, Line 3785: fix whitespace -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I9054ab0e969c0fbfdc671c92d44cc61360959adc Gerrit-Change-Number: 22369 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Thu, 28 Jan 2021 12:03:40 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 12:05:42 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 28 Jan 2021 12:05:42 +0000 Subject: Change in osmo-bts[master]: chan activ: activate DL SACCH only when TA is known In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/22509 ) Change subject: chan activ: activate DL SACCH only when TA is known ...................................................................... Patch Set 1: build error please fix. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22509 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I170b63c9856230d5f1a10654a9d950ada8e730d7 Gerrit-Change-Number: 22509 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 28 Jan 2021 12:05:42 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 12:07:15 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 28 Jan 2021 12:07:15 +0000 Subject: Change in osmo-bsc[master]: lchan assignment when RTP is set up: don't break on Mode Modify In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22510 ) Change subject: lchan assignment when RTP is set up: don't break on Mode Modify ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/22510/1/src/osmo-bsc/assignment_fsm.c File src/osmo-bsc/assignment_fsm.c: https://gerrit.osmocom.org/c/osmo-bsc/+/22510/1/src/osmo-bsc/assignment_fsm.c at 442 PS1, Line 442: && !conn->lchan->fi_rtp) { this can go in the same line. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22510 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I06d3f35fcc71d77e1f30c2b15ab221ef7d5f7f27 Gerrit-Change-Number: 22510 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 28 Jan 2021 12:07:15 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 12:15:58 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 28 Jan 2021 12:15:58 +0000 Subject: Change in osmo-bsc[master]: rename lchan->rqd_ta to last_ta In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22511 ) Change subject: rename lchan->rqd_ta to last_ta ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22511 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I1049526a173819baeb4978db5bf018ba3f1006a0 Gerrit-Change-Number: 22511 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 28 Jan 2021 12:15:58 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 12:22:53 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 28 Jan 2021 12:22:53 +0000 Subject: Change in libosmocore[master]: gprs_ns2: remove api call gprs_ns2_dynamic_create_nse In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22498 ) Change subject: gprs_ns2: remove api call gprs_ns2_dynamic_create_nse ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22498 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie924ead6da17657f3da334068c8ada82c8845495 Gerrit-Change-Number: 22498 Gerrit-PatchSet: 4 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 28 Jan 2021 12:22:53 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 12:23:26 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 28 Jan 2021 12:23:26 +0000 Subject: Change in libosmocore[master]: gprs_ns2: introduce gprs_ns2_vty_init_reduced() for the PCU In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22508 ) Change subject: gprs_ns2: introduce gprs_ns2_vty_init_reduced() for the PCU ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22508 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4437da74bd48ba64d3f16ea67afc26c45b6d3ac9 Gerrit-Change-Number: 22508 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 28 Jan 2021 12:23:26 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 12:38:31 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 28 Jan 2021 12:38:31 +0000 Subject: Change in libosmocore[master]: Revert "gprs_ns2: drop gprs_ns2_vty, rename vty2 -> vty" References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22513 ) Change subject: Revert "gprs_ns2: drop gprs_ns2_vty, rename vty2 -> vty" ...................................................................... Revert "gprs_ns2: drop gprs_ns2_vty, rename vty2 -> vty" This reverts commit b306094448564e27bc031b519396f1b0e294b231. It was merged too quickly and patches for projects using related features are not yet prepared. Change-Id: I8a2aaf74a47de8f4f0adb37d16426d199788e3fe --- M include/osmocom/gprs/gprs_ns2.h M src/gb/Makefile.am M src/gb/gprs_ns2_vty.c A src/gb/gprs_ns2_vty2.c M src/gb/libosmogb.map M utils/osmo-ns-dummy.c 6 files changed, 2,317 insertions(+), 1,309 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/13/22513/1 diff --git a/include/osmocom/gprs/gprs_ns2.h b/include/osmocom/gprs/gprs_ns2.h index 24f45c9..df682db 100644 --- a/include/osmocom/gprs/gprs_ns2.h +++ b/include/osmocom/gprs/gprs_ns2.h @@ -261,6 +261,11 @@ const char *gprs_ns2_nsvc_state_name(struct gprs_ns2_vc *nsvc); /* vty */ -int gprs_ns2_vty_init(struct gprs_ns2_inst *nsi); +int gprs_ns2_vty_init(struct gprs_ns2_inst *nsi, + const struct osmo_sockaddr_str *default_bind); +int gprs_ns2_vty_create(); + +/* vty 2 */ +int gprs_ns2_vty2_init(struct gprs_ns2_inst *nsi); /*! @} */ diff --git a/src/gb/Makefile.am b/src/gb/Makefile.am index d0db814..031971b 100644 --- a/src/gb/Makefile.am +++ b/src/gb/Makefile.am @@ -25,7 +25,7 @@ gprs_bssgp.c gprs_bssgp_util.c gprs_bssgp_vty.c gprs_bssgp_rim.c \ gprs_bssgp_bss.c \ gprs_ns2.c gprs_ns2_udp.c gprs_ns2_frgre.c gprs_ns2_fr.c gprs_ns2_vc_fsm.c gprs_ns2_sns.c \ - gprs_ns2_message.c gprs_ns2_vty.c \ + gprs_ns2_message.c gprs_ns2_vty.c gprs_ns2_vty2.c \ gprs_bssgp2.c bssgp_bvc_fsm.c \ common_vty.c frame_relay.c diff --git a/src/gb/gprs_ns2_vty.c b/src/gb/gprs_ns2_vty.c index b6ae5b4..f803655 100644 --- a/src/gb/gprs_ns2_vty.c +++ b/src/gb/gprs_ns2_vty.c @@ -1,7 +1,9 @@ /*! \file gprs_ns2_vty.c * VTY interface for our GPRS Networks Service (NS) implementation. */ -/* (C) 2020 by sysmocom - s.f.m.c. GmbH +/* (C) 2009-2014 by Harald Welte + * (C) 2016-2017 by sysmocom - s.f.m.c. GmbH + * (C) 2020 by sysmocom - s.f.m.c. GmbH * Author: Alexander Couzens * * All Rights Reserved @@ -31,44 +33,67 @@ #include #include +#include #include #include -#include -#include -#include -#include #include +#include +#include +#include #include +#include #include #include #include #include +#include #include #include -#include #include -#include +#include #include "gprs_ns2_internal.h" #define SHOW_NS_STR "Display information about the NS protocol\n" -#define NSVCI_STR "NS Virtual Connection ID (NS-VCI)\n" -#define DLCI_STR "Data Link connection identifier\n" -static struct gprs_ns2_inst *vty_nsi = NULL; -static struct osmo_fr_network *vty_fr_network = NULL; -static struct llist_head binds; - -struct vty_bind { - struct llist_head list; - const char *name; - enum gprs_ns2_ll ll; +struct ns2_vty_priv { + /* global listen */ + struct osmo_sockaddr_str udp; + struct osmo_sockaddr_str frgreaddr; int dscp; - bool accept_ipaccess; - bool accept_sns; + enum gprs_ns2_vc_mode vc_mode; + bool frgre; + + struct llist_head vtyvc; }; -/* TODO: this should into osmo timer */ +struct ns2_vty_vc { + struct llist_head list; + + struct osmo_sockaddr_str remote; + enum gprs_ns2_ll ll; + + /* old vty code doesnt support multiple NSVCI per NSEI */ + uint16_t nsei; + uint16_t nsvci; + uint16_t frdlci; + + struct { + enum osmo_fr_role role; + } fr; + + char netif[IF_NAMESIZE]; + + bool remote_end_is_sgsn; + bool configured; +}; + +static struct gprs_ns2_inst *vty_nsi = NULL; +static struct ns2_vty_priv priv; +static struct osmo_fr_network *vty_fr_network = NULL; + +/* FIXME: this should go to some common file as it is copied + * in vty_interface.c of the BSC */ static const struct value_string gprs_ns_timer_strs[] = { { 0, "tns-block" }, { 1, "tns-block-retries" }, @@ -83,51 +108,28 @@ { 0, NULL } }; -const struct value_string vty_fr_role_names[] = { - { FR_ROLE_USER_EQUIPMENT, "fr" }, - { FR_ROLE_NETWORK_EQUIPMENT, "frnet" }, - { 0, NULL } -}; - -const struct value_string vty_ll_names[] = { - { GPRS_NS2_LL_FR, "fr" }, - { GPRS_NS2_LL_FR_GRE, "frgre" }, - { GPRS_NS2_LL_UDP, "udp" }, - { 0, NULL } -}; - -static struct vty_bind *vty_bind_by_name(const char *name) +static void log_set_nse_filter(struct log_target *target, + struct gprs_ns2_nse *nse) { - struct vty_bind *vbind; - llist_for_each_entry(vbind, &binds, list) { - if (!strncmp(vbind->name, name, strlen(vbind->name))) - return vbind; + if (nse) { + target->filter_map |= (1 << LOG_FLT_GB_NSE); + target->filter_data[LOG_FLT_GB_NSE] = nse; + } else if (target->filter_data[LOG_FLT_GB_NSE]) { + target->filter_map = ~(1 << LOG_FLT_GB_NSE); + target->filter_data[LOG_FLT_GB_NSE] = NULL; } - return NULL; } -static struct vty_bind *vty_bind_alloc(const char *name) +static void log_set_nsvc_filter(struct log_target *target, + struct gprs_ns2_vc *nsvc) { - struct vty_bind *vbind = talloc_zero(vty_nsi, struct vty_bind); - if (!vbind) - return NULL; - - vbind->name = talloc_strdup(vty_nsi, name); - if (!vbind->name) { - talloc_free(vbind); - return NULL; + if (nsvc) { + target->filter_map |= (1 << LOG_FLT_GB_NSVC); + target->filter_data[LOG_FLT_GB_NSVC] = nsvc; + } else if (target->filter_data[LOG_FLT_GB_NSVC]) { + target->filter_map = ~(1 << LOG_FLT_GB_NSVC); + target->filter_data[LOG_FLT_GB_NSVC] = NULL; } - - llist_add(&vbind->list, &binds); - return vbind; -} - -static void vty_bind_free(struct vty_bind *vbind) -{ - if (!vbind) - return; - - llist_del(&vbind->list); } static struct cmd_node ns_node = { @@ -136,6 +138,130 @@ 1, }; +static struct ns2_vty_vc *vtyvc_alloc(uint16_t nsei) { + struct ns2_vty_vc *vtyvc = talloc_zero(vty_nsi, struct ns2_vty_vc); + if (!vtyvc) + return vtyvc; + + vtyvc->nsei = nsei; + + llist_add(&vtyvc->list, &priv.vtyvc); + + return vtyvc; +} + +static void ns2_vc_free(struct ns2_vty_vc *vtyvc) { + if (!vtyvc) + return; + + llist_del(&vtyvc->list); + talloc_free(vtyvc); +} + +static struct ns2_vty_vc *vtyvc_by_nsei(uint16_t nsei, bool alloc_missing) { + struct ns2_vty_vc *vtyvc; + + llist_for_each_entry(vtyvc, &priv.vtyvc, list) { + if (vtyvc->nsei == nsei) + return vtyvc; + } + + if (!alloc_missing) + return NULL; + + vtyvc = vtyvc_alloc(nsei); + if (!vtyvc) + return vtyvc; + + vtyvc->nsei = nsei; + return vtyvc; +} + +static int config_write_ns(struct vty *vty) +{ + struct ns2_vty_vc *vtyvc; + unsigned int i; + struct osmo_sockaddr_str sockstr; + + vty_out(vty, "ns%s", VTY_NEWLINE); + + /* global configuration must be written first, as some of it may be + * relevant when creating the NSE/NSVC later below */ + + vty_out(vty, " encapsulation framerelay-gre enabled %u%s", + priv.frgre ? 1 : 0, VTY_NEWLINE); + + if (priv.frgre) { + if (strlen(priv.frgreaddr.ip)) { + vty_out(vty, " encapsulation framerelay-gre local-ip %s%s", + sockstr.ip, VTY_NEWLINE); + } + } else { + if (strlen(priv.udp.ip)) { + vty_out(vty, " encapsulation udp local-ip %s%s", + priv.udp.ip, VTY_NEWLINE); + } + + if (priv.udp.port) + vty_out(vty, " encapsulation udp local-port %u%s", + priv.udp.port, VTY_NEWLINE); + } + + if (priv.dscp) + vty_out(vty, " encapsulation udp dscp %d%s", + priv.dscp, VTY_NEWLINE); + + vty_out(vty, " encapsulation udp use-reset-block-unblock %s%s", + priv.vc_mode == GPRS_NS2_VC_MODE_BLOCKRESET ? "enabled" : "disabled", VTY_NEWLINE); + + llist_for_each_entry(vtyvc, &priv.vtyvc, list) { + vty_out(vty, " nse %u nsvci %u%s", + vtyvc->nsei, vtyvc->nsvci, VTY_NEWLINE); + + vty_out(vty, " nse %u remote-role %s%s", + vtyvc->nsei, vtyvc->remote_end_is_sgsn ? "sgsn" : "bss", + VTY_NEWLINE); + + switch (vtyvc->ll) { + case GPRS_NS2_LL_UDP: + vty_out(vty, " nse %u encapsulation udp%s", vtyvc->nsei, VTY_NEWLINE); + vty_out(vty, " nse %u remote-ip %s%s", + vtyvc->nsei, + vtyvc->remote.ip, + VTY_NEWLINE); + vty_out(vty, " nse %u remote-port %u%s", + vtyvc->nsei, vtyvc->remote.port, + VTY_NEWLINE); + break; + case GPRS_NS2_LL_FR_GRE: + vty_out(vty, " nse %u encapsulation framerelay-gre%s", + vtyvc->nsei, VTY_NEWLINE); + vty_out(vty, " nse %u remote-ip %s%s", + vtyvc->nsei, + vtyvc->remote.ip, + VTY_NEWLINE); + vty_out(vty, " nse %u fr-dlci %u%s", + vtyvc->nsei, vtyvc->frdlci, + VTY_NEWLINE); + break; + case GPRS_NS2_LL_FR: + vty_out(vty, " nse %u fr %s dlci %u%s", + vtyvc->nsei, vtyvc->netif, vtyvc->frdlci, + VTY_NEWLINE); + break; + default: + break; + } + } + + for (i = 0; i < ARRAY_SIZE(vty_nsi->timeout); i++) + vty_out(vty, " timer %s %u%s", + get_value_string(gprs_ns_timer_strs, i), + vty_nsi->timeout[i], VTY_NEWLINE); + + return CMD_SUCCESS; +} + DEFUN(cfg_ns, cfg_ns_cmd, "ns", "Configure the GPRS Network Service") @@ -144,1183 +270,6 @@ return CMD_SUCCESS; } -DEFUN(cfg_ns_timer, cfg_ns_timer_cmd, - "timer " NS_TIMERS " <0-65535>", - "Network Service Timer\n" - NS_TIMERS_HELP "Timer Value\n") -{ - int idx = get_string_value(gprs_ns_timer_strs, argv[0]); - int val = atoi(argv[1]); - - if (idx < 0 || idx >= ARRAY_SIZE(vty_nsi->timeout)) - return CMD_WARNING; - - vty_nsi->timeout[idx] = val; - - return CMD_SUCCESS; -} - -DEFUN(cfg_ns_nsei, cfg_ns_nsei_cmd, - "nse <0-65535>", - "Persistent NS Entity\n" - "NS Entity ID (NSEI)\n" - ) -{ - struct gprs_ns2_nse *nse; - uint16_t nsei = atoi(argv[0]); - - nse = gprs_ns2_nse_by_nsei(vty_nsi, nsei); - if (!nse) { - nse = gprs_ns2_create_nse(vty_nsi, nsei, GPRS_NS2_LL_UNDEF, GPRS_NS2_DIALECT_UNDEF); - if (!nse) { - vty_out(vty, "Failed to create NSE!%s", VTY_NEWLINE); - return CMD_ERR_INCOMPLETE; - } - nse->persistent = true; - } - - if (!nse->persistent) { - /* TODO: should the dynamic NSE removed? */ - vty_out(vty, "A dynamic NSE with the specified NSEI already exists%s", VTY_NEWLINE); - return CMD_ERR_INCOMPLETE; - } - - vty->node = L_NS_NSE_NODE; - vty->index = nse; - - return CMD_SUCCESS; -} - -DEFUN(cfg_no_ns_nsei, cfg_no_ns_nsei_cmd, - "no nse <0-65535>", - NO_STR - "Delete a Persistent NS Entity\n" - "NS Entity ID (NSEI)\n" - ) -{ - struct gprs_ns2_nse *nse; - uint16_t nsei = atoi(argv[0]); - - nse = gprs_ns2_nse_by_nsei(vty_nsi, nsei); - if (!nse) { - vty_out(vty, "Can not find NS Entity %s%s", argv[0], VTY_NEWLINE); - return CMD_ERR_NOTHING_TODO; - } - - if (!nse->persistent) { - vty_out(vty, "Ignoring non-persistent NS Entity%s", VTY_NEWLINE); - return CMD_WARNING; - } - - vty_out(vty, "Deleting NS Entity %u%s", nse->nsei, VTY_NEWLINE); - gprs_ns2_free_nse(nse); - return CMD_SUCCESS; -} - -/* TODO: add fr/gre */ -DEFUN(cfg_ns_bind, cfg_ns_bind_cmd, - "bind (fr|udp) ID", - "Binding\n" - "Frame Relay\n" "UDP/IP\n" - "a unique identifier for this bind to reference NS-VCs\n" - ) -{ - const char *nstype = argv[0]; - const char *name = argv[1]; - struct vty_bind *vbind; - enum gprs_ns2_ll ll; - int rc; - - rc = get_string_value(vty_ll_names, nstype); - if (rc < 0) - return CMD_WARNING; - ll = (enum gprs_ns2_ll) rc; - - if (!osmo_identifier_valid(name)) { - vty_out(vty, "Invalid ID. The ID should be only alphanumeric.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - vbind = vty_bind_by_name(name); - if (vbind) { - if (vbind->ll != ll) { - vty_out(vty, "A bind with the specified ID already exists with a different type (fr|frgre|udp)!%s", - VTY_NEWLINE); - return CMD_WARNING; - } - } else { - vbind = vty_bind_alloc(name); - if (!vbind) { - vty_out(vty, "Can not create bind - out of memory%s", VTY_NEWLINE); - return CMD_WARNING; - } - vbind->ll = ll; - } - - vty->index = vbind; - vty->node = L_NS_BIND_NODE; - - return CMD_SUCCESS; -} - -DEFUN(cfg_no_ns_bind, cfg_no_ns_bind_cmd, - "no bind ID", - NO_STR - "Delete a binding\n" - "a unique identifier for this bind to reference NS-VCs\n" - ) -{ - struct vty_bind *vbind; - struct gprs_ns2_vc_bind *bind; - const char *name = argv[0]; - - vbind = vty_bind_by_name(name); - if (!vbind) { - vty_out(vty, "bind %s does not exist!%s", name, VTY_NEWLINE); - return CMD_WARNING; - } - vty_bind_free(vbind); - bind = gprs_ns2_bind_by_name(vty_nsi, name); - if (bind) - bind->driver->free_bind(bind); - return CMD_SUCCESS; -} - - -static void config_write_vbind(struct vty *vty, struct vty_bind *vbind) -{ - struct gprs_ns2_vc_bind *bind; - const struct osmo_sockaddr *addr; - struct osmo_sockaddr_str addr_str; - const char *netif, *frrole_str, *llstr; - enum osmo_fr_role frrole; - - llstr = get_value_string_or_null(vty_ll_names, vbind->ll); - if (!llstr) - return; - vty_out(vty, " bind %s %s%s", llstr, vbind->name, VTY_NEWLINE); - - bind = gprs_ns2_bind_by_name(vty_nsi, vbind->name); - switch (vbind->ll) { - case GPRS_NS2_LL_FR: - if (bind) { - netif = gprs_ns2_fr_bind_netif(bind); - if (!netif) - return; - frrole = gprs_ns2_fr_bind_role(bind); - if ((int) frrole == -1) - return; - frrole_str = get_value_string_or_null(vty_fr_role_names, frrole); - if (netif && frrole_str) - vty_out(vty, " fr %s %s%s", netif, frrole_str, VTY_NEWLINE); - } - break; - case GPRS_NS2_LL_UDP: - if (bind) { - addr = gprs_ns2_ip_bind_sockaddr(bind); - if (!osmo_sockaddr_str_from_sockaddr(&addr_str, &addr->u.sas)) { - vty_out(vty, " listen %s %u%s", addr_str.ip, addr_str.port, - VTY_NEWLINE); - } - } - if (vbind->accept_ipaccess) - vty_out(vty, " accept-ipaccess%s", VTY_NEWLINE); - if (vbind->dscp) - vty_out(vty, " dscp %u%s", vbind->dscp, VTY_NEWLINE); - break; - default: - return; - } -} - -static void config_write_nsvc(struct vty *vty, const struct gprs_ns2_vc *nsvc) -{ - const char *netif; - uint16_t dlci; - const struct osmo_sockaddr *addr; - struct osmo_sockaddr_str addr_str; - - switch (nsvc->nse->ll) { - case GPRS_NS2_LL_UNDEF: - break; - case GPRS_NS2_LL_UDP: - switch (nsvc->nse->dialect) { - case GPRS_NS2_DIALECT_IPACCESS: - addr = gprs_ns2_ip_vc_remote(nsvc); - if (!addr) - break; - if (osmo_sockaddr_str_from_sockaddr(&addr_str, &addr->u.sas)) - break; - vty_out(vty, " nsvc ipa %s %s %u nsvci %u%s", - nsvc->bind->name, addr_str.ip, addr_str.port, - nsvc->nsvci, VTY_NEWLINE); - break; - case GPRS_NS2_DIALECT_STATIC_ALIVE: - addr = gprs_ns2_ip_vc_remote(nsvc); - if (!addr) - break; - if (osmo_sockaddr_str_from_sockaddr(&addr_str, &addr->u.sas)) - break; - vty_out(vty, " nsvc udp %s %s %u%s", - nsvc->bind->name, addr_str.ip, addr_str.port, VTY_NEWLINE); - break; - default: - break; - } - break; - case GPRS_NS2_LL_FR: - netif = gprs_ns2_fr_bind_netif(nsvc->bind); - if (!netif) - break; - dlci = gprs_ns2_fr_nsvc_dlci(nsvc); - if (!dlci) - break; - OSMO_ASSERT(nsvc->nsvci_is_valid); - vty_out(vty, " nsvc fr %s dlci %u nsvci %u%s", - netif, dlci, nsvc->nsvci, VTY_NEWLINE); - break; - case GPRS_NS2_LL_FR_GRE: - break; - } -} - -static void _config_write_ns_nse(struct vty *vty, struct gprs_ns2_nse *nse) -{ - struct gprs_ns2_vc *nsvc; - - vty_out(vty, " nse %u%s", nse->nsei, VTY_NEWLINE); - switch (nse->dialect) { - case GPRS_NS2_DIALECT_SNS: - ns2_sns_write_vty(vty, nse); - break; - default: - llist_for_each_entry(nsvc, &nse->nsvc, list) { - config_write_nsvc(vty, nsvc); - } - break; - } -} - -static int config_write_ns(struct vty *vty) -{ - unsigned int i; - - vty_out(vty, "ns%s", VTY_NEWLINE); - - for (i = 0; i < ARRAY_SIZE(vty_nsi->timeout); i++) - vty_out(vty, " timer %s %u%s", - get_value_string(gprs_ns_timer_strs, i), - vty_nsi->timeout[i], VTY_NEWLINE); - - return 0; -} - -static int config_write_ns_nse(struct vty *vty) -{ - struct gprs_ns2_nse *nse; - - llist_for_each_entry(nse, &vty_nsi->nse, list) { - if (!nse->persistent) - continue; - - _config_write_ns_nse(vty, nse); - } - - return 0; -} - -static int config_write_ns_bind(struct vty *vty) -{ - struct vty_bind *vbind; - - llist_for_each_entry(vbind, &binds, list) { - config_write_vbind(vty, vbind); - } - - return 0; -} - -static struct cmd_node ns_bind_node = { - L_NS_BIND_NODE, - "%s(config-ns-bind)# ", - 1, -}; - -DEFUN(cfg_ns_bind_listen, cfg_ns_bind_listen_cmd, - "listen " VTY_IPV46_CMD " <1-65535>", - "Binding\n" - "IPv4 Address\n" "IPv6 Address\n" - "Port\n" - ) -{ - struct vty_bind *vbind = vty->index; - struct gprs_ns2_vc_bind *bind; - - const char *addr_str = argv[0]; - unsigned int port = atoi(argv[1]); - struct osmo_sockaddr_str sockaddr_str; - struct osmo_sockaddr sockaddr; - - if (vbind->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "listen can be only used with UDP bind%s", - VTY_NEWLINE); - return CMD_WARNING; - } - - if (osmo_sockaddr_str_from_str(&sockaddr_str, addr_str, port)) { - vty_out(vty, "Can not parse the Address %s %s%s", argv[0], argv[1], VTY_NEWLINE); - return CMD_WARNING; - } - osmo_sockaddr_str_to_sockaddr(&sockaddr_str, &sockaddr.u.sas); - if (gprs_ns2_ip_bind_by_sockaddr(vty_nsi, &sockaddr)) { - vty_out(vty, "A bind with the specified address already exists!%s", VTY_NEWLINE); - return CMD_WARNING; - } - - if (gprs_ns2_ip_bind(vty_nsi, vbind->name, &sockaddr, vbind->dscp, &bind) != 0) { - vty_out(vty, "Failed to create the bind!%s", VTY_NEWLINE); - return CMD_WARNING; - } - - bind->accept_ipaccess = vbind->accept_ipaccess; - bind->accept_sns = vbind->accept_sns; - - return CMD_SUCCESS; -} - -DEFUN(cfg_no_ns_bind_listen, cfg_no_ns_bind_listen_cmd, - "no listen", - NO_STR - "Delete a IP/Port assignment\n" - ) -{ - struct vty_bind *vbind = vty->index; - struct gprs_ns2_vc_bind *bind; - - if (vbind->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "no listen can be only used with UDP bind%s", VTY_NEWLINE); - return CMD_WARNING; - } - - bind = gprs_ns2_bind_by_name(vty_nsi, vbind->name); - if (!bind) - return CMD_ERR_NOTHING_TODO; - - OSMO_ASSERT(bind->ll != GPRS_NS2_LL_UDP); - bind->driver->free_bind(bind); - return CMD_SUCCESS; -} - -DEFUN(cfg_ns_bind_dscp, cfg_ns_bind_dscp_cmd, - "dscp <0-255>", - "Set DSCP/TOS on the UDP socket\n" "DSCP Value\n") -{ - struct vty_bind *vbind = vty->index; - struct gprs_ns2_vc_bind *bind; - uint16_t dscp = atoi(argv[0]); - - if (vbind->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "dscp can be only used with UDP bind%s", - VTY_NEWLINE); - return CMD_WARNING; - } - - vbind->dscp = dscp; - bind = gprs_ns2_bind_by_name(vty_nsi, vbind->name); - if (bind) - gprs_ns2_ip_bind_set_dscp(bind, dscp); - - return CMD_SUCCESS; -} - -DEFUN(cfg_no_ns_bind_dscp, cfg_no_ns_bind_dscp_cmd, - "no dscp", - "Set DSCP/TOS on the UDP socket\n" "DSCP Value\n") -{ - struct vty_bind *vbind = vty->index; - struct gprs_ns2_vc_bind *bind; - uint16_t dscp = 0; - - if (vbind->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "dscp can be only used with UDP bind%s", - VTY_NEWLINE); - return CMD_WARNING; - } - - vbind->dscp = dscp; - bind = gprs_ns2_bind_by_name(vty_nsi, vbind->name); - if (bind) - gprs_ns2_ip_bind_set_dscp(bind, dscp); - - return CMD_SUCCESS; -} - -DEFUN(cfg_ns_bind_ipaccess, cfg_ns_bind_ipaccess_cmd, - "accept-ipaccess", - "Allow to create dynamic NS Entity by NS Reset PDU on UDP (ip.access style)\n" - ) -{ - struct vty_bind *vbind = vty->index; - struct gprs_ns2_vc_bind *bind; - - if (vbind->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "accept-ipaccess can be only used with UDP bind%s", - VTY_NEWLINE); - return CMD_WARNING; - } - - vbind->accept_ipaccess = true; - bind = gprs_ns2_bind_by_name(vty_nsi, vbind->name); - if (bind) - bind->accept_ipaccess = true; - - return CMD_SUCCESS; -} - -DEFUN(cfg_no_ns_bind_ipaccess, cfg_no_ns_bind_ipaccess_cmd, - "no accept-ipaccess", - NO_STR - "Reject NS Reset PDU on UDP (ip.access style)\n" - ) -{ - struct vty_bind *vbind = vty->index; - struct gprs_ns2_vc_bind *bind; - - if (vbind->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "no accept-ipaccess can be only used with UDP bind%s", - VTY_NEWLINE); - return CMD_WARNING; - } - - vbind->accept_ipaccess = false; - bind = gprs_ns2_bind_by_name(vty_nsi, vbind->name); - if (bind) - bind->accept_ipaccess = false; - - return CMD_SUCCESS; -} - - -DEFUN(cfg_ns_bind_fr, cfg_ns_bind_fr_cmd, - "fr NETIF (fr|frnet)", - "frame relay\n" - IFNAME_STR - "fr (user) is used by BSS or SGSN attached to UNI of a FR network\n" - "frnet (network) is used by SGSN if BSS is directly attached\n" - ) -{ - struct vty_bind *vbind = vty->index; - struct gprs_ns2_vc_bind *bind; - const char *netif = argv[0]; - const char *role = argv[1]; - - int rc = 0; - enum osmo_fr_role frrole; - - if (vbind->ll != GPRS_NS2_LL_FR) { - vty_out(vty, "fr can be only used with frame relay bind%s", VTY_NEWLINE); - return CMD_WARNING; - } - - if (!strcmp(role, "fr")) - frrole = FR_ROLE_USER_EQUIPMENT; - else if (!strcmp(role, "frnet")) - frrole = FR_ROLE_NETWORK_EQUIPMENT; - else - return CMD_WARNING; - - bind = gprs_ns2_fr_bind_by_netif(vty_nsi, netif); - if (bind) { - vty_out(vty, "Interface %s already used.%s", netif, VTY_NEWLINE); - return CMD_WARNING; - } - - rc = gprs_ns2_fr_bind(vty_nsi, vbind->name, netif, vty_fr_network, frrole, &bind); - if (rc < 0) { - LOGP(DLNS, LOGL_ERROR, "Failed to bind interface %s on fr. Err: %d\n", netif, rc); - return CMD_WARNING; - } - - return CMD_SUCCESS; -} - -DEFUN(cfg_no_ns_bind_fr, cfg_no_ns_bind_fr_cmd, - "no fr NETIF", - NO_STR - "Delete a frame relay link\n" - "Delete a frame relay link\n" - IFNAME_STR - ) -{ - struct vty_bind *vbind = vty->index; - struct gprs_ns2_vc_bind *bind; - const char *netif = argv[0]; - - if (vbind->ll != GPRS_NS2_LL_FR) { - vty_out(vty, "fr can be only used with frame relay bind%s", - VTY_NEWLINE); - return CMD_WARNING; - } - - bind = gprs_ns2_fr_bind_by_netif(vty_nsi, netif); - if (!bind) { - vty_out(vty, "Interface not found.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - if (strcmp(bind->name, vbind->name)) { - vty_out(vty, "The specified interface is not bound to this bind.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - bind->driver->free_bind(bind); - return CMD_SUCCESS; -} - - -static struct cmd_node ns_nse_node = { - L_NS_NSE_NODE, - "%s(config-ns-nse)# ", - 1, -}; - -DEFUN(cfg_ns_nse_nsvc_fr, cfg_ns_nse_nsvc_fr_cmd, - "nsvc fr NETIF dlci <16-1007> nsvci <0-65535>", - "NS Virtual Connection\n" - "frame relay\n" - "frame relay interface. Must be registered via fr vty\n" - NSVCI_STR - NSVCI_STR - DLCI_STR - DLCI_STR - ) -{ - struct gprs_ns2_vc_bind *bind; - struct gprs_ns2_vc *nsvc; - struct gprs_ns2_nse *nse = vty->index; - const char *netif = argv[0]; - uint16_t dlci = atoi(argv[1]); - uint16_t nsvci = atoi(argv[2]); - bool dialect_modified = false; - bool ll_modified = false; - - if (nse->ll != GPRS_NS2_LL_FR && nse->ll != GPRS_NS2_LL_UNDEF) { - vty_out(vty, "Can not mix NS-VC with different link layer%s", VTY_NEWLINE); - goto err; - } - - if (nse->dialect != GPRS_NS2_DIALECT_STATIC_RESETBLOCK && nse->dialect != GPRS_NS2_DIALECT_UNDEF) { - vty_out(vty, "Can not mix NS-VC with different dialects%s", VTY_NEWLINE); - goto err; - } - - if (nse->ll == GPRS_NS2_LL_UNDEF) { - nse->ll = GPRS_NS2_LL_FR; - ll_modified = true; - } - - if (nse->dialect == GPRS_NS2_DIALECT_UNDEF) { - nse->dialect = GPRS_NS2_DIALECT_STATIC_RESETBLOCK; - dialect_modified = true; - } - - - bind = gprs_ns2_fr_bind_by_netif(vty_nsi, netif); - if (!bind) { - vty_out(vty, "Can not find fr interface \"%s\". Please configure it via fr vty.%s", - netif, VTY_NEWLINE); - goto err; - } - - if (gprs_ns2_fr_nsvc_by_dlci(bind, dlci)) { - vty_out(vty, "A NS-VC with the specified DLCI already exist!%s", VTY_NEWLINE); - goto err; - } - - if (gprs_ns2_nsvc_by_nsvci(vty_nsi, nsvci)) { - vty_out(vty, "A NS-VC with the specified NS-VCI already exist!%s", VTY_NEWLINE); - goto err; - } - - nsvc = gprs_ns2_fr_connect(bind, nse, nsvci, dlci); - if (!nsvc) { - /* Could not create NS-VC, connect failed */ - vty_out(vty, "Failed to create the NS-VC%s", VTY_NEWLINE); - goto err; - } - nsvc->persistent = true; - return CMD_SUCCESS; - -err: - if (ll_modified) - nse->ll = GPRS_NS2_LL_UNDEF; - if (dialect_modified) - nse->dialect = GPRS_NS2_DIALECT_UNDEF; - - return CMD_WARNING; -} - -DEFUN(cfg_no_ns_nse_nsvc_fr_dlci, cfg_no_ns_nse_nsvc_fr_dlci_cmd, - "no nsvc fr NETIF dlci <16-1007>", - NO_STR - "Delete frame relay NS-VC\n" - "frame relay\n" - "frame relay interface. Must be registered via fr vty\n" - DLCI_STR - DLCI_STR - ) -{ - struct gprs_ns2_vc_bind *bind; - struct gprs_ns2_vc *nsvc; - struct gprs_ns2_nse *nse = vty->index; - const char *netif = argv[0]; - uint16_t dlci = atoi(argv[1]); - - if (nse->ll != GPRS_NS2_LL_FR) { - vty_out(vty, "This NSE doesn't support frame relay.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - bind = gprs_ns2_fr_bind_by_netif(vty_nsi, netif); - if (!bind) { - vty_out(vty, "Can not find fr interface \"%s\"%s", - netif, VTY_NEWLINE); - return CMD_ERR_NOTHING_TODO; - } - - nsvc = gprs_ns2_fr_nsvc_by_dlci(bind, dlci); - if (!nsvc) { - vty_out(vty, "Can not find a NS-VC on fr interface %s with dlci %u%s", - netif, dlci, VTY_NEWLINE); - return CMD_WARNING; - } - - if (nse != nsvc->nse) { - vty_out(vty, "The specified NS-VC is not a part of the NSE %u!%s" - "To remove this NS-VC go to the vty node 'nse %u'%s", - nse->nsei, VTY_NEWLINE, - nsvc->nse->nsei, VTY_NEWLINE); - return CMD_WARNING; - } - - gprs_ns2_free_nsvc(nsvc); - if (llist_empty(&nse->nsvc)) { - nse->ll = GPRS_NS2_LL_UNDEF; - nse->dialect = GPRS_NS2_DIALECT_UNDEF; - } - - return CMD_SUCCESS; -} - -DEFUN(cfg_no_ns_nse_nsvci, cfg_no_ns_nse_nsvci_cmd, - "no nsvc nsvci <0-65535>", - NO_STR - "Delete NSVC\n" - NSVCI_STR - NSVCI_STR - ) -{ - struct gprs_ns2_vc *nsvc; - struct gprs_ns2_nse *nse = vty->index; - uint16_t nsvci = atoi(argv[0]); - - switch (nse->dialect) { - case GPRS_NS2_DIALECT_SNS: - case GPRS_NS2_DIALECT_STATIC_ALIVE: - vty_out(vty, "NSE doesn't support NSVCI.%s", VTY_NEWLINE); - return CMD_WARNING; - case GPRS_NS2_DIALECT_UNDEF: - vty_out(vty, "No NSVCs configured%s", VTY_NEWLINE); - return CMD_WARNING; - case GPRS_NS2_DIALECT_IPACCESS: - case GPRS_NS2_DIALECT_STATIC_RESETBLOCK: - break; - } - - nsvc = gprs_ns2_nsvc_by_nsvci(vty_nsi, nsvci); - if (!nsvc) { - vty_out(vty, "Can not find NS-VC with NS-VCI %u%s", nsvci, VTY_NEWLINE); - return CMD_WARNING; - } - - if (nse != nsvc->nse) { - vty_out(vty, "NS-VC with NS-VCI %u is not part of this NSE!%s", - nsvci, VTY_NEWLINE); - return CMD_WARNING; - } - - gprs_ns2_free_nsvc(nsvc); - if (llist_empty(&nse->nsvc)) { - nse->ll = GPRS_NS2_LL_UNDEF; - nse->dialect = GPRS_NS2_DIALECT_UNDEF; - } - - return CMD_SUCCESS; -} - -DEFUN(cfg_ns_nse_nsvc_udp, cfg_ns_nse_nsvc_udp_cmd, - "nsvc udp BIND " VTY_IPV46_CMD " <1-65535>", - "NS Virtual Connection\n" - "NS over UDP\n" - "A unique bind identifier created by ns bind\n" - "Remote IPv4 Address\n" "Remote IPv6 Address\n" - "Remote UDP Port\n" - ) -{ - struct gprs_ns2_vc_bind *bind; - struct gprs_ns2_vc *nsvc; - struct gprs_ns2_nse *nse = vty->index; - bool dialect_modified = false; - bool ll_modified = false; - - const char *bind_name = argv[0]; - struct osmo_sockaddr_str remote_str; - struct osmo_sockaddr remote; - uint16_t port = atoi(argv[2]); - - if (nse->ll == GPRS_NS2_LL_UNDEF) { - nse->ll = GPRS_NS2_LL_UDP; - ll_modified = true; - } - - if (nse->dialect == GPRS_NS2_DIALECT_UNDEF) { - nse->dialect = GPRS_NS2_DIALECT_STATIC_ALIVE; - dialect_modified = true; - } - - if (nse->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "Can not mix NS-VC with different link layer%s", VTY_NEWLINE); - goto err; - } - - if (nse->dialect != GPRS_NS2_DIALECT_STATIC_ALIVE) { - vty_out(vty, "Can not mix NS-VC with different dialects%s", VTY_NEWLINE); - goto err; - } - - if (osmo_sockaddr_str_from_str(&remote_str, argv[1], port)) { - vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); - goto err; - } - - if (osmo_sockaddr_str_to_sockaddr(&remote_str, &remote.u.sas)) { - vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); - goto err; - } - - bind = gprs_ns2_bind_by_name(vty_nsi, bind_name); - if (!bind) { - vty_out(vty, "Can not find bind with name %s%s", - bind_name, VTY_NEWLINE); - goto err; - } - - if (bind->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "Bind %s is not an UDP bind.%s", - bind_name, VTY_NEWLINE); - goto err; - } - - nsvc = gprs_ns2_ip_connect(bind, &remote, nse, 0); - if (!nsvc) { - vty_out(vty, "Can not create NS-VC.%s", VTY_NEWLINE); - goto err; - } - nsvc->persistent = true; - - return CMD_SUCCESS; - -err: - if (ll_modified) - nse->ll = GPRS_NS2_LL_UNDEF; - if (dialect_modified) - nse->dialect = GPRS_NS2_DIALECT_UNDEF; - return CMD_WARNING; -} - -DEFUN(cfg_no_ns_nse_nsvc_udp, cfg_no_ns_nse_nsvc_udp_cmd, - "no nsvc udp BIND " VTY_IPV46_CMD " <1-65535>", - NO_STR - "Delete a NS Virtual Connection\n" - "NS over UDP\n" - "A unique bind identifier created by ns bind\n" - "Remote IPv4 Address\n" "Remote IPv6 Address\n" - "Remote UDP Port\n" - ) -{ - struct gprs_ns2_vc_bind *bind; - struct gprs_ns2_vc *nsvc; - struct gprs_ns2_nse *nse = vty->index; - const char *bind_name = argv[0]; - struct osmo_sockaddr_str remote_str; - struct osmo_sockaddr remote; - uint16_t port = atoi(argv[2]); - - if (nse->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "This NSE doesn't support UDP.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - if (nse->dialect != GPRS_NS2_DIALECT_STATIC_ALIVE) { - vty_out(vty, "This NSE doesn't support UDP with dialect static alive.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - bind = gprs_ns2_bind_by_name(vty_nsi, bind_name); - if (!bind) { - vty_out(vty, "Can not find bind with name %s%s", - bind_name, VTY_NEWLINE); - return CMD_WARNING; - } - - if (bind->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "Bind %s is not an UDP bind.%s", - bind_name, VTY_NEWLINE); - return CMD_WARNING; - } - - if (osmo_sockaddr_str_from_str(&remote_str, argv[1], port)) { - vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - if (osmo_sockaddr_str_to_sockaddr(&remote_str, &remote.u.sas)) { - vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - nsvc = gprs_ns2_nsvc_by_sockaddr_bind(bind, &remote); - if (!nsvc) { - vty_out(vty, "Can not find NS-VC with remote %s:%u%s", - remote_str.ip, remote_str.port, VTY_NEWLINE); - return CMD_WARNING; - } - - if (!nsvc->persistent) { - vty_out(vty, "NS-VC with remote %s:%u is a dynamic NS-VC. Not configured by vty.%s", - remote_str.ip, remote_str.port, VTY_NEWLINE); - return CMD_WARNING; - } - - if (nsvc->nse != nse) { - vty_out(vty, "NS-VC is not part of this NSE!%s", VTY_NEWLINE); - return CMD_WARNING; - } - - gprs_ns2_free_nsvc(nsvc); - if (llist_empty(&nse->nsvc)) { - nse->ll = GPRS_NS2_LL_UNDEF; - nse->dialect = GPRS_NS2_DIALECT_UNDEF; - } - - return CMD_SUCCESS; -} - -DEFUN(cfg_ns_nse_nsvc_ipa, cfg_ns_nse_nsvc_ipa_cmd, - "nsvc ipa BIND " VTY_IPV46_CMD " <1-65535> nsvci <0-65535>" , - "NS Virtual Connection\n" - "NS over UDP ip.access style (uses RESET/BLOCK)\n" - "A unique bind identifier created by ns bind\n" - "Remote IPv4 Address\n" "Remote IPv6 Address\n" - "Remote UDP Port\n" - NSVCI_STR - NSVCI_STR - ) -{ - struct gprs_ns2_vc_bind *bind; - struct gprs_ns2_vc *nsvc; - struct gprs_ns2_nse *nse = vty->index; - bool dialect_modified = false; - bool ll_modified = false; - - const char *bind_name = argv[0]; - struct osmo_sockaddr_str remote_str; - struct osmo_sockaddr remote; - uint16_t port = atoi(argv[2]); - uint16_t nsvci = atoi(argv[3]); - - if (nse->ll == GPRS_NS2_LL_UNDEF) { - nse->ll = GPRS_NS2_LL_UDP; - ll_modified = true; - } - - if (nse->dialect == GPRS_NS2_DIALECT_UNDEF) { - nse->dialect = GPRS_NS2_DIALECT_IPACCESS; - dialect_modified = true; - } - - if (nse->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "Can not mix NS-VC with different link layer%s", VTY_NEWLINE); - goto err; - } - - if (nse->dialect != GPRS_NS2_DIALECT_IPACCESS) { - vty_out(vty, "Can not mix NS-VC with different dialects%s", VTY_NEWLINE); - goto err; - } - - if (osmo_sockaddr_str_from_str(&remote_str, argv[1], port)) { - vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); - goto err; - } - - if (osmo_sockaddr_str_to_sockaddr(&remote_str, &remote.u.sas)) { - vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); - goto err; - } - - bind = gprs_ns2_bind_by_name(vty_nsi, bind_name); - if (!bind) { - vty_out(vty, "Can not find bind with name %s%s", - bind_name, VTY_NEWLINE); - goto err; - } - - if (bind->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "Bind %s is not an UDP bind.%s", - bind_name, VTY_NEWLINE); - goto err; - } - - nsvc = gprs_ns2_ip_connect(bind, &remote, nse, nsvci); - if (!nsvc) { - vty_out(vty, "Can not create NS-VC.%s", VTY_NEWLINE); - goto err; - } - nsvc->persistent = true; - - return CMD_SUCCESS; - -err: - if (ll_modified) - nse->ll = GPRS_NS2_LL_UNDEF; - if (dialect_modified) - nse->dialect = GPRS_NS2_DIALECT_UNDEF; - return CMD_WARNING; -} - -DEFUN(cfg_no_ns_nse_nsvc_ipa, cfg_no_ns_nse_nsvc_ipa_cmd, - "no nsvc ipa BIND " VTY_IPV46_CMD " <1-65535> nsvci <0-65535>", - NO_STR - "Delete a NS Virtual Connection\n" - "NS over UDP\n" - "A unique bind identifier created by ns bind\n" - "Remote IPv4 Address\n" "Remote IPv6 Address\n" - "Remote UDP Port\n" - NSVCI_STR - NSVCI_STR - ) -{ - struct gprs_ns2_vc_bind *bind; - struct gprs_ns2_vc *nsvc; - struct gprs_ns2_nse *nse = vty->index; - const char *bind_name = argv[0]; - struct osmo_sockaddr_str remote_str; - struct osmo_sockaddr remote; - uint16_t port = atoi(argv[2]); - uint16_t nsvci = atoi(argv[3]); - - if (nse->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "This NSE doesn't support UDP.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - if (nse->dialect != GPRS_NS2_DIALECT_IPACCESS) { - vty_out(vty, "This NSE doesn't support UDP with dialect ipaccess.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - bind = gprs_ns2_bind_by_name(vty_nsi, bind_name); - if (!bind) { - vty_out(vty, "Can not find bind with name %s%s", - bind_name, VTY_NEWLINE); - return CMD_WARNING; - } - - if (bind->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "Bind %s is not an UDP bind.%s", - bind_name, VTY_NEWLINE); - return CMD_WARNING; - } - - if (osmo_sockaddr_str_from_str(&remote_str, argv[1], port)) { - vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - if (osmo_sockaddr_str_to_sockaddr(&remote_str, &remote.u.sas)) { - vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - nsvc = gprs_ns2_nsvc_by_sockaddr_bind(bind, &remote); - if (!nsvc) { - vty_out(vty, "Can not find NS-VC with remote %s:%u%s", - remote_str.ip, remote_str.port, VTY_NEWLINE); - return CMD_WARNING; - } - - if (!nsvc->persistent) { - vty_out(vty, "NS-VC with remote %s:%u is a dynamic NS-VC. Not configured by vty.%s", - remote_str.ip, remote_str.port, VTY_NEWLINE); - return CMD_WARNING; - } - - if (nsvc->nse != nse) { - vty_out(vty, "NS-VC is not part of this NSE!%s", VTY_NEWLINE); - return CMD_WARNING; - } - - if (!nsvc->nsvci_is_valid) { - vty_out(vty, "NS-VC doesn't have a nsvci!%s", VTY_NEWLINE); - return CMD_WARNING; - } - - if (nsvc->nsvci != nsvci) { - vty_out(vty, "NS-VC has a different nsvci (%u)!%s", - nsvc->nsvci, VTY_NEWLINE); - return CMD_WARNING; - } - - gprs_ns2_free_nsvc(nsvc); - if (llist_empty(&nse->nsvc)) { - nse->ll = GPRS_NS2_LL_UNDEF; - nse->dialect = GPRS_NS2_DIALECT_UNDEF; - } - - return CMD_SUCCESS; -} - -DEFUN(cfg_ns_nse_ip_sns, cfg_ns_nse_ip_sns_cmd, - "ip-sns " VTY_IPV46_CMD " <1-65535>", - "SNS Initial Endpoint\n" - "SGSN IPv4 Address\n" "SGSN IPv6 Address\n" - "SGSN UDP Port\n" - ) -{ - struct gprs_ns2_nse *nse = vty->index; - bool dialect_modified = false; - bool ll_modified = false; - int rc; - - /* argv[0] */ - struct osmo_sockaddr_str remote_str; - struct osmo_sockaddr remote; - uint16_t port = atoi(argv[1]); - - if (nse->ll == GPRS_NS2_LL_UNDEF) { - nse->ll = GPRS_NS2_LL_UDP; - ll_modified = true; - } - - if (nse->dialect == GPRS_NS2_DIALECT_UNDEF) { - char sns[16]; - snprintf(sns, sizeof(sns), "NSE%05u-SNS", nse->nsei); - nse->bss_sns_fi = ns2_sns_bss_fsm_alloc(nse, sns); - if (!nse->bss_sns_fi) - goto err; - nse->dialect = GPRS_NS2_DIALECT_SNS; - dialect_modified = true; - } - - if (nse->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "Can not mix NS-VC with different link layer%s", VTY_NEWLINE); - goto err; - } - - if (nse->dialect != GPRS_NS2_DIALECT_SNS) { - vty_out(vty, "Can not mix NS-VC with different dialects%s", VTY_NEWLINE); - goto err; - } - - if (osmo_sockaddr_str_from_str(&remote_str, argv[0], port)) { - vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); - goto err; - } - - if (osmo_sockaddr_str_to_sockaddr(&remote_str, &remote.u.sas)) { - vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); - goto err; - } - - rc = gprs_ns2_sns_add_endpoint(nse, &remote); - switch (rc) { - case 0: - return CMD_SUCCESS; - case -EADDRINUSE: - vty_out(vty, "Specified SNS endpoint already part of the NSE.%s", VTY_NEWLINE); - return CMD_WARNING; - default: - vty_out(vty, "Can not add specified SNS endpoint.%s", VTY_NEWLINE); - return CMD_WARNING; - } - -err: - if (ll_modified) - nse->ll = GPRS_NS2_LL_UNDEF; - if (dialect_modified) - nse->dialect = GPRS_NS2_DIALECT_UNDEF; - return CMD_WARNING; -} - -DEFUN(cfg_no_ns_nse_ip_sns, cfg_no_ns_nse_ip_sns_cmd, - "no ip-sns " VTY_IPV46_CMD " <1-65535>", - NO_STR - "Delete a SNS Initial Endpoint\n" - "SGSN IPv4 Address\n" "SGSN IPv6 Address\n" - "SGSN UDP Port\n" - ) -{ - struct gprs_ns2_nse *nse = vty->index; - struct osmo_sockaddr_str remote_str; /* argv[0] */ - struct osmo_sockaddr remote; - uint16_t port = atoi(argv[1]); - int count; - - if (nse->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "This NSE doesn't support UDP.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - if (nse->dialect != GPRS_NS2_DIALECT_SNS) { - vty_out(vty, "This NSE doesn't support UDP with dialect ip-sns.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - if (osmo_sockaddr_str_from_str(&remote_str, argv[0], port)) { - vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - if (osmo_sockaddr_str_to_sockaddr(&remote_str, &remote.u.sas)) { - vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - if (gprs_ns2_sns_del_endpoint(nse, &remote)) { - vty_out(vty, "Can not remove specified SNS endpoint.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - count = gprs_ns2_sns_count(nse); - if (count > 0) { - /* there are other sns endpoints */ - return CMD_SUCCESS; - } else if (count < 0) { - OSMO_ASSERT(0); - } else { - /* clean up nse to allow other nsvc commands */ - osmo_fsm_inst_term(nse->bss_sns_fi, OSMO_FSM_TERM_REQUEST, NULL); - nse->bss_sns_fi = NULL; - nse->ll = GPRS_NS2_LL_UNDEF; - nse->dialect = GPRS_NS2_DIALECT_UNDEF; - } - - return CMD_SUCCESS; -} - - -/* non-config commands */ static void dump_nsvc(struct vty *vty, struct gprs_ns2_vc *nsvc, bool stats) { char nsvci_str[32]; @@ -1491,9 +440,7 @@ return CMD_WARNING; } - if (!nse->persistent) { - gprs_ns2_free_nse(nse); - } else if (nse->dialect == GPRS_NS2_DIALECT_SNS) { + if (nse->dialect == GPRS_NS2_DIALECT_SNS) { gprs_ns2_free_nsvcs(nse); } else { /* Perform the operation for all nsvc */ @@ -1503,57 +450,310 @@ return CMD_SUCCESS; } -DEFUN(nsvc_block, nsvc_block_cmd, - "nsvc <0-65535> (block|unblock)", - "NS Virtual Connection\n" - NSVCI_STR - "Block a NSVC. As cause code O&M intervention will be used.\n" - "Unblock a NSVC. As cause code O&M intervention will be used.\n") +#define NSE_CMD_STR "Persistent NS Entity\n" "NS Entity ID (NSEI)\n" + +DEFUN(cfg_nse_fr, cfg_nse_fr_cmd, + "nse <0-65535> nsvci <0-65535> (fr|frnet) NETIF dlci <0-1023>", + NSE_CMD_STR + "NS Virtual Connection\n" + "NS Virtual Connection ID (NSVCI)\n" + "Frame Relay User-Side\n" + "Frame Relay Network-Side\n" + IFNAME_STR + "Data Link connection identifier\n" + "Data Link connection identifier\n" + ) { - struct gprs_ns2_inst *nsi = vty_nsi; - struct gprs_ns2_vc *nsvc; + struct ns2_vty_vc *vtyvc; - uint16_t id = atoi(argv[0]); + uint16_t nsei = atoi(argv[0]); + uint16_t nsvci = atoi(argv[1]); + const char *role = argv[2]; + const char *name = argv[3]; + uint16_t dlci = atoi(argv[4]); - nsvc = gprs_ns2_nsvc_by_nsvci(nsi, id); - if (!nsvc) { - vty_out(vty, "Could not find NSVCI %05u%s", id, VTY_NEWLINE); + vtyvc = vtyvc_by_nsei(nsei, true); + if (!vtyvc) { + vty_out(vty, "Can not allocate space %s", VTY_NEWLINE); return CMD_WARNING; } - if (!strcmp(argv[1], "block")) { - ns2_vc_block(nsvc); - } else { - ns2_vc_unblock(nsvc); + if (!strcmp(role, "fr")) + vtyvc->fr.role = FR_ROLE_USER_EQUIPMENT; + else if (!strcmp(role, "frnet")) + vtyvc->fr.role = FR_ROLE_NETWORK_EQUIPMENT; + + osmo_strlcpy(vtyvc->netif, name, sizeof(vtyvc->netif)); + vtyvc->frdlci = dlci; + vtyvc->nsvci = nsvci; + vtyvc->ll = GPRS_NS2_LL_FR; + + return CMD_SUCCESS; +} + +DEFUN(cfg_nse_nsvc, cfg_nse_nsvci_cmd, + "nse <0-65535> nsvci <0-65535>", + NSE_CMD_STR + "NS Virtual Connection\n" + "NS Virtual Connection ID (NSVCI)\n" + ) +{ + struct ns2_vty_vc *vtyvc; + + uint16_t nsei = atoi(argv[0]); + uint16_t nsvci = atoi(argv[1]); + + vtyvc = vtyvc_by_nsei(nsei, true); + if (!vtyvc) { + vty_out(vty, "Can not allocate space %s", VTY_NEWLINE); + return CMD_WARNING; + } + + vtyvc->nsvci = nsvci; + + return CMD_SUCCESS; +} + +DEFUN(cfg_nse_remoteip, cfg_nse_remoteip_cmd, + "nse <0-65535> remote-ip " VTY_IPV46_CMD, + NSE_CMD_STR + "Remote IP Address\n" + "Remote IPv4 Address\n" + "Remote IPv6 Address\n") +{ + uint16_t nsei = atoi(argv[0]); + struct ns2_vty_vc *vtyvc; + + vtyvc = vtyvc_by_nsei(nsei, true); + if (!vtyvc) { + vty_out(vty, "Can not allocate space %s", VTY_NEWLINE); + return CMD_WARNING; + } + + osmo_sockaddr_str_from_str2(&vtyvc->remote, argv[1]); + + return CMD_SUCCESS; +} + +DEFUN(cfg_nse_remoteport, cfg_nse_remoteport_cmd, + "nse <0-65535> remote-port <0-65535>", + NSE_CMD_STR + "Remote UDP Port\n" + "Remote UDP Port Number\n") +{ + uint16_t nsei = atoi(argv[0]); + uint16_t port = atoi(argv[1]); + struct ns2_vty_vc *vtyvc; + + vtyvc = vtyvc_by_nsei(nsei, true); + if (!vtyvc) { + vty_out(vty, "Can not allocate space %s", VTY_NEWLINE); + return CMD_WARNING; + } + + vtyvc->remote.port = port; + + return CMD_SUCCESS; +} + +DEFUN(cfg_nse_fr_dlci, cfg_nse_fr_dlci_cmd, + "nse <0-65535> nsvci <0-65535> fr-dlci <16-1007>", + NSE_CMD_STR + "NS Virtual Connection\n" + "NS Virtual Connection ID (NSVCI)\n" + "Frame Relay DLCI\n" + "Frame Relay DLCI Number\n") +{ + uint16_t nsei = atoi(argv[0]); + uint16_t nsvci = atoi(argv[1]); + uint16_t dlci = atoi(argv[2]); + struct ns2_vty_vc *vtyvc; + + vtyvc = vtyvc_by_nsei(nsei, true); + if (!vtyvc) { + vty_out(vty, "Can not allocate space %s", VTY_NEWLINE); + return CMD_WARNING; + } + + vtyvc->frdlci = dlci; + vtyvc->nsvci = nsvci; + + return CMD_SUCCESS; +} + +DEFUN(cfg_nse_encaps, cfg_nse_encaps_cmd, + "nse <0-65535> encapsulation (udp|framerelay-gre)", + NSE_CMD_STR + "Encapsulation for NS\n" + "UDP/IP Encapsulation\n" "Frame-Relay/GRE/IP Encapsulation\n") +{ + uint16_t nsei = atoi(argv[0]); + struct ns2_vty_vc *vtyvc; + + vtyvc = vtyvc_by_nsei(nsei, true); + if (!vtyvc) { + vty_out(vty, "Can not allocate space %s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (!strcmp(argv[1], "udp")) + vtyvc->ll = GPRS_NS2_LL_UDP; + else + vtyvc->ll = GPRS_NS2_LL_FR_GRE; + + return CMD_SUCCESS; +} + +DEFUN(cfg_nse_remoterole, cfg_nse_remoterole_cmd, + "nse <0-65535> remote-role (sgsn|bss)", + NSE_CMD_STR + "Remote NSE Role\n" + "Remote Peer is SGSN\n" + "Remote Peer is BSS\n") +{ + uint16_t nsei = atoi(argv[0]); + struct ns2_vty_vc *vtyvc; + + vtyvc = vtyvc_by_nsei(nsei, true); + if (!vtyvc) { + vty_out(vty, "Can not allocate space %s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (!strcmp(argv[1], "sgsn")) + vtyvc->remote_end_is_sgsn = 1; + else + vtyvc->remote_end_is_sgsn = 0; + + return CMD_SUCCESS; +} + +DEFUN(cfg_no_nse, cfg_no_nse_cmd, + "no nse <0-65535>", + "Delete Persistent NS Entity\n" + "Delete " NSE_CMD_STR) +{ + uint16_t nsei = atoi(argv[0]); + struct ns2_vty_vc *vtyvc; + + vtyvc = vtyvc_by_nsei(nsei, false); + if (!vtyvc) { + vty_out(vty, "The NSE %d does not exists.%s", nsei, VTY_NEWLINE); + return CMD_WARNING; + } + + ns2_vc_free(vtyvc); + + return CMD_SUCCESS; +} + +DEFUN(cfg_ns_timer, cfg_ns_timer_cmd, + "timer " NS_TIMERS " <0-65535>", + "Network Service Timer\n" + NS_TIMERS_HELP "Timer Value\n") +{ + int idx = get_string_value(gprs_ns_timer_strs, argv[0]); + int val = atoi(argv[1]); + + if (idx < 0 || idx >= ARRAY_SIZE(vty_nsi->timeout)) + return CMD_WARNING; + + vty_nsi->timeout[idx] = val; + + return CMD_SUCCESS; +} + +#define ENCAPS_STR "NS encapsulation options\n" + +DEFUN(cfg_nsip_local_ip, cfg_nsip_local_ip_cmd, + "encapsulation udp local-ip " VTY_IPV46_CMD, + ENCAPS_STR "NS over UDP Encapsulation\n" + "Set the IP address on which we listen for NS/UDP\n" + "IPv4 Address\n" + "IPv6 Address\n") +{ + osmo_sockaddr_str_from_str2(&priv.udp, argv[0]); + + return CMD_SUCCESS; +} + +DEFUN(cfg_nsip_local_port, cfg_nsip_local_port_cmd, + "encapsulation udp local-port <0-65535>", + ENCAPS_STR "NS over UDP Encapsulation\n" + "Set the UDP port on which we listen for NS/UDP\n" + "UDP port number\n") +{ + unsigned int port = atoi(argv[0]); + + priv.udp.port = port; + + return CMD_SUCCESS; +} + +DEFUN(cfg_nsip_dscp, cfg_nsip_dscp_cmd, + "encapsulation udp dscp <0-255>", + ENCAPS_STR "NS over UDP Encapsulation\n" + "Set DSCP/TOS on the UDP socket\n" "DSCP Value\n") +{ + int dscp = atoi(argv[0]); + struct gprs_ns2_vc_bind *bind; + + priv.dscp = dscp; + + llist_for_each_entry(bind, &vty_nsi->binding, list) { + if (gprs_ns2_is_ip_bind(bind)) + gprs_ns2_ip_bind_set_dscp(bind, dscp); } return CMD_SUCCESS; } -static void log_set_nse_filter(struct log_target *target, - struct gprs_ns2_nse *nse) +DEFUN(cfg_nsip_res_block_unblock, cfg_nsip_res_block_unblock_cmd, + "encapsulation udp use-reset-block-unblock (enabled|disabled)", + ENCAPS_STR "NS over UDP Encapsulation\n" + "Use NS-{RESET,BLOCK,UNBLOCK} procedures in violation of 3GPP TS 48.016\n" + "Enable NS-{RESET,BLOCK,UNBLOCK}\n" + "Disable NS-{RESET,BLOCK,UNBLOCK}\n") { - if (nse) { - target->filter_map |= (1 << LOG_FLT_GB_NSE); - target->filter_data[LOG_FLT_GB_NSE] = nse; - } else if (target->filter_data[LOG_FLT_GB_NSE]) { - target->filter_map = ~(1 << LOG_FLT_GB_NSE); - target->filter_data[LOG_FLT_GB_NSE] = NULL; - } + enum gprs_ns2_vc_mode vc_mode; + + if (!strcmp(argv[0], "enabled")) + vc_mode = GPRS_NS2_VC_MODE_BLOCKRESET; + else + vc_mode = GPRS_NS2_VC_MODE_ALIVE; + + priv.vc_mode = vc_mode; + + return CMD_SUCCESS; } -static void log_set_nsvc_filter(struct log_target *target, - struct gprs_ns2_vc *nsvc) +DEFUN(cfg_frgre_local_ip, cfg_frgre_local_ip_cmd, + "encapsulation framerelay-gre local-ip " VTY_IPV46_CMD, + ENCAPS_STR "NS over Frame Relay over GRE Encapsulation\n" + "Set the IP address on which we listen for NS/FR/GRE\n" + "IPv4 Address\n" + "IPv6 Address\n") { - if (nsvc) { - target->filter_map |= (1 << LOG_FLT_GB_NSVC); - target->filter_data[LOG_FLT_GB_NSVC] = nsvc; - } else if (target->filter_data[LOG_FLT_GB_NSVC]) { - target->filter_map = ~(1 << LOG_FLT_GB_NSVC); - target->filter_data[LOG_FLT_GB_NSVC] = NULL; - } + osmo_sockaddr_str_from_str2(&priv.frgreaddr, argv[0]); + + return CMD_SUCCESS; } +DEFUN(cfg_frgre_enable, cfg_frgre_enable_cmd, + "encapsulation framerelay-gre enabled (1|0)", + ENCAPS_STR "NS over Frame Relay over GRE Encapsulation\n" + "Enable or disable Frame Relay over GRE\n" + "Enable\n" "Disable\n") +{ + int enabled = atoi(argv[0]); + + priv.frgre = enabled; + + return CMD_SUCCESS; +} + +/* TODO: allow vty to reset/block/unblock nsvc/nsei */ + DEFUN(logging_fltr_nse, logging_fltr_nse_cmd, "logging filter nse nsei <0-65535>", @@ -1617,14 +817,29 @@ return CMD_SUCCESS; } -int gprs_ns2_vty_init(struct gprs_ns2_inst *nsi) +/** + * gprs_ns2_vty_init initialize the vty + * \param[inout] nsi + * \param[in] default_bind set the default address to bind to. Can be NULL. + * \return 0 on success + */ +int gprs_ns2_vty_init(struct gprs_ns2_inst *nsi, + const struct osmo_sockaddr_str *default_bind) { - vty_nsi = nsi; - INIT_LLIST_HEAD(&binds); + static bool vty_elements_installed = false; - vty_fr_network = osmo_fr_network_alloc(nsi); - if (!vty_fr_network) - return -ENOMEM; + vty_nsi = nsi; + memset(&priv, 0, sizeof(struct ns2_vty_priv)); + INIT_LLIST_HEAD(&priv.vtyvc); + priv.vc_mode = GPRS_NS2_VC_MODE_BLOCKRESET; + if (default_bind) + memcpy(&priv.udp, default_bind, sizeof(*default_bind)); + + /* Regression test code may call this function repeatedly, so make sure + * that VTY elements are not duplicated, which would assert. */ + if (vty_elements_installed) + return 0; + vty_elements_installed = true; install_lib_element_ve(&show_ns_cmd); install_lib_element_ve(&show_ns_binds_cmd); @@ -1635,42 +850,152 @@ install_lib_element_ve(&logging_fltr_nsvc_cmd); install_lib_element(ENABLE_NODE, &nsvc_force_unconf_cmd); - install_lib_element(ENABLE_NODE, &nsvc_block_cmd); install_lib_element(CFG_LOG_NODE, &logging_fltr_nse_cmd); install_lib_element(CFG_LOG_NODE, &logging_fltr_nsvc_cmd); install_lib_element(CONFIG_NODE, &cfg_ns_cmd); - install_node(&ns_node, config_write_ns); - /* TODO: convert into osmo timer */ + install_lib_element(L_NS_NODE, &cfg_nse_fr_cmd); + install_lib_element(L_NS_NODE, &cfg_nse_nsvci_cmd); + install_lib_element(L_NS_NODE, &cfg_nse_remoteip_cmd); + install_lib_element(L_NS_NODE, &cfg_nse_remoteport_cmd); + install_lib_element(L_NS_NODE, &cfg_nse_fr_dlci_cmd); + install_lib_element(L_NS_NODE, &cfg_nse_encaps_cmd); + install_lib_element(L_NS_NODE, &cfg_nse_remoterole_cmd); + install_lib_element(L_NS_NODE, &cfg_no_nse_cmd); install_lib_element(L_NS_NODE, &cfg_ns_timer_cmd); - install_lib_element(L_NS_NODE, &cfg_ns_nsei_cmd); - install_lib_element(L_NS_NODE, &cfg_no_ns_nsei_cmd); - install_lib_element(L_NS_NODE, &cfg_ns_bind_cmd); - install_lib_element(L_NS_NODE, &cfg_no_ns_bind_cmd); + install_lib_element(L_NS_NODE, &cfg_nsip_local_ip_cmd); + install_lib_element(L_NS_NODE, &cfg_nsip_local_port_cmd); + install_lib_element(L_NS_NODE, &cfg_nsip_dscp_cmd); + install_lib_element(L_NS_NODE, &cfg_nsip_res_block_unblock_cmd); + install_lib_element(L_NS_NODE, &cfg_frgre_enable_cmd); + install_lib_element(L_NS_NODE, &cfg_frgre_local_ip_cmd); - install_node(&ns_bind_node, config_write_ns_bind); - install_lib_element(L_NS_BIND_NODE, &cfg_ns_bind_listen_cmd); - install_lib_element(L_NS_BIND_NODE, &cfg_no_ns_bind_listen_cmd); - install_lib_element(L_NS_BIND_NODE, &cfg_ns_bind_dscp_cmd); - install_lib_element(L_NS_BIND_NODE, &cfg_no_ns_bind_dscp_cmd); - install_lib_element(L_NS_BIND_NODE, &cfg_ns_bind_ipaccess_cmd); - install_lib_element(L_NS_BIND_NODE, &cfg_no_ns_bind_ipaccess_cmd); - install_lib_element(L_NS_BIND_NODE, &cfg_ns_bind_fr_cmd); - install_lib_element(L_NS_BIND_NODE, &cfg_no_ns_bind_fr_cmd); - /* TODO: accept-ip-sns when SGSN SNS has been implemented */ + /* TODO: nsvc/nsei command to reset states or reset/block/unblock nsei/nsvcs */ - install_node(&ns_nse_node, config_write_ns_nse); - install_lib_element(L_NS_NSE_NODE, &cfg_ns_nse_nsvc_fr_cmd); - install_lib_element(L_NS_NSE_NODE, &cfg_no_ns_nse_nsvci_cmd); - install_lib_element(L_NS_NSE_NODE, &cfg_no_ns_nse_nsvc_fr_dlci_cmd); - install_lib_element(L_NS_NSE_NODE, &cfg_ns_nse_nsvc_udp_cmd); - install_lib_element(L_NS_NSE_NODE, &cfg_no_ns_nse_nsvc_udp_cmd); - install_lib_element(L_NS_NSE_NODE, &cfg_ns_nse_nsvc_ipa_cmd); - install_lib_element(L_NS_NSE_NODE, &cfg_no_ns_nse_nsvc_ipa_cmd); - install_lib_element(L_NS_NSE_NODE, &cfg_ns_nse_ip_sns_cmd); - install_lib_element(L_NS_NSE_NODE, &cfg_no_ns_nse_ip_sns_cmd); + return 0; +} + +/*! + * \brief gprs_ns2_vty_create parse the vty tree into ns nodes + * It has to be in different steps to ensure the bind is created before creating VCs. + * \return 0 on success + */ +int gprs_ns2_vty_create() { + struct ns2_vty_vc *vtyvc; + struct gprs_ns2_vc_bind *bind, *fr; + struct gprs_ns2_nse *nse; + struct gprs_ns2_vc *nsvc; + struct osmo_sockaddr sockaddr; + enum gprs_ns2_dialect dialect = GPRS_NS2_DIALECT_UNDEF; + int rc = 0; + + if (!vty_nsi) + return -1; + + /* create binds, only support a single bind. either FR or UDP */ + if (priv.frgre) { + /* TODO not yet supported !*/ + return -1; + } else { + /* UDP */ + osmo_sockaddr_str_to_sockaddr(&priv.udp, &sockaddr.u.sas); + if (gprs_ns2_ip_bind(vty_nsi, "vtybind", &sockaddr, priv.dscp, &bind)) { + /* TODO: could not bind on the specific address */ + return -1; + } + + bind->accept_ipaccess = priv.vc_mode == GPRS_NS2_VC_MODE_BLOCKRESET; + } + + /* create vcs */ + llist_for_each_entry(vtyvc, &priv.vtyvc, list) { + /* validate settings */ + switch (vtyvc->ll) { + case GPRS_NS2_LL_UDP: + if (priv.vc_mode == GPRS_NS2_VC_MODE_BLOCKRESET) + dialect = GPRS_NS2_DIALECT_IPACCESS; + else + dialect = GPRS_NS2_DIALECT_STATIC_ALIVE; + if (strlen(vtyvc->remote.ip) == 0) { + /* Invalid IP for VC */ + continue; + } + + if (!vtyvc->remote.port) { + /* Invalid port for VC */ + continue; + } + + if (osmo_sockaddr_str_to_sockaddr(&vtyvc->remote, &sockaddr.u.sas)) { + /* Invalid sockaddr for VC */ + continue; + } + break; + case GPRS_NS2_LL_FR: + dialect = GPRS_NS2_DIALECT_STATIC_RESETBLOCK; + break; + case GPRS_NS2_LL_FR_GRE: + dialect = GPRS_NS2_DIALECT_STATIC_RESETBLOCK; + continue; + case GPRS_NS2_LL_UNDEF: + /* should not happen */ + OSMO_ASSERT(false); + } + + nse = gprs_ns2_nse_by_nsei(vty_nsi, vtyvc->nsei); + if (!nse) { + nse = gprs_ns2_create_nse(vty_nsi, vtyvc->nsei, vtyvc->ll, dialect); + if (!nse) { + /* Could not create NSE for VTY */ + continue; + } + } + nse->persistent = true; + + switch (vtyvc->ll) { + case GPRS_NS2_LL_UDP: + nsvc = gprs_ns2_ip_connect(bind, + &sockaddr, + nse, + vtyvc->nsvci); + if (!nsvc) { + /* Could not create NSVC, connect failed */ + continue; + } + nsvc->persistent = true; + break; + case GPRS_NS2_LL_FR: { + if (vty_fr_network == NULL) { + /* TODO: add a switch for BSS/SGSN/gbproxy */ + vty_fr_network = osmo_fr_network_alloc(vty_nsi); + } + fr = gprs_ns2_fr_bind_by_netif( + vty_nsi, + vtyvc->netif); + if (!fr) { + rc = gprs_ns2_fr_bind(vty_nsi, vtyvc->netif, vtyvc->netif, vty_fr_network, vtyvc->fr.role, &fr); + if (rc < 0) { + LOGP(DLNS, LOGL_ERROR, "Can not create fr bind on device %s err: %d\n", vtyvc->netif, rc); + return rc; + } + } + + nsvc = gprs_ns2_fr_connect(fr, nse, vtyvc->nsvci, vtyvc->frdlci); + if (!nsvc) { + /* Could not create NSVC, connect failed */ + continue; + } + nsvc->persistent = true; + break; + } + case GPRS_NS2_LL_FR_GRE: + case GPRS_NS2_LL_UNDEF: + continue; + } + } + return 0; } diff --git a/src/gb/gprs_ns2_vty2.c b/src/gb/gprs_ns2_vty2.c new file mode 100644 index 0000000..31aff3e --- /dev/null +++ b/src/gb/gprs_ns2_vty2.c @@ -0,0 +1,1676 @@ +/*! \file gprs_ns2_vty.c + * VTY interface for our GPRS Networks Service (NS) implementation. */ + +/* (C) 2020 by sysmocom - s.f.m.c. GmbH + * Author: Alexander Couzens + * + * All Rights Reserved + * + * SPDX-License-Identifier: GPL-2.0+ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include +#include +#include +#include + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "gprs_ns2_internal.h" + +#define SHOW_NS_STR "Display information about the NS protocol\n" +#define NSVCI_STR "NS Virtual Connection ID (NS-VCI)\n" +#define DLCI_STR "Data Link connection identifier\n" + +static struct gprs_ns2_inst *vty_nsi = NULL; +static struct osmo_fr_network *vty_fr_network = NULL; +static struct llist_head binds; + +struct vty_bind { + struct llist_head list; + const char *name; + enum gprs_ns2_ll ll; + int dscp; + bool accept_ipaccess; + bool accept_sns; +}; + +/* TODO: this should into osmo timer */ +static const struct value_string gprs_ns_timer_strs[] = { + { 0, "tns-block" }, + { 1, "tns-block-retries" }, + { 2, "tns-reset" }, + { 3, "tns-reset-retries" }, + { 4, "tns-test" }, + { 5, "tns-alive" }, + { 6, "tns-alive-retries" }, + { 7, "tsns-prov" }, + { 8, "tsns-size-retries" }, + { 9, "tsns-config-retries" }, + { 0, NULL } +}; + +const struct value_string vty_fr_role_names[] = { + { FR_ROLE_USER_EQUIPMENT, "fr" }, + { FR_ROLE_NETWORK_EQUIPMENT, "frnet" }, + { 0, NULL } +}; + +const struct value_string vty_ll_names[] = { + { GPRS_NS2_LL_FR, "fr" }, + { GPRS_NS2_LL_FR_GRE, "frgre" }, + { GPRS_NS2_LL_UDP, "udp" }, + { 0, NULL } +}; + +static struct vty_bind *vty_bind_by_name(const char *name) +{ + struct vty_bind *vbind; + llist_for_each_entry(vbind, &binds, list) { + if (!strncmp(vbind->name, name, strlen(vbind->name))) + return vbind; + } + return NULL; +} + +static struct vty_bind *vty_bind_alloc(const char *name) +{ + struct vty_bind *vbind = talloc_zero(vty_nsi, struct vty_bind); + if (!vbind) + return NULL; + + vbind->name = talloc_strdup(vty_nsi, name); + if (!vbind->name) { + talloc_free(vbind); + return NULL; + } + + llist_add(&vbind->list, &binds); + return vbind; +} + +static void vty_bind_free(struct vty_bind *vbind) +{ + if (!vbind) + return; + + llist_del(&vbind->list); +} + +static struct cmd_node ns_node = { + L_NS_NODE, + "%s(config-ns)# ", + 1, +}; + +DEFUN(cfg_ns, cfg_ns_cmd, + "ns", + "Configure the GPRS Network Service") +{ + vty->node = L_NS_NODE; + return CMD_SUCCESS; +} + +DEFUN(cfg_ns_timer, cfg_ns_timer_cmd, + "timer " NS_TIMERS " <0-65535>", + "Network Service Timer\n" + NS_TIMERS_HELP "Timer Value\n") +{ + int idx = get_string_value(gprs_ns_timer_strs, argv[0]); + int val = atoi(argv[1]); + + if (idx < 0 || idx >= ARRAY_SIZE(vty_nsi->timeout)) + return CMD_WARNING; + + vty_nsi->timeout[idx] = val; + + return CMD_SUCCESS; +} + +DEFUN(cfg_ns_nsei, cfg_ns_nsei_cmd, + "nse <0-65535>", + "Persistent NS Entity\n" + "NS Entity ID (NSEI)\n" + ) +{ + struct gprs_ns2_nse *nse; + uint16_t nsei = atoi(argv[0]); + + nse = gprs_ns2_nse_by_nsei(vty_nsi, nsei); + if (!nse) { + nse = gprs_ns2_create_nse(vty_nsi, nsei, GPRS_NS2_LL_UNDEF, GPRS_NS2_DIALECT_UNDEF); + if (!nse) { + vty_out(vty, "Failed to create NSE!%s", VTY_NEWLINE); + return CMD_ERR_INCOMPLETE; + } + nse->persistent = true; + } + + if (!nse->persistent) { + /* TODO: should the dynamic NSE removed? */ + vty_out(vty, "A dynamic NSE with the specified NSEI already exists%s", VTY_NEWLINE); + return CMD_ERR_INCOMPLETE; + } + + vty->node = L_NS_NSE_NODE; + vty->index = nse; + + return CMD_SUCCESS; +} + +DEFUN(cfg_no_ns_nsei, cfg_no_ns_nsei_cmd, + "no nse <0-65535>", + NO_STR + "Delete a Persistent NS Entity\n" + "NS Entity ID (NSEI)\n" + ) +{ + struct gprs_ns2_nse *nse; + uint16_t nsei = atoi(argv[0]); + + nse = gprs_ns2_nse_by_nsei(vty_nsi, nsei); + if (!nse) { + vty_out(vty, "Can not find NS Entity %s%s", argv[0], VTY_NEWLINE); + return CMD_ERR_NOTHING_TODO; + } + + if (!nse->persistent) { + vty_out(vty, "Ignoring non-persistent NS Entity%s", VTY_NEWLINE); + return CMD_WARNING; + } + + vty_out(vty, "Deleting NS Entity %u%s", nse->nsei, VTY_NEWLINE); + gprs_ns2_free_nse(nse); + return CMD_SUCCESS; +} + +/* TODO: add fr/gre */ +DEFUN(cfg_ns_bind, cfg_ns_bind_cmd, + "bind (fr|udp) ID", + "Binding\n" + "Frame Relay\n" "UDP/IP\n" + "a unique identifier for this bind to reference NS-VCs\n" + ) +{ + const char *nstype = argv[0]; + const char *name = argv[1]; + struct vty_bind *vbind; + enum gprs_ns2_ll ll; + int rc; + + rc = get_string_value(vty_ll_names, nstype); + if (rc < 0) + return CMD_WARNING; + ll = (enum gprs_ns2_ll) rc; + + if (!osmo_identifier_valid(name)) { + vty_out(vty, "Invalid ID. The ID should be only alphanumeric.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + vbind = vty_bind_by_name(name); + if (vbind) { + if (vbind->ll != ll) { + vty_out(vty, "A bind with the specified ID already exists with a different type (fr|frgre|udp)!%s", + VTY_NEWLINE); + return CMD_WARNING; + } + } else { + vbind = vty_bind_alloc(name); + if (!vbind) { + vty_out(vty, "Can not create bind - out of memory%s", VTY_NEWLINE); + return CMD_WARNING; + } + vbind->ll = ll; + } + + vty->index = vbind; + vty->node = L_NS_BIND_NODE; + + return CMD_SUCCESS; +} + +DEFUN(cfg_no_ns_bind, cfg_no_ns_bind_cmd, + "no bind ID", + NO_STR + "Delete a binding\n" + "a unique identifier for this bind to reference NS-VCs\n" + ) +{ + struct vty_bind *vbind; + struct gprs_ns2_vc_bind *bind; + const char *name = argv[0]; + + vbind = vty_bind_by_name(name); + if (!vbind) { + vty_out(vty, "bind %s does not exist!%s", name, VTY_NEWLINE); + return CMD_WARNING; + } + vty_bind_free(vbind); + bind = gprs_ns2_bind_by_name(vty_nsi, name); + if (bind) + bind->driver->free_bind(bind); + return CMD_SUCCESS; +} + + +static void config_write_vbind(struct vty *vty, struct vty_bind *vbind) +{ + struct gprs_ns2_vc_bind *bind; + const struct osmo_sockaddr *addr; + struct osmo_sockaddr_str addr_str; + const char *netif, *frrole_str, *llstr; + enum osmo_fr_role frrole; + + llstr = get_value_string_or_null(vty_ll_names, vbind->ll); + if (!llstr) + return; + vty_out(vty, " bind %s %s%s", llstr, vbind->name, VTY_NEWLINE); + + bind = gprs_ns2_bind_by_name(vty_nsi, vbind->name); + switch (vbind->ll) { + case GPRS_NS2_LL_FR: + if (bind) { + netif = gprs_ns2_fr_bind_netif(bind); + if (!netif) + return; + frrole = gprs_ns2_fr_bind_role(bind); + if ((int) frrole == -1) + return; + frrole_str = get_value_string_or_null(vty_fr_role_names, frrole); + if (netif && frrole_str) + vty_out(vty, " fr %s %s%s", netif, frrole_str, VTY_NEWLINE); + } + break; + case GPRS_NS2_LL_UDP: + if (bind) { + addr = gprs_ns2_ip_bind_sockaddr(bind); + if (!osmo_sockaddr_str_from_sockaddr(&addr_str, &addr->u.sas)) { + vty_out(vty, " listen %s %u%s", addr_str.ip, addr_str.port, + VTY_NEWLINE); + } + } + if (vbind->accept_ipaccess) + vty_out(vty, " accept-ipaccess%s", VTY_NEWLINE); + if (vbind->dscp) + vty_out(vty, " dscp %u%s", vbind->dscp, VTY_NEWLINE); + break; + default: + return; + } +} + +static void config_write_nsvc(struct vty *vty, const struct gprs_ns2_vc *nsvc) +{ + const char *netif; + uint16_t dlci; + const struct osmo_sockaddr *addr; + struct osmo_sockaddr_str addr_str; + + switch (nsvc->nse->ll) { + case GPRS_NS2_LL_UNDEF: + break; + case GPRS_NS2_LL_UDP: + switch (nsvc->nse->dialect) { + case GPRS_NS2_DIALECT_IPACCESS: + addr = gprs_ns2_ip_vc_remote(nsvc); + if (!addr) + break; + if (osmo_sockaddr_str_from_sockaddr(&addr_str, &addr->u.sas)) + break; + vty_out(vty, " nsvc ipa %s %s %u nsvci %u%s", + nsvc->bind->name, addr_str.ip, addr_str.port, + nsvc->nsvci, VTY_NEWLINE); + break; + case GPRS_NS2_DIALECT_STATIC_ALIVE: + addr = gprs_ns2_ip_vc_remote(nsvc); + if (!addr) + break; + if (osmo_sockaddr_str_from_sockaddr(&addr_str, &addr->u.sas)) + break; + vty_out(vty, " nsvc udp %s %s %u%s", + nsvc->bind->name, addr_str.ip, addr_str.port, VTY_NEWLINE); + break; + default: + break; + } + break; + case GPRS_NS2_LL_FR: + netif = gprs_ns2_fr_bind_netif(nsvc->bind); + if (!netif) + break; + dlci = gprs_ns2_fr_nsvc_dlci(nsvc); + if (!dlci) + break; + OSMO_ASSERT(nsvc->nsvci_is_valid); + vty_out(vty, " nsvc fr %s dlci %u nsvci %u%s", + netif, dlci, nsvc->nsvci, VTY_NEWLINE); + break; + case GPRS_NS2_LL_FR_GRE: + break; + } +} + +static void _config_write_ns_nse(struct vty *vty, struct gprs_ns2_nse *nse) +{ + struct gprs_ns2_vc *nsvc; + + vty_out(vty, " nse %u%s", nse->nsei, VTY_NEWLINE); + switch (nse->dialect) { + case GPRS_NS2_DIALECT_SNS: + ns2_sns_write_vty(vty, nse); + break; + default: + llist_for_each_entry(nsvc, &nse->nsvc, list) { + config_write_nsvc(vty, nsvc); + } + break; + } +} + +static int config_write_ns(struct vty *vty) +{ + unsigned int i; + + vty_out(vty, "ns%s", VTY_NEWLINE); + + for (i = 0; i < ARRAY_SIZE(vty_nsi->timeout); i++) + vty_out(vty, " timer %s %u%s", + get_value_string(gprs_ns_timer_strs, i), + vty_nsi->timeout[i], VTY_NEWLINE); + + return 0; +} + +static int config_write_ns_nse(struct vty *vty) +{ + struct gprs_ns2_nse *nse; + + llist_for_each_entry(nse, &vty_nsi->nse, list) { + if (!nse->persistent) + continue; + + _config_write_ns_nse(vty, nse); + } + + return 0; +} + +static int config_write_ns_bind(struct vty *vty) +{ + struct vty_bind *vbind; + + llist_for_each_entry(vbind, &binds, list) { + config_write_vbind(vty, vbind); + } + + return 0; +} + +static struct cmd_node ns_bind_node = { + L_NS_BIND_NODE, + "%s(config-ns-bind)# ", + 1, +}; + +DEFUN(cfg_ns_bind_listen, cfg_ns_bind_listen_cmd, + "listen " VTY_IPV46_CMD " <1-65535>", + "Binding\n" + "IPv4 Address\n" "IPv6 Address\n" + "Port\n" + ) +{ + struct vty_bind *vbind = vty->index; + struct gprs_ns2_vc_bind *bind; + + const char *addr_str = argv[0]; + unsigned int port = atoi(argv[1]); + struct osmo_sockaddr_str sockaddr_str; + struct osmo_sockaddr sockaddr; + + if (vbind->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "listen can be only used with UDP bind%s", + VTY_NEWLINE); + return CMD_WARNING; + } + + if (osmo_sockaddr_str_from_str(&sockaddr_str, addr_str, port)) { + vty_out(vty, "Can not parse the Address %s %s%s", argv[0], argv[1], VTY_NEWLINE); + return CMD_WARNING; + } + osmo_sockaddr_str_to_sockaddr(&sockaddr_str, &sockaddr.u.sas); + if (gprs_ns2_ip_bind_by_sockaddr(vty_nsi, &sockaddr)) { + vty_out(vty, "A bind with the specified address already exists!%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (gprs_ns2_ip_bind(vty_nsi, vbind->name, &sockaddr, vbind->dscp, &bind) != 0) { + vty_out(vty, "Failed to create the bind!%s", VTY_NEWLINE); + return CMD_WARNING; + } + + bind->accept_ipaccess = vbind->accept_ipaccess; + bind->accept_sns = vbind->accept_sns; + + return CMD_SUCCESS; +} + +DEFUN(cfg_no_ns_bind_listen, cfg_no_ns_bind_listen_cmd, + "no listen", + NO_STR + "Delete a IP/Port assignment\n" + ) +{ + struct vty_bind *vbind = vty->index; + struct gprs_ns2_vc_bind *bind; + + if (vbind->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "no listen can be only used with UDP bind%s", VTY_NEWLINE); + return CMD_WARNING; + } + + bind = gprs_ns2_bind_by_name(vty_nsi, vbind->name); + if (!bind) + return CMD_ERR_NOTHING_TODO; + + OSMO_ASSERT(bind->ll != GPRS_NS2_LL_UDP); + bind->driver->free_bind(bind); + return CMD_SUCCESS; +} + +DEFUN(cfg_ns_bind_dscp, cfg_ns_bind_dscp_cmd, + "dscp <0-255>", + "Set DSCP/TOS on the UDP socket\n" "DSCP Value\n") +{ + struct vty_bind *vbind = vty->index; + struct gprs_ns2_vc_bind *bind; + uint16_t dscp = atoi(argv[0]); + + if (vbind->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "dscp can be only used with UDP bind%s", + VTY_NEWLINE); + return CMD_WARNING; + } + + vbind->dscp = dscp; + bind = gprs_ns2_bind_by_name(vty_nsi, vbind->name); + if (bind) + gprs_ns2_ip_bind_set_dscp(bind, dscp); + + return CMD_SUCCESS; +} + +DEFUN(cfg_no_ns_bind_dscp, cfg_no_ns_bind_dscp_cmd, + "no dscp", + "Set DSCP/TOS on the UDP socket\n" "DSCP Value\n") +{ + struct vty_bind *vbind = vty->index; + struct gprs_ns2_vc_bind *bind; + uint16_t dscp = 0; + + if (vbind->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "dscp can be only used with UDP bind%s", + VTY_NEWLINE); + return CMD_WARNING; + } + + vbind->dscp = dscp; + bind = gprs_ns2_bind_by_name(vty_nsi, vbind->name); + if (bind) + gprs_ns2_ip_bind_set_dscp(bind, dscp); + + return CMD_SUCCESS; +} + +DEFUN(cfg_ns_bind_ipaccess, cfg_ns_bind_ipaccess_cmd, + "accept-ipaccess", + "Allow to create dynamic NS Entity by NS Reset PDU on UDP (ip.access style)\n" + ) +{ + struct vty_bind *vbind = vty->index; + struct gprs_ns2_vc_bind *bind; + + if (vbind->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "accept-ipaccess can be only used with UDP bind%s", + VTY_NEWLINE); + return CMD_WARNING; + } + + vbind->accept_ipaccess = true; + bind = gprs_ns2_bind_by_name(vty_nsi, vbind->name); + if (bind) + bind->accept_ipaccess = true; + + return CMD_SUCCESS; +} + +DEFUN(cfg_no_ns_bind_ipaccess, cfg_no_ns_bind_ipaccess_cmd, + "no accept-ipaccess", + NO_STR + "Reject NS Reset PDU on UDP (ip.access style)\n" + ) +{ + struct vty_bind *vbind = vty->index; + struct gprs_ns2_vc_bind *bind; + + if (vbind->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "no accept-ipaccess can be only used with UDP bind%s", + VTY_NEWLINE); + return CMD_WARNING; + } + + vbind->accept_ipaccess = false; + bind = gprs_ns2_bind_by_name(vty_nsi, vbind->name); + if (bind) + bind->accept_ipaccess = false; + + return CMD_SUCCESS; +} + + +DEFUN(cfg_ns_bind_fr, cfg_ns_bind_fr_cmd, + "fr NETIF (fr|frnet)", + "frame relay\n" + IFNAME_STR + "fr (user) is used by BSS or SGSN attached to UNI of a FR network\n" + "frnet (network) is used by SGSN if BSS is directly attached\n" + ) +{ + struct vty_bind *vbind = vty->index; + struct gprs_ns2_vc_bind *bind; + const char *netif = argv[0]; + const char *role = argv[1]; + + int rc = 0; + enum osmo_fr_role frrole; + + if (vbind->ll != GPRS_NS2_LL_FR) { + vty_out(vty, "fr can be only used with frame relay bind%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (!strcmp(role, "fr")) + frrole = FR_ROLE_USER_EQUIPMENT; + else if (!strcmp(role, "frnet")) + frrole = FR_ROLE_NETWORK_EQUIPMENT; + else + return CMD_WARNING; + + bind = gprs_ns2_fr_bind_by_netif(vty_nsi, netif); + if (bind) { + vty_out(vty, "Interface %s already used.%s", netif, VTY_NEWLINE); + return CMD_WARNING; + } + + rc = gprs_ns2_fr_bind(vty_nsi, vbind->name, netif, vty_fr_network, frrole, &bind); + if (rc < 0) { + LOGP(DLNS, LOGL_ERROR, "Failed to bind interface %s on fr. Err: %d\n", netif, rc); + return CMD_WARNING; + } + + return CMD_SUCCESS; +} + +DEFUN(cfg_no_ns_bind_fr, cfg_no_ns_bind_fr_cmd, + "no fr NETIF", + NO_STR + "Delete a frame relay link\n" + "Delete a frame relay link\n" + IFNAME_STR + ) +{ + struct vty_bind *vbind = vty->index; + struct gprs_ns2_vc_bind *bind; + const char *netif = argv[0]; + + if (vbind->ll != GPRS_NS2_LL_FR) { + vty_out(vty, "fr can be only used with frame relay bind%s", + VTY_NEWLINE); + return CMD_WARNING; + } + + bind = gprs_ns2_fr_bind_by_netif(vty_nsi, netif); + if (!bind) { + vty_out(vty, "Interface not found.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (strcmp(bind->name, vbind->name)) { + vty_out(vty, "The specified interface is not bound to this bind.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + bind->driver->free_bind(bind); + return CMD_SUCCESS; +} + + +static struct cmd_node ns_nse_node = { + L_NS_NSE_NODE, + "%s(config-ns-nse)# ", + 1, +}; + +DEFUN(cfg_ns_nse_nsvc_fr, cfg_ns_nse_nsvc_fr_cmd, + "nsvc fr NETIF dlci <16-1007> nsvci <0-65535>", + "NS Virtual Connection\n" + "frame relay\n" + "frame relay interface. Must be registered via fr vty\n" + NSVCI_STR + NSVCI_STR + DLCI_STR + DLCI_STR + ) +{ + struct gprs_ns2_vc_bind *bind; + struct gprs_ns2_vc *nsvc; + struct gprs_ns2_nse *nse = vty->index; + const char *netif = argv[0]; + uint16_t dlci = atoi(argv[1]); + uint16_t nsvci = atoi(argv[2]); + bool dialect_modified = false; + bool ll_modified = false; + + if (nse->ll != GPRS_NS2_LL_FR && nse->ll != GPRS_NS2_LL_UNDEF) { + vty_out(vty, "Can not mix NS-VC with different link layer%s", VTY_NEWLINE); + goto err; + } + + if (nse->dialect != GPRS_NS2_DIALECT_STATIC_RESETBLOCK && nse->dialect != GPRS_NS2_DIALECT_UNDEF) { + vty_out(vty, "Can not mix NS-VC with different dialects%s", VTY_NEWLINE); + goto err; + } + + if (nse->ll == GPRS_NS2_LL_UNDEF) { + nse->ll = GPRS_NS2_LL_FR; + ll_modified = true; + } + + if (nse->dialect == GPRS_NS2_DIALECT_UNDEF) { + nse->dialect = GPRS_NS2_DIALECT_STATIC_RESETBLOCK; + dialect_modified = true; + } + + + bind = gprs_ns2_fr_bind_by_netif(vty_nsi, netif); + if (!bind) { + vty_out(vty, "Can not find fr interface \"%s\". Please configure it via fr vty.%s", + netif, VTY_NEWLINE); + goto err; + } + + if (gprs_ns2_fr_nsvc_by_dlci(bind, dlci)) { + vty_out(vty, "A NS-VC with the specified DLCI already exist!%s", VTY_NEWLINE); + goto err; + } + + if (gprs_ns2_nsvc_by_nsvci(vty_nsi, nsvci)) { + vty_out(vty, "A NS-VC with the specified NS-VCI already exist!%s", VTY_NEWLINE); + goto err; + } + + nsvc = gprs_ns2_fr_connect(bind, nse, nsvci, dlci); + if (!nsvc) { + /* Could not create NS-VC, connect failed */ + vty_out(vty, "Failed to create the NS-VC%s", VTY_NEWLINE); + goto err; + } + nsvc->persistent = true; + return CMD_SUCCESS; + +err: + if (ll_modified) + nse->ll = GPRS_NS2_LL_UNDEF; + if (dialect_modified) + nse->dialect = GPRS_NS2_DIALECT_UNDEF; + + return CMD_WARNING; +} + +DEFUN(cfg_no_ns_nse_nsvc_fr_dlci, cfg_no_ns_nse_nsvc_fr_dlci_cmd, + "no nsvc fr NETIF dlci <16-1007>", + NO_STR + "Delete frame relay NS-VC\n" + "frame relay\n" + "frame relay interface. Must be registered via fr vty\n" + DLCI_STR + DLCI_STR + ) +{ + struct gprs_ns2_vc_bind *bind; + struct gprs_ns2_vc *nsvc; + struct gprs_ns2_nse *nse = vty->index; + const char *netif = argv[0]; + uint16_t dlci = atoi(argv[1]); + + if (nse->ll != GPRS_NS2_LL_FR) { + vty_out(vty, "This NSE doesn't support frame relay.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + bind = gprs_ns2_fr_bind_by_netif(vty_nsi, netif); + if (!bind) { + vty_out(vty, "Can not find fr interface \"%s\"%s", + netif, VTY_NEWLINE); + return CMD_ERR_NOTHING_TODO; + } + + nsvc = gprs_ns2_fr_nsvc_by_dlci(bind, dlci); + if (!nsvc) { + vty_out(vty, "Can not find a NS-VC on fr interface %s with dlci %u%s", + netif, dlci, VTY_NEWLINE); + return CMD_WARNING; + } + + if (nse != nsvc->nse) { + vty_out(vty, "The specified NS-VC is not a part of the NSE %u!%s" + "To remove this NS-VC go to the vty node 'nse %u'%s", + nse->nsei, VTY_NEWLINE, + nsvc->nse->nsei, VTY_NEWLINE); + return CMD_WARNING; + } + + gprs_ns2_free_nsvc(nsvc); + if (llist_empty(&nse->nsvc)) { + nse->ll = GPRS_NS2_LL_UNDEF; + nse->dialect = GPRS_NS2_DIALECT_UNDEF; + } + + return CMD_SUCCESS; +} + +DEFUN(cfg_no_ns_nse_nsvci, cfg_no_ns_nse_nsvci_cmd, + "no nsvc nsvci <0-65535>", + NO_STR + "Delete NSVC\n" + NSVCI_STR + NSVCI_STR + ) +{ + struct gprs_ns2_vc *nsvc; + struct gprs_ns2_nse *nse = vty->index; + uint16_t nsvci = atoi(argv[0]); + + switch (nse->dialect) { + case GPRS_NS2_DIALECT_SNS: + case GPRS_NS2_DIALECT_STATIC_ALIVE: + vty_out(vty, "NSE doesn't support NSVCI.%s", VTY_NEWLINE); + return CMD_WARNING; + case GPRS_NS2_DIALECT_UNDEF: + vty_out(vty, "No NSVCs configured%s", VTY_NEWLINE); + return CMD_WARNING; + case GPRS_NS2_DIALECT_IPACCESS: + case GPRS_NS2_DIALECT_STATIC_RESETBLOCK: + break; + } + + nsvc = gprs_ns2_nsvc_by_nsvci(vty_nsi, nsvci); + if (!nsvc) { + vty_out(vty, "Can not find NS-VC with NS-VCI %u%s", nsvci, VTY_NEWLINE); + return CMD_WARNING; + } + + if (nse != nsvc->nse) { + vty_out(vty, "NS-VC with NS-VCI %u is not part of this NSE!%s", + nsvci, VTY_NEWLINE); + return CMD_WARNING; + } + + gprs_ns2_free_nsvc(nsvc); + if (llist_empty(&nse->nsvc)) { + nse->ll = GPRS_NS2_LL_UNDEF; + nse->dialect = GPRS_NS2_DIALECT_UNDEF; + } + + return CMD_SUCCESS; +} + +DEFUN(cfg_ns_nse_nsvc_udp, cfg_ns_nse_nsvc_udp_cmd, + "nsvc udp BIND " VTY_IPV46_CMD " <1-65535>", + "NS Virtual Connection\n" + "NS over UDP\n" + "A unique bind identifier created by ns bind\n" + "Remote IPv4 Address\n" "Remote IPv6 Address\n" + "Remote UDP Port\n" + ) +{ + struct gprs_ns2_vc_bind *bind; + struct gprs_ns2_vc *nsvc; + struct gprs_ns2_nse *nse = vty->index; + bool dialect_modified = false; + bool ll_modified = false; + + const char *bind_name = argv[0]; + struct osmo_sockaddr_str remote_str; + struct osmo_sockaddr remote; + uint16_t port = atoi(argv[2]); + + if (nse->ll == GPRS_NS2_LL_UNDEF) { + nse->ll = GPRS_NS2_LL_UDP; + ll_modified = true; + } + + if (nse->dialect == GPRS_NS2_DIALECT_UNDEF) { + nse->dialect = GPRS_NS2_DIALECT_STATIC_ALIVE; + dialect_modified = true; + } + + if (nse->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "Can not mix NS-VC with different link layer%s", VTY_NEWLINE); + goto err; + } + + if (nse->dialect != GPRS_NS2_DIALECT_STATIC_ALIVE) { + vty_out(vty, "Can not mix NS-VC with different dialects%s", VTY_NEWLINE); + goto err; + } + + if (osmo_sockaddr_str_from_str(&remote_str, argv[1], port)) { + vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); + goto err; + } + + if (osmo_sockaddr_str_to_sockaddr(&remote_str, &remote.u.sas)) { + vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); + goto err; + } + + bind = gprs_ns2_bind_by_name(vty_nsi, bind_name); + if (!bind) { + vty_out(vty, "Can not find bind with name %s%s", + bind_name, VTY_NEWLINE); + goto err; + } + + if (bind->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "Bind %s is not an UDP bind.%s", + bind_name, VTY_NEWLINE); + goto err; + } + + nsvc = gprs_ns2_ip_connect(bind, &remote, nse, 0); + if (!nsvc) { + vty_out(vty, "Can not create NS-VC.%s", VTY_NEWLINE); + goto err; + } + nsvc->persistent = true; + + return CMD_SUCCESS; + +err: + if (ll_modified) + nse->ll = GPRS_NS2_LL_UNDEF; + if (dialect_modified) + nse->dialect = GPRS_NS2_DIALECT_UNDEF; + return CMD_WARNING; +} + +DEFUN(cfg_no_ns_nse_nsvc_udp, cfg_no_ns_nse_nsvc_udp_cmd, + "no nsvc udp BIND " VTY_IPV46_CMD " <1-65535>", + NO_STR + "Delete a NS Virtual Connection\n" + "NS over UDP\n" + "A unique bind identifier created by ns bind\n" + "Remote IPv4 Address\n" "Remote IPv6 Address\n" + "Remote UDP Port\n" + ) +{ + struct gprs_ns2_vc_bind *bind; + struct gprs_ns2_vc *nsvc; + struct gprs_ns2_nse *nse = vty->index; + const char *bind_name = argv[0]; + struct osmo_sockaddr_str remote_str; + struct osmo_sockaddr remote; + uint16_t port = atoi(argv[2]); + + if (nse->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "This NSE doesn't support UDP.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (nse->dialect != GPRS_NS2_DIALECT_STATIC_ALIVE) { + vty_out(vty, "This NSE doesn't support UDP with dialect static alive.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + bind = gprs_ns2_bind_by_name(vty_nsi, bind_name); + if (!bind) { + vty_out(vty, "Can not find bind with name %s%s", + bind_name, VTY_NEWLINE); + return CMD_WARNING; + } + + if (bind->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "Bind %s is not an UDP bind.%s", + bind_name, VTY_NEWLINE); + return CMD_WARNING; + } + + if (osmo_sockaddr_str_from_str(&remote_str, argv[1], port)) { + vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (osmo_sockaddr_str_to_sockaddr(&remote_str, &remote.u.sas)) { + vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + nsvc = gprs_ns2_nsvc_by_sockaddr_bind(bind, &remote); + if (!nsvc) { + vty_out(vty, "Can not find NS-VC with remote %s:%u%s", + remote_str.ip, remote_str.port, VTY_NEWLINE); + return CMD_WARNING; + } + + if (!nsvc->persistent) { + vty_out(vty, "NS-VC with remote %s:%u is a dynamic NS-VC. Not configured by vty.%s", + remote_str.ip, remote_str.port, VTY_NEWLINE); + return CMD_WARNING; + } + + if (nsvc->nse != nse) { + vty_out(vty, "NS-VC is not part of this NSE!%s", VTY_NEWLINE); + return CMD_WARNING; + } + + gprs_ns2_free_nsvc(nsvc); + if (llist_empty(&nse->nsvc)) { + nse->ll = GPRS_NS2_LL_UNDEF; + nse->dialect = GPRS_NS2_DIALECT_UNDEF; + } + + return CMD_SUCCESS; +} + +DEFUN(cfg_ns_nse_nsvc_ipa, cfg_ns_nse_nsvc_ipa_cmd, + "nsvc ipa BIND " VTY_IPV46_CMD " <1-65535> nsvci <0-65535>" , + "NS Virtual Connection\n" + "NS over UDP ip.access style (uses RESET/BLOCK)\n" + "A unique bind identifier created by ns bind\n" + "Remote IPv4 Address\n" "Remote IPv6 Address\n" + "Remote UDP Port\n" + NSVCI_STR + NSVCI_STR + ) +{ + struct gprs_ns2_vc_bind *bind; + struct gprs_ns2_vc *nsvc; + struct gprs_ns2_nse *nse = vty->index; + bool dialect_modified = false; + bool ll_modified = false; + + const char *bind_name = argv[0]; + struct osmo_sockaddr_str remote_str; + struct osmo_sockaddr remote; + uint16_t port = atoi(argv[2]); + uint16_t nsvci = atoi(argv[3]); + + if (nse->ll == GPRS_NS2_LL_UNDEF) { + nse->ll = GPRS_NS2_LL_UDP; + ll_modified = true; + } + + if (nse->dialect == GPRS_NS2_DIALECT_UNDEF) { + nse->dialect = GPRS_NS2_DIALECT_IPACCESS; + dialect_modified = true; + } + + if (nse->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "Can not mix NS-VC with different link layer%s", VTY_NEWLINE); + goto err; + } + + if (nse->dialect != GPRS_NS2_DIALECT_IPACCESS) { + vty_out(vty, "Can not mix NS-VC with different dialects%s", VTY_NEWLINE); + goto err; + } + + if (osmo_sockaddr_str_from_str(&remote_str, argv[1], port)) { + vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); + goto err; + } + + if (osmo_sockaddr_str_to_sockaddr(&remote_str, &remote.u.sas)) { + vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); + goto err; + } + + bind = gprs_ns2_bind_by_name(vty_nsi, bind_name); + if (!bind) { + vty_out(vty, "Can not find bind with name %s%s", + bind_name, VTY_NEWLINE); + goto err; + } + + if (bind->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "Bind %s is not an UDP bind.%s", + bind_name, VTY_NEWLINE); + goto err; + } + + nsvc = gprs_ns2_ip_connect(bind, &remote, nse, nsvci); + if (!nsvc) { + vty_out(vty, "Can not create NS-VC.%s", VTY_NEWLINE); + goto err; + } + nsvc->persistent = true; + + return CMD_SUCCESS; + +err: + if (ll_modified) + nse->ll = GPRS_NS2_LL_UNDEF; + if (dialect_modified) + nse->dialect = GPRS_NS2_DIALECT_UNDEF; + return CMD_WARNING; +} + +DEFUN(cfg_no_ns_nse_nsvc_ipa, cfg_no_ns_nse_nsvc_ipa_cmd, + "no nsvc ipa BIND " VTY_IPV46_CMD " <1-65535> nsvci <0-65535>", + NO_STR + "Delete a NS Virtual Connection\n" + "NS over UDP\n" + "A unique bind identifier created by ns bind\n" + "Remote IPv4 Address\n" "Remote IPv6 Address\n" + "Remote UDP Port\n" + NSVCI_STR + NSVCI_STR + ) +{ + struct gprs_ns2_vc_bind *bind; + struct gprs_ns2_vc *nsvc; + struct gprs_ns2_nse *nse = vty->index; + const char *bind_name = argv[0]; + struct osmo_sockaddr_str remote_str; + struct osmo_sockaddr remote; + uint16_t port = atoi(argv[2]); + uint16_t nsvci = atoi(argv[3]); + + if (nse->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "This NSE doesn't support UDP.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (nse->dialect != GPRS_NS2_DIALECT_IPACCESS) { + vty_out(vty, "This NSE doesn't support UDP with dialect ipaccess.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + bind = gprs_ns2_bind_by_name(vty_nsi, bind_name); + if (!bind) { + vty_out(vty, "Can not find bind with name %s%s", + bind_name, VTY_NEWLINE); + return CMD_WARNING; + } + + if (bind->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "Bind %s is not an UDP bind.%s", + bind_name, VTY_NEWLINE); + return CMD_WARNING; + } + + if (osmo_sockaddr_str_from_str(&remote_str, argv[1], port)) { + vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (osmo_sockaddr_str_to_sockaddr(&remote_str, &remote.u.sas)) { + vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + nsvc = gprs_ns2_nsvc_by_sockaddr_bind(bind, &remote); + if (!nsvc) { + vty_out(vty, "Can not find NS-VC with remote %s:%u%s", + remote_str.ip, remote_str.port, VTY_NEWLINE); + return CMD_WARNING; + } + + if (!nsvc->persistent) { + vty_out(vty, "NS-VC with remote %s:%u is a dynamic NS-VC. Not configured by vty.%s", + remote_str.ip, remote_str.port, VTY_NEWLINE); + return CMD_WARNING; + } + + if (nsvc->nse != nse) { + vty_out(vty, "NS-VC is not part of this NSE!%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (!nsvc->nsvci_is_valid) { + vty_out(vty, "NS-VC doesn't have a nsvci!%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (nsvc->nsvci != nsvci) { + vty_out(vty, "NS-VC has a different nsvci (%u)!%s", + nsvc->nsvci, VTY_NEWLINE); + return CMD_WARNING; + } + + gprs_ns2_free_nsvc(nsvc); + if (llist_empty(&nse->nsvc)) { + nse->ll = GPRS_NS2_LL_UNDEF; + nse->dialect = GPRS_NS2_DIALECT_UNDEF; + } + + return CMD_SUCCESS; +} + +DEFUN(cfg_ns_nse_ip_sns, cfg_ns_nse_ip_sns_cmd, + "ip-sns " VTY_IPV46_CMD " <1-65535>", + "SNS Initial Endpoint\n" + "SGSN IPv4 Address\n" "SGSN IPv6 Address\n" + "SGSN UDP Port\n" + ) +{ + struct gprs_ns2_nse *nse = vty->index; + bool dialect_modified = false; + bool ll_modified = false; + int rc; + + /* argv[0] */ + struct osmo_sockaddr_str remote_str; + struct osmo_sockaddr remote; + uint16_t port = atoi(argv[1]); + + if (nse->ll == GPRS_NS2_LL_UNDEF) { + nse->ll = GPRS_NS2_LL_UDP; + ll_modified = true; + } + + if (nse->dialect == GPRS_NS2_DIALECT_UNDEF) { + char sns[16]; + snprintf(sns, sizeof(sns), "NSE%05u-SNS", nse->nsei); + nse->bss_sns_fi = ns2_sns_bss_fsm_alloc(nse, sns); + if (!nse->bss_sns_fi) + goto err; + nse->dialect = GPRS_NS2_DIALECT_SNS; + dialect_modified = true; + } + + if (nse->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "Can not mix NS-VC with different link layer%s", VTY_NEWLINE); + goto err; + } + + if (nse->dialect != GPRS_NS2_DIALECT_SNS) { + vty_out(vty, "Can not mix NS-VC with different dialects%s", VTY_NEWLINE); + goto err; + } + + if (osmo_sockaddr_str_from_str(&remote_str, argv[0], port)) { + vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); + goto err; + } + + if (osmo_sockaddr_str_to_sockaddr(&remote_str, &remote.u.sas)) { + vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); + goto err; + } + + rc = gprs_ns2_sns_add_endpoint(nse, &remote); + switch (rc) { + case 0: + return CMD_SUCCESS; + case -EADDRINUSE: + vty_out(vty, "Specified SNS endpoint already part of the NSE.%s", VTY_NEWLINE); + return CMD_WARNING; + default: + vty_out(vty, "Can not add specified SNS endpoint.%s", VTY_NEWLINE); + return CMD_WARNING; + } + +err: + if (ll_modified) + nse->ll = GPRS_NS2_LL_UNDEF; + if (dialect_modified) + nse->dialect = GPRS_NS2_DIALECT_UNDEF; + return CMD_WARNING; +} + +DEFUN(cfg_no_ns_nse_ip_sns, cfg_no_ns_nse_ip_sns_cmd, + "no ip-sns " VTY_IPV46_CMD " <1-65535>", + NO_STR + "Delete a SNS Initial Endpoint\n" + "SGSN IPv4 Address\n" "SGSN IPv6 Address\n" + "SGSN UDP Port\n" + ) +{ + struct gprs_ns2_nse *nse = vty->index; + struct osmo_sockaddr_str remote_str; /* argv[0] */ + struct osmo_sockaddr remote; + uint16_t port = atoi(argv[1]); + int count; + + if (nse->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "This NSE doesn't support UDP.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (nse->dialect != GPRS_NS2_DIALECT_SNS) { + vty_out(vty, "This NSE doesn't support UDP with dialect ip-sns.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (osmo_sockaddr_str_from_str(&remote_str, argv[0], port)) { + vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (osmo_sockaddr_str_to_sockaddr(&remote_str, &remote.u.sas)) { + vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (gprs_ns2_sns_del_endpoint(nse, &remote)) { + vty_out(vty, "Can not remove specified SNS endpoint.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + count = gprs_ns2_sns_count(nse); + if (count > 0) { + /* there are other sns endpoints */ + return CMD_SUCCESS; + } else if (count < 0) { + OSMO_ASSERT(0); + } else { + /* clean up nse to allow other nsvc commands */ + osmo_fsm_inst_term(nse->bss_sns_fi, OSMO_FSM_TERM_REQUEST, NULL); + nse->bss_sns_fi = NULL; + nse->ll = GPRS_NS2_LL_UNDEF; + nse->dialect = GPRS_NS2_DIALECT_UNDEF; + } + + return CMD_SUCCESS; +} + + +/* non-config commands */ +static void dump_nsvc(struct vty *vty, struct gprs_ns2_vc *nsvc, bool stats) +{ + char nsvci_str[32]; + + if (nsvc->nsvci_is_valid) + snprintf(nsvci_str, sizeof(nsvci_str), "%05u", nsvc->nsvci); + else + snprintf(nsvci_str, sizeof(nsvci_str), "none"); + + vty_out(vty, " NSVCI %s: %s %s data_weight=%u sig_weight=%u %s%s", nsvci_str, + osmo_fsm_inst_state_name(nsvc->fi), + nsvc->persistent ? "PERSIST" : "DYNAMIC", + nsvc->data_weight, nsvc->sig_weight, + gprs_ns2_ll_str(nsvc), VTY_NEWLINE); + + if (stats) { + vty_out_rate_ctr_group(vty, " ", nsvc->ctrg); + vty_out_stat_item_group(vty, " ", nsvc->statg); + } +} + +static void dump_nse(struct vty *vty, const struct gprs_ns2_nse *nse, bool stats, bool persistent_only) +{ + struct gprs_ns2_vc *nsvc; + + vty_out(vty, "NSEI %05u: %s, %s%s", nse->nsei, gprs_ns2_lltype_str(nse->ll), + nse->alive ? "ALIVE" : "DEAD", VTY_NEWLINE); + + ns2_sns_dump_vty(vty, " ", nse, stats); + llist_for_each_entry(nsvc, &nse->nsvc, list) { + if (persistent_only) { + if (nsvc->persistent) + dump_nsvc(vty, nsvc, stats); + } else { + dump_nsvc(vty, nsvc, stats); + } + } +} + +static void dump_bind(struct vty *vty, const struct gprs_ns2_vc_bind *bind, bool stats) +{ + if (bind->dump_vty) + bind->dump_vty(bind, vty, stats); +} + +static void dump_ns_bind(struct vty *vty, const struct gprs_ns2_inst *nsi, bool stats) +{ + struct gprs_ns2_vc_bind *bind; + + llist_for_each_entry(bind, &nsi->binding, list) { + dump_bind(vty, bind, stats); + } +} + + +static void dump_ns_entities(struct vty *vty, const struct gprs_ns2_inst *nsi, bool stats, bool persistent_only) +{ + struct gprs_ns2_nse *nse; + + llist_for_each_entry(nse, &nsi->nse, list) { + dump_nse(vty, nse, stats, persistent_only); + } +} + +/* Backwards compatibility, among other things for the TestVTYGbproxy which expects + * 'show ns' to output something about binds */ +DEFUN_HIDDEN(show_ns, show_ns_cmd, "show ns", + SHOW_STR SHOW_NS_STR) +{ + dump_ns_entities(vty, vty_nsi, false, false); + dump_ns_bind(vty, vty_nsi, false); + return CMD_SUCCESS; +} + + +DEFUN(show_ns_binds, show_ns_binds_cmd, "show ns binds [stats]", + SHOW_STR SHOW_NS_STR + "Display information about the NS protocol binds\n" + "Include statistic\n") +{ + bool stats = false; + if (argc > 0) + stats = true; + + dump_ns_bind(vty, vty_nsi, stats); + return CMD_SUCCESS; +} + +DEFUN(show_ns_entities, show_ns_entities_cmd, "show ns entities [stats]", + SHOW_STR SHOW_NS_STR + "Display information about the NS protocol entities (NSEs)\n" + "Include statistics\n") +{ + bool stats = false; + if (argc > 0) + stats = true; + + dump_ns_entities(vty, vty_nsi, stats, false); + return CMD_SUCCESS; +} + +DEFUN(show_ns_pers, show_ns_pers_cmd, "show ns persistent", + SHOW_STR SHOW_NS_STR + "Show only persistent NS\n") +{ + dump_ns_entities(vty, vty_nsi, true, true); + return CMD_SUCCESS; +} + +DEFUN(show_nse, show_nse_cmd, "show ns (nsei|nsvc) <0-65535> [stats]", + SHOW_STR SHOW_NS_STR + "Select one NSE by its NSE Identifier\n" + "Select one NSE by its NS-VC Identifier\n" + "The Identifier of selected type\n" + "Include Statistics\n") +{ + struct gprs_ns2_inst *nsi = vty_nsi; + struct gprs_ns2_nse *nse; + struct gprs_ns2_vc *nsvc; + uint16_t id = atoi(argv[1]); + bool show_stats = false; + + if (argc >= 3) + show_stats = true; + + if (!strcmp(argv[0], "nsei")) { + nse = gprs_ns2_nse_by_nsei(nsi, id); + if (!nse) { + return CMD_WARNING; + } + + dump_nse(vty, nse, show_stats, false); + } else { + nsvc = gprs_ns2_nsvc_by_nsvci(nsi, id); + + if (!nsvc) { + vty_out(vty, "No such NS Entity%s", VTY_NEWLINE); + return CMD_WARNING; + } + + dump_nsvc(vty, nsvc, show_stats); + } + + return CMD_SUCCESS; +} + +static int nsvc_force_unconf_cb(struct gprs_ns2_vc *nsvc, void *ctx) +{ + ns2_vc_force_unconfigured(nsvc); + return 0; +} + +DEFUN_HIDDEN(nsvc_force_unconf, nsvc_force_unconf_cmd, + "nsvc nsei <0-65535> force-unconfigured", + "NS Virtual Connection\n" + "The NSEI\n" + "Reset the NSVCs back to initial state\n" + ) +{ + struct gprs_ns2_inst *nsi = vty_nsi; + struct gprs_ns2_nse *nse; + + uint16_t id = atoi(argv[0]); + + nse = gprs_ns2_nse_by_nsei(nsi, id); + if (!nse) { + vty_out(vty, "Could not find NSE for NSEI %u%s", id, VTY_NEWLINE); + return CMD_WARNING; + } + + if (!nse->persistent) { + gprs_ns2_free_nse(nse); + } else if (nse->dialect == GPRS_NS2_DIALECT_SNS) { + gprs_ns2_free_nsvcs(nse); + } else { + /* Perform the operation for all nsvc */ + gprs_ns2_nse_foreach_nsvc(nse, nsvc_force_unconf_cb, NULL); + } + + return CMD_SUCCESS; +} + +DEFUN(nsvc_block, nsvc_block_cmd, + "nsvc <0-65535> (block|unblock)", + "NS Virtual Connection\n" + NSVCI_STR + "Block a NSVC. As cause code O&M intervention will be used.\n" + "Unblock a NSVC. As cause code O&M intervention will be used.\n") +{ + struct gprs_ns2_inst *nsi = vty_nsi; + struct gprs_ns2_vc *nsvc; + + uint16_t id = atoi(argv[0]); + + nsvc = gprs_ns2_nsvc_by_nsvci(nsi, id); + if (!nsvc) { + vty_out(vty, "Could not find NSVCI %05u%s", id, VTY_NEWLINE); + return CMD_WARNING; + } + + if (!strcmp(argv[1], "block")) { + ns2_vc_block(nsvc); + } else { + ns2_vc_unblock(nsvc); + } + + return CMD_SUCCESS; +} + +static void log_set_nse_filter(struct log_target *target, + struct gprs_ns2_nse *nse) +{ + if (nse) { + target->filter_map |= (1 << LOG_FLT_GB_NSE); + target->filter_data[LOG_FLT_GB_NSE] = nse; + } else if (target->filter_data[LOG_FLT_GB_NSE]) { + target->filter_map = ~(1 << LOG_FLT_GB_NSE); + target->filter_data[LOG_FLT_GB_NSE] = NULL; + } +} + +static void log_set_nsvc_filter(struct log_target *target, + struct gprs_ns2_vc *nsvc) +{ + if (nsvc) { + target->filter_map |= (1 << LOG_FLT_GB_NSVC); + target->filter_data[LOG_FLT_GB_NSVC] = nsvc; + } else if (target->filter_data[LOG_FLT_GB_NSVC]) { + target->filter_map = ~(1 << LOG_FLT_GB_NSVC); + target->filter_data[LOG_FLT_GB_NSVC] = NULL; + } +} + +DEFUN(logging_fltr_nse, + logging_fltr_nse_cmd, + "logging filter nse nsei <0-65535>", + LOGGING_STR FILTER_STR + "Filter based on NS Entity\n" + "Identify NSE by NSEI\n" + "Numeric identifier\n") +{ + struct log_target *tgt; + struct gprs_ns2_nse *nse; + uint16_t id = atoi(argv[0]); + + log_tgt_mutex_lock(); + tgt = osmo_log_vty2tgt(vty); + if (!tgt) { + log_tgt_mutex_unlock(); + return CMD_WARNING; + } + + nse = gprs_ns2_nse_by_nsei(vty_nsi, id); + if (!nse) { + vty_out(vty, "No NSE by that identifier%s", VTY_NEWLINE); + log_tgt_mutex_unlock(); + return CMD_WARNING; + } + + log_set_nse_filter(tgt, nse); + log_tgt_mutex_unlock(); + return CMD_SUCCESS; +} + +/* TODO: add filter for single connection by description */ +DEFUN(logging_fltr_nsvc, + logging_fltr_nsvc_cmd, + "logging filter nsvc nsvci <0-65535>", + LOGGING_STR FILTER_STR + "Filter based on NS Virtual Connection\n" + "Identify NS-VC by NSVCI\n" + "Numeric identifier\n") +{ + struct log_target *tgt; + struct gprs_ns2_vc *nsvc; + uint16_t id = atoi(argv[0]); + + log_tgt_mutex_lock(); + tgt = osmo_log_vty2tgt(vty); + if (!tgt) { + log_tgt_mutex_unlock(); + return CMD_WARNING; + } + + nsvc = gprs_ns2_nsvc_by_nsvci(vty_nsi, id); + if (!nsvc) { + vty_out(vty, "No NS-VC by that identifier%s", VTY_NEWLINE); + log_tgt_mutex_unlock(); + return CMD_WARNING; + } + + log_set_nsvc_filter(tgt, nsvc); + log_tgt_mutex_unlock(); + return CMD_SUCCESS; +} + +int gprs_ns2_vty2_init(struct gprs_ns2_inst *nsi) +{ + vty_nsi = nsi; + INIT_LLIST_HEAD(&binds); + + vty_fr_network = osmo_fr_network_alloc(nsi); + if (!vty_fr_network) + return -ENOMEM; + + install_lib_element_ve(&show_ns_cmd); + install_lib_element_ve(&show_ns_binds_cmd); + install_lib_element_ve(&show_ns_entities_cmd); + install_lib_element_ve(&show_ns_pers_cmd); + install_lib_element_ve(&show_nse_cmd); + install_lib_element_ve(&logging_fltr_nse_cmd); + install_lib_element_ve(&logging_fltr_nsvc_cmd); + + install_lib_element(ENABLE_NODE, &nsvc_force_unconf_cmd); + install_lib_element(ENABLE_NODE, &nsvc_block_cmd); + + install_lib_element(CFG_LOG_NODE, &logging_fltr_nse_cmd); + install_lib_element(CFG_LOG_NODE, &logging_fltr_nsvc_cmd); + + install_lib_element(CONFIG_NODE, &cfg_ns_cmd); + + install_node(&ns_node, config_write_ns); + /* TODO: convert into osmo timer */ + install_lib_element(L_NS_NODE, &cfg_ns_timer_cmd); + install_lib_element(L_NS_NODE, &cfg_ns_nsei_cmd); + install_lib_element(L_NS_NODE, &cfg_no_ns_nsei_cmd); + install_lib_element(L_NS_NODE, &cfg_ns_bind_cmd); + install_lib_element(L_NS_NODE, &cfg_no_ns_bind_cmd); + + install_node(&ns_bind_node, config_write_ns_bind); + install_lib_element(L_NS_BIND_NODE, &cfg_ns_bind_listen_cmd); + install_lib_element(L_NS_BIND_NODE, &cfg_no_ns_bind_listen_cmd); + install_lib_element(L_NS_BIND_NODE, &cfg_ns_bind_dscp_cmd); + install_lib_element(L_NS_BIND_NODE, &cfg_no_ns_bind_dscp_cmd); + install_lib_element(L_NS_BIND_NODE, &cfg_ns_bind_ipaccess_cmd); + install_lib_element(L_NS_BIND_NODE, &cfg_no_ns_bind_ipaccess_cmd); + install_lib_element(L_NS_BIND_NODE, &cfg_ns_bind_fr_cmd); + install_lib_element(L_NS_BIND_NODE, &cfg_no_ns_bind_fr_cmd); + /* TODO: accept-ip-sns when SGSN SNS has been implemented */ + + install_node(&ns_nse_node, config_write_ns_nse); + install_lib_element(L_NS_NSE_NODE, &cfg_ns_nse_nsvc_fr_cmd); + install_lib_element(L_NS_NSE_NODE, &cfg_no_ns_nse_nsvci_cmd); + install_lib_element(L_NS_NSE_NODE, &cfg_no_ns_nse_nsvc_fr_dlci_cmd); + install_lib_element(L_NS_NSE_NODE, &cfg_ns_nse_nsvc_udp_cmd); + install_lib_element(L_NS_NSE_NODE, &cfg_no_ns_nse_nsvc_udp_cmd); + install_lib_element(L_NS_NSE_NODE, &cfg_ns_nse_nsvc_ipa_cmd); + install_lib_element(L_NS_NSE_NODE, &cfg_no_ns_nse_nsvc_ipa_cmd); + install_lib_element(L_NS_NSE_NODE, &cfg_ns_nse_ip_sns_cmd); + install_lib_element(L_NS_NSE_NODE, &cfg_no_ns_nse_ip_sns_cmd); + + return 0; +} diff --git a/src/gb/libosmogb.map b/src/gb/libosmogb.map index fa05b97..c6bbc78 100644 --- a/src/gb/libosmogb.map +++ b/src/gb/libosmogb.map @@ -185,7 +185,9 @@ gprs_ns2_start_alive_all_nsvcs; gprs_ns2_sns_add_endpoint; gprs_ns2_sns_del_endpoint; +gprs_ns2_vty_create; gprs_ns2_vty_init; +gprs_ns2_vty2_init; gprs_nsvc_create2; gprs_nsvc_delete; diff --git a/utils/osmo-ns-dummy.c b/utils/osmo-ns-dummy.c index 33949d3..58e8152 100644 --- a/utils/osmo-ns-dummy.c +++ b/utils/osmo-ns-dummy.c @@ -230,7 +230,7 @@ } gprs_ns2_dynamic_create_nse(nsi, true); - gprs_ns2_vty_init(nsi); + gprs_ns2_vty2_init(nsi); rc = vty_read_config_file(config_file, NULL); if (rc < 0 && config_given) { fprintf(stderr, "Failed to parse the config file: '%s'\n", -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22513 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I8a2aaf74a47de8f4f0adb37d16426d199788e3fe Gerrit-Change-Number: 22513 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 12:42:38 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 28 Jan 2021 12:42:38 +0000 Subject: Change in libosmocore[master]: Revert "gprs_ns2: drop gprs_ns2_vty, rename vty2 -> vty" In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22513 ) Change subject: Revert "gprs_ns2: drop gprs_ns2_vty, rename vty2 -> vty" ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22513 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I8a2aaf74a47de8f4f0adb37d16426d199788e3fe Gerrit-Change-Number: 22513 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 28 Jan 2021 12:42:38 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 12:42:41 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 28 Jan 2021 12:42:41 +0000 Subject: Change in libosmocore[master]: Revert "gprs_ns2: drop gprs_ns2_vty, rename vty2 -> vty" In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22513 ) Change subject: Revert "gprs_ns2: drop gprs_ns2_vty, rename vty2 -> vty" ...................................................................... Revert "gprs_ns2: drop gprs_ns2_vty, rename vty2 -> vty" This reverts commit b306094448564e27bc031b519396f1b0e294b231. It was merged too quickly and patches for projects using related features are not yet prepared. Change-Id: I8a2aaf74a47de8f4f0adb37d16426d199788e3fe --- M include/osmocom/gprs/gprs_ns2.h M src/gb/Makefile.am M src/gb/gprs_ns2_vty.c A src/gb/gprs_ns2_vty2.c M src/gb/libosmogb.map M utils/osmo-ns-dummy.c 6 files changed, 2,317 insertions(+), 1,309 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/include/osmocom/gprs/gprs_ns2.h b/include/osmocom/gprs/gprs_ns2.h index 24f45c9..df682db 100644 --- a/include/osmocom/gprs/gprs_ns2.h +++ b/include/osmocom/gprs/gprs_ns2.h @@ -261,6 +261,11 @@ const char *gprs_ns2_nsvc_state_name(struct gprs_ns2_vc *nsvc); /* vty */ -int gprs_ns2_vty_init(struct gprs_ns2_inst *nsi); +int gprs_ns2_vty_init(struct gprs_ns2_inst *nsi, + const struct osmo_sockaddr_str *default_bind); +int gprs_ns2_vty_create(); + +/* vty 2 */ +int gprs_ns2_vty2_init(struct gprs_ns2_inst *nsi); /*! @} */ diff --git a/src/gb/Makefile.am b/src/gb/Makefile.am index d0db814..031971b 100644 --- a/src/gb/Makefile.am +++ b/src/gb/Makefile.am @@ -25,7 +25,7 @@ gprs_bssgp.c gprs_bssgp_util.c gprs_bssgp_vty.c gprs_bssgp_rim.c \ gprs_bssgp_bss.c \ gprs_ns2.c gprs_ns2_udp.c gprs_ns2_frgre.c gprs_ns2_fr.c gprs_ns2_vc_fsm.c gprs_ns2_sns.c \ - gprs_ns2_message.c gprs_ns2_vty.c \ + gprs_ns2_message.c gprs_ns2_vty.c gprs_ns2_vty2.c \ gprs_bssgp2.c bssgp_bvc_fsm.c \ common_vty.c frame_relay.c diff --git a/src/gb/gprs_ns2_vty.c b/src/gb/gprs_ns2_vty.c index b6ae5b4..f803655 100644 --- a/src/gb/gprs_ns2_vty.c +++ b/src/gb/gprs_ns2_vty.c @@ -1,7 +1,9 @@ /*! \file gprs_ns2_vty.c * VTY interface for our GPRS Networks Service (NS) implementation. */ -/* (C) 2020 by sysmocom - s.f.m.c. GmbH +/* (C) 2009-2014 by Harald Welte + * (C) 2016-2017 by sysmocom - s.f.m.c. GmbH + * (C) 2020 by sysmocom - s.f.m.c. GmbH * Author: Alexander Couzens * * All Rights Reserved @@ -31,44 +33,67 @@ #include #include +#include #include #include -#include -#include -#include -#include #include +#include +#include +#include #include +#include #include #include #include #include +#include #include #include -#include #include -#include +#include #include "gprs_ns2_internal.h" #define SHOW_NS_STR "Display information about the NS protocol\n" -#define NSVCI_STR "NS Virtual Connection ID (NS-VCI)\n" -#define DLCI_STR "Data Link connection identifier\n" -static struct gprs_ns2_inst *vty_nsi = NULL; -static struct osmo_fr_network *vty_fr_network = NULL; -static struct llist_head binds; - -struct vty_bind { - struct llist_head list; - const char *name; - enum gprs_ns2_ll ll; +struct ns2_vty_priv { + /* global listen */ + struct osmo_sockaddr_str udp; + struct osmo_sockaddr_str frgreaddr; int dscp; - bool accept_ipaccess; - bool accept_sns; + enum gprs_ns2_vc_mode vc_mode; + bool frgre; + + struct llist_head vtyvc; }; -/* TODO: this should into osmo timer */ +struct ns2_vty_vc { + struct llist_head list; + + struct osmo_sockaddr_str remote; + enum gprs_ns2_ll ll; + + /* old vty code doesnt support multiple NSVCI per NSEI */ + uint16_t nsei; + uint16_t nsvci; + uint16_t frdlci; + + struct { + enum osmo_fr_role role; + } fr; + + char netif[IF_NAMESIZE]; + + bool remote_end_is_sgsn; + bool configured; +}; + +static struct gprs_ns2_inst *vty_nsi = NULL; +static struct ns2_vty_priv priv; +static struct osmo_fr_network *vty_fr_network = NULL; + +/* FIXME: this should go to some common file as it is copied + * in vty_interface.c of the BSC */ static const struct value_string gprs_ns_timer_strs[] = { { 0, "tns-block" }, { 1, "tns-block-retries" }, @@ -83,51 +108,28 @@ { 0, NULL } }; -const struct value_string vty_fr_role_names[] = { - { FR_ROLE_USER_EQUIPMENT, "fr" }, - { FR_ROLE_NETWORK_EQUIPMENT, "frnet" }, - { 0, NULL } -}; - -const struct value_string vty_ll_names[] = { - { GPRS_NS2_LL_FR, "fr" }, - { GPRS_NS2_LL_FR_GRE, "frgre" }, - { GPRS_NS2_LL_UDP, "udp" }, - { 0, NULL } -}; - -static struct vty_bind *vty_bind_by_name(const char *name) +static void log_set_nse_filter(struct log_target *target, + struct gprs_ns2_nse *nse) { - struct vty_bind *vbind; - llist_for_each_entry(vbind, &binds, list) { - if (!strncmp(vbind->name, name, strlen(vbind->name))) - return vbind; + if (nse) { + target->filter_map |= (1 << LOG_FLT_GB_NSE); + target->filter_data[LOG_FLT_GB_NSE] = nse; + } else if (target->filter_data[LOG_FLT_GB_NSE]) { + target->filter_map = ~(1 << LOG_FLT_GB_NSE); + target->filter_data[LOG_FLT_GB_NSE] = NULL; } - return NULL; } -static struct vty_bind *vty_bind_alloc(const char *name) +static void log_set_nsvc_filter(struct log_target *target, + struct gprs_ns2_vc *nsvc) { - struct vty_bind *vbind = talloc_zero(vty_nsi, struct vty_bind); - if (!vbind) - return NULL; - - vbind->name = talloc_strdup(vty_nsi, name); - if (!vbind->name) { - talloc_free(vbind); - return NULL; + if (nsvc) { + target->filter_map |= (1 << LOG_FLT_GB_NSVC); + target->filter_data[LOG_FLT_GB_NSVC] = nsvc; + } else if (target->filter_data[LOG_FLT_GB_NSVC]) { + target->filter_map = ~(1 << LOG_FLT_GB_NSVC); + target->filter_data[LOG_FLT_GB_NSVC] = NULL; } - - llist_add(&vbind->list, &binds); - return vbind; -} - -static void vty_bind_free(struct vty_bind *vbind) -{ - if (!vbind) - return; - - llist_del(&vbind->list); } static struct cmd_node ns_node = { @@ -136,6 +138,130 @@ 1, }; +static struct ns2_vty_vc *vtyvc_alloc(uint16_t nsei) { + struct ns2_vty_vc *vtyvc = talloc_zero(vty_nsi, struct ns2_vty_vc); + if (!vtyvc) + return vtyvc; + + vtyvc->nsei = nsei; + + llist_add(&vtyvc->list, &priv.vtyvc); + + return vtyvc; +} + +static void ns2_vc_free(struct ns2_vty_vc *vtyvc) { + if (!vtyvc) + return; + + llist_del(&vtyvc->list); + talloc_free(vtyvc); +} + +static struct ns2_vty_vc *vtyvc_by_nsei(uint16_t nsei, bool alloc_missing) { + struct ns2_vty_vc *vtyvc; + + llist_for_each_entry(vtyvc, &priv.vtyvc, list) { + if (vtyvc->nsei == nsei) + return vtyvc; + } + + if (!alloc_missing) + return NULL; + + vtyvc = vtyvc_alloc(nsei); + if (!vtyvc) + return vtyvc; + + vtyvc->nsei = nsei; + return vtyvc; +} + +static int config_write_ns(struct vty *vty) +{ + struct ns2_vty_vc *vtyvc; + unsigned int i; + struct osmo_sockaddr_str sockstr; + + vty_out(vty, "ns%s", VTY_NEWLINE); + + /* global configuration must be written first, as some of it may be + * relevant when creating the NSE/NSVC later below */ + + vty_out(vty, " encapsulation framerelay-gre enabled %u%s", + priv.frgre ? 1 : 0, VTY_NEWLINE); + + if (priv.frgre) { + if (strlen(priv.frgreaddr.ip)) { + vty_out(vty, " encapsulation framerelay-gre local-ip %s%s", + sockstr.ip, VTY_NEWLINE); + } + } else { + if (strlen(priv.udp.ip)) { + vty_out(vty, " encapsulation udp local-ip %s%s", + priv.udp.ip, VTY_NEWLINE); + } + + if (priv.udp.port) + vty_out(vty, " encapsulation udp local-port %u%s", + priv.udp.port, VTY_NEWLINE); + } + + if (priv.dscp) + vty_out(vty, " encapsulation udp dscp %d%s", + priv.dscp, VTY_NEWLINE); + + vty_out(vty, " encapsulation udp use-reset-block-unblock %s%s", + priv.vc_mode == GPRS_NS2_VC_MODE_BLOCKRESET ? "enabled" : "disabled", VTY_NEWLINE); + + llist_for_each_entry(vtyvc, &priv.vtyvc, list) { + vty_out(vty, " nse %u nsvci %u%s", + vtyvc->nsei, vtyvc->nsvci, VTY_NEWLINE); + + vty_out(vty, " nse %u remote-role %s%s", + vtyvc->nsei, vtyvc->remote_end_is_sgsn ? "sgsn" : "bss", + VTY_NEWLINE); + + switch (vtyvc->ll) { + case GPRS_NS2_LL_UDP: + vty_out(vty, " nse %u encapsulation udp%s", vtyvc->nsei, VTY_NEWLINE); + vty_out(vty, " nse %u remote-ip %s%s", + vtyvc->nsei, + vtyvc->remote.ip, + VTY_NEWLINE); + vty_out(vty, " nse %u remote-port %u%s", + vtyvc->nsei, vtyvc->remote.port, + VTY_NEWLINE); + break; + case GPRS_NS2_LL_FR_GRE: + vty_out(vty, " nse %u encapsulation framerelay-gre%s", + vtyvc->nsei, VTY_NEWLINE); + vty_out(vty, " nse %u remote-ip %s%s", + vtyvc->nsei, + vtyvc->remote.ip, + VTY_NEWLINE); + vty_out(vty, " nse %u fr-dlci %u%s", + vtyvc->nsei, vtyvc->frdlci, + VTY_NEWLINE); + break; + case GPRS_NS2_LL_FR: + vty_out(vty, " nse %u fr %s dlci %u%s", + vtyvc->nsei, vtyvc->netif, vtyvc->frdlci, + VTY_NEWLINE); + break; + default: + break; + } + } + + for (i = 0; i < ARRAY_SIZE(vty_nsi->timeout); i++) + vty_out(vty, " timer %s %u%s", + get_value_string(gprs_ns_timer_strs, i), + vty_nsi->timeout[i], VTY_NEWLINE); + + return CMD_SUCCESS; +} + DEFUN(cfg_ns, cfg_ns_cmd, "ns", "Configure the GPRS Network Service") @@ -144,1183 +270,6 @@ return CMD_SUCCESS; } -DEFUN(cfg_ns_timer, cfg_ns_timer_cmd, - "timer " NS_TIMERS " <0-65535>", - "Network Service Timer\n" - NS_TIMERS_HELP "Timer Value\n") -{ - int idx = get_string_value(gprs_ns_timer_strs, argv[0]); - int val = atoi(argv[1]); - - if (idx < 0 || idx >= ARRAY_SIZE(vty_nsi->timeout)) - return CMD_WARNING; - - vty_nsi->timeout[idx] = val; - - return CMD_SUCCESS; -} - -DEFUN(cfg_ns_nsei, cfg_ns_nsei_cmd, - "nse <0-65535>", - "Persistent NS Entity\n" - "NS Entity ID (NSEI)\n" - ) -{ - struct gprs_ns2_nse *nse; - uint16_t nsei = atoi(argv[0]); - - nse = gprs_ns2_nse_by_nsei(vty_nsi, nsei); - if (!nse) { - nse = gprs_ns2_create_nse(vty_nsi, nsei, GPRS_NS2_LL_UNDEF, GPRS_NS2_DIALECT_UNDEF); - if (!nse) { - vty_out(vty, "Failed to create NSE!%s", VTY_NEWLINE); - return CMD_ERR_INCOMPLETE; - } - nse->persistent = true; - } - - if (!nse->persistent) { - /* TODO: should the dynamic NSE removed? */ - vty_out(vty, "A dynamic NSE with the specified NSEI already exists%s", VTY_NEWLINE); - return CMD_ERR_INCOMPLETE; - } - - vty->node = L_NS_NSE_NODE; - vty->index = nse; - - return CMD_SUCCESS; -} - -DEFUN(cfg_no_ns_nsei, cfg_no_ns_nsei_cmd, - "no nse <0-65535>", - NO_STR - "Delete a Persistent NS Entity\n" - "NS Entity ID (NSEI)\n" - ) -{ - struct gprs_ns2_nse *nse; - uint16_t nsei = atoi(argv[0]); - - nse = gprs_ns2_nse_by_nsei(vty_nsi, nsei); - if (!nse) { - vty_out(vty, "Can not find NS Entity %s%s", argv[0], VTY_NEWLINE); - return CMD_ERR_NOTHING_TODO; - } - - if (!nse->persistent) { - vty_out(vty, "Ignoring non-persistent NS Entity%s", VTY_NEWLINE); - return CMD_WARNING; - } - - vty_out(vty, "Deleting NS Entity %u%s", nse->nsei, VTY_NEWLINE); - gprs_ns2_free_nse(nse); - return CMD_SUCCESS; -} - -/* TODO: add fr/gre */ -DEFUN(cfg_ns_bind, cfg_ns_bind_cmd, - "bind (fr|udp) ID", - "Binding\n" - "Frame Relay\n" "UDP/IP\n" - "a unique identifier for this bind to reference NS-VCs\n" - ) -{ - const char *nstype = argv[0]; - const char *name = argv[1]; - struct vty_bind *vbind; - enum gprs_ns2_ll ll; - int rc; - - rc = get_string_value(vty_ll_names, nstype); - if (rc < 0) - return CMD_WARNING; - ll = (enum gprs_ns2_ll) rc; - - if (!osmo_identifier_valid(name)) { - vty_out(vty, "Invalid ID. The ID should be only alphanumeric.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - vbind = vty_bind_by_name(name); - if (vbind) { - if (vbind->ll != ll) { - vty_out(vty, "A bind with the specified ID already exists with a different type (fr|frgre|udp)!%s", - VTY_NEWLINE); - return CMD_WARNING; - } - } else { - vbind = vty_bind_alloc(name); - if (!vbind) { - vty_out(vty, "Can not create bind - out of memory%s", VTY_NEWLINE); - return CMD_WARNING; - } - vbind->ll = ll; - } - - vty->index = vbind; - vty->node = L_NS_BIND_NODE; - - return CMD_SUCCESS; -} - -DEFUN(cfg_no_ns_bind, cfg_no_ns_bind_cmd, - "no bind ID", - NO_STR - "Delete a binding\n" - "a unique identifier for this bind to reference NS-VCs\n" - ) -{ - struct vty_bind *vbind; - struct gprs_ns2_vc_bind *bind; - const char *name = argv[0]; - - vbind = vty_bind_by_name(name); - if (!vbind) { - vty_out(vty, "bind %s does not exist!%s", name, VTY_NEWLINE); - return CMD_WARNING; - } - vty_bind_free(vbind); - bind = gprs_ns2_bind_by_name(vty_nsi, name); - if (bind) - bind->driver->free_bind(bind); - return CMD_SUCCESS; -} - - -static void config_write_vbind(struct vty *vty, struct vty_bind *vbind) -{ - struct gprs_ns2_vc_bind *bind; - const struct osmo_sockaddr *addr; - struct osmo_sockaddr_str addr_str; - const char *netif, *frrole_str, *llstr; - enum osmo_fr_role frrole; - - llstr = get_value_string_or_null(vty_ll_names, vbind->ll); - if (!llstr) - return; - vty_out(vty, " bind %s %s%s", llstr, vbind->name, VTY_NEWLINE); - - bind = gprs_ns2_bind_by_name(vty_nsi, vbind->name); - switch (vbind->ll) { - case GPRS_NS2_LL_FR: - if (bind) { - netif = gprs_ns2_fr_bind_netif(bind); - if (!netif) - return; - frrole = gprs_ns2_fr_bind_role(bind); - if ((int) frrole == -1) - return; - frrole_str = get_value_string_or_null(vty_fr_role_names, frrole); - if (netif && frrole_str) - vty_out(vty, " fr %s %s%s", netif, frrole_str, VTY_NEWLINE); - } - break; - case GPRS_NS2_LL_UDP: - if (bind) { - addr = gprs_ns2_ip_bind_sockaddr(bind); - if (!osmo_sockaddr_str_from_sockaddr(&addr_str, &addr->u.sas)) { - vty_out(vty, " listen %s %u%s", addr_str.ip, addr_str.port, - VTY_NEWLINE); - } - } - if (vbind->accept_ipaccess) - vty_out(vty, " accept-ipaccess%s", VTY_NEWLINE); - if (vbind->dscp) - vty_out(vty, " dscp %u%s", vbind->dscp, VTY_NEWLINE); - break; - default: - return; - } -} - -static void config_write_nsvc(struct vty *vty, const struct gprs_ns2_vc *nsvc) -{ - const char *netif; - uint16_t dlci; - const struct osmo_sockaddr *addr; - struct osmo_sockaddr_str addr_str; - - switch (nsvc->nse->ll) { - case GPRS_NS2_LL_UNDEF: - break; - case GPRS_NS2_LL_UDP: - switch (nsvc->nse->dialect) { - case GPRS_NS2_DIALECT_IPACCESS: - addr = gprs_ns2_ip_vc_remote(nsvc); - if (!addr) - break; - if (osmo_sockaddr_str_from_sockaddr(&addr_str, &addr->u.sas)) - break; - vty_out(vty, " nsvc ipa %s %s %u nsvci %u%s", - nsvc->bind->name, addr_str.ip, addr_str.port, - nsvc->nsvci, VTY_NEWLINE); - break; - case GPRS_NS2_DIALECT_STATIC_ALIVE: - addr = gprs_ns2_ip_vc_remote(nsvc); - if (!addr) - break; - if (osmo_sockaddr_str_from_sockaddr(&addr_str, &addr->u.sas)) - break; - vty_out(vty, " nsvc udp %s %s %u%s", - nsvc->bind->name, addr_str.ip, addr_str.port, VTY_NEWLINE); - break; - default: - break; - } - break; - case GPRS_NS2_LL_FR: - netif = gprs_ns2_fr_bind_netif(nsvc->bind); - if (!netif) - break; - dlci = gprs_ns2_fr_nsvc_dlci(nsvc); - if (!dlci) - break; - OSMO_ASSERT(nsvc->nsvci_is_valid); - vty_out(vty, " nsvc fr %s dlci %u nsvci %u%s", - netif, dlci, nsvc->nsvci, VTY_NEWLINE); - break; - case GPRS_NS2_LL_FR_GRE: - break; - } -} - -static void _config_write_ns_nse(struct vty *vty, struct gprs_ns2_nse *nse) -{ - struct gprs_ns2_vc *nsvc; - - vty_out(vty, " nse %u%s", nse->nsei, VTY_NEWLINE); - switch (nse->dialect) { - case GPRS_NS2_DIALECT_SNS: - ns2_sns_write_vty(vty, nse); - break; - default: - llist_for_each_entry(nsvc, &nse->nsvc, list) { - config_write_nsvc(vty, nsvc); - } - break; - } -} - -static int config_write_ns(struct vty *vty) -{ - unsigned int i; - - vty_out(vty, "ns%s", VTY_NEWLINE); - - for (i = 0; i < ARRAY_SIZE(vty_nsi->timeout); i++) - vty_out(vty, " timer %s %u%s", - get_value_string(gprs_ns_timer_strs, i), - vty_nsi->timeout[i], VTY_NEWLINE); - - return 0; -} - -static int config_write_ns_nse(struct vty *vty) -{ - struct gprs_ns2_nse *nse; - - llist_for_each_entry(nse, &vty_nsi->nse, list) { - if (!nse->persistent) - continue; - - _config_write_ns_nse(vty, nse); - } - - return 0; -} - -static int config_write_ns_bind(struct vty *vty) -{ - struct vty_bind *vbind; - - llist_for_each_entry(vbind, &binds, list) { - config_write_vbind(vty, vbind); - } - - return 0; -} - -static struct cmd_node ns_bind_node = { - L_NS_BIND_NODE, - "%s(config-ns-bind)# ", - 1, -}; - -DEFUN(cfg_ns_bind_listen, cfg_ns_bind_listen_cmd, - "listen " VTY_IPV46_CMD " <1-65535>", - "Binding\n" - "IPv4 Address\n" "IPv6 Address\n" - "Port\n" - ) -{ - struct vty_bind *vbind = vty->index; - struct gprs_ns2_vc_bind *bind; - - const char *addr_str = argv[0]; - unsigned int port = atoi(argv[1]); - struct osmo_sockaddr_str sockaddr_str; - struct osmo_sockaddr sockaddr; - - if (vbind->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "listen can be only used with UDP bind%s", - VTY_NEWLINE); - return CMD_WARNING; - } - - if (osmo_sockaddr_str_from_str(&sockaddr_str, addr_str, port)) { - vty_out(vty, "Can not parse the Address %s %s%s", argv[0], argv[1], VTY_NEWLINE); - return CMD_WARNING; - } - osmo_sockaddr_str_to_sockaddr(&sockaddr_str, &sockaddr.u.sas); - if (gprs_ns2_ip_bind_by_sockaddr(vty_nsi, &sockaddr)) { - vty_out(vty, "A bind with the specified address already exists!%s", VTY_NEWLINE); - return CMD_WARNING; - } - - if (gprs_ns2_ip_bind(vty_nsi, vbind->name, &sockaddr, vbind->dscp, &bind) != 0) { - vty_out(vty, "Failed to create the bind!%s", VTY_NEWLINE); - return CMD_WARNING; - } - - bind->accept_ipaccess = vbind->accept_ipaccess; - bind->accept_sns = vbind->accept_sns; - - return CMD_SUCCESS; -} - -DEFUN(cfg_no_ns_bind_listen, cfg_no_ns_bind_listen_cmd, - "no listen", - NO_STR - "Delete a IP/Port assignment\n" - ) -{ - struct vty_bind *vbind = vty->index; - struct gprs_ns2_vc_bind *bind; - - if (vbind->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "no listen can be only used with UDP bind%s", VTY_NEWLINE); - return CMD_WARNING; - } - - bind = gprs_ns2_bind_by_name(vty_nsi, vbind->name); - if (!bind) - return CMD_ERR_NOTHING_TODO; - - OSMO_ASSERT(bind->ll != GPRS_NS2_LL_UDP); - bind->driver->free_bind(bind); - return CMD_SUCCESS; -} - -DEFUN(cfg_ns_bind_dscp, cfg_ns_bind_dscp_cmd, - "dscp <0-255>", - "Set DSCP/TOS on the UDP socket\n" "DSCP Value\n") -{ - struct vty_bind *vbind = vty->index; - struct gprs_ns2_vc_bind *bind; - uint16_t dscp = atoi(argv[0]); - - if (vbind->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "dscp can be only used with UDP bind%s", - VTY_NEWLINE); - return CMD_WARNING; - } - - vbind->dscp = dscp; - bind = gprs_ns2_bind_by_name(vty_nsi, vbind->name); - if (bind) - gprs_ns2_ip_bind_set_dscp(bind, dscp); - - return CMD_SUCCESS; -} - -DEFUN(cfg_no_ns_bind_dscp, cfg_no_ns_bind_dscp_cmd, - "no dscp", - "Set DSCP/TOS on the UDP socket\n" "DSCP Value\n") -{ - struct vty_bind *vbind = vty->index; - struct gprs_ns2_vc_bind *bind; - uint16_t dscp = 0; - - if (vbind->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "dscp can be only used with UDP bind%s", - VTY_NEWLINE); - return CMD_WARNING; - } - - vbind->dscp = dscp; - bind = gprs_ns2_bind_by_name(vty_nsi, vbind->name); - if (bind) - gprs_ns2_ip_bind_set_dscp(bind, dscp); - - return CMD_SUCCESS; -} - -DEFUN(cfg_ns_bind_ipaccess, cfg_ns_bind_ipaccess_cmd, - "accept-ipaccess", - "Allow to create dynamic NS Entity by NS Reset PDU on UDP (ip.access style)\n" - ) -{ - struct vty_bind *vbind = vty->index; - struct gprs_ns2_vc_bind *bind; - - if (vbind->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "accept-ipaccess can be only used with UDP bind%s", - VTY_NEWLINE); - return CMD_WARNING; - } - - vbind->accept_ipaccess = true; - bind = gprs_ns2_bind_by_name(vty_nsi, vbind->name); - if (bind) - bind->accept_ipaccess = true; - - return CMD_SUCCESS; -} - -DEFUN(cfg_no_ns_bind_ipaccess, cfg_no_ns_bind_ipaccess_cmd, - "no accept-ipaccess", - NO_STR - "Reject NS Reset PDU on UDP (ip.access style)\n" - ) -{ - struct vty_bind *vbind = vty->index; - struct gprs_ns2_vc_bind *bind; - - if (vbind->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "no accept-ipaccess can be only used with UDP bind%s", - VTY_NEWLINE); - return CMD_WARNING; - } - - vbind->accept_ipaccess = false; - bind = gprs_ns2_bind_by_name(vty_nsi, vbind->name); - if (bind) - bind->accept_ipaccess = false; - - return CMD_SUCCESS; -} - - -DEFUN(cfg_ns_bind_fr, cfg_ns_bind_fr_cmd, - "fr NETIF (fr|frnet)", - "frame relay\n" - IFNAME_STR - "fr (user) is used by BSS or SGSN attached to UNI of a FR network\n" - "frnet (network) is used by SGSN if BSS is directly attached\n" - ) -{ - struct vty_bind *vbind = vty->index; - struct gprs_ns2_vc_bind *bind; - const char *netif = argv[0]; - const char *role = argv[1]; - - int rc = 0; - enum osmo_fr_role frrole; - - if (vbind->ll != GPRS_NS2_LL_FR) { - vty_out(vty, "fr can be only used with frame relay bind%s", VTY_NEWLINE); - return CMD_WARNING; - } - - if (!strcmp(role, "fr")) - frrole = FR_ROLE_USER_EQUIPMENT; - else if (!strcmp(role, "frnet")) - frrole = FR_ROLE_NETWORK_EQUIPMENT; - else - return CMD_WARNING; - - bind = gprs_ns2_fr_bind_by_netif(vty_nsi, netif); - if (bind) { - vty_out(vty, "Interface %s already used.%s", netif, VTY_NEWLINE); - return CMD_WARNING; - } - - rc = gprs_ns2_fr_bind(vty_nsi, vbind->name, netif, vty_fr_network, frrole, &bind); - if (rc < 0) { - LOGP(DLNS, LOGL_ERROR, "Failed to bind interface %s on fr. Err: %d\n", netif, rc); - return CMD_WARNING; - } - - return CMD_SUCCESS; -} - -DEFUN(cfg_no_ns_bind_fr, cfg_no_ns_bind_fr_cmd, - "no fr NETIF", - NO_STR - "Delete a frame relay link\n" - "Delete a frame relay link\n" - IFNAME_STR - ) -{ - struct vty_bind *vbind = vty->index; - struct gprs_ns2_vc_bind *bind; - const char *netif = argv[0]; - - if (vbind->ll != GPRS_NS2_LL_FR) { - vty_out(vty, "fr can be only used with frame relay bind%s", - VTY_NEWLINE); - return CMD_WARNING; - } - - bind = gprs_ns2_fr_bind_by_netif(vty_nsi, netif); - if (!bind) { - vty_out(vty, "Interface not found.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - if (strcmp(bind->name, vbind->name)) { - vty_out(vty, "The specified interface is not bound to this bind.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - bind->driver->free_bind(bind); - return CMD_SUCCESS; -} - - -static struct cmd_node ns_nse_node = { - L_NS_NSE_NODE, - "%s(config-ns-nse)# ", - 1, -}; - -DEFUN(cfg_ns_nse_nsvc_fr, cfg_ns_nse_nsvc_fr_cmd, - "nsvc fr NETIF dlci <16-1007> nsvci <0-65535>", - "NS Virtual Connection\n" - "frame relay\n" - "frame relay interface. Must be registered via fr vty\n" - NSVCI_STR - NSVCI_STR - DLCI_STR - DLCI_STR - ) -{ - struct gprs_ns2_vc_bind *bind; - struct gprs_ns2_vc *nsvc; - struct gprs_ns2_nse *nse = vty->index; - const char *netif = argv[0]; - uint16_t dlci = atoi(argv[1]); - uint16_t nsvci = atoi(argv[2]); - bool dialect_modified = false; - bool ll_modified = false; - - if (nse->ll != GPRS_NS2_LL_FR && nse->ll != GPRS_NS2_LL_UNDEF) { - vty_out(vty, "Can not mix NS-VC with different link layer%s", VTY_NEWLINE); - goto err; - } - - if (nse->dialect != GPRS_NS2_DIALECT_STATIC_RESETBLOCK && nse->dialect != GPRS_NS2_DIALECT_UNDEF) { - vty_out(vty, "Can not mix NS-VC with different dialects%s", VTY_NEWLINE); - goto err; - } - - if (nse->ll == GPRS_NS2_LL_UNDEF) { - nse->ll = GPRS_NS2_LL_FR; - ll_modified = true; - } - - if (nse->dialect == GPRS_NS2_DIALECT_UNDEF) { - nse->dialect = GPRS_NS2_DIALECT_STATIC_RESETBLOCK; - dialect_modified = true; - } - - - bind = gprs_ns2_fr_bind_by_netif(vty_nsi, netif); - if (!bind) { - vty_out(vty, "Can not find fr interface \"%s\". Please configure it via fr vty.%s", - netif, VTY_NEWLINE); - goto err; - } - - if (gprs_ns2_fr_nsvc_by_dlci(bind, dlci)) { - vty_out(vty, "A NS-VC with the specified DLCI already exist!%s", VTY_NEWLINE); - goto err; - } - - if (gprs_ns2_nsvc_by_nsvci(vty_nsi, nsvci)) { - vty_out(vty, "A NS-VC with the specified NS-VCI already exist!%s", VTY_NEWLINE); - goto err; - } - - nsvc = gprs_ns2_fr_connect(bind, nse, nsvci, dlci); - if (!nsvc) { - /* Could not create NS-VC, connect failed */ - vty_out(vty, "Failed to create the NS-VC%s", VTY_NEWLINE); - goto err; - } - nsvc->persistent = true; - return CMD_SUCCESS; - -err: - if (ll_modified) - nse->ll = GPRS_NS2_LL_UNDEF; - if (dialect_modified) - nse->dialect = GPRS_NS2_DIALECT_UNDEF; - - return CMD_WARNING; -} - -DEFUN(cfg_no_ns_nse_nsvc_fr_dlci, cfg_no_ns_nse_nsvc_fr_dlci_cmd, - "no nsvc fr NETIF dlci <16-1007>", - NO_STR - "Delete frame relay NS-VC\n" - "frame relay\n" - "frame relay interface. Must be registered via fr vty\n" - DLCI_STR - DLCI_STR - ) -{ - struct gprs_ns2_vc_bind *bind; - struct gprs_ns2_vc *nsvc; - struct gprs_ns2_nse *nse = vty->index; - const char *netif = argv[0]; - uint16_t dlci = atoi(argv[1]); - - if (nse->ll != GPRS_NS2_LL_FR) { - vty_out(vty, "This NSE doesn't support frame relay.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - bind = gprs_ns2_fr_bind_by_netif(vty_nsi, netif); - if (!bind) { - vty_out(vty, "Can not find fr interface \"%s\"%s", - netif, VTY_NEWLINE); - return CMD_ERR_NOTHING_TODO; - } - - nsvc = gprs_ns2_fr_nsvc_by_dlci(bind, dlci); - if (!nsvc) { - vty_out(vty, "Can not find a NS-VC on fr interface %s with dlci %u%s", - netif, dlci, VTY_NEWLINE); - return CMD_WARNING; - } - - if (nse != nsvc->nse) { - vty_out(vty, "The specified NS-VC is not a part of the NSE %u!%s" - "To remove this NS-VC go to the vty node 'nse %u'%s", - nse->nsei, VTY_NEWLINE, - nsvc->nse->nsei, VTY_NEWLINE); - return CMD_WARNING; - } - - gprs_ns2_free_nsvc(nsvc); - if (llist_empty(&nse->nsvc)) { - nse->ll = GPRS_NS2_LL_UNDEF; - nse->dialect = GPRS_NS2_DIALECT_UNDEF; - } - - return CMD_SUCCESS; -} - -DEFUN(cfg_no_ns_nse_nsvci, cfg_no_ns_nse_nsvci_cmd, - "no nsvc nsvci <0-65535>", - NO_STR - "Delete NSVC\n" - NSVCI_STR - NSVCI_STR - ) -{ - struct gprs_ns2_vc *nsvc; - struct gprs_ns2_nse *nse = vty->index; - uint16_t nsvci = atoi(argv[0]); - - switch (nse->dialect) { - case GPRS_NS2_DIALECT_SNS: - case GPRS_NS2_DIALECT_STATIC_ALIVE: - vty_out(vty, "NSE doesn't support NSVCI.%s", VTY_NEWLINE); - return CMD_WARNING; - case GPRS_NS2_DIALECT_UNDEF: - vty_out(vty, "No NSVCs configured%s", VTY_NEWLINE); - return CMD_WARNING; - case GPRS_NS2_DIALECT_IPACCESS: - case GPRS_NS2_DIALECT_STATIC_RESETBLOCK: - break; - } - - nsvc = gprs_ns2_nsvc_by_nsvci(vty_nsi, nsvci); - if (!nsvc) { - vty_out(vty, "Can not find NS-VC with NS-VCI %u%s", nsvci, VTY_NEWLINE); - return CMD_WARNING; - } - - if (nse != nsvc->nse) { - vty_out(vty, "NS-VC with NS-VCI %u is not part of this NSE!%s", - nsvci, VTY_NEWLINE); - return CMD_WARNING; - } - - gprs_ns2_free_nsvc(nsvc); - if (llist_empty(&nse->nsvc)) { - nse->ll = GPRS_NS2_LL_UNDEF; - nse->dialect = GPRS_NS2_DIALECT_UNDEF; - } - - return CMD_SUCCESS; -} - -DEFUN(cfg_ns_nse_nsvc_udp, cfg_ns_nse_nsvc_udp_cmd, - "nsvc udp BIND " VTY_IPV46_CMD " <1-65535>", - "NS Virtual Connection\n" - "NS over UDP\n" - "A unique bind identifier created by ns bind\n" - "Remote IPv4 Address\n" "Remote IPv6 Address\n" - "Remote UDP Port\n" - ) -{ - struct gprs_ns2_vc_bind *bind; - struct gprs_ns2_vc *nsvc; - struct gprs_ns2_nse *nse = vty->index; - bool dialect_modified = false; - bool ll_modified = false; - - const char *bind_name = argv[0]; - struct osmo_sockaddr_str remote_str; - struct osmo_sockaddr remote; - uint16_t port = atoi(argv[2]); - - if (nse->ll == GPRS_NS2_LL_UNDEF) { - nse->ll = GPRS_NS2_LL_UDP; - ll_modified = true; - } - - if (nse->dialect == GPRS_NS2_DIALECT_UNDEF) { - nse->dialect = GPRS_NS2_DIALECT_STATIC_ALIVE; - dialect_modified = true; - } - - if (nse->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "Can not mix NS-VC with different link layer%s", VTY_NEWLINE); - goto err; - } - - if (nse->dialect != GPRS_NS2_DIALECT_STATIC_ALIVE) { - vty_out(vty, "Can not mix NS-VC with different dialects%s", VTY_NEWLINE); - goto err; - } - - if (osmo_sockaddr_str_from_str(&remote_str, argv[1], port)) { - vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); - goto err; - } - - if (osmo_sockaddr_str_to_sockaddr(&remote_str, &remote.u.sas)) { - vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); - goto err; - } - - bind = gprs_ns2_bind_by_name(vty_nsi, bind_name); - if (!bind) { - vty_out(vty, "Can not find bind with name %s%s", - bind_name, VTY_NEWLINE); - goto err; - } - - if (bind->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "Bind %s is not an UDP bind.%s", - bind_name, VTY_NEWLINE); - goto err; - } - - nsvc = gprs_ns2_ip_connect(bind, &remote, nse, 0); - if (!nsvc) { - vty_out(vty, "Can not create NS-VC.%s", VTY_NEWLINE); - goto err; - } - nsvc->persistent = true; - - return CMD_SUCCESS; - -err: - if (ll_modified) - nse->ll = GPRS_NS2_LL_UNDEF; - if (dialect_modified) - nse->dialect = GPRS_NS2_DIALECT_UNDEF; - return CMD_WARNING; -} - -DEFUN(cfg_no_ns_nse_nsvc_udp, cfg_no_ns_nse_nsvc_udp_cmd, - "no nsvc udp BIND " VTY_IPV46_CMD " <1-65535>", - NO_STR - "Delete a NS Virtual Connection\n" - "NS over UDP\n" - "A unique bind identifier created by ns bind\n" - "Remote IPv4 Address\n" "Remote IPv6 Address\n" - "Remote UDP Port\n" - ) -{ - struct gprs_ns2_vc_bind *bind; - struct gprs_ns2_vc *nsvc; - struct gprs_ns2_nse *nse = vty->index; - const char *bind_name = argv[0]; - struct osmo_sockaddr_str remote_str; - struct osmo_sockaddr remote; - uint16_t port = atoi(argv[2]); - - if (nse->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "This NSE doesn't support UDP.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - if (nse->dialect != GPRS_NS2_DIALECT_STATIC_ALIVE) { - vty_out(vty, "This NSE doesn't support UDP with dialect static alive.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - bind = gprs_ns2_bind_by_name(vty_nsi, bind_name); - if (!bind) { - vty_out(vty, "Can not find bind with name %s%s", - bind_name, VTY_NEWLINE); - return CMD_WARNING; - } - - if (bind->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "Bind %s is not an UDP bind.%s", - bind_name, VTY_NEWLINE); - return CMD_WARNING; - } - - if (osmo_sockaddr_str_from_str(&remote_str, argv[1], port)) { - vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - if (osmo_sockaddr_str_to_sockaddr(&remote_str, &remote.u.sas)) { - vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - nsvc = gprs_ns2_nsvc_by_sockaddr_bind(bind, &remote); - if (!nsvc) { - vty_out(vty, "Can not find NS-VC with remote %s:%u%s", - remote_str.ip, remote_str.port, VTY_NEWLINE); - return CMD_WARNING; - } - - if (!nsvc->persistent) { - vty_out(vty, "NS-VC with remote %s:%u is a dynamic NS-VC. Not configured by vty.%s", - remote_str.ip, remote_str.port, VTY_NEWLINE); - return CMD_WARNING; - } - - if (nsvc->nse != nse) { - vty_out(vty, "NS-VC is not part of this NSE!%s", VTY_NEWLINE); - return CMD_WARNING; - } - - gprs_ns2_free_nsvc(nsvc); - if (llist_empty(&nse->nsvc)) { - nse->ll = GPRS_NS2_LL_UNDEF; - nse->dialect = GPRS_NS2_DIALECT_UNDEF; - } - - return CMD_SUCCESS; -} - -DEFUN(cfg_ns_nse_nsvc_ipa, cfg_ns_nse_nsvc_ipa_cmd, - "nsvc ipa BIND " VTY_IPV46_CMD " <1-65535> nsvci <0-65535>" , - "NS Virtual Connection\n" - "NS over UDP ip.access style (uses RESET/BLOCK)\n" - "A unique bind identifier created by ns bind\n" - "Remote IPv4 Address\n" "Remote IPv6 Address\n" - "Remote UDP Port\n" - NSVCI_STR - NSVCI_STR - ) -{ - struct gprs_ns2_vc_bind *bind; - struct gprs_ns2_vc *nsvc; - struct gprs_ns2_nse *nse = vty->index; - bool dialect_modified = false; - bool ll_modified = false; - - const char *bind_name = argv[0]; - struct osmo_sockaddr_str remote_str; - struct osmo_sockaddr remote; - uint16_t port = atoi(argv[2]); - uint16_t nsvci = atoi(argv[3]); - - if (nse->ll == GPRS_NS2_LL_UNDEF) { - nse->ll = GPRS_NS2_LL_UDP; - ll_modified = true; - } - - if (nse->dialect == GPRS_NS2_DIALECT_UNDEF) { - nse->dialect = GPRS_NS2_DIALECT_IPACCESS; - dialect_modified = true; - } - - if (nse->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "Can not mix NS-VC with different link layer%s", VTY_NEWLINE); - goto err; - } - - if (nse->dialect != GPRS_NS2_DIALECT_IPACCESS) { - vty_out(vty, "Can not mix NS-VC with different dialects%s", VTY_NEWLINE); - goto err; - } - - if (osmo_sockaddr_str_from_str(&remote_str, argv[1], port)) { - vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); - goto err; - } - - if (osmo_sockaddr_str_to_sockaddr(&remote_str, &remote.u.sas)) { - vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); - goto err; - } - - bind = gprs_ns2_bind_by_name(vty_nsi, bind_name); - if (!bind) { - vty_out(vty, "Can not find bind with name %s%s", - bind_name, VTY_NEWLINE); - goto err; - } - - if (bind->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "Bind %s is not an UDP bind.%s", - bind_name, VTY_NEWLINE); - goto err; - } - - nsvc = gprs_ns2_ip_connect(bind, &remote, nse, nsvci); - if (!nsvc) { - vty_out(vty, "Can not create NS-VC.%s", VTY_NEWLINE); - goto err; - } - nsvc->persistent = true; - - return CMD_SUCCESS; - -err: - if (ll_modified) - nse->ll = GPRS_NS2_LL_UNDEF; - if (dialect_modified) - nse->dialect = GPRS_NS2_DIALECT_UNDEF; - return CMD_WARNING; -} - -DEFUN(cfg_no_ns_nse_nsvc_ipa, cfg_no_ns_nse_nsvc_ipa_cmd, - "no nsvc ipa BIND " VTY_IPV46_CMD " <1-65535> nsvci <0-65535>", - NO_STR - "Delete a NS Virtual Connection\n" - "NS over UDP\n" - "A unique bind identifier created by ns bind\n" - "Remote IPv4 Address\n" "Remote IPv6 Address\n" - "Remote UDP Port\n" - NSVCI_STR - NSVCI_STR - ) -{ - struct gprs_ns2_vc_bind *bind; - struct gprs_ns2_vc *nsvc; - struct gprs_ns2_nse *nse = vty->index; - const char *bind_name = argv[0]; - struct osmo_sockaddr_str remote_str; - struct osmo_sockaddr remote; - uint16_t port = atoi(argv[2]); - uint16_t nsvci = atoi(argv[3]); - - if (nse->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "This NSE doesn't support UDP.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - if (nse->dialect != GPRS_NS2_DIALECT_IPACCESS) { - vty_out(vty, "This NSE doesn't support UDP with dialect ipaccess.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - bind = gprs_ns2_bind_by_name(vty_nsi, bind_name); - if (!bind) { - vty_out(vty, "Can not find bind with name %s%s", - bind_name, VTY_NEWLINE); - return CMD_WARNING; - } - - if (bind->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "Bind %s is not an UDP bind.%s", - bind_name, VTY_NEWLINE); - return CMD_WARNING; - } - - if (osmo_sockaddr_str_from_str(&remote_str, argv[1], port)) { - vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - if (osmo_sockaddr_str_to_sockaddr(&remote_str, &remote.u.sas)) { - vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - nsvc = gprs_ns2_nsvc_by_sockaddr_bind(bind, &remote); - if (!nsvc) { - vty_out(vty, "Can not find NS-VC with remote %s:%u%s", - remote_str.ip, remote_str.port, VTY_NEWLINE); - return CMD_WARNING; - } - - if (!nsvc->persistent) { - vty_out(vty, "NS-VC with remote %s:%u is a dynamic NS-VC. Not configured by vty.%s", - remote_str.ip, remote_str.port, VTY_NEWLINE); - return CMD_WARNING; - } - - if (nsvc->nse != nse) { - vty_out(vty, "NS-VC is not part of this NSE!%s", VTY_NEWLINE); - return CMD_WARNING; - } - - if (!nsvc->nsvci_is_valid) { - vty_out(vty, "NS-VC doesn't have a nsvci!%s", VTY_NEWLINE); - return CMD_WARNING; - } - - if (nsvc->nsvci != nsvci) { - vty_out(vty, "NS-VC has a different nsvci (%u)!%s", - nsvc->nsvci, VTY_NEWLINE); - return CMD_WARNING; - } - - gprs_ns2_free_nsvc(nsvc); - if (llist_empty(&nse->nsvc)) { - nse->ll = GPRS_NS2_LL_UNDEF; - nse->dialect = GPRS_NS2_DIALECT_UNDEF; - } - - return CMD_SUCCESS; -} - -DEFUN(cfg_ns_nse_ip_sns, cfg_ns_nse_ip_sns_cmd, - "ip-sns " VTY_IPV46_CMD " <1-65535>", - "SNS Initial Endpoint\n" - "SGSN IPv4 Address\n" "SGSN IPv6 Address\n" - "SGSN UDP Port\n" - ) -{ - struct gprs_ns2_nse *nse = vty->index; - bool dialect_modified = false; - bool ll_modified = false; - int rc; - - /* argv[0] */ - struct osmo_sockaddr_str remote_str; - struct osmo_sockaddr remote; - uint16_t port = atoi(argv[1]); - - if (nse->ll == GPRS_NS2_LL_UNDEF) { - nse->ll = GPRS_NS2_LL_UDP; - ll_modified = true; - } - - if (nse->dialect == GPRS_NS2_DIALECT_UNDEF) { - char sns[16]; - snprintf(sns, sizeof(sns), "NSE%05u-SNS", nse->nsei); - nse->bss_sns_fi = ns2_sns_bss_fsm_alloc(nse, sns); - if (!nse->bss_sns_fi) - goto err; - nse->dialect = GPRS_NS2_DIALECT_SNS; - dialect_modified = true; - } - - if (nse->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "Can not mix NS-VC with different link layer%s", VTY_NEWLINE); - goto err; - } - - if (nse->dialect != GPRS_NS2_DIALECT_SNS) { - vty_out(vty, "Can not mix NS-VC with different dialects%s", VTY_NEWLINE); - goto err; - } - - if (osmo_sockaddr_str_from_str(&remote_str, argv[0], port)) { - vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); - goto err; - } - - if (osmo_sockaddr_str_to_sockaddr(&remote_str, &remote.u.sas)) { - vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); - goto err; - } - - rc = gprs_ns2_sns_add_endpoint(nse, &remote); - switch (rc) { - case 0: - return CMD_SUCCESS; - case -EADDRINUSE: - vty_out(vty, "Specified SNS endpoint already part of the NSE.%s", VTY_NEWLINE); - return CMD_WARNING; - default: - vty_out(vty, "Can not add specified SNS endpoint.%s", VTY_NEWLINE); - return CMD_WARNING; - } - -err: - if (ll_modified) - nse->ll = GPRS_NS2_LL_UNDEF; - if (dialect_modified) - nse->dialect = GPRS_NS2_DIALECT_UNDEF; - return CMD_WARNING; -} - -DEFUN(cfg_no_ns_nse_ip_sns, cfg_no_ns_nse_ip_sns_cmd, - "no ip-sns " VTY_IPV46_CMD " <1-65535>", - NO_STR - "Delete a SNS Initial Endpoint\n" - "SGSN IPv4 Address\n" "SGSN IPv6 Address\n" - "SGSN UDP Port\n" - ) -{ - struct gprs_ns2_nse *nse = vty->index; - struct osmo_sockaddr_str remote_str; /* argv[0] */ - struct osmo_sockaddr remote; - uint16_t port = atoi(argv[1]); - int count; - - if (nse->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "This NSE doesn't support UDP.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - if (nse->dialect != GPRS_NS2_DIALECT_SNS) { - vty_out(vty, "This NSE doesn't support UDP with dialect ip-sns.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - if (osmo_sockaddr_str_from_str(&remote_str, argv[0], port)) { - vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - if (osmo_sockaddr_str_to_sockaddr(&remote_str, &remote.u.sas)) { - vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - if (gprs_ns2_sns_del_endpoint(nse, &remote)) { - vty_out(vty, "Can not remove specified SNS endpoint.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - count = gprs_ns2_sns_count(nse); - if (count > 0) { - /* there are other sns endpoints */ - return CMD_SUCCESS; - } else if (count < 0) { - OSMO_ASSERT(0); - } else { - /* clean up nse to allow other nsvc commands */ - osmo_fsm_inst_term(nse->bss_sns_fi, OSMO_FSM_TERM_REQUEST, NULL); - nse->bss_sns_fi = NULL; - nse->ll = GPRS_NS2_LL_UNDEF; - nse->dialect = GPRS_NS2_DIALECT_UNDEF; - } - - return CMD_SUCCESS; -} - - -/* non-config commands */ static void dump_nsvc(struct vty *vty, struct gprs_ns2_vc *nsvc, bool stats) { char nsvci_str[32]; @@ -1491,9 +440,7 @@ return CMD_WARNING; } - if (!nse->persistent) { - gprs_ns2_free_nse(nse); - } else if (nse->dialect == GPRS_NS2_DIALECT_SNS) { + if (nse->dialect == GPRS_NS2_DIALECT_SNS) { gprs_ns2_free_nsvcs(nse); } else { /* Perform the operation for all nsvc */ @@ -1503,57 +450,310 @@ return CMD_SUCCESS; } -DEFUN(nsvc_block, nsvc_block_cmd, - "nsvc <0-65535> (block|unblock)", - "NS Virtual Connection\n" - NSVCI_STR - "Block a NSVC. As cause code O&M intervention will be used.\n" - "Unblock a NSVC. As cause code O&M intervention will be used.\n") +#define NSE_CMD_STR "Persistent NS Entity\n" "NS Entity ID (NSEI)\n" + +DEFUN(cfg_nse_fr, cfg_nse_fr_cmd, + "nse <0-65535> nsvci <0-65535> (fr|frnet) NETIF dlci <0-1023>", + NSE_CMD_STR + "NS Virtual Connection\n" + "NS Virtual Connection ID (NSVCI)\n" + "Frame Relay User-Side\n" + "Frame Relay Network-Side\n" + IFNAME_STR + "Data Link connection identifier\n" + "Data Link connection identifier\n" + ) { - struct gprs_ns2_inst *nsi = vty_nsi; - struct gprs_ns2_vc *nsvc; + struct ns2_vty_vc *vtyvc; - uint16_t id = atoi(argv[0]); + uint16_t nsei = atoi(argv[0]); + uint16_t nsvci = atoi(argv[1]); + const char *role = argv[2]; + const char *name = argv[3]; + uint16_t dlci = atoi(argv[4]); - nsvc = gprs_ns2_nsvc_by_nsvci(nsi, id); - if (!nsvc) { - vty_out(vty, "Could not find NSVCI %05u%s", id, VTY_NEWLINE); + vtyvc = vtyvc_by_nsei(nsei, true); + if (!vtyvc) { + vty_out(vty, "Can not allocate space %s", VTY_NEWLINE); return CMD_WARNING; } - if (!strcmp(argv[1], "block")) { - ns2_vc_block(nsvc); - } else { - ns2_vc_unblock(nsvc); + if (!strcmp(role, "fr")) + vtyvc->fr.role = FR_ROLE_USER_EQUIPMENT; + else if (!strcmp(role, "frnet")) + vtyvc->fr.role = FR_ROLE_NETWORK_EQUIPMENT; + + osmo_strlcpy(vtyvc->netif, name, sizeof(vtyvc->netif)); + vtyvc->frdlci = dlci; + vtyvc->nsvci = nsvci; + vtyvc->ll = GPRS_NS2_LL_FR; + + return CMD_SUCCESS; +} + +DEFUN(cfg_nse_nsvc, cfg_nse_nsvci_cmd, + "nse <0-65535> nsvci <0-65535>", + NSE_CMD_STR + "NS Virtual Connection\n" + "NS Virtual Connection ID (NSVCI)\n" + ) +{ + struct ns2_vty_vc *vtyvc; + + uint16_t nsei = atoi(argv[0]); + uint16_t nsvci = atoi(argv[1]); + + vtyvc = vtyvc_by_nsei(nsei, true); + if (!vtyvc) { + vty_out(vty, "Can not allocate space %s", VTY_NEWLINE); + return CMD_WARNING; + } + + vtyvc->nsvci = nsvci; + + return CMD_SUCCESS; +} + +DEFUN(cfg_nse_remoteip, cfg_nse_remoteip_cmd, + "nse <0-65535> remote-ip " VTY_IPV46_CMD, + NSE_CMD_STR + "Remote IP Address\n" + "Remote IPv4 Address\n" + "Remote IPv6 Address\n") +{ + uint16_t nsei = atoi(argv[0]); + struct ns2_vty_vc *vtyvc; + + vtyvc = vtyvc_by_nsei(nsei, true); + if (!vtyvc) { + vty_out(vty, "Can not allocate space %s", VTY_NEWLINE); + return CMD_WARNING; + } + + osmo_sockaddr_str_from_str2(&vtyvc->remote, argv[1]); + + return CMD_SUCCESS; +} + +DEFUN(cfg_nse_remoteport, cfg_nse_remoteport_cmd, + "nse <0-65535> remote-port <0-65535>", + NSE_CMD_STR + "Remote UDP Port\n" + "Remote UDP Port Number\n") +{ + uint16_t nsei = atoi(argv[0]); + uint16_t port = atoi(argv[1]); + struct ns2_vty_vc *vtyvc; + + vtyvc = vtyvc_by_nsei(nsei, true); + if (!vtyvc) { + vty_out(vty, "Can not allocate space %s", VTY_NEWLINE); + return CMD_WARNING; + } + + vtyvc->remote.port = port; + + return CMD_SUCCESS; +} + +DEFUN(cfg_nse_fr_dlci, cfg_nse_fr_dlci_cmd, + "nse <0-65535> nsvci <0-65535> fr-dlci <16-1007>", + NSE_CMD_STR + "NS Virtual Connection\n" + "NS Virtual Connection ID (NSVCI)\n" + "Frame Relay DLCI\n" + "Frame Relay DLCI Number\n") +{ + uint16_t nsei = atoi(argv[0]); + uint16_t nsvci = atoi(argv[1]); + uint16_t dlci = atoi(argv[2]); + struct ns2_vty_vc *vtyvc; + + vtyvc = vtyvc_by_nsei(nsei, true); + if (!vtyvc) { + vty_out(vty, "Can not allocate space %s", VTY_NEWLINE); + return CMD_WARNING; + } + + vtyvc->frdlci = dlci; + vtyvc->nsvci = nsvci; + + return CMD_SUCCESS; +} + +DEFUN(cfg_nse_encaps, cfg_nse_encaps_cmd, + "nse <0-65535> encapsulation (udp|framerelay-gre)", + NSE_CMD_STR + "Encapsulation for NS\n" + "UDP/IP Encapsulation\n" "Frame-Relay/GRE/IP Encapsulation\n") +{ + uint16_t nsei = atoi(argv[0]); + struct ns2_vty_vc *vtyvc; + + vtyvc = vtyvc_by_nsei(nsei, true); + if (!vtyvc) { + vty_out(vty, "Can not allocate space %s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (!strcmp(argv[1], "udp")) + vtyvc->ll = GPRS_NS2_LL_UDP; + else + vtyvc->ll = GPRS_NS2_LL_FR_GRE; + + return CMD_SUCCESS; +} + +DEFUN(cfg_nse_remoterole, cfg_nse_remoterole_cmd, + "nse <0-65535> remote-role (sgsn|bss)", + NSE_CMD_STR + "Remote NSE Role\n" + "Remote Peer is SGSN\n" + "Remote Peer is BSS\n") +{ + uint16_t nsei = atoi(argv[0]); + struct ns2_vty_vc *vtyvc; + + vtyvc = vtyvc_by_nsei(nsei, true); + if (!vtyvc) { + vty_out(vty, "Can not allocate space %s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (!strcmp(argv[1], "sgsn")) + vtyvc->remote_end_is_sgsn = 1; + else + vtyvc->remote_end_is_sgsn = 0; + + return CMD_SUCCESS; +} + +DEFUN(cfg_no_nse, cfg_no_nse_cmd, + "no nse <0-65535>", + "Delete Persistent NS Entity\n" + "Delete " NSE_CMD_STR) +{ + uint16_t nsei = atoi(argv[0]); + struct ns2_vty_vc *vtyvc; + + vtyvc = vtyvc_by_nsei(nsei, false); + if (!vtyvc) { + vty_out(vty, "The NSE %d does not exists.%s", nsei, VTY_NEWLINE); + return CMD_WARNING; + } + + ns2_vc_free(vtyvc); + + return CMD_SUCCESS; +} + +DEFUN(cfg_ns_timer, cfg_ns_timer_cmd, + "timer " NS_TIMERS " <0-65535>", + "Network Service Timer\n" + NS_TIMERS_HELP "Timer Value\n") +{ + int idx = get_string_value(gprs_ns_timer_strs, argv[0]); + int val = atoi(argv[1]); + + if (idx < 0 || idx >= ARRAY_SIZE(vty_nsi->timeout)) + return CMD_WARNING; + + vty_nsi->timeout[idx] = val; + + return CMD_SUCCESS; +} + +#define ENCAPS_STR "NS encapsulation options\n" + +DEFUN(cfg_nsip_local_ip, cfg_nsip_local_ip_cmd, + "encapsulation udp local-ip " VTY_IPV46_CMD, + ENCAPS_STR "NS over UDP Encapsulation\n" + "Set the IP address on which we listen for NS/UDP\n" + "IPv4 Address\n" + "IPv6 Address\n") +{ + osmo_sockaddr_str_from_str2(&priv.udp, argv[0]); + + return CMD_SUCCESS; +} + +DEFUN(cfg_nsip_local_port, cfg_nsip_local_port_cmd, + "encapsulation udp local-port <0-65535>", + ENCAPS_STR "NS over UDP Encapsulation\n" + "Set the UDP port on which we listen for NS/UDP\n" + "UDP port number\n") +{ + unsigned int port = atoi(argv[0]); + + priv.udp.port = port; + + return CMD_SUCCESS; +} + +DEFUN(cfg_nsip_dscp, cfg_nsip_dscp_cmd, + "encapsulation udp dscp <0-255>", + ENCAPS_STR "NS over UDP Encapsulation\n" + "Set DSCP/TOS on the UDP socket\n" "DSCP Value\n") +{ + int dscp = atoi(argv[0]); + struct gprs_ns2_vc_bind *bind; + + priv.dscp = dscp; + + llist_for_each_entry(bind, &vty_nsi->binding, list) { + if (gprs_ns2_is_ip_bind(bind)) + gprs_ns2_ip_bind_set_dscp(bind, dscp); } return CMD_SUCCESS; } -static void log_set_nse_filter(struct log_target *target, - struct gprs_ns2_nse *nse) +DEFUN(cfg_nsip_res_block_unblock, cfg_nsip_res_block_unblock_cmd, + "encapsulation udp use-reset-block-unblock (enabled|disabled)", + ENCAPS_STR "NS over UDP Encapsulation\n" + "Use NS-{RESET,BLOCK,UNBLOCK} procedures in violation of 3GPP TS 48.016\n" + "Enable NS-{RESET,BLOCK,UNBLOCK}\n" + "Disable NS-{RESET,BLOCK,UNBLOCK}\n") { - if (nse) { - target->filter_map |= (1 << LOG_FLT_GB_NSE); - target->filter_data[LOG_FLT_GB_NSE] = nse; - } else if (target->filter_data[LOG_FLT_GB_NSE]) { - target->filter_map = ~(1 << LOG_FLT_GB_NSE); - target->filter_data[LOG_FLT_GB_NSE] = NULL; - } + enum gprs_ns2_vc_mode vc_mode; + + if (!strcmp(argv[0], "enabled")) + vc_mode = GPRS_NS2_VC_MODE_BLOCKRESET; + else + vc_mode = GPRS_NS2_VC_MODE_ALIVE; + + priv.vc_mode = vc_mode; + + return CMD_SUCCESS; } -static void log_set_nsvc_filter(struct log_target *target, - struct gprs_ns2_vc *nsvc) +DEFUN(cfg_frgre_local_ip, cfg_frgre_local_ip_cmd, + "encapsulation framerelay-gre local-ip " VTY_IPV46_CMD, + ENCAPS_STR "NS over Frame Relay over GRE Encapsulation\n" + "Set the IP address on which we listen for NS/FR/GRE\n" + "IPv4 Address\n" + "IPv6 Address\n") { - if (nsvc) { - target->filter_map |= (1 << LOG_FLT_GB_NSVC); - target->filter_data[LOG_FLT_GB_NSVC] = nsvc; - } else if (target->filter_data[LOG_FLT_GB_NSVC]) { - target->filter_map = ~(1 << LOG_FLT_GB_NSVC); - target->filter_data[LOG_FLT_GB_NSVC] = NULL; - } + osmo_sockaddr_str_from_str2(&priv.frgreaddr, argv[0]); + + return CMD_SUCCESS; } +DEFUN(cfg_frgre_enable, cfg_frgre_enable_cmd, + "encapsulation framerelay-gre enabled (1|0)", + ENCAPS_STR "NS over Frame Relay over GRE Encapsulation\n" + "Enable or disable Frame Relay over GRE\n" + "Enable\n" "Disable\n") +{ + int enabled = atoi(argv[0]); + + priv.frgre = enabled; + + return CMD_SUCCESS; +} + +/* TODO: allow vty to reset/block/unblock nsvc/nsei */ + DEFUN(logging_fltr_nse, logging_fltr_nse_cmd, "logging filter nse nsei <0-65535>", @@ -1617,14 +817,29 @@ return CMD_SUCCESS; } -int gprs_ns2_vty_init(struct gprs_ns2_inst *nsi) +/** + * gprs_ns2_vty_init initialize the vty + * \param[inout] nsi + * \param[in] default_bind set the default address to bind to. Can be NULL. + * \return 0 on success + */ +int gprs_ns2_vty_init(struct gprs_ns2_inst *nsi, + const struct osmo_sockaddr_str *default_bind) { - vty_nsi = nsi; - INIT_LLIST_HEAD(&binds); + static bool vty_elements_installed = false; - vty_fr_network = osmo_fr_network_alloc(nsi); - if (!vty_fr_network) - return -ENOMEM; + vty_nsi = nsi; + memset(&priv, 0, sizeof(struct ns2_vty_priv)); + INIT_LLIST_HEAD(&priv.vtyvc); + priv.vc_mode = GPRS_NS2_VC_MODE_BLOCKRESET; + if (default_bind) + memcpy(&priv.udp, default_bind, sizeof(*default_bind)); + + /* Regression test code may call this function repeatedly, so make sure + * that VTY elements are not duplicated, which would assert. */ + if (vty_elements_installed) + return 0; + vty_elements_installed = true; install_lib_element_ve(&show_ns_cmd); install_lib_element_ve(&show_ns_binds_cmd); @@ -1635,42 +850,152 @@ install_lib_element_ve(&logging_fltr_nsvc_cmd); install_lib_element(ENABLE_NODE, &nsvc_force_unconf_cmd); - install_lib_element(ENABLE_NODE, &nsvc_block_cmd); install_lib_element(CFG_LOG_NODE, &logging_fltr_nse_cmd); install_lib_element(CFG_LOG_NODE, &logging_fltr_nsvc_cmd); install_lib_element(CONFIG_NODE, &cfg_ns_cmd); - install_node(&ns_node, config_write_ns); - /* TODO: convert into osmo timer */ + install_lib_element(L_NS_NODE, &cfg_nse_fr_cmd); + install_lib_element(L_NS_NODE, &cfg_nse_nsvci_cmd); + install_lib_element(L_NS_NODE, &cfg_nse_remoteip_cmd); + install_lib_element(L_NS_NODE, &cfg_nse_remoteport_cmd); + install_lib_element(L_NS_NODE, &cfg_nse_fr_dlci_cmd); + install_lib_element(L_NS_NODE, &cfg_nse_encaps_cmd); + install_lib_element(L_NS_NODE, &cfg_nse_remoterole_cmd); + install_lib_element(L_NS_NODE, &cfg_no_nse_cmd); install_lib_element(L_NS_NODE, &cfg_ns_timer_cmd); - install_lib_element(L_NS_NODE, &cfg_ns_nsei_cmd); - install_lib_element(L_NS_NODE, &cfg_no_ns_nsei_cmd); - install_lib_element(L_NS_NODE, &cfg_ns_bind_cmd); - install_lib_element(L_NS_NODE, &cfg_no_ns_bind_cmd); + install_lib_element(L_NS_NODE, &cfg_nsip_local_ip_cmd); + install_lib_element(L_NS_NODE, &cfg_nsip_local_port_cmd); + install_lib_element(L_NS_NODE, &cfg_nsip_dscp_cmd); + install_lib_element(L_NS_NODE, &cfg_nsip_res_block_unblock_cmd); + install_lib_element(L_NS_NODE, &cfg_frgre_enable_cmd); + install_lib_element(L_NS_NODE, &cfg_frgre_local_ip_cmd); - install_node(&ns_bind_node, config_write_ns_bind); - install_lib_element(L_NS_BIND_NODE, &cfg_ns_bind_listen_cmd); - install_lib_element(L_NS_BIND_NODE, &cfg_no_ns_bind_listen_cmd); - install_lib_element(L_NS_BIND_NODE, &cfg_ns_bind_dscp_cmd); - install_lib_element(L_NS_BIND_NODE, &cfg_no_ns_bind_dscp_cmd); - install_lib_element(L_NS_BIND_NODE, &cfg_ns_bind_ipaccess_cmd); - install_lib_element(L_NS_BIND_NODE, &cfg_no_ns_bind_ipaccess_cmd); - install_lib_element(L_NS_BIND_NODE, &cfg_ns_bind_fr_cmd); - install_lib_element(L_NS_BIND_NODE, &cfg_no_ns_bind_fr_cmd); - /* TODO: accept-ip-sns when SGSN SNS has been implemented */ + /* TODO: nsvc/nsei command to reset states or reset/block/unblock nsei/nsvcs */ - install_node(&ns_nse_node, config_write_ns_nse); - install_lib_element(L_NS_NSE_NODE, &cfg_ns_nse_nsvc_fr_cmd); - install_lib_element(L_NS_NSE_NODE, &cfg_no_ns_nse_nsvci_cmd); - install_lib_element(L_NS_NSE_NODE, &cfg_no_ns_nse_nsvc_fr_dlci_cmd); - install_lib_element(L_NS_NSE_NODE, &cfg_ns_nse_nsvc_udp_cmd); - install_lib_element(L_NS_NSE_NODE, &cfg_no_ns_nse_nsvc_udp_cmd); - install_lib_element(L_NS_NSE_NODE, &cfg_ns_nse_nsvc_ipa_cmd); - install_lib_element(L_NS_NSE_NODE, &cfg_no_ns_nse_nsvc_ipa_cmd); - install_lib_element(L_NS_NSE_NODE, &cfg_ns_nse_ip_sns_cmd); - install_lib_element(L_NS_NSE_NODE, &cfg_no_ns_nse_ip_sns_cmd); + return 0; +} + +/*! + * \brief gprs_ns2_vty_create parse the vty tree into ns nodes + * It has to be in different steps to ensure the bind is created before creating VCs. + * \return 0 on success + */ +int gprs_ns2_vty_create() { + struct ns2_vty_vc *vtyvc; + struct gprs_ns2_vc_bind *bind, *fr; + struct gprs_ns2_nse *nse; + struct gprs_ns2_vc *nsvc; + struct osmo_sockaddr sockaddr; + enum gprs_ns2_dialect dialect = GPRS_NS2_DIALECT_UNDEF; + int rc = 0; + + if (!vty_nsi) + return -1; + + /* create binds, only support a single bind. either FR or UDP */ + if (priv.frgre) { + /* TODO not yet supported !*/ + return -1; + } else { + /* UDP */ + osmo_sockaddr_str_to_sockaddr(&priv.udp, &sockaddr.u.sas); + if (gprs_ns2_ip_bind(vty_nsi, "vtybind", &sockaddr, priv.dscp, &bind)) { + /* TODO: could not bind on the specific address */ + return -1; + } + + bind->accept_ipaccess = priv.vc_mode == GPRS_NS2_VC_MODE_BLOCKRESET; + } + + /* create vcs */ + llist_for_each_entry(vtyvc, &priv.vtyvc, list) { + /* validate settings */ + switch (vtyvc->ll) { + case GPRS_NS2_LL_UDP: + if (priv.vc_mode == GPRS_NS2_VC_MODE_BLOCKRESET) + dialect = GPRS_NS2_DIALECT_IPACCESS; + else + dialect = GPRS_NS2_DIALECT_STATIC_ALIVE; + if (strlen(vtyvc->remote.ip) == 0) { + /* Invalid IP for VC */ + continue; + } + + if (!vtyvc->remote.port) { + /* Invalid port for VC */ + continue; + } + + if (osmo_sockaddr_str_to_sockaddr(&vtyvc->remote, &sockaddr.u.sas)) { + /* Invalid sockaddr for VC */ + continue; + } + break; + case GPRS_NS2_LL_FR: + dialect = GPRS_NS2_DIALECT_STATIC_RESETBLOCK; + break; + case GPRS_NS2_LL_FR_GRE: + dialect = GPRS_NS2_DIALECT_STATIC_RESETBLOCK; + continue; + case GPRS_NS2_LL_UNDEF: + /* should not happen */ + OSMO_ASSERT(false); + } + + nse = gprs_ns2_nse_by_nsei(vty_nsi, vtyvc->nsei); + if (!nse) { + nse = gprs_ns2_create_nse(vty_nsi, vtyvc->nsei, vtyvc->ll, dialect); + if (!nse) { + /* Could not create NSE for VTY */ + continue; + } + } + nse->persistent = true; + + switch (vtyvc->ll) { + case GPRS_NS2_LL_UDP: + nsvc = gprs_ns2_ip_connect(bind, + &sockaddr, + nse, + vtyvc->nsvci); + if (!nsvc) { + /* Could not create NSVC, connect failed */ + continue; + } + nsvc->persistent = true; + break; + case GPRS_NS2_LL_FR: { + if (vty_fr_network == NULL) { + /* TODO: add a switch for BSS/SGSN/gbproxy */ + vty_fr_network = osmo_fr_network_alloc(vty_nsi); + } + fr = gprs_ns2_fr_bind_by_netif( + vty_nsi, + vtyvc->netif); + if (!fr) { + rc = gprs_ns2_fr_bind(vty_nsi, vtyvc->netif, vtyvc->netif, vty_fr_network, vtyvc->fr.role, &fr); + if (rc < 0) { + LOGP(DLNS, LOGL_ERROR, "Can not create fr bind on device %s err: %d\n", vtyvc->netif, rc); + return rc; + } + } + + nsvc = gprs_ns2_fr_connect(fr, nse, vtyvc->nsvci, vtyvc->frdlci); + if (!nsvc) { + /* Could not create NSVC, connect failed */ + continue; + } + nsvc->persistent = true; + break; + } + case GPRS_NS2_LL_FR_GRE: + case GPRS_NS2_LL_UNDEF: + continue; + } + } + return 0; } diff --git a/src/gb/gprs_ns2_vty2.c b/src/gb/gprs_ns2_vty2.c new file mode 100644 index 0000000..31aff3e --- /dev/null +++ b/src/gb/gprs_ns2_vty2.c @@ -0,0 +1,1676 @@ +/*! \file gprs_ns2_vty.c + * VTY interface for our GPRS Networks Service (NS) implementation. */ + +/* (C) 2020 by sysmocom - s.f.m.c. GmbH + * Author: Alexander Couzens + * + * All Rights Reserved + * + * SPDX-License-Identifier: GPL-2.0+ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include +#include +#include +#include + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "gprs_ns2_internal.h" + +#define SHOW_NS_STR "Display information about the NS protocol\n" +#define NSVCI_STR "NS Virtual Connection ID (NS-VCI)\n" +#define DLCI_STR "Data Link connection identifier\n" + +static struct gprs_ns2_inst *vty_nsi = NULL; +static struct osmo_fr_network *vty_fr_network = NULL; +static struct llist_head binds; + +struct vty_bind { + struct llist_head list; + const char *name; + enum gprs_ns2_ll ll; + int dscp; + bool accept_ipaccess; + bool accept_sns; +}; + +/* TODO: this should into osmo timer */ +static const struct value_string gprs_ns_timer_strs[] = { + { 0, "tns-block" }, + { 1, "tns-block-retries" }, + { 2, "tns-reset" }, + { 3, "tns-reset-retries" }, + { 4, "tns-test" }, + { 5, "tns-alive" }, + { 6, "tns-alive-retries" }, + { 7, "tsns-prov" }, + { 8, "tsns-size-retries" }, + { 9, "tsns-config-retries" }, + { 0, NULL } +}; + +const struct value_string vty_fr_role_names[] = { + { FR_ROLE_USER_EQUIPMENT, "fr" }, + { FR_ROLE_NETWORK_EQUIPMENT, "frnet" }, + { 0, NULL } +}; + +const struct value_string vty_ll_names[] = { + { GPRS_NS2_LL_FR, "fr" }, + { GPRS_NS2_LL_FR_GRE, "frgre" }, + { GPRS_NS2_LL_UDP, "udp" }, + { 0, NULL } +}; + +static struct vty_bind *vty_bind_by_name(const char *name) +{ + struct vty_bind *vbind; + llist_for_each_entry(vbind, &binds, list) { + if (!strncmp(vbind->name, name, strlen(vbind->name))) + return vbind; + } + return NULL; +} + +static struct vty_bind *vty_bind_alloc(const char *name) +{ + struct vty_bind *vbind = talloc_zero(vty_nsi, struct vty_bind); + if (!vbind) + return NULL; + + vbind->name = talloc_strdup(vty_nsi, name); + if (!vbind->name) { + talloc_free(vbind); + return NULL; + } + + llist_add(&vbind->list, &binds); + return vbind; +} + +static void vty_bind_free(struct vty_bind *vbind) +{ + if (!vbind) + return; + + llist_del(&vbind->list); +} + +static struct cmd_node ns_node = { + L_NS_NODE, + "%s(config-ns)# ", + 1, +}; + +DEFUN(cfg_ns, cfg_ns_cmd, + "ns", + "Configure the GPRS Network Service") +{ + vty->node = L_NS_NODE; + return CMD_SUCCESS; +} + +DEFUN(cfg_ns_timer, cfg_ns_timer_cmd, + "timer " NS_TIMERS " <0-65535>", + "Network Service Timer\n" + NS_TIMERS_HELP "Timer Value\n") +{ + int idx = get_string_value(gprs_ns_timer_strs, argv[0]); + int val = atoi(argv[1]); + + if (idx < 0 || idx >= ARRAY_SIZE(vty_nsi->timeout)) + return CMD_WARNING; + + vty_nsi->timeout[idx] = val; + + return CMD_SUCCESS; +} + +DEFUN(cfg_ns_nsei, cfg_ns_nsei_cmd, + "nse <0-65535>", + "Persistent NS Entity\n" + "NS Entity ID (NSEI)\n" + ) +{ + struct gprs_ns2_nse *nse; + uint16_t nsei = atoi(argv[0]); + + nse = gprs_ns2_nse_by_nsei(vty_nsi, nsei); + if (!nse) { + nse = gprs_ns2_create_nse(vty_nsi, nsei, GPRS_NS2_LL_UNDEF, GPRS_NS2_DIALECT_UNDEF); + if (!nse) { + vty_out(vty, "Failed to create NSE!%s", VTY_NEWLINE); + return CMD_ERR_INCOMPLETE; + } + nse->persistent = true; + } + + if (!nse->persistent) { + /* TODO: should the dynamic NSE removed? */ + vty_out(vty, "A dynamic NSE with the specified NSEI already exists%s", VTY_NEWLINE); + return CMD_ERR_INCOMPLETE; + } + + vty->node = L_NS_NSE_NODE; + vty->index = nse; + + return CMD_SUCCESS; +} + +DEFUN(cfg_no_ns_nsei, cfg_no_ns_nsei_cmd, + "no nse <0-65535>", + NO_STR + "Delete a Persistent NS Entity\n" + "NS Entity ID (NSEI)\n" + ) +{ + struct gprs_ns2_nse *nse; + uint16_t nsei = atoi(argv[0]); + + nse = gprs_ns2_nse_by_nsei(vty_nsi, nsei); + if (!nse) { + vty_out(vty, "Can not find NS Entity %s%s", argv[0], VTY_NEWLINE); + return CMD_ERR_NOTHING_TODO; + } + + if (!nse->persistent) { + vty_out(vty, "Ignoring non-persistent NS Entity%s", VTY_NEWLINE); + return CMD_WARNING; + } + + vty_out(vty, "Deleting NS Entity %u%s", nse->nsei, VTY_NEWLINE); + gprs_ns2_free_nse(nse); + return CMD_SUCCESS; +} + +/* TODO: add fr/gre */ +DEFUN(cfg_ns_bind, cfg_ns_bind_cmd, + "bind (fr|udp) ID", + "Binding\n" + "Frame Relay\n" "UDP/IP\n" + "a unique identifier for this bind to reference NS-VCs\n" + ) +{ + const char *nstype = argv[0]; + const char *name = argv[1]; + struct vty_bind *vbind; + enum gprs_ns2_ll ll; + int rc; + + rc = get_string_value(vty_ll_names, nstype); + if (rc < 0) + return CMD_WARNING; + ll = (enum gprs_ns2_ll) rc; + + if (!osmo_identifier_valid(name)) { + vty_out(vty, "Invalid ID. The ID should be only alphanumeric.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + vbind = vty_bind_by_name(name); + if (vbind) { + if (vbind->ll != ll) { + vty_out(vty, "A bind with the specified ID already exists with a different type (fr|frgre|udp)!%s", + VTY_NEWLINE); + return CMD_WARNING; + } + } else { + vbind = vty_bind_alloc(name); + if (!vbind) { + vty_out(vty, "Can not create bind - out of memory%s", VTY_NEWLINE); + return CMD_WARNING; + } + vbind->ll = ll; + } + + vty->index = vbind; + vty->node = L_NS_BIND_NODE; + + return CMD_SUCCESS; +} + +DEFUN(cfg_no_ns_bind, cfg_no_ns_bind_cmd, + "no bind ID", + NO_STR + "Delete a binding\n" + "a unique identifier for this bind to reference NS-VCs\n" + ) +{ + struct vty_bind *vbind; + struct gprs_ns2_vc_bind *bind; + const char *name = argv[0]; + + vbind = vty_bind_by_name(name); + if (!vbind) { + vty_out(vty, "bind %s does not exist!%s", name, VTY_NEWLINE); + return CMD_WARNING; + } + vty_bind_free(vbind); + bind = gprs_ns2_bind_by_name(vty_nsi, name); + if (bind) + bind->driver->free_bind(bind); + return CMD_SUCCESS; +} + + +static void config_write_vbind(struct vty *vty, struct vty_bind *vbind) +{ + struct gprs_ns2_vc_bind *bind; + const struct osmo_sockaddr *addr; + struct osmo_sockaddr_str addr_str; + const char *netif, *frrole_str, *llstr; + enum osmo_fr_role frrole; + + llstr = get_value_string_or_null(vty_ll_names, vbind->ll); + if (!llstr) + return; + vty_out(vty, " bind %s %s%s", llstr, vbind->name, VTY_NEWLINE); + + bind = gprs_ns2_bind_by_name(vty_nsi, vbind->name); + switch (vbind->ll) { + case GPRS_NS2_LL_FR: + if (bind) { + netif = gprs_ns2_fr_bind_netif(bind); + if (!netif) + return; + frrole = gprs_ns2_fr_bind_role(bind); + if ((int) frrole == -1) + return; + frrole_str = get_value_string_or_null(vty_fr_role_names, frrole); + if (netif && frrole_str) + vty_out(vty, " fr %s %s%s", netif, frrole_str, VTY_NEWLINE); + } + break; + case GPRS_NS2_LL_UDP: + if (bind) { + addr = gprs_ns2_ip_bind_sockaddr(bind); + if (!osmo_sockaddr_str_from_sockaddr(&addr_str, &addr->u.sas)) { + vty_out(vty, " listen %s %u%s", addr_str.ip, addr_str.port, + VTY_NEWLINE); + } + } + if (vbind->accept_ipaccess) + vty_out(vty, " accept-ipaccess%s", VTY_NEWLINE); + if (vbind->dscp) + vty_out(vty, " dscp %u%s", vbind->dscp, VTY_NEWLINE); + break; + default: + return; + } +} + +static void config_write_nsvc(struct vty *vty, const struct gprs_ns2_vc *nsvc) +{ + const char *netif; + uint16_t dlci; + const struct osmo_sockaddr *addr; + struct osmo_sockaddr_str addr_str; + + switch (nsvc->nse->ll) { + case GPRS_NS2_LL_UNDEF: + break; + case GPRS_NS2_LL_UDP: + switch (nsvc->nse->dialect) { + case GPRS_NS2_DIALECT_IPACCESS: + addr = gprs_ns2_ip_vc_remote(nsvc); + if (!addr) + break; + if (osmo_sockaddr_str_from_sockaddr(&addr_str, &addr->u.sas)) + break; + vty_out(vty, " nsvc ipa %s %s %u nsvci %u%s", + nsvc->bind->name, addr_str.ip, addr_str.port, + nsvc->nsvci, VTY_NEWLINE); + break; + case GPRS_NS2_DIALECT_STATIC_ALIVE: + addr = gprs_ns2_ip_vc_remote(nsvc); + if (!addr) + break; + if (osmo_sockaddr_str_from_sockaddr(&addr_str, &addr->u.sas)) + break; + vty_out(vty, " nsvc udp %s %s %u%s", + nsvc->bind->name, addr_str.ip, addr_str.port, VTY_NEWLINE); + break; + default: + break; + } + break; + case GPRS_NS2_LL_FR: + netif = gprs_ns2_fr_bind_netif(nsvc->bind); + if (!netif) + break; + dlci = gprs_ns2_fr_nsvc_dlci(nsvc); + if (!dlci) + break; + OSMO_ASSERT(nsvc->nsvci_is_valid); + vty_out(vty, " nsvc fr %s dlci %u nsvci %u%s", + netif, dlci, nsvc->nsvci, VTY_NEWLINE); + break; + case GPRS_NS2_LL_FR_GRE: + break; + } +} + +static void _config_write_ns_nse(struct vty *vty, struct gprs_ns2_nse *nse) +{ + struct gprs_ns2_vc *nsvc; + + vty_out(vty, " nse %u%s", nse->nsei, VTY_NEWLINE); + switch (nse->dialect) { + case GPRS_NS2_DIALECT_SNS: + ns2_sns_write_vty(vty, nse); + break; + default: + llist_for_each_entry(nsvc, &nse->nsvc, list) { + config_write_nsvc(vty, nsvc); + } + break; + } +} + +static int config_write_ns(struct vty *vty) +{ + unsigned int i; + + vty_out(vty, "ns%s", VTY_NEWLINE); + + for (i = 0; i < ARRAY_SIZE(vty_nsi->timeout); i++) + vty_out(vty, " timer %s %u%s", + get_value_string(gprs_ns_timer_strs, i), + vty_nsi->timeout[i], VTY_NEWLINE); + + return 0; +} + +static int config_write_ns_nse(struct vty *vty) +{ + struct gprs_ns2_nse *nse; + + llist_for_each_entry(nse, &vty_nsi->nse, list) { + if (!nse->persistent) + continue; + + _config_write_ns_nse(vty, nse); + } + + return 0; +} + +static int config_write_ns_bind(struct vty *vty) +{ + struct vty_bind *vbind; + + llist_for_each_entry(vbind, &binds, list) { + config_write_vbind(vty, vbind); + } + + return 0; +} + +static struct cmd_node ns_bind_node = { + L_NS_BIND_NODE, + "%s(config-ns-bind)# ", + 1, +}; + +DEFUN(cfg_ns_bind_listen, cfg_ns_bind_listen_cmd, + "listen " VTY_IPV46_CMD " <1-65535>", + "Binding\n" + "IPv4 Address\n" "IPv6 Address\n" + "Port\n" + ) +{ + struct vty_bind *vbind = vty->index; + struct gprs_ns2_vc_bind *bind; + + const char *addr_str = argv[0]; + unsigned int port = atoi(argv[1]); + struct osmo_sockaddr_str sockaddr_str; + struct osmo_sockaddr sockaddr; + + if (vbind->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "listen can be only used with UDP bind%s", + VTY_NEWLINE); + return CMD_WARNING; + } + + if (osmo_sockaddr_str_from_str(&sockaddr_str, addr_str, port)) { + vty_out(vty, "Can not parse the Address %s %s%s", argv[0], argv[1], VTY_NEWLINE); + return CMD_WARNING; + } + osmo_sockaddr_str_to_sockaddr(&sockaddr_str, &sockaddr.u.sas); + if (gprs_ns2_ip_bind_by_sockaddr(vty_nsi, &sockaddr)) { + vty_out(vty, "A bind with the specified address already exists!%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (gprs_ns2_ip_bind(vty_nsi, vbind->name, &sockaddr, vbind->dscp, &bind) != 0) { + vty_out(vty, "Failed to create the bind!%s", VTY_NEWLINE); + return CMD_WARNING; + } + + bind->accept_ipaccess = vbind->accept_ipaccess; + bind->accept_sns = vbind->accept_sns; + + return CMD_SUCCESS; +} + +DEFUN(cfg_no_ns_bind_listen, cfg_no_ns_bind_listen_cmd, + "no listen", + NO_STR + "Delete a IP/Port assignment\n" + ) +{ + struct vty_bind *vbind = vty->index; + struct gprs_ns2_vc_bind *bind; + + if (vbind->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "no listen can be only used with UDP bind%s", VTY_NEWLINE); + return CMD_WARNING; + } + + bind = gprs_ns2_bind_by_name(vty_nsi, vbind->name); + if (!bind) + return CMD_ERR_NOTHING_TODO; + + OSMO_ASSERT(bind->ll != GPRS_NS2_LL_UDP); + bind->driver->free_bind(bind); + return CMD_SUCCESS; +} + +DEFUN(cfg_ns_bind_dscp, cfg_ns_bind_dscp_cmd, + "dscp <0-255>", + "Set DSCP/TOS on the UDP socket\n" "DSCP Value\n") +{ + struct vty_bind *vbind = vty->index; + struct gprs_ns2_vc_bind *bind; + uint16_t dscp = atoi(argv[0]); + + if (vbind->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "dscp can be only used with UDP bind%s", + VTY_NEWLINE); + return CMD_WARNING; + } + + vbind->dscp = dscp; + bind = gprs_ns2_bind_by_name(vty_nsi, vbind->name); + if (bind) + gprs_ns2_ip_bind_set_dscp(bind, dscp); + + return CMD_SUCCESS; +} + +DEFUN(cfg_no_ns_bind_dscp, cfg_no_ns_bind_dscp_cmd, + "no dscp", + "Set DSCP/TOS on the UDP socket\n" "DSCP Value\n") +{ + struct vty_bind *vbind = vty->index; + struct gprs_ns2_vc_bind *bind; + uint16_t dscp = 0; + + if (vbind->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "dscp can be only used with UDP bind%s", + VTY_NEWLINE); + return CMD_WARNING; + } + + vbind->dscp = dscp; + bind = gprs_ns2_bind_by_name(vty_nsi, vbind->name); + if (bind) + gprs_ns2_ip_bind_set_dscp(bind, dscp); + + return CMD_SUCCESS; +} + +DEFUN(cfg_ns_bind_ipaccess, cfg_ns_bind_ipaccess_cmd, + "accept-ipaccess", + "Allow to create dynamic NS Entity by NS Reset PDU on UDP (ip.access style)\n" + ) +{ + struct vty_bind *vbind = vty->index; + struct gprs_ns2_vc_bind *bind; + + if (vbind->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "accept-ipaccess can be only used with UDP bind%s", + VTY_NEWLINE); + return CMD_WARNING; + } + + vbind->accept_ipaccess = true; + bind = gprs_ns2_bind_by_name(vty_nsi, vbind->name); + if (bind) + bind->accept_ipaccess = true; + + return CMD_SUCCESS; +} + +DEFUN(cfg_no_ns_bind_ipaccess, cfg_no_ns_bind_ipaccess_cmd, + "no accept-ipaccess", + NO_STR + "Reject NS Reset PDU on UDP (ip.access style)\n" + ) +{ + struct vty_bind *vbind = vty->index; + struct gprs_ns2_vc_bind *bind; + + if (vbind->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "no accept-ipaccess can be only used with UDP bind%s", + VTY_NEWLINE); + return CMD_WARNING; + } + + vbind->accept_ipaccess = false; + bind = gprs_ns2_bind_by_name(vty_nsi, vbind->name); + if (bind) + bind->accept_ipaccess = false; + + return CMD_SUCCESS; +} + + +DEFUN(cfg_ns_bind_fr, cfg_ns_bind_fr_cmd, + "fr NETIF (fr|frnet)", + "frame relay\n" + IFNAME_STR + "fr (user) is used by BSS or SGSN attached to UNI of a FR network\n" + "frnet (network) is used by SGSN if BSS is directly attached\n" + ) +{ + struct vty_bind *vbind = vty->index; + struct gprs_ns2_vc_bind *bind; + const char *netif = argv[0]; + const char *role = argv[1]; + + int rc = 0; + enum osmo_fr_role frrole; + + if (vbind->ll != GPRS_NS2_LL_FR) { + vty_out(vty, "fr can be only used with frame relay bind%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (!strcmp(role, "fr")) + frrole = FR_ROLE_USER_EQUIPMENT; + else if (!strcmp(role, "frnet")) + frrole = FR_ROLE_NETWORK_EQUIPMENT; + else + return CMD_WARNING; + + bind = gprs_ns2_fr_bind_by_netif(vty_nsi, netif); + if (bind) { + vty_out(vty, "Interface %s already used.%s", netif, VTY_NEWLINE); + return CMD_WARNING; + } + + rc = gprs_ns2_fr_bind(vty_nsi, vbind->name, netif, vty_fr_network, frrole, &bind); + if (rc < 0) { + LOGP(DLNS, LOGL_ERROR, "Failed to bind interface %s on fr. Err: %d\n", netif, rc); + return CMD_WARNING; + } + + return CMD_SUCCESS; +} + +DEFUN(cfg_no_ns_bind_fr, cfg_no_ns_bind_fr_cmd, + "no fr NETIF", + NO_STR + "Delete a frame relay link\n" + "Delete a frame relay link\n" + IFNAME_STR + ) +{ + struct vty_bind *vbind = vty->index; + struct gprs_ns2_vc_bind *bind; + const char *netif = argv[0]; + + if (vbind->ll != GPRS_NS2_LL_FR) { + vty_out(vty, "fr can be only used with frame relay bind%s", + VTY_NEWLINE); + return CMD_WARNING; + } + + bind = gprs_ns2_fr_bind_by_netif(vty_nsi, netif); + if (!bind) { + vty_out(vty, "Interface not found.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (strcmp(bind->name, vbind->name)) { + vty_out(vty, "The specified interface is not bound to this bind.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + bind->driver->free_bind(bind); + return CMD_SUCCESS; +} + + +static struct cmd_node ns_nse_node = { + L_NS_NSE_NODE, + "%s(config-ns-nse)# ", + 1, +}; + +DEFUN(cfg_ns_nse_nsvc_fr, cfg_ns_nse_nsvc_fr_cmd, + "nsvc fr NETIF dlci <16-1007> nsvci <0-65535>", + "NS Virtual Connection\n" + "frame relay\n" + "frame relay interface. Must be registered via fr vty\n" + NSVCI_STR + NSVCI_STR + DLCI_STR + DLCI_STR + ) +{ + struct gprs_ns2_vc_bind *bind; + struct gprs_ns2_vc *nsvc; + struct gprs_ns2_nse *nse = vty->index; + const char *netif = argv[0]; + uint16_t dlci = atoi(argv[1]); + uint16_t nsvci = atoi(argv[2]); + bool dialect_modified = false; + bool ll_modified = false; + + if (nse->ll != GPRS_NS2_LL_FR && nse->ll != GPRS_NS2_LL_UNDEF) { + vty_out(vty, "Can not mix NS-VC with different link layer%s", VTY_NEWLINE); + goto err; + } + + if (nse->dialect != GPRS_NS2_DIALECT_STATIC_RESETBLOCK && nse->dialect != GPRS_NS2_DIALECT_UNDEF) { + vty_out(vty, "Can not mix NS-VC with different dialects%s", VTY_NEWLINE); + goto err; + } + + if (nse->ll == GPRS_NS2_LL_UNDEF) { + nse->ll = GPRS_NS2_LL_FR; + ll_modified = true; + } + + if (nse->dialect == GPRS_NS2_DIALECT_UNDEF) { + nse->dialect = GPRS_NS2_DIALECT_STATIC_RESETBLOCK; + dialect_modified = true; + } + + + bind = gprs_ns2_fr_bind_by_netif(vty_nsi, netif); + if (!bind) { + vty_out(vty, "Can not find fr interface \"%s\". Please configure it via fr vty.%s", + netif, VTY_NEWLINE); + goto err; + } + + if (gprs_ns2_fr_nsvc_by_dlci(bind, dlci)) { + vty_out(vty, "A NS-VC with the specified DLCI already exist!%s", VTY_NEWLINE); + goto err; + } + + if (gprs_ns2_nsvc_by_nsvci(vty_nsi, nsvci)) { + vty_out(vty, "A NS-VC with the specified NS-VCI already exist!%s", VTY_NEWLINE); + goto err; + } + + nsvc = gprs_ns2_fr_connect(bind, nse, nsvci, dlci); + if (!nsvc) { + /* Could not create NS-VC, connect failed */ + vty_out(vty, "Failed to create the NS-VC%s", VTY_NEWLINE); + goto err; + } + nsvc->persistent = true; + return CMD_SUCCESS; + +err: + if (ll_modified) + nse->ll = GPRS_NS2_LL_UNDEF; + if (dialect_modified) + nse->dialect = GPRS_NS2_DIALECT_UNDEF; + + return CMD_WARNING; +} + +DEFUN(cfg_no_ns_nse_nsvc_fr_dlci, cfg_no_ns_nse_nsvc_fr_dlci_cmd, + "no nsvc fr NETIF dlci <16-1007>", + NO_STR + "Delete frame relay NS-VC\n" + "frame relay\n" + "frame relay interface. Must be registered via fr vty\n" + DLCI_STR + DLCI_STR + ) +{ + struct gprs_ns2_vc_bind *bind; + struct gprs_ns2_vc *nsvc; + struct gprs_ns2_nse *nse = vty->index; + const char *netif = argv[0]; + uint16_t dlci = atoi(argv[1]); + + if (nse->ll != GPRS_NS2_LL_FR) { + vty_out(vty, "This NSE doesn't support frame relay.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + bind = gprs_ns2_fr_bind_by_netif(vty_nsi, netif); + if (!bind) { + vty_out(vty, "Can not find fr interface \"%s\"%s", + netif, VTY_NEWLINE); + return CMD_ERR_NOTHING_TODO; + } + + nsvc = gprs_ns2_fr_nsvc_by_dlci(bind, dlci); + if (!nsvc) { + vty_out(vty, "Can not find a NS-VC on fr interface %s with dlci %u%s", + netif, dlci, VTY_NEWLINE); + return CMD_WARNING; + } + + if (nse != nsvc->nse) { + vty_out(vty, "The specified NS-VC is not a part of the NSE %u!%s" + "To remove this NS-VC go to the vty node 'nse %u'%s", + nse->nsei, VTY_NEWLINE, + nsvc->nse->nsei, VTY_NEWLINE); + return CMD_WARNING; + } + + gprs_ns2_free_nsvc(nsvc); + if (llist_empty(&nse->nsvc)) { + nse->ll = GPRS_NS2_LL_UNDEF; + nse->dialect = GPRS_NS2_DIALECT_UNDEF; + } + + return CMD_SUCCESS; +} + +DEFUN(cfg_no_ns_nse_nsvci, cfg_no_ns_nse_nsvci_cmd, + "no nsvc nsvci <0-65535>", + NO_STR + "Delete NSVC\n" + NSVCI_STR + NSVCI_STR + ) +{ + struct gprs_ns2_vc *nsvc; + struct gprs_ns2_nse *nse = vty->index; + uint16_t nsvci = atoi(argv[0]); + + switch (nse->dialect) { + case GPRS_NS2_DIALECT_SNS: + case GPRS_NS2_DIALECT_STATIC_ALIVE: + vty_out(vty, "NSE doesn't support NSVCI.%s", VTY_NEWLINE); + return CMD_WARNING; + case GPRS_NS2_DIALECT_UNDEF: + vty_out(vty, "No NSVCs configured%s", VTY_NEWLINE); + return CMD_WARNING; + case GPRS_NS2_DIALECT_IPACCESS: + case GPRS_NS2_DIALECT_STATIC_RESETBLOCK: + break; + } + + nsvc = gprs_ns2_nsvc_by_nsvci(vty_nsi, nsvci); + if (!nsvc) { + vty_out(vty, "Can not find NS-VC with NS-VCI %u%s", nsvci, VTY_NEWLINE); + return CMD_WARNING; + } + + if (nse != nsvc->nse) { + vty_out(vty, "NS-VC with NS-VCI %u is not part of this NSE!%s", + nsvci, VTY_NEWLINE); + return CMD_WARNING; + } + + gprs_ns2_free_nsvc(nsvc); + if (llist_empty(&nse->nsvc)) { + nse->ll = GPRS_NS2_LL_UNDEF; + nse->dialect = GPRS_NS2_DIALECT_UNDEF; + } + + return CMD_SUCCESS; +} + +DEFUN(cfg_ns_nse_nsvc_udp, cfg_ns_nse_nsvc_udp_cmd, + "nsvc udp BIND " VTY_IPV46_CMD " <1-65535>", + "NS Virtual Connection\n" + "NS over UDP\n" + "A unique bind identifier created by ns bind\n" + "Remote IPv4 Address\n" "Remote IPv6 Address\n" + "Remote UDP Port\n" + ) +{ + struct gprs_ns2_vc_bind *bind; + struct gprs_ns2_vc *nsvc; + struct gprs_ns2_nse *nse = vty->index; + bool dialect_modified = false; + bool ll_modified = false; + + const char *bind_name = argv[0]; + struct osmo_sockaddr_str remote_str; + struct osmo_sockaddr remote; + uint16_t port = atoi(argv[2]); + + if (nse->ll == GPRS_NS2_LL_UNDEF) { + nse->ll = GPRS_NS2_LL_UDP; + ll_modified = true; + } + + if (nse->dialect == GPRS_NS2_DIALECT_UNDEF) { + nse->dialect = GPRS_NS2_DIALECT_STATIC_ALIVE; + dialect_modified = true; + } + + if (nse->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "Can not mix NS-VC with different link layer%s", VTY_NEWLINE); + goto err; + } + + if (nse->dialect != GPRS_NS2_DIALECT_STATIC_ALIVE) { + vty_out(vty, "Can not mix NS-VC with different dialects%s", VTY_NEWLINE); + goto err; + } + + if (osmo_sockaddr_str_from_str(&remote_str, argv[1], port)) { + vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); + goto err; + } + + if (osmo_sockaddr_str_to_sockaddr(&remote_str, &remote.u.sas)) { + vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); + goto err; + } + + bind = gprs_ns2_bind_by_name(vty_nsi, bind_name); + if (!bind) { + vty_out(vty, "Can not find bind with name %s%s", + bind_name, VTY_NEWLINE); + goto err; + } + + if (bind->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "Bind %s is not an UDP bind.%s", + bind_name, VTY_NEWLINE); + goto err; + } + + nsvc = gprs_ns2_ip_connect(bind, &remote, nse, 0); + if (!nsvc) { + vty_out(vty, "Can not create NS-VC.%s", VTY_NEWLINE); + goto err; + } + nsvc->persistent = true; + + return CMD_SUCCESS; + +err: + if (ll_modified) + nse->ll = GPRS_NS2_LL_UNDEF; + if (dialect_modified) + nse->dialect = GPRS_NS2_DIALECT_UNDEF; + return CMD_WARNING; +} + +DEFUN(cfg_no_ns_nse_nsvc_udp, cfg_no_ns_nse_nsvc_udp_cmd, + "no nsvc udp BIND " VTY_IPV46_CMD " <1-65535>", + NO_STR + "Delete a NS Virtual Connection\n" + "NS over UDP\n" + "A unique bind identifier created by ns bind\n" + "Remote IPv4 Address\n" "Remote IPv6 Address\n" + "Remote UDP Port\n" + ) +{ + struct gprs_ns2_vc_bind *bind; + struct gprs_ns2_vc *nsvc; + struct gprs_ns2_nse *nse = vty->index; + const char *bind_name = argv[0]; + struct osmo_sockaddr_str remote_str; + struct osmo_sockaddr remote; + uint16_t port = atoi(argv[2]); + + if (nse->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "This NSE doesn't support UDP.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (nse->dialect != GPRS_NS2_DIALECT_STATIC_ALIVE) { + vty_out(vty, "This NSE doesn't support UDP with dialect static alive.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + bind = gprs_ns2_bind_by_name(vty_nsi, bind_name); + if (!bind) { + vty_out(vty, "Can not find bind with name %s%s", + bind_name, VTY_NEWLINE); + return CMD_WARNING; + } + + if (bind->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "Bind %s is not an UDP bind.%s", + bind_name, VTY_NEWLINE); + return CMD_WARNING; + } + + if (osmo_sockaddr_str_from_str(&remote_str, argv[1], port)) { + vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (osmo_sockaddr_str_to_sockaddr(&remote_str, &remote.u.sas)) { + vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + nsvc = gprs_ns2_nsvc_by_sockaddr_bind(bind, &remote); + if (!nsvc) { + vty_out(vty, "Can not find NS-VC with remote %s:%u%s", + remote_str.ip, remote_str.port, VTY_NEWLINE); + return CMD_WARNING; + } + + if (!nsvc->persistent) { + vty_out(vty, "NS-VC with remote %s:%u is a dynamic NS-VC. Not configured by vty.%s", + remote_str.ip, remote_str.port, VTY_NEWLINE); + return CMD_WARNING; + } + + if (nsvc->nse != nse) { + vty_out(vty, "NS-VC is not part of this NSE!%s", VTY_NEWLINE); + return CMD_WARNING; + } + + gprs_ns2_free_nsvc(nsvc); + if (llist_empty(&nse->nsvc)) { + nse->ll = GPRS_NS2_LL_UNDEF; + nse->dialect = GPRS_NS2_DIALECT_UNDEF; + } + + return CMD_SUCCESS; +} + +DEFUN(cfg_ns_nse_nsvc_ipa, cfg_ns_nse_nsvc_ipa_cmd, + "nsvc ipa BIND " VTY_IPV46_CMD " <1-65535> nsvci <0-65535>" , + "NS Virtual Connection\n" + "NS over UDP ip.access style (uses RESET/BLOCK)\n" + "A unique bind identifier created by ns bind\n" + "Remote IPv4 Address\n" "Remote IPv6 Address\n" + "Remote UDP Port\n" + NSVCI_STR + NSVCI_STR + ) +{ + struct gprs_ns2_vc_bind *bind; + struct gprs_ns2_vc *nsvc; + struct gprs_ns2_nse *nse = vty->index; + bool dialect_modified = false; + bool ll_modified = false; + + const char *bind_name = argv[0]; + struct osmo_sockaddr_str remote_str; + struct osmo_sockaddr remote; + uint16_t port = atoi(argv[2]); + uint16_t nsvci = atoi(argv[3]); + + if (nse->ll == GPRS_NS2_LL_UNDEF) { + nse->ll = GPRS_NS2_LL_UDP; + ll_modified = true; + } + + if (nse->dialect == GPRS_NS2_DIALECT_UNDEF) { + nse->dialect = GPRS_NS2_DIALECT_IPACCESS; + dialect_modified = true; + } + + if (nse->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "Can not mix NS-VC with different link layer%s", VTY_NEWLINE); + goto err; + } + + if (nse->dialect != GPRS_NS2_DIALECT_IPACCESS) { + vty_out(vty, "Can not mix NS-VC with different dialects%s", VTY_NEWLINE); + goto err; + } + + if (osmo_sockaddr_str_from_str(&remote_str, argv[1], port)) { + vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); + goto err; + } + + if (osmo_sockaddr_str_to_sockaddr(&remote_str, &remote.u.sas)) { + vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); + goto err; + } + + bind = gprs_ns2_bind_by_name(vty_nsi, bind_name); + if (!bind) { + vty_out(vty, "Can not find bind with name %s%s", + bind_name, VTY_NEWLINE); + goto err; + } + + if (bind->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "Bind %s is not an UDP bind.%s", + bind_name, VTY_NEWLINE); + goto err; + } + + nsvc = gprs_ns2_ip_connect(bind, &remote, nse, nsvci); + if (!nsvc) { + vty_out(vty, "Can not create NS-VC.%s", VTY_NEWLINE); + goto err; + } + nsvc->persistent = true; + + return CMD_SUCCESS; + +err: + if (ll_modified) + nse->ll = GPRS_NS2_LL_UNDEF; + if (dialect_modified) + nse->dialect = GPRS_NS2_DIALECT_UNDEF; + return CMD_WARNING; +} + +DEFUN(cfg_no_ns_nse_nsvc_ipa, cfg_no_ns_nse_nsvc_ipa_cmd, + "no nsvc ipa BIND " VTY_IPV46_CMD " <1-65535> nsvci <0-65535>", + NO_STR + "Delete a NS Virtual Connection\n" + "NS over UDP\n" + "A unique bind identifier created by ns bind\n" + "Remote IPv4 Address\n" "Remote IPv6 Address\n" + "Remote UDP Port\n" + NSVCI_STR + NSVCI_STR + ) +{ + struct gprs_ns2_vc_bind *bind; + struct gprs_ns2_vc *nsvc; + struct gprs_ns2_nse *nse = vty->index; + const char *bind_name = argv[0]; + struct osmo_sockaddr_str remote_str; + struct osmo_sockaddr remote; + uint16_t port = atoi(argv[2]); + uint16_t nsvci = atoi(argv[3]); + + if (nse->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "This NSE doesn't support UDP.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (nse->dialect != GPRS_NS2_DIALECT_IPACCESS) { + vty_out(vty, "This NSE doesn't support UDP with dialect ipaccess.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + bind = gprs_ns2_bind_by_name(vty_nsi, bind_name); + if (!bind) { + vty_out(vty, "Can not find bind with name %s%s", + bind_name, VTY_NEWLINE); + return CMD_WARNING; + } + + if (bind->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "Bind %s is not an UDP bind.%s", + bind_name, VTY_NEWLINE); + return CMD_WARNING; + } + + if (osmo_sockaddr_str_from_str(&remote_str, argv[1], port)) { + vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (osmo_sockaddr_str_to_sockaddr(&remote_str, &remote.u.sas)) { + vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + nsvc = gprs_ns2_nsvc_by_sockaddr_bind(bind, &remote); + if (!nsvc) { + vty_out(vty, "Can not find NS-VC with remote %s:%u%s", + remote_str.ip, remote_str.port, VTY_NEWLINE); + return CMD_WARNING; + } + + if (!nsvc->persistent) { + vty_out(vty, "NS-VC with remote %s:%u is a dynamic NS-VC. Not configured by vty.%s", + remote_str.ip, remote_str.port, VTY_NEWLINE); + return CMD_WARNING; + } + + if (nsvc->nse != nse) { + vty_out(vty, "NS-VC is not part of this NSE!%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (!nsvc->nsvci_is_valid) { + vty_out(vty, "NS-VC doesn't have a nsvci!%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (nsvc->nsvci != nsvci) { + vty_out(vty, "NS-VC has a different nsvci (%u)!%s", + nsvc->nsvci, VTY_NEWLINE); + return CMD_WARNING; + } + + gprs_ns2_free_nsvc(nsvc); + if (llist_empty(&nse->nsvc)) { + nse->ll = GPRS_NS2_LL_UNDEF; + nse->dialect = GPRS_NS2_DIALECT_UNDEF; + } + + return CMD_SUCCESS; +} + +DEFUN(cfg_ns_nse_ip_sns, cfg_ns_nse_ip_sns_cmd, + "ip-sns " VTY_IPV46_CMD " <1-65535>", + "SNS Initial Endpoint\n" + "SGSN IPv4 Address\n" "SGSN IPv6 Address\n" + "SGSN UDP Port\n" + ) +{ + struct gprs_ns2_nse *nse = vty->index; + bool dialect_modified = false; + bool ll_modified = false; + int rc; + + /* argv[0] */ + struct osmo_sockaddr_str remote_str; + struct osmo_sockaddr remote; + uint16_t port = atoi(argv[1]); + + if (nse->ll == GPRS_NS2_LL_UNDEF) { + nse->ll = GPRS_NS2_LL_UDP; + ll_modified = true; + } + + if (nse->dialect == GPRS_NS2_DIALECT_UNDEF) { + char sns[16]; + snprintf(sns, sizeof(sns), "NSE%05u-SNS", nse->nsei); + nse->bss_sns_fi = ns2_sns_bss_fsm_alloc(nse, sns); + if (!nse->bss_sns_fi) + goto err; + nse->dialect = GPRS_NS2_DIALECT_SNS; + dialect_modified = true; + } + + if (nse->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "Can not mix NS-VC with different link layer%s", VTY_NEWLINE); + goto err; + } + + if (nse->dialect != GPRS_NS2_DIALECT_SNS) { + vty_out(vty, "Can not mix NS-VC with different dialects%s", VTY_NEWLINE); + goto err; + } + + if (osmo_sockaddr_str_from_str(&remote_str, argv[0], port)) { + vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); + goto err; + } + + if (osmo_sockaddr_str_to_sockaddr(&remote_str, &remote.u.sas)) { + vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); + goto err; + } + + rc = gprs_ns2_sns_add_endpoint(nse, &remote); + switch (rc) { + case 0: + return CMD_SUCCESS; + case -EADDRINUSE: + vty_out(vty, "Specified SNS endpoint already part of the NSE.%s", VTY_NEWLINE); + return CMD_WARNING; + default: + vty_out(vty, "Can not add specified SNS endpoint.%s", VTY_NEWLINE); + return CMD_WARNING; + } + +err: + if (ll_modified) + nse->ll = GPRS_NS2_LL_UNDEF; + if (dialect_modified) + nse->dialect = GPRS_NS2_DIALECT_UNDEF; + return CMD_WARNING; +} + +DEFUN(cfg_no_ns_nse_ip_sns, cfg_no_ns_nse_ip_sns_cmd, + "no ip-sns " VTY_IPV46_CMD " <1-65535>", + NO_STR + "Delete a SNS Initial Endpoint\n" + "SGSN IPv4 Address\n" "SGSN IPv6 Address\n" + "SGSN UDP Port\n" + ) +{ + struct gprs_ns2_nse *nse = vty->index; + struct osmo_sockaddr_str remote_str; /* argv[0] */ + struct osmo_sockaddr remote; + uint16_t port = atoi(argv[1]); + int count; + + if (nse->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "This NSE doesn't support UDP.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (nse->dialect != GPRS_NS2_DIALECT_SNS) { + vty_out(vty, "This NSE doesn't support UDP with dialect ip-sns.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (osmo_sockaddr_str_from_str(&remote_str, argv[0], port)) { + vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (osmo_sockaddr_str_to_sockaddr(&remote_str, &remote.u.sas)) { + vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (gprs_ns2_sns_del_endpoint(nse, &remote)) { + vty_out(vty, "Can not remove specified SNS endpoint.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + count = gprs_ns2_sns_count(nse); + if (count > 0) { + /* there are other sns endpoints */ + return CMD_SUCCESS; + } else if (count < 0) { + OSMO_ASSERT(0); + } else { + /* clean up nse to allow other nsvc commands */ + osmo_fsm_inst_term(nse->bss_sns_fi, OSMO_FSM_TERM_REQUEST, NULL); + nse->bss_sns_fi = NULL; + nse->ll = GPRS_NS2_LL_UNDEF; + nse->dialect = GPRS_NS2_DIALECT_UNDEF; + } + + return CMD_SUCCESS; +} + + +/* non-config commands */ +static void dump_nsvc(struct vty *vty, struct gprs_ns2_vc *nsvc, bool stats) +{ + char nsvci_str[32]; + + if (nsvc->nsvci_is_valid) + snprintf(nsvci_str, sizeof(nsvci_str), "%05u", nsvc->nsvci); + else + snprintf(nsvci_str, sizeof(nsvci_str), "none"); + + vty_out(vty, " NSVCI %s: %s %s data_weight=%u sig_weight=%u %s%s", nsvci_str, + osmo_fsm_inst_state_name(nsvc->fi), + nsvc->persistent ? "PERSIST" : "DYNAMIC", + nsvc->data_weight, nsvc->sig_weight, + gprs_ns2_ll_str(nsvc), VTY_NEWLINE); + + if (stats) { + vty_out_rate_ctr_group(vty, " ", nsvc->ctrg); + vty_out_stat_item_group(vty, " ", nsvc->statg); + } +} + +static void dump_nse(struct vty *vty, const struct gprs_ns2_nse *nse, bool stats, bool persistent_only) +{ + struct gprs_ns2_vc *nsvc; + + vty_out(vty, "NSEI %05u: %s, %s%s", nse->nsei, gprs_ns2_lltype_str(nse->ll), + nse->alive ? "ALIVE" : "DEAD", VTY_NEWLINE); + + ns2_sns_dump_vty(vty, " ", nse, stats); + llist_for_each_entry(nsvc, &nse->nsvc, list) { + if (persistent_only) { + if (nsvc->persistent) + dump_nsvc(vty, nsvc, stats); + } else { + dump_nsvc(vty, nsvc, stats); + } + } +} + +static void dump_bind(struct vty *vty, const struct gprs_ns2_vc_bind *bind, bool stats) +{ + if (bind->dump_vty) + bind->dump_vty(bind, vty, stats); +} + +static void dump_ns_bind(struct vty *vty, const struct gprs_ns2_inst *nsi, bool stats) +{ + struct gprs_ns2_vc_bind *bind; + + llist_for_each_entry(bind, &nsi->binding, list) { + dump_bind(vty, bind, stats); + } +} + + +static void dump_ns_entities(struct vty *vty, const struct gprs_ns2_inst *nsi, bool stats, bool persistent_only) +{ + struct gprs_ns2_nse *nse; + + llist_for_each_entry(nse, &nsi->nse, list) { + dump_nse(vty, nse, stats, persistent_only); + } +} + +/* Backwards compatibility, among other things for the TestVTYGbproxy which expects + * 'show ns' to output something about binds */ +DEFUN_HIDDEN(show_ns, show_ns_cmd, "show ns", + SHOW_STR SHOW_NS_STR) +{ + dump_ns_entities(vty, vty_nsi, false, false); + dump_ns_bind(vty, vty_nsi, false); + return CMD_SUCCESS; +} + + +DEFUN(show_ns_binds, show_ns_binds_cmd, "show ns binds [stats]", + SHOW_STR SHOW_NS_STR + "Display information about the NS protocol binds\n" + "Include statistic\n") +{ + bool stats = false; + if (argc > 0) + stats = true; + + dump_ns_bind(vty, vty_nsi, stats); + return CMD_SUCCESS; +} + +DEFUN(show_ns_entities, show_ns_entities_cmd, "show ns entities [stats]", + SHOW_STR SHOW_NS_STR + "Display information about the NS protocol entities (NSEs)\n" + "Include statistics\n") +{ + bool stats = false; + if (argc > 0) + stats = true; + + dump_ns_entities(vty, vty_nsi, stats, false); + return CMD_SUCCESS; +} + +DEFUN(show_ns_pers, show_ns_pers_cmd, "show ns persistent", + SHOW_STR SHOW_NS_STR + "Show only persistent NS\n") +{ + dump_ns_entities(vty, vty_nsi, true, true); + return CMD_SUCCESS; +} + +DEFUN(show_nse, show_nse_cmd, "show ns (nsei|nsvc) <0-65535> [stats]", + SHOW_STR SHOW_NS_STR + "Select one NSE by its NSE Identifier\n" + "Select one NSE by its NS-VC Identifier\n" + "The Identifier of selected type\n" + "Include Statistics\n") +{ + struct gprs_ns2_inst *nsi = vty_nsi; + struct gprs_ns2_nse *nse; + struct gprs_ns2_vc *nsvc; + uint16_t id = atoi(argv[1]); + bool show_stats = false; + + if (argc >= 3) + show_stats = true; + + if (!strcmp(argv[0], "nsei")) { + nse = gprs_ns2_nse_by_nsei(nsi, id); + if (!nse) { + return CMD_WARNING; + } + + dump_nse(vty, nse, show_stats, false); + } else { + nsvc = gprs_ns2_nsvc_by_nsvci(nsi, id); + + if (!nsvc) { + vty_out(vty, "No such NS Entity%s", VTY_NEWLINE); + return CMD_WARNING; + } + + dump_nsvc(vty, nsvc, show_stats); + } + + return CMD_SUCCESS; +} + +static int nsvc_force_unconf_cb(struct gprs_ns2_vc *nsvc, void *ctx) +{ + ns2_vc_force_unconfigured(nsvc); + return 0; +} + +DEFUN_HIDDEN(nsvc_force_unconf, nsvc_force_unconf_cmd, + "nsvc nsei <0-65535> force-unconfigured", + "NS Virtual Connection\n" + "The NSEI\n" + "Reset the NSVCs back to initial state\n" + ) +{ + struct gprs_ns2_inst *nsi = vty_nsi; + struct gprs_ns2_nse *nse; + + uint16_t id = atoi(argv[0]); + + nse = gprs_ns2_nse_by_nsei(nsi, id); + if (!nse) { + vty_out(vty, "Could not find NSE for NSEI %u%s", id, VTY_NEWLINE); + return CMD_WARNING; + } + + if (!nse->persistent) { + gprs_ns2_free_nse(nse); + } else if (nse->dialect == GPRS_NS2_DIALECT_SNS) { + gprs_ns2_free_nsvcs(nse); + } else { + /* Perform the operation for all nsvc */ + gprs_ns2_nse_foreach_nsvc(nse, nsvc_force_unconf_cb, NULL); + } + + return CMD_SUCCESS; +} + +DEFUN(nsvc_block, nsvc_block_cmd, + "nsvc <0-65535> (block|unblock)", + "NS Virtual Connection\n" + NSVCI_STR + "Block a NSVC. As cause code O&M intervention will be used.\n" + "Unblock a NSVC. As cause code O&M intervention will be used.\n") +{ + struct gprs_ns2_inst *nsi = vty_nsi; + struct gprs_ns2_vc *nsvc; + + uint16_t id = atoi(argv[0]); + + nsvc = gprs_ns2_nsvc_by_nsvci(nsi, id); + if (!nsvc) { + vty_out(vty, "Could not find NSVCI %05u%s", id, VTY_NEWLINE); + return CMD_WARNING; + } + + if (!strcmp(argv[1], "block")) { + ns2_vc_block(nsvc); + } else { + ns2_vc_unblock(nsvc); + } + + return CMD_SUCCESS; +} + +static void log_set_nse_filter(struct log_target *target, + struct gprs_ns2_nse *nse) +{ + if (nse) { + target->filter_map |= (1 << LOG_FLT_GB_NSE); + target->filter_data[LOG_FLT_GB_NSE] = nse; + } else if (target->filter_data[LOG_FLT_GB_NSE]) { + target->filter_map = ~(1 << LOG_FLT_GB_NSE); + target->filter_data[LOG_FLT_GB_NSE] = NULL; + } +} + +static void log_set_nsvc_filter(struct log_target *target, + struct gprs_ns2_vc *nsvc) +{ + if (nsvc) { + target->filter_map |= (1 << LOG_FLT_GB_NSVC); + target->filter_data[LOG_FLT_GB_NSVC] = nsvc; + } else if (target->filter_data[LOG_FLT_GB_NSVC]) { + target->filter_map = ~(1 << LOG_FLT_GB_NSVC); + target->filter_data[LOG_FLT_GB_NSVC] = NULL; + } +} + +DEFUN(logging_fltr_nse, + logging_fltr_nse_cmd, + "logging filter nse nsei <0-65535>", + LOGGING_STR FILTER_STR + "Filter based on NS Entity\n" + "Identify NSE by NSEI\n" + "Numeric identifier\n") +{ + struct log_target *tgt; + struct gprs_ns2_nse *nse; + uint16_t id = atoi(argv[0]); + + log_tgt_mutex_lock(); + tgt = osmo_log_vty2tgt(vty); + if (!tgt) { + log_tgt_mutex_unlock(); + return CMD_WARNING; + } + + nse = gprs_ns2_nse_by_nsei(vty_nsi, id); + if (!nse) { + vty_out(vty, "No NSE by that identifier%s", VTY_NEWLINE); + log_tgt_mutex_unlock(); + return CMD_WARNING; + } + + log_set_nse_filter(tgt, nse); + log_tgt_mutex_unlock(); + return CMD_SUCCESS; +} + +/* TODO: add filter for single connection by description */ +DEFUN(logging_fltr_nsvc, + logging_fltr_nsvc_cmd, + "logging filter nsvc nsvci <0-65535>", + LOGGING_STR FILTER_STR + "Filter based on NS Virtual Connection\n" + "Identify NS-VC by NSVCI\n" + "Numeric identifier\n") +{ + struct log_target *tgt; + struct gprs_ns2_vc *nsvc; + uint16_t id = atoi(argv[0]); + + log_tgt_mutex_lock(); + tgt = osmo_log_vty2tgt(vty); + if (!tgt) { + log_tgt_mutex_unlock(); + return CMD_WARNING; + } + + nsvc = gprs_ns2_nsvc_by_nsvci(vty_nsi, id); + if (!nsvc) { + vty_out(vty, "No NS-VC by that identifier%s", VTY_NEWLINE); + log_tgt_mutex_unlock(); + return CMD_WARNING; + } + + log_set_nsvc_filter(tgt, nsvc); + log_tgt_mutex_unlock(); + return CMD_SUCCESS; +} + +int gprs_ns2_vty2_init(struct gprs_ns2_inst *nsi) +{ + vty_nsi = nsi; + INIT_LLIST_HEAD(&binds); + + vty_fr_network = osmo_fr_network_alloc(nsi); + if (!vty_fr_network) + return -ENOMEM; + + install_lib_element_ve(&show_ns_cmd); + install_lib_element_ve(&show_ns_binds_cmd); + install_lib_element_ve(&show_ns_entities_cmd); + install_lib_element_ve(&show_ns_pers_cmd); + install_lib_element_ve(&show_nse_cmd); + install_lib_element_ve(&logging_fltr_nse_cmd); + install_lib_element_ve(&logging_fltr_nsvc_cmd); + + install_lib_element(ENABLE_NODE, &nsvc_force_unconf_cmd); + install_lib_element(ENABLE_NODE, &nsvc_block_cmd); + + install_lib_element(CFG_LOG_NODE, &logging_fltr_nse_cmd); + install_lib_element(CFG_LOG_NODE, &logging_fltr_nsvc_cmd); + + install_lib_element(CONFIG_NODE, &cfg_ns_cmd); + + install_node(&ns_node, config_write_ns); + /* TODO: convert into osmo timer */ + install_lib_element(L_NS_NODE, &cfg_ns_timer_cmd); + install_lib_element(L_NS_NODE, &cfg_ns_nsei_cmd); + install_lib_element(L_NS_NODE, &cfg_no_ns_nsei_cmd); + install_lib_element(L_NS_NODE, &cfg_ns_bind_cmd); + install_lib_element(L_NS_NODE, &cfg_no_ns_bind_cmd); + + install_node(&ns_bind_node, config_write_ns_bind); + install_lib_element(L_NS_BIND_NODE, &cfg_ns_bind_listen_cmd); + install_lib_element(L_NS_BIND_NODE, &cfg_no_ns_bind_listen_cmd); + install_lib_element(L_NS_BIND_NODE, &cfg_ns_bind_dscp_cmd); + install_lib_element(L_NS_BIND_NODE, &cfg_no_ns_bind_dscp_cmd); + install_lib_element(L_NS_BIND_NODE, &cfg_ns_bind_ipaccess_cmd); + install_lib_element(L_NS_BIND_NODE, &cfg_no_ns_bind_ipaccess_cmd); + install_lib_element(L_NS_BIND_NODE, &cfg_ns_bind_fr_cmd); + install_lib_element(L_NS_BIND_NODE, &cfg_no_ns_bind_fr_cmd); + /* TODO: accept-ip-sns when SGSN SNS has been implemented */ + + install_node(&ns_nse_node, config_write_ns_nse); + install_lib_element(L_NS_NSE_NODE, &cfg_ns_nse_nsvc_fr_cmd); + install_lib_element(L_NS_NSE_NODE, &cfg_no_ns_nse_nsvci_cmd); + install_lib_element(L_NS_NSE_NODE, &cfg_no_ns_nse_nsvc_fr_dlci_cmd); + install_lib_element(L_NS_NSE_NODE, &cfg_ns_nse_nsvc_udp_cmd); + install_lib_element(L_NS_NSE_NODE, &cfg_no_ns_nse_nsvc_udp_cmd); + install_lib_element(L_NS_NSE_NODE, &cfg_ns_nse_nsvc_ipa_cmd); + install_lib_element(L_NS_NSE_NODE, &cfg_no_ns_nse_nsvc_ipa_cmd); + install_lib_element(L_NS_NSE_NODE, &cfg_ns_nse_ip_sns_cmd); + install_lib_element(L_NS_NSE_NODE, &cfg_no_ns_nse_ip_sns_cmd); + + return 0; +} diff --git a/src/gb/libosmogb.map b/src/gb/libosmogb.map index fa05b97..c6bbc78 100644 --- a/src/gb/libosmogb.map +++ b/src/gb/libosmogb.map @@ -185,7 +185,9 @@ gprs_ns2_start_alive_all_nsvcs; gprs_ns2_sns_add_endpoint; gprs_ns2_sns_del_endpoint; +gprs_ns2_vty_create; gprs_ns2_vty_init; +gprs_ns2_vty2_init; gprs_nsvc_create2; gprs_nsvc_delete; diff --git a/utils/osmo-ns-dummy.c b/utils/osmo-ns-dummy.c index 33949d3..58e8152 100644 --- a/utils/osmo-ns-dummy.c +++ b/utils/osmo-ns-dummy.c @@ -230,7 +230,7 @@ } gprs_ns2_dynamic_create_nse(nsi, true); - gprs_ns2_vty_init(nsi); + gprs_ns2_vty2_init(nsi); rc = vty_read_config_file(config_file, NULL); if (rc < 0 && config_given) { fprintf(stderr, "Failed to parse the config file: '%s'\n", -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22513 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I8a2aaf74a47de8f4f0adb37d16426d199788e3fe Gerrit-Change-Number: 22513 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 12:54:43 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 28 Jan 2021 12:54:43 +0000 Subject: Change in libosmocore[master]: gprs_ns2: remove api call gprs_ns2_dynamic_create_nse In-Reply-To: References: Message-ID: pespin has uploaded a new patch set (#5) to the change originally created by lynxis lazus. ( https://gerrit.osmocom.org/c/libosmocore/+/22498 ) Change subject: gprs_ns2: remove api call gprs_ns2_dynamic_create_nse ...................................................................... gprs_ns2: remove api call gprs_ns2_dynamic_create_nse The call was only introduced as workaround for the first implementation of vty. There is no need for this anymore. The configuration can just add "accept-ipaccess" to the bind to allow creation of dynamic ipaccess NSE. Change-Id: Ie924ead6da17657f3da334068c8ada82c8845495 --- M include/osmocom/gprs/gprs_ns2.h M src/gb/gprs_ns2.c M src/gb/gprs_ns2_internal.h M src/gb/libosmogb.map M utils/osmo-ns-dummy.c 5 files changed, 1 insertion(+), 19 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/98/22498/5 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22498 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie924ead6da17657f3da334068c8ada82c8845495 Gerrit-Change-Number: 22498 Gerrit-PatchSet: 5 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 12:54:43 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 28 Jan 2021 12:54:43 +0000 Subject: Change in libosmocore[master]: gprs_ns2: introduce gprs_ns2_vty_init_reduced() for the PCU In-Reply-To: References: Message-ID: pespin has uploaded a new patch set (#3) to the change originally created by lynxis lazus. ( https://gerrit.osmocom.org/c/libosmocore/+/22508 ) Change subject: gprs_ns2: introduce gprs_ns2_vty_init_reduced() for the PCU ...................................................................... gprs_ns2: introduce gprs_ns2_vty_init_reduced() for the PCU The gprs_ns2_vty_init_reduced() call initialized the ns2 vty without configuration nodes (except timeout). The PCU can be only configured by the BTS/BSC. It should not configured by vty. Change-Id: I4437da74bd48ba64d3f16ea67afc26c45b6d3ac9 --- M src/gb/gprs_ns2_vty.c M src/gb/libosmogb.map 2 files changed, 17 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/08/22508/3 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22508 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4437da74bd48ba64d3f16ea67afc26c45b6d3ac9 Gerrit-Change-Number: 22508 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 12:54:44 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 28 Jan 2021 12:54:44 +0000 Subject: Change in libosmocore[master]: gprs_ns2: drop gprs_ns2_vty, rename vty2 -> vty References: Message-ID: Hello lynxis lazus, I'd like you to do a code review. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22514 to review the following change. Change subject: gprs_ns2: drop gprs_ns2_vty, rename vty2 -> vty ...................................................................... gprs_ns2: drop gprs_ns2_vty, rename vty2 -> vty Drop the vty(1) code and replace it with vty2. The vty(1) was only used as intermediate to not develop a vty while developing a new code base behind. Users of gprs_ns2_ has to use the new vty code. API change which must be synchronized with osmo-pcu, osmo-gbproxy, osmo-sgsn. Change-Id: Ic2059e75d8ede8e5c29c4fef6be608ed79c8a97c --- M include/osmocom/gprs/gprs_ns2.h M src/gb/Makefile.am M src/gb/gprs_ns2_vty.c D src/gb/gprs_ns2_vty2.c M src/gb/libosmogb.map M utils/osmo-ns-dummy.c 6 files changed, 1,309 insertions(+), 2,317 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/14/22514/1 diff --git a/include/osmocom/gprs/gprs_ns2.h b/include/osmocom/gprs/gprs_ns2.h index df682db..24f45c9 100644 --- a/include/osmocom/gprs/gprs_ns2.h +++ b/include/osmocom/gprs/gprs_ns2.h @@ -261,11 +261,6 @@ const char *gprs_ns2_nsvc_state_name(struct gprs_ns2_vc *nsvc); /* vty */ -int gprs_ns2_vty_init(struct gprs_ns2_inst *nsi, - const struct osmo_sockaddr_str *default_bind); -int gprs_ns2_vty_create(); - -/* vty 2 */ -int gprs_ns2_vty2_init(struct gprs_ns2_inst *nsi); +int gprs_ns2_vty_init(struct gprs_ns2_inst *nsi); /*! @} */ diff --git a/src/gb/Makefile.am b/src/gb/Makefile.am index 031971b..d0db814 100644 --- a/src/gb/Makefile.am +++ b/src/gb/Makefile.am @@ -25,7 +25,7 @@ gprs_bssgp.c gprs_bssgp_util.c gprs_bssgp_vty.c gprs_bssgp_rim.c \ gprs_bssgp_bss.c \ gprs_ns2.c gprs_ns2_udp.c gprs_ns2_frgre.c gprs_ns2_fr.c gprs_ns2_vc_fsm.c gprs_ns2_sns.c \ - gprs_ns2_message.c gprs_ns2_vty.c gprs_ns2_vty2.c \ + gprs_ns2_message.c gprs_ns2_vty.c \ gprs_bssgp2.c bssgp_bvc_fsm.c \ common_vty.c frame_relay.c diff --git a/src/gb/gprs_ns2_vty.c b/src/gb/gprs_ns2_vty.c index f803655..b6ae5b4 100644 --- a/src/gb/gprs_ns2_vty.c +++ b/src/gb/gprs_ns2_vty.c @@ -1,9 +1,7 @@ /*! \file gprs_ns2_vty.c * VTY interface for our GPRS Networks Service (NS) implementation. */ -/* (C) 2009-2014 by Harald Welte - * (C) 2016-2017 by sysmocom - s.f.m.c. GmbH - * (C) 2020 by sysmocom - s.f.m.c. GmbH +/* (C) 2020 by sysmocom - s.f.m.c. GmbH * Author: Alexander Couzens * * All Rights Reserved @@ -33,67 +31,44 @@ #include #include -#include #include #include -#include -#include -#include -#include -#include #include +#include +#include +#include +#include +#include #include #include #include #include -#include #include #include -#include #include +#include +#include #include "gprs_ns2_internal.h" #define SHOW_NS_STR "Display information about the NS protocol\n" - -struct ns2_vty_priv { - /* global listen */ - struct osmo_sockaddr_str udp; - struct osmo_sockaddr_str frgreaddr; - int dscp; - enum gprs_ns2_vc_mode vc_mode; - bool frgre; - - struct llist_head vtyvc; -}; - -struct ns2_vty_vc { - struct llist_head list; - - struct osmo_sockaddr_str remote; - enum gprs_ns2_ll ll; - - /* old vty code doesnt support multiple NSVCI per NSEI */ - uint16_t nsei; - uint16_t nsvci; - uint16_t frdlci; - - struct { - enum osmo_fr_role role; - } fr; - - char netif[IF_NAMESIZE]; - - bool remote_end_is_sgsn; - bool configured; -}; +#define NSVCI_STR "NS Virtual Connection ID (NS-VCI)\n" +#define DLCI_STR "Data Link connection identifier\n" static struct gprs_ns2_inst *vty_nsi = NULL; -static struct ns2_vty_priv priv; static struct osmo_fr_network *vty_fr_network = NULL; +static struct llist_head binds; -/* FIXME: this should go to some common file as it is copied - * in vty_interface.c of the BSC */ +struct vty_bind { + struct llist_head list; + const char *name; + enum gprs_ns2_ll ll; + int dscp; + bool accept_ipaccess; + bool accept_sns; +}; + +/* TODO: this should into osmo timer */ static const struct value_string gprs_ns_timer_strs[] = { { 0, "tns-block" }, { 1, "tns-block-retries" }, @@ -108,28 +83,51 @@ { 0, NULL } }; -static void log_set_nse_filter(struct log_target *target, - struct gprs_ns2_nse *nse) +const struct value_string vty_fr_role_names[] = { + { FR_ROLE_USER_EQUIPMENT, "fr" }, + { FR_ROLE_NETWORK_EQUIPMENT, "frnet" }, + { 0, NULL } +}; + +const struct value_string vty_ll_names[] = { + { GPRS_NS2_LL_FR, "fr" }, + { GPRS_NS2_LL_FR_GRE, "frgre" }, + { GPRS_NS2_LL_UDP, "udp" }, + { 0, NULL } +}; + +static struct vty_bind *vty_bind_by_name(const char *name) { - if (nse) { - target->filter_map |= (1 << LOG_FLT_GB_NSE); - target->filter_data[LOG_FLT_GB_NSE] = nse; - } else if (target->filter_data[LOG_FLT_GB_NSE]) { - target->filter_map = ~(1 << LOG_FLT_GB_NSE); - target->filter_data[LOG_FLT_GB_NSE] = NULL; + struct vty_bind *vbind; + llist_for_each_entry(vbind, &binds, list) { + if (!strncmp(vbind->name, name, strlen(vbind->name))) + return vbind; } + return NULL; } -static void log_set_nsvc_filter(struct log_target *target, - struct gprs_ns2_vc *nsvc) +static struct vty_bind *vty_bind_alloc(const char *name) { - if (nsvc) { - target->filter_map |= (1 << LOG_FLT_GB_NSVC); - target->filter_data[LOG_FLT_GB_NSVC] = nsvc; - } else if (target->filter_data[LOG_FLT_GB_NSVC]) { - target->filter_map = ~(1 << LOG_FLT_GB_NSVC); - target->filter_data[LOG_FLT_GB_NSVC] = NULL; + struct vty_bind *vbind = talloc_zero(vty_nsi, struct vty_bind); + if (!vbind) + return NULL; + + vbind->name = talloc_strdup(vty_nsi, name); + if (!vbind->name) { + talloc_free(vbind); + return NULL; } + + llist_add(&vbind->list, &binds); + return vbind; +} + +static void vty_bind_free(struct vty_bind *vbind) +{ + if (!vbind) + return; + + llist_del(&vbind->list); } static struct cmd_node ns_node = { @@ -138,130 +136,6 @@ 1, }; -static struct ns2_vty_vc *vtyvc_alloc(uint16_t nsei) { - struct ns2_vty_vc *vtyvc = talloc_zero(vty_nsi, struct ns2_vty_vc); - if (!vtyvc) - return vtyvc; - - vtyvc->nsei = nsei; - - llist_add(&vtyvc->list, &priv.vtyvc); - - return vtyvc; -} - -static void ns2_vc_free(struct ns2_vty_vc *vtyvc) { - if (!vtyvc) - return; - - llist_del(&vtyvc->list); - talloc_free(vtyvc); -} - -static struct ns2_vty_vc *vtyvc_by_nsei(uint16_t nsei, bool alloc_missing) { - struct ns2_vty_vc *vtyvc; - - llist_for_each_entry(vtyvc, &priv.vtyvc, list) { - if (vtyvc->nsei == nsei) - return vtyvc; - } - - if (!alloc_missing) - return NULL; - - vtyvc = vtyvc_alloc(nsei); - if (!vtyvc) - return vtyvc; - - vtyvc->nsei = nsei; - return vtyvc; -} - -static int config_write_ns(struct vty *vty) -{ - struct ns2_vty_vc *vtyvc; - unsigned int i; - struct osmo_sockaddr_str sockstr; - - vty_out(vty, "ns%s", VTY_NEWLINE); - - /* global configuration must be written first, as some of it may be - * relevant when creating the NSE/NSVC later below */ - - vty_out(vty, " encapsulation framerelay-gre enabled %u%s", - priv.frgre ? 1 : 0, VTY_NEWLINE); - - if (priv.frgre) { - if (strlen(priv.frgreaddr.ip)) { - vty_out(vty, " encapsulation framerelay-gre local-ip %s%s", - sockstr.ip, VTY_NEWLINE); - } - } else { - if (strlen(priv.udp.ip)) { - vty_out(vty, " encapsulation udp local-ip %s%s", - priv.udp.ip, VTY_NEWLINE); - } - - if (priv.udp.port) - vty_out(vty, " encapsulation udp local-port %u%s", - priv.udp.port, VTY_NEWLINE); - } - - if (priv.dscp) - vty_out(vty, " encapsulation udp dscp %d%s", - priv.dscp, VTY_NEWLINE); - - vty_out(vty, " encapsulation udp use-reset-block-unblock %s%s", - priv.vc_mode == GPRS_NS2_VC_MODE_BLOCKRESET ? "enabled" : "disabled", VTY_NEWLINE); - - llist_for_each_entry(vtyvc, &priv.vtyvc, list) { - vty_out(vty, " nse %u nsvci %u%s", - vtyvc->nsei, vtyvc->nsvci, VTY_NEWLINE); - - vty_out(vty, " nse %u remote-role %s%s", - vtyvc->nsei, vtyvc->remote_end_is_sgsn ? "sgsn" : "bss", - VTY_NEWLINE); - - switch (vtyvc->ll) { - case GPRS_NS2_LL_UDP: - vty_out(vty, " nse %u encapsulation udp%s", vtyvc->nsei, VTY_NEWLINE); - vty_out(vty, " nse %u remote-ip %s%s", - vtyvc->nsei, - vtyvc->remote.ip, - VTY_NEWLINE); - vty_out(vty, " nse %u remote-port %u%s", - vtyvc->nsei, vtyvc->remote.port, - VTY_NEWLINE); - break; - case GPRS_NS2_LL_FR_GRE: - vty_out(vty, " nse %u encapsulation framerelay-gre%s", - vtyvc->nsei, VTY_NEWLINE); - vty_out(vty, " nse %u remote-ip %s%s", - vtyvc->nsei, - vtyvc->remote.ip, - VTY_NEWLINE); - vty_out(vty, " nse %u fr-dlci %u%s", - vtyvc->nsei, vtyvc->frdlci, - VTY_NEWLINE); - break; - case GPRS_NS2_LL_FR: - vty_out(vty, " nse %u fr %s dlci %u%s", - vtyvc->nsei, vtyvc->netif, vtyvc->frdlci, - VTY_NEWLINE); - break; - default: - break; - } - } - - for (i = 0; i < ARRAY_SIZE(vty_nsi->timeout); i++) - vty_out(vty, " timer %s %u%s", - get_value_string(gprs_ns_timer_strs, i), - vty_nsi->timeout[i], VTY_NEWLINE); - - return CMD_SUCCESS; -} - DEFUN(cfg_ns, cfg_ns_cmd, "ns", "Configure the GPRS Network Service") @@ -270,6 +144,1183 @@ return CMD_SUCCESS; } +DEFUN(cfg_ns_timer, cfg_ns_timer_cmd, + "timer " NS_TIMERS " <0-65535>", + "Network Service Timer\n" + NS_TIMERS_HELP "Timer Value\n") +{ + int idx = get_string_value(gprs_ns_timer_strs, argv[0]); + int val = atoi(argv[1]); + + if (idx < 0 || idx >= ARRAY_SIZE(vty_nsi->timeout)) + return CMD_WARNING; + + vty_nsi->timeout[idx] = val; + + return CMD_SUCCESS; +} + +DEFUN(cfg_ns_nsei, cfg_ns_nsei_cmd, + "nse <0-65535>", + "Persistent NS Entity\n" + "NS Entity ID (NSEI)\n" + ) +{ + struct gprs_ns2_nse *nse; + uint16_t nsei = atoi(argv[0]); + + nse = gprs_ns2_nse_by_nsei(vty_nsi, nsei); + if (!nse) { + nse = gprs_ns2_create_nse(vty_nsi, nsei, GPRS_NS2_LL_UNDEF, GPRS_NS2_DIALECT_UNDEF); + if (!nse) { + vty_out(vty, "Failed to create NSE!%s", VTY_NEWLINE); + return CMD_ERR_INCOMPLETE; + } + nse->persistent = true; + } + + if (!nse->persistent) { + /* TODO: should the dynamic NSE removed? */ + vty_out(vty, "A dynamic NSE with the specified NSEI already exists%s", VTY_NEWLINE); + return CMD_ERR_INCOMPLETE; + } + + vty->node = L_NS_NSE_NODE; + vty->index = nse; + + return CMD_SUCCESS; +} + +DEFUN(cfg_no_ns_nsei, cfg_no_ns_nsei_cmd, + "no nse <0-65535>", + NO_STR + "Delete a Persistent NS Entity\n" + "NS Entity ID (NSEI)\n" + ) +{ + struct gprs_ns2_nse *nse; + uint16_t nsei = atoi(argv[0]); + + nse = gprs_ns2_nse_by_nsei(vty_nsi, nsei); + if (!nse) { + vty_out(vty, "Can not find NS Entity %s%s", argv[0], VTY_NEWLINE); + return CMD_ERR_NOTHING_TODO; + } + + if (!nse->persistent) { + vty_out(vty, "Ignoring non-persistent NS Entity%s", VTY_NEWLINE); + return CMD_WARNING; + } + + vty_out(vty, "Deleting NS Entity %u%s", nse->nsei, VTY_NEWLINE); + gprs_ns2_free_nse(nse); + return CMD_SUCCESS; +} + +/* TODO: add fr/gre */ +DEFUN(cfg_ns_bind, cfg_ns_bind_cmd, + "bind (fr|udp) ID", + "Binding\n" + "Frame Relay\n" "UDP/IP\n" + "a unique identifier for this bind to reference NS-VCs\n" + ) +{ + const char *nstype = argv[0]; + const char *name = argv[1]; + struct vty_bind *vbind; + enum gprs_ns2_ll ll; + int rc; + + rc = get_string_value(vty_ll_names, nstype); + if (rc < 0) + return CMD_WARNING; + ll = (enum gprs_ns2_ll) rc; + + if (!osmo_identifier_valid(name)) { + vty_out(vty, "Invalid ID. The ID should be only alphanumeric.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + vbind = vty_bind_by_name(name); + if (vbind) { + if (vbind->ll != ll) { + vty_out(vty, "A bind with the specified ID already exists with a different type (fr|frgre|udp)!%s", + VTY_NEWLINE); + return CMD_WARNING; + } + } else { + vbind = vty_bind_alloc(name); + if (!vbind) { + vty_out(vty, "Can not create bind - out of memory%s", VTY_NEWLINE); + return CMD_WARNING; + } + vbind->ll = ll; + } + + vty->index = vbind; + vty->node = L_NS_BIND_NODE; + + return CMD_SUCCESS; +} + +DEFUN(cfg_no_ns_bind, cfg_no_ns_bind_cmd, + "no bind ID", + NO_STR + "Delete a binding\n" + "a unique identifier for this bind to reference NS-VCs\n" + ) +{ + struct vty_bind *vbind; + struct gprs_ns2_vc_bind *bind; + const char *name = argv[0]; + + vbind = vty_bind_by_name(name); + if (!vbind) { + vty_out(vty, "bind %s does not exist!%s", name, VTY_NEWLINE); + return CMD_WARNING; + } + vty_bind_free(vbind); + bind = gprs_ns2_bind_by_name(vty_nsi, name); + if (bind) + bind->driver->free_bind(bind); + return CMD_SUCCESS; +} + + +static void config_write_vbind(struct vty *vty, struct vty_bind *vbind) +{ + struct gprs_ns2_vc_bind *bind; + const struct osmo_sockaddr *addr; + struct osmo_sockaddr_str addr_str; + const char *netif, *frrole_str, *llstr; + enum osmo_fr_role frrole; + + llstr = get_value_string_or_null(vty_ll_names, vbind->ll); + if (!llstr) + return; + vty_out(vty, " bind %s %s%s", llstr, vbind->name, VTY_NEWLINE); + + bind = gprs_ns2_bind_by_name(vty_nsi, vbind->name); + switch (vbind->ll) { + case GPRS_NS2_LL_FR: + if (bind) { + netif = gprs_ns2_fr_bind_netif(bind); + if (!netif) + return; + frrole = gprs_ns2_fr_bind_role(bind); + if ((int) frrole == -1) + return; + frrole_str = get_value_string_or_null(vty_fr_role_names, frrole); + if (netif && frrole_str) + vty_out(vty, " fr %s %s%s", netif, frrole_str, VTY_NEWLINE); + } + break; + case GPRS_NS2_LL_UDP: + if (bind) { + addr = gprs_ns2_ip_bind_sockaddr(bind); + if (!osmo_sockaddr_str_from_sockaddr(&addr_str, &addr->u.sas)) { + vty_out(vty, " listen %s %u%s", addr_str.ip, addr_str.port, + VTY_NEWLINE); + } + } + if (vbind->accept_ipaccess) + vty_out(vty, " accept-ipaccess%s", VTY_NEWLINE); + if (vbind->dscp) + vty_out(vty, " dscp %u%s", vbind->dscp, VTY_NEWLINE); + break; + default: + return; + } +} + +static void config_write_nsvc(struct vty *vty, const struct gprs_ns2_vc *nsvc) +{ + const char *netif; + uint16_t dlci; + const struct osmo_sockaddr *addr; + struct osmo_sockaddr_str addr_str; + + switch (nsvc->nse->ll) { + case GPRS_NS2_LL_UNDEF: + break; + case GPRS_NS2_LL_UDP: + switch (nsvc->nse->dialect) { + case GPRS_NS2_DIALECT_IPACCESS: + addr = gprs_ns2_ip_vc_remote(nsvc); + if (!addr) + break; + if (osmo_sockaddr_str_from_sockaddr(&addr_str, &addr->u.sas)) + break; + vty_out(vty, " nsvc ipa %s %s %u nsvci %u%s", + nsvc->bind->name, addr_str.ip, addr_str.port, + nsvc->nsvci, VTY_NEWLINE); + break; + case GPRS_NS2_DIALECT_STATIC_ALIVE: + addr = gprs_ns2_ip_vc_remote(nsvc); + if (!addr) + break; + if (osmo_sockaddr_str_from_sockaddr(&addr_str, &addr->u.sas)) + break; + vty_out(vty, " nsvc udp %s %s %u%s", + nsvc->bind->name, addr_str.ip, addr_str.port, VTY_NEWLINE); + break; + default: + break; + } + break; + case GPRS_NS2_LL_FR: + netif = gprs_ns2_fr_bind_netif(nsvc->bind); + if (!netif) + break; + dlci = gprs_ns2_fr_nsvc_dlci(nsvc); + if (!dlci) + break; + OSMO_ASSERT(nsvc->nsvci_is_valid); + vty_out(vty, " nsvc fr %s dlci %u nsvci %u%s", + netif, dlci, nsvc->nsvci, VTY_NEWLINE); + break; + case GPRS_NS2_LL_FR_GRE: + break; + } +} + +static void _config_write_ns_nse(struct vty *vty, struct gprs_ns2_nse *nse) +{ + struct gprs_ns2_vc *nsvc; + + vty_out(vty, " nse %u%s", nse->nsei, VTY_NEWLINE); + switch (nse->dialect) { + case GPRS_NS2_DIALECT_SNS: + ns2_sns_write_vty(vty, nse); + break; + default: + llist_for_each_entry(nsvc, &nse->nsvc, list) { + config_write_nsvc(vty, nsvc); + } + break; + } +} + +static int config_write_ns(struct vty *vty) +{ + unsigned int i; + + vty_out(vty, "ns%s", VTY_NEWLINE); + + for (i = 0; i < ARRAY_SIZE(vty_nsi->timeout); i++) + vty_out(vty, " timer %s %u%s", + get_value_string(gprs_ns_timer_strs, i), + vty_nsi->timeout[i], VTY_NEWLINE); + + return 0; +} + +static int config_write_ns_nse(struct vty *vty) +{ + struct gprs_ns2_nse *nse; + + llist_for_each_entry(nse, &vty_nsi->nse, list) { + if (!nse->persistent) + continue; + + _config_write_ns_nse(vty, nse); + } + + return 0; +} + +static int config_write_ns_bind(struct vty *vty) +{ + struct vty_bind *vbind; + + llist_for_each_entry(vbind, &binds, list) { + config_write_vbind(vty, vbind); + } + + return 0; +} + +static struct cmd_node ns_bind_node = { + L_NS_BIND_NODE, + "%s(config-ns-bind)# ", + 1, +}; + +DEFUN(cfg_ns_bind_listen, cfg_ns_bind_listen_cmd, + "listen " VTY_IPV46_CMD " <1-65535>", + "Binding\n" + "IPv4 Address\n" "IPv6 Address\n" + "Port\n" + ) +{ + struct vty_bind *vbind = vty->index; + struct gprs_ns2_vc_bind *bind; + + const char *addr_str = argv[0]; + unsigned int port = atoi(argv[1]); + struct osmo_sockaddr_str sockaddr_str; + struct osmo_sockaddr sockaddr; + + if (vbind->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "listen can be only used with UDP bind%s", + VTY_NEWLINE); + return CMD_WARNING; + } + + if (osmo_sockaddr_str_from_str(&sockaddr_str, addr_str, port)) { + vty_out(vty, "Can not parse the Address %s %s%s", argv[0], argv[1], VTY_NEWLINE); + return CMD_WARNING; + } + osmo_sockaddr_str_to_sockaddr(&sockaddr_str, &sockaddr.u.sas); + if (gprs_ns2_ip_bind_by_sockaddr(vty_nsi, &sockaddr)) { + vty_out(vty, "A bind with the specified address already exists!%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (gprs_ns2_ip_bind(vty_nsi, vbind->name, &sockaddr, vbind->dscp, &bind) != 0) { + vty_out(vty, "Failed to create the bind!%s", VTY_NEWLINE); + return CMD_WARNING; + } + + bind->accept_ipaccess = vbind->accept_ipaccess; + bind->accept_sns = vbind->accept_sns; + + return CMD_SUCCESS; +} + +DEFUN(cfg_no_ns_bind_listen, cfg_no_ns_bind_listen_cmd, + "no listen", + NO_STR + "Delete a IP/Port assignment\n" + ) +{ + struct vty_bind *vbind = vty->index; + struct gprs_ns2_vc_bind *bind; + + if (vbind->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "no listen can be only used with UDP bind%s", VTY_NEWLINE); + return CMD_WARNING; + } + + bind = gprs_ns2_bind_by_name(vty_nsi, vbind->name); + if (!bind) + return CMD_ERR_NOTHING_TODO; + + OSMO_ASSERT(bind->ll != GPRS_NS2_LL_UDP); + bind->driver->free_bind(bind); + return CMD_SUCCESS; +} + +DEFUN(cfg_ns_bind_dscp, cfg_ns_bind_dscp_cmd, + "dscp <0-255>", + "Set DSCP/TOS on the UDP socket\n" "DSCP Value\n") +{ + struct vty_bind *vbind = vty->index; + struct gprs_ns2_vc_bind *bind; + uint16_t dscp = atoi(argv[0]); + + if (vbind->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "dscp can be only used with UDP bind%s", + VTY_NEWLINE); + return CMD_WARNING; + } + + vbind->dscp = dscp; + bind = gprs_ns2_bind_by_name(vty_nsi, vbind->name); + if (bind) + gprs_ns2_ip_bind_set_dscp(bind, dscp); + + return CMD_SUCCESS; +} + +DEFUN(cfg_no_ns_bind_dscp, cfg_no_ns_bind_dscp_cmd, + "no dscp", + "Set DSCP/TOS on the UDP socket\n" "DSCP Value\n") +{ + struct vty_bind *vbind = vty->index; + struct gprs_ns2_vc_bind *bind; + uint16_t dscp = 0; + + if (vbind->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "dscp can be only used with UDP bind%s", + VTY_NEWLINE); + return CMD_WARNING; + } + + vbind->dscp = dscp; + bind = gprs_ns2_bind_by_name(vty_nsi, vbind->name); + if (bind) + gprs_ns2_ip_bind_set_dscp(bind, dscp); + + return CMD_SUCCESS; +} + +DEFUN(cfg_ns_bind_ipaccess, cfg_ns_bind_ipaccess_cmd, + "accept-ipaccess", + "Allow to create dynamic NS Entity by NS Reset PDU on UDP (ip.access style)\n" + ) +{ + struct vty_bind *vbind = vty->index; + struct gprs_ns2_vc_bind *bind; + + if (vbind->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "accept-ipaccess can be only used with UDP bind%s", + VTY_NEWLINE); + return CMD_WARNING; + } + + vbind->accept_ipaccess = true; + bind = gprs_ns2_bind_by_name(vty_nsi, vbind->name); + if (bind) + bind->accept_ipaccess = true; + + return CMD_SUCCESS; +} + +DEFUN(cfg_no_ns_bind_ipaccess, cfg_no_ns_bind_ipaccess_cmd, + "no accept-ipaccess", + NO_STR + "Reject NS Reset PDU on UDP (ip.access style)\n" + ) +{ + struct vty_bind *vbind = vty->index; + struct gprs_ns2_vc_bind *bind; + + if (vbind->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "no accept-ipaccess can be only used with UDP bind%s", + VTY_NEWLINE); + return CMD_WARNING; + } + + vbind->accept_ipaccess = false; + bind = gprs_ns2_bind_by_name(vty_nsi, vbind->name); + if (bind) + bind->accept_ipaccess = false; + + return CMD_SUCCESS; +} + + +DEFUN(cfg_ns_bind_fr, cfg_ns_bind_fr_cmd, + "fr NETIF (fr|frnet)", + "frame relay\n" + IFNAME_STR + "fr (user) is used by BSS or SGSN attached to UNI of a FR network\n" + "frnet (network) is used by SGSN if BSS is directly attached\n" + ) +{ + struct vty_bind *vbind = vty->index; + struct gprs_ns2_vc_bind *bind; + const char *netif = argv[0]; + const char *role = argv[1]; + + int rc = 0; + enum osmo_fr_role frrole; + + if (vbind->ll != GPRS_NS2_LL_FR) { + vty_out(vty, "fr can be only used with frame relay bind%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (!strcmp(role, "fr")) + frrole = FR_ROLE_USER_EQUIPMENT; + else if (!strcmp(role, "frnet")) + frrole = FR_ROLE_NETWORK_EQUIPMENT; + else + return CMD_WARNING; + + bind = gprs_ns2_fr_bind_by_netif(vty_nsi, netif); + if (bind) { + vty_out(vty, "Interface %s already used.%s", netif, VTY_NEWLINE); + return CMD_WARNING; + } + + rc = gprs_ns2_fr_bind(vty_nsi, vbind->name, netif, vty_fr_network, frrole, &bind); + if (rc < 0) { + LOGP(DLNS, LOGL_ERROR, "Failed to bind interface %s on fr. Err: %d\n", netif, rc); + return CMD_WARNING; + } + + return CMD_SUCCESS; +} + +DEFUN(cfg_no_ns_bind_fr, cfg_no_ns_bind_fr_cmd, + "no fr NETIF", + NO_STR + "Delete a frame relay link\n" + "Delete a frame relay link\n" + IFNAME_STR + ) +{ + struct vty_bind *vbind = vty->index; + struct gprs_ns2_vc_bind *bind; + const char *netif = argv[0]; + + if (vbind->ll != GPRS_NS2_LL_FR) { + vty_out(vty, "fr can be only used with frame relay bind%s", + VTY_NEWLINE); + return CMD_WARNING; + } + + bind = gprs_ns2_fr_bind_by_netif(vty_nsi, netif); + if (!bind) { + vty_out(vty, "Interface not found.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (strcmp(bind->name, vbind->name)) { + vty_out(vty, "The specified interface is not bound to this bind.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + bind->driver->free_bind(bind); + return CMD_SUCCESS; +} + + +static struct cmd_node ns_nse_node = { + L_NS_NSE_NODE, + "%s(config-ns-nse)# ", + 1, +}; + +DEFUN(cfg_ns_nse_nsvc_fr, cfg_ns_nse_nsvc_fr_cmd, + "nsvc fr NETIF dlci <16-1007> nsvci <0-65535>", + "NS Virtual Connection\n" + "frame relay\n" + "frame relay interface. Must be registered via fr vty\n" + NSVCI_STR + NSVCI_STR + DLCI_STR + DLCI_STR + ) +{ + struct gprs_ns2_vc_bind *bind; + struct gprs_ns2_vc *nsvc; + struct gprs_ns2_nse *nse = vty->index; + const char *netif = argv[0]; + uint16_t dlci = atoi(argv[1]); + uint16_t nsvci = atoi(argv[2]); + bool dialect_modified = false; + bool ll_modified = false; + + if (nse->ll != GPRS_NS2_LL_FR && nse->ll != GPRS_NS2_LL_UNDEF) { + vty_out(vty, "Can not mix NS-VC with different link layer%s", VTY_NEWLINE); + goto err; + } + + if (nse->dialect != GPRS_NS2_DIALECT_STATIC_RESETBLOCK && nse->dialect != GPRS_NS2_DIALECT_UNDEF) { + vty_out(vty, "Can not mix NS-VC with different dialects%s", VTY_NEWLINE); + goto err; + } + + if (nse->ll == GPRS_NS2_LL_UNDEF) { + nse->ll = GPRS_NS2_LL_FR; + ll_modified = true; + } + + if (nse->dialect == GPRS_NS2_DIALECT_UNDEF) { + nse->dialect = GPRS_NS2_DIALECT_STATIC_RESETBLOCK; + dialect_modified = true; + } + + + bind = gprs_ns2_fr_bind_by_netif(vty_nsi, netif); + if (!bind) { + vty_out(vty, "Can not find fr interface \"%s\". Please configure it via fr vty.%s", + netif, VTY_NEWLINE); + goto err; + } + + if (gprs_ns2_fr_nsvc_by_dlci(bind, dlci)) { + vty_out(vty, "A NS-VC with the specified DLCI already exist!%s", VTY_NEWLINE); + goto err; + } + + if (gprs_ns2_nsvc_by_nsvci(vty_nsi, nsvci)) { + vty_out(vty, "A NS-VC with the specified NS-VCI already exist!%s", VTY_NEWLINE); + goto err; + } + + nsvc = gprs_ns2_fr_connect(bind, nse, nsvci, dlci); + if (!nsvc) { + /* Could not create NS-VC, connect failed */ + vty_out(vty, "Failed to create the NS-VC%s", VTY_NEWLINE); + goto err; + } + nsvc->persistent = true; + return CMD_SUCCESS; + +err: + if (ll_modified) + nse->ll = GPRS_NS2_LL_UNDEF; + if (dialect_modified) + nse->dialect = GPRS_NS2_DIALECT_UNDEF; + + return CMD_WARNING; +} + +DEFUN(cfg_no_ns_nse_nsvc_fr_dlci, cfg_no_ns_nse_nsvc_fr_dlci_cmd, + "no nsvc fr NETIF dlci <16-1007>", + NO_STR + "Delete frame relay NS-VC\n" + "frame relay\n" + "frame relay interface. Must be registered via fr vty\n" + DLCI_STR + DLCI_STR + ) +{ + struct gprs_ns2_vc_bind *bind; + struct gprs_ns2_vc *nsvc; + struct gprs_ns2_nse *nse = vty->index; + const char *netif = argv[0]; + uint16_t dlci = atoi(argv[1]); + + if (nse->ll != GPRS_NS2_LL_FR) { + vty_out(vty, "This NSE doesn't support frame relay.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + bind = gprs_ns2_fr_bind_by_netif(vty_nsi, netif); + if (!bind) { + vty_out(vty, "Can not find fr interface \"%s\"%s", + netif, VTY_NEWLINE); + return CMD_ERR_NOTHING_TODO; + } + + nsvc = gprs_ns2_fr_nsvc_by_dlci(bind, dlci); + if (!nsvc) { + vty_out(vty, "Can not find a NS-VC on fr interface %s with dlci %u%s", + netif, dlci, VTY_NEWLINE); + return CMD_WARNING; + } + + if (nse != nsvc->nse) { + vty_out(vty, "The specified NS-VC is not a part of the NSE %u!%s" + "To remove this NS-VC go to the vty node 'nse %u'%s", + nse->nsei, VTY_NEWLINE, + nsvc->nse->nsei, VTY_NEWLINE); + return CMD_WARNING; + } + + gprs_ns2_free_nsvc(nsvc); + if (llist_empty(&nse->nsvc)) { + nse->ll = GPRS_NS2_LL_UNDEF; + nse->dialect = GPRS_NS2_DIALECT_UNDEF; + } + + return CMD_SUCCESS; +} + +DEFUN(cfg_no_ns_nse_nsvci, cfg_no_ns_nse_nsvci_cmd, + "no nsvc nsvci <0-65535>", + NO_STR + "Delete NSVC\n" + NSVCI_STR + NSVCI_STR + ) +{ + struct gprs_ns2_vc *nsvc; + struct gprs_ns2_nse *nse = vty->index; + uint16_t nsvci = atoi(argv[0]); + + switch (nse->dialect) { + case GPRS_NS2_DIALECT_SNS: + case GPRS_NS2_DIALECT_STATIC_ALIVE: + vty_out(vty, "NSE doesn't support NSVCI.%s", VTY_NEWLINE); + return CMD_WARNING; + case GPRS_NS2_DIALECT_UNDEF: + vty_out(vty, "No NSVCs configured%s", VTY_NEWLINE); + return CMD_WARNING; + case GPRS_NS2_DIALECT_IPACCESS: + case GPRS_NS2_DIALECT_STATIC_RESETBLOCK: + break; + } + + nsvc = gprs_ns2_nsvc_by_nsvci(vty_nsi, nsvci); + if (!nsvc) { + vty_out(vty, "Can not find NS-VC with NS-VCI %u%s", nsvci, VTY_NEWLINE); + return CMD_WARNING; + } + + if (nse != nsvc->nse) { + vty_out(vty, "NS-VC with NS-VCI %u is not part of this NSE!%s", + nsvci, VTY_NEWLINE); + return CMD_WARNING; + } + + gprs_ns2_free_nsvc(nsvc); + if (llist_empty(&nse->nsvc)) { + nse->ll = GPRS_NS2_LL_UNDEF; + nse->dialect = GPRS_NS2_DIALECT_UNDEF; + } + + return CMD_SUCCESS; +} + +DEFUN(cfg_ns_nse_nsvc_udp, cfg_ns_nse_nsvc_udp_cmd, + "nsvc udp BIND " VTY_IPV46_CMD " <1-65535>", + "NS Virtual Connection\n" + "NS over UDP\n" + "A unique bind identifier created by ns bind\n" + "Remote IPv4 Address\n" "Remote IPv6 Address\n" + "Remote UDP Port\n" + ) +{ + struct gprs_ns2_vc_bind *bind; + struct gprs_ns2_vc *nsvc; + struct gprs_ns2_nse *nse = vty->index; + bool dialect_modified = false; + bool ll_modified = false; + + const char *bind_name = argv[0]; + struct osmo_sockaddr_str remote_str; + struct osmo_sockaddr remote; + uint16_t port = atoi(argv[2]); + + if (nse->ll == GPRS_NS2_LL_UNDEF) { + nse->ll = GPRS_NS2_LL_UDP; + ll_modified = true; + } + + if (nse->dialect == GPRS_NS2_DIALECT_UNDEF) { + nse->dialect = GPRS_NS2_DIALECT_STATIC_ALIVE; + dialect_modified = true; + } + + if (nse->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "Can not mix NS-VC with different link layer%s", VTY_NEWLINE); + goto err; + } + + if (nse->dialect != GPRS_NS2_DIALECT_STATIC_ALIVE) { + vty_out(vty, "Can not mix NS-VC with different dialects%s", VTY_NEWLINE); + goto err; + } + + if (osmo_sockaddr_str_from_str(&remote_str, argv[1], port)) { + vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); + goto err; + } + + if (osmo_sockaddr_str_to_sockaddr(&remote_str, &remote.u.sas)) { + vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); + goto err; + } + + bind = gprs_ns2_bind_by_name(vty_nsi, bind_name); + if (!bind) { + vty_out(vty, "Can not find bind with name %s%s", + bind_name, VTY_NEWLINE); + goto err; + } + + if (bind->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "Bind %s is not an UDP bind.%s", + bind_name, VTY_NEWLINE); + goto err; + } + + nsvc = gprs_ns2_ip_connect(bind, &remote, nse, 0); + if (!nsvc) { + vty_out(vty, "Can not create NS-VC.%s", VTY_NEWLINE); + goto err; + } + nsvc->persistent = true; + + return CMD_SUCCESS; + +err: + if (ll_modified) + nse->ll = GPRS_NS2_LL_UNDEF; + if (dialect_modified) + nse->dialect = GPRS_NS2_DIALECT_UNDEF; + return CMD_WARNING; +} + +DEFUN(cfg_no_ns_nse_nsvc_udp, cfg_no_ns_nse_nsvc_udp_cmd, + "no nsvc udp BIND " VTY_IPV46_CMD " <1-65535>", + NO_STR + "Delete a NS Virtual Connection\n" + "NS over UDP\n" + "A unique bind identifier created by ns bind\n" + "Remote IPv4 Address\n" "Remote IPv6 Address\n" + "Remote UDP Port\n" + ) +{ + struct gprs_ns2_vc_bind *bind; + struct gprs_ns2_vc *nsvc; + struct gprs_ns2_nse *nse = vty->index; + const char *bind_name = argv[0]; + struct osmo_sockaddr_str remote_str; + struct osmo_sockaddr remote; + uint16_t port = atoi(argv[2]); + + if (nse->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "This NSE doesn't support UDP.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (nse->dialect != GPRS_NS2_DIALECT_STATIC_ALIVE) { + vty_out(vty, "This NSE doesn't support UDP with dialect static alive.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + bind = gprs_ns2_bind_by_name(vty_nsi, bind_name); + if (!bind) { + vty_out(vty, "Can not find bind with name %s%s", + bind_name, VTY_NEWLINE); + return CMD_WARNING; + } + + if (bind->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "Bind %s is not an UDP bind.%s", + bind_name, VTY_NEWLINE); + return CMD_WARNING; + } + + if (osmo_sockaddr_str_from_str(&remote_str, argv[1], port)) { + vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (osmo_sockaddr_str_to_sockaddr(&remote_str, &remote.u.sas)) { + vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + nsvc = gprs_ns2_nsvc_by_sockaddr_bind(bind, &remote); + if (!nsvc) { + vty_out(vty, "Can not find NS-VC with remote %s:%u%s", + remote_str.ip, remote_str.port, VTY_NEWLINE); + return CMD_WARNING; + } + + if (!nsvc->persistent) { + vty_out(vty, "NS-VC with remote %s:%u is a dynamic NS-VC. Not configured by vty.%s", + remote_str.ip, remote_str.port, VTY_NEWLINE); + return CMD_WARNING; + } + + if (nsvc->nse != nse) { + vty_out(vty, "NS-VC is not part of this NSE!%s", VTY_NEWLINE); + return CMD_WARNING; + } + + gprs_ns2_free_nsvc(nsvc); + if (llist_empty(&nse->nsvc)) { + nse->ll = GPRS_NS2_LL_UNDEF; + nse->dialect = GPRS_NS2_DIALECT_UNDEF; + } + + return CMD_SUCCESS; +} + +DEFUN(cfg_ns_nse_nsvc_ipa, cfg_ns_nse_nsvc_ipa_cmd, + "nsvc ipa BIND " VTY_IPV46_CMD " <1-65535> nsvci <0-65535>" , + "NS Virtual Connection\n" + "NS over UDP ip.access style (uses RESET/BLOCK)\n" + "A unique bind identifier created by ns bind\n" + "Remote IPv4 Address\n" "Remote IPv6 Address\n" + "Remote UDP Port\n" + NSVCI_STR + NSVCI_STR + ) +{ + struct gprs_ns2_vc_bind *bind; + struct gprs_ns2_vc *nsvc; + struct gprs_ns2_nse *nse = vty->index; + bool dialect_modified = false; + bool ll_modified = false; + + const char *bind_name = argv[0]; + struct osmo_sockaddr_str remote_str; + struct osmo_sockaddr remote; + uint16_t port = atoi(argv[2]); + uint16_t nsvci = atoi(argv[3]); + + if (nse->ll == GPRS_NS2_LL_UNDEF) { + nse->ll = GPRS_NS2_LL_UDP; + ll_modified = true; + } + + if (nse->dialect == GPRS_NS2_DIALECT_UNDEF) { + nse->dialect = GPRS_NS2_DIALECT_IPACCESS; + dialect_modified = true; + } + + if (nse->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "Can not mix NS-VC with different link layer%s", VTY_NEWLINE); + goto err; + } + + if (nse->dialect != GPRS_NS2_DIALECT_IPACCESS) { + vty_out(vty, "Can not mix NS-VC with different dialects%s", VTY_NEWLINE); + goto err; + } + + if (osmo_sockaddr_str_from_str(&remote_str, argv[1], port)) { + vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); + goto err; + } + + if (osmo_sockaddr_str_to_sockaddr(&remote_str, &remote.u.sas)) { + vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); + goto err; + } + + bind = gprs_ns2_bind_by_name(vty_nsi, bind_name); + if (!bind) { + vty_out(vty, "Can not find bind with name %s%s", + bind_name, VTY_NEWLINE); + goto err; + } + + if (bind->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "Bind %s is not an UDP bind.%s", + bind_name, VTY_NEWLINE); + goto err; + } + + nsvc = gprs_ns2_ip_connect(bind, &remote, nse, nsvci); + if (!nsvc) { + vty_out(vty, "Can not create NS-VC.%s", VTY_NEWLINE); + goto err; + } + nsvc->persistent = true; + + return CMD_SUCCESS; + +err: + if (ll_modified) + nse->ll = GPRS_NS2_LL_UNDEF; + if (dialect_modified) + nse->dialect = GPRS_NS2_DIALECT_UNDEF; + return CMD_WARNING; +} + +DEFUN(cfg_no_ns_nse_nsvc_ipa, cfg_no_ns_nse_nsvc_ipa_cmd, + "no nsvc ipa BIND " VTY_IPV46_CMD " <1-65535> nsvci <0-65535>", + NO_STR + "Delete a NS Virtual Connection\n" + "NS over UDP\n" + "A unique bind identifier created by ns bind\n" + "Remote IPv4 Address\n" "Remote IPv6 Address\n" + "Remote UDP Port\n" + NSVCI_STR + NSVCI_STR + ) +{ + struct gprs_ns2_vc_bind *bind; + struct gprs_ns2_vc *nsvc; + struct gprs_ns2_nse *nse = vty->index; + const char *bind_name = argv[0]; + struct osmo_sockaddr_str remote_str; + struct osmo_sockaddr remote; + uint16_t port = atoi(argv[2]); + uint16_t nsvci = atoi(argv[3]); + + if (nse->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "This NSE doesn't support UDP.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (nse->dialect != GPRS_NS2_DIALECT_IPACCESS) { + vty_out(vty, "This NSE doesn't support UDP with dialect ipaccess.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + bind = gprs_ns2_bind_by_name(vty_nsi, bind_name); + if (!bind) { + vty_out(vty, "Can not find bind with name %s%s", + bind_name, VTY_NEWLINE); + return CMD_WARNING; + } + + if (bind->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "Bind %s is not an UDP bind.%s", + bind_name, VTY_NEWLINE); + return CMD_WARNING; + } + + if (osmo_sockaddr_str_from_str(&remote_str, argv[1], port)) { + vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (osmo_sockaddr_str_to_sockaddr(&remote_str, &remote.u.sas)) { + vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + nsvc = gprs_ns2_nsvc_by_sockaddr_bind(bind, &remote); + if (!nsvc) { + vty_out(vty, "Can not find NS-VC with remote %s:%u%s", + remote_str.ip, remote_str.port, VTY_NEWLINE); + return CMD_WARNING; + } + + if (!nsvc->persistent) { + vty_out(vty, "NS-VC with remote %s:%u is a dynamic NS-VC. Not configured by vty.%s", + remote_str.ip, remote_str.port, VTY_NEWLINE); + return CMD_WARNING; + } + + if (nsvc->nse != nse) { + vty_out(vty, "NS-VC is not part of this NSE!%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (!nsvc->nsvci_is_valid) { + vty_out(vty, "NS-VC doesn't have a nsvci!%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (nsvc->nsvci != nsvci) { + vty_out(vty, "NS-VC has a different nsvci (%u)!%s", + nsvc->nsvci, VTY_NEWLINE); + return CMD_WARNING; + } + + gprs_ns2_free_nsvc(nsvc); + if (llist_empty(&nse->nsvc)) { + nse->ll = GPRS_NS2_LL_UNDEF; + nse->dialect = GPRS_NS2_DIALECT_UNDEF; + } + + return CMD_SUCCESS; +} + +DEFUN(cfg_ns_nse_ip_sns, cfg_ns_nse_ip_sns_cmd, + "ip-sns " VTY_IPV46_CMD " <1-65535>", + "SNS Initial Endpoint\n" + "SGSN IPv4 Address\n" "SGSN IPv6 Address\n" + "SGSN UDP Port\n" + ) +{ + struct gprs_ns2_nse *nse = vty->index; + bool dialect_modified = false; + bool ll_modified = false; + int rc; + + /* argv[0] */ + struct osmo_sockaddr_str remote_str; + struct osmo_sockaddr remote; + uint16_t port = atoi(argv[1]); + + if (nse->ll == GPRS_NS2_LL_UNDEF) { + nse->ll = GPRS_NS2_LL_UDP; + ll_modified = true; + } + + if (nse->dialect == GPRS_NS2_DIALECT_UNDEF) { + char sns[16]; + snprintf(sns, sizeof(sns), "NSE%05u-SNS", nse->nsei); + nse->bss_sns_fi = ns2_sns_bss_fsm_alloc(nse, sns); + if (!nse->bss_sns_fi) + goto err; + nse->dialect = GPRS_NS2_DIALECT_SNS; + dialect_modified = true; + } + + if (nse->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "Can not mix NS-VC with different link layer%s", VTY_NEWLINE); + goto err; + } + + if (nse->dialect != GPRS_NS2_DIALECT_SNS) { + vty_out(vty, "Can not mix NS-VC with different dialects%s", VTY_NEWLINE); + goto err; + } + + if (osmo_sockaddr_str_from_str(&remote_str, argv[0], port)) { + vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); + goto err; + } + + if (osmo_sockaddr_str_to_sockaddr(&remote_str, &remote.u.sas)) { + vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); + goto err; + } + + rc = gprs_ns2_sns_add_endpoint(nse, &remote); + switch (rc) { + case 0: + return CMD_SUCCESS; + case -EADDRINUSE: + vty_out(vty, "Specified SNS endpoint already part of the NSE.%s", VTY_NEWLINE); + return CMD_WARNING; + default: + vty_out(vty, "Can not add specified SNS endpoint.%s", VTY_NEWLINE); + return CMD_WARNING; + } + +err: + if (ll_modified) + nse->ll = GPRS_NS2_LL_UNDEF; + if (dialect_modified) + nse->dialect = GPRS_NS2_DIALECT_UNDEF; + return CMD_WARNING; +} + +DEFUN(cfg_no_ns_nse_ip_sns, cfg_no_ns_nse_ip_sns_cmd, + "no ip-sns " VTY_IPV46_CMD " <1-65535>", + NO_STR + "Delete a SNS Initial Endpoint\n" + "SGSN IPv4 Address\n" "SGSN IPv6 Address\n" + "SGSN UDP Port\n" + ) +{ + struct gprs_ns2_nse *nse = vty->index; + struct osmo_sockaddr_str remote_str; /* argv[0] */ + struct osmo_sockaddr remote; + uint16_t port = atoi(argv[1]); + int count; + + if (nse->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "This NSE doesn't support UDP.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (nse->dialect != GPRS_NS2_DIALECT_SNS) { + vty_out(vty, "This NSE doesn't support UDP with dialect ip-sns.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (osmo_sockaddr_str_from_str(&remote_str, argv[0], port)) { + vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (osmo_sockaddr_str_to_sockaddr(&remote_str, &remote.u.sas)) { + vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (gprs_ns2_sns_del_endpoint(nse, &remote)) { + vty_out(vty, "Can not remove specified SNS endpoint.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + count = gprs_ns2_sns_count(nse); + if (count > 0) { + /* there are other sns endpoints */ + return CMD_SUCCESS; + } else if (count < 0) { + OSMO_ASSERT(0); + } else { + /* clean up nse to allow other nsvc commands */ + osmo_fsm_inst_term(nse->bss_sns_fi, OSMO_FSM_TERM_REQUEST, NULL); + nse->bss_sns_fi = NULL; + nse->ll = GPRS_NS2_LL_UNDEF; + nse->dialect = GPRS_NS2_DIALECT_UNDEF; + } + + return CMD_SUCCESS; +} + + +/* non-config commands */ static void dump_nsvc(struct vty *vty, struct gprs_ns2_vc *nsvc, bool stats) { char nsvci_str[32]; @@ -440,7 +1491,9 @@ return CMD_WARNING; } - if (nse->dialect == GPRS_NS2_DIALECT_SNS) { + if (!nse->persistent) { + gprs_ns2_free_nse(nse); + } else if (nse->dialect == GPRS_NS2_DIALECT_SNS) { gprs_ns2_free_nsvcs(nse); } else { /* Perform the operation for all nsvc */ @@ -450,310 +1503,57 @@ return CMD_SUCCESS; } -#define NSE_CMD_STR "Persistent NS Entity\n" "NS Entity ID (NSEI)\n" - -DEFUN(cfg_nse_fr, cfg_nse_fr_cmd, - "nse <0-65535> nsvci <0-65535> (fr|frnet) NETIF dlci <0-1023>", - NSE_CMD_STR - "NS Virtual Connection\n" - "NS Virtual Connection ID (NSVCI)\n" - "Frame Relay User-Side\n" - "Frame Relay Network-Side\n" - IFNAME_STR - "Data Link connection identifier\n" - "Data Link connection identifier\n" - ) +DEFUN(nsvc_block, nsvc_block_cmd, + "nsvc <0-65535> (block|unblock)", + "NS Virtual Connection\n" + NSVCI_STR + "Block a NSVC. As cause code O&M intervention will be used.\n" + "Unblock a NSVC. As cause code O&M intervention will be used.\n") { - struct ns2_vty_vc *vtyvc; + struct gprs_ns2_inst *nsi = vty_nsi; + struct gprs_ns2_vc *nsvc; - uint16_t nsei = atoi(argv[0]); - uint16_t nsvci = atoi(argv[1]); - const char *role = argv[2]; - const char *name = argv[3]; - uint16_t dlci = atoi(argv[4]); + uint16_t id = atoi(argv[0]); - vtyvc = vtyvc_by_nsei(nsei, true); - if (!vtyvc) { - vty_out(vty, "Can not allocate space %s", VTY_NEWLINE); + nsvc = gprs_ns2_nsvc_by_nsvci(nsi, id); + if (!nsvc) { + vty_out(vty, "Could not find NSVCI %05u%s", id, VTY_NEWLINE); return CMD_WARNING; } - if (!strcmp(role, "fr")) - vtyvc->fr.role = FR_ROLE_USER_EQUIPMENT; - else if (!strcmp(role, "frnet")) - vtyvc->fr.role = FR_ROLE_NETWORK_EQUIPMENT; - - osmo_strlcpy(vtyvc->netif, name, sizeof(vtyvc->netif)); - vtyvc->frdlci = dlci; - vtyvc->nsvci = nsvci; - vtyvc->ll = GPRS_NS2_LL_FR; - - return CMD_SUCCESS; -} - -DEFUN(cfg_nse_nsvc, cfg_nse_nsvci_cmd, - "nse <0-65535> nsvci <0-65535>", - NSE_CMD_STR - "NS Virtual Connection\n" - "NS Virtual Connection ID (NSVCI)\n" - ) -{ - struct ns2_vty_vc *vtyvc; - - uint16_t nsei = atoi(argv[0]); - uint16_t nsvci = atoi(argv[1]); - - vtyvc = vtyvc_by_nsei(nsei, true); - if (!vtyvc) { - vty_out(vty, "Can not allocate space %s", VTY_NEWLINE); - return CMD_WARNING; - } - - vtyvc->nsvci = nsvci; - - return CMD_SUCCESS; -} - -DEFUN(cfg_nse_remoteip, cfg_nse_remoteip_cmd, - "nse <0-65535> remote-ip " VTY_IPV46_CMD, - NSE_CMD_STR - "Remote IP Address\n" - "Remote IPv4 Address\n" - "Remote IPv6 Address\n") -{ - uint16_t nsei = atoi(argv[0]); - struct ns2_vty_vc *vtyvc; - - vtyvc = vtyvc_by_nsei(nsei, true); - if (!vtyvc) { - vty_out(vty, "Can not allocate space %s", VTY_NEWLINE); - return CMD_WARNING; - } - - osmo_sockaddr_str_from_str2(&vtyvc->remote, argv[1]); - - return CMD_SUCCESS; -} - -DEFUN(cfg_nse_remoteport, cfg_nse_remoteport_cmd, - "nse <0-65535> remote-port <0-65535>", - NSE_CMD_STR - "Remote UDP Port\n" - "Remote UDP Port Number\n") -{ - uint16_t nsei = atoi(argv[0]); - uint16_t port = atoi(argv[1]); - struct ns2_vty_vc *vtyvc; - - vtyvc = vtyvc_by_nsei(nsei, true); - if (!vtyvc) { - vty_out(vty, "Can not allocate space %s", VTY_NEWLINE); - return CMD_WARNING; - } - - vtyvc->remote.port = port; - - return CMD_SUCCESS; -} - -DEFUN(cfg_nse_fr_dlci, cfg_nse_fr_dlci_cmd, - "nse <0-65535> nsvci <0-65535> fr-dlci <16-1007>", - NSE_CMD_STR - "NS Virtual Connection\n" - "NS Virtual Connection ID (NSVCI)\n" - "Frame Relay DLCI\n" - "Frame Relay DLCI Number\n") -{ - uint16_t nsei = atoi(argv[0]); - uint16_t nsvci = atoi(argv[1]); - uint16_t dlci = atoi(argv[2]); - struct ns2_vty_vc *vtyvc; - - vtyvc = vtyvc_by_nsei(nsei, true); - if (!vtyvc) { - vty_out(vty, "Can not allocate space %s", VTY_NEWLINE); - return CMD_WARNING; - } - - vtyvc->frdlci = dlci; - vtyvc->nsvci = nsvci; - - return CMD_SUCCESS; -} - -DEFUN(cfg_nse_encaps, cfg_nse_encaps_cmd, - "nse <0-65535> encapsulation (udp|framerelay-gre)", - NSE_CMD_STR - "Encapsulation for NS\n" - "UDP/IP Encapsulation\n" "Frame-Relay/GRE/IP Encapsulation\n") -{ - uint16_t nsei = atoi(argv[0]); - struct ns2_vty_vc *vtyvc; - - vtyvc = vtyvc_by_nsei(nsei, true); - if (!vtyvc) { - vty_out(vty, "Can not allocate space %s", VTY_NEWLINE); - return CMD_WARNING; - } - - if (!strcmp(argv[1], "udp")) - vtyvc->ll = GPRS_NS2_LL_UDP; - else - vtyvc->ll = GPRS_NS2_LL_FR_GRE; - - return CMD_SUCCESS; -} - -DEFUN(cfg_nse_remoterole, cfg_nse_remoterole_cmd, - "nse <0-65535> remote-role (sgsn|bss)", - NSE_CMD_STR - "Remote NSE Role\n" - "Remote Peer is SGSN\n" - "Remote Peer is BSS\n") -{ - uint16_t nsei = atoi(argv[0]); - struct ns2_vty_vc *vtyvc; - - vtyvc = vtyvc_by_nsei(nsei, true); - if (!vtyvc) { - vty_out(vty, "Can not allocate space %s", VTY_NEWLINE); - return CMD_WARNING; - } - - if (!strcmp(argv[1], "sgsn")) - vtyvc->remote_end_is_sgsn = 1; - else - vtyvc->remote_end_is_sgsn = 0; - - return CMD_SUCCESS; -} - -DEFUN(cfg_no_nse, cfg_no_nse_cmd, - "no nse <0-65535>", - "Delete Persistent NS Entity\n" - "Delete " NSE_CMD_STR) -{ - uint16_t nsei = atoi(argv[0]); - struct ns2_vty_vc *vtyvc; - - vtyvc = vtyvc_by_nsei(nsei, false); - if (!vtyvc) { - vty_out(vty, "The NSE %d does not exists.%s", nsei, VTY_NEWLINE); - return CMD_WARNING; - } - - ns2_vc_free(vtyvc); - - return CMD_SUCCESS; -} - -DEFUN(cfg_ns_timer, cfg_ns_timer_cmd, - "timer " NS_TIMERS " <0-65535>", - "Network Service Timer\n" - NS_TIMERS_HELP "Timer Value\n") -{ - int idx = get_string_value(gprs_ns_timer_strs, argv[0]); - int val = atoi(argv[1]); - - if (idx < 0 || idx >= ARRAY_SIZE(vty_nsi->timeout)) - return CMD_WARNING; - - vty_nsi->timeout[idx] = val; - - return CMD_SUCCESS; -} - -#define ENCAPS_STR "NS encapsulation options\n" - -DEFUN(cfg_nsip_local_ip, cfg_nsip_local_ip_cmd, - "encapsulation udp local-ip " VTY_IPV46_CMD, - ENCAPS_STR "NS over UDP Encapsulation\n" - "Set the IP address on which we listen for NS/UDP\n" - "IPv4 Address\n" - "IPv6 Address\n") -{ - osmo_sockaddr_str_from_str2(&priv.udp, argv[0]); - - return CMD_SUCCESS; -} - -DEFUN(cfg_nsip_local_port, cfg_nsip_local_port_cmd, - "encapsulation udp local-port <0-65535>", - ENCAPS_STR "NS over UDP Encapsulation\n" - "Set the UDP port on which we listen for NS/UDP\n" - "UDP port number\n") -{ - unsigned int port = atoi(argv[0]); - - priv.udp.port = port; - - return CMD_SUCCESS; -} - -DEFUN(cfg_nsip_dscp, cfg_nsip_dscp_cmd, - "encapsulation udp dscp <0-255>", - ENCAPS_STR "NS over UDP Encapsulation\n" - "Set DSCP/TOS on the UDP socket\n" "DSCP Value\n") -{ - int dscp = atoi(argv[0]); - struct gprs_ns2_vc_bind *bind; - - priv.dscp = dscp; - - llist_for_each_entry(bind, &vty_nsi->binding, list) { - if (gprs_ns2_is_ip_bind(bind)) - gprs_ns2_ip_bind_set_dscp(bind, dscp); + if (!strcmp(argv[1], "block")) { + ns2_vc_block(nsvc); + } else { + ns2_vc_unblock(nsvc); } return CMD_SUCCESS; } -DEFUN(cfg_nsip_res_block_unblock, cfg_nsip_res_block_unblock_cmd, - "encapsulation udp use-reset-block-unblock (enabled|disabled)", - ENCAPS_STR "NS over UDP Encapsulation\n" - "Use NS-{RESET,BLOCK,UNBLOCK} procedures in violation of 3GPP TS 48.016\n" - "Enable NS-{RESET,BLOCK,UNBLOCK}\n" - "Disable NS-{RESET,BLOCK,UNBLOCK}\n") +static void log_set_nse_filter(struct log_target *target, + struct gprs_ns2_nse *nse) { - enum gprs_ns2_vc_mode vc_mode; - - if (!strcmp(argv[0], "enabled")) - vc_mode = GPRS_NS2_VC_MODE_BLOCKRESET; - else - vc_mode = GPRS_NS2_VC_MODE_ALIVE; - - priv.vc_mode = vc_mode; - - return CMD_SUCCESS; + if (nse) { + target->filter_map |= (1 << LOG_FLT_GB_NSE); + target->filter_data[LOG_FLT_GB_NSE] = nse; + } else if (target->filter_data[LOG_FLT_GB_NSE]) { + target->filter_map = ~(1 << LOG_FLT_GB_NSE); + target->filter_data[LOG_FLT_GB_NSE] = NULL; + } } -DEFUN(cfg_frgre_local_ip, cfg_frgre_local_ip_cmd, - "encapsulation framerelay-gre local-ip " VTY_IPV46_CMD, - ENCAPS_STR "NS over Frame Relay over GRE Encapsulation\n" - "Set the IP address on which we listen for NS/FR/GRE\n" - "IPv4 Address\n" - "IPv6 Address\n") +static void log_set_nsvc_filter(struct log_target *target, + struct gprs_ns2_vc *nsvc) { - osmo_sockaddr_str_from_str2(&priv.frgreaddr, argv[0]); - - return CMD_SUCCESS; + if (nsvc) { + target->filter_map |= (1 << LOG_FLT_GB_NSVC); + target->filter_data[LOG_FLT_GB_NSVC] = nsvc; + } else if (target->filter_data[LOG_FLT_GB_NSVC]) { + target->filter_map = ~(1 << LOG_FLT_GB_NSVC); + target->filter_data[LOG_FLT_GB_NSVC] = NULL; + } } -DEFUN(cfg_frgre_enable, cfg_frgre_enable_cmd, - "encapsulation framerelay-gre enabled (1|0)", - ENCAPS_STR "NS over Frame Relay over GRE Encapsulation\n" - "Enable or disable Frame Relay over GRE\n" - "Enable\n" "Disable\n") -{ - int enabled = atoi(argv[0]); - - priv.frgre = enabled; - - return CMD_SUCCESS; -} - -/* TODO: allow vty to reset/block/unblock nsvc/nsei */ - DEFUN(logging_fltr_nse, logging_fltr_nse_cmd, "logging filter nse nsei <0-65535>", @@ -817,29 +1617,14 @@ return CMD_SUCCESS; } -/** - * gprs_ns2_vty_init initialize the vty - * \param[inout] nsi - * \param[in] default_bind set the default address to bind to. Can be NULL. - * \return 0 on success - */ -int gprs_ns2_vty_init(struct gprs_ns2_inst *nsi, - const struct osmo_sockaddr_str *default_bind) +int gprs_ns2_vty_init(struct gprs_ns2_inst *nsi) { - static bool vty_elements_installed = false; - vty_nsi = nsi; - memset(&priv, 0, sizeof(struct ns2_vty_priv)); - INIT_LLIST_HEAD(&priv.vtyvc); - priv.vc_mode = GPRS_NS2_VC_MODE_BLOCKRESET; - if (default_bind) - memcpy(&priv.udp, default_bind, sizeof(*default_bind)); + INIT_LLIST_HEAD(&binds); - /* Regression test code may call this function repeatedly, so make sure - * that VTY elements are not duplicated, which would assert. */ - if (vty_elements_installed) - return 0; - vty_elements_installed = true; + vty_fr_network = osmo_fr_network_alloc(nsi); + if (!vty_fr_network) + return -ENOMEM; install_lib_element_ve(&show_ns_cmd); install_lib_element_ve(&show_ns_binds_cmd); @@ -850,152 +1635,42 @@ install_lib_element_ve(&logging_fltr_nsvc_cmd); install_lib_element(ENABLE_NODE, &nsvc_force_unconf_cmd); + install_lib_element(ENABLE_NODE, &nsvc_block_cmd); install_lib_element(CFG_LOG_NODE, &logging_fltr_nse_cmd); install_lib_element(CFG_LOG_NODE, &logging_fltr_nsvc_cmd); install_lib_element(CONFIG_NODE, &cfg_ns_cmd); + install_node(&ns_node, config_write_ns); - install_lib_element(L_NS_NODE, &cfg_nse_fr_cmd); - install_lib_element(L_NS_NODE, &cfg_nse_nsvci_cmd); - install_lib_element(L_NS_NODE, &cfg_nse_remoteip_cmd); - install_lib_element(L_NS_NODE, &cfg_nse_remoteport_cmd); - install_lib_element(L_NS_NODE, &cfg_nse_fr_dlci_cmd); - install_lib_element(L_NS_NODE, &cfg_nse_encaps_cmd); - install_lib_element(L_NS_NODE, &cfg_nse_remoterole_cmd); - install_lib_element(L_NS_NODE, &cfg_no_nse_cmd); + /* TODO: convert into osmo timer */ install_lib_element(L_NS_NODE, &cfg_ns_timer_cmd); - install_lib_element(L_NS_NODE, &cfg_nsip_local_ip_cmd); - install_lib_element(L_NS_NODE, &cfg_nsip_local_port_cmd); - install_lib_element(L_NS_NODE, &cfg_nsip_dscp_cmd); - install_lib_element(L_NS_NODE, &cfg_nsip_res_block_unblock_cmd); - install_lib_element(L_NS_NODE, &cfg_frgre_enable_cmd); - install_lib_element(L_NS_NODE, &cfg_frgre_local_ip_cmd); + install_lib_element(L_NS_NODE, &cfg_ns_nsei_cmd); + install_lib_element(L_NS_NODE, &cfg_no_ns_nsei_cmd); + install_lib_element(L_NS_NODE, &cfg_ns_bind_cmd); + install_lib_element(L_NS_NODE, &cfg_no_ns_bind_cmd); - /* TODO: nsvc/nsei command to reset states or reset/block/unblock nsei/nsvcs */ + install_node(&ns_bind_node, config_write_ns_bind); + install_lib_element(L_NS_BIND_NODE, &cfg_ns_bind_listen_cmd); + install_lib_element(L_NS_BIND_NODE, &cfg_no_ns_bind_listen_cmd); + install_lib_element(L_NS_BIND_NODE, &cfg_ns_bind_dscp_cmd); + install_lib_element(L_NS_BIND_NODE, &cfg_no_ns_bind_dscp_cmd); + install_lib_element(L_NS_BIND_NODE, &cfg_ns_bind_ipaccess_cmd); + install_lib_element(L_NS_BIND_NODE, &cfg_no_ns_bind_ipaccess_cmd); + install_lib_element(L_NS_BIND_NODE, &cfg_ns_bind_fr_cmd); + install_lib_element(L_NS_BIND_NODE, &cfg_no_ns_bind_fr_cmd); + /* TODO: accept-ip-sns when SGSN SNS has been implemented */ - return 0; -} - -/*! - * \brief gprs_ns2_vty_create parse the vty tree into ns nodes - * It has to be in different steps to ensure the bind is created before creating VCs. - * \return 0 on success - */ -int gprs_ns2_vty_create() { - struct ns2_vty_vc *vtyvc; - struct gprs_ns2_vc_bind *bind, *fr; - struct gprs_ns2_nse *nse; - struct gprs_ns2_vc *nsvc; - struct osmo_sockaddr sockaddr; - enum gprs_ns2_dialect dialect = GPRS_NS2_DIALECT_UNDEF; - int rc = 0; - - if (!vty_nsi) - return -1; - - /* create binds, only support a single bind. either FR or UDP */ - if (priv.frgre) { - /* TODO not yet supported !*/ - return -1; - } else { - /* UDP */ - osmo_sockaddr_str_to_sockaddr(&priv.udp, &sockaddr.u.sas); - if (gprs_ns2_ip_bind(vty_nsi, "vtybind", &sockaddr, priv.dscp, &bind)) { - /* TODO: could not bind on the specific address */ - return -1; - } - - bind->accept_ipaccess = priv.vc_mode == GPRS_NS2_VC_MODE_BLOCKRESET; - } - - /* create vcs */ - llist_for_each_entry(vtyvc, &priv.vtyvc, list) { - /* validate settings */ - switch (vtyvc->ll) { - case GPRS_NS2_LL_UDP: - if (priv.vc_mode == GPRS_NS2_VC_MODE_BLOCKRESET) - dialect = GPRS_NS2_DIALECT_IPACCESS; - else - dialect = GPRS_NS2_DIALECT_STATIC_ALIVE; - if (strlen(vtyvc->remote.ip) == 0) { - /* Invalid IP for VC */ - continue; - } - - if (!vtyvc->remote.port) { - /* Invalid port for VC */ - continue; - } - - if (osmo_sockaddr_str_to_sockaddr(&vtyvc->remote, &sockaddr.u.sas)) { - /* Invalid sockaddr for VC */ - continue; - } - break; - case GPRS_NS2_LL_FR: - dialect = GPRS_NS2_DIALECT_STATIC_RESETBLOCK; - break; - case GPRS_NS2_LL_FR_GRE: - dialect = GPRS_NS2_DIALECT_STATIC_RESETBLOCK; - continue; - case GPRS_NS2_LL_UNDEF: - /* should not happen */ - OSMO_ASSERT(false); - } - - nse = gprs_ns2_nse_by_nsei(vty_nsi, vtyvc->nsei); - if (!nse) { - nse = gprs_ns2_create_nse(vty_nsi, vtyvc->nsei, vtyvc->ll, dialect); - if (!nse) { - /* Could not create NSE for VTY */ - continue; - } - } - nse->persistent = true; - - switch (vtyvc->ll) { - case GPRS_NS2_LL_UDP: - nsvc = gprs_ns2_ip_connect(bind, - &sockaddr, - nse, - vtyvc->nsvci); - if (!nsvc) { - /* Could not create NSVC, connect failed */ - continue; - } - nsvc->persistent = true; - break; - case GPRS_NS2_LL_FR: { - if (vty_fr_network == NULL) { - /* TODO: add a switch for BSS/SGSN/gbproxy */ - vty_fr_network = osmo_fr_network_alloc(vty_nsi); - } - fr = gprs_ns2_fr_bind_by_netif( - vty_nsi, - vtyvc->netif); - if (!fr) { - rc = gprs_ns2_fr_bind(vty_nsi, vtyvc->netif, vtyvc->netif, vty_fr_network, vtyvc->fr.role, &fr); - if (rc < 0) { - LOGP(DLNS, LOGL_ERROR, "Can not create fr bind on device %s err: %d\n", vtyvc->netif, rc); - return rc; - } - } - - nsvc = gprs_ns2_fr_connect(fr, nse, vtyvc->nsvci, vtyvc->frdlci); - if (!nsvc) { - /* Could not create NSVC, connect failed */ - continue; - } - nsvc->persistent = true; - break; - } - case GPRS_NS2_LL_FR_GRE: - case GPRS_NS2_LL_UNDEF: - continue; - } - } - + install_node(&ns_nse_node, config_write_ns_nse); + install_lib_element(L_NS_NSE_NODE, &cfg_ns_nse_nsvc_fr_cmd); + install_lib_element(L_NS_NSE_NODE, &cfg_no_ns_nse_nsvci_cmd); + install_lib_element(L_NS_NSE_NODE, &cfg_no_ns_nse_nsvc_fr_dlci_cmd); + install_lib_element(L_NS_NSE_NODE, &cfg_ns_nse_nsvc_udp_cmd); + install_lib_element(L_NS_NSE_NODE, &cfg_no_ns_nse_nsvc_udp_cmd); + install_lib_element(L_NS_NSE_NODE, &cfg_ns_nse_nsvc_ipa_cmd); + install_lib_element(L_NS_NSE_NODE, &cfg_no_ns_nse_nsvc_ipa_cmd); + install_lib_element(L_NS_NSE_NODE, &cfg_ns_nse_ip_sns_cmd); + install_lib_element(L_NS_NSE_NODE, &cfg_no_ns_nse_ip_sns_cmd); return 0; } diff --git a/src/gb/gprs_ns2_vty2.c b/src/gb/gprs_ns2_vty2.c deleted file mode 100644 index 31aff3e..0000000 --- a/src/gb/gprs_ns2_vty2.c +++ /dev/null @@ -1,1676 +0,0 @@ -/*! \file gprs_ns2_vty.c - * VTY interface for our GPRS Networks Service (NS) implementation. */ - -/* (C) 2020 by sysmocom - s.f.m.c. GmbH - * Author: Alexander Couzens - * - * All Rights Reserved - * - * SPDX-License-Identifier: GPL-2.0+ - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - */ - -#include -#include -#include -#include - -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "gprs_ns2_internal.h" - -#define SHOW_NS_STR "Display information about the NS protocol\n" -#define NSVCI_STR "NS Virtual Connection ID (NS-VCI)\n" -#define DLCI_STR "Data Link connection identifier\n" - -static struct gprs_ns2_inst *vty_nsi = NULL; -static struct osmo_fr_network *vty_fr_network = NULL; -static struct llist_head binds; - -struct vty_bind { - struct llist_head list; - const char *name; - enum gprs_ns2_ll ll; - int dscp; - bool accept_ipaccess; - bool accept_sns; -}; - -/* TODO: this should into osmo timer */ -static const struct value_string gprs_ns_timer_strs[] = { - { 0, "tns-block" }, - { 1, "tns-block-retries" }, - { 2, "tns-reset" }, - { 3, "tns-reset-retries" }, - { 4, "tns-test" }, - { 5, "tns-alive" }, - { 6, "tns-alive-retries" }, - { 7, "tsns-prov" }, - { 8, "tsns-size-retries" }, - { 9, "tsns-config-retries" }, - { 0, NULL } -}; - -const struct value_string vty_fr_role_names[] = { - { FR_ROLE_USER_EQUIPMENT, "fr" }, - { FR_ROLE_NETWORK_EQUIPMENT, "frnet" }, - { 0, NULL } -}; - -const struct value_string vty_ll_names[] = { - { GPRS_NS2_LL_FR, "fr" }, - { GPRS_NS2_LL_FR_GRE, "frgre" }, - { GPRS_NS2_LL_UDP, "udp" }, - { 0, NULL } -}; - -static struct vty_bind *vty_bind_by_name(const char *name) -{ - struct vty_bind *vbind; - llist_for_each_entry(vbind, &binds, list) { - if (!strncmp(vbind->name, name, strlen(vbind->name))) - return vbind; - } - return NULL; -} - -static struct vty_bind *vty_bind_alloc(const char *name) -{ - struct vty_bind *vbind = talloc_zero(vty_nsi, struct vty_bind); - if (!vbind) - return NULL; - - vbind->name = talloc_strdup(vty_nsi, name); - if (!vbind->name) { - talloc_free(vbind); - return NULL; - } - - llist_add(&vbind->list, &binds); - return vbind; -} - -static void vty_bind_free(struct vty_bind *vbind) -{ - if (!vbind) - return; - - llist_del(&vbind->list); -} - -static struct cmd_node ns_node = { - L_NS_NODE, - "%s(config-ns)# ", - 1, -}; - -DEFUN(cfg_ns, cfg_ns_cmd, - "ns", - "Configure the GPRS Network Service") -{ - vty->node = L_NS_NODE; - return CMD_SUCCESS; -} - -DEFUN(cfg_ns_timer, cfg_ns_timer_cmd, - "timer " NS_TIMERS " <0-65535>", - "Network Service Timer\n" - NS_TIMERS_HELP "Timer Value\n") -{ - int idx = get_string_value(gprs_ns_timer_strs, argv[0]); - int val = atoi(argv[1]); - - if (idx < 0 || idx >= ARRAY_SIZE(vty_nsi->timeout)) - return CMD_WARNING; - - vty_nsi->timeout[idx] = val; - - return CMD_SUCCESS; -} - -DEFUN(cfg_ns_nsei, cfg_ns_nsei_cmd, - "nse <0-65535>", - "Persistent NS Entity\n" - "NS Entity ID (NSEI)\n" - ) -{ - struct gprs_ns2_nse *nse; - uint16_t nsei = atoi(argv[0]); - - nse = gprs_ns2_nse_by_nsei(vty_nsi, nsei); - if (!nse) { - nse = gprs_ns2_create_nse(vty_nsi, nsei, GPRS_NS2_LL_UNDEF, GPRS_NS2_DIALECT_UNDEF); - if (!nse) { - vty_out(vty, "Failed to create NSE!%s", VTY_NEWLINE); - return CMD_ERR_INCOMPLETE; - } - nse->persistent = true; - } - - if (!nse->persistent) { - /* TODO: should the dynamic NSE removed? */ - vty_out(vty, "A dynamic NSE with the specified NSEI already exists%s", VTY_NEWLINE); - return CMD_ERR_INCOMPLETE; - } - - vty->node = L_NS_NSE_NODE; - vty->index = nse; - - return CMD_SUCCESS; -} - -DEFUN(cfg_no_ns_nsei, cfg_no_ns_nsei_cmd, - "no nse <0-65535>", - NO_STR - "Delete a Persistent NS Entity\n" - "NS Entity ID (NSEI)\n" - ) -{ - struct gprs_ns2_nse *nse; - uint16_t nsei = atoi(argv[0]); - - nse = gprs_ns2_nse_by_nsei(vty_nsi, nsei); - if (!nse) { - vty_out(vty, "Can not find NS Entity %s%s", argv[0], VTY_NEWLINE); - return CMD_ERR_NOTHING_TODO; - } - - if (!nse->persistent) { - vty_out(vty, "Ignoring non-persistent NS Entity%s", VTY_NEWLINE); - return CMD_WARNING; - } - - vty_out(vty, "Deleting NS Entity %u%s", nse->nsei, VTY_NEWLINE); - gprs_ns2_free_nse(nse); - return CMD_SUCCESS; -} - -/* TODO: add fr/gre */ -DEFUN(cfg_ns_bind, cfg_ns_bind_cmd, - "bind (fr|udp) ID", - "Binding\n" - "Frame Relay\n" "UDP/IP\n" - "a unique identifier for this bind to reference NS-VCs\n" - ) -{ - const char *nstype = argv[0]; - const char *name = argv[1]; - struct vty_bind *vbind; - enum gprs_ns2_ll ll; - int rc; - - rc = get_string_value(vty_ll_names, nstype); - if (rc < 0) - return CMD_WARNING; - ll = (enum gprs_ns2_ll) rc; - - if (!osmo_identifier_valid(name)) { - vty_out(vty, "Invalid ID. The ID should be only alphanumeric.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - vbind = vty_bind_by_name(name); - if (vbind) { - if (vbind->ll != ll) { - vty_out(vty, "A bind with the specified ID already exists with a different type (fr|frgre|udp)!%s", - VTY_NEWLINE); - return CMD_WARNING; - } - } else { - vbind = vty_bind_alloc(name); - if (!vbind) { - vty_out(vty, "Can not create bind - out of memory%s", VTY_NEWLINE); - return CMD_WARNING; - } - vbind->ll = ll; - } - - vty->index = vbind; - vty->node = L_NS_BIND_NODE; - - return CMD_SUCCESS; -} - -DEFUN(cfg_no_ns_bind, cfg_no_ns_bind_cmd, - "no bind ID", - NO_STR - "Delete a binding\n" - "a unique identifier for this bind to reference NS-VCs\n" - ) -{ - struct vty_bind *vbind; - struct gprs_ns2_vc_bind *bind; - const char *name = argv[0]; - - vbind = vty_bind_by_name(name); - if (!vbind) { - vty_out(vty, "bind %s does not exist!%s", name, VTY_NEWLINE); - return CMD_WARNING; - } - vty_bind_free(vbind); - bind = gprs_ns2_bind_by_name(vty_nsi, name); - if (bind) - bind->driver->free_bind(bind); - return CMD_SUCCESS; -} - - -static void config_write_vbind(struct vty *vty, struct vty_bind *vbind) -{ - struct gprs_ns2_vc_bind *bind; - const struct osmo_sockaddr *addr; - struct osmo_sockaddr_str addr_str; - const char *netif, *frrole_str, *llstr; - enum osmo_fr_role frrole; - - llstr = get_value_string_or_null(vty_ll_names, vbind->ll); - if (!llstr) - return; - vty_out(vty, " bind %s %s%s", llstr, vbind->name, VTY_NEWLINE); - - bind = gprs_ns2_bind_by_name(vty_nsi, vbind->name); - switch (vbind->ll) { - case GPRS_NS2_LL_FR: - if (bind) { - netif = gprs_ns2_fr_bind_netif(bind); - if (!netif) - return; - frrole = gprs_ns2_fr_bind_role(bind); - if ((int) frrole == -1) - return; - frrole_str = get_value_string_or_null(vty_fr_role_names, frrole); - if (netif && frrole_str) - vty_out(vty, " fr %s %s%s", netif, frrole_str, VTY_NEWLINE); - } - break; - case GPRS_NS2_LL_UDP: - if (bind) { - addr = gprs_ns2_ip_bind_sockaddr(bind); - if (!osmo_sockaddr_str_from_sockaddr(&addr_str, &addr->u.sas)) { - vty_out(vty, " listen %s %u%s", addr_str.ip, addr_str.port, - VTY_NEWLINE); - } - } - if (vbind->accept_ipaccess) - vty_out(vty, " accept-ipaccess%s", VTY_NEWLINE); - if (vbind->dscp) - vty_out(vty, " dscp %u%s", vbind->dscp, VTY_NEWLINE); - break; - default: - return; - } -} - -static void config_write_nsvc(struct vty *vty, const struct gprs_ns2_vc *nsvc) -{ - const char *netif; - uint16_t dlci; - const struct osmo_sockaddr *addr; - struct osmo_sockaddr_str addr_str; - - switch (nsvc->nse->ll) { - case GPRS_NS2_LL_UNDEF: - break; - case GPRS_NS2_LL_UDP: - switch (nsvc->nse->dialect) { - case GPRS_NS2_DIALECT_IPACCESS: - addr = gprs_ns2_ip_vc_remote(nsvc); - if (!addr) - break; - if (osmo_sockaddr_str_from_sockaddr(&addr_str, &addr->u.sas)) - break; - vty_out(vty, " nsvc ipa %s %s %u nsvci %u%s", - nsvc->bind->name, addr_str.ip, addr_str.port, - nsvc->nsvci, VTY_NEWLINE); - break; - case GPRS_NS2_DIALECT_STATIC_ALIVE: - addr = gprs_ns2_ip_vc_remote(nsvc); - if (!addr) - break; - if (osmo_sockaddr_str_from_sockaddr(&addr_str, &addr->u.sas)) - break; - vty_out(vty, " nsvc udp %s %s %u%s", - nsvc->bind->name, addr_str.ip, addr_str.port, VTY_NEWLINE); - break; - default: - break; - } - break; - case GPRS_NS2_LL_FR: - netif = gprs_ns2_fr_bind_netif(nsvc->bind); - if (!netif) - break; - dlci = gprs_ns2_fr_nsvc_dlci(nsvc); - if (!dlci) - break; - OSMO_ASSERT(nsvc->nsvci_is_valid); - vty_out(vty, " nsvc fr %s dlci %u nsvci %u%s", - netif, dlci, nsvc->nsvci, VTY_NEWLINE); - break; - case GPRS_NS2_LL_FR_GRE: - break; - } -} - -static void _config_write_ns_nse(struct vty *vty, struct gprs_ns2_nse *nse) -{ - struct gprs_ns2_vc *nsvc; - - vty_out(vty, " nse %u%s", nse->nsei, VTY_NEWLINE); - switch (nse->dialect) { - case GPRS_NS2_DIALECT_SNS: - ns2_sns_write_vty(vty, nse); - break; - default: - llist_for_each_entry(nsvc, &nse->nsvc, list) { - config_write_nsvc(vty, nsvc); - } - break; - } -} - -static int config_write_ns(struct vty *vty) -{ - unsigned int i; - - vty_out(vty, "ns%s", VTY_NEWLINE); - - for (i = 0; i < ARRAY_SIZE(vty_nsi->timeout); i++) - vty_out(vty, " timer %s %u%s", - get_value_string(gprs_ns_timer_strs, i), - vty_nsi->timeout[i], VTY_NEWLINE); - - return 0; -} - -static int config_write_ns_nse(struct vty *vty) -{ - struct gprs_ns2_nse *nse; - - llist_for_each_entry(nse, &vty_nsi->nse, list) { - if (!nse->persistent) - continue; - - _config_write_ns_nse(vty, nse); - } - - return 0; -} - -static int config_write_ns_bind(struct vty *vty) -{ - struct vty_bind *vbind; - - llist_for_each_entry(vbind, &binds, list) { - config_write_vbind(vty, vbind); - } - - return 0; -} - -static struct cmd_node ns_bind_node = { - L_NS_BIND_NODE, - "%s(config-ns-bind)# ", - 1, -}; - -DEFUN(cfg_ns_bind_listen, cfg_ns_bind_listen_cmd, - "listen " VTY_IPV46_CMD " <1-65535>", - "Binding\n" - "IPv4 Address\n" "IPv6 Address\n" - "Port\n" - ) -{ - struct vty_bind *vbind = vty->index; - struct gprs_ns2_vc_bind *bind; - - const char *addr_str = argv[0]; - unsigned int port = atoi(argv[1]); - struct osmo_sockaddr_str sockaddr_str; - struct osmo_sockaddr sockaddr; - - if (vbind->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "listen can be only used with UDP bind%s", - VTY_NEWLINE); - return CMD_WARNING; - } - - if (osmo_sockaddr_str_from_str(&sockaddr_str, addr_str, port)) { - vty_out(vty, "Can not parse the Address %s %s%s", argv[0], argv[1], VTY_NEWLINE); - return CMD_WARNING; - } - osmo_sockaddr_str_to_sockaddr(&sockaddr_str, &sockaddr.u.sas); - if (gprs_ns2_ip_bind_by_sockaddr(vty_nsi, &sockaddr)) { - vty_out(vty, "A bind with the specified address already exists!%s", VTY_NEWLINE); - return CMD_WARNING; - } - - if (gprs_ns2_ip_bind(vty_nsi, vbind->name, &sockaddr, vbind->dscp, &bind) != 0) { - vty_out(vty, "Failed to create the bind!%s", VTY_NEWLINE); - return CMD_WARNING; - } - - bind->accept_ipaccess = vbind->accept_ipaccess; - bind->accept_sns = vbind->accept_sns; - - return CMD_SUCCESS; -} - -DEFUN(cfg_no_ns_bind_listen, cfg_no_ns_bind_listen_cmd, - "no listen", - NO_STR - "Delete a IP/Port assignment\n" - ) -{ - struct vty_bind *vbind = vty->index; - struct gprs_ns2_vc_bind *bind; - - if (vbind->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "no listen can be only used with UDP bind%s", VTY_NEWLINE); - return CMD_WARNING; - } - - bind = gprs_ns2_bind_by_name(vty_nsi, vbind->name); - if (!bind) - return CMD_ERR_NOTHING_TODO; - - OSMO_ASSERT(bind->ll != GPRS_NS2_LL_UDP); - bind->driver->free_bind(bind); - return CMD_SUCCESS; -} - -DEFUN(cfg_ns_bind_dscp, cfg_ns_bind_dscp_cmd, - "dscp <0-255>", - "Set DSCP/TOS on the UDP socket\n" "DSCP Value\n") -{ - struct vty_bind *vbind = vty->index; - struct gprs_ns2_vc_bind *bind; - uint16_t dscp = atoi(argv[0]); - - if (vbind->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "dscp can be only used with UDP bind%s", - VTY_NEWLINE); - return CMD_WARNING; - } - - vbind->dscp = dscp; - bind = gprs_ns2_bind_by_name(vty_nsi, vbind->name); - if (bind) - gprs_ns2_ip_bind_set_dscp(bind, dscp); - - return CMD_SUCCESS; -} - -DEFUN(cfg_no_ns_bind_dscp, cfg_no_ns_bind_dscp_cmd, - "no dscp", - "Set DSCP/TOS on the UDP socket\n" "DSCP Value\n") -{ - struct vty_bind *vbind = vty->index; - struct gprs_ns2_vc_bind *bind; - uint16_t dscp = 0; - - if (vbind->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "dscp can be only used with UDP bind%s", - VTY_NEWLINE); - return CMD_WARNING; - } - - vbind->dscp = dscp; - bind = gprs_ns2_bind_by_name(vty_nsi, vbind->name); - if (bind) - gprs_ns2_ip_bind_set_dscp(bind, dscp); - - return CMD_SUCCESS; -} - -DEFUN(cfg_ns_bind_ipaccess, cfg_ns_bind_ipaccess_cmd, - "accept-ipaccess", - "Allow to create dynamic NS Entity by NS Reset PDU on UDP (ip.access style)\n" - ) -{ - struct vty_bind *vbind = vty->index; - struct gprs_ns2_vc_bind *bind; - - if (vbind->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "accept-ipaccess can be only used with UDP bind%s", - VTY_NEWLINE); - return CMD_WARNING; - } - - vbind->accept_ipaccess = true; - bind = gprs_ns2_bind_by_name(vty_nsi, vbind->name); - if (bind) - bind->accept_ipaccess = true; - - return CMD_SUCCESS; -} - -DEFUN(cfg_no_ns_bind_ipaccess, cfg_no_ns_bind_ipaccess_cmd, - "no accept-ipaccess", - NO_STR - "Reject NS Reset PDU on UDP (ip.access style)\n" - ) -{ - struct vty_bind *vbind = vty->index; - struct gprs_ns2_vc_bind *bind; - - if (vbind->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "no accept-ipaccess can be only used with UDP bind%s", - VTY_NEWLINE); - return CMD_WARNING; - } - - vbind->accept_ipaccess = false; - bind = gprs_ns2_bind_by_name(vty_nsi, vbind->name); - if (bind) - bind->accept_ipaccess = false; - - return CMD_SUCCESS; -} - - -DEFUN(cfg_ns_bind_fr, cfg_ns_bind_fr_cmd, - "fr NETIF (fr|frnet)", - "frame relay\n" - IFNAME_STR - "fr (user) is used by BSS or SGSN attached to UNI of a FR network\n" - "frnet (network) is used by SGSN if BSS is directly attached\n" - ) -{ - struct vty_bind *vbind = vty->index; - struct gprs_ns2_vc_bind *bind; - const char *netif = argv[0]; - const char *role = argv[1]; - - int rc = 0; - enum osmo_fr_role frrole; - - if (vbind->ll != GPRS_NS2_LL_FR) { - vty_out(vty, "fr can be only used with frame relay bind%s", VTY_NEWLINE); - return CMD_WARNING; - } - - if (!strcmp(role, "fr")) - frrole = FR_ROLE_USER_EQUIPMENT; - else if (!strcmp(role, "frnet")) - frrole = FR_ROLE_NETWORK_EQUIPMENT; - else - return CMD_WARNING; - - bind = gprs_ns2_fr_bind_by_netif(vty_nsi, netif); - if (bind) { - vty_out(vty, "Interface %s already used.%s", netif, VTY_NEWLINE); - return CMD_WARNING; - } - - rc = gprs_ns2_fr_bind(vty_nsi, vbind->name, netif, vty_fr_network, frrole, &bind); - if (rc < 0) { - LOGP(DLNS, LOGL_ERROR, "Failed to bind interface %s on fr. Err: %d\n", netif, rc); - return CMD_WARNING; - } - - return CMD_SUCCESS; -} - -DEFUN(cfg_no_ns_bind_fr, cfg_no_ns_bind_fr_cmd, - "no fr NETIF", - NO_STR - "Delete a frame relay link\n" - "Delete a frame relay link\n" - IFNAME_STR - ) -{ - struct vty_bind *vbind = vty->index; - struct gprs_ns2_vc_bind *bind; - const char *netif = argv[0]; - - if (vbind->ll != GPRS_NS2_LL_FR) { - vty_out(vty, "fr can be only used with frame relay bind%s", - VTY_NEWLINE); - return CMD_WARNING; - } - - bind = gprs_ns2_fr_bind_by_netif(vty_nsi, netif); - if (!bind) { - vty_out(vty, "Interface not found.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - if (strcmp(bind->name, vbind->name)) { - vty_out(vty, "The specified interface is not bound to this bind.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - bind->driver->free_bind(bind); - return CMD_SUCCESS; -} - - -static struct cmd_node ns_nse_node = { - L_NS_NSE_NODE, - "%s(config-ns-nse)# ", - 1, -}; - -DEFUN(cfg_ns_nse_nsvc_fr, cfg_ns_nse_nsvc_fr_cmd, - "nsvc fr NETIF dlci <16-1007> nsvci <0-65535>", - "NS Virtual Connection\n" - "frame relay\n" - "frame relay interface. Must be registered via fr vty\n" - NSVCI_STR - NSVCI_STR - DLCI_STR - DLCI_STR - ) -{ - struct gprs_ns2_vc_bind *bind; - struct gprs_ns2_vc *nsvc; - struct gprs_ns2_nse *nse = vty->index; - const char *netif = argv[0]; - uint16_t dlci = atoi(argv[1]); - uint16_t nsvci = atoi(argv[2]); - bool dialect_modified = false; - bool ll_modified = false; - - if (nse->ll != GPRS_NS2_LL_FR && nse->ll != GPRS_NS2_LL_UNDEF) { - vty_out(vty, "Can not mix NS-VC with different link layer%s", VTY_NEWLINE); - goto err; - } - - if (nse->dialect != GPRS_NS2_DIALECT_STATIC_RESETBLOCK && nse->dialect != GPRS_NS2_DIALECT_UNDEF) { - vty_out(vty, "Can not mix NS-VC with different dialects%s", VTY_NEWLINE); - goto err; - } - - if (nse->ll == GPRS_NS2_LL_UNDEF) { - nse->ll = GPRS_NS2_LL_FR; - ll_modified = true; - } - - if (nse->dialect == GPRS_NS2_DIALECT_UNDEF) { - nse->dialect = GPRS_NS2_DIALECT_STATIC_RESETBLOCK; - dialect_modified = true; - } - - - bind = gprs_ns2_fr_bind_by_netif(vty_nsi, netif); - if (!bind) { - vty_out(vty, "Can not find fr interface \"%s\". Please configure it via fr vty.%s", - netif, VTY_NEWLINE); - goto err; - } - - if (gprs_ns2_fr_nsvc_by_dlci(bind, dlci)) { - vty_out(vty, "A NS-VC with the specified DLCI already exist!%s", VTY_NEWLINE); - goto err; - } - - if (gprs_ns2_nsvc_by_nsvci(vty_nsi, nsvci)) { - vty_out(vty, "A NS-VC with the specified NS-VCI already exist!%s", VTY_NEWLINE); - goto err; - } - - nsvc = gprs_ns2_fr_connect(bind, nse, nsvci, dlci); - if (!nsvc) { - /* Could not create NS-VC, connect failed */ - vty_out(vty, "Failed to create the NS-VC%s", VTY_NEWLINE); - goto err; - } - nsvc->persistent = true; - return CMD_SUCCESS; - -err: - if (ll_modified) - nse->ll = GPRS_NS2_LL_UNDEF; - if (dialect_modified) - nse->dialect = GPRS_NS2_DIALECT_UNDEF; - - return CMD_WARNING; -} - -DEFUN(cfg_no_ns_nse_nsvc_fr_dlci, cfg_no_ns_nse_nsvc_fr_dlci_cmd, - "no nsvc fr NETIF dlci <16-1007>", - NO_STR - "Delete frame relay NS-VC\n" - "frame relay\n" - "frame relay interface. Must be registered via fr vty\n" - DLCI_STR - DLCI_STR - ) -{ - struct gprs_ns2_vc_bind *bind; - struct gprs_ns2_vc *nsvc; - struct gprs_ns2_nse *nse = vty->index; - const char *netif = argv[0]; - uint16_t dlci = atoi(argv[1]); - - if (nse->ll != GPRS_NS2_LL_FR) { - vty_out(vty, "This NSE doesn't support frame relay.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - bind = gprs_ns2_fr_bind_by_netif(vty_nsi, netif); - if (!bind) { - vty_out(vty, "Can not find fr interface \"%s\"%s", - netif, VTY_NEWLINE); - return CMD_ERR_NOTHING_TODO; - } - - nsvc = gprs_ns2_fr_nsvc_by_dlci(bind, dlci); - if (!nsvc) { - vty_out(vty, "Can not find a NS-VC on fr interface %s with dlci %u%s", - netif, dlci, VTY_NEWLINE); - return CMD_WARNING; - } - - if (nse != nsvc->nse) { - vty_out(vty, "The specified NS-VC is not a part of the NSE %u!%s" - "To remove this NS-VC go to the vty node 'nse %u'%s", - nse->nsei, VTY_NEWLINE, - nsvc->nse->nsei, VTY_NEWLINE); - return CMD_WARNING; - } - - gprs_ns2_free_nsvc(nsvc); - if (llist_empty(&nse->nsvc)) { - nse->ll = GPRS_NS2_LL_UNDEF; - nse->dialect = GPRS_NS2_DIALECT_UNDEF; - } - - return CMD_SUCCESS; -} - -DEFUN(cfg_no_ns_nse_nsvci, cfg_no_ns_nse_nsvci_cmd, - "no nsvc nsvci <0-65535>", - NO_STR - "Delete NSVC\n" - NSVCI_STR - NSVCI_STR - ) -{ - struct gprs_ns2_vc *nsvc; - struct gprs_ns2_nse *nse = vty->index; - uint16_t nsvci = atoi(argv[0]); - - switch (nse->dialect) { - case GPRS_NS2_DIALECT_SNS: - case GPRS_NS2_DIALECT_STATIC_ALIVE: - vty_out(vty, "NSE doesn't support NSVCI.%s", VTY_NEWLINE); - return CMD_WARNING; - case GPRS_NS2_DIALECT_UNDEF: - vty_out(vty, "No NSVCs configured%s", VTY_NEWLINE); - return CMD_WARNING; - case GPRS_NS2_DIALECT_IPACCESS: - case GPRS_NS2_DIALECT_STATIC_RESETBLOCK: - break; - } - - nsvc = gprs_ns2_nsvc_by_nsvci(vty_nsi, nsvci); - if (!nsvc) { - vty_out(vty, "Can not find NS-VC with NS-VCI %u%s", nsvci, VTY_NEWLINE); - return CMD_WARNING; - } - - if (nse != nsvc->nse) { - vty_out(vty, "NS-VC with NS-VCI %u is not part of this NSE!%s", - nsvci, VTY_NEWLINE); - return CMD_WARNING; - } - - gprs_ns2_free_nsvc(nsvc); - if (llist_empty(&nse->nsvc)) { - nse->ll = GPRS_NS2_LL_UNDEF; - nse->dialect = GPRS_NS2_DIALECT_UNDEF; - } - - return CMD_SUCCESS; -} - -DEFUN(cfg_ns_nse_nsvc_udp, cfg_ns_nse_nsvc_udp_cmd, - "nsvc udp BIND " VTY_IPV46_CMD " <1-65535>", - "NS Virtual Connection\n" - "NS over UDP\n" - "A unique bind identifier created by ns bind\n" - "Remote IPv4 Address\n" "Remote IPv6 Address\n" - "Remote UDP Port\n" - ) -{ - struct gprs_ns2_vc_bind *bind; - struct gprs_ns2_vc *nsvc; - struct gprs_ns2_nse *nse = vty->index; - bool dialect_modified = false; - bool ll_modified = false; - - const char *bind_name = argv[0]; - struct osmo_sockaddr_str remote_str; - struct osmo_sockaddr remote; - uint16_t port = atoi(argv[2]); - - if (nse->ll == GPRS_NS2_LL_UNDEF) { - nse->ll = GPRS_NS2_LL_UDP; - ll_modified = true; - } - - if (nse->dialect == GPRS_NS2_DIALECT_UNDEF) { - nse->dialect = GPRS_NS2_DIALECT_STATIC_ALIVE; - dialect_modified = true; - } - - if (nse->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "Can not mix NS-VC with different link layer%s", VTY_NEWLINE); - goto err; - } - - if (nse->dialect != GPRS_NS2_DIALECT_STATIC_ALIVE) { - vty_out(vty, "Can not mix NS-VC with different dialects%s", VTY_NEWLINE); - goto err; - } - - if (osmo_sockaddr_str_from_str(&remote_str, argv[1], port)) { - vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); - goto err; - } - - if (osmo_sockaddr_str_to_sockaddr(&remote_str, &remote.u.sas)) { - vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); - goto err; - } - - bind = gprs_ns2_bind_by_name(vty_nsi, bind_name); - if (!bind) { - vty_out(vty, "Can not find bind with name %s%s", - bind_name, VTY_NEWLINE); - goto err; - } - - if (bind->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "Bind %s is not an UDP bind.%s", - bind_name, VTY_NEWLINE); - goto err; - } - - nsvc = gprs_ns2_ip_connect(bind, &remote, nse, 0); - if (!nsvc) { - vty_out(vty, "Can not create NS-VC.%s", VTY_NEWLINE); - goto err; - } - nsvc->persistent = true; - - return CMD_SUCCESS; - -err: - if (ll_modified) - nse->ll = GPRS_NS2_LL_UNDEF; - if (dialect_modified) - nse->dialect = GPRS_NS2_DIALECT_UNDEF; - return CMD_WARNING; -} - -DEFUN(cfg_no_ns_nse_nsvc_udp, cfg_no_ns_nse_nsvc_udp_cmd, - "no nsvc udp BIND " VTY_IPV46_CMD " <1-65535>", - NO_STR - "Delete a NS Virtual Connection\n" - "NS over UDP\n" - "A unique bind identifier created by ns bind\n" - "Remote IPv4 Address\n" "Remote IPv6 Address\n" - "Remote UDP Port\n" - ) -{ - struct gprs_ns2_vc_bind *bind; - struct gprs_ns2_vc *nsvc; - struct gprs_ns2_nse *nse = vty->index; - const char *bind_name = argv[0]; - struct osmo_sockaddr_str remote_str; - struct osmo_sockaddr remote; - uint16_t port = atoi(argv[2]); - - if (nse->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "This NSE doesn't support UDP.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - if (nse->dialect != GPRS_NS2_DIALECT_STATIC_ALIVE) { - vty_out(vty, "This NSE doesn't support UDP with dialect static alive.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - bind = gprs_ns2_bind_by_name(vty_nsi, bind_name); - if (!bind) { - vty_out(vty, "Can not find bind with name %s%s", - bind_name, VTY_NEWLINE); - return CMD_WARNING; - } - - if (bind->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "Bind %s is not an UDP bind.%s", - bind_name, VTY_NEWLINE); - return CMD_WARNING; - } - - if (osmo_sockaddr_str_from_str(&remote_str, argv[1], port)) { - vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - if (osmo_sockaddr_str_to_sockaddr(&remote_str, &remote.u.sas)) { - vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - nsvc = gprs_ns2_nsvc_by_sockaddr_bind(bind, &remote); - if (!nsvc) { - vty_out(vty, "Can not find NS-VC with remote %s:%u%s", - remote_str.ip, remote_str.port, VTY_NEWLINE); - return CMD_WARNING; - } - - if (!nsvc->persistent) { - vty_out(vty, "NS-VC with remote %s:%u is a dynamic NS-VC. Not configured by vty.%s", - remote_str.ip, remote_str.port, VTY_NEWLINE); - return CMD_WARNING; - } - - if (nsvc->nse != nse) { - vty_out(vty, "NS-VC is not part of this NSE!%s", VTY_NEWLINE); - return CMD_WARNING; - } - - gprs_ns2_free_nsvc(nsvc); - if (llist_empty(&nse->nsvc)) { - nse->ll = GPRS_NS2_LL_UNDEF; - nse->dialect = GPRS_NS2_DIALECT_UNDEF; - } - - return CMD_SUCCESS; -} - -DEFUN(cfg_ns_nse_nsvc_ipa, cfg_ns_nse_nsvc_ipa_cmd, - "nsvc ipa BIND " VTY_IPV46_CMD " <1-65535> nsvci <0-65535>" , - "NS Virtual Connection\n" - "NS over UDP ip.access style (uses RESET/BLOCK)\n" - "A unique bind identifier created by ns bind\n" - "Remote IPv4 Address\n" "Remote IPv6 Address\n" - "Remote UDP Port\n" - NSVCI_STR - NSVCI_STR - ) -{ - struct gprs_ns2_vc_bind *bind; - struct gprs_ns2_vc *nsvc; - struct gprs_ns2_nse *nse = vty->index; - bool dialect_modified = false; - bool ll_modified = false; - - const char *bind_name = argv[0]; - struct osmo_sockaddr_str remote_str; - struct osmo_sockaddr remote; - uint16_t port = atoi(argv[2]); - uint16_t nsvci = atoi(argv[3]); - - if (nse->ll == GPRS_NS2_LL_UNDEF) { - nse->ll = GPRS_NS2_LL_UDP; - ll_modified = true; - } - - if (nse->dialect == GPRS_NS2_DIALECT_UNDEF) { - nse->dialect = GPRS_NS2_DIALECT_IPACCESS; - dialect_modified = true; - } - - if (nse->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "Can not mix NS-VC with different link layer%s", VTY_NEWLINE); - goto err; - } - - if (nse->dialect != GPRS_NS2_DIALECT_IPACCESS) { - vty_out(vty, "Can not mix NS-VC with different dialects%s", VTY_NEWLINE); - goto err; - } - - if (osmo_sockaddr_str_from_str(&remote_str, argv[1], port)) { - vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); - goto err; - } - - if (osmo_sockaddr_str_to_sockaddr(&remote_str, &remote.u.sas)) { - vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); - goto err; - } - - bind = gprs_ns2_bind_by_name(vty_nsi, bind_name); - if (!bind) { - vty_out(vty, "Can not find bind with name %s%s", - bind_name, VTY_NEWLINE); - goto err; - } - - if (bind->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "Bind %s is not an UDP bind.%s", - bind_name, VTY_NEWLINE); - goto err; - } - - nsvc = gprs_ns2_ip_connect(bind, &remote, nse, nsvci); - if (!nsvc) { - vty_out(vty, "Can not create NS-VC.%s", VTY_NEWLINE); - goto err; - } - nsvc->persistent = true; - - return CMD_SUCCESS; - -err: - if (ll_modified) - nse->ll = GPRS_NS2_LL_UNDEF; - if (dialect_modified) - nse->dialect = GPRS_NS2_DIALECT_UNDEF; - return CMD_WARNING; -} - -DEFUN(cfg_no_ns_nse_nsvc_ipa, cfg_no_ns_nse_nsvc_ipa_cmd, - "no nsvc ipa BIND " VTY_IPV46_CMD " <1-65535> nsvci <0-65535>", - NO_STR - "Delete a NS Virtual Connection\n" - "NS over UDP\n" - "A unique bind identifier created by ns bind\n" - "Remote IPv4 Address\n" "Remote IPv6 Address\n" - "Remote UDP Port\n" - NSVCI_STR - NSVCI_STR - ) -{ - struct gprs_ns2_vc_bind *bind; - struct gprs_ns2_vc *nsvc; - struct gprs_ns2_nse *nse = vty->index; - const char *bind_name = argv[0]; - struct osmo_sockaddr_str remote_str; - struct osmo_sockaddr remote; - uint16_t port = atoi(argv[2]); - uint16_t nsvci = atoi(argv[3]); - - if (nse->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "This NSE doesn't support UDP.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - if (nse->dialect != GPRS_NS2_DIALECT_IPACCESS) { - vty_out(vty, "This NSE doesn't support UDP with dialect ipaccess.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - bind = gprs_ns2_bind_by_name(vty_nsi, bind_name); - if (!bind) { - vty_out(vty, "Can not find bind with name %s%s", - bind_name, VTY_NEWLINE); - return CMD_WARNING; - } - - if (bind->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "Bind %s is not an UDP bind.%s", - bind_name, VTY_NEWLINE); - return CMD_WARNING; - } - - if (osmo_sockaddr_str_from_str(&remote_str, argv[1], port)) { - vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - if (osmo_sockaddr_str_to_sockaddr(&remote_str, &remote.u.sas)) { - vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - nsvc = gprs_ns2_nsvc_by_sockaddr_bind(bind, &remote); - if (!nsvc) { - vty_out(vty, "Can not find NS-VC with remote %s:%u%s", - remote_str.ip, remote_str.port, VTY_NEWLINE); - return CMD_WARNING; - } - - if (!nsvc->persistent) { - vty_out(vty, "NS-VC with remote %s:%u is a dynamic NS-VC. Not configured by vty.%s", - remote_str.ip, remote_str.port, VTY_NEWLINE); - return CMD_WARNING; - } - - if (nsvc->nse != nse) { - vty_out(vty, "NS-VC is not part of this NSE!%s", VTY_NEWLINE); - return CMD_WARNING; - } - - if (!nsvc->nsvci_is_valid) { - vty_out(vty, "NS-VC doesn't have a nsvci!%s", VTY_NEWLINE); - return CMD_WARNING; - } - - if (nsvc->nsvci != nsvci) { - vty_out(vty, "NS-VC has a different nsvci (%u)!%s", - nsvc->nsvci, VTY_NEWLINE); - return CMD_WARNING; - } - - gprs_ns2_free_nsvc(nsvc); - if (llist_empty(&nse->nsvc)) { - nse->ll = GPRS_NS2_LL_UNDEF; - nse->dialect = GPRS_NS2_DIALECT_UNDEF; - } - - return CMD_SUCCESS; -} - -DEFUN(cfg_ns_nse_ip_sns, cfg_ns_nse_ip_sns_cmd, - "ip-sns " VTY_IPV46_CMD " <1-65535>", - "SNS Initial Endpoint\n" - "SGSN IPv4 Address\n" "SGSN IPv6 Address\n" - "SGSN UDP Port\n" - ) -{ - struct gprs_ns2_nse *nse = vty->index; - bool dialect_modified = false; - bool ll_modified = false; - int rc; - - /* argv[0] */ - struct osmo_sockaddr_str remote_str; - struct osmo_sockaddr remote; - uint16_t port = atoi(argv[1]); - - if (nse->ll == GPRS_NS2_LL_UNDEF) { - nse->ll = GPRS_NS2_LL_UDP; - ll_modified = true; - } - - if (nse->dialect == GPRS_NS2_DIALECT_UNDEF) { - char sns[16]; - snprintf(sns, sizeof(sns), "NSE%05u-SNS", nse->nsei); - nse->bss_sns_fi = ns2_sns_bss_fsm_alloc(nse, sns); - if (!nse->bss_sns_fi) - goto err; - nse->dialect = GPRS_NS2_DIALECT_SNS; - dialect_modified = true; - } - - if (nse->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "Can not mix NS-VC with different link layer%s", VTY_NEWLINE); - goto err; - } - - if (nse->dialect != GPRS_NS2_DIALECT_SNS) { - vty_out(vty, "Can not mix NS-VC with different dialects%s", VTY_NEWLINE); - goto err; - } - - if (osmo_sockaddr_str_from_str(&remote_str, argv[0], port)) { - vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); - goto err; - } - - if (osmo_sockaddr_str_to_sockaddr(&remote_str, &remote.u.sas)) { - vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); - goto err; - } - - rc = gprs_ns2_sns_add_endpoint(nse, &remote); - switch (rc) { - case 0: - return CMD_SUCCESS; - case -EADDRINUSE: - vty_out(vty, "Specified SNS endpoint already part of the NSE.%s", VTY_NEWLINE); - return CMD_WARNING; - default: - vty_out(vty, "Can not add specified SNS endpoint.%s", VTY_NEWLINE); - return CMD_WARNING; - } - -err: - if (ll_modified) - nse->ll = GPRS_NS2_LL_UNDEF; - if (dialect_modified) - nse->dialect = GPRS_NS2_DIALECT_UNDEF; - return CMD_WARNING; -} - -DEFUN(cfg_no_ns_nse_ip_sns, cfg_no_ns_nse_ip_sns_cmd, - "no ip-sns " VTY_IPV46_CMD " <1-65535>", - NO_STR - "Delete a SNS Initial Endpoint\n" - "SGSN IPv4 Address\n" "SGSN IPv6 Address\n" - "SGSN UDP Port\n" - ) -{ - struct gprs_ns2_nse *nse = vty->index; - struct osmo_sockaddr_str remote_str; /* argv[0] */ - struct osmo_sockaddr remote; - uint16_t port = atoi(argv[1]); - int count; - - if (nse->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "This NSE doesn't support UDP.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - if (nse->dialect != GPRS_NS2_DIALECT_SNS) { - vty_out(vty, "This NSE doesn't support UDP with dialect ip-sns.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - if (osmo_sockaddr_str_from_str(&remote_str, argv[0], port)) { - vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - if (osmo_sockaddr_str_to_sockaddr(&remote_str, &remote.u.sas)) { - vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - if (gprs_ns2_sns_del_endpoint(nse, &remote)) { - vty_out(vty, "Can not remove specified SNS endpoint.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - count = gprs_ns2_sns_count(nse); - if (count > 0) { - /* there are other sns endpoints */ - return CMD_SUCCESS; - } else if (count < 0) { - OSMO_ASSERT(0); - } else { - /* clean up nse to allow other nsvc commands */ - osmo_fsm_inst_term(nse->bss_sns_fi, OSMO_FSM_TERM_REQUEST, NULL); - nse->bss_sns_fi = NULL; - nse->ll = GPRS_NS2_LL_UNDEF; - nse->dialect = GPRS_NS2_DIALECT_UNDEF; - } - - return CMD_SUCCESS; -} - - -/* non-config commands */ -static void dump_nsvc(struct vty *vty, struct gprs_ns2_vc *nsvc, bool stats) -{ - char nsvci_str[32]; - - if (nsvc->nsvci_is_valid) - snprintf(nsvci_str, sizeof(nsvci_str), "%05u", nsvc->nsvci); - else - snprintf(nsvci_str, sizeof(nsvci_str), "none"); - - vty_out(vty, " NSVCI %s: %s %s data_weight=%u sig_weight=%u %s%s", nsvci_str, - osmo_fsm_inst_state_name(nsvc->fi), - nsvc->persistent ? "PERSIST" : "DYNAMIC", - nsvc->data_weight, nsvc->sig_weight, - gprs_ns2_ll_str(nsvc), VTY_NEWLINE); - - if (stats) { - vty_out_rate_ctr_group(vty, " ", nsvc->ctrg); - vty_out_stat_item_group(vty, " ", nsvc->statg); - } -} - -static void dump_nse(struct vty *vty, const struct gprs_ns2_nse *nse, bool stats, bool persistent_only) -{ - struct gprs_ns2_vc *nsvc; - - vty_out(vty, "NSEI %05u: %s, %s%s", nse->nsei, gprs_ns2_lltype_str(nse->ll), - nse->alive ? "ALIVE" : "DEAD", VTY_NEWLINE); - - ns2_sns_dump_vty(vty, " ", nse, stats); - llist_for_each_entry(nsvc, &nse->nsvc, list) { - if (persistent_only) { - if (nsvc->persistent) - dump_nsvc(vty, nsvc, stats); - } else { - dump_nsvc(vty, nsvc, stats); - } - } -} - -static void dump_bind(struct vty *vty, const struct gprs_ns2_vc_bind *bind, bool stats) -{ - if (bind->dump_vty) - bind->dump_vty(bind, vty, stats); -} - -static void dump_ns_bind(struct vty *vty, const struct gprs_ns2_inst *nsi, bool stats) -{ - struct gprs_ns2_vc_bind *bind; - - llist_for_each_entry(bind, &nsi->binding, list) { - dump_bind(vty, bind, stats); - } -} - - -static void dump_ns_entities(struct vty *vty, const struct gprs_ns2_inst *nsi, bool stats, bool persistent_only) -{ - struct gprs_ns2_nse *nse; - - llist_for_each_entry(nse, &nsi->nse, list) { - dump_nse(vty, nse, stats, persistent_only); - } -} - -/* Backwards compatibility, among other things for the TestVTYGbproxy which expects - * 'show ns' to output something about binds */ -DEFUN_HIDDEN(show_ns, show_ns_cmd, "show ns", - SHOW_STR SHOW_NS_STR) -{ - dump_ns_entities(vty, vty_nsi, false, false); - dump_ns_bind(vty, vty_nsi, false); - return CMD_SUCCESS; -} - - -DEFUN(show_ns_binds, show_ns_binds_cmd, "show ns binds [stats]", - SHOW_STR SHOW_NS_STR - "Display information about the NS protocol binds\n" - "Include statistic\n") -{ - bool stats = false; - if (argc > 0) - stats = true; - - dump_ns_bind(vty, vty_nsi, stats); - return CMD_SUCCESS; -} - -DEFUN(show_ns_entities, show_ns_entities_cmd, "show ns entities [stats]", - SHOW_STR SHOW_NS_STR - "Display information about the NS protocol entities (NSEs)\n" - "Include statistics\n") -{ - bool stats = false; - if (argc > 0) - stats = true; - - dump_ns_entities(vty, vty_nsi, stats, false); - return CMD_SUCCESS; -} - -DEFUN(show_ns_pers, show_ns_pers_cmd, "show ns persistent", - SHOW_STR SHOW_NS_STR - "Show only persistent NS\n") -{ - dump_ns_entities(vty, vty_nsi, true, true); - return CMD_SUCCESS; -} - -DEFUN(show_nse, show_nse_cmd, "show ns (nsei|nsvc) <0-65535> [stats]", - SHOW_STR SHOW_NS_STR - "Select one NSE by its NSE Identifier\n" - "Select one NSE by its NS-VC Identifier\n" - "The Identifier of selected type\n" - "Include Statistics\n") -{ - struct gprs_ns2_inst *nsi = vty_nsi; - struct gprs_ns2_nse *nse; - struct gprs_ns2_vc *nsvc; - uint16_t id = atoi(argv[1]); - bool show_stats = false; - - if (argc >= 3) - show_stats = true; - - if (!strcmp(argv[0], "nsei")) { - nse = gprs_ns2_nse_by_nsei(nsi, id); - if (!nse) { - return CMD_WARNING; - } - - dump_nse(vty, nse, show_stats, false); - } else { - nsvc = gprs_ns2_nsvc_by_nsvci(nsi, id); - - if (!nsvc) { - vty_out(vty, "No such NS Entity%s", VTY_NEWLINE); - return CMD_WARNING; - } - - dump_nsvc(vty, nsvc, show_stats); - } - - return CMD_SUCCESS; -} - -static int nsvc_force_unconf_cb(struct gprs_ns2_vc *nsvc, void *ctx) -{ - ns2_vc_force_unconfigured(nsvc); - return 0; -} - -DEFUN_HIDDEN(nsvc_force_unconf, nsvc_force_unconf_cmd, - "nsvc nsei <0-65535> force-unconfigured", - "NS Virtual Connection\n" - "The NSEI\n" - "Reset the NSVCs back to initial state\n" - ) -{ - struct gprs_ns2_inst *nsi = vty_nsi; - struct gprs_ns2_nse *nse; - - uint16_t id = atoi(argv[0]); - - nse = gprs_ns2_nse_by_nsei(nsi, id); - if (!nse) { - vty_out(vty, "Could not find NSE for NSEI %u%s", id, VTY_NEWLINE); - return CMD_WARNING; - } - - if (!nse->persistent) { - gprs_ns2_free_nse(nse); - } else if (nse->dialect == GPRS_NS2_DIALECT_SNS) { - gprs_ns2_free_nsvcs(nse); - } else { - /* Perform the operation for all nsvc */ - gprs_ns2_nse_foreach_nsvc(nse, nsvc_force_unconf_cb, NULL); - } - - return CMD_SUCCESS; -} - -DEFUN(nsvc_block, nsvc_block_cmd, - "nsvc <0-65535> (block|unblock)", - "NS Virtual Connection\n" - NSVCI_STR - "Block a NSVC. As cause code O&M intervention will be used.\n" - "Unblock a NSVC. As cause code O&M intervention will be used.\n") -{ - struct gprs_ns2_inst *nsi = vty_nsi; - struct gprs_ns2_vc *nsvc; - - uint16_t id = atoi(argv[0]); - - nsvc = gprs_ns2_nsvc_by_nsvci(nsi, id); - if (!nsvc) { - vty_out(vty, "Could not find NSVCI %05u%s", id, VTY_NEWLINE); - return CMD_WARNING; - } - - if (!strcmp(argv[1], "block")) { - ns2_vc_block(nsvc); - } else { - ns2_vc_unblock(nsvc); - } - - return CMD_SUCCESS; -} - -static void log_set_nse_filter(struct log_target *target, - struct gprs_ns2_nse *nse) -{ - if (nse) { - target->filter_map |= (1 << LOG_FLT_GB_NSE); - target->filter_data[LOG_FLT_GB_NSE] = nse; - } else if (target->filter_data[LOG_FLT_GB_NSE]) { - target->filter_map = ~(1 << LOG_FLT_GB_NSE); - target->filter_data[LOG_FLT_GB_NSE] = NULL; - } -} - -static void log_set_nsvc_filter(struct log_target *target, - struct gprs_ns2_vc *nsvc) -{ - if (nsvc) { - target->filter_map |= (1 << LOG_FLT_GB_NSVC); - target->filter_data[LOG_FLT_GB_NSVC] = nsvc; - } else if (target->filter_data[LOG_FLT_GB_NSVC]) { - target->filter_map = ~(1 << LOG_FLT_GB_NSVC); - target->filter_data[LOG_FLT_GB_NSVC] = NULL; - } -} - -DEFUN(logging_fltr_nse, - logging_fltr_nse_cmd, - "logging filter nse nsei <0-65535>", - LOGGING_STR FILTER_STR - "Filter based on NS Entity\n" - "Identify NSE by NSEI\n" - "Numeric identifier\n") -{ - struct log_target *tgt; - struct gprs_ns2_nse *nse; - uint16_t id = atoi(argv[0]); - - log_tgt_mutex_lock(); - tgt = osmo_log_vty2tgt(vty); - if (!tgt) { - log_tgt_mutex_unlock(); - return CMD_WARNING; - } - - nse = gprs_ns2_nse_by_nsei(vty_nsi, id); - if (!nse) { - vty_out(vty, "No NSE by that identifier%s", VTY_NEWLINE); - log_tgt_mutex_unlock(); - return CMD_WARNING; - } - - log_set_nse_filter(tgt, nse); - log_tgt_mutex_unlock(); - return CMD_SUCCESS; -} - -/* TODO: add filter for single connection by description */ -DEFUN(logging_fltr_nsvc, - logging_fltr_nsvc_cmd, - "logging filter nsvc nsvci <0-65535>", - LOGGING_STR FILTER_STR - "Filter based on NS Virtual Connection\n" - "Identify NS-VC by NSVCI\n" - "Numeric identifier\n") -{ - struct log_target *tgt; - struct gprs_ns2_vc *nsvc; - uint16_t id = atoi(argv[0]); - - log_tgt_mutex_lock(); - tgt = osmo_log_vty2tgt(vty); - if (!tgt) { - log_tgt_mutex_unlock(); - return CMD_WARNING; - } - - nsvc = gprs_ns2_nsvc_by_nsvci(vty_nsi, id); - if (!nsvc) { - vty_out(vty, "No NS-VC by that identifier%s", VTY_NEWLINE); - log_tgt_mutex_unlock(); - return CMD_WARNING; - } - - log_set_nsvc_filter(tgt, nsvc); - log_tgt_mutex_unlock(); - return CMD_SUCCESS; -} - -int gprs_ns2_vty2_init(struct gprs_ns2_inst *nsi) -{ - vty_nsi = nsi; - INIT_LLIST_HEAD(&binds); - - vty_fr_network = osmo_fr_network_alloc(nsi); - if (!vty_fr_network) - return -ENOMEM; - - install_lib_element_ve(&show_ns_cmd); - install_lib_element_ve(&show_ns_binds_cmd); - install_lib_element_ve(&show_ns_entities_cmd); - install_lib_element_ve(&show_ns_pers_cmd); - install_lib_element_ve(&show_nse_cmd); - install_lib_element_ve(&logging_fltr_nse_cmd); - install_lib_element_ve(&logging_fltr_nsvc_cmd); - - install_lib_element(ENABLE_NODE, &nsvc_force_unconf_cmd); - install_lib_element(ENABLE_NODE, &nsvc_block_cmd); - - install_lib_element(CFG_LOG_NODE, &logging_fltr_nse_cmd); - install_lib_element(CFG_LOG_NODE, &logging_fltr_nsvc_cmd); - - install_lib_element(CONFIG_NODE, &cfg_ns_cmd); - - install_node(&ns_node, config_write_ns); - /* TODO: convert into osmo timer */ - install_lib_element(L_NS_NODE, &cfg_ns_timer_cmd); - install_lib_element(L_NS_NODE, &cfg_ns_nsei_cmd); - install_lib_element(L_NS_NODE, &cfg_no_ns_nsei_cmd); - install_lib_element(L_NS_NODE, &cfg_ns_bind_cmd); - install_lib_element(L_NS_NODE, &cfg_no_ns_bind_cmd); - - install_node(&ns_bind_node, config_write_ns_bind); - install_lib_element(L_NS_BIND_NODE, &cfg_ns_bind_listen_cmd); - install_lib_element(L_NS_BIND_NODE, &cfg_no_ns_bind_listen_cmd); - install_lib_element(L_NS_BIND_NODE, &cfg_ns_bind_dscp_cmd); - install_lib_element(L_NS_BIND_NODE, &cfg_no_ns_bind_dscp_cmd); - install_lib_element(L_NS_BIND_NODE, &cfg_ns_bind_ipaccess_cmd); - install_lib_element(L_NS_BIND_NODE, &cfg_no_ns_bind_ipaccess_cmd); - install_lib_element(L_NS_BIND_NODE, &cfg_ns_bind_fr_cmd); - install_lib_element(L_NS_BIND_NODE, &cfg_no_ns_bind_fr_cmd); - /* TODO: accept-ip-sns when SGSN SNS has been implemented */ - - install_node(&ns_nse_node, config_write_ns_nse); - install_lib_element(L_NS_NSE_NODE, &cfg_ns_nse_nsvc_fr_cmd); - install_lib_element(L_NS_NSE_NODE, &cfg_no_ns_nse_nsvci_cmd); - install_lib_element(L_NS_NSE_NODE, &cfg_no_ns_nse_nsvc_fr_dlci_cmd); - install_lib_element(L_NS_NSE_NODE, &cfg_ns_nse_nsvc_udp_cmd); - install_lib_element(L_NS_NSE_NODE, &cfg_no_ns_nse_nsvc_udp_cmd); - install_lib_element(L_NS_NSE_NODE, &cfg_ns_nse_nsvc_ipa_cmd); - install_lib_element(L_NS_NSE_NODE, &cfg_no_ns_nse_nsvc_ipa_cmd); - install_lib_element(L_NS_NSE_NODE, &cfg_ns_nse_ip_sns_cmd); - install_lib_element(L_NS_NSE_NODE, &cfg_no_ns_nse_ip_sns_cmd); - - return 0; -} diff --git a/src/gb/libosmogb.map b/src/gb/libosmogb.map index c6bbc78..fa05b97 100644 --- a/src/gb/libosmogb.map +++ b/src/gb/libosmogb.map @@ -185,9 +185,7 @@ gprs_ns2_start_alive_all_nsvcs; gprs_ns2_sns_add_endpoint; gprs_ns2_sns_del_endpoint; -gprs_ns2_vty_create; gprs_ns2_vty_init; -gprs_ns2_vty2_init; gprs_nsvc_create2; gprs_nsvc_delete; diff --git a/utils/osmo-ns-dummy.c b/utils/osmo-ns-dummy.c index 58e8152..33949d3 100644 --- a/utils/osmo-ns-dummy.c +++ b/utils/osmo-ns-dummy.c @@ -230,7 +230,7 @@ } gprs_ns2_dynamic_create_nse(nsi, true); - gprs_ns2_vty2_init(nsi); + gprs_ns2_vty_init(nsi); rc = vty_read_config_file(config_file, NULL); if (rc < 0 && config_given) { fprintf(stderr, "Failed to parse the config file: '%s'\n", -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22514 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic2059e75d8ede8e5c29c4fef6be608ed79c8a97c Gerrit-Change-Number: 22514 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 12:55:38 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 28 Jan 2021 12:55:38 +0000 Subject: Change in osmo-pcu[master]: follow gprs_ns2 API enum changes In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22506 ) Change subject: follow gprs_ns2 API enum changes ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22506 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ifdc7956318c07d680feab33c22bc2c6f20927bf9 Gerrit-Change-Number: 22506 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 28 Jan 2021 12:55:38 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 12:55:42 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 28 Jan 2021 12:55:42 +0000 Subject: Change in osmo-pcu[master]: follow gprs_ns2 API enum changes In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22506 ) Change subject: follow gprs_ns2 API enum changes ...................................................................... follow gprs_ns2 API enum changes All gprs_ns2 enums have now GPRS_NS2 as prefix. Depends-on: I548ff12f7277cbb7e1a630a3dc02b738ce89be72 (libosmocore) Change-Id: Ifdc7956318c07d680feab33c22bc2c6f20927bf9 --- M src/gprs_bssgp_pcu.c M src/gprs_pcu.c M src/pcu_vty.c 3 files changed, 14 insertions(+), 14 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/gprs_bssgp_pcu.c b/src/gprs_bssgp_pcu.c index 81a6518..a6b6f7e 100644 --- a/src/gprs_bssgp_pcu.c +++ b/src/gprs_bssgp_pcu.c @@ -576,10 +576,10 @@ void gprs_ns_prim_status_cb(struct osmo_gprs_ns2_prim *nsp) { switch (nsp->u.status.cause) { - case NS_AFF_CAUSE_SNS_CONFIGURED: + case GPRS_NS2_AFF_CAUSE_SNS_CONFIGURED: LOGP(DPCU, LOGL_NOTICE, "NS-NSE %d SNS configured.\n", nsp->nsei); break; - case NS_AFF_CAUSE_RECOVERY: + case GPRS_NS2_AFF_CAUSE_RECOVERY: LOGP(DPCU, LOGL_NOTICE, "NS-NSE %d became available\n", nsp->nsei); if (!the_pcu->bssgp.nsvc_unblocked) { the_pcu->bssgp.bvc_sig_reset = 0; @@ -588,7 +588,7 @@ bvc_timeout(NULL); } break; - case NS_AFF_CAUSE_FAILURE: + case GPRS_NS2_AFF_CAUSE_FAILURE: LOGP(DPCU, LOGL_NOTICE, "NS-NSE %d became unavailable\n", nsp->nsei); if (the_pcu->bssgp.nsvc_unblocked) { the_pcu->bssgp.nsvc_unblocked = 0; @@ -598,7 +598,7 @@ the_pcu->bssgp.bvc_unblocked = 0; } break; - case NS_AFF_CAUSE_SNS_FAILURE: + case GPRS_NS2_AFF_CAUSE_SNS_FAILURE: break; default: LOGP(DPCU, LOGL_DEBUG, @@ -628,7 +628,7 @@ } switch (oph->primitive) { - case PRIM_NS_UNIT_DATA: + case GPRS_NS2_PRIM_UNIT_DATA: /* hand the message into the BSSGP implementation */ /* add required msg fields for Gb layer */ msgb_bssgph(oph->msg) = oph->msg->l3h; @@ -636,10 +636,10 @@ msgb_nsei(oph->msg) = nsp->nsei; rc = gprs_bssgp_pcu_rcvmsg(oph->msg); break; - case PRIM_NS_STATUS: + case GPRS_NS2_PRIM_STATUS: gprs_ns_prim_status_cb(nsp); break; - case PRIM_NS_CONGESTION: + case GPRS_NS2_PRIM_CONGESTION: break; default: LOGP(DPCU, LOGL_DEBUG, @@ -663,7 +663,7 @@ struct osmo_gprs_ns2_prim nsp = {}; nsp.nsei = msgb_nsei(msg); nsp.bvci = msgb_bvci(msg); - osmo_prim_init(&nsp.oph, SAP_NS, PRIM_NS_UNIT_DATA, + osmo_prim_init(&nsp.oph, SAP_NS, GPRS_NS2_PRIM_UNIT_DATA, PRIM_OP_REQUEST, msg); return gprs_ns2_recv_prim(nsi, &nsp.oph); } @@ -1029,7 +1029,7 @@ continue; /* FIXME: for SNS we just use the first successful NS-VC instead of all for the initial connect */ - if (the_pcu->vty.ns_dialect == NS2_DIALECT_SNS) { + if (the_pcu->vty.ns_dialect == GPRS_NS2_DIALECT_SNS) { rc = gprs_ns2_sns_add_endpoint(bts->nse, &remote[i]); if (!rc) return rc; @@ -1099,7 +1099,7 @@ gprs_ns2_free_nses(the_pcu->nsi); gprs_ns2_free_binds(the_pcu->nsi); rc = ns_create_nsvc(bts, nsei, local, remote, nsvci, valid); - } else if (the_pcu->vty.ns_dialect == NS2_DIALECT_SNS) { + } else if (the_pcu->vty.ns_dialect == GPRS_NS2_DIALECT_SNS) { /* SNS: check if the initial nsvc is the same, if not recreate it */ const struct osmo_sockaddr *initial = gprs_ns2_nse_sns_remote(bts->nse); unsigned int i; diff --git a/src/gprs_pcu.c b/src/gprs_pcu.c index 2f18dfd..0786199 100644 --- a/src/gprs_pcu.c +++ b/src/gprs_pcu.c @@ -91,7 +91,7 @@ pcu->vty.mcs_lqual_ranges[7].high = 24; pcu->vty.mcs_lqual_ranges[8].low = 23; pcu->vty.mcs_lqual_ranges[8].high = 256; - pcu->vty.ns_dialect = NS2_DIALECT_IPACCESS; + pcu->vty.ns_dialect = GPRS_NS2_DIALECT_IPACCESS; /* TODO: increase them when CRBB decoding is implemented */ pcu->vty.ws_base = 64; pcu->vty.ws_pdch = 0; diff --git a/src/pcu_vty.c b/src/pcu_vty.c index 288f241..4b502c9 100644 --- a/src/pcu_vty.c +++ b/src/pcu_vty.c @@ -244,7 +244,7 @@ } } - if (the_pcu->vty.ns_dialect == NS2_DIALECT_SNS) + if (the_pcu->vty.ns_dialect == GPRS_NS2_DIALECT_SNS) vty_out(vty, " gb-dialect ip-sns%s", VTY_NEWLINE); else vty_out(vty, " gb-dialect classic%s", VTY_NEWLINE); @@ -1010,9 +1010,9 @@ "Modern Gb interface with IP-SNS (Sub Network Service) and dynamic configuration\n") { if (!strcmp(argv[0], "ip-sns")) { - the_pcu->vty.ns_dialect = NS2_DIALECT_SNS; + the_pcu->vty.ns_dialect = GPRS_NS2_DIALECT_SNS; } else { - the_pcu->vty.ns_dialect = NS2_DIALECT_IPACCESS; + the_pcu->vty.ns_dialect = GPRS_NS2_DIALECT_IPACCESS; } return CMD_SUCCESS; -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22506 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ifdc7956318c07d680feab33c22bc2c6f20927bf9 Gerrit-Change-Number: 22506 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 12:55:52 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 28 Jan 2021 12:55:52 +0000 Subject: Change in osmo-sgsn[master]: follow libosmocore/gprs_ns2 API changes of GPRS enums In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22499 ) Change subject: follow libosmocore/gprs_ns2 API changes of GPRS enums ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22499 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I1af704cdd62ddaff4304479b837dc185b80d7dd6 Gerrit-Change-Number: 22499 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 28 Jan 2021 12:55:52 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 12:55:57 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 28 Jan 2021 12:55:57 +0000 Subject: Change in osmo-sgsn[master]: follow libosmocore/gprs_ns2 API changes of GPRS enums In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22499 ) Change subject: follow libosmocore/gprs_ns2 API changes of GPRS enums ...................................................................... follow libosmocore/gprs_ns2 API changes of GPRS enums All gprs_ns2 enums have now GPRS_NS2 as prefix. API change which must be synchronized with libosmocore Depends-on: I548ff12f7277cbb7e1a630a3dc02b738ce89be72 (libosmocore) Change-Id: I1af704cdd62ddaff4304479b837dc185b80d7dd6 --- M src/gbproxy/gb_proxy.c M src/sgsn/gprs_gb.c 2 files changed, 20 insertions(+), 20 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/src/gbproxy/gb_proxy.c b/src/gbproxy/gb_proxy.c index 1dc3114..1d29b64 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -168,7 +168,7 @@ if (gprs_gb_parse_tlli(msgb_data(msg), msgb_length(msg), &tlli) == 1) nsp.u.unitdata.link_selector = tlli; - osmo_prim_init(&nsp.oph, SAP_NS, PRIM_NS_UNIT_DATA, + osmo_prim_init(&nsp.oph, SAP_NS, GPRS_NS2_PRIM_UNIT_DATA, PRIM_OP_REQUEST, msg); rc = gprs_ns2_recv_prim(nsi, &nsp.oph); /* FIXME: We need a counter group for gbproxy_nse */ @@ -1279,7 +1279,7 @@ nsp.bvci = msgb_bvci(msg); nsp.nsei = msgb_nsei(msg); - osmo_prim_init(&nsp.oph, SAP_NS, PRIM_NS_UNIT_DATA, PRIM_OP_REQUEST, msg); + osmo_prim_init(&nsp.oph, SAP_NS, GPRS_NS2_PRIM_UNIT_DATA, PRIM_OP_REQUEST, msg); rc = gprs_ns2_recv_prim(nsi, &nsp.oph); return rc; @@ -1321,13 +1321,13 @@ } /* TODO: What about handling: - * NS_AFF_CAUSE_VC_FAILURE, - NS_AFF_CAUSE_VC_RECOVERY, - NS_AFF_CAUSE_FAILURE, - NS_AFF_CAUSE_RECOVERY, + * GPRS_NS2_AFF_CAUSE_VC_FAILURE, + GPRS_NS2_AFF_CAUSE_VC_RECOVERY, + GPRS_NS2_AFF_CAUSE_FAILURE, + GPRS_NS2_AFF_CAUSE_RECOVERY, osmocom own causes - NS_AFF_CAUSE_SNS_CONFIGURED, - NS_AFF_CAUSE_SNS_FAILURE, + GPRS_NS2_AFF_CAUSE_SNS_CONFIGURED, + GPRS_NS2_AFF_CAUSE_SNS_FAILURE, */ void gprs_ns_prim_status_cb(struct gbproxy_config *cfg, struct osmo_gprs_ns2_prim *nsp) @@ -1340,11 +1340,11 @@ struct gbproxy_nse *sgsn_nse; switch (nsp->u.status.cause) { - case NS_AFF_CAUSE_SNS_FAILURE: - case NS_AFF_CAUSE_SNS_CONFIGURED: + case GPRS_NS2_AFF_CAUSE_SNS_FAILURE: + case GPRS_NS2_AFF_CAUSE_SNS_CONFIGURED: break; - case NS_AFF_CAUSE_RECOVERY: + case GPRS_NS2_AFF_CAUSE_RECOVERY: LOGP(DGPRS, LOGL_NOTICE, "NS-NSE %d became available\n", nsp->nsei); sgsn_nse = gbproxy_nse_by_nsei(cfg, nsp->nsei, NSE_F_SGSN); if (sgsn_nse) { @@ -1354,7 +1354,7 @@ osmo_fsm_inst_dispatch(bvc->fi, BSSGP_BVCFSM_E_REQ_RESET, &cause); } break; - case NS_AFF_CAUSE_FAILURE: + case GPRS_NS2_AFF_CAUSE_FAILURE: #if 0 if (gbproxy_is_sgsn_nsei(cfg, nsp->nsei)) { /* sgsn */ @@ -1408,7 +1408,7 @@ } switch (oph->primitive) { - case PRIM_NS_UNIT_DATA: + case GPRS_NS2_PRIM_UNIT_DATA: /* hand the message into the BSSGP implementation */ msgb_bssgph(oph->msg) = oph->msg->l3h; @@ -1420,7 +1420,7 @@ rc = gbprox_rcvmsg(cfg, oph->msg); msgb_free(oph->msg); break; - case PRIM_NS_STATUS: + case GPRS_NS2_PRIM_STATUS: gprs_ns_prim_status_cb(cfg, nsp); break; default: diff --git a/src/sgsn/gprs_gb.c b/src/sgsn/gprs_gb.c index c7d5c28..2585d6d 100644 --- a/src/sgsn/gprs_gb.c +++ b/src/sgsn/gprs_gb.c @@ -114,17 +114,17 @@ struct osmo_gprs_ns2_prim nsp = {}; nsp.nsei = msgb_nsei(msg); nsp.bvci = msgb_bvci(msg); - osmo_prim_init(&nsp.oph, SAP_NS, PRIM_NS_UNIT_DATA, PRIM_OP_REQUEST, msg); + osmo_prim_init(&nsp.oph, SAP_NS, GPRS_NS2_PRIM_UNIT_DATA, PRIM_OP_REQUEST, msg); return gprs_ns2_recv_prim(nsi, &nsp.oph); } void gprs_ns_prim_status_cb(struct osmo_gprs_ns2_prim *nsp) { switch (nsp->u.status.cause) { - case NS_AFF_CAUSE_SNS_CONFIGURED: + case GPRS_NS2_AFF_CAUSE_SNS_CONFIGURED: LOGP(DGPRS, LOGL_NOTICE, "NS-E %d SNS configured.\n", nsp->nsei); break; - case NS_AFF_CAUSE_RECOVERY: + case GPRS_NS2_AFF_CAUSE_RECOVERY: LOGP(DGPRS, LOGL_NOTICE, "NS-E %d became available\n", nsp->nsei); /* workaround for broken BSS which doesn't respond correct to BSSGP status message. * Sent a BSSGP Reset when a persistent NSVC comes up for the first time. */ @@ -135,7 +135,7 @@ bssgp_tx_bvc_reset2(&bctx, BVCI_SIGNALLING, BSSGP_CAUSE_EQUIP_FAIL, false); } break; - case NS_AFF_CAUSE_FAILURE: + case GPRS_NS2_AFF_CAUSE_FAILURE: LOGP(DGPRS, LOGL_NOTICE, "NS-E %d became unavailable\n", nsp->nsei); break; default: @@ -164,7 +164,7 @@ } switch (oph->primitive) { - case PRIM_NS_UNIT_DATA: + case GPRS_NS2_PRIM_UNIT_DATA: /* hand the message into the BSSGP implementation */ /* add required msg fields for Gb layer */ msgb_bssgph(oph->msg) = oph->msg->l3h; @@ -172,7 +172,7 @@ msgb_nsei(oph->msg) = nsp->nsei; rc = bssgp_rcvmsg(oph->msg); break; - case PRIM_NS_STATUS: + case GPRS_NS2_PRIM_STATUS: gprs_ns_prim_status_cb(nsp); break; default: -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22499 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I1af704cdd62ddaff4304479b837dc185b80d7dd6 Gerrit-Change-Number: 22499 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 14:13:49 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 28 Jan 2021 14:13:49 +0000 Subject: Change in osmo-sgsn[master]: sgsn: follow libosmocore/gprs_ns2 API changes (gprs_ns2_dynamic_creat... In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22502 ) Change subject: sgsn: follow libosmocore/gprs_ns2 API changes (gprs_ns2_dynamic_create_nse) ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22502 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ie636cfd18d6d43da0e42f2c2de68dfa5c571d55c Gerrit-Change-Number: 22502 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 28 Jan 2021 14:13:49 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 15:21:01 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 28 Jan 2021 15:21:01 +0000 Subject: Change in libosmocore[master]: gprs_ns2: remove api call gprs_ns2_dynamic_create_nse In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22498 ) Change subject: gprs_ns2: remove api call gprs_ns2_dynamic_create_nse ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22498 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie924ead6da17657f3da334068c8ada82c8845495 Gerrit-Change-Number: 22498 Gerrit-PatchSet: 5 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 28 Jan 2021 15:21:01 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 15:23:17 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 28 Jan 2021 15:23:17 +0000 Subject: Change in libosmocore[master]: gprs_ns2: introduce gprs_ns2_vty_init_reduced() for the PCU In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22508 ) Change subject: gprs_ns2: introduce gprs_ns2_vty_init_reduced() for the PCU ...................................................................... Patch Set 3: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/22508/3/src/gb/gprs_ns2_vty.c File src/gb/gprs_ns2_vty.c: https://gerrit.osmocom.org/c/libosmocore/+/22508/3/src/gb/gprs_ns2_vty.c at 1677 PS3, Line 1677: /* TODO: accept-ip-sns when SGSN SNS has been implemented */ I know it's unrelated, but what's up with this TODO? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22508 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4437da74bd48ba64d3f16ea67afc26c45b6d3ac9 Gerrit-Change-Number: 22508 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 28 Jan 2021 15:23:17 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 15:24:52 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 28 Jan 2021 15:24:52 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: follow gprs_ns2 API vty changes In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22500 ) Change subject: gbproxy: follow gprs_ns2 API vty changes ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22500 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: If5bd6b86e130772e6c93d640b0c637985416136d Gerrit-Change-Number: 22500 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 28 Jan 2021 15:24:52 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 15:26:03 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 28 Jan 2021 15:26:03 +0000 Subject: Change in osmo-sgsn[master]: sgsn: migrate to the new gprs_ns2_vty configuration In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22501 ) Change subject: sgsn: migrate to the new gprs_ns2_vty configuration ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22501 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ie9306ab4d4738c2c57a69987086e22771b30657e Gerrit-Change-Number: 22501 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 28 Jan 2021 15:26:03 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 15:26:16 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 28 Jan 2021 15:26:16 +0000 Subject: Change in osmo-sgsn[master]: sgsn: follow libosmocore/gprs_ns2 API changes (gprs_ns2_dynamic_creat... In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22502 ) Change subject: sgsn: follow libosmocore/gprs_ns2 API changes (gprs_ns2_dynamic_create_nse) ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22502 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ie636cfd18d6d43da0e42f2c2de68dfa5c571d55c Gerrit-Change-Number: 22502 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 28 Jan 2021 15:26:16 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 15:28:02 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 28 Jan 2021 15:28:02 +0000 Subject: Change in libosmocore[master]: gprs_ns2: drop gprs_ns2_vty, rename vty2 -> vty In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22514 ) Change subject: gprs_ns2: drop gprs_ns2_vty, rename vty2 -> vty ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22514 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic2059e75d8ede8e5c29c4fef6be608ed79c8a97c Gerrit-Change-Number: 22514 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Thu, 28 Jan 2021 15:28:02 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 15:49:24 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 28 Jan 2021 15:49:24 +0000 Subject: Change in osmo-sgsn[master]: manuals/gbproxy: Update configuration chapter In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22493 ) Change subject: manuals/gbproxy: Update configuration chapter ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-sgsn/+/22493/1/doc/manuals/chapters/gbproxy-configuration.adoc File doc/manuals/chapters/gbproxy-configuration.adoc: https://gerrit.osmocom.org/c/osmo-sgsn/+/22493/1/doc/manuals/chapters/gbproxy-configuration.adoc at 3 PS1, Line 3: OsmoGbProxy requires very little configuration, most is the configuration of > can "most" be used like this? or you need to write "most of it is" or "the most being" ? Yeah, doesn't make much sense. Changed -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22493 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I01f8d47f9fa384a2528ddf2e6c936ff28d11409e Gerrit-Change-Number: 22493 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 28 Jan 2021 15:49:24 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 15:49:56 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 28 Jan 2021 15:49:56 +0000 Subject: Change in osmo-sgsn[master]: manual/gbproxy: Update data model In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22491 ) Change subject: manual/gbproxy: Update data model ...................................................................... Patch Set 1: (2 comments) https://gerrit.osmocom.org/c/osmo-sgsn/+/22491/1/doc/manuals/chapters/gbproxy-overview.adoc File doc/manuals/chapters/gbproxy-overview.adoc: https://gerrit.osmocom.org/c/osmo-sgsn/+/22491/1/doc/manuals/chapters/gbproxy-overview.adoc at a68 PS1, Line 68: === Advanced Features > You are also dropping no-longer supported features here, this doesn't seem to match the commit descr [?] I'll update the description unless you want separate commits for that https://gerrit.osmocom.org/c/osmo-sgsn/+/22491/1/doc/manuals/chapters/gbproxy-overview.adoc at 35 PS1, Line 35: ==== gproxy_nse > should this be "gbproxy_nse"? indeed it should, thanks -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22491 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Icb9095f4002f2a0a4562fccecae109075cb93c7b Gerrit-Change-Number: 22491 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 28 Jan 2021 15:49:56 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 15:50:06 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 28 Jan 2021 15:50:06 +0000 Subject: Change in osmo-sgsn[master]: Rename OsmoGbPROXY -> *Proxy In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22492 ) Change subject: Rename OsmoGbPROXY -> *Proxy ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-sgsn/+/22492/1/doc/manuals/osmogbproxy-usermanual.adoc File doc/manuals/osmogbproxy-usermanual.adoc: https://gerrit.osmocom.org/c/osmo-sgsn/+/22492/1/doc/manuals/osmogbproxy-usermanual.adoc at 3 PS1, Line 3: OsmoGbProxy User Manual > You can also define a variable here and use it in all files to be sure same naming is used, see as a [?] Good to know, I'll keep that in mind. For now I think I'll keep it as is -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22492 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I7542ac1d5242f1784146de2df7cecaf70fe93c6c Gerrit-Change-Number: 22492 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 28 Jan 2021 15:50:06 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 15:51:14 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 28 Jan 2021 15:51:14 +0000 Subject: Change in osmo-sgsn[master]: manual/gbproxy: Update overview chapter In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22491 to look at the new patch set (#2). Change subject: manual/gbproxy: Update overview chapter ...................................................................... manual/gbproxy: Update overview chapter * Remove mention of features that are no longer supported * Update the data model Related: SYS#5115, SYS#5005 Change-Id: Icb9095f4002f2a0a4562fccecae109075cb93c7b --- M doc/manuals/chapters/gbproxy-overview.adoc 1 file changed, 44 insertions(+), 77 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/91/22491/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22491 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Icb9095f4002f2a0a4562fccecae109075cb93c7b Gerrit-Change-Number: 22491 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 15:51:14 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 28 Jan 2021 15:51:14 +0000 Subject: Change in osmo-sgsn[master]: manuals/gbproxy: Update configuration chapter In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22493 to look at the new patch set (#2). Change subject: manuals/gbproxy: Update configuration chapter ...................................................................... manuals/gbproxy: Update configuration chapter Change-Id: I01f8d47f9fa384a2528ddf2e6c936ff28d11409e Related: SYS#5115, SYS#5005 --- M doc/manuals/chapters/gbproxy-configuration.adoc 1 file changed, 37 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/93/22493/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22493 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I01f8d47f9fa384a2528ddf2e6c936ff28d11409e Gerrit-Change-Number: 22493 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 17:07:15 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 28 Jan 2021 17:07:15 +0000 Subject: Change in libosmocore[master]: gprs_ns2: introduce gprs_ns2_vty_init_reduced() for the PCU In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22508 ) Change subject: gprs_ns2: introduce gprs_ns2_vty_init_reduced() for the PCU ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/22508/3/src/gb/gprs_ns2_vty.c File src/gb/gprs_ns2_vty.c: https://gerrit.osmocom.org/c/libosmocore/+/22508/3/src/gb/gprs_ns2_vty.c at 1677 PS3, Line 1677: /* TODO: accept-ip-sns when SGSN SNS has been implemented */ > I know it's unrelated, but what's up with this TODO? ip sns sgsn side (server side) -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22508 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4437da74bd48ba64d3f16ea67afc26c45b6d3ac9 Gerrit-Change-Number: 22508 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 28 Jan 2021 17:07:15 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: daniel Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 17:46:57 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 28 Jan 2021 17:46:57 +0000 Subject: Change in osmo-sgsn[master]: manual/gbproxy: Update overview chapter In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22491 ) Change subject: manual/gbproxy: Update overview chapter ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22491 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Icb9095f4002f2a0a4562fccecae109075cb93c7b Gerrit-Change-Number: 22491 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 28 Jan 2021 17:46:57 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 17:47:21 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 28 Jan 2021 17:47:21 +0000 Subject: Change in osmo-sgsn[master]: manuals/gbproxy: Update configuration chapter In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22493 ) Change subject: manuals/gbproxy: Update configuration chapter ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22493 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I01f8d47f9fa384a2528ddf2e6c936ff28d11409e Gerrit-Change-Number: 22493 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 28 Jan 2021 17:47:21 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 18:12:52 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 28 Jan 2021 18:12:52 +0000 Subject: Change in docker-playground[master]: ttcn3-pcu: Update configs to support NACC tests References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/22515 ) Change subject: ttcn3-pcu: Update configs to support NACC tests ...................................................................... ttcn3-pcu: Update configs to support NACC tests Change-Id: If027812940579a7f344a36543e85518cc096905b --- M ttcn3-pcu-test/PCU_Tests.cfg M ttcn3-pcu-test/jenkins.sh M ttcn3-pcu-test/osmo-pcu.cfg 3 files changed, 5 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/15/22515/1 diff --git a/ttcn3-pcu-test/PCU_Tests.cfg b/ttcn3-pcu-test/PCU_Tests.cfg index 89ed220..43e9d88 100644 --- a/ttcn3-pcu-test/PCU_Tests.cfg +++ b/ttcn3-pcu-test/PCU_Tests.cfg @@ -14,6 +14,7 @@ [MODULE_PARAMETERS] PCU_Tests.mp_pcu_sock_path := "/data/unix/pcu_bts" PCU_Tests.mp_pcu_statsd_ip := "172.18.13.10" +PCU_Tests.mp_ctrl_neigh_ip := "172.18.13.10"; SGSN_Components.mp_nsconfig := { nsei := 1234, handle_sns := false, diff --git a/ttcn3-pcu-test/jenkins.sh b/ttcn3-pcu-test/jenkins.sh index d85b405..c2ef0d5 100755 --- a/ttcn3-pcu-test/jenkins.sh +++ b/ttcn3-pcu-test/jenkins.sh @@ -33,6 +33,9 @@ sed -i "s/^StatsD_Checker.mp_enable_stats.*/StatsD_Checker.mp_enable_stats := false;/" $VOL_BASE_DIR/pcu-tester/PCU_Tests.cfg sed -i "s/stats interval 0//" $VOL_BASE_DIR/pcu/osmo-pcu.cfg sed -i "s/flush-period 1//" $VOL_BASE_DIR/pcu/osmo-pcu.cfg + + # neighbor resolution only available in osmo-pcu > 0.8.0 + sed "/neighbor resolution/d" -i $VOL_BASE_DIR/pcu/osmo-pcu.cfg fi echo Starting container with PCU diff --git a/ttcn3-pcu-test/osmo-pcu.cfg b/ttcn3-pcu-test/osmo-pcu.cfg index 733cebe..3d60d93 100644 --- a/ttcn3-pcu-test/osmo-pcu.cfg +++ b/ttcn3-pcu-test/osmo-pcu.cfg @@ -32,6 +32,7 @@ alpha 0 gamma 0 pcu-socket /data/unix/pcu_bts + neighbor resolution 172.18.13.10 gsmtap-category dl-unknown gsmtap-category dl-dummy gsmtap-category dl-ctrl -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22515 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: If027812940579a7f344a36543e85518cc096905b Gerrit-Change-Number: 22515 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 18:14:57 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 28 Jan 2021 18:14:57 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Avoid depending on any of the SGSN code References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22516 ) Change subject: gbproxy: Avoid depending on any of the SGSN code ...................................................................... gbproxy: Avoid depending on any of the SGSN code The last remaining functin of the SGSN code base we used was gprs_gb_parse_tlli(). Let's simply copy this function over and become self-contained. This would allow migrating osmo-gbproxy to a separate repository. Change-Id: I6f3f86581b47ad71a3d97f07611a2e2709876d69 --- M src/gbproxy/Makefile.am M src/gbproxy/gb_proxy.c 2 files changed, 41 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/16/22516/1 diff --git a/src/gbproxy/Makefile.am b/src/gbproxy/Makefile.am index f8a8773..1500e11 100644 --- a/src/gbproxy/Makefile.am +++ b/src/gbproxy/Makefile.am @@ -30,10 +30,6 @@ gb_proxy_peer.c \ $(NULL) osmo_gbproxy_LDADD = \ - $(top_builddir)/src/gprs/gprs_gb_parse.o \ - $(top_builddir)/src/gprs/gprs_llc_parse.o \ - $(top_builddir)/src/gprs/crc24.o \ - $(top_builddir)/src/gprs/gprs_utils.o \ $(LIBOSMOCORE_LIBS) \ $(LIBOSMOGSM_LIBS) \ $(LIBOSMOVTY_LIBS) \ diff --git a/src/gbproxy/gb_proxy.c b/src/gbproxy/gb_proxy.c index 1d29b64..c882eb0 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -136,6 +136,47 @@ } #endif +/*! Determine the TLLI from the given BSSGP message. + * \param[in] bssgp pointer to start of BSSGP header + * \param[in] bssgp_len length of BSSGP message in octets + * \param[out] tlli TLLI (if any) in host byte order + * \returns 1 if TLLI found; 0 if none found; negative on parse error */ +int gprs_gb_parse_tlli(const uint8_t *bssgp, size_t bssgp_len, uint32_t *tlli) +{ + const struct bssgp_normal_hdr *bgph; + uint8_t pdu_type; + + if (bssgp_len < sizeof(struct bssgp_normal_hdr)) + return -EINVAL; + + bgph = (struct bssgp_normal_hdr *)bssgp; + pdu_type = bgph->pdu_type; + + if (pdu_type == BSSGP_PDUT_UL_UNITDATA || + pdu_type == BSSGP_PDUT_DL_UNITDATA) { + const struct bssgp_ud_hdr *budh = (struct bssgp_ud_hdr *)bssgp; + if (bssgp_len < sizeof(struct bssgp_ud_hdr)) + return -EINVAL; + *tlli = osmo_load32be((const uint8_t *)&budh->tlli); + return 1; + } else { + const uint8_t *data = bgph->data; + size_t data_len = bssgp_len - sizeof(*bgph); + struct tlv_parsed tp; + + if (bssgp_tlv_parse(&tp, data, data_len) < 0) + return -EINVAL; + + if (TLVP_PRESENT(&tp, BSSGP_IE_TLLI)) { + *tlli = osmo_load32be(TLVP_VAL(&tp, BSSGP_IE_TLLI)); + return 1; + } + } + + /* No TLLI present in message */ + return 0; +} + /* feed a message down the NSE */ static int gbprox_relay2nse(struct msgb *old_msg, struct gbproxy_nse *nse, uint16_t ns_bvci) -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22516 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I6f3f86581b47ad71a3d97f07611a2e2709876d69 Gerrit-Change-Number: 22516 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 18:15:56 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 28 Jan 2021 18:15:56 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Avoid depending on any of the SGSN code In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22516 ) Change subject: gbproxy: Avoid depending on any of the SGSN code ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22516 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I6f3f86581b47ad71a3d97f07611a2e2709876d69 Gerrit-Change-Number: 22516 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: daniel Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Thu, 28 Jan 2021 18:15:56 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 18:16:32 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 28 Jan 2021 18:16:32 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Remove superfluous CFLAGS and LDADD References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22517 ) Change subject: gbproxy: Remove superfluous CFLAGS and LDADD ...................................................................... gbproxy: Remove superfluous CFLAGS and LDADD gbproxy doesn't need anything related to GSUP or GTP Change-Id: I832e1b28793d1fd36966fade2525169946bfb513 --- M src/gbproxy/Makefile.am 1 file changed, 0 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/17/22517/1 diff --git a/src/gbproxy/Makefile.am b/src/gbproxy/Makefile.am index 1500e11..759791b 100644 --- a/src/gbproxy/Makefile.am +++ b/src/gbproxy/Makefile.am @@ -13,9 +13,7 @@ $(LIBOSMOCTRL_CFLAGS) \ $(LIBOSMOABIS_CFLAGS) \ $(LIBOSMOGB_CFLAGS) \ - $(LIBOSMOGSUPCLIENT_CFLAGS) \ $(COVERAGE_CFLAGS) \ - $(LIBGTP_CFLAGS) \ $(NULL) bin_PROGRAMS = \ @@ -35,6 +33,5 @@ $(LIBOSMOVTY_LIBS) \ $(LIBOSMOCTRL_LIBS) \ $(LIBOSMOGB_LIBS) \ - $(LIBGTP_LIBS) \ -lrt \ $(NULL) -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22517 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I832e1b28793d1fd36966fade2525169946bfb513 Gerrit-Change-Number: 22517 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 18:24:03 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 28 Jan 2021 18:24:03 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: TC_bssgp_dl_unitdata_with_invalid_imsi: Expect BSSGP STATUS on c... In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22437 ) Change subject: pcu: TC_bssgp_dl_unitdata_with_invalid_imsi: Expect BSSGP STATUS on correct port ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22437 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I0457302fef24a362f0720247ea653b06af9e1c87 Gerrit-Change-Number: 22437 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 28 Jan 2021 18:24:03 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 18:25:16 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 28 Jan 2021 18:25:16 +0000 Subject: Change in osmo-pcu[master]: tbf: Make tbf_ms() param const In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22460 ) Change subject: tbf: Make tbf_ms() param const ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22460 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I041c564b15d17d05ce97ea0085fcd9192a346578 Gerrit-Change-Number: 22460 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 28 Jan 2021 18:25:16 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 18:28:47 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 28 Jan 2021 18:28:47 +0000 Subject: Change in osmo-pcu[master]: Introduce NACC support In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22385 ) Change subject: Introduce NACC support ...................................................................... Patch Set 11: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22385 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Id35f40d05f3e081f32fddbf1fa34cb338db452ca Gerrit-Change-Number: 22385 Gerrit-PatchSet: 11 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-CC: laforge Gerrit-Comment-Date: Thu, 28 Jan 2021 18:28:47 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 18:30:04 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 28 Jan 2021 18:30:04 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Avoid depending on any of the SGSN code In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22516 ) Change subject: gbproxy: Avoid depending on any of the SGSN code ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22516 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I6f3f86581b47ad71a3d97f07611a2e2709876d69 Gerrit-Change-Number: 22516 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 28 Jan 2021 18:30:04 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 18:30:07 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 28 Jan 2021 18:30:07 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Avoid depending on any of the SGSN code In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22516 ) Change subject: gbproxy: Avoid depending on any of the SGSN code ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22516 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I6f3f86581b47ad71a3d97f07611a2e2709876d69 Gerrit-Change-Number: 22516 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 28 Jan 2021 18:30:07 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 18:30:17 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 28 Jan 2021 18:30:17 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Remove superfluous CFLAGS and LDADD In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22517 ) Change subject: gbproxy: Remove superfluous CFLAGS and LDADD ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22517 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I832e1b28793d1fd36966fade2525169946bfb513 Gerrit-Change-Number: 22517 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 28 Jan 2021 18:30:17 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 18:30:48 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 28 Jan 2021 18:30:48 +0000 Subject: Change in libosmocore[master]: ctrl_connection: Initialize write_queue.bfd.fd to -1 during allocation In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22462 ) Change subject: ctrl_connection: Initialize write_queue.bfd.fd to -1 during allocation ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22462 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I98f744d2880fbb883719cdf1d3eb31f2b22a13b6 Gerrit-Change-Number: 22462 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Thu, 28 Jan 2021 18:30:48 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 18:30:55 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 28 Jan 2021 18:30:55 +0000 Subject: Change in osmo-pcu[master]: NACC: Fix crash freeing struct if CTRL conn was refused during alloc In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22489 ) Change subject: NACC: Fix crash freeing struct if CTRL conn was refused during alloc ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22489 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I253bd9087b1f7ab039aa1127e9dc586f5106905a Gerrit-Change-Number: 22489 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Thu, 28 Jan 2021 18:30:55 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 18:36:45 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 28 Jan 2021 18:36:45 +0000 Subject: Change in libosmocore[master]: gprs_ns2: introduce gprs_ns2_vty_init_reduced() for the PCU In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22508 ) Change subject: gprs_ns2: introduce gprs_ns2_vty_init_reduced() for the PCU ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22508 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4437da74bd48ba64d3f16ea67afc26c45b6d3ac9 Gerrit-Change-Number: 22508 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 28 Jan 2021 18:36:45 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 18:38:44 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 28 Jan 2021 18:38:44 +0000 Subject: Change in libosmocore[master]: gprs_ns2: drop gprs_ns2_vty, rename vty2 -> vty In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22514 ) Change subject: gprs_ns2: drop gprs_ns2_vty, rename vty2 -> vty ...................................................................... Patch Set 1: Code-Review+2 Adding +2 from https://gerrit.osmocom.org/c/libosmocore/+/22430 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22514 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic2059e75d8ede8e5c29c4fef6be608ed79c8a97c Gerrit-Change-Number: 22514 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Thu, 28 Jan 2021 18:38:44 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 18:38:50 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 28 Jan 2021 18:38:50 +0000 Subject: Change in osmo-pcu[master]: Introduce NACC support In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22385 ) Change subject: Introduce NACC support ...................................................................... Patch Set 11: (1 comment) https://gerrit.osmocom.org/c/osmo-pcu/+/22385/11/src/nacc_fsm.c File src/nacc_fsm.c: https://gerrit.osmocom.org/c/osmo-pcu/+/22385/11/src/nacc_fsm.c at 633 PS11, Line 633: connect to CTRL I am afraid this message may be confusing for the end user, because usually our osmo-apps are CTRL servers. Maybe "Failed to establish CTRL (neighbor resolution) connection to the BSC r=%s:%u\n"? -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22385 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Id35f40d05f3e081f32fddbf1fa34cb338db452ca Gerrit-Change-Number: 22385 Gerrit-PatchSet: 11 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-CC: laforge Gerrit-Comment-Date: Thu, 28 Jan 2021 18:38:50 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 18:39:35 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 28 Jan 2021 18:39:35 +0000 Subject: Change in osmo-pcu[master]: NACC: delay CTRL conn socket init until it's needed In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22490 ) Change subject: NACC: delay CTRL conn socket init until it's needed ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22490 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ib1ea85e1196c8b9dc40c8837ab5d4a54f2a1f2d4 Gerrit-Change-Number: 22490 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Thu, 28 Jan 2021 18:39:35 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 18:46:39 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 28 Jan 2021 18:46:39 +0000 Subject: Change in osmo-pcu[master]: gprs_ns2: migrate to the new vty syntax In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22507 ) Change subject: gprs_ns2: migrate to the new vty syntax ...................................................................... Patch Set 1: Code-Review-1 add wiki link to the commit message -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22507 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I14af821a8d1fda670643c3d5f81299a3abf3c583 Gerrit-Change-Number: 22507 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus Gerrit-CC: laforge Gerrit-Comment-Date: Thu, 28 Jan 2021 18:46:39 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 18:54:59 2021 From: gerrit-no-reply at lists.osmocom.org (iedemam) Date: Thu, 28 Jan 2021 18:54:59 +0000 Subject: Change in osmo-bsc[master]: stats: Add granularity to chan:rf_fail stat. References: Message-ID: iedemam has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22518 ) Change subject: stats: Add granularity to chan:rf_fail stat. ...................................................................... stats: Add granularity to chan:rf_fail stat. Add additional counters to track TCH and SDCCH RF failures in separate subcategories. Change-Id: I91fe6659fe9df33763f4070b4f505561b2005d38 --- M include/osmocom/bsc/bts.h M src/osmo-bsc/abis_rsl.c M src/osmo-bsc/bts.c 3 files changed, 19 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/18/22518/1 diff --git a/include/osmocom/bsc/bts.h b/include/osmocom/bsc/bts.h index 8f3e05b..b81f45f 100644 --- a/include/osmocom/bsc/bts.h +++ b/include/osmocom/bsc/bts.h @@ -28,6 +28,8 @@ BTS_CTR_CHREQ_SUCCESSFUL, BTS_CTR_CHREQ_NO_CHANNEL, BTS_CTR_CHAN_RF_FAIL, + BTS_CTR_CHAN_RF_FAIL_TCH, + BTS_CTR_CHAN_RF_FAIL_SDCCH, BTS_CTR_CHAN_RLL_ERR, BTS_CTR_BTS_OML_FAIL, BTS_CTR_BTS_RSL_FAIL, diff --git a/src/osmo-bsc/abis_rsl.c b/src/osmo-bsc/abis_rsl.c index 388e2fc..9e00fe7 100644 --- a/src/osmo-bsc/abis_rsl.c +++ b/src/osmo-bsc/abis_rsl.c @@ -982,6 +982,17 @@ LOG_LCHAN(lchan, LOGL_ERROR, "CONNECTION FAIL%s\n", rsl_cause_name(&tp)); rate_ctr_inc(&lchan->ts->trx->bts->bts_ctrs->ctr[BTS_CTR_CHAN_RF_FAIL]); + switch (lchan->type) { + case GSM_LCHAN_SDCCH: + rate_ctr_inc(&lchan->ts->trx->bts->bts_ctrs->ctr[BTS_CTR_CHAN_RF_FAIL_SDCCH]); + break; + case GSM_LCHAN_TCH_H: + case GSM_LCHAN_TCH_F: + rate_ctr_inc(&lchan->ts->trx->bts->bts_ctrs->ctr[BTS_CTR_CHAN_RF_FAIL_TCH]); + break; + default: + break; + } /* If the lchan is associated with a conn, we shall notify the MSC of the RSL Conn Failure, and * the connection will presumably be torn down and lead to an lchan release. During initial diff --git a/src/osmo-bsc/bts.c b/src/osmo-bsc/bts.c index 3fa4f24..ac0e2af 100644 --- a/src/osmo-bsc/bts.c +++ b/src/osmo-bsc/bts.c @@ -791,6 +791,12 @@ [BTS_CTR_CHAN_RF_FAIL] = \ { "chan:rf_fail", "Received a RF failure indication from BTS" }, + [BTS_CTR_CHAN_RF_FAIL_TCH] = \ + { "chan:rf_fail_tch", + "Received a RF failure indication from BTS on a TCH channel" }, + [BTS_CTR_CHAN_RF_FAIL_SDCCH] = \ + { "chan:rf_fail_sdcch", + "Received a RF failure indication from BTS on an SDCCH channel" }, [BTS_CTR_CHAN_RLL_ERR] = \ { "chan:rll_err", "Received a RLL failure with T200 cause from BTS" }, -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22518 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I91fe6659fe9df33763f4070b4f505561b2005d38 Gerrit-Change-Number: 22518 Gerrit-PatchSet: 1 Gerrit-Owner: iedemam Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 18:55:17 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 28 Jan 2021 18:55:17 +0000 Subject: Change in osmo-pcu[master]: gprs_ns2: migrate to the new vty syntax In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-pcu/+/22507 to look at the new patch set (#2). Change subject: gprs_ns2: migrate to the new vty syntax ...................................................................... gprs_ns2: migrate to the new vty syntax This also changes the vty configuration. If only timeout has been configured for ns the new configuration is compatible. For further information see: https://osmocom.org/projects/libosmocore/wiki/Network_service_(NS) Depends-on: I8c3f2afecc74b78f7f914f7dce166cbcb63444eb (libosmocore) Change-Id: I14af821a8d1fda670643c3d5f81299a3abf3c583 --- M src/pcu_main.cpp 1 file changed, 1 insertion(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/07/22507/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22507 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I14af821a8d1fda670643c3d5f81299a3abf3c583 Gerrit-Change-Number: 22507 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus Gerrit-CC: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 18:59:05 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 28 Jan 2021 18:59:05 +0000 Subject: Change in osmo-pcu[master]: NACC: allow setting keep time for entries in neigh and si cache In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22449 ) Change subject: NACC: allow setting keep time for entries in neigh and si cache ...................................................................... Patch Set 3: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-pcu/+/22449/3/src/gprs_pcu.c File src/gprs_pcu.c: https://gerrit.osmocom.org/c/osmo-pcu/+/22449/3/src/gprs_pcu.c at 36 PS3, Line 36: { .T=PCU_TDEF_NEIGH_CACHE_ALIVE, .default_val=5, .unit=OSMO_TDEF_S, .desc="[ARFCN+BSIC]->[RAC+CI] resolution cache entry storage timeout (s)", .val=0 }, Looks longer than 120 chars. I would move '.desc' to a new line. -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22449 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ifa336aa27dd88ff5b78dbc5a2799740f542bb369 Gerrit-Change-Number: 22449 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 28 Jan 2021 18:59:05 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 18:59:21 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 28 Jan 2021 18:59:21 +0000 Subject: Change in osmo-pcu[master]: gprs_ns2: migrate to the new vty syntax In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22507 ) Change subject: gprs_ns2: migrate to the new vty syntax ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22507 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I14af821a8d1fda670643c3d5f81299a3abf3c583 Gerrit-Change-Number: 22507 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-CC: laforge Gerrit-Comment-Date: Thu, 28 Jan 2021 18:59:21 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 19:00:24 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 28 Jan 2021 19:00:24 +0000 Subject: Change in osmo-pcu[master]: NACC: Configure neighbor and SI resolution timeout values In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22450 ) Change subject: NACC: Configure neighbor and SI resolution timeout values ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22450 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ia9932ab082ec095294e85dc4d532046970e17986 Gerrit-Change-Number: 22450 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 28 Jan 2021 19:00:24 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 19:01:40 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 28 Jan 2021 19:01:40 +0000 Subject: Change in osmo-pcu[master]: NACC: Send only Pkt Cell Chg Continue if SI retrieve fails In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22451 ) Change subject: NACC: Send only Pkt Cell Chg Continue if SI retrieve fails ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22451 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ie3f12a08ad611b1086d3f4ab7c3d34af43c07961 Gerrit-Change-Number: 22451 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 28 Jan 2021 19:01:40 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 19:02:20 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 28 Jan 2021 19:02:20 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Remove superfluous CFLAGS and LDADD In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22517 ) Change subject: gbproxy: Remove superfluous CFLAGS and LDADD ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22517 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I832e1b28793d1fd36966fade2525169946bfb513 Gerrit-Change-Number: 22517 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 28 Jan 2021 19:02:20 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 19:02:33 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 28 Jan 2021 19:02:33 +0000 Subject: Change in osmo-pcu[master]: NACC: allow setting keep time for entries in neigh and si cache In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22449 ) Change subject: NACC: allow setting keep time for entries in neigh and si cache ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/osmo-pcu/+/22449/3/src/gprs_pcu.c File src/gprs_pcu.c: https://gerrit.osmocom.org/c/osmo-pcu/+/22449/3/src/gprs_pcu.c at 36 PS3, Line 36: { .T=PCU_TDEF_NEIGH_CACHE_ALIVE, .default_val=5, .unit=OSMO_TDEF_S, .desc="[ARFCN+BSIC]->[RAC+CI] resolution cache entry storage timeout (s)", .val=0 }, > Looks longer than 120 chars. I would move '.desc' to a new line. Yes I know, but in this kind of tables I'm actually fine with keeping one item per line anyway. If you are others are really against it I can change it. -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22449 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ifa336aa27dd88ff5b78dbc5a2799740f542bb369 Gerrit-Change-Number: 22449 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 28 Jan 2021 19:02:33 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: fixeria Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 19:07:52 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 28 Jan 2021 19:07:52 +0000 Subject: Change in osmo-sgsn[master]: sgsn: migrate to the new gprs_ns2_vty configuration In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, pespin, daniel, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22501 to look at the new patch set (#2). Change subject: sgsn: migrate to the new gprs_ns2_vty configuration ...................................................................... sgsn: migrate to the new gprs_ns2_vty configuration Change the whole vty configuration for NS to be more flexible and support more setups. Old configurations are invalid. API change which must be synchronized with libosmocore For further information see: https://osmocom.org/projects/libosmocore/wiki/Network_service_(NS) Depends-on: I8c3f2afecc74b78f7f914f7dce166cbcb63444eb (libosmocore) Change-Id: Ie9306ab4d4738c2c57a69987086e22771b30657e --- M TODO-RELEASE M doc/examples/osmo-sgsn/osmo-sgsn-accept-all.cfg M doc/examples/osmo-sgsn/osmo-sgsn.cfg M doc/examples/osmo-sgsn/osmo-sgsn_custom-sccp.cfg M src/sgsn/sgsn_main.c 5 files changed, 11 insertions(+), 21 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/01/22501/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22501 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ie9306ab4d4738c2c57a69987086e22771b30657e Gerrit-Change-Number: 22501 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 19:07:52 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 28 Jan 2021 19:07:52 +0000 Subject: Change in osmo-sgsn[master]: follow libosmocore/gprs_ns2 API changes (gprs_ns2_dynamic_create_nse) In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, pespin, daniel, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22502 to look at the new patch set (#2). Change subject: follow libosmocore/gprs_ns2 API changes (gprs_ns2_dynamic_create_nse) ...................................................................... follow libosmocore/gprs_ns2 API changes (gprs_ns2_dynamic_create_nse) The call gprs_ns2_dynamic_create_nse has been removed because it was a workaround for the old/dropped vty api. Depends-on: Ie924ead6da17657f3da334068c8ada82c8845495 (libosmocore) Change-Id: Ie636cfd18d6d43da0e42f2c2de68dfa5c571d55c --- M src/gbproxy/gb_proxy_main.c M src/sgsn/sgsn_main.c 2 files changed, 0 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/02/22502/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22502 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ie636cfd18d6d43da0e42f2c2de68dfa5c571d55c Gerrit-Change-Number: 22502 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 19:15:59 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 28 Jan 2021 19:15:59 +0000 Subject: Change in osmo-ttcn3-hacks[master]: CTRL_Adapter: Add function f_ipa_ctrl_wait_link_down References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22519 ) Change subject: CTRL_Adapter: Add function f_ipa_ctrl_wait_link_down ...................................................................... CTRL_Adapter: Add function f_ipa_ctrl_wait_link_down Change-Id: Ia9f08dae76774925de8a08c7e313965280cb51b0 --- M library/Osmocom_CTRL_Adapter.ttcn 1 file changed, 14 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/19/22519/1 diff --git a/library/Osmocom_CTRL_Adapter.ttcn b/library/Osmocom_CTRL_Adapter.ttcn index fefff8b..e1fba1b 100644 --- a/library/Osmocom_CTRL_Adapter.ttcn +++ b/library/Osmocom_CTRL_Adapter.ttcn @@ -40,6 +40,20 @@ } } +/* wait for IPA CTRL link to connect and send UP */ +function f_ipa_ctrl_wait_link_down() +runs on CTRL_Adapter_CT { + timer T := 10.0; + T.start; + alt { + [] IPA_CTRL.receive(tr_ASP_IPA_EV(ASP_IPA_EVENT_DOWN)) { } + [] T.timeout { + setverdict(fail, "Timeout CTRL waiting for ASP_IPA_EVENT_DOWN"); + mtc.stop; + } + } +} + /*! Start the CTRL client connection to the specified CTRL IP+Port server*/ function f_ipa_ctrl_start_client(charstring bsc_host, PortNumber bsc_port) runs on CTRL_Adapter_CT { -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22519 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ia9f08dae76774925de8a08c7e313965280cb51b0 Gerrit-Change-Number: 22519 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 19:16:00 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 28 Jan 2021 19:16:00 +0000 Subject: Change in osmo-ttcn3-hacks[master]: IPA_Emulation: Support keeping server alive after first client discon... References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22520 ) Change subject: IPA_Emulation: Support keeping server alive after first client disconnects ...................................................................... IPA_Emulation: Support keeping server alive after first client disconnects Change-Id: I4c133a889df0a5a060b5c52a1ca40fa9b8695c2e --- M library/IPA_Emulation.ttcnpp 1 file changed, 9 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/20/22520/1 diff --git a/library/IPA_Emulation.ttcnpp b/library/IPA_Emulation.ttcnpp index 60c6061..906664f 100644 --- a/library/IPA_Emulation.ttcnpp +++ b/library/IPA_Emulation.ttcnpp @@ -240,6 +240,9 @@ var IpaMode g_mode; var boolean g_ccm_enabled; var IpaInitBehavior g_init_behavior; + /* Shall we stop the component once the client disconnects, or keep + * running to let next user in ? */ + var boolean g_server_stop_on_ipa_ev_down := true; var IPA_CCM_Parameters g_ccm_pars := c_IPA_default_ccm_pars; } @@ -549,11 +552,13 @@ /* main function to use for a server-side IPA implementation */ function main_server(charstring local_host, IPL4asp_Types.PortNumber local_port, boolean ccm_enabled := true, - IpaInitBehavior init_behavior := IPA_INIT_SEND_IPA_ID_GET) + IpaInitBehavior init_behavior := IPA_INIT_SEND_IPA_ID_GET, + boolean server_stop_on_ipa_ev_down := true) runs on IPA_Emulation_CT { g_mode := IPA_MODE_SERVER; g_ccm_enabled := ccm_enabled; g_init_behavior := init_behavior; + g_server_stop_on_ipa_ev_down := server_stop_on_ipa_ev_down; f_bind(local_host, local_port); ScanEvents(); } @@ -761,7 +766,9 @@ log("IPA: Closed"); g_self_conn_id := -1; f_send_IPA_EVT(ts_ASP_IPA_EV(ASP_IPA_EVENT_DOWN, asp_evt.connClosed.connId)); - self.stop; + if (g_mode != IPA_MODE_SERVER or g_server_stop_on_ipa_ev_down) { + self.stop; + } } [] IPA_PORT.receive(Socket_API_Definitions.PortEvent:{result:={errorCode:=ERROR_SOCKET, connId:=?, os_error_code:=?, os_error_text:=?}}) -> value port_evt { -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22520 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I4c133a889df0a5a060b5c52a1ca40fa9b8695c2e Gerrit-Change-Number: 22520 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 19:16:00 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 28 Jan 2021 19:16:00 +0000 Subject: Change in osmo-ttcn3-hacks[master]: CTRL_Adapter: Keep server alive after first client disconnects References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22521 ) Change subject: CTRL_Adapter: Keep server alive after first client disconnects ...................................................................... CTRL_Adapter: Keep server alive after first client disconnects It can be expected from CTRL clients to connect and disconnect several times as several commands are sent, so let's by default enable it (only user of this CTRL servcer in PCU_Tests needs it). Change-Id: Idddc27671d1b823dfbc62bcf7be673e51b574d63 --- M library/Osmocom_CTRL_Adapter.ttcn 1 file changed, 2 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/21/22521/1 diff --git a/library/Osmocom_CTRL_Adapter.ttcn b/library/Osmocom_CTRL_Adapter.ttcn index e1fba1b..adc2887 100644 --- a/library/Osmocom_CTRL_Adapter.ttcn +++ b/library/Osmocom_CTRL_Adapter.ttcn @@ -81,7 +81,8 @@ map(vc_CTRL_IPA:IPA_PORT, system:IPA_CODEC_PT); connect(vc_CTRL_IPA:IPA_CTRL_PORT, self:IPA_CTRL); - vc_CTRL_IPA.start(IPA_Emulation.main_server(listen_host, listen_port, false)); + vc_CTRL_IPA.start(IPA_Emulation.main_server(listen_host, listen_port, false, + server_stop_on_ipa_ev_down := false)); } function f_ipa_ctrl_stop() runs on CTRL_Adapter_CT { -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22521 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Idddc27671d1b823dfbc62bcf7be673e51b574d63 Gerrit-Change-Number: 22521 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 19:28:15 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 28 Jan 2021 19:28:15 +0000 Subject: Change in osmo-ttcn3-hacks[master]: sgsn: change to the new vty configuration In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22503 ) Change subject: sgsn: change to the new vty configuration ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22503 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I37d010bc4ae553c30feb2ebd2be66d23b96bf42a Gerrit-Change-Number: 22503 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 28 Jan 2021 19:28:15 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 19:29:17 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 28 Jan 2021 19:29:17 +0000 Subject: Change in osmo-ttcn3-hacks[master]: sgsn: NS: disable broken test TC_NS_connect_alive In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22504 ) Change subject: sgsn: NS: disable broken test TC_NS_connect_alive ...................................................................... Patch Set 1: Let's rather fix the test instead of disabling it and noone notcining anymore? If it fails at least people will look at it. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22504 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ib3f13000276fff2e1178ee460367129718153cb5 Gerrit-Change-Number: 22504 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 28 Jan 2021 19:29:17 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 19:33:59 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 28 Jan 2021 19:33:59 +0000 Subject: Change in libosmocore[master]: gprs_ns2: correct vty config write References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22522 ) Change subject: gprs_ns2: correct vty config write ...................................................................... gprs_ns2: correct vty config write The vty configuration was wrong when any other node was in between the vty configuration (e.g. gb or ss7). The vty code doesn't have a relation between parent and child node. It wasn't detected because this only happened in the sgsn. The pcu doesn't have any binds defined. Change-Id: I8a3d67d41baca36b4d1a951a574cd41e556355c5 --- M src/gb/gprs_ns2_vty.c 1 file changed, 26 insertions(+), 16 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/22/22522/1 diff --git a/src/gb/gprs_ns2_vty.c b/src/gb/gprs_ns2_vty.c index 9db8173..1c40759 100644 --- a/src/gb/gprs_ns2_vty.c +++ b/src/gb/gprs_ns2_vty.c @@ -401,20 +401,6 @@ } } -static int config_write_ns(struct vty *vty) -{ - unsigned int i; - - vty_out(vty, "ns%s", VTY_NEWLINE); - - for (i = 0; i < ARRAY_SIZE(vty_nsi->timeout); i++) - vty_out(vty, " timer %s %u%s", - get_value_string(gprs_ns_timer_strs, i), - vty_nsi->timeout[i], VTY_NEWLINE); - - return 0; -} - static int config_write_ns_nse(struct vty *vty) { struct gprs_ns2_nse *nse; @@ -440,6 +426,30 @@ return 0; } +static int config_write_ns(struct vty *vty) +{ + unsigned int i; + int ret; + + vty_out(vty, "ns%s", VTY_NEWLINE); + + for (i = 0; i < ARRAY_SIZE(vty_nsi->timeout); i++) + vty_out(vty, " timer %s %u%s", + get_value_string(gprs_ns_timer_strs, i), + vty_nsi->timeout[i], VTY_NEWLINE); + + ret = config_write_ns_bind(vty); + if (ret) + return ret; + + ret = config_write_ns_nse(vty); + if (ret) + return ret; + + return 0; +} + + static struct cmd_node ns_bind_node = { L_NS_BIND_NODE, "%s(config-ns-bind)# ", @@ -1665,7 +1675,7 @@ install_lib_element(L_NS_NODE, &cfg_ns_bind_cmd); install_lib_element(L_NS_NODE, &cfg_no_ns_bind_cmd); - install_node(&ns_bind_node, config_write_ns_bind); + install_node(&ns_bind_node, NULL); install_lib_element(L_NS_BIND_NODE, &cfg_ns_bind_listen_cmd); install_lib_element(L_NS_BIND_NODE, &cfg_no_ns_bind_listen_cmd); install_lib_element(L_NS_BIND_NODE, &cfg_ns_bind_dscp_cmd); @@ -1676,7 +1686,7 @@ install_lib_element(L_NS_BIND_NODE, &cfg_no_ns_bind_fr_cmd); /* TODO: accept-ip-sns when SGSN SNS has been implemented */ - install_node(&ns_nse_node, config_write_ns_nse); + install_node(&ns_nse_node, NULL); install_lib_element(L_NS_NSE_NODE, &cfg_ns_nse_nsvc_fr_cmd); install_lib_element(L_NS_NSE_NODE, &cfg_no_ns_nse_nsvci_cmd); install_lib_element(L_NS_NSE_NODE, &cfg_no_ns_nse_nsvc_fr_dlci_cmd); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22522 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I8a3d67d41baca36b4d1a951a574cd41e556355c5 Gerrit-Change-Number: 22522 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 19:42:01 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 28 Jan 2021 19:42:01 +0000 Subject: Change in libosmocore[master]: ns2: Fix assert when removing a bind listen In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22448 ) Change subject: ns2: Fix assert when removing a bind listen ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22448 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I3edd1e838f7516d9224045710047419039aa0ec0 Gerrit-Change-Number: 22448 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 28 Jan 2021 19:42:01 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 19:44:04 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 28 Jan 2021 19:44:04 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Avoid depending on any of the SGSN code In-Reply-To: References: Message-ID: daniel has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22516 ) Change subject: gbproxy: Avoid depending on any of the SGSN code ...................................................................... gbproxy: Avoid depending on any of the SGSN code The last remaining functin of the SGSN code base we used was gprs_gb_parse_tlli(). Let's simply copy this function over and become self-contained. This would allow migrating osmo-gbproxy to a separate repository. Change-Id: I6f3f86581b47ad71a3d97f07611a2e2709876d69 --- M src/gbproxy/Makefile.am M src/gbproxy/gb_proxy.c 2 files changed, 41 insertions(+), 4 deletions(-) Approvals: daniel: Looks good to me, but someone else must approve pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/gbproxy/Makefile.am b/src/gbproxy/Makefile.am index f8a8773..1500e11 100644 --- a/src/gbproxy/Makefile.am +++ b/src/gbproxy/Makefile.am @@ -30,10 +30,6 @@ gb_proxy_peer.c \ $(NULL) osmo_gbproxy_LDADD = \ - $(top_builddir)/src/gprs/gprs_gb_parse.o \ - $(top_builddir)/src/gprs/gprs_llc_parse.o \ - $(top_builddir)/src/gprs/crc24.o \ - $(top_builddir)/src/gprs/gprs_utils.o \ $(LIBOSMOCORE_LIBS) \ $(LIBOSMOGSM_LIBS) \ $(LIBOSMOVTY_LIBS) \ diff --git a/src/gbproxy/gb_proxy.c b/src/gbproxy/gb_proxy.c index 1d29b64..c882eb0 100644 --- a/src/gbproxy/gb_proxy.c +++ b/src/gbproxy/gb_proxy.c @@ -136,6 +136,47 @@ } #endif +/*! Determine the TLLI from the given BSSGP message. + * \param[in] bssgp pointer to start of BSSGP header + * \param[in] bssgp_len length of BSSGP message in octets + * \param[out] tlli TLLI (if any) in host byte order + * \returns 1 if TLLI found; 0 if none found; negative on parse error */ +int gprs_gb_parse_tlli(const uint8_t *bssgp, size_t bssgp_len, uint32_t *tlli) +{ + const struct bssgp_normal_hdr *bgph; + uint8_t pdu_type; + + if (bssgp_len < sizeof(struct bssgp_normal_hdr)) + return -EINVAL; + + bgph = (struct bssgp_normal_hdr *)bssgp; + pdu_type = bgph->pdu_type; + + if (pdu_type == BSSGP_PDUT_UL_UNITDATA || + pdu_type == BSSGP_PDUT_DL_UNITDATA) { + const struct bssgp_ud_hdr *budh = (struct bssgp_ud_hdr *)bssgp; + if (bssgp_len < sizeof(struct bssgp_ud_hdr)) + return -EINVAL; + *tlli = osmo_load32be((const uint8_t *)&budh->tlli); + return 1; + } else { + const uint8_t *data = bgph->data; + size_t data_len = bssgp_len - sizeof(*bgph); + struct tlv_parsed tp; + + if (bssgp_tlv_parse(&tp, data, data_len) < 0) + return -EINVAL; + + if (TLVP_PRESENT(&tp, BSSGP_IE_TLLI)) { + *tlli = osmo_load32be(TLVP_VAL(&tp, BSSGP_IE_TLLI)); + return 1; + } + } + + /* No TLLI present in message */ + return 0; +} + /* feed a message down the NSE */ static int gbprox_relay2nse(struct msgb *old_msg, struct gbproxy_nse *nse, uint16_t ns_bvci) -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22516 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I6f3f86581b47ad71a3d97f07611a2e2709876d69 Gerrit-Change-Number: 22516 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 19:44:20 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 28 Jan 2021 19:44:20 +0000 Subject: Change in osmo-sgsn[master]: Rename OsmoGbPROXY -> *Proxy In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22492 ) Change subject: Rename OsmoGbPROXY -> *Proxy ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22492 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I7542ac1d5242f1784146de2df7cecaf70fe93c6c Gerrit-Change-Number: 22492 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 28 Jan 2021 19:44:20 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 19:46:41 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 28 Jan 2021 19:46:41 +0000 Subject: Change in osmo-sgsn[master]: manuals/gbproxy: Update configuration chapter In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22493 ) Change subject: manuals/gbproxy: Update configuration chapter ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-sgsn/+/22493/2/doc/manuals/chapters/gbproxy-configuration.adoc File doc/manuals/chapters/gbproxy-configuration.adoc: https://gerrit.osmocom.org/c/osmo-sgsn/+/22493/2/doc/manuals/chapters/gbproxy-configuration.adoc at 22 PS2, Line 22: ip-sns 127.0.0.2 23001 <3> i would like to use 127.0.0.2 for the first sgsn and 127.0.0.3 for the second sgsn. -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22493 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I01f8d47f9fa384a2528ddf2e6c936ff28d11409e Gerrit-Change-Number: 22493 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: lynxis lazus Gerrit-Comment-Date: Thu, 28 Jan 2021 19:46:41 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 19:47:50 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 28 Jan 2021 19:47:50 +0000 Subject: Change in osmo-sgsn[master]: manuals/gbproxy: MSC -> SGSN for pooling chapter In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22495 ) Change subject: manuals/gbproxy: MSC -> SGSN for pooling chapter ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22495 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I905835c2be7be43fe376fbc9d743107948c7e6d4 Gerrit-Change-Number: 22495 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 28 Jan 2021 19:47:50 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 19:47:54 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 28 Jan 2021 19:47:54 +0000 Subject: Change in osmo-sgsn[master]: manuals/gbproxy: Add osmo-bsc MSC pooling chapter from Neels as a base In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22494 ) Change subject: manuals/gbproxy: Add osmo-bsc MSC pooling chapter from Neels as a base ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22494 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I930f5df847ea6f40d0ee0c75dd25b6dd20e00839 Gerrit-Change-Number: 22494 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 28 Jan 2021 19:47:54 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 19:48:40 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 28 Jan 2021 19:48:40 +0000 Subject: Change in osmo-sgsn[master]: manuals/gbproxy: Move pooling to separate chapter In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22496 ) Change subject: manuals/gbproxy: Move pooling to separate chapter ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-sgsn/+/22496/2/doc/manuals/chapters/gbproxy-configuration.adoc File doc/manuals/chapters/gbproxy-configuration.adoc: https://gerrit.osmocom.org/c/osmo-sgsn/+/22496/2/doc/manuals/chapters/gbproxy-configuration.adoc at 41 PS2, Line 41: maybe add pooling is describe in a seperate chapter? -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22496 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ie2ad652c8261ce56cb2ed1a6f16a81486ccdf063 Gerrit-Change-Number: 22496 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: lynxis lazus Gerrit-Comment-Date: Thu, 28 Jan 2021 19:48:40 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 19:49:31 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 28 Jan 2021 19:49:31 +0000 Subject: Change in osmo-sgsn[master]: manual/gbproxy: Update overview chapter In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22491 ) Change subject: manual/gbproxy: Update overview chapter ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22491 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Icb9095f4002f2a0a4562fccecae109075cb93c7b Gerrit-Change-Number: 22491 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 28 Jan 2021 19:49:31 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 19:51:09 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 28 Jan 2021 19:51:09 +0000 Subject: Change in osmo-sgsn[master]: manuals/gbproxy: Move pooling to separate chapter In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22496 ) Change subject: manuals/gbproxy: Move pooling to separate chapter ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22496 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ie2ad652c8261ce56cb2ed1a6f16a81486ccdf063 Gerrit-Change-Number: 22496 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 28 Jan 2021 19:51:09 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 19:57:30 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 28 Jan 2021 19:57:30 +0000 Subject: Change in osmo-sgsn[master]: manuals/gbproxy: Update configuration chapter In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22493 to look at the new patch set (#3). Change subject: manuals/gbproxy: Update configuration chapter ...................................................................... manuals/gbproxy: Update configuration chapter Change-Id: I01f8d47f9fa384a2528ddf2e6c936ff28d11409e Related: SYS#5115, SYS#5005 --- M doc/manuals/chapters/gbproxy-configuration.adoc 1 file changed, 37 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/93/22493/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22493 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I01f8d47f9fa384a2528ddf2e6c936ff28d11409e Gerrit-Change-Number: 22493 Gerrit-PatchSet: 3 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: lynxis lazus Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 19:57:36 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 28 Jan 2021 19:57:36 +0000 Subject: Change in osmo-sgsn[master]: manuals/gbproxy: Update configuration chapter In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22493 ) Change subject: manuals/gbproxy: Update configuration chapter ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-sgsn/+/22493/2/doc/manuals/chapters/gbproxy-configuration.adoc File doc/manuals/chapters/gbproxy-configuration.adoc: https://gerrit.osmocom.org/c/osmo-sgsn/+/22493/2/doc/manuals/chapters/gbproxy-configuration.adoc at 22 PS2, Line 22: ip-sns 127.0.0.2 23001 <3> > i would like to use 127.0.0.2 for the first sgsn and 127.0.0.3 for the second sgsn. Thanks, I changed the IPs in the section above, will move to 10.0.1.x for bind and nse -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22493 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I01f8d47f9fa384a2528ddf2e6c936ff28d11409e Gerrit-Change-Number: 22493 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: lynxis lazus Gerrit-Comment-Date: Thu, 28 Jan 2021 19:57:36 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: lynxis lazus Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 19:57:54 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 28 Jan 2021 19:57:54 +0000 Subject: Change in osmo-sgsn[master]: manuals/gbproxy: Update configuration chapter In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22493 ) Change subject: manuals/gbproxy: Update configuration chapter ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/osmo-sgsn/+/22493/2/doc/manuals/chapters/gbproxy-configuration.adoc File doc/manuals/chapters/gbproxy-configuration.adoc: https://gerrit.osmocom.org/c/osmo-sgsn/+/22493/2/doc/manuals/chapters/gbproxy-configuration.adoc at 22 PS2, Line 22: ip-sns 127.0.0.2 23001 <3> > Thanks, I changed the IPs in the section above, will move to 10.0.1. [?] Done -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22493 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I01f8d47f9fa384a2528ddf2e6c936ff28d11409e Gerrit-Change-Number: 22493 Gerrit-PatchSet: 3 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: lynxis lazus Gerrit-Comment-Date: Thu, 28 Jan 2021 19:57:54 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: daniel Comment-In-Reply-To: lynxis lazus Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 19:58:03 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 28 Jan 2021 19:58:03 +0000 Subject: Change in osmo-sgsn[master]: manuals/gbproxy: Move pooling to separate chapter In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22496 ) Change subject: manuals/gbproxy: Move pooling to separate chapter ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-sgsn/+/22496/2/doc/manuals/chapters/gbproxy-configuration.adoc File doc/manuals/chapters/gbproxy-configuration.adoc: https://gerrit.osmocom.org/c/osmo-sgsn/+/22496/2/doc/manuals/chapters/gbproxy-configuration.adoc at 41 PS2, Line 41: > maybe add pooling is describe in a seperate chapter? Pooling follows this chapter directly and it's also in the TOC -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22496 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ie2ad652c8261ce56cb2ed1a6f16a81486ccdf063 Gerrit-Change-Number: 22496 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 28 Jan 2021 19:58:03 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: lynxis lazus Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 19:58:16 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 28 Jan 2021 19:58:16 +0000 Subject: Change in osmo-sgsn[master]: manuals/gbproxy: Move pooling to separate chapter In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22496 ) Change subject: manuals/gbproxy: Move pooling to separate chapter ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22496 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ie2ad652c8261ce56cb2ed1a6f16a81486ccdf063 Gerrit-Change-Number: 22496 Gerrit-PatchSet: 3 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 28 Jan 2021 19:58:16 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 19:59:05 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 28 Jan 2021 19:59:05 +0000 Subject: Change in osmo-sgsn[master]: manuals/gbproxy: Update configuration chapter In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22493 ) Change subject: manuals/gbproxy: Update configuration chapter ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/osmo-sgsn/+/22493/2/doc/manuals/chapters/gbproxy-configuration.adoc File doc/manuals/chapters/gbproxy-configuration.adoc: https://gerrit.osmocom.org/c/osmo-sgsn/+/22493/2/doc/manuals/chapters/gbproxy-configuration.adoc at 22 PS2, Line 22: ip-sns 127.0.0.2 23001 <3> > Done This is now in line with the SGSN pooling example -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22493 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I01f8d47f9fa384a2528ddf2e6c936ff28d11409e Gerrit-Change-Number: 22493 Gerrit-PatchSet: 3 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: lynxis lazus Gerrit-Comment-Date: Thu, 28 Jan 2021 19:59:05 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: daniel Comment-In-Reply-To: lynxis lazus Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 19:59:13 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 28 Jan 2021 19:59:13 +0000 Subject: Change in osmo-bsc[master]: stats: Add granularity to chan:rf_fail stat. In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22518 ) Change subject: stats: Add granularity to chan:rf_fail stat. ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22518 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I91fe6659fe9df33763f4070b4f505561b2005d38 Gerrit-Change-Number: 22518 Gerrit-PatchSet: 1 Gerrit-Owner: iedemam Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 28 Jan 2021 19:59:13 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 20:19:35 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 28 Jan 2021 20:19:35 +0000 Subject: Change in osmo-sgsn[master]: follow libosmocore/gprs_ns2 API changes (gprs_ns2_dynamic_create_nse) In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22502 ) Change subject: follow libosmocore/gprs_ns2 API changes (gprs_ns2_dynamic_create_nse) ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22502 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ie636cfd18d6d43da0e42f2c2de68dfa5c571d55c Gerrit-Change-Number: 22502 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 28 Jan 2021 20:19:35 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 20:22:30 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 28 Jan 2021 20:22:30 +0000 Subject: Change in libosmocore[master]: gprs_ns2: correct vty config write In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22522 ) Change subject: gprs_ns2: correct vty config write ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22522 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I8a3d67d41baca36b4d1a951a574cd41e556355c5 Gerrit-Change-Number: 22522 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Comment-Date: Thu, 28 Jan 2021 20:22:30 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 20:25:14 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 28 Jan 2021 20:25:14 +0000 Subject: Change in osmo-sgsn[master]: sgsn: migrate to the new gprs_ns2_vty configuration In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22501 ) Change subject: sgsn: migrate to the new gprs_ns2_vty configuration ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22501 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ie9306ab4d4738c2c57a69987086e22771b30657e Gerrit-Change-Number: 22501 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 28 Jan 2021 20:25:14 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 20:27:57 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 28 Jan 2021 20:27:57 +0000 Subject: Change in osmo-ttcn3-hacks[master]: sgsn: change to the new vty configuration In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22503 ) Change subject: sgsn: change to the new vty configuration ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22503 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I37d010bc4ae553c30feb2ebd2be66d23b96bf42a Gerrit-Change-Number: 22503 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 28 Jan 2021 20:27:57 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 20:28:15 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 28 Jan 2021 20:28:15 +0000 Subject: Change in docker-playground[master]: sgsn: change configuration to the new NS2 In-Reply-To: References: Message-ID: Hello laforge, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/docker-playground/+/22505 to look at the new patch set (#2). Change subject: sgsn: change configuration to the new NS2 ...................................................................... sgsn: change configuration to the new NS2 Change the whole vty configuration for NS to be more flexible and support more setups. Old configurations are invalid. API change which must be synchronized with libosmocore For further information see: https://osmocom.org/projects/libosmocore/wiki/Network_service_(NS) Depends-on: Ie9306ab4d4738c2c57a69987086e22771b30657e (osmo-sgsn) Change-Id: I65fb4e52d22617cf8488d8ab77c970f84995560d --- M osmo-sgsn-master/osmo-sgsn.cfg M ttcn3-sgsn-test/jenkins.sh M ttcn3-sgsn-test/osmo-sgsn.cfg A ttcn3-sgsn-test/osmo-sgsn.latest.cfg 4 files changed, 112 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/05/22505/2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22505 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I65fb4e52d22617cf8488d8ab77c970f84995560d Gerrit-Change-Number: 22505 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 20:28:19 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 28 Jan 2021 20:28:19 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: follow gprs_ns2 API vty changes In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22500 ) Change subject: gbproxy: follow gprs_ns2 API vty changes ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22500 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: If5bd6b86e130772e6c93d640b0c637985416136d Gerrit-Change-Number: 22500 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 28 Jan 2021 20:28:19 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 20:30:13 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 28 Jan 2021 20:30:13 +0000 Subject: Change in docker-playground[master]: sgsn: change configuration to the new NS2 In-Reply-To: References: Message-ID: Hello laforge, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/docker-playground/+/22505 to look at the new patch set (#3). Change subject: sgsn: change configuration to the new NS2 ...................................................................... sgsn: change configuration to the new NS2 Change the whole vty configuration for NS to be more flexible and support more setups. Old configurations are invalid. For further information see: https://osmocom.org/projects/libosmocore/wiki/Network_service_(NS) Depends-on: Ie9306ab4d4738c2c57a69987086e22771b30657e (osmo-sgsn) Change-Id: I65fb4e52d22617cf8488d8ab77c970f84995560d --- M osmo-sgsn-master/osmo-sgsn.cfg M ttcn3-sgsn-test/jenkins.sh M ttcn3-sgsn-test/osmo-sgsn.cfg A ttcn3-sgsn-test/osmo-sgsn.latest.cfg 4 files changed, 112 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/05/22505/3 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22505 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I65fb4e52d22617cf8488d8ab77c970f84995560d Gerrit-Change-Number: 22505 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 20:30:15 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 28 Jan 2021 20:30:15 +0000 Subject: Change in docker-playground[master]: sgsn: change configuration to the new NS2 In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22505 ) Change subject: sgsn: change configuration to the new NS2 ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/docker-playground/+/22505/2/osmo-sgsn-master/osmo-sgsn.cfg File osmo-sgsn-master/osmo-sgsn.cfg: https://gerrit.osmocom.org/c/docker-playground/+/22505/2/osmo-sgsn-master/osmo-sgsn.cfg at 22 PS2, Line 22: liasten 127.0.0.1 23000 Tpyo! -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22505 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I65fb4e52d22617cf8488d8ab77c970f84995560d Gerrit-Change-Number: 22505 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: laforge Gerrit-CC: daniel Gerrit-Comment-Date: Thu, 28 Jan 2021 20:30:15 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 20:30:15 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 28 Jan 2021 20:30:15 +0000 Subject: Change in osmo-ttcn3-hacks[master]: sgsn: change configuration to the new NS2 In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, pespin, daniel, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22503 to look at the new patch set (#2). Change subject: sgsn: change configuration to the new NS2 ...................................................................... sgsn: change configuration to the new NS2 Change the whole vty configuration for NS to be more flexible and support more setups. Old configurations are invalid. For further information see: https://osmocom.org/projects/libosmocore/wiki/Network_service_(NS) Depends-on: If5bd6b86e130772e6c93d640b0c637985416136d (osmo-sgsn) Change-Id: I37d010bc4ae553c30feb2ebd2be66d23b96bf42a --- M sgsn/SGSN_Tests_NS.ttcn M sgsn/osmo-sgsn.cfg 2 files changed, 3 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/03/22503/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22503 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I37d010bc4ae553c30feb2ebd2be66d23b96bf42a Gerrit-Change-Number: 22503 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 20:30:15 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 28 Jan 2021 20:30:15 +0000 Subject: Change in osmo-ttcn3-hacks[master]: sgsn: NS: disable broken test TC_NS_connect_alive In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, pespin, daniel, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22504 to look at the new patch set (#2). Change subject: sgsn: NS: disable broken test TC_NS_connect_alive ...................................................................... sgsn: NS: disable broken test TC_NS_connect_alive The test case needs a static configuration via vty. Change-Id: Ib3f13000276fff2e1178ee460367129718153cb5 --- M sgsn/SGSN_Tests_NS.ttcn 1 file changed, 2 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/04/22504/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22504 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ib3f13000276fff2e1178ee460367129718153cb5 Gerrit-Change-Number: 22504 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 20:32:15 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 28 Jan 2021 20:32:15 +0000 Subject: Change in docker-playground[master]: sgsn: change configuration to the new NS2 In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22505 ) Change subject: sgsn: change configuration to the new NS2 ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/docker-playground/+/22505/2/osmo-sgsn-master/osmo-sgsn.cfg File osmo-sgsn-master/osmo-sgsn.cfg: https://gerrit.osmocom.org/c/docker-playground/+/22505/2/osmo-sgsn-master/osmo-sgsn.cfg at 22 PS2, Line 22: liasten 127.0.0.1 23000 > Tpyo! Done -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22505 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I65fb4e52d22617cf8488d8ab77c970f84995560d Gerrit-Change-Number: 22505 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: laforge Gerrit-CC: daniel Gerrit-Comment-Date: Thu, 28 Jan 2021 20:32:15 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: daniel Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 20:35:33 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 28 Jan 2021 20:35:33 +0000 Subject: Change in docker-playground[master]: sgsn: change configuration to the new NS2 In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22505 ) Change subject: sgsn: change configuration to the new NS2 ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22505 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I65fb4e52d22617cf8488d8ab77c970f84995560d Gerrit-Change-Number: 22505 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 28 Jan 2021 20:35:33 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 20:38:26 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 28 Jan 2021 20:38:26 +0000 Subject: Change in osmo-ttcn3-hacks[master]: sgsn: change configuration to the new NS2 In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22503 ) Change subject: sgsn: change configuration to the new NS2 ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22503 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I37d010bc4ae553c30feb2ebd2be66d23b96bf42a Gerrit-Change-Number: 22503 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 28 Jan 2021 20:38:26 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 20:45:04 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 28 Jan 2021 20:45:04 +0000 Subject: Change in docker-playground[master]: sgsn: change configuration to the new NS2 In-Reply-To: References: Message-ID: Hello laforge, daniel, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/docker-playground/+/22505 to look at the new patch set (#4). Change subject: sgsn: change configuration to the new NS2 ...................................................................... sgsn: change configuration to the new NS2 Change the whole vty configuration for NS to be more flexible and support more setups. Old configurations are invalid. For further information see: https://osmocom.org/projects/libosmocore/wiki/Network_service_(NS) Depends-on: Ie9306ab4d4738c2c57a69987086e22771b30657e (osmo-sgsn) Change-Id: I65fb4e52d22617cf8488d8ab77c970f84995560d --- M osmo-sgsn-master/osmo-sgsn.cfg M ttcn3-sgsn-test/jenkins.sh M ttcn3-sgsn-test/osmo-sgsn.cfg A ttcn3-sgsn-test/osmo-sgsn.latest.cfg 4 files changed, 109 insertions(+), 9 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/05/22505/4 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22505 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I65fb4e52d22617cf8488d8ab77c970f84995560d Gerrit-Change-Number: 22505 Gerrit-PatchSet: 4 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 20:51:40 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 28 Jan 2021 20:51:40 +0000 Subject: Change in osmo-pcu[master]: tests/rlcmac: add more test vectors for Packet Resource Request References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22523 ) Change subject: tests/rlcmac: add more test vectors for Packet Resource Request ...................................................................... tests/rlcmac: add more test vectors for Packet Resource Request All vectors should be valid, since they were generated by an MS. As can be seen, osmo-pcu fails to decode one of the vectors. Change-Id: I37a2ddd394eeffa1cae0f3e419eeee0200a57fcf OS#4955 Change-Id: Ib5677048f5668185ffe752f97c97d5612eee4d72 --- M tests/rlcmac/RLCMACTest.cpp M tests/rlcmac/RLCMACTest.err M tests/rlcmac/RLCMACTest.ok 3 files changed, 47 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/23/22523/1 diff --git a/tests/rlcmac/RLCMACTest.cpp b/tests/rlcmac/RLCMACTest.cpp index c6ad192..598d11a 100644 --- a/tests/rlcmac/RLCMACTest.cpp +++ b/tests/rlcmac/RLCMACTest.cpp @@ -159,6 +159,12 @@ "401673c87f24af2632b25964200600000091000b780080", // Packet Resource Request (from keith) "40200ffc0021ec010b2b2b2b2b2b2b2b2b2b2b2b2b2b2b", // EPDAN "400a9020000000000000003010012a0800132b2b2b2b2b", // Packet Downlink Ack/Nack ? + + /* Packet Resource Request (see OS#4955, mistakes in 3GPP TS 44.060) */ + "4117ea1b903eaeb2686564b2330820078000102b2b2b2b", + "40167e49f7f8ef2632b2596620060000806d00541c0080", + "4017787174d92eba686564b2ccc30800a000040b2b2b2b", + "4017e5b2cd5a2eca68655e44aec84880139300412b2b2b", }; int testDataSize = sizeof(testData)/sizeof(testData[0]); diff --git a/tests/rlcmac/RLCMACTest.err b/tests/rlcmac/RLCMACTest.err index 6007289..fc2889f 100644 --- a/tests/rlcmac/RLCMACTest.err +++ b/tests/rlcmac/RLCMACTest.err @@ -33,6 +33,15 @@ DCSN1 INFO csnStreamEncoder (type: EGPRS Pkt DL ACK/NACK (8)): PayloadType = 1 | spare = 0 | R = 0 | MESSAGE_TYPE = 8 | DOWNLINK_TFI = 0 | MS_OUT_OF_MEMORY = 0 | Exist_EGPRS_ChannelQualityReport = 1 | : EGPRS_ChannelQualityReport | : EGPRS_BEP_LinkQualityMeasurements | Exist_MEAN_CV_BEP_GMSK = 1 | MEAN_BEP_GMSK = 31 | CV_BEP_GMSK = 7 | Exist_MEAN_CV_BEP_8PSK = 0 | : End EGPRS_BEP_LinkQualityMeasurements | C_VALUE = 0 | : EGPRS_TimeslotLinkQualityMeasurements | Exist_BEP_MEASUREMENTS = 0 | Exist_INTERFERENCE_MEASUREMENTS = 0 | : End EGPRS_TimeslotLinkQualityMeasurements | : End EGPRS_ChannelQualityReport | Exist_ChannelRequestDescription = 0 | Exist_PFI = 0 | Exist_ExtensionBits = 0 | : EGPRS_AckNack | Desc = 1 | : Desc | FINAL_ACK_INDICATION = 0 | BEGINNING_OF_WINDOW = 1 | END_OF_WINDOW = 1 | STARTING_SEQUENCE_NUMBER = 2 | Exist_CRBB = 0 | Desc length = 15 | : End Desc | : End EGPRS_AckNack | Padding = 11|43|43|43|43|43|43|43|43|43|43|43|43|43|43| DCSN1 INFO csnStreamDecoder (type: Pkt DL ACK/NACK (2)): PayloadType = 1 | spare = 0 | R = 0 | MESSAGE_TYPE = 2 | DOWNLINK_TFI = 20 | : Ack_Nack_Description | FINAL_ACK_INDICATION = 1 | STARTING_SEQUENCE_NUMBER = 1 | RECEIVED_BLOCK_BITMAP[0] = 0 | RECEIVED_BLOCK_BITMAP[1] = 0 | RECEIVED_BLOCK_BITMAP[2] = 0 | RECEIVED_BLOCK_BITMAP[3] = 0 | RECEIVED_BLOCK_BITMAP[4] = 0 | RECEIVED_BLOCK_BITMAP[5] = 0 | RECEIVED_BLOCK_BITMAP[6] = 0 | RECEIVED_BLOCK_BITMAP[7] = 1 | : End Ack_Nack_Description | Exist_Channel_Request_Description = 1 | : Channel_Request_Description | PEAK_THROUGHPUT_CLASS = 0 | RADIO_PRIORITY = 0 | RLC_MODE = 0 | LLC_PDU_TYPE = 1 | RLC_OCTET_COUNT = 18 | : End Channel_Request_Description | : Channel_Quality_Report | C_VALUE = 40 | RXQUAL = 1 | SIGN_VAR = 0 | Slot[0].Exist = 0 | Slot[1].Exist = 0 | Slot[2].Exist = 0 | Slot[3].Exist = 0 | Slot[4].Exist = 0 | Slot[5].Exist = 0 | Slot[6].Exist = 0 | Slot[7].Exist = 0 | : End Channel_Quality_Report | Exist_AdditionsR99 = 1 | : AdditionsR99 | Exist_PFI = 0 | : End AdditionsR99 | Padding = 3|43|43|43|43|43| DCSN1 INFO csnStreamEncoder (type: Pkt DL ACK/NACK (2)): PayloadType = 1 | spare = 0 | R = 0 | MESSAGE_TYPE = 2 | DOWNLINK_TFI = 20 | : Ack_Nack_Description | FINAL_ACK_INDICATION = 1 | STARTING_SEQUENCE_NUMBER = 1 | RECEIVED_BLOCK_BITMAP[0] = 0 | RECEIVED_BLOCK_BITMAP[1] = 0 | RECEIVED_BLOCK_BITMAP[2] = 0 | RECEIVED_BLOCK_BITMAP[3] = 0 | RECEIVED_BLOCK_BITMAP[4] = 0 | RECEIVED_BLOCK_BITMAP[5] = 0 | RECEIVED_BLOCK_BITMAP[6] = 0 | RECEIVED_BLOCK_BITMAP[7] = 1 | : End Ack_Nack_Description | Exist_Channel_Request_Description = 1 | : Channel_Request_Description | PEAK_THROUGHPUT_CLASS = 0 | RADIO_PRIORITY = 0 | RLC_MODE = 0 | LLC_PDU_TYPE = 1 | RLC_OCTET_COUNT = 18 | : End Channel_Request_Description | : Channel_Quality_Report | C_VALUE = 40 | RXQUAL = 1 | SIGN_VAR = 0 | Slot[0].Exist = 0 | Slot[1].Exist = 0 | Slot[2].Exist = 0 | Slot[3].Exist = 0 | Slot[4].Exist = 0 | Slot[5].Exist = 0 | Slot[6].Exist = 0 | Slot[7].Exist = 0 | : End Channel_Quality_Report | Exist_AdditionsR99 = 1 | : AdditionsR99 | Exist_PFI = 0 | : End AdditionsR99 | Padding = 3|43|43|43|43|43| +DCSN1 INFO csnStreamDecoder (type: Pkt Resource Req (5)): PayloadType = 1 | spare = 0 | R = 1 | MESSAGE_TYPE = 5 | Exist_ACCESS_TYPE = 1 | ACCESS_TYPE = 3 | : ID | Choice PacketResourceRequestID = 1 | u.TLLI = 0xa86e40fa | : End ID | Exist_MS_Radio_Access_capability2 = 1 | : MS_Radio_Access_capability2 | MS_RA_capability_value { | Choice MS_RA_capability_value_Choice = 7 | u.Content length = 44 | offset = 1 | RF_Power_Capability = 4 | Exist_A5_bits = 1 | A5_bits = 80 | ES_IND = 1 | PS = 1 | VGCS = 0 | VBS = 0 | Exist_Multislot_capability = 1 | : Multislot_capability | Exist_HSCSD_multislot_class = 0 | Exist_GPRS_multislot_class = 1 | GPRS_multislot_class = 12 | GPRS_Extended_Dynamic_Allocation_Capability = 1 | Exist_SM = 0 | Exist_ECSD_multislot_class = 0 | Exist_EGPRS_multislot_class = 1 | EGPRS_multislot_class = 12 | EGPRS_Extended_Dynamic_Allocation_Capability = 1 | Exist_DTM_GPRS_multislot_class = 0 | : End Multislot_capability | Exist_Eight_PSK_Power_Capability = 0 | COMPACT_Interference_Measurement_Capability = 0 | Revision_Level_Indicator = 1 | UMTS_FDD_Radio_Access_Technology_Capability = 1 | UMTS_384_TDD_Radio_Access_Technology_Capability = 0 | CDMA2000_Radio_Access_Technology_Capability = 0 | UMTS_128_TDD_Radio_Access_Technology_Capability = 1 | GERAN_Feature_Package_1 = 1 | Exist_Extended_DTM_multislot_class = 0 | Modulation_based_multislot_class_support = 0 | GMSK_MultislotPowerProfile = NULL | EightPSK_MultislotProfile = NULL | MultipleTBF_Capability = NULL | DownlinkAdvancedReceiverPerformance = NULL | ExtendedRLC_MAC_ControlMessageSegmentionsCapability = NULL | DTM_EnhancementsCapability = NULL | PS_HandoverCapability = NULL | DTM_Handover_Capability = NULL | FlexibleTimeslotAssignment = NULL | GAN_PS_HandoverCapability = NULL | RLC_Non_persistentMode = NULL | ReducedLatencyCapability = NULL | UplinkEGPRS2 = NULL | DownlinkEGPRS2 = NULL | EUTRA_FDD_Support = NULL | EUTRA_TDD_Support = NULL | GERAN_To_EUTRAN_supportInGERAN_PTM = NULL | PriorityBasedReselectionSupport = NULL | MS_RA_capability_value } | : End MS_Radio_Access_capability2 | : Channel_Request_Description | PEAK_THROUGHPUT_CLASS = 4 | RADIO_PRIORITY = 0 | RLC_MODE = 0 | LLC_PDU_TYPE = 1 | RLC_OCTET_COUNT = 60 | : End Channel_Request_Description | Exist_CHANGE_MARK = 0 | C_VALUE = 0 | Exist_SIGN_VAR = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | Exist_AdditionsR99 = 1 | : AdditionsR99 | Exist_EGPRS_BEP_LinkQualityMeasurements = 0 | Exist_EGPRS_TimeslotLinkQualityMeasurements = 0 | Exist_PFI = 0 | MS_RAC_AdditionalInformationAvailable = 0 | RetransmissionOfPRR = 0 | Exist_AdditionsR5 = 0 | : End AdditionsR99 | Padding = 43|43|43|43| +DCSN1 INFO csnStreamEncoder (type: Pkt Resource Req (5)): PayloadType = 1 | spare = 0 | R = 1 | MESSAGE_TYPE = 5 | Exist_ACCESS_TYPE = 1 | ACCESS_TYPE = 3 | : ID | u.TLLI = 1 | u.TLLI = 2825797882 | : End ID | Exist_MS_Radio_Access_capability2 = 1 | : MS_Radio_Access_capability2 | MS_RA_capability_value { | u.Content = 7 | RF_Power_Capability = 4 | Exist_A5_bits = 1 | A5_bits = 80 | ES_IND = 1 | PS = 1 | VGCS = 0 | VBS = 0 | Exist_Multislot_capability = 1 | : Multislot_capability | Exist_HSCSD_multislot_class = 0 | Exist_GPRS_multislot_class = 1 | GPRS_multislot_class = 12 | GPRS_Extended_Dynamic_Allocation_Capability = 1 | Exist_SM = 0 | Exist_ECSD_multislot_class = 0 | Exist_EGPRS_multislot_class = 1 | EGPRS_multislot_class = 12 | EGPRS_Extended_Dynamic_Allocation_Capability = 1 | Exist_DTM_GPRS_multislot_class = 0 | : End Multislot_capability | Exist_Eight_PSK_Power_Capability = 0 | COMPACT_Interference_Measurement_Capability = 0 | Revision_Level_Indicator = 1 | UMTS_FDD_Radio_Access_Technology_Capability = 1 | UMTS_384_TDD_Radio_Access_Technology_Capability = 0 | CDMA2000_Radio_Access_Technology_Capability = 0 | UMTS_128_TDD_Radio_Access_Technology_Capability = 1 | GERAN_Feature_Package_1 = 1 | Exist_Extended_DTM_multislot_class = 0 | Modulation_based_multislot_class_support = 0 | Exist_HighMultislotCapability = 0 | Exist_GERAN_lu_ModeCapability = 0 | GMSK_MultislotPowerProfile = 0 | EightPSK_MultislotProfile = 0 | MultipleTBF_Capability = 0 | DownlinkAdvancedReceiverPerformance = 0 | ExtendedRLC_MAC_ControlMessageSegmentionsCapability = 0 | DTM_EnhancementsCapability = 0 | Exist_DTM_GPRS_HighMultislotClass = 0 | PS_HandoverCapability = 0 | DTM_Handover_Capability = 0 | Exist_DownlinkDualCarrierCapability_r7 = 0 | FlexibleTimeslotAssignment = 0 | GAN_PS_HandoverCapability = 0 | RLC_Non_persistentMode = 0 | ReducedLatencyCapability = 0 | UplinkEGPRS2 = 0 | DownlinkEGPRS2 = 0 | EUTRA_FDD_Support = 0 | EUTRA_TDD_Support = 0 | GERAN_To_EUTRAN_supportInGERAN_PTM = 0 | PriorityBasedReselectionSupport = 0 | u.Content length = 72 | MS_RA_capability_value } | : End MS_Radio_Access_capability2 | : Channel_Request_Description | PEAK_THROUGHPUT_CLASS = 4 | RADIO_PRIORITY = 0 | RLC_MODE = 0 | LLC_PDU_TYPE = 1 | RLC_OCTET_COUNT = 60 | : End Channel_Request_Description | Exist_CHANGE_MARK = 0 | C_VALUE = 0 | Exist_SIGN_VAR = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | Exist_AdditionsR99 = 1 | : AdditionsR99 | Exist_EGPRS_BEP_LinkQualityMeasurements = 0 | Exist_EGPRS_TimeslotLinkQualityMeasurements = 0 | Exist_PFI = 0 | MS_RAC_AdditionalInformationAvailable = 0 | RetransmissionOfPRR = 0 | Exist_AdditionsR5 = 0 | : End AdditionsR99 | Padding = 1| +DCSN1 INFO csnStreamDecoder (type: Pkt Resource Req (5)): PayloadType = 1 | spare = 0 | R = 0 | MESSAGE_TYPE = 5 | Exist_ACCESS_TYPE = 1 | ACCESS_TYPE = 0 | : ID | Choice PacketResourceRequestID = 1 | u.TLLI = 0xf927dfe3 | : End ID | Exist_MS_Radio_Access_capability2 = 1 | : MS_Radio_Access_capability2 | MS_RA_capability_value { | Choice MS_RA_capability_value_Choice = 7 | u.Content length = 73 | offset = 1 | RF_Power_Capability = 4 | Exist_A5_bits = 0 | ES_IND = 1 | PS = 1 | VGCS = 0 | VBS = 0 | Exist_Multislot_capability = 1 | : Multislot_capability | Exist_HSCSD_multislot_class = 0 | Exist_GPRS_multislot_class = 1 | GPRS_multislot_class = 12 | GPRS_Extended_Dynamic_Allocation_Capability = 1 | Exist_SM = 0 | Exist_ECSD_multislot_class = 0 | Exist_EGPRS_multislot_class = 1 | EGPRS_multislot_class = 12 | EGPRS_Extended_Dynamic_Allocation_Capability = 1 | Exist_DTM_GPRS_multislot_class = 0 | : End Multislot_capability | Exist_Eight_PSK_Power_Capability = 1 | Eight_PSK_Power_Capability = 2 | COMPACT_Interference_Measurement_Capability = 0 | Revision_Level_Indicator = 1 | UMTS_FDD_Radio_Access_Technology_Capability = 1 | UMTS_384_TDD_Radio_Access_Technology_Capability = 0 | CDMA2000_Radio_Access_Technology_Capability = 0 | UMTS_128_TDD_Radio_Access_Technology_Capability = 0 | GERAN_Feature_Package_1 = 1 | Exist_Extended_DTM_multislot_class = 0 | Modulation_based_multislot_class_support = 0 | Exist_HighMultislotCapability = 0 | Exist_GERAN_lu_ModeCapability = 0 | GMSK_MultislotPowerProfile = 0 | EightPSK_MultislotProfile = 0 | MultipleTBF_Capability = 0 | DownlinkAdvancedReceiverPerformance = 1 | ExtendedRLC_MAC_ControlMessageSegmentionsCapability = 1 | DTM_EnhancementsCapability = 0 | Exist_DTM_GPRS_HighMultislotClass = 0 | PS_HandoverCapability = 0 | DTM_Handover_Capability = 0 | Exist_DownlinkDualCarrierCapability_r7 = 0 | FlexibleTimeslotAssignment = 0 | GAN_PS_HandoverCapability = 0 | RLC_Non_persistentMode = 0 | ReducedLatencyCapability = 0 | UplinkEGPRS2 = 0 | DownlinkEGPRS2 = 0 | EUTRA_FDD_Support = 0 | EUTRA_TDD_Support = 0 | GERAN_To_EUTRAN_supportInGERAN_PTM = 0 | PriorityBasedReselectionSupport = 1 | skipped = 6 | MS_RA_capability_value } | : End MS_Radio_Access_capability2 | : Channel_Request_Description | PEAK_THROUGHPUT_CLASS = 6 | RADIO_PRIORITY = 3 | RLC_MODE = 0 | LLC_PDU_TYPE = 1 | RLC_OCTET_COUNT = 84 | : End Channel_Request_Description | Exist_CHANGE_MARK = 0 | C_VALUE = 14 | Exist_SIGN_VAR = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | Exist_AdditionsR99 = 1 | : AdditionsR99 | Exist_EGPRS_BEP_LinkQualityMeasurements = 0 | Exist_EGPRS_TimeslotLinkQualityMeasurements = 0 | Exist_PFI = 0 | MS_RAC_AdditionalInformationAvailable = 0 | RetransmissionOfPRR = 0 | Exist_AdditionsR5 = 0 | : End AdditionsR99 | Padding = 0| +DCSN1 INFO csnStreamEncoder (type: Pkt Resource Req (5)): PayloadType = 1 | spare = 0 | R = 0 | MESSAGE_TYPE = 5 | Exist_ACCESS_TYPE = 1 | ACCESS_TYPE = 0 | : ID | u.TLLI = 1 | u.TLLI = 4180140003 | : End ID | Exist_MS_Radio_Access_capability2 = 1 | : MS_Radio_Access_capability2 | MS_RA_capability_value { | u.Content = 7 | RF_Power_Capability = 4 | Exist_A5_bits = 0 | ES_IND = 1 | PS = 1 | VGCS = 0 | VBS = 0 | Exist_Multislot_capability = 1 | : Multislot_capability | Exist_HSCSD_multislot_class = 0 | Exist_GPRS_multislot_class = 1 | GPRS_multislot_class = 12 | GPRS_Extended_Dynamic_Allocation_Capability = 1 | Exist_SM = 0 | Exist_ECSD_multislot_class = 0 | Exist_EGPRS_multislot_class = 1 | EGPRS_multislot_class = 12 | EGPRS_Extended_Dynamic_Allocation_Capability = 1 | Exist_DTM_GPRS_multislot_class = 0 | : End Multislot_capability | Exist_Eight_PSK_Power_Capability = 1 | Eight_PSK_Power_Capability = 2 | COMPACT_Interference_Measurement_Capability = 0 | Revision_Level_Indicator = 1 | UMTS_FDD_Radio_Access_Technology_Capability = 1 | UMTS_384_TDD_Radio_Access_Technology_Capability = 0 | CDMA2000_Radio_Access_Technology_Capability = 0 | UMTS_128_TDD_Radio_Access_Technology_Capability = 0 | GERAN_Feature_Package_1 = 1 | Exist_Extended_DTM_multislot_class = 0 | Modulation_based_multislot_class_support = 0 | Exist_HighMultislotCapability = 0 | Exist_GERAN_lu_ModeCapability = 0 | GMSK_MultislotPowerProfile = 0 | EightPSK_MultislotProfile = 0 | MultipleTBF_Capability = 0 | DownlinkAdvancedReceiverPerformance = 1 | ExtendedRLC_MAC_ControlMessageSegmentionsCapability = 1 | DTM_EnhancementsCapability = 0 | Exist_DTM_GPRS_HighMultislotClass = 0 | PS_HandoverCapability = 0 | DTM_Handover_Capability = 0 | Exist_DownlinkDualCarrierCapability_r7 = 0 | FlexibleTimeslotAssignment = 0 | GAN_PS_HandoverCapability = 0 | RLC_Non_persistentMode = 0 | ReducedLatencyCapability = 0 | UplinkEGPRS2 = 0 | DownlinkEGPRS2 = 0 | EUTRA_FDD_Support = 0 | EUTRA_TDD_Support = 0 | GERAN_To_EUTRAN_supportInGERAN_PTM = 0 | PriorityBasedReselectionSupport = 1 | u.Content length = 67 | MS_RA_capability_value } | : End MS_Radio_Access_capability2 | : Channel_Request_Description | PEAK_THROUGHPUT_CLASS = 6 | RADIO_PRIORITY = 3 | RLC_MODE = 0 | LLC_PDU_TYPE = 1 | RLC_OCTET_COUNT = 84 | : End Channel_Request_Description | Exist_CHANGE_MARK = 0 | C_VALUE = 14 | Exist_SIGN_VAR = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | Exist_AdditionsR99 = 1 | : AdditionsR99 | Exist_EGPRS_BEP_LinkQualityMeasurements = 0 | Exist_EGPRS_TimeslotLinkQualityMeasurements = 0 | Exist_PFI = 0 | MS_RAC_AdditionalInformationAvailable = 0 | RetransmissionOfPRR = 0 | Exist_AdditionsR5 = 0 | : End AdditionsR99 | Padding = 43| +DCSN1 INFO csnStreamDecoder (type: Pkt Resource Req (5)): PayloadType = 1 | spare = 0 | R = 0 | MESSAGE_TYPE = 5 | Exist_ACCESS_TYPE = 1 | ACCESS_TYPE = 2 | : ID | Choice PacketResourceRequestID = 1 | u.TLLI = 0xe1c5d364 | : End ID | Exist_MS_Radio_Access_capability2 = 1 | : MS_Radio_Access_capability2 | MS_RA_capability_value { | Choice MS_RA_capability_value_Choice = 7 | u.Content length = 46 | offset = 1 | RF_Power_Capability = 4 | Exist_A5_bits = 1 | A5_bits = 80 | ES_IND = 1 | PS = 1 | VGCS = 0 | VBS = 0 | Exist_Multislot_capability = 1 | : Multislot_capability | Exist_HSCSD_multislot_class = 0 | Exist_GPRS_multislot_class = 1 | GPRS_multislot_class = 12 | GPRS_Extended_Dynamic_Allocation_Capability = 1 | Exist_SM = 0 | Exist_ECSD_multislot_class = 0 | Exist_EGPRS_multislot_class = 1 | EGPRS_multislot_class = 12 | EGPRS_Extended_Dynamic_Allocation_Capability = 1 | Exist_DTM_GPRS_multislot_class = 0 | : End Multislot_capability | Exist_Eight_PSK_Power_Capability = 1 | Eight_PSK_Power_Capability = 2 | COMPACT_Interference_Measurement_Capability = 0 | Revision_Level_Indicator = 1 | UMTS_FDD_Radio_Access_Technology_Capability = 1 | UMTS_384_TDD_Radio_Access_Technology_Capability = 0 | CDMA2000_Radio_Access_Technology_Capability = 0 | UMTS_128_TDD_Radio_Access_Technology_Capability = 1 | GERAN_Feature_Package_1 = 1 | Exist_Extended_DTM_multislot_class = 0 | Modulation_based_multislot_class_support = 0 | GMSK_MultislotPowerProfile = NULL | EightPSK_MultislotProfile = NULL | MultipleTBF_Capability = NULL | DownlinkAdvancedReceiverPerformance = NULL | ExtendedRLC_MAC_ControlMessageSegmentionsCapability = NULL | DTM_EnhancementsCapability = NULL | PS_HandoverCapability = NULL | DTM_Handover_Capability = NULL | FlexibleTimeslotAssignment = NULL | GAN_PS_HandoverCapability = NULL | RLC_Non_persistentMode = NULL | ReducedLatencyCapability = NULL | UplinkEGPRS2 = NULL | DownlinkEGPRS2 = NULL | EUTRA_FDD_Support = NULL | EUTRA_TDD_Support = NULL | GERAN_To_EUTRAN_supportInGERAN_PTM = NULL | PriorityBasedReselectionSupport = NULL | MS_RA_capability_value } | : End MS_Radio_Access_capability2 | : Channel_Request_Description | PEAK_THROUGHPUT_CLASS = 6 | RADIO_PRIORITY = 0 | RLC_MODE = 0 | LLC_PDU_TYPE = 1 | RLC_OCTET_COUNT = 20 | : End Channel_Request_Description | Exist_CHANGE_MARK = 0 | C_VALUE = 0 | Exist_SIGN_VAR = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | Exist_AdditionsR99 = 1 | : AdditionsR99 | Exist_EGPRS_BEP_LinkQualityMeasurements = 0 | Exist_EGPRS_TimeslotLinkQualityMeasurements = 0 | Exist_PFI = 0 | MS_RAC_AdditionalInformationAvailable = 0 | RetransmissionOfPRR = 0 | Exist_AdditionsR5 = 0 | : End AdditionsR99 | Padding = 11|43|43|43| +DCSN1 INFO csnStreamEncoder (type: Pkt Resource Req (5)): PayloadType = 1 | spare = 0 | R = 0 | MESSAGE_TYPE = 5 | Exist_ACCESS_TYPE = 1 | ACCESS_TYPE = 2 | : ID | u.TLLI = 1 | u.TLLI = 3787838308 | : End ID | Exist_MS_Radio_Access_capability2 = 1 | : MS_Radio_Access_capability2 | MS_RA_capability_value { | u.Content = 7 | RF_Power_Capability = 4 | Exist_A5_bits = 1 | A5_bits = 80 | ES_IND = 1 | PS = 1 | VGCS = 0 | VBS = 0 | Exist_Multislot_capability = 1 | : Multislot_capability | Exist_HSCSD_multislot_class = 0 | Exist_GPRS_multislot_class = 1 | GPRS_multislot_class = 12 | GPRS_Extended_Dynamic_Allocation_Capability = 1 | Exist_SM = 0 | Exist_ECSD_multislot_class = 0 | Exist_EGPRS_multislot_class = 1 | EGPRS_multislot_class = 12 | EGPRS_Extended_Dynamic_Allocation_Capability = 1 | Exist_DTM_GPRS_multislot_class = 0 | : End Multislot_capability | Exist_Eight_PSK_Power_Capability = 1 | Eight_PSK_Power_Capability = 2 | COMPACT_Interference_Measurement_Capability = 0 | Revision_Level_Indicator = 1 | UMTS_FDD_Radio_Access_Technology_Capability = 1 | UMTS_384_TDD_Radio_Access_Technology_Capability = 0 | CDMA2000_Radio_Access_Technology_Capability = 0 | UMTS_128_TDD_Radio_Access_Technology_Capability = 1 | GERAN_Feature_Package_1 = 1 | Exist_Extended_DTM_multislot_class = 0 | Modulation_based_multislot_class_support = 0 | Exist_HighMultislotCapability = 0 | Exist_GERAN_lu_ModeCapability = 0 | GMSK_MultislotPowerProfile = 0 | EightPSK_MultislotProfile = 0 | MultipleTBF_Capability = 0 | DownlinkAdvancedReceiverPerformance = 0 | ExtendedRLC_MAC_ControlMessageSegmentionsCapability = 0 | DTM_EnhancementsCapability = 0 | Exist_DTM_GPRS_HighMultislotClass = 0 | PS_HandoverCapability = 0 | DTM_Handover_Capability = 0 | Exist_DownlinkDualCarrierCapability_r7 = 0 | FlexibleTimeslotAssignment = 0 | GAN_PS_HandoverCapability = 0 | RLC_Non_persistentMode = 0 | ReducedLatencyCapability = 0 | UplinkEGPRS2 = 0 | DownlinkEGPRS2 = 0 | EUTRA_FDD_Support = 0 | EUTRA_TDD_Support = 0 | GERAN_To_EUTRAN_supportInGERAN_PTM = 0 | PriorityBasedReselectionSupport = 0 | u.Content length = 74 | MS_RA_capability_value } | : End MS_Radio_Access_capability2 | : Channel_Request_Description | PEAK_THROUGHPUT_CLASS = 6 | RADIO_PRIORITY = 0 | RLC_MODE = 0 | LLC_PDU_TYPE = 1 | RLC_OCTET_COUNT = 20 | : End Channel_Request_Description | Exist_CHANGE_MARK = 0 | C_VALUE = 0 | Exist_SIGN_VAR = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | Exist_AdditionsR99 = 1 | : AdditionsR99 | Exist_EGPRS_BEP_LinkQualityMeasurements = 0 | Exist_EGPRS_TimeslotLinkQualityMeasurements = 0 | Exist_PFI = 0 | MS_RAC_AdditionalInformationAvailable = 0 | RetransmissionOfPRR = 0 | Exist_AdditionsR5 = 0 | : End AdditionsR99 | Padding = +DCSN1 INFO csnStreamDecoder (type: Pkt Resource Req (5)): PayloadType = 1 | spare = 0 | R = 0 | MESSAGE_TYPE = 5 | Exist_ACCESS_TYPE = 1 | ACCESS_TYPE = 3 | : ID | Choice PacketResourceRequestID = 1 | u.TLLI = 0x96cb3568 | : End ID | Exist_MS_Radio_Access_capability2 = 1 | : MS_Radio_Access_capability2 | MS_RA_capability_value { | Choice MS_RA_capability_value_Choice = 7 | u.Content length = 50 | offset = 1 | RF_Power_Capability = 4 | Exist_A5_bits = 1 | A5_bits = 80 | ES_IND = 1 | PS = 1 | VGCS = 0 | VBS = 0 | Exist_Multislot_capability = 1 | : Multislot_capability | Exist_HSCSD_multislot_class = 0 | Exist_GPRS_multislot_class = 1 | GPRS_multislot_class = 11 | GPRS_Extended_Dynamic_Allocation_Capability = 1 | Exist_SM = 1 | SMS_VALUE = 2 | SM_VALUE = 2 | Exist_ECSD_multislot_class = 0 | Exist_EGPRS_multislot_class = 1 | EGPRS_multislot_class = 11 | EGPRS_Extended_Dynamic_Allocation_Capability = 1 | Exist_DTM_GPRS_multislot_class = 0 | : End Multislot_capability | Exist_Eight_PSK_Power_Capability = 1 | Eight_PSK_Power_Capability = 2 | COMPACT_Interference_Measurement_Capability = 0 | Revision_Level_Indicator = 1 | UMTS_FDD_Radio_Access_Technology_Capability = 0 | UMTS_384_TDD_Radio_Access_Technology_Capability = 0 | CDMA2000_Radio_Access_Technology_Capability = 0 | UMTS_128_TDD_Radio_Access_Technology_Capability = NULL | GERAN_Feature_Package_1 = NULL | Modulation_based_multislot_class_support = NULL | GMSK_MultislotPowerProfile = NULL | EightPSK_MultislotProfile = NULL | MultipleTBF_Capability = NULL | DownlinkAdvancedReceiverPerformance = NULL | ExtendedRLC_MAC_ControlMessageSegmentionsCapability = NULL | DTM_EnhancementsCapability = NULL | PS_HandoverCapability = NULL | DTM_Handover_Capability = NULL | FlexibleTimeslotAssignment = NULL | GAN_PS_HandoverCapability = NULL | RLC_Non_persistentMode = NULL | ReducedLatencyCapability = NULL | UplinkEGPRS2 = NULL | DownlinkEGPRS2 = NULL | EUTRA_FDD_Support = NULL | EUTRA_TDD_Support = NULL | GERAN_To_EUTRAN_supportInGERAN_PTM = NULL | PriorityBasedReselectionSupport = NULL | MS_RA_capability_value } | : End MS_Radio_Access_capability2 | : Channel_Request_Description | PEAK_THROUGHPUT_CLASS = 9 | RADIO_PRIORITY = 0 | RLC_MODE = 0 | LLC_PDU_TYPE = 1 | RLC_OCTET_COUNT = 39 | : End Channel_Request_Description | Exist_CHANGE_MARK = 0 | C_VALUE = 19 | Exist_SIGN_VAR = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | Exist_AdditionsR99 = 1 | : AdditionsR99 | Exist_EGPRS_BEP_LinkQualityMeasurements = 0 | Exist_EGPRS_TimeslotLinkQualityMeasurements = 0 | Exist_PFI = 0 | MS_RAC_AdditionalInformationAvailable = 0 | RetransmissionOfPRR = 0 | Exist_AdditionsR5 = 1 | : AdditionsR5 | Exist_Iu_Mode_ChRequestDesk = 0 | Exist_HFN_LSB = 0 | Exist_AdditionsR6 = 1 | : AdditionsR6 | Exist_Ext_Channel_Request_desc = 0 | Exist_AdditionsR7 = 1 | : AdditionsR7 | EARLY_TBF_ESTABLISHMENT = 0 | Exist_EGPRS_BEP_LinkQualityMeasurements_type2 = 1 | : EGPRS_BEP_LinkQualityMeasurements_type2 | Exist_GMSK_MEAN_BEP = 1 | GMSK_MEAN_BEP = 5 | GMSK_CV_BEP = 3 | Exist_8PSK_MEAN_BEP = 0 | p8PSK_CV_BEP = 2 | Exist_QPSK_MEAN_BEP = 1 | DCSN1 ERROR csnStreamDecoder: error NEED_MORE BITS TO UNPACK (-5) at QPSK_MEAN_BEP (idx 181): End EGPRS_BEP_LinkQualityMeasurements_type2 | : End AdditionsR7 | : End AdditionsR6 | : End AdditionsR5 | : End AdditionsR99 | +DCSN1 INFO csnStreamEncoder (type: Pkt Resource Req (5)): PayloadType = 1 | spare = 0 | R = 0 | MESSAGE_TYPE = 5 | Exist_ACCESS_TYPE = 1 | ACCESS_TYPE = 3 | : ID | u.TLLI = 1 | u.TLLI = 2529899880 | : End ID | Exist_MS_Radio_Access_capability2 = 1 | : MS_Radio_Access_capability2 | MS_RA_capability_value { | u.Content = 7 | RF_Power_Capability = 4 | Exist_A5_bits = 1 | A5_bits = 80 | ES_IND = 1 | PS = 1 | VGCS = 0 | VBS = 0 | Exist_Multislot_capability = 1 | : Multislot_capability | Exist_HSCSD_multislot_class = 0 | Exist_GPRS_multislot_class = 1 | GPRS_multislot_class = 11 | GPRS_Extended_Dynamic_Allocation_Capability = 1 | Exist_SM = 1 | SMS_VALUE = 2 | SM_VALUE = 2 | Exist_ECSD_multislot_class = 0 | Exist_EGPRS_multislot_class = 1 | EGPRS_multislot_class = 11 | EGPRS_Extended_Dynamic_Allocation_Capability = 1 | Exist_DTM_GPRS_multislot_class = 0 | : End Multislot_capability | Exist_Eight_PSK_Power_Capability = 1 | Eight_PSK_Power_Capability = 2 | COMPACT_Interference_Measurement_Capability = 0 | Revision_Level_Indicator = 1 | UMTS_FDD_Radio_Access_Technology_Capability = 0 | UMTS_384_TDD_Radio_Access_Technology_Capability = 0 | CDMA2000_Radio_Access_Technology_Capability = 0 | UMTS_128_TDD_Radio_Access_Technology_Capability = 0 | GERAN_Feature_Package_1 = 0 | Exist_Extended_DTM_multislot_class = 0 | Modulation_based_multislot_class_support = 0 | Exist_HighMultislotCapability = 0 | Exist_GERAN_lu_ModeCapability = 0 | GMSK_MultislotPowerProfile = 0 | EightPSK_MultislotProfile = 0 | MultipleTBF_Capability = 0 | DownlinkAdvancedReceiverPerformance = 0 | ExtendedRLC_MAC_ControlMessageSegmentionsCapability = 0 | DTM_EnhancementsCapability = 0 | Exist_DTM_GPRS_HighMultislotClass = 0 | PS_HandoverCapability = 0 | DTM_Handover_Capability = 0 | Exist_DownlinkDualCarrierCapability_r7 = 0 | FlexibleTimeslotAssignment = 0 | GAN_PS_HandoverCapability = 0 | RLC_Non_persistentMode = 0 | ReducedLatencyCapability = 0 | UplinkEGPRS2 = 0 | DownlinkEGPRS2 = 0 | EUTRA_FDD_Support = 0 | EUTRA_TDD_Support = 0 | GERAN_To_EUTRAN_supportInGERAN_PTM = 0 | PriorityBasedReselectionSupport = 0 | u.Content length = 82 | MS_RA_capability_value } | : End MS_Radio_Access_capability2 | : Channel_Request_Description | PEAK_THROUGHPUT_CLASS = 9 | RADIO_PRIORITY = 0 | RLC_MODE = 0 | LLC_PDU_TYPE = 1 | RLC_OCTET_COUNT = 39 | : End Channel_Request_Description | Exist_CHANGE_MARK = 0 | C_VALUE = 19 | Exist_SIGN_VAR = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | DCSN1 ERROR csnStreamEncoder: error NEED_MORE BITS TO UNPACK (-5) at (idx 184) +DRLCMACDATA ERROR Failed to encode an Uplink block: not enough bits in the output buffer (rc=-5) DCSN1 INFO csnStreamDecoder (type: EGPRS Pkt DL ACK/NACK (8)): PayloadType = 1 | spare = 0 | R = 0 | MESSAGE_TYPE = 8 | DOWNLINK_TFI = 0 | MS_OUT_OF_MEMORY = 0 | Exist_EGPRS_ChannelQualityReport = 1 | : EGPRS_ChannelQualityReport | : EGPRS_BEP_LinkQualityMeasurements | Exist_MEAN_CV_BEP_GMSK = 0 | Exist_MEAN_CV_BEP_8PSK = 1 | MEAN_BEP_8PSK = 31 | CV_BEP_8PSK = 7 | : End EGPRS_BEP_LinkQualityMeasurements | C_VALUE = 58 | : EGPRS_TimeslotLinkQualityMeasurements | Exist_BEP_MEASUREMENTS = 0 | Exist_INTERFERENCE_MEASUREMENTS = 0 | : End EGPRS_TimeslotLinkQualityMeasurements | : End EGPRS_ChannelQualityReport | Exist_ChannelRequestDescription = 1 | : ChannelRequestDescription | PEAK_THROUGHPUT_CLASS = 6 | RADIO_PRIORITY = 0 | RLC_MODE = 0 | LLC_PDU_TYPE = 1 | RLC_OCTET_COUNT = 62 | : End ChannelRequestDescription | Exist_PFI = 0 | Exist_ExtensionBits = 0 | : EGPRS_AckNack | Desc = 0 | : Desc | FINAL_ACK_INDICATION = 0 | BEGINNING_OF_WINDOW = 1 | END_OF_WINDOW = 1 | STARTING_SEQUENCE_NUMBER = 1187 | Exist_CRBB = 0 | URBB = 127 | URBB = 255 | URBB = 255 | URBB = 238 | URBB = 0 | URBB = 0 | URBB = 0 | URBB = 0 | URBB = 0 | URBB = 0 | URBB = 0 | URBB = 0 | URBB = 0 | : End Desc | : End EGPRS_AckNack | Padding = DCSN1 INFO csnStreamDecoder (RAcap): MS_RA_capability_value { | Choice MS_RA_capability_value_Choice = 1 | u.Content length = 27 | offset = 1 | RF_Power_Capability = 1 | Exist_A5_bits = 0 | ES_IND = 1 | PS = 0 | VGCS = 0 | VBS = 0 | Exist_Multislot_capability = 1 | : Multislot_capability | Exist_HSCSD_multislot_class = 0 | Exist_GPRS_multislot_class = 1 | GPRS_multislot_class = 3 | GPRS_Extended_Dynamic_Allocation_Capability = 0 | Exist_SM = 0 | Exist_ECSD_multislot_class = 0 | Exist_EGPRS_multislot_class = 1 | EGPRS_multislot_class = 3 | EGPRS_Extended_Dynamic_Allocation_Capability = 0 | Exist_DTM_GPRS_multislot_class = 0 | : End Multislot_capability | COMPACT_Interference_Measurement_Capability = NULL | Revision_Level_Indicator = NULL | UMTS_FDD_Radio_Access_Technology_Capability = NULL | UMTS_384_TDD_Radio_Access_Technology_Capability = NULL | CDMA2000_Radio_Access_Technology_Capability = NULL | UMTS_128_TDD_Radio_Access_Technology_Capability = NULL | GERAN_Feature_Package_1 = NULL | Modulation_based_multislot_class_support = NULL | GMSK_MultislotPowerProfile = NULL | EightPSK_MultislotProfile = NULL | MultipleTBF_Capability = NULL | DownlinkAdvancedReceiverPerformance = NULL | ExtendedRLC_MAC_ControlMessageSegmentionsCapability = NULL | DTM_EnhancementsCapability = NULL | PS_HandoverCapability = NULL | DTM_Handover_Capability = NULL | FlexibleTimeslotAssignment = NULL | GAN_PS_HandoverCapability = NULL | RLC_Non_persistentMode = NULL | ReducedLatencyCapability = NULL | UplinkEGPRS2 = NULL | DownlinkEGPRS2 = NULL | EUTRA_FDD_Support = NULL | EUTRA_TDD_Support = NULL | GERAN_To_EUTRAN_supportInGERAN_PTM = NULL | PriorityBasedReselectionSupport = NULL | MS_RA_capability_value } | Padding = 0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0| DCSN1 INFO csnStreamEncoder (RAcap): MS_RA_capability_value { | u.Content = 1 | RF_Power_Capability = 1 | Exist_A5_bits = 0 | ES_IND = 1 | PS = 0 | VGCS = 0 | VBS = 0 | Exist_Multislot_capability = 1 | : Multislot_capability | Exist_HSCSD_multislot_class = 0 | Exist_GPRS_multislot_class = 1 | GPRS_multislot_class = 3 | GPRS_Extended_Dynamic_Allocation_Capability = 0 | Exist_SM = 0 | Exist_ECSD_multislot_class = 0 | Exist_EGPRS_multislot_class = 1 | EGPRS_multislot_class = 3 | EGPRS_Extended_Dynamic_Allocation_Capability = 0 | Exist_DTM_GPRS_multislot_class = 0 | : End Multislot_capability | Exist_Eight_PSK_Power_Capability = 0 | COMPACT_Interference_Measurement_Capability = 0 | Revision_Level_Indicator = 0 | UMTS_FDD_Radio_Access_Technology_Capability = 0 | UMTS_384_TDD_Radio_Access_Technology_Capability = 0 | CDMA2000_Radio_Access_Technology_Capability = 0 | UMTS_128_TDD_Radio_Access_Technology_Capability = 0 | GERAN_Feature_Package_1 = 0 | Exist_Extended_DTM_multislot_class = 0 | Modulation_based_multislot_class_support = 0 | Exist_HighMultislotCapability = 0 | Exist_GERAN_lu_ModeCapability = 0 | GMSK_MultislotPowerProfile = 0 | EightPSK_MultislotProfile = 0 | MultipleTBF_Capability = 0 | DownlinkAdvancedReceiverPerformance = 0 | ExtendedRLC_MAC_ControlMessageSegmentionsCapability = 0 | DTM_EnhancementsCapability = 0 | Exist_DTM_GPRS_HighMultislotClass = 0 | PS_HandoverCapability = 0 | DTM_Handover_Capability = 0 | Exist_DownlinkDualCarrierCapability_r7 = 0 | FlexibleTimeslotAssignment = 0 | GAN_PS_HandoverCapability = 0 | RLC_Non_persistentMode = 0 | ReducedLatencyCapability = 0 | UplinkEGPRS2 = 0 | DownlinkEGPRS2 = 0 | EUTRA_FDD_Support = 0 | EUTRA_TDD_Support = 0 | GERAN_To_EUTRAN_supportInGERAN_PTM = 0 | PriorityBasedReselectionSupport = 0 | u.Content length = 65 | MS_RA_capability_value } | Padding = 3|43|43|43|43|43|43|43|43|43|43|43|43|43| diff --git a/tests/rlcmac/RLCMACTest.ok b/tests/rlcmac/RLCMACTest.ok index 437cd75..54b5e31 100644 --- a/tests/rlcmac/RLCMACTest.ok +++ b/tests/rlcmac/RLCMACTest.ok @@ -138,6 +138,38 @@ vector1 = 40 0a 90 20 00 00 00 00 00 00 00 30 10 01 2a 08 00 13 2b 2b 2b 2b 2b vector2 = 40 0a 90 20 00 00 00 00 00 00 00 30 10 01 2a 08 00 13 2b 2b 2b 2b 2b vector1 == vector2 : TRUE +vector1 = 4117ea1b903eaeb2686564b2330820078000102b2b2b2b +=========Start DECODE=========== ++++++++++Finish DECODE (0)++++++++++ +=========Start ENCODE============= ++++++++++Finish ENCODE (0)+++++++++++ +vector1 = 41 17 ea 1b 90 3e ae b2 68 65 64 b2 33 08 20 07 80 00 10 2b 2b 2b 2b +vector2 = 41 17 ea 1b 90 3e af 22 68 65 64 b2 33 00 00 00 00 82 00 78 00 01 01 +vector1 == vector2 : FALSE +vector1 = 40167e49f7f8ef2632b2596620060000806d00541c0080 +=========Start DECODE=========== ++++++++++Finish DECODE (0)++++++++++ +=========Start ENCODE============= ++++++++++Finish ENCODE (0)+++++++++++ +vector1 = 40 16 7e 49 f7 f8 ef 26 32 b2 59 66 20 06 00 00 80 6d 00 54 1c 00 80 +vector2 = 40 16 7e 49 f7 f8 ef 0e 32 b2 59 66 20 06 00 00 9b 40 15 07 00 20 2b +vector1 == vector2 : FALSE +vector1 = 4017787174d92eba686564b2ccc30800a000040b2b2b2b +=========Start DECODE=========== ++++++++++Finish DECODE (0)++++++++++ +=========Start ENCODE============= ++++++++++Finish ENCODE (0)+++++++++++ +vector1 = 40 17 78 71 74 d9 2e ba 68 65 64 b2 cc c3 08 00 a0 00 04 0b 2b 2b 2b +vector2 = 40 17 78 71 74 d9 2f 2a 68 65 64 b2 cc c0 00 00 00 30 80 0a 00 00 40 +vector1 == vector2 : FALSE +vector1 = 4017e5b2cd5a2eca68655e44aec84880139300412b2b2b +=========Start DECODE=========== ++++++++++Finish DECODE (-5)++++++++++ +=========Start ENCODE============= ++++++++++Finish ENCODE (-5)+++++++++++ +vector1 = 40 17 e5 b2 cd 5a 2e ca 68 65 5e 44 ae c8 48 80 13 93 00 41 2b 2b 2b +vector2 = 40 17 e5 b2 cd 5a 2f 4a 68 65 5e 44 ae c8 00 00 00 00 48 80 13 93 00 +vector1 == vector2 : FALSE *** testCsnLeftAlignedVarBmpBounds *** *** testRAcap *** === Test decoding of MS RA Capability === -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22523 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ib5677048f5668185ffe752f97c97d5612eee4d72 Gerrit-Change-Number: 22523 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 20:51:41 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 28 Jan 2021 20:51:41 +0000 Subject: Change in osmo-pcu[master]: rlcmac: fix Release Additions in Packet Resource Request References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22524 ) Change subject: rlcmac: fix Release Additions in Packet Resource Request ...................................................................... rlcmac: fix Release Additions in Packet Resource Request It was reported that osmo-pcu drops some Uplink packets due to CSN.1 decoding errors in the 'Release Additions' part. Table 11.2.16.1 in 3GPP TS 44.060 provides CSN.1 definition of the Packet Resource Request, and apparently it contains mistakes, or somehow we interpret it wrong. Here is some history: * 3GPP TS 04.60, version V8.0.0 (1999-07) * No release additions, only padding bits in the end * 3GPP TS 04.60, version V8.1.0 (1999-11) * Additional contents for Release 1999 * Padding becomes a part of the R99 additions * 3GPP TS 44.060, Release 5, V5.2.0 (2002-07) * Additional contents for Release 5 * Padding becomes a part of the R5 additions ... * 3GPP TS 44.060, Release 16, V16.0.0 (2020-09) * Additional contents for R6, R7, R10, and R12 * Padding becomes a part of the R12 additions So in V8.0.0 they required the MS to use '2B'O padding right after the message content, and then they moved padding deeper into the release extensions. And the presence indicators are normal bits, not L/H as one would usually expect to see in the rest octets. This leads to ambiguous situations when the padding bits are mis-interpreted as valid fields of release extensions. My best guess is that L/H syntax must be used. Not sure though. Change-Id: I3db49613bf935067cd457f87b6ce28806b718778 Related: OS#4955 --- M src/gsm_rlcmac.c M tests/rlcmac/RLCMACTest.err M tests/rlcmac/RLCMACTest.ok 3 files changed, 6 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/24/22524/1 diff --git a/src/gsm_rlcmac.c b/src/gsm_rlcmac.c index 9b8782d..d8eb274 100644 --- a/src/gsm_rlcmac.c +++ b/src/gsm_rlcmac.c @@ -1317,7 +1317,7 @@ CSN_DESCR_BEGIN(PRR_AdditionsR10_t) M_UINT (PRR_AdditionsR10_t, LOW_ACCESS_PRIORITY_SIGNALLING, 1), - M_NEXT_EXIST_OR_NULL(PRR_AdditionsR10_t, Exist_AdditionsR12, 1), + M_NEXT_EXIST_OR_NULL_LH(PRR_AdditionsR10_t, Exist_AdditionsR12, 1), M_TYPE (PRR_AdditionsR10_t, AdditionsR12, PRR_AdditionsR12_t), CSN_DESCR_END (PRR_AdditionsR10_t) @@ -1332,7 +1332,7 @@ M_NEXT_EXIST (PRR_AdditionsR7_t, Exist_EGPRS_TimeslotLinkQualityMeasurements_type2, 1), M_TYPE (PRR_AdditionsR7_t, EGPRS_TimeslotLinkQualityMeasurements_type2, EGPRS_TimeslotLinkQualityMeasurements_type2_t), - M_NEXT_EXIST_OR_NULL(PRR_AdditionsR7_t, Exist_AdditionsR10, 1), + M_NEXT_EXIST_OR_NULL_LH(PRR_AdditionsR7_t, Exist_AdditionsR10, 1), M_TYPE (PRR_AdditionsR7_t, AdditionsR10, PRR_AdditionsR10_t), CSN_DESCR_END (PRR_AdditionsR7_t) @@ -1342,7 +1342,7 @@ M_NEXT_EXIST (PRR_AdditionsR6_t, Exist_Ext_Channel_Request_desc, 1), M_TYPE (PRR_AdditionsR6_t, Ext_Channel_Request_desc, Ext_Channel_Request_desc_t), - M_NEXT_EXIST_OR_NULL(PRR_AdditionsR6_t, Exist_AdditionsR7, 1), + M_NEXT_EXIST_OR_NULL_LH(PRR_AdditionsR6_t, Exist_AdditionsR7, 1), M_TYPE (PRR_AdditionsR6_t, AdditionsR7, PRR_AdditionsR7_t), CSN_DESCR_END (PRR_AdditionsR6_t) @@ -1355,7 +1355,7 @@ M_NEXT_EXIST (PRR_AdditionsR5_t, Exist_HFN_LSB, 1), M_UINT (PRR_AdditionsR5_t, HFN_LSb, 7), - M_NEXT_EXIST_OR_NULL(PRR_AdditionsR5_t, Exist_AdditionsR6, 1), + M_NEXT_EXIST_OR_NULL_LH(PRR_AdditionsR5_t, Exist_AdditionsR6, 1), M_TYPE (PRR_AdditionsR5_t, AdditionsR6, PRR_AdditionsR6_t), CSN_DESCR_END (PRR_AdditionsR5_t) diff --git a/tests/rlcmac/RLCMACTest.err b/tests/rlcmac/RLCMACTest.err index fc2889f..2ab0fb8 100644 --- a/tests/rlcmac/RLCMACTest.err +++ b/tests/rlcmac/RLCMACTest.err @@ -39,7 +39,7 @@ DCSN1 INFO csnStreamEncoder (type: Pkt Resource Req (5)): PayloadType = 1 | spare = 0 | R = 0 | MESSAGE_TYPE = 5 | Exist_ACCESS_TYPE = 1 | ACCESS_TYPE = 0 | : ID | u.TLLI = 1 | u.TLLI = 4180140003 | : End ID | Exist_MS_Radio_Access_capability2 = 1 | : MS_Radio_Access_capability2 | MS_RA_capability_value { | u.Content = 7 | RF_Power_Capability = 4 | Exist_A5_bits = 0 | ES_IND = 1 | PS = 1 | VGCS = 0 | VBS = 0 | Exist_Multislot_capability = 1 | : Multislot_capability | Exist_HSCSD_multislot_class = 0 | Exist_GPRS_multislot_class = 1 | GPRS_multislot_class = 12 | GPRS_Extended_Dynamic_Allocation_Capability = 1 | Exist_SM = 0 | Exist_ECSD_multislot_class = 0 | Exist_EGPRS_multislot_class = 1 | EGPRS_multislot_class = 12 | EGPRS_Extended_Dynamic_Allocation_Capability = 1 | Exist_DTM_GPRS_multislot_class = 0 | : End Multislot_capability | Exist_Eight_PSK_Power_Capability = 1 | Eight_PSK_Power_Capability = 2 | COMPACT_Interference_Measurement_Capability = 0 | Revision_Level_Indicator = 1 | UMTS_FDD_Radio_Access_Technology_Capability = 1 | UMTS_384_TDD_Radio_Access_Technology_Capability = 0 | CDMA2000_Radio_Access_Technology_Capability = 0 | UMTS_128_TDD_Radio_Access_Technology_Capability = 0 | GERAN_Feature_Package_1 = 1 | Exist_Extended_DTM_multislot_class = 0 | Modulation_based_multislot_class_support = 0 | Exist_HighMultislotCapability = 0 | Exist_GERAN_lu_ModeCapability = 0 | GMSK_MultislotPowerProfile = 0 | EightPSK_MultislotProfile = 0 | MultipleTBF_Capability = 0 | DownlinkAdvancedReceiverPerformance = 1 | ExtendedRLC_MAC_ControlMessageSegmentionsCapability = 1 | DTM_EnhancementsCapability = 0 | Exist_DTM_GPRS_HighMultislotClass = 0 | PS_HandoverCapability = 0 | DTM_Handover_Capability = 0 | Exist_DownlinkDualCarrierCapability_r7 = 0 | FlexibleTimeslotAssignment = 0 | GAN_PS_HandoverCapability = 0 | RLC_Non_persistentMode = 0 | ReducedLatencyCapability = 0 | UplinkEGPRS2 = 0 | DownlinkEGPRS2 = 0 | EUTRA_FDD_Support = 0 | EUTRA_TDD_Support = 0 | GERAN_To_EUTRAN_supportInGERAN_PTM = 0 | PriorityBasedReselectionSupport = 1 | u.Content length = 67 | MS_RA_capability_value } | : End MS_Radio_Access_capability2 | : Channel_Request_Description | PEAK_THROUGHPUT_CLASS = 6 | RADIO_PRIORITY = 3 | RLC_MODE = 0 | LLC_PDU_TYPE = 1 | RLC_OCTET_COUNT = 84 | : End Channel_Request_Description | Exist_CHANGE_MARK = 0 | C_VALUE = 14 | Exist_SIGN_VAR = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | Exist_AdditionsR99 = 1 | : AdditionsR99 | Exist_EGPRS_BEP_LinkQualityMeasurements = 0 | Exist_EGPRS_TimeslotLinkQualityMeasurements = 0 | Exist_PFI = 0 | MS_RAC_AdditionalInformationAvailable = 0 | RetransmissionOfPRR = 0 | Exist_AdditionsR5 = 0 | : End AdditionsR99 | Padding = 43| DCSN1 INFO csnStreamDecoder (type: Pkt Resource Req (5)): PayloadType = 1 | spare = 0 | R = 0 | MESSAGE_TYPE = 5 | Exist_ACCESS_TYPE = 1 | ACCESS_TYPE = 2 | : ID | Choice PacketResourceRequestID = 1 | u.TLLI = 0xe1c5d364 | : End ID | Exist_MS_Radio_Access_capability2 = 1 | : MS_Radio_Access_capability2 | MS_RA_capability_value { | Choice MS_RA_capability_value_Choice = 7 | u.Content length = 46 | offset = 1 | RF_Power_Capability = 4 | Exist_A5_bits = 1 | A5_bits = 80 | ES_IND = 1 | PS = 1 | VGCS = 0 | VBS = 0 | Exist_Multislot_capability = 1 | : Multislot_capability | Exist_HSCSD_multislot_class = 0 | Exist_GPRS_multislot_class = 1 | GPRS_multislot_class = 12 | GPRS_Extended_Dynamic_Allocation_Capability = 1 | Exist_SM = 0 | Exist_ECSD_multislot_class = 0 | Exist_EGPRS_multislot_class = 1 | EGPRS_multislot_class = 12 | EGPRS_Extended_Dynamic_Allocation_Capability = 1 | Exist_DTM_GPRS_multislot_class = 0 | : End Multislot_capability | Exist_Eight_PSK_Power_Capability = 1 | Eight_PSK_Power_Capability = 2 | COMPACT_Interference_Measurement_Capability = 0 | Revision_Level_Indicator = 1 | UMTS_FDD_Radio_Access_Technology_Capability = 1 | UMTS_384_TDD_Radio_Access_Technology_Capability = 0 | CDMA2000_Radio_Access_Technology_Capability = 0 | UMTS_128_TDD_Radio_Access_Technology_Capability = 1 | GERAN_Feature_Package_1 = 1 | Exist_Extended_DTM_multislot_class = 0 | Modulation_based_multislot_class_support = 0 | GMSK_MultislotPowerProfile = NULL | EightPSK_MultislotProfile = NULL | MultipleTBF_Capability = NULL | DownlinkAdvancedReceiverPerformance = NULL | ExtendedRLC_MAC_ControlMessageSegmentionsCapability = NULL | DTM_EnhancementsCapability = NULL | PS_HandoverCapability = NULL | DTM_Handover_Capability = NULL | FlexibleTimeslotAssignment = NULL | GAN_PS_HandoverCapability = NULL | RLC_Non_persistentMode = NULL | ReducedLatencyCapability = NULL | UplinkEGPRS2 = NULL | DownlinkEGPRS2 = NULL | EUTRA_FDD_Support = NULL | EUTRA_TDD_Support = NULL | GERAN_To_EUTRAN_supportInGERAN_PTM = NULL | PriorityBasedReselectionSupport = NULL | MS_RA_capability_value } | : End MS_Radio_Access_capability2 | : Channel_Request_Description | PEAK_THROUGHPUT_CLASS = 6 | RADIO_PRIORITY = 0 | RLC_MODE = 0 | LLC_PDU_TYPE = 1 | RLC_OCTET_COUNT = 20 | : End Channel_Request_Description | Exist_CHANGE_MARK = 0 | C_VALUE = 0 | Exist_SIGN_VAR = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | Exist_AdditionsR99 = 1 | : AdditionsR99 | Exist_EGPRS_BEP_LinkQualityMeasurements = 0 | Exist_EGPRS_TimeslotLinkQualityMeasurements = 0 | Exist_PFI = 0 | MS_RAC_AdditionalInformationAvailable = 0 | RetransmissionOfPRR = 0 | Exist_AdditionsR5 = 0 | : End AdditionsR99 | Padding = 11|43|43|43| DCSN1 INFO csnStreamEncoder (type: Pkt Resource Req (5)): PayloadType = 1 | spare = 0 | R = 0 | MESSAGE_TYPE = 5 | Exist_ACCESS_TYPE = 1 | ACCESS_TYPE = 2 | : ID | u.TLLI = 1 | u.TLLI = 3787838308 | : End ID | Exist_MS_Radio_Access_capability2 = 1 | : MS_Radio_Access_capability2 | MS_RA_capability_value { | u.Content = 7 | RF_Power_Capability = 4 | Exist_A5_bits = 1 | A5_bits = 80 | ES_IND = 1 | PS = 1 | VGCS = 0 | VBS = 0 | Exist_Multislot_capability = 1 | : Multislot_capability | Exist_HSCSD_multislot_class = 0 | Exist_GPRS_multislot_class = 1 | GPRS_multislot_class = 12 | GPRS_Extended_Dynamic_Allocation_Capability = 1 | Exist_SM = 0 | Exist_ECSD_multislot_class = 0 | Exist_EGPRS_multislot_class = 1 | EGPRS_multislot_class = 12 | EGPRS_Extended_Dynamic_Allocation_Capability = 1 | Exist_DTM_GPRS_multislot_class = 0 | : End Multislot_capability | Exist_Eight_PSK_Power_Capability = 1 | Eight_PSK_Power_Capability = 2 | COMPACT_Interference_Measurement_Capability = 0 | Revision_Level_Indicator = 1 | UMTS_FDD_Radio_Access_Technology_Capability = 1 | UMTS_384_TDD_Radio_Access_Technology_Capability = 0 | CDMA2000_Radio_Access_Technology_Capability = 0 | UMTS_128_TDD_Radio_Access_Technology_Capability = 1 | GERAN_Feature_Package_1 = 1 | Exist_Extended_DTM_multislot_class = 0 | Modulation_based_multislot_class_support = 0 | Exist_HighMultislotCapability = 0 | Exist_GERAN_lu_ModeCapability = 0 | GMSK_MultislotPowerProfile = 0 | EightPSK_MultislotProfile = 0 | MultipleTBF_Capability = 0 | DownlinkAdvancedReceiverPerformance = 0 | ExtendedRLC_MAC_ControlMessageSegmentionsCapability = 0 | DTM_EnhancementsCapability = 0 | Exist_DTM_GPRS_HighMultislotClass = 0 | PS_HandoverCapability = 0 | DTM_Handover_Capability = 0 | Exist_DownlinkDualCarrierCapability_r7 = 0 | FlexibleTimeslotAssignment = 0 | GAN_PS_HandoverCapability = 0 | RLC_Non_persistentMode = 0 | ReducedLatencyCapability = 0 | UplinkEGPRS2 = 0 | DownlinkEGPRS2 = 0 | EUTRA_FDD_Support = 0 | EUTRA_TDD_Support = 0 | GERAN_To_EUTRAN_supportInGERAN_PTM = 0 | PriorityBasedReselectionSupport = 0 | u.Content length = 74 | MS_RA_capability_value } | : End MS_Radio_Access_capability2 | : Channel_Request_Description | PEAK_THROUGHPUT_CLASS = 6 | RADIO_PRIORITY = 0 | RLC_MODE = 0 | LLC_PDU_TYPE = 1 | RLC_OCTET_COUNT = 20 | : End Channel_Request_Description | Exist_CHANGE_MARK = 0 | C_VALUE = 0 | Exist_SIGN_VAR = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | Exist_AdditionsR99 = 1 | : AdditionsR99 | Exist_EGPRS_BEP_LinkQualityMeasurements = 0 | Exist_EGPRS_TimeslotLinkQualityMeasurements = 0 | Exist_PFI = 0 | MS_RAC_AdditionalInformationAvailable = 0 | RetransmissionOfPRR = 0 | Exist_AdditionsR5 = 0 | : End AdditionsR99 | Padding = -DCSN1 INFO csnStreamDecoder (type: Pkt Resource Req (5)): PayloadType = 1 | spare = 0 | R = 0 | MESSAGE_TYPE = 5 | Exist_ACCESS_TYPE = 1 | ACCESS_TYPE = 3 | : ID | Choice PacketResourceRequestID = 1 | u.TLLI = 0x96cb3568 | : End ID | Exist_MS_Radio_Access_capability2 = 1 | : MS_Radio_Access_capability2 | MS_RA_capability_value { | Choice MS_RA_capability_value_Choice = 7 | u.Content length = 50 | offset = 1 | RF_Power_Capability = 4 | Exist_A5_bits = 1 | A5_bits = 80 | ES_IND = 1 | PS = 1 | VGCS = 0 | VBS = 0 | Exist_Multislot_capability = 1 | : Multislot_capability | Exist_HSCSD_multislot_class = 0 | Exist_GPRS_multislot_class = 1 | GPRS_multislot_class = 11 | GPRS_Extended_Dynamic_Allocation_Capability = 1 | Exist_SM = 1 | SMS_VALUE = 2 | SM_VALUE = 2 | Exist_ECSD_multislot_class = 0 | Exist_EGPRS_multislot_class = 1 | EGPRS_multislot_class = 11 | EGPRS_Extended_Dynamic_Allocation_Capability = 1 | Exist_DTM_GPRS_multislot_class = 0 | : End Multislot_capability | Exist_Eight_PSK_Power_Capability = 1 | Eight_PSK_Power_Capability = 2 | COMPACT_Interference_Measurement_Capability = 0 | Revision_Level_Indicator = 1 | UMTS_FDD_Radio_Access_Technology_Capability = 0 | UMTS_384_TDD_Radio_Access_Technology_Capability = 0 | CDMA2000_Radio_Access_Technology_Capability = 0 | UMTS_128_TDD_Radio_Access_Technology_Capability = NULL | GERAN_Feature_Package_1 = NULL | Modulation_based_multislot_class_support = NULL | GMSK_MultislotPowerProfile = NULL | EightPSK_MultislotProfile = NULL | MultipleTBF_Capability = NULL | DownlinkAdvancedReceiverPerformance = NULL | ExtendedRLC_MAC_ControlMessageSegmentionsCapability = NULL | DTM_EnhancementsCapability = NULL | PS_HandoverCapability = NULL | DTM_Handover_Capability = NULL | FlexibleTimeslotAssignment = NULL | GAN_PS_HandoverCapability = NULL | RLC_Non_persistentMode = NULL | ReducedLatencyCapability = NULL | UplinkEGPRS2 = NULL | DownlinkEGPRS2 = NULL | EUTRA_FDD_Support = NULL | EUTRA_TDD_Support = NULL | GERAN_To_EUTRAN_supportInGERAN_PTM = NULL | PriorityBasedReselectionSupport = NULL | MS_RA_capability_value } | : End MS_Radio_Access_capability2 | : Channel_Request_Description | PEAK_THROUGHPUT_CLASS = 9 | RADIO_PRIORITY = 0 | RLC_MODE = 0 | LLC_PDU_TYPE = 1 | RLC_OCTET_COUNT = 39 | : End Channel_Request_Description | Exist_CHANGE_MARK = 0 | C_VALUE = 19 | Exist_SIGN_VAR = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | Exist_AdditionsR99 = 1 | : AdditionsR99 | Exist_EGPRS_BEP_LinkQualityMeasurements = 0 | Exist_EGPRS_TimeslotLinkQualityMeasurements = 0 | Exist_PFI = 0 | MS_RAC_AdditionalInformationAvailable = 0 | RetransmissionOfPRR = 0 | Exist_AdditionsR5 = 1 | : AdditionsR5 | Exist_Iu_Mode_ChRequestDesk = 0 | Exist_HFN_LSB = 0 | Exist_AdditionsR6 = 1 | : AdditionsR6 | Exist_Ext_Channel_Request_desc = 0 | Exist_AdditionsR7 = 1 | : AdditionsR7 | EARLY_TBF_ESTABLISHMENT = 0 | Exist_EGPRS_BEP_LinkQualityMeasurements_type2 = 1 | : EGPRS_BEP_LinkQualityMeasurements_type2 | Exist_GMSK_MEAN_BEP = 1 | GMSK_MEAN_BEP = 5 | GMSK_CV_BEP = 3 | Exist_8PSK_MEAN_BEP = 0 | p8PSK_CV_BEP = 2 | Exist_QPSK_MEAN_BEP = 1 | DCSN1 ERROR csnStreamDecoder: error NEED_MORE BITS TO UNPACK (-5) at QPSK_MEAN_BEP (idx 181): End EGPRS_BEP_LinkQualityMeasurements_type2 | : End AdditionsR7 | : End AdditionsR6 | : End AdditionsR5 | : End AdditionsR99 | +DCSN1 INFO csnStreamDecoder (type: Pkt Resource Req (5)): PayloadType = 1 | spare = 0 | R = 0 | MESSAGE_TYPE = 5 | Exist_ACCESS_TYPE = 1 | ACCESS_TYPE = 3 | : ID | Choice PacketResourceRequestID = 1 | u.TLLI = 0x96cb3568 | : End ID | Exist_MS_Radio_Access_capability2 = 1 | : MS_Radio_Access_capability2 | MS_RA_capability_value { | Choice MS_RA_capability_value_Choice = 7 | u.Content length = 50 | offset = 1 | RF_Power_Capability = 4 | Exist_A5_bits = 1 | A5_bits = 80 | ES_IND = 1 | PS = 1 | VGCS = 0 | VBS = 0 | Exist_Multislot_capability = 1 | : Multislot_capability | Exist_HSCSD_multislot_class = 0 | Exist_GPRS_multislot_class = 1 | GPRS_multislot_class = 11 | GPRS_Extended_Dynamic_Allocation_Capability = 1 | Exist_SM = 1 | SMS_VALUE = 2 | SM_VALUE = 2 | Exist_ECSD_multislot_class = 0 | Exist_EGPRS_multislot_class = 1 | EGPRS_multislot_class = 11 | EGPRS_Extended_Dynamic_Allocation_Capability = 1 | Exist_DTM_GPRS_multislot_class = 0 | : End Multislot_capability | Exist_Eight_PSK_Power_Capability = 1 | Eight_PSK_Power_Capability = 2 | COMPACT_Interference_Measurement_Capability = 0 | Revision_Level_Indicator = 1 | UMTS_FDD_Radio_Access_Technology_Capability = 0 | UMTS_384_TDD_Radio_Access_Technology_Capability = 0 | CDMA2000_Radio_Access_Technology_Capability = 0 | UMTS_128_TDD_Radio_Access_Technology_Capability = NULL | GERAN_Feature_Package_1 = NULL | Modulation_based_multislot_class_support = NULL | GMSK_MultislotPowerProfile = NULL | EightPSK_MultislotProfile = NULL | MultipleTBF_Capability = NULL | DownlinkAdvancedReceiverPerformance = NULL | ExtendedRLC_MAC_ControlMessageSegmentionsCapability = NULL | DTM_EnhancementsCapability = NULL | PS_HandoverCapability = NULL | DTM_Handover_Capability = NULL | FlexibleTimeslotAssignment = NULL | GAN_PS_HandoverCapability = NULL | RLC_Non_persistentMode = NULL | ReducedLatencyCapability = NULL | UplinkEGPRS2 = NULL | DownlinkEGPRS2 = NULL | EUTRA_FDD_Support = NULL | EUTRA_TDD_Support = NULL | GERAN_To_EUTRAN_supportInGERAN_PTM = NULL | PriorityBasedReselectionSupport = NULL | MS_RA_capability_value } | : End MS_Radio_Access_capability2 | : Channel_Request_Description | PEAK_THROUGHPUT_CLASS = 9 | RADIO_PRIORITY = 0 | RLC_MODE = 0 | LLC_PDU_TYPE = 1 | RLC_OCTET_COUNT = 39 | : End Channel_Request_Description | Exist_CHANGE_MARK = 0 | C_VALUE = 19 | Exist_SIGN_VAR = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | Exist_AdditionsR99 = 1 | : AdditionsR99 | Exist_EGPRS_BEP_LinkQualityMeasurements = 0 | Exist_EGPRS_TimeslotLinkQualityMeasurements = 0 | Exist_PFI = 0 | MS_RAC_AdditionalInformationAvailable = 0 | RetransmissionOfPRR = 0 | Exist_AdditionsR5 = 1 | : AdditionsR5 | Exist_Iu_Mode_ChRequestDesk = 0 | Exist_HFN_LSB = 0 | Exist_AdditionsR6 = 0 | : End AdditionsR5 | : End AdditionsR99 | Padding = 5|101|-22| DCSN1 INFO csnStreamEncoder (type: Pkt Resource Req (5)): PayloadType = 1 | spare = 0 | R = 0 | MESSAGE_TYPE = 5 | Exist_ACCESS_TYPE = 1 | ACCESS_TYPE = 3 | : ID | u.TLLI = 1 | u.TLLI = 2529899880 | : End ID | Exist_MS_Radio_Access_capability2 = 1 | : MS_Radio_Access_capability2 | MS_RA_capability_value { | u.Content = 7 | RF_Power_Capability = 4 | Exist_A5_bits = 1 | A5_bits = 80 | ES_IND = 1 | PS = 1 | VGCS = 0 | VBS = 0 | Exist_Multislot_capability = 1 | : Multislot_capability | Exist_HSCSD_multislot_class = 0 | Exist_GPRS_multislot_class = 1 | GPRS_multislot_class = 11 | GPRS_Extended_Dynamic_Allocation_Capability = 1 | Exist_SM = 1 | SMS_VALUE = 2 | SM_VALUE = 2 | Exist_ECSD_multislot_class = 0 | Exist_EGPRS_multislot_class = 1 | EGPRS_multislot_class = 11 | EGPRS_Extended_Dynamic_Allocation_Capability = 1 | Exist_DTM_GPRS_multislot_class = 0 | : End Multislot_capability | Exist_Eight_PSK_Power_Capability = 1 | Eight_PSK_Power_Capability = 2 | COMPACT_Interference_Measurement_Capability = 0 | Revision_Level_Indicator = 1 | UMTS_FDD_Radio_Access_Technology_Capability = 0 | UMTS_384_TDD_Radio_Access_Technology_Capability = 0 | CDMA2000_Radio_Access_Technology_Capability = 0 | UMTS_128_TDD_Radio_Access_Technology_Capability = 0 | GERAN_Feature_Package_1 = 0 | Exist_Extended_DTM_multislot_class = 0 | Modulation_based_multislot_class_support = 0 | Exist_HighMultislotCapability = 0 | Exist_GERAN_lu_ModeCapability = 0 | GMSK_MultislotPowerProfile = 0 | EightPSK_MultislotProfile = 0 | MultipleTBF_Capability = 0 | DownlinkAdvancedReceiverPerformance = 0 | ExtendedRLC_MAC_ControlMessageSegmentionsCapability = 0 | DTM_EnhancementsCapability = 0 | Exist_DTM_GPRS_HighMultislotClass = 0 | PS_HandoverCapability = 0 | DTM_Handover_Capability = 0 | Exist_DownlinkDualCarrierCapability_r7 = 0 | FlexibleTimeslotAssignment = 0 | GAN_PS_HandoverCapability = 0 | RLC_Non_persistentMode = 0 | ReducedLatencyCapability = 0 | UplinkEGPRS2 = 0 | DownlinkEGPRS2 = 0 | EUTRA_FDD_Support = 0 | EUTRA_TDD_Support = 0 | GERAN_To_EUTRAN_supportInGERAN_PTM = 0 | PriorityBasedReselectionSupport = 0 | u.Content length = 82 | MS_RA_capability_value } | : End MS_Radio_Access_capability2 | : Channel_Request_Description | PEAK_THROUGHPUT_CLASS = 9 | RADIO_PRIORITY = 0 | RLC_MODE = 0 | LLC_PDU_TYPE = 1 | RLC_OCTET_COUNT = 39 | : End Channel_Request_Description | Exist_CHANGE_MARK = 0 | C_VALUE = 19 | Exist_SIGN_VAR = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | DCSN1 ERROR csnStreamEncoder: error NEED_MORE BITS TO UNPACK (-5) at (idx 184) DRLCMACDATA ERROR Failed to encode an Uplink block: not enough bits in the output buffer (rc=-5) DCSN1 INFO csnStreamDecoder (type: EGPRS Pkt DL ACK/NACK (8)): PayloadType = 1 | spare = 0 | R = 0 | MESSAGE_TYPE = 8 | DOWNLINK_TFI = 0 | MS_OUT_OF_MEMORY = 0 | Exist_EGPRS_ChannelQualityReport = 1 | : EGPRS_ChannelQualityReport | : EGPRS_BEP_LinkQualityMeasurements | Exist_MEAN_CV_BEP_GMSK = 0 | Exist_MEAN_CV_BEP_8PSK = 1 | MEAN_BEP_8PSK = 31 | CV_BEP_8PSK = 7 | : End EGPRS_BEP_LinkQualityMeasurements | C_VALUE = 58 | : EGPRS_TimeslotLinkQualityMeasurements | Exist_BEP_MEASUREMENTS = 0 | Exist_INTERFERENCE_MEASUREMENTS = 0 | : End EGPRS_TimeslotLinkQualityMeasurements | : End EGPRS_ChannelQualityReport | Exist_ChannelRequestDescription = 1 | : ChannelRequestDescription | PEAK_THROUGHPUT_CLASS = 6 | RADIO_PRIORITY = 0 | RLC_MODE = 0 | LLC_PDU_TYPE = 1 | RLC_OCTET_COUNT = 62 | : End ChannelRequestDescription | Exist_PFI = 0 | Exist_ExtensionBits = 0 | : EGPRS_AckNack | Desc = 0 | : Desc | FINAL_ACK_INDICATION = 0 | BEGINNING_OF_WINDOW = 1 | END_OF_WINDOW = 1 | STARTING_SEQUENCE_NUMBER = 1187 | Exist_CRBB = 0 | URBB = 127 | URBB = 255 | URBB = 255 | URBB = 238 | URBB = 0 | URBB = 0 | URBB = 0 | URBB = 0 | URBB = 0 | URBB = 0 | URBB = 0 | URBB = 0 | URBB = 0 | : End Desc | : End EGPRS_AckNack | Padding = diff --git a/tests/rlcmac/RLCMACTest.ok b/tests/rlcmac/RLCMACTest.ok index 54b5e31..0732889 100644 --- a/tests/rlcmac/RLCMACTest.ok +++ b/tests/rlcmac/RLCMACTest.ok @@ -164,7 +164,7 @@ vector1 == vector2 : FALSE vector1 = 4017e5b2cd5a2eca68655e44aec84880139300412b2b2b =========Start DECODE=========== -+++++++++Finish DECODE (-5)++++++++++ ++++++++++Finish DECODE (0)++++++++++ =========Start ENCODE============= +++++++++Finish ENCODE (-5)+++++++++++ vector1 = 40 17 e5 b2 cd 5a 2e ca 68 65 5e 44 ae c8 48 80 13 93 00 41 2b 2b 2b -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22524 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I3db49613bf935067cd457f87b6ce28806b718778 Gerrit-Change-Number: 22524 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 20:54:14 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 28 Jan 2021 20:54:14 +0000 Subject: Change in docker-playground[master]: sgsn: change configuration to the new NS2 In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22505 ) Change subject: sgsn: change configuration to the new NS2 ...................................................................... Patch Set 4: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22505 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I65fb4e52d22617cf8488d8ab77c970f84995560d Gerrit-Change-Number: 22505 Gerrit-PatchSet: 4 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Thu, 28 Jan 2021 20:54:14 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 20:55:28 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 28 Jan 2021 20:55:28 +0000 Subject: Change in docker-playground[master]: sgsn: change configuration to the new NS2 In-Reply-To: References: Message-ID: Hello laforge, daniel, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/docker-playground/+/22505 to look at the new patch set (#5). Change subject: sgsn: change configuration to the new NS2 ...................................................................... sgsn: change configuration to the new NS2 Change the whole vty configuration for NS to be more flexible and support more setups. Old configurations are invalid. For further information see: https://osmocom.org/projects/libosmocore/wiki/Network_service_(NS) Depends-on: Ie9306ab4d4738c2c57a69987086e22771b30657e (osmo-sgsn) Change-Id: I65fb4e52d22617cf8488d8ab77c970f84995560d --- M osmo-sgsn-master/osmo-sgsn.cfg M ttcn3-sgsn-test/jenkins.sh M ttcn3-sgsn-test/osmo-sgsn.cfg A ttcn3-sgsn-test/osmo-sgsn.latest.cfg 4 files changed, 110 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/05/22505/5 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22505 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I65fb4e52d22617cf8488d8ab77c970f84995560d Gerrit-Change-Number: 22505 Gerrit-PatchSet: 5 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 20:55:58 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 28 Jan 2021 20:55:58 +0000 Subject: Change in docker-playground[master]: sgsn: change configuration to the new NS2 In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22505 ) Change subject: sgsn: change configuration to the new NS2 ...................................................................... Patch Set 5: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22505 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I65fb4e52d22617cf8488d8ab77c970f84995560d Gerrit-Change-Number: 22505 Gerrit-PatchSet: 5 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Thu, 28 Jan 2021 20:55:58 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 20:56:16 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 28 Jan 2021 20:56:16 +0000 Subject: Change in docker-playground[master]: sgsn: change configuration to the new NS2 In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22505 ) Change subject: sgsn: change configuration to the new NS2 ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22505 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I65fb4e52d22617cf8488d8ab77c970f84995560d Gerrit-Change-Number: 22505 Gerrit-PatchSet: 5 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Thu, 28 Jan 2021 20:56:16 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 20:58:16 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 28 Jan 2021 20:58:16 +0000 Subject: Change in osmo-sgsn[master]: sgsn: migrate to the new gprs_ns2_vty configuration In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22501 ) Change subject: sgsn: migrate to the new gprs_ns2_vty configuration ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22501 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ie9306ab4d4738c2c57a69987086e22771b30657e Gerrit-Change-Number: 22501 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 28 Jan 2021 20:58:16 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 20:59:13 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 28 Jan 2021 20:59:13 +0000 Subject: Change in osmo-sgsn[master]: manuals/gbproxy: Update configuration chapter In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22493 ) Change subject: manuals/gbproxy: Update configuration chapter ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22493 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I01f8d47f9fa384a2528ddf2e6c936ff28d11409e Gerrit-Change-Number: 22493 Gerrit-PatchSet: 3 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 28 Jan 2021 20:59:13 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 21:00:12 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 28 Jan 2021 21:00:12 +0000 Subject: Change in libosmocore[master]: gprs_ns2: drop gprs_ns2_vty, rename vty2 -> vty In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22514 ) Change subject: gprs_ns2: drop gprs_ns2_vty, rename vty2 -> vty ...................................................................... gprs_ns2: drop gprs_ns2_vty, rename vty2 -> vty Drop the vty(1) code and replace it with vty2. The vty(1) was only used as intermediate to not develop a vty while developing a new code base behind. Users of gprs_ns2_ has to use the new vty code. API change which must be synchronized with osmo-pcu, osmo-gbproxy, osmo-sgsn. Change-Id: Ic2059e75d8ede8e5c29c4fef6be608ed79c8a97c --- M include/osmocom/gprs/gprs_ns2.h M src/gb/Makefile.am M src/gb/gprs_ns2_vty.c D src/gb/gprs_ns2_vty2.c M src/gb/libosmogb.map M utils/osmo-ns-dummy.c 6 files changed, 1,309 insertions(+), 2,317 deletions(-) Approvals: Jenkins Builder: Verified daniel: Looks good to me, approved diff --git a/include/osmocom/gprs/gprs_ns2.h b/include/osmocom/gprs/gprs_ns2.h index df682db..24f45c9 100644 --- a/include/osmocom/gprs/gprs_ns2.h +++ b/include/osmocom/gprs/gprs_ns2.h @@ -261,11 +261,6 @@ const char *gprs_ns2_nsvc_state_name(struct gprs_ns2_vc *nsvc); /* vty */ -int gprs_ns2_vty_init(struct gprs_ns2_inst *nsi, - const struct osmo_sockaddr_str *default_bind); -int gprs_ns2_vty_create(); - -/* vty 2 */ -int gprs_ns2_vty2_init(struct gprs_ns2_inst *nsi); +int gprs_ns2_vty_init(struct gprs_ns2_inst *nsi); /*! @} */ diff --git a/src/gb/Makefile.am b/src/gb/Makefile.am index 031971b..d0db814 100644 --- a/src/gb/Makefile.am +++ b/src/gb/Makefile.am @@ -25,7 +25,7 @@ gprs_bssgp.c gprs_bssgp_util.c gprs_bssgp_vty.c gprs_bssgp_rim.c \ gprs_bssgp_bss.c \ gprs_ns2.c gprs_ns2_udp.c gprs_ns2_frgre.c gprs_ns2_fr.c gprs_ns2_vc_fsm.c gprs_ns2_sns.c \ - gprs_ns2_message.c gprs_ns2_vty.c gprs_ns2_vty2.c \ + gprs_ns2_message.c gprs_ns2_vty.c \ gprs_bssgp2.c bssgp_bvc_fsm.c \ common_vty.c frame_relay.c diff --git a/src/gb/gprs_ns2_vty.c b/src/gb/gprs_ns2_vty.c index f803655..b6ae5b4 100644 --- a/src/gb/gprs_ns2_vty.c +++ b/src/gb/gprs_ns2_vty.c @@ -1,9 +1,7 @@ /*! \file gprs_ns2_vty.c * VTY interface for our GPRS Networks Service (NS) implementation. */ -/* (C) 2009-2014 by Harald Welte - * (C) 2016-2017 by sysmocom - s.f.m.c. GmbH - * (C) 2020 by sysmocom - s.f.m.c. GmbH +/* (C) 2020 by sysmocom - s.f.m.c. GmbH * Author: Alexander Couzens * * All Rights Reserved @@ -33,67 +31,44 @@ #include #include -#include #include #include -#include -#include -#include -#include -#include #include +#include +#include +#include +#include +#include #include #include #include #include -#include #include #include -#include #include +#include +#include #include "gprs_ns2_internal.h" #define SHOW_NS_STR "Display information about the NS protocol\n" - -struct ns2_vty_priv { - /* global listen */ - struct osmo_sockaddr_str udp; - struct osmo_sockaddr_str frgreaddr; - int dscp; - enum gprs_ns2_vc_mode vc_mode; - bool frgre; - - struct llist_head vtyvc; -}; - -struct ns2_vty_vc { - struct llist_head list; - - struct osmo_sockaddr_str remote; - enum gprs_ns2_ll ll; - - /* old vty code doesnt support multiple NSVCI per NSEI */ - uint16_t nsei; - uint16_t nsvci; - uint16_t frdlci; - - struct { - enum osmo_fr_role role; - } fr; - - char netif[IF_NAMESIZE]; - - bool remote_end_is_sgsn; - bool configured; -}; +#define NSVCI_STR "NS Virtual Connection ID (NS-VCI)\n" +#define DLCI_STR "Data Link connection identifier\n" static struct gprs_ns2_inst *vty_nsi = NULL; -static struct ns2_vty_priv priv; static struct osmo_fr_network *vty_fr_network = NULL; +static struct llist_head binds; -/* FIXME: this should go to some common file as it is copied - * in vty_interface.c of the BSC */ +struct vty_bind { + struct llist_head list; + const char *name; + enum gprs_ns2_ll ll; + int dscp; + bool accept_ipaccess; + bool accept_sns; +}; + +/* TODO: this should into osmo timer */ static const struct value_string gprs_ns_timer_strs[] = { { 0, "tns-block" }, { 1, "tns-block-retries" }, @@ -108,28 +83,51 @@ { 0, NULL } }; -static void log_set_nse_filter(struct log_target *target, - struct gprs_ns2_nse *nse) +const struct value_string vty_fr_role_names[] = { + { FR_ROLE_USER_EQUIPMENT, "fr" }, + { FR_ROLE_NETWORK_EQUIPMENT, "frnet" }, + { 0, NULL } +}; + +const struct value_string vty_ll_names[] = { + { GPRS_NS2_LL_FR, "fr" }, + { GPRS_NS2_LL_FR_GRE, "frgre" }, + { GPRS_NS2_LL_UDP, "udp" }, + { 0, NULL } +}; + +static struct vty_bind *vty_bind_by_name(const char *name) { - if (nse) { - target->filter_map |= (1 << LOG_FLT_GB_NSE); - target->filter_data[LOG_FLT_GB_NSE] = nse; - } else if (target->filter_data[LOG_FLT_GB_NSE]) { - target->filter_map = ~(1 << LOG_FLT_GB_NSE); - target->filter_data[LOG_FLT_GB_NSE] = NULL; + struct vty_bind *vbind; + llist_for_each_entry(vbind, &binds, list) { + if (!strncmp(vbind->name, name, strlen(vbind->name))) + return vbind; } + return NULL; } -static void log_set_nsvc_filter(struct log_target *target, - struct gprs_ns2_vc *nsvc) +static struct vty_bind *vty_bind_alloc(const char *name) { - if (nsvc) { - target->filter_map |= (1 << LOG_FLT_GB_NSVC); - target->filter_data[LOG_FLT_GB_NSVC] = nsvc; - } else if (target->filter_data[LOG_FLT_GB_NSVC]) { - target->filter_map = ~(1 << LOG_FLT_GB_NSVC); - target->filter_data[LOG_FLT_GB_NSVC] = NULL; + struct vty_bind *vbind = talloc_zero(vty_nsi, struct vty_bind); + if (!vbind) + return NULL; + + vbind->name = talloc_strdup(vty_nsi, name); + if (!vbind->name) { + talloc_free(vbind); + return NULL; } + + llist_add(&vbind->list, &binds); + return vbind; +} + +static void vty_bind_free(struct vty_bind *vbind) +{ + if (!vbind) + return; + + llist_del(&vbind->list); } static struct cmd_node ns_node = { @@ -138,130 +136,6 @@ 1, }; -static struct ns2_vty_vc *vtyvc_alloc(uint16_t nsei) { - struct ns2_vty_vc *vtyvc = talloc_zero(vty_nsi, struct ns2_vty_vc); - if (!vtyvc) - return vtyvc; - - vtyvc->nsei = nsei; - - llist_add(&vtyvc->list, &priv.vtyvc); - - return vtyvc; -} - -static void ns2_vc_free(struct ns2_vty_vc *vtyvc) { - if (!vtyvc) - return; - - llist_del(&vtyvc->list); - talloc_free(vtyvc); -} - -static struct ns2_vty_vc *vtyvc_by_nsei(uint16_t nsei, bool alloc_missing) { - struct ns2_vty_vc *vtyvc; - - llist_for_each_entry(vtyvc, &priv.vtyvc, list) { - if (vtyvc->nsei == nsei) - return vtyvc; - } - - if (!alloc_missing) - return NULL; - - vtyvc = vtyvc_alloc(nsei); - if (!vtyvc) - return vtyvc; - - vtyvc->nsei = nsei; - return vtyvc; -} - -static int config_write_ns(struct vty *vty) -{ - struct ns2_vty_vc *vtyvc; - unsigned int i; - struct osmo_sockaddr_str sockstr; - - vty_out(vty, "ns%s", VTY_NEWLINE); - - /* global configuration must be written first, as some of it may be - * relevant when creating the NSE/NSVC later below */ - - vty_out(vty, " encapsulation framerelay-gre enabled %u%s", - priv.frgre ? 1 : 0, VTY_NEWLINE); - - if (priv.frgre) { - if (strlen(priv.frgreaddr.ip)) { - vty_out(vty, " encapsulation framerelay-gre local-ip %s%s", - sockstr.ip, VTY_NEWLINE); - } - } else { - if (strlen(priv.udp.ip)) { - vty_out(vty, " encapsulation udp local-ip %s%s", - priv.udp.ip, VTY_NEWLINE); - } - - if (priv.udp.port) - vty_out(vty, " encapsulation udp local-port %u%s", - priv.udp.port, VTY_NEWLINE); - } - - if (priv.dscp) - vty_out(vty, " encapsulation udp dscp %d%s", - priv.dscp, VTY_NEWLINE); - - vty_out(vty, " encapsulation udp use-reset-block-unblock %s%s", - priv.vc_mode == GPRS_NS2_VC_MODE_BLOCKRESET ? "enabled" : "disabled", VTY_NEWLINE); - - llist_for_each_entry(vtyvc, &priv.vtyvc, list) { - vty_out(vty, " nse %u nsvci %u%s", - vtyvc->nsei, vtyvc->nsvci, VTY_NEWLINE); - - vty_out(vty, " nse %u remote-role %s%s", - vtyvc->nsei, vtyvc->remote_end_is_sgsn ? "sgsn" : "bss", - VTY_NEWLINE); - - switch (vtyvc->ll) { - case GPRS_NS2_LL_UDP: - vty_out(vty, " nse %u encapsulation udp%s", vtyvc->nsei, VTY_NEWLINE); - vty_out(vty, " nse %u remote-ip %s%s", - vtyvc->nsei, - vtyvc->remote.ip, - VTY_NEWLINE); - vty_out(vty, " nse %u remote-port %u%s", - vtyvc->nsei, vtyvc->remote.port, - VTY_NEWLINE); - break; - case GPRS_NS2_LL_FR_GRE: - vty_out(vty, " nse %u encapsulation framerelay-gre%s", - vtyvc->nsei, VTY_NEWLINE); - vty_out(vty, " nse %u remote-ip %s%s", - vtyvc->nsei, - vtyvc->remote.ip, - VTY_NEWLINE); - vty_out(vty, " nse %u fr-dlci %u%s", - vtyvc->nsei, vtyvc->frdlci, - VTY_NEWLINE); - break; - case GPRS_NS2_LL_FR: - vty_out(vty, " nse %u fr %s dlci %u%s", - vtyvc->nsei, vtyvc->netif, vtyvc->frdlci, - VTY_NEWLINE); - break; - default: - break; - } - } - - for (i = 0; i < ARRAY_SIZE(vty_nsi->timeout); i++) - vty_out(vty, " timer %s %u%s", - get_value_string(gprs_ns_timer_strs, i), - vty_nsi->timeout[i], VTY_NEWLINE); - - return CMD_SUCCESS; -} - DEFUN(cfg_ns, cfg_ns_cmd, "ns", "Configure the GPRS Network Service") @@ -270,6 +144,1183 @@ return CMD_SUCCESS; } +DEFUN(cfg_ns_timer, cfg_ns_timer_cmd, + "timer " NS_TIMERS " <0-65535>", + "Network Service Timer\n" + NS_TIMERS_HELP "Timer Value\n") +{ + int idx = get_string_value(gprs_ns_timer_strs, argv[0]); + int val = atoi(argv[1]); + + if (idx < 0 || idx >= ARRAY_SIZE(vty_nsi->timeout)) + return CMD_WARNING; + + vty_nsi->timeout[idx] = val; + + return CMD_SUCCESS; +} + +DEFUN(cfg_ns_nsei, cfg_ns_nsei_cmd, + "nse <0-65535>", + "Persistent NS Entity\n" + "NS Entity ID (NSEI)\n" + ) +{ + struct gprs_ns2_nse *nse; + uint16_t nsei = atoi(argv[0]); + + nse = gprs_ns2_nse_by_nsei(vty_nsi, nsei); + if (!nse) { + nse = gprs_ns2_create_nse(vty_nsi, nsei, GPRS_NS2_LL_UNDEF, GPRS_NS2_DIALECT_UNDEF); + if (!nse) { + vty_out(vty, "Failed to create NSE!%s", VTY_NEWLINE); + return CMD_ERR_INCOMPLETE; + } + nse->persistent = true; + } + + if (!nse->persistent) { + /* TODO: should the dynamic NSE removed? */ + vty_out(vty, "A dynamic NSE with the specified NSEI already exists%s", VTY_NEWLINE); + return CMD_ERR_INCOMPLETE; + } + + vty->node = L_NS_NSE_NODE; + vty->index = nse; + + return CMD_SUCCESS; +} + +DEFUN(cfg_no_ns_nsei, cfg_no_ns_nsei_cmd, + "no nse <0-65535>", + NO_STR + "Delete a Persistent NS Entity\n" + "NS Entity ID (NSEI)\n" + ) +{ + struct gprs_ns2_nse *nse; + uint16_t nsei = atoi(argv[0]); + + nse = gprs_ns2_nse_by_nsei(vty_nsi, nsei); + if (!nse) { + vty_out(vty, "Can not find NS Entity %s%s", argv[0], VTY_NEWLINE); + return CMD_ERR_NOTHING_TODO; + } + + if (!nse->persistent) { + vty_out(vty, "Ignoring non-persistent NS Entity%s", VTY_NEWLINE); + return CMD_WARNING; + } + + vty_out(vty, "Deleting NS Entity %u%s", nse->nsei, VTY_NEWLINE); + gprs_ns2_free_nse(nse); + return CMD_SUCCESS; +} + +/* TODO: add fr/gre */ +DEFUN(cfg_ns_bind, cfg_ns_bind_cmd, + "bind (fr|udp) ID", + "Binding\n" + "Frame Relay\n" "UDP/IP\n" + "a unique identifier for this bind to reference NS-VCs\n" + ) +{ + const char *nstype = argv[0]; + const char *name = argv[1]; + struct vty_bind *vbind; + enum gprs_ns2_ll ll; + int rc; + + rc = get_string_value(vty_ll_names, nstype); + if (rc < 0) + return CMD_WARNING; + ll = (enum gprs_ns2_ll) rc; + + if (!osmo_identifier_valid(name)) { + vty_out(vty, "Invalid ID. The ID should be only alphanumeric.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + vbind = vty_bind_by_name(name); + if (vbind) { + if (vbind->ll != ll) { + vty_out(vty, "A bind with the specified ID already exists with a different type (fr|frgre|udp)!%s", + VTY_NEWLINE); + return CMD_WARNING; + } + } else { + vbind = vty_bind_alloc(name); + if (!vbind) { + vty_out(vty, "Can not create bind - out of memory%s", VTY_NEWLINE); + return CMD_WARNING; + } + vbind->ll = ll; + } + + vty->index = vbind; + vty->node = L_NS_BIND_NODE; + + return CMD_SUCCESS; +} + +DEFUN(cfg_no_ns_bind, cfg_no_ns_bind_cmd, + "no bind ID", + NO_STR + "Delete a binding\n" + "a unique identifier for this bind to reference NS-VCs\n" + ) +{ + struct vty_bind *vbind; + struct gprs_ns2_vc_bind *bind; + const char *name = argv[0]; + + vbind = vty_bind_by_name(name); + if (!vbind) { + vty_out(vty, "bind %s does not exist!%s", name, VTY_NEWLINE); + return CMD_WARNING; + } + vty_bind_free(vbind); + bind = gprs_ns2_bind_by_name(vty_nsi, name); + if (bind) + bind->driver->free_bind(bind); + return CMD_SUCCESS; +} + + +static void config_write_vbind(struct vty *vty, struct vty_bind *vbind) +{ + struct gprs_ns2_vc_bind *bind; + const struct osmo_sockaddr *addr; + struct osmo_sockaddr_str addr_str; + const char *netif, *frrole_str, *llstr; + enum osmo_fr_role frrole; + + llstr = get_value_string_or_null(vty_ll_names, vbind->ll); + if (!llstr) + return; + vty_out(vty, " bind %s %s%s", llstr, vbind->name, VTY_NEWLINE); + + bind = gprs_ns2_bind_by_name(vty_nsi, vbind->name); + switch (vbind->ll) { + case GPRS_NS2_LL_FR: + if (bind) { + netif = gprs_ns2_fr_bind_netif(bind); + if (!netif) + return; + frrole = gprs_ns2_fr_bind_role(bind); + if ((int) frrole == -1) + return; + frrole_str = get_value_string_or_null(vty_fr_role_names, frrole); + if (netif && frrole_str) + vty_out(vty, " fr %s %s%s", netif, frrole_str, VTY_NEWLINE); + } + break; + case GPRS_NS2_LL_UDP: + if (bind) { + addr = gprs_ns2_ip_bind_sockaddr(bind); + if (!osmo_sockaddr_str_from_sockaddr(&addr_str, &addr->u.sas)) { + vty_out(vty, " listen %s %u%s", addr_str.ip, addr_str.port, + VTY_NEWLINE); + } + } + if (vbind->accept_ipaccess) + vty_out(vty, " accept-ipaccess%s", VTY_NEWLINE); + if (vbind->dscp) + vty_out(vty, " dscp %u%s", vbind->dscp, VTY_NEWLINE); + break; + default: + return; + } +} + +static void config_write_nsvc(struct vty *vty, const struct gprs_ns2_vc *nsvc) +{ + const char *netif; + uint16_t dlci; + const struct osmo_sockaddr *addr; + struct osmo_sockaddr_str addr_str; + + switch (nsvc->nse->ll) { + case GPRS_NS2_LL_UNDEF: + break; + case GPRS_NS2_LL_UDP: + switch (nsvc->nse->dialect) { + case GPRS_NS2_DIALECT_IPACCESS: + addr = gprs_ns2_ip_vc_remote(nsvc); + if (!addr) + break; + if (osmo_sockaddr_str_from_sockaddr(&addr_str, &addr->u.sas)) + break; + vty_out(vty, " nsvc ipa %s %s %u nsvci %u%s", + nsvc->bind->name, addr_str.ip, addr_str.port, + nsvc->nsvci, VTY_NEWLINE); + break; + case GPRS_NS2_DIALECT_STATIC_ALIVE: + addr = gprs_ns2_ip_vc_remote(nsvc); + if (!addr) + break; + if (osmo_sockaddr_str_from_sockaddr(&addr_str, &addr->u.sas)) + break; + vty_out(vty, " nsvc udp %s %s %u%s", + nsvc->bind->name, addr_str.ip, addr_str.port, VTY_NEWLINE); + break; + default: + break; + } + break; + case GPRS_NS2_LL_FR: + netif = gprs_ns2_fr_bind_netif(nsvc->bind); + if (!netif) + break; + dlci = gprs_ns2_fr_nsvc_dlci(nsvc); + if (!dlci) + break; + OSMO_ASSERT(nsvc->nsvci_is_valid); + vty_out(vty, " nsvc fr %s dlci %u nsvci %u%s", + netif, dlci, nsvc->nsvci, VTY_NEWLINE); + break; + case GPRS_NS2_LL_FR_GRE: + break; + } +} + +static void _config_write_ns_nse(struct vty *vty, struct gprs_ns2_nse *nse) +{ + struct gprs_ns2_vc *nsvc; + + vty_out(vty, " nse %u%s", nse->nsei, VTY_NEWLINE); + switch (nse->dialect) { + case GPRS_NS2_DIALECT_SNS: + ns2_sns_write_vty(vty, nse); + break; + default: + llist_for_each_entry(nsvc, &nse->nsvc, list) { + config_write_nsvc(vty, nsvc); + } + break; + } +} + +static int config_write_ns(struct vty *vty) +{ + unsigned int i; + + vty_out(vty, "ns%s", VTY_NEWLINE); + + for (i = 0; i < ARRAY_SIZE(vty_nsi->timeout); i++) + vty_out(vty, " timer %s %u%s", + get_value_string(gprs_ns_timer_strs, i), + vty_nsi->timeout[i], VTY_NEWLINE); + + return 0; +} + +static int config_write_ns_nse(struct vty *vty) +{ + struct gprs_ns2_nse *nse; + + llist_for_each_entry(nse, &vty_nsi->nse, list) { + if (!nse->persistent) + continue; + + _config_write_ns_nse(vty, nse); + } + + return 0; +} + +static int config_write_ns_bind(struct vty *vty) +{ + struct vty_bind *vbind; + + llist_for_each_entry(vbind, &binds, list) { + config_write_vbind(vty, vbind); + } + + return 0; +} + +static struct cmd_node ns_bind_node = { + L_NS_BIND_NODE, + "%s(config-ns-bind)# ", + 1, +}; + +DEFUN(cfg_ns_bind_listen, cfg_ns_bind_listen_cmd, + "listen " VTY_IPV46_CMD " <1-65535>", + "Binding\n" + "IPv4 Address\n" "IPv6 Address\n" + "Port\n" + ) +{ + struct vty_bind *vbind = vty->index; + struct gprs_ns2_vc_bind *bind; + + const char *addr_str = argv[0]; + unsigned int port = atoi(argv[1]); + struct osmo_sockaddr_str sockaddr_str; + struct osmo_sockaddr sockaddr; + + if (vbind->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "listen can be only used with UDP bind%s", + VTY_NEWLINE); + return CMD_WARNING; + } + + if (osmo_sockaddr_str_from_str(&sockaddr_str, addr_str, port)) { + vty_out(vty, "Can not parse the Address %s %s%s", argv[0], argv[1], VTY_NEWLINE); + return CMD_WARNING; + } + osmo_sockaddr_str_to_sockaddr(&sockaddr_str, &sockaddr.u.sas); + if (gprs_ns2_ip_bind_by_sockaddr(vty_nsi, &sockaddr)) { + vty_out(vty, "A bind with the specified address already exists!%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (gprs_ns2_ip_bind(vty_nsi, vbind->name, &sockaddr, vbind->dscp, &bind) != 0) { + vty_out(vty, "Failed to create the bind!%s", VTY_NEWLINE); + return CMD_WARNING; + } + + bind->accept_ipaccess = vbind->accept_ipaccess; + bind->accept_sns = vbind->accept_sns; + + return CMD_SUCCESS; +} + +DEFUN(cfg_no_ns_bind_listen, cfg_no_ns_bind_listen_cmd, + "no listen", + NO_STR + "Delete a IP/Port assignment\n" + ) +{ + struct vty_bind *vbind = vty->index; + struct gprs_ns2_vc_bind *bind; + + if (vbind->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "no listen can be only used with UDP bind%s", VTY_NEWLINE); + return CMD_WARNING; + } + + bind = gprs_ns2_bind_by_name(vty_nsi, vbind->name); + if (!bind) + return CMD_ERR_NOTHING_TODO; + + OSMO_ASSERT(bind->ll != GPRS_NS2_LL_UDP); + bind->driver->free_bind(bind); + return CMD_SUCCESS; +} + +DEFUN(cfg_ns_bind_dscp, cfg_ns_bind_dscp_cmd, + "dscp <0-255>", + "Set DSCP/TOS on the UDP socket\n" "DSCP Value\n") +{ + struct vty_bind *vbind = vty->index; + struct gprs_ns2_vc_bind *bind; + uint16_t dscp = atoi(argv[0]); + + if (vbind->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "dscp can be only used with UDP bind%s", + VTY_NEWLINE); + return CMD_WARNING; + } + + vbind->dscp = dscp; + bind = gprs_ns2_bind_by_name(vty_nsi, vbind->name); + if (bind) + gprs_ns2_ip_bind_set_dscp(bind, dscp); + + return CMD_SUCCESS; +} + +DEFUN(cfg_no_ns_bind_dscp, cfg_no_ns_bind_dscp_cmd, + "no dscp", + "Set DSCP/TOS on the UDP socket\n" "DSCP Value\n") +{ + struct vty_bind *vbind = vty->index; + struct gprs_ns2_vc_bind *bind; + uint16_t dscp = 0; + + if (vbind->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "dscp can be only used with UDP bind%s", + VTY_NEWLINE); + return CMD_WARNING; + } + + vbind->dscp = dscp; + bind = gprs_ns2_bind_by_name(vty_nsi, vbind->name); + if (bind) + gprs_ns2_ip_bind_set_dscp(bind, dscp); + + return CMD_SUCCESS; +} + +DEFUN(cfg_ns_bind_ipaccess, cfg_ns_bind_ipaccess_cmd, + "accept-ipaccess", + "Allow to create dynamic NS Entity by NS Reset PDU on UDP (ip.access style)\n" + ) +{ + struct vty_bind *vbind = vty->index; + struct gprs_ns2_vc_bind *bind; + + if (vbind->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "accept-ipaccess can be only used with UDP bind%s", + VTY_NEWLINE); + return CMD_WARNING; + } + + vbind->accept_ipaccess = true; + bind = gprs_ns2_bind_by_name(vty_nsi, vbind->name); + if (bind) + bind->accept_ipaccess = true; + + return CMD_SUCCESS; +} + +DEFUN(cfg_no_ns_bind_ipaccess, cfg_no_ns_bind_ipaccess_cmd, + "no accept-ipaccess", + NO_STR + "Reject NS Reset PDU on UDP (ip.access style)\n" + ) +{ + struct vty_bind *vbind = vty->index; + struct gprs_ns2_vc_bind *bind; + + if (vbind->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "no accept-ipaccess can be only used with UDP bind%s", + VTY_NEWLINE); + return CMD_WARNING; + } + + vbind->accept_ipaccess = false; + bind = gprs_ns2_bind_by_name(vty_nsi, vbind->name); + if (bind) + bind->accept_ipaccess = false; + + return CMD_SUCCESS; +} + + +DEFUN(cfg_ns_bind_fr, cfg_ns_bind_fr_cmd, + "fr NETIF (fr|frnet)", + "frame relay\n" + IFNAME_STR + "fr (user) is used by BSS or SGSN attached to UNI of a FR network\n" + "frnet (network) is used by SGSN if BSS is directly attached\n" + ) +{ + struct vty_bind *vbind = vty->index; + struct gprs_ns2_vc_bind *bind; + const char *netif = argv[0]; + const char *role = argv[1]; + + int rc = 0; + enum osmo_fr_role frrole; + + if (vbind->ll != GPRS_NS2_LL_FR) { + vty_out(vty, "fr can be only used with frame relay bind%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (!strcmp(role, "fr")) + frrole = FR_ROLE_USER_EQUIPMENT; + else if (!strcmp(role, "frnet")) + frrole = FR_ROLE_NETWORK_EQUIPMENT; + else + return CMD_WARNING; + + bind = gprs_ns2_fr_bind_by_netif(vty_nsi, netif); + if (bind) { + vty_out(vty, "Interface %s already used.%s", netif, VTY_NEWLINE); + return CMD_WARNING; + } + + rc = gprs_ns2_fr_bind(vty_nsi, vbind->name, netif, vty_fr_network, frrole, &bind); + if (rc < 0) { + LOGP(DLNS, LOGL_ERROR, "Failed to bind interface %s on fr. Err: %d\n", netif, rc); + return CMD_WARNING; + } + + return CMD_SUCCESS; +} + +DEFUN(cfg_no_ns_bind_fr, cfg_no_ns_bind_fr_cmd, + "no fr NETIF", + NO_STR + "Delete a frame relay link\n" + "Delete a frame relay link\n" + IFNAME_STR + ) +{ + struct vty_bind *vbind = vty->index; + struct gprs_ns2_vc_bind *bind; + const char *netif = argv[0]; + + if (vbind->ll != GPRS_NS2_LL_FR) { + vty_out(vty, "fr can be only used with frame relay bind%s", + VTY_NEWLINE); + return CMD_WARNING; + } + + bind = gprs_ns2_fr_bind_by_netif(vty_nsi, netif); + if (!bind) { + vty_out(vty, "Interface not found.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (strcmp(bind->name, vbind->name)) { + vty_out(vty, "The specified interface is not bound to this bind.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + bind->driver->free_bind(bind); + return CMD_SUCCESS; +} + + +static struct cmd_node ns_nse_node = { + L_NS_NSE_NODE, + "%s(config-ns-nse)# ", + 1, +}; + +DEFUN(cfg_ns_nse_nsvc_fr, cfg_ns_nse_nsvc_fr_cmd, + "nsvc fr NETIF dlci <16-1007> nsvci <0-65535>", + "NS Virtual Connection\n" + "frame relay\n" + "frame relay interface. Must be registered via fr vty\n" + NSVCI_STR + NSVCI_STR + DLCI_STR + DLCI_STR + ) +{ + struct gprs_ns2_vc_bind *bind; + struct gprs_ns2_vc *nsvc; + struct gprs_ns2_nse *nse = vty->index; + const char *netif = argv[0]; + uint16_t dlci = atoi(argv[1]); + uint16_t nsvci = atoi(argv[2]); + bool dialect_modified = false; + bool ll_modified = false; + + if (nse->ll != GPRS_NS2_LL_FR && nse->ll != GPRS_NS2_LL_UNDEF) { + vty_out(vty, "Can not mix NS-VC with different link layer%s", VTY_NEWLINE); + goto err; + } + + if (nse->dialect != GPRS_NS2_DIALECT_STATIC_RESETBLOCK && nse->dialect != GPRS_NS2_DIALECT_UNDEF) { + vty_out(vty, "Can not mix NS-VC with different dialects%s", VTY_NEWLINE); + goto err; + } + + if (nse->ll == GPRS_NS2_LL_UNDEF) { + nse->ll = GPRS_NS2_LL_FR; + ll_modified = true; + } + + if (nse->dialect == GPRS_NS2_DIALECT_UNDEF) { + nse->dialect = GPRS_NS2_DIALECT_STATIC_RESETBLOCK; + dialect_modified = true; + } + + + bind = gprs_ns2_fr_bind_by_netif(vty_nsi, netif); + if (!bind) { + vty_out(vty, "Can not find fr interface \"%s\". Please configure it via fr vty.%s", + netif, VTY_NEWLINE); + goto err; + } + + if (gprs_ns2_fr_nsvc_by_dlci(bind, dlci)) { + vty_out(vty, "A NS-VC with the specified DLCI already exist!%s", VTY_NEWLINE); + goto err; + } + + if (gprs_ns2_nsvc_by_nsvci(vty_nsi, nsvci)) { + vty_out(vty, "A NS-VC with the specified NS-VCI already exist!%s", VTY_NEWLINE); + goto err; + } + + nsvc = gprs_ns2_fr_connect(bind, nse, nsvci, dlci); + if (!nsvc) { + /* Could not create NS-VC, connect failed */ + vty_out(vty, "Failed to create the NS-VC%s", VTY_NEWLINE); + goto err; + } + nsvc->persistent = true; + return CMD_SUCCESS; + +err: + if (ll_modified) + nse->ll = GPRS_NS2_LL_UNDEF; + if (dialect_modified) + nse->dialect = GPRS_NS2_DIALECT_UNDEF; + + return CMD_WARNING; +} + +DEFUN(cfg_no_ns_nse_nsvc_fr_dlci, cfg_no_ns_nse_nsvc_fr_dlci_cmd, + "no nsvc fr NETIF dlci <16-1007>", + NO_STR + "Delete frame relay NS-VC\n" + "frame relay\n" + "frame relay interface. Must be registered via fr vty\n" + DLCI_STR + DLCI_STR + ) +{ + struct gprs_ns2_vc_bind *bind; + struct gprs_ns2_vc *nsvc; + struct gprs_ns2_nse *nse = vty->index; + const char *netif = argv[0]; + uint16_t dlci = atoi(argv[1]); + + if (nse->ll != GPRS_NS2_LL_FR) { + vty_out(vty, "This NSE doesn't support frame relay.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + bind = gprs_ns2_fr_bind_by_netif(vty_nsi, netif); + if (!bind) { + vty_out(vty, "Can not find fr interface \"%s\"%s", + netif, VTY_NEWLINE); + return CMD_ERR_NOTHING_TODO; + } + + nsvc = gprs_ns2_fr_nsvc_by_dlci(bind, dlci); + if (!nsvc) { + vty_out(vty, "Can not find a NS-VC on fr interface %s with dlci %u%s", + netif, dlci, VTY_NEWLINE); + return CMD_WARNING; + } + + if (nse != nsvc->nse) { + vty_out(vty, "The specified NS-VC is not a part of the NSE %u!%s" + "To remove this NS-VC go to the vty node 'nse %u'%s", + nse->nsei, VTY_NEWLINE, + nsvc->nse->nsei, VTY_NEWLINE); + return CMD_WARNING; + } + + gprs_ns2_free_nsvc(nsvc); + if (llist_empty(&nse->nsvc)) { + nse->ll = GPRS_NS2_LL_UNDEF; + nse->dialect = GPRS_NS2_DIALECT_UNDEF; + } + + return CMD_SUCCESS; +} + +DEFUN(cfg_no_ns_nse_nsvci, cfg_no_ns_nse_nsvci_cmd, + "no nsvc nsvci <0-65535>", + NO_STR + "Delete NSVC\n" + NSVCI_STR + NSVCI_STR + ) +{ + struct gprs_ns2_vc *nsvc; + struct gprs_ns2_nse *nse = vty->index; + uint16_t nsvci = atoi(argv[0]); + + switch (nse->dialect) { + case GPRS_NS2_DIALECT_SNS: + case GPRS_NS2_DIALECT_STATIC_ALIVE: + vty_out(vty, "NSE doesn't support NSVCI.%s", VTY_NEWLINE); + return CMD_WARNING; + case GPRS_NS2_DIALECT_UNDEF: + vty_out(vty, "No NSVCs configured%s", VTY_NEWLINE); + return CMD_WARNING; + case GPRS_NS2_DIALECT_IPACCESS: + case GPRS_NS2_DIALECT_STATIC_RESETBLOCK: + break; + } + + nsvc = gprs_ns2_nsvc_by_nsvci(vty_nsi, nsvci); + if (!nsvc) { + vty_out(vty, "Can not find NS-VC with NS-VCI %u%s", nsvci, VTY_NEWLINE); + return CMD_WARNING; + } + + if (nse != nsvc->nse) { + vty_out(vty, "NS-VC with NS-VCI %u is not part of this NSE!%s", + nsvci, VTY_NEWLINE); + return CMD_WARNING; + } + + gprs_ns2_free_nsvc(nsvc); + if (llist_empty(&nse->nsvc)) { + nse->ll = GPRS_NS2_LL_UNDEF; + nse->dialect = GPRS_NS2_DIALECT_UNDEF; + } + + return CMD_SUCCESS; +} + +DEFUN(cfg_ns_nse_nsvc_udp, cfg_ns_nse_nsvc_udp_cmd, + "nsvc udp BIND " VTY_IPV46_CMD " <1-65535>", + "NS Virtual Connection\n" + "NS over UDP\n" + "A unique bind identifier created by ns bind\n" + "Remote IPv4 Address\n" "Remote IPv6 Address\n" + "Remote UDP Port\n" + ) +{ + struct gprs_ns2_vc_bind *bind; + struct gprs_ns2_vc *nsvc; + struct gprs_ns2_nse *nse = vty->index; + bool dialect_modified = false; + bool ll_modified = false; + + const char *bind_name = argv[0]; + struct osmo_sockaddr_str remote_str; + struct osmo_sockaddr remote; + uint16_t port = atoi(argv[2]); + + if (nse->ll == GPRS_NS2_LL_UNDEF) { + nse->ll = GPRS_NS2_LL_UDP; + ll_modified = true; + } + + if (nse->dialect == GPRS_NS2_DIALECT_UNDEF) { + nse->dialect = GPRS_NS2_DIALECT_STATIC_ALIVE; + dialect_modified = true; + } + + if (nse->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "Can not mix NS-VC with different link layer%s", VTY_NEWLINE); + goto err; + } + + if (nse->dialect != GPRS_NS2_DIALECT_STATIC_ALIVE) { + vty_out(vty, "Can not mix NS-VC with different dialects%s", VTY_NEWLINE); + goto err; + } + + if (osmo_sockaddr_str_from_str(&remote_str, argv[1], port)) { + vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); + goto err; + } + + if (osmo_sockaddr_str_to_sockaddr(&remote_str, &remote.u.sas)) { + vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); + goto err; + } + + bind = gprs_ns2_bind_by_name(vty_nsi, bind_name); + if (!bind) { + vty_out(vty, "Can not find bind with name %s%s", + bind_name, VTY_NEWLINE); + goto err; + } + + if (bind->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "Bind %s is not an UDP bind.%s", + bind_name, VTY_NEWLINE); + goto err; + } + + nsvc = gprs_ns2_ip_connect(bind, &remote, nse, 0); + if (!nsvc) { + vty_out(vty, "Can not create NS-VC.%s", VTY_NEWLINE); + goto err; + } + nsvc->persistent = true; + + return CMD_SUCCESS; + +err: + if (ll_modified) + nse->ll = GPRS_NS2_LL_UNDEF; + if (dialect_modified) + nse->dialect = GPRS_NS2_DIALECT_UNDEF; + return CMD_WARNING; +} + +DEFUN(cfg_no_ns_nse_nsvc_udp, cfg_no_ns_nse_nsvc_udp_cmd, + "no nsvc udp BIND " VTY_IPV46_CMD " <1-65535>", + NO_STR + "Delete a NS Virtual Connection\n" + "NS over UDP\n" + "A unique bind identifier created by ns bind\n" + "Remote IPv4 Address\n" "Remote IPv6 Address\n" + "Remote UDP Port\n" + ) +{ + struct gprs_ns2_vc_bind *bind; + struct gprs_ns2_vc *nsvc; + struct gprs_ns2_nse *nse = vty->index; + const char *bind_name = argv[0]; + struct osmo_sockaddr_str remote_str; + struct osmo_sockaddr remote; + uint16_t port = atoi(argv[2]); + + if (nse->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "This NSE doesn't support UDP.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (nse->dialect != GPRS_NS2_DIALECT_STATIC_ALIVE) { + vty_out(vty, "This NSE doesn't support UDP with dialect static alive.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + bind = gprs_ns2_bind_by_name(vty_nsi, bind_name); + if (!bind) { + vty_out(vty, "Can not find bind with name %s%s", + bind_name, VTY_NEWLINE); + return CMD_WARNING; + } + + if (bind->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "Bind %s is not an UDP bind.%s", + bind_name, VTY_NEWLINE); + return CMD_WARNING; + } + + if (osmo_sockaddr_str_from_str(&remote_str, argv[1], port)) { + vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (osmo_sockaddr_str_to_sockaddr(&remote_str, &remote.u.sas)) { + vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + nsvc = gprs_ns2_nsvc_by_sockaddr_bind(bind, &remote); + if (!nsvc) { + vty_out(vty, "Can not find NS-VC with remote %s:%u%s", + remote_str.ip, remote_str.port, VTY_NEWLINE); + return CMD_WARNING; + } + + if (!nsvc->persistent) { + vty_out(vty, "NS-VC with remote %s:%u is a dynamic NS-VC. Not configured by vty.%s", + remote_str.ip, remote_str.port, VTY_NEWLINE); + return CMD_WARNING; + } + + if (nsvc->nse != nse) { + vty_out(vty, "NS-VC is not part of this NSE!%s", VTY_NEWLINE); + return CMD_WARNING; + } + + gprs_ns2_free_nsvc(nsvc); + if (llist_empty(&nse->nsvc)) { + nse->ll = GPRS_NS2_LL_UNDEF; + nse->dialect = GPRS_NS2_DIALECT_UNDEF; + } + + return CMD_SUCCESS; +} + +DEFUN(cfg_ns_nse_nsvc_ipa, cfg_ns_nse_nsvc_ipa_cmd, + "nsvc ipa BIND " VTY_IPV46_CMD " <1-65535> nsvci <0-65535>" , + "NS Virtual Connection\n" + "NS over UDP ip.access style (uses RESET/BLOCK)\n" + "A unique bind identifier created by ns bind\n" + "Remote IPv4 Address\n" "Remote IPv6 Address\n" + "Remote UDP Port\n" + NSVCI_STR + NSVCI_STR + ) +{ + struct gprs_ns2_vc_bind *bind; + struct gprs_ns2_vc *nsvc; + struct gprs_ns2_nse *nse = vty->index; + bool dialect_modified = false; + bool ll_modified = false; + + const char *bind_name = argv[0]; + struct osmo_sockaddr_str remote_str; + struct osmo_sockaddr remote; + uint16_t port = atoi(argv[2]); + uint16_t nsvci = atoi(argv[3]); + + if (nse->ll == GPRS_NS2_LL_UNDEF) { + nse->ll = GPRS_NS2_LL_UDP; + ll_modified = true; + } + + if (nse->dialect == GPRS_NS2_DIALECT_UNDEF) { + nse->dialect = GPRS_NS2_DIALECT_IPACCESS; + dialect_modified = true; + } + + if (nse->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "Can not mix NS-VC with different link layer%s", VTY_NEWLINE); + goto err; + } + + if (nse->dialect != GPRS_NS2_DIALECT_IPACCESS) { + vty_out(vty, "Can not mix NS-VC with different dialects%s", VTY_NEWLINE); + goto err; + } + + if (osmo_sockaddr_str_from_str(&remote_str, argv[1], port)) { + vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); + goto err; + } + + if (osmo_sockaddr_str_to_sockaddr(&remote_str, &remote.u.sas)) { + vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); + goto err; + } + + bind = gprs_ns2_bind_by_name(vty_nsi, bind_name); + if (!bind) { + vty_out(vty, "Can not find bind with name %s%s", + bind_name, VTY_NEWLINE); + goto err; + } + + if (bind->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "Bind %s is not an UDP bind.%s", + bind_name, VTY_NEWLINE); + goto err; + } + + nsvc = gprs_ns2_ip_connect(bind, &remote, nse, nsvci); + if (!nsvc) { + vty_out(vty, "Can not create NS-VC.%s", VTY_NEWLINE); + goto err; + } + nsvc->persistent = true; + + return CMD_SUCCESS; + +err: + if (ll_modified) + nse->ll = GPRS_NS2_LL_UNDEF; + if (dialect_modified) + nse->dialect = GPRS_NS2_DIALECT_UNDEF; + return CMD_WARNING; +} + +DEFUN(cfg_no_ns_nse_nsvc_ipa, cfg_no_ns_nse_nsvc_ipa_cmd, + "no nsvc ipa BIND " VTY_IPV46_CMD " <1-65535> nsvci <0-65535>", + NO_STR + "Delete a NS Virtual Connection\n" + "NS over UDP\n" + "A unique bind identifier created by ns bind\n" + "Remote IPv4 Address\n" "Remote IPv6 Address\n" + "Remote UDP Port\n" + NSVCI_STR + NSVCI_STR + ) +{ + struct gprs_ns2_vc_bind *bind; + struct gprs_ns2_vc *nsvc; + struct gprs_ns2_nse *nse = vty->index; + const char *bind_name = argv[0]; + struct osmo_sockaddr_str remote_str; + struct osmo_sockaddr remote; + uint16_t port = atoi(argv[2]); + uint16_t nsvci = atoi(argv[3]); + + if (nse->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "This NSE doesn't support UDP.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (nse->dialect != GPRS_NS2_DIALECT_IPACCESS) { + vty_out(vty, "This NSE doesn't support UDP with dialect ipaccess.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + bind = gprs_ns2_bind_by_name(vty_nsi, bind_name); + if (!bind) { + vty_out(vty, "Can not find bind with name %s%s", + bind_name, VTY_NEWLINE); + return CMD_WARNING; + } + + if (bind->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "Bind %s is not an UDP bind.%s", + bind_name, VTY_NEWLINE); + return CMD_WARNING; + } + + if (osmo_sockaddr_str_from_str(&remote_str, argv[1], port)) { + vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (osmo_sockaddr_str_to_sockaddr(&remote_str, &remote.u.sas)) { + vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + nsvc = gprs_ns2_nsvc_by_sockaddr_bind(bind, &remote); + if (!nsvc) { + vty_out(vty, "Can not find NS-VC with remote %s:%u%s", + remote_str.ip, remote_str.port, VTY_NEWLINE); + return CMD_WARNING; + } + + if (!nsvc->persistent) { + vty_out(vty, "NS-VC with remote %s:%u is a dynamic NS-VC. Not configured by vty.%s", + remote_str.ip, remote_str.port, VTY_NEWLINE); + return CMD_WARNING; + } + + if (nsvc->nse != nse) { + vty_out(vty, "NS-VC is not part of this NSE!%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (!nsvc->nsvci_is_valid) { + vty_out(vty, "NS-VC doesn't have a nsvci!%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (nsvc->nsvci != nsvci) { + vty_out(vty, "NS-VC has a different nsvci (%u)!%s", + nsvc->nsvci, VTY_NEWLINE); + return CMD_WARNING; + } + + gprs_ns2_free_nsvc(nsvc); + if (llist_empty(&nse->nsvc)) { + nse->ll = GPRS_NS2_LL_UNDEF; + nse->dialect = GPRS_NS2_DIALECT_UNDEF; + } + + return CMD_SUCCESS; +} + +DEFUN(cfg_ns_nse_ip_sns, cfg_ns_nse_ip_sns_cmd, + "ip-sns " VTY_IPV46_CMD " <1-65535>", + "SNS Initial Endpoint\n" + "SGSN IPv4 Address\n" "SGSN IPv6 Address\n" + "SGSN UDP Port\n" + ) +{ + struct gprs_ns2_nse *nse = vty->index; + bool dialect_modified = false; + bool ll_modified = false; + int rc; + + /* argv[0] */ + struct osmo_sockaddr_str remote_str; + struct osmo_sockaddr remote; + uint16_t port = atoi(argv[1]); + + if (nse->ll == GPRS_NS2_LL_UNDEF) { + nse->ll = GPRS_NS2_LL_UDP; + ll_modified = true; + } + + if (nse->dialect == GPRS_NS2_DIALECT_UNDEF) { + char sns[16]; + snprintf(sns, sizeof(sns), "NSE%05u-SNS", nse->nsei); + nse->bss_sns_fi = ns2_sns_bss_fsm_alloc(nse, sns); + if (!nse->bss_sns_fi) + goto err; + nse->dialect = GPRS_NS2_DIALECT_SNS; + dialect_modified = true; + } + + if (nse->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "Can not mix NS-VC with different link layer%s", VTY_NEWLINE); + goto err; + } + + if (nse->dialect != GPRS_NS2_DIALECT_SNS) { + vty_out(vty, "Can not mix NS-VC with different dialects%s", VTY_NEWLINE); + goto err; + } + + if (osmo_sockaddr_str_from_str(&remote_str, argv[0], port)) { + vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); + goto err; + } + + if (osmo_sockaddr_str_to_sockaddr(&remote_str, &remote.u.sas)) { + vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); + goto err; + } + + rc = gprs_ns2_sns_add_endpoint(nse, &remote); + switch (rc) { + case 0: + return CMD_SUCCESS; + case -EADDRINUSE: + vty_out(vty, "Specified SNS endpoint already part of the NSE.%s", VTY_NEWLINE); + return CMD_WARNING; + default: + vty_out(vty, "Can not add specified SNS endpoint.%s", VTY_NEWLINE); + return CMD_WARNING; + } + +err: + if (ll_modified) + nse->ll = GPRS_NS2_LL_UNDEF; + if (dialect_modified) + nse->dialect = GPRS_NS2_DIALECT_UNDEF; + return CMD_WARNING; +} + +DEFUN(cfg_no_ns_nse_ip_sns, cfg_no_ns_nse_ip_sns_cmd, + "no ip-sns " VTY_IPV46_CMD " <1-65535>", + NO_STR + "Delete a SNS Initial Endpoint\n" + "SGSN IPv4 Address\n" "SGSN IPv6 Address\n" + "SGSN UDP Port\n" + ) +{ + struct gprs_ns2_nse *nse = vty->index; + struct osmo_sockaddr_str remote_str; /* argv[0] */ + struct osmo_sockaddr remote; + uint16_t port = atoi(argv[1]); + int count; + + if (nse->ll != GPRS_NS2_LL_UDP) { + vty_out(vty, "This NSE doesn't support UDP.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (nse->dialect != GPRS_NS2_DIALECT_SNS) { + vty_out(vty, "This NSE doesn't support UDP with dialect ip-sns.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (osmo_sockaddr_str_from_str(&remote_str, argv[0], port)) { + vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (osmo_sockaddr_str_to_sockaddr(&remote_str, &remote.u.sas)) { + vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + if (gprs_ns2_sns_del_endpoint(nse, &remote)) { + vty_out(vty, "Can not remove specified SNS endpoint.%s", VTY_NEWLINE); + return CMD_WARNING; + } + + count = gprs_ns2_sns_count(nse); + if (count > 0) { + /* there are other sns endpoints */ + return CMD_SUCCESS; + } else if (count < 0) { + OSMO_ASSERT(0); + } else { + /* clean up nse to allow other nsvc commands */ + osmo_fsm_inst_term(nse->bss_sns_fi, OSMO_FSM_TERM_REQUEST, NULL); + nse->bss_sns_fi = NULL; + nse->ll = GPRS_NS2_LL_UNDEF; + nse->dialect = GPRS_NS2_DIALECT_UNDEF; + } + + return CMD_SUCCESS; +} + + +/* non-config commands */ static void dump_nsvc(struct vty *vty, struct gprs_ns2_vc *nsvc, bool stats) { char nsvci_str[32]; @@ -440,7 +1491,9 @@ return CMD_WARNING; } - if (nse->dialect == GPRS_NS2_DIALECT_SNS) { + if (!nse->persistent) { + gprs_ns2_free_nse(nse); + } else if (nse->dialect == GPRS_NS2_DIALECT_SNS) { gprs_ns2_free_nsvcs(nse); } else { /* Perform the operation for all nsvc */ @@ -450,310 +1503,57 @@ return CMD_SUCCESS; } -#define NSE_CMD_STR "Persistent NS Entity\n" "NS Entity ID (NSEI)\n" - -DEFUN(cfg_nse_fr, cfg_nse_fr_cmd, - "nse <0-65535> nsvci <0-65535> (fr|frnet) NETIF dlci <0-1023>", - NSE_CMD_STR - "NS Virtual Connection\n" - "NS Virtual Connection ID (NSVCI)\n" - "Frame Relay User-Side\n" - "Frame Relay Network-Side\n" - IFNAME_STR - "Data Link connection identifier\n" - "Data Link connection identifier\n" - ) +DEFUN(nsvc_block, nsvc_block_cmd, + "nsvc <0-65535> (block|unblock)", + "NS Virtual Connection\n" + NSVCI_STR + "Block a NSVC. As cause code O&M intervention will be used.\n" + "Unblock a NSVC. As cause code O&M intervention will be used.\n") { - struct ns2_vty_vc *vtyvc; + struct gprs_ns2_inst *nsi = vty_nsi; + struct gprs_ns2_vc *nsvc; - uint16_t nsei = atoi(argv[0]); - uint16_t nsvci = atoi(argv[1]); - const char *role = argv[2]; - const char *name = argv[3]; - uint16_t dlci = atoi(argv[4]); + uint16_t id = atoi(argv[0]); - vtyvc = vtyvc_by_nsei(nsei, true); - if (!vtyvc) { - vty_out(vty, "Can not allocate space %s", VTY_NEWLINE); + nsvc = gprs_ns2_nsvc_by_nsvci(nsi, id); + if (!nsvc) { + vty_out(vty, "Could not find NSVCI %05u%s", id, VTY_NEWLINE); return CMD_WARNING; } - if (!strcmp(role, "fr")) - vtyvc->fr.role = FR_ROLE_USER_EQUIPMENT; - else if (!strcmp(role, "frnet")) - vtyvc->fr.role = FR_ROLE_NETWORK_EQUIPMENT; - - osmo_strlcpy(vtyvc->netif, name, sizeof(vtyvc->netif)); - vtyvc->frdlci = dlci; - vtyvc->nsvci = nsvci; - vtyvc->ll = GPRS_NS2_LL_FR; - - return CMD_SUCCESS; -} - -DEFUN(cfg_nse_nsvc, cfg_nse_nsvci_cmd, - "nse <0-65535> nsvci <0-65535>", - NSE_CMD_STR - "NS Virtual Connection\n" - "NS Virtual Connection ID (NSVCI)\n" - ) -{ - struct ns2_vty_vc *vtyvc; - - uint16_t nsei = atoi(argv[0]); - uint16_t nsvci = atoi(argv[1]); - - vtyvc = vtyvc_by_nsei(nsei, true); - if (!vtyvc) { - vty_out(vty, "Can not allocate space %s", VTY_NEWLINE); - return CMD_WARNING; - } - - vtyvc->nsvci = nsvci; - - return CMD_SUCCESS; -} - -DEFUN(cfg_nse_remoteip, cfg_nse_remoteip_cmd, - "nse <0-65535> remote-ip " VTY_IPV46_CMD, - NSE_CMD_STR - "Remote IP Address\n" - "Remote IPv4 Address\n" - "Remote IPv6 Address\n") -{ - uint16_t nsei = atoi(argv[0]); - struct ns2_vty_vc *vtyvc; - - vtyvc = vtyvc_by_nsei(nsei, true); - if (!vtyvc) { - vty_out(vty, "Can not allocate space %s", VTY_NEWLINE); - return CMD_WARNING; - } - - osmo_sockaddr_str_from_str2(&vtyvc->remote, argv[1]); - - return CMD_SUCCESS; -} - -DEFUN(cfg_nse_remoteport, cfg_nse_remoteport_cmd, - "nse <0-65535> remote-port <0-65535>", - NSE_CMD_STR - "Remote UDP Port\n" - "Remote UDP Port Number\n") -{ - uint16_t nsei = atoi(argv[0]); - uint16_t port = atoi(argv[1]); - struct ns2_vty_vc *vtyvc; - - vtyvc = vtyvc_by_nsei(nsei, true); - if (!vtyvc) { - vty_out(vty, "Can not allocate space %s", VTY_NEWLINE); - return CMD_WARNING; - } - - vtyvc->remote.port = port; - - return CMD_SUCCESS; -} - -DEFUN(cfg_nse_fr_dlci, cfg_nse_fr_dlci_cmd, - "nse <0-65535> nsvci <0-65535> fr-dlci <16-1007>", - NSE_CMD_STR - "NS Virtual Connection\n" - "NS Virtual Connection ID (NSVCI)\n" - "Frame Relay DLCI\n" - "Frame Relay DLCI Number\n") -{ - uint16_t nsei = atoi(argv[0]); - uint16_t nsvci = atoi(argv[1]); - uint16_t dlci = atoi(argv[2]); - struct ns2_vty_vc *vtyvc; - - vtyvc = vtyvc_by_nsei(nsei, true); - if (!vtyvc) { - vty_out(vty, "Can not allocate space %s", VTY_NEWLINE); - return CMD_WARNING; - } - - vtyvc->frdlci = dlci; - vtyvc->nsvci = nsvci; - - return CMD_SUCCESS; -} - -DEFUN(cfg_nse_encaps, cfg_nse_encaps_cmd, - "nse <0-65535> encapsulation (udp|framerelay-gre)", - NSE_CMD_STR - "Encapsulation for NS\n" - "UDP/IP Encapsulation\n" "Frame-Relay/GRE/IP Encapsulation\n") -{ - uint16_t nsei = atoi(argv[0]); - struct ns2_vty_vc *vtyvc; - - vtyvc = vtyvc_by_nsei(nsei, true); - if (!vtyvc) { - vty_out(vty, "Can not allocate space %s", VTY_NEWLINE); - return CMD_WARNING; - } - - if (!strcmp(argv[1], "udp")) - vtyvc->ll = GPRS_NS2_LL_UDP; - else - vtyvc->ll = GPRS_NS2_LL_FR_GRE; - - return CMD_SUCCESS; -} - -DEFUN(cfg_nse_remoterole, cfg_nse_remoterole_cmd, - "nse <0-65535> remote-role (sgsn|bss)", - NSE_CMD_STR - "Remote NSE Role\n" - "Remote Peer is SGSN\n" - "Remote Peer is BSS\n") -{ - uint16_t nsei = atoi(argv[0]); - struct ns2_vty_vc *vtyvc; - - vtyvc = vtyvc_by_nsei(nsei, true); - if (!vtyvc) { - vty_out(vty, "Can not allocate space %s", VTY_NEWLINE); - return CMD_WARNING; - } - - if (!strcmp(argv[1], "sgsn")) - vtyvc->remote_end_is_sgsn = 1; - else - vtyvc->remote_end_is_sgsn = 0; - - return CMD_SUCCESS; -} - -DEFUN(cfg_no_nse, cfg_no_nse_cmd, - "no nse <0-65535>", - "Delete Persistent NS Entity\n" - "Delete " NSE_CMD_STR) -{ - uint16_t nsei = atoi(argv[0]); - struct ns2_vty_vc *vtyvc; - - vtyvc = vtyvc_by_nsei(nsei, false); - if (!vtyvc) { - vty_out(vty, "The NSE %d does not exists.%s", nsei, VTY_NEWLINE); - return CMD_WARNING; - } - - ns2_vc_free(vtyvc); - - return CMD_SUCCESS; -} - -DEFUN(cfg_ns_timer, cfg_ns_timer_cmd, - "timer " NS_TIMERS " <0-65535>", - "Network Service Timer\n" - NS_TIMERS_HELP "Timer Value\n") -{ - int idx = get_string_value(gprs_ns_timer_strs, argv[0]); - int val = atoi(argv[1]); - - if (idx < 0 || idx >= ARRAY_SIZE(vty_nsi->timeout)) - return CMD_WARNING; - - vty_nsi->timeout[idx] = val; - - return CMD_SUCCESS; -} - -#define ENCAPS_STR "NS encapsulation options\n" - -DEFUN(cfg_nsip_local_ip, cfg_nsip_local_ip_cmd, - "encapsulation udp local-ip " VTY_IPV46_CMD, - ENCAPS_STR "NS over UDP Encapsulation\n" - "Set the IP address on which we listen for NS/UDP\n" - "IPv4 Address\n" - "IPv6 Address\n") -{ - osmo_sockaddr_str_from_str2(&priv.udp, argv[0]); - - return CMD_SUCCESS; -} - -DEFUN(cfg_nsip_local_port, cfg_nsip_local_port_cmd, - "encapsulation udp local-port <0-65535>", - ENCAPS_STR "NS over UDP Encapsulation\n" - "Set the UDP port on which we listen for NS/UDP\n" - "UDP port number\n") -{ - unsigned int port = atoi(argv[0]); - - priv.udp.port = port; - - return CMD_SUCCESS; -} - -DEFUN(cfg_nsip_dscp, cfg_nsip_dscp_cmd, - "encapsulation udp dscp <0-255>", - ENCAPS_STR "NS over UDP Encapsulation\n" - "Set DSCP/TOS on the UDP socket\n" "DSCP Value\n") -{ - int dscp = atoi(argv[0]); - struct gprs_ns2_vc_bind *bind; - - priv.dscp = dscp; - - llist_for_each_entry(bind, &vty_nsi->binding, list) { - if (gprs_ns2_is_ip_bind(bind)) - gprs_ns2_ip_bind_set_dscp(bind, dscp); + if (!strcmp(argv[1], "block")) { + ns2_vc_block(nsvc); + } else { + ns2_vc_unblock(nsvc); } return CMD_SUCCESS; } -DEFUN(cfg_nsip_res_block_unblock, cfg_nsip_res_block_unblock_cmd, - "encapsulation udp use-reset-block-unblock (enabled|disabled)", - ENCAPS_STR "NS over UDP Encapsulation\n" - "Use NS-{RESET,BLOCK,UNBLOCK} procedures in violation of 3GPP TS 48.016\n" - "Enable NS-{RESET,BLOCK,UNBLOCK}\n" - "Disable NS-{RESET,BLOCK,UNBLOCK}\n") +static void log_set_nse_filter(struct log_target *target, + struct gprs_ns2_nse *nse) { - enum gprs_ns2_vc_mode vc_mode; - - if (!strcmp(argv[0], "enabled")) - vc_mode = GPRS_NS2_VC_MODE_BLOCKRESET; - else - vc_mode = GPRS_NS2_VC_MODE_ALIVE; - - priv.vc_mode = vc_mode; - - return CMD_SUCCESS; + if (nse) { + target->filter_map |= (1 << LOG_FLT_GB_NSE); + target->filter_data[LOG_FLT_GB_NSE] = nse; + } else if (target->filter_data[LOG_FLT_GB_NSE]) { + target->filter_map = ~(1 << LOG_FLT_GB_NSE); + target->filter_data[LOG_FLT_GB_NSE] = NULL; + } } -DEFUN(cfg_frgre_local_ip, cfg_frgre_local_ip_cmd, - "encapsulation framerelay-gre local-ip " VTY_IPV46_CMD, - ENCAPS_STR "NS over Frame Relay over GRE Encapsulation\n" - "Set the IP address on which we listen for NS/FR/GRE\n" - "IPv4 Address\n" - "IPv6 Address\n") +static void log_set_nsvc_filter(struct log_target *target, + struct gprs_ns2_vc *nsvc) { - osmo_sockaddr_str_from_str2(&priv.frgreaddr, argv[0]); - - return CMD_SUCCESS; + if (nsvc) { + target->filter_map |= (1 << LOG_FLT_GB_NSVC); + target->filter_data[LOG_FLT_GB_NSVC] = nsvc; + } else if (target->filter_data[LOG_FLT_GB_NSVC]) { + target->filter_map = ~(1 << LOG_FLT_GB_NSVC); + target->filter_data[LOG_FLT_GB_NSVC] = NULL; + } } -DEFUN(cfg_frgre_enable, cfg_frgre_enable_cmd, - "encapsulation framerelay-gre enabled (1|0)", - ENCAPS_STR "NS over Frame Relay over GRE Encapsulation\n" - "Enable or disable Frame Relay over GRE\n" - "Enable\n" "Disable\n") -{ - int enabled = atoi(argv[0]); - - priv.frgre = enabled; - - return CMD_SUCCESS; -} - -/* TODO: allow vty to reset/block/unblock nsvc/nsei */ - DEFUN(logging_fltr_nse, logging_fltr_nse_cmd, "logging filter nse nsei <0-65535>", @@ -817,29 +1617,14 @@ return CMD_SUCCESS; } -/** - * gprs_ns2_vty_init initialize the vty - * \param[inout] nsi - * \param[in] default_bind set the default address to bind to. Can be NULL. - * \return 0 on success - */ -int gprs_ns2_vty_init(struct gprs_ns2_inst *nsi, - const struct osmo_sockaddr_str *default_bind) +int gprs_ns2_vty_init(struct gprs_ns2_inst *nsi) { - static bool vty_elements_installed = false; - vty_nsi = nsi; - memset(&priv, 0, sizeof(struct ns2_vty_priv)); - INIT_LLIST_HEAD(&priv.vtyvc); - priv.vc_mode = GPRS_NS2_VC_MODE_BLOCKRESET; - if (default_bind) - memcpy(&priv.udp, default_bind, sizeof(*default_bind)); + INIT_LLIST_HEAD(&binds); - /* Regression test code may call this function repeatedly, so make sure - * that VTY elements are not duplicated, which would assert. */ - if (vty_elements_installed) - return 0; - vty_elements_installed = true; + vty_fr_network = osmo_fr_network_alloc(nsi); + if (!vty_fr_network) + return -ENOMEM; install_lib_element_ve(&show_ns_cmd); install_lib_element_ve(&show_ns_binds_cmd); @@ -850,152 +1635,42 @@ install_lib_element_ve(&logging_fltr_nsvc_cmd); install_lib_element(ENABLE_NODE, &nsvc_force_unconf_cmd); + install_lib_element(ENABLE_NODE, &nsvc_block_cmd); install_lib_element(CFG_LOG_NODE, &logging_fltr_nse_cmd); install_lib_element(CFG_LOG_NODE, &logging_fltr_nsvc_cmd); install_lib_element(CONFIG_NODE, &cfg_ns_cmd); + install_node(&ns_node, config_write_ns); - install_lib_element(L_NS_NODE, &cfg_nse_fr_cmd); - install_lib_element(L_NS_NODE, &cfg_nse_nsvci_cmd); - install_lib_element(L_NS_NODE, &cfg_nse_remoteip_cmd); - install_lib_element(L_NS_NODE, &cfg_nse_remoteport_cmd); - install_lib_element(L_NS_NODE, &cfg_nse_fr_dlci_cmd); - install_lib_element(L_NS_NODE, &cfg_nse_encaps_cmd); - install_lib_element(L_NS_NODE, &cfg_nse_remoterole_cmd); - install_lib_element(L_NS_NODE, &cfg_no_nse_cmd); + /* TODO: convert into osmo timer */ install_lib_element(L_NS_NODE, &cfg_ns_timer_cmd); - install_lib_element(L_NS_NODE, &cfg_nsip_local_ip_cmd); - install_lib_element(L_NS_NODE, &cfg_nsip_local_port_cmd); - install_lib_element(L_NS_NODE, &cfg_nsip_dscp_cmd); - install_lib_element(L_NS_NODE, &cfg_nsip_res_block_unblock_cmd); - install_lib_element(L_NS_NODE, &cfg_frgre_enable_cmd); - install_lib_element(L_NS_NODE, &cfg_frgre_local_ip_cmd); + install_lib_element(L_NS_NODE, &cfg_ns_nsei_cmd); + install_lib_element(L_NS_NODE, &cfg_no_ns_nsei_cmd); + install_lib_element(L_NS_NODE, &cfg_ns_bind_cmd); + install_lib_element(L_NS_NODE, &cfg_no_ns_bind_cmd); - /* TODO: nsvc/nsei command to reset states or reset/block/unblock nsei/nsvcs */ + install_node(&ns_bind_node, config_write_ns_bind); + install_lib_element(L_NS_BIND_NODE, &cfg_ns_bind_listen_cmd); + install_lib_element(L_NS_BIND_NODE, &cfg_no_ns_bind_listen_cmd); + install_lib_element(L_NS_BIND_NODE, &cfg_ns_bind_dscp_cmd); + install_lib_element(L_NS_BIND_NODE, &cfg_no_ns_bind_dscp_cmd); + install_lib_element(L_NS_BIND_NODE, &cfg_ns_bind_ipaccess_cmd); + install_lib_element(L_NS_BIND_NODE, &cfg_no_ns_bind_ipaccess_cmd); + install_lib_element(L_NS_BIND_NODE, &cfg_ns_bind_fr_cmd); + install_lib_element(L_NS_BIND_NODE, &cfg_no_ns_bind_fr_cmd); + /* TODO: accept-ip-sns when SGSN SNS has been implemented */ - return 0; -} - -/*! - * \brief gprs_ns2_vty_create parse the vty tree into ns nodes - * It has to be in different steps to ensure the bind is created before creating VCs. - * \return 0 on success - */ -int gprs_ns2_vty_create() { - struct ns2_vty_vc *vtyvc; - struct gprs_ns2_vc_bind *bind, *fr; - struct gprs_ns2_nse *nse; - struct gprs_ns2_vc *nsvc; - struct osmo_sockaddr sockaddr; - enum gprs_ns2_dialect dialect = GPRS_NS2_DIALECT_UNDEF; - int rc = 0; - - if (!vty_nsi) - return -1; - - /* create binds, only support a single bind. either FR or UDP */ - if (priv.frgre) { - /* TODO not yet supported !*/ - return -1; - } else { - /* UDP */ - osmo_sockaddr_str_to_sockaddr(&priv.udp, &sockaddr.u.sas); - if (gprs_ns2_ip_bind(vty_nsi, "vtybind", &sockaddr, priv.dscp, &bind)) { - /* TODO: could not bind on the specific address */ - return -1; - } - - bind->accept_ipaccess = priv.vc_mode == GPRS_NS2_VC_MODE_BLOCKRESET; - } - - /* create vcs */ - llist_for_each_entry(vtyvc, &priv.vtyvc, list) { - /* validate settings */ - switch (vtyvc->ll) { - case GPRS_NS2_LL_UDP: - if (priv.vc_mode == GPRS_NS2_VC_MODE_BLOCKRESET) - dialect = GPRS_NS2_DIALECT_IPACCESS; - else - dialect = GPRS_NS2_DIALECT_STATIC_ALIVE; - if (strlen(vtyvc->remote.ip) == 0) { - /* Invalid IP for VC */ - continue; - } - - if (!vtyvc->remote.port) { - /* Invalid port for VC */ - continue; - } - - if (osmo_sockaddr_str_to_sockaddr(&vtyvc->remote, &sockaddr.u.sas)) { - /* Invalid sockaddr for VC */ - continue; - } - break; - case GPRS_NS2_LL_FR: - dialect = GPRS_NS2_DIALECT_STATIC_RESETBLOCK; - break; - case GPRS_NS2_LL_FR_GRE: - dialect = GPRS_NS2_DIALECT_STATIC_RESETBLOCK; - continue; - case GPRS_NS2_LL_UNDEF: - /* should not happen */ - OSMO_ASSERT(false); - } - - nse = gprs_ns2_nse_by_nsei(vty_nsi, vtyvc->nsei); - if (!nse) { - nse = gprs_ns2_create_nse(vty_nsi, vtyvc->nsei, vtyvc->ll, dialect); - if (!nse) { - /* Could not create NSE for VTY */ - continue; - } - } - nse->persistent = true; - - switch (vtyvc->ll) { - case GPRS_NS2_LL_UDP: - nsvc = gprs_ns2_ip_connect(bind, - &sockaddr, - nse, - vtyvc->nsvci); - if (!nsvc) { - /* Could not create NSVC, connect failed */ - continue; - } - nsvc->persistent = true; - break; - case GPRS_NS2_LL_FR: { - if (vty_fr_network == NULL) { - /* TODO: add a switch for BSS/SGSN/gbproxy */ - vty_fr_network = osmo_fr_network_alloc(vty_nsi); - } - fr = gprs_ns2_fr_bind_by_netif( - vty_nsi, - vtyvc->netif); - if (!fr) { - rc = gprs_ns2_fr_bind(vty_nsi, vtyvc->netif, vtyvc->netif, vty_fr_network, vtyvc->fr.role, &fr); - if (rc < 0) { - LOGP(DLNS, LOGL_ERROR, "Can not create fr bind on device %s err: %d\n", vtyvc->netif, rc); - return rc; - } - } - - nsvc = gprs_ns2_fr_connect(fr, nse, vtyvc->nsvci, vtyvc->frdlci); - if (!nsvc) { - /* Could not create NSVC, connect failed */ - continue; - } - nsvc->persistent = true; - break; - } - case GPRS_NS2_LL_FR_GRE: - case GPRS_NS2_LL_UNDEF: - continue; - } - } - + install_node(&ns_nse_node, config_write_ns_nse); + install_lib_element(L_NS_NSE_NODE, &cfg_ns_nse_nsvc_fr_cmd); + install_lib_element(L_NS_NSE_NODE, &cfg_no_ns_nse_nsvci_cmd); + install_lib_element(L_NS_NSE_NODE, &cfg_no_ns_nse_nsvc_fr_dlci_cmd); + install_lib_element(L_NS_NSE_NODE, &cfg_ns_nse_nsvc_udp_cmd); + install_lib_element(L_NS_NSE_NODE, &cfg_no_ns_nse_nsvc_udp_cmd); + install_lib_element(L_NS_NSE_NODE, &cfg_ns_nse_nsvc_ipa_cmd); + install_lib_element(L_NS_NSE_NODE, &cfg_no_ns_nse_nsvc_ipa_cmd); + install_lib_element(L_NS_NSE_NODE, &cfg_ns_nse_ip_sns_cmd); + install_lib_element(L_NS_NSE_NODE, &cfg_no_ns_nse_ip_sns_cmd); return 0; } diff --git a/src/gb/gprs_ns2_vty2.c b/src/gb/gprs_ns2_vty2.c deleted file mode 100644 index 31aff3e..0000000 --- a/src/gb/gprs_ns2_vty2.c +++ /dev/null @@ -1,1676 +0,0 @@ -/*! \file gprs_ns2_vty.c - * VTY interface for our GPRS Networks Service (NS) implementation. */ - -/* (C) 2020 by sysmocom - s.f.m.c. GmbH - * Author: Alexander Couzens - * - * All Rights Reserved - * - * SPDX-License-Identifier: GPL-2.0+ - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - */ - -#include -#include -#include -#include - -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "gprs_ns2_internal.h" - -#define SHOW_NS_STR "Display information about the NS protocol\n" -#define NSVCI_STR "NS Virtual Connection ID (NS-VCI)\n" -#define DLCI_STR "Data Link connection identifier\n" - -static struct gprs_ns2_inst *vty_nsi = NULL; -static struct osmo_fr_network *vty_fr_network = NULL; -static struct llist_head binds; - -struct vty_bind { - struct llist_head list; - const char *name; - enum gprs_ns2_ll ll; - int dscp; - bool accept_ipaccess; - bool accept_sns; -}; - -/* TODO: this should into osmo timer */ -static const struct value_string gprs_ns_timer_strs[] = { - { 0, "tns-block" }, - { 1, "tns-block-retries" }, - { 2, "tns-reset" }, - { 3, "tns-reset-retries" }, - { 4, "tns-test" }, - { 5, "tns-alive" }, - { 6, "tns-alive-retries" }, - { 7, "tsns-prov" }, - { 8, "tsns-size-retries" }, - { 9, "tsns-config-retries" }, - { 0, NULL } -}; - -const struct value_string vty_fr_role_names[] = { - { FR_ROLE_USER_EQUIPMENT, "fr" }, - { FR_ROLE_NETWORK_EQUIPMENT, "frnet" }, - { 0, NULL } -}; - -const struct value_string vty_ll_names[] = { - { GPRS_NS2_LL_FR, "fr" }, - { GPRS_NS2_LL_FR_GRE, "frgre" }, - { GPRS_NS2_LL_UDP, "udp" }, - { 0, NULL } -}; - -static struct vty_bind *vty_bind_by_name(const char *name) -{ - struct vty_bind *vbind; - llist_for_each_entry(vbind, &binds, list) { - if (!strncmp(vbind->name, name, strlen(vbind->name))) - return vbind; - } - return NULL; -} - -static struct vty_bind *vty_bind_alloc(const char *name) -{ - struct vty_bind *vbind = talloc_zero(vty_nsi, struct vty_bind); - if (!vbind) - return NULL; - - vbind->name = talloc_strdup(vty_nsi, name); - if (!vbind->name) { - talloc_free(vbind); - return NULL; - } - - llist_add(&vbind->list, &binds); - return vbind; -} - -static void vty_bind_free(struct vty_bind *vbind) -{ - if (!vbind) - return; - - llist_del(&vbind->list); -} - -static struct cmd_node ns_node = { - L_NS_NODE, - "%s(config-ns)# ", - 1, -}; - -DEFUN(cfg_ns, cfg_ns_cmd, - "ns", - "Configure the GPRS Network Service") -{ - vty->node = L_NS_NODE; - return CMD_SUCCESS; -} - -DEFUN(cfg_ns_timer, cfg_ns_timer_cmd, - "timer " NS_TIMERS " <0-65535>", - "Network Service Timer\n" - NS_TIMERS_HELP "Timer Value\n") -{ - int idx = get_string_value(gprs_ns_timer_strs, argv[0]); - int val = atoi(argv[1]); - - if (idx < 0 || idx >= ARRAY_SIZE(vty_nsi->timeout)) - return CMD_WARNING; - - vty_nsi->timeout[idx] = val; - - return CMD_SUCCESS; -} - -DEFUN(cfg_ns_nsei, cfg_ns_nsei_cmd, - "nse <0-65535>", - "Persistent NS Entity\n" - "NS Entity ID (NSEI)\n" - ) -{ - struct gprs_ns2_nse *nse; - uint16_t nsei = atoi(argv[0]); - - nse = gprs_ns2_nse_by_nsei(vty_nsi, nsei); - if (!nse) { - nse = gprs_ns2_create_nse(vty_nsi, nsei, GPRS_NS2_LL_UNDEF, GPRS_NS2_DIALECT_UNDEF); - if (!nse) { - vty_out(vty, "Failed to create NSE!%s", VTY_NEWLINE); - return CMD_ERR_INCOMPLETE; - } - nse->persistent = true; - } - - if (!nse->persistent) { - /* TODO: should the dynamic NSE removed? */ - vty_out(vty, "A dynamic NSE with the specified NSEI already exists%s", VTY_NEWLINE); - return CMD_ERR_INCOMPLETE; - } - - vty->node = L_NS_NSE_NODE; - vty->index = nse; - - return CMD_SUCCESS; -} - -DEFUN(cfg_no_ns_nsei, cfg_no_ns_nsei_cmd, - "no nse <0-65535>", - NO_STR - "Delete a Persistent NS Entity\n" - "NS Entity ID (NSEI)\n" - ) -{ - struct gprs_ns2_nse *nse; - uint16_t nsei = atoi(argv[0]); - - nse = gprs_ns2_nse_by_nsei(vty_nsi, nsei); - if (!nse) { - vty_out(vty, "Can not find NS Entity %s%s", argv[0], VTY_NEWLINE); - return CMD_ERR_NOTHING_TODO; - } - - if (!nse->persistent) { - vty_out(vty, "Ignoring non-persistent NS Entity%s", VTY_NEWLINE); - return CMD_WARNING; - } - - vty_out(vty, "Deleting NS Entity %u%s", nse->nsei, VTY_NEWLINE); - gprs_ns2_free_nse(nse); - return CMD_SUCCESS; -} - -/* TODO: add fr/gre */ -DEFUN(cfg_ns_bind, cfg_ns_bind_cmd, - "bind (fr|udp) ID", - "Binding\n" - "Frame Relay\n" "UDP/IP\n" - "a unique identifier for this bind to reference NS-VCs\n" - ) -{ - const char *nstype = argv[0]; - const char *name = argv[1]; - struct vty_bind *vbind; - enum gprs_ns2_ll ll; - int rc; - - rc = get_string_value(vty_ll_names, nstype); - if (rc < 0) - return CMD_WARNING; - ll = (enum gprs_ns2_ll) rc; - - if (!osmo_identifier_valid(name)) { - vty_out(vty, "Invalid ID. The ID should be only alphanumeric.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - vbind = vty_bind_by_name(name); - if (vbind) { - if (vbind->ll != ll) { - vty_out(vty, "A bind with the specified ID already exists with a different type (fr|frgre|udp)!%s", - VTY_NEWLINE); - return CMD_WARNING; - } - } else { - vbind = vty_bind_alloc(name); - if (!vbind) { - vty_out(vty, "Can not create bind - out of memory%s", VTY_NEWLINE); - return CMD_WARNING; - } - vbind->ll = ll; - } - - vty->index = vbind; - vty->node = L_NS_BIND_NODE; - - return CMD_SUCCESS; -} - -DEFUN(cfg_no_ns_bind, cfg_no_ns_bind_cmd, - "no bind ID", - NO_STR - "Delete a binding\n" - "a unique identifier for this bind to reference NS-VCs\n" - ) -{ - struct vty_bind *vbind; - struct gprs_ns2_vc_bind *bind; - const char *name = argv[0]; - - vbind = vty_bind_by_name(name); - if (!vbind) { - vty_out(vty, "bind %s does not exist!%s", name, VTY_NEWLINE); - return CMD_WARNING; - } - vty_bind_free(vbind); - bind = gprs_ns2_bind_by_name(vty_nsi, name); - if (bind) - bind->driver->free_bind(bind); - return CMD_SUCCESS; -} - - -static void config_write_vbind(struct vty *vty, struct vty_bind *vbind) -{ - struct gprs_ns2_vc_bind *bind; - const struct osmo_sockaddr *addr; - struct osmo_sockaddr_str addr_str; - const char *netif, *frrole_str, *llstr; - enum osmo_fr_role frrole; - - llstr = get_value_string_or_null(vty_ll_names, vbind->ll); - if (!llstr) - return; - vty_out(vty, " bind %s %s%s", llstr, vbind->name, VTY_NEWLINE); - - bind = gprs_ns2_bind_by_name(vty_nsi, vbind->name); - switch (vbind->ll) { - case GPRS_NS2_LL_FR: - if (bind) { - netif = gprs_ns2_fr_bind_netif(bind); - if (!netif) - return; - frrole = gprs_ns2_fr_bind_role(bind); - if ((int) frrole == -1) - return; - frrole_str = get_value_string_or_null(vty_fr_role_names, frrole); - if (netif && frrole_str) - vty_out(vty, " fr %s %s%s", netif, frrole_str, VTY_NEWLINE); - } - break; - case GPRS_NS2_LL_UDP: - if (bind) { - addr = gprs_ns2_ip_bind_sockaddr(bind); - if (!osmo_sockaddr_str_from_sockaddr(&addr_str, &addr->u.sas)) { - vty_out(vty, " listen %s %u%s", addr_str.ip, addr_str.port, - VTY_NEWLINE); - } - } - if (vbind->accept_ipaccess) - vty_out(vty, " accept-ipaccess%s", VTY_NEWLINE); - if (vbind->dscp) - vty_out(vty, " dscp %u%s", vbind->dscp, VTY_NEWLINE); - break; - default: - return; - } -} - -static void config_write_nsvc(struct vty *vty, const struct gprs_ns2_vc *nsvc) -{ - const char *netif; - uint16_t dlci; - const struct osmo_sockaddr *addr; - struct osmo_sockaddr_str addr_str; - - switch (nsvc->nse->ll) { - case GPRS_NS2_LL_UNDEF: - break; - case GPRS_NS2_LL_UDP: - switch (nsvc->nse->dialect) { - case GPRS_NS2_DIALECT_IPACCESS: - addr = gprs_ns2_ip_vc_remote(nsvc); - if (!addr) - break; - if (osmo_sockaddr_str_from_sockaddr(&addr_str, &addr->u.sas)) - break; - vty_out(vty, " nsvc ipa %s %s %u nsvci %u%s", - nsvc->bind->name, addr_str.ip, addr_str.port, - nsvc->nsvci, VTY_NEWLINE); - break; - case GPRS_NS2_DIALECT_STATIC_ALIVE: - addr = gprs_ns2_ip_vc_remote(nsvc); - if (!addr) - break; - if (osmo_sockaddr_str_from_sockaddr(&addr_str, &addr->u.sas)) - break; - vty_out(vty, " nsvc udp %s %s %u%s", - nsvc->bind->name, addr_str.ip, addr_str.port, VTY_NEWLINE); - break; - default: - break; - } - break; - case GPRS_NS2_LL_FR: - netif = gprs_ns2_fr_bind_netif(nsvc->bind); - if (!netif) - break; - dlci = gprs_ns2_fr_nsvc_dlci(nsvc); - if (!dlci) - break; - OSMO_ASSERT(nsvc->nsvci_is_valid); - vty_out(vty, " nsvc fr %s dlci %u nsvci %u%s", - netif, dlci, nsvc->nsvci, VTY_NEWLINE); - break; - case GPRS_NS2_LL_FR_GRE: - break; - } -} - -static void _config_write_ns_nse(struct vty *vty, struct gprs_ns2_nse *nse) -{ - struct gprs_ns2_vc *nsvc; - - vty_out(vty, " nse %u%s", nse->nsei, VTY_NEWLINE); - switch (nse->dialect) { - case GPRS_NS2_DIALECT_SNS: - ns2_sns_write_vty(vty, nse); - break; - default: - llist_for_each_entry(nsvc, &nse->nsvc, list) { - config_write_nsvc(vty, nsvc); - } - break; - } -} - -static int config_write_ns(struct vty *vty) -{ - unsigned int i; - - vty_out(vty, "ns%s", VTY_NEWLINE); - - for (i = 0; i < ARRAY_SIZE(vty_nsi->timeout); i++) - vty_out(vty, " timer %s %u%s", - get_value_string(gprs_ns_timer_strs, i), - vty_nsi->timeout[i], VTY_NEWLINE); - - return 0; -} - -static int config_write_ns_nse(struct vty *vty) -{ - struct gprs_ns2_nse *nse; - - llist_for_each_entry(nse, &vty_nsi->nse, list) { - if (!nse->persistent) - continue; - - _config_write_ns_nse(vty, nse); - } - - return 0; -} - -static int config_write_ns_bind(struct vty *vty) -{ - struct vty_bind *vbind; - - llist_for_each_entry(vbind, &binds, list) { - config_write_vbind(vty, vbind); - } - - return 0; -} - -static struct cmd_node ns_bind_node = { - L_NS_BIND_NODE, - "%s(config-ns-bind)# ", - 1, -}; - -DEFUN(cfg_ns_bind_listen, cfg_ns_bind_listen_cmd, - "listen " VTY_IPV46_CMD " <1-65535>", - "Binding\n" - "IPv4 Address\n" "IPv6 Address\n" - "Port\n" - ) -{ - struct vty_bind *vbind = vty->index; - struct gprs_ns2_vc_bind *bind; - - const char *addr_str = argv[0]; - unsigned int port = atoi(argv[1]); - struct osmo_sockaddr_str sockaddr_str; - struct osmo_sockaddr sockaddr; - - if (vbind->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "listen can be only used with UDP bind%s", - VTY_NEWLINE); - return CMD_WARNING; - } - - if (osmo_sockaddr_str_from_str(&sockaddr_str, addr_str, port)) { - vty_out(vty, "Can not parse the Address %s %s%s", argv[0], argv[1], VTY_NEWLINE); - return CMD_WARNING; - } - osmo_sockaddr_str_to_sockaddr(&sockaddr_str, &sockaddr.u.sas); - if (gprs_ns2_ip_bind_by_sockaddr(vty_nsi, &sockaddr)) { - vty_out(vty, "A bind with the specified address already exists!%s", VTY_NEWLINE); - return CMD_WARNING; - } - - if (gprs_ns2_ip_bind(vty_nsi, vbind->name, &sockaddr, vbind->dscp, &bind) != 0) { - vty_out(vty, "Failed to create the bind!%s", VTY_NEWLINE); - return CMD_WARNING; - } - - bind->accept_ipaccess = vbind->accept_ipaccess; - bind->accept_sns = vbind->accept_sns; - - return CMD_SUCCESS; -} - -DEFUN(cfg_no_ns_bind_listen, cfg_no_ns_bind_listen_cmd, - "no listen", - NO_STR - "Delete a IP/Port assignment\n" - ) -{ - struct vty_bind *vbind = vty->index; - struct gprs_ns2_vc_bind *bind; - - if (vbind->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "no listen can be only used with UDP bind%s", VTY_NEWLINE); - return CMD_WARNING; - } - - bind = gprs_ns2_bind_by_name(vty_nsi, vbind->name); - if (!bind) - return CMD_ERR_NOTHING_TODO; - - OSMO_ASSERT(bind->ll != GPRS_NS2_LL_UDP); - bind->driver->free_bind(bind); - return CMD_SUCCESS; -} - -DEFUN(cfg_ns_bind_dscp, cfg_ns_bind_dscp_cmd, - "dscp <0-255>", - "Set DSCP/TOS on the UDP socket\n" "DSCP Value\n") -{ - struct vty_bind *vbind = vty->index; - struct gprs_ns2_vc_bind *bind; - uint16_t dscp = atoi(argv[0]); - - if (vbind->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "dscp can be only used with UDP bind%s", - VTY_NEWLINE); - return CMD_WARNING; - } - - vbind->dscp = dscp; - bind = gprs_ns2_bind_by_name(vty_nsi, vbind->name); - if (bind) - gprs_ns2_ip_bind_set_dscp(bind, dscp); - - return CMD_SUCCESS; -} - -DEFUN(cfg_no_ns_bind_dscp, cfg_no_ns_bind_dscp_cmd, - "no dscp", - "Set DSCP/TOS on the UDP socket\n" "DSCP Value\n") -{ - struct vty_bind *vbind = vty->index; - struct gprs_ns2_vc_bind *bind; - uint16_t dscp = 0; - - if (vbind->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "dscp can be only used with UDP bind%s", - VTY_NEWLINE); - return CMD_WARNING; - } - - vbind->dscp = dscp; - bind = gprs_ns2_bind_by_name(vty_nsi, vbind->name); - if (bind) - gprs_ns2_ip_bind_set_dscp(bind, dscp); - - return CMD_SUCCESS; -} - -DEFUN(cfg_ns_bind_ipaccess, cfg_ns_bind_ipaccess_cmd, - "accept-ipaccess", - "Allow to create dynamic NS Entity by NS Reset PDU on UDP (ip.access style)\n" - ) -{ - struct vty_bind *vbind = vty->index; - struct gprs_ns2_vc_bind *bind; - - if (vbind->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "accept-ipaccess can be only used with UDP bind%s", - VTY_NEWLINE); - return CMD_WARNING; - } - - vbind->accept_ipaccess = true; - bind = gprs_ns2_bind_by_name(vty_nsi, vbind->name); - if (bind) - bind->accept_ipaccess = true; - - return CMD_SUCCESS; -} - -DEFUN(cfg_no_ns_bind_ipaccess, cfg_no_ns_bind_ipaccess_cmd, - "no accept-ipaccess", - NO_STR - "Reject NS Reset PDU on UDP (ip.access style)\n" - ) -{ - struct vty_bind *vbind = vty->index; - struct gprs_ns2_vc_bind *bind; - - if (vbind->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "no accept-ipaccess can be only used with UDP bind%s", - VTY_NEWLINE); - return CMD_WARNING; - } - - vbind->accept_ipaccess = false; - bind = gprs_ns2_bind_by_name(vty_nsi, vbind->name); - if (bind) - bind->accept_ipaccess = false; - - return CMD_SUCCESS; -} - - -DEFUN(cfg_ns_bind_fr, cfg_ns_bind_fr_cmd, - "fr NETIF (fr|frnet)", - "frame relay\n" - IFNAME_STR - "fr (user) is used by BSS or SGSN attached to UNI of a FR network\n" - "frnet (network) is used by SGSN if BSS is directly attached\n" - ) -{ - struct vty_bind *vbind = vty->index; - struct gprs_ns2_vc_bind *bind; - const char *netif = argv[0]; - const char *role = argv[1]; - - int rc = 0; - enum osmo_fr_role frrole; - - if (vbind->ll != GPRS_NS2_LL_FR) { - vty_out(vty, "fr can be only used with frame relay bind%s", VTY_NEWLINE); - return CMD_WARNING; - } - - if (!strcmp(role, "fr")) - frrole = FR_ROLE_USER_EQUIPMENT; - else if (!strcmp(role, "frnet")) - frrole = FR_ROLE_NETWORK_EQUIPMENT; - else - return CMD_WARNING; - - bind = gprs_ns2_fr_bind_by_netif(vty_nsi, netif); - if (bind) { - vty_out(vty, "Interface %s already used.%s", netif, VTY_NEWLINE); - return CMD_WARNING; - } - - rc = gprs_ns2_fr_bind(vty_nsi, vbind->name, netif, vty_fr_network, frrole, &bind); - if (rc < 0) { - LOGP(DLNS, LOGL_ERROR, "Failed to bind interface %s on fr. Err: %d\n", netif, rc); - return CMD_WARNING; - } - - return CMD_SUCCESS; -} - -DEFUN(cfg_no_ns_bind_fr, cfg_no_ns_bind_fr_cmd, - "no fr NETIF", - NO_STR - "Delete a frame relay link\n" - "Delete a frame relay link\n" - IFNAME_STR - ) -{ - struct vty_bind *vbind = vty->index; - struct gprs_ns2_vc_bind *bind; - const char *netif = argv[0]; - - if (vbind->ll != GPRS_NS2_LL_FR) { - vty_out(vty, "fr can be only used with frame relay bind%s", - VTY_NEWLINE); - return CMD_WARNING; - } - - bind = gprs_ns2_fr_bind_by_netif(vty_nsi, netif); - if (!bind) { - vty_out(vty, "Interface not found.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - if (strcmp(bind->name, vbind->name)) { - vty_out(vty, "The specified interface is not bound to this bind.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - bind->driver->free_bind(bind); - return CMD_SUCCESS; -} - - -static struct cmd_node ns_nse_node = { - L_NS_NSE_NODE, - "%s(config-ns-nse)# ", - 1, -}; - -DEFUN(cfg_ns_nse_nsvc_fr, cfg_ns_nse_nsvc_fr_cmd, - "nsvc fr NETIF dlci <16-1007> nsvci <0-65535>", - "NS Virtual Connection\n" - "frame relay\n" - "frame relay interface. Must be registered via fr vty\n" - NSVCI_STR - NSVCI_STR - DLCI_STR - DLCI_STR - ) -{ - struct gprs_ns2_vc_bind *bind; - struct gprs_ns2_vc *nsvc; - struct gprs_ns2_nse *nse = vty->index; - const char *netif = argv[0]; - uint16_t dlci = atoi(argv[1]); - uint16_t nsvci = atoi(argv[2]); - bool dialect_modified = false; - bool ll_modified = false; - - if (nse->ll != GPRS_NS2_LL_FR && nse->ll != GPRS_NS2_LL_UNDEF) { - vty_out(vty, "Can not mix NS-VC with different link layer%s", VTY_NEWLINE); - goto err; - } - - if (nse->dialect != GPRS_NS2_DIALECT_STATIC_RESETBLOCK && nse->dialect != GPRS_NS2_DIALECT_UNDEF) { - vty_out(vty, "Can not mix NS-VC with different dialects%s", VTY_NEWLINE); - goto err; - } - - if (nse->ll == GPRS_NS2_LL_UNDEF) { - nse->ll = GPRS_NS2_LL_FR; - ll_modified = true; - } - - if (nse->dialect == GPRS_NS2_DIALECT_UNDEF) { - nse->dialect = GPRS_NS2_DIALECT_STATIC_RESETBLOCK; - dialect_modified = true; - } - - - bind = gprs_ns2_fr_bind_by_netif(vty_nsi, netif); - if (!bind) { - vty_out(vty, "Can not find fr interface \"%s\". Please configure it via fr vty.%s", - netif, VTY_NEWLINE); - goto err; - } - - if (gprs_ns2_fr_nsvc_by_dlci(bind, dlci)) { - vty_out(vty, "A NS-VC with the specified DLCI already exist!%s", VTY_NEWLINE); - goto err; - } - - if (gprs_ns2_nsvc_by_nsvci(vty_nsi, nsvci)) { - vty_out(vty, "A NS-VC with the specified NS-VCI already exist!%s", VTY_NEWLINE); - goto err; - } - - nsvc = gprs_ns2_fr_connect(bind, nse, nsvci, dlci); - if (!nsvc) { - /* Could not create NS-VC, connect failed */ - vty_out(vty, "Failed to create the NS-VC%s", VTY_NEWLINE); - goto err; - } - nsvc->persistent = true; - return CMD_SUCCESS; - -err: - if (ll_modified) - nse->ll = GPRS_NS2_LL_UNDEF; - if (dialect_modified) - nse->dialect = GPRS_NS2_DIALECT_UNDEF; - - return CMD_WARNING; -} - -DEFUN(cfg_no_ns_nse_nsvc_fr_dlci, cfg_no_ns_nse_nsvc_fr_dlci_cmd, - "no nsvc fr NETIF dlci <16-1007>", - NO_STR - "Delete frame relay NS-VC\n" - "frame relay\n" - "frame relay interface. Must be registered via fr vty\n" - DLCI_STR - DLCI_STR - ) -{ - struct gprs_ns2_vc_bind *bind; - struct gprs_ns2_vc *nsvc; - struct gprs_ns2_nse *nse = vty->index; - const char *netif = argv[0]; - uint16_t dlci = atoi(argv[1]); - - if (nse->ll != GPRS_NS2_LL_FR) { - vty_out(vty, "This NSE doesn't support frame relay.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - bind = gprs_ns2_fr_bind_by_netif(vty_nsi, netif); - if (!bind) { - vty_out(vty, "Can not find fr interface \"%s\"%s", - netif, VTY_NEWLINE); - return CMD_ERR_NOTHING_TODO; - } - - nsvc = gprs_ns2_fr_nsvc_by_dlci(bind, dlci); - if (!nsvc) { - vty_out(vty, "Can not find a NS-VC on fr interface %s with dlci %u%s", - netif, dlci, VTY_NEWLINE); - return CMD_WARNING; - } - - if (nse != nsvc->nse) { - vty_out(vty, "The specified NS-VC is not a part of the NSE %u!%s" - "To remove this NS-VC go to the vty node 'nse %u'%s", - nse->nsei, VTY_NEWLINE, - nsvc->nse->nsei, VTY_NEWLINE); - return CMD_WARNING; - } - - gprs_ns2_free_nsvc(nsvc); - if (llist_empty(&nse->nsvc)) { - nse->ll = GPRS_NS2_LL_UNDEF; - nse->dialect = GPRS_NS2_DIALECT_UNDEF; - } - - return CMD_SUCCESS; -} - -DEFUN(cfg_no_ns_nse_nsvci, cfg_no_ns_nse_nsvci_cmd, - "no nsvc nsvci <0-65535>", - NO_STR - "Delete NSVC\n" - NSVCI_STR - NSVCI_STR - ) -{ - struct gprs_ns2_vc *nsvc; - struct gprs_ns2_nse *nse = vty->index; - uint16_t nsvci = atoi(argv[0]); - - switch (nse->dialect) { - case GPRS_NS2_DIALECT_SNS: - case GPRS_NS2_DIALECT_STATIC_ALIVE: - vty_out(vty, "NSE doesn't support NSVCI.%s", VTY_NEWLINE); - return CMD_WARNING; - case GPRS_NS2_DIALECT_UNDEF: - vty_out(vty, "No NSVCs configured%s", VTY_NEWLINE); - return CMD_WARNING; - case GPRS_NS2_DIALECT_IPACCESS: - case GPRS_NS2_DIALECT_STATIC_RESETBLOCK: - break; - } - - nsvc = gprs_ns2_nsvc_by_nsvci(vty_nsi, nsvci); - if (!nsvc) { - vty_out(vty, "Can not find NS-VC with NS-VCI %u%s", nsvci, VTY_NEWLINE); - return CMD_WARNING; - } - - if (nse != nsvc->nse) { - vty_out(vty, "NS-VC with NS-VCI %u is not part of this NSE!%s", - nsvci, VTY_NEWLINE); - return CMD_WARNING; - } - - gprs_ns2_free_nsvc(nsvc); - if (llist_empty(&nse->nsvc)) { - nse->ll = GPRS_NS2_LL_UNDEF; - nse->dialect = GPRS_NS2_DIALECT_UNDEF; - } - - return CMD_SUCCESS; -} - -DEFUN(cfg_ns_nse_nsvc_udp, cfg_ns_nse_nsvc_udp_cmd, - "nsvc udp BIND " VTY_IPV46_CMD " <1-65535>", - "NS Virtual Connection\n" - "NS over UDP\n" - "A unique bind identifier created by ns bind\n" - "Remote IPv4 Address\n" "Remote IPv6 Address\n" - "Remote UDP Port\n" - ) -{ - struct gprs_ns2_vc_bind *bind; - struct gprs_ns2_vc *nsvc; - struct gprs_ns2_nse *nse = vty->index; - bool dialect_modified = false; - bool ll_modified = false; - - const char *bind_name = argv[0]; - struct osmo_sockaddr_str remote_str; - struct osmo_sockaddr remote; - uint16_t port = atoi(argv[2]); - - if (nse->ll == GPRS_NS2_LL_UNDEF) { - nse->ll = GPRS_NS2_LL_UDP; - ll_modified = true; - } - - if (nse->dialect == GPRS_NS2_DIALECT_UNDEF) { - nse->dialect = GPRS_NS2_DIALECT_STATIC_ALIVE; - dialect_modified = true; - } - - if (nse->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "Can not mix NS-VC with different link layer%s", VTY_NEWLINE); - goto err; - } - - if (nse->dialect != GPRS_NS2_DIALECT_STATIC_ALIVE) { - vty_out(vty, "Can not mix NS-VC with different dialects%s", VTY_NEWLINE); - goto err; - } - - if (osmo_sockaddr_str_from_str(&remote_str, argv[1], port)) { - vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); - goto err; - } - - if (osmo_sockaddr_str_to_sockaddr(&remote_str, &remote.u.sas)) { - vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); - goto err; - } - - bind = gprs_ns2_bind_by_name(vty_nsi, bind_name); - if (!bind) { - vty_out(vty, "Can not find bind with name %s%s", - bind_name, VTY_NEWLINE); - goto err; - } - - if (bind->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "Bind %s is not an UDP bind.%s", - bind_name, VTY_NEWLINE); - goto err; - } - - nsvc = gprs_ns2_ip_connect(bind, &remote, nse, 0); - if (!nsvc) { - vty_out(vty, "Can not create NS-VC.%s", VTY_NEWLINE); - goto err; - } - nsvc->persistent = true; - - return CMD_SUCCESS; - -err: - if (ll_modified) - nse->ll = GPRS_NS2_LL_UNDEF; - if (dialect_modified) - nse->dialect = GPRS_NS2_DIALECT_UNDEF; - return CMD_WARNING; -} - -DEFUN(cfg_no_ns_nse_nsvc_udp, cfg_no_ns_nse_nsvc_udp_cmd, - "no nsvc udp BIND " VTY_IPV46_CMD " <1-65535>", - NO_STR - "Delete a NS Virtual Connection\n" - "NS over UDP\n" - "A unique bind identifier created by ns bind\n" - "Remote IPv4 Address\n" "Remote IPv6 Address\n" - "Remote UDP Port\n" - ) -{ - struct gprs_ns2_vc_bind *bind; - struct gprs_ns2_vc *nsvc; - struct gprs_ns2_nse *nse = vty->index; - const char *bind_name = argv[0]; - struct osmo_sockaddr_str remote_str; - struct osmo_sockaddr remote; - uint16_t port = atoi(argv[2]); - - if (nse->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "This NSE doesn't support UDP.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - if (nse->dialect != GPRS_NS2_DIALECT_STATIC_ALIVE) { - vty_out(vty, "This NSE doesn't support UDP with dialect static alive.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - bind = gprs_ns2_bind_by_name(vty_nsi, bind_name); - if (!bind) { - vty_out(vty, "Can not find bind with name %s%s", - bind_name, VTY_NEWLINE); - return CMD_WARNING; - } - - if (bind->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "Bind %s is not an UDP bind.%s", - bind_name, VTY_NEWLINE); - return CMD_WARNING; - } - - if (osmo_sockaddr_str_from_str(&remote_str, argv[1], port)) { - vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - if (osmo_sockaddr_str_to_sockaddr(&remote_str, &remote.u.sas)) { - vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - nsvc = gprs_ns2_nsvc_by_sockaddr_bind(bind, &remote); - if (!nsvc) { - vty_out(vty, "Can not find NS-VC with remote %s:%u%s", - remote_str.ip, remote_str.port, VTY_NEWLINE); - return CMD_WARNING; - } - - if (!nsvc->persistent) { - vty_out(vty, "NS-VC with remote %s:%u is a dynamic NS-VC. Not configured by vty.%s", - remote_str.ip, remote_str.port, VTY_NEWLINE); - return CMD_WARNING; - } - - if (nsvc->nse != nse) { - vty_out(vty, "NS-VC is not part of this NSE!%s", VTY_NEWLINE); - return CMD_WARNING; - } - - gprs_ns2_free_nsvc(nsvc); - if (llist_empty(&nse->nsvc)) { - nse->ll = GPRS_NS2_LL_UNDEF; - nse->dialect = GPRS_NS2_DIALECT_UNDEF; - } - - return CMD_SUCCESS; -} - -DEFUN(cfg_ns_nse_nsvc_ipa, cfg_ns_nse_nsvc_ipa_cmd, - "nsvc ipa BIND " VTY_IPV46_CMD " <1-65535> nsvci <0-65535>" , - "NS Virtual Connection\n" - "NS over UDP ip.access style (uses RESET/BLOCK)\n" - "A unique bind identifier created by ns bind\n" - "Remote IPv4 Address\n" "Remote IPv6 Address\n" - "Remote UDP Port\n" - NSVCI_STR - NSVCI_STR - ) -{ - struct gprs_ns2_vc_bind *bind; - struct gprs_ns2_vc *nsvc; - struct gprs_ns2_nse *nse = vty->index; - bool dialect_modified = false; - bool ll_modified = false; - - const char *bind_name = argv[0]; - struct osmo_sockaddr_str remote_str; - struct osmo_sockaddr remote; - uint16_t port = atoi(argv[2]); - uint16_t nsvci = atoi(argv[3]); - - if (nse->ll == GPRS_NS2_LL_UNDEF) { - nse->ll = GPRS_NS2_LL_UDP; - ll_modified = true; - } - - if (nse->dialect == GPRS_NS2_DIALECT_UNDEF) { - nse->dialect = GPRS_NS2_DIALECT_IPACCESS; - dialect_modified = true; - } - - if (nse->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "Can not mix NS-VC with different link layer%s", VTY_NEWLINE); - goto err; - } - - if (nse->dialect != GPRS_NS2_DIALECT_IPACCESS) { - vty_out(vty, "Can not mix NS-VC with different dialects%s", VTY_NEWLINE); - goto err; - } - - if (osmo_sockaddr_str_from_str(&remote_str, argv[1], port)) { - vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); - goto err; - } - - if (osmo_sockaddr_str_to_sockaddr(&remote_str, &remote.u.sas)) { - vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); - goto err; - } - - bind = gprs_ns2_bind_by_name(vty_nsi, bind_name); - if (!bind) { - vty_out(vty, "Can not find bind with name %s%s", - bind_name, VTY_NEWLINE); - goto err; - } - - if (bind->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "Bind %s is not an UDP bind.%s", - bind_name, VTY_NEWLINE); - goto err; - } - - nsvc = gprs_ns2_ip_connect(bind, &remote, nse, nsvci); - if (!nsvc) { - vty_out(vty, "Can not create NS-VC.%s", VTY_NEWLINE); - goto err; - } - nsvc->persistent = true; - - return CMD_SUCCESS; - -err: - if (ll_modified) - nse->ll = GPRS_NS2_LL_UNDEF; - if (dialect_modified) - nse->dialect = GPRS_NS2_DIALECT_UNDEF; - return CMD_WARNING; -} - -DEFUN(cfg_no_ns_nse_nsvc_ipa, cfg_no_ns_nse_nsvc_ipa_cmd, - "no nsvc ipa BIND " VTY_IPV46_CMD " <1-65535> nsvci <0-65535>", - NO_STR - "Delete a NS Virtual Connection\n" - "NS over UDP\n" - "A unique bind identifier created by ns bind\n" - "Remote IPv4 Address\n" "Remote IPv6 Address\n" - "Remote UDP Port\n" - NSVCI_STR - NSVCI_STR - ) -{ - struct gprs_ns2_vc_bind *bind; - struct gprs_ns2_vc *nsvc; - struct gprs_ns2_nse *nse = vty->index; - const char *bind_name = argv[0]; - struct osmo_sockaddr_str remote_str; - struct osmo_sockaddr remote; - uint16_t port = atoi(argv[2]); - uint16_t nsvci = atoi(argv[3]); - - if (nse->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "This NSE doesn't support UDP.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - if (nse->dialect != GPRS_NS2_DIALECT_IPACCESS) { - vty_out(vty, "This NSE doesn't support UDP with dialect ipaccess.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - bind = gprs_ns2_bind_by_name(vty_nsi, bind_name); - if (!bind) { - vty_out(vty, "Can not find bind with name %s%s", - bind_name, VTY_NEWLINE); - return CMD_WARNING; - } - - if (bind->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "Bind %s is not an UDP bind.%s", - bind_name, VTY_NEWLINE); - return CMD_WARNING; - } - - if (osmo_sockaddr_str_from_str(&remote_str, argv[1], port)) { - vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - if (osmo_sockaddr_str_to_sockaddr(&remote_str, &remote.u.sas)) { - vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - nsvc = gprs_ns2_nsvc_by_sockaddr_bind(bind, &remote); - if (!nsvc) { - vty_out(vty, "Can not find NS-VC with remote %s:%u%s", - remote_str.ip, remote_str.port, VTY_NEWLINE); - return CMD_WARNING; - } - - if (!nsvc->persistent) { - vty_out(vty, "NS-VC with remote %s:%u is a dynamic NS-VC. Not configured by vty.%s", - remote_str.ip, remote_str.port, VTY_NEWLINE); - return CMD_WARNING; - } - - if (nsvc->nse != nse) { - vty_out(vty, "NS-VC is not part of this NSE!%s", VTY_NEWLINE); - return CMD_WARNING; - } - - if (!nsvc->nsvci_is_valid) { - vty_out(vty, "NS-VC doesn't have a nsvci!%s", VTY_NEWLINE); - return CMD_WARNING; - } - - if (nsvc->nsvci != nsvci) { - vty_out(vty, "NS-VC has a different nsvci (%u)!%s", - nsvc->nsvci, VTY_NEWLINE); - return CMD_WARNING; - } - - gprs_ns2_free_nsvc(nsvc); - if (llist_empty(&nse->nsvc)) { - nse->ll = GPRS_NS2_LL_UNDEF; - nse->dialect = GPRS_NS2_DIALECT_UNDEF; - } - - return CMD_SUCCESS; -} - -DEFUN(cfg_ns_nse_ip_sns, cfg_ns_nse_ip_sns_cmd, - "ip-sns " VTY_IPV46_CMD " <1-65535>", - "SNS Initial Endpoint\n" - "SGSN IPv4 Address\n" "SGSN IPv6 Address\n" - "SGSN UDP Port\n" - ) -{ - struct gprs_ns2_nse *nse = vty->index; - bool dialect_modified = false; - bool ll_modified = false; - int rc; - - /* argv[0] */ - struct osmo_sockaddr_str remote_str; - struct osmo_sockaddr remote; - uint16_t port = atoi(argv[1]); - - if (nse->ll == GPRS_NS2_LL_UNDEF) { - nse->ll = GPRS_NS2_LL_UDP; - ll_modified = true; - } - - if (nse->dialect == GPRS_NS2_DIALECT_UNDEF) { - char sns[16]; - snprintf(sns, sizeof(sns), "NSE%05u-SNS", nse->nsei); - nse->bss_sns_fi = ns2_sns_bss_fsm_alloc(nse, sns); - if (!nse->bss_sns_fi) - goto err; - nse->dialect = GPRS_NS2_DIALECT_SNS; - dialect_modified = true; - } - - if (nse->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "Can not mix NS-VC with different link layer%s", VTY_NEWLINE); - goto err; - } - - if (nse->dialect != GPRS_NS2_DIALECT_SNS) { - vty_out(vty, "Can not mix NS-VC with different dialects%s", VTY_NEWLINE); - goto err; - } - - if (osmo_sockaddr_str_from_str(&remote_str, argv[0], port)) { - vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); - goto err; - } - - if (osmo_sockaddr_str_to_sockaddr(&remote_str, &remote.u.sas)) { - vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); - goto err; - } - - rc = gprs_ns2_sns_add_endpoint(nse, &remote); - switch (rc) { - case 0: - return CMD_SUCCESS; - case -EADDRINUSE: - vty_out(vty, "Specified SNS endpoint already part of the NSE.%s", VTY_NEWLINE); - return CMD_WARNING; - default: - vty_out(vty, "Can not add specified SNS endpoint.%s", VTY_NEWLINE); - return CMD_WARNING; - } - -err: - if (ll_modified) - nse->ll = GPRS_NS2_LL_UNDEF; - if (dialect_modified) - nse->dialect = GPRS_NS2_DIALECT_UNDEF; - return CMD_WARNING; -} - -DEFUN(cfg_no_ns_nse_ip_sns, cfg_no_ns_nse_ip_sns_cmd, - "no ip-sns " VTY_IPV46_CMD " <1-65535>", - NO_STR - "Delete a SNS Initial Endpoint\n" - "SGSN IPv4 Address\n" "SGSN IPv6 Address\n" - "SGSN UDP Port\n" - ) -{ - struct gprs_ns2_nse *nse = vty->index; - struct osmo_sockaddr_str remote_str; /* argv[0] */ - struct osmo_sockaddr remote; - uint16_t port = atoi(argv[1]); - int count; - - if (nse->ll != GPRS_NS2_LL_UDP) { - vty_out(vty, "This NSE doesn't support UDP.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - if (nse->dialect != GPRS_NS2_DIALECT_SNS) { - vty_out(vty, "This NSE doesn't support UDP with dialect ip-sns.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - if (osmo_sockaddr_str_from_str(&remote_str, argv[0], port)) { - vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - if (osmo_sockaddr_str_to_sockaddr(&remote_str, &remote.u.sas)) { - vty_out(vty, "Can not parse IPv4/IPv6 or port.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - if (gprs_ns2_sns_del_endpoint(nse, &remote)) { - vty_out(vty, "Can not remove specified SNS endpoint.%s", VTY_NEWLINE); - return CMD_WARNING; - } - - count = gprs_ns2_sns_count(nse); - if (count > 0) { - /* there are other sns endpoints */ - return CMD_SUCCESS; - } else if (count < 0) { - OSMO_ASSERT(0); - } else { - /* clean up nse to allow other nsvc commands */ - osmo_fsm_inst_term(nse->bss_sns_fi, OSMO_FSM_TERM_REQUEST, NULL); - nse->bss_sns_fi = NULL; - nse->ll = GPRS_NS2_LL_UNDEF; - nse->dialect = GPRS_NS2_DIALECT_UNDEF; - } - - return CMD_SUCCESS; -} - - -/* non-config commands */ -static void dump_nsvc(struct vty *vty, struct gprs_ns2_vc *nsvc, bool stats) -{ - char nsvci_str[32]; - - if (nsvc->nsvci_is_valid) - snprintf(nsvci_str, sizeof(nsvci_str), "%05u", nsvc->nsvci); - else - snprintf(nsvci_str, sizeof(nsvci_str), "none"); - - vty_out(vty, " NSVCI %s: %s %s data_weight=%u sig_weight=%u %s%s", nsvci_str, - osmo_fsm_inst_state_name(nsvc->fi), - nsvc->persistent ? "PERSIST" : "DYNAMIC", - nsvc->data_weight, nsvc->sig_weight, - gprs_ns2_ll_str(nsvc), VTY_NEWLINE); - - if (stats) { - vty_out_rate_ctr_group(vty, " ", nsvc->ctrg); - vty_out_stat_item_group(vty, " ", nsvc->statg); - } -} - -static void dump_nse(struct vty *vty, const struct gprs_ns2_nse *nse, bool stats, bool persistent_only) -{ - struct gprs_ns2_vc *nsvc; - - vty_out(vty, "NSEI %05u: %s, %s%s", nse->nsei, gprs_ns2_lltype_str(nse->ll), - nse->alive ? "ALIVE" : "DEAD", VTY_NEWLINE); - - ns2_sns_dump_vty(vty, " ", nse, stats); - llist_for_each_entry(nsvc, &nse->nsvc, list) { - if (persistent_only) { - if (nsvc->persistent) - dump_nsvc(vty, nsvc, stats); - } else { - dump_nsvc(vty, nsvc, stats); - } - } -} - -static void dump_bind(struct vty *vty, const struct gprs_ns2_vc_bind *bind, bool stats) -{ - if (bind->dump_vty) - bind->dump_vty(bind, vty, stats); -} - -static void dump_ns_bind(struct vty *vty, const struct gprs_ns2_inst *nsi, bool stats) -{ - struct gprs_ns2_vc_bind *bind; - - llist_for_each_entry(bind, &nsi->binding, list) { - dump_bind(vty, bind, stats); - } -} - - -static void dump_ns_entities(struct vty *vty, const struct gprs_ns2_inst *nsi, bool stats, bool persistent_only) -{ - struct gprs_ns2_nse *nse; - - llist_for_each_entry(nse, &nsi->nse, list) { - dump_nse(vty, nse, stats, persistent_only); - } -} - -/* Backwards compatibility, among other things for the TestVTYGbproxy which expects - * 'show ns' to output something about binds */ -DEFUN_HIDDEN(show_ns, show_ns_cmd, "show ns", - SHOW_STR SHOW_NS_STR) -{ - dump_ns_entities(vty, vty_nsi, false, false); - dump_ns_bind(vty, vty_nsi, false); - return CMD_SUCCESS; -} - - -DEFUN(show_ns_binds, show_ns_binds_cmd, "show ns binds [stats]", - SHOW_STR SHOW_NS_STR - "Display information about the NS protocol binds\n" - "Include statistic\n") -{ - bool stats = false; - if (argc > 0) - stats = true; - - dump_ns_bind(vty, vty_nsi, stats); - return CMD_SUCCESS; -} - -DEFUN(show_ns_entities, show_ns_entities_cmd, "show ns entities [stats]", - SHOW_STR SHOW_NS_STR - "Display information about the NS protocol entities (NSEs)\n" - "Include statistics\n") -{ - bool stats = false; - if (argc > 0) - stats = true; - - dump_ns_entities(vty, vty_nsi, stats, false); - return CMD_SUCCESS; -} - -DEFUN(show_ns_pers, show_ns_pers_cmd, "show ns persistent", - SHOW_STR SHOW_NS_STR - "Show only persistent NS\n") -{ - dump_ns_entities(vty, vty_nsi, true, true); - return CMD_SUCCESS; -} - -DEFUN(show_nse, show_nse_cmd, "show ns (nsei|nsvc) <0-65535> [stats]", - SHOW_STR SHOW_NS_STR - "Select one NSE by its NSE Identifier\n" - "Select one NSE by its NS-VC Identifier\n" - "The Identifier of selected type\n" - "Include Statistics\n") -{ - struct gprs_ns2_inst *nsi = vty_nsi; - struct gprs_ns2_nse *nse; - struct gprs_ns2_vc *nsvc; - uint16_t id = atoi(argv[1]); - bool show_stats = false; - - if (argc >= 3) - show_stats = true; - - if (!strcmp(argv[0], "nsei")) { - nse = gprs_ns2_nse_by_nsei(nsi, id); - if (!nse) { - return CMD_WARNING; - } - - dump_nse(vty, nse, show_stats, false); - } else { - nsvc = gprs_ns2_nsvc_by_nsvci(nsi, id); - - if (!nsvc) { - vty_out(vty, "No such NS Entity%s", VTY_NEWLINE); - return CMD_WARNING; - } - - dump_nsvc(vty, nsvc, show_stats); - } - - return CMD_SUCCESS; -} - -static int nsvc_force_unconf_cb(struct gprs_ns2_vc *nsvc, void *ctx) -{ - ns2_vc_force_unconfigured(nsvc); - return 0; -} - -DEFUN_HIDDEN(nsvc_force_unconf, nsvc_force_unconf_cmd, - "nsvc nsei <0-65535> force-unconfigured", - "NS Virtual Connection\n" - "The NSEI\n" - "Reset the NSVCs back to initial state\n" - ) -{ - struct gprs_ns2_inst *nsi = vty_nsi; - struct gprs_ns2_nse *nse; - - uint16_t id = atoi(argv[0]); - - nse = gprs_ns2_nse_by_nsei(nsi, id); - if (!nse) { - vty_out(vty, "Could not find NSE for NSEI %u%s", id, VTY_NEWLINE); - return CMD_WARNING; - } - - if (!nse->persistent) { - gprs_ns2_free_nse(nse); - } else if (nse->dialect == GPRS_NS2_DIALECT_SNS) { - gprs_ns2_free_nsvcs(nse); - } else { - /* Perform the operation for all nsvc */ - gprs_ns2_nse_foreach_nsvc(nse, nsvc_force_unconf_cb, NULL); - } - - return CMD_SUCCESS; -} - -DEFUN(nsvc_block, nsvc_block_cmd, - "nsvc <0-65535> (block|unblock)", - "NS Virtual Connection\n" - NSVCI_STR - "Block a NSVC. As cause code O&M intervention will be used.\n" - "Unblock a NSVC. As cause code O&M intervention will be used.\n") -{ - struct gprs_ns2_inst *nsi = vty_nsi; - struct gprs_ns2_vc *nsvc; - - uint16_t id = atoi(argv[0]); - - nsvc = gprs_ns2_nsvc_by_nsvci(nsi, id); - if (!nsvc) { - vty_out(vty, "Could not find NSVCI %05u%s", id, VTY_NEWLINE); - return CMD_WARNING; - } - - if (!strcmp(argv[1], "block")) { - ns2_vc_block(nsvc); - } else { - ns2_vc_unblock(nsvc); - } - - return CMD_SUCCESS; -} - -static void log_set_nse_filter(struct log_target *target, - struct gprs_ns2_nse *nse) -{ - if (nse) { - target->filter_map |= (1 << LOG_FLT_GB_NSE); - target->filter_data[LOG_FLT_GB_NSE] = nse; - } else if (target->filter_data[LOG_FLT_GB_NSE]) { - target->filter_map = ~(1 << LOG_FLT_GB_NSE); - target->filter_data[LOG_FLT_GB_NSE] = NULL; - } -} - -static void log_set_nsvc_filter(struct log_target *target, - struct gprs_ns2_vc *nsvc) -{ - if (nsvc) { - target->filter_map |= (1 << LOG_FLT_GB_NSVC); - target->filter_data[LOG_FLT_GB_NSVC] = nsvc; - } else if (target->filter_data[LOG_FLT_GB_NSVC]) { - target->filter_map = ~(1 << LOG_FLT_GB_NSVC); - target->filter_data[LOG_FLT_GB_NSVC] = NULL; - } -} - -DEFUN(logging_fltr_nse, - logging_fltr_nse_cmd, - "logging filter nse nsei <0-65535>", - LOGGING_STR FILTER_STR - "Filter based on NS Entity\n" - "Identify NSE by NSEI\n" - "Numeric identifier\n") -{ - struct log_target *tgt; - struct gprs_ns2_nse *nse; - uint16_t id = atoi(argv[0]); - - log_tgt_mutex_lock(); - tgt = osmo_log_vty2tgt(vty); - if (!tgt) { - log_tgt_mutex_unlock(); - return CMD_WARNING; - } - - nse = gprs_ns2_nse_by_nsei(vty_nsi, id); - if (!nse) { - vty_out(vty, "No NSE by that identifier%s", VTY_NEWLINE); - log_tgt_mutex_unlock(); - return CMD_WARNING; - } - - log_set_nse_filter(tgt, nse); - log_tgt_mutex_unlock(); - return CMD_SUCCESS; -} - -/* TODO: add filter for single connection by description */ -DEFUN(logging_fltr_nsvc, - logging_fltr_nsvc_cmd, - "logging filter nsvc nsvci <0-65535>", - LOGGING_STR FILTER_STR - "Filter based on NS Virtual Connection\n" - "Identify NS-VC by NSVCI\n" - "Numeric identifier\n") -{ - struct log_target *tgt; - struct gprs_ns2_vc *nsvc; - uint16_t id = atoi(argv[0]); - - log_tgt_mutex_lock(); - tgt = osmo_log_vty2tgt(vty); - if (!tgt) { - log_tgt_mutex_unlock(); - return CMD_WARNING; - } - - nsvc = gprs_ns2_nsvc_by_nsvci(vty_nsi, id); - if (!nsvc) { - vty_out(vty, "No NS-VC by that identifier%s", VTY_NEWLINE); - log_tgt_mutex_unlock(); - return CMD_WARNING; - } - - log_set_nsvc_filter(tgt, nsvc); - log_tgt_mutex_unlock(); - return CMD_SUCCESS; -} - -int gprs_ns2_vty2_init(struct gprs_ns2_inst *nsi) -{ - vty_nsi = nsi; - INIT_LLIST_HEAD(&binds); - - vty_fr_network = osmo_fr_network_alloc(nsi); - if (!vty_fr_network) - return -ENOMEM; - - install_lib_element_ve(&show_ns_cmd); - install_lib_element_ve(&show_ns_binds_cmd); - install_lib_element_ve(&show_ns_entities_cmd); - install_lib_element_ve(&show_ns_pers_cmd); - install_lib_element_ve(&show_nse_cmd); - install_lib_element_ve(&logging_fltr_nse_cmd); - install_lib_element_ve(&logging_fltr_nsvc_cmd); - - install_lib_element(ENABLE_NODE, &nsvc_force_unconf_cmd); - install_lib_element(ENABLE_NODE, &nsvc_block_cmd); - - install_lib_element(CFG_LOG_NODE, &logging_fltr_nse_cmd); - install_lib_element(CFG_LOG_NODE, &logging_fltr_nsvc_cmd); - - install_lib_element(CONFIG_NODE, &cfg_ns_cmd); - - install_node(&ns_node, config_write_ns); - /* TODO: convert into osmo timer */ - install_lib_element(L_NS_NODE, &cfg_ns_timer_cmd); - install_lib_element(L_NS_NODE, &cfg_ns_nsei_cmd); - install_lib_element(L_NS_NODE, &cfg_no_ns_nsei_cmd); - install_lib_element(L_NS_NODE, &cfg_ns_bind_cmd); - install_lib_element(L_NS_NODE, &cfg_no_ns_bind_cmd); - - install_node(&ns_bind_node, config_write_ns_bind); - install_lib_element(L_NS_BIND_NODE, &cfg_ns_bind_listen_cmd); - install_lib_element(L_NS_BIND_NODE, &cfg_no_ns_bind_listen_cmd); - install_lib_element(L_NS_BIND_NODE, &cfg_ns_bind_dscp_cmd); - install_lib_element(L_NS_BIND_NODE, &cfg_no_ns_bind_dscp_cmd); - install_lib_element(L_NS_BIND_NODE, &cfg_ns_bind_ipaccess_cmd); - install_lib_element(L_NS_BIND_NODE, &cfg_no_ns_bind_ipaccess_cmd); - install_lib_element(L_NS_BIND_NODE, &cfg_ns_bind_fr_cmd); - install_lib_element(L_NS_BIND_NODE, &cfg_no_ns_bind_fr_cmd); - /* TODO: accept-ip-sns when SGSN SNS has been implemented */ - - install_node(&ns_nse_node, config_write_ns_nse); - install_lib_element(L_NS_NSE_NODE, &cfg_ns_nse_nsvc_fr_cmd); - install_lib_element(L_NS_NSE_NODE, &cfg_no_ns_nse_nsvci_cmd); - install_lib_element(L_NS_NSE_NODE, &cfg_no_ns_nse_nsvc_fr_dlci_cmd); - install_lib_element(L_NS_NSE_NODE, &cfg_ns_nse_nsvc_udp_cmd); - install_lib_element(L_NS_NSE_NODE, &cfg_no_ns_nse_nsvc_udp_cmd); - install_lib_element(L_NS_NSE_NODE, &cfg_ns_nse_nsvc_ipa_cmd); - install_lib_element(L_NS_NSE_NODE, &cfg_no_ns_nse_nsvc_ipa_cmd); - install_lib_element(L_NS_NSE_NODE, &cfg_ns_nse_ip_sns_cmd); - install_lib_element(L_NS_NSE_NODE, &cfg_no_ns_nse_ip_sns_cmd); - - return 0; -} diff --git a/src/gb/libosmogb.map b/src/gb/libosmogb.map index c6bbc78..fa05b97 100644 --- a/src/gb/libosmogb.map +++ b/src/gb/libosmogb.map @@ -185,9 +185,7 @@ gprs_ns2_start_alive_all_nsvcs; gprs_ns2_sns_add_endpoint; gprs_ns2_sns_del_endpoint; -gprs_ns2_vty_create; gprs_ns2_vty_init; -gprs_ns2_vty2_init; gprs_nsvc_create2; gprs_nsvc_delete; diff --git a/utils/osmo-ns-dummy.c b/utils/osmo-ns-dummy.c index 58e8152..33949d3 100644 --- a/utils/osmo-ns-dummy.c +++ b/utils/osmo-ns-dummy.c @@ -230,7 +230,7 @@ } gprs_ns2_dynamic_create_nse(nsi, true); - gprs_ns2_vty2_init(nsi); + gprs_ns2_vty_init(nsi); rc = vty_read_config_file(config_file, NULL); if (rc < 0 && config_given) { fprintf(stderr, "Failed to parse the config file: '%s'\n", -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22514 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic2059e75d8ede8e5c29c4fef6be608ed79c8a97c Gerrit-Change-Number: 22514 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 21:00:13 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 28 Jan 2021 21:00:13 +0000 Subject: Change in libosmocore[master]: gprs_ns2: remove api call gprs_ns2_dynamic_create_nse In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22498 ) Change subject: gprs_ns2: remove api call gprs_ns2_dynamic_create_nse ...................................................................... gprs_ns2: remove api call gprs_ns2_dynamic_create_nse The call was only introduced as workaround for the first implementation of vty. There is no need for this anymore. The configuration can just add "accept-ipaccess" to the bind to allow creation of dynamic ipaccess NSE. Change-Id: Ie924ead6da17657f3da334068c8ada82c8845495 --- M include/osmocom/gprs/gprs_ns2.h M src/gb/gprs_ns2.c M src/gb/gprs_ns2_internal.h M src/gb/libosmogb.map M utils/osmo-ns-dummy.c 5 files changed, 1 insertion(+), 19 deletions(-) Approvals: daniel: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/include/osmocom/gprs/gprs_ns2.h b/include/osmocom/gprs/gprs_ns2.h index 24f45c9..042e19b 100644 --- a/include/osmocom/gprs/gprs_ns2.h +++ b/include/osmocom/gprs/gprs_ns2.h @@ -142,7 +142,6 @@ /* instance */ struct gprs_ns2_inst *gprs_ns2_instantiate(void *ctx, osmo_prim_cb cb, void *cb_data); void gprs_ns2_free(struct gprs_ns2_inst *inst); -int gprs_ns2_dynamic_create_nse(struct gprs_ns2_inst *nsi, bool create_nse); /* Entrypoint for primitives from the NS USER */ int gprs_ns2_recv_prim(struct gprs_ns2_inst *nsi, struct osmo_prim_hdr *oph); diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c index 7e273fb..be35513 100644 --- a/src/gb/gprs_ns2.c +++ b/src/gb/gprs_ns2.c @@ -874,7 +874,7 @@ if (bind->ll != GPRS_NS2_LL_UDP || dialect != GPRS_NS2_DIALECT_IPACCESS) return NS2_CS_SKIPPED; - if (!bind->nsi->create_nse || !bind->accept_ipaccess) + if (!bind->accept_ipaccess) return NS2_CS_SKIPPED; nse = gprs_ns2_create_nse(bind->nsi, nsei, bind->ll, dialect); @@ -1208,18 +1208,6 @@ talloc_free(nsi); } -/*! Configure whether a NS Instance should dynamically create NSEs based on incoming traffic. - * \param nsi the instance to modify - * \param create_nse if NSE can be created on receiving package. SGSN set this. - * \return 0 on success; negative on error - */ -int gprs_ns2_dynamic_create_nse(struct gprs_ns2_inst *nsi, bool create_nse) -{ - nsi->create_nse = create_nse; - - return 0; -} - /*! Start the NS-ALIVE FSM in all NS-VCs of given NSE. * \param[in] nse NS Entity in whihc to start NS-ALIVE FSMs */ void gprs_ns2_start_alive_all_nsvcs(struct gprs_ns2_nse *nse) diff --git a/src/gb/gprs_ns2_internal.h b/src/gb/gprs_ns2_internal.h index 027071d..0574cb2 100644 --- a/src/gb/gprs_ns2_internal.h +++ b/src/gb/gprs_ns2_internal.h @@ -108,9 +108,6 @@ /*! linked lists of all NSVC in this instance */ struct llist_head nse; - /*! create dynamic NSE on receiving packages */ - bool create_nse; - uint16_t timeout[NS_TIMERS_COUNT]; /*! workaround for rate counter until rate counter accepts char str as index */ diff --git a/src/gb/libosmogb.map b/src/gb/libosmogb.map index fa05b97..71be117 100644 --- a/src/gb/libosmogb.map +++ b/src/gb/libosmogb.map @@ -137,7 +137,6 @@ gprs_ns2_bind_by_name; gprs_ns2_cause_strs; gprs_ns2_create_nse; -gprs_ns2_dynamic_create_nse; gprs_ns2_find_vc_by_sockaddr; gprs_ns2_free; gprs_ns2_free_bind; diff --git a/utils/osmo-ns-dummy.c b/utils/osmo-ns-dummy.c index 33949d3..5625f75 100644 --- a/utils/osmo-ns-dummy.c +++ b/utils/osmo-ns-dummy.c @@ -229,7 +229,6 @@ exit(1); } - gprs_ns2_dynamic_create_nse(nsi, true); gprs_ns2_vty_init(nsi); rc = vty_read_config_file(config_file, NULL); if (rc < 0 && config_given) { -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22498 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie924ead6da17657f3da334068c8ada82c8845495 Gerrit-Change-Number: 22498 Gerrit-PatchSet: 5 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 21:00:14 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 28 Jan 2021 21:00:14 +0000 Subject: Change in libosmocore[master]: gprs_ns2: introduce gprs_ns2_vty_init_reduced() for the PCU In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22508 ) Change subject: gprs_ns2: introduce gprs_ns2_vty_init_reduced() for the PCU ...................................................................... gprs_ns2: introduce gprs_ns2_vty_init_reduced() for the PCU The gprs_ns2_vty_init_reduced() call initialized the ns2 vty without configuration nodes (except timeout). The PCU can be only configured by the BTS/BSC. It should not configured by vty. Change-Id: I4437da74bd48ba64d3f16ea67afc26c45b6d3ac9 --- M src/gb/gprs_ns2_vty.c M src/gb/libosmogb.map 2 files changed, 17 insertions(+), 1 deletion(-) Approvals: daniel: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/gb/gprs_ns2_vty.c b/src/gb/gprs_ns2_vty.c index b6ae5b4..9db8173 100644 --- a/src/gb/gprs_ns2_vty.c +++ b/src/gb/gprs_ns2_vty.c @@ -1617,7 +1617,12 @@ return CMD_SUCCESS; } -int gprs_ns2_vty_init(struct gprs_ns2_inst *nsi) +/*! initialized a reduced vty interface which excludes the configuration nodes besides timeouts. + * This can be used by the PCU which can be only configured by the BTS/BSC and not by the vty. + * \param[in] nsi NS instance on which we operate + * \return 0 on success. + */ +int gprs_ns2_vty_init_reduced(struct gprs_ns2_inst *nsi) { vty_nsi = nsi; INIT_LLIST_HEAD(&binds); @@ -1645,6 +1650,16 @@ install_node(&ns_node, config_write_ns); /* TODO: convert into osmo timer */ install_lib_element(L_NS_NODE, &cfg_ns_timer_cmd); + + return 0; +} + +int gprs_ns2_vty_init(struct gprs_ns2_inst *nsi) +{ + int rc = gprs_ns2_vty_init_reduced(nsi); + if (rc) + return rc; + install_lib_element(L_NS_NODE, &cfg_ns_nsei_cmd); install_lib_element(L_NS_NODE, &cfg_no_ns_nsei_cmd); install_lib_element(L_NS_NODE, &cfg_ns_bind_cmd); diff --git a/src/gb/libosmogb.map b/src/gb/libosmogb.map index 71be117..a3171d0 100644 --- a/src/gb/libosmogb.map +++ b/src/gb/libosmogb.map @@ -185,6 +185,7 @@ gprs_ns2_sns_add_endpoint; gprs_ns2_sns_del_endpoint; gprs_ns2_vty_init; +gprs_ns2_vty_init_reduced; gprs_nsvc_create2; gprs_nsvc_delete; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22508 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4437da74bd48ba64d3f16ea67afc26c45b6d3ac9 Gerrit-Change-Number: 22508 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 21:00:14 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 28 Jan 2021 21:00:14 +0000 Subject: Change in libosmocore[master]: gprs_ns2: correct vty config write In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22522 ) Change subject: gprs_ns2: correct vty config write ...................................................................... gprs_ns2: correct vty config write The vty configuration was wrong when any other node was in between the vty configuration (e.g. gb or ss7). The vty code doesn't have a relation between parent and child node. It wasn't detected because this only happened in the sgsn. The pcu doesn't have any binds defined. Change-Id: I8a3d67d41baca36b4d1a951a574cd41e556355c5 --- M src/gb/gprs_ns2_vty.c 1 file changed, 26 insertions(+), 16 deletions(-) Approvals: Jenkins Builder: Verified daniel: Looks good to me, approved diff --git a/src/gb/gprs_ns2_vty.c b/src/gb/gprs_ns2_vty.c index 9db8173..1c40759 100644 --- a/src/gb/gprs_ns2_vty.c +++ b/src/gb/gprs_ns2_vty.c @@ -401,20 +401,6 @@ } } -static int config_write_ns(struct vty *vty) -{ - unsigned int i; - - vty_out(vty, "ns%s", VTY_NEWLINE); - - for (i = 0; i < ARRAY_SIZE(vty_nsi->timeout); i++) - vty_out(vty, " timer %s %u%s", - get_value_string(gprs_ns_timer_strs, i), - vty_nsi->timeout[i], VTY_NEWLINE); - - return 0; -} - static int config_write_ns_nse(struct vty *vty) { struct gprs_ns2_nse *nse; @@ -440,6 +426,30 @@ return 0; } +static int config_write_ns(struct vty *vty) +{ + unsigned int i; + int ret; + + vty_out(vty, "ns%s", VTY_NEWLINE); + + for (i = 0; i < ARRAY_SIZE(vty_nsi->timeout); i++) + vty_out(vty, " timer %s %u%s", + get_value_string(gprs_ns_timer_strs, i), + vty_nsi->timeout[i], VTY_NEWLINE); + + ret = config_write_ns_bind(vty); + if (ret) + return ret; + + ret = config_write_ns_nse(vty); + if (ret) + return ret; + + return 0; +} + + static struct cmd_node ns_bind_node = { L_NS_BIND_NODE, "%s(config-ns-bind)# ", @@ -1665,7 +1675,7 @@ install_lib_element(L_NS_NODE, &cfg_ns_bind_cmd); install_lib_element(L_NS_NODE, &cfg_no_ns_bind_cmd); - install_node(&ns_bind_node, config_write_ns_bind); + install_node(&ns_bind_node, NULL); install_lib_element(L_NS_BIND_NODE, &cfg_ns_bind_listen_cmd); install_lib_element(L_NS_BIND_NODE, &cfg_no_ns_bind_listen_cmd); install_lib_element(L_NS_BIND_NODE, &cfg_ns_bind_dscp_cmd); @@ -1676,7 +1686,7 @@ install_lib_element(L_NS_BIND_NODE, &cfg_no_ns_bind_fr_cmd); /* TODO: accept-ip-sns when SGSN SNS has been implemented */ - install_node(&ns_nse_node, config_write_ns_nse); + install_node(&ns_nse_node, NULL); install_lib_element(L_NS_NSE_NODE, &cfg_ns_nse_nsvc_fr_cmd); install_lib_element(L_NS_NSE_NODE, &cfg_no_ns_nse_nsvci_cmd); install_lib_element(L_NS_NSE_NODE, &cfg_no_ns_nse_nsvc_fr_dlci_cmd); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22522 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I8a3d67d41baca36b4d1a951a574cd41e556355c5 Gerrit-Change-Number: 22522 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 21:00:24 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 28 Jan 2021 21:00:24 +0000 Subject: Change in osmo-sgsn[master]: manual/gbproxy: Update overview chapter In-Reply-To: References: Message-ID: daniel has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22491 ) Change subject: manual/gbproxy: Update overview chapter ...................................................................... manual/gbproxy: Update overview chapter * Remove mention of features that are no longer supported * Update the data model Related: SYS#5115, SYS#5005 Change-Id: Icb9095f4002f2a0a4562fccecae109075cb93c7b --- M doc/manuals/chapters/gbproxy-overview.adoc 1 file changed, 44 insertions(+), 77 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve lynxis lazus: Looks good to me, approved diff --git a/doc/manuals/chapters/gbproxy-overview.adoc b/doc/manuals/chapters/gbproxy-overview.adoc index 1564157..3cd0d73 100644 --- a/doc/manuals/chapters/gbproxy-overview.adoc +++ b/doc/manuals/chapters/gbproxy-overview.adoc @@ -1,6 +1,10 @@ [[chapter_overview]] == Overview +IMPORTANT: If you have used an earlier version of OsmoGbProxy please note +that support for various features such as PLMN/APN patching, support for a +secondary SGSN has been removed. + === About OsmoGbProxy OsmoGbProxy is the Osmocom proxy for the 3GPP Gb interface. The Gb @@ -15,7 +19,7 @@ OsmoGbProxy aggregates many PCU-facing Gb connections into one Gb connection to the SGSN. This is achieved by -* maintaining sepaate NS-VCs on the PCU side and on the SGSN side +* maintaining separate NS-VCs on the PCU side and on the SGSN side * more or less transparently routing BSSGP peer-to-peer Virtual Circuits (BVCs) through the proxy * having some special handling for the signaling BVC (BVCI=0) which is @@ -28,101 +32,64 @@ This contains the parsed configuration of the OsmoGbProxy. -==== gproxy_peer +==== gbproxy_nse -A "peer" is any remote NS-entity that the proxy interacts with. A peer -includes information about: +The remote NS-entity that the proxy interacts with. Includes +information about: * the [unique] NSEI of the peer -* the [unique] BVCI of the peer * the Routeing Area (RA) of the peer +* which side this NSE is facing - SGSN or BSS +* the list of BVCs in this NSE -==== gbproxy_tlli_state +==== gbproxy_bvc -One of the (unique) TLLI of any of the subscribers/UEs attached to any of -the BTSs/PCUs served by the proxy. +A ptp-BVC on an NSE -==== gbproxy_link_info +* the BVCI of this BVC +* the routing area of this BVC +* the BVC state machine -One of the [unique] subscribers/connections that are served through this -proxy. The information includes +==== gbproxy_cell -* the TLLI on BSS side -* the TLLI on SGSN side (may be different due to P-TMSI rewriting) -* the NSEI of the SGSN for this link -* a timestamp when we last conversed with this subscriber -* state related to IMSI acquisition -** a temporary queue of stored messages (until IMSI acquisition succeeds) -** N(U) rewriting state (inserting IDENTTIY REQ changes LLC sequence numbers) +This contains a view of the cell and its associated BVCs -==== gbproxy_match +* the unique BVCI of this cell +* the routing area of this cell +* one bss-side BVC +* one BVC per SGSN in the pool -A single matching rule against which IMSIs are matched. The matching rule -is expressed as regular expression. There can be one such matching rule for -each +==== gbproxy_sgsn -* routing between two different SGSNs, see below -* patching of messages (e.g. APN, PLMN) +Represents one SGSN in the pool. Contains: +* the NSE belonging to this SGSN +* a (configurable) name of the SGSN +* pool-related configuration of the SGSNs -=== Advanced Features +==== IMSI cache -==== PLMN patching +In order to route messages to the correct BSS or SGSN OsmoGbProxy +sometimes needs to cache where messages came from. -This feature permits to modify the PLMN inside any BSSGP messages -containing the Routing Area ID (RAID). +In BSS->SGSN direction the IMSI-cache is needed for -The configured core-mcc and core-mnc will be used towards the SGSN, -irrespective of which MCC/MNC the PCU is using/reporting on Gb. +* paging ps reject +* dummy paging response -==== APN patching +when SGSN-pooling is enabled and multiple SGSNs are configured. The IMSI +contained in a paging ps or dummy paging message is cached together with +the originating SGSN/NSE. The answer, which also contains the IMSI, is +then routed back to the original SGSN. -This will transparently re-write the APN name inside SM ACTIVATE PDP -REQUEST messages on the way from the MS to the SGSN. The patching is -performed based on matching on the IMSI of the subscriber. +==== TLLI cache -The configured core-apn will be used towards the SGSN, irrespective -of which APN the MS is requesting in its Layer3 signaling. +In SGSN->BSS direction OsmoGbProxy needs a TLLI cache to correctly route the +following messages: -APN patching can only be performed if no GPRS encryption is enabled in -the network! +* suspend ack/nack +* resume ack/nack -APN patching is useful in case a valid APN cannot reliably be -provisioned via other means, such as via the SIM Card, OTA-DM or via -CAMEL rewriting in the SGSN. - -==== P-TMSI patching - -This feature transparently rewrite the P-TMSI between MS and SGSN. This -is required when using the Secondary SGSN support, as both SGSNs could -allocate overlapping TMSIs and we must make sure they're unique across -both SGSNs. - -P-TMSI patching is required by (and hence automatically enablede if -secondary SGSN support is enabled. - -P-TMSI patching can only be performed if no GPRS encryption is enabled in -the network! - -==== IMSI Acquisition - -This is a special feature where the proxy will by itself inject GMM IDENTITY -REQUEST messages for the IMSI into the downlink BSSGP traffic in order -to establish the IMSI of subscribers for which it is not otherwise known - -IMSI acquisition is automatically enabled if secondary SGSN support is -enabled. - -==== Secondary SGSN Support - -This allows the proxy to connect not only to one SGSN, but to two -different SGSNs. IMSI matching rules are applied to determine which of -the SGSNs is to be used for traffic of this subscriber. - -One possible use case of this feature is to have a "local break-out" for -subscribers who are native to this network (and hence save -latencies/overhead of back-hauling all related traffic via the -SGSN+GGSN) while at the same time maintaining the classic behavior for -inbound roaming subscribers, where the roaming agreements mandate that -data traffic is brought back to the GGSN in the HPLMN via the SGSN of -the VPLMN. +Suspend/resume are sent over the signalling BVC to the SGSN. OsmoGbProxy saves +the TLLI->NSE association in the TLLI cache and routes the ack/nack back to +the signalling BVC of the originating NSE. \ No newline at end of file -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22491 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Icb9095f4002f2a0a4562fccecae109075cb93c7b Gerrit-Change-Number: 22491 Gerrit-PatchSet: 3 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 21:00:24 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 28 Jan 2021 21:00:24 +0000 Subject: Change in osmo-sgsn[master]: Rename OsmoGbPROXY -> *Proxy In-Reply-To: References: Message-ID: daniel has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22492 ) Change subject: Rename OsmoGbPROXY -> *Proxy ...................................................................... Rename OsmoGbPROXY -> *Proxy Change-Id: I7542ac1d5242f1784146de2df7cecaf70fe93c6c Related: SYS#5115, SYS#5005 --- M doc/manuals/chapters/gbproxy-configuration.adoc M doc/manuals/chapters/gbproxy-control.adoc M doc/manuals/chapters/gbproxy-running.adoc M doc/manuals/osmogbproxy-usermanual.adoc 4 files changed, 5 insertions(+), 5 deletions(-) Approvals: Jenkins Builder: Verified lynxis lazus: Looks good to me, approved pespin: Looks good to me, but someone else must approve diff --git a/doc/manuals/chapters/gbproxy-configuration.adoc b/doc/manuals/chapters/gbproxy-configuration.adoc index e61af48..057d1ca 100644 --- a/doc/manuals/chapters/gbproxy-configuration.adoc +++ b/doc/manuals/chapters/gbproxy-configuration.adoc @@ -1,4 +1,4 @@ -== Configuring OsmoGbPROXY +== Configuring OsmoGbProxy TBD. Unfortunately this chapter of the manual still needs to be written. Osmocom has very limited funding and support resources; Feel free to help diff --git a/doc/manuals/chapters/gbproxy-control.adoc b/doc/manuals/chapters/gbproxy-control.adoc index afe23ad..2f83e6a 100644 --- a/doc/manuals/chapters/gbproxy-control.adoc +++ b/doc/manuals/chapters/gbproxy-control.adoc @@ -3,7 +3,7 @@ The actual protocol is described in <>, the variables common to all programs using it are described in <>. Here we -describe variables specific to OsmoGbPROXY. +describe variables specific to OsmoGbProxy. .Variables available over control interface [options="header",width="100%",cols="20%,5%,5%,50%,20%"] diff --git a/doc/manuals/chapters/gbproxy-running.adoc b/doc/manuals/chapters/gbproxy-running.adoc index 9182b48..1f6b6a1 100644 --- a/doc/manuals/chapters/gbproxy-running.adoc +++ b/doc/manuals/chapters/gbproxy-running.adoc @@ -1,6 +1,6 @@ -== Running OsmoGbPROXY +== Running OsmoGbProxy -The OsmoGbPROXY executable (`osmo-gbproxy`) offers the following command-line +The OsmoGbProxy executable (`osmo-gbproxy`) offers the following command-line options: diff --git a/doc/manuals/osmogbproxy-usermanual.adoc b/doc/manuals/osmogbproxy-usermanual.adoc index c93ebec..d19bdd4 100644 --- a/doc/manuals/osmogbproxy-usermanual.adoc +++ b/doc/manuals/osmogbproxy-usermanual.adoc @@ -1,6 +1,6 @@ :gfdl-enabled: -OsmoGbPROXY User Manual +OsmoGbProxy User Manual ======================= Harald Welte -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22492 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I7542ac1d5242f1784146de2df7cecaf70fe93c6c Gerrit-Change-Number: 22492 Gerrit-PatchSet: 3 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 21:00:24 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 28 Jan 2021 21:00:24 +0000 Subject: Change in osmo-sgsn[master]: manuals/gbproxy: Update configuration chapter In-Reply-To: References: Message-ID: daniel has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22493 ) Change subject: manuals/gbproxy: Update configuration chapter ...................................................................... manuals/gbproxy: Update configuration chapter Change-Id: I01f8d47f9fa384a2528ddf2e6c936ff28d11409e Related: SYS#5115, SYS#5005 --- M doc/manuals/chapters/gbproxy-configuration.adoc 1 file changed, 37 insertions(+), 4 deletions(-) Approvals: Jenkins Builder: Verified lynxis lazus: Looks good to me, approved diff --git a/doc/manuals/chapters/gbproxy-configuration.adoc b/doc/manuals/chapters/gbproxy-configuration.adoc index 057d1ca..726ec41 100644 --- a/doc/manuals/chapters/gbproxy-configuration.adoc +++ b/doc/manuals/chapters/gbproxy-configuration.adoc @@ -1,10 +1,43 @@ == Configuring OsmoGbProxy -TBD. Unfortunately this chapter of the manual still needs to be written. -Osmocom has very limited funding and support resources; Feel free to help -us completing this documentation by contributing with code, documentation -or by supporting the developers financially. +OsmoGbProxy requires very little configuration, most of it being the +configuration of the NS links. +Most config options specific to OsmoGbProxy are related to SGSN pooling and +telling the proxy which NSE(s) it should use to talk to the SGSN(s). +=== Configure the Network Service (NS) + +A detailed description of the NS configuration can be found in <>. +The following config snippets assume the SGSN(s) (NSEI 101 and 102) are using +IP-SNS and listen on 10.0.1.1:23000 and 10.0.1.2:23000 respectively. + +This would be the NS config for the SGSN(s): + +.Example: NS configuration example (SGSN) +---- +ns + bind udp local + listen 10.0.0.1 23000 <1> + nse 101 <2> + ip-sns 10.0.1.1 23000 <3> + nse 102 + ip-sns 10.0.1.2 23000 +---- +<1> Define the local IP/port from which to connect +<2> Define an NSE with NSEI +<3> Use IP-SNS to connect to the SGSN + +=== Configure an SGSN + +Configuration of a single (non-pooling) SGSN is rather simple. + +.Example: SGSN configuration example +---- +sgsn 101 <1> + name Main SGSN <2> +---- +<1> Each SGSN is identified by its NSEI (same as in the NS configuration) +<2> An SGSN can optionally have a name. If none is set a default name will be used. === SGSN pool support -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22493 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I01f8d47f9fa384a2528ddf2e6c936ff28d11409e Gerrit-Change-Number: 22493 Gerrit-PatchSet: 3 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 21:00:24 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 28 Jan 2021 21:00:24 +0000 Subject: Change in osmo-sgsn[master]: manuals/gbproxy: Add osmo-bsc MSC pooling chapter from Neels as a base In-Reply-To: References: Message-ID: daniel has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22494 ) Change subject: manuals/gbproxy: Add osmo-bsc MSC pooling chapter from Neels as a base ...................................................................... manuals/gbproxy: Add osmo-bsc MSC pooling chapter from Neels as a base Related: SYS#5115, SYS#5005 Change-Id: I930f5df847ea6f40d0ee0c75dd25b6dd20e00839 --- A doc/manuals/chapters/gbproxy-sgsnpool.adoc 1 file changed, 213 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified lynxis lazus: Looks good to me, approved pespin: Looks good to me, but someone else must approve diff --git a/doc/manuals/chapters/gbproxy-sgsnpool.adoc b/doc/manuals/chapters/gbproxy-sgsnpool.adoc new file mode 100644 index 0000000..923a088 --- /dev/null +++ b/doc/manuals/chapters/gbproxy-sgsnpool.adoc @@ -0,0 +1,213 @@ +== MSC Pooling + +MSC pooling is described in 3GPP TS 23.236 <<3gpp-ts-23-236>>, and is supported +by OsmoBSC since mid 2020. + +The aim of MSC pooling is to distribute load from a BSC across multiple MSCs, +which are equivalent and redundant infrastructure for the same core network. + +The main mechanism for MSC pooling is the TMSI identity, which an MSC hands out +to its attached subscribers. Typically 10 bits of the TMSI are designated as a +Network Resource Identifier (NRI) that identifies the originating MSC, and +allows OsmoBSC to direct a subscriber back to the same MSC instance that +previously negotiated the IMSI Attach procedure. Typically, the full NRI value +range available is divided into N even ranges, where each MSC is assigned one +NRI range. + +Subscribers attaching without a TMSI identity, or those with unknown NRI value, +are evenly distributed across MSC instances. OsmoBSC uses a round-robin +approach to distribute load across all connected MSCs. + +A Paging Response from a subscriber is always returned back to whichever MSC +initiated the Paging, regardless of the Mobile Identity used. + +Finally, a NULL-NRI is a special NRI value that indicates that the MSC wishes +to offload this subscriber to a different MSC. A NULL-NRI is an arbitrary NRI +value that is chosen distinctly for each PLMN served by a BSC, so that a +subscriber can be reassigned within that PLMN. Upon (periodic) Location +Updating, an offloading MSC hands out a NULL-NRI value in the assigned TMSI, +along with a non-broadcast LAI. The subscriber will notice the LAI mismatch, +and immediately re-attempt the attach using the TMSI containing the NULL-NRI. +The BSC recognises the NULL-NRI and redirects the subscriber to one of the +other MSCs. A prerequisite for this to work well is that the particular MSC is +previously marked as not accepting new subscribers, in the BSC's configuration. + +The mechanisms described above make up the NAS node selection function +implemented in the BSC. + +3GPP TS 23.236 also defines that an offloading MSC hands subscriber information +to the newly assigned MSC, which takes place outside the scope of the BSC. + +=== Configuring MSC Pooling + +The NRI ranges assigned to each MSC must match in the BSC and the MSC +configuration. If MSC and BSC had inconsistent NRI value ranges configured, +attached subscribers would be redirected MSC instances that did not perform the +attach, possibly rendering the core network unusable. + +==== Connecting Multiple MSCs + +The `cs7 instance` configuration defines the SCCP addresses to reach the MSCs +at. In addition, each MSC is configured by its own `msc` section in the +configuration. An example osmo-bsc.cfg serving three MSCs: + +---- +cs7 instance 0 + # SCCP address book entries for the three MSCs + sccp-address my-msc-0 + point-code 0.23.0 + sccp-address my-msc-1 + point-code 0.23.1 + sccp-address my-msc-2 + point-code 0.23.2 + +# assign each MSC configuration its remote SCCP address +msc 0 + msc-addr my-msc-0 +msc 1 + msc-addr my-msc-1 +msc 2 + msc-addr my-msc-2 + +# configure NRI value ranges +network + nri bitlen 10 + nri null add 0 +msc 0 + nri add 1 341 +msc 1 + nri add 342 682 +msc 2 + nri add 683 1023 +---- + +==== NRI Value Bit Length + +In OsmoBSC, the NRI value's bit length is freely configurable from 1 to 15 +bits. 3GPP TS 23.236 suggests a typical bit length of 10, which is OsmoBSC's +default. The NRI bit length must be identical across the entire MSC pool. + +Change the NRI value bit length in OsmoBSC's VTY configuration like this: + +---- +network + nri bitlen 10 +---- + +In the TMSI bits, regardless of the NRI bit length, the NRI value always starts +just after the most significant octet of a TMSI (most significant bit at TMSI's +bit 23). + +==== NULL-NRI + +Since OsmoBSC supports serving only one PLMN, NULL-NRI are configured globally. +Even though 3GPP TS 23.236 indicates that there is a single NULL-NRI per PLMN, +OsmoBSC allows configuring multiple NULL-NRI values. + +---- +network + nri null add 0 + nri null add 423 +---- + +==== Assigning NRI Ranges to MSCs + +Each MSC configured in OsmoBSC must be assigned a distinct NRI value range. +Overlapping NRI value ranges will cause failure to serve subscribers. + +NRI values are typically configured in ranges, here dividing a 10bit range +(0..1023) into three equal ranges, while leaving 0 available to be configured +as NULL-NRI: + +---- +msc 0 + nri add 1 341 +msc 1 + nri add 342 684 +msc 2 + nri add 685 1023 +---- + +NRI can also be assigned in single values: + +---- +msc 0 + nri add 23 +---- + +Ranges can be constructed arbitrarily by a sequence of `add` and `del` +configurations, here a contrived example: + +---- +msc 0 + nri add 0 342 + nri del 23 + nri del 42 235 + nri add 1000 1023 +---- + +To view the current NRI config in a running OsmoBSC instance, use the +`show nri` command, here showing the result of the contrived example: + +---- +OsmoBSC(config-msc)# show nri +msc 0 + nri add 0 22 + nri add 24 41 + nri add 236 342 + nri add 1000 1023 +---- + +On the VIEW and ENABLE VTY nodes, `show nri` shows all MSCs: + +---- +OsmoBSC> show nri +msc 0 + nri add 1 341 +msc 1 + nri add 342 684 +msc 2 + nri add 685 1023 +---- + +When configuring overlapping NRI value ranges across MSCs, the telnet VTY warns +about it, and starting OsmoBSC with such a configuration will fail: + +---- +msc 0 + nri add 1 511 +msc 1 + nri add 512 1023 +msc 2 + nri add 500 555 +---- + +This results in: + +---- +$ osmo-bsc +DMSC ERROR msc 2: NRI range [500..555] overlaps between msc 2 and msc 0. For overlaps, msc 0 has higher priority than msc 2 +DMSC ERROR msc 2: NRI range [500..555] overlaps between msc 2 and msc 1. For overlaps, msc 1 has higher priority than msc 2 +---- + +==== MSC Offloading + +To effectively offload a particular MSC, it must be marked as no longer taking +new subscribers in OsmoBSC. This can be achieved in the telnet VTY by: + +---- +msc 0 + no allow-attach +---- + +This MSC will, as long as it is connected, continue to serve subscribers +already attached to it: those that yield an NRI matching this MSC, and those +that are being paged by this MSC. But OsmoBSC will no longer direct new +subscribers to this MSC. + +To re-enable an MSC for attaching new subscribers: + +---- +msc 0 + allow-attach +---- -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22494 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I930f5df847ea6f40d0ee0c75dd25b6dd20e00839 Gerrit-Change-Number: 22494 Gerrit-PatchSet: 3 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 21:00:25 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 28 Jan 2021 21:00:25 +0000 Subject: Change in osmo-sgsn[master]: manuals/gbproxy: MSC -> SGSN for pooling chapter In-Reply-To: References: Message-ID: daniel has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22495 ) Change subject: manuals/gbproxy: MSC -> SGSN for pooling chapter ...................................................................... manuals/gbproxy: MSC -> SGSN for pooling chapter Mostly just change the chapter so it makes sense for gbproxy. Some todos are still left Change-Id: I905835c2be7be43fe376fbc9d743107948c7e6d4 Related: SYS#5115, SYS#5005 --- M doc/manuals/chapters/gbproxy-sgsnpool.adoc 1 file changed, 85 insertions(+), 104 deletions(-) Approvals: Jenkins Builder: Verified lynxis lazus: Looks good to me, approved pespin: Looks good to me, but someone else must approve diff --git a/doc/manuals/chapters/gbproxy-sgsnpool.adoc b/doc/manuals/chapters/gbproxy-sgsnpool.adoc index 923a088..c600bcf 100644 --- a/doc/manuals/chapters/gbproxy-sgsnpool.adoc +++ b/doc/manuals/chapters/gbproxy-sgsnpool.adoc @@ -1,96 +1,87 @@ -== MSC Pooling +== SGSN Pooling -MSC pooling is described in 3GPP TS 23.236 <<3gpp-ts-23-236>>, and is supported -by OsmoBSC since mid 2020. +SGSN pooling is described in 3GPP TS 23.236 <<3gpp-ts-23-236>>, and is supported +by OsmoGbProxy since early 2021. -The aim of MSC pooling is to distribute load from a BSC across multiple MSCs, +The aim of SGSN pooling is to distribute load from a BSS across multiple SGSNs, which are equivalent and redundant infrastructure for the same core network. -The main mechanism for MSC pooling is the TMSI identity, which an MSC hands out -to its attached subscribers. Typically 10 bits of the TMSI are designated as a -Network Resource Identifier (NRI) that identifies the originating MSC, and -allows OsmoBSC to direct a subscriber back to the same MSC instance that -previously negotiated the IMSI Attach procedure. Typically, the full NRI value -range available is divided into N even ranges, where each MSC is assigned one +The main mechanism for SGSN pooling is the TLLI/P-TMSI, which an SGSN hands out +to its attached subscribers. Typically 10 bits of the P-TMSI are designated as a +Network Resource Identifier (NRI) that identifies the originating SGSN, and +allows OsmoGbProxy to direct a subscriber back to the same SGSN instance that +previously negotiated the Attach procedure. Typically, the full NRI value +range available is divided into N even ranges, where each SGSN is assigned one NRI range. -Subscribers attaching without a TMSI identity, or those with unknown NRI value, -are evenly distributed across MSC instances. OsmoBSC uses a round-robin -approach to distribute load across all connected MSCs. +Subscribers attaching without a TLLI, or those with unknown NRI value, +are evenly distributed across SGSN instances. OsmoGbProxy uses a hash-based +approach to distribute load across all connected SGSNs. -A Paging Response from a subscriber is always returned back to whichever MSC +A Paging Response from a subscriber is always returned back to whichever SGSN initiated the Paging, regardless of the Mobile Identity used. -Finally, a NULL-NRI is a special NRI value that indicates that the MSC wishes -to offload this subscriber to a different MSC. A NULL-NRI is an arbitrary NRI -value that is chosen distinctly for each PLMN served by a BSC, so that a +Finally, a NULL-NRI is a special NRI value that indicates that the SGSN wishes +to offload this subscriber to a different SGSN. A NULL-NRI is an arbitrary NRI +value that is chosen distinctly for each PLMN served by a BSS, so that a subscriber can be reassigned within that PLMN. Upon (periodic) Location -Updating, an offloading MSC hands out a NULL-NRI value in the assigned TMSI, +Updating, an offloading SGSN hands out a NULL-NRI value in the assigned TLLI, along with a non-broadcast LAI. The subscriber will notice the LAI mismatch, -and immediately re-attempt the attach using the TMSI containing the NULL-NRI. -The BSC recognises the NULL-NRI and redirects the subscriber to one of the -other MSCs. A prerequisite for this to work well is that the particular MSC is -previously marked as not accepting new subscribers, in the BSC's configuration. +and immediately re-attempt the attach using the TLLI containing the NULL-NRI. +OsmoGbProxy recognises the NULL-NRI and redirects the subscriber to one of the +other SGSNs. A prerequisite for this to work well is that the particular SGSN is +previously marked as not accepting new subscribers, in OsmoGbProxy's configuration. The mechanisms described above make up the NAS node selection function -implemented in the BSC. +implemented in OsmoGbProxy. -3GPP TS 23.236 also defines that an offloading MSC hands subscriber information -to the newly assigned MSC, which takes place outside the scope of the BSC. +3GPP TS 23.236 also defines that an offloading SGSN hands subscriber information +to the newly assigned SGSN, which takes place outside the scope of OsmoGbProxy. -=== Configuring MSC Pooling +=== Configuring SGSN Pooling -The NRI ranges assigned to each MSC must match in the BSC and the MSC -configuration. If MSC and BSC had inconsistent NRI value ranges configured, -attached subscribers would be redirected MSC instances that did not perform the +The NRI ranges assigned to each SGSN must match in the OsmoGbProxy and the SGSN +configuration. If inconsistent NRI value ranges are configured, +attached subscribers would be redirected to SGSN instances that did not perform the attach, possibly rendering the core network unusable. -==== Connecting Multiple MSCs - -The `cs7 instance` configuration defines the SCCP addresses to reach the MSCs -at. In addition, each MSC is configured by its own `msc` section in the -configuration. An example osmo-bsc.cfg serving three MSCs: +==== Connecting Multiple SGSNs ---- -cs7 instance 0 - # SCCP address book entries for the three MSCs - sccp-address my-msc-0 - point-code 0.23.0 - sccp-address my-msc-1 - point-code 0.23.1 - sccp-address my-msc-2 - point-code 0.23.2 - -# assign each MSC configuration its remote SCCP address -msc 0 - msc-addr my-msc-0 -msc 1 - msc-addr my-msc-1 -msc 2 - msc-addr my-msc-2 - +# Configure the Network Service +ns + bind udp sgsn + listen 10.0.0.1 23000 + nse 1 + ip-sns 10.0.1.1 23000 + ip-sns 10.0.1.1 23001 + nse 2 + ip-sns 10.0.1.2 23000 + nse 3 + ip-sns 10.0.1.3 23000 # configure NRI value ranges -network +gbproxy nri bitlen 10 nri null add 0 -msc 0 +sgsn 1 nri add 1 341 -msc 1 +sgsn 2 nri add 342 682 -msc 2 +sgsn 3 nri add 683 1023 ---- ==== NRI Value Bit Length -In OsmoBSC, the NRI value's bit length is freely configurable from 1 to 15 -bits. 3GPP TS 23.236 suggests a typical bit length of 10, which is OsmoBSC's -default. The NRI bit length must be identical across the entire MSC pool. +In OsmGbProxy, the NRI value's bit length is freely configurable from 0 to 15 +bits. 3GPP TS 23.236 suggests a typical bit length of 10. Setting the length +to 0 disables SGSN pooling, this is also the default. +The NRI bit length must be identical across the entire SGSN pool. -Change the NRI value bit length in OsmoBSC's VTY configuration like this: +Change the NRI value bit length in OsmoGbProxy's VTY configuration like this: ---- -network +gbproxy nri bitlen 10 ---- @@ -100,9 +91,9 @@ ==== NULL-NRI -Since OsmoBSC supports serving only one PLMN, NULL-NRI are configured globally. +Since OsmoGbProxy supports serving only one PLMN, NULL-NRI are configured globally. Even though 3GPP TS 23.236 indicates that there is a single NULL-NRI per PLMN, -OsmoBSC allows configuring multiple NULL-NRI values. +OsmoGbProxy allows configuring multiple NULL-NRI values. ---- network @@ -110,9 +101,9 @@ nri null add 423 ---- -==== Assigning NRI Ranges to MSCs +==== Assigning NRI Ranges to SGSNs -Each MSC configured in OsmoBSC must be assigned a distinct NRI value range. +Each SGSN configured in OsmoGbProxy must be assigned a distinct NRI value range. Overlapping NRI value ranges will cause failure to serve subscribers. NRI values are typically configured in ranges, here dividing a 10bit range @@ -120,18 +111,18 @@ as NULL-NRI: ---- -msc 0 +sgsn nsei 1 nri add 1 341 -msc 1 +sgsn nsei 2 nri add 342 684 -msc 2 +sgsn nsei 3 nri add 685 1023 ---- NRI can also be assigned in single values: ---- -msc 0 +sgsn nsei 1 nri add 23 ---- @@ -139,75 +130,65 @@ configurations, here a contrived example: ---- -msc 0 +sgsn nsei 1 nri add 0 342 nri del 23 nri del 42 235 nri add 1000 1023 ---- -To view the current NRI config in a running OsmoBSC instance, use the -`show nri` command, here showing the result of the contrived example: +On the VIEW and ENABLE VTY nodes, `show nri all` shows all SGSNs: ---- -OsmoBSC(config-msc)# show nri -msc 0 - nri add 0 22 - nri add 24 41 - nri add 236 342 - nri add 1000 1023 ----- - -On the VIEW and ENABLE VTY nodes, `show nri` shows all MSCs: - ----- -OsmoBSC> show nri -msc 0 +OsmoGbProxy> show nri all +sgsn nsei 1 nri add 1 341 -msc 1 +sgsn nsei 2 nri add 342 684 -msc 2 +sgsn nsei 3 nri add 685 1023 ---- -When configuring overlapping NRI value ranges across MSCs, the telnet VTY warns -about it, and starting OsmoBSC with such a configuration will fail: +When configuring overlapping NRI value ranges across SGSNs, the telnet VTY warns +about it, and starting OsmoGbProxy with such a configuration will fail: ---- -msc 0 +sgsn nsei 1 nri add 1 511 -msc 1 +sgsn nsei 2 nri add 512 1023 -msc 2 +sgsn nsei 3 nri add 500 555 ---- This results in: ---- -$ osmo-bsc -DMSC ERROR msc 2: NRI range [500..555] overlaps between msc 2 and msc 0. For overlaps, msc 0 has higher priority than msc 2 -DMSC ERROR msc 2: NRI range [500..555] overlaps between msc 2 and msc 1. For overlaps, msc 1 has higher priority than msc 2 +$ osmo-gbproxy +% Warning: NSE(00003/SGSN): NRI range [500..555] overlaps between NSE 00003 and NSE 00001. For overlaps, NSE 00001 has higher priority than NSE 00003 +% Warning: NSE(00003/SGSN): NRI range [500..555] overlaps between NSE 00003 and NSE 00002. For overlaps, NSE 00002 has higher priority than NSE 00003 ---- -==== MSC Offloading +==== SGSN Offloading -To effectively offload a particular MSC, it must be marked as no longer taking -new subscribers in OsmoBSC. This can be achieved in the telnet VTY by: +To effectively offload a particular SGSN, it must be marked as no longer taking +new subscribers in OsmoGbProxy. This can be achieved in the telnet VTY by: ---- -msc 0 +sgsn nsei 1 no allow-attach ---- -This MSC will, as long as it is connected, continue to serve subscribers -already attached to it: those that yield an NRI matching this MSC, and those -that are being paged by this MSC. But OsmoBSC will no longer direct new -subscribers to this MSC. +This SGSN will, as long as it is connected, continue to serve subscribers +already attached to it: those that yield an NRI matching this SGSN, and those +that are being paged by this SGSN. But OsmoGbProxy will no longer direct new +subscribers to this SGSN. -To re-enable an MSC for attaching new subscribers: +TODO: Is paging response relevant for SGSN? + +To re-enable an SGSN for attaching new subscribers: ---- -msc 0 +sgsn nsei 1 allow-attach ---- -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22495 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I905835c2be7be43fe376fbc9d743107948c7e6d4 Gerrit-Change-Number: 22495 Gerrit-PatchSet: 3 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 21:00:25 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 28 Jan 2021 21:00:25 +0000 Subject: Change in osmo-sgsn[master]: manuals/gbproxy: Move pooling to separate chapter In-Reply-To: References: Message-ID: daniel has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22496 ) Change subject: manuals/gbproxy: Move pooling to separate chapter ...................................................................... manuals/gbproxy: Move pooling to separate chapter Change-Id: Ie2ad652c8261ce56cb2ed1a6f16a81486ccdf063 Related: SYS#5115, SYS#5005 --- M doc/manuals/chapters/gbproxy-configuration.adoc M doc/manuals/chapters/gbproxy-sgsnpool.adoc 2 files changed, 25 insertions(+), 24 deletions(-) Approvals: daniel: Looks good to me, approved lynxis lazus: Looks good to me, but someone else must approve pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/doc/manuals/chapters/gbproxy-configuration.adoc b/doc/manuals/chapters/gbproxy-configuration.adoc index 726ec41..87da471 100644 --- a/doc/manuals/chapters/gbproxy-configuration.adoc +++ b/doc/manuals/chapters/gbproxy-configuration.adoc @@ -39,27 +39,3 @@ <1> Each SGSN is identified by its NSEI (same as in the NS configuration) <2> An SGSN can optionally have a name. If none is set a default name will be used. -=== SGSN pool support - -In a SGSN pool, osmo-gbproxy is facing the problem of dividing the downlink -capacity of a cell towards the SGSN. The BSS advertises the per-BVC capacity -by means of the BSSGP FLOW-CONTROL-BVC messages, but as there are multiple -SGSN in a pool, they all have to share / divide that total capacity. - -By default, osmo-gbproxy advertises the full capacity to _each_ of the SGSN -pool members, which results in significant over-provisioning and can lead to -overload situations. - -The administrator can configure the _percentage_ of the overall BSS-advertised -capacity that shall be reported to each pool member SGSN using the -`pool bvc-flow-control-ratio <1-100>` configuration command. - -A setting of 100 means that each pool member is informed of 100% of the -BSS side capacity. - -A setting of 25 means that each pool member is informed of 25% of the -BSS side capacity. This would make most sense in a set-up with four -SGSN of equal share. - -More complex capacity division schemes are so far not supported by -osmo-gbproxy. diff --git a/doc/manuals/chapters/gbproxy-sgsnpool.adoc b/doc/manuals/chapters/gbproxy-sgsnpool.adoc index c600bcf..61806af 100644 --- a/doc/manuals/chapters/gbproxy-sgsnpool.adoc +++ b/doc/manuals/chapters/gbproxy-sgsnpool.adoc @@ -192,3 +192,28 @@ sgsn nsei 1 allow-attach ---- + +==== Traffic allocation + +In a SGSN pool, osmo-gbproxy is facing the problem of dividing the downlink +capacity of a cell towards the SGSN. The BSS advertises the per-BVC capacity +by means of the BSSGP FLOW-CONTROL-BVC messages, but as there are multiple +SGSN in a pool, they all have to share / divide that total capacity. + +By default, osmo-gbproxy advertises the full capacity to _each_ of the SGSN +pool members, which results in significant over-provisioning and can lead to +overload situations. + +The administrator can configure the _percentage_ of the overall BSS-advertised +capacity that shall be reported to each pool member SGSN using the +`pool bvc-flow-control-ratio <1-100>` configuration command. + +A setting of 100 means that each pool member is informed of 100% of the +BSS side capacity. + +A setting of 25 means that each pool member is informed of 25% of the +BSS side capacity. This would make most sense in a set-up with four +SGSN of equal share. + +More complex capacity division schemes are so far not supported by +osmo-gbproxy. -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22496 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ie2ad652c8261ce56cb2ed1a6f16a81486ccdf063 Gerrit-Change-Number: 22496 Gerrit-PatchSet: 3 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 21:07:24 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 28 Jan 2021 21:07:24 +0000 Subject: Change in gapk[master]: configure.ac: set -std=gnu11 In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/gapk/+/22463 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/gapk/+/22463 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: gapk Gerrit-Branch: master Gerrit-Change-Id: I7d4c4e1f3663e448c5d044ccb4bbd3e813898f23 Gerrit-Change-Number: 22463 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Comment-Date: Thu, 28 Jan 2021 21:07:24 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 21:07:30 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 28 Jan 2021 21:07:30 +0000 Subject: Change in libgtpnl[master]: configure.ac: set -std=gnu11 In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libgtpnl/+/22464 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libgtpnl/+/22464 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libgtpnl Gerrit-Branch: master Gerrit-Change-Id: Iea60698b4cb0f9c04a6f75cc4ca2ea5fbb84bae8 Gerrit-Change-Number: 22464 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Comment-Date: Thu, 28 Jan 2021 21:07:30 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 21:07:49 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 28 Jan 2021 21:07:49 +0000 Subject: Change in gapk[master]: configure.ac: set -std=gnu11 In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/gapk/+/22463 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/gapk/+/22463 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: gapk Gerrit-Branch: master Gerrit-Change-Id: I7d4c4e1f3663e448c5d044ccb4bbd3e813898f23 Gerrit-Change-Number: 22463 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Thu, 28 Jan 2021 21:07:49 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 21:07:59 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 28 Jan 2021 21:07:59 +0000 Subject: Change in libgtpnl[master]: configure.ac: set -std=gnu11 In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libgtpnl/+/22464 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libgtpnl/+/22464 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libgtpnl Gerrit-Branch: master Gerrit-Change-Id: Iea60698b4cb0f9c04a6f75cc4ca2ea5fbb84bae8 Gerrit-Change-Number: 22464 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Thu, 28 Jan 2021 21:07:59 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 21:10:45 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 28 Jan 2021 21:10:45 +0000 Subject: Change in osmo-pcu[master]: gprs_ns2: migrate to the new vty syntax In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22507 ) Change subject: gprs_ns2: migrate to the new vty syntax ...................................................................... gprs_ns2: migrate to the new vty syntax This also changes the vty configuration. If only timeout has been configured for ns the new configuration is compatible. For further information see: https://osmocom.org/projects/libosmocore/wiki/Network_service_(NS) Depends-on: I8c3f2afecc74b78f7f914f7dce166cbcb63444eb (libosmocore) Change-Id: I14af821a8d1fda670643c3d5f81299a3abf3c583 --- M src/pcu_main.cpp 1 file changed, 1 insertion(+), 3 deletions(-) Approvals: daniel: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/pcu_main.cpp b/src/pcu_main.cpp index ea7e341..003cabb 100644 --- a/src/pcu_main.cpp +++ b/src/pcu_main.cpp @@ -270,7 +270,7 @@ exit(1); } bssgp_set_bssgp_callback(gprs_gp_send_cb, pcu->nsi); - gprs_ns2_vty_init(pcu->nsi, NULL); + gprs_ns2_vty_init(pcu->nsi); rc = vty_read_config_file(config_file, NULL); if (rc < 0 && config_given) { @@ -282,8 +282,6 @@ fprintf(stderr, "No config file: '%s' Using default config.\n", config_file); - gprs_ns2_vty_create(); - rc = telnet_init_dynif(tall_pcu_ctx, NULL, vty_get_bind_addr(), OSMO_VTY_PORT_PCU); if (rc < 0) { -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22507 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I14af821a8d1fda670643c3d5f81299a3abf3c583 Gerrit-Change-Number: 22507 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-CC: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 21:12:49 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 28 Jan 2021 21:12:49 +0000 Subject: Change in libosmocore[master]: ctrl_connection: Initialize write_queue.bfd.fd to -1 during allocation In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22462 ) Change subject: ctrl_connection: Initialize write_queue.bfd.fd to -1 during allocation ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22462 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I98f744d2880fbb883719cdf1d3eb31f2b22a13b6 Gerrit-Change-Number: 22462 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Thu, 28 Jan 2021 21:12:49 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 21:16:09 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 28 Jan 2021 21:16:09 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: follow gprs_ns2 API vty changes In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22500 ) Change subject: gbproxy: follow gprs_ns2 API vty changes ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22500 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: If5bd6b86e130772e6c93d640b0c637985416136d Gerrit-Change-Number: 22500 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 28 Jan 2021 21:16:09 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 21:17:27 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 28 Jan 2021 21:17:27 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: follow gprs_ns2 API vty changes In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, pespin, daniel, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22500 to look at the new patch set (#2). Change subject: gbproxy: follow gprs_ns2 API vty changes ...................................................................... gbproxy: follow gprs_ns2 API vty changes The gprs_ns2_vty2 has been renamed to gprs_ns2_vty. The old vty has been complete dropped. API change which must be synchronized with libosmocore. Depends-on: I8c3f2afecc74b78f7f914f7dce166cbcb63444eb (libosmocore) Change-Id: If5bd6b86e130772e6c93d640b0c637985416136d --- M src/gbproxy/gb_proxy_main.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/00/22500/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22500 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: If5bd6b86e130772e6c93d640b0c637985416136d Gerrit-Change-Number: 22500 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 21:17:27 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 28 Jan 2021 21:17:27 +0000 Subject: Change in osmo-sgsn[master]: sgsn: migrate to the new gprs_ns2_vty configuration In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, pespin, daniel, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22501 to look at the new patch set (#3). Change subject: sgsn: migrate to the new gprs_ns2_vty configuration ...................................................................... sgsn: migrate to the new gprs_ns2_vty configuration Change the whole vty configuration for NS to be more flexible and support more setups. Old configurations are invalid. API change which must be synchronized with libosmocore For further information see: https://osmocom.org/projects/libosmocore/wiki/Network_service_(NS) Depends-on: I8c3f2afecc74b78f7f914f7dce166cbcb63444eb (libosmocore) Change-Id: Ie9306ab4d4738c2c57a69987086e22771b30657e --- M TODO-RELEASE M doc/examples/osmo-sgsn/osmo-sgsn-accept-all.cfg M doc/examples/osmo-sgsn/osmo-sgsn.cfg M doc/examples/osmo-sgsn/osmo-sgsn_custom-sccp.cfg M src/sgsn/sgsn_main.c 5 files changed, 11 insertions(+), 21 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/01/22501/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22501 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ie9306ab4d4738c2c57a69987086e22771b30657e Gerrit-Change-Number: 22501 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 21:17:27 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 28 Jan 2021 21:17:27 +0000 Subject: Change in osmo-sgsn[master]: follow libosmocore/gprs_ns2 API changes (gprs_ns2_dynamic_create_nse) In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, pespin, daniel, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22502 to look at the new patch set (#3). Change subject: follow libosmocore/gprs_ns2 API changes (gprs_ns2_dynamic_create_nse) ...................................................................... follow libosmocore/gprs_ns2 API changes (gprs_ns2_dynamic_create_nse) The call gprs_ns2_dynamic_create_nse has been removed because it was a workaround for the old/dropped vty api. Depends-on: Ie924ead6da17657f3da334068c8ada82c8845495 (libosmocore) Change-Id: Ie636cfd18d6d43da0e42f2c2de68dfa5c571d55c --- M src/gbproxy/gb_proxy_main.c M src/sgsn/sgsn_main.c 2 files changed, 0 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/02/22502/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22502 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ie636cfd18d6d43da0e42f2c2de68dfa5c571d55c Gerrit-Change-Number: 22502 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 21:18:42 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 28 Jan 2021 21:18:42 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: follow gprs_ns2 API vty changes In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, pespin, daniel, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22500 to look at the new patch set (#3). Change subject: gbproxy: follow gprs_ns2 API vty changes ...................................................................... gbproxy: follow gprs_ns2 API vty changes The gprs_ns2_vty2 has been renamed to gprs_ns2_vty. The old vty has been complete dropped. API change which must be synchronized with libosmocore. Depends-on: I8c3f2afecc74b78f7f914f7dce166cbcb63444eb (libosmocore) Change-Id: If5bd6b86e130772e6c93d640b0c637985416136d --- M src/gbproxy/gb_proxy_main.c 1 file changed, 1 insertion(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/00/22500/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22500 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: If5bd6b86e130772e6c93d640b0c637985416136d Gerrit-Change-Number: 22500 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 21:19:17 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 28 Jan 2021 21:19:17 +0000 Subject: Change in osmo-sgsn[master]: follow libosmocore/gprs_ns2 API changes (gprs_ns2_dynamic_create_nse) In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22502 ) Change subject: follow libosmocore/gprs_ns2 API changes (gprs_ns2_dynamic_create_nse) ...................................................................... Patch Set 4: Verified+1 jenkins can't check it because libosmocore changes already merged. -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22502 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ie636cfd18d6d43da0e42f2c2de68dfa5c571d55c Gerrit-Change-Number: 22502 Gerrit-PatchSet: 4 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 28 Jan 2021 21:19:17 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 21:19:30 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 28 Jan 2021 21:19:30 +0000 Subject: Change in osmo-sgsn[master]: sgsn: migrate to the new gprs_ns2_vty configuration In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22501 ) Change subject: sgsn: migrate to the new gprs_ns2_vty configuration ...................................................................... Patch Set 4: Verified+1 jenkins can't check it because libosmocore changes already merged. -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22501 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ie9306ab4d4738c2c57a69987086e22771b30657e Gerrit-Change-Number: 22501 Gerrit-PatchSet: 4 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 28 Jan 2021 21:19:30 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 21:19:37 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 28 Jan 2021 21:19:37 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: follow gprs_ns2 API vty changes In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22500 ) Change subject: gbproxy: follow gprs_ns2 API vty changes ...................................................................... Patch Set 3: Verified+1 jenkins can't check it because libosmocore changes already merged. -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22500 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: If5bd6b86e130772e6c93d640b0c637985416136d Gerrit-Change-Number: 22500 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 28 Jan 2021 21:19:37 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 21:19:54 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 28 Jan 2021 21:19:54 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: follow gprs_ns2 API vty changes In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22500 ) Change subject: gbproxy: follow gprs_ns2 API vty changes ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22500 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: If5bd6b86e130772e6c93d640b0c637985416136d Gerrit-Change-Number: 22500 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 28 Jan 2021 21:19:54 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 21:19:59 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 28 Jan 2021 21:19:59 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: follow gprs_ns2 API vty changes In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22500 ) Change subject: gbproxy: follow gprs_ns2 API vty changes ...................................................................... gbproxy: follow gprs_ns2 API vty changes The gprs_ns2_vty2 has been renamed to gprs_ns2_vty. The old vty has been complete dropped. API change which must be synchronized with libosmocore. Depends-on: I8c3f2afecc74b78f7f914f7dce166cbcb63444eb (libosmocore) Change-Id: If5bd6b86e130772e6c93d640b0c637985416136d --- M src/gbproxy/gb_proxy_main.c 1 file changed, 1 insertion(+), 2 deletions(-) Approvals: daniel: Looks good to me, approved lynxis lazus: Verified diff --git a/src/gbproxy/gb_proxy_main.c b/src/gbproxy/gb_proxy_main.c index 37afb5e..2baa187 100644 --- a/src/gbproxy/gb_proxy_main.c +++ b/src/gbproxy/gb_proxy_main.c @@ -288,8 +288,7 @@ LOGP(DGPRS, LOGL_ERROR, "Unable to instantiate NS\n"); exit(1); } - - gprs_ns2_vty2_init(gbcfg->nsi); + gprs_ns2_vty_init(gbcfg->nsi); logging_vty_add_deprecated_subsys(tall_sgsn_ctx, "bssgp"); gprs_ns2_dynamic_create_nse(gbcfg->nsi, true); -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22500 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: If5bd6b86e130772e6c93d640b0c637985416136d Gerrit-Change-Number: 22500 Gerrit-PatchSet: 4 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 21:20:00 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 28 Jan 2021 21:20:00 +0000 Subject: Change in osmo-sgsn[master]: sgsn: migrate to the new gprs_ns2_vty configuration In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22501 ) Change subject: sgsn: migrate to the new gprs_ns2_vty configuration ...................................................................... sgsn: migrate to the new gprs_ns2_vty configuration Change the whole vty configuration for NS to be more flexible and support more setups. Old configurations are invalid. API change which must be synchronized with libosmocore For further information see: https://osmocom.org/projects/libosmocore/wiki/Network_service_(NS) Depends-on: I8c3f2afecc74b78f7f914f7dce166cbcb63444eb (libosmocore) Change-Id: Ie9306ab4d4738c2c57a69987086e22771b30657e --- M TODO-RELEASE M doc/examples/osmo-sgsn/osmo-sgsn-accept-all.cfg M doc/examples/osmo-sgsn/osmo-sgsn.cfg M doc/examples/osmo-sgsn/osmo-sgsn_custom-sccp.cfg M src/sgsn/sgsn_main.c 5 files changed, 11 insertions(+), 21 deletions(-) Approvals: daniel: Looks good to me, approved lynxis lazus: Verified diff --git a/TODO-RELEASE b/TODO-RELEASE index 1e409b5..5514897 100644 --- a/TODO-RELEASE +++ b/TODO-RELEASE @@ -1,3 +1,4 @@ #component what description / commit summary line manual needs common chapter cs7-config.adoc, vty_cpu_sched.adoc from osmo-gsm-manuals > 0.3.0 configure.ac libosmocore depend on next released libosmocore after 1.4.x with hashtable support +sgsn vty/config change the configuration of the vty config. old configuration are invalid. diff --git a/doc/examples/osmo-sgsn/osmo-sgsn-accept-all.cfg b/doc/examples/osmo-sgsn/osmo-sgsn-accept-all.cfg index 85112f4..7abe7b3 100644 --- a/doc/examples/osmo-sgsn/osmo-sgsn-accept-all.cfg +++ b/doc/examples/osmo-sgsn/osmo-sgsn-accept-all.cfg @@ -21,9 +21,9 @@ timer tns-test 30 timer tns-alive 3 timer tns-alive-retries 10 - encapsulation udp local-ip 127.0.0.1 - encapsulation udp local-port 23000 - encapsulation framerelay-gre enabled 0 + bind udp local + listen 127.0.0.1 23000 + accept-ipaccess ! bssgp ! diff --git a/doc/examples/osmo-sgsn/osmo-sgsn.cfg b/doc/examples/osmo-sgsn/osmo-sgsn.cfg index 3be4d49..11413c1 100644 --- a/doc/examples/osmo-sgsn/osmo-sgsn.cfg +++ b/doc/examples/osmo-sgsn/osmo-sgsn.cfg @@ -23,9 +23,9 @@ timer tns-test 30 timer tns-alive 3 timer tns-alive-retries 10 - encapsulation udp local-ip 127.0.0.1 - encapsulation udp local-port 23000 - encapsulation framerelay-gre enabled 0 + bind udp local + listen 127.0.0.1 23000 + accept-ipaccess ! bssgp ! diff --git a/doc/examples/osmo-sgsn/osmo-sgsn_custom-sccp.cfg b/doc/examples/osmo-sgsn/osmo-sgsn_custom-sccp.cfg index f60c076..fd5a205 100644 --- a/doc/examples/osmo-sgsn/osmo-sgsn_custom-sccp.cfg +++ b/doc/examples/osmo-sgsn/osmo-sgsn_custom-sccp.cfg @@ -31,9 +31,9 @@ timer tns-test 30 timer tns-alive 3 timer tns-alive-retries 10 - encapsulation udp local-ip 127.0.0.1 - encapsulation udp local-port 23000 - encapsulation framerelay-gre enabled 0 + bind udp local + listen 127.0.0.1 23000 + accept-ipaccess ! bssgp ! diff --git a/src/sgsn/sgsn_main.c b/src/sgsn/sgsn_main.c index 19039f6..f6eac60 100644 --- a/src/sgsn/sgsn_main.c +++ b/src/sgsn/sgsn_main.c @@ -328,11 +328,6 @@ int main(int argc, char **argv) { int rc; - struct osmo_sockaddr_str bind_address = { - .af = AF_INET, - .ip = "0.0.0.0", - .port = 23000, - }; #if BUILD_IU struct osmo_sccp_instance *sccp; #endif @@ -402,7 +397,7 @@ sgsn_inst_init(sgsn); - gprs_ns2_vty_init(sgsn_nsi, &bind_address); + gprs_ns2_vty_init(sgsn_nsi); bssgp_vty_init(); gprs_llc_vty_init(); gprs_sndcp_vty_init(); @@ -449,12 +444,6 @@ exit(2); } - rc = gprs_ns2_vty_create(); - if (rc < 0) { - LOGP(DGPRS, LOGL_FATAL, "Cannot bind/listen on NSIP socket\n"); - exit(2); - } - gprs_ns2_dynamic_create_nse(sgsn_nsi, true); if (sgsn->cfg.dynamic_lookup) { -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22501 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ie9306ab4d4738c2c57a69987086e22771b30657e Gerrit-Change-Number: 22501 Gerrit-PatchSet: 5 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 21:20:01 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 28 Jan 2021 21:20:01 +0000 Subject: Change in osmo-sgsn[master]: follow libosmocore/gprs_ns2 API changes (gprs_ns2_dynamic_create_nse) In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22502 ) Change subject: follow libosmocore/gprs_ns2 API changes (gprs_ns2_dynamic_create_nse) ...................................................................... follow libosmocore/gprs_ns2 API changes (gprs_ns2_dynamic_create_nse) The call gprs_ns2_dynamic_create_nse has been removed because it was a workaround for the old/dropped vty api. Depends-on: Ie924ead6da17657f3da334068c8ada82c8845495 (libosmocore) Change-Id: Ie636cfd18d6d43da0e42f2c2de68dfa5c571d55c --- M src/gbproxy/gb_proxy_main.c M src/sgsn/sgsn_main.c 2 files changed, 0 insertions(+), 3 deletions(-) Approvals: daniel: Looks good to me, approved lynxis lazus: Verified diff --git a/src/gbproxy/gb_proxy_main.c b/src/gbproxy/gb_proxy_main.c index 2baa187..b76e0fb 100644 --- a/src/gbproxy/gb_proxy_main.c +++ b/src/gbproxy/gb_proxy_main.c @@ -290,7 +290,6 @@ } gprs_ns2_vty_init(gbcfg->nsi); logging_vty_add_deprecated_subsys(tall_sgsn_ctx, "bssgp"); - gprs_ns2_dynamic_create_nse(gbcfg->nsi, true); bssgp_set_bssgp_callback(gbprox_bssgp_send_cb, gbcfg); diff --git a/src/sgsn/sgsn_main.c b/src/sgsn/sgsn_main.c index f6eac60..075d59c 100644 --- a/src/sgsn/sgsn_main.c +++ b/src/sgsn/sgsn_main.c @@ -444,8 +444,6 @@ exit(2); } - gprs_ns2_dynamic_create_nse(sgsn_nsi, true); - if (sgsn->cfg.dynamic_lookup) { if (sgsn_ares_init(sgsn) != 0) { LOGP(DGPRS, LOGL_FATAL, -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22502 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Ie636cfd18d6d43da0e42f2c2de68dfa5c571d55c Gerrit-Change-Number: 22502 Gerrit-PatchSet: 5 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 21:20:14 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 28 Jan 2021 21:20:14 +0000 Subject: Change in osmo-ttcn3-hacks[master]: PCU_Tests: add testcase TC_rim_ran_info_req_single_rep and _no_si In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, fixeria, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369 to look at the new patch set (#4). Change subject: PCU_Tests: add testcase TC_rim_ran_info_req_single_rep and _no_si ...................................................................... PCU_Tests: add testcase TC_rim_ran_info_req_single_rep and _no_si Perform a full RAN information request (single report) against the PCU and check the results. Also test what happens when the request is issued at a time where osmo-bts has no system information available. Depends: osmo-pcu Id72118120c14984d2fb1b918b41fac4868150d41 Depends: osmo-bts I1726c9e29cc59c499dfabbdaf63c0f1a09984764 Related: SYS#5103 Change-Id: I9054ab0e969c0fbfdc671c92d44cc61360959adc --- M bts/BTS_Tests.default M library/PCUIF_Types.ttcn M pcu/PCU_Tests.default M pcu/PCU_Tests.ttcn M pcu/PCU_Tests_SNS.cfg M pcu/PCU_Tests_SNSv6.cfg 6 files changed, 177 insertions(+), 11 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/69/22369/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I9054ab0e969c0fbfdc671c92d44cc61360959adc Gerrit-Change-Number: 22369 Gerrit-PatchSet: 4 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 21:20:14 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 28 Jan 2021 21:20:14 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BTS_Tests: check if si1, si3, si13 are updated via PCUIF In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22431 to look at the new patch set (#3). Change subject: BTS_Tests: check if si1,si3,si13 are updated via PCUIF ...................................................................... BTS_Tests: check if si1,si3,si13 are updated via PCUIF The BSC can update the system information at any time. In the case of SI1, SI3, SI14 it is important that the changes are propagated to the PCU as well. Related: SYS#5103 Change-Id: I6ec543b3cb33d82c442083b52c991add71b34644 --- M bts/BTS_Tests.ttcn M library/General_Types.ttcn 2 files changed, 58 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/31/22431/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22431 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I6ec543b3cb33d82c442083b52c991add71b34644 Gerrit-Change-Number: 22431 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 21:20:15 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 28 Jan 2021 21:20:15 +0000 Subject: Change in osmo-ttcn3-hacks[master]: GBProxy_Tests: fix TC_rim_* tests References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22525 ) Change subject: GBProxy_Tests: fix TC_rim_* tests ...................................................................... GBProxy_Tests: fix TC_rim_* tests The TC_rim tests do not use the RIM templates from Osmocom_Gb_Types as intended. Change-Id: Ie484f288aa0515ef4df4a3cf7f8a347a3f3cf587 Related: SYS#5103 --- M gbproxy/GBProxy_Tests.ttcn M library/Osmocom_Gb_Types.ttcn 2 files changed, 248 insertions(+), 68 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/25/22525/1 diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index df27a3d..e3231e2 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -2914,20 +2914,35 @@ runs on GlobalTest_CT { var BssgpCellId cell_id := g_pcu[pcu_idx].cfg.bvc[bvc_idx].cell_id; - var template (value) RIM_Routing_Information ri_pcu; - var template (value) RIM_Routing_Information ri_sgsn; - var template (value) RAN_Information_Request_RIM_Container cont; + var template (value) RAN_Information_Request_RIM_Container cont_tx; + var template RAN_Information_Request_RIM_Container cont_rx; + var template RIM_Routing_Address ra_pcu; + var template RIM_Routing_Address ra_sgsn; - ri_sgsn := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, t_RIM_Routing_Address_cid(cell_id_sgsn)); - ri_pcu := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, t_RIM_Routing_Address_cid(cell_id)); - cont := ts_RAN_Information_Request_RIM_Container(ts_RIM_Application_Identity(RIM_APP_ID_NACC), - ts_RIM_Sequence_Number(0), - ts_RIM_PDU_Indications(false, RIM_PDU_TYPE_STOP)); - f_rim_pcu2sgsn(ts_RAN_INFORMATION_REQUEST(dst := ri_sgsn, src := ri_pcu, cont := cont), - tr_RAN_INFORMATION_REQUEST(dst := ri_sgsn, src := ri_pcu, cont := cont), - pcu_idx); - f_rim_sgsn2pcu(ts_RAN_INFORMATION_REQUEST(dst := ri_pcu, src := ri_sgsn, cont := cont), - tr_RAN_INFORMATION_REQUEST(dst := ri_pcu, src := ri_sgsn, cont := cont), + ra_pcu := t_RIM_Routing_Address_cid(cell_id); + ra_sgsn := t_RIM_Routing_Address_cid(cell_id_sgsn); + + cont_tx := ts_RAN_Information_Request_RIM_Container(ts_RIM_Application_Identity(RIM_APP_ID_NACC), + ts_RIM_Sequence_Number(0), + ts_RIM_PDU_Indications(false, RIM_PDU_TYPE_STOP)); + cont_rx := tr_RAN_Information_Request_RIM_Container(tr_RIM_Application_Identity(RIM_APP_ID_NACC), + tr_RIM_Sequence_Number(0), + tr_RIM_PDU_Indications(false, RIM_PDU_TYPE_STOP)); + + f_rim_pcu2sgsn(ts_RAN_INFORMATION_REQUEST(dst := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_sgsn), + src := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_pcu), + cont := cont_tx), + tr_RAN_INFORMATION_REQUEST(dst := tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_sgsn), + src := tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_pcu), + cont := cont_rx), + pcu_idx); + + f_rim_sgsn2pcu(ts_RAN_INFORMATION_REQUEST(dst := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_pcu), + src := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_sgsn), + cont := cont_tx), + tr_RAN_INFORMATION_REQUEST(dst := tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_pcu), + src := tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_sgsn), + cont := cont_rx), sgsn_idx, pcu_idx); } testcase TC_rim_info_req() runs on GlobalTest_CT @@ -2943,20 +2958,36 @@ runs on GlobalTest_CT { var BssgpCellId cell_id := g_pcu[pcu_idx].cfg.bvc[bvc_idx].cell_id; - var template (value) RIM_Routing_Information ri_pcu; - var template (value) RIM_Routing_Information ri_sgsn; - var template (value) RAN_Information_RIM_Container cont; + var template (value) RAN_Information_RIM_Container cont_tx; + var template RAN_Information_RIM_Container cont_rx; + var template RIM_Routing_Address ra_pcu; + var template RIM_Routing_Address ra_sgsn; - ri_sgsn := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, t_RIM_Routing_Address_cid(cell_id_sgsn)); - ri_pcu := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, t_RIM_Routing_Address_cid(cell_id)); - cont := ts_RAN_Information_RIM_Container(ts_RIM_Application_Identity(RIM_APP_ID_NACC), - ts_RIM_Sequence_Number(0), - ts_RIM_PDU_Indications(false, RIM_PDU_TYPE_STOP)); - f_rim_pcu2sgsn(ts_PDU_BSSGP_RAN_INFORMATION(dst := ri_sgsn, src := ri_pcu, cont := cont), - tr_PDU_BSSGP_RAN_INFORMATION(dst := ri_sgsn, src := ri_pcu, cont := cont), - pcu_idx); - f_rim_sgsn2pcu(ts_PDU_BSSGP_RAN_INFORMATION(dst := ri_pcu, src := ri_sgsn, cont := cont), - tr_PDU_BSSGP_RAN_INFORMATION(dst := ri_pcu, src := ri_sgsn, cont := cont), + ra_pcu := t_RIM_Routing_Address_cid(cell_id); + ra_sgsn := t_RIM_Routing_Address_cid(cell_id_sgsn); + + cont_tx := ts_RAN_Information_RIM_Container(ts_RIM_Application_Identity(RIM_APP_ID_NACC), + ts_RIM_Sequence_Number(0), + ts_RIM_PDU_Indications(false, RIM_PDU_TYPE_STOP)); + + cont_rx := tr_RAN_Information_RIM_Container(tr_RIM_Application_Identity(RIM_APP_ID_NACC), + tr_RIM_Sequence_Number(0), + tr_RIM_PDU_Indications(false, RIM_PDU_TYPE_STOP)); + + f_rim_pcu2sgsn(ts_PDU_BSSGP_RAN_INFORMATION(dst := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_sgsn), + src := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_pcu), + cont := cont_tx), + tr_PDU_BSSGP_RAN_INFORMATION(dst := tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_sgsn), + src := tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_pcu), + cont := cont_rx), + pcu_idx); + + f_rim_sgsn2pcu(ts_PDU_BSSGP_RAN_INFORMATION(dst := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_pcu), + src := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_sgsn), + cont := cont_tx), + tr_PDU_BSSGP_RAN_INFORMATION(dst := tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_pcu), + src := tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_sgsn), + cont := cont_rx), sgsn_idx, pcu_idx); } testcase TC_rim_info() runs on GlobalTest_CT @@ -2972,19 +3003,34 @@ runs on GlobalTest_CT { var BssgpCellId cell_id := g_pcu[pcu_idx].cfg.bvc[bvc_idx].cell_id; - var template (value) RIM_Routing_Information ri_pcu; - var template (value) RIM_Routing_Information ri_sgsn; - var template (value) RAN_Information_Ack_RIM_Container cont; + var template (value) RAN_Information_Ack_RIM_Container cont_tx; + var template RAN_Information_Ack_RIM_Container cont_rx; + var template RIM_Routing_Address ra_pcu; + var template RIM_Routing_Address ra_sgsn; - ri_sgsn := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, t_RIM_Routing_Address_cid(cell_id_sgsn)); - ri_pcu := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, t_RIM_Routing_Address_cid(cell_id)); - cont := ts_RAN_Information_Ack_RIM_Container(ts_RIM_Application_Identity(RIM_APP_ID_NACC), - ts_RIM_Sequence_Number(0)); - f_rim_pcu2sgsn(ts_PDU_BSSGP_RAN_INFORMATION_ACK(dst := ri_sgsn, src := ri_pcu, cont := cont), - tr_PDU_BSSGP_RAN_INFORMATION_ACK(dst := ri_sgsn, src := ri_pcu, cont := cont), - pcu_idx); - f_rim_sgsn2pcu(ts_PDU_BSSGP_RAN_INFORMATION_ACK(dst := ri_pcu, src := ri_sgsn, cont := cont), - tr_PDU_BSSGP_RAN_INFORMATION_ACK(dst := ri_pcu, src := ri_sgsn, cont := cont), + ra_pcu := t_RIM_Routing_Address_cid(cell_id); + ra_sgsn := t_RIM_Routing_Address_cid(cell_id_sgsn); + + cont_tx := ts_RAN_Information_Ack_RIM_Container(ts_RIM_Application_Identity(RIM_APP_ID_NACC), + ts_RIM_Sequence_Number(0)); + + cont_rx := tr_RAN_Information_Ack_RIM_Container(tr_RIM_Application_Identity(RIM_APP_ID_NACC), + tr_RIM_Sequence_Number(0)); + + f_rim_pcu2sgsn(ts_PDU_BSSGP_RAN_INFORMATION_ACK(dst := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_sgsn), + src := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_pcu), + cont := cont_tx), + tr_PDU_BSSGP_RAN_INFORMATION_ACK(dst := tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_sgsn), + src := tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_pcu), + cont := cont_rx), + pcu_idx); + + f_rim_sgsn2pcu(ts_PDU_BSSGP_RAN_INFORMATION_ACK(dst := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_pcu), + src := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_sgsn), + cont := cont_tx), + tr_PDU_BSSGP_RAN_INFORMATION_ACK(dst := tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_pcu), + src := tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_sgsn), + cont := cont_rx), sgsn_idx, pcu_idx); } testcase TC_rim_info_ack() runs on GlobalTest_CT @@ -3000,20 +3046,36 @@ runs on GlobalTest_CT { var BssgpCellId cell_id := g_pcu[pcu_idx].cfg.bvc[bvc_idx].cell_id; - var template (value) RIM_Routing_Information ri_pcu; - var template (value) RIM_Routing_Information ri_sgsn; - var template (value) RAN_Information_Error_RIM_Container cont; + var template (value) RAN_Information_Error_RIM_Container cont_tx; + var template RAN_Information_Error_RIM_Container cont_rx; + var template RIM_Routing_Address ra_pcu; + var template RIM_Routing_Address ra_sgsn; - ri_sgsn := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, t_RIM_Routing_Address_cid(cell_id_sgsn)); - ri_pcu := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, t_RIM_Routing_Address_cid(cell_id)); - cont := ts_RAN_Information_Error_RIM_Container(ts_RIM_Application_Identity(RIM_APP_ID_NACC), - ts_BSSGP_CAUSE(BSSGP_CAUSE_EQUIMENT_FAILURE), - omit, valueof(t_BVC_UNBLOCK(23))); - f_rim_pcu2sgsn(ts_PDU_BSSGP_RAN_INFORMATION_ERROR(dst := ri_sgsn, src := ri_pcu, cont := cont), - tr_PDU_BSSGP_RAN_INFORMATION_ERROR(dst := ri_sgsn, src := ri_pcu, cont := cont), - pcu_idx); - f_rim_sgsn2pcu(ts_PDU_BSSGP_RAN_INFORMATION_ERROR(dst := ri_pcu, src := ri_sgsn, cont := cont), - tr_PDU_BSSGP_RAN_INFORMATION_ERROR(dst := ri_pcu, src := ri_sgsn, cont := cont), + ra_pcu := t_RIM_Routing_Address_cid(cell_id); + ra_sgsn := t_RIM_Routing_Address_cid(cell_id_sgsn); + + cont_tx := ts_RAN_Information_Error_RIM_Container(ts_RIM_Application_Identity(RIM_APP_ID_NACC), + ts_BSSGP_CAUSE(BSSGP_CAUSE_EQUIMENT_FAILURE), + omit, valueof(t_BVC_UNBLOCK(23))); + + cont_rx := tr_RAN_Information_Error_RIM_Container(tr_RIM_Application_Identity(RIM_APP_ID_NACC), + t_BSSGP_CAUSE(BSSGP_CAUSE_EQUIMENT_FAILURE), + omit, enc_PDU_BSSGP(valueof(t_BVC_UNBLOCK(23)))); + + f_rim_pcu2sgsn(ts_PDU_BSSGP_RAN_INFORMATION_ERROR(dst := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_sgsn), + src := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_pcu), + cont := cont_tx), + tr_PDU_BSSGP_RAN_INFORMATION_ERROR(dst := tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_sgsn), + src := tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_pcu), + cont := cont_rx), + pcu_idx); + + f_rim_sgsn2pcu(ts_PDU_BSSGP_RAN_INFORMATION_ERROR(dst := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_pcu), + src := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_sgsn), + cont := cont_tx), + tr_PDU_BSSGP_RAN_INFORMATION_ERROR(dst := tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_pcu), + src := tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_sgsn), + cont := cont_rx), sgsn_idx, pcu_idx); } testcase TC_rim_info_error() runs on GlobalTest_CT @@ -3024,29 +3086,51 @@ f_cleanup(); } +////////////////// /* RAN-INFORMATION-APPLICATION-ERROR */ private function f_TC_rim_info_app_error(integer sgsn_idx, integer pcu_idx, integer bvc_idx := 0) runs on GlobalTest_CT { var BssgpCellId cell_id := g_pcu[pcu_idx].cfg.bvc[bvc_idx].cell_id; - var template (value) RIM_Routing_Information ri_pcu; - var template (value) RIM_Routing_Information ri_sgsn; - var template (value) Application_Error_Container app_cont; - var template (value) RAN_Information_Application_Error_RIM_Container cont; + var template (value) Application_Error_Container app_cont_tx; + var template Application_Error_Container app_cont_rx; + var template (value) RAN_Information_Application_Error_RIM_Container cont_tx; + var template RAN_Information_Application_Error_RIM_Container cont_rx; + var template RIM_Routing_Address ra_pcu; + var template RIM_Routing_Address ra_sgsn; - ri_sgsn := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, t_RIM_Routing_Address_cid(cell_id_sgsn)); - ri_pcu := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, t_RIM_Routing_Address_cid(cell_id)); - app_cont := tsu_Application_Error_Container_NACC(cell_id, 23, - tsu_Application_Container_IE_NACC_req(cell_id)); - cont := ts_RAN_Information_Application_Error_RIM_Container(ts_RIM_Application_Identity(RIM_APP_ID_NACC), - ts_RIM_Sequence_Number(0), - ts_RIM_PDU_Indications(false, RIM_PDU_TYPE_STOP), - omit, app_cont); - f_rim_pcu2sgsn(ts_PDU_BSSGP_RAN_INFORMATION_APPLICATION_ERROR(dst := ri_sgsn, src := ri_pcu, cont := cont), - tr_PDU_BSSGP_RAN_INFORMATION_APPLICATION_ERROR(dst := ri_sgsn, src := ri_pcu, cont := cont), - pcu_idx); - f_rim_sgsn2pcu(ts_PDU_BSSGP_RAN_INFORMATION_APPLICATION_ERROR(dst := ri_pcu, src := ri_sgsn, cont := cont), - tr_PDU_BSSGP_RAN_INFORMATION_APPLICATION_ERROR(dst := ri_pcu, src := ri_sgsn, cont := cont), + ra_pcu := t_RIM_Routing_Address_cid(cell_id); + ra_sgsn := t_RIM_Routing_Address_cid(cell_id_sgsn); + + app_cont_tx := tsu_Application_Error_Container_NACC(cell_id, 23, + tsu_Application_Container_IE_NACC_req(cell_id)); + + app_cont_rx := rsu_Application_Error_Container_NACC(cell_id, 23, + rsu_Application_Container_IE_NACC_req(cell_id)); + + cont_tx := ts_RAN_Information_Application_Error_RIM_Container(ts_RIM_Application_Identity(RIM_APP_ID_NACC), + ts_RIM_Sequence_Number(0), + ts_RIM_PDU_Indications(false, RIM_PDU_TYPE_STOP), + omit, app_cont_tx); + cont_rx := tr_RAN_Information_Application_Error_RIM_Container(tr_RIM_Application_Identity(RIM_APP_ID_NACC), + tr_RIM_Sequence_Number(0), + tr_RIM_PDU_Indications(false, RIM_PDU_TYPE_STOP), + omit, app_cont_rx); + + f_rim_pcu2sgsn(ts_PDU_BSSGP_RAN_INFORMATION_APPLICATION_ERROR(dst := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_sgsn), + src := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_pcu), + cont := cont_tx), + tr_PDU_BSSGP_RAN_INFORMATION_APPLICATION_ERROR(dst := tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_sgsn), + src := tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_pcu), + cont := cont_rx), + pcu_idx); + + f_rim_sgsn2pcu(ts_PDU_BSSGP_RAN_INFORMATION_APPLICATION_ERROR(dst := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_pcu), + src := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_sgsn), + cont := cont_tx), + tr_PDU_BSSGP_RAN_INFORMATION_APPLICATION_ERROR(dst := tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_pcu), + src := tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_sgsn), + cont := cont_rx), sgsn_idx, pcu_idx); } testcase TC_rim_info_app_error() runs on GlobalTest_CT diff --git a/library/Osmocom_Gb_Types.ttcn b/library/Osmocom_Gb_Types.ttcn index 97412b8..cbaeb72 100644 --- a/library/Osmocom_Gb_Types.ttcn +++ b/library/Osmocom_Gb_Types.ttcn @@ -2693,6 +2693,21 @@ rIM_Protocol_Version_Number := ver, sON_Transfer_Application_Identity := son_app_id } + template RAN_Information_Ack_RIM_Container + tr_RAN_Information_Ack_RIM_Container(template RIM_Application_Identity app_id := ?, + template RIM_Sequence_Number seq := ?, + template RIM_Protocol_Version_Number ver := omit, + template SON_Transfer_Application_Identity_TLV son_app_id := omit) := { + iEI := '5A'O, + ext := '1'B, + lengthIndicator := { + length1 := ? + }, + rIM_Application_Identity := app_id, + rIM_Sequence_Number := seq, + rIM_Protocol_Version_Number := ver, + sON_Transfer_Application_Identity := son_app_id + } /* 3GPP TS 48.018 11.3.62a.4 */ template (value) RAN_Information_Error_RIM_Container @@ -2719,6 +2734,30 @@ }, sON_Transfer_Application_Identity := son_app_id } + template RAN_Information_Error_RIM_Container + tr_RAN_Information_Error_RIM_Container(template RIM_Application_Identity app_id := ?, + template Cause_BSSGP cause := ?, + template RIM_Protocol_Version_Number ver := omit, + template octetstring pdu := ?, + template SON_Transfer_Application_Identity_TLV son_app_id := omit) := { + iEI := '5B'O, + ext := '1'B, + lengthIndicator := { + length1 := ? + }, + rIM_Application_Identity := app_id, + rIM_cause := cause, + rIM_Protocol_Version_Number := ver, + pDU_in_Error:= { + iEI := '15'O, + ext := '1'B, + lengthIndicator := { + length1 := ? + }, + erroneous_BSSGP_PDU := pdu + }, + sON_Transfer_Application_Identity := son_app_id + } /* 3GPP TS 48.018 11.3.62a.5 */ template (value) RAN_Information_Application_Error_RIM_Container @@ -2740,6 +2779,25 @@ application_Error_Container := cont, sON_Transfer_Application_Identity := son_app_id } + template RAN_Information_Application_Error_RIM_Container + tr_RAN_Information_Application_Error_RIM_Container(template RIM_Application_Identity app_id := ?, + template RIM_Sequence_Number seq := ?, + template RIM_PDU_Indications ind := ?, + template RIM_Protocol_Version_Number ver := omit, + template Application_Error_Container cont := ?, + template SON_Transfer_Application_Identity_TLV son_app_id := omit) := { + iEI := '59'O, + ext := '1'B, + lengthIndicator := { + length1 := ? + }, + rIM_Application_Identity := app_id, + rIM_Sequence_Number := seq, + rIM_PDU_Indications := ind, + rIM_Protocol_Version_Number := ver, + application_Error_Container := cont, + sON_Transfer_Application_Identity := son_app_id + } /* 3GPP TS 48.018 11.3.63.1 */ @@ -2775,6 +2833,15 @@ }, reporting_Cell_Identifier := t_Cell_Identifier_V(cid) } + template RAN_Information_Request_Application_Container_NACC + tr_RAN_Information_Request_Application_Container_NACC(template BssgpCellId cid := ?) := { + iEI := '4D'O, + ext := '1'B, + lengthIndicator := { + length1 := ? + }, + reporting_Cell_Identifier := t_Cell_Identifier_V(cid) + } /* 3GPP TS 48.018 11.3.63.1.2 */ template (value) RAN_Information_Request_Application_Container_SI3 @@ -2869,6 +2936,12 @@ template (value) Application_Container_IE_NACC app_cont) := { nacc := ts_Application_Error_Container_NACC(cid, cause, app_cont) } + template Application_Error_Container + rsu_Application_Error_Container_NACC(template BssgpCellId cid := ?, + template integer cause := ?, + template Application_Container_IE_NACC app_cont := ?) := { + nacc := tr_Application_Error_Container_NACC(cid, cause, app_cont) + } template (value) Application_Error_Container tsu_Application_Error_Container_SI3(template (value) BssgpCellId cid, integer cause, @@ -2895,10 +2968,33 @@ nACC_cause := int2oct(cause, 1), erroneousApplicationContainer := app_cont } + function tr_Application_Error_Container_NACC(template BssgpCellId cid := ?, + template integer cause := ?, + template Application_Container_IE_NACC app_cont := ?) + return template Application_Error_Container_NACC { + var template Application_Error_Container_NACC ret; + ret.iEI := '56'O; + ret.ext := '1'B; + ret.lengthIndicator := { length1 := ? }; + ret.erroneousApplicationContainer := app_cont; + if (istemplatekind(cause, "*")) { + ret.nACC_cause := *; + } else if (istemplatekind(cause, "?")) { + ret.nACC_cause := ?; + } else { + ret.nACC_cause := int2oct(valueof(cause), 1); + } + return ret; + } + template (value) Application_Container_IE_NACC tsu_Application_Container_IE_NACC_req(template (value) BssgpCellId cid) := { rAN_Information_Request_Application_Container := ts_RAN_Information_Request_Application_Container_NACC(cid) } + template Application_Container_IE_NACC + rsu_Application_Container_IE_NACC_req(template BssgpCellId cid := ?) := { + rAN_Information_Request_Application_Container := tr_RAN_Information_Request_Application_Container_NACC(cid) + } template (value) Application_Container_IE_NACC tsu_Application_Container_IE_NACC(template (value) BssgpCellId cid, boolean psi_type, integer si_psi_num, octetstring si_psi) := { rAN_Information_Application_Container := ts_RAN_Information_Application_Container_NACC(cid, psi_type, si_psi_num, si_psi) -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22525 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ie484f288aa0515ef4df4a3cf7f8a347a3f3cf587 Gerrit-Change-Number: 22525 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 21:21:52 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 28 Jan 2021 21:21:52 +0000 Subject: Change in osmo-ttcn3-hacks[master]: PCU_Tests: add testcase TC_rim_ran_info_req_single_rep and _no_si In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369 ) Change subject: PCU_Tests: add testcase TC_rim_ran_info_req_single_rep and _no_si ...................................................................... Patch Set 4: (5 comments) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369/2/library/PCUIF_Types.ttcn File library/PCUIF_Types.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369/2/library/PCUIF_Types.ttcn at 229 PS2, Line 229: variant (trx) "CROSSTAG(v09, version = 10; v10, version = 11)" > Oh, I was looking at the patchset 2 all the time... Sorry. Yep, it's better there. Done https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369/2/library/PCUIF_Types.ttcn at 919 PS2, Line 919: ? > '?' implies that the field is always present (not omit). This would break PCUIFv10. Yes, I noticed that there is a problem while testing with V10 in docker. I have changed it to * in patchset 3 https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369/3/library/PCUIF_Types.ttcn File library/PCUIF_Types.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369/3/library/PCUIF_Types.ttcn at 347 PS3, Line 347: case else { len := 0; } > version 11 is missing here Done https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369/3/pcu/PCU_Tests.ttcn File pcu/PCU_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369/3/pcu/PCU_Tests.ttcn at 3603 PS3, Line 3603: var octetstring si1_expect := '198fb100000000000000000000000000007900002b'O; > fyi, I'm adding these as global "const si*_default" in some of my gerrit patches for PCU_Tests (stil [?] Done https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369/3/pcu/PCU_Tests.ttcn at 3785 PS3, Line 3785: > fix whitespace Done -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I9054ab0e969c0fbfdc671c92d44cc61360959adc Gerrit-Change-Number: 22369 Gerrit-PatchSet: 4 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Thu, 28 Jan 2021 21:21:52 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: fixeria Comment-In-Reply-To: pespin Comment-In-Reply-To: dexter Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 21:22:16 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 28 Jan 2021 21:22:16 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BTS_Tests: check if si1, si3, si13 are updated via PCUIF In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22431 ) Change subject: BTS_Tests: check if si1,si3,si13 are updated via PCUIF ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22431/2/bts/BTS_Tests.ttcn File bts/BTS_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22431/2/bts/BTS_Tests.ttcn at 7203 PS2, Line 7203: /* Check that if the system information (si1, si3, si13, required for RIM) is > the "if" here should be removed. Done -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22431 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I6ec543b3cb33d82c442083b52c991add71b34644 Gerrit-Change-Number: 22431 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 28 Jan 2021 21:22:16 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 21:22:53 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 28 Jan 2021 21:22:53 +0000 Subject: Change in docker-playground[master]: sgsn: change configuration to the new NS2 In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22505 ) Change subject: sgsn: change configuration to the new NS2 ...................................................................... sgsn: change configuration to the new NS2 Change the whole vty configuration for NS to be more flexible and support more setups. Old configurations are invalid. For further information see: https://osmocom.org/projects/libosmocore/wiki/Network_service_(NS) Depends-on: Ie9306ab4d4738c2c57a69987086e22771b30657e (osmo-sgsn) Change-Id: I65fb4e52d22617cf8488d8ab77c970f84995560d --- M osmo-sgsn-master/osmo-sgsn.cfg M ttcn3-sgsn-test/jenkins.sh M ttcn3-sgsn-test/osmo-sgsn.cfg A ttcn3-sgsn-test/osmo-sgsn.latest.cfg 4 files changed, 110 insertions(+), 8 deletions(-) Approvals: lynxis lazus: Verified daniel: Looks good to me, approved diff --git a/osmo-sgsn-master/osmo-sgsn.cfg b/osmo-sgsn-master/osmo-sgsn.cfg index b39a83e..3daf9b3 100644 --- a/osmo-sgsn-master/osmo-sgsn.cfg +++ b/osmo-sgsn-master/osmo-sgsn.cfg @@ -18,7 +18,6 @@ timer tns-test 30 timer tns-alive 3 timer tns-alive-retries 10 - encapsulation udp local-ip 127.0.0.1 - encapsulation udp local-port 23000 - encapsulation framerelay-gre enabled 0 + bind udp local + listen 127.0.0.1 23000 bssgp diff --git a/ttcn3-sgsn-test/jenkins.sh b/ttcn3-sgsn-test/jenkins.sh index 5d55093..623f468 100755 --- a/ttcn3-sgsn-test/jenkins.sh +++ b/ttcn3-sgsn-test/jenkins.sh @@ -19,10 +19,12 @@ mkdir $VOL_BASE_DIR/stp cp osmo-stp.cfg $VOL_BASE_DIR/stp/ -# Disable IPv6 until libosmo-sccp.git release > 1.3.0 is available if [ "$IMAGE_SUFFIX" = "latest" ]; then + # Disable IPv6 until libosmo-sccp.git release > 1.3.0 is available sed "/fd02:db8/d" -i $VOL_BASE_DIR/stp/osmo-stp.cfg - sed "/fd02:db8/d" -i $VOL_BASE_DIR/sgsn/osmo-sgsn.cfg + + # latest doesn't use yet the NS2 code + cp osmo-sgsn.latest.cfg "$VOL_BASE_DIR/sgsn/osmo-sgsn.cfg" fi mkdir $VOL_BASE_DIR/unix diff --git a/ttcn3-sgsn-test/osmo-sgsn.cfg b/ttcn3-sgsn-test/osmo-sgsn.cfg index e571315..b587fa8 100644 --- a/ttcn3-sgsn-test/osmo-sgsn.cfg +++ b/ttcn3-sgsn-test/osmo-sgsn.cfg @@ -71,9 +71,9 @@ timer tns-test 30 timer tns-alive 3 timer tns-alive-retries 10 - encapsulation udp local-ip 172.18.8.10 - encapsulation udp local-port 23000 - encapsulation framerelay-gre enabled 0 + bind udp local + listen 172.18.8.10 23000 + accept-ipaccess bssgp sgsn gtp local-ip 172.18.8.10 diff --git a/ttcn3-sgsn-test/osmo-sgsn.latest.cfg b/ttcn3-sgsn-test/osmo-sgsn.latest.cfg new file mode 100644 index 0000000..5cee7d4 --- /dev/null +++ b/ttcn3-sgsn-test/osmo-sgsn.latest.cfg @@ -0,0 +1,101 @@ +! +! OsmoSGSN (1.2.0.46-e77e-dirty) configuration saved from vty +!! +! +log gsmtap 172.18.8.103 + logging level set-all debug + logging filter all 1 +! +log stderr + logging filter all 1 + logging color 1 + logging print category 1 + logging timestamp 1 + logging print extended-timestamp 1 + logging print file 1 + logging level all everything + logging level mm debug + logging level pag notice + logging level meas notice + logging level ref notice + logging level gprs debug + logging level ns info + logging level bssgp info + logging level llc debug + logging level sndcp debug + logging level slhc notice + logging level ranap info + logging level sua info + logging level v42bis info + logging level lglobal info + logging level llapd notice + logging level linp notice + logging level lmux notice + logging level lmi notice + logging level lmib notice + logging level lsms notice + logging level lctrl notice + logging level lgtp debug + logging level lstats notice + logging level lgsup debug + logging level loap notice + logging level lss7 notice + logging level lsccp info + logging level lsua notice + logging level lm3ua notice + logging level lmgcp notice +! +stats interval 5 +! +line vty + no login + bind 0.0.0.0 +ctrl + bind 0.0.0.0 +! +cs7 instance 0 + point-code 0.23.4 + asp asp-clnt-OsmoSGSN-A 2905 0 m3ua + local-ip 172.18.8.10 + remote-ip 172.18.8.200 + as as-clnt-OsmoSGSN-A m3ua + asp asp-clnt-OsmoSGSN-A + routing-key 3 0.23.4 +ns + timer tns-block 3 + timer tns-block-retries 3 + timer tns-reset 3 + timer tns-reset-retries 3 + timer tns-test 30 + timer tns-alive 3 + timer tns-alive-retries 10 + encapsulation udp local-ip 172.18.8.10 + encapsulation udp local-port 23000 + encapsulation framerelay-gre enabled 0 +bssgp +sgsn + gtp local-ip 172.18.8.10 + ggsn 0 remote-ip 172.18.8.103 + ggsn 0 gtp-version 1 + gsup remote-ip 172.18.8.103 + gsup remote-port 4222 + auth-policy remote + gsup oap-id 0 + ! apn * ggsn 0 + no cdr filename + no cdr trap + cdr interval 600 + timer t3312 600 + timer t3322 6 + timer t3350 6 + timer t3360 6 + timer t3370 6 + timer t3313 30 + timer t3314 44 + timer t3316 44 + timer t3385 8 + timer t3386 8 + timer t3395 8 + timer t3397 8 + no compression rfc1144 + no compression v42bis -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22505 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I65fb4e52d22617cf8488d8ab77c970f84995560d Gerrit-Change-Number: 22505 Gerrit-PatchSet: 5 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 21:22:56 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 28 Jan 2021 21:22:56 +0000 Subject: Change in osmo-ttcn3-hacks[master]: sgsn: change configuration to the new NS2 In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22503 ) Change subject: sgsn: change configuration to the new NS2 ...................................................................... sgsn: change configuration to the new NS2 Change the whole vty configuration for NS to be more flexible and support more setups. Old configurations are invalid. For further information see: https://osmocom.org/projects/libosmocore/wiki/Network_service_(NS) Depends-on: If5bd6b86e130772e6c93d640b0c637985416136d (osmo-sgsn) Change-Id: I37d010bc4ae553c30feb2ebd2be66d23b96bf42a --- M sgsn/SGSN_Tests_NS.ttcn M sgsn/osmo-sgsn.cfg 2 files changed, 3 insertions(+), 5 deletions(-) Approvals: daniel: Looks good to me, approved Jenkins Builder: Verified diff --git a/sgsn/SGSN_Tests_NS.ttcn b/sgsn/SGSN_Tests_NS.ttcn index 9ef2dfb..dd68b05 100644 --- a/sgsn/SGSN_Tests_NS.ttcn +++ b/sgsn/SGSN_Tests_NS.ttcn @@ -23,7 +23,6 @@ testcase TC_NS_connect_reset() runs on RAW_Test_CT { f_init_vty(); f_init_ns_codec(mp_nsconfig[0], guard_secs := 10.0); - f_vty_config(SGSNVTY, "ns", "encapsulation udp use-reset-block-unblock enabled"); /* Send a NS-ALIVE */ f_outgoing_ns_reset(); @@ -35,7 +34,6 @@ testcase TC_NS_connect_alive() runs on RAW_Test_CT { f_init_vty(); f_init_ns_codec(mp_nsconfig[0], guard_secs := 10.0); - f_vty_config(SGSNVTY, "ns", "encapsulation udp use-reset-block-unblock disabled"); /* Send a NS-ALIVE */ NSCP[0].send(t_NS_ALIVE); diff --git a/sgsn/osmo-sgsn.cfg b/sgsn/osmo-sgsn.cfg index 7ac50bc..c03c9a3 100644 --- a/sgsn/osmo-sgsn.cfg +++ b/sgsn/osmo-sgsn.cfg @@ -47,9 +47,9 @@ timer tns-test 30 timer tns-alive 3 timer tns-alive-retries 10 - encapsulation udp local-ip 127.0.0.10 - encapsulation udp local-port 23000 - encapsulation framerelay-gre enabled 0 + bind udp local10 + listen 127.0.0.10 23000 + accept-ipaccess bssgp sgsn gtp local-ip 127.0.0.10 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22503 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I37d010bc4ae553c30feb2ebd2be66d23b96bf42a Gerrit-Change-Number: 22503 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 21:28:40 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 28 Jan 2021 21:28:40 +0000 Subject: Change in osmo-ttcn3-hacks[master]: PCU_Tests: add testcase TC_rim_ran_info_req_single_rep and _no_si In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, fixeria, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369 to look at the new patch set (#5). Change subject: PCU_Tests: add testcase TC_rim_ran_info_req_single_rep and _no_si ...................................................................... PCU_Tests: add testcase TC_rim_ran_info_req_single_rep and _no_si Perform a full RAN information request (single report) against the PCU and check the results. Also test what happens when the request is issued at a time where osmo-bts has no system information available. Depends: osmo-pcu Id72118120c14984d2fb1b918b41fac4868150d41 Depends: osmo-bts I1726c9e29cc59c499dfabbdaf63c0f1a09984764 Related: SYS#5103 Change-Id: I9054ab0e969c0fbfdc671c92d44cc61360959adc --- M bts/BTS_Tests.default M library/General_Types.ttcn M library/PCUIF_Types.ttcn M pcu/PCU_Tests.default M pcu/PCU_Tests.ttcn M pcu/PCU_Tests_SNS.cfg M pcu/PCU_Tests_SNSv6.cfg 7 files changed, 178 insertions(+), 11 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/69/22369/5 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I9054ab0e969c0fbfdc671c92d44cc61360959adc Gerrit-Change-Number: 22369 Gerrit-PatchSet: 5 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 21:28:40 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 28 Jan 2021 21:28:40 +0000 Subject: Change in osmo-ttcn3-hacks[master]: GBProxy_Tests: fix TC_rim_* tests In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, daniel, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22525 to look at the new patch set (#2). Change subject: GBProxy_Tests: fix TC_rim_* tests ...................................................................... GBProxy_Tests: fix TC_rim_* tests The TC_rim tests do not use the RIM templates from Osmocom_Gb_Types as intended. Change-Id: Ie484f288aa0515ef4df4a3cf7f8a347a3f3cf587 Related: SYS#5103 --- M gbproxy/GBProxy_Tests.ttcn M library/Osmocom_Gb_Types.ttcn 2 files changed, 248 insertions(+), 68 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/25/22525/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22525 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ie484f288aa0515ef4df4a3cf7f8a347a3f3cf587 Gerrit-Change-Number: 22525 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Thu Jan 28 21:28:34 2021 From: admin at opensuse.org (OBS Notification) Date: Thu, 28 Jan 2021 21:28:34 +0000 Subject: Build failure of network:osmocom:nightly/libosmocore in Debian_8.0/i586 In-Reply-To: References: Message-ID: <60132c93a3253_32fe2b11e4bbc5f825602f@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libosmocore/Debian_8.0/i586 Package network:osmocom:nightly/libosmocore failed to build in Debian_8.0/i586 Check out the package for editing: osc checkout network:osmocom:nightly libosmocore Last lines of build log: [ 201s] make[3]: Entering directory '/usr/src/packages/BUILD/src/sim' [ 201s] CC core.lo [ 202s] CC reader.lo [ 203s] CC class_tables.lo [ 203s] CC card_fs_sim.lo [ 203s] card_fs_sim.c:105:1: error: initializer element is not constant [ 203s] }; [ 203s] ^ [ 203s] card_fs_sim.c:105:1: error: (near initialization for 'ts11_11_sw[22]') [ 203s] Makefile:531: recipe for target 'card_fs_sim.lo' failed [ 203s] make[3]: *** [card_fs_sim.lo] Error 1 [ 203s] make[3]: Leaving directory '/usr/src/packages/BUILD/src/sim' [ 203s] Makefile:693: recipe for target 'all-recursive' failed [ 203s] make[2]: *** [all-recursive] Error 1 [ 203s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 203s] Makefile:471: recipe for target 'all' failed [ 203s] make[1]: *** [all] Error 2 [ 203s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 203s] dh_auto_build: make -j1 returned exit code 2 [ 203s] debian/rules:15: recipe for target 'build' failed [ 203s] make: *** [build] Error 2 [ 203s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 203s] ### VM INTERACTION START ### [ 204s] Powering off. [ 204s] [ 196.344593] reboot: Power down [ 204s] ### VM INTERACTION END ### [ 204s] [ 204s] lamb69 failed "build libosmocore_1.4.0.423.260cd.dsc" at Thu Jan 28 21:28:31 UTC 2021. [ 204s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Thu Jan 28 21:30:52 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 28 Jan 2021 21:30:52 +0000 Subject: Change in osmo-bsc[master]: show bug: add test_dyn_ts_amr_tch_{f, h}_to_{h, f}_congestion_assignmen... References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22526 ) Change subject: show bug: add test_dyn_ts_amr_tch_{f,h}_to_{h,f}_congestion_assignment_2.ho_vty ...................................................................... show bug: add test_dyn_ts_amr_tch_{f,h}_to_{h,f}_congestion_assignment_2.ho_vty Name both new tests with suffix '_2' even though the first h_to_f does not exist (yet?), to indicate the complementary nature of those two tests. Related: SYS#5301 Change-Id: I8c8d9d5936f713f7d02e4246eeb373916e62510b --- M tests/handover/handover_tests.ok A tests/handover/test_dyn_ts_amr_tch_f_to_h_congestion_assignment_2.ho_vty A tests/handover/test_dyn_ts_amr_tch_h_to_f_congestion_assignment_2.ho_vty 3 files changed, 79 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/26/22526/1 diff --git a/tests/handover/handover_tests.ok b/tests/handover/handover_tests.ok index 2658f8b..bd21d0e 100644 --- a/tests/handover/handover_tests.ok +++ b/tests/handover/handover_tests.ok @@ -17,6 +17,8 @@ pass test_congestion_no_oscillation2.ho_vty pass test_disabled_ho_and_as.ho_vty pass test_dyn_ts_amr_tch_f_to_h_congestion_assignment.ho_vty +pass test_dyn_ts_amr_tch_f_to_h_congestion_assignment_2.ho_vty +pass test_dyn_ts_amr_tch_h_to_f_congestion_assignment_2.ho_vty pass test_dyn_ts_balance_congestion.ho_vty pass test_dyn_ts_congestion_tch_f_vs_tch_h.ho_vty pass test_dyn_ts_congestion_tch_f_vs_tch_h_2.ho_vty diff --git a/tests/handover/test_dyn_ts_amr_tch_f_to_h_congestion_assignment_2.ho_vty b/tests/handover/test_dyn_ts_amr_tch_f_to_h_congestion_assignment_2.ho_vty new file mode 100644 index 0000000..6194596 --- /dev/null +++ b/tests/handover/test_dyn_ts_amr_tch_f_to_h_congestion_assignment_2.ho_vty @@ -0,0 +1,49 @@ +# If a handover from TCH/F to TCH/H frees a dynamic timeslot, +# take the freed TCH/H from the soure timeslot into account, +# both when the target is a dynamic timeslot and when the target is a static timeslot. + +create-bts trx-count 1 timeslots c+s4 dyn TCH/F TCH/F TCH/H PDCH PDCH PDCH + +network + bts 0 + handover2 min-free-slots tch/f 3 + handover2 min-free-slots tch/h 2 + handover2 assignment 1 + +set-ts-use trx 0 0 states * TCH/F - - - * * * +# (there must be at least one measurement report on each lchan for congestion check to work) +meas-rep lchan * * * * rxlev 40 rxqual 0 ta 0 neighbors 30 +congestion-check +# FAIL: after the handover from the dyn TS to TCH/H, the dyn TS has freed two TCH/H, while the static TCH/H has reduced +# the TCH/H count by one. So the resulting free slots are 3 TCH/H, which means no congestion. A handover should occur. +expect-no-chan + +# Again with one more TCH/H occupied, there will still be two free TCH/H after HO on the dyn TS +set-ts-use trx 0 0 states * TCH/F - - TCH/H- * * * +meas-rep lchan * * * * rxlev 40 rxqual 0 ta 0 neighbors 30 +congestion-check +# FAIL: resulting free slots are 2 TCH/H, which means no congestion. A handover should occur. +expect-no-chan + +# Again, with the target being a dyn TS +create-bts trx-count 1 timeslots c+s4 dyn TCH/F TCH/F dyn PDCH PDCH PDCH + +network + bts 1 + handover2 min-free-slots tch/f 3 + handover2 min-free-slots tch/h 2 + handover2 assignment 1 + +set-ts-use trx 1 0 states * TCH/F TCH/F - pdch * * * +meas-rep lchan 1 * * * rxlev 40 rxqual 0 ta 0 neighbors 30 +congestion-check +# FAIL: after the handover from the dyn TS to TCH/H, the dyn TS has freed two TCH/H, while the static TCH/H has reduced +# the TCH/H count by one. So the resulting free slots are 3 TCH/H, which means no congestion. A handover should occur. +expect-no-chan + +# Again with one more TCH/H occupied, there will still be two free TCH/H after HO on the dyn TS +set-ts-use trx 1 0 states * TCH/F TCH/F - TCH/H- * * * +meas-rep lchan 1 * * * rxlev 40 rxqual 0 ta 0 neighbors 30 +congestion-check +# FAIL: resulting free slots are 2 TCH/H, which means no congestion. A handover should occur. +expect-no-chan diff --git a/tests/handover/test_dyn_ts_amr_tch_h_to_f_congestion_assignment_2.ho_vty b/tests/handover/test_dyn_ts_amr_tch_h_to_f_congestion_assignment_2.ho_vty new file mode 100644 index 0000000..36a9817 --- /dev/null +++ b/tests/handover/test_dyn_ts_amr_tch_h_to_f_congestion_assignment_2.ho_vty @@ -0,0 +1,28 @@ +# If a handover from TCH/H to TCH/F frees a dynamic timeslot, +# take the freed TCH/F from the soure timeslot into account, +# when the target is a static timeslot. + +create-bts trx-count 1 timeslots c+s4 dyn TCH/F TCH/F TCH/F PDCH PDCH PDCH + +network + bts 0 + handover2 min-free-slots tch/f 2 + handover2 min-free-slots tch/h 2 + handover2 assignment 1 + +set-ts-use trx 0 0 states * TCH/H- - - - * * * +# (there must be at least one measurement report on each lchan for congestion check to work) +meas-rep lchan * * * * rxlev 40 rxqual 0 ta 0 neighbors 30 +congestion-check +expect-ho from lchan 0 0 1 0 to lchan 0 0 2 0 +expect-ts-use trx 0 0 states * pdch TCH/F - - * * * + +# Again with one more TCH/F occupied, there will still be two free TCH/F after HO on the dyn TS +set-ts-use trx 0 0 states * TCH/H- - - TCH/F * * * +meas-rep lchan * * * * rxlev 40 rxqual 0 ta 0 neighbors 30 +congestion-check +# FAIL: after the handover from the dyn TS to TCH/F, the dyn TS has freed a TCH/F, while the static TCH/F has reduced +# the TCH/F count by one. So the resulting free slots are 2 TCH/F, which means no congestion. A handover should occur. +expect-no-chan + +# (TCH/H -> TCH/F onto a dyn TS will always make TCH/H congestion worse, so there is no useful test case left here) -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22526 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I8c8d9d5936f713f7d02e4246eeb373916e62510b Gerrit-Change-Number: 22526 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 21:30:52 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 28 Jan 2021 21:30:52 +0000 Subject: Change in osmo-bsc[master]: hodec2: fix intra-cell congestion balancing with source lchan on dyn TS References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22527 ) Change subject: hodec2: fix intra-cell congestion balancing with source lchan on dyn TS ...................................................................... hodec2: fix intra-cell congestion balancing with source lchan on dyn TS Related: SYS#5301 Change-Id: I332477cbddf32cf6f057007b45cda8477227f0b1 --- M src/osmo-bsc/handover_decision_2.c M tests/handover/test_dyn_ts_amr_tch_f_to_h_congestion_assignment_2.ho_vty M tests/handover/test_dyn_ts_amr_tch_h_to_f_congestion_assignment_2.ho_vty 3 files changed, 20 insertions(+), 15 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/27/22527/1 diff --git a/src/osmo-bsc/handover_decision_2.c b/src/osmo-bsc/handover_decision_2.c index 0bfae9b..530b42d 100644 --- a/src/osmo-bsc/handover_decision_2.c +++ b/src/osmo-bsc/handover_decision_2.c @@ -682,7 +682,11 @@ current_overbooked = load_above_congestion(c->current.free_tch, c->current.min_free_tch); if (requirement & REQUIREMENT_A_TCHF) { bool ok; - int32_t target_overbooked = load_above_congestion(c->target.free_tchf - 1, c->target.min_free_tchf); + int32_t target_overbooked; + int target_free_tchf_after_ho = c->target.free_tchf - 1; + if (c->current.bts == c->target.bts) + target_free_tchf_after_ho += c->current.lchan_frees_tchf; + target_overbooked = load_above_congestion(target_free_tchf_after_ho, c->target.min_free_tchf); LOGPHOLCHANTOBTS(c->current.lchan, c->target.bts, LOGL_DEBUG, "current overbooked = %s%%, TCH/F target overbooked after HO = %s%%\n", osmo_int_to_float_str_c(OTC_SELECT, current_overbooked, LOAD_PRECISION - 2), @@ -718,7 +722,11 @@ } if (requirement & REQUIREMENT_A_TCHH) { bool ok; - int32_t target_overbooked = load_above_congestion(c->target.free_tchh - 1, c->target.min_free_tchh); + int32_t target_overbooked; + int target_free_tchh_after_ho = c->target.free_tchh - 1; + if (c->current.bts == c->target.bts) + target_free_tchh_after_ho += c->current.lchan_frees_tchh; + target_overbooked = load_above_congestion(target_free_tchh_after_ho, c->target.min_free_tchh); LOGPHOLCHANTOBTS(c->current.lchan, c->target.bts, LOGL_DEBUG, "current overbooked = %s%%, TCH/H target overbooked after HO = %s%%\n", osmo_int_to_float_str_c(OTC_SELECT, current_overbooked, LOAD_PRECISION - 2), diff --git a/tests/handover/test_dyn_ts_amr_tch_f_to_h_congestion_assignment_2.ho_vty b/tests/handover/test_dyn_ts_amr_tch_f_to_h_congestion_assignment_2.ho_vty index 6194596..a798457 100644 --- a/tests/handover/test_dyn_ts_amr_tch_f_to_h_congestion_assignment_2.ho_vty +++ b/tests/handover/test_dyn_ts_amr_tch_f_to_h_congestion_assignment_2.ho_vty @@ -14,16 +14,15 @@ # (there must be at least one measurement report on each lchan for congestion check to work) meas-rep lchan * * * * rxlev 40 rxqual 0 ta 0 neighbors 30 congestion-check -# FAIL: after the handover from the dyn TS to TCH/H, the dyn TS has freed two TCH/H, while the static TCH/H has reduced -# the TCH/H count by one. So the resulting free slots are 3 TCH/H, which means no congestion. A handover should occur. -expect-no-chan +expect-ho from lchan 0 0 1 0 to lchan 0 0 4 0 +expect-ts-use trx 0 0 states * pdch - - TCH/H- * * * # Again with one more TCH/H occupied, there will still be two free TCH/H after HO on the dyn TS set-ts-use trx 0 0 states * TCH/F - - TCH/H- * * * meas-rep lchan * * * * rxlev 40 rxqual 0 ta 0 neighbors 30 congestion-check -# FAIL: resulting free slots are 2 TCH/H, which means no congestion. A handover should occur. -expect-no-chan +expect-ho from lchan 0 0 1 0 to lchan 0 0 4 1 +expect-ts-use trx 0 0 states * pdch - - TCH/HH * * * # Again, with the target being a dyn TS create-bts trx-count 1 timeslots c+s4 dyn TCH/F TCH/F dyn PDCH PDCH PDCH @@ -37,13 +36,12 @@ set-ts-use trx 1 0 states * TCH/F TCH/F - pdch * * * meas-rep lchan 1 * * * rxlev 40 rxqual 0 ta 0 neighbors 30 congestion-check -# FAIL: after the handover from the dyn TS to TCH/H, the dyn TS has freed two TCH/H, while the static TCH/H has reduced -# the TCH/H count by one. So the resulting free slots are 3 TCH/H, which means no congestion. A handover should occur. -expect-no-chan +expect-ho from lchan 1 0 1 0 to lchan 1 0 4 0 +expect-ts-use trx 1 0 states * pdch TCH/F - TCH/H- * * * # Again with one more TCH/H occupied, there will still be two free TCH/H after HO on the dyn TS set-ts-use trx 1 0 states * TCH/F TCH/F - TCH/H- * * * meas-rep lchan 1 * * * rxlev 40 rxqual 0 ta 0 neighbors 30 congestion-check -# FAIL: resulting free slots are 2 TCH/H, which means no congestion. A handover should occur. -expect-no-chan +expect-ho from lchan 1 0 1 0 to lchan 1 0 4 1 +expect-ts-use trx 1 0 states * pdch TCH/F - TCH/HH * * * diff --git a/tests/handover/test_dyn_ts_amr_tch_h_to_f_congestion_assignment_2.ho_vty b/tests/handover/test_dyn_ts_amr_tch_h_to_f_congestion_assignment_2.ho_vty index 36a9817..de9595b 100644 --- a/tests/handover/test_dyn_ts_amr_tch_h_to_f_congestion_assignment_2.ho_vty +++ b/tests/handover/test_dyn_ts_amr_tch_h_to_f_congestion_assignment_2.ho_vty @@ -21,8 +21,7 @@ set-ts-use trx 0 0 states * TCH/H- - - TCH/F * * * meas-rep lchan * * * * rxlev 40 rxqual 0 ta 0 neighbors 30 congestion-check -# FAIL: after the handover from the dyn TS to TCH/F, the dyn TS has freed a TCH/F, while the static TCH/F has reduced -# the TCH/F count by one. So the resulting free slots are 2 TCH/F, which means no congestion. A handover should occur. -expect-no-chan +expect-ho from lchan 0 0 1 0 to lchan 0 0 2 0 +expect-ts-use trx 0 0 states * pdch TCH/F - TCH/F * * * # (TCH/H -> TCH/F onto a dyn TS will always make TCH/H congestion worse, so there is no useful test case left here) -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22527 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I332477cbddf32cf6f057007b45cda8477227f0b1 Gerrit-Change-Number: 22527 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Thu Jan 28 21:33:08 2021 From: admin at opensuse.org (OBS Notification) Date: Thu, 28 Jan 2021 21:33:08 +0000 Subject: Build failure of network:osmocom:nightly/libosmocore in Debian_8.0/x86_64 In-Reply-To: References: Message-ID: <60132da39e2bd_32fe2b11e4bbc5f8258229@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libosmocore/Debian_8.0/x86_64 Package network:osmocom:nightly/libosmocore failed to build in Debian_8.0/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly libosmocore Last lines of build log: [ 216s] make[3]: Entering directory '/usr/src/packages/BUILD/src/sim' [ 216s] CC core.lo [ 217s] CC reader.lo [ 217s] CC class_tables.lo [ 217s] CC card_fs_sim.lo [ 217s] card_fs_sim.c:105:1: error: initializer element is not constant [ 217s] }; [ 217s] ^ [ 217s] card_fs_sim.c:105:1: error: (near initialization for 'ts11_11_sw[22]') [ 217s] Makefile:531: recipe for target 'card_fs_sim.lo' failed [ 217s] make[3]: *** [card_fs_sim.lo] Error 1 [ 217s] make[3]: Leaving directory '/usr/src/packages/BUILD/src/sim' [ 217s] Makefile:693: recipe for target 'all-recursive' failed [ 217s] make[2]: *** [all-recursive] Error 1 [ 217s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 217s] Makefile:471: recipe for target 'all' failed [ 217s] make[1]: *** [all] Error 2 [ 217s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 217s] dh_auto_build: make -j1 returned exit code 2 [ 217s] debian/rules:15: recipe for target 'build' failed [ 217s] make: *** [build] Error 2 [ 217s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 217s] ### VM INTERACTION START ### [ 218s] Powering off. [ 218s] [ 203.159628] reboot: Power down [ 218s] ### VM INTERACTION END ### [ 218s] [ 218s] cloud116 failed "build libosmocore_1.4.0.423.260cd.dsc" at Thu Jan 28 21:33:02 UTC 2021. [ 218s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Thu Jan 28 21:37:52 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 28 Jan 2021 21:37:52 +0000 Subject: Change in osmo-ttcn3-hacks[master]: PCU_Tests: add testcase TC_rim_ran_info_req_single_rep and _no_si In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369 ) Change subject: PCU_Tests: add testcase TC_rim_ran_info_req_single_rep and _no_si ...................................................................... Patch Set 5: (1 comment) It seems I am the only one who is still against this approach... The proposed encoding is kind of problematic, especially if one would need to add more fields to INFO.ind. And it's still not clear what is the plan for a situation when we would need to send additional SI messages to the PCU, e.g. SI4. Again, why not to introduce a separate PCUIF message type for SI? https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369/4/library/PCUIF_Types.ttcn File library/PCUIF_Types.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369/4/library/PCUIF_Types.ttcn at 224 PS4, Line 224: OCT23 si1 optional, This encoding is ambiguous. Imagine that one of the SI kinds is not present for some reason, let's say SI3 is missing. This is possible because those are separate messages on the A-bis/RSL, and the BTS would re-send INFO.ind for each of them. How would you guess on the receive side what is what and where? -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I9054ab0e969c0fbfdc671c92d44cc61360959adc Gerrit-Change-Number: 22369 Gerrit-PatchSet: 5 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Thu, 28 Jan 2021 21:37:52 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 21:45:38 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 28 Jan 2021 21:45:38 +0000 Subject: Change in osmo-ttcn3-hacks[master]: PCU_Tests: add testcase TC_rim_ran_info_req_single_rep and _no_si In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369 ) Change subject: PCU_Tests: add testcase TC_rim_ran_info_req_single_rep and _no_si ...................................................................... Patch Set 5: (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369/4/library/PCUIF_Types.ttcn File library/PCUIF_Types.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369/4/library/PCUIF_Types.ttcn at 224 PS4, Line 224: OCT23 si1 optional, > This encoding is ambiguous. [?] Or would you always send OCT23 as sequence of 0x00 even if siX_is_set == 0? If the whole set of fields is optional (what I guess is the case here), then you could just group it into an anonymous record and add 'optional' to it. So either all fields are present, or absent. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I9054ab0e969c0fbfdc671c92d44cc61360959adc Gerrit-Change-Number: 22369 Gerrit-PatchSet: 5 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Thu, 28 Jan 2021 21:45:38 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: fixeria Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 22:18:26 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 28 Jan 2021 22:18:26 +0000 Subject: Change in osmo-pcu[master]: gprs_bssgp_rim: add serving BSS NACC application In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-pcu/+/22368 to look at the new patch set (#5). Change subject: gprs_bssgp_rim: add serving BSS NACC application ...................................................................... gprs_bssgp_rim: add serving BSS NACC application Answer an incoming RAN INFORMATION REQUEST RIM PDU with RAN INFORMATION PDU that contains system information type 1, 3 and 13 Depends: osmo-bts I1726c9e29cc59c499dfabbdaf63c0f1a09984764 Change-Id: Id72118120c14984d2fb1b918b41fac4868150d41 Related: SYS#5103 --- M include/osmocom/pcu/pcuif_proto.h M src/bts.h M src/gprs_bssgp_rim.c M src/pcu_l1_if.cpp 4 files changed, 96 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/68/22368/5 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22368 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Id72118120c14984d2fb1b918b41fac4868150d41 Gerrit-Change-Number: 22368 Gerrit-PatchSet: 5 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 22:18:45 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 28 Jan 2021 22:18:45 +0000 Subject: Change in osmo-pcu[master]: gprs_bssgp_rim: add serving BSS NACC application In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22368 ) Change subject: gprs_bssgp_rim: add serving BSS NACC application ...................................................................... Patch Set 4: (2 comments) https://gerrit.osmocom.org/c/osmo-pcu/+/22368/4/TODO-RELEASE File TODO-RELEASE: https://gerrit.osmocom.org/c/osmo-pcu/+/22368/4/TODO-RELEASE at 12 PS4, Line 12: osmo-pcu increment PCUIF version number > again I think this is confusing here from release point of view since I need to do nothing regarding [?] Done https://gerrit.osmocom.org/c/osmo-pcu/+/22368/2/src/gprs_bssgp_rim.c File src/gprs_bssgp_rim.c: https://gerrit.osmocom.org/c/osmo-pcu/+/22368/2/src/gprs_bssgp_rim.c at 59 PS2, Line 59: app_cont->reprt_cell.rai.lac.plmn.mcc = bctx->ra_id.mcc; > gprs_ra_id_ci_to_cgi_ps(&app_cont->reprt_cell, bctx->ra_id, bctx->cell_id); Done -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22368 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Id72118120c14984d2fb1b918b41fac4868150d41 Gerrit-Change-Number: 22368 Gerrit-PatchSet: 4 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 28 Jan 2021 22:18:45 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Thu Jan 28 22:39:04 2021 From: admin at opensuse.org (OBS Notification) Date: Thu, 28 Jan 2021 22:39:04 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <60133d18651c4_32fe2b11e4bbc5f82818f2@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/xUbuntu_20.04/x86_64 Package network:osmocom:nightly/simtrace2 failed to build in xUbuntu_20.04/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 211s] [COMPILING libboard/qmod/source/wwan_perst.c] [ 211s] [COMPILING libboard/qmod/source/card_pres.c] [ 211s] [COMPILING libboard/qmod/source/wwan_led.c] [ 211s] [COMPILING libboard/qmod/source/i2c.c] [ 212s] [COMPILING libboard/qmod/source/board_qmod.c] [ 212s] [COMPILING apps/dfu/main.c] [ 212s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 212s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 212s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 213s] Memory region Used Size Region Size %age Used [ 213s] rom: 16588 B 16 KB 101.25% [ 213s] ram: 11672 B 48 KB 23.75/usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 213s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 204 bytes [ 213s] collect2: error: ld returned 1 exit status [ 213s] % [ 213s] make[2]: *** [Makefile:234: flash] Error 1 [ 213s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 213s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 213s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 213s] dh_auto_build: error: make -j1 returned exit code 2 [ 213s] make: *** [debian/rules:16: build] Error 25 [ 213s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 213s] ### VM INTERACTION START ### [ 216s] [ 203.803878] sysrq: Power Off [ 216s] [ 203.813613] reboot: Power down [ 216s] ### VM INTERACTION END ### [ 216s] [ 216s] lamb12 failed "build simtrace2_0.7.0.69.aadd.dsc" at Thu Jan 28 22:38:52 UTC 2021. [ 216s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Thu Jan 28 22:39:30 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 28 Jan 2021 22:39:30 +0000 Subject: Change in osmo-gsm-manuals[master]: cs7-config: Describe special meaning of M3UA routing context '0' References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/22528 ) Change subject: cs7-config: Describe special meaning of M3UA routing context '0' ...................................................................... cs7-config: Describe special meaning of M3UA routing context '0' Osmocom has a special interpretation of the routing-context '0'. Let's document that. Change-Id: Iac0bc1e754d04b2e798263bfa029d26376e4e92f --- M common/chapters/cs7-config.adoc 1 file changed, 26 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-manuals refs/changes/28/22528/1 diff --git a/common/chapters/cs7-config.adoc b/common/chapters/cs7-config.adoc index a0957fd..62e85bb 100644 --- a/common/chapters/cs7-config.adoc +++ b/common/chapters/cs7-config.adoc @@ -307,3 +307,29 @@ routing-key RCONTEXT DPC ssn SSN routing-key RCONTEXT DPC si (aal2|bicc|b-isup|h248|isup|sat-isup|sccp|tup) ssn SSN ---- + +==== M3UA without Routing Context IE / Routing Context '0' + +As per the M3UA specification, the use of the routing context IE is +optional as long as there is only one AS within an ASP. As soon as +there are multiple different AS within one ASP, the routing context IE +is mandatory, as it is the only clue to differentiate which of the ASs a +given message belongs to. + +In the Osmocom M3UA implementation, it is generally assumed that a +routing context IE is always used, for the sake of clarity. + +However, the routing context ID of '0' has the special meaning of _do +not encode a routing context IE on transmit_. + +So if you configure an application like OsmoBSC to use routing context +0, then no routing context IE will be included in outbound M3UA +messages. + +This special interpretation of '0' within the Osmocom M3UA +implementation however means that we can not represent M3UA with a +routing context IE that actually contains '0' as a numeric identifier. + +So you only have the following options: +* Using M3UA with routing context (1..N) +* Using M3UA without routing context (0) -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/22528 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-manuals Gerrit-Branch: master Gerrit-Change-Id: Iac0bc1e754d04b2e798263bfa029d26376e4e92f Gerrit-Change-Number: 22528 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 22:57:26 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 28 Jan 2021 22:57:26 +0000 Subject: Change in osmo-bts[master]: chan activ: activate DL SACCH only when TA is known In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/22509 to look at the new patch set (#2). Change subject: chan activ: activate DL SACCH only when TA is known ...................................................................... chan activ: activate DL SACCH only when TA is known A channel activation for handover to another cell does not know the Timing Advance until the handover RACH is received. It does not make much sense to enable downlink SACCH without an accurate TA. If the BSC omits the Access Delay IE (a.k.a. the Timing Advance), do not enable downlink SACCH. This is expected to happen only for inter-cell handover. In all other situations, the TA should be known either from a Channel Request RACH for Immediate Assignment, or from the previous lchan on the same cell upon Assignment / intra-cell handover. Related: OS#4008 OS#4009 SYS#5192 Change-Id: I170b63c9856230d5f1a10654a9d950ada8e730d7 --- M src/common/rsl.c 1 file changed, 14 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/09/22509/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22509 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I170b63c9856230d5f1a10654a9d950ada8e730d7 Gerrit-Change-Number: 22509 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jan 28 22:58:59 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 28 Jan 2021 22:58:59 +0000 Subject: Change in osmo-bsc[master]: lchan assignment when RTP is set up: don't break on Mode Modify In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22510 ) Change subject: lchan assignment when RTP is set up: don't break on Mode Modify ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/22510/1/src/osmo-bsc/assignment_fsm.c File src/osmo-bsc/assignment_fsm.c: https://gerrit.osmocom.org/c/osmo-bsc/+/22510/1/src/osmo-bsc/assignment_fsm.c at 442 PS1, Line 442: && !conn->lchan->fi_rtp) { > this can go in the same line. i like it when completely unrelated conditions are on a separate line -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22510 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I06d3f35fcc71d77e1f30c2b15ab221ef7d5f7f27 Gerrit-Change-Number: 22510 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 28 Jan 2021 22:58:59 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Thu Jan 28 23:14:47 2021 From: admin at opensuse.org (OBS Notification) Date: Thu, 28 Jan 2021 23:14:47 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.10/x86_64 In-Reply-To: References: Message-ID: <601345719f8e0_32fe2b11e4bbc5f8302222@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/xUbuntu_20.10/x86_64 Package network:osmocom:nightly/simtrace2 failed to build in xUbuntu_20.10/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 170s] [COMPILING apps/dfu/main.c] [ 170s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 171s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 171s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 171s] Memory region Used Size Region Size %age Used [ 171s] rom: 16580 B 16 KB 101.20% [ 171s] ram: 11672 B 48 KB 23.75/usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 171s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 171s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 171s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 171s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 171s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 171s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 196 bytes [ 171s] collect2: error: ld returned 1 exit status [ 171s] % [ 171s] make[2]: *** [Makefile:234: flash] Error 1 [ 171s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 171s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 171s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 171s] dh_auto_build: error: make -j1 returned exit code 2 [ 171s] make: *** [debian/rules:16: build] Error 25 [ 171s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 171s] ### VM INTERACTION START ### [ 174s] [ 159.275138] sysrq: Power Off [ 174s] [ 159.286963] reboot: Power down [ 174s] ### VM INTERACTION END ### [ 174s] [ 174s] lamb24 failed "build simtrace2_0.7.0.69.aadd.dsc" at Thu Jan 28 23:14:42 UTC 2021. [ 174s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Fri Jan 29 01:12:57 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Fri, 29 Jan 2021 01:12:57 +0000 Subject: Change in simtrace2[master]: dfu: let the device reset itself References: Message-ID: Hoernchen has uploaded this change for review. ( https://gerrit.osmocom.org/c/simtrace2/+/22529 ) Change subject: dfu: let the device reset itself ...................................................................... dfu: let the device reset itself dfu flashing the sam attache to port 1 was easy, but i was never able to get the sam at port 4 into dfu mode. Changing the firmware so it resets itself just like the octsim instead of starting a timer and waiting for a reset form the host made it work every time for me. Change-Id: Ida636ec925f40d6d56551f170150181350d03bbd --- M firmware/atmel_softpack_libraries/usb/device/dfu/dfu.h M firmware/atmel_softpack_libraries/usb/device/dfu/dfu_runtime.c 2 files changed, 7 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/simtrace2 refs/changes/29/22529/1 diff --git a/firmware/atmel_softpack_libraries/usb/device/dfu/dfu.h b/firmware/atmel_softpack_libraries/usb/device/dfu/dfu.h index 5bd8684..84ce14e 100644 --- a/firmware/atmel_softpack_libraries/usb/device/dfu/dfu.h +++ b/firmware/atmel_softpack_libraries/usb/device/dfu/dfu.h @@ -39,8 +39,8 @@ #define DFU_FUNC_DESC { \ .bLength = USB_DT_DFU_SIZE, \ .bDescriptorType = USB_DT_DFU, \ - .bmAttributes = USB_DFU_CAN_UPLOAD | USB_DFU_CAN_DOWNLOAD, \ - .wDetachTimeOut = 0xff00, \ + .bmAttributes = USB_DFU_CAN_UPLOAD | USB_DFU_CAN_DOWNLOAD | USB_DFU_WILL_DETACH, \ + .wDetachTimeOut = 0x00, \ .wTransferSize = BOARD_DFU_PAGE_SIZE, \ .bcdDFUVersion = 0x0100, \ } diff --git a/firmware/atmel_softpack_libraries/usb/device/dfu/dfu_runtime.c b/firmware/atmel_softpack_libraries/usb/device/dfu/dfu_runtime.c index 4467cc9..f2cf64c 100644 --- a/firmware/atmel_softpack_libraries/usb/device/dfu/dfu_runtime.c +++ b/firmware/atmel_softpack_libraries/usb/device/dfu/dfu_runtime.c @@ -165,6 +165,8 @@ * will then trigger DFURT_SwitchToDFU() below */ TRACE_DEBUG("\r\n====dfu_detach\n\r"); g_dfu->state = DFU_STATE_appDETACH; + USBD_Write(0, 0, 0, 0, 0); + DFURT_SwitchToDFU(); ret = DFU_RET_ZLP; goto out; break; @@ -209,13 +211,14 @@ void DFURT_SwitchToDFU(void) { + __disable_irq(); + /* store the magic value that the DFU loader can detect and * activate itself, rather than boot into the application */ g_dfu->magic = USB_DFU_MAGIC; - + __DMB(); /* Disconnect the USB by removing the pull-up */ USBD_Disconnect(); - __disable_irq(); /* reset the processor, we will start execution with the * ResetVector of the bootloader */ -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/22529 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: Ida636ec925f40d6d56551f170150181350d03bbd Gerrit-Change-Number: 22529 Gerrit-PatchSet: 1 Gerrit-Owner: Hoernchen Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 01:14:03 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Fri, 29 Jan 2021 01:14:03 +0000 Subject: Change in simtrace2[master]: dfu: let the device reset itself In-Reply-To: References: Message-ID: Hello mschramm, laforge, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/simtrace2/+/22529 to look at the new patch set (#2). Change subject: dfu: let the device reset itself ...................................................................... dfu: let the device reset itself dfu flashing the sam attached to port 1 was easy, but i was never able to get the sam at port 4 into dfu mode. Changing the firmware so it resets itself just like the octsim instead of starting a timer and waiting for a reset form the host made it work every time for me. Change-Id: Ida636ec925f40d6d56551f170150181350d03bbd --- M firmware/atmel_softpack_libraries/usb/device/dfu/dfu.h M firmware/atmel_softpack_libraries/usb/device/dfu/dfu_runtime.c 2 files changed, 7 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/simtrace2 refs/changes/29/22529/2 -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/22529 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: Ida636ec925f40d6d56551f170150181350d03bbd Gerrit-Change-Number: 22529 Gerrit-PatchSet: 2 Gerrit-Owner: Hoernchen Gerrit-Reviewer: laforge Gerrit-Reviewer: mschramm Gerrit-CC: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 01:29:41 2021 From: gerrit-no-reply at lists.osmocom.org (mschramm) Date: Fri, 29 Jan 2021 01:29:41 +0000 Subject: Change in simtrace2[master]: dfu: let the device reset itself In-Reply-To: References: Message-ID: mschramm has posted comments on this change. ( https://gerrit.osmocom.org/c/simtrace2/+/22529 ) Change subject: dfu: let the device reset itself ...................................................................... Patch Set 2: (2 comments) just suggested usage of naming scheme as used in manual https://gerrit.osmocom.org/c/simtrace2/+/22529/2//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/simtrace2/+/22529/2//COMMIT_MSG at 9 PS2, Line 9: the sam attached to port 1 please refer to this one as ST12 https://gerrit.osmocom.org/c/simtrace2/+/22529/2//COMMIT_MSG at 10 PS2, Line 10: the sam at port 4 this one is referred as ST34 -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/22529 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: Ida636ec925f40d6d56551f170150181350d03bbd Gerrit-Change-Number: 22529 Gerrit-PatchSet: 2 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: mschramm Gerrit-Comment-Date: Fri, 29 Jan 2021 01:29:41 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Fri Jan 29 01:32:55 2021 From: admin at opensuse.org (OBS Notification) Date: Fri, 29 Jan 2021 01:32:55 +0000 Subject: Build failure of network:osmocom:nightly/libosmocore in Debian_8.0/i586 In-Reply-To: References: Message-ID: <601365e41ad02_32fe2b11e4bbc5f83561f5@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libosmocore/Debian_8.0/i586 Package network:osmocom:nightly/libosmocore failed to build in Debian_8.0/i586 Check out the package for editing: osc checkout network:osmocom:nightly libosmocore Last lines of build log: [ 220s] make[3]: Entering directory '/usr/src/packages/BUILD/src/sim' [ 220s] CC core.lo [ 220s] CC reader.lo [ 221s] CC class_tables.lo [ 221s] CC card_fs_sim.lo [ 221s] card_fs_sim.c:105:1: error: initializer element is not constant [ 221s] }; [ 221s] ^ [ 221s] card_fs_sim.c:105:1: error: (near initialization for 'ts11_11_sw[22]') [ 221s] Makefile:531: recipe for target 'card_fs_sim.lo' failed [ 221s] make[3]: *** [card_fs_sim.lo] Error 1 [ 221s] make[3]: Leaving directory '/usr/src/packages/BUILD/src/sim' [ 221s] Makefile:693: recipe for target 'all-recursive' failed [ 221s] make[2]: *** [all-recursive] Error 1 [ 221s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 221s] Makefile:471: recipe for target 'all' failed [ 221s] make[1]: *** [all] Error 2 [ 221s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 221s] dh_auto_build: make -j1 returned exit code 2 [ 221s] debian/rules:15: recipe for target 'build' failed [ 221s] make: *** [build] Error 2 [ 221s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 221s] ### VM INTERACTION START ### [ 222s] Powering off. [ 222s] [ 208.490542] reboot: Power down [ 222s] ### VM INTERACTION END ### [ 222s] [ 222s] cloud130 failed "build libosmocore_1.4.0.423.260cd.dsc" at Fri Jan 29 01:32:47 UTC 2021. [ 222s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Jan 29 01:40:38 2021 From: admin at opensuse.org (OBS Notification) Date: Fri, 29 Jan 2021 01:40:38 +0000 Subject: Build failure of network:osmocom:nightly/libosmocore in Debian_8.0/x86_64 In-Reply-To: References: Message-ID: <601367a6c9328_32fe2b11e4bbc5f8358451@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libosmocore/Debian_8.0/x86_64 Package network:osmocom:nightly/libosmocore failed to build in Debian_8.0/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly libosmocore Last lines of build log: [ 361s] make[3]: Entering directory '/usr/src/packages/BUILD/src/sim' [ 361s] CC core.lo [ 362s] CC reader.lo [ 363s] CC class_tables.lo [ 363s] CC card_fs_sim.lo [ 363s] card_fs_sim.c:105:1: error: initializer element is not constant [ 363s] }; [ 363s] ^ [ 363s] card_fs_sim.c:105:1: error: (near initialization for 'ts11_11_sw[22]') [ 364s] Makefile:531: recipe for target 'card_fs_sim.lo' failed [ 364s] make[3]: *** [card_fs_sim.lo] Error 1 [ 364s] make[3]: Leaving directory '/usr/src/packages/BUILD/src/sim' [ 364s] Makefile:693: recipe for target 'all-recursive' failed [ 364s] make[2]: *** [all-recursive] Error 1 [ 364s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 364s] Makefile:471: recipe for target 'all' failed [ 364s] make[1]: *** [all] Error 2 [ 364s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 364s] dh_auto_build: make -j1 returned exit code 2 [ 364s] debian/rules:15: recipe for target 'build' failed [ 364s] make: *** [build] Error 2 [ 364s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 364s] ### VM INTERACTION START ### [ 365s] Powering off. [ 365s] [ 337.438312] reboot: Power down [ 365s] ### VM INTERACTION END ### [ 365s] [ 365s] lamb51 failed "build libosmocore_1.4.0.423.260cd.dsc" at Fri Jan 29 01:40:21 UTC 2021. [ 365s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Jan 29 02:40:42 2021 From: admin at opensuse.org (OBS Notification) Date: Fri, 29 Jan 2021 02:40:42 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <601375b555a0d_32fe2b11e4bbc5f837423f@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/xUbuntu_20.04/x86_64 Package network:osmocom:nightly/simtrace2 failed to build in xUbuntu_20.04/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 163s] [COMPILING libboard/qmod/source/wwan_perst.c] [ 163s] [COMPILING libboard/qmod/source/card_pres.c] [ 163s] [COMPILING libboard/qmod/source/wwan_led.c] [ 164s] [COMPILING libboard/qmod/source/i2c.c] [ 164s] [COMPILING libboard/qmod/source/board_qmod.c] [ 164s] [COMPILING apps/dfu/main.c] [ 164s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 164s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 164s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 165s] Memory region Used Size Region Size %age Used [ 165s] rom: 16588 B 16 KB 101.25% [ 165s] ram: 11672 B 48 KB 23.75/usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 165s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 204 bytes [ 165s] collect2: error: ld returned 1 exit status [ 165s] % [ 165s] make[2]: *** [Makefile:234: flash] Error 1 [ 165s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 165s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 165s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 165s] dh_auto_build: error: make -j1 returned exit code 2 [ 165s] make: *** [debian/rules:16: build] Error 25 [ 165s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 165s] ### VM INTERACTION START ### [ 168s] [ 156.189756] sysrq: Power Off [ 168s] [ 156.195923] reboot: Power down [ 168s] ### VM INTERACTION END ### [ 168s] [ 168s] lamb06 failed "build simtrace2_0.7.0.69.aadd.dsc" at Fri Jan 29 02:40:37 UTC 2021. [ 168s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Jan 29 02:47:34 2021 From: admin at opensuse.org (OBS Notification) Date: Fri, 29 Jan 2021 02:47:34 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.10/x86_64 In-Reply-To: References: Message-ID: <601377562ae4d_32fe2b11e4bbc5f83769ca@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/xUbuntu_20.10/x86_64 Package network:osmocom:nightly/simtrace2 failed to build in xUbuntu_20.10/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 177s] [COMPILING apps/dfu/main.c] [ 177s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 178s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 178s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 178s] Memory region Used Size Region Size %age Used [ 178s] rom: 16580 B 16 KB 101.20% [ 178s] ram: 11672 B 48 KB 23.75/usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 178s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 178s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 178s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 178s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 178s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 178s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 196 bytes [ 178s] collect2: error: ld returned 1 exit status [ 178s] % [ 178s] make[2]: *** [Makefile:234: flash] Error 1 [ 178s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 178s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 178s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 178s] dh_auto_build: error: make -j1 returned exit code 2 [ 178s] make: *** [debian/rules:16: build] Error 25 [ 178s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 178s] ### VM INTERACTION START ### [ 181s] [ 163.406168] sysrq: Power Off [ 181s] [ 163.409580] reboot: Power down [ 181s] ### VM INTERACTION END ### [ 181s] [ 181s] hci-cnode2-m1 failed "build simtrace2_0.7.0.69.aadd.dsc" at Fri Jan 29 02:47:25 UTC 2021. [ 181s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Fri Jan 29 03:06:00 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 29 Jan 2021 03:06:00 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Osmocom_Gb_types: add minimum requred tr_ templates for RAN INF In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22461 ) Change subject: Osmocom_Gb_types: add minimum requred tr_ templates for RAN INF ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22461 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I964d7504f3c4aeaa4ce537316b3140e8b893003d Gerrit-Change-Number: 22461 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Comment-Date: Fri, 29 Jan 2021 03:06:00 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 03:13:10 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 29 Jan 2021 03:13:10 +0000 Subject: Change in osmo-ttcn3-hacks[master]: GBProxy_Tests: fix TC_rim_* tests In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22525 ) Change subject: GBProxy_Tests: fix TC_rim_* tests ...................................................................... Patch Set 2: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22525/2/library/Osmocom_Gb_Types.ttcn File library/Osmocom_Gb_Types.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22525/2/library/Osmocom_Gb_Types.ttcn at 2978 PS2, Line 2978: ret.lengthIndicator := { length1 := ? }; Formatting is different here. Or is that because this is a function returning a template and not a simple template? -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22525 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ie484f288aa0515ef4df4a3cf7f8a347a3f3cf587 Gerrit-Change-Number: 22525 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 29 Jan 2021 03:13:10 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 08:50:32 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 29 Jan 2021 08:50:32 +0000 Subject: Change in simtrace2[master]: dfu: let the device reset itself In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/simtrace2/+/22529 ) Change subject: dfu: let the device reset itself ...................................................................... Patch Set 2: Code-Review+1 I agree with the naming/cosmetic change requests from mschramm -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/22529 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: Ida636ec925f40d6d56551f170150181350d03bbd Gerrit-Change-Number: 22529 Gerrit-PatchSet: 2 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: mschramm Gerrit-Comment-Date: Fri, 29 Jan 2021 08:50:32 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 08:54:55 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 29 Jan 2021 08:54:55 +0000 Subject: Change in osmo-ttcn3-hacks[master]: GBProxy_Tests: fix TC_rim_* tests In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22525 ) Change subject: GBProxy_Tests: fix TC_rim_* tests ...................................................................... Patch Set 2: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22525/2/library/Osmocom_Gb_Types.ttcn File library/Osmocom_Gb_Types.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22525/2/library/Osmocom_Gb_Types.ttcn at 2978 PS2, Line 2978: ret.lengthIndicator := { length1 := ? }; > Formatting is different here. [?] for sure a function has different syntax than a template. But insid the function you could still have ... ret := { iEi := '56'O, ext := '1'B, lengthIndicator := { length1 := ? }, nACC_cause := -, erroneousApplicationContainer := app_cont } and then the if clause that sets nACC_cause to a template or whatever. I don't really see much advantage either way. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22525 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ie484f288aa0515ef4df4a3cf7f8a347a3f3cf587 Gerrit-Change-Number: 22525 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 29 Jan 2021 08:54:55 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Comment-In-Reply-To: daniel Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 08:55:17 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 29 Jan 2021 08:55:17 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Osmocom_Gb_types: add minimum requred tr_ templates for RAN INF In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22461 ) Change subject: Osmocom_Gb_types: add minimum requred tr_ templates for RAN INF ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22461 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I964d7504f3c4aeaa4ce537316b3140e8b893003d Gerrit-Change-Number: 22461 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 29 Jan 2021 08:55:17 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 08:58:48 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 29 Jan 2021 08:58:48 +0000 Subject: Change in osmo-ttcn3-hacks[master]: PCU_Tests: add testcase TC_rim_ran_info_req_single_rep and _no_si In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369 ) Change subject: PCU_Tests: add testcase TC_rim_ran_info_req_single_rep and _no_si ...................................................................... Patch Set 5: (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369/4/library/PCUIF_Types.ttcn File library/PCUIF_Types.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369/4/library/PCUIF_Types.ttcn at 224 PS4, Line 224: OCT23 si1 optional, > Or would you always send OCT23 as sequence of 0x00 even if siX_is_set == 0? If the whole set of fiel [?] I'm a bit confused. I thought we had moved away from adding the SI to the ever-growing INFO.ind already several days ago somewhere during the patch review? Can anyone please point me to why/where it was decided against addin a separate message type (and not having to worry about what is described in the comment above)? -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I9054ab0e969c0fbfdc671c92d44cc61360959adc Gerrit-Change-Number: 22369 Gerrit-PatchSet: 5 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Fri, 29 Jan 2021 08:58:48 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: fixeria Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 08:59:25 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 29 Jan 2021 08:59:25 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Use Misc_Helpers.f_shutdown() whenever applicable In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22459 ) Change subject: gbproxy: Use Misc_Helpers.f_shutdown() whenever applicable ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22459 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I4fdd47e9c5887597dca89580f856ddc6cd8f54f1 Gerrit-Change-Number: 22459 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 29 Jan 2021 08:59:25 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 08:59:27 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 29 Jan 2021 08:59:27 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Use Misc_Helpers.f_shutdown() whenever applicable In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22459 ) Change subject: gbproxy: Use Misc_Helpers.f_shutdown() whenever applicable ...................................................................... gbproxy: Use Misc_Helpers.f_shutdown() whenever applicable This should avoid some of the "known" races during shut-down Change-Id: I4fdd47e9c5887597dca89580f856ddc6cd8f54f1 --- M gbproxy/GBProxy_Tests.ttcn 1 file changed, 43 insertions(+), 56 deletions(-) Approvals: laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index df27a3d..4879521 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -592,8 +592,7 @@ repeat; } [] SGSN_MGMT.receive { - setverdict(fail, "Received unexpected message on SGSN_MGMT"); - mtc.stop; + f_shutdown(__FILE__, __LINE__, fail, "Received unexpected message on SGSN_MGMT"); } [] PCU_MGMT.receive(BssgpStatusIndication:{*, ?, BVC_S_UNBLOCKED}) -> value bsi { @@ -606,8 +605,7 @@ repeat; } [] PCU_MGMT.receive { - setverdict(fail, "Received unexpected message on PCU_MGMT"); - mtc.stop; + f_shutdown(__FILE__, __LINE__, fail, "Received unexpected message on PCU_MGMT"); } [] T.timeout { @@ -622,8 +620,8 @@ for (var integer j := 0; j < lengthof(g_sgsn[i].cfg.bvc); j := j+1) { var BssgpBvci bvci := g_sgsn[i].cfg.bvc[j].bvci; if (not ro_integer_contains(bvci_unblocked[i], bvci)) { - setverdict(fail, "SGSN ", i, " BVCI=", bvci, " was not unblocked during start-up"); - mtc.stop; + f_shutdown(__FILE__, __LINE__, fail, + log2str("SGSN ", i, " BVCI=", bvci, " was not unblocked during start-up")); } } } @@ -742,8 +740,7 @@ private altstep as_gTguard(timer Tguard) { [] Tguard.timeout { - setverdict(fail, "Tguard timeout"); - mtc.stop; + f_shutdown(__FILE__, __LINE__, fail, "Tguard timeout"); } } @@ -821,16 +818,16 @@ setverdict(pass); } [] SGSN_PTP[sgsn_idx].receive(PDU_BSSGP:?) -> value rx { - setverdict(fail, "Unexpected BSSGP on SGSN[", sgsn_idx, "] side: ", rx); - mtc.stop; + f_shutdown(__FILE__, __LINE__, fail, + log2str("Unexpected BSSGP on SGSN[", sgsn_idx, "] side: ", rx)); } [] SGSN_SIG[sgsn_idx].receive(PDU_BSSGP:?) -> value rx { - setverdict(fail, "Unexpected SIG BSSGP on SGSN[", sgsn_idx, "] side: ", rx); - mtc.stop; + f_shutdown(__FILE__, __LINE__, fail, + log2str("Unexpected SIG BSSGP on SGSN[", sgsn_idx, "] side: ", rx)); } [] T.timeout { - setverdict(fail, "Timeout waiting for BSSGP on SGSN[", sgsn_idx, "] side: ", exp_rx); - mtc.stop; + f_shutdown(__FILE__, __LINE__, fail, + log2str("Timeout waiting for BSSGP on SGSN[", sgsn_idx, "] side: ", exp_rx)); } } } @@ -858,16 +855,16 @@ setverdict(pass); } [] any from SGSN_PTP.receive(PDU_BSSGP:?) -> value rx @index value rx_idx { - setverdict(fail, "Unexpected BSSGP on SGSN[", rx_idx, "] side: ", rx); - mtc.stop; + f_shutdown(__FILE__, __LINE__, fail, + log2str("Unexpected BSSGP on SGSN[", rx_idx, "] side: ", rx)); } [] any from SGSN_SIG.receive(PDU_BSSGP:?) -> value rx @index value rx_idx { - setverdict(fail, "Unexpected SIG BSSGP on SGSN[", rx_idx, "] side: ", rx); - mtc.stop; + f_shutdown(__FILE__, __LINE__, fail, + log2str("Unexpected SIG BSSGP on SGSN[", rx_idx, "] side: ", rx)); } [] T.timeout { - setverdict(fail, "Timeout waiting for BSSGP on SGSN side: ", exp_rx); - mtc.stop; + f_shutdown(__FILE__, __LINE__, fail, + log2str("Timeout waiting for BSSGP on SGSN side: ", exp_rx)); } } return rx_idx; @@ -895,16 +892,14 @@ setverdict(pass); } [] PCU_PTP[pcu_idx].receive(PDU_BSSGP:?) -> value rx { - setverdict(fail, "Unexpected BSSGP on PCU side: ", rx); - mtc.stop; + f_shutdown(__FILE__, __LINE__, fail, log2str("Unexpected BSSGP on PCU side: ", rx)); } [] PCU_SIG[pcu_idx].receive(PDU_BSSGP:?) -> value rx { - setverdict(fail, "Unexpected SIG BSSGP on PCU side: ", rx); - mtc.stop; + f_shutdown(__FILE__, __LINE__, fail, log2str("Unexpected SIG BSSGP on PCU side: ", rx)); } [] T.timeout { - setverdict(fail, "Timeout waiting for BSSGP on PCU side: ", exp_rx); - mtc.stop; + f_shutdown(__FILE__, __LINE__, fail, + log2str("Timeout waiting for BSSGP on PCU side: ", exp_rx)); } } } @@ -987,12 +982,10 @@ setverdict(fail, "BSSGP arrived on wrong SGSN[", rx_idx, "] instead of SGSN[", sgsn_idx, "]"); } [] G_SGSN[sgsn_idx].receive(PDU_BSSGP:?) -> value rx { - setverdict(fail, "Unexpected BSSGP on SGSN side: ", rx); - mtc.stop; + f_shutdown(__FILE__, __LINE__, fail, log2str("Unexpected BSSGP on SGSN side: ", rx)); } [] T.timeout { - setverdict(fail, "Timeout waiting for BSSGP on SGSN side: ", exp_rx); - mtc.stop; + f_shutdown(__FILE__, __LINE__, fail, log2str("Timeout waiting for BSSGP on SGSN side: ", exp_rx)); } } } @@ -1014,12 +1007,10 @@ setverdict(fail, "BSSGP arrived on wrong PCU[", rx_idx, "] instead of PCU[", pcu_idx, "]"); } [] G_PCU[pcu_idx].receive(PDU_BSSGP:?) -> value rx { - setverdict(fail, "Unexpected BSSGP on PCU side: ", rx); - mtc.stop; + f_shutdown(__FILE__, __LINE__, fail, log2str("Unexpected BSSGP on PCU side: ", rx)); } [] T.timeout { - setverdict(fail, "Timeout waiting for BSSGP on PCU side: ", exp_rx); - mtc.stop; + f_shutdown(__FILE__, __LINE__, fail, log2str("Timeout waiting for BSSGP on PCU side: ", exp_rx)); } } } @@ -1061,12 +1052,12 @@ return rx_pdu.pDU_BSSGP_SUSPEND_ACK.suspend_Reference_Number.suspend_Reference_Number_value; } [] PCU_SIG[ran_idx].receive(tr_BSSGP_SUSPEND_NACK(g_pars.tlli, bvcc.cell_id.ra_id, ?)) -> value rx_pdu { - setverdict(fail, "SUSPEND-NACK in response to SUSPEND for TLLI ", g_pars.tlli); - mtc.stop; + f_shutdown(__FILE__, __LINE__, fail, + log2str("SUSPEND-NACK in response to SUSPEND for TLLI ", g_pars.tlli)); } [] T.timeout { - setverdict(fail, "No SUSPEND-ACK in response to SUSPEND for TLLI ", g_pars.tlli); - mtc.stop; + f_shutdown(__FILE__, __LINE__, fail, + log2str("No SUSPEND-ACK in response to SUSPEND for TLLI ", g_pars.tlli)); } } return '00'O; @@ -1080,12 +1071,12 @@ alt { [] PCU_SIG[ran_idx].receive(tr_BSSGP_RESUME_ACK(g_pars.tlli, bvcc.cell_id.ra_id)); [] PCU_SIG[ran_idx].receive(tr_BSSGP_RESUME_NACK(g_pars.tlli, bvcc.cell_id.ra_id, ?)) { - setverdict(fail, "RESUME-NACK in response to RESUME for TLLI ", g_pars.tlli); - mtc.stop; + f_shutdown(__FILE__, __LINE__, fail, + log2str("RESUME-NACK in response to RESUME for TLLI ", g_pars.tlli)); } [] T.timeout { - setverdict(fail, "No RESUME-ACK in response to SUSPEND for TLLI ", g_pars.tlli); - mtc.stop; + f_shutdown(__FILE__, __LINE__, fail, + log2str("No RESUME-ACK in response to SUSPEND for TLLI ", g_pars.tlli)); } } } @@ -1399,8 +1390,7 @@ [] NS.receive(NsUnitdataIndication:{0,?,?,*,*}) { repeat; } /* signaling BVC */ [] NS.receive(NsStatusIndication:?) { repeat; } [] NS.receive { - setverdict(fail, "Rx unexpected NS"); - mtc.stop; + f_shutdown(__FILE__, __LINE__, fail, "Rx unexpected NS"); } [] T.timeout { } @@ -2828,12 +2818,11 @@ setverdict(pass); } [] any from RIM_SGSN.receive(PDU_BSSGP:?) -> value rx { - setverdict(fail, "Unexpected BSSGP on SGSN side: ", rx); - mtc.stop; + f_shutdown(__FILE__, __LINE__, fail, log2str("Unexpected BSSGP on SGSN side: ", rx)); } [] T.timeout { - setverdict(fail, "Timeout waiting for BSSGP on SGSN side: ", exp_rx); - mtc.stop; + f_shutdown(__FILE__, __LINE__, fail, + log2str("Timeout waiting for BSSGP on SGSN side: ", exp_rx)); } } } @@ -2851,12 +2840,11 @@ setverdict(pass); } [] RIM_PCU[pcu_idx].receive(PDU_BSSGP:?) -> value rx { - setverdict(fail, "Unexpected BSSGP on PCU side: ", rx); - mtc.stop; + f_shutdown(__FILE__, __LINE__, fail, log2str("Unexpected BSSGP on PCU side: ", rx)); } [] T.timeout { - setverdict(fail, "Timeout waiting for BSSGP on PCU side: ", exp_rx); - mtc.stop; + f_shutdown(__FILE__, __LINE__, fail, + log2str("Timeout waiting for BSSGP on PCU side: ", exp_rx)); } } } @@ -2881,12 +2869,11 @@ setverdict(fail, "Received RIM on SGSN but expected it on other PCU"); } [] any from RIM_SGSN.receive(PDU_BSSGP:?) -> value rx { - setverdict(fail, "Unexpected BSSGP on SGSN side: ", rx); - mtc.stop; + f_shutdown(__FILE__, __LINE__, fail, log2str("Unexpected BSSGP on SGSN side: ", rx)); } [] T.timeout { - setverdict(fail, "Timeout waiting for BSSGP on SGSN side: ", exp_rx); - mtc.stop; + f_shutdown(__FILE__, __LINE__, fail, + log2str("Timeout waiting for BSSGP on SGSN side: ", exp_rx)); } } } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22459 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I4fdd47e9c5887597dca89580f856ddc6cd8f54f1 Gerrit-Change-Number: 22459 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 09:08:38 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 29 Jan 2021 09:08:38 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Introduce test TC_nacc_outbound_success In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22387 ) Change subject: pcu: Introduce test TC_nacc_outbound_success ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22387 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I951db4af731e5a7c207f0f407dd78d166e2d3d26 Gerrit-Change-Number: 22387 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 29 Jan 2021 09:08:38 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 09:09:15 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 29 Jan 2021 09:09:15 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Introduce test TC_nacc_outbound_rac_ci_resolve_timeout In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22452 ) Change subject: pcu: Introduce test TC_nacc_outbound_rac_ci_resolve_timeout ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22452 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ia09fbfe9aba34a51e0715d1c307de280e3ae0249 Gerrit-Change-Number: 22452 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 29 Jan 2021 09:09:15 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 09:09:26 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 29 Jan 2021 09:09:26 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Introduce test TC_nacc_outbound_si_resolve_timeout In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22453 ) Change subject: pcu: Introduce test TC_nacc_outbound_si_resolve_timeout ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22453 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If0032b940685efaaa8f65357c56c3383fab3e283 Gerrit-Change-Number: 22453 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 29 Jan 2021 09:09:26 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 09:09:33 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 29 Jan 2021 09:09:33 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Introduce test TC_nacc_outbound_rac_ci_resolve_fail_parse_response In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22454 ) Change subject: pcu: Introduce test TC_nacc_outbound_rac_ci_resolve_fail_parse_response ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22454 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If7efddb1ae2ccb580fe85c8df45c9ccdb818c6f3 Gerrit-Change-Number: 22454 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 29 Jan 2021 09:09:33 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 09:10:08 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 29 Jan 2021 09:10:08 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Introduce test TC_nacc_outbound_success_twice In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22487 ) Change subject: pcu: Introduce test TC_nacc_outbound_success_twice ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22487 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ia7b1584b3f7abfa2697a1f155c8b7788a3b0722e Gerrit-Change-Number: 22487 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 29 Jan 2021 09:10:08 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 09:10:24 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 29 Jan 2021 09:10:24 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Introduce test TC_nacc_outbound_rac_ci_resolve_conn_refused In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22488 ) Change subject: pcu: Introduce test TC_nacc_outbound_rac_ci_resolve_conn_refused ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22488 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ia0452879edb958098598e9e1c943f4e1e458a9bf Gerrit-Change-Number: 22488 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 29 Jan 2021 09:10:24 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 09:10:37 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 29 Jan 2021 09:10:37 +0000 Subject: Change in osmo-ttcn3-hacks[master]: CTRL_Adapter: Add function f_ipa_ctrl_wait_link_down In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22519 ) Change subject: CTRL_Adapter: Add function f_ipa_ctrl_wait_link_down ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22519 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ia9f08dae76774925de8a08c7e313965280cb51b0 Gerrit-Change-Number: 22519 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 29 Jan 2021 09:10:37 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 09:11:06 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 29 Jan 2021 09:11:06 +0000 Subject: Change in osmo-ttcn3-hacks[master]: IPA_Emulation: Support keeping server alive after first client discon... In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22520 ) Change subject: IPA_Emulation: Support keeping server alive after first client disconnects ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22520 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I4c133a889df0a5a060b5c52a1ca40fa9b8695c2e Gerrit-Change-Number: 22520 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 29 Jan 2021 09:11:06 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 09:11:16 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 29 Jan 2021 09:11:16 +0000 Subject: Change in osmo-ttcn3-hacks[master]: CTRL_Adapter: Keep server alive after first client disconnects In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22521 ) Change subject: CTRL_Adapter: Keep server alive after first client disconnects ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22521 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Idddc27671d1b823dfbc62bcf7be673e51b574d63 Gerrit-Change-Number: 22521 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 29 Jan 2021 09:11:16 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 09:46:29 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 29 Jan 2021 09:46:29 +0000 Subject: Change in osmo-pcu[master]: tbf: Make tbf_ms() param const In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22460 ) Change subject: tbf: Make tbf_ms() param const ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22460 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I041c564b15d17d05ce97ea0085fcd9192a346578 Gerrit-Change-Number: 22460 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Fri, 29 Jan 2021 09:46:29 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 09:51:17 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 29 Jan 2021 09:51:17 +0000 Subject: Change in osmo-pcu[master]: Introduce NACC support In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22385 ) Change subject: Introduce NACC support ...................................................................... Patch Set 11: Code-Review+1 (2 comments) https://gerrit.osmocom.org/c/osmo-pcu/+/22385/11/src/nacc_fsm.c File src/nacc_fsm.c: https://gerrit.osmocom.org/c/osmo-pcu/+/22385/11/src/nacc_fsm.c at 633 PS11, Line 633: connect to CTRL > I am afraid this message may be confusing for the end user, because usually our osmo-apps are CTRL s [?] Ack https://gerrit.osmocom.org/c/osmo-pcu/+/22385/9/src/neigh_cache.h File src/neigh_cache.h: https://gerrit.osmocom.org/c/osmo-pcu/+/22385/9/src/neigh_cache.h at 49 PS9, Line 49: struct llist_head list; /* to be included in neigh_cache->list */ > I would then need to hash quite complex keys, I'll have a look but I think I'll leave it as it is. [?] Ack -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22385 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Id35f40d05f3e081f32fddbf1fa34cb338db452ca Gerrit-Change-Number: 22385 Gerrit-PatchSet: 11 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Fri, 29 Jan 2021 09:51:17 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Comment-In-Reply-To: laforge Comment-In-Reply-To: fixeria Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 10:37:53 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 29 Jan 2021 10:37:53 +0000 Subject: Change in libosmocore[master]: ns2: Fix assert when removing a bind listen In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, lynxis lazus, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22448 to look at the new patch set (#3). Change subject: ns2: Fix assert when removing a bind listen ...................................................................... ns2: Fix assert when removing a bind listen Change-Id: I3edd1e838f7516d9224045710047419039aa0ec0 Fixes: OS#4977 --- M src/gb/gprs_ns2_vty.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/48/22448/3 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22448 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I3edd1e838f7516d9224045710047419039aa0ec0 Gerrit-Change-Number: 22448 Gerrit-PatchSet: 3 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 10:39:36 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 29 Jan 2021 10:39:36 +0000 Subject: Change in libosmocore[master]: ns2: Fix assert when removing a bind listen In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22448 ) Change subject: ns2: Fix assert when removing a bind listen ...................................................................... Patch Set 3: Code-Review+2 Readding +2: Rebase after git mv gprs_ns2_vty{2,}.c -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22448 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I3edd1e838f7516d9224045710047419039aa0ec0 Gerrit-Change-Number: 22448 Gerrit-PatchSet: 3 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 29 Jan 2021 10:39:36 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 10:45:54 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 29 Jan 2021 10:45:54 +0000 Subject: Change in libosmocore[master]: ns2: Fix assert when removing a bind listen In-Reply-To: References: Message-ID: daniel has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22448 ) Change subject: ns2: Fix assert when removing a bind listen ...................................................................... ns2: Fix assert when removing a bind listen Change-Id: I3edd1e838f7516d9224045710047419039aa0ec0 Fixes: OS#4977 --- M src/gb/gprs_ns2_vty.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: daniel: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/gb/gprs_ns2_vty.c b/src/gb/gprs_ns2_vty.c index 1c40759..c2b9bd9 100644 --- a/src/gb/gprs_ns2_vty.c +++ b/src/gb/gprs_ns2_vty.c @@ -516,7 +516,7 @@ if (!bind) return CMD_ERR_NOTHING_TODO; - OSMO_ASSERT(bind->ll != GPRS_NS2_LL_UDP); + OSMO_ASSERT(bind->ll == GPRS_NS2_LL_UDP); bind->driver->free_bind(bind); return CMD_SUCCESS; } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22448 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I3edd1e838f7516d9224045710047419039aa0ec0 Gerrit-Change-Number: 22448 Gerrit-PatchSet: 3 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 10:48:47 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 29 Jan 2021 10:48:47 +0000 Subject: Change in osmo-ttcn3-hacks[master]: PCU_Tests: add testcase TC_rim_ran_info_req_single_rep and _no_si In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369 ) Change subject: PCU_Tests: add testcase TC_rim_ran_info_req_single_rep and _no_si ...................................................................... Patch Set 5: (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369/4/library/PCUIF_Types.ttcn File library/PCUIF_Types.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369/4/library/PCUIF_Types.ttcn at 224 PS4, Line 224: OCT23 si1 optional, > I'm a bit confused. I thought we had moved away from adding the SI to the ever-growing INFO. [?] Ok, I will change it then. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I9054ab0e969c0fbfdc671c92d44cc61360959adc Gerrit-Change-Number: 22369 Gerrit-PatchSet: 5 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Fri, 29 Jan 2021 10:48:47 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: laforge Comment-In-Reply-To: fixeria Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 11:02:27 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Fri, 29 Jan 2021 11:02:27 +0000 Subject: Change in simtrace2[master]: dfu: let the device reset itself In-Reply-To: References: Message-ID: Hello Jenkins Builder, mschramm, laforge, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/simtrace2/+/22529 to look at the new patch set (#3). Change subject: dfu: let the device reset itself ...................................................................... dfu: let the device reset itself dfu flashing the ST12 was easy, but i was never able to get ST34 into dfu mode. Changing the firmware so it resets itself just like the octsim instead of starting a timer and waiting for a reset from the host made it work every time for me. Change-Id: Ida636ec925f40d6d56551f170150181350d03bbd --- M firmware/atmel_softpack_libraries/usb/device/dfu/dfu.h M firmware/atmel_softpack_libraries/usb/device/dfu/dfu_runtime.c 2 files changed, 7 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/simtrace2 refs/changes/29/22529/3 -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/22529 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: Ida636ec925f40d6d56551f170150181350d03bbd Gerrit-Change-Number: 22529 Gerrit-PatchSet: 3 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: mschramm Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 11:17:41 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 29 Jan 2021 11:17:41 +0000 Subject: Change in osmo-sgsn[master]: sgsn_rim: Add routing for (GERAN) BSSGP RIM messages In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22110 ) Change subject: sgsn_rim: Add routing for (GERAN) BSSGP RIM messages ...................................................................... Patch Set 6: Code-Review+1 (2 comments) https://gerrit.osmocom.org/c/osmo-sgsn/+/22110/4/src/sgsn/sgsn_rim.c File src/sgsn/sgsn_rim.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/22110/4/src/sgsn/sgsn_rim.c at 49 PS4, Line 49: retu > I think this is correct (see spec ref below). [?] So this is checking the source address and returning an error. It seems the spec doesn't say anything about this case but since we would definitely reject the reply the status here seems fine to me. One could also verify that the src address is actually routed back to the NSE that we received the message from but I'm not sure if there are uses where this assumption is violated. https://gerrit.osmocom.org/c/osmo-sgsn/+/22110/4/src/sgsn/sgsn_rim.c at 54 PS4, Line 54: retu > This should be correct as it is, done on BSSGP level. The spec says: [?] >From the little I read when looking at gbproxy support I'd agree that sending a BSSGP STATUS is correct. -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22110 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I6fde8ab8955660b48000ca1b650cfc7c7b2e24ba Gerrit-Change-Number: 22110 Gerrit-PatchSet: 6 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Fri, 29 Jan 2021 11:17:41 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Comment-In-Reply-To: laforge Comment-In-Reply-To: dexter Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 11:18:09 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 29 Jan 2021 11:18:09 +0000 Subject: Change in osmo-ttcn3-hacks[master]: sgsn: NS: disable broken test TC_NS_connect_alive In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22504 ) Change subject: sgsn: NS: disable broken test TC_NS_connect_alive ...................................................................... Patch Set 2: Code-Review-1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22504 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ib3f13000276fff2e1178ee460367129718153cb5 Gerrit-Change-Number: 22504 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 29 Jan 2021 11:18:09 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 11:21:09 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 29 Jan 2021 11:21:09 +0000 Subject: Change in libosmocore[master]: ctrl_connection: Initialize write_queue.bfd.fd to -1 during allocation In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22462 ) Change subject: ctrl_connection: Initialize write_queue.bfd.fd to -1 during allocation ...................................................................... ctrl_connection: Initialize write_queue.bfd.fd to -1 during allocation Otherwise fd is set to 0 by default, let's avoid accidentally closing it if something goes wrong. Change-Id: I98f744d2880fbb883719cdf1d3eb31f2b22a13b6 --- M src/ctrl/control_if.c 1 file changed, 1 insertion(+), 0 deletions(-) Approvals: daniel: Looks good to me, but someone else must approve fixeria: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/ctrl/control_if.c b/src/ctrl/control_if.c index 9e3e3a9..5eb81c7 100644 --- a/src/ctrl/control_if.c +++ b/src/ctrl/control_if.c @@ -514,6 +514,7 @@ INIT_LLIST_HEAD(&ccon->def_cmds); ccon->write_queue.bfd.data = data; + ccon->write_queue.bfd.fd = -1; ccon->write_queue.write_cb = control_write_cb; ccon->write_queue.read_cb = handle_control_read; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22462 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I98f744d2880fbb883719cdf1d3eb31f2b22a13b6 Gerrit-Change-Number: 22462 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 11:21:46 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 29 Jan 2021 11:21:46 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BTS_Tests: check if si1, si3, si13 are updated via PCUIF In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22431 ) Change subject: BTS_Tests: check if si1,si3,si13 are updated via PCUIF ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22431 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I6ec543b3cb33d82c442083b52c991add71b34644 Gerrit-Change-Number: 22431 Gerrit-PatchSet: 4 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 29 Jan 2021 11:21:46 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 11:27:05 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 29 Jan 2021 11:27:05 +0000 Subject: Change in osmo-pcu[master]: Introduce NACC support In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22385 ) Change subject: Introduce NACC support ...................................................................... Patch Set 11: (1 comment) https://gerrit.osmocom.org/c/osmo-pcu/+/22385/11/src/nacc_fsm.c File src/nacc_fsm.c: https://gerrit.osmocom.org/c/osmo-pcu/+/22385/11/src/nacc_fsm.c at 633 PS11, Line 633: connect to CTRL > Ack I Don't see a problem given that the log category is already NACC, but I can change the message in a follow-up patch if needed. -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22385 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Id35f40d05f3e081f32fddbf1fa34cb338db452ca Gerrit-Change-Number: 22385 Gerrit-PatchSet: 11 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Fri, 29 Jan 2021 11:27:05 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: laforge Comment-In-Reply-To: fixeria Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 11:31:17 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 29 Jan 2021 11:31:17 +0000 Subject: Change in osmo-pcu[master]: gprs_bssgp_rim: add serving BSS NACC application In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22368 ) Change subject: gprs_bssgp_rim: add serving BSS NACC application ...................................................................... Patch Set 5: Code-Review-1 I think it was decided to have a new message to send the SI infos, right? so marking it as -1 until it is addressed. -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22368 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Id72118120c14984d2fb1b918b41fac4868150d41 Gerrit-Change-Number: 22368 Gerrit-PatchSet: 5 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 29 Jan 2021 11:31:17 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 11:34:42 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 29 Jan 2021 11:34:42 +0000 Subject: Change in osmo-gsm-manuals[master]: cs7-config: Describe special meaning of M3UA routing context '0' In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/22528 ) Change subject: cs7-config: Describe special meaning of M3UA routing context '0' ...................................................................... Patch Set 1: Code-Review+1 I wonder why do we do that and not use -1 instead to represent no routing context. -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/22528 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-manuals Gerrit-Branch: master Gerrit-Change-Id: Iac0bc1e754d04b2e798263bfa029d26376e4e92f Gerrit-Change-Number: 22528 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 29 Jan 2021 11:34:42 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 11:35:18 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 29 Jan 2021 11:35:18 +0000 Subject: Change in osmo-bts[master]: chan activ: activate DL SACCH only when TA is known In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/22509 ) Change subject: chan activ: activate DL SACCH only when TA is known ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22509 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I170b63c9856230d5f1a10654a9d950ada8e730d7 Gerrit-Change-Number: 22509 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 29 Jan 2021 11:35:18 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 11:36:41 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 29 Jan 2021 11:36:41 +0000 Subject: Change in osmo-bsc[master]: show bug: add test_dyn_ts_amr_tch_{f, h}_to_{h, f}_congestion_assignmen... In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22526 ) Change subject: show bug: add test_dyn_ts_amr_tch_{f,h}_to_{h,f}_congestion_assignment_2.ho_vty ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22526 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I8c8d9d5936f713f7d02e4246eeb373916e62510b Gerrit-Change-Number: 22526 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 29 Jan 2021 11:36:41 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 11:39:40 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 29 Jan 2021 11:39:40 +0000 Subject: Change in osmo-bsc[master]: hodec2: fix intra-cell congestion balancing with source lchan on dyn TS In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22527 ) Change subject: hodec2: fix intra-cell congestion balancing with source lchan on dyn TS ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/22527/1/src/osmo-bsc/handover_decision_2.c File src/osmo-bsc/handover_decision_2.c: https://gerrit.osmocom.org/c/osmo-bsc/+/22527/1/src/osmo-bsc/handover_decision_2.c at 688 PS1, Line 688: target_free_tchf_after_ho += c->current.lchan_frees_tchf; A comment explaining what you are doing here is worth it imho. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22527 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I332477cbddf32cf6f057007b45cda8477227f0b1 Gerrit-Change-Number: 22527 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 29 Jan 2021 11:39:40 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 11:54:18 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 29 Jan 2021 11:54:18 +0000 Subject: Change in osmo-pcu[master]: tbf: Make tbf_ms() param const In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22460 ) Change subject: tbf: Make tbf_ms() param const ...................................................................... tbf: Make tbf_ms() param const Change-Id: I041c564b15d17d05ce97ea0085fcd9192a346578 --- M src/tbf.cpp M src/tbf.h 2 files changed, 2 insertions(+), 2 deletions(-) Approvals: laforge: Looks good to me, approved fixeria: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/tbf.cpp b/src/tbf.cpp index d2d55f2..0fec476 100644 --- a/src/tbf.cpp +++ b/src/tbf.cpp @@ -1165,7 +1165,7 @@ return &tbf->m_bts_list.list; } -struct GprsMs *tbf_ms(struct gprs_rlcmac_tbf *tbf) +struct GprsMs *tbf_ms(const struct gprs_rlcmac_tbf *tbf) { return tbf->ms(); } diff --git a/src/tbf.h b/src/tbf.h index d616076..983d38c 100644 --- a/src/tbf.h +++ b/src/tbf.h @@ -196,7 +196,7 @@ void tbf_set_ms(struct gprs_rlcmac_tbf *tbf, struct GprsMs *ms); struct llist_head *tbf_ms_list(struct gprs_rlcmac_tbf *tbf); struct llist_head *tbf_bts_list(struct gprs_rlcmac_tbf *tbf); -struct GprsMs *tbf_ms(struct gprs_rlcmac_tbf *tbf); +struct GprsMs *tbf_ms(const struct gprs_rlcmac_tbf *tbf); bool tbf_timers_pending(struct gprs_rlcmac_tbf *tbf, enum tbf_timers t); void tbf_free(struct gprs_rlcmac_tbf *tbf); struct gprs_llc *tbf_llc(struct gprs_rlcmac_tbf *tbf); -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22460 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I041c564b15d17d05ce97ea0085fcd9192a346578 Gerrit-Change-Number: 22460 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 12:05:36 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 29 Jan 2021 12:05:36 +0000 Subject: Change in osmo-pcu[master]: doc: Mark PCU node red in network node diagram References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22530 ) Change subject: doc: Mark PCU node red in network node diagram ...................................................................... doc: Mark PCU node red in network node diagram Change-Id: I81ab7bf144eacbfab94d3cee3d75af5a05e1c71a --- M doc/manuals/chapters/overview.adoc 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/30/22530/1 diff --git a/doc/manuals/chapters/overview.adoc b/doc/manuals/chapters/overview.adoc index eade62b..6ae6f7e 100644 --- a/doc/manuals/chapters/overview.adoc +++ b/doc/manuals/chapters/overview.adoc @@ -26,6 +26,7 @@ BTS->PCU [label="pcu_sock"] PCU->SGSN [label="Gb"] SGSN->GGSN [label="GTP"] + PCU [color=red] } ---- -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22530 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I81ab7bf144eacbfab94d3cee3d75af5a05e1c71a Gerrit-Change-Number: 22530 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 12:10:03 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 29 Jan 2021 12:10:03 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: WIP RIM support In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22314 ) Change subject: gbproxy: WIP RIM support ...................................................................... Patch Set 2: This change is ready for review. -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22314 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I3403736eed9d6819634c26db0b90393ac6f4416a Gerrit-Change-Number: 22314 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Assignee: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-CC: dexter Gerrit-Comment-Date: Fri, 29 Jan 2021 12:10:03 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 12:18:03 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 29 Jan 2021 12:18:03 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: WIP RIM support In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22314 ) Change subject: gbproxy: WIP RIM support ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-sgsn/+/22314/2/src/gbproxy/gb_proxy.c File src/gbproxy/gb_proxy.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/22314/2/src/gbproxy/gb_proxy.c at 969 PS2, Line 969: } > osmo-sgsn does not support anything else then GERAN here as well, but it would filter and respond wi [?] Yeah, but we might talk to a (3rd party) SGSN that supports other protocols. So I think if it can gbproxy should always forward RIM. -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22314 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I3403736eed9d6819634c26db0b90393ac6f4416a Gerrit-Change-Number: 22314 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Assignee: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-CC: dexter Gerrit-Comment-Date: Fri, 29 Jan 2021 12:18:03 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: dexter Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 12:28:26 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 29 Jan 2021 12:28:26 +0000 Subject: Change in osmo-pcu[master]: NACC: Fix crash freeing struct if CTRL conn was refused during alloc In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22489 ) Change subject: NACC: Fix crash freeing struct if CTRL conn was refused during alloc ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22489 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I253bd9087b1f7ab039aa1127e9dc586f5106905a Gerrit-Change-Number: 22489 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Fri, 29 Jan 2021 12:28:26 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 12:28:44 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 29 Jan 2021 12:28:44 +0000 Subject: Change in osmo-pcu[master]: NACC: delay CTRL conn socket init until it's needed In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22490 ) Change subject: NACC: delay CTRL conn socket init until it's needed ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22490 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ib1ea85e1196c8b9dc40c8837ab5d4a54f2a1f2d4 Gerrit-Change-Number: 22490 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 29 Jan 2021 12:28:44 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 12:32:55 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 29 Jan 2021 12:32:55 +0000 Subject: Change in osmo-pcu[master]: NACC: allow setting keep time for entries in neigh and si cache In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22449 ) Change subject: NACC: allow setting keep time for entries in neigh and si cache ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22449 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ifa336aa27dd88ff5b78dbc5a2799740f542bb369 Gerrit-Change-Number: 22449 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 29 Jan 2021 12:32:55 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 12:33:13 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 29 Jan 2021 12:33:13 +0000 Subject: Change in osmo-pcu[master]: doc: Mark PCU node red in network node diagram In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22530 ) Change subject: doc: Mark PCU node red in network node diagram ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22530 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I81ab7bf144eacbfab94d3cee3d75af5a05e1c71a Gerrit-Change-Number: 22530 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: laforge Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Fri, 29 Jan 2021 12:33:13 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 12:56:04 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 29 Jan 2021 12:56:04 +0000 Subject: Change in simtrace2[master]: dfu: let the device reset itself In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/simtrace2/+/22529 ) Change subject: dfu: let the device reset itself ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/22529 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: Ida636ec925f40d6d56551f170150181350d03bbd Gerrit-Change-Number: 22529 Gerrit-PatchSet: 3 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: mschramm Gerrit-Comment-Date: Fri, 29 Jan 2021 12:56:04 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 12:56:07 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 29 Jan 2021 12:56:07 +0000 Subject: Change in simtrace2[master]: dfu: let the device reset itself In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/simtrace2/+/22529 ) Change subject: dfu: let the device reset itself ...................................................................... dfu: let the device reset itself dfu flashing the ST12 was easy, but i was never able to get ST34 into dfu mode. Changing the firmware so it resets itself just like the octsim instead of starting a timer and waiting for a reset from the host made it work every time for me. Change-Id: Ida636ec925f40d6d56551f170150181350d03bbd --- M firmware/atmel_softpack_libraries/usb/device/dfu/dfu.h M firmware/atmel_softpack_libraries/usb/device/dfu/dfu_runtime.c 2 files changed, 7 insertions(+), 4 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/firmware/atmel_softpack_libraries/usb/device/dfu/dfu.h b/firmware/atmel_softpack_libraries/usb/device/dfu/dfu.h index 5bd8684..84ce14e 100644 --- a/firmware/atmel_softpack_libraries/usb/device/dfu/dfu.h +++ b/firmware/atmel_softpack_libraries/usb/device/dfu/dfu.h @@ -39,8 +39,8 @@ #define DFU_FUNC_DESC { \ .bLength = USB_DT_DFU_SIZE, \ .bDescriptorType = USB_DT_DFU, \ - .bmAttributes = USB_DFU_CAN_UPLOAD | USB_DFU_CAN_DOWNLOAD, \ - .wDetachTimeOut = 0xff00, \ + .bmAttributes = USB_DFU_CAN_UPLOAD | USB_DFU_CAN_DOWNLOAD | USB_DFU_WILL_DETACH, \ + .wDetachTimeOut = 0x00, \ .wTransferSize = BOARD_DFU_PAGE_SIZE, \ .bcdDFUVersion = 0x0100, \ } diff --git a/firmware/atmel_softpack_libraries/usb/device/dfu/dfu_runtime.c b/firmware/atmel_softpack_libraries/usb/device/dfu/dfu_runtime.c index 4467cc9..f2cf64c 100644 --- a/firmware/atmel_softpack_libraries/usb/device/dfu/dfu_runtime.c +++ b/firmware/atmel_softpack_libraries/usb/device/dfu/dfu_runtime.c @@ -165,6 +165,8 @@ * will then trigger DFURT_SwitchToDFU() below */ TRACE_DEBUG("\r\n====dfu_detach\n\r"); g_dfu->state = DFU_STATE_appDETACH; + USBD_Write(0, 0, 0, 0, 0); + DFURT_SwitchToDFU(); ret = DFU_RET_ZLP; goto out; break; @@ -209,13 +211,14 @@ void DFURT_SwitchToDFU(void) { + __disable_irq(); + /* store the magic value that the DFU loader can detect and * activate itself, rather than boot into the application */ g_dfu->magic = USB_DFU_MAGIC; - + __DMB(); /* Disconnect the USB by removing the pull-up */ USBD_Disconnect(); - __disable_irq(); /* reset the processor, we will start execution with the * ResetVector of the bootloader */ -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/22529 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: Ida636ec925f40d6d56551f170150181350d03bbd Gerrit-Change-Number: 22529 Gerrit-PatchSet: 3 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: mschramm Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 14:04:42 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 29 Jan 2021 14:04:42 +0000 Subject: Change in osmo-pcu[master]: Introduce NACC support In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22385 ) Change subject: Introduce NACC support ...................................................................... Patch Set 12: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22385 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Id35f40d05f3e081f32fddbf1fa34cb338db452ca Gerrit-Change-Number: 22385 Gerrit-PatchSet: 12 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 29 Jan 2021 14:04:42 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 14:04:49 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 29 Jan 2021 14:04:49 +0000 Subject: Change in osmo-pcu[master]: NACC: Configure neighbor and SI resolution timeout values In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22450 ) Change subject: NACC: Configure neighbor and SI resolution timeout values ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22450 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ia9932ab082ec095294e85dc4d532046970e17986 Gerrit-Change-Number: 22450 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 29 Jan 2021 14:04:49 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 14:04:52 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 29 Jan 2021 14:04:52 +0000 Subject: Change in osmo-pcu[master]: NACC: Send only Pkt Cell Chg Continue if SI retrieve fails In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22451 ) Change subject: NACC: Send only Pkt Cell Chg Continue if SI retrieve fails ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22451 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ie3f12a08ad611b1086d3f4ab7c3d34af43c07961 Gerrit-Change-Number: 22451 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 29 Jan 2021 14:04:52 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 14:04:57 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 29 Jan 2021 14:04:57 +0000 Subject: Change in osmo-pcu[master]: Introduce NACC support In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22385 ) Change subject: Introduce NACC support ...................................................................... Introduce NACC support A new nacc_fsm is introduced per MS object, with its partner priv structure struct nacc_fsm_ctx, which exists and is available in the MS object only during the duration of the NACC procedure. The NACC context is created on an MS whenever a Pkt Cell Change Notification is received on Uplink RLCMAC, which asks for neighbor information of a given ARFCN+BSIC. First, the target ARFCN+BSIC needs to be translated into a CGI-PS (RAC+CI) address. That's done by asking the BSC through the Neighbour Resolution Service available in osmo-bsc using the CTRL interface. Once the CGI-PS of the target cell is known, PCU starts a RIM RAN-INFO request against the SGSN (which will route the request as needed), and wait for a response containing the SI bits from the target cell. After the SI are received, the scheduler is instructed to eventually poll a TBF for the MS originating the CCN, so that we can send the SI encapsulated into multiple Packet Neighbor Cell Data messages on the downlink. One all the SI bits are sent, the scheduler is instructed to send a Packet Cell Change Continue message. Once the message above has been sent, the FSM autodestroys itself. Caches are also introduced in this patch which allows for re-using recently known translations ARFCN+BSIC -> CGI-PS and CGI-PS -> SI_INFO respectively. Change-Id: Id35f40d05f3e081f32fddbf1fa34cb338db452ca --- M configure.ac M src/Makefile.am M src/bts.cpp M src/bts.h M src/encoding.cpp M src/encoding.h M src/gprs_bssgp_rim.c M src/gprs_debug.cpp M src/gprs_debug.h M src/gprs_ms.c M src/gprs_ms.h M src/gprs_pcu.c M src/gprs_pcu.h M src/gprs_rlcmac_sched.cpp A src/nacc_fsm.c A src/nacc_fsm.h A src/neigh_cache.c A src/neigh_cache.h M src/pcu_vty.c M src/pdch.cpp M src/pdch.h M src/tbf.cpp M src/tbf.h M tests/Makefile.am 24 files changed, 1,407 insertions(+), 5 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved fixeria: Looks good to me, but someone else must approve laforge: Looks good to me, but someone else must approve diff --git a/configure.ac b/configure.ac index 66b3595..60dcb87 100644 --- a/configure.ac +++ b/configure.ac @@ -84,6 +84,7 @@ dnl checks for libraries PKG_CHECK_MODULES(LIBOSMOCORE, libosmocore >= 1.4.0) PKG_CHECK_MODULES(LIBOSMOVTY, libosmovty >= 1.4.0) +PKG_CHECK_MODULES(LIBOSMOCTRL, libosmoctrl >= 1.4.0) PKG_CHECK_MODULES(LIBOSMOGSM, libosmogsm >= 1.4.0) PKG_CHECK_MODULES(LIBOSMOGB, libosmogb >= 1.4.0) diff --git a/src/Makefile.am b/src/Makefile.am index f85a456..eefbea1 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -19,7 +19,7 @@ # AUTOMAKE_OPTIONS = subdir-objects -AM_CPPFLAGS = -I$(top_srcdir)/include $(STD_DEFINES_AND_INCLUDES) $(LIBOSMOCORE_CFLAGS) $(LIBOSMOGB_CFLAGS) $(LIBOSMOGSM_CFLAGS) +AM_CPPFLAGS = -I$(top_srcdir)/include $(STD_DEFINES_AND_INCLUDES) $(LIBOSMOCORE_CFLAGS) $(LIBOSMOGB_CFLAGS) $(LIBOSMOCTRL_CFLAGS) $(LIBOSMOGSM_CFLAGS) if ENABLE_SYSMODSP AM_CPPFLAGS += -DENABLE_DIRECT_PHY @@ -55,6 +55,8 @@ pcu_vty.c \ pcu_vty_functions.cpp \ mslot_class.c \ + nacc_fsm.c \ + neigh_cache.c \ tbf.cpp \ tbf_ul.cpp \ tbf_dl.cpp \ @@ -91,6 +93,8 @@ pcu_vty.h \ pcu_vty_functions.h \ mslot_class.h \ + nacc_fsm.h \ + neigh_cache.h \ tbf.h \ tbf_ul.h \ tbf_dl.h \ @@ -143,6 +147,7 @@ libgprs.la \ $(LIBOSMOGB_LIBS) \ $(LIBOSMOCORE_LIBS) \ + $(LIBOSMOCTRL_LIBS) \ $(LIBOSMOGSM_LIBS) \ $(COMMON_LA) endif @@ -191,6 +196,7 @@ libgprs.la \ $(LIBOSMOGB_LIBS) \ $(LIBOSMOCORE_LIBS) \ + $(LIBOSMOCTRL_LIBS) \ $(LIBOSMOGSM_LIBS) \ $(COMMON_LA) diff --git a/src/bts.cpp b/src/bts.cpp index b5bb3a2..fb7de64 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -140,6 +140,9 @@ { "pkt:ul_assignment", "Packet UL Assignment "}, { "pkt:access_reject", "Packet Access Reject "}, { "pkt:dl_assignment", "Packet DL Assignment "}, + { "pkt:cell_chg_notification", "Packet Cell Change Notification"}, + { "pkt:cell_chg_continue", "Packet Cell Change Continue"}, + { "pkt:neigh_cell_data", "Packet Neighbour Cell Data"}, { "ul:control", "UL control Block "}, { "ul:assignment_poll_timeout", "UL Assign Timeout "}, { "ul:assignment_failed", "UL Assign Failed "}, @@ -1284,3 +1287,8 @@ { return bts_ms_store(bts)->get_ms(0, 0, imsi); } + +const struct llist_head* bts_ms_list(struct gprs_rlcmac_bts *bts) +{ + return bts_ms_store(bts)->ms_list(); +} diff --git a/src/bts.h b/src/bts.h index 7f437e3..ea15caf 100644 --- a/src/bts.h +++ b/src/bts.h @@ -2,6 +2,7 @@ * * Copyright (C) 2012 Ivan Klyuchnikov * Copyright (C) 2013 by Holger Hans Peter Freyther + * Copyright (C) 2021 by sysmocom - s.f.m.c. GmbH PAYLOAD_TYPE = 0x1; // RLC/MAC control block that does not include the optional octets of the RLC/MAC control header + block->RRBP = 0; // 0: N+13 + block->SP = 0; // RRBP field is valid + block->USF = 0x0; // Uplink state flag + + block->u.Packet_Neighbour_Cell_Data.MESSAGE_TYPE = MT_PACKET_NEIGHBOUR_CELL_DATA; + block->u.Packet_Neighbour_Cell_Data.PAGE_MODE = 0x0; // Normal Paging + + block->u.Packet_Neighbour_Cell_Data.Global_TFI.UnionType = tfi_is_dl; // 0=UPLINK TFI, 1=DL TFI + if (tfi_is_dl) { + block->u.Packet_Neighbour_Cell_Data.Global_TFI.u.DOWNLINK_TFI = tfi; + } else { + block->u.Packet_Neighbour_Cell_Data.Global_TFI.u.UPLINK_TFI = tfi; + } + block->u.Packet_Neighbour_Cell_Data.CONTAINER_ID = container_id; + block->u.Packet_Neighbour_Cell_Data.spare = 0; + block->u.Packet_Neighbour_Cell_Data.CONTAINER_INDEX = container_idx; + block->u.Packet_Neighbour_Cell_Data.Container = *container; +} + +void write_packet_cell_change_continue(RlcMacDownlink_t *block, + bool tfi_is_dl, uint8_t tfi, bool exist_id, + uint16_t arfcn, uint8_t bsic, uint8_t container_id) +{ + + block->PAYLOAD_TYPE = 0x1; // RLC/MAC control block that does not include the optional octets of the RLC/MAC control header + block->RRBP = 0; // 0: N+13 + block->SP = 0; // RRBP field is valid + block->USF = 0x0; // Uplink state flag + + block->u.Packet_Cell_Change_Continue.MESSAGE_TYPE = MT_PACKET_CELL_CHANGE_CONTINUE; + block->u.Packet_Cell_Change_Continue.PAGE_MODE = 0x0; // Normal Paging + + block->u.Packet_Cell_Change_Continue.Global_TFI.UnionType = tfi_is_dl; // 0=UPLINK TFI, 1=DL TFI + if (tfi_is_dl) { + block->u.Packet_Cell_Change_Continue.Global_TFI.u.DOWNLINK_TFI = tfi; + } else { + block->u.Packet_Cell_Change_Continue.Global_TFI.u.UPLINK_TFI = tfi; + } + + block->u.Packet_Cell_Change_Continue.Exist_ID = exist_id; + if (exist_id) { + block->u.Packet_Cell_Change_Continue.ARFCN = arfcn; + block->u.Packet_Cell_Change_Continue.BSIC = bsic; + } + block->u.Packet_Cell_Change_Continue.CONTAINER_ID = container_id; +} diff --git a/src/encoding.h b/src/encoding.h index da63a61..4ebfa35 100644 --- a/src/encoding.h +++ b/src/encoding.h @@ -22,17 +22,22 @@ #include +#ifdef __cplusplus extern "C" { +#endif #include #include "coding_scheme.h" #include "gsm_rlcmac.h" +#ifdef __cplusplus } +#endif struct gprs_rlcmac_tbf; struct bitvec; struct gprs_llc; struct gprs_rlc_data_block_info; +#ifdef __cplusplus /** * I help with encoding data into CSN1 messages. * TODO: Nobody can remember a function signature like this. One should @@ -108,3 +113,21 @@ const struct gprs_rlc_data_block_info *rdbi, int *offset, int *num_chunks, uint8_t *data_block); }; + +#endif /* ifdef __cplusplus */ + +#ifdef __cplusplus +extern "C" { +#endif + +void write_packet_neighbour_cell_data(RlcMacDownlink_t *block, + bool tfi_is_dl, uint8_t tfi, uint8_t container_id, + uint8_t container_idx, PNCDContainer_t *container); + +void write_packet_cell_change_continue(RlcMacDownlink_t *block, + bool tfi_is_dl, uint8_t tfi, bool exist_id, + uint16_t arfcn, uint8_t bsic, uint8_t container_id); + +#ifdef __cplusplus +} +#endif diff --git a/src/gprs_bssgp_rim.c b/src/gprs_bssgp_rim.c index cf43a8f..a191fff 100644 --- a/src/gprs_bssgp_rim.c +++ b/src/gprs_bssgp_rim.c @@ -26,6 +26,9 @@ #include "gprs_debug.h" #include "gprs_pcu.h" +#include "bts.h" +#include "gprs_ms.h" +#include "nacc_fsm.h" #define LOGPRIM(nsei, level, fmt, args...) \ LOGP(DRIM, level, "(NSEI=%u) " fmt, nsei, ## args) @@ -97,6 +100,65 @@ return false; } +static int handle_ran_info_response_nacc(const struct bssgp_ran_inf_app_cont_nacc *nacc, struct gprs_rlcmac_bts *bts) +{ + struct si_cache_value val; + struct si_cache_entry *entry; + struct llist_head *tmp; + int i; + + LOGP(DRIM, LOGL_INFO, "Rx RAN-INFO cell=%s type=%sBCCH num_si=%d\n", + osmo_cgi_ps_name(&nacc->reprt_cell), + nacc->type_psi ? "P" : "", nacc->num_si); + + val.type_psi = nacc->type_psi; + val.si_len = 0; + for (i = 0; i < nacc->num_si; i++) { + size_t len = val.type_psi ? BSSGP_RIM_PSI_LEN : BSSGP_RIM_SI_LEN; + memcpy(&val.si_buf[val.si_len], nacc->si[i], len); + val.si_len += len; + } + entry = si_cache_add(bts->pcu->si_cache, &nacc->reprt_cell, &val); + + llist_for_each(tmp, bts_ms_list(bts)) { + struct GprsMs *ms = llist_entry(tmp, typeof(*ms), list); + if (!ms->nacc) + continue; + if (ms->nacc->fi->state != NACC_ST_WAIT_REQUEST_SI) + continue; + if (osmo_cgi_ps_cmp(&nacc->reprt_cell, &ms->nacc->cgi_ps) != 0) + continue; + osmo_fsm_inst_dispatch(ms->nacc->fi, NACC_EV_RX_SI, entry); + } + return 0; +} + +static int handle_ran_info_response(const struct bssgp_ran_information_pdu *pdu, struct gprs_rlcmac_bts *bts) +{ + const struct bssgp_ran_inf_rim_cont *ran_info = &pdu->decoded.rim_cont; + char ri_src_str[64]; + + if (ran_info->app_err) { + LOGP(DRIM, LOGL_ERROR, + "%s Rx RAN-INFO with an app error! cause: %s\n", + bssgp_rim_ri_name_buf(ri_src_str, sizeof(ri_src_str), &pdu->routing_info_src), + bssgp_nacc_cause_str(ran_info->u.app_err_cont_nacc.nacc_cause)); + return -1; + } + + switch (pdu->decoded.rim_cont.app_id) { + case BSSGP_RAN_INF_APP_ID_NACC: + handle_ran_info_response_nacc(&ran_info->u.app_cont_nacc, bts); + break; + default: + LOGP(DRIM, LOGL_ERROR, "%s Rx RAN-INFO with unknown/wrong application ID %s received\n", + bssgp_rim_ri_name_buf(ri_src_str, sizeof(ri_src_str), &pdu->routing_info_src), + bssgp_ran_inf_app_id_str(pdu->decoded.rim_cont.app_id)); + return -1; + } + return 0; +} + int handle_rim(struct osmo_bssgp_prim *bp) { struct msgb *msg = bp->oph.msg; @@ -151,8 +213,7 @@ LOGPRIM(nsei, LOGL_NOTICE, "Responding to RAN INFORMATION REQUEST not yet implemented!\n"); break; case BSSGP_IE_RI_RIM_CONTAINER: - LOGPRIM(nsei, LOGL_NOTICE, "Responding to RAN INFORMATION not yet implemented!\n"); - break; + return handle_ran_info_response(pdu, bts); case BSSGP_IE_RI_APP_ERROR_RIM_CONT: case BSSGP_IE_RI_ACK_RIM_CONTAINER: case BSSGP_IE_RI_ERROR_RIM_COINTAINER: diff --git a/src/gprs_debug.cpp b/src/gprs_debug.cpp index 669ea27..0cbc488 100644 --- a/src/gprs_debug.cpp +++ b/src/gprs_debug.cpp @@ -119,6 +119,13 @@ .loglevel = LOGL_NOTICE, .enabled = 1, }, + [DNACC] = { + .name = "DNACC", + .color = "\033[1;37m", + .description = "Network Assisted Cell Change (NACC)", + .loglevel = LOGL_NOTICE, + .enabled = 1, + }, [DRIM] = { .name = "DRIM", .color = "\033[1;38m", diff --git a/src/gprs_debug.h b/src/gprs_debug.h index 8df405a..cebeabc 100644 --- a/src/gprs_debug.h +++ b/src/gprs_debug.h @@ -46,6 +46,7 @@ DTBFUL, DNS, DPCU, + DNACC, DRIM, aDebug_LastEntry }; diff --git a/src/gprs_ms.c b/src/gprs_ms.c index 3948abf..8078b10 100644 --- a/src/gprs_ms.c +++ b/src/gprs_ms.c @@ -26,6 +26,7 @@ #include "gprs_debug.h" #include "gprs_codel.h" #include "pcu_utils.h" +#include "nacc_fsm.h" #include @@ -937,3 +938,36 @@ return NULL; } + +int ms_nacc_start(struct GprsMs *ms, Packet_Cell_Change_Notification_t *notif) +{ + if (!ms->nacc) + ms->nacc = nacc_fsm_alloc(ms); + if (!ms->nacc) + return -EINVAL; + return osmo_fsm_inst_dispatch(ms->nacc->fi, NACC_EV_RX_CELL_CHG_NOTIFICATION, notif); +} + +bool ms_nacc_rts(const struct GprsMs *ms) +{ + if (!ms->nacc) + return false; + if (ms->nacc->fi->state == NACC_ST_TX_NEIGHBOUR_DATA || + ms->nacc->fi->state == NACC_ST_TX_CELL_CHG_CONTINUE) + return true; + return false; +} + +struct msgb *ms_nacc_create_rlcmac_msg(struct GprsMs *ms, struct gprs_rlcmac_tbf *tbf) +{ + int rc; + struct nacc_ev_create_rlcmac_msg_ctx data_ctx; + + data_ctx.tbf = tbf; + data_ctx.msg = NULL; + + rc = osmo_fsm_inst_dispatch(ms->nacc->fi, NACC_EV_CREATE_RLCMAC_MSG, &data_ctx); + if (rc != 0 || !data_ctx.msg) + return NULL; + return data_ctx.msg; +} diff --git a/src/gprs_ms.h b/src/gprs_ms.h index 39d65de..c57bbf6 100644 --- a/src/gprs_ms.h +++ b/src/gprs_ms.h @@ -40,6 +40,7 @@ #include #include "coding_scheme.h" +#include #include #include @@ -100,6 +101,7 @@ enum mcs_kind mode; struct rate_ctr_group *ctrs; + struct nacc_fsm_ctx *nacc; }; struct GprsMs *ms_alloc(struct gprs_rlcmac_bts *bts, uint32_t tlli); @@ -140,6 +142,10 @@ void ms_set_callback(struct GprsMs *ms, struct gpr_ms_callback *cb); +int ms_nacc_start(struct GprsMs *ms, Packet_Cell_Change_Notification_t *notif); +bool ms_nacc_rts(const struct GprsMs *ms); +struct msgb *ms_nacc_create_rlcmac_msg(struct GprsMs *ms, struct gprs_rlcmac_tbf *tbf); + static inline bool ms_is_idle(const struct GprsMs *ms) { return !ms->ul_tbf && !ms->dl_tbf && !ms->ref && llist_empty(&ms->old_tbfs); diff --git a/src/gprs_pcu.c b/src/gprs_pcu.c index 0786199..9a21cdb 100644 --- a/src/gprs_pcu.c +++ b/src/gprs_pcu.c @@ -22,6 +22,7 @@ #include #include +#include #include "gprs_pcu.h" #include "bts.h" @@ -40,12 +41,20 @@ { .T=0, .default_val=0, .unit=OSMO_TDEF_S, .desc=NULL, .val=0 } /* empty item at the end */ }; +static int gprs_pcu_talloc_destructor(struct gprs_pcu *pcu) +{ + neigh_cache_free(pcu->neigh_cache); + si_cache_free(pcu->si_cache); + return 0; +} + struct gprs_pcu *gprs_pcu_alloc(void *ctx) { struct gprs_pcu *pcu; pcu = (struct gprs_pcu *)talloc_zero(ctx, struct gprs_pcu); OSMO_ASSERT(pcu); + talloc_set_destructor(pcu, gprs_pcu_talloc_destructor); pcu->vty.fc_interval = 1; pcu->vty.max_cs_ul = MAX_GPRS_CS; @@ -97,12 +106,17 @@ pcu->vty.ws_pdch = 0; pcu->vty.llc_codel_interval_msec = LLC_CODEL_USE_DEFAULT; pcu->vty.llc_idle_ack_csec = 10; + pcu->vty.neigh_ctrl_addr = talloc_strdup(pcu, "127.0.0.1"); + pcu->vty.neigh_ctrl_port = OSMO_CTRL_PORT_BSC_NEIGH; pcu->T_defs = T_defs_pcu; osmo_tdefs_reset(pcu->T_defs); INIT_LLIST_HEAD(&pcu->bts_list); + pcu->neigh_cache = neigh_cache_alloc(pcu); + pcu->si_cache = si_cache_alloc(pcu); + return pcu; } diff --git a/src/gprs_pcu.h b/src/gprs_pcu.h index a1cd1ed..8e18f89 100644 --- a/src/gprs_pcu.h +++ b/src/gprs_pcu.h @@ -29,6 +29,8 @@ #include "gprs_bssgp_pcu.h" #include "coding_scheme.h" +#include "neigh_cache.h" + #define LLC_CODEL_DISABLE 0 #define LLC_CODEL_USE_DEFAULT (-1) @@ -102,6 +104,9 @@ uint32_t llc_discard_csec; uint32_t llc_idle_ack_csec; uint32_t llc_codel_interval_msec; /* 0=disabled, -1=use default interval */ + /* Remote BSS resolution sevice (CTRL iface) */ + char *neigh_ctrl_addr; + uint16_t neigh_ctrl_port; } vty; struct gsmtap_inst *gsmtap; @@ -116,6 +121,9 @@ struct gprs_bssgp_pcu bssgp; struct osmo_tdef *T_defs; /* timers controlled by PCU */ + + struct neigh_cache *neigh_cache; /* ARFC+BSIC -> CGI PS cache */ + struct si_cache *si_cache; /* ARFC+BSIC -> CGI PS cache */ }; diff --git a/src/gprs_rlcmac_sched.cpp b/src/gprs_rlcmac_sched.cpp index 6dea949..58ed1ac 100644 --- a/src/gprs_rlcmac_sched.cpp +++ b/src/gprs_rlcmac_sched.cpp @@ -38,6 +38,7 @@ struct gprs_rlcmac_tbf *poll; struct gprs_rlcmac_tbf *ul_ass; struct gprs_rlcmac_tbf *dl_ass; + struct gprs_rlcmac_tbf *nacc; struct gprs_rlcmac_ul_tbf *ul_ack; }; @@ -71,6 +72,9 @@ if (ul_tbf->ul_ass_state_is(GPRS_RLCMAC_UL_ASS_SEND_ASS) || ul_tbf->ul_ass_state_is(GPRS_RLCMAC_UL_ASS_SEND_ASS_REJ)) tbf_cand->ul_ass = ul_tbf; + /* NACC ready to send */ + if (ms_nacc_rts(ul_tbf->ms())) + tbf_cand->nacc = ul_tbf; /* FIXME: Is this supposed to be fair? The last TBF for each wins? Maybe use llist_add_tail and skip once we have all states? */ } @@ -88,6 +92,9 @@ if (dl_tbf->ul_ass_state_is(GPRS_RLCMAC_UL_ASS_SEND_ASS) || dl_tbf->ul_ass_state_is(GPRS_RLCMAC_UL_ASS_SEND_ASS_REJ)) tbf_cand->ul_ass = dl_tbf; + /* NACC ready to send */ + if (ms_nacc_rts(dl_tbf->ms())) + tbf_cand->nacc = dl_tbf; } return poll_fn; @@ -166,7 +173,8 @@ struct gprs_rlcmac_tbf *tbf = NULL; struct gprs_rlcmac_tbf *next_list[] = { tbfs->ul_ass, tbfs->dl_ass, - tbfs->ul_ack }; + tbfs->ul_ack, + tbfs->nacc }; /* Send Packet Application Information first (ETWS primary notifications) */ msg = sched_app_info(tbfs->dl_ass); @@ -194,6 +202,9 @@ msg = tbfs->dl_ass->create_dl_ass(fn, ts); else if (tbf == tbfs->ul_ack) msg = tbfs->ul_ack->create_ul_ack(fn, ts); + else if (tbf == tbfs->nacc) { + msg = ms_nacc_create_rlcmac_msg(tbf->ms(), tbf); + } /* else: if tbf/ms is pending to send tx_neigbhourData or tx_CellchangeContinue, send it */ if (!msg) { diff --git a/src/nacc_fsm.c b/src/nacc_fsm.c new file mode 100644 index 0000000..0a20ae6 --- /dev/null +++ b/src/nacc_fsm.c @@ -0,0 +1,642 @@ +/* nacc_fsm.c + * + * Copyright (C) 2021 by sysmocom - s.f.m.c. GmbH + * Author: Pau Espin Pedrol + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + +#include + +#include + +#include +#include +#include + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +#define X(s) (1 << (s)) + +#define nacc_fsm_state_chg(fi, NEXT_STATE) \ + osmo_fsm_inst_state_chg(fi, NEXT_STATE, 0, 0) + +const struct value_string nacc_fsm_event_names[] = { + { NACC_EV_RX_CELL_CHG_NOTIFICATION, "RX_CELL_CHG_NOTIFICATION" }, + { NACC_EV_RX_RAC_CI, "RX_RAC_CI" }, + { NACC_EV_RX_SI, "RX_SI" }, + { NACC_EV_CREATE_RLCMAC_MSG, "CREATE_RLCMAC_MSG" }, + { 0, NULL } +}; + +/* TS 44 060 11.2.9e Packet Neighbour Cell Data */ +static struct msgb *create_packet_neighbour_cell_data(struct nacc_fsm_ctx *ctx, + const struct gprs_rlcmac_tbf *tbf, + bool *all_si_info_sent) +{ + struct msgb *msg; + int rc; + RlcMacDownlink_t *mac_control_block; + struct GprsMs *ms = tbf_ms(tbf); + OSMO_ASSERT(tbf_is_tfi_assigned(tbf)); + uint8_t tfi_is_dl = tbf_direction(tbf) == GPRS_RLCMAC_DL_TBF; + uint8_t tfi = tbf_tfi(tbf); + uint8_t container_id = 0; + PNCDContainer_t container; + size_t max_len, len_to_write; + uint8_t *cont_buf; + uint8_t si_type = ctx->si_info.type_psi ? 0x01 : 0x0; + + memset(&container, 0, sizeof(container)); + if (ctx->container_idx == 0) { + container.UnionType = 1; /* with ID */ + container.u.PNCD_Container_With_ID.ARFCN = ctx->neigh_key.tgt_arfcn; + container.u.PNCD_Container_With_ID.BSIC = ctx->neigh_key.tgt_bsic; + cont_buf = &container.u.PNCD_Container_With_ID.CONTAINER[0]; + max_len = sizeof(container.u.PNCD_Container_With_ID.CONTAINER) - 1; + } else { + container.UnionType = 0; /* without ID */ + cont_buf = &container.u.PNCD_Container_Without_ID.CONTAINER[0]; + max_len = sizeof(container.u.PNCD_Container_Without_ID.CONTAINER) - 1; + } + + len_to_write = ctx->si_info.si_len - ctx->si_info_bytes_sent; + + if (len_to_write == 0) { + /* We sent all info on last message filing it exactly, we now send a zeroed one to finish */ + *all_si_info_sent = true; + *cont_buf = (si_type << 5) | 0x00; + } else if (len_to_write >= max_len) { + /* We fill the rlcmac block, we'll need more messages */ + *all_si_info_sent = false; + *cont_buf = (si_type << 5) | 0x1F; + memcpy(cont_buf + 1, &ctx->si_info.si_buf[ctx->si_info_bytes_sent], max_len); + ctx->si_info_bytes_sent += max_len; + } else { + /* Last block, we don't fill it exactly */ + *all_si_info_sent = true; + *cont_buf = (si_type << 5) | (len_to_write & 0x1F); + memcpy(cont_buf + 1, &ctx->si_info.si_buf[ctx->si_info_bytes_sent], len_to_write); + ctx->si_info_bytes_sent += len_to_write; + } + + msg = msgb_alloc(GSM_MACBLOCK_LEN, "neighbour_cell_data"); + if (!msg) + return NULL; + + /* Initialize a bit vector that uses allocated msgb as the data buffer. */ + struct bitvec bv = { + .data = msgb_put(msg, GSM_MACBLOCK_LEN), + .data_len = GSM_MACBLOCK_LEN, + }; + bitvec_unhex(&bv, DUMMY_VEC); + + mac_control_block = (RlcMacDownlink_t *)talloc_zero(ctx->ms, RlcMacDownlink_t); + + write_packet_neighbour_cell_data(mac_control_block, + tfi_is_dl, tfi, container_id, + ctx->container_idx, &container); + LOGP(DNACC, LOGL_DEBUG, "+++++++++++++++++++++++++ TX : Packet Neighbour Cell Data +++++++++++++++++++++++++\n"); + rc = encode_gsm_rlcmac_downlink(&bv, mac_control_block); + if (rc < 0) { + LOGP(DTBF, LOGL_ERROR, "Encoding of Packet Neighbour Cell Data failed (%d)\n", rc); + goto free_ret; + } + LOGP(DNACC, LOGL_DEBUG, "------------------------- TX : Packet Neighbour Cell Data -------------------------\n"); + rate_ctr_inc(&bts_rate_counters(ms->bts)->ctr[CTR_PKT_NEIGH_CELL_DATA]); + talloc_free(mac_control_block); + + ctx->container_idx++; + + return msg; + +free_ret: + talloc_free(mac_control_block); + msgb_free(msg); + return NULL; +} + +/* TS 44 060 11.2.2a Packet Cell Change Continue */ +static struct msgb *create_packet_cell_chg_continue(const struct nacc_fsm_ctx *ctx, + const struct gprs_rlcmac_tbf *tbf) +{ + struct msgb *msg; + int rc; + RlcMacDownlink_t *mac_control_block; + struct GprsMs *ms = tbf_ms(tbf); + + msg = msgb_alloc(GSM_MACBLOCK_LEN, "pkt_cell_chg_continue"); + if (!msg) + return NULL; + + /* Initialize a bit vector that uses allocated msgb as the data buffer. */ + struct bitvec bv = { + .data = msgb_put(msg, GSM_MACBLOCK_LEN), + .data_len = GSM_MACBLOCK_LEN, + }; + bitvec_unhex(&bv, DUMMY_VEC); + + mac_control_block = (RlcMacDownlink_t *)talloc_zero(ctx->ms, RlcMacDownlink_t); + + OSMO_ASSERT(tbf_is_tfi_assigned(tbf)); + uint8_t tfi_is_dl = tbf_direction(tbf) == GPRS_RLCMAC_DL_TBF; + uint8_t tfi = tbf_tfi(tbf); + uint8_t container_id = 0; + write_packet_cell_change_continue(mac_control_block, tfi_is_dl, tfi, true, + ctx->neigh_key.tgt_arfcn, ctx->neigh_key.tgt_bsic, container_id); + LOGP(DNACC, LOGL_DEBUG, "+++++++++++++++++++++++++ TX : Packet Cell Change Continue +++++++++++++++++++++++++\n"); + rc = encode_gsm_rlcmac_downlink(&bv, mac_control_block); + if (rc < 0) { + LOGP(DTBF, LOGL_ERROR, "Encoding of Packet Cell Change Continue failed (%d)\n", rc); + goto free_ret; + } + LOGP(DNACC, LOGL_DEBUG, "------------------------- TX : Packet Cell Change Continue -------------------------\n"); + rate_ctr_inc(&bts_rate_counters(ms->bts)->ctr[CTR_PKT_CELL_CHG_CONTINUE]); + talloc_free(mac_control_block); + return msg; + +free_ret: + talloc_free(mac_control_block); + msgb_free(msg); + return NULL; +} + +static int fill_rim_ran_info_req(const struct nacc_fsm_ctx *ctx, struct bssgp_ran_information_pdu *pdu) +{ + struct gprs_rlcmac_bts *bts = ctx->ms->bts; + + *pdu = (struct bssgp_ran_information_pdu){ + .routing_info_dest = { + .discr = BSSGP_RIM_ROUTING_INFO_GERAN, + .geran = { + .raid = { + .mcc = ctx->cgi_ps.rai.lac.plmn.mcc, + .mnc = ctx->cgi_ps.rai.lac.plmn.mnc, + .mnc_3_digits = ctx->cgi_ps.rai.lac.plmn.mnc_3_digits, + .lac = ctx->cgi_ps.rai.lac.lac, + .rac = ctx->cgi_ps.rai.rac, + }, + .cid = ctx->cgi_ps.cell_identity, + }, + }, + .routing_info_src = { + .discr = BSSGP_RIM_ROUTING_INFO_GERAN, + .geran = { + .raid = { + .mcc = bts->cgi_ps.rai.lac.plmn.mcc, + .mnc = bts->cgi_ps.rai.lac.plmn.mnc, + .mnc_3_digits = bts->cgi_ps.rai.lac.plmn.mnc_3_digits, + .lac = bts->cgi_ps.rai.lac.lac, + .rac = bts->cgi_ps.rai.rac, + }, + .cid = bts->cgi_ps.cell_identity, + }, + }, + .rim_cont_iei = BSSGP_IE_RI_REQ_RIM_CONTAINER, + .decoded_present = true, + .decoded = { + .req_rim_cont = { + .app_id = BSSGP_RAN_INF_APP_ID_NACC, + .seq_num = 1, + .pdu_ind = { + .ack_requested = 0, + .pdu_type_ext = RIM_PDU_TYPE_SING_REP, + }, + .prot_ver = 1, + .son_trans_app_id = NULL, + .son_trans_app_id_len = 0, + .u = { + .app_cont_nacc = { + .reprt_cell = ctx->cgi_ps, + }, + }, + }, + }, + }; + + return 0; +} + + +//////////////// +// FSM states // +//////////////// + +static void st_initial(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct nacc_fsm_ctx *ctx = (struct nacc_fsm_ctx *)fi->priv; + struct gprs_rlcmac_bts *bts = ctx->ms->bts; + Packet_Cell_Change_Notification_t *notif; + + switch (event) { + case NACC_EV_RX_CELL_CHG_NOTIFICATION: + notif = (Packet_Cell_Change_Notification_t *)data; + switch (notif->Target_Cell.UnionType) { + case 0: /* GSM */ + ctx->neigh_key.local_lac = bts->cgi_ps.rai.lac.lac; + ctx->neigh_key.local_ci = bts->cgi_ps.cell_identity; + ctx->neigh_key.tgt_arfcn = notif->Target_Cell.u.Target_Cell_GSM_Notif.ARFCN; + ctx->neigh_key.tgt_bsic = notif->Target_Cell.u.Target_Cell_GSM_Notif.BSIC; + nacc_fsm_state_chg(fi, NACC_ST_WAIT_RESOLVE_RAC_CI); + break; + default: + LOGPFSML(fi, LOGL_NOTICE, "TargetCell type=0x%x not supported\n", + notif->Target_Cell.UnionType); + osmo_fsm_inst_term(fi, OSMO_FSM_TERM_ERROR, NULL); + return; + } + break; + default: + OSMO_ASSERT(0); + } +} + +static void st_wait_resolve_rac_ci_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) +{ + struct nacc_fsm_ctx *ctx = (struct nacc_fsm_ctx *)fi->priv; + struct gprs_rlcmac_bts *bts = ctx->ms->bts; + struct gprs_pcu *pcu = bts->pcu; + const struct osmo_cell_global_id_ps *cgi_ps; + struct ctrl_cmd *cmd; + int rc; + + /* First try to find the value in the cache */ + cgi_ps = neigh_cache_lookup_value(pcu->neigh_cache, &ctx->neigh_key); + if (cgi_ps) { + ctx->cgi_ps = *cgi_ps; + nacc_fsm_state_chg(fi, NACC_ST_WAIT_REQUEST_SI); + return; + } + + /* CGI-PS not in cache, resolve it using BSC Neighbor Resolution CTRL interface */ + + LOGPFSML(fi, LOGL_DEBUG, "No CGI-PS found in cache, resolving " NEIGH_CACHE_ENTRY_KEY_FMT "...\n", + NEIGH_CACHE_ENTRY_KEY_ARGS(&ctx->neigh_key)); + + cmd = ctrl_cmd_create(ctx, CTRL_TYPE_GET); + if (!cmd) { + LOGPFSML(fi, LOGL_ERROR, "CTRL msg creation failed\n"); + goto err_term; + } + + cmd->id = talloc_asprintf(cmd, "1"); + cmd->variable = talloc_asprintf(cmd, "neighbor_resolve_cgi_ps_from_lac_ci.%d.%d.%d.%d", + ctx->neigh_key.local_lac, ctx->neigh_key.local_ci, + ctx->neigh_key.tgt_arfcn, ctx->neigh_key.tgt_bsic); + rc = ctrl_cmd_send(&ctx->neigh_ctrl_conn->write_queue, cmd); + if (rc) { + LOGPFSML(fi, LOGL_ERROR, "CTRL msg sent failed: %d\n", rc); + goto err_term; + } + + talloc_free(cmd); + return; + +err_term: + talloc_free(cmd); + osmo_fsm_inst_term(fi, OSMO_FSM_TERM_ERROR, NULL); +} + + +static void st_wait_resolve_rac_ci(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + switch (event) { + case NACC_EV_RX_CELL_CHG_NOTIFICATION: + break; + case NACC_EV_RX_RAC_CI: + /* Assumption: ctx->cgi_ps has been filled by caller of the event */ + nacc_fsm_state_chg(fi, NACC_ST_WAIT_REQUEST_SI); + break; + default: + OSMO_ASSERT(0); + } +} + +/* At this point, we expect correct tgt cell info to be already in ctx->cgi_ps */ +static void st_wait_request_si_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) +{ + struct nacc_fsm_ctx *ctx = (struct nacc_fsm_ctx *)fi->priv; + struct gprs_rlcmac_bts *bts = ctx->ms->bts; + struct gprs_pcu *pcu = bts->pcu; + struct bssgp_ran_information_pdu pdu; + const struct si_cache_value *si; + int rc; + + /* First check if we have SI info for the target cell in cache */ + si = si_cache_lookup_value(pcu->si_cache, &ctx->cgi_ps); + if (si) { + /* Copy info since cache can be deleted at any point */ + memcpy(&ctx->si_info, si, sizeof(ctx->si_info)); + /* Tell the PCU scheduler we are ready to go, from here one we + * are polled/driven by the scheduler */ + nacc_fsm_state_chg(fi, NACC_ST_TX_NEIGHBOUR_DATA); + return; + } + + /* SI info not in cache, resolve it using RIM procedure against SGSN */ + if (fill_rim_ran_info_req(ctx, &pdu) < 0) { + osmo_fsm_inst_term(fi, OSMO_FSM_TERM_ERROR, NULL); + return; + } + + rc = bssgp_tx_rim(&pdu, gprs_ns2_nse_nsei(ctx->ms->bts->nse)); + if (rc < 0) { + LOGPFSML(fi, LOGL_ERROR, "Failed transmitting RIM PDU: %d\n", rc); + osmo_fsm_inst_term(fi, OSMO_FSM_TERM_ERROR, NULL); + return; + } +} + + +static void st_wait_request_si(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct nacc_fsm_ctx *ctx = (struct nacc_fsm_ctx *)fi->priv; + struct si_cache_entry *entry; + + switch (event) { + case NACC_EV_RX_SI: + entry = (struct si_cache_entry *)data; + /* Copy info since cache can be deleted at any point */ + memcpy(&ctx->si_info, &entry->value, sizeof(ctx->si_info)); + /* Tell the PCU scheduler we are ready to go, from here one we + * are polled/driven by the scheduler */ + nacc_fsm_state_chg(fi, NACC_ST_TX_NEIGHBOUR_DATA); + break; + default: + OSMO_ASSERT(0); + } +} + +/* st_tx_neighbour_data_on_enter: + * At this point, we already received all required SI information to send stored + * in struct nacc_fsm_ctx. We now wait for scheduler to ask us to construct + * RLCMAC DL CTRL messages to move FSM states forward + */ + +static void st_tx_neighbour_data(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct nacc_fsm_ctx *ctx = (struct nacc_fsm_ctx *)fi->priv; + struct nacc_ev_create_rlcmac_msg_ctx *data_ctx; + bool all_si_info_sent; + + switch (event) { + case NACC_EV_CREATE_RLCMAC_MSG: + data_ctx = (struct nacc_ev_create_rlcmac_msg_ctx *)data; + data_ctx->msg = create_packet_neighbour_cell_data(ctx, data_ctx->tbf, &all_si_info_sent); + if (!data_ctx->msg) { + osmo_fsm_inst_term(fi, OSMO_FSM_TERM_ERROR, NULL); + return; + } + if (all_si_info_sent) /* DONE */ + nacc_fsm_state_chg(fi, NACC_ST_TX_CELL_CHG_CONTINUE); + break; + default: + OSMO_ASSERT(0); + } +} + +/* st_cell_cgh_continue_on_enter: + * At this point, we already sent all Pkt Cell Neighbour Change rlcmac + * blocks, and we only need to wait to be scheduled again to send PKT + * CELL CHANGE NOTIFICATION and then we are done + */ + +static void st_cell_cgh_continue(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct nacc_fsm_ctx *ctx = (struct nacc_fsm_ctx *)fi->priv; + struct nacc_ev_create_rlcmac_msg_ctx *data_ctx; + + switch (event) { + case NACC_EV_CREATE_RLCMAC_MSG: + data_ctx = (struct nacc_ev_create_rlcmac_msg_ctx *)data; + data_ctx->msg = create_packet_cell_chg_continue(ctx, data_ctx->tbf); + nacc_fsm_state_chg(fi, NACC_ST_DONE); + break; + default: + OSMO_ASSERT(0); + } +} + + +static void st_done_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) +{ + osmo_fsm_inst_term(fi, OSMO_FSM_TERM_REGULAR, NULL); +} + +static void nacc_fsm_cleanup(struct osmo_fsm_inst *fi, enum osmo_fsm_term_cause cause) +{ + struct nacc_fsm_ctx *ctx = (struct nacc_fsm_ctx *)fi->priv; + /* after cleanup() finishes, FSM termination calls osmo_fsm_inst_free, + so we need to avoid double-freeing it during ctx talloc free + destructor */ + talloc_reparent(ctx, ctx->ms, ctx->fi); + ctx->fi = NULL; + + /* remove references from owning MS and free entire ctx */ + ctx->ms->nacc = NULL; + talloc_free(ctx); +} + +static struct osmo_fsm_state nacc_fsm_states[] = { + [NACC_ST_INITIAL] = { + .in_event_mask = + X(NACC_EV_RX_CELL_CHG_NOTIFICATION), + .out_state_mask = + X(NACC_ST_WAIT_RESOLVE_RAC_CI), + .name = "INITIAL", + .action = st_initial, + }, + [NACC_ST_WAIT_RESOLVE_RAC_CI] = { + .in_event_mask = + X(NACC_EV_RX_RAC_CI), + .out_state_mask = + X(NACC_ST_WAIT_REQUEST_SI), + .name = "WAIT_RESOLVE_RAC_CI", + .onenter = st_wait_resolve_rac_ci_on_enter, + .action = st_wait_resolve_rac_ci, + }, + [NACC_ST_WAIT_REQUEST_SI] = { + .in_event_mask = + X(NACC_EV_RX_CELL_CHG_NOTIFICATION) | + X(NACC_EV_RX_SI), + .out_state_mask = + X(NACC_ST_TX_NEIGHBOUR_DATA), + .name = "WAIT_REQUEST_SI", + .onenter = st_wait_request_si_on_enter, + .action = st_wait_request_si, + }, + [NACC_ST_TX_NEIGHBOUR_DATA] = { + .in_event_mask = + X(NACC_EV_RX_CELL_CHG_NOTIFICATION) | + X(NACC_EV_RX_SI) | + X(NACC_EV_CREATE_RLCMAC_MSG), + .out_state_mask = + X(NACC_ST_TX_CELL_CHG_CONTINUE), + .name = "TX_NEIGHBOUR_DATA", + .action = st_tx_neighbour_data, + }, + [NACC_ST_TX_CELL_CHG_CONTINUE] = { + .in_event_mask = + X(NACC_EV_RX_CELL_CHG_NOTIFICATION) | + X(NACC_EV_RX_SI) | + X(NACC_EV_CREATE_RLCMAC_MSG), + .out_state_mask = + X(NACC_ST_DONE), + .name = "TX_CELL_CHG_CONTINUE", + .action = st_cell_cgh_continue, + }, + [NACC_ST_DONE] = { + .in_event_mask = 0, + .out_state_mask = 0, + .name = "DONE", + .onenter = st_done_on_enter, + }, +}; + +static struct osmo_fsm nacc_fsm = { + .name = "NACC", + .states = nacc_fsm_states, + .num_states = ARRAY_SIZE(nacc_fsm_states), + .cleanup = nacc_fsm_cleanup, + .log_subsys = DNACC, + .event_names = nacc_fsm_event_names, +}; + +static __attribute__((constructor)) void nacc_fsm_init(void) +{ + OSMO_ASSERT(osmo_fsm_register(&nacc_fsm) == 0); +} + +void nacc_fsm_ctrl_reply_cb(struct ctrl_handle *ctrl, struct ctrl_cmd *cmd, void *data) +{ + struct nacc_fsm_ctx *ctx = (struct nacc_fsm_ctx *)data; + char *tmp = NULL, *tok, *saveptr; + + LOGPFSML(ctx->fi, LOGL_NOTICE, "Received CTRL message: type=%d %s: %s\n", + cmd->type, cmd->variable, osmo_escape_str(cmd->reply, -1)); + + if (cmd->type != CTRL_TYPE_GET_REPLY || !cmd->reply) { + osmo_fsm_inst_term(ctx->fi, OSMO_FSM_TERM_ERROR, NULL); + return; + } + + /* TODO: Potentially validate cmd->variable contains same params as we + sent, and that cmd->id matches the original set. We may want to keep + the original cmd around by setting cmd->defer=1 when sending it. */ + + tmp = talloc_strdup(cmd, cmd->reply); + if (!tmp) + goto free_ret; + + if (!(tok = strtok_r(tmp, "-", &saveptr))) + goto free_ret; + ctx->cgi_ps.rai.lac.plmn.mcc = atoi(tok); + + if (!(tok = strtok_r(NULL, "-", &saveptr))) + goto free_ret; + ctx->cgi_ps.rai.lac.plmn.mnc = atoi(tok); + + if (!(tok = strtok_r(NULL, "-", &saveptr))) + goto free_ret; + ctx->cgi_ps.rai.lac.lac = atoi(tok); + + if (!(tok = strtok_r(NULL, "-", &saveptr))) + goto free_ret; + ctx->cgi_ps.rai.rac = atoi(tok); + + if (!(tok = strtok_r(NULL, "\0", &saveptr))) + goto free_ret; + ctx->cgi_ps.cell_identity = atoi(tok); + + /* Cache the cgi_ps so we can avoid requesting again same resolution for a while */ + neigh_cache_add(ctx->ms->bts->pcu->neigh_cache, &ctx->neigh_key, &ctx->cgi_ps); + + osmo_fsm_inst_dispatch(ctx->fi, NACC_EV_RX_RAC_CI, NULL); + return; + +free_ret: + talloc_free(tmp); + osmo_fsm_inst_term(ctx->fi, OSMO_FSM_TERM_ERROR, NULL); + return; +} + +static int nacc_fsm_ctx_talloc_destructor(struct nacc_fsm_ctx *ctx) +{ + if (ctx->fi) { + osmo_fsm_inst_free(ctx->fi); + ctx->fi = NULL; + } + + if (ctx->neigh_ctrl_conn) { + if (ctx->neigh_ctrl_conn->write_queue.bfd.fd != -1) { + osmo_wqueue_clear(&ctx->neigh_ctrl_conn->write_queue); + osmo_fd_unregister(&ctx->neigh_ctrl_conn->write_queue.bfd); + close(ctx->neigh_ctrl_conn->write_queue.bfd.fd); + ctx->neigh_ctrl_conn->write_queue.bfd.fd = -1; + } + } + + return 0; +} + +struct nacc_fsm_ctx *nacc_fsm_alloc(struct GprsMs* ms) +{ + struct gprs_rlcmac_bts *bts = ms->bts; + struct gprs_pcu *pcu = bts->pcu; + struct nacc_fsm_ctx *ctx = talloc_zero(ms, struct nacc_fsm_ctx); + char buf[64]; + int rc; + + talloc_set_destructor(ctx, nacc_fsm_ctx_talloc_destructor); + + ctx->ms = ms; + + snprintf(buf, sizeof(buf), "TLLI-0x%08x", ms_tlli(ms)); + ctx->fi = osmo_fsm_inst_alloc(&nacc_fsm, ctx, ctx, LOGL_INFO, buf); + if (!ctx->fi) + goto free_ret; + + ctx->neigh_ctrl = ctrl_handle_alloc(ctx, ctx, NULL); + ctx->neigh_ctrl->reply_cb = nacc_fsm_ctrl_reply_cb; + ctx->neigh_ctrl_conn = osmo_ctrl_conn_alloc(ctx, ctx->neigh_ctrl); + if (!ctx->neigh_ctrl_conn) + goto free_ret; + llist_add(&ctx->neigh_ctrl_conn->list_entry, &ctx->neigh_ctrl->ccon_list); + + rc = osmo_sock_init2_ofd(&ctx->neigh_ctrl_conn->write_queue.bfd, + AF_UNSPEC, SOCK_STREAM, IPPROTO_TCP, + NULL, 0, pcu->vty.neigh_ctrl_addr, pcu->vty.neigh_ctrl_port, + OSMO_SOCK_F_CONNECT); + if (rc < 0) { + LOGP(DNACC, LOGL_ERROR, "Can't connect to CTRL @ %s:%u\n", + pcu->vty.neigh_ctrl_addr, pcu->vty.neigh_ctrl_port); + goto free_ret; + } + + return ctx; +free_ret: + talloc_free(ctx); + return NULL; +} diff --git a/src/nacc_fsm.h b/src/nacc_fsm.h new file mode 100644 index 0000000..9107daf --- /dev/null +++ b/src/nacc_fsm.h @@ -0,0 +1,64 @@ +/* nacc_fsm.h + * + * Copyright (C) 2021 by sysmocom - s.f.m.c. GmbH + * Author: Pau Espin Pedrol + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ +#pragma once + +#include +#include + +#include + +struct GprsMs; +struct gprs_rlcmac_tbf; + +enum nacc_fsm_event { + NACC_EV_RX_CELL_CHG_NOTIFICATION, /* data: Packet_Cell_Change_Notification_t* */ + NACC_EV_RX_RAC_CI, /* no data passed, RAC_CI became available in neigh_cache */ + NACC_EV_RX_SI, /* data: struct si_cache_entry* */ + NACC_EV_CREATE_RLCMAC_MSG, /* data: struct nacc_ev_create_rlcmac_msg_ctx* */ +}; + +enum nacc_fsm_states { + NACC_ST_INITIAL, + NACC_ST_WAIT_RESOLVE_RAC_CI, + NACC_ST_WAIT_REQUEST_SI, + NACC_ST_TX_NEIGHBOUR_DATA, + NACC_ST_TX_CELL_CHG_CONTINUE, + NACC_ST_DONE, +}; + +struct nacc_fsm_ctx { + struct osmo_fsm_inst *fi; + struct GprsMs* ms; /* back pointer */ + struct ctrl_handle *neigh_ctrl; + struct ctrl_connection *neigh_ctrl_conn; + struct neigh_cache_entry_key neigh_key; /* target cell info from MS */ + struct osmo_cell_global_id_ps cgi_ps; /* target cell info resolved from req_{arfcn+bsic} */ + struct si_cache_value si_info; /* SI info resolved from SGSN, to be sent to MS */ + size_t si_info_bytes_sent; /* How many bytes out of si_info->si_len were already sent to MS */ + size_t container_idx; /* Next container_idx to assign when sending Packet Neighbor Data message */ +}; + +/* passed as data in NACC_EV_CREATE_RLCMAC_MSG */ +struct nacc_ev_create_rlcmac_msg_ctx { + struct gprs_rlcmac_tbf *tbf; /* target tbf to create messages for */ + struct msgb *msg; /* to be filled by FSM during event processing */ +}; + +struct nacc_fsm_ctx *nacc_fsm_alloc(struct GprsMs* ms); diff --git a/src/neigh_cache.c b/src/neigh_cache.c new file mode 100644 index 0000000..a4bdfbe --- /dev/null +++ b/src/neigh_cache.c @@ -0,0 +1,290 @@ +/* si_cache.c + * + * Copyright (C) 2021 by sysmocom - s.f.m.c. GmbH + * Author: Pau Espin Pedrol + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + +#include +#include +#include + +#include + +#include +#include + +#define KEEP_TIME_DEFAULT_SEC 5 + +/*TODO: add a timer to the_pcu T_defs, pass value to struct neigh_cache instead of KEEP_TIME_DEFAULT_SEC */ + +static inline bool neigh_cache_entry_key_eq(const struct neigh_cache_entry_key *a, + const struct neigh_cache_entry_key *b) +{ + return a->local_lac == b->local_lac && + a->local_ci == b->local_ci && + a->tgt_arfcn == b->tgt_arfcn && + a->tgt_bsic == b->tgt_bsic; +} + +static void neigh_cache_schedule_cleanup(struct neigh_cache *cache); +static void neigh_cache_cleanup_cb(void *data) +{ + struct timespec now, threshold; + struct neigh_cache *cache = (struct neigh_cache *)data; + struct neigh_cache_entry *it, *tmp; + + osmo_clock_gettime(CLOCK_MONOTONIC, &now); + + /* Instead of adding keep_time_intval to each, substract it from now once */ + timespecsub(&now, &cache->keep_time_intval, &threshold); + + llist_for_each_entry_safe(it, tmp, &cache->list, list) { + if (timespeccmp(&threshold, &it->update_ts, <)) + break; + LOGP(DNACC, LOGL_DEBUG, + "neigh_cache: Removing entry " NEIGH_CACHE_ENTRY_KEY_FMT " => %s\n", + NEIGH_CACHE_ENTRY_KEY_ARGS(&it->key), osmo_cgi_ps_name(&it->value)); + llist_del(&it->list); + talloc_free(it); + } + + neigh_cache_schedule_cleanup(cache); +} + +static void neigh_cache_schedule_cleanup(struct neigh_cache *cache) +{ + struct neigh_cache_entry *it; + struct timespec now, threshold, result; + + /* First item is the one with oldest update_ts */ + it = llist_first_entry_or_null(&cache->list, struct neigh_cache_entry, list); + if (!it) + return; + + osmo_clock_gettime(CLOCK_MONOTONIC, &now); + + timespecadd(&it->update_ts, &cache->keep_time_intval, &threshold); + + if (timespeccmp(&now, &threshold, >=)) { + /* Too late, let's flush asynchonously so newly added isn't + * immediatelly freed before return. */ + result = (struct timespec){ .tv_sec = 0, .tv_nsec = 0 }; + } else { + timespecsub(&threshold, &now, &result); + } + osmo_timer_schedule(&cache->cleanup_timer, result.tv_sec, result.tv_nsec*1000); +} + +struct neigh_cache *neigh_cache_alloc(void *ctx) +{ + struct neigh_cache *cache = talloc_zero(ctx, struct neigh_cache); + OSMO_ASSERT(cache); + INIT_LLIST_HEAD(&cache->list); + osmo_timer_setup(&cache->cleanup_timer, neigh_cache_cleanup_cb, cache); + cache->keep_time_intval = (struct timespec){ .tv_sec = KEEP_TIME_DEFAULT_SEC, .tv_nsec = 0}; + return cache; + +} +struct neigh_cache_entry *neigh_cache_add(struct neigh_cache *cache, + const struct neigh_cache_entry_key *key, + const struct osmo_cell_global_id_ps *value) +{ + struct neigh_cache_entry *it; + + /* First check if it already exists. If so, simply update timer+value */ + it = neigh_cache_lookup_entry(cache, key); + if (!it) { + LOGP(DNACC, LOGL_DEBUG, + "neigh_cache: Inserting new entry " NEIGH_CACHE_ENTRY_KEY_FMT " => %s\n", + NEIGH_CACHE_ENTRY_KEY_ARGS(key), osmo_cgi_ps_name(value)); + it = talloc_zero(cache, struct neigh_cache_entry); + OSMO_ASSERT(it); + memcpy(&it->key, key, sizeof(it->key)); + } else { + LOGP(DNACC, LOGL_DEBUG, + "neigh_cache: Updating entry " NEIGH_CACHE_ENTRY_KEY_FMT " => (%s -> %s)\n", + NEIGH_CACHE_ENTRY_KEY_ARGS(key), osmo_cgi_ps_name(&it->value), osmo_cgi_ps_name2(value)); + /* remove item, we'll add it to the end to have them sorted by last update */ + llist_del(&it->list); + } + + memcpy(&it->value, value, sizeof(it->value)); + OSMO_ASSERT(osmo_clock_gettime(CLOCK_MONOTONIC, &it->update_ts) == 0); + llist_add_tail(&it->list, &cache->list); + neigh_cache_schedule_cleanup(cache); + return it; +} + +struct neigh_cache_entry *neigh_cache_lookup_entry(struct neigh_cache *cache, + const struct neigh_cache_entry_key *key) +{ + struct neigh_cache_entry *tmp; + llist_for_each_entry(tmp, &cache->list, list) { + if (neigh_cache_entry_key_eq(&tmp->key, key)) + return tmp; + } + return NULL; +} + +const struct osmo_cell_global_id_ps *neigh_cache_lookup_value(struct neigh_cache *cache, + const struct neigh_cache_entry_key *key) +{ + struct neigh_cache_entry *it = neigh_cache_lookup_entry(cache, key); + if (it) + return &it->value; + return NULL; +} + +void neigh_cache_free(struct neigh_cache *cache) +{ + struct neigh_cache_entry *it, *tmp; + if (!cache) + return; + + llist_for_each_entry_safe(it, tmp, &cache->list, list) { + llist_del(&it->list); + talloc_free(it); + } + osmo_timer_del(&cache->cleanup_timer); + talloc_free(cache); +} + + +//////////////////// +// SI CACHE +/////////////////// + +/*TODO: add a timer to the_pcu T_defs, pass value to struct neigh_cache instead of KEEP_TIME_DEFAULT_SEC */ + +static void si_cache_schedule_cleanup(struct si_cache *cache); +static void si_cache_cleanup_cb(void *data) +{ + struct timespec now, threshold; + struct si_cache *cache = (struct si_cache *)data; + struct si_cache_entry *it, *tmp; + + osmo_clock_gettime(CLOCK_MONOTONIC, &now); + + /* Instead of adding keep_time_intval to each, substract it from now once */ + timespecsub(&now, &cache->keep_time_intval, &threshold); + + llist_for_each_entry_safe(it, tmp, &cache->list, list) { + if (timespeccmp(&threshold, &it->update_ts, <)) + break; + LOGP(DNACC, LOGL_DEBUG, "si_cache: Removing entry %s\n", + osmo_cgi_ps_name(&it->key)); + llist_del(&it->list); + talloc_free(it); + } + + si_cache_schedule_cleanup(cache); +} + +static void si_cache_schedule_cleanup(struct si_cache *cache) +{ + struct si_cache_entry *it; + struct timespec now, threshold, result; + + /* First item is the one with oldest update_ts */ + it = llist_first_entry_or_null(&cache->list, struct si_cache_entry, list); + if (!it) + return; + + osmo_clock_gettime(CLOCK_MONOTONIC, &now); + + timespecadd(&it->update_ts, &cache->keep_time_intval, &threshold); + + if (timespeccmp(&now, &threshold, >=)) { + /* Too late, let's flush asynchonously so newly added isn't + * immediatelly freed before return. */ + result = (struct timespec){ .tv_sec = 0, .tv_nsec = 0 }; + } else { + timespecsub(&threshold, &now, &result); + } + osmo_timer_schedule(&cache->cleanup_timer, result.tv_sec, result.tv_nsec*1000); +} + +struct si_cache *si_cache_alloc(void *ctx) +{ + struct si_cache *cache = talloc_zero(ctx, struct si_cache); + OSMO_ASSERT(cache); + INIT_LLIST_HEAD(&cache->list); + osmo_timer_setup(&cache->cleanup_timer, si_cache_cleanup_cb, cache); + cache->keep_time_intval = (struct timespec){ .tv_sec = KEEP_TIME_DEFAULT_SEC, .tv_nsec = 0}; + return cache; +} +struct si_cache_entry *si_cache_add(struct si_cache *cache, + const struct osmo_cell_global_id_ps *key, + const struct si_cache_value *value) +{ + struct si_cache_entry *it; + + /* First check if it already exists. If so, simply update timer+value */ + it = si_cache_lookup_entry(cache, key); + if (!it) { + LOGP(DNACC, LOGL_DEBUG, "si_cache: Inserting new entry %s\n", + osmo_cgi_ps_name(key)); + it = talloc_zero(cache, struct si_cache_entry); + OSMO_ASSERT(it); + memcpy(&it->key, key, sizeof(it->key)); + } else { + LOGP(DNACC, LOGL_DEBUG, "si_cache: Updating entry %s\n", + osmo_cgi_ps_name(&it->key)); + /* remove item, we'll add it to the end to have them sorted by last update */ + llist_del(&it->list); + } + + memcpy(&it->value, value, sizeof(it->value)); + OSMO_ASSERT(osmo_clock_gettime(CLOCK_MONOTONIC, &it->update_ts) == 0); + llist_add_tail(&it->list, &cache->list); + si_cache_schedule_cleanup(cache); + return it; +} + +struct si_cache_entry *si_cache_lookup_entry(struct si_cache *cache, + const struct osmo_cell_global_id_ps *key) +{ + struct si_cache_entry *tmp; + llist_for_each_entry(tmp, &cache->list, list) { + if (osmo_cgi_ps_cmp(&tmp->key, key) == 0) + return tmp; + } + return NULL; +} + +const struct si_cache_value *si_cache_lookup_value(struct si_cache *cache, + const struct osmo_cell_global_id_ps *key) +{ + struct si_cache_entry *it = si_cache_lookup_entry(cache, key); + if (it) + return &it->value; + return NULL; +} + +void si_cache_free(struct si_cache *cache) +{ + struct si_cache_entry *it, *tmp; + if (!cache) + return; + + llist_for_each_entry_safe(it, tmp, &cache->list, list) { + llist_del(&it->list); + talloc_free(it); + } + osmo_timer_del(&cache->cleanup_timer); + talloc_free(cache); +} diff --git a/src/neigh_cache.h b/src/neigh_cache.h new file mode 100644 index 0000000..3fd56b7 --- /dev/null +++ b/src/neigh_cache.h @@ -0,0 +1,101 @@ +/* neigh_cache.h + * + * Copyright (C) 2021 by sysmocom - s.f.m.c. GmbH + * Author: Pau Espin Pedrol + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ +#pragma once + +#include +#include + +#include +#include + +#include +#include + +//////////////////// +// NEIGH CACHE +/////////////////// + +/* ARFC+BSIC -> CGI PS cache */ +struct neigh_cache { + struct llist_head list; /* list of neigh_cache_entry items */ + struct osmo_timer_list cleanup_timer; /* Timer removing too-old entries */ + struct timespec keep_time_intval; +}; + +struct neigh_cache_entry_key { + uint16_t local_lac; + uint16_t local_ci; + uint16_t tgt_arfcn; + uint8_t tgt_bsic; +}; +#define NEIGH_CACHE_ENTRY_KEY_FMT "%" PRIu16 "-%" PRIu16 "-%" PRIu16 "-%" PRIu8 +#define NEIGH_CACHE_ENTRY_KEY_ARGS(key) (key)->local_lac, (key)->local_ci, (key)->tgt_arfcn, (key)->tgt_bsic + +struct neigh_cache_entry { + struct llist_head list; /* to be included in neigh_cache->list */ + struct timespec update_ts; + struct neigh_cache_entry_key key; + struct osmo_cell_global_id_ps value; +}; + +struct neigh_cache *neigh_cache_alloc(void *ctx); +struct neigh_cache_entry *neigh_cache_add(struct neigh_cache *cache, + const struct neigh_cache_entry_key *key, + const struct osmo_cell_global_id_ps *value); +struct neigh_cache_entry *neigh_cache_lookup_entry(struct neigh_cache *cache, + const struct neigh_cache_entry_key *key); +const struct osmo_cell_global_id_ps *neigh_cache_lookup_value(struct neigh_cache *cache, + const struct neigh_cache_entry_key *key); +void neigh_cache_free(struct neigh_cache *cache); + + +//////////////////// +// SI CACHE +/////////////////// + +/* CGI-PS-> SI cache */ +struct si_cache { + struct llist_head list; /* list of si_cache_entry items */ + struct osmo_timer_list cleanup_timer; /* Timer removing too-old entries */ + struct timespec keep_time_intval; +}; + +struct si_cache_value { + uint8_t si_buf[BSSGP_RIM_PSI_LEN * 127]; /* 3GPP TS 48.018 11.3.63.2.1 */ + size_t si_len; + bool type_psi; +}; + +struct si_cache_entry { + struct llist_head list; /* to be included in si_cache->list */ + struct timespec update_ts; + struct osmo_cell_global_id_ps key; + struct si_cache_value value; +}; + +struct si_cache *si_cache_alloc(void *ctx); +struct si_cache_entry *si_cache_add(struct si_cache *cache, + const struct osmo_cell_global_id_ps *key, + const struct si_cache_value *value); +struct si_cache_entry *si_cache_lookup_entry(struct si_cache *cache, + const struct osmo_cell_global_id_ps *key); +const struct si_cache_value *si_cache_lookup_value(struct si_cache *cache, + const struct osmo_cell_global_id_ps *key); +void si_cache_free(struct si_cache *cache); diff --git a/src/pcu_vty.c b/src/pcu_vty.c index 4b502c9..8f97f30 100644 --- a/src/pcu_vty.c +++ b/src/pcu_vty.c @@ -14,6 +14,7 @@ #include #include #include +#include #include #include #include "pcu_vty.h" @@ -1018,6 +1019,22 @@ return CMD_SUCCESS; } +DEFUN(cfg_neighbor_resolution, cfg_neighbor_resolution_cmd, + "neighbor resolution " VTY_IPV46_CMD " [<0-65535>]", + "Manage local and remote-BSS neighbor cells\n" + "Connect to Neighbor Resolution Service (CTRL interface) to given ip and port\n" + "IPv4 address to connect to\n" "IPv6 address to connect to\n" + "Port to connect to (default 4248)\n") +{ + osmo_talloc_replace_string(the_pcu, &the_pcu->vty.neigh_ctrl_addr, argv[0]); + if (argc > 1) + the_pcu->vty.neigh_ctrl_port = atoi(argv[1]); + else + the_pcu->vty.neigh_ctrl_port = OSMO_CTRL_PORT_BSC_NEIGH; + return CMD_SUCCESS; +} + + DEFUN(show_bts_timer, show_bts_timer_cmd, "show bts-timer " OSMO_TDEF_VTY_ARG_T_OPTIONAL, SHOW_STR "Show BTS controlled timers\n" @@ -1220,6 +1237,7 @@ install_element(PCU_NODE, &cfg_pcu_no_gsmtap_categ_cmd); install_element(PCU_NODE, &cfg_pcu_sock_cmd); install_element(PCU_NODE, &cfg_pcu_gb_dialect_cmd); + install_element(PCU_NODE, &cfg_neighbor_resolution_cmd); install_element(PCU_NODE, &cfg_pcu_timer_cmd); install_element_ve(&show_bts_stats_cmd); diff --git a/src/pdch.cpp b/src/pdch.cpp index 5a329f3..2028ba2 100644 --- a/src/pdch.cpp +++ b/src/pdch.cpp @@ -685,6 +685,33 @@ gprs_rlcmac_meas_rep(ms, report); } +void gprs_rlcmac_pdch::rcv_cell_change_notification(Packet_Cell_Change_Notification_t *notif, + uint32_t fn, struct pcu_l1_meas *meas) +{ + GprsMs *ms; + + bts_do_rate_ctr_inc(bts(), CTR_PKT_CELL_CHG_NOTIFICATION); + + if (notif->Global_TFI.UnionType == 0) { + struct gprs_rlcmac_ul_tbf *ul_tbf = ul_tbf_by_tfi(notif->Global_TFI.u.UPLINK_TFI); + if (!ul_tbf) { + LOGP(DRLCMAC, LOGL_NOTICE, "UL TBF TFI=0x%2x not found\n", notif->Global_TFI.u.UPLINK_TFI); + return; + } + ms = ul_tbf->ms(); + } else if (notif->Global_TFI.UnionType == 1) { + struct gprs_rlcmac_dl_tbf *dl_tbf = dl_tbf_by_tfi(notif->Global_TFI.u.DOWNLINK_TFI); + if (!dl_tbf) { + LOGP(DRLCMAC, LOGL_NOTICE, "DL TBF TFI=0x%2x not found\n", notif->Global_TFI.u.DOWNLINK_TFI); + return; + } + ms = dl_tbf->ms(); + } else { OSMO_ASSERT(0); } + + ms_update_l1_meas(ms, meas); + ms_nacc_start(ms, notif); +} + /* Received Uplink RLC control block. */ int gprs_rlcmac_pdch::rcv_control_block(const uint8_t *data, uint8_t data_len, uint32_t fn, struct pcu_l1_meas *meas, enum CodingScheme cs) @@ -734,6 +761,9 @@ case MT_PACKET_UPLINK_DUMMY_CONTROL_BLOCK: /* ignoring it. change the SI to not force sending these? */ break; + case MT_PACKET_CELL_CHANGE_NOTIFICATION: + rcv_cell_change_notification(&ul_control_block->u.Packet_Cell_Change_Notification, fn, meas); + break; default: bts_do_rate_ctr_inc(bts(), CTR_DECODE_ERRORS); LOGP(DRLCMAC, LOGL_NOTICE, diff --git a/src/pdch.h b/src/pdch.h index 8871986..d596531 100644 --- a/src/pdch.h +++ b/src/pdch.h @@ -139,6 +139,7 @@ void rcv_control_egprs_dl_ack_nack(EGPRS_PD_AckNack_t *, uint32_t fn, struct pcu_l1_meas *meas); void rcv_resource_request(Packet_Resource_Request_t *t, uint32_t fn, struct pcu_l1_meas *meas); void rcv_measurement_report(Packet_Measurement_Report_t *t, uint32_t fn); + void rcv_cell_change_notification(Packet_Cell_Change_Notification_t *, uint32_t fn, struct pcu_l1_meas *meas); gprs_rlcmac_tbf *tbf_from_list_by_tfi( LListHead *tbf_list, uint8_t tfi, enum gprs_rlcmac_tbf_direction dir); diff --git a/src/tbf.cpp b/src/tbf.cpp index 0fec476..54ae4fa 100644 --- a/src/tbf.cpp +++ b/src/tbf.cpp @@ -1198,3 +1198,8 @@ { return tbf->is_tfi_assigned(); } + +uint8_t tbf_tfi(const struct gprs_rlcmac_tbf *tbf) +{ + return tbf->tfi(); +} diff --git a/src/tbf.h b/src/tbf.h index 983d38c..a2c4747 100644 --- a/src/tbf.h +++ b/src/tbf.h @@ -204,6 +204,7 @@ uint8_t tbf_dl_slots(const struct gprs_rlcmac_tbf *tbf); uint8_t tbf_ul_slots(const struct gprs_rlcmac_tbf *tbf); bool tbf_is_tfi_assigned(const struct gprs_rlcmac_tbf *tbf); +uint8_t tbf_tfi(const struct gprs_rlcmac_tbf *tbf); int tbf_assign_control_ts(struct gprs_rlcmac_tbf *tbf); #ifdef __cplusplus } diff --git a/tests/Makefile.am b/tests/Makefile.am index c599636..a7771b9 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -1,4 +1,4 @@ -AM_CPPFLAGS = $(STD_DEFINES_AND_INCLUDES) $(LIBOSMOCORE_CFLAGS) $(LIBOSMOGB_CFLAGS) $(LIBOSMOGSM_CFLAGS) -I$(top_srcdir)/src/ -I$(top_srcdir)/include/ +AM_CPPFLAGS = $(STD_DEFINES_AND_INCLUDES) $(LIBOSMOCORE_CFLAGS) $(LIBOSMOCTRL_CFLAGS) $(LIBOSMOGB_CFLAGS) $(LIBOSMOGSM_CFLAGS) -I$(top_srcdir)/src/ -I$(top_srcdir)/include/ AM_LDFLAGS = -lrt -no-install check_PROGRAMS = rlcmac/RLCMACTest alloc/AllocTest alloc/MslotTest tbf/TbfTest types/TypesTest ms/MsTest llist/LListTest llc/LlcTest codel/codel_test edge/EdgeTest bitcomp/BitcompTest fn/FnTest app_info/AppInfoTest @@ -15,6 +15,7 @@ $(top_builddir)/src/libgprs.la \ $(LIBOSMOGB_LIBS) \ $(LIBOSMOGSM_LIBS) \ + $(LIBOSMOCTRL_LIBS) \ $(LIBOSMOCORE_LIBS) \ $(COMMON_LA) @@ -23,6 +24,7 @@ $(top_builddir)/src/libgprs.la \ $(LIBOSMOGB_LIBS) \ $(LIBOSMOGSM_LIBS) \ + $(LIBOSMOCTRL_LIBS) \ $(LIBOSMOCORE_LIBS) \ $(COMMON_LA) @@ -31,6 +33,7 @@ $(top_builddir)/src/libgprs.la \ $(LIBOSMOGB_LIBS) \ $(LIBOSMOGSM_LIBS) \ + $(LIBOSMOCTRL_LIBS) \ $(LIBOSMOCORE_LIBS) \ $(COMMON_LA) tbf_TbfTest_LDFLAGS = -Wl,--wrap=pcu_sock_send @@ -38,6 +41,7 @@ bitcomp_BitcompTest_SOURCES = bitcomp/BitcompTest.cpp ../src/egprs_rlc_compression.cpp bitcomp_BitcompTest_LDADD = \ $(top_builddir)/src/libgprs.la \ + $(LIBOSMOCTRL_LIBS) \ $(LIBOSMOCORE_LIBS) \ $(COMMON_LA) @@ -46,6 +50,7 @@ $(top_builddir)/src/libgprs.la \ $(LIBOSMOGB_LIBS) \ $(LIBOSMOGSM_LIBS) \ + $(LIBOSMOCTRL_LIBS) \ $(LIBOSMOCORE_LIBS) \ $(COMMON_LA) @@ -56,6 +61,7 @@ $(top_builddir)/src/libgprs.la \ $(LIBOSMOGB_LIBS) \ $(LIBOSMOGSM_LIBS) \ + $(LIBOSMOCTRL_LIBS) \ $(LIBOSMOCORE_LIBS) \ $(COMMON_LA) @@ -64,6 +70,7 @@ $(top_builddir)/src/libgprs.la \ $(LIBOSMOGB_LIBS) \ $(LIBOSMOGSM_LIBS) \ + $(LIBOSMOCTRL_LIBS) \ $(LIBOSMOCORE_LIBS) \ $(COMMON_LA) @@ -72,6 +79,7 @@ $(top_builddir)/src/libgprs.la \ $(LIBOSMOGB_LIBS) \ $(LIBOSMOGSM_LIBS) \ + $(LIBOSMOCTRL_LIBS) \ $(LIBOSMOCORE_LIBS) \ $(COMMON_LA) @@ -83,6 +91,7 @@ $(top_builddir)/src/libgprs.la \ $(LIBOSMOGB_LIBS) \ $(LIBOSMOGSM_LIBS) \ + $(LIBOSMOCTRL_LIBS) \ $(LIBOSMOCORE_LIBS) \ $(COMMON_LA) @@ -97,6 +106,7 @@ codel_codel_test_SOURCES = codel/codel_test.c codel_codel_test_LDADD = \ $(top_builddir)/src/libgprs.la \ + $(LIBOSMOCTRL_LIBS) \ $(LIBOSMOCORE_LIBS) \ $(COMMON_LA) @@ -105,6 +115,7 @@ $(top_builddir)/src/libgprs.la \ $(LIBOSMOGB_LIBS) \ $(LIBOSMOGSM_LIBS) \ + $(LIBOSMOCTRL_LIBS) \ $(LIBOSMOCORE_LIBS) \ $(COMMON_LA) @@ -113,6 +124,7 @@ $(top_builddir)/src/libgprs.la \ $(LIBOSMOGB_LIBS) \ $(LIBOSMOGSM_LIBS) \ + $(LIBOSMOCTRL_LIBS) \ $(LIBOSMOCORE_LIBS) \ $(COMMON_LA) -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22385 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Id35f40d05f3e081f32fddbf1fa34cb338db452ca Gerrit-Change-Number: 22385 Gerrit-PatchSet: 12 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 14:04:59 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 29 Jan 2021 14:04:59 +0000 Subject: Change in osmo-pcu[master]: NACC: Fix crash freeing struct if CTRL conn was refused during alloc In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22489 ) Change subject: NACC: Fix crash freeing struct if CTRL conn was refused during alloc ...................................................................... NACC: Fix crash freeing struct if CTRL conn was refused during alloc Older versions of osmo_ctrl_conn_alloc() may not properly initialize write_queue.bfd.fd to -1, which means if osmo_sock_init2_ofd() failed during nacc_fsm_alloc(), the destructor would wrongly enter the conditon where the whole structure is set and unregister the unregistered fd. Related: libosmocore Change-Id I98f744d2880fbb883719cdf1d3eb31f2b22a13b6 Related: SYS#4909 Change-Id: I253bd9087b1f7ab039aa1127e9dc586f5106905a --- M src/nacc_fsm.c 1 file changed, 3 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved fixeria: Looks good to me, but someone else must approve diff --git a/src/nacc_fsm.c b/src/nacc_fsm.c index 0a20ae6..b8350a6 100644 --- a/src/nacc_fsm.c +++ b/src/nacc_fsm.c @@ -623,6 +623,9 @@ ctx->neigh_ctrl_conn = osmo_ctrl_conn_alloc(ctx, ctx->neigh_ctrl); if (!ctx->neigh_ctrl_conn) goto free_ret; + /* Older versions of osmo_ctrl_conn_alloc didn't properly initialize fd to -1, + * so make sure to do it here otherwise fd may be valid fd 0 and cause trouble */ + ctx->neigh_ctrl_conn->write_queue.bfd.fd = -1; llist_add(&ctx->neigh_ctrl_conn->list_entry, &ctx->neigh_ctrl->ccon_list); rc = osmo_sock_init2_ofd(&ctx->neigh_ctrl_conn->write_queue.bfd, -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22489 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I253bd9087b1f7ab039aa1127e9dc586f5106905a Gerrit-Change-Number: 22489 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 14:04:59 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 29 Jan 2021 14:04:59 +0000 Subject: Change in osmo-pcu[master]: NACC: delay CTRL conn socket init until it's needed In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22490 ) Change subject: NACC: delay CTRL conn socket init until it's needed ...................................................................... NACC: delay CTRL conn socket init until it's needed This way, we don't open a socket and do the IPA handshake in the event the request is already cached. Related: SYS#4909 Change-Id: Ib1ea85e1196c8b9dc40c8837ab5d4a54f2a1f2d4 --- M src/nacc_fsm.c 1 file changed, 11 insertions(+), 14 deletions(-) Approvals: laforge: Looks good to me, approved fixeria: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/nacc_fsm.c b/src/nacc_fsm.c index b8350a6..5e8d51b 100644 --- a/src/nacc_fsm.c +++ b/src/nacc_fsm.c @@ -279,7 +279,7 @@ struct gprs_rlcmac_bts *bts = ctx->ms->bts; struct gprs_pcu *pcu = bts->pcu; const struct osmo_cell_global_id_ps *cgi_ps; - struct ctrl_cmd *cmd; + struct ctrl_cmd *cmd = NULL; int rc; /* First try to find the value in the cache */ @@ -295,6 +295,16 @@ LOGPFSML(fi, LOGL_DEBUG, "No CGI-PS found in cache, resolving " NEIGH_CACHE_ENTRY_KEY_FMT "...\n", NEIGH_CACHE_ENTRY_KEY_ARGS(&ctx->neigh_key)); + rc = osmo_sock_init2_ofd(&ctx->neigh_ctrl_conn->write_queue.bfd, + AF_UNSPEC, SOCK_STREAM, IPPROTO_TCP, + NULL, 0, pcu->vty.neigh_ctrl_addr, pcu->vty.neigh_ctrl_port, + OSMO_SOCK_F_CONNECT); + if (rc < 0) { + LOGPFSML(fi, LOGL_ERROR, "Can't connect to CTRL @ %s:%u\n", + pcu->vty.neigh_ctrl_addr, pcu->vty.neigh_ctrl_port); + goto err_term; + } + cmd = ctrl_cmd_create(ctx, CTRL_TYPE_GET); if (!cmd) { LOGPFSML(fi, LOGL_ERROR, "CTRL msg creation failed\n"); @@ -603,11 +613,8 @@ struct nacc_fsm_ctx *nacc_fsm_alloc(struct GprsMs* ms) { - struct gprs_rlcmac_bts *bts = ms->bts; - struct gprs_pcu *pcu = bts->pcu; struct nacc_fsm_ctx *ctx = talloc_zero(ms, struct nacc_fsm_ctx); char buf[64]; - int rc; talloc_set_destructor(ctx, nacc_fsm_ctx_talloc_destructor); @@ -628,16 +635,6 @@ ctx->neigh_ctrl_conn->write_queue.bfd.fd = -1; llist_add(&ctx->neigh_ctrl_conn->list_entry, &ctx->neigh_ctrl->ccon_list); - rc = osmo_sock_init2_ofd(&ctx->neigh_ctrl_conn->write_queue.bfd, - AF_UNSPEC, SOCK_STREAM, IPPROTO_TCP, - NULL, 0, pcu->vty.neigh_ctrl_addr, pcu->vty.neigh_ctrl_port, - OSMO_SOCK_F_CONNECT); - if (rc < 0) { - LOGP(DNACC, LOGL_ERROR, "Can't connect to CTRL @ %s:%u\n", - pcu->vty.neigh_ctrl_addr, pcu->vty.neigh_ctrl_port); - goto free_ret; - } - return ctx; free_ret: talloc_free(ctx); -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22490 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ib1ea85e1196c8b9dc40c8837ab5d4a54f2a1f2d4 Gerrit-Change-Number: 22490 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 14:05:00 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 29 Jan 2021 14:05:00 +0000 Subject: Change in osmo-pcu[master]: NACC: allow setting keep time for entries in neigh and si cache In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22449 ) Change subject: NACC: allow setting keep time for entries in neigh and si cache ...................................................................... NACC: allow setting keep time for entries in neigh and si cache Related: SYS#4909 Change-Id: Ifa336aa27dd88ff5b78dbc5a2799740f542bb369 --- M src/gprs_pcu.c M src/gprs_pcu.h M src/neigh_cache.c M src/neigh_cache.h M src/pcu_vty.c 5 files changed, 45 insertions(+), 15 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved fixeria: Looks good to me, but someone else must approve diff --git a/src/gprs_pcu.c b/src/gprs_pcu.c index 9a21cdb..31ed8b7 100644 --- a/src/gprs_pcu.c +++ b/src/gprs_pcu.c @@ -33,6 +33,8 @@ { .T=1, .default_val=30, .unit=OSMO_TDEF_S, .desc="BSSGP (un)blocking procedures timer (s)", .val=0 }, { .T=2, .default_val=30, .unit=OSMO_TDEF_S, .desc="BSSGP reset procedure timer (s)", .val=0 }, { .T=3190, .default_val=5, .unit=OSMO_TDEF_S, .desc="Return to packet idle mode after Packet DL Assignment on CCCH (s)", .val=0}, + { .T=PCU_TDEF_NEIGH_CACHE_ALIVE, .default_val=5, .unit=OSMO_TDEF_S, .desc="[ARFCN+BSIC]->[RAC+CI] resolution cache entry storage timeout (s)", .val=0 }, + { .T=PCU_TDEF_SI_CACHE_ALIVE, .default_val=5, .unit=OSMO_TDEF_S, .desc="[RAC+CI]->[SI] resolution cache entry storage timeout (s)", .val=0 }, { .T=-2000, .default_val=2, .unit=OSMO_TDEF_MS, .desc="Tbf reject for PRR timer (ms)", .val=0 }, { .T=-2001, .default_val=2, .unit=OSMO_TDEF_S, .desc="PACCH assignment timer (s)", .val=0 }, { .T=-2002, .default_val=200, .unit=OSMO_TDEF_MS, .desc="Waiting after IMM.ASS confirm timer (ms)", .val=0 }, @@ -114,8 +116,8 @@ INIT_LLIST_HEAD(&pcu->bts_list); - pcu->neigh_cache = neigh_cache_alloc(pcu); - pcu->si_cache = si_cache_alloc(pcu); + pcu->neigh_cache = neigh_cache_alloc(pcu, osmo_tdef_get(pcu->T_defs, PCU_TDEF_NEIGH_CACHE_ALIVE, OSMO_TDEF_S, -1)); + pcu->si_cache = si_cache_alloc(pcu, osmo_tdef_get(pcu->T_defs, PCU_TDEF_SI_CACHE_ALIVE, OSMO_TDEF_S, -1)); return pcu; } diff --git a/src/gprs_pcu.h b/src/gprs_pcu.h index 8e18f89..4f22f68 100644 --- a/src/gprs_pcu.h +++ b/src/gprs_pcu.h @@ -37,6 +37,9 @@ #define MAX_EDGE_MCS 9 #define MAX_GPRS_CS 4 +#define PCU_TDEF_NEIGH_CACHE_ALIVE (-10) +#define PCU_TDEF_SI_CACHE_ALIVE (-11) + /* see bts->gsmtap_categ_mask */ enum pcu_gsmtap_category { PCU_GSMTAP_C_DL_UNKNOWN = 0, /* unknown or undecodable downlink blocks */ diff --git a/src/neigh_cache.c b/src/neigh_cache.c index a4bdfbe..ae619d3 100644 --- a/src/neigh_cache.c +++ b/src/neigh_cache.c @@ -27,10 +27,6 @@ #include #include -#define KEEP_TIME_DEFAULT_SEC 5 - -/*TODO: add a timer to the_pcu T_defs, pass value to struct neigh_cache instead of KEEP_TIME_DEFAULT_SEC */ - static inline bool neigh_cache_entry_key_eq(const struct neigh_cache_entry_key *a, const struct neigh_cache_entry_key *b) { @@ -89,16 +85,23 @@ osmo_timer_schedule(&cache->cleanup_timer, result.tv_sec, result.tv_nsec*1000); } -struct neigh_cache *neigh_cache_alloc(void *ctx) +struct neigh_cache *neigh_cache_alloc(void *ctx, unsigned int keep_time_sec) { struct neigh_cache *cache = talloc_zero(ctx, struct neigh_cache); OSMO_ASSERT(cache); INIT_LLIST_HEAD(&cache->list); osmo_timer_setup(&cache->cleanup_timer, neigh_cache_cleanup_cb, cache); - cache->keep_time_intval = (struct timespec){ .tv_sec = KEEP_TIME_DEFAULT_SEC, .tv_nsec = 0}; + cache->keep_time_intval = (struct timespec){ .tv_sec = keep_time_sec, .tv_nsec = 0}; return cache; } + +void neigh_cache_set_keep_time_interval(struct neigh_cache *cache, unsigned int keep_time_sec) +{ + cache->keep_time_intval = (struct timespec){ .tv_sec = keep_time_sec, .tv_nsec = 0}; + neigh_cache_schedule_cleanup(cache); +} + struct neigh_cache_entry *neigh_cache_add(struct neigh_cache *cache, const struct neigh_cache_entry_key *key, const struct osmo_cell_global_id_ps *value) @@ -168,8 +171,6 @@ // SI CACHE /////////////////// -/*TODO: add a timer to the_pcu T_defs, pass value to struct neigh_cache instead of KEEP_TIME_DEFAULT_SEC */ - static void si_cache_schedule_cleanup(struct si_cache *cache); static void si_cache_cleanup_cb(void *data) { @@ -218,15 +219,22 @@ osmo_timer_schedule(&cache->cleanup_timer, result.tv_sec, result.tv_nsec*1000); } -struct si_cache *si_cache_alloc(void *ctx) +struct si_cache *si_cache_alloc(void *ctx, unsigned int keep_time_sec) { struct si_cache *cache = talloc_zero(ctx, struct si_cache); OSMO_ASSERT(cache); INIT_LLIST_HEAD(&cache->list); osmo_timer_setup(&cache->cleanup_timer, si_cache_cleanup_cb, cache); - cache->keep_time_intval = (struct timespec){ .tv_sec = KEEP_TIME_DEFAULT_SEC, .tv_nsec = 0}; + cache->keep_time_intval = (struct timespec){ .tv_sec = keep_time_sec, .tv_nsec = 0}; return cache; } + +void si_cache_set_keep_time_interval(struct si_cache *cache, unsigned int keep_time_sec) +{ + cache->keep_time_intval = (struct timespec){ .tv_sec = keep_time_sec, .tv_nsec = 0}; + si_cache_schedule_cleanup(cache); +} + struct si_cache_entry *si_cache_add(struct si_cache *cache, const struct osmo_cell_global_id_ps *key, const struct si_cache_value *value) diff --git a/src/neigh_cache.h b/src/neigh_cache.h index 3fd56b7..4fed0fa 100644 --- a/src/neigh_cache.h +++ b/src/neigh_cache.h @@ -55,7 +55,8 @@ struct osmo_cell_global_id_ps value; }; -struct neigh_cache *neigh_cache_alloc(void *ctx); +struct neigh_cache *neigh_cache_alloc(void *ctx, unsigned int keep_time_sec); +void neigh_cache_set_keep_time_interval(struct neigh_cache *cache, unsigned int keep_time_sec); struct neigh_cache_entry *neigh_cache_add(struct neigh_cache *cache, const struct neigh_cache_entry_key *key, const struct osmo_cell_global_id_ps *value); @@ -90,7 +91,8 @@ struct si_cache_value value; }; -struct si_cache *si_cache_alloc(void *ctx); +struct si_cache *si_cache_alloc(void *ctx, unsigned int keep_time_sec); +void si_cache_set_keep_time_interval(struct si_cache *cache, unsigned int keep_time_sec); struct si_cache_entry *si_cache_add(struct si_cache *cache, const struct osmo_cell_global_id_ps *key, const struct si_cache_value *value); diff --git a/src/pcu_vty.c b/src/pcu_vty.c index 8f97f30..b0d1ac6 100644 --- a/src/pcu_vty.c +++ b/src/pcu_vty.c @@ -1064,10 +1064,25 @@ OSMO_TDEF_VTY_DOC_SET, CMD_ATTR_IMMEDIATE) { + int rc; + struct osmo_tdef *t; /* If any arguments are missing, redirect to 'show' */ if (argc < 2) return show_timer(self, vty, argc, argv); - return osmo_tdef_vty_set_cmd(vty, the_pcu->T_defs, argv); + if ((rc = osmo_tdef_vty_set_cmd(vty, the_pcu->T_defs, argv)) != CMD_SUCCESS) + return rc; + t = osmo_tdef_vty_parse_T_arg(vty, the_pcu->T_defs, argv[0]); + switch (t->T) { + case PCU_TDEF_NEIGH_CACHE_ALIVE: + neigh_cache_set_keep_time_interval(the_pcu->neigh_cache, t->val); + break; + case PCU_TDEF_SI_CACHE_ALIVE: + si_cache_set_keep_time_interval(the_pcu->si_cache, t->val); + break; + default: + break; + } + return CMD_SUCCESS; } DEFUN(show_tbf, -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22449 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ifa336aa27dd88ff5b78dbc5a2799740f542bb369 Gerrit-Change-Number: 22449 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 14:05:00 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 29 Jan 2021 14:05:00 +0000 Subject: Change in osmo-pcu[master]: NACC: Configure neighbor and SI resolution timeout values In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22450 ) Change subject: NACC: Configure neighbor and SI resolution timeout values ...................................................................... NACC: Configure neighbor and SI resolution timeout values Upon timeout, we move directly to NACC_ST_TX_CELL_CHG_CONTINUE in order to submit a Cell Change Continue against the MS without providing any Packet Neighbor Cell Data beforehand, as per spec that's probably the best we can do in this scenario (TS 44.060): """ 1) The network responds with a PACKET CELL CHANGE CONTINUE message. If a mobile station as response to a PACKET CELL CHANGE NOTIFICATION message receives a PACKET CELL CHANGE CONTINUE message without receiving any neighbour cell system information, the mobile station shall stop timer T3208, stop timer T3210 if still running, leave CCN mode and continue cell reselection in NC0/NC1 mode. """ Related: SYS#4909 Change-Id: Ia9932ab082ec095294e85dc4d532046970e17986 --- M src/gprs_pcu.c M src/gprs_pcu.h M src/nacc_fsm.c 3 files changed, 37 insertions(+), 3 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved fixeria: Looks good to me, but someone else must approve laforge: Looks good to me, but someone else must approve diff --git a/src/gprs_pcu.c b/src/gprs_pcu.c index 31ed8b7..554007e 100644 --- a/src/gprs_pcu.c +++ b/src/gprs_pcu.c @@ -33,6 +33,8 @@ { .T=1, .default_val=30, .unit=OSMO_TDEF_S, .desc="BSSGP (un)blocking procedures timer (s)", .val=0 }, { .T=2, .default_val=30, .unit=OSMO_TDEF_S, .desc="BSSGP reset procedure timer (s)", .val=0 }, { .T=3190, .default_val=5, .unit=OSMO_TDEF_S, .desc="Return to packet idle mode after Packet DL Assignment on CCCH (s)", .val=0}, + { .T=PCU_TDEF_NEIGH_RESOLVE_TO, .default_val=1000, .unit=OSMO_TDEF_MS, .desc="[ARFCN+BSIC]->[RAC+CI] resolution timeout (ms)", .val=0 }, + { .T=PCU_TDEF_SI_RESOLVE_TO, .default_val=1000, .unit=OSMO_TDEF_MS, .desc="RIM RAN-INFO response timeout (ms)", .val=0 }, { .T=PCU_TDEF_NEIGH_CACHE_ALIVE, .default_val=5, .unit=OSMO_TDEF_S, .desc="[ARFCN+BSIC]->[RAC+CI] resolution cache entry storage timeout (s)", .val=0 }, { .T=PCU_TDEF_SI_CACHE_ALIVE, .default_val=5, .unit=OSMO_TDEF_S, .desc="[RAC+CI]->[SI] resolution cache entry storage timeout (s)", .val=0 }, { .T=-2000, .default_val=2, .unit=OSMO_TDEF_MS, .desc="Tbf reject for PRR timer (ms)", .val=0 }, diff --git a/src/gprs_pcu.h b/src/gprs_pcu.h index 4f22f68..9f75fb8 100644 --- a/src/gprs_pcu.h +++ b/src/gprs_pcu.h @@ -37,6 +37,8 @@ #define MAX_EDGE_MCS 9 #define MAX_GPRS_CS 4 +#define PCU_TDEF_NEIGH_RESOLVE_TO (-1) +#define PCU_TDEF_SI_RESOLVE_TO (-2) #define PCU_TDEF_NEIGH_CACHE_ALIVE (-10) #define PCU_TDEF_SI_CACHE_ALIVE (-11) diff --git a/src/nacc_fsm.c b/src/nacc_fsm.c index 5e8d51b..85e29c5 100644 --- a/src/nacc_fsm.c +++ b/src/nacc_fsm.c @@ -40,8 +40,24 @@ #define X(s) (1 << (s)) +static const struct osmo_tdef_state_timeout nacc_fsm_timeouts[32] = { + [NACC_ST_INITIAL] = {}, + [NACC_ST_WAIT_RESOLVE_RAC_CI] = { .T = PCU_TDEF_NEIGH_RESOLVE_TO }, + [NACC_ST_WAIT_REQUEST_SI] = { .T = PCU_TDEF_SI_RESOLVE_TO }, + [NACC_ST_TX_NEIGHBOUR_DATA] = {}, + [NACC_ST_TX_CELL_CHG_CONTINUE] = {}, + [NACC_ST_DONE] = {}, +}; + +/* Transition to a state, using the T timer defined in assignment_fsm_timeouts. + * The actual timeout value is in turn obtained from conn->T_defs. + * Assumes local variable fi exists. */ + #define nacc_fsm_state_chg(fi, NEXT_STATE) \ - osmo_fsm_inst_state_chg(fi, NEXT_STATE, 0, 0) + osmo_tdef_fsm_inst_state_chg(fi, NEXT_STATE, \ + nacc_fsm_timeouts, \ + ((struct nacc_fsm_ctx*)(fi->priv))->ms->bts->pcu->T_defs, \ + -1) const struct value_string nacc_fsm_event_names[] = { { NACC_EV_RX_CELL_CHG_NOTIFICATION, "RX_CELL_CHG_NOTIFICATION" }, @@ -469,6 +485,17 @@ talloc_free(ctx); } +static int nacc_fsm_timer_cb(struct osmo_fsm_inst *fi) +{ + switch (fi->T) { + case PCU_TDEF_NEIGH_RESOLVE_TO: + case PCU_TDEF_SI_RESOLVE_TO: + nacc_fsm_state_chg(fi, NACC_ST_TX_CELL_CHG_CONTINUE); + break; + } + return 0; +} + static struct osmo_fsm_state nacc_fsm_states[] = { [NACC_ST_INITIAL] = { .in_event_mask = @@ -482,7 +509,8 @@ .in_event_mask = X(NACC_EV_RX_RAC_CI), .out_state_mask = - X(NACC_ST_WAIT_REQUEST_SI), + X(NACC_ST_WAIT_REQUEST_SI) | + X(NACC_ST_TX_CELL_CHG_CONTINUE), .name = "WAIT_RESOLVE_RAC_CI", .onenter = st_wait_resolve_rac_ci_on_enter, .action = st_wait_resolve_rac_ci, @@ -492,7 +520,8 @@ X(NACC_EV_RX_CELL_CHG_NOTIFICATION) | X(NACC_EV_RX_SI), .out_state_mask = - X(NACC_ST_TX_NEIGHBOUR_DATA), + X(NACC_ST_TX_NEIGHBOUR_DATA) | + X(NACC_ST_TX_CELL_CHG_CONTINUE), .name = "WAIT_REQUEST_SI", .onenter = st_wait_request_si_on_enter, .action = st_wait_request_si, @@ -529,6 +558,7 @@ .name = "NACC", .states = nacc_fsm_states, .num_states = ARRAY_SIZE(nacc_fsm_states), + .timer_cb = nacc_fsm_timer_cb, .cleanup = nacc_fsm_cleanup, .log_subsys = DNACC, .event_names = nacc_fsm_event_names, -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22450 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ia9932ab082ec095294e85dc4d532046970e17986 Gerrit-Change-Number: 22450 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 14:05:01 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 29 Jan 2021 14:05:01 +0000 Subject: Change in osmo-pcu[master]: NACC: Send only Pkt Cell Chg Continue if SI retrieve fails In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22451 ) Change subject: NACC: Send only Pkt Cell Chg Continue if SI retrieve fails ...................................................................... NACC: Send only Pkt Cell Chg Continue if SI retrieve fails If fore some reason we fail to fetch SI of target cell, we move directly to NACC_ST_TX_CELL_CHG_CONTINUE in order to submit a Cell Change Continue against the MS without providing any Packet Neighbor Cell Data beforehand, as per spec that's probably the best we can do in this scenario (TS 44.060): """ 1) The network responds with a PACKET CELL CHANGE CONTINUE message. If a mobile station as response to a PACKET CELL CHANGE NOTIFICATION message receives a PACKET CELL CHANGE CONTINUE message without receiving any neighbour cell system information, the mobile station shall stop timer T3208, stop timer T3210 if still running, leave CCN mode and continue cell reselection in NC0/NC1 mode. """ This commit also fixes a use-after-free triggered by TTCN3 test TC_nacc_outbound_rac_ci-resolve_fail_parse_response, where the "cmd" pointer passed to nacc_fsm_ctrl_reply_cb() was freed during FSM termination (its talloc ctx was under ctx->neigh_ctrl_conn) and the libosmocore code calling that callback was later on accessing cmd->defer. Since due to this change the FSM is no longer syncrhonously freed, the issue is gone. Related: SYS#4909 Change-Id: Ie3f12a08ad611b1086d3f4ab7c3d34af43c07961 --- M src/nacc_fsm.c 1 file changed, 5 insertions(+), 5 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved fixeria: Looks good to me, but someone else must approve laforge: Looks good to me, but someone else must approve diff --git a/src/nacc_fsm.c b/src/nacc_fsm.c index 85e29c5..fcf4b58 100644 --- a/src/nacc_fsm.c +++ b/src/nacc_fsm.c @@ -342,7 +342,7 @@ err_term: talloc_free(cmd); - osmo_fsm_inst_term(fi, OSMO_FSM_TERM_ERROR, NULL); + nacc_fsm_state_chg(fi, NACC_ST_TX_CELL_CHG_CONTINUE); } @@ -383,14 +383,14 @@ /* SI info not in cache, resolve it using RIM procedure against SGSN */ if (fill_rim_ran_info_req(ctx, &pdu) < 0) { - osmo_fsm_inst_term(fi, OSMO_FSM_TERM_ERROR, NULL); + nacc_fsm_state_chg(fi, NACC_ST_TX_CELL_CHG_CONTINUE); return; } rc = bssgp_tx_rim(&pdu, gprs_ns2_nse_nsei(ctx->ms->bts->nse)); if (rc < 0) { LOGPFSML(fi, LOGL_ERROR, "Failed transmitting RIM PDU: %d\n", rc); - osmo_fsm_inst_term(fi, OSMO_FSM_TERM_ERROR, NULL); + nacc_fsm_state_chg(fi, NACC_ST_TX_CELL_CHG_CONTINUE); return; } } @@ -578,7 +578,7 @@ cmd->type, cmd->variable, osmo_escape_str(cmd->reply, -1)); if (cmd->type != CTRL_TYPE_GET_REPLY || !cmd->reply) { - osmo_fsm_inst_term(ctx->fi, OSMO_FSM_TERM_ERROR, NULL); + nacc_fsm_state_chg(ctx->fi, NACC_ST_TX_CELL_CHG_CONTINUE); return; } @@ -618,7 +618,7 @@ free_ret: talloc_free(tmp); - osmo_fsm_inst_term(ctx->fi, OSMO_FSM_TERM_ERROR, NULL); + nacc_fsm_state_chg(ctx->fi, NACC_ST_TX_CELL_CHG_CONTINUE); return; } -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22451 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ie3f12a08ad611b1086d3f4ab7c3d34af43c07961 Gerrit-Change-Number: 22451 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 14:05:03 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 29 Jan 2021 14:05:03 +0000 Subject: Change in osmo-pcu[master]: doc: Mark PCU node red in network node diagram In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22530 ) Change subject: doc: Mark PCU node red in network node diagram ...................................................................... doc: Mark PCU node red in network node diagram Change-Id: I81ab7bf144eacbfab94d3cee3d75af5a05e1c71a --- M doc/manuals/chapters/overview.adoc 1 file changed, 1 insertion(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/doc/manuals/chapters/overview.adoc b/doc/manuals/chapters/overview.adoc index eade62b..6ae6f7e 100644 --- a/doc/manuals/chapters/overview.adoc +++ b/doc/manuals/chapters/overview.adoc @@ -26,6 +26,7 @@ BTS->PCU [label="pcu_sock"] PCU->SGSN [label="Gb"] SGSN->GGSN [label="GTP"] + PCU [color=red] } ---- -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22530 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I81ab7bf144eacbfab94d3cee3d75af5a05e1c71a Gerrit-Change-Number: 22530 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 14:06:13 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 29 Jan 2021 14:06:13 +0000 Subject: Change in docker-playground[master]: ttcn3-pcu: Update configs to support NACC tests In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22515 ) Change subject: ttcn3-pcu: Update configs to support NACC tests ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22515 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: If027812940579a7f344a36543e85518cc096905b Gerrit-Change-Number: 22515 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 29 Jan 2021 14:06:13 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 14:18:43 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 29 Jan 2021 14:18:43 +0000 Subject: Change in osmo-ttcn3-hacks[master]: PCU_Tests: add testcase TC_rim_ran_info_req_single_rep and _no_si In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369 ) Change subject: PCU_Tests: add testcase TC_rim_ran_info_req_single_rep and _no_si ...................................................................... Patch Set 5: (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369/4/library/PCUIF_Types.ttcn File library/PCUIF_Types.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369/4/library/PCUIF_Types.ttcn at 224 PS4, Line 224: OCT23 si1 optional, > Ok, I will change it then. Note: The system information transferred in the info indication is taken from that what is currently stored inside the BTS, so it always mirrors the current status in the BTS to the PCU. So when Si3 is transfered via RSL, it won't delete Si1 and Si3. I will now put the system information into a new message type. I agree that the current solution is not the nicest but it is not wrong. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I9054ab0e969c0fbfdc671c92d44cc61360959adc Gerrit-Change-Number: 22369 Gerrit-PatchSet: 5 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Fri, 29 Jan 2021 14:18:43 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: laforge Comment-In-Reply-To: fixeria Comment-In-Reply-To: dexter Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 14:52:59 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 29 Jan 2021 14:52:59 +0000 Subject: Change in osmo-pcu[master]: doc: Introduce section documenting NACC support References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22531 ) Change subject: doc: Introduce section documenting NACC support ...................................................................... doc: Introduce section documenting NACC support Change-Id: I74e4828ed1b99a7f4d28ea4797c93ee85c0068cb --- M doc/manuals/chapters/configuration.adoc 1 file changed, 80 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/31/22531/1 diff --git a/doc/manuals/chapters/configuration.adoc b/doc/manuals/chapters/configuration.adoc index f3323d7..7371e72 100644 --- a/doc/manuals/chapters/configuration.adoc +++ b/doc/manuals/chapters/configuration.adoc @@ -220,6 +220,86 @@ Set the gamma parameter for MS power control in units of dB. +=== Configuring Network Assisted Cell Change (NACC) + +Network Assisted Cell Change, defined in 3GPP TS 44.060 sub-clause 8.8, is a +feature providing the MS aid when changing to a new cell due to autonomous +reselection. In summary, the MS informs the current cell its intention to change +to a new target cell, and the network decides whether to grant the intended cell +change or order a change to another neighbor cell. It also provides several +System Informations of the target cell to the MS to allow for quicker +reselection towards it. + +OsmoPCU will automatically provide the required neighbor System Information when +the MS requests NACC towards a target cell also under the management of the same +OsmoPCU instance, since it already has the System Information of all BTS under +their control, obtained through PCUIF when the BTS registers against OsmoPCU, so +no specific user configuration is required here. + +However, for remote neighbors (cells managed by another OsmoPCU instance), +OsmoPCU requires to gather the information from somewhere else before being able +to provide it to the MS requesting the NACC. + +If OsmoPCU fails to gather the System Information, it will simply answer the MS +allowing the proposed changed but without previously providing the System +Information of the target cell. + +==== Neighbor Address Resolution + +First of all, it needs to translate the identity of the target +cell to change to, provided by the MS, into an identity that the Core Network +can use and understand to identify the target cell, which happens to be a key +composed of . This key is also named conveniently as +CGI-PS, since it actually equals to the Circuit Switch CGI + RAC. + +In order to apply this target cell identity translation, OsmoPCU uses the +OsmoBSC Neighbor Resolution CTRL interface (see OsmoBSC User Manual), since the +BSC is the node holding all the neighbor related information. +By default, the use of this interface is not configured and hence disabled in +OsmoPCU. As a result, until configured, the network won't be able to provide the +System Information to the MS prior to allowing the change during NACC against +remote cells, which means the cell change will take longer to complete. In order +to configure the interface, the OsmoBSC IP address and port to connect to must +be configured in OsmoPCU VTY. + +These neighbor address resolutions ( => ) are by default +cached for a while in order to avoid querying the BSC frequently and, as a +result, optimizing the resolution time too. + +.Example: Configure Neighbor Resolution CTRL interface against OsmoBSC +---- +pcu + neighbor resolution 172.18.13.10 4248 <1> + timer X1 500 <2> + timer X0 60 <3> +---- +<1> Port 4248 is the default and hence could be omitted in this case +<2> Time out if the BSC doesn't answer our CTRL resolution request after 500 ms +<3> Keep resolved neighbor addresses cached for 60 seconds + +==== System Information Resolution + +Once OsmoPCU gains knowledge of the target cell's address in the Core Network, +it can query its System Information. The query is done using RIM procedures +(NACC RAN-INFO application) over the Gb interface against the SGSN that OsmoPCU +is connected to. In its turn, the SGSN will potentially forward this query to +the PCU serving the target cell, which will provide back the System Information +of that cell. + +The System Information received from remote neighbors are by default +cached for a while in order to avoid querying the SGSN frequently and, as a +result, optimizing the resolution time too. + +.Example: Configure System Information resolution +---- +pcu + timer X2 500 <1> + timer X11 60 <2> +---- +<1> Time out if the SGSN doesn't answer our RIM RAN-INFO request request after 500 ms +<2> Keep resolved remote neighbor System Information cached for 60 seconds + + === GPRS vs EGPRS considerations ==== Configuration -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22531 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I74e4828ed1b99a7f4d28ea4797c93ee85c0068cb Gerrit-Change-Number: 22531 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 15:01:29 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 29 Jan 2021 15:01:29 +0000 Subject: Change in osmo-bsc[master]: cosmetic: doc: wrap line too long References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22532 ) Change subject: cosmetic: doc: wrap line too long ...................................................................... cosmetic: doc: wrap line too long Change-Id: I2da6f58d84521289f86840b1da191a9faf76a1a8 --- M doc/manuals/chapters/handover.adoc 1 file changed, 2 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/32/22532/1 diff --git a/doc/manuals/chapters/handover.adoc b/doc/manuals/chapters/handover.adoc index 56e9aea..ab0b1fa 100644 --- a/doc/manuals/chapters/handover.adoc +++ b/doc/manuals/chapters/handover.adoc @@ -777,7 +777,8 @@ neighbor-resolution bind 127.0.0.1 5000 ---- -osmo-pcu will then be able to connect to the BSC and query for resolution during eg. NACC requests from MS. +osmo-pcu will then be able to connect to the BSC and query for resolution during +eg. NACC requests from MS. The relevant commands are:: -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22532 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I2da6f58d84521289f86840b1da191a9faf76a1a8 Gerrit-Change-Number: 22532 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 15:11:33 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 29 Jan 2021 15:11:33 +0000 Subject: Change in osmo-ci[master]: OBS nightly: don't try to use UNKNOWN as version References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/22533 ) Change subject: OBS nightly: don't try to use UNKNOWN as version ...................................................................... OBS nightly: don't try to use UNKNOWN as version If the repository doesn't have a git tag yet, git-version-gen will set the version to UNKNOWN. The debian package build tools will choke on that, so fall back to using the version from debian/changelog. Related: OS#4992 (osmo-gbproxy.git doesn't have a tag just yet) Change-Id: I43c32f73bdfd715db5afdeec3bd8026d3c1fd8eb --- M scripts/osmocom-nightly-packages.sh 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/33/22533/1 diff --git a/scripts/osmocom-nightly-packages.sh b/scripts/osmocom-nightly-packages.sh index a6340d1..44f4a6e 100755 --- a/scripts/osmocom-nightly-packages.sh +++ b/scripts/osmocom-nightly-packages.sh @@ -70,7 +70,7 @@ version=$(echo "$version" | sed 's/-/./g' ) # deb version - if [ -z "$version" ] ; then + if [ -z "$version" ] || [ "$version" = "UNKNOWN" ]; then version=$(head -1 debian/changelog | cut -d ' ' -f 2 | sed 's,(,,' | sed 's,),,') version="$version.$DT" fi -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22533 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I43c32f73bdfd715db5afdeec3bd8026d3c1fd8eb Gerrit-Change-Number: 22533 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 15:23:32 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 29 Jan 2021 15:23:32 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BTS_Tests: check if si1, si3, si13 are updated via PCUIF In-Reply-To: References: Message-ID: dexter has abandoned this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22431 ) Change subject: BTS_Tests: check if si1,si3,si13 are updated via PCUIF ...................................................................... Abandoned -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22431 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I6ec543b3cb33d82c442083b52c991add71b34644 Gerrit-Change-Number: 22431 Gerrit-PatchSet: 4 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: abandon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 15:26:56 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 29 Jan 2021 15:26:56 +0000 Subject: Change in osmo-pcu[master]: Introduce NACC support In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22385 ) Change subject: Introduce NACC support ...................................................................... Patch Set 12: (1 comment) https://gerrit.osmocom.org/c/osmo-pcu/+/22385/11/src/nacc_fsm.c File src/nacc_fsm.c: https://gerrit.osmocom.org/c/osmo-pcu/+/22385/11/src/nacc_fsm.c at 633 PS11, Line 633: connect to CTRL > I Don't see a problem given that the log category is already NACC, but I can change the message in a [?] Yes, please. It may still be not obvious where this 'NACC' subsystem is trying to connect, and a CTRL [server] can be everywhere (e.g. in osmo-bts). -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22385 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Id35f40d05f3e081f32fddbf1fa34cb338db452ca Gerrit-Change-Number: 22385 Gerrit-PatchSet: 12 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 29 Jan 2021 15:26:56 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: laforge Comment-In-Reply-To: pespin Comment-In-Reply-To: fixeria Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 15:49:12 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 29 Jan 2021 15:49:12 +0000 Subject: Change in osmo-pcu[master]: nacc: Improve log line failing to establish CTRL neigh conn References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22534 ) Change subject: nacc: Improve log line failing to establish CTRL neigh conn ...................................................................... nacc: Improve log line failing to establish CTRL neigh conn Change-Id: Ic92158f9fe986ff427ee2ed2cfbf95549e348746 --- M src/nacc_fsm.c 1 file changed, 3 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/34/22534/1 diff --git a/src/nacc_fsm.c b/src/nacc_fsm.c index fcf4b58..510b3d8 100644 --- a/src/nacc_fsm.c +++ b/src/nacc_fsm.c @@ -316,8 +316,9 @@ NULL, 0, pcu->vty.neigh_ctrl_addr, pcu->vty.neigh_ctrl_port, OSMO_SOCK_F_CONNECT); if (rc < 0) { - LOGPFSML(fi, LOGL_ERROR, "Can't connect to CTRL @ %s:%u\n", - pcu->vty.neigh_ctrl_addr, pcu->vty.neigh_ctrl_port); + LOGPFSML(fi, LOGL_ERROR, + "Failed to establish CTRL (neighbor resolution) connection to BSC r=%s:%u\n\n", + pcu->vty.neigh_ctrl_addr, pcu->vty.neigh_ctrl_port); goto err_term; } -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22534 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ic92158f9fe986ff427ee2ed2cfbf95549e348746 Gerrit-Change-Number: 22534 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 16:02:13 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 29 Jan 2021 16:02:13 +0000 Subject: Change in osmo-ci[master]: OBS nightly: don't try to use UNKNOWN as version In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22533 ) Change subject: OBS nightly: don't try to use UNKNOWN as version ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22533 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I43c32f73bdfd715db5afdeec3bd8026d3c1fd8eb Gerrit-Change-Number: 22533 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 29 Jan 2021 16:02:13 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 16:02:26 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 29 Jan 2021 16:02:26 +0000 Subject: Change in gapk[master]: configure.ac: set -std=gnu11 In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/gapk/+/22463 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... configure.ac: set -std=gnu11 Change-Id: I7d4c4e1f3663e448c5d044ccb4bbd3e813898f23 --- M configure.ac 1 file changed, 2 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified daniel: Looks good to me, but someone else must approve lynxis lazus: Looks good to me, approved diff --git a/configure.ac b/configure.ac index 44a7cff..b16acc8 100644 --- a/configure.ac +++ b/configure.ac @@ -6,6 +6,8 @@ AM_INIT_AUTOMAKE([dist-bzip2 subdir-objects]) LT_INIT([disable-static]) +CFLAGS="$CFLAGS -std=gnu11" + # kernel style compile messages m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) -- To view, visit https://gerrit.osmocom.org/c/gapk/+/22463 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: gapk Gerrit-Branch: master Gerrit-Change-Id: I7d4c4e1f3663e448c5d044ccb4bbd3e813898f23 Gerrit-Change-Number: 22463 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 16:02:43 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 29 Jan 2021 16:02:43 +0000 Subject: Change in libgtpnl[master]: configure.ac: set -std=gnu11 In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libgtpnl/+/22464 ) Change subject: configure.ac: set -std=gnu11 ...................................................................... configure.ac: set -std=gnu11 Change-Id: Iea60698b4cb0f9c04a6f75cc4ca2ea5fbb84bae8 --- M configure.ac 1 file changed, 2 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified daniel: Looks good to me, but someone else must approve lynxis lazus: Looks good to me, approved diff --git a/configure.ac b/configure.ac index 6962261..eb35f57 100644 --- a/configure.ac +++ b/configure.ac @@ -13,6 +13,8 @@ RELMAKE='-include osmo-release.mk' AC_SUBST([RELMAKE]) +CFLAGS="$CFLAGS -std=gnu11" + dnl kernel style compile messages m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) -- To view, visit https://gerrit.osmocom.org/c/libgtpnl/+/22464 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libgtpnl Gerrit-Branch: master Gerrit-Change-Id: Iea60698b4cb0f9c04a6f75cc4ca2ea5fbb84bae8 Gerrit-Change-Number: 22464 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 16:03:31 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 29 Jan 2021 16:03:31 +0000 Subject: Change in osmo-bsc[master]: show bug: add test_dyn_ts_amr_tch_{f, h}_to_{h, f}_congestion_assignmen... In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22526 ) Change subject: show bug: add test_dyn_ts_amr_tch_{f,h}_to_{h,f}_congestion_assignment_2.ho_vty ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22526 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I8c8d9d5936f713f7d02e4246eeb373916e62510b Gerrit-Change-Number: 22526 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 29 Jan 2021 16:03:31 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 16:04:04 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 29 Jan 2021 16:04:04 +0000 Subject: Change in docker-playground[master]: ttcn3-pcu: Update configs to support NACC tests In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22515 ) Change subject: ttcn3-pcu: Update configs to support NACC tests ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22515 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: If027812940579a7f344a36543e85518cc096905b Gerrit-Change-Number: 22515 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 29 Jan 2021 16:04:04 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 16:04:35 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 29 Jan 2021 16:04:35 +0000 Subject: Change in docker-playground[master]: ttcn3-pcu: Update configs to support NACC tests In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/22515 ) Change subject: ttcn3-pcu: Update configs to support NACC tests ...................................................................... Patch Set 1: commitlog might want to point to the change-id in osmo-pcu.git this relates to -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/22515 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: If027812940579a7f344a36543e85518cc096905b Gerrit-Change-Number: 22515 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 29 Jan 2021 16:04:35 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 16:04:45 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 29 Jan 2021 16:04:45 +0000 Subject: Change in libosmocore[master]: cosmetic: fix typo in comment References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22535 ) Change subject: cosmetic: fix typo in comment ...................................................................... cosmetic: fix typo in comment Change-Id: I787cca5a032c57202a86dab18e1790ef3ad1509a --- M include/osmocom/gsm/bts_features.h 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/35/22535/1 diff --git a/include/osmocom/gsm/bts_features.h b/include/osmocom/gsm/bts_features.h index 98e6c7b..6856aac 100644 --- a/include/osmocom/gsm/bts_features.h +++ b/include/osmocom/gsm/bts_features.h @@ -7,7 +7,7 @@ /* N. B: always add new features to the end of the list (right before _NUM_BTS_FEAT) to avoid breaking compatibility with BTS compiled against earlier version of this header. Also make sure that the description strings - gsm_bts_features_descs[] in gsm_data.c are also updated accordingly! */ + osmo_bts_features_descs[] in gsm_data.c are also updated accordingly! */ enum osmo_bts_features { BTS_FEAT_HSCSD, BTS_FEAT_GPRS, -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22535 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I787cca5a032c57202a86dab18e1790ef3ad1509a Gerrit-Change-Number: 22535 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 16:04:53 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 29 Jan 2021 16:04:53 +0000 Subject: Change in osmo-pcu[master]: nacc: Improve log line failing to establish CTRL neigh conn In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22534 ) Change subject: nacc: Improve log line failing to establish CTRL neigh conn ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22534 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ic92158f9fe986ff427ee2ed2cfbf95549e348746 Gerrit-Change-Number: 22534 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 29 Jan 2021 16:04:53 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 16:05:29 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 29 Jan 2021 16:05:29 +0000 Subject: Change in osmo-pcu[master]: doc: Introduce section documenting NACC support In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22531 ) Change subject: doc: Introduce section documenting NACC support ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22531 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I74e4828ed1b99a7f4d28ea4797c93ee85c0068cb Gerrit-Change-Number: 22531 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 29 Jan 2021 16:05:29 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 16:10:39 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 29 Jan 2021 16:10:39 +0000 Subject: Change in osmo-bsc[master]: cosmetic: bts-sysmo: Fix whitespace indentation References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22536 ) Change subject: cosmetic: bts-sysmo: Fix whitespace indentation ...................................................................... cosmetic: bts-sysmo: Fix whitespace indentation Change-Id: Ia4594d8a98aee19f14e75449cfdfdc0fbcaf6e9f --- M src/osmo-bsc/bts_sysmobts.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/36/22536/1 diff --git a/src/osmo-bsc/bts_sysmobts.c b/src/osmo-bsc/bts_sysmobts.c index bef1275..e319f2c 100644 --- a/src/osmo-bsc/bts_sysmobts.c +++ b/src/osmo-bsc/bts_sysmobts.c @@ -57,7 +57,7 @@ sizeof(model_sysmobts._features_data); memset(model_sysmobts.features.data, 0, model_sysmobts.features.data_len); - osmo_bts_set_feature(&model_sysmobts.features, BTS_FEAT_GPRS); + osmo_bts_set_feature(&model_sysmobts.features, BTS_FEAT_GPRS); osmo_bts_set_feature(&model_sysmobts.features, BTS_FEAT_EGPRS); osmo_bts_set_feature(&model_sysmobts.features, BTS_FEAT_PAGING_COORDINATION); osmo_bts_set_feature(&model_sysmobts.features, BTS_FEAT_IPV6_NSVC); -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22536 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ia4594d8a98aee19f14e75449cfdfdc0fbcaf6e9f Gerrit-Change-Number: 22536 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 16:10:55 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 29 Jan 2021 16:10:55 +0000 Subject: Change in osmo-ci[master]: OBS nightly: don't try to use UNKNOWN as version In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22533 ) Change subject: OBS nightly: don't try to use UNKNOWN as version ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22533 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I43c32f73bdfd715db5afdeec3bd8026d3c1fd8eb Gerrit-Change-Number: 22533 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 29 Jan 2021 16:10:55 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 16:14:29 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 29 Jan 2021 16:14:29 +0000 Subject: Change in libosmocore[master]: gsm: bts_features: Introduce BTS_FEAT_CCN References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22537 ) Change subject: gsm: bts_features: Introduce BTS_FEAT_CCN ...................................................................... gsm: bts_features: Introduce BTS_FEAT_CCN This feature is used by BSC to gain knowledge on whether a given BTS supports GPRS Cell Change Notification (CCN) related procedures on PDCH, and as a result enable or not by default the CCN_ACTIVE bit in SI13 to announce the support it is allowed to use the feature. Related: SYS#4909 Change-Id: I61991266b95d0c13d51b47906cc07846e9cf1390 --- M include/osmocom/gsm/bts_features.h M src/gsm/bts_features.c 2 files changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/37/22537/1 diff --git a/include/osmocom/gsm/bts_features.h b/include/osmocom/gsm/bts_features.h index 6856aac..d0dbe48 100644 --- a/include/osmocom/gsm/bts_features.h +++ b/include/osmocom/gsm/bts_features.h @@ -27,6 +27,7 @@ BTS_FEAT_PAGING_COORDINATION, /* BTS hands CS paging to PCU/PACCH */ BTS_FEAT_IPV6_NSVC, BTS_FEAT_ACCH_REP, + BTS_FEAT_CCN, /* Is CCN supported by the cell? TS 44.060 sec 8.8.2 */ _NUM_BTS_FEAT }; diff --git a/src/gsm/bts_features.c b/src/gsm/bts_features.c index d8c27d8..1e15616 100644 --- a/src/gsm/bts_features.c +++ b/src/gsm/bts_features.c @@ -42,6 +42,7 @@ { BTS_FEAT_PAGING_COORDINATION, "BSS Paging Coordination" }, { BTS_FEAT_IPV6_NSVC, "NSVC IPv6" }, { BTS_FEAT_ACCH_REP, "FACCH/SACCH Repetition" }, + { BTS_FEAT_CCN, "Cell Change Notification (CCN)" }, { 0, NULL } }; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22537 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I61991266b95d0c13d51b47906cc07846e9cf1390 Gerrit-Change-Number: 22537 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 16:23:50 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 29 Jan 2021 16:23:50 +0000 Subject: Change in osmo-bts[master]: pcu_sock: send SI1, SI3 and SI3 along with PCUIF info indication In-Reply-To: References: Message-ID: dexter has abandoned this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/22367 ) Change subject: pcu_sock: send SI1, SI3 and SI3 along with PCUIF info indication ...................................................................... Abandoned -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22367 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ie8c3467b6cf8b8bfdeee9a281412d814cbc379b8 Gerrit-Change-Number: 22367 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: fixeria Gerrit-MessageType: abandon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 16:55:58 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 29 Jan 2021 16:55:58 +0000 Subject: Change in libosmocore[master]: gsm: Fix wrong length in SI13 GPRS Cell Options IE References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22538 ) Change subject: gsm: Fix wrong length in SI13 GPRS Cell Options IE ...................................................................... gsm: Fix wrong length in SI13 GPRS Cell Options IE Older commit adding the 2 bits for Rel-4 extension forgot to increase the length field (see TS 44.060 Table 12.24.1) Fixes: 946bb95af1838fcf026587c51a6ad36e34e202c3 Change-Id: I20efb4403cdf6c5bc717502a7075630044142f17 --- M src/gsm/gsm48_rest_octets.c 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/38/22538/1 diff --git a/src/gsm/gsm48_rest_octets.c b/src/gsm/gsm48_rest_octets.c index b2b37b3..f45e818 100644 --- a/src/gsm/gsm48_rest_octets.c +++ b/src/gsm/gsm48_rest_octets.c @@ -911,12 +911,12 @@ bitvec_set_bit(bv, 1); if (!gco->ext_info.egprs_supported) { /* 6bit length of extension */ - bitvec_set_uint(bv, (1 + 3)-1, 6); + bitvec_set_uint(bv, (1 + 5)-1, 6); /* EGPRS supported in the cell */ bitvec_set_bit(bv, 0); } else { /* 6bit length of extension */ - bitvec_set_uint(bv, (1 + 5 + 3)-1, 6); + bitvec_set_uint(bv, (1 + 5 + 5)-1, 6); /* EGPRS supported in the cell */ bitvec_set_bit(bv, 1); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22538 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I20efb4403cdf6c5bc717502a7075630044142f17 Gerrit-Change-Number: 22538 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 17:01:52 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 29 Jan 2021 17:01:52 +0000 Subject: Change in osmo-bsc[master]: Allow configuring SI13 CCN_ACTIVE bit from VTY, enable by default on ... In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21714 ) Change subject: Allow configuring SI13 CCN_ACTIVE bit from VTY, enable by default on osmo-bts ...................................................................... Patch Set 5: Build failure expected until libosmocore patch adding FEAT_CCN is merged. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21714 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: If91d85331d402c3ab9c32b70c2c66cd7ba6ceb28 Gerrit-Change-Number: 21714 Gerrit-PatchSet: 5 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-CC: laforge Gerrit-Comment-Date: Fri, 29 Jan 2021 17:01:52 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 18:59:00 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 29 Jan 2021 18:59:00 +0000 Subject: Change in osmo-bsc[master]: cosmetic: doc: wrap line too long In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22532 ) Change subject: cosmetic: doc: wrap line too long ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22532 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I2da6f58d84521289f86840b1da191a9faf76a1a8 Gerrit-Change-Number: 22532 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Fri, 29 Jan 2021 18:59:00 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 18:59:11 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 29 Jan 2021 18:59:11 +0000 Subject: Change in osmo-bsc[master]: cosmetic: bts-sysmo: Fix whitespace indentation In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22536 ) Change subject: cosmetic: bts-sysmo: Fix whitespace indentation ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22536 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ia4594d8a98aee19f14e75449cfdfdc0fbcaf6e9f Gerrit-Change-Number: 22536 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Fri, 29 Jan 2021 18:59:11 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 19:00:16 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 29 Jan 2021 19:00:16 +0000 Subject: Change in osmo-bsc[master]: cosmetic: doc: wrap line too long In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22532 ) Change subject: cosmetic: doc: wrap line too long ...................................................................... cosmetic: doc: wrap line too long Change-Id: I2da6f58d84521289f86840b1da191a9faf76a1a8 --- M doc/manuals/chapters/handover.adoc 1 file changed, 2 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, approved diff --git a/doc/manuals/chapters/handover.adoc b/doc/manuals/chapters/handover.adoc index 56e9aea..ab0b1fa 100644 --- a/doc/manuals/chapters/handover.adoc +++ b/doc/manuals/chapters/handover.adoc @@ -777,7 +777,8 @@ neighbor-resolution bind 127.0.0.1 5000 ---- -osmo-pcu will then be able to connect to the BSC and query for resolution during eg. NACC requests from MS. +osmo-pcu will then be able to connect to the BSC and query for resolution during +eg. NACC requests from MS. The relevant commands are:: -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22532 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I2da6f58d84521289f86840b1da191a9faf76a1a8 Gerrit-Change-Number: 22532 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 19:00:16 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 29 Jan 2021 19:00:16 +0000 Subject: Change in osmo-bsc[master]: cosmetic: bts-sysmo: Fix whitespace indentation In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22536 ) Change subject: cosmetic: bts-sysmo: Fix whitespace indentation ...................................................................... cosmetic: bts-sysmo: Fix whitespace indentation Change-Id: Ia4594d8a98aee19f14e75449cfdfdc0fbcaf6e9f --- M src/osmo-bsc/bts_sysmobts.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, approved diff --git a/src/osmo-bsc/bts_sysmobts.c b/src/osmo-bsc/bts_sysmobts.c index bef1275..e319f2c 100644 --- a/src/osmo-bsc/bts_sysmobts.c +++ b/src/osmo-bsc/bts_sysmobts.c @@ -57,7 +57,7 @@ sizeof(model_sysmobts._features_data); memset(model_sysmobts.features.data, 0, model_sysmobts.features.data_len); - osmo_bts_set_feature(&model_sysmobts.features, BTS_FEAT_GPRS); + osmo_bts_set_feature(&model_sysmobts.features, BTS_FEAT_GPRS); osmo_bts_set_feature(&model_sysmobts.features, BTS_FEAT_EGPRS); osmo_bts_set_feature(&model_sysmobts.features, BTS_FEAT_PAGING_COORDINATION); osmo_bts_set_feature(&model_sysmobts.features, BTS_FEAT_IPV6_NSVC); -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22536 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ia4594d8a98aee19f14e75449cfdfdc0fbcaf6e9f Gerrit-Change-Number: 22536 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 19:31:16 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 29 Jan 2021 19:31:16 +0000 Subject: Change in titan.TestPorts.AF_PACKET[master]: add module parameter "sleep_on_enobufs" to work around -ENOBUFS References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/titan.TestPorts.AF_PACKET/+/22539 ) Change subject: add module parameter "sleep_on_enobufs" to work around -ENOBUFS ...................................................................... add module parameter "sleep_on_enobufs" to work around -ENOBUFS AF_PACKET sockets have these incredibly useful semantics in where for both non-blocking and blocking I/O, they will tell you the socket is rwite-able, but then still return -1 and sett errno=ENOBUFS if the current socket buffer / transmit queue is full. All we can do is usleep and retry. The new module parameter, if set to non-zero, determines the number of microseconds we shall sleep before any retry. If set to zero, the existing behavior is preserved: TTCN_error(). Related: SYS#5343 Change-Id: I1608403d94a10ae52c7e1de0f1b02687b048c01e --- M src/AF_PACKET_PT.cc M src/AF_PACKET_PT.hh 2 files changed, 17 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/titan.TestPorts.AF_PACKET refs/changes/39/22539/1 diff --git a/src/AF_PACKET_PT.cc b/src/AF_PACKET_PT.cc index aa2def6..935f47c 100644 --- a/src/AF_PACKET_PT.cc +++ b/src/AF_PACKET_PT.cc @@ -108,6 +108,8 @@ mNetdev_name = NULL; } mNetdev_name = strdup(parameter_value); + } else if (!strcmp(parameter_name, "sleep_on_enobufs")) { + mSleepUsOnEnobufs = atoi(parameter_value); } else TTCN_error("Unsupported test port parameter `%s'.", parameter_name); } @@ -204,13 +206,22 @@ void AF__PACKET__PT_PROVIDER::outgoing_send(const AF__PACKET__Unitdata& send_par) { - int rc; - assert(mSocket >= 0); - rc = write(mSocket, send_par.data(), send_par.data().lengthof()); - if (rc < send_par.data().lengthof()) - TTCN_error("Short write on AF_PACKET socket: %s", strerror(errno)); + while (true) { + int rc = write(mSocket, send_par.data(), send_par.data().lengthof()); + if (rc == send_par.data().lengthof()) + break; + if (mSleepUsOnEnobufs && rc == -1 && errno == -ENOBUFS) { + /* This is fscking insane. Even select() would tell us the FD + * is write-able, but then we still get -ENOBUFS. The only way + * to do this os to sleep. */ + usleep(mSleepUsOnEnobufs); + } else if (rc < send_par.data().lengthof()) { + TTCN_error("Short write on AF_PACKET socket: %s", strerror(errno)); + break; + } + } } diff --git a/src/AF_PACKET_PT.hh b/src/AF_PACKET_PT.hh index 7f8f6b5..ab3e8c6 100644 --- a/src/AF_PACKET_PT.hh +++ b/src/AF_PACKET_PT.hh @@ -50,6 +50,7 @@ private: char *mNetdev_name; /* name of the network interface */ + bool mSleepUsOnEnobufs; /* how many us to sleep on ENOBUFS */ int mIfindex; /* interface index of the network device */ int mSocket; /* socket/file descriptor of the AF_PACKET socket */ uint8_t mRxBuf[2048]; /* read buffer */ -- To view, visit https://gerrit.osmocom.org/c/titan.TestPorts.AF_PACKET/+/22539 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: titan.TestPorts.AF_PACKET Gerrit-Branch: master Gerrit-Change-Id: I1608403d94a10ae52c7e1de0f1b02687b048c01e Gerrit-Change-Number: 22539 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 20:29:22 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 29 Jan 2021 20:29:22 +0000 Subject: Change in titan.TestPorts.AF_PACKET[master]: add module parameter "sleep_on_enobufs" to work around -ENOBUFS In-Reply-To: References: Message-ID: laforge has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/titan.TestPorts.AF_PACKET/+/22539 ) Change subject: add module parameter "sleep_on_enobufs" to work around -ENOBUFS ...................................................................... add module parameter "sleep_on_enobufs" to work around -ENOBUFS AF_PACKET sockets have these incredibly useful semantics in where for both non-blocking and blocking I/O, they will tell you the socket is rwite-able, but then still return -1 and sett errno=ENOBUFS if the current socket buffer / transmit queue is full. All we can do is usleep and retry. The new module parameter, if set to non-zero, determines the number of microseconds we shall sleep before any retry. If set to zero, the existing behavior is preserved: TTCN_error(). Related: SYS#5343 Change-Id: I1608403d94a10ae52c7e1de0f1b02687b048c01e --- M src/AF_PACKET_PT.cc M src/AF_PACKET_PT.hh 2 files changed, 17 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/titan.TestPorts.AF_PACKET refs/changes/39/22539/2 -- To view, visit https://gerrit.osmocom.org/c/titan.TestPorts.AF_PACKET/+/22539 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: titan.TestPorts.AF_PACKET Gerrit-Branch: master Gerrit-Change-Id: I1608403d94a10ae52c7e1de0f1b02687b048c01e Gerrit-Change-Number: 22539 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 21:09:27 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 29 Jan 2021 21:09:27 +0000 Subject: Change in libosmocore[master]: cosmetic: fix typo in comment In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22535 ) Change subject: cosmetic: fix typo in comment ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22535 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I787cca5a032c57202a86dab18e1790ef3ad1509a Gerrit-Change-Number: 22535 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 29 Jan 2021 21:09:27 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 21:09:47 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 29 Jan 2021 21:09:47 +0000 Subject: Change in libosmocore[master]: gsm: Fix wrong length in SI13 GPRS Cell Options IE In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22538 ) Change subject: gsm: Fix wrong length in SI13 GPRS Cell Options IE ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22538 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I20efb4403cdf6c5bc717502a7075630044142f17 Gerrit-Change-Number: 22538 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 29 Jan 2021 21:09:47 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 21:10:14 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 29 Jan 2021 21:10:14 +0000 Subject: Change in libosmocore[master]: gsm: bts_features: Introduce BTS_FEAT_CCN In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22537 ) Change subject: gsm: bts_features: Introduce BTS_FEAT_CCN ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22537 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I61991266b95d0c13d51b47906cc07846e9cf1390 Gerrit-Change-Number: 22537 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 29 Jan 2021 21:10:14 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 21:10:17 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 29 Jan 2021 21:10:17 +0000 Subject: Change in libosmocore[master]: cosmetic: fix typo in comment In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22535 ) Change subject: cosmetic: fix typo in comment ...................................................................... cosmetic: fix typo in comment Change-Id: I787cca5a032c57202a86dab18e1790ef3ad1509a --- M include/osmocom/gsm/bts_features.h 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/include/osmocom/gsm/bts_features.h b/include/osmocom/gsm/bts_features.h index 98e6c7b..6856aac 100644 --- a/include/osmocom/gsm/bts_features.h +++ b/include/osmocom/gsm/bts_features.h @@ -7,7 +7,7 @@ /* N. B: always add new features to the end of the list (right before _NUM_BTS_FEAT) to avoid breaking compatibility with BTS compiled against earlier version of this header. Also make sure that the description strings - gsm_bts_features_descs[] in gsm_data.c are also updated accordingly! */ + osmo_bts_features_descs[] in gsm_data.c are also updated accordingly! */ enum osmo_bts_features { BTS_FEAT_HSCSD, BTS_FEAT_GPRS, -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22535 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I787cca5a032c57202a86dab18e1790ef3ad1509a Gerrit-Change-Number: 22535 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 21:10:17 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 29 Jan 2021 21:10:17 +0000 Subject: Change in libosmocore[master]: gsm: Fix wrong length in SI13 GPRS Cell Options IE In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22538 ) Change subject: gsm: Fix wrong length in SI13 GPRS Cell Options IE ...................................................................... gsm: Fix wrong length in SI13 GPRS Cell Options IE Older commit adding the 2 bits for Rel-4 extension forgot to increase the length field (see TS 44.060 Table 12.24.1) Fixes: 946bb95af1838fcf026587c51a6ad36e34e202c3 Change-Id: I20efb4403cdf6c5bc717502a7075630044142f17 --- M src/gsm/gsm48_rest_octets.c 1 file changed, 2 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/gsm/gsm48_rest_octets.c b/src/gsm/gsm48_rest_octets.c index b2b37b3..f45e818 100644 --- a/src/gsm/gsm48_rest_octets.c +++ b/src/gsm/gsm48_rest_octets.c @@ -911,12 +911,12 @@ bitvec_set_bit(bv, 1); if (!gco->ext_info.egprs_supported) { /* 6bit length of extension */ - bitvec_set_uint(bv, (1 + 3)-1, 6); + bitvec_set_uint(bv, (1 + 5)-1, 6); /* EGPRS supported in the cell */ bitvec_set_bit(bv, 0); } else { /* 6bit length of extension */ - bitvec_set_uint(bv, (1 + 5 + 3)-1, 6); + bitvec_set_uint(bv, (1 + 5 + 5)-1, 6); /* EGPRS supported in the cell */ bitvec_set_bit(bv, 1); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22538 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I20efb4403cdf6c5bc717502a7075630044142f17 Gerrit-Change-Number: 22538 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 21:10:18 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 29 Jan 2021 21:10:18 +0000 Subject: Change in libosmocore[master]: gsm: bts_features: Introduce BTS_FEAT_CCN In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22537 ) Change subject: gsm: bts_features: Introduce BTS_FEAT_CCN ...................................................................... gsm: bts_features: Introduce BTS_FEAT_CCN This feature is used by BSC to gain knowledge on whether a given BTS supports GPRS Cell Change Notification (CCN) related procedures on PDCH, and as a result enable or not by default the CCN_ACTIVE bit in SI13 to announce the support it is allowed to use the feature. Related: SYS#4909 Change-Id: I61991266b95d0c13d51b47906cc07846e9cf1390 --- M include/osmocom/gsm/bts_features.h M src/gsm/bts_features.c 2 files changed, 2 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/include/osmocom/gsm/bts_features.h b/include/osmocom/gsm/bts_features.h index 6856aac..d0dbe48 100644 --- a/include/osmocom/gsm/bts_features.h +++ b/include/osmocom/gsm/bts_features.h @@ -27,6 +27,7 @@ BTS_FEAT_PAGING_COORDINATION, /* BTS hands CS paging to PCU/PACCH */ BTS_FEAT_IPV6_NSVC, BTS_FEAT_ACCH_REP, + BTS_FEAT_CCN, /* Is CCN supported by the cell? TS 44.060 sec 8.8.2 */ _NUM_BTS_FEAT }; diff --git a/src/gsm/bts_features.c b/src/gsm/bts_features.c index d8c27d8..1e15616 100644 --- a/src/gsm/bts_features.c +++ b/src/gsm/bts_features.c @@ -42,6 +42,7 @@ { BTS_FEAT_PAGING_COORDINATION, "BSS Paging Coordination" }, { BTS_FEAT_IPV6_NSVC, "NSVC IPv6" }, { BTS_FEAT_ACCH_REP, "FACCH/SACCH Repetition" }, + { BTS_FEAT_CCN, "Cell Change Notification (CCN)" }, { 0, NULL } }; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22537 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I61991266b95d0c13d51b47906cc07846e9cf1390 Gerrit-Change-Number: 22537 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 21:11:35 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 29 Jan 2021 21:11:35 +0000 Subject: Change in osmo-bsc[master]: Allow configuring SI13 CCN_ACTIVE bit from VTY, enable by default on ... In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21714 ) Change subject: Allow configuring SI13 CCN_ACTIVE bit from VTY, enable by default on osmo-bts ...................................................................... Patch Set 5: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21714 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: If91d85331d402c3ab9c32b70c2c66cd7ba6ceb28 Gerrit-Change-Number: 21714 Gerrit-PatchSet: 5 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: fixeria Gerrit-Comment-Date: Fri, 29 Jan 2021 21:11:35 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 21:13:25 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 29 Jan 2021 21:13:25 +0000 Subject: Change in osmo-pcu[master]: doc: Introduce section documenting NACC support In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22531 ) Change subject: doc: Introduce section documenting NACC support ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22531 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I74e4828ed1b99a7f4d28ea4797c93ee85c0068cb Gerrit-Change-Number: 22531 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 29 Jan 2021 21:13:25 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 21:13:27 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 29 Jan 2021 21:13:27 +0000 Subject: Change in osmo-pcu[master]: nacc: Improve log line failing to establish CTRL neigh conn In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22534 ) Change subject: nacc: Improve log line failing to establish CTRL neigh conn ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22534 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ic92158f9fe986ff427ee2ed2cfbf95549e348746 Gerrit-Change-Number: 22534 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 29 Jan 2021 21:13:27 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 21:13:29 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 29 Jan 2021 21:13:29 +0000 Subject: Change in osmo-pcu[master]: doc: Introduce section documenting NACC support In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22531 ) Change subject: doc: Introduce section documenting NACC support ...................................................................... doc: Introduce section documenting NACC support Change-Id: I74e4828ed1b99a7f4d28ea4797c93ee85c0068cb --- M doc/manuals/chapters/configuration.adoc 1 file changed, 80 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/doc/manuals/chapters/configuration.adoc b/doc/manuals/chapters/configuration.adoc index f3323d7..7371e72 100644 --- a/doc/manuals/chapters/configuration.adoc +++ b/doc/manuals/chapters/configuration.adoc @@ -220,6 +220,86 @@ Set the gamma parameter for MS power control in units of dB. +=== Configuring Network Assisted Cell Change (NACC) + +Network Assisted Cell Change, defined in 3GPP TS 44.060 sub-clause 8.8, is a +feature providing the MS aid when changing to a new cell due to autonomous +reselection. In summary, the MS informs the current cell its intention to change +to a new target cell, and the network decides whether to grant the intended cell +change or order a change to another neighbor cell. It also provides several +System Informations of the target cell to the MS to allow for quicker +reselection towards it. + +OsmoPCU will automatically provide the required neighbor System Information when +the MS requests NACC towards a target cell also under the management of the same +OsmoPCU instance, since it already has the System Information of all BTS under +their control, obtained through PCUIF when the BTS registers against OsmoPCU, so +no specific user configuration is required here. + +However, for remote neighbors (cells managed by another OsmoPCU instance), +OsmoPCU requires to gather the information from somewhere else before being able +to provide it to the MS requesting the NACC. + +If OsmoPCU fails to gather the System Information, it will simply answer the MS +allowing the proposed changed but without previously providing the System +Information of the target cell. + +==== Neighbor Address Resolution + +First of all, it needs to translate the identity of the target +cell to change to, provided by the MS, into an identity that the Core Network +can use and understand to identify the target cell, which happens to be a key +composed of . This key is also named conveniently as +CGI-PS, since it actually equals to the Circuit Switch CGI + RAC. + +In order to apply this target cell identity translation, OsmoPCU uses the +OsmoBSC Neighbor Resolution CTRL interface (see OsmoBSC User Manual), since the +BSC is the node holding all the neighbor related information. +By default, the use of this interface is not configured and hence disabled in +OsmoPCU. As a result, until configured, the network won't be able to provide the +System Information to the MS prior to allowing the change during NACC against +remote cells, which means the cell change will take longer to complete. In order +to configure the interface, the OsmoBSC IP address and port to connect to must +be configured in OsmoPCU VTY. + +These neighbor address resolutions ( => ) are by default +cached for a while in order to avoid querying the BSC frequently and, as a +result, optimizing the resolution time too. + +.Example: Configure Neighbor Resolution CTRL interface against OsmoBSC +---- +pcu + neighbor resolution 172.18.13.10 4248 <1> + timer X1 500 <2> + timer X0 60 <3> +---- +<1> Port 4248 is the default and hence could be omitted in this case +<2> Time out if the BSC doesn't answer our CTRL resolution request after 500 ms +<3> Keep resolved neighbor addresses cached for 60 seconds + +==== System Information Resolution + +Once OsmoPCU gains knowledge of the target cell's address in the Core Network, +it can query its System Information. The query is done using RIM procedures +(NACC RAN-INFO application) over the Gb interface against the SGSN that OsmoPCU +is connected to. In its turn, the SGSN will potentially forward this query to +the PCU serving the target cell, which will provide back the System Information +of that cell. + +The System Information received from remote neighbors are by default +cached for a while in order to avoid querying the SGSN frequently and, as a +result, optimizing the resolution time too. + +.Example: Configure System Information resolution +---- +pcu + timer X2 500 <1> + timer X11 60 <2> +---- +<1> Time out if the SGSN doesn't answer our RIM RAN-INFO request request after 500 ms +<2> Keep resolved remote neighbor System Information cached for 60 seconds + + === GPRS vs EGPRS considerations ==== Configuration -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22531 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I74e4828ed1b99a7f4d28ea4797c93ee85c0068cb Gerrit-Change-Number: 22531 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 21:13:30 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 29 Jan 2021 21:13:30 +0000 Subject: Change in osmo-pcu[master]: nacc: Improve log line failing to establish CTRL neigh conn In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22534 ) Change subject: nacc: Improve log line failing to establish CTRL neigh conn ...................................................................... nacc: Improve log line failing to establish CTRL neigh conn Change-Id: Ic92158f9fe986ff427ee2ed2cfbf95549e348746 --- M src/nacc_fsm.c 1 file changed, 3 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/nacc_fsm.c b/src/nacc_fsm.c index fcf4b58..510b3d8 100644 --- a/src/nacc_fsm.c +++ b/src/nacc_fsm.c @@ -316,8 +316,9 @@ NULL, 0, pcu->vty.neigh_ctrl_addr, pcu->vty.neigh_ctrl_port, OSMO_SOCK_F_CONNECT); if (rc < 0) { - LOGPFSML(fi, LOGL_ERROR, "Can't connect to CTRL @ %s:%u\n", - pcu->vty.neigh_ctrl_addr, pcu->vty.neigh_ctrl_port); + LOGPFSML(fi, LOGL_ERROR, + "Failed to establish CTRL (neighbor resolution) connection to BSC r=%s:%u\n\n", + pcu->vty.neigh_ctrl_addr, pcu->vty.neigh_ctrl_port); goto err_term; } -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22534 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ic92158f9fe986ff427ee2ed2cfbf95549e348746 Gerrit-Change-Number: 22534 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 21:13:59 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 29 Jan 2021 21:13:59 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: WIP RIM support In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22314 ) Change subject: gbproxy: WIP RIM support ...................................................................... Patch Set 2: (3 comments) https://gerrit.osmocom.org/c/osmo-sgsn/+/22314/2/src/gbproxy/gb_proxy.c File src/gbproxy/gb_proxy.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/22314/2/src/gbproxy/gb_proxy.c at 953 PS2, Line 953: insure ensure https://gerrit.osmocom.org/c/osmo-sgsn/+/22314/2/src/gbproxy/gb_proxy.c at 969 PS2, Line 969: } > Yeah, but we might talk to a (3rd party) SGSN that supports other protocols. [?] Definitely, gbproxy should simply forward anything != GERAN to the SGSN and let the SGSN deal with it. https://gerrit.osmocom.org/c/osmo-sgsn/+/22314/2/src/gbproxy/gb_proxy.c at 1275 PS2, Line 1275: insure "ensure". And why would we want to check the RIM Source address here? If it's from the SGSN, we don't care which is the source address (not even whether it's GERAN). We just care about the destination, which must be within the cells covered by this gbproxy. -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22314 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I3403736eed9d6819634c26db0b90393ac6f4416a Gerrit-Change-Number: 22314 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Assignee: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-CC: dexter Gerrit-CC: laforge Gerrit-Comment-Date: Fri, 29 Jan 2021 21:13:59 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: daniel Comment-In-Reply-To: dexter Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 21:15:47 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 29 Jan 2021 21:15:47 +0000 Subject: Change in osmo-gsm-manuals[master]: cs7-config: Describe special meaning of M3UA routing context '0' In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/22528 ) Change subject: cs7-config: Describe special meaning of M3UA routing context '0' ...................................................................... Patch Set 1: Code-Review+2 > Patch Set 1: Code-Review+1 > > I wonder why do we do that and not use -1 instead to represent no routing context. because it's a 32bit unsigned integer. So either way you do it, you will loose either '0' or ffffffff :( The only "real" solution would introduce another bool flags everywhere. I don't think it's worth doing this unless somebody actually complains that this causes a real-world problem. Most deployments probably have no routing contexts in M3UA at all (only one AS per ASP) -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/22528 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-manuals Gerrit-Branch: master Gerrit-Change-Id: Iac0bc1e754d04b2e798263bfa029d26376e4e92f Gerrit-Change-Number: 22528 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 29 Jan 2021 21:15:47 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 21:15:50 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 29 Jan 2021 21:15:50 +0000 Subject: Change in osmo-gsm-manuals[master]: cs7-config: Describe special meaning of M3UA routing context '0' In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/22528 ) Change subject: cs7-config: Describe special meaning of M3UA routing context '0' ...................................................................... cs7-config: Describe special meaning of M3UA routing context '0' Osmocom has a special interpretation of the routing-context '0'. Let's document that. Change-Id: Iac0bc1e754d04b2e798263bfa029d26376e4e92f --- M common/chapters/cs7-config.adoc 1 file changed, 26 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/common/chapters/cs7-config.adoc b/common/chapters/cs7-config.adoc index a0957fd..62e85bb 100644 --- a/common/chapters/cs7-config.adoc +++ b/common/chapters/cs7-config.adoc @@ -307,3 +307,29 @@ routing-key RCONTEXT DPC ssn SSN routing-key RCONTEXT DPC si (aal2|bicc|b-isup|h248|isup|sat-isup|sccp|tup) ssn SSN ---- + +==== M3UA without Routing Context IE / Routing Context '0' + +As per the M3UA specification, the use of the routing context IE is +optional as long as there is only one AS within an ASP. As soon as +there are multiple different AS within one ASP, the routing context IE +is mandatory, as it is the only clue to differentiate which of the ASs a +given message belongs to. + +In the Osmocom M3UA implementation, it is generally assumed that a +routing context IE is always used, for the sake of clarity. + +However, the routing context ID of '0' has the special meaning of _do +not encode a routing context IE on transmit_. + +So if you configure an application like OsmoBSC to use routing context +0, then no routing context IE will be included in outbound M3UA +messages. + +This special interpretation of '0' within the Osmocom M3UA +implementation however means that we can not represent M3UA with a +routing context IE that actually contains '0' as a numeric identifier. + +So you only have the following options: +* Using M3UA with routing context (1..N) +* Using M3UA without routing context (0) -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/22528 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-manuals Gerrit-Branch: master Gerrit-Change-Id: Iac0bc1e754d04b2e798263bfa029d26376e4e92f Gerrit-Change-Number: 22528 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 21:16:01 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 29 Jan 2021 21:16:01 +0000 Subject: Change in osmo-ttcn3-hacks[master]: rlcmac: introduce initial support for NACC related messages In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22058 ) Change subject: rlcmac: introduce initial support for NACC related messages ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22058 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I4d2f123479c34e6afffe0bc8d91409e6b0529a62 Gerrit-Change-Number: 22058 Gerrit-PatchSet: 5 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Fri, 29 Jan 2021 21:16:01 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 21:16:14 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 29 Jan 2021 21:16:14 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Introduce test TC_nacc_outbound_success In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22387 ) Change subject: pcu: Introduce test TC_nacc_outbound_success ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22387 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I951db4af731e5a7c207f0f407dd78d166e2d3d26 Gerrit-Change-Number: 22387 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 29 Jan 2021 21:16:14 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 21:16:17 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 29 Jan 2021 21:16:17 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Introduce test TC_nacc_outbound_rac_ci_resolve_timeout In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22452 ) Change subject: pcu: Introduce test TC_nacc_outbound_rac_ci_resolve_timeout ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22452 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ia09fbfe9aba34a51e0715d1c307de280e3ae0249 Gerrit-Change-Number: 22452 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 29 Jan 2021 21:16:17 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 21:16:25 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 29 Jan 2021 21:16:25 +0000 Subject: Change in osmo-ttcn3-hacks[master]: rlcmac: introduce initial support for NACC related messages In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22058 ) Change subject: rlcmac: introduce initial support for NACC related messages ...................................................................... rlcmac: introduce initial support for NACC related messages Change-Id: I4d2f123479c34e6afffe0bc8d91409e6b0529a62 --- M library/RLCMAC_CSN1_Templates.ttcn M library/RLCMAC_CSN1_Types.ttcn 2 files changed, 163 insertions(+), 7 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/library/RLCMAC_CSN1_Templates.ttcn b/library/RLCMAC_CSN1_Templates.ttcn index 64c709a..1becddd 100644 --- a/library/RLCMAC_CSN1_Templates.ttcn +++ b/library/RLCMAC_CSN1_Templates.ttcn @@ -108,6 +108,77 @@ } }; + const CCNMesurementReport ccn_meas_rep_def := { + rxlev_servig_cell := 0, + zero := '0'B, + num_meas := 0, + meas := { } + } + + /* TS 44.060 sec 11.2.3a */ + template (value) RlcmacUlCtrlMsg ts_RlcMacUlCtrl_PKT_CELL_CHG_NOTIF(uint5_t tfi, + GsmArfcn arfcn, + uint6_t bsic, + template (value) CCNMesurementReport ccn_meas_rep := ccn_meas_rep_def) + := { + msg_type := PACKET_CELL_CHANGE_NOTIFICATION, + u := { + cell_chg_notif := { + gtfi := { + is_dl_tfi := false, + tfi := tfi + }, + arfcn_bsic_presence := '0'B, + arfcn := arfcn, + bsic := bsic, + ba_psi3_presence := '0'B, + ba_used := '0'B, + psi3_change_mark := omit, + pmo_used := '0'B, + pccn_sending := '0'B, + ccn_meas_rep := ccn_meas_rep + } + } + }; + + /* TS 44.060 sec 11.2.2a */ + template RlcmacDlCtrlMsg tr_RlcMacDlCtrl_PKT_CELL_CHG_CONTINUE(template GlobalTfi tfi := ?) + := { + msg_type := PACKET_CELL_CHANGE_CONTINUE, + u := { + cell_chg_continue := { + page_mode := ?, + zero := '0'B, + gtfi := tfi, + arfcn_bsic_presence := ?, + arfcn := *, + bsic := *, + container_id := * + } + } + }; + + /* TS 44.060 sec 11.2.9e */ + template RlcmacDlCtrlMsg tr_RlcMacDlCtrl_PKT_NEIGH_CELL_DATA(template (present) GlobalTfi tfi := ?, + template (present) uint5_t container_index := ?) + := { + msg_type := PACKET_NEIGHBOUR_CELL_DATA, + u := { + neighbour_cell_data := { + page_mode := ?, + zero := '0'B, + gtfi := tfi, + container_id := ?, + spare := '0'B, + container_index := container_index, + arfcn_bsic_presence := ?, + arfcn := *, + bsic := *, + container_list := ? + } + } + }; + private function f_presence_bit_tfi(template uint5_t tfi) return BIT1 { if (istemplatekind(tfi, "omit")) { return '0'B; diff --git a/library/RLCMAC_CSN1_Types.ttcn b/library/RLCMAC_CSN1_Types.ttcn index 14570bf..af8b8d6 100644 --- a/library/RLCMAC_CSN1_Types.ttcn +++ b/library/RLCMAC_CSN1_Types.ttcn @@ -32,6 +32,8 @@ PACKET_TBF_RELEASE ('001000'B), PACKET_UL_ACK_NACK ('001001'B), PACKET_UL_ASSIGNMENT ('001010'B), + PACKET_CELL_CHANGE_CONTINUE ('001011'B), + PACKET_NEIGHBOUR_CELL_DATA ('001100'B), PACKET_DL_DUMMY_CTRL ('100101'B) } with { variant "FIELDLENGTH(6)" }; @@ -49,7 +51,7 @@ PACKET_EGPRS_DL_ACK_NACK ('001000'B), PACKET_PAUSE ('001001'B), ADDITIONAL_MS_RA_CAPABILITIES ('001011'B), - PACKET_CELL_CANGE_NOTIFICATION ('001100'B), + PACKET_CELL_CHANGE_NOTIFICATION ('001100'B), PACKET_SI_STATUS ('001101'B), PACKET_CS_REQUEST ('001110'B), MBMS_SERVICE_REQUEST ('001111'B), @@ -586,6 +588,47 @@ variant (msg) "PRESENCE(msg_escape = '0'B)" }; + /* 11.2.2a Packet Cell Change Continue */ + type record PacketCellChangeContinue { + PageMode page_mode, + BIT1 zero ('0'B), + GlobalTfi gtfi, + BIT1 arfcn_bsic_presence, + uint10_t arfcn optional, + uint6_t bsic optional, + uint2_t container_id optional + } with { + variant (arfcn) "PRESENCE(arfcn_bsic_presence = '1'B)" + variant (bsic) "PRESENCE(arfcn_bsic_presence = '1'B)" + variant (container_id) "PRESENCE(arfcn_bsic_presence = '1'B)" + }; + + /* 11.2.9e Packet Neighbour Cell Data */ + type record PacketNeighbourCellDataContainer { + BIT3 pd, + uint5_t cd_length, + octetstring container_data + } with { + variant (cd_length) "LENGTHTO (container_data)" + variant (container_data) "BYTEORDER(first)" + }; + type record of PacketNeighbourCellDataContainer PacketNeighbourCellDataContainerList + type record PacketNeighbourCellData { + PageMode page_mode, + BIT1 zero ('0'B), + GlobalTfi gtfi, + uint2_t container_id, + BIT1 spare ('0'B), + uint5_t container_index, + BIT1 arfcn_bsic_presence, + uint10_t arfcn optional, + uint6_t bsic optional, + PacketNeighbourCellDataContainerList container_list + } with { + variant (arfcn) "PRESENCE(arfcn_bsic_presence = '1'B)" + variant (bsic) "PRESENCE(arfcn_bsic_presence = '1'B)" + }; + /* 11.2.0.1 */ type union RlcmacDlCtrlUnion { PacketDlAssignment dl_assignment, @@ -594,6 +637,8 @@ PacketUlAckNack ul_ack_nack, PacketDlDummy dl_dummy, PacketPwrControlTA pwr_ta, + PacketCellChangeContinue cell_chg_continue, + PacketNeighbourCellData neighbour_cell_data, octetstring other } with { variant "" }; @@ -607,6 +652,8 @@ ul_ack_nack, msg_type = PACKET_UL_ACK_NACK; dl_dummy, msg_type = PACKET_DL_DUMMY_CTRL; pwr_ta, msg_type = PACKET_PWR_CONTROL_TA; + cell_chg_continue,msg_type = PACKET_CELL_CHANGE_CONTINUE; + neighbour_cell_data,msg_type = PACKET_NEIGHBOUR_CELL_DATA; other, OTHERWISE )" }; @@ -755,14 +802,51 @@ variant (sign_var) "PRESENCE(sign_var_presence = '1'B)" }; + /* 11.2.3a Packet Cell Change Notification */ + type record NCMeasurementItem { + uint6_t freq, + BIT1 bsic_presence, + uint6_t bsic optional, + uint6_t rxlev + } with { + variant (bsic) "PRESENCE(bsic_presence = '1'B)" + }; + type record of NCMeasurementItem NCMeasurements; + type record CCNMesurementReport { + uint6_t rxlev_servig_cell, + BIT1 zero ('0'B), + uint3_t num_meas, + NCMeasurements meas + } with { variant "" }; + type record PacketCellChangeNotification { + GlobalTfi gtfi, + /* TODO: support 3g/4g in these bits */ + BIT1 arfcn_bsic_presence, + uint10_t arfcn optional, + uint6_t bsic optional, + BIT1 ba_psi3_presence, + BIT1 ba_used optional, + BIT2 psi3_change_mark optional, + BIT1 pmo_used, + BIT1 pccn_sending, + CCNMesurementReport ccn_meas_rep + /* TODO: Rel6 additions for 3G support */ + } with { + variant (arfcn) "PRESENCE(arfcn_bsic_presence = '0'B)" + variant (bsic) "PRESENCE(arfcn_bsic_presence = '0'B)" + variant (ba_used) "PRESENCE(ba_psi3_presence = '0'B)" + variant (psi3_change_mark) "PRESENCE(ba_psi3_presence = '1'B)" + }; + /* 11.2.0.2 */ type union RlcmacUlCtrlUnion { - PacketCtrlAck ctrl_ack, - PacketDlAckNack dl_ack_nack, - EgprsPacketDlAckNack dl_ack_nack_egprs, - PacketUlDummy ul_dummy, - PacketResourceReq resource_req, - octetstring other + PacketCtrlAck ctrl_ack, + PacketDlAckNack dl_ack_nack, + EgprsPacketDlAckNack dl_ack_nack_egprs, + PacketUlDummy ul_dummy, + PacketResourceReq resource_req, + PacketCellChangeNotification cell_chg_notif, + octetstring other } with { variant "" }; type record RlcmacUlCtrlMsg { @@ -774,6 +858,7 @@ dl_ack_nack_egprs, msg_type = PACKET_EGPRS_DL_ACK_NACK; ul_dummy, msg_type = PACKET_UL_DUMMY_CTRL; resource_req, msg_type = PACKET_RESOURCE_REQUEST; + cell_chg_notif, msg_type = PACKET_CELL_CHANGE_NOTIFICATION; other, OTHERWISE )" }; -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22058 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I4d2f123479c34e6afffe0bc8d91409e6b0529a62 Gerrit-Change-Number: 22058 Gerrit-PatchSet: 6 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 21:16:30 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 29 Jan 2021 21:16:30 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Introduce test TC_nacc_outbound_si_resolve_timeout In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22453 ) Change subject: pcu: Introduce test TC_nacc_outbound_si_resolve_timeout ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22453 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If0032b940685efaaa8f65357c56c3383fab3e283 Gerrit-Change-Number: 22453 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 29 Jan 2021 21:16:30 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 21:16:32 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 29 Jan 2021 21:16:32 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Introduce test TC_nacc_outbound_rac_ci_resolve_fail_parse_response In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22454 ) Change subject: pcu: Introduce test TC_nacc_outbound_rac_ci_resolve_fail_parse_response ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22454 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If7efddb1ae2ccb580fe85c8df45c9ccdb818c6f3 Gerrit-Change-Number: 22454 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 29 Jan 2021 21:16:32 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 21:16:35 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 29 Jan 2021 21:16:35 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Introduce test TC_nacc_outbound_success_twice In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22487 ) Change subject: pcu: Introduce test TC_nacc_outbound_success_twice ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22487 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ia7b1584b3f7abfa2697a1f155c8b7788a3b0722e Gerrit-Change-Number: 22487 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 29 Jan 2021 21:16:35 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 21:16:37 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 29 Jan 2021 21:16:37 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Introduce test TC_nacc_outbound_rac_ci_resolve_conn_refused In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22488 ) Change subject: pcu: Introduce test TC_nacc_outbound_rac_ci_resolve_conn_refused ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22488 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ia0452879edb958098598e9e1c943f4e1e458a9bf Gerrit-Change-Number: 22488 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 29 Jan 2021 21:16:37 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 21:17:01 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 29 Jan 2021 21:17:01 +0000 Subject: Change in osmo-bsc[master]: show bug: add test_dyn_ts_amr_tch_{f, h}_to_{h, f}_congestion_assignmen... In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22526 ) Change subject: show bug: add test_dyn_ts_amr_tch_{f,h}_to_{h,f}_congestion_assignment_2.ho_vty ...................................................................... show bug: add test_dyn_ts_amr_tch_{f,h}_to_{h,f}_congestion_assignment_2.ho_vty Name both new tests with suffix '_2' even though the first h_to_f does not exist (yet?), to indicate the complementary nature of those two tests. Related: SYS#5301 Change-Id: I8c8d9d5936f713f7d02e4246eeb373916e62510b --- M tests/handover/handover_tests.ok A tests/handover/test_dyn_ts_amr_tch_f_to_h_congestion_assignment_2.ho_vty A tests/handover/test_dyn_ts_amr_tch_h_to_f_congestion_assignment_2.ho_vty 3 files changed, 79 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/tests/handover/handover_tests.ok b/tests/handover/handover_tests.ok index 2658f8b..bd21d0e 100644 --- a/tests/handover/handover_tests.ok +++ b/tests/handover/handover_tests.ok @@ -17,6 +17,8 @@ pass test_congestion_no_oscillation2.ho_vty pass test_disabled_ho_and_as.ho_vty pass test_dyn_ts_amr_tch_f_to_h_congestion_assignment.ho_vty +pass test_dyn_ts_amr_tch_f_to_h_congestion_assignment_2.ho_vty +pass test_dyn_ts_amr_tch_h_to_f_congestion_assignment_2.ho_vty pass test_dyn_ts_balance_congestion.ho_vty pass test_dyn_ts_congestion_tch_f_vs_tch_h.ho_vty pass test_dyn_ts_congestion_tch_f_vs_tch_h_2.ho_vty diff --git a/tests/handover/test_dyn_ts_amr_tch_f_to_h_congestion_assignment_2.ho_vty b/tests/handover/test_dyn_ts_amr_tch_f_to_h_congestion_assignment_2.ho_vty new file mode 100644 index 0000000..6194596 --- /dev/null +++ b/tests/handover/test_dyn_ts_amr_tch_f_to_h_congestion_assignment_2.ho_vty @@ -0,0 +1,49 @@ +# If a handover from TCH/F to TCH/H frees a dynamic timeslot, +# take the freed TCH/H from the soure timeslot into account, +# both when the target is a dynamic timeslot and when the target is a static timeslot. + +create-bts trx-count 1 timeslots c+s4 dyn TCH/F TCH/F TCH/H PDCH PDCH PDCH + +network + bts 0 + handover2 min-free-slots tch/f 3 + handover2 min-free-slots tch/h 2 + handover2 assignment 1 + +set-ts-use trx 0 0 states * TCH/F - - - * * * +# (there must be at least one measurement report on each lchan for congestion check to work) +meas-rep lchan * * * * rxlev 40 rxqual 0 ta 0 neighbors 30 +congestion-check +# FAIL: after the handover from the dyn TS to TCH/H, the dyn TS has freed two TCH/H, while the static TCH/H has reduced +# the TCH/H count by one. So the resulting free slots are 3 TCH/H, which means no congestion. A handover should occur. +expect-no-chan + +# Again with one more TCH/H occupied, there will still be two free TCH/H after HO on the dyn TS +set-ts-use trx 0 0 states * TCH/F - - TCH/H- * * * +meas-rep lchan * * * * rxlev 40 rxqual 0 ta 0 neighbors 30 +congestion-check +# FAIL: resulting free slots are 2 TCH/H, which means no congestion. A handover should occur. +expect-no-chan + +# Again, with the target being a dyn TS +create-bts trx-count 1 timeslots c+s4 dyn TCH/F TCH/F dyn PDCH PDCH PDCH + +network + bts 1 + handover2 min-free-slots tch/f 3 + handover2 min-free-slots tch/h 2 + handover2 assignment 1 + +set-ts-use trx 1 0 states * TCH/F TCH/F - pdch * * * +meas-rep lchan 1 * * * rxlev 40 rxqual 0 ta 0 neighbors 30 +congestion-check +# FAIL: after the handover from the dyn TS to TCH/H, the dyn TS has freed two TCH/H, while the static TCH/H has reduced +# the TCH/H count by one. So the resulting free slots are 3 TCH/H, which means no congestion. A handover should occur. +expect-no-chan + +# Again with one more TCH/H occupied, there will still be two free TCH/H after HO on the dyn TS +set-ts-use trx 1 0 states * TCH/F TCH/F - TCH/H- * * * +meas-rep lchan 1 * * * rxlev 40 rxqual 0 ta 0 neighbors 30 +congestion-check +# FAIL: resulting free slots are 2 TCH/H, which means no congestion. A handover should occur. +expect-no-chan diff --git a/tests/handover/test_dyn_ts_amr_tch_h_to_f_congestion_assignment_2.ho_vty b/tests/handover/test_dyn_ts_amr_tch_h_to_f_congestion_assignment_2.ho_vty new file mode 100644 index 0000000..36a9817 --- /dev/null +++ b/tests/handover/test_dyn_ts_amr_tch_h_to_f_congestion_assignment_2.ho_vty @@ -0,0 +1,28 @@ +# If a handover from TCH/H to TCH/F frees a dynamic timeslot, +# take the freed TCH/F from the soure timeslot into account, +# when the target is a static timeslot. + +create-bts trx-count 1 timeslots c+s4 dyn TCH/F TCH/F TCH/F PDCH PDCH PDCH + +network + bts 0 + handover2 min-free-slots tch/f 2 + handover2 min-free-slots tch/h 2 + handover2 assignment 1 + +set-ts-use trx 0 0 states * TCH/H- - - - * * * +# (there must be at least one measurement report on each lchan for congestion check to work) +meas-rep lchan * * * * rxlev 40 rxqual 0 ta 0 neighbors 30 +congestion-check +expect-ho from lchan 0 0 1 0 to lchan 0 0 2 0 +expect-ts-use trx 0 0 states * pdch TCH/F - - * * * + +# Again with one more TCH/F occupied, there will still be two free TCH/F after HO on the dyn TS +set-ts-use trx 0 0 states * TCH/H- - - TCH/F * * * +meas-rep lchan * * * * rxlev 40 rxqual 0 ta 0 neighbors 30 +congestion-check +# FAIL: after the handover from the dyn TS to TCH/F, the dyn TS has freed a TCH/F, while the static TCH/F has reduced +# the TCH/F count by one. So the resulting free slots are 2 TCH/F, which means no congestion. A handover should occur. +expect-no-chan + +# (TCH/H -> TCH/F onto a dyn TS will always make TCH/H congestion worse, so there is no useful test case left here) -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22526 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I8c8d9d5936f713f7d02e4246eeb373916e62510b Gerrit-Change-Number: 22526 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 21:17:42 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 29 Jan 2021 21:17:42 +0000 Subject: Change in osmo-bts[master]: chan activ: activate DL SACCH only when TA is known In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/22509 ) Change subject: chan activ: activate DL SACCH only when TA is known ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22509 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I170b63c9856230d5f1a10654a9d950ada8e730d7 Gerrit-Change-Number: 22509 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 29 Jan 2021 21:17:42 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 21:17:45 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 29 Jan 2021 21:17:45 +0000 Subject: Change in osmo-bts[master]: chan activ: activate DL SACCH only when TA is known In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/22509 ) Change subject: chan activ: activate DL SACCH only when TA is known ...................................................................... chan activ: activate DL SACCH only when TA is known A channel activation for handover to another cell does not know the Timing Advance until the handover RACH is received. It does not make much sense to enable downlink SACCH without an accurate TA. If the BSC omits the Access Delay IE (a.k.a. the Timing Advance), do not enable downlink SACCH. This is expected to happen only for inter-cell handover. In all other situations, the TA should be known either from a Channel Request RACH for Immediate Assignment, or from the previous lchan on the same cell upon Assignment / intra-cell handover. Related: OS#4008 OS#4009 SYS#5192 Change-Id: I170b63c9856230d5f1a10654a9d950ada8e730d7 --- M src/common/rsl.c 1 file changed, 14 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/src/common/rsl.c b/src/common/rsl.c index b4df22c..01a0ab4 100644 --- a/src/common/rsl.c +++ b/src/common/rsl.c @@ -1545,11 +1545,23 @@ } /* Indicate which SAPIs should be enabled before the first RACH is received, for handover. See 3GPP TS 48.058 - * 4.1.3 and 4.1.4. */ + * 4.1.3 and 4.1.4. + * + * | | Access || transmit | activate | This implementation + * | MS Power | Delay || on main channel | dl SACCH | activates DL SACCH + * ----------------------------------------------------------------------------------------- + * async ho no * --> yes no no + * async ho yes * --> yes may be started no + * async ho yes yes --> yes may be started yes + * sync ho no no --> yes no no + * sync ho yes no --> yes may be started no + * sync ho yes yes --> yes shall be started yes + */ switch (type) { case RSL_ACT_INTER_ASYNC: case RSL_ACT_INTER_SYNC: - lchan->want_dl_sacch_active = TLVP_PRES_LEN(&tp, RSL_IE_MS_POWER, 1); + lchan->want_dl_sacch_active = (TLVP_PRES_LEN(&tp, RSL_IE_MS_POWER, 1) + && TLVP_PRES_LEN(&tp, RSL_IE_ACCESS_DELAY, 1)); break; default: lchan->want_dl_sacch_active = true; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22509 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I170b63c9856230d5f1a10654a9d950ada8e730d7 Gerrit-Change-Number: 22509 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 21:18:10 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 29 Jan 2021 21:18:10 +0000 Subject: Change in osmo-ttcn3-hacks[master]: GBProxy_Tests: fix TC_rim_* tests In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22525 ) Change subject: GBProxy_Tests: fix TC_rim_* tests ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22525 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ie484f288aa0515ef4df4a3cf7f8a347a3f3cf587 Gerrit-Change-Number: 22525 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 29 Jan 2021 21:18:10 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 21:18:19 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 29 Jan 2021 21:18:19 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Osmocom_Gb_types: add minimum requred tr_ templates for RAN INF In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22461 ) Change subject: Osmocom_Gb_types: add minimum requred tr_ templates for RAN INF ...................................................................... Osmocom_Gb_types: add minimum requred tr_ templates for RAN INF When testing the serving BSS part of the RIM application in osmo-pcu, we will need receiving templates that allow us to verify the response (RAN INFORMATION) rim container. Change-Id: I964d7504f3c4aeaa4ce537316b3140e8b893003d Related: SYS#5103 --- M library/Osmocom_Gb_Types.ttcn 1 file changed, 111 insertions(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved daniel: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/library/Osmocom_Gb_Types.ttcn b/library/Osmocom_Gb_Types.ttcn index 2bbc508..97412b8 100644 --- a/library/Osmocom_Gb_Types.ttcn +++ b/library/Osmocom_Gb_Types.ttcn @@ -2511,7 +2511,14 @@ }, rIMApplicationIdentity := app_id } - + template RIM_Application_Identity tr_RIM_Application_Identity(template OCT1 app_id := ?) := { + iEI := '4B'O, + ext := '1'B, + lengthIndicator := { + length1 := 1 + }, + rIMApplicationIdentity := app_id + } /* 3GPP TS 48.018 11.3.62 */ template (value) RIM_Sequence_Number ts_RIM_Sequence_Number(integer seq) := { @@ -2522,6 +2529,20 @@ }, rIMSequenceNumber := int2oct(seq, 4) } + function tr_RIM_Sequence_Number(template integer seq := ?) return template RIM_Sequence_Number { + var template RIM_Sequence_Number ret; + ret.iEI := '4C'O; + ret.ext := '1'B; + ret.lengthIndicator := { length1 := 4 }; + if (istemplatekind(seq, "*")) { + ret.rIMSequenceNumber := *; + } else if (istemplatekind(seq, "?")) { + ret.rIMSequenceNumber := ?; + } else { + ret.rIMSequenceNumber := int2oct(valueof(seq), 4); + } + return ret; + } /* 3GPP TS 48.018 11.3.62a.1 */ template (value) RAN_Information_Request_RIM_Container @@ -2585,10 +2606,34 @@ applContainer_or_ApplErrContainer := app_cont_or_app_err, sON_Transfer_Application_Identity := son_app_id } + template RAN_Information_RIM_Container + tr_RAN_Information_RIM_Container(template RIM_Application_Identity app_id := ?, + template RIM_Sequence_Number seq := ?, + template RIM_PDU_Indications ind := ?, + template RIM_Protocol_Version_Number ver := omit, + template ApplContainer_or_ApplErrContainer app_cont_or_app_err := omit, + template SON_Transfer_Application_Identity_TLV son_app_id := omit) := { + + iEI := '58'O, + ext := '1'B, + lengthIndicator := { + length1 := ? + }, + rIM_Application_Identity := app_id, + rIM_Sequence_Number := seq, + rIM_PDU_Indications := ind, + rIM_Protocol_Version_Number := ver, + applContainer_or_ApplErrContainer := app_cont_or_app_err, + sON_Transfer_Application_Identity := son_app_id + } template (value) ApplContainer_or_ApplErrContainer tsu_ApplContainer_or_ApplErrContainer_NACC(template (value) ApplContainer_or_ApplErrContainer_NACC cont) := { nacc := cont } + template ApplContainer_or_ApplErrContainer + tru_ApplContainer_or_ApplErrContainer_NACC(template ApplContainer_or_ApplErrContainer_NACC cont := ?) := { + nacc := cont + } template (value) ApplContainer_or_ApplErrContainer tsu_ApplContainer_or_ApplErrContainer_SI3(template (value) ApplContainer_or_ApplErrContainer_SI3 cont) := { si3 := cont @@ -2601,6 +2646,10 @@ tsu_ApplContainer_NACC(template (value) BssgpCellId cid, boolean psi_type, integer si_psi_num, octetstring si_psi) := { application_Container := ts_RAN_Information_Application_Container_NACC(cid, psi_type, si_psi_num, si_psi) } + template ApplContainer_or_ApplErrContainer_NACC + tru_ApplContainer_NACC(template BssgpCellId cid := ?, template boolean psi_type := ?, template integer si_psi_num := ?, template octetstring si_psi := ?) := { + application_Container := tr_RAN_Information_Application_Container_NACC(cid, psi_type, si_psi_num, si_psi) + } template (value) ApplContainer_or_ApplErrContainer_NACC tsu_ApplErrContainer_NACC(template (value) BssgpCellId cid, integer cause, @@ -2762,6 +2811,31 @@ number_of_SI_PSI := int2bit(si_psi_num, 7), sI_PSI := si_psi } + function tr_RAN_Information_Application_Container_NACC(template BssgpCellId cid := ?, template boolean psi_type := ?, + template integer si_psi_num := ?, template octetstring si_psi := ?) + return template RAN_Information_Application_Container_NACC { + var template RAN_Information_Application_Container_NACC ret; + ret.iEI := '4E'O; + ret.ext := '1'B; + ret.lengthIndicator := { length1 := ? }; + ret.reporting_Cell_Identifier := t_Cell_Identifier_V(cid); + if (istemplatekind(psi_type, "*")) { + ret.typeBit := *; + } else if (istemplatekind(psi_type, "?")) { + ret.typeBit := ?; + } else { + ret.typeBit := bool2bit(valueof(psi_type)); + } + if (istemplatekind(si_psi_num, "*")) { + ret.number_of_SI_PSI := *; + } else if (istemplatekind(si_psi_num, "?")) { + ret.number_of_SI_PSI := ?; + } else { + ret.number_of_SI_PSI := int2bit(valueof(si_psi_num), 7); + } + ret.sI_PSI := si_psi; + return ret; + } /* 3GPP TS 48.018 11.3.63.2.2 */ template (value) RAN_Information_Application_Container_SI3 @@ -2999,6 +3073,28 @@ pDU_Type_Extension := type_ext, reserved := '0000'B } + function tr_RIM_PDU_Indications(template boolean ack := ?, template BIT3 type_ext := ?) return template RIM_PDU_Indications { + var template RIM_PDU_Indications ret; + ret.iEI := '4F'O; + ret.ext := '1'B; + ret.lengthIndicator := { length1 := 1 }; + if (istemplatekind(ack, "*")) { + ret.ack := *; + } else if (istemplatekind(ack, "?")) { + ret.ack := ?; + } else { + ret.ack := bool2bit(valueof(ack)); + } + if (istemplatekind(type_ext, "*")) { + ret.pDU_Type_Extension := *; + } else if (istemplatekind(type_ext, "?")) { + ret.pDU_Type_Extension := ?; + } else { + ret.pDU_Type_Extension := valueof(type_ext); + } + ret.reserved := '0000'B; + return ret; + } /* 3GPP TS 48.018 11.3.67 */ template (value) RIM_Protocol_Version_Number ts_RIM_Protocol_Version_Number(integer ver) := { @@ -3009,6 +3105,20 @@ }, rIMProtocolVersionNumber := int2oct(ver, 1) } + function tr_RIM_Protocol_Version_Number(template integer ver := ?) return template RIM_Protocol_Version_Number { + var template RIM_Protocol_Version_Number ret; + ret.iEI := '55'O; + ret.ext := '1'B; + ret.lengthIndicator := { length1 := 1 }; + if (istemplatekind(ver, "*")) { + ret.rIMProtocolVersionNumber := *; + } else if (istemplatekind(ver, "?")) { + ret.rIMProtocolVersionNumber := ?; + } else { + ret.rIMProtocolVersionNumber := int2oct(valueof(ver), 1); + } + return ret; + } /* 3GPP TS 48.018 11.3.70 */ const HEX1 RIM_ADDR_GERAN_CELL_ID := '0'H; -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22461 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I964d7504f3c4aeaa4ce537316b3140e8b893003d Gerrit-Change-Number: 22461 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 21:19:40 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 29 Jan 2021 21:19:40 +0000 Subject: Change in osmo-bsc[master]: lchan assignment when RTP is set up: don't break on Mode Modify In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22510 ) Change subject: lchan assignment when RTP is set up: don't break on Mode Modify ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/22510/1/src/osmo-bsc/assignment_fsm.c File src/osmo-bsc/assignment_fsm.c: https://gerrit.osmocom.org/c/osmo-bsc/+/22510/1/src/osmo-bsc/assignment_fsm.c at 442 PS1, Line 442: && !conn->lchan->fi_rtp) { > i like it when completely unrelated conditions are on a separate line well, but it definitely is not how we generally write code in osmocom. But not a blocker. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22510 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I06d3f35fcc71d77e1f30c2b15ab221ef7d5f7f27 Gerrit-Change-Number: 22510 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Fri, 29 Jan 2021 21:19:40 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Comment-In-Reply-To: neels Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 21:20:47 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 29 Jan 2021 21:20:47 +0000 Subject: Change in osmo-bsc[master]: rename lchan->rqd_ta to last_ta In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22511 ) Change subject: rename lchan->rqd_ta to last_ta ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/22511/1/include/osmocom/bsc/gsm_data.h File include/osmocom/bsc/gsm_data.h: https://gerrit.osmocom.org/c/osmo-bsc/+/22511/1/include/osmocom/bsc/gsm_data.h at 660 PS1, Line 660: uint8_t last_ta; since you explain it so nicely in the commit log, it might be an idea to also add a comment here describing the two use cases of this field. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22511 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I1049526a173819baeb4978db5bf018ba3f1006a0 Gerrit-Change-Number: 22511 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 29 Jan 2021 21:20:47 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 21:22:05 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 29 Jan 2021 21:22:05 +0000 Subject: Change in osmo-bsc[master]: lchan activation: indicate whether TA is known In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22512 ) Change subject: lchan activation: indicate whether TA is known ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22512 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I986bf93e8acd6aef7eaf63ac962480b680aa894f Gerrit-Change-Number: 22512 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 29 Jan 2021 21:22:05 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 21:23:59 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 29 Jan 2021 21:23:59 +0000 Subject: Change in osmo-bsc[master]: stats: Add granularity to chan:rf_fail stat. In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22518 ) Change subject: stats: Add granularity to chan:rf_fail stat. ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/22518/1/src/osmo-bsc/abis_rsl.c File src/osmo-bsc/abis_rsl.c: https://gerrit.osmocom.org/c/osmo-bsc/+/22518/1/src/osmo-bsc/abis_rsl.c at 991 PS1, Line 991: lchan->ts->trx->bts->bts_ctrs->ctr that long chain of pointer de-references was "OK" if we used it only once. But as we now use it at three locatings in the function, I would generally suggest to have a temporary local stack variable for at least 'bts', if not 'bts_ctrs' and ten use that from the three log lines. Not super critical, just letting you know. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22518 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I91fe6659fe9df33763f4070b4f505561b2005d38 Gerrit-Change-Number: 22518 Gerrit-PatchSet: 1 Gerrit-Owner: iedemam Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 29 Jan 2021 21:23:59 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 21:24:36 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 29 Jan 2021 21:24:36 +0000 Subject: Change in osmo-bsc[master]: select_best_cipher(): Prefer A5/1 over A5/2 In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22432 ) Change subject: select_best_cipher(): Prefer A5/1 over A5/2 ...................................................................... select_best_cipher(): Prefer A5/1 over A5/2 We cannot simply use the highest 'x' in A5/x codecs. For A5/7 through A5/3, larger 'x' means better. But: A5/1 is better than A5/2, so we need to prefer the former over the latter. Change-Id: I399fff8d07d1bfcbc6b385e90914ff6d9e00eb73 Closes: OS#4975 --- M src/osmo-bsc/osmo_bsc_bssap.c 1 file changed, 7 insertions(+), 3 deletions(-) Approvals: fixeria: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/osmo-bsc/osmo_bsc_bssap.c b/src/osmo-bsc/osmo_bsc_bssap.c index 63dee9e..9d78153 100644 --- a/src/osmo-bsc/osmo_bsc_bssap.c +++ b/src/osmo-bsc/osmo_bsc_bssap.c @@ -402,12 +402,16 @@ /* select the best cipher permitted by the intersection of both masks */ static int select_best_cipher(uint8_t msc_mask, uint8_t bsc_mask) { + /* A5/7 ... A5/3: We assume higher is better, + * but: A5/1 is better than A5/2, which is better than A5/0 */ + const uint8_t codec_strength[8] = { 7, 6, 5, 4, 3, 1, 2, 0 }; uint8_t intersection = msc_mask & bsc_mask; int i; - for (i = 7; i >= 0; i--) { - if (intersection & (1 << i)) - return i; + for (i = 0; i < ARRAY_SIZE(codec_strength); i++) { + uint8_t codec = codec_strength[i]; + if (intersection & (1 << codec)) + return codec; } return -1; } -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22432 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I399fff8d07d1bfcbc6b385e90914ff6d9e00eb73 Gerrit-Change-Number: 22432 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 21:25:18 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 29 Jan 2021 21:25:18 +0000 Subject: Change in libosmocore[master]: gprs_ns2_vc_fsm: fix nullpointer dereference when sending uintdata In-Reply-To: References: Message-ID: laforge has abandoned this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22349 ) Change subject: gprs_ns2_vc_fsm: fix nullpointer dereference when sending uintdata ...................................................................... Abandoned as lyxis states: I've created an alternative commit to replace this one as https://gerrit.osmocom.org/c/libosmocore/+/22423/1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22349 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I7d7c95604ba4af4ed4b6019f1d432970225f8d7a Gerrit-Change-Number: 22349 Gerrit-PatchSet: 5 Gerrit-Owner: dexter Gerrit-Assignee: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus Gerrit-CC: laforge Gerrit-MessageType: abandon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 21:26:06 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 29 Jan 2021 21:26:06 +0000 Subject: Change in osmo-hlr[master]: Add vty command to show summary of all or filtered subscribers In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-hlr/+/22311 ) Change subject: Add vty command to show summary of all or filtered subscribers ...................................................................... Patch Set 11: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/22311 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-Change-Id: I7f0573381a6d0d13841ac6d42d50f0e8389decf4 Gerrit-Change-Number: 22311 Gerrit-PatchSet: 11 Gerrit-Owner: keith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: neels Gerrit-Comment-Date: Fri, 29 Jan 2021 21:26:06 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 21:26:09 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 29 Jan 2021 21:26:09 +0000 Subject: Change in osmo-hlr[master]: Add vty command to show summary of all or filtered subscribers In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-hlr/+/22311 ) Change subject: Add vty command to show summary of all or filtered subscribers ...................................................................... Add vty command to show summary of all or filtered subscribers Adds the following commands: show subscribers all - Display summary of all entries in HLR show subscribers (imsi|msisdn|cs|ps) ... As above but filter on search field/string show subscribers last seen - Display only subscribers with data in Last LU update field, and sorts by Last LU. Change-Id: I7f0573381a6d0d13841ac6d42d50f0e8389decf4 --- M include/osmocom/hlr/db.h M src/db.c M src/db_hlr.c M src/hlr_vty_subscr.c M tests/test_nodes.vty 5 files changed, 228 insertions(+), 5 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmocom/hlr/db.h b/include/osmocom/hlr/db.h index ca336a0..f70df83 100644 --- a/include/osmocom/hlr/db.h +++ b/include/osmocom/hlr/db.h @@ -8,6 +8,12 @@ struct hlr; enum stmt_idx { + DB_STMT_SEL_ALL, + DB_STMT_SEL_ALL_ORDER_LAST_SEEN, + DB_STMT_SEL_FILTER_MSISDN, + DB_STMT_SEL_FILTER_IMSI, + DB_STMT_SEL_FILTER_CS, + DB_STMT_SEL_FILTER_PS, DB_STMT_SEL_BY_IMSI, DB_STMT_SEL_BY_MSISDN, DB_STMT_SEL_BY_ID, @@ -148,6 +154,9 @@ int db_subscr_exists_by_imsi(struct db_context *dbc, const char *imsi); int db_subscr_exists_by_msisdn(struct db_context *dbc, const char *msisdn); +int db_subscrs_get(struct db_context *dbc, const char *filter_type, const char *filter, + void (*get_cb)(struct hlr_subscriber *subscr, void *data), void *data, + int *count, const char **err); int db_subscr_get_by_imsi(struct db_context *dbc, const char *imsi, struct hlr_subscriber *subscr); int db_subscr_get_by_msisdn(struct db_context *dbc, const char *msisdn, diff --git a/src/db.c b/src/db.c index 5ec20e2..09a17b6 100644 --- a/src/db.c +++ b/src/db.c @@ -51,6 +51,13 @@ "sgsn_via_proxy" static const char *stmt_sql[] = { + [DB_STMT_SEL_ALL] = "SELECT " SEL_COLUMNS " FROM subscriber;", + [DB_STMT_SEL_ALL_ORDER_LAST_SEEN] = "SELECT " SEL_COLUMNS " FROM subscriber " + "WHERE last_lu_seen IS NOT NULL ORDER BY last_lu_seen;", + [DB_STMT_SEL_FILTER_MSISDN] = "SELECT " SEL_COLUMNS " FROM subscriber WHERE msisdn LIKE $search ORDER BY msisdn", + [DB_STMT_SEL_FILTER_IMSI] = "SELECT " SEL_COLUMNS " FROM subscriber WHERE imsi LIKE $search ORDER BY imsi", + [DB_STMT_SEL_FILTER_CS] = "SELECT " SEL_COLUMNS " FROM subscriber WHERE nam_cs = $search ORDER BY last_lu_seen", + [DB_STMT_SEL_FILTER_PS] = "SELECT " SEL_COLUMNS " FROM subscriber WHERE nam_ps = $search ORDER BY last_lu_seen", [DB_STMT_SEL_BY_IMSI] = "SELECT " SEL_COLUMNS " FROM subscriber WHERE imsi = ?", [DB_STMT_SEL_BY_MSISDN] = "SELECT " SEL_COLUMNS " FROM subscriber WHERE msisdn = ?", [DB_STMT_SEL_BY_ID] = "SELECT " SEL_COLUMNS " FROM subscriber WHERE id = ?", diff --git a/src/db_hlr.c b/src/db_hlr.c index 6ba43c2..a181c0c 100644 --- a/src/db_hlr.c +++ b/src/db_hlr.c @@ -627,6 +627,96 @@ /*! Retrieve subscriber data from the HLR database. * \param[in,out] dbc database context. + * \param[in] filter_type ASCII string of identifier type to search. + * \param[in] filter ASCII string to search. + * \param[in] get_cb pointer to call back function for data. + * \param[in,out] data pointer to pass to callback function. + * \param[in,out] count counter for number of matched subscribers. + * \param[in,our] err + * \returns 0 on success, -ENOENT if no subscriber was found, -EIO on + * database error. + */ +int db_subscrs_get(struct db_context *dbc, const char *filter_type, const char *filter, + void (*get_cb)(struct hlr_subscriber *subscr, void *data), void *data, + int *count, const char **err) +{ + sqlite3_stmt *stmt; + char search[256]; + int rc; + struct hlr_subscriber subscr; + bool show_ls = false; + + if (!filter_type) { + stmt = dbc->stmt[DB_STMT_SEL_ALL]; + } else if (strcmp(filter_type, "imsi") == 0) { + stmt = dbc->stmt[DB_STMT_SEL_FILTER_IMSI]; + } else if (strcmp(filter_type, "msisdn") == 0) { + stmt = dbc->stmt[DB_STMT_SEL_FILTER_MSISDN]; + } else if (strcmp(filter_type, "cs") == 0) { + stmt = dbc->stmt[DB_STMT_SEL_FILTER_CS]; + } else if (strcmp(filter_type, "ps") == 0) { + stmt = dbc->stmt[DB_STMT_SEL_FILTER_PS]; + } else if (strcmp(filter_type, "last_lu_seen") == 0) { + show_ls = true; + stmt = dbc->stmt[DB_STMT_SEL_ALL_ORDER_LAST_SEEN]; + } else { + return -EIO; + } + + if (filter && strcmp(filter_type, "last_lu_seen") != 0) { + if (strcmp(filter, "on") == 0) { + sprintf(search, "%s", "1"); + } else if (strcmp(filter, "off") == 0) { + sprintf(search, "%s", "0"); + } else { + sprintf(search, "%%%s%%", filter); + } + if (!db_bind_text(stmt, "$search", search)) { + *err = sqlite3_errmsg(dbc->db); + return -EIO; + } + } + + rc = sqlite3_step(stmt); + + if (rc == SQLITE_DONE) { + db_remove_reset(stmt); + *err = "No matching subscriber(s)"; + return -ENOENT; + } + + while (rc == SQLITE_ROW) { + subscr = (struct hlr_subscriber){ + .id = sqlite3_column_int64(stmt, 0),}; + copy_sqlite3_text_to_buf(subscr.imsi, stmt, 1); + copy_sqlite3_text_to_buf(subscr.msisdn, stmt, 2); + copy_sqlite3_text_to_buf(subscr.imei, stmt, 3); + subscr.nam_cs = sqlite3_column_int(stmt, 9); + subscr.nam_ps = sqlite3_column_int(stmt, 10); + if (show_ls) + parse_last_lu_seen(&subscr.last_lu_seen, (const char *)sqlite3_column_text(stmt, 14), + subscr.imsi, "CS"); + get_cb(&subscr, data); + rc = sqlite3_step(stmt); + (*count)++; + } + + db_remove_reset(stmt); + if (rc != SQLITE_DONE) { + *err = sqlite3_errmsg(dbc->db); + return -EIO; + } else if (rc == SQLITE_DONE) { + *err = NULL; + return 0; + } else { + *err = sqlite3_errmsg(dbc->db); + LOGP(DAUC, LOGL_ERROR, "Cannot read subscribers from db:: %s\n", *err); + return rc; + } +} + +/*! Retrieve subscriber data from the HLR database. + * \param[in,out] dbc database context. * \param[in] id ID of the subscriber in the HLR db. * \param[out] subscr place retrieved data in this struct. * \returns 0 on success, -ENOENT if no such subscriber was found, -EIO on diff --git a/src/hlr_vty_subscr.c b/src/hlr_vty_subscr.c index f5066c1..ad16045 100644 --- a/src/hlr_vty_subscr.c +++ b/src/hlr_vty_subscr.c @@ -44,13 +44,14 @@ return buf; } -static void dump_last_lu_seen(struct vty *vty, const char *domain_label, time_t last_lu_seen) +static void dump_last_lu_seen(struct vty *vty, const char *domain_label, time_t last_lu_seen, bool only_age) { uint32_t age; char datebuf[32]; if (!last_lu_seen) return; - vty_out(vty, " last LU seen on %s: %s", domain_label, get_datestr(&last_lu_seen, datebuf, sizeof(datebuf))); + if (!only_age) + vty_out(vty, " last LU seen on %s: %s", domain_label, get_datestr(&last_lu_seen, datebuf, sizeof(datebuf))); if (!timestamp_age(&last_lu_seen, &age)) vty_out(vty, " (invalid timestamp)%s", VTY_NEWLINE); else { @@ -64,7 +65,10 @@ UNIT_AGO("h", 60*60); UNIT_AGO("m", 60); UNIT_AGO("s", 1); - vty_out(vty, " ago)%s", VTY_NEWLINE); + if (!only_age) + vty_out(vty, " ago)%s", VTY_NEWLINE); + else + vty_out(vty, " ago)"); #undef UNIT_AGO } } @@ -108,8 +112,8 @@ vty_out(vty, " PS disabled%s", VTY_NEWLINE); if (subscr->ms_purged_ps) vty_out(vty, " PS purged%s", VTY_NEWLINE); - dump_last_lu_seen(vty, "CS", subscr->last_lu_seen); - dump_last_lu_seen(vty, "PS", subscr->last_lu_seen_ps); + dump_last_lu_seen(vty, "CS", subscr->last_lu_seen, false); + dump_last_lu_seen(vty, "PS", subscr->last_lu_seen_ps, false); if (!*subscr->imsi) return; @@ -159,6 +163,28 @@ } } +static void subscr_dump_summary_vty(struct hlr_subscriber *subscr, void *data) +{ + struct vty *vty = data; + vty_out(vty, "%-5"PRIu64" %-12s %-16s", subscr->id, + *subscr->msisdn ? subscr->msisdn : "none", + *subscr->imsi ? subscr->imsi : "none"); + + if (*subscr->imei) { + char checksum = osmo_luhn(subscr->imei, 14); + if (checksum == -EINVAL) + vty_out(vty, " %-14s (INVALID LENGTH!)", subscr->imei); + else + vty_out(vty, " %-14s%c", subscr->imei, checksum); + } else { + vty_out(vty," ------------- "); + } + vty_out(vty, " %-2s%-2s ", subscr->nam_cs ? "CS" : "", subscr->nam_ps ? "PS" : ""); + if (subscr->last_lu_seen) + dump_last_lu_seen(vty, "CS", subscr->last_lu_seen, true); + vty_out_newline(vty); +} + static int get_subscr_by_argv(struct vty *vty, const char *type, const char *id, struct hlr_subscriber *subscr) { char imei_buf[GSM23003_IMEI_NUM_DIGITS_NO_CHK+1]; @@ -186,11 +212,52 @@ return rc; } +static void dump_summary_table_vty(struct vty *vty, bool header, bool show_ls) +{ + const char *texts = "ID MSISDN IMSI IMEI NAM"; + const char *lines = "----- ------------ ---------------- ---------------- -----"; + const char *ls_text = " LAST SEEN"; + const char *ls_line = " ------------"; + if (header) { + if (!show_ls) + vty_out(vty, "%s%s%s%s", texts, VTY_NEWLINE, lines, VTY_NEWLINE); + else + vty_out(vty, "%s%s%s%s%s%s", texts, ls_text, VTY_NEWLINE, lines, ls_line, VTY_NEWLINE); + } else { + if (!show_ls) + vty_out(vty, "%s%s%s%s", lines, VTY_NEWLINE, texts, VTY_NEWLINE); + else + vty_out(vty, "%s%s%s%s%s%s", lines, ls_line, VTY_NEWLINE, texts, ls_text, VTY_NEWLINE); + } +} + +static int get_subscrs(struct vty *vty, const char *filter_type, const char *filter) +{ + int rc = -1; + int count = 0; + const char *err; + bool show_ls = (filter_type && strcmp(filter_type, "last_lu_seen") == 0); + dump_summary_table_vty(vty, true, show_ls); + rc = db_subscrs_get(g_hlr->dbc, filter_type, filter, subscr_dump_summary_vty, vty, &count, &err); + if (count > 40) { + dump_summary_table_vty(vty, false, show_ls); + } + if (count > 0) + vty_out(vty, " Subscribers Shown: %d%s", count, VTY_NEWLINE); + if (rc) + vty_out(vty, "%% %s%s", err, VTY_NEWLINE); + return rc; +} + + #define SUBSCR_CMD "subscriber " #define SUBSCR_CMD_HELP "Subscriber management commands\n" #define SUBSCR_SHOW_HELP "Show subscriber information\n" +#define SUBSCRS_SHOW_HELP "Show all subscribers (with filter possibility)\n" #define SUBSCR_ID "(imsi|msisdn|id|imei) IDENT" +#define SUBSCR_FILTER "(imsi|msisdn) FILTER" + #define SUBSCR_ID_HELP \ "Identify subscriber by IMSI\n" \ "Identify subscriber by MSISDN (phone number)\n" \ @@ -225,6 +292,48 @@ "show " SUBSCR_CMD SUBSCR_ID, SHOW_STR SUBSCR_SHOW_HELP SUBSCR_ID_HELP); +DEFUN(show_subscriber_all, + show_subscriber_all_cmd, + "show subscribers all", + SHOW_STR SUBSCRS_SHOW_HELP "Show summary of all subscribers\n") +{ + if (get_subscrs(vty, NULL, NULL)) + return CMD_WARNING; + + return CMD_SUCCESS; +} + +DEFUN(show_subscriber_filtered, + show_subscriber_filtered_cmd, + "show subscribers " SUBSCR_FILTER, + SHOW_STR SUBSCRS_SHOW_HELP + "Filter Subscribers by IMSI\n" "Filter Subscribers by MSISDN\n" "String to match in msisdn or imsi\n") +{ + const char *filter_type = argv[0]; + const char *filter = argv[1]; + + if (get_subscrs(vty, filter_type, filter)) + return CMD_WARNING; + + return CMD_SUCCESS; +} + +ALIAS(show_subscriber_filtered, show_subscriber_filtered_cmd2, + "show subscribers (cs|ps) (on|off)", + SHOW_STR SUBSCR_SHOW_HELP + "Filter Subscribers by CS Network Access Mode\n" "Filter Subscribers by PS Network Access Mode\n" + "Authorised\n" "Not Authorised\n"); + +DEFUN(show_subscriber_order_last_seen, show_subscriber_order_last_seen_cmd, + "show subscribers last-seen", + SHOW_STR SUBSCR_SHOW_HELP "Show Subscribers Ordered by Last Seen Time\n") +{ + if (get_subscrs(vty, "last_lu_seen", NULL)) + return CMD_WARNING; + + return CMD_SUCCESS; +} + DEFUN(subscriber_create, subscriber_create_cmd, SUBSCR_CMD "imsi IDENT create", @@ -678,6 +787,10 @@ void hlr_vty_subscriber_init(void) { + install_element_ve(&show_subscriber_all_cmd); + install_element_ve(&show_subscriber_filtered_cmd); + install_element_ve(&show_subscriber_filtered_cmd2); + install_element_ve(&show_subscriber_order_last_seen_cmd); install_element_ve(&subscriber_show_cmd); install_element_ve(&show_subscriber_cmd); install_element(ENABLE_NODE, &subscriber_create_cmd); diff --git a/tests/test_nodes.vty b/tests/test_nodes.vty index cf1707a..5848fe1 100644 --- a/tests/test_nodes.vty +++ b/tests/test_nodes.vty @@ -13,6 +13,10 @@ OsmoHLR> list ... show gsup-connections + show subscribers all + show subscribers (imsi|msisdn) FILTER + show subscribers (cs|ps) (on|off) + show subscribers last-seen subscriber (imsi|msisdn|id|imei) IDENT show show subscriber (imsi|msisdn|id|imei) IDENT show mslookup services -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/22311 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-Change-Id: I7f0573381a6d0d13841ac6d42d50f0e8389decf4 Gerrit-Change-Number: 22311 Gerrit-PatchSet: 12 Gerrit-Owner: keith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: neels Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 21:26:47 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 29 Jan 2021 21:26:47 +0000 Subject: Change in osmo-pcu[master]: tests/rlcmac: add more test vectors for Packet Resource Request In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22523 ) Change subject: tests/rlcmac: add more test vectors for Packet Resource Request ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22523 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ib5677048f5668185ffe752f97c97d5612eee4d72 Gerrit-Change-Number: 22523 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 29 Jan 2021 21:26:47 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 21:27:15 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 29 Jan 2021 21:27:15 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: agregate RIM related code in gprs_bssgp_rim.c In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22442 ) Change subject: gprs_bssgp: agregate RIM related code in gprs_bssgp_rim.c ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22442 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Icda279452962b06e552cb1361d2a27b7dc8a6b04 Gerrit-Change-Number: 22442 Gerrit-PatchSet: 5 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 29 Jan 2021 21:27:15 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 21:27:18 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 29 Jan 2021 21:27:18 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: agregate RIM related code in gprs_bssgp_rim.c In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22442 ) Change subject: gprs_bssgp: agregate RIM related code in gprs_bssgp_rim.c ...................................................................... gprs_bssgp: agregate RIM related code in gprs_bssgp_rim.c gprs_bssgp and gprs_bssgp_util.c also contains code related to send and receive RIM PDUs via BSSGP and also code to encode and decode RAN INFORMATION PDUs. Lets move this to gprs_bssgp_rim.c Change-Id: Icda279452962b06e552cb1361d2a27b7dc8a6b04 Related: SYS#5103 --- M include/osmocom/gprs/gprs_bssgp.h M include/osmocom/gprs/gprs_bssgp_rim.h M src/gb/gprs_bssgp.c M src/gb/gprs_bssgp_internal.h M src/gb/gprs_bssgp_rim.c M src/gb/gprs_bssgp_util.c 6 files changed, 307 insertions(+), 293 deletions(-) Approvals: laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/include/osmocom/gprs/gprs_bssgp.h b/include/osmocom/gprs/gprs_bssgp.h index a7b363b..e55fa52 100644 --- a/include/osmocom/gprs/gprs_bssgp.h +++ b/include/osmocom/gprs/gprs_bssgp.h @@ -42,39 +42,6 @@ /* Chapter 10.4.14: Status */ int bssgp_tx_status(uint8_t cause, uint16_t *bvci, struct msgb *orig_msg); -/* Chapter 10.6.1: RAN-INFORMATION-REQUEST */ -struct bssgp_ran_information_pdu { - struct bssgp_rim_routing_info routing_info_dest; - struct bssgp_rim_routing_info routing_info_src; - - /* Encoded variant of the RIM container */ - uint8_t rim_cont_iei; - const uint8_t *rim_cont; - unsigned int rim_cont_len; - - /* Decoded variant of the RIM container */ - bool decoded_present; - union { - struct bssgp_ran_inf_req_rim_cont req_rim_cont; - struct bssgp_ran_inf_rim_cont rim_cont; - struct bssgp_ran_inf_ack_rim_cont ack_rim_cont; - struct bssgp_ran_inf_err_rim_cont err_rim_cont; - struct bssgp_ran_inf_app_err_rim_cont app_err_rim_cont; - } decoded; - - /* When receiving a PDU from BSSGP the encoded variant of the RIM - * container will always be present. The decoded variant will be - * present in addition whenever BSSGP was able to decode the container. - * - * When sending a PDU to BSSGP, then the decoded variant is used when - * it is available. The encoded variant (if present) will be ignored - * then. */ -}; -int bssgp_tx_rim(const struct bssgp_ran_information_pdu *pdu, uint16_t nsei); - -int bssgp_parse_rim_pdu(struct bssgp_ran_information_pdu *pdu, const struct msgb *msg); -struct msgb *bssgp_encode_rim_pdu(const struct bssgp_ran_information_pdu *pdu); - enum bssgp_prim { PRIM_BSSGP_DL_UD, PRIM_BSSGP_UL_UD, diff --git a/include/osmocom/gprs/gprs_bssgp_rim.h b/include/osmocom/gprs/gprs_bssgp_rim.h index 418c1bd..5f397c9 100644 --- a/include/osmocom/gprs/gprs_bssgp_rim.h +++ b/include/osmocom/gprs/gprs_bssgp_rim.h @@ -236,3 +236,37 @@ int bssgp_dec_ran_inf_app_err_rim_cont(struct bssgp_ran_inf_app_err_rim_cont *cont, const uint8_t *buf, size_t len); int bssgp_enc_ran_inf_app_err_rim_cont(uint8_t *buf, size_t len, const struct bssgp_ran_inf_app_err_rim_cont *cont); + +/* Chapter 10.6.1: RAN-INFORMATION-REQUEST */ +struct bssgp_ran_information_pdu { + struct bssgp_rim_routing_info routing_info_dest; + struct bssgp_rim_routing_info routing_info_src; + + /* Encoded variant of the RIM container */ + uint8_t rim_cont_iei; + const uint8_t *rim_cont; + unsigned int rim_cont_len; + + /* Decoded variant of the RIM container */ + bool decoded_present; + union { + struct bssgp_ran_inf_req_rim_cont req_rim_cont; + struct bssgp_ran_inf_rim_cont rim_cont; + struct bssgp_ran_inf_ack_rim_cont ack_rim_cont; + struct bssgp_ran_inf_err_rim_cont err_rim_cont; + struct bssgp_ran_inf_app_err_rim_cont app_err_rim_cont; + } decoded; + + /* When receiving a PDU from BSSGP the encoded variant of the RIM + * container will always be present. The decoded variant will be + * present in addition whenever BSSGP was able to decode the container. + * + * When sending a PDU to BSSGP, then the decoded variant is used when + * it is available. The encoded variant (if present) will be ignored + * then. */ +}; + +int bssgp_parse_rim_pdu(struct bssgp_ran_information_pdu *pdu, const struct msgb *msg); +struct msgb *bssgp_encode_rim_pdu(const struct bssgp_ran_information_pdu *pdu); + +int bssgp_tx_rim(const struct bssgp_ran_information_pdu *pdu, uint16_t nsei); diff --git a/src/gb/gprs_bssgp.c b/src/gb/gprs_bssgp.c index 4154c4b..926b0ef 100644 --- a/src/gb/gprs_bssgp.c +++ b/src/gb/gprs_bssgp.c @@ -41,6 +41,7 @@ #include #include "osmocom/gsm/gsm48.h" +#include "gprs_bssgp_internal.h" void *bssgp_tall_ctx = NULL; @@ -647,46 +648,6 @@ return bssgp_prim_cb(&nmp.oph, NULL); } -static int bssgp_rx_rim(struct msgb *msg, struct tlv_parsed *tp, uint16_t bvci) -{ - struct osmo_bssgp_prim nmp; - uint16_t nsei = msgb_nsei(msg); - struct bssgp_normal_hdr *bgph = (struct bssgp_normal_hdr *)msgb_bssgph(msg); - enum bssgp_prim prim; - char ri_src_str[64]; - char ri_dest_str[64]; - - /* Specify PRIM type based on the RIM PDU */ - switch (bgph->pdu_type) { - case BSSGP_PDUT_RAN_INFO: - case BSSGP_PDUT_RAN_INFO_REQ: - case BSSGP_PDUT_RAN_INFO_ACK: - case BSSGP_PDUT_RAN_INFO_ERROR: - case BSSGP_PDUT_RAN_INFO_APP_ERROR: - prim = PRIM_BSSGP_RIM_PDU_TRANSFER; - break; - default: - /* Caller already makes sure that this can't happen. */ - OSMO_ASSERT(false); - } - - /* Send BSSGP RIM indication to NM */ - memset(&nmp, 0, sizeof(nmp)); - nmp.nsei = nsei; - nmp.bvci = bvci; - nmp.tp = tp; - if (bssgp_parse_rim_pdu(&nmp.u.rim_pdu, msg) < 0) - return bssgp_tx_status(BSSGP_CAUSE_MISSING_MAND_IE, NULL, msg); - DEBUGP(DLBSSGP, "BSSGP BVCI=%u Rx RIM-PDU:%s, src=%s, dest=%s\n", - bvci, bssgp_pdu_str(bgph->pdu_type), - bssgp_rim_ri_name_buf(ri_src_str, sizeof(ri_src_str), &nmp.u.rim_pdu.routing_info_src), - bssgp_rim_ri_name_buf(ri_dest_str, sizeof(ri_dest_str), &nmp.u.rim_pdu.routing_info_dest)); - osmo_prim_init(&nmp.oph, SAP_BSSGP_RIM, prim, PRIM_OP_INDICATION, msg); - bssgp_prim_cb(&nmp.oph, NULL); - - return 0; -} - /* One element (msgb) in a BSSGP Flow Control queue */ struct bssgp_fc_queue_element { /* linked list of queue elements */ diff --git a/src/gb/gprs_bssgp_internal.h b/src/gb/gprs_bssgp_internal.h index 2ada027..5022d32 100644 --- a/src/gb/gprs_bssgp_internal.h +++ b/src/gb/gprs_bssgp_internal.h @@ -5,3 +5,5 @@ extern bssgp_bvc_send bssgp_ns_send; extern void *bssgp_ns_send_data; + +int bssgp_rx_rim(struct msgb *msg, struct tlv_parsed *tp, uint16_t bvci); diff --git a/src/gb/gprs_bssgp_rim.c b/src/gb/gprs_bssgp_rim.c index 25f9406..63b303e 100644 --- a/src/gb/gprs_bssgp_rim.c +++ b/src/gb/gprs_bssgp_rim.c @@ -27,6 +27,7 @@ #include #include #include +#include "gprs_bssgp_internal.h" /* TVLV IEs use a variable length field. To be sure we will do all buffer * length checks with the maximum possible header length, which is @@ -949,3 +950,272 @@ return (int)(buf_ptr - buf); } + +/*! Parse a given message buffer into a rim-pdu struct. + * \param[out] pdu user provided memory for the resulting RAN INFORMATION PDU. + * \param[in] msg BSSGP message buffer that contains the encoded RAN INFORMATION PDU. + * \returns 0 on sccess, -EINVAL on error. */ +int bssgp_parse_rim_pdu(struct bssgp_ran_information_pdu *pdu, const struct msgb *msg) +{ + struct tlv_parsed tp[2]; + struct bssgp_normal_hdr *bgph = (struct bssgp_normal_hdr *)msgb_bssgph(msg); + int data_len; + int rc; + uint16_t nsei = msgb_nsei(msg); + + memset(pdu, 0, sizeof(*pdu)); + + data_len = msgb_bssgp_len(msg) - sizeof(*bgph); + if (data_len < 0) + return -EINVAL; + + rc = osmo_tlv_prot_parse(&osmo_pdef_bssgp, tp, ARRAY_SIZE(tp), bgph->pdu_type, bgph->data, data_len, 0, 0, + DLBSSGP, __func__); + if (rc < 0) + return -EINVAL; + + if (TLVP_PRESENT(&tp[0], BSSGP_IE_RIM_ROUTING_INFO)) { + rc = bssgp_parse_rim_ri(&pdu->routing_info_dest, TLVP_VAL(&tp[0], BSSGP_IE_RIM_ROUTING_INFO), + TLVP_LEN(&tp[0], BSSGP_IE_RIM_ROUTING_INFO)); + if (rc < 0) { + LOGP(DLBSSGP, LOGL_ERROR, "BSSGP RIM (NSEI=%u) invalid Destination Cell Identifier IE\n", nsei); + return -EINVAL; + } + } else { + LOGP(DLBSSGP, LOGL_ERROR, "BSSGP RIM (NSEI=%u) missing Destination Cell Identifier IE\n", nsei); + return -EINVAL; + } + + if (TLVP_PRESENT(&tp[1], BSSGP_IE_RIM_ROUTING_INFO)) { + rc = bssgp_parse_rim_ri(&pdu->routing_info_src, TLVP_VAL(&tp[1], BSSGP_IE_RIM_ROUTING_INFO), + TLVP_LEN(&tp[1], BSSGP_IE_RIM_ROUTING_INFO)); + if (rc < 0) { + LOGP(DLBSSGP, LOGL_ERROR, "BSSGP RIM (NSEI=%u) invalid Destination Cell Identifier IE\n", nsei); + return -EINVAL; + } + } else { + LOGP(DLBSSGP, LOGL_ERROR, "BSSGP RIM (NSEI=%u) missing Source Cell Identifier IE\n", nsei); + return -EINVAL; + } + + if (TLVP_PRESENT(&tp[0], BSSGP_IE_RI_REQ_RIM_CONTAINER)) + pdu->rim_cont_iei = BSSGP_IE_RI_REQ_RIM_CONTAINER; + else if (TLVP_PRESENT(&tp[0], BSSGP_IE_RI_RIM_CONTAINER)) + pdu->rim_cont_iei = BSSGP_IE_RI_RIM_CONTAINER; + else if (TLVP_PRESENT(&tp[0], BSSGP_IE_RI_APP_ERROR_RIM_CONT)) + pdu->rim_cont_iei = BSSGP_IE_RI_APP_ERROR_RIM_CONT; + else if (TLVP_PRESENT(&tp[0], BSSGP_IE_RI_ACK_RIM_CONTAINER)) + pdu->rim_cont_iei = BSSGP_IE_RI_ACK_RIM_CONTAINER; + else if (TLVP_PRESENT(&tp[0], BSSGP_IE_RI_ERROR_RIM_COINTAINER)) + pdu->rim_cont_iei = BSSGP_IE_RI_ERROR_RIM_COINTAINER; + else { + LOGP(DLBSSGP, LOGL_ERROR, "BSSGP RIM (NSEI=%u) missing or wrong RIM Container IE\n", nsei); + return -EINVAL; + } + + pdu->rim_cont = TLVP_VAL(&tp[0], pdu->rim_cont_iei); + pdu->rim_cont_len = TLVP_LEN(&tp[0], pdu->rim_cont_iei); + + /* Make sure the rim container field is not empty */ + if (pdu->rim_cont_len < 1) + return -EINVAL; + if (!pdu->rim_cont) + return -EINVAL; + + /* Note: It is not an error if we fail to parse the RIM container, + * since there are applications where parsing the RIM container + * is not necessary (routing). It is up to the API user to check + * the results. */ + switch (pdu->rim_cont_iei) { + case BSSGP_IE_RI_REQ_RIM_CONTAINER: + rc = bssgp_dec_ran_inf_req_rim_cont(&pdu->decoded.req_rim_cont, pdu->rim_cont, pdu->rim_cont_len); + break; + case BSSGP_IE_RI_RIM_CONTAINER: + rc = bssgp_dec_ran_inf_rim_cont(&pdu->decoded.rim_cont, pdu->rim_cont, pdu->rim_cont_len); + break; + case BSSGP_IE_RI_APP_ERROR_RIM_CONT: + rc = bssgp_dec_ran_inf_app_err_rim_cont(&pdu->decoded.app_err_rim_cont, pdu->rim_cont, + pdu->rim_cont_len); + break; + case BSSGP_IE_RI_ACK_RIM_CONTAINER: + rc = bssgp_dec_ran_inf_ack_rim_cont(&pdu->decoded.ack_rim_cont, pdu->rim_cont, pdu->rim_cont_len); + break; + case BSSGP_IE_RI_ERROR_RIM_COINTAINER: + rc = bssgp_dec_ran_inf_err_rim_cont(&pdu->decoded.err_rim_cont, pdu->rim_cont, pdu->rim_cont_len); + break; + default: + LOGP(DLBSSGP, LOGL_DEBUG, "BSSGP RIM (NSEI=%u) cannot parse unknown RIM container.\n", nsei); + return 0; + } + if (rc < 0) { + LOGP(DLBSSGP, LOGL_DEBUG, "BSSGP RIM (NSEI=%u) unable to parse RIM container.\n", nsei); + return 0; + } + pdu->decoded_present = true; + + return 0; +} + +/*! Encode a given rim-pdu struct into a message buffer. + * \param[out] pdu user provided memory that contains the RAN INFORMATION PDU to encode. + * \returns BSSGP message buffer on sccess, NULL on error. */ +struct msgb *bssgp_encode_rim_pdu(const struct bssgp_ran_information_pdu *pdu) +{ + struct msgb *msg = bssgp_msgb_alloc(); + struct bssgp_normal_hdr *bgph; + uint8_t rim_ri_buf[BSSGP_RIM_ROUTING_INFO_MAXLEN]; + uint8_t *rim_cont_buf; + int rc; + + if (!msg) + return NULL; + bgph = (struct bssgp_normal_hdr *)msgb_put(msg, sizeof(*bgph)); + + /* Set PDU type based on RIM container type */ + switch (pdu->rim_cont_iei) { + case BSSGP_IE_RI_REQ_RIM_CONTAINER: + bgph->pdu_type = BSSGP_PDUT_RAN_INFO_REQ; + break; + case BSSGP_IE_RI_RIM_CONTAINER: + bgph->pdu_type = BSSGP_PDUT_RAN_INFO; + break; + case BSSGP_IE_RI_APP_ERROR_RIM_CONT: + bgph->pdu_type = BSSGP_PDUT_RAN_INFO_APP_ERROR; + break; + case BSSGP_IE_RI_ACK_RIM_CONTAINER: + bgph->pdu_type = BSSGP_PDUT_RAN_INFO_ACK; + break; + case BSSGP_IE_RI_ERROR_RIM_COINTAINER: + bgph->pdu_type = BSSGP_PDUT_RAN_INFO_ERROR; + break; + default: + /* The caller must correctly specify the container type! */ + OSMO_ASSERT(false); + } + + /* Put RIM routing information */ + rc = bssgp_create_rim_ri(rim_ri_buf, &pdu->routing_info_dest); + if (rc < 0 || rc > BSSGP_RIM_ROUTING_INFO_MAXLEN) + goto error; + msgb_tvlv_put(msg, BSSGP_IE_RIM_ROUTING_INFO, rc, rim_ri_buf); + rc = bssgp_create_rim_ri(rim_ri_buf, &pdu->routing_info_src); + if (rc < 0 || rc > BSSGP_RIM_ROUTING_INFO_MAXLEN) + goto error; + msgb_tvlv_put(msg, BSSGP_IE_RIM_ROUTING_INFO, rc, rim_ri_buf); + + /* Put RIM container */ + if (pdu->decoded_present) { + rim_cont_buf = talloc_zero_size(msg, msg->data_len); + if (!rim_cont_buf) + goto error; + + switch (pdu->rim_cont_iei) { + case BSSGP_IE_RI_REQ_RIM_CONTAINER: + rc = bssgp_enc_ran_inf_req_rim_cont(rim_cont_buf, msg->data_len, &pdu->decoded.req_rim_cont); + break; + case BSSGP_IE_RI_RIM_CONTAINER: + rc = bssgp_enc_ran_inf_rim_cont(rim_cont_buf, msg->data_len, &pdu->decoded.rim_cont); + break; + case BSSGP_IE_RI_APP_ERROR_RIM_CONT: + rc = bssgp_enc_ran_inf_app_err_rim_cont(rim_cont_buf, msg->data_len, + &pdu->decoded.app_err_rim_cont); + break; + case BSSGP_IE_RI_ACK_RIM_CONTAINER: + rc = bssgp_enc_ran_inf_ack_rim_cont(rim_cont_buf, msg->data_len, &pdu->decoded.ack_rim_cont); + break; + case BSSGP_IE_RI_ERROR_RIM_COINTAINER: + rc = bssgp_enc_ran_inf_err_rim_cont(rim_cont_buf, msg->data_len, &pdu->decoded.err_rim_cont); + break; + default: + /* The API user must set the iei properly! */ + OSMO_ASSERT(false); + } + if (rc < 0) + goto error; + + msgb_tvlv_put(msg, pdu->rim_cont_iei, rc, rim_cont_buf); + talloc_free(rim_cont_buf); + } else { + /* Make sure the RIM container is actually present. */ + OSMO_ASSERT(pdu->rim_cont_iei != 0 && pdu->rim_cont_len > 0 && pdu->rim_cont); + msgb_tvlv_put(msg, pdu->rim_cont_iei, pdu->rim_cont_len, pdu->rim_cont); + } + + return msg; +error: + talloc_free(rim_cont_buf); + msgb_free(msg); + return 0; +} + +/*! Send RIM RAN INFORMATION REQUEST via BSSGP (3GPP TS 48.018, section 10.6.1). + * \param[in] pdu user provided memory for the RAN INFORMATION PDU to be sent. + * \param[in] nsei BSSGP network service entity identifier (NSEI). + * \returns 0 on sccess, -EINVAL on error. */ +int bssgp_tx_rim(const struct bssgp_ran_information_pdu *pdu, uint16_t nsei) +{ + struct msgb *msg; + struct bssgp_normal_hdr *bgph; + char ri_src_str[64]; + char ri_dest_str[64]; + + /* Encode RIM PDU into mesage buffer */ + msg = bssgp_encode_rim_pdu(pdu); + if (!msg) { + LOGP(DLBSSGP, LOGL_ERROR, + "BSSGP RIM (NSEI=%u) unable to encode BSSGP RIM PDU\n", nsei); + return -EINVAL; + } + + msgb_nsei(msg) = nsei; + msgb_bvci(msg) = 0; /* Signalling */ + + bgph = (struct bssgp_normal_hdr *)msgb_bssgph(msg); + DEBUGP(DLBSSGP, "BSSGP BVCI=0 Tx RIM-PDU:%s, src=%s, dest=%s\n", + bssgp_pdu_str(bgph->pdu_type), + bssgp_rim_ri_name_buf(ri_src_str, sizeof(ri_src_str), &pdu->routing_info_src), + bssgp_rim_ri_name_buf(ri_dest_str, sizeof(ri_dest_str), &pdu->routing_info_dest)); + + return bssgp_ns_send(bssgp_ns_send_data, msg); +} + +/* For internal use only (called from gprs_bssgp.c) */ +int bssgp_rx_rim(struct msgb *msg, struct tlv_parsed *tp, uint16_t bvci) +{ + struct osmo_bssgp_prim nmp; + uint16_t nsei = msgb_nsei(msg); + struct bssgp_normal_hdr *bgph = (struct bssgp_normal_hdr *)msgb_bssgph(msg); + enum bssgp_prim prim; + char ri_src_str[64]; + char ri_dest_str[64]; + + /* Specify PRIM type based on the RIM PDU */ + switch (bgph->pdu_type) { + case BSSGP_PDUT_RAN_INFO: + case BSSGP_PDUT_RAN_INFO_REQ: + case BSSGP_PDUT_RAN_INFO_ACK: + case BSSGP_PDUT_RAN_INFO_ERROR: + case BSSGP_PDUT_RAN_INFO_APP_ERROR: + prim = PRIM_BSSGP_RIM_PDU_TRANSFER; + break; + default: + /* Caller already makes sure that this can't happen. */ + OSMO_ASSERT(false); + } + + /* Send BSSGP RIM indication to NM */ + memset(&nmp, 0, sizeof(nmp)); + nmp.nsei = nsei; + nmp.bvci = bvci; + nmp.tp = tp; + if (bssgp_parse_rim_pdu(&nmp.u.rim_pdu, msg) < 0) + return bssgp_tx_status(BSSGP_CAUSE_MISSING_MAND_IE, NULL, msg); + DEBUGP(DLBSSGP, "BSSGP BVCI=%u Rx RIM-PDU:%s, src=%s, dest=%s\n", + bvci, bssgp_pdu_str(bgph->pdu_type), + bssgp_rim_ri_name_buf(ri_src_str, sizeof(ri_src_str), &nmp.u.rim_pdu.routing_info_src), + bssgp_rim_ri_name_buf(ri_dest_str, sizeof(ri_dest_str), &nmp.u.rim_pdu.routing_info_dest)); + osmo_prim_init(&nmp.oph, SAP_BSSGP_RIM, prim, PRIM_OP_INDICATION, msg); + bssgp_prim_cb(&nmp.oph, NULL); + + return 0; +} diff --git a/src/gb/gprs_bssgp_util.c b/src/gb/gprs_bssgp_util.c index e00aed9..92896c1 100644 --- a/src/gb/gprs_bssgp_util.c +++ b/src/gb/gprs_bssgp_util.c @@ -588,223 +588,3 @@ return bssgp_ns_send(bssgp_ns_send_data, msg); } - -/* Chapter 10.6.1: RAN-INFORMATION-REQUEST */ -int bssgp_tx_rim(const struct bssgp_ran_information_pdu *pdu, uint16_t nsei) -{ - struct msgb *msg; - struct bssgp_normal_hdr *bgph; - char ri_src_str[64]; - char ri_dest_str[64]; - - /* Encode RIM PDU into mesage buffer */ - msg = bssgp_encode_rim_pdu(pdu); - if (!msg) { - LOGP(DLBSSGP, LOGL_ERROR, - "BSSGP RIM (NSEI=%u) unable to encode BSSGP RIM PDU\n", nsei); - return -EINVAL; - } - - msgb_nsei(msg) = nsei; - msgb_bvci(msg) = 0; /* Signalling */ - - bgph = (struct bssgp_normal_hdr *)msgb_bssgph(msg); - DEBUGP(DLBSSGP, "BSSGP BVCI=0 Tx RIM-PDU:%s, src=%s, dest=%s\n", - bssgp_pdu_str(bgph->pdu_type), - bssgp_rim_ri_name_buf(ri_src_str, sizeof(ri_src_str), &pdu->routing_info_src), - bssgp_rim_ri_name_buf(ri_dest_str, sizeof(ri_dest_str), &pdu->routing_info_dest)); - - return bssgp_ns_send(bssgp_ns_send_data, msg); -} - -/* Parse a given message buffer into a rim-pdu struct */ -int bssgp_parse_rim_pdu(struct bssgp_ran_information_pdu *pdu, const struct msgb *msg) -{ - struct tlv_parsed tp[2]; - struct bssgp_normal_hdr *bgph = (struct bssgp_normal_hdr *)msgb_bssgph(msg); - int data_len; - int rc; - uint16_t nsei = msgb_nsei(msg); - - memset(pdu, 0, sizeof(*pdu)); - - data_len = msgb_bssgp_len(msg) - sizeof(*bgph); - if (data_len < 0) - return -EINVAL; - - rc = osmo_tlv_prot_parse(&osmo_pdef_bssgp, tp, ARRAY_SIZE(tp), bgph->pdu_type, bgph->data, data_len, 0, 0, - DLBSSGP, __func__); - if (rc < 0) - return -EINVAL; - - if (TLVP_PRESENT(&tp[0], BSSGP_IE_RIM_ROUTING_INFO)) { - rc = bssgp_parse_rim_ri(&pdu->routing_info_dest, TLVP_VAL(&tp[0], BSSGP_IE_RIM_ROUTING_INFO), - TLVP_LEN(&tp[0], BSSGP_IE_RIM_ROUTING_INFO)); - if (rc < 0) { - LOGP(DLBSSGP, LOGL_ERROR, "BSSGP RIM (NSEI=%u) invalid Destination Cell Identifier IE\n", nsei); - return -EINVAL; - } - } else { - LOGP(DLBSSGP, LOGL_ERROR, "BSSGP RIM (NSEI=%u) missing Destination Cell Identifier IE\n", nsei); - return -EINVAL; - } - - if (TLVP_PRESENT(&tp[1], BSSGP_IE_RIM_ROUTING_INFO)) { - rc = bssgp_parse_rim_ri(&pdu->routing_info_src, TLVP_VAL(&tp[1], BSSGP_IE_RIM_ROUTING_INFO), - TLVP_LEN(&tp[1], BSSGP_IE_RIM_ROUTING_INFO)); - if (rc < 0) { - LOGP(DLBSSGP, LOGL_ERROR, "BSSGP RIM (NSEI=%u) invalid Destination Cell Identifier IE\n", nsei); - return -EINVAL; - } - } else { - LOGP(DLBSSGP, LOGL_ERROR, "BSSGP RIM (NSEI=%u) missing Source Cell Identifier IE\n", nsei); - return -EINVAL; - } - - if (TLVP_PRESENT(&tp[0], BSSGP_IE_RI_REQ_RIM_CONTAINER)) - pdu->rim_cont_iei = BSSGP_IE_RI_REQ_RIM_CONTAINER; - else if (TLVP_PRESENT(&tp[0], BSSGP_IE_RI_RIM_CONTAINER)) - pdu->rim_cont_iei = BSSGP_IE_RI_RIM_CONTAINER; - else if (TLVP_PRESENT(&tp[0], BSSGP_IE_RI_APP_ERROR_RIM_CONT)) - pdu->rim_cont_iei = BSSGP_IE_RI_APP_ERROR_RIM_CONT; - else if (TLVP_PRESENT(&tp[0], BSSGP_IE_RI_ACK_RIM_CONTAINER)) - pdu->rim_cont_iei = BSSGP_IE_RI_ACK_RIM_CONTAINER; - else if (TLVP_PRESENT(&tp[0], BSSGP_IE_RI_ERROR_RIM_COINTAINER)) - pdu->rim_cont_iei = BSSGP_IE_RI_ERROR_RIM_COINTAINER; - else { - LOGP(DLBSSGP, LOGL_ERROR, "BSSGP RIM (NSEI=%u) missing or wrong RIM Container IE\n", nsei); - return -EINVAL; - } - - pdu->rim_cont = TLVP_VAL(&tp[0], pdu->rim_cont_iei); - pdu->rim_cont_len = TLVP_LEN(&tp[0], pdu->rim_cont_iei); - - /* Make sure the rim container field is not empty */ - if (pdu->rim_cont_len < 1) - return -EINVAL; - if (!pdu->rim_cont) - return -EINVAL; - - /* Note: It is not an error if we fail to parse the RIM container, - * since there are applications where parsing the RIM container - * is not necessary (routing). It is up to the API user to check - * the results. */ - switch (pdu->rim_cont_iei) { - case BSSGP_IE_RI_REQ_RIM_CONTAINER: - rc = bssgp_dec_ran_inf_req_rim_cont(&pdu->decoded.req_rim_cont, pdu->rim_cont, pdu->rim_cont_len); - break; - case BSSGP_IE_RI_RIM_CONTAINER: - rc = bssgp_dec_ran_inf_rim_cont(&pdu->decoded.rim_cont, pdu->rim_cont, pdu->rim_cont_len); - break; - case BSSGP_IE_RI_APP_ERROR_RIM_CONT: - rc = bssgp_dec_ran_inf_app_err_rim_cont(&pdu->decoded.app_err_rim_cont, pdu->rim_cont, - pdu->rim_cont_len); - break; - case BSSGP_IE_RI_ACK_RIM_CONTAINER: - rc = bssgp_dec_ran_inf_ack_rim_cont(&pdu->decoded.ack_rim_cont, pdu->rim_cont, pdu->rim_cont_len); - break; - case BSSGP_IE_RI_ERROR_RIM_COINTAINER: - rc = bssgp_dec_ran_inf_err_rim_cont(&pdu->decoded.err_rim_cont, pdu->rim_cont, pdu->rim_cont_len); - break; - default: - LOGP(DLBSSGP, LOGL_DEBUG, "BSSGP RIM (NSEI=%u) cannot parse unknown RIM container.\n", nsei); - return 0; - } - if (rc < 0) { - LOGP(DLBSSGP, LOGL_DEBUG, "BSSGP RIM (NSEI=%u) unable to parse RIM container.\n", nsei); - return 0; - } - pdu->decoded_present = true; - - return 0; -} - -/* Encode a given rim-pdu struct into a message buffer */ -struct msgb *bssgp_encode_rim_pdu(const struct bssgp_ran_information_pdu *pdu) -{ - struct msgb *msg = bssgp_msgb_alloc(); - struct bssgp_normal_hdr *bgph; - uint8_t rim_ri_buf[BSSGP_RIM_ROUTING_INFO_MAXLEN]; - uint8_t *rim_cont_buf; - int rc; - - if (!msg) - return NULL; - bgph = (struct bssgp_normal_hdr *)msgb_put(msg, sizeof(*bgph)); - - /* Set PDU type based on RIM container type */ - switch (pdu->rim_cont_iei) { - case BSSGP_IE_RI_REQ_RIM_CONTAINER: - bgph->pdu_type = BSSGP_PDUT_RAN_INFO_REQ; - break; - case BSSGP_IE_RI_RIM_CONTAINER: - bgph->pdu_type = BSSGP_PDUT_RAN_INFO; - break; - case BSSGP_IE_RI_APP_ERROR_RIM_CONT: - bgph->pdu_type = BSSGP_PDUT_RAN_INFO_APP_ERROR; - break; - case BSSGP_IE_RI_ACK_RIM_CONTAINER: - bgph->pdu_type = BSSGP_PDUT_RAN_INFO_ACK; - break; - case BSSGP_IE_RI_ERROR_RIM_COINTAINER: - bgph->pdu_type = BSSGP_PDUT_RAN_INFO_ERROR; - break; - default: - /* The caller must correctly specify the container type! */ - OSMO_ASSERT(false); - } - - /* Put RIM routing information */ - rc = bssgp_create_rim_ri(rim_ri_buf, &pdu->routing_info_dest); - if (rc < 0 || rc > BSSGP_RIM_ROUTING_INFO_MAXLEN) - goto error; - msgb_tvlv_put(msg, BSSGP_IE_RIM_ROUTING_INFO, rc, rim_ri_buf); - rc = bssgp_create_rim_ri(rim_ri_buf, &pdu->routing_info_src); - if (rc < 0 || rc > BSSGP_RIM_ROUTING_INFO_MAXLEN) - goto error; - msgb_tvlv_put(msg, BSSGP_IE_RIM_ROUTING_INFO, rc, rim_ri_buf); - - /* Put RIM container */ - if (pdu->decoded_present) { - rim_cont_buf = talloc_zero_size(msg, msg->data_len); - if (!rim_cont_buf) - goto error; - - switch (pdu->rim_cont_iei) { - case BSSGP_IE_RI_REQ_RIM_CONTAINER: - rc = bssgp_enc_ran_inf_req_rim_cont(rim_cont_buf, msg->data_len, &pdu->decoded.req_rim_cont); - break; - case BSSGP_IE_RI_RIM_CONTAINER: - rc = bssgp_enc_ran_inf_rim_cont(rim_cont_buf, msg->data_len, &pdu->decoded.rim_cont); - break; - case BSSGP_IE_RI_APP_ERROR_RIM_CONT: - rc = bssgp_enc_ran_inf_app_err_rim_cont(rim_cont_buf, msg->data_len, - &pdu->decoded.app_err_rim_cont); - break; - case BSSGP_IE_RI_ACK_RIM_CONTAINER: - rc = bssgp_enc_ran_inf_ack_rim_cont(rim_cont_buf, msg->data_len, &pdu->decoded.ack_rim_cont); - break; - case BSSGP_IE_RI_ERROR_RIM_COINTAINER: - rc = bssgp_enc_ran_inf_err_rim_cont(rim_cont_buf, msg->data_len, &pdu->decoded.err_rim_cont); - break; - default: - /* The API user must set the iei properly! */ - OSMO_ASSERT(false); - } - if (rc < 0) - goto error; - - msgb_tvlv_put(msg, pdu->rim_cont_iei, rc, rim_cont_buf); - talloc_free(rim_cont_buf); - } else { - /* Make sure the RIM container is actually present. */ - OSMO_ASSERT(pdu->rim_cont_iei != 0 && pdu->rim_cont_len > 0 && pdu->rim_cont); - msgb_tvlv_put(msg, pdu->rim_cont_iei, pdu->rim_cont_len, pdu->rim_cont); - } - - return msg; -error: - talloc_free(rim_cont_buf); - msgb_free(msg); - return 0; -} -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22442 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Icda279452962b06e552cb1361d2a27b7dc8a6b04 Gerrit-Change-Number: 22442 Gerrit-PatchSet: 6 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 21:31:53 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 29 Jan 2021 21:31:53 +0000 Subject: Change in osmo-sgsn[master]: sgsn_rim: Add routing for (GERAN) BSSGP RIM messages In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22110 ) Change subject: sgsn_rim: Add routing for (GERAN) BSSGP RIM messages ...................................................................... Patch Set 6: Code-Review+2 (2 comments) https://gerrit.osmocom.org/c/osmo-sgsn/+/22110/4/src/sgsn/sgsn_rim.c File src/sgsn/sgsn_rim.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/22110/4/src/sgsn/sgsn_rim.c at 49 PS4, Line 49: retu > So this is checking the source address and returning an error. [?] Sorry, I was thinking about the gbproxy case when reading this. But it's the SGSN code. Of course we cannot support any source != GERAN arriving from the Gb side. https://gerrit.osmocom.org/c/osmo-sgsn/+/22110/4/src/sgsn/sgsn_rim.c at 54 PS4, Line 54: retu > From the little I read when looking at gbproxy support I'd agree that sending a BSSGP STATUS is corr [?] Ack -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22110 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I6fde8ab8955660b48000ca1b650cfc7c7b2e24ba Gerrit-Change-Number: 22110 Gerrit-PatchSet: 6 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 29 Jan 2021 21:31:53 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Comment-In-Reply-To: laforge Comment-In-Reply-To: daniel Comment-In-Reply-To: dexter Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 21:31:56 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 29 Jan 2021 21:31:56 +0000 Subject: Change in osmo-sgsn[master]: sgsn_rim: Add routing for (GERAN) BSSGP RIM messages In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/22110 ) Change subject: sgsn_rim: Add routing for (GERAN) BSSGP RIM messages ...................................................................... sgsn_rim: Add routing for (GERAN) BSSGP RIM messages The SGSN currently does not forward BSSGP RIM messages. Related: SYS#5103 Depends: libosmocore Icd667f41d5735de56cd9fb257670337c679dd258 Change-Id: I6fde8ab8955660b48000ca1b650cfc7c7b2e24ba --- M include/osmocom/sgsn/Makefile.am M include/osmocom/sgsn/debug.h A include/osmocom/sgsn/sgsn_rim.h M src/sgsn/Makefile.am M src/sgsn/sgsn_main.c A src/sgsn/sgsn_rim.c 6 files changed, 81 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified daniel: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/include/osmocom/sgsn/Makefile.am b/include/osmocom/sgsn/Makefile.am index 3fdb6b3..95c811a 100644 --- a/include/osmocom/sgsn/Makefile.am +++ b/include/osmocom/sgsn/Makefile.am @@ -24,6 +24,7 @@ gprs_utils.h \ gtphub.h \ sgsn.h \ + sgsn_rim.h \ signal.h \ slhc.h \ v42bis.h \ diff --git a/include/osmocom/sgsn/debug.h b/include/osmocom/sgsn/debug.h index 9a686cb..37e4a09 100644 --- a/include/osmocom/sgsn/debug.h +++ b/include/osmocom/sgsn/debug.h @@ -27,6 +27,7 @@ DSIGTRAN, DGTP, DOBJ, + DRIM, Debug_LastEntry, }; diff --git a/include/osmocom/sgsn/sgsn_rim.h b/include/osmocom/sgsn/sgsn_rim.h new file mode 100644 index 0000000..ca3660b --- /dev/null +++ b/include/osmocom/sgsn/sgsn_rim.h @@ -0,0 +1,3 @@ +#pragma once + +int sgsn_rim_rx(struct osmo_bssgp_prim *bp, struct msgb *msg); diff --git a/src/sgsn/Makefile.am b/src/sgsn/Makefile.am index 6a7392b..8738986 100644 --- a/src/sgsn/Makefile.am +++ b/src/sgsn/Makefile.am @@ -62,6 +62,7 @@ sgsn_auth.c \ gprs_subscriber.c \ sgsn_cdr.c \ + sgsn_rim.c \ slhc.c \ gprs_llc_xid.c \ v42bis.c \ diff --git a/src/sgsn/sgsn_main.c b/src/sgsn/sgsn_main.c index 075d59c..c3a6061 100644 --- a/src/sgsn/sgsn_main.c +++ b/src/sgsn/sgsn_main.c @@ -67,6 +67,7 @@ #include #include +#include #include "../../bscconfig.h" @@ -120,6 +121,8 @@ break; case SAP_BSSGP_NM: break; + case SAP_BSSGP_RIM: + return sgsn_rim_rx(bp, oph->msg); } return 0; } @@ -311,6 +314,11 @@ .description = "GPRS Tunnelling Protocol (GTP)", .enabled = 1, .loglevel = LOGL_NOTICE, }, + [DRIM] = { + .name = "DRIM", + .description = "RAN Information Management (RIM)", + .enabled = 1, .loglevel = LOGL_NOTICE, + }, }; static const struct log_info gprs_log_info = { diff --git a/src/sgsn/sgsn_rim.c b/src/sgsn/sgsn_rim.c new file mode 100644 index 0000000..71e6d98 --- /dev/null +++ b/src/sgsn/sgsn_rim.c @@ -0,0 +1,67 @@ + +#include + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +/* Find an NSEI for the destination cell, this function works only for GERAN! */ +static int find_dest_nsei_geran(struct bssgp_rim_routing_info *dest_rim_ri, uint16_t nsei) +{ + struct bssgp_bvc_ctx *bvc_ctx; + + OSMO_ASSERT(dest_rim_ri->discr == BSSGP_RIM_ROUTING_INFO_GERAN); + + bvc_ctx = btsctx_by_raid_cid(&dest_rim_ri->geran.raid, dest_rim_ri->geran.cid); + if (!bvc_ctx) { + LOGP(DRIM, LOGL_ERROR, "BSSGP RIM (NSEI=%u) cannot find NSEI for destination cell\n", nsei); + return -EINVAL; + } + + return bvc_ctx->nsei; +} + +int sgsn_rim_rx(struct osmo_bssgp_prim *bp, struct msgb *msg) +{ + struct bssgp_ran_information_pdu *pdu = &bp->u.rim_pdu; + int d_nsei; + uint16_t nsei = msgb_nsei(msg); + + /* At the moment we only support GERAN, so we block all other network + * types here. */ + if (pdu->routing_info_dest.discr != BSSGP_RIM_ROUTING_INFO_GERAN) { + LOGP(DRIM, LOGL_ERROR, + "BSSGP RIM (NSEI=%u) only GERAN supported, destination cell is not a GERAN cell -- rejected.\n", + nsei); + /* At the moment we can only handle GERAN addresses, any other + * type of address will be consideres as an invalid address. + * see also: 3GPP TS 48.018, section 8c.3.1.3 */ + return bssgp_tx_status(BSSGP_CAUSE_UNKN_RIM_AI, NULL, msg); + } + if (pdu->routing_info_src.discr != BSSGP_RIM_ROUTING_INFO_GERAN) { + LOGP(DRIM, LOGL_ERROR, + "BSSGP RIM (NSEI=%u) only GERAN supported, source cell is not a GERAN cell -- rejected.\n", nsei); + /* See comment above */ + return bssgp_tx_status(BSSGP_CAUSE_UNKN_RIM_AI, NULL, msg); + } + + d_nsei = find_dest_nsei_geran(&pdu->routing_info_dest, nsei); + if (d_nsei < 0) { + LOGP(DRIM, LOGL_NOTICE, "BSSGP RIM (NSEI=%u) Cell %s unknown to this sgsn\n", + nsei, bssgp_rim_ri_name(&pdu->routing_info_dest)); + /* In case of an invalid destination address we respond with + * a BSSGP STATUS PDU, see also: 3GPP TS 48.018, section 8c.3.1.3 */ + return bssgp_tx_status(BSSGP_CAUSE_UNKN_RIM_AI, NULL, msg); + } + + /* Forward PDU as it is to the correct interface */ + return bssgp_tx_rim(pdu, (uint16_t) d_nsei); +} -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/22110 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I6fde8ab8955660b48000ca1b650cfc7c7b2e24ba Gerrit-Change-Number: 22110 Gerrit-PatchSet: 6 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 21:32:28 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 29 Jan 2021 21:32:28 +0000 Subject: Change in titan.TestPorts.AF_PACKET[master]: add module parameter "sleep_on_enobufs" to work around -ENOBUFS In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/titan.TestPorts.AF_PACKET/+/22539 ) Change subject: add module parameter "sleep_on_enobufs" to work around -ENOBUFS ...................................................................... Patch Set 2: Verified+1 Code-Review+2 I just verified this with fr + frnet, and it indeed avouids any DTE due to ENOBUFS. -- To view, visit https://gerrit.osmocom.org/c/titan.TestPorts.AF_PACKET/+/22539 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: titan.TestPorts.AF_PACKET Gerrit-Branch: master Gerrit-Change-Id: I1608403d94a10ae52c7e1de0f1b02687b048c01e Gerrit-Change-Number: 22539 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 29 Jan 2021 21:32:28 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 21:32:31 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 29 Jan 2021 21:32:31 +0000 Subject: Change in titan.TestPorts.AF_PACKET[master]: add module parameter "sleep_on_enobufs" to work around -ENOBUFS In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/titan.TestPorts.AF_PACKET/+/22539 ) Change subject: add module parameter "sleep_on_enobufs" to work around -ENOBUFS ...................................................................... add module parameter "sleep_on_enobufs" to work around -ENOBUFS AF_PACKET sockets have these incredibly useful semantics in where for both non-blocking and blocking I/O, they will tell you the socket is rwite-able, but then still return -1 and sett errno=ENOBUFS if the current socket buffer / transmit queue is full. All we can do is usleep and retry. The new module parameter, if set to non-zero, determines the number of microseconds we shall sleep before any retry. If set to zero, the existing behavior is preserved: TTCN_error(). Related: SYS#5343 Change-Id: I1608403d94a10ae52c7e1de0f1b02687b048c01e --- M src/AF_PACKET_PT.cc M src/AF_PACKET_PT.hh 2 files changed, 17 insertions(+), 5 deletions(-) Approvals: laforge: Looks good to me, approved; Verified diff --git a/src/AF_PACKET_PT.cc b/src/AF_PACKET_PT.cc index aa2def6..947e581 100644 --- a/src/AF_PACKET_PT.cc +++ b/src/AF_PACKET_PT.cc @@ -108,6 +108,8 @@ mNetdev_name = NULL; } mNetdev_name = strdup(parameter_value); + } else if (!strcmp(parameter_name, "sleep_on_enobufs")) { + mSleepUsOnEnobufs = atoi(parameter_value); } else TTCN_error("Unsupported test port parameter `%s'.", parameter_name); } @@ -204,13 +206,22 @@ void AF__PACKET__PT_PROVIDER::outgoing_send(const AF__PACKET__Unitdata& send_par) { - int rc; - assert(mSocket >= 0); - rc = write(mSocket, send_par.data(), send_par.data().lengthof()); - if (rc < send_par.data().lengthof()) - TTCN_error("Short write on AF_PACKET socket: %s", strerror(errno)); + while (true) { + int rc = write(mSocket, send_par.data(), send_par.data().lengthof()); + if (rc == send_par.data().lengthof()) + break; + if (mSleepUsOnEnobufs && rc == -1 && errno == ENOBUFS) { + /* This is fscking insane. Even select() would tell us the FD + * is write-able, but then we still get -ENOBUFS. The only way + * to do this os to sleep. */ + usleep(mSleepUsOnEnobufs); + } else if (rc < send_par.data().lengthof()) { + TTCN_error("Short write on AF_PACKET socket: %s", strerror(errno)); + break; + } + } } diff --git a/src/AF_PACKET_PT.hh b/src/AF_PACKET_PT.hh index 7f8f6b5..2858ca6 100644 --- a/src/AF_PACKET_PT.hh +++ b/src/AF_PACKET_PT.hh @@ -50,6 +50,7 @@ private: char *mNetdev_name; /* name of the network interface */ + int mSleepUsOnEnobufs; /* how many us to sleep on ENOBUFS */ int mIfindex; /* interface index of the network device */ int mSocket; /* socket/file descriptor of the AF_PACKET socket */ uint8_t mRxBuf[2048]; /* read buffer */ -- To view, visit https://gerrit.osmocom.org/c/titan.TestPorts.AF_PACKET/+/22539 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: titan.TestPorts.AF_PACKET Gerrit-Branch: master Gerrit-Change-Id: I1608403d94a10ae52c7e1de0f1b02687b048c01e Gerrit-Change-Number: 22539 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 21:35:56 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 29 Jan 2021 21:35:56 +0000 Subject: Change in osmo-bsc[master]: Allow configuring SI13 CCN_ACTIVE bit from VTY, enable by default on ... In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21714 ) Change subject: Allow configuring SI13 CCN_ACTIVE bit from VTY, enable by default on osmo-bts ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21714 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: If91d85331d402c3ab9c32b70c2c66cd7ba6ceb28 Gerrit-Change-Number: 21714 Gerrit-PatchSet: 5 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 29 Jan 2021 21:35:56 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 21:50:33 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 29 Jan 2021 21:50:33 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BTS_Tests: test forwarding of SI1, SI3 and SI13 via PCUIF References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22540 ) Change subject: BTS_Tests: test forwarding of SI1, SI3 and SI13 via PCUIF ...................................................................... BTS_Tests: test forwarding of SI1, SI3 and SI13 via PCUIF Whenever the BSC is updating SI1, SI3 or SI13 via RSL, the PCU should be informed about the change via PCUIF as well. For SI13 this is already the case and a testcase exists. The version 11 of the PCUIF protocol is now capable to update SI1 and SI3 as well. - Update BTS_Tests.TC_pcu_ver_si13 so that it works with the current protocol version - Add BTS_Tests.TC_pcu_ver_si3 and BTS_Tests.TC_pcu_ver_si1 that test SI1 and SI3 as well. Depends: osmo-bts Ib7aeb41e634ad6fcab3766a4667b0267c749436a Change-Id: I5138ab183793e7eee4dc494318d984e9f1f56932 Related: SYS#5103 --- M bts/BTS_Tests.ttcn 1 file changed, 24 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/40/22540/1 diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn index c843032..68a3142 100644 --- a/bts/BTS_Tests.ttcn +++ b/bts/BTS_Tests.ttcn @@ -4676,19 +4676,18 @@ } /* Test the PCU->BTS Version and BTS->PCU SI13 handshake */ -testcase TC_pcu_ver_si13() runs on test_CT { - const octetstring si13 := '00010203040506070909'O; +function f_TC_pcu_ver_siXX(octetstring si, RSL_IE_SysinfoType rsl_si_type, octetstring osmo_si_type) runs on test_CT { var PCUIF_send_data sd; timer T:= 3.0; f_init_pcu_test(); /* Set SI13 via RSL */ - f_rsl_bcch_fill_raw(RSL_SYSTEM_INFO_13, si13); + f_rsl_bcch_fill_raw(rsl_si_type, si); T.start; alt { [] PCU.receive(t_SD_PCUIF(g_pcu_conn_id, tr_PCUIF_DATA_IND(0, 0, 0, ?, PCU_IF_SAPI_BCCH))) -> value sd { - if (substr(sd.data.u.data_ind.data, 0, lengthof(si13)) == si13) { + if (substr(sd.data.u.data_ind.data, 0, lengthof(si) + 1) == osmo_si_type & si) { setverdict(pass); } else { repeat; @@ -4696,11 +4695,29 @@ } [] PCU.receive { repeat; } [] T.timeout { - Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, "Timeout waiting for SI13"); + Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, "Timeout waiting for SI"); } } } +/* Test the PCU->BTS Version and BTS->PCU SI1 handshake */ +testcase TC_pcu_ver_si1() runs on test_CT { + const octetstring si1 := '010111132A252B27CC29AA11BB33CC'O; + f_TC_pcu_ver_siXX(si1, RSL_SYSTEM_INFO_1, '01'O); +} + +/* Test the PCU->BTS Version and BTS->PCU SI3 handshake */ +testcase TC_pcu_ver_si3() runs on test_CT { + const octetstring si3 := '00012223242526272929AABBCC'O; + f_TC_pcu_ver_siXX(si3, RSL_SYSTEM_INFO_3, '03'O); +} + +/* Test the PCU->BTS Version and BTS->PCU SI13 handshake */ +testcase TC_pcu_ver_si13() runs on test_CT { + const octetstring si13 := '00010203040506070909'O; + f_TC_pcu_ver_siXX(si13, RSL_SYSTEM_INFO_13, '0b'O); +} + private const octetstring c_PCU_DATA := '000102030405060708090a0b0c0d0e0f10111213141516'O; /* helper function to send a PCU DATA.req */ @@ -7305,6 +7322,8 @@ execute( TC_pcu_act_req_wrong_trx() ); execute( TC_pcu_deact_req() ); execute( TC_pcu_deact_req_wrong_ts() ); + execute( TC_pcu_ver_si1() ); + execute( TC_pcu_ver_si3() ); execute( TC_pcu_ver_si13() ); if (mp_l1_supports_gprs) { execute( TC_pcu_data_req_pdtch() ); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22540 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I5138ab183793e7eee4dc494318d984e9f1f56932 Gerrit-Change-Number: 22540 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 21:53:19 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 29 Jan 2021 21:53:19 +0000 Subject: Change in osmo-ttcn3-hacks[master]: PCU_Tests: add testcase TC_rim_ran_info_req_single_rep and _no_si In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369 ) Change subject: PCU_Tests: add testcase TC_rim_ran_info_req_single_rep and _no_si ...................................................................... Patch Set 6: I hope I have found a better way now to transfer the sysinfo to the PCU. Actually there is a SAPI 4 in the PCUIF protocol through which we already send SI13. This can be extended to transfer SI1 and SI3 as well. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I9054ab0e969c0fbfdc671c92d44cc61360959adc Gerrit-Change-Number: 22369 Gerrit-PatchSet: 6 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Fri, 29 Jan 2021 21:53:19 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 21:55:41 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 29 Jan 2021 21:55:41 +0000 Subject: Change in osmo-bts[master]: pcu_sock: send SI1, SI3 and SI3 via PCUIF References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/22541 ) Change subject: pcu_sock: send SI1, SI3 and SI3 via PCUIF ...................................................................... pcu_sock: send SI1, SI3 and SI3 via PCUIF The new version (0x0b, 11) of the PCUIF extends the SAPI 4 that is used to transfer SI16 only, so that it can transfer SI1 and SI3 as well. The system information SI1, SI3 and SI16 is needed by the NACC RIM application which runs inside osmo-pcu. Depends: osmo-pcu I5138ab183793e7eee4dc494318d984e9f1f56932 Change-Id: Ib7aeb41e634ad6fcab3766a4667b0267c749436a Related: SYS#5103 --- M include/osmo-bts/pcu_if.h M include/osmo-bts/pcuif_proto.h M src/common/pcu_sock.c M src/common/rsl.c 4 files changed, 62 insertions(+), 12 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/41/22541/1 diff --git a/include/osmo-bts/pcu_if.h b/include/osmo-bts/pcu_if.h index 1475a94..add37f8 100644 --- a/include/osmo-bts/pcu_if.h +++ b/include/osmo-bts/pcu_if.h @@ -4,7 +4,7 @@ extern int pcu_direct; int pcu_tx_info_ind(void); -int pcu_tx_si13(const struct gsm_bts *bts, bool enable); +int pcu_tx_si(const struct gsm_bts *bts, enum osmo_sysinfo_type si_type, bool enable); int pcu_tx_app_info_req(struct gsm_bts *bts, uint8_t app_type, uint8_t len, const uint8_t *app_data); int pcu_tx_rts_req(struct gsm_bts_trx_ts *ts, uint8_t is_ptcch, uint32_t fn, uint16_t arfcn, uint8_t block_nr); diff --git a/include/osmo-bts/pcuif_proto.h b/include/osmo-bts/pcuif_proto.h index 8f72602..bcb7f4c 100644 --- a/include/osmo-bts/pcuif_proto.h +++ b/include/osmo-bts/pcuif_proto.h @@ -6,7 +6,7 @@ #define PCU_SOCK_DEFAULT "/tmp/pcu_bts" -#define PCU_IF_VERSION 0x0a +#define PCU_IF_VERSION 0x0b #define TXT_MAX_LEN 128 /* msg_type */ diff --git a/src/common/pcu_sock.c b/src/common/pcu_sock.c index 0466698..a9d8ba3 100644 --- a/src/common/pcu_sock.c +++ b/src/common/pcu_sock.c @@ -725,17 +725,57 @@ return rc; } -int pcu_tx_si13(const struct gsm_bts *bts, bool enable) +int pcu_tx_si(const struct gsm_bts *bts, enum osmo_sysinfo_type si_type, + bool enable) { /* the SI is per-BTS so it doesn't matter which TRX we use */ struct gsm_bts_trx *trx = gsm_bts_trx_num(bts, 0); + uint8_t si_buf[1 + GSM_MACBLOCK_LEN]; + uint8_t len; + + si_buf[0] = si_type; + if (enable) { + memcpy(si_buf + 1, GSM_BTS_SI(bts, si_type), GSM_MACBLOCK_LEN); + len = 1 + GSM_MACBLOCK_LEN; + LOGP(DPCU, LOGL_DEBUG, "Updating SI%s to PCU: %s\n", + get_value_string(osmo_sitype_strs, si_buf[0]), + osmo_hexdump_nospc(si_buf + 1, GSM_MACBLOCK_LEN)); + } else { + len = 1; + LOGP(DPCU, LOGL_DEBUG, "Revoking SI%s from PCU\n", + get_value_string(osmo_sitype_strs, si_buf[0])); + } + /* The low-level data like FN, ARFCN etc will be ignored but we have to set lqual high enough to bypass the check at lower levels */ - int rc = pcu_tx_data_ind(&trx->ts[0], PCU_IF_SAPI_BCCH, 0, 0, 0, GSM_BTS_SI(bts, SYSINFO_TYPE_13), - enable ? GSM_MACBLOCK_LEN : 0, 0, 0, 0, INT16_MAX); + int rc = + pcu_tx_data_ind(&trx->ts[0], PCU_IF_SAPI_BCCH, 0, 0, 0, si_buf, len, + 0, 0, 0, INT16_MAX); if (rc < 0) - LOGP(DPCU, LOGL_NOTICE, "Failed to send SI13 to PCU: %d\n", rc); + LOGP(DPCU, LOGL_NOTICE, "Failed to send SI%s to PCU: rc=%d\n", + get_value_string(osmo_sitype_strs, si_type), rc); + + return rc; +} + +static int pcu_tx_si_all(struct gsm_bts *bts) +{ + enum osmo_sysinfo_type si_types[3] = + { SYSINFO_TYPE_1, SYSINFO_TYPE_3, SYSINFO_TYPE_13 }; + unsigned int i; + int rc; + + for (i = 0; i < ARRAY_SIZE(si_types); i++) { + if (GSM_BTS_HAS_SI(bts, si_types[i])) { + rc = pcu_tx_si(bts, si_types[i], true); + if (rc < 0) + rc = -EINVAL; + } else + LOGP(DPCU, LOGL_INFO, + "SI%s is not available on PCU connection\n", + get_value_string(osmo_sitype_strs, si_types[i])); + } return rc; } @@ -743,6 +783,8 @@ static int pcu_rx_txt_ind(struct gsm_bts *bts, struct gsm_pcu_if_txt_ind *txt) { + int rc; + switch (txt->type) { case PCU_VERSION: LOGP(DPCU, LOGL_INFO, "OsmoPCU version %s connected\n", @@ -754,10 +796,10 @@ regenerate_si3_restoctets(bts); regenerate_si4_restoctets(bts); - if (GSM_BTS_HAS_SI(bts, SYSINFO_TYPE_13)) - return pcu_tx_si13(bts, true); + rc = pcu_tx_si_all(bts); + if (rc < 0) + return -EINVAL; - LOGP(DPCU, LOGL_INFO, "SI13 is not available on PCU connection\n"); break; case PCU_OML_ALERT: oml_tx_failure_event_rep(&bts->gprs.cell.mo, NM_SEVER_INDETERMINATE, OSMO_EVT_EXT_ALARM, diff --git a/src/common/rsl.c b/src/common/rsl.c index b4df22c..f85220e 100644 --- a/src/common/rsl.c +++ b/src/common/rsl.c @@ -379,6 +379,7 @@ /* patch out GPRS indicator from binary if PCU is not connected; will be enabled * after PCU connects */ regenerate_si3_restoctets(bts); + pcu_tx_si(trx->bts, SYSINFO_TYPE_3, true); } else if (SYSINFO_TYPE_4 == osmo_si) { /* decode original SI4 Rest Octets as sent by BSC */ const uint8_t *si4 = (uint8_t *) GSM_BTS_SI(bts, osmo_si); @@ -394,7 +395,10 @@ } if (SYSINFO_TYPE_13 == osmo_si) - pcu_tx_si13(trx->bts, true); + pcu_tx_si(trx->bts, SYSINFO_TYPE_13, true); + + if (SYSINFO_TYPE_1 == osmo_si) + pcu_tx_si(trx->bts, SYSINFO_TYPE_1, true); } else if (TLVP_PRESENT(&tp, RSL_IE_L3_INFO)) { uint16_t len = TLVP_LEN(&tp, RSL_IE_L3_INFO); @@ -411,9 +415,13 @@ LOGP(DRSL, LOGL_INFO, " RX RSL Disabling BCCH INFO (SI%s)\n", get_value_string(osmo_sitype_strs, osmo_si)); if (SYSINFO_TYPE_13 == osmo_si) - pcu_tx_si13(trx->bts, false); - if (SYSINFO_TYPE_3 == osmo_si) + pcu_tx_si(trx->bts, SYSINFO_TYPE_13, false); + if (SYSINFO_TYPE_3 == osmo_si) { memset(&bts->si3_ro_decoded, 0, sizeof(bts->si3_ro_decoded)); + pcu_tx_si(trx->bts, SYSINFO_TYPE_3, false); + } + if (SYSINFO_TYPE_1 == osmo_si) + pcu_tx_si(trx->bts, SYSINFO_TYPE_1, false); } osmo_signal_dispatch(SS_GLOBAL, S_NEW_SYSINFO, bts); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22541 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib7aeb41e634ad6fcab3766a4667b0267c749436a Gerrit-Change-Number: 22541 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 21:56:28 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 29 Jan 2021 21:56:28 +0000 Subject: Change in osmo-pcu[master]: gprs_bssgp_rim: add serving BSS NACC application In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22368 ) Change subject: gprs_bssgp_rim: add serving BSS NACC application ...................................................................... Patch Set 6: This change is ready for review. -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22368 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Id72118120c14984d2fb1b918b41fac4868150d41 Gerrit-Change-Number: 22368 Gerrit-PatchSet: 6 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 29 Jan 2021 21:56:28 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jan 29 23:40:27 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 29 Jan 2021 23:40:27 +0000 Subject: Change in libosmocore[master]: gsm_7bit_encode_n(): test encoding of more than 250 septets References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22542 ) Change subject: gsm_7bit_encode_n(): test encoding of more than 250 septets ...................................................................... gsm_7bit_encode_n(): test encoding of more than 250 septets As can be seen, this unit test reveals problems with encoding of more than 250 septets using gsm_7bit_encode_n(). The problem is that some API functions use type 'uint8_t' for the length, so we basically suffer from integer overflows. Change-Id: I723300578d5ab0c7b94cf49c14d962b2dbf47740 --- M tests/sms/sms_test.c M tests/sms/sms_test.ok 2 files changed, 70 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/42/22542/1 diff --git a/tests/sms/sms_test.c b/tests/sms/sms_test.c index 0615396..c7f47e2 100644 --- a/tests/sms/sms_test.c +++ b/tests/sms/sms_test.c @@ -268,6 +268,54 @@ printf("Result: len(%d) data(%s)\n", len, osmo_hexdump(oa, len)); } +static void test_enc_large_msg(void) +{ + uint8_t enc_buf[2048 * 7 / 8]; + char large_msg[2048 + 1]; + int i, j, nsep, noct = 0; + + printf("\nRunning %s\n", __func__); + + /* Expected chunks (repeated) in the output buffer */ + const uint8_t exp_chunk[] = { 0xc1, 0x60, 0x30, 0x18, 0x0c, 0x06, 0x83 }; + + /* Length variants to be tested */ + static const size_t nlen[] = { 2048, 1024, 555, 512, 260, 255, 250 }; + + memset(&large_msg[0], (int) 'A', sizeof(large_msg) - 1); + + for (i = 0; i < ARRAY_SIZE(nlen); i++) { + /* Clear the output buffer first */ + memset(&enc_buf[0], 0x00, sizeof(enc_buf)); + /* Limit length of the input string */ + large_msg[nlen[i]] = '\0'; + + /* How many octets we expect to be used? */ + int noct_exp = nlen[i] * 7 / 8; + if (nlen[i] % 8 != 0) + noct_exp++; + + /* Encode a sequence of 'A' repeated nlen[i] times */ + nsep = gsm_7bit_encode_n(&enc_buf[0], sizeof(enc_buf), large_msg, &noct); + printf("gsm_7bit_encode_n(len=%zu) processed %d septets (expected %zu): %s\n", + nlen[i], nsep, nlen[i], nsep == nlen[i] ? "OK" : "FAIL"); + printf("gsm_7bit_encode_n(len=%zu) used %d octets in the buffer (expected %d): %s\n", + nlen[i], noct, noct_exp, noct == noct_exp ? "OK" : "FAIL"); + + /* The encoding result is expected to consist of repeated chunks */ + for (j = 0; j < noct_exp; j += sizeof(exp_chunk)) { + size_t len = OSMO_MIN(noct_exp - j, sizeof(exp_chunk)); + if (nlen[i] % 8 != 0) /* skip incomplete octets */ + len--; + if (memcmp(&enc_buf[j], exp_chunk, len) != 0) { + printf("\tUnexpected chunk at enc_buf[%d:%zu]: %s\n", + j, len, osmo_hexdump(&enc_buf[j], len)); + break; /* No need to show them all */ + } + } + } +} + int main(int argc, char** argv) { printf("SMS testing\n"); @@ -396,6 +444,7 @@ test_octet_return(); test_gen_oa(); + test_enc_large_msg(); printf("OK\n"); return 0; diff --git a/tests/sms/sms_test.ok b/tests/sms/sms_test.ok index a71567d..724c166 100644 --- a/tests/sms/sms_test.ok +++ b/tests/sms/sms_test.ok @@ -18,4 +18,25 @@ Result: len(2) data(00 91 ) Result: len(9) data(0e d0 4f 78 d9 2d 9c 0e 01 ) Result: len(12) data(14 d0 4f 78 d9 2d 9c 0e c3 e2 31 19 ) + +Running test_enc_large_msg +gsm_7bit_encode_n(len=2048) processed 2048 septets (expected 2048): OK +gsm_7bit_encode_n(len=2048) used 0 octets in the buffer (expected 1792): FAIL + Unexpected chunk at enc_buf[0:7]: 00 00 00 00 00 00 00 +gsm_7bit_encode_n(len=1024) processed 1024 septets (expected 1024): OK +gsm_7bit_encode_n(len=1024) used 0 octets in the buffer (expected 896): FAIL + Unexpected chunk at enc_buf[0:7]: 00 00 00 00 00 00 00 +gsm_7bit_encode_n(len=555) processed 555 septets (expected 555): OK +gsm_7bit_encode_n(len=555) used 38 octets in the buffer (expected 486): FAIL + Unexpected chunk at enc_buf[35:6]: c1 60 10 00 00 00 +gsm_7bit_encode_n(len=512) processed 512 septets (expected 512): OK +gsm_7bit_encode_n(len=512) used 0 octets in the buffer (expected 448): FAIL + Unexpected chunk at enc_buf[0:7]: 00 00 00 00 00 00 00 +gsm_7bit_encode_n(len=260) processed 260 septets (expected 260): OK +gsm_7bit_encode_n(len=260) used 4 octets in the buffer (expected 228): FAIL + Unexpected chunk at enc_buf[0:6]: c1 60 30 08 00 00 +gsm_7bit_encode_n(len=255) processed 255 septets (expected 255): OK +gsm_7bit_encode_n(len=255) used 224 octets in the buffer (expected 224): OK +gsm_7bit_encode_n(len=250) processed 250 septets (expected 250): OK +gsm_7bit_encode_n(len=250) used 219 octets in the buffer (expected 219): OK OK -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22542 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I723300578d5ab0c7b94cf49c14d962b2dbf47740 Gerrit-Change-Number: 22542 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 30 00:35:30 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 30 Jan 2021 00:35:30 +0000 Subject: Change in libosmocore[master]: gsm_7bit_encode_n(): use regular malloc() instead of calloc() References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22543 ) Change subject: gsm_7bit_encode_n(): use regular malloc() instead of calloc() ...................................................................... gsm_7bit_encode_n(): use regular malloc() instead of calloc() In general, it's safe not to use talloc API here because those are internal allocations, and there are no 'return' statements between calloc() and free(). However, we don't really need to initialize the heap memory with 0, so let's use the 'normal' malloc(). Change-Id: I6956cbd83b2999dbcf8e2d210134b0a166c33efb --- M src/gsm/gsm_utils.c 1 file changed, 3 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/43/22543/1 diff --git a/src/gsm/gsm_utils.c b/src/gsm/gsm_utils.c index ae77a9d..d51f27e 100644 --- a/src/gsm/gsm_utils.c +++ b/src/gsm/gsm_utils.c @@ -329,12 +329,13 @@ int i = 0, z = 0; uint8_t cb, nb; int shift = 0; - uint8_t *data = calloc(septet_len + 1, sizeof(uint8_t)); + uint8_t *data = malloc(septet_len + 1); if (padding) { shift = 7 - padding; /* the first zero is needed for padding */ memcpy(data + 1, rdata, septet_len); + data[0] = 0x00; septet_len++; } else memcpy(data, rdata, septet_len); @@ -382,7 +383,7 @@ size_t max_septets = n * 8 / 7; /* prepare for the worst case, every character expanding to two bytes */ - uint8_t *rdata = calloc(strlen(data) * 2, sizeof(uint8_t)); + uint8_t *rdata = malloc(strlen(data) * 2); y = gsm_septet_encode(rdata, data); if (y > max_septets) { -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22543 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I6956cbd83b2999dbcf8e2d210134b0a166c33efb Gerrit-Change-Number: 22543 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 30 00:35:30 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 30 Jan 2021 00:35:30 +0000 Subject: Change in libosmocore[master]: gsm_7bit_encode_n(): fix integer overflow in gsm_septets2octets() References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22544 ) Change subject: gsm_7bit_encode_n(): fix integer overflow in gsm_septets2octets() ...................................................................... gsm_7bit_encode_n(): fix integer overflow in gsm_septets2octets() Using 'uint8_t' for the length argument is definitely a bad idea. Because of this, packing more than 255 septets would not work as expected. Let's use 'size_t' instead. Change-Id: Ib1aac538afeb0a5c76a1df472d555139a496e12e --- M TODO-RELEASE M include/osmocom/gsm/gsm_utils.h M src/gsm/gsm_utils.c M tests/sms/sms_test.ok 4 files changed, 8 insertions(+), 12 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/44/22544/1 diff --git a/TODO-RELEASE b/TODO-RELEASE index e1b1507..a3d5e2f 100644 --- a/TODO-RELEASE +++ b/TODO-RELEASE @@ -14,3 +14,4 @@ libosmovty ABI change struct vty_app_info: optional program specific attributes description libosmoctrl ABI change struct ctrl_handle changed size (new field "reply_cb" at the end) libosmogsm new API osmo_rai_cmp(), osmo_cgi_ps_cmp() +libosmogsm API change gsm_septets2octets(): uint8_t -> size_t for septet_len diff --git a/include/osmocom/gsm/gsm_utils.h b/include/osmocom/gsm/gsm_utils.h index de63434..f119300 100644 --- a/include/osmocom/gsm/gsm_utils.h +++ b/include/osmocom/gsm/gsm_utils.h @@ -110,7 +110,7 @@ int gsm_7bit_encode_n_ussd(uint8_t *result, size_t n, const char *data, int *octets_written); /* the four functions below are helper functions and here for the unit test */ -int gsm_septets2octets(uint8_t *result, const uint8_t *rdata, uint8_t septet_len, uint8_t padding); +int gsm_septets2octets(uint8_t *result, const uint8_t *rdata, size_t septet_len, uint8_t padding); int gsm_septet_encode(uint8_t *result, const char *data); uint8_t gsm_get_octet_len(const uint8_t sept_len); int gsm_7bit_decode_n_hdr(char *decoded, size_t n, const uint8_t *user_data, uint8_t length, uint8_t ud_hdr_ind); diff --git a/src/gsm/gsm_utils.c b/src/gsm/gsm_utils.c index d51f27e..d2c5d75 100644 --- a/src/gsm/gsm_utils.c +++ b/src/gsm/gsm_utils.c @@ -324,7 +324,7 @@ * \param[in] septet_len Length of \a rdata * \param[in] padding padding bits at start * \returns number of bytes used in \a result */ -int gsm_septets2octets(uint8_t *result, const uint8_t *rdata, uint8_t septet_len, uint8_t padding) +int gsm_septets2octets(uint8_t *result, const uint8_t *rdata, size_t septet_len, uint8_t padding) { int i = 0, z = 0; uint8_t cb, nb; diff --git a/tests/sms/sms_test.ok b/tests/sms/sms_test.ok index 724c166..de1fce3 100644 --- a/tests/sms/sms_test.ok +++ b/tests/sms/sms_test.ok @@ -21,20 +21,15 @@ Running test_enc_large_msg gsm_7bit_encode_n(len=2048) processed 2048 septets (expected 2048): OK -gsm_7bit_encode_n(len=2048) used 0 octets in the buffer (expected 1792): FAIL - Unexpected chunk at enc_buf[0:7]: 00 00 00 00 00 00 00 +gsm_7bit_encode_n(len=2048) used 1792 octets in the buffer (expected 1792): OK gsm_7bit_encode_n(len=1024) processed 1024 septets (expected 1024): OK -gsm_7bit_encode_n(len=1024) used 0 octets in the buffer (expected 896): FAIL - Unexpected chunk at enc_buf[0:7]: 00 00 00 00 00 00 00 +gsm_7bit_encode_n(len=1024) used 896 octets in the buffer (expected 896): OK gsm_7bit_encode_n(len=555) processed 555 septets (expected 555): OK -gsm_7bit_encode_n(len=555) used 38 octets in the buffer (expected 486): FAIL - Unexpected chunk at enc_buf[35:6]: c1 60 10 00 00 00 +gsm_7bit_encode_n(len=555) used 486 octets in the buffer (expected 486): OK gsm_7bit_encode_n(len=512) processed 512 septets (expected 512): OK -gsm_7bit_encode_n(len=512) used 0 octets in the buffer (expected 448): FAIL - Unexpected chunk at enc_buf[0:7]: 00 00 00 00 00 00 00 +gsm_7bit_encode_n(len=512) used 448 octets in the buffer (expected 448): OK gsm_7bit_encode_n(len=260) processed 260 septets (expected 260): OK -gsm_7bit_encode_n(len=260) used 4 octets in the buffer (expected 228): FAIL - Unexpected chunk at enc_buf[0:6]: c1 60 30 08 00 00 +gsm_7bit_encode_n(len=260) used 228 octets in the buffer (expected 228): OK gsm_7bit_encode_n(len=255) processed 255 septets (expected 255): OK gsm_7bit_encode_n(len=255) used 224 octets in the buffer (expected 224): OK gsm_7bit_encode_n(len=250) processed 250 septets (expected 250): OK -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22544 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ib1aac538afeb0a5c76a1df472d555139a496e12e Gerrit-Change-Number: 22544 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 30 01:09:43 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 30 Jan 2021 01:09:43 +0000 Subject: Change in osmo-ttcn3-hacks[master]: PCU_Tests: add testcase TC_rim_ran_info_req_single_rep and _no_si In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369 ) Change subject: PCU_Tests: add testcase TC_rim_ran_info_req_single_rep and _no_si ...................................................................... Patch Set 6: (1 comment) > Patch Set 6: > > I hope I have found a better way now to transfer the sysinfo to the PCU. Actually there is a SAPI 4 in the PCUIF protocol through which we already send SI13. This can be extended to transfer SI1 and SI3 as well. Nice! Would be funny it we discovered this after merging your initial approach ;) If you remove the first (redundant?) octet in DATA.ind messages, there would be no need to bump PCUIF version at all. https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369/6/pcu/PCU_Tests.ttcn File pcu/PCU_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369/6/pcu/PCU_Tests.ttcn at 3589 PS6, Line 3589: '01'O What is the purpose of this octet? I guess to indicate the type of SI? We don't need it because it's contained in the first octet of the SI itself: '55'O - SI1, '49'O - SI3, '01'O - SI13. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22369 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I9054ab0e969c0fbfdc671c92d44cc61360959adc Gerrit-Change-Number: 22369 Gerrit-PatchSet: 6 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Sat, 30 Jan 2021 01:09:43 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Sat Jan 30 01:33:12 2021 From: admin at opensuse.org (OBS Notification) Date: Sat, 30 Jan 2021 01:33:12 +0000 Subject: Build failure of network:osmocom:nightly/libosmocore in Debian_8.0/i586 In-Reply-To: References: Message-ID: <6014b76382e02_32fe2b11e4bbc5f88048c2@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libosmocore/Debian_8.0/i586 Package network:osmocom:nightly/libosmocore failed to build in Debian_8.0/i586 Check out the package for editing: osc checkout network:osmocom:nightly libosmocore Last lines of build log: [ 241s] make[3]: Entering directory '/usr/src/packages/BUILD/src/sim' [ 241s] CC core.lo [ 242s] CC reader.lo [ 242s] CC class_tables.lo [ 242s] CC card_fs_sim.lo [ 242s] card_fs_sim.c:105:1: error: initializer element is not constant [ 242s] }; [ 242s] ^ [ 242s] card_fs_sim.c:105:1: error: (near initialization for 'ts11_11_sw[22]') [ 242s] Makefile:531: recipe for target 'card_fs_sim.lo' failed [ 242s] make[3]: *** [card_fs_sim.lo] Error 1 [ 242s] make[3]: Leaving directory '/usr/src/packages/BUILD/src/sim' [ 242s] Makefile:693: recipe for target 'all-recursive' failed [ 242s] make[2]: *** [all-recursive] Error 1 [ 242s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 242s] Makefile:471: recipe for target 'all' failed [ 242s] make[1]: *** [all] Error 2 [ 242s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 242s] dh_auto_build: make -j1 returned exit code 2 [ 242s] debian/rules:15: recipe for target 'build' failed [ 242s] make: *** [build] Error 2 [ 242s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 242s] ### VM INTERACTION START ### [ 243s] Powering off. [ 243s] [ 230.838313] reboot: Power down [ 243s] ### VM INTERACTION END ### [ 243s] [ 243s] cloud132 failed "build libosmocore_1.4.0.429.4d400.dsc" at Sat Jan 30 01:32:58 UTC 2021. [ 243s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Jan 30 01:36:38 2021 From: admin at opensuse.org (OBS Notification) Date: Sat, 30 Jan 2021 01:36:38 +0000 Subject: Build failure of network:osmocom:nightly/libosmocore in Debian_8.0/x86_64 In-Reply-To: References: Message-ID: <6014b835426ca_32fe2b11e4bbc5f880543b@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libosmocore/Debian_8.0/x86_64 Package network:osmocom:nightly/libosmocore failed to build in Debian_8.0/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly libosmocore Last lines of build log: [ 144s] make[3]: Entering directory '/usr/src/packages/BUILD/src/sim' [ 144s] CC core.lo [ 144s] CC reader.lo [ 145s] CC class_tables.lo [ 145s] CC card_fs_sim.lo [ 145s] card_fs_sim.c:105:1: error: initializer element is not constant [ 145s] }; [ 145s] ^ [ 145s] card_fs_sim.c:105:1: error: (near initialization for 'ts11_11_sw[22]') [ 145s] Makefile:531: recipe for target 'card_fs_sim.lo' failed [ 145s] make[3]: *** [card_fs_sim.lo] Error 1 [ 145s] make[3]: Leaving directory '/usr/src/packages/BUILD/src/sim' [ 145s] Makefile:693: recipe for target 'all-recursive' failed [ 145s] make[2]: *** [all-recursive] Error 1 [ 145s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 145s] Makefile:471: recipe for target 'all' failed [ 145s] make[1]: *** [all] Error 2 [ 145s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 145s] dh_auto_build: make -j1 returned exit code 2 [ 145s] debian/rules:15: recipe for target 'build' failed [ 145s] make: *** [build] Error 2 [ 145s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 145s] ### VM INTERACTION START ### [ 146s] Powering off. [ 146s] [ 138.009098] reboot: Power down [ 146s] ### VM INTERACTION END ### [ 146s] [ 146s] sheep86 failed "build libosmocore_1.4.0.429.4d400.dsc" at Sat Jan 30 01:36:37 UTC 2021. [ 146s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Jan 30 01:38:21 2021 From: admin at opensuse.org (OBS Notification) Date: Sat, 30 Jan 2021 01:38:21 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in openSUSE_Tumbleweed/i586 In-Reply-To: References: Message-ID: <6014b8ab14986_32fe2b11e4bbc5f8805927@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-pcu/openSUSE_Tumbleweed/i586 Package network:osmocom:nightly/osmo-pcu failed to build in openSUSE_Tumbleweed/i586 Check out the package for editing: osc checkout network:osmocom:nightly osmo-pcu Last lines of build log: [ 54s] checking for pkg-config... /usr/bin/pkg-config [ 54s] checking for i586-suse-linux-gnu-pkg-config... /usr/bin/i586-suse-linux-gnu-pkg-config [ 54s] checking pkg-config is at least version 0.20... yes [ 54s] checking for ANSI C header files... (cached) yes [ 54s] checking for LIBOSMOCORE... yes [ 54s] checking for LIBOSMOVTY... yes [ 54s] checking for LIBOSMOCTRL... no [ 54s] configure: error: Package requirements (libosmoctrl >= 1.4.0) were not met: [ 54s] [ 54s] Package 'libosmoctrl', required by 'virtual:world', not found [ 54s] [ 54s] Consider adjusting the PKG_CONFIG_PATH environment variable if you [ 54s] installed software in a non-standard prefix. [ 54s] [ 54s] Alternatively, you may set the environment variables LIBOSMOCTRL_CFLAGS [ 54s] and LIBOSMOCTRL_LIBS to avoid the need to call pkg-config. [ 54s] See the pkg-config man page for more details. [ 54s] error: Bad exit status from /var/tmp/rpm-tmp.uX5rz3 (%build) [ 54s] [ 54s] [ 54s] RPM build errors: [ 54s] Bad exit status from /var/tmp/rpm-tmp.uX5rz3 (%build) [ 54s] ### VM INTERACTION START ### [ 58s] [ 49.747894] sysrq: Power Off [ 58s] [ 49.752805] reboot: Power down [ 58s] ### VM INTERACTION END ### [ 58s] [ 58s] lamb21 failed "build osmo-pcu.spec" at Sat Jan 30 01:38:12 UTC 2021. [ 58s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Jan 30 01:45:47 2021 From: admin at opensuse.org (OBS Notification) Date: Sat, 30 Jan 2021 01:45:47 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in openSUSE_Leap_15.1_ARM/aarch64 In-Reply-To: References: Message-ID: <6014ba533b11b_32fe2b11e4bbc5f88088ef@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-pcu/openSUSE_Leap_15.1_ARM/aarch64 Package network:osmocom:nightly/osmo-pcu failed to build in openSUSE_Leap_15.1_ARM/aarch64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-pcu Last lines of build log: [ 77s] checking for pkg-config... /usr/bin/pkg-config [ 77s] checking for aarch64-suse-linux-gnu-pkg-config... /usr/bin/aarch64-suse-linux-gnu-pkg-config [ 77s] checking pkg-config is at least version 0.20... yes [ 77s] checking for ANSI C header files... (cached) yes [ 77s] checking for libosmocore >= 1.4.0... yes [ 77s] checking for libosmovty >= 1.4.0... yes [ 77s] checking for libosmoctrl >= 1.4.0... no [ 77s] configure: error: Package requirements (libosmoctrl >= 1.4.0) were not met: [ 77s] [ 77s] No package 'libosmoctrl' found [ 77s] [ 77s] Consider adjusting the PKG_CONFIG_PATH environment variable if you [ 77s] installed software in a non-standard prefix. [ 77s] [ 77s] Alternatively, you may set the environment variables LIBOSMOCTRL_CFLAGS [ 77s] and LIBOSMOCTRL_LIBS to avoid the need to call pkg-config. [ 77s] See the pkg-config man page for more details. [ 77s] error: Bad exit status from /var/tmp/rpm-tmp.m4Vg68 (%build) [ 77s] [ 77s] [ 77s] RPM build errors: [ 77s] Bad exit status from /var/tmp/rpm-tmp.m4Vg68 (%build) [ 77s] ### VM INTERACTION START ### [ 80s] [ 63.764499] sysrq: SysRq : Power Off [ 80s] [ 63.765904] reboot: Power down [ 80s] ### VM INTERACTION END ### [ 80s] [ 80s] obs-arm-9 failed "build osmo-pcu.spec" at Sat Jan 30 01:45:35 UTC 2021. [ 80s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Jan 30 02:03:29 2021 From: admin at opensuse.org (OBS Notification) Date: Sat, 30 Jan 2021 02:03:29 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in CentOS_8/aarch64 In-Reply-To: References: Message-ID: <6014be86b0f0e_32fe2b11e4bbc5f88152e8@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-pcu/CentOS_8/aarch64 Package network:osmocom:nightly/osmo-pcu failed to build in CentOS_8/aarch64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-pcu Last lines of build log: [ 226s] checking for pkg-config... /usr/bin/pkg-config [ 226s] checking for aarch64-redhat-linux-gnu-pkg-config... /usr/bin/aarch64-redhat-linux-gnu-pkg-config [ 226s] checking pkg-config is at least version 0.20... yes [ 226s] checking for ANSI C header files... (cached) yes [ 226s] checking for LIBOSMOCORE... yes [ 226s] checking for LIBOSMOVTY... yes [ 226s] checking for LIBOSMOCTRL... no [ 226s] configure: error: Package requirements (libosmoctrl >= 1.4.0) were not met: [ 226s] [ 226s] Package 'libosmoctrl', required by 'virtual:world', not found [ 226s] [ 226s] Consider adjusting the PKG_CONFIG_PATH environment variable if you [ 226s] installed software in a non-standard prefix. [ 226s] [ 226s] Alternatively, you may set the environment variables LIBOSMOCTRL_CFLAGS [ 226s] and LIBOSMOCTRL_LIBS to avoid the need to call pkg-config. [ 226s] See the pkg-config man page for more details. [ 226s] error: Bad exit status from /var/tmp/rpm-tmp.ZmHn9j (%build) [ 226s] [ 226s] [ 226s] RPM build errors: [ 226s] Bad exit status from /var/tmp/rpm-tmp.ZmHn9j (%build) [ 226s] ### VM INTERACTION START ### [ 227s] Powering off. [ 227s] [ 184.994666] reboot: Power down [ 227s] ### VM INTERACTION END ### [ 227s] [ 227s] obs-arm-2 failed "build osmo-pcu.spec" at Sat Jan 30 02:03:03 UTC 2021. [ 227s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Jan 30 02:14:38 2021 From: admin at opensuse.org (OBS Notification) Date: Sat, 30 Jan 2021 02:14:38 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in openSUSE_Leap_15.2/x86_64 In-Reply-To: References: Message-ID: <6014c11fe69e3_32fe2b11e4bbc5f88204d4@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-pcu/openSUSE_Leap_15.2/x86_64 Package network:osmocom:nightly/osmo-pcu failed to build in openSUSE_Leap_15.2/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-pcu Last lines of build log: [ 41s] checking for pkg-config... /usr/bin/pkg-config [ 41s] checking for x86_64-suse-linux-gnu-pkg-config... /usr/bin/x86_64-suse-linux-gnu-pkg-config [ 41s] checking pkg-config is at least version 0.20... yes [ 41s] checking for ANSI C header files... (cached) yes [ 41s] checking for libosmocore >= 1.4.0... yes [ 41s] checking for libosmovty >= 1.4.0... yes [ 41s] checking for libosmoctrl >= 1.4.0... no [ 41s] configure: error: Package requirements (libosmoctrl >= 1.4.0) were not met: [ 41s] [ 41s] No package 'libosmoctrl' found [ 41s] [ 41s] Consider adjusting the PKG_CONFIG_PATH environment variable if you [ 41s] installed software in a non-standard prefix. [ 41s] [ 41s] Alternatively, you may set the environment variables LIBOSMOCTRL_CFLAGS [ 41s] and LIBOSMOCTRL_LIBS to avoid the need to call pkg-config. [ 41s] See the pkg-config man page for more details. [ 41s] error: Bad exit status from /var/tmp/rpm-tmp.c7LzEA (%build) [ 41s] [ 41s] [ 41s] RPM build errors: [ 41s] Bad exit status from /var/tmp/rpm-tmp.c7LzEA (%build) [ 41s] ### VM INTERACTION START ### [ 45s] [ 37.683894] sysrq: Power Off [ 45s] [ 37.693373] reboot: Power down [ 45s] ### VM INTERACTION END ### [ 45s] [ 45s] sheep82 failed "build osmo-pcu.spec" at Sat Jan 30 02:14:19 UTC 2021. [ 45s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Jan 30 02:14:55 2021 From: admin at opensuse.org (OBS Notification) Date: Sat, 30 Jan 2021 02:14:55 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in openSUSE_Leap_15.1/x86_64 In-Reply-To: References: Message-ID: <6014c13b6c252_32fe2b11e4bbc5f8820653@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-pcu/openSUSE_Leap_15.1/x86_64 Package network:osmocom:nightly/osmo-pcu failed to build in openSUSE_Leap_15.1/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-pcu Last lines of build log: [ 47s] checking for pkg-config... /usr/bin/pkg-config [ 47s] checking for x86_64-suse-linux-gnu-pkg-config... /usr/bin/x86_64-suse-linux-gnu-pkg-config [ 47s] checking pkg-config is at least version 0.20... yes [ 47s] checking for ANSI C header files... (cached) yes [ 47s] checking for libosmocore >= 1.4.0... yes [ 47s] checking for libosmovty >= 1.4.0... yes [ 47s] checking for libosmoctrl >= 1.4.0... no [ 47s] configure: error: Package requirements (libosmoctrl >= 1.4.0) were not met: [ 47s] [ 47s] No package 'libosmoctrl' found [ 47s] [ 47s] Consider adjusting the PKG_CONFIG_PATH environment variable if you [ 47s] installed software in a non-standard prefix. [ 47s] [ 47s] Alternatively, you may set the environment variables LIBOSMOCTRL_CFLAGS [ 47s] and LIBOSMOCTRL_LIBS to avoid the need to call pkg-config. [ 47s] See the pkg-config man page for more details. [ 47s] error: Bad exit status from /var/tmp/rpm-tmp.MTgscP (%build) [ 47s] [ 47s] [ 47s] RPM build errors: [ 47s] Bad exit status from /var/tmp/rpm-tmp.MTgscP (%build) [ 47s] ### VM INTERACTION START ### [ 51s] [ 41.883680] sysrq: SysRq : Power Off [ 51s] [ 41.891193] reboot: Power down [ 51s] ### VM INTERACTION END ### [ 51s] [ 51s] hci-cnode1-m0 failed "build osmo-pcu.spec" at Sat Jan 30 02:14:28 UTC 2021. [ 51s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Jan 30 02:23:48 2021 From: admin at opensuse.org (OBS Notification) Date: Sat, 30 Jan 2021 02:23:48 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in openSUSE_Tumbleweed/x86_64 In-Reply-To: References: Message-ID: <6014c3394b338_32fe2b11e4bbc5f8823221@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-pcu/openSUSE_Tumbleweed/x86_64 Package network:osmocom:nightly/osmo-pcu failed to build in openSUSE_Tumbleweed/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-pcu Last lines of build log: [ 43s] checking for pkg-config... /usr/bin/pkg-config [ 43s] checking for x86_64-suse-linux-gnu-pkg-config... /usr/bin/x86_64-suse-linux-gnu-pkg-config [ 43s] checking pkg-config is at least version 0.20... yes [ 43s] checking for ANSI C header files... (cached) yes [ 43s] checking for LIBOSMOCORE... yes [ 43s] checking for LIBOSMOVTY... yes [ 43s] checking for LIBOSMOCTRL... no [ 43s] configure: error: Package requirements (libosmoctrl >= 1.4.0) were not met: [ 43s] [ 43s] Package 'libosmoctrl', required by 'virtual:world', not found [ 43s] [ 43s] Consider adjusting the PKG_CONFIG_PATH environment variable if you [ 43s] installed software in a non-standard prefix. [ 43s] [ 43s] Alternatively, you may set the environment variables LIBOSMOCTRL_CFLAGS [ 43s] and LIBOSMOCTRL_LIBS to avoid the need to call pkg-config. [ 43s] See the pkg-config man page for more details. [ 43s] error: Bad exit status from /var/tmp/rpm-tmp.K3SbiC (%build) [ 43s] [ 43s] [ 43s] RPM build errors: [ 43s] Bad exit status from /var/tmp/rpm-tmp.K3SbiC (%build) [ 43s] ### VM INTERACTION START ### [ 46s] [ 37.770613] sysrq: Power Off [ 46s] [ 37.776272] reboot: Power down [ 46s] ### VM INTERACTION END ### [ 46s] [ 46s] lamb23 failed "build osmo-pcu.spec" at Sat Jan 30 02:23:27 UTC 2021. [ 46s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Jan 30 02:30:42 2021 From: admin at opensuse.org (OBS Notification) Date: Sat, 30 Jan 2021 02:30:42 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in CentOS_8/x86_64 In-Reply-To: References: Message-ID: <6014c4dc6a11c_32fe2b11e4bbc5f88253c8@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-pcu/CentOS_8/x86_64 Package network:osmocom:nightly/osmo-pcu failed to build in CentOS_8/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-pcu Last lines of build log: [ 78s] checking for pkg-config... /usr/bin/pkg-config [ 78s] checking for x86_64-redhat-linux-gnu-pkg-config... /usr/bin/x86_64-redhat-linux-gnu-pkg-config [ 78s] checking pkg-config is at least version 0.20... yes [ 78s] checking for ANSI C header files... (cached) yes [ 78s] checking for LIBOSMOCORE... yes [ 78s] checking for LIBOSMOVTY... yes [ 78s] checking for LIBOSMOCTRL... no [ 78s] configure: error: Package requirements (libosmoctrl >= 1.4.0) were not met: [ 78s] [ 78s] Package 'libosmoctrl', required by 'virtual:world', not found [ 78s] [ 78s] Consider adjusting the PKG_CONFIG_PATH environment variable if you [ 78s] installed software in a non-standard prefix. [ 78s] [ 78s] Alternatively, you may set the environment variables LIBOSMOCTRL_CFLAGS [ 78s] and LIBOSMOCTRL_LIBS to avoid the need to call pkg-config. [ 78s] See the pkg-config man page for more details. [ 78s] error: Bad exit status from /var/tmp/rpm-tmp.VJ2m5x (%build) [ 78s] [ 78s] [ 78s] RPM build errors: [ 78s] Bad exit status from /var/tmp/rpm-tmp.VJ2m5x (%build) [ 78s] ### VM INTERACTION START ### [ 80s] Powering off. [ 80s] [ 68.270409] reboot: Power down [ 80s] ### VM INTERACTION END ### [ 80s] [ 80s] sheep88 failed "build osmo-pcu.spec" at Sat Jan 30 02:30:24 UTC 2021. [ 80s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Jan 30 02:32:42 2021 From: admin at opensuse.org (OBS Notification) Date: Sat, 30 Jan 2021 02:32:42 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in openSUSE_Leap_15.1_ARM/armv7l In-Reply-To: References: Message-ID: <6014c55466880_32fe2b11e4bbc5f88259a3@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-pcu/openSUSE_Leap_15.1_ARM/armv7l Package network:osmocom:nightly/osmo-pcu failed to build in openSUSE_Leap_15.1_ARM/armv7l Check out the package for editing: osc checkout network:osmocom:nightly osmo-pcu Last lines of build log: [ 128s] checking for pkg-config... /usr/bin/pkg-config [ 128s] checking for armv7hl-suse-linux-gnueabi-pkg-config... /usr/bin/armv7hl-suse-linux-gnueabi-pkg-config [ 128s] checking pkg-config is at least version 0.20... yes [ 128s] checking for ANSI C header files... (cached) yes [ 128s] checking for libosmocore >= 1.4.0... yes [ 128s] checking for libosmovty >= 1.4.0... yes [ 128s] checking for libosmoctrl >= 1.4.0... no [ 128s] configure: error: Package requirements (libosmoctrl >= 1.4.0) were not met: [ 128s] [ 128s] No package 'libosmoctrl' found [ 128s] [ 128s] Consider adjusting the PKG_CONFIG_PATH environment variable if you [ 128s] installed software in a non-standard prefix. [ 128s] [ 128s] Alternatively, you may set the environment variables LIBOSMOCTRL_CFLAGS [ 128s] and LIBOSMOCTRL_LIBS to avoid the need to call pkg-config. [ 128s] See the pkg-config man page for more details. [ 128s] error: Bad exit status from /var/tmp/rpm-tmp.evPbD0 (%build) [ 128s] [ 128s] [ 128s] RPM build errors: [ 128s] Bad exit status from /var/tmp/rpm-tmp.evPbD0 (%build) [ 128s] ### VM INTERACTION START ### [ 132s] [ 105.244913] sysrq: SysRq : Power Off [ 132s] [ 105.247280] reboot: Power down [ 132s] ### VM INTERACTION END ### [ 132s] [ 132s] obs-arm-5 failed "build osmo-pcu.spec" at Sat Jan 30 02:32:38 UTC 2021. [ 132s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Jan 30 02:59:34 2021 From: admin at opensuse.org (OBS Notification) Date: Sat, 30 Jan 2021 02:59:34 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.10/x86_64 In-Reply-To: References: Message-ID: <6014cba85ecb9_32fe2b11e4bbc5f88327fd@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/xUbuntu_20.10/x86_64 Package network:osmocom:nightly/simtrace2 failed to build in xUbuntu_20.10/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 191s] [COMPILING apps/dfu/main.c] [ 191s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 191s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 191s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 192s] Memory region Used Size Region Size %age Used [ 192s] rom: 16580 B 16 KB 101.20% [ 192s] ram: 11672 B 48 KB 23.75/usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 192s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 192s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 192s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 192s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 192s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 192s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 196 bytes [ 192s] collect2: error: ld returned 1 exit status [ 192s] % [ 192s] make[2]: *** [Makefile:234: flash] Error 1 [ 192s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 192s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 192s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 192s] dh_auto_build: error: make -j1 returned exit code 2 [ 192s] make: *** [debian/rules:16: build] Error 25 [ 192s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 192s] ### VM INTERACTION START ### [ 195s] [ 175.009570] sysrq: Power Off [ 195s] [ 175.015288] reboot: Power down [ 195s] ### VM INTERACTION END ### [ 195s] [ 195s] old-atreju3 failed "build simtrace2_0.7.0.70.657c.dsc" at Sat Jan 30 02:59:32 UTC 2021. [ 195s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Jan 30 02:59:34 2021 From: admin at opensuse.org (OBS Notification) Date: Sat, 30 Jan 2021 02:59:34 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <6014cba9955ca_32fe2b11e4bbc5f883298f@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/xUbuntu_20.04/x86_64 Package network:osmocom:nightly/simtrace2 failed to build in xUbuntu_20.04/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 186s] [COMPILING libboard/qmod/source/wwan_perst.c] [ 186s] [COMPILING libboard/qmod/source/card_pres.c] [ 186s] [COMPILING libboard/qmod/source/wwan_led.c] [ 186s] [COMPILING libboard/qmod/source/i2c.c] [ 187s] [COMPILING libboard/qmod/source/board_qmod.c] [ 187s] [COMPILING apps/dfu/main.c] [ 187s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 187s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 187s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 187s] Memory region Used Size Region Size %age Used [ 187s] rom: 16588 B 16 KB 101.25% [ 187s] ram: 11672 B 48 KB 23.75/usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 187s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 204 bytes [ 187s] collect2: error: ld returned 1 exit status [ 187s] % [ 187s] make[2]: *** [Makefile:234: flash] Error 1 [ 187s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 187s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 187s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 187s] dh_auto_build: error: make -j1 returned exit code 2 [ 187s] make: *** [debian/rules:16: build] Error 25 [ 187s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 187s] ### VM INTERACTION START ### [ 190s] [ 172.395610] sysrq: Power Off [ 190s] [ 172.399201] reboot: Power down [ 191s] ### VM INTERACTION END ### [ 191s] [ 191s] old-atreju2 failed "build simtrace2_0.7.0.70.657c.dsc" at Sat Jan 30 02:59:18 UTC 2021. [ 191s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Jan 30 05:44:08 2021 From: admin at opensuse.org (OBS Notification) Date: Sat, 30 Jan 2021 05:44:08 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in openSUSE_Factory_ARM/aarch64 In-Reply-To: References: Message-ID: <6014f237d1656_32fe2b11e4bbc5f88581fe@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-pcu/openSUSE_Factory_ARM/aarch64 Package network:osmocom:nightly/osmo-pcu failed to build in openSUSE_Factory_ARM/aarch64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-pcu Last lines of build log: [ 62s] checking for pkg-config... /usr/bin/pkg-config [ 62s] checking for aarch64-suse-linux-gnu-pkg-config... /usr/bin/aarch64-suse-linux-gnu-pkg-config [ 62s] checking pkg-config is at least version 0.20... yes [ 62s] checking for ANSI C header files... (cached) yes [ 62s] checking for LIBOSMOCORE... yes [ 62s] checking for LIBOSMOVTY... yes [ 62s] checking for LIBOSMOCTRL... no [ 62s] configure: error: Package requirements (libosmoctrl >= 1.4.0) were not met: [ 62s] [ 62s] Package 'libosmoctrl', required by 'virtual:world', not found [ 62s] [ 62s] Consider adjusting the PKG_CONFIG_PATH environment variable if you [ 62s] installed software in a non-standard prefix. [ 62s] [ 62s] Alternatively, you may set the environment variables LIBOSMOCTRL_CFLAGS [ 62s] and LIBOSMOCTRL_LIBS to avoid the need to call pkg-config. [ 62s] See the pkg-config man page for more details. [ 63s] error: Bad exit status from /var/tmp/rpm-tmp.Sh4Imn (%build) [ 63s] [ 63s] [ 63s] RPM build errors: [ 63s] Bad exit status from /var/tmp/rpm-tmp.Sh4Imn (%build) [ 63s] ### VM INTERACTION START ### [ 66s] [ 48.839976] sysrq: Power Off [ 66s] [ 48.845504] reboot: Power down [ 66s] ### VM INTERACTION END ### [ 66s] [ 66s] obs-arm-9 failed "build osmo-pcu.spec" at Sat Jan 30 05:44:05 UTC 2021. [ 66s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Jan 30 06:17:19 2021 From: admin at opensuse.org (OBS Notification) Date: Sat, 30 Jan 2021 06:17:19 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in openSUSE_Factory_ARM/armv7l In-Reply-To: References: Message-ID: <6014fa0c2a979_32fe2b11e4bbc5f887126a@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-pcu/openSUSE_Factory_ARM/armv7l Package network:osmocom:nightly/osmo-pcu failed to build in openSUSE_Factory_ARM/armv7l Check out the package for editing: osc checkout network:osmocom:nightly osmo-pcu Last lines of build log: [ 112s] checking for pkg-config... /usr/bin/pkg-config [ 112s] checking for armv7hl-suse-linux-gnueabi-pkg-config... /usr/bin/armv7hl-suse-linux-gnueabi-pkg-config [ 112s] checking pkg-config is at least version 0.20... yes [ 112s] checking for ANSI C header files... (cached) yes [ 112s] checking for LIBOSMOCORE... yes [ 112s] checking for LIBOSMOVTY... yes [ 112s] checking for LIBOSMOCTRL... no [ 112s] configure: error: Package requirements (libosmoctrl >= 1.4.0) were not met: [ 112s] [ 112s] Package 'libosmoctrl', required by 'virtual:world', not found [ 112s] [ 112s] Consider adjusting the PKG_CONFIG_PATH environment variable if you [ 112s] installed software in a non-standard prefix. [ 112s] [ 112s] Alternatively, you may set the environment variables LIBOSMOCTRL_CFLAGS [ 112s] and LIBOSMOCTRL_LIBS to avoid the need to call pkg-config. [ 112s] See the pkg-config man page for more details. [ 112s] error: Bad exit status from /var/tmp/rpm-tmp.D4MSHP (%build) [ 112s] [ 112s] [ 112s] RPM build errors: [ 112s] Bad exit status from /var/tmp/rpm-tmp.D4MSHP (%build) [ 112s] ### VM INTERACTION START ### [ 115s] [ 94.114705] sysrq: Power Off [ 115s] [ 94.116288] reboot: Power down [ 115s] ### VM INTERACTION END ### [ 115s] [ 115s] armbuild18 failed "build osmo-pcu.spec" at Sat Jan 30 06:17:02 UTC 2021. [ 115s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Sat Jan 30 08:42:35 2021 From: gerrit-no-reply at lists.osmocom.org (iedemam) Date: Sat, 30 Jan 2021 08:42:35 +0000 Subject: Change in osmo-bsc[master]: stats: Add granularity to chan:rf_fail stat. In-Reply-To: References: Message-ID: iedemam has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22518 ) Change subject: stats: Add granularity to chan:rf_fail stat. ...................................................................... Patch Set 1: (1 comment) Thanks for the reviews. I will resolve the issue raised in a subsequent patch if that's OK. I know there are more instances with the same problem and can knock them all out at once. https://gerrit.osmocom.org/c/osmo-bsc/+/22518/1/src/osmo-bsc/abis_rsl.c File src/osmo-bsc/abis_rsl.c: https://gerrit.osmocom.org/c/osmo-bsc/+/22518/1/src/osmo-bsc/abis_rsl.c at 991 PS1, Line 991: lchan->ts->trx->bts->bts_ctrs->ctr > that long chain of pointer de-references was "OK" if we used it only once. [?] Good point. I've done the same in other locations with my previous stats patch. If it's ok with you, I'll submit a new patch after this is accepted which changes all of those instances as well as this one to use a temporary variable in lieu of the huge chain of dereferences. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22518 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I91fe6659fe9df33763f4070b4f505561b2005d38 Gerrit-Change-Number: 22518 Gerrit-PatchSet: 1 Gerrit-Owner: iedemam Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 30 Jan 2021 08:42:35 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: laforge Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 30 10:05:48 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 30 Jan 2021 10:05:48 +0000 Subject: Change in osmo-ttcn3-hacks[master]: fr + gbproxy: Start to use AF_PACKET ENOBUFS work-around References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22545 ) Change subject: fr + gbproxy: Start to use AF_PACKET ENOBUFS work-around ...................................................................... fr + gbproxy: Start to use AF_PACKET ENOBUFS work-around If send() on AF_PACKET returns ENOBUFS, usleep for 2ms and re-try until it succeeds. Change-Id: Id7bdd2c690eae3bec1df7634944cd73f0bf0b29a Closes: OS#5343 --- M deps/Makefile M fr-net/FRNET_Tests.default M fr/FR_Tests.default M gbproxy/GBProxy_Tests.default 4 files changed, 4 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/45/22545/1 diff --git a/deps/Makefile b/deps/Makefile index 1f2560b..0a5d86c 100644 --- a/deps/Makefile +++ b/deps/Makefile @@ -112,7 +112,7 @@ titan.ProtocolModules.SUA_commit= R.5.A-5-gcf1137a titan.ProtocolModules.TCP_commit= R.3.A-5-g39e5f45 titan.ProtocolModules.UDP_commit= R.4.A-5-geea8aa3 -titan.TestPorts.AF_PACKET_commit= 0.1-1-gcd69809 +titan.TestPorts.AF_PACKET_commit= 0.1-2-g90ef318 titan.TestPorts.Common_Components.Socket-API_commit= R.6.A-6-gf4380d0 titan.TestPorts.Common_Components.Abstract_Socket_commit= R.9.B-4-gbd41994 titan.TestPorts.HTTPmsg_commit= R.9.B-4-g9a0dfde diff --git a/fr-net/FRNET_Tests.default b/fr-net/FRNET_Tests.default index 2fb8c90..d694d98 100644 --- a/fr-net/FRNET_Tests.default +++ b/fr-net/FRNET_Tests.default @@ -9,6 +9,7 @@ [MODULE_PARAMETERS] [TESTPORT_PARAMETERS] +*.FR.sleep_on_enobufs := "2000" # 2ms [MAIN_CONTROLLER] diff --git a/fr/FR_Tests.default b/fr/FR_Tests.default index 2fb8c90..d7afd31 100644 --- a/fr/FR_Tests.default +++ b/fr/FR_Tests.default @@ -9,6 +9,7 @@ [MODULE_PARAMETERS] [TESTPORT_PARAMETERS] +*.FR.sleep_on_enobufs := "2000" [MAIN_CONTROLLER] diff --git a/gbproxy/GBProxy_Tests.default b/gbproxy/GBProxy_Tests.default index 8634b49..b0f28f5 100644 --- a/gbproxy/GBProxy_Tests.default +++ b/gbproxy/GBProxy_Tests.default @@ -21,6 +21,7 @@ *.GBPVTY.CTRL_CLIENT_CLEANUP_LINEFEED := "yes" *.GBPVTY.CTRL_DETECT_CONNECTION_ESTABLISHMENT_RESULT := "yes" *.GBPVTY.PROMPT1 := "OsmoGbProxy> " +*.FR.sleep_on_enobufs := "2000" # 2ms [MODULE_PARAMETERS] -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22545 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Id7bdd2c690eae3bec1df7634944cd73f0bf0b29a Gerrit-Change-Number: 22545 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 30 12:44:22 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 30 Jan 2021 12:44:22 +0000 Subject: Change in osmo-pcu[master]: contrib/osmo-pcu.spec.in: add missing libosmoctrl dependency References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22546 ) Change subject: contrib/osmo-pcu.spec.in: add missing libosmoctrl dependency ...................................................................... contrib/osmo-pcu.spec.in: add missing libosmoctrl dependency Change-Id: I37c478f3f430f72620af17f1c3329f6ee8515402 Fixes: Id35f40d05f3e081f32fddbf1fa34cb338db452ca --- M contrib/osmo-pcu.spec.in 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/46/22546/1 diff --git a/contrib/osmo-pcu.spec.in b/contrib/osmo-pcu.spec.in index e197cb7..3cbc238 100644 --- a/contrib/osmo-pcu.spec.in +++ b/contrib/osmo-pcu.spec.in @@ -32,6 +32,7 @@ BuildRequires: pkgconfig(libosmogb) >= 1.1.0 BuildRequires: pkgconfig(libosmogsm) >= 1.1.0 BuildRequires: pkgconfig(libosmovty) >= 1.1.0 +BuildRequires: pkgconfig(libosmoctrl) >= 1.2.0 %{?systemd_requires} %description -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22546 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I37c478f3f430f72620af17f1c3329f6ee8515402 Gerrit-Change-Number: 22546 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 30 13:23:51 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 30 Jan 2021 13:23:51 +0000 Subject: Change in osmo-ttcn3-hacks[master]: library/Osmocom_VTY_Functions: cosmetic: coding style changes References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22547 ) Change subject: library/Osmocom_VTY_Functions: cosmetic: coding style changes ...................................................................... library/Osmocom_VTY_Functions: cosmetic: coding style changes Change-Id: Idccdf6fcbda2d020d2263ea1440ea1c5d9ea0e45 --- M library/Osmocom_VTY_Functions.ttcn 1 file changed, 27 insertions(+), 26 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/47/22547/1 diff --git a/library/Osmocom_VTY_Functions.ttcn b/library/Osmocom_VTY_Functions.ttcn index b291b03..a9f4c24 100644 --- a/library/Osmocom_VTY_Functions.ttcn +++ b/library/Osmocom_VTY_Functions.ttcn @@ -56,39 +56,40 @@ } /* wait for any of the permitted prompts; buffer + return all intermediate output */ - function f_vty_wait_for_prompt(TELNETasp_PT pt, boolean strict := true, charstring log_label := "(?)") return charstring { + function f_vty_wait_for_prompt(TELNETasp_PT pt, boolean strict := true, charstring log_label := "(?)") + return charstring { var charstring rx, buf := ""; var integer fd; timer T := 2.0; T.start; alt { - [] pt.receive(pattern "[\w-]+" & VTY_VIEW_SUFFIX) { }; - [] pt.receive(pattern "[\w-]+\# ") { }; - [] pt.receive(pattern "[\w-]+\(*\)\# ") { }; - [] pt.receive(t_vty_unknown) -> value rx { - if (strict) { - setverdict(fail, "VTY: Unknown Command: " & log_label); - mtc.stop; - } else { - log("VTY: Unknown Command (ignored): " & log_label); - buf := buf & rx; - repeat; - } - }; - [] pt.receive(charstring:?) -> value rx { buf := buf & rx; repeat }; - [] pt.receive(integer:?) -> value fd { - if (fd == -1) { - setverdict(fail, "VTY Telnet Connection Failure: " & log_label); - mtc.stop; - } else { - repeat; /* telnet connection succeeded */ - } - } - [] T.timeout { - setverdict(fail, "VTY Timeout for prompt: " & log_label); + [] pt.receive(pattern "[\w-]+" & VTY_VIEW_SUFFIX) { }; + [] pt.receive(pattern "[\w-]+\# ") { }; + [] pt.receive(pattern "[\w-]+\(*\)\# ") { }; + [] pt.receive(t_vty_unknown) -> value rx { + if (strict) { + setverdict(fail, "VTY: Unknown Command: " & log_label); mtc.stop; - }; + } else { + log("VTY: Unknown Command (ignored): " & log_label); + buf := buf & rx; + repeat; + } + }; + [] pt.receive(charstring:?) -> value rx { buf := buf & rx; repeat }; + [] pt.receive(integer:?) -> value fd { + if (fd == -1) { + setverdict(fail, "VTY Telnet Connection Failure: " & log_label); + mtc.stop; + } else { + repeat; /* telnet connection succeeded */ + } + } + [] T.timeout { + setverdict(fail, "VTY Timeout for prompt: " & log_label); + mtc.stop; + }; } T.stop; return buf; -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22547 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Idccdf6fcbda2d020d2263ea1440ea1c5d9ea0e45 Gerrit-Change-Number: 22547 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 30 13:23:52 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 30 Jan 2021 13:23:52 +0000 Subject: Change in osmo-ttcn3-hacks[master]: library/Osmocom_VTY_Functions: make VTY prompt timeout configurable References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22548 ) Change subject: library/Osmocom_VTY_Functions: make VTY prompt timeout configurable ...................................................................... library/Osmocom_VTY_Functions: make VTY prompt timeout configurable Change-Id: Iadec95446b98d9767d08a841fa1c28f8c71c5eea --- M library/Osmocom_VTY_Functions.ttcn 1 file changed, 3 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/48/22548/1 diff --git a/library/Osmocom_VTY_Functions.ttcn b/library/Osmocom_VTY_Functions.ttcn index a9f4c24..9410c9e 100644 --- a/library/Osmocom_VTY_Functions.ttcn +++ b/library/Osmocom_VTY_Functions.ttcn @@ -15,6 +15,7 @@ modulepar { charstring mp_prompt_prefix := "OpenBSC"; + float mp_prompt_timeout := 2.0; } const charstring VTY_VIEW_SUFFIX := "> "; @@ -60,9 +61,9 @@ return charstring { var charstring rx, buf := ""; var integer fd; - timer T := 2.0; + timer T; - T.start; + T.start(mp_prompt_timeout); alt { [] pt.receive(pattern "[\w-]+" & VTY_VIEW_SUFFIX) { }; [] pt.receive(pattern "[\w-]+\# ") { }; -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22548 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Iadec95446b98d9767d08a841fa1c28f8c71c5eea Gerrit-Change-Number: 22548 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 30 13:23:53 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 30 Jan 2021 13:23:53 +0000 Subject: Change in osmo-ttcn3-hacks[master]: hlr/HLR_Tests.default: increase the VTY prompt timeout References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22549 ) Change subject: hlr/HLR_Tests.default: increase the VTY prompt timeout ...................................................................... hlr/HLR_Tests.default: increase the VTY prompt timeout The subscriber management commands in osmo-hlr may take a while to complete, because it needs to update the SQLite database. Let's increase the timeout, so the test suite would not fail due to the IUT taking longer than 2 seconds to create a subscriber. Change-Id: I5835d5f8fa8915182623b59b23b5a23816950e4f --- M hlr/HLR_Tests.default 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/49/22549/1 diff --git a/hlr/HLR_Tests.default b/hlr/HLR_Tests.default index 2e9aac6..36dbbc1 100644 --- a/hlr/HLR_Tests.default +++ b/hlr/HLR_Tests.default @@ -19,5 +19,6 @@ [MODULE_PARAMETERS] Osmocom_VTY_Functions.mp_prompt_prefix := "OsmoHLR"; +Osmocom_VTY_Functions.mp_prompt_timeout := 6.0; [EXECUTE] -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22549 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I5835d5f8fa8915182623b59b23b5a23816950e4f Gerrit-Change-Number: 22549 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 30 14:06:55 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 30 Jan 2021 14:06:55 +0000 Subject: Change in osmo-ttcn3-hacks[master]: library/Osmocom_VTY_Functions: cosmetic: coding style changes In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22547 ) Change subject: library/Osmocom_VTY_Functions: cosmetic: coding style changes ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22547 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Idccdf6fcbda2d020d2263ea1440ea1c5d9ea0e45 Gerrit-Change-Number: 22547 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 30 Jan 2021 14:06:55 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 30 14:07:05 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 30 Jan 2021 14:07:05 +0000 Subject: Change in osmo-ttcn3-hacks[master]: library/Osmocom_VTY_Functions: make VTY prompt timeout configurable In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22548 ) Change subject: library/Osmocom_VTY_Functions: make VTY prompt timeout configurable ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22548 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Iadec95446b98d9767d08a841fa1c28f8c71c5eea Gerrit-Change-Number: 22548 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 30 Jan 2021 14:07:05 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 30 14:07:37 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 30 Jan 2021 14:07:37 +0000 Subject: Change in osmo-ttcn3-hacks[master]: hlr/HLR_Tests.default: increase the VTY prompt timeout In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22549 ) Change subject: hlr/HLR_Tests.default: increase the VTY prompt timeout ...................................................................... Patch Set 1: Code-Review+1 really, it takes more than 2s for the VTY to respond to a subscriber command? That seems a bit long to me. But if you have seen that this fixes it... -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22549 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I5835d5f8fa8915182623b59b23b5a23816950e4f Gerrit-Change-Number: 22549 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 30 Jan 2021 14:07:37 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 30 14:07:43 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 30 Jan 2021 14:07:43 +0000 Subject: Change in osmo-ttcn3-hacks[master]: library/Osmocom_VTY_Functions: cosmetic: coding style changes In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22547 ) Change subject: library/Osmocom_VTY_Functions: cosmetic: coding style changes ...................................................................... library/Osmocom_VTY_Functions: cosmetic: coding style changes Change-Id: Idccdf6fcbda2d020d2263ea1440ea1c5d9ea0e45 --- M library/Osmocom_VTY_Functions.ttcn 1 file changed, 27 insertions(+), 26 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/library/Osmocom_VTY_Functions.ttcn b/library/Osmocom_VTY_Functions.ttcn index b291b03..a9f4c24 100644 --- a/library/Osmocom_VTY_Functions.ttcn +++ b/library/Osmocom_VTY_Functions.ttcn @@ -56,39 +56,40 @@ } /* wait for any of the permitted prompts; buffer + return all intermediate output */ - function f_vty_wait_for_prompt(TELNETasp_PT pt, boolean strict := true, charstring log_label := "(?)") return charstring { + function f_vty_wait_for_prompt(TELNETasp_PT pt, boolean strict := true, charstring log_label := "(?)") + return charstring { var charstring rx, buf := ""; var integer fd; timer T := 2.0; T.start; alt { - [] pt.receive(pattern "[\w-]+" & VTY_VIEW_SUFFIX) { }; - [] pt.receive(pattern "[\w-]+\# ") { }; - [] pt.receive(pattern "[\w-]+\(*\)\# ") { }; - [] pt.receive(t_vty_unknown) -> value rx { - if (strict) { - setverdict(fail, "VTY: Unknown Command: " & log_label); - mtc.stop; - } else { - log("VTY: Unknown Command (ignored): " & log_label); - buf := buf & rx; - repeat; - } - }; - [] pt.receive(charstring:?) -> value rx { buf := buf & rx; repeat }; - [] pt.receive(integer:?) -> value fd { - if (fd == -1) { - setverdict(fail, "VTY Telnet Connection Failure: " & log_label); - mtc.stop; - } else { - repeat; /* telnet connection succeeded */ - } - } - [] T.timeout { - setverdict(fail, "VTY Timeout for prompt: " & log_label); + [] pt.receive(pattern "[\w-]+" & VTY_VIEW_SUFFIX) { }; + [] pt.receive(pattern "[\w-]+\# ") { }; + [] pt.receive(pattern "[\w-]+\(*\)\# ") { }; + [] pt.receive(t_vty_unknown) -> value rx { + if (strict) { + setverdict(fail, "VTY: Unknown Command: " & log_label); mtc.stop; - }; + } else { + log("VTY: Unknown Command (ignored): " & log_label); + buf := buf & rx; + repeat; + } + }; + [] pt.receive(charstring:?) -> value rx { buf := buf & rx; repeat }; + [] pt.receive(integer:?) -> value fd { + if (fd == -1) { + setverdict(fail, "VTY Telnet Connection Failure: " & log_label); + mtc.stop; + } else { + repeat; /* telnet connection succeeded */ + } + } + [] T.timeout { + setverdict(fail, "VTY Timeout for prompt: " & log_label); + mtc.stop; + }; } T.stop; return buf; -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22547 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Idccdf6fcbda2d020d2263ea1440ea1c5d9ea0e45 Gerrit-Change-Number: 22547 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 30 14:07:44 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 30 Jan 2021 14:07:44 +0000 Subject: Change in osmo-ttcn3-hacks[master]: library/Osmocom_VTY_Functions: make VTY prompt timeout configurable In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22548 ) Change subject: library/Osmocom_VTY_Functions: make VTY prompt timeout configurable ...................................................................... library/Osmocom_VTY_Functions: make VTY prompt timeout configurable Change-Id: Iadec95446b98d9767d08a841fa1c28f8c71c5eea --- M library/Osmocom_VTY_Functions.ttcn 1 file changed, 3 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/library/Osmocom_VTY_Functions.ttcn b/library/Osmocom_VTY_Functions.ttcn index a9f4c24..9410c9e 100644 --- a/library/Osmocom_VTY_Functions.ttcn +++ b/library/Osmocom_VTY_Functions.ttcn @@ -15,6 +15,7 @@ modulepar { charstring mp_prompt_prefix := "OpenBSC"; + float mp_prompt_timeout := 2.0; } const charstring VTY_VIEW_SUFFIX := "> "; @@ -60,9 +61,9 @@ return charstring { var charstring rx, buf := ""; var integer fd; - timer T := 2.0; + timer T; - T.start; + T.start(mp_prompt_timeout); alt { [] pt.receive(pattern "[\w-]+" & VTY_VIEW_SUFFIX) { }; [] pt.receive(pattern "[\w-]+\# ") { }; -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22548 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Iadec95446b98d9767d08a841fa1c28f8c71c5eea Gerrit-Change-Number: 22548 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 30 14:08:15 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 30 Jan 2021 14:08:15 +0000 Subject: Change in osmo-ttcn3-hacks[master]: fr + gbproxy: Start to use AF_PACKET ENOBUFS work-around In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22545 ) Change subject: fr + gbproxy: Start to use AF_PACKET ENOBUFS work-around ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22545 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Id7bdd2c690eae3bec1df7634944cd73f0bf0b29a Gerrit-Change-Number: 22545 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 30 Jan 2021 14:08:15 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 30 14:08:16 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 30 Jan 2021 14:08:16 +0000 Subject: Change in osmo-ttcn3-hacks[master]: fr + gbproxy: Start to use AF_PACKET ENOBUFS work-around In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22545 ) Change subject: fr + gbproxy: Start to use AF_PACKET ENOBUFS work-around ...................................................................... fr + gbproxy: Start to use AF_PACKET ENOBUFS work-around If send() on AF_PACKET returns ENOBUFS, usleep for 2ms and re-try until it succeeds. Change-Id: Id7bdd2c690eae3bec1df7634944cd73f0bf0b29a Closes: OS#5343 --- M deps/Makefile M fr-net/FRNET_Tests.default M fr/FR_Tests.default M gbproxy/GBProxy_Tests.default 4 files changed, 4 insertions(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/deps/Makefile b/deps/Makefile index 1f2560b..0a5d86c 100644 --- a/deps/Makefile +++ b/deps/Makefile @@ -112,7 +112,7 @@ titan.ProtocolModules.SUA_commit= R.5.A-5-gcf1137a titan.ProtocolModules.TCP_commit= R.3.A-5-g39e5f45 titan.ProtocolModules.UDP_commit= R.4.A-5-geea8aa3 -titan.TestPorts.AF_PACKET_commit= 0.1-1-gcd69809 +titan.TestPorts.AF_PACKET_commit= 0.1-2-g90ef318 titan.TestPorts.Common_Components.Socket-API_commit= R.6.A-6-gf4380d0 titan.TestPorts.Common_Components.Abstract_Socket_commit= R.9.B-4-gbd41994 titan.TestPorts.HTTPmsg_commit= R.9.B-4-g9a0dfde diff --git a/fr-net/FRNET_Tests.default b/fr-net/FRNET_Tests.default index 2fb8c90..d694d98 100644 --- a/fr-net/FRNET_Tests.default +++ b/fr-net/FRNET_Tests.default @@ -9,6 +9,7 @@ [MODULE_PARAMETERS] [TESTPORT_PARAMETERS] +*.FR.sleep_on_enobufs := "2000" # 2ms [MAIN_CONTROLLER] diff --git a/fr/FR_Tests.default b/fr/FR_Tests.default index 2fb8c90..d7afd31 100644 --- a/fr/FR_Tests.default +++ b/fr/FR_Tests.default @@ -9,6 +9,7 @@ [MODULE_PARAMETERS] [TESTPORT_PARAMETERS] +*.FR.sleep_on_enobufs := "2000" [MAIN_CONTROLLER] diff --git a/gbproxy/GBProxy_Tests.default b/gbproxy/GBProxy_Tests.default index 8634b49..b0f28f5 100644 --- a/gbproxy/GBProxy_Tests.default +++ b/gbproxy/GBProxy_Tests.default @@ -21,6 +21,7 @@ *.GBPVTY.CTRL_CLIENT_CLEANUP_LINEFEED := "yes" *.GBPVTY.CTRL_DETECT_CONNECTION_ESTABLISHMENT_RESULT := "yes" *.GBPVTY.PROMPT1 := "OsmoGbProxy> " +*.FR.sleep_on_enobufs := "2000" # 2ms [MODULE_PARAMETERS] -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22545 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Id7bdd2c690eae3bec1df7634944cd73f0bf0b29a Gerrit-Change-Number: 22545 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 30 14:09:43 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 30 Jan 2021 14:09:43 +0000 Subject: Change in osmo-bts[master]: pcu_sock: send SI1, SI3 and SI3 via PCUIF In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/22541 ) Change subject: pcu_sock: send SI1, SI3 and SI3 via PCUIF ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/22541 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib7aeb41e634ad6fcab3766a4667b0267c749436a Gerrit-Change-Number: 22541 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 30 Jan 2021 14:09:43 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 30 14:10:29 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 30 Jan 2021 14:10:29 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BTS_Tests: test forwarding of SI1, SI3 and SI13 via PCUIF In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22540 ) Change subject: BTS_Tests: test forwarding of SI1, SI3 and SI13 via PCUIF ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22540 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I5138ab183793e7eee4dc494318d984e9f1f56932 Gerrit-Change-Number: 22540 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 30 Jan 2021 14:10:29 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 30 14:11:57 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 30 Jan 2021 14:11:57 +0000 Subject: Change in osmo-pcu[master]: gprs_bssgp_rim: add serving BSS NACC application In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22368 ) Change subject: gprs_bssgp_rim: add serving BSS NACC application ...................................................................... Patch Set 6: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22368 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Id72118120c14984d2fb1b918b41fac4868150d41 Gerrit-Change-Number: 22368 Gerrit-PatchSet: 6 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 30 Jan 2021 14:11:57 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 30 14:13:30 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 30 Jan 2021 14:13:30 +0000 Subject: Change in osmo-pcu[master]: contrib/osmo-pcu.spec.in: add missing libosmoctrl dependency In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22546 ) Change subject: contrib/osmo-pcu.spec.in: add missing libosmoctrl dependency ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-pcu/+/22546/1/contrib/osmo-pcu.spec.in File contrib/osmo-pcu.spec.in: https://gerrit.osmocom.org/c/osmo-pcu/+/22546/1/contrib/osmo-pcu.spec.in at 35 PS1, Line 35: Bui configure.ac requires 1.4.0, os best to use the same version here. Also (unrelated to this patch) theo other versions all also require 1.4.0 now -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22546 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I37c478f3f430f72620af17f1c3329f6ee8515402 Gerrit-Change-Number: 22546 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 30 Jan 2021 14:13:30 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 30 14:14:24 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 30 Jan 2021 14:14:24 +0000 Subject: Change in osmo-pcu[master]: tests/rlcmac: add more test vectors for Packet Resource Request In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22523 ) Change subject: tests/rlcmac: add more test vectors for Packet Resource Request ...................................................................... tests/rlcmac: add more test vectors for Packet Resource Request All vectors should be valid, since they were generated by an MS. As can be seen, osmo-pcu fails to decode one of the vectors. Change-Id: I37a2ddd394eeffa1cae0f3e419eeee0200a57fcf OS#4955 Change-Id: Ib5677048f5668185ffe752f97c97d5612eee4d72 --- M tests/rlcmac/RLCMACTest.cpp M tests/rlcmac/RLCMACTest.err M tests/rlcmac/RLCMACTest.ok 3 files changed, 47 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/tests/rlcmac/RLCMACTest.cpp b/tests/rlcmac/RLCMACTest.cpp index c6ad192..598d11a 100644 --- a/tests/rlcmac/RLCMACTest.cpp +++ b/tests/rlcmac/RLCMACTest.cpp @@ -159,6 +159,12 @@ "401673c87f24af2632b25964200600000091000b780080", // Packet Resource Request (from keith) "40200ffc0021ec010b2b2b2b2b2b2b2b2b2b2b2b2b2b2b", // EPDAN "400a9020000000000000003010012a0800132b2b2b2b2b", // Packet Downlink Ack/Nack ? + + /* Packet Resource Request (see OS#4955, mistakes in 3GPP TS 44.060) */ + "4117ea1b903eaeb2686564b2330820078000102b2b2b2b", + "40167e49f7f8ef2632b2596620060000806d00541c0080", + "4017787174d92eba686564b2ccc30800a000040b2b2b2b", + "4017e5b2cd5a2eca68655e44aec84880139300412b2b2b", }; int testDataSize = sizeof(testData)/sizeof(testData[0]); diff --git a/tests/rlcmac/RLCMACTest.err b/tests/rlcmac/RLCMACTest.err index 6007289..fc2889f 100644 --- a/tests/rlcmac/RLCMACTest.err +++ b/tests/rlcmac/RLCMACTest.err @@ -33,6 +33,15 @@ DCSN1 INFO csnStreamEncoder (type: EGPRS Pkt DL ACK/NACK (8)): PayloadType = 1 | spare = 0 | R = 0 | MESSAGE_TYPE = 8 | DOWNLINK_TFI = 0 | MS_OUT_OF_MEMORY = 0 | Exist_EGPRS_ChannelQualityReport = 1 | : EGPRS_ChannelQualityReport | : EGPRS_BEP_LinkQualityMeasurements | Exist_MEAN_CV_BEP_GMSK = 1 | MEAN_BEP_GMSK = 31 | CV_BEP_GMSK = 7 | Exist_MEAN_CV_BEP_8PSK = 0 | : End EGPRS_BEP_LinkQualityMeasurements | C_VALUE = 0 | : EGPRS_TimeslotLinkQualityMeasurements | Exist_BEP_MEASUREMENTS = 0 | Exist_INTERFERENCE_MEASUREMENTS = 0 | : End EGPRS_TimeslotLinkQualityMeasurements | : End EGPRS_ChannelQualityReport | Exist_ChannelRequestDescription = 0 | Exist_PFI = 0 | Exist_ExtensionBits = 0 | : EGPRS_AckNack | Desc = 1 | : Desc | FINAL_ACK_INDICATION = 0 | BEGINNING_OF_WINDOW = 1 | END_OF_WINDOW = 1 | STARTING_SEQUENCE_NUMBER = 2 | Exist_CRBB = 0 | Desc length = 15 | : End Desc | : End EGPRS_AckNack | Padding = 11|43|43|43|43|43|43|43|43|43|43|43|43|43|43| DCSN1 INFO csnStreamDecoder (type: Pkt DL ACK/NACK (2)): PayloadType = 1 | spare = 0 | R = 0 | MESSAGE_TYPE = 2 | DOWNLINK_TFI = 20 | : Ack_Nack_Description | FINAL_ACK_INDICATION = 1 | STARTING_SEQUENCE_NUMBER = 1 | RECEIVED_BLOCK_BITMAP[0] = 0 | RECEIVED_BLOCK_BITMAP[1] = 0 | RECEIVED_BLOCK_BITMAP[2] = 0 | RECEIVED_BLOCK_BITMAP[3] = 0 | RECEIVED_BLOCK_BITMAP[4] = 0 | RECEIVED_BLOCK_BITMAP[5] = 0 | RECEIVED_BLOCK_BITMAP[6] = 0 | RECEIVED_BLOCK_BITMAP[7] = 1 | : End Ack_Nack_Description | Exist_Channel_Request_Description = 1 | : Channel_Request_Description | PEAK_THROUGHPUT_CLASS = 0 | RADIO_PRIORITY = 0 | RLC_MODE = 0 | LLC_PDU_TYPE = 1 | RLC_OCTET_COUNT = 18 | : End Channel_Request_Description | : Channel_Quality_Report | C_VALUE = 40 | RXQUAL = 1 | SIGN_VAR = 0 | Slot[0].Exist = 0 | Slot[1].Exist = 0 | Slot[2].Exist = 0 | Slot[3].Exist = 0 | Slot[4].Exist = 0 | Slot[5].Exist = 0 | Slot[6].Exist = 0 | Slot[7].Exist = 0 | : End Channel_Quality_Report | Exist_AdditionsR99 = 1 | : AdditionsR99 | Exist_PFI = 0 | : End AdditionsR99 | Padding = 3|43|43|43|43|43| DCSN1 INFO csnStreamEncoder (type: Pkt DL ACK/NACK (2)): PayloadType = 1 | spare = 0 | R = 0 | MESSAGE_TYPE = 2 | DOWNLINK_TFI = 20 | : Ack_Nack_Description | FINAL_ACK_INDICATION = 1 | STARTING_SEQUENCE_NUMBER = 1 | RECEIVED_BLOCK_BITMAP[0] = 0 | RECEIVED_BLOCK_BITMAP[1] = 0 | RECEIVED_BLOCK_BITMAP[2] = 0 | RECEIVED_BLOCK_BITMAP[3] = 0 | RECEIVED_BLOCK_BITMAP[4] = 0 | RECEIVED_BLOCK_BITMAP[5] = 0 | RECEIVED_BLOCK_BITMAP[6] = 0 | RECEIVED_BLOCK_BITMAP[7] = 1 | : End Ack_Nack_Description | Exist_Channel_Request_Description = 1 | : Channel_Request_Description | PEAK_THROUGHPUT_CLASS = 0 | RADIO_PRIORITY = 0 | RLC_MODE = 0 | LLC_PDU_TYPE = 1 | RLC_OCTET_COUNT = 18 | : End Channel_Request_Description | : Channel_Quality_Report | C_VALUE = 40 | RXQUAL = 1 | SIGN_VAR = 0 | Slot[0].Exist = 0 | Slot[1].Exist = 0 | Slot[2].Exist = 0 | Slot[3].Exist = 0 | Slot[4].Exist = 0 | Slot[5].Exist = 0 | Slot[6].Exist = 0 | Slot[7].Exist = 0 | : End Channel_Quality_Report | Exist_AdditionsR99 = 1 | : AdditionsR99 | Exist_PFI = 0 | : End AdditionsR99 | Padding = 3|43|43|43|43|43| +DCSN1 INFO csnStreamDecoder (type: Pkt Resource Req (5)): PayloadType = 1 | spare = 0 | R = 1 | MESSAGE_TYPE = 5 | Exist_ACCESS_TYPE = 1 | ACCESS_TYPE = 3 | : ID | Choice PacketResourceRequestID = 1 | u.TLLI = 0xa86e40fa | : End ID | Exist_MS_Radio_Access_capability2 = 1 | : MS_Radio_Access_capability2 | MS_RA_capability_value { | Choice MS_RA_capability_value_Choice = 7 | u.Content length = 44 | offset = 1 | RF_Power_Capability = 4 | Exist_A5_bits = 1 | A5_bits = 80 | ES_IND = 1 | PS = 1 | VGCS = 0 | VBS = 0 | Exist_Multislot_capability = 1 | : Multislot_capability | Exist_HSCSD_multislot_class = 0 | Exist_GPRS_multislot_class = 1 | GPRS_multislot_class = 12 | GPRS_Extended_Dynamic_Allocation_Capability = 1 | Exist_SM = 0 | Exist_ECSD_multislot_class = 0 | Exist_EGPRS_multislot_class = 1 | EGPRS_multislot_class = 12 | EGPRS_Extended_Dynamic_Allocation_Capability = 1 | Exist_DTM_GPRS_multislot_class = 0 | : End Multislot_capability | Exist_Eight_PSK_Power_Capability = 0 | COMPACT_Interference_Measurement_Capability = 0 | Revision_Level_Indicator = 1 | UMTS_FDD_Radio_Access_Technology_Capability = 1 | UMTS_384_TDD_Radio_Access_Technology_Capability = 0 | CDMA2000_Radio_Access_Technology_Capability = 0 | UMTS_128_TDD_Radio_Access_Technology_Capability = 1 | GERAN_Feature_Package_1 = 1 | Exist_Extended_DTM_multislot_class = 0 | Modulation_based_multislot_class_support = 0 | GMSK_MultislotPowerProfile = NULL | EightPSK_MultislotProfile = NULL | MultipleTBF_Capability = NULL | DownlinkAdvancedReceiverPerformance = NULL | ExtendedRLC_MAC_ControlMessageSegmentionsCapability = NULL | DTM_EnhancementsCapability = NULL | PS_HandoverCapability = NULL | DTM_Handover_Capability = NULL | FlexibleTimeslotAssignment = NULL | GAN_PS_HandoverCapability = NULL | RLC_Non_persistentMode = NULL | ReducedLatencyCapability = NULL | UplinkEGPRS2 = NULL | DownlinkEGPRS2 = NULL | EUTRA_FDD_Support = NULL | EUTRA_TDD_Support = NULL | GERAN_To_EUTRAN_supportInGERAN_PTM = NULL | PriorityBasedReselectionSupport = NULL | MS_RA_capability_value } | : End MS_Radio_Access_capability2 | : Channel_Request_Description | PEAK_THROUGHPUT_CLASS = 4 | RADIO_PRIORITY = 0 | RLC_MODE = 0 | LLC_PDU_TYPE = 1 | RLC_OCTET_COUNT = 60 | : End Channel_Request_Description | Exist_CHANGE_MARK = 0 | C_VALUE = 0 | Exist_SIGN_VAR = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | Exist_AdditionsR99 = 1 | : AdditionsR99 | Exist_EGPRS_BEP_LinkQualityMeasurements = 0 | Exist_EGPRS_TimeslotLinkQualityMeasurements = 0 | Exist_PFI = 0 | MS_RAC_AdditionalInformationAvailable = 0 | RetransmissionOfPRR = 0 | Exist_AdditionsR5 = 0 | : End AdditionsR99 | Padding = 43|43|43|43| +DCSN1 INFO csnStreamEncoder (type: Pkt Resource Req (5)): PayloadType = 1 | spare = 0 | R = 1 | MESSAGE_TYPE = 5 | Exist_ACCESS_TYPE = 1 | ACCESS_TYPE = 3 | : ID | u.TLLI = 1 | u.TLLI = 2825797882 | : End ID | Exist_MS_Radio_Access_capability2 = 1 | : MS_Radio_Access_capability2 | MS_RA_capability_value { | u.Content = 7 | RF_Power_Capability = 4 | Exist_A5_bits = 1 | A5_bits = 80 | ES_IND = 1 | PS = 1 | VGCS = 0 | VBS = 0 | Exist_Multislot_capability = 1 | : Multislot_capability | Exist_HSCSD_multislot_class = 0 | Exist_GPRS_multislot_class = 1 | GPRS_multislot_class = 12 | GPRS_Extended_Dynamic_Allocation_Capability = 1 | Exist_SM = 0 | Exist_ECSD_multislot_class = 0 | Exist_EGPRS_multislot_class = 1 | EGPRS_multislot_class = 12 | EGPRS_Extended_Dynamic_Allocation_Capability = 1 | Exist_DTM_GPRS_multislot_class = 0 | : End Multislot_capability | Exist_Eight_PSK_Power_Capability = 0 | COMPACT_Interference_Measurement_Capability = 0 | Revision_Level_Indicator = 1 | UMTS_FDD_Radio_Access_Technology_Capability = 1 | UMTS_384_TDD_Radio_Access_Technology_Capability = 0 | CDMA2000_Radio_Access_Technology_Capability = 0 | UMTS_128_TDD_Radio_Access_Technology_Capability = 1 | GERAN_Feature_Package_1 = 1 | Exist_Extended_DTM_multislot_class = 0 | Modulation_based_multislot_class_support = 0 | Exist_HighMultislotCapability = 0 | Exist_GERAN_lu_ModeCapability = 0 | GMSK_MultislotPowerProfile = 0 | EightPSK_MultislotProfile = 0 | MultipleTBF_Capability = 0 | DownlinkAdvancedReceiverPerformance = 0 | ExtendedRLC_MAC_ControlMessageSegmentionsCapability = 0 | DTM_EnhancementsCapability = 0 | Exist_DTM_GPRS_HighMultislotClass = 0 | PS_HandoverCapability = 0 | DTM_Handover_Capability = 0 | Exist_DownlinkDualCarrierCapability_r7 = 0 | FlexibleTimeslotAssignment = 0 | GAN_PS_HandoverCapability = 0 | RLC_Non_persistentMode = 0 | ReducedLatencyCapability = 0 | UplinkEGPRS2 = 0 | DownlinkEGPRS2 = 0 | EUTRA_FDD_Support = 0 | EUTRA_TDD_Support = 0 | GERAN_To_EUTRAN_supportInGERAN_PTM = 0 | PriorityBasedReselectionSupport = 0 | u.Content length = 72 | MS_RA_capability_value } | : End MS_Radio_Access_capability2 | : Channel_Request_Description | PEAK_THROUGHPUT_CLASS = 4 | RADIO_PRIORITY = 0 | RLC_MODE = 0 | LLC_PDU_TYPE = 1 | RLC_OCTET_COUNT = 60 | : End Channel_Request_Description | Exist_CHANGE_MARK = 0 | C_VALUE = 0 | Exist_SIGN_VAR = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | Exist_AdditionsR99 = 1 | : AdditionsR99 | Exist_EGPRS_BEP_LinkQualityMeasurements = 0 | Exist_EGPRS_TimeslotLinkQualityMeasurements = 0 | Exist_PFI = 0 | MS_RAC_AdditionalInformationAvailable = 0 | RetransmissionOfPRR = 0 | Exist_AdditionsR5 = 0 | : End AdditionsR99 | Padding = 1| +DCSN1 INFO csnStreamDecoder (type: Pkt Resource Req (5)): PayloadType = 1 | spare = 0 | R = 0 | MESSAGE_TYPE = 5 | Exist_ACCESS_TYPE = 1 | ACCESS_TYPE = 0 | : ID | Choice PacketResourceRequestID = 1 | u.TLLI = 0xf927dfe3 | : End ID | Exist_MS_Radio_Access_capability2 = 1 | : MS_Radio_Access_capability2 | MS_RA_capability_value { | Choice MS_RA_capability_value_Choice = 7 | u.Content length = 73 | offset = 1 | RF_Power_Capability = 4 | Exist_A5_bits = 0 | ES_IND = 1 | PS = 1 | VGCS = 0 | VBS = 0 | Exist_Multislot_capability = 1 | : Multislot_capability | Exist_HSCSD_multislot_class = 0 | Exist_GPRS_multislot_class = 1 | GPRS_multislot_class = 12 | GPRS_Extended_Dynamic_Allocation_Capability = 1 | Exist_SM = 0 | Exist_ECSD_multislot_class = 0 | Exist_EGPRS_multislot_class = 1 | EGPRS_multislot_class = 12 | EGPRS_Extended_Dynamic_Allocation_Capability = 1 | Exist_DTM_GPRS_multislot_class = 0 | : End Multislot_capability | Exist_Eight_PSK_Power_Capability = 1 | Eight_PSK_Power_Capability = 2 | COMPACT_Interference_Measurement_Capability = 0 | Revision_Level_Indicator = 1 | UMTS_FDD_Radio_Access_Technology_Capability = 1 | UMTS_384_TDD_Radio_Access_Technology_Capability = 0 | CDMA2000_Radio_Access_Technology_Capability = 0 | UMTS_128_TDD_Radio_Access_Technology_Capability = 0 | GERAN_Feature_Package_1 = 1 | Exist_Extended_DTM_multislot_class = 0 | Modulation_based_multislot_class_support = 0 | Exist_HighMultislotCapability = 0 | Exist_GERAN_lu_ModeCapability = 0 | GMSK_MultislotPowerProfile = 0 | EightPSK_MultislotProfile = 0 | MultipleTBF_Capability = 0 | DownlinkAdvancedReceiverPerformance = 1 | ExtendedRLC_MAC_ControlMessageSegmentionsCapability = 1 | DTM_EnhancementsCapability = 0 | Exist_DTM_GPRS_HighMultislotClass = 0 | PS_HandoverCapability = 0 | DTM_Handover_Capability = 0 | Exist_DownlinkDualCarrierCapability_r7 = 0 | FlexibleTimeslotAssignment = 0 | GAN_PS_HandoverCapability = 0 | RLC_Non_persistentMode = 0 | ReducedLatencyCapability = 0 | UplinkEGPRS2 = 0 | DownlinkEGPRS2 = 0 | EUTRA_FDD_Support = 0 | EUTRA_TDD_Support = 0 | GERAN_To_EUTRAN_supportInGERAN_PTM = 0 | PriorityBasedReselectionSupport = 1 | skipped = 6 | MS_RA_capability_value } | : End MS_Radio_Access_capability2 | : Channel_Request_Description | PEAK_THROUGHPUT_CLASS = 6 | RADIO_PRIORITY = 3 | RLC_MODE = 0 | LLC_PDU_TYPE = 1 | RLC_OCTET_COUNT = 84 | : End Channel_Request_Description | Exist_CHANGE_MARK = 0 | C_VALUE = 14 | Exist_SIGN_VAR = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | Exist_AdditionsR99 = 1 | : AdditionsR99 | Exist_EGPRS_BEP_LinkQualityMeasurements = 0 | Exist_EGPRS_TimeslotLinkQualityMeasurements = 0 | Exist_PFI = 0 | MS_RAC_AdditionalInformationAvailable = 0 | RetransmissionOfPRR = 0 | Exist_AdditionsR5 = 0 | : End AdditionsR99 | Padding = 0| +DCSN1 INFO csnStreamEncoder (type: Pkt Resource Req (5)): PayloadType = 1 | spare = 0 | R = 0 | MESSAGE_TYPE = 5 | Exist_ACCESS_TYPE = 1 | ACCESS_TYPE = 0 | : ID | u.TLLI = 1 | u.TLLI = 4180140003 | : End ID | Exist_MS_Radio_Access_capability2 = 1 | : MS_Radio_Access_capability2 | MS_RA_capability_value { | u.Content = 7 | RF_Power_Capability = 4 | Exist_A5_bits = 0 | ES_IND = 1 | PS = 1 | VGCS = 0 | VBS = 0 | Exist_Multislot_capability = 1 | : Multislot_capability | Exist_HSCSD_multislot_class = 0 | Exist_GPRS_multislot_class = 1 | GPRS_multislot_class = 12 | GPRS_Extended_Dynamic_Allocation_Capability = 1 | Exist_SM = 0 | Exist_ECSD_multislot_class = 0 | Exist_EGPRS_multislot_class = 1 | EGPRS_multislot_class = 12 | EGPRS_Extended_Dynamic_Allocation_Capability = 1 | Exist_DTM_GPRS_multislot_class = 0 | : End Multislot_capability | Exist_Eight_PSK_Power_Capability = 1 | Eight_PSK_Power_Capability = 2 | COMPACT_Interference_Measurement_Capability = 0 | Revision_Level_Indicator = 1 | UMTS_FDD_Radio_Access_Technology_Capability = 1 | UMTS_384_TDD_Radio_Access_Technology_Capability = 0 | CDMA2000_Radio_Access_Technology_Capability = 0 | UMTS_128_TDD_Radio_Access_Technology_Capability = 0 | GERAN_Feature_Package_1 = 1 | Exist_Extended_DTM_multislot_class = 0 | Modulation_based_multislot_class_support = 0 | Exist_HighMultislotCapability = 0 | Exist_GERAN_lu_ModeCapability = 0 | GMSK_MultislotPowerProfile = 0 | EightPSK_MultislotProfile = 0 | MultipleTBF_Capability = 0 | DownlinkAdvancedReceiverPerformance = 1 | ExtendedRLC_MAC_ControlMessageSegmentionsCapability = 1 | DTM_EnhancementsCapability = 0 | Exist_DTM_GPRS_HighMultislotClass = 0 | PS_HandoverCapability = 0 | DTM_Handover_Capability = 0 | Exist_DownlinkDualCarrierCapability_r7 = 0 | FlexibleTimeslotAssignment = 0 | GAN_PS_HandoverCapability = 0 | RLC_Non_persistentMode = 0 | ReducedLatencyCapability = 0 | UplinkEGPRS2 = 0 | DownlinkEGPRS2 = 0 | EUTRA_FDD_Support = 0 | EUTRA_TDD_Support = 0 | GERAN_To_EUTRAN_supportInGERAN_PTM = 0 | PriorityBasedReselectionSupport = 1 | u.Content length = 67 | MS_RA_capability_value } | : End MS_Radio_Access_capability2 | : Channel_Request_Description | PEAK_THROUGHPUT_CLASS = 6 | RADIO_PRIORITY = 3 | RLC_MODE = 0 | LLC_PDU_TYPE = 1 | RLC_OCTET_COUNT = 84 | : End Channel_Request_Description | Exist_CHANGE_MARK = 0 | C_VALUE = 14 | Exist_SIGN_VAR = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | Exist_AdditionsR99 = 1 | : AdditionsR99 | Exist_EGPRS_BEP_LinkQualityMeasurements = 0 | Exist_EGPRS_TimeslotLinkQualityMeasurements = 0 | Exist_PFI = 0 | MS_RAC_AdditionalInformationAvailable = 0 | RetransmissionOfPRR = 0 | Exist_AdditionsR5 = 0 | : End AdditionsR99 | Padding = 43| +DCSN1 INFO csnStreamDecoder (type: Pkt Resource Req (5)): PayloadType = 1 | spare = 0 | R = 0 | MESSAGE_TYPE = 5 | Exist_ACCESS_TYPE = 1 | ACCESS_TYPE = 2 | : ID | Choice PacketResourceRequestID = 1 | u.TLLI = 0xe1c5d364 | : End ID | Exist_MS_Radio_Access_capability2 = 1 | : MS_Radio_Access_capability2 | MS_RA_capability_value { | Choice MS_RA_capability_value_Choice = 7 | u.Content length = 46 | offset = 1 | RF_Power_Capability = 4 | Exist_A5_bits = 1 | A5_bits = 80 | ES_IND = 1 | PS = 1 | VGCS = 0 | VBS = 0 | Exist_Multislot_capability = 1 | : Multislot_capability | Exist_HSCSD_multislot_class = 0 | Exist_GPRS_multislot_class = 1 | GPRS_multislot_class = 12 | GPRS_Extended_Dynamic_Allocation_Capability = 1 | Exist_SM = 0 | Exist_ECSD_multislot_class = 0 | Exist_EGPRS_multislot_class = 1 | EGPRS_multislot_class = 12 | EGPRS_Extended_Dynamic_Allocation_Capability = 1 | Exist_DTM_GPRS_multislot_class = 0 | : End Multislot_capability | Exist_Eight_PSK_Power_Capability = 1 | Eight_PSK_Power_Capability = 2 | COMPACT_Interference_Measurement_Capability = 0 | Revision_Level_Indicator = 1 | UMTS_FDD_Radio_Access_Technology_Capability = 1 | UMTS_384_TDD_Radio_Access_Technology_Capability = 0 | CDMA2000_Radio_Access_Technology_Capability = 0 | UMTS_128_TDD_Radio_Access_Technology_Capability = 1 | GERAN_Feature_Package_1 = 1 | Exist_Extended_DTM_multislot_class = 0 | Modulation_based_multislot_class_support = 0 | GMSK_MultislotPowerProfile = NULL | EightPSK_MultislotProfile = NULL | MultipleTBF_Capability = NULL | DownlinkAdvancedReceiverPerformance = NULL | ExtendedRLC_MAC_ControlMessageSegmentionsCapability = NULL | DTM_EnhancementsCapability = NULL | PS_HandoverCapability = NULL | DTM_Handover_Capability = NULL | FlexibleTimeslotAssignment = NULL | GAN_PS_HandoverCapability = NULL | RLC_Non_persistentMode = NULL | ReducedLatencyCapability = NULL | UplinkEGPRS2 = NULL | DownlinkEGPRS2 = NULL | EUTRA_FDD_Support = NULL | EUTRA_TDD_Support = NULL | GERAN_To_EUTRAN_supportInGERAN_PTM = NULL | PriorityBasedReselectionSupport = NULL | MS_RA_capability_value } | : End MS_Radio_Access_capability2 | : Channel_Request_Description | PEAK_THROUGHPUT_CLASS = 6 | RADIO_PRIORITY = 0 | RLC_MODE = 0 | LLC_PDU_TYPE = 1 | RLC_OCTET_COUNT = 20 | : End Channel_Request_Description | Exist_CHANGE_MARK = 0 | C_VALUE = 0 | Exist_SIGN_VAR = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | Exist_AdditionsR99 = 1 | : AdditionsR99 | Exist_EGPRS_BEP_LinkQualityMeasurements = 0 | Exist_EGPRS_TimeslotLinkQualityMeasurements = 0 | Exist_PFI = 0 | MS_RAC_AdditionalInformationAvailable = 0 | RetransmissionOfPRR = 0 | Exist_AdditionsR5 = 0 | : End AdditionsR99 | Padding = 11|43|43|43| +DCSN1 INFO csnStreamEncoder (type: Pkt Resource Req (5)): PayloadType = 1 | spare = 0 | R = 0 | MESSAGE_TYPE = 5 | Exist_ACCESS_TYPE = 1 | ACCESS_TYPE = 2 | : ID | u.TLLI = 1 | u.TLLI = 3787838308 | : End ID | Exist_MS_Radio_Access_capability2 = 1 | : MS_Radio_Access_capability2 | MS_RA_capability_value { | u.Content = 7 | RF_Power_Capability = 4 | Exist_A5_bits = 1 | A5_bits = 80 | ES_IND = 1 | PS = 1 | VGCS = 0 | VBS = 0 | Exist_Multislot_capability = 1 | : Multislot_capability | Exist_HSCSD_multislot_class = 0 | Exist_GPRS_multislot_class = 1 | GPRS_multislot_class = 12 | GPRS_Extended_Dynamic_Allocation_Capability = 1 | Exist_SM = 0 | Exist_ECSD_multislot_class = 0 | Exist_EGPRS_multislot_class = 1 | EGPRS_multislot_class = 12 | EGPRS_Extended_Dynamic_Allocation_Capability = 1 | Exist_DTM_GPRS_multislot_class = 0 | : End Multislot_capability | Exist_Eight_PSK_Power_Capability = 1 | Eight_PSK_Power_Capability = 2 | COMPACT_Interference_Measurement_Capability = 0 | Revision_Level_Indicator = 1 | UMTS_FDD_Radio_Access_Technology_Capability = 1 | UMTS_384_TDD_Radio_Access_Technology_Capability = 0 | CDMA2000_Radio_Access_Technology_Capability = 0 | UMTS_128_TDD_Radio_Access_Technology_Capability = 1 | GERAN_Feature_Package_1 = 1 | Exist_Extended_DTM_multislot_class = 0 | Modulation_based_multislot_class_support = 0 | Exist_HighMultislotCapability = 0 | Exist_GERAN_lu_ModeCapability = 0 | GMSK_MultislotPowerProfile = 0 | EightPSK_MultislotProfile = 0 | MultipleTBF_Capability = 0 | DownlinkAdvancedReceiverPerformance = 0 | ExtendedRLC_MAC_ControlMessageSegmentionsCapability = 0 | DTM_EnhancementsCapability = 0 | Exist_DTM_GPRS_HighMultislotClass = 0 | PS_HandoverCapability = 0 | DTM_Handover_Capability = 0 | Exist_DownlinkDualCarrierCapability_r7 = 0 | FlexibleTimeslotAssignment = 0 | GAN_PS_HandoverCapability = 0 | RLC_Non_persistentMode = 0 | ReducedLatencyCapability = 0 | UplinkEGPRS2 = 0 | DownlinkEGPRS2 = 0 | EUTRA_FDD_Support = 0 | EUTRA_TDD_Support = 0 | GERAN_To_EUTRAN_supportInGERAN_PTM = 0 | PriorityBasedReselectionSupport = 0 | u.Content length = 74 | MS_RA_capability_value } | : End MS_Radio_Access_capability2 | : Channel_Request_Description | PEAK_THROUGHPUT_CLASS = 6 | RADIO_PRIORITY = 0 | RLC_MODE = 0 | LLC_PDU_TYPE = 1 | RLC_OCTET_COUNT = 20 | : End Channel_Request_Description | Exist_CHANGE_MARK = 0 | C_VALUE = 0 | Exist_SIGN_VAR = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | Exist_AdditionsR99 = 1 | : AdditionsR99 | Exist_EGPRS_BEP_LinkQualityMeasurements = 0 | Exist_EGPRS_TimeslotLinkQualityMeasurements = 0 | Exist_PFI = 0 | MS_RAC_AdditionalInformationAvailable = 0 | RetransmissionOfPRR = 0 | Exist_AdditionsR5 = 0 | : End AdditionsR99 | Padding = +DCSN1 INFO csnStreamDecoder (type: Pkt Resource Req (5)): PayloadType = 1 | spare = 0 | R = 0 | MESSAGE_TYPE = 5 | Exist_ACCESS_TYPE = 1 | ACCESS_TYPE = 3 | : ID | Choice PacketResourceRequestID = 1 | u.TLLI = 0x96cb3568 | : End ID | Exist_MS_Radio_Access_capability2 = 1 | : MS_Radio_Access_capability2 | MS_RA_capability_value { | Choice MS_RA_capability_value_Choice = 7 | u.Content length = 50 | offset = 1 | RF_Power_Capability = 4 | Exist_A5_bits = 1 | A5_bits = 80 | ES_IND = 1 | PS = 1 | VGCS = 0 | VBS = 0 | Exist_Multislot_capability = 1 | : Multislot_capability | Exist_HSCSD_multislot_class = 0 | Exist_GPRS_multislot_class = 1 | GPRS_multislot_class = 11 | GPRS_Extended_Dynamic_Allocation_Capability = 1 | Exist_SM = 1 | SMS_VALUE = 2 | SM_VALUE = 2 | Exist_ECSD_multislot_class = 0 | Exist_EGPRS_multislot_class = 1 | EGPRS_multislot_class = 11 | EGPRS_Extended_Dynamic_Allocation_Capability = 1 | Exist_DTM_GPRS_multislot_class = 0 | : End Multislot_capability | Exist_Eight_PSK_Power_Capability = 1 | Eight_PSK_Power_Capability = 2 | COMPACT_Interference_Measurement_Capability = 0 | Revision_Level_Indicator = 1 | UMTS_FDD_Radio_Access_Technology_Capability = 0 | UMTS_384_TDD_Radio_Access_Technology_Capability = 0 | CDMA2000_Radio_Access_Technology_Capability = 0 | UMTS_128_TDD_Radio_Access_Technology_Capability = NULL | GERAN_Feature_Package_1 = NULL | Modulation_based_multislot_class_support = NULL | GMSK_MultislotPowerProfile = NULL | EightPSK_MultislotProfile = NULL | MultipleTBF_Capability = NULL | DownlinkAdvancedReceiverPerformance = NULL | ExtendedRLC_MAC_ControlMessageSegmentionsCapability = NULL | DTM_EnhancementsCapability = NULL | PS_HandoverCapability = NULL | DTM_Handover_Capability = NULL | FlexibleTimeslotAssignment = NULL | GAN_PS_HandoverCapability = NULL | RLC_Non_persistentMode = NULL | ReducedLatencyCapability = NULL | UplinkEGPRS2 = NULL | DownlinkEGPRS2 = NULL | EUTRA_FDD_Support = NULL | EUTRA_TDD_Support = NULL | GERAN_To_EUTRAN_supportInGERAN_PTM = NULL | PriorityBasedReselectionSupport = NULL | MS_RA_capability_value } | : End MS_Radio_Access_capability2 | : Channel_Request_Description | PEAK_THROUGHPUT_CLASS = 9 | RADIO_PRIORITY = 0 | RLC_MODE = 0 | LLC_PDU_TYPE = 1 | RLC_OCTET_COUNT = 39 | : End Channel_Request_Description | Exist_CHANGE_MARK = 0 | C_VALUE = 19 | Exist_SIGN_VAR = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | I_LEVEL_TN | Exist = 0 | Exist_AdditionsR99 = 1 | : AdditionsR99 | Exist_EGPRS_BEP_LinkQualityMeasurements = 0 | Exist_EGPRS_TimeslotLinkQualityMeasurements = 0 | Exist_PFI = 0 | MS_RAC_AdditionalInformationAvailable = 0 | RetransmissionOfPRR = 0 | Exist_AdditionsR5 = 1 | : AdditionsR5 | Exist_Iu_Mode_ChRequestDesk = 0 | Exist_HFN_LSB = 0 | Exist_AdditionsR6 = 1 | : AdditionsR6 | Exist_Ext_Channel_Request_desc = 0 | Exist_AdditionsR7 = 1 | : AdditionsR7 | EARLY_TBF_ESTABLISHMENT = 0 | Exist_EGPRS_BEP_LinkQualityMeasurements_type2 = 1 | : EGPRS_BEP_LinkQualityMeasurements_type2 | Exist_GMSK_MEAN_BEP = 1 | GMSK_MEAN_BEP = 5 | GMSK_CV_BEP = 3 | Exist_8PSK_MEAN_BEP = 0 | p8PSK_CV_BEP = 2 | Exist_QPSK_MEAN_BEP = 1 | DCSN1 ERROR csnStreamDecoder: error NEED_MORE BITS TO UNPACK (-5) at QPSK_MEAN_BEP (idx 181): End EGPRS_BEP_LinkQualityMeasurements_type2 | : End AdditionsR7 | : End AdditionsR6 | : End AdditionsR5 | : End AdditionsR99 | +DCSN1 INFO csnStreamEncoder (type: Pkt Resource Req (5)): PayloadType = 1 | spare = 0 | R = 0 | MESSAGE_TYPE = 5 | Exist_ACCESS_TYPE = 1 | ACCESS_TYPE = 3 | : ID | u.TLLI = 1 | u.TLLI = 2529899880 | : End ID | Exist_MS_Radio_Access_capability2 = 1 | : MS_Radio_Access_capability2 | MS_RA_capability_value { | u.Content = 7 | RF_Power_Capability = 4 | Exist_A5_bits = 1 | A5_bits = 80 | ES_IND = 1 | PS = 1 | VGCS = 0 | VBS = 0 | Exist_Multislot_capability = 1 | : Multislot_capability | Exist_HSCSD_multislot_class = 0 | Exist_GPRS_multislot_class = 1 | GPRS_multislot_class = 11 | GPRS_Extended_Dynamic_Allocation_Capability = 1 | Exist_SM = 1 | SMS_VALUE = 2 | SM_VALUE = 2 | Exist_ECSD_multislot_class = 0 | Exist_EGPRS_multislot_class = 1 | EGPRS_multislot_class = 11 | EGPRS_Extended_Dynamic_Allocation_Capability = 1 | Exist_DTM_GPRS_multislot_class = 0 | : End Multislot_capability | Exist_Eight_PSK_Power_Capability = 1 | Eight_PSK_Power_Capability = 2 | COMPACT_Interference_Measurement_Capability = 0 | Revision_Level_Indicator = 1 | UMTS_FDD_Radio_Access_Technology_Capability = 0 | UMTS_384_TDD_Radio_Access_Technology_Capability = 0 | CDMA2000_Radio_Access_Technology_Capability = 0 | UMTS_128_TDD_Radio_Access_Technology_Capability = 0 | GERAN_Feature_Package_1 = 0 | Exist_Extended_DTM_multislot_class = 0 | Modulation_based_multislot_class_support = 0 | Exist_HighMultislotCapability = 0 | Exist_GERAN_lu_ModeCapability = 0 | GMSK_MultislotPowerProfile = 0 | EightPSK_MultislotProfile = 0 | MultipleTBF_Capability = 0 | DownlinkAdvancedReceiverPerformance = 0 | ExtendedRLC_MAC_ControlMessageSegmentionsCapability = 0 | DTM_EnhancementsCapability = 0 | Exist_DTM_GPRS_HighMultislotClass = 0 | PS_HandoverCapability = 0 | DTM_Handover_Capability = 0 | Exist_DownlinkDualCarrierCapability_r7 = 0 | FlexibleTimeslotAssignment = 0 | GAN_PS_HandoverCapability = 0 | RLC_Non_persistentMode = 0 | ReducedLatencyCapability = 0 | UplinkEGPRS2 = 0 | DownlinkEGPRS2 = 0 | EUTRA_FDD_Support = 0 | EUTRA_TDD_Support = 0 | GERAN_To_EUTRAN_supportInGERAN_PTM = 0 | PriorityBasedReselectionSupport = 0 | u.Content length = 82 | MS_RA_capability_value } | : End MS_Radio_Access_capability2 | : Channel_Request_Description | PEAK_THROUGHPUT_CLASS = 9 | RADIO_PRIORITY = 0 | RLC_MODE = 0 | LLC_PDU_TYPE = 1 | RLC_OCTET_COUNT = 39 | : End Channel_Request_Description | Exist_CHANGE_MARK = 0 | C_VALUE = 19 | Exist_SIGN_VAR = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | I_LEVEL_TN : | Exist = 0 | DCSN1 ERROR csnStreamEncoder: error NEED_MORE BITS TO UNPACK (-5) at (idx 184) +DRLCMACDATA ERROR Failed to encode an Uplink block: not enough bits in the output buffer (rc=-5) DCSN1 INFO csnStreamDecoder (type: EGPRS Pkt DL ACK/NACK (8)): PayloadType = 1 | spare = 0 | R = 0 | MESSAGE_TYPE = 8 | DOWNLINK_TFI = 0 | MS_OUT_OF_MEMORY = 0 | Exist_EGPRS_ChannelQualityReport = 1 | : EGPRS_ChannelQualityReport | : EGPRS_BEP_LinkQualityMeasurements | Exist_MEAN_CV_BEP_GMSK = 0 | Exist_MEAN_CV_BEP_8PSK = 1 | MEAN_BEP_8PSK = 31 | CV_BEP_8PSK = 7 | : End EGPRS_BEP_LinkQualityMeasurements | C_VALUE = 58 | : EGPRS_TimeslotLinkQualityMeasurements | Exist_BEP_MEASUREMENTS = 0 | Exist_INTERFERENCE_MEASUREMENTS = 0 | : End EGPRS_TimeslotLinkQualityMeasurements | : End EGPRS_ChannelQualityReport | Exist_ChannelRequestDescription = 1 | : ChannelRequestDescription | PEAK_THROUGHPUT_CLASS = 6 | RADIO_PRIORITY = 0 | RLC_MODE = 0 | LLC_PDU_TYPE = 1 | RLC_OCTET_COUNT = 62 | : End ChannelRequestDescription | Exist_PFI = 0 | Exist_ExtensionBits = 0 | : EGPRS_AckNack | Desc = 0 | : Desc | FINAL_ACK_INDICATION = 0 | BEGINNING_OF_WINDOW = 1 | END_OF_WINDOW = 1 | STARTING_SEQUENCE_NUMBER = 1187 | Exist_CRBB = 0 | URBB = 127 | URBB = 255 | URBB = 255 | URBB = 238 | URBB = 0 | URBB = 0 | URBB = 0 | URBB = 0 | URBB = 0 | URBB = 0 | URBB = 0 | URBB = 0 | URBB = 0 | : End Desc | : End EGPRS_AckNack | Padding = DCSN1 INFO csnStreamDecoder (RAcap): MS_RA_capability_value { | Choice MS_RA_capability_value_Choice = 1 | u.Content length = 27 | offset = 1 | RF_Power_Capability = 1 | Exist_A5_bits = 0 | ES_IND = 1 | PS = 0 | VGCS = 0 | VBS = 0 | Exist_Multislot_capability = 1 | : Multislot_capability | Exist_HSCSD_multislot_class = 0 | Exist_GPRS_multislot_class = 1 | GPRS_multislot_class = 3 | GPRS_Extended_Dynamic_Allocation_Capability = 0 | Exist_SM = 0 | Exist_ECSD_multislot_class = 0 | Exist_EGPRS_multislot_class = 1 | EGPRS_multislot_class = 3 | EGPRS_Extended_Dynamic_Allocation_Capability = 0 | Exist_DTM_GPRS_multislot_class = 0 | : End Multislot_capability | COMPACT_Interference_Measurement_Capability = NULL | Revision_Level_Indicator = NULL | UMTS_FDD_Radio_Access_Technology_Capability = NULL | UMTS_384_TDD_Radio_Access_Technology_Capability = NULL | CDMA2000_Radio_Access_Technology_Capability = NULL | UMTS_128_TDD_Radio_Access_Technology_Capability = NULL | GERAN_Feature_Package_1 = NULL | Modulation_based_multislot_class_support = NULL | GMSK_MultislotPowerProfile = NULL | EightPSK_MultislotProfile = NULL | MultipleTBF_Capability = NULL | DownlinkAdvancedReceiverPerformance = NULL | ExtendedRLC_MAC_ControlMessageSegmentionsCapability = NULL | DTM_EnhancementsCapability = NULL | PS_HandoverCapability = NULL | DTM_Handover_Capability = NULL | FlexibleTimeslotAssignment = NULL | GAN_PS_HandoverCapability = NULL | RLC_Non_persistentMode = NULL | ReducedLatencyCapability = NULL | UplinkEGPRS2 = NULL | DownlinkEGPRS2 = NULL | EUTRA_FDD_Support = NULL | EUTRA_TDD_Support = NULL | GERAN_To_EUTRAN_supportInGERAN_PTM = NULL | PriorityBasedReselectionSupport = NULL | MS_RA_capability_value } | Padding = 0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0| DCSN1 INFO csnStreamEncoder (RAcap): MS_RA_capability_value { | u.Content = 1 | RF_Power_Capability = 1 | Exist_A5_bits = 0 | ES_IND = 1 | PS = 0 | VGCS = 0 | VBS = 0 | Exist_Multislot_capability = 1 | : Multislot_capability | Exist_HSCSD_multislot_class = 0 | Exist_GPRS_multislot_class = 1 | GPRS_multislot_class = 3 | GPRS_Extended_Dynamic_Allocation_Capability = 0 | Exist_SM = 0 | Exist_ECSD_multislot_class = 0 | Exist_EGPRS_multislot_class = 1 | EGPRS_multislot_class = 3 | EGPRS_Extended_Dynamic_Allocation_Capability = 0 | Exist_DTM_GPRS_multislot_class = 0 | : End Multislot_capability | Exist_Eight_PSK_Power_Capability = 0 | COMPACT_Interference_Measurement_Capability = 0 | Revision_Level_Indicator = 0 | UMTS_FDD_Radio_Access_Technology_Capability = 0 | UMTS_384_TDD_Radio_Access_Technology_Capability = 0 | CDMA2000_Radio_Access_Technology_Capability = 0 | UMTS_128_TDD_Radio_Access_Technology_Capability = 0 | GERAN_Feature_Package_1 = 0 | Exist_Extended_DTM_multislot_class = 0 | Modulation_based_multislot_class_support = 0 | Exist_HighMultislotCapability = 0 | Exist_GERAN_lu_ModeCapability = 0 | GMSK_MultislotPowerProfile = 0 | EightPSK_MultislotProfile = 0 | MultipleTBF_Capability = 0 | DownlinkAdvancedReceiverPerformance = 0 | ExtendedRLC_MAC_ControlMessageSegmentionsCapability = 0 | DTM_EnhancementsCapability = 0 | Exist_DTM_GPRS_HighMultislotClass = 0 | PS_HandoverCapability = 0 | DTM_Handover_Capability = 0 | Exist_DownlinkDualCarrierCapability_r7 = 0 | FlexibleTimeslotAssignment = 0 | GAN_PS_HandoverCapability = 0 | RLC_Non_persistentMode = 0 | ReducedLatencyCapability = 0 | UplinkEGPRS2 = 0 | DownlinkEGPRS2 = 0 | EUTRA_FDD_Support = 0 | EUTRA_TDD_Support = 0 | GERAN_To_EUTRAN_supportInGERAN_PTM = 0 | PriorityBasedReselectionSupport = 0 | u.Content length = 65 | MS_RA_capability_value } | Padding = 3|43|43|43|43|43|43|43|43|43|43|43|43|43| diff --git a/tests/rlcmac/RLCMACTest.ok b/tests/rlcmac/RLCMACTest.ok index 437cd75..54b5e31 100644 --- a/tests/rlcmac/RLCMACTest.ok +++ b/tests/rlcmac/RLCMACTest.ok @@ -138,6 +138,38 @@ vector1 = 40 0a 90 20 00 00 00 00 00 00 00 30 10 01 2a 08 00 13 2b 2b 2b 2b 2b vector2 = 40 0a 90 20 00 00 00 00 00 00 00 30 10 01 2a 08 00 13 2b 2b 2b 2b 2b vector1 == vector2 : TRUE +vector1 = 4117ea1b903eaeb2686564b2330820078000102b2b2b2b +=========Start DECODE=========== ++++++++++Finish DECODE (0)++++++++++ +=========Start ENCODE============= ++++++++++Finish ENCODE (0)+++++++++++ +vector1 = 41 17 ea 1b 90 3e ae b2 68 65 64 b2 33 08 20 07 80 00 10 2b 2b 2b 2b +vector2 = 41 17 ea 1b 90 3e af 22 68 65 64 b2 33 00 00 00 00 82 00 78 00 01 01 +vector1 == vector2 : FALSE +vector1 = 40167e49f7f8ef2632b2596620060000806d00541c0080 +=========Start DECODE=========== ++++++++++Finish DECODE (0)++++++++++ +=========Start ENCODE============= ++++++++++Finish ENCODE (0)+++++++++++ +vector1 = 40 16 7e 49 f7 f8 ef 26 32 b2 59 66 20 06 00 00 80 6d 00 54 1c 00 80 +vector2 = 40 16 7e 49 f7 f8 ef 0e 32 b2 59 66 20 06 00 00 9b 40 15 07 00 20 2b +vector1 == vector2 : FALSE +vector1 = 4017787174d92eba686564b2ccc30800a000040b2b2b2b +=========Start DECODE=========== ++++++++++Finish DECODE (0)++++++++++ +=========Start ENCODE============= ++++++++++Finish ENCODE (0)+++++++++++ +vector1 = 40 17 78 71 74 d9 2e ba 68 65 64 b2 cc c3 08 00 a0 00 04 0b 2b 2b 2b +vector2 = 40 17 78 71 74 d9 2f 2a 68 65 64 b2 cc c0 00 00 00 30 80 0a 00 00 40 +vector1 == vector2 : FALSE +vector1 = 4017e5b2cd5a2eca68655e44aec84880139300412b2b2b +=========Start DECODE=========== ++++++++++Finish DECODE (-5)++++++++++ +=========Start ENCODE============= ++++++++++Finish ENCODE (-5)+++++++++++ +vector1 = 40 17 e5 b2 cd 5a 2e ca 68 65 5e 44 ae c8 48 80 13 93 00 41 2b 2b 2b +vector2 = 40 17 e5 b2 cd 5a 2f 4a 68 65 5e 44 ae c8 00 00 00 00 48 80 13 93 00 +vector1 == vector2 : FALSE *** testCsnLeftAlignedVarBmpBounds *** *** testRAcap *** === Test decoding of MS RA Capability === -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22523 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ib5677048f5668185ffe752f97c97d5612eee4d72 Gerrit-Change-Number: 22523 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 30 14:15:14 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 30 Jan 2021 14:15:14 +0000 Subject: Change in osmo-bsc[master]: stats: Add granularity to chan:rf_fail stat. In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22518 ) Change subject: stats: Add granularity to chan:rf_fail stat. ...................................................................... Patch Set 1: Code-Review+2 (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/22518/1/src/osmo-bsc/abis_rsl.c File src/osmo-bsc/abis_rsl.c: https://gerrit.osmocom.org/c/osmo-bsc/+/22518/1/src/osmo-bsc/abis_rsl.c at 991 PS1, Line 991: lchan->ts->trx->bts->bts_ctrs->ctr > Good point. I've done the same in other locations with my previous stats patch. [?] agreed. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22518 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I91fe6659fe9df33763f4070b4f505561b2005d38 Gerrit-Change-Number: 22518 Gerrit-PatchSet: 1 Gerrit-Owner: iedemam Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 30 Jan 2021 14:15:14 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Comment-In-Reply-To: iedemam Comment-In-Reply-To: laforge Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 30 14:15:16 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 30 Jan 2021 14:15:16 +0000 Subject: Change in osmo-bsc[master]: stats: Add granularity to chan:rf_fail stat. In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/22518 ) Change subject: stats: Add granularity to chan:rf_fail stat. ...................................................................... stats: Add granularity to chan:rf_fail stat. Add additional counters to track TCH and SDCCH RF failures in separate subcategories. Change-Id: I91fe6659fe9df33763f4070b4f505561b2005d38 --- M include/osmocom/bsc/bts.h M src/osmo-bsc/abis_rsl.c M src/osmo-bsc/bts.c 3 files changed, 19 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/include/osmocom/bsc/bts.h b/include/osmocom/bsc/bts.h index 8f3e05b..b81f45f 100644 --- a/include/osmocom/bsc/bts.h +++ b/include/osmocom/bsc/bts.h @@ -28,6 +28,8 @@ BTS_CTR_CHREQ_SUCCESSFUL, BTS_CTR_CHREQ_NO_CHANNEL, BTS_CTR_CHAN_RF_FAIL, + BTS_CTR_CHAN_RF_FAIL_TCH, + BTS_CTR_CHAN_RF_FAIL_SDCCH, BTS_CTR_CHAN_RLL_ERR, BTS_CTR_BTS_OML_FAIL, BTS_CTR_BTS_RSL_FAIL, diff --git a/src/osmo-bsc/abis_rsl.c b/src/osmo-bsc/abis_rsl.c index 388e2fc..9e00fe7 100644 --- a/src/osmo-bsc/abis_rsl.c +++ b/src/osmo-bsc/abis_rsl.c @@ -982,6 +982,17 @@ LOG_LCHAN(lchan, LOGL_ERROR, "CONNECTION FAIL%s\n", rsl_cause_name(&tp)); rate_ctr_inc(&lchan->ts->trx->bts->bts_ctrs->ctr[BTS_CTR_CHAN_RF_FAIL]); + switch (lchan->type) { + case GSM_LCHAN_SDCCH: + rate_ctr_inc(&lchan->ts->trx->bts->bts_ctrs->ctr[BTS_CTR_CHAN_RF_FAIL_SDCCH]); + break; + case GSM_LCHAN_TCH_H: + case GSM_LCHAN_TCH_F: + rate_ctr_inc(&lchan->ts->trx->bts->bts_ctrs->ctr[BTS_CTR_CHAN_RF_FAIL_TCH]); + break; + default: + break; + } /* If the lchan is associated with a conn, we shall notify the MSC of the RSL Conn Failure, and * the connection will presumably be torn down and lead to an lchan release. During initial diff --git a/src/osmo-bsc/bts.c b/src/osmo-bsc/bts.c index 3fa4f24..ac0e2af 100644 --- a/src/osmo-bsc/bts.c +++ b/src/osmo-bsc/bts.c @@ -791,6 +791,12 @@ [BTS_CTR_CHAN_RF_FAIL] = \ { "chan:rf_fail", "Received a RF failure indication from BTS" }, + [BTS_CTR_CHAN_RF_FAIL_TCH] = \ + { "chan:rf_fail_tch", + "Received a RF failure indication from BTS on a TCH channel" }, + [BTS_CTR_CHAN_RF_FAIL_SDCCH] = \ + { "chan:rf_fail_sdcch", + "Received a RF failure indication from BTS on an SDCCH channel" }, [BTS_CTR_CHAN_RLL_ERR] = \ { "chan:rll_err", "Received a RLL failure with T200 cause from BTS" }, -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/22518 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I91fe6659fe9df33763f4070b4f505561b2005d38 Gerrit-Change-Number: 22518 Gerrit-PatchSet: 2 Gerrit-Owner: iedemam Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 30 14:15:46 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 30 Jan 2021 14:15:46 +0000 Subject: Change in libosmocore[master]: gsm_7bit_encode_n(): test encoding of more than 250 septets In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22542 ) Change subject: gsm_7bit_encode_n(): test encoding of more than 250 septets ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22542 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I723300578d5ab0c7b94cf49c14d962b2dbf47740 Gerrit-Change-Number: 22542 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 30 Jan 2021 14:15:46 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 30 14:16:24 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 30 Jan 2021 14:16:24 +0000 Subject: Change in libosmocore[master]: gsm_7bit_encode_n(): use regular malloc() instead of calloc() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22543 ) Change subject: gsm_7bit_encode_n(): use regular malloc() instead of calloc() ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22543 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I6956cbd83b2999dbcf8e2d210134b0a166c33efb Gerrit-Change-Number: 22543 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 30 Jan 2021 14:16:24 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 30 14:17:27 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 30 Jan 2021 14:17:27 +0000 Subject: Change in libosmocore[master]: gsm_7bit_encode_n(): fix integer overflow in gsm_septets2octets() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22544 ) Change subject: gsm_7bit_encode_n(): fix integer overflow in gsm_septets2octets() ...................................................................... Patch Set 1: Code-Review-1 I don't think you can do that without breaking the ABI. So it's best to introduce a new function [name] for the changed function signature. Otherwise we risk breaking running old applications against new library. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22544 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ib1aac538afeb0a5c76a1df472d555139a496e12e Gerrit-Change-Number: 22544 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 30 Jan 2021 14:17:27 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 30 14:33:08 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 30 Jan 2021 14:33:08 +0000 Subject: Change in osmo-sgsn[master]: gbproxy: Send BVC-BLOCK for PTP BVC to SGSN when BSS resets BVCI=0 In-Reply-To: References: Message-ID: laforge has abandoned this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/21476 ) Change subject: gbproxy: Send BVC-BLOCK for PTP BVC to SGSN when BSS resets BVCI=0 ...................................................................... Abandoned -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/21476 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I48f1c148bc5c7c9a49b789dac78f76c2aa7baff8 Gerrit-Change-Number: 21476 Gerrit-PatchSet: 4 Gerrit-Owner: laforge Gerrit-Assignee: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: daniel Gerrit-MessageType: abandon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 30 14:41:26 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 30 Jan 2021 14:41:26 +0000 Subject: Change in osmo-pcu[master]: contrib/osmo-pcu.spec.in: add missing libosmoctrl dependency In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-pcu/+/22546 to look at the new patch set (#2). Change subject: contrib/osmo-pcu.spec.in: add missing libosmoctrl dependency ...................................................................... contrib/osmo-pcu.spec.in: add missing libosmoctrl dependency Change-Id: I37c478f3f430f72620af17f1c3329f6ee8515402 Fixes: Id35f40d05f3e081f32fddbf1fa34cb338db452ca --- M contrib/osmo-pcu.spec.in 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/46/22546/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22546 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I37c478f3f430f72620af17f1c3329f6ee8515402 Gerrit-Change-Number: 22546 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 30 14:41:27 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 30 Jan 2021 14:41:27 +0000 Subject: Change in osmo-pcu[master]: contrib/osmo-pcu.spec.in: require libosmo* version 1.4.0 References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22550 ) Change subject: contrib/osmo-pcu.spec.in: require libosmo* version 1.4.0 ...................................................................... contrib/osmo-pcu.spec.in: require libosmo* version 1.4.0 Keep this file in sync with the requirements in configure.ac. Change-Id: I8fec52d0d77778775df0022da6cd53a213c057bc --- M contrib/osmo-pcu.spec.in 1 file changed, 4 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/50/22550/1 diff --git a/contrib/osmo-pcu.spec.in b/contrib/osmo-pcu.spec.in index e197cb7..c3be88c 100644 --- a/contrib/osmo-pcu.spec.in +++ b/contrib/osmo-pcu.spec.in @@ -28,10 +28,10 @@ %if 0%{?suse_version} BuildRequires: systemd-rpm-macros %endif -BuildRequires: pkgconfig(libosmocore) >= 1.1.0 -BuildRequires: pkgconfig(libosmogb) >= 1.1.0 -BuildRequires: pkgconfig(libosmogsm) >= 1.1.0 -BuildRequires: pkgconfig(libosmovty) >= 1.1.0 +BuildRequires: pkgconfig(libosmocore) >= 1.4.0 +BuildRequires: pkgconfig(libosmogb) >= 1.4.0 +BuildRequires: pkgconfig(libosmogsm) >= 1.4.0 +BuildRequires: pkgconfig(libosmovty) >= 1.4.0 %{?systemd_requires} %description -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22550 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I8fec52d0d77778775df0022da6cd53a213c057bc Gerrit-Change-Number: 22550 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 30 14:41:38 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 30 Jan 2021 14:41:38 +0000 Subject: Change in osmo-pcu[master]: contrib/osmo-pcu.spec.in: add missing libosmoctrl dependency In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22546 ) Change subject: contrib/osmo-pcu.spec.in: add missing libosmoctrl dependency ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-pcu/+/22546/1/contrib/osmo-pcu.spec.in File contrib/osmo-pcu.spec.in: https://gerrit.osmocom.org/c/osmo-pcu/+/22546/1/contrib/osmo-pcu.spec.in at 35 PS1, Line 35: Bui > configure.ac requires 1.4.0, os best to use the same version here. [?] Done -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22546 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I37c478f3f430f72620af17f1c3329f6ee8515402 Gerrit-Change-Number: 22546 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 30 Jan 2021 14:41:38 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: laforge Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Sat Jan 30 16:07:08 2021 From: admin at opensuse.org (OBS Notification) Date: Sat, 30 Jan 2021 16:07:08 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in openSUSE_Factory_ARM/aarch64 In-Reply-To: References: Message-ID: <601584395a303_32fe2b11e4bbc5f8107357b@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-pcu/openSUSE_Factory_ARM/aarch64 Package network:osmocom:nightly/osmo-pcu failed to build in openSUSE_Factory_ARM/aarch64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-pcu Last lines of build log: [ 66s] checking for pkg-config... /usr/bin/pkg-config [ 66s] checking for aarch64-suse-linux-gnu-pkg-config... /usr/bin/aarch64-suse-linux-gnu-pkg-config [ 66s] checking pkg-config is at least version 0.20... yes [ 66s] checking for ANSI C header files... (cached) yes [ 66s] checking for LIBOSMOCORE... yes [ 66s] checking for LIBOSMOVTY... yes [ 66s] checking for LIBOSMOCTRL... no [ 66s] configure: error: Package requirements (libosmoctrl >= 1.4.0) were not met: [ 66s] [ 66s] Package 'libosmoctrl', required by 'virtual:world', not found [ 66s] [ 66s] Consider adjusting the PKG_CONFIG_PATH environment variable if you [ 66s] installed software in a non-standard prefix. [ 66s] [ 66s] Alternatively, you may set the environment variables LIBOSMOCTRL_CFLAGS [ 66s] and LIBOSMOCTRL_LIBS to avoid the need to call pkg-config. [ 66s] See the pkg-config man page for more details. [ 66s] error: Bad exit status from /var/tmp/rpm-tmp.Hvu18p (%build) [ 66s] [ 66s] [ 66s] RPM build errors: [ 66s] Bad exit status from /var/tmp/rpm-tmp.Hvu18p (%build) [ 66s] ### VM INTERACTION START ### [ 69s] [ 46.671684] sysrq: Power Off [ 69s] [ 46.672880] reboot: Power down [ 69s] ### VM INTERACTION END ### [ 70s] [ 70s] obs-arm-8 failed "build osmo-pcu.spec" at Sat Jan 30 16:07:05 UTC 2021. [ 70s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Sat Jan 30 17:38:06 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Sat, 30 Jan 2021 17:38:06 +0000 Subject: Change in osmo-pcu[master]: contrib/osmo-pcu.spec.in: add missing libosmoctrl dependency In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22546 ) Change subject: contrib/osmo-pcu.spec.in: add missing libosmoctrl dependency ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22546 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I37c478f3f430f72620af17f1c3329f6ee8515402 Gerrit-Change-Number: 22546 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 30 Jan 2021 17:38:06 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 30 19:10:02 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 30 Jan 2021 19:10:02 +0000 Subject: Change in libosmocore[master]: ns2: Use proper return value from write_queue callback function References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22551 ) Change subject: ns2: Use proper return value from write_queue callback function ...................................................................... ns2: Use proper return value from write_queue callback function write_queue expects a -errno value on error, not '-1'. Change-Id: I93c858facfe7e1c533df8dccc4502a574686bc8a Related: OS#4995 --- M src/gb/gprs_ns2_fr.c 1 file changed, 6 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/51/22551/1 diff --git a/src/gb/gprs_ns2_fr.c b/src/gb/gprs_ns2_fr.c index 1c88db6..f73033b 100644 --- a/src/gb/gprs_ns2_fr.c +++ b/src/gb/gprs_ns2_fr.c @@ -247,7 +247,12 @@ static int handle_netif_write(struct osmo_fd *ofd, struct msgb *msg) { - return write(ofd->fd, msgb_data(msg), msgb_length(msg)); + int rc = write(ofd->fd, msgb_data(msg), msgb_length(msg)); + /* write_queue expects a "-errno" type return value in case of failure */ + if (rc == -1) + return -errno; + else + return rc; } /*! determine if given bind is for FR-GRE encapsulation. */ -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22551 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I93c858facfe7e1c533df8dccc4502a574686bc8a Gerrit-Change-Number: 22551 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 30 19:10:03 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 30 Jan 2021 19:10:03 +0000 Subject: Change in libosmocore[master]: ns2: Log ERROR if we cannot transmit a packet due to ENOBUFS References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22552 ) Change subject: ns2: Log ERROR if we cannot transmit a packet due to ENOBUFS ...................................................................... ns2: Log ERROR if we cannot transmit a packet due to ENOBUFS Related: OS#4995 Change-Id: I2ba64e96c60e23d2e6c8ecdcab0b52b3833f092c --- M src/gb/gprs_ns2_fr.c 1 file changed, 7 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/52/22552/1 diff --git a/src/gb/gprs_ns2_fr.c b/src/gb/gprs_ns2_fr.c index f73033b..096e150 100644 --- a/src/gb/gprs_ns2_fr.c +++ b/src/gb/gprs_ns2_fr.c @@ -247,11 +247,15 @@ static int handle_netif_write(struct osmo_fd *ofd, struct msgb *msg) { - int rc = write(ofd->fd, msgb_data(msg), msgb_length(msg)); + struct gprs_ns2_vc_bind *bind = ofd->data; + int rc; + + rc = write(ofd->fd, msgb_data(msg), msgb_length(msg)); /* write_queue expects a "-errno" type return value in case of failure */ - if (rc == -1) + if (rc == -1) { + LOGBIND(bind, LOGL_ERROR, "error during write to AF_PACKET: %s\n", strerror(errno)); return -errno; - else + } else return rc; } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22552 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I2ba64e96c60e23d2e6c8ecdcab0b52b3833f092c Gerrit-Change-Number: 22552 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 30 19:10:03 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 30 Jan 2021 19:10:03 +0000 Subject: Change in libosmocore[master]: osmo-ns-dummy: Add simple NS traffic generator References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22553 ) Change subject: osmo-ns-dummy: Add simple NS traffic generator ...................................................................... osmo-ns-dummy: Add simple NS traffic generator This adds a simple NS traffic generator that can be used to perform load testing on NS links, particularly those with limited bandwidth such as frame-relay E1 lines. Related: OS#4995 Change-Id: Iad3b694c85962dbbc6b4a27a0ed5bc841add464f --- M utils/Makefile.am A utils/osmo-ns-dummy-vty.c M utils/osmo-ns-dummy.c 3 files changed, 317 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/53/22553/1 diff --git a/utils/Makefile.am b/utils/Makefile.am index 4fac477..4e54a78 100644 --- a/utils/Makefile.am +++ b/utils/Makefile.am @@ -29,7 +29,7 @@ if ENABLE_EXT_TESTS if ENABLE_GB noinst_PROGRAMS += osmo-ns-dummy -osmo_ns_dummy_SOURCES = osmo-ns-dummy.c +osmo_ns_dummy_SOURCES = osmo-ns-dummy.c osmo-ns-dummy-vty.c osmo_ns_dummy_LDADD = $(LDADD) $(TALLOC_LIBS) \ $(top_builddir)/src/gb/libosmogb.la \ $(top_builddir)/src/vty/libosmovty.la \ diff --git a/utils/osmo-ns-dummy-vty.c b/utils/osmo-ns-dummy-vty.c new file mode 100644 index 0000000..c88add7 --- /dev/null +++ b/utils/osmo-ns-dummy-vty.c @@ -0,0 +1,314 @@ +/* VTY for osmo-ns-dummy */ + +/* (C) 2021 Harald Welte + * + * All Rights Reserved + * + * SPDX-License-Identifier: GPL-2.0+ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include +#include +#include +#include +#include +#include +#include + + +#include +#include +#include +#include +#include +#include + +#include +#include + +#include +#include +#include +#include +#include + +static struct gprs_ns2_inst *g_nsi; +static struct llist_head g_ns_traf_gens = LLIST_HEAD_INIT(g_ns_traf_gens); + +/* one NS traffic generator instance. You can have as many of these as you want, + * just as long as they have unique names */ +struct ns_traf_gen { + struct llist_head list; + const char *name; + struct { + uint16_t nsei; + uint16_t bvci; + /* size of each packet */ + uint16_t pkt_size; + /* interval between packets in us */ + uint32_t interval_us; + /* fixed (false) or random (true) LSP */ + bool lsp_randomize; + /* (fixeD) Link Selector Parameter */ + uint32_t lsp; + } cfg; + struct osmo_fd timerfd; + bool running; +}; + +#define LOGNTG(ntg, lvl, fmt, args ...) \ + LOGP(DLGLOBAL, lvl, "traf-gen(%s): " fmt, (ntg)->name, ## args) + +/* allocate and transmit one NS message */ +static int ntg_tx_one(struct ns_traf_gen *ntg) +{ + struct osmo_gprs_ns2_prim nsp = {}; + struct msgb *msg = msgb_alloc_headroom(3072, 20, "NS traffic gen"); + int rc; + + if (!msg) + return -ENOMEM; + msgb_put(msg, ntg->cfg.pkt_size); + nsp.bvci = ntg->cfg.bvci; + nsp.nsei = ntg->cfg.nsei; + if (ntg->cfg.lsp_randomize) + nsp.u.unitdata.link_selector = rand(); + else + nsp.u.unitdata.link_selector = ntg->cfg.lsp; + osmo_prim_init(&nsp.oph, SAP_NS, GPRS_NS2_PRIM_UNIT_DATA, PRIM_OP_REQUEST, msg); + rc = gprs_ns2_recv_prim(g_nsi, &nsp.oph); + if (rc < 0) + LOGNTG(ntg, LOGL_ERROR, "error transmitting: %d\n", rc); + + return rc; +} + +/* call-back from transmit timer-fd */ +static int ntg_timerfd_cb(struct osmo_fd *ofd, unsigned int what) +{ + uint64_t expire_count; + struct ns_traf_gen *ntg = ofd->data; + unsigned int i; + int rc; + + OSMO_ASSERT(what & OSMO_FD_READ); + + rc = read(ofd->fd, (void *) &expire_count, sizeof(expire_count)); + if (rc < 0 && errno == EAGAIN) + return 0; + OSMO_ASSERT(rc == sizeof(expire_count)); + + for (i = 0; i < expire_count; i++) + ntg_tx_one(ntg); + + return 0; +} + +static struct ns_traf_gen *ns_traf_gen_find(const char *name) +{ + struct ns_traf_gen *ntg; + + llist_for_each_entry(ntg, &g_ns_traf_gens, list) { + if (!strcmp(ntg->name, name)) + return ntg; + } + return NULL; +} + +static struct ns_traf_gen *ns_traf_gen_find_or_alloc(const char *name) +{ + struct ns_traf_gen *ntg; + int rc; + + ntg = ns_traf_gen_find(name); + if (ntg) + return ntg; + + ntg = talloc_zero(g_nsi, struct ns_traf_gen); + OSMO_ASSERT(ntg); + ntg->name = talloc_strdup(ntg, name); + ntg->timerfd.fd = -1; + rc = osmo_timerfd_setup(&ntg->timerfd, ntg_timerfd_cb, ntg); + OSMO_ASSERT(rc >= 0); + llist_add_tail(&ntg->list, &g_ns_traf_gens); + + return ntg; +} + +enum nodes { + NTG_NODE = _LAST_OSMOVTY_NODE + 1, +}; + +static struct cmd_node ntg_node = { + NTG_NODE, + "%s(config-ns-traf-gen)# ", + 1, +}; + +static int config_write_ntg(struct vty *vty) +{ + struct ns_traf_gen *ntg; + + llist_for_each_entry(ntg, &g_ns_traf_gens, list) { + vty_out(vty, "ns-traffic-generator %s%s", ntg->name, VTY_NEWLINE); + vty_out(vty, " nsei %u%s", ntg->cfg.nsei, VTY_NEWLINE); + vty_out(vty, " bvci %u%s", ntg->cfg.bvci, VTY_NEWLINE); + vty_out(vty, " packet-size %u%s", ntg->cfg.pkt_size, VTY_NEWLINE); + vty_out(vty, " interval-us %u%s", ntg->cfg.interval_us, VTY_NEWLINE); + vty_out(vty, " lsp %u%s", ntg->cfg.lsp, VTY_NEWLINE); + vty_out(vty, " lsp-mode %s%s", ntg->cfg.lsp_randomize ? "randomized" : "fixed", VTY_NEWLINE); + } + + return 0; +} + +DEFUN(ntg_start, ntg_start_stop_cmd, + "ns-traffic-generator (start|stop) NAME", + "Control named NS traffic generator\n" + "Start generating traffic in this traffic generator\n" + "Stop generating traffic in this traffic generator\n" + "Name of NS traffic generator to start\n") +{ + struct ns_traf_gen *ntg = ns_traf_gen_find(argv[1]); + if (!ntg) { + vty_out(vty, "NS Traffic generator '%s' doesn't exist%s", argv[1], VTY_NEWLINE); + return CMD_WARNING; + } + + if (!strcmp(argv[0], "start")) { + struct timespec interval; + if (ntg->running) { + vty_out(vty, "NS Traffic generator was already started%s", VTY_NEWLINE); + return CMD_WARNING; + } + interval.tv_sec = ntg->cfg.interval_us / 1000000; + interval.tv_nsec = (ntg->cfg.interval_us % 1000000) * 1000; + osmo_timerfd_schedule(&ntg->timerfd, NULL, &interval); + ntg->running = true; + } else { + if (!ntg->running) { + vty_out(vty, "NS Traffic generator was already stopped%s", VTY_NEWLINE); + return CMD_WARNING; + } + osmo_timerfd_disable(&ntg->timerfd); + ntg->running = false; + } + + return CMD_SUCCESS; +} + +DEFUN(ntg_nsei, ntg_nsei_cmd, + "nsei <0-65535>", + "NSEI to use when generating traffic\n" + "NSEI to use when generating traffic\n") +{ + struct ns_traf_gen *ntg = vty->index; + ntg->cfg.nsei = atoi(argv[0]); + return CMD_SUCCESS; +} + +DEFUN(ntg_bvci, ntg_bvci_cmd, + "bvci <0-65535>", + "BVCI to use when generating traffic\n" + "BVCI to use when generating traffic\n") +{ + struct ns_traf_gen *ntg = vty->index; + ntg->cfg.bvci = atoi(argv[0]); + return CMD_SUCCESS; +} + +DEFUN(ntg_pkt_size, ntg_pkt_size_cmd, + "packet-size <0-2048>", + "Packet size for generated NS-UNITDATA payload\n" + "Packet size for generated NS-UNITDATA payload\n") +{ + struct ns_traf_gen *ntg = vty->index; + ntg->cfg.pkt_size = atoi(argv[0]); + return CMD_SUCCESS; +} + +DEFUN(ntg_pkt_intv_us, ntg_pkt_intv_us_cmd, + "interval-us <0-1000000>", + "Interval between packets in microseconds\n" + "Interval between packets in microseconds\n") +{ + struct ns_traf_gen *ntg = vty->index; + ntg->cfg.interval_us = atoi(argv[0]); + if (ntg->running) { + /* TODO: update timer */ + } + return CMD_SUCCESS; +} + +DEFUN(ntg_lsp, ntg_lsp_cmd, + "lsp <0-4294967295>", + "Link Selector Parameter (only used in fixed mode)\n" + "Link Selector Parameter (only used in fixed mode)\n") +{ + struct ns_traf_gen *ntg = vty->index; + ntg->cfg.lsp = strtoul(argv[0], NULL, 10); + return CMD_SUCCESS; +} + +DEFUN(ntg_lsp_mode, ntg_lsp_mode_cmd, + "lsp-mode (fixed|randomized)", + "Link Selector Parameter Mode\n" + "Fixed / Staic LSP\n" + "Randomized LSP\n") +{ + struct ns_traf_gen *ntg = vty->index; + if (!strcmp(argv[0], "randomized")) + ntg->cfg.lsp_randomize = true; + else + ntg->cfg.lsp_randomize = false; + return CMD_SUCCESS; +} + +DEFUN(gen_traffic, gen_traffic_cmd, + "ns-traffic-generator NAME", + "Configure a given NS traffic generator\n" "Name of NS traffic generator\n") +{ + struct ns_traf_gen *ntg = ns_traf_gen_find_or_alloc(argv[0]); + + if (!ntg) + return CMD_WARNING; + + vty->index = ntg; + vty->node = NTG_NODE; + + return CMD_SUCCESS; +} + +int nsdummy_vty_init(struct gprs_ns2_inst *nsi) +{ + g_nsi = nsi; + + /* configuration of traffic generators via CONFIG / NTG node */ + install_element(CONFIG_NODE, &gen_traffic_cmd); + install_node(&ntg_node, config_write_ntg); + install_element(NTG_NODE, &ntg_nsei_cmd); + install_element(NTG_NODE, &ntg_bvci_cmd); + install_element(NTG_NODE, &ntg_pkt_size_cmd); + install_element(NTG_NODE, &ntg_pkt_intv_us_cmd); + install_element(NTG_NODE, &ntg_lsp_cmd); + install_element(NTG_NODE, &ntg_lsp_mode_cmd); + + /* starting/stopping the traffic generators is in 'enable' mode, not 'config' */ + install_element(ENABLE_NODE, &ntg_start_stop_cmd); + + return 0; +} diff --git a/utils/osmo-ns-dummy.c b/utils/osmo-ns-dummy.c index 5625f75..4b93788 100644 --- a/utils/osmo-ns-dummy.c +++ b/utils/osmo-ns-dummy.c @@ -199,6 +199,7 @@ return 0; } +extern int nsdummy_vty_init(struct gprs_ns2_inst *nsi); int main (int argc, char *argv[]) { @@ -230,6 +231,7 @@ } gprs_ns2_vty_init(nsi); + nsdummy_vty_init(nsi); rc = vty_read_config_file(config_file, NULL); if (rc < 0 && config_given) { fprintf(stderr, "Failed to parse the config file: '%s'\n", -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22553 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Iad3b694c85962dbbc6b4a27a0ed5bc841add464f Gerrit-Change-Number: 22553 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 30 19:14:37 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 30 Jan 2021 19:14:37 +0000 Subject: Change in osmo-pcu[master]: contrib/osmo-pcu.spec.in: add missing libosmoctrl dependency In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22546 ) Change subject: contrib/osmo-pcu.spec.in: add missing libosmoctrl dependency ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22546 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I37c478f3f430f72620af17f1c3329f6ee8515402 Gerrit-Change-Number: 22546 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 30 Jan 2021 19:14:37 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 30 19:14:52 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 30 Jan 2021 19:14:52 +0000 Subject: Change in osmo-pcu[master]: contrib/osmo-pcu.spec.in: require libosmo* version 1.4.0 In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22550 ) Change subject: contrib/osmo-pcu.spec.in: require libosmo* version 1.4.0 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22550 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I8fec52d0d77778775df0022da6cd53a213c057bc Gerrit-Change-Number: 22550 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 30 Jan 2021 19:14:52 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 30 19:14:55 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 30 Jan 2021 19:14:55 +0000 Subject: Change in osmo-pcu[master]: contrib/osmo-pcu.spec.in: require libosmo* version 1.4.0 In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22550 ) Change subject: contrib/osmo-pcu.spec.in: require libosmo* version 1.4.0 ...................................................................... contrib/osmo-pcu.spec.in: require libosmo* version 1.4.0 Keep this file in sync with the requirements in configure.ac. Change-Id: I8fec52d0d77778775df0022da6cd53a213c057bc --- M contrib/osmo-pcu.spec.in 1 file changed, 4 insertions(+), 4 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/contrib/osmo-pcu.spec.in b/contrib/osmo-pcu.spec.in index e197cb7..c3be88c 100644 --- a/contrib/osmo-pcu.spec.in +++ b/contrib/osmo-pcu.spec.in @@ -28,10 +28,10 @@ %if 0%{?suse_version} BuildRequires: systemd-rpm-macros %endif -BuildRequires: pkgconfig(libosmocore) >= 1.1.0 -BuildRequires: pkgconfig(libosmogb) >= 1.1.0 -BuildRequires: pkgconfig(libosmogsm) >= 1.1.0 -BuildRequires: pkgconfig(libosmovty) >= 1.1.0 +BuildRequires: pkgconfig(libosmocore) >= 1.4.0 +BuildRequires: pkgconfig(libosmogb) >= 1.4.0 +BuildRequires: pkgconfig(libosmogsm) >= 1.4.0 +BuildRequires: pkgconfig(libosmovty) >= 1.4.0 %{?systemd_requires} %description -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22550 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I8fec52d0d77778775df0022da6cd53a213c057bc Gerrit-Change-Number: 22550 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 30 19:14:56 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 30 Jan 2021 19:14:56 +0000 Subject: Change in osmo-pcu[master]: contrib/osmo-pcu.spec.in: add missing libosmoctrl dependency In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/22546 ) Change subject: contrib/osmo-pcu.spec.in: add missing libosmoctrl dependency ...................................................................... contrib/osmo-pcu.spec.in: add missing libosmoctrl dependency Change-Id: I37c478f3f430f72620af17f1c3329f6ee8515402 Fixes: Id35f40d05f3e081f32fddbf1fa34cb338db452ca --- M contrib/osmo-pcu.spec.in 1 file changed, 1 insertion(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/contrib/osmo-pcu.spec.in b/contrib/osmo-pcu.spec.in index c3be88c..a48a4ed 100644 --- a/contrib/osmo-pcu.spec.in +++ b/contrib/osmo-pcu.spec.in @@ -32,6 +32,7 @@ BuildRequires: pkgconfig(libosmogb) >= 1.4.0 BuildRequires: pkgconfig(libosmogsm) >= 1.4.0 BuildRequires: pkgconfig(libosmovty) >= 1.4.0 +BuildRequires: pkgconfig(libosmoctrl) >= 1.4.0 %{?systemd_requires} %description -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/22546 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I37c478f3f430f72620af17f1c3329f6ee8515402 Gerrit-Change-Number: 22546 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 30 19:16:18 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 30 Jan 2021 19:16:18 +0000 Subject: Change in osmo-bsc[master]: Allow configuring SI13 CCN_ACTIVE bit from VTY, enable by default on ... In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21714 ) Change subject: Allow configuring SI13 CCN_ACTIVE bit from VTY, enable by default on osmo-bts ...................................................................... Allow configuring SI13 CCN_ACTIVE bit from VTY, enable by default on osmo-bts This is required in order to tell MS that osmo-pcu now supports Network Assisted Cell Change (NACC). Other BTS are not enabled by default since NACC support is not known to work nor tested there. Depends: libosmocore.git Change-Id I61991266b95d0c13d51b47906cc07846e9cf1390 Related: SYS#4909 Change-Id: If91d85331d402c3ab9c32b70c2c66cd7ba6ceb28 --- M include/osmocom/bsc/bts.h M src/osmo-bsc/bsc_vty.c M src/osmo-bsc/bts_sysmobts.c M src/osmo-bsc/system_information.c 4 files changed, 33 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve fixeria: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmocom/bsc/bts.h b/include/osmocom/bsc/bts.h index b81f45f..6797d1c 100644 --- a/include/osmocom/bsc/bts.h +++ b/include/osmocom/bsc/bts.h @@ -387,6 +387,10 @@ uint8_t net_ctrl_ord; bool ctrl_ack_type_use_block; bool egprs_pkt_chan_request; + struct { + bool active; /* CCN_ACTIVE */ + bool forced_vty; /* set by VTY ? */ + } ccn; /* TS 44.060 sec 8.8.2 */ } gprs; /* threshold (in percent) when BTS shall send CCCH LOAD IND */ diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c index 4781217..03b87b4 100644 --- a/src/osmo-bsc/bsc_vty.c +++ b/src/osmo-bsc/bsc_vty.c @@ -758,6 +758,9 @@ bts->gprs.net_ctrl_ord, VTY_NEWLINE); if (!bts->gprs.ctrl_ack_type_use_block) vty_out(vty, " gprs control-ack-type-rach%s", VTY_NEWLINE); + if (bts->gprs.ccn.forced_vty) + vty_out(vty, " gprs ccn-active %d%s", + bts->gprs.ccn.active ? 1 : 0, VTY_NEWLINE); vty_out(vty, " gprs cell bvci %u%s", bts->gprs.cell.bvci, VTY_NEWLINE); for (i = 0; i < ARRAY_SIZE(bts->gprs.cell.timer); i++) @@ -3486,6 +3489,24 @@ return CMD_SUCCESS; } +DEFUN_USRATTR(cfg_bts_gprs_ccn_active, + cfg_bts_gprs_ccn_active_cmd, + X(BSC_VTY_ATTR_RESTART_ABIS_RSL_LINK), + "gprs ccn-active (0|1|default)", + GPRS_TEXT + "Set CCN_ACTIVE in the GPRS Cell Options IE on the BCCH (SI13)\n" + "Disable\n" "Enable\n" "Default based on BTS type support\n") +{ + struct gsm_bts *bts = vty->index; + + bts->gprs.ccn.forced_vty = strcmp(argv[0], "default") != 0; + + if (bts->gprs.ccn.forced_vty) + bts->gprs.ccn.active = argv[0][0] == '1'; + + return CMD_SUCCESS; +} + DEFUN_USRATTR(cfg_no_bts_gprs_ctrl_ack, cfg_no_bts_gprs_ctrl_ack_cmd, X(BSC_VTY_ATTR_RESTART_ABIS_RSL_LINK), @@ -7637,6 +7658,7 @@ install_element(BTS_NODE, &cfg_bts_gprs_rac_cmd); install_element(BTS_NODE, &cfg_bts_gprs_net_ctrl_ord_cmd); install_element(BTS_NODE, &cfg_bts_gprs_ctrl_ack_cmd); + install_element(BTS_NODE, &cfg_bts_gprs_ccn_active_cmd); install_element(BTS_NODE, &cfg_no_bts_gprs_ctrl_ack_cmd); install_element(BTS_NODE, &cfg_bts_gprs_bvci_cmd); install_element(BTS_NODE, &cfg_bts_gprs_cell_timer_cmd); diff --git a/src/osmo-bsc/bts_sysmobts.c b/src/osmo-bsc/bts_sysmobts.c index e319f2c..f24c615 100644 --- a/src/osmo-bsc/bts_sysmobts.c +++ b/src/osmo-bsc/bts_sysmobts.c @@ -61,6 +61,7 @@ osmo_bts_set_feature(&model_sysmobts.features, BTS_FEAT_EGPRS); osmo_bts_set_feature(&model_sysmobts.features, BTS_FEAT_PAGING_COORDINATION); osmo_bts_set_feature(&model_sysmobts.features, BTS_FEAT_IPV6_NSVC); + osmo_bts_set_feature(&model_sysmobts.features, BTS_FEAT_CCN); model_sysmobts.nm_att_tlvdef.def[NM_ATT_OSMO_NS_LINK_CFG].type = TLV_TYPE_TL16V; diff --git a/src/osmo-bsc/system_information.c b/src/osmo-bsc/system_information.c index 10b0e4d..d018ec3 100644 --- a/src/osmo-bsc/system_information.c +++ b/src/osmo-bsc/system_information.c @@ -1206,6 +1206,7 @@ .pfc_supported = 0, .dtm_supported = 0, .bss_paging_coordination = 0, + .ccn_active = false, }, }, .pwr_ctrl_pars = { @@ -1255,6 +1256,11 @@ else si13_default.cell_opts.ext_info.bss_paging_coordination = 0; + si13_default.cell_opts.ext_info.ccn_active = bts->gprs.ccn.forced_vty ? + bts->gprs.ccn.active : + osmo_bts_has_feature(&bts->model->features, + BTS_FEAT_CCN); + ret = osmo_gsm48_rest_octets_si13_encode(si13->rest_octets, &si13_default); if (ret < 0) return ret; -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21714 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: If91d85331d402c3ab9c32b70c2c66cd7ba6ceb28 Gerrit-Change-Number: 21714 Gerrit-PatchSet: 6 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 30 19:16:59 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 30 Jan 2021 19:16:59 +0000 Subject: Change in osmo-ci[master]: OBS nightly: don't try to use UNKNOWN as version In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22533 ) Change subject: OBS nightly: don't try to use UNKNOWN as version ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22533 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I43c32f73bdfd715db5afdeec3bd8026d3c1fd8eb Gerrit-Change-Number: 22533 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 30 Jan 2021 19:16:59 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 30 19:17:01 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 30 Jan 2021 19:17:01 +0000 Subject: Change in osmo-ci[master]: OBS nightly: don't try to use UNKNOWN as version In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/22533 ) Change subject: OBS nightly: don't try to use UNKNOWN as version ...................................................................... OBS nightly: don't try to use UNKNOWN as version If the repository doesn't have a git tag yet, git-version-gen will set the version to UNKNOWN. The debian package build tools will choke on that, so fall back to using the version from debian/changelog. Related: OS#4992 (osmo-gbproxy.git doesn't have a tag just yet) Change-Id: I43c32f73bdfd715db5afdeec3bd8026d3c1fd8eb --- M scripts/osmocom-nightly-packages.sh 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: laforge: Looks good to me, but someone else must approve; Verified daniel: Looks good to me, approved diff --git a/scripts/osmocom-nightly-packages.sh b/scripts/osmocom-nightly-packages.sh index a6340d1..44f4a6e 100755 --- a/scripts/osmocom-nightly-packages.sh +++ b/scripts/osmocom-nightly-packages.sh @@ -70,7 +70,7 @@ version=$(echo "$version" | sed 's/-/./g' ) # deb version - if [ -z "$version" ] ; then + if [ -z "$version" ] || [ "$version" = "UNKNOWN" ]; then version=$(head -1 debian/changelog | cut -d ' ' -f 2 | sed 's,(,,' | sed 's,),,') version="$version.$DT" fi -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22533 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I43c32f73bdfd715db5afdeec3bd8026d3c1fd8eb Gerrit-Change-Number: 22533 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 30 19:17:49 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 30 Jan 2021 19:17:49 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Introduce test TC_nacc_outbound_success In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22387 ) Change subject: pcu: Introduce test TC_nacc_outbound_success ...................................................................... pcu: Introduce test TC_nacc_outbound_success Related: SYS#4909 Change-Id: I951db4af731e5a7c207f0f407dd78d166e2d3d26 --- M library/GSM_Types.ttcn M pcu/PCU_Tests.ttcn M pcu/gen_links.sh M pcu/osmo-pcu.cfg M pcu/regen_makefile.sh 5 files changed, 205 insertions(+), 3 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/library/GSM_Types.ttcn b/library/GSM_Types.ttcn index 6cc3c08..9710c26 100644 --- a/library/GSM_Types.ttcn +++ b/library/GSM_Types.ttcn @@ -415,6 +415,18 @@ type hexstring GsmBcdString with { variant "HEXORDER(low)" }; type GsmBcdString BcdMccMnc with { variant "FIELDLENGTH(6)" }; +/* Compute BcdMccMnc from integer values */ +function f_enc_BcdMccMnc(uint16_t mcc, uint16_t mnc, boolean mnc_3_digits) return BcdMccMnc { + var hexstring mcc_str, mnc_str; + mcc_str := str2hex(int2str(mcc)); + mnc_str := str2hex(int2str(mnc)); + if (mnc_3_digits == true) { + return mcc_str[0] & mcc_str[1] & mnc_str[2] & mcc_str[2] & mnc_str[0] & mnc_str[1]; + } else { + return mcc_str[0] & mcc_str[1] & mcc_str[2] & 'F'H & mnc_str[0] & mnc_str[1]; + } +} + /* 24.008 10.5.1.3 */ type record LocationAreaIdentification { BcdMccMnc mcc_mnc, diff --git a/pcu/PCU_Tests.ttcn b/pcu/PCU_Tests.ttcn index 7d569b1..1e542fa 100644 --- a/pcu/PCU_Tests.ttcn +++ b/pcu/PCU_Tests.ttcn @@ -56,6 +56,10 @@ import from StatsD_CodecPort_CtrlFunct all; import from StatsD_Checker all; +import from IPA_Emulation all; +import from Osmocom_CTRL_Adapter all; +import from Osmocom_CTRL_Functions all; + modulepar { charstring mp_pcu_sock_path := PCU_SOCK_DEFAULT; @@ -63,6 +67,9 @@ charstring mp_pcu_statsd_ip := "127.0.0.1"; integer mp_pcu_statsd_port := 8125; + + charstring mp_ctrl_neigh_ip := "127.0.0.1"; + integer mp_ctrl_neigh_port := 4248; } @@ -111,7 +118,7 @@ uint8_t high } -type component RAW_PCU_Test_CT extends bssgp_CT, MS_BTS_IFACE_CT, StatsD_ConnHdlr { +type component RAW_PCU_Test_CT extends bssgp_CT, MS_BTS_IFACE_CT, StatsD_ConnHdlr, CTRL_Adapter_CT { /* PCU interface abstraction component */ var RAW_PCUIF_CT vc_PCUIF; @@ -3566,6 +3573,184 @@ f_shutdown(__BFILE__, __LINE__, final := true); } +private function f_skip_dummy(integer max_num_iter) +runs on RAW_PCU_Test_CT return RlcmacDlBlock { + var RlcmacDlBlock dl_block; + var uint32_t sched_fn; + var integer i := 0; + while (true) { + f_rx_rlcmac_dl_block(dl_block, sched_fn); + if (not match(dl_block, tr_RLCMAC_DUMMY_CTRL())) { + break; + } + if (i > max_num_iter) { + setverdict(fail, "Rx unexpected DL block: ", dl_block); + f_shutdown(__BFILE__, __LINE__); + } + i := i + 1; + } + return dl_block; +} + +/* Handle groups of PKT NEIGHBOUR CELL DATA packets */ +private function f_handle_pkt_neighbor_cell_data(inout GprsMS ms, octetstring exp_si) +runs on RAW_PCU_Test_CT { + var RlcmacDlBlock dl_block; + var uint32_t sched_fn; + var integer i := 0; + var uint5_t exp_container_idx := 0; + var integer si_offset := 0; + var integer len; + var octetstring exp_si_chunk; + var GlobalTfi gtfi := { is_dl_tfi := false, tfi := ms.ul_tbf.tfi }; + + dl_block := f_skip_dummy(50); + + while (true) { + var template RlcmacDlCtrlMsg exp_msg; exp_msg := + tr_RlcMacDlCtrl_PKT_NEIGH_CELL_DATA(gtfi, exp_container_idx); + + /* Make sure last Dl block is a Pkt Neighbour Cell Data */ + if (not match(dl_block, tr_RLCMAC_DL_CTRL(?, exp_msg))) { + setverdict(fail, "Rx unexpected DL block: ", dl_block, " vs exp ", tr_RLCMAC_DL_CTRL(?, exp_msg)); + f_shutdown(__BFILE__, __LINE__); + } + var PacketNeighbourCellData neigh_data := dl_block.ctrl.payload.u.neighbour_cell_data; + var PacketNeighbourCellDataContainer cont := neigh_data.container_list[0]; + + if (cont.cd_length == 31) { /* continues on next message */ + len := lengthof(cont.container_data); + exp_si_chunk := substr(exp_si, si_offset, len); + if (cont.container_data != exp_si_chunk) { + setverdict(fail, "Rx unexpected SI chunk at offset ", si_offset, ": ", + cont.container_data, " vs exp ", exp_si_chunk); + f_shutdown(__BFILE__, __LINE__); + } + si_offset := si_offset + len; + } else if (cont.cd_length == 0) { + /* we are done */ + if (si_offset != lengthof(exp_si)) { + setverdict(fail, "Rx unexpectd SI length ", si_offset, + " vs exp ", lengthof(exp_si)); + f_shutdown(__BFILE__, __LINE__); + } + break; + } else { /* data length, last message */ + len := cont.cd_length; + exp_si_chunk := substr(exp_si, si_offset, len); + if (cont.container_data != exp_si_chunk) { + setverdict(fail, "Rx unexpected SI chunk at offset ", si_offset, ": ", + cont.container_data, " vs exp ", exp_si_chunk); + f_shutdown(__BFILE__, __LINE__); + return; + } + si_offset := si_offset + len; + /* we are done */ + if (si_offset != lengthof(exp_si)) { + setverdict(fail, "Rx unexpectd SI length ", si_offset, + " vs exp ", lengthof(exp_si)); + f_shutdown(__BFILE__, __LINE__); + } + break; + } + + exp_container_idx := exp_container_idx + 1; + f_rx_rlcmac_dl_block(dl_block, sched_fn); + } + return; +} + +/* Verify PCU handles outbound Network Assisted Cell Change Cell Change (NACC, TS 44.060 sec 8.8). */ +testcase TC_nacc_outbound_success() runs on RAW_PCU_Test_CT { + var RlcmacDlBlock dl_block; + var PollFnCtx pollctx; + var uint32_t sched_fn; + var GprsMS ms; + var template (value) RlcmacUlCtrlMsg cell_chf_notif; + var PCUIF_info_ind info_ind := valueof(ts_PCUIF_INFO_default); + var MultislotCap_GPRS mscap_gprs := { + gprsmultislotclass := '00011'B, + gprsextendeddynalloccap := '0'B + }; + var MSRadioAccessCapabilityV ms_racap := { valueof(ts_RaCapRec('0001'B /* E-GSM */, mscap_gprs, omit)) }; + var GsmArfcn req_arfcn := 862; + var uint6_t req_bsic := 43; + var BssgpCellId src := valueof(ts_BssgpCellId(ts_RAI(ts_LAI(f_enc_BcdMccMnc(info_ind.mcc, info_ind.mnc, info_ind.mnc_3_digits == 1), /* '262F42'H */ + info_ind.lac), + info_ind.rac), + info_ind.cell_id)); + var BssgpCellId dst := valueof(ts_BssgpCellId(ts_RAI(ts_LAI('023F43'H, /* Decided by test itself (emulating BSC) */ + 423), + 2), + 5)); + var template RIM_Routing_Address src_addr := t_RIM_Routing_Address_cid(src); + var template RIM_Routing_Address dst_addr := t_RIM_Routing_Address_cid(dst); + var octetstring si1 := '198fb100000000000000000000000000007900002b'O; + var octetstring si3 := '1b753000f110236ec9033c2747407900003c0b2b2b'O; + var octetstring si13 := '009000185a6fc9e08410ab2b2b2b2b2b2b2b2b2b2b'O; + var octetstring si := si1 & si3 & si13; + var template RAN_Information_RIM_Container res_cont; + res_cont := ts_RAN_Information_RIM_Container(ts_RIM_Application_Identity(RIM_APP_ID_NACC), + ts_RIM_Sequence_Number(2), + ts_RIM_PDU_Indications(false, RIM_PDU_TYPE_SING_REP), + ts_RIM_Protocol_Version_Number(1), + tsu_ApplContainer_or_ApplErrContainer_NACC(tsu_ApplContainer_NACC(dst, false, 3, si)), + omit); + + /* Initialize osmo-bsc emulation neighbor resolution CTRL port */ + f_ipa_ctrl_start_server(mp_ctrl_neigh_ip, mp_ctrl_neigh_port); + + /* Initialize NS/BSSGP side */ + f_init_bssgp(); + /* Initialize GPRS MS side */ + f_init_gprs_ms(); + ms := g_ms[0]; /* We only use first MS in this test */ + + /* Initialize the PCU interface abstraction */ + f_init_raw(testcasename(), info_ind); + + /* Establish BSSGP connection to the PCU */ + f_bssgp_establish(); + f_bssgp_client_llgmm_assign(TLLI_UNUSED, ms.tlli); + + /* Send PACKET RESOURCE REQUEST */ + pollctx := f_ms_establish_ul_tbf_2phase_access(ms, ts_RlcMacUlCtrl_PKT_RES_REQ(ms.tlli, ms_racap)); + /* Pkt Uplink Assignment above sets poll+rrbp requesting PACKET CONTROL ACK */ + f_ms_tx_ul_block(ms, ts_RLCMAC_CTRL_ACK(ms.tlli), pollctx.fn, nr := pollctx.tstrxbts); + + /* Start NACC from MS side */ + cell_chf_notif := ts_RlcMacUlCtrl_PKT_CELL_CHG_NOTIF(ms.ul_tbf.tfi, req_arfcn, req_bsic); + f_ms_tx_ul_block(ms, ts_RLC_UL_CTRL_ACK(cell_chf_notif), 0, nr := f_ms_tx_TsTrxBtsNum(ms)); + + /* osmo-pcu should now ask for resolution: */ + f_ipa_ctrl_wait_link_up(); + var charstring ctrl_var := "neighbor_resolve_cgi_ps_from_lac_ci." & + int2str(info_ind.lac) & "." & + int2str(info_ind.cell_id) & "." & + int2str(req_arfcn) & "." & + int2str(req_bsic); + f_ctrl_exp_get(IPA_CTRL, ctrl_var, "023-43-423-2-5"); + + /* RIM procedure: */ + RIM.receive(tr_RAN_INFORMATION_REQUEST(tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, dst_addr), + tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, src_addr), + tr_RAN_Information_Request_RIM_Container)); + RIM.send(ts_PDU_BSSGP_RAN_INFORMATION(ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, src_addr), + ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, dst_addr), + res_cont)); + + /* Announce SI back to MS, continue NACC procedure */ + f_handle_pkt_neighbor_cell_data(ms, si); + + /* Obtain a Downlink block and make sure it is a Pkt Cell Chg Continue */ + f_rx_rlcmac_dl_block(dl_block, sched_fn); + if (not match(dl_block, tr_RLCMAC_DL_CTRL(?, tr_RlcMacDlCtrl_PKT_CELL_CHG_CONTINUE))) { + setverdict(fail, "Rx unexpected DL block: ", dl_block); + } + + f_shutdown(__BFILE__, __LINE__, final := true); +} + control { execute( TC_pcuif_suspend() ); execute( TC_pcuif_suspend_active_tbf() ); @@ -3639,6 +3824,7 @@ execute( TC_multiplex_dl_gprs_egprs() ); execute( TC_pcuif_info_ind_subsequent() ); + execute( TC_nacc_outbound_success() ); } } diff --git a/pcu/gen_links.sh b/pcu/gen_links.sh index 2e581d9..98a9ff3 100755 --- a/pcu/gen_links.sh +++ b/pcu/gen_links.sh @@ -55,6 +55,9 @@ FILES+="BSSGP_Emulation.ttcnpp Osmocom_Gb_Types.ttcn " FILES+="LLC_Templates.ttcn L3_Templates.ttcn L3_Common.ttcn " FILES+="PCUIF_Types.ttcn PCUIF_CodecPort.ttcn RAW_NS.ttcnpp " +# IPA_Emulation + dependencies +FILES+="IPA_Types.ttcn IPA_Emulation.ttcnpp IPA_CodecPort.ttcn IPA_CodecPort_CtrlFunct.ttcn IPA_CodecPort_CtrlFunctDef.cc " +FILES+="Osmocom_CTRL_Types.ttcn Osmocom_CTRL_Functions.ttcn Osmocom_CTRL_Adapter.ttcn " gen_links $DIR $FILES ignore_pp_results diff --git a/pcu/osmo-pcu.cfg b/pcu/osmo-pcu.cfg index 12dc577..892dd79 100644 --- a/pcu/osmo-pcu.cfg +++ b/pcu/osmo-pcu.cfg @@ -30,3 +30,4 @@ alpha 0 gamma 0 pcu-socket /tmp/pcu_bts + neighbor resolution 127.0.0.1 diff --git a/pcu/regen_makefile.sh b/pcu/regen_makefile.sh index ca51452..8bb0598 100755 --- a/pcu/regen_makefile.sh +++ b/pcu/regen_makefile.sh @@ -1,7 +1,7 @@ #!/bin/sh -FILES="*.ttcn *.ttcnpp BSSGP_EncDec.cc IPL4asp_PT.cc IPL4asp_discovery.cc TCCConversion.cc TCCInterface.cc UD_PT.cc RLCMAC_EncDec.cc LLC_EncDec.cc TELNETasp_PT.cc Native_FunctionDefs.cc StatsD_CodecPort_CtrlFunctdef.cc" +FILES="*.ttcn *.ttcnpp BSSGP_EncDec.cc IPL4asp_PT.cc IPL4asp_discovery.cc TCCConversion.cc TCCInterface.cc UD_PT.cc RLCMAC_EncDec.cc LLC_EncDec.cc TELNETasp_PT.cc IPA_CodecPort_CtrlFunctDef.cc Native_FunctionDefs.cc StatsD_CodecPort_CtrlFunctdef.cc" -export CPPFLAGS_TTCN3="-DBSSGP_EM_L3" +export CPPFLAGS_TTCN3="-DIPA_EMULATION_CTRL -DBSSGP_EM_L3" ../regen-makefile.sh PCU_Tests.ttcn $FILES -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22387 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I951db4af731e5a7c207f0f407dd78d166e2d3d26 Gerrit-Change-Number: 22387 Gerrit-PatchSet: 5 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 30 19:17:49 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 30 Jan 2021 19:17:49 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Introduce test TC_nacc_outbound_rac_ci_resolve_timeout In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22452 ) Change subject: pcu: Introduce test TC_nacc_outbound_rac_ci_resolve_timeout ...................................................................... pcu: Introduce test TC_nacc_outbound_rac_ci_resolve_timeout Related: SYS#4909 Change-Id: Ia09fbfe9aba34a51e0715d1c307de280e3ae0249 --- M pcu/PCU_Tests.ttcn 1 file changed, 63 insertions(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/pcu/PCU_Tests.ttcn b/pcu/PCU_Tests.ttcn index 1e542fa..5a7f58b 100644 --- a/pcu/PCU_Tests.ttcn +++ b/pcu/PCU_Tests.ttcn @@ -3583,7 +3583,7 @@ if (not match(dl_block, tr_RLCMAC_DUMMY_CTRL())) { break; } - if (i > max_num_iter) { + if (max_num_iter > 0 and i > max_num_iter) { setverdict(fail, "Rx unexpected DL block: ", dl_block); f_shutdown(__BFILE__, __LINE__); } @@ -3751,6 +3751,67 @@ f_shutdown(__BFILE__, __LINE__, final := true); } +/* Verify PCU transmits Pkt Cell Change Continue if RAC+CI resolution fails during outbound NACC procedure */ +testcase TC_nacc_outbound_rac_ci_resolve_timeout() runs on RAW_PCU_Test_CT { + var RlcmacDlBlock dl_block; + var PollFnCtx pollctx; + var uint32_t sched_fn; + var GprsMS ms; + var template (value) RlcmacUlCtrlMsg cell_chf_notif; + var PCUIF_info_ind info_ind := valueof(ts_PCUIF_INFO_default); + var MultislotCap_GPRS mscap_gprs := { + gprsmultislotclass := '00011'B, + gprsextendeddynalloccap := '0'B + }; + var MSRadioAccessCapabilityV ms_racap := { valueof(ts_RaCapRec('0001'B /* E-GSM */, mscap_gprs, omit)) }; + var GsmArfcn req_arfcn := 862; + var uint6_t req_bsic := 43; + + /* Initialize osmo-bsc emulation neighbor resolution CTRL port */ + f_ipa_ctrl_start_server(mp_ctrl_neigh_ip, mp_ctrl_neigh_port); + + /* Initialize NS/BSSGP side */ + f_init_bssgp(); + /* Initialize GPRS MS side */ + f_init_gprs_ms(); + ms := g_ms[0]; /* We only use first MS in this test */ + + /* Initialize the PCU interface abstraction */ + f_init_raw(testcasename(), info_ind); + + /* Establish BSSGP connection to the PCU */ + f_bssgp_establish(); + f_bssgp_client_llgmm_assign(TLLI_UNUSED, ms.tlli); + + /* Send PACKET RESOURCE REQUEST */ + pollctx := f_ms_establish_ul_tbf_2phase_access(ms, ts_RlcMacUlCtrl_PKT_RES_REQ(ms.tlli, ms_racap)); + /* Pkt Uplink Assignment above sets poll+rrbp requesting PACKET CONTROL ACK */ + f_ms_tx_ul_block(ms, ts_RLCMAC_CTRL_ACK(ms.tlli), pollctx.fn, nr := pollctx.tstrxbts); + + /* Start NACC from MS side */ + cell_chf_notif := ts_RlcMacUlCtrl_PKT_CELL_CHG_NOTIF(ms.ul_tbf.tfi, req_arfcn, req_bsic); + f_ms_tx_ul_block(ms, ts_RLC_UL_CTRL_ACK(cell_chf_notif), 0, nr := f_ms_tx_TsTrxBtsNum(ms)); + + /* osmo-pcu should now ask for resolution: */ + f_ipa_ctrl_wait_link_up(); + var charstring ctrl_var := "neighbor_resolve_cgi_ps_from_lac_ci." & + int2str(info_ind.lac) & "." & + int2str(info_ind.cell_id) & "." & + int2str(req_arfcn) & "." & + int2str(req_bsic); + /* we receive RAC+CI resolution request, but we never answer to it, timeout should occur */ + f_ctrl_exp_get(IPA_CTRL, ctrl_var, omit); + + /* Wait until we receive something non-dummy */ + dl_block := f_skip_dummy(0); + /* Make sure it is a Pkt Cell Chg Continue */ + if (not match(dl_block, tr_RLCMAC_DL_CTRL(?, tr_RlcMacDlCtrl_PKT_CELL_CHG_CONTINUE))) { + setverdict(fail, "Rx unexpected DL block: ", dl_block); + } + + f_shutdown(__BFILE__, __LINE__, final := true); +} + control { execute( TC_pcuif_suspend() ); execute( TC_pcuif_suspend_active_tbf() ); @@ -3825,6 +3886,7 @@ execute( TC_pcuif_info_ind_subsequent() ); execute( TC_nacc_outbound_success() ); + execute( TC_nacc_outbound_rac_ci_resolve_timeout() ); } } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22452 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ia09fbfe9aba34a51e0715d1c307de280e3ae0249 Gerrit-Change-Number: 22452 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 30 19:17:50 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 30 Jan 2021 19:17:50 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Introduce test TC_nacc_outbound_si_resolve_timeout In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22453 ) Change subject: pcu: Introduce test TC_nacc_outbound_si_resolve_timeout ...................................................................... pcu: Introduce test TC_nacc_outbound_si_resolve_timeout Related: SYS#4909 Change-Id: If0032b940685efaaa8f65357c56c3383fab3e283 --- M pcu/PCU_Tests.ttcn 1 file changed, 77 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/pcu/PCU_Tests.ttcn b/pcu/PCU_Tests.ttcn index 5a7f58b..e59a3c9 100644 --- a/pcu/PCU_Tests.ttcn +++ b/pcu/PCU_Tests.ttcn @@ -3812,6 +3812,82 @@ f_shutdown(__BFILE__, __LINE__, final := true); } +/* Verify PCU transmits Pkt Cell Change Continue if SI resolution fails during outbound NACC procedure */ +testcase TC_nacc_outbound_si_resolve_timeout() runs on RAW_PCU_Test_CT { + var RlcmacDlBlock dl_block; + var PollFnCtx pollctx; + var uint32_t sched_fn; + var GprsMS ms; + var template (value) RlcmacUlCtrlMsg cell_chf_notif; + var PCUIF_info_ind info_ind := valueof(ts_PCUIF_INFO_default); + var MultislotCap_GPRS mscap_gprs := { + gprsmultislotclass := '00011'B, + gprsextendeddynalloccap := '0'B + }; + var MSRadioAccessCapabilityV ms_racap := { valueof(ts_RaCapRec('0001'B /* E-GSM */, mscap_gprs, omit)) }; + var GsmArfcn req_arfcn := 862; + var uint6_t req_bsic := 43; + var BssgpCellId src := valueof(ts_BssgpCellId(ts_RAI(ts_LAI(f_enc_BcdMccMnc(info_ind.mcc, info_ind.mnc, info_ind.mnc_3_digits == 1), /* '262F42'H */ + info_ind.lac), + info_ind.rac), + info_ind.cell_id)); + var BssgpCellId dst := valueof(ts_BssgpCellId(ts_RAI(ts_LAI('023F43'H, /* Decided by test itself (emulating BSC) */ + 423), + 2), + 5)); + var template RIM_Routing_Address src_addr := t_RIM_Routing_Address_cid(src); + var template RIM_Routing_Address dst_addr := t_RIM_Routing_Address_cid(dst); + + /* Initialize osmo-bsc emulation neighbor resolution CTRL port */ + f_ipa_ctrl_start_server(mp_ctrl_neigh_ip, mp_ctrl_neigh_port); + + /* Initialize NS/BSSGP side */ + f_init_bssgp(); + /* Initialize GPRS MS side */ + f_init_gprs_ms(); + ms := g_ms[0]; /* We only use first MS in this test */ + + /* Initialize the PCU interface abstraction */ + f_init_raw(testcasename(), info_ind); + + /* Establish BSSGP connection to the PCU */ + f_bssgp_establish(); + f_bssgp_client_llgmm_assign(TLLI_UNUSED, ms.tlli); + + /* Send PACKET RESOURCE REQUEST */ + pollctx := f_ms_establish_ul_tbf_2phase_access(ms, ts_RlcMacUlCtrl_PKT_RES_REQ(ms.tlli, ms_racap)); + /* Pkt Uplink Assignment above sets poll+rrbp requesting PACKET CONTROL ACK */ + f_ms_tx_ul_block(ms, ts_RLCMAC_CTRL_ACK(ms.tlli), pollctx.fn, nr := pollctx.tstrxbts); + + /* Start NACC from MS side */ + cell_chf_notif := ts_RlcMacUlCtrl_PKT_CELL_CHG_NOTIF(ms.ul_tbf.tfi, req_arfcn, req_bsic); + f_ms_tx_ul_block(ms, ts_RLC_UL_CTRL_ACK(cell_chf_notif), 0, nr := f_ms_tx_TsTrxBtsNum(ms)); + + /* osmo-pcu should now ask for resolution: */ + f_ipa_ctrl_wait_link_up(); + var charstring ctrl_var := "neighbor_resolve_cgi_ps_from_lac_ci." & + int2str(info_ind.lac) & "." & + int2str(info_ind.cell_id) & "." & + int2str(req_arfcn) & "." & + int2str(req_bsic); + f_ctrl_exp_get(IPA_CTRL, ctrl_var, "023-43-423-2-5"); + + /* RIM procedure: */ + RIM.receive(tr_RAN_INFORMATION_REQUEST(tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, dst_addr), + tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, src_addr), + tr_RAN_Information_Request_RIM_Container)); + /* We never answer the RIM procude -> PCU timeouts and should send Pkt Cell Chg continue */ + + /* Wait until we receive something non-dummy */ + dl_block := f_skip_dummy(0); + /* Make sure it is a Pkt Cell Chg Continue */ + if (not match(dl_block, tr_RLCMAC_DL_CTRL(?, tr_RlcMacDlCtrl_PKT_CELL_CHG_CONTINUE))) { + setverdict(fail, "Rx unexpected DL block: ", dl_block); + } + + f_shutdown(__BFILE__, __LINE__, final := true); +} + control { execute( TC_pcuif_suspend() ); execute( TC_pcuif_suspend_active_tbf() ); @@ -3887,6 +3963,7 @@ execute( TC_pcuif_info_ind_subsequent() ); execute( TC_nacc_outbound_success() ); execute( TC_nacc_outbound_rac_ci_resolve_timeout() ); + execute( TC_nacc_outbound_si_resolve_timeout() ); } } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22453 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If0032b940685efaaa8f65357c56c3383fab3e283 Gerrit-Change-Number: 22453 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 30 19:17:50 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 30 Jan 2021 19:17:50 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Introduce test TC_nacc_outbound_rac_ci_resolve_fail_parse_response In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22454 ) Change subject: pcu: Introduce test TC_nacc_outbound_rac_ci_resolve_fail_parse_response ...................................................................... pcu: Introduce test TC_nacc_outbound_rac_ci_resolve_fail_parse_response Related: SYS#4909 Change-Id: If7efddb1ae2ccb580fe85c8df45c9ccdb818c6f3 --- M pcu/PCU_Tests.ttcn 1 file changed, 62 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/pcu/PCU_Tests.ttcn b/pcu/PCU_Tests.ttcn index e59a3c9..9b17f6f 100644 --- a/pcu/PCU_Tests.ttcn +++ b/pcu/PCU_Tests.ttcn @@ -3812,6 +3812,67 @@ f_shutdown(__BFILE__, __LINE__, final := true); } +/* Verify PCU transmits Pkt Cell Change Continue if RAC+CI resolution fails during outbound NACC procedure */ +testcase TC_nacc_outbound_rac_ci_resolve_fail_parse_response() runs on RAW_PCU_Test_CT { + var RlcmacDlBlock dl_block; + var PollFnCtx pollctx; + var uint32_t sched_fn; + var GprsMS ms; + var template (value) RlcmacUlCtrlMsg cell_chf_notif; + var PCUIF_info_ind info_ind := valueof(ts_PCUIF_INFO_default); + var MultislotCap_GPRS mscap_gprs := { + gprsmultislotclass := '00011'B, + gprsextendeddynalloccap := '0'B + }; + var MSRadioAccessCapabilityV ms_racap := { valueof(ts_RaCapRec('0001'B /* E-GSM */, mscap_gprs, omit)) }; + var GsmArfcn req_arfcn := 862; + var uint6_t req_bsic := 43; + + /* Initialize osmo-bsc emulation neighbor resolution CTRL port */ + f_ipa_ctrl_start_server(mp_ctrl_neigh_ip, mp_ctrl_neigh_port); + + /* Initialize NS/BSSGP side */ + f_init_bssgp(); + /* Initialize GPRS MS side */ + f_init_gprs_ms(); + ms := g_ms[0]; /* We only use first MS in this test */ + + /* Initialize the PCU interface abstraction */ + f_init_raw(testcasename(), info_ind); + + /* Establish BSSGP connection to the PCU */ + f_bssgp_establish(); + f_bssgp_client_llgmm_assign(TLLI_UNUSED, ms.tlli); + + /* Send PACKET RESOURCE REQUEST */ + pollctx := f_ms_establish_ul_tbf_2phase_access(ms, ts_RlcMacUlCtrl_PKT_RES_REQ(ms.tlli, ms_racap)); + /* Pkt Uplink Assignment above sets poll+rrbp requesting PACKET CONTROL ACK */ + f_ms_tx_ul_block(ms, ts_RLCMAC_CTRL_ACK(ms.tlli), pollctx.fn, nr := pollctx.tstrxbts); + + /* Start NACC from MS side */ + cell_chf_notif := ts_RlcMacUlCtrl_PKT_CELL_CHG_NOTIF(ms.ul_tbf.tfi, req_arfcn, req_bsic); + f_ms_tx_ul_block(ms, ts_RLC_UL_CTRL_ACK(cell_chf_notif), 0, nr := f_ms_tx_TsTrxBtsNum(ms)); + + /* osmo-pcu should now ask for resolution: */ + f_ipa_ctrl_wait_link_up(); + var charstring ctrl_var := "neighbor_resolve_cgi_ps_from_lac_ci." & + int2str(info_ind.lac) & "." & + int2str(info_ind.cell_id) & "." & + int2str(req_arfcn) & "." & + int2str(req_bsic); + /* we receive RAC+CI resolution request and we send incorrectlt formated response */ + f_ctrl_exp_get(IPA_CTRL, ctrl_var, "foobar-error"); + + /* Wait until we receive something non-dummy */ + dl_block := f_skip_dummy(0); + /* Make sure it is a Pkt Cell Chg Continue */ + if (not match(dl_block, tr_RLCMAC_DL_CTRL(?, tr_RlcMacDlCtrl_PKT_CELL_CHG_CONTINUE))) { + setverdict(fail, "Rx unexpected DL block: ", dl_block); + } + + f_shutdown(__BFILE__, __LINE__, final := true); +} + /* Verify PCU transmits Pkt Cell Change Continue if SI resolution fails during outbound NACC procedure */ testcase TC_nacc_outbound_si_resolve_timeout() runs on RAW_PCU_Test_CT { var RlcmacDlBlock dl_block; @@ -3963,6 +4024,7 @@ execute( TC_pcuif_info_ind_subsequent() ); execute( TC_nacc_outbound_success() ); execute( TC_nacc_outbound_rac_ci_resolve_timeout() ); + execute( TC_nacc_outbound_rac_ci_resolve_fail_parse_response() ); execute( TC_nacc_outbound_si_resolve_timeout() ); } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22454 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If7efddb1ae2ccb580fe85c8df45c9ccdb818c6f3 Gerrit-Change-Number: 22454 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 30 19:17:50 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 30 Jan 2021 19:17:50 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Introduce test TC_nacc_outbound_success_twice In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22487 ) Change subject: pcu: Introduce test TC_nacc_outbound_success_twice ...................................................................... pcu: Introduce test TC_nacc_outbound_success_twice Change-Id: Ia7b1584b3f7abfa2697a1f155c8b7788a3b0722e --- M pcu/PCU_Tests.ttcn 1 file changed, 145 insertions(+), 50 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/pcu/PCU_Tests.ttcn b/pcu/PCU_Tests.ttcn index 9b17f6f..316ab65 100644 --- a/pcu/PCU_Tests.ttcn +++ b/pcu/PCU_Tests.ttcn @@ -112,6 +112,12 @@ f_PCUIF_AF2addr_type(mp_nsconfig.nsvc[0].provider.ip.address_family), mp_nsconfig.nsvc[0].provider.ip.local_ip) } +/* Passed in RAN-INFO message from emulated neighbor using RIM */ +const octetstring si1_default := '198fb100000000000000000000000000007900002b'O; +const octetstring si3_default := '1b753000f110236ec9033c2747407900003c0b2b2b'O; +const octetstring si13_default := '009000185a6fc9e08410ab2b2b2b2b2b2b2b2b2b2b'O; +const octetstring si_default := si1_default & si3_default & si13_default; + type record lqual_range { /* component reference to the IPA_Client component used for RSL */ uint8_t low, @@ -197,6 +203,24 @@ f_vty_config2(PCUVTY, {"pcu"}, cmd); } +private function f_pcuvty_flush_neigh_caches() runs on RAW_PCU_Test_CT { + f_pcuvty_set_neigh_caches(0, 0); +} + +private function f_pcuvty_set_neigh_caches(integer neigh_cache_secs := -1, integer si_cache_secs := -1) +runs on RAW_PCU_Test_CT { + if (neigh_cache_secs == -1) { + f_vty_config2(PCUVTY, {"pcu"}, "timer X10 default"); + } else { + f_vty_config2(PCUVTY, {"pcu"}, "timer X10 " & int2str(neigh_cache_secs)); + } + if (si_cache_secs == -1) { + f_vty_config2(PCUVTY, {"pcu"}, "timer X11 default"); + } else { + f_vty_config2(PCUVTY, {"pcu"}, "timer X11 " & int2str(si_cache_secs)); + } +} + private function f_init_vty(charstring id, boolean egprs_only) runs on RAW_PCU_Test_CT { map(self:PCUVTY, system:PCUVTY); f_vty_set_prompts(PCUVTY); @@ -3660,42 +3684,80 @@ return; } +/* Start NACC from MS side */ +private function f_outbound_nacc_success(inout GprsMS ms, PCUIF_info_ind info_ind, + boolean exp_rac_ci_query := true, boolean exp_si_query := true) +runs on RAW_PCU_Test_CT { + var template (value) RlcmacUlCtrlMsg cell_chf_notif; + var RlcmacDlBlock dl_block; + var uint32_t sched_fn; + var GsmArfcn req_arfcn := 862; + var uint6_t req_bsic := 43; + + /* Start NACC from MS side */ + cell_chf_notif := ts_RlcMacUlCtrl_PKT_CELL_CHG_NOTIF(ms.ul_tbf.tfi, req_arfcn, req_bsic); + f_ms_tx_ul_block(ms, ts_RLC_UL_CTRL_ACK(cell_chf_notif), 0, nr := f_ms_tx_TsTrxBtsNum(ms)); + + if (exp_rac_ci_query == true) { + /* osmo-pcu should now ask for resolution: */ + f_ipa_ctrl_wait_link_up(); + var charstring ctrl_var := "neighbor_resolve_cgi_ps_from_lac_ci." & + int2str(info_ind.lac) & "." & + int2str(info_ind.cell_id) & "." & + int2str(req_arfcn) & "." & + int2str(req_bsic); + f_ctrl_exp_get(IPA_CTRL, ctrl_var, "023-43-423-2-5"); + } + + if (exp_si_query == true) { + /* RIM procedure: */ + var BssgpCellId src := valueof(ts_BssgpCellId(ts_RAI(ts_LAI(f_enc_BcdMccMnc(info_ind.mcc, info_ind.mnc, info_ind.mnc_3_digits == 1), /* '262F42'H */ + info_ind.lac), + info_ind.rac), + info_ind.cell_id)); + var BssgpCellId dst := valueof(ts_BssgpCellId(ts_RAI(ts_LAI('023F43'H, /* Decided by test itself (emulating BSC) */ + 423), + 2), + 5)); + var template RIM_Routing_Address src_addr := t_RIM_Routing_Address_cid(src); + var template RIM_Routing_Address dst_addr := t_RIM_Routing_Address_cid(dst); + var template RAN_Information_RIM_Container res_cont; + res_cont := ts_RAN_Information_RIM_Container(ts_RIM_Application_Identity(RIM_APP_ID_NACC), + ts_RIM_Sequence_Number(2), + ts_RIM_PDU_Indications(false, RIM_PDU_TYPE_SING_REP), + ts_RIM_Protocol_Version_Number(1), + tsu_ApplContainer_or_ApplErrContainer_NACC(tsu_ApplContainer_NACC(dst, false, 3, si_default)), + omit); + RIM.receive(tr_RAN_INFORMATION_REQUEST(tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, dst_addr), + tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, src_addr), + tr_RAN_Information_Request_RIM_Container)); + RIM.send(ts_PDU_BSSGP_RAN_INFORMATION(ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, src_addr), + ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, dst_addr), + res_cont)); + } + + /* Announce SI back to MS, continue NACC procedure */ + f_handle_pkt_neighbor_cell_data(ms, si_default); + + /* Obtain a Downlink block and make sure it is a Pkt Cell Chg Continue */ + f_rx_rlcmac_dl_block(dl_block, sched_fn); + if (not match(dl_block, tr_RLCMAC_DL_CTRL(?, tr_RlcMacDlCtrl_PKT_CELL_CHG_CONTINUE))) { + setverdict(fail, "Rx unexpected DL block: ", dl_block); + f_shutdown(__BFILE__, __LINE__); + } + +} + /* Verify PCU handles outbound Network Assisted Cell Change Cell Change (NACC, TS 44.060 sec 8.8). */ testcase TC_nacc_outbound_success() runs on RAW_PCU_Test_CT { - var RlcmacDlBlock dl_block; var PollFnCtx pollctx; - var uint32_t sched_fn; var GprsMS ms; - var template (value) RlcmacUlCtrlMsg cell_chf_notif; var PCUIF_info_ind info_ind := valueof(ts_PCUIF_INFO_default); var MultislotCap_GPRS mscap_gprs := { gprsmultislotclass := '00011'B, gprsextendeddynalloccap := '0'B }; var MSRadioAccessCapabilityV ms_racap := { valueof(ts_RaCapRec('0001'B /* E-GSM */, mscap_gprs, omit)) }; - var GsmArfcn req_arfcn := 862; - var uint6_t req_bsic := 43; - var BssgpCellId src := valueof(ts_BssgpCellId(ts_RAI(ts_LAI(f_enc_BcdMccMnc(info_ind.mcc, info_ind.mnc, info_ind.mnc_3_digits == 1), /* '262F42'H */ - info_ind.lac), - info_ind.rac), - info_ind.cell_id)); - var BssgpCellId dst := valueof(ts_BssgpCellId(ts_RAI(ts_LAI('023F43'H, /* Decided by test itself (emulating BSC) */ - 423), - 2), - 5)); - var template RIM_Routing_Address src_addr := t_RIM_Routing_Address_cid(src); - var template RIM_Routing_Address dst_addr := t_RIM_Routing_Address_cid(dst); - var octetstring si1 := '198fb100000000000000000000000000007900002b'O; - var octetstring si3 := '1b753000f110236ec9033c2747407900003c0b2b2b'O; - var octetstring si13 := '009000185a6fc9e08410ab2b2b2b2b2b2b2b2b2b2b'O; - var octetstring si := si1 & si3 & si13; - var template RAN_Information_RIM_Container res_cont; - res_cont := ts_RAN_Information_RIM_Container(ts_RIM_Application_Identity(RIM_APP_ID_NACC), - ts_RIM_Sequence_Number(2), - ts_RIM_PDU_Indications(false, RIM_PDU_TYPE_SING_REP), - ts_RIM_Protocol_Version_Number(1), - tsu_ApplContainer_or_ApplErrContainer_NACC(tsu_ApplContainer_NACC(dst, false, 3, si)), - omit); /* Initialize osmo-bsc emulation neighbor resolution CTRL port */ f_ipa_ctrl_start_server(mp_ctrl_neigh_ip, mp_ctrl_neigh_port); @@ -3709,6 +3771,9 @@ /* Initialize the PCU interface abstraction */ f_init_raw(testcasename(), info_ind); + /* Make sure we are not affected by full cache from previous tests */ + f_pcuvty_flush_neigh_caches(); + /* Establish BSSGP connection to the PCU */ f_bssgp_establish(); f_bssgp_client_llgmm_assign(TLLI_UNUSED, ms.tlli); @@ -3719,34 +3784,54 @@ f_ms_tx_ul_block(ms, ts_RLCMAC_CTRL_ACK(ms.tlli), pollctx.fn, nr := pollctx.tstrxbts); /* Start NACC from MS side */ - cell_chf_notif := ts_RlcMacUlCtrl_PKT_CELL_CHG_NOTIF(ms.ul_tbf.tfi, req_arfcn, req_bsic); - f_ms_tx_ul_block(ms, ts_RLC_UL_CTRL_ACK(cell_chf_notif), 0, nr := f_ms_tx_TsTrxBtsNum(ms)); + f_outbound_nacc_success(ms, info_ind); - /* osmo-pcu should now ask for resolution: */ - f_ipa_ctrl_wait_link_up(); - var charstring ctrl_var := "neighbor_resolve_cgi_ps_from_lac_ci." & - int2str(info_ind.lac) & "." & - int2str(info_ind.cell_id) & "." & - int2str(req_arfcn) & "." & - int2str(req_bsic); - f_ctrl_exp_get(IPA_CTRL, ctrl_var, "023-43-423-2-5"); + f_shutdown(__BFILE__, __LINE__, final := true); +} - /* RIM procedure: */ - RIM.receive(tr_RAN_INFORMATION_REQUEST(tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, dst_addr), - tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, src_addr), - tr_RAN_Information_Request_RIM_Container)); - RIM.send(ts_PDU_BSSGP_RAN_INFORMATION(ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, src_addr), - ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, dst_addr), - res_cont)); +/* Verify PCU handles outbound Network Assisted Cell Change Cell Change (NACC, TS 44.060 sec 8.8) twice, the second time using the caches */ +testcase TC_nacc_outbound_success_twice() runs on RAW_PCU_Test_CT { + var PollFnCtx pollctx; + var GprsMS ms; + var PCUIF_info_ind info_ind := valueof(ts_PCUIF_INFO_default); + var MultislotCap_GPRS mscap_gprs := { + gprsmultislotclass := '00011'B, + gprsextendeddynalloccap := '0'B + }; + var MSRadioAccessCapabilityV ms_racap := { valueof(ts_RaCapRec('0001'B /* E-GSM */, mscap_gprs, omit)) }; + var template (value) RlcmacUlCtrlMsg cell_chf_notif; - /* Announce SI back to MS, continue NACC procedure */ - f_handle_pkt_neighbor_cell_data(ms, si); + /* Initialize osmo-bsc emulation neighbor resolution CTRL port */ + f_ipa_ctrl_start_server(mp_ctrl_neigh_ip, mp_ctrl_neigh_port); - /* Obtain a Downlink block and make sure it is a Pkt Cell Chg Continue */ - f_rx_rlcmac_dl_block(dl_block, sched_fn); - if (not match(dl_block, tr_RLCMAC_DL_CTRL(?, tr_RlcMacDlCtrl_PKT_CELL_CHG_CONTINUE))) { - setverdict(fail, "Rx unexpected DL block: ", dl_block); - } + /* Initialize NS/BSSGP side */ + f_init_bssgp(); + /* Initialize GPRS MS side */ + f_init_gprs_ms(); + ms := g_ms[0]; /* We only use first MS in this test */ + + /* Initialize the PCU interface abstraction */ + f_init_raw(testcasename(), info_ind); + + /* Make sure we are not affected by full cache from previous tests */ + f_pcuvty_flush_neigh_caches(); + /* Set timeout values for caches so that entries will be in cache during second try */ + f_pcuvty_set_neigh_caches(10, 10); + + /* Establish BSSGP connection to the PCU */ + f_bssgp_establish(); + f_bssgp_client_llgmm_assign(TLLI_UNUSED, ms.tlli); + + /* Send PACKET RESOURCE REQUEST */ + pollctx := f_ms_establish_ul_tbf_2phase_access(ms, ts_RlcMacUlCtrl_PKT_RES_REQ(ms.tlli, ms_racap)); + /* Pkt Uplink Assignment above sets poll+rrbp requesting PACKET CONTROL ACK */ + f_ms_tx_ul_block(ms, ts_RLCMAC_CTRL_ACK(ms.tlli), pollctx.fn, nr := pollctx.tstrxbts); + + /* Start NACC from MS side */ + f_outbound_nacc_success(ms, info_ind); + + /* First NACC procedure is done, let's try to start a new one now that previous queries are cached: */ + f_outbound_nacc_success(ms, info_ind, false, false); f_shutdown(__BFILE__, __LINE__, final := true); } @@ -3779,6 +3864,9 @@ /* Initialize the PCU interface abstraction */ f_init_raw(testcasename(), info_ind); + /* Make sure we are not affected by full cache from previous tests */ + f_pcuvty_flush_neigh_caches(); + /* Establish BSSGP connection to the PCU */ f_bssgp_establish(); f_bssgp_client_llgmm_assign(TLLI_UNUSED, ms.tlli); @@ -3840,6 +3928,9 @@ /* Initialize the PCU interface abstraction */ f_init_raw(testcasename(), info_ind); + /* Make sure we are not affected by full cache from previous tests */ + f_pcuvty_flush_neigh_caches(); + /* Establish BSSGP connection to the PCU */ f_bssgp_establish(); f_bssgp_client_llgmm_assign(TLLI_UNUSED, ms.tlli); @@ -3911,6 +4002,9 @@ /* Initialize the PCU interface abstraction */ f_init_raw(testcasename(), info_ind); + /* Make sure we are not affected by full cache from previous tests */ + f_pcuvty_flush_neigh_caches(); + /* Establish BSSGP connection to the PCU */ f_bssgp_establish(); f_bssgp_client_llgmm_assign(TLLI_UNUSED, ms.tlli); @@ -4023,6 +4117,7 @@ execute( TC_pcuif_info_ind_subsequent() ); execute( TC_nacc_outbound_success() ); + execute( TC_nacc_outbound_success_twice() ); execute( TC_nacc_outbound_rac_ci_resolve_timeout() ); execute( TC_nacc_outbound_rac_ci_resolve_fail_parse_response() ); execute( TC_nacc_outbound_si_resolve_timeout() ); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22487 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ia7b1584b3f7abfa2697a1f155c8b7788a3b0722e Gerrit-Change-Number: 22487 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 30 19:17:51 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 30 Jan 2021 19:17:51 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Introduce test TC_nacc_outbound_rac_ci_resolve_conn_refused In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22488 ) Change subject: pcu: Introduce test TC_nacc_outbound_rac_ci_resolve_conn_refused ...................................................................... pcu: Introduce test TC_nacc_outbound_rac_ci_resolve_conn_refused Change-Id: Ia0452879edb958098598e9e1c943f4e1e458a9bf --- M pcu/PCU_Tests.ttcn 1 file changed, 57 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/pcu/PCU_Tests.ttcn b/pcu/PCU_Tests.ttcn index 316ab65..6a78975 100644 --- a/pcu/PCU_Tests.ttcn +++ b/pcu/PCU_Tests.ttcn @@ -3837,6 +3837,62 @@ } /* Verify PCU transmits Pkt Cell Change Continue if RAC+CI resolution fails during outbound NACC procedure */ +testcase TC_nacc_outbound_rac_ci_resolve_conn_refused() runs on RAW_PCU_Test_CT { + var RlcmacDlBlock dl_block; + var PollFnCtx pollctx; + var uint32_t sched_fn; + var GprsMS ms; + var template (value) RlcmacUlCtrlMsg cell_chf_notif; + var PCUIF_info_ind info_ind := valueof(ts_PCUIF_INFO_default); + var MultislotCap_GPRS mscap_gprs := { + gprsmultislotclass := '00011'B, + gprsextendeddynalloccap := '0'B + }; + var MSRadioAccessCapabilityV ms_racap := { valueof(ts_RaCapRec('0001'B /* E-GSM */, mscap_gprs, omit)) }; + var GsmArfcn req_arfcn := 862; + var uint6_t req_bsic := 43; + + /* In here we explicitly avoid starting osmo-bsc emulation neighbor + * resolution CTRL port, to trigger Conn Refused by socket: + * f_ipa_ctrl_start_server(mp_ctrl_neigh_ip, mp_ctrl_neigh_port); + */ + + /* Initialize NS/BSSGP side */ + f_init_bssgp(); + /* Initialize GPRS MS side */ + f_init_gprs_ms(); + ms := g_ms[0]; /* We only use first MS in this test */ + + /* Initialize the PCU interface abstraction */ + f_init_raw(testcasename(), info_ind); + + /* Make sure we are not affected by full cache from previous tests */ + f_pcuvty_flush_neigh_caches(); + + /* Establish BSSGP connection to the PCU */ + f_bssgp_establish(); + f_bssgp_client_llgmm_assign(TLLI_UNUSED, ms.tlli); + + /* Send PACKET RESOURCE REQUEST */ + pollctx := f_ms_establish_ul_tbf_2phase_access(ms, ts_RlcMacUlCtrl_PKT_RES_REQ(ms.tlli, ms_racap)); + /* Pkt Uplink Assignment above sets poll+rrbp requesting PACKET CONTROL ACK */ + f_ms_tx_ul_block(ms, ts_RLCMAC_CTRL_ACK(ms.tlli), pollctx.fn, nr := pollctx.tstrxbts); + + /* Start NACC from MS side */ + cell_chf_notif := ts_RlcMacUlCtrl_PKT_CELL_CHG_NOTIF(ms.ul_tbf.tfi, req_arfcn, req_bsic); + f_ms_tx_ul_block(ms, ts_RLC_UL_CTRL_ACK(cell_chf_notif), 0, nr := f_ms_tx_TsTrxBtsNum(ms)); + + /* Wait until we receive something non-dummy */ + dl_block := f_skip_dummy(0); + /* Make sure it is a Pkt Cell Chg Continue */ + if (not match(dl_block, tr_RLCMAC_DL_CTRL(?, tr_RlcMacDlCtrl_PKT_CELL_CHG_CONTINUE))) { + setverdict(fail, "Rx unexpected DL block: ", dl_block); + } + + f_shutdown(__BFILE__, __LINE__, final := true); +} + +/* Verify PCU transmits Pkt Cell Change Continue if RAC+CI resolution fails during outbound NACC procedure */ testcase TC_nacc_outbound_rac_ci_resolve_timeout() runs on RAW_PCU_Test_CT { var RlcmacDlBlock dl_block; var PollFnCtx pollctx; @@ -4118,6 +4174,7 @@ execute( TC_pcuif_info_ind_subsequent() ); execute( TC_nacc_outbound_success() ); execute( TC_nacc_outbound_success_twice() ); + execute( TC_nacc_outbound_rac_ci_resolve_conn_refused() ); execute( TC_nacc_outbound_rac_ci_resolve_timeout() ); execute( TC_nacc_outbound_rac_ci_resolve_fail_parse_response() ); execute( TC_nacc_outbound_si_resolve_timeout() ); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22488 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ia0452879edb958098598e9e1c943f4e1e458a9bf Gerrit-Change-Number: 22488 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 30 19:18:12 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 30 Jan 2021 19:18:12 +0000 Subject: Change in osmo-ttcn3-hacks[master]: CTRL_Adapter: Add function f_ipa_ctrl_wait_link_down In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22519 ) Change subject: CTRL_Adapter: Add function f_ipa_ctrl_wait_link_down ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22519 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ia9f08dae76774925de8a08c7e313965280cb51b0 Gerrit-Change-Number: 22519 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 30 Jan 2021 19:18:12 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 30 19:18:18 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 30 Jan 2021 19:18:18 +0000 Subject: Change in osmo-ttcn3-hacks[master]: CTRL_Adapter: Add function f_ipa_ctrl_wait_link_down In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22519 ) Change subject: CTRL_Adapter: Add function f_ipa_ctrl_wait_link_down ...................................................................... CTRL_Adapter: Add function f_ipa_ctrl_wait_link_down Change-Id: Ia9f08dae76774925de8a08c7e313965280cb51b0 --- M library/Osmocom_CTRL_Adapter.ttcn 1 file changed, 14 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/library/Osmocom_CTRL_Adapter.ttcn b/library/Osmocom_CTRL_Adapter.ttcn index fefff8b..e1fba1b 100644 --- a/library/Osmocom_CTRL_Adapter.ttcn +++ b/library/Osmocom_CTRL_Adapter.ttcn @@ -40,6 +40,20 @@ } } +/* wait for IPA CTRL link to connect and send UP */ +function f_ipa_ctrl_wait_link_down() +runs on CTRL_Adapter_CT { + timer T := 10.0; + T.start; + alt { + [] IPA_CTRL.receive(tr_ASP_IPA_EV(ASP_IPA_EVENT_DOWN)) { } + [] T.timeout { + setverdict(fail, "Timeout CTRL waiting for ASP_IPA_EVENT_DOWN"); + mtc.stop; + } + } +} + /*! Start the CTRL client connection to the specified CTRL IP+Port server*/ function f_ipa_ctrl_start_client(charstring bsc_host, PortNumber bsc_port) runs on CTRL_Adapter_CT { -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22519 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ia9f08dae76774925de8a08c7e313965280cb51b0 Gerrit-Change-Number: 22519 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 30 19:18:18 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 30 Jan 2021 19:18:18 +0000 Subject: Change in osmo-ttcn3-hacks[master]: IPA_Emulation: Support keeping server alive after first client discon... In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22520 ) Change subject: IPA_Emulation: Support keeping server alive after first client disconnects ...................................................................... IPA_Emulation: Support keeping server alive after first client disconnects Change-Id: I4c133a889df0a5a060b5c52a1ca40fa9b8695c2e --- M library/IPA_Emulation.ttcnpp 1 file changed, 9 insertions(+), 2 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/library/IPA_Emulation.ttcnpp b/library/IPA_Emulation.ttcnpp index 60c6061..906664f 100644 --- a/library/IPA_Emulation.ttcnpp +++ b/library/IPA_Emulation.ttcnpp @@ -240,6 +240,9 @@ var IpaMode g_mode; var boolean g_ccm_enabled; var IpaInitBehavior g_init_behavior; + /* Shall we stop the component once the client disconnects, or keep + * running to let next user in ? */ + var boolean g_server_stop_on_ipa_ev_down := true; var IPA_CCM_Parameters g_ccm_pars := c_IPA_default_ccm_pars; } @@ -549,11 +552,13 @@ /* main function to use for a server-side IPA implementation */ function main_server(charstring local_host, IPL4asp_Types.PortNumber local_port, boolean ccm_enabled := true, - IpaInitBehavior init_behavior := IPA_INIT_SEND_IPA_ID_GET) + IpaInitBehavior init_behavior := IPA_INIT_SEND_IPA_ID_GET, + boolean server_stop_on_ipa_ev_down := true) runs on IPA_Emulation_CT { g_mode := IPA_MODE_SERVER; g_ccm_enabled := ccm_enabled; g_init_behavior := init_behavior; + g_server_stop_on_ipa_ev_down := server_stop_on_ipa_ev_down; f_bind(local_host, local_port); ScanEvents(); } @@ -761,7 +766,9 @@ log("IPA: Closed"); g_self_conn_id := -1; f_send_IPA_EVT(ts_ASP_IPA_EV(ASP_IPA_EVENT_DOWN, asp_evt.connClosed.connId)); - self.stop; + if (g_mode != IPA_MODE_SERVER or g_server_stop_on_ipa_ev_down) { + self.stop; + } } [] IPA_PORT.receive(Socket_API_Definitions.PortEvent:{result:={errorCode:=ERROR_SOCKET, connId:=?, os_error_code:=?, os_error_text:=?}}) -> value port_evt { -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22520 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I4c133a889df0a5a060b5c52a1ca40fa9b8695c2e Gerrit-Change-Number: 22520 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 30 19:18:18 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 30 Jan 2021 19:18:18 +0000 Subject: Change in osmo-ttcn3-hacks[master]: CTRL_Adapter: Keep server alive after first client disconnects In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22521 ) Change subject: CTRL_Adapter: Keep server alive after first client disconnects ...................................................................... CTRL_Adapter: Keep server alive after first client disconnects It can be expected from CTRL clients to connect and disconnect several times as several commands are sent, so let's by default enable it (only user of this CTRL servcer in PCU_Tests needs it). Change-Id: Idddc27671d1b823dfbc62bcf7be673e51b574d63 --- M library/Osmocom_CTRL_Adapter.ttcn 1 file changed, 2 insertions(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/library/Osmocom_CTRL_Adapter.ttcn b/library/Osmocom_CTRL_Adapter.ttcn index e1fba1b..adc2887 100644 --- a/library/Osmocom_CTRL_Adapter.ttcn +++ b/library/Osmocom_CTRL_Adapter.ttcn @@ -81,7 +81,8 @@ map(vc_CTRL_IPA:IPA_PORT, system:IPA_CODEC_PT); connect(vc_CTRL_IPA:IPA_CTRL_PORT, self:IPA_CTRL); - vc_CTRL_IPA.start(IPA_Emulation.main_server(listen_host, listen_port, false)); + vc_CTRL_IPA.start(IPA_Emulation.main_server(listen_host, listen_port, false, + server_stop_on_ipa_ev_down := false)); } function f_ipa_ctrl_stop() runs on CTRL_Adapter_CT { -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22521 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Idddc27671d1b823dfbc62bcf7be673e51b574d63 Gerrit-Change-Number: 22521 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 30 19:18:36 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 30 Jan 2021 19:18:36 +0000 Subject: Change in osmo-ttcn3-hacks[master]: GBProxy_Tests: fix TC_rim_* tests In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22525 ) Change subject: GBProxy_Tests: fix TC_rim_* tests ...................................................................... GBProxy_Tests: fix TC_rim_* tests The TC_rim tests do not use the RIM templates from Osmocom_Gb_Types as intended. Change-Id: Ie484f288aa0515ef4df4a3cf7f8a347a3f3cf587 Related: SYS#5103 --- M gbproxy/GBProxy_Tests.ttcn M library/Osmocom_Gb_Types.ttcn 2 files changed, 248 insertions(+), 68 deletions(-) Approvals: laforge: Looks good to me, approved daniel: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index 4879521..506ed38 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -2901,20 +2901,35 @@ runs on GlobalTest_CT { var BssgpCellId cell_id := g_pcu[pcu_idx].cfg.bvc[bvc_idx].cell_id; - var template (value) RIM_Routing_Information ri_pcu; - var template (value) RIM_Routing_Information ri_sgsn; - var template (value) RAN_Information_Request_RIM_Container cont; + var template (value) RAN_Information_Request_RIM_Container cont_tx; + var template RAN_Information_Request_RIM_Container cont_rx; + var template RIM_Routing_Address ra_pcu; + var template RIM_Routing_Address ra_sgsn; - ri_sgsn := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, t_RIM_Routing_Address_cid(cell_id_sgsn)); - ri_pcu := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, t_RIM_Routing_Address_cid(cell_id)); - cont := ts_RAN_Information_Request_RIM_Container(ts_RIM_Application_Identity(RIM_APP_ID_NACC), - ts_RIM_Sequence_Number(0), - ts_RIM_PDU_Indications(false, RIM_PDU_TYPE_STOP)); - f_rim_pcu2sgsn(ts_RAN_INFORMATION_REQUEST(dst := ri_sgsn, src := ri_pcu, cont := cont), - tr_RAN_INFORMATION_REQUEST(dst := ri_sgsn, src := ri_pcu, cont := cont), - pcu_idx); - f_rim_sgsn2pcu(ts_RAN_INFORMATION_REQUEST(dst := ri_pcu, src := ri_sgsn, cont := cont), - tr_RAN_INFORMATION_REQUEST(dst := ri_pcu, src := ri_sgsn, cont := cont), + ra_pcu := t_RIM_Routing_Address_cid(cell_id); + ra_sgsn := t_RIM_Routing_Address_cid(cell_id_sgsn); + + cont_tx := ts_RAN_Information_Request_RIM_Container(ts_RIM_Application_Identity(RIM_APP_ID_NACC), + ts_RIM_Sequence_Number(0), + ts_RIM_PDU_Indications(false, RIM_PDU_TYPE_STOP)); + cont_rx := tr_RAN_Information_Request_RIM_Container(tr_RIM_Application_Identity(RIM_APP_ID_NACC), + tr_RIM_Sequence_Number(0), + tr_RIM_PDU_Indications(false, RIM_PDU_TYPE_STOP)); + + f_rim_pcu2sgsn(ts_RAN_INFORMATION_REQUEST(dst := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_sgsn), + src := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_pcu), + cont := cont_tx), + tr_RAN_INFORMATION_REQUEST(dst := tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_sgsn), + src := tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_pcu), + cont := cont_rx), + pcu_idx); + + f_rim_sgsn2pcu(ts_RAN_INFORMATION_REQUEST(dst := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_pcu), + src := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_sgsn), + cont := cont_tx), + tr_RAN_INFORMATION_REQUEST(dst := tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_pcu), + src := tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_sgsn), + cont := cont_rx), sgsn_idx, pcu_idx); } testcase TC_rim_info_req() runs on GlobalTest_CT @@ -2930,20 +2945,36 @@ runs on GlobalTest_CT { var BssgpCellId cell_id := g_pcu[pcu_idx].cfg.bvc[bvc_idx].cell_id; - var template (value) RIM_Routing_Information ri_pcu; - var template (value) RIM_Routing_Information ri_sgsn; - var template (value) RAN_Information_RIM_Container cont; + var template (value) RAN_Information_RIM_Container cont_tx; + var template RAN_Information_RIM_Container cont_rx; + var template RIM_Routing_Address ra_pcu; + var template RIM_Routing_Address ra_sgsn; - ri_sgsn := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, t_RIM_Routing_Address_cid(cell_id_sgsn)); - ri_pcu := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, t_RIM_Routing_Address_cid(cell_id)); - cont := ts_RAN_Information_RIM_Container(ts_RIM_Application_Identity(RIM_APP_ID_NACC), - ts_RIM_Sequence_Number(0), - ts_RIM_PDU_Indications(false, RIM_PDU_TYPE_STOP)); - f_rim_pcu2sgsn(ts_PDU_BSSGP_RAN_INFORMATION(dst := ri_sgsn, src := ri_pcu, cont := cont), - tr_PDU_BSSGP_RAN_INFORMATION(dst := ri_sgsn, src := ri_pcu, cont := cont), - pcu_idx); - f_rim_sgsn2pcu(ts_PDU_BSSGP_RAN_INFORMATION(dst := ri_pcu, src := ri_sgsn, cont := cont), - tr_PDU_BSSGP_RAN_INFORMATION(dst := ri_pcu, src := ri_sgsn, cont := cont), + ra_pcu := t_RIM_Routing_Address_cid(cell_id); + ra_sgsn := t_RIM_Routing_Address_cid(cell_id_sgsn); + + cont_tx := ts_RAN_Information_RIM_Container(ts_RIM_Application_Identity(RIM_APP_ID_NACC), + ts_RIM_Sequence_Number(0), + ts_RIM_PDU_Indications(false, RIM_PDU_TYPE_STOP)); + + cont_rx := tr_RAN_Information_RIM_Container(tr_RIM_Application_Identity(RIM_APP_ID_NACC), + tr_RIM_Sequence_Number(0), + tr_RIM_PDU_Indications(false, RIM_PDU_TYPE_STOP)); + + f_rim_pcu2sgsn(ts_PDU_BSSGP_RAN_INFORMATION(dst := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_sgsn), + src := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_pcu), + cont := cont_tx), + tr_PDU_BSSGP_RAN_INFORMATION(dst := tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_sgsn), + src := tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_pcu), + cont := cont_rx), + pcu_idx); + + f_rim_sgsn2pcu(ts_PDU_BSSGP_RAN_INFORMATION(dst := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_pcu), + src := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_sgsn), + cont := cont_tx), + tr_PDU_BSSGP_RAN_INFORMATION(dst := tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_pcu), + src := tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_sgsn), + cont := cont_rx), sgsn_idx, pcu_idx); } testcase TC_rim_info() runs on GlobalTest_CT @@ -2959,19 +2990,34 @@ runs on GlobalTest_CT { var BssgpCellId cell_id := g_pcu[pcu_idx].cfg.bvc[bvc_idx].cell_id; - var template (value) RIM_Routing_Information ri_pcu; - var template (value) RIM_Routing_Information ri_sgsn; - var template (value) RAN_Information_Ack_RIM_Container cont; + var template (value) RAN_Information_Ack_RIM_Container cont_tx; + var template RAN_Information_Ack_RIM_Container cont_rx; + var template RIM_Routing_Address ra_pcu; + var template RIM_Routing_Address ra_sgsn; - ri_sgsn := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, t_RIM_Routing_Address_cid(cell_id_sgsn)); - ri_pcu := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, t_RIM_Routing_Address_cid(cell_id)); - cont := ts_RAN_Information_Ack_RIM_Container(ts_RIM_Application_Identity(RIM_APP_ID_NACC), - ts_RIM_Sequence_Number(0)); - f_rim_pcu2sgsn(ts_PDU_BSSGP_RAN_INFORMATION_ACK(dst := ri_sgsn, src := ri_pcu, cont := cont), - tr_PDU_BSSGP_RAN_INFORMATION_ACK(dst := ri_sgsn, src := ri_pcu, cont := cont), - pcu_idx); - f_rim_sgsn2pcu(ts_PDU_BSSGP_RAN_INFORMATION_ACK(dst := ri_pcu, src := ri_sgsn, cont := cont), - tr_PDU_BSSGP_RAN_INFORMATION_ACK(dst := ri_pcu, src := ri_sgsn, cont := cont), + ra_pcu := t_RIM_Routing_Address_cid(cell_id); + ra_sgsn := t_RIM_Routing_Address_cid(cell_id_sgsn); + + cont_tx := ts_RAN_Information_Ack_RIM_Container(ts_RIM_Application_Identity(RIM_APP_ID_NACC), + ts_RIM_Sequence_Number(0)); + + cont_rx := tr_RAN_Information_Ack_RIM_Container(tr_RIM_Application_Identity(RIM_APP_ID_NACC), + tr_RIM_Sequence_Number(0)); + + f_rim_pcu2sgsn(ts_PDU_BSSGP_RAN_INFORMATION_ACK(dst := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_sgsn), + src := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_pcu), + cont := cont_tx), + tr_PDU_BSSGP_RAN_INFORMATION_ACK(dst := tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_sgsn), + src := tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_pcu), + cont := cont_rx), + pcu_idx); + + f_rim_sgsn2pcu(ts_PDU_BSSGP_RAN_INFORMATION_ACK(dst := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_pcu), + src := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_sgsn), + cont := cont_tx), + tr_PDU_BSSGP_RAN_INFORMATION_ACK(dst := tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_pcu), + src := tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_sgsn), + cont := cont_rx), sgsn_idx, pcu_idx); } testcase TC_rim_info_ack() runs on GlobalTest_CT @@ -2987,20 +3033,36 @@ runs on GlobalTest_CT { var BssgpCellId cell_id := g_pcu[pcu_idx].cfg.bvc[bvc_idx].cell_id; - var template (value) RIM_Routing_Information ri_pcu; - var template (value) RIM_Routing_Information ri_sgsn; - var template (value) RAN_Information_Error_RIM_Container cont; + var template (value) RAN_Information_Error_RIM_Container cont_tx; + var template RAN_Information_Error_RIM_Container cont_rx; + var template RIM_Routing_Address ra_pcu; + var template RIM_Routing_Address ra_sgsn; - ri_sgsn := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, t_RIM_Routing_Address_cid(cell_id_sgsn)); - ri_pcu := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, t_RIM_Routing_Address_cid(cell_id)); - cont := ts_RAN_Information_Error_RIM_Container(ts_RIM_Application_Identity(RIM_APP_ID_NACC), - ts_BSSGP_CAUSE(BSSGP_CAUSE_EQUIMENT_FAILURE), - omit, valueof(t_BVC_UNBLOCK(23))); - f_rim_pcu2sgsn(ts_PDU_BSSGP_RAN_INFORMATION_ERROR(dst := ri_sgsn, src := ri_pcu, cont := cont), - tr_PDU_BSSGP_RAN_INFORMATION_ERROR(dst := ri_sgsn, src := ri_pcu, cont := cont), - pcu_idx); - f_rim_sgsn2pcu(ts_PDU_BSSGP_RAN_INFORMATION_ERROR(dst := ri_pcu, src := ri_sgsn, cont := cont), - tr_PDU_BSSGP_RAN_INFORMATION_ERROR(dst := ri_pcu, src := ri_sgsn, cont := cont), + ra_pcu := t_RIM_Routing_Address_cid(cell_id); + ra_sgsn := t_RIM_Routing_Address_cid(cell_id_sgsn); + + cont_tx := ts_RAN_Information_Error_RIM_Container(ts_RIM_Application_Identity(RIM_APP_ID_NACC), + ts_BSSGP_CAUSE(BSSGP_CAUSE_EQUIMENT_FAILURE), + omit, valueof(t_BVC_UNBLOCK(23))); + + cont_rx := tr_RAN_Information_Error_RIM_Container(tr_RIM_Application_Identity(RIM_APP_ID_NACC), + t_BSSGP_CAUSE(BSSGP_CAUSE_EQUIMENT_FAILURE), + omit, enc_PDU_BSSGP(valueof(t_BVC_UNBLOCK(23)))); + + f_rim_pcu2sgsn(ts_PDU_BSSGP_RAN_INFORMATION_ERROR(dst := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_sgsn), + src := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_pcu), + cont := cont_tx), + tr_PDU_BSSGP_RAN_INFORMATION_ERROR(dst := tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_sgsn), + src := tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_pcu), + cont := cont_rx), + pcu_idx); + + f_rim_sgsn2pcu(ts_PDU_BSSGP_RAN_INFORMATION_ERROR(dst := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_pcu), + src := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_sgsn), + cont := cont_tx), + tr_PDU_BSSGP_RAN_INFORMATION_ERROR(dst := tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_pcu), + src := tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_sgsn), + cont := cont_rx), sgsn_idx, pcu_idx); } testcase TC_rim_info_error() runs on GlobalTest_CT @@ -3011,29 +3073,51 @@ f_cleanup(); } +////////////////// /* RAN-INFORMATION-APPLICATION-ERROR */ private function f_TC_rim_info_app_error(integer sgsn_idx, integer pcu_idx, integer bvc_idx := 0) runs on GlobalTest_CT { var BssgpCellId cell_id := g_pcu[pcu_idx].cfg.bvc[bvc_idx].cell_id; - var template (value) RIM_Routing_Information ri_pcu; - var template (value) RIM_Routing_Information ri_sgsn; - var template (value) Application_Error_Container app_cont; - var template (value) RAN_Information_Application_Error_RIM_Container cont; + var template (value) Application_Error_Container app_cont_tx; + var template Application_Error_Container app_cont_rx; + var template (value) RAN_Information_Application_Error_RIM_Container cont_tx; + var template RAN_Information_Application_Error_RIM_Container cont_rx; + var template RIM_Routing_Address ra_pcu; + var template RIM_Routing_Address ra_sgsn; - ri_sgsn := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, t_RIM_Routing_Address_cid(cell_id_sgsn)); - ri_pcu := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, t_RIM_Routing_Address_cid(cell_id)); - app_cont := tsu_Application_Error_Container_NACC(cell_id, 23, - tsu_Application_Container_IE_NACC_req(cell_id)); - cont := ts_RAN_Information_Application_Error_RIM_Container(ts_RIM_Application_Identity(RIM_APP_ID_NACC), - ts_RIM_Sequence_Number(0), - ts_RIM_PDU_Indications(false, RIM_PDU_TYPE_STOP), - omit, app_cont); - f_rim_pcu2sgsn(ts_PDU_BSSGP_RAN_INFORMATION_APPLICATION_ERROR(dst := ri_sgsn, src := ri_pcu, cont := cont), - tr_PDU_BSSGP_RAN_INFORMATION_APPLICATION_ERROR(dst := ri_sgsn, src := ri_pcu, cont := cont), - pcu_idx); - f_rim_sgsn2pcu(ts_PDU_BSSGP_RAN_INFORMATION_APPLICATION_ERROR(dst := ri_pcu, src := ri_sgsn, cont := cont), - tr_PDU_BSSGP_RAN_INFORMATION_APPLICATION_ERROR(dst := ri_pcu, src := ri_sgsn, cont := cont), + ra_pcu := t_RIM_Routing_Address_cid(cell_id); + ra_sgsn := t_RIM_Routing_Address_cid(cell_id_sgsn); + + app_cont_tx := tsu_Application_Error_Container_NACC(cell_id, 23, + tsu_Application_Container_IE_NACC_req(cell_id)); + + app_cont_rx := rsu_Application_Error_Container_NACC(cell_id, 23, + rsu_Application_Container_IE_NACC_req(cell_id)); + + cont_tx := ts_RAN_Information_Application_Error_RIM_Container(ts_RIM_Application_Identity(RIM_APP_ID_NACC), + ts_RIM_Sequence_Number(0), + ts_RIM_PDU_Indications(false, RIM_PDU_TYPE_STOP), + omit, app_cont_tx); + cont_rx := tr_RAN_Information_Application_Error_RIM_Container(tr_RIM_Application_Identity(RIM_APP_ID_NACC), + tr_RIM_Sequence_Number(0), + tr_RIM_PDU_Indications(false, RIM_PDU_TYPE_STOP), + omit, app_cont_rx); + + f_rim_pcu2sgsn(ts_PDU_BSSGP_RAN_INFORMATION_APPLICATION_ERROR(dst := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_sgsn), + src := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_pcu), + cont := cont_tx), + tr_PDU_BSSGP_RAN_INFORMATION_APPLICATION_ERROR(dst := tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_sgsn), + src := tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_pcu), + cont := cont_rx), + pcu_idx); + + f_rim_sgsn2pcu(ts_PDU_BSSGP_RAN_INFORMATION_APPLICATION_ERROR(dst := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_pcu), + src := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_sgsn), + cont := cont_tx), + tr_PDU_BSSGP_RAN_INFORMATION_APPLICATION_ERROR(dst := tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_pcu), + src := tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_sgsn), + cont := cont_rx), sgsn_idx, pcu_idx); } testcase TC_rim_info_app_error() runs on GlobalTest_CT diff --git a/library/Osmocom_Gb_Types.ttcn b/library/Osmocom_Gb_Types.ttcn index 97412b8..cbaeb72 100644 --- a/library/Osmocom_Gb_Types.ttcn +++ b/library/Osmocom_Gb_Types.ttcn @@ -2693,6 +2693,21 @@ rIM_Protocol_Version_Number := ver, sON_Transfer_Application_Identity := son_app_id } + template RAN_Information_Ack_RIM_Container + tr_RAN_Information_Ack_RIM_Container(template RIM_Application_Identity app_id := ?, + template RIM_Sequence_Number seq := ?, + template RIM_Protocol_Version_Number ver := omit, + template SON_Transfer_Application_Identity_TLV son_app_id := omit) := { + iEI := '5A'O, + ext := '1'B, + lengthIndicator := { + length1 := ? + }, + rIM_Application_Identity := app_id, + rIM_Sequence_Number := seq, + rIM_Protocol_Version_Number := ver, + sON_Transfer_Application_Identity := son_app_id + } /* 3GPP TS 48.018 11.3.62a.4 */ template (value) RAN_Information_Error_RIM_Container @@ -2719,6 +2734,30 @@ }, sON_Transfer_Application_Identity := son_app_id } + template RAN_Information_Error_RIM_Container + tr_RAN_Information_Error_RIM_Container(template RIM_Application_Identity app_id := ?, + template Cause_BSSGP cause := ?, + template RIM_Protocol_Version_Number ver := omit, + template octetstring pdu := ?, + template SON_Transfer_Application_Identity_TLV son_app_id := omit) := { + iEI := '5B'O, + ext := '1'B, + lengthIndicator := { + length1 := ? + }, + rIM_Application_Identity := app_id, + rIM_cause := cause, + rIM_Protocol_Version_Number := ver, + pDU_in_Error:= { + iEI := '15'O, + ext := '1'B, + lengthIndicator := { + length1 := ? + }, + erroneous_BSSGP_PDU := pdu + }, + sON_Transfer_Application_Identity := son_app_id + } /* 3GPP TS 48.018 11.3.62a.5 */ template (value) RAN_Information_Application_Error_RIM_Container @@ -2740,6 +2779,25 @@ application_Error_Container := cont, sON_Transfer_Application_Identity := son_app_id } + template RAN_Information_Application_Error_RIM_Container + tr_RAN_Information_Application_Error_RIM_Container(template RIM_Application_Identity app_id := ?, + template RIM_Sequence_Number seq := ?, + template RIM_PDU_Indications ind := ?, + template RIM_Protocol_Version_Number ver := omit, + template Application_Error_Container cont := ?, + template SON_Transfer_Application_Identity_TLV son_app_id := omit) := { + iEI := '59'O, + ext := '1'B, + lengthIndicator := { + length1 := ? + }, + rIM_Application_Identity := app_id, + rIM_Sequence_Number := seq, + rIM_PDU_Indications := ind, + rIM_Protocol_Version_Number := ver, + application_Error_Container := cont, + sON_Transfer_Application_Identity := son_app_id + } /* 3GPP TS 48.018 11.3.63.1 */ @@ -2775,6 +2833,15 @@ }, reporting_Cell_Identifier := t_Cell_Identifier_V(cid) } + template RAN_Information_Request_Application_Container_NACC + tr_RAN_Information_Request_Application_Container_NACC(template BssgpCellId cid := ?) := { + iEI := '4D'O, + ext := '1'B, + lengthIndicator := { + length1 := ? + }, + reporting_Cell_Identifier := t_Cell_Identifier_V(cid) + } /* 3GPP TS 48.018 11.3.63.1.2 */ template (value) RAN_Information_Request_Application_Container_SI3 @@ -2869,6 +2936,12 @@ template (value) Application_Container_IE_NACC app_cont) := { nacc := ts_Application_Error_Container_NACC(cid, cause, app_cont) } + template Application_Error_Container + rsu_Application_Error_Container_NACC(template BssgpCellId cid := ?, + template integer cause := ?, + template Application_Container_IE_NACC app_cont := ?) := { + nacc := tr_Application_Error_Container_NACC(cid, cause, app_cont) + } template (value) Application_Error_Container tsu_Application_Error_Container_SI3(template (value) BssgpCellId cid, integer cause, @@ -2895,10 +2968,33 @@ nACC_cause := int2oct(cause, 1), erroneousApplicationContainer := app_cont } + function tr_Application_Error_Container_NACC(template BssgpCellId cid := ?, + template integer cause := ?, + template Application_Container_IE_NACC app_cont := ?) + return template Application_Error_Container_NACC { + var template Application_Error_Container_NACC ret; + ret.iEI := '56'O; + ret.ext := '1'B; + ret.lengthIndicator := { length1 := ? }; + ret.erroneousApplicationContainer := app_cont; + if (istemplatekind(cause, "*")) { + ret.nACC_cause := *; + } else if (istemplatekind(cause, "?")) { + ret.nACC_cause := ?; + } else { + ret.nACC_cause := int2oct(valueof(cause), 1); + } + return ret; + } + template (value) Application_Container_IE_NACC tsu_Application_Container_IE_NACC_req(template (value) BssgpCellId cid) := { rAN_Information_Request_Application_Container := ts_RAN_Information_Request_Application_Container_NACC(cid) } + template Application_Container_IE_NACC + rsu_Application_Container_IE_NACC_req(template BssgpCellId cid := ?) := { + rAN_Information_Request_Application_Container := tr_RAN_Information_Request_Application_Container_NACC(cid) + } template (value) Application_Container_IE_NACC tsu_Application_Container_IE_NACC(template (value) BssgpCellId cid, boolean psi_type, integer si_psi_num, octetstring si_psi) := { rAN_Information_Application_Container := ts_RAN_Information_Application_Container_NACC(cid, psi_type, si_psi_num, si_psi) -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22525 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ie484f288aa0515ef4df4a3cf7f8a347a3f3cf587 Gerrit-Change-Number: 22525 Gerrit-PatchSet: 4 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 30 19:51:10 2021 From: gerrit-no-reply at lists.osmocom.org (keith) Date: Sat, 30 Jan 2021 19:51:10 +0000 Subject: Change in osmo-hlr[master]: Fix Coverity Warnings. References: Message-ID: keith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-hlr/+/22554 ) Change subject: Fix Coverity Warnings. ...................................................................... Fix Coverity Warnings. Explicitly check filter_type is not NULL even though the current code never passed NULL filter_type unless filter was also NULL Remove unreachable code. Change-Id: Ib2bd9b2d6e9e559e61a895a25235669dae05fdf6 Related: coverity CID#216865 Related: coverity CID#216867 --- M src/db_hlr.c 1 file changed, 3 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-hlr refs/changes/54/22554/1 diff --git a/src/db_hlr.c b/src/db_hlr.c index a181c0c..a4c467e 100644 --- a/src/db_hlr.c +++ b/src/db_hlr.c @@ -663,7 +663,7 @@ return -EIO; } - if (filter && strcmp(filter_type, "last_lu_seen") != 0) { + if (filter_type && filter && strcmp(filter_type, "last_lu_seen") != 0) { if (strcmp(filter, "on") == 0) { sprintf(search, "%s", "1"); } else if (strcmp(filter, "off") == 0) { @@ -704,15 +704,11 @@ db_remove_reset(stmt); if (rc != SQLITE_DONE) { *err = sqlite3_errmsg(dbc->db); - return -EIO; - } else if (rc == SQLITE_DONE) { - *err = NULL; - return 0; - } else { - *err = sqlite3_errmsg(dbc->db); LOGP(DAUC, LOGL_ERROR, "Cannot read subscribers from db:: %s\n", *err); return rc; } + *err = NULL; + return 0; } /*! Retrieve subscriber data from the HLR database. -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/22554 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-Change-Id: Ib2bd9b2d6e9e559e61a895a25235669dae05fdf6 Gerrit-Change-Number: 22554 Gerrit-PatchSet: 1 Gerrit-Owner: keith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 30 19:52:07 2021 From: gerrit-no-reply at lists.osmocom.org (keith) Date: Sat, 30 Jan 2021 19:52:07 +0000 Subject: Change in osmo-hlr[master]: Fix Coverity Warnings In-Reply-To: References: Message-ID: keith has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/osmo-hlr/+/22554 ) Change subject: Fix Coverity Warnings ...................................................................... Fix Coverity Warnings Explicitly check filter_type is not NULL even though the current code never passed a NULL filter_type unless filter was also NULL. Remove unreachable code. Change-Id: Ib2bd9b2d6e9e559e61a895a25235669dae05fdf6 Related: coverity CID#216865 Related: coverity CID#216867 --- M src/db_hlr.c 1 file changed, 3 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-hlr refs/changes/54/22554/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/22554 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-Change-Id: Ib2bd9b2d6e9e559e61a895a25235669dae05fdf6 Gerrit-Change-Number: 22554 Gerrit-PatchSet: 2 Gerrit-Owner: keith Gerrit-CC: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 30 20:23:11 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 30 Jan 2021 20:23:11 +0000 Subject: Change in libosmocore[master]: ns2: Work around AF_PACKET socket ENOBUFS problems References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22555 ) Change subject: ns2: Work around AF_PACKET socket ENOBUFS problems ...................................................................... ns2: Work around AF_PACKET socket ENOBUFS problems AF_PACKET sockets cannot be written-to using select(), as they will always return "writable" but then still fail with ENOBUFS. This also means that we cannot use osmo_wqueue() as it assumes that a writable socket can actually be written to. As there's no way to figure out when exactly we can again perform a successful write, we have no other option but to start a timer and re-try at a later time. We will scale that timer based on the estimated duration of transmission for the just-failed PDU on the line rate of a 31TS E1 Line. Furthermore, with this patch, we stop queueing anything but signaling traffic (NS-BVCI=0) or Q.933 LMI. User data (NS-BVCI != 0) will instead be dropped in order to avoid buffer-bloat. Change-Id: I4f79a246236c94175ceffa5f3f556c8931c6bc62 Closes: OS#4995 --- M src/gb/gprs_ns2_fr.c 1 file changed, 132 insertions(+), 24 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/55/22555/1 diff --git a/src/gb/gprs_ns2_fr.c b/src/gb/gprs_ns2_fr.c index 096e150..854eccf 100644 --- a/src/gb/gprs_ns2_fr.c +++ b/src/gb/gprs_ns2_fr.c @@ -4,7 +4,7 @@ * 3GPP TS 08.16 version 8.0.1 Release 1999 / ETSI TS 101 299 V8.0.1 (2002-05) * as well as its successor 3GPP TS 48.016 */ -/* (C) 2009-2010,2014,2017 by Harald Welte +/* (C) 2009-2021 by Harald Welte * (C) 2020 sysmocom - s.f.m.c. GmbH * Author: Alexander Couzens * @@ -51,9 +51,11 @@ #include #include #include +#include #include #include #include +#include #ifdef ENABLE_LIBMNL #include @@ -72,6 +74,14 @@ # define IPPROTO_GRE 47 #endif +#define E1_LINERATE 2048000 +#define E1_SLOTS_TOTAL 32 +#define E1_SLOTS_USED 31 +/* usable bitrate of the E1 superchannel with 31 of 32 timeslots */ +#define SUPERCHANNEL_LINERATE (E1_LINERATE*E1_SLOTS_USED)/E1_SLOTS_TOTAL +/* nanoseconds per bit (504) */ +#define BIT_DURATION_NS (1000000000 / SUPERCHANNEL_LINERATE) + struct gre_hdr { uint16_t flags; uint16_t ptype; @@ -88,9 +98,19 @@ struct priv_bind { char netif[IFNAMSIZ]; struct osmo_fr_link *link; - struct osmo_wqueue wqueue; int ifindex; bool if_running; + /* backlog queue for AF_PACKET / ENOBUFS handling (see OS#4993) */ + struct { + /* file-descriptor for AF_PACKET socket */ + struct osmo_fd ofd; + /* list of msgb (backlog) */ + struct llist_head list; + /* timer to trigger next attempt of AF_PACKET write */ + struct osmo_timer_list timer; + /* re-try after that many micro-seconds */ + uint32_t retry_us; + } backlog; }; struct priv_vc { @@ -148,7 +168,7 @@ OSMO_ASSERT(llist_empty(&bind->nsvc)); osmo_fr_link_free(priv->link); - osmo_fd_close(&priv->wqueue.bfd); + osmo_fd_close(&priv->backlog.ofd); talloc_free(priv); } @@ -200,15 +220,21 @@ } /* PDU from the network interface towards the fr layer (upwards) */ -static int handle_netif_read(struct osmo_fd *bfd) +static int fr_netif_ofd_cb(struct osmo_fd *bfd, uint32_t what) { struct gprs_ns2_vc_bind *bind = bfd->data; struct priv_bind *priv = bind->priv; - struct msgb *msg = msgb_alloc(NS_ALLOC_SIZE, "Gb/NS/FR/GRE Rx"); + struct msgb *msg; struct sockaddr_ll sll; socklen_t sll_len = sizeof(sll); int rc = 0; + /* we only handle read here. write to AF_PACKET sockets cannot be triggered + * by select or poll, see OS#4995 */ + if (!(what & OSMO_FD_READ)) + return 0; + + msg = msgb_alloc(NS_ALLOC_SIZE, "Gb/NS/FR/GRE Rx"); if (!msg) return -ENOMEM; @@ -245,18 +271,35 @@ return rc; } -static int handle_netif_write(struct osmo_fd *ofd, struct msgb *msg) +static int fr_netif_write_one(struct gprs_ns2_vc_bind *bind, struct msgb *msg) { - struct gprs_ns2_vc_bind *bind = ofd->data; + struct priv_bind *priv = bind->priv; + unsigned int len = msgb_length(msg); int rc; - rc = write(ofd->fd, msgb_data(msg), msgb_length(msg)); - /* write_queue expects a "-errno" type return value in case of failure */ - if (rc == -1) { - LOGBIND(bind, LOGL_ERROR, "error during write to AF_PACKET: %s\n", strerror(errno)); - return -errno; - } else - return rc; + /* estimate the retry time based on the data rate it takes to transmit */ + priv->backlog.retry_us = (BIT_DURATION_NS * 8 * len) / 1000; + + rc = write(priv->backlog.ofd.fd, msgb_data(msg), len); + if (rc == len) { + msgb_free(msg); + return 0; + } else if (rc < 0) { + /* don't free, the caller might want to re-transmit */ + switch (errno) { + case EAGAIN: + case ENOBUFS: + return -errno; + default: + LOGBIND(bind, LOGL_ERROR, "error during write to AF_PACKET: %s\n", strerror(errno)); + return -errno; + } + } else { + /* short write */ + LOGBIND(bind, LOGL_ERROR, "short write on AF_PACKET: %d < %d\n", rc, len); + msgb_free(msg); + return 0; + } } /*! determine if given bind is for FR-GRE encapsulation. */ @@ -274,16 +317,81 @@ return osmo_fr_tx_dlc(msg); } +#define LMI_Q933A_DLCI 0 + +/* enqueue to backlog (LMI, signaling) or drop (userdata msg) */ +static void backlog_enqueue_or_free(struct priv_bind *priv, struct msgb *msg) +{ + uint8_t dlci = msg->data[0]; + uint8_t ns_pdu_type; + + if (msgb_length(msg) < 1) + goto out_free; + + /* we want to enqueue only Q.933 LMI traffic or NS signaling; NOT user traffic */ + if (dlci == LMI_Q933A_DLCI) { + /* enqueue Q.933 LMI at head of queue */ + llist_add(&msg->list, &priv->backlog.list); + osmo_timer_schedule(&priv->backlog.timer, 0, priv->backlog.retry_us); + return; + } + if (msgb_length(msg) < 3) + goto out_free; + + ns_pdu_type = msg->data[2]; + if (ns_pdu_type != NS_PDUT_UNITDATA) { + /* enqueue NS signaling traffic at tail of queue */ + llist_add_tail(&msg->list, &priv->backlog.list); + osmo_timer_schedule(&priv->backlog.timer, 0, priv->backlog.retry_us); + return; + } + +out_free: + msgb_free(msg); +} + +static void fr_backlog_timer_cb(void *data) +{ + struct gprs_ns2_vc_bind *bind = data; + struct priv_bind *priv = bind->priv; + int i, rc; + + /* attempt to send up to 10 messages in every timer */ + for (i = 0; i < 10; i++) { + struct msgb *msg = msgb_dequeue(&priv->backlog.list); + if (!msg) + break; + + rc = fr_netif_write_one(bind, msg); + if (rc < 0) { + /* re-add at head of list */ + llist_add(&msg->list, &priv->backlog.list); + break; + } + } + + /* re-start timer if we still have data in the queue */ + if (!llist_empty(&priv->backlog.list)) + osmo_timer_schedule(&priv->backlog.timer, 0, priv->backlog.retry_us); +} + /* PDU from the frame relay layer towards the network interface (downwards) */ int fr_tx_cb(void *data, struct msgb *msg) { struct gprs_ns2_vc_bind *bind = data; struct priv_bind *priv = bind->priv; + int rc; - if (osmo_wqueue_enqueue(&priv->wqueue, msg)) { - LOGBIND(bind, LOGL_ERROR, "frame relay %s: failed to enqueue message\n", priv->netif); - msgb_free(msg); - return -EINVAL; + if (llist_empty(&priv->backlog.list)) { + /* attempt to transmit right now */ + rc = fr_netif_write_one(bind, msg); + if (rc < 0) { + /* enqueue to backlog in case it fails */ + backlog_enqueue_or_free(priv, msg); + } + } else { + /* enqueue to backlog */ + backlog_enqueue_or_free(priv, msg); } return 0; @@ -643,11 +751,11 @@ rc = open_socket(priv->ifindex, bind); if (rc < 0) goto err_fr; - osmo_wqueue_init(&priv->wqueue, 10); - priv->wqueue.write_cb = handle_netif_write; - priv->wqueue.read_cb = handle_netif_read; - osmo_fd_setup(&priv->wqueue.bfd, rc, OSMO_FD_READ, osmo_wqueue_bfd_cb, bind, 0); - rc = osmo_fd_register(&priv->wqueue.bfd); + INIT_LLIST_HEAD(&priv->backlog.list); + priv->backlog.retry_us = 2500; /* start with some non-zero value; this corrsponds to 496 bytes */ + osmo_timer_setup(&priv->backlog.timer, fr_backlog_timer_cb, bind); + osmo_fd_setup(&priv->backlog.ofd, rc, OSMO_FD_READ, fr_netif_ofd_cb, bind, 0); + rc = osmo_fd_register(&priv->backlog.ofd); if (rc < 0) goto err_fd; @@ -667,7 +775,7 @@ return rc; err_fd: - close(priv->wqueue.bfd.fd); + close(priv->backlog.ofd.fd); err_fr: osmo_fr_link_free(fr_link); err_priv: -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22555 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4f79a246236c94175ceffa5f3f556c8931c6bc62 Gerrit-Change-Number: 22555 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 30 21:15:34 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 30 Jan 2021 21:15:34 +0000 Subject: Change in libosmocore[master]: osmo-ns-dummy: Add simple NS traffic generator In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22553 to look at the new patch set (#2). Change subject: osmo-ns-dummy: Add simple NS traffic generator ...................................................................... osmo-ns-dummy: Add simple NS traffic generator This adds a simple NS traffic generator that can be used to perform load testing on NS links, particularly those with limited bandwidth such as frame-relay E1 lines. Related: OS#4995 Change-Id: Iad3b694c85962dbbc6b4a27a0ed5bc841add464f --- M utils/Makefile.am A utils/osmo-ns-dummy-vty.c M utils/osmo-ns-dummy.c 3 files changed, 312 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/53/22553/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22553 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Iad3b694c85962dbbc6b4a27a0ed5bc841add464f Gerrit-Change-Number: 22553 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 30 21:15:35 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 30 Jan 2021 21:15:35 +0000 Subject: Change in libosmocore[master]: ns2: Use named array initializers to avoid mistakes References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22556 ) Change subject: ns2: Use named array initializers to avoid mistakes ...................................................................... ns2: Use named array initializers to avoid mistakes It's always a bad idea to have an array of descriptions that's indexed by an enum, without using named initializers. It's too easy to get inconsistencies. Change-Id: Id0ebd2a202a465ca0298f4245f1fb5c495235fc8 --- M src/gb/gprs_ns2.c M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_message.c 3 files changed, 26 insertions(+), 29 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/56/22556/1 diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c index be35513..12cda33 100644 --- a/src/gb/gprs_ns2.c +++ b/src/gb/gprs_ns2.c @@ -160,18 +160,18 @@ }; static const struct rate_ctr_desc nsvc_ctr_description[] = { - { "packets:in", "Packets at NS Level ( In)" }, - { "packets:out","Packets at NS Level (Out)" }, - { "bytes:in", "Bytes at NS Level ( In)" }, - { "bytes:out", "Bytes at NS Level (Out)" }, - { "blocked", "NS-VC Block count " }, - { "dead", "NS-VC gone dead count " }, - { "replaced", "NS-VC replaced other count" }, - { "nsei-chg", "NS-VC changed NSEI count " }, - { "inv-nsvci", "NS-VCI was invalid count " }, - { "inv-nsei", "NSEI was invalid count " }, - { "lost:alive", "ALIVE ACK missing count " }, - { "lost:reset", "RESET ACK missing count " }, + [NS_CTR_PKTS_IN] = { "packets:in", "Packets at NS Level ( In)" }, + [NS_CTR_PKTS_OUT] = { "packets:out", "Packets at NS Level (Out)" }, + [NS_CTR_BYTES_IN] = { "bytes:in", "Bytes at NS Level ( In)" }, + [NS_CTR_BYTES_OUT] = { "bytes:out", "Bytes at NS Level (Out)" }, + [NS_CTR_BLOCKED] = { "blocked", "NS-VC Block count " }, + [NS_CTR_DEAD] = { "dead", "NS-VC gone dead count " }, + [NS_CTR_REPLACED] = { "replaced", "NS-VC replaced other count" }, + [NS_CTR_NSEI_CHG] = { "nsei-chg", "NS-VC changed NSEI count " }, + [NS_CTR_INV_VCI] = { "inv-nsvci", "NS-VCI was invalid count " }, + [NS_CTR_INV_NSEI] = { "inv-nsei", "NSEI was invalid count " }, + [NS_CTR_LOST_ALIVE] = { "lost:alive", "ALIVE ACK missing count " }, + [NS_CTR_LOST_RESET] = { "lost:reset", "RESET ACK missing count " }, }; static const struct rate_ctr_group_desc nsvc_ctrg_desc = { diff --git a/src/gb/gprs_ns2_internal.h b/src/gb/gprs_ns2_internal.h index 0574cb2..68f28db 100644 --- a/src/gb/gprs_ns2_internal.h +++ b/src/gb/gprs_ns2_internal.h @@ -85,6 +85,20 @@ NS2_CS_ERROR, /*!< Failed to process message */ }; +enum ns_ctr { + NS_CTR_PKTS_IN, + NS_CTR_PKTS_OUT, + NS_CTR_BYTES_IN, + NS_CTR_BYTES_OUT, + NS_CTR_BLOCKED, + NS_CTR_DEAD, + NS_CTR_REPLACED, + NS_CTR_NSEI_CHG, + NS_CTR_INV_VCI, + NS_CTR_INV_NSEI, + NS_CTR_LOST_ALIVE, + NS_CTR_LOST_RESET, +}; #define NSE_S_BLOCKED 0x0001 #define NSE_S_ALIVE 0x0002 diff --git a/src/gb/gprs_ns2_message.c b/src/gb/gprs_ns2_message.c index c525dd7..67ee254 100644 --- a/src/gb/gprs_ns2_message.c +++ b/src/gb/gprs_ns2_message.c @@ -46,23 +46,6 @@ LOGNSVC(nsvc, LOGL_DEBUG, "invalid packet %s with SNS\n", reason); \ } while (0) -enum ns_ctr { - NS_CTR_PKTS_IN, - NS_CTR_PKTS_OUT, - NS_CTR_BYTES_IN, - NS_CTR_BYTES_OUT, - NS_CTR_BLOCKED, - NS_CTR_DEAD, - NS_CTR_REPLACED, - NS_CTR_NSEI_CHG, - NS_CTR_INV_VCI, - NS_CTR_INV_NSEI, - NS_CTR_LOST_ALIVE, - NS_CTR_LOST_RESET, -}; - - - static int ns2_validate_reset(struct gprs_ns2_vc *nsvc, struct msgb *msg, struct tlv_parsed *tp, uint8_t *cause) { if (!TLVP_PRES_LEN(tp, NS_IE_CAUSE, 1) || -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22556 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Id0ebd2a202a465ca0298f4245f1fb5c495235fc8 Gerrit-Change-Number: 22556 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 30 21:15:36 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 30 Jan 2021 21:15:36 +0000 Subject: Change in libosmocore[master]: ns2: encapsulate calls to nsvc->bind->send_vc() References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22557 ) Change subject: ns2: encapsulate calls to nsvc->bind->send_vc() ...................................................................... ns2: encapsulate calls to nsvc->bind->send_vc() Don't call the function pointer of the underlying transport directly, as we many still want to do some common processing, such as statistics counting (see follow-up patches). Change-Id: I8d14c7b8d3aacc2bed033072d7934dbd6aab41df --- M src/gb/gprs_ns2_message.c 1 file changed, 17 insertions(+), 12 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/57/22557/1 diff --git a/src/gb/gprs_ns2_message.c b/src/gb/gprs_ns2_message.c index 67ee254..d97c2a5 100644 --- a/src/gb/gprs_ns2_message.c +++ b/src/gb/gprs_ns2_message.c @@ -166,6 +166,11 @@ } +static int ns_vc_tx(struct gprs_ns2_vc *nsvc, struct msgb *msg) +{ + return nsvc->bind->send_vc(nsvc, msg); +} + /* transmit functions */ static int ns2_tx_simple(struct gprs_ns2_vc *nsvc, uint8_t pdu_type) { @@ -183,7 +188,7 @@ nsh->pdu_type = pdu_type; - return nsvc->bind->send_vc(nsvc, msg); + return ns_vc_tx(nsvc, msg); } /*! Transmit a NS-BLOCK on a given NS-VC. @@ -216,7 +221,7 @@ msgb_tvlv_put(msg, NS_IE_CAUSE, 1, &cause); msgb_tvlv_put(msg, NS_IE_VCI, 2, (uint8_t *) &nsvci); - return nsvc->bind->send_vc(nsvc, msg); + return ns_vc_tx(nsvc, msg); } /*! Transmit a NS-BLOCK-ACK on a given NS-VC. @@ -245,7 +250,7 @@ msgb_tvlv_put(msg, NS_IE_VCI, 2, (uint8_t *) &nsvci); - return nsvc->bind->send_vc(nsvc, msg); + return ns_vc_tx(nsvc, msg); } /*! Transmit a NS-RESET on a given NS-VC. @@ -278,7 +283,7 @@ msgb_tvlv_put(msg, NS_IE_VCI, 2, (uint8_t *) &nsvci); msgb_tvlv_put(msg, NS_IE_NSEI, 2, (uint8_t *) &nsei); - return nsvc->bind->send_vc(nsvc, msg); + return ns_vc_tx(nsvc, msg); } /*! Transmit a NS-RESET-ACK on a given NS-VC. @@ -313,7 +318,7 @@ msgb_tvlv_put(msg, NS_IE_VCI, 2, (uint8_t *)&nsvci); msgb_tvlv_put(msg, NS_IE_NSEI, 2, (uint8_t *)&nsei); - return nsvc->bind->send_vc(nsvc, msg); + return ns_vc_tx(nsvc, msg); } /*! Transmit a NS-UNBLOCK on a given NS-VC. @@ -399,7 +404,7 @@ nsh->data[1] = bvci >> 8; nsh->data[2] = bvci & 0xff; - return nsvc->bind->send_vc(nsvc, msg); + return ns_vc_tx(nsvc, msg); } /*! Transmit a NS-STATUS on a given NS-VC. @@ -454,7 +459,7 @@ if (cause == NS_CAUSE_BVCI_UNKNOWN) msgb_tvlv_put(msg, NS_IE_VCI, 2, (uint8_t *)&bvci); - return nsvc->bind->send_vc(nsvc, msg); + return ns_vc_tx(nsvc, msg); } @@ -514,7 +519,7 @@ (const uint8_t *)ip6_elems); } - return nsvc->bind->send_vc(nsvc, msg); + return ns_vc_tx(nsvc, msg); } /*! Encode + Transmit a SNS-CONFIG as per Section 9.3.4. @@ -569,7 +574,7 @@ (const uint8_t *)ip6_elems); } - return nsvc->bind->send_vc(nsvc, msg); + return ns_vc_tx(nsvc, msg); } /*! Encode + Transmit a SNS-CONFIG-ACK as per Section 9.3.5. @@ -608,7 +613,7 @@ if (cause) msgb_tvlv_put(msg, NS_IE_CAUSE, 1, cause); - return nsvc->bind->send_vc(nsvc, msg); + return ns_vc_tx(nsvc, msg); } @@ -657,7 +662,7 @@ if (ip6_ep_nr >= 0) msgb_tv16_put(msg, NS_IE_IPv6_EP_NR, ip6_ep_nr); - return nsvc->bind->send_vc(nsvc, msg); + return ns_vc_tx(nsvc, msg); } /*! Encode + Transmit a SNS-SIZE-ACK as per Section 9.3.8. @@ -692,7 +697,7 @@ if (cause) msgb_tvlv_put(msg, NS_IE_CAUSE, 1, cause); - return nsvc->bind->send_vc(nsvc, msg); + return ns_vc_tx(nsvc, msg); } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22557 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I8d14c7b8d3aacc2bed033072d7934dbd6aab41df Gerrit-Change-Number: 22557 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 30 21:15:36 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 30 Jan 2021 21:15:36 +0000 Subject: Change in libosmocore[master]: ns2: Increment Rx and Tx byte / packet counters References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22558 ) Change subject: ns2: Increment Rx and Tx byte / packet counters ...................................................................... ns2: Increment Rx and Tx byte / packet counters Change-Id: If5e93f69cddbc8962cbbae38c07b504dd9b1ecd1 --- M src/gb/gprs_ns2.c M src/gb/gprs_ns2_message.c 2 files changed, 6 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/58/22558/1 diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c index 12cda33..35812e4 100644 --- a/src/gb/gprs_ns2.c +++ b/src/gb/gprs_ns2.c @@ -1053,6 +1053,9 @@ log_set_context(LOG_CTX_GB_NSE, nsvc->nse); log_set_context(LOG_CTX_GB_NSVC, nsvc); + rate_ctr_inc(&nsvc->ctrg->ctr[NS_CTR_PKTS_IN]); + rate_ctr_add(&nsvc->ctrg->ctr[NS_CTR_BYTES_IN], msg->len); + if (msg->len < sizeof(struct gprs_ns_hdr)) return -EINVAL; diff --git a/src/gb/gprs_ns2_message.c b/src/gb/gprs_ns2_message.c index d97c2a5..cd49896 100644 --- a/src/gb/gprs_ns2_message.c +++ b/src/gb/gprs_ns2_message.c @@ -168,6 +168,9 @@ static int ns_vc_tx(struct gprs_ns2_vc *nsvc, struct msgb *msg) { + rate_ctr_inc(&nsvc->ctrg->ctr[NS_CTR_PKTS_OUT]); + rate_ctr_add(&nsvc->ctrg->ctr[NS_CTR_BYTES_OUT], msgb_length(msg)); + return nsvc->bind->send_vc(nsvc, msg); } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22558 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If5e93f69cddbc8962cbbae38c07b504dd9b1ecd1 Gerrit-Change-Number: 22558 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 30 21:15:37 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 30 Jan 2021 21:15:37 +0000 Subject: Change in libosmocore[master]: ns2: Properly report packet drops in FR code References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22559 ) Change subject: ns2: Properly report packet drops in FR code ...................................................................... ns2: Properly report packet drops in FR code When the FR code decides to drop a packet (ENOBUFS from the AF_PACKET socket for non-signaling packet), let's report that back via the frame_relay code into the generic NS2 code. This way the generic NS2 code always knows if a packet was actually successfully transmitted, or if it was dropped for some reason. Change-Id: I4bb517fd04af69dbe6da628b132d57994ab3e5a4 --- M src/gb/gprs_ns2_fr.c 1 file changed, 6 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/59/22559/1 diff --git a/src/gb/gprs_ns2_fr.c b/src/gb/gprs_ns2_fr.c index 854eccf..ba76c71 100644 --- a/src/gb/gprs_ns2_fr.c +++ b/src/gb/gprs_ns2_fr.c @@ -320,7 +320,7 @@ #define LMI_Q933A_DLCI 0 /* enqueue to backlog (LMI, signaling) or drop (userdata msg) */ -static void backlog_enqueue_or_free(struct priv_bind *priv, struct msgb *msg) +static int backlog_enqueue_or_free(struct priv_bind *priv, struct msgb *msg) { uint8_t dlci = msg->data[0]; uint8_t ns_pdu_type; @@ -333,7 +333,7 @@ /* enqueue Q.933 LMI at head of queue */ llist_add(&msg->list, &priv->backlog.list); osmo_timer_schedule(&priv->backlog.timer, 0, priv->backlog.retry_us); - return; + return 0; } if (msgb_length(msg) < 3) goto out_free; @@ -343,11 +343,12 @@ /* enqueue NS signaling traffic at tail of queue */ llist_add_tail(&msg->list, &priv->backlog.list); osmo_timer_schedule(&priv->backlog.timer, 0, priv->backlog.retry_us); - return; + return 0; } out_free: msgb_free(msg); + return -1; } static void fr_backlog_timer_cb(void *data) @@ -387,11 +388,11 @@ rc = fr_netif_write_one(bind, msg); if (rc < 0) { /* enqueue to backlog in case it fails */ - backlog_enqueue_or_free(priv, msg); + return backlog_enqueue_or_free(priv, msg); } } else { /* enqueue to backlog */ - backlog_enqueue_or_free(priv, msg); + return backlog_enqueue_or_free(priv, msg); } return 0; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22559 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4bb517fd04af69dbe6da628b132d57994ab3e5a4 Gerrit-Change-Number: 22559 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 30 21:15:38 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 30 Jan 2021 21:15:38 +0000 Subject: Change in libosmocore[master]: ns2: count number of dropped packets / bytes on transmit References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22560 ) Change subject: ns2: count number of dropped packets / bytes on transmit ...................................................................... ns2: count number of dropped packets / bytes on transmit Differentiate between successfully transmitted packets/bytes, and pacets/bytes that were dropped (i.e. overflow of net-device) OsmoNSdummy# show ns nsvc 1001 stats NSVCI 01001: UNBLOCKED PERSIST data_weight=1 sig_weight=1 fr)netif: hdlc1 dlci: 1001 NSVC Peer Statistics: Packets at NS Level ( In): 36 (0/s 8/m 32/h 0/d) Packets at NS Level (Out): 23344 (170/s 20556/m 13119/h 0/d) Dropped Packets (Out): 30692 (230/s 27056/m 17221/h 0/d) Bytes at NS Level ( In): 262 (0/s 24/m 250/h 0/d) Bytes at NS Level (Out): 32741312 (238680/s 28849400/m 18391024/h 0/d) Dropped Bytes (Out): 43014628 (322920/s 37986624/m 24101344/h 0/d) Change-Id: If21906ff5379038f7be10cf48c68d1f756dd7c1e --- M src/gb/gprs_ns2.c M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_message.c 3 files changed, 17 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/60/22560/1 diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c index 35812e4..766237d 100644 --- a/src/gb/gprs_ns2.c +++ b/src/gb/gprs_ns2.c @@ -162,8 +162,10 @@ static const struct rate_ctr_desc nsvc_ctr_description[] = { [NS_CTR_PKTS_IN] = { "packets:in", "Packets at NS Level ( In)" }, [NS_CTR_PKTS_OUT] = { "packets:out", "Packets at NS Level (Out)" }, + [NS_CTR_PKTS_OUT_DROP] = { "packets:out:drop", "Dropped Packets (Out)" }, [NS_CTR_BYTES_IN] = { "bytes:in", "Bytes at NS Level ( In)" }, [NS_CTR_BYTES_OUT] = { "bytes:out", "Bytes at NS Level (Out)" }, + [NS_CTR_BYTES_OUT_DROP] = { "bytes:out:drop", "Dropped Bytes (Out)" }, [NS_CTR_BLOCKED] = { "blocked", "NS-VC Block count " }, [NS_CTR_DEAD] = { "dead", "NS-VC gone dead count " }, [NS_CTR_REPLACED] = { "replaced", "NS-VC replaced other count" }, diff --git a/src/gb/gprs_ns2_internal.h b/src/gb/gprs_ns2_internal.h index 68f28db..98b3f29 100644 --- a/src/gb/gprs_ns2_internal.h +++ b/src/gb/gprs_ns2_internal.h @@ -88,8 +88,10 @@ enum ns_ctr { NS_CTR_PKTS_IN, NS_CTR_PKTS_OUT, + NS_CTR_PKTS_OUT_DROP, NS_CTR_BYTES_IN, NS_CTR_BYTES_OUT, + NS_CTR_BYTES_OUT_DROP, NS_CTR_BLOCKED, NS_CTR_DEAD, NS_CTR_REPLACED, diff --git a/src/gb/gprs_ns2_message.c b/src/gb/gprs_ns2_message.c index cd49896..bfb8781 100644 --- a/src/gb/gprs_ns2_message.c +++ b/src/gb/gprs_ns2_message.c @@ -168,10 +168,20 @@ static int ns_vc_tx(struct gprs_ns2_vc *nsvc, struct msgb *msg) { - rate_ctr_inc(&nsvc->ctrg->ctr[NS_CTR_PKTS_OUT]); - rate_ctr_add(&nsvc->ctrg->ctr[NS_CTR_BYTES_OUT], msgb_length(msg)); + unsigned int bytes = msgb_length(msg); + int rc; - return nsvc->bind->send_vc(nsvc, msg); + + rc = nsvc->bind->send_vc(nsvc, msg); + if (rc < 0) { + rate_ctr_inc(&nsvc->ctrg->ctr[NS_CTR_PKTS_OUT_DROP]); + rate_ctr_add(&nsvc->ctrg->ctr[NS_CTR_BYTES_OUT_DROP], bytes); + } else { + rate_ctr_inc(&nsvc->ctrg->ctr[NS_CTR_PKTS_OUT]); + rate_ctr_add(&nsvc->ctrg->ctr[NS_CTR_BYTES_OUT], bytes); + } + + return rc; } /* transmit functions */ -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22560 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If21906ff5379038f7be10cf48c68d1f756dd7c1e Gerrit-Change-Number: 22560 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 30 21:18:09 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 30 Jan 2021 21:18:09 +0000 Subject: Change in osmo-hlr[master]: Fix Coverity Warnings In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-hlr/+/22554 ) Change subject: Fix Coverity Warnings ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/22554 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-Change-Id: Ib2bd9b2d6e9e559e61a895a25235669dae05fdf6 Gerrit-Change-Number: 22554 Gerrit-PatchSet: 2 Gerrit-Owner: keith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 30 Jan 2021 21:18:09 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 30 21:18:11 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 30 Jan 2021 21:18:11 +0000 Subject: Change in osmo-hlr[master]: Fix Coverity Warnings In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-hlr/+/22554 ) Change subject: Fix Coverity Warnings ...................................................................... Fix Coverity Warnings Explicitly check filter_type is not NULL even though the current code never passed a NULL filter_type unless filter was also NULL. Remove unreachable code. Change-Id: Ib2bd9b2d6e9e559e61a895a25235669dae05fdf6 Related: coverity CID#216865 Related: coverity CID#216867 --- M src/db_hlr.c 1 file changed, 3 insertions(+), 7 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/db_hlr.c b/src/db_hlr.c index a181c0c..a4c467e 100644 --- a/src/db_hlr.c +++ b/src/db_hlr.c @@ -663,7 +663,7 @@ return -EIO; } - if (filter && strcmp(filter_type, "last_lu_seen") != 0) { + if (filter_type && filter && strcmp(filter_type, "last_lu_seen") != 0) { if (strcmp(filter, "on") == 0) { sprintf(search, "%s", "1"); } else if (strcmp(filter, "off") == 0) { @@ -704,15 +704,11 @@ db_remove_reset(stmt); if (rc != SQLITE_DONE) { *err = sqlite3_errmsg(dbc->db); - return -EIO; - } else if (rc == SQLITE_DONE) { - *err = NULL; - return 0; - } else { - *err = sqlite3_errmsg(dbc->db); LOGP(DAUC, LOGL_ERROR, "Cannot read subscribers from db:: %s\n", *err); return rc; } + *err = NULL; + return 0; } /*! Retrieve subscriber data from the HLR database. -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/22554 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-Change-Id: Ib2bd9b2d6e9e559e61a895a25235669dae05fdf6 Gerrit-Change-Number: 22554 Gerrit-PatchSet: 2 Gerrit-Owner: keith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 30 21:19:02 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 30 Jan 2021 21:19:02 +0000 Subject: Change in libosmocore[master]: ns2: Use proper return value from write_queue callback function In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22551 ) Change subject: ns2: Use proper return value from write_queue callback function ...................................................................... Patch Set 1: note this will be replaced in a follow-up commit anyway. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22551 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I93c858facfe7e1c533df8dccc4502a574686bc8a Gerrit-Change-Number: 22551 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-CC: daniel Gerrit-CC: lynxis lazus Gerrit-Comment-Date: Sat, 30 Jan 2021 21:19:02 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 30 21:19:21 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 30 Jan 2021 21:19:21 +0000 Subject: Change in libosmocore[master]: ns2: Log ERROR if we cannot transmit a packet due to ENOBUFS In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22552 ) Change subject: ns2: Log ERROR if we cannot transmit a packet due to ENOBUFS ...................................................................... Patch Set 1: note this will be removed in a follow-up commit anyway -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22552 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I2ba64e96c60e23d2e6c8ecdcab0b52b3833f092c Gerrit-Change-Number: 22552 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Sat, 30 Jan 2021 21:19:21 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 30 21:45:07 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 30 Jan 2021 21:45:07 +0000 Subject: Change in libosmocore[master]: ns2: Implement more rate counters References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22561 ) Change subject: ns2: Implement more rate counters ...................................................................... ns2: Implement more rate counters The counters had all been lost in the ns -> ns2 configuration, let's try to implement some more of them: LOST_ALIVE, BLOCKED, LOST_RESET. Change-Id: I75d8637bd142722fdf9a162a2369aa9cdc980a57 --- M src/gb/gprs_ns2_vc_fsm.c 1 file changed, 5 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/61/22561/1 diff --git a/src/gb/gprs_ns2_vc_fsm.c b/src/gb/gprs_ns2_vc_fsm.c index 457a41f..e69f327 100644 --- a/src/gb/gprs_ns2_vc_fsm.c +++ b/src/gb/gprs_ns2_vc_fsm.c @@ -204,6 +204,7 @@ osmo_timer_schedule(&priv->alive.timer, nsi->timeout[NS_TOUT_TNS_ALIVE], 0); break; case NS_TOUT_TNS_ALIVE: + rate_ctr_inc(&priv->nsvc->ctrg->ctr[NS_CTR_LOST_ALIVE]); priv->alive.N++; if (priv->alive.N <= nsi->timeout[NS_TOUT_TNS_ALIVE_RETRIES]) { @@ -296,8 +297,10 @@ { struct gprs_ns2_vc_priv *priv = fi->priv; - if (old_state != GPRS_NS2_ST_BLOCKED) + if (old_state != GPRS_NS2_ST_BLOCKED) { priv->N = 0; + rate_ctr_inc(&priv->nsvc->ctrg->ctr[NS_CTR_BLOCKED]); + } if (priv->om_blocked) { /* we are already blocked after a RESET */ @@ -480,6 +483,7 @@ switch (fi->state) { case GPRS_NS2_ST_RESET: if (priv->initiate_reset) { + rate_ctr_inc(&priv->nsvc->ctrg->ctr[NS_CTR_LOST_RESET]); priv->N++; if (priv->N <= nsi->timeout[NS_TOUT_TNS_RESET_RETRIES]) { osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_RESET, nsi->timeout[NS_TOUT_TNS_RESET], 0); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22561 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I75d8637bd142722fdf9a162a2369aa9cdc980a57 Gerrit-Change-Number: 22561 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 30 21:45:08 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 30 Jan 2021 21:45:08 +0000 Subject: Change in libosmocore[master]: ns2: Add a rate_ctr for each NS-UNBLOCK References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22562 ) Change subject: ns2: Add a rate_ctr for each NS-UNBLOCK ...................................................................... ns2: Add a rate_ctr for each NS-UNBLOCK We have one for BLOCK, so let's also add one for UNBLOCK. Change-Id: I693109b7bc4d72b6803b40aae15327389aa37c69 --- M src/gb/gprs_ns2.c M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_vc_fsm.c 3 files changed, 5 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/62/22562/1 diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c index 766237d..f1d4da9 100644 --- a/src/gb/gprs_ns2.c +++ b/src/gb/gprs_ns2.c @@ -167,6 +167,7 @@ [NS_CTR_BYTES_OUT] = { "bytes:out", "Bytes at NS Level (Out)" }, [NS_CTR_BYTES_OUT_DROP] = { "bytes:out:drop", "Dropped Bytes (Out)" }, [NS_CTR_BLOCKED] = { "blocked", "NS-VC Block count " }, + [NS_CTR_UNBLOCKED] = { "unblocked", "NS-VC Unblock count " }, [NS_CTR_DEAD] = { "dead", "NS-VC gone dead count " }, [NS_CTR_REPLACED] = { "replaced", "NS-VC replaced other count" }, [NS_CTR_NSEI_CHG] = { "nsei-chg", "NS-VC changed NSEI count " }, diff --git a/src/gb/gprs_ns2_internal.h b/src/gb/gprs_ns2_internal.h index 98b3f29..e149767 100644 --- a/src/gb/gprs_ns2_internal.h +++ b/src/gb/gprs_ns2_internal.h @@ -93,6 +93,7 @@ NS_CTR_BYTES_OUT, NS_CTR_BYTES_OUT_DROP, NS_CTR_BLOCKED, + NS_CTR_UNBLOCKED, NS_CTR_DEAD, NS_CTR_REPLACED, NS_CTR_NSEI_CHG, diff --git a/src/gb/gprs_ns2_vc_fsm.c b/src/gb/gprs_ns2_vc_fsm.c index e69f327..839bf6f 100644 --- a/src/gb/gprs_ns2_vc_fsm.c +++ b/src/gb/gprs_ns2_vc_fsm.c @@ -373,6 +373,9 @@ struct gprs_ns2_vc *nsvc = priv->nsvc; struct gprs_ns2_nse *nse = nsvc->nse; + if (old_state != GPRS_NS2_ST_UNBLOCKED) + rate_ctr_inc(&nsvc->ctrg->ctr[NS_CTR_UNBLOCKED]); + priv->accept_unitdata = true; ns2_nse_notify_unblocked(nsvc, true); ns2_prim_status_ind(nse, nsvc, 0, GPRS_NS2_AFF_CAUSE_VC_RECOVERY); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22562 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I693109b7bc4d72b6803b40aae15327389aa37c69 Gerrit-Change-Number: 22562 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 30 21:45:08 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 30 Jan 2021 21:45:08 +0000 Subject: Change in libosmocore[master]: ns2: remove "invalid NSEI" and "invalid NS-VCI" counters References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22563 ) Change subject: ns2: remove "invalid NSEI" and "invalid NS-VCI" counters ...................................................................... ns2: remove "invalid NSEI" and "invalid NS-VCI" counters Those counters don't make sense as per-NSVC counters. They would need to be introduced as per-NSE counters, if so desired. Change-Id: Iadb4baee6d459e2db7b16a64a213164572774a2e --- M src/gb/gprs_ns2.c M src/gb/gprs_ns2_internal.h 2 files changed, 0 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/63/22563/1 diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c index f1d4da9..511c4e7 100644 --- a/src/gb/gprs_ns2.c +++ b/src/gb/gprs_ns2.c @@ -171,8 +171,6 @@ [NS_CTR_DEAD] = { "dead", "NS-VC gone dead count " }, [NS_CTR_REPLACED] = { "replaced", "NS-VC replaced other count" }, [NS_CTR_NSEI_CHG] = { "nsei-chg", "NS-VC changed NSEI count " }, - [NS_CTR_INV_VCI] = { "inv-nsvci", "NS-VCI was invalid count " }, - [NS_CTR_INV_NSEI] = { "inv-nsei", "NSEI was invalid count " }, [NS_CTR_LOST_ALIVE] = { "lost:alive", "ALIVE ACK missing count " }, [NS_CTR_LOST_RESET] = { "lost:reset", "RESET ACK missing count " }, }; diff --git a/src/gb/gprs_ns2_internal.h b/src/gb/gprs_ns2_internal.h index e149767..0b264b6 100644 --- a/src/gb/gprs_ns2_internal.h +++ b/src/gb/gprs_ns2_internal.h @@ -97,8 +97,6 @@ NS_CTR_DEAD, NS_CTR_REPLACED, NS_CTR_NSEI_CHG, - NS_CTR_INV_VCI, - NS_CTR_INV_NSEI, NS_CTR_LOST_ALIVE, NS_CTR_LOST_RESET, }; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22563 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Iadb4baee6d459e2db7b16a64a213164572774a2e Gerrit-Change-Number: 22563 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 30 23:23:10 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 30 Jan 2021 23:23:10 +0000 Subject: Change in osmo-hlr[master]: db_hlr: db_subscrs_get(): fix NULL-pointer dereference References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-hlr/+/22564 ) Change subject: db_hlr: db_subscrs_get(): fix NULL-pointer dereference ...................................................................... db_hlr: db_subscrs_get(): fix NULL-pointer dereference Change-Id: I346dc66c2f88b1f3504b8be60f9608e69ed40332 Fixes: CID#216867 --- M src/db_hlr.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-hlr refs/changes/64/22564/1 diff --git a/src/db_hlr.c b/src/db_hlr.c index a181c0c..2bcdeaa 100644 --- a/src/db_hlr.c +++ b/src/db_hlr.c @@ -663,7 +663,7 @@ return -EIO; } - if (filter && strcmp(filter_type, "last_lu_seen") != 0) { + if (filter && filter_type && strcmp(filter_type, "last_lu_seen") != 0) { if (strcmp(filter, "on") == 0) { sprintf(search, "%s", "1"); } else if (strcmp(filter, "off") == 0) { -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/22564 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-Change-Id: I346dc66c2f88b1f3504b8be60f9608e69ed40332 Gerrit-Change-Number: 22564 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 30 23:28:05 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 30 Jan 2021 23:28:05 +0000 Subject: Change in osmo-hlr[master]: db_hlr: db_subscrs_get(): fix unreachable code References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-hlr/+/22565 ) Change subject: db_hlr: db_subscrs_get(): fix unreachable code ...................................................................... db_hlr: db_subscrs_get(): fix unreachable code Change-Id: Iddf94f130365c2acc97f91908e0b705672fd5d81 Fixes: CID#216865 --- M src/db_hlr.c 1 file changed, 3 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-hlr refs/changes/65/22565/1 diff --git a/src/db_hlr.c b/src/db_hlr.c index 2bcdeaa..8b0450e 100644 --- a/src/db_hlr.c +++ b/src/db_hlr.c @@ -704,15 +704,12 @@ db_remove_reset(stmt); if (rc != SQLITE_DONE) { *err = sqlite3_errmsg(dbc->db); - return -EIO; - } else if (rc == SQLITE_DONE) { - *err = NULL; - return 0; - } else { - *err = sqlite3_errmsg(dbc->db); LOGP(DAUC, LOGL_ERROR, "Cannot read subscribers from db:: %s\n", *err); return rc; } + + *err = NULL; + return 0; } /*! Retrieve subscriber data from the HLR database. -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/22565 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-Change-Id: Iddf94f130365c2acc97f91908e0b705672fd5d81 Gerrit-Change-Number: 22565 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 30 23:30:09 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 30 Jan 2021 23:30:09 +0000 Subject: Change in osmo-hlr[master]: db_hlr: db_subscrs_get(): fix unreachable code In-Reply-To: References: Message-ID: fixeria has abandoned this change. ( https://gerrit.osmocom.org/c/osmo-hlr/+/22565 ) Change subject: db_hlr: db_subscrs_get(): fix unreachable code ...................................................................... Abandoned Already fixed in master. -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/22565 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-Change-Id: Iddf94f130365c2acc97f91908e0b705672fd5d81 Gerrit-Change-Number: 22565 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-CC: Jenkins Builder Gerrit-MessageType: abandon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jan 30 23:30:14 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 30 Jan 2021 23:30:14 +0000 Subject: Change in osmo-hlr[master]: db_hlr: db_subscrs_get(): fix NULL-pointer dereference In-Reply-To: References: Message-ID: fixeria has abandoned this change. ( https://gerrit.osmocom.org/c/osmo-hlr/+/22564 ) Change subject: db_hlr: db_subscrs_get(): fix NULL-pointer dereference ...................................................................... Abandoned Already fixed in master. -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/22564 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-Change-Id: I346dc66c2f88b1f3504b8be60f9608e69ed40332 Gerrit-Change-Number: 22564 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: abandon -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Sun Jan 31 01:34:08 2021 From: admin at opensuse.org (OBS Notification) Date: Sun, 31 Jan 2021 01:34:08 +0000 Subject: Build failure of network:osmocom:nightly/libosmocore in Debian_8.0/i586 In-Reply-To: References: Message-ID: <6016092147a96_32fe2b11e4bbc5f81215333@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libosmocore/Debian_8.0/i586 Package network:osmocom:nightly/libosmocore failed to build in Debian_8.0/i586 Check out the package for editing: osc checkout network:osmocom:nightly libosmocore Last lines of build log: [ 205s] make[3]: Entering directory '/usr/src/packages/BUILD/src/sim' [ 205s] CC core.lo [ 205s] CC reader.lo [ 206s] CC class_tables.lo [ 206s] CC card_fs_sim.lo [ 206s] card_fs_sim.c:105:1: error: initializer element is not constant [ 206s] }; [ 206s] ^ [ 206s] card_fs_sim.c:105:1: error: (near initialization for 'ts11_11_sw[22]') [ 206s] Makefile:531: recipe for target 'card_fs_sim.lo' failed [ 206s] make[3]: *** [card_fs_sim.lo] Error 1 [ 206s] make[3]: Leaving directory '/usr/src/packages/BUILD/src/sim' [ 206s] Makefile:693: recipe for target 'all-recursive' failed [ 206s] make[2]: *** [all-recursive] Error 1 [ 206s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 206s] Makefile:471: recipe for target 'all' failed [ 206s] make[1]: *** [all] Error 2 [ 206s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 206s] dh_auto_build: make -j1 returned exit code 2 [ 206s] debian/rules:15: recipe for target 'build' failed [ 206s] make: *** [build] Error 2 [ 206s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 206s] ### VM INTERACTION START ### [ 207s] Powering off. [ 207s] [ 199.020095] reboot: Power down [ 207s] ### VM INTERACTION END ### [ 207s] [ 207s] lamb09 failed "build libosmocore_1.4.0.429.4d400.dsc" at Sun Jan 31 01:33:56 UTC 2021. [ 207s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sun Jan 31 01:41:17 2021 From: admin at opensuse.org (OBS Notification) Date: Sun, 31 Jan 2021 01:41:17 +0000 Subject: Build failure of network:osmocom:nightly/libosmocore in Debian_8.0/x86_64 In-Reply-To: References: Message-ID: <60160ac2a4415_32fe2b11e4bbc5f812165c8@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libosmocore/Debian_8.0/x86_64 Package network:osmocom:nightly/libosmocore failed to build in Debian_8.0/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly libosmocore Last lines of build log: [ 152s] make[3]: Entering directory '/usr/src/packages/BUILD/src/sim' [ 152s] CC core.lo [ 152s] CC reader.lo [ 153s] CC class_tables.lo [ 153s] CC card_fs_sim.lo [ 153s] card_fs_sim.c:105:1: error: initializer element is not constant [ 153s] }; [ 153s] ^ [ 153s] card_fs_sim.c:105:1: error: (near initialization for 'ts11_11_sw[22]') [ 153s] Makefile:531: recipe for target 'card_fs_sim.lo' failed [ 153s] make[3]: *** [card_fs_sim.lo] Error 1 [ 153s] make[3]: Leaving directory '/usr/src/packages/BUILD/src/sim' [ 153s] Makefile:693: recipe for target 'all-recursive' failed [ 153s] make[2]: *** [all-recursive] Error 1 [ 153s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 153s] Makefile:471: recipe for target 'all' failed [ 153s] make[1]: *** [all] Error 2 [ 153s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 153s] dh_auto_build: make -j1 returned exit code 2 [ 153s] debian/rules:15: recipe for target 'build' failed [ 153s] make: *** [build] Error 2 [ 153s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 153s] ### VM INTERACTION START ### [ 154s] Powering off. [ 154s] [ 149.345604] reboot: Power down [ 155s] ### VM INTERACTION END ### [ 155s] [ 155s] goat11 failed "build libosmocore_1.4.0.429.4d400.dsc" at Sun Jan 31 01:41:11 UTC 2021. [ 155s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sun Jan 31 02:27:08 2021 From: admin at opensuse.org (OBS Notification) Date: Sun, 31 Jan 2021 02:27:08 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.10/x86_64 In-Reply-To: References: Message-ID: <6016158acc509_32fe2b11e4bbc5f812278ee@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/xUbuntu_20.10/x86_64 Package network:osmocom:nightly/simtrace2 failed to build in xUbuntu_20.10/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 113s] [COMPILING apps/dfu/main.c] [ 114s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 114s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 114s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 114s] Memory region Used Size Region Size %age Used [ 114s] rom: 16580 B 16 KB 101.20% [ 114s] ram: 11672 B 48 KB 23.75/usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 114s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 114s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 114s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 114s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 114s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: warning: changing start of section .stack by 4 bytes [ 114s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 196 bytes [ 114s] collect2: error: ld returned 1 exit status [ 114s] % [ 114s] make[2]: *** [Makefile:234: flash] Error 1 [ 114s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 114s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 114s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 114s] dh_auto_build: error: make -j1 returned exit code 2 [ 114s] make: *** [debian/rules:16: build] Error 25 [ 114s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 114s] ### VM INTERACTION START ### [ 117s] [ 105.568352] sysrq: Power Off [ 117s] [ 105.573204] reboot: Power down [ 117s] ### VM INTERACTION END ### [ 117s] [ 117s] sheep87 failed "build simtrace2_0.7.0.70.657c.dsc" at Sun Jan 31 02:27:07 UTC 2021. [ 117s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sun Jan 31 02:28:34 2021 From: admin at opensuse.org (OBS Notification) Date: Sun, 31 Jan 2021 02:28:34 +0000 Subject: Build failure of network:osmocom:nightly/simtrace2 in xUbuntu_20.04/x86_64 In-Reply-To: References: Message-ID: <601615e17491e_32fe2b11e4bbc5f8122797f@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/simtrace2/xUbuntu_20.04/x86_64 Package network:osmocom:nightly/simtrace2 failed to build in xUbuntu_20.04/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly simtrace2 Last lines of build log: [ 183s] [COMPILING libboard/qmod/source/wwan_perst.c] [ 183s] [COMPILING libboard/qmod/source/card_pres.c] [ 183s] [COMPILING libboard/qmod/source/wwan_led.c] [ 183s] [COMPILING libboard/qmod/source/i2c.c] [ 183s] [COMPILING libboard/qmod/source/board_qmod.c] [ 184s] [COMPILING apps/dfu/main.c] [ 184s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu.c] [ 184s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_desc.c] [ 184s] [COMPILING ./atmel_softpack_libraries/usb/device/dfu/dfu_driver.c] [ 185s] Memory region Used Size Region Size %age Used [ 185s] rom: 16588 B 16 KB 101.25% [ 185s] ram: 11672 B 48 KB 23.75/usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: bin/qmod-dfu-flash.elf section `.text' will not fit in region `rom' [ 185s] /usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 204 bytes [ 185s] collect2: error: ld returned 1 exit status [ 185s] % [ 185s] make[2]: *** [Makefile:234: flash] Error 1 [ 185s] make[2]: Leaving directory '/usr/src/packages/BUILD/firmware' [ 185s] make[1]: *** [Makefile:13: fw-qmod-dfu] Error 2 [ 185s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 185s] dh_auto_build: error: make -j1 returned exit code 2 [ 185s] make: *** [debian/rules:16: build] Error 25 [ 185s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 185s] ### VM INTERACTION START ### [ 188s] [ 164.954162] sysrq: Power Off [ 188s] [ 164.970678] reboot: Power down [ 188s] ### VM INTERACTION END ### [ 188s] [ 188s] cloud104 failed "build simtrace2_0.7.0.70.657c.dsc" at Sun Jan 31 02:28:28 UTC 2021. [ 188s] -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Sun Jan 31 11:35:04 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 31 Jan 2021 11:35:04 +0000 Subject: Change in libosmocore[master]: ns2: Work around AF_PACKET socket ENOBUFS problems In-Reply-To: References: Message-ID: Hello Jenkins Builder, lynxis lazus, daniel, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22555 to look at the new patch set (#3). Change subject: ns2: Work around AF_PACKET socket ENOBUFS problems ...................................................................... ns2: Work around AF_PACKET socket ENOBUFS problems AF_PACKET sockets cannot be written-to using select(), as they will always return "writable" but then still fail with ENOBUFS. This also means that we cannot use osmo_wqueue() as it assumes that a writable socket can actually be written to. As there's no way to figure out when exactly we can again perform a successful write, we have no other option but to start a timer and re-try at a later time. We will scale that timer based on the estimated duration of transmission for the just-failed PDU on the line rate of a 31TS E1 Line. Furthermore, with this patch, we stop queueing anything but signaling traffic (NS-BVCI=0) or Q.933 LMI. User data (NS-BVCI != 0) will instead be dropped in order to avoid buffer-bloat. Change-Id: I4f79a246236c94175ceffa5f3f556c8931c6bc62 Closes: OS#4995 --- M src/gb/gprs_ns2_fr.c 1 file changed, 166 insertions(+), 25 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/55/22555/3 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22555 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4f79a246236c94175ceffa5f3f556c8931c6bc62 Gerrit-Change-Number: 22555 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 31 11:35:04 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 31 Jan 2021 11:35:04 +0000 Subject: Change in libosmocore[master]: ns2: Use named array initializers to avoid mistakes In-Reply-To: References: Message-ID: Hello Jenkins Builder, daniel, lynxis lazus, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22556 to look at the new patch set (#2). Change subject: ns2: Use named array initializers to avoid mistakes ...................................................................... ns2: Use named array initializers to avoid mistakes It's always a bad idea to have an array of descriptions that's indexed by an enum, without using named initializers. It's too easy to get inconsistencies. Change-Id: Id0ebd2a202a465ca0298f4245f1fb5c495235fc8 --- M src/gb/gprs_ns2.c M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_message.c 3 files changed, 27 insertions(+), 30 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/56/22556/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22556 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Id0ebd2a202a465ca0298f4245f1fb5c495235fc8 Gerrit-Change-Number: 22556 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 31 11:35:04 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 31 Jan 2021 11:35:04 +0000 Subject: Change in libosmocore[master]: ns2: Properly report packet drops in FR code In-Reply-To: References: Message-ID: Hello Jenkins Builder, daniel, lynxis lazus, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22559 to look at the new patch set (#2). Change subject: ns2: Properly report packet drops in FR code ...................................................................... ns2: Properly report packet drops in FR code When the FR code decides to drop a packet (ENOBUFS from the AF_PACKET socket for non-signaling packet), let's report that back via the frame_relay code into the generic NS2 code. This way the generic NS2 code always knows if a packet was actually successfully transmitted, or if it was dropped for some reason. Change-Id: I4bb517fd04af69dbe6da628b132d57994ab3e5a4 --- M src/gb/gprs_ns2_fr.c 1 file changed, 7 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/59/22559/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22559 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4bb517fd04af69dbe6da628b132d57994ab3e5a4 Gerrit-Change-Number: 22559 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 31 11:35:08 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 31 Jan 2021 11:35:08 +0000 Subject: Change in libosmocore[master]: ns2: Move to one common/shared ns2_bind_alloc() References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22566 ) Change subject: ns2: Move to one common/shared ns2_bind_alloc() ...................................................................... ns2: Move to one common/shared ns2_bind_alloc() Avoid code duplication between three different drivers by sharing the "core" of the bind initialization in a new, shared ns2_bind_alloc(). Change-Id: I535fc68e94fcd695de827dd922706adc1c5a2cb7 --- M src/gb/gprs_ns2.c M src/gb/gprs_ns2_fr.c M src/gb/gprs_ns2_frgre.c M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_udp.c 5 files changed, 63 insertions(+), 74 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/66/22566/1 diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c index eccbe13..7308e75 100644 --- a/src/gb/gprs_ns2.c +++ b/src/gb/gprs_ns2.c @@ -1351,4 +1351,36 @@ return transfer_cap; } +/*! common allocation + low-level initialization of a bind. Called by vc-drivers */ +int ns2_bind_alloc(struct gprs_ns2_inst *nsi, const char *name, + struct gprs_ns2_vc_bind **result) +{ + struct gprs_ns2_vc_bind *bind; + + if (!name) + return -EINVAL; + + if (gprs_ns2_bind_by_name(nsi, name)) + return -EALREADY; + + bind = talloc_zero(nsi, struct gprs_ns2_vc_bind); + if (!bind) + return -ENOSPC; + + bind->name = talloc_strdup(bind, name); + if (!bind->name) { + talloc_free(bind); + return -ENOSPC; + } + + bind->nsi = nsi; + INIT_LLIST_HEAD(&bind->nsvc); + llist_add(&bind->list, &nsi->binding); + + if (result) + *result = bind; + + return 0; +} + /*! @} */ diff --git a/src/gb/gprs_ns2_fr.c b/src/gb/gprs_ns2_fr.c index 9de2b06..953f4ca 100644 --- a/src/gb/gprs_ns2_fr.c +++ b/src/gb/gprs_ns2_fr.c @@ -719,21 +719,15 @@ struct osmo_fr_link *fr_link; int rc = 0; - if (!name) + if (strlen(netif) > IFNAMSIZ) return -EINVAL; if (gprs_ns2_bind_by_name(nsi, name)) return -EALREADY; - bind = talloc_zero(nsi, struct gprs_ns2_vc_bind); - if (!bind) - return -ENOSPC; - - bind->name = talloc_strdup(bind, name); - if (!bind->name) { - rc = -ENOSPC; - goto err_bind; - } + rc = ns2_bind_alloc(nsi, name, &bind); + if (rc < 0) + return rc; bind->driver = &vc_driver_fr; bind->ll = GPRS_NS2_LL_FR; @@ -742,27 +736,19 @@ bind->send_vc = fr_vc_sendmsg; bind->free_vc = free_vc; bind->dump_vty = dump_vty; - bind->nsi = nsi; priv = bind->priv = talloc_zero(bind, struct priv_bind); if (!priv) { rc = -ENOSPC; - goto err_name; + goto err_bind; } - if (strlen(netif) > IFNAMSIZ) { - rc = -EINVAL; - goto err_priv; - } OSMO_STRLCPY_ARRAY(priv->netif, netif); - if (result) - *result = bind; - /* FIXME: move fd handling into socket.c */ fr_link = osmo_fr_link_alloc(fr_network, fr_role, netif); if (!fr_link) { rc = -EINVAL; - goto err_priv; + goto err_bind; } fr_link->tx_cb = fr_tx_cb; @@ -793,9 +779,6 @@ if (rc < 0) goto err_fd; - INIT_LLIST_HEAD(&bind->nsvc); - llist_add(&bind->list, &nsi->binding); - #ifdef ENABLE_LIBMNL if (!nsi->linkmon_mnl) nsi->linkmon_mnl = osmo_mnl_init(nsi, NETLINK_ROUTE, RTMGRP_LINK, linkmon_mnl_cb, nsi); @@ -806,18 +789,17 @@ linkmon_initial_dump(nsi->linkmon_mnl); #endif + if (result) + *result = bind; + return rc; err_fd: close(priv->backlog.ofd.fd); err_fr: osmo_fr_link_free(fr_link); -err_priv: - talloc_free(priv); -err_name: - talloc_free((char *)bind->name); err_bind: - talloc_free(bind); + gprs_ns2_free_bind(bind); return rc; } diff --git a/src/gb/gprs_ns2_frgre.c b/src/gb/gprs_ns2_frgre.c index 5047af0..863f8f2 100644 --- a/src/gb/gprs_ns2_frgre.c +++ b/src/gb/gprs_ns2_frgre.c @@ -537,29 +537,22 @@ int dscp, struct gprs_ns2_vc_bind **result) { - struct gprs_ns2_vc_bind *bind = talloc_zero(nsi, struct gprs_ns2_vc_bind); + struct gprs_ns2_vc_bind *bind; struct priv_bind *priv; int rc; - if (!name) - return -ENOSPC; - - if (gprs_ns2_bind_by_name(nsi, name)) - return -EALREADY; - - if (!bind) - return -ENOSPC; - - if (local->u.sa.sa_family != AF_INET && local->u.sa.sa_family != AF_INET6) { - talloc_free(bind); + if (local->u.sa.sa_family != AF_INET && local->u.sa.sa_family != AF_INET6) return -EINVAL; + + bind = gprs_ns2_bind_by_name(nsi, name); + if (bind) { + *result = bind; + return -EALREADY; } - bind->name = talloc_strdup(bind, name); - if (!bind->name) { - talloc_free(bind); - return -ENOSPC; - } + rc = ns2_bind_alloc(nsi, name, &bind); + if (rc < 0) + return rc; bind->driver = &vc_driver_frgre; bind->ll = GPRS_NS2_LL_FR_GRE; @@ -571,7 +564,7 @@ priv = bind->priv = talloc_zero(bind, struct priv_bind); if (!priv) { - talloc_free(bind); + gprs_ns2_free_bind(bind); return -ENOSPC; } priv->fd.cb = frgre_fd_cb; @@ -579,14 +572,11 @@ priv->addr = *local; INIT_LLIST_HEAD(&bind->nsvc); - llist_add(&bind->list, &nsi->binding); - rc = osmo_sock_init_osa_ofd(&priv->fd, SOCK_RAW, IPPROTO_GRE, local, NULL, OSMO_SOCK_F_BIND); if (rc < 0) { - talloc_free(priv); - talloc_free(bind); + gprs_ns2_free_bind(bind); return rc; } diff --git a/src/gb/gprs_ns2_internal.h b/src/gb/gprs_ns2_internal.h index 0b264b6..1ab2770 100644 --- a/src/gb/gprs_ns2_internal.h +++ b/src/gb/gprs_ns2_internal.h @@ -272,6 +272,9 @@ enum gprs_ns2_vc_mode vc_mode, const char *id); +int ns2_bind_alloc(struct gprs_ns2_inst *nsi, const char *name, + struct gprs_ns2_vc_bind **result); + struct msgb *ns2_msgb_alloc(void); void ns2_sns_write_vty(struct vty *vty, const struct gprs_ns2_nse *nse); diff --git a/src/gb/gprs_ns2_udp.c b/src/gb/gprs_ns2_udp.c index 43ece13..b4bcd01 100644 --- a/src/gb/gprs_ns2_udp.c +++ b/src/gb/gprs_ns2_udp.c @@ -315,32 +315,18 @@ struct priv_bind *priv; int rc; - if (!name) + if (local->u.sa.sa_family != AF_INET && local->u.sa.sa_family != AF_INET6) return -EINVAL; - if (gprs_ns2_bind_by_name(nsi, name)) - return -EALREADY; - bind = gprs_ns2_ip_bind_by_sockaddr(nsi, local); if (bind) { *result = bind; return -EBUSY; } - bind = talloc_zero(nsi, struct gprs_ns2_vc_bind); - if (!bind) - return -ENOSPC; - - bind->name = talloc_strdup(bind, name); - if (!bind->name) { - talloc_free(bind); - return -ENOSPC; - } - - if (local->u.sa.sa_family != AF_INET && local->u.sa.sa_family != AF_INET6) { - talloc_free(bind); - return -EINVAL; - } + rc = ns2_bind_alloc(nsi, name, &bind); + if (rc < 0) + return rc; bind->driver = &vc_driver_ip; bind->ll = GPRS_NS2_LL_UDP; @@ -351,24 +337,21 @@ bind->send_vc = nsip_vc_sendmsg; bind->free_vc = free_vc; bind->dump_vty = dump_vty; - bind->nsi = nsi; priv = bind->priv = talloc_zero(bind, struct priv_bind); if (!priv) { - talloc_free(bind); + gprs_ns2_free_bind(bind); return -ENOSPC; } priv->fd.cb = nsip_fd_cb; priv->fd.data = bind; priv->addr = *local; - INIT_LLIST_HEAD(&bind->nsvc); rc = osmo_sock_init_osa_ofd(&priv->fd, SOCK_DGRAM, IPPROTO_UDP, local, NULL, OSMO_SOCK_F_BIND); if (rc < 0) { - talloc_free(priv); - talloc_free(bind); + gprs_ns2_free_bind(bind); return rc; } @@ -382,7 +365,6 @@ dscp, rc, errno); } - llist_add(&bind->list, &nsi->binding); if (result) *result = bind; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22566 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I535fc68e94fcd695de827dd922706adc1c5a2cb7 Gerrit-Change-Number: 22566 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 31 11:35:09 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 31 Jan 2021 11:35:09 +0000 Subject: Change in libosmocore[master]: ns2: Memory allocation failures are ENOMEM, not ENOSPC References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22567 ) Change subject: ns2: Memory allocation failures are ENOMEM, not ENOSPC ...................................................................... ns2: Memory allocation failures are ENOMEM, not ENOSPC ENOSPC is used with non-volatile (disk) storage, while ENOMEM is customarily used for RAM allocation failures. Change-Id: Ia4c16d8278dc30c7cc69169b18428cda5272738d --- M src/gb/gprs_ns2.c M src/gb/gprs_ns2_fr.c M src/gb/gprs_ns2_frgre.c M src/gb/gprs_ns2_udp.c 4 files changed, 5 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/67/22567/1 diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c index 7308e75..f0fa038 100644 --- a/src/gb/gprs_ns2.c +++ b/src/gb/gprs_ns2.c @@ -1365,12 +1365,12 @@ bind = talloc_zero(nsi, struct gprs_ns2_vc_bind); if (!bind) - return -ENOSPC; + return -ENOMEM; bind->name = talloc_strdup(bind, name); if (!bind->name) { talloc_free(bind); - return -ENOSPC; + return -ENOMEM; } bind->nsi = nsi; diff --git a/src/gb/gprs_ns2_fr.c b/src/gb/gprs_ns2_fr.c index 953f4ca..c32bce8 100644 --- a/src/gb/gprs_ns2_fr.c +++ b/src/gb/gprs_ns2_fr.c @@ -738,7 +738,7 @@ bind->dump_vty = dump_vty; priv = bind->priv = talloc_zero(bind, struct priv_bind); if (!priv) { - rc = -ENOSPC; + rc = -ENOMEM; goto err_bind; } diff --git a/src/gb/gprs_ns2_frgre.c b/src/gb/gprs_ns2_frgre.c index 863f8f2..88ef037 100644 --- a/src/gb/gprs_ns2_frgre.c +++ b/src/gb/gprs_ns2_frgre.c @@ -565,7 +565,7 @@ priv = bind->priv = talloc_zero(bind, struct priv_bind); if (!priv) { gprs_ns2_free_bind(bind); - return -ENOSPC; + return -ENOMEM; } priv->fd.cb = frgre_fd_cb; priv->fd.data = bind; diff --git a/src/gb/gprs_ns2_udp.c b/src/gb/gprs_ns2_udp.c index b4bcd01..9277f9a 100644 --- a/src/gb/gprs_ns2_udp.c +++ b/src/gb/gprs_ns2_udp.c @@ -341,7 +341,7 @@ priv = bind->priv = talloc_zero(bind, struct priv_bind); if (!priv) { gprs_ns2_free_bind(bind); - return -ENOSPC; + return -ENOMEM; } priv->fd.cb = nsip_fd_cb; priv->fd.data = bind; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22567 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia4c16d8278dc30c7cc69169b18428cda5272738d Gerrit-Change-Number: 22567 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 31 11:35:09 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 31 Jan 2021 11:35:09 +0000 Subject: Change in libosmocore[master]: ns2: Rename nsi->rate_ctr_idx to nsi->nsvc_rate_ctr_idx References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22568 ) Change subject: ns2: Rename nsi->rate_ctr_idx to nsi->nsvc_rate_ctr_idx ...................................................................... ns2: Rename nsi->rate_ctr_idx to nsi->nsvc_rate_ctr_idx We will soon get another of those indexes. Change-Id: I68a2ef3b48097f524831dd04821824b21d6d1e18 --- M src/gb/gprs_ns2.c M src/gb/gprs_ns2_internal.h 2 files changed, 4 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/68/22568/1 diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c index f0fa038..95fec19 100644 --- a/src/gb/gprs_ns2.c +++ b/src/gb/gprs_ns2.c @@ -506,17 +506,17 @@ nsvc->sig_weight = 1; nsvc->data_weight = 1; - nsvc->ctrg = rate_ctr_group_alloc(nsvc, &nsvc_ctrg_desc, bind->nsi->rate_ctr_idx); + nsvc->ctrg = rate_ctr_group_alloc(nsvc, &nsvc_ctrg_desc, bind->nsi->nsvc_rate_ctr_idx); if (!nsvc->ctrg) { goto err; } - nsvc->statg = osmo_stat_item_group_alloc(nsvc, &nsvc_statg_desc, bind->nsi->rate_ctr_idx); + nsvc->statg = osmo_stat_item_group_alloc(nsvc, &nsvc_statg_desc, bind->nsi->nsvc_rate_ctr_idx); if (!nsvc->statg) goto err_group; if (!ns2_vc_fsm_alloc(nsvc, id, initiater)) goto err_statg; - bind->nsi->rate_ctr_idx++; + bind->nsi->nsvc_rate_ctr_idx++; llist_add(&nsvc->list, &nse->nsvc); llist_add(&nsvc->blist, &bind->nsvc); diff --git a/src/gb/gprs_ns2_internal.h b/src/gb/gprs_ns2_internal.h index 1ab2770..8689f47 100644 --- a/src/gb/gprs_ns2_internal.h +++ b/src/gb/gprs_ns2_internal.h @@ -126,7 +126,7 @@ uint16_t timeout[NS_TIMERS_COUNT]; /*! workaround for rate counter until rate counter accepts char str as index */ - uint32_t rate_ctr_idx; + uint32_t nsvc_rate_ctr_idx; /*! libmnl netlink socket for link state monitoring */ struct osmo_mnl *linkmon_mnl; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22568 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I68a2ef3b48097f524831dd04821824b21d6d1e18 Gerrit-Change-Number: 22568 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 31 11:35:10 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 31 Jan 2021 11:35:10 +0000 Subject: Change in libosmocore[master]: ns2: Introduce a per-bind stat_item group with backlog length References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22569 ) Change subject: ns2: Introduce a per-bind stat_item group with backlog length ...................................................................... ns2: Introduce a per-bind stat_item group with backlog length The backlog length indicates the instantaneous length of the backlog. Change-Id: I1c55b4619b1221d7e607ace58649323407faf86b --- M src/gb/gprs_ns2.c M src/gb/gprs_ns2_fr.c M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_vty.c 4 files changed, 37 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/69/22569/1 diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c index 95fec19..abd445b 100644 --- a/src/gb/gprs_ns2.c +++ b/src/gb/gprs_ns2.c @@ -196,6 +196,18 @@ .class_id = OSMO_STATS_CLASS_PEER, }; +const struct osmo_stat_item_desc nsbind_stat_description[] = { + [NS2_BIND_STAT_BACKLOG_LEN] = { "tx_backlog_length", "Transmit backlog length", "packets", 16, 0 }, +}; + +static const struct osmo_stat_item_group_desc nsbind_statg_desc = { + .group_name_prefix = "ns.bind", + .group_description = "NS Bind Statistics", + .num_items = ARRAY_SIZE(nsbind_stat_description), + .item_desc = nsbind_stat_description, + .class_id = OSMO_STATS_CLASS_PEER, +}; + const struct value_string gprs_ns2_aff_cause_prim_strs[] = { { GPRS_NS2_AFF_CAUSE_VC_FAILURE, "NSVC failure" }, { GPRS_NS2_AFF_CAUSE_VC_RECOVERY, "NSVC recovery" }, @@ -1243,6 +1255,7 @@ bind->driver->free_bind(bind); llist_del(&bind->list); + osmo_stat_item_group_free(bind->statg); talloc_free((char *)bind->name); talloc_free(bind); } @@ -1373,10 +1386,18 @@ return -ENOMEM; } + bind->statg = osmo_stat_item_group_alloc(bind, &nsbind_statg_desc, nsi->bind_rate_ctr_idx); + if (!bind->statg) { + talloc_free(bind); + return -ENOMEM; + } + bind->nsi = nsi; INIT_LLIST_HEAD(&bind->nsvc); llist_add(&bind->list, &nsi->binding); + nsi->bind_rate_ctr_idx++; + if (result) *result = bind; diff --git a/src/gb/gprs_ns2_fr.c b/src/gb/gprs_ns2_fr.c index c32bce8..49e92ae 100644 --- a/src/gb/gprs_ns2_fr.c +++ b/src/gb/gprs_ns2_fr.c @@ -47,6 +47,7 @@ #include #include +#include #include #include #include @@ -327,6 +328,7 @@ { struct priv_bind *priv = bind->priv; llist_add(&msg->list, &priv->backlog.list); + osmo_stat_item_inc(bind->statg->items[NS2_BIND_STAT_BACKLOG_LEN], 1); osmo_timer_schedule(&priv->backlog.timer, 0, priv->backlog.retry_us); } @@ -334,6 +336,7 @@ { struct priv_bind *priv = bind->priv; llist_add_tail(&msg->list, &priv->backlog.list); + osmo_stat_item_inc(bind->statg->items[NS2_BIND_STAT_BACKLOG_LEN], 1); osmo_timer_schedule(&priv->backlog.timer, 0, priv->backlog.retry_us); } @@ -402,6 +405,7 @@ llist_add(&msg->list, &priv->backlog.list); break; } + osmo_stat_item_dec(bind->statg->items[NS2_BIND_STAT_BACKLOG_LEN], 1); } /* re-start timer if we still have data in the queue */ diff --git a/src/gb/gprs_ns2_internal.h b/src/gb/gprs_ns2_internal.h index 8689f47..5fea6ef 100644 --- a/src/gb/gprs_ns2_internal.h +++ b/src/gb/gprs_ns2_internal.h @@ -72,10 +72,14 @@ _NSVC_TIMER_NR, }; -enum ns_stat { +enum ns2_vc_stat { NS_STAT_ALIVE_DELAY, }; +enum ns2_bind_stat { + NS2_BIND_STAT_BACKLOG_LEN, +}; + /*! Osmocom NS2 VC create status */ enum ns2_cs { NS2_CS_CREATED, /*!< A NSVC object has been created */ @@ -127,6 +131,7 @@ /*! workaround for rate counter until rate counter accepts char str as index */ uint32_t nsvc_rate_ctr_idx; + uint32_t bind_rate_ctr_idx; /*! libmnl netlink socket for link state monitoring */ struct osmo_mnl *linkmon_mnl; @@ -249,6 +254,8 @@ /*! allow to show information for the vty */ void (*dump_vty)(const struct gprs_ns2_vc_bind *bind, struct vty *vty, bool stats); + + struct osmo_stat_item_group *statg; }; struct gprs_ns2_vc_driver { diff --git a/src/gb/gprs_ns2_vty.c b/src/gb/gprs_ns2_vty.c index c2b9bd9..5d0f5c0 100644 --- a/src/gb/gprs_ns2_vty.c +++ b/src/gb/gprs_ns2_vty.c @@ -1374,6 +1374,10 @@ { if (bind->dump_vty) bind->dump_vty(bind, vty, stats); + + if (stats) { + vty_out_stat_item_group(vty, " ", bind->statg); + } } static void dump_ns_bind(struct vty *vty, const struct gprs_ns2_inst *nsi, bool stats) -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22569 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I1c55b4619b1221d7e607ace58649323407faf86b Gerrit-Change-Number: 22569 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 31 11:46:25 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 31 Jan 2021 11:46:25 +0000 Subject: Change in libosmocore[master]: ns2: Move to one common/shared ns2_bind_alloc() In-Reply-To: References: Message-ID: Hello Jenkins Builder, daniel, lynxis lazus, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22566 to look at the new patch set (#2). Change subject: ns2: Move to one common/shared ns2_bind_alloc() ...................................................................... ns2: Move to one common/shared ns2_bind_alloc() Avoid code duplication between three different drivers by sharing the "core" of the bind initialization in a new, shared ns2_bind_alloc(). Change-Id: I535fc68e94fcd695de827dd922706adc1c5a2cb7 --- M src/gb/gprs_ns2.c M src/gb/gprs_ns2_fr.c M src/gb/gprs_ns2_frgre.c M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_udp.c M tests/gb/gprs_ns2_test.c 6 files changed, 67 insertions(+), 84 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/66/22566/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22566 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I535fc68e94fcd695de827dd922706adc1c5a2cb7 Gerrit-Change-Number: 22566 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 31 12:00:39 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 31 Jan 2021 12:00:39 +0000 Subject: Change in libosmocore[master]: gsm_7bit_encode_n(): fix integer overflow in gsm_septets2octets() In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22544 to look at the new patch set (#2). Change subject: gsm_7bit_encode_n(): fix integer overflow in gsm_septets2octets() ...................................................................... gsm_7bit_encode_n(): fix integer overflow in gsm_septets2octets() Using 'uint8_t' for the length argument is definitely a bad idea. Because of this, packing more than 255 septets would not work as expected. Deprecate the old function and use 'size_t' instead. Change-Id: Ib1aac538afeb0a5c76a1df472d555139a496e12e --- M include/osmocom/gsm/gsm_utils.h M src/gsm/gsm_utils.c M src/gsm/libosmogsm.map M tests/sms/sms_test.c M tests/sms/sms_test.ok 5 files changed, 20 insertions(+), 15 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/44/22544/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22544 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ib1aac538afeb0a5c76a1df472d555139a496e12e Gerrit-Change-Number: 22544 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 31 17:01:47 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 31 Jan 2021 17:01:47 +0000 Subject: Change in libosmocore[master]: ns2: Fix typos in comments References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22570 ) Change subject: ns2: Fix typos in comments ...................................................................... ns2: Fix typos in comments Change-Id: I155fd697e229621561f7d00204421ac941101d77 --- M include/osmocom/gprs/gprs_ns2.h 1 file changed, 5 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/70/22570/1 diff --git a/include/osmocom/gprs/gprs_ns2.h b/include/osmocom/gprs/gprs_ns2.h index 042e19b..1bf8c7f 100644 --- a/include/osmocom/gprs/gprs_ns2.h +++ b/include/osmocom/gprs/gprs_ns2.h @@ -48,7 +48,7 @@ GPRS_NS2_LL_FR_GRE, /*!< NS/FR/GRE/IP */ }; -/*! Osmocom NS primitives according to 48.016 5.2 Service primitves */ +/*! Osmocom NS primitives according to 48.016 5.2 Service primitives */ enum gprs_ns2_prim { GPRS_NS2_PRIM_UNIT_DATA, GPRS_NS2_PRIM_CONGESTION, @@ -66,7 +66,7 @@ static inline const char *gprs_ns2_lltype_str(enum gprs_ns2_ll val) { return get_value_string(gprs_ns2_lltype_strs, val); } -/*! Osmocom NS primitives according to 48.016 5.2.2.4 Service primitves */ +/*! Osmocom NS primitives according to 48.016 5.2.2.4 Service primitives */ enum gprs_ns2_congestion_cause { GPRS_NS2_CONG_CAUSE_BACKWARD_BEGIN, GPRS_NS2_CONG_CAUSE_BACKWARD_END, @@ -74,7 +74,7 @@ GPRS_NS2_CONG_CAUSE_FORWARD_END, }; -/*! Osmocom NS primitives according to 48.016 5.2.2.6 Service primitves */ +/*! Osmocom NS primitives according to 48.016 5.2.2.6 Service primitives */ enum gprs_ns2_affecting_cause { GPRS_NS2_AFF_CAUSE_VC_FAILURE, GPRS_NS2_AFF_CAUSE_VC_RECOVERY, @@ -88,11 +88,11 @@ extern const struct value_string gprs_ns2_aff_cause_prim_strs[]; -/*! Obtain a human-readable string for NS affective cause in primitives */ +/*! Obtain a human-readable string for NS affecting cause in primitives */ static inline const char *gprs_ns2_aff_cause_prim_str(enum gprs_ns2_affecting_cause val) { return get_value_string(gprs_ns2_aff_cause_prim_strs, val); } -/*! Osmocom NS primitives according to 48.016 5.2.2.7 Service primitves */ +/*! Osmocom NS primitives according to 48.016 5.2.2.7 Service primitives */ enum gprs_ns2_change_ip_endpoint { GRPS_NS2_ENDPOINT_NO_CHANGE, GPRS_NS2_ENDPOINT_REQUEST_CHANGE, -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22570 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I155fd697e229621561f7d00204421ac941101d77 Gerrit-Change-Number: 22570 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 31 17:01:48 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 31 Jan 2021 17:01:48 +0000 Subject: Change in libosmocore[master]: ns2: Print NS-STATUS.ind primitives to the log References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22571 ) Change subject: ns2: Print NS-STATUS.ind primitives to the log ...................................................................... ns2: Print NS-STATUS.ind primitives to the log Log the NS-STATUS primitives from within the library, so we don't have to keep related code in each and every application. Change-Id: I368883acfc8ea76529befcd429bf8f2445a60a94 --- M src/gb/gprs_ns2.c 1 file changed, 10 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/71/22571/1 diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c index abd445b..f809a44 100644 --- a/src/gb/gprs_ns2.c +++ b/src/gb/gprs_ns2.c @@ -487,11 +487,18 @@ nsp.u.status.transfer = ns2_count_transfer_cap(nse, bvci); nsp.u.status.first = nse->first; nsp.u.status.persistent = nse->persistent; - if (nsvc) + if (nsvc) { nsp.u.status.nsvc = gprs_ns2_ll_str_buf(nsvc_str, sizeof(nsvc_str), nsvc); + LOGNSVC(nsvc, LOGL_NOTICE, "NS-STATUS.ind(bvci=%05u): cause=%s, transfer=%d, first=%d\n", + nsp.bvci, gprs_ns2_aff_cause_prim_str(nsp.u.status.cause), + nsp.u.status.transfer, nsp.u.status.first); + } else { + LOGNSE(nse, LOGL_NOTICE, "NS-STATUS.ind(bvci=%05u): cause=%s, transfer=%d, first=%d\n", + nsp.bvci, gprs_ns2_aff_cause_prim_str(nsp.u.status.cause), + nsp.u.status.transfer, nsp.u.status.first); + } - osmo_prim_init(&nsp.oph, SAP_NS, GPRS_NS2_PRIM_STATUS, - PRIM_OP_INDICATION, NULL); + osmo_prim_init(&nsp.oph, SAP_NS, GPRS_NS2_PRIM_STATUS, PRIM_OP_INDICATION, NULL); nse->nsi->cb(&nsp.oph, nse->nsi->cb_data); } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22571 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I368883acfc8ea76529befcd429bf8f2445a60a94 Gerrit-Change-Number: 22571 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 31 17:01:48 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 31 Jan 2021 17:01:48 +0000 Subject: Change in libosmocore[master]: osmo-ns-dummy: Add "mirror-mode" to mirror back any received packets References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22572 ) Change subject: osmo-ns-dummy: Add "mirror-mode" to mirror back any received packets ...................................................................... osmo-ns-dummy: Add "mirror-mode" to mirror back any received packets Change-Id: If57bfdeb390d88d1ea058f7a9ce0403e64a5beda --- M utils/osmo-ns-dummy-vty.c M utils/osmo-ns-dummy.c 2 files changed, 43 insertions(+), 9 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/72/22572/1 diff --git a/utils/osmo-ns-dummy-vty.c b/utils/osmo-ns-dummy-vty.c index 1b7ce1c..f4a270c 100644 --- a/utils/osmo-ns-dummy-vty.c +++ b/utils/osmo-ns-dummy-vty.c @@ -46,8 +46,9 @@ #include #include -static struct gprs_ns2_inst *g_nsi; +extern struct gprs_ns2_inst *g_nsi; static struct llist_head g_ns_traf_gens = LLIST_HEAD_INIT(g_ns_traf_gens); +int g_mirror_mode; /* one NS traffic generator instance. You can have as many of these as you want, * just as long as they have unique names */ @@ -167,6 +168,7 @@ vty_out(vty, " lsp %u%s", ntg->cfg.lsp, VTY_NEWLINE); vty_out(vty, " lsp-mode %s%s", ntg->cfg.lsp_randomize ? "randomized" : "fixed", VTY_NEWLINE); } + vty_out(vty, "mirror-mode %s%s", g_mirror_mode ? "enable" : "disable", VTY_NEWLINE); return 0; } @@ -288,12 +290,26 @@ return CMD_SUCCESS; } -int nsdummy_vty_init(struct gprs_ns2_inst *nsi) +DEFUN(mirror_mode, mirror_mode_cmd, + "mirror-mode (enable|disable)", + "Configure mirroring of incoming NS-UNITDATA\n" + "Enable mirroring of incoming NS-UNITDATA\n" + "Disable mirroring of incoming NS-UNITDATA\n") { - g_nsi = nsi; + if (!strcmp(argv[0], "enable")) + g_mirror_mode = true; + else + g_mirror_mode = false; + return CMD_SUCCESS; +} + + +int nsdummy_vty_init(void) +{ /* configuration of traffic generators via CONFIG / NTG node */ install_element(CONFIG_NODE, &gen_traffic_cmd); + install_element(CONFIG_NODE, &mirror_mode_cmd); install_node(&ntg_node, config_write_ntg); install_element(NTG_NODE, &ntg_nsei_cmd); install_element(NTG_NODE, &ntg_bvci_cmd); diff --git a/utils/osmo-ns-dummy.c b/utils/osmo-ns-dummy.c index 4b93788..3520145 100644 --- a/utils/osmo-ns-dummy.c +++ b/utils/osmo-ns-dummy.c @@ -28,6 +28,7 @@ static bool daemonize = false; static int vty_port = 0; static char *config_file = NULL; +struct gprs_ns2_inst *g_nsi; static const char vty_copyright[] = "Copyright (C) 2020 by by sysmocom - s.f.m.c. GmbH\r\n" @@ -185,9 +186,27 @@ } } +extern int g_mirror_mode; + /* called by the ns layer */ int gprs_ns_prim_cb(struct osmo_prim_hdr *oph, void *ctx) { + struct osmo_gprs_ns2_prim *nsp = container_of(oph, struct osmo_gprs_ns2_prim, oph); + + switch (oph->primitive) { + case GPRS_NS2_PRIM_UNIT_DATA: + if (g_mirror_mode) { + /* simply switch indication->request and resubmit */ + oph->operation = PRIM_OP_REQUEST; + msgb_pull_to_l3(oph->msg); + nsp->u.unitdata.link_selector = rand(); /* ensure random distribution */ + return gprs_ns2_recv_prim(g_nsi, oph); + } + break; + default: + break; + } + if (oph->msg) msgb_free(oph->msg); @@ -204,7 +223,6 @@ int main (int argc, char *argv[]) { void *ctx = tall_nsdummy_ctx = talloc_named_const(NULL, 0, "osmo-ns-dummy"); - struct gprs_ns2_inst *nsi; int rc = 0; osmo_init_logging2(ctx, &log_info); @@ -224,14 +242,14 @@ handle_options(argc, argv); - nsi = gprs_ns2_instantiate(ctx, gprs_ns_prim_cb, NULL); - if (!nsi) { + g_nsi = gprs_ns2_instantiate(ctx, gprs_ns_prim_cb, NULL); + if (!g_nsi) { LOGP(DLNS, LOGL_ERROR, "Failed to create NS instance\n"); exit(1); } - gprs_ns2_vty_init(nsi); - nsdummy_vty_init(nsi); + gprs_ns2_vty_init(g_nsi); + nsdummy_vty_init(g_nsi); rc = vty_read_config_file(config_file, NULL); if (rc < 0 && config_given) { fprintf(stderr, "Failed to parse the config file: '%s'\n", @@ -270,7 +288,7 @@ } telnet_exit(); - gprs_ns2_free(nsi); + gprs_ns2_free(g_nsi); talloc_report_full(tall_nsdummy_ctx, stderr); talloc_free(tall_nsdummy_ctx); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22572 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If57bfdeb390d88d1ea058f7a9ce0403e64a5beda Gerrit-Change-Number: 22572 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 31 17:01:48 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 31 Jan 2021 17:01:48 +0000 Subject: Change in libosmocore[master]: frame_relay: Send "Fuil Status" ENQUIRY after link recovers References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22573 ) Change subject: frame_relay: Send "Fuil Status" ENQUIRY after link recovers ...................................................................... frame_relay: Send "Fuil Status" ENQUIRY after link recovers If we are the 'user' side of FR and a link has just recovered, we should ensure the next STATUS is for "full status". This way we learn about the present DLCs as quickly as possible, saving up to 10 seconds of further delay in link recovery. Related: OS#4999 Change-Id: I6f905a18a7d130a3c02b4a3e7a2a2dc24afc0ea1 --- M src/gb/frame_relay.c 1 file changed, 5 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/73/22573/1 diff --git a/src/gb/frame_relay.c b/src/gb/frame_relay.c index 3a51700..03b847a 100644 --- a/src/gb/frame_relay.c +++ b/src/gb/frame_relay.c @@ -430,8 +430,12 @@ LOGPFRL(link, LOGL_NOTICE, "Link recovered\n"); link->state = true; - if (link->role == FR_ROLE_USER_EQUIPMENT) + if (link->role == FR_ROLE_USER_EQUIPMENT) { + /* make sure the next STATUS ENQUIRY is for a full + * status report to get the configred DLCs ASAP */ + link->polling_count = 0; return; + } llist_for_each_entry(dlc, &link->dlc_list, list) { if (!dlc->add && !dlc->del) -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22573 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I6f905a18a7d130a3c02b4a3e7a2a2dc24afc0ea1 Gerrit-Change-Number: 22573 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 31 17:01:48 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 31 Jan 2021 17:01:48 +0000 Subject: Change in libosmocore[master]: ns2: cosmetic: fix indent levels References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22574 ) Change subject: ns2: cosmetic: fix indent levels ...................................................................... ns2: cosmetic: fix indent levels Change-Id: Ifcb0d5ddf824cd876de91afca1021aeb4f6c3e8b --- M src/gb/gprs_ns2_vc_fsm.c 1 file changed, 4 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/74/22574/1 diff --git a/src/gb/gprs_ns2_vc_fsm.c b/src/gb/gprs_ns2_vc_fsm.c index 839bf6f..a6e49e6 100644 --- a/src/gb/gprs_ns2_vc_fsm.c +++ b/src/gb/gprs_ns2_vc_fsm.c @@ -122,17 +122,17 @@ }; static const struct value_string ns2_vc_event_names[] = { - { GPRS_NS2_EV_REQ_START, "START" }, + { GPRS_NS2_EV_REQ_START, "START" }, { GPRS_NS2_EV_RX_RESET, "RESET" }, { GPRS_NS2_EV_RX_RESET_ACK, "RESET_ACK" }, - { GPRS_NS2_EV_RX_UNBLOCK, "UNBLOCK" }, + { GPRS_NS2_EV_RX_UNBLOCK, "UNBLOCK" }, { GPRS_NS2_EV_RX_UNBLOCK_ACK, "UNBLOCK_ACK" }, { GPRS_NS2_EV_RX_BLOCK, "BLOCK" }, { GPRS_NS2_EV_RX_BLOCK_ACK, "BLOCK_ACK" }, { GPRS_NS2_EV_RX_ALIVE, "ALIVE" }, { GPRS_NS2_EV_RX_ALIVE_ACK, "ALIVE_ACK" }, - { GPRS_NS2_EV_RX_STATUS, "STATUS" }, - { GPRS_NS2_EV_RX_UNITDATA, "UNITDATA" }, + { GPRS_NS2_EV_RX_STATUS, "STATUS" }, + { GPRS_NS2_EV_RX_UNITDATA, "UNITDATA" }, { GPRS_NS2_EV_REQ_FORCE_UNCONFIGURED, "FORCE_UNCONFIGURED" }, { GPRS_NS2_EV_REQ_OM_BLOCK, "REQ-O&M-BLOCK"}, { GPRS_NS2_EV_REQ_OM_UNBLOCK, "REQ-O&M-UNBLOCK"}, -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22574 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ifcb0d5ddf824cd876de91afca1021aeb4f6c3e8b Gerrit-Change-Number: 22574 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 31 17:59:06 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 31 Jan 2021 17:59:06 +0000 Subject: Change in libosmocore[master]: frame_relay: Add status call-backs for link + DLC status changes References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22575 ) Change subject: frame_relay: Add status call-backs for link + DLC status changes ...................................................................... frame_relay: Add status call-backs for link + DLC status changes Change-Id: Iec19db4e48642c3fcb0aa11fa7787b8323fd0e5a Related: Os#4999 --- M include/osmocom/gprs/frame_relay.h M src/gb/frame_relay.c 2 files changed, 36 insertions(+), 15 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/75/22575/1 diff --git a/include/osmocom/gprs/frame_relay.h b/include/osmocom/gprs/frame_relay.h index 2860c6b..1be37ee 100644 --- a/include/osmocom/gprs/frame_relay.h +++ b/include/osmocom/gprs/frame_relay.h @@ -87,11 +87,15 @@ /* list of data link connections at this link */ struct llist_head dlc_list; + /* optional call-back to be called for each PDU received on an unknown DLC */ int (*unknown_dlc_rx_cb)(void *cb_data, struct msgb *msg); void *unknown_dlc_rx_cb_data; + /* call-back to be called for transmitting on the underlying hardware */ int (*tx_cb)(void *data, struct msgb *msg); - void *tx_cb_data; + /* optional call-back to be called each time the status changes active/inactive */ + void (*status_cb)(struct osmo_fr_link *link, void *cb_data, bool active); + void *cb_data; }; /* Frame Relay Data Link Connection */ @@ -113,8 +117,11 @@ * NET must wait until USER confirms it implicitly by a seq number check */ bool state_send; + /* call-back to be called for each PDU received on this DLC */ int (*rx_cb)(void *cb_data, struct msgb *msg); - void *rx_cb_data; + /* optional call-back to be called each time the status changes active/inactive */ + void (*status_cb)(struct osmo_fr_dlc *dlc, void *cb_data, bool active); + void *cb_data; }; /* allocate a frame relay network */ diff --git a/src/gb/frame_relay.c b/src/gb/frame_relay.c index 03b847a..da7d771 100644 --- a/src/gb/frame_relay.c +++ b/src/gb/frame_relay.c @@ -189,6 +189,18 @@ hdr[1] = ((dlci << 4) & 0xF0) | 0x01; } +static void dlc_set_active(struct osmo_fr_dlc *dlc, bool active) +{ + if (active == dlc->active) + return; + + dlc->active = active; + + LOGPFRL(dlc->link, LOGL_NOTICE, "DLCI %u became %s\n", dlc->dlci, active ? "active" : "inactive"); + if (dlc->status_cb) + dlc->status_cb(dlc, dlc->cb_data, active); +} + /* allocate a message buffer and put Q.933 Annex A headers (L2 + L3) */ static struct msgb *q933_msgb_alloc(uint16_t dlci, uint8_t prot_disc, uint8_t msg_type) { @@ -285,7 +297,7 @@ msgb_tlv_put(resp, Q933_IEI_REPORT_TYPE, 1, &rep_type); msgb_put_link_int_verif(resp, link); - return link->tx_cb(link->tx_cb_data, resp); + return link->tx_cb(link->cb_data, resp); } /* Send a Q.933 STATUS of given type over given link */ @@ -327,7 +339,7 @@ break; } - return link->tx_cb(link->tx_cb_data, resp); + return link->tx_cb(link->cb_data, resp); } @@ -369,7 +381,7 @@ continue; if (dlc->add) { - dlc->active = link->state; + dlc_set_active(dlc, link->state); dlc->add = false; } @@ -417,11 +429,11 @@ LOGPFRL(link, LOGL_NOTICE, "Link failed\n"); link->state = false; - if (link->role == FR_ROLE_USER_EQUIPMENT) - return; + if (link->status_cb) + link->status_cb(link, link->cb_data, link->state); llist_for_each_entry(dlc, &link->dlc_list, list) { - dlc->active = false; + dlc_set_active(dlc, false); } } else { /* good link */ @@ -430,16 +442,18 @@ LOGPFRL(link, LOGL_NOTICE, "Link recovered\n"); link->state = true; + if (link->status_cb) + link->status_cb(link, link->cb_data, link->state); + if (link->role == FR_ROLE_USER_EQUIPMENT) { /* make sure the next STATUS ENQUIRY is for a full * status report to get the configred DLCs ASAP */ link->polling_count = 0; - return; } llist_for_each_entry(dlc, &link->dlc_list, list) { if (!dlc->add && !dlc->del) - dlc->active = true; + dlc_set_active(dlc, true); } } } @@ -508,7 +522,7 @@ * using the optional single PVC asynchronous status report. * Ignoring the delete. */ dlc->add = pvc->new; - dlc->active = pvc->active; + dlc_set_active(dlc, pvc->active); dlc->del = 0; } @@ -523,7 +537,7 @@ } if (!found) { - dlc->active = false; + dlc_set_active(dlc, false); dlc->del = true; } } @@ -575,7 +589,7 @@ dlc->del = 1; } else { dlc->add = pvc->new; - dlc->active = pvc->active; + dlc_set_active(dlc, pvc->active); dlc->del = 0; } } @@ -771,7 +785,7 @@ if (dlc->dlci == dlci) { /* dispatch to handler of respective DLC */ msg->dst = dlc; - return dlc->rx_cb(dlc->rx_cb_data, msg); + return dlc->rx_cb(dlc->cb_data, msg); } } @@ -816,7 +830,7 @@ dlci_to_q922(frh, dlc->dlci); msg->dst = link; - return link->tx_cb(link->tx_cb_data, msg); + return link->tx_cb(link->cb_data, msg); } /* Every T391 seconds, the user equipment sends a STATUS ENQUIRY -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22575 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Iec19db4e48642c3fcb0aa11fa7787b8323fd0e5a Gerrit-Change-Number: 22575 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 31 17:59:07 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 31 Jan 2021 17:59:07 +0000 Subject: Change in libosmocore[master]: frame_relay: Discard received messages for DLC not yet active References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22576 ) Change subject: frame_relay: Discard received messages for DLC not yet active ...................................................................... frame_relay: Discard received messages for DLC not yet active If we receive messages for a DLC which has not yet reported as being available by Q.933 LMI, drop the incoming message. Otherwise we would dispatch it to the user, and the user wants to respond - but then we reject the transmission due to the inactive DLC. Change-Id: Ia4a045fdf165b526f429f4617e0fdc76036480bd Related: OS#4999 --- M src/gb/frame_relay.c 1 file changed, 10 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/76/22576/1 diff --git a/src/gb/frame_relay.c b/src/gb/frame_relay.c index da7d771..59b26c4 100644 --- a/src/gb/frame_relay.c +++ b/src/gb/frame_relay.c @@ -781,19 +781,22 @@ goto out; } - llist_for_each_entry(dlc, &link->dlc_list, list) { - if (dlc->dlci == dlci) { + dlc = osmo_fr_dlc_by_dlci(link, dlci); + if (dlc) { + if (dlc->active) { /* dispatch to handler of respective DLC */ msg->dst = dlc; return dlc->rx_cb(dlc->cb_data, msg); + } else { + LOGPFRL(link, LOGL_NOTICE, "DLCI %u not yet active, discarding\n", dlci); } + } else { + if (link->unknown_dlc_rx_cb) + return link->unknown_dlc_rx_cb(link->unknown_dlc_rx_cb_data, msg); + else + LOGPFRL(link, LOGL_NOTICE, "DLCI %u doesn't exist, discarding\n", dlci); } - if (link->unknown_dlc_rx_cb) - return link->unknown_dlc_rx_cb(link->unknown_dlc_rx_cb_data, msg); - else - LOGPFRL(link, LOGL_NOTICE, "DLCI %u doesn't exist, discarding\n", dlci); - out: msgb_free(msg); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22576 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia4a045fdf165b526f429f4617e0fdc76036480bd Gerrit-Change-Number: 22576 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 31 17:59:08 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 31 Jan 2021 17:59:08 +0000 Subject: Change in libosmocore[master]: frame_relay: cosmetic: Unify log syntax when discarding Rx packets References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22577 ) Change subject: frame_relay: cosmetic: Unify log syntax when discarding Rx packets ...................................................................... frame_relay: cosmetic: Unify log syntax when discarding Rx packets Change-Id: I09d035e38b41be9d6ac5e16da7fb113286c77d29 --- M src/gb/frame_relay.c 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/77/22577/1 diff --git a/src/gb/frame_relay.c b/src/gb/frame_relay.c index 59b26c4..80aa2d6 100644 --- a/src/gb/frame_relay.c +++ b/src/gb/frame_relay.c @@ -788,13 +788,13 @@ msg->dst = dlc; return dlc->rx_cb(dlc->cb_data, msg); } else { - LOGPFRL(link, LOGL_NOTICE, "DLCI %u not yet active, discarding\n", dlci); + LOGPFRL(link, LOGL_NOTICE, "DLCI %u not yet active. Discarding Rx PDU\n", dlci); } } else { if (link->unknown_dlc_rx_cb) return link->unknown_dlc_rx_cb(link->unknown_dlc_rx_cb_data, msg); else - LOGPFRL(link, LOGL_NOTICE, "DLCI %u doesn't exist, discarding\n", dlci); + LOGPFRL(link, LOGL_NOTICE, "DLCI %u doesn't exist. Ddiscarding Rx PDU\n", dlci); } out: -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22577 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I09d035e38b41be9d6ac5e16da7fb113286c77d29 Gerrit-Change-Number: 22577 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 31 17:59:08 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 31 Jan 2021 17:59:08 +0000 Subject: Change in libosmocore[master]: ns2: Don't automatically re-start FSM at FORCE_UNCONFIGURED References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22578 ) Change subject: ns2: Don't automatically re-start FSM at FORCE_UNCONFIGURED ...................................................................... ns2: Don't automatically re-start FSM at FORCE_UNCONFIGURED There are use cases in which the NS-VC FSM should go back to unconfigured _without_ being re-started immediately. Let's permit the caller to do that. Change-Id: I31fe695a83d38ea1f10f5444e840633d7fa68442 --- M src/gb/gprs_ns2_vc_fsm.c M src/gb/gprs_ns2_vty.c 2 files changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/78/22578/1 diff --git a/src/gb/gprs_ns2_vc_fsm.c b/src/gb/gprs_ns2_vc_fsm.c index a6e49e6..c77bc4d 100644 --- a/src/gb/gprs_ns2_vc_fsm.c +++ b/src/gb/gprs_ns2_vc_fsm.c @@ -634,7 +634,6 @@ if (fi->state != GPRS_NS2_ST_UNCONFIGURED) { /* Force the NSVC back to its initial state */ osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_UNCONFIGURED, 0, 0); - osmo_fsm_inst_dispatch(fi, GPRS_NS2_EV_REQ_START, NULL); return; } break; diff --git a/src/gb/gprs_ns2_vty.c b/src/gb/gprs_ns2_vty.c index 5d0f5c0..a3aa6ee 100644 --- a/src/gb/gprs_ns2_vty.c +++ b/src/gb/gprs_ns2_vty.c @@ -1484,6 +1484,7 @@ static int nsvc_force_unconf_cb(struct gprs_ns2_vc *nsvc, void *ctx) { ns2_vc_force_unconfigured(nsvc); + ns2_vc_fsm_start(nsvc); return 0; } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22578 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I31fe695a83d38ea1f10f5444e840633d7fa68442 Gerrit-Change-Number: 22578 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 31 17:59:08 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 31 Jan 2021 17:59:08 +0000 Subject: Change in libosmocore[master]: ns2: Stop test procedure when going into unconfigured state References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22579 ) Change subject: ns2: Stop test procedure when going into unconfigured state ...................................................................... ns2: Stop test procedure when going into unconfigured state When we're unconfigured and not yet started, we should not transmit NS-ALIVE. Change-Id: Ida3685e42a753899f1bf177eefcc23352ec7440d Related: OS#4999 --- M src/gb/gprs_ns2_vc_fsm.c 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/79/22579/1 diff --git a/src/gb/gprs_ns2_vc_fsm.c b/src/gb/gprs_ns2_vc_fsm.c index c77bc4d..8da4323 100644 --- a/src/gb/gprs_ns2_vc_fsm.c +++ b/src/gb/gprs_ns2_vc_fsm.c @@ -633,6 +633,7 @@ case GPRS_NS2_EV_REQ_FORCE_UNCONFIGURED: if (fi->state != GPRS_NS2_ST_UNCONFIGURED) { /* Force the NSVC back to its initial state */ + stop_test_procedure(priv); osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_UNCONFIGURED, 0, 0); return; } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22579 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ida3685e42a753899f1bf177eefcc23352ec7440d Gerrit-Change-Number: 22579 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 31 17:59:09 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 31 Jan 2021 17:59:09 +0000 Subject: Change in libosmocore[master]: ns2: Don't start sending NS-RESET until FR DLC is available References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/22580 ) Change subject: ns2: Don't start sending NS-RESET until FR DLC is available ...................................................................... ns2: Don't start sending NS-RESET until FR DLC is available There's no point in sending NS-RESET (or any other) messages to the underlying FR layer if the FR DLC has not been marked as available/active yet. Change-Id: Id4e7565ba166ca1d12f8800c643d9f2bc4d66873 Closes: OS#4999 --- M src/gb/gprs_ns2_fr.c 1 file changed, 14 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/80/22580/1 diff --git a/src/gb/gprs_ns2_fr.c b/src/gb/gprs_ns2_fr.c index 49e92ae..fc6a5c4 100644 --- a/src/gb/gprs_ns2_fr.c +++ b/src/gb/gprs_ns2_fr.c @@ -179,6 +179,17 @@ talloc_free(priv); } +static void fr_dlci_status_cb(struct osmo_fr_dlc *dlc, void *cb_data, bool active) +{ + struct gprs_ns2_vc *nsvc = cb_data; + + if (active) { + ns2_vc_fsm_start(nsvc); + } else { + ns2_vc_force_unconfigured(nsvc); + } +} + static struct priv_vc *fr_alloc_vc(struct gprs_ns2_vc_bind *bind, struct gprs_ns2_vc *nsvc, uint16_t dlci) @@ -198,8 +209,9 @@ return NULL; } - priv->dlc->rx_cb_data = nsvc; + priv->dlc->cb_data = nsvc; priv->dlc->rx_cb = fr_dlci_rx_cb; + priv->dlc->status_cb = fr_dlci_status_cb; return priv; } @@ -756,7 +768,7 @@ } fr_link->tx_cb = fr_tx_cb; - fr_link->tx_cb_data = bind; + fr_link->cb_data = bind; priv->link = fr_link; priv->ifindex = rc = devname2ifindex(netif); @@ -899,8 +911,6 @@ nsvc->nsvci = nsvci; nsvc->nsvci_is_valid = true; - ns2_vc_fsm_start(nsvc); - return nsvc; err: -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22580 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Id4e7565ba166ca1d12f8800c643d9f2bc4d66873 Gerrit-Change-Number: 22580 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 31 18:02:41 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 31 Jan 2021 18:02:41 +0000 Subject: Change in libosmocore[master]: frame_relay: Add status call-backs for link + DLC status changes In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/22575 to look at the new patch set (#2). Change subject: frame_relay: Add status call-backs for link + DLC status changes ...................................................................... frame_relay: Add status call-backs for link + DLC status changes Change-Id: Iec19db4e48642c3fcb0aa11fa7787b8323fd0e5a Related: Os#4999 --- M include/osmocom/gprs/frame_relay.h M src/gb/frame_relay.c M src/gb/gprs_ns2_fr.c 3 files changed, 38 insertions(+), 17 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/75/22575/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22575 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Iec19db4e48642c3fcb0aa11fa7787b8323fd0e5a Gerrit-Change-Number: 22575 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 31 18:08:48 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 31 Jan 2021 18:08:48 +0000 Subject: Change in libosmocore[master]: gsm_7bit_encode_n(): fix integer overflow in gsm_septets2octets() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/22544 ) Change subject: gsm_7bit_encode_n(): fix integer overflow in gsm_septets2octets() ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/22544 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ib1aac538afeb0a5c76a1df472d555139a496e12e Gerrit-Change-Number: 22544 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 31 Jan 2021 18:08:48 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 31 18:26:58 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 31 Jan 2021 18:26:58 +0000 Subject: Change in osmo-gbproxy[master]: Updatre README to cover osmo-gbproxy and not osmo-sgsn References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/22581 ) Change subject: Updatre README to cover osmo-gbproxy and not osmo-sgsn ...................................................................... Updatre README to cover osmo-gbproxy and not osmo-sgsn While we're at it, also convert it to markdown. Change-Id: Ic7e86dfed985f98ae87af9adcde6f776c5a15044 --- D README A README.md M contrib/osmo-gbproxy.spec.in M debian/copyright 4 files changed, 30 insertions(+), 19 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gbproxy refs/changes/81/22581/1 diff --git a/README b/README deleted file mode 100644 index a14ba38..0000000 --- a/README +++ /dev/null @@ -1,17 +0,0 @@ -About OsmoSGSN -============== - -OsmoSGSN originated from the OpenBSC project, as a separate program within -openbsc.git. In 2017, OpenBSC was split in separate repositories, and hence -OsmoSGSN was given its own separate git repository. - -OsmoSGSN exposes -- GSUP towards OsmoHLR (or a MAP proxy); -- GTP towards a GGSN (e.g. OsmoGGSN); -- Gb towards a BSS (e.g. OsmoPCU); -- IuPS towards an RNC or HNB-GW (e.g. OsmoHNBGW) for 3G data; -- The Osmocom typical telnet VTY and CTRL interfaces. - -Find OsmoSGSN issue tracker and wiki online at -https://osmocom.org/projects/osmosgsn -https://osmocom.org/projects/osmosgsn/wiki diff --git a/README.md b/README.md new file mode 100644 index 0000000..3468736 --- /dev/null +++ b/README.md @@ -0,0 +1,28 @@ +About osmo-gbproxy +================== + +osmo-gbproxy is a proxy for the Gb interface within the 3GPP GERAN (GPRS/EDGE RAN) +architecture. It is part of the [Osmocom](https://osmocom.org/) Open Source +Mobile Communications projects. + +It allows you to aggregate many Gb links/connections into one. It also +has the ability to convert between different Gb interface protocol +stacking, such as from Gb-over-FrameRelay to Gb-over-IP. + +Until 2021 it used to be part of the osmo-sgsn git repository, and before that +(until 2017) part of openbsc.git + +Homepage and Issue Tracker +-------------------------- + +Find the issue tracker and wiki online at + and +, respectively. + +Documentation +------------- + +You can find the user manual at + +and the VTY reference manual at +. diff --git a/contrib/osmo-gbproxy.spec.in b/contrib/osmo-gbproxy.spec.in index 4bb071c..9392147 100644 --- a/contrib/osmo-gbproxy.spec.in +++ b/contrib/osmo-gbproxy.spec.in @@ -68,7 +68,7 @@ make %{?_smp_mflags} check || (find . -name testsuite.log -exec cat {} +) %files -%doc AUTHORS README +%doc AUTHORS README.md %dir %{_docdir}/%{name}/examples %dir %{_docdir}/%{name}/examples/osmo-sgsn %{_docdir}/%{name}/examples/osmo-sgsn/osmo-gbproxy.cfg diff --git a/debian/copyright b/debian/copyright index 4f4fdfb..66e36b9 100644 --- a/debian/copyright +++ b/debian/copyright @@ -7,7 +7,7 @@ .mailmap AUTHORS Makefile.am - README + README.md README.vty-tests configure.ac contrib/Makefile.am -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/22581 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: Ic7e86dfed985f98ae87af9adcde6f776c5a15044 Gerrit-Change-Number: 22581 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 31 18:29:11 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 31 Jan 2021 18:29:11 +0000 Subject: Change in osmo-ci[master]: master + gerrit jenkins jobs: Add osmo-gbproxy References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/22582 ) Change subject: master + gerrit jenkins jobs: Add osmo-gbproxy ...................................................................... master + gerrit jenkins jobs: Add osmo-gbproxy osmo-gbproxy is moving to its own reporitory Change-Id: Id29c83bdcd9b626bb7920738c8b1f945ef7f3671 --- M jobs/gerrit-verifications.yml M jobs/master-builds.yml 2 files changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/82/22582/1 diff --git a/jobs/gerrit-verifications.yml b/jobs/gerrit-verifications.yml index 5447495..aa8fc76 100644 --- a/jobs/gerrit-verifications.yml +++ b/jobs/gerrit-verifications.yml @@ -247,6 +247,7 @@ - osmo-uecups - osmo-el2tpd - osmo-smlc + - osmo-gbproxy - pysim: slave_axis: !!python/tuple [simtester] diff --git a/jobs/master-builds.yml b/jobs/master-builds.yml index cab841d..e6a8239 100644 --- a/jobs/master-builds.yml +++ b/jobs/master-builds.yml @@ -347,6 +347,7 @@ - osmo-uecups - osmo-el2tpd - osmo-smlc + - osmo-gbproxy - rtl-sdr: email: laforge at gnumonks.org steve at steve-m.de -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22582 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Id29c83bdcd9b626bb7920738c8b1f945ef7f3671 Gerrit-Change-Number: 22582 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 31 18:29:12 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 31 Jan 2021 18:29:12 +0000 Subject: Change in osmo-ci[master]: osmocom-latest-packages: Build osmo-cbc References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/22583 ) Change subject: osmocom-latest-packages: Build osmo-cbc ...................................................................... osmocom-latest-packages: Build osmo-cbc osmo-cbc has full support for building dpkg + rpm from the latest tag (0.2), hence we can enable building it also in 'latest' Change-Id: Ia5bfd126ad168da7ab629b1f18ecfd60d4a49a51 --- M scripts/osmocom-latest-packages.sh 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/83/22583/1 diff --git a/scripts/osmocom-latest-packages.sh b/scripts/osmocom-latest-packages.sh index 9c842be..906d068 100755 --- a/scripts/osmocom-latest-packages.sh +++ b/scripts/osmocom-latest-packages.sh @@ -151,6 +151,7 @@ checkout neocon https://github.com/laf0rge/neocon checkout osmo-uecups checkout osmo-e1d + checkout osmo-cbc cd "$TOP" osmo_obs_checkout_copy debian8 osmo-gsm-manuals @@ -188,6 +189,7 @@ # re-enable after libosmcoore > 1.3.1 is released (osmo_system_nowait2) #build osmo-uecups build osmo-e1d + build osmo-cbc cd "$TOP/$PROJ" osc ci -m "Latest Tagged versions of $DT" --noservice -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/22583 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ia5bfd126ad168da7ab629b1f18ecfd60d4a49a51 Gerrit-Change-Number: 22583 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 31 18:31:35 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 31 Jan 2021 18:31:35 +0000 Subject: Change in osmo-gbproxy[master]: Update README to cover osmo-gbproxy and not osmo-sgsn In-Reply-To: References: Message-ID: laforge has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/22581 ) Change subject: Update README to cover osmo-gbproxy and not osmo-sgsn ...................................................................... Update README to cover osmo-gbproxy and not osmo-sgsn While we're at it, also convert it to markdown. Change-Id: Ic7e86dfed985f98ae87af9adcde6f776c5a15044 --- D README A README.md M contrib/osmo-gbproxy.spec.in M debian/copyright 4 files changed, 30 insertions(+), 19 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gbproxy refs/changes/81/22581/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/22581 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: Ic7e86dfed985f98ae87af9adcde6f776c5a15044 Gerrit-Change-Number: 22581 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 31 19:16:47 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 31 Jan 2021 19:16:47 +0000 Subject: Change in osmo-gbproxy[master]: Updatre README to cover osmo-gbproxy and not osmo-sgsn In-Reply-To: References: Message-ID: laforge has uploaded a new patch set (#3). ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/22581 ) Change subject: Updatre README to cover osmo-gbproxy and not osmo-sgsn ...................................................................... Updatre README to cover osmo-gbproxy and not osmo-sgsn While we're at it, also convert it to markdown. Change-Id: Ic7e86dfed985f98ae87af9adcde6f776c5a15044 --- D README A README.md M contrib/osmo-gbproxy.spec.in M debian/copyright 4 files changed, 30 insertions(+), 19 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gbproxy refs/changes/81/22581/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/22581 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: Ic7e86dfed985f98ae87af9adcde6f776c5a15044 Gerrit-Change-Number: 22581 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jan 31 19:16:47 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sun, 31 Jan 2021 19:16:47 +0000 Subject: Change in osmo-gbproxy[master]: Further clean-up in osmo-sgsn -> osmo-gbproxy migration References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/22586 ) Change subject: Further clean-up in osmo-sgsn -> osmo-gbproxy migration ...................................................................... Further clean-up in osmo-sgsn -> osmo-gbproxy migration * fix manuals builds, including vty reference generation * remove manuals from osmo-sgsn * update .gitreview * update osmoappdesc.py Change-Id: I80439ab0d21a3fb33f38da42acbfe3fbb0941b91 --- M .gitreview M doc/manuals/Makefile.am D doc/manuals/chapters/configuration.adoc D doc/manuals/chapters/control.adoc D doc/manuals/chapters/counters.adoc M doc/manuals/chapters/counters_generated.adoc D doc/manuals/chapters/overview.adoc D doc/manuals/chapters/running.adoc M doc/manuals/osmogbproxy-usermanual.adoc M doc/manuals/osmogbproxy-vty-reference.xml D doc/manuals/osmosgsn-usermanual-docinfo.xml D doc/manuals/osmosgsn-usermanual.adoc D doc/manuals/osmosgsn-vty-reference.xml M doc/manuals/regen_doc.sh R doc/manuals/vty/gbproxy_vty_additions.xml R doc/manuals/vty/gbproxy_vty_reference.xml D doc/manuals/vty/sgsn_vty_additions.xml D doc/manuals/vty/sgsn_vty_reference.xml M osmoappdesc.py M src/gb_proxy_main.c 20 files changed, 383 insertions(+), 3,815 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gbproxy refs/changes/86/22586/1 diff --git a/.gitreview b/.gitreview index 560ddef..06de549 100644 --- a/.gitreview +++ b/.gitreview @@ -1,3 +1,3 @@ [gerrit] host=gerrit.osmocom.org -project=osmo-sgsn +project=osmo-gbproxy diff --git a/doc/manuals/Makefile.am b/doc/manuals/Makefile.am index cd57cf1..fa342ab 100644 --- a/doc/manuals/Makefile.am +++ b/doc/manuals/Makefile.am @@ -1,23 +1,26 @@ -EXTRA_DIST = osmosgsn-usermanual.adoc \ - osmosgsn-usermanual-docinfo.xml \ - osmosgsn-vty-reference.xml \ +EXTRA_DIST = \ osmogbproxy-usermanual.adoc \ osmogbproxy-usermanual-docinfo.xml \ - regen_doc.sh \ - chapters \ - vty \ osmogbproxy-vty-reference.xml \ - vty-osmogbproxy \ + chapters \ + regen_doc.sh \ + vty \ $(NULL) if BUILD_MANUALS - ASCIIDOC = osmosgsn-usermanual.adoc osmogbproxy-usermanual.adoc - ASCIIDOC_DEPS = $(srcdir)/chapters/*.adoc + ASCIIDOC = osmogbproxy-usermanual.adoc include $(OSMO_GSM_MANUALS_DIR)/build/Makefile.asciidoc.inc + osmogbproxy-usermanual.pdf: $(srcdir)/chapters/*.adoc #$(srcdir)/chapters/*.dot - VTY_REFERENCE = osmosgsn-vty-reference.xml osmogbproxy-vty-reference.xml + VTY_REFERENCE = osmogbproxy-vty-reference.xml + + BUILT_REFERENCE_XML = $(builddir)/vty/gbproxy_vty_reference.xml + $(builddir)/vty/gbproxy_vty_reference.xml: $(top_builddir)/src/osmo-gbproxy + mkdir -p $(builddir)/vty + $(top_builddir)/src/osmo-gbproxy --vty-ref-xml > $@ + include $(OSMO_GSM_MANUALS_DIR)/build/Makefile.vty-reference.inc - OSMO_REPOSITORY = osmo-sgsn + OSMO_REPOSITORY = osmo-gbproxy include $(OSMO_GSM_MANUALS_DIR)/build/Makefile.common.inc endif diff --git a/doc/manuals/chapters/configuration.adoc b/doc/manuals/chapters/configuration.adoc deleted file mode 100644 index 7d3072e..0000000 --- a/doc/manuals/chapters/configuration.adoc +++ /dev/null @@ -1,378 +0,0 @@ -== Configuring OsmoSGSN - -Contrary to other network elements (like OsmoBSC, OsmoNITB), the -OsmoSGSN has a relatively simple configuration. - -On the one hand, this is primary because the PCU configuration happens -from the BSC side. - -On the other hand, it is because the Gb interface does not need an -explicit configuration of each PCU connecting to the SGSN. The -administrator only has to ensure that the NS and BSSGP layer identities -(NSEI, NSVCI, BVCI) are unique for each PCU connecting to the SGSN. - -=== Configuring the Gp interface - -The Gp interface is the GTP-C and GTP-U based interface between the SGSN -and the GGSNs. It is implemented via UDP on well-known source and -destination ports. - -When an MS requests establishment of a PDP context, it specifies the APN -(Access Point Name) to which the context shall be established. This APN -determines which GGSN shall be used, and that in turn determines which -external IP network the MS will be connected to. - -There are two modes in which GGSNs can be configured: - -. static GGSN/APN configuration -. dynamic GGSN/APN configuration - -==== Static GGSN/APN configuration - -In this mode, there is a static list of GGSNs and APNs configured in -OsmoSGSN via the VTY / config file. - -This is a non-standard method outside of the 3GPP specifications for the -SGSN, and is typically only used in private/small GPRS networks without -any access to a GRX. - -.Example: Static GGSN/APN configuration (single catch-all GGSN) ----- -OsmoSGSN(config-sgsn)# gtp local-ip 172.0.0.1 <1> -OsmoSGSN(config-sgsn)# ggsn 0 remote-ip 127.0.0.2 <2> -OsmoSGSN(config-sgsn)# ggsn 0 gtp-version 1 <3> -OsmoSGSN(config-sgsn)# apn * ggsn 0 <4> ----- -<1> Configure the local IP address at the SGSN used for Gp/GTP -<2> Specify the remote IP address of the GGSN (for GGSN 0) -<3> Specify the GTP protocol version used for GGSN 0 -<4> Route all APN names to GGSN 0 - - -==== Dynamic GGSN/APN configuration - -In this mode, the SGSN will use a DNS-based method to perform the lookup -from the APN (as specified by the MS) towards the GGSN IP address. - -This is the official method as per the 3GPP specifications for the SGSN, -and what is used on GRX. - -.Example: Dynamic GGSN/APN configuration ----- -OsmoSGSN(config-sgsn)# gtp local-ip 192.168.0.11 <1> -OsmoSGSN(config-sgsn)# ggsn dynamic <2> -OsmoSGSN(config-sgsn)# grx-dns-add 1.2.3.4 <3> ----- -<1> Configure the local IP address at the SGSN used for Gp/GTP -<2> Enable the dynamic GGSN resolving mode -<3> Specify the IP address of a DNS server for APN resolution - -[[auth-pol]] -=== Authorization Policy - -The authorization policy controls by which rules a subscriber is accepted or -rejected. The possible options range from accepting just all subscribers without -further checking, to a fine grained access-control, handled by an external HLR. - -accept-all:: All subscribers that attempt to attach to the GPRS network are -accepted without further checking. This option is intended to be used for -testing in a controlled environment only. A wide-open network may attract -subscribers from foreign networks and disrupt their service. It is highly -recommended to pick one of the options below. - -remote:: This option allows to connect OsmoSGSN to an external HLR via the -GSUP protocol. This will be the preferred option in larger networks. - -acl-only:: If no external HLR is available, the network operator has the -option to control the access using an access control list. The access control -list contains the IMSI numbers of the allowed subscribers. This method offers -fine grained access control and is ideal for small networks and lab test -environments. - -closed:: This policy mode softens the strict *acl-only* only mode by also -implicitly accepting home network subscribers. The decision is made by the MCC -and MNC part of the IMSI number. The combination of MCC and MNC fully identifies -a subscribers home network, also known as a Home Network Identity (HNI, i.e. -MCC and MNC found at the start of the IMSI, e.g. MCC 901 and MNC 700 with -IMSI 901700000003080). - -NOTE: The policy mode *closed* must not be confused with the equally named -policy that is defined for osmo-nitb! - - -.Example: Assign or change authorization policy ----- -OsmoSGSN> enable -OsmoSGSN# configure terminal -OsmoSGSN(config)# sgsn -OsmoSGSN(config-sgsn)# auth-policy acl-only <1> -OsmoSGSN(config-sgsn)# write <2> -Configuration saved to sgsn.cfg -OsmoSGSN(config-sgsn)# end -OsmoSGSN# disable -OsmoSGSN> ----- -<1> 'acl-only' is selected as authorization policy -<2> Saves current changes to cofiguration to make this policy -persistent - -.Example: Access control list ----- -sgsn - auth-policy acl-only <1> - imsi-acl add 001010000000003 - imsi-acl add 001010000000002 - imsi-acl add 001010000000001 - imsi-acl add 901700000000068 <2> ----- -<1> Set the authorization policy -<2> Add as many subscribers as required - -=== Subscriber Configuration - -As opposed to OsmoNITB, OsmoSGSN does not feature a built-in HLR. - -It can thus operate only in the following two modes: - -. Accessing an external HLR (or HLR gateway) via the GSUP protocol -. Accepting subscribers based on internal ACL (access control list), - see also <> - -==== Accessing an external HLR via GSUP - -The non-standard GSUP protocol was created to provide OsmoSGSN with -access to an external HLR while avoiding the complexities of the -TCAP/MAP protocol stack commonly used by HLRs. - -A custom HLR could either directly implement GSUP, or an external gateway -can be used to convert GSUP to the respective MAP operations. - -The primitives/operations of GSUP are modelled to have a 1:1 -correspondence to their MAP counterparts. However, the encoding is much -simplified by use of a binary TLV encoding similar to Layer 3 of -GSM/GPRS. - -GSUP performs a challenge-response authentication protocol called OAP, -which uses the standard MILENAGE algorithm for mutual authentication -between OsmoSGSN and the HLR/HLR-GW. - -[[sgsn-ex-gsup]] -.Example: Using an external HLR via GSUP ----- -OsmoSGSN(config-sgsn)# gsup remote-ip 2.3.4.5 <1> -OsmoSGSN(config-sgsn)# gsup remote-port 10000 <2> -OsmoSGSN(config-sgsn)# gsup oap-k 000102030405060708090a0b0c0d0e0f <3> -OsmoSGSN(config-sgsn)# gsup oap-opc 101112131415161718191a1b1c1d1e1f <4> ----- -<1> Configure the IP address of the (remote) HLR or HLR-GW -<2> Configure the TCP port of the (remote) HLR or HLR-GW -<3> Specify the OAP shared key -<4> Specify the OAP shared OPC - - -=== CDR configuration - -OsmoSGSN can write a text log file containing CDR (call data records), -which are commonly used for accounting/billing purpose. - -.Example: CDR log file configuration ----- -OsmoSGSN(config-sgsn)# cdr filename /var/log/osmosgsn.cdr -OsmoSGSN(config-sgsn)# cdr interval 600 <1> ----- -<1> Periodically log existing PDP contexts every 600 seconds (10 min) - -The CDR file is a simple CSV file including a header line naming the -individual fields of each CSV line. - -==== CDR CTRL interface - -Independently of whether logging CDR to a file is enabled or not, OsmoSGSN can -also provide delivery of CDR through the CTRL interface. CDR are sent by means -of TRAP messages with variable name _cdr-v1_, and its value is filled using the -same CSV line format as in the log file, but without CSV header line. - -.Example: CDR delivery through CTRL TRAP messages ----- -OsmoSGSN(config-sgsn)# cdr trap ----- - -==== CDR Format - -[[sgsn-cdr]] -.Description of CSV fields in OsmoSGSN CDR file -[options="header",cols="15%,85%"] -|=== -|Field Name|Description -|timestamp|Timestamp in YYYYMMDDhhmmssXXX where XXX are milli-seconds -|imsi|IMSI causing this CDR -|imei|IMEI causing this CDR -|msisdn|MSISDN causing this CDR (if known) -|cell_id|Cell ID in which the MS was registered last -|lac|Location Area Code in which the MS was registered last -|hlr|HLR of the subscriber -|event|Possible events are explained below in <> -|=== - -If the _event_ field describes a pdp context related action (starts with -_pdp-_), then the following extra CSV fields are appended to the line: - -[[sgsn-cdr-pdp]] -.Description of extra CSV fields for pdp context related events -[options="header",cols="15%,85%"] -|=== -|Field Name|Description -|pdp_duration|duration of the PDP context so far -|ggsn_addr|GGSN related to the PDP context -|sgsn_addr|SGSN related to the PDP context -|apni|APN identifier of the PDP context -|eua_addr|IP address allocated to the PDP context -|vol_in|Number of bytes in MO direction -|vol_out|Number of bytes in MT direction -|charging_id|Related charging ID -|=== - -[[sgsn-cdr-event]] -.Description of OsmoSGSN CDR Events -[options="header",cols="15%,85%"] -|=== -|Event|Description -|attach|GMM ATTACH COMPLETE about to be sent to MS -|update|GMM ROUTING AREA UPDATE COMPLETE about to be sent to MS -|detach|GMM DETACH REQUEST received from MS -|free|Release of the MM context memory -|pdp-act|GTP CREATE PDP CONTEXT CONFIRM received from GGSN -|pdp-deact|GTP DELETE PDP CONTEXT CONFIRM received from GGSN -|pdp-terminate|Forced PDP context termination during MM context release -|pdp-free|Release of the PDP context memory -|pdp-periodic|Triggered by periodic timer, see VTY cmd _cdr interval_ -|=== - - -=== User traffic compression - -In order to save GPRS bandwith, OsmoSGSN implements header and data -compression schemes which will reduce the packet length. - -==== Header compression - -On TCP/IP connections, each packet is prepended with a fairly long TCP/IP -header. The header contains a lot of static information that never changes -throughout the connection. (source and destination address, port numbers etc.) -OsmoSGSN implements a TCP/IP header compression scheme called RFC1144, also -known as SLHC. This type of header compression removes the TCP/IP header -entirely and replaces it with a shorter version, that only contains the -information that is absolutely necessary to identify and check the packet. -The receiving part then restores the original header and forwards it to higher -layers. - -*compression rfc1144 passive*:: -TCP/IP header compression has to be actively requested by the modem. The -network will not promote compression by itself. This is the recommended mode -of operation. - -*compression rfc1144 active slots <1-256>*:: -TCP/IP header compression is actively promoted by the network. Modems may still -actively request different compression parameters or reject the offered -compression parameters entirely. The number of slots is the maximum number -of packet headers per subscriber that can be stored in the codebook. - -.Example: Accept compression if requested ----- -sgsn - compression rfc1144 passive ----- - -.Example: Actively promote compression ----- -sgsn - compression rfc1144 active slots 8 ----- - -.Example: Turn off compression ----- -sgsn - no compression rfc1144 ----- - -NOTE: The usage of TCP/IP options may disturb the RFC1144 header compression -scheme. TCP/IP options may render RFC1144 ineffective if variable data is -encoded into the option section of the TCP/IP packet. (e.g. TCP option 8, -Timestamp) - - -==== Data compression - -Data compression works on the raw packet data, including the header part of the -packet. If enabled, header compression is applied first before data compression -is applied. OsmoSGSN implements the V.42bis data compression scheme. - -*compression v42bis passive*:: -V42bis data compression has to be actively requested by the modem. The network -will not promote compression by itself. This is the recommended mode of -operation. - -*compression v42bis active direction (ms|sgsn|both) codewords <512-65535> strlen <6-250>*:: -V42bis data compression is actively promoted by the network. Modems may still -actively request different compression parameters or reject the offered -compression parameters entirely. The direction configures which sides are -allowed to send compressed packets. For most cases, compressing 'both' -directions will be the preferred option. The following to parameters configure -the codebook size by the maxium number ('codewords') and size ('strlen') of -entries. - -.Example: Accept compression if requested ----- -sgsn - compression v42bis passive ----- - -.Example: Actively promote compression ----- -sgsn - compression v42bis active direction both codewords 512 strlen 20 ----- - -.Example: Turn off compression ----- -sgsn - no compression v42bis ----- - -=== Encryption - -Encryption can be enabled if the auth-policy is set to remote and the -HLR subscriber entries contain the keys of the SIM card. See -<> on how to connect to an external HLR. - -.Example: Turn on encryption (GEA3) ----- -sgsn - encryption GEA3 ----- - -.Example: Turn off encryption (GEA0) ----- -sgsn - encryption GEA0 ----- - -=== Configure SCCP/M3UA to accept _IuPS_ links - -OsmoSGSN acts as client to contact an STP instance and establish an SCCP/M3UA -link. - -An example configuration of OsmoSGSN's SCCP link: - ----- -cs7 instance 0 - point-code 0.23.4 - asp asp-clnt-OsmoSGSN 2905 0 m3ua - remote-ip 127.0.0.1 - sctp-role client - as as-clnt-OsmoSGSN m3ua - asp asp-clnt-OsmoSGSN - routing-key 0 0.23.4 ----- - -This configuration is explained in detail in <>. diff --git a/doc/manuals/chapters/control.adoc b/doc/manuals/chapters/control.adoc deleted file mode 100644 index 0f2bfae..0000000 --- a/doc/manuals/chapters/control.adoc +++ /dev/null @@ -1,23 +0,0 @@ -[[control]] -== Control interface - -The actual protocol is described in <>, the variables -common to all programs using it are described in <>. Here we -describe variables specific to OsmoSGSN. - -.Variables available over control interface -[options="header",width="100%",cols="20%,5%,5%,50%,20%"] -|=== -|Name|Access|Trap|Value|Comment -|subscriber-list-active-v1|RO|No|","|See <> for details. -|=== - -[[subs]] -=== subscriber-list-active-v1 - -Return the list of active subscribers as a concatenated set of pairs "", -"addr" where first element of the pair is subscriber's IMSI and the second -element (which might be empty) is the subscriber's address. The address value -might be "none", "invalid" and "PPP" in addition to actual IP address. In case -of IP address it will be prefixed with "IPv4" or "IPv6" string depending on the -version of IP protocol. diff --git a/doc/manuals/chapters/counters.adoc b/doc/manuals/chapters/counters.adoc deleted file mode 100644 index 7fbb10c..0000000 --- a/doc/manuals/chapters/counters.adoc +++ /dev/null @@ -1,4 +0,0 @@ -[[counters]] -== Counters - -include::./counters_generated.adoc[] diff --git a/doc/manuals/chapters/counters_generated.adoc b/doc/manuals/chapters/counters_generated.adoc index dac46aa..e16560c 100644 --- a/doc/manuals/chapters/counters_generated.adoc +++ b/doc/manuals/chapters/counters_generated.adoc @@ -1,52 +1,10 @@ // autogenerated by show asciidoc counters -These counters and their description based on OsmoSGSN 1.4.0.31-05fe (OsmoSGSN). +These counters and their description are based on OsmoGbProxy UNKNOWN-dirty (OsmoGbProxy). === Rate Counters // generating tables for rate_ctr_group -// rate_ctr_group table BSSGP Peer Statistics -.bssgp:bss_ctx - BSSGP Peer Statistics -[options="header"] -|=== -| Name | Reference | Description -| packets:in | <> | Packets at BSSGP Level ( In) -| packets:out | <> | Packets at BSSGP Level (Out) -| bytes:in | <> | Bytes at BSSGP Level ( In) -| bytes:out | <> | Bytes at BSSGP Level (Out) -| blocked | <> | BVC Blocking count -| discarded | <> | BVC LLC Discarded count -| status | <> | BVC Status count -|=== -// rate_ctr_group table SGSN Overall Statistics -.sgsn - SGSN Overall Statistics -[options="header"] -|=== -| Name | Reference | Description -| llc:dl_bytes | <> | Count sent LLC bytes before giving it to the bssgp layer -| llc:ul_bytes | <> | Count successful received LLC bytes (encrypt & fcs correct) -| llc:dl_packets | <> | Count successful sent LLC packets before giving it to the bssgp layer -| llc:ul_packets | <> | Count successful received LLC packets (encrypt & fcs correct) -| gprs:attach_requested | <> | Received attach requests -| gprs:attach_accepted | <> | Sent attach accepts -| gprs:attach_rejected | <> | Sent attach rejects -| gprs:detach_requested | <> | Received detach requests -| gprs:detach_acked | <> | Sent detach acks -| gprs:routing_area_requested | <> | Received routing area requests -| gprs:routing_area_requested | <> | Sent routing area acks -| gprs:routing_area_requested | <> | Sent routing area rejects -| pdp:activate_requested | <> | Received activate requests -| pdp:activate_rejected | <> | Sent activate rejects -| pdp:activate_accepted | <> | Sent activate accepts -| pdp:request_activated | <> | unused -| pdp:request_activate_rejected | <> | unused -| pdp:modify_requested | <> | unused -| pdp:modify_accepted | <> | unused -| pdp:dl_deactivate_requested | <> | Sent deactivate requests -| pdp:dl_deactivate_accepted | <> | Sent deactivate accepted -| pdp:ul_deactivate_requested | <> | Received deactivate requests -| pdp:ul_deactivate_accepted | <> | Received deactivate accepts -|=== // rate_ctr_group table NSVC Peer Statistics .ns:nsvc - NSVC Peer Statistics [options="header"] @@ -54,16 +12,46 @@ | Name | Reference | Description | packets:in | <> | Packets at NS Level ( In) | packets:out | <> | Packets at NS Level (Out) +| packets:out:drop | <> | Dropped Packets (Out) | bytes:in | <> | Bytes at NS Level ( In) | bytes:out | <> | Bytes at NS Level (Out) -| blocked | <> | NS-VC Block count -| dead | <> | NS-VC gone dead count +| bytes:out:drop | <> | Dropped Bytes (Out) +| blocked | <> | NS-VC Block count +| unblocked | <> | NS-VC Unblock count +| dead | <> | NS-VC gone dead count | replaced | <> | NS-VC replaced other count -| nsei-chg | <> | NS-VC changed NSEI count -| inv-nsvci | <> | NS-VCI was invalid count -| inv-nsei | <> | NSEI was invalid count -| lost:alive | <> | ALIVE ACK missing count -| lost:reset | <> | RESET ACK missing count +| nsei-chg | <> | NS-VC changed NSEI count +| lost:alive | <> | ALIVE ACK missing count +| lost:reset | <> | RESET ACK missing count +|=== +// rate_ctr_group table GBProxy Peer Statistics +.gbproxy:peer - GBProxy Peer Statistics +[options="header"] +|=== +| Name | Reference | Description +| blocked | <> | BVC Block +| unblocked | <> | BVC Unblock +| dropped | <> | BVC blocked, dropped packet +| inv-nsei | <> | NSEI mismatch +| tx-err | <> | NS Transmission error +|=== +// rate_ctr_group table GBProxy Global Statistics +.gbproxy:global - GBProxy Global Statistics +[options="header"] +|=== +| Name | Reference | Description +| inv-bvci | <> | Invalid BVC Identifier +| inv-lai | <> | Invalid Location Area Identifier +| inv-rai | <> | Invalid Routing Area Identifier +| inv-nsei | <> | No BVC established for NSEI +| proto-err:bss | <> | BSSGP protocol error (BSS ) +| proto-err:sgsn | <> | BSSGP protocol error (SGSN) +| not-supp:bss | <> | Feature not supported (BSS ) +| not-supp:sgsn | <> | Feature not supported (SGSN) +| restart:sgsn | <> | Restarted RESET procedure (SGSN) +| tx-err:sgsn | <> | NS Transmission error (SGSN) +| error | <> | Other error +| mod-peer-err | <> | Patch error: no peer |=== == Osmo Stat Items @@ -76,6 +64,14 @@ | Name | Reference | Description | Unit | alive.delay | <> | ALIVE response time | ms |=== +NS Bind Statistics +// osmo_stat_item_group table NS Bind Statistics +.ns.bind - NS Bind Statistics +[options="header"] +|=== +| Name | Reference | Description | Unit +| tx_backlog_length | <> | Transmit backlog length | packets +|=== == Osmo Counters // generating tables for osmo_counters diff --git a/doc/manuals/chapters/overview.adoc b/doc/manuals/chapters/overview.adoc deleted file mode 100644 index e2c0107..0000000 --- a/doc/manuals/chapters/overview.adoc +++ /dev/null @@ -1,109 +0,0 @@ -[[chapter_introduction]] -== Overview - -[[intro_overview]] -=== About OsmoSGSN - -OsmoSGSN is the Osmocom implementation of the GPRS SGSN (Serving Gprs -Support Node) element inside the GPRS network. The SGSN plays a similar -central function to the GPRS network as the MSC plays in the GSM -network. - -The SGSN is connected on the downlink side to Gb interfaces of the BSS, -specifically the PCU inside the BSS. The SGSN is further connected by -the GTP protocol to the GGSN which terminates the tunnels towards the -external packet data network (e.g. IPv4). - -OsmoSGSN supports both a PCU that is co-located with(in) the BTS, as -well as a PCU that is co-located with(in) the BSC. In combination with -OsmoNITB/OsmoBSC/OsmoBTS, the PCU is co-located within the BTS. - -[[fig-gprs-pcubts]] -.GPRS network architecture with PCU in BTS -[graphviz] ----- -digraph G { - rankdir=LR; - MS0 [label="MS"]; - MS1 [label="MS"]; - MS0->BTS [label="Um"]; - MS1->BTS [label="Um"]; - BTS->BSC [label="Abis"]; - BSC->MSC [label="A"]; - BTS->PCU [label="pcu_sock"]; - PCU->SGSN [label="Gb"]; - SGSN->GGSN [label="GTP"]; -} ----- - -=== Software Components - -OsmoSGSN contains a variety of different software components, which -we'll quickly describe in this section. - -==== Gb Implementation - -OsmoSGSN implements the ETSI/3GPP specified Gb interface, including TS -08.16 (NS), TS 08.18 (BSSGP) and TS 08.64 (LLC) protocols. As transport -layers for NS, it supports NS/IP (NS encapsulated in UDP/IP), as well as -NS/FR/GRE/IP. The latter is provided in order to use a Router with -Ethernet and Frame Relay interface to convert to actual physical Frame -Relay medium, which is not directly supported by OsmoSGSN. - -The actual Gb Implementation is part of the libosmogb library, which is -in turn part of the libosmocore software package. This allows the same -Gb implementation to be used from osmo-pcu, osmo-gbproxy as well as -OsmoSGSN. - - -==== GTP Implementation - -OsmoSGSN uses the libgtp implementation originating from OsmoGGSN. It -supports both GTPv0 and GTPv1. - - -==== GMM Implementation - -The GPRS Mobility Management implementation is quite simplistic at this -point. It supports the GPRS ATTACH and GPRS ROUTING AREA UPDATE -procedures, as well as GPRS ATTACH and GPRS DETACH. - -==== LLC Implementation - -The LLC (Logical Link Control) implementation of OsmoSGSN only supports -non-acknowledged mode, as this is the most common use case in real-world -GPRS networks. - -It does support both TCP/IP header compression according to RFC1144 and -payload compression according to V.42bis - -The LLC implementation does support LLC encryption with ciphers GEA3 and GEA4. -For encryption to work the auth policy needs to be set to remote and the SGSN -connected to an HLR containing the subscriber data including key material. -Other auth policys will not work with encryption. - -==== Session Management Implementation - -The session management procedures ACTIVATE PDP CONTEXT and DEACTIVATE -PDP CONTEXT are supported. However, no MODIFY PDP CONTEXT and no -Network-initiated PDP context activation is possible. This is again -covering the predominant use cases and configurations in GPRS real-world -networks while skipping the more esoteric features. - -Multiple PDP contexts can be attached by a single MS. - -Multiple GGSNs can be configured and routing to a GGSN can be configured based -on APN. Dynamic lookup of GGSNs though DNS-based APN resolving is also possible. - -=== Limitations - -At the time of writing, OsmoSGSN still has a number of limitations, -which are a result of the demand-driven Open Source development model. -If you require any of those features, please consider implementing and -contributing them, or contracting the existing OsmoSGSN developers for -performing that work. - -Known Limitations include: - -* No paging coordination between SGSN and MSC -* No SMS over Ps support diff --git a/doc/manuals/chapters/running.adoc b/doc/manuals/chapters/running.adoc deleted file mode 100644 index 63c2b27..0000000 --- a/doc/manuals/chapters/running.adoc +++ /dev/null @@ -1,35 +0,0 @@ -== Running OsmoSGSN - -The OsmoSGSN executable (`osmo-sgsn`) offers the following command-line -options: - - -=== SYNOPSIS - -*osmo-sgsn* [-h|-V] [-d 'DBGMASK'] [-D] [-c 'CONFIGFILE'] [-s] [-e 'LOGLEVEL'] - - -=== OPTIONS - -*-h, --help*:: - Print a short help message about the supported options -*-V, --version*:: - Print the compile-time version number of the OsmoSGSN program -*-d, --debug 'DBGMASK','DBGLEVELS'*:: - Set the log subsystems and levels for logging to stderr. This - has mostly been superseded by VTY-based logging configuration, - see <> for further information. -*-D, --daemonize*:: - Fork the process as a daemon into background. -*-c, --config-file 'CONFIGFILE'*:: - Specify the file and path name of the configuration file to be - used. If none is specified, use `osmo_sgsn.cfg` in the current - working directory. -*-s, --disable-color*:: - Disable colors for logging to stderr. This has mostly been - deprecated by VTY based logging configuration, see <> - for more information. -*-e, --log-level 'LOGLEVEL'*:: - Set the global log level for logging to stderr. This has mostly - been deprecated by VTY based logging configuration, see - <> for more information. diff --git a/doc/manuals/osmogbproxy-usermanual.adoc b/doc/manuals/osmogbproxy-usermanual.adoc index d19bdd4..f4da954 100644 --- a/doc/manuals/osmogbproxy-usermanual.adoc +++ b/doc/manuals/osmogbproxy-usermanual.adoc @@ -25,7 +25,7 @@ include::./common/chapters/control_if.adoc[] -//include::{srcdir}/chapters/counters.adoc[] +include::{srcdir}/chapters/counters_generated.adoc[] include::./common/chapters/port_numbers.adoc[] diff --git a/doc/manuals/osmogbproxy-vty-reference.xml b/doc/manuals/osmogbproxy-vty-reference.xml index ecf2268..5c2a16a 100644 --- a/doc/manuals/osmogbproxy-vty-reference.xml +++ b/doc/manuals/osmogbproxy-vty-reference.xml @@ -6,7 +6,7 @@ - + ]> diff --git a/doc/manuals/osmosgsn-usermanual-docinfo.xml b/doc/manuals/osmosgsn-usermanual-docinfo.xml deleted file mode 100644 index afbf109..0000000 --- a/doc/manuals/osmosgsn-usermanual-docinfo.xml +++ /dev/null @@ -1,54 +0,0 @@ - - - 1 - January 13, 2013 - HW - - Initial version. - - - - 2 - February 2016 - HW - - Conversion to asciidoc, removal of sysmoBTS specific parts. - - - - - - - Harald - Welte - hwelte at sysmocom.de - HW - - sysmocom - sysmocom - s.f.m.c. GmbH - Managing Director - - - - - - 2013-2016 - sysmocom - s.f.m.c. GmbH - - - - - Permission is granted to copy, distribute and/or modify this - document under the terms of the GNU Free Documentation License, - Version 1.3 or any later version published by the Free Software - Foundation; with no Invariant Sections, no Front-Cover Texts, - and no Back-Cover Texts. A copy of the license is included in - the section entitled "GNU Free Documentation License". - - - The Asciidoc source code of this manual can be found at - - http://git.osmocom.org/osmo-gsm-manuals/ - - - diff --git a/doc/manuals/osmosgsn-usermanual.adoc b/doc/manuals/osmosgsn-usermanual.adoc deleted file mode 100644 index 610704a..0000000 --- a/doc/manuals/osmosgsn-usermanual.adoc +++ /dev/null @@ -1,40 +0,0 @@ -:gfdl-enabled: - -OsmoSGSN User Manual -==================== -Harald Welte - - -include::./common/chapters/preface.adoc[] - -include::{srcdir}/chapters/overview.adoc[] - -include::{srcdir}/chapters/running.adoc[] - -include::{srcdir}/chapters/control.adoc[] - -include::./common/chapters/vty.adoc[] - -include::./common/chapters/logging.adoc[] - -include::{srcdir}/chapters/configuration.adoc[] - -include::./common/chapters/cs7-config.adoc[] - -include::./common/chapters/gb.adoc[] - -include::./common/chapters/control_if.adoc[] - -include::./common/chapters/oap.adoc[] - -include::./common/chapters/gsup.adoc[] - -include::{srcdir}/chapters/counters.adoc[] - -include::./common/chapters/port_numbers.adoc[] - -include::./common/chapters/bibliography.adoc[] - -include::./common/chapters/glossary.adoc[] - -include::./common/chapters/gfdl.adoc[] diff --git a/doc/manuals/osmosgsn-vty-reference.xml b/doc/manuals/osmosgsn-vty-reference.xml deleted file mode 100644 index 82b666a..0000000 --- a/doc/manuals/osmosgsn-vty-reference.xml +++ /dev/null @@ -1,44 +0,0 @@ - - - - -]> - - - - - - v1 - 13th January 2013 - hw - Initial - - - v2 - 5th March 2014 - hf - Update to match osmo-bsc version 0.13.0-305 - - - - OsmoSGSN VTY Reference - - - 2013-2014 - - - - This work is copyright by sysmocom - s.f.m.c. GmbH. All rights reserved. - - - - - - &chapter-vty; - - diff --git a/doc/manuals/regen_doc.sh b/doc/manuals/regen_doc.sh index 847b764..e68e7e5 100755 --- a/doc/manuals/regen_doc.sh +++ b/doc/manuals/regen_doc.sh @@ -51,27 +51,24 @@ } DIR="$(cd "$(dirname "$0")"; pwd)" +echo $DIR cd "$DIR" require_osmo_interact_vty interact_vty \ "update_vty_reference" \ - "vty/sgsn_vty_reference.xml" \ - 4245 \ - osmo-sgsn -c "../examples/osmo-sgsn/osmo-sgsn.cfg" - -interact_vty \ - "update_vty_reference" \ - "vty-osmogbproxy/gbproxy_vty_reference.xml" \ + "vty/gbproxy_vty_reference.xml" \ 4246 \ osmo-gbproxy -c "../examples/osmo-gbproxy/osmo-gbproxy.cfg" +sleep 5 + interact_vty \ "update_counters" \ "chapters/counters_generated.adoc" \ - 4245 \ - osmo-sgsn -c "../examples/osmo-sgsn/osmo-sgsn.cfg" + 4246 \ + osmo-gbproxy -c "../examples/osmo-gbproxy/osmo-gbproxy.cfg" echo "Done with all" diff --git a/doc/manuals/vty-osmogbproxy/gbproxy_vty_additions.xml b/doc/manuals/vty/gbproxy_vty_additions.xml similarity index 100% rename from doc/manuals/vty-osmogbproxy/gbproxy_vty_additions.xml rename to doc/manuals/vty/gbproxy_vty_additions.xml diff --git a/doc/manuals/vty-osmogbproxy/gbproxy_vty_reference.xml b/doc/manuals/vty/gbproxy_vty_reference.xml similarity index 78% rename from doc/manuals/vty-osmogbproxy/gbproxy_vty_reference.xml rename to doc/manuals/vty/gbproxy_vty_reference.xml index 1db3c0d..19b04e1 100644 --- a/doc/manuals/vty-osmogbproxy/gbproxy_vty_reference.xml +++ b/doc/manuals/vty/gbproxy_vty_reference.xml @@ -7,9 +7,25 @@ - + + + + + + + + + + + + + + + + + @@ -67,9 +83,10 @@ - + + @@ -188,13 +205,13 @@ - + - + @@ -214,6 +231,8 @@ + + @@ -253,12 +272,12 @@ - + - + @@ -278,6 +297,8 @@ + + @@ -365,10 +386,49 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -379,43 +439,41 @@ - + - + + - + - - + + - + - - + + - + - - - - - + + + - + - - - + + @@ -587,13 +645,13 @@ - + - + @@ -613,6 +671,8 @@ + + @@ -652,12 +712,12 @@ - + - + @@ -677,6 +737,8 @@ + + @@ -764,10 +826,61 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -778,17 +891,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + @@ -796,75 +947,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - config @@ -1052,6 +1134,20 @@ + + + + + + + + + + + + + + @@ -1089,11 +1185,11 @@ - + - + @@ -1101,9 +1197,11 @@ - + - + + + @@ -1181,13 +1279,13 @@ - + - + @@ -1207,6 +1305,8 @@ + + @@ -1246,16 +1346,6 @@ - - - - - - - - - - config-stats @@ -1325,6 +1415,12 @@ + + + + + + config-line @@ -1347,280 +1443,95 @@ - - config-ns - + + config-gbproxy + - - - - + + + - + + + + - - - - + + + - + + + + - - - - + + + + + - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + - - config-gbproxy - + + config-sgsn + - - - + + - + + + + - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + - + - + + + + - - + + + + - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + diff --git a/doc/manuals/vty/sgsn_vty_additions.xml b/doc/manuals/vty/sgsn_vty_additions.xml deleted file mode 100644 index 660b695..0000000 --- a/doc/manuals/vty/sgsn_vty_additions.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - Configure the remote GGSN, access-control and other - attributes of the SGSN - - diff --git a/doc/manuals/vty/sgsn_vty_reference.xml b/doc/manuals/vty/sgsn_vty_reference.xml deleted file mode 100644 index 8ffc607..0000000 --- a/doc/manuals/vty/sgsn_vty_reference.xml +++ /dev/null @@ -1,2677 +0,0 @@ - - - Common Commands - These commands are available on all VTY nodes. They are listed here only once, to unclutter the VTY reference. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - view - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - enable - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - config - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - config-log - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - config-stats - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - config-line - - - - - - - - - - - - - - - - - - - - - config-ns - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - config-bssgp - - - config-ctrl - - - - - - - - - config-cs7 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - config-cs7-as - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - config-cs7-asp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - config-cs7-sccpaddr - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - config-cs7-sccpaddr-gt - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - config-cpu-sched - - - - - - - - - - - - - - - - - - - - - config-sgsn - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/osmoappdesc.py b/osmoappdesc.py index 1fccafd..789e8c1 100644 --- a/osmoappdesc.py +++ b/osmoappdesc.py @@ -17,17 +17,13 @@ app_configs = { "gbproxy": ["doc/examples/osmo-gbproxy/osmo-gbproxy.cfg"], - "sgsn": ["doc/examples/osmo-sgsn/osmo-sgsn.cfg"], - "gtphub": ["doc/examples/osmo-gtphub/osmo-gtphub-1iface.cfg"] } apps = [(4246, "src/gbproxy/osmo-gbproxy", "OsmoGbProxy", "gbproxy"), - (4245, "src/sgsn/osmo-sgsn", "OsmoSGSN", "sgsn"), - (4253, "src/gtphub/osmo-gtphub", "OsmoGTPhub", "gtphub") ] -vty_command = ["./src/sgsn/osmo-sgsn", "-c", - "doc/examples/osmo-sgsn/osmo-sgsn.cfg"] +vty_command = ["./src/gbproxy/osmo-gbproxy", "-c", + "doc/examples/osmo-gbproxy/osmo-gbproxy.cfg"] -vty_app = apps[1] +vty_app = apps[0] diff --git a/src/gb_proxy_main.c b/src/gb_proxy_main.c index 7c6f1d2..2e9ff79 100644 --- a/src/gb_proxy_main.c +++ b/src/gb_proxy_main.c @@ -131,12 +131,42 @@ printf(" -T --timestamp Prefix every log line with a timestamp\n"); printf(" -V --version. Print the version.\n"); printf(" -e --log-level number. Set a global loglevel.\n"); + + printf("\nVTY reference generation:\n"); + printf(" --vty-ref-mode MODE VTY reference generation mode (e.g. 'expert').\n"); + printf(" --vty-ref-xml Generate the VTY reference XML output and exit.\n"); +} + +static void handle_long_options(const char *prog_name, const int long_option) +{ + static int vty_ref_mode = VTY_REF_GEN_MODE_DEFAULT; + + switch (long_option) { + case 1: + vty_ref_mode = get_string_value(vty_ref_gen_mode_names, optarg); + if (vty_ref_mode < 0) { + fprintf(stderr, "%s: Unknown VTY reference generation " + "mode '%s'\n", prog_name, optarg); + exit(2); + } + break; + case 2: + fprintf(stderr, "Generating the VTY reference in mode '%s' (%s)\n", + get_value_string(vty_ref_gen_mode_names, vty_ref_mode), + get_value_string(vty_ref_gen_mode_desc, vty_ref_mode)); + vty_dump_xml_ref_mode(stdout, (enum vty_ref_gen_mode) vty_ref_mode); + exit(0); + default: + fprintf(stderr, "%s: error parsing cmdline options\n", prog_name); + exit(2); + } } static void handle_options(int argc, char **argv) { while (1) { int option_index = 0, c; + static int long_option = 0; static struct option long_options[] = { { "help", 0, 0, 'h' }, { "debug", 1, 0, 'd' }, @@ -146,6 +176,8 @@ { "timestamp", 0, 0, 'T' }, { "version", 0, 0, 'V' }, { "log-level", 1, 0, 'e' }, + { "vty-ref-mode", 1, &long_option, 1 }, + { "vty-ref-xml", 0, &long_option, 2 }, { 0, 0, 0, 0 } }; @@ -159,6 +191,9 @@ print_usage(); print_help(); exit(0); + case 0: + handle_long_options(argv[0], long_option); + break; case 's': log_set_use_color(osmo_stderr_target, 0); break; -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/22586 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: I80439ab0d21a3fb33f38da42acbfe3fbb0941b91 Gerrit-Change-Number: 22586 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: